{"version":3,"sources":["./node_modules/@angular/flex-layout/esm5/core.es5.js","./node_modules/@angular/flex-layout/esm5/extended.es5.js","./node_modules/@angular/flex-layout/esm5/flex-layout.es5.js","./node_modules/@angular/flex-layout/esm5/flex.es5.js","./node_modules/@angular/flex-layout/esm5/grid.es5.js","./node_modules/@ngx-translate/core/fesm5/ngx-translate-core.js","./node_modules/@ngx-translate/http-loader/fesm5/ngx-translate-http-loader.js","./node_modules/igniteui-angular/fesm5/igniteui-angular.js","./node_modules/jszip/dist/jszip.min.js","./node_modules/ng-recaptcha/fesm5/ng-recaptcha.js","./node_modules/ngx-smart-popover/fesm5/ngx-smart-popover.js","./src/app/components/mensaje-dialogo-ok/mensaje-dialogo-ok.component.html","./src/app/components/mensaje-dialogo/mensaje-dialogo.component.html","./src/app/components/msg-alert/msg-alert.component.html","./src/app/components/msg-final-cancel/msg-final-cancel.component.html","./src/app/components/msg-final-exito/msg-final-exito.component.html","./src/app/pages/consultar/consultar.component.html","./src/app/pages/home/home.component.html","./src/app/pages/inicio/inicio.component.html","./node_modules/resize-observer-polyfill/dist/ResizeObserver.es.js","./src/app/components/components.module.ts","./src/app/components/mensaje-dialogo-ok/mensaje-dialogo-ok.component.css","./src/app/components/mensaje-dialogo-ok/mensaje-dialogo-ok.component.ts","./src/app/components/mensaje-dialogo/mensaje-dialogo.component.css","./src/app/components/mensaje-dialogo/mensaje-dialogo.component.ts","./src/app/components/msg-alert/msg-alert.component.css","./src/app/components/msg-alert/msg-alert.component.ts","./src/app/components/msg-final-cancel/msg-final-cancel.component.css","./src/app/components/msg-final-cancel/msg-final-cancel.component.ts","./src/app/components/msg-final-exito/msg-final-exito.component.css","./src/app/components/msg-final-exito/msg-final-exito.component.ts","./src/app/pages/consultar/consultar.component.css","./src/app/pages/consultar/consultar.component.ts","./src/app/pages/home/home.component.css","./src/app/pages/home/home.component.ts","./src/app/pages/inicio/inicio.component.css","./src/app/pages/inicio/inicio.component.ts","./src/app/pages/pages-routing.module.ts","./src/app/pages/pages.module.ts","./src/app/services/agendar-general.service.ts","./src/app/services/company.service.ts","./src/app/services/imagenes/imagenes.service.ts","./src/app/services/recall/recall.service.ts","./src/app/services/sesion/sesion.service.ts","./src/app/services/shared.service.ts"],"names":[],"mappings":";;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AAC0K;AAC1F;AACpC;AACqD;AACL;;AAE5F;AACA;AACA,cAAc,uFAAuF;AACrG;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,WAAW,EAAE;AACb,YAAY;AACZ;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA,YAAY,yEAAiB;AAC7B,uBAAuB,EAAE;AACzB;AACA;AACA;AACA;AACA;AACA,uBAAuB,EAAE;AACzB;AACA;AACA,uBAAuB,EAAE;AACzB,wBAAwB;AACxB;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,KAAK;AACL;AACA;AACA;AACA,UAAU;AACV;AACA;AACA,yBAAyB,EAAE,KAAK,oEAAsB;AACtD;AACA,WAAW,wDAAQ,EAAE,yDAAW;AAChC;AACA;AACA,WAAW,EAAE;AACb;;AAEA;AACA;AACA,cAAc,uFAAuF;AACrG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,OAAO,sDAAQ;AACxB;AACA,iBAAiB,IAAI;AACrB;AACA;AACA,CAAC;;AAED;AACA;AACA,cAAc,uFAAuF;AACrG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,iBAAiB;AAClD,oCAAoC,oBAAoB;AACxD,iCAAiC,cAAc;AAC/C,gCAAgC,aAAa;AAC7C,kCAAkC,cAAc;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA,cAAc,uFAAuF;AACrG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA;AACA,uBAAuB,EAAE;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,OAAO,wDAAU,UAAU,qBAAqB,IAAI;AAC7D;AACA,uDAAuD,wEAAkB,EAAE,4CAA4C,4BAA4B,EAAE,4CAA4C;AACjM;AACA,CAAC;;AAED;AACA;AACA,cAAc,uFAAuF;AACrG;;AAEA;AACA;AACA,cAAc,uFAAuF;AACrG;AACA,WAAW,EAAE;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,wBAAwB,4DAAc;AACtC;AACA;AACA,gBAAgB;AAChB;AACA,iBAAiB,uBAAuB,EAAE;AAC1C,CAAC;;AAED;AACA;AACA,cAAc,uFAAuF;AACrG;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA,uBAAuB,4DAAc;AACrC;AACA;AACA,gBAAgB;AAChB;AACA,iBAAiB,cAAc,EAAE;AACjC,CAAC;;AAED;AACA;AACA,cAAc,uFAAuF;AACrG;AACA,WAAW,EAAE;AACb,qBAAqB,4DAAc;AACnC;AACA;AACA,gBAAgB;AAChB;AACA,iBAAiB,aAAa,EAAE;AAChC,CAAC;;AAED;AACA;AACA,cAAc,uFAAuF;AACrG;;AAEA;AACA;AACA,cAAc,uFAAuF;AACrG;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,WAAW,EAAE;AACb,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,EAAE;AACpC,oCAAoC,EAAE;AACtC;AACA;AACA;;AAEA;AACA;AACA,cAAc,uFAAuF;AACrG;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA,WAAW,EAAE;AACb;AACA;AACA;AACA,WAAW,EAAE;AACb,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA,kBAAkB,wBAAwB,EAAE;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC;AACvC;AACA;AACA;AACA,WAAW,EAAE;AACb,WAAW,GAAG;AACd,WAAW,GAAG;AACd,YAAY;AACZ;AACA;AACA,0BAA0B,aAAa;AACvC,4BAA4B,gBAAgB;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,cAAc,uFAAuF;AACrG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,4CAAO;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA;AACA,2BAA2B,EAAE;AAC7B;AACA,2BAA2B,EAAE;AAC7B;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,gBAAgB;AAChB;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA;AACA;AACA,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA,uCAAuC,oBAAoB;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,sDAAQ,GAAG;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA,sCAAsC,sBAAsB;AAC5D;AACA;AACA;AACA,2BAA2B,EAAE;AAC7B;AACA,2BAA2B,EAAE;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,GAAG;AAClB,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,GAAG;AAClB,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA,iCAAiC,8BAA8B;AAC/D;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA,cAAc,uFAAuF;AACrG;;AAEA;AACA;AACA,cAAc,uFAAuF;AACrG;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,cAAc,uFAAuF;AACrG;;AAEA;AACA,WAAW,EAAE;AACb;AACA,WAAW,EAAE;AACb;AACA,WAAW,EAAE;AACb;AACA,WAAW,EAAE;AACb;AACA,WAAW,EAAE;AACb;AACA,WAAW,EAAE;AACb;AACA,WAAW,EAAE;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA,KAAK,wEAAwE;AAC7E,KAAK,4FAA4F;AACjG,KAAK,0FAA0F;AAC/F,KAAK,sEAAsE;AAC3E,KAAK,gFAAgF;AACrF,KAAK,wFAAwF;AAC7F,KAAK,mFAAmF;AACxF,KAAK,uGAAuG;AAC5G,KAAK;AACL;;AAEA;AACA;AACA,cAAc,uFAAuF;AACrG;;AAEA;AACA;AACA,cAAc,uFAAuF;AACrG;;AAEA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,WAAW,KAAK;AAChB,YAAY;AACZ;AACA;AACA;AACA,oBAAoB,uBAAuB;AAC3C;AACA;AACA;AACA;AACA;AACA,yCAAyC,uBAAuB;AAChE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,cAAc,uFAAuF;AACrG;AACA,WAAW,EAAE;AACb;AACA;AACA,WAAW,EAAE;AACb,YAAY;AACZ;AACA;AACA,eAAe,EAAE;AACjB;AACA,eAAe,EAAE;AACjB;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,YAAY;AACZ;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,4CAA4C;AAC5C,8CAA8C;AAC9C;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,WAAW,GAAG;AACd,YAAY;AACZ;AACA;AACA,4BAA4B,aAAa;AACzC,eAAe,EAAE;AACjB;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA,kBAAkB,gBAAgB,EAAE;AACpC;;AAEA;AACA;AACA,cAAc,uFAAuF;AACrG;AACA;AACA;AACA;AACA,UAAU;AACV;AACA,sBAAsB,4DAAc;AACpC;AACA;AACA,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB,0BAA0B,4DAAM;AAChC,mBAAmB,EAAE;AACrB,2BAA2B,4DAAM;AACjC,mBAAmB,EAAE;AACrB;AACA;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA,sBAAsB,mCAAmC,EAAE;AAC3D,mBAAmB,EAAE;AACrB;AACA;AACA;AACA,KAAK;AACL,CAAC;;AAED;AACA;AACA,cAAc,uFAAuF;AACrG;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,WAAW,EAAE;AACb,YAAY;AACZ;AACA;AACA,eAAe,EAAE;AACjB;AACA,eAAe,EAAE;AACjB;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,WAAW,EAAE;AACb,YAAY;AACZ;AACA;AACA,eAAe,EAAE;AACjB;AACA,eAAe,EAAE;AACjB;AACA;AACA;;AAEA;AACA;AACA,cAAc,uFAAuF;AACrG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA,uBAAuB,0BAA0B,EAAE;AACnD;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA,uBAAuB,+BAA+B,EAAE;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,uBAAuB,EAAE;AACzB,wBAAwB;AACxB;AACA,2BAA2B,+BAA+B,EAAE;AAC5D,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,uBAAuB,EAAE;AACzB,wBAAwB;AACxB;AACA,2BAA2B,iBAAiB,EAAE;AAC9C,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,uBAAuB,EAAE;AACzB,wBAAwB;AACxB;AACA,2BAA2B,qCAAqC,EAAE;AAClE,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,OAAO,wDAAU,UAAU,qBAAqB,IAAI;AAC7D;AACA;AACA,qDAAqD;AACrD,SAAS,4BAA4B,OAAO,oDAAM,wBAAwB;AAC1E,MAAM;AACN,4DAA4D,wEAAkB,EAAE,iDAAiD,+BAA+B,8DAAQ,eAAe,EAAE,iDAAiD;AAC1O;AACA,CAAC;;AAED;AACA;AACA,cAAc,uFAAuF;AACrG;;AAEA;AACA;AACA,cAAc,uFAAuF;AACrG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,oDAAe;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA,uBAAuB,EAAE;AACzB;AACA;AACA,uBAAuB,EAAE;AACzB,uBAAuB,EAAE;AACzB,wBAAwB;AACxB;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA,+CAA+C;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C;AAC/C;AACA;AACA;AACA;AACA;AACA,eAAe,GAAG;AAClB,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA;AACA,+CAA+C;AAC/C;AACA;AACA;AACA;AACA;AACA,eAAe,GAAG;AAClB,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA;AACA,sCAAsC,sBAAsB;AAC5D;AACA,uBAAuB,EAAE;AACzB,qDAAqD,6DAAM;AAC3D,uBAAuB,EAAE;AACzB,wBAAwB;AACxB;AACA;AACA;AACA,aAAa;AACb,uBAAuB,EAAE;AACzB,oCAAoC,+CAAU;AAC9C,uBAAuB,EAAE;AACzB,wBAAwB;AACxB;AACA;AACA;AACA,2BAA2B,EAAE;AAC7B;AACA;AACA,+BAA+B,EAAE;AACjC,iDAAiD,EAAE;AACnD;AACA,+BAA+B,EAAE;AACjC,gCAAgC;AAChC;AACA;AACA;AACA,qBAAqB;AACrB,kDAAkD;AAClD;AACA;AACA,aAAa;AACb,mBAAmB,kDAAK;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA,uBAAuB,EAAE;AACzB;AACA,uBAAuB,EAAE;AACzB,wBAAwB;AACxB;AACA;AACA;AACA,4BAA4B;AAC5B;AACA,6BAA6B,6DAA6D,EAAE;AAC5F,aAAa;AACb,uBAAuB,EAAE;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,0DAA0D;AAC1D;AACA;AACA;AACA,0DAA0D;AAC1D;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,0DAA0D;AAC1D;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,mCAAmC,yEAAiB;AACpD;AACA;AACA,SAAS,OAAO,wDAAU,UAAU,qBAAqB,IAAI;AAC7D;AACA;AACA,6CAA6C;AAC7C,SAAS,OAAO,oDAAM,EAAE;AACxB,SAAS,6BAA6B,OAAO,oDAAM,SAAS,yDAAW,IAAI,GAAG;AAC9E,SAAS,gCAAgC,OAAO,oDAAM,SAAS,wDAAQ,IAAI;AAC3E,MAAM;AACN,oDAAoD,wEAAkB,EAAE,yCAAyC,uBAAuB,8DAAQ,CAAC,oDAAM,GAAG,8DAAQ,CAAC,yDAAW,GAAG,8DAAQ,CAAC,wDAAQ,GAAG,EAAE,yCAAyC;AAChP;AACA,CAAC;AACD;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,WAAW,EAAE;AACb,YAAY;AACZ;AACA;AACA,eAAe,EAAE;AACjB;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA,mBAAmB,wBAAwB,EAAE;AAC7C;AACA,mBAAmB,EAAE;AACrB;AACA;AACA,uBAAuB,EAAE;AACzB;AACA;AACA,8BAA8B,EAAE;AAChC,2BAA2B,EAAE;AAC7B,sLAAsL,eAAe,GAAG;AACxM;AACA;AACA,wBAAwB,EAAE;AAC1B;AACA;AACA,uBAAuB,EAAE;AACzB,wBAAwB;AACxB;AACA,2BAA2B,mCAAmC,EAAE;AAChE;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,WAAW,EAAE;AACb,YAAY;AACZ;AACA;AACA,eAAe,EAAE;AACjB,gDAAgD,EAAE;AAClD,oCAAoC,EAAE,+CAA+C,EAAE,iBAAiB,EAAE;AAC1G;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA,SAAS;AACT;AACA,oBAAoB;AACpB;AACA;AACA,SAAS;AACT,KAAK;AACL;;AAEA;AACA;AACA,cAAc,uFAAuF;AACrG;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,uDAAS;AACb;AACA;AACA;AACA,yCAAyC;AACzC;AACA,kCAAkC;AAClC;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA,yBAAyB,EAAE;AAC3B,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA,qCAAqC,qBAAqB;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,uBAAuB,EAAE;AACzB;AACA,uBAAuB,EAAE;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA,uBAAuB,EAAE;AACzB;AACA;AACA,SAAS;AACT;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA,0BAA0B,+BAA+B,EAAE;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB,8BAA8B,EAAE;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,cAAc;AACd,gBAAgB;AAChB;AACA;AACA,oBAAoB,EAAE;AACtB,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA,yBAAyB,EAAE;AAC3B,SAAS;AACT,2BAA2B,EAAE;AAC7B;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0DAA0D;AAC1D;AACA;AACA;AACA,0DAA0D;AAC1D;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,0DAA0D;AAC1D;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA,SAAS,OAAO,wDAAU,EAAE;AAC5B;AACA;AACA,iDAAiD;AACjD,SAAS,OAAO,oDAAM,EAAE;AACxB,SAAS,6BAA6B,OAAO,oDAAM,SAAS,yDAAW,IAAI,GAAG;AAC9E,SAAS,gCAAgC,OAAO,oDAAM,SAAS,wDAAQ,IAAI,GAAG;AAC9E,SAAS;AACT,MAAM;AACN;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,EAAE;AACzB,wBAAwB;AACxB;AACA;AACA,2BAA2B,EAAE;AAC7B,qCAAqC,EAAE;AACvC;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,EAAE;AACzB,wBAAwB;AACxB;AACA;AACA,2BAA2B,EAAE;AAC7B,qCAAqC,EAAE;AACvC;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,EAAE;AACzB,iCAAiC,EAAE;AACnC;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,cAAc,uFAAuF;AACrG;;AAEA;AACA;AACA,cAAc,uFAAuF;AACrG;AACA,WAAW,EAAE;AACb;AACA,WAAW,EAAE;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,+BAA+B,EAAE;AACjC;AACA,uBAAuB,EAAE;AACzB,wBAAwB;AACxB;AACA,8BAA8B,6CAA6C,EAAE;AAC7E;AACA,uBAAuB,EAAE;AACzB,wBAAwB;AACxB;AACA,2BAA2B,oBAAoB,EAAE;AACjD,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB,EAAE;AAClB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB,EAAE;AAClB;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA,2BAA2B,EAAE;AAC7B;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,OAAO,wDAAU,UAAU,qBAAqB,IAAI;AAC7D;AACA;AACA,4CAA4C;AAC5C,SAAS,2BAA2B;AACpC,SAAS,gCAAgC,OAAO,oDAAM,0BAA0B;AAChF,MAAM;AACN,mDAAmD,wEAAkB,EAAE,wCAAwC,sBAAsB,8DAAQ,sBAAsB,8DAAQ,iBAAiB,EAAE,wCAAwC;AACtO;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA,uBAAuB,gCAAgC,EAAE;AACzD;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,uBAAuB,EAAE;AACzB;AACA,uBAAuB,EAAE;AACzB,wBAAwB;AACxB;AACA,2BAA2B,wCAAwC,EAAE;AACrE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,YAAY;AACZ;AACA;AACA;AACA;;AAEA;AACA;AACA,cAAc,uFAAuF;AACrG;;AAEA;AACA;AACA;AACA,WAAW,EAAE;AACb,YAAY;AACZ;AACA;AACA;AACA;;AAEA;AACA;AACA,cAAc,uFAAuF;AACrG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,SAAS;AACrB,YAAY,gBAAgB;AAC5B;AACA,gBAAgB,MAAM;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,eAAe,OAAO,kBAAkB;AAClE,WAAW;AACX;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,4CAAO;AACrC;AACA,wCAAwC,6DAAM;AAC9C,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA,4BAA4B,2BAA2B,EAAE,IAAI,0DAAG;AAChE,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA,4BAA4B,mBAAmB,EAAE;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB,EAAE;AAClB;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB,EAAE;AAClB;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA,uBAAuB,EAAE;AACzB;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA,uBAAuB,sBAAsB,EAAE;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iDAAiD;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iDAAiD;AACjD;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iDAAiD;AACjD;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA,uBAAuB,EAAE;AACzB;AACA,uBAAuB,EAAE;AACzB,wBAAwB;AACxB;AACA,+BAA+B,uCAAuC,EAAE;AACxE;AACA,SAAS;AACT,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA;AACA,uBAAuB,EAAE;AACzB,wBAAwB;AACxB;AACA;AACA,2BAA2B,EAAE;AAC7B;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA,kBAAkB,6DAAM;AACxB,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA,2BAA2B,uBAAuB,EAAE,IAAI,mEAAY,IAAI,kDAAa,GAAG,gEAAS;AACjG,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA,sBAAsB,QAAQ,+CAAE,6BAA6B,EAAE,IAAI,0DAAG,mBAAmB,6DAAM,cAAc,gEAAS;AACtH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA,uBAAuB,EAAE;AACzB;AACA;AACA,SAAS;AACT,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA,0BAA0B,qCAAqC,EAAE;AACjE;AACA;AACA;AACA;AACA;AACA,SAAS,OAAO,wDAAU,UAAU,qBAAqB,IAAI;AAC7D;AACA;AACA,gDAAgD;AAChD,SAAS,2BAA2B;AACpC,SAAS,mBAAmB;AAC5B,SAAS;AACT,MAAM;AACN,uDAAuD,wEAAkB,EAAE,4CAA4C,0BAA0B,8DAAQ,sBAAsB,8DAAQ,cAAc,8DAAQ,aAAa,EAAE,4CAA4C;AACxQ;AACA,CAAC;AACD;AACA;AACA,WAAW,EAAE;AACb,WAAW,EAAE;AACb,YAAY;AACZ;AACA;AACA,eAAe,EAAE;AACjB;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,YAAY;AACZ;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA,sBAAsB,yBAAyB,EAAE;AACjD;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA,uBAAuB,sBAAsB,EAAE;AAC/C;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA,sBAAsB,qBAAqB,EAAE;AAC7C;;AAEA;AACA;AACA,cAAc,uFAAuF;AACrG;;AAEA;AACA;AACA,cAAc,uFAAuF;AACrG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA,uBAAuB,kBAAkB,EAAE,GAAG;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,uBAAuB,EAAE;AACzB;AACA,uBAAuB,EAAE;AACzB,wBAAwB;AACxB;AACA,+BAA+B,0BAA0B,EAAE;AAC3D,uBAAuB,EAAE;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB,wBAAwB,yEAAiB;AACzC,mBAAmB,EAAE;AACrB;AACA;AACA,uBAAuB,EAAE;AACzB,0BAA0B,sDAAS,wBAAwB,2DAAI;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA,uBAAuB,EAAE;AACzB;AACA,uBAAuB,EAAE;AACzB,wBAAwB;AACxB;AACA,8BAA8B,qCAAqC,EAAE;AACrE,uBAAuB,EAAE;AACzB;AACA,uBAAuB,EAAE;AACzB,wBAAwB;AACxB;AACA;AACA,2BAA2B,EAAE;AAC7B;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA;AACA,iCAAiC,gBAAgB;AACjD,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA,uBAAuB,EAAE;AACzB;AACA,uBAAuB,EAAE;AACzB;AACA;AACA,SAAS;AACT,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA,0BAA0B,8CAA8C,EAAE;AAC1E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA,4CAA4C,EAAE,MAAM,mBAAmB;AACvE,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA,mBAAmB,EAAE;AACrB,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA,mBAAmB,EAAE;AACrB,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA,SAAS,OAAO,wDAAU,UAAU,qBAAqB,IAAI;AAC7D;AACA;AACA,+CAA+C;AAC/C,SAAS,2BAA2B;AACpC,SAAS,mBAAmB;AAC5B,SAAS,gCAAgC,OAAO,oDAAM,0BAA0B,GAAG;AACnF,SAAS,6BAA6B,OAAO,oDAAM,SAAS,yDAAW,IAAI,GAAG;AAC9E,SAAS,gCAAgC,OAAO,oDAAM,SAAS,wDAAQ,IAAI;AAC3E,MAAM;AACN,sDAAsD,wEAAkB,EAAE,2CAA2C,yBAAyB,8DAAQ,sBAAsB,8DAAQ,cAAc,8DAAQ,iBAAiB,8DAAQ,CAAC,yDAAW,GAAG,8DAAQ,CAAC,wDAAQ,GAAG,EAAE,2CAA2C;AACnT;AACA,CAAC;;AAED;AACA;AACA,cAAc,uFAAuF;AACrG;;AAEA;AACA;AACA,cAAc,uFAAuF;AACrG;;AAEA;AACA;AACA,cAAc,uFAAuF;AACrG;;AAEA;AACA;AACA;AACA;AACA;AACA,8BAA8B;AAC9B,sBAAsB;AACtB,gCAAgC;AAChC,gCAAgC;AAChC,iCAAiC;AACjC;AACA,WAAW,EAAE;AACb,YAAY;AACZ;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,cAAc,uFAAuF;AACrG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA,+BAA+B,cAAc;AAC7C,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA;AACA,kCAAkC,eAAe;AACjD,mBAAmB,EAAE;AACrB;AACA;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA,aAAa,wEAAgB;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,yEAAiB;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA,oCAAoC,oBAAoB;AACxD,mBAAmB,EAAE;AACrB;AACA;AACA,uBAAuB,EAAE;AACzB;AACA;AACA,oBAAoB,yEAAiB;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA,uBAAuB,EAAE;AACzB;AACA,uBAAuB,EAAE;AACzB;AACA;AACA,+CAA+C,sBAAsB;AACrE;AACA;AACA,oBAAoB,yEAAiB;AACrC,oBAAoB,yEAAiB;AACrC;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA;AACA,uBAAuB,EAAE;AACzB,mDAAmD;AACnD,2BAA2B,sBAAsB;AACjD,2BAA2B,EAAE;AAC7B;AACA;AACA,+BAA+B,EAAE;AACjC;AACA;AACA;AACA;AACA,+BAA+B,EAAE;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA,uBAAuB,EAAE;AACzB;AACA;AACA,gEAAgE;AAChE;AACA;AACA;AACA;AACA;AACA,SAAS,OAAO,wDAAU,UAAU,qBAAqB,IAAI;AAC7D;AACA;AACA,6CAA6C;AAC7C,SAAS,oCAAoC,OAAO,sDAAQ,EAAE,GAAG;AACjE,SAAS,8BAA8B,OAAO,sDAAQ,EAAE,GAAG,OAAO,oDAAM,yBAAyB,GAAG;AACpG,SAAS,6BAA6B,OAAO,oDAAM,SAAS,yDAAW,IAAI,GAAG;AAC9E,SAAS,gCAAgC,OAAO,oDAAM,0BAA0B;AAChF,MAAM;AACN,oDAAoD,wEAAkB,EAAE,yCAAyC,uBAAuB,8DAAQ,oBAAoB,8DAAQ,mBAAmB,8DAAQ,CAAC,yDAAW,GAAG,8DAAQ,iBAAiB,EAAE,yCAAyC;AAC1R;AACA,CAAC;;AAED;AACA;AACA,cAAc,uFAAuF;AACrG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA,cAAc,uFAAuF;AACrG;;AAEA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,WAAW,GAAG;AACd,WAAW,GAAG;AACd,YAAY;AACZ;AACA;AACA,0BAA0B,YAAY;AACtC,4BAA4B,cAAc;AAC1C,eAAe,EAAE;AACjB;AACA,eAAe,EAAE;AACjB;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,YAAY;AACZ;AACA;AACA;AACA;;AAEA;AACA;AACA,cAAc,uFAAuF;AACrG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC;AACxC;AACA,uCAAuC;AACvC;AACA,sCAAsC;AACtC;AACA,2BAA2B,4CAAO;AAClC;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,GAAG;AAClB,eAAe,GAAG;AAClB,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,GAAG;AAClB,eAAe,GAAG;AAClB,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA,uCAAuC,oBAAoB;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA,uBAAuB,EAAE;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA,uBAAuB,EAAE;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,EAAE;AACzB;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA,kBAAkB,6DAAM;AACxB,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA,sBAAsB,+CAA+C,EAAE;AACvE;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA,uBAAuB,EAAE;AACzB,6CAA6C,EAAE;AAC/C,uBAAuB,EAAE;AACzB;AACA;AACA;AACA,2BAA2B,EAAE;AAC7B,2BAA2B,EAAE;AAC7B,4BAA4B;AAC5B;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,uBAAuB,EAAE;AACzB,wBAAwB;AACxB;AACA;AACA;AACA;AACA,+BAA+B,EAAE;AACjC;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA,uBAAuB,EAAE;AACzB,sCAAsC,EAAE;AACxC;AACA;AACA,mCAAmC,wCAAwC;AAC3E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA,uBAAuB,EAAE;AACzB,uCAAuC,EAAE;AACzC;AACA;AACA,mCAAmC,2CAA2C;AAC9E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA,uBAAuB,EAAE;AACzB,wBAAwB;AACxB;AACA,0BAA0B,wBAAwB,EAAE;AACpD;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA,uBAAuB,EAAE;AACzB,uBAAuB,EAAE;AACzB,wBAAwB;AACxB;AACA,6BAA6B,6BAA6B,EAAE;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA,uBAAuB,EAAE;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,EAAE;AACjC,+BAA+B,EAAE;AACjC,gCAAgC;AAChC;AACA,qCAAqC,2CAA2C,EAAE;AAClF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA,uBAAuB,EAAE;AACzB;AACA;AACA;AACA;AACA;AACA,uBAAuB,EAAE;AACzB;AACA;AACA,2BAA2B,EAAE;AAC7B,sCAAsC,0CAAK;AAC3C,4BAA4B;AAC5B;AACA;AACA,+BAA+B,EAAE;AACjC;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA,uBAAuB,sCAAsC;AAC7D,uBAAuB,EAAE;AACzB;AACA,uBAAuB,EAAE;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB,iCAAiC,EAAE,iBAAiB,EAAE;AACtD,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA,uBAAuB,sBAAsB,EAAE;AAC/C;AACA;AACA,kBAAkB,0DAAG,qCAAqC,6DAAM;AAChE;AACA;AACA;AACA,SAAS,OAAO,wDAAU,UAAU,qBAAqB,IAAI;AAC7D;AACA;AACA,kDAAkD;AAClD,SAAS,mBAAmB;AAC5B,SAAS,2BAA2B;AACpC,SAAS;AACT,MAAM;AACN,yDAAyD,wEAAkB,EAAE,8CAA8C,4BAA4B,8DAAQ,cAAc,8DAAQ,sBAAsB,8DAAQ,aAAa,EAAE,8CAA8C;AAChR;AACA,CAAC;AACD;AACA,WAAW,EAAE;AACb,WAAW,EAAE;AACb,WAAW,EAAE;AACb,WAAW,GAAG;AACd,YAAY;AACZ;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,cAAc,uFAAuF;AACrG;;AAEA;AACA;AACA,cAAc,uFAAuF;AACrG;;AAEgjB;AAChjB;;;;;;;;;;;;;ACjpIA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AAC4C;AACiH;AAC5B;AACc;AACjF;AACnB;AACc;;AAEzD;AACA;AACA,cAAc,uFAAuF;AACrG;AACA;AACA,IAAI,uDAAS;AACb;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,gBAAgB;AAChB;AACA;AACA,SAAS,OAAO,wDAAU,UAAU,qBAAqB,IAAI;AAC7D;AACA,4DAA4D,wEAAkB,EAAE,iDAAiD,iCAAiC,EAAE,iDAAiD;AACrN;AACA,CAAC,CAAC,sEAAY;AACd;AACA,IAAI,uDAAS;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,wEAAgB;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,YAAY,wEAAgB;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,OAAO,uDAAS,UAAU,gCAAgC,IAAI;AACvE;AACA;AACA,kDAAkD;AAClD,SAAS,OAAO,wDAAU,EAAE;AAC5B,SAAS,2BAA2B;AACpC,SAAS,OAAO,oEAAU,EAAE;AAC5B,SAAS,OAAO,yEAAe,EAAE;AACjC,SAAS,6BAA6B,OAAO,oDAAM,SAAS,yDAAW,IAAI,GAAG;AAC9E,SAAS,8BAA8B,OAAO,oDAAM,SAAS,sEAAY,IAAI;AAC7E,MAAM;AACN;AACA,eAAe,OAAO,mDAAK,kBAAkB;AAC7C;AACA;AACA,CAAC,CAAC,wEAAc;AAChB,WAAW,EAAE;AACb;AACA,WAAW,EAAE;AACb;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,uDAAS;AACb;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,OAAO,uDAAS,UAAU,qCAAqC,IAAI;AAC5E;AACA;AACA,CAAC;;AAED;AACA;AACA,cAAc,uFAAuF;AACrG;AACA;AACA,IAAI,uDAAS;AACb;AACA,8DAA8D,EAAE;AAChE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC;AACrC,wCAAwC,uDAAO;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,SAAS,OAAO,uDAAS,UAAU,8BAA8B,IAAI;AACrE;AACA;AACA,iDAAiD;AACjD,SAAS,OAAO,wDAAU,EAAE;AAC5B,SAAS,OAAO,oEAAU,EAAE;AAC5B,SAAS,OAAO,yEAAe,EAAE;AACjC,SAAS,OAAO,4DAAY,EAAE;AAC9B,SAAS,OAAO,uDAAO,gBAAgB,OAAO,sDAAQ,EAAE,GAAG,OAAO,kDAAI,EAAE;AACxE,MAAM;AACN;AACA,iBAAiB,OAAO,mDAAK,oBAAoB;AACjD;AACA;AACA,CAAC,CAAC,wEAAc;AAChB,WAAW,EAAE;AACb;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb;AACA;AACA,WAAW,EAAE;AACb;AACA,aAAa,4DAAY;AACzB,cAAc,8DAAc;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,uDAAS;AACb;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,OAAO,uDAAS,UAAU,iFAAiF,IAAI;AACxH;AACA;AACA,CAAC;;AAED;AACA;AACA,cAAc,uFAAuF;AACrG;AACA;AACA,IAAI,uDAAS;AACb;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,gBAAgB;AAChB;AACA;AACA,SAAS,OAAO,wDAAU,UAAU,qBAAqB,IAAI;AAC7D;AACA,8DAA8D,wEAAkB,EAAE,mDAAmD,mCAAmC,EAAE,mDAAmD;AAC7N;AACA,CAAC,CAAC,sEAAY;AACd;AACA,IAAI,uDAAS;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,uBAAuB,qBAAqB;AAC5C,kDAAkD,EAAE;AACpD;AACA;AACA;AACA;AACA;AACA,uCAAuC,EAAE;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA;AACA,2BAA2B,EAAE;AAC7B;AACA,2BAA2B,EAAE;AAC7B;AACA,2BAA2B,EAAE;AAC7B;AACA,2BAA2B,EAAE;AAC7B;AACA,uCAAuC,mFAAqB;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA;AACA;AACA,sBAAsB,gEAAS;AAC/B;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA;AACA;AACA,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA,+BAA+B,cAAc;AAC7C;AACA;AACA;AACA,kDAAkD,wBAAwB;AAC1E,YAAY,wEAAgB;AAC5B;AACA;AACA,+CAA+C,EAAE;AACjD;AACA;AACA,SAAS,OAAO,uDAAS,UAAU,kCAAkC,IAAI;AACzE;AACA;AACA,oDAAoD;AACpD,SAAS,OAAO,wDAAU,EAAE;AAC5B,SAAS,6BAA6B;AACtC,SAAS,OAAO,oEAAU,EAAE;AAC5B,SAAS,OAAO,yEAAe,EAAE;AACjC,SAAS,gCAAgC,OAAO,oDAAM,SAAS,uEAAa,IAAI,GAAG;AACnF,SAAS,6BAA6B,OAAO,oDAAM,SAAS,yDAAW,IAAI,GAAG;AAC9E,SAAS,8BAA8B,OAAO,sDAAQ,EAAE,GAAG,OAAO,oDAAM,SAAS,sEAAY,IAAI;AACjG,MAAM;AACN;AACA,CAAC,CAAC,wEAAc;AAChB,WAAW,EAAE;AACb;AACA,WAAW,EAAE;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb;AACA;AACA;AACA;AACA;AACA,IAAI,uDAAS;AACb;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,OAAO,uDAAS,UAAU,yCAAyC,IAAI;AAChF;AACA;AACA,CAAC;;AAED;AACA;AACA,cAAc,uFAAuF;AACrG;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,iBAAiB;AACnD;AACA;AACA;AACA;AACA,0CAA0C;AAC1C;AACA;AACA,CAAC;AACD;AACA,WAAW,EAAE;AACb,YAAY;AACZ;AACA;AACA,eAAe,EAAE;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,WAAW,WAAW;AAC1C,WAAW,EAAE;AACb,WAAW,GAAG;AACd,YAAY;AACZ;AACA;AACA,+BAA+B,eAAe,EAAE;AAChD;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA,oBAAoB,mBAAmB,EAAE;AACzC;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA,oBAAoB,mBAAmB,EAAE;AACzC;AACA;AACA;AACA,WAAW,EAAE;AACb,WAAW,GAAG;AACd,YAAY;AACZ;AACA;AACA,eAAe,EAAE;AACjB;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA,sBAAsB,gBAAgB,EAAE;AACxC;AACA,4CAA4C,EAAE,OAAO;AACrD;AACA;AACA;AACA,WAAW,EAAE;AACb,WAAW,GAAG;AACd,YAAY;AACZ;AACA;AACA,eAAe,EAAE;AACjB;AACA;AACA,qBAAqB,EAAE;AACvB,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA,0BAA0B,yBAAyB,EAAE;AACrD;AACA;AACA;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA,+CAA+C,EAAE;AACjD,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B;AAC/B,WAAW,EAAE;AACb,WAAW,EAAE;AACb,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,cAAc,uFAAuF;AACrG;AACA;AACA,IAAI,uDAAS;AACb;AACA,8DAA8D,EAAE;AAChE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gDAAgD;AAChD,wCAAwC,uDAAO;AAC/C;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA,yCAAyC,wEAAgB;AACzD;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,uCAAuC,sDAAQ,GAAG;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC;AACzC,+DAA+D;AAC/D;AACA;AACA;AACA;AACA,yCAAyC;AACzC,+DAA+D;AAC/D;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,yCAAyC;AACzC,+DAA+D;AAC/D;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA,4CAA4C,6DAAe;AAC3D,SAAS;AACT;AACA;AACA;AACA,oEAAoE,EAAE;AACtE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,SAAS,OAAO,uDAAS,UAAU,8BAA8B,IAAI;AACrE;AACA;AACA,iDAAiD;AACjD,SAAS,OAAO,wDAAU,EAAE;AAC5B,SAAS,OAAO,oEAAU,EAAE;AAC5B,SAAS,OAAO,yEAAe,EAAE;AACjC,SAAS,OAAO,4DAAY,EAAE;AAC9B,SAAS,OAAO,sEAAY,EAAE;AAC9B,SAAS,OAAO,uDAAO,gBAAgB,OAAO,sDAAQ,EAAE,GAAG,OAAO,kDAAI,EAAE,GAAG;AAC3E,SAAS,8BAA8B,OAAO,sDAAQ,EAAE,GAAG,OAAO,oDAAM,SAAS,sEAAY,IAAI,GAAG;AACpG,SAAS,6BAA6B,OAAO,oDAAM,SAAS,yDAAW,IAAI;AAC3E,MAAM;AACN;AACA,CAAC,CAAC,wEAAc;AAChB,WAAW,EAAE;AACb;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb;AACA;AACA,WAAW,EAAE;AACb;AACA,aAAa,4DAAY;AACzB,cAAc,8DAAc;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,uDAAS;AACb;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,OAAO,uDAAS,UAAU,iFAAiF,IAAI;AACxH;AACA;AACA,CAAC;AACD;AACA;AACA,WAAW,EAAE;AACb,WAAW,GAAG;AACd,YAAY;AACZ;AACA;AACA,eAAe,EAAE;AACjB;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA,sBAAsB,gBAAgB,EAAE;AACxC;AACA,4CAA4C,EAAE,OAAO;AACrD;;AAEA;AACA;AACA,cAAc,uFAAuF;AACrG;AACA,WAAW,EAAE;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,OAAO,sDAAQ;AACxB,8BAA8B,oEAAU;AACxC;AACA;AACA,iBAAiB,IAAI;AACrB;AACA;AACA,CAAC;;AAED;AACA;AACA,cAAc,uFAAuF;AACrG;;AAEA;AACA;AACA,cAAc,uFAAuF;AACrG;;AAE8R;AAC9R;;;;;;;;;;;;;AC/6BA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACiF;AAChD;AACkB;AACiD;AACmb;AACxd;AACoQ;AAC5Q;AACogB;AACpgB;AAC4K;;AAEnO;AACA;AACA,cAAc,uFAAuF;AACrG;AACA;AACA;AACA,UAAU;AACV;AACA,kBAAkB,qDAAO;;AAEzB;AACA;AACA,cAAc,uFAAuF;AACrG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,wEAAgB;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA,qCAAqC,kBAAkB;AACvD;AACA;AACA;AACA;AACA,qBAAqB,UAAU,uEAAa,YAAY,sDAAQ,GAAG,EAAE,wEAAc,kBAAkB;AACrG,qBAAqB,UAAU,oEAAU,sCAAsC;AAC/E,qBAAqB,UAAU,sEAAY,kBAAkB;AAC7D;AACA,iBAAiB,UAAU,uEAAa,YAAY,sDAAQ,GAAG,EAAE,wEAAc,kBAAkB;AACjG,iBAAiB,UAAU,oEAAU,sCAAsC;AAC3E;AACA;AACA;AACA;AACA,SAAS,OAAO,sDAAQ;AACxB,8BAA8B,oEAAU,EAAE,4EAAc,EAAE,oEAAU;AACpE,8BAA8B,oEAAU,EAAE,4EAAc,EAAE,oEAAU;AACpE,iBAAiB,IAAI;AACrB;AACA;AACA,mDAAmD;AACnD,SAAS,8BAA8B,OAAO,sDAAQ,EAAE,GAAG,OAAO,oDAAM,SAAS,sEAAY,IAAI,GAAG;AACpG,SAAS,6BAA6B,OAAO,oDAAM,SAAS,yDAAW,IAAI;AAC3E,MAAM;AACN;AACA,CAAC;;AAED;AACA;AACA,cAAc,uFAAuF;AACrG;;AAEA;AACA;AACA,cAAc,uFAAuF;AACrG;;AAEqC;AACrC;;;;;;;;;;;;;ACvGA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AAC4C;AAC+F;AACK;AACjF;AAChC;AACY;;AAE3C;AACA;AACA,cAAc,uFAAuF;AACrG;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA,WAAW,EAAE;AACb;AACA;AACA;AACA,WAAW,EAAE;AACb,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA,kBAAkB,wBAAwB,EAAE;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC;AACvC;AACA;AACA;AACA,WAAW,EAAE;AACb,WAAW,GAAG;AACd,WAAW,GAAG;AACd,YAAY;AACZ;AACA;AACA,0BAA0B,aAAa;AACvC,4BAA4B,gBAAgB;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,cAAc,uFAAuF;AACrG;AACA;AACA,IAAI,uDAAS;AACb;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,SAAS,OAAO,wDAAU,UAAU,qBAAqB,IAAI;AAC7D;AACA,4DAA4D,wEAAkB,EAAE,iDAAiD,iCAAiC,EAAE,iDAAiD;AACrN;AACA,CAAC,CAAC,sEAAY;AACd,WAAW,EAAE;AACb;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,uDAAS;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,OAAO,uDAAS,UAAU,+BAA+B,IAAI;AACtE;AACA;AACA,kDAAkD;AAClD,SAAS,OAAO,wDAAU,EAAE;AAC5B,SAAS,OAAO,oEAAU,EAAE;AAC5B,SAAS,yCAAyC,OAAO,sDAAQ,EAAE,GAAG;AACtE,SAAS,OAAO,yEAAe;AAC/B,MAAM;AACN;AACA,CAAC,CAAC,wEAAc;AAChB;AACA,IAAI,uDAAS;AACb;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,OAAO,uDAAS,UAAU,qCAAqC,IAAI;AAC5E;AACA;AACA,CAAC;AACD,WAAW,EAAE;AACb;;AAEA;AACA;AACA,cAAc,uFAAuF;AACrG;AACA,WAAW,EAAE;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,uDAAS;AACb;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA,uBAAuB,EAAE;AACzB;AACA;AACA;AACA;AACA,uBAAuB,EAAE;AACzB,uCAAuC,EAAE;AACzC;AACA;AACA,uBAAuB,EAAE;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,OAAO,wDAAU,UAAU,qBAAqB,IAAI;AAC7D;AACA;AACA,wDAAwD;AACxD,SAAS,OAAO,oEAAU;AAC1B,MAAM;AACN,+DAA+D,wEAAkB,EAAE,oDAAoD,kCAAkC,8DAAQ,CAAC,oEAAU,GAAG,EAAE,oDAAoD;AACrP;AACA,CAAC,CAAC,sEAAY;AACd,WAAW,EAAE;AACb;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,uDAAS;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA;AACA,oCAAoC,4CAAO;AAC3C,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA,kBAAkB,gEAAS;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA,uBAAuB,EAAE;AACzB;AACA,uBAAuB,EAAE;AACzB;AACA;AACA,oCAAoC,KAAK;AACzC;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA,sBAAsB,2BAA2B,EAAE;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA,uBAAuB,mDAAmD,EAAE;AAC5E;AACA,mBAAmB,EAAE;AACrB,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA,uBAAuB,EAAE;AACzB;AACA,uBAAuB,EAAE;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,uBAAuB,EAAE;AACzB;AACA,uBAAuB,EAAE;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,+DAA+D;AAClG;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qDAAqD;AACrD;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA,2BAA2B,EAAE;AAC7B,4BAA4B;AAC5B;AACA;AACA,+BAA+B,EAAE;AACjC;AACA,+BAA+B,EAAE;AACjC,gCAAgC;AAChC;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA,iBAAiB;AACjB,6DAA6D,kBAAkB;AAC/E;AACA,SAAS;AACT;AACA;AACA,SAAS,OAAO,uDAAS,UAAU,mCAAmC,IAAI;AAC1E;AACA;AACA,qDAAqD;AACrD,SAAS,OAAO,wDAAU,EAAE;AAC5B,SAAS,OAAO,oDAAM,EAAE;AACxB,SAAS,OAAO,gEAAc,EAAE;AAChC,SAAS,OAAO,oEAAU,EAAE;AAC5B,SAAS,4CAA4C,OAAO,sDAAQ,EAAE,GAAG;AACzE,SAAS,OAAO,yEAAe;AAC/B,MAAM;AACN;AACA,CAAC,CAAC,wEAAc;AAChB;AACA,IAAI,uDAAS;AACb;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,OAAO,uDAAS,UAAU,yCAAyC,IAAI;AAChF;AACA;AACA,CAAC;AACD,WAAW,EAAE;AACb;AACA,WAAW,EAAE;AACb;AACA,WAAW,EAAE;AACb;AACA,WAAW,EAAE;AACb;AACA,WAAW,EAAE;AACb;AACA;AACA,WAAW,EAAE;AACb,WAAW,EAAE;AACb,YAAY;AACZ;AACA;AACA,eAAe,EAAE;AACjB;AACA,eAAe,EAAE;AACjB;AACA,eAAe,EAAE;AACjB;AACA,eAAe,EAAE;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA,WAAW,EAAE;AACb,WAAW,EAAE;AACb,YAAY;AACZ;AACA;AACA,eAAe,EAAE;AACjB;AACA,eAAe,EAAE;AACjB;AACA,eAAe,EAAE;AACjB;AACA,eAAe,EAAE;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA,WAAW,EAAE;AACb,WAAW,EAAE;AACb,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,WAAW,EAAE;AACb,YAAY;AACZ;AACA;AACA,eAAe,EAAE;AACjB;AACA,eAAe,EAAE;AACjB,kBAAkB,sDAAQ,GAAG;AAC7B;AACA;AACA;;AAEA;AACA;AACA,cAAc,uFAAuF;AACrG;;AAEA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,WAAW,KAAK;AAChB,YAAY;AACZ;AACA;AACA;AACA,oBAAoB,uBAAuB;AAC3C;AACA;AACA;AACA;AACA;AACA,yCAAyC,uBAAuB;AAChE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,cAAc,uFAAuF;AACrG;AACA;AACA,IAAI,uDAAS;AACb;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC;AACzC;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,EAAE;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iEAAiE,EAAE;AACnE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,EAAE,wBAAwB,6BAA6B;AAClF;AACA;AACA,SAAS,OAAO,wDAAU,UAAU,qBAAqB,IAAI;AAC7D;AACA;AACA,mDAAmD;AACnD,SAAS,gCAAgC,OAAO,oDAAM,SAAS,uEAAa,IAAI;AAChF,MAAM;AACN,0DAA0D,wEAAkB,EAAE,+CAA+C,6BAA6B,8DAAQ,CAAC,uEAAa,GAAG,EAAE,+CAA+C;AACpO;AACA,CAAC,CAAC,sEAAY;AACd,WAAW,EAAE;AACb;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,uDAAS;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,gEAAS;AAC/B;AACA;AACA,sBAAsB,gEAAS;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA,qBAAqB,wBAAwB,EAAE;AAC/C;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA,oBAAoB;AACpB;AACA,qBAAqB,sBAAsB,EAAE;AAC7C;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA,mEAAmE,EAAE;AACrE;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB,4CAA4C;AAC5C,mBAAmB,EAAE;AACrB,oBAAoB,+EAAa;AACjC,yCAAyC,yCAAyC;AAClF;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA,uBAAuB,EAAE;AACzB,wBAAwB,+EAAa;AACrC;AACA;AACA;AACA;AACA,SAAS,OAAO,uDAAS,UAAU,6BAA6B,IAAI;AACpE;AACA;AACA,gDAAgD;AAChD,SAAS,OAAO,wDAAU,EAAE;AAC5B,SAAS,OAAO,oEAAU,EAAE;AAC5B,SAAS,gCAAgC,OAAO,oDAAM,SAAS,uEAAa,IAAI,GAAG;AACnF,SAAS,yBAAyB;AAClC,SAAS,OAAO,yEAAe;AAC/B,MAAM;AACN;AACA,kBAAkB,OAAO,mDAAK,uBAAuB;AACrD,gBAAgB,OAAO,mDAAK,qBAAqB;AACjD;AACA;AACA,CAAC,CAAC,wEAAc;AAChB;AACA,IAAI,uDAAS;AACb;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,OAAO,uDAAS,UAAU,yCAAyC,IAAI;AAChF;AACA;AACA,CAAC;AACD,WAAW,EAAE;AACb;AACA,WAAW,EAAE;AACb;AACA,WAAW,EAAE;AACb;AACA,WAAW,EAAE;AACb;;AAEA;AACA;AACA,cAAc,uFAAuF;AACrG;AACA;AACA,IAAI,uDAAS;AACb;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,gBAAgB;AAChB;AACA;AACA,SAAS,OAAO,wDAAU,UAAU,qBAAqB,IAAI;AAC7D;AACA,+DAA+D,wEAAkB,EAAE,oDAAoD,oCAAoC,EAAE,oDAAoD;AACjO;AACA,CAAC,CAAC,sEAAY;AACd,WAAW,EAAE;AACb;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,uDAAS;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,OAAO,uDAAS,UAAU,mCAAmC,IAAI;AAC1E;AACA;AACA,qDAAqD;AACrD,SAAS,OAAO,wDAAU,EAAE;AAC5B,SAAS,OAAO,oEAAU,EAAE;AAC5B,SAAS,4CAA4C,OAAO,sDAAQ,EAAE,GAAG;AACzE,SAAS,OAAO,yEAAe;AAC/B,MAAM;AACN;AACA,CAAC,CAAC,wEAAc;AAChB,WAAW,EAAE;AACb;AACA;AACA,IAAI,uDAAS;AACb;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,OAAO,uDAAS,UAAU,yCAAyC,IAAI;AAChF;AACA;AACA,CAAC;;AAED;AACA;AACA,cAAc,uFAAuF;AACrG;AACA;AACA,IAAI,uDAAS;AACb;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB,+DAA+D,gDAAgD;AAC/G;AACA;AACA;AACA,SAAS,OAAO,wDAAU,UAAU,qBAAqB,IAAI;AAC7D;AACA,gEAAgE,wEAAkB,EAAE,qDAAqD,qCAAqC,EAAE,qDAAqD;AACrO;AACA,CAAC,CAAC,sEAAY;AACd,WAAW,EAAE;AACb;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,uDAAS;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,gEAAS;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA,+BAA+B,YAAY;AAC3C;AACA,mBAAmB,EAAE;AACrB,2DAA2D,EAAE;AAC7D,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,+BAA+B;AACnE;AACA;AACA,SAAS,OAAO,uDAAS,UAAU,oCAAoC,IAAI;AAC3E;AACA;AACA,sDAAsD;AACtD,SAAS,OAAO,wDAAU,EAAE;AAC5B,SAAS,OAAO,gEAAc,EAAE;AAChC,SAAS,6CAA6C,OAAO,sDAAQ,EAAE,GAAG;AAC1E,SAAS,OAAO,yEAAe,EAAE;AACjC,SAAS,OAAO,oEAAU;AAC1B,MAAM;AACN;AACA,CAAC,CAAC,wEAAc;AAChB;AACA,IAAI,uDAAS;AACb;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,OAAO,uDAAS,UAAU,yCAAyC,IAAI;AAChF;AACA;AACA,CAAC;AACD,WAAW,EAAE;AACb;AACA,WAAW,EAAE;AACb;AACA,WAAW,EAAE;AACb;AACA,WAAW,EAAE;AACb;;AAEA;AACA;AACA,cAAc,uFAAuF;AACrG;AACA;AACA,IAAI,uDAAS;AACb;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,OAAO,wDAAU,UAAU,qBAAqB,IAAI;AAC7D;AACA,+DAA+D,wEAAkB,EAAE,oDAAoD,oCAAoC,EAAE,oDAAoD;AACjO;AACA,CAAC,CAAC,sEAAY;AACd,WAAW,EAAE;AACb;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,uDAAS;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,OAAO,uDAAS,UAAU,mCAAmC,IAAI;AAC1E;AACA;AACA,qDAAqD;AACrD,SAAS,OAAO,wDAAU,EAAE;AAC5B,SAAS,OAAO,oEAAU,EAAE;AAC5B,SAAS,4CAA4C,OAAO,sDAAQ,EAAE,GAAG;AACzE,SAAS,OAAO,yEAAe;AAC/B,MAAM;AACN;AACA,CAAC,CAAC,wEAAc;AAChB,WAAW,EAAE;AACb;AACA;AACA,IAAI,uDAAS;AACb;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,OAAO,uDAAS,UAAU,yCAAyC,IAAI;AAChF;AACA;AACA,CAAC;;AAED;AACA;AACA,cAAc,uFAAuF;AACrG;AACA,WAAW,EAAE;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,uDAAS;AACb;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,SAAS,OAAO,wDAAU,UAAU,qBAAqB,IAAI;AAC7D;AACA,8DAA8D,wEAAkB,EAAE,mDAAmD,mCAAmC,EAAE,mDAAmD;AAC7N;AACA,CAAC,CAAC,sEAAY;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,uDAAS;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,OAAO,uDAAS,UAAU,qCAAqC,IAAI;AAC5E;AACA;AACA,oDAAoD;AACpD,SAAS,OAAO,wDAAU,EAAE;AAC5B,SAAS,OAAO,oEAAU,EAAE;AAC5B,SAAS,6BAA6B;AACtC,SAAS,OAAO,yEAAe;AAC/B,MAAM;AACN;AACA,CAAC,CAAC,wEAAc;AAChB,WAAW,EAAE;AACb;;AAEA;AACA;AACA,cAAc,uFAAuF;AACrG;AACA;AACA,IAAI,uDAAS;AACb;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sDAAsD;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sEAAsE;AACtE;AACA;AACA,2BAA2B,EAAE;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS,OAAO,wDAAU,UAAU,qBAAqB,IAAI;AAC7D;AACA,iEAAiE,wEAAkB,EAAE,sDAAsD,sCAAsC,EAAE,sDAAsD;AACzO;AACA,CAAC,CAAC,sEAAY;AACd,WAAW,EAAE;AACb;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb;AACA;AACA;AACA;AACA,sBAAsB,UAAU,YAAY,qBAAqB;AACjE;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,uDAAS;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA,6BAA6B;AAC7B;AACA;AACA,kBAAkB,gEAAS;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,iCAAiC;AAChE;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA,sBAAsB,2BAA2B,EAAE;AACnD;AACA;AACA;AACA;AACA;AACA,SAAS,OAAO,uDAAS,UAAU,qCAAqC,IAAI;AAC5E;AACA;AACA,uDAAuD;AACvD,SAAS,OAAO,wDAAU,EAAE;AAC5B,SAAS,OAAO,oEAAU,EAAE;AAC5B,SAAS,8CAA8C,OAAO,sDAAQ,EAAE,GAAG;AAC3E,SAAS,OAAO,yEAAe;AAC/B,MAAM;AACN;AACA,CAAC,CAAC,wEAAc;AAChB;AACA,IAAI,uDAAS;AACb;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,OAAO,uDAAS,UAAU,yCAAyC,IAAI;AAChF;AACA;AACA,CAAC;AACD,WAAW,EAAE;AACb;AACA,WAAW,EAAE;AACb;AACA,WAAW,EAAE;AACb;AACA,WAAW,EAAE;AACb;AACA,WAAW,EAAE;AACb;AACA,WAAW,EAAE;AACb;AACA,WAAW,EAAE;AACb;AACA,WAAW,EAAE;AACb;;AAEA;AACA;AACA,cAAc,uFAAuF;AACrG;AACA,WAAW,EAAE;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,OAAO,sDAAQ;AACxB,8BAA8B,oEAAU,EAAE,4DAAU;AACpD;AACA;AACA,iBAAiB,IAAI;AACrB;AACA;AACA,CAAC;;AAED;AACA;AACA,cAAc,uFAAuF;AACrG;;AAEA;AACA;AACA,cAAc,uFAAuF;AACrG;;AAE0hB;AAC1hB;;;;;;;;;;;;;ACnwDA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACkC;AAC+E;AACC;AACpD;;AAE9D;AACA;AACA,cAAc,uFAAuF;AACrG;AACA,WAAW,EAAE;AACb;AACA,WAAW,EAAE;AACb;AACA;AACA,IAAI,uDAAS;AACb;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,SAAS,OAAO,wDAAU,UAAU,qBAAqB,IAAI;AAC7D;AACA,+DAA+D,wEAAkB,EAAE,oDAAoD,oCAAoC,EAAE,oDAAoD;AACjO;AACA,CAAC,CAAC,sEAAY;AACd;AACA,IAAI,uDAAS;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,OAAO,uDAAS,UAAU,mCAAmC,IAAI;AAC1E;AACA;AACA,qDAAqD;AACrD,SAAS,OAAO,wDAAU,EAAE;AAC5B,SAAS,4CAA4C,OAAO,sDAAQ,EAAE,GAAG;AACzE,SAAS,OAAO,oEAAU,EAAE;AAC5B,SAAS,OAAO,yEAAe;AAC/B,MAAM;AACN;AACA,CAAC,CAAC,wEAAc;AAChB,WAAW,EAAE;AACb;AACA,WAAW,EAAE;AACb;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb;AACA;AACA;AACA;AACA,sBAAsB,SAAS,YAAY,qBAAqB;AAChE;AACA;AACA;AACA;AACA;AACA,IAAI,uDAAS;AACb;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,OAAO,uDAAS,UAAU,qCAAqC,IAAI;AAC5E;AACA;AACA,CAAC;AACD;AACA,WAAW,GAAG;AACd,YAAY;AACZ;AACA;AACA,2BAA2B,YAAY;AACvC,eAAe,EAAE;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA8C;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C;AAC5C;AACA;AACA;AACA;;AAEA;AACA;AACA,cAAc,uFAAuF;AACrG;AACA,WAAW,EAAE;AACb;AACA,WAAW,EAAE;AACb;AACA;AACA,IAAI,uDAAS;AACb;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,SAAS,OAAO,wDAAU,UAAU,qBAAqB,IAAI;AAC7D;AACA,sEAAsE,wEAAkB,EAAE,2DAA2D,2CAA2C,EAAE,2DAA2D;AAC7P;AACA,CAAC,CAAC,sEAAY;AACd;AACA,IAAI,uDAAS;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA,qBAAqB,qBAAqB,EAAE;AAC5C;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA,wBAAwB,gBAAgB,mFAAqB,MAAM,EAAE;AACrE;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,+BAA+B,sBAAsB;AACrD;AACA;AACA,SAAS,OAAO,uDAAS,UAAU,2CAA2C,IAAI;AAClF;AACA;AACA,4DAA4D;AAC5D,SAAS,OAAO,wDAAU,EAAE;AAC5B,SAAS,mDAAmD,OAAO,sDAAQ,EAAE,GAAG;AAChF,SAAS,OAAO,oEAAU,EAAE;AAC5B,SAAS,OAAO,yEAAe;AAC/B,MAAM;AACN;AACA,kBAAkB,OAAO,mDAAK,uBAAuB;AACrD;AACA;AACA,CAAC,CAAC,wEAAc;AAChB,WAAW,EAAE;AACb;AACA,WAAW,EAAE;AACb;AACA,WAAW,EAAE;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,uDAAS;AACb;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,OAAO,uDAAS,UAAU,yCAAyC,IAAI;AAChF;AACA;AACA,CAAC;AACD;AACA,WAAW,EAAE;AACb,WAAW,EAAE;AACb,YAAY;AACZ;AACA;AACA,eAAe,EAAE;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gDAAgD;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C;AAC/C;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,cAAc,uFAAuF;AACrG;AACA,WAAW,EAAE;AACb;AACA,WAAW,EAAE;AACb;AACA;AACA,IAAI,uDAAS;AACb;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,SAAS,OAAO,wDAAU,UAAU,qBAAqB,IAAI;AAC7D;AACA,mEAAmE,wEAAkB,EAAE,wDAAwD,wCAAwC,EAAE,wDAAwD;AACjP;AACA,CAAC,CAAC,sEAAY;AACd;AACA,IAAI,uDAAS;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA,qBAAqB,qBAAqB,EAAE;AAC5C;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA,wBAAwB,gBAAgB,mFAAqB,MAAM,EAAE;AACrE;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,+BAA+B,sBAAsB;AACrD;AACA;AACA,SAAS,OAAO,uDAAS,UAAU,wCAAwC,IAAI;AAC/E;AACA;AACA,yDAAyD;AACzD,SAAS,OAAO,wDAAU,EAAE;AAC5B,SAAS,gDAAgD,OAAO,sDAAQ,EAAE,GAAG;AAC7E,SAAS,OAAO,oEAAU,EAAE;AAC5B,SAAS,OAAO,yEAAe;AAC/B,MAAM;AACN;AACA,kBAAkB,OAAO,mDAAK,uBAAuB;AACrD;AACA;AACA,CAAC,CAAC,wEAAc;AAChB,WAAW,EAAE;AACb;AACA,WAAW,EAAE;AACb;AACA,WAAW,EAAE;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,uDAAS;AACb;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,OAAO,uDAAS,UAAU,yCAAyC,IAAI;AAChF;AACA;AACA,CAAC;AACD;AACA,WAAW,EAAE;AACb,WAAW,EAAE;AACb,YAAY;AACZ;AACA;AACA,eAAe,EAAE;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oDAAoD;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mDAAmD;AACnD;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,cAAc,uFAAuF;AACrG;AACA,WAAW,EAAE;AACb;AACA;AACA,IAAI,uDAAS;AACb;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,gBAAgB;AAChB;AACA;AACA,SAAS,OAAO,wDAAU,UAAU,qBAAqB,IAAI;AAC7D;AACA,8DAA8D,wEAAkB,EAAE,mDAAmD,mCAAmC,EAAE,mDAAmD;AAC7N;AACA,CAAC,CAAC,sEAAY;AACd;AACA,IAAI,uDAAS;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,OAAO,uDAAS,UAAU,kCAAkC,IAAI;AACzE;AACA;AACA,oDAAoD;AACpD,SAAS,OAAO,wDAAU,EAAE;AAC5B,SAAS,OAAO,oEAAU,EAAE;AAC5B,SAAS,2CAA2C,OAAO,sDAAQ,EAAE,GAAG;AACxE,SAAS,OAAO,yEAAe;AAC/B,MAAM;AACN;AACA,CAAC,CAAC,wEAAc;AAChB,WAAW,EAAE;AACb;AACA,WAAW,EAAE;AACb;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,uDAAS;AACb;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,OAAO,uDAAS,UAAU,yCAAyC,IAAI;AAChF;AACA;AACA,CAAC;;AAED;AACA;AACA,cAAc,uFAAuF;AACrG;AACA,WAAW,EAAE;AACb;AACA,WAAW,EAAE;AACb;AACA;AACA,IAAI,uDAAS;AACb;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA,sBAAsB,+BAA+B,EAAE;AACvD;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,OAAO,wDAAU,UAAU,qBAAqB,IAAI;AAC7D;AACA,8DAA8D,wEAAkB,EAAE,mDAAmD,mCAAmC,EAAE,mDAAmD;AAC7N;AACA,CAAC,CAAC,sEAAY;AACd;AACA,IAAI,uDAAS;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA,qBAAqB,qBAAqB,EAAE;AAC5C;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA,wBAAwB,gBAAgB,mFAAqB,MAAM,EAAE;AACrE;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,+BAA+B,sBAAsB;AACrD;AACA;AACA,SAAS,OAAO,uDAAS,UAAU,mCAAmC,IAAI;AAC1E;AACA;AACA,qDAAqD;AACrD,SAAS,OAAO,wDAAU,EAAE;AAC5B,SAAS,OAAO,oEAAU,EAAE;AAC5B,SAAS,2CAA2C,OAAO,sDAAQ,EAAE,GAAG;AACxE,SAAS,OAAO,yEAAe;AAC/B,MAAM;AACN;AACA,kBAAkB,OAAO,mDAAK,uBAAuB;AACrD;AACA;AACA,CAAC,CAAC,wEAAc;AAChB,WAAW,EAAE;AACb;AACA,WAAW,EAAE;AACb;AACA,WAAW,EAAE;AACb;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,uDAAS;AACb;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,OAAO,uDAAS,UAAU,yCAAyC,IAAI;AAChF;AACA;AACA,CAAC;;AAED;AACA;AACA,cAAc,uFAAuF;AACrG;AACA,WAAW,EAAE;AACb;AACA;AACA,IAAI,uDAAS;AACb;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,OAAO,wDAAU,UAAU,qBAAqB,IAAI;AAC7D;AACA,8DAA8D,wEAAkB,EAAE,mDAAmD,mCAAmC,EAAE,mDAAmD;AAC7N;AACA,CAAC,CAAC,sEAAY;AACd;AACA,IAAI,uDAAS;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA,qBAAqB,qBAAqB,EAAE;AAC5C;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA,wBAAwB,gBAAgB,mFAAqB,MAAM,EAAE;AACrE;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,+BAA+B,sBAAsB;AACrD;AACA;AACA,SAAS,OAAO,uDAAS,UAAU,kCAAkC,IAAI;AACzE;AACA;AACA,oDAAoD;AACpD,SAAS,OAAO,wDAAU,EAAE;AAC5B,SAAS,2CAA2C,OAAO,sDAAQ,EAAE,GAAG;AACxE,SAAS,OAAO,oEAAU,EAAE;AAC5B,SAAS,OAAO,yEAAe;AAC/B,MAAM;AACN;AACA,kBAAkB,OAAO,mDAAK,uBAAuB;AACrD;AACA;AACA,CAAC,CAAC,wEAAc;AAChB,WAAW,EAAE;AACb;AACA,WAAW,EAAE;AACb;AACA,WAAW,EAAE;AACb;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,uDAAS;AACb;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,OAAO,uDAAS,UAAU,yCAAyC,IAAI;AAChF;AACA;AACA,CAAC;;AAED;AACA;AACA,cAAc,uFAAuF;AACrG;AACA,WAAW,EAAE;AACb;AACA;AACA,IAAI,uDAAS;AACb;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,gBAAgB;AAChB;AACA;AACA,SAAS,OAAO,wDAAU,UAAU,qBAAqB,IAAI;AAC7D;AACA,gEAAgE,wEAAkB,EAAE,qDAAqD,qCAAqC,EAAE,qDAAqD;AACrO;AACA,CAAC,CAAC,sEAAY;AACd;AACA,IAAI,uDAAS;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,OAAO,uDAAS,UAAU,oCAAoC,IAAI;AAC3E;AACA;AACA,sDAAsD;AACtD,SAAS,OAAO,wDAAU,EAAE;AAC5B,SAAS,6CAA6C,OAAO,sDAAQ,EAAE,GAAG;AAC1E,SAAS,OAAO,oEAAU,EAAE;AAC5B,SAAS,OAAO,yEAAe;AAC/B,MAAM;AACN;AACA,CAAC,CAAC,wEAAc;AAChB,WAAW,EAAE;AACb;AACA,WAAW,EAAE;AACb;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,uDAAS;AACb;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,OAAO,uDAAS,UAAU,yCAAyC,IAAI;AAChF;AACA;AACA,CAAC;;AAED;AACA;AACA,cAAc,uFAAuF;AACrG;AACA,WAAW,EAAE;AACb;AACA,WAAW,EAAE;AACb;AACA;AACA,IAAI,uDAAS;AACb;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA,SAAS,OAAO,wDAAU,UAAU,qBAAqB,IAAI;AAC7D;AACA,iEAAiE,wEAAkB,EAAE,sDAAsD,sCAAsC,EAAE,sDAAsD;AACzO;AACA,CAAC,CAAC,sEAAY;AACd;AACA,IAAI,uDAAS;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA,qBAAqB,qBAAqB,EAAE;AAC5C;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA,wBAAwB,gBAAgB,mFAAqB,MAAM,EAAE;AACrE;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,+BAA+B,sBAAsB;AACrD;AACA;AACA,SAAS,OAAO,uDAAS,UAAU,qCAAqC,IAAI;AAC5E;AACA;AACA,uDAAuD;AACvD,SAAS,OAAO,wDAAU,EAAE;AAC5B,SAAS,8CAA8C,OAAO,sDAAQ,EAAE,GAAG;AAC3E,SAAS,OAAO,oEAAU,EAAE;AAC5B,SAAS,OAAO,yEAAe;AAC/B,MAAM;AACN;AACA,kBAAkB,OAAO,mDAAK,uBAAuB;AACrD;AACA;AACA,CAAC,CAAC,wEAAc;AAChB,WAAW,EAAE;AACb;AACA,WAAW,EAAE;AACb;AACA,WAAW,EAAE;AACb;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,uDAAS;AACb;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,OAAO,uDAAS,UAAU,yCAAyC,IAAI;AAChF;AACA;AACA,CAAC;;AAED;AACA;AACA,cAAc,uFAAuF;AACrG;AACA,WAAW,EAAE;AACb;AACA;AACA,IAAI,uDAAS;AACb;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,OAAO,wDAAU,UAAU,qBAAqB,IAAI;AAC7D;AACA,6DAA6D,wEAAkB,EAAE,kDAAkD,kCAAkC,EAAE,kDAAkD;AACzN;AACA,CAAC,CAAC,sEAAY;AACd;AACA,IAAI,uDAAS;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA,qBAAqB,qBAAqB,EAAE;AAC5C;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA,wBAAwB,gBAAgB,mFAAqB,MAAM,EAAE;AACrE;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,+BAA+B,sBAAsB;AACrD;AACA;AACA,SAAS,OAAO,uDAAS,UAAU,iCAAiC,IAAI;AACxE;AACA;AACA,mDAAmD;AACnD,SAAS,OAAO,wDAAU,EAAE;AAC5B,SAAS,OAAO,oEAAU,EAAE;AAC5B,SAAS,0CAA0C,OAAO,sDAAQ,EAAE,GAAG;AACvE,SAAS,OAAO,yEAAe;AAC/B,MAAM;AACN;AACA,kBAAkB,OAAO,mDAAK,uBAAuB;AACrD;AACA;AACA,CAAC,CAAC,wEAAc;AAChB,WAAW,EAAE;AACb;AACA,WAAW,EAAE;AACb;AACA,WAAW,EAAE;AACb;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,uDAAS;AACb;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,OAAO,uDAAS,UAAU,yCAAyC,IAAI;AAChF;AACA;AACA,CAAC;;AAED;AACA;AACA,cAAc,uFAAuF;AACrG;AACA,WAAW,EAAE;AACb;AACA;AACA,IAAI,uDAAS;AACb;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,gBAAgB;AAChB;AACA;AACA,SAAS,OAAO,wDAAU,UAAU,qBAAqB,IAAI;AAC7D;AACA,6DAA6D,wEAAkB,EAAE,kDAAkD,kCAAkC,EAAE,kDAAkD;AACzN;AACA,CAAC,CAAC,sEAAY;AACd;AACA,IAAI,uDAAS;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,OAAO,uDAAS,UAAU,iCAAiC,IAAI;AACxE;AACA;AACA,mDAAmD;AACnD,SAAS,OAAO,wDAAU,EAAE;AAC5B,SAAS,0CAA0C,OAAO,sDAAQ,EAAE,GAAG;AACvE,SAAS,OAAO,oEAAU,EAAE;AAC5B,SAAS,OAAO,yEAAe;AAC/B,MAAM;AACN;AACA,CAAC,CAAC,wEAAc;AAChB,WAAW,EAAE;AACb;AACA,WAAW,EAAE;AACb;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,uDAAS;AACb;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,OAAO,uDAAS,UAAU,yCAAyC,IAAI;AAChF;AACA;AACA,CAAC;;AAED;AACA;AACA,cAAc,uFAAuF;AACrG;AACA,WAAW,EAAE;AACb;AACA,WAAW,EAAE;AACb;AACA;AACA,IAAI,uDAAS;AACb;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA,SAAS,OAAO,wDAAU,UAAU,qBAAqB,IAAI;AAC7D;AACA,8DAA8D,wEAAkB,EAAE,mDAAmD,mCAAmC,EAAE,mDAAmD;AAC7N;AACA,CAAC,CAAC,sEAAY;AACd;AACA,IAAI,uDAAS;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA,qBAAqB,qBAAqB,EAAE;AAC5C;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA,wBAAwB,gBAAgB,mFAAqB,MAAM,EAAE;AACrE;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,+BAA+B,sBAAsB;AACrD;AACA;AACA,SAAS,OAAO,uDAAS,UAAU,kCAAkC,IAAI;AACzE;AACA;AACA,oDAAoD;AACpD,SAAS,OAAO,wDAAU,EAAE;AAC5B,SAAS,2CAA2C,OAAO,sDAAQ,EAAE,GAAG;AACxE,SAAS,OAAO,oEAAU,EAAE;AAC5B,SAAS,OAAO,yEAAe;AAC/B,MAAM;AACN;AACA,kBAAkB,OAAO,mDAAK,uBAAuB;AACrD;AACA;AACA,CAAC,CAAC,wEAAc;AAChB,WAAW,EAAE;AACb;AACA,WAAW,EAAE;AACb;AACA,WAAW,EAAE;AACb;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,uDAAS;AACb;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,OAAO,uDAAS,UAAU,2CAA2C,IAAI;AAClF;AACA;AACA,CAAC;;AAED;AACA;AACA,cAAc,uFAAuF;AACrG;AACA,WAAW,EAAE;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,OAAO,sDAAQ;AACxB,8BAA8B,oEAAU;AACxC;AACA;AACA,iBAAiB,IAAI;AACrB;AACA;AACA,CAAC;;AAED;AACA;AACA,cAAc,uFAAuF;AACrG;;AAEA;AACA;AACA,cAAc,uFAAuF;AACrG;;AAE0hC;AAC1hC;;;;;;;;;;;;;AC39CA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAkJ;AAC5F;AACW;AACa;;AAE9E;AACA;AACA,cAAc,uFAAuF;AACrG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD,WAAW,EAOV;AACD;AACA;AACA;AACA;AACA,IAAI,uDAAS;AACb;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,+CAAE,GAAG;AACpB;AACA;AACA,SAAS,OAAO,wDAAU;AAC1B;AACA;AACA,CAAC;;AAED;AACA;AACA,cAAc,uFAAuF;AACrG;AACA;AACA;AACA;AACA,4CAA4C;AAC5C,WAAW,EAgBV;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD,WAAW,EAYV;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,SAAS,OAAO,wDAAU;AAC1B;AACA;AACA,CAAC;;AAED;AACA;AACA,cAAc,uFAAuF;AACrG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,WAAW,EAAE;AACb,YAAY,EAAE;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA,eAAe,EAAE;AACjB;AACA,eAAe,EAAE;AACjB;AACA,eAAe,EAAE;AACjB;AACA,eAAe,EAAE;AACjB;AACA,eAAe,EAAE;AACjB;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,cAAc;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,WAAW,EAAE;AACb,YAAY;AACZ;AACA;AACA,eAAe,EAAE;AACjB,iCAAiC;AACjC;AACA;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA,kDAAkD;AAClD;AACA;AACA;AACA;AACA;AACA;AACA,8CAA8C;AAC9C;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA;AACA,cAAc,uFAAuF;AACrG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD,WAAW,EAmBV;AACD;AACA,IAAI,uDAAS;AACb;AACA;AACA,mCAAmC,QAAQ,UAAU;AACrD;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,EAAE;AACnC;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA,uBAAuB,EAAE;AACzB;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS,OAAO,wDAAU;AAC1B;AACA;AACA,CAAC;AACD,WAAW,EAGV;;AAED;AACA;AACA,cAAc,uFAAuF;AACrG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD,WAAW,EAeV;AACD;AACA;AACA;AACA;AACA,IAAI,uDAAS;AACb;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,SAAS,OAAO,wDAAU;AAC1B;AACA;AACA,CAAC;;AAED;AACA;AACA,cAAc,uFAAuF;AACrG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA,uCAAuC,0DAAY;AACnD;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA,gCAAgC,0DAAY;AAC5C;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA,uCAAuC,0DAAY;AACnD;AACA;AACA,CAAC;AACD,WAAW,EA6CV;;AAED;AACA;AACA,cAAc,uFAAuF;AACrG;AACA,WAAW,EAAE;AACb,oBAAoB,4DAAc;AAClC,WAAW,EAAE;AACb,2BAA2B,4DAAc;AACzC,WAAW,EAAE;AACb,2BAA2B,4DAAc;AACzC,WAAW,EAAE;AACb,qBAAqB,4DAAc;AACnC;AACA;AACA;AACA,mCAAmC;AACnC,WAAW,EAKV;AACD;AACA;AACA;AACA,4BAA4B;AAC5B,WAAW,EAKV;AACD;AACA;AACA;AACA,mCAAmC;AACnC,WAAW,EAKV;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,uBAAuB;AAC/D,iCAAiC,iBAAiB;AAClD,gCAAgC,gBAAgB;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,0DAAY;AACpD,iCAAiC,0DAAY;AAC7C,wCAAwC,0DAAY;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,2DAAI;AAC7B;AACA,uBAAuB,EAAE;AACzB,wBAAwB;AACxB;AACA;AACA;AACA,aAAa;AACb;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,mBAAmB,+CAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,2DAAI;AAC7B;AACA,uBAAuB,EAAE;AACzB,wBAAwB;AACxB;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,cAAc;AACd;AACA,mBAAmB,+CAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB,+EAA+E,kEAAW,KAAK,2DAAI;AACnG,4DAA4D,0DAAG;AAC/D,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA,wBAAwB,sDAAsD,EAAE,IAAI,kEAAW,KAAK,2DAAI;AACxG;AACA;AACA;AACA,uBAAuB,EAAE;AACzB,wBAAwB;AACxB;AACA;AACA,sFAAsF,sDAAQ,CAAC,sDAAQ,GAAG;AAC1G;AACA;AACA,aAAa;AACb;AACA,uBAAuB,EAAE;AACzB,wBAAwB;AACxB;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA,qCAAqC,qBAAqB;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,oDAAoD;AAC3F;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA,uBAAuB,EAAE;AACzB;AACA,uBAAuB,EAAE;AACzB;AACA;AACA,iCAAiC,sDAAQ,8BAA8B,eAAe;AACtF;AACA;AACA,wBAAwB,yDAAY;AACpC;AACA;AACA;AACA;AACA,2BAA2B,QAAQ,gBAAgB;AACnD;AACA;AACA;AACA;AACA,yBAAyB,0BAA0B;AACnD;AACA;AACA,2BAA2B,EAAE;AAC7B;AACA,2BAA2B,EAAE;AAC7B,4BAA4B;AAC5B;AACA,8BAA8B,QAAQ,yDAAY,8BAA8B,+CAAE,aAAa,EAAE,oBAAoB,EAAE;AACvH,uBAAuB,qDAAQ,eAAe,0DAAG;AACjD,2BAA2B,EAAE;AAC7B,4BAA4B;AAC5B;AACA;AACA,+BAA+B,EAAE;AACjC;AACA;AACA,+BAA+B,EAAE;AACjC,+BAA+B,EAAE;AACjC,gCAAgC;AAChC;AACA;AACA;AACA,qBAAqB;AACrB;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,EAAE;AACzB,0BAA0B;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,GAAG;AAClB,gBAAgB,EAAE;AAClB;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,GAAG;AAClB,gBAAgB,EAAE;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iDAAiD,gEAAS;AAC1D,uBAAuB,EAAE;AACzB,wBAAwB;AACxB;AACA;AACA;AACA,uBAAuB,yDAAY,cAAc,+CAAE;AACnD,aAAa;AACb;AACA;AACA,uBAAuB,EAAE;AACzB;AACA,mBAAmB,yDAAY,cAAc,+CAAE;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,GAAG;AAClB,gBAAgB,EAAE;AAClB;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,GAAG;AAClB,gBAAgB,EAAE;AAClB;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,mDAAM,CAAC,kDAAK;AAC3B,oBAAoB;AACpB;AACA,qBAAqB,0CAA0C,EAAE,kCAAkC,gEAAS;AAC5G,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA,uBAAuB,EAAE;AACzB;AACA;AACA;AACA;AACA;AACA,uBAAuB,+CAAE;AACzB;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,GAAG;AAClB,gBAAgB,EAAE;AAClB;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,GAAG;AAClB,gBAAgB,EAAE;AAClB;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,mDAAM,CAAC,kDAAK;AAC3B,oBAAoB;AACpB;AACA,qBAAqB,0CAA0C,EAAE,2BAA2B,gEAAS;AACrG,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA,uBAAuB,EAAE;AACzB;AACA,mBAAmB,yDAAY,cAAc,+CAAE;AAC/C,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,YAAY,yDAAY;AACxB;AACA,2BAA2B,EAAE;AAC7B;AACA;AACA,2BAA2B,EAAE;AAC7B,2BAA2B,EAAE;AAC7B,4BAA4B;AAC5B;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA,8BAA8B,yBAAyB;AACvD;AACA;AACA,uCAAuC,oDAAoD;AAC3F;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,gCAAgC,oDAAoD;AACpF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,uCAAuC,oDAAoD;AAC3F;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA,SAAS,OAAO,wDAAU;AAC1B;AACA;AACA,mDAAmD;AACnD,SAAS,uBAAuB;AAChC,SAAS,wBAAwB;AACjC,SAAS,0BAA0B;AACnC,SAAS,wBAAwB;AACjC,SAAS,kCAAkC;AAC3C,SAAS,8BAA8B,OAAO,oDAAM,6BAA6B,GAAG;AACpF,SAAS,8BAA8B,OAAO,oDAAM,sBAAsB,GAAG;AAC7E,SAAS,8BAA8B,OAAO,oDAAM,uBAAuB,GAAG;AAC9E,SAAS,6BAA6B,OAAO,oDAAM,6BAA6B;AAChF,MAAM;AACN;AACA,CAAC;AACD,WAAW,EA4EV;;AAED;AACA;AACA,cAAc,uFAAuF;AACrG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,EAAE;AACzB,wBAAwB;AACxB;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,uBAAuB,EAAE;AACzB,wBAAwB;AACxB;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,uBAAuB,EAAE;AACzB,wBAAwB;AACxB;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA,gBAAgB;AAChB;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,eAAe,GAAG;AAClB,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA,eAAe,GAAG;AAClB,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA,qCAAqC,qBAAqB;AAC1D,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,kBAAkB;AACzC,uBAAuB,EAAE;AACzB;AACA,sCAAsC;AACtC;AACA,2BAA2B,EAAE;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,EAAE;AACjC;AACA,+BAA+B,EAAE;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wDAAwD;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,EAAE;AACzB;AACA,uBAAuB,EAAE;AACzB,wBAAwB;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,2BAA2B,EAAE;AAC7B;AACA,oBAAoB,yDAAY;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,OAAO,uDAAS;AACzB;AACA,iBAAiB;AACjB;AACA;AACA,qDAAqD;AACrD,SAAS,yBAAyB;AAClC,SAAS,OAAO,wDAAU,EAAE;AAC5B,SAAS,OAAO,+DAAiB;AACjC,MAAM;AACN;AACA,qBAAqB,OAAO,mDAAK,EAAE;AACnC,2BAA2B,OAAO,mDAAK,EAAE;AACzC;AACA;AACA,CAAC;AACD,WAAW,EA4BV;;AAED;AACA;AACA,cAAc,uFAAuF;AACrG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,GAAG;AAClB,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,eAAe,GAAG;AAClB,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,uBAAuB,EAAE;AACzB;AACA,gBAAgB,yDAAY;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,KAAK;AACpB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,eAAe,KAAK;AACpB,gBAAgB;AAChB;AACA;AACA;AACA;AACA,wBAAwB,uBAAuB;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA,sEAAsE,IAAI,GAAG,MAAM,GAAG;AACtF,yFAAyF,MAAM,KAAK;AACpG,2BAA2B,EAAE;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,EAAE;AACzB,wBAAwB;AACxB;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,uBAAuB,EAAE;AACzB,wBAAwB;AACxB;AACA;AACA;AACA,yCAAyC;AACzC;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA;AACA,yCAAyC;AACzC;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,SAAS,OAAO,wDAAU,EAAE;AAC5B,SAAS,OAAO,kDAAI;AACpB;AACA;AACA,iBAAiB;AACjB;AACA;AACA,gDAAgD;AAChD,SAAS,yBAAyB;AAClC,SAAS,OAAO,+DAAiB;AACjC,MAAM;AACN;AACA,CAAC;AACD,WAAW,EAuBV;;AAED;AACA;AACA,cAAc,uFAAuF;AACrG;AACA;AACA;AACA;AACA,kCAAkC;AAClC,WAAW,EAiBV;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA,gCAAgC,aAAa;AAC7C;AACA;AACA;AACA,kCAAkC,0DAA0D;AAC5F,oCAAoC,8DAA8D;AAClG,kCAAkC,6DAA6D;AAC/F,qDAAqD,8EAA8E;AACnI;AACA,iBAAiB,+CAA+C;AAChE,iBAAiB,6DAA6D;AAC9E,iBAAiB,+CAA+C;AAChE,iBAAiB,8DAA8D;AAC/E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA,gCAAgC,aAAa;AAC7C;AACA;AACA;AACA,kCAAkC,0DAA0D;AAC5F,oCAAoC,8DAA8D;AAClG,kCAAkC,6DAA6D;AAC/F,qDAAqD,8EAA8E;AACnI,iBAAiB,+CAA+C;AAChE,iBAAiB,6DAA6D;AAC9E,iBAAiB,+CAA+C;AAChE,iBAAiB,8DAA8D;AAC/E;AACA;AACA;AACA;AACA;AACA,SAAS,OAAO,sDAAQ;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,CAAC;;AAED;AACA;AACA,cAAc,uFAAuF;AACrG;;AAE8U;AAC9U;;;;;;;;;;;;;AClmEA;AAAA;AAAA;AACA;AACA,cAAc,kDAAkD;AAChE;AACA;AACA;AACA,gCAAgC,0BAA0B;AAC1D,gCAAgC,kBAAkB;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA,cAAc,kDAAkD;AAChE;;AAEA;AACA;AACA,cAAc,kDAAkD;AAChE;;AAE+B;;AAE/B,2CAA2C,cAAc,23C;;;;;;;;;;;;AC3CzD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAuI;AACvC;AACsd;AAClZ;AACrD;AACe;AAC4B;AAC3H;AACuB;AACwD;;AAE9G;AACA;AACA,cAAc,uEAAuE;AACrF;;AAEA;AACA;AACA,cAAc,uEAAuE;AACrF;AACA,WAAW,OAAO;AAClB;AACA,sBAAsB,EAAE;AACxB,uBAAuB,EAAE;AACzB,uBAAuB,EAAE;AACzB,uBAAuB,EAAE;AACzB,sBAAsB,EAAE;AACxB,sBAAsB,EAAE;AACxB,sBAAsB,EAAE;AACxB,sBAAsB,EAAE;AACxB;AACA,WAAW,OAAO;AAClB;AACA,sBAAsB,EAAE;AACxB,uBAAuB,EAAE;AACzB,uBAAuB,EAAE;AACzB,uBAAuB,EAAE;AACzB,sBAAsB,EAAE;AACxB,sBAAsB,EAAE;AACxB,sBAAsB,EAAE;AACxB,sBAAsB,EAAE;AACxB;AACA,WAAW,OAAO;AAClB;AACA,sBAAsB,EAAE;AACxB,uBAAuB,EAAE;AACzB,uBAAuB,EAAE;AACzB,uBAAuB,EAAE;AACzB,sBAAsB,EAAE;AACxB,sBAAsB,EAAE;AACxB,sBAAsB,EAAE;AACxB,sBAAsB,EAAE;AACxB;;AAEA;AACA;AACA,cAAc,uEAAuE;AACrF;AACA,WAAW,EAAE;AACb;AACA,IAAI,iEAAK;AACT,oBAAoB,cAAc;AAClC,KAAK;AACL,IAAI,mEAAO,IAAI,UAAU,GAAG,OAAO,GAAG,QAAQ,GAAG,iEAAK;AACtD,oBAAoB,YAAY;AAChC,KAAK;AACL;AACA,WAAW,EAAE;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,qEAAS;AACtB;AACA,CAAC;AACD,WAAW,EAAE;AACb,cAAc,qEAAS;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA,cAAc,uEAAuE;AACrF;AACA,WAAW,EAAE;AACb;AACA,IAAI,iEAAK;AACT;AACA;AACA,KAAK;AACL,IAAI,mEAAO,IAAI,UAAU,GAAG,OAAO,GAAG,QAAQ,GAAG,qEAAS;AAC1D,QAAQ,iEAAK;AACb;AACA,qCAAqC,eAAe,8BAA8B,SAAS,IAAI,SAAS,IAAI,SAAS,IAAI,YAAY;AACrI,SAAS;AACT,QAAQ,iEAAK;AACb;AACA,qCAAqC,aAAa,8BAA8B,SAAS,IAAI,SAAS,IAAI,SAAS,IAAI,UAAU;AACjI,SAAS;AACT;AACA;AACA,WAAW,EAAE;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,cAAc,qEAAS;AACvB,YAAY,sDAAQ,GAAG;AACvB,CAAC;AACD,WAAW,EAAE;AACb,iBAAiB,qEAAS;AAC1B,YAAY,sDAAQ,GAAG,iBAAiB,iBAAiB;AACzD,CAAC;AACD,WAAW,EAAE;AACb,eAAe,qEAAS;AACxB,YAAY,sDAAQ,GAAG,iBAAiB,yBAAyB;AACjE,CAAC;AACD,WAAW,EAAE;AACb,gBAAgB,qEAAS;AACzB,YAAY,sDAAQ,GAAG,iBAAiB,yCAAyC;AACjF,CAAC;AACD,WAAW,EAAE;AACb,iBAAiB,qEAAS;AAC1B,YAAY,sDAAQ,GAAG,iBAAiB,uBAAuB;AAC/D,CAAC;AACD,WAAW,EAAE;AACb,iBAAiB,qEAAS;AAC1B,YAAY,sDAAQ,GAAG,iBAAiB,wBAAwB;AAChE,CAAC;AACD,WAAW,EAAE;AACb,iBAAiB,qEAAS;AAC1B,YAAY,sDAAQ,GAAG,iBAAiB,+CAA+C;AACvF,CAAC;AACD,WAAW,EAAE;AACb,iBAAiB,qEAAS;AAC1B,YAAY,sDAAQ,GAAG,iBAAiB,gDAAgD;AACxF,CAAC;;AAED;AACA;AACA,cAAc,uEAAuE;AACrF;AACA,WAAW,EAAE;AACb;AACA,IAAI,iEAAK;AACT,oBAAoB,cAAc;AAClC,+BAA+B,SAAS,GAAG,SAAS,GAAG,SAAS,GAAG,YAAY;AAC/E,4BAA4B,MAAM,GAAG,MAAM;AAC3C,KAAK;AACL,IAAI,mEAAO,IAAI,UAAU,GAAG,OAAO,GAAG,QAAQ,GAAG,iEAAK;AACtD;AACA,oBAAoB,YAAY;AAChC,+BAA+B,SAAS,GAAG,SAAS,GAAG,SAAS,GAAG,UAAU;AAC7E,4BAA4B,MAAM,GAAG,MAAM;AAC3C,KAAK;AACL;AACA,WAAW,EAAE;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,oBAAoB,sDAAQ,GAAG,iBAAiB,sDAAsD;AACtG,WAAW,EAAE;AACb,qBAAqB,qEAAS;AAC9B,YAAY,sDAAQ,GAAG;AACvB,CAAC;AACD,WAAW,EAAE;AACb,sBAAsB,qEAAS;AAC/B,YAAY,sDAAQ,GAAG;AACvB,CAAC;AACD,WAAW,EAAE;AACb,kBAAkB,qEAAS;AAC3B,YAAY,sDAAQ,GAAG,iBAAiB,cAAc;AACtD,CAAC;AACD,WAAW,EAAE;AACb,mBAAmB,qEAAS;AAC5B,YAAY,sDAAQ,GAAG,kBAAkB,cAAc;AACvD,CAAC;AACD,WAAW,EAAE;AACb,oBAAoB,qEAAS;AAC7B,YAAY,sDAAQ,GAAG,iBAAiB,gBAAgB;AACxD,CAAC;AACD,WAAW,EAAE;AACb,qBAAqB,qEAAS;AAC9B,YAAY,sDAAQ,GAAG,kBAAkB,gBAAgB;AACzD,CAAC;AACD,WAAW,EAAE;AACb,qBAAqB,qEAAS;AAC9B,YAAY,sDAAQ,GAAG,iBAAiB,iBAAiB;AACzD,CAAC;AACD,WAAW,EAAE;AACb,sBAAsB,qEAAS;AAC/B,YAAY,sDAAQ,GAAG,kBAAkB,iBAAiB;AAC1D,CAAC;AACD,WAAW,EAAE;AACb,mBAAmB,qEAAS;AAC5B,YAAY,sDAAQ,GAAG,iBAAiB,eAAe;AACvD,CAAC;AACD,WAAW,EAAE;AACb,oBAAoB,qEAAS;AAC7B,YAAY,sDAAQ,GAAG,kBAAkB,eAAe;AACxD,CAAC;AACD,WAAW,EAAE;AACb,iBAAiB,qEAAS;AAC1B,YAAY,sDAAQ,GAAG,iBAAiB,6BAA6B;AACrE,CAAC;AACD,WAAW,EAAE;AACb,kBAAkB,qEAAS;AAC3B,YAAY,sDAAQ,GAAG,kBAAkB,6BAA6B;AACtE,CAAC;AACD,WAAW,EAAE;AACb,iBAAiB,qEAAS;AAC1B,YAAY,sDAAQ,GAAG,iBAAiB,gCAAgC;AACxE,CAAC;AACD,WAAW,EAAE;AACb,kBAAkB,qEAAS;AAC3B,YAAY,sDAAQ,GAAG,kBAAkB,gCAAgC;AACzE,CAAC;AACD,WAAW,EAAE;AACb,iBAAiB,qEAAS;AAC1B,YAAY,sDAAQ,GAAG,iBAAiB,+BAA+B;AACvE,CAAC;AACD,WAAW,EAAE;AACb,kBAAkB,qEAAS;AAC3B,YAAY,sDAAQ,GAAG,kBAAkB,+BAA+B;AACxE,CAAC;AACD,WAAW,EAAE;AACb,iBAAiB,qEAAS;AAC1B,YAAY,sDAAQ,GAAG,iBAAiB,4BAA4B;AACpE,CAAC;AACD,WAAW,EAAE;AACb,kBAAkB,qEAAS;AAC3B,YAAY,sDAAQ,GAAG,kBAAkB,4BAA4B;AACrE,CAAC;AACD,WAAW,EAAE;AACb,wBAAwB,qEAAS;AACjC,YAAY,sDAAQ,GAAG,iBAAiB,qCAAqC;AAC7E,CAAC;AACD,WAAW,EAAE;AACb,yBAAyB,qEAAS;AAClC,YAAY,sDAAQ,GAAG,kBAAkB,qCAAqC;AAC9E,CAAC;AACD,WAAW,EAAE;AACb,wBAAwB,qEAAS;AACjC,YAAY,sDAAQ,GAAG,iBAAiB,sCAAsC;AAC9E,CAAC;AACD,WAAW,EAAE;AACb,yBAAyB,qEAAS;AAClC,YAAY,sDAAQ,GAAG,kBAAkB,sCAAsC;AAC/E,CAAC;AACD,WAAW,EAAE;AACb,kBAAkB,qEAAS;AAC3B,YAAY,sDAAQ,GAAG,iBAAiB,qCAAqC;AAC7E,CAAC;AACD,WAAW,EAAE;AACb,mBAAmB,qEAAS;AAC5B,YAAY,sDAAQ,GAAG,kBAAkB,qCAAqC;AAC9E,CAAC;AACD,WAAW,EAAE;AACb,kBAAkB,qEAAS;AAC3B,YAAY,sDAAQ,GAAG,iBAAiB,qCAAqC;AAC7E,CAAC;AACD,WAAW,EAAE;AACb,mBAAmB,qEAAS;AAC5B,YAAY,sDAAQ,GAAG,kBAAkB,qCAAqC;AAC9E,CAAC;;AAED;AACA;AACA,cAAc,uEAAuE;AACrF;AACA,WAAW,EAAE;AACb;AACA,IAAI,mEAAO,IAAI,UAAU,GAAG,OAAO,GAAG,QAAQ,GAAG,qEAAS;AAC1D,QAAQ,iEAAK;AACb;AACA,gDAAgD,WAAW;AAC3D,gCAAgC,MAAM,GAAG,MAAM;AAC/C,SAAS;AACT,QAAQ,iEAAK;AACb;AACA,iCAAiC,UAAU,gBAAgB,WAAW,IAAI,eAAe;AACzF,SAAS;AACT,QAAQ,iEAAK;AACb;AACA,kCAAkC,YAAY,gBAAgB,WAAW,GAAG,eAAe;AAC3F,SAAS;AACT,QAAQ,iEAAK;AACb;AACA,iCAAiC,YAAY,gBAAgB,WAAW,IAAI,eAAe;AAC3F,SAAS;AACT,QAAQ,iEAAK;AACb;AACA,kCAAkC,YAAY,gBAAgB,WAAW,GAAG,eAAe;AAC3F,SAAS;AACT,QAAQ,iEAAK;AACb;AACA,iCAAiC,YAAY,gBAAgB,WAAW,IAAI,eAAe;AAC3F,SAAS;AACT,QAAQ,iEAAK;AACb;AACA,kCAAkC,YAAY,gBAAgB,WAAW,GAAG,eAAe;AAC3F,SAAS;AACT,QAAQ,iEAAK;AACb;AACA,iCAAiC,YAAY,gBAAgB,WAAW,IAAI,eAAe;AAC3F,SAAS;AACT,QAAQ,iEAAK;AACb;AACA,kCAAkC,UAAU,gBAAgB,WAAW,GAAG,aAAa;AACvF,SAAS;AACT,QAAQ,iEAAK;AACb;AACA,iCAAiC,UAAU,gBAAgB,WAAW,IAAI,aAAa;AACvF,SAAS;AACT,QAAQ,iEAAK;AACb;AACA,gDAAgD,WAAW;AAC3D,gCAAgC,MAAM,GAAG,MAAM;AAC/C,SAAS;AACT;AACA;AACA,WAAW,EAAE;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,eAAe,qEAAS;AACxB,YAAY,sDAAQ,GAAG,iBAAiB,iBAAiB;AACzD,CAAC;AACD,WAAW,EAAE;AACb,eAAe,qEAAS;AACxB,YAAY,sDAAQ,GAAG,iBAAiB,iBAAiB;AACzD,CAAC;AACD,WAAW,EAAE;AACb,eAAe,qEAAS;AACxB,YAAY,sDAAQ,GAAG,iBAAiB,gFAAgF;AACxH,CAAC;AACD,WAAW,EAAE;AACb,kBAAkB,qEAAS;AAC3B,YAAY,sDAAQ,GAAG,iBAAiB,mGAAmG;AAC3I,CAAC;AACD,WAAW,EAAE;AACb,iBAAiB,qEAAS;AAC1B,YAAY,sDAAQ,GAAG,iBAAiB,kHAAkH;AAC1J,CAAC;AACD,WAAW,EAAE;AACb,gBAAgB,qEAAS;AACzB,YAAY,sDAAQ,GAAG,iBAAiB,iHAAiH;AACzJ,CAAC;AACD,WAAW,EAAE;AACb,kBAAkB,qEAAS;AAC3B,YAAY,sDAAQ,GAAG,iBAAiB,oHAAoH;AAC5J,CAAC;AACD,WAAW,EAAE;AACb,cAAc,qEAAS;AACvB,YAAY,sDAAQ,GAAG,iBAAiB,+GAA+G;AACvJ,CAAC;AACD,WAAW,EAAE;AACb,cAAc,qEAAS;AACvB,YAAY,sDAAQ,GAAG,iBAAiB,kHAAkH;AAC1J,CAAC;AACD,WAAW,EAAE;AACb,cAAc,qEAAS;AACvB,YAAY,sDAAQ,GAAG,iBAAiB,iHAAiH;AACzJ,CAAC;AACD,WAAW,EAAE;AACb,cAAc,qEAAS;AACvB,YAAY,sDAAQ,GAAG,iBAAiB,8GAA8G;AACtJ,CAAC;;AAED;AACA;AACA,cAAc,uEAAuE;AACrF;AACA,WAAW,EAAE;AACb;AACA,IAAI,iEAAK;AACT;AACA;AACA;AACA,KAAK;AACL,IAAI,mEAAO,IAAI,UAAU,GAAG,OAAO,GAAG,QAAQ,GAAG,qEAAS;AAC1D,QAAQ,iEAAK;AACb;AACA;AACA;AACA,SAAS;AACT,QAAQ,iEAAK;AACb;AACA;AACA;AACA,SAAS;AACT,QAAQ,iEAAK;AACb;AACA;AACA;AACA,SAAS;AACT,QAAQ,iEAAK;AACb;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,WAAW,EAAE;AACb;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb;AACA,IAAI,mEAAO,IAAI,UAAU,GAAG,OAAO,GAAG,QAAQ,GAAG,qEAAS;AAC1D,QAAQ,iEAAK;AACb;AACA,gCAAgC,WAAW;AAC3C,SAAS;AACT,QAAQ,iEAAK;AACb;AACA,gCAAgC,SAAS;AACzC,SAAS;AACT,QAAQ,iEAAK;AACb;AACA,gCAAgC,WAAW;AAC3C,SAAS;AACT;AACA;AACA,WAAW,EAAE;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb;AACA,IAAI,mEAAO,IAAI,UAAU,GAAG,OAAO,GAAG,QAAQ,GAAG,qEAAS;AAC1D,QAAQ,iEAAK;AACb;AACA;AACA,gCAAgC,WAAW;AAC3C,SAAS;AACT,QAAQ,iEAAK;AACb;AACA;AACA,gCAAgC,UAAU;AAC1C,SAAS;AACT,QAAQ,iEAAK;AACb;AACA;AACA,gCAAgC,SAAS;AACzC,SAAS;AACT;AACA;AACA,WAAW,EAAE;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,iBAAiB,qEAAS;AAC1B,YAAY,sDAAQ,GAAG;AACvB,CAAC;AACD,WAAW,EAAE;AACb,iBAAiB,qEAAS;AAC1B,YAAY,sDAAQ,GAAG,kBAAkB,cAAc;AACvD,CAAC;AACD,WAAW,EAAE;AACb,gBAAgB,qEAAS;AACzB,YAAY,sDAAQ,GAAG;AACvB,CAAC;AACD,WAAW,EAAE;AACb,YAAY,qEAAS;AACrB,YAAY,sDAAQ,GAAG;AACvB,CAAC;;AAED;AACA;AACA,cAAc,uEAAuE;AACrF;;AAEA;AACA;AACA,cAAc,uEAAuE;AACrF;AACA,WAAW,EAAE;AACb;AACA,IAAI,iEAAK;AACT,oBAAoB,cAAc;AAClC,2BAA2B,WAAW,GAAG,WAAW;AACpD,4BAA4B,MAAM,GAAG,MAAM;AAC3C,KAAK;AACL,IAAI,mEAAO,IAAI,UAAU,GAAG,OAAO,GAAG,QAAQ,GAAG,iEAAK;AACtD,oBAAoB,YAAY;AAChC,2BAA2B,WAAW,GAAG,SAAS;AAClD,4BAA4B,MAAM,GAAG,MAAM;AAC3C,KAAK;AACL;AACA,WAAW,EAAE;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,sBAAsB,sDAAQ,GAAG,mBAAmB,kFAAkF;AACtI,WAAW,EAAE;AACb,oBAAoB,qEAAS,UAAU,yBAAyB;AAChE,WAAW,EAAE;AACb,gBAAgB,qEAAS;AACzB,YAAY,sDAAQ,GAAG,mBAAmB,0BAA0B;AACpE,CAAC;AACD,WAAW,EAAE;AACb,uBAAuB,qEAAS;AAChC,YAAY,sDAAQ,GAAG,mBAAmB,gCAAgC;AAC1E,CAAC;AACD,WAAW,EAAE;AACb,iBAAiB,qEAAS;AAC1B,YAAY,sDAAQ,GAAG,mBAAmB,yBAAyB;AACnE,CAAC;AACD,WAAW,EAAE;AACb,kBAAkB,qEAAS;AAC3B,YAAY,sDAAQ,GAAG,mBAAmB,yBAAyB;AACnE,CAAC;AACD,WAAW,EAAE;AACb,oBAAoB,qEAAS;AAC7B,YAAY,sDAAQ,GAAG,mBAAmB,yDAAyD;AACnG,CAAC;AACD,WAAW,EAAE;AACb,gBAAgB,qEAAS;AACzB,YAAY,sDAAQ,GAAG,mBAAmB,0BAA0B;AACpE,CAAC;AACD,WAAW,EAAE;AACb,gBAAgB,qEAAS;AACzB,YAAY,sDAAQ,GAAG,mBAAmB,uBAAuB;AACjE,CAAC;AACD,WAAW,EAAE;AACb,uBAAuB,qEAAS;AAChC,YAAY,sDAAQ,GAAG,mBAAmB,yDAAyD;AACnG,CAAC;AACD,WAAW,EAAE;AACb,mBAAmB,qEAAS;AAC5B,YAAY,sDAAQ,GAAG,mBAAmB,4BAA4B;AACtE,CAAC;AACD,WAAW,EAAE;AACb,uBAAuB,qEAAS;AAChC,YAAY,sDAAQ,GAAG,mBAAmB,gCAAgC;AAC1E,CAAC;AACD,WAAW,EAAE;AACb,gBAAgB,qEAAS;AACzB,YAAY,sDAAQ,GAAG,mBAAmB,6BAA6B;AACvE,CAAC;AACD,WAAW,EAAE;AACb,qBAAqB,qEAAS;AAC9B,YAAY,sDAAQ,GAAG,mBAAmB,sDAAsD;AAChG,CAAC;AACD,WAAW,EAAE;AACb,oBAAoB,qEAAS;AAC7B,YAAY,sDAAQ,GAAG,mBAAmB,4BAA4B;AACtE,CAAC;AACD,WAAW,EAAE;AACb,sBAAsB,qEAAS;AAC/B,YAAY,sDAAQ,GAAG,mBAAmB,4DAA4D;AACtG,CAAC;AACD,WAAW,EAAE;AACb,qBAAqB,qEAAS,UAAU,0BAA0B;AAClE,WAAW,EAAE;AACb,iBAAiB,qEAAS;AAC1B,YAAY,sDAAQ,GAAG,oBAAoB,0BAA0B;AACrE,CAAC;AACD,WAAW,EAAE;AACb,iBAAiB,qEAAS;AAC1B,YAAY,sDAAQ,GAAG,oBAAoB,6BAA6B;AACxE,CAAC;AACD,WAAW,EAAE;AACb,wBAAwB,qEAAS;AACjC,YAAY,sDAAQ,GAAG,oBAAoB,8BAA8B;AACzE,CAAC;AACD,WAAW,EAAE;AACb,qBAAqB,qEAAS;AAC9B,YAAY,sDAAQ,GAAG,oBAAoB,uDAAuD;AAClG,CAAC;AACD,WAAW,EAAE;AACb,wBAAwB,qEAAS;AACjC,YAAY,sDAAQ,GAAG,oBAAoB,uDAAuD;AAClG,CAAC;AACD,WAAW,EAAE;AACb,kBAAkB,qEAAS;AAC3B,YAAY,sDAAQ,GAAG,oBAAoB,yBAAyB;AACpE,CAAC;AACD,WAAW,EAAE;AACb,mBAAmB,qEAAS;AAC5B,YAAY,sDAAQ,GAAG,oBAAoB,yBAAyB;AACpE,CAAC;AACD,WAAW,EAAE;AACb,iBAAiB,qEAAS;AAC1B,YAAY,sDAAQ,GAAG,oBAAoB,0BAA0B;AACrE,CAAC;AACD,WAAW,EAAE;AACb,iBAAiB,qEAAS;AAC1B,YAAY,sDAAQ,GAAG,oBAAoB,uBAAuB;AAClE,CAAC;AACD,WAAW,EAAE;AACb,oBAAoB,qEAAS;AAC7B,YAAY,sDAAQ,GAAG,oBAAoB,4BAA4B;AACvE,CAAC;AACD,WAAW,EAAE;AACb,qBAAqB,qEAAS;AAC9B,YAAY,sDAAQ,GAAG,oBAAoB,4BAA4B;AACvE,CAAC;AACD,WAAW,EAAE;AACb,wBAAwB,qEAAS;AACjC,YAAY,sDAAQ,GAAG,oBAAoB,8BAA8B;AACzE,CAAC;AACD,WAAW,EAAE;AACb,sBAAsB,qEAAS;AAC/B,YAAY,sDAAQ,GAAG,oBAAoB,oDAAoD;AAC/F,CAAC;AACD,WAAW,EAAE;AACb,uBAAuB,qEAAS;AAChC,YAAY,sDAAQ,GAAG,oBAAoB,0DAA0D;AACrG,CAAC;;AAED;AACA;AACA,cAAc,uEAAuE;AACrF;AACA,WAAW,EAAE;AACb;AACA,IAAI,iEAAK;AACT,oBAAoB,cAAc;AAClC,sBAAsB,cAAc;AACpC,KAAK;AACL,IAAI,mEAAO,IAAI,UAAU,GAAG,OAAO,GAAG,QAAQ,GAAG,iEAAK;AACtD,oBAAoB,YAAY;AAChC,sBAAsB,YAAY;AAClC,KAAK;AACL;AACA,WAAW,EAAE;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,iBAAiB,qEAAS,UAAU,yBAAyB;AAC7D,WAAW,EAAE;AACb,kBAAkB,qEAAS;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD,WAAW,EAAE;AACb,mBAAmB,qEAAS;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD,WAAW,EAAE;AACb,oBAAoB,qEAAS;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD,WAAW,EAAE;AACb,gBAAgB,qEAAS;AACzB,YAAY,sDAAQ,GAAG,mBAAmB,kGAAkG;AAC5I,CAAC;AACD,WAAW,EAAE;AACb,gBAAgB,qEAAS;AACzB,YAAY,sDAAQ,GAAG,mBAAmB,mGAAmG;AAC7I,CAAC;AACD,WAAW,EAAE;AACb,gBAAgB,qEAAS;AACzB,YAAY,sDAAQ,GAAG,mBAAmB,iGAAiG;AAC3I,CAAC;AACD,WAAW,EAAE;AACb,gBAAgB,qEAAS;AACzB,YAAY,sDAAQ,GAAG,mBAAmB,kGAAkG;AAC5I,CAAC;AACD,WAAW,EAAE;AACb,kBAAkB,qEAAS,UAAU,0BAA0B;AAC/D,WAAW,EAAE;AACb,oBAAoB,qEAAS;AAC7B,YAAY,sDAAQ,GAAG,oBAAoB,kCAAkC;AAC7E,CAAC;AACD,WAAW,EAAE;AACb,qBAAqB,qEAAS;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD,WAAW,EAAE;AACb,mBAAmB,qEAAS;AAC5B,YAAY,sDAAQ,GAAG,oBAAoB,mCAAmC;AAC9E,CAAC;AACD,WAAW,EAAE;AACb,iBAAiB,qEAAS;AAC1B,YAAY,sDAAQ,GAAG,oBAAoB,kGAAkG;AAC7I,CAAC;AACD,WAAW,EAAE;AACb,iBAAiB,qEAAS;AAC1B,YAAY,sDAAQ,GAAG,oBAAoB,iGAAiG;AAC5I,CAAC;AACD,WAAW,EAAE;AACb,iBAAiB,qEAAS;AAC1B,YAAY,sDAAQ,GAAG,oBAAoB,kGAAkG;AAC7I,CAAC;AACD,WAAW,EAAE;AACb,iBAAiB,qEAAS;AAC1B,YAAY,sDAAQ,GAAG,oBAAoB,mGAAmG;AAC9I,CAAC;;AAED;AACA;AACA,cAAc,uEAAuE;AACrF;AACA,WAAW,EAAE;AACb;AACA,IAAI,iEAAK;AACT,oBAAoB,cAAc;AAClC,4BAA4B,WAAW,GAAG,YAAY;AACtD,4BAA4B,MAAM,GAAG,MAAM;AAC3C,KAAK;AACL,IAAI,mEAAO,IAAI,UAAU,GAAG,OAAO,GAAG,QAAQ,GAAG,iEAAK;AACtD,oBAAoB,YAAY;AAChC,4BAA4B,WAAW,GAAG,UAAU;AACpD,4BAA4B,MAAM,GAAG,MAAM;AAC3C,KAAK;AACL;AACA,WAAW,EAAE;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,qBAAqB,sDAAQ,GAAG,gBAAgB,qGAAqG;AACrJ,WAAW,EAAE;AACb,oBAAoB,qEAAS;AAC7B,YAAY,sDAAQ,GAAG;AACvB,CAAC;AACD,WAAW,EAAE;AACb,sBAAsB,qEAAS;AAC/B,YAAY,sDAAQ,GAAG,gBAAgB,gDAAgD;AACvF,CAAC;AACD,WAAW,EAAE;AACb,uBAAuB,qEAAS;AAChC,YAAY,sDAAQ,GAAG,gBAAgB,kCAAkC;AACzE,CAAC;AACD,WAAW,EAAE;AACb,qBAAqB,qEAAS;AAC9B,YAAY,sDAAQ,GAAG,gBAAgB,gEAAgE;AACvG,CAAC;AACD,WAAW,EAAE;AACb,oBAAoB,qEAAS;AAC7B,YAAY,sDAAQ,GAAG,gBAAgB,kCAAkC;AACzE,CAAC;AACD,WAAW,EAAE;AACb,sBAAsB,qEAAS;AAC/B,YAAY,sDAAQ,GAAG,gBAAgB,iFAAiF;AACxH,CAAC;AACD,WAAW,EAAE;AACb,uBAAuB,qEAAS;AAChC,YAAY,sDAAQ,GAAG,gBAAgB,mDAAmD;AAC1F,CAAC;AACD,WAAW,EAAE;AACb,qBAAqB,qEAAS;AAC9B,YAAY,sDAAQ,GAAG,gBAAgB,iFAAiF;AACxH,CAAC;AACD,WAAW,EAAE;AACb,qBAAqB,qEAAS;AAC9B,YAAY,sDAAQ,GAAG;AACvB,CAAC;AACD,WAAW,EAAE;AACb,uBAAuB,qEAAS;AAChC,YAAY,sDAAQ,GAAG,mBAAmB,gDAAgD;AAC1F,CAAC;AACD,WAAW,EAAE;AACb,wBAAwB,qEAAS;AACjC,YAAY,sDAAQ,GAAG,mBAAmB,gCAAgC;AAC1E,CAAC;AACD,WAAW,EAAE;AACb,uBAAuB,qEAAS;AAChC,YAAY,sDAAQ,GAAG,mBAAmB,8DAA8D;AACxG,CAAC;AACD,WAAW,EAAE;AACb,qBAAqB,qEAAS;AAC9B,YAAY,sDAAQ,GAAG,mBAAmB,mCAAmC;AAC7E,CAAC;AACD,WAAW,EAAE;AACb,uBAAuB,qEAAS;AAChC,YAAY,sDAAQ,GAAG,mBAAmB,kFAAkF;AAC5H,CAAC;AACD,WAAW,EAAE;AACb,wBAAwB,qEAAS;AACjC,YAAY,sDAAQ,GAAG,mBAAmB,kDAAkD;AAC5F,CAAC;AACD,WAAW,EAAE;AACb,sBAAsB,qEAAS;AAC/B,YAAY,sDAAQ,GAAG,mBAAmB,gFAAgF;AAC1H,CAAC;;AAED;AACA;AACA,cAAc,uEAAuE;AACrF;AACA,WAAW,EAAE;AACb;AACA,IAAI,iEAAK;AACT,oBAAoB,gBAAgB;AACpC,mBAAmB,eAAe;AAClC,KAAK;AACL,IAAI,mEAAO,IAAI,UAAU,GAAG,OAAO,GAAG,QAAQ,GAAG,iEAAK;AACtD,oBAAoB,cAAc;AAClC,mBAAmB,aAAa;AAChC,KAAK;AACL;AACA,WAAW,EAAE;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,gBAAgB,qEAAS;AACzB,YAAY,sDAAQ,GAAG,iBAAiB,2FAA2F;AACnI,CAAC;AACD,WAAW,EAAE;AACb,iBAAiB,qEAAS;AAC1B,YAAY,sDAAQ,GAAG,iBAAiB,2FAA2F;AACnI,CAAC;;AAED;AACA;AACA,cAAc,uEAAuE;AACrF;;AAEA;AACA;AACA,cAAc,uEAAuE;AACrF;;AAEA;AACA;AACA,cAAc,uEAAuE;AACrF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,KAAK;AACpB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,eAAe,KAAK;AACpB,gBAAgB;AAChB;AACA;AACA;AACA;AACA,wBAAwB,uBAAuB;AAC/C;AACA;AACA;AACA,yDAAyD,sDAAQ;AACjE;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,KAAK;AACpB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,eAAe,KAAK;AACpB,gBAAgB;AAChB;AACA;AACA;AACA;AACA,wBAAwB,uBAAuB;AAC/C;AACA;AACA;AACA,uDAAuD,sDAAQ;AAC/D;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,KAAK;AACpB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,eAAe,KAAK;AACpB,gBAAgB;AAChB;AACA;AACA;AACA;AACA,wBAAwB,uBAAuB;AAC/C;AACA;AACA;AACA,wDAAwD,sDAAQ;AAChE;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA,cAAc,uEAAuE;AACrF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,SAAS,OAAO,uDAAS,UAAU,6BAA6B;AAChE;AACA;AACA,+DAA+D;AAC/D,SAAS;AACT,MAAM;AACN;AACA,kBAAkB,OAAO,mDAAK,2BAA2B;AACzD,kCAAkC,OAAO,0DAAY,oBAAoB;AACzE;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,SAAS,OAAO,uDAAS,UAAU,4BAA4B;AAC/D;AACA;AACA,8DAA8D;AAC9D,SAAS;AACT,MAAM;AACN;AACA,kBAAkB,OAAO,mDAAK,0BAA0B;AACxD,iCAAiC,OAAO,0DAAY,oBAAoB;AACxE;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,OAAO,sDAAQ;AACxB;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,CAAC;;AAED;AACA;AACA,cAAc,uEAAuE;AACrF;;AAEA;AACA;AACA,cAAc,uEAAuE;AACrF;AACA;AACA;AACA,WAAW,EAAE;AACb,WAAW,GAAG;AACd,YAAY;AACZ;AACA;AACA,eAAe,EAAE;AACjB;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,WAAW,EAAE;AACb,YAAY;AACZ;AACA;AACA;AACA,eAAe,EAAE;AACjB;AACA;AACA;AACA;AACA;AACA,2BAA2B,sDAAQ,oCAAoC,iBAAiB;AACxF;AACA,uBAAuB,EAAE;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,QAAQ,gBAAgB;AAC3C;AACA;AACA;AACA;AACA,iBAAiB,0BAA0B;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,WAAW,EAAE;AACb,YAAY,EAAE;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,sDAAQ,oCAAoC,UAAU;AAC5E;AACA;AACA;AACA;AACA,mBAAmB,QAAQ,gBAAgB;AAC3C;AACA;AACA;AACA;AACA,iBAAiB,0BAA0B;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,YAAY,EAAE;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,sDAAQ;AACvB;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA,0BAA0B,sDAAQ,qCAAqC,UAAU;AACjF;AACA;AACA;AACA;AACA,uBAAuB,QAAQ,gBAAgB;AAC/C;AACA;AACA;AACA;AACA,qBAAqB,0BAA0B;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,YAAY,EAAE;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,YAAY,EAAE;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,WAAW,EAAE;AACb,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,WAAW,EAAE;AACb,YAAY;AACZ;AACA;AACA,eAAe,EAAE;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA,eAAe,EAAE;AACjB;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA,eAAe,EAAE;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,yEAAiB;AAC1C;AACA;AACA;AACA,SAAS,OAAO,wDAAU,UAAU,qBAAqB;AACzD;AACA;AACA,+CAA+C;AAC/C,SAAS,6BAA6B,OAAO,oDAAM,SAAS,yDAAW,IAAI;AAC3E,MAAM;AACN,sDAAsD,wEAAkB,EAAE,2CAA2C,yBAAyB,8DAAQ,CAAC,yDAAW,GAAG,EAAE,2CAA2C;AAClN;AACA,CAAC;AACD;AACA;AACA,WAAW,EAAE;AACb,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,YAAY;AACZ;AACA;AACA,eAAe,EAAE;AACjB;AACA;AACA;AACA;AACA,uBAAuB,EAAE;AACzB;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,WAAW,EAAE;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb;AACA,WAAW,EAAE;AACb;AACA,WAAW,EAAE;AACb,6BAA6B,sDAAQ;;AAErC;AACA;AACA,cAAc,uEAAuE;AACrF;AACA,WAAW,OAAO;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,cAAc,uEAAuE;AACrF;AACA;AACA,WAAW,EAAE;AACb,WAAW,EAAE;AACb,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,WAAW,EAAE;AACb,YAAY;AACZ;AACA;AACA,eAAe,EAAE;AACjB;AACA;AACA,wBAAwB,0DAA0D;AAClF;AACA;AACA,+BAA+B,0DAA0D;AACzF;AACA;AACA;AACA;;AAEA;AACA;AACA,cAAc,uEAAuE;AACrF;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,uBAAuB,SAAS;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA,yCAAyC,qBAAqB;AAC9D,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,aAAa;AAChC;AACA;AACA;AACA;AACA;AACA,uBAAuB,eAAe;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,GAAG;AAClB,eAAe,GAAG;AAClB,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,GAAG;AAClB,eAAe,GAAG;AAClB,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA,8BAA8B,aAAa;AAC3C,uCAAuC,oBAAoB;AAC3D,oCAAoC,eAAe,0BAA0B;AAC7E,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA,uBAAuB,EAAE;AACzB;AACA,uBAAuB,EAAE;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,EAAE;AACzB;AACA,uBAAuB,EAAE;AACzB;AACA,yDAAyD,kEAAkE;AAC3H,aAAa;AACb,uBAAuB,EAAE;AACzB;AACA,uBAAuB,EAAE;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,sDAAQ,oCAAoC,iBAAiB;AACpG;AACA;AACA;AACA;AACA;AACA,+BAA+B,QAAQ,gBAAgB;AACvD;AACA;AACA;AACA;AACA,6BAA6B,0BAA0B;AACvD;AACA;AACA,kDAAkD,sDAAQ;AAC1D,8CAA8C,sDAAQ;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA,IAAI,uDAAS;AACb;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA,cAAc,uEAAuE;AACrF;AACA;AACA,IAAI,uDAAS;AACb;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,GAAG;AAClB,eAAe,GAAG;AAClB,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,GAAG;AAClB,eAAe,GAAG;AAClB,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA,oCAAoC,eAAe,0BAA0B;AAC7E,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA,cAAc,uEAAuE;AACrF;AACA,WAAW,OAAO;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,cAAc,uEAAuE;AACrF;AACA,WAAW,OAAO;AAClB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,cAAc,uEAAuE;AACrF;AACA,WAAW,OAAO;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,uBAAuB,mCAAmC;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,EAAE;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,uBAAuB,8CAA8C;AACrE;AACA;AACA;AACA;AACA;AACA,oCAAoC,EAAE;AACtC;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA,cAAc,uEAAuE;AACrF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA,2BAA2B,EAAE;AAC7B,kDAAkD,EAAE;AACpD,2BAA2B,EAAE;AAC7B,2CAA2C,EAAE;AAC7C,2BAA2B,EAAE;AAC7B;AACA,2BAA2B,EAAE;AAC7B;AACA;AACA,mCAAmC,8CAA8C;AACjF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,EAAE;AAC7B,6CAA6C,EAAE;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA,IAAI,uDAAS;AACb;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA,mBAAmB,SAAS;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA,cAAc,uEAAuE;AACrF;AACA,WAAW,OAAO;AAClB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,cAAc,uEAAuE;AACrF;AACA,WAAW,OAAO;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA,iCAAiC,4BAA4B;AAC7D;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA,uBAAuB,EAAE;AACzB;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,GAAG;AAClB,eAAe,GAAG;AAClB,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,GAAG;AAClB,eAAe,GAAG;AAClB,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA,8BAA8B,aAAa;AAC3C,uCAAuC,oBAAoB;AAC3D,oCAAoC,eAAe,0BAA0B;AAC7E,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,GAAG;AAClB,eAAe,GAAG;AAClB,gBAAgB,EAAE;AAClB;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,GAAG;AAClB,eAAe,GAAG;AAClB,gBAAgB,EAAE;AAClB;AACA;AACA,oCAAoC,oBAAoB;AACxD;AACA,uBAAuB,EAAE;AACzB;AACA,uBAAuB,EAAE;AACzB,8DAA8D,uBAAuB,EAAE;AACvF;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,sCAAsC,0CAA0C,EAAE;AAClF;AACA,2BAA2B,EAAE;AAC7B,sEAAsE,+BAA+B,EAAE,iCAAiC,mBAAmB,EAAE;AAC7J;AACA;AACA;AACA,aAAa;AACb;AACA,8BAA8B,sDAAQ;AACtC,kCAAkC,uCAAuC,EAAE;AAC3E,+BAA+B,mBAAmB,EAAE;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,GAAG;AAClB,eAAe,GAAG;AAClB,gBAAgB,EAAE;AAClB;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,GAAG;AAClB,eAAe,GAAG;AAClB,gBAAgB,EAAE;AAClB;AACA;AACA;AACA,oCAAoC,oBAAoB;AACxD;AACA;AACA,2BAA2B,EAAE;AAC7B;AACA,2BAA2B,EAAE;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,EAAE;AACrC,6EAA6E,yCAAyC,EAAE;AACxH;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,EAAE;AACzC,iFAAiF,yCAAyC,EAAE;AAC5H;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC,sDAAQ,yDAAyD,wBAAwB;AAC/H;AACA;AACA;AACA;AACA,uBAAuB,QAAQ,gBAAgB;AAC/C;AACA;AACA;AACA;AACA,qBAAqB,0BAA0B;AAC/C;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA;AACA,iEAAiE,6BAA6B,EAAE;AAChG;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,sDAAQ,iCAAiC,gBAAgB;AACvF;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,QAAQ,gBAAgB;AAC/C;AACA;AACA;AACA;AACA,qBAAqB,0BAA0B;AAC/C;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA,cAAc,uEAAuE;AACrF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA,uBAAuB,EAAE;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA,uBAAuB,gBAAgB;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA,cAAc,uEAAuE;AACrF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,yDAAyD,2BAA2B,EAAE;AACtF;AACA;AACA,gBAAgB;AAChB;AACA;AACA,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA,2BAA2B,EAAE;AAC7B,6FAA6F,0CAA0C,EAAE,oBAAoB,aAAa,EAAE;AAC5K;AACA,+BAA+B,EAAE;AACjC,8EAA8E,6BAA6B,EAAE;AAC7G,+BAA+B,EAAE;AACjC;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB,+BAA+B,EAAE;AACjC;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,mEAAmE,0CAA0C,EAAE;AAC/G;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA,8DAA8D,gDAAgD,EAAE;AAChH;AACA;AACA,8DAA8D,oCAAoC,EAAE;AACpG;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,sDAAsD,+BAA+B,EAAE;AACvF;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA,mDAAmD,oCAAoC,EAAE;AACzF;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA,mDAAmD,yCAAyC,EAAE;AAC9F;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA,mDAAmD,gDAAgD,EAAE;AACrG;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA,uBAAuB,EAAE;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qFAAqF;AACrF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,EAAE;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,uBAAuB,EAAE;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA,uBAAuB,sDAAQ,GAAG;AAClC;AACA;AACA;AACA,uBAAuB,EAAE;AACzB;AACA,+CAA+C;AAC/C;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,EAAE;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,EAAE;AACvB;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA,qCAAqC,sDAAQ,sDAAsD,uBAAuB;AAC1H;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,QAAQ,gBAAgB;AAC/C;AACA;AACA;AACA;AACA,qBAAqB,0BAA0B;AAC/C;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,sDAAQ,+BAA+B,UAAU;AAC3E;AACA;AACA;AACA;AACA,uBAAuB,QAAQ,gBAAgB;AAC/C;AACA;AACA;AACA;AACA,qBAAqB,0BAA0B;AAC/C;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB,4DAA4D,qCAAqC,EAAE;AACnG;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA,uCAAuC,oBAAoB;AAC3D,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA,wBAAwB,EAAE;AAC1B,mBAAmB,EAAE;AACrB;AACA,+BAA+B,EAAE;AACjC,mBAAmB,EAAE;AACrB,6BAA6B;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA,8DAA8D,gDAAgD,EAAE;AAChH,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA,uBAAuB,6BAA6B;AACpD;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB,0DAA0D,gDAAgD,EAAE;AAC5G;AACA,uBAAuB,EAAE;AACzB,0DAA0D,gDAAgD,EAAE;AAC5G;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA,6CAA6C,6BAA6B;AAC1E,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA,uBAAuB,EAAE;AACzB;AACA,uBAAuB,EAAE;AACzB,+BAA+B;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA,2BAA2B,EAAE;AAC7B,mCAAmC;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,EAAE;AACzB;AACA,mCAAmC,0DAA0D;AAC7F;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA;AACA,gDAAgD,gCAAgC,EAAE;AAClF;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,oBAAoB;AACpD;AACA;AACA,qBAAqB,EAAE;AACvB;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,SAAS,OAAO,wDAAU;AAC1B;AACA;AACA,CAAC;;AAED;AACA;AACA,cAAc,uEAAuE;AACrF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,uDAAS;AACb;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA,mBAAmB,SAAS;AAC5B;AACA;AACA;AACA,2BAA2B,EAAE;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB,6CAA6C,EAAE;AAC/C;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA,mCAAmC,EAAE;AACrC;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,uBAAuB,iBAAiB;AACxC;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,uBAAuB,iBAAiB;AACxC,uBAAuB,EAAE;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,SAAS,OAAO,kDAAI;AACpB;AACA;AACA,iBAAiB;AACjB;AACA;AACA,2DAA2D;AAC3D,SAAS;AACT,MAAM;AACN;AACA,CAAC;;AAED;AACA;AACA,cAAc,uEAAuE;AACrF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA,+BAA+B,0DAAY;AAC3C;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA,kCAAkC,0DAAY;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA;AACA,uBAAuB,EAAE;AACzB;AACA,uBAAuB,EAAE;AACzB;AACA,uBAAuB,EAAE;AACzB;AACA,uBAAuB,EAAE;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,EAAE;AACzB;AACA,sDAAsD,UAAU,mCAAmC,EAAE,EAAE;AACvG;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA,2BAA2B,EAAE;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA,+BAA+B,EAAE;AACjC;AACA;AACA;AACA;AACA,aAAa,IAAI;AACjB;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,qDAAqD;AAC5E;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,EAAE;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,uBAAuB,oBAAoB;AAC3C,uBAAuB,EAAE;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,OAAO,oDAAM,EAAE;AACtC,0BAA0B,OAAO,oDAAM,EAAE;AACzC;AACA;AACA,CAAC;;AAED;AACA;AACA,cAAc,uEAAuE;AACrF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,2CAA2C,8BAA8B,EAAE;AAC3E;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA,8BAA8B,sDAAQ,iCAAiC,gBAAgB;AACvF;AACA;AACA;AACA;AACA,uBAAuB,QAAQ,gBAAgB;AAC/C;AACA;AACA;AACA;AACA,qBAAqB,0BAA0B;AAC/C;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA,8BAA8B,sDAAQ,iCAAiC,gBAAgB;AACvF;AACA,2BAA2B,EAAE;AAC7B;AACA;AACA;AACA;AACA,uBAAuB,QAAQ,gBAAgB;AAC/C;AACA;AACA;AACA;AACA,qBAAqB,0BAA0B;AAC/C;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA,qCAAqC,sDAAQ,sDAAsD,uBAAuB;AAC1H;AACA;AACA;AACA;AACA,uBAAuB,QAAQ,gBAAgB;AAC/C;AACA;AACA;AACA;AACA,qBAAqB,0BAA0B;AAC/C;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA,cAAc,uEAAuE;AACrF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA,CAAC;;AAED;AACA;AACA,cAAc,uEAAuE;AACrF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,uDAAS;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA,uBAAuB,EAAE;AACzB;AACA;AACA,2BAA2B,EAAE;AAC7B;AACA,2BAA2B,EAAE;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD,WAAW,OAAO;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,cAAc,uEAAuE;AACrF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,iCAAiC;AACvC,MAAM,kCAAkC;AACxC,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,uDAAS;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA,kCAAkC,0DAAY;AAC9C;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,yCAAyC,qBAAqB,EAAE;AAChE,mBAAmB,EAAE;AACrB;AACA;AACA;AACA,iCAAiC,4BAA4B;AAC7D;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA,8EAA8E,cAAc;AAC5F;AACA;AACA;AACA,+FAA+F,cAAc;AAC7G;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB,+CAA+C,iBAAiB;AAChE;AACA;AACA;AACA,SAAS,OAAO,wDAAU;AAC1B;AACA;AACA,yBAAyB,OAAO,oDAAM,EAAE;AACxC;AACA;AACA,CAAC;;AAED;AACA;AACA,cAAc,uEAAuE;AACrF;AACA,WAAW,OAAO;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,cAAc,uEAAuE;AACrF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA,gBAAgB;AAChB;AACA;AACA,wzMAAwzM,qCAAqC,kHAAkH,qCAAqC,QAAQ,qCAAqC;AACjiN;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA,mpCAAmpC,qCAAqC,uJAAuJ,qCAAqC;AACp3C;AACA;AACA,gBAAgB;AAChB;AACA;AACA,gBAAgB;AAChB;AACA;AACA,msBAAmsB,qCAAqC;AACxuB;AACA;AACA,gBAAgB;AAChB;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,GAAG;AAClB,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,GAAG;AAClB,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA,wCAAwC,wBAAwB;AAChE,sCAAsC,kBAAkB;AACxD,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA,uBAAuB,EAAE;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA,cAAc,uEAAuE;AACrF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,EAAE;AACzB;AACA,uBAAuB,EAAE;AACzB;AACA;AACA,2BAA2B,+BAA+B;AAC1D,2BAA2B,EAAE;AAC7B;AACA,2BAA2B,EAAE;AAC7B;AACA;AACA;AACA;AACA,2BAA2B,4BAA4B;AACvD;AACA;AACA;AACA;AACA,+BAA+B,EAAE;AACjC;AACA,+BAA+B,EAAE;AACjC;AACA,+BAA+B,EAAE;AACjC;AACA,+BAA+B,EAAE;AACjC;AACA,+BAA+B,EAAE;AACjC;AACA;AACA;AACA;AACA,+BAA+B,+BAA+B;AAC9D,+BAA+B,EAAE;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,+BAA+B;AAC1D,2BAA2B,EAAE;AAC7B;AACA;AACA,2BAA2B,EAAE;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,EAAE;AAC7B;AACA,2BAA2B,EAAE;AAC7B;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA,uBAAuB,EAAE;AACzB;AACA,uBAAuB,EAAE;AACzB;AACA,uBAAuB,EAAE;AACzB;AACA,uBAAuB,EAAE;AACzB;AACA,uBAAuB,EAAE;AACzB;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA;AACA,sCAAsC,sDAAQ,yDAAyD,wBAAwB;AAC/H;AACA;AACA;AACA;AACA,uBAAuB,QAAQ,gBAAgB;AAC/C;AACA;AACA;AACA;AACA,qBAAqB,0BAA0B;AAC/C;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA,uBAAuB,iBAAiB;AACxC,uBAAuB,EAAE;AACzB;AACA;AACA;AACA;AACA;AACA,uBAAuB,EAAE;AACzB;AACA,uBAAuB,EAAE;AACzB;AACA,uBAAuB,EAAE;AACzB;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA,cAAc,uEAAuE;AACrF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA,cAAc,uEAAuE;AACrF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA,cAAc,uEAAuE;AACrF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,EAAE;AACzB;AACA,uBAAuB,EAAE;AACzB;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,uBAAuB,EAAE;AACzB;AACA,uBAAuB,EAAE;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,uBAAuB,EAAE;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,EAAE;AACzB;AACA,mDAAmD;AACnD,oCAAoC;AACpC,oCAAoC;AACpC,sCAAsC;AACtC,sCAAsC;AACtC;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA,cAAc,uEAAuE;AACrF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,wBAAwB;AAChE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB,yDAAyD,qBAAqB,EAAE;AAChF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA,cAAc,uEAAuE;AACrF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,iCAAiC;AACvC,MAAM,kCAAkC;AACxC,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,uDAAS;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA,kCAAkC,0DAAY;AAC9C;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA,0BAA0B,sDAAQ,qDAAqD,UAAU;AACjG;AACA,2BAA2B,EAAE;AAC7B;AACA,2BAA2B,EAAE;AAC7B;AACA;AACA;AACA;AACA,uBAAuB,QAAQ,gBAAgB;AAC/C;AACA;AACA;AACA;AACA,qBAAqB,0BAA0B;AAC/C;AACA;AACA,0BAA0B,sDAAQ,mDAAmD,UAAU;AAC/F;AACA,2BAA2B,EAAE;AAC7B;AACA;AACA;AACA;AACA,uBAAuB,QAAQ,gBAAgB;AAC/C;AACA;AACA;AACA;AACA,qBAAqB,0BAA0B;AAC/C;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA,uBAAuB,EAAE;AACzB;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,yBAAyB,kCAAK;AAC9B,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA,sCAAsC,oBAAoB;AAC1D,SAAS;AACT;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA,SAAS;AACT;AACA;AACA,sDAAsD,EAAE,MAAM,yCAAyC;AACvG;AACA,SAAS,OAAO,wDAAU;AAC1B;AACA;AACA,yBAAyB,OAAO,oDAAM,EAAE;AACxC;AACA;AACA,CAAC;;AAED;AACA;AACA,cAAc,uEAAuE;AACrF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,uDAAS;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA,CAAC;;AAED;AACA;AACA,cAAc,uEAAuE;AACrF;AACA,WAAW,OAAO;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC,EAAE;AACxC;AACA;AACA,uBAAuB,EAAE;AACzB,0CAA0C,EAAE;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA,cAAc,uEAAuE;AACrF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB;AACtB;AACA,wCAAwC;AACxC;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,GAAG;AAClB,eAAe,GAAG;AAClB,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,GAAG;AAClB,eAAe,GAAG;AAClB,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA,cAAc,uEAAuE;AACrF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA,cAAc,uEAAuE;AACrF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,uDAAS;AACb;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA,6CAA6C;AAC7C;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,gBAAgB;AAChB;AACA,iBAAiB;AACjB;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,gBAAgB;AAChB;AACA,iBAAiB;AACjB;AACA,CAAC;;AAED;AACA;AACA,cAAc,uEAAuE;AACrF;AACA;AACA;AACA,WAAW,EAAE;AACb,YAAY;AACZ;AACA;AACA,eAAe,EAAE;AACjB;AACA;AACA;AACA,uBAAuB,EAAE;AACzB;AACA;AACA,2BAA2B,EAAE;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,YAAY;AACZ;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA,uBAAuB,EAAE;AACzB;AACA,uBAAuB,EAAE;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,WAAW,EAAE;AACb,YAAY;AACZ;AACA;AACA,eAAe,EAAE;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,WAAW,EAAE;AACb,YAAY;AACZ;AACA;AACA,2BAA2B,+DAAS;AACpC;AACA;AACA;AACA;;AAEA;AACA;AACA,cAAc,uEAAuE;AACrF;AACA,WAAW,EAAE;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,4CAAO;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,0DAAY;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,0DAAY;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,0DAAY;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,0DAAY;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,0DAAY;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oDAAoD,KAAK;AACzD,2BAA2B,EAAE;AAC7B;AACA;AACA;AACA;AACA;AACA,+BAA+B,EAAE;AACjC,6CAA6C,EAAE;AAC/C;AACA;AACA;AACA,mCAAmC,EAAE;AACrC,yDAAyD,EAAE;AAC3D,mCAAmC,EAAE;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oDAAoD,KAAK;AACzD;AACA;AACA;AACA,qCAAqC,EAAE;AACvC;AACA;AACA,eAAe,EAAE;AACjB,eAAe,GAAG;AAClB,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,eAAe,GAAG;AAClB,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC;AACnC;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,+CAA+C,KAAK;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,EAAE;AACzB;AACA,gCAAgC;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kGAAkG,iEAAiE;AACnK;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,+CAA+C;AAC/E;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA,uBAAuB,EAAE;AACzB,uCAAuC,EAAE;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB,iCAAiC,wDAAU;AAC3C,0CAA0C,EAAE;AAC5C;AACA;AACA,uBAAuB,EAAE;AACzB;AACA,uBAAuB,EAAE;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,EAAE;AACzB;AACA,uBAAuB,EAAE;AACzB;AACA;AACA;AACA,uBAAuB,EAAE;AACzB;AACA,0CAA0C,EAAE,MAAM,yBAAyB;AAC3E;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,QAAQ,sDAAS,iCAAiC,6DAAM,gBAAgB,gDAAgD,EAAE,GAAG,gEAAS,wCAAwC,4BAA4B,EAAE;AAC5M;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,4BAA4B,+CAA+C;AAC3E;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA,uBAAuB,EAAE;AACzB;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,EAAE;AACzB,6CAA6C,EAAE;AAC/C;AACA;AACA,qCAAqC,+CAA+C;AACpF;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,EAAE;AACzB;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,gFAAgF;AAC/G;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA,uBAAuB,EAAE;AACzB;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,EAAE;AACzB,6CAA6C,EAAE;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,EAAE;AACzB;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,kFAAkF;AACjH;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C,EAAE;AAC9C;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB,iCAAiC,EAAE;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB,yDAAyD,oBAAoB,EAAE;AAC/E;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,gBAAgB,sDAAS;AACzB,0BAA0B,gEAAS;AACnC,6CAA6C,gCAAgC,EAAE;AAC/E;AACA;AACA;AACA,oDAAoD,4DAA4D,EAAE;AAClH,wDAAwD;AACxD;AACA,wDAAwD,EAAE;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,uBAAuB,EAAE;AACzB;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,kCAAkC,sEAAsE,EAAE;AAC1G;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,kCAAkC,sEAAsE,EAAE;AAC1G;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,OAAO,wDAAU,UAAU,qBAAqB;AACzD;AACA;AACA,oDAAoD;AACpD,SAAS,OAAO,sEAAwB,EAAE;AAC1C,SAAS,OAAO,4DAAc,EAAE;AAChC,SAAS,OAAO,sDAAQ,EAAE;AAC1B,SAAS,OAAO,oEAAgB,EAAE;AAClC,SAAS,gCAAgC,OAAO,oDAAM,SAAS,wDAAQ,IAAI,GAAG;AAC9E,SAAS,OAAO,oDAAM;AACtB,MAAM;AACN,2DAA2D,wEAAkB,EAAE,gDAAgD,8BAA8B,8DAAQ,CAAC,sEAAwB,GAAG,8DAAQ,CAAC,4DAAc,GAAG,8DAAQ,CAAC,sDAAQ,GAAG,8DAAQ,CAAC,oEAAgB,GAAG,8DAAQ,CAAC,wDAAQ,GAAG,8DAAQ,CAAC,oDAAM,GAAG,EAAE,gDAAgD;AACnW;AACA,CAAC;;AAED;AACA;AACA,cAAc,uEAAuE;AACrF;;AAEA;AACA;AACA,cAAc,uEAAuE;AACrF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,uDAAS;AACb;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,GAAG;AAClB,eAAe,GAAG;AAClB,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,GAAG;AAClB,eAAe,GAAG;AAClB,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA,cAAc,uEAAuE;AACrF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB;AACtB;AACA,wCAAwC;AACxC;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,GAAG;AAClB,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,GAAG;AAClB,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,EAAE;AAClB;AACA;AACA;AACA;AACA,gBAAgB,EAAE;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA,cAAc,uEAAuE;AACrF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,uDAAS;AACb;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,GAAG;AAClB,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,GAAG;AAClB,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA;AACA,uBAAuB,EAAE;AACzB;AACA;AACA;AACA,6EAA6E;AAC7E,4CAA4C;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA,cAAc,uEAAuE;AACrF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,uDAAS;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,EAAE;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,EAAE;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB,EAAE;AAClB;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB,EAAE;AAClB;AACA;AACA,iDAAiD;AACjD;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB,EAAE;AAClB;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB,EAAE;AAClB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB,EAAE;AAClB;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB,EAAE;AAClB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB,EAAE;AAClB;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB,EAAE;AAClB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA,cAAc,uEAAuE;AACrF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,uDAAS;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA,uBAAuB,EAAE;AACzB;AACA,uBAAuB,EAAE;AACzB;AACA,uBAAuB,EAAE;AACzB;AACA,uBAAuB,EAAE;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,EAAE;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,EAAE;AACzB;AACA,uBAAuB,EAAE;AACzB;AACA,uBAAuB,EAAE;AACzB;AACA,uBAAuB,EAAE;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,EAAE;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA,cAAc,uEAAuE;AACrF;;AAEA;AACA;AACA,cAAc,uEAAuE;AACrF;;AAEA;AACA;AACA,cAAc,uEAAuE;AACrF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,uDAAS;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA,cAAc,uEAAuE;AACrF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,uDAAS;AACb;AACA;AACA;AACA;AACA;AACA;AACA,mDAAmD,EAAE;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA,cAAc,uEAAuE;AACrF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,uDAAS;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kDAAkD,EAAE;AACpD;AACA;AACA,kDAAkD,EAAE;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA,cAAc,uEAAuE;AACrF;;AAEA;AACA;AACA,cAAc,uEAAuE;AACrF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,0DAAY;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA,mBAAmB,WAAW;AAC9B;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,gBAAgB;AAChB;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,gBAAgB;AAChB;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA,uBAAuB,EAAE;AACzB;AACA,oCAAoC,EAAE,MAAM,6CAA6C;AACzF,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,EAAE,MAAM,wFAAwF;AAChI;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB,EAAE;AAClB;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB,EAAE;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA,iDAAiD;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,OAAO,wDAAU;AAC1B;AACA;AACA,CAAC;;AAED;AACA;AACA,cAAc,uEAAuE;AACrF;AACA;AACA;AACA;AACA;AACA,IAAI,uDAAS;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,0DAAY;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA,mCAAmC,iDAAiD;AACpF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA;AACA,2DAA2D,oBAAoB,EAAE;AACjF;AACA,eAAe,sDAAQ;AACvB;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA,uBAAuB,EAAE;AACzB;AACA,oCAAoC,EAAE,MAAM,6CAA6C;AACzF,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA,iCAAiC,iBAAiB;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA;AACA,uBAAuB,EAAE;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,uBAAuB,EAAE;AACzB;AACA;AACA;AACA,8BAA8B,sDAAQ,4CAA4C,UAAU;AAC5F;AACA,+BAA+B,EAAE;AACjC;AACA;AACA;AACA,kCAAkC,8DAA8D;AAChG;AACA;AACA,2BAA2B,QAAQ,gBAAgB;AACnD;AACA;AACA;AACA;AACA,yBAAyB,0BAA0B;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA;AACA;AACA,uBAAuB,EAAE;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA;AACA,yEAAyE,oBAAoB,EAAE;AAC/F;AACA;AACA;AACA;AACA;AACA,gEAAgE,+BAA+B,gCAAgC,EAAE,EAAE,EAAE,uBAAuB,qBAAqB,EAAE;AACnL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA,0BAA0B,sDAAQ,kCAAkC,UAAU;AAC9E;AACA;AACA,gDAAgD,sDAAQ,+DAA+D,0BAA0B;AACjJ;AACA;AACA;AACA;AACA,+BAA+B,QAAQ,gBAAgB;AACvD;AACA;AACA;AACA;AACA,6BAA6B,0BAA0B;AACvD;AACA;AACA;AACA,uBAAuB,QAAQ,gBAAgB;AAC/C;AACA;AACA;AACA;AACA,qBAAqB,0BAA0B;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA,uBAAuB,EAAE;AACzB;AACA;AACA;AACA,qCAAqC,sDAAQ,0CAA0C,mBAAmB;AAC1G;AACA;AACA;AACA;AACA;AACA,2BAA2B,QAAQ,gBAAgB;AACnD;AACA;AACA;AACA;AACA,yBAAyB,0BAA0B;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,EAAE,MAAM,wFAAwF;AAChI;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,sDAAQ,2CAA2C,UAAU;AAC/F;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,QAAQ,gBAAgB;AACvD;AACA;AACA;AACA;AACA,6BAA6B,0BAA0B;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB,iDAAiD,kEAAkE,EAAE,EAAE;AACvH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,OAAO,wDAAU;AAC1B;AACA;AACA,CAAC;;AAED;AACA;AACA,cAAc,uEAAuE;AACrF;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,uDAAS;AACb;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA,uBAAuB,EAAE;AACzB;AACA;AACA,oCAAoC,EAAE,MAAM,+DAA+D;AAC3G,SAAS;AACT;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,GAAG;AAClB,eAAe,GAAG;AAClB,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,GAAG;AAClB,eAAe,GAAG;AAClB,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA;AACA,uBAAuB,EAAE;AACzB;AACA;AACA,iEAAiE,oBAAoB,EAAE;AACvF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,8BAA8B,sDAAQ,mCAAmC,UAAU;AACnF;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,QAAQ,gBAAgB;AACnD;AACA;AACA;AACA;AACA,yBAAyB,0BAA0B;AACnD;AACA;AACA;AACA;AACA,SAAS,OAAO,wDAAU;AAC1B;AACA;AACA,CAAC;;AAED;AACA;AACA,cAAc,uEAAuE;AACrF;;AAEA;AACA;AACA,cAAc,uEAAuE;AACrF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,4CAAO;AACnC;AACA,YAAY,6DAAM,eAAe,kCAAkC,EAAE;AACrE,YAAY,gEAAS;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,0DAAY;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,0DAAY;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,0DAAY;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,0DAAY;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB,6BAA6B;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oFAAoF,sDAAQ;AAC5F;AACA,SAAS;AACT;AACA,uCAAuC,sDAAQ;AAC/C,uBAAuB,EAAE;AACzB,6BAA6B;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oFAAoF,sDAAQ;AAC5F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA,uBAAuB,EAAE;AACzB;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,OAAO,uDAAS;AACzB;AACA;AACA,iBAAiB;AACjB;AACA;AACA,qDAAqD;AACrD,SAAS,OAAO,wDAAU,EAAE;AAC5B,SAAS,OAAO,+DAAiB,EAAE;AACnC,SAAS,wCAAwC,OAAO,oDAAM,8BAA8B,GAAG;AAC/F,SAAS,2CAA2C,OAAO,sDAAQ,EAAE;AACrE,MAAM;AACN;AACA,oBAAoB,OAAO,oDAAM,EAAE;AACnC,qBAAqB,OAAO,oDAAM,EAAE;AACpC,oBAAoB,OAAO,oDAAM,EAAE;AACnC,qBAAqB,OAAO,oDAAM,EAAE;AACpC,cAAc,OAAO,mDAAK,EAAE;AAC5B,uBAAuB,OAAO,yDAAW,uCAAuC,GAAG,OAAO,yDAAW,+BAA+B;AACpI,wBAAwB,OAAO,yDAAW,+BAA+B;AACzE;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,gEAAgE,qCAAqC;AACrG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB,6CAA6C;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB,EAAE;AAClB;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB,EAAE;AAClB;AACA;AACA;AACA,uBAAuB,EAAE;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,OAAO,uDAAS;AACzB;AACA;AACA,iBAAiB;AACjB;AACA;AACA,2DAA2D;AAC3D,SAAS,OAAO,wDAAU,EAAE;AAC5B,SAAS,2CAA2C,OAAO,sDAAQ,EAAE;AACrE,MAAM;AACN;AACA,2BAA2B,OAAO,mDAAK,EAAE;AACzC,kBAAkB,OAAO,mDAAK,8BAA8B;AAC5D,kBAAkB,OAAO,mDAAK,8BAA8B;AAC5D,mBAAmB,OAAO,0DAAY,oBAAoB;AAC1D;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA,SAAS,OAAO,uDAAS;AACzB;AACA;AACA,iBAAiB;AACjB;AACA;AACA,4DAA4D;AAC5D,SAAS,OAAO,wDAAU;AAC1B,MAAM;AACN;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,OAAO,sDAAQ;AACxB;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,CAAC;;AAED;AACA;AACA,cAAc,uEAAuE;AACrF;AACA,WAAW,OAAO;AAClB;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb;;AAEA;AACA;AACA,cAAc,uEAAuE;AACrF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,GAAG;AAClB;AACA,gBAAgB,EAAE;AAClB;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,GAAG;AAClB;AACA,gBAAgB,EAAE;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,GAAG;AAClB;AACA,gBAAgB,EAAE;AAClB;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,GAAG;AAClB;AACA,gBAAgB,EAAE;AAClB;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC,iEAAiE,EAAE;AAC5G;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,GAAG;AAClB;AACA,gBAAgB,EAAE;AAClB;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,GAAG;AAClB;AACA,gBAAgB,EAAE;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB,EAAE;AAClB;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB,EAAE;AAClB;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,mDAAmD,8EAA8E,EAAE;AACnI;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB;AACA,gBAAgB,EAAE;AAClB;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB;AACA,gBAAgB,EAAE;AAClB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB;AACA,gBAAgB,EAAE;AAClB;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB;AACA,gBAAgB,EAAE;AAClB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB,EAAE;AAClB;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB,EAAE;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB,EAAE;AAClB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB,EAAE;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,GAAG;AAClB;AACA,gBAAgB,EAAE;AAClB;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,GAAG;AAClB;AACA,gBAAgB,EAAE;AAClB;AACA;AACA;AACA,wFAAwF,sBAAsB,EAAE;AAChH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,EAAE;AAClB;AACA;AACA;AACA,gBAAgB,EAAE;AAClB;AACA;AACA;AACA;AACA;AACA,SAAS,OAAO,wDAAU;AAC1B;AACA,iBAAiB;AACjB;AACA,gEAAgE,wEAAkB,EAAE,qDAAqD,qCAAqC,EAAE,qDAAqD;AACrO;AACA,CAAC;;AAED;AACA;AACA,cAAc,uEAAuE;AACrF;AACA,WAAW,EAAE;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA,SAAS,OAAO,uDAAS;AACzB;AACA,uDAAuD,SAAS,KAAK,SAAS;AAC9E,iBAAiB;AACjB;AACA;AACA,sBAAsB,OAAO,yDAAW,mCAAmC;AAC3E,gBAAgB,OAAO,yDAAW,wBAAwB;AAC1D,sBAAsB,OAAO,yDAAW,yCAAyC;AACjF,oBAAoB,OAAO,mDAAK,EAAE,GAAG,OAAO,yDAAW,iCAAiC,GAAG,OAAO,yDAAW,mDAAmD;AAChK,iBAAiB,OAAO,mDAAK,EAAE;AAC/B;AACA;AACA,CAAC;;AAED;AACA;AACA,cAAc,uEAAuE;AACrF;AACA,WAAW,EAAE;AACb;AACA,WAAW,EAAE;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,0DAAY;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB,oBAAoB;AACpB;AACA;AACA,+BAA+B,EAAE;AACjC,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,2DAA2D;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2DAA2D;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,qEAAqE,eAAe;AACpF;AACA,sBAAsB;AACtB;AACA;AACA;AACA;AACA;AACA;AACA,qEAAqE,eAAe;AACpF;AACA,sBAAsB;AACtB;AACA;AACA;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sEAAsE,gBAAgB;AACtF;AACA,sBAAsB;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sEAAsE,gBAAgB;AACtF;AACA,sBAAsB;AACtB;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,uBAAuB,EAAE;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sDAAsD;AACtD,SAAS,gCAAgC,OAAO,oDAAM,8BAA8B,GAAG;AACvF,SAAS,OAAO,wDAAU,EAAE;AAC5B,SAAS,gDAAgD,OAAO,sDAAQ,EAAE,GAAG;AAC7E,SAAS,6CAA6C,OAAO,sDAAQ,EAAE,GAAG,OAAO,oDAAM,mCAAmC;AAC1H,MAAM;AACN;AACA,cAAc,OAAO,yDAAW,sBAAsB,GAAG,OAAO,mDAAK,EAAE;AACvE,iBAAiB,OAAO,mDAAK,EAAE;AAC/B,iBAAiB,OAAO,mDAAK,EAAE;AAC/B,qBAAqB,OAAO,yDAAW,wCAAwC;AAC/E,yBAAyB,OAAO,yDAAW,8CAA8C;AACzF,4BAA4B,OAAO,yDAAW,iDAAiD;AAC/F,oBAAoB,OAAO,mDAAK,EAAE,GAAG,OAAO,yDAAW,iCAAiC,GAAG,OAAO,yDAAW,kDAAkD;AAC/J,0BAA0B,OAAO,oDAAM,EAAE;AACzC,sBAAsB,OAAO,mDAAK,EAAE;AACpC,mBAAmB,OAAO,yDAAW,iDAAiD;AACtF,oBAAoB,OAAO,mDAAK,EAAE,GAAG,OAAO,yDAAW,0CAA0C;AACjG,2BAA2B,OAAO,yDAAW,gDAAgD;AAC7F,8BAA8B,OAAO,yDAAW,mDAAmD;AACnG,oBAAoB,OAAO,mDAAK,EAAE,GAAG,OAAO,yDAAW,iCAAiC,GAAG,OAAO,yDAAW,kDAAkD;AAC/J,gBAAgB,OAAO,mDAAK,EAAE,GAAG,OAAO,yDAAW,wBAAwB;AAC3E,mBAAmB,OAAO,0DAAY,gCAAgC;AACtE;AACA,IAAI,wDAAU;AACd;AACA;AACA,QAAQ,wDAAU;AAClB,QAAQ,wDAAU;AAClB;AACA,IAAI,wDAAU;AACd;AACA;AACA,QAAQ,wDAAU;AAClB,QAAQ,wDAAU;AAClB;AACA;AACA,CAAC;;AAED;AACA;AACA,cAAc,uEAAuE;AACrF;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,uDAAS;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA,uBAAuB,EAAE;AACzB;AACA;AACA,2BAA2B,EAAE;AAC7B;AACA,2BAA2B,EAAE;AAC7B;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,2BAA2B,EAAE;AAC7B;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA,uBAAuB,EAAE;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,uBAAuB,EAAE;AACzB,wEAAwE,qBAAqB,EAAE;AAC/F;AACA,yDAAyD,sBAAsB;AAC/E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,SAAS,OAAO,uDAAS;AACzB;AACA;AACA,iBAAiB;AACjB;AACA;AACA,uBAAuB,OAAO,yDAAW,4BAA4B;AACrE,mBAAmB,OAAO,0DAAY,gCAAgC;AACtE,4BAA4B,OAAO,0DAAY,oCAAoC;AACnF;AACA;AACA,CAAC;;AAED;AACA;AACA,cAAc,uEAAuE;AACrF;AACA,WAAW,OAAO;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA,8BAA8B,4DAAc;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,0DAAY;AAChD,yCAAyC;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA,uBAAuB,EAAE;AACzB;AACA,+CAA+C,EAAE;AACjD;AACA,2BAA2B,EAAE;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA,uBAAuB,EAAE;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,OAAO,mDAAK,EAAE;AACxC,4BAA4B,OAAO,oDAAM,EAAE;AAC3C;AACA;AACA,CAAC;;AAED;AACA;AACA,cAAc,uEAAuE;AACrF;;AAEA;AACA;AACA,cAAc,uEAAuE;AACrF;AACA,WAAW,EAAE;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,uDAAS;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,0DAAY;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,uBAAuB,EAAE;AACzB;AACA;AACA;AACA,kCAAkC,sDAAQ,0CAA0C,UAAU;AAC9F;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,QAAQ,gBAAgB;AACvD;AACA;AACA;AACA;AACA,6BAA6B,0BAA0B;AACvD;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,uBAAuB,EAAE;AACzB;AACA;AACA;AACA,kCAAkC,sDAAQ,0CAA0C,UAAU;AAC9F;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,QAAQ,gBAAgB;AACvD;AACA;AACA;AACA;AACA,6BAA6B,0BAA0B;AACvD;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,GAAG;AAClB,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA;AACA;AACA,eAAe,GAAG;AAClB,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA,eAAe,EAAE;AACjB,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,uBAAuB,EAAE;AACzB;AACA,uBAAuB,EAAE;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kDAAkD;AAClD,SAAS,OAAO,wDAAU,EAAE;AAC5B,SAAS,OAAO,+DAAiB,EAAE;AACnC,SAAS,gCAAgC,OAAO,sDAAQ,EAAE,GAAG,OAAO,oDAAM,gCAAgC;AAC1G,MAAM;AACN;AACA,uBAAuB,OAAO,oDAAM,EAAE;AACtC,iBAAiB,OAAO,mDAAK,EAAE;AAC/B,kBAAkB,OAAO,mDAAK,EAAE;AAChC,cAAc,OAAO,mDAAK,EAAE;AAC5B,qBAAqB,OAAO,mDAAK,EAAE,GAAG,OAAO,yDAAW,8BAA8B;AACtF,oBAAoB,OAAO,yDAAW,kCAAkC;AACxE;AACA;AACA,CAAC;;AAED;AACA;AACA,cAAc,uEAAuE;AACrF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,OAAO,uDAAS;AACzB;AACA;AACA,iBAAiB;AACjB;AACA;AACA,4DAA4D;AAC5D,SAAS,OAAO,+DAAiB,EAAE;AACnC,SAAS,OAAO,8DAAgB;AAChC,MAAM;AACN;AACA,gBAAgB,OAAO,uDAAS,+BAA+B,OAAO,8DAAgB,gBAAgB,IAAI;AAC1G,oBAAoB,OAAO,yDAAW,oBAAoB;AAC1D,sBAAsB,OAAO,yDAAW,oDAAoD;AAC5F;AACA;AACA,CAAC;;AAED;AACA;AACA,cAAc,uEAAuE;AACrF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA,gBAAgB;AAChB;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA,SAAS,OAAO,uDAAS;AACzB;AACA,iBAAiB;AACjB;AACA;AACA,6DAA6D;AAC7D,SAAS,OAAO,wDAAU,EAAE;AAC5B,SAAS,OAAO,+DAAiB;AACjC,MAAM;AACN;AACA,oBAAoB,OAAO,0DAAY,iCAAiC;AACxE;AACA;AACA,CAAC;;AAED;AACA;AACA,cAAc,uEAAuE;AACrF;AACA;AACA;AACA;AACA;AACA,IAAI,uDAAS;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,OAAO,uDAAS;AACzB;AACA;AACA,iBAAiB;AACjB;AACA;AACA,0DAA0D;AAC1D,SAAS,OAAO,wDAAU,EAAE;AAC5B,SAAS,OAAO,+DAAiB;AACjC,MAAM;AACN;AACA,gBAAgB,OAAO,uDAAS,kCAAkC,OAAO,8DAAgB,gBAAgB,IAAI;AAC7G,iBAAiB,OAAO,mDAAK,EAAE;AAC/B,sBAAsB,OAAO,yDAAW,oBAAoB;AAC5D;AACA;AACA,CAAC;;AAED;AACA;AACA,cAAc,uEAAuE;AACrF;AACA;AACA,IAAI,uDAAS;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,OAAO,uDAAS;AACzB;AACA;AACA,iBAAiB;AACjB;AACA;AACA,yDAAyD;AACzD,SAAS,OAAO,wDAAU,EAAE;AAC5B,SAAS,OAAO,+DAAiB;AACjC,MAAM;AACN;AACA,qBAAqB,OAAO,yDAAW,wBAAwB;AAC/D,gBAAgB,OAAO,uDAAS,uBAAuB,OAAO,8DAAgB,gBAAgB,IAAI;AAClG,uBAAuB,OAAO,mDAAK,EAAE;AACrC,sBAAsB,OAAO,yDAAW,oBAAoB;AAC5D;AACA;AACA,CAAC;;AAED;AACA;AACA,cAAc,uEAAuE;AACrF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA,uBAAuB,EAAE;AACzB;AACA,iEAAiE,oBAAoB,EAAE;AACvF,sEAAsE,yBAAyB,EAAE;AACjG,qEAAqE,wBAAwB,EAAE;AAC/F,oEAAoE,uBAAuB,EAAE;AAC7F,uEAAuE,0BAA0B,EAAE;AACnG,qEAAqE,wBAAwB,EAAE;AAC/F,0EAA0E,6BAA6B,EAAE;AACzG,2EAA2E,8BAA8B,EAAE;AAC3G,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,EAAE;AACzB;AACA,uBAAuB,EAAE;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA,uBAAuB,EAAE;AACzB;AACA,uBAAuB,EAAE;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA;AACA,uBAAuB,+BAA+B;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA,uBAAuB,EAAE;AACzB;AACA,oEAAoE,oBAAoB,EAAE;AAC1F,yEAAyE,yBAAyB,EAAE;AACpG,wEAAwE,wBAAwB,EAAE;AAClG,uEAAuE,uBAAuB,EAAE;AAChG,0EAA0E,0BAA0B,EAAE;AACtG,wEAAwE,wBAAwB,EAAE;AAClG,6EAA6E,6BAA6B,EAAE;AAC5G,8EAA8E,8BAA8B,EAAE;AAC9G,SAAS;AACT;AACA;AACA,SAAS,OAAO,uDAAS,UAAU,iCAAiC;AACpE;AACA;AACA,4DAA4D;AAC5D,SAAS,OAAO,wDAAU,EAAE;AAC5B,SAAS,OAAO,oDAAM;AACtB,MAAM;AACN;AACA,qCAAqC,OAAO,mDAAK,EAAE;AACnD,2CAA2C,OAAO,mDAAK,EAAE;AACzD,qBAAqB,OAAO,mDAAK,EAAE;AACnC,uBAAuB,OAAO,mDAAK,EAAE;AACrC,2BAA2B,OAAO,mDAAK,EAAE;AACzC,yBAAyB,OAAO,mDAAK,EAAE;AACvC,yBAAyB,OAAO,mDAAK,EAAE;AACvC,2BAA2B,OAAO,mDAAK,EAAE;AACzC;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,OAAO,sDAAQ;AACxB;AACA;AACA,8BAA8B,4DAAY;AAC1C,iBAAiB;AACjB;AACA;AACA,CAAC;;AAED;AACA;AACA,cAAc,uEAAuE;AACrF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA,gCAAgC,gBAAgB;AAChD,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,SAAS,OAAO,wDAAU;AAC1B;AACA,iBAAiB;AACjB;AACA,6DAA6D,wEAAkB,EAAE,kDAAkD,kCAAkC,EAAE,kDAAkD;AACzN;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,SAAS,OAAO,wDAAU;AAC1B;AACA,iBAAiB;AACjB;AACA,mEAAmE,wEAAkB,EAAE,wDAAwD,wCAAwC,EAAE,wDAAwD;AACjP;AACA,CAAC;;AAED;AACA;AACA,cAAc,uEAAuE;AACrF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA,qBAAqB,yBAAyB,EAAE;AAChD;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA,qBAAqB,sCAAsC,EAAE;AAC7D;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA,qBAAqB,6BAA6B,EAAE;AACpD;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA,qBAAqB,mBAAmB,EAAE;AAC1C;AACA;AACA,KAAK;AACL;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,0DAAY;AAC3C;AACA;AACA;AACA;AACA,gDAAgD,0DAAY;AAC5D;AACA;AACA;AACA,uCAAuC,0DAAY;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,0DAAY;AAC7C,yCAAyC,0DAAY;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,0DAAY;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,4CAAO;AAC9C;AACA;AACA;AACA,4BAA4B,4CAAO;AACnC;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA,uBAAuB,EAAE;AACzB;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C;AAC/C,+CAA+C;AAC/C,2BAA2B,EAAE;AAC7B;AACA,2BAA2B,EAAE;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,EAAE;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,uBAAuB,EAAE;AACzB,6BAA6B,gEAAS;AACtC,sDAAsD,6DAAM,cAAc,iFAAiF,EAAE,GAAG,mEAAY,iBAAiB,gCAAgC;AAC7N;AACA;AACA;AACA,iBAAiB;AACjB,aAAa;AACb;AACA;AACA,wCAAwC,sBAAsB;AAC9D;AACA;AACA,2BAA2B,EAAE;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,4CAA4C,gEAAc,cAAc,yCAAyC,EAAE;AACnH;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA,uBAAuB,EAAE;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA,uBAAuB,EAAE;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,EAAE;AACzB;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,EAAE;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,EAAE;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA,wDAAwD,4CAA4C,EAAE;AACtG,SAAS;AACT,uBAAuB,OAAO;AAC9B,uBAAuB,EAAE;AACzB;AACA;AACA,2BAA2B,EAAE;AAC7B;AACA,2BAA2B,EAAE;AAC7B;AACA;AACA;AACA;AACA,2BAA2B,EAAE;AAC7B;AACA,2BAA2B,EAAE;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,EAAE;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0EAA0E,4BAA4B;AACtG;AACA;AACA;AACA;AACA,2BAA2B,EAAE;AAC7B;AACA;AACA;AACA,uBAAuB,EAAE;AACzB,+CAA+C,kBAAkB;AACjE;AACA,2BAA2B,EAAE;AAC7B;AACA,2BAA2B,EAAE;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,EAAE;AACjC;AACA,+BAA+B,EAAE;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,EAAE;AACjC;AACA,+BAA+B,EAAE;AACjC;AACA,+BAA+B,EAAE;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,2BAA2B,iFAAiF;AAC5G,uBAAuB,EAAE;AACzB;AACA,uBAAuB,EAAE;AACzB;AACA,uBAAuB,EAAE;AACzB;AACA;AACA;AACA;AACA,uBAAuB,EAAE;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,mCAAmC,8DAA8D;AACjG,uBAAuB,EAAE;AACzB;AACA,uBAAuB,EAAE;AACzB;AACA,uBAAuB,EAAE;AACzB;AACA;AACA;AACA,uBAAuB,EAAE;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA,2CAA2C,gDAAgD;AAC3F,uBAAuB,EAAE;AACzB;AACA,uBAAuB,EAAE;AACzB;AACA,uBAAuB,EAAE;AACzB,oCAAoC,EAAE;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA,qBAAqB,wBAAwB,EAAE;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA,uBAAuB,sBAAsB,EAAE;AAC/C;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA,uBAAuB,EAAE;AACzB;AACA,uBAAuB,EAAE;AACzB;AACA,uBAAuB,EAAE;AACzB;AACA;AACA;AACA;AACA;AACA,oCAAoC,gDAAgD;AACpF,2BAA2B,EAAE;AAC7B;AACA,2BAA2B,EAAE;AAC7B;AACA,2BAA2B,EAAE;AAC7B,wCAAwC,EAAE;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,eAAe,WAAW;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB,mGAAmG,kBAAkB,EAAE;AACvH,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA,uBAAuB,EAAE;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA,mBAAmB,EAAE;AACrB,2DAA2D,iEAAiE;AAC5H,eAAe,0BAA0B;AACzC,uBAAuB,EAAE;AACzB;AACA;AACA,wBAAwB;AACxB;AACA,uBAAuB,EAAE;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,EAAE;AACjC;AACA,+BAA+B,EAAE;AACjC;AACA;AACA;AACA;AACA,mCAAmC,EAAE;AACrC;AACA,mCAAmC,EAAE;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA,uBAAuB,EAAE;AACzB;AACA,uBAAuB,EAAE;AACzB;AACA,uBAAuB,EAAE;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA,uBAAuB,EAAE;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA,kEAAkE,kBAAkB,EAAE;AACtF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,EAAE;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA,uBAAuB,EAAE;AACzB;AACA,2BAA2B,UAAU;AACrC;AACA;AACA;AACA;AACA,uBAAuB,EAAE;AACzB;AACA,2BAA2B,UAAU;AACrC;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA,SAAS,OAAO,uDAAS,UAAU,iCAAiC;AACpE;AACA;AACA,oDAAoD;AACpD,SAAS,OAAO,8DAAgB,EAAE;AAClC,SAAS,OAAO,yDAAW,EAAE;AAC7B,SAAS,OAAO,6DAAe,EAAE;AACjC,SAAS,OAAO,sEAAwB,EAAE;AAC1C,SAAS,OAAO,+DAAiB,EAAE;AACnC,SAAS,OAAO,oDAAM,EAAE;AACxB,SAAS;AACT,MAAM;AACN;AACA,oBAAoB,OAAO,mDAAK,EAAE;AAClC,8BAA8B,OAAO,mDAAK,EAAE;AAC5C,mCAAmC,OAAO,mDAAK,EAAE;AACjD,iCAAiC,OAAO,mDAAK,EAAE;AAC/C,+BAA+B,OAAO,mDAAK,EAAE;AAC7C,0BAA0B,OAAO,mDAAK,EAAE;AACxC,uBAAuB,OAAO,oDAAM,EAAE;AACtC,wCAAwC,OAAO,oDAAM,EAAE;AACvD,+BAA+B,OAAO,oDAAM,EAAE;AAC9C,yBAAyB,OAAO,oDAAM,EAAE;AACxC,iCAAiC,OAAO,oDAAM,EAAE;AAChD,0BAA0B,OAAO,oDAAM,EAAE;AACzC,yBAAyB,OAAO,mDAAK,EAAE;AACvC;AACA;AACA,CAAC;AACD;AACA,WAAW,EAAE;AACb,YAAY;AACZ;AACA;AACA,eAAe,EAAE;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,uDAAS;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,0DAAY;AAC/C;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA,gBAAgB;AAChB;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA,uBAAuB,EAAE;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,uBAAuB,EAAE;AACzB;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,eAAe,WAAW;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA;AACA,iCAAiC,gBAAgB;AACjD;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB,mGAAmG,kBAAkB,EAAE;AACvH,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,EAAE;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,gDAAgD,0BAA0B,EAAE;AAC5E;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,uBAAuB,EAAE;AACzB;AACA;AACA,2BAA2B,EAAE;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA,iCAAiC,4DAAO;AACxC;AACA,SAAS;AACT;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,uBAAuB,EAAE;AACzB;AACA,uBAAuB,EAAE;AACzB;AACA,uBAAuB,EAAE;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,gDAAgD;AACpF,2BAA2B,EAAE;AAC7B;AACA,2BAA2B,EAAE;AAC7B;AACA,2BAA2B,EAAE;AAC7B,wCAAwC,EAAE;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,OAAO,uDAAS;AACzB;AACA,iBAAiB;AACjB;AACA;AACA,wDAAwD;AACxD,SAAS,OAAO,8DAAgB,EAAE;AAClC,SAAS,OAAO,yDAAW,EAAE;AAC7B,SAAS,OAAO,6DAAe,EAAE;AACjC,SAAS,OAAO,sEAAwB,EAAE;AAC1C,SAAS,OAAO,+DAAiB,EAAE;AACnC,SAAS,OAAO,oDAAM,EAAE;AACxB,SAAS,kCAAkC;AAC3C,SAAS;AACT,MAAM;AACN;AACA,wBAAwB,OAAO,mDAAK,EAAE;AACtC,0BAA0B,OAAO,oDAAM,EAAE;AACzC;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,OAAO,sDAAQ;AACxB;AACA;AACA;AACA;AACA,sDAAsD,4DAAY;AAClE,iBAAiB;AACjB;AACA;AACA,CAAC;;AAED;AACA;AACA,cAAc,uEAAuE;AACrF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+DAA+D,eAAe,YAAY,aAAa;AACvG,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,IAAI,uDAAS;AACb;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,4CAAO;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,0DAAY;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,0DAAY;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,0DAAY;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,0DAAY;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA,sDAAsD,6CAA6C,EAAE;AACrG;AACA;AACA;AACA,SAAS;AACT;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gDAAgD,EAAE;AAClD;AACA;AACA,iBAAiB;AACjB;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA,uBAAuB,EAAE;AACzB;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C;AAC1C;AACA;AACA;AACA,eAAe,EAAE,6BAA6B;AAC9C,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE,6BAA6B;AAC9C,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA,uCAAuC,EAAE;AACzC;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,EAAE;AACzB;AACA,uBAAuB,EAAE;AACzB;AACA,2CAA2C,EAAE;AAC7C;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,8CAA8C,2DAAI;AAClD;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,GAAG;AAClB,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,eAAe,GAAG;AAClB,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,EAAE;AACzC;AACA;AACA,aAAa;AACb;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,OAAO,uDAAS;AACzB;AACA;AACA,iCAAiC,gEAAgE;AACjG,iBAAiB;AACjB;AACA;AACA,uDAAuD;AACvD,SAAS,OAAO,wDAAU,EAAE;AAC5B,SAAS,OAAO,+DAAiB,EAAE;AACnC,SAAS,+BAA+B;AACxC,SAAS,gCAAgC,OAAO,sDAAQ,EAAE,GAAG,OAAO,oDAAM,gCAAgC;AAC1G,MAAM;AACN;AACA,mBAAmB,OAAO,0DAAY,6BAA6B,yCAAyC,IAAI;AAChH,2BAA2B,OAAO,uDAAS,8BAA8B,eAAe,IAAI;AAC5F,oBAAoB,OAAO,6DAAe,SAAS,gEAAU,cAAc,iCAAiC,EAAE,IAAI,oBAAoB,IAAI;AAC1I,qBAAqB,OAAO,oDAAM,EAAE;AACpC,oBAAoB,OAAO,oDAAM,EAAE;AACnC,qBAAqB,OAAO,oDAAM,EAAE;AACpC,oBAAoB,OAAO,oDAAM,EAAE;AACnC,2BAA2B,OAAO,mDAAK,EAAE;AACzC,cAAc,OAAO,mDAAK,EAAE;AAC5B;AACA;AACA,CAAC;;AAED;AACA;AACA,cAAc,uEAAuE;AACrF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,uBAAuB,EAAE;AACzB;AACA,yCAAyC;AACzC;AACA,2BAA2B,EAAE;AAC7B;AACA;AACA,kDAAkD;AAClD;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,SAAS,OAAO,uDAAS;AACzB;AACA,iBAAiB;AACjB;AACA;AACA,qEAAqE;AACrE,SAAS,sCAAsC,OAAO,kDAAI,EAAE,GAAG,OAAO,sDAAQ,EAAE,GAAG,OAAO,oDAAM,8BAA8B;AAC9H,MAAM;AACN;AACA,kBAAkB,OAAO,mDAAK,wCAAwC;AACtE,yBAAyB,OAAO,0DAAY,kCAAkC;AAC9E;AACA;AACA,CAAC;;AAED;AACA;AACA,cAAc,uEAAuE;AACrF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,OAAO,sDAAQ;AACxB;AACA;AACA;AACA;AACA,8BAA8B,4DAAY;AAC1C;AACA,iBAAiB;AACjB;AACA;AACA,CAAC;;AAED;AACA;AACA,cAAc,uEAAuE;AACrF;AACA,WAAW,OAAO;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,uBAAuB;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,uBAAuB;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,uBAAuB;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,uBAAuB;AACvD;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA,uBAAuB,EAAE;AACzB,wCAAwC,EAAE;AAC1C;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,OAAO,uDAAS;AACzB;AACA,iBAAiB;AACjB;AACA;AACA,mDAAmD;AACnD,SAAS,OAAO,wDAAU;AAC1B,MAAM;AACN;AACA,2BAA2B,OAAO,yDAAW,sDAAsD;AACnG,yBAAyB,OAAO,yDAAW,oDAAoD;AAC/F,oBAAoB,OAAO,mDAAK,uBAAuB;AACvD;AACA;AACA,CAAC;;AAED;AACA;AACA,cAAc,uEAAuE;AACrF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA,cAAc,uEAAuE;AACrF;AACA,WAAW,EAAE;AACb;AACA,WAAW,OAAO;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,mCAAmC,wBAAwB;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,wBAAwB;AAC5D;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,mCAAmC,wBAAwB;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,wBAAwB;AAC5D;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,EAAE;AACzB,0EAA0E,EAAE,OAAO;AACnF;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA,oDAAoD,sDAAQ,mGAAmG,sCAAsC;AACrM;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,QAAQ,gBAAgB;AAC/C;AACA;AACA;AACA;AACA,qBAAqB,0BAA0B;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,OAAO,uDAAS;AACzB;AACA;AACA,iBAAiB;AACjB;AACA;AACA,oDAAoD;AACpD,SAAS,0BAA0B;AACnC,SAAS,OAAO,sDAAO,gBAAgB,OAAO,sDAAQ,EAAE,GAAG,OAAO,kDAAI,EAAE,GAAG,OAAO,oDAAM,SAAS,sDAAO,IAAI,GAAG;AAC/G,SAAS,OAAO,8DAAe,gBAAgB,OAAO,sDAAQ,EAAE,GAAG,OAAO,kDAAI,EAAE,GAAG,OAAO,oDAAM,SAAS,8DAAe,IAAI,GAAG;AAC/H,SAAS,OAAO,wDAAU,EAAE;AAC5B,SAAS,OAAO,+DAAiB;AACjC,MAAM;AACN;AACA,iBAAiB,OAAO,mDAAK,oBAAoB;AACjD,oBAAoB,OAAO,mDAAK,EAAE;AAClC,oBAAoB,OAAO,mDAAK,EAAE;AAClC,mBAAmB,OAAO,yDAAW,2CAA2C;AAChF,sBAAsB,OAAO,yDAAW,8CAA8C;AACtF,mBAAmB,OAAO,0DAAY,gCAAgC;AACtE,kBAAkB,OAAO,0DAAY,+BAA+B;AACpE,mBAAmB,OAAO,0DAAY,oBAAoB;AAC1D;AACA;AACA,CAAC;;AAED;AACA;AACA,cAAc,uEAAuE;AACrF;AACA,WAAW,EAAE;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,OAAO,uDAAS;AACzB;AACA,iBAAiB;AACjB;AACA;AACA,wBAAwB,OAAO,yDAAW,2CAA2C;AACrF,cAAc,OAAO,yDAAW,sBAAsB,GAAG,OAAO,mDAAK,EAAE;AACvE;AACA;AACA,CAAC;;AAED;AACA;AACA,cAAc,uEAAuE;AACrF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,OAAO,uDAAS;AACzB;AACA,iBAAiB;AACjB;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,OAAO,sDAAQ;AACxB;AACA;AACA,iBAAiB;AACjB;AACA;AACA,CAAC;;AAED;AACA;AACA,cAAc,uEAAuE;AACrF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,OAAO,uDAAS;AACzB;AACA,iBAAiB;AACjB;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,OAAO,sDAAQ;AACxB;AACA;AACA,iBAAiB;AACjB;AACA;AACA,CAAC;;AAED;AACA;AACA,cAAc,uEAAuE;AACrF;AACA,WAAW,EAAE;AACb;AACA,WAAW,OAAO;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,uDAAS;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA,uBAAuB,EAAE;AACzB,oCAAoC,EAAE;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA,SAAS,OAAO,uDAAS;AACzB;AACA,yFAAyF;AACzF,iCAAiC,kEAAkE;AACnG,iBAAiB;AACjB;AACA;AACA,yDAAyD;AACzD,SAAS,OAAO,wDAAU,EAAE;AAC5B,SAAS,gCAAgC,OAAO,sDAAQ,EAAE,GAAG,OAAO,oDAAM,gCAAgC;AAC1G,MAAM;AACN;AACA,cAAc,OAAO,yDAAW,sBAAsB,GAAG,OAAO,mDAAK,EAAE;AACvE,wBAAwB,OAAO,yDAAW,oCAAoC;AAC9E,0BAA0B,OAAO,yDAAW,iDAAiD;AAC7F,sBAAsB,OAAO,yDAAW,8CAA8C;AACtF,qBAAqB,OAAO,yDAAW,6CAA6C;AACpF,iBAAiB,OAAO,yDAAW,yCAAyC;AAC5E,oBAAoB,OAAO,yDAAW,4CAA4C;AAClF,oBAAoB,OAAO,yDAAW,4CAA4C;AAClF,0BAA0B,OAAO,yDAAW,mDAAmD;AAC/F,oBAAoB,OAAO,yDAAW,4CAA4C;AAClF,oBAAoB,OAAO,yDAAW,8CAA8C,GAAG,OAAO,mDAAK,EAAE;AACrG,sBAAsB,OAAO,yDAAW,2CAA2C;AACnF,wBAAwB,OAAO,yDAAW,6CAA6C;AACvF,sBAAsB,OAAO,yDAAW,6CAA6C;AACrF,iBAAiB,OAAO,6DAAe,4BAA4B,yBAAyB,IAAI;AAChG,iBAAiB,OAAO,0DAAY,6BAA6B,wCAAwC,IAAI;AAC7G,mBAAmB,OAAO,0DAAY,gCAAgC;AACtE,gBAAgB,OAAO,mDAAK,mBAAmB;AAC/C,iCAAiC,OAAO,mDAAK,EAAE;AAC/C,oBAAoB,OAAO,yDAAW,4CAA4C;AAClF,gCAAgC,OAAO,yDAAW,0CAA0C;AAC5F,uCAAuC,OAAO,yDAAW,iDAAiD;AAC1G,mCAAmC,OAAO,yDAAW,6CAA6C;AAClG;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,OAAO,sDAAQ;AACxB;AACA;AACA,8BAA8B,4DAAY;AAC1C,iBAAiB;AACjB;AACA;AACA,CAAC;;AAED;AACA;AACA,cAAc,uEAAuE;AACrF;;AAEA;AACA;AACA,cAAc,uEAAuE;AACrF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,IAAI,uDAAS;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wDAAwD,8BAA8B;AACtF;AACA;AACA,oCAAoC,4CAAO;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,0DAAY;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC;AAChC;AACA,uBAAuB,EAAE;AACzB;AACA,uBAAuB,EAAE;AACzB,wBAAwB;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA,uBAAuB,EAAE;AACzB,2CAA2C;AAC3C;AACA,2BAA2B,EAAE;AAC7B;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC,gEAAS;AAC9C,kCAAkC,4DAAO;AACzC,0CAA0C,gEAAS;AACnD;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,SAAS,OAAO,uDAAS;AACzB;AACA,iBAAiB;AACjB;AACA;AACA,2DAA2D;AAC3D,SAAS,OAAO,sDAAO,gBAAgB,OAAO,kDAAI,EAAE,GAAG,OAAO,sDAAQ,EAAE,GAAG,OAAO,oDAAM,SAAS,sDAAO,IAAI,GAAG;AAC/G,SAAS,OAAO,8DAAe,gBAAgB,OAAO,kDAAI,EAAE,GAAG,OAAO,sDAAQ,EAAE,GAAG,OAAO,oDAAM,SAAS,8DAAe,IAAI,GAAG;AAC/H,SAAS,6CAA6C,OAAO,sDAAQ,EAAE,GAAG;AAC1E,SAAS,OAAO,wDAAU,EAAE;AAC5B,SAAS,OAAO,+DAAiB;AACjC,MAAM;AACN;AACA,kBAAkB,OAAO,mDAAK,8BAA8B;AAC5D,oBAAoB,OAAO,mDAAK,sCAAsC;AACtE,gCAAgC,OAAO,mDAAK,sCAAsC;AAClF,0BAA0B,OAAO,oDAAM,EAAE;AACzC,oBAAoB,OAAO,yDAAW,gCAAgC;AACtE,gBAAgB,OAAO,yDAAW,wBAAwB;AAC1D,wBAAwB,OAAO,yDAAW,iCAAiC;AAC3E,oBAAoB,OAAO,yDAAW,iCAAiC;AACvE,oBAAoB,OAAO,yDAAW,6BAA6B;AACnE,gCAAgC,OAAO,yDAAW,yCAAyC;AAC3F,4BAA4B,OAAO,yDAAW,qCAAqC;AACnF,mBAAmB,OAAO,0DAAY,oBAAoB;AAC1D,uBAAuB,OAAO,0DAAY,4CAA4C,GAAG,OAAO,0DAAY,gDAAgD,GAAG,OAAO,0DAAY,0CAA0C,GAAG,OAAO,0DAAY,8CAA8C;AAChS,iBAAiB,OAAO,0DAAY,0BAA0B,GAAG,OAAO,0DAAY,gCAAgC;AACpH;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,OAAO,sDAAQ;AACxB,iDAAiD,4DAAY;AAC7D;AACA;AACA,iBAAiB;AACjB;AACA;AACA,CAAC;;AAED;AACA;AACA,cAAc,uEAAuE;AACrF;AACA;AACA,IAAI,uDAAS;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,0DAAY;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA,uBAAuB,EAAE;AACzB;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,SAAS,OAAO,uDAAS;AACzB;AACA,iBAAiB;AACjB;AACA;AACA,qDAAqD;AACrD,SAAS,OAAO,wDAAU,EAAE;AAC5B,SAAS,OAAO,uDAAS,EAAE;AAC3B,SAAS,gCAAgC,OAAO,sDAAQ,EAAE,GAAG,OAAO,oDAAM,gCAAgC;AAC1G,MAAM;AACN;AACA,uBAAuB,OAAO,oDAAM,EAAE;AACtC,gBAAgB,OAAO,yDAAW,wBAAwB;AAC1D,gBAAgB,OAAO,mDAAK,wBAAwB;AACpD,iBAAiB,OAAO,mDAAK,6BAA6B;AAC1D,sBAAsB,OAAO,mDAAK,kCAAkC;AACpE,iBAAiB,OAAO,mDAAK,uBAAuB;AACpD,oBAAoB,OAAO,mDAAK,EAAE;AAClC,wBAAwB,OAAO,yDAAW,qCAAqC;AAC/E,2BAA2B,OAAO,yDAAW,wCAAwC;AACrF,2BAA2B,OAAO,yDAAW,yCAAyC;AACtF,8BAA8B,OAAO,yDAAW,4CAA4C;AAC5F,6BAA6B,OAAO,yDAAW,4BAA4B;AAC3E,oBAAoB,OAAO,mDAAK,EAAE;AAClC,mBAAmB,OAAO,0DAAY,gCAAgC;AACtE;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,OAAO,sDAAQ;AACxB;AACA;AACA,iBAAiB;AACjB;AACA;AACA,CAAC;;AAED;AACA;AACA,cAAc,uEAAuE;AACrF;AACA,WAAW,OAAO;AAClB;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA,uBAAuB,EAAE;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA,SAAS,OAAO,uDAAS;AACzB;AACA;AACA,iBAAiB;AACjB;AACA;AACA,cAAc,OAAO,yDAAW,sBAAsB,GAAG,OAAO,mDAAK,EAAE;AACvE,kBAAkB,OAAO,mDAAK,oBAAoB;AAClD,gBAAgB,OAAO,yDAAW,wBAAwB,GAAG,OAAO,mDAAK,EAAE;AAC3E,gBAAgB,OAAO,yDAAW,gCAAgC,GAAG,OAAO,mDAAK,EAAE;AACnF,oBAAoB,OAAO,yDAAW,wCAAwC;AAC9E,kBAAkB,OAAO,yDAAW,uCAAuC,GAAG,OAAO,mDAAK,EAAE;AAC5F,oBAAoB,OAAO,yDAAW,0CAA0C,GAAG,OAAO,mDAAK,EAAE;AACjG,iBAAiB,OAAO,yDAAW,2BAA2B;AAC9D;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA,SAAS,OAAO,sDAAQ;AACxB;AACA;AACA,iBAAiB;AACjB;AACA;AACA,CAAC;;AAED;AACA;AACA,cAAc,uEAAuE;AACrF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA,oCAAoC;AACpC;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA,cAAc,uEAAuE;AACrF;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,OAAO,uDAAS;AACzB;AACA,iBAAiB;AACjB;AACA;AACA,yDAAyD;AACzD,SAAS,OAAO,wDAAU;AAC1B,MAAM;AACN;AACA,qBAAqB,OAAO,yDAAW,qCAAqC;AAC5E;AACA;AACA,CAAC;;AAED;AACA;AACA,cAAc,uEAAuE;AACrF;AACA,WAAW,OAAO;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,0DAAY;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,0DAAY;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,0DAAY;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,0DAAY;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,0DAAY;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,0DAAY;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,0DAAY;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,4CAAO;AACnC;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,iCAAiC,uBAAuB;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,uBAAuB;AACzD;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,iCAAiC,uBAAuB;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,uBAAuB;AACzD;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,EAAE;AACjC;AACA;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,EAAE;AACjC;AACA;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,EAAE;AACzB;AACA,uDAAuD,mCAAmC,EAAE;AAC5F;AACA;AACA,oBAAoB,sDAAS,8BAA8B,gEAAS;AACpE,mDAAmD,iCAAiC,EAAE;AACtF,oBAAoB,sDAAS,8BAA8B,+DAAQ,cAAc,QAAQ,qDAAQ,IAAI,4DAAuB,EAAE,EAAE,GAAG,gEAAS,4CAA4C,iCAAiC,EAAE;AAC3N,oBAAoB,sDAAS,4BAA4B,gEAAS;AAClE,mDAAmD,+BAA+B,EAAE;AACpF;AACA;AACA,wBAAwB,sDAAS,qCAAqC,gEAAS;AAC/E,uDAAuD,iCAAiC,EAAE;AAC1F;AACA;AACA;AACA,oBAAoB,sDAAS,6BAA6B,gEAAS;AACnE,mDAAmD,iCAAiC,EAAE;AACtF;AACA;AACA;AACA,oBAAoB,sDAAS,4BAA4B,gEAAS;AAClE,mDAAmD,iCAAiC,EAAE;AACtF;AACA,aAAa;AACb;AACA;AACA,gBAAgB,sDAAS,yCAAyC,+DAAQ,cAAc,QAAQ,qDAAQ,IAAI,4DAAuB,EAAE,EAAE,GAAG,gEAAS,4CAA4C,iCAAiC,EAAE;AAClO,gBAAgB,sDAAS,wCAAwC,gEAAS;AAC1E,+CAA+C,+BAA+B,EAAE;AAChF;AACA;AACA,gBAAgB,sDAAS,yCAAyC,+DAAQ,cAAc,QAAQ,qDAAQ,IAAI,4DAAuB,EAAE,EAAE,GAAG,gEAAS,4CAA4C,iCAAiC,EAAE;AAClO,gBAAgB,sDAAS,uCAAuC,gEAAS;AACzE,+CAA+C,+BAA+B,EAAE;AAChF;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA,uBAAuB,EAAE;AACzB;AACA,uBAAuB,EAAE;AACzB;AACA;AACA;AACA;AACA;AACA,uBAAuB,EAAE;AACzB;AACA,uBAAuB,EAAE;AACzB;AACA,uBAAuB,EAAE;AACzB;AACA,uBAAuB,EAAE;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,GAAG;AAClB,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,eAAe,GAAG;AAClB,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,GAAG;AAClB,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,GAAG;AAClB,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,EAAE;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,EAAE;AAC7B;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB,mEAAmE,6DAA6D,EAAE;AAClI,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA,uBAAuB,EAAE;AACzB;AACA,uBAAuB,EAAE;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,EAAE;AACzB;AACA,uBAAuB,EAAE;AACzB;AACA;AACA;AACA,2BAA2B,EAAE;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,EAAE;AACrC;AACA;AACA,mCAAmC,EAAE;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,EAAE;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,EAAE;AACzB;AACA,uBAAuB,EAAE;AACzB;AACA,uBAAuB,EAAE;AACzB;AACA,uBAAuB,EAAE;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,EAAE;AACjC;AACA,+BAA+B,EAAE;AACjC;AACA,+BAA+B,EAAE;AACjC;AACA,+BAA+B,EAAE;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA;AACA,8BAA8B,aAAa;AAC3C;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,uBAAuB,8BAA8B;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA,uBAAuB,EAAE;AACzB;AACA,uBAAuB,EAAE;AACzB;AACA;AACA;AACA,uBAAuB,EAAE;AACzB;AACA,uBAAuB,EAAE;AACzB;AACA;AACA;AACA;AACA;AACA,uBAAuB,EAAE;AACzB;AACA,uBAAuB,EAAE;AACzB;AACA;AACA;AACA,uBAAuB,EAAE;AACzB;AACA,uBAAuB,EAAE;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,EAAE;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA,gDAAgD;AAChD;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA,uBAAuB,EAAE;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA,8FAA8F;AAC9F;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA,uBAAuB,EAAE;AACzB;AACA,uBAAuB,EAAE;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA,uBAAuB,EAAE;AACzB;AACA,uBAAuB,EAAE;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,OAAO,uDAAS;AACzB;AACA;AACA,iBAAiB;AACjB;AACA;AACA,mDAAmD;AACnD,SAAS,OAAO,+DAAiB,EAAE;AACnC,SAAS,OAAO,wDAAU,EAAE;AAC5B,SAAS,OAAO,8DAAgB,EAAE;AAClC,SAAS,OAAO,oDAAM,EAAE;AACxB,SAAS,OAAO,uDAAS;AACzB,MAAM;AACN;AACA,gBAAgB,OAAO,mDAAK,sBAAsB;AAClD,yBAAyB,OAAO,mDAAK,EAAE;AACvC,uBAAuB,OAAO,mDAAK,EAAE;AACrC,iBAAiB,OAAO,mDAAK,EAAE;AAC/B,sBAAsB,OAAO,mDAAK,EAAE;AACpC,0BAA0B,OAAO,mDAAK,EAAE;AACxC,4BAA4B,OAAO,mDAAK,EAAE;AAC1C,yBAAyB,OAAO,mDAAK,EAAE;AACvC,qBAAqB,OAAO,mDAAK,EAAE;AACnC,wBAAwB,OAAO,mDAAK,EAAE;AACtC,wBAAwB,OAAO,mDAAK,EAAE;AACtC,qBAAqB,OAAO,oDAAM,EAAE;AACpC,oBAAoB,OAAO,oDAAM,EAAE;AACnC,mBAAmB,OAAO,oDAAM,EAAE;AAClC,qBAAqB,OAAO,oDAAM,EAAE;AACpC,uBAAuB,OAAO,oDAAM,EAAE;AACtC,wBAAwB,OAAO,oDAAM,EAAE;AACvC,wBAAwB,OAAO,oDAAM,EAAE;AACvC,uBAAuB,OAAO,6DAAe,mCAAmC;AAChF,uBAAuB,OAAO,yDAAW,+BAA+B;AACxE,qBAAqB,OAAO,yDAAW,6BAA6B;AACpE,0BAA0B,OAAO,yDAAW,8CAA8C;AAC1F;AACA,IAAI,wDAAU;AACd;AACA,QAAQ,wDAAU;AAClB;AACA,IAAI,wDAAU;AACd;AACA,QAAQ,wDAAU;AAClB;AACA,IAAI,wDAAU;AACd;AACA,QAAQ,wDAAU;AAClB,QAAQ,wDAAU;AAClB;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,0DAAY;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,0DAAY;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,0DAAY;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,0DAAY;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,4CAAO;AACnC;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,wBAAwB;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,wBAAwB;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA,YAAY,sDAAS,mDAAmD,gEAAS;AACjF,2CAA2C,sCAAsC,EAAE,YAAY,EAAE;AACjG,YAAY,sDAAS,mDAAmD,gEAAS,4CAA4C,+BAA+B,EAAE;AAC9J,YAAY,sDAAS,kDAAkD,gEAAS,4CAA4C,8BAA8B,EAAE;AAC5J,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,uBAAuB,EAAE;AACzB;AACA,uBAAuB,EAAE;AACzB;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA,uBAAuB,EAAE;AACzB,wCAAwC,EAAE;AAC1C,2BAA2B,sBAAsB;AACjD;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,EAAE;AACzB,wCAAwC,EAAE;AAC1C,2BAA2B,sBAAsB;AACjD;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,EAAE;AACzB,wCAAwC,EAAE;AAC1C,uBAAuB,EAAE;AACzB,wCAAwC,EAAE;AAC1C,2BAA2B,sBAAsB;AACjD,+BAA+B,sBAAsB;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,OAAO,uDAAS;AACzB;AACA;AACA,iBAAiB;AACjB;AACA;AACA,mDAAmD;AACnD,SAAS,OAAO,wDAAU,EAAE;AAC5B,SAAS,OAAO,uDAAS,EAAE;AAC3B,SAAS,OAAO,oDAAM;AACtB,MAAM;AACN;AACA,gBAAgB,OAAO,mDAAK,sBAAsB;AAClD,uBAAuB,OAAO,mDAAK,EAAE;AACrC,wBAAwB,OAAO,mDAAK,EAAE;AACtC,iBAAiB,OAAO,oDAAM,EAAE;AAChC,gBAAgB,OAAO,oDAAM,EAAE;AAC/B,iBAAiB,OAAO,oDAAM,EAAE;AAChC,mBAAmB,OAAO,oDAAM,EAAE;AAClC,qBAAqB,OAAO,yDAAW,6BAA6B;AACpE,oBAAoB,OAAO,yDAAW,6BAA6B;AACnE,sBAAsB,OAAO,0DAAY,kCAAkC;AAC3E;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,OAAO,sDAAQ;AACxB;AACA;AACA,iBAAiB;AACjB;AACA;AACA,CAAC;;AAED;AACA;AACA,cAAc,uEAAuE;AACrF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,6BAA6B,0DAAY,QAAQ;AACjD;AACA,4BAA4B,0DAAY;AACxC;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA,4BAA4B,0BAA0B;AACtD;AACA;AACA,SAAS,OAAO,uDAAS;AACzB;AACA,iBAAiB;AACjB;AACA;AACA,qDAAqD;AACrD,SAAS,OAAO,wDAAU,EAAE;AAC5B,SAAS,OAAO,uDAAS;AACzB,MAAM;AACN;AACA,qBAAqB,OAAO,oDAAM,EAAE;AACpC,oBAAoB,OAAO,oDAAM,EAAE;AACnC,yBAAyB,OAAO,mDAAK,wBAAwB;AAC7D;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,EAAE;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS,OAAO,kDAAI;AACpB;AACA;AACA,iBAAiB;AACjB;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,OAAO,sDAAQ;AACxB;AACA;AACA,8BAA8B,4DAAY;AAC1C,iBAAiB;AACjB;AACA;AACA,CAAC;;AAED;AACA;AACA,cAAc,uEAAuE;AACrF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC,wBAAwB;AACjE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C,wBAAwB;AAClE;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,yCAAyC,wBAAwB;AACjE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C,wBAAwB;AAClE;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,oCAAoC,EAAE;AACtC;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,qCAAqC,wBAAwB;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC,wBAAwB;AAC9D;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA,sCAAsC,wBAAwB;AAC9D;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA,+CAA+C,oCAAoC,EAAE;AACrF;AACA;AACA;AACA,SAAS,OAAO,uDAAS;AACzB;AACA;AACA,iBAAiB;AACjB;AACA;AACA,oDAAoD;AACpD,SAAS,OAAO,wDAAU,EAAE;AAC5B,SAAS,4BAA4B,OAAO,oDAAM,SAAS,gEAAiB,IAAI,GAAG,OAAO,kDAAI,EAAE,GAAG,OAAO,sDAAQ,EAAE;AACpH,MAAM;AACN;AACA,mBAAmB,OAAO,mDAAK,uBAAuB;AACtD;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,OAAO,sDAAQ;AACxB;AACA;AACA,iBAAiB;AACjB;AACA;AACA,CAAC;;AAED;AACA;AACA,cAAc,uEAAuE;AACrF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA,qBAAqB,kBAAkB,EAAE;AACzC;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA,qBAAqB,qBAAqB,EAAE;AAC5C;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA,qBAAqB,uBAAuB,EAAE;AAC9C;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA,SAAS,OAAO,uDAAS;AACzB;AACA,iBAAiB;AACjB;AACA;AACA,eAAe,OAAO,mDAAK,2BAA2B;AACtD,mBAAmB,OAAO,mDAAK,+BAA+B;AAC9D,gBAAgB,OAAO,mDAAK,4BAA4B;AACxD,mBAAmB,OAAO,mDAAK,+BAA+B;AAC9D,qBAAqB,OAAO,mDAAK,iCAAiC;AAClE,mBAAmB,OAAO,yDAAW,4BAA4B;AACjE,oBAAoB,OAAO,yDAAW,8BAA8B;AACpE,0BAA0B,OAAO,yDAAW,oCAAoC;AAChF,iBAAiB,OAAO,yDAAW,gCAAgC;AACnE,qBAAqB,OAAO,yDAAW,mCAAmC;AAC1E;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA,SAAS,OAAO,uDAAS;AACzB;AACA,iBAAiB;AACjB;AACA;AACA,gBAAgB,OAAO,mDAAK,0BAA0B;AACtD,kBAAkB,OAAO,mDAAK,4BAA4B;AAC1D,gBAAgB,OAAO,mDAAK,sBAAsB;AAClD,iBAAiB,OAAO,mDAAK,2BAA2B;AACxD,iBAAiB,OAAO,mDAAK,2BAA2B;AACxD,iBAAiB,OAAO,yDAAW,yBAAyB;AAC5D,qBAAqB,OAAO,yDAAW,0BAA0B;AACjE;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,OAAO,sDAAQ;AACxB;AACA;AACA,iBAAiB;AACjB;AACA;AACA,CAAC;;AAED;AACA;AACA,cAAc,uEAAuE;AACrF;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA,8CAA8C;AAC9C;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C,OAAO;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,EAAE;AACzB;AACA,uBAAuB,EAAE;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,iBAAiB;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA;AACA,8BAA8B,sDAAQ,iCAAiC,gBAAgB;AACvF;AACA;AACA;AACA;AACA,uBAAuB,QAAQ,gBAAgB;AAC/C;AACA;AACA;AACA;AACA,qBAAqB,0BAA0B;AAC/C;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA,8BAA8B,sDAAQ,iCAAiC,gBAAgB;AACvF;AACA;AACA;AACA;AACA,uBAAuB,QAAQ,gBAAgB;AAC/C;AACA;AACA;AACA;AACA,qBAAqB,0BAA0B;AAC/C;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,uBAAuB,6BAA6B;AACpD,uBAAuB,EAAE;AACzB;AACA,uBAAuB,EAAE;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA,0CAA0C,sDAAQ,qEAAqE,4BAA4B;AACnJ;AACA,2BAA2B,EAAE;AAC7B;AACA;AACA;AACA;AACA,uBAAuB,QAAQ,gBAAgB;AAC/C;AACA;AACA;AACA;AACA,qBAAqB,0BAA0B;AAC/C;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA;AACA,+BAA+B,sDAAQ,oCAAoC,iBAAiB;AAC5F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,QAAQ,gBAAgB;AAC/C;AACA;AACA;AACA;AACA,qBAAqB,0BAA0B;AAC/C;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,eAAe;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,EAAE;AAC7B;AACA;AACA;AACA,mCAAmC,eAAe;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,eAAe;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA,uCAAuC,sDAAQ,4DAA4D,yBAAyB;AACpI;AACA,2BAA2B,EAAE;AAC7B;AACA;AACA;AACA;AACA;AACA,+BAA+B,EAAE;AACjC;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,iBAAiB;AACzD;AACA;AACA;AACA;AACA,uCAAuC,EAAE;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,QAAQ,gBAAgB;AAC/C;AACA;AACA;AACA;AACA,qBAAqB,0BAA0B;AAC/C;AACA;AACA,sCAAsC,kBAAkB;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,uBAAuB,iBAAiB;AACxC,uBAAuB,EAAE;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,uBAAuB,iBAAiB;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA,+BAA+B,sDAAQ,oCAAoC,iBAAiB;AAC5F;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,QAAQ,gBAAgB;AAC/C;AACA;AACA;AACA;AACA,qBAAqB,0BAA0B;AAC/C;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA,cAAc,uEAAuE;AACrF;AACA,WAAW,EAAE;AACb,wBAAwB;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,0DAAY;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,EAAE;AACzB;AACA;AACA;AACA;AACA;AACA,uBAAuB,EAAE;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA,iCAAiC,+CAA+C;AAChF;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA,6BAA6B,aAAa;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,8CAA8C;AAC/E;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA,mBAAmB,6BAA6B;AAChD;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA,mBAAmB,8BAA8B;AACjD;AACA,SAAS,OAAO,uDAAS;AACzB,iCAAiC,UAAU,gEAAiB,8CAA8C;AAC1G;AACA,iBAAiB;AACjB;AACA;AACA,mDAAmD;AACnD,SAAS,OAAO,wDAAU;AAC1B,MAAM;AACN;AACA,gBAAgB,OAAO,mDAAK,sBAAsB;AAClD,sBAAsB,OAAO,mDAAK,EAAE;AACpC,2BAA2B,OAAO,mDAAK,EAAE;AACzC,uBAAuB,OAAO,mDAAK,EAAE;AACrC,4BAA4B,OAAO,mDAAK,EAAE;AAC1C,4BAA4B,OAAO,mDAAK,EAAE;AAC1C,qBAAqB,OAAO,mDAAK,EAAE;AACnC,yBAAyB,OAAO,oDAAM,EAAE;AACxC,qBAAqB,OAAO,0DAAY,kCAAkC;AAC1E,mBAAmB,OAAO,0DAAY,gCAAgC;AACtE,mBAAmB,OAAO,0DAAY,gCAAgC;AACtE,0BAA0B,OAAO,0DAAY,gCAAgC;AAC7E,mBAAmB,OAAO,0DAAY,6CAA6C;AACnF,kBAAkB,OAAO,0DAAY,4CAA4C;AACjF;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,OAAO,sDAAQ;AACxB;AACA;AACA,8BAA8B,4DAAY;AAC1C,iBAAiB;AACjB;AACA;AACA,CAAC;;AAED;AACA;AACA,cAAc,uEAAuE;AACrF;AACA,WAAW,OAAO;AAClB;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb;AACA,WAAW,EAAE;AACb,0BAA0B;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,0DAAY;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,iCAAiC;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA,mBAAmB,6BAA6B;AAChD;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA,mBAAmB,8BAA8B;AACjD;AACA,SAAS,OAAO,uDAAS;AACzB,iCAAiC,UAAU,gEAAiB,+CAA+C;AAC3G;AACA;AACA,iBAAiB;AACjB;AACA;AACA,oDAAoD,WAAW;AAC/D;AACA,uBAAuB,OAAO,uDAAS,mBAAmB,eAAe,IAAI;AAC7E,uBAAuB,OAAO,uDAAS,yBAAyB,eAAe,IAAI;AACnF,4BAA4B,OAAO,uDAAS,8BAA8B,eAAe,IAAI;AAC7F,cAAc,OAAO,yDAAW,sBAAsB,GAAG,OAAO,mDAAK,EAAE;AACvE,mBAAmB,OAAO,mDAAK,EAAE;AACjC,yBAAyB,OAAO,mDAAK,EAAE;AACvC,iBAAiB,OAAO,mDAAK,EAAE;AAC/B,gBAAgB,OAAO,mDAAK,EAAE;AAC9B,oBAAoB,OAAO,mDAAK,EAAE;AAClC,yBAAyB,OAAO,mDAAK,EAAE;AACvC,oBAAoB,OAAO,mDAAK,EAAE;AAClC,0BAA0B,OAAO,mDAAK,8BAA8B;AACpE,qBAAqB,OAAO,mDAAK,yBAAyB;AAC1D,kBAAkB,OAAO,oDAAM,EAAE;AACjC,oBAAoB,OAAO,yDAAW,8BAA8B;AACpE,mBAAmB,OAAO,yDAAW,uCAAuC,GAAG,OAAO,mDAAK,EAAE;AAC7F,oBAAoB,OAAO,yDAAW,wCAAwC,GAAG,OAAO,mDAAK,EAAE;AAC/F,mBAAmB,OAAO,yDAAW,uCAAuC;AAC5E;AACA;AACA,CAAC;;AAED;AACA;AACA,cAAc,uEAAuE;AACrF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C,yBAAyB;AACpE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C,yBAAyB;AACpE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C,yBAAyB;AACpE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,iDAAiD,6BAA6B,EAAE;AAChF;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,YAAY,iEAAK,EAAE,uCAAuC;AAC1D,YAAY,mEAAO,sBAAsB,iEAAK,EAAE,oCAAoC;AACpF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS,OAAO,uDAAS;AACzB;AACA,iBAAiB;AACjB;AACA;AACA,qDAAqD;AACrD,SAAS,OAAO,oEAAgB,EAAE;AAClC,SAAS,OAAO,wDAAU,EAAE;AAC5B,SAAS,OAAO,uDAAS,EAAE;AAC3B,SAAS,OAAO,oDAAM;AACtB,MAAM;AACN;AACA,wBAAwB,OAAO,mDAAK,8BAA8B;AAClE,uBAAuB,OAAO,mDAAK,wBAAwB;AAC3D,0BAA0B,OAAO,mDAAK,gCAAgC;AACtE,oBAAoB,OAAO,mDAAK,gCAAgC;AAChE,0BAA0B,OAAO,mDAAK,gCAAgC;AACtE,uBAAuB,OAAO,0DAAY,oCAAoC;AAC9E;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,OAAO,sDAAQ;AACxB;AACA;AACA,iBAAiB;AACjB;AACA;AACA,CAAC;;AAED;AACA;AACA,cAAc,uEAAuE;AACrF;AACA,WAAW,EAAE;AACb,0BAA0B;AAC1B,WAAW,EAAE;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oEAAoE,MAAM;AAC1E,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,0DAAY;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,4CAAO;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA,qBAAqB,oBAAoB,EAAE;AAC3C;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA,qBAAqB,mBAAmB,EAAE;AAC1C;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA,qBAAqB,uBAAuB,EAAE;AAC9C;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA,qBAAqB,uBAAuB,EAAE;AAC9C;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA,qBAAqB,4BAA4B,EAAE;AACnD;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA,qBAAqB,uBAAuB,EAAE;AAC9C;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA,gBAAgB;AAChB;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,2BAA2B,EAAE;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA,mBAAmB,6BAA6B;AAChD;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA,uBAAuB,EAAE;AACzB,2BAA2B;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,gEAAS,2CAA2C,8CAA8C,EAAE;AACvI,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,SAAS,OAAO,uDAAS;AACzB;AACA;AACA,iCAAiC,UAAU,gEAAiB,oDAAoD;AAChH,iBAAiB;AACjB;AACA;AACA,wBAAwB,OAAO,6DAAe,6BAA6B,oBAAoB,IAAI;AACnG,iBAAiB,OAAO,mDAAK,EAAE;AAC/B,gBAAgB,OAAO,mDAAK,EAAE;AAC9B,oBAAoB,OAAO,mDAAK,EAAE;AAClC,oBAAoB,OAAO,mDAAK,EAAE;AAClC,yBAAyB,OAAO,mDAAK,EAAE;AACvC,oBAAoB,OAAO,mDAAK,EAAE;AAClC,kBAAkB,OAAO,oDAAM,EAAE;AACjC,oBAAoB,OAAO,yDAAW,oCAAoC;AAC1E;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,OAAO,sDAAQ;AACxB;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,CAAC;;AAED;AACA;AACA,cAAc,uEAAuE;AACrF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,4CAAO;AACnC,8DAA8D,gEAAS;AACvE;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,GAAG;AAClB,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,GAAG;AAClB,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA,uBAAuB,EAAE;AACzB;AACA;AACA,+BAA+B,EAAE;AACjC;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB,+BAA+B,EAAE;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB,iBAAiB;AACjB;AACA;AACA,wDAAwD,kBAAkB;AAC1E;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA,uBAAuB,EAAE;AACzB;AACA;AACA;AACA;AACA;AACA,uBAAuB,EAAE;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,EAAE;AACzB;AACA,uBAAuB,EAAE;AACzB;AACA;AACA,2BAA2B,EAAE;AAC7B;AACA,2BAA2B,EAAE;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2DAA2D,0DAAY;AACvE;AACA;AACA,SAAS,OAAO,uDAAS;AACzB;AACA,iBAAiB;AACjB;AACA;AACA,4DAA4D;AAC5D,SAAS,OAAO,wDAAU,EAAE;AAC5B,SAAS,OAAO,uDAAS;AACzB,MAAM;AACN;AACA,oBAAoB,OAAO,mDAAK,uBAAuB;AACvD,0BAA0B,OAAO,mDAAK,6BAA6B;AACnE,0BAA0B,OAAO,mDAAK,6BAA6B;AACnE,qBAAqB,OAAO,mDAAK,wBAAwB;AACzD,iBAAiB,OAAO,mDAAK,oBAAoB;AACjD,eAAe,OAAO,mDAAK,kBAAkB;AAC7C,kBAAkB,OAAO,mDAAK,qBAAqB;AACnD,gBAAgB,OAAO,mDAAK,mBAAmB;AAC/C;AACA,IAAI,wDAAU;AACd;AACA,QAAQ,wDAAU;AAClB;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,OAAO,sDAAQ;AACxB;AACA;AACA,iBAAiB;AACjB;AACA;AACA,CAAC;;AAED;AACA;AACA,cAAc,uEAAuE;AACrF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,gCAAgC;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,gCAAgC;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,gCAAgC;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,gCAAgC;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,gCAAgC;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,gCAAgC;AACzC;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,gCAAgC;AACzC;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA,+CAA+C,mFAAmF,EAAE;AACpI;AACA;AACA;AACA,SAAS,OAAO,uDAAS;AACzB;AACA;AACA,iBAAiB;AACjB;AACA;AACA,4DAA4D;AAC5D,SAAS,OAAO,wDAAU;AAC1B,MAAM;AACN;AACA,oBAAoB,OAAO,mDAAK,+BAA+B;AAC/D,mBAAmB,OAAO,0DAAY,oBAAoB;AAC1D;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,OAAO,sDAAQ;AACxB;AACA;AACA,iBAAiB;AACjB;AACA;AACA,CAAC;;AAED;AACA;AACA,cAAc,uEAAuE;AACrF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,uDAAS;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,0DAAY;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,0DAAY;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA,2BAA2B,wEAAY,iBAAiB,UAAU,oBAAoB,EAAE;AACxF,4BAA4B,wEAAY,WAAW,UAAU,mBAAmB,EAAE;AAClF;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA,mCAAmC;AACnC,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,EAAE;AACzB,8BAA8B;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB,0BAA0B;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,uBAAuB,EAAE;AACzB,8BAA8B;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB,2BAA2B;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA,2DAA2D;AAC3D;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB,0BAA0B;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC;AACjC;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,uBAAuB,EAAE;AACzB,8BAA8B;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB,2BAA2B;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA,2DAA2D;AAC3D;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB,0BAA0B;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC;AACjC;AACA,SAAS;AACT;AACA;AACA,SAAS,OAAO,uDAAS;AACzB;AACA;AACA,iBAAiB;AACjB;AACA;AACA,4DAA4D;AAC5D,SAAS,OAAO,wDAAU,EAAE;AAC5B,SAAS,2CAA2C,OAAO,sDAAQ,EAAE;AACrE,MAAM;AACN;AACA,qBAAqB,OAAO,mDAAK,wBAAwB;AACzD,qBAAqB,OAAO,mDAAK,wBAAwB;AACzD,2BAA2B,OAAO,mDAAK,8BAA8B;AACrE,kBAAkB,OAAO,mDAAK,+BAA+B;AAC7D,yBAAyB,OAAO,oDAAM,EAAE;AACxC,yBAAyB,OAAO,oDAAM,EAAE;AACxC,2BAA2B,OAAO,0DAAY,kDAAkD;AAChG,mBAAmB,OAAO,0DAAY,oBAAoB;AAC1D,wBAAwB,OAAO,0DAAY,yBAAyB;AACpE,wBAAwB,OAAO,0DAAY,yBAAyB;AACpE,wBAAwB,OAAO,0DAAY,qCAAqC;AAChF,gCAAgC,OAAO,0DAAY,8CAA8C;AACjG;AACA;AACA,CAAC;AACD,WAAW,EAAE;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,uDAAS;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,EAAE;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,EAAE;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,OAAO,uDAAS;AACzB;AACA;AACA,iBAAiB;AACjB;AACA;AACA,sDAAsD;AACtD,SAAS,OAAO,wDAAU,EAAE;AAC5B,SAAS,OAAO,+DAAiB,EAAE;AACnC,SAAS,wCAAwC,OAAO,oDAAM,8BAA8B,GAAG;AAC/F,SAAS,2CAA2C,OAAO,sDAAQ,EAAE;AACrE,MAAM;AACN;AACA,uBAAuB,OAAO,yDAAW,wCAAwC;AACjF,wBAAwB,OAAO,yDAAW,yCAAyC;AACnF,mBAAmB,OAAO,mDAAK,sBAAsB;AACrD,cAAc,OAAO,yDAAW,sBAAsB,GAAG,OAAO,mDAAK,EAAE;AACvE,gBAAgB,OAAO,yDAAW,wBAAwB;AAC1D;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,OAAO,sDAAQ;AACxB;AACA;AACA,8BAA8B,4DAAY;AAC1C;AACA,iBAAiB;AACjB;AACA;AACA,CAAC;;AAED;AACA;AACA,cAAc,uEAAuE;AACrF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,gBAAgB;AAChB;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA,oDAAoD,kBAAkB,EAAE,0BAA0B,qBAAqB,EAAE;AACzH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,wDAAwD,8BAA8B,EAAE;AACxF;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,uDAAS;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,uDAAS;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,EAAE;AACjC;AACA,+BAA+B,EAAE;AACjC;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,EAAE;AACjC;AACA,+BAA+B,EAAE;AACjC;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,EAAE;AACjC;AACA,+BAA+B,EAAE;AACjC;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,EAAE;AACjC;AACA,+BAA+B,EAAE;AACjC,2CAA2C,6CAA6C,EAAE;AAC1F,+BAA+B,EAAE;AACjC;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,EAAE;AACjC;AACA,+BAA+B,EAAE;AACjC;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,EAAE;AACjC;AACA,+BAA+B,EAAE;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,EAAE;AACjC;AACA,+BAA+B,EAAE;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,EAAE;AACjC;AACA,+BAA+B,EAAE;AACjC;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,EAAE;AACjC;AACA,+BAA+B,EAAE;AACjC;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,EAAE;AACjC;AACA,+BAA+B,EAAE;AACjC;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,uDAAS;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,uDAAS;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,EAAE;AACjC;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,+BAA+B,EAAE;AACjC;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,+BAA+B,EAAE;AACjC;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,+BAA+B,EAAE;AACjC;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,+BAA+B,EAAE;AACjC;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,+BAA+B,EAAE;AACjC;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA,cAAc,uEAAuE;AACrF;AACA,WAAW,EAAE;AACb;AACA;AACA;;AAEA;AACA;AACA,cAAc,uEAAuE;AACrF;;AAEA;AACA;AACA,cAAc,uEAAuE;AACrF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,uDAAS;AACb;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA,cAAc,uEAAuE;AACrF;;AAEA;AACA;AACA,cAAc,uEAAuE;AACrF;;AAEA;AACA;AACA,cAAc,uEAAuE;AACrF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd,eAAe,EAAE;AACjB,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd,eAAe,EAAE;AACjB,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA,mCAAmC,mBAAmB;AACtD,oBAAoB,EAAE;AACtB,2BAA2B,EAAE;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA,iCAAiC,cAAc;AAC/C;AACA,uBAAuB,EAAE;AACzB;AACA;AACA;AACA;AACA,uBAAuB,EAAE;AACzB,wDAAwD,6DAAe;AACvE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA,iCAAiC,cAAc;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA,iCAAiC,cAAc;AAC/C,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA,iCAAiC,cAAc;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA,iCAAiC,cAAc;AAC/C,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,EAAE;AAC7B,0CAA0C,EAAE;AAC5C;AACA;AACA;AACA;AACA,+EAA+E;AAC/E;AACA;AACA;AACA,2EAA2E;AAC3E;AACA;AACA;AACA;AACA;AACA,2BAA2B,EAAE;AAC7B,0CAA0C,EAAE;AAC5C,2EAA2E;AAC3E;AACA,uEAAuE;AACvE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA,iCAAiC,cAAc;AAC/C;AACA;AACA,uBAAuB,EAAE;AACzB;AACA;AACA,uBAAuB,EAAE;AACzB,kCAAkC,EAAE;AACpC;AACA,2BAA2B,EAAE;AAC7B;AACA;AACA;AACA;AACA,uDAAuD;AACvD;AACA,+BAA+B,EAAE;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,OAAO,wDAAU;AAC1B;AACA,iBAAiB;AACjB;AACA;AACA,iDAAiD;AACjD,SAAS,OAAO,sEAAY,EAAE;AAC9B,SAAS,gCAAgC,OAAO,oDAAM,SAAS,wDAAQ,IAAI;AAC3E,MAAM;AACN,wDAAwD,wEAAkB,EAAE,6CAA6C,2BAA2B,8DAAQ,CAAC,sEAAY,GAAG,8DAAQ,CAAC,wDAAQ,GAAG,EAAE,6CAA6C;AAC/O;AACA,CAAC;;AAED;AACA;AACA,cAAc,uEAAuE;AACrF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,OAAO,uDAAS;AACzB;AACA;AACA,iBAAiB;AACjB;AACA;AACA,mDAAmD;AACnD,SAAS,OAAO,wDAAU,EAAE;AAC5B,SAAS;AACT,MAAM;AACN;AACA,sBAAsB,OAAO,uDAAS,wBAAwB,OAAO,yDAAW,gBAAgB,IAAI;AACpG,4BAA4B,OAAO,uDAAS,8BAA8B,OAAO,yDAAW,gBAAgB,IAAI;AAChH,oBAAoB,OAAO,uDAAS,sBAAsB,OAAO,yDAAW,gBAAgB,IAAI;AAChG,oBAAoB,OAAO,yDAAW,6BAA6B;AACnE,sBAAsB,OAAO,yDAAW,+BAA+B;AACvE,cAAc,OAAO,yDAAW,sBAAsB,GAAG,OAAO,mDAAK,EAAE;AACvE,gBAAgB,OAAO,mDAAK,sBAAsB;AAClD,kBAAkB,OAAO,mDAAK,uBAAuB;AACrD,qBAAqB,OAAO,mDAAK,oBAAoB;AACrD,oBAAoB,OAAO,mDAAK,mBAAmB;AACnD,uBAAuB,OAAO,yDAAW,uCAAuC;AAChF,wBAAwB,OAAO,yDAAW,0BAA0B;AACpE;AACA;AACA,CAAC;;AAED;AACA;AACA,cAAc,uEAAuE;AACrF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,OAAO,sDAAQ;AACxB;AACA;AACA,8BAA8B,4DAAY;AAC1C,iBAAiB;AACjB;AACA,IAAI,wDAAU;AACd;AACA,QAAQ,wDAAU;AAClB,QAAQ,wDAAU;AAClB,QAAQ,wDAAU;AAClB;AACA;AACA,CAAC;;AAED;AACA;AACA,cAAc,uEAAuE;AACrF;AACA,WAAW,EAAE;AACb;AACA,WAAW,OAAO;AAClB;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,SAAS,OAAO,uDAAS;AACzB;AACA,ySAAyS,0BAA0B,yEAAyE,MAAM;AAClZ,iBAAiB;AACjB;AACA;AACA,qDAAqD;AACrD,SAAS,OAAO,wDAAU;AAC1B,MAAM;AACN;AACA,iBAAiB,OAAO,uDAAS,mBAAmB,gBAAgB,IAAI;AACxE,2BAA2B,OAAO,uDAAS,6BAA6B,OAAO,yDAAW,gBAAgB,IAAI;AAC9G,yBAAyB,OAAO,uDAAS,2BAA2B,OAAO,yDAAW,gBAAgB,IAAI;AAC1G,4BAA4B,OAAO,uDAAS,8BAA8B,OAAO,yDAAW,gBAAgB,IAAI;AAChH,wBAAwB,OAAO,uDAAS,0BAA0B,OAAO,yDAAW,gBAAgB,IAAI;AACxG,qBAAqB,OAAO,yDAAW,8BAA8B;AACrE,gBAAgB,OAAO,yDAAW,wBAAwB;AAC1D,oBAAoB,OAAO,yDAAW,+BAA+B;AACrE,2BAA2B,OAAO,yDAAW,wCAAwC;AACrF,cAAc,OAAO,yDAAW,sBAAsB,GAAG,OAAO,mDAAK,EAAE;AACvE,sBAAsB,OAAO,yDAAW,wCAAwC,GAAG,OAAO,mDAAK,EAAE;AACjG,iBAAiB,OAAO,yDAAW,0BAA0B,GAAG,OAAO,mDAAK,EAAE;AAC9E,mBAAmB,OAAO,yDAAW,+BAA+B,GAAG,OAAO,mDAAK,EAAE;AACrF,oBAAoB,OAAO,mDAAK,EAAE;AAClC,gBAAgB,OAAO,mDAAK,EAAE;AAC9B,eAAe,OAAO,mDAAK,EAAE;AAC7B,gBAAgB,OAAO,mDAAK,EAAE;AAC9B;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,OAAO,sDAAQ;AACxB;AACA;AACA,8BAA8B,4DAAY;AAC1C,iBAAiB;AACjB;AACA;AACA,CAAC;;AAED;AACA;AACA,cAAc,uEAAuE;AACrF;AACA,WAAW,EAAE;AACb;AACA,WAAW,OAAO;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,0BAA0B;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,0BAA0B;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,0BAA0B;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA,uBAAuB,EAAE;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA,kCAAkC;AAClC;AACA;AACA;AACA;AACA,kCAAkC;AAClC;AACA;AACA;AACA;AACA,kCAAkC;AAClC;AACA;AACA;AACA;AACA,kCAAkC;AAClC;AACA;AACA;AACA;AACA,kCAAkC;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,OAAO,uDAAS;AACzB;AACA,2MAA2M,OAAO,6DAA6D,MAAM;AACrR,iBAAiB;AACjB;AACA;AACA,cAAc,OAAO,yDAAW,sBAAsB,GAAG,OAAO,mDAAK,EAAE;AACvE,gBAAgB,OAAO,mDAAK,EAAE;AAC9B,iBAAiB,OAAO,mDAAK,EAAE;AAC/B,gBAAgB,OAAO,mDAAK,EAAE;AAC9B,gBAAgB,OAAO,yDAAW,wBAAwB;AAC1D,oBAAoB,OAAO,yDAAW,8BAA8B;AACpE,iBAAiB,OAAO,yDAAW,8BAA8B;AACjE;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,OAAO,sDAAQ;AACxB;AACA;AACA,8BAA8B,4DAAY;AAC1C,iBAAiB;AACjB;AACA;AACA,CAAC;;AAED;AACA;AACA,cAAc,uEAAuE;AACrF;AACA;AACA;AACA,UAAU;AACV;AACA;;AAEA;AACA;AACA,cAAc,uEAAuE;AACrF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA,SAAS,OAAO,uDAAS;AACzB;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,iEAAiE;AACjE,SAAS,gCAAgC,OAAO,oDAAM,0CAA0C,GAAG;AACnG,SAAS,OAAO,wDAAU,EAAE;AAC5B,SAAS,OAAO,+DAAiB;AACjC,MAAM;AACN;AACA,oBAAoB,OAAO,yDAAW,8CAA8C;AACpF,iBAAiB,OAAO,mDAAK,EAAE,GAAG,OAAO,yDAAW,8BAA8B;AAClF,sBAAsB,OAAO,mDAAK,EAAE,GAAG,OAAO,yDAAW,mCAAmC;AAC5F,gBAAgB,OAAO,mDAAK,EAAE,GAAG,OAAO,yDAAW,wBAAwB;AAC3E;AACA;AACA,CAAC;;AAED;AACA;AACA,cAAc,uEAAuE;AACrF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,OAAO,uDAAS;AACzB;AACA;AACA,iBAAiB;AACjB;AACA;AACA,oBAAoB,OAAO,yDAAW,sDAAsD;AAC5F;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,OAAO,uDAAS;AACzB;AACA;AACA,iBAAiB;AACjB;AACA;AACA,oBAAoB,OAAO,yDAAW,4DAA4D;AAClG;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,OAAO,uDAAS;AACzB;AACA;AACA,iBAAiB;AACjB;AACA;AACA,CAAC;;AAED;AACA;AACA,cAAc,uEAAuE;AACrF;AACA,WAAW,OAAO;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,0DAAY;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA,6CAA6C,EAAE;AAC/C,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,gCAAgC;AACjE;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA,qCAAqC,kCAAkC;AACvE;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA,qCAAqC,kCAAkC;AACvE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA,SAAS,OAAO,uDAAS;AACzB;AACA,0rBAA0rB,8CAA8C;AACxuB,iBAAiB;AACjB;AACA;AACA,mEAAmE;AACnE,SAAS,gCAAgC,OAAO,kDAAI,EAAE,GAAG,OAAO,oDAAM,0CAA0C,GAAG;AACnH,SAAS,OAAO,+DAAiB,EAAE;AACnC,SAAS,OAAO,wDAAU;AAC1B,MAAM;AACN;AACA,wBAAwB,OAAO,0DAAY,0CAA0C,gBAAgB,IAAI;AACzG,cAAc,OAAO,yDAAW,8BAA8B,GAAG,OAAO,mDAAK,EAAE;AAC/E,gBAAgB,OAAO,yDAAW,wBAAwB,GAAG,OAAO,mDAAK,EAAE;AAC3E,wBAAwB,OAAO,mDAAK,EAAE;AACtC,yBAAyB,OAAO,oDAAM,EAAE;AACxC,oBAAoB,OAAO,yDAAW,gDAAgD;AACtF,sBAAsB,OAAO,yDAAW,0DAA0D;AAClG,oBAAoB,OAAO,mDAAK,EAAE,GAAG,OAAO,yDAAW,kDAAkD;AACzG,oBAAoB,OAAO,0DAAY,wCAAwC,GAAG,OAAO,0DAAY,wCAAwC,GAAG,OAAO,0DAAY,2CAA2C,GAAG,OAAO,0DAAY,gCAAgC;AACpQ,qBAAqB,OAAO,0DAAY,gDAAgD;AACxF,sBAAsB,OAAO,0DAAY,8CAA8C;AACvF;AACA;AACA,CAAC;;AAED;AACA;AACA,cAAc,uEAAuE;AACrF;AACA,WAAW,EAAE;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,6BAA6B;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,6BAA6B;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,0DAAY;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,0DAAY;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,0DAAY;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,yBAAyB;AACzB;AACA;AACA,mBAAmB,EAAE;AACrB,wBAAwB,wEAAY;AACpC,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,yBAAyB;AACzB;AACA;AACA,mBAAmB,EAAE;AACrB,wBAAwB,wEAAY;AACpC,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA;AACA,6BAA6B;AAC7B;AACA;AACA;AACA,oCAAoC,2BAA2B;AAC/D;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA;AACA,8BAA8B;AAC9B;AACA;AACA;AACA;AACA;AACA,mCAAmC,2BAA2B;AAC9D,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,SAAS,OAAO,uDAAS;AACzB;AACA;AACA,iCAAiC,kFAAkF;AACnH,iBAAiB;AACjB;AACA;AACA,6DAA6D;AAC7D,SAAS,OAAO,+DAAiB,EAAE;AACnC,SAAS,OAAO,oEAAgB;AAChC,MAAM;AACN;AACA,6BAA6B,OAAO,mDAAK,EAAE;AAC3C,cAAc,OAAO,yDAAW,sBAAsB,GAAG,OAAO,mDAAK,EAAE;AACvE,oBAAoB,OAAO,yDAAW,wCAAwC;AAC9E,qBAAqB,OAAO,mDAAK,EAAE;AACnC,2BAA2B,OAAO,oDAAM,EAAE;AAC1C,uBAAuB,OAAO,oDAAM,EAAE;AACtC,sBAAsB,OAAO,oDAAM,EAAE;AACrC,gBAAgB,OAAO,0DAAY,SAAS,gEAAU,cAAc,uCAAuC,EAAE;AAC7G,qBAAqB,OAAO,gEAAU,cAAc,uCAAuC,EAAE,kBAAkB,IAAI;AACnH,kBAAkB,OAAO,0DAAY,SAAS,gEAAU,cAAc,yCAAyC,EAAE;AACjH,qBAAqB,OAAO,gEAAU,cAAc,yCAAyC,EAAE,kBAAkB,IAAI;AACrH;AACA;AACA,CAAC;;AAED;AACA;AACA,cAAc,uEAAuE;AACrF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,OAAO,sDAAQ;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,4DAAY;AACpC;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,CAAC;;AAED;AACA;AACA,cAAc,uEAAuE;AACrF;;AAEA;AACA;AACA,cAAc,uEAAuE;AACrF;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,OAAO,uDAAS;AACzB;AACA,iBAAiB;AACjB;AACA;AACA,CAAC;;AAED;AACA;AACA,cAAc,uEAAuE;AACrF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,0DAAY;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,0DAAY;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,0DAAY;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,0DAAY;AACzC;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,mBAAmB,6BAA6B;AAChD;AACA,0DAA0D;AAC1D;AACA;AACA;AACA;AACA;AACA,mBAAmB,6BAA6B;AAChD;AACA,0DAA0D;AAC1D;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA,6BAA6B;AAC7B,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA,6BAA6B;AAC7B,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,SAAS,OAAO,uDAAS;AACzB;AACA;AACA,iBAAiB;AACjB;AACA;AACA,qDAAqD;AACrD,SAAS,OAAO,wDAAU;AAC1B,MAAM;AACN;AACA,2BAA2B,OAAO,uDAAS,4BAA4B,eAAe,IAAI;AAC1F,iCAAiC,OAAO,0DAAY,qCAAqC,gBAAgB,IAAI;AAC7G,sBAAsB,OAAO,0DAAY,4BAA4B,gBAAgB,IAAI;AACzF,oBAAoB,OAAO,oDAAM,EAAE;AACnC,qBAAqB,OAAO,oDAAM,EAAE;AACpC,oBAAoB,OAAO,oDAAM,EAAE;AACnC,qBAAqB,OAAO,oDAAM,EAAE;AACpC,6BAA6B,OAAO,mDAAK,EAAE;AAC3C,wBAAwB,OAAO,yDAAW,4BAA4B;AACtE;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,OAAO,sDAAQ;AACxB;AACA;AACA,8BAA8B,4DAAY;AAC1C,iBAAiB;AACjB;AACA;AACA,CAAC;;AAED;AACA;AACA,cAAc,uEAAuE;AACrF;AACA,WAAW,OAAO;AAClB;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,uCAAuC;AAC7C,MAAM,yCAAyC;AAC/C,MAAM,6CAA6C;AACnD;AACA;AACA;AACA,IAAI,uDAAS;AACb;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC,4CAAO;AAChD,uCAAuC,4CAAO;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,0DAAY;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,0DAAY;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA,mBAAmB,sDAAQ;AAC3B,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA,uDAAuD,qCAAqC,EAAE;AAC9F;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB;AACnB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB;AACnB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA,4BAA4B,+BAA+B;AAC3D,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB;AACnB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB;AACnB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA,8BAA8B,+BAA+B;AAC7D,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,EAAE;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,gEAAS,uDAAuD,uCAAuC,EAAE;AACjJ;AACA,aAAa;AACb;AACA,sCAAsC,gEAAS,kDAAkD,sBAAsB,EAAE;AACzH,0CAA0C,gEAAS,kDAAkD,sBAAsB,EAAE;AAC7H;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,OAAO,uDAAS;AACzB;AACA,4KAA4K,4eAA4e,uBAAuB,wEAAwE,aAAa,wDAAwD,cAAc;AAC10B,iBAAiB;AACjB;AACA;AACA,0DAA0D;AAC1D,SAAS,OAAO,+DAAiB,EAAE;AACnC,SAAS,OAAO,uDAAS,EAAE;AAC3B,SAAS,gCAAgC,OAAO,sDAAQ,EAAE,GAAG,OAAO,oDAAM,gCAAgC;AAC1G,MAAM;AACN;AACA,uBAAuB,OAAO,0DAAY,+BAA+B;AACzE,2BAA2B,OAAO,6DAAe,+BAA+B;AAChF,cAAc,OAAO,yDAAW,sBAAsB,GAAG,OAAO,mDAAK,EAAE;AACvE,kBAAkB,OAAO,yDAAW,2BAA2B;AAC/D,+BAA+B,OAAO,mDAAK,EAAE;AAC7C,0BAA0B,OAAO,mDAAK,EAAE;AACxC,kBAAkB,OAAO,mDAAK,EAAE;AAChC,oBAAoB,OAAO,mDAAK,EAAE;AAClC,qBAAqB,OAAO,mDAAK,EAAE;AACnC,oBAAoB,OAAO,oDAAM,EAAE;AACnC,sBAAsB,OAAO,oDAAM,EAAE;AACrC;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,OAAO,sDAAQ;AACxB;AACA;AACA,+CAA+C,4DAAY;AAC3D,iBAAiB;AACjB;AACA;AACA,CAAC;;AAED;AACA;AACA,cAAc,uEAAuE;AACrF;AACA,WAAW,OAAO;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,cAAc,uEAAuE;AACrF;;AAEA;AACA;AACA,cAAc,uEAAuE;AACrF;AACA,WAAW,OAAO;AAClB;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb;AACA,WAAW,EAAE;AACb;AACA;AACA,WAAW,GAAG;AACd,WAAW,GAAG;AACd,WAAW,GAAG;AACd,YAAY;AACZ;AACA;AACA,2BAA2B,WAAW;AACtC,0BAA0B,UAAU;AACpC,eAAe,EAAE;AACjB;AACA,eAAe,EAAE;AACjB;AACA,eAAe,EAAE;AACjB;AACA,qBAAqB,8BAA8B;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,WAAW,EAAE;AACb,WAAW,EAAE;AACb,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,WAAW,EAAE;AACb,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB;AACA,eAAe,EAAE;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,WAAW,EAAE;AACb,YAAY;AACZ;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB;AACA;AACA;AACA;AACA;AACA,4BAA4B,sDAAQ,uCAAuC,kBAAkB;AAC7F;AACA,uBAAuB,EAAE;AACzB,wFAAwF,6DAA6D,EAAE;AACvJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,EAAE;AACjC,2DAA2D,oBAAoB,EAAE;AACjF,+BAA+B,EAAE;AACjC;AACA,+BAA+B,EAAE;AACjC;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,EAAE;AACjC,8DAA8D,oBAAoB,EAAE;AACpF;AACA,+CAA+C,sDAAQ,gDAAgD,qBAAqB;AAC5H;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,QAAQ,gBAAgB;AAC3D;AACA;AACA;AACA;AACA,iCAAiC,0BAA0B;AAC3D;AACA;AACA;AACA,+BAA+B,EAAE;AACjC;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,EAAE;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,QAAQ,gBAAgB;AAC3C;AACA;AACA;AACA;AACA,iBAAiB,0BAA0B;AAC3C;AACA;AACA;AACA,WAAW,OAAO;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC,gCAAgC;AACtE;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA,0BAA0B,sDAAQ,kEAAkE,UAAU;AAC9G;AACA;AACA;AACA;AACA,uBAAuB,QAAQ,gBAAgB;AAC/C;AACA;AACA;AACA;AACA,qBAAqB,0BAA0B;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA;AACA;AACA,mCAAmC,mBAAmB;AACtD,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC,sDAAQ,8BAA8B,UAAU;AACtF;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,QAAQ,gBAAgB;AAC3D;AACA;AACA;AACA;AACA,iCAAiC,0BAA0B;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC;AACvC;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA;AACA;AACA,uCAAuC;AACvC;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA;AACA;AACA,mCAAmC,mBAAmB;AACtD,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA;AACA,0BAA0B,sDAAQ,4CAA4C,UAAU;AACxF;AACA;AACA;AACA;AACA,uBAAuB,QAAQ,gBAAgB;AAC/C;AACA;AACA;AACA;AACA,qBAAqB,0BAA0B;AAC/C;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA,yBAAyB,EAAE;AAC3B,uBAAuB,EAAE;AACzB,gDAAgD,EAAE;AAClD,uBAAuB,EAAE;AACzB;AACA,2BAA2B,EAAE;AAC7B;AACA;AACA;AACA,iBAAiB;AACjB,2BAA2B,EAAE;AAC7B,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,sDAAQ,oCAAoC,iBAAiB;AAChG;AACA;AACA;AACA;AACA,2BAA2B,QAAQ,gBAAgB;AACnD;AACA;AACA;AACA;AACA,yBAAyB,0BAA0B;AACnD;AACA;AACA;AACA;AACA,mCAAmC,sDAAQ,oCAAoC,iBAAiB;AAChG;AACA,oCAAoC;AACpC;AACA;AACA,2BAA2B,QAAQ,gBAAgB;AACnD;AACA;AACA;AACA;AACA,yBAAyB,0BAA0B;AACnD;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA,cAAc,uEAAuE;AACrF;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,0DAAY;AAC/C;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA,gBAAgB;AAChB;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,SAAS,OAAO,uDAAS;AACzB;AACA,iBAAiB;AACjB;AACA;AACA,iBAAiB,OAAO,mDAAK,8BAA8B;AAC3D,gBAAgB,OAAO,mDAAK,EAAE;AAC9B,2BAA2B,OAAO,oDAAM,EAAE;AAC1C,sBAAsB,OAAO,yDAAW,uCAAuC;AAC/E,sBAAsB,OAAO,yDAAW,gDAAgD;AACxF,mBAAmB,OAAO,0DAAY,oBAAoB;AAC1D;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,oCAAoC,0DAAY;AAChD;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA,gBAAgB;AAChB;AACA;AACA,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA,SAAS,OAAO,uDAAS;AACzB;AACA,iBAAiB;AACjB;AACA;AACA,4DAA4D;AAC5D,SAAS,OAAO,wDAAU;AAC1B,MAAM;AACN;AACA,iBAAiB,OAAO,mDAAK,+BAA+B;AAC5D,gBAAgB,OAAO,mDAAK,EAAE;AAC9B,iBAAiB,OAAO,mDAAK,EAAE;AAC/B,4BAA4B,OAAO,oDAAM,EAAE;AAC3C,oBAAoB,OAAO,yDAAW,4BAA4B;AAClE,sBAAsB,OAAO,yDAAW,wCAAwC;AAChF,sBAAsB,OAAO,yDAAW,iDAAiD;AACzF,mBAAmB,OAAO,0DAAY,oBAAoB;AAC1D;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,OAAO,uDAAS;AACzB;AACA,iBAAiB;AACjB;AACA;AACA,qEAAqE;AACrE,SAAS,OAAO,yDAAW;AAC3B,MAAM;AACN;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,OAAO,uDAAS;AACzB;AACA,iBAAiB;AACjB;AACA;AACA,wEAAwE;AACxE,SAAS,OAAO,yDAAW;AAC3B,MAAM;AACN;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,4CAAO;AACnC;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,QAAQ,sDAAS,2CAA2C,+DAAQ,cAAc,QAAQ,qDAAQ,MAAM,EAAE,GAAG,gEAAS;AACtH;AACA,SAAS;AACT;AACA,YAAY,sDAAS,8CAA8C,0DAAG;AACtE;AACA;AACA;AACA;AACA,aAAa,GAAG,+DAAQ,cAAc,QAAQ,qDAAQ,MAAM,EAAE,GAAG,gEAAS;AAC1E;AACA,gDAAgD,gCAAgC,EAAE;AAClF;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,SAAS,OAAO,uDAAS;AACzB;AACA,iBAAiB;AACjB;AACA;AACA,kEAAkE;AAClE,SAAS,OAAO,wDAAU,EAAE;AAC5B,SAAS,OAAO,oDAAM;AACtB,MAAM;AACN;AACA,uBAAuB,OAAO,mDAAK,EAAE;AACrC,sBAAsB,OAAO,mDAAK,EAAE;AACpC,uBAAuB,OAAO,0DAAY,wBAAwB;AAClE,qBAAqB,OAAO,0DAAY,kCAAkC;AAC1E;AACA;AACA,CAAC;;AAED;AACA;AACA,cAAc,uEAAuE;AACrF;AACA,WAAW,OAAO;AAClB;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,0DAAY;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,4CAAO;AACvC;AACA;AACA;AACA,oCAAoC,4CAAO;AAC3C;AACA;AACA;AACA,qCAAqC,4CAAO;AAC5C;AACA;AACA;AACA,+CAA+C;AAC/C;AACA;AACA;AACA,8CAA8C;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,uBAAuB;AACvB;AACA;AACA;AACA,uBAAuB;AACvB,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA,kDAAkD,EAAE;AACpD;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,sFAAsF;AACtG,gBAAgB,6BAA6B;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,sFAAsF;AACtG,gBAAgB,6BAA6B;AAC7C;AACA;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,sFAAsF;AACtG,gBAAgB,6BAA6B;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,sFAAsF;AACtG,gBAAgB,6BAA6B;AAC7C;AACA;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA,uBAAuB,EAAE;AACzB,mDAAmD,uCAAuC,EAAE;AAC5F,uBAAuB,EAAE;AACzB,gEAAgE,uCAAuC,EAAE;AACzG;AACA;AACA;AACA,oDAAoD,sDAAQ,yCAAyC,oBAAoB,EAAE;AAC3H;AACA;AACA,uBAAuB,EAAE;AACzB;AACA,uBAAuB,EAAE;AACzB;AACA,0DAA0D,qDAAqD,EAAE;AACjH;AACA;AACA;AACA,gFAAgF,qDAAqD,EAAE;AACvI;AACA;AACA;AACA;AACA;AACA,qEAAqE,iCAAiC,EAAE;AACxG,iDAAiD,kCAAkC,EAAE;AACrF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA;AACA,8CAA8C,8BAA8B;AAC5E,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA,wCAAwC,kCAAkC,EAAE;AAC5E;AACA;AACA,iCAAiC,sDAAQ;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yDAAyD,kCAAkC,EAAE;AAC7F;AACA;AACA,qCAAqC,sDAAQ;AAC7C;AACA;AACA;AACA,yEAAyE,iCAAiC,EAAE;AAC5G;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,6CAA6C,EAAE;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,2CAA2C,mBAAmB,EAAE;AAChE,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB,kEAAkE,iCAAiC,EAAE;AACrG,mDAAmD,QAAQ;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,wEAAwE,mDAAmD,EAAE;AAC7H;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,2CAA2C,mBAAmB,EAAE;AAChE;AACA;AACA;AACA,oCAAoC,kCAAkC,EAAE;AACxE,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA,iDAAiD,kCAAkC,EAAE;AACrF,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA,mEAAmE,+BAA+B;AAClG,uEAAuE,uCAAuC;AAC9G,qEAAqE,mCAAmC;AACxG,oEAAoE,iCAAiC;AACrG,wEAAwE,iEAAiE;AACzI;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,oCAAoC,EAAE;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sEAAsE,EAAE;AACxE,kDAAkD,EAAE;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gDAAgD,EAAE;AAClD;AACA;AACA,kDAAkD,EAAE;AACpD;AACA;AACA,+CAA+C,EAAE;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,OAAO,mDAAK,EAAE;AACnC,kBAAkB,OAAO,mDAAK,EAAE;AAChC,yBAAyB,OAAO,mDAAK,EAAE;AACvC,uBAAuB,OAAO,mDAAK,EAAE;AACrC,qBAAqB,OAAO,mDAAK,EAAE;AACnC,iBAAiB,OAAO,mDAAK,EAAE;AAC/B,oBAAoB,OAAO,mDAAK,EAAE;AAClC,yBAAyB,OAAO,mDAAK,EAAE;AACvC,wBAAwB,OAAO,mDAAK,EAAE;AACtC,2BAA2B,OAAO,mDAAK,EAAE;AACzC,uBAAuB,OAAO,oDAAM,EAAE;AACtC;AACA;AACA,CAAC;;AAED;AACA;AACA,cAAc,uEAAuE;AACrF;AACA,WAAW,OAAO;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,uDAAS;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wDAAwD,oCAAoC,EAAE;AAC9F;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA,uCAAuC,mBAAmB;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA,uCAAuC,mBAAmB;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,OAAO,yDAAW,4BAA4B;AAClE,qBAAqB,OAAO,0DAAY,uBAAuB;AAC/D;AACA;AACA,CAAC;;AAED;AACA;AACA,cAAc,uEAAuE;AACrF;AACA,WAAW,EAAE;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,0DAAY;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C;AAC/C;AACA;AACA;AACA,8CAA8C;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA,uBAAuB,EAAE;AACzB;AACA,uBAAuB,EAAE;AACzB;AACA,2BAA2B,QAAQ;AACnC;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,mCAAmC;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA,sEAAsE,0BAA0B;AAChG;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB,wDAAwD,4CAA4C,EAAE;AACtG;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA,kDAAkD,YAAY;AAC9D,uBAAuB,EAAE;AACzB;AACA,uBAAuB,EAAE;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB,wDAAwD,4CAA4C,EAAE;AACtG;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA,kDAAkD,uBAAuB;AACzE,uBAAuB,EAAE;AACzB;AACA,uBAAuB,EAAE;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB,wDAAwD,4CAA4C,EAAE;AACtG;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA,uBAAuB,EAAE;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB,wDAAwD,4CAA4C,EAAE;AACtG;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA,uBAAuB,EAAE;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB,yDAAyD,4CAA4C,EAAE;AACvG;AACA;AACA;AACA;AACA;AACA,SAAS,OAAO,uDAAS;AACzB,iCAAiC,UAAU,gEAAiB,oDAAoD;AAChH;AACA,qQAAqQ,YAAY,yCAAyC,qCAAqC;AAC/V,iBAAiB;AACjB;AACA;AACA,yDAAyD;AACzD,SAAS,OAAO,wDAAU;AAC1B,MAAM;AACN;AACA,cAAc,OAAO,yDAAW,sBAAsB,GAAG,OAAO,mDAAK,EAAE;AACvE,gBAAgB,OAAO,mDAAK,EAAE;AAC9B,uBAAuB,OAAO,mDAAK,EAAE;AACrC,kBAAkB,OAAO,mDAAK,EAAE;AAChC,sBAAsB,OAAO,mDAAK,EAAE;AACpC,uBAAuB,OAAO,oDAAM,EAAE;AACtC,sBAAsB,OAAO,yDAAW,iCAAiC;AACzE,qBAAqB,OAAO,0DAAY,qCAAqC,kCAAkC,IAAI;AACnH,oBAAoB,OAAO,yDAAW,4BAA4B;AAClE,4BAA4B,OAAO,0DAAY,0CAA0C;AACzF,8BAA8B,OAAO,0DAAY,4CAA4C;AAC7F,+BAA+B,OAAO,0DAAY,6CAA6C;AAC/F,8BAA8B,OAAO,0DAAY,4CAA4C;AAC7F,yBAAyB,OAAO,0DAAY,uCAAuC;AACnF,wBAAwB,OAAO,0DAAY,sCAAsC;AACjF,0BAA0B,OAAO,0DAAY,wCAAwC;AACrF;AACA;AACA,CAAC;;AAED;AACA;AACA,cAAc,uEAAuE;AACrF;AACA,WAAW,EAAE;AACb;AACA;AACA,IAAI,uDAAS;AACb;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA,SAAS,OAAO,wDAAU;AAC1B;AACA;AACA,CAAC,CAAC,6EAAmB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,0DAAY;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C;AAC/C;AACA;AACA;AACA,8CAA8C;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,uBAAuB,EAAE;AACzB;AACA,uBAAuB,EAAE;AACzB;AACA,uBAAuB,EAAE;AACzB;AACA;AACA,8BAA8B,sDAAQ,oCAAoC,UAAU;AACpF;AACA;AACA;AACA;AACA,2BAA2B,QAAQ,gBAAgB;AACnD;AACA;AACA;AACA;AACA,yBAAyB,0BAA0B;AACnD;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,sCAAsC;AACtC;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA,qEAAqE,wBAAwB;AAC7F;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,OAAO,uDAAS;AACzB;AACA;AACA,qCAAqC,gEAAiB;AACtD;AACA;AACA,yBAAyB;AACzB;AACA,qCAAqC,+EAAqB;AAC1D;AACA;AACA;AACA;AACA,iSAAiS,wCAAwC,uBAAuB;AAChW,iBAAiB;AACjB;AACA;AACA,wDAAwD;AACxD,SAAS,OAAO,wDAAU;AAC1B,MAAM;AACN;AACA,cAAc,OAAO,yDAAW,sBAAsB,GAAG,OAAO,mDAAK,EAAE;AACvE,gBAAgB,OAAO,mDAAK,EAAE;AAC9B,sBAAsB,OAAO,mDAAK,EAAE;AACpC,kBAAkB,OAAO,mDAAK,EAAE;AAChC,sBAAsB,OAAO,mDAAK,EAAE;AACpC,uBAAuB,OAAO,oDAAM,EAAE;AACtC,sBAAsB,OAAO,yDAAW,iCAAiC;AACzE,oBAAoB,OAAO,yDAAW,4BAA4B;AAClE,8BAA8B,OAAO,0DAAY,4CAA4C;AAC7F,4BAA4B,OAAO,0DAAY,0CAA0C;AACzF,0BAA0B,OAAO,0DAAY,4BAA4B;AACzE;AACA;AACA,CAAC;;AAED;AACA;AACA,cAAc,uEAAuE;AACrF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,0DAAY;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA,oBAAoB;AACpB;AACA;AACA,uBAAuB,EAAE;AACzB;AACA,uBAAuB,EAAE;AACzB;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA,oBAAoB;AACpB;AACA;AACA,uBAAuB,EAAE;AACzB;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA,gBAAgB;AAChB;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,SAAS,OAAO,uDAAS;AACzB;AACA;AACA,iBAAiB;AACjB;AACA;AACA,sDAAsD;AACtD,SAAS,OAAO,wDAAU;AAC1B,MAAM;AACN;AACA,gBAAgB,OAAO,mDAAK,EAAE;AAC9B,qBAAqB,OAAO,mDAAK,EAAE;AACnC,oBAAoB,OAAO,mDAAK,EAAE;AAClC,yBAAyB,OAAO,mDAAK,EAAE;AACvC,2BAA2B,OAAO,mDAAK,EAAE;AACzC,wBAAwB,OAAO,mDAAK,EAAE;AACtC,2BAA2B,OAAO,mDAAK,EAAE;AACzC,yBAAyB,OAAO,mDAAK,EAAE,GAAG,OAAO,yDAAW,6CAA6C;AACzG,0BAA0B,OAAO,mDAAK,EAAE,GAAG,OAAO,yDAAW,8CAA8C;AAC3G,yBAAyB,OAAO,mDAAK,EAAE;AACvC,2BAA2B,OAAO,oDAAM,EAAE;AAC1C,yBAAyB,OAAO,yDAAW,iDAAiD;AAC5F,sBAAsB,OAAO,yDAAW,iDAAiD;AACzF,oBAAoB,OAAO,yDAAW,+CAA+C;AACrF,mBAAmB,OAAO,yDAAW,gDAAgD;AACrF,qBAAqB,OAAO,yDAAW,gDAAgD;AACvF,4BAA4B,OAAO,yDAAW,8CAA8C;AAC5F,qBAAqB,OAAO,yDAAW,gDAAgD;AACvF,sBAAsB,OAAO,yDAAW,uCAAuC;AAC/E,yBAAyB,OAAO,yDAAW,iDAAiD;AAC5F,6BAA6B,OAAO,yDAAW,+CAA+C;AAC9F,oBAAoB,OAAO,yDAAW,4BAA4B;AAClE,oBAAoB,OAAO,0DAAY,oBAAoB,GAAG,OAAO,0DAAY,4BAA4B;AAC7G;AACA;AACA,CAAC;;AAED;AACA;AACA,cAAc,uEAAuE;AACrF;AACA,WAAW,OAAO;AAClB;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA,kCAAkC,kBAAkB;AACpD;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB,yDAAyD,sCAAsC,EAAE;AACjG,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,OAAO;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,sBAAsB;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,YAAY;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,YAAY;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA,8CAA8C,wDAAwD,EAAE;AACxG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA,uBAAuB,EAAE;AACzB;AACA,2CAA2C,yDAAyD;AACpG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB,yDAAyD,yBAAyB,EAAE;AACpF,uBAAuB,kBAAkB;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB,yDAAyD,yBAAyB,EAAE;AACpF,sCAAsC,QAAQ;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,OAAO,wDAAU;AAC1B;AACA;AACA,CAAC;;AAED;AACA;AACA,cAAc,uEAAuE;AACrF;AACA,WAAW,EAAE;AACb;AACA;AACA,IAAI,uDAAS;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,0DAAY;AAChD;AACA;AACA;AACA,mCAAmC,0DAAY;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA;AACA,4BAA4B,sDAAQ,2BAA2B,cAAc;AAC7E;AACA;AACA;AACA;AACA,uBAAuB,QAAQ,gBAAgB;AAC/C;AACA;AACA;AACA;AACA,qBAAqB,0BAA0B;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC,EAAE;AAC3C;AACA;AACA,qCAAqC,EAAE;AACvC;AACA;AACA;AACA;AACA,uBAAuB,EAAE;AACzB;AACA,uBAAuB,EAAE;AACzB;AACA;AACA,2BAA2B,EAAE;AAC7B,yEAAyE,kDAAkD,EAAE;AAC7H;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB,gCAAgC,EAAE;AAClC,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,oCAAoC,EAAE;AACtC;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,GAAG;AAClB,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,GAAG;AAClB,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA,kDAAkD,EAAE;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB,iDAAiD,mBAAmB,EAAE;AACtE;AACA,iDAAiD,kBAAkB,EAAE;AACrE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB,oCAAoC,EAAE;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB,oCAAoC,EAAE;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA,sDAAsD,EAAE;AACxD;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,OAAO,uDAAS;AACzB;AACA;AACA;AACA,qCAAqC,gEAAiB;AACtD;AACA,yBAAyB;AACzB,yBAAyB;AACzB;AACA;AACA,0KAA0K,uBAAuB,oEAAoE,gBAAgB,YAAY,mHAAmH,ugBAAugB,2BAA2B;AACt7B,iBAAiB;AACjB;AACA;AACA,uDAAuD;AACvD,SAAS;AACT,MAAM;AACN;AACA,cAAc,OAAO,yDAAW,sBAAsB,GAAG,OAAO,mDAAK,EAAE;AACvE,0BAA0B,OAAO,mDAAK,EAAE;AACxC,2BAA2B,OAAO,oDAAM,EAAE;AAC1C,0BAA0B,OAAO,oDAAM,EAAE;AACzC,iBAAiB,OAAO,0DAAY,+BAA+B,4BAA4B,IAAI;AACnG,sBAAsB,OAAO,yDAAW,iCAAiC;AACzE,0BAA0B,OAAO,0DAAY,4CAA4C,GAAG,OAAO,0DAAY,6CAA6C,GAAG,OAAO,0DAAY,0CAA0C,GAAG,OAAO,0DAAY,4CAA4C;AAC9R,yBAAyB,OAAO,0DAAY,uCAAuC;AACnF,wBAAwB,OAAO,0DAAY,sCAAsC;AACjF;AACA;AACA,CAAC;;AAED;AACA;AACA,cAAc,uEAAuE;AACrF;AACA,WAAW,EAAE;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,uDAAS;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA8C,0BAA0B;AACxE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA8C,0BAA0B;AACxE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA,uBAAuB,EAAE;AACzB;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA,uBAAuB,EAAE;AACzB;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA,gBAAgB;AAChB;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,oCAAoC,gEAAS,yBAAyB,gEAAS,cAAc,gCAAgC,+DAAQ,KAAK,+DAAQ,cAAc,QAAQ,qDAAQ,MAAM,EAAE,GAAG,gEAAS,0BAA0B,EAAE;AAChO;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA,0CAA0C,0BAA0B;AACpE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA,0CAA0C,0BAA0B;AACpE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,EAAE;AACzB,iEAAiE,oDAAoD,EAAE;AACvH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,EAAE;AACzB,gEAAgE,oCAAoC,EAAE;AACtG;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB,oCAAoC,EAAE;AACtC,mBAAmB,EAAE;AACrB,sDAAsD,mBAAmB,EAAE;AAC3E;AACA;AACA,sDAAsD,mBAAmB,EAAE;AAC3E;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB,oCAAoC,EAAE;AACtC,mBAAmB,EAAE;AACrB;AACA;AACA,+DAA+D,sDAAsD,EAAE;AACvH;AACA;AACA;AACA;AACA,uBAAuB,EAAE;AACzB;AACA,uBAAuB,EAAE;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,EAAE;AACzB;AACA,uBAAuB,EAAE;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,EAAE;AAC1C,2BAA2B,EAAE;AAC7B;AACA;AACA,iEAAiE,iDAAiD,EAAE;AACpH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB,oCAAoC,EAAE;AACtC,mBAAmB,EAAE;AACrB;AACA;AACA,+DAA+D,sDAAsD,EAAE;AACvH;AACA;AACA;AACA;AACA,uBAAuB,EAAE;AACzB;AACA,uBAAuB,EAAE;AACzB;AACA,uBAAuB,EAAE;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,EAAE;AAC1C,2BAA2B,EAAE;AAC7B;AACA;AACA,iEAAiE,iDAAiD,EAAE;AACpH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA;AACA,mBAAmB,EAAE;AACrB,2BAA2B,sDAAQ,EAAE,mCAAmC,yCAAyC,EAAE,yBAAyB,2CAA2C,EAAE,EAAE;AAC3L,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA,uBAAuB,EAAE;AACzB;AACA,uBAAuB,EAAE;AACzB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,OAAO,uDAAS;AACzB;AACA;AACA;AACA,qCAAqC,gEAAiB;AACtD;AACA;AACA;AACA;AACA,wBAAwB,mEAAO;AAC/B,4BAA4B,sEAAU,cAAc,wEAAY;AAChE,4BAA4B,sEAAU,cAAc,wEAAY;AAChE;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA,wBAAwB,mEAAO;AAC/B,4BAA4B,sEAAU,cAAc,wEAAY;AAChE;AACA;AACA;AACA,6BAA6B;AAC7B,4BAA4B,sEAAU,cAAc,wEAAY;AAChE;AACA;AACA;AACA,6BAA6B;AAC7B;AACA;AACA;AACA,oFAAoF,8BAA8B,OAAO,qBAAqB,+BAA+B,4TAA4T,0CAA0C,2PAA2P,yCAAyC,mKAAmK,6BAA6B,+IAA+I,udAAud,gFAAgF,4MAA4M,YAAY,yMAAyM,gRAAgR,gFAAgF,0UAA0U,YAAY;AACpwF,iBAAiB;AACjB;AACA;AACA,cAAc,OAAO,yDAAW,sBAAsB,GAAG,OAAO,mDAAK,EAAE;AACvE,qBAAqB,OAAO,mDAAK,EAAE;AACnC,oBAAoB,OAAO,mDAAK,EAAE;AAClC,4BAA4B,OAAO,mDAAK,EAAE;AAC1C,2BAA2B,OAAO,mDAAK,EAAE;AACzC,oBAAoB,OAAO,yDAAW,4BAA4B;AAClE,gBAAgB,OAAO,yDAAW,wBAAwB;AAC1D,0BAA0B,OAAO,yDAAW,mCAAmC;AAC/E,8BAA8B,OAAO,yDAAW,2CAA2C;AAC3F,sBAAsB,OAAO,yDAAW,iCAAiC;AACzE,sBAAsB,OAAO,uDAAS,oBAAoB,8CAA8C,IAAI;AAC5G,sBAAsB,OAAO,0DAAY,wBAAwB;AACjE,sBAAsB,OAAO,uDAAS,oBAAoB,6CAA6C,IAAI;AAC3G,oBAAoB,OAAO,uDAAS,kBAAkB,4CAA4C,IAAI;AACtG,sBAAsB,OAAO,0DAAY,kBAAkB,6BAA6B,IAAI;AAC5F,wBAAwB,OAAO,uDAAS,0BAA0B,gBAAgB,IAAI;AACtF,wBAAwB,OAAO,uDAAS,0BAA0B,gBAAgB,IAAI;AACtF,mCAAmC,OAAO,0DAAY,SAAS,gEAAU,cAAc,2CAA2C,EAAE,IAAI,yDAAyD,IAAI;AACrM,sCAAsC,OAAO,0DAAY,SAAS,gEAAU,cAAc,8CAA8C,EAAE,IAAI,4DAA4D,IAAI;AAC9M,6BAA6B,OAAO,0DAAY,2CAA2C,GAAG,OAAO,0DAAY,yCAAyC;AAC1J,gCAAgC,OAAO,0DAAY,+CAA+C,GAAG,OAAO,0DAAY,iDAAiD;AACzK,yBAAyB,OAAO,0DAAY,uCAAuC;AACnF,wBAAwB,OAAO,0DAAY,sCAAsC;AACjF,qBAAqB,OAAO,0DAAY,2CAA2C;AACnF;AACA;AACA,CAAC;;AAED;AACA;AACA,cAAc,uEAAuE;AACrF;AACA,WAAW,EAAE;AACb;AACA;AACA,IAAI,uDAAS;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,OAAO,uDAAS;AACzB;AACA;AACA;AACA,qCAAqC,gEAAiB;AACtD;AACA;AACA;AACA;AACA,wBAAwB,mEAAO;AAC/B,4BAA4B,sEAAU,cAAc,wEAAY;AAChE,4BAA4B,sEAAU,cAAc,wEAAY;AAChE;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA,wBAAwB,mEAAO;AAC/B,4BAA4B,sEAAU,cAAc,wEAAY;AAChE;AACA;AACA;AACA,6BAA6B;AAC7B,4BAA4B,sEAAU,cAAc,wEAAY;AAChE;AACA;AACA;AACA,6BAA6B;AAC7B;AACA;AACA;AACA,0WAA0W,kEAAkE,kTAAkT,2BAA2B,4KAA4K,mEAAmE;AACx+B,iBAAiB;AACjB;AACA;AACA,cAAc,OAAO,yDAAW,sBAAsB,GAAG,OAAO,mDAAK,EAAE;AACvE,sBAAsB,OAAO,yDAAW,iCAAiC;AACzE,sBAAsB,OAAO,uDAAS,oBAAoB,8CAA8C,IAAI;AAC5G,sBAAsB,OAAO,uDAAS,oBAAoB,6CAA6C,IAAI;AAC3G,oBAAoB,OAAO,uDAAS,kBAAkB,4CAA4C,IAAI;AACtG,oBAAoB,OAAO,uDAAS,sBAAsB,gBAAgB,IAAI;AAC9E,2BAA2B,OAAO,0DAAY,yCAAyC;AACvF,6BAA6B,OAAO,0DAAY,2CAA2C;AAC3F,yBAAyB,OAAO,0DAAY,uCAAuC;AACnF,wBAAwB,OAAO,0DAAY,sCAAsC;AACjF;AACA;AACA,CAAC;;AAED;AACA;AACA,cAAc,uEAAuE;AACrF;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,SAAS,OAAO,kDAAI;AACpB;AACA,iBAAiB;AACjB;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA,mCAAmC,kBAAkB;AACrD,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA,SAAS,OAAO,kDAAI;AACpB;AACA,iBAAiB;AACjB;AACA;AACA,yDAAyD,WAAW;AACpE;AACA,CAAC;;AAED;AACA;AACA,cAAc,uEAAuE;AACrF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,OAAO,sDAAQ;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,4DAAY,EAAE,0DAAW;AACvD,iBAAiB;AACjB;AACA;AACA,CAAC;;AAED;AACA;AACA,cAAc,uEAAuE;AACrF;;AAEA;AACA;AACA,cAAc,uEAAuE;AACrF;AACA,WAAW,EAAE;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,OAAO,uDAAS;AACzB;AACA;AACA,iBAAiB;AACjB;AACA;AACA,oBAAoB,OAAO,yDAAW,oCAAoC;AAC1E,iBAAiB,OAAO,yDAAW,0BAA0B,GAAG,OAAO,yDAAW,8BAA8B,GAAG,OAAO,mDAAK,EAAE;AACjI,kBAAkB,OAAO,yDAAW,2BAA2B,GAAG,OAAO,mDAAK,EAAE;AAChF,gBAAgB,OAAO,yDAAW,wBAAwB,GAAG,OAAO,mDAAK,EAAE;AAC3E;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,OAAO,uDAAS;AACzB;AACA;AACA,iBAAiB;AACjB;AACA;AACA,oBAAoB,OAAO,yDAAW,oCAAoC;AAC1E,oBAAoB,OAAO,yDAAW,8CAA8C,GAAG,OAAO,mDAAK,EAAE;AACrG,gBAAgB,OAAO,yDAAW,wBAAwB;AAC1D;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,OAAO,uDAAS;AACzB;AACA,iBAAiB;AACjB;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,OAAO,uDAAS;AACzB;AACA,iBAAiB;AACjB;AACA;AACA,oBAAoB,OAAO,yDAAW,2CAA2C;AACjF;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,OAAO,uDAAS;AACzB;AACA,iBAAiB;AACjB;AACA;AACA,oBAAoB,OAAO,yDAAW,8CAA8C;AACpF;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,OAAO,uDAAS;AACzB;AACA;AACA,iBAAiB;AACjB;AACA;AACA,oBAAoB,OAAO,yDAAW,qCAAqC;AAC3E;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,OAAO,uDAAS;AACzB;AACA;AACA,iBAAiB;AACjB;AACA;AACA,gBAAgB,OAAO,yDAAW,wBAAwB,GAAG,OAAO,mDAAK,EAAE;AAC3E;AACA;AACA,CAAC;AACD,WAAW,OAAO;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA,SAAS,OAAO,uDAAS;AACzB;AACA;AACA,iBAAiB;AACjB;AACA;AACA,cAAc,OAAO,yDAAW,sBAAsB,GAAG,OAAO,mDAAK,EAAE;AACvE,gBAAgB,OAAO,yDAAW,wBAAwB,GAAG,OAAO,mDAAK,EAAE;AAC3E,gBAAgB,OAAO,yDAAW,6BAA6B,GAAG,OAAO,mDAAK,EAAE;AAChF,0BAA0B,OAAO,yDAAW,uCAAuC;AACnF,sBAAsB,OAAO,yDAAW,yCAAyC,GAAG,OAAO,mDAAK,EAAE;AAClG;AACA;AACA,CAAC;AACD,WAAW,OAAO;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,SAAS,OAAO,uDAAS;AACzB;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,0DAA0D;AAC1D,SAAS,uCAAuC,OAAO,sDAAQ,EAAE,GAAG,OAAO,oDAAM,6BAA6B;AAC9G,MAAM;AACN;AACA,kBAAkB,OAAO,yDAAW,qCAAqC,GAAG,OAAO,mDAAK,EAAE;AAC1F,oBAAoB,OAAO,yDAAW,+CAA+C,GAAG,OAAO,mDAAK,EAAE;AACtG,2BAA2B,OAAO,yDAAW,8CAA8C;AAC3F,mBAAmB,OAAO,yDAAW,8CAA8C,GAAG,OAAO,mDAAK,EAAE;AACpG;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,OAAO,sDAAQ;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,4DAAY;AAC1C,iBAAiB;AACjB;AACA;AACA,CAAC;;AAED;AACA;AACA,cAAc,uEAAuE;AACrF;AACA,WAAW,EAAE;AACb;AACA,WAAW,OAAO;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,0DAAY;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,0DAAY;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,0DAAY;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,0DAAY;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC,0DAAY;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA,0BAA0B,sDAAQ,8BAA8B,UAAU;AAC1E;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,QAAQ,gBAAgB;AAC/C;AACA;AACA;AACA;AACA,qBAAqB,0BAA0B;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,+BAA+B;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,uDAAuD;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,gBAAgB;AAC3C;AACA;AACA,sCAAsC,+BAA+B;AACrE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA,mCAAmC,8BAA8B;AACjE,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,+BAA+B;AACjE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,EAAE;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA,2CAA2C,oCAAoC,EAAE;AACjF;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA,2CAA2C,oCAAoC,EAAE;AACjF;AACA;AACA,SAAS,OAAO,uDAAS;AACzB;AACA;AACA,2CAA2C,yBAAyB,8BAA8B,OAAO;AACzG,iBAAiB;AACjB;AACA;AACA,uDAAuD;AACvD,SAAS,OAAO,wDAAU,EAAE;AAC5B,SAAS;AACT,MAAM;AACN;AACA,gBAAgB,OAAO,yDAAW,wBAAwB;AAC1D,cAAc,OAAO,yDAAW,sBAAsB,GAAG,OAAO,mDAAK,EAAE;AACvE,gBAAgB,OAAO,mDAAK,EAAE;AAC9B,iBAAiB,OAAO,mDAAK,EAAE;AAC/B,oBAAoB,OAAO,mDAAK,EAAE;AAClC,oBAAoB,OAAO,yDAAW,4BAA4B;AAClE,sBAAsB,OAAO,mDAAK,EAAE;AACpC,0BAA0B,OAAO,oDAAM,EAAE;AACzC,wBAAwB,OAAO,oDAAM,EAAE;AACvC,0BAA0B,OAAO,oDAAM,EAAE;AACzC,4BAA4B,OAAO,oDAAM,EAAE;AAC3C,6BAA6B,OAAO,oDAAM,EAAE;AAC5C,+BAA+B,OAAO,0DAAY,iCAAiC;AACnF,8BAA8B,OAAO,0DAAY,gCAAgC;AACjF;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,0DAAY;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,SAAS,OAAO,uDAAS;AACzB;AACA;AACA,iBAAiB;AACjB;AACA;AACA,oDAAoD;AACpD,SAAS;AACT,MAAM;AACN;AACA,iBAAiB,OAAO,mDAAK,EAAE;AAC/B,qBAAqB,OAAO,mDAAK,EAAE;AACnC,kBAAkB,OAAO,yDAAW,2BAA2B,GAAG,OAAO,mDAAK,EAAE;AAChF,wBAAwB,OAAO,oDAAM,EAAE;AACvC;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,OAAO,sDAAQ;AACxB;AACA;AACA,8BAA8B,4DAAY;AAC1C,iBAAiB;AACjB;AACA;AACA,CAAC;;AAED;AACA;AACA,cAAc,uEAAuE;AACrF;AACA,WAAW,OAAO;AAClB;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,0BAA0B;AAC1B,WAAW,EAAE;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,0DAAY;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,wCAAwC;AAClE;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA,mBAAmB,6BAA6B;AAChD;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA,mBAAmB,8BAA8B;AACjD;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,SAAS,OAAO,uDAAS;AACzB,iCAAiC,UAAU,gEAAiB,kDAAkD;AAC9G;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,0BAA0B,OAAO,uDAAS,sBAAsB,eAAe,IAAI;AACnF,uBAAuB,OAAO,uDAAS,mBAAmB,eAAe,IAAI;AAC7E,4BAA4B,OAAO,uDAAS,8BAA8B,eAAe,IAAI;AAC7F,cAAc,OAAO,yDAAW,sBAAsB,GAAG,OAAO,mDAAK,EAAE;AACvE,mBAAmB,OAAO,mDAAK,EAAE;AACjC,iBAAiB,OAAO,mDAAK,EAAE;AAC/B,gBAAgB,OAAO,mDAAK,EAAE;AAC9B,oBAAoB,OAAO,mDAAK,EAAE;AAClC,yBAAyB,OAAO,mDAAK,EAAE;AACvC,yBAAyB,OAAO,mDAAK,EAAE;AACvC,oBAAoB,OAAO,mDAAK,EAAE;AAClC,0BAA0B,OAAO,mDAAK,8BAA8B;AACpE,qBAAqB,OAAO,mDAAK,yBAAyB;AAC1D,kBAAkB,OAAO,oDAAM,EAAE;AACjC,oBAAoB,OAAO,yDAAW,iCAAiC;AACvE,mBAAmB,OAAO,yDAAW,0CAA0C;AAC/E,yBAAyB,OAAO,yDAAW,gDAAgD,GAAG,OAAO,mDAAK,EAAE;AAC5G,mBAAmB,OAAO,yDAAW,0CAA0C,GAAG,OAAO,mDAAK,EAAE;AAChG,oBAAoB,OAAO,yDAAW,2CAA2C,GAAG,OAAO,mDAAK,EAAE;AAClG,oBAAoB,OAAO,mDAAK,EAAE;AAClC,8BAA8B,OAAO,yDAAW,wCAAwC,GAAG,OAAO,mDAAK,EAAE;AACzG;AACA;AACA,CAAC;AACD,WAAW,EAAE;AACb;AACA,aAAa,4DAAa;AAC1B,iBAAiB,gEAAU,cAAc,qCAAqC,EAAE;AAChF;AACA;AACA;AACA;AACA,IAAI,uDAAS;AACb;AACA;AACA;AACA;AACA,SAAS,OAAO,uDAAS;AACzB;AACA;AACA,iBAAiB;AACjB;AACA;AACA,CAAC,CAAC,wEAAyB;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,OAAO,sDAAQ;AACxB;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,CAAC;;AAED;AACA;AACA,cAAc,uEAAuE;AACrF;AACA,WAAW,EAAE;AACb;AACA;AACA,IAAI,uDAAS;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,0DAAY;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,0DAAY;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,0DAAY;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,0DAAY;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,0DAAY;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,0DAAY;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,0DAAY;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,0DAAY;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,0DAAY;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA,uBAAuB,EAAE;AACzB;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,sBAAsB;AACtB;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA,kCAAkC,iBAAiB;AACnD,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,OAAO,uDAAS;AACzB;AACA,wKAAwK,WAAW;AACnL,iBAAiB;AACjB;AACA;AACA,mDAAmD;AACnD,SAAS,OAAO,+DAAiB,EAAE;AACnC,SAAS,OAAO,wDAAU,EAAE;AAC5B,SAAS,OAAO,uDAAS,EAAE;AAC3B,SAAS,gCAAgC,OAAO,sDAAQ,EAAE,GAAG,OAAO,oDAAM,gCAAgC;AAC1G,MAAM;AACN;AACA,cAAc,OAAO,yDAAW,sBAAsB,GAAG,OAAO,mDAAK,EAAE;AACvE,gBAAgB,OAAO,mDAAK,EAAE;AAC9B,qBAAqB,OAAO,mDAAK,EAAE;AACnC,4BAA4B,OAAO,mDAAK,EAAE;AAC1C,0BAA0B,OAAO,mDAAK,EAAE;AACxC,qBAAqB,OAAO,mDAAK,EAAE;AACnC,sBAAsB,OAAO,mDAAK,EAAE;AACpC,sBAAsB,OAAO,mDAAK,EAAE;AACpC,sBAAsB,OAAO,mDAAK,EAAE;AACpC,iBAAiB,OAAO,mDAAK,EAAE;AAC/B,oBAAoB,OAAO,mDAAK,EAAE;AAClC,oBAAoB,OAAO,mDAAK,EAAE;AAClC,0BAA0B,OAAO,oDAAM,EAAE;AACzC,iBAAiB,OAAO,mDAAK,EAAE;AAC/B,uBAAuB,OAAO,oDAAM,EAAE;AACtC,qBAAqB,OAAO,oDAAM,EAAE;AACpC,oBAAoB,OAAO,oDAAM,EAAE;AACnC,mBAAmB,OAAO,oDAAM,EAAE;AAClC,uBAAuB,OAAO,oDAAM,EAAE;AACtC,2BAA2B,OAAO,oDAAM,EAAE;AAC1C,qBAAqB,OAAO,oDAAM,EAAE;AACpC,uBAAuB,OAAO,oDAAM,EAAE;AACtC,qBAAqB,OAAO,yDAAW,yBAAyB;AAChE,yBAAyB,OAAO,uDAAS,sBAAsB,uCAAuC,IAAI;AAC1G,oBAAoB,OAAO,uDAAS,sBAAsB,OAAO,wDAAU,gBAAgB,IAAI;AAC/F,6BAA6B,OAAO,uDAAS,+BAA+B,OAAO,yDAAW,gBAAgB,IAAI;AAClH,6BAA6B,OAAO,uDAAS,+BAA+B,OAAO,yDAAW,gBAAgB,IAAI;AAClH;AACA;AACA,CAAC;;AAED;AACA;AACA,cAAc,uEAAuE;AACrF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,0DAAY;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,0DAAY;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,0DAAY;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,0DAAY;AACzC;AACA,4BAA4B,4CAAO;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA,uBAAuB,EAAE;AACzB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA,uBAAuB,EAAE;AACzB,uEAAuE,sBAAsB,EAAE;AAC/F;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA,uBAAuB,EAAE;AACzB;AACA;AACA;AACA,oDAAoD,gEAAS;AAC7D;AACA,qBAAqB;AACrB,kDAAkD,gEAAS;AAC3D;AACA,qBAAqB;AACrB,oDAAoD,gEAAS;AAC7D;AACA,qBAAqB;AACrB,kDAAkD,gEAAS;AAC3D;AACA,qBAAqB;AACrB;AACA,wDAAwD,gEAAS;AACjE;AACA,yBAAyB;AACzB;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB,gEAAgE,2BAA2B,EAAE;AAC7F;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB,8EAA8E,2BAA2B,EAAE;AAC3G,mBAAmB,EAAE;AACrB,8EAA8E,8BAA8B,EAAE;AAC9G;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA,uBAAuB,uBAAuB;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB,mEAAmE,sBAAsB,EAAE;AAC3F;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS,OAAO,uDAAS;AACzB;AACA;AACA,iBAAiB;AACjB;AACA;AACA,wDAAwD;AACxD,SAAS,OAAO,+DAAiB,EAAE;AACnC,SAAS,OAAO,wDAAU,EAAE;AAC5B,SAAS,OAAO,6DAAe;AAC/B,MAAM;AACN;AACA,iBAAiB,OAAO,mDAAK,EAAE;AAC/B,qBAAqB,OAAO,yDAAW,yBAAyB;AAChE,iBAAiB,OAAO,yDAAW,6BAA6B,GAAG,OAAO,mDAAK,EAAE;AACjF,kBAAkB,OAAO,yDAAW,8BAA8B,GAAG,OAAO,mDAAK,EAAE;AACnF,qBAAqB,OAAO,oDAAM,EAAE;AACpC,uBAAuB,OAAO,oDAAM,EAAE;AACtC,uBAAuB,OAAO,oDAAM,EAAE;AACtC,qBAAqB,OAAO,oDAAM,EAAE;AACpC,qBAAqB,OAAO,6DAAe,6BAA6B;AACxE;AACA;AACA,CAAC;;AAED;AACA;AACA,cAAc,uEAAuE;AACrF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,OAAO,sDAAQ;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,4DAAY;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,CAAC;;AAED;AACA;AACA,cAAc,uEAAuE;AACrF;;AAEA;AACA;AACA,cAAc,uEAAuE;AACrF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,OAAO,uDAAS;AACzB;AACA,iBAAiB;AACjB;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,OAAO,uDAAS;AACzB;AACA,iBAAiB;AACjB;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,OAAO,uDAAS;AACzB;AACA,iBAAiB;AACjB;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,OAAO,uDAAS;AACzB;AACA,iBAAiB;AACjB;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,OAAO,uDAAS;AACzB;AACA,iBAAiB;AACjB;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,OAAO,uDAAS;AACzB;AACA,iBAAiB;AACjB;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,OAAO,uDAAS;AACzB;AACA,iBAAiB;AACjB;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,OAAO,uDAAS;AACzB;AACA,iBAAiB;AACjB;AACA;AACA,CAAC;;AAED;AACA;AACA,cAAc,uEAAuE;AACrF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA,gBAAgB;AAChB;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA,eAAe,EAAE;AACjB,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA,cAAc,uEAAuE;AACrF;AACA;AACA;AACA;AACA;AACA,IAAI,uDAAS;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA,uBAAuB,EAAE;AACzB;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA,uBAAuB,EAAE;AACzB,wEAAwE,qBAAqB,EAAE;AAC/F;AACA,yDAAyD,sBAAsB;AAC/E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA,SAAS,OAAO,uDAAS;AACzB;AACA;AACA,iBAAiB;AACjB;AACA;AACA,wDAAwD;AACxD,SAAS,2BAA2B;AACpC,SAAS,gCAAgC,OAAO,oDAAM,8BAA8B,GAAG;AACvF,SAAS,OAAO,wDAAU,EAAE;AAC5B,SAAS,6CAA6C,OAAO,oDAAM,mCAAmC;AACtG,MAAM;AACN;AACA,sBAAsB,OAAO,mDAAK,EAAE,GAAG,OAAO,yDAAW,8BAA8B;AACvF,mBAAmB,OAAO,0DAAY,gCAAgC;AACtE;AACA;AACA,CAAC;;AAED;AACA;AACA,cAAc,uEAAuE;AACrF;AACA,WAAW,EAAE;AACb;;AAEA;AACA;AACA,cAAc,uEAAuE;AACrF;AACA;AACA;AACA;AACA;AACA,IAAI,uDAAS;AACb;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,OAAO,uDAAS;AACzB;AACA;AACA,iCAAiC,wEAAwE;AACzG,iBAAiB;AACjB;AACA;AACA,CAAC;;AAED;AACA;AACA,cAAc,uEAAuE;AACrF;AACA;AACA;AACA;AACA;AACA,IAAI,uDAAS;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA,uBAAuB,EAAE;AACzB;AACA,uBAAuB,EAAE;AACzB;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA,wEAAwE,oBAAoB,EAAE;AAC9F;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA,wBAAwB;AACxB;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,uBAAuB,EAAE;AACzB;AACA;AACA,2BAA2B,EAAE;AAC7B,iDAAiD,EAAE;AACnD;AACA,gDAAgD,sDAAQ,+DAA+D,0BAA0B;AACjJ;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,QAAQ,gBAAgB;AACvD;AACA;AACA;AACA;AACA,6BAA6B,0BAA0B;AACvD;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,OAAO,uDAAS;AACzB;AACA;AACA,iCAAiC,qEAAqE;AACtG,iBAAiB;AACjB;AACA;AACA,4DAA4D;AAC5D,SAAS,OAAO,wDAAU,EAAE;AAC5B,SAAS,OAAO,+DAAiB,EAAE;AACnC,SAAS,+BAA+B;AACxC,SAAS,gCAAgC,OAAO,oDAAM,gCAAgC,GAAG;AACzF,SAAS,2BAA2B;AACpC,SAAS,gCAAgC,OAAO,sDAAQ,EAAE,GAAG,OAAO,oDAAM,gCAAgC;AAC1G,MAAM;AACN;AACA,oBAAoB,OAAO,6DAAe,iCAAiC,oBAAoB,IAAI;AACnG;AACA;AACA,CAAC;;AAED;AACA;AACA,cAAc,uEAAuE;AACrF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA,mBAAmB,EAAE;AACrB,qBAAqB;AACrB;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA,SAAS,OAAO,kDAAI;AACpB;AACA,iBAAiB;AACjB;AACA;AACA,wDAAwD;AACxD,SAAS,gCAAgC,OAAO,oDAAM,gCAAgC;AACtF,MAAM;AACN;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,uDAAS;AACb;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA,SAAS,OAAO,kDAAI;AACpB;AACA;AACA,iBAAiB;AACjB;AACA;AACA,sDAAsD,WAAW;AACjE;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA,uBAAuB,uBAAuB;AAC9C,uBAAuB,EAAE;AACzB;AACA;AACA;AACA;AACA;AACA;AACA,oDAAoD;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,OAAO,kDAAI;AACpB;AACA,iBAAiB;AACjB;AACA;AACA,uDAAuD;AACvD,SAAS,gCAAgC,OAAO,oDAAM,gCAAgC;AACtF,MAAM;AACN;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,SAAS,OAAO,kDAAI;AACpB;AACA;AACA,iBAAiB;AACjB;AACA;AACA,CAAC;;AAED;AACA;AACA,cAAc,uEAAuE;AACrF;AACA,WAAW,OAAO;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA,WAAW,OAAO;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,WAAW,EAAE;AACb,YAAY;AACZ;AACA;AACA,eAAe,EAAE;AACjB;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,WAAW,EAAE;AACb;AACA,WAAW,EAAE;AACb,0BAA0B;AAC1B;AACA,IAAI,uDAAS;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,4CAAO;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,oBAAoB,YAAY,mBAAmB,EAAE;AACzF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yDAAyD,aAAa;AACtE,yDAAyD,aAAa;AACtE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uEAAuE,aAAa;AACpF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,wDAAwD;AACxF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC,0DAAY;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,0DAAY;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,0DAAY;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,0DAAY;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,0DAAY;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,0DAAY;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,0DAAY;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,0DAAY;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB,4DAA4D,iCAAiC,EAAE;AAC/F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA,kFAAkF,4BAA4B,EAAE;AAChH;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA,uBAAuB,EAAE;AACzB;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C,2DAAI;AAChD;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,GAAG;AAClB,eAAe,GAAG;AAClB,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,GAAG;AAClB,eAAe,GAAG;AAClB,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA,6BAA6B,4BAA4B;AACzD,oCAAoC,mBAAmB;AACvD,kCAAkC,8CAA8C;AAChF;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,0DAA0D,qCAAqC,EAAE;AACjG;AACA;AACA,mBAAmB,EAAE;AACrB,qDAAqD,qCAAqC,EAAE;AAC5F;AACA,wBAAwB,6EAA6E;AACrG;AACA;AACA,uCAAuC,yDAAyD;AAChG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA;AACA,6BAA6B,YAAY;AACzC;AACA,uBAAuB,EAAE;AACzB;AACA;AACA,uCAAuC,sDAAQ,gDAAgD,qBAAqB;AACpH;AACA;AACA;AACA;AACA,2BAA2B,QAAQ,gBAAgB;AACnD;AACA;AACA;AACA;AACA,yBAAyB,0BAA0B;AACnD;AACA;AACA;AACA;AACA,iCAAiC,sDAAQ,8BAA8B,eAAe;AACtF;AACA;AACA;AACA;AACA,2BAA2B,QAAQ,gBAAgB;AACnD;AACA;AACA;AACA;AACA,yBAAyB,0BAA0B;AACnD;AACA;AACA;AACA,2CAA2C,iDAAiD;AAC5F;AACA,0CAA0C,iDAAiD;AAC3F;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,0CAA0C,iDAAiD;AAC3F;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,kDAAkD,gDAAgD,EAAE;AACpG;AACA,0BAA0B;AAC1B;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB,kDAAkD;AAClD;AACA;AACA;AACA;AACA,6CAA6C;AAC7C;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB,4BAA4B,sDAAQ;AACpC;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB,uBAAuB,sDAAQ;AAC/B,mBAAmB,EAAE;AACrB,wDAAwD,qCAAqC,EAAE;AAC/F,mBAAmB,EAAE;AACrB,6BAA6B;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,EAAE;AACzB,6DAA6D,sCAAsC,EAAE;AACrG,uBAAuB,EAAE;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA,uBAAuB,EAAE;AACzB,qEAAqE,EAAE,OAAO;AAC9E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA,wDAAwD,EAAE,KAAK,wDAAS;AACxE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA,4BAA4B,sDAAQ;AACpC;AACA,8CAA8C,gEAAS;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB,8CAA8C;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB,8CAA8C;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,EAAE;AAClB;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,EAAE;AAClB;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,GAAG;AAClB;AACA;AACA;AACA,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,GAAG;AAClB;AACA;AACA;AACA,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA;AACA,uBAAuB,EAAE;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB;AACA;AACA;AACA,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB;AACA;AACA;AACA,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA;AACA,uBAAuB,EAAE;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,GAAG;AAClB;AACA;AACA;AACA,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,GAAG;AAClB;AACA;AACA;AACA,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,GAAG;AAClB;AACA;AACA;AACA,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,GAAG;AAClB;AACA;AACA;AACA,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,+BAA+B;AACpD;AACA;AACA;AACA;AACA;AACA,qBAAqB,+BAA+B;AACpD;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,GAAG;AAClB;AACA;AACA;AACA;AACA,qBAAqB,+BAA+B;AACpD;AACA;AACA;AACA;AACA;AACA,qBAAqB,+BAA+B;AACpD;AACA;AACA,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,GAAG;AAClB;AACA;AACA;AACA;AACA,qBAAqB,+BAA+B;AACpD;AACA;AACA;AACA;AACA;AACA,qBAAqB,+BAA+B;AACpD;AACA;AACA,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA,gCAAgC,eAAe;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,EAAE;AACzB;AACA;AACA;AACA,+BAA+B,EAAE;AACjC,8EAA8E,yCAAyC,EAAE;AACzH,+BAA+B,EAAE;AACjC,4EAA4E,yCAAyC,EAAE;AACvH;AACA;AACA,iFAAiF,kCAAkC,EAAE;AACrH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qFAAqF,gCAAgC,EAAE;AACvH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,0CAA0C,sCAAsC,EAAE,EAAE,EAAE,uBAAuB,wBAAwB,EAAE;AAC/K;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,SAAS,OAAO,uDAAS;AACzB;AACA,kHAAkH,cAAc,8DAA8D,SAAS,gTAAgT,aAAa,o8CAAo8C,WAAW,0BAA0B,oHAAoH,2DAA2D,o+DAAo+D,WAAW,4FAA4F,uLAAuL,WAAW,yEAAyE;AACl/I;AACA;AACA,yBAAyB,+DAA+D;AACxF,yBAAyB,UAAU,gEAAiB,eAAe,gEAAU,cAAc,0BAA0B,EAAE;AACvH;AACA,iBAAiB;AACjB;AACA;AACA,oDAAoD;AACpD,SAAS,OAAO,wDAAU,EAAE;AAC5B,SAAS,OAAO,+DAAiB,EAAE;AACnC,SAAS,+BAA+B;AACxC,SAAS,2BAA2B;AACpC,SAAS,gCAAgC,OAAO,sDAAQ,EAAE,GAAG,OAAO,oDAAM,gCAAgC,GAAG;AAC7G,SAAS,OAAO,sDAAQ,gBAAgB,OAAO,sDAAQ,EAAE;AACzD,MAAM;AACN;AACA,mBAAmB,OAAO,uDAAS,6BAA6B,wCAAwC,IAAI;AAC5G,2BAA2B,OAAO,mDAAK,EAAE;AACzC,sBAAsB,OAAO,uDAAS,wBAAwB,6CAA6C,IAAI;AAC/G,sBAAsB,OAAO,uDAAS,wBAAwB,wCAAwC,IAAI;AAC1G,oBAAoB,OAAO,uDAAS,qCAAqC,gDAAgD,IAAI;AAC7H,uBAAuB,OAAO,uDAAS,yBAAyB,gBAAgB,IAAI;AACpF,wBAAwB,OAAO,0DAAY,iCAAiC,OAAO,yDAAW,iBAAiB,IAAI;AACnH,0BAA0B,OAAO,0DAAY,mCAAmC,OAAO,yDAAW,iBAAiB,IAAI;AACvH,0BAA0B,OAAO,0DAAY,mCAAmC,OAAO,yDAAW,iBAAiB,IAAI;AACvH,8BAA8B,OAAO,0DAAY,uCAAuC,OAAO,yDAAW,iBAAiB,IAAI;AAC/H,2BAA2B,OAAO,0DAAY,oCAAoC,OAAO,yDAAW,iBAAiB,IAAI;AACzH,yBAAyB,OAAO,0DAAY,kCAAkC,OAAO,yDAAW,iBAAiB,IAAI;AACrH,8BAA8B,OAAO,0DAAY,uCAAuC,OAAO,yDAAW,iBAAiB,IAAI;AAC/H,6BAA6B,OAAO,0DAAY,sCAAsC,OAAO,yDAAW,iBAAiB,IAAI;AAC7H,6BAA6B,OAAO,uDAAS,uBAAuB,OAAO,yDAAW,gBAAgB,IAAI;AAC1G,2BAA2B,OAAO,uDAAS,qBAAqB,OAAO,yDAAW,gBAAgB,IAAI;AACtG,kCAAkC,OAAO,uDAAS,6BAA6B,eAAe,IAAI;AAClG,6BAA6B,OAAO,uDAAS,mCAAmC,eAAe,IAAI;AACnG,6BAA6B,OAAO,oDAAM,EAAE;AAC5C,qBAAqB,OAAO,oDAAM,EAAE;AACpC,oBAAoB,OAAO,oDAAM,EAAE;AACnC,qBAAqB,OAAO,oDAAM,EAAE;AACpC,oBAAoB,OAAO,oDAAM,EAAE;AACnC,sBAAsB,OAAO,oDAAM,EAAE;AACrC,yBAAyB,OAAO,oDAAM,EAAE;AACxC,yBAAyB,OAAO,oDAAM,EAAE;AACxC,cAAc,OAAO,yDAAW,sBAAsB,GAAG,OAAO,mDAAK,EAAE;AACvE,iBAAiB,OAAO,yDAAW,0BAA0B,GAAG,OAAO,mDAAK,EAAE;AAC9E,oBAAoB,OAAO,yDAAW,8BAA8B;AACpE,gBAAgB,OAAO,yDAAW,wBAAwB;AAC1D,wBAAwB,OAAO,yDAAW,iCAAiC;AAC3E,oBAAoB,OAAO,yDAAW,iCAAiC;AACvE,oBAAoB,OAAO,yDAAW,6BAA6B;AACnE,6BAA6B,OAAO,mDAAK,EAAE;AAC3C,0BAA0B,OAAO,mDAAK,EAAE;AACxC,sBAAsB,OAAO,mDAAK,EAAE;AACpC,sBAAsB,OAAO,mDAAK,EAAE;AACpC,uBAAuB,OAAO,mDAAK,EAAE;AACrC,6BAA6B,OAAO,mDAAK,EAAE;AAC3C,gBAAgB,OAAO,mDAAK,EAAE;AAC9B,oBAAoB,OAAO,mDAAK,EAAE;AAClC,sBAAsB,OAAO,mDAAK,EAAE;AACpC,oBAAoB,OAAO,mDAAK,EAAE;AAClC,sBAAsB,OAAO,mDAAK,EAAE;AACpC,0BAA0B,OAAO,mDAAK,EAAE,GAAG,OAAO,yDAAW,mCAAmC;AAChG,oBAAoB,OAAO,mDAAK,EAAE;AAClC,gBAAgB,OAAO,mDAAK,EAAE;AAC9B,uBAAuB,OAAO,0DAAY,4CAA4C,GAAG,OAAO,0DAAY,gDAAgD;AAC5J;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,OAAO,sDAAQ;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C,4DAAY,uBAAuB,0DAAW,EAAE,kEAAmB;AAClH;AACA;AACA,iBAAiB;AACjB;AACA;AACA,CAAC;;AAED;AACA;AACA,cAAc,uEAAuE;AACrF;;AAEA;AACA;AACA,cAAc,uEAAuE;AACrF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,GAAG;AAClB,gBAAgB,EAAE;AAClB;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,GAAG;AAClB,gBAAgB,EAAE;AAClB;AACA;AACA,gCAAgC,wCAAwC;AACxE,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA,uBAAuB,EAAE;AACzB;AACA,uBAAuB,EAAE;AACzB;AACA,uBAAuB,EAAE;AACzB;AACA,uBAAuB,EAAE;AACzB;AACA,uBAAuB,EAAE;AACzB;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA,2BAA2B,sBAAsB;AACjD;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA,6CAA6C,8CAA8C,EAAE;AAC7F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB,EAAE;AAClB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB,EAAE;AAClB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,uBAAuB,uBAAuB;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB,EAAE;AAClB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB,EAAE;AAClB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,uBAAuB,uBAAuB;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB,EAAE;AAClB;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB,EAAE;AAClB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA,uBAAuB,EAAE;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA,oBAAoB;AACpB;AACA;AACA,oBAAoB;AACpB;AACA,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB,EAAE;AAClB;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB,EAAE;AAClB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB,EAAE;AAClB;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB,EAAE;AAClB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,uBAAuB,4BAA4B;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB,EAAE;AAClB;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB,EAAE;AAClB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA,uBAAuB,0BAA0B;AACjD;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,uBAAuB,uBAAuB;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA,8BAA8B,aAAa;AAC3C,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA,8BAA8B,aAAa;AAC3C;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA,8BAA8B,aAAa;AAC3C;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA,8BAA8B,aAAa;AAC3C;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB,iEAAiE,iCAAiC,EAAE;AACpG;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,uBAAuB,sBAAsB;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA,cAAc,uEAAuE;AACrF;AACA;AACA;AACA,UAAU;AACV;AACA;;AAEA;AACA;AACA,cAAc,uEAAuE;AACrF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,OAAO,kDAAI;AACpB;AACA,iBAAiB;AACjB;AACA;AACA,6DAA6D;AAC7D,SAAS,gCAAgC,OAAO,oDAAM,sCAAsC;AAC5F,MAAM;AACN;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,OAAO,kDAAI;AACpB;AACA,iBAAiB;AACjB;AACA;AACA,2DAA2D;AAC3D,SAAS,gCAAgC,OAAO,oDAAM,sCAAsC;AAC5F,MAAM;AACN;AACA,CAAC;;AAED;AACA;AACA,cAAc,uEAAuE;AACrF;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,OAAO,uDAAS;AACzB;AACA,iBAAiB;AACjB;AACA;AACA,iEAAiE;AACjE,SAAS,OAAO,yDAAW;AAC3B,MAAM;AACN;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,OAAO,uDAAS;AACzB;AACA,iBAAiB;AACjB;AACA;AACA,gEAAgE;AAChE,SAAS,OAAO,yDAAW;AAC3B,MAAM;AACN;AACA,CAAC;;AAED;AACA;AACA,cAAc,uEAAuE;AACrF;AACA,WAAW,OAAO;AAClB;AACA;AACA;AACA;;AAEA;AACA;AACA,cAAc,uEAAuE;AACrF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,0DAAY;AACvC,oCAAoC,0DAAY;AAChD;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,SAAS,OAAO,uDAAS;AACzB;AACA,wSAAwS,qBAAqB,8JAA8J,oBAAoB;AAC/e,qCAAqC,gBAAgB;AACrD,iBAAiB;AACjB;AACA;AACA,oBAAoB,OAAO,uDAAS,sBAAsB,eAAe,IAAI;AAC7E,gBAAgB,OAAO,mDAAK,EAAE;AAC9B,oBAAoB,OAAO,mDAAK,EAAE;AAClC,6BAA6B,OAAO,mDAAK,EAAE;AAC3C,4BAA4B,OAAO,mDAAK,EAAE;AAC1C,6BAA6B,OAAO,mDAAK,EAAE;AAC3C,mBAAmB,OAAO,oDAAM,EAAE;AAClC,4BAA4B,OAAO,oDAAM,EAAE;AAC3C,sBAAsB,OAAO,yDAAW,oCAAoC;AAC5E,uBAAuB,OAAO,yDAAW,8CAA8C;AACvF,uBAAuB,OAAO,yDAAW,8CAA8C;AACvF,oBAAoB,OAAO,0DAAY,sCAAsC,GAAG,OAAO,0DAAY,8CAA8C;AACjJ;AACA;AACA,CAAC;;AAED;AACA;AACA,cAAc,uEAAuE;AACrF;AACA,WAAW,EAAE;AACb;AACA,WAAW,OAAO;AAClB;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,0BAA0B;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,0DAAY;AACxC;AACA;AACA;AACA,4BAA4B,0DAAY;AACxC;AACA;AACA;AACA,6BAA6B,0DAAY;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,0DAAY;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,0DAAY;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,0DAAY;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC,0DAAY;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,4CAAO;AACpC;AACA;AACA,2BAA2B,0DAAY;AACvC,4BAA4B,0DAAY;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B;AAC5B;AACA;AACA;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,sFAAsF;AACtG,gBAAgB,6BAA6B;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,sFAAsF;AACtG,gBAAgB,6BAA6B;AAC7C;AACA;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,sFAAsF;AACtG,gBAAgB,6BAA6B;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,sFAAsF;AACtG,gBAAgB,6BAA6B;AAC7C;AACA;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C,iCAAiC;AAChF;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA,2BAA2B,EAAE;AAC7B,0EAA0E,EAAE,OAAO;AACnF;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA,mBAAmB,6BAA6B;AAChD;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA,mBAAmB,8BAA8B;AACjD;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA,2BAA2B,4BAA4B;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C,6DAAM,qBAAqB,0CAA0C,EAAE,GAAG,gEAAS;AAC/H;AACA,SAAS;AACT,2CAA2C,6DAAM,qBAAqB,0CAA0C,EAAE,GAAG,gEAAS;AAC9H;AACA,SAAS;AACT,2CAA2C,6DAAM,qBAAqB,0CAA0C,EAAE,GAAG,gEAAS;AAC9H;AACA,SAAS;AACT,4CAA4C,6DAAM,qBAAqB,0CAA0C,EAAE,GAAG,gEAAS;AAC/H;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,EAAE;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yDAAyD,EAAE,KAAK,wDAAS;AACzE;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA,YAAY,sDAAS,sDAAsD,+DAAQ,cAAc,QAAQ,qDAAQ,IAAI,4DAAuB,EAAE,EAAE,GAAG,gEAAS,4CAA4C,6BAA6B,EAAE;AACvO;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB;AACnB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB;AACnB,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB;AACnB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB;AACnB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB;AACnB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB;AACnB,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,GAAG;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,GAAG;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,EAAE;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,uBAAuB,EAAE;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB;AACA,gBAAgB;AAChB;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,uBAAuB,EAAE;AACzB;AACA,uBAAuB,EAAE;AACzB;AACA,uBAAuB,EAAE;AACzB;AACA;AACA,2BAA2B,EAAE;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,EAAE;AACjC;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,EAAE;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,EAAE;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,sDAAsD,EAAE;AACxD;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,gEAAS,2CAA2C,kCAAkC,EAAE;AAC/H;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,gEAAS,yCAAyC,8BAA8B,EAAE;AACzH,gDAAgD,gEAAS,yCAAyC,sCAAsC,EAAE;AAC1I;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,EAAE;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA;AACA,6BAA6B,aAAa;AAC1C;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,uBAAuB,EAAE;AACzB;AACA,mBAAmB,kEAAU;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB,qCAAqC,kEAAU;AAC/C;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,OAAO,uDAAS;AACzB;AACA,qCAAqC,gEAAiB;AACtD;AACA;AACA,yBAAyB;AACzB;AACA;AACA,qSAAqS,OAAO,yoBAAyoB,OAAO,+xBAA+xB;AAC3tD,+CAA+C,6BAA6B,WAAW;AACvF,iBAAiB;AACjB;AACA;AACA,yDAAyD;AACzD,SAAS,wCAAwC,OAAO,oDAAM,8BAA8B,GAAG;AAC/F,SAAS,OAAO,wDAAU,EAAE;AAC5B,SAAS,OAAO,+DAAiB,EAAE;AACnC,SAAS,OAAO,yDAAW,EAAE;AAC7B,SAAS,OAAO,sDAAQ;AACxB,MAAM;AACN;AACA,iBAAiB,OAAO,mDAAK,EAAE;AAC/B,2BAA2B,OAAO,mDAAK,EAAE;AACzC,kBAAkB,OAAO,mDAAK,EAAE;AAChC,qBAAqB,OAAO,mDAAK,EAAE;AACnC,yBAAyB,OAAO,mDAAK,EAAE;AACvC,2BAA2B,OAAO,mDAAK,EAAE;AACzC,4BAA4B,OAAO,mDAAK,EAAE;AAC1C,kBAAkB,OAAO,mDAAK,EAAE;AAChC,gBAAgB,OAAO,mDAAK,EAAE;AAC9B,uBAAuB,OAAO,mDAAK,EAAE;AACrC,yBAAyB,OAAO,mDAAK,EAAE;AACvC,wBAAwB,OAAO,mDAAK,EAAE;AACtC,gCAAgC,OAAO,mDAAK,EAAE;AAC9C,mCAAmC,OAAO,mDAAK,EAAE;AACjD,iBAAiB,OAAO,mDAAK,EAAE;AAC/B,cAAc,OAAO,yDAAW,sBAAsB,GAAG,OAAO,mDAAK,EAAE;AACvE,qBAAqB,OAAO,mDAAK,EAAE;AACnC,oBAAoB,OAAO,mDAAK,EAAE;AAClC,oBAAoB,OAAO,mDAAK,EAAE;AAClC,4BAA4B,OAAO,mDAAK,EAAE;AAC1C,6BAA6B,OAAO,mDAAK,EAAE;AAC3C,gBAAgB,OAAO,mDAAK,EAAE;AAC9B,sBAAsB,OAAO,mDAAK,EAAE;AACpC,kBAAkB,OAAO,mDAAK,EAAE;AAChC,kBAAkB,OAAO,oDAAM,EAAE;AACjC,oBAAoB,OAAO,oDAAM,EAAE;AACnC,mBAAmB,OAAO,oDAAM,EAAE;AAClC,oBAAoB,OAAO,oDAAM,EAAE;AACnC,qBAAqB,OAAO,oDAAM,EAAE;AACpC,uBAAuB,OAAO,oDAAM,EAAE;AACtC,uBAAuB,OAAO,oDAAM,EAAE;AACtC,0BAA0B,OAAO,oDAAM,EAAE;AACzC,8BAA8B,OAAO,oDAAM,EAAE;AAC7C,sCAAsC,OAAO,uDAAS,wCAAwC,OAAO,yDAAW,gBAAgB,IAAI;AACpI,sCAAsC,OAAO,uDAAS,wCAAwC,OAAO,yDAAW,gBAAgB,IAAI;AACpI,sBAAsB,OAAO,uDAAS,kCAAkC,gBAAgB,IAAI;AAC5F,4BAA4B,OAAO,uDAAS,6BAA6B,OAAO,wDAAU,iBAAiB,IAAI;AAC/G,wCAAwC,OAAO,0DAAY,6BAA6B,OAAO,wDAAU,iBAAiB,IAAI;AAC9H,2BAA2B,OAAO,uDAAS,6BAA6B,gBAAgB,IAAI;AAC5F,uCAAuC,OAAO,0DAAY,6BAA6B,gBAAgB,IAAI;AAC3G,uCAAuC,OAAO,0DAAY,0CAA0C,sDAAsD,IAAI;AAC9J,0BAA0B,OAAO,0DAAY,8CAA8C,0DAA0D,IAAI;AACzJ,6BAA6B,OAAO,0DAAY,iDAAiD,6DAA6D,IAAI;AAClK,sCAAsC,OAAO,0DAAY,yCAAyC,qDAAqD,IAAI;AAC3J,wBAAwB,OAAO,0DAAY,2CAA2C,GAAG,OAAO,0DAAY,wCAAwC;AACpJ;AACA,IAAI,wDAAU;AACd;AACA,QAAQ,wDAAU,gBAAgB,0DAAY;AAC9C,QAAQ,wDAAU,uBAAuB,0DAAY;AACrD;AACA,IAAI,wDAAU;AACd;AACA,QAAQ,wDAAU,gBAAgB,0DAAY;AAC9C,QAAQ,wDAAU,uBAAuB,0DAAY;AACrD;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,OAAO,sDAAQ;AACxB;AACA;AACA;AACA;AACA,8BAA8B,4DAAY;AAC1C;AACA;AACA,iBAAiB;AACjB;AACA;AACA,CAAC;;AAED;AACA;AACA,cAAc,uEAAuE;AACrF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,OAAO,uDAAS;AACzB;AACA,iBAAiB;AACjB;AACA;AACA,wBAAwB,OAAO,yDAAW,6CAA6C;AACvF;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,OAAO,uDAAS;AACzB;AACA,iBAAiB;AACjB;AACA;AACA,wBAAwB,OAAO,yDAAW,+CAA+C;AACzF;AACA;AACA,CAAC;;AAED;AACA;AACA,cAAc,uEAAuE;AACrF;AACA,WAAW,EAAE;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,0DAAY;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,0DAAY;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC,0DAAY;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,0DAAY;AACnD;AACA,2BAA2B,wEAAY,iBAAiB,UAAU,mCAAmC,EAAE;AACvG,4BAA4B,wEAAY,eAAe,UAAU,kCAAkC,EAAE;AACrG;AACA;AACA;AACA,4BAA4B,4CAAO;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,gCAAgC,eAAe;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,eAAe;AAChD;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,mBAAmB,6BAA6B;AAChD;AACA,gCAAgC,eAAe;AAC/C;AACA,yDAAyD,UAAU,qBAAqB,EAAE;AAC1F,8DAA8D,UAAU,oBAAoB,EAAE;AAC9F;AACA;AACA;AACA;AACA,0BAA0B;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,6BAA6B;AAChD;AACA,iCAAiC,eAAe;AAChD;AACA,yDAAyD,UAAU,qBAAqB,EAAE;AAC1F,8DAA8D,UAAU,oBAAoB,EAAE;AAC9F;AACA;AACA;AACA;AACA,0BAA0B;AAC1B;AACA;AACA;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA,gBAAgB;AAChB;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,sCAAsC,gEAAS,wCAAwC,oCAAoC,EAAE;AAC7H;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA,2BAA2B,4BAA4B;AACvD;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB;AACnB;AACA;AACA;AACA;AACA,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA;AACA,mBAAmB;AACnB;AACA;AACA;AACA;AACA,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA,yCAAyC,gDAAgD;AACzF;AACA,0BAA0B,4BAA4B;AACtD;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB;AACnB;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,mBAAmB;AACnB;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB;AACnB;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,mBAAmB;AACnB;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,sCAAsC,6BAA6B;AACnE;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,uCAAuC,6BAA6B;AACpE;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,OAAO,uDAAS;AACzB;AACA,wVAAwV,SAAS,2LAA2L,WAAW,oQAAoQ,kBAAkB,sBAAsB,mBAAmB,2BAA2B,6BAA6B,kCAAkC,oBAAoB,sEAAsE,mBAAmB,4HAA4H,mBAAmB,sBAAsB,oBAAoB,2BAA2B,8BAA8B,kCAAkC,qBAAqB,uEAAuE,oBAAoB;AACj7C,iBAAiB;AACjB;AACA;AACA,qDAAqD;AACrD,SAAS,OAAO,wDAAU,EAAE;AAC5B,SAAS,2CAA2C,OAAO,sDAAQ,EAAE;AACrE,MAAM;AACN;AACA,qBAAqB,OAAO,uDAAS,8BAA8B,eAAe,IAAI;AACtF,cAAc,OAAO,yDAAW,sBAAsB,GAAG,OAAO,mDAAK,EAAE;AACvE,mBAAmB,OAAO,mDAAK,EAAE;AACjC,iBAAiB,OAAO,mDAAK,EAAE;AAC/B,mBAAmB,OAAO,mDAAK,EAAE;AACjC,2BAA2B,OAAO,mDAAK,EAAE;AACzC,0BAA0B,OAAO,mDAAK,EAAE;AACxC,2BAA2B,OAAO,mDAAK,EAAE;AACzC,qCAAqC,OAAO,mDAAK,EAAE;AACnD,4BAA4B,OAAO,mDAAK,EAAE;AAC1C,4BAA4B,OAAO,mDAAK,EAAE;AAC1C,2BAA2B,OAAO,mDAAK,EAAE;AACzC,4BAA4B,OAAO,mDAAK,EAAE;AAC1C,sCAAsC,OAAO,mDAAK,EAAE;AACpD,6BAA6B,OAAO,mDAAK,EAAE;AAC3C,gCAAgC,OAAO,mDAAK,EAAE;AAC9C,4BAA4B,OAAO,mDAAK,EAAE;AAC1C,kBAAkB,OAAO,oDAAM,EAAE;AACjC,mBAAmB,OAAO,oDAAM,EAAE;AAClC,8BAA8B,OAAO,oDAAM,EAAE;AAC7C,+BAA+B,OAAO,oDAAM,EAAE;AAC9C,oBAAoB,OAAO,yDAAW,4BAA4B;AAClE,kBAAkB,OAAO,mDAAK,EAAE;AAChC,uBAAuB,OAAO,yDAAW,uCAAuC;AAChF,gBAAgB,OAAO,mDAAK,EAAE;AAC9B,mBAAmB,OAAO,mDAAK,EAAE;AACjC;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,OAAO,sDAAQ;AACxB;AACA;AACA,8BAA8B,4DAAY;AAC1C,iBAAiB;AACjB;AACA;AACA,CAAC;;AAED;AACA;AACA,cAAc,uEAAuE;AACrF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA,sBAAsB,sDAAQ,GAAG;AACjC;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,uBAAuB,EAAE;AACzB;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA,gBAAgB;AAChB;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,OAAO,wDAAU;AAC1B;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA,yCAAyC,EAAE,OAAO;AAClD,wCAAwC,EAAE,OAAO;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA,uBAAuB,EAAE;AACzB,wEAAwE,0BAA0B,EAAE;AACpG;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA,oCAAoC,mBAAmB;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,uBAAuB,EAAE;AACzB;AACA;AACA,2BAA2B,EAAE;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA,iBAAiB,oDAAM;AACvB;AACA,2BAA2B,EAAE;AAC7B;AACA,iDAAiD,+BAA+B,EAAE;AAClF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C,oEAAoE,EAAE;AACjH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA,oCAAoC,6BAA6B;AACjE;AACA;AACA;AACA;AACA,8BAA8B,aAAa;AAC3C,qCAAqC,EAAE,mBAAmB,gBAAgB;AAC1E;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA,uCAAuC,uBAAuB;AAC9D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,gEAAgE,iCAAiC,EAAE;AACnG,mBAAmB,EAAE;AACrB,mGAAmG,gCAAgC,EAAE;AACrI;AACA;AACA;AACA;AACA;AACA,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB,yDAAyD,kCAAkC,EAAE;AAC7F,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,GAAG;AAClB,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,GAAG;AAClB,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,qCAAqC,sDAAQ;AAC7C,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB,uEAAuE,oBAAoB,EAAE;AAC7F;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC,+BAA+B,EAAE;AAC1E;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,yCAAyC,yCAAyC,EAAE;AACpF;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB,gEAAgE,kCAAkC,EAAE;AACpG,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,wEAAwE,iCAAiC,EAAE;AAC3G;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA,sEAAsE,mCAAmC,EAAE;AAC3G,gEAAgE,mCAAmC,EAAE;AACrG,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,gCAAgC;AAChC;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,8EAA8E,mCAAmC,EAAE;AACnH;AACA;AACA,gBAAgB;AAChB;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,uBAAuB,EAAE;AACzB;AACA;AACA,oDAAoD,kEAAkE,EAAE;AACxH,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB,+BAA+B,EAAE;AACjC;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,SAAS,OAAO,wDAAU;AAC1B;AACA;AACA,0DAA0D;AAC1D,SAAS,OAAO,oDAAM;AACtB,MAAM;AACN;AACA,CAAC;AACD;AACA,YAAY;AACZ;AACA;AACA;AACA;;AAEA;AACA;AACA,cAAc,uEAAuE;AACrF;AACA,WAAW,EAAE;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,eAAe;AACjD;AACA;AACA,yBAAyB;AACzB;AACA,kCAAkC,8BAA8B;AAChE;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA;AACA,iCAAiC,gBAAgB;AACjD;AACA;AACA;AACA;AACA;AACA,uBAAuB,EAAE;AACzB;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,EAAE;AACzB,+CAA+C,8BAA8B,wBAAwB,EAAE,EAAE;AACzG;AACA,gCAAgC,4BAA4B;AAC5D,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA,iDAAiD,EAAE;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,yEAAO;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gDAAgD,cAAc;AAC9D;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB;AACA;AACA;AACA;AACA,gDAAgD,cAAc;AAC9D;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB;AACA;AACA;AACA;AACA,gDAAgD,cAAc;AAC9D;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,mCAAmC,qCAAqC;AACxE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,uBAAuB,iCAAiC;AACxD;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,EAAE;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA,0BAA0B,sDAAQ,uCAAuC,UAAU;AACnF;AACA;AACA;AACA;AACA,uBAAuB,QAAQ,gBAAgB;AAC/C;AACA;AACA;AACA;AACA,qBAAqB,0BAA0B;AAC/C;AACA;AACA;AACA;AACA,SAAS,OAAO,wDAAU;AAC1B;AACA;AACA,wDAAwD;AACxD,SAAS,OAAO,oDAAM,EAAE;AACxB,SAAS,gCAAgC,OAAO,oDAAM,SAAS,wDAAQ,IAAI,GAAG;AAC9E,SAAS;AACT,MAAM;AACN;AACA,CAAC;;AAED;AACA;AACA,cAAc,uEAAuE;AACrF;AACA,WAAW,OAAO;AAClB;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,cAAc,uEAAuE;AACrF;AACA;AACA;AACA;AACA,wBAAwB,yBAAyB;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,EAAE;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,EAAE;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,2BAA2B,EAAE;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA,uBAAuB,EAAE;AACzB;AACA,uBAAuB,EAAE;AACzB;AACA,oBAAoB;AACpB,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA,uBAAuB,EAAE;AACzB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,2BAA2B,EAAE;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,EAAE;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6DAA6D,yCAAyC;AACtG,2DAA2D,0CAA0C;AACrG;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,gHAAgH,EAAE;AAClH,4BAA4B;AAC5B,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kFAAkF;AAClF;AACA;AACA;AACA,wCAAwC,2BAA2B;AACnE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,uBAAuB,EAAE;AACzB,wCAAwC,EAAE;AAC1C,uBAAuB,EAAE;AACzB,uCAAuC,EAAE;AACzC;AACA,6BAA6B,EAAE;AAC/B;AACA;AACA,6BAA6B,EAAE;AAC/B;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB,2BAA2B;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,EAAE;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,GAAG;AAClB,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,GAAG;AAClB,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,oCAAoC,sDAAQ;AAC5C,mCAAmC,0CAA0C,EAAE;AAC/E;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,SAAS,OAAO,uDAAS;AACzB,qCAAqC,qEAAuB;AAC5D;AACA,whBAAwhB,kLAAkL,mxCAAmxC;AAC79D;AACA,iBAAiB;AACjB;AACA;AACA,uDAAuD;AACvD,SAAS,gCAAgC;AACzC,SAAS,2BAA2B;AACpC,SAAS,2BAA2B;AACpC,SAAS,OAAO,+DAAiB,EAAE;AACnC,SAAS,OAAO,wDAAU,EAAE;AAC5B,SAAS,OAAO,oDAAM,EAAE;AACxB,SAAS,8BAA8B;AACvC,SAAS;AACT,MAAM;AACN;AACA,kBAAkB,OAAO,mDAAK,EAAE;AAChC,eAAe,OAAO,mDAAK,EAAE;AAC7B,mBAAmB,OAAO,mDAAK,EAAE;AACjC,wBAAwB,OAAO,mDAAK,EAAE;AACtC,iBAAiB,OAAO,mDAAK,EAAE;AAC/B,qBAAqB,OAAO,mDAAK,EAAE;AACnC,oBAAoB,OAAO,yDAAW,iCAAiC;AACvE,8BAA8B,OAAO,yDAAW,qCAAqC,GAAG,OAAO,mDAAK,EAAE;AACtG,6BAA6B,OAAO,mDAAK,EAAE;AAC3C,sBAAsB,OAAO,mDAAK,EAAE,GAAG,OAAO,yDAAW,8CAA8C;AACvG,oBAAoB,OAAO,mDAAK,EAAE,GAAG,OAAO,yDAAW,0CAA0C;AACjG,oBAAoB,OAAO,yDAAW,4BAA4B;AAClE,gBAAgB,OAAO,yDAAW,wBAAwB;AAC1D,oBAAoB,OAAO,yDAAW,iCAAiC;AACvE,uBAAuB,OAAO,yDAAW,sCAAsC;AAC/E,0BAA0B,OAAO,yDAAW,yCAAyC;AACrF,kBAAkB,OAAO,yDAAW,iCAAiC;AACrE,kBAAkB,OAAO,yDAAW,oCAAoC;AACxE,oBAAoB,OAAO,yDAAW,iCAAiC,GAAG,OAAO,yDAAW,mCAAmC;AAC/H,oBAAoB,OAAO,yDAAW,oCAAoC,GAAG,OAAO,yDAAW,sCAAsC;AACrI,uBAAuB,OAAO,yDAAW,oCAAoC;AAC7E,iBAAiB,OAAO,yDAAW,8BAA8B,GAAG,OAAO,yDAAW,8BAA8B,GAAG,OAAO,yDAAW,+BAA+B,GAAG,OAAO,mDAAK,EAAE;AACzL,oBAAoB,OAAO,yDAAW,iCAAiC,GAAG,OAAO,yDAAW,2CAA2C;AACvI,iBAAiB,OAAO,yDAAW,yCAAyC;AAC5E,mBAAmB,OAAO,yDAAW,yCAAyC;AAC9E,+BAA+B,OAAO,uDAAS,yBAAyB,OAAO,yDAAW,gBAAgB,IAAI;AAC9G,gCAAgC,OAAO,uDAAS,0BAA0B,OAAO,yDAAW,gBAAgB,IAAI;AAChH,qBAAqB,OAAO,uDAAS,qCAAqC,iDAAiD,IAAI;AAC/H,yBAAyB,OAAO,0DAAY,mCAAmC;AAC/E,mBAAmB,OAAO,0DAAY,gCAAgC;AACtE,yBAAyB,OAAO,0DAAY,sCAAsC;AAClF,mBAAmB,OAAO,0DAAY,gCAAgC;AACtE,kBAAkB,OAAO,0DAAY,mBAAmB;AACxD,yBAAyB,OAAO,0DAAY,kCAAkC;AAC9E;AACA,IAAI,wDAAU;AACd;AACA,QAAQ,wDAAU;AAClB,QAAQ,wDAAU;AAClB;AACA,IAAI,wDAAU;AACd;AACA,QAAQ,wDAAU;AAClB,QAAQ,wDAAU;AAClB,QAAQ,wDAAU;AAClB;AACA;AACA,CAAC;;AAED;AACA;AACA,cAAc,uEAAuE;AACrF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,uCAAuC;AACvC;AACA;AACA,SAAS;AACT;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA,6BAA6B,EAAE;AAC/B;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA,uBAAuB,EAAE;AACzB;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA,uBAAuB,EAAE;AACzB;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,2BAA2B,EAAE;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA,uBAAuB,EAAE;AACzB;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA,uBAAuB,EAAE;AACzB;AACA,uBAAuB,EAAE;AACzB;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA,SAAS,OAAO,wDAAU;AAC1B;AACA;AACA,kDAAkD;AAClD,SAAS,2BAA2B;AACpC,SAAS,2BAA2B;AACpC,SAAS,gCAAgC;AACzC,SAAS,OAAO,wDAAU,EAAE;AAC5B,SAAS,OAAO,+DAAiB;AACjC,MAAM;AACN;AACA,mBAAmB,OAAO,mDAAK,EAAE;AACjC,iBAAiB,OAAO,mDAAK,EAAE;AAC/B,kBAAkB,OAAO,mDAAK,EAAE;AAChC,sBAAsB,OAAO,uDAAS,uBAAuB,6CAA6C,IAAI;AAC9G,2BAA2B,OAAO,uDAAS,SAAS,gEAAU,cAAc,6BAA6B,EAAE,IAAI,4CAA4C,IAAI;AAC/J,iBAAiB,OAAO,0DAAY,SAAS,gEAAU,cAAc,6BAA6B,EAAE,KAAK;AACzG,gBAAgB,OAAO,yDAAW,wBAAwB;AAC1D,wBAAwB,OAAO,yDAAW,iCAAiC;AAC3E,wBAAwB,OAAO,yDAAW,oBAAoB;AAC9D,oBAAoB,OAAO,mDAAK,EAAE,GAAG,OAAO,yDAAW,iCAAiC;AACxF,mBAAmB,OAAO,0DAAY,gCAAgC;AACtE;AACA,IAAI,wDAAU;AACd;AACA,QAAQ,wDAAU;AAClB,QAAQ,wDAAU;AAClB;AACA;AACA,CAAC;;AAED;AACA;AACA,cAAc,uEAAuE;AACrF;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA,qDAAqD,yBAAyB,EAAE;AAChF,mBAAmB,EAAE;AACrB,8DAA8D,wBAAwB,EAAE;AACxF;AACA;AACA,uBAAuB,EAAE;AACzB;AACA,uBAAuB,EAAE;AACzB;AACA;AACA;AACA;AACA;AACA,+BAA+B,EAAE;AACjC,0CAA0C;AAC1C,sCAAsC,0DAAY;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA,qDAAqD,yBAAyB,EAAE;AAChF,mBAAmB,EAAE;AACrB,8DAA8D,wBAAwB,EAAE;AACxF;AACA,uBAAuB,EAAE;AACzB;AACA,uBAAuB,EAAE;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,YAAY;AACZ;AACA;AACA,6BAA6B,iBAAiB;AAC9C;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,qDAAqD,yBAAyB,EAAE;AAChF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,EAAE;AAC7B;AACA;;AAEA;AACA;AACA,cAAc,uEAAuE;AACrF;AACA;AACA;AACA,0BAA0B,4CAAO;AACjC;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,8CAA8C,4CAAO;AACrD;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,+CAA+C,4CAAO;AACtD;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA,cAAc,uEAAuE;AACrF;AACA,WAAW,EAAE;AACb,2BAA2B,gCAAgC;AAC3D,WAAW,EAAE;AACb,4BAA4B,eAAe;AAC3C,WAAW,EAAE;AACb,2BAA2B,4BAA4B;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,GAAG;AAClB,eAAe,GAAG;AAClB,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,GAAG;AAClB,eAAe,GAAG;AAClB,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA,8BAA8B,WAAW;AACzC;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA,IAAI,uDAAS;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,qGAAqG,uBAAuB,EAAE;AAC9H;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,qGAAqG,uBAAuB,EAAE;AAC9H;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,qGAAqG,gBAAgB,EAAE;AACvH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,GAAG;AAClB,eAAe,GAAG;AAClB,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,GAAG;AAClB,eAAe,GAAG;AAClB,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA,8BAA8B,WAAW;AACzC,iCAAiC,cAAc;AAC/C,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA,IAAI,uDAAS;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,2DAA2D,sDAAsD,EAAE;AACnH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,0DAA0D,sDAAsD,EAAE;AAClH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,GAAG;AAClB,eAAe,GAAG;AAClB,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,GAAG;AAClB,eAAe,GAAG;AAClB,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA,8BAA8B,WAAW;AACzC,iCAAiC,cAAc;AAC/C,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA,cAAc,uEAAuE;AACrF;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,OAAO,uDAAS;AACzB;AACA,iBAAiB;AACjB;AACA;AACA,iEAAiE;AACjE,SAAS,OAAO,yDAAW;AAC3B,MAAM;AACN;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA,SAAS,OAAO,uDAAS;AACzB;AACA,iBAAiB;AACjB;AACA;AACA,2DAA2D;AAC3D,SAAS,OAAO,yDAAW;AAC3B,MAAM;AACN;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA,SAAS,OAAO,uDAAS;AACzB;AACA,iBAAiB;AACjB;AACA;AACA,iEAAiE;AACjE,SAAS,OAAO,yDAAW;AAC3B,MAAM;AACN;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,OAAO,uDAAS;AACzB;AACA,iBAAiB;AACjB;AACA;AACA,iEAAiE;AACjE,SAAS,OAAO,yDAAW;AAC3B,MAAM;AACN;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA,SAAS,OAAO,uDAAS;AACzB;AACA,iBAAiB;AACjB;AACA;AACA,iEAAiE;AACjE,SAAS,OAAO,yDAAW;AAC3B,MAAM;AACN;AACA,CAAC;;AAED;AACA;AACA,cAAc,uEAAuE;AACrF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,0DAAY;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,0DAAY;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,0DAAY;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,4CAAO;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA,uBAAuB,EAAE;AACzB;AACA,uBAAuB,EAAE;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA,uBAAuB,EAAE;AACzB;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA,6BAA6B,EAAE;AAC/B;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,gEAAgE;AAChE;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gEAAgE;AAChE;AACA;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,+DAA+D,yBAAyB;AACxF;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+DAA+D,yBAAyB;AACxF;AACA;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,0BAA0B,KAAK;AAC/B;AACA;AACA;AACA;AACA,yCAAyC,mBAAmB;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,KAAK;AAC/B;AACA;AACA;AACA;AACA,0CAA0C,mBAAmB;AAC7D;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C,cAAc;AAC1D;AACA;AACA;AACA;AACA,2CAA2C,mBAAmB;AAC9D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C,cAAc;AAC1D;AACA;AACA;AACA;AACA,4CAA4C,mBAAmB;AAC/D;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iDAAiD,mBAAmB;AACpE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kDAAkD,mBAAmB;AACrE;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C,mBAAmB;AAClE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gDAAgD,mBAAmB;AACnE;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,4DAA4D,uCAAuC,EAAE;AACrG;AACA;AACA,6DAA6D,yCAAyC,EAAE;AACxG;AACA,aAAa,0BAA0B,oBAAoB,EAAE;AAC7D,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,EAAE;AACzB,iFAAiF,uBAAuB,EAAE;AAC1G,uBAAuB,EAAE;AACzB,6EAA6E,uBAAuB,EAAE;AACtG,uBAAuB,EAAE;AACzB;AACA,uBAAuB,EAAE;AACzB;AACA;AACA,kCAAkC,EAAE,2CAA2C,uBAAuB,EAAE;AACxG;AACA;AACA,6EAA6E,2BAA2B,EAAE;AAC1G;AACA;AACA,2BAA2B,EAAE;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA,uBAAuB,EAAE;AACzB;AACA,uBAAuB,EAAE;AACzB;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA,+BAA+B,EAAE;AACjC,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,uBAAuB,EAAE;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,EAAE;AACzB;AACA,uBAAuB,EAAE;AACzB;AACA,uBAAuB,EAAE;AACzB;AACA,uBAAuB,EAAE;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uEAAuE,8CAA8C;AACrH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sFAAsF,2CAA2C;AACjI;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,uBAAuB,wBAAwB;AAC/C;AACA,2BAA2B,EAAE;AAC7B;AACA;AACA,sBAAsB,iEAAiE;AACvF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,EAAE;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,uBAAuB,wBAAwB;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,qBAAqB,4BAA4B;AACjD;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA,uBAAuB,wBAAwB;AAC/C;AACA,8BAA8B,0CAA0C;AACxE;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,uBAAuB,oBAAoB;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB,gCAAgC,EAAE;AAClC,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uDAAuD,oBAAoB,EAAE;AAC7E;AACA;AACA;AACA;AACA;AACA,mDAAmD,uBAAuB,EAAE,wBAAwB,mCAAmC,EAAE;AACzI;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB,gCAAgC,EAAE;AAClC,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uDAAuD,sBAAsB,EAAE;AAC/E;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA;AACA,mDAAmD,uBAAuB,EAAE,wBAAwB,mCAAmC,EAAE;AACzI;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA,uBAAuB,EAAE;AACzB;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,oEAAoE,gCAAgC,EAAE;AACtG,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,wEAAwE,oCAAoC,EAAE;AAC9G,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,2EAA2E,qCAAqC,EAAE;AAClH,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA;AACA,uBAAuB,EAAE;AACzB;AACA;AACA,oDAAoD,kEAAkE,EAAE;AACxH;AACA;AACA,uEAAuE,uDAAuD,EAAE;AAChI;AACA,uBAAuB,EAAE;AACzB,0EAA0E,sDAAQ;AAClF,uBAAuB,EAAE;AACzB;AACA,uBAAuB,EAAE;AACzB;AACA;AACA,6CAA6C,sDAAQ;AACrD;AACA;AACA,uBAAuB,EAAE;AACzB;AACA;AACA,kDAAkD,sDAAQ;AAC1D,2CAA2C,0CAA0C,EAAE;AACvF;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,EAAE;AACzB;AACA,uBAAuB,EAAE;AACzB;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB,+CAA+C,sDAAQ;AACvD,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA,uBAAuB,EAAE;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA,uBAAuB,EAAE;AACzB,iDAAiD,EAAE;AACnD,uBAAuB,EAAE;AACzB;AACA,gCAAgC,EAAE;AAClC,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,gBAAgB;AAChB;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,OAAO,uDAAS;AACzB,qCAAqC,qEAAuB;AAC5D;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,qDAAqD;AACrD,SAAS,2BAA2B;AACpC,SAAS,OAAO,+DAAiB,EAAE;AACnC,SAAS;AACT,MAAM;AACN;AACA,iBAAiB,OAAO,mDAAK,EAAE;AAC/B,kBAAkB,OAAO,mDAAK,EAAE;AAChC,oBAAoB,OAAO,mDAAK,EAAE;AAClC,qBAAqB,OAAO,mDAAK,EAAE;AACnC,oBAAoB,OAAO,mDAAK,EAAE;AAClC,sBAAsB,OAAO,mDAAK,EAAE;AACpC,qBAAqB,OAAO,mDAAK,EAAE;AACnC,sBAAsB,OAAO,mDAAK,EAAE;AACpC,kBAAkB,OAAO,mDAAK,EAAE;AAChC,wBAAwB,OAAO,oDAAM,EAAE;AACvC,yBAAyB,OAAO,mDAAK,EAAE;AACvC,0BAA0B,OAAO,mDAAK,EAAE;AACxC,mBAAmB,OAAO,mDAAK,EAAE;AACjC,iBAAiB,OAAO,mDAAK,EAAE;AAC/B,uBAAuB,OAAO,oDAAM,EAAE;AACtC,oBAAoB,OAAO,mDAAK,EAAE;AAClC,oBAAoB,OAAO,mDAAK,EAAE;AAClC,yBAAyB,OAAO,mDAAK,EAAE;AACvC,8BAA8B,OAAO,mDAAK,EAAE;AAC5C,uBAAuB,OAAO,mDAAK,EAAE;AACrC,sBAAsB,OAAO,mDAAK,EAAE;AACpC,qBAAqB,OAAO,mDAAK,EAAE;AACnC,+BAA+B,OAAO,mDAAK,EAAE;AAC7C,6BAA6B,OAAO,mDAAK,EAAE;AAC3C,oBAAoB,OAAO,mDAAK,EAAE;AAClC,kBAAkB,OAAO,mDAAK,EAAE;AAChC,wBAAwB,OAAO,oDAAM,EAAE;AACvC,qBAAqB,OAAO,mDAAK,EAAE;AACnC,sBAAsB,OAAO,mDAAK,EAAE;AACpC,mBAAmB,OAAO,mDAAK,EAAE;AACjC,wBAAwB,OAAO,mDAAK,EAAE;AACtC,4BAA4B,OAAO,mDAAK,EAAE;AAC1C,wBAAwB,OAAO,mDAAK,2BAA2B;AAC/D,0BAA0B,OAAO,mDAAK,EAAE;AACxC,gCAAgC,OAAO,mDAAK,iCAAiC;AAC7E,8BAA8B,OAAO,mDAAK,iCAAiC;AAC3E,kBAAkB,OAAO,mDAAK,EAAE;AAChC,kBAAkB,OAAO,mDAAK,EAAE;AAChC,oBAAoB,OAAO,mDAAK,EAAE;AAClC,oBAAoB,OAAO,mDAAK,EAAE;AAClC,wBAAwB,OAAO,0DAAY,oCAAoC,gDAAgD,IAAI;AACnI,wBAAwB,OAAO,6DAAe,0CAA0C,2DAA2D,IAAI;AACvJ,0BAA0B,OAAO,0DAAY,0CAA0C,sDAAsD,IAAI;AACjJ,uCAAuC,OAAO,0DAAY,0CAA0C,sDAAsD,IAAI;AAC9J;AACA,IAAI,wDAAU;AACd;AACA;AACA,QAAQ,wDAAU;AAClB;AACA,IAAI,wDAAU;AACd;AACA,QAAQ,wDAAU;AAClB;AACA,IAAI,wDAAU;AACd;AACA;AACA,QAAQ,wDAAU;AAClB;AACA,IAAI,wDAAU;AACd;AACA,QAAQ,wDAAU;AAClB,QAAQ,wDAAU;AAClB;AACA,IAAI,wDAAU;AACd;AACA;AACA,QAAQ,wDAAU;AAClB;AACA,IAAI,wDAAU;AACd;AACA,QAAQ,wDAAU;AAClB;AACA,IAAI,wDAAU;AACd;AACA;AACA,QAAQ,wDAAU;AAClB,QAAQ,wDAAU;AAClB;AACA,IAAI,wDAAU;AACd;AACA;AACA,QAAQ,wDAAU;AAClB,QAAQ,wDAAU;AAClB;AACA,IAAI,wDAAU;AACd;AACA;AACA,QAAQ,wDAAU;AAClB;AACA,IAAI,wDAAU;AACd;AACA;AACA,QAAQ,wDAAU;AAClB;AACA,IAAI,wDAAU;AACd;AACA;AACA,QAAQ,wDAAU;AAClB;AACA,IAAI,wDAAU;AACd;AACA;AACA,QAAQ,wDAAU;AAClB,QAAQ,wDAAU;AAClB;AACA,IAAI,wDAAU;AACd;AACA,QAAQ,wDAAU;AAClB;AACA,IAAI,wDAAU;AACd;AACA;AACA,QAAQ,wDAAU;AAClB,QAAQ,wDAAU;AAClB;AACA,IAAI,wDAAU;AACd;AACA;AACA,QAAQ,wDAAU;AAClB;AACA,IAAI,wDAAU;AACd;AACA;AACA,QAAQ,wDAAU;AAClB;AACA,IAAI,wDAAU;AACd;AACA;AACA,QAAQ,wDAAU;AAClB;AACA,IAAI,wDAAU;AACd;AACA;AACA,QAAQ,wDAAU;AAClB;AACA,IAAI,wDAAU;AACd;AACA;AACA,QAAQ,wDAAU;AAClB;AACA,IAAI,wDAAU;AACd;AACA,QAAQ,wDAAU;AAClB;AACA,IAAI,wDAAU;AACd;AACA,QAAQ,wDAAU;AAClB;AACA,IAAI,wDAAU;AACd;AACA,QAAQ,wDAAU;AAClB,QAAQ,wDAAU;AAClB;AACA,IAAI,wDAAU;AACd;AACA,QAAQ,wDAAU;AAClB;AACA,IAAI,wDAAU;AACd;AACA;AACA,QAAQ,wDAAU;AAClB,QAAQ,wDAAU;AAClB;AACA,IAAI,wDAAU;AACd;AACA;AACA,QAAQ,wDAAU;AAClB;AACA,IAAI,wDAAU;AACd;AACA;AACA,QAAQ,wDAAU,gBAAgB,yDAAW;AAC7C,QAAQ,wDAAU,uBAAuB,yDAAW;AACpD;AACA,IAAI,wDAAU;AACd;AACA;AACA,QAAQ,wDAAU,gBAAgB,yDAAW;AAC7C,QAAQ,wDAAU,uBAAuB,yDAAW;AACpD;AACA,IAAI,wDAAU;AACd;AACA;AACA,QAAQ,wDAAU,gBAAgB,yDAAW;AAC7C,QAAQ,wDAAU,uBAAuB,yDAAW;AACpD;AACA,IAAI,wDAAU;AACd;AACA;AACA,QAAQ,wDAAU,gBAAgB,yDAAW;AAC7C,QAAQ,wDAAU,uBAAuB,yDAAW;AACpD;AACA;AACA,CAAC;AACD;AACA,IAAI,uDAAS;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,uDAAS;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,0DAAY;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA,6BAA6B,EAAE;AAC/B;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA,6BAA6B,EAAE;AAC/B;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA,6BAA6B,EAAE;AAC/B;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA,6BAA6B,EAAE;AAC/B;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA,wDAAwD,iBAAiB,EAAE;AAC3E,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA;AACA;AACA,oDAAoD,6BAA6B,EAAE;AACnF,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,mCAAmC,gEAAS;AAC5C;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA,uBAAuB,EAAE;AACzB;AACA,uBAAuB,EAAE;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,SAAS;AACT;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA,wBAAwB,EAAE;AAC1B;AACA;AACA,KAAK;AACL;AACA,SAAS,OAAO,uDAAS;AACzB,qCAAqC,qEAAuB;AAC5D,iCAAiC,2CAA2C,gEAAU,cAAc,gCAAgC,EAAE,GAAG;AACzI;AACA;AACA,iBAAiB;AACjB;AACA;AACA,0DAA0D;AAC1D,SAAS,2BAA2B;AACpC,SAAS,OAAO,+DAAiB,EAAE;AACnC,SAAS;AACT,MAAM;AACN;AACA,oBAAoB,OAAO,6DAAe,8BAA8B,2BAA2B,IAAI;AACvG,qBAAqB,OAAO,mDAAK,EAAE;AACnC,sBAAsB,OAAO,mDAAK,EAAE;AACpC,mBAAmB,OAAO,mDAAK,EAAE;AACjC,kBAAkB,OAAO,mDAAK,EAAE;AAChC,wBAAwB,OAAO,oDAAM,EAAE;AACvC;AACA;AACA,CAAC;AACD;AACA,IAAI,uDAAS;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA,uBAAuB,EAAE;AACzB,kGAAkG,gCAAgC,EAAE;AACpI;AACA,SAAS;AACT;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA,wBAAwB,EAAE;AAC1B;AACA;AACA,KAAK;AACL;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA,uBAAuB,EAAE;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA,uBAAuB,EAAE;AACzB,iFAAiF,oCAAoC,EAAE;AACvH,uBAAuB,EAAE;AACzB,6EAA6E,oCAAoC,EAAE;AACnH,uBAAuB,EAAE;AACzB;AACA;AACA,2BAA2B,EAAE;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA;AACA,oDAAoD,6BAA6B,EAAE;AACnF;AACA;AACA,uDAAuD,sBAAsB,EAAE,wBAAwB,mCAAmC,EAAE;AAC5I;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,8DAA8D,iBAAiB,EAAE;AACjF;AACA;AACA,oDAAoD,oCAAoC,EAAE;AAC1F;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA,wDAAwD,2BAA2B,EAAE;AACrF,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA,kCAAkC,oCAAoC,EAAE;AACxE,mCAAmC,oHAAoH,EAAE;AACzJ;AACA,uBAAuB,EAAE;AACzB;AACA,uBAAuB,EAAE;AACzB;AACA;AACA,uBAAuB,EAAE;AACzB;AACA;AACA,aAAa;AACb;AACA,+CAA+C,+BAA+B;AAC9E,SAAS;AACT;AACA;AACA,SAAS,OAAO,uDAAS;AACzB,qCAAqC,qEAAuB;AAC5D,iCAAiC,2CAA2C,gEAAU,cAAc,iCAAiC,EAAE,GAAG;AAC1I;AACA;AACA,iBAAiB;AACjB;AACA;AACA,kBAAkB,OAAO,mDAAK,EAAE;AAChC;AACA;AACA,CAAC;;AAED;AACA;AACA,cAAc,uEAAuE;AACrF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA,uBAAuB,EAAE;AACzB;AACA;AACA,uBAAuB,EAAE;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA,uBAAuB,EAAE;AACzB;AACA,uBAAuB,EAAE;AACzB;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA,uBAAuB,EAAE;AACzB;AACA;AACA,2BAA2B,EAAE;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA;AACA,uBAAuB,EAAE;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,EAAE;AACrC;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,EAAE;AACrC;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB,uEAAuE,2BAA2B,EAAE;AACpG;AACA,uBAAuB,EAAE;AACzB;AACA,uBAAuB,EAAE;AACzB;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB,8BAA8B,sDAAQ;AACtC,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,EAAE;AACzB;AACA,uBAAuB,EAAE;AACzB;AACA;AACA,2BAA2B,EAAE;AAC7B;AACA,2BAA2B,EAAE;AAC7B;AACA,2BAA2B,EAAE;AAC7B;AACA,2BAA2B,EAAE;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,uBAAuB,EAAE;AACzB;AACA,uBAAuB,EAAE;AACzB;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS,OAAO,wDAAU;AAC1B;AACA;AACA,2DAA2D;AAC3D,SAAS,OAAO,oDAAM;AACtB,MAAM;AACN;AACA,CAAC;;AAED;AACA;AACA,cAAc,uEAAuE;AACrF;AACA,WAAW,EAAE;AACb;AACA,WAAW,EAAE;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,4CAAO;AACnC;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,gBAAgB,sDAAS,gDAAgD,mEAAY,iBAAiB,gEAAS;AAC/G;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB,aAAa;AACb,YAAY,sDAAS,6CAA6C,mEAAY,iBAAiB,gEAAS;AACxG;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,OAAO,uDAAS;AACzB;AACA,iBAAiB;AACjB;AACA;AACA,2DAA2D;AAC3D,SAAS,OAAO,oDAAM,EAAE;AACxB,SAAS,OAAO,wDAAU,EAAE;AAC5B,SAAS;AACT,MAAM;AACN;AACA,kBAAkB,OAAO,mDAAK,8BAA8B;AAC5D,uBAAuB,OAAO,0DAAY,wBAAwB;AAClE,yBAAyB,OAAO,0DAAY,uBAAuB;AACnE;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,4CAAO;AACpC,+BAA+B,4CAAO;AACtC,0BAA0B,4CAAO;AACjC,4BAA4B,4CAAO;AACnC,8BAA8B,0DAAG,mBAAmB,sBAAsB,EAAE,GAAG,gEAAS,iBAAiB,gEAAS,oBAAoB,0BAA0B,0DAAG,mBAAmB,+BAA+B,EAAE,GAAG,gEAAS,mBAAmB,gEAAS,kBAAkB,EAAE;AACnR,uBAAuB,EAAE;AACzB;AACA,uBAAuB,EAAE;AACzB;AACA,uBAAuB,EAAE;AACzB;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,gBAAgB;AAChB;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA,YAAY,sDAAS,+CAA+C,+DAAQ,cAAc,QAAQ,qDAAQ,IAAI,4DAAuB,EAAE,EAAE,GAAG,gEAAS,4CAA4C,+BAA+B,EAAE;AAClO,YAAY,sDAAS,6CAA6C,gEAAS;AAC3E,2CAA2C,6BAA6B,EAAE;AAC1E,SAAS;AACT;AACA;AACA,gBAAgB;AAChB;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA;AACA,+CAA+C,4DAA4D,EAAE;AAC7G,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA;AACA,+CAA+C,2DAA2D,EAAE;AAC5G,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,OAAO,uDAAS;AACzB;AACA,iBAAiB;AACjB;AACA;AACA,4DAA4D;AAC5D,SAAS,OAAO,wDAAU,EAAE;AAC5B,SAAS,gCAAgC,OAAO,oDAAM,SAAS,wDAAQ,IAAI,GAAG;AAC9E,SAAS,OAAO,oDAAM;AACtB,MAAM;AACN;AACA,8BAA8B,OAAO,mDAAK,EAAE;AAC5C,8BAA8B,OAAO,mDAAK,EAAE;AAC5C,qBAAqB,OAAO,oDAAM,EAAE;AACpC,uBAAuB,OAAO,oDAAM,EAAE;AACtC,kBAAkB,OAAO,oDAAM,EAAE;AACjC;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA,SAAS,OAAO,wDAAU;AAC1B;AACA,iBAAiB;AACjB;AACA,gEAAgE,wEAAkB,EAAE,qDAAqD,qCAAqC,EAAE,qDAAqD;AACrO;AACA,CAAC;AACD,WAAW,OAAO;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,uDAAS;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA,gBAAgB;AAChB;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA,6BAA6B,sDAAS;AACtC;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,EAAE;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,OAAO,uDAAS;AACzB;AACA,iBAAiB;AACjB;AACA;AACA,+DAA+D;AAC/D,SAAS,OAAO,wDAAU,EAAE;AAC5B,SAAS,OAAO,8DAAgB,EAAE;AAClC,SAAS,OAAO,oDAAM,EAAE;AACxB,SAAS,OAAO,uDAAS,EAAE;AAC3B,SAAS,OAAO,+DAAiB,EAAE;AACnC,SAAS;AACT,MAAM;AACN;AACA,gBAAgB,OAAO,mDAAK,kCAAkC;AAC9D;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA,IAAI,uDAAS;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,4CAAO;AACtC;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA,gBAAgB;AAChB;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,EAAE;AACzB;AACA,uBAAuB,EAAE;AACzB;AACA,uBAAuB,EAAE;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,EAAE;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,qDAAQ,WAAW,gEAAS;AACxC;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,EAAE;AACzB;AACA;AACA;AACA;AACA,uBAAuB,EAAE;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,OAAO,uDAAS;AACzB;AACA,iBAAiB;AACjB;AACA;AACA,+DAA+D;AAC/D,SAAS,OAAO,wDAAU,EAAE;AAC5B,SAAS,OAAO,uDAAS,EAAE;AAC3B,SAAS,OAAO,oDAAM,EAAE;AACxB,SAAS;AACT,MAAM;AACN;AACA,gBAAgB,OAAO,mDAAK,kCAAkC;AAC9D;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA,SAAS,OAAO,uDAAS;AACzB;AACA;AACA,iBAAiB;AACjB;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA,IAAI,uDAAS;AACb;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,OAAO,kDAAI;AACpB;AACA,iBAAiB;AACjB;AACA;AACA,uDAAuD;AACvD,SAAS,6BAA6B,OAAO,oDAAM,SAAS,uDAAS,IAAI;AACzE,MAAM;AACN;AACA,CAAC,CAAC,wDAAQ;AACV;AACA;AACA;AACA;AACA,IAAI,uDAAS;AACb;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,OAAO,kDAAI;AACpB;AACA,iBAAiB;AACjB;AACA;AACA,0DAA0D;AAC1D,SAAS,6BAA6B,OAAO,oDAAM,SAAS,uDAAS,IAAI;AACzE,MAAM;AACN;AACA,CAAC,CAAC,2DAAW;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,uDAAS;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,GAAG;AAClB,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,GAAG;AAClB,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA,mBAAmB,EAAE;AACrB,iCAAiC,EAAE;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8DAA8D,yDAAyD;AACvH;AACA;AACA,CAAC;;AAED;AACA;AACA,cAAc,uEAAuE;AACrF;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,0DAAY;AAC5C;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA,oCAAoC,0CAA0C;AAC9E;AACA;AACA;AACA,iBAAiB,OAAO,mDAAK,EAAE;AAC/B,wBAAwB,OAAO,oDAAM,EAAE;AACvC;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA,IAAI,uDAAS;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA,kBAAkB,OAAO,mDAAK,EAAE;AAChC,uBAAuB,OAAO,mDAAK,EAAE;AACrC,qBAAqB,OAAO,mDAAK,EAAE;AACnC;AACA;AACA,CAAC;;AAED;AACA;AACA,cAAc,uEAAuE;AACrF;AACA;AACA;AACA;AACA;AACA,IAAI,uDAAS;AACb;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA,SAAS,OAAO,uDAAS;AACzB;AACA,iBAAiB;AACjB;AACA;AACA,+DAA+D,WAAW;AAC1E;AACA,CAAC;;AAED;AACA;AACA,cAAc,uEAAuE;AACrF;AACA,WAAW,OAAO;AAClB;AACA;AACA;AACA;AACA;AACA,IAAI,uDAAS;AACb;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA,oDAAoD,EAAE;AACtD;AACA;AACA;AACA;AACA,gEAAgE,EAAE;AAClE,6DAA6D,EAAE;AAC/D,iBAAiB;AACjB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA,0BAA0B,sDAAQ,uCAAuC,UAAU;AACnF;AACA;AACA;AACA;AACA,uBAAuB,QAAQ,gBAAgB;AAC/C;AACA;AACA;AACA;AACA,qBAAqB,0BAA0B;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,EAAE;AAC7B;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,mBAAmB,OAAO,mDAAK,EAAE;AACjC,iBAAiB,OAAO,mDAAK,EAAE;AAC/B,+BAA+B,OAAO,mDAAK,EAAE;AAC7C,yBAAyB,OAAO,mDAAK,EAAE;AACvC,uBAAuB,OAAO,mDAAK,EAAE;AACrC,0BAA0B,OAAO,mDAAK,EAAE;AACxC,8BAA8B,OAAO,mDAAK,EAAE;AAC5C,gCAAgC,OAAO,mDAAK,EAAE;AAC9C,oBAAoB,OAAO,yDAAW,yBAAyB;AAC/D;AACA;AACA,CAAC;;AAED;AACA;AACA,cAAc,uEAAuE;AACrF;AACA;AACA,IAAI,uDAAS;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA8C,0DAAY;AAC1D,6BAA6B,4CAAO;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0FAA0F,kBAAkB,EAAE;AAC9G;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA,+FAA+F,mBAAmB,EAAE;AACpH;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA,wEAAwE,mBAAmB,EAAE;AAC7F,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA,2DAA2D,sBAAsB,EAAE;AACnF,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA,+BAA+B,gEAAS;AACxC,uCAAuC,+CAA+C;AACtF,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA,oCAAoC,sDAAQ,mDAAmD,sBAAsB;AACrH;AACA;AACA;AACA;AACA,uBAAuB,QAAQ,gBAAgB;AAC/C;AACA;AACA;AACA;AACA,qBAAqB,0BAA0B;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA,oCAAoC,sDAAQ,mDAAmD,sBAAsB;AACrH;AACA;AACA;AACA;AACA,uBAAuB,QAAQ,gBAAgB;AAC/C;AACA;AACA;AACA;AACA,qBAAqB,0BAA0B;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,OAAO,uDAAS;AACzB;AACA;AACA,8IAA8I,SAAS,8yBAA8yB,mBAAmB,0KAA0K,eAAe,wGAAwG,eAAe;AACxwC,iBAAiB;AACjB;AACA;AACA,2DAA2D;AAC3D,SAAS,OAAO,+DAAiB;AACjC,MAAM;AACN;AACA,0BAA0B,OAAO,mDAAK,EAAE;AACxC,0BAA0B,OAAO,mDAAK,EAAE;AACxC,uBAAuB,OAAO,mDAAK,EAAE;AACrC,uBAAuB,OAAO,mDAAK,EAAE;AACrC,qCAAqC,OAAO,oDAAM,EAAE;AACpD;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,OAAO,sDAAQ;AACxB;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,4DAAY;AACpC,wBAAwB,0DAAW;AACnC;AACA,iBAAiB;AACjB;AACA;AACA,CAAC;;AAED;AACA;AACA,cAAc,uEAAuE;AACrF;AACA;AACA,IAAI,uDAAS;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA,SAAS,OAAO,uDAAS;AACzB;AACA,iBAAiB;AACjB;AACA;AACA,gEAAgE,WAAW;AAC3E;AACA,CAAC;AACD;AACA,IAAI,uDAAS;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,OAAO,uDAAS;AACzB;AACA;AACA,gJAAgJ,SAAS,wpBAAwpB,mBAAmB;AACp0B,iBAAiB;AACjB;AACA;AACA,4DAA4D;AAC5D,SAAS,OAAO,+DAAiB;AACjC,MAAM;AACN;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,OAAO,sDAAQ;AACxB;AACA;AACA;AACA;AACA;AACA,wBAAwB,4DAAY;AACpC,wBAAwB,0DAAW;AACnC;AACA,iBAAiB;AACjB;AACA;AACA,CAAC;;AAED;AACA;AACA,cAAc,uEAAuE;AACrF;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,uDAAS;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA,uBAAuB,EAAE;AACzB;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA,kEAAkE,0BAA0B,EAAE;AAC9F,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA,SAAS,OAAO,uDAAS;AACzB;AACA,oGAAoG,cAAc,mKAAmK,kpBAAkpB,qDAAqD,uiBAAuiB,2BAA2B,iCAAiC,0BAA0B,09BAA09B,sBAAsB,iCAAiC,0BAA0B,w1BAAw1B,mBAAmB,uZAAuZ,wBAAwB,2LAA2L,sBAAsB;AAC/mI,iBAAiB;AACjB;AACA;AACA,0DAA0D;AAC1D,SAAS,2BAA2B;AACpC,SAAS,OAAO,+DAAiB,EAAE;AACnC,SAAS,8CAA8C,OAAO,sDAAQ,EAAE,GAAG;AAC3E,SAAS,4CAA4C,OAAO,sDAAQ,EAAE,GAAG;AACzE,SAAS,gCAAgC,OAAO,sDAAQ,EAAE,GAAG,OAAO,oDAAM,gCAAgC;AAC1G,MAAM;AACN;AACA,kBAAkB,OAAO,yDAAW,qCAAqC,GAAG,OAAO,mDAAK,EAAE;AAC1F,+BAA+B,OAAO,mDAAK,EAAE;AAC7C,qCAAqC,OAAO,mDAAK,EAAE;AACnD,gCAAgC,OAAO,uDAAS,kCAAkC,4CAA4C,IAAI;AAClI,0BAA0B,OAAO,uDAAS,oCAAoC,gBAAgB,IAAI;AAClG,8BAA8B,OAAO,uDAAS,gCAAgC,0CAA0C,IAAI;AAC5H,0BAA0B,OAAO,uDAAS,4BAA4B,4CAA4C,IAAI;AACtH,wBAAwB,OAAO,uDAAS,uBAAuB,0CAA0C,IAAI;AAC7G,iCAAiC,OAAO,uDAAS,mCAAmC,4CAA4C,IAAI;AACpI,2BAA2B,OAAO,uDAAS,qCAAqC,gBAAgB,IAAI;AACpG,+BAA+B,OAAO,uDAAS,iCAAiC,0CAA0C,IAAI;AAC9H,qBAAqB,OAAO,yDAAW,yBAAyB;AAChE;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,OAAO,uDAAS;AACzB;AACA,iBAAiB;AACjB;AACA;AACA,uEAAuE;AACvE,SAAS,OAAO,yDAAW;AAC3B,MAAM;AACN;AACA,CAAC;;AAED;AACA;AACA,cAAc,uEAAuE;AACrF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,OAAO,uDAAS;AACzB;AACA,iBAAiB;AACjB;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,OAAO,uDAAS;AACzB;AACA,iBAAiB;AACjB;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,OAAO,uDAAS;AACzB;AACA,iBAAiB;AACjB;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,EAAE;AACzB,yEAAyE,wDAAwD,EAAE;AACnI;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA,uBAAuB,EAAE;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,OAAO,uDAAS;AACzB;AACA,iBAAiB;AACjB;AACA;AACA,6DAA6D;AAC7D,SAAS,2BAA2B;AACpC,SAAS,OAAO,wDAAU;AAC1B,MAAM;AACN;AACA,qBAAqB,OAAO,0DAAY,sCAAsC,GAAG,OAAO,0DAAY,4CAA4C;AAChJ,wBAAwB,OAAO,0DAAY,yCAAyC;AACpF;AACA;AACA,CAAC;;AAED;AACA;AACA,cAAc,uEAAuE;AACrF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA,uBAAuB,EAAE;AACzB;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA,uBAAuB,EAAE;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB,2BAA2B;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA,mBAAmB,EAAE;AACrB,mEAAmE;AACnE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA,uBAAuB,EAAE;AACzB;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,EAAE;AAC7B;AACA,2BAA2B,EAAE;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,GAAG;AAClB,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,GAAG;AAClB,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA,+BAA+B,eAAe;AAC9C,6BAA6B,aAAa;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,SAAS,OAAO,uDAAS;AACzB,qCAAqC,qEAAuB;AAC5D;AACA;AACA,kMAAkM,WAAW,kBAAkB,4NAA4N,WAAW,sBAAsB,gkBAAgkB,4DAA4D,4GAA4G,2EAA2E,kBAAkB,sMAAsM,2BAA2B,oKAAoK,yBAAyB;AAC/rD,iBAAiB;AACjB;AACA;AACA,6DAA6D;AAC7D,SAAS,2BAA2B;AACpC,SAAS,gCAAgC;AACzC,SAAS,OAAO,wDAAU,EAAE;AAC5B,SAAS,OAAO,+DAAiB;AACjC,MAAM;AACN;AACA,0CAA0C,OAAO,uDAAS,4CAA4C,OAAO,yDAAW,gBAAgB,IAAI;AAC5I,2CAA2C,OAAO,uDAAS,6CAA6C,OAAO,yDAAW,gBAAgB,IAAI;AAC9I,qBAAqB,OAAO,mDAAK,EAAE;AACnC,iBAAiB,OAAO,mDAAK,EAAE;AAC/B,kBAAkB,OAAO,mDAAK,EAAE;AAChC,oBAAoB,OAAO,mDAAK,EAAE;AAClC,wBAAwB,OAAO,uDAAS,0BAA0B,eAAe,IAAI;AACrF,oBAAoB,OAAO,yDAAW,iCAAiC;AACvE,oBAAoB,OAAO,yDAAW,4BAA4B;AAClE,uBAAuB,OAAO,yDAAW,oCAAoC;AAC7E,wBAAwB,OAAO,yDAAW,iCAAiC;AAC3E,wBAAwB,OAAO,yDAAW,oBAAoB;AAC9D,mBAAmB,OAAO,0DAAY,oBAAoB;AAC1D,kBAAkB,OAAO,0DAAY,mBAAmB;AACxD,qBAAqB,OAAO,0DAAY,kCAAkC;AAC1E;AACA;AACA,CAAC;;AAED;AACA;AACA,cAAc,uEAAuE;AACrF;AACA,WAAW,OAAO;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB,iEAAiE,+BAA+B,EAAE;AAClG;AACA,sEAAsE,+BAA+B,EAAE;AACvG;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB,oEAAoE,oEAAoE,EAAE;AAC1I,+FAA+F,uBAAuB,EAAE;AACxH;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB,+DAA+D,uBAAuB,EAAE,uBAAuB,yCAAyC,EAAE;AAC1J;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA,mBAAmB,sDAAQ,0EAA0E,uBAAuB,EAAE;AAC9H,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,mBAAmB;AAC9C,uBAAuB,EAAE;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA,mCAAmC,mBAAmB;AACtD,mBAAmB,EAAE;AACrB;AACA,2BAA2B,EAAE;AAC7B;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA,oEAAoE;AACpE;AACA;AACA,wEAAwE,sBAAsB;AAC9F;AACA;AACA,iEAAiE,sBAAsB;AACvF;AACA,8BAA8B,4DAAO;AACrC;AACA,4EAA4E,sBAAsB;AAClG,qBAAqB;AACrB;AACA;AACA;AACA;AACA,kDAAkD,sBAAsB;AACxE;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA,6DAA6D,sBAAsB;AACnF;AACA;AACA;AACA;AACA;AACA,kDAAkD,sBAAsB;AACxE;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA,6BAA6B,EAAE;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA,6BAA6B,EAAE;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA,mCAAmC,mBAAmB;AACtD,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB,sDAAsD,+BAA+B,EAAE;AACvF,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA,6BAA6B,sBAAsB;AACnD;AACA;AACA,yDAAyD,sBAAsB;AAC/E;AACA,sBAAsB,4DAAO;AAC7B;AACA;AACA,iCAAiC,sBAAsB;AACvD,aAAa;AACb;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA;AACA,mCAAmC,mBAAmB;AACtD,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB,sDAAsD,+BAA+B,EAAE;AACvF;AACA;AACA;AACA;AACA;AACA,uBAAuB,EAAE;AACzB;AACA,iDAAiD,sBAAsB;AACvE;AACA;AACA,yDAAyD,sBAAsB;AAC/E;AACA,sBAAsB,4DAAO;AAC7B;AACA,2BAA2B,EAAE;AAC7B;AACA,qDAAqD,sBAAsB;AAC3E,aAAa;AACb;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA;AACA,uBAAuB,EAAE;AACzB;AACA,yBAAyB,EAAE;AAC3B;AACA;AACA,yDAAyD,sBAAsB;AAC/E;AACA;AACA,sBAAsB,4DAAO;AAC7B,2BAA2B,EAAE;AAC7B;AACA;AACA,iCAAiC,EAAE;AACnC;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,4CAA4C,yCAAyC,EAAE;AACvF;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA,uBAAuB,EAAE;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA,uBAAuB,EAAE;AACzB;AACA,yBAAyB,EAAE;AAC3B;AACA;AACA,yDAAyD,sBAAsB;AAC/E;AACA;AACA,sBAAsB,4DAAO;AAC7B,2BAA2B,EAAE;AAC7B;AACA;AACA,iCAAiC,EAAE;AACnC;AACA,aAAa;AACb;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA,yDAAyD,sBAAsB;AAC/E;AACA;AACA,sBAAsB,4DAAO;AAC7B;AACA,2BAA2B,EAAE;AAC7B;AACA,2BAA2B,EAAE;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA,qDAAqD,sBAAsB;AAC3E;AACA,uBAAuB,EAAE;AACzB;AACA;AACA;AACA,sBAAsB,4DAAO;AAC7B;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,EAAE;AACzB;AACA;AACA,2BAA2B,EAAE;AAC7B;AACA,2BAA2B,EAAE;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA,yDAAyD,sBAAsB;AAC/E;AACA;AACA,sBAAsB,4DAAO;AAC7B;AACA,aAAa;AACb;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA,uBAAuB,EAAE;AACzB;AACA,uBAAuB,EAAE;AACzB;AACA;AACA;AACA;AACA,yDAAyD,sBAAsB;AAC/E;AACA;AACA,sBAAsB,4DAAO;AAC7B,2BAA2B,EAAE;AAC7B;AACA;AACA,+BAA+B,EAAE;AACjC;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA,uBAAuB,EAAE;AACzB;AACA,uBAAuB,EAAE;AACzB,kCAAkC,EAAE;AACpC;AACA;AACA;AACA;AACA,uBAAuB,EAAE;AACzB;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,4DAAO;AAC7B,2BAA2B,EAAE;AAC7B;AACA,2BAA2B,EAAE;AAC7B,sCAAsC,EAAE;AACxC;AACA;AACA;AACA;AACA,2BAA2B,EAAE;AAC7B;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,EAAE;AACzB,+DAA+D,mCAAmC,EAAE;AACpG,uDAAuD,mCAAmC,EAAE;AAC5F,gEAAgE,mCAAmC,EAAE;AACrG;AACA;AACA;AACA;AACA;AACA,iDAAiD,2BAA2B;AAC5E;AACA;AACA;AACA,uBAAuB,EAAE;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA,uBAAuB,EAAE;AACzB;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,yDAAyD,kDAAkD,EAAE;AAC7G;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB,oFAAoF,6CAA6C,EAAE;AACnI;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA,8DAA8D,6CAA6C,EAAE;AAC7G;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA,uBAAuB,EAAE;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB,wEAAwE,sBAAsB,EAAE;AAChG,oEAAoE,mCAAmC,EAAE;AACzG,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA;AACA;AACA,kBAAkB,4DAAO;AACzB;AACA,SAAS;AACT;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,GAAG;AAClB,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,GAAG;AAClB,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA;AACA,mCAAmC,mBAAmB;AACtD,mBAAmB,EAAE;AACrB;AACA,qDAAqD,sBAAsB;AAC3E;AACA,kBAAkB,4DAAO;AACzB;AACA;AACA;AACA;AACA;AACA,2BAA2B,EAAE;AAC7B;AACA;AACA,uCAAuC,sBAAsB;AAC7D;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA,kCAAkC,kCAAkC;AACpE;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA,eAAe,GAAG;AAClB,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,GAAG;AAClB,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA,mCAAmC,mBAAmB;AACtD;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,SAAS,OAAO,wDAAU;AAC1B;AACA;AACA,CAAC;;AAED;AACA;AACA,cAAc,uEAAuE;AACrF;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,cAAc,uEAAuE;AACrF;AACA,WAAW,EAAE;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,4CAAO;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA,oBAAoB;AACpB;AACA;AACA,oEAAoE,2CAA2C,EAAE;AACjH,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA,oBAAoB;AACpB;AACA;AACA,oEAAoE,yBAAyB,EAAE;AAC/F,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,2CAA2C,gEAAS;AACpD;AACA,aAAa;AACb,qDAAqD,gEAAS;AAC9D;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,6CAA6C,gEAAS;AACtD;AACA;AACA,iBAAiB;AACjB,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA,qCAAqC,oBAAoB;AACzD;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,GAAG;AAClB,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,GAAG;AAClB,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA,uBAAuB,EAAE;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,EAAE;AAC7B,sDAAsD,EAAE;AACxD;AACA;AACA;AACA;AACA,2CAA2C,sEAAsE,EAAE;AACnH;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA,uBAAuB,EAAE;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C,8CAA8C,EAAE;AAC3F;AACA,uBAAuB,EAAE;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,2CAA2C,6EAA6E,EAAE;AAC1H;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,mCAAmC,sDAAQ,oCAAoC,iBAAiB;AAChG;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,QAAQ,gBAAgB;AACnD;AACA;AACA;AACA;AACA,yBAAyB,0BAA0B;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,uBAAuB,EAAE;AACzB,gEAAgE,+BAA+B,EAAE;AACjG,uBAAuB,EAAE;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,EAAE;AAC7B,qEAAqE,0BAA0B,EAAE;AACjG;AACA;AACA;AACA,+BAA+B,EAAE;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA,0CAA0C,yBAAyB;AACnE,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA,uBAAuB,4BAA4B;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB,4DAA4D,+BAA+B,EAAE;AAC7F,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,uCAAuC,sBAAsB;AAC7D;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA,2BAA2B,qCAAqC;AAChE;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,EAAE;AACzB,8CAA8C,EAAE;AAChD;AACA,2BAA2B,EAAE;AAC7B;AACA;AACA;AACA;AACA,uBAAuB,EAAE;AACzB;AACA,2BAA2B,8CAA8C;AACzE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA,uBAAuB,0CAA0C;AACjE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,EAAE;AACzB,8CAA8C,EAAE;AAChD,2BAA2B,8CAA8C;AACzE;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,EAAE;AACzB;AACA,4CAA4C,EAAE;AAC9C;AACA,uBAAuB,EAAE;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,uBAAuB,6CAA6C;AACpE;AACA;AACA,2BAA2B,EAAE;AAC7B,2CAA2C,EAAE;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,OAAO,wDAAU;AAC1B;AACA;AACA,sDAAsD;AACtD,SAAS,2BAA2B;AACpC,SAAS;AACT,MAAM;AACN;AACA,CAAC;;AAED;AACA;AACA,cAAc,uEAAuE;AACrF;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,OAAO,uDAAS;AACzB;AACA,iBAAiB;AACjB;AACA;AACA,8EAA8E;AAC9E,SAAS,OAAO,yDAAW;AAC3B,MAAM;AACN;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA;AACA,8BAA8B,EAAE;AAChC;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA,gBAAgB;AAChB;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,gBAAgB;AAChB;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,0EAA0E,gCAAgC,EAAE;AAC5G;AACA;AACA;AACA,+EAA+E,+BAA+B,EAAE;AAChH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA,uBAAuB,EAAE;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA,SAAS,OAAO,uDAAS;AACzB,qCAAqC,qEAAuB;AAC5D;AACA;AACA,m5BAAm5B,gCAAgC,wBAAwB,oWAAoW,cAAc;AAC7zC,iBAAiB;AACjB;AACA;AACA,+DAA+D;AAC/D,SAAS,OAAO,+DAAiB;AACjC,MAAM;AACN;AACA,gBAAgB,OAAO,mDAAK,EAAE;AAC9B,gBAAgB,OAAO,mDAAK,EAAE;AAC9B,kBAAkB,OAAO,mDAAK,EAAE;AAChC,uBAAuB,OAAO,uDAAS,mBAAmB,wCAAwC,IAAI;AACtG,0BAA0B,OAAO,mDAAK,EAAE;AACxC,mBAAmB,OAAO,uDAAS,6BAA6B,eAAe,IAAI;AACnF,kDAAkD,OAAO,uDAAS,oDAAoD,OAAO,yDAAW,gBAAgB,IAAI;AAC5J;AACA;AACA,CAAC;;AAED;AACA;AACA,cAAc,uEAAuE;AACrF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,0DAAY;AACnD,0CAA0C,0DAAY;AACtD;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA,gBAAgB;AAChB;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,2CAA2C,yCAAyC,EAAE;AACtF;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB,iCAAiC,EAAE;AACnC;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC,EAAE;AACxC,aAAa;AACb;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC,EAAE;AACxC,aAAa;AACb;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,OAAO,uDAAS;AACzB,qCAAqC,qEAAuB;AAC5D;AACA;AACA,+dAA+d,iCAAiC,08DAA08D,qDAAqD,wUAAwU,oDAAoD;AAC33F,iBAAiB;AACjB;AACA;AACA,0EAA0E;AAC1E,SAAS,OAAO,+DAAiB;AACjC,MAAM;AACN;AACA,kBAAkB,OAAO,mDAAK,EAAE;AAChC,wBAAwB,OAAO,mDAAK,EAAE;AACtC,2BAA2B,OAAO,mDAAK,EAAE;AACzC,gBAAgB,OAAO,mDAAK,EAAE;AAC9B,0BAA0B,OAAO,mDAAK,EAAE;AACxC,+BAA+B,OAAO,oDAAM,EAAE;AAC9C,kCAAkC,OAAO,oDAAM,EAAE;AACjD,gCAAgC,OAAO,uDAAS,kCAAkC,6CAA6C,IAAI;AACnI,gCAAgC,OAAO,uDAAS,yBAAyB,wCAAwC,IAAI;AACrH,8BAA8B,OAAO,uDAAS,gCAAgC,2CAA2C,IAAI;AAC7H,oCAAoC,OAAO,uDAAS,sCAAsC,+CAA+C,IAAI;AAC7I;AACA;AACA,CAAC;;AAED;AACA;AACA,cAAc,uEAAuE;AACrF;AACA;AACA;AACA;AACA;AACA,IAAI,uDAAS;AACb;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA,SAAS,OAAO,uDAAS;AACzB,qCAAqC,qEAAuB;AAC5D;AACA;AACA,+dAA+d,iCAAiC,s2EAAs2E,qDAAqD,wUAAwU,oDAAoD;AACvxG,iBAAiB;AACjB;AACA;AACA,sBAAsB,OAAO,uDAAS,wBAAwB,6CAA6C,IAAI;AAC/G,0BAA0B,OAAO,mDAAK,EAAE;AACxC;AACA;AACA,CAAC;;AAED;AACA;AACA,cAAc,uEAAuE;AACrF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA,gBAAgB;AAChB;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA,gBAAgB;AAChB;AACA;AACA,+EAA+E;AAC/E,yHAAyH,EAAE;AAC3H;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA,wDAAwD,6BAA6B,EAAE;AACvF,4DAA4D,6BAA6B,EAAE;AAC3F;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS,OAAO,uDAAS;AACzB,qCAAqC,qEAAuB;AAC5D;AACA;AACA,uHAAuH,wKAAwK,sPAAsP,8DAA8D,iCAAiC,uQAAuQ,opBAAopB,ytBAAytB,yDAAyD,0MAA0M,2DAA2D,0HAA0H,8CAA8C,wLAAwL,6CAA6C;AACn7F,iBAAiB;AACjB;AACA;AACA,qEAAqE;AACrE,SAAS,OAAO,+DAAiB;AACjC,MAAM;AACN;AACA,2BAA2B,OAAO,mDAAK,EAAE;AACzC,kBAAkB,OAAO,mDAAK,EAAE;AAChC,4BAA4B,OAAO,mDAAK,EAAE;AAC1C,4BAA4B,OAAO,mDAAK,EAAE;AAC1C,8BAA8B,OAAO,mDAAK,EAAE;AAC5C,0BAA0B,OAAO,mDAAK,EAAE;AACxC,0BAA0B,OAAO,mDAAK,EAAE;AACxC,gCAAgC,OAAO,0DAAY,oDAAoD;AACvG,oCAAoC,OAAO,0DAAY,iDAAiD;AACxG,kBAAkB,OAAO,uDAAS,oBAAoB,yCAAyC,IAAI;AACnG,qCAAqC,OAAO,uDAAS,uCAAuC,OAAO,yDAAW,iBAAiB,IAAI;AACnI,kCAAkC,OAAO,uDAAS,oCAAoC,OAAO,yDAAW,iBAAiB,IAAI;AAC7H,gCAAgC,OAAO,uDAAS,kCAAkC,eAAe,IAAI;AACrG;AACA;AACA,CAAC;;AAED;AACA;AACA,cAAc,uEAAuE;AACrF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,qEAAqE;AACjG;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,OAAO,uDAAS;AACzB,qCAAqC,qEAAuB;AAC5D;AACA;AACA,+CAA+C,6DAA6D,iTAAiT,+KAA+K,yQAAyQ,0LAA0L;AAC/gC,iBAAiB;AACjB;AACA;AACA,gEAAgE,WAAW;AAC3E;AACA,kBAAkB,OAAO,mDAAK,EAAE;AAChC,gBAAgB,OAAO,mDAAK,EAAE;AAC9B,0BAA0B,OAAO,mDAAK,EAAE;AACxC,2BAA2B,OAAO,uDAAS,6BAA6B,8CAA8C,IAAI;AAC1H;AACA;AACA,CAAC;;AAED;AACA;AACA,cAAc,uEAAuE;AACrF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA,SAAS,OAAO,uDAAS;AACzB;AACA,iBAAiB;AACjB;AACA;AACA,wEAAwE;AACxE,SAAS,OAAO,yDAAW;AAC3B,MAAM;AACN;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA,SAAS,OAAO,uDAAS;AACzB;AACA,iBAAiB;AACjB;AACA;AACA,uEAAuE;AACvE,SAAS,OAAO,yDAAW;AAC3B,MAAM;AACN;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA,SAAS,OAAO,uDAAS;AACzB;AACA,iBAAiB;AACjB;AACA;AACA,uEAAuE;AACvE,SAAS,OAAO,yDAAW;AAC3B,MAAM;AACN;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA,SAAS,OAAO,uDAAS;AACzB;AACA,iBAAiB;AACjB;AACA;AACA,wEAAwE;AACxE,SAAS,OAAO,yDAAW;AAC3B,MAAM;AACN;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,4CAAO;AACnC;AACA;AACA;AACA;AACA,gCAAgC,iDAAY;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA,gBAAgB;AAChB;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,EAAE;AACzB,wEAAwE,8CAA8C,EAAE;AACxH;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,gBAAgB;AAChB;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0DAA0D,gEAAS;AACnE;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,kDAAkD,sCAAsC;AACxF;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA,uBAAuB,EAAE;AACzB;AACA,uBAAuB,EAAE;AACzB;AACA,uBAAuB,EAAE;AACzB;AACA,uBAAuB,EAAE;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,EAAE;AACzB;AACA;AACA;AACA;AACA;AACA,2BAA2B,kCAAkC;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA,uBAAuB,EAAE;AACzB;AACA,4CAA4C,uCAAuC,EAAE;AACrF;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,gBAAgB;AAChB;AACA;AACA,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA;AACA,uBAAuB,EAAE;AACzB,yBAAyB;AACzB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA,wCAAwC,uFAAuF,EAAE;AACjI,wCAAwC,4BAA4B,EAAE;AACtE;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA,sCAAsC,sBAAsB;AAC5D;AACA;AACA;AACA,2BAA2B,sDAAQ,8BAA8B,EAAE;AACnE;AACA,qBAAqB;AACrB;AACA,uBAAuB,sDAAQ;AAC/B,aAAa;AACb;AACA;AACA;AACA;AACA,2BAA2B,sDAAQ,8BAA8B,EAAE;AACnE;AACA,uBAAuB,sDAAQ;AAC/B,aAAa;AACb;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C,6BAA6B,EAAE;AAC3E;AACA,wEAAwE,wBAAwB,EAAE;AAClG;AACA;AACA;AACA;AACA;AACA,0BAA0B,EAAE;AAC5B;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA;AACA,0BAA0B,sDAAQ,wDAAwD,UAAU;AACpG;AACA;AACA,+BAA+B,EAAE;AACjC,qDAAqD,EAAE;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,QAAQ,gBAAgB;AAC/C;AACA;AACA;AACA;AACA,qBAAqB,0BAA0B;AAC/C;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,EAAE;AACzB;AACA;AACA;AACA,uFAAuF,iDAAiD,EAAE;AAC1I;AACA;AACA;AACA,6FAA6F,kDAAkD,EAAE;AACjJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA,2BAA2B,EAAE;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,EAAE;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA,gBAAgB;AAChB;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB,+FAA+F,+BAA+B,EAAE;AAChI,mBAAmB,EAAE;AACrB,8FAA8F,gCAAgC,EAAE;AAChI;AACA;AACA;AACA,+BAA+B,EAAE;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB,iBAAiB;AACjB;AACA;AACA,2BAA2B,EAAE;AAC7B,4EAA4E,kDAAkD,EAAE;AAChI,2BAA2B,EAAE;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wDAAwD,6FAA6F,EAAE;AACvJ,wDAAwD,gBAAgB,EAAE;AAC1E,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA,2BAA2B,EAAE;AAC7B,6BAA6B,EAAE;AAC/B;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,OAAO,uDAAS;AACzB,qCAAqC,qEAAuB;AAC5D;AACA;AACA,0GAA0G,8JAA8J,iJAAiJ,iCAAiC,85EAA85E,2CAA2C,kTAAkT,6CAA6C,qhBAAqhB,4CAA4C,gfAAgf,oDAAoD,0VAA0V,eAAe,ugBAAugB,8CAA8C,wJAAwJ,6CAA6C,4eAA4e,iCAAiC,qMAAqM,qDAAqD;AACjrM,iBAAiB;AACjB;AACA;AACA,sEAAsE;AACtE,SAAS,OAAO,+DAAiB;AACjC,MAAM;AACN;AACA,qBAAqB,OAAO,yDAAW,qCAAqC;AAC5E,wBAAwB,OAAO,uDAAS,sBAAsB,OAAO,wDAAU,gBAAgB,IAAI;AACnG,mBAAmB,OAAO,uDAAS,qBAAqB,2CAA2C,IAAI;AACvG,wBAAwB,OAAO,uDAAS,0BAA0B,yDAAyD,IAAI;AAC/H,4BAA4B,OAAO,uDAAS,8BAA8B,mDAAmD,IAAI;AACjI,6BAA6B,OAAO,uDAAS,+BAA+B,qDAAqD,IAAI;AACrI,4CAA4C,OAAO,uDAAS,8CAA8C,OAAO,yDAAW,gBAAgB,IAAI;AAChJ,2CAA2C,OAAO,uDAAS,6CAA6C,OAAO,yDAAW,gBAAgB,IAAI;AAC9I,2CAA2C,OAAO,uDAAS,6CAA6C,OAAO,yDAAW,gBAAgB,IAAI;AAC9I,4CAA4C,OAAO,uDAAS,8CAA8C,OAAO,yDAAW,gBAAgB,IAAI;AAChJ;AACA;AACA,CAAC;;AAED;AACA;AACA,cAAc,uEAAuE;AACrF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,4CAAO;AACpC;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,uBAAuB,EAAE;AACzB;AACA;AACA;AACA;AACA,uBAAuB,EAAE;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,sDAAQ,yCAAyC,UAAU;AACzF;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,QAAQ,gBAAgB;AACnD;AACA;AACA;AACA;AACA,yBAAyB,0BAA0B;AACnD;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA,gBAAgB;AAChB;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,mBAAmB,EAAE;AACrB,2EAA2E,2CAA2C,EAAE;AACxH;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,gEAAgE,8CAA8C,EAAE;AAChH,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA,wBAAwB;AACxB,gDAAgD;AAChD;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,uBAAuB,EAAE;AACzB;AACA,uBAAuB,EAAE;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,2BAA2B,wEAAY;AACvC;AACA;AACA;AACA,aAAa;AACb,4BAA4B,wEAAY;AACxC;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C,6DAAM,qBAAqB,iDAAiD,EAAE,GAAG,gEAAS;AACtI;AACA,SAAS;AACT,2CAA2C,6DAAM,qBAAqB,iDAAiD,EAAE,GAAG,gEAAS;AACrI;AACA,SAAS;AACT;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB,mCAAmC,EAAE;AACrC;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,SAAS,OAAO,uDAAS;AACzB,qCAAqC,qEAAuB;AAC5D;AACA;AACA,wHAAwH,iCAAiC,oKAAoK,WAAW,mCAAmC,0QAA0Q,aAAa;AACloB,iBAAiB;AACjB;AACA;AACA,yDAAyD;AACzD,SAAS,2BAA2B;AACpC,SAAS,iCAAiC;AAC1C,SAAS,OAAO,+DAAiB,EAAE;AACnC,SAAS,OAAO,wDAAU,EAAE;AAC5B,SAAS,OAAO,oDAAM,EAAE;AACxB,SAAS,4BAA4B;AACrC,SAAS,OAAO,yDAAW,EAAE;AAC7B,SAAS,wCAAwC,OAAO,oDAAM,8BAA8B;AAC5F,MAAM;AACN;AACA,kBAAkB,OAAO,mDAAK,EAAE;AAChC,kBAAkB,OAAO,mDAAK,EAAE;AAChC,wBAAwB,OAAO,yDAAW,oBAAoB;AAC9D,kBAAkB,OAAO,yDAAW,+BAA+B;AACnE,oBAAoB,OAAO,yDAAW,wBAAwB;AAC9D,oBAAoB,OAAO,yDAAW,4BAA4B;AAClE,oBAAoB,OAAO,yDAAW,sBAAsB;AAC5D,mBAAmB,OAAO,0DAAY,gCAAgC;AACtE;AACA;AACA,CAAC;;AAED;AACA;AACA,cAAc,uEAAuE;AACrF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,EAAE;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,sBAAsB;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA,oCAAoC,oBAAoB;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA,oDAAoD,4BAA4B,EAAE;AAClF;AACA;AACA;AACA;AACA;AACA,uBAAuB,EAAE;AACzB;AACA,uBAAuB,EAAE;AACzB;AACA,uBAAuB,EAAE;AACzB;AACA,uBAAuB,EAAE;AACzB;AACA,uBAAuB,EAAE;AACzB;AACA;AACA,+BAA+B,sCAAsC;AACrE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C,iCAAiC;AAC5E;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,2BAA2B,sDAAsD;AACjF;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,2BAA2B,sDAAsD;AACjF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,OAAO,uDAAS;AACzB,qCAAqC,qEAAuB;AAC5D;AACA;AACA,kbAAkb,uDAAuD,uOAAuO,iBAAiB,mBAAmB,2kBAA2kB,gDAAgD,6JAA6J,0DAA0D,2iBAA2iB,+DAA+D,uFAAuF;AACvwE,iBAAiB;AACjB;AACA;AACA,gEAAgE;AAChE,SAAS,OAAO,+DAAiB,EAAE;AACnC,SAAS,4BAA4B;AACrC,SAAS;AACT,MAAM;AACN;AACA,kBAAkB,OAAO,mDAAK,EAAE;AAChC,uBAAuB,OAAO,uDAAS,yBAAyB,OAAO,yDAAW,gBAAgB,IAAI;AACtG,yBAAyB,OAAO,uDAAS,2BAA2B,OAAO,yDAAW,gBAAgB,IAAI;AAC1G,yBAAyB,OAAO,uDAAS,2BAA2B,OAAO,yDAAW,gBAAgB,IAAI;AAC1G,qBAAqB,OAAO,uDAAS,uBAAuB,6CAA6C,IAAI;AAC7G,oBAAoB,OAAO,uDAAS,sBAAsB,OAAO,wDAAU,iBAAiB,IAAI;AAChG,qBAAqB,OAAO,uDAAS,uBAAuB,wCAAwC,IAAI;AACxG,uBAAuB,OAAO,uDAAS,yBAAyB,wCAAwC,IAAI;AAC5G,oBAAoB,OAAO,yDAAW,6CAA6C;AACnF,wBAAwB,OAAO,0DAAY,sCAAsC;AACjF,6BAA6B,OAAO,0DAAY,4CAA4C;AAC5F;AACA;AACA,CAAC;;AAED;AACA;AACA,cAAc,uEAAuE;AACrF;AACA,WAAW,EAAE;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,uBAAuB,EAAE;AACzB;AACA;AACA;AACA;AACA,uBAAuB,EAAE;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,sDAAQ,yCAAyC,UAAU;AACzF;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,QAAQ,gBAAgB;AACnD;AACA;AACA;AACA;AACA,yBAAyB,0BAA0B;AACnD;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA,kEAAkE,2BAA2B,EAAE;AAC/F,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,SAAS,OAAO,uDAAS;AACzB,qCAAqC,qEAAuB;AAC5D;AACA;AACA,oRAAoR,sDAAsD,sBAAsB,qPAAqP,6sBAA6sB,eAAe,gQAAgQ,sDAAsD,gSAAgS,WAAW,mCAAmC;AACr7D,iBAAiB;AACjB;AACA;AACA,8DAA8D;AAC9D,SAAS,OAAO,+DAAiB,EAAE;AACnC,SAAS,2BAA2B;AACpC,SAAS,OAAO,wDAAU,EAAE;AAC5B,SAAS,iCAAiC;AAC1C,SAAS;AACT,MAAM;AACN;AACA,uBAAuB,OAAO,yDAAW,sCAAsC;AAC/E,0BAA0B,OAAO,yDAAW,yCAAyC;AACrF,kBAAkB,OAAO,yDAAW,iCAAiC;AACrE,kBAAkB,OAAO,yDAAW,oCAAoC;AACxE,oBAAoB,OAAO,yDAAW,iCAAiC,GAAG,OAAO,yDAAW,mCAAmC;AAC/H,oBAAoB,OAAO,yDAAW,oCAAoC,GAAG,OAAO,yDAAW,sCAAsC;AACrI,kBAAkB,OAAO,mDAAK,EAAE;AAChC,kBAAkB,OAAO,mDAAK,EAAE;AAChC,sBAAsB,OAAO,uDAAS,kCAAkC,gBAAgB,IAAI;AAC5F,sBAAsB,OAAO,uDAAS,yCAAyC,gBAAgB,IAAI;AACnG,oBAAoB,OAAO,0DAAY,SAAS,gEAAU,cAAc,oCAAoC,EAAE,IAAI,oCAAoC,IAAI;AAC1J,iBAAiB,OAAO,yDAAW,8BAA8B,GAAG,OAAO,yDAAW,+BAA+B;AACrH,wBAAwB,OAAO,yDAAW,oBAAoB;AAC9D,kBAAkB,OAAO,yDAAW,4BAA4B;AAChE,6BAA6B,OAAO,yDAAW,4BAA4B;AAC3E,uBAAuB,OAAO,0DAAY,oCAAoC;AAC9E;AACA;AACA,CAAC;;AAED;AACA;AACA,cAAc,uEAAuE;AACrF;AACA,WAAW,EAAE;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,cAAc,uEAAuE;AACrF;AACA,WAAW,EAAE;AACb;AACA;AACA;AACA;;AAEA;AACA;AACA,cAAc,uEAAuE;AACrF;AACA,WAAW,EAAE;AACb;AACA;AACA;;AAEA;AACA;AACA,cAAc,uEAAuE;AACrF;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,WAAW,EAAE;AACb,YAAY;AACZ;AACA;AACA;AACA;AACA,sBAAsB,sDAAQ,0CAA0C,UAAU;AAClF;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,QAAQ,gBAAgB;AAC3C;AACA;AACA;AACA;AACA,iBAAiB,0BAA0B;AAC3C;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,YAAY;AACZ;AACA;AACA;AACA;AACA,sBAAsB,sDAAQ,sDAAsD,UAAU;AAC9F;AACA;AACA;AACA;AACA,mBAAmB,QAAQ,gBAAgB;AAC3C;AACA;AACA;AACA;AACA,iBAAiB,0BAA0B;AAC3C;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA,WAAW,sDAAQ,GAAG;AACtB;;AAEA;AACA;AACA,cAAc,uEAAuE;AACrF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,EAAE;AACzB;AACA;AACA;AACA;AACA,uBAAuB,EAAE;AACzB,qFAAqF,2CAA2C,EAAE;AAClI;AACA;AACA;AACA,uBAAuB,EAAE;AACzB;AACA,mEAAmE,uBAAuB,EAAE;AAC5F;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,EAAE;AACzB;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,oDAAoD,sCAAsC,EAAE;AAC5F,uBAAuB,EAAE;AACzB;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oDAAoD,uBAAuB,EAAE;AAC7E;AACA,+FAA+F,wBAAwB,EAAE;AACzH;AACA,SAAS;AACT;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,qBAAqB,EAAE;AACvB;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA,uFAAuF,yBAAyB,EAAE;AAClH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mFAAmF,yBAAyB,EAAE;AAC9G;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA,uBAAuB,EAAE;AACzB,gFAAgF,sCAAsC,EAAE;AACxH;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,uBAAuB,EAAE;AACzB;AACA,0FAA0F,uBAAuB,EAAE;AACnH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB,uEAAuE,6CAA6C,EAAE;AACtH,mBAAmB,EAAE;AACrB,mBAAmB;AACnB;AACA;AACA,yCAAyC;AACzC;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,mBAAmB,EAAE;AACrB,6EAA6E,yBAAyB,EAAE;AACxG,mBAAmB,EAAE;AACrB;AACA;AACA,uBAAuB,EAAE;AACzB;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,EAAE;AACzB;AACA;AACA;AACA;AACA;AACA,4CAA4C,kBAAkB,EAAE;AAChE;AACA;AACA;AACA;AACA,iBAAiB;AACjB,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA,SAAS,OAAO,wDAAU;AAC1B;AACA;AACA,CAAC;;AAED;AACA;AACA,cAAc,uEAAuE;AACrF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA,gBAAgB;AAChB;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA,gCAAgC,EAAE;AAClC,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,+CAA+C,qCAAqC,EAAE;AACtF;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,SAAS,OAAO,uDAAS;AACzB,qCAAqC,qEAAuB;AAC5D;AACA;AACA,8XAA8X,sBAAsB,8UAA8U,iBAAiB,KAAK,6BAA6B,4EAA4E,yBAAyB,2BAA2B,0LAA0L;AAC/kC,iBAAiB;AACjB;AACA;AACA,0DAA0D;AAC1D,SAAS,OAAO,wDAAU;AAC1B,MAAM;AACN;AACA,0BAA0B,OAAO,mDAAK,EAAE;AACxC,kBAAkB,OAAO,mDAAK,EAAE;AAChC,gCAAgC,OAAO,mDAAK,EAAE;AAC9C,sBAAsB,OAAO,mDAAK,EAAE;AACpC,mBAAmB,OAAO,mDAAK,EAAE;AACjC,oBAAoB,OAAO,mDAAK,EAAE,GAAG,OAAO,yDAAW,iCAAiC;AACxF,8BAA8B,OAAO,yDAAW,qCAAqC;AACrF,oBAAoB,OAAO,yDAAW,4BAA4B;AAClE,sBAAsB,OAAO,yDAAW,oCAAoC;AAC5E,mBAAmB,OAAO,yDAAW,6CAA6C;AAClF,mBAAmB,OAAO,0DAAY,oBAAoB;AAC1D,kBAAkB,OAAO,0DAAY,mBAAmB;AACxD,yBAAyB,OAAO,0DAAY,kCAAkC;AAC9E,iBAAiB,OAAO,yDAAW,8BAA8B,GAAG,OAAO,yDAAW,8BAA8B,GAAG,OAAO,yDAAW,+BAA+B;AACxK;AACA;AACA,CAAC;;AAED;AACA;AACA,cAAc,uEAAuE;AACrF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA,gBAAgB;AAChB;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA,SAAS,OAAO,uDAAS;AACzB,qCAAqC,qEAAuB;AAC5D;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,yDAAyD;AACzD,SAAS,2BAA2B;AACpC,SAAS,OAAO,wDAAU,EAAE;AAC5B,SAAS,OAAO,+DAAiB;AACjC,MAAM;AACN;AACA,qBAAqB,OAAO,mDAAK,EAAE;AACnC,kBAAkB,OAAO,mDAAK,EAAE;AAChC,iBAAiB,OAAO,mDAAK,EAAE;AAC/B,gCAAgC,OAAO,mDAAK,EAAE;AAC9C,wBAAwB,OAAO,yDAAW,iCAAiC;AAC3E,wBAAwB,OAAO,0DAAY,mCAAmC,gCAAgC,IAAI;AAClH,sBAAsB,OAAO,uDAAS,uBAAuB,6CAA6C,IAAI;AAC9G;AACA;AACA,CAAC;;AAED;AACA;AACA,cAAc,uEAAuE;AACrF;AACA,WAAW,OAAO;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,0DAAY;AAC1C,gCAAgC,0DAAY;AAC5C,wBAAwB,4CAAO;AAC/B;AACA;AACA;AACA;AACA;AACA,uBAAuB,EAAE;AACzB;AACA,uBAAuB,EAAE;AACzB;AACA,uBAAuB,EAAE;AACzB;AACA;AACA;AACA;AACA;AACA,iEAAiE,2CAA2C,EAAE;AAC9G;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,qDAAQ,WAAW,gEAAS,aAAa,6DAAM,cAAc,yBAAyB,EAAE;AAClH;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA,gBAAgB;AAChB;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,gBAAgB;AAChB;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,OAAO,uDAAS;AACzB;AACA,iBAAiB;AACjB;AACA;AACA,6DAA6D;AAC7D,SAAS,OAAO,wDAAU,EAAE;AAC5B,SAAS,OAAO,oDAAM;AACtB,MAAM;AACN;AACA,sBAAsB,OAAO,mDAAK,gCAAgC;AAClE,sBAAsB,OAAO,oDAAM,EAAE;AACrC,wBAAwB,OAAO,oDAAM,EAAE;AACvC;AACA;AACA,CAAC;;AAED;AACA;AACA,cAAc,uEAAuE;AACrF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,0DAAY;AAC7C,+BAA+B,0DAAY;AAC3C,sCAAsC,0DAAY;AAClD,sCAAsC,0DAAY;AAClD;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA,0CAA0C,2EAA2E;AACrH;AACA;AACA;AACA;AACA,qCAAqC,2EAA2E;AAChH,uBAAuB,EAAE;AACzB;AACA;AACA;AACA;AACA;AACA,2BAA2B,EAAE;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA,8CAA8C,2EAA2E;AACzH;AACA;AACA;AACA,8CAA8C,2EAA2E;AACzH;AACA;AACA;AACA;AACA;AACA,mCAAmC,2EAA2E;AAC9G;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC,2EAA2E;AACjH;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA,sCAAsC,mGAAmG;AACzI;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,mBAAmB,EAAE;AACrB,mEAAmE;AACnE,mBAAmB,EAAE;AACrB,kEAAkE;AAClE;AACA;AACA,yCAAyC,sDAAQ,sDAAsD,uBAAuB;AAC9H;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,QAAQ,gBAAgB;AACnD;AACA;AACA;AACA;AACA,yBAAyB,0BAA0B;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA,0BAA0B,sDAAQ,mCAAmC,UAAU;AAC/E;AACA,6BAA6B,EAAE,uDAAuD,EAAE;AACxF;AACA;AACA,uBAAuB,QAAQ,gBAAgB;AAC/C;AACA;AACA;AACA;AACA,qBAAqB,0BAA0B;AAC/C;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA,0BAA0B,sDAAQ,mCAAmC,UAAU;AAC/E;AACA;AACA;AACA;AACA,uBAAuB,QAAQ,gBAAgB;AAC/C;AACA;AACA;AACA;AACA,qBAAqB,0BAA0B;AAC/C;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,OAAO,uDAAS,UAAU,kCAAkC;AACrE;AACA;AACA,6DAA6D;AAC7D,SAAS,OAAO,8DAAgB,EAAE;AAClC,SAAS,OAAO,oDAAM,EAAE;AACxB,SAAS,OAAO,+DAAiB;AACjC,MAAM;AACN;AACA,oCAAoC,OAAO,mDAAK,EAAE;AAClD,6BAA6B,OAAO,mDAAK,EAAE;AAC3C,yBAAyB,OAAO,oDAAM,EAAE;AACxC,uBAAuB,OAAO,oDAAM,EAAE;AACtC,8BAA8B,OAAO,oDAAM,EAAE;AAC7C,8BAA8B,OAAO,oDAAM,EAAE;AAC7C;AACA;AACA,CAAC;AACD,WAAW,OAAO;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,OAAO,sDAAQ;AACxB;AACA;AACA;AACA,8BAA8B,4DAAY;AAC1C,iBAAiB;AACjB;AACA;AACA,CAAC;;AAED;AACA;AACA,cAAc,uEAAuE;AACrF;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,OAAO,uDAAS;AACzB,qCAAqC,qEAAuB;AAC5D;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,gEAAgE;AAChE,SAAS;AACT,MAAM;AACN;AACA,mBAAmB,OAAO,uDAAS,qCAAqC,eAAe,IAAI;AAC3F;AACA;AACA,CAAC;;AAED;AACA;AACA,cAAc,uEAAuE;AACrF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA;AACA,6DAA6D,+BAA+B,EAAE;AAC9F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+DAA+D,6CAA6C,EAAE;AAC9G;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA,gBAAgB;AAChB;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB,sEAAsE,iCAAiC,EAAE;AACzG;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB,sEAAsE,+BAA+B,EAAE;AACvG,2CAA2C,6BAA6B,EAAE;AAC1E,mBAAmB,EAAE;AACrB;AACA,2BAA2B,qCAAqC;AAChE,uBAAuB,EAAE;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,EAAE;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,EAAE;AACzB,0EAA0E,6EAA6E,EAAE;AACzJ;AACA,mDAAmD,sGAAsG,EAAE;AAC3J;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,mBAAmB,EAAE;AACrB,iCAAiC,EAAE;AACnC;AACA;AACA;AACA;AACA,+CAA+C,8CAA8C,EAAE;AAC/F;AACA;AACA,+CAA+C,yCAAyC,EAAE;AAC1F;AACA;AACA;AACA;AACA,+CAA+C,0CAA0C,EAAE;AAC3F;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA,oDAAoD,8BAA8B,EAAE;AACpF;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA,oDAAoD,EAAE;AACtD;AACA;AACA;AACA,+CAA+C,uBAAuB,EAAE;AACxE;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA;AACA,+BAA+B,iCAAiC;AAChE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,iCAAiC;AAChE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,2BAA2B,EAAE;AAC7B;AACA;AACA;AACA;AACA,kCAAkC,EAAE;AACpC;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA,2BAA2B,iCAAiC;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,EAAE;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA,uDAAuD,6CAA6C,EAAE;AACtG;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA,SAAS,OAAO,uDAAS;AACzB,qCAAqC,qEAAuB;AAC5D;AACA;AACA,ogBAAogB,iCAAiC,kgHAAkgH,WAAW,kBAAkB,4aAA4a,YAAY,iBAAiB,wvBAAwvB,gDAAgD,wTAAwT,0DAA0D,uPAAuP,oEAAoE,+HAA+H,mEAAmE,+hBAA+hB,iEAAiE,8EAA8E,iEAAiE;AACn5N,iBAAiB;AACjB;AACA;AACA,+DAA+D;AAC/D,SAAS,4BAA4B;AACrC,SAAS,OAAO,wDAAU,EAAE;AAC5B,SAAS,OAAO,+DAAiB;AACjC,MAAM;AACN;AACA,kBAAkB,OAAO,mDAAK,EAAE;AAChC,iBAAiB,OAAO,mDAAK,EAAE;AAC/B,2BAA2B,OAAO,uDAAS,6BAA6B,OAAO,yDAAW,gBAAgB,IAAI;AAC9G,yBAAyB,OAAO,uDAAS,2BAA2B,OAAO,yDAAW,gBAAgB,IAAI;AAC1G,iBAAiB,OAAO,uDAAS,mBAAmB,OAAO,wDAAU,iBAAiB,IAAI;AAC1F,8BAA8B,OAAO,uDAAS,kCAAkC,2CAA2C,IAAI;AAC/H,qBAAqB,OAAO,uDAAS,uBAAuB,4CAA4C,IAAI;AAC5G,6BAA6B,OAAO,0DAAY,uBAAuB,6BAA6B,IAAI;AACxG,sBAAsB,OAAO,uDAAS,wBAAwB,OAAO,wDAAU,iBAAiB,IAAI;AACpG,4BAA4B,OAAO,uDAAS,8BAA8B,OAAO,wDAAU,iBAAiB,IAAI;AAChH,qBAAqB,OAAO,uDAAS,uBAAuB,eAAe,IAAI;AAC/E,mBAAmB,OAAO,uDAAS,qBAAqB,gBAAgB,IAAI;AAC5E,uBAAuB,OAAO,uDAAS,yBAAyB,eAAe,IAAI;AACnF,oBAAoB,OAAO,yDAAW,4CAA4C;AAClF,wBAAwB,OAAO,0DAAY,4CAA4C,GAAG,OAAO,0DAAY,sCAAsC;AACnJ,wBAAwB,OAAO,0DAAY,sCAAsC;AACjF;AACA;AACA,CAAC;;AAED;AACA;AACA,cAAc,uEAAuE;AACrF;AACA;AACA,IAAI,uDAAS;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,2DAA2D;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2DAA2D;AAC3D;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA,gBAAgB;AAChB;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA,SAAS,OAAO,uDAAS;AACzB;AACA;AACA,iBAAiB;AACjB;AACA;AACA,gBAAgB,OAAO,mDAAK,EAAE;AAC9B;AACA;AACA,CAAC;;AAED;AACA;AACA,cAAc,uEAAuE;AACrF;AACA,WAAW,OAAO;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,uDAAS;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC;AACzC;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,0DAA0D,EAAE;AAC5D;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA,yBAAyB,EAAE;AAC3B;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,yBAAyB,EAAE;AAC3B;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,GAAG;AAClB,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,GAAG;AAClB,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB,oCAAoC,EAAE;AACtC,kDAAkD,EAAE;AACpD,mBAAmB,EAAE;AACrB;AACA;AACA;AACA,uBAAuB,EAAE;AACzB;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB,wCAAwC,EAAE;AAC1C,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB,kDAAkD,oDAAoD;AACtG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA,cAAc,uEAAuE;AACrF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,OAAO,uDAAS;AACzB;AACA,iBAAiB;AACjB;AACA;AACA,CAAC;AACD,WAAW,EAAE;AACb,0BAA0B;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,IAAI,uDAAS;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,wDAAwD;AACxF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4DAA4D,gCAAgC,EAAE;AAC9F;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA,uBAAuB,EAAE;AACzB;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yDAAyD;AACzD;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA,mEAAmE,gDAAgD;AACnH;AACA;AACA;AACA;AACA,8DAA8D,gCAAgC,EAAE;AAChG;AACA,SAAS;AACT,4CAA4C,yCAAyC,EAAE;AACvF;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA,uBAAuB,EAAE;AACzB,qEAAqE,EAAE,OAAO;AAC9E;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA,wDAAwD,EAAE,KAAK,wDAAS;AACxE;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,OAAO,uDAAS;AACzB;AACA,6yCAA6yC,WAAW,0BAA0B,gIAAgI,kDAAkD;AACpgD;AACA,yBAAyB,UAAU,gEAAiB,gDAAgD;AACpG,yBAAyB;AACzB;AACA,+CAA+C,6BAA6B,WAAW;AACvF,iBAAiB;AACjB;AACA;AACA,qDAAqD;AACrD,SAAS,OAAO,wDAAU,EAAE;AAC5B,SAAS,OAAO,+DAAiB,EAAE;AACnC,SAAS,+BAA+B;AACxC,SAAS,gCAAgC,OAAO,sDAAQ,EAAE,GAAG,OAAO,oDAAM,gCAAgC,GAAG;AAC7G,SAAS,OAAO,sDAAQ;AACxB,MAAM;AACN;AACA,sBAAsB,OAAO,uDAAS,wBAAwB,6CAA6C,IAAI;AAC/G,iBAAiB,OAAO,uDAAS,mBAAmB,wCAAwC,IAAI;AAChG,oBAAoB,OAAO,6DAAe,SAAS,gEAAU,cAAc,+BAA+B,EAAE,IAAI,oBAAoB,IAAI;AACxI,iBAAiB,OAAO,0DAAY,SAAS,gEAAU,cAAc,0BAA0B,EAAE,IAAI,eAAe,IAAI;AACxH,iBAAiB,OAAO,mDAAK,EAAE;AAC/B,uBAAuB,OAAO,mDAAK,EAAE;AACrC,oBAAoB,OAAO,mDAAK,EAAE;AAClC,2BAA2B,OAAO,mDAAK,EAAE;AACzC,qBAAqB,OAAO,yDAAW,8BAA8B;AACrE,gBAAgB,OAAO,mDAAK,EAAE;AAC9B,8BAA8B,OAAO,0DAAY,wCAAwC,OAAO,yDAAW,iBAAiB,IAAI;AAChI;AACA;AACA,CAAC;;AAED;AACA;AACA,cAAc,uEAAuE;AACrF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,uDAAS;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,uDAAS;AACb;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,4CAAO;AACnC;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA,gBAAgB;AAChB;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C,gEAAS;AACtD;AACA,SAAS;AACT;AACA;AACA,gBAAgB;AAChB;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA,uBAAuB,EAAE;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA,oBAAoB;AACpB;AACA;AACA,4DAA4D,2CAA2C,EAAE;AACzG,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,uBAAuB,EAAE;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,GAAG;AAClB,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA,eAAe,GAAG;AAClB,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,eAAe,GAAG;AAClB,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA,eAAe,GAAG;AAClB,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,GAAG;AAClB,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,GAAG;AAClB,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA,2BAA2B,EAAE;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA,8BAA8B,sDAAQ,mDAAmD,UAAU;AACnG;AACA;AACA;AACA;AACA;AACA,mCAAmC,EAAE;AACrC,wDAAwD,EAAE;AAC1D,mCAAmC,EAAE;AACrC;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,EAAE;AACrC;AACA,mCAAmC,EAAE;AACrC;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,QAAQ,gBAAgB;AACnD;AACA;AACA;AACA;AACA,yBAAyB,0BAA0B;AACnD;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA,0BAA0B,sDAAQ,qCAAqC,UAAU;AACjF;AACA;AACA,+BAA+B,EAAE;AACjC,uFAAuF,EAAE;AACzF;AACA;AACA;AACA,wEAAwE,EAAE;AAC1E;AACA;AACA;AACA,uBAAuB,QAAQ,gBAAgB;AAC/C;AACA;AACA;AACA;AACA,qBAAqB,0BAA0B;AAC/C;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sFAAsF,oCAAoC;AAC1H,yFAAyF,uCAAuC;AAChI;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA,0BAA0B,sDAAQ,sCAAsC,UAAU;AAClF;AACA;AACA;AACA;AACA,uBAAuB,QAAQ,gBAAgB;AAC/C;AACA;AACA;AACA;AACA,qBAAqB,0BAA0B;AAC/C;AACA;AACA;AACA,0BAA0B,sDAAQ,2CAA2C,UAAU;AACvF;AACA;AACA;AACA;AACA,uBAAuB,QAAQ,gBAAgB;AAC/C;AACA;AACA;AACA;AACA,qBAAqB,0BAA0B;AAC/C;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,EAAE;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,uBAAuB,EAAE;AACzB,iGAAiG,uCAAuC,EAAE;AAC1I;AACA,wBAAwB;AACxB;AACA;AACA;AACA;AACA,0BAA0B,sDAAQ,sCAAsC,UAAU;AAClF;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,QAAQ,gBAAgB;AAC/C;AACA;AACA;AACA;AACA,qBAAqB,0BAA0B;AAC/C;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB,wEAAwE,kDAAkD,qBAAqB,EAAE,GAAG,EAAE;AACtJ,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA,0BAA0B,sDAAQ,2CAA2C,UAAU;AACvF;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,QAAQ,gBAAgB;AAC/C;AACA;AACA;AACA;AACA,qBAAqB,0BAA0B;AAC/C;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA,0BAA0B,sDAAQ,2CAA2C,UAAU;AACvF;AACA;AACA;AACA;AACA,uBAAuB,QAAQ,gBAAgB;AAC/C;AACA;AACA;AACA;AACA,qBAAqB,0BAA0B;AAC/C;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,EAAE;AAC7B;AACA;AACA;AACA;AACA;AACA,0BAA0B,sDAAQ,qCAAqC,UAAU;AACjF;AACA;AACA;AACA;AACA;AACA,+BAA+B,EAAE;AACjC,wDAAwD,EAAE;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,QAAQ,gBAAgB;AAC/C;AACA;AACA;AACA;AACA,qBAAqB,0BAA0B;AAC/C;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA,2BAA2B,EAAE;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB,oDAAoD,yDAAyD,EAAE;AAC/G,mBAAmB,EAAE;AACrB;AACA;AACA,SAAS;AACT;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA;AACA,uBAAuB,EAAE;AACzB;AACA,oDAAoD,sDAAQ;AAC5D;AACA,8BAA8B,sDAAQ,yCAAyC,UAAU;AACzF;AACA;AACA;AACA;AACA,2BAA2B,QAAQ,gBAAgB;AACnD;AACA;AACA;AACA;AACA,yBAAyB,0BAA0B;AACnD;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA;AACA,uBAAuB,EAAE;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,oDAAoD,EAAE;AACtD;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA,yBAAyB,EAAE;AAC3B;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C,4DAAO;AACjD;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,OAAO,uDAAS;AACzB;AACA,2QAA2Q,wJAAwJ,+IAA+I,mBAAmB,uDAAuD,8IAA8I,2DAA2D,8GAA8G,0DAA0D,ihBAAihB,yDAAyD,mOAAmO,wDAAwD,8JAA8J,4DAA4D,0iBAA0iB,6DAA6D,kWAAkW,yDAAyD,iWAAiW,wDAAwD,klCAAklC,sEAAsE,+WAA+W,sEAAsE,sJAAsJ,mJAAmJ,grDAAgrD,+BAA+B,wuCAAwuC,qCAAqC,swGAAswG,0mBAA0mB,0RAA0R,yaAAya,yVAAyV,4cAA4c,yDAAyD,iQAAiQ,2NAA2N,oLAAoL,8gCAA8gC,uDAAuD,uXAAuX,sDAAsD,iVAAiV,gEAAgE,qPAAqP,+DAA+D,2TAA2T,8DAA8D,wPAAwP,2DAA2D,0HAA0H,8CAA8C,6IAA6I,6CAA6C;AAC//iB,iBAAiB;AACjB;AACA;AACA,sEAAsE;AACtE,SAAS,OAAO,wDAAU,EAAE;AAC5B,SAAS,OAAO,+DAAiB;AACjC,MAAM;AACN;AACA,4BAA4B,OAAO,mDAAK,EAAE;AAC1C,8BAA8B,OAAO,mDAAK,EAAE;AAC5C,0BAA0B,OAAO,mDAAK,EAAE;AACxC,wBAAwB,OAAO,uDAAS,0BAA0B,0CAA0C,IAAI;AAChH,2BAA2B,OAAO,uDAAS,6BAA6B,0CAA0C,IAAI;AACtH,4BAA4B,OAAO,uDAAS,8BAA8B,OAAO,wDAAU,iBAAiB,IAAI;AAChH,iCAAiC,OAAO,uDAAS,mCAAmC,OAAO,wDAAU,iBAAiB,IAAI;AAC1H,8BAA8B,OAAO,uDAAS,gCAAgC,OAAO,wDAAU,iBAAiB,IAAI;AACpH,kCAAkC,OAAO,uDAAS,oCAAoC,OAAO,wDAAU,iBAAiB,IAAI;AAC5H,4BAA4B,OAAO,uDAAS,8BAA8B,OAAO,wDAAU,iBAAiB,IAAI;AAChH,wCAAwC,OAAO,uDAAS,0CAA0C,OAAO,wDAAU,iBAAiB,IAAI;AACxI,6BAA6B,OAAO,uDAAS,8BAA8B,eAAe,IAAI;AAC9F,iBAAiB,OAAO,0DAAY,6BAA6B;AACjE,gCAAgC,OAAO,uDAAS,kCAAkC,eAAe,IAAI;AACrG,yBAAyB,OAAO,uDAAS,2BAA2B,gDAAgD,IAAI;AACxH,mBAAmB,OAAO,yDAAW,4BAA4B;AACjE;AACA;AACA,CAAC;;AAED;AACA;AACA,cAAc,uEAAuE;AACrF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,OAAO,uDAAS;AACzB;AACA,iBAAiB;AACjB;AACA;AACA,0DAA0D;AAC1D,SAAS,OAAO,yDAAW;AAC3B,MAAM;AACN;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,OAAO,uDAAS;AACzB;AACA,iBAAiB;AACjB;AACA;AACA,2DAA2D;AAC3D,SAAS,OAAO,yDAAW;AAC3B,MAAM;AACN;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,OAAO,sDAAQ;AACxB;AACA;AACA,iBAAiB;AACjB;AACA;AACA,CAAC;;AAED;AACA;AACA,cAAc,uEAAuE;AACrF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,OAAO,uDAAS;AACzB;AACA,iBAAiB;AACjB;AACA;AACA,iEAAiE;AACjE,SAAS,OAAO,yDAAW;AAC3B,MAAM;AACN;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,OAAO,uDAAS;AACzB;AACA,iBAAiB;AACjB;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,OAAO,uDAAS;AACzB;AACA,iBAAiB;AACjB;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,OAAO,uDAAS;AACzB;AACA,iBAAiB;AACjB;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,OAAO,uDAAS;AACzB;AACA,iBAAiB;AACjB;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA,IAAI,uDAAS;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB,+BAA+B,EAAE;AACjC,mBAAmB,EAAE;AACrB,4EAA4E,wCAAwC,EAAE;AACtH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA,uBAAuB,EAAE;AACzB;AACA;AACA;AACA;AACA,uBAAuB,EAAE;AACzB,mCAAmC,EAAE;AACrC,uBAAuB,EAAE;AACzB,gFAAgF,0CAA0C,EAAE;AAC5H;AACA,8BAA8B;AAC9B,kGAAkG;AAClG;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA,uBAAuB,EAAE;AACzB,mCAAmC,EAAE;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,OAAO,uDAAS;AACzB;AACA,iBAAiB;AACjB;AACA;AACA,4DAA4D;AAC5D,SAAS,OAAO,wDAAU,EAAE;AAC5B,SAAS,OAAO,uDAAS,EAAE;AAC3B,SAAS,OAAO,oDAAM;AACtB,MAAM;AACN;AACA,mBAAmB,OAAO,yDAAW,yCAAyC;AAC9E;AACA;AACA,CAAC;;AAED;AACA;AACA,cAAc,uEAAuE;AACrF;AACA,WAAW,EAAE;AACb;AACA,WAAW,EAAE;AACb;AACA,WAAW,EAAE;AACb;AACA,WAAW,EAAE;AACb;AACA,WAAW,EAAE;AACb;AACA;AACA;AACA;AACA;AACA,IAAI,uDAAS;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,EAAE;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,sDAAS;AAC1C;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,EAAE;AACzB,kCAAkC,EAAE;AACpC;AACA,2BAA2B,EAAE;AAC7B;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,2BAA2B,2BAA2B;AACtD;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA,SAAS,OAAO,uDAAS;AACzB;AACA,iBAAiB;AACjB;AACA;AACA,gBAAgB,OAAO,mDAAK,yBAAyB;AACrD;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,OAAO,uDAAS;AACzB;AACA,iBAAiB;AACjB;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,OAAO,uDAAS;AACzB;AACA,iBAAiB;AACjB;AACA;AACA,2DAA2D;AAC3D,SAAS,OAAO,yDAAW;AAC3B,MAAM;AACN;AACA,CAAC;AACD;AACA;AACA;AACA;AACA,SAAS,OAAO,sDAAQ;AACxB;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,CAAC;;AAED;AACA;AACA,cAAc,uEAAuE;AACrF;AACA,WAAW,EAAE;AACb;AACA,WAAW,EAAE;AACb;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb;AACA,WAAW,EAAE;AACb,6BAA6B,4DAAc;AAC3C;AACA;AACA;AACA;AACA,IAAI,uDAAS;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mDAAmD,0DAAY;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2DAA2D,0DAAY;AACvE;AACA;AACA;AACA,+BAA+B,0DAAY;AAC3C;AACA;AACA;AACA,kCAAkC,0DAAY;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,0DAAY;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,0DAAY;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC,0DAAY;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,0DAAY;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC,0DAAY;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,0DAAY;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,0DAAY;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,0DAAY;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,0DAAY;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC,yDAAyD;AAC9F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,0DAAY;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,0DAAY;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,0DAAY;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,0DAAY;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,0DAAY;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,0DAAY;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,0DAAY;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,0DAAY;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,0DAAY;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,0DAAY;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,0DAAY;AAC9C;AACA,2EAA2E;AAC3E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA8C,0DAAY;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,0DAAY;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,0DAAY;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC,0DAAY;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,0DAAY;AAC9C;AACA;AACA;AACA;AACA,mCAAmC,0DAAY;AAC/C;AACA;AACA;AACA;AACA,iCAAiC,0DAAY;AAC7C;AACA;AACA,mFAAmF,6CAA6C;AAChI;AACA,+BAA+B,0DAAY;AAC3C;AACA;AACA;AACA,+BAA+B,uDAAS;AACxC;AACA;AACA;AACA,+BAA+B,uDAAS;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C,0DAAY;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,0DAAY;AACnD;AACA;AACA;AACA;AACA;AACA,qCAAqC,0DAAY;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,4CAAO;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,gEAAc,cAAc,EAAE;AAC3D,iCAAiC,4CAAO;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC,4DAAO;AAChD;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,uBAAuB,EAAE;AACzB;AACA;AACA;AACA;AACA;AACA,6DAA6D,mCAAmC,EAAE;AAClG;AACA;AACA,yCAAyC,4DAAO;AAChD;AACA,iBAAiB;AACjB,aAAa;AACb;AACA;AACA;AACA,uBAAuB,EAAE;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC,kBAAkB;AACxD;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,EAAE;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA,oDAAoD;AACpD,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA;AACA,2BAA2B,EAAE;AAC7B,uCAAuC,EAAE;AACzC,mCAAmC,sCAAsC;AACzE;AACA,mCAAmC,EAAE;AACrC;AACA,8EAA8E,EAAE;AAChF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C,4EAA4E,EAAE;AAC7H,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,qCAAqC;AACzE;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA,qEAAqE,+BAA+B,EAAE,gCAAgC,mBAAmB,EAAE;AAC3J,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA,qEAAqE,+BAA+B,EAAE,gCAAgC,mBAAmB,EAAE;AAC3J,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA,oBAAoB;AACpB;AACA;AACA,uBAAuB,EAAE;AACzB,0BAA0B,uDAAS;AACnC;AACA;AACA;AACA,uBAAuB,EAAE;AACzB;AACA;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA,uBAAuB,EAAE;AACzB,0BAA0B,uDAAS;AACnC;AACA;AACA;AACA,uBAAuB,EAAE;AACzB;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA,uBAAuB,EAAE;AACzB,0BAA0B,uDAAS;AACnC;AACA;AACA;AACA,uBAAuB,EAAE;AACzB;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA,uBAAuB,EAAE;AACzB;AACA,2EAA2E,oCAAoC,EAAE;AACjH,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA,uBAAuB,EAAE;AACzB,mFAAmF,mBAAmB,EAAE;AACxG;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA,uBAAuB,EAAE;AACzB;AACA,uBAAuB,EAAE;AACzB,yEAAyE,mBAAmB,EAAE;AAC9F;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA,oBAAoB;AACpB;AACA;AACA,uBAAuB,EAAE;AACzB;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA,gEAAgE,oCAAoC,EAAE;AACtG,gEAAgE,iCAAiC,EAAE;AACnG;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA,0DAA0D,yDAAyD,EAAE;AACrH,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,+CAA+C,6DAAM,eAAe,2BAA2B,EAAE,GAAG,gEAAS;AAC7G;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA,gBAAgB;AAChB;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,mBAAmB,EAAE;AACrB,yBAAyB,gEAAS;AAClC,oEAAoE,qCAAqC,EAAE;AAC3G;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,2CAA2C,6DAAM,cAAc,qBAAqB,EAAE,GAAG,mEAAY;AACrG;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT,oEAAoE,4BAA4B,EAAE;AAClG,qEAAqE,4BAA4B,EAAE;AACnG;AACA;AACA,2BAA2B,EAAE;AAC7B,2CAA2C,EAAE;AAC7C;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,2BAA2B,EAAE;AAC7B,2CAA2C,EAAE;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,sDAAsD,6DAAM,cAAc,qBAAqB,EAAE;AACjG;AACA;AACA;AACA;AACA,uBAAuB,EAAE;AACzB;AACA;AACA;AACA;AACA,SAAS;AACT,qEAAqE,6DAAM,cAAc,qBAAqB,EAAE;AAChH,uBAAuB,EAAE;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,mFAAmF,6DAAM,cAAc,qBAAqB,EAAE;AAC9H;AACA;AACA;AACA,SAAS;AACT,0EAA0E,6DAAM,cAAc,qBAAqB,EAAE;AACrH;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA,0DAA0D,qCAAqC,EAAE;AACjG;AACA;AACA,kBAAkB,gEAAS;AAC3B,0CAA0C,gCAAgC,EAAE;AAC5E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA,mDAAmD,6BAA6B,EAAE;AAClF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kEAAkE,wBAAwB,EAAE;AAC5F;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,mBAAmB,EAAE;AACrB,6CAA6C,0DAA0D;AACvG,mBAAmB,EAAE;AACrB,4BAA4B,iDAAI,CAAC,0DAAG,wBAAwB,8DAA8D,wBAAwB,EAAE,EAAE,EAAE;AACxJ,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA,QAAQ,0DAAa,6CAA6C,gEAAS;AAC3E;AACA,qBAAqB,oDAAM;AAC3B,6CAA6C,sDAAQ;AACrD,SAAS;AACT,iCAAiC,sDAAQ,8DAA8D,wBAAwB,EAAE,mEAAmE,wBAAwB,EAAE;AAC9N;AACA;AACA,gBAAgB;AAChB;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,gEAAc,cAAc,kCAAkC,EAAE;AACjG;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA,yDAAyD,6BAA6B,EAAE;AACxF;AACA;AACA,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA,iCAAiC,iBAAiB;AAClD;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,EAAE;AACzB;AACA;AACA,gEAAgE,6BAA6B,EAAE;AAC/F,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB,mEAAmE,0BAA0B,EAAE;AAC/F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA,gBAAgB;AAChB;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA,oBAAoB;AACpB;AACA;AACA,uBAAuB,EAAE;AACzB;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA,6EAA6E,oBAAoB,EAAE;AACnG;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA,iFAAiF,oBAAoB,EAAE;AACvG;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,oDAAoD,2BAA2B,EAAE;AACjF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA,wEAAwE,kBAAkB,EAAE;AAC5F;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB,8DAA8D,qBAAqB,EAAE;AACrF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,EAAE;AACzB,kEAAkE,uCAAuC,EAAE;AAC3G,uBAAuB,EAAE;AACzB;AACA,uBAAuB,EAAE;AACzB;AACA,mBAAmB,iBAAiB;AACpC;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,sDAAQ;AACxC,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA;AACA;AACA,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,kCAAkC,sBAAsB,EAAE;AAC1D;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,sDAAQ;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,sDAAQ;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA,6BAA6B,yBAAyB;AACtD,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,EAAE;AACzB;AACA,uBAAuB,EAAE;AACzB;AACA,uBAAuB,EAAE;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA8C,uBAAuB,EAAE,wBAAwB,mCAAmC,EAAE;AACpI;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,8BAA8B,aAAa;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,EAAE;AAC7B,mCAAmC;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,EAAE;AACzB;AACA,mCAAmC,0DAA0D;AAC7F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,uBAAuB,EAAE;AACzB,mEAAmE,2BAA2B,EAAE;AAChG;AACA;AACA,2BAA2B,EAAE;AAC7B;AACA,2BAA2B,EAAE;AAC7B;AACA;AACA;AACA;AACA;AACA,2BAA2B,EAAE;AAC7B;AACA;AACA;AACA;AACA;AACA,2BAA2B,EAAE;AAC7B;AACA,2BAA2B,EAAE;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,uBAAuB,EAAE;AACzB;AACA;AACA;AACA;AACA,uBAAuB,EAAE;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,gEAAgE;AACvF;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,gEAAgE;AACvF;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,uBAAuB,gEAAgE;AACvF;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C,6CAA6C,EAAE;AAC1F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,GAAG;AAClB,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,GAAG;AAClB,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,2BAA2B,GAAG,kBAAkB;AAC9E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,2BAA2B,GAAG,kBAAkB;AAC9E;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,KAAK;AACpB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,8BAA8B,2BAA2B,GAAG,kBAAkB;AAC9E;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,KAAK;AACpB,gBAAgB;AAChB;AACA;AACA;AACA,wBAAwB,uBAAuB;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,2BAA2B;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,2BAA2B;AAC1D;AACA;AACA,eAAe,KAAK;AACpB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,2BAA2B;AAC1D;AACA;AACA,eAAe,KAAK;AACpB,gBAAgB;AAChB;AACA;AACA;AACA,wBAAwB,uBAAuB;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,GAAG;AAClB,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,GAAG;AAClB,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,GAAG;AAClB,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,GAAG;AAClB,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,EAAE;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA,wDAAwD,qBAAqB,EAAE;AAC/E,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA,wDAAwD,qBAAqB,EAAE;AAC/E,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA,wDAAwD,uBAAuB,EAAE;AACjF,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,4EAA4E,kBAAkB,EAAE;AAChG;AACA;AACA,SAAS;AACT;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA,2EAA2E,oBAAoB,EAAE;AACjG,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA,0DAA0D,yBAAyB,EAAE;AACrF,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,4DAA4D,0CAA0C,sBAAsB,EAAE,EAAE,EAAE;AAClI,6CAA6C,oBAAoB,EAAE;AACnE;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,EAAE;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA,uBAAuB,EAAE;AACzB;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA,uBAAuB,EAAE;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA;AACA,uBAAuB,EAAE;AACzB;AACA;AACA,2BAA2B,EAAE;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA,uBAAuB,EAAE;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA,mCAAmC,kBAAkB;AACrD,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB,2EAA2E,uBAAuB,EAAE;AACpG;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB,oEAAoE,sBAAsB,EAAE;AAC5F,mBAAmB,EAAE;AACrB,8DAA8D,yDAAyD,EAAE;AACzH,mBAAmB,EAAE;AACrB,2EAA2E,0BAA0B,EAAE;AACvG,mDAAmD,oDAAoD,EAAE;AACzG;AACA,mBAAmB,EAAE;AACrB;AACA,6CAA6C,yBAAyB,EAAE;AACxE,qDAAqD,yBAAyB,EAAE;AAChF,mBAAmB,EAAE;AACrB;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA,uBAAuB,EAAE;AACzB;AACA,uBAAuB,EAAE;AACzB;AACA,uBAAuB,EAAE;AACzB;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA,qDAAqD,uBAAuB,EAAE,6CAA6C,uBAAuB,EAAE;AACpJ;AACA,uBAAuB,EAAE;AACzB;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA,uBAAuB,EAAE;AACzB;AACA,uBAAuB,EAAE;AACzB;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,2BAA2B,EAAE;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,oCAAoC,4DAAO;AAC3C;AACA;AACA,iBAAiB;AACjB,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA,uBAAuB,EAAE;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA;AACA,oCAAoC,oBAAoB;AACxD,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA;AACA,4BAA4B,sDAAQ,2BAA2B,cAAc;AAC7E;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,QAAQ,gBAAgB;AAC/C;AACA;AACA;AACA;AACA,qBAAqB,0BAA0B;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA,oCAAoC,oBAAoB;AACxD,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA,uBAAuB,EAAE;AACzB;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA;AACA,uBAAuB,EAAE;AACzB;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,wCAAwC,sBAAsB,EAAE;AAChE;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA;AACA,4BAA4B,WAAW;AACvC,kEAAkE,wBAAwB,EAAE;AAC5F;AACA;AACA;AACA;AACA,+BAA+B,EAAE;AACjC;AACA,iEAAiE,0DAA0D,EAAE;AAC7H;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,uBAAuB,EAAE;AACzB,6EAA6E,kDAAkD,EAAE;AACjI;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,4FAA4F,iBAAiB,EAAE;AAC/G,iDAAiD,iBAAiB,EAAE,wBAAwB,0EAA0E,EAAE;AACxK,qEAAqE,kBAAkB,EAAE;AACzF;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA;AACA,wCAAwC,uBAAuB;AAC/D,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB,kFAAkF,oDAAoD,EAAE;AACxI;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA,wCAAwC,uBAAuB;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C,kCAAkC,EAAE;AAC9E;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA,sDAAsD,+BAA+B,EAAE;AACvF;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB,yBAAyB;AACzB,mBAAmB,EAAE;AACrB,uBAAuB;AACvB;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,GAAG;AAClB,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,GAAG;AAClB,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA;AACA,oCAAoC,oBAAoB;AACxD,iCAAiC,iBAAiB;AAClD,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA,sCAAsC,iCAAiC,EAAE;AACzE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,EAAE;AACzB;AACA;AACA,kCAAkC,sDAAQ,iCAAiC,gBAAgB;AAC3F;AACA;AACA;AACA;AACA,uCAAuC,EAAE;AACzC;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA,2BAA2B,QAAQ,gBAAgB;AACnD;AACA;AACA;AACA;AACA,yBAAyB,0BAA0B;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC,sDAAQ,yDAAyD,wBAAwB;AAC/H,yBAAyB,oDAAM;AAC/B;AACA;AACA;AACA,uBAAuB,QAAQ,gBAAgB;AAC/C;AACA;AACA;AACA;AACA,qBAAqB,0BAA0B;AAC/C;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,uBAAuB,EAAE;AACzB;AACA,wCAAwC,yBAAyB,EAAE;AACnE,uCAAuC,wCAAwC,EAAE;AACjF,uBAAuB,EAAE;AACzB;AACA;AACA;AACA;AACA,uBAAuB,EAAE;AACzB;AACA,wCAAwC,yBAAyB,EAAE;AACnE,uCAAuC,wCAAwC,EAAE;AACjF;AACA;AACA;AACA;AACA;AACA,wEAAwE,2BAA2B;AACnG;AACA;AACA;AACA;AACA;AACA,wEAAwE,2BAA2B;AACnG;AACA;AACA,eAAe,GAAG;AAClB,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA;AACA,wEAAwE,2BAA2B;AACnG;AACA;AACA,eAAe,GAAG;AAClB,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA,oCAAoC,oBAAoB;AACxD,iCAAiC,iBAAiB;AAClD,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA,8BAA8B,cAAc;AAC5C;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB,6BAA6B,EAAE,MAAM,4BAA4B;AACjE;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA,yBAAyB,EAAE;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iDAAiD;AACjD;AACA,+CAA+C,mCAAmC,EAAE;AACpF;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iDAAiD;AACjD;AACA,+CAA+C,mCAAmC,EAAE;AACpF;AACA;AACA,eAAe,EAAE;AACjB,eAAe,GAAG;AAClB,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,iDAAiD;AACjD;AACA,+CAA+C,mCAAmC,EAAE;AACpF;AACA;AACA,eAAe,EAAE;AACjB,eAAe,GAAG;AAClB,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA;AACA,yCAAyC,sBAAsB;AAC/D,4BAA4B,WAAW;AACvC;AACA,8EAA8E,yBAAyB,EAAE;AACzG;AACA;AACA;AACA,6EAA6E,6CAA6C,EAAE;AAC5H;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA;AACA,gGAAgG,iDAAiD,EAAE;AACnJ;AACA;AACA,yGAAyG,iDAAiD,EAAE;AAC5J;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA,kCAAkC,iBAAiB;AACnD,mBAAmB,EAAE;AACrB,6DAA6D,kDAAkD,EAAE;AACjH;AACA,oBAAoB;AACpB;AACA,mBAAmB,EAAE;AACrB,mEAAmE,sBAAsB,EAAE,0BAA0B,6BAA6B,EAAE,wBAAwB,cAAc,EAAE;AAC5L,4CAA4C,6BAA6B,EAAE,wBAAwB,cAAc,EAAE;AACnH,mBAAmB,EAAE;AACrB,8DAA8D,mCAAmC,EAAE;AACnG;AACA,kCAAkC,iEAAiE,EAAE;AACrG,oBAAoB;AACpB;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA,wBAAwB;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA,kCAAkC,iBAAiB;AACnD,mBAAmB,EAAE;AACrB,6DAA6D,kDAAkD,EAAE;AACjH;AACA,oBAAoB;AACpB;AACA,mBAAmB,EAAE;AACrB,mEAAmE,sBAAsB,EAAE,0BAA0B,6BAA6B,EAAE,wBAAwB,cAAc,EAAE;AAC5L,4CAA4C,6BAA6B,EAAE,wBAAwB,cAAc,EAAE;AACnH,mBAAmB,EAAE;AACrB,8DAA8D,mCAAmC,EAAE;AACnG;AACA,kCAAkC,iEAAiE,EAAE;AACrG,oBAAoB;AACpB;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA,wBAAwB;AACxB;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,GAAG;AAClB,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,GAAG;AAClB,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA,yCAAyC,sBAAsB;AAC/D,4BAA4B,WAAW;AACvC;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB,6DAA6D,sBAAsB,EAAE,oDAAoD,6BAA6B,EAAE;AACxK;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wDAAwD,iDAAiD,EAAE;AAC3G;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+EAA+E,iDAAiD,EAAE;AAClI;AACA;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,kCAAkC,iEAAiE,EAAE;AACrG;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,kCAAkC,iEAAiE,EAAE;AACrG;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB,8DAA8D,sBAAsB,EAAE;AACtF,mBAAmB,EAAE;AACrB,0DAA0D,iEAAiE,EAAE;AAC7H;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,GAAG;AAClB,eAAe,GAAG;AAClB,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,GAAG;AAClB,eAAe,GAAG;AAClB,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,EAAE;AACzB;AACA,kCAAkC,sDAAQ,GAAG;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uDAAuD,4BAA4B,EAAE;AACrF;AACA,SAAS;AACT;AACA;AACA;AACA,uBAAuB,0BAA0B;AACjD;AACA;AACA,2BAA2B,EAAE;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oDAAoD,+BAA+B,EAAE;AACrF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA;AACA,sCAAsC,wCAAwC;AAC9E,mBAAmB,EAAE;AACrB;AACA;AACA,uBAAuB,EAAE;AACzB;AACA,uBAAuB,EAAE;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4DAA4D,4DAAO;AACnE;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB,wDAAwD,qBAAqB,EAAE;AAC/E,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB,mEAAmE,uBAAuB,EAAE,0BAA0B,0CAA0C,EAAE;AAClK,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA,2BAA2B,EAAE;AAC7B;AACA;AACA;AACA;AACA;AACA,+BAA+B,EAAE;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA;AACA;AACA,mCAAmC,EAAE;AACrC;AACA,mCAAmC,EAAE;AACrC;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA,uBAAuB,EAAE;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,uBAAuB,EAAE;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA,kCAAkC,kBAAkB;AACpD;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA,uBAAuB,EAAE;AACzB;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,GAAG;AAClB,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,GAAG;AAClB,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA,gCAAgC,eAAe;AAC/C,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA,uBAAuB,EAAE;AACzB;AACA,uBAAuB,EAAE;AACzB;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA,uBAAuB,EAAE;AACzB,qCAAqC,EAAE;AACvC;AACA,0CAA0C,sDAAQ;AAClD,0CAA0C,uCAAuC,EAAE;AACnF,uCAAuC,mBAAmB,EAAE;AAC5D;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA,gBAAgB;AAChB;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA,uBAAuB,EAAE;AACzB;AACA,uBAAuB,EAAE;AACzB,2DAA2D,kBAAkB,EAAE;AAC/E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,uBAAuB,EAAE;AACzB;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA,uBAAuB,EAAE;AACzB;AACA,uBAAuB,EAAE;AACzB;AACA;AACA,uBAAuB,EAAE;AACzB;AACA,uBAAuB,EAAE;AACzB,iGAAiG,oCAAoC,EAAE;AACvI;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA,6BAA6B,EAAE,qCAAqC,EAAE;AACtE;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,uBAAuB,EAAE;AACzB;AACA,uBAAuB,EAAE;AACzB,sDAAsD,EAAE;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,OAAO,wDAAU;AAC1B;AACA;AACA,uDAAuD;AACvD,SAAS,gCAAgC;AACzC,SAAS,2BAA2B;AACpC,SAAS,iCAAiC;AAC1C,SAAS,2BAA2B;AACpC,SAAS,gCAAgC,OAAO,oDAAM,+BAA+B,GAAG;AACxF,SAAS,OAAO,wDAAU,EAAE;AAC5B,SAAS,OAAO,oDAAM,EAAE;AACxB,SAAS,gCAAgC,OAAO,oDAAM,SAAS,wDAAQ,IAAI,GAAG;AAC9E,SAAS,OAAO,+DAAiB,EAAE;AACnC,SAAS,OAAO,sEAAwB,EAAE;AAC1C,SAAS,OAAO,6DAAe,EAAE;AACjC,SAAS,OAAO,8DAAgB,EAAE;AAClC,SAAS,iCAAiC;AAC1C,SAAS,4BAA4B;AACrC,SAAS,wCAAwC,OAAO,oDAAM,8BAA8B,GAAG;AAC/F,SAAS,8BAA8B;AACvC,SAAS,gCAAgC,OAAO,sDAAQ,EAAE,GAAG,OAAO,oDAAM,gCAAgC;AAC1G,MAAM;AACN;AACA,mCAAmC,OAAO,uDAAS,qCAAqC,OAAO,yDAAW,gBAAgB,IAAI;AAC9H,oCAAoC,OAAO,uDAAS,sCAAsC,OAAO,yDAAW,gBAAgB,IAAI;AAChI,2BAA2B,OAAO,mDAAK,EAAE;AACzC,wBAAwB,OAAO,mDAAK,EAAE;AACtC,6BAA6B,OAAO,mDAAK,EAAE;AAC3C,+BAA+B,OAAO,mDAAK,EAAE;AAC7C,0BAA0B,OAAO,mDAAK,EAAE;AACxC,oCAAoC,OAAO,mDAAK,EAAE;AAClD,0CAA0C,OAAO,oDAAM,EAAE;AACzD,kDAAkD,OAAO,oDAAM,EAAE;AACjE,4CAA4C,OAAO,mDAAK,EAAE;AAC1D,kBAAkB,OAAO,mDAAK,EAAE;AAChC,kBAAkB,OAAO,mDAAK,EAAE;AAChC,gBAAgB,OAAO,mDAAK,EAAE;AAC9B,sBAAsB,OAAO,oDAAM,EAAE;AACrC,mBAAmB,OAAO,mDAAK,EAAE;AACjC,yBAAyB,OAAO,oDAAM,EAAE;AACxC,8BAA8B,OAAO,mDAAK,EAAE;AAC5C,wBAAwB,OAAO,mDAAK,EAAE;AACtC,yBAAyB,OAAO,mDAAK,EAAE;AACvC,4BAA4B,OAAO,mDAAK,EAAE;AAC1C,wBAAwB,OAAO,mDAAK,EAAE;AACtC,uBAAuB,OAAO,mDAAK,EAAE;AACrC,kBAAkB,OAAO,yDAAW,2BAA2B,GAAG,OAAO,mDAAK,EAAE;AAChF,qBAAqB,OAAO,yDAAW,0BAA0B;AACjE,iBAAiB,OAAO,mDAAK,EAAE;AAC/B,sBAAsB,OAAO,mDAAK,EAAE;AACpC,qBAAqB,OAAO,mDAAK,EAAE;AACnC,qBAAqB,OAAO,mDAAK,EAAE;AACnC,uBAAuB,OAAO,mDAAK,EAAE;AACrC,sBAAsB,OAAO,mDAAK,EAAE;AACpC,4BAA4B,OAAO,mDAAK,EAAE;AAC1C,qBAAqB,OAAO,mDAAK,EAAE;AACnC,oCAAoC,OAAO,mDAAK,EAAE;AAClD,6BAA6B,OAAO,mDAAK,EAAE;AAC3C,yBAAyB,OAAO,mDAAK,EAAE;AACvC,8BAA8B,OAAO,mDAAK,EAAE;AAC5C,0BAA0B,OAAO,mDAAK,EAAE;AACxC,kCAAkC,OAAO,mDAAK,EAAE;AAChD,sBAAsB,OAAO,mDAAK,EAAE;AACpC,2BAA2B,OAAO,mDAAK,EAAE;AACzC,kCAAkC,OAAO,mDAAK,EAAE;AAChD,0BAA0B,OAAO,mDAAK,EAAE;AACxC,sCAAsC,OAAO,mDAAK,EAAE;AACpD,uBAAuB,OAAO,oDAAM,EAAE;AACtC,uBAAuB,OAAO,oDAAM,EAAE;AACtC,gCAAgC,OAAO,oDAAM,EAAE;AAC/C,2BAA2B,OAAO,oDAAM,EAAE;AAC1C,4BAA4B,OAAO,oDAAM,EAAE;AAC3C,2BAA2B,OAAO,oDAAM,EAAE;AAC1C,sBAAsB,OAAO,oDAAM,EAAE;AACrC,0BAA0B,OAAO,oDAAM,EAAE;AACzC,qBAAqB,OAAO,oDAAM,EAAE;AACpC,2BAA2B,OAAO,oDAAM,EAAE;AAC1C,wBAAwB,OAAO,oDAAM,EAAE;AACvC,yBAAyB,OAAO,oDAAM,EAAE;AACxC,2BAA2B,OAAO,oDAAM,EAAE;AAC1C,wBAAwB,OAAO,oDAAM,EAAE;AACvC,sBAAsB,OAAO,oDAAM,EAAE;AACrC,wBAAwB,OAAO,oDAAM,EAAE;AACvC,yBAAyB,OAAO,oDAAM,EAAE;AACxC,2BAA2B,OAAO,oDAAM,EAAE;AAC1C,yBAAyB,OAAO,oDAAM,EAAE;AACxC,yBAAyB,OAAO,oDAAM,EAAE;AACxC,qCAAqC,OAAO,oDAAM,EAAE;AACpD,+BAA+B,OAAO,oDAAM,EAAE;AAC9C,0BAA0B,OAAO,oDAAM,EAAE;AACzC,6BAA6B,OAAO,oDAAM,EAAE;AAC5C,yBAAyB,OAAO,oDAAM,EAAE;AACxC,0BAA0B,OAAO,oDAAM,EAAE;AACzC,wBAAwB,OAAO,oDAAM,EAAE;AACvC,sBAAsB,OAAO,oDAAM,EAAE;AACrC,sBAAsB,OAAO,uDAAS,yCAAyC,gBAAgB,IAAI;AACnG,0BAA0B,OAAO,uDAAS,4BAA4B,eAAe,IAAI;AACzF,yBAAyB,OAAO,uDAAS,qCAAqC,gDAAgD,IAAI;AAClI,sBAAsB,OAAO,6DAAe,8BAA8B,8CAA8C,IAAI;AAC5H,8CAA8C,OAAO,0DAAY,iDAAiD,6DAA6D,IAAI;AACnL,6CAA6C,OAAO,0DAAY,gDAAgD,4DAA4D,IAAI;AAChL,6CAA6C,OAAO,0DAAY,gDAAgD,4DAA4D,IAAI;AAChL,8CAA8C,OAAO,0DAAY,iDAAiD,6DAA6D,IAAI;AACnL,oDAAoD,OAAO,0DAAY,uDAAuD,kEAAkE,IAAI;AACpM,wBAAwB,OAAO,0DAAY,uCAAuC,oCAAoC,IAAI;AAC1H,oBAAoB,OAAO,0DAAY,kBAAkB;AACzD,2BAA2B,OAAO,0DAAY,wBAAwB,+BAA+B,IAAI;AACzG,wBAAwB,OAAO,0DAAY,2BAA2B,wBAAwB,IAAI;AAClG,qCAAqC,OAAO,uDAAS,+BAA+B,OAAO,yDAAW,gBAAgB,IAAI;AAC1H,oCAAoC,OAAO,uDAAS,8BAA8B,OAAO,yDAAW,gBAAgB,IAAI;AACxH,sCAAsC,OAAO,uDAAS,gCAAgC,OAAO,yDAAW,gBAAgB,IAAI;AAC5H,yBAAyB,OAAO,uDAAS,6BAA6B,4CAA4C,IAAI;AACtH,yCAAyC,OAAO,6DAAe,gDAAgD,iEAAiE,IAAI;AACpL,kCAAkC,OAAO,6DAAe,oCAAoC,qDAAqD,IAAI;AACrJ,iCAAiC,OAAO,6DAAe,mCAAmC,oDAAoD,IAAI;AAClJ,oCAAoC,OAAO,6DAAe,oCAAoC,OAAO,yDAAW,sBAAsB,IAAI;AAC1I,sCAAsC,OAAO,6DAAe,yCAAyC,OAAO,yDAAW,sBAAsB,IAAI;AACjJ,mCAAmC,OAAO,uDAAS,qCAAqC,4CAA4C,IAAI;AACxI,0BAA0B,OAAO,uDAAS,kCAAkC,4CAA4C,IAAI;AAC5H,eAAe,OAAO,uDAAS,iBAAiB,OAAO,wDAAU,gBAAgB,IAAI;AACrF,kBAAkB,OAAO,uDAAS,oBAAoB,OAAO,wDAAU,iBAAiB,IAAI;AAC5F,2BAA2B,OAAO,uDAAS,wBAAwB,4CAA4C,IAAI;AACnH,mCAAmC,OAAO,uDAAS,qCAAqC,gBAAgB,IAAI;AAC5G,+BAA+B,OAAO,uDAAS,iCAAiC,gBAAgB,IAAI;AACpG,gCAAgC,OAAO,uDAAS,kCAAkC,gBAAgB,IAAI;AACtG,wBAAwB,OAAO,uDAAS,0BAA0B,oDAAoD,IAAI;AAC1H,oBAAoB,OAAO,uDAAS,sBAAsB,eAAe,IAAI;AAC7E,iBAAiB,OAAO,uDAAS,mBAAmB,eAAe,IAAI;AACvE,iBAAiB,OAAO,uDAAS,mBAAmB,eAAe,IAAI;AACvE,4BAA4B,OAAO,uDAAS,uCAAuC,gDAAgD,IAAI;AACvI,qCAAqC,OAAO,uDAAS,wCAAwC,gDAAgD,IAAI;AACjJ,sBAAsB,OAAO,0DAAY,sCAAsC,mCAAmC,IAAI;AACtH,iCAAiC,OAAO,uDAAS,mCAAmC,OAAO,yDAAW,gBAAgB,IAAI;AAC1H,kCAAkC,OAAO,uDAAS,oCAAoC,OAAO,yDAAW,gBAAgB,IAAI;AAC5H,yBAAyB,OAAO,0DAAY,uCAAuC,OAAO,yDAAW,iBAAiB,IAAI;AAC1H,uBAAuB,OAAO,0DAAY,mCAAmC,OAAO,yDAAW,iBAAiB,IAAI;AACpH,0BAA0B,OAAO,0DAAY,sCAAsC,OAAO,yDAAW,iBAAiB,IAAI;AAC1H,wCAAwC,OAAO,0DAAY,4CAA4C,OAAO,yDAAW,iBAAiB,IAAI;AAC9I,yCAAyC,OAAO,0DAAY,6CAA6C,OAAO,yDAAW,iBAAiB,IAAI;AAChJ,yCAAyC,OAAO,0DAAY,6CAA6C,OAAO,yDAAW,iBAAiB,IAAI;AAChJ,2CAA2C,OAAO,0DAAY,+CAA+C,OAAO,yDAAW,iBAAiB,IAAI;AACpJ,8BAA8B,OAAO,0DAAY,uCAAuC;AACxF,6BAA6B,OAAO,6DAAe,uCAAuC;AAC1F,6BAA6B,OAAO,uDAAS,8BAA8B,gBAAgB,IAAI;AAC/F,oBAAoB,OAAO,yDAAW,4BAA4B;AAClE,qBAAqB,OAAO,yDAAW,yBAAyB;AAChE,oBAAoB,OAAO,yDAAW,wBAAwB;AAC9D,8BAA8B,OAAO,mDAAK,EAAE;AAC5C,oCAAoC,OAAO,oDAAM,EAAE;AACnD,6BAA6B,OAAO,mDAAK,EAAE;AAC3C,6BAA6B,OAAO,mDAAK,EAAE;AAC3C,mBAAmB,OAAO,uDAAS,qBAAqB,+CAA+C,IAAI;AAC3G,uBAAuB,OAAO,uDAAS,qBAAqB,OAAO,wDAAU,iBAAiB,IAAI;AAClG,uBAAuB,OAAO,mDAAK,EAAE;AACrC,wBAAwB,OAAO,mDAAK,EAAE;AACtC,uBAAuB,OAAO,mDAAK,EAAE;AACrC,qBAAqB,OAAO,mDAAK,EAAE;AACnC,sBAAsB,OAAO,mDAAK,EAAE;AACpC,2BAA2B,OAAO,mDAAK,EAAE;AACzC,yBAAyB,OAAO,mDAAK,EAAE;AACvC,4BAA4B,OAAO,mDAAK,EAAE;AAC1C,yBAAyB,OAAO,mDAAK,EAAE;AACvC,wBAAwB,OAAO,mDAAK,EAAE;AACtC,8BAA8B,OAAO,oDAAM,EAAE;AAC7C,4BAA4B,OAAO,oDAAM,EAAE;AAC3C;AACA,IAAI,wDAAU;AACd;AACA,QAAQ,wDAAU;AAClB,QAAQ,wDAAU;AAClB;AACA,IAAI,wDAAU;AACd;AACA,QAAQ,wDAAU;AAClB,QAAQ,wDAAU;AAClB;AACA,IAAI,wDAAU;AACd;AACA,QAAQ,wDAAU;AAClB,QAAQ,wDAAU;AAClB;AACA,IAAI,wDAAU;AACd;AACA;AACA,QAAQ,wDAAU;AAClB,QAAQ,wDAAU;AAClB;AACA,IAAI,wDAAU;AACd;AACA,QAAQ,wDAAU;AAClB,QAAQ,wDAAU;AAClB;AACA,IAAI,wDAAU;AACd;AACA,QAAQ,wDAAU;AAClB,QAAQ,wDAAU;AAClB;AACA,IAAI,wDAAU;AACd;AACA,QAAQ,wDAAU;AAClB,QAAQ,wDAAU;AAClB;AACA,IAAI,wDAAU;AACd;AACA,QAAQ,wDAAU;AAClB,QAAQ,wDAAU;AAClB;AACA,IAAI,wDAAU;AACd;AACA,QAAQ,wDAAU;AAClB,QAAQ,wDAAU;AAClB;AACA,IAAI,wDAAU;AACd;AACA,QAAQ,wDAAU;AAClB,QAAQ,wDAAU;AAClB;AACA,IAAI,wDAAU;AACd;AACA,QAAQ,wDAAU;AAClB;AACA,IAAI,wDAAU;AACd;AACA,QAAQ,wDAAU;AAClB,QAAQ,wDAAU;AAClB;AACA,IAAI,wDAAU;AACd;AACA,QAAQ,wDAAU;AAClB,QAAQ,wDAAU;AAClB;AACA,IAAI,wDAAU;AACd;AACA,QAAQ,wDAAU;AAClB,QAAQ,wDAAU;AAClB;AACA,IAAI,wDAAU;AACd;AACA,QAAQ,wDAAU;AAClB,QAAQ,wDAAU;AAClB;AACA,IAAI,wDAAU;AACd;AACA,QAAQ,wDAAU;AAClB,QAAQ,wDAAU;AAClB;AACA,IAAI,wDAAU;AACd;AACA,QAAQ,wDAAU;AAClB,QAAQ,wDAAU;AAClB;AACA,IAAI,wDAAU;AACd;AACA,QAAQ,wDAAU;AAClB,QAAQ,wDAAU;AAClB;AACA,IAAI,wDAAU;AACd;AACA,QAAQ,wDAAU;AAClB,QAAQ,wDAAU;AAClB;AACA,IAAI,wDAAU;AACd;AACA,QAAQ,wDAAU;AAClB,QAAQ,wDAAU;AAClB;AACA,IAAI,wDAAU;AACd;AACA,QAAQ,wDAAU;AAClB,QAAQ,wDAAU;AAClB;AACA,IAAI,wDAAU;AACd;AACA,QAAQ,wDAAU;AAClB,QAAQ,wDAAU;AAClB;AACA,IAAI,wDAAU;AACd;AACA,QAAQ,wDAAU;AAClB,QAAQ,wDAAU;AAClB;AACA,IAAI,wDAAU;AACd;AACA,QAAQ,wDAAU;AAClB,QAAQ,wDAAU;AAClB;AACA,IAAI,wDAAU;AACd;AACA,QAAQ,wDAAU;AAClB,QAAQ,wDAAU;AAClB;AACA;AACA,CAAC;;AAED;AACA;AACA,cAAc,uEAAuE;AACrF;AACA;AACA;AACA;AACA;AACA,SAAS,OAAO,uDAAS;AACzB;AACA;AACA,iBAAiB;AACjB;AACA;AACA,CAAC;;AAED;AACA;AACA,cAAc,uEAAuE;AACrF;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA,SAAS,OAAO,kDAAI;AACpB;AACA;AACA,iBAAiB;AACjB;AACA;AACA,qDAAqD;AACrD,SAAS;AACT,MAAM;AACN;AACA,CAAC;;AAED;AACA;AACA,cAAc,uEAAuE;AACrF;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,OAAO,uDAAS;AACzB;AACA,iBAAiB;AACjB;AACA;AACA,qEAAqE;AACrE,SAAS,OAAO,yDAAW;AAC3B,MAAM;AACN;AACA,CAAC;;AAED;AACA;AACA,cAAc,uEAAuE;AACrF;AACA,WAAW,EAAE;AACb;AACA,WAAW,EAAE;AACb;AACA,WAAW,OAAO;AAClB;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4DAA4D;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6DAA6D;AAC7D;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,4DAA4D;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6DAA6D;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,qEAAqE,4DAA4D,EAAE;AACnI;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yEAAyE,4DAA4D,EAAE;AACvI;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD,WAAW,EAAE;AACb;AACA,WAAW,EAAE;AACb;AACA;AACA,IAAI,uDAAS;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC,0DAAY;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,EAAE;AACzB;AACA;AACA;AACA;AACA,uBAAuB,EAAE;AACzB;AACA;AACA;AACA;AACA,uBAAuB,EAAE;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA,SAAS,OAAO,uDAAS;AACzB;AACA,yOAAyO,+SAA+S,eAAe,oCAAoC;AAC3kB,iBAAiB;AACjB;AACA;AACA,gEAAgE,WAAW;AAC3E;AACA,mBAAmB,OAAO,mDAAK,EAAE;AACjC,eAAe,OAAO,yDAAW,iCAAiC,GAAG,OAAO,mDAAK,EAAE;AACnF,gBAAgB,OAAO,mDAAK,EAAE;AAC9B,oBAAoB,OAAO,yDAAW,iCAAiC;AACvE,oBAAoB,OAAO,yDAAW,mCAAmC;AACzE,mBAAmB,OAAO,yDAAW,4CAA4C,GAAG,OAAO,mDAAK,EAAE;AAClG,yBAAyB,OAAO,yDAAW,kDAAkD,GAAG,OAAO,mDAAK,EAAE;AAC9G,gBAAgB,OAAO,yDAAW,wBAAwB,GAAG,OAAO,mDAAK,EAAE;AAC3E,cAAc,OAAO,yDAAW,sBAAsB,GAAG,OAAO,mDAAK,EAAE;AACvE,qBAAqB,OAAO,mDAAK,EAAE;AACnC,0BAA0B,OAAO,mDAAK,EAAE;AACxC,mBAAmB,OAAO,mDAAK,EAAE;AACjC,gBAAgB,OAAO,mDAAK,EAAE;AAC9B,gBAAgB,OAAO,mDAAK,EAAE;AAC9B,iBAAiB,OAAO,yDAAW,iCAAiC,GAAG,OAAO,mDAAK,EAAE;AACrF,6BAA6B,OAAO,oDAAM,EAAE;AAC5C,kBAAkB,OAAO,yDAAW,2CAA2C;AAC/E,gBAAgB,OAAO,yDAAW,yCAAyC;AAC3E,mBAAmB,OAAO,yDAAW,4CAA4C;AACjF,mBAAmB,OAAO,yDAAW,4CAA4C;AACjF;AACA;AACA,CAAC;AACD;AACA,IAAI,uDAAS;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC,0DAAY;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,4BAA4B;AAC5B;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,EAAE;AACzB;AACA;AACA;AACA;AACA,uBAAuB,EAAE;AACzB;AACA;AACA;AACA;AACA,uBAAuB,EAAE;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,OAAO,uDAAS;AACzB;AACA,uqBAAuqB,yJAAyJ,iDAAiD;AACj3B,iBAAiB;AACjB;AACA;AACA,kEAAkE;AAClE,SAAS,OAAO,uDAAS;AACzB,MAAM;AACN;AACA,oBAAoB,OAAO,yDAAW,qCAAqC;AAC3E,6BAA6B,OAAO,oDAAM,EAAE;AAC5C,cAAc,OAAO,yDAAW,sBAAsB,GAAG,OAAO,mDAAK,EAAE;AACvE,yBAAyB,OAAO,yDAAW,oDAAoD,GAAG,OAAO,mDAAK,EAAE;AAChH,0BAA0B,OAAO,mDAAK,EAAE;AACxC,gBAAgB,OAAO,mDAAK,EAAE;AAC9B,wBAAwB,OAAO,0DAAY,8CAA8C,0DAA0D,IAAI;AACvJ,mBAAmB,OAAO,mDAAK,EAAE;AACjC,eAAe,OAAO,mDAAK,EAAE;AAC7B,gBAAgB,OAAO,mDAAK,EAAE;AAC9B,iBAAiB,OAAO,mDAAK,EAAE;AAC/B,sBAAsB,OAAO,uDAAS,oBAAoB,eAAe,IAAI;AAC7E;AACA;AACA,CAAC;AACD;AACA,WAAW,EAAE;AACb,WAAW,EAAE;AACb,WAAW,GAAG;AACd,YAAY;AACZ;AACA;AACA,yBAAyB,SAAS;AAClC;AACA;AACA;AACA,WAAW,EAAE;AACb,WAAW,EAAE;AACb,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,OAAO,sDAAQ;AACxB;AACA;AACA,8BAA8B,4DAAY;AAC1C,iBAAiB;AACjB;AACA;AACA,CAAC;;AAED;AACA;AACA,cAAc,uEAAuE;AACrF;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,uDAAS;AACb;AACA;AACA;AACA;AACA,SAAS,OAAO,uDAAS;AACzB;AACA,uDAAuD,SAAS,KAAK,SAAS;AAC9E,iBAAiB;AACjB;AACA;AACA,CAAC;;AAED;AACA;AACA,cAAc,uEAAuE;AACrF;AACA;AACA;AACA;AACA;AACA,IAAI,uDAAS;AACb;AACA;AACA;AACA;AACA,6BAA6B,iDAAY;AACzC;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,kDAAK;AACjC;AACA,SAAS;AACT;AACA,mBAAmB,EAAE;AACrB,sCAAsC,EAAE;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB,gCAAgC,EAAE;AAClC,mBAAmB,EAAE;AACrB,wDAAwD,EAAE;AAC1D;AACA,mBAAmB,EAAE;AACrB,2EAA2E,iFAAiF,EAAE;AAC9J;AACA,0EAA0E,iFAAiF,EAAE;AAC7J;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,SAAS,OAAO,uDAAS;AACzB;AACA,iBAAiB;AACjB;AACA;AACA,mEAAmE,WAAW;AAC9E;AACA,kBAAkB,OAAO,mDAAK,sCAAsC;AACpE,sBAAsB,OAAO,0DAAY,gCAAgC;AACzE;AACA;AACA,CAAC;;AAED;AACA;AACA,cAAc,uEAAuE;AACrF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,OAAO,sDAAQ;AACxB;AACA;AACA;AACA;AACA,+CAA+C,4DAAY,uBAAuB,0DAAW,EAAE,kEAAmB;AAClH;AACA;AACA,iBAAiB;AACjB;AACA;AACA,CAAC;;AAED;AACA;AACA,cAAc,uEAAuE;AACrF;;AAEA;AACA;AACA,cAAc,uEAAuE;AACrF;AACA;AACA,IAAI,uDAAS;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,0DAAY;AAC9C;AACA;AACA;AACA,+BAA+B,0DAAY;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA;AACA,uCAAuC,sDAAQ;AAC/C,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,kCAAkC,sDAAQ,8CAA8C,cAAc,EAAE;AACxG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,OAAO,uDAAS;AACzB;AACA,8IAA8I,eAAe,gUAAgU,KAAK,wpBAAwpB,YAAY,6BAA6B,QAAQ,yBAAyB,cAAc;AACltC,iBAAiB;AACjB;AACA;AACA,wDAAwD;AACxD,SAAS,gCAAgC,OAAO,sDAAQ,EAAE,GAAG,OAAO,oDAAM,gCAAgC;AAC1G,MAAM;AACN;AACA,qBAAqB,OAAO,yDAAW,wCAAwC;AAC/E,wBAAwB,OAAO,yDAAW,2CAA2C;AACrF,4BAA4B,OAAO,yDAAW,kCAAkC;AAChF,gBAAgB,OAAO,mDAAK,EAAE;AAC9B,mBAAmB,OAAO,mDAAK,EAAE;AACjC,wBAAwB,OAAO,mDAAK,EAAE;AACtC,yBAAyB,OAAO,mDAAK,EAAE;AACvC,wBAAwB,OAAO,mDAAK,EAAE;AACtC,uBAAuB,OAAO,mDAAK,EAAE;AACrC,2BAA2B,OAAO,mDAAK,EAAE;AACzC,0BAA0B,OAAO,mDAAK,EAAE;AACxC,uBAAuB,OAAO,mDAAK,EAAE;AACrC,yBAAyB,OAAO,oDAAM,EAAE;AACxC,sBAAsB,OAAO,oDAAM,EAAE;AACrC;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA,SAAS,OAAO,sDAAQ;AACxB;AACA;AACA,8BAA8B,4DAAY,mBAAmB,0DAAW;AACxE,iBAAiB;AACjB;AACA;AACA,CAAC;;AAED;AACA;AACA,cAAc,uEAAuE;AACrF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA,0BAA0B,sDAAQ,0CAA0C,UAAU;AACtF;AACA,2BAA2B,EAAE;AAC7B;AACA,2BAA2B,EAAE;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,QAAQ,gBAAgB;AAC/C;AACA;AACA;AACA;AACA,qBAAqB,0BAA0B;AAC/C;AACA;AACA;AACA;AACA,SAAS,OAAO,kDAAI;AACpB;AACA,iBAAiB;AACjB;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA,0BAA0B,sDAAQ,sCAAsC,UAAU;AAClF;AACA,2BAA2B,EAAE;AAC7B;AACA;AACA;AACA;AACA,uBAAuB,QAAQ,gBAAgB;AAC/C;AACA;AACA;AACA;AACA,qBAAqB,0BAA0B;AAC/C;AACA;AACA;AACA;AACA,SAAS,OAAO,kDAAI;AACpB;AACA,iBAAiB;AACjB;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,6CAA6C,0BAA0B,EAAE;AACzE;AACA;AACA,SAAS,OAAO,kDAAI;AACpB;AACA,iBAAiB;AACjB;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,6CAA6C,yBAAyB,EAAE;AACxE;AACA;AACA,SAAS,OAAO,kDAAI;AACpB;AACA,iBAAiB;AACjB;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,SAAS,OAAO,kDAAI;AACpB;AACA;AACA,iBAAiB;AACjB;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA,uBAAuB,EAAE;AACzB;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,OAAO,kDAAI;AACpB;AACA;AACA,iBAAiB;AACjB;AACA;AACA,yDAAyD;AACzD,SAAS;AACT,MAAM;AACN;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,kCAAkC,sDAAQ,iCAAiC,cAAc,EAAE;AAC3F;AACA;AACA,SAAS,OAAO,kDAAI;AACpB;AACA;AACA,iBAAiB;AACjB;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,OAAO,kDAAI;AACpB;AACA;AACA,iBAAiB;AACjB;AACA;AACA,CAAC;;AAED;AACA;AACA,cAAc,uEAAuE;AACrF;AACA;AACA;AACA;AACA;AACA,SAAS,OAAO,sDAAQ;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,4DAAY;AACpC;AACA,iBAAiB;AACjB;AACA;AACA,CAAC;;AAED;AACA;AACA,cAAc,uEAAuE;AACrF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA,mEAAmE,kDAAkD,EAAE;AACvH,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,OAAO,uDAAS;AACzB,qCAAqC,qEAAuB;AAC5D;AACA;AACA,+CAA+C,4DAA4D,gSAAgS,8KAA8K,yNAAyN,gLAAgL;AACl8B,iBAAiB;AACjB;AACA;AACA,qEAAqE,WAAW;AAChF;AACA,kBAAkB,OAAO,mDAAK,EAAE;AAChC,gBAAgB,OAAO,mDAAK,EAAE;AAC9B,0BAA0B,OAAO,mDAAK,EAAE;AACxC,4BAA4B,OAAO,mDAAK,EAAE;AAC1C;AACA;AACA,CAAC;;AAED;AACA;AACA,cAAc,uEAAuE;AACrF;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,uDAAS;AACb;AACA;AACA;AACA;AACA;AACA;AACA,8CAA8C;AAC9C,SAAS,gCAAgC,OAAO,sDAAQ,EAAE,GAAG,OAAO,oDAAM,gCAAgC;AAC1G,MAAM;AACN;AACA,CAAC;AACD,WAAW,OAAO;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,OAAO,uDAAS;AACzB;AACA,iBAAiB;AACjB;AACA;AACA,gEAAgE;AAChE,SAAS,OAAO,yDAAW;AAC3B,MAAM;AACN;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA,SAAS,OAAO,uDAAS;AACzB;AACA,iBAAiB;AACjB;AACA;AACA,kEAAkE;AAClE,SAAS,OAAO,yDAAW;AAC3B,MAAM;AACN;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA,SAAS,OAAO,uDAAS;AACzB;AACA,iBAAiB;AACjB;AACA;AACA,0EAA0E;AAC1E,SAAS,OAAO,yDAAW;AAC3B,MAAM;AACN;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA,SAAS,OAAO,uDAAS;AACzB;AACA,iBAAiB;AACjB;AACA;AACA,2EAA2E;AAC3E,SAAS,OAAO,yDAAW;AAC3B,MAAM;AACN;AACA,CAAC;;AAED;AACA;AACA,cAAc,uEAAuE;AACrF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,gBAAgB;AAC5C,6BAA6B,iBAAiB;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,sCAAsC,qDAAqD;AAC3F;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA;AACA,mBAAmB;AACnB;AACA,mBAAmB,EAAE;AACrB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,EAAE;AACzB,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA,uBAAuB,EAAE;AACzB;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,OAAO,uDAAS;AACzB;AACA;AACA,8UAA8U,iWAAiW;AAC/qB,qCAAqC,qEAAuB;AAC5D,iBAAiB;AACjB;AACA;AACA,uDAAuD;AACvD,SAAS,oBAAoB;AAC7B,SAAS,OAAO,wDAAU,EAAE;AAC5B,SAAS,OAAO,uDAAS;AACzB,MAAM;AACN;AACA,sCAAsC,OAAO,uDAAS,6BAA6B,gBAAgB,IAAI;AACvG,uCAAuC,OAAO,uDAAS,8BAA8B,gBAAgB,IAAI;AACzG,oBAAoB,OAAO,mDAAK,EAAE;AAClC,kBAAkB,OAAO,mDAAK,EAAE;AAChC,gBAAgB,OAAO,yDAAW,wBAAwB;AAC1D,qBAAqB,OAAO,yDAAW,8BAA8B;AACrE,uBAAuB,OAAO,yDAAW,iCAAiC;AAC1E,uBAAuB,OAAO,yDAAW,qCAAqC;AAC9E,sBAAsB,OAAO,yDAAW,wCAAwC;AAChF,mBAAmB,OAAO,yDAAW,4BAA4B;AACjE,mBAAmB,OAAO,0DAAY,gCAAgC;AACtE,oBAAoB,OAAO,0DAAY,mCAAmC;AAC1E,mBAAmB,OAAO,0DAAY,kCAAkC;AACxE,kBAAkB,OAAO,0DAAY,iCAAiC;AACtE,iBAAiB,OAAO,mDAAK,EAAE;AAC/B;AACA;AACA,CAAC;;AAED;AACA;AACA,cAAc,uEAAuE;AACrF;AACA,WAAW,EAAE;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,gBAAgB;AAC5C,6BAA6B,iBAAiB;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,OAAO,uDAAS;AACzB;AACA;AACA,iBAAiB;AACjB;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,OAAO,uDAAS;AACzB;AACA;AACA,iBAAiB;AACjB;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,OAAO,uDAAS;AACzB;AACA;AACA,iBAAiB;AACjB;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,OAAO,uDAAS;AACzB;AACA;AACA,iBAAiB;AACjB;AACA;AACA,oBAAoB,OAAO,yDAAW,8CAA8C;AACpF;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,OAAO,uDAAS;AACzB;AACA;AACA,iBAAiB;AACjB;AACA;AACA,oBAAoB,OAAO,yDAAW,iDAAiD;AACvF;AACA;AACA,CAAC;AACD;AACA,IAAI,uDAAS;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,0DAAY;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,0DAAY;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC,0DAAY;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,0DAAY;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,uBAAuB,EAAE;AACzB;AACA;AACA;AACA,kCAAkC,sDAAQ,sCAAsC,UAAU;AAC1F;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,QAAQ,gBAAgB;AACvD;AACA;AACA;AACA;AACA,6BAA6B,0BAA0B;AACvD;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,uBAAuB,EAAE;AACzB;AACA;AACA;AACA,kCAAkC,sDAAQ,0CAA0C,UAAU;AAC9F;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,QAAQ,gBAAgB;AACvD;AACA;AACA;AACA;AACA,6BAA6B,0BAA0B;AACvD;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA,SAAS,OAAO,uDAAS;AACzB;AACA,idAAid;AACjd,iCAAiC,sDAAsD;AACvF,iBAAiB;AACjB;AACA;AACA,mDAAmD;AACnD,SAAS,OAAO,wDAAU,EAAE;AAC5B,SAAS,gCAAgC,OAAO,sDAAQ,EAAE,GAAG,OAAO,oDAAM,gCAAgC;AAC1G,MAAM;AACN;AACA,oBAAoB,OAAO,6DAAe,SAAS,gEAAU,cAAc,6BAA6B,EAAE,KAAK;AAC/G,6BAA6B,OAAO,0DAAY,yCAAyC,qDAAqD,IAAI;AAClJ,+BAA+B,OAAO,0DAAY,2CAA2C,uDAAuD,IAAI;AACxJ,uCAAuC,OAAO,0DAAY,mDAAmD,+DAA+D,IAAI;AAChL,wCAAwC,OAAO,0DAAY,oDAAoD,gEAAgE,IAAI;AACnL,qCAAqC,OAAO,mDAAK,EAAE;AACnD,oCAAoC,OAAO,uDAAS,8BAA8B,OAAO,yDAAW,gBAAgB,IAAI;AACxH,sCAAsC,OAAO,uDAAS,gCAAgC,OAAO,yDAAW,gBAAgB,IAAI;AAC5H,cAAc,OAAO,yDAAW,sBAAsB,GAAG,OAAO,mDAAK,EAAE;AACvE,4BAA4B,OAAO,mDAAK,EAAE;AAC1C,6BAA6B,OAAO,mDAAK,EAAE;AAC3C,qBAAqB,OAAO,mDAAK,EAAE;AACnC,qBAAqB,OAAO,oDAAM,EAAE;AACpC,sBAAsB,OAAO,oDAAM,EAAE;AACrC,4BAA4B,OAAO,oDAAM,EAAE;AAC3C,yBAAyB,OAAO,oDAAM,EAAE;AACxC,gBAAgB,OAAO,yDAAW,wBAAwB;AAC1D,uBAAuB,OAAO,yDAAW,mCAAmC;AAC5E,oBAAoB,OAAO,yDAAW,6BAA6B;AACnE,2BAA2B,OAAO,yDAAW,sCAAsC;AACnF,wBAAwB,OAAO,yDAAW,mCAAmC;AAC7E;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,OAAO,sDAAQ;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,4DAAY;AACpC;AACA;AACA,iBAAiB;AACjB;AACA;AACA,CAAC;;AAED;AACA;AACA,cAAc,uEAAuE;AACrF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB,oDAAoD;AACpD;AACA;AACA,2EAA2E,EAAE;AAC7E;AACA;AACA;AACA;AACA,SAAS,OAAO,kDAAI;AACpB;AACA,iBAAiB;AACjB;AACA;AACA,CAAC;;AAED;AACA;AACA,cAAc,uEAAuE;AACrF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,OAAO,sDAAQ;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,4DAAY;AACpC,wBAAwB,0DAAW;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,CAAC;;AAED;AACA;AACA,cAAc,uEAAuE;AACrF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,OAAO,sDAAQ;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,4DAAY;AACpC,wBAAwB,0DAAW;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA,iBAAiB;AACjB;AACA;AACA,CAAC;;AAED;AACA;AACA,cAAc,uEAAuE;AACrF;;AAEA;AACA;AACA,cAAc,uEAAuE;AACrF;AACA;AACA,IAAI,uDAAS;AACb;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA;AACA,qCAAqC,sDAAQ,sDAAsD,uBAAuB;AAC1H;AACA;AACA;AACA;AACA,uBAAuB,QAAQ,gBAAgB;AAC/C;AACA;AACA;AACA;AACA,qBAAqB,0BAA0B;AAC/C;AACA;AACA;AACA;AACA;AACA,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA;AACA,uBAAuB,EAAE;AACzB;AACA,uBAAuB,EAAE;AACzB,qEAAqE,6CAA6C,EAAE;AACpH,uBAAuB,EAAE;AACzB,uEAAuE,6CAA6C,EAAE;AACtH;AACA;AACA;AACA,2BAA2B,EAAE;AAC7B,0EAA0E,kCAAkC,EAAE;AAC9G,2BAA2B,EAAE;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,EAAE;AAC7B,2EAA2E,2CAA2C,EAAE;AACxH;AACA;AACA;AACA;AACA;AACA,2CAA2C,sDAAQ,4DAA4D,yBAAyB;AACxI;AACA;AACA;AACA;AACA,2BAA2B,QAAQ,gBAAgB;AACnD;AACA;AACA;AACA;AACA,yBAAyB,0BAA0B;AACnD;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA;AACA,kEAAkE,kEAAkE;AACpI,SAAS;AACT;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,2CAA2C,sDAAQ;AACnD;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB,mEAAmE,qCAAqC,EAAE;AAC1G;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA,uBAAuB,EAAE;AACzB,iEAAiE,uCAAuC,EAAE;AAC1G,uBAAuB,EAAE;AACzB,iEAAiE,uCAAuC,EAAE;AAC1G;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB,yBAAyB;AACzB,mBAAmB,EAAE;AACrB;AACA,uBAAuB,uBAAuB;AAC9C,uBAAuB,EAAE;AACzB;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB;AACvB;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA,cAAc,uEAAuE;AACrF;AACA,WAAW,OAAO;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,uDAAS;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB,+DAA+D,uBAAuB,EAAE,uBAAuB,gDAAgD,EAAE;AACjK,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,EAAE;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB,+DAA+D,uBAAuB,EAAE,uBAAuB,gDAAgD,EAAE;AACjK;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA,mBAAmB,sDAAQ,0EAA0E,uBAAuB,EAAE;AAC9H,uCAAuC,wCAAwC,EAAE;AACjF,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB,qEAAqE,oEAAoE,EAAE;AAC3I,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA,uBAAuB,EAAE;AACzB,iEAAiE,8CAA8C,EAAE;AACjH,uBAAuB,EAAE;AACzB;AACA;AACA,+CAA+C,sBAAsB;AACrE,2BAA2B,EAAE;AAC7B;AACA,qEAAqE,8CAA8C,EAAE;AACrH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,EAAE;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wEAAwE,4BAA4B;AACpG;AACA;AACA,2BAA2B,EAAE;AAC7B;AACA;AACA;AACA,iBAAiB;AACjB,sEAAsE,6CAA6C;AACnH;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB,qEAAqE,iFAAiF,EAAE;AACxJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB,gEAAgE,yDAAyD,EAAE;AAC3H,mBAAmB,EAAE;AACrB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,uBAAuB,EAAE;AACzB;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA,6EAA6E,qCAAqC,EAAE;AACpH;AACA;AACA,6CAA6C,sBAAsB;AACnE;AACA;AACA;AACA,2CAA2C,sBAAsB;AACjE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB,gEAAgE,yDAAyD,EAAE;AAC3H,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA;AACA,mBAAmB,EAAE;AACrB,yEAAyE;AACzE;AACA,4FAA4F,EAAE;AAC9F;AACA;AACA,yEAAyE;AACzE;AACA,gGAAgG,EAAE;AAClG;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA,4EAA4E,qCAAqC,EAAE;AACnH;AACA;AACA,6CAA6C,sBAAsB;AACnE;AACA;AACA;AACA,2CAA2C,sBAAsB;AACjE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB,gEAAgE,yDAAyD,EAAE;AAC3H,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA;AACA,mBAAmB,EAAE;AACrB,yEAAyE;AACzE;AACA,yFAAyF,EAAE;AAC3F;AACA;AACA,gEAAgE,wFAAwF,EAAE;AAC1J;AACA;AACA;AACA;AACA;AACA,yEAAyE;AACzE;AACA,6FAA6F,EAAE;AAC/F;AACA,mBAAmB,EAAE;AACrB;AACA,uBAAuB,EAAE;AACzB,yEAAyE,gCAAgC,EAAE;AAC3G;AACA;AACA;AACA,2CAA2C,sBAAsB;AACjE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB,gEAAgE,yDAAyD,EAAE;AAC3H,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,gCAAgC;AAChC;AACA,yFAAyF,EAAE;AAC3F;AACA;AACA,gEAAgE,wFAAwF,EAAE;AAC1J;AACA;AACA;AACA;AACA,uBAAuB,EAAE;AACzB;AACA;AACA;AACA,oCAAoC;AACpC;AACA,6FAA6F,EAAE;AAC/F;AACA,mBAAmB,EAAE;AACrB;AACA,uBAAuB,EAAE;AACzB,yEAAyE,gCAAgC,EAAE;AAC3G;AACA;AACA;AACA,2CAA2C,sBAAsB;AACjE;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,GAAG;AAClB,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,eAAe,GAAG;AAClB,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA;AACA,mCAAmC,mBAAmB;AACtD,mBAAmB,EAAE;AACrB,6DAA6D,oCAAoC,EAAE,wBAAwB,wCAAwC,EAAE;AACrK,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA,SAAS;AACT,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB,sDAAsD,+BAA+B,EAAE;AACvF;AACA;AACA;AACA;AACA;AACA,2CAA2C,sBAAsB;AACjE,uBAAuB,EAAE;AACzB;AACA,2BAA2B,EAAE;AAC7B;AACA,2BAA2B,EAAE;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,EAAE;AACzB;AACA,uBAAuB,EAAE;AACzB;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,GAAG;AAClB,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,eAAe,GAAG;AAClB,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA;AACA,mCAAmC,mBAAmB;AACtD,sCAAsC,kBAAkB;AACxD,mBAAmB,EAAE;AACrB,iEAAiE,oCAAoC,EAAE;AACvG,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA,SAAS;AACT,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB,sDAAsD,+BAA+B,EAAE;AACvF;AACA;AACA;AACA;AACA;AACA,2CAA2C,sBAAsB;AACjE,uBAAuB,EAAE;AACzB;AACA,2BAA2B,EAAE;AAC7B;AACA,2BAA2B,EAAE;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,EAAE;AACzB;AACA,uBAAuB,EAAE;AACzB;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA,uBAAuB,cAAc;AACrC;AACA;AACA;AACA,8BAA8B,YAAY;AAC1C;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,yDAAyD,kEAAkE,EAAE;AAC7H;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB,wEAAwE,sBAAsB,EAAE;AAChG,oEAAoE,6BAA6B,EAAE;AACnG,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB,wEAAwE,sBAAsB,EAAE;AAChG,oEAAoE,6BAA6B,EAAE;AACnG,mBAAmB,EAAE;AACrB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA,kBAAkB,4DAAO;AACzB;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,GAAG;AAClB,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,GAAG;AAClB,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA;AACA,mCAAmC,mBAAmB;AACtD,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA;AACA,kBAAkB,4DAAO;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA,2CAA2C,sBAAsB;AACjE;AACA,sBAAsB,4DAAO;AAC7B;AACA,gCAAgC,sBAAsB;AACtD,aAAa;AACb;AACA;AACA;AACA;AACA,2CAA2C,sBAAsB;AACjE;AACA,sBAAsB,4DAAO;AAC7B;AACA,gCAAgC,sBAAsB;AACtD,aAAa;AACb;AACA;AACA;AACA;AACA,4BAA4B,sBAAsB;AAClD;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,OAAO,wDAAU;AAC1B;AACA;AACA,CAAC;;AAED;AACA;AACA,cAAc,uEAAuE;AACrF;AACA,WAAW,EAAE;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,uDAAS;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA8C,0DAAY;AAC1D;AACA;AACA;AACA,iDAAiD,0DAAY;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,0DAAY;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA,+BAA+B,EAAE;AACjC,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,EAAE;AACzB;AACA,uBAAuB,EAAE;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,EAAE;AAC7B;AACA,2BAA2B,EAAE;AAC7B;AACA,2BAA2B,EAAE;AAC7B;AACA;AACA;AACA,qBAAqB;AACrB,iBAAiB;AACjB;AACA;AACA,iBAAiB;AACjB,2BAA2B,EAAE;AAC7B;AACA;AACA;AACA,qBAAqB;AACrB,iBAAiB;AACjB;AACA;AACA,iBAAiB;AACjB;AACA,2BAA2B,EAAE;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,6BAA6B,4BAA4B;AACzD,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,4BAA4B;AACzD,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA,uBAAuB,EAAE;AACzB,0BAA0B,uDAAS;AACnC;AACA;AACA;AACA,uBAAuB,EAAE;AACzB;AACA;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,0BAA0B,gEAAgE;AAC1F;AACA,aAAa,iEAAiE;AAC9E,aAAa,iEAAiE;AAC9E,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,gEAAgE;AAC1F;AACA,QAAQ,iEAAiE;AACzE,QAAQ,iEAAiE;AACzE,QAAQ;AACR;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,gEAAgE;AAC1F;AACA,QAAQ,iEAAiE;AACzE,QAAQ,iEAAiE;AACzE,QAAQ;AACR;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC;AACjC,qCAAqC;AACrC,6DAA6D;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC;AACjC,qCAAqC;AACrC,6DAA6D;AAC7D;AACA;AACA,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,iCAAiC;AACjC,qCAAqC;AACrC,6DAA6D;AAC7D;AACA;AACA,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA,wDAAwD,0CAA0C,EAAE;AACpG,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,2BAA2B,EAAE;AAC7B;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,6DAA6D,oCAAoC,EAAE;AACnG;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA,uBAAuB,EAAE;AACzB;AACA;AACA,aAAa;AACb;AACA,wBAAwB;AACxB;AACA;AACA;AACA;AACA,uBAAuB,6BAA6B;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB,2DAA2D,0CAA0C,EAAE;AACvG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,uBAAuB,EAAE;AACzB;AACA,uBAAuB,EAAE;AACzB,+DAA+D,0CAA0C,EAAE;AAC3G;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA,uBAAuB,EAAE;AACzB;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA,uBAAuB,EAAE;AACzB;AACA,uBAAuB,EAAE;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA,iCAAiC,gEAAS;AAC1C;AACA;AACA,SAAS;AACT;AACA;AACA,gBAAgB;AAChB;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA,uBAAuB,EAAE;AACzB;AACA;AACA;AACA,+BAA+B,EAAE;AACjC;AACA;AACA,iBAAiB;AACjB;AACA,+BAA+B,EAAE;AACjC;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,GAAG;AAClB,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,GAAG;AAClB,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA,oCAAoC,oBAAoB;AACxD,iCAAiC,iBAAiB;AAClD;AACA,uBAAuB,EAAE;AACzB;AACA,uBAAuB,EAAE;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,wCAAwC,sDAAQ,mDAAmD,sBAAsB;AACzH;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,QAAQ,gBAAgB;AACnD;AACA;AACA;AACA;AACA,yBAAyB,0BAA0B;AACnD;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,OAAO,uDAAS;AACzB,qCAAqC,qEAAuB;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,2DAA2D;AACpF,yBAAyB,6CAA6C,gEAAU,cAAc,yBAAyB,EAAE,GAAG;AAC5H;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uhBAAuhB,iBAAiB,kiBAAkiB,6BAA6B,+CAA+C,qDAAqD,gkDAAgkD,4BAA4B,qCAAqC,mHAAmH,8HAA8H,WAAW,kBAAkB,iMAAiM,6FAA6F,8EAA8E,gfAAgf,6GAA6G,4MAA4M,oCAAoC,aAAa,oMAAoM,2sNAA2sN,WAAW,gBAAgB,yVAAyV,0BAA0B,0GAA0G,kBAAkB,uXAAuX,iBAAiB,uJAAuJ,gFAAgF,4KAA4K,gFAAgF,mMAAmM,WAAW,gEAAgE,sGAAsG,mBAAmB,8fAA8f,WAAW,6BAA6B,wQAAwQ,WAAW,gCAAgC,ghBAAghB,gEAAgE;AACp1c,iBAAiB;AACjB;AACA;AACA,cAAc,OAAO,yDAAW,sBAAsB,GAAG,OAAO,mDAAK,EAAE;AACvE,gBAAgB,OAAO,mDAAK,EAAE;AAC9B,+BAA+B,OAAO,mDAAK,EAAE;AAC7C,qCAAqC,OAAO,oDAAM,EAAE;AACpD,kCAAkC,OAAO,mDAAK,EAAE;AAChD,wCAAwC,OAAO,oDAAM,EAAE;AACvD,0BAA0B,OAAO,mDAAK,EAAE;AACxC,8BAA8B,OAAO,mDAAK,EAAE;AAC5C,2BAA2B,OAAO,mDAAK,EAAE;AACzC,4BAA4B,OAAO,mDAAK,EAAE;AAC1C,0BAA0B,OAAO,oDAAM,EAAE;AACzC,yBAAyB,OAAO,0DAAY,0CAA0C,sDAAsD,IAAI;AAChJ,0BAA0B,OAAO,0DAAY,sCAAsC,mCAAmC,IAAI;AAC1H,mCAAmC,OAAO,uDAAS,6BAA6B,OAAO,yDAAW,gBAAgB,IAAI;AACtH,qBAAqB,OAAO,uDAAS,uBAAuB,gBAAgB,IAAI;AAChF;AACA;AACA,CAAC;;AAED;AACA;AACA,cAAc,uEAAuE;AACrF;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,EAAE;AACrC;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,OAAO,kDAAI;AACpB;AACA;AACA,iBAAiB;AACjB;AACA;AACA,qDAAqD;AACrD,SAAS;AACT,MAAM;AACN;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA,mCAAmC,EAAE;AACrC;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB,qBAAqB;AACrB,mBAAmB,EAAE;AACrB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB,0BAA0B;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,OAAO,kDAAI;AACpB;AACA;AACA,iBAAiB;AACjB;AACA;AACA,sDAAsD;AACtD,SAAS;AACT,MAAM;AACN;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,GAAG;AAClB,eAAe,GAAG;AAClB,eAAe,GAAG;AAClB,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,eAAe,GAAG;AAClB,eAAe,GAAG;AAClB,eAAe,GAAG;AAClB,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA,8BAA8B,UAAU;AACxC,iCAAiC,cAAc;AAC/C;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,OAAO,kDAAI;AACpB;AACA;AACA,iBAAiB;AACjB;AACA;AACA,oDAAoD;AACpD,SAAS;AACT,MAAM;AACN;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA,SAAS,OAAO,kDAAI;AACpB;AACA;AACA,iBAAiB;AACjB;AACA;AACA,uDAAuD;AACvD,SAAS;AACT,MAAM;AACN;AACA,CAAC;;AAED;AACA;AACA,cAAc,uEAAuE;AACrF;AACA;AACA,IAAI,uDAAS;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA,SAAS,OAAO,uDAAS;AACzB,qCAAqC,qEAAuB;AAC5D;AACA;AACA,2KAA2K,iCAAiC,ssBAAssB,wBAAwB,aAAa,sDAAsD,y2FAAy2F,0DAA0D,yBAAyB,6RAA6R,+6CAA+6C,yOAAyO;AAC91L,iCAAiC,wCAAwC,gEAAU,cAAc,4BAA4B,EAAE,GAAG;AAClI,iBAAiB;AACjB;AACA;AACA,sDAAsD;AACtD,SAAS,2BAA2B;AACpC,SAAS,2BAA2B;AACpC,SAAS,gCAAgC;AACzC,SAAS,OAAO,wDAAU,EAAE;AAC5B,SAAS,OAAO,+DAAiB;AACjC,MAAM;AACN;AACA,4BAA4B,OAAO,yDAAW,sCAAsC;AACpF;AACA;AACA,CAAC;;AAED;AACA;AACA,cAAc,uEAAuE;AACrF;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,EAAE;AACrC;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA,uBAAuB,EAAE;AACzB;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC,sBAAsB,EAAE;AACjE,oDAAoD,sDAAQ;AAC5D;AACA,uBAAuB,4BAA4B;AACnD,uBAAuB,EAAE;AACzB;AACA,uBAAuB,EAAE;AACzB;AACA,uBAAuB,EAAE;AACzB;AACA,uBAAuB,EAAE;AACzB;AACA;AACA;AACA;AACA,4CAA4C,EAAE;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,EAAE;AAC7B;AACA,+BAA+B,yBAAyB;AACxD,+BAA+B,EAAE;AACjC;AACA,+BAA+B,EAAE;AACjC;AACA,+BAA+B,EAAE;AACjC;AACA,+BAA+B,EAAE;AACjC;AACA,+BAA+B,EAAE;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,EAAE;AAC7B;AACA,2BAA2B,EAAE;AAC7B;AACA,2BAA2B,EAAE;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,EAAE;AAC7B;AACA;AACA;AACA;AACA,2BAA2B,EAAE;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,EAAE;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB,qFAAqF,4BAA4B,EAAE,oBAAoB,aAAa,EAAE;AACtJ;AACA,uBAAuB,EAAE;AACzB,sEAAsE,6BAA6B,EAAE;AACrG,uBAAuB,EAAE;AACzB;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS,OAAO,kDAAI;AACpB;AACA;AACA,iBAAiB;AACjB;AACA;AACA,qDAAqD;AACrD,SAAS;AACT,MAAM;AACN;AACA,CAAC;;AAED;AACA;AACA,cAAc,uEAAuE;AACrF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,OAAO,sDAAQ;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,4DAAY;AACpC,wBAAwB,0DAAW;AACnC;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA,IAAI,wDAAU;AACd;AACA,QAAQ,wDAAU;AAClB,QAAQ,wDAAU;AAClB,QAAQ,wDAAU;AAClB;AACA;AACA,CAAC;;AAED;AACA;AACA,cAAc,uEAAuE;AACrF;;AAEA;AACA;AACA,cAAc,uEAAuE;AACrF;AACA;AACA,IAAI,uDAAS;AACb;AACA;AACA;AACA;AACA,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB,oEAAoE,mFAAmF,EAAE;AACzJ,iCAAiC,iBAAiB,EAAE;AACpD;AACA,uBAAuB,EAAE;AACzB,yFAAyF,0CAA0C,EAAE,oBAAoB,aAAa,EAAE;AACxK;AACA,2BAA2B,EAAE;AAC7B,0EAA0E,6BAA6B,EAAE;AACzG,2BAA2B,EAAE;AAC7B;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA;AACA,uBAAuB,EAAE;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,GAAG;AAClB,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,GAAG;AAClB,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,EAAE;AACzB;AACA;AACA,2BAA2B,EAAE;AAC7B;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA,uBAAuB,EAAE;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA,uBAAuB,EAAE;AACzB;AACA,uBAAuB,EAAE;AACzB;AACA,kEAAkE,2BAA2B,EAAE;AAC/F;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA,gDAAgD,+BAA+B,EAAE;AACjF;AACA;AACA;AACA;AACA,mCAAmC,4BAA4B;AAC/D,mCAAmC,EAAE;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,EAAE;AACzB;AACA;AACA,6CAA6C,+BAA+B,EAAE;AAC9E;AACA,uBAAuB,EAAE;AACzB;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,EAAE;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,uBAAuB,EAAE;AACzB;AACA,uBAAuB,EAAE;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA,0BAA0B,sDAAQ,kCAAkC,UAAU;AAC9E;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,QAAQ,gBAAgB;AAC/C;AACA;AACA;AACA;AACA,qBAAqB,0BAA0B;AAC/C;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA,uBAAuB,EAAE;AACzB;AACA;AACA,2BAA2B,EAAE;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA,cAAc,uEAAuE;AACrF;AACA;AACA,IAAI,uDAAS;AACb;AACA;AACA;AACA;AACA;AACA,eAAe,GAAG;AAClB,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,GAAG;AAClB,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA,mCAAmC,mBAAmB;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA,cAAc,uEAAuE;AACrF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,OAAO,uDAAS;AACzB;AACA,iBAAiB;AACjB;AACA;AACA,0EAA0E;AAC1E,SAAS,OAAO,yDAAW;AAC3B,MAAM;AACN;AACA,CAAC;;AAED;AACA;AACA,cAAc,uEAAuE;AACrF;AACA,WAAW,EAAE;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,uDAAS;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C,0DAAY;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,0DAAY;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA,+BAA+B,EAAE;AACjC,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA,8BAA8B,gEAAS;AACvC;AACA,SAAS;AACT;AACA;AACA,gBAAgB;AAChB;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA,uBAAuB,EAAE;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,EAAE;AACrC;AACA;AACA,uCAAuC,EAAE;AACzC;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC,sDAAQ,6CAA6C,oBAAoB;AAC/G;AACA;AACA;AACA;AACA,2BAA2B,QAAQ,gBAAgB;AACnD;AACA;AACA;AACA;AACA,yBAAyB,0BAA0B;AACnD;AACA,4CAA4C,sDAAQ;AACpD;AACA;AACA,uBAAuB,EAAE;AACzB;AACA,uBAAuB,EAAE;AACzB;AACA;AACA,2BAA2B,EAAE;AAC7B;AACA;AACA;AACA;AACA;AACA,2BAA2B,EAAE;AAC7B;AACA,2BAA2B,EAAE;AAC7B;AACA;AACA,+BAA+B,EAAE;AACjC;AACA,2DAA2D,oCAAoC,EAAE;AACjG;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C,QAAQ;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC;AACnC;AACA;AACA,eAAe,EAAE;AACjB,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC;AACnC;AACA;AACA,eAAe,EAAE;AACjB,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA;AACA;AACA,uBAAuB,EAAE;AACzB;AACA;AACA;AACA;AACA;AACA,uBAAuB,EAAE;AACzB;AACA;AACA;AACA;AACA,mDAAmD,4BAA4B;AAC/E;AACA;AACA;AACA;AACA;AACA,2BAA2B,EAAE;AAC7B;AACA,2BAA2B,EAAE;AAC7B;AACA;AACA,+BAA+B,EAAE;AACjC;AACA,+BAA+B,EAAE;AACjC;AACA,0CAA0C,sDAAQ;AAClD;AACA,sDAAsD,EAAE;AACxD;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC,aAAa;AACnD;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,EAAE;AAC7B;AACA,uDAAuD,eAAe;AACtE;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA;AACA,uBAAuB,EAAE;AACzB;AACA,uBAAuB,EAAE;AACzB;AACA;AACA;AACA;AACA,2BAA2B,EAAE;AAC7B;AACA,2BAA2B,EAAE;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4DAA4D,4DAAO;AACnE;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,GAAG;AAClB,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,GAAG;AAClB,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA,oCAAoC,oBAAoB;AACxD,iCAAiC,iBAAiB;AAClD,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA,4BAA4B,WAAW;AACvC;AACA;AACA;AACA,uBAAuB,EAAE;AACzB,gFAAgF,oDAAoD,EAAE;AACtI;AACA;AACA;AACA;AACA;AACA,SAAS,OAAO,uDAAS;AACzB,qCAAqC,qEAAuB;AAC5D;AACA;AACA,2qCAA2qC,qfAAqf,4FAA4F,4MAA4M,oCAAoC,aAAa,oMAAoM,mjNAAmjN,WAAW,gBAAgB,sXAAsX,0BAA0B,0GAA0G,kBAAkB,2WAA2W,WAAW,gEAAgE,sGAAsG,mBAAmB,8fAA8f,WAAW,6BAA6B,wQAAwQ,WAAW,gCAAgC,2cAA2c,gEAAgE;AAC1qW;AACA;AACA;AACA;AACA,yBAAyB,4EAA4E;AACrG,yBAAyB,+DAA+D;AACxF,yBAAyB,6CAA6C,gEAAU,cAAc,6BAA6B,EAAE,GAAG;AAChI;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,cAAc,OAAO,yDAAW,sBAAsB,GAAG,OAAO,mDAAK,EAAE;AACvE,gBAAgB,OAAO,mDAAK,EAAE;AAC9B,wBAAwB,OAAO,mDAAK,EAAE;AACtC,sBAAsB,OAAO,mDAAK,EAAE;AACpC,0BAA0B,OAAO,mDAAK,EAAE;AACxC,2BAA2B,OAAO,mDAAK,EAAE;AACzC,0BAA0B,OAAO,mDAAK,EAAE;AACxC,2BAA2B,OAAO,mDAAK,EAAE;AACzC,iCAAiC,OAAO,oDAAM,EAAE;AAChD,8BAA8B,OAAO,0DAAY,mDAAmD,+DAA+D,IAAI;AACvK,uCAAuC,OAAO,mDAAK,EAAE;AACrD,gCAAgC,OAAO,mDAAK,EAAE;AAC9C,uBAAuB,OAAO,oDAAM,EAAE;AACtC,iCAAiC,OAAO,uDAAS,mCAAmC,OAAO,yDAAW,gBAAgB,IAAI;AAC1H;AACA;AACA,CAAC;;AAED;AACA;AACA,cAAc,uEAAuE;AACrF;AACA;AACA,IAAI,uDAAS;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA,yBAAyB,EAAE;AAC3B,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,OAAO,uDAAS;AACzB,qCAAqC,qEAAuB;AAC5D;AACA,msBAAmsB,wBAAwB,aAAa,sDAAsD;AAC9xB,iCAAiC,wCAAwC,gEAAU,cAAc,gCAAgC,EAAE,GAAG;AACtI,iBAAiB;AACjB;AACA;AACA,iBAAiB,OAAO,0DAAY,uBAAuB;AAC3D,mBAAmB,OAAO,mDAAK,EAAE;AACjC,oBAAoB,OAAO,yDAAW,iCAAiC;AACvE;AACA;AACA,CAAC;;AAED;AACA;AACA,cAAc,uEAAuE;AACrF;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,EAAE;AACrC;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA;AACA,uBAAuB,EAAE;AACzB;AACA;AACA;AACA;AACA;AACA,uBAAuB,EAAE;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,uBAAuB,EAAE;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,uBAAuB,uBAAuB;AAC9C,uBAAuB,EAAE;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,uBAAuB,uBAAuB;AAC9C,uBAAuB,EAAE;AACzB;AACA,uBAAuB,EAAE;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,OAAO,kDAAI;AACpB;AACA;AACA,iBAAiB;AACjB;AACA;AACA,+DAA+D;AAC/D,SAAS;AACT,MAAM;AACN;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA,mCAAmC,EAAE;AACrC;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA,gEAAgE,eAAe,EAAE;AACjF;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,uBAAuB,uBAAuB;AAC9C,uBAAuB,EAAE;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA,SAAS,OAAO,kDAAI;AACpB;AACA;AACA,iBAAiB;AACjB;AACA;AACA,4DAA4D;AAC5D,SAAS;AACT,MAAM;AACN;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA,mCAAmC,EAAE;AACrC;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,qCAAqC,sDAAQ,0CAA0C,mBAAmB;AAC1G;AACA;AACA;AACA;AACA;AACA,2BAA2B,QAAQ,gBAAgB;AACnD;AACA;AACA;AACA;AACA,yBAAyB,0BAA0B;AACnD;AACA;AACA;AACA;AACA,SAAS,OAAO,kDAAI;AACpB;AACA;AACA,iBAAiB;AACjB;AACA;AACA,yDAAyD;AACzD,SAAS;AACT,MAAM;AACN;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA,mCAAmC,EAAE;AACrC;AACA;AACA,eAAe,EAAE;AACjB,eAAe,GAAG;AAClB,eAAe,GAAG;AAClB,eAAe,GAAG;AAClB,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,eAAe,GAAG;AAClB,eAAe,GAAG;AAClB,eAAe,GAAG;AAClB,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA,8BAA8B,UAAU;AACxC,iCAAiC,cAAc;AAC/C,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA,qBAAqB,EAAE;AACvB;AACA;AACA;AACA,SAAS,OAAO,kDAAI;AACpB;AACA;AACA,iBAAiB;AACjB;AACA;AACA,wDAAwD;AACxD,SAAS;AACT,MAAM;AACN;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA,mCAAmC,EAAE;AACrC;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA,uBAAuB,EAAE;AACzB;AACA;AACA,2BAA2B,EAAE;AAC7B;AACA;AACA;AACA;AACA,2BAA2B,EAAE;AAC7B;AACA,2BAA2B,EAAE;AAC7B;AACA;AACA,+BAA+B,EAAE;AACjC;AACA;AACA;AACA;AACA,+BAA+B,EAAE;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,OAAO,kDAAI;AACpB;AACA;AACA,iBAAiB;AACjB;AACA;AACA,6DAA6D;AAC7D,SAAS;AACT,MAAM;AACN;AACA,CAAC;;AAED;AACA;AACA,cAAc,uEAAuE;AACrF;AACA;AACA,IAAI,uDAAS;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,EAAE;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA;AACA,uBAAuB,EAAE;AACzB;AACA;AACA;AACA,mBAAmB,EAAE;AACrB,gDAAgD,sDAAQ;AACxD,mCAAmC,0CAA0C,EAAE;AAC/E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA,SAAS,OAAO,uDAAS;AACzB,qCAAqC,qEAAuB;AAC5D;AACA,whBAAwhB,kLAAkL,kwCAAkwC,OAAO,gKAAgK,mDAAmD,iJAAiJ,WAAW,mBAAmB,gkBAAgkB;AACr5F;AACA,iBAAiB;AACjB;AACA;AACA,2DAA2D;AAC3D,SAAS,gCAAgC;AACzC,SAAS,2BAA2B;AACpC,SAAS,2BAA2B;AACpC,SAAS,OAAO,+DAAiB,EAAE;AACnC,SAAS,OAAO,wDAAU,EAAE;AAC5B,SAAS,OAAO,oDAAM,EAAE;AACxB,SAAS,8BAA8B;AACvC,SAAS,gCAAgC,OAAO,oDAAM,SAAS,wDAAQ,IAAI,GAAG;AAC9E,SAAS;AACT,MAAM;AACN;AACA,oBAAoB,OAAO,mDAAK,EAAE;AAClC,iBAAiB,OAAO,mDAAK,EAAE;AAC/B,yBAAyB,OAAO,mDAAK,EAAE;AACvC,qBAAqB,OAAO,uDAAS,uBAAuB,OAAO,wDAAU,iBAAiB,IAAI;AAClG,0BAA0B,OAAO,uDAAS,4BAA4B,OAAO,wDAAU,iBAAiB,IAAI;AAC5G,iCAAiC,OAAO,uDAAS,mCAAmC,OAAO,wDAAU,iBAAiB,IAAI;AAC1H,mCAAmC,OAAO,uDAAS,qCAAqC,OAAO,yDAAW,gBAAgB,IAAI;AAC9H,oCAAoC,OAAO,uDAAS,sCAAsC,OAAO,yDAAW,gBAAgB,IAAI;AAChI,qBAAqB,OAAO,mDAAK,EAAE;AACnC;AACA;AACA,CAAC;;AAED;AACA;AACA,cAAc,uEAAuE;AACrF;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,EAAE;AACrC;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA,uBAAuB,uBAAuB;AAC9C,uBAAuB,EAAE;AACzB;AACA;AACA,uBAAuB,EAAE;AACzB;AACA;AACA,2BAA2B,EAAE;AAC7B;AACA,2BAA2B,EAAE;AAC7B;AACA;AACA,+BAA+B,EAAE;AACjC;AACA;AACA,mCAAmC,EAAE;AACrC,sEAAsE,+BAA+B,EAAE,oBAAoB,eAAe,EAAE;AAC5I;AACA,mCAAmC,EAAE;AACrC;AACA,mCAAmC,EAAE;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,EAAE;AAC7B,qEAAqE,+BAA+B,EAAE,oBAAoB,eAAe,EAAE;AAC3I;AACA,2BAA2B,EAAE;AAC7B;AACA,2BAA2B,EAAE;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB,qFAAqF,4BAA4B,EAAE,oBAAoB,aAAa,EAAE;AACtJ,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,EAAE;AACzB,sEAAsE,6BAA6B,EAAE;AACrG,uBAAuB,EAAE;AACzB;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS,OAAO,kDAAI;AACpB;AACA;AACA,iBAAiB;AACjB;AACA;AACA,yDAAyD;AACzD,SAAS;AACT,MAAM;AACN;AACA,CAAC;;AAED;AACA;AACA,cAAc,uEAAuE;AACrF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,OAAO,sDAAQ;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,4DAAY;AACpC,wBAAwB,0DAAW;AACnC;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,CAAC;;AAED;AACA;AACA,cAAc,uEAAuE;AACrF;;AAEA;AACA;AACA,cAAc,uEAAuE;AACrF;;AAEA;AACA;AACA,cAAc,uEAAuE;AACrF;AACA;AACA,IAAI,uDAAS;AACb;AACA;AACA;AACA;AACA;AACA,eAAe,GAAG;AAClB,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,GAAG;AAClB,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA,mCAAmC,mBAAmB;AACtD;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA;AACA,uBAAuB,EAAE;AACzB;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB,2EAA2E,6BAA6B,EAAE;AAC1G;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA,mCAAmC,mBAAmB;AACtD,mBAAmB,EAAE;AACrB;AACA;AACA,uBAAuB,EAAE;AACzB;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA;AACA,uBAAuB,EAAE;AACzB;AACA,uBAAuB,EAAE;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,EAAE;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA,uBAAuB,EAAE;AACzB;AACA,uBAAuB,EAAE;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,uBAAuB,EAAE;AACzB;AACA,uBAAuB,EAAE;AACzB;AACA,uBAAuB,EAAE;AACzB;AACA,uBAAuB,EAAE;AACzB;AACA;AACA,oEAAoE,qEAAqE,EAAE;AAC3I;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA,uBAAuB,EAAE;AACzB;AACA,uBAAuB,EAAE;AACzB;AACA,uBAAuB,EAAE;AACzB;AACA,uBAAuB,EAAE;AACzB;AACA;AACA,2BAA2B,EAAE;AAC7B;AACA;AACA;AACA;AACA;AACA,+BAA+B,EAAE;AACjC;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA,uBAAuB,EAAE;AACzB;AACA,uBAAuB,EAAE;AACzB;AACA,uBAAuB,EAAE;AACzB;AACA,uBAAuB,EAAE;AACzB;AACA;AACA,oEAAoE,wEAAwE,EAAE;AAC9I;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA,uBAAuB,EAAE;AACzB;AACA,uBAAuB,EAAE;AACzB;AACA,uBAAuB,EAAE;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA;AACA,mCAAmC,mBAAmB;AACtD;AACA;AACA;AACA,uBAAuB,EAAE;AACzB;AACA,uBAAuB,EAAE;AACzB;AACA,uBAAuB,EAAE;AACzB;AACA,uBAAuB,EAAE;AACzB;AACA,uBAAuB,EAAE;AACzB;AACA,uBAAuB,EAAE;AACzB;AACA,uBAAuB,EAAE;AACzB;AACA;AACA,uBAAuB,EAAE;AACzB;AACA,uBAAuB,EAAE;AACzB;AACA;AACA,2EAA2E,4DAA4D,EAAE;AACzI;AACA;AACA,2BAA2B,EAAE;AAC7B;AACA;AACA,2BAA2B,EAAE;AAC7B;AACA;AACA,+DAA+D,4DAA4D,EAAE;AAC7H;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,4DAAO;AACjC;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB,uEAAuE,mCAAmC,EAAE;AAC5G,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA,uBAAuB,EAAE;AACzB;AACA,uBAAuB,EAAE;AACzB;AACA;AACA;AACA;AACA;AACA,2BAA2B,EAAE;AAC7B;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iDAAiD,2BAA2B;AAC5E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA,uBAAuB,EAAE;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA,uBAAuB,EAAE;AACzB;AACA,uBAAuB,EAAE;AACzB;AACA;AACA,2BAA2B,EAAE;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA,uBAAuB,EAAE;AACzB;AACA,uBAAuB,EAAE;AACzB;AACA,uBAAuB,EAAE;AACzB;AACA,uBAAuB,EAAE;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,EAAE;AAC7B;AACA;AACA,+BAA+B,EAAE;AACjC;AACA;AACA;AACA;AACA,+BAA+B,EAAE;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,EAAE;AACzB;AACA;AACA;AACA;AACA,uBAAuB,EAAE;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,EAAE;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,EAAE;AAC7B;AACA,2BAA2B,EAAE;AAC7B;AACA;AACA,+BAA+B,EAAE;AACjC;AACA;AACA;AACA;AACA;AACA,mCAAmC,EAAE;AACrC;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA,uBAAuB,EAAE;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,EAAE;AACzB;AACA;AACA;AACA;AACA;AACA,2BAA2B,EAAE;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA,2DAA2D,gEAAgE,EAAE;AAC7H;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA;AACA,uBAAuB,EAAE;AACzB;AACA;AACA;AACA;AACA,SAAS;AACT,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA,8DAA8D,6DAA6D,EAAE;AAC7H;AACA;AACA,uBAAuB,EAAE;AACzB;AACA,uBAAuB,EAAE;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA,oBAAoB;AACpB;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA,oBAAoB;AACpB;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA,uBAAuB,EAAE;AACzB;AACA,uBAAuB,EAAE;AACzB;AACA;AACA,uBAAuB,EAAE;AACzB;AACA,uBAAuB,EAAE;AACzB;AACA,uBAAuB,EAAE;AACzB;AACA,uBAAuB,EAAE;AACzB;AACA,uBAAuB,EAAE;AACzB;AACA,uBAAuB,EAAE;AACzB;AACA;AACA;AACA,0EAA0E,sBAAsB,sBAAsB,EAAE,EAAE;AAC1H;AACA;AACA,8BAA8B,sBAAsB;AACpD;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB,mEAAmE,oEAAoE,EAAE;AACzI,6FAA6F,uBAAuB,EAAE;AACtH;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,GAAG;AAClB,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,GAAG;AAClB,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA,uBAAuB,EAAE;AACzB;AACA,uBAAuB,EAAE;AACzB;AACA,uBAAuB,EAAE;AACzB;AACA,uBAAuB,EAAE;AACzB;AACA,uBAAuB,EAAE;AACzB;AACA;AACA,uBAAuB,EAAE;AACzB;AACA;AACA,uBAAuB,EAAE;AACzB;AACA,uBAAuB,EAAE;AACzB;AACA,uBAAuB,EAAE;AACzB;AACA;AACA;AACA;AACA,+BAA+B,EAAE;AACjC;AACA;AACA,kCAAkC,sBAAsB;AACxD,iBAAiB;AACjB;AACA;AACA;AACA,kCAAkC,sBAAsB;AACxD,iBAAiB;AACjB;AACA;AACA,8BAA8B,sBAAsB;AACpD;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA,kBAAkB,4DAAO;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,qDAAqD,sBAAsB;AAC3E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,4DAAO;AAC7B;AACA,SAAS;AACT;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA;AACA,uEAAuE,6DAA6D,mDAAmD,EAAE,EAAE;AAC3L;AACA;AACA,gEAAgE,mDAAmD;AACnH;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA;AACA,sEAAsE,+DAA+D,mDAAmD,EAAE,EAAE;AAC5L;AACA;AACA,kEAAkE,mDAAmD;AACrH;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,8DAA8D,oCAAoC,EAAE;AACpG;AACA;AACA,CAAC;;AAED;AACA;AACA,cAAc,uEAAuE;AACrF;AACA,WAAW,EAAE;AACb;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA,wBAAwB,gDAAgD;AACxE;AACA;AACA;AACA;AACA;AACA,IAAI,uDAAS;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC,EAAE;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,wFAAwF,iCAAiC,EAAE;AAC3H;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA;AACA,uBAAuB,EAAE;AACzB;AACA;AACA;AACA,SAAS;AACT,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA,uBAAuB,EAAE;AACzB;AACA,yBAAyB,EAAE,8CAA8C,EAAE;AAC3E,SAAS;AACT;AACA,uBAAuB,EAAE;AACzB;AACA;AACA,2BAA2B,EAAE;AAC7B;AACA;AACA;AACA,aAAa;AACb,yBAAyB,EAAE;AAC3B,yBAAyB,EAAE;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA;AACA,uBAAuB,EAAE;AACzB;AACA,+BAA+B,EAAE;AACjC,6BAA6B,EAAE,8CAA8C,EAAE;AAC/E;AACA;AACA,6BAA6B,EAAE;AAC/B;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mEAAmE;AACnE,SAAS,gCAAgC;AACzC,SAAS,2BAA2B;AACpC,SAAS,iCAAiC;AAC1C,SAAS,2BAA2B;AACpC,SAAS,gCAAgC,OAAO,oDAAM,+BAA+B,GAAG;AACxF,SAAS,OAAO,wDAAU,EAAE;AAC5B,SAAS,OAAO,oDAAM,EAAE;AACxB,SAAS,gCAAgC,OAAO,oDAAM,SAAS,wDAAQ,IAAI,GAAG;AAC9E,SAAS,OAAO,+DAAiB,EAAE;AACnC,SAAS,OAAO,sEAAwB,EAAE;AAC1C,SAAS,OAAO,6DAAe,EAAE;AACjC,SAAS,OAAO,8DAAgB,EAAE;AAClC,SAAS,6CAA6C;AACtD,SAAS,4BAA4B;AACrC,SAAS,wCAAwC,OAAO,oDAAM,8BAA8B,GAAG;AAC/F,SAAS,8BAA8B;AACvC,SAAS,gCAAgC,OAAO,sDAAQ,EAAE,GAAG,OAAO,oDAAM,gCAAgC;AAC1G,MAAM;AACN;AACA,0BAA0B,OAAO,mDAAK,EAAE;AACxC,0BAA0B,OAAO,mDAAK,EAAE;AACxC,yBAAyB,OAAO,mDAAK,EAAE;AACvC,iCAAiC,OAAO,uDAAS,mCAAmC,OAAO,yDAAW,gBAAgB,IAAI;AAC1H;AACA;AACA,CAAC;AACD;AACA,WAAW,EAAE;AACb,YAAY;AACZ;AACA;AACA,eAAe,EAAE;AACjB;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA,cAAc,uEAAuE;AACrF;AACA;AACA,IAAI,uDAAS;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,+CAA+C,4CAAO;AACtD;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA;AACA,uBAAuB,EAAE;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA,+BAA+B,EAAE;AACjC;AACA;AACA;AACA,qBAAqB;AACrB;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA,cAAc,uEAAuE;AACrF;AACA;AACA,IAAI,uDAAS;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,uDAAS;AACtC;AACA;AACA;AACA,iCAAiC,uDAAS;AAC1C;AACA;AACA;AACA,mCAAmC,0DAAY;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,0DAAY;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC,EAAE;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA,uBAAuB,EAAE;AACzB;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA,uBAAuB,EAAE;AACzB;AACA,uBAAuB,EAAE;AACzB;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA,uBAAuB,EAAE;AACzB;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,mCAAmC,gEAAS;AAC5C;AACA;AACA;AACA;AACA,6BAA6B,EAAE;AAC/B,aAAa;AACb,SAAS;AACT,mBAAmB,EAAE;AACrB,iEAAiE,oCAAoC,EAAE;AACvG,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA;AACA,SAAS;AACT;AACA,qCAAqC,gEAAS,wCAAwC,0BAA0B,EAAE;AAClH;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,gBAAgB;AAChB;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,gBAAgB;AAChB;AACA,iBAAiB;AACjB;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,mBAAmB,EAAE;AACrB,iEAAiE,oCAAoC,EAAE;AACvG,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS,OAAO,uDAAS;AACzB,qCAAqC,qEAAuB;AAC5D;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,wDAAwD;AACxD,SAAS,gCAAgC;AACzC,SAAS,2BAA2B;AACpC,SAAS,iCAAiC;AAC1C,SAAS,2BAA2B;AACpC,SAAS,gCAAgC,OAAO,oDAAM,+BAA+B,GAAG;AACxF,SAAS,OAAO,wDAAU,EAAE;AAC5B,SAAS,OAAO,oDAAM,EAAE;AACxB,SAAS,gCAAgC,OAAO,oDAAM,SAAS,wDAAQ,IAAI,GAAG;AAC9E,SAAS,OAAO,+DAAiB,EAAE;AACnC,SAAS,OAAO,sEAAwB,EAAE;AAC1C,SAAS,OAAO,6DAAe,EAAE;AACjC,SAAS,OAAO,8DAAgB,EAAE;AAClC,SAAS,6CAA6C;AACtD,SAAS,4BAA4B;AACrC,SAAS,wCAAwC,OAAO,oDAAM,8BAA8B,GAAG;AAC/F,SAAS,8BAA8B;AACvC,SAAS,gCAAgC,OAAO,sDAAQ,EAAE,GAAG,OAAO,oDAAM,gCAAgC,GAAG;AAC7G,SAAS;AACT,MAAM;AACN;AACA,eAAe,OAAO,mDAAK,EAAE;AAC7B,0BAA0B,OAAO,mDAAK,EAAE;AACxC,oBAAoB,OAAO,6DAAe,iCAAiC,kDAAkD,IAAI;AACjI,wBAAwB,OAAO,6DAAe,8BAA8B,+CAA+C,IAAI;AAC/H,0BAA0B,OAAO,oDAAM,EAAE;AACzC,yBAAyB,OAAO,oDAAM,EAAE;AACxC;AACA;AACA,CAAC;;AAED;AACA;AACA,cAAc,uEAAuE;AACrF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,mBAAmB,EAAE;AACrB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,sCAAsC,uDAAuD,EAAE;AAC/F;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,mBAAmB,EAAE;AACrB,yBAAyB,gEAAS;AAClC,mBAAmB,EAAE;AACrB;AACA;AACA,mBAAmB,EAAE;AACrB,8DAA8D,uBAAuB,EAAE;AACvF,mBAAmB,EAAE;AACrB;AACA,uBAAuB,EAAE;AACzB;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA,SAAS;AACT;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,OAAO,uDAAS;AACzB,qCAAqC,qEAAuB;AAC5D;AACA;AACA,yFAAyF,yDAAyD;AAClJ,iBAAiB;AACjB;AACA;AACA,2DAA2D;AAC3D,SAAS,2BAA2B;AACpC,SAAS,OAAO,wDAAU,EAAE;AAC5B,SAAS,OAAO,sEAAwB,EAAE;AAC1C,SAAS,OAAO,+DAAiB;AACjC,MAAM;AACN;AACA,kBAAkB,OAAO,mDAAK,EAAE;AAChC,wBAAwB,OAAO,mDAAK,EAAE;AACtC,mBAAmB,OAAO,mDAAK,EAAE;AACjC,iBAAiB,OAAO,mDAAK,EAAE;AAC/B,iBAAiB,OAAO,uDAAS,mBAAmB,eAAe,IAAI;AACvE,oBAAoB,OAAO,yDAAW,4BAA4B;AAClE,gBAAgB,OAAO,yDAAW,wBAAwB;AAC1D,iBAAiB,OAAO,yDAAW,8BAA8B;AACjE;AACA;AACA,CAAC;;AAED;AACA;AACA,cAAc,uEAAuE;AACrF;AACA,WAAW,EAAE;AACb;AACA;AACA,IAAI,uDAAS;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C,0DAAY;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC,EAAE;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,6BAA6B,WAAW,GAAG,UAAU;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,WAAW,GAAG,UAAU;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,EAAE;AACjC,+EAA+E,2CAA2C,EAAE;AAC5H;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B;AAC5B,iBAAiB;AACjB;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB;AACxB,aAAa;AACb;AACA;AACA,gEAAgE,gEAAS;AACzE,uBAAuB,EAAE;AACzB;AACA;AACA,2BAA2B,EAAE;AAC7B;AACA;AACA,+BAA+B,EAAE;AACjC;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,gDAAgD,gEAAS;AACzD;AACA;AACA;AACA,aAAa;AACb,mFAAmF,iBAAiB,EAAE;AACtG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,4DAA4D,iBAAiB,EAAE;AAC/E,6EAA6E,iBAAiB,EAAE;AAChG;AACA,0CAA0C,gEAAS;AACnD,oCAAoC,kCAAkC,EAAE;AACxE;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,sFAAsF,sBAAsB,EAAE,wBAAwB,EAAE,uBAAuB,iBAAiB,EAAE;AAClL;AACA;AACA,gFAAgF,sBAAsB,EAAE,wBAAwB,EAAE,uBAAuB,iBAAiB,EAAE;AAC5K;AACA,0BAA0B,EAAE;AAC5B;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB,+CAA+C,iCAAiC,EAAE;AAClF;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA,wCAAwC,uBAAuB;AAC/D,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA;AACA,SAAS;AACT,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA;AACA,uBAAuB,EAAE;AACzB;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA,QAAQ,sDAAQ;AAChB;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,uBAAuB,EAAE;AACzB;AACA;AACA,2BAA2B,EAAE;AAC7B;AACA,2BAA2B,EAAE;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,EAAE;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB,oBAAoB;AACpB;AACA;AACA,uBAAuB,EAAE;AACzB,uCAAuC,EAAE;AACzC;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA,uBAAuB,EAAE;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA,4BAA4B,WAAW;AACvC;AACA;AACA;AACA,uBAAuB,EAAE;AACzB,gFAAgF,oDAAoD,EAAE;AACtI;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA,uBAAuB,EAAE;AACzB;AACA,uBAAuB,EAAE;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,wBAAwB;AACxB,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA,kEAAkE,iCAAiC,EAAE;AACrG;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,uBAAuB,EAAE;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,uBAAuB,EAAE;AACzB;AACA,uBAAuB,EAAE;AACzB;AACA;AACA;AACA,2BAA2B,EAAE;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,uBAAuB,EAAE;AACzB;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA,uBAAuB,EAAE;AACzB;AACA,uBAAuB,EAAE;AACzB,wDAAwD,iBAAiB,EAAE;AAC3E;AACA,SAAS;AACT;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,SAAS,OAAO,uDAAS;AACzB,qCAAqC,qEAAuB;AAC5D;AACA;AACA,0lCAA0lC,gVAAgV,oEAAoE,WAAW,kBAAkB,gKAAgK,qGAAqG,8EAA8E,qfAAqf,qHAAqH,4MAA4M,oCAAoC,aAAa,oWAAoW,4xIAA4xI,wcAAwc,YAAY,gGAAgG,uIAAuI,qqFAAqqF,WAAW,gBAAgB,yVAAyV,0BAA0B,0GAA0G,kBAAkB,2sBAA2sB,WAAW,gEAAgE,oGAAoG,mBAAmB,0fAA0f,WAAW,6BAA6B,wQAAwQ,WAAW,gCAAgC,ghBAAghB,gEAAgE;AACj+a;AACA;AACA;AACA,yBAAyB,uEAAuE;AAChG,yBAAyB,6CAA6C,gEAAU,cAAc,qCAAqC,EAAE,GAAG;AACxI;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,+DAA+D;AAC/D,SAAS,gCAAgC;AACzC,SAAS,2BAA2B;AACpC,SAAS,iCAAiC;AAC1C,SAAS,2BAA2B;AACpC,SAAS,gCAAgC,OAAO,oDAAM,+BAA+B,GAAG;AACxF,SAAS,OAAO,wDAAU,EAAE;AAC5B,SAAS,OAAO,oDAAM,EAAE;AACxB,SAAS,gCAAgC,OAAO,oDAAM,SAAS,wDAAQ,IAAI,GAAG;AAC9E,SAAS,OAAO,+DAAiB,EAAE;AACnC,SAAS,OAAO,sEAAwB,EAAE;AAC1C,SAAS,OAAO,6DAAe,EAAE;AACjC,SAAS,OAAO,8DAAgB,EAAE;AAClC,SAAS,6CAA6C;AACtD,SAAS,4BAA4B;AACrC,SAAS,wCAAwC,OAAO,oDAAM,8BAA8B,GAAG;AAC/F,SAAS,8BAA8B;AACvC,SAAS,gCAAgC,OAAO,sDAAQ,EAAE,GAAG,OAAO,oDAAM,gCAAgC;AAC1G,MAAM;AACN;AACA,cAAc,OAAO,yDAAW,sBAAsB,GAAG,OAAO,mDAAK,EAAE;AACvE,gBAAgB,OAAO,mDAAK,EAAE;AAC9B,6BAA6B,OAAO,mDAAK,EAAE;AAC3C,mCAAmC,OAAO,oDAAM,EAAE;AAClD,0BAA0B,OAAO,mDAAK,EAAE;AACxC,2BAA2B,OAAO,6DAAe,iCAAiC,kDAAkD,IAAI;AACxI,yBAAyB,OAAO,6DAAe,iCAAiC,iDAAiD,IAAI;AACrI,sCAAsC,OAAO,uDAAS,0CAA0C,OAAO,yDAAW,gBAAgB,IAAI;AACtI,yBAAyB,OAAO,uDAAS,mCAAmC,OAAO,yDAAW,gBAAgB,IAAI;AAClH,mCAAmC,OAAO,uDAAS,qCAAqC,OAAO,wDAAU,gBAAgB,IAAI;AAC7H,2BAA2B,OAAO,0DAAY,sCAAsC,mCAAmC,IAAI;AAC3H,4BAA4B,OAAO,0DAAY,oCAAoC,iCAAiC,IAAI;AACxH;AACA;AACA,CAAC;;AAED;AACA;AACA,cAAc,uEAAuE;AACrF;AACA;AACA,IAAI,uDAAS;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA,QAAQ,sDAAQ;AAChB;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,EAAE;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA,uBAAuB,EAAE;AACzB;AACA,uBAAuB,EAAE;AACzB;AACA,uBAAuB,EAAE;AACzB;AACA,uBAAuB,EAAE;AACzB;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,4BAA4B,wBAAwB;AACpD,yCAAyC,sDAAQ;AACjD;AACA;AACA,2BAA2B,EAAE;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,uBAAuB,EAAE;AACzB;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS,OAAO,uDAAS;AACzB,qCAAqC,qEAAuB;AAC5D;AACA;AACA,whBAAwhB,kLAAkL,mxCAAmxC;AAC79D;AACA,iBAAiB;AACjB;AACA;AACA,mEAAmE;AACnE,SAAS,gCAAgC;AACzC,SAAS,2BAA2B;AACpC,SAAS,2BAA2B;AACpC,SAAS,OAAO,+DAAiB,EAAE;AACnC,SAAS,OAAO,wDAAU,EAAE;AAC5B,SAAS,OAAO,oDAAM,EAAE;AACxB,SAAS,8BAA8B;AACvC,SAAS;AACT,MAAM;AACN;AACA,mBAAmB,OAAO,0DAAY,gCAAgC;AACtE,yBAAyB,OAAO,0DAAY,kCAAkC;AAC9E;AACA;AACA,CAAC;;AAED;AACA;AACA,cAAc,uEAAuE;AACrF;AACA;AACA,IAAI,uDAAS;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA,wBAAwB,oBAAoB;AAC5C,qCAAqC,sDAAQ;AAC7C;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA,uBAAuB,EAAE;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS,OAAO,uDAAS;AACzB,qCAAqC,qEAAuB;AAC5D;AACA;AACA,iOAAiO,WAAW,kBAAkB,wlCAAwlC,wBAAwB,aAAa,2OAA2O;AACtmD,iCAAiC,wCAAwC,gEAAU,cAAc,oCAAoC,EAAE,GAAG;AAC1I,iBAAiB;AACjB;AACA;AACA,iBAAiB,OAAO,0DAAY,SAAS,gEAAU,cAAc,yCAAyC,EAAE,IAAI,yCAAyC,IAAI;AACjK,oBAAoB,OAAO,uDAAS,sBAAsB,OAAO,wDAAU,iBAAiB,IAAI;AAChG,mCAAmC,OAAO,uDAAS,qCAAqC,OAAO,yDAAW,gBAAgB,IAAI;AAC9H,gCAAgC,OAAO,uDAAS,kCAAkC,OAAO,yDAAW,gBAAgB,IAAI;AACxH,oCAAoC,OAAO,uDAAS,sCAAsC,OAAO,yDAAW,gBAAgB,IAAI;AAChI,oBAAoB,OAAO,yDAAW,4BAA4B;AAClE,oBAAoB,OAAO,yDAAW,2CAA2C;AACjF,uBAAuB,OAAO,yDAAW,8CAA8C;AACvF;AACA;AACA,CAAC;;AAED;AACA;AACA,cAAc,uEAAuE;AACrF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,GAAG;AAClB,eAAe,GAAG;AAClB,eAAe,GAAG;AAClB,eAAe,GAAG;AAClB,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,eAAe,GAAG;AAClB,eAAe,GAAG;AAClB,eAAe,GAAG;AAClB,eAAe,GAAG;AAClB,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA,+BAA+B,YAAY;AAC3C;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA,uBAAuB,EAAE;AACzB;AACA;AACA,2BAA2B,EAAE;AAC7B;AACA;AACA,aAAa;AACb;AACA,6BAA6B,wEAAwE;AACrG;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS,OAAO,kDAAI;AACpB;AACA;AACA,iBAAiB;AACjB;AACA;AACA,0DAA0D;AAC1D,SAAS;AACT,MAAM;AACN;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,GAAG;AAClB,eAAe,GAAG;AAClB,eAAe,GAAG;AAClB,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,eAAe,GAAG;AAClB,eAAe,GAAG;AAClB,eAAe,GAAG;AAClB,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA,8BAA8B,UAAU;AACxC,iCAAiC,cAAc;AAC/C;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA,SAAS,OAAO,kDAAI;AACpB;AACA;AACA,iBAAiB;AACjB;AACA;AACA,gEAAgE;AAChE,SAAS;AACT,MAAM;AACN;AACA,CAAC;;AAED;AACA;AACA,cAAc,uEAAuE;AACrF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,OAAO,sDAAQ;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,4DAAY;AACpC,wBAAwB,0DAAW;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,CAAC;;AAED;AACA;AACA,cAAc,uEAAuE;AACrF;;AAEA;AACA;AACA,cAAc,uEAAuE;AACrF;;AAEA;AACA;AACA,cAAc,uEAAuE;AACrF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,OAAO,uDAAS;AACzB;AACA;AACA,iBAAiB;AACjB;AACA;AACA,CAAC;AACD,WAAW,EAAE;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,0DAAY;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,OAAO,uDAAS;AACzB;AACA,8PAA8P,kBAAkB,2IAA2I,SAAS;AACpa,+CAA+C,6BAA6B,WAAW;AACvF,iBAAiB;AACjB;AACA;AACA,cAAc,OAAO,yDAAW,sBAAsB,GAAG,OAAO,mDAAK,EAAE;AACvE,iCAAiC,OAAO,mDAAK,EAAE;AAC/C,4BAA4B,OAAO,mDAAK,EAAE;AAC1C,iBAAiB,OAAO,mDAAK,EAAE;AAC/B,oBAAoB,OAAO,oDAAM,EAAE;AACnC,mBAAmB,OAAO,mDAAK,EAAE;AACjC,8BAA8B,OAAO,0DAAY,kCAAkC,8CAA8C,IAAI;AACrI;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,OAAO,sDAAQ;AACxB;AACA;AACA,8DAA8D,4DAAY;AAC1E,iBAAiB;AACjB;AACA;AACA,CAAC;;AAED;AACA;AACA,cAAc,uEAAuE;AACrF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA,SAAS,OAAO,uDAAS;AACzB;AACA;AACA,iBAAiB;AACjB;AACA;AACA,kBAAkB,OAAO,mDAAK,qBAAqB;AACnD,oBAAoB,OAAO,mDAAK,uBAAuB;AACvD,sBAAsB,OAAO,yDAAW,yCAAyC;AACjF,sBAAsB,OAAO,yDAAW,iDAAiD;AACzF,qBAAqB,OAAO,yDAAW,iDAAiD;AACxF;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA,SAAS,OAAO,uDAAS;AACzB;AACA,iBAAiB;AACjB;AACA;AACA,gEAAgE;AAChE,SAAS,OAAO,yDAAW;AAC3B,MAAM;AACN;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA,SAAS,OAAO,uDAAS;AACzB;AACA,iBAAiB;AACjB;AACA;AACA,oEAAoE;AACpE,SAAS,OAAO,yDAAW;AAC3B,MAAM;AACN;AACA,CAAC;;AAED;AACA;AACA,cAAc,uEAAuE;AACrF;AACA,WAAW,EAAE;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,0DAAY;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,0DAAY;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,0DAAY;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,0DAAY;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,0DAAY;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,0DAAY;AACtC;AACA,4BAA4B;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,EAAE;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,EAAE;AACzB;AACA,uBAAuB,EAAE;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,EAAE;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,EAAE;AACzB;AACA;AACA,uBAAuB,EAAE;AACzB;AACA,uBAAuB,EAAE;AACzB;AACA,uBAAuB,EAAE;AACzB;AACA,uBAAuB,EAAE;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,EAAE;AAC7B;AACA,2BAA2B,EAAE;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,eAAe,GAAG,gBAAgB;AACjE;AACA,+DAA+D,eAAe;AAC9E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC;AACtC;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,sDAAS,wBAAwB,+DAAQ,cAAc,QAAQ,qDAAQ,MAAM,EAAE;AAClH;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,EAAE;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS,OAAO,uDAAS;AACzB;AACA;AACA,yNAAyN,yBAAyB;AAClP,+CAA+C,6BAA6B,2BAA2B,WAAW;AAClH,iBAAiB;AACjB;AACA;AACA,+DAA+D;AAC/D,SAAS,OAAO,wDAAU,gBAAgB,OAAO,oDAAM,SAAS,wDAAU,IAAI,GAAG;AACjF,SAAS,2CAA2C,OAAO,sDAAQ,EAAE,GAAG;AACxE,SAAS,OAAO,sDAAQ,EAAE;AAC1B,SAAS,8BAA8B;AACvC,SAAS;AACT,MAAM;AACN;AACA,oBAAoB,OAAO,yDAAW,mCAAmC;AACzE,cAAc,OAAO,yDAAW,sBAAsB,GAAG,OAAO,mDAAK,EAAE;AACvE,oBAAoB,OAAO,mDAAK,EAAE;AAClC,0BAA0B,OAAO,mDAAK,EAAE;AACxC,kBAAkB,OAAO,mDAAK,EAAE;AAChC,wBAAwB,OAAO,oDAAM,EAAE;AACvC,eAAe,OAAO,mDAAK,EAAE;AAC7B,wBAAwB,OAAO,mDAAK,EAAE;AACtC,iBAAiB,OAAO,mDAAK,EAAE;AAC/B,qBAAqB,OAAO,mDAAK,EAAE;AACnC,qBAAqB,OAAO,oDAAM,EAAE;AACpC,mBAAmB,OAAO,oDAAM,EAAE;AAClC,kBAAkB,OAAO,oDAAM,EAAE;AACjC,mBAAmB,OAAO,oDAAM,EAAE;AAClC,kBAAkB,OAAO,oDAAM,EAAE;AACjC,wBAAwB,OAAO,0DAAY,6CAA6C,yDAAyD,IAAI;AACrJ,2BAA2B,OAAO,0DAAY,yCAAyC,qDAAqD,IAAI;AAChJ,qBAAqB,OAAO,yDAAW,8BAA8B;AACrE,yBAAyB,OAAO,yDAAW,0BAA0B;AACrE,mBAAmB,OAAO,uDAAS,mBAAmB,eAAe,IAAI;AACzE,oBAAoB,OAAO,uDAAS,qBAAqB,eAAe,IAAI;AAC5E,uBAAuB,OAAO,uDAAS,mBAAmB,eAAe,IAAI;AAC7E;AACA;AACA,CAAC;;AAED;AACA;AACA,cAAc,uEAAuE;AACrF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,OAAO,sDAAQ;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,4DAAY;AAC1C,iBAAiB;AACjB;AACA;AACA,CAAC;;AAED;AACA;AACA,cAAc,uEAAuE;AACrF;;AAEA;AACA;AACA,cAAc,uEAAuE;AACrF;AACA;AACA,0GAA0G;AAC1G;AACA;AACA;AACA,2DAA2D,OAAO;AAClE;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA,SAAS,OAAO,uDAAS;AACzB;AACA,iBAAiB;AACjB;AACA;AACA,CAAC;AACD;AACA,0GAA0G;AAC1G;AACA;AACA;AACA,yDAAyD,OAAO;AAChE;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA,SAAS,OAAO,uDAAS;AACzB;AACA,iBAAiB;AACjB;AACA;AACA,CAAC;AACD,WAAW,OAAO;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,cAAc,uEAAuE;AACrF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,4CAAO;AACpC;AACA,sCAAsC,0DAAY;AAClD,4BAA4B,0DAAY;AACxC,iCAAiC,0DAAY;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA,uBAAuB,EAAE;AACzB;AACA,uBAAuB,EAAE;AACzB;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA,kBAAkB,gEAAS;AAC3B;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,OAAO,uDAAS;AACzB;AACA;AACA,iBAAiB;AACjB;AACA;AACA,0DAA0D;AAC1D,SAAS,OAAO,wDAAU;AAC1B,MAAM;AACN;AACA,iBAAiB,OAAO,mDAAK,EAAE;AAC/B,sBAAsB,OAAO,mDAAK,EAAE;AACpC,wCAAwC,OAAO,mDAAK,EAAE;AACtD,oBAAoB,OAAO,mDAAK,EAAE;AAClC,iBAAiB,OAAO,mDAAK,EAAE;AAC/B,wBAAwB,OAAO,mDAAK,EAAE;AACtC,gBAAgB,OAAO,mDAAK,EAAE;AAC9B,uBAAuB,OAAO,mDAAK,EAAE;AACrC,mBAAmB,OAAO,mDAAK,EAAE;AACjC,gBAAgB,OAAO,mDAAK,EAAE;AAC9B,8BAA8B,OAAO,oDAAM,EAAE;AAC7C,oBAAoB,OAAO,oDAAM,EAAE;AACnC,yBAAyB,OAAO,oDAAM,EAAE;AACxC,oBAAoB,OAAO,yDAAW,4BAA4B;AAClE,kBAAkB,OAAO,yDAAW,2BAA2B;AAC/D,0BAA0B,OAAO,yDAAW,2CAA2C;AACvF,wBAAwB,OAAO,yDAAW,yCAAyC;AACnF,gCAAgC,OAAO,yDAAW,mDAAmD;AACrG,8BAA8B,OAAO,yDAAW,iDAAiD;AACjG,6BAA6B,OAAO,yDAAW,+CAA+C;AAC9F,yBAAyB,OAAO,0DAAY,2BAA2B;AACvE,0BAA0B,OAAO,0DAAY,2BAA2B;AACxE,qBAAqB,OAAO,0DAAY,kCAAkC;AAC1E,kBAAkB,OAAO,0DAAY,mBAAmB;AACxD,2BAA2B,OAAO,0DAAY,oBAAoB;AAClE;AACA;AACA,CAAC;;AAED;AACA;AACA,cAAc,uEAAuE;AACrF;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA,SAAS,OAAO,uDAAS;AACzB;AACA,iJAAiJ,8FAA8F,SAAS;AACxP,iBAAiB;AACjB;AACA;AACA,yDAAyD;AACzD,SAAS,OAAO,wDAAU;AAC1B,MAAM;AACN;AACA,iBAAiB,OAAO,mDAAK,EAAE;AAC/B,uBAAuB,OAAO,mDAAK,EAAE;AACrC,mBAAmB,OAAO,mDAAK,EAAE;AACjC,gBAAgB,OAAO,mDAAK,EAAE;AAC9B,sBAAsB,OAAO,mDAAK,EAAE;AACpC,0BAA0B,OAAO,yDAAW,2CAA2C;AACvF,wBAAwB,OAAO,yDAAW,yCAAyC;AACnF,gCAAgC,OAAO,yDAAW,mDAAmD;AACrG,8BAA8B,OAAO,yDAAW,iDAAiD;AACjG;AACA;AACA,CAAC;;AAED;AACA;AACA,cAAc,uEAAuE;AACrF;AACA,WAAW,EAAE;AACb;AACA;AACA,WAAW,EAAE;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,4CAAO;AACtC,yCAAyC,4CAAO;AAChD;AACA;AACA;AACA;AACA;AACA,0BAA0B,uDAAS;AACnC;AACA;AACA;AACA,6BAA6B,uDAAS;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,4CAAO;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,0DAAY;AAC7C;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA,sDAAsD,yCAAyC,EAAE;AACjG,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA,sDAAsD,uCAAuC,EAAE;AAC/F,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA,yDAAyD,yCAAyC,EAAE;AACpG,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA,yDAAyD,uCAAuC,EAAE;AAClG,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,+DAA+D,eAAe,GAAG,eAAe,GAAG,WAAW;AAC9G;AACA;AACA;AACA;AACA;AACA,+DAA+D,gBAAgB,GAAG,gBAAgB,GAAG,YAAY;AACjH;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,eAAe,oCAAoC,MAAM,kCAAkC;AAC3F;AACA;AACA,wBAAwB,YAAY;AACpC,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA,eAAe,qCAAqC,MAAM,mCAAmC;AAC7F;AACA;AACA,wBAAwB,aAAa;AACrC,qBAAqB;AACrB;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA,qEAAqE,yBAAyB;AAC9F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qEAAqE,0BAA0B;AAC/F;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA,2BAA2B,yBAAyB;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,0BAA0B;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA,2BAA2B,yBAAyB;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,0BAA0B;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA,8CAA8C,yBAAyB;AACvE,8CAA8C,yBAAyB;AACvE,qBAAqB,yBAAyB;AAC9C;AACA;AACA;AACA;AACA;AACA,+CAA+C,0BAA0B;AACzE,8CAA8C,0BAA0B;AACxE,qBAAqB,0BAA0B;AAC/C;AACA;AACA;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA,2BAA2B,yBAAyB;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,0BAA0B;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA,8CAA8C,yBAAyB;AACvE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA8C,0BAA0B;AACxE;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA,+DAA+D,wBAAwB;AACvF,kCAAkC,uBAAuB,6CAA6C,iBAAiB,MAAM,iBAAiB;AAC9I;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+DAA+D,yBAAyB;AACxF,kCAAkC,wBAAwB,6CAA6C,kBAAkB,MAAM,kBAAkB;AACjJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,qCAAqC,wBAAwB,yCAAyC,YAAY,WAAW,iBAAiB;AAC9I,kCAAkC,uBAAuB;AACzD,oCAAoC,iBAAiB,MAAM,iBAAiB;AAC5E,yDAAyD,iBAAiB,MAAM,iBAAiB;AACjG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC,yBAAyB,yCAAyC,aAAa,WAAW,kBAAkB;AACjJ,kCAAkC,wBAAwB;AAC1D,oCAAoC,kBAAkB,MAAM,kBAAkB;AAC9E,yDAAyD,kBAAkB,MAAM,kBAAkB;AACnG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA;AACA,8CAA8C,EAAE;AAChD;AACA;AACA,8DAA8D,EAAE;AAChE,+CAA+C,EAAE;AACjD,+CAA+C,EAAE;AACjD;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,mBAAmB,aAAa;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,cAAc;AACjC;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,gEAAS;AAC1C,uBAAuB,EAAE;AACzB,0DAA0D,yCAAyC,EAAE;AACrG,uBAAuB,EAAE;AACzB,mEAAmE,yCAAyC,EAAE;AAC9G;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA,wCAAwC,EAAE;AAC1C,wCAAwC,EAAE;AAC1C;AACA;AACA;AACA;AACA,wCAAwC,EAAE;AAC1C,wCAAwC,EAAE;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC,EAAE;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,wBAAwB;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,GAAG;AAClB,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,GAAG;AAClB,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA,6BAA6B,SAAS;AACtC,6BAA6B,WAAW;AACxC;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,wEAAwE,EAAE;AAC1E;AACA;AACA,yEAAyE,EAAE;AAC3E,6EAA6E,EAAE;AAC/E;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,EAAE;AACzB;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,kDAAK;AACrC,mCAAmC,gEAAS;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,GAAG;AAClB,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,GAAG;AAClB,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA,8BAA8B,mBAAmB;AACjD,8BAA8B,mBAAmB;AACjD;AACA;AACA;AACA;AACA,+DAA+D,gBAAgB;AAC/E;AACA;AACA;AACA;AACA,+DAA+D,iBAAiB;AAChF;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,+DAA+D,iBAAiB;AAChF;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA,oCAAoC,EAAE,oCAAoC,EAAE;AAC5E,oCAAoC,EAAE,oCAAoC,EAAE;AAC5E;AACA;AACA;AACA,sCAAsC,EAAE,8BAA8B,EAAE;AACxE;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,gEAAS;AAC3B,yCAAyC,oCAAoC,EAAE;AAC/E;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,kDAAK;AACpB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA,0BAA0B,EAAE,wCAAwC,EAAE;AACtE,6BAA6B,EAAE,wCAAwC,EAAE;AACzE;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,iCAAiC,wCAAwC;AACzE;AACA;AACA,SAAS,OAAO,uDAAS;AACzB,iCAAiC,UAAU,gEAAiB,gDAAgD;AAC5G;AACA;AACA,iBAAiB;AACjB;AACA;AACA,qDAAqD;AACrD,SAAS,OAAO,uDAAS,EAAE;AAC3B,SAAS,OAAO,wDAAU,EAAE;AAC5B,SAAS,OAAO,+DAAiB;AACjC,MAAM;AACN;AACA,iBAAiB,OAAO,uDAAS,mBAAmB,eAAe,IAAI;AACvE,iBAAiB,OAAO,uDAAS,mBAAmB,eAAe,IAAI;AACvE,kBAAkB,OAAO,0DAAY,oCAAoC;AACzE,qBAAqB,OAAO,0DAAY,mCAAmC;AAC3E,gCAAgC,OAAO,0DAAY,yCAAyC,OAAO,yDAAW,iBAAiB,IAAI;AACnI,8BAA8B,OAAO,0DAAY,uCAAuC,OAAO,yDAAW,iBAAiB,IAAI;AAC/H,gBAAgB,OAAO,yDAAW,wBAAwB;AAC1D,oBAAoB,OAAO,yDAAW,iCAAiC;AACvE,oBAAoB,OAAO,yDAAW,iCAAiC;AACvE,oBAAoB,OAAO,yDAAW,iCAAiC;AACvE,sBAAsB,OAAO,yDAAW,+BAA+B;AACvE,yBAAyB,OAAO,yDAAW,yCAAyC;AACpF,cAAc,OAAO,yDAAW,sBAAsB,GAAG,OAAO,mDAAK,EAAE;AACvE,gBAAgB,OAAO,mDAAK,EAAE;AAC9B,wCAAwC,OAAO,mDAAK,EAAE;AACtD,kBAAkB,OAAO,mDAAK,EAAE;AAChC,gBAAgB,OAAO,mDAAK,EAAE;AAC9B,oBAAoB,OAAO,mDAAK,EAAE;AAClC,sBAAsB,OAAO,mDAAK,EAAE;AACpC,wBAAwB,OAAO,mDAAK,EAAE;AACtC,oBAAoB,OAAO,mDAAK,EAAE;AAClC,oBAAoB,OAAO,mDAAK,EAAE;AAClC,sBAAsB,OAAO,mDAAK,EAAE;AACpC,sBAAsB,OAAO,mDAAK,EAAE;AACpC,iBAAiB,OAAO,mDAAK,EAAE;AAC/B,yBAAyB,OAAO,oDAAM,EAAE;AACxC,yBAAyB,OAAO,0DAAY,sCAAsC;AAClF,uBAAuB,OAAO,0DAAY,oCAAoC;AAC9E,mBAAmB,OAAO,0DAAY,oBAAoB;AAC1D,yBAAyB,OAAO,0DAAY,8BAA8B;AAC1E,sBAAsB,OAAO,0DAAY,uBAAuB;AAChE,oBAAoB,OAAO,0DAAY,qBAAqB;AAC5D;AACA,IAAI,wDAAU;AACd;AACA,QAAQ,wDAAU;AAClB,QAAQ,wDAAU;AAClB;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,OAAO,sDAAQ;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,4DAAY;AAC1C,iBAAiB;AACjB;AACA;AACA,CAAC;;AAED;AACA;AACA,cAAc,uEAAuE;AACrF;;AAEA;AACA;AACA,cAAc,uEAAuE;AACrF;AACA,WAAW,EAAE;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,0DAAY;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,0DAAY;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,0DAAY;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,OAAO,uDAAS;AACzB;AACA,wBAAwB,mEAAO;AAC/B,4BAA4B,sEAAU;AACtC,gCAAgC,wEAAY;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC;AACjC;AACA,4BAA4B,sEAAU;AACtC,gCAAgC,wEAAY;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC;AACjC;AACA;AACA,wBAAwB,mEAAO;AAC/B,4BAA4B,sEAAU;AACtC,gCAAgC,wEAAY;AAC5C;AACA;AACA;AACA;AACA,iCAAiC;AACjC;AACA,4BAA4B,sEAAU;AACtC,gCAAgC,wEAAY;AAC5C;AACA;AACA;AACA;AACA,iCAAiC;AACjC;AACA;AACA;AACA;AACA,gTAAgT,WAAW,0LAA0L,cAAc;AACngB,+CAA+C,6BAA6B,WAAW;AACvF,iBAAiB;AACjB;AACA;AACA,uDAAuD;AACvD,SAAS,OAAO,oDAAM;AACtB,MAAM;AACN;AACA,cAAc,OAAO,yDAAW,sBAAsB,GAAG,OAAO,mDAAK,EAAE;AACvE,mBAAmB,OAAO,mDAAK,EAAE;AACjC,qBAAqB,OAAO,mDAAK,EAAE;AACnC,oBAAoB,OAAO,mDAAK,EAAE;AAClC,uBAAuB,OAAO,mDAAK,EAAE;AACrC,sBAAsB,OAAO,mDAAK,EAAE;AACpC,oBAAoB,OAAO,oDAAM,EAAE;AACnC,4BAA4B,OAAO,oDAAM,EAAE;AAC3C,yBAAyB,OAAO,oDAAM,EAAE;AACxC;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,OAAO,sDAAQ;AACxB;AACA;AACA,8BAA8B,4DAAY;AAC1C,iBAAiB;AACjB;AACA;AACA,CAAC;;AAED;AACA;AACA,cAAc,uEAAuE;AACrF;AACA,WAAW,OAAO;AAClB;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,0BAA0B;AAC1B,WAAW,EAAE;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,0DAAY;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,sCAAsC;AAChE;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA,mBAAmB,6BAA6B;AAChD;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA,mBAAmB,8BAA8B;AACjD;AACA,SAAS,OAAO,uDAAS;AACzB,iCAAiC,UAAU,gEAAiB,gDAAgD;AAC5G;AACA;AACA,iBAAiB;AACjB;AACA;AACA,0BAA0B,OAAO,uDAAS,sBAAsB,eAAe,IAAI;AACnF,uBAAuB,OAAO,uDAAS,mBAAmB,eAAe,IAAI;AAC7E,4BAA4B,OAAO,uDAAS,8BAA8B,eAAe,IAAI;AAC7F,cAAc,OAAO,yDAAW,sBAAsB,GAAG,OAAO,mDAAK,EAAE;AACvE,mBAAmB,OAAO,mDAAK,EAAE;AACjC,iBAAiB,OAAO,mDAAK,EAAE;AAC/B,gBAAgB,OAAO,mDAAK,EAAE;AAC9B,oBAAoB,OAAO,mDAAK,EAAE;AAClC,yBAAyB,OAAO,mDAAK,EAAE;AACvC,yBAAyB,OAAO,mDAAK,EAAE;AACvC,oBAAoB,OAAO,mDAAK,EAAE;AAClC,0BAA0B,OAAO,mDAAK,8BAA8B;AACpE,qBAAqB,OAAO,mDAAK,yBAAyB;AAC1D,kBAAkB,OAAO,oDAAM,EAAE;AACjC,oBAAoB,OAAO,yDAAW,+BAA+B;AACrE,mBAAmB,OAAO,yDAAW,wCAAwC,GAAG,OAAO,mDAAK,EAAE;AAC9F,oBAAoB,OAAO,yDAAW,yCAAyC,GAAG,OAAO,mDAAK,EAAE;AAChG,mBAAmB,OAAO,yDAAW,wCAAwC;AAC7E;AACA;AACA,CAAC;AACD,WAAW,EAAE;AACb;AACA,aAAa,4DAAa;AAC1B,iBAAiB,gEAAU,cAAc,mCAAmC,EAAE;AAC9E;AACA;AACA;AACA;AACA,IAAI,uDAAS;AACb;AACA;AACA;AACA;AACA,SAAS,OAAO,uDAAS;AACzB;AACA;AACA,iBAAiB;AACjB;AACA;AACA,CAAC,CAAC,wEAAyB;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,OAAO,sDAAQ;AACxB;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,CAAC;;AAED;AACA;AACA,cAAc,uEAAuE;AACrF;AACA,WAAW,EAAE;AACb;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,OAAO,uDAAS;AACzB;AACA,iBAAiB;AACjB;AACA;AACA,0DAA0D;AAC1D,SAAS,OAAO,yDAAW;AAC3B,MAAM;AACN;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,0DAAY;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,0DAAY;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,2BAA2B,EAAE;AAC7B,yEAAyE,oBAAoB,EAAE;AAC/F,2BAA2B,EAAE;AAC7B;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,2BAA2B,4BAA4B;AACvD,uBAAuB,EAAE;AACzB,wCAAwC,EAAE;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,4CAA4C;AAC/E;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,mCAAmC,yBAAyB;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,SAAS,OAAO,uDAAS;AACzB;AACA,+HAA+H,WAAW,SAAS,WAAW,gKAAgK;AAC9T,+CAA+C,6BAA6B,WAAW;AACvF,iBAAiB;AACjB;AACA;AACA,wDAAwD;AACxD,SAAS,OAAO,wDAAU;AAC1B,MAAM;AACN;AACA,oBAAoB,OAAO,0DAAY,SAAS,gEAAU,cAAc,wBAAwB,EAAE,KAAK;AACvG,uBAAuB,OAAO,6DAAe,SAAS,gEAAU,cAAc,wBAAwB,EAAE,KAAK;AAC7G,kBAAkB,OAAO,6DAAe,SAAS,gEAAU,cAAc,6BAA6B,EAAE,KAAK;AAC7G,cAAc,OAAO,yDAAW,sBAAsB,GAAG,OAAO,mDAAK,EAAE;AACvE,yBAAyB,OAAO,oDAAM,EAAE;AACxC,2BAA2B,OAAO,oDAAM,EAAE;AAC1C,iCAAiC,OAAO,0DAAY,wCAAwC;AAC5F;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC,4DAA4D;AACrG;AACA;AACA,SAAS,OAAO,uDAAS;AACzB;AACA;AACA,iBAAiB;AACjB;AACA;AACA,uDAAuD;AACvD,SAAS,8BAA8B;AACvC,SAAS,OAAO,wDAAU;AAC1B,MAAM;AACN;AACA,iBAAiB,OAAO,mDAAK,EAAE;AAC/B,gBAAgB,OAAO,mDAAK,EAAE;AAC9B,oBAAoB,OAAO,mDAAK,EAAE;AAClC,gBAAgB,OAAO,yDAAW,wBAAwB;AAC1D,sBAAsB,OAAO,yDAAW,0CAA0C;AAClF,sBAAsB,OAAO,yDAAW,oDAAoD;AAC5F,uBAAuB,OAAO,0DAAY,mCAAmC,+CAA+C,IAAI;AAChI;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qDAAqD,yBAAyB;AAC9E;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C,yBAAyB;AACtE;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,SAAS,OAAO,uDAAS;AACzB;AACA,4KAA4K,cAAc,4LAA4L,eAAe,mEAAmE,WAAW,0BAA0B;AAC7e,iBAAiB;AACjB;AACA;AACA,kDAAkD;AAClD,SAAS,8BAA8B;AACvC,SAAS,OAAO,wDAAU;AAC1B,MAAM;AACN;AACA,gBAAgB,OAAO,yDAAW,wBAAwB;AAC1D,qBAAqB,OAAO,yDAAW,8BAA8B;AACrE,wBAAwB,OAAO,yDAAW,iCAAiC;AAC3E,wBAAwB,OAAO,yDAAW,iCAAiC;AAC3E,wBAAwB,OAAO,mDAAK,EAAE;AACtC,iBAAiB,OAAO,mDAAK,EAAE;AAC/B,gBAAgB,OAAO,mDAAK,EAAE;AAC9B,oBAAoB,OAAO,mDAAK,EAAE;AAClC,sBAAsB,OAAO,mDAAK,EAAE;AACpC,yBAAyB,OAAO,mDAAK,EAAE;AACvC,4BAA4B,OAAO,yDAAW,wDAAwD;AACtG,4BAA4B,OAAO,yDAAW,wDAAwD;AACtG,oBAAoB,OAAO,yDAAW,8CAA8C;AACpF,8BAA8B,OAAO,uDAAS,gCAAgC,OAAO,yDAAW,gBAAgB,IAAI;AACpH,gCAAgC,OAAO,0DAAY,mCAAmC,+CAA+C,IAAI;AACzI,mBAAmB,OAAO,0DAAY,oBAAoB;AAC1D;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,OAAO,sDAAQ;AACxB;AACA;AACA,8BAA8B,4DAAY;AAC1C,iBAAiB;AACjB;AACA;AACA,CAAC;;AAED;AACA;AACA,cAAc,uEAAuE;AACrF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA,qCAAqC;AACrC;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA,uBAAuB;AACvB;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA,8BAA8B;AAC9B;AACA,eAAe,EAAE;AACjB,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA,kCAAkC;AAClC;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA,qBAAqB,UAAU,EAAE;AACjC;AACA;AACA,KAAK;AACL;AACA,gBAAgB;AAChB;AACA;AACA,gBAAgB;AAChB;AACA,iBAAiB;AACjB;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA,yBAAyB;AACzB;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA,gBAAgB;AAChB;AACA,iBAAiB;AACjB;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA,yBAAyB;AACzB;AACA,CAAC;;AAED;AACA;AACA,cAAc,uEAAuE;AACrF;AACA,WAAW,OAAO;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA;AACA,uBAAuB,EAAE;AACzB;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,OAAO,uDAAS;AACzB;AACA,iBAAiB;AACjB;AACA;AACA,+DAA+D;AAC/D,SAAS;AACT,MAAM;AACN;AACA,sBAAsB,OAAO,yDAAW,4CAA4C;AACpF,qBAAqB,OAAO,yDAAW,oDAAoD;AAC3F,2BAA2B,OAAO,yDAAW,kDAAkD;AAC/F;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA;AACA,uBAAuB,EAAE;AACzB;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,OAAO,uDAAS;AACzB;AACA,iBAAiB;AACjB;AACA;AACA,8DAA8D;AAC9D,SAAS;AACT,MAAM;AACN;AACA,sBAAsB,OAAO,yDAAW,4CAA4C;AACpF,qBAAqB,OAAO,yDAAW,oDAAoD;AAC3F,2BAA2B,OAAO,yDAAW,kDAAkD;AAC/F;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA,SAAS,OAAO,uDAAS;AACzB;AACA,iBAAiB;AACjB;AACA;AACA,8DAA8D;AAC9D,SAAS,OAAO,yDAAW;AAC3B,MAAM;AACN;AACA,CAAC;;AAED;AACA;AACA,cAAc,uEAAuE;AACrF;AACA;AACA,IAAI,uDAAS;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,mCAAmC,EAAE;AACrC;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,mBAAmB;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,SAAS,OAAO,uDAAS;AACzB;AACA;AACA,iBAAiB;AACjB;AACA;AACA,wDAAwD;AACxD,SAAS,oBAAoB;AAC7B,SAAS,OAAO,wDAAU;AAC1B,MAAM;AACN;AACA,oBAAoB,OAAO,mDAAK,EAAE;AAClC,gBAAgB,OAAO,mDAAK,EAAE;AAC9B,iBAAiB,OAAO,mDAAK,EAAE;AAC/B,uBAAuB,OAAO,0DAAY,uCAAuC,mDAAmD,IAAI;AACxI,gBAAgB,OAAO,yDAAW,wBAAwB;AAC1D,sBAAsB,OAAO,yDAAW,oCAAoC;AAC5E;AACA;AACA,CAAC;;AAED;AACA;AACA,cAAc,uEAAuE;AACrF;AACA;AACA,IAAI,uDAAS;AACb;AACA;AACA;AACA;AACA;AACA,gCAAgC;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oDAAoD,sDAAsD;AAC1G;AACA;AACA;AACA;AACA;AACA;AACA,qDAAqD,uDAAuD;AAC5G;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA,gBAAgB;AAChB;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA,wCAAwC,gEAAc;AACtD;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA,gBAAgB;AAChB;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C,EAAE;AAC5C;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C,EAAE;AAC5C;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA,0DAA0D,qBAAqB,EAAE,6BAA6B,EAAE;AAChH;AACA;AACA;AACA,4EAA4E,qBAAqB,EAAE,6BAA6B,EAAE;AAClI;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,EAAE;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA,SAAS,OAAO,uDAAS;AACzB;AACA,mMAAmM,cAAc,uLAAuL,eAAe,mEAAmE,WAAW,0BAA0B;AAC/f,iBAAiB;AACjB;AACA;AACA,sDAAsD;AACtD,SAAS,oBAAoB;AAC7B,SAAS,OAAO,wDAAU,EAAE;AAC5B,SAAS,OAAO,oDAAM;AACtB,MAAM;AACN;AACA,wBAAwB,OAAO,mDAAK,EAAE;AACtC,gBAAgB,OAAO,mDAAK,EAAE;AAC9B,iBAAiB,OAAO,mDAAK,EAAE;AAC/B,yBAAyB,OAAO,mDAAK,EAAE;AACvC,8BAA8B,OAAO,uDAAS,gCAAgC,OAAO,yDAAW,gBAAgB,IAAI;AACpH,gCAAgC,OAAO,0DAAY,uCAAuC,mDAAmD,IAAI;AACjJ,mCAAmC,OAAO,yDAAW,yDAAyD;AAC9G,mCAAmC,OAAO,yDAAW,yDAAyD;AAC9G,2BAA2B,OAAO,yDAAW,+CAA+C;AAC5F,gBAAgB,OAAO,yDAAW,wBAAwB;AAC1D,oBAAoB,OAAO,yDAAW,4BAA4B;AAClE,qBAAqB,OAAO,yDAAW,8BAA8B;AACrE,wBAAwB,OAAO,yDAAW,iCAAiC;AAC3E,wBAAwB,OAAO,yDAAW,iCAAiC;AAC3E,mBAAmB,OAAO,0DAAY,gCAAgC;AACtE,qBAAqB,OAAO,0DAAY,kCAAkC;AAC1E,oBAAoB,OAAO,mDAAK,EAAE;AAClC,sBAAsB,OAAO,mDAAK,EAAE;AACpC;AACA;AACA,CAAC;;AAED;AACA;AACA,cAAc,uEAAuE;AACrF;AACA,WAAW,OAAO;AAClB;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,0DAAY;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,0DAAY;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC,0DAAY;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA,uBAAuB,EAAE;AACzB;AACA;AACA;AACA,+BAA+B,EAAE;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA,uBAAuB,EAAE;AACzB;AACA,uBAAuB,EAAE;AACzB;AACA,uBAAuB,EAAE;AACzB;AACA,uBAAuB,EAAE;AACzB,4EAA4E,kDAAkD,EAAE;AAChI,uBAAuB,EAAE;AACzB,6EAA6E,8CAA8C,EAAE;AAC7H,uBAAuB,EAAE;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,EAAE;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,4CAA4C,gEAAc;AAC1D;AACA,mCAAmC,EAAE;AACrC;AACA;AACA;AACA,iBAAiB;AACjB;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,2BAA2B,4BAA4B;AACvD,uBAAuB,EAAE;AACzB,wCAAwC,EAAE;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA,uBAAuB,EAAE;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA,mCAAmC,sDAAQ,gDAAgD,qBAAqB;AAChH;AACA,2BAA2B,EAAE;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,QAAQ,gBAAgB;AAC/C;AACA;AACA;AACA;AACA,qBAAqB,0BAA0B;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA,uCAAuC,yCAAyC;AAChF;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC,yCAAyC;AAC9E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA,kCAAkC,gBAAgB;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,OAAO,uDAAS;AACzB;AACA,iqBAAiqB;AACjqB,iCAAiC,sDAAsD;AACvF,iBAAiB;AACjB;AACA;AACA,mDAAmD;AACnD,SAAS,OAAO,wDAAU,EAAE;AAC5B,SAAS,OAAO,oDAAM,EAAE;AACxB,SAAS;AACT,MAAM;AACN;AACA,kBAAkB,OAAO,6DAAe,SAAS,gEAAU,cAAc,8BAA8B,EAAE,KAAK;AAC9G,uBAAuB,OAAO,6DAAe,SAAS,gEAAU,cAAc,4BAA4B,EAAE,KAAK;AACjH,yBAAyB,OAAO,mDAAK,EAAE;AACvC,+BAA+B,OAAO,oDAAM,EAAE;AAC9C,oBAAoB,OAAO,mDAAK,uBAAuB;AACvD,cAAc,OAAO,yDAAW,sBAAsB,GAAG,OAAO,mDAAK,EAAE;AACvE,iBAAiB,OAAO,mDAAK,EAAE;AAC/B,+BAA+B,OAAO,oDAAM,EAAE;AAC9C,6BAA6B,OAAO,oDAAM,EAAE;AAC5C,6BAA6B,OAAO,uDAAS,+BAA+B,eAAe,IAAI;AAC/F,2BAA2B,OAAO,uDAAS,6BAA6B,eAAe,IAAI;AAC3F,0BAA0B,OAAO,uDAAS,4BAA4B,eAAe,IAAI;AACzF,6BAA6B,OAAO,uDAAS,+BAA+B,gBAAgB,IAAI;AAChG,yBAAyB,OAAO,uDAAS,2BAA2B,eAAe,IAAI;AACvF,oBAAoB,OAAO,uDAAS,sBAAsB,eAAe,IAAI;AAC7E,oBAAoB,OAAO,0DAAY,SAAS,gEAAU,cAAc,4BAA4B,EAAE,KAAK;AAC3G,oBAAoB,OAAO,yDAAW,yBAAyB;AAC/D;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,OAAO,sDAAQ;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,4DAAY;AAC1C,iBAAiB;AACjB;AACA;AACA,CAAC;;AAED;AACA;AACA,cAAc,uEAAuE;AACrF;;AAEA;AACA;AACA,cAAc,uEAAuE;AACrF;AACA;AACA;AACA,UAAU;AACV;AACA;;AAEA;AACA;AACA,cAAc,uEAAuE;AACrF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA,gBAAgB;AAChB;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,mBAAmB,EAAE;AACrB,oCAAoC,EAAE;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,mBAAmB,EAAE;AACrB,oCAAoC,EAAE;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,OAAO,uDAAS;AACzB;AACA,iBAAiB;AACjB;AACA;AACA,uDAAuD;AACvD,SAAS,gCAAgC,OAAO,oDAAM,sCAAsC,GAAG;AAC/F,SAAS,OAAO,wDAAU;AAC1B,MAAM;AACN;AACA,gBAAgB,OAAO,mDAAK,0BAA0B;AACtD,oBAAoB,OAAO,yDAAW,4BAA4B;AAClE,sBAAsB,OAAO,yDAAW,4CAA4C;AACpF,mBAAmB,OAAO,yDAAW,8CAA8C;AACnF,qBAAqB,OAAO,yDAAW,gDAAgD;AACvF,mBAAmB,OAAO,yDAAW,8CAA8C;AACnF,mBAAmB,OAAO,0DAAY,oBAAoB;AAC1D,kBAAkB,OAAO,0DAAY,mBAAmB;AACxD,8BAA8B,OAAO,0DAAY,4CAA4C;AAC7F,4BAA4B,OAAO,0DAAY,0CAA0C;AACzF,+BAA+B,OAAO,0DAAY,6CAA6C;AAC/F,8BAA8B,OAAO,0DAAY,4CAA4C;AAC7F,0BAA0B,OAAO,0DAAY,wCAAwC;AACrF,2BAA2B,OAAO,0DAAY,yCAAyC;AACvF,mBAAmB,OAAO,0DAAY,wBAAwB;AAC9D,oBAAoB,OAAO,0DAAY,gCAAgC;AACvE,qBAAqB,OAAO,0DAAY,kCAAkC;AAC1E;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,OAAO,uDAAS;AACzB;AACA,iBAAiB;AACjB;AACA;AACA,uDAAuD;AACvD,SAAS,gCAAgC,OAAO,oDAAM,sCAAsC,GAAG;AAC/F,SAAS;AACT,MAAM;AACN;AACA,iBAAiB,OAAO,mDAAK,0BAA0B;AACvD,sBAAsB,OAAO,yDAAW,0CAA0C;AAClF,uBAAuB,OAAO,yDAAW,oDAAoD;AAC7F,qBAAqB,OAAO,yDAAW,kDAAkD;AACzF,mBAAmB,OAAO,0DAAY,+BAA+B;AACrE;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,OAAO,uDAAS;AACzB;AACA,iBAAiB;AACjB;AACA;AACA,yDAAyD;AACzD,SAAS,gCAAgC,OAAO,oDAAM,sCAAsC,GAAG;AAC/F,SAAS;AACT,MAAM;AACN;AACA,iBAAiB,OAAO,mDAAK,4BAA4B;AACzD,sBAAsB,OAAO,yDAAW,0CAA0C;AAClF,uBAAuB,OAAO,yDAAW,oDAAoD;AAC7F,qBAAqB,OAAO,yDAAW,kDAAkD;AACzF,mBAAmB,OAAO,0DAAY,+BAA+B;AACrE;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,OAAO,uDAAS;AACzB;AACA,iBAAiB;AACjB;AACA;AACA,uDAAuD;AACvD,SAAS,gCAAgC,OAAO,oDAAM,sCAAsC,GAAG;AAC/F,SAAS;AACT,MAAM;AACN;AACA,iBAAiB,OAAO,mDAAK,0BAA0B;AACvD,sBAAsB,OAAO,yDAAW,0CAA0C;AAClF,uBAAuB,OAAO,yDAAW,oDAAoD;AAC7F,qBAAqB,OAAO,yDAAW,kDAAkD;AACzF,mBAAmB,OAAO,0DAAY,+BAA+B;AACrE;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,OAAO,uDAAS;AACzB;AACA,iBAAiB;AACjB;AACA;AACA,iEAAiE;AACjE,SAAS,OAAO,yDAAW;AAC3B,MAAM;AACN;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,OAAO,uDAAS;AACzB;AACA,iBAAiB;AACjB;AACA;AACA,gEAAgE;AAChE,SAAS,OAAO,yDAAW;AAC3B,MAAM;AACN;AACA,CAAC;;AAED;AACA;AACA,cAAc,uEAAuE;AACrF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,EAAE;AACzB;AACA;AACA;AACA;AACA;AACA,uBAAuB,EAAE;AACzB;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,OAAO,kDAAI,UAAU,wBAAwB;AACtD;AACA;AACA,wDAAwD;AACxD,SAAS,gCAAgC,OAAO,oDAAM,sCAAsC;AAC5F,MAAM;AACN;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA,uBAAuB,EAAE;AACzB;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,EAAE;AACzB;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,OAAO,kDAAI,UAAU,sBAAsB;AACpD;AACA;AACA,sDAAsD;AACtD,SAAS,gCAAgC,OAAO,oDAAM,sCAAsC;AAC5F,MAAM;AACN;AACA,CAAC;;AAED;AACA;AACA,cAAc,uEAAuE;AACrF;AACA,WAAW,EAAE;AACb;AACA,WAAW,EAAE;AACb;AACA,WAAW,EAAE;AACb;AACA,WAAW,EAAE;AACb;AACA,WAAW,EAAE;AACb;AACA;AACA,IAAI,uDAAS;AACb;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA,SAAS,OAAO,wDAAU;AAC1B;AACA;AACA,CAAC,CAAC,6EAAmB;AACrB,WAAW,EAAE;AACb,0BAA0B;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C,oBAAoB;AACnE;AACA,2CAA2C,mBAAmB;AAC9D;AACA;AACA,2BAA2B;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2FAA2F,uCAAuC;AAClI;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,0DAAY;AAC9C;AACA,gEAAgE;AAChE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC,0DAAY;AAClD;AACA;AACA;AACA,4BAA4B,0DAAY;AACxC;AACA;AACA;AACA,4BAA4B,0DAAY;AACxC;AACA;AACA;AACA,6BAA6B,0DAAY;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,4CAAO;AACpC,2BAA2B,0DAAY;AACvC,4BAA4B,0DAAY;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA;AACA,2BAA2B,EAAE;AAC7B;AACA;AACA;AACA,2BAA2B,EAAE;AAC7B;AACA;AACA;AACA;AACA,2BAA2B,EAAE;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,EAAE;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA,oDAAoD;AACpD,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA,mBAAmB,6BAA6B;AAChD;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA,mBAAmB,8BAA8B;AACjD;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA,2BAA2B,4BAA4B;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA,uBAAuB,EAAE;AACzB;AACA,2BAA2B,QAAQ;AACnC;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA,uBAAuB,EAAE;AACzB;AACA,uBAAuB,EAAE;AACzB;AACA,2BAA2B,WAAW;AACtC;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C,iCAAiC;AAChF;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA,2BAA2B,EAAE;AAC7B,0EAA0E,EAAE,OAAO;AACnF;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yDAAyD,EAAE,KAAK,wDAAS;AACzE;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA,YAAY,sDAAS,sDAAsD,+DAAQ,cAAc,QAAQ,qDAAQ,IAAI,4DAAuB,EAAE,EAAE,GAAG,gEAAS;AAC5J;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,yCAAyC,gEAAS;AAClD;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,yCAAyC,gEAAS;AAClD;AACA;AACA;AACA,aAAa;AACb,0CAA0C,gEAAS;AACnD;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,EAAE;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,0BAA0B,sDAAQ,8BAA8B,UAAU;AAC1E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,QAAQ,gBAAgB;AAC/C;AACA;AACA;AACA;AACA,qBAAqB,0BAA0B;AAC/C;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,6CAA6C,kCAAkC,EAAE;AACjF,+CAA+C,oCAAoC,EAAE;AACrF,+CAA+C,oCAAoC,EAAE;AACrF,4CAA4C,iCAAiC,EAAE;AAC/E;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA,uBAAuB,EAAE;AACzB;AACA,uBAAuB,EAAE;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,uBAAuB,iBAAiB;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,EAAE;AACzB;AACA,uBAAuB,EAAE;AACzB;AACA,uBAAuB,EAAE;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,EAAE;AACzB;AACA,uBAAuB,EAAE;AACzB;AACA,uBAAuB,EAAE;AACzB;AACA,uBAAuB,EAAE;AACzB;AACA,uBAAuB,EAAE;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,uBAAuB,OAAO;AAC9B;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,oBAAoB;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA,uBAAuB,sBAAsB;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA,uBAAuB,EAAE;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA,6BAA6B,aAAa;AAC1C;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA,uBAAuB,EAAE;AACzB;AACA,uBAAuB,EAAE;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,EAAE;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA,uBAAuB,EAAE;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,GAAG;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,GAAG;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,uBAAuB,EAAE;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,uBAAuB,EAAE;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,uBAAuB,EAAE;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,EAAE;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA,sDAAsD,oBAAoB,EAAE;AAC5E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA,0DAA0D,sBAAsB,EAAE;AAClF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA,sDAAsD,oBAAoB,EAAE;AAC5E;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,+BAA+B;AAChE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,+BAA+B;AACjE;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,+BAA+B;AACjE;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA,sCAAsC,qBAAqB;AAC3D,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,uBAAuB,EAAE;AACzB;AACA;AACA;AACA;AACA,2BAA2B,EAAE;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,EAAE;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,EAAE;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,EAAE;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,uBAAuB,EAAE;AACzB;AACA;AACA;AACA;AACA;AACA,+BAA+B,EAAE;AACjC;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,EAAE;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA;AACA,uBAAuB,EAAE;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,EAAE;AACzB;AACA,uBAAuB,EAAE;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,EAAE;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,OAAO,uDAAS;AACzB;AACA;AACA,qCAAqC,gEAAiB;AACtD;AACA;AACA,yBAAyB;AACzB;AACA,qCAAqC,+EAAqB;AAC1D;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA,wkDAAwkD,0RAA0R,mBAAmB,4HAA4H,eAAe,4GAA4G,6GAA6G,mIAAmI,gBAAgB,gFAAgF,gBAAgB,gBAAgB,kBAAkB,+RAA+R,QAAQ,4MAA4M,UAAU,6LAA6L,QAAQ;AAChrG,qCAAqC,6BAA6B,WAAW;AAC7E,iBAAiB;AACjB;AACA;AACA,yDAAyD;AACzD,SAAS,OAAO,sDAAQ,EAAE;AAC1B,SAAS,OAAO,+DAAiB;AACjC,MAAM;AACN;AACA,cAAc,OAAO,yDAAW,sBAAsB,GAAG,OAAO,mDAAK,EAAE;AACvE,iBAAiB,OAAO,mDAAK,EAAE;AAC/B,oBAAoB,OAAO,mDAAK,EAAE;AAClC,2BAA2B,OAAO,mDAAK,EAAE;AACzC,yBAAyB,OAAO,mDAAK,EAAE;AACvC,6BAA6B,OAAO,mDAAK,EAAE;AAC3C,sBAAsB,OAAO,mDAAK,EAAE;AACpC,oBAAoB,OAAO,mDAAK,EAAE;AAClC,oBAAoB,OAAO,mDAAK,EAAE;AAClC,sBAAsB,OAAO,mDAAK,EAAE;AACpC,oBAAoB,OAAO,mDAAK,EAAE;AAClC,kBAAkB,OAAO,mDAAK,EAAE;AAChC,sBAAsB,OAAO,mDAAK,EAAE;AACpC,gBAAgB,OAAO,mDAAK,EAAE;AAC9B,kBAAkB,OAAO,mDAAK,EAAE;AAChC,2BAA2B,OAAO,mDAAK,EAAE;AACzC,0BAA0B,OAAO,oDAAM,EAAE;AACzC,8BAA8B,OAAO,oDAAM,EAAE;AAC7C,kBAAkB,OAAO,oDAAM,EAAE;AACjC,oBAAoB,OAAO,oDAAM,EAAE;AACnC,mBAAmB,OAAO,oDAAM,EAAE;AAClC,oBAAoB,OAAO,oDAAM,EAAE;AACnC,qBAAqB,OAAO,oDAAM,EAAE;AACpC,oBAAoB,OAAO,uDAAS,sBAAsB,gBAAgB,IAAI;AAC9E,sBAAsB,OAAO,uDAAS,wBAAwB,gBAAgB,IAAI;AAClF,oBAAoB,OAAO,uDAAS,sBAAsB,gBAAgB,IAAI;AAC9E,qCAAqC,OAAO,uDAAS,uCAAuC,OAAO,yDAAW,gBAAgB,IAAI;AAClI,iCAAiC,OAAO,uDAAS,mCAAmC,OAAO,yDAAW,gBAAgB,IAAI;AAC1H,uCAAuC,OAAO,0DAAY,0CAA0C,sDAAsD,IAAI;AAC9J,sCAAsC,OAAO,0DAAY,yCAAyC,qDAAqD,IAAI;AAC3J,qBAAqB,OAAO,uDAAS,8BAA8B,eAAe,IAAI;AACtF,4BAA4B,OAAO,uDAAS,6BAA6B,OAAO,wDAAU,iBAAiB,IAAI;AAC/G,2BAA2B,OAAO,uDAAS,6BAA6B,yCAAyC,IAAI;AACrH,uCAAuC,OAAO,0DAAY,6BAA6B,yCAAyC,IAAI;AACpI,uBAAuB,OAAO,uDAAS,kCAAkC,8CAA8C,IAAI;AAC3H,0BAA0B,OAAO,0DAAY,2CAA2C,GAAG,OAAO,0DAAY,wCAAwC;AACtJ,0BAA0B,OAAO,0DAAY,oCAAoC;AACjF;AACA,IAAI,wDAAU;AACd;AACA,QAAQ,wDAAU,gBAAgB,0DAAY;AAC9C,QAAQ,wDAAU,uBAAuB,0DAAY;AACrD;AACA,IAAI,wDAAU;AACd;AACA,QAAQ,wDAAU,gBAAgB,0DAAY;AAC9C,QAAQ,wDAAU,uBAAuB,0DAAY;AACrD;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,OAAO,sDAAQ;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,4DAAY;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,CAAC;;AAED;AACA;AACA,cAAc,uEAAuE;AACrF;AACA,WAAW,EAAE;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,0DAAY;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,0DAAY;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,0DAAY;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,0DAAY;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,0DAAY;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,OAAO,uDAAS;AACzB;AACA,wBAAwB,mEAAO;AAC/B,4BAA4B,iEAAK,SAAS,iEAAK;AAC/C;AACA,6BAA6B;AAC7B,4BAA4B,sEAAU,cAAc,mEAAO;AAC3D,4BAA4B,sEAAU,cAAc,mEAAO;AAC3D;AACA;AACA;AACA,kIAAkI,WAAW;AAC7I,+CAA+C,6BAA6B,WAAW;AACvF,iBAAiB;AACjB;AACA;AACA,oDAAoD;AACpD,SAAS,OAAO,wDAAU,EAAE;AAC5B,SAAS,2CAA2C,OAAO,sDAAQ,EAAE;AACrE,MAAM;AACN;AACA,cAAc,OAAO,yDAAW,sBAAsB,GAAG,OAAO,mDAAK,EAAE;AACvE,qBAAqB,OAAO,oDAAM,EAAE;AACpC,mBAAmB,OAAO,oDAAM,EAAE;AAClC,oBAAoB,OAAO,oDAAM,EAAE;AACnC,oBAAoB,OAAO,oDAAM,EAAE;AACnC,gBAAgB,OAAO,mDAAK,EAAE;AAC9B,oBAAoB,OAAO,mDAAK,EAAE;AAClC,uBAAuB,OAAO,mDAAK,EAAE;AACrC,qBAAqB,OAAO,mDAAK,EAAE;AACnC,2BAA2B,OAAO,oDAAM,EAAE;AAC1C,mBAAmB,OAAO,mDAAK,EAAE;AACjC,oBAAoB,OAAO,mDAAK,EAAE;AAClC;AACA;AACA,CAAC;AACD,WAAW,OAAO;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,OAAO,sDAAQ;AACxB;AACA;AACA,8BAA8B,4DAAY;AAC1C,iBAAiB;AACjB;AACA;AACA,CAAC;;AAED;AACA;AACA,cAAc,uEAAuE;AACrF;;AAEA;AACA;AACA,cAAc,uEAAuE;AACrF;;AAEipb;AACjpb;;;;;;;;;;;;ACznsGA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA,aAAa,GAAG,IAAoD,oBAAoB,KAAK,EAA8K,CAAC,YAAY,yBAAyB,gBAAgB,UAAU,UAAU,0CAA0C,gBAAgB,OAAC,OAAO,oBAAoB,8CAA8C,kCAAkC,YAAY,YAAY,mCAAmC,iBAAiB,eAAe,sBAAsB,oBAAoB,kDAAkD,WAAW,YAAY,SAAS,EAAE,mBAAmB,aAAa,0GAA0G,qBAAqB,0EAA0E,WAAW,+OAA+O,kBAAkB,sBAAsB,kCAAkC,+FAA+F,2DAA2D,yJAAyJ,sDAAsD,WAAW,kMAAkM,UAAU,EAAE,4BAA4B,qBAAqB,aAAa,4GAA4G,gCAAgC,sBAAsB,uGAAuG,aAAa,4BAA4B,mIAAmI,6BAA6B,6GAA6G,IAAI,gCAAgC,yPAAyP,oCAAoC,6IAA6I,aAAa,EAAE,+FAA+F,qBAAqB,aAAa,kCAAkC,SAAS,wCAAwC,kCAAkC,6BAA6B,qCAAqC,wBAAwB,EAAE,wCAAwC,qBAAqB,aAAa,mBAAmB,iBAAiB,mBAAmB,MAAM,KAAK,IAAI,YAAY,IAAI,iCAAiC,OAAO,SAAS,GAAG,wBAAwB,wEAAwE,cAAc,MAAM,YAAY,IAAI,4BAA4B,WAAW,qCAAqC,cAAc,MAAM,YAAY,IAAI,uCAAuC,WAAW,sBAAsB,EAAE,aAAa,qBAAqB,aAAa,yKAAyK,GAAG,qBAAqB,aAAa,WAAW,0DAA0D,WAAW,EAAE,OAAO,qBAAqB,aAAa,yLAAyL,gBAAgB,kGAAkG,oEAAoE,mGAAmG,8BAA8B,0FAA0F,gCAAgC,+CAA+C,oCAAoC,oCAAoC,yCAAyC,EAAE,WAAW,8BAA8B,QAAQ,mBAAmB,GAAG,8BAA8B,0BAA0B,+BAA+B,yBAAyB,GAAG,EAAE,iDAAiD,qBAAqB,aAAa,gBAAgB,WAAW,QAAQ,IAAI,yCAAyC,SAAS,wBAAwB,gTAAgT,6CAA6C,iGAAiG,QAAQ,+BAA+B,YAAY,8CAA8C,QAAQ,0CAA0C,4CAA4C,iBAAiB,+QAA+Q,SAAS,iKAAiK,4HAA4H,sGAAsG,oBAAoB,iRAAiR,6CAA6C,mEAAmE,yGAAyG,kBAAkB,8DAA8D,GAAG,sCAAsC,wEAAwE,oCAAoC,MAAM,8EAA8E,WAAW,wBAAwB,WAAW,EAAE,wBAAwB,sCAAsC,mBAAmB,8GAA8G,kDAAkD,iBAAiB,oFAAoF,UAAU,aAAa,EAAE,oBAAoB,wBAAwB,WAAW,EAAE,0BAA0B,uCAAuC,sBAAsB,8BAA8B,gCAAgC,yBAAyB,eAAe,8BAA8B,aAAa,EAAE,gDAAgD,mCAAmC,sFAAsF,iEAAiE,WAAW,aAAa,aAAa,EAAE,0CAA0C,2IAA2I,0CAA0C,sBAAsB,WAAW,+BAA+B,kBAAkB,wBAAwB,sFAAsF,2BAA2B,WAAW,OAAO,+BAA+B,4LAA4L,+BAA+B,oBAAoB,4CAA4C,YAAY,WAAW,QAAQ,cAAc,UAAU,SAAS,6BAA6B,4BAA4B,4BAA4B,WAAW,gBAAgB,aAAa,EAAE,uFAAuF,qBAAqB,aAAa,kDAAkD,iCAAiC,6DAA6D,IAAI,wBAAwB,IAAI,oBAAoB,kBAAkB,gEAAgE,SAAS,8FAA8F,kBAAkB,8CAA8C,4GAA4G,UAAU,mBAAmB,SAAS,WAAW,UAAU,EAAE,wCAAwC,sBAAsB,aAAa,aAAa,qCAAqC,sIAAsI,aAAa,sDAAsD,YAAY,6DAA6D,UAAU,kJAAkJ,6BAA6B,wCAAwC,EAAE,uEAAuE,sBAAsB,aAAa,wIAAwI,cAAc,mCAAmC,oDAAoD,yBAAyB,KAAK,sBAAsB,6FAA6F,WAAW,EAAE,wBAAwB,WAAW,uBAAuB,EAAE,8FAA8F,6MAA6M,eAAe,mBAAmB,mBAAmB,uCAAuC,4BAA4B,WAAW,oBAAoB,wBAAwB,mBAAmB,kCAAkC,WAAW,KAAK,WAAW,qCAAqC,+MAA+M,EAAE,uDAAuD,GAAG,EAAE,sGAAsG,sBAAsB,aAAa,mDAAmD,gBAAgB,6FAA6F,oDAAoD,WAAW,iDAAiD,QAAQ,aAAa,WAAW,EAAE,yBAAyB,4CAA4C,sBAAsB,uCAAuC,EAAE,8BAA8B,gEAAgE,+BAA+B,iGAAiG,aAAa,EAAE,2CAA2C,sBAAsB,aAAa,oCAAoC,kBAAkB,8BAA8B,WAAW,0BAA0B,qCAAqC,yBAAyB,kBAAkB,sBAAsB,aAAa,EAAE,yDAAyD,sBAAsB,aAAa,EAAE,mCAAmC,sBAAsB,aAAa,WAAW,8DAA8D,sEAAsE,kFAAkF,uBAAuB,yBAAyB,uCAAuC,oBAAoB,mBAAmB,sBAAsB,0BAA0B,sBAAsB,6FAA6F,GAAG,sBAAsB,aAAa,kBAAkB,uCAAuC,IAAI,sVAAsV,iDAAiD,uKAAuK,WAAW,sIAAsI,mBAAmB,gBAAgB,yPAAyP,iDAAiD,yBAAyB,+BAA+B,eAAe,oCAAoC,iBAAiB,gFAAgF,uBAAuB,iBAAiB,cAAc,4DAA4D,OAAO,gBAAgB,8FAA8F,qBAAqB,UAAU,4JAA4J,oBAAoB,SAAS,kCAAkC,kBAAkB,IAAI,sBAAsB,qEAAqE,SAAS,QAAQ,iCAAiC,wBAAwB,EAAE,8BAA8B,wBAAwB,oBAAoB,kBAAkB,yCAAyC,wBAAwB,EAAE,kDAAkD,uBAAuB,oBAAoB,cAAc,oBAAoB,mFAAmF,yCAAyC,oCAAoC,MAAM,WAAW,iCAAiC,YAAY,sBAAsB,8FAA8F,oCAAoC,WAAW,IAAI,oBAAoB,EAAE,sJAAsJ,uKAAuK,+KAA+K,kCAAkC,6BAA6B,SAAS,4BAA4B,4CAA4C,6BAA6B,oDAAoD,kCAAkC,cAAc,iFAAiF,YAAY,EAAE,gNAAgN,sBAAsB,sBAAsB,EAAE,cAAc,sBAAsB,aAAa,wBAAwB,cAAc,eAAe,YAAY,mBAAmB,kBAAkB,2DAA2D,8BAA8B,8CAA8C,gGAAgG,KAAK,uGAAuG,SAAS,+CAA+C,+FAA+F,8CAA8C,kCAAkC,sCAAsC,mEAAmE,uBAAuB,aAAa,EAAE,gCAAgC,sBAAsB,aAAa,oBAAoB,cAAc,0DAA0D,aAAa,wBAAwB,8BAA8B,wBAAwB,6IAA6I,sBAAsB,gCAAgC,kBAAkB,4BAA4B,qBAAqB,qBAAqB,UAAU,yCAAyC,cAAc,4BAA4B,uBAAuB,wBAAwB,gDAAgD,uBAAuB,mCAAmC,oCAAoC,qBAAqB,sBAAsB,8FAA8F,aAAa,EAAE,cAAc,sBAAsB,aAAa,8BAA8B,cAAc,eAAe,6DAA6D,oBAAoB,mEAAmE,uBAAuB,aAAa,EAAE,sCAAsC,sBAAsB,aAAa,wBAAwB,cAAc,eAAe,2DAA2D,yCAAyC,8CAA8C,0CAA0C,+CAA+C,4BAA4B,kCAAkC,oBAAoB,mEAAmE,uBAAuB,aAAa,EAAE,gCAAgC,sBAAsB,aAAa,yBAAyB,cAAc,eAAe,6DAA6D,sDAAsD,sEAAsE,uBAAuB,aAAa,EAAE,iCAAiC,sBAAsB,aAAa,qIAAqI,sBAAsB,qBAAqB,0KAA0K,EAAE,qHAAqH,sBAAsB,aAAa,+LAA+L,GAAG,sBAAsB,aAAa,2CAA2C,cAAc,mDAAmD,qDAAqD,WAAW,qDAAqD,EAAE,aAAa,EAAE,mCAAmC,sBAAsB,aAAa,2CAA2C,aAAa,yDAAyD,iEAAiE,sEAAsE,aAAa,EAAE,gDAAgD,sBAAsB,aAAa,2CAA2C,cAAc,+EAA+E,qDAAqD,MAAM,wCAAwC,+CAA+C,sCAAsC,aAAa,EAAE,mCAAmC,sBAAsB,aAAa,2CAA2C,cAAc,0BAA0B,WAAW,kHAAkH,oGAAoG,aAAa,WAAW,EAAE,+CAA+C,8CAA8C,+BAA+B,kJAAkJ,uCAAuC,qJAAqJ,8BAA8B,2CAA2C,iDAAiD,0CAA0C,kBAAkB,iDAAiD,MAAM,oDAAoD,MAAM,6DAA6D,+BAA+B,aAAa,4CAA4C,EAAE,aAAa,EAAE,mCAAmC,sBAAsB,aAAa,cAAc,yCAAyC,iDAAiD,uEAAuE,wBAAwB,oBAAoB,aAAa,iBAAiB,oBAAoB,gBAAgB,4BAA4B,aAAa,IAAI,mDAAmD,SAAS,qBAAqB,SAAS,mBAAmB,gKAAgK,kBAAkB,uCAAuC,oBAAoB,iFAAiF,oBAAoB,kCAAkC,4BAA4B,uCAAuC,kBAAkB,gCAAgC,8BAA8B,iFAAiF,oEAAoE,WAAW,+BAA+B,kBAAkB,wBAAwB,QAAQ,2BAA2B,WAAW,OAAO,kBAAkB,mGAAmG,mBAAmB,4CAA4C,uBAAuB,4GAA4G,mBAAmB,0BAA0B,aAAa,8BAA8B,6DAA6D,4BAA4B,uHAAuH,iBAAiB,iFAAiF,qDAAqD,qBAAqB,0BAA0B,+CAA+C,aAAa,GAAG,sBAAsB,aAAa,+HAA+H,oBAAoB,2CAA2C,UAAU,gBAAgB,mCAAmC,yDAAyD,0BAA0B,kBAAkB,yBAAyB,UAAU,sBAAsB,IAAI,sBAAsB,UAAU,8DAA8D,gCAAgC,mCAAmC,iBAAiB,qBAAqB,QAAQ,WAAW,mBAAmB,UAAU,+BAA+B,sDAAsD,6CAA6C,WAAW,iCAAiC,SAAS,yCAAyC,8DAA8D,SAAS,KAAK,SAAS,KAAK,KAAK,WAAW,EAAE,kBAAkB,QAAQ,UAAU,4CAA4C,MAAM,wBAAwB,IAAI,kHAAkH,SAAS,mDAAmD,aAAa,uBAAuB,iBAAiB,kBAAkB,WAAW,+CAA+C,wBAAwB,+BAA+B,uBAAuB,OAAO,mBAAmB,yDAAyD,kBAAkB,iCAAiC,4BAA4B,qIAAqI,mBAAmB,2CAA2C,KAAK,aAAa,EAAE,+IAA+I,sBAAsB,aAAa,kPAAkP,KAAK,yBAAyB,IAAI,yBAAyB,uBAAuB,OAAO,SAAS,IAAI,6FAA6F,yDAAyD,SAAS,YAAY,IAAI,6CAA6C,SAAS,iBAAiB,EAAE,qBAAqB,sBAAsB,aAAa,gHAAgH,MAAM,wDAAwD,gBAAgB,aAAa,+CAA+C,aAAa,4BAA4B,yBAAyB,2DAA2D,6BAA6B,QAAQ,IAAI,2JAA2J,wDAAwD,IAAI,6QAA6Q,SAAS,IAAI,0BAA0B,gFAAgF,wCAAwC,UAAU,IAAI,4BAA4B,uCAAuC,KAAK,2BAA2B,SAAS,sBAAsB,yFAAyF,sFAAsF,uDAAuD,sDAAsD,8DAA8D,wCAAwC,iBAAiB,QAAQ,qGAAqG,+BAA+B,mBAAmB,oBAAoB,MAAM,iDAAiD,sBAAsB,KAAK,qCAAqC,QAAQ,oJAAoJ,iCAAiC,EAAE,8BAA8B,iDAAiD,yCAAyC,sBAAsB,2EAA2E,WAAW,sCAAsC,EAAE,sBAAsB,EAAE,2EAA2E,sBAAsB,aAAa,sGAAsG,cAAc,SAAS,gBAAgB,YAAY,WAAW,6BAA6B,SAAS,wBAAwB,uBAAuB,IAAI,qBAAqB,OAAO,EAAE,SAAS,IAAI,6FAA6F,gCAAgC,SAAS,sDAAsD,OAAO,iCAAiC,wBAAwB,iDAAiD,KAAK,IAAI,6KAA6K,kBAAkB,6BAA6B,iBAAiB,WAAW,iCAAiC,SAAS,iBAAiB,sBAAsB,IAAI,kFAAkF,SAAS,UAAU,yBAAyB,IAAI,iFAAiF,SAAS,UAAU,KAAK,cAAc,kCAAkC,2GAA2G,IAAI,KAAK,iCAAiC,SAAS,kBAAkB,4BAA4B,gBAAgB,YAAY,WAAW,cAAc,SAAS,sBAAsB,SAAS,UAAU,2BAA2B,gCAAgC,yBAAyB,qCAAqC,wBAAwB,qCAAqC,wBAAwB,qCAAqC,UAAU,yCAAyC,gCAAgC,wBAAwB,yBAAyB,wBAAwB,2BAA2B,gBAAgB,mBAAmB,4BAA4B,mBAAmB,oDAAoD,sCAAsC,yBAAyB,wBAAwB,2CAA2C,eAAe,2BAA2B,gCAAgC,yBAAyB,gBAAgB,qCAAqC,2BAA2B,eAAe,2BAA2B,gCAAgC,yBAAyB,yCAAyC,wBAAwB,qCAAqC,cAAc,6BAA6B,uBAAuB,kBAAkB,qBAAqB,kBAAkB,yBAAyB,wPAAwP,4BAA4B,+EAA+E,qEAAqE,aAAa,QAAQ,iBAAiB,0EAA0E,SAAS,yBAAyB,aAAa,uBAAuB,EAAE,0BAA0B,cAAc,0CAA0C,qBAAqB,aAAa,QAAQ,mBAAmB,gGAAgG,SAAS,sCAAsC,6CAA6C,kLAAkL,qBAAqB,qBAAqB,mBAAmB,uBAAuB,kBAAkB,wBAAwB,IAAI,mBAAmB,qBAAqB,qHAAqH,sEAAsE,gJAAgJ,GAAG,EAAE,sFAAsF,sBAAsB,aAAa,iHAAiH,cAAc,iCAAiC,aAAa,2BAA2B,0CAA0C,qBAAqB,gCAAgC,2GAA2G,2BAA2B,wBAAwB,wBAAwB,oCAAoC,iCAAiC,kCAAkC,sUAAsU,2GAA2G,mDAAmD,uCAAuC,2XAA2X,8CAA8C,IAAI,0GAA0G,uBAAuB,8CAA8C,2OAA2O,2BAA2B,QAAQ,QAAQ,oBAAoB,yKAAyK,2BAA2B,MAAM,gDAAgD,yDAAyD,WAAW,iBAAiB,oEAAoE,6NAA6N,6BAA6B,gEAAgE,0QAA0Q,wBAAwB,QAAQ,gWAAgW,mLAAmL,ybAAyb,mJAAmJ,gDAAgD,qDAAqD,UAAU,uEAAuE,6EAA6E,2BAA2B,iBAAiB,kBAAkB,2FAA2F,aAAa,EAAE,iGAAiG,sBAAsB,aAAa,2IAA2I,gBAAgB,kCAAkC,aAAa,uBAAuB,2BAA2B,oBAAoB,iCAAiC,2BAA2B,QAAQ,iUAAiU,yBAAyB,kEAAkE,YAAY,+KAA+K,gHAAgH,6BAA6B,8NAA8N,mBAAmB,ySAAyS,mHAAmH,8BAA8B,mDAAmD,4BAA4B,oOAAoO,kCAAkC,wBAAwB,mCAAmC,iUAAiU,6BAA6B,2CAA2C,0CAA0C,EAAE,UAAU,oEAAoE,uBAAuB,uBAAuB,wCAAwC,kHAAkH,KAAK,uCAAuC,+BAA+B,KAAK,qCAAqC,oDAAoD,0CAA0C,kCAAkC,KAAK,wCAAwC,yDAAyD,sCAAsC,8BAA8B,MAAM,iBAAiB,uGAAuG,YAAY,yCAAyC,8BAA8B,MAAM,iBAAiB,0GAA0G,aAAa,aAAa,EAAE,sHAAsH,sBAAsB,aAAa,kBAAkB,oMAAoM,mEAAmE,kIAAkI,aAAa,2BAA2B,sBAAsB,IAAI,mDAAmD,iDAAiD,wEAAwE,wBAAwB,oFAAoF,SAAS,4BAA4B,qBAAqB,qBAAqB,4CAA4C,0BAA0B,8DAA8D,+BAA+B,2GAA2G,+BAA+B,sFAAsF,8BAA8B,oHAAoH,2FAA2F,8FAA8F,KAAK,WAAW,wBAAwB,YAAY,EAAE,mHAAmH,sBAAsB,aAAa,aAAa,uDAAuD,MAAM,mDAAmD,aAAa,iBAAiB,eAAe,gBAAgB,yIAAyI,yCAAyC,gCAAgC,iEAAiE,2CAA2C,YAAY,iBAAiB,KAAK,2BAA2B,iCAAiC,wBAAwB,SAAS,aAAa,QAAQ,KAAK,mBAAmB,EAAE,EAAE,kBAAkB,MAAM,QAAQ,WAAW,KAAK,sBAAsB,uBAAuB,gHAAgH,EAAE,GAAG,sBAAsB,aAAa,qBAAqB,cAAc,QAAQ,8CAA8C,cAAc,2EAA2E,gEAAgE,kBAAkB,wLAAwL,kBAAkB,aAAa,MAAM,IAAI,OAAO,SAAS,qBAAqB,qFAAqF,EAAE,cAAc,gBAAgB,yFAAyF,sBAAsB,gBAAgB,SAAS,cAAc,wBAAwB,cAAc,yBAAyB,mBAAmB,OAAO,EAAE,+BAA+B,gBAAgB,SAAS,IAAI,gCAAgC,SAAS,2BAA2B,SAAS,4CAA4C,oCAAoC,uBAAuB,6BAA6B,sCAAsC,SAAS,EAAE,aAAa,sCAAsC,QAAQ,EAAE,EAAE,+BAA+B,yBAAyB,gCAAgC,0FAA0F,8BAA8B,kFAAkF,SAAS,uCAAuC,0BAA0B,4CAA4C,mCAAmC,sCAAsC,yBAAyB,2CAA2C,kCAAkC,yBAAyB,aAAa,iDAAiD,cAAc,YAAY,KAAK,sBAAsB,8BAA8B,MAAM,6BAA6B,SAAS,wBAAwB,sBAAsB,8BAA8B,MAAM,4BAA4B,SAAS,uBAAuB,8BAA8B,gCAAgC,sBAAsB,kBAAkB,qBAAqB,mBAAmB,WAAW,8GAA8G,oBAAoB,8BAA8B,0CAA0C,KAAK,MAAM,WAAW,SAAS,gBAAgB,8BAA8B,yCAAyC,aAAa,wBAAwB,GAAG,oBAAoB,WAAW,8GAA8G,oBAAoB,8BAA8B,uBAAuB,KAAK,MAAM,sCAAsC,yBAAyB,aAAa,wBAAwB,EAAE,MAAM,UAAU,EAAE,aAAa,sBAAsB,aAAa,SAAS,kHAAkH,EAAE,wFAAwF,sBAAsB,aAAa,iKAAiK,cAAc,wCAAwC,uBAAuB,2EAA2E,MAAM,EAAE,mBAAmB,uMAAuM,oFAAoF,+BAA+B,kEAAkE,MAAM,wNAAwN,mBAAmB,gBAAgB,eAAe,4CAA4C,gBAAgB,+BAA+B,6CAA6C,uBAAuB,+KAA+K,GAAG,4IAA4I,2LAA2L,8CAA8C,mHAAmH,gCAAgC,oBAAoB,+BAA+B,+JAA+J,oDAAoD,cAAc,gBAAgB,sBAAsB,cAAc,kBAAkB,EAAE,sGAAsG,sBAAsB,aAAa,+LAA+L,cAAc,wCAAwC,uBAAuB,mCAAmC,MAAM,EAAE,mBAAmB,yVAAyV,6CAA6C,oCAAoC,4DAA4D,gBAAgB,eAAe,4CAA4C,gBAAgB,+BAA+B,oFAAoF,uBAAuB,sMAAsM,GAAG,8WAA8W,+XAA+X,2DAA2D,sLAAsL,gCAAgC,oBAAoB,+BAA+B,oKAAoK,oDAAoD,cAAc,gBAAgB,YAAY,EAAE,iJAAiJ,sBAAsB,aAAa,sGAAsG,qBAAqB,kDAAkD,SAAS,EAAE,gBAAgB,MAAM,kEAAkE,iDAAiD,SAAS,2BAA2B,iEAAiE,OAAO,6BAA6B,qDAAqD,iBAAiB,IAAI,kBAAkB,2BAA2B,gBAAgB,qBAAqB,IAAI,mBAAmB,yCAAyC,IAAI,kCAAkC,UAAU,IAAI,6BAA6B,YAAY,IAAI,kBAAkB,2BAA2B,8BAA8B,uBAAuB,oIAAoI,eAAe,GAAG,sBAAsB,aAAa,8BAA8B,IAAI,oCAAoC,SAAS,KAAK,IAAI,kDAAkD,SAAS,KAAK,8BAA8B,MAAM,wDAAwD,gBAAgB,oGAAoG,iBAAiB,IAAI,iCAAiC,SAAS,yCAAyC,6BAA6B,QAAQ,IAAI,2JAA2J,0BAA0B,IAAI,6QAA6Q,SAAS,6BAA6B,qBAAqB,6BAA6B,8CAA8C,IAAI,yBAAyB,SAAS,4BAA4B,2CAA2C,UAAU,IAAI,4BAA4B,uCAAuC,KAAK,2BAA2B,SAAS,sBAAsB,yFAAyF,cAAc,4BAA4B,MAAM,iDAAiD,sBAAsB,KAAK,sCAAsC,EAAE,cAAc,sBAAsB,aAAa,4BAA4B,yCAAyC,MAAM,EAAE,qBAAqB,yBAAyB,EAAE,kBAAkB,kBAAkB,GAAG,sBAAsB,aAAa,WAAW,+XAA+X,GAAG,sBAAsB,aAAa,iBAAiB,mBAAmB,MAAM,KAAK,IAAI,YAAY,IAAI,iCAAiC,OAAO,SAAS,GAAG,4BAA4B,cAAc,MAAM,YAAY,IAAI,4BAA4B,YAAY,GAAG,sBAAsB,aAAa,8MAA8M,gBAAgB,oBAAoB,cAAc,uBAAuB,cAAc,mBAAmB,OAAO,QAAQ,cAAc,0BAA0B,iNAAiN,gBAAgB,qHAAqH,gBAAgB,6BAA6B,gBAAgB,sEAAsE,gBAAgB,6LAA6L,oEAAoE,GAAG,+DAA+D,SAAS,IAAI,mJAAmJ,wBAAwB,kCAAkC,sBAAsB,4BAA4B,oCAAoC,cAAc,mCAAmC,GAAG,+DAA+D,wGAAwG,uCAAuC,EAAE,UAAU,uCAAuC,EAAE,KAAK,6BAA6B,sZAAsZ,sKAAsK,GAAG,0CAA0C,gBAAgB,aAAa,EAAE,kBAAkB,sCAAsC,yBAAyB,8XAA8X,qBAAqB,+KAA+K,EAAE,aAAa,iJAAiJ,wEAAwE,8CAA8C,sIAAsI,gBAAgB,eAAe,EAAE,kBAAkB,sCAAsC,yBAAyB,yeAAye,wIAAwI,oLAAoL,EAAE,kGAAkG,2BAA2B,iHAAiH,oDAAoD,yNAAyN,sBAAsB,mFAAmF,aAAa,8nCAA8nC,cAAc,MAAM,6MAA6M,cAAc,WAAW,0BAA0B,6SAA6S,YAAY,wBAAwB,eAAe,QAAQ,8GAA8G,aAAa,YAAY,ueAAue,+BAA+B,YAAY,sDAAsD,EAAE,mBAAmB,wCAAwC,yBAAyB,sCAAsC,sBAAsB,kHAAkH,iFAAiF,oHAAoH,0NAA0N,uBAAuB,yFAAyF,4DAA4D,yBAAyB,YAAY,4CAA4C,yGAAyG,mrBAAmrB,KAAK,2BAA2B,qLAAqL,oCAAoC,gBAAgB,0MAA0M,gDAAgD,0IAA0I,iBAAiB,mCAAmC,YAAY,GAAG,mKAAmK,IAAI,MAAM,oFAAoF,aAAa,8GAA8G,iBAAiB,sCAAsC,YAAY,GAAG,mKAAmK,IAAI,MAAM,0FAA0F,aAAa,mGAAmG,kBAAkB,iMAAiM,iDAAiD,yDAAyD,iDAAiD,2DAA2D,mCAAmC,WAAW,EAAE,4CAA4C,kBAAkB,MAAM,kIAAkI,0GAA0G,mCAAmC,4BAA4B,EAAE,mBAAmB,uCAAuC,yBAAyB,0GAA0G,eAAe,IAAI,2GAA2G,gFAAgF,mPAAmP,0GAA0G,2BAA2B,yFAAyF,mMAAmM,6SAA6S,0BAA0B,MAAM,kIAAkI,sCAAsC,+BAA+B,yBAAyB,uEAAuE,gRAAgR,eAAe,EAAE,qCAAqC,yHAAyH,EAAE,kCAAkC,8LAA8L,oDAAoD,EAAE,8EAA8E,sBAAsB,aAAa,qBAAqB,wIAAwI,GAAG,sBAAsB,aAAa,wBAAwB,sDAAsD,yPAAyP,KAAK,qDAAqD,QAAQ,EAAE,wDAAwD,KAAK,YAAY,cAAc,4BAA4B,WAAW,SAAS,UAAU,QAAQ,8CAA8C,QAAQ,6HAA6H,QAAQ,EAAE,4CAA4C,cAAc,4BAA4B,WAAW,wCAAwC,QAAQ,wFAAwF,gDAAgD,QAAQ,0BAA0B,sBAAsB,gDAAgD,QAAQ,kBAAkB,eAAe,SAAS,kBAAkB,EAAE,WAAW,aAAa,sBAAsB,SAAS,kBAAkB,EAAE,YAAY,WAAW,kBAAkB,EAAE,YAAY,oBAAoB,SAAS,kBAAkB,EAAE,UAAU,KAAK,IAAI,gDAAgD,wCAAwC,KAAK,UAAU,mDAAmD,EAAE,wCAAwC,OAAO,OAAO,gBAAgB,yIAAyI,GAAG,sBAAsB,aAAa,+HAA+H,cAAc,8DAA8D,aAAa,+fAA+f,cAAc,MAAM,0QAA0Q,cAAc,MAAM,mEAAmE,gBAAgB,QAAQ,mKAAmK,gBAAgB,QAAQ,8EAA8E,aAAa,cAAc,MAAM,MAAM,6CAA6C,MAAM,eAAe,KAAK,MAAM,eAAe,KAAK,MAAM,eAAe,KAAK,MAAM,eAAe,iCAAiC,OAAO,MAAM,KAAK,eAAe,4BAA4B,OAAO,OAAO,kDAAkD,oBAAoB,gBAAgB,kYAAkY,kFAAkF,eAAe,0CAA0C,2HAA2H,8DAA8D,0IAA0I,QAAQ,gBAAgB,sBAAsB,UAAU,MAAM,KAAK,KAAK,EAAE,iBAAiB,sBAAsB,wBAAwB,0EAA0E,MAAM,6EAA6E,yCAAyC,MAAM,cAAc,6CAA6C,MAAM,gDAAgD,mBAAmB,sCAAsC,MAAM,uDAAuD,MAAM,YAAY,KAAK,EAAE,iBAAiB,sBAAsB,+BAA+B,6CAA6C,MAAM,kBAAkB,2CAA2C,MAAM,8GAA8G,YAAY,KAAK,EAAE,iBAAiB,sBAAsB,yIAAyI,YAAY,KAAK,EAAE,iBAAiB,sBAAsB,8HAA8H,wBAAwB,KAAK,KAAK,EAAE,iBAAiB,sBAAsB,gHAAgH,iCAAiC,SAAS,oQAAoQ,oBAAoB,wBAAwB,iBAAiB,QAAQ,mFAAmF,EAAE,+DAA+D,gCAAgC,oBAAoB,wBAAwB,iBAAiB,QAAQ,sFAAsF,EAAE,+DAA+D,mCAAmC,SAAS,uBAAuB,KAAK,KAAK,EAAE,iBAAiB,sBAAsB,wBAAwB,sCAAsC,MAAM,MAAM,8EAA8E,MAAM,aAAa,KAAK,EAAE,iBAAiB,sBAAsB,qCAAqC,yGAAyG,4BAA4B,gCAAgC,mBAAmB,0BAA0B,MAAM,KAAK,IAAI,EAAE,iBAAiB,sBAAsB,mCAAmC,iBAAiB,MAAM,qCAAqC,YAAY,QAAQ,iBAAiB,MAAM,4CAA4C,YAAY,MAAM,4BAA4B,KAAK,EAAE,iBAAiB,sBAAsB,8BAA8B,+CAA+C,MAAM,kDAAkD,kBAAkB,uBAAuB,uCAAuC,sDAAsD,MAAM,UAAU,MAAM,aAAa,KAAK,EAAE,iBAAiB,sBAAsB,mHAAmH,sDAAsD,MAAM,mBAAmB,aAAa,eAAe,EAAE,KAAK,IAAI,EAAE,iBAAiB,sBAAsB,oCAAoC,KAAK,UAAU,uBAAuB,qCAAqC,eAAe,6DAA6D,2CAA2C,MAAM,mBAAmB,aAAa,sBAAsB,EAAE,KAAK,wEAAwE,EAAE,iBAAiB,sBAAsB,uCAAuC,KAAK,WAAW,UAAU,IAAI,EAAE,iBAAiB,sBAAsB,2BAA2B,4CAA4C,MAAM,yCAAyC,gBAAgB,UAAU,IAAI,EAAE,iBAAiB,sBAAsB,sCAAsC,KAAK,UAAU,IAAI,EAAE,iBAAiB,sBAAsB,yCAAyC,4BAA4B,4CAA4C,MAAM,KAAK,IAAI,qBAAqB,qBAAqB,oBAAoB,uDAAuD,MAAM,kBAAkB,eAAe,iEAAiE,8CAA8C,MAAM,wCAAwC,gBAAgB,yEAAyE,wCAAwC,MAAM,2BAA2B,kBAAkB,yBAAyB,iMAAiM,MAAM,aAAa,wEAAwE,EAAE,iBAAiB,sBAAsB,kBAAkB,gBAAgB,6EAA6E,EAAE,iBAAiB,sBAAsB,sBAAsB,2CAA2C,UAAU,MAAM,SAAS,oBAAoB,MAAM,SAAS,8CAA8C,MAAM,uBAAuB,oBAAoB,cAAc,IAAI,EAAE,iBAAiB,sBAAsB,mEAAmE,yBAAyB,aAAa,0EAA0E,EAAE,iBAAiB,sBAAsB,eAAe,gBAAgB,8EAA8E,EAAE,iBAAiB,sBAAsB,sBAAsB,+BAA+B,wCAAwC,MAAM,kCAAkC,oBAAoB,cAAc,IAAI,EAAE,iBAAiB,sBAAsB,mEAAmE,oBAAoB,gDAAgD,MAAM,UAAU,yBAAyB,qBAAqB,mCAAmC,gDAAgD,MAAM,iFAAiF,iCAAiC,gCAAgC,kBAAkB,EAAE,0BAA0B,MAAM,yBAAyB,8BAA8B,MAAM,mBAAmB,KAAK,KAAK,EAAE,iBAAiB,sBAAsB,qIAAqI,uCAAuC,MAAM,MAAM,UAAU,4BAA4B,KAAK,KAAK,EAAE,iBAAiB,sBAAsB,6BAA6B,yCAAyC,MAAM,MAAM,UAAU,YAAY,QAAQ,aAAa,QAAQ,iBAAiB,yBAAyB,8dAA8d,0BAA0B,yBAAyB,cAAc,gDAAgD,kCAAkC,MAAM,qEAAqE,sCAAsC,iBAAiB,wIAAwI,oDAAoD,EAAE,gFAAgF,sBAAsB,aAAa,sbAAsb,oCAAoC,iIAAiI,QAAQ,MAAM,WAAW,QAAQ,IAAI,gBAAgB,aAAa,eAAe,KAAK,sEAAsE,QAAQ,cAAc,KAAK,qBAAqB,MAAM,kCAAkC,gCAAgC,eAAe,KAAK,qBAAqB,QAAQ,IAAI,mCAAmC,+IAA+I,MAAM,EAAE,wFAAwF,yCAAyC,EAAE,aAAa,IAAI,OAAO,0CAA0C,eAAe,YAAY,mBAAmB,mCAAmC,yBAAyB,WAAW,+CAA+C,4BAA4B,oDAAoD,EAAE,qBAAqB,sBAAsB,aAAa,WAAW,4KAA4K,GAAG,sBAAsB,aAAa,mCAAmC,cAAc,mBAAmB,OAAO,QAAQ,wUAAwU,KAAK,qBAAqB,KAAK,qBAAqB,KAAK,qBAAqB,KAAK,mBAAmB,KAAK,yBAAyB,sBAAsB,iHAAiH,gBAAgB,iDAAiD,cAAc,iCAAiC,gBAAgB,sEAAsE,kBAAkB,oJAAoJ,kBAAkB,qBAAqB,gBAAgB,YAAY,0BAA0B,EAAE,aAAa,kBAAkB,6BAA6B,QAAQ,KAAK,uBAAuB,QAAQ,KAAK,KAAK,eAAe,6BAA6B,cAAc,MAAM,QAAQ,IAAI,uBAAuB,QAAQ,IAAI,uBAAuB,QAAQ,IAAI,qBAAqB,mEAAmE,cAAc,uGAAuG,oBAAoB,gBAAgB,0CAA0C,kBAAkB,2BAA2B,iGAAiG,+BAA+B,YAAY,kBAAkB,gBAAgB,uBAAuB,wNAAwN,EAAE,SAAS,gBAAgB,kGAAkG,kCAAkC,IAAI,kEAAkE,KAAK,aAAa,gGAAgG,iCAAiC,KAAK,aAAa,QAAQ,wPAAwP,EAAE,6CAA6C,2KAA2K,QAAQ,KAAK,oBAAoB,+CAA+C,IAAI,wKAAwK,UAAU,GAAG,UAAU,kBAAkB,KAAK,wDAAwD,WAAW,QAAQ,MAAM,wBAAwB,MAAM,qFAAqF,wBAAwB,kBAAkB,gCAAgC,8CAA8C,KAAK,sMAAsM,kBAAkB,gCAAgC,2BAA2B,KAAK,2CAA2C,YAAY,wBAAwB,EAAE,0IAA0I,iDAAiD,KAAK,SAAS,oBAAoB,wCAAwC,uFAAuF,WAAW,uBAAuB,eAAe,+BAA+B,UAAU,MAAM,mBAAmB,UAAU,aAAa,mBAAmB,KAAK,mBAAmB,UAAU,aAAa,UAAU,IAAI,sBAAsB,YAAY,iBAAiB,QAAQ,KAAK,WAAW,QAAQ,OAAO,uBAAuB,KAAK,OAAO,uBAAuB,KAAK,OAAO,uBAAuB,KAAK,OAAO,uBAAuB,mBAAmB,IAAI,6BAA6B,sEAAsE,+HAA+H,0DAA0D,YAAY,+DAA+D,mBAAmB,QAAQ,MAAM,iDAAiD,0EAA0E,SAAS,IAAI,qCAAqC,SAAS,+CAA+C,MAAM,+FAA+F,8BAA8B,KAAK,kCAAkC,oLAAoL,MAAM,2CAA2C,IAAI,+BAA+B,0CAA0C,2FAA2F,6BAA6B,gRAAgR,yBAAyB,8BAA8B,4IAA4I,KAAK,EAAE,qBAAqB,sBAAsB,aAAa,qBAAqB,6LAA6L,GAAG,sBAAsB,aAAa,kEAAkE,gCAAgC,0CAA0C,GAAG,EAAE,GAAG,WAAW,E;;;;;;;;;;;;ACZ7s6F;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAgE;AACkJ;AAC9J;AACA;AACY;;AAEhE,6BAA6B,4DAAc;AAC3C,6BAA6B,4DAAc;AAC3C,0BAA0B,4DAAc;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,yEAAiB,oEAAoE,+CAAE;AAC5G;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,yEAAiB;AAC7B,gCAAgC,oDAAe;AAC/C;AACA;AACA,0DAA0D,mCAAmC,EAAE;AAC/F;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wDAAwD,wDAAU;AAClE,QAAQ,gEAAU;AAClB,QAAQ,qDAAO,IAAI,4DAAM,CAAC,yDAAW;AACrC,QAAQ,qDAAO,IAAI,8DAAQ,KAAK,qDAAO,IAAI,4DAAM;AACjD,QAAQ,qDAAO,IAAI,8DAAQ,KAAK,qDAAO,IAAI,4DAAM;AACjD,QAAQ,qDAAO,IAAI,8DAAQ,KAAK,qDAAO,IAAI,4DAAM;AACjD,QAAQ,wDAAU;AAClB;AACA;AACA;AACA,CAAC;;AAED,6BAA6B,4DAAc;;AAE3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,0DAAY;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qDAAqD,6CAA6C,EAAE;AACpG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C,gDAAgD,EAAE;AAC9F,aAAa;AACb;AACA,4CAA4C,wBAAwB,EAAE;AACtE,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb,QAAQ,iEAAW;AACnB,QAAQ,wDAAU;AAClB;AACA,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb,QAAQ,wDAAU;AAClB;AACA,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb,QAAQ,wDAAU;AAClB;AACA,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb,QAAQ,wDAAU;AAClB;AACA,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb,QAAQ,wDAAU;AAClB;AACA,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb,QAAQ,wDAAU;AAClB;AACA,IAAI,wDAAU;AACd,QAAQ,2DAAK;AACb,QAAQ,wDAAU;AAClB;AACA,IAAI,wDAAU;AACd,QAAQ,4DAAM;AACd,QAAQ,wDAAU;AAClB;AACA,yBAAyB,wDAAU;AACnC,QAAQ,+DAAS;AACjB;AACA;AACA;AACA,SAAS;AACT,QAAQ,qDAAO,IAAI,8DAAQ,KAAK,qDAAO,IAAI,4DAAM;AACjD,QAAQ,wDAAU,uBAAuB,wDAAU;AACnD;AACA,YAAY,oDAAM;AAClB;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA,4BAA4B,wDAAU;AACtC,QAAQ,8DAAQ;AAChB;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C,wDAAU;AACpD,QAAQ,8DAAQ;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,CAAC;;AAED,gCAAgC,4DAAc;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,oDAAM;AACnC;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA,yBAAyB,yEAAiB;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C,4CAAO;AACnD;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,iBAAiB,mBAAmB;AACpC;AACA;AACA;AACA,0BAA0B,4CAAO;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qDAAqD,iBAAiB;AACtE;AACA;AACA;AACA;AACA,qDAAqD,+BAA+B;AACpF;AACA,iBAAiB;AACjB,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,wDAAU;AACnC,QAAQ,gEAAU;AAClB,QAAQ,qDAAO,IAAI,4DAAM;AACzB,QAAQ,qDAAO,IAAI,4DAAM,CAAC,yDAAW;AACrC,QAAQ,qDAAO,IAAI,8DAAQ,KAAK,qDAAO,IAAI,4DAAM;AACjD,QAAQ,qDAAO,IAAI,8DAAQ,KAAK,qDAAO,IAAI,4DAAM;AACjD,QAAQ,wDAAU,uBAAuB,oDAAM;AAC/C;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA,wBAAwB,wDAAU;AAClC,QAAQ,8DAAQ;AAChB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gFAAgF,oBAAoB;AACpG,iFAAiF,qBAAqB;AACtG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,wDAAU;AACd,QAAQ,kEAAY;AACpB,QAAQ,wDAAU;AAClB,QAAQ,wDAAU;AAClB,QAAQ,wDAAU;AAClB;AACA,0EAA0E,wDAAU;AACpF,QAAQ,+DAAS;AACjB;AACA;AACA;AACA,6BAA6B,gEAAiB;AAC9C;AACA,iCAAiC,gEAAU,cAAc,0CAA0C,EAAE;AACrG,iBAAiB;AACjB;AACA;AACA;AACA,SAAS;AACT,QAAQ,wDAAU;AAClB;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA,2BAA2B,wDAAU;AACrC,QAAQ,8DAAQ;AAChB;AACA;AACA;AACA;AACA,sBAAsB,0DAAW;AACjC,SAAS;AACT;AACA;AACA,CAAC;;AAED;AACA;AACA;;AAEsS;AACtS;;;;;;;;;;;;;ACrbA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAqO;AACtL;;AAE/C;AACA;AACA;AACA,cAAc,wGAAwG;AACtH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA,cAAc,wGAAwG;AACtH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC,0DAAY;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA,uBAAuB,EAAE;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,uBAAuB,EAAE;AACzB,wBAAwB;AACxB;AACA,8BAA8B,yCAAyC,EAAE;AACzE;AACA;AACA;AACA,uBAAuB,EAAE;AACzB,wBAAwB;AACxB;AACA,8BAA8B,yCAAyC,EAAE;AACzE;AACA;AACA;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA,0BAA0B,yCAAyC,EAAE;AACrE;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA,uBAAuB,EAAE;AACzB;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA,sCAAsC,sBAAsB;AAC5D,mBAAmB,EAAE;AACrB,4CAA4C,EAAE;AAC9C,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA,wBAAwB;AACxB;AACA;AACA;AACA,aAAa;AACb;AACA,wBAAwB;AACxB;AACA;AACA;AACA,aAAa;AACb;AACA,wBAAwB;AACxB;AACA;AACA;AACA,aAAa;AACb;AACA,wBAAwB;AACxB;AACA;AACA;AACA,aAAa;AACb;AACA,wBAAwB;AACxB;AACA;AACA;AACA,aAAa;AACb;AACA,mBAAmB,EAAE;AACrB;AACA;AACA,wBAAwB;AACxB;AACA;AACA;AACA,aAAa;AACb;AACA,wBAAwB;AACxB;AACA;AACA;AACA,aAAa;AACb;AACA,wBAAwB;AACxB;AACA;AACA;AACA,aAAa;AACb;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB,+BAA+B;AAC/B,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,yBAAyB,EAAE,gCAAgC;AAC3D,gCAAgC,EAAE;AAClC;AACA;AACA,gCAAgC,EAAE;AAClC;AACA;AACA,4BAA4B,EAAE;AAC9B;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,OAAO,uDAAS;AACzB;AACA,4FAA4F,sBAAsB,2BAA2B,eAAe,6BAA6B,0NAA0N,ugBAAugB,SAAS,2HAA2H,WAAW;AACziC,iBAAiB;AACjB;AACA;AACA,0DAA0D;AAC1D,SAAS,OAAO,wDAAU,EAAE;AAC5B,SAAS,OAAO,+DAAiB,EAAE;AACnC,SAAS,OAAO,uDAAS;AACzB,MAAM;AACN;AACA,mBAAmB,OAAO,mDAAK,EAAE;AACjC,qBAAqB,OAAO,mDAAK,EAAE;AACnC,iBAAiB,OAAO,mDAAK,EAAE;AAC/B,uBAAuB,OAAO,mDAAK,EAAE;AACrC,qBAAqB,OAAO,mDAAK,EAAE;AACnC,+BAA+B,OAAO,mDAAK,EAAE;AAC7C,+BAA+B,OAAO,mDAAK,EAAE;AAC7C,wBAAwB,OAAO,mDAAK,EAAE;AACtC,gBAAgB,OAAO,mDAAK,EAAE;AAC9B,sBAAsB,OAAO,uDAAS,wBAAwB,eAAe,IAAI;AACjF,oBAAoB,OAAO,0DAAY,wCAAwC;AAC/E;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA,cAAc,wGAAwG;AACtH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,0DAAY;AACvC,4BAA4B,0DAAY;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,mBAAmB;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,EAAE;AACzB,sCAAsC,EAAE,kBAAkB,EAAE;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,EAAE;AACzB,sCAAsC,EAAE;AACxC;AACA,0CAA0C,EAAE;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA,yBAAyB,qBAAqB,EAAE;AAChD;AACA;AACA;AACA,4BAA4B;AAC5B;AACA,6BAA6B,qBAAqB,EAAE;AACpD;AACA;AACA;AACA,uBAAuB,EAAE;AACzB,sCAAsC,EAAE;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA,yBAAyB,qBAAqB,EAAE;AAChD;AACA;AACA;AACA,4BAA4B;AAC5B;AACA,6BAA6B,qBAAqB,EAAE;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,EAAE;AAC3B;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,SAAS,OAAO,uDAAS;AACzB;AACA;AACA,iBAAiB;AACjB;AACA;AACA,mDAAmD;AACnD,SAAS,OAAO,8DAAgB,EAAE;AAClC,SAAS,OAAO,+DAAiB,EAAE;AACnC,SAAS,OAAO,sEAAwB,EAAE;AAC1C,SAAS,OAAO,4DAAc,EAAE;AAChC,SAAS,OAAO,sDAAQ;AACxB,MAAM;AACN;AACA,mBAAmB,OAAO,mDAAK,sBAAsB;AACrD,uBAAuB,OAAO,mDAAK,EAAE;AACrC,2BAA2B,OAAO,mDAAK,EAAE;AACzC,4BAA4B,OAAO,mDAAK,EAAE;AAC1C,4BAA4B,OAAO,mDAAK,EAAE;AAC1C,wBAAwB,OAAO,mDAAK,EAAE;AACtC,0BAA0B,OAAO,mDAAK,EAAE;AACxC,sCAAsC,OAAO,mDAAK,EAAE;AACpD,sCAAsC,OAAO,mDAAK,EAAE;AACpD,iCAAiC,OAAO,mDAAK,EAAE;AAC/C,wBAAwB,OAAO,mDAAK,EAAE;AACtC,mBAAmB,OAAO,oDAAM,EAAE;AAClC,oBAAoB,OAAO,oDAAM,EAAE;AACnC,6BAA6B,OAAO,0DAAY,gCAAgC;AAChF,6BAA6B,OAAO,0DAAY,mCAAmC;AACnF,uBAAuB,OAAO,0DAAY,sBAAsB,GAAG,OAAO,0DAAY,yBAAyB;AAC/G,uBAAuB,OAAO,0DAAY,uBAAuB,GAAG,OAAO,0DAAY,yBAAyB;AAChH;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA,cAAc,wGAAwG;AACtH;AACA;AACA;AACA;AACA;AACA,SAAS,OAAO,sDAAQ;AACxB;AACA;AACA;AACA;AACA;AACA,wBAAwB,4DAAY;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA,cAAc,wGAAwG;AACtH;;AAEA;AACA;AACA;AACA,cAAc,wGAAwG;AACtH;;AAEsF;AACtF;;;;;;;;;;;;;AC5uCA;AAAe,8MAA+I,wBAAwB,oJAAoJ,uBAAuB,kC;;;;;;;;;;;;ACAjW;AAAe,4MAA6I,wBAAwB,kJAAkJ,mBAAmB,iHAAiH,uBAAuB,kC;;;;;;;;;;;;ACAje;AAAe,yHAA0D,WAAW,kCAAkC,mBAAmB,oRAAoR,mBAAmB,oR;;;;;;;;;;;;ACAhb;AAAe,sGAAuC,sYAAsY,sCAAsC,mFAAmF,yCAAyC,4J;;;;;;;;;;;;ACA9lB;AAAe,sGAAuC,mbAAmb,qCAAqC,yCAAyC,yCAAyC,QAAQ,yCAAyC,mGAAmG,wCAAwC,mM;;;;;;;;;;;;ACA5xB;AAAe,6ZAA8V,wBAAwB,mHAAmH,wCAAwC,uOAAuO,qDAAqD,uBAAuB,4FAA4F,wBAAwB,0FAA0F,uBAAuB,6mBAA6mB,wBAAwB,8FAA8F,uBAAuB,yFAAyF,uBAAuB,0FAA0F,uBAAuB,0KAA0K,uBAAuB,8DAA8D,4JAA4J,iLAAiL,MAAM,yCAAyC,YAAY,41CAA41C,qCAAqC,iBAAiB,mCAAmC,gJAAgJ,2EAA2E,+CAA+C,oLAAoL,qDAAqD,idAAid,kBAAkB,KAAK,8BAA8B,0wBAA0wB,4bAA4b,gBAAgB,mdAAmd,mBAAmB,+bAA+b,oBAAoB,ycAAyc,sBAAsB,smCAAsmC,0CAA0C,+yBAA+yB,+BAA+B,yRAAyR,cAAc,sVAAsV,cAAc,uUAAuU,cAAc,uUAAuU,cAAc,goB;;;;;;;;;;;;ACAz8V;AAAe,0fAA2b,yBAAyB,qKAAqK,yCAAyC,uWAAuW,yBAAyB,qIAAqI,yBAAyB,mIAAmI,yBAAyB,yyBAAyyB,yBAAyB,uIAAuI,yBAAyB,kIAAkI,yBAAyB,mIAAmI,yBAAyB,8MAA8M,yBAAyB,0FAA0F,oZAAoZ,MAAM,mCAAmC,YAAY,q5CAAq5C,kFAAkF,uEAAuE,qFAAqF,sOAAsO,0KAA0K,oGAAoG,gfAAgf,sGAAsG,qiBAAqiB,sxDAAsxD,yCAAyC,u5BAAu5B,qFAAqF,6YAA6Y,ofAAof,ycAAyc,4cAA4c,2jB;;;;;;;;;;;;ACAjsW;AAAe,unBAAwjB,wBAAwB,0GAA0G,wBAAwB,wGAAwG,uBAAuB,sGAAsG,uBAAuB,mPAAmP,wBAAwB,ouBAAouB,kCAAkC,GAAG,oCAAoC,gkCAAgkC,kCAAkC,GAAG,oCAAoC,qhC;;;;;;;;;;;;ACA9pG;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,aAAa;AAC5B,eAAe,EAAE;AACjB,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA,mBAAmB,EAAE;AACrB,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB,mBAAmB,EAAE;AACrB,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA,mBAAmB,SAAS;AAC5B,mBAAmB,EAAE;AACrB,qBAAqB;AACrB;AACA;AACA,iCAAiC,YAAY;AAC7C,mDAAmD,gBAAgB;AACnE;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,CAAC;;AAED;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,gCAAgC,6BAA6B,EAAE,aAAa;AAC5G,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,SAAS;AACpB,WAAW,OAAO;AAClB,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,kBAAkB;AACjC,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,kBAAkB;AACjC,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,QAAQ;AACzB;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,qDAAqD,mCAAmC,EAAE;AAC1F;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,gBAAgB;AAC/B,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,aAAa,OAAO;AACpB;AACA;AACA,6CAA6C,gBAAgB;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA,WAAW,cAAc;AACzB,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,oBAAoB;AAC/B,WAAW,UAAU;AACrB,aAAa;AACb;AACA;AACA;AACA,oBAAoB,uBAAuB;AAC3C;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,WAAW,oBAAoB;AAC/B,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA,6CAA6C,yBAAyB;AACtE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,mBAAmB;AAC9B;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,YAAY;AACvB,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,kCAAkC,iEAAiE;AACnG;AACA;AACA;AACA;AACA,8BAA8B;AAC9B,8CAA8C;AAC9C,CAAC;AACD;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,YAAY;AACvB,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,aAAa;AACb;AACA;AACA,YAAY;AACZ;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,QAAQ;AACvB;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,YAAY;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA,eAAe,QAAQ;AACvB,eAAe,YAAY;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,2CAA2C;AAC7E;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA,eAAe,uBAAuB;AACtC;AACA,eAAe,yBAAyB;AACxC;AACA,eAAe,eAAe;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,QAAQ;AACvB,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,QAAQ;AACvB,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,uBAAuB;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAEc,oEAAK,EAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC/5B+B;AACL;AACM;AACA;AACrD,0EAAkB,CAAC,oEAAQ,EAAE,OAAO,CAAC,CAAC;AACuB;AACN;AACI;AACE;AACK;AACA;AACX;AACuB;AACrB;AACa;AACN;AACT;AACS;AACT;AACM;AACF;AACH;AACW;AACN;AACR;AACU;AACuB;AAChB;AACkB;AACH;AACS;AAC9C;AACS;AACM;AACK;AAEpE,aAAa;AAC0D;AACH;AACJ;AACI;AAuDpE;IAAA;IAAgC,CAAC;IAApB,gBAAgB;QAnD5B,8DAAQ,CAAC;YACR,YAAY,EAAE;gBACZ,mGAAuB;gBACvB,qGAAuB;gBACvB,kGAAsB;gBACtB,2GAAyB;gBACzB,iFAAiB;aAAC;YACpB,OAAO,EAAE;gBACP,4DAAY;gBACZ,0EAAgB;gBAChB,oEAAa;gBACb,wEAAe;gBACf,0EAAgB;gBAChB,0DAAW;gBACX,kEAAmB;gBACnB,wEAAe;gBACf,+EAAkB;gBAClB,qEAAa;gBACb,4FAAwB;gBACxB,uEAAc;gBACd,oFAAoB;gBACpB,8EAAiB;gBACjB,qEAAa;gBACb,qEAAa;gBACb,2EAAgB;gBAChB,yEAAe;gBACf,sEAAgB;gBAChB,iFAAmB;gBACnB,2EAAmB;gBACnB,mEAAiB;gBACjB,6EAAiB;gBACjB,8EAAiB;gBACjB,sEAAgB;gBAChB,gEAAa;gBACb,yEAAe;gBACf,+EAAkB;gBAClB,oFAAoB;gBACpB,oEAAe,CAAC,OAAO,CAAC;oBACtB,MAAM,EAAE;wBACN,OAAO,EAAE,oEAAe;wBACxB,UAAU,EAAE,UAAC,IAAgB;4BAC3B,OAAO,IAAI,+EAAmB,CAAC,IAAI,CAAC,CAAC;wBACvC,CAAC;wBACD,IAAI,EAAE,CAAC,gEAAU,CAAC;qBACnB;iBACF,CAAC;aACH;YACD,SAAS,EAAE,CAAC,EAAE,OAAO,EAAE,uDAAS,EAAE,QAAQ,EAAE,OAAO,EAAE,EAAE,EAAE,OAAO,EAAE,oFAA0B,EAAE,QAAQ,EAAE,EAAE,WAAW,EAAE,IAAI,EAAE,EAAE,CAAC;YAChI,OAAO,EAAE,EAAE;YACX,eAAe,EAAE,CAAC,mGAAuB,EAAE,2GAAyB,EAAC,iFAAiB,CAAC;SACxF,CAAC;OACW,gBAAgB,CAAI;IAAD,uBAAC;CAAA;AAAJ;;;;;;;;;;;;;AC/F7B;AAAe,iGAAkC,MAAM,kBAAkB,2BAA2B,4BAA4B,KAAK,cAAc,wBAAwB,6BAA6B,sDAAsD,OAAO,aAAa,wBAAwB,sDAAsD,2BAA2B,qBAAqB,KAAK,+CAA+C,ugC;;;;;;;;;;;;;;;;;;ACAlZ;AACuB;AAQzE;IAEE,mCACS,SAAkD,EACzB,aAAkC;QAD3D,cAAS,GAAT,SAAS,CAAyC;QACzB,kBAAa,GAAb,aAAa,CAAqB;IAChE,CAAC;IACL,8CAAU,GAAV;QACE,IAAI,CAAC,aAAa,CAAC,UAAU,GAAG,IAAI,CAAC;QACrC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,KAAG,IAAI,CAAC,aAAa,CAAC,UAAY,CAAC,CAAC;IAC3D,CAAC;;gBANmB,qEAAY;gDAC7B,oDAAM,SAAC,wEAAe;;IAJd,yBAAyB;QALrC,+DAAS,CAAC;YACT,QAAQ,EAAE,wBAAwB;YAClC,qQAAkD;;SAEnD,CAAC;QAKG,6GAAM,CAAC,wEAAe,CAAC;+EADN,qEAAY;OAHrB,yBAAyB,CAUrC;IAAD,gCAAC;CAAA;AAVqC;;;;;;;;;;;;;ACTtC;AAAe,iGAAkC,cAAc,kBAAkB,2BAA2B,4BAA4B,qBAAqB,KAAK,cAAc,qBAAqB,wBAAwB,oCAAoC,sDAAsD,2BAA2B,KAAK,mBAAmB,0BAA0B,wBAAwB,sDAAsD,2BAA2B,qBAAqB,KAAK,aAAa,2BAA2B,wBAAwB,sDAAsD,2BAA2B,qBAAqB,KAAK,+CAA+C,mhD;;;;;;;;;;;;;;;;;;;ACA/qB;AACuB;AAET;AAOhE;IAEE,iCACS,SAAgD,EAC/C,cAA6B,EACL,aAAkC;QAF3D,cAAS,GAAT,SAAS,CAAuC;QAC/C,mBAAc,GAAd,cAAc,CAAe;QACL,kBAAa,GAAb,aAAa,CAAqB;QAElE,IAAI,CAAC,SAAS,GAAG,cAAc,CAAC,kBAAkB,EAAE,CAAC;IACvD,CAAC;IACD,4CAAU,GAAV;QACE,IAAI,CAAC,aAAa,CAAC,UAAU,GAAG,IAAI,CAAC;QACrC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,KAAG,IAAI,CAAC,aAAa,CAAC,UAAY,CAAC,CAAC;IAC3D,CAAC;IACD,2CAAS,GAAT;QACE,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;IACzB,CAAC;IACD,iDAAe,GAAf;QACE,wBAAwB;QACxB,IAAI,GAAG,GAAG,QAAQ,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;QACzC,IAAI,GAAG,KAAK,IAAI,EAAE;YAChB,GAAG,CAAC,cAAc,EAAE,CAAC;YACrB,GAAG,GAAG,IAAI,CAAC;SACZ;QACD,IAAI,CAAC,aAAa,EAAE,CAAC;IACxB,CAAC;IACD,+CAAa,GAAb;QACE,QAAQ,IAAI,CAAC,SAAS,EAAE;YACtB,KAAK,CAAC,EAAC,QAAQ;gBACb,IAAI,IAAI,EAAE,KAAK,CAAC;gBAChB,IAAI,GAAG,QAAQ,CAAC,sBAAsB,CAAC,SAAS,CAAC,CAAC;gBAClD,KAAK,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,IAAI,CAAC,MAAM,EAAE,EAAE,KAAK,EAAE;oBAC1C,IAAI,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,UAAU,GAAG,oBAAoB;iBACtD;gBACD,MAAM;gBACN,MAAM;YACR,KAAK,CAAC,EAAC,MAAM;gBACX,IAAI,IAAI,EAAE,KAAK,CAAC;gBAChB,IAAI,GAAG,QAAQ,CAAC,sBAAsB,CAAC,SAAS,CAAC,CAAC;gBAClD,KAAK,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,IAAI,CAAC,MAAM,EAAE,EAAE,KAAK,EAAE;oBAC1C,IAAI,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,UAAU,GAAG,gBAAgB;iBAClD;gBACD,MAAM;YACR,KAAK,CAAC,EAAC,KAAK;gBACV,IAAI,IAAI,EAAE,KAAK,CAAC;gBAChB,IAAI,GAAG,QAAQ,CAAC,sBAAsB,CAAC,SAAS,CAAC,CAAC;gBAClD,KAAK,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,IAAI,CAAC,MAAM,EAAE,EAAE,KAAK,EAAE;oBAC1C,IAAI,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,UAAU,GAAG,iBAAiB;iBACnD;gBACD,MAAM;SACT;IACH,CAAC;;gBA/CoB,qEAAY;gBACN,6EAAa;gDACpC,oDAAM,SAAC,wEAAe;;IALd,uBAAuB;QALnC,+DAAS,CAAC;YACT,QAAQ,EAAE,qBAAqB;YAC/B,4PAA+C;;SAEhD,CAAC;QAMG,6GAAM,CAAC,wEAAe,CAAC;+EAFN,qEAAY;YACN,6EAAa;OAJ5B,uBAAuB,CAoDnC;IAAD,8BAAC;CAAA;AApDmC;;;;;;;;;;;;;ACVpC;AAAe,4EAAa,qBAAqB,mDAAmD,KAAK,YAAY,mDAAmD,KAAK,oBAAoB,mDAAmD,KAAK,+CAA+C,uqB;;;;;;;;;;;;;;;;;;ACA9O;AAEQ;AAQlE;IAEE,2BACS,SAAgD,EACvB,aAAkC;QAD3D,cAAS,GAAT,SAAS,CAAuC;QACvB,kBAAa,GAAb,aAAa,CAAqB;IAChE,CAAC;IAEL,oCAAQ,GAAR;QACE,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,aAAa,CAAC;IACjC,CAAC;;gBANmB,8DAAY;gDAC7B,oDAAM,SAAC,iEAAe;;IAJd,iBAAiB;QAL7B,+DAAS,CAAC;YACT,QAAQ,EAAE,eAAe;YACzB,0OAAyC;;SAE1C,CAAC;QAKG,6GAAM,CAAC,iEAAe,CAAC;+EADN,8DAAY;OAHrB,iBAAiB,CAW7B;IAAD,wBAAC;CAAA;AAX6B;;;;;;;;;;;;;ACV9B;AAAe,gFAAiB,yBAAyB,mBAAmB,KAAK,cAAc,kBAAkB,4BAA4B,KAAK,aAAa,sBAAsB,qBAAqB,gBAAgB,4BAA4B,wBAAwB,KAAK,aAAa,gCAAgC,qBAAqB,sBAAsB,qCAAqC,8BAA8B,oDAAoD,yBAAyB,KAAK,mDAAmD,WAAW,wBAAwB,kBAAkB,8BAA8B,uBAAuB,OAAO,0BAA0B,yBAAyB,qBAAqB,OAAO,KAAK,mDAAmD,usD;;;;;;;;;;;;;;;;;;;;;;ACAtuB;AAC5B;AACc;AACJ;AAC0B;AACb;AAQhE;IAKE,iCACU,SAA2B,EAC3B,OAAe,EACvB,iBAAoC,EACpC,KAAmB,EACnB,cAA4B,EACpB,gBAAiC;QALjC,cAAS,GAAT,SAAS,CAAkB;QAC3B,YAAO,GAAP,OAAO,CAAQ;QAIf,qBAAgB,GAAhB,gBAAgB,CAAiB;QAVpC,eAAU,GAAG,IAAI,CAAC;QAElB,gBAAW,GAAG,YAAY,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;QA6EzD,cAAS,GAAG,CAAC,kBAAkB,EAAE,uBAAuB,CAAC,CAAC,IAAI,CAAC,WAAC,IAAI,QAAC,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,EAA5B,CAA4B,CAAC,CAAC;QApEhG,IAAI,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAC/C,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC,UAAU,CAAC,oBAAoB,CAAC,CAAC;QAC1D,IAAI,CAAC,oBAAoB,GAAG,cAAM,wBAAiB,CAAC,aAAa,EAAE,EAAjC,CAAiC,CAAC;QACpE,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;QACxD,IAAI,CAAC,SAAS,GAAG,cAAc,CAAC,kBAAkB,EAAE,CAAC;IACvD,CAAC;IAED,0CAAQ,GAAR;QACE,IAAI,CAAC,SAAS,EAAE,CAAC;IACnB,CAAC;IAED,2CAAS,GAAT;QAAA,iBAuBC;QAtBC,IAAI,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE;YAC5B,IAAI,KAAK,GAAG;gBACV,UAAU,EAAE,cAAc;gBAC1B,SAAS,EAAC,IAAI,CAAC,SAAS;gBACxB,WAAW,EAAC,IAAI;aACjB;SAEF;aAAM;YACL,IAAI,KAAK,GAAG;gBACV,UAAU,EAAE,oBAAoB;gBAChC,SAAS,EAAE,IAAI,CAAC,SAAS;gBACzB,WAAW,EAAC,IAAI;aACjB;SACF;QAED,IAAI,CAAC,gBAAgB,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC,cAAI;YACrD,IAAI,aAAa,GAAG,EAAE,CAAC;YACvB,IAAI,CAAC,OAAO,CAAC,iBAAO;gBAClB,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;gBAC5B,KAAI,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC;YAChC,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC;IAED,2CAAS,GAAT,UAAU,KAAK;QACb,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE;YACtB,IAAI,OAAO,GAAG,IAAI,CAAC,WAAW,GAAI,KAAK,CAAC,CAAC,CAAC,CAAC,iBAAiB,CAAC;YAC7D,QAAQ,CAAC,cAAc,CAAC,cAAc,CAAC,CAAC,KAAK,CAAC,UAAU,GAAG,OAAO,GAAG,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC;YACtF,QAAQ,CAAC,cAAc,CAAC,cAAc,CAAC,CAAC,KAAK,CAAC,gBAAgB,GAAG,WAAW,CAAC;YAC7E,IAAI,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE;gBAC5B,QAAQ,CAAC,cAAc,CAAC,cAAc,CAAC,CAAC,KAAK,CAAC,cAAc,GAAG,MAAM,CAAC;aACvE;iBAAM;gBACL,QAAQ,CAAC,cAAc,CAAC,cAAc,CAAC,CAAC,KAAK,CAAC,cAAc,GAAG,OAAO,CAAC;aACxE;SACF;aAAM;YACL,IAAI,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE;gBAC5B,QAAQ,CAAC,cAAc,CAAC,cAAc,CAAC,CAAC,KAAK,CAAC,eAAe,GAAC,OAAO,CAAC;gBACtE,QAAQ,CAAC,cAAc,CAAC,cAAc,CAAC,CAAC,KAAK,CAAC,gBAAgB,GAAG,WAAW,CAAC;gBAC7E,QAAQ,CAAC,cAAc,CAAC,cAAc,CAAC,CAAC,KAAK,CAAC,cAAc,GAAG,MAAM,CAAC;aACvE;iBAAM;gBACL,QAAQ,CAAC,cAAc,CAAC,cAAc,CAAC,CAAC,KAAK,CAAC,eAAe,GAAC,OAAO,CAAC;gBACtE,QAAQ,CAAC,cAAc,CAAC,cAAc,CAAC,CAAC,KAAK,CAAC,gBAAgB,GAAG,WAAW,CAAC;gBAC7E,QAAQ,CAAC,cAAc,CAAC,cAAc,CAAC,CAAC,KAAK,CAAC,cAAc,GAAG,OAAO,CAAC;aACxE;SACF;IACH,CAAC;IAED,0CAAQ,GAAR;QACE,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;IAClC,CAAC;IAED,6CAAW,GAAX;QACE,IAAI,CAAC,WAAW,CAAC,cAAc,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;IAC7D,CAAC;;gBAvEoB,oEAAgB;gBAClB,sDAAM;gBACJ,+DAAiB;gBAC7B,gEAAY;gBACJ,6EAAa;gBACF,0FAAe;;IAXhC,uBAAuB;QALnC,+DAAS,CAAC;YACT,QAAQ,EAAE,sBAAsB;YAChC,+PAAgD;;SAEjD,CAAC;+EAOqB,oEAAgB;YAClB,sDAAM;YACJ,+DAAiB;YAC7B,gEAAY;YACJ,6EAAa;YACF,0FAAe;OAXhC,uBAAuB,CAmFnC;IAAD,8BAAC;CAAA;AAnFmC;;;;;;;;;;;;;ACbpC;AAAe,gFAAiB,yBAAyB,SAAS,cAAc,kBAAkB,4BAA4B,KAAK,aAAa,iCAAiC,qBAAqB,gBAAgB,4BAA4B,wBAAwB,KAAK,eAAe,sBAAsB,qBAAqB,gBAAgB,0BAA0B,oDAAoD,OAAO,aAAa,gCAAgC,qBAAqB,sBAAsB,qCAAqC,8BAA8B,oDAAoD,yBAAyB,KAAK,mDAAmD,sBAAsB,yBAAyB,OAAO,eAAe,wBAAwB,kBAAkB,8BAA8B,uBAAuB,OAAO,SAAS,mDAAmD,+7D;;;;;;;;;;;;;;;;;;;;;;;;ACAh3B;AAC5B;AACc;AACJ;AAC0B;AACb;AACiB;AACV;AAQvE;IAKE,gCACU,cAA6B,EAC7B,SAA2B,EAC3B,OAAe,EACvB,iBAAoC,EACpC,cAA6B,EACtB,sBAA6C,EACpD,KAAmB,EACX,gBAAiC;QAPjC,mBAAc,GAAd,cAAc,CAAe;QAC7B,cAAS,GAAT,SAAS,CAAkB;QAC3B,YAAO,GAAP,OAAO,CAAQ;QAGhB,2BAAsB,GAAtB,sBAAsB,CAAuB;QAE5C,qBAAgB,GAAhB,gBAAgB,CAAiB;QAZpC,eAAU,GAAG,IAAI,CAAC;QAClB,gBAAW,GAAG,YAAY,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;QAYvD,IAAI,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAC/C,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC,UAAU,CAAC,oBAAoB,CAAC,CAAC;QAC1D,sEAAsE;QACtE,0DAA0D;QAC1D,IAAI,CAAC,SAAS,GAAG,cAAc,CAAC,kBAAkB,EAAE,CAAC;IACvD,CAAC;IAED,yCAAQ,GAAR;QACE,IAAI,CAAC,SAAS,EAAE,CAAC;IACnB,CAAC;IACD,gDAAe,GAAf;QACE,IAAI,CAAC,aAAa,EAAE,CAAC;IACvB,CAAC;IACD,8CAAa,GAAb;QACE,QAAQ,IAAI,CAAC,SAAS,EAAE;YACtB,KAAK,CAAC,EAAC,QAAQ;gBACb,IAAI,IAAI,EAAE,KAAK,CAAC;gBAChB,IAAI,GAAG,QAAQ,CAAC,sBAAsB,CAAC,mBAAmB,CAAC,CAAC;gBAC5D,KAAK,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,IAAI,CAAC,MAAM,EAAE,EAAE,KAAK,EAAE;oBAC5C,IAAI,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,UAAU,GAAG,oBAAoB;iBACpD;gBACD,MAAM;gBACN,MAAM;YACR,KAAK,CAAC,EAAC,MAAM;gBACX,IAAI,IAAI,EAAE,KAAK,CAAC;gBAChB,IAAI,GAAG,QAAQ,CAAC,sBAAsB,CAAC,mBAAmB,CAAC,CAAC;gBAC5D,KAAK,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,IAAI,CAAC,MAAM,EAAE,EAAE,KAAK,EAAE;oBAC5C,IAAI,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,UAAU,GAAG,gBAAgB;iBAChD;gBACD,MAAM;YACR,KAAK,CAAC,EAAC,KAAK;gBACV,IAAI,IAAI,EAAE,KAAK,CAAC;gBAChB,IAAI,GAAG,QAAQ,CAAC,sBAAsB,CAAC,mBAAmB,CAAC,CAAC;gBAC5D,KAAK,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,IAAI,CAAC,MAAM,EAAE,EAAE,KAAK,EAAE;oBAC5C,IAAI,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,UAAU,GAAG,iBAAiB;iBACjD;gBACD,MAAM;SACT;IACH,CAAC;IACD,0CAAS,GAAT;QAAA,iBA8BC;QA7BC,IAAI,KAAK,CAAC;QACV,IAAI,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE;YAC5B,KAAK,GAAG;gBACN,YAAY,EAAE,YAAY,CAAC,OAAO,CAAC,cAAc,CAAC;gBAClD,SAAS,EAAE,YAAY,CAAC,OAAO,CAAC,WAAW,CAAC;gBAC5C,SAAS,EAAE,IAAI;gBACf,OAAO,EAAE,YAAY,CAAC,OAAO,CAAC,SAAS,CAAC;gBACxC,QAAQ,EAAE,IAAI;gBACd,UAAU,EAAE,qBAAqB;gBACjC,WAAW,EAAE,IAAI;aAClB;SACF;aAAM;YACL,KAAK,GAAG;gBACN,YAAY,EAAE,YAAY,CAAC,OAAO,CAAC,cAAc,CAAC;gBAClD,SAAS,EAAE,YAAY,CAAC,OAAO,CAAC,WAAW,CAAC;gBAC5C,SAAS,EAAE,IAAI;gBACf,OAAO,EAAE,YAAY,CAAC,OAAO,CAAC,SAAS,CAAC;gBACxC,QAAQ,EAAE,IAAI;gBACd,UAAU,EAAE,eAAe;gBAC3B,WAAW,EAAE,IAAI;aAClB;SACF;QACD,IAAI,CAAC,gBAAgB,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC,cAAI;YACrD,IAAI,aAAa,GAAG,EAAE,CAAC;YACvB,IAAI,CAAC,OAAO,CAAC,iBAAO;gBAClB,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YAC9B,CAAC,CAAC,CAAC;YACH,KAAI,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC;QAChC,CAAC,CAAC,CAAC;IACL,CAAC;IAED,0CAAS,GAAT,UAAU,KAAK;QAEb,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE;YACtB,IAAI,OAAO,GAAG,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,iBAAiB,CAAC;YAC5D,QAAQ,CAAC,cAAc,CAAC,cAAc,CAAC,CAAC,KAAK,CAAC,UAAU,GAAG,OAAO,GAAG,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC;YACtF,QAAQ,CAAC,cAAc,CAAC,cAAc,CAAC,CAAC,KAAK,CAAC,gBAAgB,GAAG,WAAW,CAAC;YAC7E,IAAI,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE;gBAC5B,QAAQ,CAAC,cAAc,CAAC,cAAc,CAAC,CAAC,KAAK,CAAC,cAAc,GAAG,MAAM,CAAC;aACvE;iBAAM;gBACL,QAAQ,CAAC,cAAc,CAAC,cAAc,CAAC,CAAC,KAAK,CAAC,cAAc,GAAG,OAAO,CAAC;gBACvE,QAAQ,CAAC,cAAc,CAAC,cAAc,CAAC,CAAC,KAAK,CAAC,kBAAkB,GAAG,eAAe,CAAC;aAEpF;SACF;aAAM;YACL,IAAI,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE;gBAC5B,QAAQ,CAAC,cAAc,CAAC,cAAc,CAAC,CAAC,KAAK,CAAC,eAAe,GAAC,OAAO,CAAC;gBACtE,QAAQ,CAAC,cAAc,CAAC,cAAc,CAAC,CAAC,KAAK,CAAC,gBAAgB,GAAG,WAAW,CAAC;gBAC7E,QAAQ,CAAC,cAAc,CAAC,cAAc,CAAC,CAAC,KAAK,CAAC,cAAc,GAAG,MAAM,CAAC;aACvE;iBAAM;gBACL,QAAQ,CAAC,cAAc,CAAC,cAAc,CAAC,CAAC,KAAK,CAAC,eAAe,GAAC,OAAO,CAAC;gBACtE,QAAQ,CAAC,cAAc,CAAC,cAAc,CAAC,CAAC,KAAK,CAAC,gBAAgB,GAAG,WAAW,CAAC;gBAC7E,QAAQ,CAAC,cAAc,CAAC,cAAc,CAAC,CAAC,KAAK,CAAC,cAAc,GAAG,OAAO,CAAC;aACxE;SACF;IACH,CAAC;IACD,yCAAQ,GAAR;QAAA,iBAYC;QAXC,IAAI,CAAC,sBAAsB,CAAC,wBAAwB,EAAE,CAAC;QACvD,IAAI,KAAK,GAAG;YACV,WAAW,EAAE,YAAY,CAAC,OAAO,CAAC,WAAW,CAAC;SAC/C;QACD,IAAI,CAAC,cAAc,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC,cAAI;YACtD,YAAY,CAAC,OAAO,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC;YACtC,YAAY,CAAC,OAAO,CAAC,cAAc,EAAE,EAAE,CAAC,CAAC;YACzC,YAAY,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;YACrC,KAAI,CAAC,OAAO,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;QAClC,CAAC,EAAE,aAAG;QACN,CAAC,CAAC,CAAC;IACL,CAAC;;gBApHyB,oFAAa;gBAClB,oEAAgB;gBAClB,sDAAM;gBACJ,+DAAiB;gBACpB,6EAAa;gBACE,8FAAqB;gBAC7C,gEAAY;gBACO,0FAAe;;IAbhC,sBAAsB;QALlC,+DAAS,CAAC;YACT,QAAQ,EAAE,qBAAqB;YAC/B,4PAA+C;;SAEhD,CAAC;+EAO0B,oFAAa;YAClB,oEAAgB;YAClB,sDAAM;YACJ,+DAAiB;YACpB,6EAAa;YACE,8FAAqB;YAC7C,gEAAY;YACO,0FAAe;OAbhC,sBAAsB,CAmIlC;IAAD,6BAAC;CAAA;AAnIkC;;;;;;;;;;;;;ACfnC;AAAe,wIAAyE,sBAAsB,+BAA+B,qBAAqB,KAAK,kBAAkB,4BAA4B,+BAA+B,yCAAyC,qBAAqB,gBAAgB,uEAAuE,yDAAyD,sBAAsB,yCAAyC,KAAK,+BAA+B,mDAAmD,KAAK,yBAAyB,sBAAsB,qBAAqB,qBAAqB,KAAK,qBAAqB,oBAAoB,KAAK,wBAAwB,qBAAqB,KAAK,qBAAqB,4BAA4B,yCAAyC,qBAAqB,KAAK,gBAAgB,qBAAqB,yBAAyB,KAAK,eAAe,mCAAmC,gCAAgC,2BAA2B,0BAA0B,KAAK,mBAAmB,oBAAoB,MAAM,aAAa,wBAAwB,uBAAuB,+BAA+B,KAAK,+CAA+C,iBAAiB,uCAAuC,SAAS,iBAAiB,sCAAsC,SAAS,0BAA0B,yBAAyB,6BAA6B,SAAS,6CAA6C,0BAA0B,SAAS,KAAK,0EAA0E,qCAAqC,sCAAsC,oCAAoC,iCAAiC,KAAK,YAAY,wBAAwB,kBAAkB,KAAK,kBAAkB,qBAAqB,KAAK,iBAAiB,uBAAuB,KAAK,WAAW,wBAAwB,kBAAkB,2BAA2B,wBAAwB,6BAA6B,KAAK,YAAY,wBAAwB,oBAAoB,KAAK,uCAAuC,2BAA2B,KAAK,aAAa,wBAAwB,oBAAoB,2BAA2B,mBAAmB,qBAAqB,6BAA6B,kCAAkC,KAAK,kBAAkB,wBAAwB,6BAA6B,KAAK,qBAAqB,oBAAoB,wBAAwB,6BAA6B,qBAAqB,kCAAkC,KAAK,sBAAsB,wDAAwD,qBAAqB,4BAA4B,KAAK,uBAAuB,kCAAkC,2BAA2B,yBAAyB,KAAK,2BAA2B,6BAA6B,KAAK,qCAAqC,qCAAqC,KAAK,+BAA+B,6BAA6B,KAAK,kGAAkG,uBAAuB,KAAK,0EAA0E,uBAAuB,KAAK,+CAA+C,eAAe,8BAA8B,SAAS,gBAAgB,yCAAyC,0CAA0C,wCAAwC,2CAA2C,qCAAqC,SAAS,gBAAgB,uCAAuC,SAAS,eAAe,4BAA4B,SAAS,KAAK,+CAA+C,iBAAiB,uCAAuC,SAAS,iBAAiB,sCAAsC,oCAAoC,UAAU,KAAK,eAAe,wBAAwB,sBAAsB,8BAA8B,kCAAkC,KAAK,eAAe,wBAAwB,sBAAsB,8BAA8B,kCAAkC,KAAK,mDAAmD,23P;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACArqI;AACd;AAEd;AACU;AACO;AAE2B;AACR;AACZ;AAEM;AACP;AAClB;AACkB;AACqB;AACnB;AACe;AACtC;AAE3C;IAAA;IAKA,CAAC;IAJC,0CAAY,GAAZ,UAAa,OAA2B,EAAE,IAAwC;QAChF,IAAM,WAAW,GAAG,IAAI,IAAI,IAAI,CAAC,SAAS,CAAC;QAC3C,OAAO,CAAC,CAAC,CAAC,OAAO,IAAI,OAAO,CAAC,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,IAAI,OAAO,CAAC,OAAO,IAAI,WAAW,CAAC,CAAC,CAAC;IAC7F,CAAC;IACH,0BAAC;AAAD,CAAC;;AAQD;IAoCE,4BACU,gBAAgC,EACjC,MAAiB,EACjB,iBAAoC,EACpC,KAAmB,EAClB,kBAAsC,EACtC,cAA6B,EAC7B,SAA2B,EAC3B,OAAe,EACf,YAAyB,EACzB,gBAAiC,EAClC,cAA6B,EAC5B,cAA6B,EAC7B,iBAAmC,EACpC,sBAA6C,EAC7C,UAAqB,EACpB,SAAmB;QAfnB,qBAAgB,GAAhB,gBAAgB,CAAgB;QACjC,WAAM,GAAN,MAAM,CAAW;QACjB,sBAAiB,GAAjB,iBAAiB,CAAmB;QACpC,UAAK,GAAL,KAAK,CAAc;QAClB,uBAAkB,GAAlB,kBAAkB,CAAoB;QACtC,mBAAc,GAAd,cAAc,CAAe;QAC7B,cAAS,GAAT,SAAS,CAAkB;QAC3B,YAAO,GAAP,OAAO,CAAQ;QACf,iBAAY,GAAZ,YAAY,CAAa;QACzB,qBAAgB,GAAhB,gBAAgB,CAAiB;QAClC,mBAAc,GAAd,cAAc,CAAe;QAC5B,mBAAc,GAAd,cAAc,CAAe;QAC7B,sBAAiB,GAAjB,iBAAiB,CAAkB;QACpC,2BAAsB,GAAtB,sBAAsB,CAAuB;QAC7C,eAAU,GAAV,UAAU,CAAW;QACpB,cAAS,GAAT,SAAS,CAAU;QAnDtB,eAAU,GAAG,IAAI,CAAC;QAClB,gBAAW,GAAG,YAAY,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;QAClD,gBAAW,GAAG,CAAC,CAAC;QAChB,aAAQ,GAAW,EAAE,CAAC;QACtB,gBAAW,GAAW,EAAE,CAAC;QAChB,iBAAY,GAAoB,EAAE,CAAC;QAG5C,YAAO,GAAG,IAAI,0DAAW,CAAC,EAAE,EAAE,CAAC,yDAAU,CAAC,QAAQ,CAAC,CAAC,CAAC;QACrD,UAAK,GAAG,IAAI,0DAAW,CAAC,EAAE,EAAE,CAAC,yDAAU,CAAC,QAAQ,CAAC,CAAC,CAAC;QACnD,gBAAW,GAAG,IAAI,0DAAW,CAAC,IAAI,EAAE,CAAC,yDAAU,CAAC,QAAQ,CAAC,CAAC,CAAC;QAClE,iBAAY,GAAU,EAAE,CAAC;QAClB,oBAAe,GAAY,KAAK,CAAC;QACjC,YAAO,GAAgB,EAAiB,CAAC;QAGzC,cAAS,GAAG,CAAC,kBAAkB,EAAE,uBAAuB,CAAC,CAAC,IAAI,CAAC,WAAC,IAAI,QAAC,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,EAA5B,CAA4B,CAAC,CAAC;QAClG,cAAS,GAAG,YAAY,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;QAC9C,iBAAY,GAAG,YAAY,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;QACpD,aAAQ,GAAG,KAAK,CAAC;QACjB,cAAS,GAAY,IAAI,CAAC;QAC1B,YAAO,GAAU,YAAY,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QAC9C,cAAS,GAAU,QAAQ,CAAC,YAAY,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC;QAC7D,mBAAc,GAAC,EAAE,CAAC;QAClB,uBAAkB,GAAG,EAAE,CAAC;QACxB,sBAAiB,GAAG,EAAE,CAAC;QACvB,yBAAoB,GAAG,EAAE,CAAC;QAEjC,eAAU,GAAU,EAAE,CAAC;QACvB,mBAAc,GAAG,IAAI,0DAAW,CAAC,EAAE,EAAE;YACnC,yDAAU,CAAC,QAAQ;SACpB,CAAC,CAAC;QACH,YAAO,GAAG,IAAI,mBAAmB,EAAE,CAAC;QACpC,gBAAW,GAAG,EAAE,CAAC;QACjB,cAAS,GAAG,EAAE,CAAC;QAiGf,aAAQ,GAAG,IAAI,CAAC;QA9Ed,IAAI,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAC/C,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC,UAAU,CAAC,oBAAoB,CAAC,CAAC;QAC1D,IAAI,CAAC,oBAAoB,GAAG,cAAM,wBAAiB,CAAC,aAAa,EAAE,EAAjC,CAAiC,CAAC;QACpE,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;IAC1D,CAAC;IAED,qCAAQ,GAAR;QAAA,iBAuBC;QAtBC,IAAI,CAAC,sBAAsB,CAAC,eAAe,GAAG,IAAI,CAAC;QACnD,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,sBAAsB,CAAC,YAAY,CAAC;QAC7D,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC;QAE5C,UAAU,CAAC;YACT,KAAI,CAAC,SAAS,GAAG,YAAY,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;YACnD,KAAI,CAAC,YAAY,GAAG,YAAY,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;YACzD,KAAI,CAAC,WAAW,GAAG,YAAY,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;YACvD,KAAI,CAAC,OAAO,GAAG,YAAY,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;YAE5C,KAAI,CAAC,yBAAyB,GAAG,KAAI,CAAC,kBAAkB,CAAC,SAAS;iBAC/D,SAAS,CAAC,UAAC,IAAI,IAAK,YAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,EAA5B,CAA4B,CAAC,CAAC;YACrD,KAAI,CAAC,kBAAkB,EAAE,CAAC;YAC1B,KAAI,CAAC,SAAS,EAAE,CAAC;YACjB,KAAI,CAAC,KAAK,CAAC,SAAS,CAAC;gBACnB,SAAS,EAAE,IAAI;aAChB,CAAC,CAAC;QACL,CAAC,EAAE,IAAI,CAAC,CAAC;IAKX,CAAC;IAED,2CAAc,GAAd,UAAe,WAAW;QACxB,IAAI,CAAC,cAAc,GAAG,WAAW,CAAC,IAAI,CAAC;QACvC,IAAI,CAAC,kBAAkB,GAAG,WAAW,CAAC,WAAW,CAAC;QAClD,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,WAAW,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,EAAC,EAAE,CAAC,EAAE,YAAY,CAAC,CAAC;QAAC,CAAC;QACxG,IAAI,CAAC,oBAAoB,GAAG,WAAW,CAAC,aAAa,CAAC;IACxD,CAAC;IAED,sCAAS,GAAT;QAAA,iBAsCC;QApCC,IAAI,CAAC,sBAAsB,CAAC,eAAe,GAAG,IAAI,CAAC;QACnD,IAAI,KAAK,CAAC;QACV,IAAI,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE;YAC5B,KAAK,GAAG;gBACN,YAAY,EAAE,YAAY,CAAC,OAAO,CAAC,cAAc,CAAC;gBAClD,SAAS,EAAE,YAAY,CAAC,OAAO,CAAC,WAAW,CAAC;gBAC5C,SAAS,EAAE,IAAI;gBACf,QAAQ,EAAE,IAAI;gBACd,OAAO,EAAC,YAAY,CAAC,OAAO,CAAC,SAAS,CAAC;gBACvC,UAAU,EAAE,aAAa;gBACzB,WAAW,EAAE,IAAI;aAClB;SACF;aAAM;YACL,KAAK,GAAG;gBACN,YAAY,EAAE,YAAY,CAAC,OAAO,CAAC,cAAc,CAAC;gBAClD,SAAS,EAAE,YAAY,CAAC,OAAO,CAAC,WAAW,CAAC;gBAC5C,SAAS,EAAE,IAAI;gBACf,QAAQ,EAAE,IAAI;gBACd,OAAO,EAAC,YAAY,CAAC,OAAO,CAAC,SAAS,CAAC;gBACvC,UAAU,EAAE,aAAa;gBACzB,WAAW,EAAE,IAAI;aAClB;SACF;QACD,IAAI,CAAC,gBAAgB,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC,cAAI;YACrD,IAAI,aAAa,GAAG,EAAE,CAAC;YACvB,IAAI,CAAC,OAAO,CAAC,iBAAO;gBAClB,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YAC9B,CAAC,CAAC,CAAC;YACH,KAAI,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC;QAChC,CAAC,EAAE,UAAC,KAAK;YAEP,KAAI,CAAC,sBAAsB,CAAC,eAAe,GAAG,KAAK,CAAC;QACtD,CAAC,EAAE;YAED,KAAI,CAAC,sBAAsB,CAAC,eAAe,GAAG,KAAK,CAAC;QACtD,CAAC,CAAC,CAAC;IACL,CAAC;IAID,sCAAS,GAAT,UAAU,KAAK;QAAf,iBAkFC;QAjFC,IAAI,IAAI,GAAG,IAAI,CAAC;QAChB,IAAI,OAAO,CAAC;QACZ,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE;YACtB,IAAI,UAAQ,GAAG,KAAK,CAAC,MAAM,CAAC;YAC5B,IAAI,UAAQ,GAAG,CAAC,EAAE;gBAChB,IAAI,CAAC,WAAW,GAAG,YAAY,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;gBAEvD,WAAW,CAAC;oBAEV,IAAI,QAAQ,GAAG,KAAI,CAAC,WAAW,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,iBAAiB,CAAC;oBAC7D,QAAQ,CAAC,cAAc,CAAC,cAAc,CAAC,CAAC,KAAK,CAAC,UAAU,GAAG,OAAO,GAAG,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC;oBACvF,IAAI,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE;wBAC5B,QAAQ,CAAC,cAAc,CAAC,cAAc,CAAC,CAAC,KAAK,CAAC,cAAc,GAAG,MAAM,CAAC;wBACtE,QAAQ,CAAC,cAAc,CAAC,cAAc,CAAC,CAAC,KAAK,CAAC,gBAAgB,GAAG,UAAU,CAAC;qBAC7E;yBAAM;wBACL,QAAQ,CAAC,cAAc,CAAC,cAAc,CAAC,CAAC,KAAK,CAAC,cAAc,GAAG,OAAO,CAAC;wBACvE,QAAQ,CAAC,cAAc,CAAC,cAAc,CAAC,CAAC,KAAK,CAAC,gBAAgB,GAAG,WAAW,CAAC;wBAC7E,QAAQ,CAAC,cAAc,CAAC,cAAc,CAAC,CAAC,KAAK,CAAC,kBAAkB,GAAG,eAAe,CAAC;qBAEpF;oBAED,KAAI,CAAC,QAAQ,GAAG,WAAW,CAAC;gDAEjB,KAAK;4BACZ,UAAU,CAAC;gCACT,OAAO,GAAG,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,iBAAiB,CAAC;gCAC5D,QAAQ,CAAC,cAAc,CAAC,cAAc,CAAC,CAAC,KAAK,CAAC,UAAU,GAAG,OAAO,GAAG,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC;gCACtF,QAAQ,CAAC,cAAc,CAAC,cAAc,CAAC,CAAC,KAAK,CAAC,gBAAgB,GAAG,WAAW,CAAC;gCAC7E,IAAI,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE;oCAC5B,QAAQ,CAAC,cAAc,CAAC,cAAc,CAAC,CAAC,KAAK,CAAC,cAAc,GAAG,MAAM,CAAC;oCACtE,QAAQ,CAAC,cAAc,CAAC,cAAc,CAAC,CAAC,KAAK,CAAC,gBAAgB,GAAG,UAAU,CAAC;iCAC7E;qCAAM;oCACL,QAAQ,CAAC,cAAc,CAAC,cAAc,CAAC,CAAC,KAAK,CAAC,cAAc,GAAG,OAAO,CAAC;oCACvE,QAAQ,CAAC,cAAc,CAAC,cAAc,CAAC,CAAC,KAAK,CAAC,gBAAgB,GAAG,WAAW,CAAC;oCAC7E,QAAQ,CAAC,cAAc,CAAC,cAAc,CAAC,CAAC,KAAK,CAAC,kBAAkB,GAAG,eAAe,CAAC;iCAEpF;4BAEH,CAAC,EAAE,KAAK,GAAG,KAAK,CAAC,CAAC;;wBAfpB,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,KAAK,CAAC,MAAM,EAAE,KAAK,EAAE;oCAAxC,KAAK;yBAgBb;oBAEH,CAAC,EAAE,CAAC,KAAK,GAAG,UAAQ,CAAC,CAAC,CAAC;oBAEvB,IAAI,CAAC,KAAI,CAAC,WAAW,EAAE;wBAAE,aAAa,EAAE;qBAAE;gBAC5C,CAAC,EAAE,IAAI,CAAC,CAAC;aAEV;iBAAM;gBAEL,IAAI,CAAC,WAAW,GAAG,YAAY,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;gBAEvD,WAAW,CAAC;oBACV,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,KAAK,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE;wBAEjD,OAAO,GAAG,KAAI,CAAC,WAAW,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,iBAAiB,CAAC;wBAC5D,QAAQ,CAAC,cAAc,CAAC,cAAc,CAAC,CAAC,KAAK,CAAC,UAAU,GAAG,OAAO,GAAG,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC;wBACtF,IAAI,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE;4BAC5B,QAAQ,CAAC,cAAc,CAAC,cAAc,CAAC,CAAC,KAAK,CAAC,cAAc,GAAG,MAAM,CAAC;4BACtE,QAAQ,CAAC,cAAc,CAAC,cAAc,CAAC,CAAC,KAAK,CAAC,gBAAgB,GAAG,UAAU,CAAC;yBAC7E;6BAAM;4BACL,QAAQ,CAAC,cAAc,CAAC,cAAc,CAAC,CAAC,KAAK,CAAC,cAAc,GAAG,OAAO,CAAC;4BACvE,QAAQ,CAAC,cAAc,CAAC,cAAc,CAAC,CAAC,KAAK,CAAC,gBAAgB,GAAG,WAAW,CAAC;4BAC7E,QAAQ,CAAC,cAAc,CAAC,cAAc,CAAC,CAAC,KAAK,CAAC,kBAAkB,GAAG,eAAe,CAAC;yBAEpF;qBAEF;oBACD,IAAI,CAAC,KAAI,CAAC,WAAW,EAAE;wBAAE,aAAa,EAAE;qBAAE;gBAC5C,CAAC,EAAE,IAAI,CAAC,CAAC;aACV;SAEF;aAAM;YACL,IAAI,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE;gBAC5B,QAAQ,CAAC,cAAc,CAAC,cAAc,CAAC,CAAC,KAAK,CAAC,eAAe,GAAG,OAAO,CAAC;gBACxE,QAAQ,CAAC,cAAc,CAAC,cAAc,CAAC,CAAC,KAAK,CAAC,gBAAgB,GAAG,WAAW,CAAC;gBAC7E,QAAQ,CAAC,cAAc,CAAC,cAAc,CAAC,CAAC,KAAK,CAAC,cAAc,GAAG,MAAM,CAAC;aACvE;iBAAM;gBACL,QAAQ,CAAC,cAAc,CAAC,cAAc,CAAC,CAAC,KAAK,CAAC,eAAe,GAAG,OAAO,CAAC;gBACxE,QAAQ,CAAC,cAAc,CAAC,cAAc,CAAC,CAAC,KAAK,CAAC,gBAAgB,GAAG,WAAW,CAAC;gBAC7E,QAAQ,CAAC,cAAc,CAAC,cAAc,CAAC,CAAC,KAAK,CAAC,cAAc,GAAG,OAAO,CAAC;aACxE;SACF;IACH,CAAC;IAED,0CAAa,GAAb;QACE,IAAI,CAAC,sBAAsB,CAAC,eAAe,GAAG,IAAI,CAAC;QACnD,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC;QAC5B,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,YAAY,CAAC,CAAC;QACzC,6EAA6E;IAC/E,CAAC;IAED,oBAAoB;IACpB,wDAAwD;IACxD,iFAAiF;IACjF,IAAI;IAEJ,kDAAqB,GAArB,UAAsB,MAAM,EAAE,IAAI,EAAE,IAAI;QAEtC,IAAI,SAAS,GAAG;YACd,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,EAAE;YAChC,UAAU,EAAE,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,EAAE;YACnC,SAAS,EAAE,IAAI,CAAC,iBAAiB,CAAC,KAAK;YACvC,IAAI,EAAE,IAAI,CAAC,SAAS,IAAI,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS;YACvD,KAAK,EAAE,YAAY,CAAC,OAAO,CAAC,OAAO,CAAC;YACpC,SAAS,EAAE,YAAY,CAAC,OAAO,CAAC,WAAW,CAAC;YAC5C,OAAO,EAAE,YAAY,CAAC,OAAO,CAAC,SAAS,CAAC;YACxC,WAAW,EAAE,IAAI;SAClB;QACD,IAAI,CAAC,cAAc,CAAC,kBAAkB,CAAC,SAAS,CAAC,CAAC,SAAS,CAAC,cAAI;YAE9D,IAAI,CAAC,eAAe,GAAG,KAAK,CAAC;QAC/B,CAAC,EAAE,gBAAM;YACP,IAAI,CAAC,eAAe,GAAG,KAAK,CAAC;QAC/B,CAAC,EAAE;YAED,IAAI,CAAC,sBAAsB,CAAC,eAAe,GAAG,KAAK,CAAC;QACtD,CAAC,CAAC,CAAC;IACL,CAAC;IACD,6CAAgB,GAAhB,UAAiB,IAAI,EAAE,IAAI;QACzB,IAAM,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,mGAAiB,EAAE;YACxD,IAAI,EAAE,IAAI;SACX,CAAC,CAAC;QACH,SAAS,CAAC,WAAW,EAAE,CAAC,SAAS,CAAC,eAAK;QACvC,CAAC,CAAC,CAAC;IACL,CAAC;IAED,0CAAa,GAAb;QACE,IAAI,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;QACvC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;QAC9B,IAAI,CAAC,WAAW,EAAE,CAAC;IACrB,CAAC;IAED,wCAAW,GAAX;QACE,IAAI,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;QAEnC,CAAC,IAAI,CAAC,MAAM,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;QAEtE,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;IAC5B,CAAC;IAGD,wCAAW,GAAX;QACE,QAAQ,CAAC,IAAI,GAAE,kCAAkC,CAAC;IACpD,CAAC;IAGM,0CAAa,GAApB,UAAqB,MAAc,EAAE,QAAQ,EAAE,IAAY;QAA3D,iBAUC;QATC,IAAI,IAAI,GAAG,IAAI,CAAC;QAChB,IAAI,IAAI,CAAC,2BAA2B,EAAE;YACpC,IAAI,CAAC,2BAA2B,CAAC,WAAW,EAAE,CAAC;SAChD;QACD,IAAI,CAAC,2BAA2B,GAAG,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAAC,MAAM,CAAC;aACvE,SAAS,CAAC,UAAC,KAAK;YACf,KAAI,CAAC,WAAW,GAAG,KAAK,CAAC;YACzB,QAAQ,CAAC,KAAI,CAAC,WAAW,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;QACzC,CAAC,CAAC,CAAC;IACP,CAAC;IAEM,sCAAS,GAAhB;QACE,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;IACvC,CAAC;IAED,2BAA2B;IAC3B,+CAAkB,GAAlB;QAAA,iBAmCC;QAjCC,IAAI,CAAC,sBAAsB,CAAC,eAAe,GAAG,IAAI,CAAC;QACnD,0BAA0B;QAC1B,oCAAoC;QACpC,IAAI,KAAK,GAAG;YACV,YAAY,EAAE,IAAI,CAAC,YAAY;YAC/B,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,OAAO,EAAE,YAAY,CAAC,OAAO,CAAC,SAAS,CAAC;YACxC,SAAS,EAAE,IAAI;SAChB;QACD,cAAc;QACd,IAAI,OAAO,GAAG,EAAE,CAAC;QACjB,IAAI,CAAC,gBAAgB,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC,cAAI;YAC5D,IAAI,CAAC,OAAO,CAAC,iBAAO;gBAClB,IAAI,OAAO,CAAC,SAAS,CAAC,WAAW,EAAE,IAAI,KAAI,CAAC,SAAS,CAAC,WAAW,EAAE,EAAE;oBACnE,YAAY,CAAC,OAAO,CAAC,UAAU,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC;oBAChD,KAAI,CAAC,QAAQ,GAAG,OAAO,CAAC,KAAK,CAAC;iBAC/B;gBACD,OAAO,GAAG,OAAO,CAAC,iBAAiB,CAAC;YACtC,CAAC,CAAC,CAAC;YACH,OAAO,CAAC,OAAO,CAAC,iBAAO;gBACrB,IAAI,OAAO,CAAC,SAAS,IAAI,CAAC,IAAI,OAAO,CAAC,OAAO,CAAC,QAAQ,EAAE,IAAI,YAAY,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,QAAQ,EAAE,EAAE;oBACtG,KAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;iBACtB;YACH,CAAC,CAAC,CAAC;QAEL,CAAC,EAAE,cAAI;YACL,8BAA8B;YAE9B,KAAI,CAAC,sBAAsB,CAAC,eAAe,GAAG,KAAK,CAAC;QACtD,CAAC,EAAE;YAED,KAAI,CAAC,sBAAsB,CAAC,eAAe,GAAG,KAAK,CAAC;QACtD,CAAC,CAAC,CAAC;IACL,CAAC;IAED,2CAAc,GAAd;QACE,MAAM,CAAC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;IAChD,CAAC;;gBA3S2B,gFAAc;gBACzB,4DAAS;gBACE,+DAAiB;gBAC7B,gEAAY;gBACE,+DAAkB;gBACtB,oFAAa;gBAClB,oEAAgB;gBAClB,sDAAM;gBACD,uEAAW;gBACP,0FAAe;gBAClB,8EAAa;gBACZ,8EAAa;gBACV,oEAAgB;gBACZ,+FAAqB;gBACjC,4DAAS;gBACT,yDAAQ;;IApDlB,kBAAkB;QAN9B,+DAAS,CAAC;YACT,QAAQ,EAAE,eAAe;YACzB,qOAAyC;YAEzC,SAAS,EAAE,CAAC,yDAAQ,CAAC;;SACtB,CAAC;+EAsC4B,gFAAc;YACzB,4DAAS;YACE,+DAAiB;YAC7B,gEAAY;YACE,+DAAkB;YACtB,oFAAa;YAClB,oEAAgB;YAClB,sDAAM;YACD,uEAAW;YACP,0FAAe;YAClB,8EAAa;YACZ,8EAAa;YACV,oEAAgB;YACZ,+FAAqB;YACjC,4DAAS;YACT,yDAAQ;OApDlB,kBAAkB,CAiV9B;IAAD,yBAAC;CAAA;AAjV8B;;;;;;;;;;;;;ACjC/B;AAAe,wIAAyE,sBAAsB,+BAA+B,qBAAqB,KAAK,kBAAkB,4BAA4B,+BAA+B,yCAAyC,qBAAqB,gBAAgB,uEAAuE,yDAAyD,sBAAsB,yCAAyC,KAAK,+BAA+B,mDAAmD,KAAK,yBAAyB,sBAAsB,qBAAqB,qBAAqB,KAAK,qBAAqB,oBAAoB,KAAK,wBAAwB,qBAAqB,KAAK,qBAAqB,4BAA4B,yCAAyC,qBAAqB,KAAK,gBAAgB,qBAAqB,yBAAyB,KAAK,eAAe,mCAAmC,gCAAgC,2BAA2B,0BAA0B,KAAK,mBAAmB,oBAAoB,MAAM,aAAa,wBAAwB,uBAAuB,+BAA+B,KAAK,+CAA+C,iBAAiB,uCAAuC,SAAS,iBAAiB,sCAAsC,SAAS,0BAA0B,yBAAyB,6BAA6B,SAAS,6CAA6C,0BAA0B,SAAS,KAAK,0EAA0E,qCAAqC,sCAAsC,oCAAoC,iCAAiC,KAAK,YAAY,wBAAwB,kBAAkB,KAAK,kBAAkB,qBAAqB,KAAK,iBAAiB,uBAAuB,KAAK,WAAW,wBAAwB,kBAAkB,2BAA2B,wBAAwB,6BAA6B,KAAK,YAAY,wBAAwB,oBAAoB,KAAK,uCAAuC,2BAA2B,KAAK,aAAa,wBAAwB,oBAAoB,2BAA2B,mBAAmB,qBAAqB,6BAA6B,kCAAkC,KAAK,kBAAkB,wBAAwB,6BAA6B,KAAK,qBAAqB,oBAAoB,wBAAwB,6BAA6B,qBAAqB,kCAAkC,0BAA0B,KAAK,sBAAsB,wDAAwD,qBAAqB,4BAA4B,KAAK,uBAAuB,kCAAkC,2BAA2B,yBAAyB,KAAK,2BAA2B,6BAA6B,KAAK,qCAAqC,qCAAqC,KAAK,+BAA+B,6BAA6B,KAAK,kGAAkG,uBAAuB,KAAK,0EAA0E,uBAAuB,KAAK,+CAA+C,eAAe,8BAA8B,SAAS,gBAAgB,yCAAyC,0CAA0C,wCAAwC,2CAA2C,qCAAqC,SAAS,gBAAgB,uCAAuC,SAAS,eAAe,4BAA4B,SAAS,KAAK,+CAA+C,iBAAiB,uCAAuC,SAAS,iBAAiB,sCAAsC,oCAAoC,UAAU,KAAK,eAAe,wBAAwB,sBAAsB,8BAA8B,kCAAkC,KAAK,eAAe,wBAAwB,sBAAsB,8BAA8B,kCAAkC,KAAK,mDAAmD,u5P;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACA/rI;AACd;AAEd;AACU;AACO;AAE2B;AACR;AACZ;AAEM;AACP;AAClB;AACkB;AACqB;AACnB;AACe;AACV;AACgC;AAGvG;IAAA;IAKA,CAAC;IAJC,0CAAY,GAAZ,UAAa,OAA2B,EAAE,IAAwC;QAChF,IAAM,WAAW,GAAG,IAAI,IAAI,IAAI,CAAC,SAAS,CAAC;QAC3C,OAAO,CAAC,CAAC,CAAC,OAAO,IAAI,OAAO,CAAC,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,IAAI,OAAO,CAAC,OAAO,IAAI,WAAW,CAAC,CAAC,CAAC;IAC7F,CAAC;IACH,0BAAC;AAAD,CAAC;;AAMD;IA+BE,uBACU,gBAAgC,EACjC,MAAiB,EACjB,iBAAoC,EACpC,KAAmB,EAClB,kBAAsC,EACtC,cAA6B,EAC7B,SAA2B,EAC3B,OAAe,EACf,YAAyB,EACzB,gBAAiC,EACjC,OAAsB,EACvB,cAA6B,EAC5B,cAA6B,EAC7B,iBAAmC,EACpC,sBAA6C,EAC7C,UAAqB;QAfpB,qBAAgB,GAAhB,gBAAgB,CAAgB;QACjC,WAAM,GAAN,MAAM,CAAW;QACjB,sBAAiB,GAAjB,iBAAiB,CAAmB;QACpC,UAAK,GAAL,KAAK,CAAc;QAClB,uBAAkB,GAAlB,kBAAkB,CAAoB;QACtC,mBAAc,GAAd,cAAc,CAAe;QAC7B,cAAS,GAAT,SAAS,CAAkB;QAC3B,YAAO,GAAP,OAAO,CAAQ;QACf,iBAAY,GAAZ,YAAY,CAAa;QACzB,qBAAgB,GAAhB,gBAAgB,CAAiB;QACjC,YAAO,GAAP,OAAO,CAAe;QACvB,mBAAc,GAAd,cAAc,CAAe;QAC5B,mBAAc,GAAd,cAAc,CAAe;QAC7B,sBAAiB,GAAjB,iBAAiB,CAAkB;QACpC,2BAAsB,GAAtB,sBAAsB,CAAuB;QAC7C,eAAU,GAAV,UAAU,CAAW;QA9CvB,eAAU,GAAG,IAAI,CAAC;QAClB,gBAAW,GAAG,YAAY,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;QAClD,aAAQ,GAAW,EAAE,CAAC;QACtB,gBAAW,GAAW,EAAE,CAAC;QAChB,iBAAY,GAAoB,EAAE,CAAC;QAG5C,YAAO,GAAG,IAAI,0DAAW,CAAC,EAAE,EAAE,CAAC,yDAAU,CAAC,QAAQ,CAAC,CAAC,CAAC;QACrD,UAAK,GAAG,IAAI,0DAAW,CAAC,EAAE,EAAE,CAAC,yDAAU,CAAC,QAAQ,CAAC,CAAC,CAAC;QACnD,gBAAW,GAAG,IAAI,0DAAW,CAAC,IAAI,EAAE,CAAC,yDAAU,CAAC,QAAQ,CAAC,CAAC,CAAC;QAC3D,kBAAa,GAAG,EAAE,CAAC;QACnB,oBAAe,GAAY,KAAK,CAAC;QACjC,YAAO,GAAgB,EAAiB,CAAC;QAGzC,cAAS,GAAG,CAAC,kBAAkB,EAAE,uBAAuB,CAAC,CAAC,IAAI,CAAC,WAAC,IAAI,QAAC,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,EAA5B,CAA4B,CAAC,CAAC;QAClG,cAAS,GAAG,YAAY,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;QAC9C,iBAAY,GAAG,YAAY,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;QACpD,aAAQ,GAAG,KAAK,CAAC;QACjB,cAAS,GAAY,IAAI,CAAC;QAC1B,YAAO,GAAU,YAAY,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QAC9C,cAAS,GAAU,QAAQ,CAAC,YAAY,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC;QAEpE,eAAU,GAAU,EAAE,CAAC;QACvB,sBAAiB,GAAG,IAAI,0DAAW,CAAC,EAAE,EAAE;YACtC,yDAAU,CAAC,QAAQ;SACpB,CAAC,CAAC;QACH,YAAO,GAAG,IAAI,mBAAmB,EAAE,CAAC;QACpC,gBAAW,GAAG,EAAE,CAAC;QACjB,cAAS,GAAG,EAAE,CAAC;QAuFf,aAAQ,GAAG,IAAI,CAAC;QApEd,IAAI,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAC/C,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC,UAAU,CAAC,oBAAoB,CAAC,CAAC;QAC1D,IAAI,CAAC,oBAAoB,GAAG,cAAM,wBAAiB,CAAC,aAAa,EAAE,EAAjC,CAAiC,CAAC;QACpE,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;IAC1D,CAAC;IAED,gCAAQ,GAAR;QAAA,iBAoBC;QAnBC,IAAI,CAAC,sBAAsB,CAAC,eAAe,GAAG,IAAI,CAAC;QACnD,UAAU,CAAC;YACT,KAAI,CAAC,SAAS,GAAG,YAAY,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;YACnD,KAAI,CAAC,YAAY,GAAG,YAAY,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;YACzD,KAAI,CAAC,WAAW,GAAG,YAAY,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;YACvD,KAAI,CAAC,OAAO,GAAG,YAAY,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;YAE5C,KAAI,CAAC,yBAAyB,GAAG,KAAI,CAAC,kBAAkB,CAAC,SAAS;iBAC/D,SAAS,CAAC,UAAC,IAAI,IAAK,YAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,EAA5B,CAA4B,CAAC,CAAC;YACrD,KAAI,CAAC,kBAAkB,EAAE,CAAC;YAC1B,KAAI,CAAC,SAAS,EAAE,CAAC;YACjB,KAAI,CAAC,KAAK,CAAC,SAAS,CAAC;gBACnB,SAAS,EAAE,IAAI;aAChB,CAAC,CAAC;QACL,CAAC,EAAE,IAAI,CAAC,CAAC;IAKX,CAAC;IAED,iCAAS,GAAT;QAAA,iBAsCC;QApCC,IAAI,CAAC,sBAAsB,CAAC,eAAe,GAAG,IAAI,CAAC;QACnD,IAAI,KAAK,CAAC;QACV,IAAI,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE;YAC5B,KAAK,GAAG;gBACN,YAAY,EAAE,YAAY,CAAC,OAAO,CAAC,cAAc,CAAC;gBAClD,SAAS,EAAE,YAAY,CAAC,OAAO,CAAC,WAAW,CAAC;gBAC5C,SAAS,EAAE,IAAI;gBACf,QAAQ,EAAE,IAAI;gBACd,OAAO,EAAC,YAAY,CAAC,OAAO,CAAC,SAAS,CAAC;gBACvC,UAAU,EAAE,aAAa;gBACzB,WAAW,EAAE,IAAI;aAClB;SACF;aAAM;YACL,KAAK,GAAG;gBACN,YAAY,EAAE,YAAY,CAAC,OAAO,CAAC,cAAc,CAAC;gBAClD,SAAS,EAAE,YAAY,CAAC,OAAO,CAAC,WAAW,CAAC;gBAC5C,SAAS,EAAE,IAAI;gBACf,QAAQ,EAAE,IAAI;gBACd,OAAO,EAAC,YAAY,CAAC,OAAO,CAAC,SAAS,CAAC;gBACvC,UAAU,EAAE,aAAa;gBACzB,WAAW,EAAE,IAAI;aAClB;SACF;QACD,IAAI,CAAC,gBAAgB,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC,cAAI;YACrD,IAAI,aAAa,GAAG,EAAE,CAAC;YACvB,IAAI,CAAC,OAAO,CAAC,iBAAO;gBAClB,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YAC9B,CAAC,CAAC,CAAC;YACH,KAAI,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC;QAChC,CAAC,EAAE,UAAC,KAAK;YAEP,KAAI,CAAC,sBAAsB,CAAC,eAAe,GAAG,KAAK,CAAC;QACtD,CAAC,EAAE;YAED,KAAI,CAAC,sBAAsB,CAAC,eAAe,GAAG,KAAK,CAAC;QACtD,CAAC,CAAC,CAAC;IACL,CAAC;IAID,iCAAS,GAAT,UAAU,KAAK;QAAf,iBAkFC;QAjFC,IAAI,IAAI,GAAG,IAAI,CAAC;QAChB,IAAI,OAAO,CAAC;QACZ,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE;YACtB,IAAI,UAAQ,GAAG,KAAK,CAAC,MAAM,CAAC;YAC5B,IAAI,UAAQ,GAAG,CAAC,EAAE;gBAChB,IAAI,CAAC,WAAW,GAAG,YAAY,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;gBAEvD,WAAW,CAAC;oBAEV,IAAI,QAAQ,GAAG,KAAI,CAAC,WAAW,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,iBAAiB,CAAC;oBAC7D,QAAQ,CAAC,cAAc,CAAC,cAAc,CAAC,CAAC,KAAK,CAAC,UAAU,GAAG,OAAO,GAAG,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC;oBACvF,IAAI,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE;wBAC5B,QAAQ,CAAC,cAAc,CAAC,cAAc,CAAC,CAAC,KAAK,CAAC,cAAc,GAAG,MAAM,CAAC;wBACtE,QAAQ,CAAC,cAAc,CAAC,cAAc,CAAC,CAAC,KAAK,CAAC,gBAAgB,GAAG,UAAU,CAAC;qBAC7E;yBAAM;wBACL,QAAQ,CAAC,cAAc,CAAC,cAAc,CAAC,CAAC,KAAK,CAAC,cAAc,GAAG,OAAO,CAAC;wBACvE,QAAQ,CAAC,cAAc,CAAC,cAAc,CAAC,CAAC,KAAK,CAAC,gBAAgB,GAAG,WAAW,CAAC;wBAC7E,QAAQ,CAAC,cAAc,CAAC,cAAc,CAAC,CAAC,KAAK,CAAC,kBAAkB,GAAG,eAAe,CAAC;qBAEpF;oBAED,KAAI,CAAC,QAAQ,GAAG,WAAW,CAAC;gDAEjB,KAAK;4BACZ,UAAU,CAAC;gCACT,OAAO,GAAG,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,iBAAiB,CAAC;gCAC5D,QAAQ,CAAC,cAAc,CAAC,cAAc,CAAC,CAAC,KAAK,CAAC,UAAU,GAAG,OAAO,GAAG,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC;gCACtF,QAAQ,CAAC,cAAc,CAAC,cAAc,CAAC,CAAC,KAAK,CAAC,gBAAgB,GAAG,WAAW,CAAC;gCAC7E,IAAI,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE;oCAC5B,QAAQ,CAAC,cAAc,CAAC,cAAc,CAAC,CAAC,KAAK,CAAC,cAAc,GAAG,MAAM,CAAC;oCACtE,QAAQ,CAAC,cAAc,CAAC,cAAc,CAAC,CAAC,KAAK,CAAC,gBAAgB,GAAG,UAAU,CAAC;iCAC7E;qCAAM;oCACL,QAAQ,CAAC,cAAc,CAAC,cAAc,CAAC,CAAC,KAAK,CAAC,cAAc,GAAG,OAAO,CAAC;oCACvE,QAAQ,CAAC,cAAc,CAAC,cAAc,CAAC,CAAC,KAAK,CAAC,gBAAgB,GAAG,WAAW,CAAC;oCAC7E,QAAQ,CAAC,cAAc,CAAC,cAAc,CAAC,CAAC,KAAK,CAAC,kBAAkB,GAAG,eAAe,CAAC;iCAEpF;4BAEH,CAAC,EAAE,KAAK,GAAG,KAAK,CAAC,CAAC;;wBAfpB,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,KAAK,CAAC,MAAM,EAAE,KAAK,EAAE;oCAAxC,KAAK;yBAgBb;oBAEH,CAAC,EAAE,CAAC,KAAK,GAAG,UAAQ,CAAC,CAAC,CAAC;oBAEvB,IAAI,CAAC,KAAI,CAAC,WAAW,EAAE;wBAAE,aAAa,EAAE;qBAAE;gBAC5C,CAAC,EAAE,IAAI,CAAC,CAAC;aAEV;iBAAM;gBAEL,IAAI,CAAC,WAAW,GAAG,YAAY,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;gBAEvD,WAAW,CAAC;oBACV,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,KAAK,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE;wBAEjD,OAAO,GAAG,KAAI,CAAC,WAAW,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,iBAAiB,CAAC;wBAC5D,QAAQ,CAAC,cAAc,CAAC,cAAc,CAAC,CAAC,KAAK,CAAC,UAAU,GAAG,OAAO,GAAG,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC;wBACtF,IAAI,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE;4BAC5B,QAAQ,CAAC,cAAc,CAAC,cAAc,CAAC,CAAC,KAAK,CAAC,cAAc,GAAG,MAAM,CAAC;4BACtE,QAAQ,CAAC,cAAc,CAAC,cAAc,CAAC,CAAC,KAAK,CAAC,gBAAgB,GAAG,UAAU,CAAC;yBAC7E;6BAAM;4BACL,QAAQ,CAAC,cAAc,CAAC,cAAc,CAAC,CAAC,KAAK,CAAC,cAAc,GAAG,OAAO,CAAC;4BACvE,QAAQ,CAAC,cAAc,CAAC,cAAc,CAAC,CAAC,KAAK,CAAC,gBAAgB,GAAG,WAAW,CAAC;4BAC7E,QAAQ,CAAC,cAAc,CAAC,cAAc,CAAC,CAAC,KAAK,CAAC,kBAAkB,GAAG,eAAe,CAAC;yBAEpF;qBAEF;oBACD,IAAI,CAAC,KAAI,CAAC,WAAW,EAAE;wBAAE,aAAa,EAAE;qBAAE;gBAC5C,CAAC,EAAE,IAAI,CAAC,CAAC;aACV;SAEF;aAAM;YACL,IAAI,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE;gBAC5B,QAAQ,CAAC,cAAc,CAAC,cAAc,CAAC,CAAC,KAAK,CAAC,eAAe,GAAG,OAAO,CAAC;gBACxE,QAAQ,CAAC,cAAc,CAAC,cAAc,CAAC,CAAC,KAAK,CAAC,gBAAgB,GAAG,WAAW,CAAC;gBAC7E,QAAQ,CAAC,cAAc,CAAC,cAAc,CAAC,CAAC,KAAK,CAAC,cAAc,GAAG,MAAM,CAAC;aACvE;iBAAM;gBACL,QAAQ,CAAC,cAAc,CAAC,cAAc,CAAC,CAAC,KAAK,CAAC,eAAe,GAAG,OAAO,CAAC;gBACxE,QAAQ,CAAC,cAAc,CAAC,cAAc,CAAC,CAAC,KAAK,CAAC,gBAAgB,GAAG,WAAW,CAAC;gBAC7E,QAAQ,CAAC,cAAc,CAAC,cAAc,CAAC,CAAC,KAAK,CAAC,cAAc,GAAG,OAAO,CAAC;aACxE;SACF;IACH,CAAC;IAED,qCAAa,GAAb;QACE,IAAI,CAAC,sBAAsB,CAAC,eAAe,GAAG,IAAI,CAAC;QACnD,IAAI,CAAC,gBAAgB,EAAE,CAAC;IAC1B,CAAC;IAED,wCAAgB,GAAhB;QAAA,iBAgCC;QA/BC,IAAI,YAAY,GAAG,EAAE,CAAC;QACtB,IAAI,CAAC,sBAAsB,CAAC,eAAe,GAAG,IAAI,CAAC;QAEnD,IAAI,KAAK,GAAG;YACV,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,KAAK;YACvB,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,KAAK;SAC5B;QAED,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC;QAE5B,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC,cAAI;YAC7C,IAAG,IAAI,CAAC,MAAM,GAAG,CAAC,EAAC;gBACjB,YAAY,GAAG,IAAI,CAAC;gBACpB,KAAI,CAAC,sBAAsB,CAAC,YAAY,GAAG,YAAY,CAAC;gBACxD,KAAI,CAAC,OAAO,CAAC,aAAa,CAAC,YAAY,CAAC,CAAC;aAC1C;iBAAI;gBACH,oFAAoF;gBACpF,6BAA6B;gBAC7B,+BAA+B;gBAC/B,qBAAqB;gBACrB,MAAM;gBACN,KAAI,CAAC,iBAAiB,EAAE,CAAC;gBACzB,KAAI,CAAC,eAAe,GAAG,KAAK,CAAC;aAC9B;QACH,CAAC,EAAE,UAAC,KAAK;YAEP,KAAI,CAAC,sBAAsB,CAAC,eAAe,GAAG,KAAK,CAAC;QACtD,CAAC,EAAE;YAED,KAAI,CAAC,sBAAsB,CAAC,eAAe,GAAG,KAAK,CAAC;QACtD,CAAC,CAAC,CAAC;IACL,CAAC;IAGD,yCAAiB,GAAjB;QACE,IAAM,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,qHAAuB,EAAE;YAC9D,KAAK,EAAE,OAAO;YACd,MAAM,EAAE,OAAO;YACf,IAAI,EAAE;gBACJ,QAAQ,EAAE,0HAA0H;gBACpI,OAAO,EAAE,oBAAoB;aAC9B;SACF,CAAC,CAAC;QACH,SAAS,CAAC,WAAW,EAAE,CAAC,SAAS,CAAC,gBAAM;YACtC,IAAI,MAAM,KAAK,IAAI,EAAE;gBACnB,oBAAoB;aACrB;iBAAM;gBACL,OAAO;aACR;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IAGD,6CAAqB,GAArB,UAAsB,MAAM,EAAE,IAAI,EAAE,IAAI;QAEtC,IAAI,SAAS,GAAG;YACd,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,EAAE;YAChC,UAAU,EAAE,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,EAAE;YACnC,SAAS,EAAE,IAAI,CAAC,iBAAiB,CAAC,KAAK;YACvC,IAAI,EAAE,IAAI,CAAC,SAAS,IAAI,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS;YACvD,KAAK,EAAE,YAAY,CAAC,OAAO,CAAC,OAAO,CAAC;YACpC,SAAS,EAAE,YAAY,CAAC,OAAO,CAAC,WAAW,CAAC;YAC5C,OAAO,EAAE,YAAY,CAAC,OAAO,CAAC,SAAS,CAAC;YACxC,WAAW,EAAE,IAAI;SAClB;QACD,IAAI,CAAC,cAAc,CAAC,kBAAkB,CAAC,SAAS,CAAC,CAAC,SAAS,CAAC,cAAI;YAE9D,IAAI,CAAC,eAAe,GAAG,KAAK,CAAC;QAC/B,CAAC,EAAE,gBAAM;YACP,IAAI,CAAC,eAAe,GAAG,KAAK,CAAC;QAC/B,CAAC,EAAE;YAED,IAAI,CAAC,sBAAsB,CAAC,eAAe,GAAG,KAAK,CAAC;QACtD,CAAC,CAAC,CAAC;IACL,CAAC;IACD,wCAAgB,GAAhB,UAAiB,IAAI,EAAE,IAAI;QACzB,IAAM,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,mGAAiB,EAAE;YACxD,IAAI,EAAE,IAAI;SACX,CAAC,CAAC;QACH,SAAS,CAAC,WAAW,EAAE,CAAC,SAAS,CAAC,eAAK;QACvC,CAAC,CAAC,CAAC;IACL,CAAC;IAED,qCAAa,GAAb;QACE,IAAI,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;QACvC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;QAC9B,IAAI,CAAC,WAAW,EAAE,CAAC;IACrB,CAAC;IAED,mCAAW,GAAX;QACE,IAAI,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;QAEnC,CAAC,IAAI,CAAC,MAAM,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;QAEtE,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;IAC5B,CAAC;IAGO,wCAAgB,GAAxB;QACE,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;IAC/D,CAAC;IAEO,0CAAkB,GAA1B;QACE,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,YAAY,CAAC,CAAC;IAC3C,CAAC;IAEM,qCAAa,GAApB,UAAqB,MAAc,EAAE,QAAQ,EAAE,IAAY;QAA3D,iBAUC;QATC,IAAI,IAAI,GAAG,IAAI,CAAC;QAChB,IAAI,IAAI,CAAC,2BAA2B,EAAE;YACpC,IAAI,CAAC,2BAA2B,CAAC,WAAW,EAAE,CAAC;SAChD;QACD,IAAI,CAAC,2BAA2B,GAAG,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAAC,MAAM,CAAC;aACvE,SAAS,CAAC,UAAC,KAAK;YACf,KAAI,CAAC,WAAW,GAAG,KAAK,CAAC;YACzB,QAAQ,CAAC,KAAI,CAAC,WAAW,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;QACzC,CAAC,CAAC,CAAC;IACP,CAAC;IAEM,iCAAS,GAAhB;QACE,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;IACvC,CAAC;IAED,2BAA2B;IAC3B,0CAAkB,GAAlB;QAAA,iBAmCC;QAjCC,IAAI,CAAC,sBAAsB,CAAC,eAAe,GAAG,IAAI,CAAC;QACnD,0BAA0B;QAC1B,oCAAoC;QACpC,IAAI,KAAK,GAAG;YACV,YAAY,EAAE,IAAI,CAAC,YAAY;YAC/B,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,OAAO,EAAE,YAAY,CAAC,OAAO,CAAC,SAAS,CAAC;YACxC,SAAS,EAAE,IAAI;SAChB;QACD,cAAc;QACd,IAAI,OAAO,GAAG,EAAE,CAAC;QACjB,IAAI,CAAC,gBAAgB,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC,cAAI;YAC5D,IAAI,CAAC,OAAO,CAAC,iBAAO;gBAClB,IAAI,OAAO,CAAC,SAAS,CAAC,WAAW,EAAE,IAAI,KAAI,CAAC,SAAS,CAAC,WAAW,EAAE,EAAE;oBACnE,YAAY,CAAC,OAAO,CAAC,UAAU,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC;oBAChD,KAAI,CAAC,QAAQ,GAAG,OAAO,CAAC,KAAK,CAAC;iBAC/B;gBACD,OAAO,GAAG,OAAO,CAAC,iBAAiB,CAAC;YACtC,CAAC,CAAC,CAAC;YACH,OAAO,CAAC,OAAO,CAAC,iBAAO;gBACrB,IAAI,OAAO,CAAC,SAAS,IAAI,CAAC,IAAI,OAAO,CAAC,OAAO,CAAC,QAAQ,EAAE,IAAI,YAAY,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,QAAQ,EAAE,EAAE;oBACtG,KAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;iBACtB;YACH,CAAC,CAAC,CAAC;QAEL,CAAC,EAAE,cAAI;YACL,8BAA8B;YAE9B,KAAI,CAAC,sBAAsB,CAAC,eAAe,GAAG,KAAK,CAAC;QACtD,CAAC,EAAE;YAED,KAAI,CAAC,sBAAsB,CAAC,eAAe,GAAG,KAAK,CAAC;QACtD,CAAC,CAAC,CAAC;IACL,CAAC;IAED,sCAAc,GAAd;QACE,MAAM,CAAC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;IAChD,CAAC;;gBAnV2B,gFAAc;gBACzB,4DAAS;gBACE,+DAAiB;gBAC7B,gEAAY;gBACE,+DAAkB;gBACtB,oFAAa;gBAClB,oEAAgB;gBAClB,sDAAM;gBACD,uEAAW;gBACP,0FAAe;gBACxB,qFAAa;gBACP,8EAAa;gBACZ,8EAAa;gBACV,oEAAgB;gBACZ,+FAAqB;gBACjC,4DAAS;;IA/CnB,aAAa;QALzB,+DAAS,CAAC;YACT,QAAQ,EAAE,UAAU;YACpB,sNAAoC;;SAErC,CAAC;+EAiC4B,gFAAc;YACzB,4DAAS;YACE,+DAAiB;YAC7B,gEAAY;YACE,+DAAkB;YACtB,oFAAa;YAClB,oEAAgB;YAClB,sDAAM;YACD,uEAAW;YACP,0FAAe;YACxB,qFAAa;YACP,8EAAa;YACZ,8EAAa;YACV,oEAAgB;YACZ,+FAAqB;YACjC,4DAAS;OA/CnB,aAAa,CAoXzB;IAAD,oBAAC;CAAA;AApXyB;;;;;;;;;;;;;ACjC1B;AAAe,oFAAqB,sBAAsB,+BAA+B,2BAA2B,eAAe,kBAAkB,gBAAgB,iBAAiB,KAAK,kBAAkB,qBAAqB,KAAK,uBAAuB,2BAA2B,oBAAoB,qBAAqB,wBAAwB,4BAA4B,qBAAqB,2BAA2B,KAAK,4BAA4B,wBAAwB,KAAK,wBAAwB,wBAAwB,sDAAsD,2BAA2B,uBAAuB,KAAK,iCAAiC,wBAAwB,sDAAsD,2BAA2B,uBAAuB,KAAK,qBAAqB,sDAAsD,2BAA2B,kCAAkC,KAAK,uBAAuB,sDAAsD,2BAA2B,KAAK,eAAe,2CAA2C,oBAAoB,KAAK,4BAA4B,uCAAuC,KAAK,0BAA0B,sBAAsB,qBAAqB,qBAAqB,KAAK,yBAAyB,oBAAoB,KAAK,4BAA4B,qBAAqB,KAAK,2FAA2F,4BAA4B,yCAAyC,qBAAqB,oBAAoB,gBAAgB,+BAA+B,uEAAuE,yDAAyD,iBAAiB,qBAAqB,qBAAqB,wBAAwB,KAAK,mBAAmB,mCAAmC,gCAAgC,2BAA2B,0BAA0B,KAAK,uBAAuB,oBAAoB,wBAAwB,KAAK,iBAAiB,wBAAwB,uBAAuB,qBAAqB,sDAAsD,2BAA2B,KAAK,6CAA6C,wBAAwB,0GAA0G,KAAK,6BAA6B,yBAAyB,KAAK,oCAAoC,wNAAwN,KAAK,uDAAuD,qMAAqM,KAAK,iGAAiG,oBAAoB,KAAK,sBAAsB,gCAAgC,KAAK,0BAA0B,qBAAqB,yBAAyB,0BAA0B,KAAK,6CAA6C,sBAAsB,KAAK,8BAA8B,0BAA0B,qBAAqB,KAAK,mDAAmD,iBAAiB,uCAAuC,SAAS,iBAAiB,sCAAsC,oCAAoC,6BAA6B,SAAS,KAAK,mDAAmD,0BAA0B,yBAAyB,6BAA6B,SAAS,4BAA4B,wCAAwC,SAAS,0BAA0B,0BAA0B,SAAS,kBAAkB,yBAAyB,SAAS,uBAAuB,+BAA+B,4BAA4B,wBAAwB,yBAAyB,gCAAgC,SAAS,wBAAwB,4BAA4B,SAAS,KAAK,kGAAkG,yCAAyC,KAAK,oBAAoB,kCAAkC,+BAA+B,gCAAgC,KAAK,6BAA6B,+BAA+B,yCAAyC,wBAAwB,2BAA2B,4BAA4B,sDAAsD,2BAA2B,KAAK,uBAAuB,mCAAmC,gCAAgC,yCAAyC,sDAAsD,2BAA2B,KAAK,wBAAwB,gCAAgC,KAAK,6FAA6F,qBAAqB,yBAAyB,yBAAyB,qBAAqB,+BAA+B,uCAAuC,KAAK,kBAAkB,qBAAqB,wBAAwB,sDAAsD,2BAA2B,KAAK,0DAA0D,sCAAsC,KAAK,oEAAoE,gCAAgC,KAAK,0BAA0B,qBAAqB,oBAAoB,2BAA2B,KAAK,mDAAmD,+zU;;;;;;;;;;;;;;;;;;;;;;;;;ACAtoL;AACvB;AACN;AACO;AACH;AACqC;AAC5B;AACO;AACU;AAOjF;IAWE,yBACU,SAA2B,EAC3B,OAAe,EACf,YAAyB,EACjC,iBAAoC,EACpC,KAAmB,EACX,eAA+B,EAC/B,qBAA2C,EAC3C,cAA6B,EAC7B,sBAA4C,EAC5C,cAA6B;QAT7B,cAAS,GAAT,SAAS,CAAkB;QAC3B,YAAO,GAAP,OAAO,CAAQ;QACf,iBAAY,GAAZ,YAAY,CAAa;QAGzB,oBAAe,GAAf,eAAe,CAAgB;QAC/B,0BAAqB,GAArB,qBAAqB,CAAsB;QAC3C,mBAAc,GAAd,cAAc,CAAe;QAC7B,2BAAsB,GAAtB,sBAAsB,CAAsB;QAC5C,mBAAc,GAAd,cAAc,CAAe;QAnBvC,cAAS,GAAG,CAAC,kBAAkB,EAAE,uBAAuB,CAAC,CAAC,IAAI,CAAC,WAAC,IAAI,QAAC,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,EAA5B,CAA4B,CAAC,CAAC;QAE3F,gBAAW,GAAG,YAAY,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;QAClD,YAAO,GAAU,YAAY,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QAC9C,eAAU,GAAG,IAAI,CAAC;QAIlB,cAAS,GAAQ,EAAE,qBAAqB,EAAE,CAAC,EAAE,qBAAqB,EAAE,EAAE,EAAE,mBAAmB,EAAE,EAAE,EAAE,qBAAqB,EAAE,EAAE,EAAE,kBAAkB,EAAE,EAAE,EAAE,qBAAqB,EAAE,CAAC,EAAE,qBAAqB,EAAE,EAAE,EAAE,mBAAmB,EAAE,EAAE,EAAE,qBAAqB,EAAE,EAAE,EAAE,kBAAkB,EAAE,EAAE,EAAE,CAAC;QAa3R,IAAI,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAC/C,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC,UAAU,CAAC,oBAAoB,CAAC,CAAC;QAC1D,IAAI,CAAC,oBAAoB,GAAG,cAAM,wBAAiB,CAAC,aAAa,EAAE,EAAjC,CAAiC,CAAC;QACpE,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;QACxD,IAAI,CAAC,SAAS,GAAG,cAAc,CAAC,kBAAkB,EAAE,CAAC;IACvD,CAAC;IAED,kCAAQ,GAAR;QACE,+BAA+B;IACjC,CAAC;IACD,qCAAW,GAAX;QACE,IAAI,CAAC,WAAW,CAAC,cAAc,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;IAC7D,CAAC;IAED,+CAAqB,GAArB;QAAA,iBASC;QARC,IAAI,QAAQ,GAAG;YACb,OAAO,EAAE,EAAE;YACX,SAAS,EAAE,YAAY,CAAC,OAAO,CAAC,aAAa,CAAC;SAC/C,CAAC;QACF,IAAI,CAAC,cAAc,CAAC,mBAAmB,CAAC,QAAQ,CAAC,CAAC,SAAS,CAAC,eAAK;YAC/D,KAAI,CAAC,SAAS,GAAG,KAAK,CAAC;YACvB,YAAY,CAAC,OAAO,CAAC,WAAW,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;QAC1D,CAAC,CAAC,CAAC;IACL,CAAC;IACD,wCAAc,GAAd;QACE,IAAI,CAAC,sBAAsB,CAAC,wBAAwB,EAAE,CAAC;QACvD,YAAY,CAAC,OAAO,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC;QACtC,YAAY,CAAC,OAAO,CAAC,cAAc,EAAE,EAAE,CAAC,CAAC;QACzC,YAAY,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;QACrC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;IAC/B,CAAC;IACD,kCAAQ,GAAR;QACE,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC;IACxC,CAAC;;gBA5CoB,oEAAgB;gBAClB,sDAAM;gBACD,uEAAW;gBACd,+DAAiB;gBAC7B,gEAAY;gBACM,8DAAc;gBACR,yGAAoB;gBAC3B,6EAAa;gBACN,8FAAqB;gBAC5B,oFAAa;;IArB5B,eAAe;QAL3B,+DAAS,CAAC;YACT,QAAQ,EAAE,YAAY;YACtB,4NAAsC;;SAEvC,CAAC;+EAaqB,oEAAgB;YAClB,sDAAM;YACD,uEAAW;YACd,+DAAiB;YAC7B,gEAAY;YACM,8DAAc;YACR,yGAAoB;YAC3B,6EAAa;YACN,8FAAqB;YAC5B,oFAAa;OArB5B,eAAe,CA0D3B;IAAD,sBAAC;CAAA;AA1D2B;;;;;;;;;;;;;;;;;;;;;;;;ACfa;AACc;AACD;AACe;AAC8B;AACG;AAC1C;AAE5D,IAAM,MAAM,GAAW;IACrB;QACE,IAAI,EAAE,EAAE;QACR,SAAS,EAAE,kEAAa;KACzB;IACD;QACE,IAAI,EAAE,QAAQ;QACd,SAAS,EAAE,wEAAe;KAC3B;IACD;QACE,IAAI,EAAE,WAAW;QACjB,SAAS,EAAE,iFAAkB;KAC9B;IAED;QACE,IAAI,EAAE,cAAc;QACpB,SAAS,EAAE,+GAAuB;KACnC;IACD;QACE,IAAI,EAAE,WAAW;QACjB,SAAS,EAAE,4GAAsB;KAClC;CACF,CAAC;AAMF;IAAA;IAAkC,CAAC;IAAtB,kBAAkB;QAJ9B,8DAAQ,CAAC;YACR,OAAO,EAAE,CAAC,4DAAY,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;YACxC,OAAO,EAAE,CAAC,4DAAY,CAAC;SACxB,CAAC;OACW,kBAAkB,CAAI;IAAD,yBAAC;CAAA;AAAJ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACpCqB;AACL;AACM;AACA;AACrD,0EAAkB,CAAC,oEAAQ,EAAE,OAAO,CAAC,CAAC;AACgB;AACM;AACJ;AACK;AACN;AACI;AACE;AACK;AACX;AACS;AACM;AACb;AACqB;AACZ;AACX;AACA;AACM;AACF;AACU;AACF;AACjB;AAElD,aAAa;AAC0D;AACN;AACf;AACuB;AACd;AACC;AA0C5D;IAAA;IAA2B,CAAC;IAAf,WAAW;QAxCvB,8DAAQ,CAAC;YACR,YAAY,EAAE,CAAC,kEAAa,EAAE,kFAAkB,EAAE,yEAAe,CAAC;YAClE,OAAO,EAAE;gBACP,4DAAY;gBACZ,wEAAkB;gBAClB,+EAAgB;gBAChB,0EAAgB;gBAChB,wEAAe;gBACf,2EAAgB;gBAChB,2DAAW;gBACX,mEAAmB;gBACnB,wEAAe;gBACf,oEAAa;gBACb,gFAAkB;gBAClB,qEAAa;gBACb,4FAAwB;gBACxB,uEAAc;gBACd,oFAAoB;gBACpB,8EAAiB;gBACjB,qEAAa;gBACb,qEAAa;gBACb,2EAAgB;gBAChB,yEAAe;gBACf,qEAAgB;gBAChB,gEAAa;gBACb,+DAAiB;gBACjB,2EAAgB;gBAChB,oEAAe,CAAC,OAAO,CAAC;oBACtB,MAAM,EAAE;wBACN,OAAO,EAAE,oEAAe;wBACxB,UAAU,EAAE,UAAC,IAAgB;4BAC3B,OAAQ,IAAI,+EAAmB,CAAC,IAAI,EAAE,cAAc,EAAE,OAAO,CAAC;wBAChE,CAAC;wBACD,IAAI,EAAE,CAAC,gEAAU,CAAC;qBACnB;iBACF,CAAC;aACH;YACD,SAAS,EAAE,CAAC,EAAE,OAAO,EAAE,uDAAS,EAAE,QAAQ,EAAE,OAAO,EAAE;gBACrD,EAAE,OAAO,EAAE,mEAAqB,EAAE,QAAQ,EAAE,0CAA0C,EAAE,CAAC;SAC1F,CAAC;OACW,WAAW,CAAI;IAAD,kBAAC;CAAA;AAAJ;;;;;;;;;;;;;;;;;;;AC3EmB;AAIc;AAKzD;IAiEE;QAhEA,oBAAe,GAAY,KAAK,CAAC;QAEjC,YAAO,GAAgB;YACrB,QAAQ,EAAE,EAAkB;YAC5B,QAAQ,EAAE,EAAE;YACZ,eAAe,EAAE,IAAI,0DAAW,CAAC,CAAC,CAAC;YACnC,QAAQ,EAAE,IAAI,0DAAW,CAAC,EAAE,CAAC;YAC7B,QAAQ,EAAE,IAAI,0DAAW,CAAC,EAAE,CAAC;YAC7B,aAAa,EAAE,IAAI,0DAAW,CAAC,EAAE,CAAC;YAClC,QAAQ,EAAE,IAAI,0DAAW,CAAC,EAAE,CAAC;YAC7B,cAAc,EAAE,IAAI,0DAAW,CAAC,EAAE,CAAC;YACnC,iBAAiB,EAAE,IAAI,0DAAW,CAAC,EAAE,CAAC;YACtC,gBAAgB,EAAE,IAAI,0DAAW,CAAC,EAAE,EAAC;gBACnC,yDAAU,CAAC,OAAO,CAAC,6DAA6D,CAAC;aAClF,CAAC;YACF,UAAU,EAAE,IAAI,0DAAW,CAAC,KAAK,CAAC;YAClC,gBAAgB,EAAE,IAAI,0DAAW,CAAC,KAAK,CAAC;YACxC,gBAAgB,EAAE,IAAI,0DAAW,CAAC,KAAK,CAAC;YACxC,gBAAgB,EAAE,IAAI,0DAAW,CAAC,EAAE,CAAC;YACrC,aAAa,EAAE,IAAI,0DAAW,CAAC,EAAE,CAAC;YAClC,eAAe,EAAE,IAAI,0DAAW,CAAC,EAAE,CAAC;YACpC,kBAAkB,EAAE,IAAI,0DAAW,CAAC,IAAI,IAAI,EAAE,CAAC;YAC/C,gBAAgB,EAAG,IAAI,0DAAW,EAAE;YACpC,WAAW,EAAE,IAAI,0DAAW,EAAE;YAC9B,cAAc,EAAE,EAAE;YAClB,OAAO,EAAE,IAAI;YACb,SAAS,EAAE,IAAI;YACf,eAAe,EAAE,IAAI;YACrB,SAAS,EAAE,EAAE;YACb,YAAY,EAAE,EAAE;YAChB,cAAc,EAAE,EAAE;YAClB,QAAQ,EAAE,EAAE;YACZ,SAAS,EAAE,EAAE;YACb,SAAS,EAAE,EAAE;YACb,QAAQ,EAAE,EAAE;YACZ,KAAK,EAAE,GAAG;YACV,YAAY,EAAE,IAAI;YAClB,cAAc,EAAE,KAAK;YACrB,aAAa,EAAE,QAAQ;YACvB,YAAY,EAAE,CAAC;YACf,YAAY,EAAE,QAAQ;YACtB,OAAO,EAAE,QAAQ;YACjB,UAAU,EAAE,EAAE;YACd,OAAO,EAAE,QAAQ;YACjB,UAAU,EAAE,EAAE;YACd,OAAO,EAAE,QAAQ;YACjB,UAAU,EAAE,EAAE;YACd,MAAM,EAAE,QAAQ;YAChB,KAAK,EAAE,QAAQ;YACf,cAAc,EAAE,QAAQ;YACxB,IAAI,EAAE,QAAQ;YACd,WAAW,EAAE,EAAE;YACf,MAAM,EAAE,EAAE;YACV,YAAY,EAAC,EAAE;YACf,QAAQ,EAAC,EAAE;YACX,gBAAgB,EAAC,IAAI,0DAAW,EAAE;YAClC,eAAe,EAAC,IAAI,0DAAW,EAAE;YACjC,eAAe,EAAC,IAAI,0DAAW,CAAC,EAAE,CAAC;YACnC,mBAAmB,EAAC,IAAI,0DAAW,CAAC,KAAK,CAAC;YAC1C,YAAY,EAAE,IAAI,0DAAW,CAAC,EAAE,CAAC;YACjC,gBAAgB,EAAC,EAAE;YACnB,SAAS,EAAE,IAAI;SACD,CAAC;QACjB,cAAS,GAAkB,EAAE,MAAM,EAAE,KAAK,EAAmB,CAAC;IAE9D,CAAC;IACM,wDAAwB,GAA/B;QACE,IAAI,CAAC,OAAO,GAAG;YACb,QAAQ,EAAE,EAAkB;YAC5B,QAAQ,EAAE,EAAE;YACZ,eAAe,EAAE,IAAI,0DAAW,CAAC,CAAC,CAAC;YACnC,QAAQ,EAAE,IAAI,0DAAW,CAAC,EAAE,CAAC;YAC7B,QAAQ,EAAE,IAAI,0DAAW,CAAC,EAAE,CAAC;YAC7B,aAAa,EAAE,IAAI,0DAAW,CAAC,EAAE,CAAC;YAClC,QAAQ,EAAE,IAAI,0DAAW,CAAC,EAAE,CAAC;YAC7B,cAAc,EAAE,IAAI,0DAAW,CAAC,EAAE,CAAC;YACnC,iBAAiB,EAAE,IAAI,0DAAW,CAAC,EAAE,CAAC;YACtC,gBAAgB,EAAE,IAAI,0DAAW,CAAC,EAAE,EAAC;gBACnC,yDAAU,CAAC,OAAO,CAAC,6DAA6D,CAAC;aAClF,CAAC;YACF,UAAU,EAAE,IAAI,0DAAW,CAAC,KAAK,CAAC;YAClC,gBAAgB,EAAE,IAAI,0DAAW,CAAC,KAAK,CAAC;YACxC,gBAAgB,EAAE,IAAI,0DAAW,CAAC,KAAK,CAAC;YACxC,gBAAgB,EAAE,IAAI,0DAAW,CAAC,EAAE,CAAC;YACrC,aAAa,EAAE,IAAI,0DAAW,CAAC,EAAE,CAAC;YAClC,eAAe,EAAE,IAAI,0DAAW,CAAC,EAAE,CAAC;YACpC,kBAAkB,EAAE,IAAI,0DAAW,CAAC,IAAI,IAAI,EAAE,CAAC;YAC/C,OAAO,EAAE,IAAI;YACb,SAAS,EAAE,IAAI;YACf,eAAe,EAAE,IAAI;YACrB,SAAS,EAAE,EAAE;YACb,cAAc,EAAE,EAAE;YAClB,QAAQ,EAAE,EAAE;YACZ,SAAS,EAAE,EAAE;YACb,YAAY,EAAE,EAAE;YAChB,YAAY,EAAE,EAAE;YAChB,SAAS,EAAE,EAAE;YACb,QAAQ,EAAE,EAAE;YACZ,KAAK,EAAE,GAAG;YACV,YAAY,EAAE,IAAI;YAClB,cAAc,EAAE,KAAK;YACrB,aAAa,EAAE,QAAQ;YACvB,YAAY,EAAE,CAAC;YACf,YAAY,EAAE,QAAQ;YACtB,OAAO,EAAE,QAAQ;YACjB,UAAU,EAAE,EAAE;YACd,OAAO,EAAE,QAAQ;YACjB,UAAU,EAAE,EAAE;YACd,OAAO,EAAE,QAAQ;YACjB,UAAU,EAAE,EAAE;YACd,MAAM,EAAE,QAAQ;YAChB,KAAK,EAAE,QAAQ;YACf,cAAc,EAAE,QAAQ;YACxB,IAAI,EAAE,QAAQ;YACd,WAAW,EAAE,EAAE;YACf,MAAM,EAAE,EAAE;YACV,gBAAgB,EAAG,IAAI,0DAAW,EAAE;YACpC,WAAW,EAAE,IAAI,0DAAW,EAAE;YAC9B,cAAc,EAAE,EAAE;YAClB,YAAY,EAAC,EAAE;YACf,QAAQ,EAAC,EAAE;YACX,gBAAgB,EAAC,IAAI,0DAAW,CAAC,EAAE,CAAC;YACpC,eAAe,EAAC,IAAI,0DAAW,CAAC,EAAE,CAAC;YACnC,eAAe,EAAC,IAAI,0DAAW,CAAC,EAAE,CAAC;YACnC,mBAAmB,EAAC,IAAI,0DAAW,CAAC,KAAK,CAAC;YAC1C,YAAY,EAAE,IAAI,0DAAW,CAAC,EAAE,CAAC;YACjC,gBAAgB,EAAC,EAAE;YACnB,SAAS,EAAE,IAAI;SACD,CAAC;IACnB,CAAC;IAlIU,qBAAqB;QAHjC,gEAAU,CAAC;YACV,UAAU,EAAE,MAAM;SACnB,CAAC;;OACW,qBAAqB,CAmIjC;IAAD,4BAAC;CAAA;AAnIiC;;;;;;;;;;;;;;;;;;;;ACTS;AACO;AACD;AAMjD;IAIE,wBACU,WAAuB,EACvB,cAA6B;QAD7B,gBAAW,GAAX,WAAW,CAAY;QACvB,mBAAc,GAAd,cAAc,CAAe;QAJ/B,sBAAiB,GAAG,kBAAkB,CAAC;QACvC,0BAAqB,GAAG,sBAAsB,CAAC;IAInD,CAAC;IAEL,2CAAkB,GAAlB,UAAmB,KAAK;QACtB,IAAI,UAAU,GAAG,IAAI,CAAC,cAAc,CAAC,yBAAyB,CAAC,IAAI,CAAC,iBAAiB,CAAC,GAAG,GAAG,GAAG,IAAI,CAAC,cAAc,CAAC,sBAAsB,CAAC,KAAK,CAAC;QAChJ,OAAO,IAAI,CAAC,WAAW,CAAC,GAAG,CAAQ,UAAU,CAAC,CAAC;IACjD,CAAC;IAED,+CAAsB,GAAtB,UAAuB,KAAK;QAC1B,IAAI,UAAU,GAAG,IAAI,CAAC,cAAc,CAAC,yBAAyB,CAAC,IAAI,CAAC,qBAAqB,CAAC,GAAG,GAAG,GAAG,IAAI,CAAC,cAAc,CAAC,sBAAsB,CAAC,KAAK,CAAC;QACpJ,OAAO,IAAI,CAAC,WAAW,CAAC,GAAG,CAAQ,UAAU,CAAC,CAAC;IACjD,CAAC;;gBAZsB,+DAAU;gBACP,6DAAa;;IAN5B,cAAc;QAH1B,gEAAU,CAAC;YACV,UAAU,EAAE,MAAM;SACnB,CAAC;+EAMuB,+DAAU;YACP,6DAAa;OAN5B,cAAc,CAoB1B;IAAD,qBAAC;CAAA;AApB0B;;;;;;;;;;;;;;;;;;;;ACRgB;AACO;AACA;AAMlD;IAKE,yBACU,WAAuB,EACvB,cAA6B;QAD7B,gBAAW,GAAX,WAAW,CAAY;QACvB,mBAAc,GAAd,cAAc,CAAe;QAN/B,cAAS,GAAG,wBAAwB,CAAC;QAC7C,iBAAY,GAAG,EAAE,CAAC;QAClB,kBAAa,GAAG,EAAE,CAAC;QACnB,qBAAgB,GAAG,EAAE,CAAC;IAIlB,CAAC;IAEL,qCAAW,GAAX,UAAY,KAAK;QACf,IAAI,UAAU,GAAG,IAAI,CAAC,cAAc,CAAC,yBAAyB,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,GAAG,GAAE,IAAI,CAAC,cAAc,CAAC,sBAAsB,CAAC,KAAK,CAAC,CAAC;QACxI,OAAO,IAAI,CAAC,WAAW,CAAC,GAAG,CAAkB,UAAU,CAAC,CAAC;IAC3D,CAAC;;gBAPsB,+DAAU;gBACP,6DAAa;;IAP5B,eAAe;QAH3B,gEAAU,CAAC;YACV,UAAU,EAAE,MAAM;SACnB,CAAC;+EAOuB,+DAAU;YACP,6DAAa;OAP5B,eAAe,CAc3B;IAAD,sBAAC;CAAA;AAd2B;;;;;;;;;;;;;;;;;;;;ACRe;AACO;AACA;AAMlD;IAIE,uBACU,WAAuB,EACvB,cAA6B;QAD7B,gBAAW,GAAX,WAAW,CAAY;QACvB,mBAAc,GAAd,cAAc,CAAe;QAJ/B,qBAAgB,GAAG,iBAAiB,CAAC;IAKvC,CAAC;IAEP,oCAAY,GAAZ,UAAa,KAAK;QAChB,IAAI,UAAU,GAAG,IAAI,CAAC,cAAc,CAAC,yBAAyB,CAAC,IAAI,CAAC,gBAAgB,CAAC,GAAG,GAAG,GAAE,IAAI,CAAC,cAAc,CAAC,sBAAsB,CAAC,KAAK,CAAC;QAC9I,OAAO,IAAI,CAAC,WAAW,CAAC,GAAG,CAAQ,UAAU,CAAC,CAAC;IACjD,CAAC;;gBAPsB,+DAAU;gBACP,6DAAa;;IAN5B,aAAa;QAHzB,gEAAU,CAAC;YACV,UAAU,EAAE,MAAM;SACnB,CAAC;+EAMuB,+DAAU;YACP,6DAAa;OAN5B,aAAa,CAazB;IAAD,oBAAC;CAAA;AAbyB;;;;;;;;;;;;;;;;;;;;ACRiB;AACO;AACA;AASlD;IAWE,uBACU,WAAuB,EACvB,cAA6B;QAD7B,gBAAW,GAAX,WAAW,CAAY;QACvB,mBAAc,GAAd,cAAc,CAAe;QAX/B,cAAS,GAAG,WAAW,CAAC;QACxB,uBAAkB,GAAG,mBAAmB,CAAC;QACzC,iBAAY,GAAG,SAAS,CAAC;QACzB,cAAS,GAAG,eAAe;QAC3B,yBAAoB,GAAG,qBAAqB,CAAC;QAC7C,qBAAgB,GAAG,iBAAiB,CAAC;QACrC,oBAAe,GAAG,gBAAgB,CAAC;QACnC,qBAAgB,GAAG,qBAAqB,CAAC;QACzC,yBAAoB,GAAG,qBAAqB,CAAC;IAIjD,CAAC;IAEL,uCAAe,GAAf,UAAgB,KAAK;QACnB,IAAI,UAAU,GAAG,IAAI,CAAC,cAAc,CAAC,wBAAwB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAC9E,OAAO,IAAI,CAAC,WAAW,CAAC,IAAI,CAAM,UAAU,EAAE,KAAK,CAAC,CAAC;IACvD,CAAC;IAED,0CAAkB,GAAlB,UAAmB,KAAK;QACtB,IAAI,UAAU,GAAG,IAAI,CAAC,cAAc,CAAC,wBAAwB,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;QACrF,OAAO,IAAI,CAAC,WAAW,CAAC,IAAI,CAAM,UAAU,EAAC,KAAK,CAAC,CAAC;IACtD,CAAC;IAED,mDAA2B,GAA3B,UAA4B,KAAK;QAC/B,IAAI,UAAU,GAAG,IAAI,CAAC,cAAc,CAAC,wBAAwB,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;QACvF,OAAO,IAAI,CAAC,WAAW,CAAC,IAAI,CAAM,UAAU,EAAC,KAAK,CAAC,CAAC;IACtD,CAAC;IAED,2CAAmB,GAAnB,UAAoB,KAAK;QACvB,IAAI,UAAU,GAAG,IAAI,CAAC,cAAc,CAAC,yBAAyB,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QAClF,OAAO,IAAI,CAAC,WAAW,CAAC,IAAI,CAAM,UAAU,EAAC,KAAK,CAAC,CAAC;IACtD,CAAC;IAED,6CAAqB,GAArB,UAAsB,QAAQ;QAC5B,IAAI,UAAU,GAAG,IAAI,CAAC,cAAc,CAAC,wBAAwB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAC9E,OAAO,IAAI,CAAC,WAAW,CAAC,IAAI,CAAM,UAAU,EAAE,EAAE,SAAS,EAAE,EAAE,EAAC,WAAW,EAAE,QAAQ,EAAC,aAAa,EAAC,EAAE,EAAE,CAAC,CAAC;IAC1G,CAAC;IACD,oCAAY,GAAZ;QAEE,OAAO,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,wEAAwE,CAAC,CAAC;IACxG,CAAC;IACD,iCAAS,GAAT,UAAU,GAAG;QAEX,IAAI,UAAU,GAAG,mEAAmE,GAAG,GAAG,CAAC;QAC3F,OAAO,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;IAC1C,CAAC;IACD,yCAAiB,GAAjB;QACE,IAAI,UAAU,GAAG,IAAI,CAAC,cAAc,CAAC,wBAAwB,CAAC,IAAI,CAAC,oBAAoB,CAAC;QACxF,OAAO,IAAI,CAAC,WAAW,CAAC,GAAG,CAAQ,UAAU,CAAC,CAAC;IACjD,CAAC;IACD,wCAAgB,GAAhB,UAAiB,KAAK;QACpB,IAAI,UAAU,GAAG,IAAI,CAAC,cAAc,CAAC,wBAAwB,CAAC,IAAI,CAAC,eAAe,CAAC,GAAG,GAAG,GAAG,IAAI,CAAC,cAAc,CAAC,sBAAsB,CAAC,KAAK,CAAC;QAC7I,OAAO,IAAI,CAAC,WAAW,CAAC,GAAG,CAAQ,UAAU,CAAC,CAAC;IACjD,CAAC;IACD,wCAAgB,GAAhB,UAAiB,KAAK;QACpB,IAAI,UAAU,GAAG,IAAI,CAAC,cAAc,CAAC,wBAAwB,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;QACrF,OAAO,IAAI,CAAC,WAAW,CAAC,IAAI,CAAM,UAAU,EAAC,KAAK,CAAC,CAAC;IACtD,CAAC;IACD,sCAAc,GAAd,UAAe,KAAK;QAClB,IAAI,UAAU,GAAG,IAAI,CAAC,cAAc,CAAC,wBAAwB,CAAC,IAAI,CAAC,oBAAoB,CAAC,GAAE,GAAG,GAAG,IAAI,CAAC,cAAc,CAAC,sBAAsB,CAAC,KAAK,CAAC,CAAC;QAClJ,OAAO,IAAI,CAAC,WAAW,CAAC,MAAM,CAAM,UAAU,CAAC,CAAC;IAClD,CAAC;;gBApDsB,+DAAU;gBACP,6DAAa;;IAb5B,aAAa;QAHzB,gEAAU,CAAC;YACV,UAAU,EAAE,MAAM;SACnB,CAAC;+EAauB,+DAAU;YACP,6DAAa;OAb5B,aAAa,CAiEzB;IAAD,oBAAC;CAAA;AAjEyB;;;;;;;;;;;;;;;;;;;;ACXiB;AAEM;AACC;AAKlD;IAIE,uBACU,WAAuB,EACvB,cAA6B;QAD7B,gBAAW,GAAX,WAAW,CAAY;QACvB,mBAAc,GAAd,cAAc,CAAe;QAL/B,oBAAe,GAAG,gBAAgB,CAAC;QACnC,yBAAoB,GAAG,qBAAqB,CAAC;QAC7C,uBAAkB,GAAG,mBAAmB,CAAC;IAI7C,CAAC;IAEL,wCAAgB,GAAhB,UAAiB,KAAK;QACpB,IAAI,UAAU,GAAG,IAAI,CAAC,cAAc,CAAC,yBAAyB,CAAC,IAAI,CAAC,eAAe,CAAC,GAAG,GAAG,GAAG,IAAI,CAAC,cAAc,CAAC,sBAAsB,CAAC,KAAK,CAAC;QAC9I,OAAO,IAAI,CAAC,WAAW,CAAC,GAAG,CAAQ,UAAU,CAAC,CAAC;IACjD,CAAC;IAED,yCAAiB,GAAjB;QACE,IAAI,UAAU,GAAG,IAAI,CAAC,cAAc,CAAC,yBAAyB,CAAC,IAAI,CAAC,oBAAoB,CAAC;QACzF,OAAO,IAAI,CAAC,WAAW,CAAC,GAAG,CAAQ,UAAU,CAAC,CAAC;IACjD,CAAC;IAED,6CAAqB,GAArB,UAAsB,KAAK;QACzB,IAAI,UAAU,GAAG,IAAI,CAAC,cAAc,CAAC,yBAAyB,CAAC,IAAI,CAAC,kBAAkB,CAAC,GAAG,GAAG,GAAG,IAAI,CAAC,cAAc,CAAC,sBAAsB,CAAC,KAAK,CAAC;QACjJ,OAAO,IAAI,CAAC,WAAW,CAAC,GAAG,CAAQ,UAAU,CAAC,CAAC;IACjD,CAAC;;gBAjBsB,+DAAU;gBACP,6DAAa;;IAN5B,aAAa;QAHzB,gEAAU,CAAC;YACV,UAAU,EAAE,MAAM;SACnB,CAAC;+EAMuB,+DAAU;YACP,6DAAa;OAN5B,aAAa,CAuBzB;IAAD,oBAAC;CAAA;AAvByB","file":"pages-pages-module.js","sourcesContent":["/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nimport { APP_BOOTSTRAP_LISTENER, PLATFORM_ID, NgModule, Injectable, InjectionToken, Inject, inject, NgZone, Optional, ɵɵdefineInjectable, ɵɵinject } from '@angular/core';\nimport { DOCUMENT, isPlatformBrowser, isPlatformServer } from '@angular/common';\nimport { __assign, __extends } from 'tslib';\nimport { Subject, BehaviorSubject, Observable, merge, asapScheduler, of, fromEvent } from 'rxjs';\nimport { filter, debounceTime, map, switchMap, takeUntil, take, tap } from 'rxjs/operators';\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n/**\n * Find all of the server-generated stylings, if any, and remove them\n * This will be in the form of inline classes and the style block in the\n * head of the DOM\n * @param {?} _document\n * @param {?} platformId\n * @return {?}\n */\nfunction removeStyles(_document, platformId) {\n return (/**\n * @return {?}\n */\n function () {\n if (isPlatformBrowser(platformId)) {\n /** @type {?} */\n var elements = Array.from(_document.querySelectorAll(\"[class*=\" + CLASS_NAME + \"]\"));\n // RegExp constructor should only be used if passing a variable to the constructor.\n // When using static regular expression it is more performant to use reg exp literal.\n // This is also needed to provide Safari 9 compatibility, please see\n // https://stackoverflow.com/questions/37919802 for more discussion.\n /** @type {?} */\n var classRegex_1 = /\\bflex-layout-.+?\\b/g;\n elements.forEach((/**\n * @param {?} el\n * @return {?}\n */\n function (el) {\n el.classList.contains(CLASS_NAME + \"ssr\") && el.parentNode ?\n el.parentNode.removeChild(el) : el.className.replace(classRegex_1, '');\n }));\n }\n });\n}\n/**\n * Provider to remove SSR styles on the browser\n * @type {?}\n */\nvar BROWSER_PROVIDER = {\n provide: (/** @type {?} */ (APP_BOOTSTRAP_LISTENER)),\n useFactory: removeStyles,\n deps: [DOCUMENT, PLATFORM_ID],\n multi: true\n};\n/** @type {?} */\nvar CLASS_NAME = 'flex-layout-';\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n/**\n * *****************************************************************\n * Define module for the MediaQuery API\n * *****************************************************************\n */\nvar CoreModule = /** @class */ (function () {\n function CoreModule() {\n }\n CoreModule.decorators = [\n { type: NgModule, args: [{\n providers: [BROWSER_PROVIDER]\n },] },\n ];\n return CoreModule;\n}());\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n/**\n * Class instances emitted [to observers] for each mql notification\n */\nvar /**\n * Class instances emitted [to observers] for each mql notification\n */\nMediaChange = /** @class */ (function () {\n /**\n * @param matches whether the mediaQuery is currently activated\n * @param mediaQuery e.g. (min-width: 600px) and (max-width: 959px)\n * @param mqAlias e.g. gt-sm, md, gt-lg\n * @param suffix e.g. GtSM, Md, GtLg\n * @param priority the priority of activation for the given breakpoint\n */\n function MediaChange(matches, mediaQuery, mqAlias, suffix, priority) {\n if (matches === void 0) { matches = false; }\n if (mediaQuery === void 0) { mediaQuery = 'all'; }\n if (mqAlias === void 0) { mqAlias = ''; }\n if (suffix === void 0) { suffix = ''; }\n if (priority === void 0) { priority = 0; }\n this.matches = matches;\n this.mediaQuery = mediaQuery;\n this.mqAlias = mqAlias;\n this.suffix = suffix;\n this.priority = priority;\n this.property = '';\n }\n /** Create an exact copy of the MediaChange */\n /**\n * Create an exact copy of the MediaChange\n * @return {?}\n */\n MediaChange.prototype.clone = /**\n * Create an exact copy of the MediaChange\n * @return {?}\n */\n function () {\n return new MediaChange(this.matches, this.mediaQuery, this.mqAlias, this.suffix);\n };\n return MediaChange;\n}());\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n/**\n * Utility to emulate a CSS stylesheet\n *\n * This utility class stores all of the styles for a given HTML element\n * as a readonly `stylesheet` map.\n */\nvar StylesheetMap = /** @class */ (function () {\n function StylesheetMap() {\n this.stylesheet = new Map();\n }\n /**\n * Add an individual style to an HTML element\n */\n /**\n * Add an individual style to an HTML element\n * @param {?} element\n * @param {?} style\n * @param {?} value\n * @return {?}\n */\n StylesheetMap.prototype.addStyleToElement = /**\n * Add an individual style to an HTML element\n * @param {?} element\n * @param {?} style\n * @param {?} value\n * @return {?}\n */\n function (element, style, value) {\n /** @type {?} */\n var stylesheet = this.stylesheet.get(element);\n if (stylesheet) {\n stylesheet.set(style, value);\n }\n else {\n this.stylesheet.set(element, new Map([[style, value]]));\n }\n };\n /**\n * Clear the virtual stylesheet\n */\n /**\n * Clear the virtual stylesheet\n * @return {?}\n */\n StylesheetMap.prototype.clearStyles = /**\n * Clear the virtual stylesheet\n * @return {?}\n */\n function () {\n this.stylesheet.clear();\n };\n /**\n * Retrieve a given style for an HTML element\n */\n /**\n * Retrieve a given style for an HTML element\n * @param {?} el\n * @param {?} styleName\n * @return {?}\n */\n StylesheetMap.prototype.getStyleForElement = /**\n * Retrieve a given style for an HTML element\n * @param {?} el\n * @param {?} styleName\n * @return {?}\n */\n function (el, styleName) {\n /** @type {?} */\n var styles = this.stylesheet.get(el);\n /** @type {?} */\n var value = '';\n if (styles) {\n /** @type {?} */\n var style = styles.get(styleName);\n if (typeof style === 'number' || typeof style === 'string') {\n value = style + '';\n }\n }\n return value;\n };\n StylesheetMap.decorators = [\n { type: Injectable, args: [{ providedIn: 'root' },] },\n ];\n /** @nocollapse */ StylesheetMap.ngInjectableDef = ɵɵdefineInjectable({ factory: function StylesheetMap_Factory() { return new StylesheetMap(); }, token: StylesheetMap, providedIn: \"root\" });\n return StylesheetMap;\n}());\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n/** @type {?} */\nvar DEFAULT_CONFIG = {\n addFlexToParent: true,\n addOrientationBps: false,\n disableDefaultBps: false,\n disableVendorPrefixes: false,\n serverLoaded: false,\n useColumnBasisZero: true,\n printWithBreakpoints: [],\n mediaTriggerAutoRestore: true,\n ssrObserveBreakpoints: [],\n};\n/** @type {?} */\nvar LAYOUT_CONFIG = new InjectionToken('Flex Layout token, config options for the library', {\n providedIn: 'root',\n factory: (/**\n * @return {?}\n */\n function () { return DEFAULT_CONFIG; })\n});\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n/**\n * Token that is provided to tell whether the FlexLayoutServerModule\n * has been included in the bundle\n *\n * NOTE: This can be manually provided to disable styles when using SSR\n * @type {?}\n */\nvar SERVER_TOKEN = new InjectionToken('FlexLayoutServerLoaded', {\n providedIn: 'root',\n factory: (/**\n * @return {?}\n */\n function () { return false; })\n});\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n/** @type {?} */\nvar BREAKPOINT = new InjectionToken('Flex Layout token, collect all breakpoints into one provider', {\n providedIn: 'root',\n factory: (/**\n * @return {?}\n */\n function () { return null; })\n});\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n/**\n * For the specified MediaChange, make sure it contains the breakpoint alias\n * and suffix (if available).\n * @param {?} dest\n * @param {?} source\n * @return {?}\n */\nfunction mergeAlias(dest, source) {\n dest = dest ? dest.clone() : new MediaChange();\n if (source) {\n dest.mqAlias = source.alias;\n dest.mediaQuery = source.mediaQuery;\n dest.suffix = (/** @type {?} */ (source.suffix));\n dest.priority = (/** @type {?} */ (source.priority));\n }\n return dest;\n}\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n * @type {?}\n */\nvar INLINE = 'inline';\n/** @type {?} */\nvar LAYOUT_VALUES = ['row', 'column', 'row-reverse', 'column-reverse'];\n/**\n * Validate the direction|'direction wrap' value and then update the host's inline flexbox styles\n * @param {?} value\n * @return {?}\n */\nfunction buildLayoutCSS(value) {\n var _a = validateValue(value), direction = _a[0], wrap = _a[1], isInline = _a[2];\n return buildCSS(direction, wrap, isInline);\n}\n/**\n * Validate the value to be one of the acceptable value options\n * Use default fallback of 'row'\n * @param {?} value\n * @return {?}\n */\nfunction validateValue(value) {\n value = value ? value.toLowerCase() : '';\n var _a = value.split(' '), direction = _a[0], wrap = _a[1], inline = _a[2];\n // First value must be the `flex-direction`\n if (!LAYOUT_VALUES.find((/**\n * @param {?} x\n * @return {?}\n */\n function (x) { return x === direction; }))) {\n direction = LAYOUT_VALUES[0];\n }\n if (wrap === INLINE) {\n wrap = (inline !== INLINE) ? inline : '';\n inline = INLINE;\n }\n return [direction, validateWrapValue(wrap), !!inline];\n}\n/**\n * Convert layout-wrap='' to expected flex-wrap style\n * @param {?} value\n * @return {?}\n */\nfunction validateWrapValue(value) {\n if (!!value) {\n switch (value.toLowerCase()) {\n case 'reverse':\n case 'wrap-reverse':\n case 'reverse-wrap':\n value = 'wrap-reverse';\n break;\n case 'no':\n case 'none':\n case 'nowrap':\n value = 'nowrap';\n break;\n // All other values fallback to 'wrap'\n default:\n value = 'wrap';\n break;\n }\n }\n return value;\n}\n/**\n * Build the CSS that should be assigned to the element instance\n * BUG:\n * 1) min-height on a column flex container won’t apply to its flex item children in IE 10-11.\n * Use height instead if possible; height : vh;\n *\n * This way any padding or border specified on the child elements are\n * laid out and drawn inside that element's specified width and height.\n * @param {?} direction\n * @param {?=} wrap\n * @param {?=} inline\n * @return {?}\n */\nfunction buildCSS(direction, wrap, inline) {\n if (wrap === void 0) { wrap = null; }\n if (inline === void 0) { inline = false; }\n return {\n 'display': inline ? 'inline-flex' : 'flex',\n 'box-sizing': 'border-box',\n 'flex-direction': direction,\n 'flex-wrap': !!wrap ? wrap : null\n };\n}\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n/**\n * @abstract\n */\nvar /**\n * @abstract\n */\nBaseDirective2 = /** @class */ (function () {\n function BaseDirective2(elementRef, styleBuilder, styler, marshal) {\n this.elementRef = elementRef;\n this.styleBuilder = styleBuilder;\n this.styler = styler;\n this.marshal = marshal;\n this.DIRECTIVE_KEY = '';\n this.inputs = [];\n /**\n * The most recently used styles for the builder\n */\n this.mru = {};\n this.destroySubject = new Subject();\n /**\n * Cache map for style computation\n */\n this.styleCache = new Map();\n }\n Object.defineProperty(BaseDirective2.prototype, \"parentElement\", {\n /** Access to host element's parent DOM node */\n get: /**\n * Access to host element's parent DOM node\n * @protected\n * @return {?}\n */\n function () {\n return this.elementRef.nativeElement.parentElement;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(BaseDirective2.prototype, \"nativeElement\", {\n /** Access to the HTMLElement for the directive */\n get: /**\n * Access to the HTMLElement for the directive\n * @protected\n * @return {?}\n */\n function () {\n return this.elementRef.nativeElement;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(BaseDirective2.prototype, \"activatedValue\", {\n /** Access to the activated value for the directive */\n get: /**\n * Access to the activated value for the directive\n * @return {?}\n */\n function () {\n return this.marshal.getValue(this.nativeElement, this.DIRECTIVE_KEY);\n },\n set: /**\n * @param {?} value\n * @return {?}\n */\n function (value) {\n this.marshal.setValue(this.nativeElement, this.DIRECTIVE_KEY, value, this.marshal.activatedAlias);\n },\n enumerable: true,\n configurable: true\n });\n /** For @Input changes */\n /**\n * For \\@Input changes\n * @param {?} changes\n * @return {?}\n */\n BaseDirective2.prototype.ngOnChanges = /**\n * For \\@Input changes\n * @param {?} changes\n * @return {?}\n */\n function (changes) {\n var _this = this;\n Object.keys(changes).forEach((/**\n * @param {?} key\n * @return {?}\n */\n function (key) {\n if (_this.inputs.indexOf(key) !== -1) {\n /** @type {?} */\n var bp = key.split('.').slice(1).join('.');\n /** @type {?} */\n var val = changes[key].currentValue;\n _this.setValue(val, bp);\n }\n }));\n };\n /**\n * @return {?}\n */\n BaseDirective2.prototype.ngOnDestroy = /**\n * @return {?}\n */\n function () {\n this.destroySubject.next();\n this.destroySubject.complete();\n this.marshal.releaseElement(this.nativeElement);\n };\n /** Register with central marshaller service */\n /**\n * Register with central marshaller service\n * @protected\n * @param {?=} extraTriggers\n * @return {?}\n */\n BaseDirective2.prototype.init = /**\n * Register with central marshaller service\n * @protected\n * @param {?=} extraTriggers\n * @return {?}\n */\n function (extraTriggers) {\n if (extraTriggers === void 0) { extraTriggers = []; }\n this.marshal.init(this.elementRef.nativeElement, this.DIRECTIVE_KEY, this.updateWithValue.bind(this), this.clearStyles.bind(this), extraTriggers);\n };\n /** Add styles to the element using predefined style builder */\n /**\n * Add styles to the element using predefined style builder\n * @protected\n * @param {?} input\n * @param {?=} parent\n * @return {?}\n */\n BaseDirective2.prototype.addStyles = /**\n * Add styles to the element using predefined style builder\n * @protected\n * @param {?} input\n * @param {?=} parent\n * @return {?}\n */\n function (input, parent) {\n /** @type {?} */\n var builder = this.styleBuilder;\n /** @type {?} */\n var useCache = builder.shouldCache;\n /** @type {?} */\n var genStyles = this.styleCache.get(input);\n if (!genStyles || !useCache) {\n genStyles = builder.buildStyles(input, parent);\n if (useCache) {\n this.styleCache.set(input, genStyles);\n }\n }\n this.mru = __assign({}, genStyles);\n this.applyStyleToElement(genStyles);\n builder.sideEffect(input, genStyles, parent);\n };\n /** Remove generated styles from an element using predefined style builder */\n /**\n * Remove generated styles from an element using predefined style builder\n * @protected\n * @return {?}\n */\n BaseDirective2.prototype.clearStyles = /**\n * Remove generated styles from an element using predefined style builder\n * @protected\n * @return {?}\n */\n function () {\n var _this = this;\n Object.keys(this.mru).forEach((/**\n * @param {?} k\n * @return {?}\n */\n function (k) {\n _this.mru[k] = '';\n }));\n this.applyStyleToElement(this.mru);\n this.mru = {};\n };\n /** Force trigger style updates on DOM element */\n /**\n * Force trigger style updates on DOM element\n * @protected\n * @return {?}\n */\n BaseDirective2.prototype.triggerUpdate = /**\n * Force trigger style updates on DOM element\n * @protected\n * @return {?}\n */\n function () {\n this.marshal.triggerUpdate(this.nativeElement, this.DIRECTIVE_KEY);\n };\n /**\n * Determine the DOM element's Flexbox flow (flex-direction).\n *\n * Check inline style first then check computed (stylesheet) style.\n * And optionally add the flow value to element's inline style.\n */\n /**\n * Determine the DOM element's Flexbox flow (flex-direction).\n *\n * Check inline style first then check computed (stylesheet) style.\n * And optionally add the flow value to element's inline style.\n * @protected\n * @param {?} target\n * @param {?=} addIfMissing\n * @return {?}\n */\n BaseDirective2.prototype.getFlexFlowDirection = /**\n * Determine the DOM element's Flexbox flow (flex-direction).\n *\n * Check inline style first then check computed (stylesheet) style.\n * And optionally add the flow value to element's inline style.\n * @protected\n * @param {?} target\n * @param {?=} addIfMissing\n * @return {?}\n */\n function (target, addIfMissing) {\n if (addIfMissing === void 0) { addIfMissing = false; }\n if (target) {\n var _a = this.styler.getFlowDirection(target), value = _a[0], hasInlineValue = _a[1];\n if (!hasInlineValue && addIfMissing) {\n /** @type {?} */\n var style = buildLayoutCSS(value);\n /** @type {?} */\n var elements = [target];\n this.styler.applyStyleToElements(style, elements);\n }\n return value.trim();\n }\n return 'row';\n };\n /** Applies styles given via string pair or object map to the directive element */\n /**\n * Applies styles given via string pair or object map to the directive element\n * @protected\n * @param {?} style\n * @param {?=} value\n * @param {?=} element\n * @return {?}\n */\n BaseDirective2.prototype.applyStyleToElement = /**\n * Applies styles given via string pair or object map to the directive element\n * @protected\n * @param {?} style\n * @param {?=} value\n * @param {?=} element\n * @return {?}\n */\n function (style, value, element) {\n if (element === void 0) { element = this.nativeElement; }\n this.styler.applyStyleToElement(element, style, value);\n };\n /**\n * @protected\n * @param {?} val\n * @param {?} bp\n * @return {?}\n */\n BaseDirective2.prototype.setValue = /**\n * @protected\n * @param {?} val\n * @param {?} bp\n * @return {?}\n */\n function (val, bp) {\n this.marshal.setValue(this.nativeElement, this.DIRECTIVE_KEY, val, bp);\n };\n /**\n * @protected\n * @param {?} input\n * @return {?}\n */\n BaseDirective2.prototype.updateWithValue = /**\n * @protected\n * @param {?} input\n * @return {?}\n */\n function (input) {\n this.addStyles(input);\n };\n return BaseDirective2;\n}());\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n/**\n * NOTE: Smaller ranges have HIGHER priority since the match is more specific\n * @type {?}\n */\nvar DEFAULT_BREAKPOINTS = [\n {\n alias: 'xs',\n mediaQuery: 'screen and (min-width: 0px) and (max-width: 599.9px)',\n priority: 1000,\n },\n {\n alias: 'sm',\n mediaQuery: 'screen and (min-width: 600px) and (max-width: 959.9px)',\n priority: 900,\n },\n {\n alias: 'md',\n mediaQuery: 'screen and (min-width: 960px) and (max-width: 1279.9px)',\n priority: 800,\n },\n {\n alias: 'lg',\n mediaQuery: 'screen and (min-width: 1280px) and (max-width: 1919.9px)',\n priority: 700,\n },\n {\n alias: 'xl',\n mediaQuery: 'screen and (min-width: 1920px) and (max-width: 4999.9px)',\n priority: 600,\n },\n {\n alias: 'lt-sm',\n overlapping: true,\n mediaQuery: 'screen and (max-width: 599.9px)',\n priority: 950,\n },\n {\n alias: 'lt-md',\n overlapping: true,\n mediaQuery: 'screen and (max-width: 959.9px)',\n priority: 850,\n },\n {\n alias: 'lt-lg',\n overlapping: true,\n mediaQuery: 'screen and (max-width: 1279.9px)',\n priority: 750,\n },\n {\n alias: 'lt-xl',\n overlapping: true,\n priority: 650,\n mediaQuery: 'screen and (max-width: 1919.9px)',\n },\n {\n alias: 'gt-xs',\n overlapping: true,\n mediaQuery: 'screen and (min-width: 600px)',\n priority: -950,\n },\n {\n alias: 'gt-sm',\n overlapping: true,\n mediaQuery: 'screen and (min-width: 960px)',\n priority: -850,\n }, {\n alias: 'gt-md',\n overlapping: true,\n mediaQuery: 'screen and (min-width: 1280px)',\n priority: -750,\n },\n {\n alias: 'gt-lg',\n overlapping: true,\n mediaQuery: 'screen and (min-width: 1920px)',\n priority: -650,\n }\n];\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n\n/* tslint:disable */\n/** @type {?} */\nvar HANDSET_PORTRAIT = '(orientation: portrait) and (max-width: 599.9px)';\n/** @type {?} */\nvar HANDSET_LANDSCAPE = '(orientation: landscape) and (max-width: 959.9px)';\n/** @type {?} */\nvar TABLET_PORTRAIT = '(orientation: portrait) and (min-width: 600px) and (max-width: 839.9px)';\n/** @type {?} */\nvar TABLET_LANDSCAPE = '(orientation: landscape) and (min-width: 960px) and (max-width: 1279.9px)';\n/** @type {?} */\nvar WEB_PORTRAIT = '(orientation: portrait) and (min-width: 840px)';\n/** @type {?} */\nvar WEB_LANDSCAPE = '(orientation: landscape) and (min-width: 1280px)';\n/** @type {?} */\nvar ScreenTypes = {\n 'HANDSET': HANDSET_PORTRAIT + \", \" + HANDSET_LANDSCAPE,\n 'TABLET': TABLET_PORTRAIT + \" , \" + TABLET_LANDSCAPE,\n 'WEB': WEB_PORTRAIT + \", \" + WEB_LANDSCAPE + \" \",\n 'HANDSET_PORTRAIT': \"\" + HANDSET_PORTRAIT,\n 'TABLET_PORTRAIT': TABLET_PORTRAIT + \" \",\n 'WEB_PORTRAIT': \"\" + WEB_PORTRAIT,\n 'HANDSET_LANDSCAPE': HANDSET_LANDSCAPE + \"]\",\n 'TABLET_LANDSCAPE': \"\" + TABLET_LANDSCAPE,\n 'WEB_LANDSCAPE': \"\" + WEB_LANDSCAPE\n};\n/**\n * Extended Breakpoints for handset/tablets with landscape or portrait orientations\n * @type {?}\n */\nvar ORIENTATION_BREAKPOINTS = [\n { 'alias': 'handset', priority: 2000, 'mediaQuery': ScreenTypes.HANDSET },\n { 'alias': 'handset.landscape', priority: 2000, 'mediaQuery': ScreenTypes.HANDSET_LANDSCAPE },\n { 'alias': 'handset.portrait', priority: 2000, 'mediaQuery': ScreenTypes.HANDSET_PORTRAIT },\n { 'alias': 'tablet', priority: 2100, 'mediaQuery': ScreenTypes.TABLET },\n { 'alias': 'tablet.landscape', priority: 2100, 'mediaQuery': ScreenTypes.TABLET },\n { 'alias': 'tablet.portrait', priority: 2100, 'mediaQuery': ScreenTypes.TABLET_PORTRAIT },\n { 'alias': 'web', priority: 2200, 'mediaQuery': ScreenTypes.WEB, overlapping: true },\n { 'alias': 'web.landscape', priority: 2200, 'mediaQuery': ScreenTypes.WEB_LANDSCAPE, overlapping: true },\n { 'alias': 'web.portrait', priority: 2200, 'mediaQuery': ScreenTypes.WEB_PORTRAIT, overlapping: true }\n];\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n\n/**\n * Extends an object with the *enumerable* and *own* properties of one or more source objects,\n * similar to Object.assign.\n *\n * @param {?} dest The object which will have properties copied to it.\n * @param {...?} sources The source objects from which properties will be copied.\n * @return {?}\n */\nfunction extendObject(dest) {\n var sources = [];\n for (var _i = 1; _i < arguments.length; _i++) {\n sources[_i - 1] = arguments[_i];\n }\n if (dest == null) {\n throw TypeError('Cannot convert undefined or null to object');\n }\n for (var _a = 0, sources_1 = sources; _a < sources_1.length; _a++) {\n var source = sources_1[_a];\n if (source != null) {\n for (var key in source) {\n if (source.hasOwnProperty(key)) {\n dest[key] = source[key];\n }\n }\n }\n }\n return dest;\n}\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n/** @type {?} */\nvar ALIAS_DELIMITERS = /(\\.|-|_)/g;\n/**\n * @param {?} part\n * @return {?}\n */\nfunction firstUpperCase(part) {\n /** @type {?} */\n var first = part.length > 0 ? part.charAt(0) : '';\n /** @type {?} */\n var remainder = (part.length > 1) ? part.slice(1) : '';\n return first.toUpperCase() + remainder;\n}\n/**\n * Converts snake-case to SnakeCase.\n * @param {?} name Text to UpperCamelCase\n * @return {?}\n */\nfunction camelCase(name) {\n return name\n .replace(ALIAS_DELIMITERS, '|')\n .split('|')\n .map(firstUpperCase)\n .join('');\n}\n/**\n * For each breakpoint, ensure that a Suffix is defined;\n * fallback to UpperCamelCase the unique Alias value\n * @param {?} list\n * @return {?}\n */\nfunction validateSuffixes(list) {\n list.forEach((/**\n * @param {?} bp\n * @return {?}\n */\n function (bp) {\n if (!bp.suffix) {\n bp.suffix = camelCase(bp.alias); // create Suffix value based on alias\n bp.overlapping = !!bp.overlapping; // ensure default value\n }\n }));\n return list;\n}\n/**\n * Merge a custom breakpoint list with the default list based on unique alias values\n * - Items are added if the alias is not in the default list\n * - Items are merged with the custom override if the alias exists in the default list\n * @param {?} defaults\n * @param {?=} custom\n * @return {?}\n */\nfunction mergeByAlias(defaults, custom) {\n if (custom === void 0) { custom = []; }\n /** @type {?} */\n var dict = {};\n defaults.forEach((/**\n * @param {?} bp\n * @return {?}\n */\n function (bp) {\n dict[bp.alias] = bp;\n }));\n // Merge custom breakpoints\n custom.forEach((/**\n * @param {?} bp\n * @return {?}\n */\n function (bp) {\n if (dict[bp.alias]) {\n extendObject(dict[bp.alias], bp);\n }\n else {\n dict[bp.alias] = bp;\n }\n }));\n return validateSuffixes(Object.keys(dict).map((/**\n * @param {?} k\n * @return {?}\n */\n function (k) { return dict[k]; })));\n}\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n/**\n * Injection token unique to the flex-layout library.\n * Use this token when build a custom provider (see below).\n * @type {?}\n */\nvar BREAKPOINTS = new InjectionToken('Token (@angular/flex-layout) Breakpoints', {\n providedIn: 'root',\n factory: (/**\n * @return {?}\n */\n function () {\n /** @type {?} */\n var breakpoints = inject(BREAKPOINT);\n /** @type {?} */\n var layoutConfig = inject(LAYOUT_CONFIG);\n /** @type {?} */\n var bpFlattenArray = [].concat.apply([], (breakpoints || [])\n .map((/**\n * @param {?} v\n * @return {?}\n */\n function (v) { return Array.isArray(v) ? v : [v]; })));\n /** @type {?} */\n var builtIns = (layoutConfig.disableDefaultBps ? [] : DEFAULT_BREAKPOINTS)\n .concat(layoutConfig.addOrientationBps ? ORIENTATION_BREAKPOINTS : []);\n return mergeByAlias(builtIns, bpFlattenArray);\n })\n});\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n/**\n * HOF to sort the breakpoints by descending priority\n * @template T\n * @param {?} a\n * @param {?} b\n * @return {?}\n */\nfunction sortDescendingPriority(a, b) {\n /** @type {?} */\n var priorityA = a ? a.priority || 0 : 0;\n /** @type {?} */\n var priorityB = b ? b.priority || 0 : 0;\n return priorityB - priorityA;\n}\n/**\n * HOF to sort the breakpoints by ascending priority\n * @template T\n * @param {?} a\n * @param {?} b\n * @return {?}\n */\nfunction sortAscendingPriority(a, b) {\n /** @type {?} */\n var pA = a.priority || 0;\n /** @type {?} */\n var pB = b.priority || 0;\n return pA - pB;\n}\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n/**\n * Registry of 1..n MediaQuery breakpoint ranges\n * This is published as a provider and may be overridden from custom, application-specific ranges\n *\n */\nvar BreakPointRegistry = /** @class */ (function () {\n function BreakPointRegistry(list) {\n /**\n * Memoized BreakPoint Lookups\n */\n this.findByMap = new Map();\n this.items = list.slice().sort(sortAscendingPriority);\n }\n /**\n * Search breakpoints by alias (e.g. gt-xs)\n */\n /**\n * Search breakpoints by alias (e.g. gt-xs)\n * @param {?} alias\n * @return {?}\n */\n BreakPointRegistry.prototype.findByAlias = /**\n * Search breakpoints by alias (e.g. gt-xs)\n * @param {?} alias\n * @return {?}\n */\n function (alias) {\n return !alias ? null : this.findWithPredicate(alias, (/**\n * @param {?} bp\n * @return {?}\n */\n function (bp) { return bp.alias == alias; }));\n };\n /**\n * @param {?} query\n * @return {?}\n */\n BreakPointRegistry.prototype.findByQuery = /**\n * @param {?} query\n * @return {?}\n */\n function (query) {\n return this.findWithPredicate(query, (/**\n * @param {?} bp\n * @return {?}\n */\n function (bp) { return bp.mediaQuery == query; }));\n };\n Object.defineProperty(BreakPointRegistry.prototype, \"overlappings\", {\n /**\n * Get all the breakpoints whose ranges could overlapping `normal` ranges;\n * e.g. gt-sm overlaps md, lg, and xl\n */\n get: /**\n * Get all the breakpoints whose ranges could overlapping `normal` ranges;\n * e.g. gt-sm overlaps md, lg, and xl\n * @return {?}\n */\n function () {\n return this.items.filter((/**\n * @param {?} it\n * @return {?}\n */\n function (it) { return it.overlapping == true; }));\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(BreakPointRegistry.prototype, \"aliases\", {\n /**\n * Get list of all registered (non-empty) breakpoint aliases\n */\n get: /**\n * Get list of all registered (non-empty) breakpoint aliases\n * @return {?}\n */\n function () {\n return this.items.map((/**\n * @param {?} it\n * @return {?}\n */\n function (it) { return it.alias; }));\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(BreakPointRegistry.prototype, \"suffixes\", {\n /**\n * Aliases are mapped to properties using suffixes\n * e.g. 'gt-sm' for property 'layout' uses suffix 'GtSm'\n * for property layoutGtSM.\n */\n get: /**\n * Aliases are mapped to properties using suffixes\n * e.g. 'gt-sm' for property 'layout' uses suffix 'GtSm'\n * for property layoutGtSM.\n * @return {?}\n */\n function () {\n return this.items.map((/**\n * @param {?} it\n * @return {?}\n */\n function (it) { return !!it.suffix ? it.suffix : ''; }));\n },\n enumerable: true,\n configurable: true\n });\n /**\n * Memoized lookup using custom predicate function\n */\n /**\n * Memoized lookup using custom predicate function\n * @private\n * @param {?} key\n * @param {?} searchFn\n * @return {?}\n */\n BreakPointRegistry.prototype.findWithPredicate = /**\n * Memoized lookup using custom predicate function\n * @private\n * @param {?} key\n * @param {?} searchFn\n * @return {?}\n */\n function (key, searchFn) {\n /** @type {?} */\n var response = this.findByMap.get(key);\n if (!response) {\n response = this.items.find(searchFn) || null;\n this.findByMap.set(key, response);\n }\n return response || null;\n };\n BreakPointRegistry.decorators = [\n { type: Injectable, args: [{ providedIn: 'root' },] },\n ];\n /** @nocollapse */\n BreakPointRegistry.ctorParameters = function () { return [\n { type: Array, decorators: [{ type: Inject, args: [BREAKPOINTS,] }] }\n ]; };\n /** @nocollapse */ BreakPointRegistry.ngInjectableDef = ɵɵdefineInjectable({ factory: function BreakPointRegistry_Factory() { return new BreakPointRegistry(ɵɵinject(BREAKPOINTS)); }, token: BreakPointRegistry, providedIn: \"root\" });\n return BreakPointRegistry;\n}());\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n/**\n * MediaMonitor configures listeners to mediaQuery changes and publishes an Observable facade to\n * convert mediaQuery change callbacks to subscriber notifications. These notifications will be\n * performed within the ng Zone to trigger change detections and component updates.\n *\n * NOTE: both mediaQuery activations and de-activations are announced in notifications\n */\nvar MatchMedia = /** @class */ (function () {\n function MatchMedia(_zone, _platformId, _document) {\n this._zone = _zone;\n this._platformId = _platformId;\n this._document = _document;\n /**\n * Initialize source with 'all' so all non-responsive APIs trigger style updates\n */\n this.source = new BehaviorSubject(new MediaChange(true));\n this.registry = new Map();\n this._observable$ = this.source.asObservable();\n }\n Object.defineProperty(MatchMedia.prototype, \"activations\", {\n /**\n * Publish list of all current activations\n */\n get: /**\n * Publish list of all current activations\n * @return {?}\n */\n function () {\n /** @type {?} */\n var results = [];\n this.registry.forEach((/**\n * @param {?} mql\n * @param {?} key\n * @return {?}\n */\n function (mql, key) {\n if (mql.matches) {\n results.push(key);\n }\n }));\n return results;\n },\n enumerable: true,\n configurable: true\n });\n /**\n * For the specified mediaQuery?\n */\n /**\n * For the specified mediaQuery?\n * @param {?} mediaQuery\n * @return {?}\n */\n MatchMedia.prototype.isActive = /**\n * For the specified mediaQuery?\n * @param {?} mediaQuery\n * @return {?}\n */\n function (mediaQuery) {\n /** @type {?} */\n var mql = this.registry.get(mediaQuery);\n return !!mql ? mql.matches : false;\n };\n /**\n * External observers can watch for all (or a specific) mql changes.\n * Typically used by the MediaQueryAdaptor; optionally available to components\n * who wish to use the MediaMonitor as mediaMonitor$ observable service.\n *\n * Use deferred registration process to register breakpoints only on subscription\n * This logic also enforces logic to register all mediaQueries BEFORE notify\n * subscribers of notifications.\n */\n /**\n * External observers can watch for all (or a specific) mql changes.\n * Typically used by the MediaQueryAdaptor; optionally available to components\n * who wish to use the MediaMonitor as mediaMonitor$ observable service.\n *\n * Use deferred registration process to register breakpoints only on subscription\n * This logic also enforces logic to register all mediaQueries BEFORE notify\n * subscribers of notifications.\n * @param {?=} mqList\n * @param {?=} filterOthers\n * @return {?}\n */\n MatchMedia.prototype.observe = /**\n * External observers can watch for all (or a specific) mql changes.\n * Typically used by the MediaQueryAdaptor; optionally available to components\n * who wish to use the MediaMonitor as mediaMonitor$ observable service.\n *\n * Use deferred registration process to register breakpoints only on subscription\n * This logic also enforces logic to register all mediaQueries BEFORE notify\n * subscribers of notifications.\n * @param {?=} mqList\n * @param {?=} filterOthers\n * @return {?}\n */\n function (mqList, filterOthers) {\n var _this = this;\n if (filterOthers === void 0) { filterOthers = false; }\n if (mqList && mqList.length) {\n /** @type {?} */\n var matchMedia$ = this._observable$.pipe(filter((/**\n * @param {?} change\n * @return {?}\n */\n function (change) {\n return !filterOthers ? true : (mqList.indexOf(change.mediaQuery) > -1);\n })));\n /** @type {?} */\n var registration$ = new Observable((/**\n * @param {?} observer\n * @return {?}\n */\n function (observer) {\n // tslint:disable-line:max-line-length\n /** @type {?} */\n var matches = _this.registerQuery(mqList);\n if (matches.length) {\n /** @type {?} */\n var lastChange = (/** @type {?} */ (matches.pop()));\n matches.forEach((/**\n * @param {?} e\n * @return {?}\n */\n function (e) {\n observer.next(e);\n }));\n _this.source.next(lastChange); // last match is cached\n }\n observer.complete();\n }));\n return merge(registration$, matchMedia$);\n }\n return this._observable$;\n };\n /**\n * Based on the BreakPointRegistry provider, register internal listeners for each unique\n * mediaQuery. Each listener emits specific MediaChange data to observers\n */\n /**\n * Based on the BreakPointRegistry provider, register internal listeners for each unique\n * mediaQuery. Each listener emits specific MediaChange data to observers\n * @param {?} mediaQuery\n * @return {?}\n */\n MatchMedia.prototype.registerQuery = /**\n * Based on the BreakPointRegistry provider, register internal listeners for each unique\n * mediaQuery. Each listener emits specific MediaChange data to observers\n * @param {?} mediaQuery\n * @return {?}\n */\n function (mediaQuery) {\n var _this = this;\n /** @type {?} */\n var list = Array.isArray(mediaQuery) ? mediaQuery : [mediaQuery];\n /** @type {?} */\n var matches = [];\n buildQueryCss(list, this._document);\n list.forEach((/**\n * @param {?} query\n * @return {?}\n */\n function (query) {\n /** @type {?} */\n var onMQLEvent = (/**\n * @param {?} e\n * @return {?}\n */\n function (e) {\n _this._zone.run((/**\n * @return {?}\n */\n function () { return _this.source.next(new MediaChange(e.matches, query)); }));\n });\n /** @type {?} */\n var mql = _this.registry.get(query);\n if (!mql) {\n mql = _this.buildMQL(query);\n mql.addListener(onMQLEvent);\n _this.registry.set(query, mql);\n }\n if (mql.matches) {\n matches.push(new MediaChange(true, query));\n }\n }));\n return matches;\n };\n /**\n * Call window.matchMedia() to build a MediaQueryList; which\n * supports 0..n listeners for activation/deactivation\n */\n /**\n * Call window.matchMedia() to build a MediaQueryList; which\n * supports 0..n listeners for activation/deactivation\n * @protected\n * @param {?} query\n * @return {?}\n */\n MatchMedia.prototype.buildMQL = /**\n * Call window.matchMedia() to build a MediaQueryList; which\n * supports 0..n listeners for activation/deactivation\n * @protected\n * @param {?} query\n * @return {?}\n */\n function (query) {\n return constructMql(query, isPlatformBrowser(this._platformId));\n };\n MatchMedia.decorators = [\n { type: Injectable, args: [{ providedIn: 'root' },] },\n ];\n /** @nocollapse */\n MatchMedia.ctorParameters = function () { return [\n { type: NgZone },\n { type: Object, decorators: [{ type: Inject, args: [PLATFORM_ID,] }] },\n { type: undefined, decorators: [{ type: Inject, args: [DOCUMENT,] }] }\n ]; };\n /** @nocollapse */ MatchMedia.ngInjectableDef = ɵɵdefineInjectable({ factory: function MatchMedia_Factory() { return new MatchMedia(ɵɵinject(NgZone), ɵɵinject(PLATFORM_ID), ɵɵinject(DOCUMENT)); }, token: MatchMedia, providedIn: \"root\" });\n return MatchMedia;\n}());\n/**\n * Private global registry for all dynamically-created, injected style tags\n * @see prepare(query)\n * @type {?}\n */\nvar ALL_STYLES = {};\n/**\n * For Webkit engines that only trigger the MediaQueryList Listener\n * when there is at least one CSS selector for the respective media query.\n *\n * @param {?} mediaQueries\n * @param {?} _document\n * @return {?}\n */\nfunction buildQueryCss(mediaQueries, _document) {\n /** @type {?} */\n var list = mediaQueries.filter((/**\n * @param {?} it\n * @return {?}\n */\n function (it) { return !ALL_STYLES[it]; }));\n if (list.length > 0) {\n /** @type {?} */\n var query = list.join(', ');\n try {\n /** @type {?} */\n var styleEl_1 = _document.createElement('style');\n styleEl_1.setAttribute('type', 'text/css');\n if (!((/** @type {?} */ (styleEl_1))).styleSheet) {\n /** @type {?} */\n var cssText = \"\\n/*\\n @angular/flex-layout - workaround for possible browser quirk with mediaQuery listeners\\n see http://bit.ly/2sd4HMP\\n*/\\n@media \" + query + \" {.fx-query-test{ }}\\n\";\n styleEl_1.appendChild(_document.createTextNode(cssText));\n }\n (/** @type {?} */ (_document.head)).appendChild(styleEl_1);\n // Store in private global registry\n list.forEach((/**\n * @param {?} mq\n * @return {?}\n */\n function (mq) { return ALL_STYLES[mq] = styleEl_1; }));\n }\n catch (e) {\n console.error(e);\n }\n }\n}\n/**\n * @param {?} query\n * @param {?} isBrowser\n * @return {?}\n */\nfunction constructMql(query, isBrowser) {\n /** @type {?} */\n var canListen = isBrowser && !!((/** @type {?} */ (window))).matchMedia('all').addListener;\n return canListen ? ((/** @type {?} */ (window))).matchMedia(query) : (/** @type {?} */ ((/** @type {?} */ ({\n matches: query === 'all' || query === '',\n media: query,\n addListener: (/**\n * @return {?}\n */\n function () {\n }),\n removeListener: (/**\n * @return {?}\n */\n function () {\n })\n }))));\n}\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n/**\n * MockMatchMedia mocks calls to the Window API matchMedia with a build of a simulated\n * MockMediaQueryListener. Methods are available to simulate an activation of a mediaQuery\n * range and to clearAll mediaQuery listeners.\n */\nvar MockMatchMedia = /** @class */ (function (_super) {\n __extends(MockMatchMedia, _super);\n function MockMatchMedia(_zone, _platformId, _document, _breakpoints) {\n var _this = _super.call(this, _zone, _platformId, _document) || this;\n _this._breakpoints = _breakpoints;\n _this.autoRegisterQueries = true; // Used for testing BreakPoint registrations\n // Used for testing BreakPoint registrations\n _this.useOverlaps = false; // Allow fallback to overlapping mediaQueries\n return _this;\n }\n /** Easy method to clear all listeners for all mediaQueries */\n /**\n * Easy method to clear all listeners for all mediaQueries\n * @return {?}\n */\n MockMatchMedia.prototype.clearAll = /**\n * Easy method to clear all listeners for all mediaQueries\n * @return {?}\n */\n function () {\n this.registry.forEach((/**\n * @param {?} mql\n * @return {?}\n */\n function (mql) {\n ((/** @type {?} */ (mql))).destroy();\n }));\n this.registry.clear();\n this.useOverlaps = false;\n };\n /** Feature to support manual, simulated activation of a mediaQuery. */\n /**\n * Feature to support manual, simulated activation of a mediaQuery.\n * @param {?} mediaQuery\n * @param {?=} useOverlaps\n * @return {?}\n */\n MockMatchMedia.prototype.activate = /**\n * Feature to support manual, simulated activation of a mediaQuery.\n * @param {?} mediaQuery\n * @param {?=} useOverlaps\n * @return {?}\n */\n function (mediaQuery, useOverlaps) {\n if (useOverlaps === void 0) { useOverlaps = false; }\n useOverlaps = useOverlaps || this.useOverlaps;\n mediaQuery = this._validateQuery(mediaQuery);\n if (useOverlaps || !this.isActive(mediaQuery)) {\n this._deactivateAll();\n this._registerMediaQuery(mediaQuery);\n this._activateWithOverlaps(mediaQuery, useOverlaps);\n }\n return this.hasActivated;\n };\n /** Converts an optional mediaQuery alias to a specific, valid mediaQuery */\n /**\n * Converts an optional mediaQuery alias to a specific, valid mediaQuery\n * @param {?} queryOrAlias\n * @return {?}\n */\n MockMatchMedia.prototype._validateQuery = /**\n * Converts an optional mediaQuery alias to a specific, valid mediaQuery\n * @param {?} queryOrAlias\n * @return {?}\n */\n function (queryOrAlias) {\n /** @type {?} */\n var bp = this._breakpoints.findByAlias(queryOrAlias);\n return (bp && bp.mediaQuery) || queryOrAlias;\n };\n /**\n * Manually onMediaChange any overlapping mediaQueries to simulate\n * similar functionality in the window.matchMedia()\n */\n /**\n * Manually onMediaChange any overlapping mediaQueries to simulate\n * similar functionality in the window.matchMedia()\n * @private\n * @param {?} mediaQuery\n * @param {?} useOverlaps\n * @return {?}\n */\n MockMatchMedia.prototype._activateWithOverlaps = /**\n * Manually onMediaChange any overlapping mediaQueries to simulate\n * similar functionality in the window.matchMedia()\n * @private\n * @param {?} mediaQuery\n * @param {?} useOverlaps\n * @return {?}\n */\n function (mediaQuery, useOverlaps) {\n if (useOverlaps) {\n /** @type {?} */\n var bp = this._breakpoints.findByQuery(mediaQuery);\n /** @type {?} */\n var alias = bp ? bp.alias : 'unknown';\n // Simulate activation of overlapping lt- ranges\n switch (alias) {\n case 'lg':\n this._activateByAlias('lt-xl');\n break;\n case 'md':\n this._activateByAlias('lt-xl, lt-lg');\n break;\n case 'sm':\n this._activateByAlias('lt-xl, lt-lg, lt-md');\n break;\n case 'xs':\n this._activateByAlias('lt-xl, lt-lg, lt-md, lt-sm');\n break;\n }\n // Simulate activation of overlapping gt- mediaQuery ranges\n switch (alias) {\n case 'xl':\n this._activateByAlias('gt-lg, gt-md, gt-sm, gt-xs');\n break;\n case 'lg':\n this._activateByAlias('gt-md, gt-sm, gt-xs');\n break;\n case 'md':\n this._activateByAlias('gt-sm, gt-xs');\n break;\n case 'sm':\n this._activateByAlias('gt-xs');\n break;\n }\n }\n // Activate last since the responsiveActivation is watching *this* mediaQuery\n return this._activateByQuery(mediaQuery);\n };\n /**\n *\n */\n /**\n *\n * @private\n * @param {?} aliases\n * @return {?}\n */\n MockMatchMedia.prototype._activateByAlias = /**\n *\n * @private\n * @param {?} aliases\n * @return {?}\n */\n function (aliases) {\n var _this = this;\n /** @type {?} */\n var activate = (/**\n * @param {?} alias\n * @return {?}\n */\n function (alias) {\n /** @type {?} */\n var bp = _this._breakpoints.findByAlias(alias);\n _this._activateByQuery(bp ? bp.mediaQuery : alias);\n });\n aliases.split(',').forEach((/**\n * @param {?} alias\n * @return {?}\n */\n function (alias) { return activate(alias.trim()); }));\n };\n /**\n *\n */\n /**\n *\n * @private\n * @param {?} mediaQuery\n * @return {?}\n */\n MockMatchMedia.prototype._activateByQuery = /**\n *\n * @private\n * @param {?} mediaQuery\n * @return {?}\n */\n function (mediaQuery) {\n /** @type {?} */\n var mql = (/** @type {?} */ (this.registry.get(mediaQuery)));\n if (mql && !this.isActive(mediaQuery)) {\n this.registry.set(mediaQuery, mql.activate());\n }\n return this.hasActivated;\n };\n /** Deactivate all current MQLs and reset the buffer */\n /**\n * Deactivate all current MQLs and reset the buffer\n * @private\n * @template THIS\n * @this {THIS}\n * @return {THIS}\n */\n MockMatchMedia.prototype._deactivateAll = /**\n * Deactivate all current MQLs and reset the buffer\n * @private\n * @template THIS\n * @this {THIS}\n * @return {THIS}\n */\n function () {\n (/** @type {?} */ (this)).registry.forEach((/**\n * @param {?} it\n * @return {?}\n */\n function (it) {\n ((/** @type {?} */ (it))).deactivate();\n }));\n return (/** @type {?} */ (this));\n };\n /** Insure the mediaQuery is registered with MatchMedia */\n /**\n * Insure the mediaQuery is registered with MatchMedia\n * @private\n * @param {?} mediaQuery\n * @return {?}\n */\n MockMatchMedia.prototype._registerMediaQuery = /**\n * Insure the mediaQuery is registered with MatchMedia\n * @private\n * @param {?} mediaQuery\n * @return {?}\n */\n function (mediaQuery) {\n if (!this.registry.has(mediaQuery) && this.autoRegisterQueries) {\n this.registerQuery(mediaQuery);\n }\n };\n /**\n * Call window.matchMedia() to build a MediaQueryList; which\n * supports 0..n listeners for activation/deactivation\n */\n /**\n * Call window.matchMedia() to build a MediaQueryList; which\n * supports 0..n listeners for activation/deactivation\n * @protected\n * @param {?} query\n * @return {?}\n */\n MockMatchMedia.prototype.buildMQL = /**\n * Call window.matchMedia() to build a MediaQueryList; which\n * supports 0..n listeners for activation/deactivation\n * @protected\n * @param {?} query\n * @return {?}\n */\n function (query) {\n return new MockMediaQueryList(query);\n };\n Object.defineProperty(MockMatchMedia.prototype, \"hasActivated\", {\n get: /**\n * @protected\n * @return {?}\n */\n function () {\n return this.activations.length > 0;\n },\n enumerable: true,\n configurable: true\n });\n MockMatchMedia.decorators = [\n { type: Injectable },\n ];\n /** @nocollapse */\n MockMatchMedia.ctorParameters = function () { return [\n { type: NgZone },\n { type: Object, decorators: [{ type: Inject, args: [PLATFORM_ID,] }] },\n { type: undefined, decorators: [{ type: Inject, args: [DOCUMENT,] }] },\n { type: BreakPointRegistry }\n ]; };\n return MockMatchMedia;\n}(MatchMedia));\n/**\n * Special internal class to simulate a MediaQueryList and\n * - supports manual activation to simulate mediaQuery matching\n * - manages listeners\n */\nvar /**\n * Special internal class to simulate a MediaQueryList and\n * - supports manual activation to simulate mediaQuery matching\n * - manages listeners\n */\nMockMediaQueryList = /** @class */ (function () {\n function MockMediaQueryList(_mediaQuery) {\n this._mediaQuery = _mediaQuery;\n this._isActive = false;\n this._listeners = [];\n this.onchange = null;\n }\n Object.defineProperty(MockMediaQueryList.prototype, \"matches\", {\n get: /**\n * @return {?}\n */\n function () {\n return this._isActive;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(MockMediaQueryList.prototype, \"media\", {\n get: /**\n * @return {?}\n */\n function () {\n return this._mediaQuery;\n },\n enumerable: true,\n configurable: true\n });\n /**\n * Destroy the current list by deactivating the\n * listeners and clearing the internal list\n */\n /**\n * Destroy the current list by deactivating the\n * listeners and clearing the internal list\n * @return {?}\n */\n MockMediaQueryList.prototype.destroy = /**\n * Destroy the current list by deactivating the\n * listeners and clearing the internal list\n * @return {?}\n */\n function () {\n this.deactivate();\n this._listeners = [];\n };\n /** Notify all listeners that 'matches === TRUE' */\n /**\n * Notify all listeners that 'matches === TRUE'\n * @return {?}\n */\n MockMediaQueryList.prototype.activate = /**\n * Notify all listeners that 'matches === TRUE'\n * @return {?}\n */\n function () {\n var _this = this;\n if (!this._isActive) {\n this._isActive = true;\n this._listeners.forEach((/**\n * @param {?} callback\n * @return {?}\n */\n function (callback) {\n /** @type {?} */\n var cb = (/** @type {?} */ (callback));\n cb.call(null, _this);\n }));\n }\n return this;\n };\n /** Notify all listeners that 'matches === false' */\n /**\n * Notify all listeners that 'matches === false'\n * @return {?}\n */\n MockMediaQueryList.prototype.deactivate = /**\n * Notify all listeners that 'matches === false'\n * @return {?}\n */\n function () {\n var _this = this;\n if (this._isActive) {\n this._isActive = false;\n this._listeners.forEach((/**\n * @param {?} callback\n * @return {?}\n */\n function (callback) {\n /** @type {?} */\n var cb = (/** @type {?} */ (callback));\n cb.call(null, _this);\n }));\n }\n return this;\n };\n /** Add a listener to our internal list to activate later */\n /**\n * Add a listener to our internal list to activate later\n * @param {?} listener\n * @return {?}\n */\n MockMediaQueryList.prototype.addListener = /**\n * Add a listener to our internal list to activate later\n * @param {?} listener\n * @return {?}\n */\n function (listener) {\n if (this._listeners.indexOf(listener) === -1) {\n this._listeners.push(listener);\n }\n if (this._isActive) {\n /** @type {?} */\n var cb = (/** @type {?} */ (listener));\n cb.call(null, this);\n }\n };\n /** Don't need to remove listeners in the testing environment */\n /**\n * Don't need to remove listeners in the testing environment\n * @param {?} _\n * @return {?}\n */\n MockMediaQueryList.prototype.removeListener = /**\n * Don't need to remove listeners in the testing environment\n * @param {?} _\n * @return {?}\n */\n function (_) {\n };\n /**\n * @param {?} _\n * @param {?} __\n * @param {?=} ___\n * @return {?}\n */\n MockMediaQueryList.prototype.addEventListener = /**\n * @param {?} _\n * @param {?} __\n * @param {?=} ___\n * @return {?}\n */\n function (_, __, ___) {\n };\n /**\n * @param {?} _\n * @param {?} __\n * @param {?=} ___\n * @return {?}\n */\n MockMediaQueryList.prototype.removeEventListener = /**\n * @param {?} _\n * @param {?} __\n * @param {?=} ___\n * @return {?}\n */\n function (_, __, ___) {\n };\n /**\n * @param {?} _\n * @return {?}\n */\n MockMediaQueryList.prototype.dispatchEvent = /**\n * @param {?} _\n * @return {?}\n */\n function (_) {\n return false;\n };\n return MockMediaQueryList;\n}());\n/**\n * Pre-configured provider for MockMatchMedia\n * @type {?}\n */\nvar MockMatchMediaProvider = {\n // tslint:disable-line:variable-name\n provide: MatchMedia,\n useClass: MockMatchMedia\n};\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n/** @type {?} */\nvar PRINT = 'print';\n/** @type {?} */\nvar BREAKPOINT_PRINT = {\n alias: PRINT,\n mediaQuery: PRINT,\n priority: 1000\n};\n/**\n * PrintHook - Use to intercept print MediaQuery activations and force\n * layouts to render with the specified print alias/breakpoint\n *\n * Used in MediaMarshaller and MediaObserver\n */\nvar PrintHook = /** @class */ (function () {\n function PrintHook(breakpoints, layoutConfig) {\n this.breakpoints = breakpoints;\n this.layoutConfig = layoutConfig;\n /**\n * Is this service currently in Print-mode ?\n */\n this.isPrinting = false;\n this.queue = new PrintQueue();\n this.deactivations = [];\n }\n /** Add 'print' mediaQuery: to listen for matchMedia activations */\n /**\n * Add 'print' mediaQuery: to listen for matchMedia activations\n * @param {?} queries\n * @return {?}\n */\n PrintHook.prototype.withPrintQuery = /**\n * Add 'print' mediaQuery: to listen for matchMedia activations\n * @param {?} queries\n * @return {?}\n */\n function (queries) {\n return queries.concat([PRINT]);\n };\n /** Is the MediaChange event for any 'print' @media */\n /**\n * Is the MediaChange event for any 'print' \\@media\n * @param {?} e\n * @return {?}\n */\n PrintHook.prototype.isPrintEvent = /**\n * Is the MediaChange event for any 'print' \\@media\n * @param {?} e\n * @return {?}\n */\n function (e) {\n return e.mediaQuery.startsWith(PRINT);\n };\n Object.defineProperty(PrintHook.prototype, \"printAlias\", {\n /** What is the desired mqAlias to use while printing? */\n get: /**\n * What is the desired mqAlias to use while printing?\n * @return {?}\n */\n function () {\n return this.layoutConfig.printWithBreakpoints || [];\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(PrintHook.prototype, \"printBreakPoints\", {\n /** Lookup breakpoints associated with print aliases. */\n get: /**\n * Lookup breakpoints associated with print aliases.\n * @return {?}\n */\n function () {\n var _this = this;\n return (/** @type {?} */ (this.printAlias\n .map((/**\n * @param {?} alias\n * @return {?}\n */\n function (alias) { return _this.breakpoints.findByAlias(alias); }))\n .filter((/**\n * @param {?} bp\n * @return {?}\n */\n function (bp) { return bp !== null; }))));\n },\n enumerable: true,\n configurable: true\n });\n /** Lookup breakpoint associated with mediaQuery */\n /**\n * Lookup breakpoint associated with mediaQuery\n * @param {?} __0\n * @return {?}\n */\n PrintHook.prototype.getEventBreakpoints = /**\n * Lookup breakpoint associated with mediaQuery\n * @param {?} __0\n * @return {?}\n */\n function (_a) {\n var mediaQuery = _a.mediaQuery;\n /** @type {?} */\n var bp = this.breakpoints.findByQuery(mediaQuery);\n /** @type {?} */\n var list = bp ? this.printBreakPoints.concat([bp]) : this.printBreakPoints;\n return list.sort(sortDescendingPriority);\n };\n /** Update event with printAlias mediaQuery information */\n /**\n * Update event with printAlias mediaQuery information\n * @param {?} event\n * @return {?}\n */\n PrintHook.prototype.updateEvent = /**\n * Update event with printAlias mediaQuery information\n * @param {?} event\n * @return {?}\n */\n function (event) {\n /** @type {?} */\n var bp = this.breakpoints.findByQuery(event.mediaQuery);\n if (this.isPrintEvent(event)) {\n // Reset from 'print' to first (highest priority) print breakpoint\n bp = this.getEventBreakpoints(event)[0];\n event.mediaQuery = bp ? bp.mediaQuery : '';\n }\n return mergeAlias(event, bp);\n };\n /**\n * Prepare RxJs filter operator with partial application\n * @return pipeable filter predicate\n */\n /**\n * Prepare RxJs filter operator with partial application\n * @param {?} target\n * @return {?} pipeable filter predicate\n */\n PrintHook.prototype.interceptEvents = /**\n * Prepare RxJs filter operator with partial application\n * @param {?} target\n * @return {?} pipeable filter predicate\n */\n function (target) {\n var _this = this;\n return (/**\n * @param {?} event\n * @return {?}\n */\n function (event) {\n if (_this.isPrintEvent(event)) {\n if (event.matches && !_this.isPrinting) {\n _this.startPrinting(target, _this.getEventBreakpoints(event));\n target.updateStyles();\n }\n else if (!event.matches && _this.isPrinting) {\n _this.stopPrinting(target);\n target.updateStyles();\n }\n }\n else {\n _this.collectActivations(event);\n }\n });\n };\n /** Stop mediaChange event propagation in event streams */\n /**\n * Stop mediaChange event propagation in event streams\n * @return {?}\n */\n PrintHook.prototype.blockPropagation = /**\n * Stop mediaChange event propagation in event streams\n * @return {?}\n */\n function () {\n var _this = this;\n return (/**\n * @param {?} event\n * @return {?}\n */\n function (event) {\n return !(_this.isPrinting || _this.isPrintEvent(event));\n });\n };\n /**\n * Save current activateBreakpoints (for later restore)\n * and substitute only the printAlias breakpoint\n */\n /**\n * Save current activateBreakpoints (for later restore)\n * and substitute only the printAlias breakpoint\n * @protected\n * @param {?} target\n * @param {?} bpList\n * @return {?}\n */\n PrintHook.prototype.startPrinting = /**\n * Save current activateBreakpoints (for later restore)\n * and substitute only the printAlias breakpoint\n * @protected\n * @param {?} target\n * @param {?} bpList\n * @return {?}\n */\n function (target, bpList) {\n this.isPrinting = true;\n target.activatedBreakpoints = this.queue.addPrintBreakpoints(bpList);\n };\n /** For any print de-activations, reset the entire print queue */\n /**\n * For any print de-activations, reset the entire print queue\n * @protected\n * @param {?} target\n * @return {?}\n */\n PrintHook.prototype.stopPrinting = /**\n * For any print de-activations, reset the entire print queue\n * @protected\n * @param {?} target\n * @return {?}\n */\n function (target) {\n target.activatedBreakpoints = this.deactivations;\n this.deactivations = [];\n this.queue.clear();\n this.isPrinting = false;\n };\n /**\n * To restore pre-Print Activations, we must capture the proper\n * list of breakpoint activations BEFORE print starts. OnBeforePrint()\n * is not supported; so 'print' mediaQuery activations must be used.\n *\n * > But activated breakpoints are deactivated BEFORE 'print' activation.\n *\n * Let's capture all de-activations using the following logic:\n *\n * When not printing:\n * - clear cache when activating non-print breakpoint\n * - update cache (and sort) when deactivating\n *\n * When printing:\n * - sort and save when starting print\n * - restore as activatedTargets and clear when stop printing\n */\n /**\n * To restore pre-Print Activations, we must capture the proper\n * list of breakpoint activations BEFORE print starts. OnBeforePrint()\n * is not supported; so 'print' mediaQuery activations must be used.\n *\n * > But activated breakpoints are deactivated BEFORE 'print' activation.\n *\n * Let's capture all de-activations using the following logic:\n *\n * When not printing:\n * - clear cache when activating non-print breakpoint\n * - update cache (and sort) when deactivating\n *\n * When printing:\n * - sort and save when starting print\n * - restore as activatedTargets and clear when stop printing\n * @param {?} event\n * @return {?}\n */\n PrintHook.prototype.collectActivations = /**\n * To restore pre-Print Activations, we must capture the proper\n * list of breakpoint activations BEFORE print starts. OnBeforePrint()\n * is not supported; so 'print' mediaQuery activations must be used.\n *\n * > But activated breakpoints are deactivated BEFORE 'print' activation.\n *\n * Let's capture all de-activations using the following logic:\n *\n * When not printing:\n * - clear cache when activating non-print breakpoint\n * - update cache (and sort) when deactivating\n *\n * When printing:\n * - sort and save when starting print\n * - restore as activatedTargets and clear when stop printing\n * @param {?} event\n * @return {?}\n */\n function (event) {\n if (!this.isPrinting) {\n if (!event.matches) {\n /** @type {?} */\n var bp = this.breakpoints.findByQuery(event.mediaQuery);\n if (bp) { // Deactivating a breakpoint\n this.deactivations.push(bp);\n this.deactivations.sort(sortDescendingPriority);\n }\n }\n else {\n this.deactivations = [];\n }\n }\n };\n PrintHook.decorators = [\n { type: Injectable, args: [{ providedIn: 'root' },] },\n ];\n /** @nocollapse */\n PrintHook.ctorParameters = function () { return [\n { type: BreakPointRegistry },\n { type: undefined, decorators: [{ type: Inject, args: [LAYOUT_CONFIG,] }] }\n ]; };\n /** @nocollapse */ PrintHook.ngInjectableDef = ɵɵdefineInjectable({ factory: function PrintHook_Factory() { return new PrintHook(ɵɵinject(BreakPointRegistry), ɵɵinject(LAYOUT_CONFIG)); }, token: PrintHook, providedIn: \"root\" });\n return PrintHook;\n}());\n// ************************************************************************\n// Internal Utility class 'PrintQueue'\n// ************************************************************************\n/**\n * Utility class to manage print breakpoints + activatedBreakpoints\n * with correct sorting WHILE printing\n */\nvar \n// ************************************************************************\n// Internal Utility class 'PrintQueue'\n// ************************************************************************\n/**\n * Utility class to manage print breakpoints + activatedBreakpoints\n * with correct sorting WHILE printing\n */\nPrintQueue = /** @class */ (function () {\n function PrintQueue() {\n /**\n * Sorted queue with prioritized print breakpoints\n */\n this.printBreakpoints = [];\n }\n /**\n * @param {?} bpList\n * @return {?}\n */\n PrintQueue.prototype.addPrintBreakpoints = /**\n * @param {?} bpList\n * @return {?}\n */\n function (bpList) {\n var _this = this;\n bpList.push(BREAKPOINT_PRINT);\n bpList.sort(sortDescendingPriority);\n bpList.forEach((/**\n * @param {?} bp\n * @return {?}\n */\n function (bp) { return _this.addBreakpoint(bp); }));\n return this.printBreakpoints;\n };\n /** Add Print breakpoint to queue */\n /**\n * Add Print breakpoint to queue\n * @param {?} bp\n * @return {?}\n */\n PrintQueue.prototype.addBreakpoint = /**\n * Add Print breakpoint to queue\n * @param {?} bp\n * @return {?}\n */\n function (bp) {\n if (!!bp) {\n /** @type {?} */\n var bpInList = this.printBreakpoints.find((/**\n * @param {?} it\n * @return {?}\n */\n function (it) { return it.mediaQuery === bp.mediaQuery; }));\n if (bpInList === undefined) {\n // If this is a `printAlias` breakpoint, then append. If a true 'print' breakpoint,\n // register as highest priority in the queue\n this.printBreakpoints = isPrintBreakPoint(bp) ? [bp].concat(this.printBreakpoints) : this.printBreakpoints.concat([bp]);\n }\n }\n };\n /** Restore original activated breakpoints and clear internal caches */\n /**\n * Restore original activated breakpoints and clear internal caches\n * @return {?}\n */\n PrintQueue.prototype.clear = /**\n * Restore original activated breakpoints and clear internal caches\n * @return {?}\n */\n function () {\n this.printBreakpoints = [];\n };\n return PrintQueue;\n}());\n// ************************************************************************\n// Internal Utility methods\n// ************************************************************************\n/**\n * Only support intercept queueing if the Breakpoint is a print \\@media query\n * @param {?} bp\n * @return {?}\n */\nfunction isPrintBreakPoint(bp) {\n return bp ? bp.mediaQuery.startsWith(PRINT) : false;\n}\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n\n/**\n * Wraps the provided value in an array, unless the provided value is an array.\n * @template T\n * @param {?} value\n * @return {?}\n */\nfunction coerceArray(value) {\n return Array.isArray(value) ? value : [value];\n}\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n/**\n * MediaObserver enables applications to listen for 1..n mediaQuery activations and to determine\n * if a mediaQuery is currently activated.\n *\n * Since a breakpoint change will first deactivate 1...n mediaQueries and then possibly activate\n * 1..n mediaQueries, the MediaObserver will debounce notifications and report ALL *activations*\n * in 1 event notification. The reported activations will be sorted in descending priority order.\n *\n * This class uses the BreakPoint Registry to inject alias information into the raw MediaChange\n * notification. For custom mediaQuery notifications, alias information will not be injected and\n * those fields will be ''.\n *\n * Note: Developers should note that only mediaChange activations (not de-activations)\n * are announced by the MediaObserver.\n *\n * \\@usage\n *\n * // RxJS\n * import { filter } from 'rxjs/operators';\n * import { MediaObserver } from '\\@angular/flex-layout';\n *\n * \\@Component({ ... })\n * export class AppComponent {\n * status: string = '';\n *\n * constructor(mediaObserver: MediaObserver) {\n * const media$ = mediaObserver.asObservable().pipe(\n * filter((changes: MediaChange[]) => true) // silly noop filter\n * );\n *\n * media$.subscribe((changes: MediaChange[]) => {\n * let status = '';\n * changes.forEach( change => {\n * status += `'${change.mqAlias}' = (${change.mediaQuery})
` ;\n * });\n * this.status = status;\n * });\n *\n * }\n * }\n */\nvar MediaObserver = /** @class */ (function () {\n function MediaObserver(breakpoints, matchMedia, hook) {\n this.breakpoints = breakpoints;\n this.matchMedia = matchMedia;\n this.hook = hook;\n /**\n * Filter MediaChange notifications for overlapping breakpoints\n */\n this.filterOverlaps = false;\n this.destroyed$ = new Subject();\n this._media$ = this.watchActivations();\n this.media$ = this._media$.pipe(filter((/**\n * @param {?} changes\n * @return {?}\n */\n function (changes) { return changes.length > 0; })), map((/**\n * @param {?} changes\n * @return {?}\n */\n function (changes) { return changes[0]; })));\n }\n /**\n * Completes the active subject, signalling to all complete for all\n * MediaObserver subscribers\n */\n /**\n * Completes the active subject, signalling to all complete for all\n * MediaObserver subscribers\n * @return {?}\n */\n MediaObserver.prototype.ngOnDestroy = /**\n * Completes the active subject, signalling to all complete for all\n * MediaObserver subscribers\n * @return {?}\n */\n function () {\n this.destroyed$.next();\n this.destroyed$.complete();\n };\n // ************************************************\n // Public Methods\n // ************************************************\n /**\n * Observe changes to current activation 'list'\n */\n // ************************************************\n // Public Methods\n // ************************************************\n /**\n * Observe changes to current activation 'list'\n * @return {?}\n */\n MediaObserver.prototype.asObservable = \n // ************************************************\n // Public Methods\n // ************************************************\n /**\n * Observe changes to current activation 'list'\n * @return {?}\n */\n function () {\n return this._media$;\n };\n /**\n * Allow programmatic query to determine if one or more media query/alias match\n * the current viewport size.\n * @param value One or more media queries (or aliases) to check.\n * @returns Whether any of the media queries match.\n */\n /**\n * Allow programmatic query to determine if one or more media query/alias match\n * the current viewport size.\n * @param {?} value One or more media queries (or aliases) to check.\n * @return {?} Whether any of the media queries match.\n */\n MediaObserver.prototype.isActive = /**\n * Allow programmatic query to determine if one or more media query/alias match\n * the current viewport size.\n * @param {?} value One or more media queries (or aliases) to check.\n * @return {?} Whether any of the media queries match.\n */\n function (value) {\n var _this = this;\n /** @type {?} */\n var aliases = splitQueries(coerceArray(value));\n return aliases.some((/**\n * @param {?} alias\n * @return {?}\n */\n function (alias) {\n /** @type {?} */\n var query = toMediaQuery(alias, _this.breakpoints);\n return _this.matchMedia.isActive(query);\n }));\n };\n // ************************************************\n // Internal Methods\n // ************************************************\n /**\n * Register all the mediaQueries registered in the BreakPointRegistry\n * This is needed so subscribers can be auto-notified of all standard, registered\n * mediaQuery activations\n */\n // ************************************************\n // Internal Methods\n // ************************************************\n /**\n * Register all the mediaQueries registered in the BreakPointRegistry\n * This is needed so subscribers can be auto-notified of all standard, registered\n * mediaQuery activations\n * @private\n * @return {?}\n */\n MediaObserver.prototype.watchActivations = \n // ************************************************\n // Internal Methods\n // ************************************************\n /**\n * Register all the mediaQueries registered in the BreakPointRegistry\n * This is needed so subscribers can be auto-notified of all standard, registered\n * mediaQuery activations\n * @private\n * @return {?}\n */\n function () {\n /** @type {?} */\n var queries = this.breakpoints.items.map((/**\n * @param {?} bp\n * @return {?}\n */\n function (bp) { return bp.mediaQuery; }));\n return this.buildObservable(queries);\n };\n /**\n * Only pass/announce activations (not de-activations)\n *\n * Since multiple-mediaQueries can be activation in a cycle,\n * gather all current activations into a single list of changes to observers\n *\n * Inject associated (if any) alias information into the MediaChange event\n * - Exclude mediaQuery activations for overlapping mQs. List bounded mQ ranges only\n * - Exclude print activations that do not have an associated mediaQuery\n *\n * NOTE: the raw MediaChange events [from MatchMedia] do not\n * contain important alias information; as such this info\n * must be injected into the MediaChange\n */\n /**\n * Only pass/announce activations (not de-activations)\n *\n * Since multiple-mediaQueries can be activation in a cycle,\n * gather all current activations into a single list of changes to observers\n *\n * Inject associated (if any) alias information into the MediaChange event\n * - Exclude mediaQuery activations for overlapping mQs. List bounded mQ ranges only\n * - Exclude print activations that do not have an associated mediaQuery\n *\n * NOTE: the raw MediaChange events [from MatchMedia] do not\n * contain important alias information; as such this info\n * must be injected into the MediaChange\n * @private\n * @param {?} mqList\n * @return {?}\n */\n MediaObserver.prototype.buildObservable = /**\n * Only pass/announce activations (not de-activations)\n *\n * Since multiple-mediaQueries can be activation in a cycle,\n * gather all current activations into a single list of changes to observers\n *\n * Inject associated (if any) alias information into the MediaChange event\n * - Exclude mediaQuery activations for overlapping mQs. List bounded mQ ranges only\n * - Exclude print activations that do not have an associated mediaQuery\n *\n * NOTE: the raw MediaChange events [from MatchMedia] do not\n * contain important alias information; as such this info\n * must be injected into the MediaChange\n * @private\n * @param {?} mqList\n * @return {?}\n */\n function (mqList) {\n var _this = this;\n /** @type {?} */\n var hasChanges = (/**\n * @param {?} changes\n * @return {?}\n */\n function (changes) {\n /** @type {?} */\n var isValidQuery = (/**\n * @param {?} change\n * @return {?}\n */\n function (change) { return (change.mediaQuery.length > 0); });\n return (changes.filter(isValidQuery).length > 0);\n });\n /** @type {?} */\n var excludeOverlaps = (/**\n * @param {?} changes\n * @return {?}\n */\n function (changes) {\n return !_this.filterOverlaps ? changes : changes.filter((/**\n * @param {?} change\n * @return {?}\n */\n function (change) {\n /** @type {?} */\n var bp = _this.breakpoints.findByQuery(change.mediaQuery);\n return !bp ? true : !bp.overlapping;\n }));\n });\n /**\n */\n return this.matchMedia\n .observe(this.hook.withPrintQuery(mqList))\n .pipe(filter((/**\n * @param {?} change\n * @return {?}\n */\n function (change) { return change.matches; })), debounceTime(0, asapScheduler), switchMap((/**\n * @param {?} _\n * @return {?}\n */\n function (_) { return of(_this.findAllActivations()); })), map(excludeOverlaps), filter(hasChanges), takeUntil(this.destroyed$));\n };\n /**\n * Find all current activations and prepare single list of activations\n * sorted by descending priority.\n */\n /**\n * Find all current activations and prepare single list of activations\n * sorted by descending priority.\n * @private\n * @return {?}\n */\n MediaObserver.prototype.findAllActivations = /**\n * Find all current activations and prepare single list of activations\n * sorted by descending priority.\n * @private\n * @return {?}\n */\n function () {\n var _this = this;\n /** @type {?} */\n var mergeMQAlias = (/**\n * @param {?} change\n * @return {?}\n */\n function (change) {\n /** @type {?} */\n var bp = _this.breakpoints.findByQuery(change.mediaQuery);\n return mergeAlias(change, bp);\n });\n /** @type {?} */\n var replaceWithPrintAlias = (/**\n * @param {?} change\n * @return {?}\n */\n function (change) {\n return _this.hook.isPrintEvent(change) ? _this.hook.updateEvent(change) : change;\n });\n return this.matchMedia\n .activations\n .map((/**\n * @param {?} query\n * @return {?}\n */\n function (query) { return new MediaChange(true, query); }))\n .map(replaceWithPrintAlias)\n .map(mergeMQAlias)\n .sort(sortDescendingPriority);\n };\n MediaObserver.decorators = [\n { type: Injectable, args: [{ providedIn: 'root' },] },\n ];\n /** @nocollapse */\n MediaObserver.ctorParameters = function () { return [\n { type: BreakPointRegistry },\n { type: MatchMedia },\n { type: PrintHook }\n ]; };\n /** @nocollapse */ MediaObserver.ngInjectableDef = ɵɵdefineInjectable({ factory: function MediaObserver_Factory() { return new MediaObserver(ɵɵinject(BreakPointRegistry), ɵɵinject(MatchMedia), ɵɵinject(PrintHook)); }, token: MediaObserver, providedIn: \"root\" });\n return MediaObserver;\n}());\n/**\n * Find associated breakpoint (if any)\n * @param {?} query\n * @param {?} locator\n * @return {?}\n */\nfunction toMediaQuery(query, locator) {\n /** @type {?} */\n var bp = locator.findByAlias(query) || locator.findByQuery(query);\n return bp ? bp.mediaQuery : query;\n}\n/**\n * Split each query string into separate query strings if two queries are provided as comma\n * separated.\n * @param {?} queries\n * @return {?}\n */\nfunction splitQueries(queries) {\n return queries.map((/**\n * @param {?} query\n * @return {?}\n */\n function (query) { return query.split(','); }))\n .reduce((/**\n * @param {?} a1\n * @param {?} a2\n * @return {?}\n */\n function (a1, a2) { return a1.concat(a2); }))\n .map((/**\n * @param {?} query\n * @return {?}\n */\n function (query) { return query.trim(); }));\n}\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n/**\n * Class\n */\nvar MediaTrigger = /** @class */ (function () {\n function MediaTrigger(breakpoints, matchMedia, layoutConfig, _platformId, _document) {\n this.breakpoints = breakpoints;\n this.matchMedia = matchMedia;\n this.layoutConfig = layoutConfig;\n this._platformId = _platformId;\n this._document = _document;\n this.hasCachedRegistryMatches = false;\n this.originalActivations = [];\n this.originalRegistry = new Map();\n }\n /**\n * Manually activate range of breakpoints\n * @param list array of mediaQuery or alias strings\n */\n /**\n * Manually activate range of breakpoints\n * @param {?} list array of mediaQuery or alias strings\n * @return {?}\n */\n MediaTrigger.prototype.activate = /**\n * Manually activate range of breakpoints\n * @param {?} list array of mediaQuery or alias strings\n * @return {?}\n */\n function (list) {\n list = list.map((/**\n * @param {?} it\n * @return {?}\n */\n function (it) { return it.trim(); })); // trim queries\n this.saveActivations();\n this.deactivateAll();\n this.setActivations(list);\n this.prepareAutoRestore();\n };\n /**\n * Restore original, 'real' breakpoints and emit events\n * to trigger stream notification\n */\n /**\n * Restore original, 'real' breakpoints and emit events\n * to trigger stream notification\n * @return {?}\n */\n MediaTrigger.prototype.restore = /**\n * Restore original, 'real' breakpoints and emit events\n * to trigger stream notification\n * @return {?}\n */\n function () {\n if (this.hasCachedRegistryMatches) {\n /** @type {?} */\n var extractQuery = (/**\n * @param {?} change\n * @return {?}\n */\n function (change) { return change.mediaQuery; });\n /** @type {?} */\n var list = this.originalActivations.map(extractQuery);\n try {\n this.deactivateAll();\n this.restoreRegistryMatches();\n this.setActivations(list);\n }\n finally {\n this.originalActivations = [];\n if (this.resizeSubscription) {\n this.resizeSubscription.unsubscribe();\n }\n }\n }\n };\n // ************************************************\n // Internal Methods\n // ************************************************\n /**\n * Whenever window resizes, immediately auto-restore original\n * activations (if we are simulating activations)\n */\n // ************************************************\n // Internal Methods\n // ************************************************\n /**\n * Whenever window resizes, immediately auto-restore original\n * activations (if we are simulating activations)\n * @private\n * @return {?}\n */\n MediaTrigger.prototype.prepareAutoRestore = \n // ************************************************\n // Internal Methods\n // ************************************************\n /**\n * Whenever window resizes, immediately auto-restore original\n * activations (if we are simulating activations)\n * @private\n * @return {?}\n */\n function () {\n /** @type {?} */\n var isBrowser = isPlatformBrowser(this._platformId) && this._document;\n /** @type {?} */\n var enableAutoRestore = isBrowser && this.layoutConfig.mediaTriggerAutoRestore;\n if (enableAutoRestore) {\n /** @type {?} */\n var resize$ = fromEvent(window, 'resize').pipe(take(1));\n this.resizeSubscription = resize$.subscribe(this.restore.bind(this));\n }\n };\n /**\n * Notify all matchMedia subscribers of de-activations\n *\n * Note: we must force 'matches' updates for\n * future matchMedia::activation lookups\n */\n /**\n * Notify all matchMedia subscribers of de-activations\n *\n * Note: we must force 'matches' updates for\n * future matchMedia::activation lookups\n * @private\n * @return {?}\n */\n MediaTrigger.prototype.deactivateAll = /**\n * Notify all matchMedia subscribers of de-activations\n *\n * Note: we must force 'matches' updates for\n * future matchMedia::activation lookups\n * @private\n * @return {?}\n */\n function () {\n /** @type {?} */\n var list = this.currentActivations;\n this.forceRegistryMatches(list, false);\n this.simulateMediaChanges(list, false);\n };\n /**\n * Cache current activations as sorted, prioritized list of MediaChanges\n */\n /**\n * Cache current activations as sorted, prioritized list of MediaChanges\n * @private\n * @return {?}\n */\n MediaTrigger.prototype.saveActivations = /**\n * Cache current activations as sorted, prioritized list of MediaChanges\n * @private\n * @return {?}\n */\n function () {\n var _this = this;\n if (!this.hasCachedRegistryMatches) {\n /** @type {?} */\n var toMediaChange = (/**\n * @param {?} query\n * @return {?}\n */\n function (query) { return new MediaChange(true, query); });\n /** @type {?} */\n var mergeMQAlias = (/**\n * @param {?} change\n * @return {?}\n */\n function (change) {\n /** @type {?} */\n var bp = _this.breakpoints.findByQuery(change.mediaQuery);\n return mergeAlias(change, bp);\n });\n this.originalActivations = this.currentActivations\n .map(toMediaChange)\n .map(mergeMQAlias)\n .sort(sortDescendingPriority);\n this.cacheRegistryMatches();\n }\n };\n /**\n * Force set manual activations for specified mediaQuery list\n */\n /**\n * Force set manual activations for specified mediaQuery list\n * @private\n * @param {?} list\n * @return {?}\n */\n MediaTrigger.prototype.setActivations = /**\n * Force set manual activations for specified mediaQuery list\n * @private\n * @param {?} list\n * @return {?}\n */\n function (list) {\n if (!!this.originalRegistry) {\n this.forceRegistryMatches(list, true);\n }\n this.simulateMediaChanges(list);\n };\n /**\n * For specified mediaQuery list manually simulate activations or deactivations\n */\n /**\n * For specified mediaQuery list manually simulate activations or deactivations\n * @private\n * @param {?} queries\n * @param {?=} matches\n * @return {?}\n */\n MediaTrigger.prototype.simulateMediaChanges = /**\n * For specified mediaQuery list manually simulate activations or deactivations\n * @private\n * @param {?} queries\n * @param {?=} matches\n * @return {?}\n */\n function (queries, matches) {\n var _this = this;\n if (matches === void 0) { matches = true; }\n /** @type {?} */\n var toMediaQuery = (/**\n * @param {?} query\n * @return {?}\n */\n function (query) {\n /** @type {?} */\n var locator = _this.breakpoints;\n /** @type {?} */\n var bp = locator.findByAlias(query) || locator.findByQuery(query);\n return bp ? bp.mediaQuery : query;\n });\n /** @type {?} */\n var emitChangeEvent = (/**\n * @param {?} query\n * @return {?}\n */\n function (query) { return _this.emitChangeEvent(matches, query); });\n queries.map(toMediaQuery).forEach(emitChangeEvent);\n };\n /**\n * Replace current registry with simulated registry...\n * Note: this is required since MediaQueryList::matches is 'readOnly'\n */\n /**\n * Replace current registry with simulated registry...\n * Note: this is required since MediaQueryList::matches is 'readOnly'\n * @private\n * @param {?} queries\n * @param {?} matches\n * @return {?}\n */\n MediaTrigger.prototype.forceRegistryMatches = /**\n * Replace current registry with simulated registry...\n * Note: this is required since MediaQueryList::matches is 'readOnly'\n * @private\n * @param {?} queries\n * @param {?} matches\n * @return {?}\n */\n function (queries, matches) {\n /** @type {?} */\n var registry = new Map();\n queries.forEach((/**\n * @param {?} query\n * @return {?}\n */\n function (query) {\n registry.set(query, (/** @type {?} */ ({ matches: matches })));\n }));\n this.matchMedia.registry = registry;\n };\n /**\n * Save current MatchMedia::registry items.\n */\n /**\n * Save current MatchMedia::registry items.\n * @private\n * @return {?}\n */\n MediaTrigger.prototype.cacheRegistryMatches = /**\n * Save current MatchMedia::registry items.\n * @private\n * @return {?}\n */\n function () {\n /** @type {?} */\n var target = this.originalRegistry;\n target.clear();\n this.matchMedia.registry.forEach((/**\n * @param {?} value\n * @param {?} key\n * @return {?}\n */\n function (value, key) {\n target.set(key, value);\n }));\n this.hasCachedRegistryMatches = true;\n };\n /**\n * Restore original, 'true' registry\n */\n /**\n * Restore original, 'true' registry\n * @private\n * @return {?}\n */\n MediaTrigger.prototype.restoreRegistryMatches = /**\n * Restore original, 'true' registry\n * @private\n * @return {?}\n */\n function () {\n /** @type {?} */\n var target = this.matchMedia.registry;\n target.clear();\n this.originalRegistry.forEach((/**\n * @param {?} value\n * @param {?} key\n * @return {?}\n */\n function (value, key) {\n target.set(key, value);\n }));\n this.originalRegistry.clear();\n this.hasCachedRegistryMatches = false;\n };\n /**\n * Manually emit a MediaChange event via the MatchMedia to MediaMarshaller and MediaObserver\n */\n /**\n * Manually emit a MediaChange event via the MatchMedia to MediaMarshaller and MediaObserver\n * @private\n * @param {?} matches\n * @param {?} query\n * @return {?}\n */\n MediaTrigger.prototype.emitChangeEvent = /**\n * Manually emit a MediaChange event via the MatchMedia to MediaMarshaller and MediaObserver\n * @private\n * @param {?} matches\n * @param {?} query\n * @return {?}\n */\n function (matches, query) {\n this.matchMedia.source.next(new MediaChange(matches, query));\n };\n Object.defineProperty(MediaTrigger.prototype, \"currentActivations\", {\n get: /**\n * @private\n * @return {?}\n */\n function () {\n return this.matchMedia.activations;\n },\n enumerable: true,\n configurable: true\n });\n MediaTrigger.decorators = [\n { type: Injectable, args: [{ providedIn: 'root' },] },\n ];\n /** @nocollapse */\n MediaTrigger.ctorParameters = function () { return [\n { type: BreakPointRegistry },\n { type: MatchMedia },\n { type: undefined, decorators: [{ type: Inject, args: [LAYOUT_CONFIG,] }] },\n { type: Object, decorators: [{ type: Inject, args: [PLATFORM_ID,] }] },\n { type: undefined, decorators: [{ type: Inject, args: [DOCUMENT,] }] }\n ]; };\n /** @nocollapse */ MediaTrigger.ngInjectableDef = ɵɵdefineInjectable({ factory: function MediaTrigger_Factory() { return new MediaTrigger(ɵɵinject(BreakPointRegistry), ɵɵinject(MatchMedia), ɵɵinject(LAYOUT_CONFIG), ɵɵinject(PLATFORM_ID), ɵɵinject(DOCUMENT)); }, token: MediaTrigger, providedIn: \"root\" });\n return MediaTrigger;\n}());\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n\n/**\n * Applies CSS prefixes to appropriate style keys.\n *\n * Note: `-ms-`, `-moz` and `-webkit-box` are no longer supported. e.g.\n * {\n * display: -webkit-flex; NEW - Safari 6.1+. iOS 7.1+, BB10\n * display: flex; NEW, Spec - Firefox, Chrome, Opera\n * // display: -webkit-box; OLD - iOS 6-, Safari 3.1-6, BB7\n * // display: -ms-flexbox; TWEENER - IE 10\n * // display: -moz-flexbox; OLD - Firefox\n * }\n * @param {?} target\n * @return {?}\n */\nfunction applyCssPrefixes(target) {\n for (var key in target) {\n /** @type {?} */\n var value = target[key] || '';\n switch (key) {\n case 'display':\n if (value === 'flex') {\n target['display'] = [\n '-webkit-flex',\n 'flex'\n ];\n }\n else if (value === 'inline-flex') {\n target['display'] = [\n '-webkit-inline-flex',\n 'inline-flex'\n ];\n }\n else {\n target['display'] = value;\n }\n break;\n case 'align-items':\n case 'align-self':\n case 'align-content':\n case 'flex':\n case 'flex-basis':\n case 'flex-flow':\n case 'flex-grow':\n case 'flex-shrink':\n case 'flex-wrap':\n case 'justify-content':\n target['-webkit-' + key] = value;\n break;\n case 'flex-direction':\n value = value || 'row';\n target['-webkit-flex-direction'] = value;\n target['flex-direction'] = value;\n break;\n case 'order':\n target['order'] = target['-webkit-' + key] = isNaN(+value) ? '0' : value;\n break;\n }\n }\n return target;\n}\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\nvar StyleUtils = /** @class */ (function () {\n function StyleUtils(_serverStylesheet, _serverModuleLoaded, _platformId, layoutConfig) {\n this._serverStylesheet = _serverStylesheet;\n this._serverModuleLoaded = _serverModuleLoaded;\n this._platformId = _platformId;\n this.layoutConfig = layoutConfig;\n }\n /**\n * Applies styles given via string pair or object map to the directive element\n */\n /**\n * Applies styles given via string pair or object map to the directive element\n * @param {?} element\n * @param {?} style\n * @param {?=} value\n * @return {?}\n */\n StyleUtils.prototype.applyStyleToElement = /**\n * Applies styles given via string pair or object map to the directive element\n * @param {?} element\n * @param {?} style\n * @param {?=} value\n * @return {?}\n */\n function (element, style, value) {\n if (value === void 0) { value = null; }\n /** @type {?} */\n var styles = {};\n if (typeof style === 'string') {\n styles[style] = value;\n style = styles;\n }\n styles = this.layoutConfig.disableVendorPrefixes ? style : applyCssPrefixes(style);\n this._applyMultiValueStyleToElement(styles, element);\n };\n /**\n * Applies styles given via string pair or object map to the directive's element\n */\n /**\n * Applies styles given via string pair or object map to the directive's element\n * @param {?} style\n * @param {?=} elements\n * @return {?}\n */\n StyleUtils.prototype.applyStyleToElements = /**\n * Applies styles given via string pair or object map to the directive's element\n * @param {?} style\n * @param {?=} elements\n * @return {?}\n */\n function (style, elements) {\n var _this = this;\n if (elements === void 0) { elements = []; }\n /** @type {?} */\n var styles = this.layoutConfig.disableVendorPrefixes ? style : applyCssPrefixes(style);\n elements.forEach((/**\n * @param {?} el\n * @return {?}\n */\n function (el) {\n _this._applyMultiValueStyleToElement(styles, el);\n }));\n };\n /**\n * Determine the DOM element's Flexbox flow (flex-direction)\n *\n * Check inline style first then check computed (stylesheet) style\n */\n /**\n * Determine the DOM element's Flexbox flow (flex-direction)\n *\n * Check inline style first then check computed (stylesheet) style\n * @param {?} target\n * @return {?}\n */\n StyleUtils.prototype.getFlowDirection = /**\n * Determine the DOM element's Flexbox flow (flex-direction)\n *\n * Check inline style first then check computed (stylesheet) style\n * @param {?} target\n * @return {?}\n */\n function (target) {\n /** @type {?} */\n var query = 'flex-direction';\n /** @type {?} */\n var value = this.lookupStyle(target, query);\n /** @type {?} */\n var hasInlineValue = this.lookupInlineStyle(target, query) ||\n (isPlatformServer(this._platformId) && this._serverModuleLoaded) ? value : '';\n return [value || 'row', hasInlineValue];\n };\n /**\n * Find the DOM element's raw attribute value (if any)\n */\n /**\n * Find the DOM element's raw attribute value (if any)\n * @param {?} element\n * @param {?} attribute\n * @return {?}\n */\n StyleUtils.prototype.lookupAttributeValue = /**\n * Find the DOM element's raw attribute value (if any)\n * @param {?} element\n * @param {?} attribute\n * @return {?}\n */\n function (element, attribute) {\n return element.getAttribute(attribute) || '';\n };\n /**\n * Find the DOM element's inline style value (if any)\n */\n /**\n * Find the DOM element's inline style value (if any)\n * @param {?} element\n * @param {?} styleName\n * @return {?}\n */\n StyleUtils.prototype.lookupInlineStyle = /**\n * Find the DOM element's inline style value (if any)\n * @param {?} element\n * @param {?} styleName\n * @return {?}\n */\n function (element, styleName) {\n return isPlatformBrowser(this._platformId) ?\n element.style.getPropertyValue(styleName) : this._getServerStyle(element, styleName);\n };\n /**\n * Determine the inline or inherited CSS style\n * NOTE: platform-server has no implementation for getComputedStyle\n */\n /**\n * Determine the inline or inherited CSS style\n * NOTE: platform-server has no implementation for getComputedStyle\n * @param {?} element\n * @param {?} styleName\n * @param {?=} inlineOnly\n * @return {?}\n */\n StyleUtils.prototype.lookupStyle = /**\n * Determine the inline or inherited CSS style\n * NOTE: platform-server has no implementation for getComputedStyle\n * @param {?} element\n * @param {?} styleName\n * @param {?=} inlineOnly\n * @return {?}\n */\n function (element, styleName, inlineOnly) {\n if (inlineOnly === void 0) { inlineOnly = false; }\n /** @type {?} */\n var value = '';\n if (element) {\n /** @type {?} */\n var immediateValue = value = this.lookupInlineStyle(element, styleName);\n if (!immediateValue) {\n if (isPlatformBrowser(this._platformId)) {\n if (!inlineOnly) {\n value = getComputedStyle(element).getPropertyValue(styleName);\n }\n }\n else {\n if (this._serverModuleLoaded) {\n value = this._serverStylesheet.getStyleForElement(element, styleName);\n }\n }\n }\n }\n // Note: 'inline' is the default of all elements, unless UA stylesheet overrides;\n // in which case getComputedStyle() should determine a valid value.\n return value ? value.trim() : '';\n };\n /**\n * Applies the styles to the element. The styles object map may contain an array of values\n * Each value will be added as element style\n * Keys are sorted to add prefixed styles (like -webkit-x) first, before the standard ones\n */\n /**\n * Applies the styles to the element. The styles object map may contain an array of values\n * Each value will be added as element style\n * Keys are sorted to add prefixed styles (like -webkit-x) first, before the standard ones\n * @private\n * @param {?} styles\n * @param {?} element\n * @return {?}\n */\n StyleUtils.prototype._applyMultiValueStyleToElement = /**\n * Applies the styles to the element. The styles object map may contain an array of values\n * Each value will be added as element style\n * Keys are sorted to add prefixed styles (like -webkit-x) first, before the standard ones\n * @private\n * @param {?} styles\n * @param {?} element\n * @return {?}\n */\n function (styles, element) {\n var _this = this;\n Object.keys(styles).sort().forEach((/**\n * @param {?} key\n * @return {?}\n */\n function (key) {\n /** @type {?} */\n var el = styles[key];\n /** @type {?} */\n var values = Array.isArray(el) ? el : [el];\n values.sort();\n for (var _i = 0, values_1 = values; _i < values_1.length; _i++) {\n var value = values_1[_i];\n value = value ? value + '' : '';\n if (isPlatformBrowser(_this._platformId) || !_this._serverModuleLoaded) {\n isPlatformBrowser(_this._platformId) ?\n element.style.setProperty(key, value) : _this._setServerStyle(element, key, value);\n }\n else {\n _this._serverStylesheet.addStyleToElement(element, key, value);\n }\n }\n }));\n };\n /**\n * @private\n * @param {?} element\n * @param {?} styleName\n * @param {?=} styleValue\n * @return {?}\n */\n StyleUtils.prototype._setServerStyle = /**\n * @private\n * @param {?} element\n * @param {?} styleName\n * @param {?=} styleValue\n * @return {?}\n */\n function (element, styleName, styleValue) {\n styleName = styleName.replace(/([a-z])([A-Z])/g, '$1-$2').toLowerCase();\n /** @type {?} */\n var styleMap = this._readStyleAttribute(element);\n styleMap[styleName] = styleValue || '';\n this._writeStyleAttribute(element, styleMap);\n };\n /**\n * @private\n * @param {?} element\n * @param {?} styleName\n * @return {?}\n */\n StyleUtils.prototype._getServerStyle = /**\n * @private\n * @param {?} element\n * @param {?} styleName\n * @return {?}\n */\n function (element, styleName) {\n /** @type {?} */\n var styleMap = this._readStyleAttribute(element);\n return styleMap[styleName] || '';\n };\n /**\n * @private\n * @param {?} element\n * @return {?}\n */\n StyleUtils.prototype._readStyleAttribute = /**\n * @private\n * @param {?} element\n * @return {?}\n */\n function (element) {\n /** @type {?} */\n var styleMap = {};\n /** @type {?} */\n var styleAttribute = element.getAttribute('style');\n if (styleAttribute) {\n /** @type {?} */\n var styleList = styleAttribute.split(/;+/g);\n for (var i = 0; i < styleList.length; i++) {\n /** @type {?} */\n var style = styleList[i].trim();\n if (style.length > 0) {\n /** @type {?} */\n var colonIndex = style.indexOf(':');\n if (colonIndex === -1) {\n throw new Error(\"Invalid CSS style: \" + style);\n }\n /** @type {?} */\n var name_1 = style.substr(0, colonIndex).trim();\n styleMap[name_1] = style.substr(colonIndex + 1).trim();\n }\n }\n }\n return styleMap;\n };\n /**\n * @private\n * @param {?} element\n * @param {?} styleMap\n * @return {?}\n */\n StyleUtils.prototype._writeStyleAttribute = /**\n * @private\n * @param {?} element\n * @param {?} styleMap\n * @return {?}\n */\n function (element, styleMap) {\n /** @type {?} */\n var styleAttrValue = '';\n for (var key in styleMap) {\n /** @type {?} */\n var newValue = styleMap[key];\n if (newValue) {\n styleAttrValue += key + ':' + styleMap[key] + ';';\n }\n }\n element.setAttribute('style', styleAttrValue);\n };\n StyleUtils.decorators = [\n { type: Injectable, args: [{ providedIn: 'root' },] },\n ];\n /** @nocollapse */\n StyleUtils.ctorParameters = function () { return [\n { type: StylesheetMap, decorators: [{ type: Optional }] },\n { type: Boolean, decorators: [{ type: Optional }, { type: Inject, args: [SERVER_TOKEN,] }] },\n { type: Object, decorators: [{ type: Inject, args: [PLATFORM_ID,] }] },\n { type: undefined, decorators: [{ type: Inject, args: [LAYOUT_CONFIG,] }] }\n ]; };\n /** @nocollapse */ StyleUtils.ngInjectableDef = ɵɵdefineInjectable({ factory: function StyleUtils_Factory() { return new StyleUtils(ɵɵinject(StylesheetMap, 8), ɵɵinject(SERVER_TOKEN, 8), ɵɵinject(PLATFORM_ID), ɵɵinject(LAYOUT_CONFIG)); }, token: StyleUtils, providedIn: \"root\" });\n return StyleUtils;\n}());\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n/**\n * A class that encapsulates CSS style generation for common directives\n * @abstract\n */\nvar /**\n * A class that encapsulates CSS style generation for common directives\n * @abstract\n */\nStyleBuilder = /** @class */ (function () {\n function StyleBuilder() {\n /**\n * Whether to cache the generated output styles\n */\n this.shouldCache = true;\n }\n /**\n * Run a side effect computation given the input string and the computed styles\n * from the build task and the host configuration object\n * NOTE: This should be a no-op unless an algorithm is provided in a subclass\n */\n /**\n * Run a side effect computation given the input string and the computed styles\n * from the build task and the host configuration object\n * NOTE: This should be a no-op unless an algorithm is provided in a subclass\n * @param {?} _input\n * @param {?} _styles\n * @param {?=} _parent\n * @return {?}\n */\n StyleBuilder.prototype.sideEffect = /**\n * Run a side effect computation given the input string and the computed styles\n * from the build task and the host configuration object\n * NOTE: This should be a no-op unless an algorithm is provided in a subclass\n * @param {?} _input\n * @param {?} _styles\n * @param {?=} _parent\n * @return {?}\n */\n function (_input, _styles, _parent) {\n };\n return StyleBuilder;\n}());\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n\n/**\n * The flex API permits 3 or 1 parts of the value:\n * - `flex-grow flex-shrink flex-basis`, or\n * - `flex-basis`\n * @param {?} basis\n * @param {?=} grow\n * @param {?=} shrink\n * @return {?}\n */\nfunction validateBasis(basis, grow, shrink) {\n if (grow === void 0) { grow = '1'; }\n if (shrink === void 0) { shrink = '1'; }\n /** @type {?} */\n var parts = [grow, shrink, basis];\n /** @type {?} */\n var j = basis.indexOf('calc');\n if (j > 0) {\n parts[2] = _validateCalcValue(basis.substring(j).trim());\n /** @type {?} */\n var matches = basis.substr(0, j).trim().split(' ');\n if (matches.length == 2) {\n parts[0] = matches[0];\n parts[1] = matches[1];\n }\n }\n else if (j == 0) {\n parts[2] = _validateCalcValue(basis.trim());\n }\n else {\n /** @type {?} */\n var matches = basis.split(' ');\n parts = (matches.length === 3) ? matches : [\n grow, shrink, basis\n ];\n }\n return parts;\n}\n/**\n * Calc expressions require whitespace before & after any expression operators\n * This is a simple, crude whitespace padding solution.\n * - '3 3 calc(15em + 20px)'\n * - calc(100% / 7 * 2)\n * - 'calc(15em + 20px)'\n * - 'calc(15em+20px)'\n * - '37px'\n * = '43%'\n * @param {?} calc\n * @return {?}\n */\nfunction _validateCalcValue(calc) {\n return calc.replace(/[\\s]/g, '').replace(/[\\/\\*\\+\\-]/g, ' $& ');\n}\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n/**\n * MediaMarshaller - register responsive values from directives and\n * trigger them based on media query events\n */\nvar MediaMarshaller = /** @class */ (function () {\n function MediaMarshaller(matchMedia, breakpoints, hook) {\n this.matchMedia = matchMedia;\n this.breakpoints = breakpoints;\n this.hook = hook;\n this.activatedBreakpoints = [];\n this.elementMap = new Map();\n this.elementKeyMap = new WeakMap();\n this.watcherMap = new WeakMap(); // special triggers to update elements\n // special triggers to update elements\n this.updateMap = new WeakMap(); // callback functions to update styles\n // callback functions to update styles\n this.clearMap = new WeakMap(); // callback functions to clear styles\n // callback functions to clear styles\n this.subject = new Subject();\n this.observeActivations();\n }\n Object.defineProperty(MediaMarshaller.prototype, \"activatedAlias\", {\n get: /**\n * @return {?}\n */\n function () {\n return this.activatedBreakpoints[0] ? this.activatedBreakpoints[0].alias : '';\n },\n enumerable: true,\n configurable: true\n });\n /**\n * Update styles on breakpoint activates or deactivates\n * @param mc\n */\n /**\n * Update styles on breakpoint activates or deactivates\n * @param {?} mc\n * @return {?}\n */\n MediaMarshaller.prototype.onMediaChange = /**\n * Update styles on breakpoint activates or deactivates\n * @param {?} mc\n * @return {?}\n */\n function (mc) {\n /** @type {?} */\n var bp = this.findByQuery(mc.mediaQuery);\n if (bp) {\n mc = mergeAlias(mc, bp);\n if (mc.matches && this.activatedBreakpoints.indexOf(bp) === -1) {\n this.activatedBreakpoints.push(bp);\n this.activatedBreakpoints.sort(sortDescendingPriority);\n this.updateStyles();\n }\n else if (!mc.matches && this.activatedBreakpoints.indexOf(bp) !== -1) {\n // Remove the breakpoint when it's deactivated\n this.activatedBreakpoints.splice(this.activatedBreakpoints.indexOf(bp), 1);\n this.activatedBreakpoints.sort(sortDescendingPriority);\n this.updateStyles();\n }\n }\n };\n /**\n * initialize the marshaller with necessary elements for delegation on an element\n * @param element\n * @param key\n * @param updateFn optional callback so that custom bp directives don't have to re-provide this\n * @param clearFn optional callback so that custom bp directives don't have to re-provide this\n * @param extraTriggers other triggers to force style updates (e.g. layout, directionality, etc)\n */\n /**\n * initialize the marshaller with necessary elements for delegation on an element\n * @param {?} element\n * @param {?} key\n * @param {?=} updateFn optional callback so that custom bp directives don't have to re-provide this\n * @param {?=} clearFn optional callback so that custom bp directives don't have to re-provide this\n * @param {?=} extraTriggers other triggers to force style updates (e.g. layout, directionality, etc)\n * @return {?}\n */\n MediaMarshaller.prototype.init = /**\n * initialize the marshaller with necessary elements for delegation on an element\n * @param {?} element\n * @param {?} key\n * @param {?=} updateFn optional callback so that custom bp directives don't have to re-provide this\n * @param {?=} clearFn optional callback so that custom bp directives don't have to re-provide this\n * @param {?=} extraTriggers other triggers to force style updates (e.g. layout, directionality, etc)\n * @return {?}\n */\n function (element, key, updateFn, clearFn, extraTriggers) {\n if (extraTriggers === void 0) { extraTriggers = []; }\n initBuilderMap(this.updateMap, element, key, updateFn);\n initBuilderMap(this.clearMap, element, key, clearFn);\n this.buildElementKeyMap(element, key);\n this.watchExtraTriggers(element, key, extraTriggers);\n };\n /**\n * get the value for an element and key and optionally a given breakpoint\n * @param element\n * @param key\n * @param bp\n */\n /**\n * get the value for an element and key and optionally a given breakpoint\n * @param {?} element\n * @param {?} key\n * @param {?=} bp\n * @return {?}\n */\n MediaMarshaller.prototype.getValue = /**\n * get the value for an element and key and optionally a given breakpoint\n * @param {?} element\n * @param {?} key\n * @param {?=} bp\n * @return {?}\n */\n function (element, key, bp) {\n /** @type {?} */\n var bpMap = this.elementMap.get(element);\n if (bpMap) {\n /** @type {?} */\n var values = bp !== undefined ? bpMap.get(bp) : this.getActivatedValues(bpMap, key);\n if (values) {\n return values.get(key);\n }\n }\n return undefined;\n };\n /**\n * whether the element has values for a given key\n * @param element\n * @param key\n */\n /**\n * whether the element has values for a given key\n * @param {?} element\n * @param {?} key\n * @return {?}\n */\n MediaMarshaller.prototype.hasValue = /**\n * whether the element has values for a given key\n * @param {?} element\n * @param {?} key\n * @return {?}\n */\n function (element, key) {\n /** @type {?} */\n var bpMap = this.elementMap.get(element);\n if (bpMap) {\n /** @type {?} */\n var values = this.getActivatedValues(bpMap, key);\n if (values) {\n return values.get(key) !== undefined || false;\n }\n }\n return false;\n };\n /**\n * Set the value for an input on a directive\n * @param element the element in question\n * @param key the type of the directive (e.g. flex, layout-gap, etc)\n * @param bp the breakpoint suffix (empty string = default)\n * @param val the value for the breakpoint\n */\n /**\n * Set the value for an input on a directive\n * @param {?} element the element in question\n * @param {?} key the type of the directive (e.g. flex, layout-gap, etc)\n * @param {?} val the value for the breakpoint\n * @param {?} bp the breakpoint suffix (empty string = default)\n * @return {?}\n */\n MediaMarshaller.prototype.setValue = /**\n * Set the value for an input on a directive\n * @param {?} element the element in question\n * @param {?} key the type of the directive (e.g. flex, layout-gap, etc)\n * @param {?} val the value for the breakpoint\n * @param {?} bp the breakpoint suffix (empty string = default)\n * @return {?}\n */\n function (element, key, val, bp) {\n /** @type {?} */\n var bpMap = this.elementMap.get(element);\n if (!bpMap) {\n bpMap = new Map().set(bp, new Map().set(key, val));\n this.elementMap.set(element, bpMap);\n }\n else {\n /** @type {?} */\n var values = (bpMap.get(bp) || new Map()).set(key, val);\n bpMap.set(bp, values);\n this.elementMap.set(element, bpMap);\n }\n /** @type {?} */\n var value = this.getValue(element, key);\n if (value !== undefined) {\n this.updateElement(element, key, value);\n }\n };\n /** Track element value changes for a specific key */\n /**\n * Track element value changes for a specific key\n * @param {?} element\n * @param {?} key\n * @return {?}\n */\n MediaMarshaller.prototype.trackValue = /**\n * Track element value changes for a specific key\n * @param {?} element\n * @param {?} key\n * @return {?}\n */\n function (element, key) {\n return this.subject\n .asObservable()\n .pipe(filter((/**\n * @param {?} v\n * @return {?}\n */\n function (v) { return v.element === element && v.key === key; })));\n };\n /** update all styles for all elements on the current breakpoint */\n /**\n * update all styles for all elements on the current breakpoint\n * @return {?}\n */\n MediaMarshaller.prototype.updateStyles = /**\n * update all styles for all elements on the current breakpoint\n * @return {?}\n */\n function () {\n var _this = this;\n this.elementMap.forEach((/**\n * @param {?} bpMap\n * @param {?} el\n * @return {?}\n */\n function (bpMap, el) {\n /** @type {?} */\n var keyMap = new Set((/** @type {?} */ (_this.elementKeyMap.get(el))));\n /** @type {?} */\n var valueMap = _this.getActivatedValues(bpMap);\n if (valueMap) {\n valueMap.forEach((/**\n * @param {?} v\n * @param {?} k\n * @return {?}\n */\n function (v, k) {\n _this.updateElement(el, k, v);\n keyMap.delete(k);\n }));\n }\n keyMap.forEach((/**\n * @param {?} k\n * @return {?}\n */\n function (k) {\n valueMap = _this.getActivatedValues(bpMap, k);\n if (valueMap) {\n /** @type {?} */\n var value = valueMap.get(k);\n _this.updateElement(el, k, value);\n }\n else {\n _this.clearElement(el, k);\n }\n }));\n }));\n };\n /**\n * clear the styles for a given element\n * @param element\n * @param key\n */\n /**\n * clear the styles for a given element\n * @param {?} element\n * @param {?} key\n * @return {?}\n */\n MediaMarshaller.prototype.clearElement = /**\n * clear the styles for a given element\n * @param {?} element\n * @param {?} key\n * @return {?}\n */\n function (element, key) {\n /** @type {?} */\n var builders = this.clearMap.get(element);\n if (builders) {\n /** @type {?} */\n var clearFn = (/** @type {?} */ (builders.get(key)));\n if (!!clearFn) {\n clearFn();\n this.subject.next({ element: element, key: key, value: '' });\n }\n }\n };\n /**\n * update a given element with the activated values for a given key\n * @param element\n * @param key\n * @param value\n */\n /**\n * update a given element with the activated values for a given key\n * @param {?} element\n * @param {?} key\n * @param {?} value\n * @return {?}\n */\n MediaMarshaller.prototype.updateElement = /**\n * update a given element with the activated values for a given key\n * @param {?} element\n * @param {?} key\n * @param {?} value\n * @return {?}\n */\n function (element, key, value) {\n /** @type {?} */\n var builders = this.updateMap.get(element);\n if (builders) {\n /** @type {?} */\n var updateFn = (/** @type {?} */ (builders.get(key)));\n if (!!updateFn) {\n updateFn(value);\n this.subject.next({ element: element, key: key, value: value });\n }\n }\n };\n /**\n * release all references to a given element\n * @param element\n */\n /**\n * release all references to a given element\n * @param {?} element\n * @return {?}\n */\n MediaMarshaller.prototype.releaseElement = /**\n * release all references to a given element\n * @param {?} element\n * @return {?}\n */\n function (element) {\n /** @type {?} */\n var watcherMap = this.watcherMap.get(element);\n if (watcherMap) {\n watcherMap.forEach((/**\n * @param {?} s\n * @return {?}\n */\n function (s) { return s.unsubscribe(); }));\n this.watcherMap.delete(element);\n }\n /** @type {?} */\n var elementMap = this.elementMap.get(element);\n if (elementMap) {\n elementMap.forEach((/**\n * @param {?} _\n * @param {?} s\n * @return {?}\n */\n function (_, s) { return elementMap.delete(s); }));\n this.elementMap.delete(element);\n }\n };\n /**\n * trigger an update for a given element and key (e.g. layout)\n * @param element\n * @param key\n */\n /**\n * trigger an update for a given element and key (e.g. layout)\n * @param {?} element\n * @param {?=} key\n * @return {?}\n */\n MediaMarshaller.prototype.triggerUpdate = /**\n * trigger an update for a given element and key (e.g. layout)\n * @param {?} element\n * @param {?=} key\n * @return {?}\n */\n function (element, key) {\n var _this = this;\n /** @type {?} */\n var bpMap = this.elementMap.get(element);\n if (bpMap) {\n /** @type {?} */\n var valueMap = this.getActivatedValues(bpMap, key);\n if (valueMap) {\n if (key) {\n this.updateElement(element, key, valueMap.get(key));\n }\n else {\n valueMap.forEach((/**\n * @param {?} v\n * @param {?} k\n * @return {?}\n */\n function (v, k) { return _this.updateElement(element, k, v); }));\n }\n }\n }\n };\n /** Cross-reference for HTMLElement with directive key */\n /**\n * Cross-reference for HTMLElement with directive key\n * @private\n * @param {?} element\n * @param {?} key\n * @return {?}\n */\n MediaMarshaller.prototype.buildElementKeyMap = /**\n * Cross-reference for HTMLElement with directive key\n * @private\n * @param {?} element\n * @param {?} key\n * @return {?}\n */\n function (element, key) {\n /** @type {?} */\n var keyMap = this.elementKeyMap.get(element);\n if (!keyMap) {\n keyMap = new Set();\n this.elementKeyMap.set(element, keyMap);\n }\n keyMap.add(key);\n };\n /**\n * Other triggers that should force style updates:\n * - directionality\n * - layout changes\n * - mutationobserver updates\n */\n /**\n * Other triggers that should force style updates:\n * - directionality\n * - layout changes\n * - mutationobserver updates\n * @private\n * @param {?} element\n * @param {?} key\n * @param {?} triggers\n * @return {?}\n */\n MediaMarshaller.prototype.watchExtraTriggers = /**\n * Other triggers that should force style updates:\n * - directionality\n * - layout changes\n * - mutationobserver updates\n * @private\n * @param {?} element\n * @param {?} key\n * @param {?} triggers\n * @return {?}\n */\n function (element, key, triggers) {\n var _this = this;\n if (triggers && triggers.length) {\n /** @type {?} */\n var watchers = this.watcherMap.get(element);\n if (!watchers) {\n watchers = new Map();\n this.watcherMap.set(element, watchers);\n }\n /** @type {?} */\n var subscription = watchers.get(key);\n if (!subscription) {\n /** @type {?} */\n var newSubscription = merge.apply(void 0, triggers).subscribe((/**\n * @return {?}\n */\n function () {\n /** @type {?} */\n var currentValue = _this.getValue(element, key);\n _this.updateElement(element, key, currentValue);\n }));\n watchers.set(key, newSubscription);\n }\n }\n };\n /** Breakpoint locator by mediaQuery */\n /**\n * Breakpoint locator by mediaQuery\n * @private\n * @param {?} query\n * @return {?}\n */\n MediaMarshaller.prototype.findByQuery = /**\n * Breakpoint locator by mediaQuery\n * @private\n * @param {?} query\n * @return {?}\n */\n function (query) {\n return this.breakpoints.findByQuery(query);\n };\n /**\n * get the fallback breakpoint for a given element, starting with the current breakpoint\n * @param bpMap\n * @param key\n */\n /**\n * get the fallback breakpoint for a given element, starting with the current breakpoint\n * @private\n * @param {?} bpMap\n * @param {?=} key\n * @return {?}\n */\n MediaMarshaller.prototype.getActivatedValues = /**\n * get the fallback breakpoint for a given element, starting with the current breakpoint\n * @private\n * @param {?} bpMap\n * @param {?=} key\n * @return {?}\n */\n function (bpMap, key) {\n for (var i = 0; i < this.activatedBreakpoints.length; i++) {\n /** @type {?} */\n var activatedBp = this.activatedBreakpoints[i];\n /** @type {?} */\n var valueMap = bpMap.get(activatedBp.alias);\n if (valueMap) {\n if (key === undefined || valueMap.has(key)) {\n return valueMap;\n }\n }\n }\n /** @type {?} */\n var lastHope = bpMap.get('');\n return (key === undefined || lastHope && lastHope.has(key)) ? lastHope : undefined;\n };\n /**\n * Watch for mediaQuery breakpoint activations\n */\n /**\n * Watch for mediaQuery breakpoint activations\n * @private\n * @return {?}\n */\n MediaMarshaller.prototype.observeActivations = /**\n * Watch for mediaQuery breakpoint activations\n * @private\n * @return {?}\n */\n function () {\n /** @type {?} */\n var target = (/** @type {?} */ ((/** @type {?} */ (this))));\n /** @type {?} */\n var queries = this.breakpoints.items.map((/**\n * @param {?} bp\n * @return {?}\n */\n function (bp) { return bp.mediaQuery; }));\n this.matchMedia\n .observe(this.hook.withPrintQuery(queries))\n .pipe(tap(this.hook.interceptEvents(target)), filter(this.hook.blockPropagation()))\n .subscribe(this.onMediaChange.bind(this));\n };\n MediaMarshaller.decorators = [\n { type: Injectable, args: [{ providedIn: 'root' },] },\n ];\n /** @nocollapse */\n MediaMarshaller.ctorParameters = function () { return [\n { type: MatchMedia },\n { type: BreakPointRegistry },\n { type: PrintHook }\n ]; };\n /** @nocollapse */ MediaMarshaller.ngInjectableDef = ɵɵdefineInjectable({ factory: function MediaMarshaller_Factory() { return new MediaMarshaller(ɵɵinject(MatchMedia), ɵɵinject(BreakPointRegistry), ɵɵinject(PrintHook)); }, token: MediaMarshaller, providedIn: \"root\" });\n return MediaMarshaller;\n}());\n/**\n * @param {?} map\n * @param {?} element\n * @param {?} key\n * @param {?=} input\n * @return {?}\n */\nfunction initBuilderMap(map$$1, element, key, input) {\n if (input !== undefined) {\n /** @type {?} */\n var oldMap = map$$1.get(element);\n if (!oldMap) {\n oldMap = new Map();\n map$$1.set(element, oldMap);\n }\n oldMap.set(key, input);\n }\n}\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n\nexport { MatchMedia as ɵMatchMedia, MockMatchMedia as ɵMockMatchMedia, MockMatchMediaProvider as ɵMockMatchMediaProvider, CoreModule, removeStyles, BROWSER_PROVIDER, CLASS_NAME, MediaChange, StylesheetMap, DEFAULT_CONFIG, LAYOUT_CONFIG, SERVER_TOKEN, BREAKPOINT, mergeAlias, BaseDirective2, DEFAULT_BREAKPOINTS, ScreenTypes, ORIENTATION_BREAKPOINTS, BreakPointRegistry, BREAKPOINTS, MediaObserver, MediaTrigger, sortDescendingPriority, sortAscendingPriority, coerceArray, StyleUtils, StyleBuilder, validateBasis, MediaMarshaller, BREAKPOINT_PRINT, PrintHook };\n//# sourceMappingURL=core.es5.js.map\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nimport { __extends, __assign } from 'tslib';\nimport { Directive, ElementRef, Inject, PLATFORM_ID, Injectable, Input, NgModule, Optional, Self, SecurityContext, ɵɵdefineInjectable } from '@angular/core';\nimport { isPlatformServer, NgClass, ɵNgClassImpl, ɵNgClassR2Impl, NgStyle, ɵNgStyleImpl, ɵNgStyleR2Impl } from '@angular/common';\nimport { MediaMarshaller, BaseDirective2, SERVER_TOKEN, StyleBuilder, StyleUtils, LAYOUT_CONFIG, CoreModule } from '@angular/flex-layout/core';\nimport { coerceBooleanProperty } from '@angular/cdk/coercion';\nimport { takeUntil } from 'rxjs/operators';\nimport { DomSanitizer } from '@angular/platform-browser';\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\nvar ImgSrcStyleBuilder = /** @class */ (function (_super) {\n __extends(ImgSrcStyleBuilder, _super);\n function ImgSrcStyleBuilder() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n /**\n * @param {?} url\n * @return {?}\n */\n ImgSrcStyleBuilder.prototype.buildStyles = /**\n * @param {?} url\n * @return {?}\n */\n function (url) {\n return { 'content': url ? \"url(\" + url + \")\" : '' };\n };\n ImgSrcStyleBuilder.decorators = [\n { type: Injectable, args: [{ providedIn: 'root' },] },\n ];\n /** @nocollapse */ ImgSrcStyleBuilder.ngInjectableDef = ɵɵdefineInjectable({ factory: function ImgSrcStyleBuilder_Factory() { return new ImgSrcStyleBuilder(); }, token: ImgSrcStyleBuilder, providedIn: \"root\" });\n return ImgSrcStyleBuilder;\n}(StyleBuilder));\nvar ImgSrcDirective = /** @class */ (function (_super) {\n __extends(ImgSrcDirective, _super);\n function ImgSrcDirective(elementRef, styleBuilder, styler, marshal, platformId, serverModuleLoaded) {\n var _this = _super.call(this, elementRef, styleBuilder, styler, marshal) || this;\n _this.elementRef = elementRef;\n _this.styleBuilder = styleBuilder;\n _this.styler = styler;\n _this.marshal = marshal;\n _this.platformId = platformId;\n _this.serverModuleLoaded = serverModuleLoaded;\n _this.DIRECTIVE_KEY = 'img-src';\n _this.defaultSrc = '';\n _this.styleCache = imgSrcCache;\n _this.init();\n _this.setValue(_this.nativeElement.getAttribute('src') || '', '');\n if (isPlatformServer(_this.platformId) && _this.serverModuleLoaded) {\n _this.nativeElement.setAttribute('src', '');\n }\n return _this;\n }\n Object.defineProperty(ImgSrcDirective.prototype, \"src\", {\n set: /**\n * @param {?} val\n * @return {?}\n */\n function (val) {\n this.defaultSrc = val;\n this.setValue(this.defaultSrc, '');\n },\n enumerable: true,\n configurable: true\n });\n /**\n * Use the [responsively] activated input value to update\n * the host img src attribute or assign a default `img.src=''`\n * if the src has not been defined.\n *\n * Do nothing to standard `` usages, only when responsive\n * keys are present do we actually call `setAttribute()`\n */\n /**\n * Use the [responsively] activated input value to update\n * the host img src attribute or assign a default `img.src=''`\n * if the src has not been defined.\n *\n * Do nothing to standard `` usages, only when responsive\n * keys are present do we actually call `setAttribute()`\n * @protected\n * @param {?=} value\n * @return {?}\n */\n ImgSrcDirective.prototype.updateWithValue = /**\n * Use the [responsively] activated input value to update\n * the host img src attribute or assign a default `img.src=''`\n * if the src has not been defined.\n *\n * Do nothing to standard `` usages, only when responsive\n * keys are present do we actually call `setAttribute()`\n * @protected\n * @param {?=} value\n * @return {?}\n */\n function (value) {\n /** @type {?} */\n var url = value || this.defaultSrc;\n if (isPlatformServer(this.platformId) && this.serverModuleLoaded) {\n this.addStyles(url);\n }\n else {\n this.nativeElement.setAttribute('src', url);\n }\n };\n ImgSrcDirective.decorators = [\n { type: Directive, args: [{ selector: 'img-src-directive' },] },\n ];\n /** @nocollapse */\n ImgSrcDirective.ctorParameters = function () { return [\n { type: ElementRef },\n { type: ImgSrcStyleBuilder },\n { type: StyleUtils },\n { type: MediaMarshaller },\n { type: Object, decorators: [{ type: Inject, args: [PLATFORM_ID,] }] },\n { type: Boolean, decorators: [{ type: Inject, args: [SERVER_TOKEN,] }] }\n ]; };\n ImgSrcDirective.propDecorators = {\n src: [{ type: Input, args: ['src',] }]\n };\n return ImgSrcDirective;\n}(BaseDirective2));\n/** @type {?} */\nvar imgSrcCache = new Map();\n/** @type {?} */\nvar inputs = [\n 'src.xs', 'src.sm', 'src.md', 'src.lg', 'src.xl',\n 'src.lt-sm', 'src.lt-md', 'src.lt-lg', 'src.lt-xl',\n 'src.gt-xs', 'src.gt-sm', 'src.gt-md', 'src.gt-lg'\n];\n/** @type {?} */\nvar selector = \"\\n img[src.xs], img[src.sm], img[src.md], img[src.lg], img[src.xl],\\n img[src.lt-sm], img[src.lt-md], img[src.lt-lg], img[src.lt-xl],\\n img[src.gt-xs], img[src.gt-sm], img[src.gt-md], img[src.gt-lg]\\n\";\n/**\n * This directive provides a responsive API for the HTML 'src' attribute\n * and will update the img.src property upon each responsive activation.\n *\n * e.g.\n * \n *\n * @see https://css-tricks.com/responsive-images-youre-just-changing-resolutions-use-src/\n */\nvar DefaultImgSrcDirective = /** @class */ (function (_super) {\n __extends(DefaultImgSrcDirective, _super);\n function DefaultImgSrcDirective() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.inputs = inputs;\n return _this;\n }\n DefaultImgSrcDirective.decorators = [\n { type: Directive, args: [{ selector: selector, inputs: inputs },] },\n ];\n return DefaultImgSrcDirective;\n}(ImgSrcDirective));\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\nvar ClassDirective = /** @class */ (function (_super) {\n __extends(ClassDirective, _super);\n function ClassDirective(elementRef, styler, marshal, delegate, ngClassInstance) {\n var _this = _super.call(this, elementRef, (/** @type {?} */ (null)), styler, marshal) || this;\n _this.elementRef = elementRef;\n _this.styler = styler;\n _this.marshal = marshal;\n _this.delegate = delegate;\n _this.ngClassInstance = ngClassInstance;\n _this.DIRECTIVE_KEY = 'ngClass';\n if (!_this.ngClassInstance) {\n // Create an instance NgClass Directive instance only if `ngClass=\"\"` has NOT been defined on\n // the same host element; since the responsive variations may be defined...\n _this.ngClassInstance = new NgClass(_this.delegate);\n }\n _this.init();\n _this.setValue('', '');\n return _this;\n }\n Object.defineProperty(ClassDirective.prototype, \"klass\", {\n /**\n * Capture class assignments so we cache the default classes\n * which are merged with activated styles and used as fallbacks.\n */\n set: /**\n * Capture class assignments so we cache the default classes\n * which are merged with activated styles and used as fallbacks.\n * @param {?} val\n * @return {?}\n */\n function (val) {\n this.ngClassInstance.klass = val;\n this.setValue(val, '');\n },\n enumerable: true,\n configurable: true\n });\n /**\n * @protected\n * @param {?} value\n * @return {?}\n */\n ClassDirective.prototype.updateWithValue = /**\n * @protected\n * @param {?} value\n * @return {?}\n */\n function (value) {\n this.ngClassInstance.ngClass = value;\n this.ngClassInstance.ngDoCheck();\n };\n // ******************************************************************\n // Lifecycle Hooks\n // ******************************************************************\n /**\n * For ChangeDetectionStrategy.onPush and ngOnChanges() updates\n */\n // ******************************************************************\n // Lifecycle Hooks\n // ******************************************************************\n /**\n * For ChangeDetectionStrategy.onPush and ngOnChanges() updates\n * @return {?}\n */\n ClassDirective.prototype.ngDoCheck = \n // ******************************************************************\n // Lifecycle Hooks\n // ******************************************************************\n /**\n * For ChangeDetectionStrategy.onPush and ngOnChanges() updates\n * @return {?}\n */\n function () {\n this.ngClassInstance.ngDoCheck();\n };\n ClassDirective.decorators = [\n { type: Directive, args: [{ selector: 'class-directive' },] },\n ];\n /** @nocollapse */\n ClassDirective.ctorParameters = function () { return [\n { type: ElementRef },\n { type: StyleUtils },\n { type: MediaMarshaller },\n { type: ɵNgClassImpl },\n { type: NgClass, decorators: [{ type: Optional }, { type: Self }] }\n ]; };\n ClassDirective.propDecorators = {\n klass: [{ type: Input, args: ['class',] }]\n };\n return ClassDirective;\n}(BaseDirective2));\n/** @type {?} */\nvar inputs$1 = [\n 'ngClass', 'ngClass.xs', 'ngClass.sm', 'ngClass.md', 'ngClass.lg', 'ngClass.xl',\n 'ngClass.lt-sm', 'ngClass.lt-md', 'ngClass.lt-lg', 'ngClass.lt-xl',\n 'ngClass.gt-xs', 'ngClass.gt-sm', 'ngClass.gt-md', 'ngClass.gt-lg'\n];\n/** @type {?} */\nvar selector$1 = \"\\n [ngClass], [ngClass.xs], [ngClass.sm], [ngClass.md], [ngClass.lg], [ngClass.xl],\\n [ngClass.lt-sm], [ngClass.lt-md], [ngClass.lt-lg], [ngClass.lt-xl],\\n [ngClass.gt-xs], [ngClass.gt-sm], [ngClass.gt-md], [ngClass.gt-lg]\\n\";\n// tslint:disable-next-line:variable-name\n/** @type {?} */\nvar LayoutNgClassImplProvider = {\n provide: ɵNgClassImpl,\n useClass: ɵNgClassR2Impl\n};\n/**\n * Directive to add responsive support for ngClass.\n * This maintains the core functionality of 'ngClass' and adds responsive API\n * Note: this class is a no-op when rendered on the server\n */\nvar DefaultClassDirective = /** @class */ (function (_super) {\n __extends(DefaultClassDirective, _super);\n function DefaultClassDirective() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.inputs = inputs$1;\n return _this;\n }\n DefaultClassDirective.decorators = [\n { type: Directive, args: [{ selector: selector$1, inputs: inputs$1, providers: [LayoutNgClassImplProvider] },] },\n ];\n return DefaultClassDirective;\n}(ClassDirective));\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\nvar ShowHideStyleBuilder = /** @class */ (function (_super) {\n __extends(ShowHideStyleBuilder, _super);\n function ShowHideStyleBuilder() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n /**\n * @param {?} show\n * @param {?} parent\n * @return {?}\n */\n ShowHideStyleBuilder.prototype.buildStyles = /**\n * @param {?} show\n * @param {?} parent\n * @return {?}\n */\n function (show, parent) {\n /** @type {?} */\n var shouldShow = show === 'true';\n return { 'display': shouldShow ? parent.display : 'none' };\n };\n ShowHideStyleBuilder.decorators = [\n { type: Injectable, args: [{ providedIn: 'root' },] },\n ];\n /** @nocollapse */ ShowHideStyleBuilder.ngInjectableDef = ɵɵdefineInjectable({ factory: function ShowHideStyleBuilder_Factory() { return new ShowHideStyleBuilder(); }, token: ShowHideStyleBuilder, providedIn: \"root\" });\n return ShowHideStyleBuilder;\n}(StyleBuilder));\nvar ShowHideDirective = /** @class */ (function (_super) {\n __extends(ShowHideDirective, _super);\n function ShowHideDirective(elementRef, styleBuilder, styler, marshal, layoutConfig, platformId, serverModuleLoaded) {\n var _this = _super.call(this, elementRef, styleBuilder, styler, marshal) || this;\n _this.elementRef = elementRef;\n _this.styleBuilder = styleBuilder;\n _this.styler = styler;\n _this.marshal = marshal;\n _this.layoutConfig = layoutConfig;\n _this.platformId = platformId;\n _this.serverModuleLoaded = serverModuleLoaded;\n _this.DIRECTIVE_KEY = 'show-hide';\n /**\n * Original dom Elements CSS display style\n */\n _this.display = '';\n _this.hasLayout = false;\n _this.hasFlexChild = false;\n return _this;\n }\n // *********************************************\n // Lifecycle Methods\n // *********************************************\n // *********************************************\n // Lifecycle Methods\n // *********************************************\n /**\n * @return {?}\n */\n ShowHideDirective.prototype.ngAfterViewInit = \n // *********************************************\n // Lifecycle Methods\n // *********************************************\n /**\n * @return {?}\n */\n function () {\n this.trackExtraTriggers();\n /** @type {?} */\n var children = Array.from(this.nativeElement.children);\n for (var i = 0; i < children.length; i++) {\n if (this.marshal.hasValue((/** @type {?} */ (children[i])), 'flex')) {\n this.hasFlexChild = true;\n break;\n }\n }\n if (DISPLAY_MAP.has(this.nativeElement)) {\n this.display = (/** @type {?} */ (DISPLAY_MAP.get(this.nativeElement)));\n }\n else {\n this.display = this.getDisplayStyle();\n DISPLAY_MAP.set(this.nativeElement, this.display);\n }\n this.init();\n // set the default to show unless explicitly overridden\n /** @type {?} */\n var defaultValue = this.marshal.getValue(this.nativeElement, this.DIRECTIVE_KEY, '');\n if (defaultValue === undefined || defaultValue === '') {\n this.setValue(true, '');\n }\n else {\n this.triggerUpdate();\n }\n };\n /**\n * On changes to any @Input properties...\n * Default to use the non-responsive Input value ('fxShow')\n * Then conditionally override with the mq-activated Input's current value\n */\n /**\n * On changes to any \\@Input properties...\n * Default to use the non-responsive Input value ('fxShow')\n * Then conditionally override with the mq-activated Input's current value\n * @param {?} changes\n * @return {?}\n */\n ShowHideDirective.prototype.ngOnChanges = /**\n * On changes to any \\@Input properties...\n * Default to use the non-responsive Input value ('fxShow')\n * Then conditionally override with the mq-activated Input's current value\n * @param {?} changes\n * @return {?}\n */\n function (changes) {\n var _this = this;\n Object.keys(changes).forEach((/**\n * @param {?} key\n * @return {?}\n */\n function (key) {\n if (_this.inputs.indexOf(key) !== -1) {\n /** @type {?} */\n var inputKey = key.split('.');\n /** @type {?} */\n var bp = inputKey.slice(1).join('.');\n /** @type {?} */\n var inputValue = changes[key].currentValue;\n /** @type {?} */\n var shouldShow = inputValue !== '' ?\n inputValue !== 0 ? coerceBooleanProperty(inputValue) : false\n : true;\n if (inputKey[0] === 'fxHide') {\n shouldShow = !shouldShow;\n }\n _this.setValue(shouldShow, bp);\n }\n }));\n };\n // *********************************************\n // Protected methods\n // *********************************************\n /**\n * Watch for these extra triggers to update fxShow, fxHide stylings\n */\n // *********************************************\n // Protected methods\n // *********************************************\n /**\n * Watch for these extra triggers to update fxShow, fxHide stylings\n * @protected\n * @return {?}\n */\n ShowHideDirective.prototype.trackExtraTriggers = \n // *********************************************\n // Protected methods\n // *********************************************\n /**\n * Watch for these extra triggers to update fxShow, fxHide stylings\n * @protected\n * @return {?}\n */\n function () {\n var _this = this;\n this.hasLayout = this.marshal.hasValue(this.nativeElement, 'layout');\n ['layout', 'layout-align'].forEach((/**\n * @param {?} key\n * @return {?}\n */\n function (key) {\n _this.marshal\n .trackValue(_this.nativeElement, key)\n .pipe(takeUntil(_this.destroySubject))\n .subscribe(_this.triggerUpdate.bind(_this));\n }));\n };\n /**\n * Override accessor to the current HTMLElement's `display` style\n * Note: Show/Hide will not change the display to 'flex' but will set it to 'block'\n * unless it was already explicitly specified inline or in a CSS stylesheet.\n */\n /**\n * Override accessor to the current HTMLElement's `display` style\n * Note: Show/Hide will not change the display to 'flex' but will set it to 'block'\n * unless it was already explicitly specified inline or in a CSS stylesheet.\n * @protected\n * @return {?}\n */\n ShowHideDirective.prototype.getDisplayStyle = /**\n * Override accessor to the current HTMLElement's `display` style\n * Note: Show/Hide will not change the display to 'flex' but will set it to 'block'\n * unless it was already explicitly specified inline or in a CSS stylesheet.\n * @protected\n * @return {?}\n */\n function () {\n return (this.hasLayout || (this.hasFlexChild && this.layoutConfig.addFlexToParent)) ?\n 'flex' : this.styler.lookupStyle(this.nativeElement, 'display', true);\n };\n /** Validate the visibility value and then update the host's inline display style */\n /**\n * Validate the visibility value and then update the host's inline display style\n * @protected\n * @param {?=} value\n * @return {?}\n */\n ShowHideDirective.prototype.updateWithValue = /**\n * Validate the visibility value and then update the host's inline display style\n * @protected\n * @param {?=} value\n * @return {?}\n */\n function (value) {\n if (value === void 0) { value = true; }\n if (value === '') {\n return;\n }\n this.addStyles(value ? 'true' : 'false', { display: this.display });\n if (isPlatformServer(this.platformId) && this.serverModuleLoaded) {\n this.nativeElement.style.setProperty('display', '');\n }\n this.marshal.triggerUpdate((/** @type {?} */ (this.parentElement)), 'layout-gap');\n };\n ShowHideDirective.decorators = [\n { type: Directive, args: [{ selector: 'show-hide-directive' },] },\n ];\n /** @nocollapse */\n ShowHideDirective.ctorParameters = function () { return [\n { type: ElementRef },\n { type: ShowHideStyleBuilder },\n { type: StyleUtils },\n { type: MediaMarshaller },\n { type: undefined, decorators: [{ type: Inject, args: [LAYOUT_CONFIG,] }] },\n { type: Object, decorators: [{ type: Inject, args: [PLATFORM_ID,] }] },\n { type: Boolean, decorators: [{ type: Optional }, { type: Inject, args: [SERVER_TOKEN,] }] }\n ]; };\n return ShowHideDirective;\n}(BaseDirective2));\n/** @type {?} */\nvar DISPLAY_MAP = new WeakMap();\n/** @type {?} */\nvar inputs$2 = [\n 'fxShow', 'fxShow.print',\n 'fxShow.xs', 'fxShow.sm', 'fxShow.md', 'fxShow.lg', 'fxShow.xl',\n 'fxShow.lt-sm', 'fxShow.lt-md', 'fxShow.lt-lg', 'fxShow.lt-xl',\n 'fxShow.gt-xs', 'fxShow.gt-sm', 'fxShow.gt-md', 'fxShow.gt-lg',\n 'fxHide', 'fxHide.print',\n 'fxHide.xs', 'fxHide.sm', 'fxHide.md', 'fxHide.lg', 'fxHide.xl',\n 'fxHide.lt-sm', 'fxHide.lt-md', 'fxHide.lt-lg', 'fxHide.lt-xl',\n 'fxHide.gt-xs', 'fxHide.gt-sm', 'fxHide.gt-md', 'fxHide.gt-lg'\n];\n/** @type {?} */\nvar selector$2 = \"\\n [fxShow], [fxShow.print],\\n [fxShow.xs], [fxShow.sm], [fxShow.md], [fxShow.lg], [fxShow.xl],\\n [fxShow.lt-sm], [fxShow.lt-md], [fxShow.lt-lg], [fxShow.lt-xl],\\n [fxShow.gt-xs], [fxShow.gt-sm], [fxShow.gt-md], [fxShow.gt-lg],\\n [fxHide], [fxHide.print],\\n [fxHide.xs], [fxHide.sm], [fxHide.md], [fxHide.lg], [fxHide.xl],\\n [fxHide.lt-sm], [fxHide.lt-md], [fxHide.lt-lg], [fxHide.lt-xl],\\n [fxHide.gt-xs], [fxHide.gt-sm], [fxHide.gt-md], [fxHide.gt-lg]\\n\";\n/**\n * 'show' Layout API directive\n */\nvar DefaultShowHideDirective = /** @class */ (function (_super) {\n __extends(DefaultShowHideDirective, _super);\n function DefaultShowHideDirective() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.inputs = inputs$2;\n return _this;\n }\n DefaultShowHideDirective.decorators = [\n { type: Directive, args: [{ selector: selector$2, inputs: inputs$2 },] },\n ];\n return DefaultShowHideDirective;\n}(ShowHideDirective));\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n\n/**\n * NgStyle allowed inputs\n */\nvar /**\n * NgStyle allowed inputs\n */\nNgStyleKeyValue = /** @class */ (function () {\n function NgStyleKeyValue(key, value, noQuotes) {\n if (noQuotes === void 0) { noQuotes = true; }\n this.key = key;\n this.value = value;\n this.key = noQuotes ? key.replace(/['\"]/g, '').trim() : key.trim();\n this.value = noQuotes ? value.replace(/['\"]/g, '').trim() : value.trim();\n this.value = this.value.replace(/;/, '');\n }\n return NgStyleKeyValue;\n}());\n/**\n * @param {?} target\n * @return {?}\n */\nfunction getType(target) {\n /** @type {?} */\n var what = typeof target;\n if (what === 'object') {\n return (target.constructor === Array) ? 'array' :\n (target.constructor === Set) ? 'set' : 'object';\n }\n return what;\n}\n/**\n * Split string of key:value pairs into Array of k-v pairs\n * e.g. 'key:value; key:value; key:value;' -> ['key:value',...]\n * @param {?} source\n * @param {?=} delimiter\n * @return {?}\n */\nfunction buildRawList(source, delimiter) {\n if (delimiter === void 0) { delimiter = ';'; }\n return String(source)\n .trim()\n .split(delimiter)\n .map((/**\n * @param {?} val\n * @return {?}\n */\n function (val) { return val.trim(); }))\n .filter((/**\n * @param {?} val\n * @return {?}\n */\n function (val) { return val !== ''; }));\n}\n/**\n * Convert array of key:value strings to a iterable map object\n * @param {?} styles\n * @param {?=} sanitize\n * @return {?}\n */\nfunction buildMapFromList(styles, sanitize) {\n /** @type {?} */\n var sanitizeValue = (/**\n * @param {?} it\n * @return {?}\n */\n function (it) {\n if (sanitize) {\n it.value = sanitize(it.value);\n }\n return it;\n });\n return styles\n .map(stringToKeyValue)\n .filter((/**\n * @param {?} entry\n * @return {?}\n */\n function (entry) { return !!entry; }))\n .map(sanitizeValue)\n .reduce(keyValuesToMap, (/** @type {?} */ ({})));\n}\n/**\n * Convert Set or raw Object to an iterable NgStyleMap\n * @param {?} source\n * @param {?=} sanitize\n * @return {?}\n */\nfunction buildMapFromSet(source, sanitize) {\n /** @type {?} */\n var list = [];\n if (getType(source) === 'set') {\n ((/** @type {?} */ (source))).forEach((/**\n * @param {?} entry\n * @return {?}\n */\n function (entry) { return list.push(entry); }));\n }\n else {\n Object.keys(source).forEach((/**\n * @param {?} key\n * @return {?}\n */\n function (key) {\n list.push(key + \":\" + ((/** @type {?} */ (source)))[key]);\n }));\n }\n return buildMapFromList(list, sanitize);\n}\n/**\n * Convert 'key:value' -> [key, value]\n * @param {?} it\n * @return {?}\n */\nfunction stringToKeyValue(it) {\n var _a = it.split(':'), key = _a[0], vals = _a.slice(1);\n return new NgStyleKeyValue(key, vals.join(':'));\n}\n/**\n * Convert [ [key,value] ] -> { key : value }\n * @param {?} map\n * @param {?} entry\n * @return {?}\n */\nfunction keyValuesToMap(map, entry) {\n if (!!entry.key) {\n map[entry.key] = entry.value;\n }\n return map;\n}\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\nvar StyleDirective = /** @class */ (function (_super) {\n __extends(StyleDirective, _super);\n function StyleDirective(elementRef, styler, marshal, delegate, sanitizer, ngStyleInstance, serverLoaded, platformId) {\n var _this = _super.call(this, elementRef, (/** @type {?} */ (null)), styler, marshal) || this;\n _this.elementRef = elementRef;\n _this.styler = styler;\n _this.marshal = marshal;\n _this.delegate = delegate;\n _this.sanitizer = sanitizer;\n _this.ngStyleInstance = ngStyleInstance;\n _this.DIRECTIVE_KEY = 'ngStyle';\n if (!_this.ngStyleInstance) {\n // Create an instance NgClass Directive instance only if `ngClass=\"\"` has NOT been\n // defined on the same host element; since the responsive variations may be defined...\n _this.ngStyleInstance = new NgStyle(_this.delegate);\n }\n _this.init();\n /** @type {?} */\n var styles = _this.nativeElement.getAttribute('style') || '';\n _this.fallbackStyles = _this.buildStyleMap(styles);\n _this.isServer = serverLoaded && isPlatformServer(platformId);\n return _this;\n }\n /** Add generated styles */\n /**\n * Add generated styles\n * @protected\n * @param {?} value\n * @return {?}\n */\n StyleDirective.prototype.updateWithValue = /**\n * Add generated styles\n * @protected\n * @param {?} value\n * @return {?}\n */\n function (value) {\n /** @type {?} */\n var styles = this.buildStyleMap(value);\n this.ngStyleInstance.ngStyle = __assign({}, this.fallbackStyles, styles);\n if (this.isServer) {\n this.applyStyleToElement(styles);\n }\n this.ngStyleInstance.ngDoCheck();\n };\n /** Remove generated styles */\n /**\n * Remove generated styles\n * @protected\n * @return {?}\n */\n StyleDirective.prototype.clearStyles = /**\n * Remove generated styles\n * @protected\n * @return {?}\n */\n function () {\n this.ngStyleInstance.ngStyle = this.fallbackStyles;\n this.ngStyleInstance.ngDoCheck();\n };\n /**\n * Convert raw strings to ngStyleMap; which is required by ngStyle\n * NOTE: Raw string key-value pairs MUST be delimited by `;`\n * Comma-delimiters are not supported due to complexities of\n * possible style values such as `rgba(x,x,x,x)` and others\n */\n /**\n * Convert raw strings to ngStyleMap; which is required by ngStyle\n * NOTE: Raw string key-value pairs MUST be delimited by `;`\n * Comma-delimiters are not supported due to complexities of\n * possible style values such as `rgba(x,x,x,x)` and others\n * @protected\n * @param {?} styles\n * @return {?}\n */\n StyleDirective.prototype.buildStyleMap = /**\n * Convert raw strings to ngStyleMap; which is required by ngStyle\n * NOTE: Raw string key-value pairs MUST be delimited by `;`\n * Comma-delimiters are not supported due to complexities of\n * possible style values such as `rgba(x,x,x,x)` and others\n * @protected\n * @param {?} styles\n * @return {?}\n */\n function (styles) {\n var _this = this;\n // Always safe-guard (aka sanitize) style property values\n /** @type {?} */\n var sanitizer = (/**\n * @param {?} val\n * @return {?}\n */\n function (val) {\n return _this.sanitizer.sanitize(SecurityContext.STYLE, val) || '';\n });\n if (styles) {\n switch (getType(styles)) {\n case 'string': return buildMapFromList$1(buildRawList(styles), sanitizer);\n case 'array': return buildMapFromList$1((/** @type {?} */ (styles)), sanitizer);\n case 'set': return buildMapFromSet(styles, sanitizer);\n default: return buildMapFromSet(styles, sanitizer);\n }\n }\n return {};\n };\n // ******************************************************************\n // Lifecycle Hooks\n // ******************************************************************\n /** For ChangeDetectionStrategy.onPush and ngOnChanges() updates */\n // ******************************************************************\n // Lifecycle Hooks\n // ******************************************************************\n /**\n * For ChangeDetectionStrategy.onPush and ngOnChanges() updates\n * @return {?}\n */\n StyleDirective.prototype.ngDoCheck = \n // ******************************************************************\n // Lifecycle Hooks\n // ******************************************************************\n /**\n * For ChangeDetectionStrategy.onPush and ngOnChanges() updates\n * @return {?}\n */\n function () {\n this.ngStyleInstance.ngDoCheck();\n };\n StyleDirective.decorators = [\n { type: Directive, args: [{ selector: 'style-directive' },] },\n ];\n /** @nocollapse */\n StyleDirective.ctorParameters = function () { return [\n { type: ElementRef },\n { type: StyleUtils },\n { type: MediaMarshaller },\n { type: ɵNgStyleImpl },\n { type: DomSanitizer },\n { type: NgStyle, decorators: [{ type: Optional }, { type: Self }] },\n { type: Boolean, decorators: [{ type: Optional }, { type: Inject, args: [SERVER_TOKEN,] }] },\n { type: Object, decorators: [{ type: Inject, args: [PLATFORM_ID,] }] }\n ]; };\n return StyleDirective;\n}(BaseDirective2));\n/** @type {?} */\nvar inputs$3 = [\n 'ngStyle',\n 'ngStyle.xs', 'ngStyle.sm', 'ngStyle.md', 'ngStyle.lg', 'ngStyle.xl',\n 'ngStyle.lt-sm', 'ngStyle.lt-md', 'ngStyle.lt-lg', 'ngStyle.lt-xl',\n 'ngStyle.gt-xs', 'ngStyle.gt-sm', 'ngStyle.gt-md', 'ngStyle.gt-lg'\n];\n/** @type {?} */\nvar selector$3 = \"\\n [ngStyle],\\n [ngStyle.xs], [ngStyle.sm], [ngStyle.md], [ngStyle.lg], [ngStyle.xl],\\n [ngStyle.lt-sm], [ngStyle.lt-md], [ngStyle.lt-lg], [ngStyle.lt-xl],\\n [ngStyle.gt-xs], [ngStyle.gt-sm], [ngStyle.gt-md], [ngStyle.gt-lg]\\n\";\n// tslint:disable-next-line:variable-name\n/** @type {?} */\nvar LayoutNgStyleImplProvider = {\n provide: ɵNgStyleImpl,\n useClass: ɵNgStyleR2Impl\n};\n/**\n * Directive to add responsive support for ngStyle.\n *\n */\nvar DefaultStyleDirective = /** @class */ (function (_super) {\n __extends(DefaultStyleDirective, _super);\n function DefaultStyleDirective() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.inputs = inputs$3;\n return _this;\n }\n DefaultStyleDirective.decorators = [\n { type: Directive, args: [{ selector: selector$3, inputs: inputs$3, providers: [LayoutNgStyleImplProvider] },] },\n ];\n return DefaultStyleDirective;\n}(StyleDirective));\n/**\n * Build a styles map from a list of styles, while sanitizing bad values first\n * @param {?} styles\n * @param {?=} sanitize\n * @return {?}\n */\nfunction buildMapFromList$1(styles, sanitize) {\n /** @type {?} */\n var sanitizeValue = (/**\n * @param {?} it\n * @return {?}\n */\n function (it) {\n if (sanitize) {\n it.value = sanitize(it.value);\n }\n return it;\n });\n return styles\n .map(stringToKeyValue)\n .filter((/**\n * @param {?} entry\n * @return {?}\n */\n function (entry) { return !!entry; }))\n .map(sanitizeValue)\n .reduce(keyValuesToMap, (/** @type {?} */ ({})));\n}\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n/** @type {?} */\nvar ALL_DIRECTIVES = [\n DefaultShowHideDirective,\n DefaultClassDirective,\n DefaultStyleDirective,\n DefaultImgSrcDirective,\n ClassDirective,\n ImgSrcDirective,\n ShowHideDirective,\n StyleDirective,\n];\n/**\n * *****************************************************************\n * Define module for the Extended API\n * *****************************************************************\n */\nvar ExtendedModule = /** @class */ (function () {\n function ExtendedModule() {\n }\n ExtendedModule.decorators = [\n { type: NgModule, args: [{\n imports: [CoreModule],\n declarations: ALL_DIRECTIVES.slice(),\n exports: ALL_DIRECTIVES.slice()\n },] },\n ];\n return ExtendedModule;\n}());\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n\nexport { ExtendedModule, ClassDirective, LayoutNgClassImplProvider, DefaultClassDirective, ImgSrcStyleBuilder, ImgSrcDirective, DefaultImgSrcDirective, ShowHideStyleBuilder, ShowHideDirective, DefaultShowHideDirective, StyleDirective, LayoutNgStyleImplProvider, DefaultStyleDirective };\n//# sourceMappingURL=extended.es5.js.map\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nimport { Version, Inject, NgModule, Optional, PLATFORM_ID } from '@angular/core';\nimport { __assign } from 'tslib';\nimport { isPlatformServer } from '@angular/common';\nimport { SERVER_TOKEN, LAYOUT_CONFIG, DEFAULT_CONFIG, BREAKPOINT } from '@angular/flex-layout/core';\nexport { ɵMatchMedia, ɵMockMatchMedia, ɵMockMatchMediaProvider, CoreModule, removeStyles, BROWSER_PROVIDER, CLASS_NAME, MediaChange, StylesheetMap, DEFAULT_CONFIG, LAYOUT_CONFIG, SERVER_TOKEN, BREAKPOINT, mergeAlias, BaseDirective2, DEFAULT_BREAKPOINTS, ScreenTypes, ORIENTATION_BREAKPOINTS, BreakPointRegistry, BREAKPOINTS, MediaObserver, MediaTrigger, sortDescendingPriority, sortAscendingPriority, coerceArray, StyleUtils, StyleBuilder, validateBasis, MediaMarshaller, BREAKPOINT_PRINT, PrintHook } from '@angular/flex-layout/core';\nimport { ExtendedModule } from '@angular/flex-layout/extended';\nexport { ExtendedModule, ClassDirective, LayoutNgClassImplProvider, DefaultClassDirective, ImgSrcStyleBuilder, ImgSrcDirective, DefaultImgSrcDirective, ShowHideStyleBuilder, ShowHideDirective, DefaultShowHideDirective, StyleDirective, LayoutNgStyleImplProvider, DefaultStyleDirective } from '@angular/flex-layout/extended';\nimport { FlexModule } from '@angular/flex-layout/flex';\nexport { FlexModule, FlexStyleBuilder, FlexDirective, DefaultFlexDirective, FlexAlignStyleBuilder, FlexAlignDirective, DefaultFlexAlignDirective, FlexFillStyleBuilder, FlexFillDirective, FlexOffsetStyleBuilder, FlexOffsetDirective, DefaultFlexOffsetDirective, FlexOrderStyleBuilder, FlexOrderDirective, DefaultFlexOrderDirective, LayoutStyleBuilder, LayoutDirective, DefaultLayoutDirective, LayoutAlignStyleBuilder, LayoutAlignDirective, DefaultLayoutAlignDirective, LayoutGapStyleBuilder, LayoutGapDirective, DefaultLayoutGapDirective } from '@angular/flex-layout/flex';\nimport { GridModule } from '@angular/flex-layout/grid';\nexport { ɵf2, ɵe2, ɵd2, ɵi2, ɵh2, ɵg2, ɵl2, ɵk2, ɵj2, ɵo2, ɵn2, ɵm2, ɵr2, ɵq2, ɵp2, ɵu2, ɵt2, ɵs2, ɵx2, ɵw2, ɵv2, ɵba2, ɵz2, ɵy2, ɵc2, ɵb2, ɵa2, ɵbd2, ɵbc2, ɵbb2, ɵbg2, ɵbf2, ɵbe2, GridModule } from '@angular/flex-layout/grid';\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n/**\n * Current version of Angular Flex-Layout.\n * @type {?}\n */\nvar VERSION = new Version('8.0.0-beta.27');\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n/**\n * FlexLayoutModule -- the main import for all utilities in the Angular Layout library\n * * Will automatically provide Flex, Grid, and Extended modules for use in the application\n * * Can be configured using the static withConfig method, options viewable on the Wiki's\n * Configuration page\n */\nvar FlexLayoutModule = /** @class */ (function () {\n function FlexLayoutModule(serverModuleLoaded, platformId) {\n if (isPlatformServer(platformId) && !serverModuleLoaded) {\n console.warn('Warning: Flex Layout loaded on the server without FlexLayoutServerModule');\n }\n }\n /**\n * Initialize the FlexLayoutModule with a set of config options,\n * which sets the corresponding tokens accordingly\n */\n /**\n * Initialize the FlexLayoutModule with a set of config options,\n * which sets the corresponding tokens accordingly\n * @param {?} configOptions\n * @param {?=} breakpoints\n * @return {?}\n */\n FlexLayoutModule.withConfig = /**\n * Initialize the FlexLayoutModule with a set of config options,\n * which sets the corresponding tokens accordingly\n * @param {?} configOptions\n * @param {?=} breakpoints\n * @return {?}\n */\n function (configOptions, breakpoints) {\n if (breakpoints === void 0) { breakpoints = []; }\n return {\n ngModule: FlexLayoutModule,\n providers: configOptions.serverLoaded ?\n [\n { provide: LAYOUT_CONFIG, useValue: __assign({}, DEFAULT_CONFIG, configOptions) },\n { provide: BREAKPOINT, useValue: breakpoints, multi: true },\n { provide: SERVER_TOKEN, useValue: true },\n ] : [\n { provide: LAYOUT_CONFIG, useValue: __assign({}, DEFAULT_CONFIG, configOptions) },\n { provide: BREAKPOINT, useValue: breakpoints, multi: true },\n ]\n };\n };\n FlexLayoutModule.decorators = [\n { type: NgModule, args: [{\n imports: [FlexModule, ExtendedModule, GridModule],\n exports: [FlexModule, ExtendedModule, GridModule]\n },] },\n ];\n /** @nocollapse */\n FlexLayoutModule.ctorParameters = function () { return [\n { type: Boolean, decorators: [{ type: Optional }, { type: Inject, args: [SERVER_TOKEN,] }] },\n { type: Object, decorators: [{ type: Inject, args: [PLATFORM_ID,] }] }\n ]; };\n return FlexLayoutModule;\n}());\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n\nexport { VERSION, FlexLayoutModule };\n//# sourceMappingURL=flex-layout.es5.js.map\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nimport { __extends, __assign } from 'tslib';\nimport { Directive, ElementRef, Injectable, Optional, NgModule, NgZone, Inject, Input, ɵɵdefineInjectable, ɵɵinject } from '@angular/core';\nimport { BaseDirective2, StyleBuilder, StyleUtils, MediaMarshaller, CoreModule, LAYOUT_CONFIG, validateBasis } from '@angular/flex-layout/core';\nimport { Directionality, BidiModule } from '@angular/cdk/bidi';\nimport { Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n * @type {?}\n */\nvar INLINE = 'inline';\n/** @type {?} */\nvar LAYOUT_VALUES = ['row', 'column', 'row-reverse', 'column-reverse'];\n/**\n * Validate the direction|'direction wrap' value and then update the host's inline flexbox styles\n * @param {?} value\n * @return {?}\n */\nfunction buildLayoutCSS(value) {\n var _a = validateValue(value), direction = _a[0], wrap = _a[1], isInline = _a[2];\n return buildCSS(direction, wrap, isInline);\n}\n/**\n * Validate the value to be one of the acceptable value options\n * Use default fallback of 'row'\n * @param {?} value\n * @return {?}\n */\nfunction validateValue(value) {\n value = value ? value.toLowerCase() : '';\n var _a = value.split(' '), direction = _a[0], wrap = _a[1], inline = _a[2];\n // First value must be the `flex-direction`\n if (!LAYOUT_VALUES.find((/**\n * @param {?} x\n * @return {?}\n */\n function (x) { return x === direction; }))) {\n direction = LAYOUT_VALUES[0];\n }\n if (wrap === INLINE) {\n wrap = (inline !== INLINE) ? inline : '';\n inline = INLINE;\n }\n return [direction, validateWrapValue(wrap), !!inline];\n}\n/**\n * Determine if the validated, flex-direction value specifies\n * a horizontal/row flow.\n * @param {?} value\n * @return {?}\n */\nfunction isFlowHorizontal(value) {\n var flow = validateValue(value)[0];\n return flow.indexOf('row') > -1;\n}\n/**\n * Convert layout-wrap='' to expected flex-wrap style\n * @param {?} value\n * @return {?}\n */\nfunction validateWrapValue(value) {\n if (!!value) {\n switch (value.toLowerCase()) {\n case 'reverse':\n case 'wrap-reverse':\n case 'reverse-wrap':\n value = 'wrap-reverse';\n break;\n case 'no':\n case 'none':\n case 'nowrap':\n value = 'nowrap';\n break;\n // All other values fallback to 'wrap'\n default:\n value = 'wrap';\n break;\n }\n }\n return value;\n}\n/**\n * Build the CSS that should be assigned to the element instance\n * BUG:\n * 1) min-height on a column flex container won’t apply to its flex item children in IE 10-11.\n * Use height instead if possible; height : vh;\n *\n * This way any padding or border specified on the child elements are\n * laid out and drawn inside that element's specified width and height.\n * @param {?} direction\n * @param {?=} wrap\n * @param {?=} inline\n * @return {?}\n */\nfunction buildCSS(direction, wrap, inline) {\n if (wrap === void 0) { wrap = null; }\n if (inline === void 0) { inline = false; }\n return {\n 'display': inline ? 'inline-flex' : 'flex',\n 'box-sizing': 'border-box',\n 'flex-direction': direction,\n 'flex-wrap': !!wrap ? wrap : null\n };\n}\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\nvar LayoutStyleBuilder = /** @class */ (function (_super) {\n __extends(LayoutStyleBuilder, _super);\n function LayoutStyleBuilder() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n /**\n * @param {?} input\n * @return {?}\n */\n LayoutStyleBuilder.prototype.buildStyles = /**\n * @param {?} input\n * @return {?}\n */\n function (input) {\n return buildLayoutCSS(input);\n };\n LayoutStyleBuilder.decorators = [\n { type: Injectable, args: [{ providedIn: 'root' },] },\n ];\n /** @nocollapse */ LayoutStyleBuilder.ngInjectableDef = ɵɵdefineInjectable({ factory: function LayoutStyleBuilder_Factory() { return new LayoutStyleBuilder(); }, token: LayoutStyleBuilder, providedIn: \"root\" });\n return LayoutStyleBuilder;\n}(StyleBuilder));\n/** @type {?} */\nvar inputs = [\n 'fxLayout', 'fxLayout.xs', 'fxLayout.sm', 'fxLayout.md',\n 'fxLayout.lg', 'fxLayout.xl', 'fxLayout.lt-sm', 'fxLayout.lt-md',\n 'fxLayout.lt-lg', 'fxLayout.lt-xl', 'fxLayout.gt-xs', 'fxLayout.gt-sm',\n 'fxLayout.gt-md', 'fxLayout.gt-lg'\n];\n/** @type {?} */\nvar selector = \"\\n [fxLayout], [fxLayout.xs], [fxLayout.sm], [fxLayout.md],\\n [fxLayout.lg], [fxLayout.xl], [fxLayout.lt-sm], [fxLayout.lt-md],\\n [fxLayout.lt-lg], [fxLayout.lt-xl], [fxLayout.gt-xs], [fxLayout.gt-sm],\\n [fxLayout.gt-md], [fxLayout.gt-lg]\\n\";\n/**\n * 'layout' flexbox styling directive\n * Defines the positioning flow direction for the child elements: row or column\n * Optional values: column or row (default)\n * @see https://css-tricks.com/almanac/properties/f/flex-direction/\n *\n */\nvar LayoutDirective = /** @class */ (function (_super) {\n __extends(LayoutDirective, _super);\n function LayoutDirective(elRef, styleUtils, styleBuilder, marshal) {\n var _this = _super.call(this, elRef, styleBuilder, styleUtils, marshal) || this;\n _this.elRef = elRef;\n _this.styleUtils = styleUtils;\n _this.styleBuilder = styleBuilder;\n _this.marshal = marshal;\n _this.DIRECTIVE_KEY = 'layout';\n _this.styleCache = layoutCache;\n _this.init();\n return _this;\n }\n LayoutDirective.decorators = [\n { type: Directive, args: [{ selector: 'layout-directive' },] },\n ];\n /** @nocollapse */\n LayoutDirective.ctorParameters = function () { return [\n { type: ElementRef },\n { type: StyleUtils },\n { type: LayoutStyleBuilder, decorators: [{ type: Optional }] },\n { type: MediaMarshaller }\n ]; };\n return LayoutDirective;\n}(BaseDirective2));\nvar DefaultLayoutDirective = /** @class */ (function (_super) {\n __extends(DefaultLayoutDirective, _super);\n function DefaultLayoutDirective() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.inputs = inputs;\n return _this;\n }\n DefaultLayoutDirective.decorators = [\n { type: Directive, args: [{ selector: selector, inputs: inputs },] },\n ];\n return DefaultLayoutDirective;\n}(LayoutDirective));\n/** @type {?} */\nvar layoutCache = new Map();\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n/** @type {?} */\nvar CLEAR_MARGIN_CSS = {\n 'margin-left': null,\n 'margin-right': null,\n 'margin-top': null,\n 'margin-bottom': null\n};\nvar LayoutGapStyleBuilder = /** @class */ (function (_super) {\n __extends(LayoutGapStyleBuilder, _super);\n function LayoutGapStyleBuilder(_styler) {\n var _this = _super.call(this) || this;\n _this._styler = _styler;\n return _this;\n }\n /**\n * @param {?} gapValue\n * @param {?} parent\n * @return {?}\n */\n LayoutGapStyleBuilder.prototype.buildStyles = /**\n * @param {?} gapValue\n * @param {?} parent\n * @return {?}\n */\n function (gapValue, parent) {\n if (gapValue.endsWith(GRID_SPECIFIER)) {\n gapValue = gapValue.slice(0, gapValue.indexOf(GRID_SPECIFIER));\n // Add the margin to the host element\n return buildGridMargin(gapValue, parent.directionality);\n }\n else {\n return {};\n }\n };\n /**\n * @param {?} gapValue\n * @param {?} _styles\n * @param {?} parent\n * @return {?}\n */\n LayoutGapStyleBuilder.prototype.sideEffect = /**\n * @param {?} gapValue\n * @param {?} _styles\n * @param {?} parent\n * @return {?}\n */\n function (gapValue, _styles, parent) {\n /** @type {?} */\n var items = parent.items;\n if (gapValue.endsWith(GRID_SPECIFIER)) {\n gapValue = gapValue.slice(0, gapValue.indexOf(GRID_SPECIFIER));\n // For each `element` children, set the padding\n /** @type {?} */\n var paddingStyles = buildGridPadding(gapValue, parent.directionality);\n this._styler.applyStyleToElements(paddingStyles, parent.items);\n }\n else {\n /** @type {?} */\n var lastItem = (/** @type {?} */ (items.pop()));\n // For each `element` children EXCEPT the last,\n // set the margin right/bottom styles...\n /** @type {?} */\n var gapCss = buildGapCSS(gapValue, parent);\n this._styler.applyStyleToElements(gapCss, items);\n // Clear all gaps for all visible elements\n this._styler.applyStyleToElements(CLEAR_MARGIN_CSS, [lastItem]);\n }\n };\n LayoutGapStyleBuilder.decorators = [\n { type: Injectable, args: [{ providedIn: 'root' },] },\n ];\n /** @nocollapse */\n LayoutGapStyleBuilder.ctorParameters = function () { return [\n { type: StyleUtils }\n ]; };\n /** @nocollapse */ LayoutGapStyleBuilder.ngInjectableDef = ɵɵdefineInjectable({ factory: function LayoutGapStyleBuilder_Factory() { return new LayoutGapStyleBuilder(ɵɵinject(StyleUtils)); }, token: LayoutGapStyleBuilder, providedIn: \"root\" });\n return LayoutGapStyleBuilder;\n}(StyleBuilder));\n/** @type {?} */\nvar inputs$1 = [\n 'fxLayoutGap', 'fxLayoutGap.xs', 'fxLayoutGap.sm', 'fxLayoutGap.md',\n 'fxLayoutGap.lg', 'fxLayoutGap.xl', 'fxLayoutGap.lt-sm', 'fxLayoutGap.lt-md',\n 'fxLayoutGap.lt-lg', 'fxLayoutGap.lt-xl', 'fxLayoutGap.gt-xs', 'fxLayoutGap.gt-sm',\n 'fxLayoutGap.gt-md', 'fxLayoutGap.gt-lg'\n];\n/** @type {?} */\nvar selector$1 = \"\\n [fxLayoutGap], [fxLayoutGap.xs], [fxLayoutGap.sm], [fxLayoutGap.md],\\n [fxLayoutGap.lg], [fxLayoutGap.xl], [fxLayoutGap.lt-sm], [fxLayoutGap.lt-md],\\n [fxLayoutGap.lt-lg], [fxLayoutGap.lt-xl], [fxLayoutGap.gt-xs], [fxLayoutGap.gt-sm],\\n [fxLayoutGap.gt-md], [fxLayoutGap.gt-lg]\\n\";\n/**\n * 'layout-padding' styling directive\n * Defines padding of child elements in a layout container\n */\nvar LayoutGapDirective = /** @class */ (function (_super) {\n __extends(LayoutGapDirective, _super);\n function LayoutGapDirective(elRef, zone, directionality, styleUtils, styleBuilder, marshal) {\n var _this = _super.call(this, elRef, styleBuilder, styleUtils, marshal) || this;\n _this.elRef = elRef;\n _this.zone = zone;\n _this.directionality = directionality;\n _this.styleUtils = styleUtils;\n _this.styleBuilder = styleBuilder;\n _this.marshal = marshal;\n _this.layout = 'row'; // default flex-direction\n // default flex-direction\n _this.DIRECTIVE_KEY = 'layout-gap';\n _this.observerSubject = new Subject();\n /** @type {?} */\n var extraTriggers = [_this.directionality.change, _this.observerSubject.asObservable()];\n _this.init(extraTriggers);\n _this.marshal\n .trackValue(_this.nativeElement, 'layout')\n .pipe(takeUntil(_this.destroySubject))\n .subscribe(_this.onLayoutChange.bind(_this));\n return _this;\n }\n Object.defineProperty(LayoutGapDirective.prototype, \"childrenNodes\", {\n /** Special accessor to query for all child 'element' nodes regardless of type, class, etc */\n get: /**\n * Special accessor to query for all child 'element' nodes regardless of type, class, etc\n * @protected\n * @return {?}\n */\n function () {\n /** @type {?} */\n var obj = this.nativeElement.children;\n /** @type {?} */\n var buffer = [];\n // iterate backwards ensuring that length is an UInt32\n for (var i = obj.length; i--;) {\n buffer[i] = obj[i];\n }\n return buffer;\n },\n enumerable: true,\n configurable: true\n });\n // *********************************************\n // Lifecycle Methods\n // *********************************************\n // *********************************************\n // Lifecycle Methods\n // *********************************************\n /**\n * @return {?}\n */\n LayoutGapDirective.prototype.ngAfterContentInit = \n // *********************************************\n // Lifecycle Methods\n // *********************************************\n /**\n * @return {?}\n */\n function () {\n this.buildChildObservable();\n this.triggerUpdate();\n };\n /**\n * @return {?}\n */\n LayoutGapDirective.prototype.ngOnDestroy = /**\n * @return {?}\n */\n function () {\n _super.prototype.ngOnDestroy.call(this);\n if (this.observer) {\n this.observer.disconnect();\n }\n };\n // *********************************************\n // Protected methods\n // *********************************************\n /**\n * Cache the parent container 'flex-direction' and update the 'margin' styles\n */\n // *********************************************\n // Protected methods\n // *********************************************\n /**\n * Cache the parent container 'flex-direction' and update the 'margin' styles\n * @protected\n * @param {?} matcher\n * @return {?}\n */\n LayoutGapDirective.prototype.onLayoutChange = \n // *********************************************\n // Protected methods\n // *********************************************\n /**\n * Cache the parent container 'flex-direction' and update the 'margin' styles\n * @protected\n * @param {?} matcher\n * @return {?}\n */\n function (matcher) {\n var _this = this;\n /** @type {?} */\n var layout = matcher.value;\n // Make sure to filter out 'wrap' option\n /** @type {?} */\n var direction = layout.split(' ');\n this.layout = direction[0];\n if (!LAYOUT_VALUES.find((/**\n * @param {?} x\n * @return {?}\n */\n function (x) { return x === _this.layout; }))) {\n this.layout = 'row';\n }\n this.triggerUpdate();\n };\n /**\n *\n */\n /**\n *\n * @protected\n * @param {?} value\n * @return {?}\n */\n LayoutGapDirective.prototype.updateWithValue = /**\n *\n * @protected\n * @param {?} value\n * @return {?}\n */\n function (value) {\n var _this = this;\n // Gather all non-hidden Element nodes\n /** @type {?} */\n var items = this.childrenNodes\n .filter((/**\n * @param {?} el\n * @return {?}\n */\n function (el) { return el.nodeType === 1 && _this.willDisplay(el); }))\n .sort((/**\n * @param {?} a\n * @param {?} b\n * @return {?}\n */\n function (a, b) {\n /** @type {?} */\n var orderA = +_this.styler.lookupStyle(a, 'order');\n /** @type {?} */\n var orderB = +_this.styler.lookupStyle(b, 'order');\n if (isNaN(orderA) || isNaN(orderB) || orderA === orderB) {\n return 0;\n }\n else {\n return orderA > orderB ? 1 : -1;\n }\n }));\n if (items.length > 0) {\n /** @type {?} */\n var directionality = this.directionality.value;\n /** @type {?} */\n var layout = this.layout;\n if (layout === 'row' && directionality === 'rtl') {\n this.styleCache = layoutGapCacheRowRtl;\n }\n else if (layout === 'row' && directionality !== 'rtl') {\n this.styleCache = layoutGapCacheRowLtr;\n }\n else if (layout === 'column' && directionality === 'rtl') {\n this.styleCache = layoutGapCacheColumnRtl;\n }\n else if (layout === 'column' && directionality !== 'rtl') {\n this.styleCache = layoutGapCacheColumnLtr;\n }\n this.addStyles(value, { directionality: directionality, items: items, layout: layout });\n }\n };\n /** We need to override clearStyles because in most cases mru isn't populated */\n /**\n * We need to override clearStyles because in most cases mru isn't populated\n * @protected\n * @return {?}\n */\n LayoutGapDirective.prototype.clearStyles = /**\n * We need to override clearStyles because in most cases mru isn't populated\n * @protected\n * @return {?}\n */\n function () {\n var _a;\n /** @type {?} */\n var gridMode = Object.keys(this.mru).length > 0;\n /** @type {?} */\n var childrenStyle = gridMode ? 'padding' :\n getMarginType(this.directionality.value, this.layout);\n // If there are styles on the parent remove them\n if (gridMode) {\n _super.prototype.clearStyles.call(this);\n }\n // Then remove the children styles too\n this.styleUtils.applyStyleToElements((_a = {}, _a[childrenStyle] = '', _a), this.childrenNodes);\n };\n /** Determine if an element will show or hide based on current activation */\n /**\n * Determine if an element will show or hide based on current activation\n * @protected\n * @param {?} source\n * @return {?}\n */\n LayoutGapDirective.prototype.willDisplay = /**\n * Determine if an element will show or hide based on current activation\n * @protected\n * @param {?} source\n * @return {?}\n */\n function (source) {\n /** @type {?} */\n var value = this.marshal.getValue(source, 'show-hide');\n return value === true ||\n (value === undefined && this.styleUtils.lookupStyle(source, 'display') !== 'none');\n };\n /**\n * @protected\n * @return {?}\n */\n LayoutGapDirective.prototype.buildChildObservable = /**\n * @protected\n * @return {?}\n */\n function () {\n var _this = this;\n this.zone.runOutsideAngular((/**\n * @return {?}\n */\n function () {\n if (typeof MutationObserver !== 'undefined') {\n _this.observer = new MutationObserver((/**\n * @param {?} mutations\n * @return {?}\n */\n function (mutations) {\n /** @type {?} */\n var validatedChanges = (/**\n * @param {?} it\n * @return {?}\n */\n function (it) {\n return (it.addedNodes && it.addedNodes.length > 0) ||\n (it.removedNodes && it.removedNodes.length > 0);\n });\n // update gap styles only for child 'added' or 'removed' events\n if (mutations.some(validatedChanges)) {\n _this.observerSubject.next();\n }\n }));\n _this.observer.observe(_this.nativeElement, { childList: true });\n }\n }));\n };\n LayoutGapDirective.decorators = [\n { type: Directive, args: [{ selector: 'layout-gap-directive' },] },\n ];\n /** @nocollapse */\n LayoutGapDirective.ctorParameters = function () { return [\n { type: ElementRef },\n { type: NgZone },\n { type: Directionality },\n { type: StyleUtils },\n { type: LayoutGapStyleBuilder, decorators: [{ type: Optional }] },\n { type: MediaMarshaller }\n ]; };\n return LayoutGapDirective;\n}(BaseDirective2));\nvar DefaultLayoutGapDirective = /** @class */ (function (_super) {\n __extends(DefaultLayoutGapDirective, _super);\n function DefaultLayoutGapDirective() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.inputs = inputs$1;\n return _this;\n }\n DefaultLayoutGapDirective.decorators = [\n { type: Directive, args: [{ selector: selector$1, inputs: inputs$1 },] },\n ];\n return DefaultLayoutGapDirective;\n}(LayoutGapDirective));\n/** @type {?} */\nvar layoutGapCacheRowRtl = new Map();\n/** @type {?} */\nvar layoutGapCacheColumnRtl = new Map();\n/** @type {?} */\nvar layoutGapCacheRowLtr = new Map();\n/** @type {?} */\nvar layoutGapCacheColumnLtr = new Map();\n/** @type {?} */\nvar GRID_SPECIFIER = ' grid';\n/**\n * @param {?} value\n * @param {?} directionality\n * @return {?}\n */\nfunction buildGridPadding(value, directionality) {\n /** @type {?} */\n var paddingTop = '0px';\n /** @type {?} */\n var paddingRight = '0px';\n /** @type {?} */\n var paddingBottom = value;\n /** @type {?} */\n var paddingLeft = '0px';\n if (directionality === 'rtl') {\n paddingLeft = value;\n }\n else {\n paddingRight = value;\n }\n return { 'padding': paddingTop + \" \" + paddingRight + \" \" + paddingBottom + \" \" + paddingLeft };\n}\n/**\n * @param {?} value\n * @param {?} directionality\n * @return {?}\n */\nfunction buildGridMargin(value, directionality) {\n /** @type {?} */\n var marginTop = '0px';\n /** @type {?} */\n var marginRight = '0px';\n /** @type {?} */\n var marginBottom = '-' + value;\n /** @type {?} */\n var marginLeft = '0px';\n if (directionality === 'rtl') {\n marginLeft = '-' + value;\n }\n else {\n marginRight = '-' + value;\n }\n return { 'margin': marginTop + \" \" + marginRight + \" \" + marginBottom + \" \" + marginLeft };\n}\n/**\n * @param {?} directionality\n * @param {?} layout\n * @return {?}\n */\nfunction getMarginType(directionality, layout) {\n switch (layout) {\n case 'column':\n return 'margin-bottom';\n case 'column-reverse':\n return 'margin-top';\n case 'row':\n return directionality === 'rtl' ? 'margin-left' : 'margin-right';\n case 'row-reverse':\n return directionality === 'rtl' ? 'margin-right' : 'margin-left';\n default:\n return directionality === 'rtl' ? 'margin-left' : 'margin-right';\n }\n}\n/**\n * @param {?} gapValue\n * @param {?} parent\n * @return {?}\n */\nfunction buildGapCSS(gapValue, parent) {\n /** @type {?} */\n var key = getMarginType(parent.directionality, parent.layout);\n /** @type {?} */\n var margins = __assign({}, CLEAR_MARGIN_CSS);\n margins[key] = gapValue;\n return margins;\n}\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n\n/**\n * Extends an object with the *enumerable* and *own* properties of one or more source objects,\n * similar to Object.assign.\n *\n * @param {?} dest The object which will have properties copied to it.\n * @param {...?} sources The source objects from which properties will be copied.\n * @return {?}\n */\nfunction extendObject(dest) {\n var sources = [];\n for (var _i = 1; _i < arguments.length; _i++) {\n sources[_i - 1] = arguments[_i];\n }\n if (dest == null) {\n throw TypeError('Cannot convert undefined or null to object');\n }\n for (var _a = 0, sources_1 = sources; _a < sources_1.length; _a++) {\n var source = sources_1[_a];\n if (source != null) {\n for (var key in source) {\n if (source.hasOwnProperty(key)) {\n dest[key] = source[key];\n }\n }\n }\n }\n return dest;\n}\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\nvar FlexStyleBuilder = /** @class */ (function (_super) {\n __extends(FlexStyleBuilder, _super);\n function FlexStyleBuilder(layoutConfig) {\n var _this = _super.call(this) || this;\n _this.layoutConfig = layoutConfig;\n return _this;\n }\n /**\n * @param {?} input\n * @param {?} parent\n * @return {?}\n */\n FlexStyleBuilder.prototype.buildStyles = /**\n * @param {?} input\n * @param {?} parent\n * @return {?}\n */\n function (input, parent) {\n var _a = input.split(' '), grow = _a[0], shrink = _a[1], basisParts = _a.slice(2);\n /** @type {?} */\n var basis = basisParts.join(' ');\n // The flex-direction of this element's flex container. Defaults to 'row'.\n /** @type {?} */\n var direction = (parent.direction.indexOf('column') > -1) ? 'column' : 'row';\n /** @type {?} */\n var max = isFlowHorizontal(direction) ? 'max-width' : 'max-height';\n /** @type {?} */\n var min = isFlowHorizontal(direction) ? 'min-width' : 'min-height';\n /** @type {?} */\n var hasCalc = String(basis).indexOf('calc') > -1;\n /** @type {?} */\n var usingCalc = hasCalc || (basis === 'auto');\n /** @type {?} */\n var isPercent = String(basis).indexOf('%') > -1 && !hasCalc;\n /** @type {?} */\n var hasUnits = String(basis).indexOf('px') > -1 || String(basis).indexOf('rem') > -1 ||\n String(basis).indexOf('em') > -1 || String(basis).indexOf('vw') > -1 ||\n String(basis).indexOf('vh') > -1;\n /** @type {?} */\n var isValue = (hasCalc || hasUnits);\n grow = (grow == '0') ? 0 : grow;\n shrink = (shrink == '0') ? 0 : shrink;\n // make box inflexible when shrink and grow are both zero\n // should not set a min when the grow is zero\n // should not set a max when the shrink is zero\n /** @type {?} */\n var isFixed = !grow && !shrink;\n /** @type {?} */\n var css = {};\n // flex-basis allows you to specify the initial/starting main-axis size of the element,\n // before anything else is computed. It can either be a percentage or an absolute value.\n // It is, however, not the breaking point for flex-grow/shrink properties\n //\n // flex-grow can be seen as this:\n // 0: Do not stretch. Either size to element's content width, or obey 'flex-basis'.\n // 1: (Default value). Stretch; will be the same size to all other flex items on\n // the same row since they have a default value of 1.\n // ≥2 (integer n): Stretch. Will be n times the size of other elements\n // with 'flex-grow: 1' on the same row.\n // Use `null` to clear existing styles.\n /** @type {?} */\n var clearStyles = {\n 'max-width': null,\n 'max-height': null,\n 'min-width': null,\n 'min-height': null\n };\n switch (basis || '') {\n case '':\n /** @type {?} */\n var useColumnBasisZero = this.layoutConfig.useColumnBasisZero !== false;\n basis = direction === 'row' ? '0%' : (useColumnBasisZero ? '0.000000001px' : 'auto');\n break;\n case 'initial': // default\n case 'nogrow':\n grow = 0;\n basis = 'auto';\n break;\n case 'grow':\n basis = '100%';\n break;\n case 'noshrink':\n shrink = 0;\n basis = 'auto';\n break;\n case 'auto':\n break;\n case 'none':\n grow = 0;\n shrink = 0;\n basis = 'auto';\n break;\n default:\n // Defaults to percentage sizing unless `px` is explicitly set\n if (!isValue && !isPercent && !isNaN((/** @type {?} */ (basis)))) {\n basis = basis + '%';\n }\n // Fix for issue 280\n if (basis === '0%') {\n isValue = true;\n }\n if (basis === '0px') {\n basis = '0%';\n }\n // fix issue #5345\n if (hasCalc) {\n css = extendObject(clearStyles, {\n 'flex-grow': grow,\n 'flex-shrink': shrink,\n 'flex-basis': isValue ? basis : '100%'\n });\n }\n else {\n css = extendObject(clearStyles, {\n 'flex': grow + \" \" + shrink + \" \" + (isValue ? basis : '100%')\n });\n }\n break;\n }\n if (!(css['flex'] || css['flex-grow'])) {\n if (hasCalc) {\n css = extendObject(clearStyles, {\n 'flex-grow': grow,\n 'flex-shrink': shrink,\n 'flex-basis': basis\n });\n }\n else {\n css = extendObject(clearStyles, {\n 'flex': grow + \" \" + shrink + \" \" + basis\n });\n }\n }\n // Fix for issues 277, 534, and 728\n if (basis !== '0%' && basis !== '0px' && basis !== '0.000000001px' && basis !== 'auto') {\n css[min] = isFixed || (isValue && grow) ? basis : null;\n css[max] = isFixed || (!usingCalc && shrink) ? basis : null;\n }\n // Fix for issue 528\n if (!css[min] && !css[max]) {\n if (hasCalc) {\n css = extendObject(clearStyles, {\n 'flex-grow': grow,\n 'flex-shrink': shrink,\n 'flex-basis': basis\n });\n }\n else {\n css = extendObject(clearStyles, {\n 'flex': grow + \" \" + shrink + \" \" + basis\n });\n }\n }\n else {\n // Fix for issue 660\n if (parent.hasWrap) {\n css[hasCalc ? 'flex-basis' : 'flex'] = css[max] ?\n (hasCalc ? css[max] : grow + \" \" + shrink + \" \" + css[max]) :\n (hasCalc ? css[min] : grow + \" \" + shrink + \" \" + css[min]);\n }\n }\n return (/** @type {?} */ (extendObject(css, { 'box-sizing': 'border-box' })));\n };\n FlexStyleBuilder.decorators = [\n { type: Injectable, args: [{ providedIn: 'root' },] },\n ];\n /** @nocollapse */\n FlexStyleBuilder.ctorParameters = function () { return [\n { type: undefined, decorators: [{ type: Inject, args: [LAYOUT_CONFIG,] }] }\n ]; };\n /** @nocollapse */ FlexStyleBuilder.ngInjectableDef = ɵɵdefineInjectable({ factory: function FlexStyleBuilder_Factory() { return new FlexStyleBuilder(ɵɵinject(LAYOUT_CONFIG)); }, token: FlexStyleBuilder, providedIn: \"root\" });\n return FlexStyleBuilder;\n}(StyleBuilder));\n/** @type {?} */\nvar inputs$2 = [\n 'fxFlex', 'fxFlex.xs', 'fxFlex.sm', 'fxFlex.md',\n 'fxFlex.lg', 'fxFlex.xl', 'fxFlex.lt-sm', 'fxFlex.lt-md',\n 'fxFlex.lt-lg', 'fxFlex.lt-xl', 'fxFlex.gt-xs', 'fxFlex.gt-sm',\n 'fxFlex.gt-md', 'fxFlex.gt-lg'\n];\n/** @type {?} */\nvar selector$2 = \"\\n [fxFlex], [fxFlex.xs], [fxFlex.sm], [fxFlex.md],\\n [fxFlex.lg], [fxFlex.xl], [fxFlex.lt-sm], [fxFlex.lt-md],\\n [fxFlex.lt-lg], [fxFlex.lt-xl], [fxFlex.gt-xs], [fxFlex.gt-sm],\\n [fxFlex.gt-md], [fxFlex.gt-lg]\\n\";\n/**\n * Directive to control the size of a flex item using flex-basis, flex-grow, and flex-shrink.\n * Corresponds to the css `flex` shorthand property.\n *\n * @see https://css-tricks.com/snippets/css/a-guide-to-flexbox/\n */\nvar FlexDirective = /** @class */ (function (_super) {\n __extends(FlexDirective, _super);\n function FlexDirective(elRef, styleUtils, layoutConfig, styleBuilder, marshal) {\n var _this = _super.call(this, elRef, styleBuilder, styleUtils, marshal) || this;\n _this.elRef = elRef;\n _this.styleUtils = styleUtils;\n _this.layoutConfig = layoutConfig;\n _this.styleBuilder = styleBuilder;\n _this.marshal = marshal;\n _this.DIRECTIVE_KEY = 'flex';\n _this.direction = '';\n _this.wrap = false;\n _this.flexGrow = '1';\n _this.flexShrink = '1';\n _this.init();\n if (_this.parentElement) {\n _this.marshal.trackValue(_this.parentElement, 'layout')\n .pipe(takeUntil(_this.destroySubject))\n .subscribe(_this.onLayoutChange.bind(_this));\n _this.marshal.trackValue(_this.nativeElement, 'layout-align')\n .pipe(takeUntil(_this.destroySubject))\n .subscribe(_this.triggerReflow.bind(_this));\n }\n return _this;\n }\n Object.defineProperty(FlexDirective.prototype, \"shrink\", {\n get: /**\n * @return {?}\n */\n function () { return this.flexShrink; },\n set: /**\n * @param {?} value\n * @return {?}\n */\n function (value) {\n this.flexShrink = value || '1';\n this.triggerReflow();\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(FlexDirective.prototype, \"grow\", {\n get: /**\n * @return {?}\n */\n function () { return this.flexGrow; },\n set: /**\n * @param {?} value\n * @return {?}\n */\n function (value) {\n this.flexGrow = value || '1';\n this.triggerReflow();\n },\n enumerable: true,\n configurable: true\n });\n /**\n * Caches the parent container's 'flex-direction' and updates the element's style.\n * Used as a handler for layout change events from the parent flex container.\n */\n /**\n * Caches the parent container's 'flex-direction' and updates the element's style.\n * Used as a handler for layout change events from the parent flex container.\n * @protected\n * @param {?} matcher\n * @return {?}\n */\n FlexDirective.prototype.onLayoutChange = /**\n * Caches the parent container's 'flex-direction' and updates the element's style.\n * Used as a handler for layout change events from the parent flex container.\n * @protected\n * @param {?} matcher\n * @return {?}\n */\n function (matcher) {\n /** @type {?} */\n var layout = matcher.value;\n /** @type {?} */\n var layoutParts = layout.split(' ');\n this.direction = layoutParts[0];\n this.wrap = layoutParts[1] !== undefined && layoutParts[1] === 'wrap';\n this.triggerUpdate();\n };\n /** Input to this is exclusively the basis input value */\n /**\n * Input to this is exclusively the basis input value\n * @protected\n * @param {?} value\n * @return {?}\n */\n FlexDirective.prototype.updateWithValue = /**\n * Input to this is exclusively the basis input value\n * @protected\n * @param {?} value\n * @return {?}\n */\n function (value) {\n /** @type {?} */\n var addFlexToParent = this.layoutConfig.addFlexToParent !== false;\n if (!this.direction) {\n this.direction = this.getFlexFlowDirection((/** @type {?} */ (this.parentElement)), addFlexToParent);\n }\n /** @type {?} */\n var direction = this.direction;\n /** @type {?} */\n var isHorizontal = direction.startsWith('row');\n /** @type {?} */\n var hasWrap = this.wrap;\n if (isHorizontal && hasWrap) {\n this.styleCache = flexRowWrapCache;\n }\n else if (isHorizontal && !hasWrap) {\n this.styleCache = flexRowCache;\n }\n else if (!isHorizontal && hasWrap) {\n this.styleCache = flexColumnWrapCache;\n }\n else if (!isHorizontal && !hasWrap) {\n this.styleCache = flexColumnCache;\n }\n /** @type {?} */\n var basis = String(value).replace(';', '');\n /** @type {?} */\n var parts = validateBasis(basis, this.flexGrow, this.flexShrink);\n this.addStyles(parts.join(' '), { direction: direction, hasWrap: hasWrap });\n };\n /** Trigger a style reflow, usually based on a shrink/grow input event */\n /**\n * Trigger a style reflow, usually based on a shrink/grow input event\n * @protected\n * @return {?}\n */\n FlexDirective.prototype.triggerReflow = /**\n * Trigger a style reflow, usually based on a shrink/grow input event\n * @protected\n * @return {?}\n */\n function () {\n /** @type {?} */\n var activatedValue = this.activatedValue;\n if (activatedValue !== undefined) {\n /** @type {?} */\n var parts = validateBasis(activatedValue + '', this.flexGrow, this.flexShrink);\n this.marshal.updateElement(this.nativeElement, this.DIRECTIVE_KEY, parts.join(' '));\n }\n };\n FlexDirective.decorators = [\n { type: Directive, args: [{ selector: 'flex-directive' },] },\n ];\n /** @nocollapse */\n FlexDirective.ctorParameters = function () { return [\n { type: ElementRef },\n { type: StyleUtils },\n { type: undefined, decorators: [{ type: Inject, args: [LAYOUT_CONFIG,] }] },\n { type: FlexStyleBuilder },\n { type: MediaMarshaller }\n ]; };\n FlexDirective.propDecorators = {\n shrink: [{ type: Input, args: ['fxShrink',] }],\n grow: [{ type: Input, args: ['fxGrow',] }]\n };\n return FlexDirective;\n}(BaseDirective2));\nvar DefaultFlexDirective = /** @class */ (function (_super) {\n __extends(DefaultFlexDirective, _super);\n function DefaultFlexDirective() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.inputs = inputs$2;\n return _this;\n }\n DefaultFlexDirective.decorators = [\n { type: Directive, args: [{ inputs: inputs$2, selector: selector$2 },] },\n ];\n return DefaultFlexDirective;\n}(FlexDirective));\n/** @type {?} */\nvar flexRowCache = new Map();\n/** @type {?} */\nvar flexColumnCache = new Map();\n/** @type {?} */\nvar flexRowWrapCache = new Map();\n/** @type {?} */\nvar flexColumnWrapCache = new Map();\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\nvar FlexOrderStyleBuilder = /** @class */ (function (_super) {\n __extends(FlexOrderStyleBuilder, _super);\n function FlexOrderStyleBuilder() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n /**\n * @param {?} value\n * @return {?}\n */\n FlexOrderStyleBuilder.prototype.buildStyles = /**\n * @param {?} value\n * @return {?}\n */\n function (value) {\n return { order: (value && parseInt(value, 10)) || '' };\n };\n FlexOrderStyleBuilder.decorators = [\n { type: Injectable, args: [{ providedIn: 'root' },] },\n ];\n /** @nocollapse */ FlexOrderStyleBuilder.ngInjectableDef = ɵɵdefineInjectable({ factory: function FlexOrderStyleBuilder_Factory() { return new FlexOrderStyleBuilder(); }, token: FlexOrderStyleBuilder, providedIn: \"root\" });\n return FlexOrderStyleBuilder;\n}(StyleBuilder));\n/** @type {?} */\nvar inputs$3 = [\n 'fxFlexOrder', 'fxFlexOrder.xs', 'fxFlexOrder.sm', 'fxFlexOrder.md',\n 'fxFlexOrder.lg', 'fxFlexOrder.xl', 'fxFlexOrder.lt-sm', 'fxFlexOrder.lt-md',\n 'fxFlexOrder.lt-lg', 'fxFlexOrder.lt-xl', 'fxFlexOrder.gt-xs', 'fxFlexOrder.gt-sm',\n 'fxFlexOrder.gt-md', 'fxFlexOrder.gt-lg'\n];\n/** @type {?} */\nvar selector$3 = \"\\n [fxFlexOrder], [fxFlexOrder.xs], [fxFlexOrder.sm], [fxFlexOrder.md],\\n [fxFlexOrder.lg], [fxFlexOrder.xl], [fxFlexOrder.lt-sm], [fxFlexOrder.lt-md],\\n [fxFlexOrder.lt-lg], [fxFlexOrder.lt-xl], [fxFlexOrder.gt-xs], [fxFlexOrder.gt-sm],\\n [fxFlexOrder.gt-md], [fxFlexOrder.gt-lg]\\n\";\n/**\n * 'flex-order' flexbox styling directive\n * Configures the positional ordering of the element in a sorted layout container\n * @see https://css-tricks.com/almanac/properties/o/order/\n */\nvar FlexOrderDirective = /** @class */ (function (_super) {\n __extends(FlexOrderDirective, _super);\n function FlexOrderDirective(elRef, styleUtils, styleBuilder, marshal) {\n var _this = _super.call(this, elRef, styleBuilder, styleUtils, marshal) || this;\n _this.elRef = elRef;\n _this.styleUtils = styleUtils;\n _this.styleBuilder = styleBuilder;\n _this.marshal = marshal;\n _this.DIRECTIVE_KEY = 'flex-order';\n _this.styleCache = flexOrderCache;\n _this.init();\n return _this;\n }\n FlexOrderDirective.decorators = [\n { type: Directive, args: [{ selector: 'flex-order-directive' },] },\n ];\n /** @nocollapse */\n FlexOrderDirective.ctorParameters = function () { return [\n { type: ElementRef },\n { type: StyleUtils },\n { type: FlexOrderStyleBuilder, decorators: [{ type: Optional }] },\n { type: MediaMarshaller }\n ]; };\n return FlexOrderDirective;\n}(BaseDirective2));\n/** @type {?} */\nvar flexOrderCache = new Map();\nvar DefaultFlexOrderDirective = /** @class */ (function (_super) {\n __extends(DefaultFlexOrderDirective, _super);\n function DefaultFlexOrderDirective() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.inputs = inputs$3;\n return _this;\n }\n DefaultFlexOrderDirective.decorators = [\n { type: Directive, args: [{ selector: selector$3, inputs: inputs$3 },] },\n ];\n return DefaultFlexOrderDirective;\n}(FlexOrderDirective));\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\nvar FlexOffsetStyleBuilder = /** @class */ (function (_super) {\n __extends(FlexOffsetStyleBuilder, _super);\n function FlexOffsetStyleBuilder() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n /**\n * @param {?} offset\n * @param {?} parent\n * @return {?}\n */\n FlexOffsetStyleBuilder.prototype.buildStyles = /**\n * @param {?} offset\n * @param {?} parent\n * @return {?}\n */\n function (offset, parent) {\n var _a;\n if (offset === '') {\n offset = '0';\n }\n /** @type {?} */\n var isPercent = String(offset).indexOf('%') > -1;\n /** @type {?} */\n var isPx = String(offset).indexOf('px') > -1;\n if (!isPx && !isPercent && !isNaN(+offset)) {\n offset = offset + '%';\n }\n /** @type {?} */\n var horizontalLayoutKey = parent.isRtl ? 'margin-right' : 'margin-left';\n /** @type {?} */\n var styles = isFlowHorizontal(parent.layout) ? (_a = {}, _a[horizontalLayoutKey] = \"\" + offset, _a) : { 'margin-top': \"\" + offset };\n return styles;\n };\n FlexOffsetStyleBuilder.decorators = [\n { type: Injectable, args: [{ providedIn: 'root' },] },\n ];\n /** @nocollapse */ FlexOffsetStyleBuilder.ngInjectableDef = ɵɵdefineInjectable({ factory: function FlexOffsetStyleBuilder_Factory() { return new FlexOffsetStyleBuilder(); }, token: FlexOffsetStyleBuilder, providedIn: \"root\" });\n return FlexOffsetStyleBuilder;\n}(StyleBuilder));\n/** @type {?} */\nvar inputs$4 = [\n 'fxFlexOffset', 'fxFlexOffset.xs', 'fxFlexOffset.sm', 'fxFlexOffset.md',\n 'fxFlexOffset.lg', 'fxFlexOffset.xl', 'fxFlexOffset.lt-sm', 'fxFlexOffset.lt-md',\n 'fxFlexOffset.lt-lg', 'fxFlexOffset.lt-xl', 'fxFlexOffset.gt-xs', 'fxFlexOffset.gt-sm',\n 'fxFlexOffset.gt-md', 'fxFlexOffset.gt-lg'\n];\n/** @type {?} */\nvar selector$4 = \"\\n [fxFlexOffset], [fxFlexOffset.xs], [fxFlexOffset.sm], [fxFlexOffset.md],\\n [fxFlexOffset.lg], [fxFlexOffset.xl], [fxFlexOffset.lt-sm], [fxFlexOffset.lt-md],\\n [fxFlexOffset.lt-lg], [fxFlexOffset.lt-xl], [fxFlexOffset.gt-xs], [fxFlexOffset.gt-sm],\\n [fxFlexOffset.gt-md], [fxFlexOffset.gt-lg]\\n\";\n/**\n * 'flex-offset' flexbox styling directive\n * Configures the 'margin-left' of the element in a layout container\n */\nvar FlexOffsetDirective = /** @class */ (function (_super) {\n __extends(FlexOffsetDirective, _super);\n function FlexOffsetDirective(elRef, directionality, styleBuilder, marshal, styler) {\n var _this = _super.call(this, elRef, styleBuilder, styler, marshal) || this;\n _this.elRef = elRef;\n _this.directionality = directionality;\n _this.styleBuilder = styleBuilder;\n _this.marshal = marshal;\n _this.styler = styler;\n _this.DIRECTIVE_KEY = 'flex-offset';\n _this.init([_this.directionality.change]);\n // Parent DOM `layout-gap` with affect the nested child with `flex-offset`\n if (_this.parentElement) {\n _this.marshal\n .trackValue(_this.parentElement, 'layout-gap')\n .pipe(takeUntil(_this.destroySubject))\n .subscribe(_this.triggerUpdate.bind(_this));\n }\n return _this;\n }\n // *********************************************\n // Protected methods\n // *********************************************\n /**\n * Using the current fxFlexOffset value, update the inline CSS\n * NOTE: this will assign `margin-left` if the parent flex-direction == 'row',\n * otherwise `margin-top` is used for the offset.\n */\n // *********************************************\n // Protected methods\n // *********************************************\n /**\n * Using the current fxFlexOffset value, update the inline CSS\n * NOTE: this will assign `margin-left` if the parent flex-direction == 'row',\n * otherwise `margin-top` is used for the offset.\n * @protected\n * @param {?=} value\n * @return {?}\n */\n FlexOffsetDirective.prototype.updateWithValue = \n // *********************************************\n // Protected methods\n // *********************************************\n /**\n * Using the current fxFlexOffset value, update the inline CSS\n * NOTE: this will assign `margin-left` if the parent flex-direction == 'row',\n * otherwise `margin-top` is used for the offset.\n * @protected\n * @param {?=} value\n * @return {?}\n */\n function (value) {\n if (value === void 0) { value = ''; }\n // The flex-direction of this element's flex container. Defaults to 'row'.\n /** @type {?} */\n var layout = this.getFlexFlowDirection((/** @type {?} */ (this.parentElement)), true);\n /** @type {?} */\n var isRtl = this.directionality.value === 'rtl';\n if (layout === 'row' && isRtl) {\n this.styleCache = flexOffsetCacheRowRtl;\n }\n else if (layout === 'row' && !isRtl) {\n this.styleCache = flexOffsetCacheRowLtr;\n }\n else if (layout === 'column' && isRtl) {\n this.styleCache = flexOffsetCacheColumnRtl;\n }\n else if (layout === 'column' && !isRtl) {\n this.styleCache = flexOffsetCacheColumnLtr;\n }\n this.addStyles(value + '', { layout: layout, isRtl: isRtl });\n };\n FlexOffsetDirective.decorators = [\n { type: Directive, args: [{ selector: 'flex-offset-directive' },] },\n ];\n /** @nocollapse */\n FlexOffsetDirective.ctorParameters = function () { return [\n { type: ElementRef },\n { type: Directionality },\n { type: FlexOffsetStyleBuilder, decorators: [{ type: Optional }] },\n { type: MediaMarshaller },\n { type: StyleUtils }\n ]; };\n return FlexOffsetDirective;\n}(BaseDirective2));\nvar DefaultFlexOffsetDirective = /** @class */ (function (_super) {\n __extends(DefaultFlexOffsetDirective, _super);\n function DefaultFlexOffsetDirective() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.inputs = inputs$4;\n return _this;\n }\n DefaultFlexOffsetDirective.decorators = [\n { type: Directive, args: [{ selector: selector$4, inputs: inputs$4 },] },\n ];\n return DefaultFlexOffsetDirective;\n}(FlexOffsetDirective));\n/** @type {?} */\nvar flexOffsetCacheRowRtl = new Map();\n/** @type {?} */\nvar flexOffsetCacheColumnRtl = new Map();\n/** @type {?} */\nvar flexOffsetCacheRowLtr = new Map();\n/** @type {?} */\nvar flexOffsetCacheColumnLtr = new Map();\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\nvar FlexAlignStyleBuilder = /** @class */ (function (_super) {\n __extends(FlexAlignStyleBuilder, _super);\n function FlexAlignStyleBuilder() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n /**\n * @param {?} input\n * @return {?}\n */\n FlexAlignStyleBuilder.prototype.buildStyles = /**\n * @param {?} input\n * @return {?}\n */\n function (input) {\n input = input || 'stretch';\n /** @type {?} */\n var styles = {};\n // Cross-axis\n switch (input) {\n case 'start':\n styles['align-self'] = 'flex-start';\n break;\n case 'end':\n styles['align-self'] = 'flex-end';\n break;\n default:\n styles['align-self'] = input;\n break;\n }\n return styles;\n };\n FlexAlignStyleBuilder.decorators = [\n { type: Injectable, args: [{ providedIn: 'root' },] },\n ];\n /** @nocollapse */ FlexAlignStyleBuilder.ngInjectableDef = ɵɵdefineInjectable({ factory: function FlexAlignStyleBuilder_Factory() { return new FlexAlignStyleBuilder(); }, token: FlexAlignStyleBuilder, providedIn: \"root\" });\n return FlexAlignStyleBuilder;\n}(StyleBuilder));\n/** @type {?} */\nvar inputs$5 = [\n 'fxFlexAlign', 'fxFlexAlign.xs', 'fxFlexAlign.sm', 'fxFlexAlign.md',\n 'fxFlexAlign.lg', 'fxFlexAlign.xl', 'fxFlexAlign.lt-sm', 'fxFlexAlign.lt-md',\n 'fxFlexAlign.lt-lg', 'fxFlexAlign.lt-xl', 'fxFlexAlign.gt-xs', 'fxFlexAlign.gt-sm',\n 'fxFlexAlign.gt-md', 'fxFlexAlign.gt-lg'\n];\n/** @type {?} */\nvar selector$5 = \"\\n [fxFlexAlign], [fxFlexAlign.xs], [fxFlexAlign.sm], [fxFlexAlign.md],\\n [fxFlexAlign.lg], [fxFlexAlign.xl], [fxFlexAlign.lt-sm], [fxFlexAlign.lt-md],\\n [fxFlexAlign.lt-lg], [fxFlexAlign.lt-xl], [fxFlexAlign.gt-xs], [fxFlexAlign.gt-sm],\\n [fxFlexAlign.gt-md], [fxFlexAlign.gt-lg]\\n\";\n/**\n * 'flex-align' flexbox styling directive\n * Allows element-specific overrides for cross-axis alignments in a layout container\n * @see https://css-tricks.com/almanac/properties/a/align-self/\n */\nvar FlexAlignDirective = /** @class */ (function (_super) {\n __extends(FlexAlignDirective, _super);\n function FlexAlignDirective(elRef, styleUtils, styleBuilder, marshal) {\n var _this = _super.call(this, elRef, styleBuilder, styleUtils, marshal) || this;\n _this.elRef = elRef;\n _this.styleUtils = styleUtils;\n _this.styleBuilder = styleBuilder;\n _this.marshal = marshal;\n _this.DIRECTIVE_KEY = 'flex-align';\n _this.styleCache = flexAlignCache;\n _this.init();\n return _this;\n }\n FlexAlignDirective.decorators = [\n { type: Directive, args: [{ selector: 'flex-align-directive' },] },\n ];\n /** @nocollapse */\n FlexAlignDirective.ctorParameters = function () { return [\n { type: ElementRef },\n { type: StyleUtils },\n { type: FlexAlignStyleBuilder, decorators: [{ type: Optional }] },\n { type: MediaMarshaller }\n ]; };\n return FlexAlignDirective;\n}(BaseDirective2));\n/** @type {?} */\nvar flexAlignCache = new Map();\nvar DefaultFlexAlignDirective = /** @class */ (function (_super) {\n __extends(DefaultFlexAlignDirective, _super);\n function DefaultFlexAlignDirective() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.inputs = inputs$5;\n return _this;\n }\n DefaultFlexAlignDirective.decorators = [\n { type: Directive, args: [{ selector: selector$5, inputs: inputs$5 },] },\n ];\n return DefaultFlexAlignDirective;\n}(FlexAlignDirective));\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n/** @type {?} */\nvar FLEX_FILL_CSS = {\n 'margin': 0,\n 'width': '100%',\n 'height': '100%',\n 'min-width': '100%',\n 'min-height': '100%'\n};\nvar FlexFillStyleBuilder = /** @class */ (function (_super) {\n __extends(FlexFillStyleBuilder, _super);\n function FlexFillStyleBuilder() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n /**\n * @param {?} _input\n * @return {?}\n */\n FlexFillStyleBuilder.prototype.buildStyles = /**\n * @param {?} _input\n * @return {?}\n */\n function (_input) {\n return FLEX_FILL_CSS;\n };\n FlexFillStyleBuilder.decorators = [\n { type: Injectable, args: [{ providedIn: 'root' },] },\n ];\n /** @nocollapse */ FlexFillStyleBuilder.ngInjectableDef = ɵɵdefineInjectable({ factory: function FlexFillStyleBuilder_Factory() { return new FlexFillStyleBuilder(); }, token: FlexFillStyleBuilder, providedIn: \"root\" });\n return FlexFillStyleBuilder;\n}(StyleBuilder));\n/**\n * 'fxFill' flexbox styling directive\n * Maximizes width and height of element in a layout container\n *\n * NOTE: fxFill is NOT responsive API!!\n */\nvar FlexFillDirective = /** @class */ (function (_super) {\n __extends(FlexFillDirective, _super);\n function FlexFillDirective(elRef, styleUtils, styleBuilder, marshal) {\n var _this = _super.call(this, elRef, styleBuilder, styleUtils, marshal) || this;\n _this.elRef = elRef;\n _this.styleUtils = styleUtils;\n _this.styleBuilder = styleBuilder;\n _this.marshal = marshal;\n _this.styleCache = flexFillCache;\n _this.addStyles('');\n return _this;\n }\n FlexFillDirective.decorators = [\n { type: Directive, args: [{ selector: \"[fxFill], [fxFlexFill]\" },] },\n ];\n /** @nocollapse */\n FlexFillDirective.ctorParameters = function () { return [\n { type: ElementRef },\n { type: StyleUtils },\n { type: FlexFillStyleBuilder },\n { type: MediaMarshaller }\n ]; };\n return FlexFillDirective;\n}(BaseDirective2));\n/** @type {?} */\nvar flexFillCache = new Map();\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\nvar LayoutAlignStyleBuilder = /** @class */ (function (_super) {\n __extends(LayoutAlignStyleBuilder, _super);\n function LayoutAlignStyleBuilder() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n /**\n * @param {?} align\n * @param {?} parent\n * @return {?}\n */\n LayoutAlignStyleBuilder.prototype.buildStyles = /**\n * @param {?} align\n * @param {?} parent\n * @return {?}\n */\n function (align, parent) {\n /** @type {?} */\n var css = {};\n var _a = align.split(' '), mainAxis = _a[0], crossAxis = _a[1];\n // Main axis\n switch (mainAxis) {\n case 'center':\n css['justify-content'] = 'center';\n break;\n case 'space-around':\n css['justify-content'] = 'space-around';\n break;\n case 'space-between':\n css['justify-content'] = 'space-between';\n break;\n case 'space-evenly':\n css['justify-content'] = 'space-evenly';\n break;\n case 'end':\n case 'flex-end':\n css['justify-content'] = 'flex-end';\n break;\n case 'start':\n case 'flex-start':\n default:\n css['justify-content'] = 'flex-start'; // default main axis\n break;\n }\n // Cross-axis\n switch (crossAxis) {\n case 'start':\n case 'flex-start':\n css['align-items'] = css['align-content'] = 'flex-start';\n break;\n case 'center':\n css['align-items'] = css['align-content'] = 'center';\n break;\n case 'end':\n case 'flex-end':\n css['align-items'] = css['align-content'] = 'flex-end';\n break;\n case 'space-between':\n css['align-content'] = 'space-between';\n css['align-items'] = 'stretch';\n break;\n case 'space-around':\n css['align-content'] = 'space-around';\n css['align-items'] = 'stretch';\n break;\n case 'baseline':\n css['align-content'] = 'stretch';\n css['align-items'] = 'baseline';\n break;\n case 'stretch':\n default: // 'stretch'\n css['align-items'] = css['align-content'] = 'stretch'; // default cross axis\n break;\n }\n return (/** @type {?} */ (extendObject(css, {\n 'display': parent.inline ? 'inline-flex' : 'flex',\n 'flex-direction': parent.layout,\n 'box-sizing': 'border-box',\n 'max-width': crossAxis === 'stretch' ?\n !isFlowHorizontal(parent.layout) ? '100%' : null : null,\n 'max-height': crossAxis === 'stretch' ?\n isFlowHorizontal(parent.layout) ? '100%' : null : null,\n })));\n };\n LayoutAlignStyleBuilder.decorators = [\n { type: Injectable, args: [{ providedIn: 'root' },] },\n ];\n /** @nocollapse */ LayoutAlignStyleBuilder.ngInjectableDef = ɵɵdefineInjectable({ factory: function LayoutAlignStyleBuilder_Factory() { return new LayoutAlignStyleBuilder(); }, token: LayoutAlignStyleBuilder, providedIn: \"root\" });\n return LayoutAlignStyleBuilder;\n}(StyleBuilder));\n/** @type {?} */\nvar inputs$6 = [\n 'fxLayoutAlign', 'fxLayoutAlign.xs', 'fxLayoutAlign.sm', 'fxLayoutAlign.md',\n 'fxLayoutAlign.lg', 'fxLayoutAlign.xl', 'fxLayoutAlign.lt-sm', 'fxLayoutAlign.lt-md',\n 'fxLayoutAlign.lt-lg', 'fxLayoutAlign.lt-xl', 'fxLayoutAlign.gt-xs', 'fxLayoutAlign.gt-sm',\n 'fxLayoutAlign.gt-md', 'fxLayoutAlign.gt-lg'\n];\n/** @type {?} */\nvar selector$6 = \"\\n [fxLayoutAlign], [fxLayoutAlign.xs], [fxLayoutAlign.sm], [fxLayoutAlign.md],\\n [fxLayoutAlign.lg], [fxLayoutAlign.xl], [fxLayoutAlign.lt-sm], [fxLayoutAlign.lt-md],\\n [fxLayoutAlign.lt-lg], [fxLayoutAlign.lt-xl], [fxLayoutAlign.gt-xs], [fxLayoutAlign.gt-sm],\\n [fxLayoutAlign.gt-md], [fxLayoutAlign.gt-lg]\\n\";\n/**\n * 'layout-align' flexbox styling directive\n * Defines positioning of child elements along main and cross axis in a layout container\n * Optional values: {main-axis} values or {main-axis cross-axis} value pairs\n *\n * @see https://css-tricks.com/almanac/properties/j/justify-content/\n * @see https://css-tricks.com/almanac/properties/a/align-items/\n * @see https://css-tricks.com/almanac/properties/a/align-content/\n */\nvar LayoutAlignDirective = /** @class */ (function (_super) {\n __extends(LayoutAlignDirective, _super);\n function LayoutAlignDirective(elRef, styleUtils, styleBuilder, marshal) {\n var _this = _super.call(this, elRef, styleBuilder, styleUtils, marshal) || this;\n _this.elRef = elRef;\n _this.styleUtils = styleUtils;\n _this.styleBuilder = styleBuilder;\n _this.marshal = marshal;\n _this.DIRECTIVE_KEY = 'layout-align';\n _this.layout = 'row'; // default flex-direction\n // default flex-direction\n _this.inline = false; // default inline value\n _this.init();\n _this.marshal.trackValue(_this.nativeElement, 'layout')\n .pipe(takeUntil(_this.destroySubject))\n .subscribe(_this.onLayoutChange.bind(_this));\n return _this;\n }\n // *********************************************\n // Protected methods\n // *********************************************\n /**\n *\n */\n // *********************************************\n // Protected methods\n // *********************************************\n /**\n *\n * @protected\n * @param {?} value\n * @return {?}\n */\n LayoutAlignDirective.prototype.updateWithValue = \n // *********************************************\n // Protected methods\n // *********************************************\n /**\n *\n * @protected\n * @param {?} value\n * @return {?}\n */\n function (value) {\n /** @type {?} */\n var layout = this.layout || 'row';\n /** @type {?} */\n var inline = this.inline;\n if (layout === 'row' && inline) {\n this.styleCache = layoutAlignHorizontalInlineCache;\n }\n else if (layout === 'row' && !inline) {\n this.styleCache = layoutAlignHorizontalCache;\n }\n else if (layout === 'row-reverse' && inline) {\n this.styleCache = layoutAlignHorizontalRevInlineCache;\n }\n else if (layout === 'row-reverse' && !inline) {\n this.styleCache = layoutAlignHorizontalRevCache;\n }\n else if (layout === 'column' && inline) {\n this.styleCache = layoutAlignVerticalInlineCache;\n }\n else if (layout === 'column' && !inline) {\n this.styleCache = layoutAlignVerticalCache;\n }\n else if (layout === 'column-reverse' && inline) {\n this.styleCache = layoutAlignVerticalRevInlineCache;\n }\n else if (layout === 'column-reverse' && !inline) {\n this.styleCache = layoutAlignVerticalRevCache;\n }\n this.addStyles(value, { layout: layout, inline: inline });\n };\n /**\n * Cache the parent container 'flex-direction' and update the 'flex' styles\n */\n /**\n * Cache the parent container 'flex-direction' and update the 'flex' styles\n * @protected\n * @param {?} matcher\n * @return {?}\n */\n LayoutAlignDirective.prototype.onLayoutChange = /**\n * Cache the parent container 'flex-direction' and update the 'flex' styles\n * @protected\n * @param {?} matcher\n * @return {?}\n */\n function (matcher) {\n var _this = this;\n /** @type {?} */\n var layoutKeys = matcher.value.split(' ');\n this.layout = layoutKeys[0];\n this.inline = matcher.value.includes('inline');\n if (!LAYOUT_VALUES.find((/**\n * @param {?} x\n * @return {?}\n */\n function (x) { return x === _this.layout; }))) {\n this.layout = 'row';\n }\n this.triggerUpdate();\n };\n LayoutAlignDirective.decorators = [\n { type: Directive, args: [{ selector: 'layout-align-directive' },] },\n ];\n /** @nocollapse */\n LayoutAlignDirective.ctorParameters = function () { return [\n { type: ElementRef },\n { type: StyleUtils },\n { type: LayoutAlignStyleBuilder, decorators: [{ type: Optional }] },\n { type: MediaMarshaller }\n ]; };\n return LayoutAlignDirective;\n}(BaseDirective2));\nvar DefaultLayoutAlignDirective = /** @class */ (function (_super) {\n __extends(DefaultLayoutAlignDirective, _super);\n function DefaultLayoutAlignDirective() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.inputs = inputs$6;\n return _this;\n }\n DefaultLayoutAlignDirective.decorators = [\n { type: Directive, args: [{ selector: selector$6, inputs: inputs$6 },] },\n ];\n return DefaultLayoutAlignDirective;\n}(LayoutAlignDirective));\n/** @type {?} */\nvar layoutAlignHorizontalCache = new Map();\n/** @type {?} */\nvar layoutAlignVerticalCache = new Map();\n/** @type {?} */\nvar layoutAlignHorizontalRevCache = new Map();\n/** @type {?} */\nvar layoutAlignVerticalRevCache = new Map();\n/** @type {?} */\nvar layoutAlignHorizontalInlineCache = new Map();\n/** @type {?} */\nvar layoutAlignVerticalInlineCache = new Map();\n/** @type {?} */\nvar layoutAlignHorizontalRevInlineCache = new Map();\n/** @type {?} */\nvar layoutAlignVerticalRevInlineCache = new Map();\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n/** @type {?} */\nvar ALL_DIRECTIVES = [\n DefaultLayoutDirective,\n DefaultLayoutGapDirective,\n DefaultLayoutAlignDirective,\n DefaultFlexOrderDirective,\n DefaultFlexOffsetDirective,\n FlexFillDirective,\n DefaultFlexAlignDirective,\n DefaultFlexDirective,\n FlexDirective,\n FlexAlignDirective,\n FlexOffsetDirective,\n FlexOrderDirective,\n LayoutDirective,\n LayoutAlignDirective,\n LayoutGapDirective,\n];\n/**\n * *****************************************************************\n * Define module for the Flex API\n * *****************************************************************\n */\nvar FlexModule = /** @class */ (function () {\n function FlexModule() {\n }\n FlexModule.decorators = [\n { type: NgModule, args: [{\n imports: [CoreModule, BidiModule],\n declarations: ALL_DIRECTIVES.slice(),\n exports: ALL_DIRECTIVES.slice()\n },] },\n ];\n return FlexModule;\n}());\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n\nexport { FlexModule, FlexStyleBuilder, FlexDirective, DefaultFlexDirective, FlexAlignStyleBuilder, FlexAlignDirective, DefaultFlexAlignDirective, FlexFillStyleBuilder, FlexFillDirective, FlexOffsetStyleBuilder, FlexOffsetDirective, DefaultFlexOffsetDirective, FlexOrderStyleBuilder, FlexOrderDirective, DefaultFlexOrderDirective, LayoutStyleBuilder, LayoutDirective, DefaultLayoutDirective, LayoutAlignStyleBuilder, LayoutAlignDirective, DefaultLayoutAlignDirective, LayoutGapStyleBuilder, LayoutGapDirective, DefaultLayoutGapDirective };\n//# sourceMappingURL=flex.es5.js.map\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nimport { __extends } from 'tslib';\nimport { Directive, ElementRef, Injectable, Optional, NgModule, Input, ɵɵdefineInjectable } from '@angular/core';\nimport { MediaMarshaller, BaseDirective2, StyleBuilder, StyleUtils, CoreModule } from '@angular/flex-layout/core';\nimport { coerceBooleanProperty } from '@angular/cdk/coercion';\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n/** @type {?} */\nvar ROW_DEFAULT = 'stretch';\n/** @type {?} */\nvar COL_DEFAULT = 'stretch';\nvar GridAlignStyleBuilder = /** @class */ (function (_super) {\n __extends(GridAlignStyleBuilder, _super);\n function GridAlignStyleBuilder() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n /**\n * @param {?} input\n * @return {?}\n */\n GridAlignStyleBuilder.prototype.buildStyles = /**\n * @param {?} input\n * @return {?}\n */\n function (input) {\n return buildCss(input || ROW_DEFAULT);\n };\n GridAlignStyleBuilder.decorators = [\n { type: Injectable, args: [{ providedIn: 'root' },] },\n ];\n /** @nocollapse */ GridAlignStyleBuilder.ngInjectableDef = ɵɵdefineInjectable({ factory: function GridAlignStyleBuilder_Factory() { return new GridAlignStyleBuilder(); }, token: GridAlignStyleBuilder, providedIn: \"root\" });\n return GridAlignStyleBuilder;\n}(StyleBuilder));\nvar GridAlignDirective = /** @class */ (function (_super) {\n __extends(GridAlignDirective, _super);\n function GridAlignDirective(elementRef, styleBuilder, styler, marshal) {\n var _this = _super.call(this, elementRef, styleBuilder, styler, marshal) || this;\n _this.elementRef = elementRef;\n _this.styleBuilder = styleBuilder;\n _this.styler = styler;\n _this.marshal = marshal;\n _this.DIRECTIVE_KEY = 'grid-align';\n _this.styleCache = alignCache;\n _this.init();\n return _this;\n }\n GridAlignDirective.decorators = [\n { type: Directive, args: [{ selector: 'grid-align-directive' },] },\n ];\n /** @nocollapse */\n GridAlignDirective.ctorParameters = function () { return [\n { type: ElementRef },\n { type: GridAlignStyleBuilder, decorators: [{ type: Optional }] },\n { type: StyleUtils },\n { type: MediaMarshaller }\n ]; };\n return GridAlignDirective;\n}(BaseDirective2));\n/** @type {?} */\nvar alignCache = new Map();\n/** @type {?} */\nvar inputs = [\n 'gdGridAlign',\n 'gdGridAlign.xs', 'gdGridAlign.sm', 'gdGridAlign.md', 'gdGridAlign.lg', 'gdGridAlign.xl',\n 'gdGridAlign.lt-sm', 'gdGridAlign.lt-md', 'gdGridAlign.lt-lg', 'gdGridAlign.lt-xl',\n 'gdGridAlign.gt-xs', 'gdGridAlign.gt-sm', 'gdGridAlign.gt-md', 'gdGridAlign.gt-lg'\n];\n/** @type {?} */\nvar selector = \"\\n [gdGridAlign],\\n [gdGridAlign.xs], [gdGridAlign.sm], [gdGridAlign.md], [gdGridAlign.lg],[gdGridAlign.xl],\\n [gdGridAlign.lt-sm], [gdGridAlign.lt-md], [gdGridAlign.lt-lg], [gdGridAlign.lt-xl],\\n [gdGridAlign.gt-xs], [gdGridAlign.gt-sm], [gdGridAlign.gt-md], [gdGridAlign.gt-lg]\\n\";\n/**\n * 'align' CSS Grid styling directive for grid children\n * Defines positioning of child elements along row and column axis in a grid container\n * Optional values: {row-axis} values or {row-axis column-axis} value pairs\n *\n * @see https://css-tricks.com/snippets/css/complete-guide-grid/#prop-justify-self\n * @see https://css-tricks.com/snippets/css/complete-guide-grid/#prop-align-self\n */\nvar DefaultGridAlignDirective = /** @class */ (function (_super) {\n __extends(DefaultGridAlignDirective, _super);\n function DefaultGridAlignDirective() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.inputs = inputs;\n return _this;\n }\n DefaultGridAlignDirective.decorators = [\n { type: Directive, args: [{ selector: selector, inputs: inputs },] },\n ];\n return DefaultGridAlignDirective;\n}(GridAlignDirective));\n/**\n * @param {?=} align\n * @return {?}\n */\nfunction buildCss(align) {\n if (align === void 0) { align = ''; }\n /** @type {?} */\n var css = {};\n var _a = align.split(' '), rowAxis = _a[0], columnAxis = _a[1];\n // Row axis\n switch (rowAxis) {\n case 'end':\n css['justify-self'] = 'end';\n break;\n case 'center':\n css['justify-self'] = 'center';\n break;\n case 'stretch':\n css['justify-self'] = 'stretch';\n break;\n case 'start':\n css['justify-self'] = 'start';\n break;\n default:\n css['justify-self'] = ROW_DEFAULT; // default row axis\n break;\n }\n // Column axis\n switch (columnAxis) {\n case 'end':\n css['align-self'] = 'end';\n break;\n case 'center':\n css['align-self'] = 'center';\n break;\n case 'stretch':\n css['align-self'] = 'stretch';\n break;\n case 'start':\n css['align-self'] = 'start';\n break;\n default:\n css['align-self'] = COL_DEFAULT; // default column axis\n break;\n }\n return css;\n}\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n/** @type {?} */\nvar DEFAULT_MAIN = 'start';\n/** @type {?} */\nvar DEFAULT_CROSS = 'stretch';\nvar GridAlignColumnsStyleBuilder = /** @class */ (function (_super) {\n __extends(GridAlignColumnsStyleBuilder, _super);\n function GridAlignColumnsStyleBuilder() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n /**\n * @param {?} input\n * @param {?} parent\n * @return {?}\n */\n GridAlignColumnsStyleBuilder.prototype.buildStyles = /**\n * @param {?} input\n * @param {?} parent\n * @return {?}\n */\n function (input, parent) {\n return buildCss$1(input || DEFAULT_MAIN + \" \" + DEFAULT_CROSS, parent.inline);\n };\n GridAlignColumnsStyleBuilder.decorators = [\n { type: Injectable, args: [{ providedIn: 'root' },] },\n ];\n /** @nocollapse */ GridAlignColumnsStyleBuilder.ngInjectableDef = ɵɵdefineInjectable({ factory: function GridAlignColumnsStyleBuilder_Factory() { return new GridAlignColumnsStyleBuilder(); }, token: GridAlignColumnsStyleBuilder, providedIn: \"root\" });\n return GridAlignColumnsStyleBuilder;\n}(StyleBuilder));\nvar GridAlignColumnsDirective = /** @class */ (function (_super) {\n __extends(GridAlignColumnsDirective, _super);\n function GridAlignColumnsDirective(elementRef, styleBuilder, styler, marshal) {\n var _this = _super.call(this, elementRef, styleBuilder, styler, marshal) || this;\n _this.elementRef = elementRef;\n _this.styleBuilder = styleBuilder;\n _this.styler = styler;\n _this.marshal = marshal;\n _this.DIRECTIVE_KEY = 'grid-align-columns';\n _this._inline = false;\n _this.init();\n return _this;\n }\n Object.defineProperty(GridAlignColumnsDirective.prototype, \"inline\", {\n get: /**\n * @return {?}\n */\n function () { return this._inline; },\n set: /**\n * @param {?} val\n * @return {?}\n */\n function (val) { this._inline = coerceBooleanProperty(val); },\n enumerable: true,\n configurable: true\n });\n // *********************************************\n // Protected methods\n // *********************************************\n // *********************************************\n // Protected methods\n // *********************************************\n /**\n * @protected\n * @param {?} value\n * @return {?}\n */\n GridAlignColumnsDirective.prototype.updateWithValue = \n // *********************************************\n // Protected methods\n // *********************************************\n /**\n * @protected\n * @param {?} value\n * @return {?}\n */\n function (value) {\n this.styleCache = this.inline ? alignColumnsInlineCache : alignColumnsCache;\n this.addStyles(value, { inline: this.inline });\n };\n GridAlignColumnsDirective.decorators = [\n { type: Directive, args: [{ selector: 'grid-align-columns-directive' },] },\n ];\n /** @nocollapse */\n GridAlignColumnsDirective.ctorParameters = function () { return [\n { type: ElementRef },\n { type: GridAlignColumnsStyleBuilder, decorators: [{ type: Optional }] },\n { type: StyleUtils },\n { type: MediaMarshaller }\n ]; };\n GridAlignColumnsDirective.propDecorators = {\n inline: [{ type: Input, args: ['gdInline',] }]\n };\n return GridAlignColumnsDirective;\n}(BaseDirective2));\n/** @type {?} */\nvar alignColumnsCache = new Map();\n/** @type {?} */\nvar alignColumnsInlineCache = new Map();\n/** @type {?} */\nvar inputs$1 = [\n 'gdAlignColumns',\n 'gdAlignColumns.xs', 'gdAlignColumns.sm', 'gdAlignColumns.md',\n 'gdAlignColumns.lg', 'gdAlignColumns.xl', 'gdAlignColumns.lt-sm',\n 'gdAlignColumns.lt-md', 'gdAlignColumns.lt-lg', 'gdAlignColumns.lt-xl',\n 'gdAlignColumns.gt-xs', 'gdAlignColumns.gt-sm', 'gdAlignColumns.gt-md',\n 'gdAlignColumns.gt-lg'\n];\n/** @type {?} */\nvar selector$1 = \"\\n [gdAlignColumns],\\n [gdAlignColumns.xs], [gdAlignColumns.sm], [gdAlignColumns.md],\\n [gdAlignColumns.lg], [gdAlignColumns.xl], [gdAlignColumns.lt-sm],\\n [gdAlignColumns.lt-md], [gdAlignColumns.lt-lg], [gdAlignColumns.lt-xl],\\n [gdAlignColumns.gt-xs], [gdAlignColumns.gt-sm], [gdAlignColumns.gt-md],\\n [gdAlignColumns.gt-lg]\\n\";\n/**\n * 'column alignment' CSS Grid styling directive\n * Configures the alignment in the column direction\n * @see https://css-tricks.com/snippets/css/complete-guide-grid/#article-header-id-19\n * @see https://css-tricks.com/snippets/css/complete-guide-grid/#article-header-id-21\n */\nvar DefaultGridAlignColumnsDirective = /** @class */ (function (_super) {\n __extends(DefaultGridAlignColumnsDirective, _super);\n function DefaultGridAlignColumnsDirective() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.inputs = inputs$1;\n return _this;\n }\n DefaultGridAlignColumnsDirective.decorators = [\n { type: Directive, args: [{ selector: selector$1, inputs: inputs$1 },] },\n ];\n return DefaultGridAlignColumnsDirective;\n}(GridAlignColumnsDirective));\n/**\n * @param {?} align\n * @param {?} inline\n * @return {?}\n */\nfunction buildCss$1(align, inline) {\n /** @type {?} */\n var css = {};\n var _a = align.split(' '), mainAxis = _a[0], crossAxis = _a[1];\n // Main axis\n switch (mainAxis) {\n case 'center':\n css['align-content'] = 'center';\n break;\n case 'space-around':\n css['align-content'] = 'space-around';\n break;\n case 'space-between':\n css['align-content'] = 'space-between';\n break;\n case 'space-evenly':\n css['align-content'] = 'space-evenly';\n break;\n case 'end':\n css['align-content'] = 'end';\n break;\n case 'start':\n css['align-content'] = 'start';\n break;\n case 'stretch':\n css['align-content'] = 'stretch';\n break;\n default:\n css['align-content'] = DEFAULT_MAIN; // default main axis\n break;\n }\n // Cross-axis\n switch (crossAxis) {\n case 'start':\n css['align-items'] = 'start';\n break;\n case 'center':\n css['align-items'] = 'center';\n break;\n case 'end':\n css['align-items'] = 'end';\n break;\n case 'stretch':\n css['align-items'] = 'stretch';\n break;\n default: // 'stretch'\n css['align-items'] = DEFAULT_CROSS; // default cross axis\n break;\n }\n css['display'] = inline ? 'inline-grid' : 'grid';\n return css;\n}\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n/** @type {?} */\nvar DEFAULT_MAIN$1 = 'start';\n/** @type {?} */\nvar DEFAULT_CROSS$1 = 'stretch';\nvar GridAlignRowsStyleBuilder = /** @class */ (function (_super) {\n __extends(GridAlignRowsStyleBuilder, _super);\n function GridAlignRowsStyleBuilder() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n /**\n * @param {?} input\n * @param {?} parent\n * @return {?}\n */\n GridAlignRowsStyleBuilder.prototype.buildStyles = /**\n * @param {?} input\n * @param {?} parent\n * @return {?}\n */\n function (input, parent) {\n return buildCss$2(input || DEFAULT_MAIN$1 + \" \" + DEFAULT_CROSS$1, parent.inline);\n };\n GridAlignRowsStyleBuilder.decorators = [\n { type: Injectable, args: [{ providedIn: 'root' },] },\n ];\n /** @nocollapse */ GridAlignRowsStyleBuilder.ngInjectableDef = ɵɵdefineInjectable({ factory: function GridAlignRowsStyleBuilder_Factory() { return new GridAlignRowsStyleBuilder(); }, token: GridAlignRowsStyleBuilder, providedIn: \"root\" });\n return GridAlignRowsStyleBuilder;\n}(StyleBuilder));\nvar GridAlignRowsDirective = /** @class */ (function (_super) {\n __extends(GridAlignRowsDirective, _super);\n function GridAlignRowsDirective(elementRef, styleBuilder, styler, marshal) {\n var _this = _super.call(this, elementRef, styleBuilder, styler, marshal) || this;\n _this.elementRef = elementRef;\n _this.styleBuilder = styleBuilder;\n _this.styler = styler;\n _this.marshal = marshal;\n _this.DIRECTIVE_KEY = 'grid-align-rows';\n _this._inline = false;\n _this.init();\n return _this;\n }\n Object.defineProperty(GridAlignRowsDirective.prototype, \"inline\", {\n get: /**\n * @return {?}\n */\n function () { return this._inline; },\n set: /**\n * @param {?} val\n * @return {?}\n */\n function (val) { this._inline = coerceBooleanProperty(val); },\n enumerable: true,\n configurable: true\n });\n // *********************************************\n // Protected methods\n // *********************************************\n // *********************************************\n // Protected methods\n // *********************************************\n /**\n * @protected\n * @param {?} value\n * @return {?}\n */\n GridAlignRowsDirective.prototype.updateWithValue = \n // *********************************************\n // Protected methods\n // *********************************************\n /**\n * @protected\n * @param {?} value\n * @return {?}\n */\n function (value) {\n this.styleCache = this.inline ? alignRowsInlineCache : alignRowsCache;\n this.addStyles(value, { inline: this.inline });\n };\n GridAlignRowsDirective.decorators = [\n { type: Directive, args: [{ selector: 'grid-align-rows-directive' },] },\n ];\n /** @nocollapse */\n GridAlignRowsDirective.ctorParameters = function () { return [\n { type: ElementRef },\n { type: GridAlignRowsStyleBuilder, decorators: [{ type: Optional }] },\n { type: StyleUtils },\n { type: MediaMarshaller }\n ]; };\n GridAlignRowsDirective.propDecorators = {\n inline: [{ type: Input, args: ['gdInline',] }]\n };\n return GridAlignRowsDirective;\n}(BaseDirective2));\n/** @type {?} */\nvar alignRowsCache = new Map();\n/** @type {?} */\nvar alignRowsInlineCache = new Map();\n/** @type {?} */\nvar inputs$2 = [\n 'gdAlignRows',\n 'gdAlignRows.xs', 'gdAlignRows.sm', 'gdAlignRows.md',\n 'gdAlignRows.lg', 'gdAlignRows.xl', 'gdAlignRows.lt-sm',\n 'gdAlignRows.lt-md', 'gdAlignRows.lt-lg', 'gdAlignRows.lt-xl',\n 'gdAlignRows.gt-xs', 'gdAlignRows.gt-sm', 'gdAlignRows.gt-md',\n 'gdAlignRows.gt-lg'\n];\n/** @type {?} */\nvar selector$2 = \"\\n [gdAlignRows],\\n [gdAlignRows.xs], [gdAlignRows.sm], [gdAlignRows.md],\\n [gdAlignRows.lg], [gdAlignRows.xl], [gdAlignRows.lt-sm],\\n [gdAlignRows.lt-md], [gdAlignRows.lt-lg], [gdAlignRows.lt-xl],\\n [gdAlignRows.gt-xs], [gdAlignRows.gt-sm], [gdAlignRows.gt-md],\\n [gdAlignRows.gt-lg]\\n\";\n/**\n * 'row alignment' CSS Grid styling directive\n * Configures the alignment in the row direction\n * @see https://css-tricks.com/snippets/css/complete-guide-grid/#article-header-id-18\n * @see https://css-tricks.com/snippets/css/complete-guide-grid/#article-header-id-20\n */\nvar DefaultGridAlignRowsDirective = /** @class */ (function (_super) {\n __extends(DefaultGridAlignRowsDirective, _super);\n function DefaultGridAlignRowsDirective() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.inputs = inputs$2;\n return _this;\n }\n DefaultGridAlignRowsDirective.decorators = [\n { type: Directive, args: [{ selector: selector$2, inputs: inputs$2 },] },\n ];\n return DefaultGridAlignRowsDirective;\n}(GridAlignRowsDirective));\n/**\n * @param {?} align\n * @param {?} inline\n * @return {?}\n */\nfunction buildCss$2(align, inline) {\n /** @type {?} */\n var css = {};\n var _a = align.split(' '), mainAxis = _a[0], crossAxis = _a[1];\n // Main axis\n switch (mainAxis) {\n case 'center':\n case 'space-around':\n case 'space-between':\n case 'space-evenly':\n case 'end':\n case 'start':\n case 'stretch':\n css['justify-content'] = mainAxis;\n break;\n default:\n css['justify-content'] = DEFAULT_MAIN$1; // default main axis\n break;\n }\n // Cross-axis\n switch (crossAxis) {\n case 'start':\n case 'center':\n case 'end':\n case 'stretch':\n css['justify-items'] = crossAxis;\n break;\n default: // 'stretch'\n css['justify-items'] = DEFAULT_CROSS$1; // default cross axis\n break;\n }\n css['display'] = inline ? 'inline-grid' : 'grid';\n return css;\n}\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n/** @type {?} */\nvar DEFAULT_VALUE = 'auto';\nvar GridAreaStyleBuilder = /** @class */ (function (_super) {\n __extends(GridAreaStyleBuilder, _super);\n function GridAreaStyleBuilder() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n /**\n * @param {?} input\n * @return {?}\n */\n GridAreaStyleBuilder.prototype.buildStyles = /**\n * @param {?} input\n * @return {?}\n */\n function (input) {\n return { 'grid-area': input || DEFAULT_VALUE };\n };\n GridAreaStyleBuilder.decorators = [\n { type: Injectable, args: [{ providedIn: 'root' },] },\n ];\n /** @nocollapse */ GridAreaStyleBuilder.ngInjectableDef = ɵɵdefineInjectable({ factory: function GridAreaStyleBuilder_Factory() { return new GridAreaStyleBuilder(); }, token: GridAreaStyleBuilder, providedIn: \"root\" });\n return GridAreaStyleBuilder;\n}(StyleBuilder));\nvar GridAreaDirective = /** @class */ (function (_super) {\n __extends(GridAreaDirective, _super);\n function GridAreaDirective(elRef, styleUtils, styleBuilder, marshal) {\n var _this = _super.call(this, elRef, styleBuilder, styleUtils, marshal) || this;\n _this.elRef = elRef;\n _this.styleUtils = styleUtils;\n _this.styleBuilder = styleBuilder;\n _this.marshal = marshal;\n _this.DIRECTIVE_KEY = 'grid-area';\n _this.styleCache = gridAreaCache;\n _this.init();\n return _this;\n }\n GridAreaDirective.decorators = [\n { type: Directive, args: [{ selector: 'grid-area-directive' },] },\n ];\n /** @nocollapse */\n GridAreaDirective.ctorParameters = function () { return [\n { type: ElementRef },\n { type: StyleUtils },\n { type: GridAreaStyleBuilder, decorators: [{ type: Optional }] },\n { type: MediaMarshaller }\n ]; };\n return GridAreaDirective;\n}(BaseDirective2));\n/** @type {?} */\nvar gridAreaCache = new Map();\n/** @type {?} */\nvar inputs$3 = [\n 'gdArea',\n 'gdArea.xs', 'gdArea.sm', 'gdArea.md', 'gdArea.lg', 'gdArea.xl',\n 'gdArea.lt-sm', 'gdArea.lt-md', 'gdArea.lt-lg', 'gdArea.lt-xl',\n 'gdArea.gt-xs', 'gdArea.gt-sm', 'gdArea.gt-md', 'gdArea.gt-lg'\n];\n/** @type {?} */\nvar selector$3 = \"\\n [gdArea],\\n [gdArea.xs], [gdArea.sm], [gdArea.md], [gdArea.lg], [gdArea.xl],\\n [gdArea.lt-sm], [gdArea.lt-md], [gdArea.lt-lg], [gdArea.lt-xl],\\n [gdArea.gt-xs], [gdArea.gt-sm], [gdArea.gt-md], [gdArea.gt-lg]\\n\";\n/**\n * 'grid-area' CSS Grid styling directive\n * Configures the name or position of an element within the grid\n * @see https://css-tricks.com/snippets/css/complete-guide-grid/#article-header-id-27\n */\nvar DefaultGridAreaDirective = /** @class */ (function (_super) {\n __extends(DefaultGridAreaDirective, _super);\n function DefaultGridAreaDirective() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.inputs = inputs$3;\n return _this;\n }\n DefaultGridAreaDirective.decorators = [\n { type: Directive, args: [{ selector: selector$3, inputs: inputs$3 },] },\n ];\n return DefaultGridAreaDirective;\n}(GridAreaDirective));\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n/** @type {?} */\nvar DEFAULT_VALUE$1 = 'none';\n/** @type {?} */\nvar DELIMETER = '|';\nvar GridAreasStyleBuiler = /** @class */ (function (_super) {\n __extends(GridAreasStyleBuiler, _super);\n function GridAreasStyleBuiler() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n /**\n * @param {?} input\n * @param {?} parent\n * @return {?}\n */\n GridAreasStyleBuiler.prototype.buildStyles = /**\n * @param {?} input\n * @param {?} parent\n * @return {?}\n */\n function (input, parent) {\n /** @type {?} */\n var areas = (input || DEFAULT_VALUE$1).split(DELIMETER).map((/**\n * @param {?} v\n * @return {?}\n */\n function (v) { return \"\\\"\" + v.trim() + \"\\\"\"; }));\n return {\n 'display': parent.inline ? 'inline-grid' : 'grid',\n 'grid-template-areas': areas.join(' ')\n };\n };\n GridAreasStyleBuiler.decorators = [\n { type: Injectable, args: [{ providedIn: 'root' },] },\n ];\n /** @nocollapse */ GridAreasStyleBuiler.ngInjectableDef = ɵɵdefineInjectable({ factory: function GridAreasStyleBuiler_Factory() { return new GridAreasStyleBuiler(); }, token: GridAreasStyleBuiler, providedIn: \"root\" });\n return GridAreasStyleBuiler;\n}(StyleBuilder));\nvar GridAreasDirective = /** @class */ (function (_super) {\n __extends(GridAreasDirective, _super);\n function GridAreasDirective(elRef, styleUtils, styleBuilder, marshal) {\n var _this = _super.call(this, elRef, styleBuilder, styleUtils, marshal) || this;\n _this.elRef = elRef;\n _this.styleUtils = styleUtils;\n _this.styleBuilder = styleBuilder;\n _this.marshal = marshal;\n _this.DIRECTIVE_KEY = 'grid-areas';\n _this._inline = false;\n _this.init();\n return _this;\n }\n Object.defineProperty(GridAreasDirective.prototype, \"inline\", {\n get: /**\n * @return {?}\n */\n function () { return this._inline; },\n set: /**\n * @param {?} val\n * @return {?}\n */\n function (val) { this._inline = coerceBooleanProperty(val); },\n enumerable: true,\n configurable: true\n });\n // *********************************************\n // Protected methods\n // *********************************************\n // *********************************************\n // Protected methods\n // *********************************************\n /**\n * @protected\n * @param {?} value\n * @return {?}\n */\n GridAreasDirective.prototype.updateWithValue = \n // *********************************************\n // Protected methods\n // *********************************************\n /**\n * @protected\n * @param {?} value\n * @return {?}\n */\n function (value) {\n this.styleCache = this.inline ? areasInlineCache : areasCache;\n this.addStyles(value, { inline: this.inline });\n };\n GridAreasDirective.decorators = [\n { type: Directive, args: [{ selector: 'grid-areas-directive' },] },\n ];\n /** @nocollapse */\n GridAreasDirective.ctorParameters = function () { return [\n { type: ElementRef },\n { type: StyleUtils },\n { type: GridAreasStyleBuiler, decorators: [{ type: Optional }] },\n { type: MediaMarshaller }\n ]; };\n GridAreasDirective.propDecorators = {\n inline: [{ type: Input, args: ['gdInline',] }]\n };\n return GridAreasDirective;\n}(BaseDirective2));\n/** @type {?} */\nvar areasCache = new Map();\n/** @type {?} */\nvar areasInlineCache = new Map();\n/** @type {?} */\nvar inputs$4 = [\n 'gdAreas',\n 'gdAreas.xs', 'gdAreas.sm', 'gdAreas.md', 'gdAreas.lg', 'gdAreas.xl',\n 'gdAreas.lt-sm', 'gdAreas.lt-md', 'gdAreas.lt-lg', 'gdAreas.lt-xl',\n 'gdAreas.gt-xs', 'gdAreas.gt-sm', 'gdAreas.gt-md', 'gdAreas.gt-lg'\n];\n/** @type {?} */\nvar selector$4 = \"\\n [gdAreas],\\n [gdAreas.xs], [gdAreas.sm], [gdAreas.md], [gdAreas.lg], [gdAreas.xl],\\n [gdAreas.lt-sm], [gdAreas.lt-md], [gdAreas.lt-lg], [gdAreas.lt-xl],\\n [gdAreas.gt-xs], [gdAreas.gt-sm], [gdAreas.gt-md], [gdAreas.gt-lg]\\n\";\n/**\n * 'grid-template-areas' CSS Grid styling directive\n * Configures the names of elements within the grid\n * @see https://css-tricks.com/snippets/css/complete-guide-grid/#article-header-id-14\n */\nvar DefaultGridAreasDirective = /** @class */ (function (_super) {\n __extends(DefaultGridAreasDirective, _super);\n function DefaultGridAreasDirective() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.inputs = inputs$4;\n return _this;\n }\n DefaultGridAreasDirective.decorators = [\n { type: Directive, args: [{ selector: selector$4, inputs: inputs$4 },] },\n ];\n return DefaultGridAreasDirective;\n}(GridAreasDirective));\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n/** @type {?} */\nvar DEFAULT_VALUE$2 = 'initial';\nvar GridAutoStyleBuilder = /** @class */ (function (_super) {\n __extends(GridAutoStyleBuilder, _super);\n function GridAutoStyleBuilder() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n /**\n * @param {?} input\n * @param {?} parent\n * @return {?}\n */\n GridAutoStyleBuilder.prototype.buildStyles = /**\n * @param {?} input\n * @param {?} parent\n * @return {?}\n */\n function (input, parent) {\n var _a = (input || DEFAULT_VALUE$2).split(' '), direction = _a[0], dense = _a[1];\n if (direction !== 'column' && direction !== 'row' && direction !== 'dense') {\n direction = 'row';\n }\n dense = (dense === 'dense' && direction !== 'dense') ? ' dense' : '';\n return {\n 'display': parent.inline ? 'inline-grid' : 'grid',\n 'grid-auto-flow': direction + dense\n };\n };\n GridAutoStyleBuilder.decorators = [\n { type: Injectable, args: [{ providedIn: 'root' },] },\n ];\n /** @nocollapse */ GridAutoStyleBuilder.ngInjectableDef = ɵɵdefineInjectable({ factory: function GridAutoStyleBuilder_Factory() { return new GridAutoStyleBuilder(); }, token: GridAutoStyleBuilder, providedIn: \"root\" });\n return GridAutoStyleBuilder;\n}(StyleBuilder));\nvar GridAutoDirective = /** @class */ (function (_super) {\n __extends(GridAutoDirective, _super);\n function GridAutoDirective(elementRef, styleBuilder, styler, marshal) {\n var _this = _super.call(this, elementRef, styleBuilder, styler, marshal) || this;\n _this.elementRef = elementRef;\n _this.styleBuilder = styleBuilder;\n _this.styler = styler;\n _this.marshal = marshal;\n _this._inline = false;\n _this.DIRECTIVE_KEY = 'grid-auto';\n _this.init();\n return _this;\n }\n Object.defineProperty(GridAutoDirective.prototype, \"inline\", {\n get: /**\n * @return {?}\n */\n function () { return this._inline; },\n set: /**\n * @param {?} val\n * @return {?}\n */\n function (val) { this._inline = coerceBooleanProperty(val); },\n enumerable: true,\n configurable: true\n });\n // *********************************************\n // Protected methods\n // *********************************************\n // *********************************************\n // Protected methods\n // *********************************************\n /**\n * @protected\n * @param {?} value\n * @return {?}\n */\n GridAutoDirective.prototype.updateWithValue = \n // *********************************************\n // Protected methods\n // *********************************************\n /**\n * @protected\n * @param {?} value\n * @return {?}\n */\n function (value) {\n this.styleCache = this.inline ? autoInlineCache : autoCache;\n this.addStyles(value, { inline: this.inline });\n };\n GridAutoDirective.decorators = [\n { type: Directive, args: [{ selector: \"grid-auto-directive\" },] },\n ];\n /** @nocollapse */\n GridAutoDirective.ctorParameters = function () { return [\n { type: ElementRef },\n { type: GridAutoStyleBuilder, decorators: [{ type: Optional }] },\n { type: StyleUtils },\n { type: MediaMarshaller }\n ]; };\n GridAutoDirective.propDecorators = {\n inline: [{ type: Input, args: ['gdInline',] }]\n };\n return GridAutoDirective;\n}(BaseDirective2));\n/** @type {?} */\nvar autoCache = new Map();\n/** @type {?} */\nvar autoInlineCache = new Map();\n/** @type {?} */\nvar inputs$5 = [\n 'gdAuto',\n 'gdAuto.xs', 'gdAuto.sm', 'gdAuto.md', 'gdAuto.lg', 'gdAuto.xl',\n 'gdAuto.lt-sm', 'gdAuto.lt-md', 'gdAuto.lt-lg', 'gdAuto.lt-xl',\n 'gdAuto.gt-xs', 'gdAuto.gt-sm', 'gdAuto.gt-md', 'gdAuto.gt-lg'\n];\n/** @type {?} */\nvar selector$5 = \"\\n [gdAuto],\\n [gdAuto.xs], [gdAuto.sm], [gdAuto.md], [gdAuto.lg], [gdAuto.xl],\\n [gdAuto.lt-sm], [gdAuto.lt-md], [gdAuto.lt-lg], [gdAuto.lt-xl],\\n [gdAuto.gt-xs], [gdAuto.gt-sm], [gdAuto.gt-md], [gdAuto.gt-lg]\\n\";\n/**\n * 'grid-auto-flow' CSS Grid styling directive\n * Configures the auto placement algorithm for the grid\n * @see https://css-tricks.com/snippets/css/complete-guide-grid/#article-header-id-23\n */\nvar DefaultGridAutoDirective = /** @class */ (function (_super) {\n __extends(DefaultGridAutoDirective, _super);\n function DefaultGridAutoDirective() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.inputs = inputs$5;\n return _this;\n }\n DefaultGridAutoDirective.decorators = [\n { type: Directive, args: [{ selector: selector$5, inputs: inputs$5 },] },\n ];\n return DefaultGridAutoDirective;\n}(GridAutoDirective));\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n/** @type {?} */\nvar DEFAULT_VALUE$3 = 'auto';\nvar GridColumnStyleBuilder = /** @class */ (function (_super) {\n __extends(GridColumnStyleBuilder, _super);\n function GridColumnStyleBuilder() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n /**\n * @param {?} input\n * @return {?}\n */\n GridColumnStyleBuilder.prototype.buildStyles = /**\n * @param {?} input\n * @return {?}\n */\n function (input) {\n return { 'grid-column': input || DEFAULT_VALUE$3 };\n };\n GridColumnStyleBuilder.decorators = [\n { type: Injectable, args: [{ providedIn: 'root' },] },\n ];\n /** @nocollapse */ GridColumnStyleBuilder.ngInjectableDef = ɵɵdefineInjectable({ factory: function GridColumnStyleBuilder_Factory() { return new GridColumnStyleBuilder(); }, token: GridColumnStyleBuilder, providedIn: \"root\" });\n return GridColumnStyleBuilder;\n}(StyleBuilder));\nvar GridColumnDirective = /** @class */ (function (_super) {\n __extends(GridColumnDirective, _super);\n function GridColumnDirective(elementRef, styleBuilder, styler, marshal) {\n var _this = _super.call(this, elementRef, styleBuilder, styler, marshal) || this;\n _this.elementRef = elementRef;\n _this.styleBuilder = styleBuilder;\n _this.styler = styler;\n _this.marshal = marshal;\n _this.DIRECTIVE_KEY = 'grid-column';\n _this.styleCache = columnCache;\n _this.init();\n return _this;\n }\n GridColumnDirective.decorators = [\n { type: Directive, args: [{ selector: 'grid-column-directive' },] },\n ];\n /** @nocollapse */\n GridColumnDirective.ctorParameters = function () { return [\n { type: ElementRef },\n { type: GridColumnStyleBuilder, decorators: [{ type: Optional }] },\n { type: StyleUtils },\n { type: MediaMarshaller }\n ]; };\n return GridColumnDirective;\n}(BaseDirective2));\n/** @type {?} */\nvar columnCache = new Map();\n/** @type {?} */\nvar inputs$6 = [\n 'gdColumn',\n 'gdColumn.xs', 'gdColumn.sm', 'gdColumn.md', 'gdColumn.lg', 'gdColumn.xl',\n 'gdColumn.lt-sm', 'gdColumn.lt-md', 'gdColumn.lt-lg', 'gdColumn.lt-xl',\n 'gdColumn.gt-xs', 'gdColumn.gt-sm', 'gdColumn.gt-md', 'gdColumn.gt-lg'\n];\n/** @type {?} */\nvar selector$6 = \"\\n [gdColumn],\\n [gdColumn.xs], [gdColumn.sm], [gdColumn.md], [gdColumn.lg], [gdColumn.xl],\\n [gdColumn.lt-sm], [gdColumn.lt-md], [gdColumn.lt-lg], [gdColumn.lt-xl],\\n [gdColumn.gt-xs], [gdColumn.gt-sm], [gdColumn.gt-md], [gdColumn.gt-lg]\\n\";\n/**\n * 'grid-column' CSS Grid styling directive\n * Configures the name or position of an element within the grid\n * @see https://css-tricks.com/snippets/css/complete-guide-grid/#article-header-id-26\n */\nvar DefaultGridColumnDirective = /** @class */ (function (_super) {\n __extends(DefaultGridColumnDirective, _super);\n function DefaultGridColumnDirective() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.inputs = inputs$6;\n return _this;\n }\n DefaultGridColumnDirective.decorators = [\n { type: Directive, args: [{ selector: selector$6, inputs: inputs$6 },] },\n ];\n return DefaultGridColumnDirective;\n}(GridColumnDirective));\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n/** @type {?} */\nvar DEFAULT_VALUE$4 = 'none';\n/** @type {?} */\nvar AUTO_SPECIFIER = '!';\nvar GridColumnsStyleBuilder = /** @class */ (function (_super) {\n __extends(GridColumnsStyleBuilder, _super);\n function GridColumnsStyleBuilder() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n /**\n * @param {?} input\n * @param {?} parent\n * @return {?}\n */\n GridColumnsStyleBuilder.prototype.buildStyles = /**\n * @param {?} input\n * @param {?} parent\n * @return {?}\n */\n function (input, parent) {\n input = input || DEFAULT_VALUE$4;\n /** @type {?} */\n var auto = false;\n if (input.endsWith(AUTO_SPECIFIER)) {\n input = input.substring(0, input.indexOf(AUTO_SPECIFIER));\n auto = true;\n }\n /** @type {?} */\n var css = {\n 'display': parent.inline ? 'inline-grid' : 'grid',\n 'grid-auto-columns': '',\n 'grid-template-columns': '',\n };\n /** @type {?} */\n var key = (auto ? 'grid-auto-columns' : 'grid-template-columns');\n css[key] = input;\n return css;\n };\n GridColumnsStyleBuilder.decorators = [\n { type: Injectable, args: [{ providedIn: 'root' },] },\n ];\n /** @nocollapse */ GridColumnsStyleBuilder.ngInjectableDef = ɵɵdefineInjectable({ factory: function GridColumnsStyleBuilder_Factory() { return new GridColumnsStyleBuilder(); }, token: GridColumnsStyleBuilder, providedIn: \"root\" });\n return GridColumnsStyleBuilder;\n}(StyleBuilder));\nvar GridColumnsDirective = /** @class */ (function (_super) {\n __extends(GridColumnsDirective, _super);\n function GridColumnsDirective(elementRef, styleBuilder, styler, marshal) {\n var _this = _super.call(this, elementRef, styleBuilder, styler, marshal) || this;\n _this.elementRef = elementRef;\n _this.styleBuilder = styleBuilder;\n _this.styler = styler;\n _this.marshal = marshal;\n _this.DIRECTIVE_KEY = 'grid-columns';\n _this._inline = false;\n _this.init();\n return _this;\n }\n Object.defineProperty(GridColumnsDirective.prototype, \"inline\", {\n get: /**\n * @return {?}\n */\n function () { return this._inline; },\n set: /**\n * @param {?} val\n * @return {?}\n */\n function (val) { this._inline = coerceBooleanProperty(val); },\n enumerable: true,\n configurable: true\n });\n // *********************************************\n // Protected methods\n // *********************************************\n // *********************************************\n // Protected methods\n // *********************************************\n /**\n * @protected\n * @param {?} value\n * @return {?}\n */\n GridColumnsDirective.prototype.updateWithValue = \n // *********************************************\n // Protected methods\n // *********************************************\n /**\n * @protected\n * @param {?} value\n * @return {?}\n */\n function (value) {\n this.styleCache = this.inline ? columnsInlineCache : columnsCache;\n this.addStyles(value, { inline: this.inline });\n };\n GridColumnsDirective.decorators = [\n { type: Directive, args: [{ selector: 'grid-columns-directive' },] },\n ];\n /** @nocollapse */\n GridColumnsDirective.ctorParameters = function () { return [\n { type: ElementRef },\n { type: GridColumnsStyleBuilder, decorators: [{ type: Optional }] },\n { type: StyleUtils },\n { type: MediaMarshaller }\n ]; };\n GridColumnsDirective.propDecorators = {\n inline: [{ type: Input, args: ['gdInline',] }]\n };\n return GridColumnsDirective;\n}(BaseDirective2));\n/** @type {?} */\nvar columnsCache = new Map();\n/** @type {?} */\nvar columnsInlineCache = new Map();\n/** @type {?} */\nvar inputs$7 = [\n 'gdColumns',\n 'gdColumns.xs', 'gdColumns.sm', 'gdColumns.md', 'gdColumns.lg', 'gdColumns.xl',\n 'gdColumns.lt-sm', 'gdColumns.lt-md', 'gdColumns.lt-lg', 'gdColumns.lt-xl',\n 'gdColumns.gt-xs', 'gdColumns.gt-sm', 'gdColumns.gt-md', 'gdColumns.gt-lg'\n];\n/** @type {?} */\nvar selector$7 = \"\\n [gdColumns],\\n [gdColumns.xs], [gdColumns.sm], [gdColumns.md], [gdColumns.lg], [gdColumns.xl],\\n [gdColumns.lt-sm], [gdColumns.lt-md], [gdColumns.lt-lg], [gdColumns.lt-xl],\\n [gdColumns.gt-xs], [gdColumns.gt-sm], [gdColumns.gt-md], [gdColumns.gt-lg]\\n\";\n/**\n * 'grid-template-columns' CSS Grid styling directive\n * Configures the sizing for the columns in the grid\n * Syntax: [auto]\n * @see https://css-tricks.com/snippets/css/complete-guide-grid/#article-header-id-13\n */\nvar DefaultGridColumnsDirective = /** @class */ (function (_super) {\n __extends(DefaultGridColumnsDirective, _super);\n function DefaultGridColumnsDirective() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.inputs = inputs$7;\n return _this;\n }\n DefaultGridColumnsDirective.decorators = [\n { type: Directive, args: [{ selector: selector$7, inputs: inputs$7 },] },\n ];\n return DefaultGridColumnsDirective;\n}(GridColumnsDirective));\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n/** @type {?} */\nvar DEFAULT_VALUE$5 = '0';\nvar GridGapStyleBuilder = /** @class */ (function (_super) {\n __extends(GridGapStyleBuilder, _super);\n function GridGapStyleBuilder() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n /**\n * @param {?} input\n * @param {?} parent\n * @return {?}\n */\n GridGapStyleBuilder.prototype.buildStyles = /**\n * @param {?} input\n * @param {?} parent\n * @return {?}\n */\n function (input, parent) {\n return {\n 'display': parent.inline ? 'inline-grid' : 'grid',\n 'grid-gap': input || DEFAULT_VALUE$5\n };\n };\n GridGapStyleBuilder.decorators = [\n { type: Injectable, args: [{ providedIn: 'root' },] },\n ];\n /** @nocollapse */ GridGapStyleBuilder.ngInjectableDef = ɵɵdefineInjectable({ factory: function GridGapStyleBuilder_Factory() { return new GridGapStyleBuilder(); }, token: GridGapStyleBuilder, providedIn: \"root\" });\n return GridGapStyleBuilder;\n}(StyleBuilder));\nvar GridGapDirective = /** @class */ (function (_super) {\n __extends(GridGapDirective, _super);\n function GridGapDirective(elRef, styleUtils, styleBuilder, marshal) {\n var _this = _super.call(this, elRef, styleBuilder, styleUtils, marshal) || this;\n _this.elRef = elRef;\n _this.styleUtils = styleUtils;\n _this.styleBuilder = styleBuilder;\n _this.marshal = marshal;\n _this.DIRECTIVE_KEY = 'grid-gap';\n _this._inline = false;\n _this.init();\n return _this;\n }\n Object.defineProperty(GridGapDirective.prototype, \"inline\", {\n get: /**\n * @return {?}\n */\n function () { return this._inline; },\n set: /**\n * @param {?} val\n * @return {?}\n */\n function (val) { this._inline = coerceBooleanProperty(val); },\n enumerable: true,\n configurable: true\n });\n // *********************************************\n // Protected methods\n // *********************************************\n // *********************************************\n // Protected methods\n // *********************************************\n /**\n * @protected\n * @param {?} value\n * @return {?}\n */\n GridGapDirective.prototype.updateWithValue = \n // *********************************************\n // Protected methods\n // *********************************************\n /**\n * @protected\n * @param {?} value\n * @return {?}\n */\n function (value) {\n this.styleCache = this.inline ? gapInlineCache : gapCache;\n this.addStyles(value, { inline: this.inline });\n };\n GridGapDirective.decorators = [\n { type: Directive, args: [{ selector: 'grid-gap-directive' },] },\n ];\n /** @nocollapse */\n GridGapDirective.ctorParameters = function () { return [\n { type: ElementRef },\n { type: StyleUtils },\n { type: GridGapStyleBuilder, decorators: [{ type: Optional }] },\n { type: MediaMarshaller }\n ]; };\n GridGapDirective.propDecorators = {\n inline: [{ type: Input, args: ['gdInline',] }]\n };\n return GridGapDirective;\n}(BaseDirective2));\n/** @type {?} */\nvar gapCache = new Map();\n/** @type {?} */\nvar gapInlineCache = new Map();\n/** @type {?} */\nvar inputs$8 = [\n 'gdGap',\n 'gdGap.xs', 'gdGap.sm', 'gdGap.md', 'gdGap.lg', 'gdGap.xl',\n 'gdGap.lt-sm', 'gdGap.lt-md', 'gdGap.lt-lg', 'gdGap.lt-xl',\n 'gdGap.gt-xs', 'gdGap.gt-sm', 'gdGap.gt-md', 'gdGap.gt-lg'\n];\n/** @type {?} */\nvar selector$8 = \"\\n [gdGap],\\n [gdGap.xs], [gdGap.sm], [gdGap.md], [gdGap.lg], [gdGap.xl],\\n [gdGap.lt-sm], [gdGap.lt-md], [gdGap.lt-lg], [gdGap.lt-xl],\\n [gdGap.gt-xs], [gdGap.gt-sm], [gdGap.gt-md], [gdGap.gt-lg]\\n\";\n/**\n * 'grid-gap' CSS Grid styling directive\n * Configures the gap between items in the grid\n * Syntax: []\n * @see https://css-tricks.com/snippets/css/complete-guide-grid/#article-header-id-17\n */\nvar DefaultGridGapDirective = /** @class */ (function (_super) {\n __extends(DefaultGridGapDirective, _super);\n function DefaultGridGapDirective() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.inputs = inputs$8;\n return _this;\n }\n DefaultGridGapDirective.decorators = [\n { type: Directive, args: [{ selector: selector$8, inputs: inputs$8 },] },\n ];\n return DefaultGridGapDirective;\n}(GridGapDirective));\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n/** @type {?} */\nvar DEFAULT_VALUE$6 = 'auto';\nvar GridRowStyleBuilder = /** @class */ (function (_super) {\n __extends(GridRowStyleBuilder, _super);\n function GridRowStyleBuilder() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n /**\n * @param {?} input\n * @return {?}\n */\n GridRowStyleBuilder.prototype.buildStyles = /**\n * @param {?} input\n * @return {?}\n */\n function (input) {\n return { 'grid-row': input || DEFAULT_VALUE$6 };\n };\n GridRowStyleBuilder.decorators = [\n { type: Injectable, args: [{ providedIn: 'root' },] },\n ];\n /** @nocollapse */ GridRowStyleBuilder.ngInjectableDef = ɵɵdefineInjectable({ factory: function GridRowStyleBuilder_Factory() { return new GridRowStyleBuilder(); }, token: GridRowStyleBuilder, providedIn: \"root\" });\n return GridRowStyleBuilder;\n}(StyleBuilder));\nvar GridRowDirective = /** @class */ (function (_super) {\n __extends(GridRowDirective, _super);\n function GridRowDirective(elementRef, styleBuilder, styler, marshal) {\n var _this = _super.call(this, elementRef, styleBuilder, styler, marshal) || this;\n _this.elementRef = elementRef;\n _this.styleBuilder = styleBuilder;\n _this.styler = styler;\n _this.marshal = marshal;\n _this.DIRECTIVE_KEY = 'grid-row';\n _this.styleCache = rowCache;\n _this.init();\n return _this;\n }\n GridRowDirective.decorators = [\n { type: Directive, args: [{ selector: 'grid-row-directive' },] },\n ];\n /** @nocollapse */\n GridRowDirective.ctorParameters = function () { return [\n { type: ElementRef },\n { type: GridRowStyleBuilder, decorators: [{ type: Optional }] },\n { type: StyleUtils },\n { type: MediaMarshaller }\n ]; };\n return GridRowDirective;\n}(BaseDirective2));\n/** @type {?} */\nvar rowCache = new Map();\n/** @type {?} */\nvar inputs$9 = [\n 'gdRow',\n 'gdRow.xs', 'gdRow.sm', 'gdRow.md', 'gdRow.lg', 'gdRow.xl',\n 'gdRow.lt-sm', 'gdRow.lt-md', 'gdRow.lt-lg', 'gdRow.lt-xl',\n 'gdRow.gt-xs', 'gdRow.gt-sm', 'gdRow.gt-md', 'gdRow.gt-lg'\n];\n/** @type {?} */\nvar selector$9 = \"\\n [gdRow],\\n [gdRow.xs], [gdRow.sm], [gdRow.md], [gdRow.lg], [gdRow.xl],\\n [gdRow.lt-sm], [gdRow.lt-md], [gdRow.lt-lg], [gdRow.lt-xl],\\n [gdRow.gt-xs], [gdRow.gt-sm], [gdRow.gt-md], [gdRow.gt-lg]\\n\";\n/**\n * 'grid-row' CSS Grid styling directive\n * Configures the name or position of an element within the grid\n * @see https://css-tricks.com/snippets/css/complete-guide-grid/#article-header-id-26\n */\nvar DefaultGridRowDirective = /** @class */ (function (_super) {\n __extends(DefaultGridRowDirective, _super);\n function DefaultGridRowDirective() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.inputs = inputs$9;\n return _this;\n }\n DefaultGridRowDirective.decorators = [\n { type: Directive, args: [{ selector: selector$9, inputs: inputs$9 },] },\n ];\n return DefaultGridRowDirective;\n}(GridRowDirective));\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n/** @type {?} */\nvar DEFAULT_VALUE$7 = 'none';\n/** @type {?} */\nvar AUTO_SPECIFIER$1 = '!';\nvar GridRowsStyleBuilder = /** @class */ (function (_super) {\n __extends(GridRowsStyleBuilder, _super);\n function GridRowsStyleBuilder() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n /**\n * @param {?} input\n * @param {?} parent\n * @return {?}\n */\n GridRowsStyleBuilder.prototype.buildStyles = /**\n * @param {?} input\n * @param {?} parent\n * @return {?}\n */\n function (input, parent) {\n input = input || DEFAULT_VALUE$7;\n /** @type {?} */\n var auto = false;\n if (input.endsWith(AUTO_SPECIFIER$1)) {\n input = input.substring(0, input.indexOf(AUTO_SPECIFIER$1));\n auto = true;\n }\n /** @type {?} */\n var css = {\n 'display': parent.inline ? 'inline-grid' : 'grid',\n 'grid-auto-rows': '',\n 'grid-template-rows': '',\n };\n /** @type {?} */\n var key = (auto ? 'grid-auto-rows' : 'grid-template-rows');\n css[key] = input;\n return css;\n };\n GridRowsStyleBuilder.decorators = [\n { type: Injectable, args: [{ providedIn: 'root' },] },\n ];\n /** @nocollapse */ GridRowsStyleBuilder.ngInjectableDef = ɵɵdefineInjectable({ factory: function GridRowsStyleBuilder_Factory() { return new GridRowsStyleBuilder(); }, token: GridRowsStyleBuilder, providedIn: \"root\" });\n return GridRowsStyleBuilder;\n}(StyleBuilder));\nvar GridRowsDirective = /** @class */ (function (_super) {\n __extends(GridRowsDirective, _super);\n function GridRowsDirective(elementRef, styleBuilder, styler, marshal) {\n var _this = _super.call(this, elementRef, styleBuilder, styler, marshal) || this;\n _this.elementRef = elementRef;\n _this.styleBuilder = styleBuilder;\n _this.styler = styler;\n _this.marshal = marshal;\n _this.DIRECTIVE_KEY = 'grid-rows';\n _this._inline = false;\n _this.init();\n return _this;\n }\n Object.defineProperty(GridRowsDirective.prototype, \"inline\", {\n get: /**\n * @return {?}\n */\n function () { return this._inline; },\n set: /**\n * @param {?} val\n * @return {?}\n */\n function (val) { this._inline = coerceBooleanProperty(val); },\n enumerable: true,\n configurable: true\n });\n // *********************************************\n // Protected methods\n // *********************************************\n // *********************************************\n // Protected methods\n // *********************************************\n /**\n * @protected\n * @param {?} value\n * @return {?}\n */\n GridRowsDirective.prototype.updateWithValue = \n // *********************************************\n // Protected methods\n // *********************************************\n /**\n * @protected\n * @param {?} value\n * @return {?}\n */\n function (value) {\n this.styleCache = this.inline ? rowsInlineCache : rowsCache;\n this.addStyles(value, { inline: this.inline });\n };\n GridRowsDirective.decorators = [\n { type: Directive, args: [{ selector: 'grid-rows-directive' },] },\n ];\n /** @nocollapse */\n GridRowsDirective.ctorParameters = function () { return [\n { type: ElementRef },\n { type: GridRowsStyleBuilder, decorators: [{ type: Optional }] },\n { type: StyleUtils },\n { type: MediaMarshaller }\n ]; };\n GridRowsDirective.propDecorators = {\n inline: [{ type: Input, args: ['gdInline',] }]\n };\n return GridRowsDirective;\n}(BaseDirective2));\n/** @type {?} */\nvar rowsCache = new Map();\n/** @type {?} */\nvar rowsInlineCache = new Map();\n/** @type {?} */\nvar inputs$10 = [\n 'gdRows',\n 'gdRows.xs', 'gdRows.sm', 'gdRows.md', 'gdRows.lg', 'gdRows.xl',\n 'gdRows.lt-sm', 'gdRows.lt-md', 'gdRows.lt-lg', 'gdRows.lt-xl',\n 'gdRows.gt-xs', 'gdRows.gt-sm', 'gdRows.gt-md', 'gdRows.gt-lg'\n];\n/** @type {?} */\nvar selector$10 = \"\\n [gdRows],\\n [gdRows.xs], [gdRows.sm], [gdRows.md], [gdRows.lg], [gdRows.xl],\\n [gdRows.lt-sm], [gdRows.lt-md], [gdRows.lt-lg], [gdRows.lt-xl],\\n [gdRows.gt-xs], [gdRows.gt-sm], [gdRows.gt-md], [gdRows.gt-lg]\\n\";\n/**\n * 'grid-template-rows' CSS Grid styling directive\n * Configures the sizing for the rows in the grid\n * Syntax: [auto]\n * @see https://css-tricks.com/snippets/css/complete-guide-grid/#article-header-id-13\n */\nvar DefaultGridRowsDirective = /** @class */ (function (_super) {\n __extends(DefaultGridRowsDirective, _super);\n function DefaultGridRowsDirective() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.inputs = inputs$10;\n return _this;\n }\n DefaultGridRowsDirective.decorators = [\n { type: Directive, args: [{ selector: selector$10, inputs: inputs$10 },] },\n ];\n return DefaultGridRowsDirective;\n}(GridRowsDirective));\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n/** @type {?} */\nvar ALL_DIRECTIVES = [\n DefaultGridAlignDirective,\n DefaultGridAlignColumnsDirective,\n DefaultGridAlignRowsDirective,\n DefaultGridAreaDirective,\n DefaultGridAreasDirective,\n DefaultGridAutoDirective,\n DefaultGridColumnDirective,\n DefaultGridColumnsDirective,\n DefaultGridGapDirective,\n DefaultGridRowDirective,\n DefaultGridRowsDirective,\n GridAlignColumnsDirective,\n GridAlignRowsDirective,\n GridAreaDirective,\n GridAreasDirective,\n GridAutoDirective,\n GridColumnDirective,\n GridColumnsDirective,\n GridGapDirective,\n GridAlignDirective,\n GridRowDirective,\n GridRowsDirective,\n];\n/**\n * *****************************************************************\n * Define module for the CSS Grid API\n * *****************************************************************\n */\nvar GridModule = /** @class */ (function () {\n function GridModule() {\n }\n GridModule.decorators = [\n { type: NgModule, args: [{\n imports: [CoreModule],\n declarations: ALL_DIRECTIVES.slice(),\n exports: ALL_DIRECTIVES.slice()\n },] },\n ];\n return GridModule;\n}());\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n\nexport { GridModule, DefaultGridAlignColumnsDirective as ɵf2, GridAlignColumnsDirective as ɵe2, GridAlignColumnsStyleBuilder as ɵd2, DefaultGridAlignRowsDirective as ɵi2, GridAlignRowsDirective as ɵh2, GridAlignRowsStyleBuilder as ɵg2, DefaultGridAreaDirective as ɵl2, GridAreaDirective as ɵk2, GridAreaStyleBuilder as ɵj2, DefaultGridAreasDirective as ɵo2, GridAreasDirective as ɵn2, GridAreasStyleBuiler as ɵm2, DefaultGridAutoDirective as ɵr2, GridAutoDirective as ɵq2, GridAutoStyleBuilder as ɵp2, DefaultGridColumnDirective as ɵu2, GridColumnDirective as ɵt2, GridColumnStyleBuilder as ɵs2, DefaultGridColumnsDirective as ɵx2, GridColumnsDirective as ɵw2, GridColumnsStyleBuilder as ɵv2, DefaultGridGapDirective as ɵba2, GridGapDirective as ɵz2, GridGapStyleBuilder as ɵy2, DefaultGridAlignDirective as ɵc2, GridAlignDirective as ɵb2, GridAlignStyleBuilder as ɵa2, DefaultGridRowDirective as ɵbd2, GridRowDirective as ɵbc2, GridRowStyleBuilder as ɵbb2, DefaultGridRowsDirective as ɵbg2, GridRowsDirective as ɵbf2, GridRowsStyleBuilder as ɵbe2 };\n//# sourceMappingURL=grid.es5.js.map\n","import { Injectable, EventEmitter, InjectionToken, Inject, Directive, ElementRef, ChangeDetectorRef, Input, Pipe, NgModule } from '@angular/core';\nimport { __extends, __assign, __values } from 'tslib';\nimport { of, isObservable, forkJoin, concat, defer } from 'rxjs';\nimport { take, shareReplay, map, concatMap, switchMap } from 'rxjs/operators';\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n/**\n * @abstract\n */\nvar /**\n * @abstract\n */\nTranslateLoader = /** @class */ (function () {\n function TranslateLoader() {\n }\n return TranslateLoader;\n}());\nif (false) {\n /**\n * @abstract\n * @param {?} lang\n * @return {?}\n */\n TranslateLoader.prototype.getTranslation = function (lang) { };\n}\n/**\n * This loader is just a placeholder that does nothing, in case you don't need a loader at all\n */\nvar TranslateFakeLoader = /** @class */ (function (_super) {\n __extends(TranslateFakeLoader, _super);\n function TranslateFakeLoader() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n /**\n * @param {?} lang\n * @return {?}\n */\n TranslateFakeLoader.prototype.getTranslation = /**\n * @param {?} lang\n * @return {?}\n */\n function (lang) {\n return of({});\n };\n TranslateFakeLoader.decorators = [\n { type: Injectable }\n ];\n return TranslateFakeLoader;\n}(TranslateLoader));\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n/**\n * @record\n */\nfunction MissingTranslationHandlerParams() { }\nif (false) {\n /**\n * the key that's missing in translation files\n * @type {?}\n */\n MissingTranslationHandlerParams.prototype.key;\n /**\n * an instance of the service that was unable to translate the key.\n * @type {?}\n */\n MissingTranslationHandlerParams.prototype.translateService;\n /**\n * interpolation params that were passed along for translating the given key.\n * @type {?|undefined}\n */\n MissingTranslationHandlerParams.prototype.interpolateParams;\n}\n/**\n * @abstract\n */\nvar /**\n * @abstract\n */\nMissingTranslationHandler = /** @class */ (function () {\n function MissingTranslationHandler() {\n }\n return MissingTranslationHandler;\n}());\nif (false) {\n /**\n * A function that handles missing translations.\n *\n * @abstract\n * @param {?} params context for resolving a missing translation\n * @return {?} a value or an observable\n * If it returns a value, then this value is used.\n * If it return an observable, the value returned by this observable will be used (except if the method was \"instant\").\n * If it doesn't return then the key will be used as a value\n */\n MissingTranslationHandler.prototype.handle = function (params) { };\n}\n/**\n * This handler is just a placeholder that does nothing, in case you don't need a missing translation handler at all\n */\nvar FakeMissingTranslationHandler = /** @class */ (function () {\n function FakeMissingTranslationHandler() {\n }\n /**\n * @param {?} params\n * @return {?}\n */\n FakeMissingTranslationHandler.prototype.handle = /**\n * @param {?} params\n * @return {?}\n */\n function (params) {\n return params.key;\n };\n FakeMissingTranslationHandler.decorators = [\n { type: Injectable }\n ];\n return FakeMissingTranslationHandler;\n}());\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n/* tslint:disable */\n/**\n * Determines if two objects or two values are equivalent.\n *\n * Two objects or values are considered equivalent if at least one of the following is true:\n *\n * * Both objects or values pass `===` comparison.\n * * Both objects or values are of the same type and all of their properties are equal by\n * comparing them with `equals`.\n *\n * @param {?} o1 Object or value to compare.\n * @param {?} o2 Object or value to compare.\n * @return {?} true if arguments are equal.\n */\nfunction equals(o1, o2) {\n if (o1 === o2)\n return true;\n if (o1 === null || o2 === null)\n return false;\n if (o1 !== o1 && o2 !== o2)\n return true; // NaN === NaN\n // NaN === NaN\n /** @type {?} */\n var t1 = typeof o1;\n /** @type {?} */\n var t2 = typeof o2;\n /** @type {?} */\n var length;\n /** @type {?} */\n var key;\n /** @type {?} */\n var keySet;\n if (t1 == t2 && t1 == 'object') {\n if (Array.isArray(o1)) {\n if (!Array.isArray(o2))\n return false;\n if ((length = o1.length) == o2.length) {\n for (key = 0; key < length; key++) {\n if (!equals(o1[key], o2[key]))\n return false;\n }\n return true;\n }\n }\n else {\n if (Array.isArray(o2)) {\n return false;\n }\n keySet = Object.create(null);\n for (key in o1) {\n if (!equals(o1[key], o2[key])) {\n return false;\n }\n keySet[key] = true;\n }\n for (key in o2) {\n if (!(key in keySet) && typeof o2[key] !== 'undefined') {\n return false;\n }\n }\n return true;\n }\n }\n return false;\n}\n/* tslint:enable */\n/**\n * @param {?} value\n * @return {?}\n */\nfunction isDefined(value) {\n return typeof value !== 'undefined' && value !== null;\n}\n/**\n * @param {?} item\n * @return {?}\n */\nfunction isObject(item) {\n return (item && typeof item === 'object' && !Array.isArray(item));\n}\n/**\n * @param {?} target\n * @param {?} source\n * @return {?}\n */\nfunction mergeDeep(target, source) {\n /** @type {?} */\n var output = Object.assign({}, target);\n if (isObject(target) && isObject(source)) {\n Object.keys(source).forEach((/**\n * @param {?} key\n * @return {?}\n */\n function (key) {\n var _a, _b;\n if (isObject(source[key])) {\n if (!(key in target)) {\n Object.assign(output, (_a = {}, _a[key] = source[key], _a));\n }\n else {\n output[key] = mergeDeep(target[key], source[key]);\n }\n }\n else {\n Object.assign(output, (_b = {}, _b[key] = source[key], _b));\n }\n }));\n }\n return output;\n}\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n/**\n * @abstract\n */\nvar /**\n * @abstract\n */\nTranslateParser = /** @class */ (function () {\n function TranslateParser() {\n }\n return TranslateParser;\n}());\nif (false) {\n /**\n * Interpolates a string to replace parameters\n * \"This is a {{ key }}\" ==> \"This is a value\", with params = { key: \"value\" }\n * @abstract\n * @param {?} expr\n * @param {?=} params\n * @return {?}\n */\n TranslateParser.prototype.interpolate = function (expr, params) { };\n /**\n * Gets a value from an object by composed key\n * parser.getValue({ key1: { keyA: 'valueI' }}, 'key1.keyA') ==> 'valueI'\n * @abstract\n * @param {?} target\n * @param {?} key\n * @return {?}\n */\n TranslateParser.prototype.getValue = function (target, key) { };\n}\nvar TranslateDefaultParser = /** @class */ (function (_super) {\n __extends(TranslateDefaultParser, _super);\n function TranslateDefaultParser() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.templateMatcher = /{{\\s?([^{}\\s]*)\\s?}}/g;\n return _this;\n }\n /**\n * @param {?} expr\n * @param {?=} params\n * @return {?}\n */\n TranslateDefaultParser.prototype.interpolate = /**\n * @param {?} expr\n * @param {?=} params\n * @return {?}\n */\n function (expr, params) {\n /** @type {?} */\n var result;\n if (typeof expr === 'string') {\n result = this.interpolateString(expr, params);\n }\n else if (typeof expr === 'function') {\n result = this.interpolateFunction(expr, params);\n }\n else {\n // this should not happen, but an unrelated TranslateService test depends on it\n result = (/** @type {?} */ (expr));\n }\n return result;\n };\n /**\n * @param {?} target\n * @param {?} key\n * @return {?}\n */\n TranslateDefaultParser.prototype.getValue = /**\n * @param {?} target\n * @param {?} key\n * @return {?}\n */\n function (target, key) {\n /** @type {?} */\n var keys = typeof key === 'string' ? key.split('.') : [key];\n key = '';\n do {\n key += keys.shift();\n if (isDefined(target) && isDefined(target[key]) && (typeof target[key] === 'object' || !keys.length)) {\n target = target[key];\n key = '';\n }\n else if (!keys.length) {\n target = undefined;\n }\n else {\n key += '.';\n }\n } while (keys.length);\n return target;\n };\n /**\n * @private\n * @param {?} fn\n * @param {?=} params\n * @return {?}\n */\n TranslateDefaultParser.prototype.interpolateFunction = /**\n * @private\n * @param {?} fn\n * @param {?=} params\n * @return {?}\n */\n function (fn, params) {\n return fn(params);\n };\n /**\n * @private\n * @param {?} expr\n * @param {?=} params\n * @return {?}\n */\n TranslateDefaultParser.prototype.interpolateString = /**\n * @private\n * @param {?} expr\n * @param {?=} params\n * @return {?}\n */\n function (expr, params) {\n var _this = this;\n if (!params) {\n return expr;\n }\n return expr.replace(this.templateMatcher, (/**\n * @param {?} substring\n * @param {?} b\n * @return {?}\n */\n function (substring, b) {\n /** @type {?} */\n var r = _this.getValue(params, b);\n return isDefined(r) ? r : substring;\n }));\n };\n TranslateDefaultParser.decorators = [\n { type: Injectable }\n ];\n return TranslateDefaultParser;\n}(TranslateParser));\nif (false) {\n /** @type {?} */\n TranslateDefaultParser.prototype.templateMatcher;\n}\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n/**\n * @abstract\n */\nvar /**\n * @abstract\n */\nTranslateCompiler = /** @class */ (function () {\n function TranslateCompiler() {\n }\n return TranslateCompiler;\n}());\nif (false) {\n /**\n * @abstract\n * @param {?} value\n * @param {?} lang\n * @return {?}\n */\n TranslateCompiler.prototype.compile = function (value, lang) { };\n /**\n * @abstract\n * @param {?} translations\n * @param {?} lang\n * @return {?}\n */\n TranslateCompiler.prototype.compileTranslations = function (translations, lang) { };\n}\n/**\n * This compiler is just a placeholder that does nothing, in case you don't need a compiler at all\n */\nvar TranslateFakeCompiler = /** @class */ (function (_super) {\n __extends(TranslateFakeCompiler, _super);\n function TranslateFakeCompiler() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n /**\n * @param {?} value\n * @param {?} lang\n * @return {?}\n */\n TranslateFakeCompiler.prototype.compile = /**\n * @param {?} value\n * @param {?} lang\n * @return {?}\n */\n function (value, lang) {\n return value;\n };\n /**\n * @param {?} translations\n * @param {?} lang\n * @return {?}\n */\n TranslateFakeCompiler.prototype.compileTranslations = /**\n * @param {?} translations\n * @param {?} lang\n * @return {?}\n */\n function (translations, lang) {\n return translations;\n };\n TranslateFakeCompiler.decorators = [\n { type: Injectable }\n ];\n return TranslateFakeCompiler;\n}(TranslateCompiler));\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\nvar TranslateStore = /** @class */ (function () {\n function TranslateStore() {\n /**\n * The lang currently used\n */\n this.currentLang = this.defaultLang;\n /**\n * a list of translations per lang\n */\n this.translations = {};\n /**\n * an array of langs\n */\n this.langs = [];\n /**\n * An EventEmitter to listen to translation change events\n * onTranslationChange.subscribe((params: TranslationChangeEvent) => {\n * // do something\n * });\n */\n this.onTranslationChange = new EventEmitter();\n /**\n * An EventEmitter to listen to lang change events\n * onLangChange.subscribe((params: LangChangeEvent) => {\n * // do something\n * });\n */\n this.onLangChange = new EventEmitter();\n /**\n * An EventEmitter to listen to default lang change events\n * onDefaultLangChange.subscribe((params: DefaultLangChangeEvent) => {\n * // do something\n * });\n */\n this.onDefaultLangChange = new EventEmitter();\n }\n return TranslateStore;\n}());\nif (false) {\n /**\n * The default lang to fallback when translations are missing on the current lang\n * @type {?}\n */\n TranslateStore.prototype.defaultLang;\n /**\n * The lang currently used\n * @type {?}\n */\n TranslateStore.prototype.currentLang;\n /**\n * a list of translations per lang\n * @type {?}\n */\n TranslateStore.prototype.translations;\n /**\n * an array of langs\n * @type {?}\n */\n TranslateStore.prototype.langs;\n /**\n * An EventEmitter to listen to translation change events\n * onTranslationChange.subscribe((params: TranslationChangeEvent) => {\n * // do something\n * });\n * @type {?}\n */\n TranslateStore.prototype.onTranslationChange;\n /**\n * An EventEmitter to listen to lang change events\n * onLangChange.subscribe((params: LangChangeEvent) => {\n * // do something\n * });\n * @type {?}\n */\n TranslateStore.prototype.onLangChange;\n /**\n * An EventEmitter to listen to default lang change events\n * onDefaultLangChange.subscribe((params: DefaultLangChangeEvent) => {\n * // do something\n * });\n * @type {?}\n */\n TranslateStore.prototype.onDefaultLangChange;\n}\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n/** @type {?} */\nvar USE_STORE = new InjectionToken('USE_STORE');\n/** @type {?} */\nvar USE_DEFAULT_LANG = new InjectionToken('USE_DEFAULT_LANG');\n/** @type {?} */\nvar DEFAULT_LANGUAGE = new InjectionToken('DEFAULT_LANGUAGE');\n/** @type {?} */\nvar USE_EXTEND = new InjectionToken('USE_EXTEND');\n/**\n * @record\n */\nfunction TranslationChangeEvent() { }\nif (false) {\n /** @type {?} */\n TranslationChangeEvent.prototype.translations;\n /** @type {?} */\n TranslationChangeEvent.prototype.lang;\n}\n/**\n * @record\n */\nfunction LangChangeEvent() { }\nif (false) {\n /** @type {?} */\n LangChangeEvent.prototype.lang;\n /** @type {?} */\n LangChangeEvent.prototype.translations;\n}\n/**\n * @record\n */\nfunction DefaultLangChangeEvent() { }\nif (false) {\n /** @type {?} */\n DefaultLangChangeEvent.prototype.lang;\n /** @type {?} */\n DefaultLangChangeEvent.prototype.translations;\n}\nvar TranslateService = /** @class */ (function () {\n /**\n *\n * @param store an instance of the store (that is supposed to be unique)\n * @param currentLoader An instance of the loader currently used\n * @param compiler An instance of the compiler currently used\n * @param parser An instance of the parser currently used\n * @param missingTranslationHandler A handler for missing translations.\n * @param useDefaultLang whether we should use default language translation when current language translation is missing.\n * @param isolate whether this service should use the store or not\n * @param extend To make a child module extend (and use) translations from parent modules.\n * @param defaultLanguage Set the default language using configuration\n */\n function TranslateService(store, currentLoader, compiler, parser, missingTranslationHandler, useDefaultLang, isolate, extend, defaultLanguage) {\n if (useDefaultLang === void 0) { useDefaultLang = true; }\n if (isolate === void 0) { isolate = false; }\n if (extend === void 0) { extend = false; }\n this.store = store;\n this.currentLoader = currentLoader;\n this.compiler = compiler;\n this.parser = parser;\n this.missingTranslationHandler = missingTranslationHandler;\n this.useDefaultLang = useDefaultLang;\n this.isolate = isolate;\n this.extend = extend;\n this.pending = false;\n this._onTranslationChange = new EventEmitter();\n this._onLangChange = new EventEmitter();\n this._onDefaultLangChange = new EventEmitter();\n this._langs = [];\n this._translations = {};\n this._translationRequests = {};\n /** set the default language from configuration */\n if (defaultLanguage) {\n this.setDefaultLang(defaultLanguage);\n }\n }\n Object.defineProperty(TranslateService.prototype, \"onTranslationChange\", {\n /**\n * An EventEmitter to listen to translation change events\n * onTranslationChange.subscribe((params: TranslationChangeEvent) => {\n * // do something\n * });\n */\n get: /**\n * An EventEmitter to listen to translation change events\n * onTranslationChange.subscribe((params: TranslationChangeEvent) => {\n * // do something\n * });\n * @return {?}\n */\n function () {\n return this.isolate ? this._onTranslationChange : this.store.onTranslationChange;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(TranslateService.prototype, \"onLangChange\", {\n /**\n * An EventEmitter to listen to lang change events\n * onLangChange.subscribe((params: LangChangeEvent) => {\n * // do something\n * });\n */\n get: /**\n * An EventEmitter to listen to lang change events\n * onLangChange.subscribe((params: LangChangeEvent) => {\n * // do something\n * });\n * @return {?}\n */\n function () {\n return this.isolate ? this._onLangChange : this.store.onLangChange;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(TranslateService.prototype, \"onDefaultLangChange\", {\n /**\n * An EventEmitter to listen to default lang change events\n * onDefaultLangChange.subscribe((params: DefaultLangChangeEvent) => {\n * // do something\n * });\n */\n get: /**\n * An EventEmitter to listen to default lang change events\n * onDefaultLangChange.subscribe((params: DefaultLangChangeEvent) => {\n * // do something\n * });\n * @return {?}\n */\n function () {\n return this.isolate ? this._onDefaultLangChange : this.store.onDefaultLangChange;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(TranslateService.prototype, \"defaultLang\", {\n /**\n * The default lang to fallback when translations are missing on the current lang\n */\n get: /**\n * The default lang to fallback when translations are missing on the current lang\n * @return {?}\n */\n function () {\n return this.isolate ? this._defaultLang : this.store.defaultLang;\n },\n set: /**\n * @param {?} defaultLang\n * @return {?}\n */\n function (defaultLang) {\n if (this.isolate) {\n this._defaultLang = defaultLang;\n }\n else {\n this.store.defaultLang = defaultLang;\n }\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(TranslateService.prototype, \"currentLang\", {\n /**\n * The lang currently used\n */\n get: /**\n * The lang currently used\n * @return {?}\n */\n function () {\n return this.isolate ? this._currentLang : this.store.currentLang;\n },\n set: /**\n * @param {?} currentLang\n * @return {?}\n */\n function (currentLang) {\n if (this.isolate) {\n this._currentLang = currentLang;\n }\n else {\n this.store.currentLang = currentLang;\n }\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(TranslateService.prototype, \"langs\", {\n /**\n * an array of langs\n */\n get: /**\n * an array of langs\n * @return {?}\n */\n function () {\n return this.isolate ? this._langs : this.store.langs;\n },\n set: /**\n * @param {?} langs\n * @return {?}\n */\n function (langs) {\n if (this.isolate) {\n this._langs = langs;\n }\n else {\n this.store.langs = langs;\n }\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(TranslateService.prototype, \"translations\", {\n /**\n * a list of translations per lang\n */\n get: /**\n * a list of translations per lang\n * @return {?}\n */\n function () {\n return this.isolate ? this._translations : this.store.translations;\n },\n set: /**\n * @param {?} translations\n * @return {?}\n */\n function (translations) {\n if (this.isolate) {\n this._translations = translations;\n }\n else {\n this.store.translations = translations;\n }\n },\n enumerable: true,\n configurable: true\n });\n /**\n * Sets the default language to use as a fallback\n */\n /**\n * Sets the default language to use as a fallback\n * @param {?} lang\n * @return {?}\n */\n TranslateService.prototype.setDefaultLang = /**\n * Sets the default language to use as a fallback\n * @param {?} lang\n * @return {?}\n */\n function (lang) {\n var _this = this;\n if (lang === this.defaultLang) {\n return;\n }\n /** @type {?} */\n var pending = this.retrieveTranslations(lang);\n if (typeof pending !== \"undefined\") {\n // on init set the defaultLang immediately\n if (this.defaultLang == null) {\n this.defaultLang = lang;\n }\n pending.pipe(take(1))\n .subscribe((/**\n * @param {?} res\n * @return {?}\n */\n function (res) {\n _this.changeDefaultLang(lang);\n }));\n }\n else { // we already have this language\n this.changeDefaultLang(lang);\n }\n };\n /**\n * Gets the default language used\n */\n /**\n * Gets the default language used\n * @return {?}\n */\n TranslateService.prototype.getDefaultLang = /**\n * Gets the default language used\n * @return {?}\n */\n function () {\n return this.defaultLang;\n };\n /**\n * Changes the lang currently used\n */\n /**\n * Changes the lang currently used\n * @param {?} lang\n * @return {?}\n */\n TranslateService.prototype.use = /**\n * Changes the lang currently used\n * @param {?} lang\n * @return {?}\n */\n function (lang) {\n var _this = this;\n // don't change the language if the language given is already selected\n if (lang === this.currentLang) {\n return of(this.translations[lang]);\n }\n /** @type {?} */\n var pending = this.retrieveTranslations(lang);\n if (typeof pending !== \"undefined\") {\n // on init set the currentLang immediately\n if (!this.currentLang) {\n this.currentLang = lang;\n }\n pending.pipe(take(1))\n .subscribe((/**\n * @param {?} res\n * @return {?}\n */\n function (res) {\n _this.changeLang(lang);\n }));\n return pending;\n }\n else { // we have this language, return an Observable\n this.changeLang(lang);\n return of(this.translations[lang]);\n }\n };\n /**\n * Retrieves the given translations\n */\n /**\n * Retrieves the given translations\n * @private\n * @param {?} lang\n * @return {?}\n */\n TranslateService.prototype.retrieveTranslations = /**\n * Retrieves the given translations\n * @private\n * @param {?} lang\n * @return {?}\n */\n function (lang) {\n /** @type {?} */\n var pending;\n // if this language is unavailable or extend is true, ask for it\n if (typeof this.translations[lang] === \"undefined\" || this.extend) {\n this._translationRequests[lang] = this._translationRequests[lang] || this.getTranslation(lang);\n pending = this._translationRequests[lang];\n }\n return pending;\n };\n /**\n * Gets an object of translations for a given language with the current loader\n * and passes it through the compiler\n */\n /**\n * Gets an object of translations for a given language with the current loader\n * and passes it through the compiler\n * @param {?} lang\n * @return {?}\n */\n TranslateService.prototype.getTranslation = /**\n * Gets an object of translations for a given language with the current loader\n * and passes it through the compiler\n * @param {?} lang\n * @return {?}\n */\n function (lang) {\n var _this = this;\n this.pending = true;\n /** @type {?} */\n var loadingTranslations = this.currentLoader.getTranslation(lang).pipe(shareReplay(1), take(1));\n this.loadingTranslations = loadingTranslations.pipe(map((/**\n * @param {?} res\n * @return {?}\n */\n function (res) { return _this.compiler.compileTranslations(res, lang); })), shareReplay(1), take(1));\n this.loadingTranslations\n .subscribe({\n next: (/**\n * @param {?} res\n * @return {?}\n */\n function (res) {\n _this.translations[lang] = _this.extend && _this.translations[lang] ? __assign(__assign({}, res), _this.translations[lang]) : res;\n _this.updateLangs();\n _this.pending = false;\n }),\n error: (/**\n * @param {?} err\n * @return {?}\n */\n function (err) {\n _this.pending = false;\n })\n });\n return loadingTranslations;\n };\n /**\n * Manually sets an object of translations for a given language\n * after passing it through the compiler\n */\n /**\n * Manually sets an object of translations for a given language\n * after passing it through the compiler\n * @param {?} lang\n * @param {?} translations\n * @param {?=} shouldMerge\n * @return {?}\n */\n TranslateService.prototype.setTranslation = /**\n * Manually sets an object of translations for a given language\n * after passing it through the compiler\n * @param {?} lang\n * @param {?} translations\n * @param {?=} shouldMerge\n * @return {?}\n */\n function (lang, translations, shouldMerge) {\n if (shouldMerge === void 0) { shouldMerge = false; }\n translations = this.compiler.compileTranslations(translations, lang);\n if ((shouldMerge || this.extend) && this.translations[lang]) {\n this.translations[lang] = mergeDeep(this.translations[lang], translations);\n }\n else {\n this.translations[lang] = translations;\n }\n this.updateLangs();\n this.onTranslationChange.emit({ lang: lang, translations: this.translations[lang] });\n };\n /**\n * Returns an array of currently available langs\n */\n /**\n * Returns an array of currently available langs\n * @return {?}\n */\n TranslateService.prototype.getLangs = /**\n * Returns an array of currently available langs\n * @return {?}\n */\n function () {\n return this.langs;\n };\n /**\n * Add available langs\n */\n /**\n * Add available langs\n * @param {?} langs\n * @return {?}\n */\n TranslateService.prototype.addLangs = /**\n * Add available langs\n * @param {?} langs\n * @return {?}\n */\n function (langs) {\n var _this = this;\n langs.forEach((/**\n * @param {?} lang\n * @return {?}\n */\n function (lang) {\n if (_this.langs.indexOf(lang) === -1) {\n _this.langs.push(lang);\n }\n }));\n };\n /**\n * Update the list of available langs\n */\n /**\n * Update the list of available langs\n * @private\n * @return {?}\n */\n TranslateService.prototype.updateLangs = /**\n * Update the list of available langs\n * @private\n * @return {?}\n */\n function () {\n this.addLangs(Object.keys(this.translations));\n };\n /**\n * Returns the parsed result of the translations\n */\n /**\n * Returns the parsed result of the translations\n * @param {?} translations\n * @param {?} key\n * @param {?=} interpolateParams\n * @return {?}\n */\n TranslateService.prototype.getParsedResult = /**\n * Returns the parsed result of the translations\n * @param {?} translations\n * @param {?} key\n * @param {?=} interpolateParams\n * @return {?}\n */\n function (translations, key, interpolateParams) {\n var e_1, _a;\n /** @type {?} */\n var res;\n if (key instanceof Array) {\n /** @type {?} */\n var result_1 = {};\n /** @type {?} */\n var observables = false;\n try {\n for (var key_1 = __values(key), key_1_1 = key_1.next(); !key_1_1.done; key_1_1 = key_1.next()) {\n var k = key_1_1.value;\n result_1[k] = this.getParsedResult(translations, k, interpolateParams);\n if (isObservable(result_1[k])) {\n observables = true;\n }\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (key_1_1 && !key_1_1.done && (_a = key_1.return)) _a.call(key_1);\n }\n finally { if (e_1) throw e_1.error; }\n }\n if (observables) {\n /** @type {?} */\n var sources = key.map((/**\n * @param {?} k\n * @return {?}\n */\n function (k) { return isObservable(result_1[k]) ? result_1[k] : of((/** @type {?} */ (result_1[k]))); }));\n return forkJoin(sources).pipe(map((/**\n * @param {?} arr\n * @return {?}\n */\n function (arr) {\n /** @type {?} */\n var obj = {};\n arr.forEach((/**\n * @param {?} value\n * @param {?} index\n * @return {?}\n */\n function (value, index) {\n obj[key[index]] = value;\n }));\n return obj;\n })));\n }\n return result_1;\n }\n if (translations) {\n res = this.parser.interpolate(this.parser.getValue(translations, key), interpolateParams);\n }\n if (typeof res === \"undefined\" && this.defaultLang != null && this.defaultLang !== this.currentLang && this.useDefaultLang) {\n res = this.parser.interpolate(this.parser.getValue(this.translations[this.defaultLang], key), interpolateParams);\n }\n if (typeof res === \"undefined\") {\n /** @type {?} */\n var params = { key: key, translateService: this };\n if (typeof interpolateParams !== 'undefined') {\n params.interpolateParams = interpolateParams;\n }\n res = this.missingTranslationHandler.handle(params);\n }\n return typeof res !== \"undefined\" ? res : key;\n };\n /**\n * Gets the translated value of a key (or an array of keys)\n * @returns the translated key, or an object of translated keys\n */\n /**\n * Gets the translated value of a key (or an array of keys)\n * @param {?} key\n * @param {?=} interpolateParams\n * @return {?} the translated key, or an object of translated keys\n */\n TranslateService.prototype.get = /**\n * Gets the translated value of a key (or an array of keys)\n * @param {?} key\n * @param {?=} interpolateParams\n * @return {?} the translated key, or an object of translated keys\n */\n function (key, interpolateParams) {\n var _this = this;\n if (!isDefined(key) || !key.length) {\n throw new Error(\"Parameter \\\"key\\\" required\");\n }\n // check if we are loading a new translation to use\n if (this.pending) {\n return this.loadingTranslations.pipe(concatMap((/**\n * @param {?} res\n * @return {?}\n */\n function (res) {\n res = _this.getParsedResult(res, key, interpolateParams);\n return isObservable(res) ? res : of(res);\n })));\n }\n else {\n /** @type {?} */\n var res = this.getParsedResult(this.translations[this.currentLang], key, interpolateParams);\n return isObservable(res) ? res : of(res);\n }\n };\n /**\n * Returns a stream of translated values of a key (or an array of keys) which updates\n * whenever the translation changes.\n * @returns A stream of the translated key, or an object of translated keys\n */\n /**\n * Returns a stream of translated values of a key (or an array of keys) which updates\n * whenever the translation changes.\n * @param {?} key\n * @param {?=} interpolateParams\n * @return {?} A stream of the translated key, or an object of translated keys\n */\n TranslateService.prototype.getStreamOnTranslationChange = /**\n * Returns a stream of translated values of a key (or an array of keys) which updates\n * whenever the translation changes.\n * @param {?} key\n * @param {?=} interpolateParams\n * @return {?} A stream of the translated key, or an object of translated keys\n */\n function (key, interpolateParams) {\n var _this = this;\n if (!isDefined(key) || !key.length) {\n throw new Error(\"Parameter \\\"key\\\" required\");\n }\n return concat(defer((/**\n * @return {?}\n */\n function () { return _this.get(key, interpolateParams); })), this.onTranslationChange.pipe(switchMap((/**\n * @param {?} event\n * @return {?}\n */\n function (event) {\n /** @type {?} */\n var res = _this.getParsedResult(event.translations, key, interpolateParams);\n if (typeof res.subscribe === 'function') {\n return res;\n }\n else {\n return of(res);\n }\n }))));\n };\n /**\n * Returns a stream of translated values of a key (or an array of keys) which updates\n * whenever the language changes.\n * @returns A stream of the translated key, or an object of translated keys\n */\n /**\n * Returns a stream of translated values of a key (or an array of keys) which updates\n * whenever the language changes.\n * @param {?} key\n * @param {?=} interpolateParams\n * @return {?} A stream of the translated key, or an object of translated keys\n */\n TranslateService.prototype.stream = /**\n * Returns a stream of translated values of a key (or an array of keys) which updates\n * whenever the language changes.\n * @param {?} key\n * @param {?=} interpolateParams\n * @return {?} A stream of the translated key, or an object of translated keys\n */\n function (key, interpolateParams) {\n var _this = this;\n if (!isDefined(key) || !key.length) {\n throw new Error(\"Parameter \\\"key\\\" required\");\n }\n return concat(defer((/**\n * @return {?}\n */\n function () { return _this.get(key, interpolateParams); })), this.onLangChange.pipe(switchMap((/**\n * @param {?} event\n * @return {?}\n */\n function (event) {\n /** @type {?} */\n var res = _this.getParsedResult(event.translations, key, interpolateParams);\n return isObservable(res) ? res : of(res);\n }))));\n };\n /**\n * Returns a translation instantly from the internal state of loaded translation.\n * All rules regarding the current language, the preferred language of even fallback languages will be used except any promise handling.\n */\n /**\n * Returns a translation instantly from the internal state of loaded translation.\n * All rules regarding the current language, the preferred language of even fallback languages will be used except any promise handling.\n * @param {?} key\n * @param {?=} interpolateParams\n * @return {?}\n */\n TranslateService.prototype.instant = /**\n * Returns a translation instantly from the internal state of loaded translation.\n * All rules regarding the current language, the preferred language of even fallback languages will be used except any promise handling.\n * @param {?} key\n * @param {?=} interpolateParams\n * @return {?}\n */\n function (key, interpolateParams) {\n if (!isDefined(key) || !key.length) {\n throw new Error(\"Parameter \\\"key\\\" required\");\n }\n /** @type {?} */\n var res = this.getParsedResult(this.translations[this.currentLang], key, interpolateParams);\n if (isObservable(res)) {\n if (key instanceof Array) {\n /** @type {?} */\n var obj_1 = {};\n key.forEach((/**\n * @param {?} value\n * @param {?} index\n * @return {?}\n */\n function (value, index) {\n obj_1[key[index]] = key[index];\n }));\n return obj_1;\n }\n return key;\n }\n else {\n return res;\n }\n };\n /**\n * Sets the translated value of a key, after compiling it\n */\n /**\n * Sets the translated value of a key, after compiling it\n * @param {?} key\n * @param {?} value\n * @param {?=} lang\n * @return {?}\n */\n TranslateService.prototype.set = /**\n * Sets the translated value of a key, after compiling it\n * @param {?} key\n * @param {?} value\n * @param {?=} lang\n * @return {?}\n */\n function (key, value, lang) {\n if (lang === void 0) { lang = this.currentLang; }\n this.translations[lang][key] = this.compiler.compile(value, lang);\n this.updateLangs();\n this.onTranslationChange.emit({ lang: lang, translations: this.translations[lang] });\n };\n /**\n * Changes the current lang\n */\n /**\n * Changes the current lang\n * @private\n * @param {?} lang\n * @return {?}\n */\n TranslateService.prototype.changeLang = /**\n * Changes the current lang\n * @private\n * @param {?} lang\n * @return {?}\n */\n function (lang) {\n this.currentLang = lang;\n this.onLangChange.emit({ lang: lang, translations: this.translations[lang] });\n // if there is no default lang, use the one that we just set\n if (this.defaultLang == null) {\n this.changeDefaultLang(lang);\n }\n };\n /**\n * Changes the default lang\n */\n /**\n * Changes the default lang\n * @private\n * @param {?} lang\n * @return {?}\n */\n TranslateService.prototype.changeDefaultLang = /**\n * Changes the default lang\n * @private\n * @param {?} lang\n * @return {?}\n */\n function (lang) {\n this.defaultLang = lang;\n this.onDefaultLangChange.emit({ lang: lang, translations: this.translations[lang] });\n };\n /**\n * Allows to reload the lang file from the file\n */\n /**\n * Allows to reload the lang file from the file\n * @param {?} lang\n * @return {?}\n */\n TranslateService.prototype.reloadLang = /**\n * Allows to reload the lang file from the file\n * @param {?} lang\n * @return {?}\n */\n function (lang) {\n this.resetLang(lang);\n return this.getTranslation(lang);\n };\n /**\n * Deletes inner translation\n */\n /**\n * Deletes inner translation\n * @param {?} lang\n * @return {?}\n */\n TranslateService.prototype.resetLang = /**\n * Deletes inner translation\n * @param {?} lang\n * @return {?}\n */\n function (lang) {\n this._translationRequests[lang] = undefined;\n this.translations[lang] = undefined;\n };\n /**\n * Returns the language code name from the browser, e.g. \"de\"\n */\n /**\n * Returns the language code name from the browser, e.g. \"de\"\n * @return {?}\n */\n TranslateService.prototype.getBrowserLang = /**\n * Returns the language code name from the browser, e.g. \"de\"\n * @return {?}\n */\n function () {\n if (typeof window === 'undefined' || typeof window.navigator === 'undefined') {\n return undefined;\n }\n /** @type {?} */\n var browserLang = window.navigator.languages ? window.navigator.languages[0] : null;\n browserLang = browserLang || window.navigator.language || window.navigator.browserLanguage || window.navigator.userLanguage;\n if (typeof browserLang === 'undefined') {\n return undefined;\n }\n if (browserLang.indexOf('-') !== -1) {\n browserLang = browserLang.split('-')[0];\n }\n if (browserLang.indexOf('_') !== -1) {\n browserLang = browserLang.split('_')[0];\n }\n return browserLang;\n };\n /**\n * Returns the culture language code name from the browser, e.g. \"de-DE\"\n */\n /**\n * Returns the culture language code name from the browser, e.g. \"de-DE\"\n * @return {?}\n */\n TranslateService.prototype.getBrowserCultureLang = /**\n * Returns the culture language code name from the browser, e.g. \"de-DE\"\n * @return {?}\n */\n function () {\n if (typeof window === 'undefined' || typeof window.navigator === 'undefined') {\n return undefined;\n }\n /** @type {?} */\n var browserCultureLang = window.navigator.languages ? window.navigator.languages[0] : null;\n browserCultureLang = browserCultureLang || window.navigator.language || window.navigator.browserLanguage || window.navigator.userLanguage;\n return browserCultureLang;\n };\n TranslateService.decorators = [\n { type: Injectable }\n ];\n /** @nocollapse */\n TranslateService.ctorParameters = function () { return [\n { type: TranslateStore },\n { type: TranslateLoader },\n { type: TranslateCompiler },\n { type: TranslateParser },\n { type: MissingTranslationHandler },\n { type: Boolean, decorators: [{ type: Inject, args: [USE_DEFAULT_LANG,] }] },\n { type: Boolean, decorators: [{ type: Inject, args: [USE_STORE,] }] },\n { type: Boolean, decorators: [{ type: Inject, args: [USE_EXTEND,] }] },\n { type: String, decorators: [{ type: Inject, args: [DEFAULT_LANGUAGE,] }] }\n ]; };\n return TranslateService;\n}());\nif (false) {\n /**\n * @type {?}\n * @private\n */\n TranslateService.prototype.loadingTranslations;\n /**\n * @type {?}\n * @private\n */\n TranslateService.prototype.pending;\n /**\n * @type {?}\n * @private\n */\n TranslateService.prototype._onTranslationChange;\n /**\n * @type {?}\n * @private\n */\n TranslateService.prototype._onLangChange;\n /**\n * @type {?}\n * @private\n */\n TranslateService.prototype._onDefaultLangChange;\n /**\n * @type {?}\n * @private\n */\n TranslateService.prototype._defaultLang;\n /**\n * @type {?}\n * @private\n */\n TranslateService.prototype._currentLang;\n /**\n * @type {?}\n * @private\n */\n TranslateService.prototype._langs;\n /**\n * @type {?}\n * @private\n */\n TranslateService.prototype._translations;\n /**\n * @type {?}\n * @private\n */\n TranslateService.prototype._translationRequests;\n /** @type {?} */\n TranslateService.prototype.store;\n /** @type {?} */\n TranslateService.prototype.currentLoader;\n /** @type {?} */\n TranslateService.prototype.compiler;\n /** @type {?} */\n TranslateService.prototype.parser;\n /** @type {?} */\n TranslateService.prototype.missingTranslationHandler;\n /**\n * @type {?}\n * @private\n */\n TranslateService.prototype.useDefaultLang;\n /**\n * @type {?}\n * @private\n */\n TranslateService.prototype.isolate;\n /**\n * @type {?}\n * @private\n */\n TranslateService.prototype.extend;\n}\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\nvar TranslateDirective = /** @class */ (function () {\n function TranslateDirective(translateService, element, _ref) {\n var _this = this;\n this.translateService = translateService;\n this.element = element;\n this._ref = _ref;\n // subscribe to onTranslationChange event, in case the translations of the current lang change\n if (!this.onTranslationChangeSub) {\n this.onTranslationChangeSub = this.translateService.onTranslationChange.subscribe((/**\n * @param {?} event\n * @return {?}\n */\n function (event) {\n if (event.lang === _this.translateService.currentLang) {\n _this.checkNodes(true, event.translations);\n }\n }));\n }\n // subscribe to onLangChange event, in case the language changes\n if (!this.onLangChangeSub) {\n this.onLangChangeSub = this.translateService.onLangChange.subscribe((/**\n * @param {?} event\n * @return {?}\n */\n function (event) {\n _this.checkNodes(true, event.translations);\n }));\n }\n // subscribe to onDefaultLangChange event, in case the default language changes\n if (!this.onDefaultLangChangeSub) {\n this.onDefaultLangChangeSub = this.translateService.onDefaultLangChange.subscribe((/**\n * @param {?} event\n * @return {?}\n */\n function (event) {\n _this.checkNodes(true);\n }));\n }\n }\n Object.defineProperty(TranslateDirective.prototype, \"translate\", {\n set: /**\n * @param {?} key\n * @return {?}\n */\n function (key) {\n if (key) {\n this.key = key;\n this.checkNodes();\n }\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(TranslateDirective.prototype, \"translateParams\", {\n set: /**\n * @param {?} params\n * @return {?}\n */\n function (params) {\n if (!equals(this.currentParams, params)) {\n this.currentParams = params;\n this.checkNodes(true);\n }\n },\n enumerable: true,\n configurable: true\n });\n /**\n * @return {?}\n */\n TranslateDirective.prototype.ngAfterViewChecked = /**\n * @return {?}\n */\n function () {\n this.checkNodes();\n };\n /**\n * @param {?=} forceUpdate\n * @param {?=} translations\n * @return {?}\n */\n TranslateDirective.prototype.checkNodes = /**\n * @param {?=} forceUpdate\n * @param {?=} translations\n * @return {?}\n */\n function (forceUpdate, translations) {\n if (forceUpdate === void 0) { forceUpdate = false; }\n /** @type {?} */\n var nodes = this.element.nativeElement.childNodes;\n // if the element is empty\n if (!nodes.length) {\n // we add the key as content\n this.setContent(this.element.nativeElement, this.key);\n nodes = this.element.nativeElement.childNodes;\n }\n for (var i = 0; i < nodes.length; ++i) {\n /** @type {?} */\n var node = nodes[i];\n if (node.nodeType === 3) { // node type 3 is a text node\n // node type 3 is a text node\n /** @type {?} */\n var key = void 0;\n if (forceUpdate) {\n node.lastKey = null;\n }\n if (isDefined(node.lookupKey)) {\n key = node.lookupKey;\n }\n else if (this.key) {\n key = this.key;\n }\n else {\n /** @type {?} */\n var content = this.getContent(node);\n /** @type {?} */\n var trimmedContent = content.trim();\n if (trimmedContent.length) {\n node.lookupKey = trimmedContent;\n // we want to use the content as a key, not the translation value\n if (content !== node.currentValue) {\n key = trimmedContent;\n // the content was changed from the user, we'll use it as a reference if needed\n node.originalContent = content || node.originalContent;\n }\n else if (node.originalContent) { // the content seems ok, but the lang has changed\n // the current content is the translation, not the key, use the last real content as key\n key = node.originalContent.trim();\n }\n else if (content !== node.currentValue) {\n // we want to use the content as a key, not the translation value\n key = trimmedContent;\n // the content was changed from the user, we'll use it as a reference if needed\n node.originalContent = content || node.originalContent;\n }\n }\n }\n this.updateValue(key, node, translations);\n }\n }\n };\n /**\n * @param {?} key\n * @param {?} node\n * @param {?} translations\n * @return {?}\n */\n TranslateDirective.prototype.updateValue = /**\n * @param {?} key\n * @param {?} node\n * @param {?} translations\n * @return {?}\n */\n function (key, node, translations) {\n var _this = this;\n if (key) {\n if (node.lastKey === key && this.lastParams === this.currentParams) {\n return;\n }\n this.lastParams = this.currentParams;\n /** @type {?} */\n var onTranslation = (/**\n * @param {?} res\n * @return {?}\n */\n function (res) {\n if (res !== key) {\n node.lastKey = key;\n }\n if (!node.originalContent) {\n node.originalContent = _this.getContent(node);\n }\n node.currentValue = isDefined(res) ? res : (node.originalContent || key);\n // we replace in the original content to preserve spaces that we might have trimmed\n _this.setContent(node, _this.key ? node.currentValue : node.originalContent.replace(key, node.currentValue));\n _this._ref.markForCheck();\n });\n if (isDefined(translations)) {\n /** @type {?} */\n var res = this.translateService.getParsedResult(translations, key, this.currentParams);\n if (isObservable(res)) {\n res.subscribe(onTranslation);\n }\n else {\n onTranslation(res);\n }\n }\n else {\n this.translateService.get(key, this.currentParams).subscribe(onTranslation);\n }\n }\n };\n /**\n * @param {?} node\n * @return {?}\n */\n TranslateDirective.prototype.getContent = /**\n * @param {?} node\n * @return {?}\n */\n function (node) {\n return isDefined(node.textContent) ? node.textContent : node.data;\n };\n /**\n * @param {?} node\n * @param {?} content\n * @return {?}\n */\n TranslateDirective.prototype.setContent = /**\n * @param {?} node\n * @param {?} content\n * @return {?}\n */\n function (node, content) {\n if (isDefined(node.textContent)) {\n node.textContent = content;\n }\n else {\n node.data = content;\n }\n };\n /**\n * @return {?}\n */\n TranslateDirective.prototype.ngOnDestroy = /**\n * @return {?}\n */\n function () {\n if (this.onLangChangeSub) {\n this.onLangChangeSub.unsubscribe();\n }\n if (this.onDefaultLangChangeSub) {\n this.onDefaultLangChangeSub.unsubscribe();\n }\n if (this.onTranslationChangeSub) {\n this.onTranslationChangeSub.unsubscribe();\n }\n };\n TranslateDirective.decorators = [\n { type: Directive, args: [{\n selector: '[translate],[ngx-translate]'\n },] }\n ];\n /** @nocollapse */\n TranslateDirective.ctorParameters = function () { return [\n { type: TranslateService },\n { type: ElementRef },\n { type: ChangeDetectorRef }\n ]; };\n TranslateDirective.propDecorators = {\n translate: [{ type: Input }],\n translateParams: [{ type: Input }]\n };\n return TranslateDirective;\n}());\nif (false) {\n /** @type {?} */\n TranslateDirective.prototype.key;\n /** @type {?} */\n TranslateDirective.prototype.lastParams;\n /** @type {?} */\n TranslateDirective.prototype.currentParams;\n /** @type {?} */\n TranslateDirective.prototype.onLangChangeSub;\n /** @type {?} */\n TranslateDirective.prototype.onDefaultLangChangeSub;\n /** @type {?} */\n TranslateDirective.prototype.onTranslationChangeSub;\n /**\n * @type {?}\n * @private\n */\n TranslateDirective.prototype.translateService;\n /**\n * @type {?}\n * @private\n */\n TranslateDirective.prototype.element;\n /**\n * @type {?}\n * @private\n */\n TranslateDirective.prototype._ref;\n}\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\nvar TranslatePipe = /** @class */ (function () {\n function TranslatePipe(translate, _ref) {\n this.translate = translate;\n this._ref = _ref;\n this.value = '';\n }\n /**\n * @param {?} key\n * @param {?=} interpolateParams\n * @param {?=} translations\n * @return {?}\n */\n TranslatePipe.prototype.updateValue = /**\n * @param {?} key\n * @param {?=} interpolateParams\n * @param {?=} translations\n * @return {?}\n */\n function (key, interpolateParams, translations) {\n var _this = this;\n /** @type {?} */\n var onTranslation = (/**\n * @param {?} res\n * @return {?}\n */\n function (res) {\n _this.value = res !== undefined ? res : key;\n _this.lastKey = key;\n _this._ref.markForCheck();\n });\n if (translations) {\n /** @type {?} */\n var res = this.translate.getParsedResult(translations, key, interpolateParams);\n if (isObservable(res.subscribe)) {\n res.subscribe(onTranslation);\n }\n else {\n onTranslation(res);\n }\n }\n this.translate.get(key, interpolateParams).subscribe(onTranslation);\n };\n /**\n * @param {?} query\n * @param {...?} args\n * @return {?}\n */\n TranslatePipe.prototype.transform = /**\n * @param {?} query\n * @param {...?} args\n * @return {?}\n */\n function (query) {\n var _this = this;\n var args = [];\n for (var _i = 1; _i < arguments.length; _i++) {\n args[_i - 1] = arguments[_i];\n }\n if (!query || !query.length) {\n return query;\n }\n // if we ask another time for the same key, return the last value\n if (equals(query, this.lastKey) && equals(args, this.lastParams)) {\n return this.value;\n }\n /** @type {?} */\n var interpolateParams;\n if (isDefined(args[0]) && args.length) {\n if (typeof args[0] === 'string' && args[0].length) {\n // we accept objects written in the template such as {n:1}, {'n':1}, {n:'v'}\n // which is why we might need to change it to real JSON objects such as {\"n\":1} or {\"n\":\"v\"}\n /** @type {?} */\n var validArgs = args[0]\n .replace(/(\\')?([a-zA-Z0-9_]+)(\\')?(\\s)?:/g, '\"$2\":')\n .replace(/:(\\s)?(\\')(.*?)(\\')/g, ':\"$3\"');\n try {\n interpolateParams = JSON.parse(validArgs);\n }\n catch (e) {\n throw new SyntaxError(\"Wrong parameter in TranslatePipe. Expected a valid Object, received: \" + args[0]);\n }\n }\n else if (typeof args[0] === 'object' && !Array.isArray(args[0])) {\n interpolateParams = args[0];\n }\n }\n // store the query, in case it changes\n this.lastKey = query;\n // store the params, in case they change\n this.lastParams = args;\n // set the value\n this.updateValue(query, interpolateParams);\n // if there is a subscription to onLangChange, clean it\n this._dispose();\n // subscribe to onTranslationChange event, in case the translations change\n if (!this.onTranslationChange) {\n this.onTranslationChange = this.translate.onTranslationChange.subscribe((/**\n * @param {?} event\n * @return {?}\n */\n function (event) {\n if (_this.lastKey && event.lang === _this.translate.currentLang) {\n _this.lastKey = null;\n _this.updateValue(query, interpolateParams, event.translations);\n }\n }));\n }\n // subscribe to onLangChange event, in case the language changes\n if (!this.onLangChange) {\n this.onLangChange = this.translate.onLangChange.subscribe((/**\n * @param {?} event\n * @return {?}\n */\n function (event) {\n if (_this.lastKey) {\n _this.lastKey = null; // we want to make sure it doesn't return the same value until it's been updated\n _this.updateValue(query, interpolateParams, event.translations);\n }\n }));\n }\n // subscribe to onDefaultLangChange event, in case the default language changes\n if (!this.onDefaultLangChange) {\n this.onDefaultLangChange = this.translate.onDefaultLangChange.subscribe((/**\n * @return {?}\n */\n function () {\n if (_this.lastKey) {\n _this.lastKey = null; // we want to make sure it doesn't return the same value until it's been updated\n _this.updateValue(query, interpolateParams);\n }\n }));\n }\n return this.value;\n };\n /**\n * Clean any existing subscription to change events\n */\n /**\n * Clean any existing subscription to change events\n * @private\n * @return {?}\n */\n TranslatePipe.prototype._dispose = /**\n * Clean any existing subscription to change events\n * @private\n * @return {?}\n */\n function () {\n if (typeof this.onTranslationChange !== 'undefined') {\n this.onTranslationChange.unsubscribe();\n this.onTranslationChange = undefined;\n }\n if (typeof this.onLangChange !== 'undefined') {\n this.onLangChange.unsubscribe();\n this.onLangChange = undefined;\n }\n if (typeof this.onDefaultLangChange !== 'undefined') {\n this.onDefaultLangChange.unsubscribe();\n this.onDefaultLangChange = undefined;\n }\n };\n /**\n * @return {?}\n */\n TranslatePipe.prototype.ngOnDestroy = /**\n * @return {?}\n */\n function () {\n this._dispose();\n };\n TranslatePipe.decorators = [\n { type: Injectable },\n { type: Pipe, args: [{\n name: 'translate',\n pure: false // required to update the value when the promise is resolved\n },] }\n ];\n /** @nocollapse */\n TranslatePipe.ctorParameters = function () { return [\n { type: TranslateService },\n { type: ChangeDetectorRef }\n ]; };\n return TranslatePipe;\n}());\nif (false) {\n /** @type {?} */\n TranslatePipe.prototype.value;\n /** @type {?} */\n TranslatePipe.prototype.lastKey;\n /** @type {?} */\n TranslatePipe.prototype.lastParams;\n /** @type {?} */\n TranslatePipe.prototype.onTranslationChange;\n /** @type {?} */\n TranslatePipe.prototype.onLangChange;\n /** @type {?} */\n TranslatePipe.prototype.onDefaultLangChange;\n /**\n * @type {?}\n * @private\n */\n TranslatePipe.prototype.translate;\n /**\n * @type {?}\n * @private\n */\n TranslatePipe.prototype._ref;\n}\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n/**\n * @record\n */\nfunction TranslateModuleConfig() { }\nif (false) {\n /** @type {?|undefined} */\n TranslateModuleConfig.prototype.loader;\n /** @type {?|undefined} */\n TranslateModuleConfig.prototype.compiler;\n /** @type {?|undefined} */\n TranslateModuleConfig.prototype.parser;\n /** @type {?|undefined} */\n TranslateModuleConfig.prototype.missingTranslationHandler;\n /** @type {?|undefined} */\n TranslateModuleConfig.prototype.isolate;\n /** @type {?|undefined} */\n TranslateModuleConfig.prototype.extend;\n /** @type {?|undefined} */\n TranslateModuleConfig.prototype.useDefaultLang;\n /** @type {?|undefined} */\n TranslateModuleConfig.prototype.defaultLanguage;\n}\nvar TranslateModule = /** @class */ (function () {\n function TranslateModule() {\n }\n /**\n * Use this method in your root module to provide the TranslateService\n */\n /**\n * Use this method in your root module to provide the TranslateService\n * @param {?=} config\n * @return {?}\n */\n TranslateModule.forRoot = /**\n * Use this method in your root module to provide the TranslateService\n * @param {?=} config\n * @return {?}\n */\n function (config) {\n if (config === void 0) { config = {}; }\n return {\n ngModule: TranslateModule,\n providers: [\n config.loader || { provide: TranslateLoader, useClass: TranslateFakeLoader },\n config.compiler || { provide: TranslateCompiler, useClass: TranslateFakeCompiler },\n config.parser || { provide: TranslateParser, useClass: TranslateDefaultParser },\n config.missingTranslationHandler || { provide: MissingTranslationHandler, useClass: FakeMissingTranslationHandler },\n TranslateStore,\n { provide: USE_STORE, useValue: config.isolate },\n { provide: USE_DEFAULT_LANG, useValue: config.useDefaultLang },\n { provide: USE_EXTEND, useValue: config.extend },\n { provide: DEFAULT_LANGUAGE, useValue: config.defaultLanguage },\n TranslateService\n ]\n };\n };\n /**\n * Use this method in your other (non root) modules to import the directive/pipe\n */\n /**\n * Use this method in your other (non root) modules to import the directive/pipe\n * @param {?=} config\n * @return {?}\n */\n TranslateModule.forChild = /**\n * Use this method in your other (non root) modules to import the directive/pipe\n * @param {?=} config\n * @return {?}\n */\n function (config) {\n if (config === void 0) { config = {}; }\n return {\n ngModule: TranslateModule,\n providers: [\n config.loader || { provide: TranslateLoader, useClass: TranslateFakeLoader },\n config.compiler || { provide: TranslateCompiler, useClass: TranslateFakeCompiler },\n config.parser || { provide: TranslateParser, useClass: TranslateDefaultParser },\n config.missingTranslationHandler || { provide: MissingTranslationHandler, useClass: FakeMissingTranslationHandler },\n { provide: USE_STORE, useValue: config.isolate },\n { provide: USE_DEFAULT_LANG, useValue: config.useDefaultLang },\n { provide: USE_EXTEND, useValue: config.extend },\n { provide: DEFAULT_LANGUAGE, useValue: config.defaultLanguage },\n TranslateService\n ]\n };\n };\n TranslateModule.decorators = [\n { type: NgModule, args: [{\n declarations: [\n TranslatePipe,\n TranslateDirective\n ],\n exports: [\n TranslatePipe,\n TranslateDirective\n ]\n },] }\n ];\n return TranslateModule;\n}());\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n\nexport { DEFAULT_LANGUAGE, FakeMissingTranslationHandler, MissingTranslationHandler, TranslateCompiler, TranslateDefaultParser, TranslateDirective, TranslateFakeCompiler, TranslateFakeLoader, TranslateLoader, TranslateModule, TranslateParser, TranslatePipe, TranslateService, TranslateStore, USE_DEFAULT_LANG, USE_EXTEND, USE_STORE };\n//# sourceMappingURL=ngx-translate-core.js.map\n","/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingReturn,uselessCode} checked by tsc\n */\nvar TranslateHttpLoader = /** @class */ (function () {\n function TranslateHttpLoader(http, prefix, suffix) {\n if (prefix === void 0) { prefix = \"/assets/i18n/\"; }\n if (suffix === void 0) { suffix = \".json\"; }\n this.http = http;\n this.prefix = prefix;\n this.suffix = suffix;\n }\n /**\n * Gets the translations from the server\n */\n /**\n * Gets the translations from the server\n * @param {?} lang\n * @return {?}\n */\n TranslateHttpLoader.prototype.getTranslation = /**\n * Gets the translations from the server\n * @param {?} lang\n * @return {?}\n */\n function (lang) {\n return this.http.get(\"\" + this.prefix + lang + this.suffix);\n };\n return TranslateHttpLoader;\n}());\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingReturn,uselessCode} checked by tsc\n */\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingReturn,uselessCode} checked by tsc\n */\n\nexport { TranslateHttpLoader };\n\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmd4LXRyYW5zbGF0ZS1odHRwLWxvYWRlci5qcy5tYXAiLCJzb3VyY2VzIjpbIm5nOi8vQG5neC10cmFuc2xhdGUvaHR0cC1sb2FkZXIvbGliL2h0dHAtbG9hZGVyLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7SHR0cENsaWVudH0gZnJvbSBcIkBhbmd1bGFyL2NvbW1vbi9odHRwXCI7XG5pbXBvcnQge1RyYW5zbGF0ZUxvYWRlcn0gZnJvbSBcIkBuZ3gtdHJhbnNsYXRlL2NvcmVcIjtcbmltcG9ydCB7T2JzZXJ2YWJsZX0gZnJvbSAncnhqcyc7XG5cbmV4cG9ydCBjbGFzcyBUcmFuc2xhdGVIdHRwTG9hZGVyIGltcGxlbWVudHMgVHJhbnNsYXRlTG9hZGVyIHtcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBodHRwOiBIdHRwQ2xpZW50LCBwdWJsaWMgcHJlZml4OiBzdHJpbmcgPSBcIi9hc3NldHMvaTE4bi9cIiwgcHVibGljIHN1ZmZpeDogc3RyaW5nID0gXCIuanNvblwiKSB7fVxuXG4gIC8qKlxuICAgKiBHZXRzIHRoZSB0cmFuc2xhdGlvbnMgZnJvbSB0aGUgc2VydmVyXG4gICAqL1xuICBwdWJsaWMgZ2V0VHJhbnNsYXRpb24obGFuZzogc3RyaW5nKTogT2JzZXJ2YWJsZTxPYmplY3Q+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldChgJHt0aGlzLnByZWZpeH0ke2xhbmd9JHt0aGlzLnN1ZmZpeH1gKTtcbiAgfVxufVxuIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFJQTtJQUNFLDZCQUFvQixJQUFnQixFQUFTLE1BQWdDLEVBQVMsTUFBd0I7UUFBakUsdUJBQUEsRUFBQSx3QkFBZ0M7UUFBUyx1QkFBQSxFQUFBLGdCQUF3QjtRQUExRixTQUFJLEdBQUosSUFBSSxDQUFZO1FBQVMsV0FBTSxHQUFOLE1BQU0sQ0FBMEI7UUFBUyxXQUFNLEdBQU4sTUFBTSxDQUFrQjtLQUFJOzs7Ozs7Ozs7SUFLM0csNENBQWM7Ozs7O0lBQXJCLFVBQXNCLElBQVk7UUFDaEMsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxLQUFHLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxHQUFHLElBQUksQ0FBQyxNQUFRLENBQUMsQ0FBQztLQUM3RDtJQUNILDBCQUFDO0NBQUE7Ozs7Ozs7Ozs7Ozs7OyJ9","import { style, animate, animation, keyframes, AnimationBuilder, useAnimation, trigger, transition, state } from '@angular/animations';\nimport { __assign, __spread, __values, __extends, __decorate, __metadata, __read } from 'tslib';\nimport { Directive, Input, HostListener, NgModule, ɵɵdefineInjectable, ɵɵinject, PLATFORM_ID, Injectable, Inject, Pipe, Output, EventEmitter, isDevMode, ElementRef, ComponentFactoryResolver, ApplicationRef, Injector, NgZone, INJECTOR, ChangeDetectorRef, Optional, HostBinding, Component, InjectionToken, ViewContainerRef, ViewChild, TemplateRef, IterableDiffers, ContentChild, ContentChildren, forwardRef, Self, Renderer2, SecurityContext, Host, ViewChildren, NgModuleRef, ChangeDetectionStrategy, SimpleChange, QueryList, LOCALE_ID, Renderer } from '@angular/core';\nimport { NgModel, FormControlName, NG_VALUE_ACCESSOR, FormsModule, NG_VALIDATORS, CheckboxRequiredValidator, NgControl, ReactiveFormsModule } from '@angular/forms';\nimport { isPlatformBrowser, DOCUMENT, CommonModule, formatDate, DatePipe, DecimalPipe } from '@angular/common';\nimport { fromEvent, Subject, interval, animationFrameScheduler, Subscription, pipe, combineLatest, timer, merge } from 'rxjs';\nimport { filter, takeUntil, throttleTime, first as first$1, take, throttle, debounce, tap, switchMap, skipLast, debounceTime, map } from 'rxjs/operators';\nimport * as JSZip from 'jszip';\nimport ResizeObserver from 'resize-observer-polyfill';\nimport { DomSanitizer, HammerGestureConfig, HAMMER_GESTURE_CONFIG, ɵgetDOM } from '@angular/platform-browser';\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n/** @enum {string} */\nvar EaseIn = {\n quad: (/** @type {?} */ (\"cubic-bezier(0.550, 0.085, 0.680, 0.530)\")),\n cubic: (/** @type {?} */ (\"cubic-bezier(0.550, 0.055, 0.675, 0.190)\")),\n quart: (/** @type {?} */ (\"cubic-bezier(0.895, 0.030, 0.685, 0.220)\")),\n quint: (/** @type {?} */ (\"cubic-bezier(0.755, 0.050, 0.855, 0.060)\")),\n sine: (/** @type {?} */ (\"cubic-bezier(0.470, 0.000, 0.745, 0.715)\")),\n expo: (/** @type {?} */ (\"cubic-bezier(0.950, 0.050, 0.795, 0.035)\")),\n circ: (/** @type {?} */ (\"cubic-bezier(0.600, 0.040, 0.980, 0.335)\")),\n back: (/** @type {?} */ (\"cubic-bezier(0.600, -0.280, 0.735, 0.045)\")),\n};\n/** @enum {string} */\nvar EaseOut = {\n quad: (/** @type {?} */ (\"cubic-bezier(0.250, 0.460, 0.450, 0.940)\")),\n cubic: (/** @type {?} */ (\"cubic-bezier(0.215, 0.610, 0.355, 1.000)\")),\n quart: (/** @type {?} */ (\"cubic-bezier(0.165, 0.840, 0.440, 1.000)\")),\n quint: (/** @type {?} */ (\"cubic-bezier(0.230, 1.000, 0.320, 1.000)\")),\n sine: (/** @type {?} */ (\"cubic-bezier(0.390, 0.575, 0.565, 1.000)\")),\n expo: (/** @type {?} */ (\"cubic-bezier(0.190, 1.000, 0.220, 1.000)\")),\n circ: (/** @type {?} */ (\"cubic-bezier(0.075, 0.820, 0.165, 1.000)\")),\n back: (/** @type {?} */ (\"cubic-bezier(0.175, 0.885, 0.320, 1.275)\")),\n};\n/** @enum {string} */\nvar EaseInOut = {\n quad: (/** @type {?} */ (\"cubic-bezier(0.455, 0.030, 0.515, 0.955)\")),\n cubic: (/** @type {?} */ (\"cubic-bezier(0.645, 0.045, 0.355, 1.000)\")),\n quart: (/** @type {?} */ (\"cubic-bezier(0.770, 0.000, 0.175, 1.000)\")),\n quint: (/** @type {?} */ (\"cubic-bezier(0.860, 0.000, 0.070, 1.000)\")),\n sine: (/** @type {?} */ (\"cubic-bezier(0.445, 0.050, 0.550, 0.950)\")),\n expo: (/** @type {?} */ (\"cubic-bezier(1.000, 0.000, 0.000, 1.000)\")),\n circ: (/** @type {?} */ (\"cubic-bezier(0.785, 0.135, 0.150, 0.860)\")),\n back: (/** @type {?} */ (\"cubic-bezier(0.680, -0.550, 0.265, 1.550)\")),\n};\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n/** @type {?} */\nvar base = [\n style({\n opacity: \"{{startOpacity}}\"\n }),\n animate(\"{{duration}} {{delay}} {{easing}}\", style({\n opacity: \"{{endOpacity}}\"\n }))\n];\n/** @type {?} */\nvar baseParams = {\n delay: '0s',\n duration: '350ms',\n easing: EaseOut.sine,\n endOpacity: 1,\n startOpacity: 0\n};\n/** @type {?} */\nvar fadeIn = animation(base, {\n params: baseParams\n});\n/** @type {?} */\nvar fadeOut = animation(base, {\n params: {\n delay: '0s',\n duration: '350ms',\n easing: EaseOut.sine,\n endOpacity: 0,\n startOpacity: 1\n }\n});\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n/** @type {?} */\nvar baseRecipe = [\n style({\n backfaceVisibility: 'hidden',\n transformStyle: 'preserve-3d'\n }),\n animate(\"{{duration}} {{delay}} {{easing}}\", keyframes([\n style({\n offset: 0,\n transform: \"translateZ({{startDistance}})\\n rotate3d({{rotateX}}, {{rotateY}}, {{rotateZ}}, {{startAngle}}deg)\"\n }),\n style({\n offset: 1,\n transform: \"translateZ({{endDistance}})\\n rotate3d({{rotateX}}, {{rotateY}}, {{rotateZ}}, {{endAngle}}deg)\"\n })\n ]))\n];\n/** @type {?} */\nvar baseParams$1 = {\n delay: '0s',\n duration: '600ms',\n easing: EaseOut.quad,\n endAngle: 180,\n endDistance: '0px',\n rotateX: 1,\n rotateY: 0,\n rotateZ: 0,\n startAngle: 0,\n startDistance: '0px'\n};\n/** @type {?} */\nvar flipTop = animation(baseRecipe, {\n params: __assign({}, baseParams$1)\n});\n/** @type {?} */\nvar flipBottom = animation(baseRecipe, {\n params: __assign({}, baseParams$1, { endAngle: -180 })\n});\n/** @type {?} */\nvar flipLeft = animation(baseRecipe, {\n params: __assign({}, baseParams$1, { rotateX: 0, rotateY: 1 })\n});\n/** @type {?} */\nvar flipRight = animation(baseRecipe, {\n params: __assign({}, baseParams$1, { endAngle: -180, rotateX: 0, rotateY: 1 })\n});\n/** @type {?} */\nvar flipHorFwd = animation(baseRecipe, {\n params: __assign({}, baseParams$1, { endDistance: '170px' })\n});\n/** @type {?} */\nvar flipHorBck = animation(baseRecipe, {\n params: __assign({}, baseParams$1, { endDistance: '-170px' })\n});\n/** @type {?} */\nvar flipVerFwd = animation(baseRecipe, {\n params: __assign({}, baseParams$1, { endDistance: '170px', rotateX: 0, rotateY: 1 })\n});\n/** @type {?} */\nvar flipVerBck = animation(baseRecipe, {\n params: __assign({}, baseParams$1, { endDistance: '-170px', rotateX: 0, rotateY: 1 })\n});\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n/** @type {?} */\nvar baseRecipe$1 = [\n style({\n opacity: \"{{startOpacity}}\",\n transform: \"rotate3d({{rotateX}},{{rotateY}},{{rotateZ}},{{startAngle}}deg)\",\n transformOrigin: \"{{xPos}} {{yPos}}\"\n }),\n animate(\"{{duration}} {{delay}} {{easing}}\", style({\n offset: 0,\n opacity: \"{{endOpacity}}\",\n transform: \"rotate3d({{rotateX}},{{rotateY}},{{rotateZ}},{{endAngle}}deg)\",\n transformOrigin: \"{{xPos}} {{yPos}}\"\n }))\n];\n/** @type {?} */\nvar baseInParams = {\n delay: '0s',\n duration: '600ms',\n easing: EaseOut.quad,\n endAngle: 0,\n endOpacity: 1,\n rotateX: 0,\n rotateY: 0,\n rotateZ: 1,\n startAngle: -360,\n startOpacity: 0,\n xPos: 'center',\n yPos: 'center'\n};\n/** @type {?} */\nvar baseOutParams = __assign({}, baseInParams, { easing: EaseIn.quad, endOpacity: 0, startOpacity: 1 });\n/** @type {?} */\nvar rotateInCenter = animation(baseRecipe$1, {\n params: __assign({}, baseInParams)\n});\n/** @type {?} */\nvar rotateOutCenter = animation(baseRecipe$1, {\n params: __assign({}, baseOutParams)\n});\n/** @type {?} */\nvar rotateInTop = animation(baseRecipe$1, {\n params: __assign({}, baseInParams, { xPos: 'top' })\n});\n/** @type {?} */\nvar rotateOutTop = animation(baseRecipe$1, {\n params: __assign({}, baseOutParams, { xPos: 'top' })\n});\n/** @type {?} */\nvar rotateInRight = animation(baseRecipe$1, {\n params: __assign({}, baseInParams, { xPos: 'right' })\n});\n/** @type {?} */\nvar rotateOutRight = animation(baseRecipe$1, {\n params: __assign({}, baseOutParams, { xPos: 'right' })\n});\n/** @type {?} */\nvar rotateInBottom = animation(baseRecipe$1, {\n params: __assign({}, baseInParams, { xPos: 'bottom' })\n});\n/** @type {?} */\nvar rotateOutBottom = animation(baseRecipe$1, {\n params: __assign({}, baseOutParams, { xPos: 'bottom' })\n});\n/** @type {?} */\nvar rotateInLeft = animation(baseRecipe$1, {\n params: __assign({}, baseInParams, { xPos: 'left' })\n});\n/** @type {?} */\nvar rotateOutLeft = animation(baseRecipe$1, {\n params: __assign({}, baseOutParams, { xPos: 'left' })\n});\n/** @type {?} */\nvar rotateInTr = animation(baseRecipe$1, {\n params: __assign({}, baseInParams, { xPos: 'right', yPos: 'top' })\n});\n/** @type {?} */\nvar rotateOutTr = animation(baseRecipe$1, {\n params: __assign({}, baseOutParams, { xPos: 'right', yPos: 'top' })\n});\n/** @type {?} */\nvar rotateInBr = animation(baseRecipe$1, {\n params: __assign({}, baseInParams, { xPos: 'right', yPos: 'bottom' })\n});\n/** @type {?} */\nvar rotateOutBr = animation(baseRecipe$1, {\n params: __assign({}, baseOutParams, { xPos: 'right', yPos: 'bottom' })\n});\n/** @type {?} */\nvar rotateInBl = animation(baseRecipe$1, {\n params: __assign({}, baseInParams, { xPos: 'left', yPos: 'bottom' })\n});\n/** @type {?} */\nvar rotateOutBl = animation(baseRecipe$1, {\n params: __assign({}, baseOutParams, { xPos: 'left', yPos: 'bottom' })\n});\n/** @type {?} */\nvar rotateInTl = animation(baseRecipe$1, {\n params: __assign({}, baseInParams, { xPos: 'left', yPos: 'top' })\n});\n/** @type {?} */\nvar rotateOutTl = animation(baseRecipe$1, {\n params: __assign({}, baseOutParams, { xPos: 'left', yPos: 'top' })\n});\n/** @type {?} */\nvar rotateInDiagonal1 = animation(baseRecipe$1, {\n params: __assign({}, baseInParams, { rotateX: 1, rotateY: 1, rotateZ: 0 })\n});\n/** @type {?} */\nvar rotateOutDiagonal1 = animation(baseRecipe$1, {\n params: __assign({}, baseOutParams, { rotateX: 1, rotateY: 1, rotateZ: 0 })\n});\n/** @type {?} */\nvar rotateInDiagonal2 = animation(baseRecipe$1, {\n params: __assign({}, baseInParams, { rotateX: -1, rotateY: 1, rotateZ: 0 })\n});\n/** @type {?} */\nvar rotateOutDiagonal2 = animation(baseRecipe$1, {\n params: __assign({}, baseOutParams, { rotateX: -1, rotateY: 1, rotateZ: 0 })\n});\n/** @type {?} */\nvar rotateInHor = animation(baseRecipe$1, {\n params: __assign({}, baseInParams, { rotateX: 0, rotateY: 1, rotateZ: 0 })\n});\n/** @type {?} */\nvar rotateOutHor = animation(baseRecipe$1, {\n params: __assign({}, baseOutParams, { rotateX: 0, rotateY: 1, rotateZ: 0 })\n});\n/** @type {?} */\nvar rotateInVer = animation(baseRecipe$1, {\n params: __assign({}, baseInParams, { rotateX: 1, rotateY: 0, rotateZ: 0 })\n});\n/** @type {?} */\nvar rotateOutVer = animation(baseRecipe$1, {\n params: __assign({}, baseOutParams, { rotateX: 1, rotateY: 0, rotateZ: 0 })\n});\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n/** @type {?} */\nvar baseRecipe$2 = [\n animate(\"{{duration}} {{delay}} {{easing}}\", keyframes([\n style({\n offset: 0,\n transform: \"rotate(0deg) translate{{direction}}(0)\",\n transformOrigin: \"{{xPos}} {{yPos}}\"\n }),\n style({\n offset: 0.1,\n transform: \"rotate({{endAngle}}deg) translate{{direction}}(-{{startDistance}})\"\n }),\n style({\n offset: 0.2,\n transform: \"rotate(-{{startAngle}}deg) translate{{direction}}({{startDistance}})\"\n }),\n style({\n offset: 0.3,\n transform: \"rotate({{startAngle}}deg) translate{{direction}}(-{{startDistance}})\"\n }),\n style({\n offset: 0.4,\n transform: \"rotate(-{{startAngle}}deg) translate{{direction}}({{startDistance}})\"\n }),\n style({\n offset: 0.5,\n transform: \"rotate({{startAngle}}deg) translate{{direction}}(-{{startDistance}})\"\n }),\n style({\n offset: 0.6,\n transform: \"rotate(-{{startAngle}}deg) translate{{direction}}({{startDistance}})\"\n }),\n style({\n offset: 0.7,\n transform: \"rotate({{startAngle}}deg) translate{{direction}}(-{{startDistance}})\"\n }),\n style({\n offset: 0.8,\n transform: \"rotate(-{{endAngle}}deg) translate{{direction}}({{endDistance}})\"\n }),\n style({\n offset: 0.9,\n transform: \"rotate({{endAngle}}deg) translate{{direction}}(-{{endDistance}})\"\n }),\n style({\n offset: 1,\n transform: \"rotate(0deg) translate{{direction}}(0)\",\n transformOrigin: \"{{xPos}} {{yPos}}\"\n })\n ]))\n];\n/** @type {?} */\nvar baseParams$2 = {\n delay: '0s',\n direction: 'X',\n duration: '800ms',\n easing: EaseInOut.quad,\n endAngle: 0,\n endDistance: '8px',\n startAngle: 0,\n startDistance: '10px',\n xPos: 'center',\n yPos: 'center'\n};\n/** @type {?} */\nvar shakeHor = animation(baseRecipe$2, {\n params: __assign({}, baseParams$2, { direction: 'X' })\n});\n/** @type {?} */\nvar shakeVer = animation(baseRecipe$2, {\n params: __assign({}, baseParams$2, { direction: 'Y' })\n});\n/** @type {?} */\nvar shakeTop = animation(baseRecipe$2, {\n params: __assign({}, baseParams$2, { endAngle: 2, endDistance: '0', startAngle: 4, startDistance: '0', yPos: 'top' })\n});\n/** @type {?} */\nvar shakeBottom = animation(baseRecipe$2, {\n params: __assign({}, baseParams$2, { direction: 'Y', endAngle: 2, endDistance: '0', startAngle: 4, startDistance: '0', yPos: 'bottom' })\n});\n/** @type {?} */\nvar shakeRight = animation(baseRecipe$2, {\n params: __assign({}, baseParams$2, { direction: 'Y', endAngle: 2, endDistance: '0', startAngle: 4, startDistance: '0', xPos: 'right', yPos: 'center' })\n});\n/** @type {?} */\nvar shakeLeft = animation(baseRecipe$2, {\n params: __assign({}, baseParams$2, { direction: 'Y', endAngle: 2, endDistance: '0', startAngle: 4, startDistance: '0', xPos: 'left', yPos: 'center' })\n});\n/** @type {?} */\nvar shakeCenter = animation(baseRecipe$2, {\n params: __assign({}, baseParams$2, { direction: 'Y', endAngle: 8, endDistance: '0', startAngle: 10, startDistance: '0', xPos: 'center', yPos: 'center' })\n});\n/** @type {?} */\nvar shakeTr = animation(baseRecipe$2, {\n params: __assign({}, baseParams$2, { direction: 'Y', endAngle: 2, endDistance: '0', startAngle: 4, startDistance: '0', xPos: 'right', yPos: 'top' })\n});\n/** @type {?} */\nvar shakeBr = animation(baseRecipe$2, {\n params: __assign({}, baseParams$2, { direction: 'Y', endAngle: 2, endDistance: '0', startAngle: 4, startDistance: '0', xPos: 'right', yPos: 'bottom' })\n});\n/** @type {?} */\nvar shakeBl = animation(baseRecipe$2, {\n params: __assign({}, baseParams$2, { direction: 'Y', endAngle: 2, endDistance: '0', startAngle: 4, startDistance: '0', xPos: 'left', yPos: 'bottom' })\n});\n/** @type {?} */\nvar shakeTl = animation(baseRecipe$2, {\n params: __assign({}, baseParams$2, { direction: 'Y', endAngle: 2, endDistance: '0', startAngle: 4, startDistance: '0', xPos: 'left', yPos: 'top' })\n});\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n/** @type {?} */\nvar heartbeatBase = [\n style({\n animationTimingFunction: \"ease-out\",\n transform: \"scale(1)\",\n transformOrigin: \"center center\"\n }),\n animate(\"{{duration}} {{delay}} {{easing}}\", keyframes([\n style({\n animationTimingFunction: \"ease-in\",\n offset: 0.1,\n transform: \"scale(0.91)\"\n }),\n style({\n animationTimingFunction: \"ease-out\",\n offset: 0.17,\n transform: \"scale(0.98)\"\n }),\n style({\n animationTimingFunction: \"ease-in\",\n offset: 0.33,\n transform: \"scale(0.87)\"\n }),\n style({\n animationTimingFunction: \"ease-out\",\n offset: 0.45,\n transform: \"scale(1)\"\n })\n ]))\n];\n/** @type {?} */\nvar heartbeatParams = {\n delay: '0s',\n duration: '1.5s',\n easing: 'ease-in-out'\n};\n/** @type {?} */\nvar pulsateBase = [\n animate(\"{{duration}} {{delay}} {{easing}}\", keyframes([\n style({\n offset: 0,\n transform: \"scale({{fromScale}})\"\n }),\n style({\n offset: 0.5,\n transform: \"scale({{toScale}})\"\n }),\n style({\n offset: 1,\n transform: \"scale({{fromScale}})\"\n })\n ]))\n];\n/** @type {?} */\nvar pulsateParams = {\n delay: '0s',\n duration: '.5s',\n easing: 'ease-in-out',\n fromScale: 1,\n toScale: 1.1\n};\n/** @type {?} */\nvar blinkBase = [\n animate(\"{{duration}} {{delay}} {{easing}}\", keyframes([\n style({\n offset: 0,\n opacity: .8,\n transform: \"scale({{fromScale}})\"\n }),\n style({\n offset: 0.8,\n opacity: 0,\n transform: \"scale({{midScale}})\"\n }),\n style({\n offset: 1,\n opacity: 0,\n transform: \"scale({{toScale}})\"\n })\n ]))\n];\n/** @type {?} */\nvar blinkParams = {\n delay: '0s',\n duration: '.8s',\n easing: 'ease-in-out',\n fromScale: .2,\n midScale: 1.2,\n toScale: 2.2\n};\n/** @type {?} */\nvar pulsateFwd = animation(pulsateBase, {\n params: __assign({}, pulsateParams)\n});\n/** @type {?} */\nvar pulsateBck = animation(pulsateBase, {\n params: __assign({}, pulsateParams, { toScale: .9 })\n});\n/** @type {?} */\nvar heartbeat = animation(heartbeatBase, {\n params: __assign({}, heartbeatParams)\n});\n/** @type {?} */\nvar blink = animation(blinkBase, {\n params: __assign({}, blinkParams)\n});\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n/** @type {?} */\nvar base$1 = [\n style({\n opacity: \"{{startOpacity}}\",\n transform: \"scale{{direction}}({{fromScale}})\",\n transformOrigin: \"{{xPos}} {{yPos}}\"\n }),\n animate(\"{{duration}} {{delay}} {{easing}}\", style({\n opacity: \"{{endOpacity}}\",\n transform: \"scale{{direction}}({{toScale}})\",\n transformOrigin: \"{{xPos}} {{yPos}}\"\n }))\n];\n/** @type {?} */\nvar baseInParams$1 = {\n delay: '0s',\n direction: '',\n duration: '350ms',\n easing: EaseOut.quad,\n endOpacity: 1,\n fromScale: .5,\n startOpacity: 0,\n toScale: 1,\n xPos: '50%',\n yPos: '50%'\n};\n/** @type {?} */\nvar baseOutParams$1 = __assign({}, baseInParams$1, { easing: EaseOut.sine, endOpacity: 0, fromScale: 1, startOpacity: 1, toScale: .5 });\n/** @type {?} */\nvar scaleInCenter = animation(base$1, { params: baseInParams$1 });\n/** @type {?} */\nvar scaleInBl = animation(base$1, {\n params: __assign({}, baseInParams$1, { xPos: '0', yPos: '100%' })\n});\n/** @type {?} */\nvar scaleInVerCenter = animation(base$1, {\n params: __assign({}, baseInParams$1, { direction: 'Y', fromScale: .4 })\n});\n/** @type {?} */\nvar scaleInTop = animation(base$1, {\n params: __assign({}, baseInParams$1, { xPos: '50%', yPos: '0' })\n});\n/** @type {?} */\nvar scaleInLeft = animation(base$1, {\n params: __assign({}, baseInParams$1, { xPos: '0', yPos: '50%' })\n});\n/** @type {?} */\nvar scaleInVerTop = animation(base$1, {\n params: __assign({}, baseInParams$1, { direction: 'Y', fromScale: .4, xPos: '100%', yPos: '0' })\n});\n/** @type {?} */\nvar scaleInTr = animation(base$1, {\n params: __assign({}, baseInParams$1, { xPos: '100%', yPos: '0' })\n});\n/** @type {?} */\nvar scaleInTl = animation(base$1, {\n params: __assign({}, baseInParams$1, { xPos: '0', yPos: '0' })\n});\n/** @type {?} */\nvar scaleInVerBottom = animation(base$1, {\n params: __assign({}, baseInParams$1, { direction: 'Y', fromScale: .4, xPos: '0', yPos: '100%' })\n});\n/** @type {?} */\nvar scaleInRight = animation(base$1, {\n params: __assign({}, baseInParams$1, { xPos: '100%', yPos: '50%' })\n});\n/** @type {?} */\nvar scaleInHorCenter = animation(base$1, {\n params: __assign({}, baseInParams$1, { direction: 'X', fromScale: .4 })\n});\n/** @type {?} */\nvar scaleInBr = animation(base$1, {\n params: __assign({}, baseInParams$1, { xPos: '100%', yPos: '100%' })\n});\n/** @type {?} */\nvar scaleInHorLeft = animation(base$1, {\n params: __assign({}, baseInParams$1, { direction: 'X', fromScale: .4, xPos: '0', yPos: '0' })\n});\n/** @type {?} */\nvar scaleInBottom = animation(base$1, {\n params: __assign({}, baseInParams$1, { xPos: '50%', yPos: '100%' })\n});\n/** @type {?} */\nvar scaleInHorRight = animation(base$1, {\n params: __assign({}, baseInParams$1, { direction: 'X', fromScale: .4, xPos: '100%', yPos: '100%' })\n});\n/** @type {?} */\nvar scaleOutCenter = animation(base$1, { params: baseOutParams$1 });\n/** @type {?} */\nvar scaleOutBl = animation(base$1, {\n params: __assign({}, baseOutParams$1, { xPos: '0', yPos: '100%' })\n});\n/** @type {?} */\nvar scaleOutBr = animation(base$1, {\n params: __assign({}, baseOutParams$1, { xPos: '100%', yPos: '100%' })\n});\n/** @type {?} */\nvar scaleOutVerCenter = animation(base$1, {\n params: __assign({}, baseOutParams$1, { direction: 'Y', toScale: .3 })\n});\n/** @type {?} */\nvar scaleOutVerTop = animation(base$1, {\n params: __assign({}, baseOutParams$1, { direction: 'Y', toScale: .3, xPos: '100%', yPos: '0' })\n});\n/** @type {?} */\nvar scaleOutVerBottom = animation(base$1, {\n params: __assign({}, baseOutParams$1, { direction: 'Y', toScale: .3, xPos: '0', yPos: '100%' })\n});\n/** @type {?} */\nvar scaleOutTop = animation(base$1, {\n params: __assign({}, baseOutParams$1, { xPos: '50%', yPos: '0' })\n});\n/** @type {?} */\nvar scaleOutLeft = animation(base$1, {\n params: __assign({}, baseOutParams$1, { xPos: '0', yPos: '50%' })\n});\n/** @type {?} */\nvar scaleOutTr = animation(base$1, {\n params: __assign({}, baseOutParams$1, { xPos: '100%', yPos: '0' })\n});\n/** @type {?} */\nvar scaleOutTl = animation(base$1, {\n params: __assign({}, baseOutParams$1, { xPos: '0', yPos: '0' })\n});\n/** @type {?} */\nvar scaleOutRight = animation(base$1, {\n params: __assign({}, baseOutParams$1, { xPos: '100%', yPos: '50%' })\n});\n/** @type {?} */\nvar scaleOutBottom = animation(base$1, {\n params: __assign({}, baseOutParams$1, { xPos: '50%', yPos: '100%' })\n});\n/** @type {?} */\nvar scaleOutHorCenter = animation(base$1, {\n params: __assign({}, baseOutParams$1, { direction: 'X', toScale: .3 })\n});\n/** @type {?} */\nvar scaleOutHorLeft = animation(base$1, {\n params: __assign({}, baseOutParams$1, { direction: 'X', toScale: .3, xPos: '0', yPos: '0' })\n});\n/** @type {?} */\nvar scaleOutHorRight = animation(base$1, {\n params: __assign({}, baseOutParams$1, { direction: 'X', toScale: .3, xPos: '100%', yPos: '100%' })\n});\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n/** @type {?} */\nvar base$2 = [\n style({\n opacity: \"{{startOpacity}}\",\n transform: \"{{fromPosition}}\"\n }),\n animate(\"{{duration}} {{delay}} {{easing}}\", style({\n opacity: \"{{endOpacity}}\",\n transform: \"{{toPosition}}\"\n }))\n];\n/** @type {?} */\nvar baseInParams$2 = {\n delay: '0s',\n duration: '350ms',\n easing: EaseOut.quad,\n endOpacity: 1,\n fromPosition: 'translateY(-500px)',\n startOpacity: 0,\n toPosition: 'translateY(0)'\n};\n/** @type {?} */\nvar baseOutParams$2 = {\n delay: '0s',\n duration: '350ms',\n easing: EaseIn.quad,\n endOpacity: 0,\n fromPosition: 'translateY(0)',\n startOpacity: 1,\n toPosition: 'translateY(-500px)'\n};\n/** @type {?} */\nvar slideInTop = animation(base$2, { params: baseInParams$2 });\n/** @type {?} */\nvar slideInLeft = animation(base$2, {\n params: {\n delay: '0s',\n duration: '350ms',\n easing: EaseOut.quad,\n endOpacity: 1,\n fromPosition: 'translateX(-500px)',\n startOpacity: 0,\n toPosition: 'translateY(0)'\n }\n});\n/** @type {?} */\nvar slideInRight = animation(base$2, {\n params: {\n delay: '0s',\n duration: '350ms',\n easing: EaseOut.quad,\n endOpacity: 1,\n fromPosition: 'translateX(500px)',\n startOpacity: 0,\n toPosition: 'translateY(0)'\n }\n});\n/** @type {?} */\nvar slideInBottom = animation(base$2, {\n params: {\n delay: '0s',\n duration: '350ms',\n easing: EaseOut.quad,\n endOpacity: 1,\n fromPosition: 'translateY(500px)',\n startOpacity: 0,\n toPosition: 'translateY(0)'\n }\n});\n/** @type {?} */\nvar slideInTr = animation(base$2, {\n params: __assign({}, baseInParams$2, { fromPosition: 'translateY(-500px) translateX(500px)', toPosition: 'translateY(0) translateX(0)' })\n});\n/** @type {?} */\nvar slideInTl = animation(base$2, {\n params: __assign({}, baseInParams$2, { fromPosition: 'translateY(-500px) translateX(-500px)', toPosition: 'translateY(0) translateX(0)' })\n});\n/** @type {?} */\nvar slideInBr = animation(base$2, {\n params: __assign({}, baseInParams$2, { fromPosition: 'translateY(500px) translateX(500px)', toPosition: 'translateY(0) translateX(0)' })\n});\n/** @type {?} */\nvar slideInBl = animation(base$2, {\n params: __assign({}, baseInParams$2, { fromPosition: 'translateY(500px) translateX(-500px)', toPosition: 'translateY(0) translateX(0)' })\n});\n/** @type {?} */\nvar slideOutTop = animation(base$2, { params: baseOutParams$2 });\n/** @type {?} */\nvar slideOutRight = animation(base$2, {\n params: __assign({}, baseOutParams$2, { toPosition: 'translateX(500px)' })\n});\n/** @type {?} */\nvar slideOutBottom = animation(base$2, {\n params: {\n delay: '0s',\n duration: '350ms',\n easing: EaseIn.quad,\n endOpacity: 0,\n fromPosition: 'translateY(0)',\n startOpacity: 1,\n toPosition: 'translateY(500px)'\n }\n});\n/** @type {?} */\nvar slideOutLeft = animation(base$2, {\n params: __assign({}, baseOutParams$2, { toPosition: 'translateX(-500px)' })\n});\n/** @type {?} */\nvar slideOutTr = animation(base$2, {\n params: __assign({}, baseOutParams$2, { fromPosition: 'translateY(0) translateX(0)', toPosition: 'translateY(-500px) translateX(500px)' })\n});\n/** @type {?} */\nvar slideOutBr = animation(base$2, {\n params: __assign({}, baseOutParams$2, { fromPosition: 'translateY(0) translateX(0)', toPosition: 'translateY(500px) translateX(500px)' })\n});\n/** @type {?} */\nvar slideOutBl = animation(base$2, {\n params: __assign({}, baseOutParams$2, { fromPosition: 'translateY(0) translateX(0)', toPosition: 'translateY(500px) translateX(-500px)' })\n});\n/** @type {?} */\nvar slideOutTl = animation(base$2, {\n params: __assign({}, baseOutParams$2, { fromPosition: 'translateY(0) translateX(0)', toPosition: 'translateY(-500px) translateX(-500px)' })\n});\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n/** @type {?} */\nvar swingBase = [\n style({\n opacity: \"{{startOpacity}}\",\n transform: \"rotate{{direction}}({{startAngle}}deg)\",\n transformOrigin: \"{{xPos}} {{yPos}}\"\n }),\n animate(\"{{duration}} {{delay}} {{easing}}\", style({\n opacity: \"{{endOpacity}}\",\n transform: \"rotate{{direction}}({{endAngle}}deg)\",\n transformOrigin: \"{{xPos}} {{yPos}}\"\n }))\n];\n/** @type {?} */\nvar swingParams = {\n delay: '0s',\n direction: 'X',\n duration: '.5s',\n easing: EaseOut.back,\n endAngle: 0,\n endOpacity: 1,\n startAngle: -100,\n startOpacity: 0,\n xPos: 'top',\n yPos: 'center'\n};\n/** @type {?} */\nvar swingOutParams = __assign({}, swingParams, { duration: '.55s', easing: EaseIn.back, endAngle: 70, endOpacity: 0, startAngle: 0, startOpacity: 1 });\n/** @type {?} */\nvar swingInTopFwd = animation(swingBase, {\n params: __assign({}, swingParams)\n});\n/** @type {?} */\nvar swingInRightFwd = animation(swingBase, {\n params: __assign({}, swingParams, { direction: 'Y', xPos: 'center', yPos: 'right' })\n});\n/** @type {?} */\nvar swingInBottomFwd = animation(swingBase, {\n params: __assign({}, swingParams, { startAngle: 100, xPos: 'bottom' })\n});\n/** @type {?} */\nvar swingInLeftFwd = animation(swingBase, {\n params: __assign({}, swingParams, { direction: 'Y', startAngle: 100, xPos: 'center', yPos: 'left' })\n});\n/** @type {?} */\nvar swingInTopBck = animation(swingBase, {\n params: __assign({}, swingParams, { duration: '.6s', startAngle: 70 })\n});\n/** @type {?} */\nvar swingInRightBck = animation(swingBase, {\n params: __assign({}, swingParams, { direction: 'Y', duration: '.6s', startAngle: 70, xPos: 'center', yPos: 'right' })\n});\n/** @type {?} */\nvar swingInBottomBck = animation(swingBase, {\n params: __assign({}, swingParams, { duration: '.6s', startAngle: -70, xPos: 'bottom' })\n});\n/** @type {?} */\nvar swingInLeftBck = animation(swingBase, {\n params: __assign({}, swingParams, { direction: 'Y', duration: '.6s', startAngle: -70, xPos: 'center', yPos: 'left' })\n});\n/** @type {?} */\nvar swingOutTopFwd = animation(swingBase, {\n params: __assign({}, swingOutParams)\n});\n/** @type {?} */\nvar swingOutRightFwd = animation(swingBase, {\n params: __assign({}, swingOutParams, { direction: 'Y', xPos: 'center', yPos: 'right' })\n});\n/** @type {?} */\nvar swingOutBottomFwd = animation(swingBase, {\n params: __assign({}, swingOutParams, { endAngle: -70, xPos: 'bottom' })\n});\n/** @type {?} */\nvar swingOutLefttFwd = animation(swingBase, {\n params: __assign({}, swingOutParams, { direction: 'Y', endAngle: -70, xPos: 'center', yPos: 'left' })\n});\n/** @type {?} */\nvar swingOutTopBck = animation(swingBase, {\n params: __assign({}, swingOutParams, { duration: '.45s', endAngle: -100 })\n});\n/** @type {?} */\nvar swingOutRightBck = animation(swingBase, {\n params: __assign({}, swingOutParams, { direction: 'Y', duration: '.45s', endAngle: -100, xPos: 'center', yPos: 'right' })\n});\n/** @type {?} */\nvar swingOutBottomBck = animation(swingBase, {\n params: __assign({}, swingOutParams, { duration: '.45s', endAngle: 100, xPos: 'bottom' })\n});\n/** @type {?} */\nvar swingOutLeftBck = animation(swingBase, {\n params: __assign({}, swingOutParams, { direction: 'Y', duration: '.45s', endAngle: 100, xPos: 'center', yPos: 'left' })\n});\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n/** @type {?} */\nvar base$3 = [\n style({\n opacity: \"{{ startOpacity }}\",\n height: \"{{ startHeight }}\"\n }),\n animate(\"{{duration}} {{delay}} {{easing}}\", style({\n opacity: \"{{ endOpacity }}\",\n height: \"{{ endHeight }}\"\n }))\n];\n/** @type {?} */\nvar baseParams$3 = {\n delay: '0s',\n duration: '350ms',\n easing: EaseIn.quad,\n startOpacity: 0,\n endOpacity: 1,\n startHeight: '',\n endHeight: ''\n};\n/** @type {?} */\nvar growVerIn = animation(base$3, {\n params: __assign({}, baseParams$3, { easing: EaseOut.quad, startOpacity: 0, endOpacity: 1, startHeight: '0px', endHeight: '*' })\n});\n/** @type {?} */\nvar growVerOut = animation(base$3, {\n params: __assign({}, baseParams$3, { easing: EaseOut.quad, startOpacity: 1, endOpacity: 0, startHeight: '*', endHeight: '0px' })\n});\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n/**\n * Common service to be injected between components where those implementing common\n * ToggleView interface can register and toggle directives can call their methods.\n * TODO: Track currently active? Events?\n */\nvar /**\n * Common service to be injected between components where those implementing common\n * ToggleView interface can register and toggle directives can call their methods.\n * TODO: Track currently active? Events?\n */\nIgxNavigationService = /** @class */ (function () {\n function IgxNavigationService() {\n this.navs = {};\n }\n /**\n * @param {?} id\n * @param {?} navItem\n * @return {?}\n */\n IgxNavigationService.prototype.add = /**\n * @param {?} id\n * @param {?} navItem\n * @return {?}\n */\n function (id, navItem) {\n this.navs[id] = navItem;\n };\n /**\n * @param {?} id\n * @return {?}\n */\n IgxNavigationService.prototype.remove = /**\n * @param {?} id\n * @return {?}\n */\n function (id) {\n delete this.navs[id];\n };\n /**\n * @param {?} id\n * @return {?}\n */\n IgxNavigationService.prototype.get = /**\n * @param {?} id\n * @return {?}\n */\n function (id) {\n if (id) {\n return this.navs[id];\n }\n };\n /**\n * @param {?} id\n * @param {...?} args\n * @return {?}\n */\n IgxNavigationService.prototype.toggle = /**\n * @param {?} id\n * @param {...?} args\n * @return {?}\n */\n function (id) {\n var _a;\n var args = [];\n for (var _i = 1; _i < arguments.length; _i++) {\n args[_i - 1] = arguments[_i];\n }\n if (this.navs[id]) {\n return (_a = this.navs[id]).toggle.apply(_a, __spread(args));\n }\n };\n /**\n * @param {?} id\n * @param {...?} args\n * @return {?}\n */\n IgxNavigationService.prototype.open = /**\n * @param {?} id\n * @param {...?} args\n * @return {?}\n */\n function (id) {\n var _a;\n var args = [];\n for (var _i = 1; _i < arguments.length; _i++) {\n args[_i - 1] = arguments[_i];\n }\n if (this.navs[id]) {\n return (_a = this.navs[id]).open.apply(_a, __spread(args));\n }\n };\n /**\n * @param {?} id\n * @param {...?} args\n * @return {?}\n */\n IgxNavigationService.prototype.close = /**\n * @param {?} id\n * @param {...?} args\n * @return {?}\n */\n function (id) {\n var _a;\n var args = [];\n for (var _i = 1; _i < arguments.length; _i++) {\n args[_i - 1] = arguments[_i];\n }\n if (this.navs[id]) {\n return (_a = this.navs[id]).close.apply(_a, __spread(args));\n }\n };\n return IgxNavigationService;\n}());\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n/**\n * Directive that can toggle targets through provided NavigationService.\n *\n * Usage:\n * ```\n * \n * ```\n * Where the `ID` matches the ID of compatible `IToggleView` component.\n */\nvar IgxNavigationToggleDirective = /** @class */ (function () {\n function IgxNavigationToggleDirective(nav) {\n this.state = nav;\n }\n /**\n * @return {?}\n */\n IgxNavigationToggleDirective.prototype.toggleNavigationDrawer = /**\n * @return {?}\n */\n function () {\n this.state.toggle(this.target, true);\n };\n IgxNavigationToggleDirective.decorators = [\n { type: Directive, args: [{ selector: '[igxNavToggle]' },] }\n ];\n /** @nocollapse */\n IgxNavigationToggleDirective.ctorParameters = function () { return [\n { type: IgxNavigationService }\n ]; };\n IgxNavigationToggleDirective.propDecorators = {\n target: [{ type: Input, args: ['igxNavToggle',] }],\n toggleNavigationDrawer: [{ type: HostListener, args: ['click',] }]\n };\n return IgxNavigationToggleDirective;\n}());\n/**\n * Directive that can close targets through provided NavigationService.\n *\n * Usage:\n * ```\n * \n * ```\n * Where the `ID` matches the ID of compatible `IToggleView` component.\n */\nvar IgxNavigationCloseDirective = /** @class */ (function () {\n function IgxNavigationCloseDirective(nav) {\n this.state = nav;\n }\n /**\n * @return {?}\n */\n IgxNavigationCloseDirective.prototype.closeNavigationDrawer = /**\n * @return {?}\n */\n function () {\n this.state.close(this.target, true);\n };\n IgxNavigationCloseDirective.decorators = [\n { type: Directive, args: [{ selector: '[igxNavClose]' },] }\n ];\n /** @nocollapse */\n IgxNavigationCloseDirective.ctorParameters = function () { return [\n { type: IgxNavigationService }\n ]; };\n IgxNavigationCloseDirective.propDecorators = {\n target: [{ type: Input, args: ['igxNavClose',] }],\n closeNavigationDrawer: [{ type: HostListener, args: ['click',] }]\n };\n return IgxNavigationCloseDirective;\n}());\n/**\n * @hidden\n */\nvar IgxNavigationModule = /** @class */ (function () {\n function IgxNavigationModule() {\n }\n IgxNavigationModule.decorators = [\n { type: NgModule, args: [{\n declarations: [IgxNavigationCloseDirective, IgxNavigationToggleDirective],\n exports: [IgxNavigationCloseDirective, IgxNavigationToggleDirective],\n providers: [IgxNavigationService]\n },] }\n ];\n return IgxNavigationModule;\n}());\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n/**\n * @hidden\n * @param {?} array\n * @param {?=} deep\n * @return {?}\n */\nfunction cloneArray(array, deep) {\n /** @type {?} */\n var arr = [];\n if (!array) {\n return arr;\n }\n /** @type {?} */\n var i = array.length;\n while (i--) {\n arr[i] = deep ? cloneValue(array[i]) : array[i];\n }\n return arr;\n}\n/**\n * Doesn't clone leaf items\n * @hidden\n * @param {?} array\n * @param {?} childDataKey\n * @return {?}\n */\nfunction cloneHierarchicalArray(array, childDataKey) {\n var e_1, _a;\n /** @type {?} */\n var result = [];\n if (!array) {\n return result;\n }\n try {\n for (var array_1 = __values(array), array_1_1 = array_1.next(); !array_1_1.done; array_1_1 = array_1.next()) {\n var item = array_1_1.value;\n /** @type {?} */\n var clonedItem = cloneValue(item);\n if (Array.isArray(item[childDataKey])) {\n clonedItem[childDataKey] = cloneHierarchicalArray(clonedItem[childDataKey], childDataKey);\n }\n result.push(clonedItem);\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (array_1_1 && !array_1_1.done && (_a = array_1.return)) _a.call(array_1);\n }\n finally { if (e_1) throw e_1.error; }\n }\n return result;\n}\n/**\n * Deep clones all first level keys of Obj2 and merges them to Obj1\n * @hidden\n * @param {?} obj1 Object to merge into\n * @param {?} obj2 Object to merge from\n * @return {?} Obj1 with merged cloned keys from Obj2\n */\nfunction mergeObjects(obj1, obj2) {\n var e_2, _a;\n if (!isObject(obj1)) {\n throw new Error(\"Cannot merge into \" + obj1 + \". First param must be an object.\");\n }\n if (!isObject(obj2)) {\n return obj1;\n }\n try {\n for (var _b = __values(Object.keys(obj2)), _c = _b.next(); !_c.done; _c = _b.next()) {\n var key = _c.value;\n obj1[key] = cloneValue(obj2[key]);\n }\n }\n catch (e_2_1) { e_2 = { error: e_2_1 }; }\n finally {\n try {\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n }\n finally { if (e_2) throw e_2.error; }\n }\n return obj1;\n}\n/**\n * Creates deep clone of provided value.\n * Supports primitive values, dates and objects.\n * If passed value is array returns shallow copy of the array.\n * @hidden\n * @param {?} value value to clone\n * @return {?} Deep copy of provided value\n */\nfunction cloneValue(value) {\n var e_3, _a;\n if (isDate(value)) {\n return new Date(value.getTime());\n }\n if (Array.isArray(value)) {\n return __spread(value);\n }\n if (value instanceof Map || value instanceof Set) {\n return value;\n }\n if (isObject(value)) {\n /** @type {?} */\n var result = {};\n try {\n for (var _b = __values(Object.keys(value)), _c = _b.next(); !_c.done; _c = _b.next()) {\n var key = _c.value;\n result[key] = cloneValue(value[key]);\n }\n }\n catch (e_3_1) { e_3 = { error: e_3_1 }; }\n finally {\n try {\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n }\n finally { if (e_3) throw e_3.error; }\n }\n return result;\n }\n return value;\n}\n/**\n * Checks if provided variable is Object\n * @hidden\n * @param {?} value Value to check\n * @return {?} true if provided variable is Object\n */\nfunction isObject(value) {\n return value && value.toString() === '[object Object]';\n}\n/**\n * Checks if provided variable is Date\n * @hidden\n * @param {?} value Value to check\n * @return {?} true if provided variable is Date\n */\nfunction isDate(value) {\n return Object.prototype.toString.call(value) === '[object Date]';\n}\n/**\n * Checks if the two passed arguments are equal\n * Currently supports date objects\n * \\@returns: `boolean`\n * @hidden\n * @param {?} obj1\n * @param {?} obj2\n * @return {?}\n */\nfunction isEqual(obj1, obj2) {\n if (isDate(obj1) && isDate(obj2)) {\n return obj1.getTime() === obj2.getTime();\n }\n return obj1 === obj2;\n}\n/**\n * @hidden\n * Returns the actual size of the node content, using Range\n * ```typescript\n * let range = document.createRange();\n * let column = this.grid.columnList.filter(c => c.field === 'ID')[0];\n *\n * let size = getNodeSizeViaRange(range, column.cells[0].nativeElement);\n * ```\n * @param {?} range\n * @param {?} node\n * @return {?}\n */\nfunction getNodeSizeViaRange(range, node) {\n /** @type {?} */\n var overflow = null;\n if (!isFirefox()) {\n overflow = node.style.overflow;\n // we need that hack - otherwise content won't be measured correctly in IE/Edge\n node.style.overflow = 'visible';\n }\n range.selectNodeContents(node);\n /** @type {?} */\n var width = range.getBoundingClientRect().width;\n if (!isFirefox()) {\n // we need that hack - otherwise content won't be measured correctly in IE/Edge\n node.style.overflow = overflow;\n }\n return width;\n}\n/**\n * @hidden\n * @return {?}\n */\nfunction isIE() {\n return navigator.appVersion.indexOf('Trident/') > 0;\n}\n/**\n * @hidden\n * @return {?}\n */\nfunction isEdge() {\n /** @type {?} */\n var edgeBrowser = /Edge[\\/\\s](\\d+\\.\\d+)/.test(navigator.userAgent);\n return edgeBrowser;\n}\n/**\n * @hidden\n * @return {?}\n */\nfunction isFirefox() {\n /** @type {?} */\n var firefoxBrowser = /Firefox[\\/\\s](\\d+\\.\\d+)/.test(navigator.userAgent);\n return firefoxBrowser;\n}\n/**\n * @hidden\n */\nvar PlatformUtil = /** @class */ (function () {\n function PlatformUtil(platformId) {\n this.platformId = platformId;\n this.isBrowser = isPlatformBrowser(this.platformId);\n this.isIOS = this.isBrowser && /iPad|iPhone|iPod/.test(navigator.userAgent) && !('MSStream' in window);\n }\n PlatformUtil.decorators = [\n { type: Injectable, args: [{ providedIn: 'root' },] }\n ];\n /** @nocollapse */\n PlatformUtil.ctorParameters = function () { return [\n { type: Object, decorators: [{ type: Inject, args: [PLATFORM_ID,] }] }\n ]; };\n /** @nocollapse */ PlatformUtil.ngInjectableDef = ɵɵdefineInjectable({ factory: function PlatformUtil_Factory() { return new PlatformUtil(ɵɵinject(PLATFORM_ID)); }, token: PlatformUtil, providedIn: \"root\" });\n return PlatformUtil;\n}());\n/**\n * @hidden\n * @param {?} event\n * @return {?}\n */\nfunction isLeftClick(event) {\n return event.button === 0;\n}\n/**\n * @hidden\n * @param {?} key\n * @return {?}\n */\nfunction isNavigationKey(key) {\n return [\n 'down',\n 'up',\n 'left',\n 'right',\n 'arrowdown',\n 'arrowup',\n 'arrowleft',\n 'arrowright',\n 'home',\n 'end',\n 'space',\n 'spacebar',\n ' '\n ].indexOf(key) !== -1;\n}\n/**\n * @hidden\n * @param {?} arr\n * @return {?}\n */\nfunction flatten(arr) {\n /** @type {?} */\n var result = [];\n arr.forEach(function (el) {\n result.push(el);\n if (el.children) {\n /** @type {?} */\n var children = Array.isArray(el.children) ? el.children : el.children.toArray();\n result = result.concat(flatten(children));\n }\n });\n return result;\n}\n/** @type {?} */\nvar NAVIGATION_KEYS = new Set([\n 'down',\n 'up',\n 'left',\n 'right',\n 'arrowdown',\n 'arrowup',\n 'arrowleft',\n 'arrowright',\n 'home',\n 'end',\n 'space',\n 'spacebar',\n ' '\n]);\n/** @type {?} */\nvar ROW_EXPAND_KEYS = new Set('right down arrowright arrowdown'.split(' '));\n/** @type {?} */\nvar ROW_COLLAPSE_KEYS = new Set('left up arrowleft arrowup'.split(' '));\n/** @type {?} */\nvar SUPPORTED_KEYS = new Set(__spread(Array.from(NAVIGATION_KEYS), ['tab', 'enter', 'f2', 'escape', 'esc']));\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n/** @enum {number} */\nvar SortingDirection = {\n None: 0,\n Asc: 1,\n Desc: 2,\n};\nSortingDirection[SortingDirection.None] = 'None';\nSortingDirection[SortingDirection.Asc] = 'Asc';\nSortingDirection[SortingDirection.Desc] = 'Desc';\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n/**\n * @param {?} h1\n * @param {?} h2\n * @return {?}\n */\nfunction isHierarchyMatch(h1, h2) {\n if (h1.length !== h2.length) {\n return false;\n }\n return h1.every(function (level, index) {\n return level.fieldName === h2[index].fieldName && level.value === h2[index].value;\n });\n}\n/**\n * @param {?} gRow\n * @return {?}\n */\nfunction getHierarchy(gRow) {\n /** @type {?} */\n var hierarchy = [];\n if (gRow !== undefined && gRow.expression) {\n hierarchy.push({ fieldName: gRow.expression.fieldName, value: gRow.value });\n while (gRow.groupParent) {\n gRow = gRow.groupParent;\n hierarchy.unshift({ fieldName: gRow.expression.fieldName, value: gRow.value });\n }\n }\n return hierarchy;\n}\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\nvar DefaultSortingStrategy = /** @class */ (function () {\n function DefaultSortingStrategy() {\n }\n /**\n * @return {?}\n */\n DefaultSortingStrategy.instance = /**\n * @return {?}\n */\n function () {\n return this._instance || (this._instance = new this());\n };\n /**\n * @param {?} data\n * @param {?} fieldName\n * @param {?} dir\n * @param {?} ignoreCase\n * @param {?} valueResolver\n * @return {?}\n */\n DefaultSortingStrategy.prototype.sort = /**\n * @param {?} data\n * @param {?} fieldName\n * @param {?} dir\n * @param {?} ignoreCase\n * @param {?} valueResolver\n * @return {?}\n */\n function (data, fieldName, dir, ignoreCase, valueResolver) {\n var _this = this;\n /** @type {?} */\n var key = fieldName;\n /** @type {?} */\n var reverse = (dir === SortingDirection.Desc ? -1 : 1);\n /** @type {?} */\n var cmpFunc = function (obj1, obj2) {\n return _this.compareObjects(obj1, obj2, key, reverse, ignoreCase, valueResolver);\n };\n return this.arraySort(data, cmpFunc);\n };\n /**\n * @param {?} a\n * @param {?} b\n * @return {?}\n */\n DefaultSortingStrategy.prototype.compareValues = /**\n * @param {?} a\n * @param {?} b\n * @return {?}\n */\n function (a, b) {\n /** @type {?} */\n var an = (a === null || a === undefined);\n /** @type {?} */\n var bn = (b === null || b === undefined);\n if (an) {\n if (bn) {\n return 0;\n }\n return -1;\n }\n else if (bn) {\n return 1;\n }\n return a > b ? 1 : a < b ? -1 : 0;\n };\n /**\n * @protected\n * @param {?} obj1\n * @param {?} obj2\n * @param {?} key\n * @param {?} reverse\n * @param {?} ignoreCase\n * @param {?} valueResolver\n * @return {?}\n */\n DefaultSortingStrategy.prototype.compareObjects = /**\n * @protected\n * @param {?} obj1\n * @param {?} obj2\n * @param {?} key\n * @param {?} reverse\n * @param {?} ignoreCase\n * @param {?} valueResolver\n * @return {?}\n */\n function (obj1, obj2, key, reverse, ignoreCase, valueResolver) {\n /** @type {?} */\n var a = valueResolver(obj1, key);\n /** @type {?} */\n var b = valueResolver(obj2, key);\n if (ignoreCase) {\n a = a && a.toLowerCase ? a.toLowerCase() : a;\n b = b && b.toLowerCase ? b.toLowerCase() : b;\n }\n return reverse * this.compareValues(a, b);\n };\n /**\n * @protected\n * @param {?} data\n * @param {?=} compareFn\n * @return {?}\n */\n DefaultSortingStrategy.prototype.arraySort = /**\n * @protected\n * @param {?} data\n * @param {?=} compareFn\n * @return {?}\n */\n function (data, compareFn) {\n return data.sort(compareFn);\n };\n DefaultSortingStrategy._instance = null;\n return DefaultSortingStrategy;\n}());\nvar IgxSorting = /** @class */ (function () {\n function IgxSorting() {\n }\n /**\n * @param {?} data\n * @param {?} expressions\n * @return {?}\n */\n IgxSorting.prototype.sort = /**\n * @param {?} data\n * @param {?} expressions\n * @return {?}\n */\n function (data, expressions) {\n return this.sortDataRecursive(data, expressions);\n };\n /**\n * @private\n * @param {?} data\n * @param {?} index\n * @param {?} expression\n * @return {?}\n */\n IgxSorting.prototype.groupedRecordsByExpression = /**\n * @private\n * @param {?} data\n * @param {?} index\n * @param {?} expression\n * @return {?}\n */\n function (data, index, expression) {\n /** @type {?} */\n var i;\n /** @type {?} */\n var groupval;\n /** @type {?} */\n var res = [];\n /** @type {?} */\n var key = expression.fieldName;\n /** @type {?} */\n var len = data.length;\n res.push(data[index]);\n groupval = this.getFieldValue(data[index], key);\n index++;\n /** @type {?} */\n var comparer = expression.groupingComparer || DefaultSortingStrategy.instance().compareValues;\n for (i = index; i < len; i++) {\n if (comparer(this.getFieldValue(data[i], key), groupval) === 0) {\n res.push(data[i]);\n }\n else {\n break;\n }\n }\n return res;\n };\n /**\n * @private\n * @template T\n * @param {?} data\n * @param {?} expressions\n * @param {?=} expressionIndex\n * @return {?}\n */\n IgxSorting.prototype.sortDataRecursive = /**\n * @private\n * @template T\n * @param {?} data\n * @param {?} expressions\n * @param {?=} expressionIndex\n * @return {?}\n */\n function (data, expressions, expressionIndex) {\n if (expressionIndex === void 0) { expressionIndex = 0; }\n /** @type {?} */\n var i;\n /** @type {?} */\n var j;\n /** @type {?} */\n var expr;\n /** @type {?} */\n var gbData;\n /** @type {?} */\n var gbDataLen;\n /** @type {?} */\n var exprsLen = expressions.length;\n /** @type {?} */\n var dataLen = data.length;\n expressionIndex = expressionIndex || 0;\n if (expressionIndex >= exprsLen || dataLen <= 1) {\n return data;\n }\n expr = expressions[expressionIndex];\n if (!expr.strategy) {\n expr.strategy = DefaultSortingStrategy.instance();\n }\n data = expr.strategy.sort(data, expr.fieldName, expr.dir, expr.ignoreCase, this.getFieldValue);\n if (expressionIndex === exprsLen - 1) {\n return data;\n }\n // in case of multiple sorting\n for (i = 0; i < dataLen; i++) {\n gbData = this.groupedRecordsByExpression(data, i, expr);\n gbDataLen = gbData.length;\n if (gbDataLen > 1) {\n gbData = this.sortDataRecursive(gbData, expressions, expressionIndex + 1);\n }\n for (j = 0; j < gbDataLen; j++) {\n data[i + j] = gbData[j];\n }\n i += gbDataLen - 1;\n }\n return data;\n };\n /**\n * @protected\n * @template T\n * @param {?} data\n * @param {?} state\n * @param {?} level\n * @param {?} parent\n * @param {?} metadata\n * @param {?=} grid\n * @param {?=} groupsRecords\n * @param {?=} fullResult\n * @return {?}\n */\n IgxSorting.prototype.groupDataRecursive = /**\n * @protected\n * @template T\n * @param {?} data\n * @param {?} state\n * @param {?} level\n * @param {?} parent\n * @param {?} metadata\n * @param {?=} grid\n * @param {?=} groupsRecords\n * @param {?=} fullResult\n * @return {?}\n */\n function (data, state, level, parent, metadata, grid, groupsRecords, fullResult) {\n if (grid === void 0) { grid = null; }\n if (groupsRecords === void 0) { groupsRecords = []; }\n if (fullResult === void 0) { fullResult = { data: [], metadata: [] }; }\n /** @type {?} */\n var expressions = state.expressions;\n /** @type {?} */\n var expansion = state.expansion;\n /** @type {?} */\n var i = 0;\n /** @type {?} */\n var result = [];\n var _loop_1 = function () {\n var e_1, _a;\n /** @type {?} */\n var group = this_1.groupedRecordsByExpression(data, i, expressions[level]);\n /** @type {?} */\n var groupRow = {\n expression: expressions[level],\n level: level,\n records: cloneArray(group),\n value: group[0][expressions[level].fieldName],\n groupParent: parent,\n groups: [],\n height: grid ? grid.renderedRowHeight : null\n };\n if (parent) {\n parent.groups.push(groupRow);\n }\n else {\n groupsRecords.push(groupRow);\n }\n /** @type {?} */\n var hierarchy = getHierarchy(groupRow);\n /** @type {?} */\n var expandState = expansion.find(function (s) {\n return isHierarchyMatch(s.hierarchy || [{ fieldName: groupRow.expression.fieldName, value: groupRow.value }], hierarchy);\n });\n /** @type {?} */\n var expanded = expandState ? expandState.expanded : state.defaultExpanded;\n /** @type {?} */\n var recursiveResult = void 0;\n result.push(groupRow);\n metadata.push(null);\n fullResult.data.push(groupRow);\n fullResult.metadata.push(null);\n if (level < expressions.length - 1) {\n recursiveResult = this_1.groupDataRecursive(group, state, level + 1, groupRow, expanded ? metadata : [], grid, groupsRecords, fullResult);\n if (expanded) {\n result = result.concat(recursiveResult);\n }\n }\n else {\n try {\n for (var group_1 = __values(group), group_1_1 = group_1.next(); !group_1_1.done; group_1_1 = group_1.next()) {\n var groupItem = group_1_1.value;\n fullResult.metadata.push(groupRow);\n fullResult.data.push(groupItem);\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (group_1_1 && !group_1_1.done && (_a = group_1.return)) _a.call(group_1);\n }\n finally { if (e_1) throw e_1.error; }\n }\n if (expanded) {\n metadata.push.apply(metadata, __spread(fullResult.metadata.slice(fullResult.metadata.length - group.length)));\n result.push.apply(result, __spread(fullResult.data.slice(fullResult.data.length - group.length)));\n }\n }\n i += group.length;\n };\n var this_1 = this;\n while (i < data.length) {\n _loop_1();\n }\n return result;\n };\n /**\n * @protected\n * @param {?} obj\n * @param {?} key\n * @return {?}\n */\n IgxSorting.prototype.getFieldValue = /**\n * @protected\n * @param {?} obj\n * @param {?} key\n * @return {?}\n */\n function (obj, key) {\n return obj[key];\n };\n return IgxSorting;\n}());\nvar IgxDataRecordSorting = /** @class */ (function (_super) {\n __extends(IgxDataRecordSorting, _super);\n function IgxDataRecordSorting() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n /**\n * @protected\n * @param {?} obj\n * @param {?} key\n * @return {?}\n */\n IgxDataRecordSorting.prototype.getFieldValue = /**\n * @protected\n * @param {?} obj\n * @param {?} key\n * @return {?}\n */\n function (obj, key) {\n return obj.data[key];\n };\n return IgxDataRecordSorting;\n}(IgxSorting));\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\nvar IgxGrouping = /** @class */ (function (_super) {\n __extends(IgxGrouping, _super);\n function IgxGrouping() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n /**\n * @param {?} data\n * @param {?} state\n * @param {?=} grid\n * @param {?=} groupsRecords\n * @param {?=} fullResult\n * @return {?}\n */\n IgxGrouping.prototype.groupBy = /**\n * @param {?} data\n * @param {?} state\n * @param {?=} grid\n * @param {?=} groupsRecords\n * @param {?=} fullResult\n * @return {?}\n */\n function (data, state, grid, groupsRecords, fullResult) {\n if (fullResult === void 0) { fullResult = { data: [], metadata: [] }; }\n /** @type {?} */\n var metadata = [];\n /** @type {?} */\n var grouping = this.groupDataRecursive(data, state, 0, null, metadata, grid, groupsRecords, fullResult);\n return {\n data: grouping,\n metadata: metadata\n };\n };\n return IgxGrouping;\n}(IgxSorting));\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n/** @enum {number} */\nvar PagingError = {\n None: 0,\n IncorrectPageIndex: 1,\n IncorrectRecordsPerPage: 2,\n};\nPagingError[PagingError.None] = 'None';\nPagingError[PagingError.IncorrectPageIndex] = 'IncorrectPageIndex';\nPagingError[PagingError.IncorrectRecordsPerPage] = 'IncorrectRecordsPerPage';\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n/** @enum {number} */\nvar FilteringLogic = {\n And: 0,\n Or: 1,\n};\nFilteringLogic[FilteringLogic.And] = 'And';\nFilteringLogic[FilteringLogic.Or] = 'Or';\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n/** @enum {number} */\nvar FilteringExpressionsTreeType = {\n Regular: 0,\n Advanced: 1,\n};\nFilteringExpressionsTreeType[FilteringExpressionsTreeType.Regular] = 'Regular';\nFilteringExpressionsTreeType[FilteringExpressionsTreeType.Advanced] = 'Advanced';\nvar FilteringExpressionsTree = /** @class */ (function () {\n function FilteringExpressionsTree(operator, fieldName) {\n /**\n * Sets/gets the filtering operands.\n * ```typescript\n * const gridExpressionsTree = new FilteringExpressionsTree(FilteringLogic.And);\n * const expression = [\n * {\n * condition: IgxStringFilteringOperand.instance().condition('contains'),\n * fieldName: 'Column Field',\n * searchVal: 'Value',\n * ignoreCase: false\n * }];\n * gridExpressionsTree.filteringOperands.push(expression);\n * this.grid.filteringExpressionsTree = gridExpressionsTree;\n * ```\n * ```typescript\n * let filteringOperands = gridExpressionsTree.filteringOperands;\n * ```\n * \\@memberof FilteringExpressionsTree\n */\n this.filteringOperands = [];\n this.operator = operator;\n this.fieldName = fieldName;\n }\n /**\n * Checks if filtering expressions tree is empty.\n * @param expressionTree filtering expressions tree.\n */\n /**\n * Checks if filtering expressions tree is empty.\n * @param {?} expressionTree filtering expressions tree.\n * @return {?}\n */\n FilteringExpressionsTree.empty = /**\n * Checks if filtering expressions tree is empty.\n * @param {?} expressionTree filtering expressions tree.\n * @return {?}\n */\n function (expressionTree) {\n return !expressionTree || !expressionTree.filteringOperands || !expressionTree.filteringOperands.length;\n };\n /**\n * Returns the filtering expression for a column with the provided fieldName.\n * ```typescript\n * let filteringExpression = gridExpressionTree.find('Column Field');\n * ```\n * @memberof FilteringExpressionsTree\n */\n /**\n * Returns the filtering expression for a column with the provided fieldName.\n * ```typescript\n * let filteringExpression = gridExpressionTree.find('Column Field');\n * ```\n * \\@memberof FilteringExpressionsTree\n * @param {?} fieldName\n * @return {?}\n */\n FilteringExpressionsTree.prototype.find = /**\n * Returns the filtering expression for a column with the provided fieldName.\n * ```typescript\n * let filteringExpression = gridExpressionTree.find('Column Field');\n * ```\n * \\@memberof FilteringExpressionsTree\n * @param {?} fieldName\n * @return {?}\n */\n function (fieldName) {\n /** @type {?} */\n var index = this.findIndex(fieldName);\n if (index > -1) {\n return this.filteringOperands[index];\n }\n return null;\n };\n /**\n * Returns the index of the filtering expression for a column with the provided fieldName.\n * ```typescript\n * let filteringExpressionIndex = gridExpressionTree.findIndex('Column Field');\n * ```\n * @memberof FilteringExpressionsTree\n */\n /**\n * Returns the index of the filtering expression for a column with the provided fieldName.\n * ```typescript\n * let filteringExpressionIndex = gridExpressionTree.findIndex('Column Field');\n * ```\n * \\@memberof FilteringExpressionsTree\n * @param {?} fieldName\n * @return {?}\n */\n FilteringExpressionsTree.prototype.findIndex = /**\n * Returns the index of the filtering expression for a column with the provided fieldName.\n * ```typescript\n * let filteringExpressionIndex = gridExpressionTree.findIndex('Column Field');\n * ```\n * \\@memberof FilteringExpressionsTree\n * @param {?} fieldName\n * @return {?}\n */\n function (fieldName) {\n /** @type {?} */\n var expr;\n for (var i = 0; i < this.filteringOperands.length; i++) {\n expr = this.filteringOperands[i];\n if (expr instanceof FilteringExpressionsTree) {\n if (this.isFilteringExpressionsTreeForColumn(expr, fieldName)) {\n return i;\n }\n }\n else {\n if (((/** @type {?} */ (expr))).fieldName === fieldName) {\n return i;\n }\n }\n }\n return -1;\n };\n /**\n * @protected\n * @param {?} expressionsTree\n * @param {?} fieldName\n * @return {?}\n */\n FilteringExpressionsTree.prototype.isFilteringExpressionsTreeForColumn = /**\n * @protected\n * @param {?} expressionsTree\n * @param {?} fieldName\n * @return {?}\n */\n function (expressionsTree, fieldName) {\n if (expressionsTree.fieldName === fieldName) {\n return true;\n }\n /** @type {?} */\n var expr;\n for (var i = 0; i < expressionsTree.filteringOperands.length; i++) {\n expr = expressionsTree.filteringOperands[i];\n if ((expr instanceof FilteringExpressionsTree)) {\n return this.isFilteringExpressionsTreeForColumn(expr, fieldName);\n }\n else {\n return ((/** @type {?} */ (expr))).fieldName === fieldName;\n }\n }\n return false;\n };\n return FilteringExpressionsTree;\n}());\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n/**\n * @abstract\n */\nvar /**\n * @abstract\n */\nBaseFilteringStrategy = /** @class */ (function () {\n function BaseFilteringStrategy() {\n }\n /**\n * @param {?} rec\n * @param {?} expr\n * @return {?}\n */\n BaseFilteringStrategy.prototype.findMatchByExpression = /**\n * @param {?} rec\n * @param {?} expr\n * @return {?}\n */\n function (rec, expr) {\n /** @type {?} */\n var cond = expr.condition;\n /** @type {?} */\n var val = this.getFieldValue(rec, expr.fieldName);\n return cond.logic(val, expr.searchVal, expr.ignoreCase);\n };\n /**\n * @param {?} rec\n * @param {?} expressions\n * @return {?}\n */\n BaseFilteringStrategy.prototype.matchRecord = /**\n * @param {?} rec\n * @param {?} expressions\n * @return {?}\n */\n function (rec, expressions) {\n if (expressions) {\n if (expressions instanceof FilteringExpressionsTree) {\n /** @type {?} */\n var expressionsTree = (/** @type {?} */ (expressions));\n /** @type {?} */\n var operator = (/** @type {?} */ (expressionsTree.operator));\n /** @type {?} */\n var matchOperand = void 0;\n /** @type {?} */\n var operand = void 0;\n if (expressionsTree.filteringOperands && expressionsTree.filteringOperands.length) {\n for (var i = 0; i < expressionsTree.filteringOperands.length; i++) {\n operand = expressionsTree.filteringOperands[i];\n matchOperand = this.matchRecord(rec, operand);\n // Return false if at least one operand does not match and the filtering logic is And\n if (!matchOperand && operator === FilteringLogic.And) {\n return false;\n }\n // Return true if at least one operand matches and the filtering logic is Or\n if (matchOperand && operator === FilteringLogic.Or) {\n return true;\n }\n }\n return matchOperand;\n }\n return true;\n }\n else {\n /** @type {?} */\n var expression = (/** @type {?} */ (expressions));\n return this.findMatchByExpression(rec, expression);\n }\n }\n return true;\n };\n return BaseFilteringStrategy;\n}());\nvar FilteringStrategy = /** @class */ (function (_super) {\n __extends(FilteringStrategy, _super);\n function FilteringStrategy() {\n return _super.call(this) || this;\n }\n /**\n * @return {?}\n */\n FilteringStrategy.instance = /**\n * @return {?}\n */\n function () {\n return this._instace || (this._instace = new this());\n };\n /**\n * @template T\n * @param {?} data\n * @param {?} expressionsTree\n * @param {?=} advancedExpressionsTree\n * @return {?}\n */\n FilteringStrategy.prototype.filter = /**\n * @template T\n * @param {?} data\n * @param {?} expressionsTree\n * @param {?=} advancedExpressionsTree\n * @return {?}\n */\n function (data, expressionsTree, advancedExpressionsTree) {\n /** @type {?} */\n var i;\n /** @type {?} */\n var rec;\n /** @type {?} */\n var len = data.length;\n /** @type {?} */\n var res = [];\n if ((FilteringExpressionsTree.empty(expressionsTree) && FilteringExpressionsTree.empty(advancedExpressionsTree)) || !len) {\n return data;\n }\n for (i = 0; i < len; i++) {\n rec = data[i];\n if (this.matchRecord(rec, expressionsTree) && this.matchRecord(rec, advancedExpressionsTree)) {\n res.push(rec);\n }\n }\n return res;\n };\n /**\n * @protected\n * @param {?} rec\n * @param {?} fieldName\n * @return {?}\n */\n FilteringStrategy.prototype.getFieldValue = /**\n * @protected\n * @param {?} rec\n * @param {?} fieldName\n * @return {?}\n */\n function (rec, fieldName) {\n return rec[fieldName];\n };\n FilteringStrategy._instace = null;\n return FilteringStrategy;\n}(BaseFilteringStrategy));\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n/** @enum {string} */\nvar TransactionType = {\n ADD: 'add',\n DELETE: 'delete',\n UPDATE: 'update',\n};\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n/** @enum {string} */\nvar DataType = {\n String: 'string',\n Number: 'number',\n Boolean: 'boolean',\n Date: 'date',\n};\n/**\n * @hidden\n */\nvar /**\n * @hidden\n */\nDataUtil = /** @class */ (function () {\n function DataUtil() {\n }\n /**\n * @template T\n * @param {?} data\n * @param {?} expressions\n * @param {?=} sorting\n * @return {?}\n */\n DataUtil.sort = /**\n * @template T\n * @param {?} data\n * @param {?} expressions\n * @param {?=} sorting\n * @return {?}\n */\n function (data, expressions, sorting) {\n if (sorting === void 0) { sorting = new IgxSorting(); }\n return sorting.sort(data, expressions);\n };\n /**\n * @param {?} hierarchicalData\n * @param {?} expressions\n * @param {?=} parent\n * @return {?}\n */\n DataUtil.treeGridSort = /**\n * @param {?} hierarchicalData\n * @param {?} expressions\n * @param {?=} parent\n * @return {?}\n */\n function (hierarchicalData, expressions, parent) {\n /** @type {?} */\n var res = [];\n hierarchicalData.forEach(function (hr) {\n /** @type {?} */\n var rec = DataUtil.cloneTreeGridRecord(hr);\n rec.parent = parent;\n if (rec.children) {\n rec.children = DataUtil.treeGridSort(rec.children, expressions, rec);\n }\n res.push(rec);\n });\n res = DataUtil.sort(res, expressions, new IgxDataRecordSorting());\n return res;\n };\n /**\n * @param {?} hierarchicalRecord\n * @return {?}\n */\n DataUtil.cloneTreeGridRecord = /**\n * @param {?} hierarchicalRecord\n * @return {?}\n */\n function (hierarchicalRecord) {\n /** @type {?} */\n var rec = {\n rowID: hierarchicalRecord.rowID,\n data: hierarchicalRecord.data,\n children: hierarchicalRecord.children,\n isFilteredOutParent: hierarchicalRecord.isFilteredOutParent,\n level: hierarchicalRecord.level,\n expanded: hierarchicalRecord.expanded\n };\n return rec;\n };\n /**\n * @template T\n * @param {?} data\n * @param {?} state\n * @param {?=} grid\n * @param {?=} groupsRecords\n * @param {?=} fullResult\n * @return {?}\n */\n DataUtil.group = /**\n * @template T\n * @param {?} data\n * @param {?} state\n * @param {?=} grid\n * @param {?=} groupsRecords\n * @param {?=} fullResult\n * @return {?}\n */\n function (data, state, grid, groupsRecords, fullResult) {\n if (grid === void 0) { grid = null; }\n if (groupsRecords === void 0) { groupsRecords = []; }\n if (fullResult === void 0) { fullResult = { data: [], metadata: [] }; }\n /** @type {?} */\n var grouping = new IgxGrouping();\n groupsRecords.splice(0, groupsRecords.length);\n return grouping.groupBy(data, state, grid, groupsRecords, fullResult);\n };\n /**\n * @template T\n * @param {?} data\n * @param {?} state\n * @return {?}\n */\n DataUtil.page = /**\n * @template T\n * @param {?} data\n * @param {?} state\n * @return {?}\n */\n function (data, state) {\n if (!state) {\n return data;\n }\n /** @type {?} */\n var len = data.length;\n /** @type {?} */\n var index = state.index;\n /** @type {?} */\n var res = [];\n /** @type {?} */\n var recordsPerPage = state.recordsPerPage;\n state.metadata = {\n countPages: 0,\n countRecords: data.length,\n error: PagingError.None\n };\n if (index < 0 || isNaN(index)) {\n state.metadata.error = PagingError.IncorrectPageIndex;\n return res;\n }\n if (recordsPerPage <= 0 || isNaN(recordsPerPage)) {\n state.metadata.error = PagingError.IncorrectRecordsPerPage;\n return res;\n }\n state.metadata.countPages = Math.ceil(len / recordsPerPage);\n if (!len) {\n return data;\n }\n if (index >= state.metadata.countPages) {\n state.metadata.error = PagingError.IncorrectPageIndex;\n return res;\n }\n return data.slice(index * recordsPerPage, (index + 1) * recordsPerPage);\n };\n /**\n * @template T\n * @param {?} data\n * @param {?} state\n * @return {?}\n */\n DataUtil.filter = /**\n * @template T\n * @param {?} data\n * @param {?} state\n * @return {?}\n */\n function (data, state) {\n if (!state.strategy) {\n state.strategy = new FilteringStrategy();\n }\n return state.strategy.filter(data, state.expressionsTree, state.advancedExpressionsTree);\n };\n /**\n * @param {?} state\n * @param {?} length\n * @return {?}\n */\n DataUtil.correctPagingState = /**\n * @param {?} state\n * @param {?} length\n * @return {?}\n */\n function (state, length) {\n /** @type {?} */\n var maxPage = Math.ceil(length / state.recordsPerPage) - 1;\n if (!isNaN(maxPage) && state.index > maxPage) {\n state.index = maxPage;\n }\n };\n /**\n * @param {?} gRow\n * @return {?}\n */\n DataUtil.getHierarchy = /**\n * @param {?} gRow\n * @return {?}\n */\n function (gRow) {\n return getHierarchy(gRow);\n };\n /**\n * @param {?} h1\n * @param {?} h2\n * @return {?}\n */\n DataUtil.isHierarchyMatch = /**\n * @param {?} h1\n * @param {?} h2\n * @return {?}\n */\n function (h1, h2) {\n return isHierarchyMatch(h1, h2);\n };\n /**\n * Merges all changes from provided transactions into provided data collection\n * @param data Collection to merge\n * @param transactions Transactions to merge into data\n * @param primaryKey Primary key of the collection, if any\n * @param deleteRows Should delete rows with DELETE transaction type from data\n * @returns Provided data collections updated with all provided transactions\n */\n /**\n * Merges all changes from provided transactions into provided data collection\n * @template T\n * @param {?} data Collection to merge\n * @param {?} transactions Transactions to merge into data\n * @param {?=} primaryKey Primary key of the collection, if any\n * @param {?=} deleteRows Should delete rows with DELETE transaction type from data\n * @return {?} Provided data collections updated with all provided transactions\n */\n DataUtil.mergeTransactions = /**\n * Merges all changes from provided transactions into provided data collection\n * @template T\n * @param {?} data Collection to merge\n * @param {?} transactions Transactions to merge into data\n * @param {?=} primaryKey Primary key of the collection, if any\n * @param {?=} deleteRows Should delete rows with DELETE transaction type from data\n * @return {?} Provided data collections updated with all provided transactions\n */\n function (data, transactions, primaryKey, deleteRows) {\n if (deleteRows === void 0) { deleteRows = false; }\n data.forEach(function (item, index) {\n /** @type {?} */\n var rowId = primaryKey ? item[primaryKey] : item;\n /** @type {?} */\n var transaction = transactions.find(function (t) { return t.id === rowId; });\n if (transaction && transaction.type === TransactionType.UPDATE) {\n data[index] = transaction.newValue;\n }\n });\n if (deleteRows) {\n transactions\n .filter(function (t) { return t.type === TransactionType.DELETE; })\n .forEach(function (t) {\n /** @type {?} */\n var index = primaryKey ? data.findIndex(function (d) { return d[primaryKey] === t.id; }) : data.findIndex(function (d) { return d === t.id; });\n if (0 <= index && index < data.length) {\n data.splice(index, 1);\n }\n });\n }\n data.push.apply(data, __spread(transactions\n .filter(function (t) { return t.type === TransactionType.ADD; })\n .map(function (t) { return t.newValue; })));\n return data;\n };\n /**\n * Merges all changes from provided transactions into provided hierarchical data collection\n * @param data Collection to merge\n * @param transactions Transactions to merge into data\n * @param childDataKey Data key of child collections\n * @param primaryKey Primary key of the collection, if any\n * @param deleteRows Should delete rows with DELETE transaction type from data\n * @returns Provided data collections updated with all provided transactions\n */\n /**\n * Merges all changes from provided transactions into provided hierarchical data collection\n * @param {?} data Collection to merge\n * @param {?} transactions Transactions to merge into data\n * @param {?} childDataKey Data key of child collections\n * @param {?=} primaryKey Primary key of the collection, if any\n * @param {?=} deleteRows Should delete rows with DELETE transaction type from data\n * @return {?} Provided data collections updated with all provided transactions\n */\n DataUtil.mergeHierarchicalTransactions = /**\n * Merges all changes from provided transactions into provided hierarchical data collection\n * @param {?} data Collection to merge\n * @param {?} transactions Transactions to merge into data\n * @param {?} childDataKey Data key of child collections\n * @param {?=} primaryKey Primary key of the collection, if any\n * @param {?=} deleteRows Should delete rows with DELETE transaction type from data\n * @return {?} Provided data collections updated with all provided transactions\n */\n function (data, transactions, childDataKey, primaryKey, deleteRows) {\n var e_1, _a;\n if (deleteRows === void 0) { deleteRows = false; }\n var _loop_1 = function (transaction) {\n if (transaction.path) {\n /** @type {?} */\n var parent_1 = this_1.findParentFromPath(data, primaryKey, childDataKey, transaction.path);\n /** @type {?} */\n var collection = parent_1 ? parent_1[childDataKey] : data;\n switch (transaction.type) {\n case TransactionType.ADD:\n // if there is no parent this is ADD row at root level\n if (parent_1 && !parent_1[childDataKey]) {\n parent_1[childDataKey] = collection = [];\n }\n collection.push(transaction.newValue);\n break;\n case TransactionType.UPDATE:\n /** @type {?} */\n var updateIndex = collection.findIndex(function (x) { return x[primaryKey] === transaction.id; });\n if (updateIndex !== -1) {\n collection[updateIndex] = mergeObjects(cloneValue(collection[updateIndex]), transaction.newValue);\n }\n break;\n case TransactionType.DELETE:\n if (deleteRows) {\n /** @type {?} */\n var deleteIndex = collection.findIndex(function (r) { return r[primaryKey] === transaction.id; });\n if (deleteIndex !== -1) {\n collection.splice(deleteIndex, 1);\n }\n }\n break;\n }\n }\n else {\n // if there is no path this is ADD row in root. Push the newValue to data\n data.push(transaction.newValue);\n }\n };\n var this_1 = this;\n try {\n for (var transactions_1 = __values(transactions), transactions_1_1 = transactions_1.next(); !transactions_1_1.done; transactions_1_1 = transactions_1.next()) {\n var transaction = transactions_1_1.value;\n _loop_1(transaction);\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (transactions_1_1 && !transactions_1_1.done && (_a = transactions_1.return)) _a.call(transactions_1);\n }\n finally { if (e_1) throw e_1.error; }\n }\n return data;\n };\n /**\n * @param {?} dataType\n * @param {?} value\n * @return {?}\n */\n DataUtil.parseValue = /**\n * @param {?} dataType\n * @param {?} value\n * @return {?}\n */\n function (dataType, value) {\n if (dataType === DataType.Number) {\n value = parseFloat(value);\n }\n return value;\n };\n /**\n * @private\n * @param {?} data\n * @param {?} primaryKey\n * @param {?} childDataKey\n * @param {?} path\n * @return {?}\n */\n DataUtil.findParentFromPath = /**\n * @private\n * @param {?} data\n * @param {?} primaryKey\n * @param {?} childDataKey\n * @param {?} path\n * @return {?}\n */\n function (data, primaryKey, childDataKey, path) {\n var e_2, _a;\n /** @type {?} */\n var collection = data;\n /** @type {?} */\n var result;\n var _loop_2 = function (id) {\n result = collection && collection.find(function (x) { return x[primaryKey] === id; });\n if (!result) {\n return \"break\";\n }\n collection = result[childDataKey];\n };\n try {\n for (var path_1 = __values(path), path_1_1 = path_1.next(); !path_1_1.done; path_1_1 = path_1.next()) {\n var id = path_1_1.value;\n var state_1 = _loop_2(id);\n if (state_1 === \"break\")\n break;\n }\n }\n catch (e_2_1) { e_2 = { error: e_2_1 }; }\n finally {\n try {\n if (path_1_1 && !path_1_1.done && (_a = path_1.return)) _a.call(path_1);\n }\n finally { if (e_2) throw e_2.error; }\n }\n return result;\n };\n return DataUtil;\n}());\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n/**\n * @hidden\n */\nvar /**\n * @hidden\n */\nExportUtilities = /** @class */ (function () {\n function ExportUtilities() {\n }\n /**\n * @param {?} data\n * @return {?}\n */\n ExportUtilities.getKeysFromData = /**\n * @param {?} data\n * @return {?}\n */\n function (data) {\n /** @type {?} */\n var length = data.length;\n if (length === 0) {\n return [];\n }\n /** @type {?} */\n var dataEntry = data[0];\n /** @type {?} */\n var dataEntryMiddle = data[Math.floor(length / 2)];\n /** @type {?} */\n var dataEntryLast = data[length - 1];\n /** @type {?} */\n var keys1 = Object.keys(dataEntry);\n /** @type {?} */\n var keys2 = Object.keys(dataEntryMiddle);\n /** @type {?} */\n var keys3 = Object.keys(dataEntryLast);\n /** @type {?} */\n var keys = new Set(keys1.concat(keys2).concat(keys3));\n return !ExportUtilities.isSpecialData(data) ? Array.from(keys) : ['Column 1'];\n };\n /**\n * @param {?} blob\n * @param {?} fileName\n * @return {?}\n */\n ExportUtilities.saveBlobToFile = /**\n * @param {?} blob\n * @param {?} fileName\n * @return {?}\n */\n function (blob, fileName) {\n /** @type {?} */\n var a = document.createElement('a');\n if (window.navigator && window.navigator.msSaveOrOpenBlob) {\n window.navigator.msSaveOrOpenBlob(blob, fileName);\n }\n else {\n /** @type {?} */\n var url = window.URL.createObjectURL(blob);\n a.download = fileName;\n a.href = url;\n document.body.appendChild(a);\n a.click();\n document.body.removeChild(a);\n window.URL.revokeObjectURL(url);\n }\n };\n /**\n * @param {?} s\n * @return {?}\n */\n ExportUtilities.stringToArrayBuffer = /**\n * @param {?} s\n * @return {?}\n */\n function (s) {\n /** @type {?} */\n var buf = new ArrayBuffer(s.length);\n /** @type {?} */\n var view = new Uint8Array(buf);\n for (var i = 0; i !== s.length; ++i) {\n /* tslint:disable no-bitwise */\n view[i] = s.charCodeAt(i) & 0xFF;\n /* tslint:enable no-bitwise */\n }\n return buf;\n };\n /**\n * @param {?} data\n * @return {?}\n */\n ExportUtilities.isSpecialData = /**\n * @param {?} data\n * @return {?}\n */\n function (data) {\n /** @type {?} */\n var dataEntry = data[0];\n return (typeof dataEntry === 'string' ||\n typeof dataEntry === 'number' ||\n dataEntry instanceof Date);\n };\n /**\n * @param {?} value\n * @return {?}\n */\n ExportUtilities.hasValue = /**\n * @param {?} value\n * @return {?}\n */\n function (value) {\n return value !== undefined && value !== null;\n };\n /**\n * @param {?} value\n * @return {?}\n */\n ExportUtilities.isNullOrWhitespaces = /**\n * @param {?} value\n * @return {?}\n */\n function (value) {\n return value === undefined || value === null || !value.trim();\n };\n return ExportUtilities;\n}());\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n/**\n * @hidden\n * @template T\n */\nvar GridBaseAPIService = /** @class */ (function () {\n function GridBaseAPIService() {\n this.editCellState = new Map();\n this.editRowState = new Map();\n this.destroyMap = new Map();\n }\n /**\n * @param {?} name\n * @return {?}\n */\n GridBaseAPIService.prototype.get_column_by_name = /**\n * @param {?} name\n * @return {?}\n */\n function (name) {\n return this.grid.columnList.find(function (col) { return col.field === name; });\n };\n /**\n * @return {?}\n */\n GridBaseAPIService.prototype.get_summary_data = /**\n * @return {?}\n */\n function () {\n /** @type {?} */\n var grid = this.grid;\n /** @type {?} */\n var data = grid.filteredData;\n if (!data) {\n if (grid.transactions.enabled) {\n data = DataUtil.mergeTransactions(cloneArray(grid.data), grid.transactions.getAggregatedChanges(true), grid.primaryKey);\n /** @type {?} */\n var deletedRows = grid.transactions.getTransactionLog().filter(function (t) { return t.type === TransactionType.DELETE; }).map(function (t) { return t.id; });\n deletedRows.forEach(function (rowID) {\n /** @type {?} */\n var tempData = grid.primaryKey ? data.map(function (rec) { return rec[grid.primaryKey]; }) : data;\n /** @type {?} */\n var index = tempData.indexOf(rowID);\n if (index !== -1) {\n data.splice(index, 1);\n }\n });\n }\n else {\n data = grid.data;\n }\n }\n return data;\n };\n /**\n * @hidden\n * @internal\n */\n /**\n * @hidden\n * \\@internal\n * @param {?} rowID\n * @return {?}\n */\n GridBaseAPIService.prototype.getRowData = /**\n * @hidden\n * \\@internal\n * @param {?} rowID\n * @return {?}\n */\n function (rowID) {\n /** @type {?} */\n var data = this.get_all_data(this.grid.transactions.enabled);\n /** @type {?} */\n var index = this.get_row_index_in_data(rowID);\n return data[index];\n };\n // TODO: Refactor\n // TODO: Refactor\n /**\n * @return {?}\n */\n GridBaseAPIService.prototype.escape_editMode = \n // TODO: Refactor\n /**\n * @return {?}\n */\n function () {\n this.grid.crudService.end();\n };\n // TODO: Refactor\n // TODO: Refactor\n /**\n * @return {?}\n */\n GridBaseAPIService.prototype.get_cell_inEditMode = \n // TODO: Refactor\n /**\n * @return {?}\n */\n function () {\n return this.grid.crudService.cell;\n };\n /**\n * @param {?} rowID\n * @return {?}\n */\n GridBaseAPIService.prototype.get_row_index_in_data = /**\n * @param {?} rowID\n * @return {?}\n */\n function (rowID) {\n /** @type {?} */\n var grid = (/** @type {?} */ (this.grid));\n if (!grid) {\n return -1;\n }\n /** @type {?} */\n var data = this.get_all_data(grid.transactions.enabled);\n return grid.primaryKey ? data.findIndex(function (record) { return record[grid.primaryKey] === rowID; }) : data.indexOf(rowID);\n };\n /**\n * @param {?} rowSelector\n * @return {?}\n */\n GridBaseAPIService.prototype.get_row_by_key = /**\n * @param {?} rowSelector\n * @return {?}\n */\n function (rowSelector) {\n /** @type {?} */\n var primaryKey = this.grid.primaryKey;\n if (primaryKey !== undefined && primaryKey !== null) {\n return this.grid.dataRowList.find(function (row) { return row.rowData[primaryKey] === rowSelector; });\n }\n else {\n return this.grid.dataRowList.find(function (row) { return row.rowData === rowSelector; });\n }\n };\n /**\n * @param {?} rowIndex\n * @return {?}\n */\n GridBaseAPIService.prototype.get_row_by_index = /**\n * @param {?} rowIndex\n * @return {?}\n */\n function (rowIndex) {\n return this.grid.rowList.find(function (row) { return row.index === rowIndex; });\n };\n /**\n * @param {?} rowSelector\n * @param {?} field\n * @return {?}\n */\n GridBaseAPIService.prototype.get_cell_by_key = /**\n * @param {?} rowSelector\n * @param {?} field\n * @return {?}\n */\n function (rowSelector, field) {\n /** @type {?} */\n var row = this.get_row_by_key(rowSelector);\n if (row && row.cells) {\n return row.cells.find(function (cell) { return cell.column.field === field; });\n }\n };\n /**\n * @param {?} rowIndex\n * @param {?} columnIndex\n * @return {?}\n */\n GridBaseAPIService.prototype.get_cell_by_index = /**\n * @param {?} rowIndex\n * @param {?} columnIndex\n * @return {?}\n */\n function (rowIndex, columnIndex) {\n /** @type {?} */\n var row = this.get_row_by_index(rowIndex);\n if (row && row.cells) {\n return row.cells.find(function (cell) { return cell.columnIndex === columnIndex; });\n }\n };\n /**\n * @param {?} rowIndex\n * @param {?} columnIndex\n * @return {?}\n */\n GridBaseAPIService.prototype.get_cell_by_visible_index = /**\n * @param {?} rowIndex\n * @param {?} columnIndex\n * @return {?}\n */\n function (rowIndex, columnIndex) {\n /** @type {?} */\n var row = this.get_row_by_index(rowIndex);\n if (row && row.cells) {\n return row.cells.find(function (cell) { return cell.visibleColumnIndex === columnIndex; });\n }\n };\n /**\n * @return {?}\n */\n GridBaseAPIService.prototype.submit_value = /**\n * @return {?}\n */\n function () {\n /** @type {?} */\n var cell = this.grid.crudService.cell;\n if (cell) {\n /** @type {?} */\n var args = this.update_cell(cell, cell.editValue);\n if (args.cancel) {\n return;\n }\n this.escape_editMode();\n }\n };\n /**\n * @param {?} cell\n * @param {?} value\n * @return {?}\n */\n GridBaseAPIService.prototype.update_cell = /**\n * @param {?} cell\n * @param {?} value\n * @return {?}\n */\n function (cell, value) {\n var _a;\n /** @type {?} */\n var data = this.get_all_data(this.grid.transactions.enabled);\n /** @type {?} */\n var index = this.get_row_index_in_data(cell.id.rowID);\n cell.editValue = value;\n /** @type {?} */\n var args = cell.createEditEventArgs();\n this.grid.onCellEdit.emit(args);\n if (args.cancel) {\n return args;\n }\n // Cast to number after emit\n // TODO: Clean up this\n args.newValue = cell.castToNumber(args.newValue);\n if (isEqual(args.oldValue, args.newValue)) {\n return args;\n }\n this.grid.summaryService.clearSummaryCache(args);\n this.updateData(this.grid, cell.id.rowID, data[index], cell.rowData, (_a = {}, _a[cell.column.field] = args.newValue, _a));\n if (this.grid.primaryKey === cell.column.field) {\n if (this.grid.selectionService.isRowSelected(cell.id.rowID)) {\n this.grid.selectionService.deselectRow(cell.id.rowID);\n this.grid.selectionService.selectRowById(args.newValue);\n }\n if (this.grid.hasSummarizedColumns) {\n this.grid.summaryService.removeSummaries(cell.id.rowID);\n }\n }\n if (!this.grid.rowEditable || !this.grid.crudService.row ||\n this.grid.crudService.row.id !== cell.id.rowID || !this.grid.transactions.enabled) {\n this.grid.summaryService.clearSummaryCache(args);\n ((/** @type {?} */ (this.grid)))._pipeTrigger++;\n }\n return args;\n };\n /**\n * Updates related row of provided grid's data source with provided new row value\n * @param grid Grid to update data for\n * @param rowID ID of the row to update\n * @param rowValueInDataSource Initial value of the row as it is in data source\n * @param rowCurrentValue Current value of the row as it is with applied previous transactions\n * @param rowNewValue New value of the row\n */\n /**\n * Updates related row of provided grid's data source with provided new row value\n * @protected\n * @param {?} grid Grid to update data for\n * @param {?} rowID ID of the row to update\n * @param {?} rowValueInDataSource Initial value of the row as it is in data source\n * @param {?} rowCurrentValue Current value of the row as it is with applied previous transactions\n * @param {?} rowNewValue New value of the row\n * @return {?}\n */\n GridBaseAPIService.prototype.updateData = /**\n * Updates related row of provided grid's data source with provided new row value\n * @protected\n * @param {?} grid Grid to update data for\n * @param {?} rowID ID of the row to update\n * @param {?} rowValueInDataSource Initial value of the row as it is in data source\n * @param {?} rowCurrentValue Current value of the row as it is with applied previous transactions\n * @param {?} rowNewValue New value of the row\n * @return {?}\n */\n function (grid, rowID, rowValueInDataSource, rowCurrentValue, rowNewValue) {\n if (grid.transactions.enabled) {\n /** @type {?} */\n var transaction = {\n id: rowID,\n type: TransactionType.UPDATE,\n newValue: rowNewValue\n };\n grid.transactions.add(transaction, rowCurrentValue);\n }\n else {\n mergeObjects(rowValueInDataSource, rowNewValue);\n }\n };\n /**\n * @param {?} row\n * @param {?=} value\n * @return {?}\n */\n GridBaseAPIService.prototype._update_row = /**\n * @param {?} row\n * @param {?=} value\n * @return {?}\n */\n function (row, value) {\n /** @type {?} */\n var grid = this.grid;\n /** @type {?} */\n var rowInEditMode = grid.crudService.row;\n row.newData = value ? value : grid.transactions.getAggregatedValue(row.id, true);\n if (rowInEditMode && row.id === rowInEditMode.id) {\n row.data = __assign({}, row.data, rowInEditMode.transactionState);\n // TODO: Workaround for updating a row in edit mode through the API\n }\n else if (this.grid.transactions.enabled) {\n /** @type {?} */\n var state = grid.transactions.getState(row.id);\n row.data = state ? Object.assign({}, row.data, state.value) : row.data;\n }\n };\n /**\n * @param {?} row\n * @param {?} value\n * @return {?}\n */\n GridBaseAPIService.prototype.update_row = /**\n * @param {?} row\n * @param {?} value\n * @return {?}\n */\n function (row, value) {\n /** @type {?} */\n var grid = this.grid;\n /** @type {?} */\n var selected = grid.selectionService.isRowSelected(row.id);\n /** @type {?} */\n var rowInEditMode = grid.crudService.row;\n /** @type {?} */\n var data = this.get_all_data(grid.transactions.enabled);\n /** @type {?} */\n var index = this.get_row_index_in_data(row.id);\n /** @type {?} */\n var hasSummarized = grid.hasSummarizedColumns;\n this._update_row(row, value);\n /** @type {?} */\n var args = row.createEditEventArgs();\n // If no valid row is found\n if (index === -1) {\n return args;\n }\n grid.onRowEdit.emit(args);\n if (args.cancel) {\n return args;\n }\n if (rowInEditMode) {\n /** @type {?} */\n var hasChanges = grid.transactions.getState(args.rowID, true);\n grid.transactions.endPending(false);\n if (!hasChanges) {\n return args;\n }\n }\n if (!args.newValue) {\n return args;\n }\n if (hasSummarized) {\n grid.summaryService.removeSummaries(args.rowID);\n }\n this.updateData(grid, row.id, data[index], args.oldValue, args.newValue);\n /** @type {?} */\n var newId = grid.primaryKey ? args.newValue[grid.primaryKey] : args.newValue;\n if (selected) {\n grid.selectionService.deselectRow(row.id);\n grid.selectionService.selectRowById(newId);\n }\n if (hasSummarized) {\n grid.summaryService.removeSummaries(newId);\n }\n ((/** @type {?} */ (grid)))._pipeTrigger++;\n return args;\n };\n /**\n * @protected\n * @param {?} value\n * @param {?} rowID\n * @param {?} index\n * @return {?}\n */\n GridBaseAPIService.prototype.update_row_in_array = /**\n * @protected\n * @param {?} value\n * @param {?} rowID\n * @param {?} index\n * @return {?}\n */\n function (value, rowID, index) {\n /** @type {?} */\n var grid = this.grid;\n grid.data[index] = value;\n };\n /**\n * @param {?} expression\n * @return {?}\n */\n GridBaseAPIService.prototype.sort = /**\n * @param {?} expression\n * @return {?}\n */\n function (expression) {\n if (expression.dir === SortingDirection.None) {\n this.remove_grouping_expression(expression.fieldName);\n }\n /** @type {?} */\n var sortingState = cloneArray(this.grid.sortingExpressions);\n this.prepare_sorting_expression([sortingState], expression);\n this.grid.sortingExpressions = sortingState;\n };\n /**\n * @param {?} expressions\n * @return {?}\n */\n GridBaseAPIService.prototype.sort_multiple = /**\n * @param {?} expressions\n * @return {?}\n */\n function (expressions) {\n var e_1, _a;\n /** @type {?} */\n var sortingState = cloneArray(this.grid.sortingExpressions);\n try {\n for (var expressions_1 = __values(expressions), expressions_1_1 = expressions_1.next(); !expressions_1_1.done; expressions_1_1 = expressions_1.next()) {\n var each = expressions_1_1.value;\n if (each.dir === SortingDirection.None) {\n this.remove_grouping_expression(each.fieldName);\n }\n this.prepare_sorting_expression([sortingState], each);\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (expressions_1_1 && !expressions_1_1.done && (_a = expressions_1.return)) _a.call(expressions_1);\n }\n finally { if (e_1) throw e_1.error; }\n }\n this.grid.sortingExpressions = sortingState;\n };\n /**\n * @param {?} fieldName\n * @param {?} term\n * @param {?} conditionOrExpressionsTree\n * @param {?} ignoreCase\n * @return {?}\n */\n GridBaseAPIService.prototype.filter = /**\n * @param {?} fieldName\n * @param {?} term\n * @param {?} conditionOrExpressionsTree\n * @param {?} ignoreCase\n * @return {?}\n */\n function (fieldName, term, conditionOrExpressionsTree, ignoreCase) {\n /** @type {?} */\n var grid = this.grid;\n /** @type {?} */\n var filteringTree = grid.filteringExpressionsTree;\n grid.endEdit(false);\n if (grid.paging) {\n grid.page = 0;\n }\n /** @type {?} */\n var fieldFilterIndex = filteringTree.findIndex(fieldName);\n if (fieldFilterIndex > -1) {\n filteringTree.filteringOperands.splice(fieldFilterIndex, 1);\n }\n this.prepare_filtering_expression(filteringTree, fieldName, term, conditionOrExpressionsTree, ignoreCase, fieldFilterIndex);\n grid.filteringExpressionsTree = filteringTree;\n };\n /**\n * @param {?} term\n * @param {?} condition\n * @param {?} ignoreCase\n * @return {?}\n */\n GridBaseAPIService.prototype.filter_global = /**\n * @param {?} term\n * @param {?} condition\n * @param {?} ignoreCase\n * @return {?}\n */\n function (term, condition, ignoreCase) {\n var e_2, _a;\n if (!condition) {\n return;\n }\n /** @type {?} */\n var grid = this.grid;\n /** @type {?} */\n var filteringTree = grid.filteringExpressionsTree;\n grid.endEdit(false);\n if (grid.paging) {\n grid.page = 0;\n }\n filteringTree.filteringOperands = [];\n try {\n for (var _b = __values(grid.columns), _c = _b.next(); !_c.done; _c = _b.next()) {\n var column = _c.value;\n this.prepare_filtering_expression(filteringTree, column.field, term, condition, ignoreCase || column.filteringIgnoreCase);\n }\n }\n catch (e_2_1) { e_2 = { error: e_2_1 }; }\n finally {\n try {\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n }\n finally { if (e_2) throw e_2.error; }\n }\n grid.filteringExpressionsTree = filteringTree;\n };\n /**\n * @param {?} fieldName\n * @return {?}\n */\n GridBaseAPIService.prototype.clear_filter = /**\n * @param {?} fieldName\n * @return {?}\n */\n function (fieldName) {\n /** @type {?} */\n var grid = this.grid;\n grid.endEdit(false);\n /** @type {?} */\n var filteringState = grid.filteringExpressionsTree;\n /** @type {?} */\n var index = filteringState.findIndex(fieldName);\n if (index > -1) {\n filteringState.filteringOperands.splice(index, 1);\n }\n else if (!fieldName) {\n filteringState.filteringOperands = [];\n }\n grid.filteringExpressionsTree = filteringState;\n };\n /**\n * @param {?} fieldName\n * @return {?}\n */\n GridBaseAPIService.prototype.clear_sort = /**\n * @param {?} fieldName\n * @return {?}\n */\n function (fieldName) {\n /** @type {?} */\n var sortingState = this.grid.sortingExpressions;\n /** @type {?} */\n var index = sortingState.findIndex(function (expr) { return expr.fieldName === fieldName; });\n if (index > -1) {\n sortingState.splice(index, 1);\n this.grid.sortingExpressions = sortingState;\n }\n };\n /**\n * @protected\n * @param {?} filteringState\n * @param {?} fieldName\n * @param {?} searchVal\n * @param {?} conditionOrExpressionsTree\n * @param {?} ignoreCase\n * @param {?=} insertAtIndex\n * @return {?}\n */\n GridBaseAPIService.prototype.prepare_filtering_expression = /**\n * @protected\n * @param {?} filteringState\n * @param {?} fieldName\n * @param {?} searchVal\n * @param {?} conditionOrExpressionsTree\n * @param {?} ignoreCase\n * @param {?=} insertAtIndex\n * @return {?}\n */\n function (filteringState, fieldName, searchVal, conditionOrExpressionsTree, ignoreCase, insertAtIndex) {\n if (insertAtIndex === void 0) { insertAtIndex = -1; }\n /** @type {?} */\n var newExpressionsTree;\n /** @type {?} */\n var oldExpressionsTreeIndex = filteringState.findIndex(fieldName);\n /** @type {?} */\n var expressionsTree = conditionOrExpressionsTree instanceof FilteringExpressionsTree ?\n (/** @type {?} */ (conditionOrExpressionsTree)) : null;\n /** @type {?} */\n var condition = conditionOrExpressionsTree instanceof FilteringExpressionsTree ?\n null : (/** @type {?} */ (conditionOrExpressionsTree));\n /** @type {?} */\n var newExpression = { fieldName: fieldName, searchVal: searchVal, condition: condition, ignoreCase: ignoreCase };\n if (oldExpressionsTreeIndex === -1) {\n // no expressions tree found for this field\n if (expressionsTree) {\n if (insertAtIndex > -1) {\n filteringState.filteringOperands.splice(insertAtIndex, 0, expressionsTree);\n }\n else {\n filteringState.filteringOperands.push(expressionsTree);\n }\n }\n else if (condition) {\n // create expressions tree for this field and add the new expression to it\n newExpressionsTree = new FilteringExpressionsTree(filteringState.operator, fieldName);\n newExpressionsTree.filteringOperands.push(newExpression);\n filteringState.filteringOperands.push(newExpressionsTree);\n }\n }\n };\n /**\n * @protected\n * @param {?} stateCollections\n * @param {?} expression\n * @return {?}\n */\n GridBaseAPIService.prototype.prepare_sorting_expression = /**\n * @protected\n * @param {?} stateCollections\n * @param {?} expression\n * @return {?}\n */\n function (stateCollections, expression) {\n if (expression.dir === SortingDirection.None) {\n stateCollections.forEach(function (state) {\n state.splice(state.findIndex(function (expr) { return expr.fieldName === expression.fieldName; }), 1);\n });\n return;\n }\n /**\n * We need to make sure the states in each collection with same fields point to the same object reference.\n * If the different state collections provided have different sizes we need to get the largest one.\n * That way we can get the state reference from the largest one that has the same fieldName as the expression to prepare.\n * @type {?}\n */\n var maxCollection = stateCollections[0];\n for (var i = 1; i < stateCollections.length; i++) {\n if (maxCollection.length < stateCollections[i].length) {\n maxCollection = stateCollections[i];\n }\n }\n /** @type {?} */\n var maxExpr = maxCollection.find(function (expr) { return expr.fieldName === expression.fieldName; });\n stateCollections.forEach(function (collection) {\n /** @type {?} */\n var myExpr = collection.find(function (expr) { return expr.fieldName === expression.fieldName; });\n if (!myExpr && !maxExpr) {\n // Expression with this fieldName is missing from the current and the max collection.\n collection.push(expression);\n }\n else if (!myExpr && maxExpr) {\n // Expression with this fieldName is missing from the current and but the max collection has.\n collection.push(maxExpr);\n Object.assign(maxExpr, expression);\n }\n else {\n // The current collection has the expression so just update it.\n Object.assign(myExpr, expression);\n }\n });\n };\n /**\n * @protected\n * @param {?} fieldName\n * @return {?}\n */\n GridBaseAPIService.prototype.remove_grouping_expression = /**\n * @protected\n * @param {?} fieldName\n * @return {?}\n */\n function (fieldName) {\n };\n /**\n * @param {?=} name\n * @return {?}\n */\n GridBaseAPIService.prototype.clear_groupby = /**\n * @param {?=} name\n * @return {?}\n */\n function (name) {\n };\n /**\n * @param {?} column\n * @return {?}\n */\n GridBaseAPIService.prototype.should_apply_number_style = /**\n * @param {?} column\n * @return {?}\n */\n function (column) {\n return column.dataType === DataType.Number;\n };\n /**\n * @return {?}\n */\n GridBaseAPIService.prototype.get_data = /**\n * @return {?}\n */\n function () {\n /** @type {?} */\n var grid = this.grid;\n /** @type {?} */\n var data = grid.data ? grid.data : [];\n return data;\n };\n /**\n * @param {?=} includeTransactions\n * @return {?}\n */\n GridBaseAPIService.prototype.get_all_data = /**\n * @param {?=} includeTransactions\n * @return {?}\n */\n function (includeTransactions) {\n if (includeTransactions === void 0) { includeTransactions = false; }\n /** @type {?} */\n var grid = this.grid;\n /** @type {?} */\n var data = grid.data ? grid.data : [];\n data = includeTransactions ? grid.dataWithAddedInTransactionRows : data;\n return data;\n };\n /**\n * @return {?}\n */\n GridBaseAPIService.prototype.get_filtered_data = /**\n * @return {?}\n */\n function () {\n return this.grid.filteredData;\n };\n /**\n * @protected\n * @param {?} fieldName\n * @return {?}\n */\n GridBaseAPIService.prototype.getSortStrategyPerColumn = /**\n * @protected\n * @param {?} fieldName\n * @return {?}\n */\n function (fieldName) {\n return this.get_column_by_name(fieldName) ?\n this.get_column_by_name(fieldName).sortStrategy : undefined;\n };\n /**\n * @param {?} rowData\n * @return {?}\n */\n GridBaseAPIService.prototype.addRowToData = /**\n * @param {?} rowData\n * @return {?}\n */\n function (rowData) {\n // Add row goes to transactions and if rowEditable is properly implemented, added rows will go to pending transactions\n // If there is a row in edit - > commit and close\n /** @type {?} */\n var grid = this.grid;\n if (grid.transactions.enabled) {\n /** @type {?} */\n var transactionId = grid.primaryKey ? rowData[grid.primaryKey] : rowData;\n /** @type {?} */\n var transaction = { id: transactionId, type: TransactionType.ADD, newValue: rowData };\n grid.transactions.add(transaction);\n }\n else {\n grid.data.push(rowData);\n }\n };\n /**\n * @param {?} rowID\n * @param {?} index\n * @return {?}\n */\n GridBaseAPIService.prototype.deleteRowFromData = /**\n * @param {?} rowID\n * @param {?} index\n * @return {?}\n */\n function (rowID, index) {\n // if there is a row (index !== 0) delete it\n // if there is a row in ADD or UPDATE state change it's state to DELETE\n /** @type {?} */\n var grid = this.grid;\n if (index !== -1) {\n if (grid.transactions.enabled) {\n /** @type {?} */\n var transaction = { id: rowID, type: TransactionType.DELETE, newValue: null };\n grid.transactions.add(transaction, grid.data[index]);\n }\n else {\n grid.data.splice(index, 1);\n }\n }\n else {\n /** @type {?} */\n var state = grid.transactions.getState(rowID);\n grid.transactions.add({ id: rowID, type: TransactionType.DELETE, newValue: null }, state && state.recordRef);\n }\n };\n /**\n * @param {?} rowId\n * @return {?}\n */\n GridBaseAPIService.prototype.deleteRowById = /**\n * @param {?} rowId\n * @return {?}\n */\n function (rowId) {\n /** @type {?} */\n var index;\n /** @type {?} */\n var grid = this.grid;\n /** @type {?} */\n var data = this.get_all_data();\n if (grid.primaryKey) {\n index = data.map(function (record) { return record[grid.primaryKey]; }).indexOf(rowId);\n }\n else {\n index = data.indexOf(rowId);\n }\n /** @type {?} */\n var state = grid.transactions.getState(rowId);\n /** @type {?} */\n var hasRowInNonDeletedState = state && state.type !== TransactionType.DELETE;\n // if there is a row (index !== -1) and the we have cell in edit mode on same row exit edit mode\n // if there is no row (index === -1), but there is a row in ADD or UPDATE state do as above\n // Otherwise just exit - there is nothing to delete\n if (index !== -1 || hasRowInNonDeletedState) {\n // Always exit edit when row is deleted\n grid.endEdit(true);\n }\n else {\n return;\n }\n // TODO: should we emit this when cascadeOnDelete is true for each row?!?!\n grid.onRowDeleted.emit({ data: data[index] });\n this.deleteRowFromData(rowId, index);\n grid.selectionService.isRowSelected(rowId) ? grid.selectionService.deselectRow(rowId) : grid.selectionService.clearHeaderCBState();\n ((/** @type {?} */ (grid)))._pipeTrigger++;\n grid.notifyChanges();\n // Data needs to be recalculated if transactions are in place\n // If no transactions, `data` will be a reference to the grid getter, otherwise it will be stale\n /** @type {?} */\n var dataAfterDelete = grid.transactions.enabled ? grid.dataWithAddedInTransactionRows : data;\n grid.refreshSearch();\n if (dataAfterDelete.length % grid.perPage === 0 && dataAfterDelete.length / grid.perPage - 1 < grid.page && grid.page !== 0) {\n grid.page--;\n }\n };\n /**\n * @param {?} rowData\n * @return {?}\n */\n GridBaseAPIService.prototype.get_row_id = /**\n * @param {?} rowData\n * @return {?}\n */\n function (rowData) {\n return this.grid.primaryKey ? rowData[this.grid.primaryKey] : rowData;\n };\n /**\n * @param {?} rowID\n * @return {?}\n */\n GridBaseAPIService.prototype.row_deleted_transaction = /**\n * @param {?} rowID\n * @return {?}\n */\n function (rowID) {\n /** @type {?} */\n var grid = this.grid;\n if (!grid) {\n return false;\n }\n if (!grid.transactions.enabled) {\n return false;\n }\n /** @type {?} */\n var state = grid.transactions.getState(rowID);\n if (state) {\n return state.type === TransactionType.DELETE;\n }\n return false;\n };\n /**\n * @return {?}\n */\n GridBaseAPIService.prototype.atInexistingPage = /**\n * @return {?}\n */\n function () {\n return this.grid.totalPages - 1 > this.grid.page;\n };\n GridBaseAPIService.decorators = [\n { type: Injectable }\n ];\n return GridBaseAPIService;\n}());\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n/**\n * @hidden\n */\nvar /**\n * @hidden\n */\nTreeGridFilteringStrategy = /** @class */ (function (_super) {\n __extends(TreeGridFilteringStrategy, _super);\n function TreeGridFilteringStrategy() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n /**\n * @param {?} data\n * @param {?} expressionsTree\n * @param {?=} advancedExpressionsTree\n * @return {?}\n */\n TreeGridFilteringStrategy.prototype.filter = /**\n * @param {?} data\n * @param {?} expressionsTree\n * @param {?=} advancedExpressionsTree\n * @return {?}\n */\n function (data, expressionsTree, advancedExpressionsTree) {\n return this.filterImpl(data, expressionsTree, advancedExpressionsTree, undefined);\n };\n /**\n * @private\n * @param {?} data\n * @param {?} expressionsTree\n * @param {?} advancedExpressionsTree\n * @param {?} parent\n * @return {?}\n */\n TreeGridFilteringStrategy.prototype.filterImpl = /**\n * @private\n * @param {?} data\n * @param {?} expressionsTree\n * @param {?} advancedExpressionsTree\n * @param {?} parent\n * @return {?}\n */\n function (data, expressionsTree, advancedExpressionsTree, parent) {\n /** @type {?} */\n var i;\n /** @type {?} */\n var rec;\n /** @type {?} */\n var len = data.length;\n /** @type {?} */\n var res = [];\n if ((FilteringExpressionsTree.empty(expressionsTree) && FilteringExpressionsTree.empty(advancedExpressionsTree)) || !len) {\n return data;\n }\n for (i = 0; i < len; i++) {\n rec = DataUtil.cloneTreeGridRecord(data[i]);\n rec.parent = parent;\n if (rec.children) {\n /** @type {?} */\n var filteredChildren = this.filterImpl(rec.children, expressionsTree, advancedExpressionsTree, rec);\n rec.children = filteredChildren.length > 0 ? filteredChildren : null;\n }\n if (this.matchRecord(rec, expressionsTree) && this.matchRecord(rec, advancedExpressionsTree)) {\n res.push(rec);\n }\n else if (rec.children && rec.children.length > 0) {\n rec.isFilteredOutParent = true;\n res.push(rec);\n }\n }\n return res;\n };\n /**\n * @protected\n * @param {?} rec\n * @param {?} fieldName\n * @return {?}\n */\n TreeGridFilteringStrategy.prototype.getFieldValue = /**\n * @protected\n * @param {?} rec\n * @param {?} fieldName\n * @return {?}\n */\n function (rec, fieldName) {\n /** @type {?} */\n var hierarchicalRecord = (/** @type {?} */ (rec));\n return hierarchicalRecord.data[fieldName];\n };\n return TreeGridFilteringStrategy;\n}(BaseFilteringStrategy));\n/**\n * @hidden\n */\nvar IgxTreeGridFilteringPipe = /** @class */ (function () {\n function IgxTreeGridFilteringPipe(gridAPI) {\n this.gridAPI = (/** @type {?} */ (gridAPI));\n }\n /**\n * @param {?} hierarchyData\n * @param {?} expressionsTree\n * @param {?} filterStrategy\n * @param {?} advancedFilteringExpressionsTree\n * @param {?} id\n * @param {?} pipeTrigger\n * @param {?} filteringPipeTrigger\n * @return {?}\n */\n IgxTreeGridFilteringPipe.prototype.transform = /**\n * @param {?} hierarchyData\n * @param {?} expressionsTree\n * @param {?} filterStrategy\n * @param {?} advancedFilteringExpressionsTree\n * @param {?} id\n * @param {?} pipeTrigger\n * @param {?} filteringPipeTrigger\n * @return {?}\n */\n function (hierarchyData, expressionsTree, filterStrategy, advancedFilteringExpressionsTree, id, pipeTrigger, filteringPipeTrigger) {\n /** @type {?} */\n var grid = this.gridAPI.grid;\n /** @type {?} */\n var state = {\n expressionsTree: expressionsTree,\n advancedExpressionsTree: advancedFilteringExpressionsTree,\n strategy: new TreeGridFilteringStrategy()\n };\n if (filterStrategy) {\n state.strategy = filterStrategy;\n }\n this.resetFilteredOutProperty(grid.records);\n if (FilteringExpressionsTree.empty(state.expressionsTree) && FilteringExpressionsTree.empty(state.advancedExpressionsTree)) {\n grid.filteredData = null;\n return hierarchyData;\n }\n /** @type {?} */\n var result = this.filter(hierarchyData, state);\n /** @type {?} */\n var filteredData = [];\n this.expandAllRecursive(grid, result, grid.expansionStates, filteredData);\n grid.filteredData = filteredData;\n return result;\n };\n /**\n * @private\n * @param {?} map\n * @return {?}\n */\n IgxTreeGridFilteringPipe.prototype.resetFilteredOutProperty = /**\n * @private\n * @param {?} map\n * @return {?}\n */\n function (map) {\n /** @type {?} */\n var keys = Array.from(map.keys());\n for (var i = 0; i < keys.length; i++) {\n map.get(keys[i]).isFilteredOutParent = undefined;\n }\n };\n /**\n * @private\n * @param {?} grid\n * @param {?} data\n * @param {?} expandedStates\n * @param {?} filteredData\n * @return {?}\n */\n IgxTreeGridFilteringPipe.prototype.expandAllRecursive = /**\n * @private\n * @param {?} grid\n * @param {?} data\n * @param {?} expandedStates\n * @param {?} filteredData\n * @return {?}\n */\n function (grid, data, expandedStates, filteredData) {\n for (var i = 0; i < data.length; i++) {\n /** @type {?} */\n var rec = data[i];\n filteredData.push(rec.data);\n this.updateNonProcessedRecord(grid, rec);\n if (rec.children && rec.children.length > 0) {\n expandedStates.set(rec.rowID, true);\n this.expandAllRecursive(grid, rec.children, expandedStates, filteredData);\n }\n }\n };\n /**\n * @private\n * @param {?} grid\n * @param {?} record\n * @return {?}\n */\n IgxTreeGridFilteringPipe.prototype.updateNonProcessedRecord = /**\n * @private\n * @param {?} grid\n * @param {?} record\n * @return {?}\n */\n function (grid, record) {\n /** @type {?} */\n var rec = grid.records.get(record.rowID);\n rec.isFilteredOutParent = record.isFilteredOutParent;\n };\n /**\n * @private\n * @param {?} data\n * @param {?} state\n * @return {?}\n */\n IgxTreeGridFilteringPipe.prototype.filter = /**\n * @private\n * @param {?} data\n * @param {?} state\n * @return {?}\n */\n function (data, state) {\n return state.strategy.filter(data, state.expressionsTree, state.advancedExpressionsTree);\n };\n IgxTreeGridFilteringPipe.decorators = [\n { type: Pipe, args: [{\n name: 'treeGridFiltering',\n pure: true\n },] }\n ];\n /** @nocollapse */\n IgxTreeGridFilteringPipe.ctorParameters = function () { return [\n { type: GridBaseAPIService }\n ]; };\n return IgxTreeGridFilteringPipe;\n}());\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n/**\n * @abstract\n */\nvar IgxBaseExporter = /** @class */ (function () {\n function IgxBaseExporter() {\n this.flatRecords = [];\n this._isTreeGrid = false;\n this._indexOfLastPinnedColumn = -1;\n this._sort = null;\n /**\n * This event is emitted when a row is exported.\n * ```typescript\n * this.exporterService.onRowExport.subscribe((args: IRowExportingEventArgs) => {\n * // put event handler code here\n * });\n * ```\n * \\@memberof IgxBaseExporter\n */\n this.onRowExport = new EventEmitter();\n /**\n * This event is emitted when a column is exported.\n * ```typescript\n * this.exporterService.onColumnExport.subscribe((args: IColumnExportingEventArgs) => {\n * // put event handler code here\n * });\n * ```\n * \\@memberof IgxBaseExporter\n */\n this.onColumnExport = new EventEmitter();\n }\n /**\n * Method for exporting IgxGrid component's data.\n * ```typescript\n * this.exporterService.export(this.igxGridForExport, this.exportOptions);\n * ```\n * @memberof IgxBaseExporter\n */\n /**\n * Method for exporting IgxGrid component's data.\n * ```typescript\n * this.exporterService.export(this.igxGridForExport, this.exportOptions);\n * ```\n * \\@memberof IgxBaseExporter\n * @param {?} grid\n * @param {?} options\n * @return {?}\n */\n IgxBaseExporter.prototype.export = /**\n * Method for exporting IgxGrid component's data.\n * ```typescript\n * this.exporterService.export(this.igxGridForExport, this.exportOptions);\n * ```\n * \\@memberof IgxBaseExporter\n * @param {?} grid\n * @param {?} options\n * @return {?}\n */\n function (grid, options) {\n var _this = this;\n if (options === undefined || options === null) {\n throw Error('No options provided!');\n }\n /** @type {?} */\n var columns = grid.columnList.toArray();\n this._columnList = new Array(columns.length);\n /** @type {?} */\n var hiddenColumns = [];\n /** @type {?} */\n var lastVisbleColumnIndex = -1;\n columns.forEach(function (column) {\n /** @type {?} */\n var columnHeader = column.header !== '' ? column.header : column.field;\n /** @type {?} */\n var exportColumn = !column.hidden || options.ignoreColumnsVisibility;\n /** @type {?} */\n var index = options.ignoreColumnsOrder ? column.index : column.visibleIndex;\n /** @type {?} */\n var columnInfo = {\n header: columnHeader,\n field: column.field,\n skip: !exportColumn,\n formatter: column.formatter,\n skipFormatter: false\n };\n if (index !== -1) {\n _this._columnList[index] = columnInfo;\n lastVisbleColumnIndex = Math.max(lastVisbleColumnIndex, index);\n }\n else {\n hiddenColumns.push(columnInfo);\n }\n if (column.pinned && exportColumn) {\n _this._indexOfLastPinnedColumn++;\n }\n });\n // Append the hidden columns to the end of the list\n hiddenColumns.forEach(function (hiddenColumn) {\n _this._columnList[++lastVisbleColumnIndex] = hiddenColumn;\n });\n /** @type {?} */\n var data = this.prepareData(grid, options);\n this.exportData(data, options);\n };\n /**\n * Method for exporting any kind of array data.\n * ```typescript\n * this.exporterService.exportData(this.arrayForExport, this.exportOptions);\n * ```\n * @memberof IgxBaseExporter\n */\n /**\n * Method for exporting any kind of array data.\n * ```typescript\n * this.exporterService.exportData(this.arrayForExport, this.exportOptions);\n * ```\n * \\@memberof IgxBaseExporter\n * @param {?} data\n * @param {?} options\n * @return {?}\n */\n IgxBaseExporter.prototype.exportData = /**\n * Method for exporting any kind of array data.\n * ```typescript\n * this.exporterService.exportData(this.arrayForExport, this.exportOptions);\n * ```\n * \\@memberof IgxBaseExporter\n * @param {?} data\n * @param {?} options\n * @return {?}\n */\n function (data, options) {\n var _this = this;\n if (options === undefined || options === null) {\n throw Error('No options provided!');\n }\n if (!this._columnList || this._columnList.length === 0) {\n /** @type {?} */\n var keys = ExportUtilities.getKeysFromData(data);\n this._columnList = keys.map(function (k) { return ({ header: k, field: k, skip: false }); });\n }\n /** @type {?} */\n var skippedPinnedColumnsCount = 0;\n /** @type {?} */\n var columnsWithoutHeaderCount = 1;\n this._columnList.forEach(function (column, index) {\n if (!column.skip) {\n /** @type {?} */\n var columnExportArgs = {\n header: ExportUtilities.isNullOrWhitespaces(column.header) ?\n 'Column' + columnsWithoutHeaderCount++ : column.header,\n field: column.field,\n columnIndex: index,\n cancel: false,\n skipFormatter: false\n };\n _this.onColumnExport.emit(columnExportArgs);\n column.header = columnExportArgs.header;\n column.skip = columnExportArgs.cancel;\n column.skipFormatter = columnExportArgs.skipFormatter;\n if (column.skip && index <= _this._indexOfLastPinnedColumn) {\n skippedPinnedColumnsCount++;\n }\n if (_this._sort && _this._sort.fieldName === column.field) {\n if (column.skip) {\n _this._sort = null;\n }\n else {\n _this._sort.fieldName = column.header;\n }\n }\n }\n });\n this._indexOfLastPinnedColumn -= skippedPinnedColumnsCount;\n /** @type {?} */\n var dataToExport = new Array();\n /** @type {?} */\n var isSpecialData = ExportUtilities.isSpecialData(data);\n data.forEach(function (row, index) {\n _this.exportRow(dataToExport, row, index, isSpecialData);\n });\n this.exportDataImplementation(dataToExport, options);\n this.resetDefaults();\n };\n /**\n * @private\n * @param {?} data\n * @param {?} rowData\n * @param {?} index\n * @param {?} isSpecialData\n * @return {?}\n */\n IgxBaseExporter.prototype.exportRow = /**\n * @private\n * @param {?} data\n * @param {?} rowData\n * @param {?} index\n * @param {?} isSpecialData\n * @return {?}\n */\n function (data, rowData, index, isSpecialData) {\n var _this = this;\n /** @type {?} */\n var row;\n if (!isSpecialData) {\n row = this._columnList.reduce(function (a, e) {\n if (!e.skip) {\n /** @type {?} */\n var rawValue = _this._isTreeGrid ? rowData.data[e.field] : rowData[e.field];\n a[e.header] = e.formatter && !e.skipFormatter ? e.formatter(rawValue) : rawValue;\n }\n return a;\n }, {});\n }\n else {\n row = this._isTreeGrid ? rowData.data : rowData;\n }\n /** @type {?} */\n var rowArgs = {\n rowData: row,\n rowIndex: index,\n cancel: false\n };\n this.onRowExport.emit(rowArgs);\n if (!rowArgs.cancel) {\n data.push({ rowData: rowArgs.rowData, originalRowData: rowData });\n }\n };\n /**\n * @private\n * @param {?} grid\n * @param {?} options\n * @return {?}\n */\n IgxBaseExporter.prototype.prepareData = /**\n * @private\n * @param {?} grid\n * @param {?} options\n * @return {?}\n */\n function (grid, options) {\n this.flatRecords = [];\n /** @type {?} */\n var rootRecords = grid.rootRecords;\n this._isTreeGrid = rootRecords !== undefined;\n if (this._isTreeGrid) {\n this.prepareHierarchicalData(rootRecords);\n }\n /** @type {?} */\n var data = this._isTreeGrid ? this.flatRecords : grid.data;\n if (((grid.filteringExpressionsTree &&\n grid.filteringExpressionsTree.filteringOperands.length > 0) ||\n (grid.advancedFilteringExpressionsTree &&\n grid.advancedFilteringExpressionsTree.filteringOperands.length > 0)) &&\n !options.ignoreFiltering) {\n /** @type {?} */\n var filteringState = {\n expressionsTree: grid.filteringExpressionsTree,\n advancedExpressionsTree: grid.advancedFilteringExpressionsTree,\n logic: grid.filteringLogic\n };\n if (this._isTreeGrid) {\n this.flatRecords = [];\n filteringState.strategy = new TreeGridFilteringStrategy();\n rootRecords = filteringState.strategy.filter(rootRecords, filteringState.expressionsTree, filteringState.advancedExpressionsTree);\n this.prepareHierarchicalData(rootRecords);\n data = this.flatRecords;\n }\n else {\n data = DataUtil.filter(data, filteringState);\n }\n }\n if (grid.sortingExpressions &&\n grid.sortingExpressions.length > 0 &&\n !options.ignoreSorting) {\n this._sort = cloneValue(grid.sortingExpressions[0]);\n if (this._isTreeGrid) {\n this.flatRecords = [];\n rootRecords = DataUtil.treeGridSort(rootRecords, grid.sortingExpressions);\n this.prepareHierarchicalData(rootRecords);\n data = this.flatRecords;\n }\n else {\n data = DataUtil.sort(data, grid.sortingExpressions);\n }\n }\n return data;\n };\n /**\n * @private\n * @param {?} records\n * @return {?}\n */\n IgxBaseExporter.prototype.prepareHierarchicalData = /**\n * @private\n * @param {?} records\n * @return {?}\n */\n function (records) {\n if (!records) {\n return;\n }\n for (var i = 0; i < records.length; i++) {\n /** @type {?} */\n var hierarchicalRecord = records[i];\n this.flatRecords.push(hierarchicalRecord);\n this.prepareHierarchicalData(hierarchicalRecord.children);\n }\n };\n /**\n * @private\n * @return {?}\n */\n IgxBaseExporter.prototype.resetDefaults = /**\n * @private\n * @return {?}\n */\n function () {\n this._columnList = [];\n this._indexOfLastPinnedColumn = -1;\n this._sort = null;\n this.flatRecords = [];\n };\n IgxBaseExporter.propDecorators = {\n onRowExport: [{ type: Output }],\n onColumnExport: [{ type: Output }]\n };\n return IgxBaseExporter;\n}());\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n/**\n * @hidden\n */\nvar /**\n * @hidden\n */\nCharSeparatedValueData = /** @class */ (function () {\n function CharSeparatedValueData(_data, valueDelimiter) {\n this._data = _data;\n this._headerRecord = '';\n this._dataRecords = '';\n this._eor = '\\r\\n';\n this._escapeCharacters = ['\\r', '\\n', '\\r\\n'];\n this._delimiterLength = 1;\n this._isSpecialData = false;\n this.setDelimiter(valueDelimiter);\n }\n /**\n * @return {?}\n */\n CharSeparatedValueData.prototype.prepareData = /**\n * @return {?}\n */\n function () {\n if (!this._data || this._data.length === 0) {\n return '';\n }\n /** @type {?} */\n var keys = ExportUtilities.getKeysFromData(this._data);\n if (keys.length === 0) {\n return '';\n }\n this._isSpecialData = ExportUtilities.isSpecialData(this._data);\n this._escapeCharacters.push(this._delimiter);\n this._headerRecord = this.processHeaderRecord(keys, this._escapeCharacters);\n this._dataRecords = this.processDataRecords(this._data, keys, this._escapeCharacters);\n return this._headerRecord + this._dataRecords;\n };\n /**\n * @private\n * @param {?} value\n * @param {?} escapeChars\n * @return {?}\n */\n CharSeparatedValueData.prototype.processField = /**\n * @private\n * @param {?} value\n * @param {?} escapeChars\n * @return {?}\n */\n function (value, escapeChars) {\n /** @type {?} */\n var safeValue = ExportUtilities.hasValue(value) ? String(value) : '';\n if (escapeChars.some(function (v) { return safeValue.includes(v); })) {\n safeValue = \"\\\"\" + safeValue + \"\\\"\";\n }\n return safeValue + this._delimiter;\n };\n /**\n * @private\n * @param {?} keys\n * @param {?} escapeChars\n * @return {?}\n */\n CharSeparatedValueData.prototype.processHeaderRecord = /**\n * @private\n * @param {?} keys\n * @param {?} escapeChars\n * @return {?}\n */\n function (keys, escapeChars) {\n var e_1, _a;\n /** @type {?} */\n var recordData = '';\n try {\n for (var keys_1 = __values(keys), keys_1_1 = keys_1.next(); !keys_1_1.done; keys_1_1 = keys_1.next()) {\n var keyName = keys_1_1.value;\n recordData += this.processField(keyName, this._escapeCharacters);\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (keys_1_1 && !keys_1_1.done && (_a = keys_1.return)) _a.call(keys_1);\n }\n finally { if (e_1) throw e_1.error; }\n }\n return recordData.slice(0, -this._delimiterLength) + this._eor;\n };\n /**\n * @private\n * @param {?} record\n * @param {?} keys\n * @param {?} escapeChars\n * @return {?}\n */\n CharSeparatedValueData.prototype.processRecord = /**\n * @private\n * @param {?} record\n * @param {?} keys\n * @param {?} escapeChars\n * @return {?}\n */\n function (record, keys, escapeChars) {\n var e_2, _a;\n /** @type {?} */\n var recordData = '';\n try {\n for (var keys_2 = __values(keys), keys_2_1 = keys_2.next(); !keys_2_1.done; keys_2_1 = keys_2.next()) {\n var keyName = keys_2_1.value;\n /** @type {?} */\n var value = (record[keyName] !== undefined) ? record[keyName] : this._isSpecialData ? record : '';\n recordData += this.processField(value, this._escapeCharacters);\n }\n }\n catch (e_2_1) { e_2 = { error: e_2_1 }; }\n finally {\n try {\n if (keys_2_1 && !keys_2_1.done && (_a = keys_2.return)) _a.call(keys_2);\n }\n finally { if (e_2) throw e_2.error; }\n }\n return recordData.slice(0, -this._delimiterLength) + this._eor;\n };\n /**\n * @private\n * @param {?} currentData\n * @param {?} keys\n * @param {?} escapeChars\n * @return {?}\n */\n CharSeparatedValueData.prototype.processDataRecords = /**\n * @private\n * @param {?} currentData\n * @param {?} keys\n * @param {?} escapeChars\n * @return {?}\n */\n function (currentData, keys, escapeChars) {\n var e_3, _a;\n /** @type {?} */\n var dataRecords = '';\n try {\n for (var currentData_1 = __values(currentData), currentData_1_1 = currentData_1.next(); !currentData_1_1.done; currentData_1_1 = currentData_1.next()) {\n var row = currentData_1_1.value;\n dataRecords += this.processRecord(row, keys, escapeChars);\n }\n }\n catch (e_3_1) { e_3 = { error: e_3_1 }; }\n finally {\n try {\n if (currentData_1_1 && !currentData_1_1.done && (_a = currentData_1.return)) _a.call(currentData_1);\n }\n finally { if (e_3) throw e_3.error; }\n }\n return dataRecords;\n };\n /**\n * @private\n * @param {?} value\n * @return {?}\n */\n CharSeparatedValueData.prototype.setDelimiter = /**\n * @private\n * @param {?} value\n * @return {?}\n */\n function (value) {\n this._delimiter = value;\n this._delimiterLength = value.length;\n };\n return CharSeparatedValueData;\n}());\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n/**\n * @abstract\n */\nvar /**\n * @abstract\n */\nIgxExporterOptionsBase = /** @class */ (function () {\n function IgxExporterOptionsBase(fileName, _fileExtension) {\n this._fileExtension = _fileExtension;\n /**\n * Specifies whether hidden columns should be exported.\n * ```typescript\n * let ignoreColumnsVisibility = this.exportOptions.ignoreColumnsVisibility;\n * this.exportOptions.ignoreColumnsVisibility = true;\n * ```\n * \\@memberof IgxExporterOptionsBase\n */\n this.ignoreColumnsVisibility = false;\n /**\n * Specifies whether filtered out rows should be exported.\n * ```typescript\n * let ignoreFiltering = this.exportOptions.ignoreFiltering;\n * this.exportOptions.ignoreFiltering = true;\n * ```\n * \\@memberof IgxExporterOptionsBase\n */\n this.ignoreFiltering = false;\n /**\n * Specifies if the exporter should ignore the current column order in the IgxGrid.\n * ```typescript\n * let ignoreColumnsOrder = this.exportOptions.ignoreColumnsOrder;\n * this.exportOptions.ignoreColumnsOrder = true;\n * ```\n * \\@memberof IgxExporterOptionsBase\n */\n this.ignoreColumnsOrder = false;\n /**\n * Specifies whether the exported data should be sorted as in the provided IgxGrid.\n * ```typescript\n * let ignoreSorting = this.exportOptions.ignoreSorting;\n * this.exportOptions.ignoreSorting = true;\n * ```\n * \\@memberof IgxExporterOptionsBase\n */\n this.ignoreSorting = false;\n this.setFileName(fileName);\n }\n /**\n * @private\n * @param {?} fileName\n * @return {?}\n */\n IgxExporterOptionsBase.prototype.setFileName = /**\n * @private\n * @param {?} fileName\n * @return {?}\n */\n function (fileName) {\n this._fileName = fileName + (fileName.endsWith(this._fileExtension) === false ? this._fileExtension : '');\n };\n Object.defineProperty(IgxExporterOptionsBase.prototype, \"fileName\", {\n /**\n * Gets the file name which will be used for the exporting operation.\n * ```typescript\n * let fileName = this.exportOptions.fileName;\n * ```\n * @memberof IgxExporterOptionsBase\n */\n get: /**\n * Gets the file name which will be used for the exporting operation.\n * ```typescript\n * let fileName = this.exportOptions.fileName;\n * ```\n * \\@memberof IgxExporterOptionsBase\n * @return {?}\n */\n function () {\n return this._fileName;\n },\n /**\n * Sets the file name which will be used for the exporting operation.\n * ```typescript\n * this.exportOptions.fileName = 'exportedData01';\n * ```\n * @memberof IgxExporterOptionsBase\n */\n set: /**\n * Sets the file name which will be used for the exporting operation.\n * ```typescript\n * this.exportOptions.fileName = 'exportedData01';\n * ```\n * \\@memberof IgxExporterOptionsBase\n * @param {?} value\n * @return {?}\n */\n function (value) {\n this.setFileName(value);\n },\n enumerable: true,\n configurable: true\n });\n return IgxExporterOptionsBase;\n}());\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n/**\n * Objects of this class are used to configure the CSV exporting process.\n */\nvar /**\n * Objects of this class are used to configure the CSV exporting process.\n */\nIgxCsvExporterOptions = /** @class */ (function (_super) {\n __extends(IgxCsvExporterOptions, _super);\n function IgxCsvExporterOptions(fileName, fileType) {\n var _this = _super.call(this, fileName, IgxCsvExporterOptions.getExtensionFromFileType(fileType)) || this;\n _this.setFileType(fileType);\n _this.setDelimiter();\n return _this;\n }\n /**\n * @private\n * @param {?} fType\n * @return {?}\n */\n IgxCsvExporterOptions.getExtensionFromFileType = /**\n * @private\n * @param {?} fType\n * @return {?}\n */\n function (fType) {\n /** @type {?} */\n var extension = '';\n switch (fType) {\n case CsvFileTypes.CSV:\n extension = '.csv';\n break;\n case CsvFileTypes.TSV:\n extension = '.tsv';\n break;\n case CsvFileTypes.TAB:\n extension = '.tab';\n break;\n default:\n throw Error('Unsupported CSV file type!');\n }\n return extension;\n };\n Object.defineProperty(IgxCsvExporterOptions.prototype, \"valueDelimiter\", {\n /**\n * Gets the value delimiter which will be used for the exporting operation.\n * ```typescript\n * let delimiter = this.exportOptions.valueDelimiter;\n * ```\n * @memberof IgxCsvExporterOptions\n */\n get: /**\n * Gets the value delimiter which will be used for the exporting operation.\n * ```typescript\n * let delimiter = this.exportOptions.valueDelimiter;\n * ```\n * \\@memberof IgxCsvExporterOptions\n * @return {?}\n */\n function () {\n return this._valueDelimiter;\n },\n /**\n * Sets a value delimiter which will overwrite the default delimiter of the selected export format.\n * ```typescript\n * this.exportOptions.valueDelimiter = '|';\n * ```\n * @memberof IgxCsvExporterOptions\n */\n set: /**\n * Sets a value delimiter which will overwrite the default delimiter of the selected export format.\n * ```typescript\n * this.exportOptions.valueDelimiter = '|';\n * ```\n * \\@memberof IgxCsvExporterOptions\n * @param {?} value\n * @return {?}\n */\n function (value) {\n this.setDelimiter(value);\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxCsvExporterOptions.prototype, \"fileType\", {\n /**\n * Gets the CSV export format.\n * ```typescript\n * let filetype = this.exportOptions.fileType;\n * ```\n * @memberof IgxCsvExporterOptions\n */\n get: /**\n * Gets the CSV export format.\n * ```typescript\n * let filetype = this.exportOptions.fileType;\n * ```\n * \\@memberof IgxCsvExporterOptions\n * @return {?}\n */\n function () {\n return this._fileType;\n },\n /**\n * Sets the CSV export format.\n * ```typescript\n * this.exportOptions.fileType = CsvFileTypes.TAB;\n * ```\n * @memberof IgxCsvExporterOptions\n */\n set: /**\n * Sets the CSV export format.\n * ```typescript\n * this.exportOptions.fileType = CsvFileTypes.TAB;\n * ```\n * \\@memberof IgxCsvExporterOptions\n * @param {?} value\n * @return {?}\n */\n function (value) {\n this.setFileType(value);\n },\n enumerable: true,\n configurable: true\n });\n /**\n * @private\n * @param {?} value\n * @return {?}\n */\n IgxCsvExporterOptions.prototype.setFileType = /**\n * @private\n * @param {?} value\n * @return {?}\n */\n function (value) {\n if (value !== undefined && value !== null && value !== this._fileType) {\n this._fileType = value;\n /** @type {?} */\n var extension = IgxCsvExporterOptions.getExtensionFromFileType(value);\n if (!this.fileName.endsWith(extension)) {\n /** @type {?} */\n var oldExt = '.' + this.fileName.split('.').pop();\n /** @type {?} */\n var newName = this.fileName.replace(oldExt, extension);\n this._fileExtension = extension;\n this.fileName = newName;\n }\n }\n };\n /**\n * @private\n * @param {?=} value\n * @return {?}\n */\n IgxCsvExporterOptions.prototype.setDelimiter = /**\n * @private\n * @param {?=} value\n * @return {?}\n */\n function (value) {\n if (value !== undefined && value !== '' && value !== null) {\n this._valueDelimiter = value;\n }\n else {\n switch (this.fileType) {\n case CsvFileTypes.CSV:\n this._valueDelimiter = ',';\n break;\n case CsvFileTypes.TSV:\n case CsvFileTypes.TAB:\n this._valueDelimiter = '\\t';\n break;\n }\n }\n };\n return IgxCsvExporterOptions;\n}(IgxExporterOptionsBase));\n/** @enum {number} */\nvar CsvFileTypes = {\n /**\n * Character Separated Values, default separator is \"comma\", default file extension is .csv\n */\n CSV: 0,\n /**\n * Tab Separated Values, default separator is tab, default file extension is .tsv\n */\n TSV: 1,\n /**\n * Tab Separated Values, default separator is tab, default file extension is .tab\n */\n TAB: 2,\n};\nCsvFileTypes[CsvFileTypes.CSV] = 'CSV';\nCsvFileTypes[CsvFileTypes.TSV] = 'TSV';\nCsvFileTypes[CsvFileTypes.TAB] = 'TAB';\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n/**\n * **Ignite UI for Angular CSV Exporter Service** -\n * [Documentation](https://www.infragistics.com/products/ignite-ui-angular/angular/components/exporter_csv.html)\n *\n * The Ignite UI for Angular CSV Exporter service can export data in a Character Separated Values format from\n * both raw data (array) or from an `IgxGrid`.\n *\n * Example:\n * ```typescript\n * public localData = [\n * { Name: \"Eric Ridley\", Age: \"26\" },\n * { Name: \"Alanis Brook\", Age: \"22\" },\n * { Name: \"Jonathan Morris\", Age: \"23\" }\n * ];\n *\n * constructor(private csvExportService: IgxCsvExporterService) {\n * }\n *\n * const opt: IgxCsvExporterOptions = new IgxCsvExporterOptions(\"FileName\", CsvFileTypes.CSV);\n * this.csvExportService.exportData(this.localData, opt);\n * ```\n */\nvar IgxCsvExporterService = /** @class */ (function (_super) {\n __extends(IgxCsvExporterService, _super);\n function IgxCsvExporterService() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n /**\n * This event is emitted when the export process finishes.\n * ```typescript\n * this.exporterService.onExportEnded.subscribe((args: ICsvExportEndedEventArgs) => {\n * // put event handler code here\n * });\n * ```\n * \\@memberof IgxCsvExporterService\n */\n _this.onExportEnded = new EventEmitter();\n return _this;\n }\n /**\n * @protected\n * @param {?} data\n * @param {?} options\n * @return {?}\n */\n IgxCsvExporterService.prototype.exportDataImplementation = /**\n * @protected\n * @param {?} data\n * @param {?} options\n * @return {?}\n */\n function (data, options) {\n data = data.map(function (item) { return item.rowData; });\n /** @type {?} */\n var csvData = new CharSeparatedValueData(data, options.valueDelimiter);\n this._stringData = csvData.prepareData();\n this.saveFile(options);\n this.onExportEnded.emit({ csvData: this._stringData });\n };\n /**\n * @private\n * @param {?} options\n * @return {?}\n */\n IgxCsvExporterService.prototype.saveFile = /**\n * @private\n * @param {?} options\n * @return {?}\n */\n function (options) {\n switch (options.fileType) {\n case CsvFileTypes.CSV:\n this.exportFile(this._stringData, options.fileName, 'text/csv;charset=utf-8;');\n break;\n case CsvFileTypes.TSV:\n case CsvFileTypes.TAB:\n this.exportFile(this._stringData, options.fileName, 'text/tab-separated-values;charset=utf-8;');\n break;\n }\n };\n /**\n * @private\n * @param {?} data\n * @param {?} fileName\n * @param {?} fileType\n * @return {?}\n */\n IgxCsvExporterService.prototype.exportFile = /**\n * @private\n * @param {?} data\n * @param {?} fileName\n * @param {?} fileType\n * @return {?}\n */\n function (data, fileName, fileType) {\n /** @type {?} */\n var blob = new Blob(['\\ufeff', data], { type: fileType });\n ExportUtilities.saveBlobToFile(blob, fileName);\n };\n IgxCsvExporterService.decorators = [\n { type: Injectable }\n ];\n IgxCsvExporterService.propDecorators = {\n onExportEnded: [{ type: Output }]\n };\n return IgxCsvExporterService;\n}(IgxBaseExporter));\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n/** @enum {number} */\nvar ExcelFolderTypes = {\n RootExcelFolder: 0,\n RootRelsExcelFolder: 1,\n DocPropsExcelFolder: 2,\n XLExcelFolder: 3,\n XLRelsExcelFolder: 4,\n ThemeExcelFolder: 5,\n WorksheetsExcelFolder: 6,\n WorksheetsRelsExcelFolder: 7,\n TablesExcelFolder: 8,\n};\nExcelFolderTypes[ExcelFolderTypes.RootExcelFolder] = 'RootExcelFolder';\nExcelFolderTypes[ExcelFolderTypes.RootRelsExcelFolder] = 'RootRelsExcelFolder';\nExcelFolderTypes[ExcelFolderTypes.DocPropsExcelFolder] = 'DocPropsExcelFolder';\nExcelFolderTypes[ExcelFolderTypes.XLExcelFolder] = 'XLExcelFolder';\nExcelFolderTypes[ExcelFolderTypes.XLRelsExcelFolder] = 'XLRelsExcelFolder';\nExcelFolderTypes[ExcelFolderTypes.ThemeExcelFolder] = 'ThemeExcelFolder';\nExcelFolderTypes[ExcelFolderTypes.WorksheetsExcelFolder] = 'WorksheetsExcelFolder';\nExcelFolderTypes[ExcelFolderTypes.WorksheetsRelsExcelFolder] = 'WorksheetsRelsExcelFolder';\nExcelFolderTypes[ExcelFolderTypes.TablesExcelFolder] = 'TablesExcelFolder';\n/** @enum {number} */\nvar ExcelFileTypes = {\n RootRelsFile: 0,\n AppFile: 1,\n CoreFile: 2,\n WorkbookRelsFile: 3,\n ThemeFile: 4,\n WorksheetFile: 5,\n StyleFile: 6,\n WorkbookFile: 7,\n ContentTypesFile: 8,\n SharedStringsFile: 9,\n WorksheetRelsFile: 10,\n TablesFile: 11,\n};\nExcelFileTypes[ExcelFileTypes.RootRelsFile] = 'RootRelsFile';\nExcelFileTypes[ExcelFileTypes.AppFile] = 'AppFile';\nExcelFileTypes[ExcelFileTypes.CoreFile] = 'CoreFile';\nExcelFileTypes[ExcelFileTypes.WorkbookRelsFile] = 'WorkbookRelsFile';\nExcelFileTypes[ExcelFileTypes.ThemeFile] = 'ThemeFile';\nExcelFileTypes[ExcelFileTypes.WorksheetFile] = 'WorksheetFile';\nExcelFileTypes[ExcelFileTypes.StyleFile] = 'StyleFile';\nExcelFileTypes[ExcelFileTypes.WorkbookFile] = 'WorkbookFile';\nExcelFileTypes[ExcelFileTypes.ContentTypesFile] = 'ContentTypesFile';\nExcelFileTypes[ExcelFileTypes.SharedStringsFile] = 'SharedStringsFile';\nExcelFileTypes[ExcelFileTypes.WorksheetRelsFile] = 'WorksheetRelsFile';\nExcelFileTypes[ExcelFileTypes.TablesFile] = 'TablesFile';\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n/**\n * @hidden\n */\nvar ExcelStrings = /** @class */ (function () {\n function ExcelStrings() {\n }\n /**\n * @return {?}\n */\n ExcelStrings.getRels = /**\n * @return {?}\n */\n function () {\n return ExcelStrings.XML_STRING + '';\n };\n /**\n * @return {?}\n */\n ExcelStrings.getApp = /**\n * @return {?}\n */\n function () {\n return ExcelStrings.XML_STRING + 'Microsoft Excel0falseWorksheets1Sheet1falsefalsefalse16.0300';\n };\n /**\n * @return {?}\n */\n ExcelStrings.getCore = /**\n * @return {?}\n */\n function () {\n return ExcelStrings.XML_STRING + '2015-06-05T18:17:20Z2015-06-05T18:17:26Z';\n };\n /**\n * @return {?}\n */\n ExcelStrings.getTheme = /**\n * @return {?}\n */\n function () {\n return ExcelStrings.XML_STRING + '';\n };\n /**\n * @param {?} hasNonStringValues\n * @return {?}\n */\n ExcelStrings.getStyles = /**\n * @param {?} hasNonStringValues\n * @return {?}\n */\n function (hasNonStringValues) {\n /** @type {?} */\n var additionalCellXF = '';\n /** @type {?} */\n var cellXFCount = hasNonStringValues ? 2 : 1;\n return ExcelStrings.XML_STRING + '' + additionalCellXF + '';\n };\n /**\n * @return {?}\n */\n ExcelStrings.getWorkbook = /**\n * @return {?}\n */\n function () {\n return ExcelStrings.XML_STRING + '';\n };\n /**\n * @return {?}\n */\n ExcelStrings.getWorksheetRels = /**\n * @return {?}\n */\n function () {\n return ExcelStrings.XML_STRING + \"\";\n };\n /**\n * @param {?} hasSharedStrings\n * @return {?}\n */\n ExcelStrings.getWorkbookRels = /**\n * @param {?} hasSharedStrings\n * @return {?}\n */\n function (hasSharedStrings) {\n /** @type {?} */\n var retVal = ExcelStrings.XML_STRING + '';\n if (hasSharedStrings) {\n retVal += ExcelStrings.SHARED_STRING_RELATIONSHIP;\n }\n retVal += '';\n return retVal;\n };\n /**\n * @param {?} dimension\n * @param {?} freezePane\n * @param {?} cols\n * @param {?} sheetData\n * @param {?} hasTable\n * @param {?=} hasGroupedRows\n * @param {?=} outlineLevel\n * @return {?}\n */\n ExcelStrings.getSheetXML = /**\n * @param {?} dimension\n * @param {?} freezePane\n * @param {?} cols\n * @param {?} sheetData\n * @param {?} hasTable\n * @param {?=} hasGroupedRows\n * @param {?=} outlineLevel\n * @return {?}\n */\n function (dimension, freezePane, cols, sheetData, hasTable, hasGroupedRows, outlineLevel) {\n if (hasGroupedRows === void 0) { hasGroupedRows = false; }\n if (outlineLevel === void 0) { outlineLevel = 0; }\n /** @type {?} */\n var tableParts = hasTable ? '' : '';\n /** @type {?} */\n var sheetOutlineProp = hasGroupedRows ? '' : '';\n /** @type {?} */\n var sOutlineLevel = outlineLevel > 0 ? \"outlineLevelRow=\\\"\" + outlineLevel + \"\\\"\" : '';\n // return ExcelStrings.XML_STRING +\n // '' + freezePane + '' + cols + sheetData + '' + tableParts + '';\n return ExcelStrings.XML_STRING + \"\\n\\n\" + sheetOutlineProp + \"\\n\\n\" + freezePane + \"\\n\\n\" + cols + \"\\n\" + sheetData + \"\\n\\n\" + tableParts + \"\";\n };\n /**\n * @param {?} count\n * @param {?} uniqueCount\n * @param {?} table\n * @return {?}\n */\n ExcelStrings.getSharedStringXML = /**\n * @param {?} count\n * @param {?} uniqueCount\n * @param {?} table\n * @return {?}\n */\n function (count, uniqueCount, table) {\n return ExcelStrings.XML_STRING + '' + table + '';\n };\n /**\n * @param {?} hasSharedStrings\n * @param {?} hasTable\n * @return {?}\n */\n ExcelStrings.getContentTypesXML = /**\n * @param {?} hasSharedStrings\n * @param {?} hasTable\n * @return {?}\n */\n function (hasSharedStrings, hasTable) {\n /** @type {?} */\n var contentTypes = ExcelStrings.XML_STRING +\n \"\\n \\n \\n \\n \\n \\n \\n \\n \";\n contentTypes += hasSharedStrings ?\n \"\\t\" : '';\n contentTypes += hasTable ?\n \"\" : '';\n contentTypes += \"\";\n return contentTypes;\n };\n /**\n * @param {?} dimension\n * @param {?} tableColumns\n * @param {?} sort\n * @return {?}\n */\n ExcelStrings.getTablesXML = /**\n * @param {?} dimension\n * @param {?} tableColumns\n * @param {?} sort\n * @return {?}\n */\n function (dimension, tableColumns, sort) {\n return ExcelStrings.XML_STRING + \"\\n \" + sort + tableColumns + \"\\n
\";\n };\n /* tslint:enable max-line-length */\n /* tslint:enable max-line-length */\n /**\n * @param {?} index\n * @return {?}\n */\n ExcelStrings.getExcelColumn = /* tslint:enable max-line-length */\n /**\n * @param {?} index\n * @return {?}\n */\n function (index) {\n // Returns the excel column name for given 0-based index\n // For example 27 should return \"AB\"\n /** @type {?} */\n var returnString = '';\n while (index >= 0) {\n /** @type {?} */\n var char = index % 26;\n returnString = String.fromCharCode(65 + char) + returnString;\n index = Math.floor(index / 26) - 1;\n }\n return returnString;\n };\n /* tslint:disable max-line-length */\n ExcelStrings.XML_STRING = '\\r\\n';\n ExcelStrings.SHARED_STRING_RELATIONSHIP = '';\n return ExcelStrings;\n}());\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n/**\n * @hidden\n */\nvar /**\n * @hidden\n */\nRootRelsFile = /** @class */ (function () {\n function RootRelsFile() {\n }\n /**\n * @param {?} folder\n * @param {?} worksheetData\n * @return {?}\n */\n RootRelsFile.prototype.writeElement = /**\n * @param {?} folder\n * @param {?} worksheetData\n * @return {?}\n */\n function (folder, worksheetData) {\n folder.file('.rels', ExcelStrings.getRels());\n };\n return RootRelsFile;\n}());\n/**\n * @hidden\n */\nvar /**\n * @hidden\n */\nAppFile = /** @class */ (function () {\n function AppFile() {\n }\n /**\n * @param {?} folder\n * @param {?} worksheetData\n * @return {?}\n */\n AppFile.prototype.writeElement = /**\n * @param {?} folder\n * @param {?} worksheetData\n * @return {?}\n */\n function (folder, worksheetData) {\n folder.file('app.xml', ExcelStrings.getApp());\n };\n return AppFile;\n}());\n/**\n * @hidden\n */\nvar /**\n * @hidden\n */\nCoreFile = /** @class */ (function () {\n function CoreFile() {\n }\n /**\n * @param {?} folder\n * @param {?} worksheetData\n * @return {?}\n */\n CoreFile.prototype.writeElement = /**\n * @param {?} folder\n * @param {?} worksheetData\n * @return {?}\n */\n function (folder, worksheetData) {\n folder.file('core.xml', ExcelStrings.getCore());\n };\n return CoreFile;\n}());\n/**\n * @hidden\n */\nvar /**\n * @hidden\n */\nWorkbookRelsFile = /** @class */ (function () {\n function WorkbookRelsFile() {\n }\n /**\n * @param {?} folder\n * @param {?} worksheetData\n * @return {?}\n */\n WorkbookRelsFile.prototype.writeElement = /**\n * @param {?} folder\n * @param {?} worksheetData\n * @return {?}\n */\n function (folder, worksheetData) {\n /** @type {?} */\n var hasSharedStrings = worksheetData.isEmpty === false;\n folder.file('workbook.xml.rels', ExcelStrings.getWorkbookRels(hasSharedStrings));\n };\n return WorkbookRelsFile;\n}());\n/**\n * @hidden\n */\nvar /**\n * @hidden\n */\nThemeFile = /** @class */ (function () {\n function ThemeFile() {\n }\n /**\n * @param {?} folder\n * @param {?} worksheetData\n * @return {?}\n */\n ThemeFile.prototype.writeElement = /**\n * @param {?} folder\n * @param {?} worksheetData\n * @return {?}\n */\n function (folder, worksheetData) {\n folder.file('theme1.xml', ExcelStrings.getTheme());\n };\n return ThemeFile;\n}());\n/**\n * @hidden\n */\nvar WorksheetFile = /** @class */ (function () {\n function WorksheetFile() {\n }\n /**\n * @param {?} folder\n * @param {?} worksheetData\n * @return {?}\n */\n WorksheetFile.prototype.writeElement = /**\n * @param {?} folder\n * @param {?} worksheetData\n * @return {?}\n */\n function (folder, worksheetData) {\n /** @type {?} */\n var sheetData = [];\n /** @type {?} */\n var cols = [];\n /** @type {?} */\n var dimension;\n /** @type {?} */\n var dictionary = worksheetData.dataDictionary;\n /** @type {?} */\n var freezePane = '';\n /** @type {?} */\n var maxOutlineLevel = 0;\n if (worksheetData.isEmpty) {\n sheetData.push('');\n dimension = 'A1';\n }\n else {\n sheetData.push('');\n /** @type {?} */\n var height = worksheetData.options.rowHeight;\n /** @type {?} */\n var rowHeight = height ? ' ht=\"' + height + '\" customHeight=\"1\"' : '';\n sheetData.push(\"\");\n for (var i = 0; i < worksheetData.columnCount; i++) {\n /** @type {?} */\n var column = ExcelStrings.getExcelColumn(i) + 1;\n /** @type {?} */\n var value = dictionary.saveValue(worksheetData.keys[i], i, true);\n sheetData.push(\"\" + value + \"\");\n }\n sheetData.push('');\n for (var i = 1; i < worksheetData.rowCount; i++) {\n if (!worksheetData.isTreeGridData) {\n sheetData.push(\"\");\n }\n else {\n /** @type {?} */\n var rowData = worksheetData.data[i - 1].originalRowData;\n /** @type {?} */\n var sCollapsed = (!rowData.expanded) ? '' : (rowData.expanded === true) ? '' : \" collapsed=\\\"1\\\"\";\n /** @type {?} */\n var sHidden = (rowData.parent && this.hasCollapsedParent(rowData)) ? \" hidden=\\\"1\\\"\" : '';\n /** @type {?} */\n var rowOutlineLevel = rowData.level ? rowData.level : 0;\n /** @type {?} */\n var sOutlineLevel = rowOutlineLevel > 0 ? \" outlineLevel=\\\"\" + rowOutlineLevel + \"\\\"\" : '';\n maxOutlineLevel = maxOutlineLevel < rowOutlineLevel ? rowOutlineLevel : maxOutlineLevel;\n sheetData.push(\"\");\n }\n for (var j = 0; j < worksheetData.columnCount; j++) {\n /** @type {?} */\n var cellData = WorksheetFile.getCellData(worksheetData, i, j);\n sheetData.push(cellData);\n }\n sheetData.push('');\n }\n sheetData.push('');\n dimension = 'A1:' + ExcelStrings.getExcelColumn(worksheetData.columnCount - 1) + worksheetData.rowCount;\n cols.push('');\n for (var i = 0; i < worksheetData.columnCount; i++) {\n /** @type {?} */\n var width = dictionary.columnWidths[i];\n // Use the width provided in the options if it exists\n /** @type {?} */\n var widthInTwips = worksheetData.options.columnWidth ?\n worksheetData.options.columnWidth :\n Math.max(((width / 96) * 14.4), WorksheetFile.MIN_WIDTH);\n cols.push(\"\");\n }\n cols.push('');\n if (worksheetData.indexOfLastPinnedColumn !== -1 &&\n !worksheetData.options.ignorePinning &&\n !worksheetData.options.ignoreColumnsOrder) {\n /** @type {?} */\n var frozenColumnCount = worksheetData.indexOfLastPinnedColumn + 1;\n /** @type {?} */\n var firstCell = ExcelStrings.getExcelColumn(frozenColumnCount) + '1';\n freezePane = \"\";\n }\n }\n /** @type {?} */\n var hasTable = !worksheetData.isEmpty && worksheetData.options.exportAsTable;\n folder.file('sheet1.xml', ExcelStrings.getSheetXML(dimension, freezePane, cols.join(''), sheetData.join(''), hasTable, worksheetData.isTreeGridData, maxOutlineLevel));\n };\n /**\n * @private\n * @param {?} rowData\n * @return {?}\n */\n WorksheetFile.prototype.hasCollapsedParent = /**\n * @private\n * @param {?} rowData\n * @return {?}\n */\n function (rowData) {\n /** @type {?} */\n var result = !rowData.parent.expanded;\n while (rowData.parent) {\n result = result || !rowData.parent.expanded;\n rowData = rowData.parent;\n }\n return result;\n };\n /* tslint:disable member-ordering */\n /* tslint:disable member-ordering */\n /**\n * @private\n * @param {?} worksheetData\n * @param {?} row\n * @param {?} column\n * @return {?}\n */\n WorksheetFile.getCellData = /* tslint:disable member-ordering */\n /**\n * @private\n * @param {?} worksheetData\n * @param {?} row\n * @param {?} column\n * @return {?}\n */\n function (worksheetData, row, column) {\n /** @type {?} */\n var dictionary = worksheetData.dataDictionary;\n /** @type {?} */\n var columnName = ExcelStrings.getExcelColumn(column) + (row + 1);\n /** @type {?} */\n var columnHeader = worksheetData.keys[column];\n /** @type {?} */\n var rowData = worksheetData.data[row - 1].rowData;\n /** @type {?} */\n var cellValue = worksheetData.isSpecialData ? rowData : rowData[columnHeader];\n if (cellValue === undefined || cellValue === null) {\n return \"\";\n }\n else {\n /** @type {?} */\n var savedValue = dictionary.saveValue(cellValue, column, false);\n /** @type {?} */\n var isSavedAsString = savedValue !== -1;\n /** @type {?} */\n var value = isSavedAsString ? savedValue : cellValue;\n /** @type {?} */\n var type = isSavedAsString ? \" t=\\\"s\\\"\" : '';\n /** @type {?} */\n var format = isSavedAsString ? '' : \" s=\\\"1\\\"\";\n return \"\" + value + \"\";\n }\n };\n WorksheetFile.MIN_WIDTH = 8.34;\n return WorksheetFile;\n}());\n/**\n * @hidden\n */\nvar /**\n * @hidden\n */\nStyleFile = /** @class */ (function () {\n function StyleFile() {\n }\n /**\n * @param {?} folder\n * @param {?} worksheetData\n * @return {?}\n */\n StyleFile.prototype.writeElement = /**\n * @param {?} folder\n * @param {?} worksheetData\n * @return {?}\n */\n function (folder, worksheetData) {\n folder.file('styles.xml', ExcelStrings.getStyles(worksheetData.dataDictionary && worksheetData.dataDictionary.hasNonStringValues));\n };\n return StyleFile;\n}());\n/**\n * @hidden\n */\nvar /**\n * @hidden\n */\nWorkbookFile = /** @class */ (function () {\n function WorkbookFile() {\n }\n /**\n * @param {?} folder\n * @param {?} worksheetData\n * @return {?}\n */\n WorkbookFile.prototype.writeElement = /**\n * @param {?} folder\n * @param {?} worksheetData\n * @return {?}\n */\n function (folder, worksheetData) {\n folder.file('workbook.xml', ExcelStrings.getWorkbook());\n };\n return WorkbookFile;\n}());\n/**\n * @hidden\n */\nvar /**\n * @hidden\n */\nContentTypesFile = /** @class */ (function () {\n function ContentTypesFile() {\n }\n /**\n * @param {?} folder\n * @param {?} worksheetData\n * @return {?}\n */\n ContentTypesFile.prototype.writeElement = /**\n * @param {?} folder\n * @param {?} worksheetData\n * @return {?}\n */\n function (folder, worksheetData) {\n folder.file('[Content_Types].xml', ExcelStrings.getContentTypesXML(!worksheetData.isEmpty, worksheetData.options.exportAsTable));\n };\n return ContentTypesFile;\n}());\n/**\n * @hidden\n */\nvar /**\n * @hidden\n */\nSharedStringsFile = /** @class */ (function () {\n function SharedStringsFile() {\n }\n /**\n * @param {?} folder\n * @param {?} worksheetData\n * @return {?}\n */\n SharedStringsFile.prototype.writeElement = /**\n * @param {?} folder\n * @param {?} worksheetData\n * @return {?}\n */\n function (folder, worksheetData) {\n var e_1, _a;\n /** @type {?} */\n var dict = worksheetData.dataDictionary;\n /** @type {?} */\n var sortedValues = dict.getKeys();\n /** @type {?} */\n var sharedStrings = new Array(sortedValues.length);\n try {\n for (var sortedValues_1 = __values(sortedValues), sortedValues_1_1 = sortedValues_1.next(); !sortedValues_1_1.done; sortedValues_1_1 = sortedValues_1.next()) {\n var value = sortedValues_1_1.value;\n sharedStrings[dict.getSanitizedValue(value)] = '' + value + '';\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (sortedValues_1_1 && !sortedValues_1_1.done && (_a = sortedValues_1.return)) _a.call(sortedValues_1);\n }\n finally { if (e_1) throw e_1.error; }\n }\n folder.file('sharedStrings.xml', ExcelStrings.getSharedStringXML(dict.stringsCount, sortedValues.length, sharedStrings.join('')));\n };\n return SharedStringsFile;\n}());\n/**\n * @hidden\n */\nvar /**\n * @hidden\n */\nTablesFile = /** @class */ (function () {\n function TablesFile() {\n }\n /**\n * @param {?} folder\n * @param {?} worksheetData\n * @return {?}\n */\n TablesFile.prototype.writeElement = /**\n * @param {?} folder\n * @param {?} worksheetData\n * @return {?}\n */\n function (folder, worksheetData) {\n /** @type {?} */\n var columnCount = worksheetData.columnCount;\n /** @type {?} */\n var lastColumn = ExcelStrings.getExcelColumn(columnCount - 1) + worksheetData.rowCount;\n /** @type {?} */\n var dimension = 'A1:' + lastColumn;\n /** @type {?} */\n var values = worksheetData.keys;\n /** @type {?} */\n var sortString = '';\n /** @type {?} */\n var tableColumns = '';\n for (var i = 0; i < columnCount; i++) {\n /** @type {?} */\n var value = values[i];\n tableColumns += '';\n }\n tableColumns += '';\n if (worksheetData.sort) {\n /** @type {?} */\n var sortingExpression = worksheetData.sort;\n /** @type {?} */\n var sc = ExcelStrings.getExcelColumn(values.indexOf(sortingExpression.fieldName));\n /** @type {?} */\n var dir = sortingExpression.dir - 1;\n sortString = \"\";\n }\n folder.file('table1.xml', ExcelStrings.getTablesXML(dimension, tableColumns, sortString));\n };\n return TablesFile;\n}());\n/**\n * @hidden\n */\nvar /**\n * @hidden\n */\nWorksheetRelsFile = /** @class */ (function () {\n function WorksheetRelsFile() {\n }\n /**\n * @param {?} folder\n * @param {?} worksheetData\n * @return {?}\n */\n WorksheetRelsFile.prototype.writeElement = /**\n * @param {?} folder\n * @param {?} worksheetData\n * @return {?}\n */\n function (folder, worksheetData) {\n folder.file('sheet1.xml.rels', ExcelStrings.getWorksheetRels());\n };\n return WorksheetRelsFile;\n}());\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n/**\n * @hidden\n */\nvar /**\n * @hidden\n */\nRootExcelFolder = /** @class */ (function () {\n function RootExcelFolder() {\n }\n Object.defineProperty(RootExcelFolder.prototype, \"folderName\", {\n get: /**\n * @return {?}\n */\n function () {\n return '';\n },\n enumerable: true,\n configurable: true\n });\n /**\n * @param {?} data\n * @return {?}\n */\n RootExcelFolder.prototype.childFiles = /**\n * @param {?} data\n * @return {?}\n */\n function (data) {\n return [ExcelFileTypes.ContentTypesFile];\n };\n /**\n * @param {?} data\n * @return {?}\n */\n RootExcelFolder.prototype.childFolders = /**\n * @param {?} data\n * @return {?}\n */\n function (data) {\n return [\n ExcelFolderTypes.RootRelsExcelFolder,\n ExcelFolderTypes.DocPropsExcelFolder,\n ExcelFolderTypes.XLExcelFolder\n ];\n };\n return RootExcelFolder;\n}());\n/**\n * @hidden\n */\nvar /**\n * @hidden\n */\nRootRelsExcelFolder = /** @class */ (function () {\n function RootRelsExcelFolder() {\n }\n Object.defineProperty(RootRelsExcelFolder.prototype, \"folderName\", {\n get: /**\n * @return {?}\n */\n function () {\n return '_rels';\n },\n enumerable: true,\n configurable: true\n });\n /**\n * @param {?} data\n * @return {?}\n */\n RootRelsExcelFolder.prototype.childFiles = /**\n * @param {?} data\n * @return {?}\n */\n function (data) {\n return [ExcelFileTypes.RootRelsFile];\n };\n /**\n * @param {?} data\n * @return {?}\n */\n RootRelsExcelFolder.prototype.childFolders = /**\n * @param {?} data\n * @return {?}\n */\n function (data) {\n return [];\n };\n return RootRelsExcelFolder;\n}());\n/**\n * @hidden\n */\nvar /**\n * @hidden\n */\nDocPropsExcelFolder = /** @class */ (function () {\n function DocPropsExcelFolder() {\n }\n Object.defineProperty(DocPropsExcelFolder.prototype, \"folderName\", {\n get: /**\n * @return {?}\n */\n function () {\n return 'docProps';\n },\n enumerable: true,\n configurable: true\n });\n /**\n * @param {?} data\n * @return {?}\n */\n DocPropsExcelFolder.prototype.childFiles = /**\n * @param {?} data\n * @return {?}\n */\n function (data) {\n return [\n ExcelFileTypes.AppFile,\n ExcelFileTypes.CoreFile\n ];\n };\n /**\n * @param {?} data\n * @return {?}\n */\n DocPropsExcelFolder.prototype.childFolders = /**\n * @param {?} data\n * @return {?}\n */\n function (data) {\n return [];\n };\n return DocPropsExcelFolder;\n}());\n/**\n * @hidden\n */\nvar /**\n * @hidden\n */\nXLExcelFolder = /** @class */ (function () {\n function XLExcelFolder() {\n }\n Object.defineProperty(XLExcelFolder.prototype, \"folderName\", {\n get: /**\n * @return {?}\n */\n function () {\n return 'xl';\n },\n enumerable: true,\n configurable: true\n });\n /**\n * @param {?} data\n * @return {?}\n */\n XLExcelFolder.prototype.childFiles = /**\n * @param {?} data\n * @return {?}\n */\n function (data) {\n /** @type {?} */\n var retVal = [\n ExcelFileTypes.StyleFile,\n ExcelFileTypes.WorkbookFile\n ];\n if (!data.isEmpty) {\n retVal.push(ExcelFileTypes.SharedStringsFile);\n }\n return retVal;\n };\n /**\n * @param {?} data\n * @return {?}\n */\n XLExcelFolder.prototype.childFolders = /**\n * @param {?} data\n * @return {?}\n */\n function (data) {\n /** @type {?} */\n var retVal = [\n ExcelFolderTypes.XLRelsExcelFolder,\n ExcelFolderTypes.ThemeExcelFolder,\n ExcelFolderTypes.WorksheetsExcelFolder\n ];\n if (!data.isEmpty && data.options.exportAsTable) {\n retVal.push(ExcelFolderTypes.TablesExcelFolder);\n }\n return retVal;\n };\n return XLExcelFolder;\n}());\n/**\n * @hidden\n */\nvar /**\n * @hidden\n */\nXLRelsExcelFolder = /** @class */ (function () {\n function XLRelsExcelFolder() {\n }\n Object.defineProperty(XLRelsExcelFolder.prototype, \"folderName\", {\n get: /**\n * @return {?}\n */\n function () {\n return '_rels';\n },\n enumerable: true,\n configurable: true\n });\n /**\n * @param {?} data\n * @return {?}\n */\n XLRelsExcelFolder.prototype.childFiles = /**\n * @param {?} data\n * @return {?}\n */\n function (data) {\n return [ExcelFileTypes.WorkbookRelsFile];\n };\n /**\n * @param {?} data\n * @return {?}\n */\n XLRelsExcelFolder.prototype.childFolders = /**\n * @param {?} data\n * @return {?}\n */\n function (data) {\n return [];\n };\n return XLRelsExcelFolder;\n}());\n/**\n * @hidden\n */\nvar /**\n * @hidden\n */\nThemeExcelFolder = /** @class */ (function () {\n function ThemeExcelFolder() {\n }\n Object.defineProperty(ThemeExcelFolder.prototype, \"folderName\", {\n get: /**\n * @return {?}\n */\n function () {\n return 'theme';\n },\n enumerable: true,\n configurable: true\n });\n /**\n * @param {?} data\n * @return {?}\n */\n ThemeExcelFolder.prototype.childFiles = /**\n * @param {?} data\n * @return {?}\n */\n function (data) {\n return [ExcelFileTypes.ThemeFile];\n };\n /**\n * @param {?} data\n * @return {?}\n */\n ThemeExcelFolder.prototype.childFolders = /**\n * @param {?} data\n * @return {?}\n */\n function (data) {\n return [];\n };\n return ThemeExcelFolder;\n}());\n/**\n * @hidden\n */\nvar /**\n * @hidden\n */\nWorksheetsExcelFolder = /** @class */ (function () {\n function WorksheetsExcelFolder() {\n }\n Object.defineProperty(WorksheetsExcelFolder.prototype, \"folderName\", {\n get: /**\n * @return {?}\n */\n function () {\n return 'worksheets';\n },\n enumerable: true,\n configurable: true\n });\n /**\n * @param {?} data\n * @return {?}\n */\n WorksheetsExcelFolder.prototype.childFiles = /**\n * @param {?} data\n * @return {?}\n */\n function (data) {\n return [ExcelFileTypes.WorksheetFile];\n };\n /**\n * @param {?} data\n * @return {?}\n */\n WorksheetsExcelFolder.prototype.childFolders = /**\n * @param {?} data\n * @return {?}\n */\n function (data) {\n return data.isEmpty || !data.options.exportAsTable ? [] : [ExcelFolderTypes.WorksheetsRelsExcelFolder];\n };\n return WorksheetsExcelFolder;\n}());\n/**\n * @hidden\n */\nvar /**\n * @hidden\n */\nTablesExcelFolder = /** @class */ (function () {\n function TablesExcelFolder() {\n }\n Object.defineProperty(TablesExcelFolder.prototype, \"folderName\", {\n get: /**\n * @return {?}\n */\n function () {\n return 'tables';\n },\n enumerable: true,\n configurable: true\n });\n /**\n * @param {?} data\n * @return {?}\n */\n TablesExcelFolder.prototype.childFiles = /**\n * @param {?} data\n * @return {?}\n */\n function (data) {\n return [ExcelFileTypes.TablesFile];\n };\n /**\n * @param {?} data\n * @return {?}\n */\n TablesExcelFolder.prototype.childFolders = /**\n * @param {?} data\n * @return {?}\n */\n function (data) {\n return [];\n };\n return TablesExcelFolder;\n}());\n/**\n * @hidden\n */\nvar /**\n * @hidden\n */\nWorksheetsRelsExcelFolder = /** @class */ (function () {\n function WorksheetsRelsExcelFolder() {\n }\n Object.defineProperty(WorksheetsRelsExcelFolder.prototype, \"folderName\", {\n get: /**\n * @return {?}\n */\n function () {\n return '_rels';\n },\n enumerable: true,\n configurable: true\n });\n /**\n * @param {?} data\n * @return {?}\n */\n WorksheetsRelsExcelFolder.prototype.childFiles = /**\n * @param {?} data\n * @return {?}\n */\n function (data) {\n return [ExcelFileTypes.WorksheetRelsFile];\n };\n /**\n * @param {?} data\n * @return {?}\n */\n WorksheetsRelsExcelFolder.prototype.childFolders = /**\n * @param {?} data\n * @return {?}\n */\n function (data) {\n return [];\n };\n return WorksheetsRelsExcelFolder;\n}());\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n/**\n * @hidden\n */\nvar /**\n * @hidden\n */\nExcelElementsFactory = /** @class */ (function () {\n function ExcelElementsFactory() {\n }\n /**\n * @param {?} type\n * @return {?}\n */\n ExcelElementsFactory.getExcelFolder = /**\n * @param {?} type\n * @return {?}\n */\n function (type) {\n switch (type) {\n case ExcelFolderTypes.RootExcelFolder:\n return new RootExcelFolder();\n case ExcelFolderTypes.RootRelsExcelFolder:\n return new RootRelsExcelFolder();\n case ExcelFolderTypes.DocPropsExcelFolder:\n return new DocPropsExcelFolder();\n case ExcelFolderTypes.XLExcelFolder:\n return new XLExcelFolder();\n case ExcelFolderTypes.XLRelsExcelFolder:\n return new XLRelsExcelFolder();\n case ExcelFolderTypes.ThemeExcelFolder:\n return new ThemeExcelFolder();\n case ExcelFolderTypes.WorksheetsExcelFolder:\n return new WorksheetsExcelFolder();\n case ExcelFolderTypes.WorksheetsRelsExcelFolder:\n return new WorksheetsRelsExcelFolder();\n case ExcelFolderTypes.TablesExcelFolder:\n return new TablesExcelFolder();\n default:\n throw new Error('Unknown excel folder type!');\n }\n };\n /**\n * @param {?} type\n * @return {?}\n */\n ExcelElementsFactory.getExcelFile = /**\n * @param {?} type\n * @return {?}\n */\n function (type) {\n switch (type) {\n case ExcelFileTypes.RootRelsFile:\n return new RootRelsFile();\n case ExcelFileTypes.AppFile:\n return new AppFile();\n case ExcelFileTypes.CoreFile:\n return new CoreFile();\n case ExcelFileTypes.WorkbookRelsFile:\n return new WorkbookRelsFile();\n case ExcelFileTypes.ThemeFile:\n return new ThemeFile();\n case ExcelFileTypes.WorksheetFile:\n return new WorksheetFile();\n case ExcelFileTypes.StyleFile:\n return new StyleFile();\n case ExcelFileTypes.WorkbookFile:\n return new WorkbookFile();\n case ExcelFileTypes.ContentTypesFile:\n return new ContentTypesFile();\n case ExcelFileTypes.SharedStringsFile:\n return new SharedStringsFile();\n case ExcelFileTypes.WorksheetRelsFile:\n return new WorksheetRelsFile();\n case ExcelFileTypes.TablesFile:\n return new TablesFile();\n default:\n throw Error('Unknown excel file type!');\n }\n };\n return ExcelElementsFactory;\n}());\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n/**\n * @hidden\n */\nvar WorksheetDataDictionary = /** @class */ (function () {\n function WorksheetDataDictionary(columnCount, columnWidth) {\n this.hasNonStringValues = false;\n this._dictionary = {};\n this._widthsDictionary = {};\n this._counter = 0;\n this.dirtyKeyCollections();\n this._calculateColumnWidth = !columnWidth;\n this._columnWidths = new Array(columnCount);\n this._columnTypeInfo = new Array(columnCount);\n if (!this._calculateColumnWidth) {\n this._columnWidths.fill(columnWidth);\n }\n this.stringsCount = 0;\n }\n Object.defineProperty(WorksheetDataDictionary.prototype, \"columnWidths\", {\n get: /**\n * @return {?}\n */\n function () {\n return this._columnWidths;\n },\n enumerable: true,\n configurable: true\n });\n /**\n * @param {?} value\n * @param {?} column\n * @param {?} isHeader\n * @return {?}\n */\n WorksheetDataDictionary.prototype.saveValue = /**\n * @param {?} value\n * @param {?} column\n * @param {?} isHeader\n * @return {?}\n */\n function (value, column, isHeader) {\n if (this._columnTypeInfo[column] === undefined && isHeader === false) {\n this._columnTypeInfo[column] = typeof value === 'string' ||\n typeof value === 'boolean' ||\n value instanceof Date;\n }\n /** @type {?} */\n var sanitizedValue = '';\n /** @type {?} */\n var isSavedAsString = this._columnTypeInfo[column] || isHeader;\n if (isSavedAsString) {\n sanitizedValue = this.sanitizeValue(value);\n if (this._dictionary[sanitizedValue] === undefined) {\n this._dictionary[sanitizedValue] = this._counter++;\n this.dirtyKeyCollections();\n }\n this.stringsCount++;\n }\n else {\n this.hasNonStringValues = true;\n }\n if (this._calculateColumnWidth) {\n /** @type {?} */\n var width = this.getTextWidth(value);\n /** @type {?} */\n var maxWidth = Math.max(this._columnWidths[column] || 0, width);\n this._columnWidths[column] = maxWidth;\n }\n return isSavedAsString ? this.getSanitizedValue(sanitizedValue) : -1;\n };\n /**\n * @param {?} value\n * @return {?}\n */\n WorksheetDataDictionary.prototype.getValue = /**\n * @param {?} value\n * @return {?}\n */\n function (value) {\n return this.getSanitizedValue(this.sanitizeValue(value));\n };\n /**\n * @param {?} sanitizedValue\n * @return {?}\n */\n WorksheetDataDictionary.prototype.getSanitizedValue = /**\n * @param {?} sanitizedValue\n * @return {?}\n */\n function (sanitizedValue) {\n return this._dictionary[sanitizedValue];\n };\n /**\n * @return {?}\n */\n WorksheetDataDictionary.prototype.getKeys = /**\n * @return {?}\n */\n function () {\n if (!this._keysAreValid) {\n this._keys = Object.keys(this._dictionary);\n this._keysAreValid = true;\n }\n return this._keys;\n };\n /**\n * @private\n * @param {?} value\n * @return {?}\n */\n WorksheetDataDictionary.prototype.getTextWidth = /**\n * @private\n * @param {?} value\n * @return {?}\n */\n function (value) {\n if (this._widthsDictionary[value] === undefined) {\n /** @type {?} */\n var context = this.getContext();\n /** @type {?} */\n var metrics = context.measureText(value);\n this._widthsDictionary[value] = metrics.width + WorksheetDataDictionary.TEXT_PADDING;\n }\n return this._widthsDictionary[value];\n };\n /**\n * @private\n * @return {?}\n */\n WorksheetDataDictionary.prototype.getContext = /**\n * @private\n * @return {?}\n */\n function () {\n if (!this._context) {\n /** @type {?} */\n var canvas = document.createElement('canvas');\n this._context = canvas.getContext('2d');\n this._context.font = WorksheetDataDictionary.DEFAULT_FONT;\n }\n return this._context;\n };\n /**\n * @private\n * @param {?} value\n * @return {?}\n */\n WorksheetDataDictionary.prototype.sanitizeValue = /**\n * @private\n * @param {?} value\n * @return {?}\n */\n function (value) {\n if (ExportUtilities.hasValue(value) === false) {\n return '';\n }\n else {\n /** @type {?} */\n var stringValue = String(value);\n return stringValue.replace(/&/g, '&')\n .replace(//g, '>')\n .replace(/\"/g, '"')\n .replace(/'/g, ''');\n }\n };\n /**\n * @private\n * @return {?}\n */\n WorksheetDataDictionary.prototype.dirtyKeyCollections = /**\n * @private\n * @return {?}\n */\n function () {\n this._keysAreValid = false;\n };\n WorksheetDataDictionary.DEFAULT_FONT = '11pt Calibri';\n WorksheetDataDictionary.TEXT_PADDING = 5;\n return WorksheetDataDictionary;\n}());\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n/**\n * @hidden\n */\nvar /**\n * @hidden\n */\nWorksheetData = /** @class */ (function () {\n function WorksheetData(_data, options, indexOfLastPinnedColumn, sort, isTreeGridData) {\n if (isTreeGridData === void 0) { isTreeGridData = false; }\n this._data = _data;\n this.options = options;\n this.indexOfLastPinnedColumn = indexOfLastPinnedColumn;\n this.sort = sort;\n this.isTreeGridData = isTreeGridData;\n this.initializeData();\n }\n Object.defineProperty(WorksheetData.prototype, \"data\", {\n get: /**\n * @return {?}\n */\n function () {\n return this._data;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(WorksheetData.prototype, \"columnCount\", {\n get: /**\n * @return {?}\n */\n function () {\n return this._columnCount;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(WorksheetData.prototype, \"rowCount\", {\n get: /**\n * @return {?}\n */\n function () {\n return this._rowCount;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(WorksheetData.prototype, \"isEmpty\", {\n get: /**\n * @return {?}\n */\n function () {\n return !this.rowCount || !this._columnCount;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(WorksheetData.prototype, \"keys\", {\n get: /**\n * @return {?}\n */\n function () {\n return this._keys;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(WorksheetData.prototype, \"isSpecialData\", {\n get: /**\n * @return {?}\n */\n function () {\n return this._isSpecialData;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(WorksheetData.prototype, \"dataDictionary\", {\n get: /**\n * @return {?}\n */\n function () {\n return this._dataDictionary;\n },\n enumerable: true,\n configurable: true\n });\n /**\n * @private\n * @return {?}\n */\n WorksheetData.prototype.initializeData = /**\n * @private\n * @return {?}\n */\n function () {\n if (!this._data || this._data.length === 0) {\n return;\n }\n /** @type {?} */\n var actualData = this._data.map(function (item) { return item.rowData; });\n this._keys = ExportUtilities.getKeysFromData(actualData);\n if (this._keys.length === 0) {\n return;\n }\n this._isSpecialData = ExportUtilities.isSpecialData(actualData);\n this._columnCount = this._keys.length;\n this._rowCount = this._data.length + 1;\n this._dataDictionary = new WorksheetDataDictionary(this._columnCount, this.options.columnWidth);\n };\n return WorksheetData;\n}());\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n/**\n * **Ignite UI for Angular Excel Exporter Service** -\n * [Documentation](https://www.infragistics.com/products/ignite-ui-angular/angular/components/exporter_excel.html)\n *\n * The Ignite UI for Angular Excel Exporter service can export data in Microsoft® Excel® format from both raw data\n * (array) or from an `IgxGrid`.\n *\n * Example:\n * ```typescript\n * public localData = [\n * { Name: \"Eric Ridley\", Age: \"26\" },\n * { Name: \"Alanis Brook\", Age: \"22\" },\n * { Name: \"Jonathan Morris\", Age: \"23\" }\n * ];\n *\n * constructor(private excelExportService: IgxExcelExporterService) {\n * }\n *\n * this.excelExportService.exportData(this.localData, new IgxExcelExporterOptions(\"FileName\"));\n * ```\n */\nvar IgxExcelExporterService = /** @class */ (function (_super) {\n __extends(IgxExcelExporterService, _super);\n function IgxExcelExporterService() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n /**\n * This event is emitted when the export process finishes.\n * ```typescript\n * this.exporterService.onExportEnded.subscribe((args: IExcelExportEndedEventArgs) => {\n * // put event handler code here\n * });\n * ```\n * \\@memberof IgxExcelExporterService\n */\n _this.onExportEnded = new EventEmitter();\n return _this;\n }\n /**\n * @private\n * @param {?} folder\n * @param {?} zip\n * @param {?} worksheetData\n * @return {?}\n */\n IgxExcelExporterService.populateFolder = /**\n * @private\n * @param {?} folder\n * @param {?} zip\n * @param {?} worksheetData\n * @return {?}\n */\n function (folder, zip, worksheetData) {\n var e_1, _a, e_2, _b;\n try {\n for (var _c = __values(folder.childFolders(worksheetData)), _d = _c.next(); !_d.done; _d = _c.next()) {\n var childFolder = _d.value;\n /** @type {?} */\n var folderIntance = ExcelElementsFactory.getExcelFolder(childFolder);\n /** @type {?} */\n var zipFolder = zip.folder(folderIntance.folderName);\n IgxExcelExporterService.populateFolder(folderIntance, zipFolder, worksheetData);\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (_d && !_d.done && (_a = _c.return)) _a.call(_c);\n }\n finally { if (e_1) throw e_1.error; }\n }\n try {\n for (var _e = __values(folder.childFiles(worksheetData)), _f = _e.next(); !_f.done; _f = _e.next()) {\n var childFile = _f.value;\n /** @type {?} */\n var fileInstance = ExcelElementsFactory.getExcelFile(childFile);\n fileInstance.writeElement(zip, worksheetData);\n }\n }\n catch (e_2_1) { e_2 = { error: e_2_1 }; }\n finally {\n try {\n if (_f && !_f.done && (_b = _e.return)) _b.call(_e);\n }\n finally { if (e_2) throw e_2.error; }\n }\n };\n /**\n * @protected\n * @param {?} data\n * @param {?} options\n * @return {?}\n */\n IgxExcelExporterService.prototype.exportDataImplementation = /**\n * @protected\n * @param {?} data\n * @param {?} options\n * @return {?}\n */\n function (data, options) {\n var _this = this;\n if (this._isTreeGrid) {\n /** @type {?} */\n var maxLevel_1 = 0;\n data.forEach(function (r) {\n maxLevel_1 = Math.max(maxLevel_1, r.originalRowData.level);\n });\n if (maxLevel_1 > 7) {\n throw Error('Can create an outline of up to eight levels!');\n }\n }\n /** @type {?} */\n var worksheetData = new WorksheetData(data, options, this._indexOfLastPinnedColumn, this._sort, this._isTreeGrid);\n this._xlsx = new JSZip();\n /** @type {?} */\n var rootFolder = ExcelElementsFactory.getExcelFolder(ExcelFolderTypes.RootExcelFolder);\n IgxExcelExporterService.populateFolder(rootFolder, this._xlsx, worksheetData);\n this._xlsx.generateAsync(IgxExcelExporterService.ZIP_OPTIONS).then(function (result) {\n _this.saveFile(result, options.fileName);\n _this.onExportEnded.emit({ xlsx: _this._xlsx });\n });\n };\n /**\n * @private\n * @param {?} data\n * @param {?} fileName\n * @return {?}\n */\n IgxExcelExporterService.prototype.saveFile = /**\n * @private\n * @param {?} data\n * @param {?} fileName\n * @return {?}\n */\n function (data, fileName) {\n /** @type {?} */\n var blob = new Blob([ExportUtilities.stringToArrayBuffer(atob(data))], {\n type: ''\n });\n ExportUtilities.saveBlobToFile(blob, fileName);\n };\n IgxExcelExporterService.ZIP_OPTIONS = (/** @type {?} */ ({ compression: 'DEFLATE', type: 'base64' }));\n IgxExcelExporterService.decorators = [\n { type: Injectable }\n ];\n IgxExcelExporterService.propDecorators = {\n onExportEnded: [{ type: Output }]\n };\n return IgxExcelExporterService;\n}(IgxBaseExporter));\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n/**\n * Objects of this class are used to configure the Excel exporting process.\n */\nvar /**\n * Objects of this class are used to configure the Excel exporting process.\n */\nIgxExcelExporterOptions = /** @class */ (function (_super) {\n __extends(IgxExcelExporterOptions, _super);\n function IgxExcelExporterOptions(fileName) {\n var _this = _super.call(this, fileName, '.xlsx') || this;\n /**\n * Specifies if column pinning should be ignored. If ignoreColumnsOrder is set to true,\n * this option will always be considered as set to true.\n * ```typescript\n * let ignorePinning = this.exportOptions.ignorePinning;\n * this.exportOptions.ignorePinning = true;\n * ```\n * \\@memberof IgxExcelExporterOptions\n */\n _this.ignorePinning = false;\n /**\n * Specifies whether the exported data should be formatted as Excel table. (True by default)\n * ```typescript\n * let exportAsTable = this.exportOptions.exportAsTable;\n * this.exportOptions.exportAsTable = false;\n * ```\n * \\@memberof IgxExcelExporterOptions\n */\n _this.exportAsTable = true;\n return _this;\n }\n Object.defineProperty(IgxExcelExporterOptions.prototype, \"columnWidth\", {\n /**\n * Gets the width of the columns in the exported excel file.\n * ```typescript\n * let width = this.exportOptions.columnWidth;\n * ```\n * @memberof IgxExcelExporterOptions\n */\n get: /**\n * Gets the width of the columns in the exported excel file.\n * ```typescript\n * let width = this.exportOptions.columnWidth;\n * ```\n * \\@memberof IgxExcelExporterOptions\n * @return {?}\n */\n function () {\n return this._columnWidth;\n },\n /**\n * Sets the width of the columns in the exported excel file. If left unspecified or 0,\n * the width of the largest string in the column will be used.\n * ```typescript\n * this.exportOptions.columnWidth = 55;\n * ```\n * @memberof IgxExcelExporterOptions\n */\n set: /**\n * Sets the width of the columns in the exported excel file. If left unspecified or 0,\n * the width of the largest string in the column will be used.\n * ```typescript\n * this.exportOptions.columnWidth = 55;\n * ```\n * \\@memberof IgxExcelExporterOptions\n * @param {?} value\n * @return {?}\n */\n function (value) {\n if (value < 0) {\n throw Error('Invalid value for column width!');\n }\n this._columnWidth = value;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxExcelExporterOptions.prototype, \"rowHeight\", {\n /**\n * Gets the height of the rows in the exported excel file.\n * ```typescript\n * let height = this.exportOptions.rowHeight;\n * ```\n * @memberof IgxExcelExporterOptions\n */\n get: /**\n * Gets the height of the rows in the exported excel file.\n * ```typescript\n * let height = this.exportOptions.rowHeight;\n * ```\n * \\@memberof IgxExcelExporterOptions\n * @return {?}\n */\n function () {\n return this._rowHeight;\n },\n /**\n * Sets the height of the rows in the exported excel file. If left unspecified or 0,\n * the default height of the excel rows will be used.\n * ```typescript\n * this.exportOptions.rowHeight = 25;\n * ```\n * @memberof IgxExcelExporterOptions\n */\n set: /**\n * Sets the height of the rows in the exported excel file. If left unspecified or 0,\n * the default height of the excel rows will be used.\n * ```typescript\n * this.exportOptions.rowHeight = 25;\n * ```\n * \\@memberof IgxExcelExporterOptions\n * @param {?} value\n * @return {?}\n */\n function (value) {\n if (value < 0) {\n throw Error('Invalid value for row height!');\n }\n this._rowHeight = value;\n },\n enumerable: true,\n configurable: true\n });\n return IgxExcelExporterOptions;\n}(IgxExporterOptionsBase));\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n/** @enum {number} */\nvar HorizontalAlignment = {\n Left: -1,\n Center: -0.5,\n Right: 0,\n};\nHorizontalAlignment[HorizontalAlignment.Left] = 'Left';\nHorizontalAlignment[HorizontalAlignment.Center] = 'Center';\nHorizontalAlignment[HorizontalAlignment.Right] = 'Right';\n/** @enum {number} */\nvar VerticalAlignment = {\n Top: -1,\n Middle: -0.5,\n Bottom: 0,\n};\nVerticalAlignment[VerticalAlignment.Top] = 'Top';\nVerticalAlignment[VerticalAlignment.Middle] = 'Middle';\nVerticalAlignment[VerticalAlignment.Bottom] = 'Bottom';\nvar Point = /** @class */ (function () {\n function Point(x, y) {\n this.x = x;\n this.y = y;\n }\n return Point;\n}());\n/**\n * @hidden\n */\nvar /**\n * @hidden\n */\nUtil = /** @class */ (function () {\n function Util() {\n }\n /**\n * @hidden\n * Calculates the rectangle of target for provided overlay settings. Defaults to 0,0,0,0,0,0 rectangle\n * if no target is provided\n * @param settings Overlay settings for which to calculate target rectangle\n */\n /**\n * @hidden\n * Calculates the rectangle of target for provided overlay settings. Defaults to 0,0,0,0,0,0 rectangle\n * if no target is provided\n * @param {?} settings Overlay settings for which to calculate target rectangle\n * @return {?}\n */\n Util.getTargetRect = /**\n * @hidden\n * Calculates the rectangle of target for provided overlay settings. Defaults to 0,0,0,0,0,0 rectangle\n * if no target is provided\n * @param {?} settings Overlay settings for which to calculate target rectangle\n * @return {?}\n */\n function (settings) {\n /** @type {?} */\n var targetRect = {\n bottom: 0,\n height: 0,\n left: 0,\n right: 0,\n top: 0,\n width: 0\n };\n if (settings.target instanceof HTMLElement) {\n targetRect = ((/** @type {?} */ (settings.target))).getBoundingClientRect();\n }\n else if (settings.target instanceof Point) {\n /** @type {?} */\n var targetPoint = (/** @type {?} */ (settings.target));\n targetRect = {\n bottom: targetPoint.y,\n height: 0,\n left: targetPoint.x,\n right: targetPoint.x,\n top: targetPoint.y,\n width: 0\n };\n }\n return targetRect;\n };\n /** @hidden @internal */\n /**\n * @hidden \\@internal\n * @param {?} document\n * @return {?}\n */\n Util.getViewportRect = /**\n * @hidden \\@internal\n * @param {?} document\n * @return {?}\n */\n function (document) {\n /** @type {?} */\n var width = document.documentElement.clientWidth;\n /** @type {?} */\n var height = document.documentElement.clientHeight;\n /** @type {?} */\n var scrollPosition = Util.getViewportScrollPosition(document);\n return {\n top: scrollPosition.y,\n left: scrollPosition.x,\n right: scrollPosition.x + width,\n bottom: scrollPosition.y + height,\n width: width,\n height: height,\n };\n };\n /** @hidden @internal */\n /**\n * @hidden \\@internal\n * @param {?} document\n * @return {?}\n */\n Util.getViewportScrollPosition = /**\n * @hidden \\@internal\n * @param {?} document\n * @return {?}\n */\n function (document) {\n /** @type {?} */\n var documentElement = document.documentElement;\n /** @type {?} */\n var documentRect = documentElement.getBoundingClientRect();\n /** @type {?} */\n var horizontalScrollPosition = -documentRect.left || document.body.scrollLeft || window.scrollX || documentElement.scrollLeft || 0;\n /** @type {?} */\n var verticalScrollPosition = -documentRect.top || document.body.scrollTop || window.scrollY || documentElement.scrollTop || 0;\n return new Point(horizontalScrollPosition, verticalScrollPosition);\n };\n /** @hidden @internal*/\n /**\n * @hidden \\@internal\n * @param {?} object\n * @return {?}\n */\n Util.cloneInstance = /**\n * @hidden \\@internal\n * @param {?} object\n * @return {?}\n */\n function (object) {\n /** @type {?} */\n var clonedObj = Object.assign(Object.create(Object.getPrototypeOf(object)), object);\n clonedObj.settings = cloneValue(clonedObj.settings);\n return clonedObj;\n };\n return Util;\n}());\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n/**\n * Positions the element based on the directions passed in trough PositionSettings.\n * These are Top/Middle/Bottom for verticalDirection and Left/Center/Right for horizontalDirection\n */\nvar /**\n * Positions the element based on the directions passed in trough PositionSettings.\n * These are Top/Middle/Bottom for verticalDirection and Left/Center/Right for horizontalDirection\n */\nGlobalPositionStrategy = /** @class */ (function () {\n function GlobalPositionStrategy(settings) {\n this._defaultSettings = {\n horizontalDirection: HorizontalAlignment.Center,\n verticalDirection: VerticalAlignment.Middle,\n horizontalStartPoint: HorizontalAlignment.Center,\n verticalStartPoint: VerticalAlignment.Middle,\n openAnimation: fadeIn,\n closeAnimation: fadeOut,\n minSize: { width: 0, height: 0 }\n };\n this.settings = Object.assign({}, this._defaultSettings, settings);\n }\n /** @inheritdoc */\n /**\n * \\@inheritdoc\n * @param {?} contentElement\n * @param {?=} size\n * @param {?=} document\n * @param {?=} initialCall\n * @return {?}\n */\n GlobalPositionStrategy.prototype.position = /**\n * \\@inheritdoc\n * @param {?} contentElement\n * @param {?=} size\n * @param {?=} document\n * @param {?=} initialCall\n * @return {?}\n */\n function (contentElement, size, document, initialCall) {\n contentElement.classList.add('igx-overlay__content--relative');\n contentElement.parentElement.classList.add('igx-overlay__wrapper--flex');\n this.setPosition(contentElement, this.settings);\n };\n /**\n * @protected\n * @param {?} contentElement\n * @param {?} settings\n * @return {?}\n */\n GlobalPositionStrategy.prototype.setPosition = /**\n * @protected\n * @param {?} contentElement\n * @param {?} settings\n * @return {?}\n */\n function (contentElement, settings) {\n switch (this.settings.horizontalDirection) {\n case HorizontalAlignment.Left:\n contentElement.parentElement.style.justifyContent = 'flex-start';\n break;\n case HorizontalAlignment.Center:\n contentElement.parentElement.style.justifyContent = 'center';\n break;\n case HorizontalAlignment.Right:\n contentElement.parentElement.style.justifyContent = 'flex-end';\n break;\n default:\n break;\n }\n switch (this.settings.verticalDirection) {\n case VerticalAlignment.Top:\n contentElement.parentElement.style.alignItems = 'flex-start';\n break;\n case VerticalAlignment.Middle:\n contentElement.parentElement.style.alignItems = 'center';\n break;\n case VerticalAlignment.Bottom:\n contentElement.parentElement.style.alignItems = 'flex-end';\n break;\n default:\n break;\n }\n };\n /** @inheritdoc */\n /**\n * \\@inheritdoc\n * @return {?}\n */\n GlobalPositionStrategy.prototype.clone = /**\n * \\@inheritdoc\n * @return {?}\n */\n function () {\n return Util.cloneInstance(this);\n };\n return GlobalPositionStrategy;\n}());\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n/**\n * @abstract\n */\nvar /**\n * @abstract\n */\nScrollStrategy = /** @class */ (function () {\n function ScrollStrategy(scrollContainer) {\n }\n return ScrollStrategy;\n}());\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n/**\n * Empty scroll strategy. Does nothing.\n */\nvar /**\n * Empty scroll strategy. Does nothing.\n */\nNoOpScrollStrategy = /** @class */ (function (_super) {\n __extends(NoOpScrollStrategy, _super);\n function NoOpScrollStrategy(scrollContainer) {\n return _super.call(this, scrollContainer) || this;\n }\n /** @inheritdoc */\n /**\n * \\@inheritdoc\n * @param {?} document\n * @param {?} overlayService\n * @param {?} id\n * @return {?}\n */\n NoOpScrollStrategy.prototype.initialize = /**\n * \\@inheritdoc\n * @param {?} document\n * @param {?} overlayService\n * @param {?} id\n * @return {?}\n */\n function (document, overlayService, id) { };\n /** @inheritdoc */\n /**\n * \\@inheritdoc\n * @return {?}\n */\n NoOpScrollStrategy.prototype.attach = /**\n * \\@inheritdoc\n * @return {?}\n */\n function () { };\n /** @inheritdoc */\n /**\n * \\@inheritdoc\n * @return {?}\n */\n NoOpScrollStrategy.prototype.detach = /**\n * \\@inheritdoc\n * @return {?}\n */\n function () { };\n return NoOpScrollStrategy;\n}(ScrollStrategy));\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n/**\n * @hidden\n * @param {?} message\n * @return {?}\n */\nfunction DeprecateMethod(message) {\n /** @type {?} */\n var isMessageShown = false;\n return function (target, key, descriptor) {\n if (descriptor && descriptor.value) {\n /** @type {?} */\n var originalMethod_1 = descriptor.value;\n descriptor.value = function () {\n /** @type {?} */\n var targetName = typeof target === 'function' ? target.name : target.constructor.name;\n isMessageShown = showMessage(targetName + \".\" + key + \": \" + message, isMessageShown);\n return originalMethod_1.call(this, arguments);\n };\n return descriptor;\n }\n };\n}\n/**\n * @hidden\n * @param {?} message\n * @return {?}\n */\nfunction DeprecateProperty(message) {\n return function (target, key) {\n /** @type {?} */\n var isMessageShown = false;\n /** @type {?} */\n var messageToDisplay = target.constructor.name + \".\" + key + \": \" + message;\n // if the target already has the property defined\n /** @type {?} */\n var originalDescriptor = Object.getOwnPropertyDescriptor(target, key);\n if (originalDescriptor) {\n /** @type {?} */\n var getter_1;\n /** @type {?} */\n var setter_1;\n getter_1 = originalDescriptor.get;\n setter_1 = originalDescriptor.set;\n if (getter_1) {\n originalDescriptor.get = function () {\n isMessageShown = showMessage(messageToDisplay, isMessageShown);\n return getter_1.call(this);\n };\n }\n if (setter_1) {\n originalDescriptor.set = function (value) {\n isMessageShown = showMessage(messageToDisplay, isMessageShown);\n setter_1.call(this, value);\n };\n }\n return originalDescriptor;\n }\n // the target doesn't contain a descriptor for that property, so create one\n // use backing field to set/get the value of the property to ensure there won't be infinite recursive calls\n /** @type {?} */\n var newKey = generateUniqueKey(target, key);\n Object.defineProperty(target, key, {\n configurable: true,\n enumerable: true,\n set: function (value) {\n isMessageShown = showMessage(messageToDisplay, isMessageShown);\n this[newKey] = value;\n },\n get: function () {\n isMessageShown = showMessage(messageToDisplay, isMessageShown);\n return this[newKey];\n }\n });\n };\n}\n/**\n * @hidden\n * @param {?} target\n * @param {?} key\n * @return {?}\n */\nfunction generateUniqueKey(target, key) {\n /** @type {?} */\n var newKey = '_' + key;\n while (target.hasOwnProperty(newKey)) {\n newKey = '_' + newKey;\n }\n return newKey;\n}\n/**\n * @hidden\n * @param {?} message\n * @param {?} isMessageShown\n * @return {?}\n */\nfunction showMessage(message, isMessageShown) {\n if (!isMessageShown && isDevMode()) {\n console.warn(message);\n }\n return true;\n}\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n/** @type {?} */\nvar warningShown = false;\n/**\n * [Documentation](https://www.infragistics.com/products/ignite-ui-angular/angular/components/overlay_main.html)\n * The overlay service allows users to show components on overlay div above all other elements in the page.\n */\nvar IgxOverlayService = /** @class */ (function () {\n function IgxOverlayService(_factoryResolver, _appRef, _injector, builder, document, _zone) {\n var _this = this;\n this._factoryResolver = _factoryResolver;\n this._appRef = _appRef;\n this._injector = _injector;\n this.builder = builder;\n this.document = document;\n this._zone = _zone;\n this._componentId = 0;\n this._overlayInfos = [];\n this.destroy$ = new Subject();\n this._defaultSettings = {\n positionStrategy: new GlobalPositionStrategy(),\n scrollStrategy: new NoOpScrollStrategy(),\n modal: true,\n closeOnOutsideClick: true\n };\n /**\n * Emitted before the component is opened.\n * ```typescript\n * onOpening(event: OverlayCancelableEventArgs){\n * const onOpening = event;\n * }\n * ```\n */\n this.onOpening = new EventEmitter();\n /**\n * Emitted after the component is opened and all animations are finished.\n * ```typescript\n * onOpened(event: OverlayEventArgs){\n * const onOpened = event;\n * }\n * ```\n */\n this.onOpened = new EventEmitter();\n /**\n * Emitted before the component is closed.\n * ```typescript\n * onClosing(event: OverlayCancelableEventArgs){\n * const onClosing = event;\n * }\n * ```\n */\n this.onClosing = new EventEmitter();\n /**\n * Emitted after the component is closed and all animations are finished.\n * ```typescript\n * onClosed(event: OverlayEventArgs){\n * const onClosed = event;\n * }\n * ```\n */\n this.onClosed = new EventEmitter();\n /**\n * Emitted before animation is started\n * ```typescript\n * onAnimation(event: OverlayAnimationEventArgs){\n * const onAnimation = event;\n * }\n * ```\n */\n this.onAnimation = new EventEmitter();\n this.documentClicked = function (ev) {\n // if we get to modal overlay just return - we should not close anything under it\n // if we get to non-modal overlay do the next:\n // 1. Check it has close on outside click. If not go on to next overlay;\n // 2. If true check if click is on the element. If it is on the element we have closed\n // already all previous non-modal with close on outside click elements, so we return. If\n // not close the overlay and check next\n for (var i = _this._overlayInfos.length; i--;) {\n /** @type {?} */\n var info = _this._overlayInfos[i];\n if (info.settings.modal) {\n return;\n }\n if (info.settings.closeOnOutsideClick) {\n /** @type {?} */\n var target = (/** @type {?} */ (ev.target));\n // if the click is on the element do not close this overlay\n if (!info.elementRef.nativeElement.contains(target)) {\n // if we should exclude position target check if the click is over it. If so do not close overlay\n /** @type {?} */\n var positionTarget = (/** @type {?} */ (info.settings.positionStrategy.settings.target));\n /** @type {?} */\n var clickOnPositionTarget = false;\n if (positionTarget) {\n clickOnPositionTarget = positionTarget.contains(target);\n }\n if (!(info.settings.excludePositionTarget && clickOnPositionTarget)) {\n // if the click is outside click, but close animation has started do nothing\n if (!(info.closeAnimationPlayer && info.closeAnimationPlayer.hasStarted())) {\n _this._hide(info.id, ev);\n }\n }\n }\n else {\n // TODO: should we return here, or continue with next overlays\n return;\n }\n }\n }\n };\n /**\n * @hidden\n */\n this.repositionAll = function () {\n for (var i = _this._overlayInfos.length; i--;) {\n _this.reposition(_this._overlayInfos[i].id);\n }\n };\n this._document = (/** @type {?} */ (this.document));\n }\n /**\n * @param {?} component\n * @param {?=} settings\n * @param {?=} moduleRef\n * @return {?}\n */\n IgxOverlayService.prototype.attach = /**\n * @param {?} component\n * @param {?=} settings\n * @param {?=} moduleRef\n * @return {?}\n */\n function (component, settings, moduleRef) {\n /** @type {?} */\n var info;\n info = this.getOverlayInfo(component, moduleRef);\n // if there is no info most probably wrong type component was provided and we just go out\n if (!info) {\n return null;\n }\n info.id = (this._componentId++).toString();\n settings = Object.assign({}, this._defaultSettings, settings);\n info.settings = settings;\n this._overlayInfos.push(info);\n return info.id;\n };\n /**\n * @param {?} compOrId\n * @param {?=} settings\n * @return {?}\n */\n IgxOverlayService.prototype.show = /**\n * @param {?} compOrId\n * @param {?=} settings\n * @return {?}\n */\n function (compOrId, settings) {\n /** @type {?} */\n var info;\n /** @type {?} */\n var id;\n if (typeof compOrId === 'string') {\n id = compOrId;\n info = this.getOverlayById(compOrId);\n if (!info) {\n console.warn('igxOverlay.show was called with wrong id: ' + compOrId);\n return null;\n }\n }\n else {\n warningShown = showMessage('`show(component, settings?)` overload is deprecated. Use `attach(component)` to obtain an Id.' +\n 'Then `show(id, settings?)` with provided Id.', warningShown);\n id = (this._componentId++).toString();\n info = this.getOverlayInfo(compOrId);\n // if there is no info most probably wrong type component was provided and we just go out\n if (!info) {\n return;\n }\n info.id = id;\n }\n settings = Object.assign({}, this._defaultSettings, info.settings, settings);\n info.settings = settings;\n this._show(info);\n return id;\n };\n /**\n * Hides the component with the ID provided as a parameter.\n * ```typescript\n * this.overlay.hide(id);\n * ```\n */\n /**\n * Hides the component with the ID provided as a parameter.\n * ```typescript\n * this.overlay.hide(id);\n * ```\n * @param {?} id\n * @return {?}\n */\n IgxOverlayService.prototype.hide = /**\n * Hides the component with the ID provided as a parameter.\n * ```typescript\n * this.overlay.hide(id);\n * ```\n * @param {?} id\n * @return {?}\n */\n function (id) {\n this._hide(id);\n };\n /**\n * Hides all the components and the overlay.\n * ```typescript\n * this.overlay.hideAll();\n * ```\n */\n /**\n * Hides all the components and the overlay.\n * ```typescript\n * this.overlay.hideAll();\n * ```\n * @return {?}\n */\n IgxOverlayService.prototype.hideAll = /**\n * Hides all the components and the overlay.\n * ```typescript\n * this.overlay.hideAll();\n * ```\n * @return {?}\n */\n function () {\n // since overlays are removed on animation done, que all hides\n for (var i = this._overlayInfos.length; i--;) {\n this.hide(this._overlayInfos[i].id);\n }\n };\n /**\n * Repositions the component with ID provided as a parameter.\n * ```typescript\n * this.overlay.reposition(id);\n * ```\n */\n /**\n * Repositions the component with ID provided as a parameter.\n * ```typescript\n * this.overlay.reposition(id);\n * ```\n * @param {?} id\n * @return {?}\n */\n IgxOverlayService.prototype.reposition = /**\n * Repositions the component with ID provided as a parameter.\n * ```typescript\n * this.overlay.reposition(id);\n * ```\n * @param {?} id\n * @return {?}\n */\n function (id) {\n /** @type {?} */\n var overlayInfo = this.getOverlayById(id);\n if (!overlayInfo || !overlayInfo.settings) {\n console.error('Wrong id provided in overlay.reposition method. Id: ' + id);\n return;\n }\n /** @type {?} */\n var contentElement = overlayInfo.elementRef.nativeElement.parentElement;\n /** @type {?} */\n var contentElementRect = contentElement.getBoundingClientRect();\n overlayInfo.settings.positionStrategy.position(contentElement, {\n width: contentElementRect.width,\n height: contentElementRect.height\n }, this._document, false);\n };\n /**\n * @private\n * @param {?} info\n * @return {?}\n */\n IgxOverlayService.prototype._show = /**\n * @private\n * @param {?} info\n * @return {?}\n */\n function (info) {\n /** @type {?} */\n var eventArgs = { id: info.id, componentRef: info.componentRef, cancel: false };\n this.onOpening.emit(eventArgs);\n if (eventArgs.cancel) {\n if (info.componentRef) {\n this._appRef.detachView(info.componentRef.hostView);\n info.componentRef.destroy();\n }\n return;\n }\n // if there is no close animation player, or there is one but it is not started yet we are in clear\n // opening. Otherwise, if there is close animation player playing animation now we should not setup\n // overlay this is already done\n if (!info.closeAnimationPlayer || (info.closeAnimationPlayer && !info.closeAnimationPlayer.hasStarted())) {\n /** @type {?} */\n var elementRect = info.elementRef.nativeElement.getBoundingClientRect();\n info.initialSize = { width: elementRect.width, height: elementRect.height };\n info.hook = this.placeElementHook(info.elementRef.nativeElement);\n this.moveElementToOverlay(info);\n if (info.componentRef) {\n info.componentRef.changeDetectorRef.detectChanges();\n }\n this.updateSize(info);\n if (this._overlayInfos.indexOf(info) === -1) {\n this._overlayInfos.push(info);\n }\n info.settings.positionStrategy.position(info.elementRef.nativeElement.parentElement, { width: info.initialSize.width, height: info.initialSize.height }, document, true);\n info.settings.scrollStrategy.initialize(this._document, this, info.id);\n info.settings.scrollStrategy.attach();\n }\n this.addOutsideClickListener(info);\n this.addResizeHandler(info.id);\n if (info.settings.modal) {\n this.setupModalWrapper(info);\n }\n if (info.settings.positionStrategy.settings.openAnimation) {\n this.playOpenAnimation(info);\n }\n else {\n // to eliminate flickering show the element just before onOpened fire\n info.elementRef.nativeElement.parentElement.style.visibility = '';\n this.onOpened.emit({ id: info.id, componentRef: info.componentRef });\n }\n };\n /**\n * @private\n * @param {?} id\n * @param {?=} event\n * @return {?}\n */\n IgxOverlayService.prototype._hide = /**\n * @private\n * @param {?} id\n * @param {?=} event\n * @return {?}\n */\n function (id, event) {\n /** @type {?} */\n var info = this.getOverlayById(id);\n if (!info) {\n console.warn('igxOverlay.hide was called with wrong id: ' + id);\n return;\n }\n /** @type {?} */\n var eventArgs = { id: id, componentRef: info.componentRef, cancel: false, event: event };\n this.onClosing.emit(eventArgs);\n if (eventArgs.cancel) {\n return;\n }\n // TODO: synchronize where these are added/attached and where removed/detached\n info.settings.scrollStrategy.detach();\n this.removeOutsideClickListener(info);\n this.removeResizeHandler(info.id);\n /** @type {?} */\n var child = info.elementRef.nativeElement;\n if (info.settings.modal) {\n /** @type {?} */\n var parent_1 = (/** @type {?} */ (child.parentNode.parentNode));\n this.applyAnimationParams(parent_1, info.settings.positionStrategy.settings.closeAnimation);\n parent_1.classList.remove('igx-overlay__wrapper--modal');\n parent_1.classList.add('igx-overlay__wrapper');\n }\n if (info.settings.positionStrategy.settings.closeAnimation) {\n this.playCloseAnimation(info);\n }\n else {\n this.onCloseDone(info);\n }\n };\n /**\n * @private\n * @param {?} component\n * @param {?=} moduleRef\n * @return {?}\n */\n IgxOverlayService.prototype.getOverlayInfo = /**\n * @private\n * @param {?} component\n * @param {?=} moduleRef\n * @return {?}\n */\n function (component, moduleRef) {\n /** @type {?} */\n var info = { ngZone: this._zone };\n if (component instanceof ElementRef) {\n info.elementRef = (/** @type {?} */ (component));\n }\n else {\n /** @type {?} */\n var dynamicFactory = void 0;\n /** @type {?} */\n var factoryResolver = moduleRef ? moduleRef.componentFactoryResolver : this._factoryResolver;\n try {\n dynamicFactory = factoryResolver.resolveComponentFactory(component);\n }\n catch (error) {\n console.error(error);\n return null;\n }\n /** @type {?} */\n var injector = moduleRef ? moduleRef.injector : this._injector;\n /** @type {?} */\n var dynamicComponent = dynamicFactory.create(injector);\n this._appRef.attachView(dynamicComponent.hostView);\n // If the element is newly created from a Component, it is wrapped in 'ng-component' tag - we do not want that.\n /** @type {?} */\n var element = dynamicComponent.location.nativeElement;\n info.elementRef = (/** @type {?} */ ({ nativeElement: element }));\n info.componentRef = dynamicComponent;\n }\n return info;\n };\n /**\n * @private\n * @param {?} element\n * @return {?}\n */\n IgxOverlayService.prototype.placeElementHook = /**\n * @private\n * @param {?} element\n * @return {?}\n */\n function (element) {\n if (!element.parentElement) {\n return null;\n }\n /** @type {?} */\n var hook = this._document.createElement('div');\n element.parentElement.insertBefore(hook, element);\n return hook;\n };\n /**\n * @private\n * @param {?} info\n * @return {?}\n */\n IgxOverlayService.prototype.moveElementToOverlay = /**\n * @private\n * @param {?} info\n * @return {?}\n */\n function (info) {\n /** @type {?} */\n var wrapperElement = this.getWrapperElement();\n /** @type {?} */\n var contentElement = this.getContentElement(wrapperElement, info.settings.modal);\n this.getOverlayElement(info).appendChild(wrapperElement);\n /** @type {?} */\n var elementScrollTop = info.elementRef.nativeElement.scrollTop;\n contentElement.appendChild(info.elementRef.nativeElement);\n if (elementScrollTop) {\n info.elementRef.nativeElement.scrollTop = elementScrollTop;\n }\n };\n /**\n * @private\n * @return {?}\n */\n IgxOverlayService.prototype.getWrapperElement = /**\n * @private\n * @return {?}\n */\n function () {\n /** @type {?} */\n var wrapper = this._document.createElement('div');\n wrapper.classList.add('igx-overlay__wrapper');\n return wrapper;\n };\n /**\n * @private\n * @param {?} wrapperElement\n * @param {?} modal\n * @return {?}\n */\n IgxOverlayService.prototype.getContentElement = /**\n * @private\n * @param {?} wrapperElement\n * @param {?} modal\n * @return {?}\n */\n function (wrapperElement, modal) {\n /** @type {?} */\n var content = this._document.createElement('div');\n if (modal) {\n content.classList.add('igx-overlay__content--modal');\n content.addEventListener('click', function (ev) {\n ev.stopPropagation();\n });\n }\n else {\n content.classList.add('igx-overlay__content');\n }\n content.addEventListener('scroll', function (ev) {\n ev.stopPropagation();\n });\n // hide element to eliminate flickering. Show the element exactly before animation starts\n content.style.visibility = 'hidden';\n wrapperElement.appendChild(content);\n return content;\n };\n /**\n * @private\n * @param {?} info\n * @return {?}\n */\n IgxOverlayService.prototype.getOverlayElement = /**\n * @private\n * @param {?} info\n * @return {?}\n */\n function (info) {\n if (info.settings.outlet) {\n return info.settings.outlet.nativeElement;\n }\n if (!this._overlayElement) {\n this._overlayElement = this._document.createElement('div');\n this._overlayElement.classList.add('igx-overlay');\n this._document.body.appendChild(this._overlayElement);\n }\n return this._overlayElement;\n };\n /**\n * @private\n * @param {?} info\n * @return {?}\n */\n IgxOverlayService.prototype.updateSize = /**\n * @private\n * @param {?} info\n * @return {?}\n */\n function (info) {\n if (info.componentRef) {\n // if we are positioning component this is first time it gets visible\n // and we can finally get its size\n info.initialSize = info.elementRef.nativeElement.getBoundingClientRect();\n }\n // set content div width only if element to show has width\n if (info.initialSize.width !== 0) {\n info.elementRef.nativeElement.parentElement.style.width = info.initialSize.width + 'px';\n }\n };\n /**\n * @private\n * @param {?} info\n * @return {?}\n */\n IgxOverlayService.prototype.setupModalWrapper = /**\n * @private\n * @param {?} info\n * @return {?}\n */\n function (info) {\n var _this = this;\n /** @type {?} */\n var wrapperElement = info.elementRef.nativeElement.parentElement.parentElement;\n fromEvent(wrapperElement, 'keydown').pipe(filter(function (ev) { return ev.key === 'Escape' || ev.key === 'Esc'; }), takeUntil(this.destroy$)).subscribe(function () { return _this.hide(info.id); });\n wrapperElement.classList.remove('igx-overlay__wrapper');\n this.applyAnimationParams(wrapperElement, info.settings.positionStrategy.settings.openAnimation);\n wrapperElement.classList.add('igx-overlay__wrapper--modal');\n };\n /**\n * @private\n * @param {?} info\n * @return {?}\n */\n IgxOverlayService.prototype.onCloseDone = /**\n * @private\n * @param {?} info\n * @return {?}\n */\n function (info) {\n this.cleanUp(info);\n this.onClosed.emit({ id: info.id, componentRef: info.componentRef });\n };\n /**\n * @private\n * @param {?} info\n * @return {?}\n */\n IgxOverlayService.prototype.cleanUp = /**\n * @private\n * @param {?} info\n * @return {?}\n */\n function (info) {\n /** @type {?} */\n var child = info.elementRef.nativeElement;\n /** @type {?} */\n var outlet = this.getOverlayElement(info);\n if (!outlet.contains(child)) {\n console.warn('Component with id:' + info.id + ' is already removed!');\n return;\n }\n outlet.removeChild(child.parentNode.parentNode);\n if (info.componentRef) {\n this._appRef.detachView(info.componentRef.hostView);\n info.componentRef.destroy();\n }\n if (info.hook) {\n info.hook.parentElement.insertBefore(info.elementRef.nativeElement, info.hook);\n info.hook.parentElement.removeChild(info.hook);\n }\n /** @type {?} */\n var index = this._overlayInfos.indexOf(info);\n this._overlayInfos.splice(index, 1);\n // this._overlayElement.parentElement check just for tests that manually delete the element\n if (this._overlayInfos.length === 0 && this._overlayElement && this._overlayElement.parentElement) {\n this._overlayElement.parentElement.removeChild(this._overlayElement);\n this._overlayElement = null;\n }\n };\n /**\n * @private\n * @param {?} info\n * @return {?}\n */\n IgxOverlayService.prototype.playOpenAnimation = /**\n * @private\n * @param {?} info\n * @return {?}\n */\n function (info) {\n var _this = this;\n if (!info.openAnimationPlayer) {\n /** @type {?} */\n var animationBuilder = this.builder.build(info.settings.positionStrategy.settings.openAnimation);\n info.openAnimationPlayer = animationBuilder.create(info.elementRef.nativeElement);\n // AnimationPlayer.getPosition returns always 0. To workaround this we are getting inner WebAnimationPlayer\n // and then getting the positions from it.\n // This is logged in Angular here - https://github.com/angular/angular/issues/18891\n // As soon as this is resolved we can remove this hack\n /** @type {?} */\n var innerRenderer = ((/** @type {?} */ (info.openAnimationPlayer)))._renderer;\n info.openAnimationInnerPlayer = innerRenderer.engine.players[innerRenderer.engine.players.length - 1];\n info.openAnimationPlayer.onDone(function () {\n _this.onOpened.emit({ id: info.id, componentRef: info.componentRef });\n if (info.openAnimationPlayer) {\n info.openAnimationPlayer.reset();\n info.openAnimationPlayer = null;\n }\n if (info.closeAnimationPlayer && info.closeAnimationPlayer.hasStarted()) {\n info.closeAnimationPlayer.reset();\n }\n });\n }\n // if there is opening animation already started do nothing\n if (info.openAnimationPlayer.hasStarted()) {\n return;\n }\n // if there is closing animation already started start open animation from where close one has reached\n // and remove close animation\n if (info.closeAnimationPlayer && info.closeAnimationPlayer.hasStarted()) {\n // getPosition() returns what part of the animation is passed, e.g. 0.5 if half the animation\n // is done, 0.75 if 3/4 of the animation is done. As we need to start next animation from where\n // the previous has finished we need the amount up to 1, therefore we are subtracting what\n // getPosition() returns from one\n /** @type {?} */\n var position = 1 - info.closeAnimationInnerPlayer.getPosition();\n info.closeAnimationPlayer.reset();\n info.closeAnimationPlayer = null;\n info.openAnimationPlayer.init();\n info.openAnimationPlayer.setPosition(position);\n }\n this.onAnimation.emit({ id: info.id, animationPlayer: info.openAnimationPlayer, animationType: 'open' });\n // to eliminate flickering show the element just before animation start\n info.elementRef.nativeElement.parentElement.style.visibility = '';\n info.openAnimationPlayer.play();\n };\n /**\n * @private\n * @param {?} info\n * @return {?}\n */\n IgxOverlayService.prototype.playCloseAnimation = /**\n * @private\n * @param {?} info\n * @return {?}\n */\n function (info) {\n var _this = this;\n if (!info.closeAnimationPlayer) {\n /** @type {?} */\n var animationBuilder = this.builder.build(info.settings.positionStrategy.settings.closeAnimation);\n info.closeAnimationPlayer = animationBuilder.create(info.elementRef.nativeElement);\n // AnimationPlayer.getPosition returns always 0. To workaround this we are getting inner WebAnimationPlayer\n // and then getting the positions from it.\n // This is logged in Angular here - https://github.com/angular/angular/issues/18891\n // As soon as this is resolved we can remove this hack\n /** @type {?} */\n var innerRenderer = ((/** @type {?} */ (info.closeAnimationPlayer)))._renderer;\n info.closeAnimationInnerPlayer = innerRenderer.engine.players[innerRenderer.engine.players.length - 1];\n info.closeAnimationPlayer.onDone(function () {\n if (info.closeAnimationPlayer) {\n info.closeAnimationPlayer.reset();\n info.closeAnimationPlayer = null;\n }\n if (info.openAnimationPlayer && info.openAnimationPlayer.hasStarted()) {\n info.openAnimationPlayer.reset();\n }\n _this.onCloseDone(info);\n });\n }\n // if there is closing animation already started do nothing\n if (info.closeAnimationPlayer.hasStarted()) {\n return;\n }\n // if there is opening animation already started start close animation from where open one has reached\n // and remove open animation\n if (info.openAnimationPlayer && info.openAnimationPlayer.hasStarted()) {\n // getPosition() returns what part of the animation is passed, e.g. 0.5 if half the animation\n // is done, 0.75 if 3/4 of the animation is done. As we need to start next animation from where\n // the previous has finished we need the amount up to 1, therefore we are subtracting what\n // getPosition() returns from one\n /** @type {?} */\n var position = 1 - info.openAnimationInnerPlayer.getPosition();\n info.openAnimationPlayer.reset();\n info.openAnimationPlayer = null;\n info.closeAnimationPlayer.init();\n info.closeAnimationPlayer.setPosition(position);\n }\n this.onAnimation.emit({ id: info.id, animationPlayer: info.closeAnimationPlayer, animationType: 'close' });\n info.closeAnimationPlayer.play();\n };\n // TODO: check if applyAnimationParams will work with complex animations\n // TODO: check if applyAnimationParams will work with complex animations\n /**\n * @private\n * @param {?} wrapperElement\n * @param {?} animationOptions\n * @return {?}\n */\n IgxOverlayService.prototype.applyAnimationParams = \n // TODO: check if applyAnimationParams will work with complex animations\n /**\n * @private\n * @param {?} wrapperElement\n * @param {?} animationOptions\n * @return {?}\n */\n function (wrapperElement, animationOptions) {\n if (!animationOptions) {\n wrapperElement.style.transitionDuration = '0ms';\n return;\n }\n if (animationOptions.type === 10 /* AnimateRef */) {\n animationOptions = ((/** @type {?} */ (animationOptions))).animation;\n }\n if (!animationOptions.options || !animationOptions.options.params) {\n return;\n }\n /** @type {?} */\n var params = (/** @type {?} */ (animationOptions.options.params));\n if (params.duration) {\n wrapperElement.style.transitionDuration = params.duration;\n }\n if (params.easing) {\n wrapperElement.style.transitionTimingFunction = params.easing;\n }\n };\n /** @hidden @internal */\n /**\n * @hidden \\@internal\n * @param {?} id\n * @return {?}\n */\n IgxOverlayService.prototype.getOverlayById = /**\n * @hidden \\@internal\n * @param {?} id\n * @return {?}\n */\n function (id) {\n if (!id) {\n return null;\n }\n /** @type {?} */\n var info = this._overlayInfos.find(function (e) { return e.id === id; });\n return info;\n };\n /**\n * @private\n * @param {?} info\n * @return {?}\n */\n IgxOverlayService.prototype.addOutsideClickListener = /**\n * @private\n * @param {?} info\n * @return {?}\n */\n function (info) {\n var _this = this;\n if (info.settings.closeOnOutsideClick) {\n if (info.settings.modal) {\n fromEvent(info.elementRef.nativeElement.parentElement.parentElement, 'click')\n .pipe(takeUntil(this.destroy$))\n .subscribe(function (e) { return _this._hide(info.id, e); });\n }\n else if (\n // if all overlays minus closing overlays equals one add the handler\n this._overlayInfos.filter(function (x) { return x.settings.closeOnOutsideClick && !x.settings.modal; }).length -\n this._overlayInfos.filter(function (x) { return x.settings.closeOnOutsideClick && !x.settings.modal &&\n x.closeAnimationPlayer &&\n x.closeAnimationPlayer.hasStarted(); }).length === 1) {\n this._document.addEventListener('click', this.documentClicked, true);\n }\n }\n };\n /**\n * @private\n * @param {?} info\n * @return {?}\n */\n IgxOverlayService.prototype.removeOutsideClickListener = /**\n * @private\n * @param {?} info\n * @return {?}\n */\n function (info) {\n if (info.settings.modal === false) {\n /** @type {?} */\n var shouldRemoveClickEventListener_1 = true;\n this._overlayInfos.forEach(function (o) {\n if (o.settings.modal === false && o.id !== info.id) {\n shouldRemoveClickEventListener_1 = false;\n }\n });\n if (shouldRemoveClickEventListener_1) {\n this._document.removeEventListener('click', this.documentClicked, true);\n }\n }\n };\n /**\n * @private\n * @param {?} id\n * @return {?}\n */\n IgxOverlayService.prototype.addResizeHandler = /**\n * @private\n * @param {?} id\n * @return {?}\n */\n function (id) {\n /** @type {?} */\n var closingOverlaysCount = this._overlayInfos\n .filter(function (o) { return o.closeAnimationPlayer && o.closeAnimationPlayer.hasStarted(); })\n .length;\n if (this._overlayInfos.length - closingOverlaysCount === 1) {\n this._document.defaultView.addEventListener('resize', this.repositionAll);\n }\n };\n /**\n * @private\n * @param {?} id\n * @return {?}\n */\n IgxOverlayService.prototype.removeResizeHandler = /**\n * @private\n * @param {?} id\n * @return {?}\n */\n function (id) {\n /** @type {?} */\n var closingOverlaysCount = this._overlayInfos\n .filter(function (o) { return o.closeAnimationPlayer && o.closeAnimationPlayer.hasStarted(); })\n .length;\n if (this._overlayInfos.length - closingOverlaysCount === 1) {\n this._document.defaultView.removeEventListener('resize', this.repositionAll);\n }\n };\n /**\n *@hidden\n */\n /**\n * @hidden\n * @return {?}\n */\n IgxOverlayService.prototype.ngOnDestroy = /**\n * @hidden\n * @return {?}\n */\n function () {\n this.destroy$.next(true);\n this.destroy$.complete();\n };\n IgxOverlayService.decorators = [\n { type: Injectable, args: [{ providedIn: 'root' },] }\n ];\n /** @nocollapse */\n IgxOverlayService.ctorParameters = function () { return [\n { type: ComponentFactoryResolver },\n { type: ApplicationRef },\n { type: Injector },\n { type: AnimationBuilder },\n { type: undefined, decorators: [{ type: Inject, args: [DOCUMENT,] }] },\n { type: NgZone }\n ]; };\n /** @nocollapse */ IgxOverlayService.ngInjectableDef = ɵɵdefineInjectable({ factory: function IgxOverlayService_Factory() { return new IgxOverlayService(ɵɵinject(ComponentFactoryResolver), ɵɵinject(ApplicationRef), ɵɵinject(INJECTOR), ɵɵinject(AnimationBuilder), ɵɵinject(DOCUMENT), ɵɵinject(NgZone)); }, token: IgxOverlayService, providedIn: \"root\" });\n return IgxOverlayService;\n}());\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n/**\n * Positions the element inside the containing outlet based on the directions passed in trough PositionSettings.\n * These are Top/Middle/Bottom for verticalDirection and Left/Center/Right for horizontalDirection\n */\nvar /**\n * Positions the element inside the containing outlet based on the directions passed in trough PositionSettings.\n * These are Top/Middle/Bottom for verticalDirection and Left/Center/Right for horizontalDirection\n */\nContainerPositionStrategy = /** @class */ (function (_super) {\n __extends(ContainerPositionStrategy, _super);\n function ContainerPositionStrategy(settings) {\n return _super.call(this, settings) || this;\n }\n /** @inheritdoc */\n /**\n * \\@inheritdoc\n * @param {?} contentElement\n * @param {?=} size\n * @param {?=} document\n * @param {?=} initialCall\n * @return {?}\n */\n ContainerPositionStrategy.prototype.position = /**\n * \\@inheritdoc\n * @param {?} contentElement\n * @param {?=} size\n * @param {?=} document\n * @param {?=} initialCall\n * @return {?}\n */\n function (contentElement, size, document, initialCall) {\n contentElement.classList.add('igx-overlay__content--relative');\n contentElement.parentElement.classList.add('igx-overlay__wrapper--flex-container');\n this.setPosition(contentElement, this.settings);\n };\n return ContainerPositionStrategy;\n}(GlobalPositionStrategy));\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n/**\n * Positions the element based on the directions and start point passed in trough PositionSettings.\n * It is possible to either pass a start point or an HTMLElement as a positioning base.\n */\nvar /**\n * Positions the element based on the directions and start point passed in trough PositionSettings.\n * It is possible to either pass a start point or an HTMLElement as a positioning base.\n */\nConnectedPositioningStrategy = /** @class */ (function () {\n function ConnectedPositioningStrategy(settings) {\n this._defaultSettings = {\n // default Point(0, 0) in getPointFromPositionsSettings\n target: null,\n horizontalDirection: HorizontalAlignment.Right,\n verticalDirection: VerticalAlignment.Bottom,\n horizontalStartPoint: HorizontalAlignment.Left,\n verticalStartPoint: VerticalAlignment.Bottom,\n openAnimation: scaleInVerTop,\n closeAnimation: scaleOutVerTop,\n minSize: { width: 0, height: 0 }\n };\n this.settings = Object.assign({}, this._defaultSettings, settings);\n }\n /** @inheritdoc */\n /**\n * \\@inheritdoc\n * @param {?} contentElement\n * @param {?} size\n * @param {?=} document\n * @param {?=} initialCall\n * @return {?}\n */\n ConnectedPositioningStrategy.prototype.position = /**\n * \\@inheritdoc\n * @param {?} contentElement\n * @param {?} size\n * @param {?=} document\n * @param {?=} initialCall\n * @return {?}\n */\n function (contentElement, size, document, initialCall) {\n /** @type {?} */\n var targetRect = Util.getTargetRect(this.settings);\n /** @type {?} */\n var contentElementRect = contentElement.getBoundingClientRect();\n this.setStyle(contentElement, targetRect, contentElementRect);\n };\n /**\n * @inheritdoc\n * Creates clone of this position strategy\n * @returns clone of this position strategy\n */\n /**\n * \\@inheritdoc\n * Creates clone of this position strategy\n * @return {?} clone of this position strategy\n */\n ConnectedPositioningStrategy.prototype.clone = /**\n * \\@inheritdoc\n * Creates clone of this position strategy\n * @return {?} clone of this position strategy\n */\n function () {\n return Util.cloneInstance(this);\n };\n /**\n * Sets element's style which effectively positions provided element according\n * to provided position settings\n * @param element Element to position\n * @param targetRect Bounding rectangle of strategy target\n * @param elementRect Bounding rectangle of the element\n */\n /**\n * Sets element's style which effectively positions provided element according\n * to provided position settings\n * @protected\n * @param {?} element Element to position\n * @param {?} targetRect Bounding rectangle of strategy target\n * @param {?} elementRect Bounding rectangle of the element\n * @return {?}\n */\n ConnectedPositioningStrategy.prototype.setStyle = /**\n * Sets element's style which effectively positions provided element according\n * to provided position settings\n * @protected\n * @param {?} element Element to position\n * @param {?} targetRect Bounding rectangle of strategy target\n * @param {?} elementRect Bounding rectangle of the element\n * @return {?}\n */\n function (element, targetRect, elementRect) {\n /** @type {?} */\n var startPoint = {\n x: targetRect.right + targetRect.width * this.settings.horizontalStartPoint,\n y: targetRect.bottom + targetRect.height * this.settings.verticalStartPoint,\n };\n /** @type {?} */\n var wrapperRect = element.parentElement.getBoundingClientRect();\n // clean up styles - if auto position strategy is chosen we may pass here several times\n element.style.right = '';\n element.style.left = '';\n element.style.bottom = '';\n element.style.top = '';\n switch (this.settings.horizontalDirection) {\n case HorizontalAlignment.Left:\n element.style.right = Math.round(wrapperRect.right - startPoint.x) + \"px\";\n break;\n case HorizontalAlignment.Center:\n element.style.left = Math.round(startPoint.x - wrapperRect.left - elementRect.width / 2) + \"px\";\n break;\n case HorizontalAlignment.Right:\n element.style.left = Math.round(startPoint.x - wrapperRect.left) + \"px\";\n break;\n }\n switch (this.settings.verticalDirection) {\n case VerticalAlignment.Top:\n element.style.bottom = Math.round(wrapperRect.bottom - startPoint.y) + \"px\";\n break;\n case VerticalAlignment.Middle:\n element.style.top = Math.round(startPoint.y - wrapperRect.top - elementRect.height / 2) + \"px\";\n break;\n case VerticalAlignment.Bottom:\n element.style.top = Math.round(startPoint.y - wrapperRect.top) + \"px\";\n break;\n }\n };\n return ConnectedPositioningStrategy;\n}());\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n/**\n * @abstract\n */\nvar /**\n * @abstract\n */\nBaseFitPositionStrategy = /** @class */ (function (_super) {\n __extends(BaseFitPositionStrategy, _super);\n function BaseFitPositionStrategy() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n /** @inheritdoc */\n /**\n * \\@inheritdoc\n * @param {?} contentElement\n * @param {?} size\n * @param {?=} document\n * @param {?=} initialCall\n * @return {?}\n */\n BaseFitPositionStrategy.prototype.position = /**\n * \\@inheritdoc\n * @param {?} contentElement\n * @param {?} size\n * @param {?=} document\n * @param {?=} initialCall\n * @return {?}\n */\n function (contentElement, size, document, initialCall) {\n /** @type {?} */\n var targetRect = Util.getTargetRect(this.settings);\n /** @type {?} */\n var contentElementRect = contentElement.getBoundingClientRect();\n if (initialCall) {\n /** @type {?} */\n var connectedFit = {};\n connectedFit.targetRect = targetRect;\n connectedFit.contentElementRect = contentElementRect;\n this._initialSettings = this._initialSettings || Object.assign({}, this.settings);\n this.settings = Object.assign({}, this._initialSettings);\n connectedFit.viewPortRect = Util.getViewportRect(document);\n this.updateViewPortFit(connectedFit);\n if (!connectedFit.fitHorizontal || !connectedFit.fitVertical) {\n this.fitInViewport(contentElement, connectedFit);\n }\n }\n this.setStyle(contentElement, targetRect, contentElementRect);\n };\n /**\n * Checks if element can fit in viewport and updates provided connectedFit\n * with the result\n * @param connectedFit connectedFit to update\n */\n /**\n * Checks if element can fit in viewport and updates provided connectedFit\n * with the result\n * @protected\n * @param {?} connectedFit connectedFit to update\n * @return {?}\n */\n BaseFitPositionStrategy.prototype.updateViewPortFit = /**\n * Checks if element can fit in viewport and updates provided connectedFit\n * with the result\n * @protected\n * @param {?} connectedFit connectedFit to update\n * @return {?}\n */\n function (connectedFit) {\n connectedFit.left = this.calculateLeft(connectedFit.targetRect, connectedFit.contentElementRect, this.settings.horizontalStartPoint, this.settings.horizontalDirection);\n connectedFit.right = connectedFit.left + connectedFit.contentElementRect.width;\n connectedFit.fitHorizontal =\n 0 < connectedFit.left && connectedFit.right < connectedFit.viewPortRect.width;\n connectedFit.top = this.calculateTop(connectedFit.targetRect, connectedFit.contentElementRect, this.settings.verticalStartPoint, this.settings.verticalDirection);\n connectedFit.bottom = connectedFit.top + connectedFit.contentElementRect.height;\n connectedFit.fitVertical =\n 0 < connectedFit.top && connectedFit.bottom < connectedFit.viewPortRect.height;\n };\n /**\n * Calculates the position of the left border of the element if it gets positioned\n * with provided start point and direction\n * @param targetRect Rectangle of the target where element is attached\n * @param elementRect Rectangle of the element\n * @param startPoint Start point of the target\n * @param direction Direction in which to show the element\n */\n /**\n * Calculates the position of the left border of the element if it gets positioned\n * with provided start point and direction\n * @protected\n * @param {?} targetRect Rectangle of the target where element is attached\n * @param {?} elementRect Rectangle of the element\n * @param {?} startPoint Start point of the target\n * @param {?} direction Direction in which to show the element\n * @return {?}\n */\n BaseFitPositionStrategy.prototype.calculateLeft = /**\n * Calculates the position of the left border of the element if it gets positioned\n * with provided start point and direction\n * @protected\n * @param {?} targetRect Rectangle of the target where element is attached\n * @param {?} elementRect Rectangle of the element\n * @param {?} startPoint Start point of the target\n * @param {?} direction Direction in which to show the element\n * @return {?}\n */\n function (targetRect, elementRect, startPoint, direction) {\n return targetRect.right + targetRect.width * startPoint + elementRect.width * direction;\n };\n /**\n * Calculates the position of the top border of the element if it gets positioned\n * with provided position settings related to the target\n * @param targetRect Rectangle of the target where element is attached\n * @param elementRect Rectangle of the element\n * @param startPoint Start point of the target\n * @param direction Direction in which to show the element\n */\n /**\n * Calculates the position of the top border of the element if it gets positioned\n * with provided position settings related to the target\n * @protected\n * @param {?} targetRect Rectangle of the target where element is attached\n * @param {?} elementRect Rectangle of the element\n * @param {?} startPoint Start point of the target\n * @param {?} direction Direction in which to show the element\n * @return {?}\n */\n BaseFitPositionStrategy.prototype.calculateTop = /**\n * Calculates the position of the top border of the element if it gets positioned\n * with provided position settings related to the target\n * @protected\n * @param {?} targetRect Rectangle of the target where element is attached\n * @param {?} elementRect Rectangle of the element\n * @param {?} startPoint Start point of the target\n * @param {?} direction Direction in which to show the element\n * @return {?}\n */\n function (targetRect, elementRect, startPoint, direction) {\n return targetRect.bottom + targetRect.height * startPoint + elementRect.height * direction;\n };\n return BaseFitPositionStrategy;\n}(ConnectedPositioningStrategy));\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n/**\n * Positions the element as in **Connected** positioning strategy and re-positions the element in\n * the view port (calculating a different start point) in case the element is partially getting out of view\n */\nvar /**\n * Positions the element as in **Connected** positioning strategy and re-positions the element in\n * the view port (calculating a different start point) in case the element is partially getting out of view\n */\nAutoPositionStrategy = /** @class */ (function (_super) {\n __extends(AutoPositionStrategy, _super);\n function AutoPositionStrategy() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n /** @inheritdoc */\n /**\n * \\@inheritdoc\n * @protected\n * @param {?} element\n * @param {?} connectedFit\n * @return {?}\n */\n AutoPositionStrategy.prototype.fitInViewport = /**\n * \\@inheritdoc\n * @protected\n * @param {?} element\n * @param {?} connectedFit\n * @return {?}\n */\n function (element, connectedFit) {\n /** @type {?} */\n var transformString = [];\n if (!connectedFit.fitHorizontal) {\n if (this.canFlipHorizontal(connectedFit)) {\n this.flipHorizontal();\n }\n else {\n /** @type {?} */\n var horizontalPush = this.horizontalPush(connectedFit);\n transformString.push(\"translateX(\" + horizontalPush + \"px)\");\n }\n }\n if (!connectedFit.fitVertical) {\n if (this.canFlipVertical(connectedFit)) {\n this.flipVertical();\n }\n else {\n /** @type {?} */\n var verticalPush = this.verticalPush(connectedFit);\n transformString.push(\"translateY(\" + verticalPush + \"px)\");\n }\n }\n element.style.transform = transformString.join(' ').trim();\n };\n /**\n * Checks if element can be flipped without get off the viewport\n * @param connectedFit connectedFit object containing all necessary parameters\n * @returns true if element can be flipped and stain in viewport\n */\n /**\n * Checks if element can be flipped without get off the viewport\n * @private\n * @param {?} connectedFit connectedFit object containing all necessary parameters\n * @return {?} true if element can be flipped and stain in viewport\n */\n AutoPositionStrategy.prototype.canFlipHorizontal = /**\n * Checks if element can be flipped without get off the viewport\n * @private\n * @param {?} connectedFit connectedFit object containing all necessary parameters\n * @return {?} true if element can be flipped and stain in viewport\n */\n function (connectedFit) {\n // HorizontalAlignment can be Left = -1; Center = -0.5 or Right = 0.\n // To virtually flip direction and start point (both are HorizontalAlignment) we can do this:\n // flippedAlignment = (-1) * (HorizontalAlignment + 1)\n // this way:\n // (-1) * (Left + 1) = 0 = Right\n // (-1) * (Center + 1) = -0.5 = Center\n // (-1) * (Right + 1) = -1 = Left\n /** @type {?} */\n var flippedStartPoint = (-1) * (this.settings.horizontalStartPoint + 1);\n /** @type {?} */\n var flippedDirection = (-1) * (this.settings.horizontalDirection + 1);\n /** @type {?} */\n var leftBorder = this.calculateLeft(connectedFit.targetRect, connectedFit.contentElementRect, flippedStartPoint, flippedDirection);\n /** @type {?} */\n var rightBorder = leftBorder + connectedFit.contentElementRect.width;\n return 0 < leftBorder && rightBorder < connectedFit.viewPortRect.width;\n };\n /**\n * Checks if element can be flipped without get off the viewport\n * @param connectedFit connectedFit object containing all necessary parameters\n * @returns true if element can be flipped and stain in viewport\n */\n /**\n * Checks if element can be flipped without get off the viewport\n * @private\n * @param {?} connectedFit connectedFit object containing all necessary parameters\n * @return {?} true if element can be flipped and stain in viewport\n */\n AutoPositionStrategy.prototype.canFlipVertical = /**\n * Checks if element can be flipped without get off the viewport\n * @private\n * @param {?} connectedFit connectedFit object containing all necessary parameters\n * @return {?} true if element can be flipped and stain in viewport\n */\n function (connectedFit) {\n /** @type {?} */\n var flippedStartPoint = (-1) * (this.settings.verticalStartPoint + 1);\n /** @type {?} */\n var flippedDirection = (-1) * (this.settings.verticalDirection + 1);\n /** @type {?} */\n var topBorder = this.calculateTop(connectedFit.targetRect, connectedFit.contentElementRect, flippedStartPoint, flippedDirection);\n /** @type {?} */\n var bottomBorder = topBorder + connectedFit.contentElementRect.height;\n return 0 < topBorder && bottomBorder < connectedFit.viewPortRect.height;\n };\n /**\n * Flips direction and start point of the position settings\n */\n /**\n * Flips direction and start point of the position settings\n * @private\n * @return {?}\n */\n AutoPositionStrategy.prototype.flipHorizontal = /**\n * Flips direction and start point of the position settings\n * @private\n * @return {?}\n */\n function () {\n switch (this.settings.horizontalDirection) {\n case HorizontalAlignment.Left:\n this.settings.horizontalDirection = HorizontalAlignment.Right;\n break;\n case HorizontalAlignment.Right:\n this.settings.horizontalDirection = HorizontalAlignment.Left;\n break;\n }\n switch (this.settings.horizontalStartPoint) {\n case HorizontalAlignment.Left:\n this.settings.horizontalStartPoint = HorizontalAlignment.Right;\n break;\n case HorizontalAlignment.Right:\n this.settings.horizontalStartPoint = HorizontalAlignment.Left;\n break;\n }\n };\n /**\n * Flips direction and start point of the position settings\n */\n /**\n * Flips direction and start point of the position settings\n * @private\n * @return {?}\n */\n AutoPositionStrategy.prototype.flipVertical = /**\n * Flips direction and start point of the position settings\n * @private\n * @return {?}\n */\n function () {\n switch (this.settings.verticalDirection) {\n case VerticalAlignment.Top:\n this.settings.verticalDirection = VerticalAlignment.Bottom;\n break;\n case VerticalAlignment.Bottom:\n this.settings.verticalDirection = VerticalAlignment.Top;\n break;\n }\n switch (this.settings.verticalStartPoint) {\n case VerticalAlignment.Top:\n this.settings.verticalStartPoint = VerticalAlignment.Bottom;\n break;\n case VerticalAlignment.Bottom:\n this.settings.verticalStartPoint = VerticalAlignment.Top;\n break;\n }\n };\n /**\n * Calculates necessary horizontal push according to provided connectedFit\n * @param connectedFit connectedFit object containing all necessary parameters\n * @returns amount of necessary translation which will push the element into viewport\n */\n /**\n * Calculates necessary horizontal push according to provided connectedFit\n * @private\n * @param {?} connectedFit connectedFit object containing all necessary parameters\n * @return {?} amount of necessary translation which will push the element into viewport\n */\n AutoPositionStrategy.prototype.horizontalPush = /**\n * Calculates necessary horizontal push according to provided connectedFit\n * @private\n * @param {?} connectedFit connectedFit object containing all necessary parameters\n * @return {?} amount of necessary translation which will push the element into viewport\n */\n function (connectedFit) {\n /** @type {?} */\n var leftExtend = connectedFit.left;\n /** @type {?} */\n var rightExtend = connectedFit.right - connectedFit.viewPortRect.right;\n // if leftExtend < 0 overlay goes beyond left end of the screen. We should push it back with exactly\n // as much as it is beyond the screen.\n // if rightExtend > 0 overlay goes beyond right end of the screen. We should push it back with the\n // extend but with amount not bigger than what left between left border of screen and left border of\n // overlay, e.g. leftExtend\n if (leftExtend < 0) {\n return Math.abs(leftExtend);\n }\n else if (rightExtend > 0) {\n return -Math.min(rightExtend, leftExtend);\n }\n else {\n return 0;\n }\n };\n /**\n * Calculates necessary vertical push according to provided connectedFit\n * @param connectedFit connectedFit object containing all necessary parameters\n * @returns amount of necessary translation which will push the element into viewport\n */\n /**\n * Calculates necessary vertical push according to provided connectedFit\n * @private\n * @param {?} connectedFit connectedFit object containing all necessary parameters\n * @return {?} amount of necessary translation which will push the element into viewport\n */\n AutoPositionStrategy.prototype.verticalPush = /**\n * Calculates necessary vertical push according to provided connectedFit\n * @private\n * @param {?} connectedFit connectedFit object containing all necessary parameters\n * @return {?} amount of necessary translation which will push the element into viewport\n */\n function (connectedFit) {\n /** @type {?} */\n var topExtend = connectedFit.top;\n /** @type {?} */\n var bottomExtend = connectedFit.bottom - connectedFit.viewPortRect.bottom;\n if (topExtend < 0) {\n return Math.abs(topExtend);\n }\n else if (bottomExtend > 0) {\n return -Math.min(bottomExtend, topExtend);\n }\n else {\n return 0;\n }\n };\n return AutoPositionStrategy;\n}(BaseFitPositionStrategy));\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n/**\n * Positions the element as in **Connected** positioning strategy and resize the element\n * to fit in the view port in case the element is partially getting out of view\n */\nvar /**\n * Positions the element as in **Connected** positioning strategy and resize the element\n * to fit in the view port in case the element is partially getting out of view\n */\nElasticPositionStrategy = /** @class */ (function (_super) {\n __extends(ElasticPositionStrategy, _super);\n function ElasticPositionStrategy() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n /** @inheritdoc */\n /**\n * \\@inheritdoc\n * @protected\n * @param {?} element\n * @param {?} connectedFit\n * @return {?}\n */\n ElasticPositionStrategy.prototype.fitInViewport = /**\n * \\@inheritdoc\n * @protected\n * @param {?} element\n * @param {?} connectedFit\n * @return {?}\n */\n function (element, connectedFit) {\n element.classList.add('igx-overlay__content--elastic');\n /** @type {?} */\n var transformString = [];\n if (!connectedFit.fitHorizontal) {\n /** @type {?} */\n var maxReduction = Math.max(0, connectedFit.contentElementRect.width - this.settings.minSize.width);\n /** @type {?} */\n var leftExtend = Math.max(0, 0 - connectedFit.left);\n /** @type {?} */\n var rightExtend = Math.max(0, connectedFit.right - connectedFit.viewPortRect.width);\n /** @type {?} */\n var reduction = Math.min(maxReduction, leftExtend + rightExtend);\n element.style.width = connectedFit.contentElementRect.width - reduction + \"px\";\n // if direction is center and element goes off the screen in left direction we should push the\n // element to the right. Prevents left still going out of view when normally positioned\n if (this.settings.horizontalDirection === HorizontalAlignment.Center) {\n // the amount of translation depends on whether element goes off the screen to the left,\n // to the right or in both directions, as well as how much it goes of the screen and finally\n // on the minSize. The translation should be proportional between left and right extend\n // taken from the reduction\n /** @type {?} */\n var translation = leftExtend * reduction / (leftExtend + rightExtend);\n if (translation > 0) {\n transformString.push(\"translateX(\" + translation + \"px)\");\n }\n }\n }\n if (!connectedFit.fitVertical) {\n /** @type {?} */\n var maxReduction = Math.max(0, connectedFit.contentElementRect.height - this.settings.minSize.height);\n /** @type {?} */\n var topExtend = Math.max(0, 0 - connectedFit.top);\n /** @type {?} */\n var bottomExtend = Math.max(0, connectedFit.bottom - connectedFit.viewPortRect.height);\n /** @type {?} */\n var reduction = Math.min(maxReduction, topExtend + bottomExtend);\n element.style.height = connectedFit.contentElementRect.height - reduction + \"px\";\n // if direction is middle and element goes off the screen in top direction we should push the\n // element to the bottom. Prevents top still going out of view when normally positioned\n if (this.settings.verticalDirection === VerticalAlignment.Middle) {\n // the amount of translation depends on whether element goes off the screen to the top,\n // to the bottom or in both directions, as well as how much it goes of the screen and finally\n // on the minSize. The translation should be proportional between top and bottom extend\n // taken from the reduction\n /** @type {?} */\n var translation = topExtend * reduction / (topExtend + bottomExtend);\n if (translation > 0) {\n transformString.push(\"translateY(\" + translation + \"px)\");\n }\n }\n }\n element.style.transform = transformString.join(' ').trim();\n };\n return ElasticPositionStrategy;\n}(BaseFitPositionStrategy));\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n/**\n * On scroll reposition the overlay content.\n */\nvar /**\n * On scroll reposition the overlay content.\n */\nAbsoluteScrollStrategy = /** @class */ (function (_super) {\n __extends(AbsoluteScrollStrategy, _super);\n function AbsoluteScrollStrategy(scrollContainer) {\n var _this = _super.call(this, scrollContainer) || this;\n _this._initialized = false;\n _this.onScroll = function () {\n _this._overlayService.repositionAll();\n };\n _this._scrollContainer = scrollContainer;\n return _this;\n }\n /** @inheritdoc */\n /**\n * \\@inheritdoc\n * @param {?} document\n * @param {?} overlayService\n * @param {?} id\n * @return {?}\n */\n AbsoluteScrollStrategy.prototype.initialize = /**\n * \\@inheritdoc\n * @param {?} document\n * @param {?} overlayService\n * @param {?} id\n * @return {?}\n */\n function (document, overlayService, id) {\n if (this._initialized) {\n return;\n }\n this._overlayService = overlayService;\n this._id = id;\n this._document = document;\n this._zone = overlayService.getOverlayById(id).ngZone;\n this._initialized = true;\n };\n /** @inheritdoc */\n /**\n * \\@inheritdoc\n * @return {?}\n */\n AbsoluteScrollStrategy.prototype.attach = /**\n * \\@inheritdoc\n * @return {?}\n */\n function () {\n var _this = this;\n if (this._zone) {\n this._zone.runOutsideAngular(function () {\n _this.addScrollEventListener();\n });\n }\n else {\n this.addScrollEventListener();\n }\n };\n /** @inheritdoc */\n /**\n * \\@inheritdoc\n * @return {?}\n */\n AbsoluteScrollStrategy.prototype.detach = /**\n * \\@inheritdoc\n * @return {?}\n */\n function () {\n if (this._scrollContainer) {\n this._scrollContainer.removeEventListener('scroll', this.onScroll, true);\n }\n else {\n this._document.removeEventListener('scroll', this.onScroll, true);\n }\n this._initialized = false;\n };\n /**\n * @private\n * @return {?}\n */\n AbsoluteScrollStrategy.prototype.addScrollEventListener = /**\n * @private\n * @return {?}\n */\n function () {\n if (this._scrollContainer) {\n this._scrollContainer.addEventListener('scroll', this.onScroll, true);\n }\n else {\n this._document.addEventListener('scroll', this.onScroll, true);\n }\n };\n return AbsoluteScrollStrategy;\n}(ScrollStrategy));\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n/**\n * Prevents scrolling while the overlay content is shown.\n */\nvar /**\n * Prevents scrolling while the overlay content is shown.\n */\nBlockScrollStrategy = /** @class */ (function (_super) {\n __extends(BlockScrollStrategy, _super);\n function BlockScrollStrategy(scrollContainer) {\n var _this = _super.call(this, scrollContainer) || this;\n _this._initialized = false;\n _this.onScroll = function (ev) {\n ev.preventDefault();\n if (!_this._sourceElement || _this._sourceElement !== ev.target) {\n _this._sourceElement = (/** @type {?} */ (ev.target));\n _this._initialScrollTop = _this._sourceElement.scrollTop;\n _this._initialScrollLeft = _this._sourceElement.scrollLeft;\n }\n _this._sourceElement.scrollTop = _this._initialScrollTop;\n _this._sourceElement.scrollLeft = _this._initialScrollLeft;\n };\n return _this;\n }\n /** @inheritdoc */\n /**\n * \\@inheritdoc\n * @param {?} document\n * @param {?} overlayService\n * @param {?} id\n * @return {?}\n */\n BlockScrollStrategy.prototype.initialize = /**\n * \\@inheritdoc\n * @param {?} document\n * @param {?} overlayService\n * @param {?} id\n * @return {?}\n */\n function (document, overlayService, id) {\n if (this._initialized) {\n return;\n }\n this._document = document;\n this._initialized = true;\n };\n /** @inheritdoc */\n /**\n * \\@inheritdoc\n * @return {?}\n */\n BlockScrollStrategy.prototype.attach = /**\n * \\@inheritdoc\n * @return {?}\n */\n function () {\n this._document.addEventListener('scroll', this.onScroll, true);\n };\n /** @inheritdoc */\n /**\n * \\@inheritdoc\n * @return {?}\n */\n BlockScrollStrategy.prototype.detach = /**\n * \\@inheritdoc\n * @return {?}\n */\n function () {\n this._document.removeEventListener('scroll', this.onScroll, true);\n this._sourceElement = null;\n this._initialScrollTop = 0;\n this._initialScrollLeft = 0;\n this._initialized = false;\n };\n return BlockScrollStrategy;\n}(ScrollStrategy));\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n/**\n * Uses a tolerance and closes the shown component upon scrolling if the tolerance is exceeded\n */\nvar /**\n * Uses a tolerance and closes the shown component upon scrolling if the tolerance is exceeded\n */\nCloseScrollStrategy = /** @class */ (function (_super) {\n __extends(CloseScrollStrategy, _super);\n function CloseScrollStrategy(scrollContainer) {\n var _this = _super.call(this, scrollContainer) || this;\n _this._initialized = false;\n _this.onScroll = function (ev) {\n if (!_this._sourceElement) {\n return;\n }\n _this.cumulativeScrollTop += _this._sourceElement.scrollTop;\n _this.cumulativeScrollLeft += _this._sourceElement.scrollLeft;\n if (Math.abs(_this.cumulativeScrollTop - _this.initialScrollTop) > _this._threshold ||\n Math.abs(_this.cumulativeScrollLeft - _this.initialScrollLeft) > _this._threshold) {\n _this._document.removeEventListener('scroll', _this.onScroll, true);\n _this._overlayService.hide(_this._id);\n }\n };\n _this._scrollContainer = scrollContainer;\n _this._threshold = 10;\n _this.cumulativeScrollTop = 0;\n _this.cumulativeScrollLeft = 0;\n return _this;\n }\n /** @inheritdoc */\n /**\n * \\@inheritdoc\n * @param {?} document\n * @param {?} overlayService\n * @param {?} id\n * @return {?}\n */\n CloseScrollStrategy.prototype.initialize = /**\n * \\@inheritdoc\n * @param {?} document\n * @param {?} overlayService\n * @param {?} id\n * @return {?}\n */\n function (document, overlayService, id) {\n if (this._initialized) {\n return;\n }\n this._overlayService = overlayService;\n this._id = id;\n this._document = document;\n this._initialized = true;\n };\n /** @inheritdoc */\n /**\n * \\@inheritdoc\n * @return {?}\n */\n CloseScrollStrategy.prototype.attach = /**\n * \\@inheritdoc\n * @return {?}\n */\n function () {\n if (this._scrollContainer) {\n this._scrollContainer.addEventListener('scroll', this.onScroll);\n this._sourceElement = this._scrollContainer;\n }\n else {\n this._document.addEventListener('scroll', this.onScroll);\n if (document.documentElement.scrollHeight > document.documentElement.clientHeight) {\n this._sourceElement = (/** @type {?} */ (document.documentElement));\n }\n else if (document.body.scrollHeight > document.body.clientHeight) {\n this._sourceElement = (/** @type {?} */ (document.body));\n }\n }\n if (!this._sourceElement) {\n return;\n }\n this.cumulativeScrollTop = 0;\n this.cumulativeScrollLeft = 0;\n this.initialScrollTop = this._sourceElement.scrollTop;\n this.initialScrollLeft = this._sourceElement.scrollLeft;\n };\n /** @inheritdoc */\n /**\n * \\@inheritdoc\n * @return {?}\n */\n CloseScrollStrategy.prototype.detach = /**\n * \\@inheritdoc\n * @return {?}\n */\n function () {\n // TODO: check why event listener removes only on first call and remains on each next!!!\n if (this._scrollContainer) {\n this._scrollContainer.removeEventListener('scroll', this.onScroll);\n }\n else {\n this._document.removeEventListener('scroll', this.onScroll);\n }\n this._sourceElement = null;\n this.cumulativeScrollTop = 0;\n this.cumulativeScrollLeft = 0;\n this.initialScrollTop = 0;\n this.initialScrollLeft = 0;\n this._initialized = false;\n };\n return CloseScrollStrategy;\n}(ScrollStrategy));\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n/**\n * @template T, S\n */\nvar IgxBaseTransactionService = /** @class */ (function () {\n function IgxBaseTransactionService() {\n this._isPending = false;\n this._pendingTransactions = [];\n this._pendingStates = new Map();\n /**\n * \\@inheritdoc\n */\n this.onStateUpdate = new EventEmitter();\n }\n Object.defineProperty(IgxBaseTransactionService.prototype, \"canRedo\", {\n /**\n * @inheritdoc\n */\n get: /**\n * \\@inheritdoc\n * @return {?}\n */\n function () {\n return false;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxBaseTransactionService.prototype, \"canUndo\", {\n /**\n * @inheritdoc\n */\n get: /**\n * \\@inheritdoc\n * @return {?}\n */\n function () {\n return false;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxBaseTransactionService.prototype, \"enabled\", {\n /**\n * @inheritdoc\n */\n get: /**\n * \\@inheritdoc\n * @return {?}\n */\n function () {\n return this._isPending;\n },\n enumerable: true,\n configurable: true\n });\n /**\n * @inheritdoc\n */\n /**\n * \\@inheritdoc\n * @param {?} transaction\n * @param {?=} recordRef\n * @return {?}\n */\n IgxBaseTransactionService.prototype.add = /**\n * \\@inheritdoc\n * @param {?} transaction\n * @param {?=} recordRef\n * @return {?}\n */\n function (transaction, recordRef) {\n if (this._isPending) {\n this.updateState(this._pendingStates, transaction, recordRef);\n this._pendingTransactions.push(transaction);\n }\n };\n /**\n * @inheritdoc\n */\n /**\n * \\@inheritdoc\n * @param {?=} id\n * @return {?}\n */\n IgxBaseTransactionService.prototype.getTransactionLog = /**\n * \\@inheritdoc\n * @param {?=} id\n * @return {?}\n */\n function (id) { return []; };\n /**\n * @inheritdoc\n */\n /**\n * \\@inheritdoc\n * @return {?}\n */\n IgxBaseTransactionService.prototype.undo = /**\n * \\@inheritdoc\n * @return {?}\n */\n function () { };\n /**\n * @inheritdoc\n */\n /**\n * \\@inheritdoc\n * @return {?}\n */\n IgxBaseTransactionService.prototype.redo = /**\n * \\@inheritdoc\n * @return {?}\n */\n function () { };\n /**\n * @inheritdoc\n */\n /**\n * \\@inheritdoc\n * @param {?} mergeChanges\n * @return {?}\n */\n IgxBaseTransactionService.prototype.getAggregatedChanges = /**\n * \\@inheritdoc\n * @param {?} mergeChanges\n * @return {?}\n */\n function (mergeChanges) {\n var _this = this;\n /** @type {?} */\n var result = [];\n this._pendingStates.forEach(function (state, key) {\n /** @type {?} */\n var value = mergeChanges ? _this.getAggregatedValue(key, mergeChanges) : state.value;\n result.push((/** @type {?} */ ({ id: key, newValue: value, type: state.type })));\n });\n return result;\n };\n /**\n * @inheritdoc\n */\n /**\n * \\@inheritdoc\n * @param {?} id\n * @return {?}\n */\n IgxBaseTransactionService.prototype.getState = /**\n * \\@inheritdoc\n * @param {?} id\n * @return {?}\n */\n function (id) {\n return this._pendingStates.get(id);\n };\n /**\n * @inheritdoc\n */\n /**\n * \\@inheritdoc\n * @param {?} id\n * @param {?} mergeChanges\n * @return {?}\n */\n IgxBaseTransactionService.prototype.getAggregatedValue = /**\n * \\@inheritdoc\n * @param {?} id\n * @param {?} mergeChanges\n * @return {?}\n */\n function (id, mergeChanges) {\n /** @type {?} */\n var state = this._pendingStates.get(id);\n if (!state) {\n return null;\n }\n if (mergeChanges) {\n return this.updateValue(state);\n }\n return state.value;\n };\n /**\n * @inheritdoc\n */\n /**\n * \\@inheritdoc\n * @param {?} data\n * @param {?=} id\n * @return {?}\n */\n IgxBaseTransactionService.prototype.commit = /**\n * \\@inheritdoc\n * @param {?} data\n * @param {?=} id\n * @return {?}\n */\n function (data, id) { };\n /**\n * @inheritdoc\n */\n /**\n * \\@inheritdoc\n * @param {?=} id\n * @return {?}\n */\n IgxBaseTransactionService.prototype.clear = /**\n * \\@inheritdoc\n * @param {?=} id\n * @return {?}\n */\n function (id) {\n this._pendingStates.clear();\n this._pendingTransactions = [];\n };\n /**\n * @inheritdoc\n */\n /**\n * \\@inheritdoc\n * @return {?}\n */\n IgxBaseTransactionService.prototype.startPending = /**\n * \\@inheritdoc\n * @return {?}\n */\n function () {\n this._isPending = true;\n };\n /**\n * @inheritdoc\n */\n /**\n * \\@inheritdoc\n * @param {?} commit\n * @return {?}\n */\n IgxBaseTransactionService.prototype.endPending = /**\n * \\@inheritdoc\n * @param {?} commit\n * @return {?}\n */\n function (commit) {\n this._isPending = false;\n this._pendingStates.clear();\n this._pendingTransactions = [];\n };\n /**\n * Updates the provided states collection according to passed transaction and recordRef\n * @param states States collection to apply the update to\n * @param transaction Transaction to apply to the current state\n * @param recordRef Reference to the value of the record in data source, if any, where transaction should be applied\n */\n /**\n * Updates the provided states collection according to passed transaction and recordRef\n * @protected\n * @param {?} states States collection to apply the update to\n * @param {?} transaction Transaction to apply to the current state\n * @param {?=} recordRef Reference to the value of the record in data source, if any, where transaction should be applied\n * @return {?}\n */\n IgxBaseTransactionService.prototype.updateState = /**\n * Updates the provided states collection according to passed transaction and recordRef\n * @protected\n * @param {?} states States collection to apply the update to\n * @param {?} transaction Transaction to apply to the current state\n * @param {?=} recordRef Reference to the value of the record in data source, if any, where transaction should be applied\n * @return {?}\n */\n function (states, transaction, recordRef) {\n /** @type {?} */\n var state = states.get(transaction.id);\n if (state) {\n if (isObject(state.value)) {\n mergeObjects(state.value, transaction.newValue);\n }\n else {\n state.value = transaction.newValue;\n }\n }\n else {\n state = (/** @type {?} */ ({ value: cloneValue(transaction.newValue), recordRef: recordRef, type: transaction.type }));\n states.set(transaction.id, state);\n }\n };\n /**\n * Updates the recordRef of the provided state with all the changes in the state. Accepts primitive and object value types\n * @param state State to update value for\n * @returns updated value including all the changes in provided state\n */\n /**\n * Updates the recordRef of the provided state with all the changes in the state. Accepts primitive and object value types\n * @protected\n * @param {?} state State to update value for\n * @return {?} updated value including all the changes in provided state\n */\n IgxBaseTransactionService.prototype.updateValue = /**\n * Updates the recordRef of the provided state with all the changes in the state. Accepts primitive and object value types\n * @protected\n * @param {?} state State to update value for\n * @return {?} updated value including all the changes in provided state\n */\n function (state) {\n return this.mergeValues(state.recordRef, state.value);\n };\n /**\n * Merges second values in first value and the result in empty object. If values are primitive type\n * returns second value if exists, or first value.\n * @param first Value to merge into\n * @param second Value to merge\n */\n /**\n * Merges second values in first value and the result in empty object. If values are primitive type\n * returns second value if exists, or first value.\n * @protected\n * @template U\n * @param {?} first Value to merge into\n * @param {?} second Value to merge\n * @return {?}\n */\n IgxBaseTransactionService.prototype.mergeValues = /**\n * Merges second values in first value and the result in empty object. If values are primitive type\n * returns second value if exists, or first value.\n * @protected\n * @template U\n * @param {?} first Value to merge into\n * @param {?} second Value to merge\n * @return {?}\n */\n function (first, second) {\n /** @type {?} */\n var result;\n if (isObject(first) || isObject(second)) {\n result = mergeObjects(mergeObjects({}, first), second);\n }\n else {\n result = second ? second : first;\n }\n return result;\n };\n IgxBaseTransactionService.decorators = [\n { type: Injectable }\n ];\n return IgxBaseTransactionService;\n}());\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n/**\n * @template T, S\n */\nvar IgxTransactionService = /** @class */ (function (_super) {\n __extends(IgxTransactionService, _super);\n function IgxTransactionService() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this._transactions = [];\n _this._redoStack = [];\n _this._undoStack = [];\n _this._states = new Map();\n /**\n * \\@inheritdoc\n */\n _this.onStateUpdate = new EventEmitter();\n return _this;\n }\n Object.defineProperty(IgxTransactionService.prototype, \"canUndo\", {\n /**\n * @inheritdoc\n */\n get: /**\n * \\@inheritdoc\n * @return {?}\n */\n function () {\n return this._undoStack.length > 0;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxTransactionService.prototype, \"canRedo\", {\n /**\n * @inheritdoc\n */\n get: /**\n * \\@inheritdoc\n * @return {?}\n */\n function () {\n return this._redoStack.length > 0;\n },\n enumerable: true,\n configurable: true\n });\n /**\n * @inheritdoc\n */\n /**\n * \\@inheritdoc\n * @param {?} transaction\n * @param {?=} recordRef\n * @return {?}\n */\n IgxTransactionService.prototype.add = /**\n * \\@inheritdoc\n * @param {?} transaction\n * @param {?=} recordRef\n * @return {?}\n */\n function (transaction, recordRef) {\n /** @type {?} */\n var states = this._isPending ? this._pendingStates : this._states;\n this.verifyAddedTransaction(states, transaction, recordRef);\n this.addTransaction(transaction, states, recordRef);\n };\n /**\n * @protected\n * @param {?} transaction\n * @param {?} states\n * @param {?=} recordRef\n * @return {?}\n */\n IgxTransactionService.prototype.addTransaction = /**\n * @protected\n * @param {?} transaction\n * @param {?} states\n * @param {?=} recordRef\n * @return {?}\n */\n function (transaction, states, recordRef) {\n this.updateState(states, transaction, recordRef);\n /** @type {?} */\n var transactions = this._isPending ? this._pendingTransactions : this._transactions;\n transactions.push(transaction);\n if (!this._isPending) {\n this._undoStack.push([{ transaction: transaction, recordRef: recordRef }]);\n this._redoStack = [];\n this.onStateUpdate.emit();\n }\n };\n /**\n * @inheritdoc\n */\n /**\n * \\@inheritdoc\n * @param {?=} id\n * @return {?}\n */\n IgxTransactionService.prototype.getTransactionLog = /**\n * \\@inheritdoc\n * @param {?=} id\n * @return {?}\n */\n function (id) {\n if (id !== undefined) {\n return this._transactions.filter(function (t) { return t.id === id; });\n }\n return __spread(this._transactions);\n };\n /**\n * @inheritdoc\n */\n /**\n * \\@inheritdoc\n * @param {?} mergeChanges\n * @return {?}\n */\n IgxTransactionService.prototype.getAggregatedChanges = /**\n * \\@inheritdoc\n * @param {?} mergeChanges\n * @return {?}\n */\n function (mergeChanges) {\n var _this = this;\n /** @type {?} */\n var result = [];\n this._states.forEach(function (state, key) {\n /** @type {?} */\n var value = mergeChanges ? _this.mergeValues(state.recordRef, state.value) : state.value;\n result.push((/** @type {?} */ ({ id: key, newValue: value, type: state.type })));\n });\n return result;\n };\n /**\n * @inheritdoc\n */\n /**\n * \\@inheritdoc\n * @param {?} id\n * @param {?=} pending\n * @return {?}\n */\n IgxTransactionService.prototype.getState = /**\n * \\@inheritdoc\n * @param {?} id\n * @param {?=} pending\n * @return {?}\n */\n function (id, pending) {\n if (pending === void 0) { pending = false; }\n return pending ? this._pendingStates.get(id) : this._states.get(id);\n };\n Object.defineProperty(IgxTransactionService.prototype, \"enabled\", {\n /**\n * @inheritdoc\n */\n get: /**\n * \\@inheritdoc\n * @return {?}\n */\n function () {\n return true;\n },\n enumerable: true,\n configurable: true\n });\n /**\n * @inheritdoc\n */\n /**\n * \\@inheritdoc\n * @param {?} id\n * @param {?} mergeChanges\n * @return {?}\n */\n IgxTransactionService.prototype.getAggregatedValue = /**\n * \\@inheritdoc\n * @param {?} id\n * @param {?} mergeChanges\n * @return {?}\n */\n function (id, mergeChanges) {\n /** @type {?} */\n var state = this._states.get(id);\n /** @type {?} */\n var pendingState = _super.prototype.getState.call(this, id);\n // if there is no state and there is no pending state return null\n if (!state && !pendingState) {\n return null;\n }\n /** @type {?} */\n var pendingChange = _super.prototype.getAggregatedValue.call(this, id, false);\n /** @type {?} */\n var change = state && state.value;\n /** @type {?} */\n var aggregatedValue = this.mergeValues(change, pendingChange);\n if (mergeChanges) {\n /** @type {?} */\n var originalValue = state ? state.recordRef : pendingState.recordRef;\n aggregatedValue = this.mergeValues(originalValue, aggregatedValue);\n }\n return aggregatedValue;\n };\n /**\n * @inheritdoc\n */\n /**\n * \\@inheritdoc\n * @param {?} commit\n * @return {?}\n */\n IgxTransactionService.prototype.endPending = /**\n * \\@inheritdoc\n * @param {?} commit\n * @return {?}\n */\n function (commit) {\n var e_1, _a;\n this._isPending = false;\n if (commit) {\n /** @type {?} */\n var actions = [];\n try {\n // don't use addTransaction due to custom undo handling\n for (var _b = __values(this._pendingTransactions), _c = _b.next(); !_c.done; _c = _b.next()) {\n var transaction = _c.value;\n /** @type {?} */\n var pendingState = this._pendingStates.get(transaction.id);\n this._transactions.push(transaction);\n this.updateState(this._states, transaction, pendingState.recordRef);\n actions.push({ transaction: transaction, recordRef: pendingState.recordRef });\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n }\n finally { if (e_1) throw e_1.error; }\n }\n this._undoStack.push(actions);\n this._redoStack = [];\n this.onStateUpdate.emit();\n }\n _super.prototype.endPending.call(this, commit);\n };\n /**\n * @inheritdoc\n */\n /**\n * \\@inheritdoc\n * @param {?} data\n * @param {?=} id\n * @return {?}\n */\n IgxTransactionService.prototype.commit = /**\n * \\@inheritdoc\n * @param {?} data\n * @param {?=} id\n * @return {?}\n */\n function (data, id) {\n var _this = this;\n if (id !== undefined) {\n /** @type {?} */\n var state = this.getState(id);\n if (state) {\n this.updateRecord(data, state);\n }\n }\n else {\n this._states.forEach(function (s) {\n _this.updateRecord(data, s);\n });\n }\n this.clear(id);\n };\n /**\n * @inheritdoc\n */\n /**\n * \\@inheritdoc\n * @param {?=} id\n * @return {?}\n */\n IgxTransactionService.prototype.clear = /**\n * \\@inheritdoc\n * @param {?=} id\n * @return {?}\n */\n function (id) {\n if (id !== undefined) {\n this._transactions = this._transactions.filter(function (t) { return t.id !== id; });\n this._states.delete(id);\n // Undo stack is an array of actions. Each action is array of transaction like objects\n // We are going trough all the actions. For each action we are filtering out transactions\n // with provided id. Finally if any action ends up as empty array we are removing it from\n // undo stack\n this._undoStack = this._undoStack.map(function (a) { return a.filter(function (t) { return t.transaction.id !== id; }); }).filter(function (a) { return a.length > 0; });\n }\n else {\n this._transactions = [];\n this._states.clear();\n this._undoStack = [];\n }\n this._redoStack = [];\n this.onStateUpdate.emit();\n };\n /**\n * @inheritdoc\n */\n /**\n * \\@inheritdoc\n * @return {?}\n */\n IgxTransactionService.prototype.undo = /**\n * \\@inheritdoc\n * @return {?}\n */\n function () {\n var e_2, _a, e_3, _b;\n if (this._undoStack.length <= 0) {\n return;\n }\n /** @type {?} */\n var lastActions = this._undoStack.pop();\n this._transactions.splice(this._transactions.length - lastActions.length);\n this._redoStack.push(lastActions);\n this._states.clear();\n try {\n for (var _c = __values(this._undoStack), _d = _c.next(); !_d.done; _d = _c.next()) {\n var currentActions = _d.value;\n try {\n for (var currentActions_1 = __values(currentActions), currentActions_1_1 = currentActions_1.next(); !currentActions_1_1.done; currentActions_1_1 = currentActions_1.next()) {\n var transaction = currentActions_1_1.value;\n this.updateState(this._states, transaction.transaction, transaction.recordRef);\n }\n }\n catch (e_3_1) { e_3 = { error: e_3_1 }; }\n finally {\n try {\n if (currentActions_1_1 && !currentActions_1_1.done && (_b = currentActions_1.return)) _b.call(currentActions_1);\n }\n finally { if (e_3) throw e_3.error; }\n }\n }\n }\n catch (e_2_1) { e_2 = { error: e_2_1 }; }\n finally {\n try {\n if (_d && !_d.done && (_a = _c.return)) _a.call(_c);\n }\n finally { if (e_2) throw e_2.error; }\n }\n this.onStateUpdate.emit();\n };\n /**\n * @inheritdoc\n */\n /**\n * \\@inheritdoc\n * @return {?}\n */\n IgxTransactionService.prototype.redo = /**\n * \\@inheritdoc\n * @return {?}\n */\n function () {\n var e_4, _a;\n if (this._redoStack.length > 0) {\n /** @type {?} */\n var actions = void 0;\n actions = this._redoStack.pop();\n try {\n for (var actions_1 = __values(actions), actions_1_1 = actions_1.next(); !actions_1_1.done; actions_1_1 = actions_1.next()) {\n var action = actions_1_1.value;\n this.updateState(this._states, action.transaction, action.recordRef);\n this._transactions.push(action.transaction);\n }\n }\n catch (e_4_1) { e_4 = { error: e_4_1 }; }\n finally {\n try {\n if (actions_1_1 && !actions_1_1.done && (_a = actions_1.return)) _a.call(actions_1);\n }\n finally { if (e_4) throw e_4.error; }\n }\n this._undoStack.push(actions);\n this.onStateUpdate.emit();\n }\n };\n /**\n * Verifies if the passed transaction is correct. If not throws an exception.\n * @param transaction Transaction to be verified\n */\n /**\n * Verifies if the passed transaction is correct. If not throws an exception.\n * @protected\n * @param {?} states\n * @param {?} transaction Transaction to be verified\n * @param {?=} recordRef\n * @return {?}\n */\n IgxTransactionService.prototype.verifyAddedTransaction = /**\n * Verifies if the passed transaction is correct. If not throws an exception.\n * @protected\n * @param {?} states\n * @param {?} transaction Transaction to be verified\n * @param {?=} recordRef\n * @return {?}\n */\n function (states, transaction, recordRef) {\n /** @type {?} */\n var state = states.get(transaction.id);\n switch (transaction.type) {\n case TransactionType.ADD:\n if (state) {\n // cannot add same item twice\n throw new Error(\"Cannot add this transaction. Transaction with id: \" + transaction.id + \" has been already added.\");\n }\n break;\n case TransactionType.DELETE:\n case TransactionType.UPDATE:\n if (state && state.type === TransactionType.DELETE) {\n // cannot delete or update deleted items\n throw new Error(\"Cannot add this transaction. Transaction with id: \" + transaction.id + \" has been already deleted.\");\n }\n if (!state && !recordRef && !this._isPending) {\n // cannot initially add transaction or delete item with no recordRef\n throw new Error(\"Cannot add this transaction. This is first transaction of type \" + transaction.type + \" \" +\n (\"for id \" + transaction.id + \". For first transaction of this type recordRef is mandatory.\"));\n }\n break;\n }\n };\n /**\n * Updates the provided states collection according to passed transaction and recordRef\n * @param states States collection to apply the update to\n * @param transaction Transaction to apply to the current state\n * @param recordRef Reference to the value of the record in data source, if any, where transaction should be applied\n */\n /**\n * Updates the provided states collection according to passed transaction and recordRef\n * @protected\n * @param {?} states States collection to apply the update to\n * @param {?} transaction Transaction to apply to the current state\n * @param {?=} recordRef Reference to the value of the record in data source, if any, where transaction should be applied\n * @return {?}\n */\n IgxTransactionService.prototype.updateState = /**\n * Updates the provided states collection according to passed transaction and recordRef\n * @protected\n * @param {?} states States collection to apply the update to\n * @param {?} transaction Transaction to apply to the current state\n * @param {?=} recordRef Reference to the value of the record in data source, if any, where transaction should be applied\n * @return {?}\n */\n function (states, transaction, recordRef) {\n /** @type {?} */\n var state = states.get(transaction.id);\n // if TransactionType is ADD simply add transaction to states;\n // if TransactionType is DELETE:\n // - if there is state with this id of type ADD remove it from the states;\n // - if there is state with this id of type UPDATE change its type to DELETE;\n // - if there is no state with this id add transaction to states;\n // if TransactionType is UPDATE:\n // - if there is state with this id of type ADD merge new value and state recordRef into state new value\n // - if there is state with this id of type UPDATE merge new value into state new value\n // - if there is state with this id and state type is DELETE change its type to UPDATE\n // - if there is no state with this id add transaction to states;\n if (state) {\n switch (transaction.type) {\n case TransactionType.DELETE:\n if (state.type === TransactionType.ADD) {\n states.delete(transaction.id);\n }\n else if (state.type === TransactionType.UPDATE) {\n state.value = transaction.newValue;\n state.type = TransactionType.DELETE;\n }\n break;\n case TransactionType.UPDATE:\n if (isObject(state.value)) {\n if (state.type === TransactionType.ADD) {\n state.value = this.mergeValues(state.value, transaction.newValue);\n }\n if (state.type === TransactionType.UPDATE) {\n mergeObjects(state.value, transaction.newValue);\n }\n }\n else {\n state.value = transaction.newValue;\n }\n }\n }\n else {\n state = (/** @type {?} */ ({ value: cloneValue(transaction.newValue), recordRef: recordRef, type: transaction.type }));\n states.set(transaction.id, state);\n }\n // should not clean pending state. This will happen automatically on endPending call\n if (!this._isPending) {\n this.cleanState(transaction.id, states);\n }\n };\n /**\n * Compares the state with recordRef and clears all duplicated values. If any state ends as\n * empty object removes it from states.\n * @param state State to clean\n */\n /**\n * Compares the state with recordRef and clears all duplicated values. If any state ends as\n * empty object removes it from states.\n * @protected\n * @param {?} id\n * @param {?} states\n * @return {?}\n */\n IgxTransactionService.prototype.cleanState = /**\n * Compares the state with recordRef and clears all duplicated values. If any state ends as\n * empty object removes it from states.\n * @protected\n * @param {?} id\n * @param {?} states\n * @return {?}\n */\n function (id, states) {\n var e_5, _a;\n /** @type {?} */\n var state = states.get(id);\n // do nothing if\n // there is no state, or\n // there is no state value (e.g. DELETED transaction), or\n // there is no recordRef (e.g. ADDED transaction)\n if (state && state.value && state.recordRef) {\n // if state's value is object compare each key with the ones in recordRef\n // if values in any key are the same delete it from state's value\n // if state's value is not object, simply compare with recordRef and remove\n // the state if they are equal\n if (isObject(state.recordRef)) {\n try {\n for (var _b = __values(Object.keys(state.value)), _c = _b.next(); !_c.done; _c = _b.next()) {\n var key = _c.value;\n if (JSON.stringify(state.recordRef[key]) === JSON.stringify(state.value[key])) {\n delete state.value[key];\n }\n }\n }\n catch (e_5_1) { e_5 = { error: e_5_1 }; }\n finally {\n try {\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n }\n finally { if (e_5) throw e_5.error; }\n }\n // if state's value is empty remove the state from the states, only if state is not DELETE type\n if (state.type !== TransactionType.DELETE && Object.keys(state.value).length === 0) {\n states.delete(id);\n }\n }\n else {\n if (state.recordRef === state.value) {\n states.delete(id);\n }\n }\n }\n };\n /**\n * Updates state related record in the provided data\n * @param data Data source to update\n * @param state State to update data from\n */\n /**\n * Updates state related record in the provided data\n * @protected\n * @param {?} data Data source to update\n * @param {?} state State to update data from\n * @return {?}\n */\n IgxTransactionService.prototype.updateRecord = /**\n * Updates state related record in the provided data\n * @protected\n * @param {?} data Data source to update\n * @param {?} state State to update data from\n * @return {?}\n */\n function (data, state) {\n /** @type {?} */\n var index = data.findIndex(function (i) { return JSON.stringify(i) === JSON.stringify(state.recordRef || {}); });\n switch (state.type) {\n case TransactionType.ADD:\n data.push(state.value);\n break;\n case TransactionType.DELETE:\n if (0 <= index && index < data.length) {\n data.splice(index, 1);\n }\n break;\n case TransactionType.UPDATE:\n if (0 <= index && index < data.length) {\n data[index] = this.updateValue(state);\n }\n break;\n }\n };\n IgxTransactionService.decorators = [\n { type: Injectable }\n ];\n return IgxTransactionService;\n}(IgxBaseTransactionService));\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n/**\n * \\@experimental \\@hidden\n * @template T, S\n */\nvar IgxHierarchicalTransactionService = /** @class */ (function (_super) {\n __extends(IgxHierarchicalTransactionService, _super);\n function IgxHierarchicalTransactionService() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n /**\n * @param {?} mergeChanges\n * @return {?}\n */\n IgxHierarchicalTransactionService.prototype.getAggregatedChanges = /**\n * @param {?} mergeChanges\n * @return {?}\n */\n function (mergeChanges) {\n var _this = this;\n /** @type {?} */\n var result = [];\n this._states.forEach(function (state, key) {\n /** @type {?} */\n var value = mergeChanges ? _this.mergeValues(state.recordRef, state.value) : cloneValue(state.value);\n _this.clearArraysFromObject(value);\n result.push((/** @type {?} */ ({ id: key, path: state.path, newValue: value, type: state.type })));\n });\n return result;\n };\n /**\n * @protected\n * @param {?} states\n * @param {?} transaction\n * @param {?=} recordRef\n * @return {?}\n */\n IgxHierarchicalTransactionService.prototype.updateState = /**\n * @protected\n * @param {?} states\n * @param {?} transaction\n * @param {?=} recordRef\n * @return {?}\n */\n function (states, transaction, recordRef) {\n _super.prototype.updateState.call(this, states, transaction, recordRef);\n // if transaction has no path, e.g. flat data source, get out\n if (!transaction.path) {\n return;\n }\n /** @type {?} */\n var currentState = states.get(transaction.id);\n if (currentState) {\n currentState.path = transaction.path;\n }\n // if transaction has path, Hierarchical data source, and it is DELETE\n // type transaction for all child rows remove ADD states and update\n // transaction type and value of UPDATE states\n if (transaction.type === TransactionType.DELETE) {\n states.forEach(function (v, k) {\n if (v.path && v.path.indexOf(transaction.id) !== -1) {\n switch (v.type) {\n case TransactionType.ADD:\n states.delete(k);\n break;\n case TransactionType.UPDATE:\n states.get(k).type = TransactionType.DELETE;\n states.get(k).value = null;\n }\n }\n });\n }\n };\n /**\n * Applies all transactions over the provided data\n * @param data Data source to update\n * @param primaryKey Primary key of the hierarchical data\n * @param childDataKey Kye of child data collection\n * @param id Optional record id to commit transactions for\n */\n /**\n * Applies all transactions over the provided data\n * @param {?} data Data source to update\n * @param {?=} primaryKey Primary key of the hierarchical data\n * @param {?=} childDataKey Kye of child data collection\n * @param {?=} id Optional record id to commit transactions for\n * @return {?}\n */\n IgxHierarchicalTransactionService.prototype.commit = /**\n * Applies all transactions over the provided data\n * @param {?} data Data source to update\n * @param {?=} primaryKey Primary key of the hierarchical data\n * @param {?=} childDataKey Kye of child data collection\n * @param {?=} id Optional record id to commit transactions for\n * @return {?}\n */\n function (data, primaryKey, childDataKey, id) {\n if (childDataKey !== undefined) {\n /** @type {?} */\n var transactions = this.getAggregatedChanges(true);\n if (id !== undefined) {\n transactions = transactions.filter(function (t) { return t.id === id; });\n }\n DataUtil.mergeHierarchicalTransactions(data, transactions, childDataKey, primaryKey, true);\n }\n else {\n _super.prototype.commit.call(this, data, id);\n }\n this.clear(id);\n };\n // TODO: remove this method. Force cloning to strip child arrays when needed instead\n // TODO: remove this method. Force cloning to strip child arrays when needed instead\n /**\n * @private\n * @param {?} obj\n * @return {?}\n */\n IgxHierarchicalTransactionService.prototype.clearArraysFromObject = \n // TODO: remove this method. Force cloning to strip child arrays when needed instead\n /**\n * @private\n * @param {?} obj\n * @return {?}\n */\n function (obj) {\n var e_1, _a;\n if (obj) {\n try {\n for (var _b = __values(Object.keys(obj)), _c = _b.next(); !_c.done; _c = _b.next()) {\n var prop = _c.value;\n if (Array.isArray(obj[prop])) {\n delete obj[prop];\n }\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n }\n finally { if (e_1) throw e_1.error; }\n }\n }\n };\n IgxHierarchicalTransactionService.decorators = [\n { type: Injectable }\n ];\n return IgxHierarchicalTransactionService;\n}(IgxTransactionService));\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\nvar IgxToggleDirective = /** @class */ (function () {\n /**\n * @hidden\n */\n function IgxToggleDirective(elementRef, cdr, overlayService, navigationService) {\n var _this = this;\n this.elementRef = elementRef;\n this.cdr = cdr;\n this.overlayService = overlayService;\n this.navigationService = navigationService;\n this.destroy$ = new Subject();\n this._overlaySubFilter = [\n filter(function (x) { return x.id === _this._overlayId; }),\n takeUntil(this.destroy$)\n ];\n /**\n * Emits an event after the toggle container is opened.\n *\n * ```typescript\n * onToggleOpened(event) {\n * alert(\"Toggle opened!\");\n * }\n * ```\n *\n * ```html\n * \n * \n * ```\n */\n this.onOpened = new EventEmitter();\n /**\n * Emits an event before the toggle container is opened.\n *\n * ```typescript\n * onToggleOpening(event) {\n * alert(\"Toggle opening!\");\n * }\n * ```\n *\n * ```html\n * \n * \n * ```\n */\n this.onOpening = new EventEmitter();\n /**\n * Emits an event after the toggle container is closed.\n *\n * ```typescript\n * onToggleClosed(event) {\n * alert(\"Toggle closed!\");\n * }\n * ```\n *\n * ```html\n * \n * \n * ```\n */\n this.onClosed = new EventEmitter();\n /**\n * Emits an event before the toggle container is closed.\n *\n * ```typescript\n * onToggleClosing(event) {\n * alert(\"Toggle closing!\");\n * }\n * ```\n *\n * ```html\n * \n * \n * ```\n */\n this.onClosing = new EventEmitter();\n this._collapsed = true;\n this.overlayClosed = function () {\n _this._collapsed = true;\n _this.cdr.detectChanges();\n delete _this._overlayId;\n _this.unsubscribe();\n _this.onClosed.emit();\n };\n }\n Object.defineProperty(IgxToggleDirective.prototype, \"collapsed\", {\n /**\n * @hidden\n */\n get: /**\n * @hidden\n * @return {?}\n */\n function () {\n return this._collapsed;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxToggleDirective.prototype, \"element\", {\n /**\n * @hidden\n */\n get: /**\n * @hidden\n * @return {?}\n */\n function () {\n return this.elementRef.nativeElement;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxToggleDirective.prototype, \"hiddenClass\", {\n /**\n * @hidden\n */\n get: /**\n * @hidden\n * @return {?}\n */\n function () {\n return this.collapsed;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxToggleDirective.prototype, \"defaultClass\", {\n /**\n * @hidden\n */\n get: /**\n * @hidden\n * @return {?}\n */\n function () {\n return !this.collapsed;\n },\n enumerable: true,\n configurable: true\n });\n /**\n * Opens the toggle.\n *\n * ```typescript\n * this.myToggle.open();\n * ```\n */\n /**\n * Opens the toggle.\n *\n * ```typescript\n * this.myToggle.open();\n * ```\n * @param {?=} overlaySettings\n * @return {?}\n */\n IgxToggleDirective.prototype.open = /**\n * Opens the toggle.\n *\n * ```typescript\n * this.myToggle.open();\n * ```\n * @param {?=} overlaySettings\n * @return {?}\n */\n function (overlaySettings) {\n var _this = this;\n var _a, _b, _c;\n // if there is open animation do nothing\n // if toggle is not collapsed and there is no close animation do nothing\n /** @type {?} */\n var info = this.overlayService.getOverlayById(this._overlayId);\n /** @type {?} */\n var hasOpenAnimation = info ? info.openAnimationPlayer : false;\n /** @type {?} */\n var hasCloseAnimation = info ? info.closeAnimationPlayer : false;\n if (hasOpenAnimation || !(this._collapsed || hasCloseAnimation)) {\n return;\n }\n if (!info) {\n this._overlayId = this.overlayService.attach(this.elementRef, overlaySettings);\n }\n this._collapsed = false;\n this.cdr.detectChanges();\n /** @type {?} */\n var openEventArgs = { cancel: false };\n this.onOpening.emit(openEventArgs);\n if (openEventArgs.cancel) {\n this._collapsed = true;\n this.cdr.detectChanges();\n return;\n }\n this.overlayService.show(this._overlayId, overlaySettings);\n this.unsubscribe();\n this._overlayOpenedSub = (_a = this.overlayService.onOpened).pipe.apply(_a, __spread(this._overlaySubFilter)).subscribe(function () {\n _this.onOpened.emit();\n });\n this._overlayClosingSub = (_b = this.overlayService\n .onClosing).pipe.apply(_b, __spread(this._overlaySubFilter)).subscribe(function (e) {\n /** @type {?} */\n var eventArgs = { cancel: false, event: e.event };\n _this.onClosing.emit(eventArgs);\n e.cancel = eventArgs.cancel;\n // in case event is not canceled this will close the toggle and we need to unsubscribe.\n // Otherwise if for some reason, e.g. close on outside click, close() gets called before\n // onClosed was fired we will end with calling onClosing more than once\n if (!e.cancel) {\n _this.clearSubscription(_this._overlayClosingSub);\n }\n });\n this._overlayClosedSub = (_c = this.overlayService.onClosed).pipe.apply(_c, __spread(this._overlaySubFilter)).subscribe(this.overlayClosed);\n };\n /**\n * Closes the toggle.\n *\n * ```typescript\n * this.myToggle.close();\n * ```\n */\n /**\n * Closes the toggle.\n *\n * ```typescript\n * this.myToggle.close();\n * ```\n * @return {?}\n */\n IgxToggleDirective.prototype.close = /**\n * Closes the toggle.\n *\n * ```typescript\n * this.myToggle.close();\n * ```\n * @return {?}\n */\n function () {\n // if toggle is collapsed do nothing\n // if there is close animation do nothing, toggle will close anyway\n /** @type {?} */\n var info = this.overlayService.getOverlayById(this._overlayId);\n /** @type {?} */\n var hasCloseAnimation = info ? info.closeAnimationPlayer : false;\n if (this._collapsed || hasCloseAnimation) {\n return;\n }\n this.overlayService.hide(this._overlayId);\n };\n /**\n * Opens or closes the toggle, depending on its current state.\n *\n * ```typescript\n * this.myToggle.toggle();\n * ```\n */\n /**\n * Opens or closes the toggle, depending on its current state.\n *\n * ```typescript\n * this.myToggle.toggle();\n * ```\n * @param {?=} overlaySettings\n * @return {?}\n */\n IgxToggleDirective.prototype.toggle = /**\n * Opens or closes the toggle, depending on its current state.\n *\n * ```typescript\n * this.myToggle.toggle();\n * ```\n * @param {?=} overlaySettings\n * @return {?}\n */\n function (overlaySettings) {\n // if toggle is collapsed call open\n // if there is close animation call open\n if (this.collapsed || this.isClosing) {\n this.open(overlaySettings);\n }\n else {\n this.close();\n }\n };\n Object.defineProperty(IgxToggleDirective.prototype, \"isClosing\", {\n /** @hidden @internal */\n get: /**\n * @hidden \\@internal\n * @return {?}\n */\n function () {\n /** @type {?} */\n var info = this.overlayService.getOverlayById(this._overlayId);\n return info ? info.closeAnimationPlayer : false;\n },\n enumerable: true,\n configurable: true\n });\n /**\n * Repositions the toggle.\n * ```typescript\n * this.myToggle.reposition();\n * ```\n */\n /**\n * Repositions the toggle.\n * ```typescript\n * this.myToggle.reposition();\n * ```\n * @return {?}\n */\n IgxToggleDirective.prototype.reposition = /**\n * Repositions the toggle.\n * ```typescript\n * this.myToggle.reposition();\n * ```\n * @return {?}\n */\n function () {\n this.overlayService.reposition(this._overlayId);\n };\n /**\n * @hidden\n */\n /**\n * @hidden\n * @return {?}\n */\n IgxToggleDirective.prototype.ngOnInit = /**\n * @hidden\n * @return {?}\n */\n function () {\n if (this.navigationService && this.id) {\n this.navigationService.add(this.id, this);\n }\n };\n /**\n * @hidden\n */\n /**\n * @hidden\n * @return {?}\n */\n IgxToggleDirective.prototype.ngOnDestroy = /**\n * @hidden\n * @return {?}\n */\n function () {\n if (this.navigationService && this.id) {\n this.navigationService.remove(this.id);\n }\n if (!this.collapsed && this._overlayId) {\n this.overlayService.hide(this._overlayId);\n }\n this.unsubscribe();\n this.destroy$.next(true);\n this.destroy$.complete();\n };\n /**\n * @private\n * @return {?}\n */\n IgxToggleDirective.prototype.unsubscribe = /**\n * @private\n * @return {?}\n */\n function () {\n this.clearSubscription(this._overlayOpenedSub);\n this.clearSubscription(this._overlayClosingSub);\n this.clearSubscription(this._overlayClosedSub);\n };\n /**\n * @private\n * @param {?} subscription\n * @return {?}\n */\n IgxToggleDirective.prototype.clearSubscription = /**\n * @private\n * @param {?} subscription\n * @return {?}\n */\n function (subscription) {\n if (subscription && !subscription.closed) {\n subscription.unsubscribe();\n }\n };\n IgxToggleDirective.decorators = [\n { type: Directive, args: [{\n exportAs: 'toggle',\n selector: '[igxToggle]'\n },] }\n ];\n /** @nocollapse */\n IgxToggleDirective.ctorParameters = function () { return [\n { type: ElementRef },\n { type: ChangeDetectorRef },\n { type: IgxOverlayService, decorators: [{ type: Inject, args: [IgxOverlayService,] }] },\n { type: IgxNavigationService, decorators: [{ type: Optional }] }\n ]; };\n IgxToggleDirective.propDecorators = {\n onOpened: [{ type: Output }],\n onOpening: [{ type: Output }],\n onClosed: [{ type: Output }],\n onClosing: [{ type: Output }],\n id: [{ type: Input }],\n hiddenClass: [{ type: HostBinding, args: ['class.igx-toggle--hidden',] }, { type: HostBinding, args: ['attr.aria-hidden',] }],\n defaultClass: [{ type: HostBinding, args: ['class.igx-toggle',] }]\n };\n return IgxToggleDirective;\n}());\nvar IgxToggleActionDirective = /** @class */ (function () {\n function IgxToggleActionDirective(element, navigationService) {\n this.element = element;\n this.navigationService = navigationService;\n }\n Object.defineProperty(IgxToggleActionDirective.prototype, \"target\", {\n /**\n * @hidden\n */\n get: /**\n * @hidden\n * @return {?}\n */\n function () {\n if (typeof this._target === 'string') {\n return this.navigationService.get(this._target);\n }\n return this._target;\n },\n /**\n * @hidden\n */\n set: /**\n * @hidden\n * @param {?} target\n * @return {?}\n */\n function (target) {\n if (target !== null && target !== '') {\n this._target = target;\n }\n },\n enumerable: true,\n configurable: true\n });\n /**\n * @hidden\n */\n /**\n * @hidden\n * @return {?}\n */\n IgxToggleActionDirective.prototype.ngOnInit = /**\n * @hidden\n * @return {?}\n */\n function () {\n this._overlayDefaults = {\n positionStrategy: new ConnectedPositioningStrategy({ target: this.element.nativeElement }),\n scrollStrategy: new AbsoluteScrollStrategy(),\n closeOnOutsideClick: true,\n modal: false,\n excludePositionTarget: true\n };\n };\n /**\n * @hidden\n */\n /**\n * @hidden\n * @return {?}\n */\n IgxToggleActionDirective.prototype.onClick = /**\n * @hidden\n * @return {?}\n */\n function () {\n if (this.outlet) {\n this._overlayDefaults.outlet = this.outlet;\n }\n /** @type {?} */\n var clonedSettings = Object.assign({}, this._overlayDefaults, this.overlaySettings);\n this.updateOverlaySettings(clonedSettings);\n this.target.toggle(clonedSettings);\n };\n /**\n * Updates provided overlay settings\n * @param settings settings to update\n * @returns returns updated copy of provided overlay settings\n */\n /**\n * Updates provided overlay settings\n * @protected\n * @param {?} settings settings to update\n * @return {?} returns updated copy of provided overlay settings\n */\n IgxToggleActionDirective.prototype.updateOverlaySettings = /**\n * Updates provided overlay settings\n * @protected\n * @param {?} settings settings to update\n * @return {?} returns updated copy of provided overlay settings\n */\n function (settings) {\n if (settings && settings.positionStrategy) {\n /** @type {?} */\n var positionStrategyClone = settings.positionStrategy.clone();\n positionStrategyClone.settings.target = this.element.nativeElement;\n settings.positionStrategy = positionStrategyClone;\n }\n return settings;\n };\n IgxToggleActionDirective.decorators = [\n { type: Directive, args: [{\n exportAs: 'toggle-action',\n selector: '[igxToggleAction]'\n },] }\n ];\n /** @nocollapse */\n IgxToggleActionDirective.ctorParameters = function () { return [\n { type: ElementRef },\n { type: IgxNavigationService, decorators: [{ type: Optional }] }\n ]; };\n IgxToggleActionDirective.propDecorators = {\n overlaySettings: [{ type: Input }],\n outlet: [{ type: Input, args: ['igxToggleOutlet',] }],\n target: [{ type: Input, args: ['igxToggleAction',] }],\n onClick: [{ type: HostListener, args: ['click',] }]\n };\n return IgxToggleActionDirective;\n}());\n/**\n * Mark an element as an igxOverlay outlet container.\n * Directive instance is exported as `overlay-outlet` to be assigned to templates variables:\n * ```html\n *
\n * ```\n */\nvar IgxOverlayOutletDirective = /** @class */ (function () {\n function IgxOverlayOutletDirective(element) {\n this.element = element;\n }\n Object.defineProperty(IgxOverlayOutletDirective.prototype, \"nativeElement\", {\n /** @hidden */\n get: /**\n * @hidden\n * @return {?}\n */\n function () {\n return this.element.nativeElement;\n },\n enumerable: true,\n configurable: true\n });\n IgxOverlayOutletDirective.decorators = [\n { type: Directive, args: [{\n exportAs: 'overlay-outlet',\n selector: '[igxOverlayOutlet]'\n },] }\n ];\n /** @nocollapse */\n IgxOverlayOutletDirective.ctorParameters = function () { return [\n { type: ElementRef }\n ]; };\n return IgxOverlayOutletDirective;\n}());\n/**\n * @hidden\n */\nvar IgxToggleModule = /** @class */ (function () {\n function IgxToggleModule() {\n }\n IgxToggleModule.decorators = [\n { type: NgModule, args: [{\n declarations: [IgxToggleDirective, IgxToggleActionDirective, IgxOverlayOutletDirective],\n exports: [IgxToggleDirective, IgxToggleActionDirective, IgxOverlayOutletDirective],\n providers: [IgxNavigationService]\n },] }\n ];\n return IgxToggleModule;\n}());\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n/** @enum {number} */\nvar Navigate = {\n Up: -1,\n Down: 1,\n};\nNavigate[Navigate.Up] = 'Up';\nNavigate[Navigate.Down] = 'Down';\n/** @enum {string} */\nvar DropDownActionKey = {\n ESCAPE: 'escape',\n ENTER: 'enter',\n SPACE: 'space',\n};\n/** @type {?} */\nvar IGX_DROPDOWN_BASE = 'IgxDropDownBaseToken';\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n/**\n * @hidden\n */\nvar IgxSelectionAPIService = /** @class */ (function () {\n function IgxSelectionAPIService() {\n /**\n * If primaryKey is defined, then multiple selection is based on the primaryKey, and it is array of numbers, strings, etc.\n * If the primaryKey is omitted, then selection is based on the item data\n */\n this.selection = new Map();\n }\n /**\n * Get current component selection.\n * @param componentID ID of the component.\n */\n /**\n * Get current component selection.\n * @param {?} componentID ID of the component.\n * @return {?}\n */\n IgxSelectionAPIService.prototype.get = /**\n * Get current component selection.\n * @param {?} componentID ID of the component.\n * @return {?}\n */\n function (componentID) {\n return this.selection.get(componentID);\n };\n /**\n * Set new component selection.\n * @param componentID ID of the component.\n * @param newSelection The new component selection to be set.\n */\n /**\n * Set new component selection.\n * @param {?} componentID ID of the component.\n * @param {?} newSelection The new component selection to be set.\n * @return {?}\n */\n IgxSelectionAPIService.prototype.set = /**\n * Set new component selection.\n * @param {?} componentID ID of the component.\n * @param {?} newSelection The new component selection to be set.\n * @return {?}\n */\n function (componentID, newSelection) {\n if (!componentID) {\n throw Error('Invalid value for component id!');\n }\n this.selection.set(componentID, newSelection);\n };\n /**\n * Clears selection for component.\n * @param componentID ID of the component.\n */\n /**\n * Clears selection for component.\n * @param {?} componentID ID of the component.\n * @return {?}\n */\n IgxSelectionAPIService.prototype.clear = /**\n * Clears selection for component.\n * @param {?} componentID ID of the component.\n * @return {?}\n */\n function (componentID) {\n this.selection.set(componentID, this.get_empty());\n };\n /**\n * Get current component selection length.\n * @param componentID ID of the component.\n */\n /**\n * Get current component selection length.\n * @param {?} componentID ID of the component.\n * @return {?}\n */\n IgxSelectionAPIService.prototype.size = /**\n * Get current component selection length.\n * @param {?} componentID ID of the component.\n * @return {?}\n */\n function (componentID) {\n /** @type {?} */\n var sel = this.get(componentID);\n return sel ? sel.size : 0;\n };\n /**\n * Creates new selection that consist of the new item added to the current component selection.\n * The returned collection is new Set,\n * therefore if you want to update component selection you need to call in addition the set_selection() method\n * or instead use the select_item() one.\n * @param componentID ID of the component, which we add new item to.\n * @param itemID ID of the item to add to component selection.\n * @param sel Used internally only by the selection (add_items method) to accumulate selection for multiple items.\n *\n * @returns Selection after the new item is added.\n */\n /**\n * Creates new selection that consist of the new item added to the current component selection.\n * The returned collection is new Set,\n * therefore if you want to update component selection you need to call in addition the set_selection() method\n * or instead use the select_item() one.\n * @param {?} componentID ID of the component, which we add new item to.\n * @param {?} itemID ID of the item to add to component selection.\n * @param {?=} sel Used internally only by the selection (add_items method) to accumulate selection for multiple items.\n *\n * @return {?} Selection after the new item is added.\n */\n IgxSelectionAPIService.prototype.add_item = /**\n * Creates new selection that consist of the new item added to the current component selection.\n * The returned collection is new Set,\n * therefore if you want to update component selection you need to call in addition the set_selection() method\n * or instead use the select_item() one.\n * @param {?} componentID ID of the component, which we add new item to.\n * @param {?} itemID ID of the item to add to component selection.\n * @param {?=} sel Used internally only by the selection (add_items method) to accumulate selection for multiple items.\n *\n * @return {?} Selection after the new item is added.\n */\n function (componentID, itemID, sel) {\n if (!sel) {\n sel = new Set(this.get(componentID));\n }\n if (sel === undefined) {\n sel = this.get_empty();\n }\n if (!itemID && itemID !== 0) {\n throw Error('Invalid value for item id!');\n }\n sel.add(itemID);\n return sel;\n };\n /**\n * Creates new selection that consist of the new items added to the current component selection.\n * The returned collection is new Set,\n * therefore if you want to update component selection you need to call in addition the set_selection() method\n * or instead use the select_items() one.\n * @param componentID ID of the component, which we add new items to.\n * @param itemIDs Array of IDs of the items to add to component selection.\n * @param clearSelection If true it will clear previous selection.\n *\n * @returns Selection after the new items are added.\n */\n /**\n * Creates new selection that consist of the new items added to the current component selection.\n * The returned collection is new Set,\n * therefore if you want to update component selection you need to call in addition the set_selection() method\n * or instead use the select_items() one.\n * @param {?} componentID ID of the component, which we add new items to.\n * @param {?} itemIDs Array of IDs of the items to add to component selection.\n * @param {?=} clearSelection If true it will clear previous selection.\n *\n * @return {?} Selection after the new items are added.\n */\n IgxSelectionAPIService.prototype.add_items = /**\n * Creates new selection that consist of the new items added to the current component selection.\n * The returned collection is new Set,\n * therefore if you want to update component selection you need to call in addition the set_selection() method\n * or instead use the select_items() one.\n * @param {?} componentID ID of the component, which we add new items to.\n * @param {?} itemIDs Array of IDs of the items to add to component selection.\n * @param {?=} clearSelection If true it will clear previous selection.\n *\n * @return {?} Selection after the new items are added.\n */\n function (componentID, itemIDs, clearSelection) {\n var _this = this;\n /** @type {?} */\n var selection;\n if (clearSelection) {\n selection = this.get_empty();\n }\n else if (itemIDs && itemIDs.length === 0) {\n selection = new Set(this.get(componentID));\n }\n itemIDs.forEach(function (item) { return selection = _this.add_item(componentID, item, selection); });\n return selection;\n };\n /**\n * Add item to the current component selection.\n * @param componentID ID of the component, which we add new item to.\n * @param itemID ID of the item to add to component selection.\n * @param sel Used internally only by the selection (select_items method) to accumulate selection for multiple items.\n */\n /**\n * Add item to the current component selection.\n * @param {?} componentID ID of the component, which we add new item to.\n * @param {?} itemID ID of the item to add to component selection.\n * @param {?=} sel Used internally only by the selection (select_items method) to accumulate selection for multiple items.\n * @return {?}\n */\n IgxSelectionAPIService.prototype.select_item = /**\n * Add item to the current component selection.\n * @param {?} componentID ID of the component, which we add new item to.\n * @param {?} itemID ID of the item to add to component selection.\n * @param {?=} sel Used internally only by the selection (select_items method) to accumulate selection for multiple items.\n * @return {?}\n */\n function (componentID, itemID, sel) {\n this.set(componentID, this.add_item(componentID, itemID, sel));\n };\n /**\n * Add items to the current component selection.\n * @param componentID ID of the component, which we add new items to.\n * @param itemIDs Array of IDs of the items to add to component selection.\n * @param clearSelection If true it will clear previous selection.\n */\n /**\n * Add items to the current component selection.\n * @param {?} componentID ID of the component, which we add new items to.\n * @param {?} itemID\n * @param {?=} clearSelection If true it will clear previous selection.\n * @return {?}\n */\n IgxSelectionAPIService.prototype.select_items = /**\n * Add items to the current component selection.\n * @param {?} componentID ID of the component, which we add new items to.\n * @param {?} itemID\n * @param {?=} clearSelection If true it will clear previous selection.\n * @return {?}\n */\n function (componentID, itemID, clearSelection) {\n this.set(componentID, this.add_items(componentID, itemID, clearSelection));\n };\n /**\n * Creates new selection that consist of the new items excluded from the current component selection.\n * The returned collection is new Set,\n * therefore if you want to update component selection you need to call in addition the set_selection() method\n * or instead use the deselect_item() one.\n * @param componentID ID of the component, which we remove items from.\n * @param itemID ID of the item to remove from component selection.\n * @param sel Used internally only by the selection (delete_items method) to accumulate deselected items.\n *\n * @returns Selection after the item is removed.\n */\n /**\n * Creates new selection that consist of the new items excluded from the current component selection.\n * The returned collection is new Set,\n * therefore if you want to update component selection you need to call in addition the set_selection() method\n * or instead use the deselect_item() one.\n * @param {?} componentID ID of the component, which we remove items from.\n * @param {?} itemID ID of the item to remove from component selection.\n * @param {?=} sel Used internally only by the selection (delete_items method) to accumulate deselected items.\n *\n * @return {?} Selection after the item is removed.\n */\n IgxSelectionAPIService.prototype.delete_item = /**\n * Creates new selection that consist of the new items excluded from the current component selection.\n * The returned collection is new Set,\n * therefore if you want to update component selection you need to call in addition the set_selection() method\n * or instead use the deselect_item() one.\n * @param {?} componentID ID of the component, which we remove items from.\n * @param {?} itemID ID of the item to remove from component selection.\n * @param {?=} sel Used internally only by the selection (delete_items method) to accumulate deselected items.\n *\n * @return {?} Selection after the item is removed.\n */\n function (componentID, itemID, sel) {\n if (!sel) {\n sel = new Set(this.get(componentID));\n }\n if (sel === undefined) {\n return;\n }\n sel.delete(itemID);\n return sel;\n };\n /**\n * Creates new selection that consist of the new items removed to the current component selection.\n * The returned collection is new Set,\n * therefore if you want to update component selection you need to call in addition the set_selection() method\n * or instead use the deselect_items() one.\n * @param componentID ID of the component, which we remove items from.\n * @param itemID ID of the items to remove from component selection.\n *\n * @returns Selection after the items are removed.\n */\n /**\n * Creates new selection that consist of the new items removed to the current component selection.\n * The returned collection is new Set,\n * therefore if you want to update component selection you need to call in addition the set_selection() method\n * or instead use the deselect_items() one.\n * @param {?} componentID ID of the component, which we remove items from.\n * @param {?} itemIDs\n * @return {?} Selection after the items are removed.\n */\n IgxSelectionAPIService.prototype.delete_items = /**\n * Creates new selection that consist of the new items removed to the current component selection.\n * The returned collection is new Set,\n * therefore if you want to update component selection you need to call in addition the set_selection() method\n * or instead use the deselect_items() one.\n * @param {?} componentID ID of the component, which we remove items from.\n * @param {?} itemIDs\n * @return {?} Selection after the items are removed.\n */\n function (componentID, itemIDs) {\n var _this = this;\n /** @type {?} */\n var selection;\n itemIDs.forEach(function (deselectedItem) { return selection = _this.delete_item(componentID, deselectedItem, selection); });\n return selection;\n };\n /**\n * Remove item from the current component selection.\n * @param componentID ID of the component, which we remove item from.\n * @param itemID ID of the item to remove from component selection.\n * @param sel Used internally only by the selection (deselect_items method) to accumulate selection for multiple items.\n */\n /**\n * Remove item from the current component selection.\n * @param {?} componentID ID of the component, which we remove item from.\n * @param {?} itemID ID of the item to remove from component selection.\n * @param {?=} sel Used internally only by the selection (deselect_items method) to accumulate selection for multiple items.\n * @return {?}\n */\n IgxSelectionAPIService.prototype.deselect_item = /**\n * Remove item from the current component selection.\n * @param {?} componentID ID of the component, which we remove item from.\n * @param {?} itemID ID of the item to remove from component selection.\n * @param {?=} sel Used internally only by the selection (deselect_items method) to accumulate selection for multiple items.\n * @return {?}\n */\n function (componentID, itemID, sel) {\n this.set(componentID, this.delete_item(componentID, itemID, sel));\n };\n /**\n * Remove items to the current component selection.\n * @param componentID ID of the component, which we add new items to.\n * @param itemIDs Array of IDs of the items to add to component selection.\n */\n /**\n * Remove items to the current component selection.\n * @param {?} componentID ID of the component, which we add new items to.\n * @param {?} itemID\n * @param {?=} clearSelection\n * @return {?}\n */\n IgxSelectionAPIService.prototype.deselect_items = /**\n * Remove items to the current component selection.\n * @param {?} componentID ID of the component, which we add new items to.\n * @param {?} itemID\n * @param {?=} clearSelection\n * @return {?}\n */\n function (componentID, itemID, clearSelection) {\n this.set(componentID, this.delete_items(componentID, itemID));\n };\n /**\n * Check if the item is selected in the component selection.\n * @param componentID ID of the component.\n * @param itemID ID of the item to search.\n *\n * @returns If item is selected.\n */\n /**\n * Check if the item is selected in the component selection.\n * @param {?} componentID ID of the component.\n * @param {?} itemID ID of the item to search.\n *\n * @return {?} If item is selected.\n */\n IgxSelectionAPIService.prototype.is_item_selected = /**\n * Check if the item is selected in the component selection.\n * @param {?} componentID ID of the component.\n * @param {?} itemID ID of the item to search.\n *\n * @return {?} If item is selected.\n */\n function (componentID, itemID) {\n /** @type {?} */\n var sel = this.get(componentID);\n if (!sel) {\n return false;\n }\n return sel.has(itemID);\n };\n /**\n * Get first element in the selection.\n * This is correct when we have only one item in the collection (for single selection purposes)\n * and the method returns that item.\n * @param componentID ID of the component.\n *\n * @returns First element in the set.\n */\n /**\n * Get first element in the selection.\n * This is correct when we have only one item in the collection (for single selection purposes)\n * and the method returns that item.\n * @param {?} componentID ID of the component.\n *\n * @return {?} First element in the set.\n */\n IgxSelectionAPIService.prototype.first_item = /**\n * Get first element in the selection.\n * This is correct when we have only one item in the collection (for single selection purposes)\n * and the method returns that item.\n * @param {?} componentID ID of the component.\n *\n * @return {?} First element in the set.\n */\n function (componentID) {\n /** @type {?} */\n var sel = this.get(componentID);\n if (sel && sel.size > 0) {\n return sel.values().next().value;\n }\n };\n /**\n * Returns whether all items are selected.\n * @param componentID ID of the component.\n * @param dataCount: number Number of items in the data.\n *\n * @returns If all items are selected.\n */\n /**\n * Returns whether all items are selected.\n * @param {?} componentID ID of the component.\n * @param {?} dataCount\n * @return {?} If all items are selected.\n */\n IgxSelectionAPIService.prototype.are_all_selected = /**\n * Returns whether all items are selected.\n * @param {?} componentID ID of the component.\n * @param {?} dataCount\n * @return {?} If all items are selected.\n */\n function (componentID, dataCount) {\n return dataCount > 0 && dataCount === this.size(componentID);\n };\n /**\n * Returns whether any of the items is selected.\n * @param componentID ID of the component.\n * @param data Entire data array.\n *\n * @returns If there is any item selected.\n */\n /**\n * Returns whether any of the items is selected.\n * @param {?} componentID ID of the component.\n * @return {?} If there is any item selected.\n */\n IgxSelectionAPIService.prototype.are_none_selected = /**\n * Returns whether any of the items is selected.\n * @param {?} componentID ID of the component.\n * @return {?} If there is any item selected.\n */\n function (componentID) {\n return this.size(componentID) === 0;\n };\n /**\n * Get all primary key values from a data array. If there isn't a primary key defined that the entire data is returned instead.\n * @param data Entire data array.\n * @param primaryKey Data primary key.\n *\n * @returns Array of identifiers, either primary key values or the entire data array.\n */\n /**\n * Get all primary key values from a data array. If there isn't a primary key defined that the entire data is returned instead.\n * @param {?} data Entire data array.\n * @param {?=} primaryKey Data primary key.\n *\n * @return {?} Array of identifiers, either primary key values or the entire data array.\n */\n IgxSelectionAPIService.prototype.get_all_ids = /**\n * Get all primary key values from a data array. If there isn't a primary key defined that the entire data is returned instead.\n * @param {?} data Entire data array.\n * @param {?=} primaryKey Data primary key.\n *\n * @return {?} Array of identifiers, either primary key values or the entire data array.\n */\n function (data, primaryKey) {\n // If primaryKey is 0, this should still map to the property\n return primaryKey !== undefined && primaryKey !== null ? data.map(function (x) { return x[primaryKey]; }) : data;\n };\n /**\n * Returns empty selection collection.\n * @returns empty set.\n */\n /**\n * Returns empty selection collection.\n * @return {?} empty set.\n */\n IgxSelectionAPIService.prototype.get_empty = /**\n * Returns empty selection collection.\n * @return {?} empty set.\n */\n function () {\n return new Set();\n };\n IgxSelectionAPIService.decorators = [\n { type: Injectable, args: [{\n providedIn: 'root',\n },] }\n ];\n /** @nocollapse */ IgxSelectionAPIService.ngInjectableDef = ɵɵdefineInjectable({ factory: function IgxSelectionAPIService_Factory() { return new IgxSelectionAPIService(); }, token: IgxSelectionAPIService, providedIn: \"root\" });\n return IgxSelectionAPIService;\n}());\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n/** @type {?} */\nvar NEXT_ID = 0;\n/**\n * The `` is a container intended for row items in\n * a `` container.\n */\nvar IgxDropDownGroupComponent = /** @class */ (function () {\n function IgxDropDownGroupComponent() {\n this._id = NEXT_ID++;\n /**\n * @hidden \\@internal\n */\n this.role = 'group';\n /**\n * @hidden \\@internal\n */\n this.groupClass = true;\n /**\n * Sets/gets if the item group is disabled\n *\n * ```typescript\n * const myDropDownGroup: IgxDropDownGroupComponent = this.dropdownGroup;\n * // get\n * ...\n * const groupState: boolean = myDropDownGroup.disabled;\n * ...\n * //set\n * ...\n * myDropDownGroup,disabled = false;\n * ...\n * ```\n *\n * ```html\n * \n * \n * {{ item.text }}\n * \n * \n * ```\n *\n * **NOTE:** All items inside of a disabled drop down group will be treated as disabled\n */\n this.disabled = false;\n }\n Object.defineProperty(IgxDropDownGroupComponent.prototype, \"labelId\", {\n /**\n * @hidden @internal\n */\n get: /**\n * @hidden \\@internal\n * @return {?}\n */\n function () {\n return \"igx-item-group-label-\" + this._id;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxDropDownGroupComponent.prototype, \"labelledBy\", {\n get: /**\n * @return {?}\n */\n function () {\n return this.labelId;\n },\n enumerable: true,\n configurable: true\n });\n IgxDropDownGroupComponent.decorators = [\n { type: Component, args: [{\n selector: 'igx-drop-down-item-group',\n template: \"\\n \\n \\n \"\n }] }\n ];\n IgxDropDownGroupComponent.propDecorators = {\n labelledBy: [{ type: HostBinding, args: [\"attr.aria-labelledby\",] }],\n role: [{ type: HostBinding, args: ['attr.role',] }],\n groupClass: [{ type: HostBinding, args: ['class.igx-drop-down__group',] }],\n disabled: [{ type: Input }, { type: HostBinding, args: [\"attr.aria-disabled\",] }, { type: HostBinding, args: ['class.igx-drop-down__group--disabled',] }],\n label: [{ type: Input }]\n };\n return IgxDropDownGroupComponent;\n}());\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n/** @type {?} */\nvar NEXT_ID$1 = 0;\n/** @type {?} */\nvar warningShown$1 = false;\n/**\n * An abstract class defining a drop-down item:\n * With properties / styles for selection, highlight, height\n * Bindable property for passing data (`value: any`)\n * Parent component (has to be used under a parent with type `IDropDownBase`)\n * Method for handling click on Host()\n * @abstract\n */\nvar IgxDropDownItemBase = /** @class */ (function () {\n function IgxDropDownItemBase(dropDown, elementRef, group, selection) {\n this.dropDown = dropDown;\n this.elementRef = elementRef;\n this.group = group;\n this.selection = selection;\n /**\n * @hidden\n */\n this._focused = false;\n this._selected = false;\n this._index = null;\n this._disabled = false;\n /**\n * Sets/gets the `id` of the item.\n * ```html\n * \n * ```\n * ```typescript\n * let itemId = this.item.id;\n * ```\n * \\@memberof IgxSelectItemComponent\n */\n this.id = \"igx-drop-down-item-\" + NEXT_ID$1++;\n /**\n * @hidden\n */\n this.selectedChange = new EventEmitter();\n /**\n * Gets/sets the `role` attribute of the item. Default is 'option'.\n *\n * ```html\n * \n * ```\n */\n this.role = 'option';\n }\n Object.defineProperty(IgxDropDownItemBase.prototype, \"hasIndex\", {\n get: /**\n * @protected\n * @return {?}\n */\n function () {\n return this._index !== null && this._index !== undefined;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxDropDownItemBase.prototype, \"itemID\", {\n /**\n * @hidden @internal\n */\n get: /**\n * @hidden \\@internal\n * @template THIS\n * @this {THIS}\n * @return {THIS}\n */\n function () {\n return (/** @type {?} */ (this));\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxDropDownItemBase.prototype, \"index\", {\n /**\n * The data index of the dropdown item.\n *\n * ```typescript\n * // get the data index of the selected dropdown item\n * let selectedItemIndex = this.dropdown.selectedItem.index\n * ```\n */\n get: /**\n * The data index of the dropdown item.\n *\n * ```typescript\n * // get the data index of the selected dropdown item\n * let selectedItemIndex = this.dropdown.selectedItem.index\n * ```\n * @return {?}\n */\n function () {\n if (this._index === null) {\n warningShown$1 = showMessage('IgxDropDownItemBase: Automatic index is deprecated.' +\n 'Bind in the template instead using `\n * ```\n */\n get: /**\n * Sets/Gets if the item is the currently selected one in the dropdown\n *\n * ```typescript\n * let mySelectedItem = this.dropdown.selectedItem;\n * let isMyItemSelected = mySelectedItem.selected; // true\n * ```\n *\n * Two-way data binding\n * ```html\n * \n * ```\n * @return {?}\n */\n function () {\n return this._selected;\n },\n set: /**\n * @param {?} value\n * @return {?}\n */\n function (value) {\n if (this.isHeader) {\n return;\n }\n this._selected = value;\n this.selectedChange.emit(this._selected);\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxDropDownItemBase.prototype, \"isSelected\", {\n /**\n * @hidden @internal\n */\n get: /**\n * @hidden \\@internal\n * @return {?}\n */\n function () {\n return this.selected;\n },\n /**\n * @hidden @internal\n */\n set: /**\n * @hidden \\@internal\n * @param {?} value\n * @return {?}\n */\n function (value) {\n this.selected = value;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxDropDownItemBase.prototype, \"focused\", {\n /**\n * Sets/gets if the given item is focused\n * ```typescript\n * let mySelectedItem = this.dropdown.selectedItem;\n * let isMyItemFocused = mySelectedItem.focused;\n * ```\n */\n get: /**\n * Sets/gets if the given item is focused\n * ```typescript\n * let mySelectedItem = this.dropdown.selectedItem;\n * let isMyItemFocused = mySelectedItem.focused;\n * ```\n * @return {?}\n */\n function () {\n return (!this.isHeader && !this.disabled) && this._focused;\n },\n /**\n * ```html\n * \n *
\n * {{item.field}}\n *
\n *
\n * ```\n */\n set: /**\n * ```html\n * \n *
\n * {{item.field}}\n *
\n *
\n * ```\n * @param {?} value\n * @return {?}\n */\n function (value) {\n this._focused = value;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxDropDownItemBase.prototype, \"isFocused\", {\n /**\n * @hidden @internal\n */\n get: /**\n * @hidden \\@internal\n * @return {?}\n */\n function () {\n return this.focused;\n },\n /**\n * @hidden @internal\n */\n set: /**\n * @hidden \\@internal\n * @param {?} value\n * @return {?}\n */\n function (value) {\n this.focused = value;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxDropDownItemBase.prototype, \"headerClassCosy\", {\n /**\n * @hidden @internal\n */\n get: /**\n * @hidden \\@internal\n * @return {?}\n */\n function () {\n return this.isHeader && this.dropDown.displayDensity === 'cosy';\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxDropDownItemBase.prototype, \"headerClassCompact\", {\n /**\n * @hidden @internal\n */\n get: /**\n * @hidden \\@internal\n * @return {?}\n */\n function () {\n return this.isHeader && this.dropDown.displayDensity === 'compact';\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxDropDownItemBase.prototype, \"disabled\", {\n /**\n * Sets/gets if the given item is disabled\n *\n * ```typescript\n * // get\n * let mySelectedItem = this.dropdown.selectedItem;\n * let myItemIsDisabled = mySelectedItem.disabled;\n * ```\n *\n * ```html\n * \n *
\n * {{item.field}}\n *
\n *
\n * ```\n * **NOTE:** Drop-down items inside of a disabled `IgxDropDownGroup` will always count as disabled\n */\n get: /**\n * Sets/gets if the given item is disabled\n *\n * ```typescript\n * // get\n * let mySelectedItem = this.dropdown.selectedItem;\n * let myItemIsDisabled = mySelectedItem.disabled;\n * ```\n *\n * ```html\n * \n *
\n * {{item.field}}\n *
\n *
\n * ```\n * **NOTE:** Drop-down items inside of a disabled `IgxDropDownGroup` will always count as disabled\n * @return {?}\n */\n function () {\n return this.group ? this.group.disabled || this._disabled : this._disabled;\n },\n set: /**\n * @param {?} value\n * @return {?}\n */\n function (value) {\n this._disabled = value;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxDropDownItemBase.prototype, \"itemIndex\", {\n /**\n * Gets item index\n * @hidden @internal\n */\n get: /**\n * Gets item index\n * @hidden \\@internal\n * @return {?}\n */\n function () {\n return this.dropDown.items.indexOf(this);\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxDropDownItemBase.prototype, \"elementHeight\", {\n /**\n * Gets item element height\n * @hidden @internal\n */\n get: /**\n * Gets item element height\n * @hidden \\@internal\n * @return {?}\n */\n function () {\n return this.elementRef.nativeElement.clientHeight;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxDropDownItemBase.prototype, \"element\", {\n /**\n * Get item html element\n * @hidden @internal\n */\n get: /**\n * Get item html element\n * @hidden \\@internal\n * @return {?}\n */\n function () {\n return this.elementRef;\n },\n enumerable: true,\n configurable: true\n });\n /**\n * @hidden @internal\n */\n /**\n * @hidden \\@internal\n * @param {?} event\n * @return {?}\n */\n IgxDropDownItemBase.prototype.clicked = /**\n * @hidden \\@internal\n * @param {?} event\n * @return {?}\n */\n function (event) {\n };\n /**\n * @return {?}\n */\n IgxDropDownItemBase.prototype.ngDoCheck = /**\n * @return {?}\n */\n function () {\n if (this._selected) {\n /** @type {?} */\n var dropDownSelectedItem = this.dropDown.selectedItem;\n if (!dropDownSelectedItem) {\n this.dropDown.selectItem(this);\n }\n else if (this.hasIndex\n ? this._index !== dropDownSelectedItem.index || this.value !== dropDownSelectedItem.value :\n this !== dropDownSelectedItem) {\n this.dropDown.selectItem(this);\n }\n }\n };\n /** @nocollapse */\n IgxDropDownItemBase.ctorParameters = function () { return [\n { type: undefined, decorators: [{ type: Inject, args: [IGX_DROPDOWN_BASE,] }] },\n { type: ElementRef },\n { type: IgxDropDownGroupComponent, decorators: [{ type: Optional }] },\n { type: IgxSelectionAPIService, decorators: [{ type: Optional }, { type: Inject, args: [IgxSelectionAPIService,] }] }\n ]; };\n IgxDropDownItemBase.propDecorators = {\n id: [{ type: HostBinding, args: ['attr.id',] }, { type: Input }],\n index: [{ type: Input }],\n value: [{ type: Input }],\n itemStyle: [{ type: HostBinding, args: ['class.igx-drop-down__item',] }],\n itemStyleCosy: [{ type: HostBinding, args: ['class.igx-drop-down__item--cosy',] }],\n itemStyleCompact: [{ type: HostBinding, args: ['class.igx-drop-down__item--compact',] }],\n selected: [{ type: Input }, { type: HostBinding, args: ['attr.aria-selected',] }, { type: HostBinding, args: ['class.igx-drop-down__item--selected',] }],\n selectedChange: [{ type: Output }],\n isSelected: [{ type: Input }],\n focused: [{ type: HostBinding, args: ['class.igx-drop-down__item--focused',] }],\n isHeader: [{ type: Input }, { type: HostBinding, args: ['class.igx-drop-down__header',] }],\n headerClassCosy: [{ type: HostBinding, args: ['class.igx-drop-down__header--cosy',] }],\n headerClassCompact: [{ type: HostBinding, args: ['class.igx-drop-down__header--compact',] }],\n disabled: [{ type: Input }, { type: HostBinding, args: ['attr.aria-disabled',] }, { type: HostBinding, args: ['class.igx-drop-down__item--disabled',] }],\n role: [{ type: Input }, { type: HostBinding, args: ['attr.role',] }],\n clicked: [{ type: HostListener, args: ['click', ['$event'],] }]\n };\n __decorate([\n DeprecateProperty(\"IgxDropDownItemBase `isSelected` property is deprecated.\\n\" +\n \"Use `selected` instead.\"),\n __metadata(\"design:type\", Boolean),\n __metadata(\"design:paramtypes\", [Boolean])\n ], IgxDropDownItemBase.prototype, \"isSelected\", null);\n __decorate([\n DeprecateProperty(\"IgxDropDownItemBase `isFocused` property is depracated.\\n\" +\n \"Use `focused` instead.\"),\n __metadata(\"design:type\", Boolean),\n __metadata(\"design:paramtypes\", [Boolean])\n ], IgxDropDownItemBase.prototype, \"isFocused\", null);\n return IgxDropDownItemBase;\n}());\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n/**\n * The `` is a container intended for row items in\n * a `` container.\n */\nvar IgxDropDownItemComponent = /** @class */ (function (_super) {\n __extends(IgxDropDownItemComponent, _super);\n function IgxDropDownItemComponent() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n Object.defineProperty(IgxDropDownItemComponent.prototype, \"focused\", {\n /**\n * @inheritdoc\n */\n get: /**\n * \\@inheritdoc\n * @return {?}\n */\n function () {\n /** @type {?} */\n var focusedState = this._focused;\n if (this.hasIndex) {\n /** @type {?} */\n var focusedItem = this.selection.first_item(this.dropDown.id + \"-active\");\n /** @type {?} */\n var focusedIndex = focusedItem ? focusedItem.index : -1;\n focusedState = this._index === focusedIndex;\n }\n return !this.isHeader && !this.disabled && focusedState;\n },\n /**\n * @inheritdoc\n */\n set: /**\n * \\@inheritdoc\n * @param {?} value\n * @return {?}\n */\n function (value) {\n this._focused = value;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxDropDownItemComponent.prototype, \"selected\", {\n /**\n * @inheritdoc\n */\n get: /**\n * \\@inheritdoc\n * @return {?}\n */\n function () {\n if (this.hasIndex) {\n /** @type {?} */\n var item = this.selection.first_item(\"\" + this.dropDown.id);\n return item ? item.index === this._index && item.value === this.value : false;\n }\n return this._selected;\n },\n /**\n * @inheritdoc\n */\n set: /**\n * \\@inheritdoc\n * @param {?} value\n * @return {?}\n */\n function (value) {\n if (this.isHeader) {\n return;\n }\n this._selected = value;\n this.selectedChange.emit(this._selected);\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxDropDownItemComponent.prototype, \"setTabIndex\", {\n /**\n * @hidden @internal\n */\n get: /**\n * @hidden \\@internal\n * @return {?}\n */\n function () {\n /** @type {?} */\n var shouldSetTabIndex = this.dropDown.allowItemsFocus && !(this.disabled || this.isHeader);\n if (shouldSetTabIndex) {\n return 0;\n }\n else {\n return null;\n }\n },\n enumerable: true,\n configurable: true\n });\n /**\n * @hidden @internal\n */\n /**\n * @hidden \\@internal\n * @param {?} event\n * @return {?}\n */\n IgxDropDownItemComponent.prototype.clicked = /**\n * @hidden \\@internal\n * @param {?} event\n * @return {?}\n */\n function (event) {\n if (this.disabled || this.isHeader) {\n /** @type {?} */\n var focusedItem = this.dropDown.items.find(function (item) { return item.focused; });\n if (this.dropDown.allowItemsFocus && focusedItem) {\n focusedItem.element.nativeElement.focus({ preventScroll: true });\n }\n return;\n }\n if (this.selection) {\n this.dropDown.selectItem(this, event);\n }\n };\n /**\n * @hidden @internal\n */\n /**\n * @hidden \\@internal\n * @param {?} event\n * @return {?}\n */\n IgxDropDownItemComponent.prototype.mousedownHandler = /**\n * @hidden \\@internal\n * @param {?} event\n * @return {?}\n */\n function (event) {\n event.preventDefault();\n };\n IgxDropDownItemComponent.decorators = [\n { type: Component, args: [{\n selector: 'igx-drop-down-item',\n template: \"\"\n }] }\n ];\n IgxDropDownItemComponent.propDecorators = {\n setTabIndex: [{ type: HostBinding, args: ['attr.tabindex',] }],\n clicked: [{ type: HostListener, args: ['click', ['$event'],] }],\n mousedownHandler: [{ type: HostListener, args: ['mousedown', ['$event'],] }]\n };\n return IgxDropDownItemComponent;\n}(IgxDropDownItemBase));\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n/** @enum {string} */\nvar DisplayDensity = {\n comfortable: 'comfortable',\n cosy: 'cosy',\n compact: 'compact',\n};\n/**\n * Defines the DisplayDensity DI token.\n * @type {?}\n */\nvar DisplayDensityToken = new InjectionToken('DisplayDensity');\n/**\n * Base class containing all logic required for implementing DisplayDensity.\n */\nvar DisplayDensityBase = /** @class */ (function () {\n function DisplayDensityBase(displayDensityOptions) {\n this.displayDensityOptions = displayDensityOptions;\n this.onDensityChanged = new EventEmitter();\n this.oldDisplayDensityOptions = { displayDensity: DisplayDensity.comfortable };\n Object.assign(this.oldDisplayDensityOptions, displayDensityOptions);\n }\n Object.defineProperty(DisplayDensityBase.prototype, \"displayDensity\", {\n /**\n * Returns the theme of the component.\n * The default theme is `comfortable`.\n * Available options are `comfortable`, `cosy`, `compact`.\n * ```typescript\n * let componentTheme = this.component.displayDensity;\n * ```\n */\n get: /**\n * Returns the theme of the component.\n * The default theme is `comfortable`.\n * Available options are `comfortable`, `cosy`, `compact`.\n * ```typescript\n * let componentTheme = this.component.displayDensity;\n * ```\n * @return {?}\n */\n function () {\n return this._displayDensity ||\n ((this.displayDensityOptions && this.displayDensityOptions.displayDensity) || DisplayDensity.comfortable);\n },\n /**\n * Sets the theme of the component.\n */\n set: /**\n * Sets the theme of the component.\n * @param {?} val\n * @return {?}\n */\n function (val) {\n /** @type {?} */\n var currentDisplayDensity = this._displayDensity;\n this._displayDensity = (/** @type {?} */ (val));\n if (currentDisplayDensity !== this._displayDensity) {\n /** @type {?} */\n var densityChangedArgs = {\n oldDensity: currentDisplayDensity,\n newDensity: this._displayDensity\n };\n this.onDensityChanged.emit(densityChangedArgs);\n }\n },\n enumerable: true,\n configurable: true\n });\n /**\n * @hidden\n */\n /**\n * @hidden\n * @return {?}\n */\n DisplayDensityBase.prototype.ngOnInit = /**\n * @hidden\n * @return {?}\n */\n function () {\n this.initialDensity = this._displayDensity;\n };\n /**\n * @return {?}\n */\n DisplayDensityBase.prototype.ngDoCheck = /**\n * @return {?}\n */\n function () {\n if (!this._displayDensity && this.displayDensityOptions &&\n this.oldDisplayDensityOptions.displayDensity !== this.displayDensityOptions.displayDensity) {\n /** @type {?} */\n var densityChangedArgs = {\n oldDensity: this.oldDisplayDensityOptions.displayDensity,\n newDensity: this.displayDensityOptions.displayDensity\n };\n this.onDensityChanged.emit(densityChangedArgs);\n this.oldDisplayDensityOptions = Object.assign(this.oldDisplayDensityOptions, this.displayDensityOptions);\n }\n };\n /**\n * Given a style class of a component/element returns the modified version of it based\n * on the current display density.\n */\n /**\n * Given a style class of a component/element returns the modified version of it based\n * on the current display density.\n * @protected\n * @param {?} baseStyleClass\n * @return {?}\n */\n DisplayDensityBase.prototype.getComponentDensityClass = /**\n * Given a style class of a component/element returns the modified version of it based\n * on the current display density.\n * @protected\n * @param {?} baseStyleClass\n * @return {?}\n */\n function (baseStyleClass) {\n switch (this.displayDensity) {\n case DisplayDensity.cosy:\n return baseStyleClass + \"--\" + DisplayDensity.cosy;\n case DisplayDensity.compact:\n return baseStyleClass + \"--\" + DisplayDensity.compact;\n default:\n return baseStyleClass;\n }\n };\n DisplayDensityBase.propDecorators = {\n displayDensity: [{ type: Input }],\n onDensityChanged: [{ type: Output }]\n };\n return DisplayDensityBase;\n}());\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n/** @type {?} */\nvar NEXT_ID$2 = 0;\n/**\n * An abstract class, defining a drop-down component, with:\n * Properties for display styles and classes\n * A collection items of type `IgxDropDownItemBase`\n * Properties and methods for navigating (highlighting/focusing) items from the collection\n * Properties and methods for selecting items from the collection\n * @abstract\n */\nvar IgxDropDownBase = /** @class */ (function (_super) {\n __extends(IgxDropDownBase, _super);\n function IgxDropDownBase(elementRef, cdr, _displayDensityOptions) {\n var _this = _super.call(this, _displayDensityOptions) || this;\n _this.elementRef = elementRef;\n _this.cdr = cdr;\n _this._displayDensityOptions = _displayDensityOptions;\n _this._focusedItem = null;\n _this._id = \"igx-drop-down-\" + NEXT_ID$2++;\n /**\n * Emitted when item selection is changing, before the selection completes\n *\n * ```html\n * \n * ```\n */\n _this.onSelection = new EventEmitter();\n /**\n * Gets/Sets the drop down's container max height.\n *\n * ```typescript\n * // get\n * let maxHeight = this.dropdown.maxHeight;\n * ```\n * ```html\n * \n * \n * ```\n */\n _this.maxHeight = null;\n /**\n * @hidden \\@internal\n */\n _this.cssClass = true;\n return _this;\n }\n Object.defineProperty(IgxDropDownBase.prototype, \"scrollContainer\", {\n /**\n * Get dropdown's html element of it scroll container\n */\n get: /**\n * Get dropdown's html element of it scroll container\n * @protected\n * @return {?}\n */\n function () {\n return this.element;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxDropDownBase.prototype, \"items\", {\n /**\n * Get all non-header items\n *\n * ```typescript\n * let myDropDownItems = this.dropdown.items;\n * ```\n */\n get: /**\n * Get all non-header items\n *\n * ```typescript\n * let myDropDownItems = this.dropdown.items;\n * ```\n * @return {?}\n */\n function () {\n var e_1, _a;\n /** @type {?} */\n var items = [];\n if (this.children !== undefined) {\n try {\n for (var _b = __values(this.children.toArray()), _c = _b.next(); !_c.done; _c = _b.next()) {\n var child = _c.value;\n if (!child.isHeader) {\n items.push(child);\n }\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n }\n finally { if (e_1) throw e_1.error; }\n }\n }\n return items;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxDropDownBase.prototype, \"headers\", {\n /**\n * Get all header items\n *\n * ```typescript\n * let myDropDownHeaderItems = this.dropdown.headers;\n * ```\n */\n get: /**\n * Get all header items\n *\n * ```typescript\n * let myDropDownHeaderItems = this.dropdown.headers;\n * ```\n * @return {?}\n */\n function () {\n var e_2, _a;\n /** @type {?} */\n var headers = [];\n if (this.children !== undefined) {\n try {\n for (var _b = __values(this.children.toArray()), _c = _b.next(); !_c.done; _c = _b.next()) {\n var child = _c.value;\n if (child.isHeader) {\n headers.push(child);\n }\n }\n }\n catch (e_2_1) { e_2 = { error: e_2_1 }; }\n finally {\n try {\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n }\n finally { if (e_2) throw e_2.error; }\n }\n }\n return headers;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxDropDownBase.prototype, \"element\", {\n /**\n * Get dropdown html element\n *\n * ```typescript\n * let myDropDownElement = this.dropdown.element;\n * ```\n */\n get: /**\n * Get dropdown html element\n *\n * ```typescript\n * let myDropDownElement = this.dropdown.element;\n * ```\n * @return {?}\n */\n function () {\n return this.elementRef.nativeElement;\n },\n enumerable: true,\n configurable: true\n });\n /** Keydown Handler */\n /**\n * Keydown Handler\n * @param {?} key\n * @param {?=} event\n * @return {?}\n */\n IgxDropDownBase.prototype.onItemActionKey = /**\n * Keydown Handler\n * @param {?} key\n * @param {?=} event\n * @return {?}\n */\n function (key, event) {\n switch (key) {\n case DropDownActionKey.ENTER:\n case DropDownActionKey.SPACE:\n this.selectItem(this.focusedItem, event);\n break;\n case DropDownActionKey.ESCAPE:\n }\n };\n /**\n * Emits onSelection with the target item & event\n * @hidden @internal\n * @param newSelection the item selected\n * @param event the event that triggered the call\n */\n /**\n * Emits onSelection with the target item & event\n * @hidden \\@internal\n * @param {?=} newSelection the item selected\n * @param {?=} event the event that triggered the call\n * @return {?}\n */\n IgxDropDownBase.prototype.selectItem = /**\n * Emits onSelection with the target item & event\n * @hidden \\@internal\n * @param {?=} newSelection the item selected\n * @param {?=} event the event that triggered the call\n * @return {?}\n */\n function (newSelection, event) {\n this.onSelection.emit({\n newSelection: newSelection,\n oldSelection: null,\n cancel: false\n });\n };\n Object.defineProperty(IgxDropDownBase.prototype, \"focusedItem\", {\n /**\n * @hidden @internal\n */\n get: /**\n * @hidden \\@internal\n * @return {?}\n */\n function () {\n return this._focusedItem;\n },\n /**\n * @hidden @internal\n */\n set: /**\n * @hidden \\@internal\n * @param {?} item\n * @return {?}\n */\n function (item) {\n this._focusedItem = item;\n },\n enumerable: true,\n configurable: true\n });\n /**\n * @protected\n * @param {?} direction\n * @param {?=} currentIndex\n * @return {?}\n */\n IgxDropDownBase.prototype.navigate = /**\n * @protected\n * @param {?} direction\n * @param {?=} currentIndex\n * @return {?}\n */\n function (direction, currentIndex) {\n /** @type {?} */\n var index = -1;\n if (this._focusedItem) {\n index = currentIndex ? currentIndex : this.focusedItem.itemIndex;\n }\n /** @type {?} */\n var newIndex = this.getNearestSiblingFocusableItemIndex(index, direction);\n this.navigateItem(newIndex);\n };\n /**\n * @protected\n * @param {?} startIndex\n * @param {?} direction\n * @return {?}\n */\n IgxDropDownBase.prototype.getNearestSiblingFocusableItemIndex = /**\n * @protected\n * @param {?} startIndex\n * @param {?} direction\n * @return {?}\n */\n function (startIndex, direction) {\n /** @type {?} */\n var index = startIndex;\n /** @type {?} */\n var items = this.items;\n while (items[index + direction] && items[index + direction].disabled) {\n index += direction;\n }\n index += direction;\n if (index >= 0 && index < items.length) {\n return index;\n }\n else {\n return -1;\n }\n };\n /**\n * Navigates to the item on the specified index\n * @param newIndex number - the index of the item in the `items` collection\n */\n /**\n * Navigates to the item on the specified index\n * @param {?} newIndex number - the index of the item in the `items` collection\n * @return {?}\n */\n IgxDropDownBase.prototype.navigateItem = /**\n * Navigates to the item on the specified index\n * @param {?} newIndex number - the index of the item in the `items` collection\n * @return {?}\n */\n function (newIndex) {\n if (newIndex !== -1) {\n /** @type {?} */\n var oldItem = this._focusedItem;\n /** @type {?} */\n var newItem = this.items[newIndex];\n if (oldItem) {\n oldItem.focused = false;\n }\n this.focusedItem = newItem;\n this.scrollToHiddenItem(newItem);\n this.focusedItem.focused = true;\n }\n };\n /**\n * @hidden @internal\n */\n /**\n * @hidden \\@internal\n * @return {?}\n */\n IgxDropDownBase.prototype.navigateFirst = /**\n * @hidden \\@internal\n * @return {?}\n */\n function () {\n this.navigate(Navigate.Down, -1);\n };\n /**\n * @hidden @internal\n */\n /**\n * @hidden \\@internal\n * @return {?}\n */\n IgxDropDownBase.prototype.navigateLast = /**\n * @hidden \\@internal\n * @return {?}\n */\n function () {\n this.navigate(Navigate.Up, this.items.length);\n };\n /**\n * @hidden @internal\n */\n /**\n * @hidden \\@internal\n * @return {?}\n */\n IgxDropDownBase.prototype.navigateNext = /**\n * @hidden \\@internal\n * @return {?}\n */\n function () {\n this.navigate(Navigate.Down);\n };\n /**\n * @hidden @internal\n */\n /**\n * @hidden \\@internal\n * @return {?}\n */\n IgxDropDownBase.prototype.navigatePrev = /**\n * @hidden \\@internal\n * @return {?}\n */\n function () {\n this.navigate(Navigate.Up);\n };\n /**\n * @protected\n * @param {?} newItem\n * @return {?}\n */\n IgxDropDownBase.prototype.scrollToHiddenItem = /**\n * @protected\n * @param {?} newItem\n * @return {?}\n */\n function (newItem) {\n /** @type {?} */\n var elementRect = newItem.element.nativeElement.getBoundingClientRect();\n /** @type {?} */\n var parentRect = this.scrollContainer.getBoundingClientRect();\n if (parentRect.top > elementRect.top) {\n this.scrollContainer.scrollTop -= (parentRect.top - elementRect.top);\n }\n if (parentRect.bottom < elementRect.bottom) {\n this.scrollContainer.scrollTop += (elementRect.bottom - parentRect.bottom);\n }\n };\n /** @nocollapse */\n IgxDropDownBase.ctorParameters = function () { return [\n { type: ElementRef },\n { type: ChangeDetectorRef },\n { type: undefined, decorators: [{ type: Optional }, { type: Inject, args: [DisplayDensityToken,] }] }\n ]; };\n IgxDropDownBase.propDecorators = {\n onSelection: [{ type: Output }],\n width: [{ type: Input }],\n height: [{ type: Input }],\n id: [{ type: Input }],\n maxHeight: [{ type: Input }, { type: HostBinding, args: ['style.maxHeight',] }],\n cssClass: [{ type: HostBinding, args: ['class.igx-drop-down',] }]\n };\n return IgxDropDownBase;\n}(DisplayDensityBase));\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\nvar DisplayContainerComponent = /** @class */ (function () {\n function DisplayContainerComponent(cdr, _viewContainer) {\n this.cdr = cdr;\n this._viewContainer = _viewContainer;\n this.cssClass = 'igx-display-container';\n this.notVirtual = true;\n }\n DisplayContainerComponent.decorators = [\n { type: Component, args: [{\n selector: 'igx-display-container',\n template: \"\\n \\n \\n \"\n }] }\n ];\n /** @nocollapse */\n DisplayContainerComponent.ctorParameters = function () { return [\n { type: ChangeDetectorRef },\n { type: ViewContainerRef }\n ]; };\n DisplayContainerComponent.propDecorators = {\n _vcr: [{ type: ViewChild, args: ['display_container', { read: ViewContainerRef, static: true },] }],\n cssClass: [{ type: HostBinding, args: ['class',] }],\n notVirtual: [{ type: HostBinding, args: ['class.igx-display-container--inactive',] }]\n };\n return DisplayContainerComponent;\n}());\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\nvar VirtualHelperBaseDirective = /** @class */ (function () {\n function VirtualHelperBaseDirective(elementRef, cdr) {\n this.elementRef = elementRef;\n this.cdr = cdr;\n this.scrollAmount = 0;\n this._size = 0;\n }\n /**\n * @param {?} event\n * @return {?}\n */\n VirtualHelperBaseDirective.prototype.onScroll = /**\n * @param {?} event\n * @return {?}\n */\n function (event) {\n this.scrollAmount = event.target.scrollTop || event.target.scrollLeft;\n };\n Object.defineProperty(VirtualHelperBaseDirective.prototype, \"nativeElement\", {\n get: /**\n * @return {?}\n */\n function () {\n return this.elementRef.nativeElement;\n },\n enumerable: true,\n configurable: true\n });\n /**\n * @return {?}\n */\n VirtualHelperBaseDirective.prototype.ngOnDestroy = /**\n * @return {?}\n */\n function () {\n this.destroyed = true;\n };\n Object.defineProperty(VirtualHelperBaseDirective.prototype, \"size\", {\n get: /**\n * @return {?}\n */\n function () {\n return this._size;\n },\n set: /**\n * @param {?} value\n * @return {?}\n */\n function (value) {\n if (this.destroyed) {\n return;\n }\n this._size = value;\n this.cdr.detectChanges();\n },\n enumerable: true,\n configurable: true\n });\n VirtualHelperBaseDirective.decorators = [\n { type: Directive, args: [{\n selector: '[igxVirtualHelperBase]'\n },] }\n ];\n /** @nocollapse */\n VirtualHelperBaseDirective.ctorParameters = function () { return [\n { type: ElementRef },\n { type: ChangeDetectorRef }\n ]; };\n VirtualHelperBaseDirective.propDecorators = {\n onScroll: [{ type: HostListener, args: ['scroll', ['$event'],] }]\n };\n return VirtualHelperBaseDirective;\n}());\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n/**\n * @hidden\n */\nvar HVirtualHelperComponent = /** @class */ (function (_super) {\n __extends(HVirtualHelperComponent, _super);\n function HVirtualHelperComponent(elementRef, cdr) {\n var _this = _super.call(this, elementRef, cdr) || this;\n _this.elementRef = elementRef;\n _this.cdr = cdr;\n _this.cssClasses = 'igx-vhelper--horizontal';\n return _this;\n }\n HVirtualHelperComponent.decorators = [\n { type: Component, args: [{\n selector: 'igx-horizontal-virtual-helper',\n template: '
'\n }] }\n ];\n /** @nocollapse */\n HVirtualHelperComponent.ctorParameters = function () { return [\n { type: ElementRef },\n { type: ChangeDetectorRef }\n ]; };\n HVirtualHelperComponent.propDecorators = {\n _vcr: [{ type: ViewChild, args: ['horizontal_container', { read: ViewContainerRef, static: true },] }],\n width: [{ type: Input }],\n cssClasses: [{ type: HostBinding, args: ['class',] }]\n };\n return HVirtualHelperComponent;\n}(VirtualHelperBaseDirective));\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\nvar VirtualHelperComponent = /** @class */ (function (_super) {\n __extends(VirtualHelperComponent, _super);\n function VirtualHelperComponent(elementRef, cdr) {\n var _this = _super.call(this, elementRef, cdr) || this;\n _this.elementRef = elementRef;\n _this.cdr = cdr;\n _this.cssClasses = 'igx-vhelper--vertical';\n return _this;\n }\n VirtualHelperComponent.decorators = [\n { type: Component, args: [{\n selector: 'igx-virtual-helper',\n template: '
'\n }] }\n ];\n /** @nocollapse */\n VirtualHelperComponent.ctorParameters = function () { return [\n { type: ElementRef },\n { type: ChangeDetectorRef }\n ]; };\n VirtualHelperComponent.propDecorators = {\n scrollTop: [{ type: HostBinding, args: ['scrollTop',] }],\n _vcr: [{ type: ViewChild, args: ['container', { read: ViewContainerRef, static: true },] }],\n itemsLength: [{ type: Input }],\n cssClasses: [{ type: HostBinding, args: ['class',] }]\n };\n return VirtualHelperComponent;\n}(VirtualHelperBaseDirective));\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n/**\n * @hidden\n */\nvar IgxScrollInertiaDirective = /** @class */ (function () {\n function IgxScrollInertiaDirective(element, _zone) {\n this.element = element;\n this._zone = _zone;\n this.wheelStep = 50;\n this.inertiaStep = 1.5;\n this.swipeToleranceX = 20;\n this.inertiaDeltaY = 3;\n this.inertiaDeltaX = 2;\n this.inertiaDuration = 0.5;\n this._savedSpeedsX = [];\n this.setPointerCaptureFName = typeof Element.prototype['msSetPointerCapture'] === 'function' ?\n 'msSetPointerCapture' :\n 'setPointerCapture';\n this.releasePointerCaptureFName = typeof Element.prototype['msReleasePointerCapture'] === 'function' ?\n 'msReleasePointerCapture' :\n 'releasePointerCapture';\n }\n /**\n * @return {?}\n */\n IgxScrollInertiaDirective.prototype.ngOnInit = /**\n * @return {?}\n */\n function () {\n var _this = this;\n this._zone.runOutsideAngular(function () {\n /** @type {?} */\n var targetElem = _this.element.nativeElement.parentElement || _this.element.nativeElement.parentNode;\n targetElem.addEventListener('wheel', function (evt) { _this.onWheel(evt); });\n targetElem.addEventListener('touchstart', function (evt) { _this.onTouchStart(evt); });\n targetElem.addEventListener('touchmove', function (evt) { _this.onTouchMove(evt); });\n targetElem.addEventListener('touchend', function (evt) { _this.onTouchEnd(evt); });\n targetElem.addEventListener('pointerdown', function (evt) { _this.onPointerDown(evt); });\n targetElem.addEventListener('pointerup', function (evt) { _this.onPointerUp(evt); });\n targetElem.addEventListener('MSGestureStart', function (evt) { _this.onMSGestureStart(evt); });\n targetElem.addEventListener('MSGestureChange', function (evt) { _this.onMSGestureChange(evt); });\n });\n };\n /**\n * @hidden\n * Function that is called when scrolling with the mouse wheel or using touchpad\n */\n /**\n * @hidden\n * Function that is called when scrolling with the mouse wheel or using touchpad\n * @protected\n * @param {?} evt\n * @return {?}\n */\n IgxScrollInertiaDirective.prototype.onWheel = /**\n * @hidden\n * Function that is called when scrolling with the mouse wheel or using touchpad\n * @protected\n * @param {?} evt\n * @return {?}\n */\n function (evt) {\n // if no scrollbar return\n if (!this.IgxScrollInertiaScrollContainer) {\n return;\n }\n /** @type {?} */\n var scrollDeltaX;\n /** @type {?} */\n var scrollDeltaY;\n /** @type {?} */\n var scrollStep = this.wheelStep;\n /** @type {?} */\n var minWheelStep = 1 / this.wheelStep;\n this._startX = this.IgxScrollInertiaScrollContainer.scrollLeft;\n this._startY = this.IgxScrollInertiaScrollContainer.scrollTop;\n if (evt.wheelDeltaX) {\n /* Option supported on Chrome, Safari, Opera.\n /* 120 is default for mousewheel on these browsers. Other values are for trackpads */\n scrollDeltaX = -evt.wheelDeltaX / 120;\n if (-minWheelStep < scrollDeltaX && scrollDeltaX < minWheelStep) {\n scrollDeltaX = Math.sign(scrollDeltaX) * minWheelStep;\n }\n }\n else if (evt.deltaX) {\n /* For other browsers that don't provide wheelDelta, use the deltaY to determine direction and pass default values. */\n scrollDeltaX = this.calcAxisCoords(evt.deltaX, -1, 1);\n }\n /** Get delta for the Y axis*/\n if (evt.wheelDeltaY) {\n /* Option supported on Chrome, Safari, Opera.\n /* 120 is default for mousewheel on these browsers. Other values are for trackpads */\n scrollDeltaY = -evt.wheelDeltaY / 120;\n if (-minWheelStep < scrollDeltaY && scrollDeltaY < minWheelStep) {\n scrollDeltaY = Math.sign(scrollDeltaY) * minWheelStep;\n }\n }\n else if (evt.deltaY) {\n /* For other browsers that don't provide wheelDelta, use the deltaY to determine direction and pass default values. */\n scrollDeltaY = this.calcAxisCoords(evt.deltaY, -1, 1);\n }\n if (scrollDeltaX && this.IgxScrollInertiaDirection === 'horizontal') {\n this._scrollToX(this._startX + scrollDeltaX * scrollStep);\n /** @type {?} */\n var curScrollLeft = this.IgxScrollInertiaScrollContainer.scrollLeft;\n /** @type {?} */\n var maxScrollLeft = parseInt(this.IgxScrollInertiaScrollContainer.children[0].style.width, 10);\n if (0 < curScrollLeft && curScrollLeft < maxScrollLeft) {\n // Prevent navigating through pages when scrolling on Mac\n evt.preventDefault();\n }\n }\n else if (scrollDeltaY && this.IgxScrollInertiaDirection === 'vertical') {\n this._scrollToY(this._startY + scrollDeltaY * scrollStep);\n this.preventParentScroll(evt, true);\n }\n };\n /**\n * @hidden\n * When there is still room to scroll up/down prevent the parent elements from scrolling too.\n */\n /**\n * @hidden\n * When there is still room to scroll up/down prevent the parent elements from scrolling too.\n * @protected\n * @param {?} evt\n * @param {?} preventDefault\n * @return {?}\n */\n IgxScrollInertiaDirective.prototype.preventParentScroll = /**\n * @hidden\n * When there is still room to scroll up/down prevent the parent elements from scrolling too.\n * @protected\n * @param {?} evt\n * @param {?} preventDefault\n * @return {?}\n */\n function (evt, preventDefault) {\n /** @type {?} */\n var curScrollTop = this.IgxScrollInertiaScrollContainer.scrollTop;\n /** @type {?} */\n var maxScrollTop = this.IgxScrollInertiaScrollContainer.children[0].scrollHeight -\n this.IgxScrollInertiaScrollContainer.offsetHeight;\n if (0 < curScrollTop && curScrollTop < maxScrollTop) {\n if (preventDefault) {\n evt.preventDefault();\n }\n if (evt.stopPropagation) {\n evt.stopPropagation();\n }\n }\n };\n /**\n * @hidden\n * Function that is called the first moment we start interacting with the content on a touch device\n */\n /**\n * @hidden\n * Function that is called the first moment we start interacting with the content on a touch device\n * @protected\n * @param {?} event\n * @return {?}\n */\n IgxScrollInertiaDirective.prototype.onTouchStart = /**\n * @hidden\n * Function that is called the first moment we start interacting with the content on a touch device\n * @protected\n * @param {?} event\n * @return {?}\n */\n function (event) {\n if (typeof MSGesture === 'function' || !this.IgxScrollInertiaScrollContainer) {\n return false;\n }\n // stops any current ongoing inertia\n cancelAnimationFrame(this._touchInertiaAnimID);\n /** @type {?} */\n var touch = event.touches[0];\n this._startX = this.IgxScrollInertiaScrollContainer.scrollLeft;\n this._startY = this.IgxScrollInertiaScrollContainer.scrollTop;\n this._touchStartX = touch.pageX;\n this._touchStartY = touch.pageY;\n this._lastTouchEnd = new Date().getTime();\n this._lastTouchX = touch.pageX;\n this._lastTouchY = touch.pageY;\n this._savedSpeedsX = [];\n this._savedSpeedsY = [];\n // Vars regarding swipe offset\n this._totalMovedX = 0;\n this._offsetRecorded = false;\n this._offsetDirection = 0;\n this._touchPrevented = false;\n if (this.IgxScrollInertiaDirection === 'vertical') {\n this.preventParentScroll(event, false);\n }\n };\n /**\n * @hidden\n * Function that is called when we need to scroll the content based on touch interactions\n */\n /**\n * @hidden\n * Function that is called when we need to scroll the content based on touch interactions\n * @protected\n * @param {?} event\n * @return {?}\n */\n IgxScrollInertiaDirective.prototype.onTouchMove = /**\n * @hidden\n * Function that is called when we need to scroll the content based on touch interactions\n * @protected\n * @param {?} event\n * @return {?}\n */\n function (event) {\n if (typeof MSGesture === 'function') {\n this._touchPrevented = false;\n return false;\n }\n if (!this.IgxScrollInertiaScrollContainer) {\n return;\n }\n /** @type {?} */\n var touch = event.touches[0];\n /** @type {?} */\n var destX = this._startX + (this._touchStartX - touch.pageX) * Math.sign(this.inertiaStep);\n /** @type {?} */\n var destY = this._startY + (this._touchStartY - touch.pageY) * Math.sign(this.inertiaStep);\n /* Handle complex touchmoves when swipe stops but the toch doesn't end and then a swipe is initiated again */\n /* **********************************************************/\n /** @type {?} */\n var timeFromLastTouch = (new Date().getTime()) - this._lastTouchEnd;\n if (timeFromLastTouch !== 0 && timeFromLastTouch < 100) {\n /** @type {?} */\n var speedX = (this._lastTouchX - touch.pageX) / timeFromLastTouch;\n /** @type {?} */\n var speedY = (this._lastTouchY - touch.pageY) / timeFromLastTouch;\n // Save the last 5 speeds between two touchmoves on X axis\n if (this._savedSpeedsX.length < 5) {\n this._savedSpeedsX.push(speedX);\n }\n else {\n this._savedSpeedsX.shift();\n this._savedSpeedsX.push(speedX);\n }\n // Save the last 5 speeds between two touchmoves on Y axis\n if (this._savedSpeedsY.length < 5) {\n this._savedSpeedsY.push(speedY);\n }\n else {\n this._savedSpeedsY.shift();\n this._savedSpeedsY.push(speedY);\n }\n }\n this._lastTouchEnd = new Date().getTime();\n this._lastMovedX = this._lastTouchX - touch.pageX;\n this._lastMovedY = this._lastTouchY - touch.pageY;\n this._lastTouchX = touch.pageX;\n this._lastTouchY = touch.pageY;\n this._totalMovedX += this._lastMovedX;\n /** @type {?} */\n var scrolledXY;\n /*\tDo not scroll using touch untill out of the swipeToleranceX bounds */\n if (Math.abs(this._totalMovedX) < this.swipeToleranceX && !this._offsetRecorded) {\n scrolledXY = this._scrollTo(this._startX, destY);\n }\n else {\n /*\tRecord the direction the first time we are out of the swipeToleranceX bounds.\n *\tThat way we know which direction we apply the offset so it doesn't hickup when moving out of the swipeToleranceX bounds */\n if (!this._offsetRecorded) {\n this._offsetDirection = Math.sign(destX - this._startX);\n this._offsetRecorded = true;\n }\n /*\tScroll with offset ammout of swipeToleranceX in the direction we have exited the bounds and\n don't change it after that ever until touchend and again touchstart */\n scrolledXY = this._scrollTo(destX - this._offsetDirection * this.swipeToleranceX, destY);\n }\n if (scrolledXY.x === 0 && scrolledXY.y === 0) {\n this._touchPrevented = true;\n }\n // On Safari preventing the touchmove would prevent default page scroll behaviour even if there is the element doesn't have overflow\n if (this.IgxScrollInertiaDirection === 'vertical') {\n this.preventParentScroll(event, true);\n }\n };\n /**\n * @protected\n * @param {?} event\n * @return {?}\n */\n IgxScrollInertiaDirective.prototype.onTouchEnd = /**\n * @protected\n * @param {?} event\n * @return {?}\n */\n function (event) {\n if (typeof MSGesture === 'function') {\n return;\n }\n /** @type {?} */\n var speedX = 0;\n /** @type {?} */\n var speedY = 0;\n // savedSpeedsX and savedSpeedsY have same length\n for (var i = 0; i < this._savedSpeedsX.length; i++) {\n speedX += this._savedSpeedsX[i];\n speedY += this._savedSpeedsY[i];\n }\n speedX = this._savedSpeedsX.length ? speedX / this._savedSpeedsX.length : 0;\n speedY = this._savedSpeedsX.length ? speedY / this._savedSpeedsY.length : 0;\n // Use the lastMovedX and lastMovedY to determine if the swipe stops without lifting the finger so we don't start inertia\n if ((Math.abs(speedX) > 0.1 || Math.abs(speedY) > 0.1) &&\n (Math.abs(this._lastMovedX) > 2 || Math.abs(this._lastMovedY) > 2)) {\n this._inertiaInit(speedX, speedY);\n }\n if (this.IgxScrollInertiaDirection === 'vertical') {\n this.preventParentScroll(event, false);\n }\n };\n /**\n * @hidden\n * Function that is called when we need to detect touch starting on a touch device on IE/Edge\n */\n /**\n * @hidden\n * Function that is called when we need to detect touch starting on a touch device on IE/Edge\n * @protected\n * @param {?} event\n * @return {?}\n */\n IgxScrollInertiaDirective.prototype.onPointerDown = /**\n * @hidden\n * Function that is called when we need to detect touch starting on a touch device on IE/Edge\n * @protected\n * @param {?} event\n * @return {?}\n */\n function (event) {\n if (!event || (event.pointerType !== 2 && event.pointerType !== 'touch') ||\n typeof MSGesture !== 'function') {\n return true;\n }\n if (!this.IgxScrollInertiaScrollContainer) {\n return;\n }\n // setPointerCaptureFName is the name of the function that is supported\n event.target[this.setPointerCaptureFName](this._pointer = event.pointerId);\n // create gestureObject only one time to prevent overlapping during intertia\n if (!this._gestureObject) {\n this._gestureObject = new MSGesture();\n this._gestureObject.target = this.element.nativeElement.parentElement || this.element.nativeElement.parentNode;\n }\n this._gestureObject.addPointer(this._pointer);\n };\n /**\n * @hidden\n * Function that is called when we need to detect touch ending on a touch device on IE/Edge\n */\n /**\n * @hidden\n * Function that is called when we need to detect touch ending on a touch device on IE/Edge\n * @protected\n * @param {?} event\n * @return {?}\n */\n IgxScrollInertiaDirective.prototype.onPointerUp = /**\n * @hidden\n * Function that is called when we need to detect touch ending on a touch device on IE/Edge\n * @protected\n * @param {?} event\n * @return {?}\n */\n function (event) {\n if (!this._pointer) {\n return true;\n }\n if (!this.IgxScrollInertiaScrollContainer) {\n return;\n }\n /* releasePointerCaptureFName is the name of the function that is supported */\n event.target[this.releasePointerCaptureFName](this._pointer);\n delete this._pointer;\n };\n /**\n * @hidden\n * Function that is called when a gesture begins on IE/Edge\n */\n /**\n * @hidden\n * Function that is called when a gesture begins on IE/Edge\n * @protected\n * @param {?} event\n * @return {?}\n */\n IgxScrollInertiaDirective.prototype.onMSGestureStart = /**\n * @hidden\n * Function that is called when a gesture begins on IE/Edge\n * @protected\n * @param {?} event\n * @return {?}\n */\n function (event) {\n if (!this.IgxScrollInertiaScrollContainer) {\n return;\n }\n this._startX = this.IgxScrollInertiaScrollContainer.scrollLeft;\n this._startY = this.IgxScrollInertiaScrollContainer.scrollTop;\n this._touchStartX = event.screenX;\n this._touchStartY = event.screenY;\n // Vars regarding swipe offset\n this._totalMovedX = 0;\n this._offsetRecorded = false;\n this._offsetDirection = 0;\n return false;\n };\n /**\n * @hidden\n * Function that is called when a we need to scroll based on the gesture performed on IE/Edge\n */\n /**\n * @hidden\n * Function that is called when a we need to scroll based on the gesture performed on IE/Edge\n * @protected\n * @param {?} event\n * @return {?}\n */\n IgxScrollInertiaDirective.prototype.onMSGestureChange = /**\n * @hidden\n * Function that is called when a we need to scroll based on the gesture performed on IE/Edge\n * @protected\n * @param {?} event\n * @return {?}\n */\n function (event) {\n if (!this.IgxScrollInertiaScrollContainer) {\n return;\n }\n /** @type {?} */\n var touchPos = event;\n /** @type {?} */\n var destX = this._startX + this._touchStartX - touchPos.screenX;\n /** @type {?} */\n var destY = this._startY + this._touchStartY - touchPos.screenY;\n /* Logic regarding x tolerance to prevent accidental horizontal scrolling when scrolling vertically */\n this._totalMovedX = this._touchStartX - touchPos.screenX;\n if (Math.abs(this._totalMovedX) < this.swipeToleranceX && !this._offsetRecorded) {\n /* Do not scroll horizontally yet while in the tolerance range */\n this._scrollToY(destY);\n }\n else {\n if (!this._offsetRecorded) {\n this._offsetDirection = Math.sign(destX - this._startX);\n this._offsetRecorded = true;\n }\n /* Once the tolerance is exceeded it can be scrolled horizontally */\n this._scrollTo(destX - this._offsetDirection * this.swipeToleranceX, destY);\n }\n return false;\n };\n /**\n * @private\n * @param {?} target\n * @param {?} min\n * @param {?} max\n * @return {?}\n */\n IgxScrollInertiaDirective.prototype.calcAxisCoords = /**\n * @private\n * @param {?} target\n * @param {?} min\n * @param {?} max\n * @return {?}\n */\n function (target, min, max) {\n if (target === undefined || target < min) {\n target = min;\n }\n else if (target > max) {\n target = max;\n }\n return target;\n };\n /**\n * @private\n * @param {?} destX\n * @param {?} destY\n * @return {?}\n */\n IgxScrollInertiaDirective.prototype._scrollTo = /**\n * @private\n * @param {?} destX\n * @param {?} destY\n * @return {?}\n */\n function (destX, destY) {\n /** @type {?} */\n var curPosX = this.IgxScrollInertiaScrollContainer.scrollLeft;\n /** @type {?} */\n var curPosY = this.IgxScrollInertiaScrollContainer.scrollTop;\n // TODO Trigger scrolling event?\n /** @type {?} */\n var scrolledX = this._scrollToX(destX);\n /** @type {?} */\n var scrolledY = this._scrollToY(destY);\n return { x: scrolledX, y: scrolledY };\n };\n /**\n * @private\n * @param {?} dest\n * @return {?}\n */\n IgxScrollInertiaDirective.prototype._scrollToX = /**\n * @private\n * @param {?} dest\n * @return {?}\n */\n function (dest) {\n this.IgxScrollInertiaScrollContainer.scrollLeft = dest;\n };\n /**\n * @private\n * @param {?} dest\n * @return {?}\n */\n IgxScrollInertiaDirective.prototype._scrollToY = /**\n * @private\n * @param {?} dest\n * @return {?}\n */\n function (dest) {\n this.IgxScrollInertiaScrollContainer.scrollTop = dest;\n };\n /**\n * @protected\n * @param {?} speedX\n * @param {?} speedY\n * @return {?}\n */\n IgxScrollInertiaDirective.prototype._inertiaInit = /**\n * @protected\n * @param {?} speedX\n * @param {?} speedY\n * @return {?}\n */\n function (speedX, speedY) {\n var _this = this;\n /** @type {?} */\n var stepModifer = this.inertiaStep;\n /** @type {?} */\n var inertiaDuration = this.inertiaDuration;\n /** @type {?} */\n var x = 0;\n this._nextX = this.IgxScrollInertiaScrollContainer.scrollLeft;\n this._nextY = this.IgxScrollInertiaScrollContainer.scrollTop;\n // Sets timeout until executing next movement iteration of the inertia\n /** @type {?} */\n var inertiaStep = function () {\n if (x > 6) {\n cancelAnimationFrame(_this._touchInertiaAnimID);\n return;\n }\n if (Math.abs(speedX) > Math.abs(speedY)) {\n x += 0.05 / (1 * inertiaDuration);\n }\n else {\n x += 0.05 / (1 * inertiaDuration);\n }\n if (x <= 1) {\n // We use constant quation to determine the offset without speed falloff befor x reaches 1\n if (Math.abs(speedY) <= Math.abs(speedX) * _this.inertiaDeltaY) {\n _this._nextX += 1 * speedX * 15 * stepModifer;\n }\n if (Math.abs(speedY) >= Math.abs(speedX) * _this.inertiaDeltaX) {\n _this._nextY += 1 * speedY * 15 * stepModifer;\n }\n }\n else {\n // We use the quation \"y = 2 / (x + 0.55) - 0.3\" to determine the offset\n if (Math.abs(speedY) <= Math.abs(speedX) * _this.inertiaDeltaY) {\n _this._nextX += Math.abs(2 / (x + 0.55) - 0.3) * speedX * 15 * stepModifer;\n }\n if (Math.abs(speedY) >= Math.abs(speedX) * _this.inertiaDeltaX) {\n _this._nextY += Math.abs(2 / (x + 0.55) - 0.3) * speedY * 15 * stepModifer;\n }\n }\n // If we have mixed environment we use the default behaviour. i.e. touchscreen + mouse\n _this._scrollTo(_this._nextX, _this._nextY);\n _this._touchInertiaAnimID = requestAnimationFrame(inertiaStep);\n };\n // Start inertia and continue it recursively\n this._touchInertiaAnimID = requestAnimationFrame(inertiaStep);\n };\n /**\n * @return {?}\n */\n IgxScrollInertiaDirective.prototype.ngOnDestroy = /**\n * @return {?}\n */\n function () {\n var _this = this;\n this._zone.runOutsideAngular(function () {\n /** @type {?} */\n var targetElem = _this.element.nativeElement.parentElement || _this.element.nativeElement.parentNode;\n targetElem.removeEventListener('wheel', function (evt) { _this.onWheel(evt); });\n targetElem.removeEventListener('touchstart', function (evt) { _this.onTouchStart(evt); });\n targetElem.removeEventListener('touchmove', function (evt) { _this.onTouchMove(evt); });\n targetElem.removeEventListener('touchend', function (evt) { _this.onTouchEnd(evt); });\n targetElem.removeEventListener('pointerdown', function (evt) { _this.onPointerDown(evt); });\n targetElem.removeEventListener('pointerup', function (evt) { _this.onPointerUp(evt); });\n targetElem.removeEventListener('MSGestureStart', function (evt) { _this.onMSGestureStart(evt); });\n targetElem.removeEventListener('MSGestureChange', function (evt) { _this.onMSGestureChange(evt); });\n });\n };\n IgxScrollInertiaDirective.decorators = [\n { type: Directive, args: [{ selector: '[igxScrollInertia]' },] }\n ];\n /** @nocollapse */\n IgxScrollInertiaDirective.ctorParameters = function () { return [\n { type: ElementRef },\n { type: NgZone }\n ]; };\n IgxScrollInertiaDirective.propDecorators = {\n IgxScrollInertiaDirection: [{ type: Input }],\n IgxScrollInertiaScrollContainer: [{ type: Input }],\n wheelStep: [{ type: Input }],\n inertiaStep: [{ type: Input }],\n swipeToleranceX: [{ type: Input }],\n inertiaDeltaY: [{ type: Input }],\n inertiaDeltaX: [{ type: Input }],\n inertiaDuration: [{ type: Input }]\n };\n return IgxScrollInertiaDirective;\n}());\n/**\n * @hidden\n */\nvar IgxScrollInertiaModule = /** @class */ (function () {\n function IgxScrollInertiaModule() {\n }\n IgxScrollInertiaModule.decorators = [\n { type: NgModule, args: [{\n declarations: [IgxScrollInertiaDirective],\n exports: [IgxScrollInertiaDirective],\n imports: [CommonModule]\n },] }\n ];\n return IgxScrollInertiaModule;\n}());\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\nvar IgxForOfSyncService = /** @class */ (function () {\n function IgxForOfSyncService() {\n this._master = new Map();\n }\n /**\n * @hidden\n */\n /**\n * @hidden\n * @param {?} directive\n * @return {?}\n */\n IgxForOfSyncService.prototype.isMaster = /**\n * @hidden\n * @param {?} directive\n * @return {?}\n */\n function (directive) {\n return this._master.get(directive.igxForScrollOrientation) === directive;\n };\n /**\n * @hidden\n */\n /**\n * @hidden\n * @param {?} directive\n * @param {?=} forced\n * @return {?}\n */\n IgxForOfSyncService.prototype.setMaster = /**\n * @hidden\n * @param {?} directive\n * @param {?=} forced\n * @return {?}\n */\n function (directive, forced) {\n if (forced === void 0) { forced = false; }\n /** @type {?} */\n var orientation = directive.igxForScrollOrientation;\n if (orientation && (forced || !this._master.has(orientation))) {\n this._master.set(orientation, directive);\n }\n };\n /**\n * @hidden\n */\n /**\n * @hidden\n * @return {?}\n */\n IgxForOfSyncService.prototype.resetMaster = /**\n * @hidden\n * @return {?}\n */\n function () {\n this._master.clear();\n };\n /**\n * @hidden\n */\n /**\n * @hidden\n * @param {?} dir\n * @return {?}\n */\n IgxForOfSyncService.prototype.sizesCache = /**\n * @hidden\n * @param {?} dir\n * @return {?}\n */\n function (dir) {\n return this._master.get(dir).sizesCache;\n };\n /**\n * @hidden\n */\n /**\n * @hidden\n * @param {?} dir\n * @return {?}\n */\n IgxForOfSyncService.prototype.chunkSize = /**\n * @hidden\n * @param {?} dir\n * @return {?}\n */\n function (dir) {\n return this._master.get(dir).state.chunkSize;\n };\n IgxForOfSyncService.decorators = [\n { type: Injectable, args: [{\n providedIn: 'root',\n },] }\n ];\n /** @nocollapse */ IgxForOfSyncService.ngInjectableDef = ɵɵdefineInjectable({ factory: function IgxForOfSyncService_Factory() { return new IgxForOfSyncService(); }, token: IgxForOfSyncService, providedIn: \"root\" });\n return IgxForOfSyncService;\n}());\nvar IgxForOfScrollSyncService = /** @class */ (function () {\n function IgxForOfScrollSyncService() {\n this._masterScroll = new Map();\n }\n /**\n * @param {?} dir\n * @param {?} scroll\n * @return {?}\n */\n IgxForOfScrollSyncService.prototype.setScrollMaster = /**\n * @param {?} dir\n * @param {?} scroll\n * @return {?}\n */\n function (dir, scroll) {\n this._masterScroll.set(dir, scroll);\n };\n /**\n * @param {?} dir\n * @return {?}\n */\n IgxForOfScrollSyncService.prototype.getScrollMaster = /**\n * @param {?} dir\n * @return {?}\n */\n function (dir) {\n return this._masterScroll.get(dir);\n };\n IgxForOfScrollSyncService.decorators = [\n { type: Injectable, args: [{\n providedIn: 'root',\n },] }\n ];\n /** @nocollapse */ IgxForOfScrollSyncService.ngInjectableDef = ɵɵdefineInjectable({ factory: function IgxForOfScrollSyncService_Factory() { return new IgxForOfScrollSyncService(); }, token: IgxForOfScrollSyncService, providedIn: \"root\" });\n return IgxForOfScrollSyncService;\n}());\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n/**\n * \\@publicApi\n * @template T\n */\nvar /**\n * \\@publicApi\n * @template T\n */\nIgxForOfContext = /** @class */ (function () {\n function IgxForOfContext($implicit, index, count) {\n this.$implicit = $implicit;\n this.index = index;\n this.count = count;\n }\n Object.defineProperty(IgxForOfContext.prototype, \"first\", {\n /**\n * A function that returns whether the element is the first or not\n */\n get: /**\n * A function that returns whether the element is the first or not\n * @return {?}\n */\n function () { return this.index === 0; },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxForOfContext.prototype, \"last\", {\n /**\n * A function that returns whether the element is the last or not\n */\n get: /**\n * A function that returns whether the element is the last or not\n * @return {?}\n */\n function () { return this.index === this.count - 1; },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxForOfContext.prototype, \"even\", {\n /**\n * A function that returns whether the element is even or not\n */\n get: /**\n * A function that returns whether the element is even or not\n * @return {?}\n */\n function () { return this.index % 2 === 0; },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxForOfContext.prototype, \"odd\", {\n /**\n * A function that returns whether the element is odd or not\n */\n get: /**\n * A function that returns whether the element is odd or not\n * @return {?}\n */\n function () { return !this.even; },\n enumerable: true,\n configurable: true\n });\n return IgxForOfContext;\n}());\n/**\n * @template T\n */\nvar IgxForOfDirective = /** @class */ (function () {\n function IgxForOfDirective(_viewContainer, _template, _differs, resolver, cdr, _zone, syncScrollService) {\n this._viewContainer = _viewContainer;\n this._template = _template;\n this._differs = _differs;\n this.resolver = resolver;\n this.cdr = cdr;\n this._zone = _zone;\n this.syncScrollService = syncScrollService;\n /**\n * An \\@Input property that specifies the scroll orientation.\n * Scroll orientation can be \"vertical\" or \"horizontal\".\n * ```html\n * \n * ```\n */\n this.igxForScrollOrientation = 'vertical';\n /**\n * The current state of the directive. It contains `startIndex` and `chunkSize`.\n * state.startIndex - The index of the item at which the current visible chunk begins.\n * state.chunkSize - The number of items the current visible chunk holds.\n * These options can be used when implementing remote virtualization as they provide the necessary state information.\n * ```typescript\n * const gridState = this.parentVirtDir.state;\n * ```\n */\n this.state = {\n startIndex: 0,\n chunkSize: 0\n };\n /**\n * The total count of the virtual data items, when using remote service.\n * ```typescript\n * this.parentVirtDir.totalItemCount = data.Count;\n * ```\n */\n this.totalItemCount = null;\n /**\n * An event that is emitted after a new chunk has been loaded.\n * ```html\n * \n * ```\n * ```typescript\n * chunkLoad(e){\n * alert(\"chunk loaded!\");\n * }\n * ```\n */\n this.onChunkLoad = new EventEmitter();\n /**\n * @hidden \\@internal\n * An event that is emitted when scrollbar visibility has changed.\n */\n this.onScrollbarVisibilityChanged = new EventEmitter();\n /**\n * An event that is emitted after the rendered content size of the igxForOf has been changed.\n */\n this.onContentSizeChange = new EventEmitter();\n /**\n * An event that is emitted after data has been changed.\n * ```html\n * \n * ```\n * ```typescript\n * dataChanged(e){\n * alert(\"data changed!\");\n * }\n * ```\n */\n this.onDataChanged = new EventEmitter();\n this.onBeforeViewDestroyed = new EventEmitter();\n /**\n * An event that is emitted on chunk loading to emit the current state information - startIndex, endIndex, totalCount.\n * Can be used for implementing remote load on demand for the igxFor data.\n * ```html\n * \n * ```\n * ```typescript\n * chunkPreload(e){\n * alert(\"chunk is loading!\");\n * }\n * ```\n */\n this.onChunkPreload = new EventEmitter();\n this._sizesCache = [];\n this._differ = null;\n this.heightCache = [];\n this.MAX_PERF_SCROLL_DIFF = 4;\n /**\n * Height that is being virtualized.\n */\n this._virtHeight = 0;\n /**\n * Ratio for height that's being virtualizaed and the one visible\n * If _virtHeightRatio = 1, the visible height and the virtualized are the same, also _maxHeight > _virtHeight.\n */\n this._virtHeightRatio = 1;\n /**\n * Internal track for scroll top that is being virtualized\n */\n this._virtScrollTop = 0;\n /**\n * If the next onScroll event is triggered due to internal setting of scrollTop\n */\n this._bScrollInternal = false;\n // End properties related to virtual height handling\n this._embeddedViews = [];\n this.contentResizeNotify = new Subject();\n /**\n * @hidden\n */\n this.destroy$ = new Subject();\n }\n Object.defineProperty(IgxForOfDirective.prototype, \"displayContainer\", {\n get: /**\n * @return {?}\n */\n function () {\n return this.dc.instance._viewContainer.element.nativeElement;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxForOfDirective.prototype, \"virtualHelper\", {\n get: /**\n * @return {?}\n */\n function () {\n return this.scrollComponent.nativeElement;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxForOfDirective.prototype, \"sizesCache\", {\n get: /**\n * @protected\n * @return {?}\n */\n function () {\n return this._sizesCache;\n },\n set: /**\n * @protected\n * @param {?} value\n * @return {?}\n */\n function (value) {\n this._sizesCache = value;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxForOfDirective.prototype, \"_isScrolledToBottom\", {\n get: /**\n * @private\n * @return {?}\n */\n function () {\n if (!this.getScroll()) {\n return true;\n }\n /** @type {?} */\n var scrollHeight = this.getScroll().scrollHeight;\n // Use === and not >= because `scrollTop + container size` can't be bigger than `scrollHeight`, unless something isn't updated.\n // Also use Math.round because Chrome has some inconsistencies and `scrollTop + container` can be float when zooming the page.\n return Math.round(this.getScroll().scrollTop + this.igxForContainerSize) === scrollHeight;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxForOfDirective.prototype, \"_isAtBottomIndex\", {\n get: /**\n * @private\n * @return {?}\n */\n function () {\n return this.igxForOf && this.state.startIndex + this.state.chunkSize > this.igxForOf.length;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxForOfDirective.prototype, \"isRemote\", {\n /**\n * @hidden\n */\n get: /**\n * @hidden\n * @protected\n * @return {?}\n */\n function () {\n return this.totalItemCount !== null;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxForOfDirective.prototype, \"scrollPosition\", {\n /**\n *\n * Gets/Sets the scroll position.\n * ```typescript\n * const position = directive.scrollPosition;\n * directive.scrollPosition = value;\n * ```\n */\n get: /**\n *\n * Gets/Sets the scroll position.\n * ```typescript\n * const position = directive.scrollPosition;\n * directive.scrollPosition = value;\n * ```\n * @return {?}\n */\n function () {\n return this.scrollComponent.scrollAmount;\n },\n set: /**\n * @param {?} val\n * @return {?}\n */\n function (val) {\n if (val === this.scrollComponent.scrollAmount) {\n return;\n }\n if (this.igxForScrollOrientation === 'horizontal' && this.scrollComponent) {\n this.scrollComponent.nativeElement.scrollLeft = val;\n }\n else if (this.scrollComponent) {\n this.scrollComponent.nativeElement.scrollTop = val;\n }\n },\n enumerable: true,\n configurable: true\n });\n /**\n * @hidden\n */\n /**\n * @hidden\n * @protected\n * @return {?}\n */\n IgxForOfDirective.prototype.removeScrollEventListeners = /**\n * @hidden\n * @protected\n * @return {?}\n */\n function () {\n var _this = this;\n if (this.igxForScrollOrientation === 'horizontal') {\n this._zone.runOutsideAngular(function () {\n return _this.scrollComponent.nativeElement.removeEventListener('scroll', _this.func);\n });\n }\n else {\n this._zone.runOutsideAngular(function () {\n return _this.scrollComponent.nativeElement.removeEventListener('scroll', _this.verticalScrollHandler);\n });\n }\n };\n /**\n * @param {?} event\n * @return {?}\n */\n IgxForOfDirective.prototype.verticalScrollHandler = /**\n * @param {?} event\n * @return {?}\n */\n function (event) {\n this.onScroll(event);\n };\n /**\n * @return {?}\n */\n IgxForOfDirective.prototype.isScrollable = /**\n * @return {?}\n */\n function () {\n return this.scrollComponent.size > parseInt(this.igxForContainerSize, 10);\n };\n /**\n * @hidden\n */\n /**\n * @hidden\n * @return {?}\n */\n IgxForOfDirective.prototype.ngOnInit = /**\n * @hidden\n * @return {?}\n */\n function () {\n var _this = this;\n /** @type {?} */\n var totalSize = 0;\n /** @type {?} */\n var vc = this.igxForScrollContainer ? this.igxForScrollContainer._viewContainer : this._viewContainer;\n this.igxForSizePropName = this.igxForSizePropName || 'width';\n /** @type {?} */\n var dcFactory = this.resolver.resolveComponentFactory(DisplayContainerComponent);\n this.dc = this._viewContainer.createComponent(dcFactory, 0);\n this.dc.instance.scrollDirection = this.igxForScrollOrientation;\n if (typeof MSGesture === 'function') {\n // On Edge and IE when scrolling on touch the page scroll instead of the grid.\n this.dc.instance._viewContainer.element.nativeElement.style.touchAction = 'none';\n }\n if (this.igxForOf && this.igxForOf.length) {\n totalSize = this.initSizesCache(this.igxForOf);\n this.scrollComponent = this.syncScrollService.getScrollMaster(this.igxForScrollOrientation);\n this.state.chunkSize = this._calculateChunkSize();\n this.dc.instance.notVirtual = !(this.igxForContainerSize && this.state.chunkSize < this.igxForOf.length);\n if (this.scrollComponent && !this.scrollComponent.destroyed) {\n this.state.startIndex = Math.min(this.getIndexAt(this.scrollPosition, this.sizesCache, 0), this.igxForOf.length - this.state.chunkSize);\n }\n for (var i = this.state.startIndex; i < this.state.startIndex + this.state.chunkSize &&\n this.igxForOf[i] !== undefined; i++) {\n /** @type {?} */\n var input = this.igxForOf[i];\n /** @type {?} */\n var embeddedView = this.dc.instance._vcr.createEmbeddedView(this._template, new IgxForOfContext(input, this.getContextIndex(input), this.igxForOf.length));\n this._embeddedViews.push(embeddedView);\n }\n }\n if (this.igxForScrollOrientation === 'vertical') {\n this.dc.instance._viewContainer.element.nativeElement.style.top = '0px';\n /** @type {?} */\n var factory = this.resolver.resolveComponentFactory(VirtualHelperComponent);\n this.scrollComponent = vc.createComponent(factory).instance;\n this._maxHeight = this._calcMaxBrowserHeight();\n this.scrollComponent.size = this.igxForOf ? this._calcHeight() : 0;\n this.syncScrollService.setScrollMaster(this.igxForScrollOrientation, this.scrollComponent);\n this._zone.runOutsideAngular(function () {\n _this.verticalScrollHandler = _this.verticalScrollHandler.bind(_this);\n _this.scrollComponent.nativeElement.addEventListener('scroll', _this.verticalScrollHandler);\n _this.dc.instance.scrollContainer = _this.scrollComponent.nativeElement;\n });\n /** @type {?} */\n var destructor = takeUntil(this.destroy$);\n this.contentResizeNotify.pipe(destructor, filter(function () { return _this.igxForContainerSize && _this.igxForOf && _this.igxForOf.length > 0; }), throttleTime(40, undefined, { leading: true, trailing: true }))\n .subscribe(function () {\n _this._zone.runTask(function () {\n _this.updateSizes();\n });\n });\n }\n if (this.igxForScrollOrientation === 'horizontal') {\n this.func = function (evt) { _this.onHScroll(evt); };\n this.scrollComponent = this.syncScrollService.getScrollMaster(this.igxForScrollOrientation);\n if (!this.scrollComponent) {\n /** @type {?} */\n var hvFactory = this.resolver.resolveComponentFactory(HVirtualHelperComponent);\n this.scrollComponent = vc.createComponent(hvFactory).instance;\n this.scrollComponent.size = totalSize;\n this.syncScrollService.setScrollMaster(this.igxForScrollOrientation, this.scrollComponent);\n this._zone.runOutsideAngular(function () {\n _this.scrollComponent.nativeElement.addEventListener('scroll', _this.func);\n _this.dc.instance.scrollContainer = _this.scrollComponent.nativeElement;\n });\n }\n else {\n this._zone.runOutsideAngular(function () {\n _this.scrollComponent.nativeElement.addEventListener('scroll', _this.func);\n _this.dc.instance.scrollContainer = _this.scrollComponent.nativeElement;\n });\n }\n this._updateHScrollOffset();\n }\n };\n /**\n * @return {?}\n */\n IgxForOfDirective.prototype.ngAfterViewInit = /**\n * @return {?}\n */\n function () {\n var _this = this;\n if (this.igxForScrollOrientation === 'vertical') {\n this._zone.runOutsideAngular(function () {\n _this.contentObserver = new ResizeObserver(function () { return _this.contentResizeNotify.next(); });\n _this.contentObserver.observe(_this.dc.instance._viewContainer.element.nativeElement);\n });\n }\n };\n /**\n * @hidden\n */\n /**\n * @hidden\n * @return {?}\n */\n IgxForOfDirective.prototype.ngOnDestroy = /**\n * @hidden\n * @return {?}\n */\n function () {\n this.removeScrollEventListeners();\n this.destroy$.next(true);\n this.destroy$.complete();\n if (this.contentObserver) {\n this.contentObserver.disconnect();\n }\n };\n /**\n * @hidden\n */\n /**\n * @hidden\n * @param {?} changes\n * @return {?}\n */\n IgxForOfDirective.prototype.ngOnChanges = /**\n * @hidden\n * @param {?} changes\n * @return {?}\n */\n function (changes) {\n /** @type {?} */\n var forOf = 'igxForOf';\n if (forOf in changes) {\n /** @type {?} */\n var value = changes[forOf].currentValue;\n if (!this._differ && value) {\n try {\n this._differ = this._differs.find(value).create(this.igxForTrackBy);\n }\n catch (e) {\n throw new Error(\"Cannot find a differ supporting object \\\"\" + value + \"\\\" of type \\\"\" + getTypeNameForDebugging(value) + \"\\\".\\n NgFor only supports binding to Iterables such as Arrays.\");\n }\n }\n }\n /** @type {?} */\n var defaultItemSize = 'igxForItemSize';\n if (defaultItemSize in changes && !changes[defaultItemSize].firstChange &&\n this.igxForScrollOrientation === 'vertical' && this.igxForOf) {\n // handle default item size changed.\n this.initSizesCache(this.igxForOf);\n this._applyChanges();\n }\n /** @type {?} */\n var containerSize = 'igxForContainerSize';\n if (containerSize in changes && !changes[containerSize].firstChange && this.igxForOf) {\n this._recalcOnContainerChange(changes);\n }\n };\n /**\n * @hidden\n */\n /**\n * @hidden\n * @return {?}\n */\n IgxForOfDirective.prototype.ngDoCheck = /**\n * @hidden\n * @return {?}\n */\n function () {\n var _this = this;\n if (this._differ) {\n /** @type {?} */\n var changes = this._differ.diff(this.igxForOf);\n if (changes) {\n // re-init cache.\n if (!this.igxForOf) {\n this.igxForOf = [];\n }\n this._updateSizeCache();\n this._zone.run(function () {\n _this._applyChanges();\n _this.cdr.markForCheck();\n _this._updateScrollOffset();\n _this.onDataChanged.emit();\n });\n }\n }\n };\n /**\n * Shifts the scroll thumb position.\n * ```typescript\n * this.parentVirtDir.addScrollTop(5);\n * ```\n * @param addTop negative value to scroll up and positive to scroll down;\n */\n /**\n * Shifts the scroll thumb position.\n * ```typescript\n * this.parentVirtDir.addScrollTop(5);\n * ```\n * @param {?} addTop negative value to scroll up and positive to scroll down;\n * @return {?}\n */\n IgxForOfDirective.prototype.addScrollTop = /**\n * Shifts the scroll thumb position.\n * ```typescript\n * this.parentVirtDir.addScrollTop(5);\n * ```\n * @param {?} addTop negative value to scroll up and positive to scroll down;\n * @return {?}\n */\n function (addTop) {\n if (addTop === 0 && this.igxForScrollOrientation === 'horizontal') {\n return false;\n }\n /** @type {?} */\n var originalVirtScrollTop = this._virtScrollTop;\n /** @type {?} */\n var containerSize = parseInt(this.igxForContainerSize, 10);\n /** @type {?} */\n var maxVirtScrollTop = this._virtHeight - containerSize;\n this._bScrollInternal = true;\n this._virtScrollTop += addTop;\n this._virtScrollTop = this._virtScrollTop > 0 ?\n (this._virtScrollTop < maxVirtScrollTop ? this._virtScrollTop : maxVirtScrollTop) :\n 0;\n this.scrollPosition += addTop / this._virtHeightRatio;\n if (Math.abs(addTop / this._virtHeightRatio) < 1) {\n // Actual scroll delta that was added is smaller than 1 and onScroll handler doesn't trigger when scrolling < 1px\n /** @type {?} */\n var scrollOffset = this.fixedUpdateAllElements(this._virtScrollTop);\n // scrollOffset = scrollOffset !== parseInt(this.igxForItemSize, 10) ? scrollOffset : 0;\n this.dc.instance._viewContainer.element.nativeElement.style.top = -(scrollOffset) + 'px';\n }\n /** @type {?} */\n var maxRealScrollTop = this.scrollComponent.nativeElement.scrollHeight - containerSize;\n if ((this._virtScrollTop > 0 && this.scrollPosition === 0) ||\n (this._virtScrollTop < maxVirtScrollTop && this.scrollPosition === maxRealScrollTop)) {\n // Actual scroll position is at the top or bottom, but virtual one is not at the top or bottom (there's more to scroll)\n // Recalculate actual scroll position based on the virtual scroll.\n this.scrollPosition = this._virtScrollTop / this._virtHeightRatio;\n }\n else if (this._virtScrollTop === 0 && this.scrollPosition > 0) {\n // Actual scroll position is not at the top, but virtual scroll is. Just update the actual scroll\n this.scrollPosition = 0;\n }\n else if (this._virtScrollTop === maxVirtScrollTop && this.scrollPosition < maxRealScrollTop) {\n // Actual scroll position is not at the bottom, but virtual scroll is. Just update the acual scroll\n this.scrollPosition = maxRealScrollTop;\n }\n return this._virtScrollTop !== originalVirtScrollTop;\n };\n /**\n * Scrolls to the specified index.\n * ```typescript\n * this.parentVirtDir.scrollTo(5);\n * ```\n * @param index\n */\n /**\n * Scrolls to the specified index.\n * ```typescript\n * this.parentVirtDir.scrollTo(5);\n * ```\n * @param {?} index\n * @return {?}\n */\n IgxForOfDirective.prototype.scrollTo = /**\n * Scrolls to the specified index.\n * ```typescript\n * this.parentVirtDir.scrollTo(5);\n * ```\n * @param {?} index\n * @return {?}\n */\n function (index) {\n if (index < 0 || index > (this.isRemote ? this.totalItemCount : this.igxForOf.length) - 1) {\n return;\n }\n /** @type {?} */\n var containerSize = parseInt(this.igxForContainerSize, 10);\n /** @type {?} */\n var isPrevItem = index < this.state.startIndex || this.scrollPosition > this.sizesCache[index];\n /** @type {?} */\n var nextScroll = isPrevItem ? this.sizesCache[index] : this.sizesCache[index + 1] - containerSize;\n if (nextScroll < 0) {\n return;\n }\n if (this.igxForScrollOrientation === 'horizontal') {\n this.scrollPosition = nextScroll;\n }\n else {\n /** @type {?} */\n var maxVirtScrollTop = this._virtHeight - containerSize;\n if (nextScroll > maxVirtScrollTop) {\n nextScroll = maxVirtScrollTop;\n }\n this._bScrollInternal = true;\n this._virtScrollTop = nextScroll;\n this.scrollPosition = this._virtScrollTop / this._virtHeightRatio;\n this._adjustToIndex = !isPrevItem ? index : null;\n }\n };\n /**\n * Scrolls by one item into the appropriate next direction.\n * For \"horizontal\" orientation that will be the right column and for \"vertical\" that is the lower row.\n * ```typescript\n * this.parentVirtDir.scrollNext();\n * ```\n */\n /**\n * Scrolls by one item into the appropriate next direction.\n * For \"horizontal\" orientation that will be the right column and for \"vertical\" that is the lower row.\n * ```typescript\n * this.parentVirtDir.scrollNext();\n * ```\n * @return {?}\n */\n IgxForOfDirective.prototype.scrollNext = /**\n * Scrolls by one item into the appropriate next direction.\n * For \"horizontal\" orientation that will be the right column and for \"vertical\" that is the lower row.\n * ```typescript\n * this.parentVirtDir.scrollNext();\n * ```\n * @return {?}\n */\n function () {\n /** @type {?} */\n var scr = Math.ceil(this.scrollPosition);\n /** @type {?} */\n var endIndex = this.getIndexAt(scr + parseInt(this.igxForContainerSize, 10), this.sizesCache, 0);\n this.scrollTo(endIndex);\n };\n /**\n * Scrolls by one item into the appropriate previous direction.\n * For \"horizontal\" orientation that will be the left column and for \"vertical\" that is the upper row.\n * ```typescript\n * this.parentVirtDir.scrollPrev();\n * ```\n */\n /**\n * Scrolls by one item into the appropriate previous direction.\n * For \"horizontal\" orientation that will be the left column and for \"vertical\" that is the upper row.\n * ```typescript\n * this.parentVirtDir.scrollPrev();\n * ```\n * @return {?}\n */\n IgxForOfDirective.prototype.scrollPrev = /**\n * Scrolls by one item into the appropriate previous direction.\n * For \"horizontal\" orientation that will be the left column and for \"vertical\" that is the upper row.\n * ```typescript\n * this.parentVirtDir.scrollPrev();\n * ```\n * @return {?}\n */\n function () {\n this.scrollTo(this.state.startIndex - 1);\n };\n /**\n * Scrolls by one page into the appropriate next direction.\n * For \"horizontal\" orientation that will be one view to the right and for \"vertical\" that is one view to the bottom.\n * ```typescript\n * this.parentVirtDir.scrollNextPage();\n * ```\n */\n /**\n * Scrolls by one page into the appropriate next direction.\n * For \"horizontal\" orientation that will be one view to the right and for \"vertical\" that is one view to the bottom.\n * ```typescript\n * this.parentVirtDir.scrollNextPage();\n * ```\n * @return {?}\n */\n IgxForOfDirective.prototype.scrollNextPage = /**\n * Scrolls by one page into the appropriate next direction.\n * For \"horizontal\" orientation that will be one view to the right and for \"vertical\" that is one view to the bottom.\n * ```typescript\n * this.parentVirtDir.scrollNextPage();\n * ```\n * @return {?}\n */\n function () {\n if (this.igxForScrollOrientation === 'horizontal') {\n this.scrollPosition += parseInt(this.igxForContainerSize, 10);\n }\n else {\n this.addScrollTop(parseInt(this.igxForContainerSize, 10));\n }\n };\n /**\n * Scrolls by one page into the appropriate previous direction.\n * For \"horizontal\" orientation that will be one view to the left and for \"vertical\" that is one view to the top.\n * ```typescript\n * this.parentVirtDir.scrollPrevPage();\n * ```\n */\n /**\n * Scrolls by one page into the appropriate previous direction.\n * For \"horizontal\" orientation that will be one view to the left and for \"vertical\" that is one view to the top.\n * ```typescript\n * this.parentVirtDir.scrollPrevPage();\n * ```\n * @return {?}\n */\n IgxForOfDirective.prototype.scrollPrevPage = /**\n * Scrolls by one page into the appropriate previous direction.\n * For \"horizontal\" orientation that will be one view to the left and for \"vertical\" that is one view to the top.\n * ```typescript\n * this.parentVirtDir.scrollPrevPage();\n * ```\n * @return {?}\n */\n function () {\n if (this.igxForScrollOrientation === 'horizontal') {\n this.scrollPosition -= parseInt(this.igxForContainerSize, 10);\n }\n else {\n /** @type {?} */\n var containerSize = (parseInt(this.igxForContainerSize, 10));\n this.addScrollTop(-containerSize);\n }\n };\n /**\n * @hidden\n */\n /**\n * @hidden\n * @param {?} colIndex\n * @return {?}\n */\n IgxForOfDirective.prototype.getColumnScrollLeft = /**\n * @hidden\n * @param {?} colIndex\n * @return {?}\n */\n function (colIndex) {\n return this.sizesCache[colIndex];\n };\n /**\n * Returns the total number of items that are fully visible.\n * ```typescript\n * this.parentVirtDir.getItemCountInView();\n * ```\n */\n /**\n * Returns the total number of items that are fully visible.\n * ```typescript\n * this.parentVirtDir.getItemCountInView();\n * ```\n * @return {?}\n */\n IgxForOfDirective.prototype.getItemCountInView = /**\n * Returns the total number of items that are fully visible.\n * ```typescript\n * this.parentVirtDir.getItemCountInView();\n * ```\n * @return {?}\n */\n function () {\n /** @type {?} */\n var startIndex = this.getIndexAt(this.scrollPosition, this.sizesCache, 0);\n if (this.scrollPosition - this.sizesCache[startIndex] > 0) {\n // fisrt item is not fully in view\n startIndex++;\n }\n /** @type {?} */\n var endIndex = this.getIndexAt(this.scrollPosition + parseInt(this.igxForContainerSize, 10), this.sizesCache, 0);\n return endIndex - startIndex;\n };\n /**\n * Returns a reference to the scrollbar DOM element.\n * This is either a vertical or horizontal scrollbar depending on the specified igxForScrollOrientation.\n * ```typescript\n * dir.getScroll();\n * ```\n */\n /**\n * Returns a reference to the scrollbar DOM element.\n * This is either a vertical or horizontal scrollbar depending on the specified igxForScrollOrientation.\n * ```typescript\n * dir.getScroll();\n * ```\n * @return {?}\n */\n IgxForOfDirective.prototype.getScroll = /**\n * Returns a reference to the scrollbar DOM element.\n * This is either a vertical or horizontal scrollbar depending on the specified igxForScrollOrientation.\n * ```typescript\n * dir.getScroll();\n * ```\n * @return {?}\n */\n function () {\n return this.scrollComponent.nativeElement;\n };\n /**\n * Returns the size of the element at the specified index.\n * ```typescript\n * this.parentVirtDir.getSizeAt(1);\n * ```\n */\n /**\n * Returns the size of the element at the specified index.\n * ```typescript\n * this.parentVirtDir.getSizeAt(1);\n * ```\n * @param {?} index\n * @return {?}\n */\n IgxForOfDirective.prototype.getSizeAt = /**\n * Returns the size of the element at the specified index.\n * ```typescript\n * this.parentVirtDir.getSizeAt(1);\n * ```\n * @param {?} index\n * @return {?}\n */\n function (index) {\n return this.sizesCache[index + 1] - this.sizesCache[index];\n };\n /**\n * Returns the scroll offset of the element at the specified index.\n * ```typescript\n * this.parentVirtDir.getScrollForIndex(1);\n * ```\n */\n /**\n * Returns the scroll offset of the element at the specified index.\n * ```typescript\n * this.parentVirtDir.getScrollForIndex(1);\n * ```\n * @param {?} index\n * @param {?=} bottom\n * @return {?}\n */\n IgxForOfDirective.prototype.getScrollForIndex = /**\n * Returns the scroll offset of the element at the specified index.\n * ```typescript\n * this.parentVirtDir.getScrollForIndex(1);\n * ```\n * @param {?} index\n * @param {?=} bottom\n * @return {?}\n */\n function (index, bottom) {\n /** @type {?} */\n var containerSize = parseInt(this.igxForContainerSize, 10);\n /** @type {?} */\n var scroll = bottom ? Math.max(0, this.sizesCache[index + 1] - containerSize) : this.sizesCache[index];\n return scroll;\n };\n /**\n * @hidden\n * Function that is called when scrolling vertically\n */\n /**\n * @hidden\n * Function that is called when scrolling vertically\n * @protected\n * @param {?} event\n * @return {?}\n */\n IgxForOfDirective.prototype.onScroll = /**\n * @hidden\n * Function that is called when scrolling vertically\n * @protected\n * @param {?} event\n * @return {?}\n */\n function (event) {\n /* in certain situations this may be called when no scrollbar is visible */\n if (!parseInt(this.scrollComponent.nativeElement.style.height, 10)) {\n return;\n }\n if (!this._bScrollInternal) {\n this._calcVirtualScrollTop(event.target.scrollTop);\n }\n else {\n this._bScrollInternal = false;\n }\n /** @type {?} */\n var prevStartIndex = this.state.startIndex;\n /** @type {?} */\n var scrollOffset = this.fixedUpdateAllElements(this._virtScrollTop);\n this.dc.instance._viewContainer.element.nativeElement.style.top = -(scrollOffset) + 'px';\n this.dc.changeDetectorRef.detectChanges();\n if (prevStartIndex !== this.state.startIndex) {\n this.onChunkLoad.emit(this.state);\n }\n };\n /**\n * @protected\n * @return {?}\n */\n IgxForOfDirective.prototype.updateSizes = /**\n * @protected\n * @return {?}\n */\n function () {\n this.recalcUpdateSizes();\n this._applyChanges();\n this._updateScrollOffset();\n this.onContentSizeChange.emit();\n };\n /**\n * @hidden\n * Function that recaculates and updates cache sizes.\n */\n /**\n * @hidden\n * Function that recaculates and updates cache sizes.\n * @return {?}\n */\n IgxForOfDirective.prototype.recalcUpdateSizes = /**\n * @hidden\n * Function that recaculates and updates cache sizes.\n * @return {?}\n */\n function () {\n /** @type {?} */\n var dimension = this.igxForScrollOrientation === 'horizontal' ?\n this.igxForSizePropName : 'height';\n /** @type {?} */\n var diffs = [];\n /** @type {?} */\n var totalDiff = 0;\n /** @type {?} */\n var l = this._embeddedViews.length;\n /** @type {?} */\n var rNodes = this._embeddedViews.map(function (view) {\n return view.rootNodes.find(function (node) { return node.nodeType === Node.ELEMENT_NODE; }) || view.rootNodes[0].nextElementSibling;\n });\n for (var i = 0; i < l; i++) {\n /** @type {?} */\n var rNode = rNodes[i];\n if (rNode) {\n /** @type {?} */\n var h = rNode.offsetHeight || parseInt(this.igxForItemSize, 10);\n /** @type {?} */\n var index = this.state.startIndex + i;\n if (!this.isRemote && !this.igxForOf[index]) {\n continue;\n }\n /** @type {?} */\n var oldVal = dimension === 'height' ? this.heightCache[index] : this.igxForOf[index][dimension];\n /** @type {?} */\n var newVal = dimension === 'height' ? h : rNode.clientWidth;\n if (dimension === 'height') {\n this.heightCache[index] = newVal;\n }\n else {\n this.igxForOf[index][dimension] = newVal;\n }\n /** @type {?} */\n var currDiff = newVal - oldVal;\n diffs.push(currDiff);\n totalDiff += currDiff;\n this.sizesCache[index + 1] += totalDiff;\n }\n }\n // update cache\n if (Math.abs(totalDiff) > 0) {\n for (var j = this.state.startIndex + this.state.chunkSize + 1; j < this.sizesCache.length; j++) {\n this.sizesCache[j] += totalDiff;\n }\n // update scrBar heights/widths\n if (this.igxForScrollOrientation === 'horizontal') {\n /** @type {?} */\n var totalWidth = parseInt(this.scrollComponent.nativeElement.children[0].style.width, 10) + totalDiff;\n this.scrollComponent.nativeElement.children[0].style.width = totalWidth + 'px';\n }\n /** @type {?} */\n var reducer = function (acc, val) { return acc + val; };\n if (this.igxForScrollOrientation === 'vertical') {\n /** @type {?} */\n var scrToBottom = this._isScrolledToBottom && !this.dc.instance.notVirtual;\n /** @type {?} */\n var hSum = this.heightCache.reduce(reducer);\n if (hSum > this._maxHeight) {\n this._virtHeightRatio = hSum / this._maxHeight;\n }\n this.scrollComponent.size = Math.min(this.scrollComponent.size + totalDiff, this._maxHeight);\n this._virtHeight = hSum;\n if (!this.scrollComponent.destroyed) {\n this.scrollComponent.cdr.detectChanges();\n }\n if (scrToBottom && !this._isAtBottomIndex) {\n /** @type {?} */\n var containerSize = parseInt(this.igxForContainerSize, 10);\n /** @type {?} */\n var maxVirtScrollTop = this._virtHeight - containerSize;\n this._bScrollInternal = true;\n this._virtScrollTop = maxVirtScrollTop;\n this.scrollPosition = maxVirtScrollTop;\n return;\n }\n if (this._adjustToIndex) {\n // in case scrolled to specific index where after scroll heights are changed\n // need to adjust the offsets so that item is last in view.\n /** @type {?} */\n var updatesToIndex = this._adjustToIndex - this.state.startIndex + 1;\n /** @type {?} */\n var sumDiffs = diffs.slice(0, updatesToIndex).reduce(reducer);\n /** @type {?} */\n var currOffset = parseInt(this.dc.instance._viewContainer.element.nativeElement.style.top, 10);\n this.dc.instance._viewContainer.element.nativeElement.style.top = (currOffset - sumDiffs) + 'px';\n this._adjustToIndex = null;\n }\n }\n }\n };\n /**\n * @hidden\n */\n /**\n * @hidden\n * @protected\n * @param {?} inScrollTop\n * @return {?}\n */\n IgxForOfDirective.prototype.fixedUpdateAllElements = /**\n * @hidden\n * @protected\n * @param {?} inScrollTop\n * @return {?}\n */\n function (inScrollTop) {\n /** @type {?} */\n var count = this.isRemote ? this.totalItemCount : this.igxForOf.length;\n /** @type {?} */\n var newStart = this.getIndexAt(inScrollTop, this.sizesCache, 0);\n if (newStart + this.state.chunkSize > count) {\n newStart = count - this.state.chunkSize;\n }\n /** @type {?} */\n var prevStart = this.state.startIndex;\n /** @type {?} */\n var diff = newStart - this.state.startIndex;\n this.state.startIndex = newStart;\n if (diff) {\n this.onChunkPreload.emit(this.state);\n if (!this.isRemote) {\n /*recalculate and apply page size.*/\n if (diff > 0 && diff <= this.MAX_PERF_SCROLL_DIFF) {\n this.moveApplyScrollNext(prevStart);\n }\n else if (diff < 0 && Math.abs(diff) <= this.MAX_PERF_SCROLL_DIFF) {\n this.moveApplyScrollPrev(prevStart);\n }\n else {\n this.fixedApplyScroll();\n }\n }\n }\n return inScrollTop - this.sizesCache[this.state.startIndex];\n };\n /**\n * @hidden\n * The function applies an optimized state change for scrolling down/right employing context change with view rearrangement\n */\n /**\n * @hidden\n * The function applies an optimized state change for scrolling down/right employing context change with view rearrangement\n * @protected\n * @param {?} prevIndex\n * @return {?}\n */\n IgxForOfDirective.prototype.moveApplyScrollNext = /**\n * @hidden\n * The function applies an optimized state change for scrolling down/right employing context change with view rearrangement\n * @protected\n * @param {?} prevIndex\n * @return {?}\n */\n function (prevIndex) {\n /** @type {?} */\n var start = prevIndex + this.state.chunkSize;\n for (var i = start; i < start + this.state.startIndex - prevIndex && this.igxForOf[i] !== undefined; i++) {\n /** @type {?} */\n var input = this.igxForOf[i];\n /** @type {?} */\n var embView = this._embeddedViews.shift();\n /** @type {?} */\n var cntx = embView.context;\n cntx.$implicit = input;\n cntx.index = this.getContextIndex(input);\n cntx.count = this.igxForOf.length;\n /** @type {?} */\n var view = this.dc.instance._vcr.detach(0);\n this.dc.instance._vcr.insert(view);\n this._embeddedViews.push(embView);\n }\n };\n /**\n * @hidden\n * The function applies an optimized state change for scrolling up/left employing context change with view rearrangement\n */\n /**\n * @hidden\n * The function applies an optimized state change for scrolling up/left employing context change with view rearrangement\n * @protected\n * @param {?} prevIndex\n * @return {?}\n */\n IgxForOfDirective.prototype.moveApplyScrollPrev = /**\n * @hidden\n * The function applies an optimized state change for scrolling up/left employing context change with view rearrangement\n * @protected\n * @param {?} prevIndex\n * @return {?}\n */\n function (prevIndex) {\n for (var i = prevIndex - 1; i >= this.state.startIndex && this.igxForOf[i] !== undefined; i--) {\n /** @type {?} */\n var input = this.igxForOf[i];\n /** @type {?} */\n var embView = this._embeddedViews.pop();\n /** @type {?} */\n var cntx = embView.context;\n cntx.$implicit = input;\n cntx.index = this.getContextIndex(input);\n /** @type {?} */\n var view = this.dc.instance._vcr.detach(this.dc.instance._vcr.length - 1);\n this.dc.instance._vcr.insert(view, 0);\n this._embeddedViews.unshift(embView);\n }\n };\n /**\n * @hidden\n */\n /**\n * @hidden\n * @protected\n * @param {?} input\n * @return {?}\n */\n IgxForOfDirective.prototype.getContextIndex = /**\n * @hidden\n * @protected\n * @param {?} input\n * @return {?}\n */\n function (input) {\n return this.isRemote ? this.state.startIndex + this.igxForOf.indexOf(input) : this.igxForOf.indexOf(input);\n };\n /**\n * @hidden\n * The function applies an optimized state change through context change for each view\n */\n /**\n * @hidden\n * The function applies an optimized state change through context change for each view\n * @protected\n * @return {?}\n */\n IgxForOfDirective.prototype.fixedApplyScroll = /**\n * @hidden\n * The function applies an optimized state change through context change for each view\n * @protected\n * @return {?}\n */\n function () {\n /** @type {?} */\n var j = 0;\n /** @type {?} */\n var endIndex = this.state.startIndex + this.state.chunkSize;\n for (var i = this.state.startIndex; i < endIndex && this.igxForOf[i] !== undefined; i++) {\n /** @type {?} */\n var input = this.igxForOf[i];\n /** @type {?} */\n var embView = this._embeddedViews[j++];\n /** @type {?} */\n var cntx = ((/** @type {?} */ (embView))).context;\n cntx.$implicit = input;\n cntx.index = this.getContextIndex(input);\n cntx.count = this.igxForOf.length;\n }\n };\n /**\n * @hidden\n * Function that is called when scrolling horizontally\n */\n /**\n * @hidden\n * Function that is called when scrolling horizontally\n * @protected\n * @param {?} event\n * @return {?}\n */\n IgxForOfDirective.prototype.onHScroll = /**\n * @hidden\n * Function that is called when scrolling horizontally\n * @protected\n * @param {?} event\n * @return {?}\n */\n function (event) {\n /* in certain situations this may be called when no scrollbar is visible */\n if (!parseInt(this.scrollComponent.nativeElement.children[0].style.width, 10)) {\n return;\n }\n /** @type {?} */\n var prevStartIndex = this.state.startIndex;\n // Updating horizontal chunks\n /** @type {?} */\n var scrollOffset = this.fixedUpdateAllElements(event.target.scrollLeft);\n this.dc.instance._viewContainer.element.nativeElement.style.left = -scrollOffset + 'px';\n this.dc.changeDetectorRef.detectChanges();\n if (prevStartIndex !== this.state.startIndex) {\n this.onChunkLoad.emit(this.state);\n }\n };\n Object.defineProperty(IgxForOfDirective.prototype, \"igxForTrackBy\", {\n /**\n * Gets the function used to track changes in the items collection.\n * By default the object references are compared. However this can be optimized if you have unique identifier\n * value that can be used for the comparison instead of the object ref or if you have some other property values\n * in the item object that should be tracked for changes.\n * This option is similar to ngForTrackBy.\n * ```typescript\n * const trackFunc = this.parentVirtDir.igxForTrackBy;\n * ```\n */\n get: /**\n * Gets the function used to track changes in the items collection.\n * By default the object references are compared. However this can be optimized if you have unique identifier\n * value that can be used for the comparison instead of the object ref or if you have some other property values\n * in the item object that should be tracked for changes.\n * This option is similar to ngForTrackBy.\n * ```typescript\n * const trackFunc = this.parentVirtDir.igxForTrackBy;\n * ```\n * @return {?}\n */\n function () { return this._trackByFn; },\n /**\n * Sets the function used to track changes in the items collection.\n * This function can be set in scenarios where you want to optimize or\n * customize the tracking of changes for the items in the collection.\n * The igxForTrackBy function takes the index and the current item as arguments and needs to return the unique identifier for this item.\n * ```typescript\n * this.parentVirtDir.igxForTrackBy = (index, item) => {\n * return item.id + item.width;\n * };\n * ```\n */\n set: /**\n * Sets the function used to track changes in the items collection.\n * This function can be set in scenarios where you want to optimize or\n * customize the tracking of changes for the items in the collection.\n * The igxForTrackBy function takes the index and the current item as arguments and needs to return the unique identifier for this item.\n * ```typescript\n * this.parentVirtDir.igxForTrackBy = (index, item) => {\n * return item.id + item.width;\n * };\n * ```\n * @param {?} fn\n * @return {?}\n */\n function (fn) { this._trackByFn = fn; },\n enumerable: true,\n configurable: true\n });\n /**\n * @hidden\n */\n /**\n * @hidden\n * @protected\n * @return {?}\n */\n IgxForOfDirective.prototype._applyChanges = /**\n * @hidden\n * @protected\n * @return {?}\n */\n function () {\n /** @type {?} */\n var prevChunkSize = this.state.chunkSize;\n this.applyChunkSizeChange();\n this._recalcScrollBarSize();\n if (this.igxForOf && this.igxForOf.length && this.dc) {\n /** @type {?} */\n var embeddedViewCopy = Object.assign([], this._embeddedViews);\n /** @type {?} */\n var startIndex = this.state.startIndex;\n /** @type {?} */\n var endIndex = this.state.chunkSize + this.state.startIndex;\n if (this.isRemote) {\n startIndex = 0;\n endIndex = this.igxForOf.length;\n }\n for (var i = startIndex; i < endIndex && this.igxForOf[i] !== undefined; i++) {\n /** @type {?} */\n var input = this.igxForOf[i];\n /** @type {?} */\n var embView = embeddedViewCopy.shift();\n /** @type {?} */\n var cntx = ((/** @type {?} */ (embView))).context;\n cntx.$implicit = input;\n cntx.index = this.getContextIndex(input);\n cntx.count = this.igxForOf.length;\n }\n if (prevChunkSize !== this.state.chunkSize) {\n this.onChunkLoad.emit(this.state);\n }\n }\n };\n /**\n * @hidden\n */\n /**\n * @hidden\n * @protected\n * @return {?}\n */\n IgxForOfDirective.prototype._calcMaxBrowserHeight = /**\n * @hidden\n * @protected\n * @return {?}\n */\n function () {\n /** @type {?} */\n var div = document.createElement('div');\n /** @type {?} */\n var style = div.style;\n style.position = 'absolute';\n style.top = '9999999999999999px';\n document.body.appendChild(div);\n /** @type {?} */\n var size = Math.abs(div.getBoundingClientRect()['top']);\n document.body.removeChild(div);\n return size;\n };\n /**\n * @hidden\n * Recalculates the chunkSize based on current startIndex and returns the new size.\n * This should be called after this.state.startIndex is updated, not before.\n */\n /**\n * @hidden\n * Recalculates the chunkSize based on current startIndex and returns the new size.\n * This should be called after this.state.startIndex is updated, not before.\n * @protected\n * @return {?}\n */\n IgxForOfDirective.prototype._calculateChunkSize = /**\n * @hidden\n * Recalculates the chunkSize based on current startIndex and returns the new size.\n * This should be called after this.state.startIndex is updated, not before.\n * @protected\n * @return {?}\n */\n function () {\n /** @type {?} */\n var chunkSize = 0;\n if (this.igxForContainerSize !== null && this.igxForContainerSize !== undefined) {\n if (!this.sizesCache) {\n this.initSizesCache(this.igxForOf);\n }\n chunkSize = this._calcMaxChunkSize();\n if (this.igxForOf && chunkSize > this.igxForOf.length) {\n chunkSize = this.igxForOf.length;\n }\n }\n else {\n if (this.igxForOf) {\n chunkSize = this.igxForOf.length;\n }\n }\n return chunkSize;\n };\n /**\n * @hidden\n */\n /**\n * @hidden\n * @protected\n * @param {?} viewref\n * @param {?} nodeName\n * @return {?}\n */\n IgxForOfDirective.prototype.getElement = /**\n * @hidden\n * @protected\n * @param {?} viewref\n * @param {?} nodeName\n * @return {?}\n */\n function (viewref, nodeName) {\n /** @type {?} */\n var elem = viewref.element.nativeElement.parentNode.getElementsByTagName(nodeName);\n return elem.length > 0 ? elem[0] : null;\n };\n /**\n * @hidden\n */\n /**\n * @hidden\n * @protected\n * @param {?} items\n * @return {?}\n */\n IgxForOfDirective.prototype.initSizesCache = /**\n * @hidden\n * @protected\n * @param {?} items\n * @return {?}\n */\n function (items) {\n /** @type {?} */\n var totalSize = 0;\n /** @type {?} */\n var size = 0;\n /** @type {?} */\n var dimension = this.igxForScrollOrientation === 'horizontal' ?\n this.igxForSizePropName : 'height';\n /** @type {?} */\n var i = 0;\n this.sizesCache = [];\n this.heightCache = [];\n this.sizesCache.push(0);\n /** @type {?} */\n var count = this.isRemote ? this.totalItemCount : items.length;\n for (i; i < count; i++) {\n if (dimension === 'height') {\n // cols[i][dimension] = parseInt(this.igxForItemSize, 10) || 0;\n size = parseInt(this.igxForItemSize, 10) || 0;\n this.heightCache.push(size);\n }\n else {\n size = this._getItemSize(items[i], dimension);\n }\n totalSize += size;\n this.sizesCache.push(totalSize);\n }\n return totalSize;\n };\n /**\n * @protected\n * @return {?}\n */\n IgxForOfDirective.prototype._updateSizeCache = /**\n * @protected\n * @return {?}\n */\n function () {\n if (this.igxForScrollOrientation === 'horizontal') {\n this.initSizesCache(this.igxForOf);\n return;\n }\n /** @type {?} */\n var oldHeight = this.heightCache.length > 0 ? this.heightCache.reduce(function (acc, val) { return acc + val; }) : 0;\n /** @type {?} */\n var newHeight = this.initSizesCache(this.igxForOf);\n /** @type {?} */\n var diff = oldHeight - newHeight;\n // if data has been changed while container is scrolled\n // should update scroll top/left according to change so that same startIndex is in view\n if (Math.abs(diff) > 0 && this.scrollPosition > 0) {\n this.recalcUpdateSizes();\n /** @type {?} */\n var offset = parseInt(this.dc.instance._viewContainer.element.nativeElement.style.top, 10);\n this.scrollPosition = this.sizesCache[this.state.startIndex] - offset;\n }\n };\n /**\n * @hidden\n */\n /**\n * @hidden\n * @protected\n * @return {?}\n */\n IgxForOfDirective.prototype._calcMaxChunkSize = /**\n * @hidden\n * @protected\n * @return {?}\n */\n function () {\n var _this = this;\n /** @type {?} */\n var i = 0;\n /** @type {?} */\n var length = 0;\n /** @type {?} */\n var maxLength = 0;\n /** @type {?} */\n var arr = [];\n /** @type {?} */\n var sum = 0;\n /** @type {?} */\n var availableSize = parseInt(this.igxForContainerSize, 10);\n if (!availableSize) {\n return 0;\n }\n /** @type {?} */\n var dimension = this.igxForScrollOrientation === 'horizontal' ?\n this.igxForSizePropName : 'height';\n /** @type {?} */\n var reducer = function (accumulator, currentItem) { return accumulator + _this._getItemSize(currentItem, dimension); };\n for (i; i < this.igxForOf.length; i++) {\n /** @type {?} */\n var item = this.igxForOf[i];\n if (dimension === 'height') {\n item = { value: this.igxForOf[i], height: this.heightCache[i] };\n }\n /** @type {?} */\n var size = dimension === 'height' ?\n this.heightCache[i] :\n this._getItemSize(item, dimension);\n sum = arr.reduce(reducer, size);\n if (sum < availableSize) {\n arr.push(item);\n length = arr.length;\n if (i === this.igxForOf.length - 1) {\n // reached end without exceeding\n // include prev items until size is filled or first item is reached.\n /** @type {?} */\n var curItem = dimension === 'height' ? arr[0].value : arr[0];\n /** @type {?} */\n var prevIndex = this.igxForOf.indexOf(curItem) - 1;\n while (prevIndex >= 0 && sum <= availableSize) {\n curItem = dimension === 'height' ? arr[0].value : arr[0];\n prevIndex = this.igxForOf.indexOf(curItem) - 1;\n /** @type {?} */\n var prevItem = this.igxForOf[prevIndex];\n /** @type {?} */\n var prevSize = dimension === 'height' ?\n this.heightCache[prevIndex] :\n parseInt(prevItem[dimension], 10);\n sum = arr.reduce(reducer, prevSize);\n arr.unshift(prevItem);\n length = arr.length;\n }\n }\n }\n else {\n arr.push(item);\n length = arr.length + 1;\n arr.shift();\n }\n if (length > maxLength) {\n maxLength = length;\n }\n }\n return maxLength;\n };\n /**\n * @hidden\n */\n /**\n * @hidden\n * @protected\n * @param {?} left\n * @param {?} set\n * @param {?} index\n * @return {?}\n */\n IgxForOfDirective.prototype.getIndexAt = /**\n * @hidden\n * @protected\n * @param {?} left\n * @param {?} set\n * @param {?} index\n * @return {?}\n */\n function (left, set, index) {\n /** @type {?} */\n var start = 0;\n /** @type {?} */\n var end = set.length - 1;\n if (left === 0) {\n return 0;\n }\n while (start <= end) {\n /** @type {?} */\n var midIdx = Math.floor((start + end) / 2);\n /** @type {?} */\n var midLeft = set[midIdx];\n /** @type {?} */\n var cmp = left - midLeft;\n if (cmp > 0) {\n start = midIdx + 1;\n }\n else if (cmp < 0) {\n end = midIdx - 1;\n }\n else {\n return midIdx;\n }\n }\n return end;\n };\n /**\n * @protected\n * @return {?}\n */\n IgxForOfDirective.prototype._recalcScrollBarSize = /**\n * @protected\n * @return {?}\n */\n function () {\n /** @type {?} */\n var count = this.isRemote ? this.totalItemCount : (this.igxForOf ? this.igxForOf.length : 0);\n this.dc.instance.notVirtual = !(this.igxForContainerSize && this.dc && this.state.chunkSize < count);\n /** @type {?} */\n var scrollable = this.isScrollable();\n if (this.igxForScrollOrientation === 'horizontal') {\n /** @type {?} */\n var totalWidth = this.igxForContainerSize ? this.initSizesCache(this.igxForOf) : 0;\n this.scrollComponent.nativeElement.style.width = this.igxForContainerSize + 'px';\n this.scrollComponent.size = totalWidth;\n if (totalWidth <= parseInt(this.igxForContainerSize, 10)) {\n this.scrollPosition = 0;\n // Need to reset the scrollAmount value here, because horizontalScrollBar is hidden, therefore\n // onScroll event handler for VirtualHelperBaseDirective will not be called\n this.scrollComponent.scrollAmount = 0;\n }\n }\n if (this.igxForScrollOrientation === 'vertical') {\n this.scrollComponent.nativeElement.style.height = parseInt(this.igxForContainerSize, 10) + 'px';\n this.scrollComponent.size = this._calcHeight();\n if (this.scrollComponent.size <= parseInt(this.igxForContainerSize, 10)) {\n this.scrollPosition = 0;\n // Need to reset the scrollAmount value here, because verticalScrollBar is hidden, therefore\n // onScroll event handler for VirtualHelperBaseDirective will not be called\n this.scrollComponent.scrollAmount = 0;\n }\n }\n if (scrollable !== this.isScrollable()) {\n // scrollbar visibility has changed\n this.onScrollbarVisibilityChanged.emit();\n }\n };\n /**\n * @protected\n * @return {?}\n */\n IgxForOfDirective.prototype._calcHeight = /**\n * @protected\n * @return {?}\n */\n function () {\n /** @type {?} */\n var height;\n if (this.heightCache) {\n height = this.heightCache.reduce(function (acc, val) { return acc + val; }, 0);\n }\n else {\n height = this.initSizesCache(this.igxForOf);\n }\n this._virtHeight = height;\n if (height > this._maxHeight) {\n this._virtHeightRatio = height / this._maxHeight;\n height = this._maxHeight;\n }\n return height;\n };\n /**\n * @protected\n * @param {?} changes\n * @return {?}\n */\n IgxForOfDirective.prototype._recalcOnContainerChange = /**\n * @protected\n * @param {?} changes\n * @return {?}\n */\n function (changes) {\n this.dc.instance._viewContainer.element.nativeElement.style.top = '0px';\n this.dc.instance._viewContainer.element.nativeElement.style.left = '0px';\n /** @type {?} */\n var prevChunkSize = this.state.chunkSize;\n this.applyChunkSizeChange();\n this._recalcScrollBarSize();\n if (prevChunkSize !== this.state.chunkSize) {\n this.onChunkLoad.emit(this.state);\n }\n if (this.sizesCache && this.igxForScrollOrientation === 'horizontal') {\n // Updating horizontal chunks and offsets based on the new scrollLeft\n /** @type {?} */\n var scrollOffset = this.fixedUpdateAllElements(this.scrollPosition);\n this.dc.instance._viewContainer.element.nativeElement.style.left = -scrollOffset + 'px';\n }\n };\n /**\n * @hidden\n * Removes an elemenet from the embedded views and updates chunkSize.\n */\n /**\n * @hidden\n * Removes an elemenet from the embedded views and updates chunkSize.\n * @protected\n * @return {?}\n */\n IgxForOfDirective.prototype.removeLastElem = /**\n * @hidden\n * Removes an elemenet from the embedded views and updates chunkSize.\n * @protected\n * @return {?}\n */\n function () {\n /** @type {?} */\n var oldElem = this._embeddedViews.pop();\n this.onBeforeViewDestroyed.emit(oldElem);\n oldElem.destroy();\n this.state.chunkSize--;\n };\n /**\n * @hidden\n * If there exists an element that we can create embedded view for creates it, appends it and updates chunkSize\n */\n /**\n * @hidden\n * If there exists an element that we can create embedded view for creates it, appends it and updates chunkSize\n * @protected\n * @return {?}\n */\n IgxForOfDirective.prototype.addLastElem = /**\n * @hidden\n * If there exists an element that we can create embedded view for creates it, appends it and updates chunkSize\n * @protected\n * @return {?}\n */\n function () {\n var _this = this;\n /** @type {?} */\n var elemIndex = this.state.startIndex + this.state.chunkSize;\n if (!this.isRemote && !this.igxForOf) {\n return;\n }\n if (elemIndex >= this.igxForOf.length) {\n elemIndex = this.igxForOf.length - this.state.chunkSize;\n }\n /** @type {?} */\n var input = this.igxForOf[elemIndex];\n /** @type {?} */\n var embeddedView = this.dc.instance._vcr.createEmbeddedView(this._template, new IgxForOfContext(input, this.getContextIndex(input), this.igxForOf.length));\n this._embeddedViews.push(embeddedView);\n this.state.chunkSize++;\n this._zone.run(function () {\n _this.cdr.markForCheck();\n });\n };\n /**\n * Recalculates chunkSize and adds/removes elements if need due to the change.\n * this.state.chunkSize is updated in @addLastElem() or @removeLastElem()\n */\n /**\n * Recalculates chunkSize and adds/removes elements if need due to the change.\n * this.state.chunkSize is updated in \\@addLastElem() or \\@removeLastElem()\n * @protected\n * @return {?}\n */\n IgxForOfDirective.prototype.applyChunkSizeChange = /**\n * Recalculates chunkSize and adds/removes elements if need due to the change.\n * this.state.chunkSize is updated in \\@addLastElem() or \\@removeLastElem()\n * @protected\n * @return {?}\n */\n function () {\n /** @type {?} */\n var chunkSize = this.isRemote ? (this.igxForOf ? this.igxForOf.length : 0) : this._calculateChunkSize();\n if (chunkSize > this.state.chunkSize) {\n /** @type {?} */\n var diff = chunkSize - this.state.chunkSize;\n for (var i = 0; i < diff; i++) {\n this.addLastElem();\n }\n }\n else if (chunkSize < this.state.chunkSize) {\n /** @type {?} */\n var diff = this.state.chunkSize - chunkSize;\n for (var i = 0; i < diff; i++) {\n this.removeLastElem();\n }\n }\n };\n /**\n * @protected\n * @return {?}\n */\n IgxForOfDirective.prototype._updateScrollOffset = /**\n * @protected\n * @return {?}\n */\n function () {\n if (this.igxForScrollOrientation === 'horizontal') {\n this._updateHScrollOffset();\n }\n else {\n this._updateVScrollOffset();\n }\n };\n /**\n * @private\n * @return {?}\n */\n IgxForOfDirective.prototype._updateVScrollOffset = /**\n * @private\n * @return {?}\n */\n function () {\n /** @type {?} */\n var scrollOffset = 0;\n /** @type {?} */\n var currentScrollTop = this.scrollPosition;\n if (this._virtHeightRatio !== 1) {\n this._calcVirtualScrollTop(this.scrollPosition);\n currentScrollTop = this._virtScrollTop;\n }\n /** @type {?} */\n var vScroll = this.scrollComponent.nativeElement;\n scrollOffset = vScroll && this.scrollComponent.size ?\n currentScrollTop - this.sizesCache[this.state.startIndex] : 0;\n this.dc.instance._viewContainer.element.nativeElement.style.top = -(scrollOffset) + 'px';\n };\n /**\n * @protected\n * @param {?} scrollTop\n * @return {?}\n */\n IgxForOfDirective.prototype._calcVirtualScrollTop = /**\n * @protected\n * @param {?} scrollTop\n * @return {?}\n */\n function (scrollTop) {\n /** @type {?} */\n var containerSize = parseInt(this.igxForContainerSize, 10);\n /** @type {?} */\n var maxRealScrollTop = this.scrollComponent.size - containerSize;\n /** @type {?} */\n var realPercentScrolled = maxRealScrollTop !== 0 ? scrollTop / maxRealScrollTop : 0;\n /** @type {?} */\n var maxVirtScrollTop = this._virtHeight - containerSize;\n this._virtScrollTop = realPercentScrolled * maxVirtScrollTop;\n };\n /**\n * @private\n * @return {?}\n */\n IgxForOfDirective.prototype._updateHScrollOffset = /**\n * @private\n * @return {?}\n */\n function () {\n /** @type {?} */\n var scrollOffset = 0;\n scrollOffset = this.scrollComponent.nativeElement &&\n this.scrollComponent.size ?\n this.scrollPosition - this.sizesCache[this.state.startIndex] : 0;\n this.dc.instance._viewContainer.element.nativeElement.style.left = -scrollOffset + 'px';\n };\n /**\n * @private\n * @param {?} item\n * @param {?} dimension\n * @return {?}\n */\n IgxForOfDirective.prototype._getItemSize = /**\n * @private\n * @param {?} item\n * @param {?} dimension\n * @return {?}\n */\n function (item, dimension) {\n /** @type {?} */\n var dim = item[dimension];\n return typeof dim === 'number' ? dim : parseInt(this.igxForItemSize, 10) || 0;\n };\n IgxForOfDirective.decorators = [\n { type: Directive, args: [{ selector: '[igxFor][igxForOf]' },] }\n ];\n /** @nocollapse */\n IgxForOfDirective.ctorParameters = function () { return [\n { type: ViewContainerRef },\n { type: TemplateRef },\n { type: IterableDiffers },\n { type: ComponentFactoryResolver },\n { type: ChangeDetectorRef },\n { type: NgZone },\n { type: IgxForOfScrollSyncService }\n ]; };\n IgxForOfDirective.propDecorators = {\n igxForOf: [{ type: Input }],\n igxForSizePropName: [{ type: Input }],\n igxForScrollOrientation: [{ type: Input }],\n igxForScrollContainer: [{ type: Input }],\n igxForContainerSize: [{ type: Input }],\n igxForItemSize: [{ type: Input }],\n onChunkLoad: [{ type: Output }],\n onScrollbarVisibilityChanged: [{ type: Output }],\n onContentSizeChange: [{ type: Output }],\n onDataChanged: [{ type: Output }],\n onBeforeViewDestroyed: [{ type: Output }],\n onChunkPreload: [{ type: Output }],\n igxForTrackBy: [{ type: Input }]\n };\n return IgxForOfDirective;\n}());\n/**\n * @param {?} type\n * @return {?}\n */\nfunction getTypeNameForDebugging(type) {\n /** @type {?} */\n var name = 'name';\n return type[name] || typeof type;\n}\n/**\n * @template T\n */\nvar IgxGridForOfDirective = /** @class */ (function (_super) {\n __extends(IgxGridForOfDirective, _super);\n function IgxGridForOfDirective(_viewContainer, _template, _differs, resolver, cdr, _zone, syncScrollService, syncService) {\n var _this = _super.call(this, _viewContainer, _template, _differs, resolver, cdr, _zone, syncScrollService) || this;\n _this.syncScrollService = syncScrollService;\n _this.syncService = syncService;\n /**\n * @hidden \\@internal\n * An event that is emitted after data has been changed but before the view is refreshed\n */\n _this.onDataChanging = new EventEmitter();\n return _this;\n }\n Object.defineProperty(IgxGridForOfDirective.prototype, \"igxGridForOf\", {\n get: /**\n * @return {?}\n */\n function () {\n return this.igxForOf;\n },\n set: /**\n * @param {?} value\n * @return {?}\n */\n function (value) {\n this.igxForOf = value;\n },\n enumerable: true,\n configurable: true\n });\n /**\n * @return {?}\n */\n IgxGridForOfDirective.prototype.ngOnInit = /**\n * @return {?}\n */\n function () {\n this.syncService.setMaster(this);\n _super.prototype.ngOnInit.call(this);\n this.removeScrollEventListeners();\n };\n /**\n * @param {?} changes\n * @return {?}\n */\n IgxGridForOfDirective.prototype.ngOnChanges = /**\n * @param {?} changes\n * @return {?}\n */\n function (changes) {\n /** @type {?} */\n var forOf = 'igxGridForOf';\n this.syncService.setMaster(this);\n if (forOf in changes) {\n /** @type {?} */\n var value = changes[forOf].currentValue;\n if (!this._differ && value) {\n try {\n this._differ = this._differs.find(value).create(this.igxForTrackBy);\n }\n catch (e) {\n throw new Error(\"Cannot find a differ supporting object \\\"\" + value + \"\\\" of type \\\"\" + getTypeNameForDebugging(value) + \"\\\".\\n NgFor only supports binding to Iterables such as Arrays.\");\n }\n }\n }\n /** @type {?} */\n var defaultItemSize = 'igxForItemSize';\n if (defaultItemSize in changes && !changes[defaultItemSize].firstChange &&\n this.igxForScrollOrientation === 'vertical' && this.igxForOf) {\n // handle default item size changed.\n this.initSizesCache(this.igxForOf);\n }\n /** @type {?} */\n var containerSize = 'igxForContainerSize';\n if (containerSize in changes && !changes[containerSize].firstChange && this.igxForOf) {\n this._recalcOnContainerChange(changes);\n }\n };\n Object.defineProperty(IgxGridForOfDirective.prototype, \"sizesCache\", {\n /**\n * @hidden\n * @internal\n */\n get: /**\n * @hidden\n * \\@internal\n * @return {?}\n */\n function () {\n if (this.syncService.isMaster(this)) {\n return this._sizesCache;\n }\n return this.syncService.sizesCache(this.igxForScrollOrientation);\n },\n /**\n * @hidden\n * @internal\n */\n set: /**\n * @hidden\n * \\@internal\n * @param {?} value\n * @return {?}\n */\n function (value) {\n this._sizesCache = value;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxGridForOfDirective.prototype, \"itemsDimension\", {\n get: /**\n * @protected\n * @return {?}\n */\n function () {\n return this.igxForScrollOrientation === 'horizontal' ? this.igxForSizePropName : 'height';\n },\n enumerable: true,\n configurable: true\n });\n /**\n * @protected\n * @param {?} item\n * @return {?}\n */\n IgxGridForOfDirective.prototype.getItemSize = /**\n * @protected\n * @param {?} item\n * @return {?}\n */\n function (item) {\n /** @type {?} */\n var size = 0;\n /** @type {?} */\n var dimension = this.igxForScrollOrientation === 'horizontal' ?\n this.igxForSizePropName : 'height';\n if (dimension === 'height') {\n size = parseInt(this.igxForItemSize, 10) || 0;\n if (item && item.summaries) {\n size = item.max;\n }\n else if (item && item.groups && item.height) {\n size = item.height;\n }\n }\n else {\n size = parseInt(item[dimension], 10) || 0;\n }\n return size;\n };\n /**\n * @protected\n * @param {?} items\n * @return {?}\n */\n IgxGridForOfDirective.prototype.initSizesCache = /**\n * @protected\n * @param {?} items\n * @return {?}\n */\n function (items) {\n if (!this.syncService.isMaster(this)) {\n /** @type {?} */\n var masterSizesCache = this.syncService.sizesCache(this.igxForScrollOrientation);\n return masterSizesCache[masterSizesCache.length - 1];\n }\n /** @type {?} */\n var totalSize = 0;\n /** @type {?} */\n var size = 0;\n /** @type {?} */\n var i = 0;\n this.sizesCache = [];\n this.heightCache = [];\n this.sizesCache.push(0);\n /** @type {?} */\n var count = this.isRemote ? this.totalItemCount : items.length;\n for (i; i < count; i++) {\n size = this.getItemSize(items[i]);\n if (this.itemsDimension === 'height') {\n this.heightCache.push(size);\n }\n totalSize += size;\n this.sizesCache.push(totalSize);\n }\n return totalSize;\n };\n /**\n * @protected\n * @param {?=} changes\n * @return {?}\n */\n IgxGridForOfDirective.prototype._updateSizeCache = /**\n * @protected\n * @param {?=} changes\n * @return {?}\n */\n function (changes) {\n var _this = this;\n if (changes === void 0) { changes = null; }\n if (this.igxForScrollOrientation === 'horizontal') {\n this.initSizesCache(this.igxForOf);\n return;\n }\n /** @type {?} */\n var oldHeight = this.heightCache.length > 0 ? this.heightCache.reduce(function (acc, val) { return acc + val; }) : 0;\n /** @type {?} */\n var newHeight = oldHeight;\n if (changes && !this.isRemote) {\n newHeight = this.handleCacheChanges(changes);\n }\n else {\n newHeight = this.initSizesCache(this.igxForOf);\n }\n /** @type {?} */\n var diff = oldHeight - newHeight;\n // if data has been changed while container is scrolled\n // should update scroll top/left according to change so that same startIndex is in view\n if (Math.abs(diff) > 0) {\n // TODO: This code can be removed. However tests need to be rewritten in a way that they wait for ResizeObserved to complete.\n // So leaving as is for the moment.\n requestAnimationFrame(function () {\n _this.recalcUpdateSizes();\n /** @type {?} */\n var offset = parseInt(_this.dc.instance._viewContainer.element.nativeElement.style.top, 10);\n if (_this.scrollPosition !== 0) {\n _this.scrollPosition = _this.sizesCache[_this.state.startIndex] - offset;\n }\n else {\n _this._updateScrollOffset();\n }\n });\n }\n };\n /**\n * @protected\n * @param {?} changes\n * @return {?}\n */\n IgxGridForOfDirective.prototype.handleCacheChanges = /**\n * @protected\n * @param {?} changes\n * @return {?}\n */\n function (changes) {\n var _this = this;\n /** @type {?} */\n var identityChanges = [];\n /** @type {?} */\n var newHeightCache = [];\n /** @type {?} */\n var newSizesCache = [];\n newSizesCache.push(0);\n /** @type {?} */\n var newHeight = 0;\n // When there are more than one removed items the changes are not reliable so those with identity change should be default size.\n /** @type {?} */\n var numRemovedItems = 0;\n changes.forEachRemovedItem(function () { return numRemovedItems++; });\n // Get the identity changes to determine later if those that have changed their indexes should be assigned default item size.\n changes.forEachIdentityChange(function (item) {\n if (item.currentIndex !== item.previousIndex) {\n // Filter out ones that have not changed their index.\n identityChanges[item.currentIndex] = item;\n }\n });\n // Processing each item that is passed to the igxForOf so far seem to be most reliable. We parse the updated list of items.\n changes.forEachItem(function (item) {\n if (item.previousIndex !== null &&\n (numRemovedItems < 2 || !identityChanges.length || identityChanges[item.currentIndex])) {\n // Reuse cache on those who have previousIndex.\n // When there are more than one removed items currently the changes are not readable so ones with identity change\n // should be racalculated.\n newHeightCache[item.currentIndex] = _this.heightCache[item.previousIndex];\n }\n else {\n // Assign default item size.\n newHeightCache[item.currentIndex] = _this.getItemSize(item.item);\n }\n newSizesCache[item.currentIndex + 1] = newSizesCache[item.currentIndex] + newHeightCache[item.currentIndex];\n newHeight += newHeightCache[item.currentIndex];\n });\n this.heightCache = newHeightCache;\n this.sizesCache = newSizesCache;\n return newHeight;\n };\n /**\n * @hidden\n * @internal\n */\n /**\n * @hidden\n * \\@internal\n * @return {?}\n */\n IgxGridForOfDirective.prototype.assumeMaster = /**\n * @hidden\n * \\@internal\n * @return {?}\n */\n function () {\n this._sizesCache = this.syncService.sizesCache(this.igxForScrollOrientation);\n this.syncService.setMaster(this, true);\n };\n /**\n * @return {?}\n */\n IgxGridForOfDirective.prototype.ngDoCheck = /**\n * @return {?}\n */\n function () {\n if (this._differ) {\n /** @type {?} */\n var changes = this._differ.diff(this.igxForOf);\n if (changes) {\n /** @type {?} */\n var args = {\n containerSize: this.igxForContainerSize\n };\n this.onDataChanging.emit(args);\n // re-init cache.\n if (!this.igxForOf) {\n this.igxForOf = [];\n }\n /* we need to reset the master dir if all rows are removed\n (e.g. because of filtering); if all columns are hidden, rows are\n still rendered empty, so we should not reset master */\n if (!this.igxForOf.length &&\n this.igxForScrollOrientation === 'vertical') {\n this.syncService.resetMaster();\n }\n this.syncService.setMaster(this);\n this.igxForContainerSize = args.containerSize;\n this._updateSizeCache(changes);\n this._applyChanges();\n this._updateScrollOffset();\n this.onDataChanged.emit();\n }\n }\n };\n /**\n * @param {?} event\n * @return {?}\n */\n IgxGridForOfDirective.prototype.onScroll = /**\n * @param {?} event\n * @return {?}\n */\n function (event) {\n var _this = this;\n if (!parseInt(this.scrollComponent.nativeElement.style.height, 10)) {\n return;\n }\n if (!this._bScrollInternal) {\n this._calcVirtualScrollTop(event.target.scrollTop);\n }\n else {\n this._bScrollInternal = false;\n }\n /** @type {?} */\n var scrollOffset = this.fixedUpdateAllElements(this._virtScrollTop);\n this.dc.instance._viewContainer.element.nativeElement.style.top = -(scrollOffset) + 'px';\n this._zone.onStable.pipe(first$1()).subscribe(function () {\n _this.recalcUpdateSizes();\n });\n this.cdr.markForCheck();\n };\n /**\n * @param {?} scrollAmount\n * @return {?}\n */\n IgxGridForOfDirective.prototype.onHScroll = /**\n * @param {?} scrollAmount\n * @return {?}\n */\n function (scrollAmount) {\n /* in certain situations this may be called when no scrollbar is visible */\n if (!this.scrollComponent || !parseInt(this.scrollComponent.nativeElement.children[0].style.width, 10)) {\n return;\n }\n // Updating horizontal chunks\n /** @type {?} */\n var scrollOffset = this.fixedUpdateAllElements(scrollAmount);\n this.dc.instance._viewContainer.element.nativeElement.style.left = -scrollOffset + 'px';\n };\n /**\n * @protected\n * @return {?}\n */\n IgxGridForOfDirective.prototype.addLastElem = /**\n * @protected\n * @return {?}\n */\n function () {\n /** @type {?} */\n var elemIndex = this.state.startIndex + this.state.chunkSize;\n if (!this.isRemote && !this.igxForOf) {\n return;\n }\n if (elemIndex >= this.igxForOf.length) {\n elemIndex = this.igxForOf.length - this.state.chunkSize;\n }\n /** @type {?} */\n var input = this.igxForOf[elemIndex];\n /** @type {?} */\n var embeddedView = this.dc.instance._vcr.createEmbeddedView(this._template, new IgxForOfContext(input, this.getContextIndex(input), this.igxForOf.length));\n this._embeddedViews.push(embeddedView);\n this.state.chunkSize++;\n };\n /**\n * @protected\n * @param {?} prevChunkSize\n * @return {?}\n */\n IgxGridForOfDirective.prototype._updateViews = /**\n * @protected\n * @param {?} prevChunkSize\n * @return {?}\n */\n function (prevChunkSize) {\n if (this.igxForOf && this.igxForOf.length && this.dc) {\n /** @type {?} */\n var embeddedViewCopy = Object.assign([], this._embeddedViews);\n /** @type {?} */\n var startIndex = void 0;\n /** @type {?} */\n var endIndex = void 0;\n if (this.isRemote) {\n startIndex = 0;\n endIndex = this.igxForOf.length;\n }\n else {\n startIndex = this.getIndexAt(this.scrollPosition, this.sizesCache, 0);\n if (startIndex + this.state.chunkSize > this.igxForOf.length) {\n startIndex = this.igxForOf.length - this.state.chunkSize;\n }\n this.state.startIndex = startIndex;\n endIndex = this.state.chunkSize + this.state.startIndex;\n }\n for (var i = startIndex; i < endIndex && this.igxForOf[i] !== undefined; i++) {\n /** @type {?} */\n var input = this.igxForOf[i];\n /** @type {?} */\n var embView = embeddedViewCopy.shift();\n /** @type {?} */\n var cntx = ((/** @type {?} */ (embView))).context;\n cntx.$implicit = input;\n cntx.index = this.getContextIndex(input);\n cntx.count = this.igxForOf.length;\n }\n if (prevChunkSize !== this.state.chunkSize) {\n this.onChunkLoad.emit(this.state);\n }\n }\n };\n /**\n * @protected\n * @return {?}\n */\n IgxGridForOfDirective.prototype._applyChanges = /**\n * @protected\n * @return {?}\n */\n function () {\n /** @type {?} */\n var prevChunkSize = this.state.chunkSize;\n this.applyChunkSizeChange();\n this._recalcScrollBarSize();\n this._updateViews(prevChunkSize);\n };\n /**\n * @hidden\n */\n /**\n * @hidden\n * @protected\n * @return {?}\n */\n IgxGridForOfDirective.prototype._calcMaxChunkSize = /**\n * @hidden\n * @protected\n * @return {?}\n */\n function () {\n if (this.syncService.isMaster(this)) {\n return _super.prototype._calcMaxChunkSize.call(this);\n }\n return this.syncService.chunkSize(this.igxForScrollOrientation);\n };\n IgxGridForOfDirective.decorators = [\n { type: Directive, args: [{\n selector: '[igxGridFor][igxGridForOf]'\n },] }\n ];\n /** @nocollapse */\n IgxGridForOfDirective.ctorParameters = function () { return [\n { type: ViewContainerRef },\n { type: TemplateRef },\n { type: IterableDiffers },\n { type: ComponentFactoryResolver },\n { type: ChangeDetectorRef },\n { type: NgZone },\n { type: IgxForOfScrollSyncService },\n { type: IgxForOfSyncService }\n ]; };\n IgxGridForOfDirective.propDecorators = {\n igxGridForOf: [{ type: Input }],\n onDataChanging: [{ type: Output }]\n };\n return IgxGridForOfDirective;\n}(IgxForOfDirective));\n/**\n * @hidden\n */\nvar IgxForOfModule = /** @class */ (function () {\n function IgxForOfModule() {\n }\n IgxForOfModule.decorators = [\n { type: NgModule, args: [{\n declarations: [IgxForOfDirective, IgxGridForOfDirective, DisplayContainerComponent, VirtualHelperComponent,\n HVirtualHelperComponent, VirtualHelperBaseDirective],\n entryComponents: [DisplayContainerComponent, VirtualHelperComponent, HVirtualHelperComponent],\n exports: [IgxForOfDirective, IgxGridForOfDirective],\n imports: [IgxScrollInertiaModule, CommonModule]\n },] }\n ];\n return IgxForOfModule;\n}());\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n/**\n * **Ignite UI for Angular DropDown** -\n * [Documentation](https://www.infragistics.com/products/ignite-ui-angular/angular/components/drop_down.html)\n *\n * The Ignite UI for Angular Drop Down displays a scrollable list of items which may be visually grouped and\n * supports selection of a single item. Clicking or tapping an item selects it and closes the Drop Down\n *\n * Example:\n * ```html\n * \n * \n * {{ item.value }}\n * \n * \n * ```\n */\nvar IgxDropDownComponent = /** @class */ (function (_super) {\n __extends(IgxDropDownComponent, _super);\n function IgxDropDownComponent(elementRef, cdr, selection, _displayDensityOptions) {\n var _this = _super.call(this, elementRef, cdr, _displayDensityOptions) || this;\n _this.elementRef = elementRef;\n _this.cdr = cdr;\n _this.selection = selection;\n _this._displayDensityOptions = _displayDensityOptions;\n _this.destroy$ = new Subject();\n /**\n * Emitted before the dropdown is opened\n *\n * ```html\n * \n * ```\n */\n _this.onOpening = new EventEmitter();\n /**\n * Emitted after the dropdown is opened\n *\n * ```html\n * \n * ```\n */\n _this.onOpened = new EventEmitter();\n /**\n * Emitted before the dropdown is closed\n *\n * ```html\n * \n * ```\n */\n _this.onClosing = new EventEmitter();\n /**\n * Emitted after the dropdown is closed\n *\n * ```html\n * \n * ```\n */\n _this.onClosed = new EventEmitter();\n /**\n * Gets/sets whether items take focus. Disabled by default.\n * When enabled, drop down items gain tab index and are focused when active -\n * this includes activating the selected item when opening the drop down and moving with keyboard navigation.\n *\n * Note: Keep that focus shift in mind when using the igxDropDownItemNavigation directive\n * and ensure it's placed either on each focusable item or a common ancestor to allow it to handle keyboard events.\n *\n * ```typescript\n * // get\n * let dropDownAllowsItemFocus = this.dropdown.allowItemsFocus;\n * ```\n *\n * ```html\n * \n * \n * ```\n */\n _this.allowItemsFocus = false;\n return _this;\n }\n Object.defineProperty(IgxDropDownComponent.prototype, \"focusedItem\", {\n /**\n * @hidden @internal\n */\n get: /**\n * @hidden \\@internal\n * @return {?}\n */\n function () {\n var _this = this;\n if (this.virtDir) {\n return this._focusedItem && this._focusedItem.index !== -1 ?\n (this.children.find(function (e) { return e.index === _this._focusedItem.index; }) || null) :\n null;\n }\n return this._focusedItem;\n },\n set: /**\n * @param {?} value\n * @return {?}\n */\n function (value) {\n if (!value) {\n this.selection.clear(this.id + \"-active\");\n this._focusedItem = null;\n return;\n }\n this._focusedItem = value;\n if (this.virtDir) {\n this._focusedItem = (/** @type {?} */ ({\n value: value.value,\n index: value.index\n }));\n }\n this.selection.set(this.id + \"-active\", new Set([this._focusedItem]));\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxDropDownComponent.prototype, \"id\", {\n get: /**\n * @return {?}\n */\n function () {\n return this._id;\n },\n set: /**\n * @param {?} value\n * @return {?}\n */\n function (value) {\n this.toggleDirective.id = value;\n this.selection.set(value, this.selection.get(this.id));\n this.selection.clear(this.id);\n this.selection.set(value, this.selection.get(this.id + \"-active\"));\n this.selection.clear(this.id + \"-active\");\n this._id = value;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxDropDownComponent.prototype, \"listId\", {\n /** Id of the internal listbox of the drop down */\n get: /**\n * Id of the internal listbox of the drop down\n * @return {?}\n */\n function () {\n return this.id + '-list';\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxDropDownComponent.prototype, \"selectedItem\", {\n /**\n * Get currently selected item\n *\n * ```typescript\n * let currentItem = this.dropdown.selectedItem;\n * ```\n */\n get: /**\n * Get currently selected item\n *\n * ```typescript\n * let currentItem = this.dropdown.selectedItem;\n * ```\n * @return {?}\n */\n function () {\n /** @type {?} */\n var selectedItem = this.selection.first_item(this.id);\n if (selectedItem) {\n return selectedItem;\n }\n return null;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxDropDownComponent.prototype, \"collapsed\", {\n /**\n * Gets if the dropdown is collapsed\n *\n * ```typescript\n * let isCollapsed = this.dropdown.collapsed;\n * ```\n */\n get: /**\n * Gets if the dropdown is collapsed\n *\n * ```typescript\n * let isCollapsed = this.dropdown.collapsed;\n * ```\n * @return {?}\n */\n function () {\n return this.toggleDirective.collapsed;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxDropDownComponent.prototype, \"scrollContainer\", {\n get: /**\n * @protected\n * @return {?}\n */\n function () {\n return this.toggleDirective.element;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxDropDownComponent.prototype, \"collectionLength\", {\n get: /**\n * @protected\n * @return {?}\n */\n function () {\n if (this.virtDir) {\n return this.virtDir.totalItemCount || this.virtDir.igxForOf.length;\n }\n },\n enumerable: true,\n configurable: true\n });\n /**\n * Opens the dropdown\n *\n * ```typescript\n * this.dropdown.open();\n * ```\n */\n /**\n * Opens the dropdown\n *\n * ```typescript\n * this.dropdown.open();\n * ```\n * @param {?=} overlaySettings\n * @return {?}\n */\n IgxDropDownComponent.prototype.open = /**\n * Opens the dropdown\n *\n * ```typescript\n * this.dropdown.open();\n * ```\n * @param {?=} overlaySettings\n * @return {?}\n */\n function (overlaySettings) {\n this.toggleDirective.open(overlaySettings);\n this.updateScrollPosition();\n };\n /**\n * Closes the dropdown\n *\n * ```typescript\n * this.dropdown.close();\n * ```\n */\n /**\n * Closes the dropdown\n *\n * ```typescript\n * this.dropdown.close();\n * ```\n * @return {?}\n */\n IgxDropDownComponent.prototype.close = /**\n * Closes the dropdown\n *\n * ```typescript\n * this.dropdown.close();\n * ```\n * @return {?}\n */\n function () {\n this.toggleDirective.close();\n };\n /**\n * Toggles the dropdown\n *\n * ```typescript\n * this.dropdown.toggle();\n * ```\n */\n /**\n * Toggles the dropdown\n *\n * ```typescript\n * this.dropdown.toggle();\n * ```\n * @param {?=} overlaySettings\n * @return {?}\n */\n IgxDropDownComponent.prototype.toggle = /**\n * Toggles the dropdown\n *\n * ```typescript\n * this.dropdown.toggle();\n * ```\n * @param {?=} overlaySettings\n * @return {?}\n */\n function (overlaySettings) {\n if (this.collapsed || this.toggleDirective.isClosing) {\n this.open(overlaySettings);\n }\n else {\n this.close();\n }\n };\n /**\n * Select an item by index\n * @param index of the item to select; If the drop down uses *igxFor, pass the index in data\n */\n /**\n * Select an item by index\n * @param {?} index of the item to select; If the drop down uses *igxFor, pass the index in data\n * @return {?}\n */\n IgxDropDownComponent.prototype.setSelectedItem = /**\n * Select an item by index\n * @param {?} index of the item to select; If the drop down uses *igxFor, pass the index in data\n * @return {?}\n */\n function (index) {\n if (index < 0 || index >= this.items.length) {\n return;\n }\n /** @type {?} */\n var newSelection;\n if (this.virtDir) {\n newSelection = (/** @type {?} */ ({\n value: this.virtDir.igxForOf[index],\n index: index\n }));\n }\n else {\n newSelection = this.items[index];\n }\n this.selectItem(newSelection);\n };\n /**\n * Navigates to the item on the specified index\n * If the data in the drop-down is virtualized, pass the index of the item in the virtualized data.\n * @param newIndex number\n */\n /**\n * Navigates to the item on the specified index\n * If the data in the drop-down is virtualized, pass the index of the item in the virtualized data.\n * @param {?} index\n * @return {?}\n */\n IgxDropDownComponent.prototype.navigateItem = /**\n * Navigates to the item on the specified index\n * If the data in the drop-down is virtualized, pass the index of the item in the virtualized data.\n * @param {?} index\n * @return {?}\n */\n function (index) {\n var _this = this;\n if (this.virtDir) {\n if (index === -1 || index >= this.collectionLength) {\n return;\n }\n /** @type {?} */\n var direction_1 = index > (this.focusedItem ? this.focusedItem.index : -1) ? Navigate.Down : Navigate.Up;\n /** @type {?} */\n var subRequired = this.isIndexOutOfBounds(index, direction_1);\n this.focusedItem = (/** @type {?} */ ({\n value: this.virtDir.igxForOf[index],\n index: index\n }));\n if (subRequired) {\n this.virtDir.scrollTo(index);\n }\n if (subRequired) {\n this.virtDir.onChunkLoad.pipe(take(1)).subscribe(function () {\n _this.skipHeader(direction_1);\n });\n }\n else {\n this.skipHeader(direction_1);\n }\n }\n else {\n _super.prototype.navigateItem.call(this, index);\n }\n if (this.allowItemsFocus && this.focusedItem) {\n this.focusedItem.element.nativeElement.focus();\n this.cdr.markForCheck();\n }\n };\n /**\n * @private\n * @param {?} index\n * @param {?} direction\n * @return {?}\n */\n IgxDropDownComponent.prototype.isIndexOutOfBounds = /**\n * @private\n * @param {?} index\n * @param {?} direction\n * @return {?}\n */\n function (index, direction) {\n /** @type {?} */\n var virtState = this.virtDir.state;\n /** @type {?} */\n var currentPosition = this.virtDir.getScroll().scrollTop;\n /** @type {?} */\n var itemPosition = this.virtDir.getScrollForIndex(index, direction === Navigate.Down);\n /** @type {?} */\n var indexOutOfChunk = index < virtState.startIndex || index > virtState.chunkSize + virtState.startIndex;\n /** @type {?} */\n var scrollNeeded = direction === Navigate.Down ? currentPosition < itemPosition : currentPosition > itemPosition;\n /** @type {?} */\n var subRequired = indexOutOfChunk || scrollNeeded;\n return subRequired;\n };\n /**\n * @protected\n * @param {?} direction\n * @return {?}\n */\n IgxDropDownComponent.prototype.skipHeader = /**\n * @protected\n * @param {?} direction\n * @return {?}\n */\n function (direction) {\n if (!this.focusedItem) {\n return;\n }\n if (this.focusedItem.isHeader || this.focusedItem.disabled) {\n if (direction === Navigate.Up) {\n this.navigatePrev();\n }\n else {\n this.navigateNext();\n }\n }\n };\n /**\n * @hidden @internal\n */\n /**\n * @hidden \\@internal\n * @return {?}\n */\n IgxDropDownComponent.prototype.updateScrollPosition = /**\n * @hidden \\@internal\n * @return {?}\n */\n function () {\n if (!this.virtDir) {\n return;\n }\n if (!this.selectedItem) {\n this.virtDir.scrollTo(0);\n return;\n }\n /** @type {?} */\n var targetScroll = this.virtDir.getScrollForIndex(this.selectedItem.index);\n /** @type {?} */\n var itemsInView = this.virtDir.igxForContainerSize / this.virtDir.igxForItemSize;\n targetScroll -= (itemsInView / 2 - 1) * this.virtDir.igxForItemSize;\n this.virtDir.getScroll().scrollTop = targetScroll;\n };\n /**\n * @hidden @internal\n */\n /**\n * @hidden \\@internal\n * @param {?} e\n * @return {?}\n */\n IgxDropDownComponent.prototype.onToggleOpening = /**\n * @hidden \\@internal\n * @param {?} e\n * @return {?}\n */\n function (e) {\n this.onOpening.emit(e);\n if (e.cancel) {\n return;\n }\n if (!this.virtDir && this.selectedItem) {\n this.scrollToItem(this.selectedItem);\n }\n if (this.virtDir) {\n this.virtDir.scrollPosition = this._scrollPosition;\n }\n };\n /**\n * @hidden @internal\n */\n /**\n * @hidden \\@internal\n * @return {?}\n */\n IgxDropDownComponent.prototype.onToggleOpened = /**\n * @hidden \\@internal\n * @return {?}\n */\n function () {\n if (this.selectedItem) {\n this.focusedItem = this.selectedItem;\n this._focusedItem.focused = true;\n }\n else if (this.allowItemsFocus) {\n this.navigateFirst();\n }\n this.onOpened.emit();\n };\n /**\n * @hidden @internal\n */\n /**\n * @hidden \\@internal\n * @param {?} e\n * @return {?}\n */\n IgxDropDownComponent.prototype.onToggleClosing = /**\n * @hidden \\@internal\n * @param {?} e\n * @return {?}\n */\n function (e) {\n this.onClosing.emit(e);\n if (this.virtDir) {\n this._scrollPosition = this.virtDir.scrollPosition;\n }\n };\n /**\n * @hidden @internal\n */\n /**\n * @hidden \\@internal\n * @return {?}\n */\n IgxDropDownComponent.prototype.onToggleClosed = /**\n * @hidden \\@internal\n * @return {?}\n */\n function () {\n if (this._focusedItem) {\n this._focusedItem.focused = false;\n }\n this.onClosed.emit();\n };\n /**\n * @hidden @internal\n */\n /**\n * @hidden \\@internal\n * @return {?}\n */\n IgxDropDownComponent.prototype.ngOnDestroy = /**\n * @hidden \\@internal\n * @return {?}\n */\n function () {\n this.destroy$.next(true);\n this.destroy$.complete();\n this.selection.clear(this.id);\n this.selection.clear(this.id + \"-active\");\n };\n /**\n * @protected\n * @param {?} item\n * @return {?}\n */\n IgxDropDownComponent.prototype.scrollToItem = /**\n * @protected\n * @param {?} item\n * @return {?}\n */\n function (item) {\n var _this = this;\n /** @type {?} */\n var itemPosition = this.calculateScrollPosition(item);\n // in IE11 setting sctrollTop is somehow slow and forces dropdown\n // to appear on screen before animation start. As a result dropdown\n // flickers badly. This is why we set scrollTop just a little later\n // allowing animation to start and prevent dropdown flickering\n if (isIE()) {\n setTimeout(function () {\n _this.scrollContainer.scrollTop = (itemPosition);\n }, 1);\n }\n else {\n this.scrollContainer.scrollTop = (itemPosition);\n }\n };\n /** @hidden @internal */\n /**\n * @hidden \\@internal\n * @param {?} item\n * @return {?}\n */\n IgxDropDownComponent.prototype.calculateScrollPosition = /**\n * @hidden \\@internal\n * @param {?} item\n * @return {?}\n */\n function (item) {\n if (!item) {\n return 0;\n }\n /** @type {?} */\n var elementRect = item.element.nativeElement.getBoundingClientRect();\n /** @type {?} */\n var parentRect = this.scrollContainer.getBoundingClientRect();\n /** @type {?} */\n var scrollDelta = parentRect.top - elementRect.top;\n /** @type {?} */\n var scrollPosition = this.scrollContainer.scrollTop - scrollDelta;\n /** @type {?} */\n var dropDownHeight = this.scrollContainer.clientHeight;\n scrollPosition -= dropDownHeight / 2;\n scrollPosition += item.elementHeight / 2;\n return Math.floor(scrollPosition);\n };\n /**\n * @hidden @internal\n */\n /**\n * @hidden \\@internal\n * @return {?}\n */\n IgxDropDownComponent.prototype.ngOnInit = /**\n * @hidden \\@internal\n * @return {?}\n */\n function () {\n this.toggleDirective.id = this.id;\n };\n /**\n * @return {?}\n */\n IgxDropDownComponent.prototype.ngAfterViewInit = /**\n * @return {?}\n */\n function () {\n if (this.virtDir) {\n this.virtDir.igxForItemSize = 28;\n }\n };\n /** Keydown Handler */\n /**\n * Keydown Handler\n * @param {?} key\n * @param {?=} event\n * @return {?}\n */\n IgxDropDownComponent.prototype.onItemActionKey = /**\n * Keydown Handler\n * @param {?} key\n * @param {?=} event\n * @return {?}\n */\n function (key, event) {\n _super.prototype.onItemActionKey.call(this, key, event);\n this.close();\n };\n /**\n * Virtual scroll implementation\n * @hidden @internal\n */\n /**\n * Virtual scroll implementation\n * @hidden \\@internal\n * @return {?}\n */\n IgxDropDownComponent.prototype.navigateFirst = /**\n * Virtual scroll implementation\n * @hidden \\@internal\n * @return {?}\n */\n function () {\n if (this.virtDir) {\n this.navigateItem(0);\n }\n else {\n _super.prototype.navigateFirst.call(this);\n }\n };\n /**\n * @hidden @internal\n */\n /**\n * @hidden \\@internal\n * @return {?}\n */\n IgxDropDownComponent.prototype.navigateLast = /**\n * @hidden \\@internal\n * @return {?}\n */\n function () {\n if (this.virtDir) {\n this.navigateItem(this.virtDir.totalItemCount ? this.virtDir.totalItemCount - 1 : this.virtDir.igxForOf.length - 1);\n }\n else {\n _super.prototype.navigateLast.call(this);\n }\n };\n /**\n * @hidden @internal\n */\n /**\n * @hidden \\@internal\n * @return {?}\n */\n IgxDropDownComponent.prototype.navigateNext = /**\n * @hidden \\@internal\n * @return {?}\n */\n function () {\n if (this.virtDir) {\n this.navigateItem(this._focusedItem ? this._focusedItem.index + 1 : 0);\n }\n else {\n _super.prototype.navigateNext.call(this);\n }\n };\n /**\n * @hidden @internal\n */\n /**\n * @hidden \\@internal\n * @return {?}\n */\n IgxDropDownComponent.prototype.navigatePrev = /**\n * @hidden \\@internal\n * @return {?}\n */\n function () {\n if (this.virtDir) {\n this.navigateItem(this._focusedItem ? this._focusedItem.index - 1 : 0);\n }\n else {\n _super.prototype.navigatePrev.call(this);\n }\n };\n /**\n * Handles the `onSelection` emit and the drop down toggle when selection changes\n * @hidden\n * @internal\n * @param newSelection\n * @param event\n */\n /**\n * Handles the `onSelection` emit and the drop down toggle when selection changes\n * @hidden\n * \\@internal\n * @param {?=} newSelection\n * @param {?=} event\n * @return {?}\n */\n IgxDropDownComponent.prototype.selectItem = /**\n * Handles the `onSelection` emit and the drop down toggle when selection changes\n * @hidden\n * \\@internal\n * @param {?=} newSelection\n * @param {?=} event\n * @return {?}\n */\n function (newSelection, event) {\n /** @type {?} */\n var oldSelection = this.selectedItem;\n if (!newSelection) {\n newSelection = this.focusedItem;\n }\n if (newSelection === null) {\n return;\n }\n if (newSelection instanceof IgxDropDownItemBase && newSelection.isHeader) {\n return;\n }\n if (this.virtDir) {\n newSelection = (/** @type {?} */ ({\n value: newSelection.value,\n index: newSelection.index\n }));\n }\n /** @type {?} */\n var args = { oldSelection: oldSelection, newSelection: newSelection, cancel: false };\n this.onSelection.emit(args);\n if (!args.cancel) {\n if (this.isSelectionValid(args.newSelection)) {\n this.selection.set(this.id, new Set([args.newSelection]));\n if (!this.virtDir) {\n if (oldSelection) {\n oldSelection.selected = false;\n }\n if (args.newSelection) {\n args.newSelection.selected = true;\n }\n }\n if (event) {\n this.toggleDirective.close();\n }\n }\n else {\n throw new Error('Please provide a valid drop-down item for the selection!');\n }\n }\n };\n /**\n * Checks whether the selection is valid\n * `null` - the selection should be emptied\n * Virtual? - the selection should at least have and `index` and `value` property\n * Non-virtual? - the selection should be a valid drop-down item and **not** be a header\n */\n /**\n * Checks whether the selection is valid\n * `null` - the selection should be emptied\n * Virtual? - the selection should at least have and `index` and `value` property\n * Non-virtual? - the selection should be a valid drop-down item and **not** be a header\n * @protected\n * @param {?} selection\n * @return {?}\n */\n IgxDropDownComponent.prototype.isSelectionValid = /**\n * Checks whether the selection is valid\n * `null` - the selection should be emptied\n * Virtual? - the selection should at least have and `index` and `value` property\n * Non-virtual? - the selection should be a valid drop-down item and **not** be a header\n * @protected\n * @param {?} selection\n * @return {?}\n */\n function (selection) {\n return selection === null\n || (this.virtDir && selection.hasOwnProperty('value') && selection.hasOwnProperty('index'))\n || (selection instanceof IgxDropDownItemComponent && !selection.isHeader);\n };\n IgxDropDownComponent.decorators = [\n { type: Component, args: [{\n selector: 'igx-drop-down',\n template: \"
\\n \\n \\n \\n
\\n\",\n providers: [{ provide: IGX_DROPDOWN_BASE, useExisting: IgxDropDownComponent }]\n }] }\n ];\n /** @nocollapse */\n IgxDropDownComponent.ctorParameters = function () { return [\n { type: ElementRef },\n { type: ChangeDetectorRef },\n { type: IgxSelectionAPIService },\n { type: undefined, decorators: [{ type: Optional }, { type: Inject, args: [DisplayDensityToken,] }] }\n ]; };\n IgxDropDownComponent.propDecorators = {\n virtDir: [{ type: ContentChild, args: [IgxForOfDirective, { read: IgxForOfDirective, static: false },] }],\n toggleDirective: [{ type: ViewChild, args: [IgxToggleDirective, { static: true },] }],\n children: [{ type: ContentChildren, args: [forwardRef(function () { return IgxDropDownItemComponent; }), { descendants: true },] }],\n onOpening: [{ type: Output }],\n onOpened: [{ type: Output }],\n onClosing: [{ type: Output }],\n onClosed: [{ type: Output }],\n allowItemsFocus: [{ type: Input }],\n id: [{ type: Input }]\n };\n return IgxDropDownComponent;\n}(IgxDropDownBase));\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n/**\n * Navigation Directive that handles keyboard events on its host and controls a targeted IgxDropDownBase component\n */\nvar IgxDropDownItemNavigationDirective = /** @class */ (function () {\n function IgxDropDownItemNavigationDirective(dropdown) {\n this.dropdown = dropdown;\n this._target = null;\n }\n Object.defineProperty(IgxDropDownItemNavigationDirective.prototype, \"target\", {\n /**\n * Gets the target of the navigation directive;\n *\n * ```typescript\n * // Get\n * export class MyComponent {\n * ...\n * @ContentChild(IgxDropDownNavigationDirective)\n * navDirective: IgxDropDownNavigationDirective = null\n * ...\n * const navTarget: IgxDropDownBase = navDirective.navTarget\n * }\n * ```\n */\n get: /**\n * Gets the target of the navigation directive;\n *\n * ```typescript\n * // Get\n * export class MyComponent {\n * ...\n * \\@ContentChild(IgxDropDownNavigationDirective)\n * navDirective: IgxDropDownNavigationDirective = null\n * ...\n * const navTarget: IgxDropDownBase = navDirective.navTarget\n * }\n * ```\n * @return {?}\n */\n function () {\n return this._target;\n },\n /**\n * Sets the target of the navigation directive;\n * If no valid target is passed, it falls back to the drop down context\n *\n * ```html\n * \n * \n * ...\n * \n * ...\n * \n * ```\n */\n set: /**\n * Sets the target of the navigation directive;\n * If no valid target is passed, it falls back to the drop down context\n *\n * ```html\n * \n * \n * ...\n * \n * ...\n * \n * ```\n * @param {?} target\n * @return {?}\n */\n function (target) {\n this._target = target ? target : this.dropdown;\n },\n enumerable: true,\n configurable: true\n });\n /**\n * Captures keydown events and calls the appropriate handlers on the target component\n */\n /**\n * Captures keydown events and calls the appropriate handlers on the target component\n * @param {?} event\n * @return {?}\n */\n IgxDropDownItemNavigationDirective.prototype.handleKeyDown = /**\n * Captures keydown events and calls the appropriate handlers on the target component\n * @param {?} event\n * @return {?}\n */\n function (event) {\n if (event) {\n /** @type {?} */\n var key = event.key.toLowerCase();\n if (!this.target.collapsed) { // If dropdown is opened\n // If dropdown is opened\n /** @type {?} */\n var navKeys = ['esc', 'escape', 'enter', 'space', 'spacebar', ' ',\n 'arrowup', 'up', 'arrowdown', 'down', 'home', 'end'];\n if (navKeys.indexOf(key) === -1) { // If key has appropriate function in DD\n return;\n }\n event.preventDefault();\n event.stopPropagation();\n }\n else { // If dropdown is closed, do nothing\n return;\n }\n switch (key) {\n case 'esc':\n case 'escape':\n this.target.onItemActionKey(DropDownActionKey.ESCAPE, event);\n break;\n case 'enter':\n this.target.onItemActionKey(DropDownActionKey.ENTER, event);\n break;\n case 'space':\n case 'spacebar':\n case ' ':\n this.target.onItemActionKey(DropDownActionKey.SPACE, event);\n break;\n case 'arrowup':\n case 'up':\n this.onArrowUpKeyDown();\n break;\n case 'arrowdown':\n case 'down':\n this.onArrowDownKeyDown();\n break;\n case 'home':\n this.onHomeKeyDown();\n break;\n case 'end':\n this.onEndKeyDown();\n break;\n default:\n return;\n }\n }\n };\n /**\n * Navigates to previous item\n */\n /**\n * Navigates to previous item\n * @return {?}\n */\n IgxDropDownItemNavigationDirective.prototype.onArrowDownKeyDown = /**\n * Navigates to previous item\n * @return {?}\n */\n function () {\n this.target.navigateNext();\n };\n /**\n * Navigates to previous item\n */\n /**\n * Navigates to previous item\n * @return {?}\n */\n IgxDropDownItemNavigationDirective.prototype.onArrowUpKeyDown = /**\n * Navigates to previous item\n * @return {?}\n */\n function () {\n this.target.navigatePrev();\n };\n /**\n * Navigates to target's last item\n */\n /**\n * Navigates to target's last item\n * @return {?}\n */\n IgxDropDownItemNavigationDirective.prototype.onEndKeyDown = /**\n * Navigates to target's last item\n * @return {?}\n */\n function () {\n this.target.navigateLast();\n };\n /**\n * Navigates to target's first item\n */\n /**\n * Navigates to target's first item\n * @return {?}\n */\n IgxDropDownItemNavigationDirective.prototype.onHomeKeyDown = /**\n * Navigates to target's first item\n * @return {?}\n */\n function () {\n this.target.navigateFirst();\n };\n IgxDropDownItemNavigationDirective.decorators = [\n { type: Directive, args: [{\n selector: '[igxDropDownItemNavigation]'\n },] }\n ];\n /** @nocollapse */\n IgxDropDownItemNavigationDirective.ctorParameters = function () { return [\n { type: IgxDropDownBase, decorators: [{ type: Self }, { type: Optional }, { type: Inject, args: [IGX_DROPDOWN_BASE,] }] }\n ]; };\n IgxDropDownItemNavigationDirective.propDecorators = {\n target: [{ type: Input, args: ['igxDropDownItemNavigation',] }],\n handleKeyDown: [{ type: HostListener, args: ['keydown', ['$event'],] }]\n };\n return IgxDropDownItemNavigationDirective;\n}());\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n/**\n * @hidden\n */\nvar IgxDropDownModule = /** @class */ (function () {\n function IgxDropDownModule() {\n }\n IgxDropDownModule.decorators = [\n { type: NgModule, args: [{\n declarations: [IgxDropDownComponent, IgxDropDownItemComponent, IgxDropDownGroupComponent,\n IgxDropDownItemNavigationDirective],\n exports: [IgxDropDownComponent, IgxDropDownItemComponent, IgxDropDownGroupComponent,\n IgxDropDownItemNavigationDirective],\n imports: [CommonModule, IgxToggleModule],\n providers: [IgxSelectionAPIService]\n },] }\n ];\n return IgxDropDownModule;\n}());\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n/** @enum {number} */\nvar IgxHintPosition = {\n START: 0,\n END: 1,\n};\nIgxHintPosition[IgxHintPosition.START] = 'START';\nIgxHintPosition[IgxHintPosition.END] = 'END';\nvar IgxHintDirective = /** @class */ (function () {\n function IgxHintDirective(_element) {\n this._element = _element;\n this._position = IgxHintPosition.START;\n /**\n * Sets/gets whether the hint position is at the start.\n * Default value is `false`.\n * ```typescript\n * \\@ViewChild('hint', {read: IgxHintDirective})\n * public igxHint: IgxHintDirective;\n * this.igxHint.isPositionStart = true;\n * ```\n * ```typescript\n * let isHintPositionStart = this.igxHint.isPositionStart;\n * ```\n * \\@memberof IgxHintDirective\n */\n this.isPositionStart = false;\n /**\n * Sets/gets whether the hint position is at the end.\n * Default value is `false`.\n * ```typescript\n * \\@ViewChild('hint', {read: IgxHintDirective})\n * public igxHint: IgxHintDirective;\n * this.igxHint.isPositionEnd = true;\n * ```\n * ```typescript\n * let isHintPositionEnd = this.igxHint.isPositionEnd;\n * ```\n * \\@memberof IgxHintDirective\n */\n this.isPositionEnd = false;\n }\n Object.defineProperty(IgxHintDirective.prototype, \"position\", {\n /**\n * Gets the position of the hint.\n * ```typescript\n * @ViewChild('hint', {read: IgxHintDirective})\n * public igxHint: IgxHintDirective;\n * let hintPosition = this.igxHint.position;\n * ```\n * @memberof IgxHintDirective\n */\n get: /**\n * Gets the position of the hint.\n * ```typescript\n * \\@ViewChild('hint', {read: IgxHintDirective})\n * public igxHint: IgxHintDirective;\n * let hintPosition = this.igxHint.position;\n * ```\n * \\@memberof IgxHintDirective\n * @return {?}\n */\n function () {\n return this._position.toString();\n },\n /**\n * Sets the position of the hint.\n * ```html\n * \n * \n * IgxHint displayed at the start\n * \n * ```\n * @memberof IgxHintDirective\n */\n set: /**\n * Sets the position of the hint.\n * ```html\n * \n * \n * IgxHint displayed at the start\n * \n * ```\n * \\@memberof IgxHintDirective\n * @param {?} value\n * @return {?}\n */\n function (value) {\n /** @type {?} */\n var position = ((/** @type {?} */ (IgxHintPosition)))[value.toUpperCase()];\n if (position !== undefined) {\n this._position = position;\n this._applyPosition(this._position);\n }\n },\n enumerable: true,\n configurable: true\n });\n /**\n *@hidden\n */\n /**\n * @hidden\n * @return {?}\n */\n IgxHintDirective.prototype.ngOnInit = /**\n * @hidden\n * @return {?}\n */\n function () {\n this._applyPosition(this._position);\n };\n /**\n * @private\n * @param {?} position\n * @return {?}\n */\n IgxHintDirective.prototype._applyPosition = /**\n * @private\n * @param {?} position\n * @return {?}\n */\n function (position) {\n this.isPositionStart = this.isPositionEnd = false;\n switch (position) {\n case IgxHintPosition.START:\n this.isPositionStart = true;\n break;\n case IgxHintPosition.END:\n this.isPositionEnd = true;\n break;\n default: break;\n }\n };\n IgxHintDirective.decorators = [\n { type: Directive, args: [{\n selector: 'igx-hint,[igxHint]'\n },] }\n ];\n /** @nocollapse */\n IgxHintDirective.ctorParameters = function () { return [\n { type: ElementRef }\n ]; };\n IgxHintDirective.propDecorators = {\n isPositionStart: [{ type: HostBinding, args: ['class.igx-input-group__hint-item--start',] }],\n isPositionEnd: [{ type: HostBinding, args: ['class.igx-input-group__hint-item--end',] }],\n position: [{ type: Input, args: ['position',] }]\n };\n return IgxHintDirective;\n}());\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n/**\n * @hidden\n * @abstract\n */\nvar /**\n * @hidden\n * @abstract\n */\nIgxInputGroupBase = /** @class */ (function () {\n function IgxInputGroupBase() {\n }\n return IgxInputGroupBase;\n}());\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n/** @type {?} */\nvar nativeValidationAttributes = ['required', 'pattern', 'minlength', 'maxlength', 'min', 'max', 'step'];\n/** @enum {number} */\nvar IgxInputState = {\n INITIAL: 0,\n VALID: 1,\n INVALID: 2,\n};\nIgxInputState[IgxInputState.INITIAL] = 'INITIAL';\nIgxInputState[IgxInputState.VALID] = 'VALID';\nIgxInputState[IgxInputState.INVALID] = 'INVALID';\nvar IgxInputDirective = /** @class */ (function () {\n function IgxInputDirective(inputGroup, ngModel, formControl, element, cdr) {\n this.inputGroup = inputGroup;\n this.ngModel = ngModel;\n this.formControl = formControl;\n this.element = element;\n this.cdr = cdr;\n this._valid = IgxInputState.INITIAL;\n /**\n * Sets/gets whether the `\"igx-input-group__input\"` class is added to the host element.\n * Default value is `false`.\n * ```typescript\n * this.igxInput.isInput = true;\n * ```\n * ```typescript\n * let isCLassAdded = this.igxInput.isInput;\n * ```\n * \\@memberof IgxInputDirective\n */\n this.isInput = false;\n /**\n * Sets/gets whether the `\"class.igx-input-group__textarea\"` class is added to the host element.\n * Default value is `false`.\n * ```typescript\n * this.igxInput.isTextArea = true;\n * ```\n * ```typescript\n * let isCLassAdded = this.igxInput.isTextArea;\n * ```\n * \\@memberof IgxInputDirective\n */\n this.isTextArea = false;\n }\n Object.defineProperty(IgxInputDirective.prototype, \"ngControl\", {\n get: /**\n * @private\n * @return {?}\n */\n function () {\n return this.ngModel ? this.ngModel : this.formControl;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxInputDirective.prototype, \"value\", {\n /**\n * Gets the `value` propery.\n * ```typescript\n * @ViewChild('igxInput', {read: IgxInputDirective})\n * public igxInput: IgxInputDirective;\n * let inputValue = this.igxInput.value;\n * ```\n * @memberof IgxInputDirective\n */\n get: /**\n * Gets the `value` propery.\n * ```typescript\n * \\@ViewChild('igxInput', {read: IgxInputDirective})\n * public igxInput: IgxInputDirective;\n * let inputValue = this.igxInput.value;\n * ```\n * \\@memberof IgxInputDirective\n * @return {?}\n */\n function () {\n return this.nativeElement.value;\n },\n /**\n * Sets the `value` property.\n * ```html\n * \n * \n * \n * ```\n * @memberof IgxInputDirective\n */\n set: /**\n * Sets the `value` property.\n * ```html\n * \n * \n * \n * ```\n * \\@memberof IgxInputDirective\n * @param {?} value\n * @return {?}\n */\n function (value) {\n this.nativeElement.value = value;\n this.checkValidity();\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxInputDirective.prototype, \"disabled\", {\n /**\n * Gets the `disabled` property\n * ```typescript\n * @ViewChild('igxInput', {read: IgxInputDirective})\n * public igxInput: IgxInputDirective;\n * let isDisabled = this.igxInput.disabled;\n * ```\n * @memberof IgxInputDirective\n */\n get: /**\n * Gets the `disabled` property\n * ```typescript\n * \\@ViewChild('igxInput', {read: IgxInputDirective})\n * public igxInput: IgxInputDirective;\n * let isDisabled = this.igxInput.disabled;\n * ```\n * \\@memberof IgxInputDirective\n * @return {?}\n */\n function () {\n return this.nativeElement.hasAttribute('disabled');\n },\n /**\n * Sets the `disabled` property.\n * ```html\n * \n * \n * \n * ```\n * @memberof IgxInputDirective\n */\n set: /**\n * Sets the `disabled` property.\n * ```html\n * \n * \n * \n * ```\n * \\@memberof IgxInputDirective\n * @param {?} value\n * @return {?}\n */\n function (value) {\n this.nativeElement.disabled = value;\n this.inputGroup.disabled = value;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxInputDirective.prototype, \"required\", {\n /**\n * Gets whether the igxInput is required.\n * ```typescript\n * let isRequired = this.igxInput.required;\n * ```\n * @memberof IgxInputDirective\n */\n get: /**\n * Gets whether the igxInput is required.\n * ```typescript\n * let isRequired = this.igxInput.required;\n * ```\n * \\@memberof IgxInputDirective\n * @return {?}\n */\n function () {\n return this.nativeElement.hasAttribute('required');\n },\n /**\n * Sets the `required` property.\n * ```html\n * \n * \n * \n * ```\n * @memberof IgxInputDirective\n */\n set: /**\n * Sets the `required` property.\n * ```html\n * \n * \n * \n * ```\n * \\@memberof IgxInputDirective\n * @param {?} value\n * @return {?}\n */\n function (value) {\n if (typeof value === 'boolean') {\n this.nativeElement.required = this.inputGroup.isRequired = value;\n if (value && !this.nativeElement.checkValidity()) {\n this._valid = IgxInputState.INVALID;\n }\n else {\n this._valid = IgxInputState.INITIAL;\n }\n }\n },\n enumerable: true,\n configurable: true\n });\n /**\n *@hidden\n */\n /**\n * @hidden\n * @param {?} event\n * @return {?}\n */\n IgxInputDirective.prototype.onFocus = /**\n * @hidden\n * @param {?} event\n * @return {?}\n */\n function (event) {\n this.inputGroup.isFocused = true;\n };\n /**\n *@hidden\n */\n /**\n * @hidden\n * @param {?} event\n * @return {?}\n */\n IgxInputDirective.prototype.onBlur = /**\n * @hidden\n * @param {?} event\n * @return {?}\n */\n function (event) {\n this.inputGroup.isFocused = false;\n this._valid = IgxInputState.INITIAL;\n if (this.ngControl) {\n if (!this.ngControl.valid) {\n this._valid = IgxInputState.INVALID;\n }\n }\n else if (this._hasValidators() && !this.nativeElement.checkValidity()) {\n this._valid = IgxInputState.INVALID;\n }\n };\n /**\n *@hidden\n */\n /**\n * @hidden\n * @return {?}\n */\n IgxInputDirective.prototype.onInput = /**\n * @hidden\n * @return {?}\n */\n function () {\n this.checkValidity();\n };\n /**\n *@hidden\n */\n /**\n * @hidden\n * @return {?}\n */\n IgxInputDirective.prototype.ngAfterViewInit = /**\n * @hidden\n * @return {?}\n */\n function () {\n this.inputGroup.hasPlaceholder = this.nativeElement.hasAttribute('placeholder');\n this.inputGroup.disabled = this.inputGroup.disabled || this.nativeElement.hasAttribute('disabled');\n this.inputGroup.isRequired = this.nativeElement.hasAttribute('required');\n // Make sure we do not invalidate the input on init\n if (!this.ngControl) {\n this._valid = IgxInputState.INITIAL;\n }\n // Also check the control's validators for required\n if (!this.inputGroup.isRequired && this.ngControl && this.ngControl.control.validator) {\n /** @type {?} */\n var validation = this.ngControl.control.validator((/** @type {?} */ ({})));\n this.inputGroup.isRequired = validation && validation.required;\n }\n /** @type {?} */\n var elTag = this.nativeElement.tagName.toLowerCase();\n if (elTag === 'textarea') {\n this.isTextArea = true;\n }\n else {\n this.isInput = true;\n }\n if (this.ngControl) {\n this._statusChanges$ = this.ngControl.statusChanges.subscribe(this.onStatusChanged.bind(this));\n }\n this.cdr.detectChanges();\n };\n /**\n *@hidden\n */\n /**\n * @hidden\n * @return {?}\n */\n IgxInputDirective.prototype.ngOnDestroy = /**\n * @hidden\n * @return {?}\n */\n function () {\n if (this._statusChanges$) {\n this._statusChanges$.unsubscribe();\n }\n };\n /**\n * Sets a focus on the igxInput.\n * ```typescript\n * this.igxInput.focus();\n * ```\n * @memberof IgxInputDirective\n */\n /**\n * Sets a focus on the igxInput.\n * ```typescript\n * this.igxInput.focus();\n * ```\n * \\@memberof IgxInputDirective\n * @return {?}\n */\n IgxInputDirective.prototype.focus = /**\n * Sets a focus on the igxInput.\n * ```typescript\n * this.igxInput.focus();\n * ```\n * \\@memberof IgxInputDirective\n * @return {?}\n */\n function () {\n this.nativeElement.focus();\n };\n Object.defineProperty(IgxInputDirective.prototype, \"nativeElement\", {\n /**\n * Gets the `nativeElement` of the igxInput.\n * ```typescript\n * let igxInputNativeElement = this.igxInput.nativeElement;\n * ```\n * @memberof IgxInputDirective\n */\n get: /**\n * Gets the `nativeElement` of the igxInput.\n * ```typescript\n * let igxInputNativeElement = this.igxInput.nativeElement;\n * ```\n * \\@memberof IgxInputDirective\n * @return {?}\n */\n function () {\n return this.element.nativeElement;\n },\n enumerable: true,\n configurable: true\n });\n /**\n *@hidden\n */\n /**\n * @hidden\n * @protected\n * @return {?}\n */\n IgxInputDirective.prototype.onStatusChanged = /**\n * @hidden\n * @protected\n * @return {?}\n */\n function () {\n if (this.ngControl.control.validator || this.ngControl.control.asyncValidator) {\n if (this.ngControl.control.touched || this.ngControl.control.dirty) {\n // TODO: check the logic when control is touched or dirty\n if (this.inputGroup.isFocused) {\n // the user is still typing in the control\n this._valid = this.ngControl.valid ? IgxInputState.VALID : IgxInputState.INVALID;\n }\n else {\n // the user had touched the control previously but now the value is changing due to changes in the form\n this._valid = this.ngControl.valid ? IgxInputState.INITIAL : IgxInputState.INVALID;\n }\n }\n else {\n // if control is untouched and pristine its state is initial. This is when user did not interact\n // with the input or when form/control is reset\n this._valid = IgxInputState.INITIAL;\n }\n }\n };\n Object.defineProperty(IgxInputDirective.prototype, \"hasPlaceholder\", {\n /**\n * Gets whether the igxInput has a placeholder.\n * ```typescript\n * let hasPlaceholder = this.igxInput.hasPlaceholder;\n * ```\n * @memberof IgxInputDirective\n */\n get: /**\n * Gets whether the igxInput has a placeholder.\n * ```typescript\n * let hasPlaceholder = this.igxInput.hasPlaceholder;\n * ```\n * \\@memberof IgxInputDirective\n * @return {?}\n */\n function () {\n return this.nativeElement.hasAttribute('placeholder');\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxInputDirective.prototype, \"placeholder\", {\n /**\n * Gets the placeholder element of the igxInput.\n * ```typescript\n * let igxInputPlaceholder = this.igxInput.placeholder;\n * ```\n * @memberof IgxInputDirective\n */\n get: /**\n * Gets the placeholder element of the igxInput.\n * ```typescript\n * let igxInputPlaceholder = this.igxInput.placeholder;\n * ```\n * \\@memberof IgxInputDirective\n * @return {?}\n */\n function () {\n return this.nativeElement.placeholder;\n },\n enumerable: true,\n configurable: true\n });\n /**\n * @private\n * @return {?}\n */\n IgxInputDirective.prototype._hasValidators = /**\n * @private\n * @return {?}\n */\n function () {\n var e_1, _a;\n try {\n for (var nativeValidationAttributes_1 = __values(nativeValidationAttributes), nativeValidationAttributes_1_1 = nativeValidationAttributes_1.next(); !nativeValidationAttributes_1_1.done; nativeValidationAttributes_1_1 = nativeValidationAttributes_1.next()) {\n var nativeValidationAttribute = nativeValidationAttributes_1_1.value;\n if (this.nativeElement.hasAttribute(nativeValidationAttribute)) {\n return true;\n }\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (nativeValidationAttributes_1_1 && !nativeValidationAttributes_1_1.done && (_a = nativeValidationAttributes_1.return)) _a.call(nativeValidationAttributes_1);\n }\n finally { if (e_1) throw e_1.error; }\n }\n return !!this.ngControl && (!!this.ngControl.control.validator || !!this.ngControl.control.asyncValidator);\n };\n Object.defineProperty(IgxInputDirective.prototype, \"focused\", {\n /**\n * Gets whether the igxInput is focused.\n * ```typescript\n * let isFocused = this.igxInput.focused;\n * ```\n * @memberof IgxInputDirective\n */\n get: /**\n * Gets whether the igxInput is focused.\n * ```typescript\n * let isFocused = this.igxInput.focused;\n * ```\n * \\@memberof IgxInputDirective\n * @return {?}\n */\n function () {\n return this.inputGroup.isFocused;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxInputDirective.prototype, \"valid\", {\n /**\n * Gets the state of the igxInput.\n * ```typescript\n * let igxInputState = this.igxInput.valid;\n * ```\n * @memberof IgxInputDirective\n */\n get: /**\n * Gets the state of the igxInput.\n * ```typescript\n * let igxInputState = this.igxInput.valid;\n * ```\n * \\@memberof IgxInputDirective\n * @return {?}\n */\n function () {\n return this._valid;\n },\n /**\n * Sets the state of the igxInput.\n * ```typescript\n * this.igxInput.valid = IgxInputState.INVALID;\n * ```\n * @memberof IgxInputDirective\n */\n set: /**\n * Sets the state of the igxInput.\n * ```typescript\n * this.igxInput.valid = IgxInputState.INVALID;\n * ```\n * \\@memberof IgxInputDirective\n * @param {?} value\n * @return {?}\n */\n function (value) {\n this._valid = value;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxInputDirective.prototype, \"isValid\", {\n /**\n * Gets whether the igxInput is valid.\n * ```typescript\n * let valid = this.igxInput.isValid;\n * ```\n * @memberof IgxInputDirective\n */\n get: /**\n * Gets whether the igxInput is valid.\n * ```typescript\n * let valid = this.igxInput.isValid;\n * ```\n * \\@memberof IgxInputDirective\n * @return {?}\n */\n function () {\n return this.valid !== IgxInputState.INVALID;\n },\n enumerable: true,\n configurable: true\n });\n /**\n * @private\n * @return {?}\n */\n IgxInputDirective.prototype.checkValidity = /**\n * @private\n * @return {?}\n */\n function () {\n if (!this.ngControl && this._hasValidators()) {\n this._valid = this.nativeElement.checkValidity() ? IgxInputState.VALID : IgxInputState.INVALID;\n }\n };\n IgxInputDirective.decorators = [\n { type: Directive, args: [{\n selector: '[igxInput]',\n exportAs: 'igxInput'\n },] }\n ];\n /** @nocollapse */\n IgxInputDirective.ctorParameters = function () { return [\n { type: IgxInputGroupBase },\n { type: NgModel, decorators: [{ type: Optional }, { type: Self }, { type: Inject, args: [NgModel,] }] },\n { type: FormControlName, decorators: [{ type: Optional }, { type: Self }, { type: Inject, args: [FormControlName,] }] },\n { type: ElementRef },\n { type: ChangeDetectorRef }\n ]; };\n IgxInputDirective.propDecorators = {\n value: [{ type: Input, args: ['value',] }],\n disabled: [{ type: Input }],\n required: [{ type: Input }],\n isInput: [{ type: HostBinding, args: ['class.igx-input-group__input',] }],\n isTextArea: [{ type: HostBinding, args: ['class.igx-input-group__textarea',] }],\n onFocus: [{ type: HostListener, args: ['focus', ['$event'],] }],\n onBlur: [{ type: HostListener, args: ['blur', ['$event'],] }],\n onInput: [{ type: HostListener, args: ['input',] }]\n };\n return IgxInputDirective;\n}());\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n/** @type {?} */\nvar NEXT_ID$3 = 0;\nvar IgxLabelDirective = /** @class */ (function () {\n function IgxLabelDirective() {\n this.defaultClass = true;\n /**\n * @hidden\n */\n this.id = \"igx-label-\" + NEXT_ID$3++;\n }\n IgxLabelDirective.decorators = [\n { type: Directive, args: [{\n selector: '[igxLabel]'\n },] }\n ];\n IgxLabelDirective.propDecorators = {\n defaultClass: [{ type: HostBinding, args: ['class.igx-input-group__label',] }],\n id: [{ type: HostBinding, args: ['attr.id',] }, { type: Input }]\n };\n return IgxLabelDirective;\n}());\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n/**\n * @hidden\n */\nvar IgxPrefixDirective = /** @class */ (function () {\n function IgxPrefixDirective() {\n }\n IgxPrefixDirective.decorators = [\n { type: Directive, args: [{\n selector: 'igx-prefix,[igxPrefix]'\n },] }\n ];\n return IgxPrefixDirective;\n}());\n/**\n * @hidden\n */\nvar IgxPrefixModule = /** @class */ (function () {\n function IgxPrefixModule() {\n }\n IgxPrefixModule.decorators = [\n { type: NgModule, args: [{\n declarations: [IgxPrefixDirective],\n exports: [IgxPrefixDirective]\n },] }\n ];\n return IgxPrefixModule;\n}());\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n/**\n * @hidden\n */\nvar IgxSuffixDirective = /** @class */ (function () {\n function IgxSuffixDirective() {\n }\n IgxSuffixDirective.decorators = [\n { type: Directive, args: [{\n selector: 'igx-suffix,[igxSuffix]'\n },] }\n ];\n return IgxSuffixDirective;\n}());\n/**\n * @hidden\n */\nvar IgxSuffixModule = /** @class */ (function () {\n function IgxSuffixModule() {\n }\n IgxSuffixModule.decorators = [\n { type: NgModule, args: [{\n declarations: [IgxSuffixDirective],\n exports: [IgxSuffixDirective]\n },] }\n ];\n return IgxSuffixModule;\n}());\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n/** @type {?} */\nvar NEXT_ID$4 = 0;\n/** @enum {number} */\nvar IgxInputGroupType = {\n LINE: 0,\n BOX: 1,\n BORDER: 2,\n FLUENT: 3,\n SEARCH: 4,\n FLUENT_SEARCH: 5,\n};\nIgxInputGroupType[IgxInputGroupType.LINE] = 'LINE';\nIgxInputGroupType[IgxInputGroupType.BOX] = 'BOX';\nIgxInputGroupType[IgxInputGroupType.BORDER] = 'BORDER';\nIgxInputGroupType[IgxInputGroupType.FLUENT] = 'FLUENT';\nIgxInputGroupType[IgxInputGroupType.SEARCH] = 'SEARCH';\nIgxInputGroupType[IgxInputGroupType.FLUENT_SEARCH] = 'FLUENT_SEARCH';\nvar IgxInputGroupComponent = /** @class */ (function (_super) {\n __extends(IgxInputGroupComponent, _super);\n function IgxInputGroupComponent(_element, _displayDensityOptions) {\n var _this = _super.call(this, _displayDensityOptions) || this;\n _this._element = _element;\n _this._displayDensityOptions = _displayDensityOptions;\n _this._type = IgxInputGroupType.LINE;\n _this._filled = false;\n _this._supressInputAutofocus = false;\n /**\n * An \\@Input property that sets the value of `id` attribute. If not provided it will be automatically generated.\n * ```html\n * \n * ```\n */\n _this.id = \"igx-input-group-\" + NEXT_ID$4++;\n /**\n * Property that enables/disables the autogenerated class of the `IgxInputGroupComponent`.\n * By default applied the class is applied.\n * ```typescript\n * \\@ViewChild(\"MyInputGroup\")\n * public inputGroup: IgxInputGroupComponent;\n * ngAfterViewInit(){\n * this.inputGroup.defaultClass = false;\n * ```\n * }\n */\n _this.defaultClass = true;\n /**\n * @hidden\n */\n _this.hasPlaceholder = false;\n /**\n * @hidden\n */\n _this.isRequired = false;\n /**\n * @hidden\n */\n _this.isFocused = false;\n /**\n * @hidden\n */\n _this.isBox = false;\n /**\n * @hidden\n */\n _this.isBorder = false;\n /**\n * @hidden\n */\n _this.isSearch = false;\n /**\n * @hidden\n */\n _this.isFluentSearch = false;\n /**\n * @hidden\n */\n _this.isFluent = false;\n /**\n * An \\@Input property that disables the `IgxInputGroupComponent`.\n * ```html\n * \n * ```\n */\n _this.disabled = false;\n /**\n * @hidden\n */\n _this.hasWarning = false;\n _this.element = _element;\n return _this;\n }\n Object.defineProperty(IgxInputGroupComponent.prototype, \"validClass\", {\n /**\n * @hidden\n */\n get: /**\n * @hidden\n * @return {?}\n */\n function () {\n return this.input.valid === IgxInputState.VALID;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxInputGroupComponent.prototype, \"invalidClass\", {\n /**\n * @hidden\n */\n get: /**\n * @hidden\n * @return {?}\n */\n function () {\n return this.input.valid === IgxInputState.INVALID;\n },\n enumerable: true,\n configurable: true\n });\n /**\n *@hidden\n */\n /**\n * @hidden\n * @param {?} event\n * @return {?}\n */\n IgxInputGroupComponent.prototype.onClick = /**\n * @hidden\n * @param {?} event\n * @return {?}\n */\n function (event) {\n if (!this._supressInputAutofocus) {\n this.input.focus();\n }\n };\n Object.defineProperty(IgxInputGroupComponent.prototype, \"type\", {\n /**\n * Returns the type of the `IgxInputGroupComponent`. How the input is styled.\n * Values are `line` - 0, `box` - 1, `border` - 2, `fluent` - 3 `fluentSearch` - 4 and `search` - 5. The default is `line`.\n * ```typescript\n *@ViewChild(\"MyInputGroup\")\n *public inputGroup: IgxInputGroupComponent;\n *ngAfterViewInit(){\n * let inputType = this.inputGroup.type;\n *}\n * ```\n */\n get: /**\n * Returns the type of the `IgxInputGroupComponent`. How the input is styled.\n * Values are `line` - 0, `box` - 1, `border` - 2, `fluent` - 3 `fluentSearch` - 4 and `search` - 5. The default is `line`.\n * ```typescript\n * \\@ViewChild(\"MyInputGroup\")\n * public inputGroup: IgxInputGroupComponent;\n * ngAfterViewInit(){\n * let inputType = this.inputGroup.type;\n * }\n * ```\n * @return {?}\n */\n function () {\n return this._type.toString();\n },\n /**\n * An @Input property that sets how the input will be styled.\n * The allowed values are `line`, `box`, `border`, `fluent`, `search` and `fluentSearch`. The default is `line`.\n * ```html\n *\n * ```\n */\n set: /**\n * An \\@Input property that sets how the input will be styled.\n * The allowed values are `line`, `box`, `border`, `fluent`, `search` and `fluentSearch`. The default is `line`.\n * ```html\n * \n * ```\n * @param {?} value\n * @return {?}\n */\n function (value) {\n /** @type {?} */\n var type = ((/** @type {?} */ (IgxInputGroupType)))[value.toUpperCase()];\n if (type !== undefined) {\n this.isBox = this.isFluent = this.isFluentSearch = this.isBorder = this.isSearch = false;\n switch (type) {\n case IgxInputGroupType.BOX:\n this.isBox = true;\n break;\n case IgxInputGroupType.BORDER:\n this.isBorder = true;\n break;\n case IgxInputGroupType.FLUENT:\n this.isFluent = true;\n break;\n case IgxInputGroupType.FLUENT_SEARCH:\n this.isFluentSearch = true;\n break;\n case IgxInputGroupType.SEARCH:\n this.isSearch = true;\n break;\n default: break;\n }\n this._type = type;\n }\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxInputGroupComponent.prototype, \"supressInputAutofocus\", {\n /**\n * Returns whether the input element of the input group will be automatically focused on click.\n * ```typescript\n * let supressInputAutofocus = this.inputGroup.supressInputAutofocus;\n * ```\n */\n get: /**\n * Returns whether the input element of the input group will be automatically focused on click.\n * ```typescript\n * let supressInputAutofocus = this.inputGroup.supressInputAutofocus;\n * ```\n * @return {?}\n */\n function () {\n return this._supressInputAutofocus;\n },\n /**\n * Sets whether the input element of the input group will be automatically focused on click.\n * ```html\n * \n * ```\n */\n set: /**\n * Sets whether the input element of the input group will be automatically focused on click.\n * ```html\n * \n * ```\n * @param {?} value\n * @return {?}\n */\n function (value) {\n this._supressInputAutofocus = value;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxInputGroupComponent.prototype, \"isFilled\", {\n /**\n *@hidden\n */\n get: /**\n * @hidden\n * @return {?}\n */\n function () {\n return this._filled || (this.input && this.input.value);\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxInputGroupComponent.prototype, \"isDisplayDensityCosy\", {\n /**\n *@hidden\n */\n get: /**\n * @hidden\n * @return {?}\n */\n function () {\n return this.displayDensity === DisplayDensity.cosy;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxInputGroupComponent.prototype, \"isDisplayDensityComfortable\", {\n /**\n *@hidden\n */\n get: /**\n * @hidden\n * @return {?}\n */\n function () {\n return this.displayDensity === DisplayDensity.comfortable;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxInputGroupComponent.prototype, \"isDisplayDensityCompact\", {\n /**\n *@hidden\n */\n get: /**\n * @hidden\n * @return {?}\n */\n function () {\n return this.displayDensity === DisplayDensity.compact;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxInputGroupComponent.prototype, \"hasHints\", {\n /**\n * Returns whether the `IgxInputGroupComponent` has hints.\n * ```typescript\n *@ViewChild(\"MyInputGroup\")\n *public inputGroup: IgxInputGroupComponent;\n *ngAfterViewInit(){\n * let inputHints = this.inputGroup.hasHints;\n *}\n * ```\n */\n get: /**\n * Returns whether the `IgxInputGroupComponent` has hints.\n * ```typescript\n * \\@ViewChild(\"MyInputGroup\")\n * public inputGroup: IgxInputGroupComponent;\n * ngAfterViewInit(){\n * let inputHints = this.inputGroup.hasHints;\n * }\n * ```\n * @return {?}\n */\n function () {\n return this.hints.length > 0;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxInputGroupComponent.prototype, \"hasBorder\", {\n /**\n * Returns whether the `IgxInputGroupComponent` has border.\n * ```typescript\n *@ViewChild(\"MyInputGroup\")\n *public inputGroup: IgxInputGroupComponent;\n *ngAfterViewInit(){\n * let inputBroder = this.inputGroup.hasBorder;\n *}\n * ```\n */\n get: /**\n * Returns whether the `IgxInputGroupComponent` has border.\n * ```typescript\n * \\@ViewChild(\"MyInputGroup\")\n * public inputGroup: IgxInputGroupComponent;\n * ngAfterViewInit(){\n * let inputBroder = this.inputGroup.hasBorder;\n * }\n * ```\n * @return {?}\n */\n function () {\n return this._type === IgxInputGroupType.LINE ||\n this._type === IgxInputGroupType.BOX;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxInputGroupComponent.prototype, \"isTypeLine\", {\n /**\n * Returns whether the `IgxInputGroupComponent` type is line.\n * ```typescript\n *@ViewChild(\"MyInputGroup1\")\n *public inputGroup: IgxInputGroupComponent;\n *ngAfterViewInit(){\n * let isTypeLine = this.inputGroup.isTypeLine;\n *}\n * ```\n */\n get: /**\n * Returns whether the `IgxInputGroupComponent` type is line.\n * ```typescript\n * \\@ViewChild(\"MyInputGroup1\")\n * public inputGroup: IgxInputGroupComponent;\n * ngAfterViewInit(){\n * let isTypeLine = this.inputGroup.isTypeLine;\n * }\n * ```\n * @return {?}\n */\n function () {\n return this._type === IgxInputGroupType.LINE;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxInputGroupComponent.prototype, \"isTypeBox\", {\n /**\n * Returns whether the `IgxInputGroupComponent` type is box.\n * ```typescript\n *@ViewChild(\"MyInputGroup1\")\n *public inputGroup: IgxInputGroupComponent;\n *ngAfterViewInit(){\n * let isTypeBox = this.inputGroup.isTypeBox;\n *}\n *```\n */\n get: /**\n * Returns whether the `IgxInputGroupComponent` type is box.\n * ```typescript\n * \\@ViewChild(\"MyInputGroup1\")\n * public inputGroup: IgxInputGroupComponent;\n * ngAfterViewInit(){\n * let isTypeBox = this.inputGroup.isTypeBox;\n * }\n * ```\n * @return {?}\n */\n function () {\n return this._type === IgxInputGroupType.BOX;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxInputGroupComponent.prototype, \"isTypeBorder\", {\n /**\n * Returns whether the `IgxInputGroupComponent` type is border.\n * ```typescript\n *@ViewChild(\"MyInputGroup1\")\n *public inputGroup: IgxInputGroupComponent;\n *ngAfterViewInit(){\n * let isTypeBorder = this.inputGroup.isTypeBorder;\n *}\n * ```\n */\n get: /**\n * Returns whether the `IgxInputGroupComponent` type is border.\n * ```typescript\n * \\@ViewChild(\"MyInputGroup1\")\n * public inputGroup: IgxInputGroupComponent;\n * ngAfterViewInit(){\n * let isTypeBorder = this.inputGroup.isTypeBorder;\n * }\n * ```\n * @return {?}\n */\n function () {\n return this._type === IgxInputGroupType.BORDER;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxInputGroupComponent.prototype, \"isTypeFluent\", {\n /**\n * Returns whether the `IgxInputGroupComponent` type is Fluent.\n * ```typescript\n *@ViewChild(\"MyInputGroup1\")\n *public inputGroup: IgxInputGroupComponent;\n *ngAfterViewInit(){\n * let isTypeFluent = this.inputGroup.isTypeFluent;\n *}\n * ```\n */\n get: /**\n * Returns whether the `IgxInputGroupComponent` type is Fluent.\n * ```typescript\n * \\@ViewChild(\"MyInputGroup1\")\n * public inputGroup: IgxInputGroupComponent;\n * ngAfterViewInit(){\n * let isTypeFluent = this.inputGroup.isTypeFluent;\n * }\n * ```\n * @return {?}\n */\n function () {\n return this._type === IgxInputGroupType.FLUENT;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxInputGroupComponent.prototype, \"isTypeSearch\", {\n /**\n * Returns whether the `IgxInputGroupComponent` type is search.\n * ```typescript\n *@ViewChild(\"MyInputGroup1\")\n *public inputGroup: IgxInputGroupComponent;\n *ngAfterViewInit(){\n * let isTypeSearch = this.inputGroup.isTypeSearch;\n *}\n * ```\n */\n get: /**\n * Returns whether the `IgxInputGroupComponent` type is search.\n * ```typescript\n * \\@ViewChild(\"MyInputGroup1\")\n * public inputGroup: IgxInputGroupComponent;\n * ngAfterViewInit(){\n * let isTypeSearch = this.inputGroup.isTypeSearch;\n * }\n * ```\n * @return {?}\n */\n function () {\n return this._type === IgxInputGroupType.SEARCH;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxInputGroupComponent.prototype, \"isTypeFluentSearch\", {\n /**\n * Returns whether the `IgxInputGroupComponent` type is fluentSearch.\n * ```typescript\n *@ViewChild(\"MyInputGroup1\")\n *public inputGroup: IgxInputGroupComponent;\n *ngAfterViewInit(){\n * let isTypeFluentSearch = this.inputGroup.isTypeFluentSearch;\n *}\n * ```\n */\n get: /**\n * Returns whether the `IgxInputGroupComponent` type is fluentSearch.\n * ```typescript\n * \\@ViewChild(\"MyInputGroup1\")\n * public inputGroup: IgxInputGroupComponent;\n * ngAfterViewInit(){\n * let isTypeFluentSearch = this.inputGroup.isTypeFluentSearch;\n * }\n * ```\n * @return {?}\n */\n function () {\n return this._type === IgxInputGroupType.FLUENT_SEARCH;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxInputGroupComponent.prototype, \"filled\", {\n get: /**\n * @return {?}\n */\n function () {\n return this._filled;\n },\n set: /**\n * @param {?} val\n * @return {?}\n */\n function (val) {\n this._filled = val;\n },\n enumerable: true,\n configurable: true\n });\n IgxInputGroupComponent.decorators = [\n { type: Component, args: [{\n selector: 'igx-input-group',\n template: \"
\\n \\n
\\n\\n
\\n \\n
\\n\\n\\n \\n\\n\\n\\n\\n\\n \\n \\n \\n\\n
\\n \\n
\\n\\n \\n \\n \\n\\n\\n \\n
\\n \\n
\\n
\\n
\\n\",\n providers: [{ provide: IgxInputGroupBase, useExisting: IgxInputGroupComponent }]\n }] }\n ];\n /** @nocollapse */\n IgxInputGroupComponent.ctorParameters = function () { return [\n { type: ElementRef },\n { type: undefined, decorators: [{ type: Optional }, { type: Inject, args: [DisplayDensityToken,] }] }\n ]; };\n IgxInputGroupComponent.propDecorators = {\n id: [{ type: HostBinding, args: ['attr.id',] }, { type: Input }],\n defaultClass: [{ type: HostBinding, args: ['class.igx-input-group',] }],\n hasPlaceholder: [{ type: HostBinding, args: ['class.igx-input-group--placeholder',] }],\n isRequired: [{ type: HostBinding, args: ['class.igx-input-group--required',] }],\n isFocused: [{ type: HostBinding, args: ['class.igx-input-group--focused',] }],\n isBox: [{ type: HostBinding, args: ['class.igx-input-group--box',] }],\n isBorder: [{ type: HostBinding, args: ['class.igx-input-group--border',] }],\n isSearch: [{ type: HostBinding, args: ['class.igx-input-group--search',] }],\n isFluentSearch: [{ type: HostBinding, args: ['class.igx-input-group--fluent-search',] }],\n isFluent: [{ type: HostBinding, args: ['class.igx-input-group--fluent',] }],\n disabled: [{ type: HostBinding, args: ['class.igx-input-group--disabled',] }, { type: Input }],\n validClass: [{ type: HostBinding, args: ['class.igx-input-group--valid',] }],\n invalidClass: [{ type: HostBinding, args: ['class.igx-input-group--invalid',] }],\n hasWarning: [{ type: HostBinding, args: ['class.igx-input-group--warning',] }],\n hints: [{ type: ContentChildren, args: [IgxHintDirective, { read: IgxHintDirective },] }],\n input: [{ type: ContentChild, args: [IgxInputDirective, { read: IgxInputDirective, static: true },] }],\n onClick: [{ type: HostListener, args: ['click', ['$event'],] }],\n type: [{ type: Input, args: ['type',] }],\n supressInputAutofocus: [{ type: Input }],\n isFilled: [{ type: HostBinding, args: ['class.igx-input-group--filled',] }],\n isDisplayDensityCosy: [{ type: HostBinding, args: ['class.igx-input-group--cosy',] }],\n isDisplayDensityComfortable: [{ type: HostBinding, args: ['class.igx-input-group--comfortable',] }],\n isDisplayDensityCompact: [{ type: HostBinding, args: ['class.igx-input-group--compact',] }]\n };\n return IgxInputGroupComponent;\n}(DisplayDensityBase));\n/**\n * @hidden\n */\nvar IgxInputGroupModule = /** @class */ (function () {\n function IgxInputGroupModule() {\n }\n IgxInputGroupModule.decorators = [\n { type: NgModule, args: [{\n declarations: [IgxInputGroupComponent, IgxHintDirective, IgxInputDirective, IgxLabelDirective],\n exports: [IgxInputGroupComponent, IgxHintDirective, IgxInputDirective, IgxLabelDirective, IgxPrefixDirective, IgxSuffixDirective],\n imports: [CommonModule, IgxPrefixModule, IgxSuffixModule]\n },] }\n ];\n return IgxInputGroupModule;\n}());\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n/**\n * **Ignite UI for Angular Autocomplete** -\n * [Documentation](https://www.infragistics.com/products/ignite-ui-angular/angular/components/autocomplete.html)\n *\n * The igxAutocomplete directive provides a way to enhance a text input\n * by showing a drop down of suggested options, provided by the developer.\n *\n * Example:\n * ```html\n * \n * \n * \n * {{town}}\n * \n * \n * ```\n */\nvar IgxAutocompleteDirective = /** @class */ (function (_super) {\n __extends(IgxAutocompleteDirective, _super);\n function IgxAutocompleteDirective(ngModel, formControl, group, elementRef, cdr) {\n var _this = _super.call(this, null) || this;\n _this.ngModel = ngModel;\n _this.formControl = formControl;\n _this.group = group;\n _this.elementRef = elementRef;\n _this.cdr = cdr;\n _this.defaultSettings = {\n modal: false,\n scrollStrategy: new AbsoluteScrollStrategy(),\n positionStrategy: new AutoPositionStrategy({ target: _this.parentElement }),\n excludePositionTarget: true\n };\n _this.dropDownOpened$ = new Subject();\n /**\n * Enables/disables autocomplete component\n *\n * ```typescript\n * // get\n * let disabled = this.autocomplete.disabled;\n * ```\n * ```html\n * \n * \n * ```\n * ```typescript\n * // set\n * public disabled = true;\n * ```\n */\n _this.disabled = false;\n /**\n * Emitted after item from the drop down is selected\n *\n * ```html\n * \n * ```\n */\n _this.onItemSelected = new EventEmitter();\n /**\n * @hidden \\@internal\n */\n _this.autofill = 'off';\n /**\n * @hidden \\@internal\n */\n _this.role = 'combobox';\n _this.select = function (value) {\n if (!value.newSelection) {\n return;\n }\n value.cancel = true; // Disable selection in the drop down, because in autocomplete we do not save selection.\n // Disable selection in the drop down, because in autocomplete we do not save selection.\n /** @type {?} */\n var newValue = value.newSelection.value;\n /** @type {?} */\n var args = { value: newValue, cancel: false };\n _this.onItemSelected.emit(args);\n if (args.cancel) {\n return;\n }\n _this.close();\n _this.nativeElement.focus();\n // Update model after the input is re-focused, in order to have proper valid styling.\n // Otherwise when item is selected using mouse (and input is blurred), then valid style will be removed.\n _this.model ? _this.model.control.setValue(newValue) : _this.nativeElement.value = newValue;\n };\n _this.highlightFirstItem = function () {\n if (_this.target.focusedItem) {\n _this.target.focusedItem.focused = false;\n _this.target.focusedItem = null;\n }\n _this.target.navigateFirst();\n _this.cdr.detectChanges();\n };\n return _this;\n }\n Object.defineProperty(IgxAutocompleteDirective.prototype, \"model\", {\n get: /**\n * @protected\n * @return {?}\n */\n function () {\n return this.ngModel || this.formControl;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxAutocompleteDirective.prototype, \"nativeElement\", {\n /** @hidden @internal */\n get: /**\n * @hidden \\@internal\n * @return {?}\n */\n function () {\n return this.elementRef.nativeElement;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxAutocompleteDirective.prototype, \"parentElement\", {\n /** @hidden @internal */\n get: /**\n * @hidden \\@internal\n * @return {?}\n */\n function () {\n return this.group ? this.group.element.nativeElement : this.nativeElement;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxAutocompleteDirective.prototype, \"settings\", {\n get: /**\n * @private\n * @return {?}\n */\n function () {\n /** @type {?} */\n var settings = Object.assign({}, this.defaultSettings, this.autocompleteSettings);\n if (!settings.positionStrategy.settings.target) {\n /** @type {?} */\n var positionStrategyClone = settings.positionStrategy.clone();\n positionStrategyClone.settings.target = this.parentElement;\n settings.positionStrategy = positionStrategyClone;\n }\n return settings;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxAutocompleteDirective.prototype, \"ariaExpanded\", {\n /** @hidden @internal */\n get: /**\n * @hidden \\@internal\n * @return {?}\n */\n function () {\n return !this.collapsed;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxAutocompleteDirective.prototype, \"hasPopUp\", {\n /** @hidden @internal */\n get: /**\n * @hidden \\@internal\n * @return {?}\n */\n function () {\n return 'listbox';\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxAutocompleteDirective.prototype, \"ariaOwns\", {\n /** @hidden @internal */\n get: /**\n * @hidden \\@internal\n * @return {?}\n */\n function () {\n return this.target.listId;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxAutocompleteDirective.prototype, \"ariaActiveDescendant\", {\n /** @hidden @internal */\n get: /**\n * @hidden \\@internal\n * @return {?}\n */\n function () {\n return !this.target.collapsed && this.target.focusedItem ? this.target.focusedItem.id : null;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxAutocompleteDirective.prototype, \"ariaAutocomplete\", {\n /** @hidden @internal */\n get: /**\n * @hidden \\@internal\n * @return {?}\n */\n function () {\n return 'list';\n },\n enumerable: true,\n configurable: true\n });\n /** @hidden @internal */\n /**\n * @hidden \\@internal\n * @return {?}\n */\n IgxAutocompleteDirective.prototype.onInput = /**\n * @hidden \\@internal\n * @return {?}\n */\n function () {\n this.open();\n };\n /** @hidden @internal */\n /**\n * @hidden \\@internal\n * @param {?} event\n * @return {?}\n */\n IgxAutocompleteDirective.prototype.onArrowDown = /**\n * @hidden \\@internal\n * @param {?} event\n * @return {?}\n */\n function (event) {\n event.preventDefault();\n this.open();\n };\n /** @hidden @internal */\n /**\n * @hidden \\@internal\n * @return {?}\n */\n IgxAutocompleteDirective.prototype.onTab = /**\n * @hidden \\@internal\n * @return {?}\n */\n function () {\n this.close();\n };\n /** @hidden @internal */\n /**\n * @hidden \\@internal\n * @param {?} event\n * @return {?}\n */\n IgxAutocompleteDirective.prototype.handleKeyDown = /**\n * @hidden \\@internal\n * @param {?} event\n * @return {?}\n */\n function (event) {\n if (!this.collapsed) {\n switch (event.key.toLowerCase()) {\n case 'space':\n case 'spacebar':\n case ' ':\n case 'home':\n case 'end':\n return;\n default:\n _super.prototype.handleKeyDown.call(this, event);\n }\n }\n };\n /** @hidden @internal */\n /**\n * @hidden \\@internal\n * @return {?}\n */\n IgxAutocompleteDirective.prototype.onArrowDownKeyDown = /**\n * @hidden \\@internal\n * @return {?}\n */\n function () {\n _super.prototype.onArrowDownKeyDown.call(this);\n };\n /** @hidden @internal */\n /**\n * @hidden \\@internal\n * @return {?}\n */\n IgxAutocompleteDirective.prototype.onArrowUpKeyDown = /**\n * @hidden \\@internal\n * @return {?}\n */\n function () {\n _super.prototype.onArrowUpKeyDown.call(this);\n };\n /** @hidden @internal */\n /**\n * @hidden \\@internal\n * @return {?}\n */\n IgxAutocompleteDirective.prototype.onEndKeyDown = /**\n * @hidden \\@internal\n * @return {?}\n */\n function () {\n _super.prototype.onEndKeyDown.call(this);\n };\n /** @hidden @internal */\n /**\n * @hidden \\@internal\n * @return {?}\n */\n IgxAutocompleteDirective.prototype.onHomeKeyDown = /**\n * @hidden \\@internal\n * @return {?}\n */\n function () {\n _super.prototype.onHomeKeyDown.call(this);\n };\n /**\n * Closes autocomplete drop down\n */\n /**\n * Closes autocomplete drop down\n * @return {?}\n */\n IgxAutocompleteDirective.prototype.close = /**\n * Closes autocomplete drop down\n * @return {?}\n */\n function () {\n if (this.collapsed) {\n return;\n }\n this.target.close();\n this.dropDownOpened$.next();\n };\n /**\n * Opens autocomplete drop down\n */\n /**\n * Opens autocomplete drop down\n * @return {?}\n */\n IgxAutocompleteDirective.prototype.open = /**\n * Opens autocomplete drop down\n * @return {?}\n */\n function () {\n if (this.disabled || !this.collapsed) {\n return;\n }\n // if no drop-down width is set, the drop-down will be as wide as the autocomplete input;\n this.target.width = this.target.width || (this.parentElement.clientWidth + 'px');\n this.target.open(this.settings);\n this.target.onSelection.pipe(takeUntil(this.dropDownOpened$)).subscribe(this.select);\n this.target.onOpened.pipe(first$1()).subscribe(this.highlightFirstItem);\n this.target.children.changes.pipe(takeUntil(this.dropDownOpened$)).subscribe(this.highlightFirstItem);\n };\n Object.defineProperty(IgxAutocompleteDirective.prototype, \"collapsed\", {\n get: /**\n * @private\n * @return {?}\n */\n function () {\n return this.target ? this.target.collapsed : true;\n },\n enumerable: true,\n configurable: true\n });\n /** @hidden */\n /**\n * @hidden\n * @return {?}\n */\n IgxAutocompleteDirective.prototype.ngOnDestroy = /**\n * @hidden\n * @return {?}\n */\n function () {\n this.dropDownOpened$.complete();\n };\n IgxAutocompleteDirective.decorators = [\n { type: Directive, args: [{\n selector: '[igxAutocomplete]'\n },] }\n ];\n /** @nocollapse */\n IgxAutocompleteDirective.ctorParameters = function () { return [\n { type: NgModel, decorators: [{ type: Self }, { type: Optional }, { type: Inject, args: [NgModel,] }] },\n { type: FormControlName, decorators: [{ type: Self }, { type: Optional }, { type: Inject, args: [FormControlName,] }] },\n { type: IgxInputGroupComponent, decorators: [{ type: Optional }] },\n { type: ElementRef },\n { type: ChangeDetectorRef }\n ]; };\n IgxAutocompleteDirective.propDecorators = {\n target: [{ type: Input, args: ['igxAutocomplete',] }],\n disabled: [{ type: Input, args: ['igxAutocompleteDisabled',] }],\n autocompleteSettings: [{ type: Input, args: ['igxAutocompleteSettings',] }],\n onItemSelected: [{ type: Output }],\n autofill: [{ type: HostBinding, args: ['attr.autocomplete',] }],\n role: [{ type: HostBinding, args: ['attr.role',] }],\n ariaExpanded: [{ type: HostBinding, args: ['attr.aria-expanded',] }],\n hasPopUp: [{ type: HostBinding, args: ['attr.aria-haspopup',] }],\n ariaOwns: [{ type: HostBinding, args: ['attr.aria-owns',] }],\n ariaActiveDescendant: [{ type: HostBinding, args: ['attr.aria-activedescendant',] }],\n ariaAutocomplete: [{ type: HostBinding, args: ['attr.aria-autocomplete',] }],\n onInput: [{ type: HostListener, args: ['input',] }],\n onArrowDown: [{ type: HostListener, args: ['keydown.ArrowDown', ['$event'],] }, { type: HostListener, args: ['keydown.Alt.ArrowDown', ['$event'],] }, { type: HostListener, args: ['keydown.ArrowUp', ['$event'],] }, { type: HostListener, args: ['keydown.Alt.ArrowUp', ['$event'],] }],\n onTab: [{ type: HostListener, args: ['keydown.Tab',] }, { type: HostListener, args: ['keydown.Shift.Tab',] }]\n };\n return IgxAutocompleteDirective;\n}(IgxDropDownItemNavigationDirective));\n/**\n * @hidden\n */\nvar IgxAutocompleteModule = /** @class */ (function () {\n function IgxAutocompleteModule() {\n }\n IgxAutocompleteModule.decorators = [\n { type: NgModule, args: [{\n imports: [IgxDropDownModule, CommonModule],\n declarations: [IgxAutocompleteDirective],\n exports: [IgxAutocompleteDirective]\n },] }\n ];\n return IgxAutocompleteModule;\n}());\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\nvar IgxButtonDirective = /** @class */ (function (_super) {\n __extends(IgxButtonDirective, _super);\n function IgxButtonDirective(element, _renderer, _displayDensityOptions) {\n var _this = _super.call(this, _displayDensityOptions) || this;\n _this.element = element;\n _this._renderer = _renderer;\n _this._displayDensityOptions = _displayDensityOptions;\n /**\n * @hidden\n */\n _this._defaultType = 'flat';\n /**\n * @hidden\n */\n _this._cssClassPrefix = 'igx-button';\n /**\n * Called when the button is clicked\n */\n _this.buttonClick = new EventEmitter();\n /**\n * Sets/gets the `role` attribute.\n * ```typescript\n * this.button.role = 'navbutton';\n * ```\n * ```typescript\n * let buttonRole = this.button.role;\n * ```\n * \\@memberof IgxButtonDirective\n */\n _this.role = 'button';\n /**\n * Gets or sets whether the button is selected.\n * Mainly used in the IgxButtonGroup component and it will have no effect if set separately.\n * ```html\n * \n * ```\n * \\@memberof IgxButtonDirective\n */\n _this.selected = false;\n return _this;\n }\n Object.defineProperty(IgxButtonDirective.prototype, \"nativeElement\", {\n /**\n * Returns the underlying DOM element\n */\n get: /**\n * Returns the underlying DOM element\n * @return {?}\n */\n function () {\n return this.element.nativeElement;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxButtonDirective.prototype, \"type\", {\n /**\n * Sets the type of the button.\n * ```html\n * \n * ```\n * @memberof IgxButtonDirective\n */\n set: /**\n * Sets the type of the button.\n * ```html\n * \n * ```\n * \\@memberof IgxButtonDirective\n * @param {?} value\n * @return {?}\n */\n function (value) {\n /** @type {?} */\n var newValue = value ? value : this._defaultType;\n if (this._type !== newValue) {\n this._renderer.removeClass(this.nativeElement, this._cssClassPrefix + \"--\" + this._type);\n this._type = newValue;\n this._renderer.addClass(this.nativeElement, this._cssClassPrefix + \"--\" + this._type);\n }\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxButtonDirective.prototype, \"color\", {\n /**\n * Sets the button text color.\n * ```html\n * \n * ```\n * @memberof IgxButtonDirective\n */\n set: /**\n * Sets the button text color.\n * ```html\n * \n * ```\n * \\@memberof IgxButtonDirective\n * @param {?} value\n * @return {?}\n */\n function (value) {\n this._color = value || this.nativeElement.style.color;\n this._renderer.setStyle(this.nativeElement, 'color', this._color);\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxButtonDirective.prototype, \"background\", {\n /**\n * Sets the background color of the button.\n * ```html\n * \n * ```\n * @memberof IgxButtonDirective\n */\n set: /**\n * Sets the background color of the button.\n * ```html\n * \n * ```\n * \\@memberof IgxButtonDirective\n * @param {?} value\n * @return {?}\n */\n function (value) {\n this._backgroundColor = value || this._backgroundColor;\n this._renderer.setStyle(this.nativeElement, 'background', this._backgroundColor);\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxButtonDirective.prototype, \"label\", {\n /**\n * Sets the `aria-label` attribute.\n * ```html\n * \n * ```\n * @memberof IgxButtonDirective\n */\n set: /**\n * Sets the `aria-label` attribute.\n * ```html\n * \n * ```\n * \\@memberof IgxButtonDirective\n * @param {?} value\n * @return {?}\n */\n function (value) {\n this._label = value || this._label;\n this._renderer.setAttribute(this.nativeElement, \"aria-label\", this._label);\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxButtonDirective.prototype, \"disabled\", {\n /**\n * Enables/disables the button.\n * ```html\n * \n * ```\n * @memberof IgxButtonDirective\n */\n set: /**\n * Enables/disables the button.\n * ```html\n * \n * ```\n * \\@memberof IgxButtonDirective\n * @param {?} val\n * @return {?}\n */\n function (val) {\n val = !!val;\n this._disabled = val;\n if (val) {\n this._renderer.addClass(this.nativeElement, this._cssClassPrefix + \"--disabled\");\n }\n else {\n this._renderer.removeClass(this.nativeElement, this._cssClassPrefix + \"--disabled\");\n }\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxButtonDirective.prototype, \"cssClassCosy\", {\n /**\n * @hidden\n */\n get: /**\n * @hidden\n * @return {?}\n */\n function () {\n return (this._type === 'flat' || this._type === 'raised' || this._type === 'outlined') &&\n this.displayDensity === DisplayDensity.cosy;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxButtonDirective.prototype, \"cssClassCompact\", {\n /**\n * @hidden\n */\n get: /**\n * @hidden\n * @return {?}\n */\n function () {\n return (this._type === 'flat' || this._type === 'raised' || this._type === 'outlined') &&\n this.displayDensity === DisplayDensity.compact;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxButtonDirective.prototype, \"cssClassCosyFab\", {\n /**\n * @hidden\n */\n get: /**\n * @hidden\n * @return {?}\n */\n function () {\n return this._type === 'fab' && this.displayDensity === DisplayDensity.cosy;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxButtonDirective.prototype, \"cssClassCompactFab\", {\n /**\n * @hidden\n */\n get: /**\n * @hidden\n * @return {?}\n */\n function () {\n return this._type === 'fab' && this.displayDensity === DisplayDensity.compact;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxButtonDirective.prototype, \"disabledAttribute\", {\n /**\n * @hidden\n */\n get: /**\n * @hidden\n * @return {?}\n */\n function () {\n return this._disabled ? this._disabled : null;\n },\n enumerable: true,\n configurable: true\n });\n /**\n *@hidden\n */\n /**\n * @hidden\n * @param {?} ev\n * @return {?}\n */\n IgxButtonDirective.prototype.onClick = /**\n * @hidden\n * @param {?} ev\n * @return {?}\n */\n function (ev) {\n this.buttonClick.emit(ev);\n };\n IgxButtonDirective.decorators = [\n { type: Directive, args: [{\n selector: '[igxButton]'\n },] }\n ];\n /** @nocollapse */\n IgxButtonDirective.ctorParameters = function () { return [\n { type: ElementRef },\n { type: Renderer2 },\n { type: undefined, decorators: [{ type: Optional }, { type: Inject, args: [DisplayDensityToken,] }] }\n ]; };\n IgxButtonDirective.propDecorators = {\n buttonClick: [{ type: Output }],\n role: [{ type: HostBinding, args: ['attr.role',] }],\n type: [{ type: Input, args: ['igxButton',] }],\n color: [{ type: Input, args: ['igxButtonColor',] }],\n background: [{ type: Input, args: ['igxButtonBackground',] }],\n label: [{ type: Input, args: ['igxLabel',] }],\n disabled: [{ type: Input }],\n cssClassCosy: [{ type: HostBinding, args: ['class.igx-button--cosy',] }],\n cssClassCompact: [{ type: HostBinding, args: ['class.igx-button--compact',] }],\n cssClassCosyFab: [{ type: HostBinding, args: ['class.igx-button--fab-cosy',] }],\n cssClassCompactFab: [{ type: HostBinding, args: ['class.igx-button--fab-compact',] }],\n disabledAttribute: [{ type: HostBinding, args: ['attr.disabled',] }],\n selected: [{ type: Input }],\n onClick: [{ type: HostListener, args: ['click', ['$event'],] }]\n };\n return IgxButtonDirective;\n}(DisplayDensityBase));\n/**\n * @hidden\n */\nvar IgxButtonModule = /** @class */ (function () {\n function IgxButtonModule() {\n }\n IgxButtonModule.decorators = [\n { type: NgModule, args: [{\n declarations: [IgxButtonDirective],\n exports: [IgxButtonDirective]\n },] }\n ];\n return IgxButtonModule;\n}());\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n/** @enum {string} */\nvar IgxDividerType = {\n DEFAULT: 'default',\n DASHED: 'dashed',\n};\n/** @type {?} */\nvar NEXT_ID$5 = 0;\nvar IgxDividerDirective = /** @class */ (function () {\n function IgxDividerDirective() {\n /**\n * Sets/gets the `id` of the divider.\n * If not set, `id` will have value `\"igx-divider-0\"`;\n * ```html\n * \n * ```\n * ```typescript\n * let dividerId = this.divider.id;\n * ```\n */\n this.id = \"igx-divider-\" + NEXT_ID$5++;\n /**\n * An \\@Input property that sets the value of the `inset` attribute.\n * If not provided it will be set to `'0'`.\n * ```html\n * \n * ```\n */\n this._inset = '0';\n /**\n * An \\@Input property that sets the value of `role` attribute.\n * If not the default value of `separator` will be used.\n */\n this.role = 'separator';\n /**\n * Sets the type of the divider. The default value\n * is `default`. The divider can also be `dashed`;\n * ```html\n * \n * ```\n */\n this.type = IgxDividerType.DEFAULT;\n /**\n * An \\@Input that sets the `middle` attribute of the divider.\n * If set to `true` and an `inset` value has been provided,\n * the divider will start shrinking from both ends.\n * ```html\n * \n * ```\n */\n this.middle = false;\n /**\n * An \\@Input that sets the vertical attribute of the divider.\n * ```html\n * \n * ```\n */\n this.vertical = false;\n }\n Object.defineProperty(IgxDividerDirective.prototype, \"isDashed\", {\n get: /**\n * @return {?}\n */\n function () {\n return this.type === IgxDividerType.DASHED;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxDividerDirective.prototype, \"isDefault\", {\n /**\n * A getter that returns `true` if the type of the divider is `default`;\n * ```typescript\n * const isDefault = this.divider.isDefault;\n * ```\n */\n get: /**\n * A getter that returns `true` if the type of the divider is `default`;\n * ```typescript\n * const isDefault = this.divider.isDefault;\n * ```\n * @return {?}\n */\n function () {\n return this.type === IgxDividerType.DEFAULT;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxDividerDirective.prototype, \"inset\", {\n /**\n * Gets the current divider inset in terms of\n * margin representation as applied to the divider.\n * ```typescript\n * const inset = this.divider.inset;\n * ```\n */\n get: /**\n * Gets the current divider inset in terms of\n * margin representation as applied to the divider.\n * ```typescript\n * const inset = this.divider.inset;\n * ```\n * @return {?}\n */\n function () {\n /** @type {?} */\n var baseMargin = '0';\n if (this.middle) {\n if (this.vertical) {\n return this._inset + \" \" + baseMargin;\n }\n return baseMargin + \" \" + this._inset;\n }\n else {\n if (this.vertical) {\n return this._inset + \" \" + baseMargin + \" 0 \" + baseMargin;\n }\n return baseMargin + \" 0 \" + baseMargin + \" \" + this._inset;\n }\n },\n /**\n * Sets the inset of the divider from the side(s).\n * If the divider attribute `middle` is set to `true`,\n * it will inset the divider on both sides.\n * ```typescript\n * this.divider.inset = '32px';\n * ```\n */\n set: /**\n * Sets the inset of the divider from the side(s).\n * If the divider attribute `middle` is set to `true`,\n * it will inset the divider on both sides.\n * ```typescript\n * this.divider.inset = '32px';\n * ```\n * @param {?} value\n * @return {?}\n */\n function (value) {\n this._inset = value;\n },\n enumerable: true,\n configurable: true\n });\n IgxDividerDirective.decorators = [\n { type: Directive, args: [{\n // tslint:disable-next-line:directive-selector\n selector: 'igx-divider'\n },] }\n ];\n IgxDividerDirective.propDecorators = {\n id: [{ type: HostBinding, args: ['attr.id',] }, { type: Input }],\n _inset: [{ type: Input, args: ['inset',] }],\n role: [{ type: HostBinding, args: ['attr.role',] }, { type: Input }],\n type: [{ type: HostBinding, args: ['class.igx-divider',] }, { type: Input }],\n isDashed: [{ type: HostBinding, args: ['class.igx-divider--dashed',] }],\n middle: [{ type: HostBinding, args: ['class.igx-divider--inset',] }, { type: Input }],\n vertical: [{ type: HostBinding, args: ['class.igx-divider--vertical',] }, { type: Input }],\n inset: [{ type: HostBinding, args: ['style.margin',] }]\n };\n return IgxDividerDirective;\n}());\nvar IgxDividerModule = /** @class */ (function () {\n function IgxDividerModule() {\n }\n IgxDividerModule.decorators = [\n { type: NgModule, args: [{\n declarations: [IgxDividerDirective],\n exports: [IgxDividerDirective]\n },] }\n ];\n return IgxDividerModule;\n}());\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n// @dynamic\nvar \n// @dynamic\nIgxDefaultDropStrategy = /** @class */ (function () {\n function IgxDefaultDropStrategy() {\n }\n /**\n * @param {?} drag\n * @param {?} drop\n * @param {?} atIndex\n * @return {?}\n */\n IgxDefaultDropStrategy.prototype.dropAction = /**\n * @param {?} drag\n * @param {?} drop\n * @param {?} atIndex\n * @return {?}\n */\n function (drag, drop, atIndex) { };\n return IgxDefaultDropStrategy;\n}());\n// @dynamic\nvar \n// @dynamic\nIgxAppendDropStrategy = /** @class */ (function () {\n function IgxAppendDropStrategy(_renderer) {\n this._renderer = _renderer;\n }\n /**\n * @param {?} drag\n * @param {?} drop\n * @param {?} atIndex\n * @return {?}\n */\n IgxAppendDropStrategy.prototype.dropAction = /**\n * @param {?} drag\n * @param {?} drop\n * @param {?} atIndex\n * @return {?}\n */\n function (drag, drop, atIndex) {\n /** @type {?} */\n var dragElement = drag.element.nativeElement;\n /** @type {?} */\n var dropAreaElement = drop.element.nativeElement;\n this._renderer.removeChild(dragElement.parentNode, dragElement);\n this._renderer.appendChild(dropAreaElement, dragElement);\n };\n return IgxAppendDropStrategy;\n}());\n// @dynamic\nvar \n// @dynamic\nIgxPrependDropStrategy = /** @class */ (function () {\n function IgxPrependDropStrategy(_renderer) {\n this._renderer = _renderer;\n }\n /**\n * @param {?} drag\n * @param {?} drop\n * @param {?} atIndex\n * @return {?}\n */\n IgxPrependDropStrategy.prototype.dropAction = /**\n * @param {?} drag\n * @param {?} drop\n * @param {?} atIndex\n * @return {?}\n */\n function (drag, drop, atIndex) {\n /** @type {?} */\n var dragElement = drag.element.nativeElement;\n /** @type {?} */\n var dropAreaElement = drop.element.nativeElement;\n this._renderer.removeChild(dragElement.parentNode, dragElement);\n if (dropAreaElement.children.length) {\n this._renderer.insertBefore(dropAreaElement, dragElement, dropAreaElement.children[0]);\n }\n else {\n this._renderer.appendChild(dropAreaElement, dragElement);\n }\n };\n return IgxPrependDropStrategy;\n}());\n// @dynamic\nvar \n// @dynamic\nIgxInsertDropStrategy = /** @class */ (function () {\n function IgxInsertDropStrategy(_renderer) {\n this._renderer = _renderer;\n }\n /**\n * @param {?} drag\n * @param {?} drop\n * @param {?} atIndex\n * @return {?}\n */\n IgxInsertDropStrategy.prototype.dropAction = /**\n * @param {?} drag\n * @param {?} drop\n * @param {?} atIndex\n * @return {?}\n */\n function (drag, drop, atIndex) {\n if (drag.element.nativeElement.parentElement === drop.element.nativeElement && atIndex === -1) {\n return;\n }\n /** @type {?} */\n var dragElement = drag.element.nativeElement;\n /** @type {?} */\n var dropAreaElement = drop.element.nativeElement;\n this._renderer.removeChild(dragElement.parentNode, dragElement);\n if (atIndex !== -1 && dropAreaElement.children.length > atIndex) {\n this._renderer.insertBefore(dropAreaElement, dragElement, dropAreaElement.children[atIndex]);\n }\n else {\n this._renderer.appendChild(dropAreaElement, dragElement);\n }\n };\n return IgxInsertDropStrategy;\n}());\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\nvar IgxDragHandleDirective = /** @class */ (function () {\n function IgxDragHandleDirective(element) {\n this.element = element;\n this.baseClass = true;\n }\n IgxDragHandleDirective.decorators = [\n { type: Directive, args: [{\n selector: '[igxDragHandle]'\n },] }\n ];\n /** @nocollapse */\n IgxDragHandleDirective.ctorParameters = function () { return [\n { type: ElementRef }\n ]; };\n IgxDragHandleDirective.propDecorators = {\n baseClass: [{ type: HostBinding, args: ['class.igx-drag__handle',] }]\n };\n return IgxDragHandleDirective;\n}());\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n/** @enum {number} */\nvar RestrictDrag = {\n VERTICALLY: 0,\n HORIZONTALLY: 1,\n NONE: 2,\n};\nRestrictDrag[RestrictDrag.VERTICALLY] = 'VERTICALLY';\nRestrictDrag[RestrictDrag.HORIZONTALLY] = 'HORIZONTALLY';\nRestrictDrag[RestrictDrag.NONE] = 'NONE';\nvar IgxDragLocation = /** @class */ (function () {\n function IgxDragLocation(_pageX, _pageY) {\n this._pageX = _pageX;\n this._pageY = _pageY;\n this.pageX = parseFloat(_pageX);\n this.pageY = parseFloat(_pageY);\n }\n return IgxDragLocation;\n}());\nvar IgxDragDirective = /** @class */ (function () {\n function IgxDragDirective(cdr, element, viewContainer, zone, renderer) {\n this.cdr = cdr;\n this.element = element;\n this.viewContainer = viewContainer;\n this.zone = zone;\n this.renderer = renderer;\n this.ghostContext = null;\n /**\n * An \\@Input property that indicates when the drag should start.\n * By default the drag starts after the draggable element is moved by 5px.\n * ```html\n *
\n * Drag Me!\n *
\n * ```\n * \\@memberof IgxDragDirective\n */\n this.dragTolerance = 5;\n /**\n * An \\@Input property that specifies if the base element should not be moved and a ghost element should be rendered that represents it.\n * By default it is set to `true`.\n * If it is set to `false` when dragging the base element is moved instead and no ghost elements are rendered.\n * ```html\n *
\n * Drag Me!\n *
\n * ```\n * \\@memberof IgxDragDirective\n */\n this.ghost = true;\n /**\n * Sets a custom class that will be added to the `ghostElement` element.\n * ```html\n *
\n * Drag Me!\n *
\n * ```\n * \\@memberof IgxDragDirective\n */\n this.ghostClass = '';\n /**\n * @deprecated Please use custom base styling instead.\n * An \\@Input property that hides the draggable element.\n * By default it's set to false.\n * ```html\n *
\n * Drag Me!\n *
\n * ```\n * \\@memberof IgxDragDirective\n */\n this.hideBaseOnDrag = false;\n /**\n * @deprecated Please use provided transition functions in future.\n * An \\@Input property that enables/disables the draggable element animation\n * when the element is released.\n * By default it's set to false.\n * ```html\n *
\n * Drag Me!\n *
\n * ```\n * \\@memberof IgxDragDirective\n */\n this.animateOnRelease = false;\n /**\n * Event triggered when the draggable element drag starts.\n * ```html\n *
\n * Drag Me!\n *
\n * ```\n * ```typescript\n * public onDragStart(){\n * alert(\"The drag has stared!\");\n * }\n * ```\n * \\@memberof IgxDragDirective\n */\n this.dragStart = new EventEmitter();\n /**\n * Event triggered when the draggable element has been moved.\n * ```html\n *
\n * Drag Me!\n *
\n * ```\n * ```typescript\n * public onDragMove(){\n * alert(\"The element has moved!\");\n * }\n * ```\n * \\@memberof IgxDragDirective\n */\n this.dragMove = new EventEmitter();\n /**\n * Event triggered when the draggable element is released.\n * ```html\n *
\n * Drag Me!\n *
\n * ```\n * ```typescript\n * public onDragEnd(){\n * alert(\"The drag has ended!\");\n * }\n * ```\n * \\@memberof IgxDragDirective\n */\n this.dragEnd = new EventEmitter();\n /**\n * Event triggered when the draggable element is clicked.\n * ```html\n *
\n * Drag Me!\n *
\n * ```\n * ```typescript\n * public onDragClick(){\n * alert(\"The element has been clicked!\");\n * }\n * ```\n * \\@memberof IgxDragDirective\n */\n this.dragClick = new EventEmitter();\n /**\n * Event triggered when the drag ghost element is created.\n * ```html\n *
\n * Drag Me!\n *
\n * ```\n * ```typescript\n * public ghostCreated(){\n * alert(\"The ghost has been created!\");\n * }\n * ```\n * \\@memberof IgxDragDirective\n */\n this.ghostCreate = new EventEmitter();\n /**\n * Event triggered when the drag ghost element is created.\n * ```html\n *
\n * Drag Me!\n *
\n * ```\n * ```typescript\n * public ghostDestroyed(){\n * alert(\"The ghost has been destroyed!\");\n * }\n * ```\n * \\@memberof IgxDragDirective\n */\n this.ghostDestroy = new EventEmitter();\n /**\n * Event triggered after the draggable element is released and after its animation has finished.\n * ```html\n *
\n * Drag Me!\n *
\n * ```\n * ```typescript\n * public onMoveEnd(){\n * alert(\"The move has ended!\");\n * }\n * ```\n * \\@memberof IgxDragDirective\n */\n this.transitioned = new EventEmitter();\n /**\n * @hidden\n */\n this._visibility = 'visible';\n /**\n * @hidden\n */\n this.baseClass = true;\n /**\n * @hidden\n */\n this.selectDisabled = false;\n /**\n * @hidden\n */\n this.defaultReturnDuration = '0.5s';\n /**\n * @hidden\n */\n this.animInProgress = false;\n this._baseMarginLeft = 0;\n this._baseMarginTop = 0;\n this._startX = 0;\n this._startY = 0;\n this._lastX = 0;\n this._lastY = 0;\n this._dragStarted = false;\n this._ghostHostX = 0;\n this._ghostHostY = 0;\n this._pointerDownId = null;\n this._clicked = false;\n this._lastDropArea = null;\n this._destroy = new Subject();\n this._removeOnDestroy = true;\n }\n Object.defineProperty(IgxDragDirective.prototype, \"ghostOffsetX\", {\n get: /**\n * @return {?}\n */\n function () {\n return this._offsetX !== undefined ? this._offsetX : this._defaultOffsetX;\n },\n /**\n * An @Input property that specifies the offset of the dragged element relative to the mouse in pixels.\n * By default it's taking the relative position to the mouse when the drag started and keeps it the same.\n * ```html\n *
\n *
\n * Drag Me!\n *
\n * ```\n * @memberof IgxDragDirective\n */\n set: /**\n * An \\@Input property that specifies the offset of the dragged element relative to the mouse in pixels.\n * By default it's taking the relative position to the mouse when the drag started and keeps it the same.\n * ```html\n *
\n *
\n * Drag Me!\n *
\n * ```\n * \\@memberof IgxDragDirective\n * @param {?} value\n * @return {?}\n */\n function (value) {\n this._offsetX = parseInt(value, 10);\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxDragDirective.prototype, \"ghostOffsetY\", {\n get: /**\n * @return {?}\n */\n function () {\n return this._offsetY !== undefined ? this._offsetY : this._defaultOffsetY;\n },\n /**\n * An @Input property that specifies the offset of the dragged element relative to the mouse in pixels.\n * By default it's taking the relative position to the mouse when the drag started and keeps it the same.\n * ```html\n *
\n *
\n * Drag Me!\n *
\n * ```\n * @memberof IgxDragDirective\n */\n set: /**\n * An \\@Input property that specifies the offset of the dragged element relative to the mouse in pixels.\n * By default it's taking the relative position to the mouse when the drag started and keeps it the same.\n * ```html\n *
\n *
\n * Drag Me!\n *
\n * ```\n * \\@memberof IgxDragDirective\n * @param {?} value\n * @return {?}\n */\n function (value) {\n this._offsetY = parseInt(value, 10);\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxDragDirective.prototype, \"visible\", {\n /**\n * Returns the visibility state of the draggable element.\n * ```typescript\n * @ViewChild(\"myDrag\" ,{read: IgxDragDirective})\n * public myDrag: IgxDragDirective;\n * ngAfterViewInit(){\n * let dragVisibility = this.myDrag.visible;\n * }\n * ```\n */\n get: /**\n * Returns the visibility state of the draggable element.\n * ```typescript\n * \\@ViewChild(\"myDrag\" ,{read: IgxDragDirective})\n * public myDrag: IgxDragDirective;\n * ngAfterViewInit(){\n * let dragVisibility = this.myDrag.visible;\n * }\n * ```\n * @return {?}\n */\n function () {\n return this._visibility === 'visible';\n },\n /**\n * @deprecated Please use native angular ways of hiding it using custom to the base element styling for future versions.\n * Sets the visibility of the draggable element.\n * ```typescript\n * @ViewChild(\"myDrag\" ,{read: IgxDragDirective})\n * public myDrag: IgxDragDirective;\n * ngAfterViewInit(){\n * this.myDrag.visible = false;\n * }\n * ```\n */\n set: /**\n * @deprecated Please use native angular ways of hiding it using custom to the base element styling for future versions.\n * Sets the visibility of the draggable element.\n * ```typescript\n * \\@ViewChild(\"myDrag\" ,{read: IgxDragDirective})\n * public myDrag: IgxDragDirective;\n * ngAfterViewInit(){\n * this.myDrag.visible = false;\n * }\n * ```\n * @param {?} bVisible\n * @return {?}\n */\n function (bVisible) {\n this._visibility = bVisible ? 'visible' : 'hidden';\n this.cdr.detectChanges();\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxDragDirective.prototype, \"location\", {\n /**\n * Gets the current location of the element relative to the page.\n */\n get: /**\n * Gets the current location of the element relative to the page.\n * @return {?}\n */\n function () {\n return new IgxDragLocation(this.pageX, this.pageY);\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxDragDirective.prototype, \"originLocation\", {\n /**\n * Gets the original location of the element before dragging started.\n */\n get: /**\n * Gets the original location of the element before dragging started.\n * @return {?}\n */\n function () {\n return new IgxDragLocation(this.baseOriginLeft, this.baseOriginTop);\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxDragDirective.prototype, \"pointerEventsEnabled\", {\n /**\n * @hidden\n */\n get: /**\n * @hidden\n * @return {?}\n */\n function () {\n return typeof PointerEvent !== 'undefined';\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxDragDirective.prototype, \"touchEventsEnabled\", {\n /**\n * @hidden\n */\n get: /**\n * @hidden\n * @return {?}\n */\n function () {\n return 'ontouchstart' in window;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxDragDirective.prototype, \"pageX\", {\n /**\n * @hidden\n */\n get: /**\n * @hidden\n * @return {?}\n */\n function () {\n if (this.ghost && this.ghostElement) {\n return this.ghostLeft;\n }\n return this.baseLeft;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxDragDirective.prototype, \"pageY\", {\n /**\n * @hidden\n */\n get: /**\n * @hidden\n * @return {?}\n */\n function () {\n if (this.ghost && this.ghostElement) {\n return this.ghostTop;\n }\n return this.baseTop;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxDragDirective.prototype, \"baseLeft\", {\n get: /**\n * @protected\n * @return {?}\n */\n function () {\n return this.element.nativeElement.getBoundingClientRect().left;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxDragDirective.prototype, \"baseTop\", {\n get: /**\n * @protected\n * @return {?}\n */\n function () {\n return this.element.nativeElement.getBoundingClientRect().top;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxDragDirective.prototype, \"baseOriginLeft\", {\n get: /**\n * @protected\n * @return {?}\n */\n function () {\n return this.baseLeft - this.getTransformX(this.element.nativeElement);\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxDragDirective.prototype, \"baseOriginTop\", {\n get: /**\n * @protected\n * @return {?}\n */\n function () {\n return this.baseTop - this.getTransformY(this.element.nativeElement);\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxDragDirective.prototype, \"ghostLeft\", {\n get: /**\n * @protected\n * @return {?}\n */\n function () {\n return parseInt(this.ghostElement.style.left, 10) + this._ghostHostX;\n },\n set: /**\n * @protected\n * @param {?} pageX\n * @return {?}\n */\n function (pageX) {\n var _this = this;\n // To Do: Remove requestAnimationFrame when deprecated animations inputs are removed as well.\n // We use requestAnimationFrame for the old drop animations in combination with updateDragRelativePos.\n requestAnimationFrame(function () {\n if (_this.ghostElement) {\n // We need to take into account marginLeft, since top style does not include margin, but pageX includes the margin.\n /** @type {?} */\n var ghostMarginLeft = parseInt(document.defaultView.getComputedStyle(_this.ghostElement)['margin-left'], 10);\n // If ghost host is defined it needs to be taken into account.\n _this.ghostElement.style.left = (pageX - ghostMarginLeft - _this._ghostHostX) + 'px';\n }\n });\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxDragDirective.prototype, \"ghostTop\", {\n get: /**\n * @protected\n * @return {?}\n */\n function () {\n return parseInt(this.ghostElement.style.top, 10) + this._ghostHostY;\n },\n set: /**\n * @protected\n * @param {?} pageY\n * @return {?}\n */\n function (pageY) {\n var _this = this;\n // To Do: Remove requestAnimationFrame when deprecated animations inputs are removed as well.\n // We use requestAnimationFrame for the old drop animations in combination with updateDragRelativePos.\n requestAnimationFrame(function () {\n if (_this.ghostElement) {\n // We need to take into account marginTop, since top style does not include margin, but pageY includes the margin.\n /** @type {?} */\n var ghostMarginTop = parseInt(document.defaultView.getComputedStyle(_this.ghostElement)['margin-top'], 10);\n // If ghost host is defined it needs to be taken into account.\n _this.ghostElement.style.top = (pageY - ghostMarginTop - _this._ghostHostY) + 'px';\n }\n });\n },\n enumerable: true,\n configurable: true\n });\n /**\n * @hidden\n */\n /**\n * @hidden\n * @return {?}\n */\n IgxDragDirective.prototype.ngAfterContentInit = /**\n * @hidden\n * @return {?}\n */\n function () {\n var _this = this;\n if (!this.dragHandles || !this.dragHandles.length) {\n // Set user select none to the whole draggable element if no drag handles are defined.\n this.selectDisabled = true;\n }\n // Bind events\n this.zone.runOutsideAngular(function () {\n /** @type {?} */\n var targetElements = _this.dragHandles && _this.dragHandles.length ?\n _this.dragHandles.map(function (item) { return item.element.nativeElement; }) : [_this.element.nativeElement];\n targetElements.forEach(function (element) {\n if (_this.pointerEventsEnabled) {\n fromEvent(element, 'pointerdown').pipe(takeUntil(_this._destroy))\n .subscribe(function (res) { return _this.onPointerDown(res); });\n fromEvent(element, 'pointermove').pipe(throttle(function () { return interval(0, animationFrameScheduler); }), takeUntil(_this._destroy)).subscribe(function (res) { return _this.onPointerMove(res); });\n fromEvent(element, 'pointerup').pipe(takeUntil(_this._destroy))\n .subscribe(function (res) { return _this.onPointerUp(res); });\n if (!_this.ghost) {\n // Do not bind `lostpointercapture` to the target, because we will bind it on the ghost later.\n fromEvent(element, 'lostpointercapture').pipe(takeUntil(_this._destroy))\n .subscribe(function (res) { return _this.onPointerLost(res); });\n }\n }\n else if (_this.touchEventsEnabled) {\n fromEvent(element, 'touchstart').pipe(takeUntil(_this._destroy))\n .subscribe(function (res) { return _this.onPointerDown(res); });\n }\n else {\n // We don't have pointer events and touch events. Use then mouse events.\n fromEvent(element, 'mousedown').pipe(takeUntil(_this._destroy))\n .subscribe(function (res) { return _this.onPointerDown(res); });\n }\n });\n // We should bind to document events only once when there are no pointer events.\n if (!_this.pointerEventsEnabled && _this.touchEventsEnabled) {\n fromEvent(document.defaultView, 'touchmove').pipe(throttle(function () { return interval(0, animationFrameScheduler); }), takeUntil(_this._destroy)).subscribe(function (res) { return _this.onPointerMove(res); });\n fromEvent(document.defaultView, 'touchend').pipe(takeUntil(_this._destroy))\n .subscribe(function (res) { return _this.onPointerUp(res); });\n }\n else if (!_this.pointerEventsEnabled) {\n fromEvent(document.defaultView, 'mousemove').pipe(throttle(function () { return interval(0, animationFrameScheduler); }), takeUntil(_this._destroy)).subscribe(function (res) { return _this.onPointerMove(res); });\n fromEvent(document.defaultView, 'mouseup').pipe(takeUntil(_this._destroy))\n .subscribe(function (res) { return _this.onPointerUp(res); });\n }\n _this.element.nativeElement.addEventListener('transitionend', function (args) {\n _this.onTransitionEnd(args);\n });\n });\n this._baseMarginLeft = parseInt(document.defaultView.getComputedStyle(this.element.nativeElement)['margin-left'], 10);\n this._baseMarginTop = parseInt(document.defaultView.getComputedStyle(this.element.nativeElement)['margin-top'], 10);\n this._baseOriginX = this.baseLeft;\n this._baseOriginY = this.baseTop;\n this._ghostStartX = this.baseLeft;\n this._ghostStartY = this.baseTop;\n // Set transition duration to 0s. This also helps with setting `visibility: hidden` to the base to not lag.\n this.element.nativeElement.style.transitionDuration = '0.0s';\n };\n /**\n * @hidden\n */\n /**\n * @hidden\n * @return {?}\n */\n IgxDragDirective.prototype.ngOnDestroy = /**\n * @hidden\n * @return {?}\n */\n function () {\n this._destroy.next(true);\n this._destroy.complete();\n if (this.ghost && this.ghostElement && this._removeOnDestroy) {\n this.ghostElement.parentNode.removeChild(this.ghostElement);\n this.ghostElement = null;\n }\n };\n /**\n * Sets desired location of the base element or ghost element if rended relative to the document.\n * @param newLocation New location that should be applied. It is advised to get new location using getBoundingClientRects() + scroll.\n */\n /**\n * Sets desired location of the base element or ghost element if rended relative to the document.\n * @param {?} newLocation New location that should be applied. It is advised to get new location using getBoundingClientRects() + scroll.\n * @return {?}\n */\n IgxDragDirective.prototype.setLocation = /**\n * Sets desired location of the base element or ghost element if rended relative to the document.\n * @param {?} newLocation New location that should be applied. It is advised to get new location using getBoundingClientRects() + scroll.\n * @return {?}\n */\n function (newLocation) {\n // We do not subtract marginLeft and marginTop here because here we calculate deltas.\n if (this.ghost && this.ghostElement) {\n /** @type {?} */\n var offsetHostX = this.ghostHost ? this.ghostHostOffsetLeft(this.ghostHost) : 0;\n /** @type {?} */\n var offsetHostY = this.ghostHost ? this.ghostHostOffsetTop(this.ghostHost) : 0;\n this.ghostLeft = newLocation.pageX - offsetHostX + this.getWindowScrollLeft();\n this.ghostTop = newLocation.pageY - offsetHostY + this.getWindowScrollTop();\n }\n else if (!this.ghost) {\n /** @type {?} */\n var deltaX = newLocation.pageX - this.pageX;\n /** @type {?} */\n var deltaY = newLocation.pageY - this.pageY;\n /** @type {?} */\n var transformX = this.getTransformX(this.element.nativeElement);\n /** @type {?} */\n var transformY = this.getTransformY(this.element.nativeElement);\n this.setTransformXY(transformX + deltaX, transformY + deltaY);\n }\n this._startX = this.baseLeft;\n this._startY = this.baseTop;\n };\n /**\n * Animates the base or ghost element depending on the `ghost` input to its initial location.\n * If `ghost` is true but there is not ghost rendered, it will be created and animated.\n * If the base element has changed its DOM position its initial location will be changed accordingly.\n * @param customAnimArgs Custom transition properties that will be applied when performing the transition.\n * @param startLocation Start location from where the transition should start.\n */\n /**\n * Animates the base or ghost element depending on the `ghost` input to its initial location.\n * If `ghost` is true but there is not ghost rendered, it will be created and animated.\n * If the base element has changed its DOM position its initial location will be changed accordingly.\n * @param {?=} customAnimArgs Custom transition properties that will be applied when performing the transition.\n * @param {?=} startLocation Start location from where the transition should start.\n * @return {?}\n */\n IgxDragDirective.prototype.transitionToOrigin = /**\n * Animates the base or ghost element depending on the `ghost` input to its initial location.\n * If `ghost` is true but there is not ghost rendered, it will be created and animated.\n * If the base element has changed its DOM position its initial location will be changed accordingly.\n * @param {?=} customAnimArgs Custom transition properties that will be applied when performing the transition.\n * @param {?=} startLocation Start location from where the transition should start.\n * @return {?}\n */\n function (customAnimArgs, startLocation) {\n var _this = this;\n if ((!!startLocation && startLocation.pageX === this.baseOriginLeft && startLocation.pageY === this.baseOriginLeft) ||\n (!startLocation && this.ghost && !this.ghostElement)) {\n return;\n }\n if (!!startLocation && startLocation.pageX !== this.pageX && startLocation.pageY !== this.pageY) {\n if (this.ghost && !this.ghostElement) {\n this._startX = startLocation.pageX;\n this._startY = startLocation.pageY;\n this._ghostStartX = this._startX;\n this._ghostStartY = this._startY;\n this.createGhost(this._startX, this._startY);\n }\n this.setLocation(startLocation);\n }\n this.animInProgress = true;\n // Use setTimeout because we need to be sure that the element is positioned first correctly if there is start location.\n setTimeout(function () {\n if (_this.ghost) {\n _this.ghostElement.style.transitionProperty = 'top, left';\n _this.ghostElement.style.transitionDuration =\n customAnimArgs && customAnimArgs.duration ? customAnimArgs.duration + 's' : _this.defaultReturnDuration;\n _this.ghostElement.style.transitionTimingFunction =\n customAnimArgs && customAnimArgs.timingFunction ? customAnimArgs.timingFunction : '';\n _this.ghostElement.style.transitionDelay = customAnimArgs && customAnimArgs.delay ? customAnimArgs.delay + 's' : '';\n _this.setLocation(new IgxDragLocation(_this.baseLeft, _this.baseTop));\n }\n else if (!_this.ghost) {\n _this.element.nativeElement.style.transitionProperty = 'transform';\n _this.element.nativeElement.style.transitionDuration =\n customAnimArgs && customAnimArgs.duration ? customAnimArgs.duration + 's' : _this.defaultReturnDuration;\n _this.element.nativeElement.style.transitionTimingFunction =\n customAnimArgs && customAnimArgs.timingFunction ? customAnimArgs.timingFunction : '';\n _this.element.nativeElement.style.transitionDelay = customAnimArgs && customAnimArgs.delay ? customAnimArgs.delay + 's' : '';\n _this._startX = _this.baseLeft;\n _this._startY = _this.baseTop;\n _this.setTransformXY(0, 0);\n }\n }, 0);\n };\n /**\n * Animates the base or ghost element to a specific target location or other element using transition.\n * If `ghost` is true but there is not ghost rendered, it will be created and animated.\n * It is recommended to use 'getBoundingClientRects() + pageScroll' when determining desired location.\n * @param target Target that the base or ghost will transition to. It can be either location in the page or another HTML element.\n * @param customAnimArgs Custom transition properties that will be applied when performing the transition.\n * @param startLocation Start location from where the transition should start.\n */\n /**\n * Animates the base or ghost element to a specific target location or other element using transition.\n * If `ghost` is true but there is not ghost rendered, it will be created and animated.\n * It is recommended to use 'getBoundingClientRects() + pageScroll' when determining desired location.\n * @param {?} target Target that the base or ghost will transition to. It can be either location in the page or another HTML element.\n * @param {?=} customAnimArgs Custom transition properties that will be applied when performing the transition.\n * @param {?=} startLocation Start location from where the transition should start.\n * @return {?}\n */\n IgxDragDirective.prototype.transitionTo = /**\n * Animates the base or ghost element to a specific target location or other element using transition.\n * If `ghost` is true but there is not ghost rendered, it will be created and animated.\n * It is recommended to use 'getBoundingClientRects() + pageScroll' when determining desired location.\n * @param {?} target Target that the base or ghost will transition to. It can be either location in the page or another HTML element.\n * @param {?=} customAnimArgs Custom transition properties that will be applied when performing the transition.\n * @param {?=} startLocation Start location from where the transition should start.\n * @return {?}\n */\n function (target, customAnimArgs, startLocation) {\n var _this = this;\n if (!!startLocation && this.ghost && !this.ghostElement) {\n this._startX = startLocation.pageX;\n this._startY = startLocation.pageY;\n this._ghostStartX = this._startX;\n this._ghostStartY = this._startY;\n }\n else if (!!startLocation && (!this.ghost || this.ghostElement)) {\n this.setLocation(startLocation);\n }\n else if (this.ghost && !this.ghostElement) {\n this._startX = this.baseLeft;\n this._startY = this.baseTop;\n this._ghostStartX = this._startX + this.getWindowScrollLeft();\n this._ghostStartY = this._startY + this.getWindowScrollTop();\n }\n if (this.ghost && !this.ghostElement) {\n this.createGhost(this._startX, this._startY);\n }\n this.animInProgress = true;\n // Use setTimeout because we need to be sure that the element is positioned first correctly if there is start location.\n setTimeout(function () {\n /** @type {?} */\n var movedElem = _this.ghost ? _this.ghostElement : _this.element.nativeElement;\n movedElem.style.transitionProperty = _this.ghost && _this.ghostElement ? 'left, top' : 'transform';\n movedElem.style.transitionDuration =\n customAnimArgs && customAnimArgs.duration ? customAnimArgs.duration + 's' : _this.defaultReturnDuration;\n movedElem.style.transitionTimingFunction =\n customAnimArgs && customAnimArgs.timingFunction ? customAnimArgs.timingFunction : '';\n movedElem.style.transitionDelay = customAnimArgs && customAnimArgs.delay ? customAnimArgs.delay + 's' : '';\n if (target instanceof IgxDragLocation) {\n _this.setLocation(new IgxDragLocation(target.pageX, target.pageY));\n }\n else {\n /** @type {?} */\n var targetRects = target.nativeElement.getBoundingClientRect();\n _this.setLocation(new IgxDragLocation(targetRects.left - _this.getWindowScrollLeft(), targetRects.top - _this.getWindowScrollTop()));\n }\n }, 0);\n };\n /**\n * @hidden\n * Method bound to the PointerDown event of the base element igxDrag is initialized.\n * @param event PointerDown event captured\n */\n /**\n * @hidden\n * Method bound to the PointerDown event of the base element igxDrag is initialized.\n * @param {?} event PointerDown event captured\n * @return {?}\n */\n IgxDragDirective.prototype.onPointerDown = /**\n * @hidden\n * Method bound to the PointerDown event of the base element igxDrag is initialized.\n * @param {?} event PointerDown event captured\n * @return {?}\n */\n function (event) {\n this._clicked = true;\n this._pointerDownId = event.pointerId;\n // Set pointer capture so we detect pointermove even if mouse is out of bounds until ghostElement is created.\n /** @type {?} */\n var handleFound = this.dragHandles.find(function (handle) { return handle.element.nativeElement === event.currentTarget; });\n /** @type {?} */\n var targetElement = handleFound ? handleFound.element.nativeElement : this.element.nativeElement;\n if (this.pointerEventsEnabled) {\n targetElement.setPointerCapture(this._pointerDownId);\n }\n else {\n targetElement.focus();\n event.preventDefault();\n }\n if (!this._baseOriginX && !this._baseOriginY) {\n this._baseOriginX = this.baseLeft;\n this._baseOriginY = this.baseTop;\n }\n if (this.pointerEventsEnabled || !this.touchEventsEnabled) {\n // Check first for pointer events or non touch, because we can have pointer events and touch events at once.\n this._startX = event.pageX;\n this._startY = event.pageY;\n }\n else if (this.touchEventsEnabled) {\n this._startX = event.touches[0].pageX;\n this._startY = event.touches[0].pageY;\n }\n this._defaultOffsetX = this.baseLeft - this._startX + this.getWindowScrollLeft();\n this._defaultOffsetY = this.baseTop - this._startY + this.getWindowScrollTop();\n this._ghostStartX = this._startX + this.ghostOffsetX;\n this._ghostStartY = this._startY + this.ghostOffsetY;\n this._lastX = this._startX;\n this._lastY = this._startY;\n };\n /**\n * @hidden\n * Perform drag move logic when dragging and dispatching events if there is igxDrop under the pointer.\n * This method is bound at first at the base element.\n * If dragging starts and after the ghostElement is rendered the pointerId is reassigned it. Then this method is bound to it.\n * @param event PointerMove event captured\n */\n /**\n * @hidden\n * Perform drag move logic when dragging and dispatching events if there is igxDrop under the pointer.\n * This method is bound at first at the base element.\n * If dragging starts and after the ghostElement is rendered the pointerId is reassigned it. Then this method is bound to it.\n * @param {?} event PointerMove event captured\n * @return {?}\n */\n IgxDragDirective.prototype.onPointerMove = /**\n * @hidden\n * Perform drag move logic when dragging and dispatching events if there is igxDrop under the pointer.\n * This method is bound at first at the base element.\n * If dragging starts and after the ghostElement is rendered the pointerId is reassigned it. Then this method is bound to it.\n * @param {?} event PointerMove event captured\n * @return {?}\n */\n function (event) {\n var _this = this;\n if (this._clicked) {\n /** @type {?} */\n var pageX = void 0;\n /** @type {?} */\n var pageY = void 0;\n if (this.pointerEventsEnabled || !this.touchEventsEnabled) {\n // Check first for pointer events or non touch, because we can have pointer events and touch events at once.\n pageX = event.pageX;\n pageY = event.pageY;\n }\n else if (this.touchEventsEnabled) {\n pageX = event.touches[0].pageX;\n pageY = event.touches[0].pageY;\n // Prevent scrolling on touch while dragging\n event.preventDefault();\n }\n /** @type {?} */\n var totalMovedX = pageX - this._startX;\n /** @type {?} */\n var totalMovedY = pageY - this._startY;\n if (!this._dragStarted &&\n (Math.abs(totalMovedX) > this.dragTolerance || Math.abs(totalMovedY) > this.dragTolerance)) {\n /** @type {?} */\n var dragStartArgs_1 = {\n originalEvent: event,\n owner: this,\n startX: pageX - totalMovedX,\n startY: pageY - totalMovedY,\n pageX: pageX,\n pageY: pageY,\n cancel: false\n };\n this.zone.run(function () {\n _this.dragStart.emit(dragStartArgs_1);\n });\n if (!dragStartArgs_1.cancel) {\n this._dragStarted = true;\n if (this.ghost) {\n // We moved enough so ghostElement can be rendered and actual dragging to start.\n // When creating it will take into account any offset set by the user by default.\n this.createGhost(pageX, pageY);\n }\n else if (this._offsetX !== undefined || this._offsetY !== undefined) {\n // There is no need for ghost, but we will need to position initially the base element to reflect any offset.\n /** @type {?} */\n var transformX = (this._offsetX !== undefined ? this._offsetX - this._defaultOffsetX : 0) +\n this.getTransformX(this.element.nativeElement);\n /** @type {?} */\n var transformY = (this._offsetY !== undefined ? this._offsetY - this._defaultOffsetY : 0) +\n this.getTransformY(this.element.nativeElement);\n this.setTransformXY(transformX, transformY);\n }\n }\n else {\n return;\n }\n }\n else if (!this._dragStarted) {\n return;\n }\n /** @type {?} */\n var moveArgs = {\n originalEvent: event,\n owner: this,\n startX: this._startX,\n startY: this._startY,\n pageX: this._lastX,\n pageY: this._lastY,\n nextPageX: pageX,\n nextPageY: pageY,\n cancel: false\n };\n this.dragMove.emit(moveArgs);\n /** @type {?} */\n var setPageX = moveArgs.nextPageX;\n /** @type {?} */\n var setPageY = moveArgs.nextPageY;\n /** @type {?} */\n var updatedMovedX = setPageX - this._startX;\n /** @type {?} */\n var updatedMovedY = setPageY - this._startY;\n if (!moveArgs.cancel) {\n if (this.ghost) {\n this.ghostLeft = this._ghostStartX + updatedMovedX;\n this.ghostTop = this._ghostStartY + updatedMovedY;\n }\n else {\n /** @type {?} */\n var lastMovedX = setPageX - this._lastX;\n /** @type {?} */\n var lastMovedY = setPageY - this._lastY;\n /** @type {?} */\n var translateX = this.getTransformX(this.element.nativeElement) + lastMovedX;\n /** @type {?} */\n var translateY = this.getTransformY(this.element.nativeElement) + lastMovedY;\n this.setTransformXY(translateX, translateY);\n }\n this.dispatchDragEvents(pageX, pageY, event);\n }\n this._lastX = setPageX;\n this._lastY = setPageY;\n }\n };\n /**\n * @hidden\n * Perform drag end logic when releasing the ghostElement and dispatching drop event if igxDrop is under the pointer.\n * This method is bound at first at the base element.\n * If dragging starts and after the ghostElement is rendered the pointerId is reassigned to it. Then this method is bound to it.\n * @param event PointerUp event captured\n */\n /**\n * @hidden\n * Perform drag end logic when releasing the ghostElement and dispatching drop event if igxDrop is under the pointer.\n * This method is bound at first at the base element.\n * If dragging starts and after the ghostElement is rendered the pointerId is reassigned to it. Then this method is bound to it.\n * @param {?} event PointerUp event captured\n * @return {?}\n */\n IgxDragDirective.prototype.onPointerUp = /**\n * @hidden\n * Perform drag end logic when releasing the ghostElement and dispatching drop event if igxDrop is under the pointer.\n * This method is bound at first at the base element.\n * If dragging starts and after the ghostElement is rendered the pointerId is reassigned to it. Then this method is bound to it.\n * @param {?} event PointerUp event captured\n * @return {?}\n */\n function (event) {\n var _this = this;\n if (!this._clicked) {\n return;\n }\n /** @type {?} */\n var pageX;\n /** @type {?} */\n var pageY;\n if (this.pointerEventsEnabled || !this.touchEventsEnabled) {\n // Check first for pointer events or non touch, because we can have pointer events and touch events at once.\n pageX = event.pageX;\n pageY = event.pageY;\n }\n else if (this.touchEventsEnabled) {\n pageX = event.touches[0].pageX;\n pageY = event.touches[0].pageY;\n // Prevent scrolling on touch while dragging\n event.preventDefault();\n }\n /** @type {?} */\n var eventArgs = {\n originalEvent: event,\n owner: this,\n startX: this._startX,\n startY: this._startY,\n pageX: pageX,\n pageY: pageY\n };\n this._pointerDownId = null;\n this._clicked = false;\n if (this._dragStarted) {\n if (this._lastDropArea && this._lastDropArea !== this.element.nativeElement) {\n this.dispatchDropEvent(event.pageX, event.pageY, event);\n }\n else if (this.animateOnRelease) {\n this.transitionToOrigin();\n }\n this.zone.run(function () {\n _this.dragEnd.emit(eventArgs);\n });\n if (!this.animInProgress) {\n this.onTransitionEnd(null);\n }\n }\n else {\n // Trigger our own click event because when there is no ghost, native click cannot be prevented when dragging.\n this.zone.run(function () {\n _this.dragClick.emit(eventArgs);\n });\n }\n };\n /**\n * @hidden\n * Execute this method whe the pointer capture has been lost.\n * This means that during dragging the user has performed other action like right clicking and then clicking somewhere else.\n * This method will ensure that the drag state is being reset in this case as if the user released the dragged element.\n * @param event Event captured\n */\n /**\n * @hidden\n * Execute this method whe the pointer capture has been lost.\n * This means that during dragging the user has performed other action like right clicking and then clicking somewhere else.\n * This method will ensure that the drag state is being reset in this case as if the user released the dragged element.\n * @param {?} event Event captured\n * @return {?}\n */\n IgxDragDirective.prototype.onPointerLost = /**\n * @hidden\n * Execute this method whe the pointer capture has been lost.\n * This means that during dragging the user has performed other action like right clicking and then clicking somewhere else.\n * This method will ensure that the drag state is being reset in this case as if the user released the dragged element.\n * @param {?} event Event captured\n * @return {?}\n */\n function (event) {\n var _this = this;\n if (!this._clicked) {\n return;\n }\n /** @type {?} */\n var eventArgs = {\n originalEvent: event,\n owner: this,\n startX: this._startX,\n startY: this._startY,\n pageX: event.pageX,\n pageY: event.pageY\n };\n this._pointerDownId = null;\n this._clicked = false;\n if (this._dragStarted) {\n this.zone.run(function () {\n _this.dragEnd.emit(eventArgs);\n });\n if (this.animateOnRelease) {\n this.transitionToOrigin();\n }\n else if (!this.animInProgress) {\n this.onTransitionEnd(null);\n }\n }\n };\n /**\n * @hidden\n * Create ghost element - if a Node object is provided it creates a clone of that node,\n * otherwise it clones the host element.\n * Bind all needed events.\n * @param pageX Latest pointer position on the X axis relative to the page.\n * @param pageY Latest pointer position on the Y axis relative to the page.\n * @param node The Node object to be cloned.\n */\n /**\n * @hidden\n * Create ghost element - if a Node object is provided it creates a clone of that node,\n * otherwise it clones the host element.\n * Bind all needed events.\n * @protected\n * @param {?} pageX Latest pointer position on the X axis relative to the page.\n * @param {?} pageY Latest pointer position on the Y axis relative to the page.\n * @param {?=} node The Node object to be cloned.\n * @return {?}\n */\n IgxDragDirective.prototype.createGhost = /**\n * @hidden\n * Create ghost element - if a Node object is provided it creates a clone of that node,\n * otherwise it clones the host element.\n * Bind all needed events.\n * @protected\n * @param {?} pageX Latest pointer position on the X axis relative to the page.\n * @param {?} pageY Latest pointer position on the Y axis relative to the page.\n * @param {?=} node The Node object to be cloned.\n * @return {?}\n */\n function (pageX, pageY, node) {\n var _this = this;\n if (node === void 0) { node = null; }\n if (!this.ghost) {\n return;\n }\n /** @type {?} */\n var dynamicGhostRef;\n if (this.ghostTemplate) {\n dynamicGhostRef = this.viewContainer.createEmbeddedView(this.ghostTemplate, this.ghostContext);\n this.ghostElement = dynamicGhostRef.rootNodes[0];\n }\n else {\n this.ghostElement = node ? node.cloneNode(true) : this.element.nativeElement.cloneNode(true);\n }\n /** @type {?} */\n var totalMovedX = pageX - this._startX;\n /** @type {?} */\n var totalMovedY = pageY - this._startY;\n this._ghostHostX = this.ghostHost ? this.ghostHostOffsetLeft(this.ghostHost) : 0;\n this._ghostHostY = this.ghostHost ? this.ghostHostOffsetTop(this.ghostHost) : 0;\n this.ghostElement.style.transitionDuration = '0.0s';\n this.ghostElement.style.position = 'absolute';\n if (this.ghostClass) {\n this.renderer.addClass(this.ghostElement, this.ghostClass);\n }\n /** @type {?} */\n var createEventArgs = {\n owner: this,\n ghostElement: this.ghostElement,\n cancel: false\n };\n this.ghostCreate.emit(createEventArgs);\n if (createEventArgs.cancel) {\n this.ghostElement = null;\n if (this.ghostTemplate && dynamicGhostRef) {\n dynamicGhostRef.destroy();\n }\n return;\n }\n if (this.ghostHost) {\n this.ghostHost.appendChild(this.ghostElement);\n }\n else {\n document.body.appendChild(this.ghostElement);\n }\n /** @type {?} */\n var ghostMarginLeft = parseInt(document.defaultView.getComputedStyle(this.ghostElement)['margin-left'], 10);\n /** @type {?} */\n var ghostMarginTop = parseInt(document.defaultView.getComputedStyle(this.ghostElement)['margin-top'], 10);\n this.ghostElement.style.left = (this._ghostStartX - ghostMarginLeft + totalMovedX - this._ghostHostX) + 'px';\n this.ghostElement.style.top = (this._ghostStartY - ghostMarginTop + totalMovedY - this._ghostHostX) + 'px';\n if (this.pointerEventsEnabled) {\n // The ghostElement takes control for moving and dragging after it has been rendered.\n if (this._pointerDownId !== null) {\n this.ghostElement.setPointerCapture(this._pointerDownId);\n }\n this.ghostElement.addEventListener('pointermove', function (args) {\n _this.onPointerMove(args);\n });\n this.ghostElement.addEventListener('pointerup', function (args) {\n _this.onPointerUp(args);\n });\n this.ghostElement.addEventListener('lostpointercapture', function (args) {\n _this.onPointerLost(args);\n });\n }\n // Transition animation when the ghostElement is released and it returns to it's original position.\n this.ghostElement.addEventListener('transitionend', function (args) {\n _this.onTransitionEnd(args);\n });\n // Hide the base after the ghostElement is created, because otherwise the ghostElement will be not visible.\n if (this.hideBaseOnDrag) {\n this.visible = false;\n }\n this.cdr.detectChanges();\n };\n /**\n * @hidden\n * Dispatch custom igxDragEnter/igxDragLeave events based on current pointer position and if drop area is under.\n */\n /**\n * @hidden\n * Dispatch custom igxDragEnter/igxDragLeave events based on current pointer position and if drop area is under.\n * @protected\n * @param {?} pageX\n * @param {?} pageY\n * @param {?} originalEvent\n * @return {?}\n */\n IgxDragDirective.prototype.dispatchDragEvents = /**\n * @hidden\n * Dispatch custom igxDragEnter/igxDragLeave events based on current pointer position and if drop area is under.\n * @protected\n * @param {?} pageX\n * @param {?} pageY\n * @param {?} originalEvent\n * @return {?}\n */\n function (pageX, pageY, originalEvent) {\n /** @type {?} */\n var topDropArea;\n /** @type {?} */\n var customEventArgs = {\n startX: this._startX,\n startY: this._startY,\n pageX: pageX,\n pageY: pageY,\n owner: this,\n originalEvent: originalEvent\n };\n /** @type {?} */\n var elementsFromPoint = this.getElementsAtPoint(pageX, pageY);\n for (var i = 0; i < elementsFromPoint.length; i++) {\n if (elementsFromPoint[i].getAttribute('droppable') === 'true' &&\n elementsFromPoint[i] !== this.ghostElement && elementsFromPoint[i] !== this.element.nativeElement) {\n topDropArea = elementsFromPoint[i];\n break;\n }\n }\n if (topDropArea &&\n (!this._lastDropArea || (this._lastDropArea && this._lastDropArea !== topDropArea))) {\n if (this._lastDropArea) {\n this.dispatchEvent(this._lastDropArea, 'igxDragLeave', customEventArgs);\n }\n this._lastDropArea = topDropArea;\n this.dispatchEvent(this._lastDropArea, 'igxDragEnter', customEventArgs);\n }\n else if (!topDropArea && this._lastDropArea) {\n this.dispatchEvent(this._lastDropArea, 'igxDragLeave', customEventArgs);\n this._lastDropArea = null;\n return;\n }\n if (topDropArea) {\n this.dispatchEvent(topDropArea, 'igxDragOver', customEventArgs);\n }\n };\n /**\n * @hidden\n * Dispatch custom igxDrop event based on current pointer position if there is last recorder drop area under the pointer.\n * Last recorder drop area is updated in @dispatchDragEvents method.\n */\n /**\n * @hidden\n * Dispatch custom igxDrop event based on current pointer position if there is last recorder drop area under the pointer.\n * Last recorder drop area is updated in \\@dispatchDragEvents method.\n * @protected\n * @param {?} pageX\n * @param {?} pageY\n * @param {?} originalEvent\n * @return {?}\n */\n IgxDragDirective.prototype.dispatchDropEvent = /**\n * @hidden\n * Dispatch custom igxDrop event based on current pointer position if there is last recorder drop area under the pointer.\n * Last recorder drop area is updated in \\@dispatchDragEvents method.\n * @protected\n * @param {?} pageX\n * @param {?} pageY\n * @param {?} originalEvent\n * @return {?}\n */\n function (pageX, pageY, originalEvent) {\n /** @type {?} */\n var eventArgs = {\n startX: this._startX,\n startY: this._startY,\n pageX: pageX,\n pageY: pageY,\n owner: this,\n originalEvent: originalEvent\n };\n this.dispatchEvent(this._lastDropArea, 'igxDrop', eventArgs);\n this.dispatchEvent(this._lastDropArea, 'igxDragLeave', eventArgs);\n this._lastDropArea = null;\n };\n /**\n * @hidden\n * Update relative positions\n */\n /**\n * @hidden\n * Update relative positions\n * @return {?}\n */\n IgxDragDirective.prototype.updateDragRelativePos = /**\n * @hidden\n * Update relative positions\n * @return {?}\n */\n function () {\n /** @type {?} */\n var newPosX;\n /** @type {?} */\n var newPosY;\n if (this.ghost && this.ghostElement) {\n // Calculate the new ghostElement position to remain where the mouse is, so it doesn't jump\n /** @type {?} */\n var totalDraggedX = this.ghostLeft - this._ghostStartX;\n /** @type {?} */\n var totalDraggedY = this.ghostTop - this._ghostStartY;\n newPosX = this.baseLeft;\n newPosY = this.baseTop;\n /** @type {?} */\n var diffStartX = this._ghostStartX - newPosX;\n /** @type {?} */\n var diffStartY = this._ghostStartY - newPosY;\n this.ghostTop = newPosX + totalDraggedX - diffStartX;\n this.ghostLeft = newPosY + totalDraggedY - diffStartY;\n }\n else if (!this.ghost) {\n /** @type {?} */\n var totalDraggedX = this.getTransformX(this.element.nativeElement);\n /** @type {?} */\n var totalDraggedY = this.getTransformY(this.element.nativeElement);\n newPosX = this.baseLeft - totalDraggedX;\n newPosY = this.baseTop - totalDraggedY;\n /** @type {?} */\n var deltaX = this._baseOriginX - newPosX;\n /** @type {?} */\n var deltaY = this._baseOriginY - newPosY;\n this.setTransformXY(totalDraggedX + deltaX, totalDraggedY + deltaY);\n }\n this._baseOriginX = newPosX !== undefined ? newPosX : this._baseOriginX;\n this._baseOriginY = newPosY !== undefined ? newPosY : this._baseOriginY;\n };\n /**\n * @deprecated This method will be removed in future major version. Please use `transitionToOrigin` or `transitionTo`.\n * Informs the `igxDrag` directive that it has been dropped/released.\n * This should usually be called when `animateOnRelease` is set to `true`.\n * When canceling or defining custom drop logic this tells the igxDrag to update it's positions and\n * animate correctly to the new position.\n * ```typescript\n * public onDropElem(event) {\n * // Function bound to the igxDrop directive event `onDrop`\n * // This cancels the default drop logic of the `igxDrop`\n * event.cancel = true;\n * event.drag.dropFinished();\n * }\n * ```\n */\n /**\n * @deprecated This method will be removed in future major version. Please use `transitionToOrigin` or `transitionTo`.\n * Informs the `igxDrag` directive that it has been dropped/released.\n * This should usually be called when `animateOnRelease` is set to `true`.\n * When canceling or defining custom drop logic this tells the igxDrag to update it's positions and\n * animate correctly to the new position.\n * ```typescript\n * public onDropElem(event) {\n * // Function bound to the igxDrop directive event `onDrop`\n * // This cancels the default drop logic of the `igxDrop`\n * event.cancel = true;\n * event.drag.dropFinished();\n * }\n * ```\n * @return {?}\n */\n IgxDragDirective.prototype.dropFinished = /**\n * @deprecated This method will be removed in future major version. Please use `transitionToOrigin` or `transitionTo`.\n * Informs the `igxDrag` directive that it has been dropped/released.\n * This should usually be called when `animateOnRelease` is set to `true`.\n * When canceling or defining custom drop logic this tells the igxDrag to update it's positions and\n * animate correctly to the new position.\n * ```typescript\n * public onDropElem(event) {\n * // Function bound to the igxDrop directive event `onDrop`\n * // This cancels the default drop logic of the `igxDrop`\n * event.cancel = true;\n * event.drag.dropFinished();\n * }\n * ```\n * @return {?}\n */\n function () {\n this.updateDragRelativePos();\n if (this.animateOnRelease && this.ghostElement) {\n this.transitionToOrigin();\n }\n };\n /**\n * @hidden\n */\n /**\n * @hidden\n * @param {?} event\n * @return {?}\n */\n IgxDragDirective.prototype.onTransitionEnd = /**\n * @hidden\n * @param {?} event\n * @return {?}\n */\n function (event) {\n var _this = this;\n if ((!this._dragStarted && !this.animInProgress) || this._clicked) {\n // Return if no dragging started and there is no animation in progress.\n return;\n }\n if (this.ghost && this.ghostElement) {\n this._ghostStartX = this.baseLeft + this.getWindowScrollLeft();\n this._ghostStartY = this.baseTop + this.getWindowScrollTop();\n /** @type {?} */\n var ghostDestroyArgs = {\n owner: this,\n ghostElement: this.ghostElement,\n cancel: false\n };\n this.ghostDestroy.emit(ghostDestroyArgs);\n if (ghostDestroyArgs.cancel) {\n return;\n }\n if (this.hideBaseOnDrag) {\n this.visible = true;\n }\n this.ghostElement.parentNode.removeChild(this.ghostElement);\n this.ghostElement = null;\n }\n else if (!this.ghost) {\n this.element.nativeElement.style.transitionProperty = '';\n this.element.nativeElement.style.transitionDuration = '0.0s';\n this.element.nativeElement.style.transitionTimingFunction = '';\n this.element.nativeElement.style.transitionDelay = '';\n }\n this.animInProgress = false;\n this._dragStarted = false;\n // Execute transitioned after everything is reset so if the user sets new location on the base now it would work as expected.\n this.zone.run(function () {\n _this.transitioned.emit({\n originalEvent: event,\n owner: _this,\n startX: _this._startX,\n startY: _this._startY,\n pageX: _this._startX,\n pageY: _this._startY\n });\n });\n };\n /**\n * @hidden\n */\n /**\n * @hidden\n * @protected\n * @param {?} pageX\n * @param {?} pageY\n * @return {?}\n */\n IgxDragDirective.prototype.getElementsAtPoint = /**\n * @hidden\n * @protected\n * @param {?} pageX\n * @param {?} pageY\n * @return {?}\n */\n function (pageX, pageY) {\n // correct the coordinates with the current scroll position, because\n // document.elementsFromPoint consider position within the current viewport\n // window.pageXOffset == window.scrollX; // always true\n // using window.pageXOffset for IE9 compatibility\n /** @type {?} */\n var viewPortX = pageX - window.pageXOffset;\n /** @type {?} */\n var viewPortY = pageY - window.pageYOffset;\n if (document['msElementsFromPoint']) {\n // Edge and IE special snowflakes\n /** @type {?} */\n var elements = document['msElementsFromPoint'](viewPortX, viewPortY);\n return elements === null ? [] : elements;\n }\n else {\n // Other browsers like Chrome, Firefox, Opera\n return document.elementsFromPoint(viewPortX, viewPortY);\n }\n };\n /**\n * @hidden\n */\n /**\n * @hidden\n * @protected\n * @param {?} target\n * @param {?} eventName\n * @param {?} eventArgs\n * @return {?}\n */\n IgxDragDirective.prototype.dispatchEvent = /**\n * @hidden\n * @protected\n * @param {?} target\n * @param {?} eventName\n * @param {?} eventArgs\n * @return {?}\n */\n function (target, eventName, eventArgs) {\n // This way is IE11 compatible.\n /** @type {?} */\n var dragLeaveEvent = document.createEvent('CustomEvent');\n dragLeaveEvent.initCustomEvent(eventName, false, false, eventArgs);\n target.dispatchEvent(dragLeaveEvent);\n // Otherwise can be used `target.dispatchEvent(new CustomEvent(eventName, eventArgs));`\n };\n /**\n * @protected\n * @param {?} elem\n * @return {?}\n */\n IgxDragDirective.prototype.getTransformX = /**\n * @protected\n * @param {?} elem\n * @return {?}\n */\n function (elem) {\n /** @type {?} */\n var posX = 0;\n if (elem.style.transform) {\n /** @type {?} */\n var matrix = elem.style.transform;\n /** @type {?} */\n var values = matrix ? matrix.match(/-?[\\d\\.]+/g) : undefined;\n posX = values ? Number(values[1]) : 0;\n }\n return posX;\n };\n /**\n * @protected\n * @param {?} elem\n * @return {?}\n */\n IgxDragDirective.prototype.getTransformY = /**\n * @protected\n * @param {?} elem\n * @return {?}\n */\n function (elem) {\n /** @type {?} */\n var posY = 0;\n if (elem.style.transform) {\n /** @type {?} */\n var matrix = elem.style.transform;\n /** @type {?} */\n var values = matrix ? matrix.match(/-?[\\d\\.]+/g) : undefined;\n posY = values ? Number(values[2]) : 0;\n }\n return posY;\n };\n /** Method setting transformation to the base draggable element. */\n /**\n * Method setting transformation to the base draggable element.\n * @protected\n * @param {?} x\n * @param {?} y\n * @return {?}\n */\n IgxDragDirective.prototype.setTransformXY = /**\n * Method setting transformation to the base draggable element.\n * @protected\n * @param {?} x\n * @param {?} y\n * @return {?}\n */\n function (x, y) {\n this.element.nativeElement.style.transform = 'translate3d(' + x + 'px, ' + y + 'px, 0px)';\n };\n /**\n * @protected\n * @return {?}\n */\n IgxDragDirective.prototype.getWindowScrollTop = /**\n * @protected\n * @return {?}\n */\n function () {\n return window.scrollY ? window.scrollY : (window.pageYOffset ? window.pageYOffset : 0);\n };\n /**\n * @protected\n * @return {?}\n */\n IgxDragDirective.prototype.getWindowScrollLeft = /**\n * @protected\n * @return {?}\n */\n function () {\n return window.scrollX ? window.scrollX : (window.pageXOffset ? window.pageXOffset : 0);\n };\n /**\n * @protected\n * @param {?} ghostHost\n * @return {?}\n */\n IgxDragDirective.prototype.ghostHostOffsetLeft = /**\n * @protected\n * @param {?} ghostHost\n * @return {?}\n */\n function (ghostHost) {\n /** @type {?} */\n var ghostPosition = document.defaultView.getComputedStyle(ghostHost).getPropertyValue('position');\n if (ghostPosition === 'static' && ghostHost.offsetParent && ghostHost.offsetParent === document.body) {\n return 0;\n }\n else if (ghostPosition === 'static' && ghostHost.offsetParent) {\n return ghostHost.offsetParent.getBoundingClientRect().left - this.getWindowScrollLeft();\n }\n return ghostHost.getBoundingClientRect().left - this.getWindowScrollLeft();\n };\n /**\n * @protected\n * @param {?} ghostHost\n * @return {?}\n */\n IgxDragDirective.prototype.ghostHostOffsetTop = /**\n * @protected\n * @param {?} ghostHost\n * @return {?}\n */\n function (ghostHost) {\n /** @type {?} */\n var ghostPosition = document.defaultView.getComputedStyle(ghostHost).getPropertyValue('position');\n if (ghostPosition === 'static' && ghostHost.offsetParent && ghostHost.offsetParent === document.body) {\n return 0;\n }\n else if (ghostPosition === 'static' && ghostHost.offsetParent) {\n return ghostHost.offsetParent.getBoundingClientRect().top - this.getWindowScrollTop();\n }\n return ghostHost.getBoundingClientRect().top - this.getWindowScrollTop();\n };\n IgxDragDirective.decorators = [\n { type: Directive, args: [{\n exportAs: 'drag',\n selector: '[igxDrag]'\n },] }\n ];\n /** @nocollapse */\n IgxDragDirective.ctorParameters = function () { return [\n { type: ChangeDetectorRef },\n { type: ElementRef },\n { type: ViewContainerRef },\n { type: NgZone },\n { type: Renderer2 }\n ]; };\n IgxDragDirective.propDecorators = {\n data: [{ type: Input, args: ['igxDrag',] }],\n dragTolerance: [{ type: Input }],\n dragChannel: [{ type: Input }],\n ghost: [{ type: Input }],\n ghostClass: [{ type: Input }],\n hideBaseOnDrag: [{ type: Input }],\n animateOnRelease: [{ type: Input }],\n ghostTemplate: [{ type: Input }],\n ghostHost: [{ type: Input }],\n ghostOffsetX: [{ type: Input }],\n ghostOffsetY: [{ type: Input }],\n dragStart: [{ type: Output }],\n dragMove: [{ type: Output }],\n dragEnd: [{ type: Output }],\n dragClick: [{ type: Output }],\n ghostCreate: [{ type: Output }],\n ghostDestroy: [{ type: Output }],\n transitioned: [{ type: Output }],\n dragHandles: [{ type: ContentChildren, args: [IgxDragHandleDirective,] }],\n _visibility: [{ type: HostBinding, args: ['style.visibility',] }],\n baseClass: [{ type: HostBinding, args: ['class.igx-drag',] }],\n selectDisabled: [{ type: HostBinding, args: ['class.igx-drag--select-disabled',] }]\n };\n __decorate([\n DeprecateProperty(\"'hideBaseOnDrag' @Input property is deprecated and will be removed in future major versions.\\n Alternatives to it are using the new no ghost dragging and custom base styling.\"),\n __metadata(\"design:type\", Object)\n ], IgxDragDirective.prototype, \"hideBaseOnDrag\", void 0);\n __decorate([\n DeprecateProperty(\"'animateOnRelease' @Input property is deprecated and will be removed in future major versions.\\n Please use 'transitionToOrigin' or 'transitionTo' methods instead.\"),\n __metadata(\"design:type\", Object)\n ], IgxDragDirective.prototype, \"animateOnRelease\", void 0);\n __decorate([\n DeprecateProperty(\"'visible' @Input property is deprecated and will be removed in future major versions.\\n Please use native angular ways of hiding the base element using styling.\"),\n __metadata(\"design:type\", Object),\n __metadata(\"design:paramtypes\", [Object])\n ], IgxDragDirective.prototype, \"visible\", null);\n return IgxDragDirective;\n}());\nvar IgxDropDirective = /** @class */ (function () {\n function IgxDropDirective(element, _renderer, _zone) {\n this.element = element;\n this._renderer = _renderer;\n this._zone = _zone;\n /**\n * Event triggered when dragged element enters the area of the element.\n * ```html\n *
\n *
\n * ```\n * ```typescript\n * public dragEnter(){\n * alert(\"A draggable element has entered the chip area!\");\n * }\n * ```\n * \\@memberof IgxDropDirective\n */\n this.enter = new EventEmitter();\n /**\n * Event triggered when dragged element enters the area of the element.\n * ```html\n *
\n *
\n * ```\n * ```typescript\n * public dragEnter(){\n * alert(\"A draggable element has entered the chip area!\");\n * }\n * ```\n * \\@memberof IgxDropDirective\n */\n this.over = new EventEmitter();\n /**\n * Event triggered when dragged element leaves the area of the element.\n * ```html\n *
\n *
\n * ```\n * ```typescript\n * public dragLeave(){\n * alert(\"A draggable element has left the chip area!\");\n * }\n * ```\n * \\@memberof IgxDropDirective\n */\n this.leave = new EventEmitter();\n /**\n * Event triggered when dragged element is dropped in the area of the element.\n * Since the `igxDrop` has default logic that appends the dropped element as a child, it can be canceled here.\n * To cancel the default logic the `cancel` property of the event needs to be set to true.\n * ```html\n *
\n *
\n * ```\n * ```typescript\n * public dragDrop(){\n * alert(\"A draggable element has been dropped in the chip area!\");\n * }\n * ```\n * \\@memberof IgxDropDirective\n */\n this.dropped = new EventEmitter();\n /**\n * @hidden\n */\n this.droppable = true;\n /**\n * @hidden\n */\n this.dragover = false;\n /**\n * @hidden\n */\n this._destroy = new Subject();\n this._dropStrategy = new IgxDefaultDropStrategy();\n }\n Object.defineProperty(IgxDropDirective.prototype, \"dropStrategy\", {\n get: /**\n * @return {?}\n */\n function () {\n return this._dropStrategy;\n },\n /**\n * An @Input property that specifies a drop strategy type that will be executed when an `IgxDrag` element is released inside\n * the current drop area. The provided strategies are:\n * - IgxDefaultDropStrategy - This is the default base strategy and it doesn't perform any actions.\n * - IgxAppendDropStrategy - Appends the dropped element to last position as a direct child to the `igxDrop`.\n * - IgxPrependDropStrategy - Prepends the dropped element to first position as a direct child to the `igxDrop`.\n * - IgxInsertDropStrategy - If the dropped element is released above a child element of the `igxDrop`, it will be inserted\n * at that position. Otherwise the dropped element will be appended if released outside any child of the `igxDrop`.\n * ```html\n *
\n * DragMe\n *
\n *
\n * Numbers drop area!\n *
\n * ```\n * ```typescript\n * import { IgxAppendDropStrategy } from 'igniteui-angular';\n *\n * export class App {\n * public myDropStrategy = IgxAppendDropStrategy;\n * }\n * ```\n * @memberof IgxDropDirective\n */\n set: /**\n * An \\@Input property that specifies a drop strategy type that will be executed when an `IgxDrag` element is released inside\n * the current drop area. The provided strategies are:\n * - IgxDefaultDropStrategy - This is the default base strategy and it doesn't perform any actions.\n * - IgxAppendDropStrategy - Appends the dropped element to last position as a direct child to the `igxDrop`.\n * - IgxPrependDropStrategy - Prepends the dropped element to first position as a direct child to the `igxDrop`.\n * - IgxInsertDropStrategy - If the dropped element is released above a child element of the `igxDrop`, it will be inserted\n * at that position. Otherwise the dropped element will be appended if released outside any child of the `igxDrop`.\n * ```html\n *
\n * DragMe\n *
\n *
\n * Numbers drop area!\n *
\n * ```\n * ```typescript\n * import { IgxAppendDropStrategy } from 'igniteui-angular';\n *\n * export class App {\n * public myDropStrategy = IgxAppendDropStrategy;\n * }\n * ```\n * \\@memberof IgxDropDirective\n * @param {?} classRef\n * @return {?}\n */\n function (classRef) {\n this._dropStrategy = new classRef(this._renderer);\n },\n enumerable: true,\n configurable: true\n });\n /**\n * @hidden\n */\n /**\n * @hidden\n * @return {?}\n */\n IgxDropDirective.prototype.ngOnInit = /**\n * @hidden\n * @return {?}\n */\n function () {\n var _this = this;\n this._zone.runOutsideAngular(function () {\n fromEvent(_this.element.nativeElement, 'igxDragEnter').pipe(takeUntil(_this._destroy))\n .subscribe(function (res) { return _this.onDragEnter((/** @type {?} */ (res))); });\n fromEvent(_this.element.nativeElement, 'igxDragLeave').pipe(takeUntil(_this._destroy)).subscribe(function (res) { return _this.onDragLeave(res); });\n fromEvent(_this.element.nativeElement, 'igxDragOver').pipe(takeUntil(_this._destroy)).subscribe(function (res) { return _this.onDragOver(res); });\n });\n };\n /**\n * @hidden\n */\n /**\n * @hidden\n * @return {?}\n */\n IgxDropDirective.prototype.ngOnDestroy = /**\n * @hidden\n * @return {?}\n */\n function () {\n this._destroy.next(true);\n this._destroy.complete();\n };\n /**\n * @hidden\n */\n /**\n * @hidden\n * @param {?} event\n * @return {?}\n */\n IgxDropDirective.prototype.onDragOver = /**\n * @hidden\n * @param {?} event\n * @return {?}\n */\n function (event) {\n /** @type {?} */\n var elementPosX = this.element.nativeElement.getBoundingClientRect().left + this.getWindowScrollLeft();\n /** @type {?} */\n var elementPosY = this.element.nativeElement.getBoundingClientRect().top + this.getWindowScrollTop();\n /** @type {?} */\n var offsetX = event.detail.pageX - elementPosX;\n /** @type {?} */\n var offsetY = event.detail.pageY - elementPosY;\n /** @type {?} */\n var eventArgs = {\n originalEvent: event.detail.originalEvent,\n owner: this,\n drag: event.detail.owner,\n dragData: event.detail.owner.data,\n startX: event.detail.startX,\n startY: event.detail.startY,\n pageX: event.detail.pageX,\n pageY: event.detail.pageY,\n offsetX: offsetX,\n offsetY: offsetY\n };\n this.over.emit(eventArgs);\n };\n /**\n * @hidden\n */\n /**\n * @hidden\n * @param {?} event\n * @return {?}\n */\n IgxDropDirective.prototype.onDragEnter = /**\n * @hidden\n * @param {?} event\n * @return {?}\n */\n function (event) {\n var _this = this;\n if (!this.isDragLinked(event.detail.owner)) {\n return;\n }\n this.dragover = true;\n /** @type {?} */\n var elementPosX = this.element.nativeElement.getBoundingClientRect().left + this.getWindowScrollLeft();\n /** @type {?} */\n var elementPosY = this.element.nativeElement.getBoundingClientRect().top + this.getWindowScrollTop();\n /** @type {?} */\n var offsetX = event.detail.pageX - elementPosX;\n /** @type {?} */\n var offsetY = event.detail.pageY - elementPosY;\n /** @type {?} */\n var eventArgs = {\n originalEvent: event.detail.originalEvent,\n owner: this,\n drag: event.detail.owner,\n dragData: event.detail.owner.data,\n startX: event.detail.startX,\n startY: event.detail.startY,\n pageX: event.detail.pageX,\n pageY: event.detail.pageY,\n offsetX: offsetX,\n offsetY: offsetY\n };\n this._zone.run(function () {\n _this.enter.emit(eventArgs);\n });\n };\n /**\n * @hidden\n */\n /**\n * @hidden\n * @param {?} event\n * @return {?}\n */\n IgxDropDirective.prototype.onDragLeave = /**\n * @hidden\n * @param {?} event\n * @return {?}\n */\n function (event) {\n var _this = this;\n if (!this.isDragLinked(event.detail.owner)) {\n return;\n }\n this.dragover = false;\n /** @type {?} */\n var elementPosX = this.element.nativeElement.getBoundingClientRect().left + this.getWindowScrollLeft();\n /** @type {?} */\n var elementPosY = this.element.nativeElement.getBoundingClientRect().top + this.getWindowScrollTop();\n /** @type {?} */\n var offsetX = event.detail.pageX - elementPosX;\n /** @type {?} */\n var offsetY = event.detail.pageY - elementPosY;\n /** @type {?} */\n var eventArgs = {\n originalEvent: event.detail.originalEvent,\n owner: this,\n drag: event.detail.owner,\n dragData: event.detail.owner.data,\n startX: event.detail.startX,\n startY: event.detail.startY,\n pageX: event.detail.pageX,\n pageY: event.detail.pageY,\n offsetX: offsetX,\n offsetY: offsetY\n };\n this._zone.run(function () {\n _this.leave.emit(eventArgs);\n });\n };\n /**\n * @hidden\n */\n /**\n * @hidden\n * @param {?} event\n * @return {?}\n */\n IgxDropDirective.prototype.onDragDrop = /**\n * @hidden\n * @param {?} event\n * @return {?}\n */\n function (event) {\n var _this = this;\n if (!this.isDragLinked(event.detail.owner)) {\n return;\n }\n /** @type {?} */\n var elementPosX = this.element.nativeElement.getBoundingClientRect().left + this.getWindowScrollLeft();\n /** @type {?} */\n var elementPosY = this.element.nativeElement.getBoundingClientRect().top + this.getWindowScrollTop();\n /** @type {?} */\n var offsetX = event.detail.pageX - elementPosX;\n /** @type {?} */\n var offsetY = event.detail.pageY - elementPosY;\n /** @type {?} */\n var args = {\n owner: this,\n originalEvent: event.detail.originalEvent,\n drag: event.detail.owner,\n dragData: event.detail.owner.data,\n startX: event.detail.startX,\n startY: event.detail.startY,\n pageX: event.detail.pageX,\n pageY: event.detail.pageY,\n offsetX: offsetX,\n offsetY: offsetY,\n cancel: false\n };\n this._zone.run(function () {\n _this.dropped.emit(args);\n });\n if (this._dropStrategy && !args.cancel) {\n /** @type {?} */\n var elementsAtPoint = event.detail.owner.getElementsAtPoint(event.detail.pageX, event.detail.pageY);\n /** @type {?} */\n var insertIndex = this.getInsertIndexAt(event.detail.owner, elementsAtPoint);\n this._dropStrategy.dropAction(event.detail.owner, this, insertIndex);\n }\n };\n /**\n * @protected\n * @return {?}\n */\n IgxDropDirective.prototype.getWindowScrollTop = /**\n * @protected\n * @return {?}\n */\n function () {\n return window.scrollY ? window.scrollY : (window.pageYOffset ? window.pageYOffset : 0);\n };\n /**\n * @protected\n * @return {?}\n */\n IgxDropDirective.prototype.getWindowScrollLeft = /**\n * @protected\n * @return {?}\n */\n function () {\n return window.scrollX ? window.scrollX : (window.pageXOffset ? window.pageXOffset : 0);\n };\n /**\n * @protected\n * @param {?} drag\n * @return {?}\n */\n IgxDropDirective.prototype.isDragLinked = /**\n * @protected\n * @param {?} drag\n * @return {?}\n */\n function (drag) {\n /** @type {?} */\n var dragLinkArray = drag.dragChannel instanceof Array;\n /** @type {?} */\n var dropLinkArray = this.dropChannel instanceof Array;\n if (!dragLinkArray && !dropLinkArray) {\n return this.dropChannel === drag.dragChannel;\n }\n else if (!dragLinkArray && dropLinkArray) {\n /** @type {?} */\n var dropLinks = (/** @type {?} */ (this.dropChannel));\n for (var i = 0; i < dropLinks.length; i++) {\n if (dropLinks[i] === drag.dragChannel) {\n return true;\n }\n }\n }\n else if (dragLinkArray && !dropLinkArray) {\n /** @type {?} */\n var dragLinks = (/** @type {?} */ (drag.dragChannel));\n for (var i = 0; i < dragLinks.length; i++) {\n if (dragLinks[i] === this.dropChannel) {\n return true;\n }\n }\n }\n else {\n /** @type {?} */\n var dragLinks = (/** @type {?} */ (drag.dragChannel));\n /** @type {?} */\n var dropLinks = (/** @type {?} */ (this.dropChannel));\n for (var i = 0; i < dragLinks.length; i++) {\n for (var j = 0; j < dropLinks.length; j++) {\n if (dragLinks[i] === dropLinks[j]) {\n return true;\n }\n }\n }\n }\n return false;\n };\n /**\n * @protected\n * @param {?} draggedDir\n * @param {?} elementsAtPoint\n * @return {?}\n */\n IgxDropDirective.prototype.getInsertIndexAt = /**\n * @protected\n * @param {?} draggedDir\n * @param {?} elementsAtPoint\n * @return {?}\n */\n function (draggedDir, elementsAtPoint) {\n /** @type {?} */\n var insertIndex = -1;\n /** @type {?} */\n var dropChildren = Array.prototype.slice.call(this.element.nativeElement.children);\n if (!dropChildren.length) {\n return insertIndex;\n }\n /** @type {?} */\n var i = 0;\n /** @type {?} */\n var childUnder = null;\n while (!childUnder && i < elementsAtPoint.length) {\n if (elementsAtPoint[i].parentElement === this.element.nativeElement) {\n childUnder = elementsAtPoint[i];\n }\n i++;\n }\n /** @type {?} */\n var draggedElemIndex = dropChildren.indexOf(draggedDir.element.nativeElement);\n insertIndex = dropChildren.indexOf(childUnder);\n if (draggedElemIndex !== -1 && draggedElemIndex < insertIndex) {\n insertIndex++;\n }\n return insertIndex;\n };\n IgxDropDirective.decorators = [\n { type: Directive, args: [{\n exportAs: 'drop',\n selector: '[igxDrop]'\n },] }\n ];\n /** @nocollapse */\n IgxDropDirective.ctorParameters = function () { return [\n { type: ElementRef },\n { type: Renderer2 },\n { type: NgZone }\n ]; };\n IgxDropDirective.propDecorators = {\n data: [{ type: Input, args: ['igxDrop',] }],\n dropChannel: [{ type: Input }],\n dropStrategy: [{ type: Input }],\n enter: [{ type: Output }],\n over: [{ type: Output }],\n leave: [{ type: Output }],\n dropped: [{ type: Output }],\n droppable: [{ type: HostBinding, args: ['attr.droppable',] }],\n dragover: [{ type: HostBinding, args: ['class.dragOver',] }],\n onDragDrop: [{ type: HostListener, args: ['igxDrop', ['$event'],] }]\n };\n return IgxDropDirective;\n}());\n/**\n * @hidden\n */\nvar IgxDragDropModule = /** @class */ (function () {\n function IgxDragDropModule() {\n }\n IgxDragDropModule.decorators = [\n { type: NgModule, args: [{\n declarations: [IgxDragDirective, IgxDropDirective, IgxDragHandleDirective],\n exports: [IgxDragDirective, IgxDropDirective, IgxDragHandleDirective]\n },] }\n ];\n return IgxDragDropModule;\n}());\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\nvar IgxFilterOptions = /** @class */ (function () {\n function IgxFilterOptions() {\n // Input text value that will be used as a filtering pattern (matching condition is based on it)\n this.inputValue = '';\n }\n // Function - get value to be tested from the item\n // item - single item of the list to be filtered\n // key - property name of item, which value should be tested\n // Default behavior - returns \"key\"- named property value of item if key si provided,\n // otherwise textContent of the item's html element\n // Function - get value to be tested from the item\n // item - single item of the list to be filtered\n // key - property name of item, which value should be tested\n // Default behavior - returns \"key\"- named property value of item if key si provided,\n // otherwise textContent of the item's html element\n /**\n * @param {?} item\n * @param {?} key\n * @return {?}\n */\n IgxFilterOptions.prototype.get_value = \n // Function - get value to be tested from the item\n // item - single item of the list to be filtered\n // key - property name of item, which value should be tested\n // Default behavior - returns \"key\"- named property value of item if key si provided,\n // otherwise textContent of the item's html element\n /**\n * @param {?} item\n * @param {?} key\n * @return {?}\n */\n function (item, key) {\n /** @type {?} */\n var result = '';\n if (key && item[key]) {\n result = item[key].toString();\n }\n else if (item.element) {\n if (item.element.nativeElement) {\n result = item.element.nativeElement.textContent.trim();\n // Check if element doesn't return the DOM element directly\n }\n else if (item.element.textContent) {\n result = item.element.textContent.trim();\n }\n }\n return result;\n };\n // Function - formats the original text before matching process\n // Default behavior - returns text to lower case\n // Function - formats the original text before matching process\n // Default behavior - returns text to lower case\n /**\n * @param {?} valueToTest\n * @return {?}\n */\n IgxFilterOptions.prototype.formatter = \n // Function - formats the original text before matching process\n // Default behavior - returns text to lower case\n /**\n * @param {?} valueToTest\n * @return {?}\n */\n function (valueToTest) {\n return valueToTest.toLowerCase();\n };\n // Function - determines whether the item met the condition\n // valueToTest - text value that should be tested\n // inputValue - text value from input that condition is based on\n // Default behavior - \"contains\"\n // Function - determines whether the item met the condition\n // valueToTest - text value that should be tested\n // inputValue - text value from input that condition is based on\n // Default behavior - \"contains\"\n /**\n * @param {?} valueToTest\n * @param {?} inputValue\n * @return {?}\n */\n IgxFilterOptions.prototype.matchFn = \n // Function - determines whether the item met the condition\n // valueToTest - text value that should be tested\n // inputValue - text value from input that condition is based on\n // Default behavior - \"contains\"\n /**\n * @param {?} valueToTest\n * @param {?} inputValue\n * @return {?}\n */\n function (valueToTest, inputValue) {\n return valueToTest.indexOf(inputValue && inputValue.toLowerCase() || '') > -1;\n };\n // Function - executed after matching test for every matched item\n // Default behavior - shows the item\n // Function - executed after matching test for every matched item\n // Default behavior - shows the item\n /**\n * @param {?} item\n * @return {?}\n */\n IgxFilterOptions.prototype.metConditionFn = \n // Function - executed after matching test for every matched item\n // Default behavior - shows the item\n /**\n * @param {?} item\n * @return {?}\n */\n function (item) {\n if (item.hasOwnProperty('hidden')) {\n item.hidden = false;\n }\n };\n // Function - executed for every NOT matched item after matching test\n // Default behavior - hides the item\n // Function - executed for every NOT matched item after matching test\n // Default behavior - hides the item\n /**\n * @param {?} item\n * @return {?}\n */\n IgxFilterOptions.prototype.overdueConditionFn = \n // Function - executed for every NOT matched item after matching test\n // Default behavior - hides the item\n /**\n * @param {?} item\n * @return {?}\n */\n function (item) {\n if (item.hasOwnProperty('hidden')) {\n item.hidden = true;\n }\n };\n return IgxFilterOptions;\n}());\nvar IgxFilterDirective = /** @class */ (function () {\n function IgxFilterDirective(element, renderer) {\n this.element = element;\n this.filtering = new EventEmitter(false); // synchronous event emitter\n // synchronous event emitter\n this.filtered = new EventEmitter();\n }\n /**\n * @param {?} changes\n * @return {?}\n */\n IgxFilterDirective.prototype.ngOnChanges = /**\n * @param {?} changes\n * @return {?}\n */\n function (changes) {\n // Detect only changes of input value\n if (changes.filterOptions &&\n changes.filterOptions.currentValue &&\n changes.filterOptions.currentValue.inputValue !== undefined &&\n changes.filterOptions.previousValue &&\n changes.filterOptions.currentValue.inputValue !== changes.filterOptions.previousValue.inputValue) {\n this.filter();\n }\n };\n /**\n * @private\n * @return {?}\n */\n IgxFilterDirective.prototype.filter = /**\n * @private\n * @return {?}\n */\n function () {\n if (!this.filterOptions.items) {\n return;\n }\n /** @type {?} */\n var args = { cancel: false, items: this.filterOptions.items };\n this.filtering.emit(args);\n if (args.cancel) {\n return;\n }\n /** @type {?} */\n var pipe = new IgxFilterPipe();\n /** @type {?} */\n var filtered = pipe.transform(this.filterOptions.items, this.filterOptions);\n this.filtered.emit({ filteredItems: filtered });\n };\n IgxFilterDirective.decorators = [\n { type: Directive, args: [{\n selector: '[igxFilter]'\n },] }\n ];\n /** @nocollapse */\n IgxFilterDirective.ctorParameters = function () { return [\n { type: ElementRef },\n { type: Renderer2 }\n ]; };\n IgxFilterDirective.propDecorators = {\n filtering: [{ type: Output }],\n filtered: [{ type: Output }],\n filterOptions: [{ type: Input, args: ['igxFilter',] }]\n };\n return IgxFilterDirective;\n}());\nvar IgxFilterPipe = /** @class */ (function () {\n function IgxFilterPipe() {\n }\n /**\n * @param {?} items\n * @param {?} options\n * @return {?}\n */\n IgxFilterPipe.prototype.transform = /**\n * @param {?} items\n * @param {?} options\n * @return {?}\n */\n function (items, \n // options - initial settings of filter functionality\n options) {\n /** @type {?} */\n var result = [];\n if (!items || !items.length || !options) {\n return;\n }\n if (options.items) {\n items = options.items;\n }\n result = items.filter(function (item) {\n /** @type {?} */\n var match = options.matchFn(options.formatter(options.get_value(item, options.key)), options.inputValue);\n if (match) {\n if (options.metConditionFn) {\n options.metConditionFn(item);\n }\n }\n else {\n if (options.overdueConditionFn) {\n options.overdueConditionFn(item);\n }\n }\n return match;\n });\n return result;\n };\n IgxFilterPipe.decorators = [\n { type: Pipe, args: [{\n name: 'igxFilter',\n pure: false\n },] }\n ];\n return IgxFilterPipe;\n}());\n/**\n * @hidden\n */\nvar IgxFilterModule = /** @class */ (function () {\n function IgxFilterModule() {\n }\n IgxFilterModule.decorators = [\n { type: NgModule, args: [{\n declarations: [IgxFilterDirective, IgxFilterPipe],\n exports: [IgxFilterDirective, IgxFilterPipe],\n imports: [CommonModule]\n },] }\n ];\n return IgxFilterModule;\n}());\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\nvar IgxFocusDirective = /** @class */ (function () {\n function IgxFocusDirective(element, comp) {\n this.element = element;\n this.comp = comp;\n this.focusState = true;\n }\n Object.defineProperty(IgxFocusDirective.prototype, \"focused\", {\n /**\n * Returns the state of the igxFocus.\n * ```typescript\n * @ViewChild('focusContainer', {read: IgxFocusDirective})\n * public igxFocus: IgxFocusDirective;\n * let isFocusOn = this.igxFocus.focused;\n * ```\n * @memberof IgxFocusDirective\n */\n get: /**\n * Returns the state of the igxFocus.\n * ```typescript\n * \\@ViewChild('focusContainer', {read: IgxFocusDirective})\n * public igxFocus: IgxFocusDirective;\n * let isFocusOn = this.igxFocus.focused;\n * ```\n * \\@memberof IgxFocusDirective\n * @return {?}\n */\n function () {\n return this.focusState;\n },\n /**\n * Sets the state of the igxFocus.\n * ```html\n * \n * \n * \n * ```\n * @memberof IgxFocusDirective\n */\n set: /**\n * Sets the state of the igxFocus.\n * ```html\n * \n * \n * \n * ```\n * \\@memberof IgxFocusDirective\n * @param {?} val\n * @return {?}\n */\n function (val) {\n this.focusState = val;\n this.trigger();\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxFocusDirective.prototype, \"nativeElement\", {\n /**\n * Gets the native element of the igxFocus.\n * ```typescript\n * @ViewChild('focusContainer', {read: IgxFocusDirective})\n * public igxFocus: IgxFocusDirective;\n * let igxFocusNativeElement = this.igxFocus.nativeElement;\n * ```\n * @memberof IgxFocusDirective\n */\n get: /**\n * Gets the native element of the igxFocus.\n * ```typescript\n * \\@ViewChild('focusContainer', {read: IgxFocusDirective})\n * public igxFocus: IgxFocusDirective;\n * let igxFocusNativeElement = this.igxFocus.nativeElement;\n * ```\n * \\@memberof IgxFocusDirective\n * @return {?}\n */\n function () {\n if (this.comp && this.comp[0] && this.comp[0].getEditElement) {\n return ((/** @type {?} */ (this.comp[0]))).getEditElement();\n }\n return this.element.nativeElement;\n },\n enumerable: true,\n configurable: true\n });\n /**\n * Triggers the igxFocus state.\n * ```typescript\n * @ViewChild('focusContainer', {read: IgxFocusDirective})\n * public igxFocus: IgxFocusDirective;\n * this.igxFocus.trigger();\n * ```\n * @memberof IgxFocusDirective\n */\n /**\n * Triggers the igxFocus state.\n * ```typescript\n * \\@ViewChild('focusContainer', {read: IgxFocusDirective})\n * public igxFocus: IgxFocusDirective;\n * this.igxFocus.trigger();\n * ```\n * \\@memberof IgxFocusDirective\n * @return {?}\n */\n IgxFocusDirective.prototype.trigger = /**\n * Triggers the igxFocus state.\n * ```typescript\n * \\@ViewChild('focusContainer', {read: IgxFocusDirective})\n * public igxFocus: IgxFocusDirective;\n * this.igxFocus.trigger();\n * ```\n * \\@memberof IgxFocusDirective\n * @return {?}\n */\n function () {\n var _this = this;\n if (this.focusState) {\n requestAnimationFrame(function () { return _this.nativeElement.focus(); });\n }\n };\n IgxFocusDirective.decorators = [\n { type: Directive, args: [{\n exportAs: 'igxFocus',\n selector: '[igxFocus]'\n },] }\n ];\n /** @nocollapse */\n IgxFocusDirective.ctorParameters = function () { return [\n { type: ElementRef },\n { type: Array, decorators: [{ type: Inject, args: [NG_VALUE_ACCESSOR,] }, { type: Self }, { type: Optional }] }\n ]; };\n IgxFocusDirective.propDecorators = {\n focused: [{ type: Input, args: ['igxFocus',] }]\n };\n return IgxFocusDirective;\n}());\n/**\n * @hidden\n */\nvar IgxFocusModule = /** @class */ (function () {\n function IgxFocusModule() {\n }\n IgxFocusModule.decorators = [\n { type: NgModule, args: [{\n declarations: [IgxFocusDirective],\n exports: [IgxFocusDirective]\n },] }\n ];\n return IgxFocusModule;\n}());\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\nvar IgxLayoutDirective = /** @class */ (function () {\n function IgxLayoutDirective() {\n /**\n * Sets the default flow direction of the container's children.\n *\n * Defaults to `rows`.\n *\n * ```html\n * \n *
1
\n *
2
\n *
3
\n * \n * ```\n */\n this.dir = 'row';\n /**\n * Defines the direction flex children are placed in the flex container.\n *\n * When set to `true`, the `rows` direction goes right to left and `columns` goes bottom to top.\n *\n * ```html\n * \n *
1
\n *
2
\n *
3
\n * \n * ```\n */\n this.reverse = false;\n /**\n * By default the immediate children will all try to fit onto one line.\n *\n * The default value `nowrap` sets this behavior.\n *\n * Other accepted values are `wrap` and `wrap-reverse`.\n *\n * ```html\n * \n *
1
\n *
2
\n *
3
\n * \n * ```\n */\n this.wrap = 'nowrap';\n /**\n * Defines the alignment along the main axis.\n *\n * Defaults to `flex-start` which packs the children toward the start line.\n *\n * Other possible values are `flex-end`, `center`, `space-between`, `space-around`.\n *\n * ```html\n * \n *
1
\n *
2
\n *
3
\n * \n * ```\n */\n this.justify = 'flex-start';\n /**\n * Defines the default behavior for how children are laid out along the corss axis of the current line.\n *\n * Defaults to `flex-start`.\n *\n * Other possible values are `flex-end`, `center`, `baseline`, and `stretch`.\n *\n * ```html\n * \n *
1
\n *
2
\n *
3
\n * \n * ```\n */\n this.itemAlign = 'stretch';\n /**\n * @hidden\n */\n this.display = 'flex';\n }\n Object.defineProperty(IgxLayoutDirective.prototype, \"flexwrap\", {\n /**\n * @hidden\n */\n get: /**\n * @hidden\n * @return {?}\n */\n function () { return this.wrap; },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxLayoutDirective.prototype, \"justifycontent\", {\n /**\n * @hidden\n */\n get: /**\n * @hidden\n * @return {?}\n */\n function () { return this.justify; },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxLayoutDirective.prototype, \"align\", {\n /**\n * @hidden\n */\n get: /**\n * @hidden\n * @return {?}\n */\n function () { return this.itemAlign; },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxLayoutDirective.prototype, \"direction\", {\n /**\n * @hidden\n */\n get: /**\n * @hidden\n * @return {?}\n */\n function () {\n if (this.reverse) {\n return (this.dir === 'row') ? 'row-reverse' : 'column-reverse';\n }\n return (this.dir === 'row') ? 'row' : 'column';\n },\n enumerable: true,\n configurable: true\n });\n IgxLayoutDirective.decorators = [\n { type: Directive, args: [{\n selector: '[igxLayout]'\n },] }\n ];\n IgxLayoutDirective.propDecorators = {\n dir: [{ type: Input, args: ['igxLayoutDir',] }],\n reverse: [{ type: Input, args: ['igxLayoutReverse',] }],\n wrap: [{ type: Input, args: ['igxLayoutWrap',] }],\n justify: [{ type: Input, args: ['igxLayoutJustify',] }],\n itemAlign: [{ type: Input, args: ['igxLayoutItemAlign',] }],\n display: [{ type: HostBinding, args: ['style.display',] }],\n flexwrap: [{ type: HostBinding, args: ['style.flex-wrap',] }],\n justifycontent: [{ type: HostBinding, args: ['style.justify-content',] }],\n align: [{ type: HostBinding, args: ['style.align-items',] }],\n direction: [{ type: HostBinding, args: ['style.flex-direction',] }]\n };\n return IgxLayoutDirective;\n}());\nvar IgxFlexDirective = /** @class */ (function () {\n function IgxFlexDirective() {\n /**\n * Applies the `grow` attribute to an element that uses the directive.\n *\n * Default value is `1`.\n *\n * ```html\n *
\n *
Content1
\n *
Content2
\n *
Content3
\n *
\n * ```\n */\n this.grow = 1;\n /**\n * Applies the `shrink` attribute to an element that uses the directive.\n *\n * Default value is `1`.\n *\n * ```html\n *
\n *
Content1
\n *
Content2
\n *
Content3
\n *
\n * ```\n */\n this.shrink = 1;\n /**\n * Applies the directive to an element.\n *\n * Possible values include `igxFlexGrow`, `igxFlexShrink`, `igxFlexOrder`, `igxFlexBasis`.\n *\n * ```html\n *
Content
\n * ```\n */\n this.flex = '';\n /**\n * Applies the `order` attribute to an element that uses the directive.\n *\n * Default value is `0`.\n *\n * ```html\n *
\n *
Content1
\n *
Content2
\n *
Content3
\n *
\n * ```\n */\n this.order = 0;\n /**\n * Applies the `flex-basis` attribute to an element that uses the directive.\n *\n * Default value is `auto`.\n *\n * Other possible values include `content`, `max-content`, `min-content`, `fit-content`.\n *\n * ```html\n *
Content
\n * ```\n */\n this.basis = 'auto';\n }\n Object.defineProperty(IgxFlexDirective.prototype, \"style\", {\n /**\n * @hidden\n */\n get: /**\n * @hidden\n * @return {?}\n */\n function () {\n if (this.flex) {\n return \"\" + this.flex;\n }\n return this.grow + \" \" + this.shrink + \" \" + this.basis;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxFlexDirective.prototype, \"itemorder\", {\n /**\n * @hidden\n */\n get: /**\n * @hidden\n * @return {?}\n */\n function () {\n return this.order || 0;\n },\n enumerable: true,\n configurable: true\n });\n IgxFlexDirective.decorators = [\n { type: Directive, args: [{\n selector: '[igxFlex]'\n },] }\n ];\n IgxFlexDirective.propDecorators = {\n grow: [{ type: Input, args: ['igxFlexGrow',] }],\n shrink: [{ type: Input, args: ['igxFlexShrink',] }],\n flex: [{ type: Input, args: ['igxFlex',] }],\n order: [{ type: Input, args: ['igxFlexOrder',] }],\n basis: [{ type: Input, args: ['igxFlexBasis',] }],\n style: [{ type: HostBinding, args: ['style.flex',] }],\n itemorder: [{ type: HostBinding, args: ['style.order',] }]\n };\n return IgxFlexDirective;\n}());\n/**\n * @hidden\n */\nvar IgxLayoutModule = /** @class */ (function () {\n function IgxLayoutModule() {\n }\n IgxLayoutModule.decorators = [\n { type: NgModule, args: [{\n declarations: [IgxFlexDirective, IgxLayoutDirective],\n exports: [IgxFlexDirective, IgxLayoutDirective]\n },] }\n ];\n return IgxLayoutModule;\n}());\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n/**\n * @hidden\n * @type {?}\n */\nvar MASK_FLAGS = ['C', '&', 'a', 'A', '?', 'L', '9', '0', '#'];\n/**\n * @hidden\n * @type {?}\n */\nvar KEYS = {\n Ctrl: 17,\n Z: 90,\n Y: 89,\n X: 88,\n BACKSPACE: 8,\n DELETE: 46\n};\n/**\n * @hidden\n */\nvar /**\n * @hidden\n */\nMaskHelper = /** @class */ (function () {\n function MaskHelper() {\n }\n Object.defineProperty(MaskHelper.prototype, \"cursor\", {\n get: /**\n * @return {?}\n */\n function () {\n return this._cursor;\n },\n enumerable: true,\n configurable: true\n });\n /**\n * @param {?} value\n * @param {?} maskOptions\n * @param {?} cursor\n * @return {?}\n */\n MaskHelper.prototype.parseValueByMask = /**\n * @param {?} value\n * @param {?} maskOptions\n * @param {?} cursor\n * @return {?}\n */\n function (value, maskOptions, cursor) {\n /** @type {?} */\n var inputValue = value;\n /** @type {?} */\n var mask = maskOptions.format;\n /** @type {?} */\n var literals = this.getMaskLiterals(mask);\n /** @type {?} */\n var literalKeys = Array.from(literals.keys());\n /** @type {?} */\n var nonLiteralIndeces = this.getNonLiteralIndeces(mask, literalKeys);\n if (inputValue.length < mask.length) { // BACKSPACE, DELETE\n if (inputValue === '' && cursor === -1) {\n this._cursor = 0;\n return this.parseValueByMaskOnInit(value, maskOptions);\n } // workaround for IE 'x' button\n if (nonLiteralIndeces.indexOf(cursor + 1) !== -1) {\n inputValue = this.insertCharAt(inputValue, cursor + 1, maskOptions.promptChar);\n this._cursor = cursor + 1;\n }\n else {\n inputValue = this.insertCharAt(inputValue, cursor + 1, mask[cursor + 1]);\n this._cursor = cursor + 1;\n for (var i = this._cursor; i < 0; i--) {\n if (literalKeys.indexOf(this._cursor) !== -1) {\n this._cursor--;\n }\n else {\n break;\n }\n }\n }\n }\n else {\n /** @type {?} */\n var char = inputValue[cursor];\n /** @type {?} */\n var isCharValid = this.validateCharOnPostion(char, cursor, mask);\n if (nonLiteralIndeces.indexOf(cursor) !== -1) {\n inputValue = this.replaceCharAt(inputValue, cursor, '');\n if (isCharValid) {\n inputValue = this.replaceCharAt(inputValue, cursor, char);\n this._cursor = cursor + 1;\n }\n else {\n this._cursor = cursor;\n }\n }\n else {\n inputValue = this.replaceCharAt(inputValue, cursor, '');\n this._cursor = ++cursor;\n for (var i = cursor; i < mask.length; i++) {\n if (literalKeys.indexOf(this._cursor) !== -1) {\n this._cursor = ++cursor;\n }\n else {\n isCharValid = this.validateCharOnPostion(char, cursor, mask);\n if (isCharValid) {\n inputValue = this.replaceCharAt(inputValue, cursor, char);\n this._cursor = ++cursor;\n break;\n }\n else {\n break;\n }\n }\n }\n }\n }\n return inputValue;\n };\n /**\n * @param {?} maskOptions\n * @return {?}\n */\n MaskHelper.prototype.parseMask = /**\n * @param {?} maskOptions\n * @return {?}\n */\n function (maskOptions) {\n var _this = this;\n var e_1, _a;\n /** @type {?} */\n var outputVal = '';\n /** @type {?} */\n var mask = maskOptions.format;\n /** @type {?} */\n var literals = this.getMaskLiterals(mask);\n try {\n for (var mask_1 = __values(mask), mask_1_1 = mask_1.next(); !mask_1_1.done; mask_1_1 = mask_1.next()) {\n var maskSym = mask_1_1.value;\n outputVal += maskOptions.promptChar;\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (mask_1_1 && !mask_1_1.done && (_a = mask_1.return)) _a.call(mask_1);\n }\n finally { if (e_1) throw e_1.error; }\n }\n literals.forEach(function (val, key) {\n outputVal = _this.replaceCharAt(outputVal, key, val);\n });\n return outputVal;\n };\n /**\n * @param {?} inputVal\n * @param {?} maskOptions\n * @return {?}\n */\n MaskHelper.prototype.parseValueByMaskOnInit = /**\n * @param {?} inputVal\n * @param {?} maskOptions\n * @return {?}\n */\n function (inputVal, maskOptions) {\n var _this = this;\n var e_2, _a, e_3, _b;\n /** @type {?} */\n var outputVal = '';\n /** @type {?} */\n var value = '';\n /** @type {?} */\n var mask = maskOptions.format;\n /** @type {?} */\n var literals = this.getMaskLiterals(mask);\n /** @type {?} */\n var literalKeys = Array.from(literals.keys());\n /** @type {?} */\n var nonLiteralIndeces = this.getNonLiteralIndeces(mask, literalKeys);\n /** @type {?} */\n var literalValues = Array.from(literals.values());\n if (inputVal != null) {\n value = inputVal.toString();\n }\n try {\n for (var mask_2 = __values(mask), mask_2_1 = mask_2.next(); !mask_2_1.done; mask_2_1 = mask_2.next()) {\n var maskSym = mask_2_1.value;\n outputVal += maskOptions.promptChar;\n }\n }\n catch (e_2_1) { e_2 = { error: e_2_1 }; }\n finally {\n try {\n if (mask_2_1 && !mask_2_1.done && (_a = mask_2.return)) _a.call(mask_2);\n }\n finally { if (e_2) throw e_2.error; }\n }\n literals.forEach(function (val, key) {\n outputVal = _this.replaceCharAt(outputVal, key, val);\n });\n if (!value) {\n return outputVal;\n }\n /** @type {?} */\n var nonLiteralValues = this.getNonLiteralValues(value, literalValues);\n for (var i = 0; i < nonLiteralValues.length; i++) {\n /** @type {?} */\n var char = nonLiteralValues[i];\n /** @type {?} */\n var isCharValid = this.validateCharOnPostion(char, nonLiteralIndeces[i], mask);\n if (!isCharValid && char !== maskOptions.promptChar) {\n nonLiteralValues[i] = maskOptions.promptChar;\n }\n }\n if (nonLiteralValues.length > nonLiteralIndeces.length) {\n nonLiteralValues.splice(nonLiteralIndeces.length);\n }\n /** @type {?} */\n var pos = 0;\n try {\n for (var nonLiteralValues_1 = __values(nonLiteralValues), nonLiteralValues_1_1 = nonLiteralValues_1.next(); !nonLiteralValues_1_1.done; nonLiteralValues_1_1 = nonLiteralValues_1.next()) {\n var nonLiteralValue = nonLiteralValues_1_1.value;\n /** @type {?} */\n var char = nonLiteralValue;\n outputVal = this.replaceCharAt(outputVal, nonLiteralIndeces[pos++], char);\n }\n }\n catch (e_3_1) { e_3 = { error: e_3_1 }; }\n finally {\n try {\n if (nonLiteralValues_1_1 && !nonLiteralValues_1_1.done && (_b = nonLiteralValues_1.return)) _b.call(nonLiteralValues_1);\n }\n finally { if (e_3) throw e_3.error; }\n }\n return outputVal;\n };\n /**\n * @param {?} value\n * @param {?} maskOptions\n * @return {?}\n */\n MaskHelper.prototype.restoreValueFromMask = /**\n * @param {?} value\n * @param {?} maskOptions\n * @return {?}\n */\n function (value, maskOptions) {\n var e_4, _a;\n /** @type {?} */\n var outputVal = '';\n /** @type {?} */\n var mask = maskOptions.format;\n /** @type {?} */\n var literals = this.getMaskLiterals(mask);\n /** @type {?} */\n var literalValues = Array.from(literals.values());\n try {\n for (var value_1 = __values(value), value_1_1 = value_1.next(); !value_1_1.done; value_1_1 = value_1.next()) {\n var val = value_1_1.value;\n if (literalValues.indexOf(val) === -1) {\n if (val !== maskOptions.promptChar) {\n outputVal += val;\n }\n }\n }\n }\n catch (e_4_1) { e_4 = { error: e_4_1 }; }\n finally {\n try {\n if (value_1_1 && !value_1_1.done && (_a = value_1.return)) _a.call(value_1);\n }\n finally { if (e_4) throw e_4.error; }\n }\n return outputVal;\n };\n /**\n * @param {?} value\n * @param {?} maskOptions\n * @param {?} cursor\n * @param {?} selection\n * @return {?}\n */\n MaskHelper.prototype.parseValueByMaskUponSelection = /**\n * @param {?} value\n * @param {?} maskOptions\n * @param {?} cursor\n * @param {?} selection\n * @return {?}\n */\n function (value, maskOptions, cursor, selection) {\n /** @type {?} */\n var isCharValid;\n /** @type {?} */\n var inputValue = value;\n /** @type {?} */\n var char = inputValue[cursor];\n /** @type {?} */\n var mask = maskOptions.format;\n /** @type {?} */\n var literals = this.getMaskLiterals(mask);\n /** @type {?} */\n var literalKeys = Array.from(literals.keys());\n /** @type {?} */\n var nonLiteralIndeces = this.getNonLiteralIndeces(mask, literalKeys);\n if (!this.data) {\n this._cursor = cursor < 0 ? ++cursor : cursor;\n if (nonLiteralIndeces.indexOf(this._cursor) !== -1) {\n isCharValid = this.validateCharOnPostion(char, this._cursor, mask);\n inputValue = isCharValid ? this.replaceCharAt(inputValue, this._cursor++, char) :\n inputValue = this.replaceCharAt(inputValue, this._cursor++, maskOptions.promptChar);\n selection--;\n if (selection > 0) {\n for (var i = 0; i < selection; i++) {\n cursor++;\n inputValue = nonLiteralIndeces.indexOf(cursor) !== -1 ?\n this.insertCharAt(inputValue, cursor, maskOptions.promptChar) :\n this.insertCharAt(inputValue, cursor, mask[cursor]);\n }\n }\n }\n else {\n inputValue = this.replaceCharAt(inputValue, this._cursor, mask[this._cursor]);\n this._cursor++;\n selection--;\n /** @type {?} */\n var isMarked = false;\n if (selection > 0) {\n cursor = this._cursor;\n for (var i = 0; i < selection; i++) {\n if (nonLiteralIndeces.indexOf(cursor) !== -1) {\n isCharValid = this.validateCharOnPostion(char, cursor, mask);\n if (isCharValid && !isMarked) {\n inputValue = this.insertCharAt(inputValue, cursor, char);\n cursor++;\n this._cursor++;\n isMarked = true;\n }\n else {\n inputValue = this.insertCharAt(inputValue, cursor, maskOptions.promptChar);\n cursor++;\n }\n }\n else {\n inputValue = this.insertCharAt(inputValue, cursor, mask[cursor]);\n if (cursor === this._cursor) {\n this._cursor++;\n }\n cursor++;\n }\n }\n }\n }\n }\n else {\n if (inputValue === '' && cursor === -1) {\n this._cursor = 0;\n return this.parseValueByMaskOnInit(value, maskOptions);\n } // workaround for IE 'x' button\n if (this._cursor < 0) {\n this._cursor++;\n cursor++;\n }\n cursor++;\n this._cursor = cursor;\n for (var i = 0; i < selection; i++) {\n if (nonLiteralIndeces.indexOf(cursor) !== -1) {\n inputValue = this.insertCharAt(inputValue, cursor, maskOptions.promptChar);\n cursor++;\n }\n else {\n inputValue = this.insertCharAt(inputValue, cursor, mask[cursor]);\n cursor++;\n }\n }\n }\n return inputValue;\n };\n /**\n * @param {?} value\n * @param {?} maskOptions\n * @param {?} cursor\n * @param {?} clipboardData\n * @param {?} selection\n * @return {?}\n */\n MaskHelper.prototype.parseValueByMaskUponCopyPaste = /**\n * @param {?} value\n * @param {?} maskOptions\n * @param {?} cursor\n * @param {?} clipboardData\n * @param {?} selection\n * @return {?}\n */\n function (value, maskOptions, cursor, clipboardData, selection) {\n var e_5, _a;\n /** @type {?} */\n var inputValue = value;\n /** @type {?} */\n var mask = maskOptions.format;\n /** @type {?} */\n var literals = this.getMaskLiterals(mask);\n /** @type {?} */\n var literalKeys = Array.from(literals.keys());\n /** @type {?} */\n var nonLiteralIndeces = this.getNonLiteralIndeces(mask, literalKeys);\n /** @type {?} */\n var selectionEnd = cursor + selection;\n this._cursor = cursor;\n try {\n for (var clipboardData_1 = __values(clipboardData), clipboardData_1_1 = clipboardData_1.next(); !clipboardData_1_1.done; clipboardData_1_1 = clipboardData_1.next()) {\n var clipboardSym = clipboardData_1_1.value;\n /** @type {?} */\n var char = clipboardSym;\n if (this._cursor > mask.length) {\n return inputValue;\n }\n if (nonLiteralIndeces.indexOf(this._cursor) !== -1) {\n /** @type {?} */\n var isCharValid = this.validateCharOnPostion(char, this._cursor, mask);\n if (isCharValid) {\n inputValue = this.replaceCharAt(inputValue, this._cursor++, char);\n }\n }\n else {\n for (var i = cursor; i < mask.length; i++) {\n if (literalKeys.indexOf(this._cursor) !== -1) {\n this._cursor++;\n }\n else {\n /** @type {?} */\n var isCharValid = this.validateCharOnPostion(char, this._cursor, mask);\n if (isCharValid) {\n inputValue = this.replaceCharAt(inputValue, this._cursor++, char);\n }\n break;\n }\n }\n }\n selection--;\n }\n }\n catch (e_5_1) { e_5 = { error: e_5_1 }; }\n finally {\n try {\n if (clipboardData_1_1 && !clipboardData_1_1.done && (_a = clipboardData_1.return)) _a.call(clipboardData_1);\n }\n finally { if (e_5) throw e_5.error; }\n }\n if (selection > 0) {\n for (var i = this._cursor; i < selectionEnd; i++) {\n if (literalKeys.indexOf(this._cursor) !== -1) {\n this._cursor++;\n }\n else {\n inputValue = this.replaceCharAt(inputValue, this._cursor++, maskOptions.promptChar);\n }\n }\n }\n return inputValue;\n };\n /**\n * @private\n * @param {?} inputChar\n * @param {?} position\n * @param {?} mask\n * @return {?}\n */\n MaskHelper.prototype.validateCharOnPostion = /**\n * @private\n * @param {?} inputChar\n * @param {?} position\n * @param {?} mask\n * @return {?}\n */\n function (inputChar, position, mask) {\n /** @type {?} */\n var regex;\n /** @type {?} */\n var isValid;\n /** @type {?} */\n var letterOrDigitRegEx = '[\\\\d\\\\u00C0-\\\\u1FFF\\\\u2C00-\\\\uD7FFa-zA-Z]';\n /** @type {?} */\n var letterDigitOrSpaceRegEx = '[\\\\d\\\\u00C0-\\\\u1FFF\\\\u2C00-\\\\uD7FFa-zA-Z\\\\u0020]';\n /** @type {?} */\n var letterRegEx = '[\\\\u00C0-\\\\u1FFF\\\\u2C00-\\\\uD7FFa-zA-Z]';\n /** @type {?} */\n var letteSpaceRegEx = '[\\\\u00C0-\\\\u1FFF\\\\u2C00-\\\\uD7FFa-zA-Z\\\\u0020]';\n /** @type {?} */\n var digitRegEx = '[\\\\d]';\n /** @type {?} */\n var digitSpaceRegEx = '[\\\\d\\\\u0020]';\n /** @type {?} */\n var digitSpecialRegEx = '[\\\\d-\\\\+]';\n switch (mask.charAt(position)) {\n case 'C':\n isValid = inputChar !== '';\n break;\n case '&':\n regex = new RegExp('[\\\\u0020]');\n isValid = !regex.test(inputChar);\n break;\n case 'a':\n regex = new RegExp(letterDigitOrSpaceRegEx);\n isValid = regex.test(inputChar);\n break;\n case 'A':\n regex = new RegExp(letterOrDigitRegEx);\n isValid = regex.test(inputChar);\n break;\n case '?':\n regex = new RegExp(letteSpaceRegEx);\n isValid = regex.test(inputChar);\n break;\n case 'L':\n regex = new RegExp(letterRegEx);\n isValid = regex.test(inputChar);\n break;\n case '0':\n regex = new RegExp(digitRegEx);\n isValid = regex.test(inputChar);\n break;\n case '9':\n regex = new RegExp(digitSpaceRegEx);\n isValid = regex.test(inputChar);\n break;\n case '#':\n regex = new RegExp(digitSpecialRegEx);\n isValid = regex.test(inputChar);\n break;\n default: {\n isValid = null;\n }\n }\n return isValid;\n };\n /**\n * @private\n * @param {?} strValue\n * @param {?} index\n * @param {?} char\n * @return {?}\n */\n MaskHelper.prototype.replaceCharAt = /**\n * @private\n * @param {?} strValue\n * @param {?} index\n * @param {?} char\n * @return {?}\n */\n function (strValue, index, char) {\n if (strValue !== undefined) {\n return strValue.substring(0, index) + char + strValue.substring(index + 1);\n }\n };\n /**\n * @private\n * @param {?} strValue\n * @param {?} index\n * @param {?} char\n * @return {?}\n */\n MaskHelper.prototype.insertCharAt = /**\n * @private\n * @param {?} strValue\n * @param {?} index\n * @param {?} char\n * @return {?}\n */\n function (strValue, index, char) {\n if (strValue !== undefined) {\n return strValue.substring(0, index) + char + strValue.substring(index);\n }\n };\n /**\n * @private\n * @param {?} mask\n * @return {?}\n */\n MaskHelper.prototype.getMaskLiterals = /**\n * @private\n * @param {?} mask\n * @return {?}\n */\n function (mask) {\n /** @type {?} */\n var literals = new Map();\n for (var i = 0; i < mask.length; i++) {\n /** @type {?} */\n var char = mask.charAt(i);\n if (MASK_FLAGS.indexOf(char) === -1) {\n literals.set(i, char);\n }\n }\n return literals;\n };\n /**\n * @private\n * @param {?} mask\n * @param {?} literalKeys\n * @return {?}\n */\n MaskHelper.prototype.getNonLiteralIndeces = /**\n * @private\n * @param {?} mask\n * @param {?} literalKeys\n * @return {?}\n */\n function (mask, literalKeys) {\n /** @type {?} */\n var nonLiteralsIndeces = new Array();\n for (var i = 0; i < mask.length; i++) {\n if (literalKeys.indexOf(i) === -1) {\n nonLiteralsIndeces.push(i);\n }\n }\n return nonLiteralsIndeces;\n };\n /**\n * @private\n * @param {?} value\n * @param {?} literalValues\n * @return {?}\n */\n MaskHelper.prototype.getNonLiteralValues = /**\n * @private\n * @param {?} value\n * @param {?} literalValues\n * @return {?}\n */\n function (value, literalValues) {\n var e_6, _a;\n /** @type {?} */\n var nonLiteralValues = new Array();\n try {\n for (var value_2 = __values(value), value_2_1 = value_2.next(); !value_2_1.done; value_2_1 = value_2.next()) {\n var val = value_2_1.value;\n if (literalValues.indexOf(val) === -1) {\n nonLiteralValues.push(val);\n }\n }\n }\n catch (e_6_1) { e_6 = { error: e_6_1 }; }\n finally {\n try {\n if (value_2_1 && !value_2_1.done && (_a = value_2.return)) _a.call(value_2);\n }\n finally { if (e_6) throw e_6.error; }\n }\n return nonLiteralValues;\n };\n return MaskHelper;\n}());\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n/** @type {?} */\nvar noop = function () { };\nvar IgxMaskDirective = /** @class */ (function () {\n function IgxMaskDirective(elementRef) {\n this.elementRef = elementRef;\n /**\n * Emits an event each time the value changes.\n * Provides `rawValue: string` and `formattedValue: string` as event arguments.\n * ```html\n * \n * ```\n */\n this.onValueChange = new EventEmitter();\n /**\n * @hidden\n */\n this._maskOptions = {\n format: '',\n promptChar: ''\n };\n /**\n * @hidden\n */\n this._onTouchedCallback = noop;\n /**\n * @hidden\n */\n this._onChangeCallback = noop;\n this.maskHelper = new MaskHelper();\n }\n Object.defineProperty(IgxMaskDirective.prototype, \"placeholder\", {\n get: /**\n * @return {?}\n */\n function () {\n return this._placeholder;\n },\n /**\n * Specifies a placeholder.\n * ```html\n * \n * ```\n * @memberof IgxMaskDirective\n */\n set: /**\n * Specifies a placeholder.\n * ```html\n * \n * ```\n * \\@memberof IgxMaskDirective\n * @param {?} val\n * @return {?}\n */\n function (val) {\n this._placeholder = val;\n this.nativeElement.setAttribute('placeholder', this._placeholder);\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxMaskDirective.prototype, \"value\", {\n /**\n *@hidden\n */\n get: /**\n * @hidden\n * @private\n * @return {?}\n */\n function () {\n return this.nativeElement.value;\n },\n /**\n *@hidden\n */\n set: /**\n * @hidden\n * @private\n * @param {?} val\n * @return {?}\n */\n function (val) {\n this.nativeElement.value = val;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxMaskDirective.prototype, \"nativeElement\", {\n /**\n *@hidden\n */\n get: /**\n * @hidden\n * @private\n * @return {?}\n */\n function () {\n return this.elementRef.nativeElement;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxMaskDirective.prototype, \"selectionStart\", {\n /**\n *@hidden\n */\n get: /**\n * @hidden\n * @private\n * @return {?}\n */\n function () {\n return this.nativeElement.selectionStart;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxMaskDirective.prototype, \"selectionEnd\", {\n /**\n *@hidden\n */\n get: /**\n * @hidden\n * @private\n * @return {?}\n */\n function () {\n return this.nativeElement.selectionEnd;\n },\n enumerable: true,\n configurable: true\n });\n /**\n *@hidden\n */\n /**\n * @hidden\n * @return {?}\n */\n IgxMaskDirective.prototype.ngOnInit = /**\n * @hidden\n * @return {?}\n */\n function () {\n if (this.promptChar && this.promptChar.length > 1) {\n this._maskOptions.promptChar = this.promptChar = this.promptChar.substring(0, 1);\n }\n this._maskOptions.format = this.mask ? this.mask : 'CCCCCCCCCC';\n this._maskOptions.promptChar = this.promptChar ? this.promptChar : '_';\n this.nativeElement.setAttribute('placeholder', this.placeholder ? this.placeholder : this._maskOptions.format);\n };\n /**\n *@hidden\n */\n /**\n * @hidden\n * @param {?} event\n * @return {?}\n */\n IgxMaskDirective.prototype.onKeydown = /**\n * @hidden\n * @param {?} event\n * @return {?}\n */\n function (event) {\n /** @type {?} */\n var key = event.keyCode || event.charCode;\n if (isIE() && this._stopPropagation) {\n this._stopPropagation = false;\n }\n if (key === KEYS.Ctrl) {\n this._ctrlDown = true;\n }\n if ((this._ctrlDown && key === KEYS.Z) || (this._ctrlDown && key === KEYS.Y)) {\n event.preventDefault();\n }\n this._key = key;\n this._selection = Math.abs(this.selectionEnd - this.selectionStart);\n };\n /**\n *@hidden\n */\n /**\n * @hidden\n * @param {?} event\n * @return {?}\n */\n IgxMaskDirective.prototype.onKeyup = /**\n * @hidden\n * @param {?} event\n * @return {?}\n */\n function (event) {\n /** @type {?} */\n var key = event.keyCode || event.charCode;\n if (key === KEYS.Ctrl) {\n this._ctrlDown = false;\n }\n };\n /**\n *@hidden\n */\n /**\n * @hidden\n * @param {?} event\n * @return {?}\n */\n IgxMaskDirective.prototype.onPaste = /**\n * @hidden\n * @param {?} event\n * @return {?}\n */\n function (event) {\n this._paste = true;\n this._valOnPaste = this.value;\n this._cursorOnPaste = this.getCursorPosition();\n };\n /**\n *@hidden\n */\n /**\n * @hidden\n * @param {?} event\n * @return {?}\n */\n IgxMaskDirective.prototype.onInputChanged = /**\n * @hidden\n * @param {?} event\n * @return {?}\n */\n function (event) {\n if (isIE() && this._stopPropagation) {\n this._stopPropagation = false;\n return;\n }\n if (this._paste) {\n this._paste = false;\n /** @type {?} */\n var clipboardData = this.value.substring(this._cursorOnPaste, this.getCursorPosition());\n this.value = this.maskHelper.parseValueByMaskUponCopyPaste(this._valOnPaste, this._maskOptions, this._cursorOnPaste, clipboardData, this._selection);\n this.setCursorPosition(this.maskHelper.cursor);\n }\n else {\n /** @type {?} */\n var currentCursorPos = this.getCursorPosition();\n this.maskHelper.data = (this._key === KEYS.BACKSPACE) || (this._key === KEYS.DELETE);\n this.value = this._selection && this._selection !== 0 ?\n this.maskHelper.parseValueByMaskUponSelection(this.value, this._maskOptions, currentCursorPos - 1, this._selection) :\n this.maskHelper.parseValueByMask(this.value, this._maskOptions, currentCursorPos - 1);\n this.setCursorPosition(this.maskHelper.cursor);\n }\n /** @type {?} */\n var rawVal = this.maskHelper.restoreValueFromMask(this.value, this._maskOptions);\n this.dataValue = this.includeLiterals ? this.value : rawVal;\n this._onChangeCallback(this.dataValue);\n this.onValueChange.emit({ rawValue: rawVal, formattedValue: this.value });\n };\n /**\n *@hidden\n */\n /**\n * @hidden\n * @param {?} value\n * @return {?}\n */\n IgxMaskDirective.prototype.onFocus = /**\n * @hidden\n * @param {?} value\n * @return {?}\n */\n function (value) {\n if (this.focusedValuePipe) {\n if (isIE()) {\n this._stopPropagation = true;\n }\n this.value = this.focusedValuePipe.transform(value);\n }\n else {\n this.value = this.maskHelper.parseValueByMaskOnInit(this.value, this._maskOptions);\n }\n };\n /**\n *@hidden\n */\n /**\n * @hidden\n * @param {?} value\n * @return {?}\n */\n IgxMaskDirective.prototype.onBlur = /**\n * @hidden\n * @param {?} value\n * @return {?}\n */\n function (value) {\n if (this.displayValuePipe) {\n this.value = this.displayValuePipe.transform(value);\n }\n else if (value === this.maskHelper.parseMask(this._maskOptions)) {\n this.value = '';\n }\n };\n /**\n *@hidden\n */\n /**\n * @hidden\n * @private\n * @return {?}\n */\n IgxMaskDirective.prototype.getCursorPosition = /**\n * @hidden\n * @private\n * @return {?}\n */\n function () {\n return this.nativeElement.selectionStart;\n };\n /**\n *@hidden\n */\n /**\n * @hidden\n * @private\n * @param {?} start\n * @param {?=} end\n * @return {?}\n */\n IgxMaskDirective.prototype.setCursorPosition = /**\n * @hidden\n * @private\n * @param {?} start\n * @param {?=} end\n * @return {?}\n */\n function (start, end) {\n if (end === void 0) { end = start; }\n this.nativeElement.setSelectionRange(start, end);\n };\n /**\n *@hidden\n */\n /**\n * @hidden\n * @param {?} value\n * @return {?}\n */\n IgxMaskDirective.prototype.writeValue = /**\n * @hidden\n * @param {?} value\n * @return {?}\n */\n function (value) {\n if (this.promptChar && this.promptChar.length > 1) {\n this._maskOptions.promptChar = this.promptChar.substring(0, 1);\n }\n this.value = value ? this.maskHelper.parseValueByMaskOnInit(value, this._maskOptions) : '';\n if (this.displayValuePipe) {\n this.value = this.displayValuePipe.transform(this.value);\n }\n this.dataValue = this.includeLiterals ? this.value : value;\n this._onChangeCallback(this.dataValue);\n this.onValueChange.emit({ rawValue: value, formattedValue: this.value });\n };\n /**\n *@hidden\n */\n /**\n * @hidden\n * @param {?} fn\n * @return {?}\n */\n IgxMaskDirective.prototype.registerOnChange = /**\n * @hidden\n * @param {?} fn\n * @return {?}\n */\n function (fn) { this._onChangeCallback = fn; };\n /**\n *@hidden\n */\n /**\n * @hidden\n * @param {?} fn\n * @return {?}\n */\n IgxMaskDirective.prototype.registerOnTouched = /**\n * @hidden\n * @param {?} fn\n * @return {?}\n */\n function (fn) { this._onTouchedCallback = fn; };\n IgxMaskDirective.decorators = [\n { type: Directive, args: [{\n providers: [{ provide: NG_VALUE_ACCESSOR, useExisting: IgxMaskDirective, multi: true }],\n selector: '[igxMask]'\n },] }\n ];\n /** @nocollapse */\n IgxMaskDirective.ctorParameters = function () { return [\n { type: ElementRef }\n ]; };\n IgxMaskDirective.propDecorators = {\n mask: [{ type: Input, args: ['igxMask',] }],\n promptChar: [{ type: Input }],\n includeLiterals: [{ type: Input }],\n placeholder: [{ type: Input }],\n displayValuePipe: [{ type: Input }],\n focusedValuePipe: [{ type: Input }],\n dataValue: [{ type: Input }],\n onValueChange: [{ type: Output }],\n onKeydown: [{ type: HostListener, args: ['keydown', ['$event'],] }],\n onKeyup: [{ type: HostListener, args: ['keyup', ['$event'],] }],\n onPaste: [{ type: HostListener, args: ['paste', ['$event'],] }],\n onInputChanged: [{ type: HostListener, args: ['input', ['$event'],] }],\n onFocus: [{ type: HostListener, args: ['focus', ['$event.target.value'],] }],\n onBlur: [{ type: HostListener, args: ['blur', ['$event.target.value'],] }]\n };\n return IgxMaskDirective;\n}());\n/**\n * @hidden\n */\nvar IgxMaskModule = /** @class */ (function () {\n function IgxMaskModule() {\n }\n IgxMaskModule.decorators = [\n { type: NgModule, args: [{\n declarations: [IgxMaskDirective],\n exports: [IgxMaskDirective],\n imports: [CommonModule]\n },] }\n ];\n return IgxMaskModule;\n}());\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n/** @enum {string} */\nvar RadioLabelPosition = {\n BEFORE: 'before',\n AFTER: 'after',\n};\n/** @type {?} */\nvar nextId = 0;\n/** @type {?} */\nvar noop$1 = function () { };\n/**\n * **Ignite UI for Angular Radio Button** -\n * [Documentation](https://www.infragistics.com/products/ignite-ui-angular/angular/components/radio_button.html)\n *\n * The Ignite UI Radio Button allows the user to select a single option from an available set of options that are listed side by side.\n *\n * Example:\n * ```html\n * \n * Simple radio button\n * \n * ```\n */\nvar IgxRadioComponent = /** @class */ (function () {\n function IgxRadioComponent() {\n /**\n * Sets/gets the `id` of the radio component.\n * If not set, the `id` of the first radio component will be `\"igx-radio-0\"`.\n * ```html\n * \n * ```\n * ```typescript\n * let radioId = this.radio.id;\n * ```\n * \\@memberof IgxRadioComponent\n */\n this.id = \"igx-radio-\" + nextId++;\n /**\n * Sets/gets the id of the `label` element in the radio component.\n * If not set, the id of the `label` in the first radio component will be `\"igx-radio-0-label\"`.\n * ```html\n * \n * ```\n * ```typescript\n * let labelId = this.radio.labelId;\n * ```\n * \\@memberof IgxRadioComponent\n */\n this.labelId = this.id + \"-label\";\n /**\n * Sets/gets the position of the `label` in the radio component.\n * If not set, `labelPosition` will have value `\"after\"`.\n * ```html\n * \n * ```\n * ```typescript\n * let labelPosition = this.radio.labelPosition;\n * ```\n * \\@memberof IgxRadioComponent\n */\n this.labelPosition = 'after';\n /**\n * Sets the value of the `tabindex` attribute.\n * ```html\n * \n * ```\n * ```typescript\n * let tabIndex = this.radio.tabindex;\n * ```\n * \\@memberof IgxRadioComponent\n */\n this.tabindex = null;\n /**\n * Enables/disables the ripple effect on the radio button..\n * If not set, the `disableRipple` will have value `false`.\n * ```html\n * \n * ```\n * ```typescript\n * let isDisabledRipple = this.radio.disableRipple;\n * ```\n * \\@memberof IgxRadioComponent\n */\n this.disableRipple = false;\n /**\n * Sets/gets whether the radio button is required.\n * If not set, `required` will have value `false`.\n * ```html\n * \n * ```\n * ```typescript\n * let isRequired = this.radio.required;\n * ```\n * \\@memberof IgxRadioComponent\n */\n this.required = false;\n /**\n * Sets/gets the `aria-labelledby` attribute of the radio component.\n * If not set, the `aria-labelledby` will be equal to the value of `labelId` attribute.\n * ```html\n * \n * ```\n * ```typescript\n * let ariaLabelledBy = this.radio.ariaLabelledBy;\n * ```\n * \\@memberof IgxRadioComponent\n */\n this.ariaLabelledBy = this.labelId;\n /**\n * Sets/gets the `aria-label` attribute of the radio component.\n * ```html\n * \n * ```\n * ```typescript\n * let ariaLabel = this.radio.ariaLabel;\n * ```\n * \\@memberof IgxRadioComponent\n */\n this.ariaLabel = null;\n /**\n * An event that is emitted after the radio `value` is changed.\n * Provides references to the `IgxRadioComponent` and the `value` property as event arguments.\n * \\@memberof IgxRadioComponent\n */\n this.change = new EventEmitter();\n /**\n * Returns the class of the radio component.\n * ```typescript\n * let radioClass = this.radio.cssClass;\n * ```\n * \\@memberof IgxRadioComponent\n */\n this.cssClass = 'igx-radio';\n /**\n * Sets/gets the `checked` attribute.\n * Default value is `false`.\n * ```html\n * \n * ```\n * ```typescript\n * let isChecked = this.radio.checked;\n * ```\n * \\@memberof IgxRadioComponent\n */\n this.checked = false;\n /**\n * Sets/gets the `disabled` attribute.\n * Default value is `false`.\n * ```html\n * \n * ```\n * ```typescript\n * let isDisabled = this.radio.disabled;\n * ```\n * \\@memberof IgxRadioComponent\n */\n this.disabled = false;\n /**\n * Sets/gets whether the radio component is on focus.\n * Default value is `false`.\n * ```typescript\n * this.radio.focus = true;\n * ```\n * ```typescript\n * let isFocused = this.radio.focused;\n * ```\n * \\@memberof IgxRadioComponent\n */\n this.focused = false;\n /**\n * @hidden\n */\n this.inputId = this.id + \"-input\";\n /**\n * @hidden\n */\n this._value = null;\n /**\n * @hidden\n */\n this._onTouchedCallback = noop$1;\n /**\n * @hidden\n */\n this._onChangeCallback = noop$1;\n }\n /**\n *@hidden\n */\n /**\n * @hidden\n * @param {?} event\n * @return {?}\n */\n IgxRadioComponent.prototype._onRadioChange = /**\n * @hidden\n * @param {?} event\n * @return {?}\n */\n function (event) {\n event.stopPropagation();\n };\n /**\n *@hidden\n */\n /**\n * @hidden\n * @param {?} event\n * @return {?}\n */\n IgxRadioComponent.prototype._onRadioClick = /**\n * @hidden\n * @param {?} event\n * @return {?}\n */\n function (event) {\n event.stopPropagation();\n this.select();\n if (isIE()) {\n this.nativeRadio.nativeElement.blur();\n }\n };\n /**\n *@hidden\n */\n /**\n * @hidden\n * @return {?}\n */\n IgxRadioComponent.prototype._onLabelClick = /**\n * @hidden\n * @return {?}\n */\n function () {\n this.select();\n };\n /**\n * Selects the current radio button.\n * ```typescript\n * this.radio.select();\n * ```\n * @memberof IgxRadioComponent\n */\n /**\n * Selects the current radio button.\n * ```typescript\n * this.radio.select();\n * ```\n * \\@memberof IgxRadioComponent\n * @return {?}\n */\n IgxRadioComponent.prototype.select = /**\n * Selects the current radio button.\n * ```typescript\n * this.radio.select();\n * ```\n * \\@memberof IgxRadioComponent\n * @return {?}\n */\n function () {\n if (this.disabled) {\n return;\n }\n this.checked = true;\n this.focused = false;\n this.change.emit({ value: this.value, radio: this });\n this._onChangeCallback(this.value);\n };\n /**\n * Checks whether the provided value is consistent to the current radio button.\n * If it is, the checked attribute will have value `true`;\n * ```typescript\n * this.radio.writeValue('radioButtonValue');\n * ```\n */\n /**\n * Checks whether the provided value is consistent to the current radio button.\n * If it is, the checked attribute will have value `true`;\n * ```typescript\n * this.radio.writeValue('radioButtonValue');\n * ```\n * @param {?} value\n * @return {?}\n */\n IgxRadioComponent.prototype.writeValue = /**\n * Checks whether the provided value is consistent to the current radio button.\n * If it is, the checked attribute will have value `true`;\n * ```typescript\n * this.radio.writeValue('radioButtonValue');\n * ```\n * @param {?} value\n * @return {?}\n */\n function (value) {\n this._value = value;\n this.checked = (this._value === this.value);\n };\n /** @hidden */\n /**\n * @hidden\n * @return {?}\n */\n IgxRadioComponent.prototype.getEditElement = /**\n * @hidden\n * @return {?}\n */\n function () {\n return this.nativeRadio.nativeElement;\n };\n Object.defineProperty(IgxRadioComponent.prototype, \"labelClass\", {\n /**\n *@hidden\n */\n get: /**\n * @hidden\n * @return {?}\n */\n function () {\n switch (this.labelPosition) {\n case RadioLabelPosition.BEFORE:\n return this.cssClass + \"__label--before\";\n case RadioLabelPosition.AFTER:\n default:\n return this.cssClass + \"__label\";\n }\n },\n enumerable: true,\n configurable: true\n });\n /**\n *@hidden\n */\n /**\n * @hidden\n * @return {?}\n */\n IgxRadioComponent.prototype.onFocus = /**\n * @hidden\n * @return {?}\n */\n function () {\n this.focused = true;\n };\n /**\n *@hidden\n */\n /**\n * @hidden\n * @return {?}\n */\n IgxRadioComponent.prototype.onBlur = /**\n * @hidden\n * @return {?}\n */\n function () {\n this.focused = false;\n this._onTouchedCallback();\n };\n /**\n *@hidden\n */\n /**\n * @hidden\n * @param {?} fn\n * @return {?}\n */\n IgxRadioComponent.prototype.registerOnChange = /**\n * @hidden\n * @param {?} fn\n * @return {?}\n */\n function (fn) { this._onChangeCallback = fn; };\n /**\n *@hidden\n */\n /**\n * @hidden\n * @param {?} fn\n * @return {?}\n */\n IgxRadioComponent.prototype.registerOnTouched = /**\n * @hidden\n * @param {?} fn\n * @return {?}\n */\n function (fn) { this._onTouchedCallback = fn; };\n IgxRadioComponent.decorators = [\n { type: Component, args: [{\n providers: [{ provide: NG_VALUE_ACCESSOR, useExisting: IgxRadioComponent, multi: true }],\n selector: 'igx-radio',\n template: \"\\n\\n\\n\\n\\n \\n\\n\"\n }] }\n ];\n /** @nocollapse */\n IgxRadioComponent.ctorParameters = function () { return []; };\n IgxRadioComponent.propDecorators = {\n nativeRadio: [{ type: ViewChild, args: ['radio', { static: true },] }],\n nativeLabel: [{ type: ViewChild, args: ['nativeLabel', { static: true },] }],\n placeholderLabel: [{ type: ViewChild, args: ['placeholderLabel', { static: true },] }],\n id: [{ type: HostBinding, args: ['attr.id',] }, { type: Input }],\n labelId: [{ type: Input }],\n labelPosition: [{ type: Input }],\n value: [{ type: Input }],\n name: [{ type: Input }],\n tabindex: [{ type: Input }],\n disableRipple: [{ type: Input }],\n required: [{ type: Input }],\n ariaLabelledBy: [{ type: Input, args: ['aria-labelledby',] }],\n ariaLabel: [{ type: Input, args: ['aria-label',] }],\n change: [{ type: Output }],\n cssClass: [{ type: HostBinding, args: ['class.igx-radio',] }],\n checked: [{ type: HostBinding, args: ['class.igx-radio--checked',] }, { type: Input }],\n disabled: [{ type: HostBinding, args: ['class.igx-radio--disabled',] }, { type: Input }],\n focused: [{ type: HostBinding, args: ['class.igx-radio--focused',] }]\n };\n return IgxRadioComponent;\n}());\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\nvar IgxRippleDirective = /** @class */ (function () {\n function IgxRippleDirective(builder, elementRef, renderer, zone) {\n this.builder = builder;\n this.elementRef = elementRef;\n this.renderer = renderer;\n this.zone = zone;\n /**\n * Sets/gets the ripple target.\n * ```html\n *
\n * ```\n * ```typescript\n * \\@ViewChild('rippleContainer', {read: IgxRippleDirective})\n * public ripple: IgxRippleDirective;\n * let rippleTarget = this.ripple.rippleTarget;\n * ```\n * Can set the ripple to activate on a child element inside the parent where igxRipple is defined.\n * ```html\n *
\n * \n *
\n * ```\n * \\@memberof IgxRippleDirective\n */\n this.rippleTarget = '';\n /**\n * Sets/gets the ripple duration(in milliseconds).\n * Default value is `600`.\n * ```html\n * \n * ```\n * ```typescript\n * \\@ViewChild('rippleContainer', {read: IgxRippleDirective})\n * public ripple: IgxRippleDirective;\n * let rippleDuration = this.ripple.rippleDuration;\n * ```\n * \\@memberof IgxRippleDirective\n */\n this.rippleDuration = 600;\n /**\n * Sets/gets whether the ripple is disabled.\n * Default value is `false`.\n * ```html\n * \n * ```\n * ```typescript\n * \\@ViewChild('rippleContainer', {read: IgxRippleDirective})\n * public ripple: IgxRippleDirective;\n * let isRippleDisabled = this.ripple.rippleDisabled;\n * ```\n * \\@memberof IgxRippleDirective\n */\n this.rippleDisabled = false;\n this.rippleElementClass = 'igx-ripple__inner';\n this.rippleHostClass = 'igx-ripple';\n this._centered = false;\n this.animationQueue = [];\n }\n Object.defineProperty(IgxRippleDirective.prototype, \"centered\", {\n /**\n * Enables/disables the ripple to be centered.\n * ```html\n * \n * ```\n * @memberof IgxRippleDirective\n */\n set: /**\n * Enables/disables the ripple to be centered.\n * ```html\n * \n * ```\n * \\@memberof IgxRippleDirective\n * @param {?} value\n * @return {?}\n */\n function (value) {\n this._centered = value || this.centered;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxRippleDirective.prototype, \"nativeElement\", {\n get: /**\n * @protected\n * @return {?}\n */\n function () {\n return this.elementRef.nativeElement;\n },\n enumerable: true,\n configurable: true\n });\n /**\n *@hidden\n */\n /**\n * @hidden\n * @param {?} event\n * @return {?}\n */\n IgxRippleDirective.prototype.onMouseDown = /**\n * @hidden\n * @param {?} event\n * @return {?}\n */\n function (event) {\n var _this = this;\n this.zone.runOutsideAngular(function () { return _this._ripple(event); });\n };\n /**\n * @private\n * @param {?} rippleElement\n * @param {?} styleParams\n * @return {?}\n */\n IgxRippleDirective.prototype.setStyles = /**\n * @private\n * @param {?} rippleElement\n * @param {?} styleParams\n * @return {?}\n */\n function (rippleElement, styleParams) {\n this.renderer.addClass(rippleElement, this.rippleElementClass);\n this.renderer.setStyle(rippleElement, 'width', styleParams.radius + \"px\");\n this.renderer.setStyle(rippleElement, 'height', styleParams.radius + \"px\");\n this.renderer.setStyle(rippleElement, 'top', styleParams.top + \"px\");\n this.renderer.setStyle(rippleElement, 'left', styleParams.left + \"px\");\n if (this.rippleColor) {\n this.renderer.setStyle(rippleElement, 'background', this.rippleColor);\n }\n };\n /**\n * @private\n * @param {?} event\n * @return {?}\n */\n IgxRippleDirective.prototype._ripple = /**\n * @private\n * @param {?} event\n * @return {?}\n */\n function (event) {\n var _this = this;\n if (this.rippleDisabled) {\n return;\n }\n /** @type {?} */\n var target = (this.rippleTarget ? this.nativeElement.querySelector(this.rippleTarget) || this.nativeElement : this.nativeElement);\n /** @type {?} */\n var rectBounds = target.getBoundingClientRect();\n /** @type {?} */\n var radius = Math.max(rectBounds.width, rectBounds.height);\n /** @type {?} */\n var left = event.clientX - rectBounds.left - radius / 2;\n /** @type {?} */\n var top = event.clientY - rectBounds.top - radius / 2;\n if (this._centered) {\n left = top = 0;\n }\n /** @type {?} */\n var dimensions = {\n radius: radius,\n top: top,\n left: left\n };\n /** @type {?} */\n var rippleElement = this.renderer.createElement('span');\n this.setStyles(rippleElement, dimensions);\n this.renderer.addClass(target, this.rippleHostClass);\n this.renderer.appendChild(target, rippleElement);\n /** @type {?} */\n var animation = this.builder.build([\n style({ opacity: 0.5, transform: 'scale(.3)' }),\n animate(this.rippleDuration, style({ opacity: 0, transform: 'scale(2)' }))\n ]).create(rippleElement);\n this.animationQueue.push(animation);\n animation.onDone(function () {\n _this.animationQueue.splice(_this.animationQueue.indexOf(animation), 1);\n target.removeChild(rippleElement);\n if (_this.animationQueue.length < 1) {\n _this.renderer.removeClass(target, _this.rippleHostClass);\n }\n });\n animation.play();\n };\n IgxRippleDirective.decorators = [\n { type: Directive, args: [{\n selector: '[igxRipple]'\n },] }\n ];\n /** @nocollapse */\n IgxRippleDirective.ctorParameters = function () { return [\n { type: AnimationBuilder },\n { type: ElementRef },\n { type: Renderer2 },\n { type: NgZone }\n ]; };\n IgxRippleDirective.propDecorators = {\n rippleTarget: [{ type: Input, args: ['igxRippleTarget',] }],\n rippleColor: [{ type: Input, args: ['igxRipple',] }],\n rippleDuration: [{ type: Input, args: ['igxRippleDuration',] }],\n centered: [{ type: Input, args: ['igxRippleCentered',] }],\n rippleDisabled: [{ type: Input, args: ['igxRippleDisabled',] }],\n onMouseDown: [{ type: HostListener, args: ['mousedown', ['$event'],] }]\n };\n return IgxRippleDirective;\n}());\n/**\n * @hidden\n */\nvar IgxRippleModule = /** @class */ (function () {\n function IgxRippleModule() {\n }\n IgxRippleModule.decorators = [\n { type: NgModule, args: [{\n declarations: [IgxRippleDirective],\n exports: [IgxRippleDirective]\n },] }\n ];\n return IgxRippleModule;\n}());\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n/** @type {?} */\nvar noop$2 = function () { };\n/** @type {?} */\nvar nextId$1 = 0;\n/**\n * **Ignite UI for Angular Radio Group** -\n * [Documentation](https://www.infragistics.com/products/ignite-ui-angular/angular/components/radio_button.html)\n *\n * The Ignite UI Radio Group allows the user to select a single option from an available set of options that are listed side by side.\n *\n * Example:\n * ```html\n * \n * \n * {{item}}\n * \n * \n * ```\n */\nvar IgxRadioGroupDirective = /** @class */ (function () {\n function IgxRadioGroupDirective() {\n /**\n * An event that is emitted after the radio group `value` is changed.\n * Provides references to the selected `IgxRadioComponent` and the `value` property as event arguments.\n * \\@memberof IgxRadioGroupDirective\n */\n this.change = new EventEmitter();\n /**\n * @hidden\n */\n this.cssClass = 'igx-radio-group';\n /**\n * @hidden\n */\n this._onChangeCallback = noop$2;\n /**\n * @hidden\n */\n this._name = \"igx-radio-group-\" + nextId$1++;\n /**\n * @hidden\n */\n this._value = null;\n /**\n * @hidden\n */\n this._selected = null;\n /**\n * @hidden\n */\n this._isInitialized = false;\n /**\n * @hidden\n */\n this._labelPosition = 'after';\n /**\n * @hidden\n */\n this._disabled = false;\n /**\n * @hidden\n */\n this._required = false;\n /**\n * @hidden\n */\n this.destroy$ = new Subject();\n }\n Object.defineProperty(IgxRadioGroupDirective.prototype, \"value\", {\n /**\n * Sets/gets the `value` attribute.\n * ```html\n * \n * ```\n * ```typescript\n * let value = this.radioGroup.value;\n * ```\n * @memberof IgxRadioGroupDirective\n */\n get: /**\n * Sets/gets the `value` attribute.\n * ```html\n * \n * ```\n * ```typescript\n * let value = this.radioGroup.value;\n * ```\n * \\@memberof IgxRadioGroupDirective\n * @return {?}\n */\n function () { return this._value; },\n set: /**\n * @param {?} newValue\n * @return {?}\n */\n function (newValue) {\n if (this._value !== newValue) {\n this._value = newValue;\n this._selectRadioButton();\n }\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxRadioGroupDirective.prototype, \"name\", {\n /**\n * Sets/gets the `name` attribute of the radio group component. All child radio buttons inherits this name.\n * ```html\n * \n * ```\n * ```typescript\n * let name = this.radioGroup.name;\n * ```\n * @memberof IgxRadioGroupDirective\n */\n get: /**\n * Sets/gets the `name` attribute of the radio group component. All child radio buttons inherits this name.\n * ```html\n * \n * ```\n * ```typescript\n * let name = this.radioGroup.name;\n * ```\n * \\@memberof IgxRadioGroupDirective\n * @return {?}\n */\n function () { return this._name; },\n set: /**\n * @param {?} newValue\n * @return {?}\n */\n function (newValue) {\n if (this._name !== newValue) {\n this._name = newValue;\n this._setRadioButtonNames();\n }\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxRadioGroupDirective.prototype, \"required\", {\n /**\n * Sets/gets whether the radio group is required.\n * If not set, `required` will have value `false`.\n * ```html\n * \n * ```\n * ```typescript\n * let isRequired = this.radioGroup.required;\n * ```\n * @memberof IgxRadioGroupDirective\n */\n get: /**\n * Sets/gets whether the radio group is required.\n * If not set, `required` will have value `false`.\n * ```html\n * \n * ```\n * ```typescript\n * let isRequired = this.radioGroup.required;\n * ```\n * \\@memberof IgxRadioGroupDirective\n * @return {?}\n */\n function () { return this._required; },\n set: /**\n * @param {?} newValue\n * @return {?}\n */\n function (newValue) {\n if (this._required !== newValue) {\n this._required = newValue;\n this._setRadioButtonsRequired();\n }\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxRadioGroupDirective.prototype, \"disabled\", {\n /**\n * An @Input property that allows you to disable the radio group. By default it's false.\n * ```html\n * \n * ```\n * @memberof IgxRadioGroupDirective\n */\n get: /**\n * An \\@Input property that allows you to disable the radio group. By default it's false.\n * ```html\n * \n * ```\n * \\@memberof IgxRadioGroupDirective\n * @return {?}\n */\n function () { return this._disabled; },\n set: /**\n * @param {?} newValue\n * @return {?}\n */\n function (newValue) {\n if (this._disabled !== newValue) {\n this._disabled = newValue;\n this._disableRadioButtons();\n }\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxRadioGroupDirective.prototype, \"labelPosition\", {\n /**\n * Sets/gets the position of the `label` in the child radio buttons.\n * If not set, `labelPosition` will have value `\"after\"`.\n * ```html\n * \n * ```\n * ```typescript\n * let labelPosition = this.radioGroup.labelPosition;\n * ```\n * @memberof IgxRadioGroupDirective\n */\n get: /**\n * Sets/gets the position of the `label` in the child radio buttons.\n * If not set, `labelPosition` will have value `\"after\"`.\n * ```html\n * \n * ```\n * ```typescript\n * let labelPosition = this.radioGroup.labelPosition;\n * ```\n * \\@memberof IgxRadioGroupDirective\n * @return {?}\n */\n function () { return this._labelPosition; },\n set: /**\n * @param {?} newValue\n * @return {?}\n */\n function (newValue) {\n if (this._labelPosition !== newValue) {\n this._labelPosition = newValue === RadioLabelPosition.BEFORE ? RadioLabelPosition.BEFORE : RadioLabelPosition.AFTER;\n this._setRadioButtonLabelPosition();\n }\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxRadioGroupDirective.prototype, \"selected\", {\n /**\n * Sets/gets the selected child radio button.\n * ```typescript\n * let selectedButton = this.radioGroup.selected;\n * this.radioGroup.selected = selectedButton;\n * ```\n * @memberof IgxRadioGroupDirective\n */\n get: /**\n * Sets/gets the selected child radio button.\n * ```typescript\n * let selectedButton = this.radioGroup.selected;\n * this.radioGroup.selected = selectedButton;\n * ```\n * \\@memberof IgxRadioGroupDirective\n * @return {?}\n */\n function () { return this._selected; },\n set: /**\n * @param {?} selected\n * @return {?}\n */\n function (selected) {\n if (this._selected !== selected) {\n this._selected = selected;\n this.value = selected ? selected.value : null;\n }\n },\n enumerable: true,\n configurable: true\n });\n /**\n * @return {?}\n */\n IgxRadioGroupDirective.prototype.ngAfterContentInit = /**\n * @return {?}\n */\n function () {\n var _this = this;\n // The initial value can possibly be set by NgModel and it is possible that\n // the OnInit of the NgModel occurs after the OnInit of this class.\n this._isInitialized = true;\n setTimeout(function () { _this._initRadioButtons(); });\n };\n /**\n * Checks whether the provided value is consistent to the current radio button.\n * If it is, the checked attribute will have value `true` and selected property will contain the selected `IgxRadioComponent`.\n * ```typescript\n * this.radioGroup.writeValue('radioButtonValue');\n * ```\n */\n /**\n * Checks whether the provided value is consistent to the current radio button.\n * If it is, the checked attribute will have value `true` and selected property will contain the selected `IgxRadioComponent`.\n * ```typescript\n * this.radioGroup.writeValue('radioButtonValue');\n * ```\n * @param {?} value\n * @return {?}\n */\n IgxRadioGroupDirective.prototype.writeValue = /**\n * Checks whether the provided value is consistent to the current radio button.\n * If it is, the checked attribute will have value `true` and selected property will contain the selected `IgxRadioComponent`.\n * ```typescript\n * this.radioGroup.writeValue('radioButtonValue');\n * ```\n * @param {?} value\n * @return {?}\n */\n function (value) {\n this.value = value;\n };\n /**\n *@hidden\n */\n /**\n * @hidden\n * @param {?} fn\n * @return {?}\n */\n IgxRadioGroupDirective.prototype.registerOnChange = /**\n * @hidden\n * @param {?} fn\n * @return {?}\n */\n function (fn) { this._onChangeCallback = fn; };\n /**\n *@hidden\n */\n /**\n * @hidden\n * @param {?} fn\n * @return {?}\n */\n IgxRadioGroupDirective.prototype.registerOnTouched = /**\n * @hidden\n * @param {?} fn\n * @return {?}\n */\n function (fn) {\n if (this.radioButtons) {\n this.radioButtons.forEach(function (button) {\n button.registerOnTouched(fn);\n });\n }\n };\n /**\n *@hidden\n */\n /**\n * @hidden\n * @return {?}\n */\n IgxRadioGroupDirective.prototype.ngOnDestroy = /**\n * @hidden\n * @return {?}\n */\n function () {\n this.destroy$.next(true);\n this.destroy$.complete();\n };\n /**\n *@hidden\n */\n /**\n * @hidden\n * @private\n * @return {?}\n */\n IgxRadioGroupDirective.prototype._initRadioButtons = /**\n * @hidden\n * @private\n * @return {?}\n */\n function () {\n var _this = this;\n if (this.radioButtons) {\n /** @type {?} */\n var props_1 = { name: this._name, labelPosition: this._labelPosition, disabled: this._disabled, required: this._required };\n this.radioButtons.forEach(function (button) {\n Object.assign(button, props_1);\n if (button.value === _this._value) {\n button.checked = true;\n _this._selected = button;\n }\n button.change.pipe(takeUntil(_this.destroy$)).subscribe(function (ev) { return _this._selectedRadioButtonChanged(ev); });\n });\n }\n };\n /**\n *@hidden\n */\n /**\n * @hidden\n * @private\n * @param {?} args\n * @return {?}\n */\n IgxRadioGroupDirective.prototype._selectedRadioButtonChanged = /**\n * @hidden\n * @private\n * @param {?} args\n * @return {?}\n */\n function (args) {\n if (this._selected !== args.radio) {\n if (this._selected) {\n this._selected.checked = false;\n }\n this._selected = args.radio;\n }\n this._value = args.value;\n if (this._isInitialized) {\n this.change.emit(args);\n this._onChangeCallback(this.value);\n }\n };\n /**\n *@hidden\n */\n /**\n * @hidden\n * @private\n * @return {?}\n */\n IgxRadioGroupDirective.prototype._setRadioButtonNames = /**\n * @hidden\n * @private\n * @return {?}\n */\n function () {\n var _this = this;\n if (this.radioButtons) {\n this.radioButtons.forEach(function (button) {\n button.name = _this._name;\n });\n }\n };\n /**\n *@hidden\n */\n /**\n * @hidden\n * @private\n * @return {?}\n */\n IgxRadioGroupDirective.prototype._selectRadioButton = /**\n * @hidden\n * @private\n * @return {?}\n */\n function () {\n var _this = this;\n if (this.radioButtons) {\n this.radioButtons.forEach(function (button) {\n if (!_this._value) {\n // no value - uncheck all radio buttons\n if (button.checked) {\n button.checked = false;\n }\n }\n else {\n if (_this._value === button.value) {\n // selected button\n if (_this._selected !== button) {\n _this._selected = button;\n }\n if (!button.checked) {\n button.select();\n }\n }\n else {\n // non-selected button\n if (button.checked) {\n button.checked = false;\n }\n }\n }\n });\n }\n };\n /**\n *@hidden\n */\n /**\n * @hidden\n * @private\n * @return {?}\n */\n IgxRadioGroupDirective.prototype._setRadioButtonLabelPosition = /**\n * @hidden\n * @private\n * @return {?}\n */\n function () {\n var _this = this;\n if (this.radioButtons) {\n this.radioButtons.forEach(function (button) {\n button.labelPosition = _this._labelPosition;\n });\n }\n };\n /**\n *@hidden\n */\n /**\n * @hidden\n * @private\n * @return {?}\n */\n IgxRadioGroupDirective.prototype._disableRadioButtons = /**\n * @hidden\n * @private\n * @return {?}\n */\n function () {\n var _this = this;\n if (this.radioButtons) {\n this.radioButtons.forEach(function (button) {\n button.disabled = _this._disabled;\n });\n }\n };\n /**\n *@hidden\n */\n /**\n * @hidden\n * @private\n * @return {?}\n */\n IgxRadioGroupDirective.prototype._setRadioButtonsRequired = /**\n * @hidden\n * @private\n * @return {?}\n */\n function () {\n var _this = this;\n if (this.radioButtons) {\n this.radioButtons.forEach(function (button) {\n button.required = _this._required;\n });\n }\n };\n IgxRadioGroupDirective.decorators = [\n { type: Directive, args: [{\n exportAs: 'igxRadioGroup',\n selector: 'igx-radio-group, [igxRadioGroup]',\n providers: [{ provide: NG_VALUE_ACCESSOR, useExisting: IgxRadioGroupDirective, multi: true }]\n },] }\n ];\n IgxRadioGroupDirective.propDecorators = {\n radioButtons: [{ type: ContentChildren, args: [IgxRadioComponent, { descendants: true },] }],\n value: [{ type: Input }],\n name: [{ type: Input }],\n required: [{ type: Input }],\n disabled: [{ type: Input }],\n labelPosition: [{ type: Input }],\n selected: [{ type: Input }],\n change: [{ type: Output }],\n cssClass: [{ type: HostBinding, args: ['class.igx-radio-group',] }]\n };\n return IgxRadioGroupDirective;\n}());\n/**\n * @hidden\n */\nvar IgxRadioModule = /** @class */ (function () {\n function IgxRadioModule() {\n }\n IgxRadioModule.decorators = [\n { type: NgModule, args: [{\n declarations: [IgxRadioGroupDirective, IgxRadioComponent],\n exports: [IgxRadioGroupDirective, IgxRadioComponent],\n imports: [IgxRippleModule]\n },] }\n ];\n return IgxRadioModule;\n}());\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\nvar IgxTextHighlightDirective = /** @class */ (function () {\n function IgxTextHighlightDirective(element, renderer) {\n var _this = this;\n this.element = element;\n this.renderer = renderer;\n this._div = null;\n this._observer = null;\n this._nodeWasRemoved = false;\n this._forceEvaluation = false;\n this._activeElementIndex = -1;\n this._defaultCssClass = 'igx-highlight';\n this._defaultActiveCssClass = 'igx-highlight--active';\n /**\n * Identifies the highlight within a unique group.\n * This allows it to have several different highlight groups,\n * with each of them having their own active highlight.\n *\n * ```html\n * \n * \n * ```\n */\n this.groupName = '';\n this._value = '';\n this.destroy$ = new Subject();\n IgxTextHighlightDirective.onActiveElementChanged.pipe(takeUntil(this.destroy$)).subscribe(function (groupName) {\n if (_this.groupName === groupName) {\n if (_this._activeElementIndex !== -1) {\n _this.deactivate();\n }\n _this.activateIfNecessary();\n }\n });\n }\n Object.defineProperty(IgxTextHighlightDirective.prototype, \"value\", {\n /**\n * The underlying value of the element that will be highlighted.\n *\n * ```typescript\n * // get\n * const elementValue = this.textHighlight.value;\n * ```\n *\n * ```html\n * \n * \n * \n * ```\n */\n get: /**\n * The underlying value of the element that will be highlighted.\n *\n * ```typescript\n * // get\n * const elementValue = this.textHighlight.value;\n * ```\n *\n * ```html\n * \n * \n * \n * ```\n * @return {?}\n */\n function () {\n return this._value;\n },\n set: /**\n * @param {?} value\n * @return {?}\n */\n function (value) {\n if (value === undefined || value === null) {\n this._value = '';\n }\n else {\n this._value = value;\n }\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxTextHighlightDirective.prototype, \"lastSearchInfo\", {\n /**\n * @hidden\n */\n get: /**\n * @hidden\n * @return {?}\n */\n function () {\n return this._lastSearchInfo;\n },\n enumerable: true,\n configurable: true\n });\n /**\n * Activates the highlight at a given index.\n * (if such index exists)\n */\n /**\n * Activates the highlight at a given index.\n * (if such index exists)\n * @param {?} groupName\n * @param {?} highlight\n * @return {?}\n */\n IgxTextHighlightDirective.setActiveHighlight = /**\n * Activates the highlight at a given index.\n * (if such index exists)\n * @param {?} groupName\n * @param {?} highlight\n * @return {?}\n */\n function (groupName, highlight) {\n IgxTextHighlightDirective.highlightGroupsMap.set(groupName, highlight);\n IgxTextHighlightDirective.onActiveElementChanged.emit(groupName);\n };\n /**\n * Clears any existing highlight.\n */\n /**\n * Clears any existing highlight.\n * @param {?} groupName\n * @return {?}\n */\n IgxTextHighlightDirective.clearActiveHighlight = /**\n * Clears any existing highlight.\n * @param {?} groupName\n * @return {?}\n */\n function (groupName) {\n IgxTextHighlightDirective.highlightGroupsMap.set(groupName, {\n index: -1\n });\n IgxTextHighlightDirective.onActiveElementChanged.emit(groupName);\n };\n /**\n * @hidden\n */\n /**\n * @hidden\n * @return {?}\n */\n IgxTextHighlightDirective.prototype.ngOnDestroy = /**\n * @hidden\n * @return {?}\n */\n function () {\n this.clearHighlight();\n if (this._observer !== null) {\n this._observer.disconnect();\n }\n this.destroy$.next(true);\n this.destroy$.complete();\n };\n /**\n * @hidden\n */\n /**\n * @hidden\n * @param {?} changes\n * @return {?}\n */\n IgxTextHighlightDirective.prototype.ngOnChanges = /**\n * @hidden\n * @param {?} changes\n * @return {?}\n */\n function (changes) {\n if (changes.value && !changes.value.firstChange) {\n this._valueChanged = true;\n }\n else if ((changes.row !== undefined && !changes.row.firstChange) ||\n (changes.column !== undefined && !changes.column.firstChange) ||\n (changes.page !== undefined && !changes.page.firstChange)) {\n if (this._activeElementIndex !== -1) {\n this.deactivate();\n }\n this.activateIfNecessary();\n }\n };\n /**\n * @hidden\n */\n /**\n * @hidden\n * @return {?}\n */\n IgxTextHighlightDirective.prototype.ngAfterViewInit = /**\n * @hidden\n * @return {?}\n */\n function () {\n this.parentElement = this.renderer.parentNode(this.element.nativeElement);\n if (IgxTextHighlightDirective.highlightGroupsMap.has(this.groupName) === false) {\n IgxTextHighlightDirective.highlightGroupsMap.set(this.groupName, {\n index: -1\n });\n }\n this._lastSearchInfo = {\n searchedText: '',\n content: this.value,\n matchCount: 0,\n caseSensitive: false,\n exactMatch: false\n };\n this._container = this.parentElement.firstElementChild;\n };\n /**\n * @hidden\n */\n /**\n * @hidden\n * @return {?}\n */\n IgxTextHighlightDirective.prototype.ngAfterViewChecked = /**\n * @hidden\n * @return {?}\n */\n function () {\n if (this._valueChanged) {\n this.highlight(this._lastSearchInfo.searchedText, this._lastSearchInfo.caseSensitive, this._lastSearchInfo.exactMatch);\n this.activateIfNecessary();\n this._valueChanged = false;\n }\n };\n /**\n * Clears the existing highlight and highlights the searched text.\n * Returns how many times the element contains the searched text.\n */\n /**\n * Clears the existing highlight and highlights the searched text.\n * Returns how many times the element contains the searched text.\n * @param {?} text\n * @param {?=} caseSensitive\n * @param {?=} exactMatch\n * @return {?}\n */\n IgxTextHighlightDirective.prototype.highlight = /**\n * Clears the existing highlight and highlights the searched text.\n * Returns how many times the element contains the searched text.\n * @param {?} text\n * @param {?=} caseSensitive\n * @param {?=} exactMatch\n * @return {?}\n */\n function (text, caseSensitive, exactMatch) {\n /** @type {?} */\n var caseSensitiveResolved = caseSensitive ? true : false;\n /** @type {?} */\n var exactMatchResolved = exactMatch ? true : false;\n if (this.searchNeedsEvaluation(text, caseSensitiveResolved, exactMatchResolved)) {\n this._lastSearchInfo.searchedText = text;\n this._lastSearchInfo.caseSensitive = caseSensitiveResolved;\n this._lastSearchInfo.exactMatch = exactMatchResolved;\n this._lastSearchInfo.content = this.value;\n if (text === '' || text === undefined || text === null) {\n this.clearHighlight();\n }\n else {\n this.clearChildElements(true);\n this._lastSearchInfo.matchCount = this.getHighlightedText(text, caseSensitive, exactMatch);\n }\n }\n else if (this._nodeWasRemoved) {\n this._lastSearchInfo.searchedText = text;\n this._lastSearchInfo.caseSensitive = caseSensitiveResolved;\n this._lastSearchInfo.exactMatch = exactMatchResolved;\n }\n return this._lastSearchInfo.matchCount;\n };\n /**\n * Clears any existing highlight.\n */\n /**\n * Clears any existing highlight.\n * @return {?}\n */\n IgxTextHighlightDirective.prototype.clearHighlight = /**\n * Clears any existing highlight.\n * @return {?}\n */\n function () {\n this.clearChildElements(false);\n this._lastSearchInfo.searchedText = '';\n this._lastSearchInfo.matchCount = 0;\n };\n /**\n * Activates the highlight if it is on the currently active row, column and page.\n */\n /**\n * Activates the highlight if it is on the currently active row, column and page.\n * @return {?}\n */\n IgxTextHighlightDirective.prototype.activateIfNecessary = /**\n * Activates the highlight if it is on the currently active row, column and page.\n * @return {?}\n */\n function () {\n /** @type {?} */\n var group = IgxTextHighlightDirective.highlightGroupsMap.get(this.groupName);\n /** @type {?} */\n var column = group.columnIndex === undefined ? group.column : group.columnIndex;\n /** @type {?} */\n var row = group.rowIndex === undefined ? group.row : group.rowIndex;\n if (column === this.column && row === this.row && group.page === this.page) {\n this.activate(group.index);\n }\n };\n /**\n * Attaches a MutationObserver to the parentElement and watches for when the container element is removed/readded to the DOM.\n * Should be used only when necessary as using many observers may lead to performance degradation.\n */\n /**\n * Attaches a MutationObserver to the parentElement and watches for when the container element is removed/readded to the DOM.\n * Should be used only when necessary as using many observers may lead to performance degradation.\n * @return {?}\n */\n IgxTextHighlightDirective.prototype.observe = /**\n * Attaches a MutationObserver to the parentElement and watches for when the container element is removed/readded to the DOM.\n * Should be used only when necessary as using many observers may lead to performance degradation.\n * @return {?}\n */\n function () {\n var _this = this;\n if (this._observer === null) {\n /** @type {?} */\n var callback = function (mutationList) {\n mutationList.forEach(function (mutation) {\n /** @type {?} */\n var removedNodes = Array.from(mutation.removedNodes);\n removedNodes.forEach(function (n) {\n if (n === _this._container) {\n _this._nodeWasRemoved = true;\n _this.clearChildElements(false);\n }\n });\n /** @type {?} */\n var addedNodes = Array.from(mutation.addedNodes);\n addedNodes.forEach(function (n) {\n if (n === _this.parentElement.firstElementChild && _this._nodeWasRemoved) {\n _this._container = _this.parentElement.firstElementChild;\n _this._nodeWasRemoved = false;\n _this._forceEvaluation = true;\n _this.highlight(_this._lastSearchInfo.searchedText, _this._lastSearchInfo.caseSensitive, _this._lastSearchInfo.exactMatch);\n _this._forceEvaluation = false;\n _this.activateIfNecessary();\n _this._observer.disconnect();\n _this._observer = null;\n }\n });\n });\n };\n this._observer = new MutationObserver(callback);\n this._observer.observe(this.parentElement, { childList: true });\n }\n };\n /**\n * @private\n * @param {?} index\n * @return {?}\n */\n IgxTextHighlightDirective.prototype.activate = /**\n * @private\n * @param {?} index\n * @return {?}\n */\n function (index) {\n this.deactivate();\n if (this._div !== null) {\n /** @type {?} */\n var spans = this._div.querySelectorAll('span');\n this._activeElementIndex = index;\n if (spans.length <= index) {\n return;\n }\n /** @type {?} */\n var elementToActivate = spans[index];\n this.renderer.addClass(elementToActivate, this._defaultActiveCssClass);\n this.renderer.addClass(elementToActivate, this.activeCssClass);\n }\n };\n /**\n * @private\n * @return {?}\n */\n IgxTextHighlightDirective.prototype.deactivate = /**\n * @private\n * @return {?}\n */\n function () {\n if (this._activeElementIndex === -1) {\n return;\n }\n /** @type {?} */\n var spans = this._div.querySelectorAll('span');\n if (spans.length <= this._activeElementIndex) {\n this._activeElementIndex = -1;\n return;\n }\n /** @type {?} */\n var elementToDeactivate = spans[this._activeElementIndex];\n this.renderer.removeClass(elementToDeactivate, this._defaultActiveCssClass);\n this.renderer.removeClass(elementToDeactivate, this.activeCssClass);\n this._activeElementIndex = -1;\n };\n /**\n * @private\n * @param {?} originalContentHidden\n * @return {?}\n */\n IgxTextHighlightDirective.prototype.clearChildElements = /**\n * @private\n * @param {?} originalContentHidden\n * @return {?}\n */\n function (originalContentHidden) {\n this.renderer.setProperty(this.element.nativeElement, 'hidden', originalContentHidden);\n if (this._div !== null) {\n this.renderer.removeChild(this.parentElement, this._div);\n this._div = null;\n this._activeElementIndex = -1;\n }\n };\n /**\n * @private\n * @param {?} searchText\n * @param {?} caseSensitive\n * @param {?} exactMatch\n * @return {?}\n */\n IgxTextHighlightDirective.prototype.getHighlightedText = /**\n * @private\n * @param {?} searchText\n * @param {?} caseSensitive\n * @param {?} exactMatch\n * @return {?}\n */\n function (searchText, caseSensitive, exactMatch) {\n this.appendDiv();\n /** @type {?} */\n var stringValue = String(this.value);\n /** @type {?} */\n var contentStringResolved = !caseSensitive ? stringValue.toLowerCase() : stringValue;\n /** @type {?} */\n var searchTextResolved = !caseSensitive ? searchText.toLowerCase() : searchText;\n /** @type {?} */\n var matchCount = 0;\n if (exactMatch) {\n if (contentStringResolved === searchTextResolved) {\n // tslint:disable-next-line:max-line-length\n this.appendSpan(\"\" + stringValue + \"\");\n matchCount++;\n }\n else {\n this.appendText(stringValue);\n }\n }\n else {\n /** @type {?} */\n var foundIndex = contentStringResolved.indexOf(searchTextResolved, 0);\n /** @type {?} */\n var previousMatchEnd = 0;\n while (foundIndex !== -1) {\n /** @type {?} */\n var start = foundIndex;\n /** @type {?} */\n var end = foundIndex + searchTextResolved.length;\n this.appendText(stringValue.substring(previousMatchEnd, start));\n // tslint:disable-next-line:max-line-length\n this.appendSpan(\"\" + stringValue.substring(start, end) + \"\");\n previousMatchEnd = end;\n matchCount++;\n foundIndex = contentStringResolved.indexOf(searchTextResolved, end);\n }\n this.appendText(stringValue.substring(previousMatchEnd, stringValue.length));\n }\n return matchCount;\n };\n /**\n * @private\n * @param {?} text\n * @return {?}\n */\n IgxTextHighlightDirective.prototype.appendText = /**\n * @private\n * @param {?} text\n * @return {?}\n */\n function (text) {\n /** @type {?} */\n var textElement = this.renderer.createText(text);\n this.renderer.appendChild(this._div, textElement);\n };\n /**\n * @private\n * @param {?} outerHTML\n * @return {?}\n */\n IgxTextHighlightDirective.prototype.appendSpan = /**\n * @private\n * @param {?} outerHTML\n * @return {?}\n */\n function (outerHTML) {\n /** @type {?} */\n var span = this.renderer.createElement('span');\n this.renderer.appendChild(this._div, span);\n this.renderer.setProperty(span, 'outerHTML', outerHTML);\n };\n /**\n * @private\n * @return {?}\n */\n IgxTextHighlightDirective.prototype.appendDiv = /**\n * @private\n * @return {?}\n */\n function () {\n this._div = this.renderer.createElement('div');\n if (this.containerClass) {\n this.renderer.addClass(this._div, this.containerClass);\n }\n this.renderer.appendChild(this.parentElement, this._div);\n };\n /**\n * @private\n * @param {?} text\n * @param {?} caseSensitive\n * @param {?} exactMatch\n * @return {?}\n */\n IgxTextHighlightDirective.prototype.searchNeedsEvaluation = /**\n * @private\n * @param {?} text\n * @param {?} caseSensitive\n * @param {?} exactMatch\n * @return {?}\n */\n function (text, caseSensitive, exactMatch) {\n /** @type {?} */\n var searchedText = this._lastSearchInfo.searchedText;\n return !this._nodeWasRemoved &&\n (searchedText === null ||\n searchedText !== text ||\n this._lastSearchInfo.content !== this.value ||\n this._lastSearchInfo.caseSensitive !== caseSensitive ||\n this._lastSearchInfo.exactMatch !== exactMatch ||\n this._forceEvaluation);\n };\n IgxTextHighlightDirective.onActiveElementChanged = new EventEmitter();\n IgxTextHighlightDirective.highlightGroupsMap = new Map();\n IgxTextHighlightDirective.decorators = [\n { type: Directive, args: [{\n selector: '[igxTextHighlight]'\n },] }\n ];\n /** @nocollapse */\n IgxTextHighlightDirective.ctorParameters = function () { return [\n { type: ElementRef },\n { type: Renderer2 }\n ]; };\n IgxTextHighlightDirective.propDecorators = {\n cssClass: [{ type: Input, args: ['cssClass',] }],\n activeCssClass: [{ type: Input, args: ['activeCssClass',] }],\n containerClass: [{ type: Input, args: ['containerClass',] }],\n groupName: [{ type: Input, args: ['groupName',] }],\n value: [{ type: Input, args: ['value',] }],\n row: [{ type: Input, args: ['row',] }],\n column: [{ type: Input, args: ['column',] }],\n page: [{ type: Input, args: ['page',] }]\n };\n __decorate([\n DeprecateProperty(\"IgxTextHighlightDirective 'page' input property is deprecated.\"),\n __metadata(\"design:type\", Number)\n ], IgxTextHighlightDirective.prototype, \"page\", void 0);\n return IgxTextHighlightDirective;\n}());\n/**\n * @hidden\n */\nvar IgxTextHighlightModule = /** @class */ (function () {\n function IgxTextHighlightModule() {\n }\n IgxTextHighlightModule.decorators = [\n { type: NgModule, args: [{\n declarations: [IgxTextHighlightDirective],\n exports: [IgxTextHighlightDirective]\n },] }\n ];\n return IgxTextHighlightModule;\n}());\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\nvar IgxTextSelectionDirective = /** @class */ (function () {\n function IgxTextSelectionDirective(element) {\n this.element = element;\n this.selectionState = true;\n }\n Object.defineProperty(IgxTextSelectionDirective.prototype, \"selected\", {\n /**\n * Returns whether the input element is selectable through the directive.\n *\n * ```typescript\n * // get\n * @ViewChild('firstName',\n * {read: IgxTextSelectionDirective})\n * public firstName: IgxTextSelectionDirective;\n *\n * public getFirstNameSelectionStatus() {\n * return this.firstName.selected;\n * }\n * ```\n */\n get: /**\n * Returns whether the input element is selectable through the directive.\n *\n * ```typescript\n * // get\n * \\@ViewChild('firstName',\n * {read: IgxTextSelectionDirective})\n * public firstName: IgxTextSelectionDirective;\n *\n * public getFirstNameSelectionStatus() {\n * return this.firstName.selected;\n * }\n * ```\n * @return {?}\n */\n function () {\n return this.selectionState;\n },\n /**\n * Determines whether the input element could be selected through the directive.\n *\n *```html\n * \n * \n * \n *\n * \n * \n * ```\n */\n set: /**\n * Determines whether the input element could be selected through the directive.\n *\n * ```html\n * \n * \n * \n *\n * \n * \n * ```\n * @param {?} val\n * @return {?}\n */\n function (val) {\n this.selectionState = val;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxTextSelectionDirective.prototype, \"nativeElement\", {\n /**\n * Returns the nativeElement of the element where the directive was applied.\n *\n * ```html\n * \n * \n * ```\n *\n * ```typescript\n * @ViewChild('firstName',\n * {read: IgxTextSelectionDirective})\n * public inputElement: IgxTextSelectionDirective;\n *\n * public getNativeElement() {\n * return this.inputElement.nativeElement;\n * }\n * ```\n */\n get: /**\n * Returns the nativeElement of the element where the directive was applied.\n *\n * ```html\n * \n * \n * ```\n *\n * ```typescript\n * \\@ViewChild('firstName',\n * {read: IgxTextSelectionDirective})\n * public inputElement: IgxTextSelectionDirective;\n *\n * public getNativeElement() {\n * return this.inputElement.nativeElement;\n * }\n * ```\n * @return {?}\n */\n function () {\n return this.element.nativeElement;\n },\n enumerable: true,\n configurable: true\n });\n /**\n * @hidden\n */\n /**\n * @hidden\n * @return {?}\n */\n IgxTextSelectionDirective.prototype.onFocus = /**\n * @hidden\n * @return {?}\n */\n function () {\n this.trigger();\n };\n /**\n * Triggers the selection of the element if it is marked as selectable.\n *\n * ```html\n * \n * \n * ```\n *\n * ```typescript\n * @ViewChild('firstName',\n * {read: IgxTextSelectionDirective})\n * public inputElement: IgxTextSelectionDirective;\n *\n * public triggerElementSelection() {\n * this.inputElement.trigger();\n * }\n * ```\n */\n /**\n * Triggers the selection of the element if it is marked as selectable.\n *\n * ```html\n * \n * \n * ```\n *\n * ```typescript\n * \\@ViewChild('firstName',\n * {read: IgxTextSelectionDirective})\n * public inputElement: IgxTextSelectionDirective;\n *\n * public triggerElementSelection() {\n * this.inputElement.trigger();\n * }\n * ```\n * @return {?}\n */\n IgxTextSelectionDirective.prototype.trigger = /**\n * Triggers the selection of the element if it is marked as selectable.\n *\n * ```html\n * \n * \n * ```\n *\n * ```typescript\n * \\@ViewChild('firstName',\n * {read: IgxTextSelectionDirective})\n * public inputElement: IgxTextSelectionDirective;\n *\n * public triggerElementSelection() {\n * this.inputElement.trigger();\n * }\n * ```\n * @return {?}\n */\n function () {\n var _this = this;\n if (this.selected && this.nativeElement.value.length) {\n requestAnimationFrame(function () { return _this.nativeElement.setSelectionRange(0, _this.nativeElement.value.length); });\n }\n };\n IgxTextSelectionDirective.decorators = [\n { type: Directive, args: [{\n exportAs: 'igxTextSelection',\n selector: '[igxTextSelection]'\n },] }\n ];\n /** @nocollapse */\n IgxTextSelectionDirective.ctorParameters = function () { return [\n { type: ElementRef }\n ]; };\n IgxTextSelectionDirective.propDecorators = {\n selected: [{ type: Input, args: ['igxTextSelection',] }],\n onFocus: [{ type: HostListener, args: ['focus',] }]\n };\n return IgxTextSelectionDirective;\n}());\n/**\n * @hidden\n */\nvar IgxTextSelectionModule = /** @class */ (function () {\n function IgxTextSelectionModule() {\n }\n IgxTextSelectionModule.decorators = [\n { type: NgModule, args: [{\n declarations: [IgxTextSelectionDirective],\n exports: [IgxTextSelectionDirective]\n },] }\n ];\n return IgxTextSelectionModule;\n}());\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n/**\n * **Ignite UI for Angular Tooltip Target** -\n * [Documentation](https://www.infragistics.com/products/ignite-ui-angular/angular/components/tooltip.html)\n *\n * The Ignite UI for Angular Tooltip Target directive is used to mark an HTML element in the markup as one that has a tooltip.\n * The tooltip target is used in combination with the Ignite UI for Angular Tooltip by assigning the exported tooltip reference to the\n * target's selector property.\n *\n * Example:\n * ```html\n * \n * Hello there, I am a tooltip!\n * ```\n */\nvar IgxTooltipTargetDirective = /** @class */ (function (_super) {\n __extends(IgxTooltipTargetDirective, _super);\n function IgxTooltipTargetDirective(_element, _navigationService) {\n var _this = _super.call(this, _element, _navigationService) || this;\n _this._element = _element;\n _this._navigationService = _navigationService;\n /**\n * Gets/sets the amount of milliseconds that should pass before showing the tooltip.\n *\n * ```typescript\n * // get\n * let tooltipShowDelay = this.tooltipTarget.showDelay;\n * ```\n *\n * ```html\n * \n * \n * Hello there, I am a tooltip!\n * ```\n */\n _this.showDelay = 500;\n /**\n * Gets/sets the amount of milliseconds that should pass before hiding the tooltip.\n *\n * ```typescript\n * // get\n * let tooltipHideDelay = this.tooltipTarget.hideDelay;\n * ```\n *\n * ```html\n * \n * \n * Hello there, I am a tooltip!\n * ```\n */\n _this.hideDelay = 500;\n /**\n * Specifies if the tooltip should not show when hovering its target with the mouse. (defaults to false)\n * While setting this property to 'true' will disable the user interactions that shows/hides the tooltip,\n * the developer will still be able to show/hide the tooltip through the API.\n *\n * ```typescript\n * // get\n * let tooltipDisabledValue = this.tooltipTarget.tooltipDisabled;\n * ```\n *\n * ```html\n * \n * \n * Hello there, I am a tooltip!\n * ```\n */\n _this.tooltipDisabled = false;\n /**\n * Emits an event when the tooltip that is associated with this target starts showing.\n * This event is fired before the start of the countdown to showing the tooltip.\n *\n * ```typescript\n * tooltipShowing(args: ITooltipShowEventArgs) {\n * alert(\"Tooltip started showing!\");\n * }\n * ```\n *\n * ```html\n * \n * Hello there, I am a tooltip!\n * ```\n */\n _this.onTooltipShow = new EventEmitter();\n /**\n * Emits an event when the tooltip that is associated with this target starts hiding.\n * This event is fired before the start of the countdown to hiding the tooltip.\n *\n * ```typescript\n * tooltipHiding(args: ITooltipHideEventArgs) {\n * alert(\"Tooltip started hiding!\");\n * }\n * ```\n *\n * ```html\n * \n * Hello there, I am a tooltip!\n * ```\n */\n _this.onTooltipHide = new EventEmitter();\n return _this;\n }\n Object.defineProperty(IgxTooltipTargetDirective.prototype, \"target\", {\n /**\n * @hidden\n */\n get: /**\n * @hidden\n * @return {?}\n */\n function () {\n if (typeof this._target === 'string') {\n return this._navigationService.get(this._target);\n }\n return this._target;\n },\n /**\n * @hidden\n */\n set: /**\n * @hidden\n * @param {?} target\n * @return {?}\n */\n function (target) {\n if (target !== null && target !== '') {\n this._target = target;\n }\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxTooltipTargetDirective.prototype, \"nativeElement\", {\n /**\n * Gets the respective native element of the directive.\n *\n * ```typescript\n * let tooltipTargetElement = this.tooltipTarget.nativeElement;\n * ```\n */\n get: /**\n * Gets the respective native element of the directive.\n *\n * ```typescript\n * let tooltipTargetElement = this.tooltipTarget.nativeElement;\n * ```\n * @return {?}\n */\n function () {\n return this._element.nativeElement;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxTooltipTargetDirective.prototype, \"tooltipHidden\", {\n /**\n * Indicates if the tooltip that is is associated with this target is currently hidden.\n *\n * ```typescript\n * let tooltipHiddenValue = this.tooltipTarget.tooltipHidden;\n * ```\n */\n get: /**\n * Indicates if the tooltip that is is associated with this target is currently hidden.\n *\n * ```typescript\n * let tooltipHiddenValue = this.tooltipTarget.tooltipHidden;\n * ```\n * @return {?}\n */\n function () {\n return !this.target || this.target.collapsed;\n },\n enumerable: true,\n configurable: true\n });\n /**\n * @hidden\n */\n /**\n * @hidden\n * @return {?}\n */\n IgxTooltipTargetDirective.prototype.ngOnInit = /**\n * @hidden\n * @return {?}\n */\n function () {\n _super.prototype.ngOnInit.call(this);\n /** @type {?} */\n var positionSettings = {\n target: this.nativeElement,\n horizontalDirection: HorizontalAlignment.Center,\n horizontalStartPoint: HorizontalAlignment.Center,\n openAnimation: useAnimation(scaleInCenter, { params: { duration: '150ms' } }),\n closeAnimation: useAnimation(fadeOut, { params: { duration: '75ms' } })\n };\n this._overlayDefaults.positionStrategy = new AutoPositionStrategy(positionSettings);\n this._overlayDefaults.closeOnOutsideClick = false;\n };\n /**\n * @private\n * @return {?}\n */\n IgxTooltipTargetDirective.prototype.checkOutletAndOutsideClick = /**\n * @private\n * @return {?}\n */\n function () {\n if (this.outlet) {\n this._overlayDefaults.outlet = this.outlet;\n }\n };\n Object.defineProperty(IgxTooltipTargetDirective.prototype, \"mergedOverlaySettings\", {\n get: /**\n * @private\n * @return {?}\n */\n function () {\n return Object.assign({}, this._overlayDefaults, this.overlaySettings);\n },\n enumerable: true,\n configurable: true\n });\n // Return true if the execution in onMouseEnter should be terminated after this method\n // Return true if the execution in onMouseEnter should be terminated after this method\n /**\n * @private\n * @return {?}\n */\n IgxTooltipTargetDirective.prototype.preMouseEnterCheck = \n // Return true if the execution in onMouseEnter should be terminated after this method\n /**\n * @private\n * @return {?}\n */\n function () {\n // If tooltip is about to be opened\n if (this.target.toBeShown) {\n clearTimeout(this.target.timeoutId);\n this.target.toBeShown = false;\n }\n // If Tooltip is opened or about to be hidden\n if (!this.target.collapsed || this.target.toBeHidden) {\n clearTimeout(this.target.timeoutId);\n /** @type {?} */\n var hidingArgs = { target: this, tooltip: this.target, cancel: false };\n this.onTooltipHide.emit(hidingArgs);\n if (hidingArgs.cancel) {\n return true;\n }\n // if close animation has started finish it, or close the tooltip with no animation\n this.target.forceClose(this.mergedOverlaySettings);\n this.target.toBeHidden = false;\n }\n return false;\n };\n // Return true if the execution in onMouseLeave should be terminated after this method\n // Return true if the execution in onMouseLeave should be terminated after this method\n /**\n * @private\n * @return {?}\n */\n IgxTooltipTargetDirective.prototype.preMouseLeaveCheck = \n // Return true if the execution in onMouseLeave should be terminated after this method\n /**\n * @private\n * @return {?}\n */\n function () {\n clearTimeout(this.target.timeoutId);\n // If tooltip is about to be opened\n if (this.target.toBeShown) {\n this.target.toBeShown = false;\n this.target.toBeHidden = false;\n return true;\n }\n return false;\n };\n /**\n * @hidden\n */\n /**\n * @hidden\n * @param {?} event\n * @return {?}\n */\n IgxTooltipTargetDirective.prototype.onKeydownEscape = /**\n * @hidden\n * @param {?} event\n * @return {?}\n */\n function (event) {\n /** @type {?} */\n var hidingArgs = { target: this, tooltip: this.target, cancel: false };\n this.onTooltipHide.emit(hidingArgs);\n if (hidingArgs.cancel) {\n return;\n }\n this.target.toBeHidden = true;\n this.target.close();\n this.target.toBeHidden = false;\n };\n /**\n * @hidden\n */\n /**\n * @hidden\n * @return {?}\n */\n IgxTooltipTargetDirective.prototype.onClick = /**\n * @hidden\n * @return {?}\n */\n function () {\n if (!this.target.collapsed) {\n /** @type {?} */\n var hidingArgs = { target: this, tooltip: this.target, cancel: false };\n this.onTooltipHide.emit(hidingArgs);\n if (hidingArgs.cancel) {\n return;\n }\n this.target.forceClose(this.mergedOverlaySettings);\n }\n };\n /**\n * @hidden\n */\n /**\n * @hidden\n * @return {?}\n */\n IgxTooltipTargetDirective.prototype.onMouseEnter = /**\n * @hidden\n * @return {?}\n */\n function () {\n var _this = this;\n if (this.tooltipDisabled) {\n return;\n }\n this.checkOutletAndOutsideClick();\n /** @type {?} */\n var shouldReturn = this.preMouseEnterCheck();\n if (shouldReturn) {\n return;\n }\n /** @type {?} */\n var showingArgs = { target: this, tooltip: this.target, cancel: false };\n this.onTooltipShow.emit(showingArgs);\n if (showingArgs.cancel) {\n return;\n }\n this.target.toBeShown = true;\n this.target.timeoutId = setTimeout(function () {\n _this.target.open(_this.mergedOverlaySettings); // Call open() of IgxTooltipDirective\n _this.target.toBeShown = false;\n }, this.showDelay);\n };\n /**\n * @hidden\n */\n /**\n * @hidden\n * @return {?}\n */\n IgxTooltipTargetDirective.prototype.onMouseLeave = /**\n * @hidden\n * @return {?}\n */\n function () {\n var _this = this;\n if (this.tooltipDisabled) {\n return;\n }\n this.checkOutletAndOutsideClick();\n /** @type {?} */\n var shouldReturn = this.preMouseLeaveCheck();\n if (shouldReturn || this.target.collapsed) {\n return;\n }\n /** @type {?} */\n var hidingArgs = { target: this, tooltip: this.target, cancel: false };\n this.onTooltipHide.emit(hidingArgs);\n if (hidingArgs.cancel) {\n return;\n }\n this.target.toBeHidden = true;\n this.target.timeoutId = setTimeout(function () {\n _this.target.close(); // Call close() of IgxTooltipDirective\n _this.target.toBeHidden = false;\n }, this.hideDelay);\n };\n /**\n * @hidden\n */\n /**\n * @hidden\n * @param {?} event\n * @return {?}\n */\n IgxTooltipTargetDirective.prototype.onTouchStart = /**\n * @hidden\n * @param {?} event\n * @return {?}\n */\n function (event) {\n if (this.tooltipDisabled) {\n return;\n }\n this.showTooltip();\n };\n /**\n * @hidden\n */\n /**\n * @hidden\n * @param {?} event\n * @return {?}\n */\n IgxTooltipTargetDirective.prototype.onDocumentTouchStart = /**\n * @hidden\n * @param {?} event\n * @return {?}\n */\n function (event) {\n if (this.tooltipDisabled) {\n return;\n }\n if (this.nativeElement !== event.target &&\n !this.nativeElement.contains(event.target)) {\n this.hideTooltip();\n }\n };\n /**\n * Shows the tooltip by respecting the 'showDelay' property.\n *\n * ```typescript\n * this.tooltipTarget.showTooltip();\n * ```\n */\n /**\n * Shows the tooltip by respecting the 'showDelay' property.\n *\n * ```typescript\n * this.tooltipTarget.showTooltip();\n * ```\n * @return {?}\n */\n IgxTooltipTargetDirective.prototype.showTooltip = /**\n * Shows the tooltip by respecting the 'showDelay' property.\n *\n * ```typescript\n * this.tooltipTarget.showTooltip();\n * ```\n * @return {?}\n */\n function () {\n var _this = this;\n clearTimeout(this.target.timeoutId);\n if (!this.target.collapsed) {\n /** @type {?} */\n var hidingArgs = { target: this, tooltip: this.target, cancel: false };\n this.onTooltipHide.emit(hidingArgs);\n if (hidingArgs.cancel) {\n return;\n }\n // if close animation has started finish it, or close the tooltip with no animation\n this.target.forceClose(this.mergedOverlaySettings);\n this.target.toBeHidden = false;\n }\n /** @type {?} */\n var showingArgs = { target: this, tooltip: this.target, cancel: false };\n this.onTooltipShow.emit(showingArgs);\n if (showingArgs.cancel) {\n return;\n }\n this.target.toBeShown = true;\n this.target.timeoutId = setTimeout(function () {\n _this.target.open(_this.mergedOverlaySettings); // Call open() of IgxTooltipDirective\n _this.target.toBeShown = false;\n }, this.showDelay);\n };\n /**\n * Hides the tooltip by respecting the 'hideDelay' property.\n *\n * ```typescript\n * this.tooltipTarget.hideTooltip();\n * ```\n */\n /**\n * Hides the tooltip by respecting the 'hideDelay' property.\n *\n * ```typescript\n * this.tooltipTarget.hideTooltip();\n * ```\n * @return {?}\n */\n IgxTooltipTargetDirective.prototype.hideTooltip = /**\n * Hides the tooltip by respecting the 'hideDelay' property.\n *\n * ```typescript\n * this.tooltipTarget.hideTooltip();\n * ```\n * @return {?}\n */\n function () {\n var _this = this;\n if (this.target.collapsed && this.target.toBeShown) {\n clearTimeout(this.target.timeoutId);\n }\n if (this.target.collapsed || this.target.toBeHidden) {\n return;\n }\n /** @type {?} */\n var hidingArgs = { target: this, tooltip: this.target, cancel: false };\n this.onTooltipHide.emit(hidingArgs);\n if (hidingArgs.cancel) {\n return;\n }\n this.target.toBeHidden = true;\n this.target.timeoutId = setTimeout(function () {\n _this.target.close(); // Call close() of IgxTooltipDirective\n _this.target.toBeHidden = false;\n }, this.hideDelay);\n };\n IgxTooltipTargetDirective.decorators = [\n { type: Directive, args: [{\n exportAs: 'tooltipTarget',\n selector: '[igxTooltipTarget]'\n },] }\n ];\n /** @nocollapse */\n IgxTooltipTargetDirective.ctorParameters = function () { return [\n { type: ElementRef },\n { type: IgxNavigationService, decorators: [{ type: Optional }] }\n ]; };\n IgxTooltipTargetDirective.propDecorators = {\n showDelay: [{ type: Input, args: ['showDelay',] }],\n hideDelay: [{ type: Input, args: ['hideDelay',] }],\n tooltipDisabled: [{ type: Input, args: ['tooltipDisabled',] }],\n target: [{ type: Input, args: ['igxTooltipTarget',] }],\n onTooltipShow: [{ type: Output }],\n onTooltipHide: [{ type: Output }],\n onKeydownEscape: [{ type: HostListener, args: ['document:keydown.escape', ['$event'],] }],\n onClick: [{ type: HostListener, args: ['click',] }],\n onMouseEnter: [{ type: HostListener, args: ['mouseenter',] }],\n onMouseLeave: [{ type: HostListener, args: ['mouseleave',] }],\n onTouchStart: [{ type: HostListener, args: ['touchstart', ['$event'],] }],\n onDocumentTouchStart: [{ type: HostListener, args: ['document:touchstart', ['$event'],] }]\n };\n return IgxTooltipTargetDirective;\n}(IgxToggleActionDirective));\n/** @type {?} */\nvar NEXT_ID$6 = 0;\n/**\n * **Ignite UI for Angular Tooltip** -\n * [Documentation](https://www.infragistics.com/products/ignite-ui-angular/angular/components/tooltip.html)\n *\n * The Ignite UI for Angular Tooltip directive is used to mark an HTML element in the markup as one that should behave as a tooltip.\n * The tooltip is used in combination with the Ignite UI for Angular Tooltip Target by assigning the exported tooltip reference to the\n * respective target's selector property.\n *\n * Example:\n * ```html\n * \n * Hello there, I am a tooltip!\n * ```\n */\nvar IgxTooltipDirective = /** @class */ (function (_super) {\n __extends(IgxTooltipDirective, _super);\n /** @hidden */\n function IgxTooltipDirective(elementRef, cdr, overlayService, navigationService) {\n var _this = \n // D.P. constructor duplication due to es6 compilation, might be obsolete in the future\n _super.call(this, elementRef, cdr, overlayService, navigationService) || this;\n /**\n * @hidden\n * Returns whether close time out has started\n */\n _this.toBeHidden = false;\n /**\n * @hidden\n * Returns whether open time out has started\n */\n _this.toBeShown = false;\n /**\n * Identifier for the tooltip.\n * If this is property is not explicitly set, it will be automatically generated.\n *\n * ```typescript\n * let tooltipId = this.tooltip.id;\n * ```\n */\n _this.id = \"igx-tooltip-\" + NEXT_ID$6++;\n return _this;\n }\n Object.defineProperty(IgxTooltipDirective.prototype, \"hiddenClass\", {\n /**\n * @hidden\n */\n get: /**\n * @hidden\n * @return {?}\n */\n function () {\n return this.collapsed;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxTooltipDirective.prototype, \"defaultClass\", {\n /**\n * @hidden\n */\n get: /**\n * @hidden\n * @return {?}\n */\n function () {\n return !this.collapsed;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxTooltipDirective.prototype, \"role\", {\n /**\n * Get the role attribute of the tooltip.\n *\n * ```typescript\n * let tooltipRole = this.tooltip.role;\n * ```\n */\n get: /**\n * Get the role attribute of the tooltip.\n *\n * ```typescript\n * let tooltipRole = this.tooltip.role;\n * ```\n * @return {?}\n */\n function () {\n return 'tooltip';\n },\n enumerable: true,\n configurable: true\n });\n /**\n * If there is open animation in progress this method will finish is.\n * If there is no open animation in progress this method will open the toggle with no animation.\n * @param overlaySettings setting to use for opening the toggle\n */\n /**\n * If there is open animation in progress this method will finish is.\n * If there is no open animation in progress this method will open the toggle with no animation.\n * @protected\n * @param {?=} overlaySettings setting to use for opening the toggle\n * @return {?}\n */\n IgxTooltipDirective.prototype.forceOpen = /**\n * If there is open animation in progress this method will finish is.\n * If there is no open animation in progress this method will open the toggle with no animation.\n * @protected\n * @param {?=} overlaySettings setting to use for opening the toggle\n * @return {?}\n */\n function (overlaySettings) {\n /** @type {?} */\n var info = this.overlayService.getOverlayById(this._overlayId);\n /** @type {?} */\n var hasOpenAnimation = info ? info.openAnimationPlayer : false;\n if (hasOpenAnimation) {\n info.openAnimationPlayer.finish();\n info.openAnimationPlayer.reset();\n info.openAnimationPlayer = null;\n }\n else if (this.collapsed) {\n /** @type {?} */\n var animation = overlaySettings.positionStrategy.settings.openAnimation;\n overlaySettings.positionStrategy.settings.openAnimation = null;\n this.open(overlaySettings);\n overlaySettings.positionStrategy.settings.openAnimation = animation;\n }\n };\n /**\n * If there is close animation in progress this method will finish is.\n * If there is no close animation in progress this method will close the toggle with no animation.\n * @param overlaySettings settings to use for closing the toggle\n */\n /**\n * If there is close animation in progress this method will finish is.\n * If there is no close animation in progress this method will close the toggle with no animation.\n * @protected\n * @param {?=} overlaySettings settings to use for closing the toggle\n * @return {?}\n */\n IgxTooltipDirective.prototype.forceClose = /**\n * If there is close animation in progress this method will finish is.\n * If there is no close animation in progress this method will close the toggle with no animation.\n * @protected\n * @param {?=} overlaySettings settings to use for closing the toggle\n * @return {?}\n */\n function (overlaySettings) {\n /** @type {?} */\n var info = this.overlayService.getOverlayById(this._overlayId);\n /** @type {?} */\n var hasCloseAnimation = info ? info.closeAnimationPlayer : false;\n if (hasCloseAnimation) {\n info.closeAnimationPlayer.finish();\n info.closeAnimationPlayer.reset();\n info.closeAnimationPlayer = null;\n }\n else if (!this.collapsed) {\n /** @type {?} */\n var animation = overlaySettings.positionStrategy.settings.closeAnimation;\n overlaySettings.positionStrategy.settings.closeAnimation = null;\n this.close();\n overlaySettings.positionStrategy.settings.closeAnimation = animation;\n }\n };\n IgxTooltipDirective.decorators = [\n { type: Directive, args: [{\n exportAs: 'tooltip',\n selector: '[igxTooltip]'\n },] }\n ];\n /** @nocollapse */\n IgxTooltipDirective.ctorParameters = function () { return [\n { type: ElementRef },\n { type: ChangeDetectorRef },\n { type: IgxOverlayService, decorators: [{ type: Inject, args: [IgxOverlayService,] }] },\n { type: IgxNavigationService, decorators: [{ type: Optional }] }\n ]; };\n IgxTooltipDirective.propDecorators = {\n hiddenClass: [{ type: HostBinding, args: ['class.igx-tooltip--hidden',] }],\n defaultClass: [{ type: HostBinding, args: ['class.igx-tooltip--desktop',] }],\n context: [{ type: Input, args: ['context',] }],\n id: [{ type: HostBinding, args: ['attr.id',] }, { type: Input }],\n role: [{ type: HostBinding, args: ['attr.role',] }]\n };\n return IgxTooltipDirective;\n}(IgxToggleDirective));\n/**\n * @hidden\n */\nvar IgxTooltipModule = /** @class */ (function () {\n function IgxTooltipModule() {\n }\n IgxTooltipModule.decorators = [\n { type: NgModule, args: [{\n declarations: [IgxTooltipDirective, IgxTooltipTargetDirective],\n exports: [IgxTooltipDirective, IgxTooltipTargetDirective],\n imports: [CommonModule],\n providers: [IgxOverlayService]\n },] }\n ];\n return IgxTooltipModule;\n}());\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n/**\n * Provides base filtering operations\n * Implementations should be Singleton\n *\n * @export\n */\nvar IgxFilteringOperand = /** @class */ (function () {\n function IgxFilteringOperand() {\n var _this = this;\n this.operations = [{\n name: 'null',\n isUnary: true,\n iconName: 'is_null',\n logic: function (target) {\n return target === null;\n }\n }, {\n name: 'notNull',\n isUnary: true,\n iconName: 'is_not_null',\n logic: function (target) {\n return target !== null;\n }\n }, {\n name: 'in',\n isUnary: false,\n iconName: 'is_in',\n hidden: true,\n logic: function (target, searchVal) {\n return _this.findValueInSet(target, searchVal);\n }\n }];\n }\n /**\n * @return {?}\n */\n IgxFilteringOperand.instance = /**\n * @return {?}\n */\n function () {\n return this._instance || (this._instance = new this());\n };\n /**\n * @hidden\n */\n /**\n * @hidden\n * @protected\n * @param {?} target\n * @param {?} searchVal\n * @return {?}\n */\n IgxFilteringOperand.prototype.findValueInSet = /**\n * @hidden\n * @protected\n * @param {?} target\n * @param {?} searchVal\n * @return {?}\n */\n function (target, searchVal) {\n return searchVal.has(target);\n };\n /**\n * Returns an array of names of the conditions which are visible in the UI\n */\n /**\n * Returns an array of names of the conditions which are visible in the UI\n * @return {?}\n */\n IgxFilteringOperand.prototype.conditionList = /**\n * Returns an array of names of the conditions which are visible in the UI\n * @return {?}\n */\n function () {\n return this.operations.filter(function (f) { return !f.hidden; }).map(function (element) { return element.name; });\n };\n /**\n * Returns an instance of the condition with the specified name.\n * @param name The name of the condition.\n */\n /**\n * Returns an instance of the condition with the specified name.\n * @param {?} name The name of the condition.\n * @return {?}\n */\n IgxFilteringOperand.prototype.condition = /**\n * Returns an instance of the condition with the specified name.\n * @param {?} name The name of the condition.\n * @return {?}\n */\n function (name) {\n return this.operations.find(function (element) { return element.name === name; });\n };\n /**\n * Adds a new condition to the filtering operations.\n * @param operation The filtering operation.\n */\n /**\n * Adds a new condition to the filtering operations.\n * @param {?} operation The filtering operation.\n * @return {?}\n */\n IgxFilteringOperand.prototype.append = /**\n * Adds a new condition to the filtering operations.\n * @param {?} operation The filtering operation.\n * @return {?}\n */\n function (operation) {\n this.operations.push(operation);\n };\n IgxFilteringOperand._instance = null;\n return IgxFilteringOperand;\n}());\n/**\n * Provides filtering operations for booleans\n *\n * @export\n */\nvar /**\n * Provides filtering operations for booleans\n *\n * @export\n */\nIgxBooleanFilteringOperand = /** @class */ (function (_super) {\n __extends(IgxBooleanFilteringOperand, _super);\n function IgxBooleanFilteringOperand() {\n var _this = _super.call(this) || this;\n _this.operations = [{\n name: 'all',\n isUnary: true,\n iconName: 'all',\n logic: function (target) {\n return true;\n }\n }, {\n name: 'true',\n isUnary: true,\n iconName: 'is_true',\n logic: function (target) {\n return !!(target && target !== null && target !== undefined);\n }\n }, {\n name: 'false',\n isUnary: true,\n iconName: 'is_false',\n logic: function (target) {\n return !target && target !== null && target !== undefined;\n }\n }, {\n name: 'empty',\n isUnary: true,\n iconName: 'empty',\n logic: function (target) {\n return target === null || target === undefined;\n }\n }, {\n name: 'notEmpty',\n isUnary: true,\n iconName: 'not_empty',\n logic: function (target) {\n return target !== null && target !== undefined;\n }\n }].concat(_this.operations);\n return _this;\n }\n return IgxBooleanFilteringOperand;\n}(IgxFilteringOperand));\n/**\n * Provides filtering operations for Dates\n *\n * @export\n */\nvar /**\n * Provides filtering operations for Dates\n *\n * @export\n */\nIgxDateFilteringOperand = /** @class */ (function (_super) {\n __extends(IgxDateFilteringOperand, _super);\n function IgxDateFilteringOperand() {\n var _this = _super.call(this) || this;\n _this.operations = [{\n name: 'equals',\n isUnary: false,\n iconName: 'equals',\n logic: function (target, searchVal) {\n if (!target) {\n return false;\n }\n _this.validateInputData(target);\n /** @type {?} */\n var targetp = IgxDateFilteringOperand.getDateParts(target, 'yMd');\n /** @type {?} */\n var searchp = IgxDateFilteringOperand.getDateParts(searchVal, 'yMd');\n return targetp.year === searchp.year &&\n targetp.month === searchp.month &&\n targetp.day === searchp.day;\n }\n }, {\n name: 'doesNotEqual',\n isUnary: false,\n iconName: 'not_equal',\n logic: function (target, searchVal) {\n if (!target) {\n return true;\n }\n _this.validateInputData(target);\n /** @type {?} */\n var targetp = IgxDateFilteringOperand.getDateParts(target, 'yMd');\n /** @type {?} */\n var searchp = IgxDateFilteringOperand.getDateParts(searchVal, 'yMd');\n return targetp.year !== searchp.year ||\n targetp.month !== searchp.month ||\n targetp.day !== searchp.day;\n }\n }, {\n name: 'before',\n isUnary: false,\n iconName: 'is_before',\n logic: function (target, searchVal) {\n if (!target) {\n return false;\n }\n _this.validateInputData(target);\n return target < searchVal;\n }\n }, {\n name: 'after',\n isUnary: false,\n iconName: 'is_after',\n logic: function (target, searchVal) {\n if (!target) {\n return false;\n }\n _this.validateInputData(target);\n return target > searchVal;\n }\n }, {\n name: 'today',\n isUnary: true,\n iconName: 'today',\n logic: function (target) {\n if (!target) {\n return false;\n }\n _this.validateInputData(target);\n /** @type {?} */\n var d = IgxDateFilteringOperand.getDateParts(target, 'yMd');\n /** @type {?} */\n var now = IgxDateFilteringOperand.getDateParts(new Date(), 'yMd');\n return d.year === now.year &&\n d.month === now.month &&\n d.day === now.day;\n }\n }, {\n name: 'yesterday',\n isUnary: true,\n iconName: 'yesterday',\n logic: function (target) {\n if (!target) {\n return false;\n }\n _this.validateInputData(target);\n /** @type {?} */\n var td = IgxDateFilteringOperand.getDateParts(target, 'yMd');\n /** @type {?} */\n var y = (function (d) { return new Date(d.setDate(d.getDate() - 1)); })(new Date());\n /** @type {?} */\n var yesterday = IgxDateFilteringOperand.getDateParts(y, 'yMd');\n return td.year === yesterday.year &&\n td.month === yesterday.month &&\n td.day === yesterday.day;\n }\n }, {\n name: 'thisMonth',\n isUnary: true,\n iconName: 'this_month',\n logic: function (target) {\n if (!target) {\n return false;\n }\n _this.validateInputData(target);\n /** @type {?} */\n var d = IgxDateFilteringOperand.getDateParts(target, 'yM');\n /** @type {?} */\n var now = IgxDateFilteringOperand.getDateParts(new Date(), 'yM');\n return d.year === now.year &&\n d.month === now.month;\n }\n }, {\n name: 'lastMonth',\n isUnary: true,\n iconName: 'last_month',\n logic: function (target) {\n if (!target) {\n return false;\n }\n _this.validateInputData(target);\n /** @type {?} */\n var d = IgxDateFilteringOperand.getDateParts(target, 'yM');\n /** @type {?} */\n var now = IgxDateFilteringOperand.getDateParts(new Date(), 'yM');\n if (!now.month) {\n now.month = 11;\n now.year -= 1;\n }\n else {\n now.month--;\n }\n return d.year === now.year &&\n d.month === now.month;\n }\n }, {\n name: 'nextMonth',\n isUnary: true,\n iconName: 'next_month',\n logic: function (target) {\n if (!target) {\n return false;\n }\n _this.validateInputData(target);\n /** @type {?} */\n var d = IgxDateFilteringOperand.getDateParts(target, 'yM');\n /** @type {?} */\n var now = IgxDateFilteringOperand.getDateParts(new Date(), 'yM');\n if (now.month === 11) {\n now.month = 0;\n now.year += 1;\n }\n else {\n now.month++;\n }\n return d.year === now.year &&\n d.month === now.month;\n }\n }, {\n name: 'thisYear',\n isUnary: true,\n iconName: 'this_year',\n logic: function (target) {\n if (!target) {\n return false;\n }\n _this.validateInputData(target);\n /** @type {?} */\n var d = IgxDateFilteringOperand.getDateParts(target, 'y');\n /** @type {?} */\n var now = IgxDateFilteringOperand.getDateParts(new Date(), 'y');\n return d.year === now.year;\n }\n }, {\n name: 'lastYear',\n isUnary: true,\n iconName: 'last_year',\n logic: function (target) {\n if (!target) {\n return false;\n }\n _this.validateInputData(target);\n /** @type {?} */\n var d = IgxDateFilteringOperand.getDateParts(target, 'y');\n /** @type {?} */\n var now = IgxDateFilteringOperand.getDateParts(new Date(), 'y');\n return d.year === now.year - 1;\n }\n }, {\n name: 'nextYear',\n isUnary: true,\n iconName: 'next_year',\n logic: function (target) {\n if (!target) {\n return false;\n }\n _this.validateInputData(target);\n /** @type {?} */\n var d = IgxDateFilteringOperand.getDateParts(target, 'y');\n /** @type {?} */\n var now = IgxDateFilteringOperand.getDateParts(new Date(), 'y');\n return d.year === now.year + 1;\n }\n }, {\n name: 'empty',\n isUnary: true,\n iconName: 'empty',\n logic: function (target) {\n return target === null || target === undefined;\n }\n }, {\n name: 'notEmpty',\n isUnary: true,\n iconName: 'not_empty',\n logic: function (target) {\n return target !== null && target !== undefined;\n }\n }].concat(_this.operations);\n return _this;\n }\n /**\n * Splits a Date object into parts\n *\n * @memberof IgxDateFilteringOperand\n */\n /**\n * Splits a Date object into parts\n *\n * \\@memberof IgxDateFilteringOperand\n * @param {?} date\n * @param {?=} dateFormat\n * @return {?}\n */\n IgxDateFilteringOperand.getDateParts = /**\n * Splits a Date object into parts\n *\n * \\@memberof IgxDateFilteringOperand\n * @param {?} date\n * @param {?=} dateFormat\n * @return {?}\n */\n function (date, dateFormat) {\n /** @type {?} */\n var res = {\n day: null,\n hours: null,\n milliseconds: null,\n minutes: null,\n month: null,\n seconds: null,\n year: null\n };\n if (!date || !dateFormat) {\n return res;\n }\n if (dateFormat.indexOf('y') >= 0) {\n res.year = date.getFullYear();\n }\n if (dateFormat.indexOf('M') >= 0) {\n res.month = date.getMonth();\n }\n if (dateFormat.indexOf('d') >= 0) {\n res.day = date.getDate();\n }\n if (dateFormat.indexOf('h') >= 0) {\n res.hours = date.getHours();\n }\n if (dateFormat.indexOf('m') >= 0) {\n res.minutes = date.getMinutes();\n }\n if (dateFormat.indexOf('s') >= 0) {\n res.seconds = date.getSeconds();\n }\n if (dateFormat.indexOf('f') >= 0) {\n res.milliseconds = date.getMilliseconds();\n }\n return res;\n };\n /**\n * @private\n * @param {?} target\n * @return {?}\n */\n IgxDateFilteringOperand.prototype.validateInputData = /**\n * @private\n * @param {?} target\n * @return {?}\n */\n function (target) {\n if (!(target instanceof Date)) {\n throw new Error('Could not perform filtering on \\'date\\' column because the datasource object type is not \\'Date\\'.');\n }\n };\n /**\n * @protected\n * @param {?} target\n * @param {?} searchVal\n * @return {?}\n */\n IgxDateFilteringOperand.prototype.findValueInSet = /**\n * @protected\n * @param {?} target\n * @param {?} searchVal\n * @return {?}\n */\n function (target, searchVal) {\n if (!target) {\n return false;\n }\n return searchVal.has(new Date(target.getFullYear(), target.getMonth(), target.getDate()).toISOString());\n };\n return IgxDateFilteringOperand;\n}(IgxFilteringOperand));\n/**\n * Provides filtering operations for numbers\n *\n * @export\n */\nvar /**\n * Provides filtering operations for numbers\n *\n * @export\n */\nIgxNumberFilteringOperand = /** @class */ (function (_super) {\n __extends(IgxNumberFilteringOperand, _super);\n function IgxNumberFilteringOperand() {\n var _this = _super.call(this) || this;\n _this.operations = [{\n name: 'equals',\n isUnary: false,\n iconName: 'equals',\n logic: function (target, searchVal) {\n return target === searchVal;\n }\n }, {\n name: 'doesNotEqual',\n isUnary: false,\n iconName: 'not_equal',\n logic: function (target, searchVal) {\n return target !== searchVal;\n }\n }, {\n name: 'greaterThan',\n isUnary: false,\n iconName: 'greater_than',\n logic: function (target, searchVal) {\n return target > searchVal;\n }\n }, {\n name: 'lessThan',\n isUnary: false,\n iconName: 'less_than',\n logic: function (target, searchVal) {\n return target < searchVal;\n }\n }, {\n name: 'greaterThanOrEqualTo',\n isUnary: false,\n iconName: 'greater_than_or_equal',\n logic: function (target, searchVal) {\n return target >= searchVal;\n }\n }, {\n name: 'lessThanOrEqualTo',\n isUnary: false,\n iconName: 'less_than_or_equal',\n logic: function (target, searchVal) {\n return target <= searchVal;\n }\n }, {\n name: 'empty',\n isUnary: true,\n iconName: 'empty',\n logic: function (target) {\n return target === null || target === undefined || isNaN(target);\n }\n }, {\n name: 'notEmpty',\n isUnary: true,\n iconName: 'not_empty',\n logic: function (target) {\n return target !== null && target !== undefined && !isNaN(target);\n }\n }].concat(_this.operations);\n return _this;\n }\n return IgxNumberFilteringOperand;\n}(IgxFilteringOperand));\n/**\n * Provides filtering operations for strings\n *\n * @export\n */\nvar /**\n * Provides filtering operations for strings\n *\n * @export\n */\nIgxStringFilteringOperand = /** @class */ (function (_super) {\n __extends(IgxStringFilteringOperand, _super);\n function IgxStringFilteringOperand() {\n var _this = _super.call(this) || this;\n _this.operations = [{\n name: 'contains',\n isUnary: false,\n iconName: 'contains',\n logic: function (target, searchVal, ignoreCase) {\n /** @type {?} */\n var search = IgxStringFilteringOperand.applyIgnoreCase(searchVal, ignoreCase);\n target = IgxStringFilteringOperand.applyIgnoreCase(target, ignoreCase);\n return target.indexOf(search) !== -1;\n }\n }, {\n name: 'doesNotContain',\n isUnary: false,\n iconName: 'does_not_contain',\n logic: function (target, searchVal, ignoreCase) {\n /** @type {?} */\n var search = IgxStringFilteringOperand.applyIgnoreCase(searchVal, ignoreCase);\n target = IgxStringFilteringOperand.applyIgnoreCase(target, ignoreCase);\n return target.indexOf(search) === -1;\n }\n }, {\n name: 'startsWith',\n isUnary: false,\n iconName: 'starts_with',\n logic: function (target, searchVal, ignoreCase) {\n /** @type {?} */\n var search = IgxStringFilteringOperand.applyIgnoreCase(searchVal, ignoreCase);\n target = IgxStringFilteringOperand.applyIgnoreCase(target, ignoreCase);\n return target.startsWith(search);\n }\n }, {\n name: 'endsWith',\n isUnary: false,\n iconName: 'ends_with',\n logic: function (target, searchVal, ignoreCase) {\n /** @type {?} */\n var search = IgxStringFilteringOperand.applyIgnoreCase(searchVal, ignoreCase);\n target = IgxStringFilteringOperand.applyIgnoreCase(target, ignoreCase);\n return target.endsWith(search);\n }\n }, {\n name: 'equals',\n isUnary: false,\n iconName: 'equals',\n logic: function (target, searchVal, ignoreCase) {\n /** @type {?} */\n var search = IgxStringFilteringOperand.applyIgnoreCase(searchVal, ignoreCase);\n target = IgxStringFilteringOperand.applyIgnoreCase(target, ignoreCase);\n return target === search;\n }\n }, {\n name: 'doesNotEqual',\n isUnary: false,\n iconName: 'not_equal',\n logic: function (target, searchVal, ignoreCase) {\n /** @type {?} */\n var search = IgxStringFilteringOperand.applyIgnoreCase(searchVal, ignoreCase);\n target = IgxStringFilteringOperand.applyIgnoreCase(target, ignoreCase);\n return target !== search;\n }\n }, {\n name: 'empty',\n isUnary: true,\n iconName: 'empty',\n logic: function (target) {\n return target === null || target === undefined || target.length === 0;\n }\n }, {\n name: 'notEmpty',\n isUnary: true,\n iconName: 'not_empty',\n logic: function (target) {\n return target !== null && target !== undefined && target.length > 0;\n }\n }].concat(_this.operations);\n return _this;\n }\n /**\n * Applies case sensitivity on strings if provided\n *\n * @memberof IgxStringFilteringOperand\n */\n /**\n * Applies case sensitivity on strings if provided\n *\n * \\@memberof IgxStringFilteringOperand\n * @param {?} a\n * @param {?} ignoreCase\n * @return {?}\n */\n IgxStringFilteringOperand.applyIgnoreCase = /**\n * Applies case sensitivity on strings if provided\n *\n * \\@memberof IgxStringFilteringOperand\n * @param {?} a\n * @param {?} ignoreCase\n * @return {?}\n */\n function (a, ignoreCase) {\n a = a || '';\n // bulletproof\n return ignoreCase ? ('' + a).toLowerCase() : a;\n };\n return IgxStringFilteringOperand;\n}(IgxFilteringOperand));\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n/** @type {?} */\nvar filteringStateDefaults = {\n strategy: new FilteringStrategy()\n};\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n/**\n * @hidden\n */\nvar /**\n * @hidden\n */\nGroupedRecords = /** @class */ (function (_super) {\n __extends(GroupedRecords, _super);\n function GroupedRecords() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n return GroupedRecords;\n}(Array));\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n/**\n * **Ignite UI for Angular Icon Service** -\n *\n * The Ignite UI Icon Service makes it easy for developers to include custom SVG images and use them with IgxIconComponent.\n * In addition it could be used to associate a custom class to be applied on IgxIconComponent according to given fontSet.\n *\n * Example:\n * ```typescript\n * this.iconService.registerFontSetAlias('material', 'material-icons');\n * this.iconService.addSvgIcon('aruba', '/assets/svg/country_flags/aruba.svg', 'svg-flags');\n * ```\n */\nvar IgxIconService = /** @class */ (function () {\n function IgxIconService(_sanitizer, _document) {\n this._sanitizer = _sanitizer;\n this._document = _document;\n this._fontSet = 'material-icons';\n this._fontSetAliases = new Map();\n this._cachedSvgIcons = new Set();\n }\n Object.defineProperty(IgxIconService.prototype, \"defaultFontSet\", {\n /**\n * Returns the default font set.\n *```typescript\n * const defaultFontSet = this.iconService.defaultFontSet;\n * ```\n */\n get: /**\n * Returns the default font set.\n * ```typescript\n * const defaultFontSet = this.iconService.defaultFontSet;\n * ```\n * @return {?}\n */\n function () {\n return this._fontSet;\n },\n /**\n * Sets the default font set.\n *```typescript\n * this.iconService.defaultFontSet = 'svg-flags';\n * ```\n */\n set: /**\n * Sets the default font set.\n * ```typescript\n * this.iconService.defaultFontSet = 'svg-flags';\n * ```\n * @param {?} className\n * @return {?}\n */\n function (className) {\n this._fontSet = className;\n },\n enumerable: true,\n configurable: true\n });\n /**\n * Registers a custom class to be applied to IgxIconComponent for a given fontSet.\n *```typescript\n * this.iconService.registerFontSetAlias('material', 'material-icons');\n * ```\n */\n /**\n * Registers a custom class to be applied to IgxIconComponent for a given fontSet.\n * ```typescript\n * this.iconService.registerFontSetAlias('material', 'material-icons');\n * ```\n * @template THIS\n * @this {THIS}\n * @param {?} alias\n * @param {?=} className\n * @return {THIS}\n */\n IgxIconService.prototype.registerFontSetAlias = /**\n * Registers a custom class to be applied to IgxIconComponent for a given fontSet.\n * ```typescript\n * this.iconService.registerFontSetAlias('material', 'material-icons');\n * ```\n * @template THIS\n * @this {THIS}\n * @param {?} alias\n * @param {?=} className\n * @return {THIS}\n */\n function (alias, className) {\n if (className === void 0) { className = alias; }\n (/** @type {?} */ (this))._fontSetAliases.set(alias, className);\n return (/** @type {?} */ (this));\n };\n /**\n * Returns the custom class, if any, associated to a given fontSet.\n *```typescript\n * const fontSetClass = this.iconService.fontSetClassName('material');\n * ```\n */\n /**\n * Returns the custom class, if any, associated to a given fontSet.\n * ```typescript\n * const fontSetClass = this.iconService.fontSetClassName('material');\n * ```\n * @param {?} alias\n * @return {?}\n */\n IgxIconService.prototype.fontSetClassName = /**\n * Returns the custom class, if any, associated to a given fontSet.\n * ```typescript\n * const fontSetClass = this.iconService.fontSetClassName('material');\n * ```\n * @param {?} alias\n * @return {?}\n */\n function (alias) {\n return this._fontSetAliases.get(alias) || alias;\n };\n /**\n * Adds an SVG image to the cache. SVG source is an url.\n *```typescript\n * this.iconService.addSvgIcon('aruba', '/assets/svg/country_flags/aruba.svg', 'svg-flags');\n * ```\n */\n /**\n * Adds an SVG image to the cache. SVG source is an url.\n * ```typescript\n * this.iconService.addSvgIcon('aruba', '/assets/svg/country_flags/aruba.svg', 'svg-flags');\n * ```\n * @param {?} iconName\n * @param {?} url\n * @param {?=} fontSet\n * @return {?}\n */\n IgxIconService.prototype.addSvgIcon = /**\n * Adds an SVG image to the cache. SVG source is an url.\n * ```typescript\n * this.iconService.addSvgIcon('aruba', '/assets/svg/country_flags/aruba.svg', 'svg-flags');\n * ```\n * @param {?} iconName\n * @param {?} url\n * @param {?=} fontSet\n * @return {?}\n */\n function (iconName, url, fontSet) {\n if (fontSet === void 0) { fontSet = ''; }\n if (iconName && url) {\n /** @type {?} */\n var safeUrl = this._sanitizer.bypassSecurityTrustResourceUrl(url);\n if (!safeUrl) {\n throw new Error(\"The provided URL could not be processed as trusted resource URL by Angular's DomSanitizer: \\\"\" + url + \"\\\".\");\n }\n /** @type {?} */\n var sanitizedUrl = this._sanitizer.sanitize(SecurityContext.RESOURCE_URL, safeUrl);\n if (!sanitizedUrl) {\n throw new Error(\"The URL provided was not trusted as a resource URL: \\\"\" + url + \"\\\".\");\n }\n this.fetchSvg(iconName, url, fontSet);\n }\n else {\n throw new Error('You should provide at least `iconName` and `url` to register an svg icon.');\n }\n };\n /**\n * Adds an SVG image to the cache. SVG source is its text.\n *```typescript\n * this.iconService.addSvgIcon('simple', '\n * ', 'svg-flags');\n * ```\n */\n /**\n * Adds an SVG image to the cache. SVG source is its text.\n * ```typescript\n * this.iconService.addSvgIcon('simple', '\n * ', 'svg-flags');\n * ```\n * @param {?} iconName\n * @param {?} iconText\n * @param {?=} fontSet\n * @return {?}\n */\n IgxIconService.prototype.addSvgIconFromText = /**\n * Adds an SVG image to the cache. SVG source is its text.\n * ```typescript\n * this.iconService.addSvgIcon('simple', '\n * ', 'svg-flags');\n * ```\n * @param {?} iconName\n * @param {?} iconText\n * @param {?=} fontSet\n * @return {?}\n */\n function (iconName, iconText, fontSet) {\n if (fontSet === void 0) { fontSet = ''; }\n if (iconName && iconText) {\n this.cacheSvgIcon(iconName, iconText, fontSet);\n }\n else {\n throw new Error('You should provide at least `iconName` and `iconText` to register an svg icon.');\n }\n };\n /**\n * Returns whether a given SVG image is present in the cache.\n *```typescript\n * const isSvgCached = this.iconService.isSvgIconCached('aruba', 'svg-flags');\n * ```\n */\n /**\n * Returns whether a given SVG image is present in the cache.\n * ```typescript\n * const isSvgCached = this.iconService.isSvgIconCached('aruba', 'svg-flags');\n * ```\n * @param {?} iconName\n * @param {?=} fontSet\n * @return {?}\n */\n IgxIconService.prototype.isSvgIconCached = /**\n * Returns whether a given SVG image is present in the cache.\n * ```typescript\n * const isSvgCached = this.iconService.isSvgIconCached('aruba', 'svg-flags');\n * ```\n * @param {?} iconName\n * @param {?=} fontSet\n * @return {?}\n */\n function (iconName, fontSet) {\n if (fontSet === void 0) { fontSet = ''; }\n /** @type {?} */\n var iconKey = this.getSvgIconKey(iconName, fontSet);\n return this._cachedSvgIcons.has(iconKey);\n };\n /**\n * Returns the key of a cached SVG image.\n *```typescript\n * const svgIconKey = this.iconService.getSvgIconKey('aruba', 'svg-flags');\n * ```\n */\n /**\n * Returns the key of a cached SVG image.\n * ```typescript\n * const svgIconKey = this.iconService.getSvgIconKey('aruba', 'svg-flags');\n * ```\n * @param {?} iconName\n * @param {?=} fontSet\n * @return {?}\n */\n IgxIconService.prototype.getSvgIconKey = /**\n * Returns the key of a cached SVG image.\n * ```typescript\n * const svgIconKey = this.iconService.getSvgIconKey('aruba', 'svg-flags');\n * ```\n * @param {?} iconName\n * @param {?=} fontSet\n * @return {?}\n */\n function (iconName, fontSet) {\n if (fontSet === void 0) { fontSet = ''; }\n return fontSet + '_' + iconName;\n };\n /**\n * @hidden\n */\n /**\n * @hidden\n * @private\n * @param {?} iconName\n * @param {?} url\n * @param {?=} fontSet\n * @return {?}\n */\n IgxIconService.prototype.fetchSvg = /**\n * @hidden\n * @private\n * @param {?} iconName\n * @param {?} url\n * @param {?=} fontSet\n * @return {?}\n */\n function (iconName, url, fontSet) {\n if (fontSet === void 0) { fontSet = ''; }\n /** @type {?} */\n var instance = this;\n /** @type {?} */\n var httpRequest = new XMLHttpRequest();\n httpRequest.open('GET', url, true);\n httpRequest.responseType = 'text';\n // load – when the result is ready, that includes HTTP errors like 404.\n httpRequest.onload = function (event) {\n if (event) {\n /** @type {?} */\n var request = (/** @type {?} */ (event.target));\n if (request.status === 200) {\n instance.cacheSvgIcon(iconName, request.responseText, fontSet);\n }\n else {\n throw new Error(\"Could not fetch SVG from url: \" + url + \"; error: \" + request.status + \" (\" + request.statusText + \")\");\n }\n }\n else {\n throw new Error(\"Could not fetch SVG from url: \" + url + \";\");\n }\n };\n // error – when the request couldn’t be made, e.g.network down or invalid URL.\n httpRequest.onerror = function (event) {\n if (event) {\n /** @type {?} */\n var request = (/** @type {?} */ (event.target));\n throw new Error(\"Could not fetch SVG from url: \" + url + \"; error status code: \" + request.status + \" (\" + request.statusText + \")\");\n }\n throw new Error(\"Could not fetch SVG from url: \" + url + \";\");\n };\n httpRequest.send();\n };\n /**\n * @hidden\n */\n /**\n * @hidden\n * @private\n * @param {?} iconName\n * @param {?} value\n * @param {?=} fontSet\n * @return {?}\n */\n IgxIconService.prototype.cacheSvgIcon = /**\n * @hidden\n * @private\n * @param {?} iconName\n * @param {?} value\n * @param {?=} fontSet\n * @return {?}\n */\n function (iconName, value, fontSet) {\n if (fontSet === void 0) { fontSet = ''; }\n if (iconName && value) {\n this.ensureSvgContainerCreated();\n /** @type {?} */\n var div = this._document.createElement('DIV');\n div.innerHTML = value;\n /** @type {?} */\n var svg = (/** @type {?} */ (div.querySelector('svg')));\n if (svg) {\n /** @type {?} */\n var iconKey = this.getSvgIconKey(iconName, fontSet);\n svg.setAttribute('id', iconKey);\n svg.setAttribute('fit', '');\n svg.setAttribute('preserveAspectRatio', 'xMidYMid meet');\n svg.setAttribute('focusable', 'false'); // Disable IE11 default behavior to make SVGs focusable.\n if (this._cachedSvgIcons.has(iconKey)) {\n /** @type {?} */\n var oldChild = this._svgContainer.querySelector(\"svg[id='\" + iconKey + \"']\");\n this._svgContainer.removeChild(oldChild);\n }\n this._svgContainer.appendChild(svg);\n this._cachedSvgIcons.add(iconKey);\n }\n }\n };\n /**\n * @hidden\n */\n /**\n * @hidden\n * @private\n * @return {?}\n */\n IgxIconService.prototype.ensureSvgContainerCreated = /**\n * @hidden\n * @private\n * @return {?}\n */\n function () {\n if (!this._svgContainer) {\n this._svgContainer = this._document.documentElement.querySelector('.igx-svg-container');\n if (!this._svgContainer) {\n this._svgContainer = this._document.createElement('DIV');\n this._svgContainer.classList.add('igx-svg-container');\n this._document.documentElement.appendChild(this._svgContainer);\n }\n }\n };\n IgxIconService.decorators = [\n { type: Injectable, args: [{\n providedIn: 'root'\n },] }\n ];\n /** @nocollapse */\n IgxIconService.ctorParameters = function () { return [\n { type: DomSanitizer },\n { type: undefined, decorators: [{ type: Inject, args: [DOCUMENT,] }] }\n ]; };\n /** @nocollapse */ IgxIconService.ngInjectableDef = ɵɵdefineInjectable({ factory: function IgxIconService_Factory() { return new IgxIconService(ɵɵinject(DomSanitizer), ɵɵinject(DOCUMENT)); }, token: IgxIconService, providedIn: \"root\" });\n return IgxIconService;\n}());\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n/**\n * **Ignite UI for Angular Icon** -\n * [Documentation](https://www.infragistics.com/products/ignite-ui-angular/angular/components/icon.html)\n *\n * The Ignite UI Icon makes it easy for developers to include material design icons directly in their markup. The icons\n * support custom colors and can be marked as active or disabled using the `isActive` property. This will change the appearance\n * of the icon.\n *\n * Example:\n * ```html\n * home\n * ```\n * @type {?}\n */\nvar NEXT_ID$7 = 0;\nvar IgxIconComponent = /** @class */ (function () {\n function IgxIconComponent(_el, iconService) {\n this._el = _el;\n this.iconService = iconService;\n /**\n * This allows you to change the value of `class.igx-icon`. By default it's `igx-icon`.\n * ```typescript\n * \\@ViewChild(\"MyIcon\") public icon: IgxIconComponent;\n * constructor(private cdRef:ChangeDetectorRef) {}\n * ngAfterViewInit() {\n * this.icon.cssClass = \"\";\n * this.cdRef.detectChanges();\n * }\n * ```\n */\n this.cssClass = 'igx-icon';\n /**\n * This allows you to disable the `aria-hidden` attribute. By default it's applied.\n * ```typescript\n * \\@ViewChild(\"MyIcon\") public icon: IgxIconComponent;\n * constructor(private cdRef:ChangeDetectorRef) {}\n * ngAfterViewInit() {\n * this.icon.ariaHidden = false;\n * this.cdRef.detectChanges();\n * }\n * ```\n */\n this.ariaHidden = true;\n /**\n * An \\@Input property that sets the value of the `id` attribute.\n * ```html\n * settings\n * ```\n */\n this.id = \"igx-icon-\" + NEXT_ID$7++;\n /**\n * An \\@Input property that allows you to disable the `active` property. By default it's applied.\n * ```html\n * settings\n * ```\n */\n this.active = true;\n this.el = _el;\n this.font = this.iconService.defaultFontSet;\n this.iconService.registerFontSetAlias('material', 'material-icons');\n }\n /**\n * @hidden\n */\n /**\n * @hidden\n * @return {?}\n */\n IgxIconComponent.prototype.ngOnInit = /**\n * @hidden\n * @return {?}\n */\n function () {\n this.updateIconClass();\n };\n Object.defineProperty(IgxIconComponent.prototype, \"getFontSet\", {\n /**\n * An accessor that returns the value of the font property.\n *```typescript\n *@ViewChild(\"MyIcon\")\n *public icon: IgxIconComponent;\n *ngAfterViewInit() {\n * let iconFont = this.icon.getFontSet;\n * }\n * ```\n */\n get: /**\n * An accessor that returns the value of the font property.\n * ```typescript\n * \\@ViewChild(\"MyIcon\")\n * public icon: IgxIconComponent;\n * ngAfterViewInit() {\n * let iconFont = this.icon.getFontSet;\n * }\n * ```\n * @return {?}\n */\n function () {\n return this.font;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxIconComponent.prototype, \"getActive\", {\n /**\n * An accessor that returns the value of the active property.\n *```typescript\n *@ViewChild(\"MyIcon\")\n *public icon: IgxIconComponent;\n *ngAfterViewInit() {\n * let iconActive = this.icon.getActive;\n * }\n * ```\n */\n get: /**\n * An accessor that returns the value of the active property.\n * ```typescript\n * \\@ViewChild(\"MyIcon\")\n * public icon: IgxIconComponent;\n * ngAfterViewInit() {\n * let iconActive = this.icon.getActive;\n * }\n * ```\n * @return {?}\n */\n function () {\n return this.active;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxIconComponent.prototype, \"getInactive\", {\n /**\n * An accessor that returns inactive property.\n *```typescript\n *@ViewChild(\"MyIcon\")\n *public icon: IgxIconComponent;\n *ngAfterViewInit() {\n * let iconActive = this.icon.getInactive;\n * }\n * ```\n */\n get: /**\n * An accessor that returns inactive property.\n * ```typescript\n * \\@ViewChild(\"MyIcon\")\n * public icon: IgxIconComponent;\n * ngAfterViewInit() {\n * let iconActive = this.icon.getInactive;\n * }\n * ```\n * @return {?}\n */\n function () {\n return !this.active;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxIconComponent.prototype, \"getIconColor\", {\n /**\n * An accessor that returns the opposite value of the `iconColor` property.\n *```typescript\n *@ViewChild(\"MyIcon\")\n *public icon: IgxIconComponent;\n *ngAfterViewInit() {\n * let iconColor = this.icon.getIconColor;\n * }\n * ```\n */\n get: /**\n * An accessor that returns the opposite value of the `iconColor` property.\n * ```typescript\n * \\@ViewChild(\"MyIcon\")\n * public icon: IgxIconComponent;\n * ngAfterViewInit() {\n * let iconColor = this.icon.getIconColor;\n * }\n * ```\n * @return {?}\n */\n function () {\n return this.iconColor;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxIconComponent.prototype, \"getIconName\", {\n /**\n * An accessor that returns the value of the iconName property.\n *```typescript\n *@ViewChild(\"MyIcon\")\n *public icon: IgxIconComponent;\n *ngAfterViewInit() {\n * let iconName = this.icon.getIconName;\n * }\n * ```\n */\n get: /**\n * An accessor that returns the value of the iconName property.\n * ```typescript\n * \\@ViewChild(\"MyIcon\")\n * public icon: IgxIconComponent;\n * ngAfterViewInit() {\n * let iconName = this.icon.getIconName;\n * }\n * ```\n * @return {?}\n */\n function () {\n return this.iconName;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxIconComponent.prototype, \"getSvgKey\", {\n /**\n * An accessor that returns the key of the SVG image.\n * The key consists of the fontSet and the iconName separated by underscore.\n *```typescript\n *@ViewChild(\"MyIcon\")\n *public icon: IgxIconComponent;\n *ngAfterViewInit() {\n * let svgKey = this.icon.getSvgKey;\n * }\n * ```\n */\n get: /**\n * An accessor that returns the key of the SVG image.\n * The key consists of the fontSet and the iconName separated by underscore.\n * ```typescript\n * \\@ViewChild(\"MyIcon\")\n * public icon: IgxIconComponent;\n * ngAfterViewInit() {\n * let svgKey = this.icon.getSvgKey;\n * }\n * ```\n * @return {?}\n */\n function () {\n if (this.iconService.isSvgIconCached(this.iconName, this.font)) {\n return '#' + this.iconService.getSvgIconKey(this.iconName, this.font);\n }\n return null;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxIconComponent.prototype, \"template\", {\n /**\n * An accessor that returns a TemplateRef to explicit, svg or no ligature.\n *```typescript\n *@ViewChild(\"MyIcon\")\n *public icon: IgxIconComponent;\n *ngAfterViewInit() {\n * let iconTemplate = this.icon.template;\n * }\n * ```\n */\n get: /**\n * An accessor that returns a TemplateRef to explicit, svg or no ligature.\n * ```typescript\n * \\@ViewChild(\"MyIcon\")\n * public icon: IgxIconComponent;\n * ngAfterViewInit() {\n * let iconTemplate = this.icon.template;\n * }\n * ```\n * @return {?}\n */\n function () {\n if (this.iconName) {\n if (this.iconService.isSvgIconCached(this.iconName, this.font)) {\n return this.svgImage;\n }\n return this.noLigature;\n }\n return this.explicitLigature;\n },\n enumerable: true,\n configurable: true\n });\n /**\n * @hidden\n */\n /**\n * @hidden\n * @private\n * @return {?}\n */\n IgxIconComponent.prototype.updateIconClass = /**\n * @hidden\n * @private\n * @return {?}\n */\n function () {\n /** @type {?} */\n var className = this.iconService.fontSetClassName(this.font);\n this.el.nativeElement.classList.add(className);\n if (this.iconName && !this.iconService.isSvgIconCached(this.iconName, this.font)) {\n this.el.nativeElement.classList.add(this.iconName);\n }\n };\n IgxIconComponent.decorators = [\n { type: Component, args: [{\n selector: 'igx-icon',\n template: \"\\n\\n\\n \\n\\n\\n\\n \\n \\n \\n\\n\\n\\n\"\n }] }\n ];\n /** @nocollapse */\n IgxIconComponent.ctorParameters = function () { return [\n { type: ElementRef },\n { type: IgxIconService }\n ]; };\n IgxIconComponent.propDecorators = {\n noLigature: [{ type: ViewChild, args: ['noLigature', { read: TemplateRef, static: true },] }],\n explicitLigature: [{ type: ViewChild, args: ['explicitLigature', { read: TemplateRef, static: true },] }],\n svgImage: [{ type: ViewChild, args: ['svgImage', { read: TemplateRef, static: true },] }],\n cssClass: [{ type: HostBinding, args: ['class.igx-icon',] }],\n ariaHidden: [{ type: HostBinding, args: ['attr.aria-hidden',] }],\n id: [{ type: HostBinding, args: ['attr.id',] }, { type: Input }],\n font: [{ type: Input, args: ['fontSet',] }],\n active: [{ type: Input, args: ['isActive',] }],\n iconColor: [{ type: Input, args: ['color',] }],\n iconName: [{ type: Input, args: ['name',] }],\n getInactive: [{ type: HostBinding, args: ['class.igx-icon--inactive',] }],\n getIconColor: [{ type: HostBinding, args: ['style.color',] }]\n };\n return IgxIconComponent;\n}());\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n/**\n * @hidden\n */\nvar IgxIconModule = /** @class */ (function () {\n function IgxIconModule() {\n }\n /**\n * @return {?}\n */\n IgxIconModule.forRoot = /**\n * @return {?}\n */\n function () {\n return {\n ngModule: IgxIconModule\n };\n };\n IgxIconModule.decorators = [\n { type: NgModule, args: [{\n declarations: [IgxIconComponent],\n exports: [IgxIconComponent],\n imports: [CommonModule]\n },] }\n ];\n __decorate([\n DeprecateMethod('IgxIconModule.forRoot method is deprecated. Use IgxIconModule instead.'),\n __metadata(\"design:type\", Function),\n __metadata(\"design:paramtypes\", []),\n __metadata(\"design:returntype\", void 0)\n ], IgxIconModule, \"forRoot\", null);\n return IgxIconModule;\n}());\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n/** @type {?} */\nvar NEXT_ID$8 = 0;\n/** @enum {string} */\nvar Size = {\n SMALL: 'small',\n MEDIUM: 'medium',\n LARGE: 'large',\n};\n/** @enum {string} */\nvar AvatarType = {\n DEFAULT: 'default',\n INITIALS: 'initials',\n IMAGE: 'image',\n ICON: 'icon',\n};\n/**\n * **Ignite UI for Angular Avatar** -\n * [Documentation](https://www.infragistics.com/products/ignite-ui-angular/angular/components/avatar.html)\n *\n * The Ignite UI Avatar provides an easy way to add an avatar icon to your application. This icon can be an\n * image, someone's initials or a material icon from the google material icon set.\n *\n * Example:\n * ```html\n * \n * \n * ```\n */\nvar IgxAvatarComponent = /** @class */ (function () {\n function IgxAvatarComponent(elementRef) {\n this.elementRef = elementRef;\n /**\n * Returns the `aria-label` of the avatar.\n *\n * ```typescript\n * let ariaLabel = this.avatar.ariaLabel;\n * ```\n *\n */\n this.ariaLabel = 'avatar';\n /**\n * Returns the `role` attribute of the avatar.\n *\n * ```typescript\n * let avatarRole = this.avatar.role;\n * ```\n *\n * \\@memberof IgxAvatarComponent\n */\n this.role = 'img';\n /**\n * Returns the class of the avatar.\n *\n * ```typescript\n * let avatarCLass = this.avatar.cssClass;\n * ```\n *\n * \\@memberof IgxAvatarComponent\n */\n this.cssClass = 'igx-avatar';\n /**\n * @hidden\n */\n this._size = 'small';\n /**\n * Sets the `id` of the avatar. If not set, the first avatar component will have `id` = `\"igx-avatar-0\"`.\n *\n * ```html\n * \n * ```\n *\n * \\@memberof IgxAvatarComponent\n */\n this.id = \"igx-avatar-\" + NEXT_ID$8++;\n /**\n * Sets a round shape to the avatar if `roundShape` is `\"true\"`.\n * By default the shape of the avatar is a square.\n *\n * ```html\n * \n * ```\n *\n * \\@memberof IgxAvatarComponent\n */\n this.roundShape = false;\n }\n Object.defineProperty(IgxAvatarComponent.prototype, \"size\", {\n /**\n * Returns the `size` of the avatar.\n *\n * ```typescript\n *let avatarSize = this.avatar.size;\n * ```\n *\n * @memberof IgxAvatarComponent\n */\n get: /**\n * Returns the `size` of the avatar.\n *\n * ```typescript\n * let avatarSize = this.avatar.size;\n * ```\n *\n * \\@memberof IgxAvatarComponent\n * @return {?}\n */\n function () {\n return this._size;\n },\n /**\n * Sets the `size` of the avatar.\n * By default the `size` is `\"small\"`. It can be set to `\"medium\"` or `\"large\"`.\n *\n * ```\n * \n * ```\n *\n * @memberof IgxAvatarComponent\n */\n set: /**\n * Sets the `size` of the avatar.\n * By default the `size` is `\"small\"`. It can be set to `\"medium\"` or `\"large\"`.\n *\n * ```\n * \n * ```\n *\n * \\@memberof IgxAvatarComponent\n * @param {?} value\n * @return {?}\n */\n function (value) {\n switch (value) {\n case 'small':\n case 'medium':\n case 'large':\n this._size = value;\n break;\n default:\n this._size = 'small';\n }\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxAvatarComponent.prototype, \"type\", {\n /**\n * Returns the type of the avatar.\n *\n * ```typescript\n * let avatarType = this.avatar.type;\n * ```\n *\n * @memberof IgxAvatarComponent\n */\n get: /**\n * Returns the type of the avatar.\n *\n * ```typescript\n * let avatarType = this.avatar.type;\n * ```\n *\n * \\@memberof IgxAvatarComponent\n * @return {?}\n */\n function () {\n if (this.src) {\n return AvatarType.IMAGE;\n }\n if (this.icon) {\n return AvatarType.ICON;\n }\n if (this.initials) {\n return AvatarType.INITIALS;\n }\n return AvatarType.DEFAULT;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxAvatarComponent.prototype, \"template\", {\n /**\n * Returns the template of the avatar.\n *\n * ```typescript\n * let template = this.avatar.template;\n * ```\n *\n * @memberof IgxAvatarComponent\n */\n get: /**\n * Returns the template of the avatar.\n *\n * ```typescript\n * let template = this.avatar.template;\n * ```\n *\n * \\@memberof IgxAvatarComponent\n * @return {?}\n */\n function () {\n switch (this.type) {\n case AvatarType.IMAGE:\n return this.imageTemplate;\n case AvatarType.INITIALS:\n return this.initialsTemplate;\n case AvatarType.ICON:\n return this.iconTemplate;\n default:\n return this.defaultTemplate;\n }\n },\n enumerable: true,\n configurable: true\n });\n /**\n * @hidden\n */\n /**\n * @hidden\n * @return {?}\n */\n IgxAvatarComponent.prototype.ngOnInit = /**\n * @hidden\n * @return {?}\n */\n function () {\n this.roleDescription = this.getRole();\n };\n /**\n *@hidden\n */\n /**\n * @hidden\n * @return {?}\n */\n IgxAvatarComponent.prototype.ngAfterViewInit = /**\n * @hidden\n * @return {?}\n */\n function () {\n this.elementRef.nativeElement.classList\n .add(\"igx-avatar--\" + this._size, \"igx-avatar--\" + this.type);\n };\n /**\n * @hidden\n */\n /**\n * @hidden\n * @private\n * @return {?}\n */\n IgxAvatarComponent.prototype.getRole = /**\n * @hidden\n * @private\n * @return {?}\n */\n function () {\n switch (this.type) {\n case AvatarType.IMAGE:\n return 'image avatar';\n case AvatarType.ICON:\n return 'icon avatar';\n case AvatarType.INITIALS:\n return 'initials avatar';\n default:\n return 'custom avatar';\n }\n };\n /**\n * Returns the url of the `image`.\n *\n * ```typescript\n * let imageSourceUrl = this.avatar.getSrcUrl();\n * ```\n *\n * @memberof IgxAvatarComponent\n */\n /**\n * Returns the url of the `image`.\n *\n * ```typescript\n * let imageSourceUrl = this.avatar.getSrcUrl();\n * ```\n *\n * \\@memberof IgxAvatarComponent\n * @return {?}\n */\n IgxAvatarComponent.prototype.getSrcUrl = /**\n * Returns the url of the `image`.\n *\n * ```typescript\n * let imageSourceUrl = this.avatar.getSrcUrl();\n * ```\n *\n * \\@memberof IgxAvatarComponent\n * @return {?}\n */\n function () {\n return \"url(\" + this.src + \")\";\n };\n IgxAvatarComponent.decorators = [\n { type: Component, args: [{\n selector: 'igx-avatar',\n template: \"\\n \\n\\n\\n\\n
\\n
\\n\\n\\n {{initials.substring(0, 2)}}\\n\\n\\n\\n {{icon}}\\n\\n\\n\\n\"\n }] }\n ];\n /** @nocollapse */\n IgxAvatarComponent.ctorParameters = function () { return [\n { type: ElementRef }\n ]; };\n IgxAvatarComponent.propDecorators = {\n image: [{ type: ViewChild, args: ['image', { static: false },] }],\n defaultTemplate: [{ type: ViewChild, args: ['defaultTemplate', { read: TemplateRef, static: true },] }],\n imageTemplate: [{ type: ViewChild, args: ['imageTemplate', { read: TemplateRef, static: true },] }],\n initialsTemplate: [{ type: ViewChild, args: ['initialsTemplate', { read: TemplateRef, static: true },] }],\n iconTemplate: [{ type: ViewChild, args: ['iconTemplate', { read: TemplateRef, static: true },] }],\n ariaLabel: [{ type: HostBinding, args: ['attr.aria-label',] }],\n role: [{ type: HostBinding, args: ['attr.role',] }],\n cssClass: [{ type: HostBinding, args: ['class.igx-avatar',] }],\n roleDescription: [{ type: HostBinding, args: ['attr.aria-roledescription',] }],\n id: [{ type: HostBinding, args: ['attr.id',] }, { type: Input }],\n roundShape: [{ type: HostBinding, args: ['class.igx-avatar--rounded',] }, { type: Input }],\n color: [{ type: HostBinding, args: ['style.color',] }, { type: Input }],\n bgColor: [{ type: HostBinding, args: ['style.background',] }, { type: Input }],\n initials: [{ type: Input }],\n icon: [{ type: Input }],\n src: [{ type: Input }],\n size: [{ type: Input }]\n };\n return IgxAvatarComponent;\n}());\n/**\n * @hidden\n */\nvar IgxAvatarModule = /** @class */ (function () {\n function IgxAvatarModule() {\n }\n IgxAvatarModule.decorators = [\n { type: NgModule, args: [{\n declarations: [IgxAvatarComponent],\n exports: [IgxAvatarComponent],\n imports: [CommonModule, IgxIconModule]\n },] }\n ];\n return IgxAvatarModule;\n}());\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n/** @type {?} */\nvar NEXT_ID$9 = 0;\n/** @enum {string} */\nvar Type = {\n DEFAULT: 'default',\n INFO: 'info',\n SUCCESS: 'success',\n WARNING: 'warning',\n ERROR: 'error',\n};\n/**\n * **Ignite UI for Angular Badge** -\n * [Documentation](https://www.infragistics.com/products/ignite-ui-angular/angular/components/badge.html)\n *\n * The Ignite UI Badge is used to decorate avatars, navigation menus, or other components in the\n * application when visual notification is needed. They are usually designed as icons with a predefined\n * style to communicate information, success, warnings, or errors.\n *\n * Example:\n * ```html\n * \n * \n * \n * \n * ```\n * The `badge-style` class is used to position the badge:\n * ```css\n * .badge-style {\n * position: absolute;\n * bottom: -6px;\n * right:-50px;\n * }\n * ```\n */\nvar IgxBadgeComponent = /** @class */ (function () {\n function IgxBadgeComponent() {\n /**\n * An \\@Input property that sets the value of the `id` attribute.\n * ```html\n * \n * ```\n */\n this.id = \"igx-badge-\" + NEXT_ID$9++;\n /**\n * An \\@Input property controlling the type of the badge.\n * Allowed values are `default`, `info`, `success`, `warning`, `error`.\n * Providing an invalid value won't display a badge.\n * ```html\n * \n * ```\n */\n this.type = 'default';\n /**\n * An \\@Input property that sets the value to be displayed inside the badge.\n * If an `icon` property is already set the `icon` will be displayed.\n * If neither a `value` nor an `icon` is set the contentent of the badge will be empty.\n * ```html\n * \n * ```\n */\n this.value = '';\n /**\n * This allows you to set value to role attribute.\n * ```html\n * \\@ViewChild(\"MyBadge\", { read: IgxBadgeComponent })\n * public badge: IgxBadgeComponent;\n * //...\n * badge.label = \"badge-status\";\n * ```\n */\n this.role = 'status';\n /**\n * This allows you to disable igx-badge class. The default it's applied.\n * ```html\n * \\@ViewChild(\"MyBadge\", { read: IgxBadgeComponent })\n * public badge: IgxBadgeComponent;\n * //...\n * badge.cssClass = false;\n * ```\n */\n this.cssClass = 'igx-badge';\n /**\n * This allows you to set value to aria-label attribute.\n * ```html\n * \\@ViewChild(\"MyBadge\", { read: IgxBadgeComponent })\n * public badge: IgxBadgeComponent;\n * //...\n * badge.label = \"icon-badge\";\n * ```\n */\n this.label = 'badge';\n }\n Object.defineProperty(IgxBadgeComponent.prototype, \"roleDescription\", {\n /**\n * @hidden\n * Defines a human-readable, accessor, author-localized description for the `type` and the `icon` or `value` of the element.\n */\n get: /**\n * @hidden\n * Defines a human-readable, accessor, author-localized description for the `type` and the `icon` or `value` of the element.\n * @return {?}\n */\n function () {\n /** @type {?} */\n var message;\n // tslint:disable-next-line:prefer-conditional-expression\n if (this.icon) {\n message = this.type + ' type badge with icon type ' + this.icon;\n }\n else if (this.value) {\n message = this.type + ' badge type with value ' + this.value;\n }\n else {\n message = this.type + ' badge type without value';\n }\n return message;\n },\n enumerable: true,\n configurable: true\n });\n /**\n * @hidden\n * Method which makes the name of the class more descriptive.\n * This helps the styling of the badges.\n */\n /**\n * @hidden\n * Method which makes the name of the class more descriptive.\n * This helps the styling of the badges.\n * @return {?}\n */\n IgxBadgeComponent.prototype.setClasses = /**\n * @hidden\n * Method which makes the name of the class more descriptive.\n * This helps the styling of the badges.\n * @return {?}\n */\n function () {\n var _a, _b, _c, _d, _e;\n /** @type {?} */\n var classes = {};\n switch (Type[this.type.toUpperCase()]) {\n case Type.DEFAULT:\n classes = (_a = {},\n _a[this.cssClass + \"__circle--default\"] = true,\n _a);\n break;\n case Type.INFO:\n classes = (_b = {},\n _b[this.cssClass + \"__circle--info\"] = true,\n _b);\n break;\n case Type.SUCCESS:\n classes = (_c = {},\n _c[this.cssClass + \"__circle--success\"] = true,\n _c);\n break;\n case Type.WARNING:\n classes = (_d = {},\n _d[this.cssClass + \"__circle--warning\"] = true,\n _d);\n break;\n case Type.ERROR:\n classes = (_e = {},\n _e[this.cssClass + \"__circle--error\"] = true,\n _e);\n break;\n }\n return classes;\n };\n IgxBadgeComponent.decorators = [\n { type: Component, args: [{\n selector: 'igx-badge',\n template: \"
\\n {{value}}\\n {{icon}}\\n
\\n\"\n }] }\n ];\n IgxBadgeComponent.propDecorators = {\n id: [{ type: HostBinding, args: ['attr.id',] }, { type: Input }],\n type: [{ type: Input }],\n value: [{ type: Input }],\n icon: [{ type: Input }],\n role: [{ type: HostBinding, args: ['attr.role',] }],\n cssClass: [{ type: HostBinding, args: ['class.igx-badge',] }],\n label: [{ type: HostBinding, args: ['attr.aria-label',] }]\n };\n return IgxBadgeComponent;\n}());\n/**\n * @hidden\n */\nvar IgxBadgeModule = /** @class */ (function () {\n function IgxBadgeModule() {\n }\n IgxBadgeModule.decorators = [\n { type: NgModule, args: [{\n declarations: [IgxBadgeComponent],\n exports: [IgxBadgeComponent],\n imports: [CommonModule, IgxIconModule]\n },] }\n ];\n return IgxBadgeModule;\n}());\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n/**\n * @hidden\n * @type {?}\n */\nvar IGX_EXPANSION_PANEL_COMPONENT = 'IgxExpansionPanelToken';\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\nvar IgxExpansionPanelBodyComponent = /** @class */ (function () {\n function IgxExpansionPanelBodyComponent(panel, element, cdr) {\n this.panel = panel;\n this.element = element;\n this.cdr = cdr;\n this._labelledBy = '';\n this._label = '';\n /**\n * @hidden\n */\n this.cssClass = \"igx-expansion-panel__body\";\n /**\n * Gets/sets the `role` attribute of the panel body\n * Default is 'region';\n * Get\n * ```typescript\n * const currentRole = this.panel.body.role;\n * ```\n * Set\n * ```typescript\n * this.panel.body.role = 'content';\n * ```\n * ```html\n * \n * ```\n */\n this.role = 'region';\n }\n Object.defineProperty(IgxExpansionPanelBodyComponent.prototype, \"label\", {\n /**\n * Gets the `aria-label` attribute of the panel body\n * Defaults to the panel id with '-region' in the end;\n * Get\n * ```typescript\n * const currentLabel = this.panel.body.label;\n * ```\n */\n get: /**\n * Gets the `aria-label` attribute of the panel body\n * Defaults to the panel id with '-region' in the end;\n * Get\n * ```typescript\n * const currentLabel = this.panel.body.label;\n * ```\n * @return {?}\n */\n function () {\n return this._label || this.panel.id + '-region';\n },\n /**\n * Sets the `aria-label` attribute of the panel body\n * ```typescript\n * this.panel.body.label = 'my-custom-label';\n * ```\n * ```html\n * \n * ```\n */\n set: /**\n * Sets the `aria-label` attribute of the panel body\n * ```typescript\n * this.panel.body.label = 'my-custom-label';\n * ```\n * ```html\n * \n * ```\n * @param {?} val\n * @return {?}\n */\n function (val) {\n this._label = val;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxExpansionPanelBodyComponent.prototype, \"labelledBy\", {\n /**\n * Gets the `aria-labelledby` attribute of the panel body\n * Defaults to the panel header id;\n * Get\n * ```typescript\n * const currentLabel = this.panel.body.labelledBy;\n * ```\n */\n get: /**\n * Gets the `aria-labelledby` attribute of the panel body\n * Defaults to the panel header id;\n * Get\n * ```typescript\n * const currentLabel = this.panel.body.labelledBy;\n * ```\n * @return {?}\n */\n function () {\n return this._labelledBy;\n },\n /**\n * Sets the `aria-labelledby` attribute of the panel body\n * ```typescript\n * this.panel.body.labelledBy = 'my-custom-id';\n * ```\n * ```html\n * \n * ```\n */\n set: /**\n * Sets the `aria-labelledby` attribute of the panel body\n * ```typescript\n * this.panel.body.labelledBy = 'my-custom-id';\n * ```\n * ```html\n * \n * ```\n * @param {?} val\n * @return {?}\n */\n function (val) {\n this._labelledBy = val;\n },\n enumerable: true,\n configurable: true\n });\n IgxExpansionPanelBodyComponent.decorators = [\n { type: Component, args: [{\n // tslint:disable-next-line:directive-selector\n selector: 'igx-expansion-panel-body',\n template: \"\"\n }] }\n ];\n /** @nocollapse */\n IgxExpansionPanelBodyComponent.ctorParameters = function () { return [\n { type: undefined, decorators: [{ type: Inject, args: [IGX_EXPANSION_PANEL_COMPONENT,] }] },\n { type: ElementRef },\n { type: ChangeDetectorRef }\n ]; };\n IgxExpansionPanelBodyComponent.propDecorators = {\n cssClass: [{ type: HostBinding, args: ['class.igx-expansion-panel__body',] }],\n label: [{ type: Input }, { type: HostBinding, args: ['attr.aria-label',] }],\n labelledBy: [{ type: Input }, { type: HostBinding, args: ['attr.aria-labelledby',] }],\n role: [{ type: Input }, { type: HostBinding, args: ['attr.role',] }]\n };\n return IgxExpansionPanelBodyComponent;\n}());\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n/**\n * @hidden\n */\nvar IgxExpansionPanelTitleDirective = /** @class */ (function () {\n function IgxExpansionPanelTitleDirective() {\n this.cssClass = \"igx-expansion-panel__header-title\";\n }\n IgxExpansionPanelTitleDirective.decorators = [\n { type: Directive, args: [{\n // tslint:disable-next-line:directive-selector\n selector: 'igx-expansion-panel-title'\n },] }\n ];\n IgxExpansionPanelTitleDirective.propDecorators = {\n cssClass: [{ type: HostBinding, args: ['class.igx-expansion-panel__header-title',] }]\n };\n return IgxExpansionPanelTitleDirective;\n}());\n/**\n * @hidden\n */\nvar IgxExpansionPanelDescriptionDirective = /** @class */ (function () {\n function IgxExpansionPanelDescriptionDirective() {\n this.cssClass = \"igx-expansion-panel__header-description\";\n }\n IgxExpansionPanelDescriptionDirective.decorators = [\n { type: Directive, args: [{\n // tslint:disable-next-line:directive-selector\n selector: 'igx-expansion-panel-description'\n },] }\n ];\n IgxExpansionPanelDescriptionDirective.propDecorators = {\n cssClass: [{ type: HostBinding, args: ['class.igx-expansion-panel__header-description',] }]\n };\n return IgxExpansionPanelDescriptionDirective;\n}());\n/**\n * @hidden\n */\nvar IgxExpansionPanelIconDirective = /** @class */ (function () {\n function IgxExpansionPanelIconDirective() {\n }\n IgxExpansionPanelIconDirective.decorators = [\n { type: Directive, args: [{\n // tslint:disable-next-line:directive-selector\n selector: 'igx-expansion-panel-icon'\n },] }\n ];\n return IgxExpansionPanelIconDirective;\n}());\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n/** @enum {string} */\nvar ICON_POSITION = {\n LEFT: 'left',\n NONE: 'none',\n RIGHT: 'right',\n};\nvar IgxExpansionPanelHeaderComponent = /** @class */ (function () {\n function IgxExpansionPanelHeaderComponent(panel, cdr, elementRef) {\n this.panel = panel;\n this.cdr = cdr;\n this.elementRef = elementRef;\n // properties section\n this._iconTemplate = false;\n /**\n * Sets/gets the `id` of the expansion panel header.\n * ```typescript\n * let panelHeaderId = this.panel.header.id;\n * ```\n * \\@memberof IgxExpansionPanelComponent\n */\n this.id = '';\n /**\n * Gets/sets the `aria-level` attribute of the header\n * Get\n * ```typescript\n * const currentAriaLevel = this.panel.header.lv;\n * ```\n * Set\n * ```typescript\n * this.panel.header.lv = '5';\n * ```\n * ```html\n * \n * ```\n */\n this.lv = '3';\n /**\n * Gets/sets the `role` attribute of the header\n * Get\n * ```typescript\n * const currentRole = this.panel.header.role;\n * ```\n * Set\n * ```typescript\n * this.panel.header.role = '5';\n * ```\n * ```html\n * \n * ```\n */\n this.role = 'heading';\n /**\n * Gets/sets the position of the expansion-panel-header expand/collapse icon\n * Accepts `left`, `right` or `none`\n * ```typescript\n * const currentIconPosition = this.panel.header.iconPosition;\n * ```\n * Set\n * ```typescript\n * this.panel.header.iconPosition = 'left';\n * ```\n * ```html\n * \n * ```\n */\n this.iconPosition = ICON_POSITION.LEFT;\n /**\n * Emitted whenever a user interacts with the header host\n * ```typescript\n * handleInteraction(event: IExpansionPanelEventArgs) {\n * ...\n * }\n * ```\n * ```html\n * \n * ...\n * \n * ```\n */\n this.onInteraction = new EventEmitter();\n /**\n * @hidden\n */\n this.cssClass = 'igx-expansion-panel__header';\n /**\n * Gets/sets the whether the header is disabled\n * When disabled, the header will not handle user events and will stop their propagation\n *\n * ```typescript\n * const isDisabled = this.panel.header.disabled;\n * ```\n * Set\n * ```typescript\n * this.panel.header.disabled = true;\n * ```\n * ```html\n * \n * ...\n * \n * ```\n */\n this.disabled = false;\n this.id = this.panel.id + \"-header\";\n }\n Object.defineProperty(IgxExpansionPanelHeaderComponent.prototype, \"iconTemplate\", {\n /**\n * @hidden\n */\n get: /**\n * @hidden\n * @return {?}\n */\n function () {\n return this._iconTemplate;\n },\n /**\n * @hidden\n */\n set: /**\n * @hidden\n * @param {?} val\n * @return {?}\n */\n function (val) {\n this._iconTemplate = (/** @type {?} */ (val));\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxExpansionPanelHeaderComponent.prototype, \"controls\", {\n /**\n * @hidden\n */\n get: /**\n * @hidden\n * @return {?}\n */\n function () {\n return this.panel.id;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxExpansionPanelHeaderComponent.prototype, \"isExpanded\", {\n /**\n * @hidden\n */\n get: /**\n * @hidden\n * @return {?}\n */\n function () {\n return !this.panel.collapsed;\n },\n enumerable: true,\n configurable: true\n });\n /**\n * @hidden\n */\n /**\n * @hidden\n * @param {?=} evt\n * @return {?}\n */\n IgxExpansionPanelHeaderComponent.prototype.onAction = /**\n * @hidden\n * @param {?=} evt\n * @return {?}\n */\n function (evt) {\n if (this.disabled) {\n evt.stopPropagation();\n return;\n }\n this.onInteraction.emit({ event: evt, panel: this.panel });\n this.panel.toggle(evt);\n evt.preventDefault();\n };\n /** @hidden @internal */\n /**\n * @hidden \\@internal\n * @param {?} event\n * @return {?}\n */\n IgxExpansionPanelHeaderComponent.prototype.openPanel = /**\n * @hidden \\@internal\n * @param {?} event\n * @return {?}\n */\n function (event) {\n if (event.altKey) {\n this.panel.expand(event);\n this.onInteraction.emit({ event: event, panel: this.panel });\n }\n };\n /** @hidden @internal */\n /**\n * @hidden \\@internal\n * @param {?} event\n * @return {?}\n */\n IgxExpansionPanelHeaderComponent.prototype.closePanel = /**\n * @hidden \\@internal\n * @param {?} event\n * @return {?}\n */\n function (event) {\n if (event.altKey) {\n this.panel.collapse(event);\n this.onInteraction.emit({ event: event, panel: this.panel });\n }\n };\n Object.defineProperty(IgxExpansionPanelHeaderComponent.prototype, \"iconPositionClass\", {\n /**\n * @hidden\n */\n get: /**\n * @hidden\n * @return {?}\n */\n function () {\n switch (this.iconPosition) {\n case (ICON_POSITION.LEFT):\n return \"igx-expansion-panel__header-icon--start\";\n case (ICON_POSITION.RIGHT):\n return \"igx-expansion-panel__header-icon--end\";\n case (ICON_POSITION.NONE):\n return \"igx-expansion-panel__header-icon--none\";\n default:\n return '';\n }\n },\n enumerable: true,\n configurable: true\n });\n IgxExpansionPanelHeaderComponent.decorators = [\n { type: Component, args: [{\n selector: 'igx-expansion-panel-header',\n template: \"
\\n
\\n \\n \\n
\\n \\n
\\n \\n \\n {{panel.collapsed? 'expand_more':'expand_less'}}\\n \\n
\\n
\\n\"\n }] }\n ];\n /** @nocollapse */\n IgxExpansionPanelHeaderComponent.ctorParameters = function () { return [\n { type: undefined, decorators: [{ type: Host }, { type: Inject, args: [IGX_EXPANSION_PANEL_COMPONENT,] }] },\n { type: ChangeDetectorRef },\n { type: ElementRef }\n ]; };\n IgxExpansionPanelHeaderComponent.propDecorators = {\n iconTemplate: [{ type: ContentChild, args: [IgxExpansionPanelIconDirective, { static: false },] }],\n lv: [{ type: HostBinding, args: ['attr.aria-level',] }, { type: Input }],\n role: [{ type: HostBinding, args: ['attr.role',] }, { type: Input }],\n iconPosition: [{ type: Input }],\n onInteraction: [{ type: Output }],\n cssClass: [{ type: HostBinding, args: ['class.igx-expansion-panel__header',] }],\n isExpanded: [{ type: HostBinding, args: ['class.igx-expansion-panel__header--expanded',] }],\n disabled: [{ type: Input }, { type: HostBinding, args: ['class.igx-expansion-panel--disabled',] }],\n onAction: [{ type: HostListener, args: ['keydown.Enter', ['$event'],] }, { type: HostListener, args: ['keydown.Space', ['$event'],] }, { type: HostListener, args: ['keydown.Spacebar', ['$event'],] }, { type: HostListener, args: ['click', ['$event'],] }],\n openPanel: [{ type: HostListener, args: ['keydown.Alt.ArrowDown', ['$event'],] }],\n closePanel: [{ type: HostListener, args: ['keydown.Alt.ArrowUp', ['$event'],] }]\n };\n return IgxExpansionPanelHeaderComponent;\n}());\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n/** @type {?} */\nvar NEXT_ID$a = 0;\nvar IgxExpansionPanelComponent = /** @class */ (function () {\n function IgxExpansionPanelComponent(cdr, builder) {\n this.cdr = cdr;\n this.builder = builder;\n this._collapsed = true;\n /**\n * Sets/gets the animation settings of the expansion panel component\n * Open and Close animation should be passed\n *\n * Get\n * ```typescript\n * const currentAnimations = this.panel.animationSettings;\n * ```\n * Set\n * ```typescript\n * import { slideInLeft, slideOutRight } from 'igniteui-angular';\n * ...\n * this.panel.animationsSettings = {\n * openAnimation: slideInLeft,\n * closeAnimation: slideOutRight\n * };\n * ```\n * or via template\n * ```typescript\n * import { slideInLeft, slideOutRight } from 'igniteui-angular';\n * ...\n * myCustomAnimationObject = {\n * openAnimation: slideInLeft,\n * closeAnimation: slideOutRight\n * };\n * ```html\n * \n * ...\n * \n * ```\n */\n this.animationSettings = {\n openAnimation: growVerIn,\n closeAnimation: growVerOut\n };\n /**\n * Sets/gets the `id` of the expansion panel component.\n * If not set, `id` will have value `\"igx-expansion-panel-0\"`;\n * ```html\n * \n * ```\n * ```typescript\n * let panelId = this.panel.id;\n * ```\n * \\@memberof IgxExpansionPanelComponent\n */\n this.id = \"igx-expansion-panel-\" + NEXT_ID$a++;\n /**\n * @hidden\n */\n this.cssClass = 'igx-expansion-panel';\n /**\n * @hidden\n */\n this.collapsedChange = new EventEmitter();\n /**\n * Emitted when the expansion panel finishes collapsing\n * ```typescript\n * handleCollapsed(event: {\n * panel: IgxExpansionPanelComponent,\n * event: Event\n * })\n * ```\n * ```html\n * \n * ...\n * \n * ```\n */\n this.onCollapsed = new EventEmitter();\n /**\n * Emitted when the expansion panel finishes expanding\n * ```typescript\n * handleExpanded(event: {\n * panel: IgxExpansionPanelComponent,\n * event: Event\n * })\n * ```\n * ```html\n * \n * ...\n * \n * ```\n */\n this.onExpanded = new EventEmitter();\n }\n Object.defineProperty(IgxExpansionPanelComponent.prototype, \"collapsed\", {\n /**\n * Gets/sets whether the component is collapsed (its content is hidden)\n * Get\n * ```typescript\n * const myPanelState: boolean = this.panel.collapsed;\n * ```\n * Set\n * ```html\n * this.panel.collapsed = true;\n * ```\n *\n * Two-way data binding:\n * ```html\n * \n * ```\n */\n get: /**\n * Gets/sets whether the component is collapsed (its content is hidden)\n * Get\n * ```typescript\n * const myPanelState: boolean = this.panel.collapsed;\n * ```\n * Set\n * ```html\n * this.panel.collapsed = true;\n * ```\n *\n * Two-way data binding:\n * ```html\n * \n * ```\n * @return {?}\n */\n function () {\n return this._collapsed;\n },\n set: /**\n * @param {?} value\n * @return {?}\n */\n function (value) {\n this._collapsed = value;\n this.collapsedChange.emit(this._collapsed);\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxExpansionPanelComponent.prototype, \"headerId\", {\n /**\n * @hidden\n */\n get: /**\n * @hidden\n * @return {?}\n */\n function () {\n return this.header ? this.id + \"-header\" : '';\n },\n enumerable: true,\n configurable: true\n });\n /** @hidden */\n /**\n * @hidden\n * @return {?}\n */\n IgxExpansionPanelComponent.prototype.ngAfterContentInit = /**\n * @hidden\n * @return {?}\n */\n function () {\n var _this = this;\n if (this.body && this.header) {\n // schedule at end of turn:\n Promise.resolve().then(function () {\n _this.body.labelledBy = _this.body.labelledBy || _this.headerId;\n _this.body.label = _this.body.label || _this.id + '-region';\n });\n }\n };\n /**\n * @private\n * @param {?} cb\n * @return {?}\n */\n IgxExpansionPanelComponent.prototype.playOpenAnimation = /**\n * @private\n * @param {?} cb\n * @return {?}\n */\n function (cb) {\n if (!this.body) { // if not body element is passed, there is nothing to animate\n return;\n }\n /** @type {?} */\n var animation = useAnimation(this.animationSettings.openAnimation);\n /** @type {?} */\n var animationBuilder = this.builder.build(animation);\n /** @type {?} */\n var openAnimationPlayer = animationBuilder.create(this.body.element.nativeElement);\n openAnimationPlayer.onDone(function () {\n cb();\n openAnimationPlayer.reset();\n });\n openAnimationPlayer.play();\n };\n /**\n * @private\n * @param {?} cb\n * @return {?}\n */\n IgxExpansionPanelComponent.prototype.playCloseAnimation = /**\n * @private\n * @param {?} cb\n * @return {?}\n */\n function (cb) {\n if (!this.body) { // if not body element is passed, there is nothing to animate\n return;\n }\n /** @type {?} */\n var animation = useAnimation(this.animationSettings.closeAnimation);\n /** @type {?} */\n var animationBuilder = this.builder.build(animation);\n /** @type {?} */\n var closeAnimationPlayer = animationBuilder.create(this.body.element.nativeElement);\n closeAnimationPlayer.onDone(function () {\n cb();\n closeAnimationPlayer.reset();\n });\n closeAnimationPlayer.play();\n };\n /**\n * Collapses the panel\n *\n * ```html\n * \n * ...\n * \n * \n * ```\n */\n /**\n * Collapses the panel\n *\n * ```html\n * \n * ...\n * \n * \n * ```\n * @param {?=} evt\n * @return {?}\n */\n IgxExpansionPanelComponent.prototype.collapse = /**\n * Collapses the panel\n *\n * ```html\n * \n * ...\n * \n * \n * ```\n * @param {?=} evt\n * @return {?}\n */\n function (evt) {\n var _this = this;\n if (this.collapsed) { // If expansion panel is already collapsed, do nothing\n return;\n }\n this.playCloseAnimation(function () {\n _this.onCollapsed.emit({ event: evt, panel: _this });\n _this.collapsed = true;\n });\n };\n /**\n * Expands the panel\n *\n * ```html\n * \n * ...\n * \n * \n * ```\n */\n /**\n * Expands the panel\n *\n * ```html\n * \n * ...\n * \n * \n * ```\n * @param {?=} evt\n * @return {?}\n */\n IgxExpansionPanelComponent.prototype.expand = /**\n * Expands the panel\n *\n * ```html\n * \n * ...\n * \n * \n * ```\n * @param {?=} evt\n * @return {?}\n */\n function (evt) {\n var _this = this;\n if (!this.collapsed) { // If the panel is already opened, do nothing\n return;\n }\n this.collapsed = false;\n this.cdr.detectChanges();\n this.playOpenAnimation(function () {\n _this.onExpanded.emit({ event: evt, panel: _this });\n });\n };\n /**\n * Toggles the panel\n *\n * ```html\n * \n * ...\n * \n * \n * ```\n */\n /**\n * Toggles the panel\n *\n * ```html\n * \n * ...\n * \n * \n * ```\n * @param {?=} evt\n * @return {?}\n */\n IgxExpansionPanelComponent.prototype.toggle = /**\n * Toggles the panel\n *\n * ```html\n * \n * ...\n * \n * \n * ```\n * @param {?=} evt\n * @return {?}\n */\n function (evt) {\n if (this.collapsed) {\n this.open(evt);\n }\n else {\n this.close(evt);\n }\n };\n /**\n * @param {?=} evt\n * @return {?}\n */\n IgxExpansionPanelComponent.prototype.open = /**\n * @param {?=} evt\n * @return {?}\n */\n function (evt) {\n this.expand(evt);\n };\n /**\n * @param {?=} evt\n * @return {?}\n */\n IgxExpansionPanelComponent.prototype.close = /**\n * @param {?=} evt\n * @return {?}\n */\n function (evt) {\n this.collapse(evt);\n };\n IgxExpansionPanelComponent.decorators = [\n { type: Component, args: [{\n selector: 'igx-expansion-panel',\n template: \"\\n\\n\",\n providers: [{ provide: IGX_EXPANSION_PANEL_COMPONENT, useExisting: IgxExpansionPanelComponent }]\n }] }\n ];\n /** @nocollapse */\n IgxExpansionPanelComponent.ctorParameters = function () { return [\n { type: ChangeDetectorRef },\n { type: AnimationBuilder }\n ]; };\n IgxExpansionPanelComponent.propDecorators = {\n animationSettings: [{ type: Input }],\n id: [{ type: HostBinding, args: ['attr.id',] }, { type: Input }],\n cssClass: [{ type: HostBinding, args: ['class.igx-expansion-panel',] }],\n collapsed: [{ type: Input }],\n collapsedChange: [{ type: Output }],\n onCollapsed: [{ type: Output }],\n onExpanded: [{ type: Output }],\n body: [{ type: ContentChild, args: [forwardRef(function () { return IgxExpansionPanelBodyComponent; }),\n { read: forwardRef(function () { return IgxExpansionPanelBodyComponent; }), static: false },] }],\n header: [{ type: ContentChild, args: [forwardRef(function () { return IgxExpansionPanelHeaderComponent; }),\n { read: forwardRef(function () { return IgxExpansionPanelHeaderComponent; }), static: false },] }]\n };\n return IgxExpansionPanelComponent;\n}());\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n/**\n * @hidden\n */\nvar IgxExpansionPanelModule = /** @class */ (function () {\n function IgxExpansionPanelModule() {\n }\n IgxExpansionPanelModule.decorators = [\n { type: NgModule, args: [{\n declarations: [\n IgxExpansionPanelComponent,\n IgxExpansionPanelHeaderComponent,\n IgxExpansionPanelBodyComponent,\n IgxExpansionPanelDescriptionDirective,\n IgxExpansionPanelTitleDirective,\n IgxExpansionPanelIconDirective\n ],\n entryComponents: [],\n exports: [\n IgxExpansionPanelComponent,\n IgxExpansionPanelHeaderComponent,\n IgxExpansionPanelBodyComponent,\n IgxExpansionPanelDescriptionDirective,\n IgxExpansionPanelTitleDirective,\n IgxExpansionPanelIconDirective\n ],\n imports: [\n CommonModule,\n IgxRippleModule,\n IgxIconModule,\n IgxButtonModule,\n IgxAvatarModule\n ]\n },] }\n ];\n return IgxExpansionPanelModule;\n}());\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n// tslint:disable:directive-selector\nvar IgxBannerActionsDirective = /** @class */ (function () {\n function IgxBannerActionsDirective() {\n }\n IgxBannerActionsDirective.decorators = [\n { type: Directive, args: [{\n selector: 'igx-banner-actions'\n },] }\n ];\n return IgxBannerActionsDirective;\n}());\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n/**\n * **Ignite UI for Angular Banner** -\n * [Documentation](https://www.infragistics.com/products/ignite-ui-angular/angular/components/banner.html)\n *\n * The Ignite UI Banner provides a highly templateable and easy to use banner that can be shown in your application.\n *\n * Usage:\n *\n * ```html\n * \n * Our privacy settings have changed.\n * \n * \n * \n * \n * \n * ```\n */\nvar IgxBannerComponent = /** @class */ (function () {\n function IgxBannerComponent(elementRef) {\n this.elementRef = elementRef;\n /**\n * Fires after the banner shows up\n * ```typescript\n * public handleOpened(event) {\n * ...\n * }\n * ```\n * ```html\n * \n * ```\n */\n this.onOpened = new EventEmitter();\n /**\n * Fires before the banner shows up\n * ```typescript\n * public handleOpening(event) {\n * ...\n * }\n * ```\n * ```html\n * \n * ```\n */\n this.onOpening = new EventEmitter();\n /**\n * Fires after the banner hides\n * ```typescript\n * public handleClosed(event) {\n * ...\n * }\n * ```\n * ```html\n * \n * ```\n */\n this.onClosed = new EventEmitter();\n /**\n * Fires before the banner hides\n * ```typescript\n * public handleClosing(event) {\n * ...\n * }\n * ```\n * ```html\n * \n * ```\n */\n this.onClosing = new EventEmitter();\n }\n Object.defineProperty(IgxBannerComponent.prototype, \"useDefaultTemplate\", {\n /** @hidden */\n get: /**\n * @hidden\n * @return {?}\n */\n function () {\n return !this._bannerActionTemplate;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxBannerComponent.prototype, \"animationSettings\", {\n /**\n * Get the animation settings used by the banner open/close methods\n * ```typescript\n * let currentAnimations: AnimationSettings = banner.animationSettings\n * ```\n */\n get: /**\n * Get the animation settings used by the banner open/close methods\n * ```typescript\n * let currentAnimations: AnimationSettings = banner.animationSettings\n * ```\n * @return {?}\n */\n function () {\n return this._animationSettings ? this._animationSettings : this._expansionPanel.animationSettings;\n },\n /**\n * Set the animation settings used by the banner open/close methods\n * ```typescript\n * import { slideInLeft, slideOutRight } from 'igniteui-angular';\n * ...\n * banner.animationSettings: AnimationSettings = { openAnimation: slideInLeft, closeAnimation: slideOutRight };\n * ```\n */\n set: /**\n * Set the animation settings used by the banner open/close methods\n * ```typescript\n * import { slideInLeft, slideOutRight } from 'igniteui-angular';\n * ...\n * banner.animationSettings: AnimationSettings = { openAnimation: slideInLeft, closeAnimation: slideOutRight };\n * ```\n * @param {?} settings\n * @return {?}\n */\n function (settings) {\n this._animationSettings = settings;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxBannerComponent.prototype, \"collapsed\", {\n /**\n * Gets whether banner is collapsed\n *\n * ```typescript\n * const isCollapsed: boolean = banner.collapsed;\n * ```\n */\n get: /**\n * Gets whether banner is collapsed\n *\n * ```typescript\n * const isCollapsed: boolean = banner.collapsed;\n * ```\n * @return {?}\n */\n function () {\n return this._expansionPanel.collapsed;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxBannerComponent.prototype, \"element\", {\n /**\n * Returns the native element of the banner component\n * ```typescript\n * const myBannerElement: HTMLElement = banner.element;\n * ```\n */\n get: /**\n * Returns the native element of the banner component\n * ```typescript\n * const myBannerElement: HTMLElement = banner.element;\n * ```\n * @return {?}\n */\n function () {\n return this.elementRef.nativeElement;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxBannerComponent.prototype, \"displayStyle\", {\n /**\n * @hidden\n */\n get: /**\n * @hidden\n * @return {?}\n */\n function () {\n return this.collapsed ? '' : 'block';\n },\n enumerable: true,\n configurable: true\n });\n /**\n * Opens the banner\n *\n * ```typescript\n * myBanner.open();\n * ```\n *\n * ```html\n * \n * ...\n * \n * \n * ```\n */\n /**\n * Opens the banner\n *\n * ```typescript\n * myBanner.open();\n * ```\n *\n * ```html\n * \n * ...\n * \n * \n * ```\n * @param {?=} event\n * @return {?}\n */\n IgxBannerComponent.prototype.open = /**\n * Opens the banner\n *\n * ```typescript\n * myBanner.open();\n * ```\n *\n * ```html\n * \n * ...\n * \n * \n * ```\n * @param {?=} event\n * @return {?}\n */\n function (event) {\n this._bannerEvent = { banner: this, event: event };\n /** @type {?} */\n var openingArgs = {\n banner: this,\n event: event,\n cancel: false\n };\n this.onOpening.emit(openingArgs);\n if (openingArgs.cancel) {\n return;\n }\n this._expansionPanel.open(event);\n };\n /**\n * Closes the banner\n *\n * ```typescript\n * myBanner.close();\n * ```\n *\n * ```html\n * \n * ...\n * \n * \n * ```\n */\n /**\n * Closes the banner\n *\n * ```typescript\n * myBanner.close();\n * ```\n *\n * ```html\n * \n * ...\n * \n * \n * ```\n * @param {?=} event\n * @return {?}\n */\n IgxBannerComponent.prototype.close = /**\n * Closes the banner\n *\n * ```typescript\n * myBanner.close();\n * ```\n *\n * ```html\n * \n * ...\n * \n * \n * ```\n * @param {?=} event\n * @return {?}\n */\n function (event) {\n this._bannerEvent = { banner: this, event: event };\n /** @type {?} */\n var closingArgs = {\n banner: this,\n event: event,\n cancel: false\n };\n this.onClosing.emit(closingArgs);\n if (closingArgs.cancel) {\n return;\n }\n this._expansionPanel.close(event);\n };\n /**\n * Toggles the banner\n *\n * ```typescript\n * myBanner.toggle();\n * ```\n *\n * ```html\n * \n * ...\n * \n * \n * ```\n */\n /**\n * Toggles the banner\n *\n * ```typescript\n * myBanner.toggle();\n * ```\n *\n * ```html\n * \n * ...\n * \n * \n * ```\n * @param {?=} event\n * @return {?}\n */\n IgxBannerComponent.prototype.toggle = /**\n * Toggles the banner\n *\n * ```typescript\n * myBanner.toggle();\n * ```\n *\n * ```html\n * \n * ...\n * \n * \n * ```\n * @param {?=} event\n * @return {?}\n */\n function (event) {\n if (this.collapsed) {\n this.open(event);\n }\n else {\n this.close(event);\n }\n };\n /** @hidden */\n /**\n * @hidden\n * @return {?}\n */\n IgxBannerComponent.prototype.onExpansionPanelOpen = /**\n * @hidden\n * @return {?}\n */\n function () {\n this.onOpened.emit(this._bannerEvent);\n };\n /** @hidden */\n /**\n * @hidden\n * @return {?}\n */\n IgxBannerComponent.prototype.onExpansionPanelClose = /**\n * @hidden\n * @return {?}\n */\n function () {\n this.onClosed.emit(this._bannerEvent);\n };\n IgxBannerComponent.decorators = [\n { type: Component, args: [{\n selector: 'igx-banner',\n template: \"\\n \\n
\\n
\\n
\\n \\n
\\n \\n \\n \\n
\\n
\\n
\\n \\n \\n \\n \\n \\n \\n
\\n
\\n
\\n
\\n
\"\n }] }\n ];\n /** @nocollapse */\n IgxBannerComponent.ctorParameters = function () { return [\n { type: ElementRef }\n ]; };\n IgxBannerComponent.propDecorators = {\n _expansionPanel: [{ type: ViewChild, args: ['expansionPanel', { static: true },] }],\n _bannerActionTemplate: [{ type: ContentChild, args: [IgxBannerActionsDirective, { static: false },] }],\n bannerIcon: [{ type: ContentChild, args: [IgxIconComponent, { static: false },] }],\n onOpened: [{ type: Output }],\n onOpening: [{ type: Output }],\n onClosed: [{ type: Output }],\n onClosing: [{ type: Output }],\n animationSettings: [{ type: Input }],\n displayStyle: [{ type: HostBinding, args: ['style.display',] }]\n };\n return IgxBannerComponent;\n}());\n/**\n * @hidden\n */\nvar IgxBannerModule = /** @class */ (function () {\n function IgxBannerModule() {\n }\n IgxBannerModule.decorators = [\n { type: NgModule, args: [{\n declarations: [IgxBannerComponent, IgxBannerActionsDirective],\n exports: [IgxBannerComponent, IgxBannerActionsDirective],\n imports: [CommonModule, IgxExpansionPanelModule, IgxIconModule, IgxButtonModule, IgxRippleModule]\n },] }\n ];\n return IgxBannerModule;\n}());\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n/** @enum {number} */\nvar ButtonGroupAlignment = {\n horizontal: 0, vertical: 1,\n};\nButtonGroupAlignment[ButtonGroupAlignment.horizontal] = 'horizontal';\nButtonGroupAlignment[ButtonGroupAlignment.vertical] = 'vertical';\n/** @type {?} */\nvar NEXT_ID$b = 0;\n/**\n * **Ignite UI for Angular Button Group** -\n * [Documentation](https://www.infragistics.com/products/ignite-ui-angular/angular/components/buttongroup.html)\n *\n * The Ignite UI Button Group displays a group of buttons either vertically or horizontally. The group supports\n * single, multiple and toggle selection.\n *\n * Example:\n * ```html\n * \n * \n * ```\n * The `fontOptions` value shown above is defined as:\n * ```typescript\n * this.fontOptions = [\n * { icon: 'format_bold', selected: false },\n * { icon: 'format_italic', selected: false },\n * { icon: 'format_underlined', selected: false }];\n * ```\n */\nvar IgxButtonGroupComponent = /** @class */ (function (_super) {\n __extends(IgxButtonGroupComponent, _super);\n function IgxButtonGroupComponent(_cdr, _renderer, _displayDensityOptions) {\n var _this = _super.call(this, _displayDensityOptions) || this;\n _this._cdr = _cdr;\n _this._renderer = _renderer;\n _this._displayDensityOptions = _displayDensityOptions;\n _this._disabled = false;\n _this.buttonClickNotifier$ = new Subject();\n _this.queryListNotifier$ = new Subject();\n /**\n * An \\@Input property that sets the value of the `id` attribute. If not set it will be automatically generated.\n * ```html\n * \n * ```\n */\n _this.id = \"igx-buttongroup-\" + NEXT_ID$b++;\n /**\n * @hidden\n */\n _this.zIndex = 0;\n /**\n * An \\@Input property that enables selecting multiple buttons. By default, multi-selection is false.\n * ```html\n * \n * ```\n */\n _this.multiSelection = false;\n /**\n * @hidden\n */\n _this.selectedIndexes = [];\n /**\n * An \\@Ouput property that emits an event when a button is selected.\n * ```typescript\n * \\@ViewChild(\"toast\")\n * private toast: IgxToastComponent;\n * public onSelect(buttongroup){\n * this.toast.show()\n * }\n * //...\n * ```\n * ```html\n * \n * \n * ```\n */\n _this.onSelect = new EventEmitter();\n /**\n * An \\@Ouput property that emits an event when a button is deselected.\n * ```typescript\n * \\@ViewChild(\"toast\")\n * private toast: IgxToastComponent;\n * public onUnselect(buttongroup){\n * this.toast.show()\n * }\n * //...\n * ```\n * ```html\n * igx-buttongroup #MyChild [multiSelection]=\"multi\" (onUnselect)=\"onUnselect($event)\">\n * \n * ```\n */\n _this.onUnselect = new EventEmitter();\n return _this;\n }\n Object.defineProperty(IgxButtonGroupComponent.prototype, \"buttons\", {\n /**\n * A collection containing all buttons inside the button group.\n */\n get: /**\n * A collection containing all buttons inside the button group.\n * @return {?}\n */\n function () {\n return __spread(this.viewButtons.toArray(), this.templateButtons.toArray());\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxButtonGroupComponent.prototype, \"itemContentCssClass\", {\n /**\n * Returns the CSS class of the item content of the `IgxButtonGroup`.\n *```typescript\n *@ViewChild(\"MyChild\")\n *public buttonG: IgxButtonGroupComponent;\n *ngAfterViewInit(){\n * let buttonSelect = this.buttonG.itemContentCssClass;\n *}\n *```\n */\n get: /**\n * Returns the CSS class of the item content of the `IgxButtonGroup`.\n * ```typescript\n * \\@ViewChild(\"MyChild\")\n * public buttonG: IgxButtonGroupComponent;\n * ngAfterViewInit(){\n * let buttonSelect = this.buttonG.itemContentCssClass;\n * }\n * ```\n * @return {?}\n */\n function () {\n return this._itemContentCssClass;\n },\n /**\n * Allows you to set a style using the `itemContentCssClass` input.\n * The value should be the CSS class name that will be applied to the button group.\n *```typescript\n *public style1 = \"styleClass\";\n * //..\n *```\n * ```html\n *\n *```\n */\n set: /**\n * Allows you to set a style using the `itemContentCssClass` input.\n * The value should be the CSS class name that will be applied to the button group.\n * ```typescript\n * public style1 = \"styleClass\";\n * //..\n * ```\n * ```html\n * \n * ```\n * @param {?} value\n * @return {?}\n */\n function (value) {\n this._itemContentCssClass = value || this._itemContentCssClass;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxButtonGroupComponent.prototype, \"disabled\", {\n /**\n * An @Input property that allows you to disable the `igx-buttongroup` component. By default it's false.\n * ```html\n * \n * ```\n */\n get: /**\n * An \\@Input property that allows you to disable the `igx-buttongroup` component. By default it's false.\n * ```html\n * \n * ```\n * @return {?}\n */\n function () {\n return this._disabled;\n },\n set: /**\n * @param {?} value\n * @return {?}\n */\n function (value) {\n var _this = this;\n if (this._disabled !== value) {\n this._disabled = value;\n if (this.viewButtons && this.templateButtons) {\n this.buttons.forEach(function (b) { return b.disabled = _this._disabled; });\n }\n }\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxButtonGroupComponent.prototype, \"alignment\", {\n /**\n * Returns the alignment of the `igx-buttongroup`.\n *```typescript\n *@ViewChild(\"MyChild\")\n *public buttonG: IgxButtonGroupComponent;\n *ngAfterViewInit(){\n * let buttonAlignment = this.buttonG.alignment;\n *}\n *```\n */\n get: /**\n * Returns the alignment of the `igx-buttongroup`.\n * ```typescript\n * \\@ViewChild(\"MyChild\")\n * public buttonG: IgxButtonGroupComponent;\n * ngAfterViewInit(){\n * let buttonAlignment = this.buttonG.alignment;\n * }\n * ```\n * @return {?}\n */\n function () {\n return this._isVertical ? ButtonGroupAlignment.vertical : ButtonGroupAlignment.horizontal;\n },\n /**\n * Allows you to set the button group alignment.\n * Available options are `ButtonGroupAlignment.horizontal` (default) and `ButtonGroupAlignment.vertical`.\n * ```typescript\n *public alignment = ButtonGroupAlignment.vertical;\n * //..\n * ```\n * ```html\n *\n * ```\n */\n set: /**\n * Allows you to set the button group alignment.\n * Available options are `ButtonGroupAlignment.horizontal` (default) and `ButtonGroupAlignment.vertical`.\n * ```typescript\n * public alignment = ButtonGroupAlignment.vertical;\n * //..\n * ```\n * ```html\n * \n * ```\n * @param {?} value\n * @return {?}\n */\n function (value) {\n this._isVertical = value === ButtonGroupAlignment.vertical;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxButtonGroupComponent.prototype, \"isVertical\", {\n /**\n * Returns true if the `igx-buttongroup` alignment is vertical.\n * Note that in order for the accessor to work correctly the property should be set explicitly.\n * ```html\n * \n * ```\n * ```typescript\n * //...\n *@ViewChild(\"MyChild\")\n *private buttonG: IgxButtonGroupComponent;\n *ngAfterViewInit(){\n * let orientation = this.buttonG.isVertical;\n *}\n *```\n */\n get: /**\n * Returns true if the `igx-buttongroup` alignment is vertical.\n * Note that in order for the accessor to work correctly the property should be set explicitly.\n * ```html\n * \n * ```\n * ```typescript\n * //...\n * \\@ViewChild(\"MyChild\")\n * private buttonG: IgxButtonGroupComponent;\n * ngAfterViewInit(){\n * let orientation = this.buttonG.isVertical;\n * }\n * ```\n * @return {?}\n */\n function () {\n return this._isVertical;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxButtonGroupComponent.prototype, \"selectedButtons\", {\n /**\n * Gets the selected button/buttons.\n *```typescript\n *@ViewChild(\"MyChild\")\n *private buttonG: IgxButtonGroupComponent;\n *ngAfterViewInit(){\n * let selectedButton = this.buttonG.selectedButtons;\n *}\n *```\n */\n get: /**\n * Gets the selected button/buttons.\n * ```typescript\n * \\@ViewChild(\"MyChild\")\n * private buttonG: IgxButtonGroupComponent;\n * ngAfterViewInit(){\n * let selectedButton = this.buttonG.selectedButtons;\n * }\n * ```\n * @return {?}\n */\n function () {\n var _this = this;\n return this.buttons.filter(function (b, i) {\n return _this.selectedIndexes.indexOf(i) !== -1;\n });\n },\n enumerable: true,\n configurable: true\n });\n /**\n * Selects a button by its index.\n *```typescript\n *@ViewChild(\"MyChild\")\n *private buttonG: IgxButtonGroupComponent;\n *ngAfterViewInit(){\n * this.buttonG.selectButton(2);\n * this.cdr.detectChanges();\n *}\n *```\n * @memberOf {@link IgxButtonGroupComponent}\n */\n /**\n * Selects a button by its index.\n * ```typescript\n * \\@ViewChild(\"MyChild\")\n * private buttonG: IgxButtonGroupComponent;\n * ngAfterViewInit(){\n * this.buttonG.selectButton(2);\n * this.cdr.detectChanges();\n * }\n * ```\n * \\@memberOf {\\@link IgxButtonGroupComponent}\n * @param {?} index\n * @return {?}\n */\n IgxButtonGroupComponent.prototype.selectButton = /**\n * Selects a button by its index.\n * ```typescript\n * \\@ViewChild(\"MyChild\")\n * private buttonG: IgxButtonGroupComponent;\n * ngAfterViewInit(){\n * this.buttonG.selectButton(2);\n * this.cdr.detectChanges();\n * }\n * ```\n * \\@memberOf {\\@link IgxButtonGroupComponent}\n * @param {?} index\n * @return {?}\n */\n function (index) {\n var _this = this;\n if (index >= this.buttons.length || index < 0) {\n return;\n }\n /** @type {?} */\n var button = this.buttons[index];\n /** @type {?} */\n var buttonElement = button.nativeElement;\n this.selectedIndexes.push(index);\n button.selected = true;\n this._renderer.setAttribute(buttonElement, 'aria-pressed', 'true');\n this._renderer.addClass(buttonElement, 'igx-button-group__item--selected');\n this.onSelect.emit({ button: button, index: index });\n /** @type {?} */\n var indexInViewButtons = this.viewButtons.toArray().indexOf(button);\n if (indexInViewButtons !== -1) {\n this.values[indexInViewButtons].selected = true;\n }\n // deselect other buttons if multiSelection is not enabled\n if (!this.multiSelection && this.selectedIndexes.length > 1) {\n this.buttons.forEach(function (b, i) {\n if (i !== index && _this.selectedIndexes.indexOf(i) !== -1) {\n _this.deselectButton(i);\n }\n });\n }\n };\n /**\n * Deselects a button by its index.\n * ```typescript\n *@ViewChild(\"MyChild\")\n *private buttonG: IgxButtonGroupComponent;\n *ngAfterViewInit(){\n * this.buttonG.deselectButton(2);\n * this.cdr.detectChanges();\n *}\n * ```\n * @memberOf {@link IgxButtonGroupComponent}\n */\n /**\n * Deselects a button by its index.\n * ```typescript\n * \\@ViewChild(\"MyChild\")\n * private buttonG: IgxButtonGroupComponent;\n * ngAfterViewInit(){\n * this.buttonG.deselectButton(2);\n * this.cdr.detectChanges();\n * }\n * ```\n * \\@memberOf {\\@link IgxButtonGroupComponent}\n * @param {?} index\n * @return {?}\n */\n IgxButtonGroupComponent.prototype.deselectButton = /**\n * Deselects a button by its index.\n * ```typescript\n * \\@ViewChild(\"MyChild\")\n * private buttonG: IgxButtonGroupComponent;\n * ngAfterViewInit(){\n * this.buttonG.deselectButton(2);\n * this.cdr.detectChanges();\n * }\n * ```\n * \\@memberOf {\\@link IgxButtonGroupComponent}\n * @param {?} index\n * @return {?}\n */\n function (index) {\n if (index >= this.buttons.length || index < 0) {\n return;\n }\n /** @type {?} */\n var button = this.buttons[index];\n /** @type {?} */\n var buttonElement = button.nativeElement;\n this.selectedIndexes.splice(this.selectedIndexes.indexOf(index), 1);\n button.selected = false;\n this._renderer.setAttribute(buttonElement, 'aria-pressed', 'false');\n this._renderer.removeClass(buttonElement, 'igx-button-group__item--selected');\n this.onUnselect.emit({ button: button, index: index });\n /** @type {?} */\n var indexInViewButtons = this.viewButtons.toArray().indexOf(button);\n if (indexInViewButtons !== -1) {\n this.values[indexInViewButtons].selected = false;\n }\n };\n /**\n * @hidden\n */\n /**\n * @hidden\n * @return {?}\n */\n IgxButtonGroupComponent.prototype.ngAfterContentInit = /**\n * @hidden\n * @return {?}\n */\n function () {\n var _this = this;\n this.templateButtons.forEach(function (button) {\n if (!button.initialDensity) {\n button.displayDensity = _this.displayDensity;\n }\n });\n };\n /**\n * @hidden\n */\n /**\n * @hidden\n * @return {?}\n */\n IgxButtonGroupComponent.prototype.ngAfterViewInit = /**\n * @hidden\n * @return {?}\n */\n function () {\n var _this = this;\n /** @type {?} */\n var initButtons = function () {\n // Cancel any existing buttonClick subscriptions\n _this.buttonClickNotifier$.next();\n _this.selectedIndexes.splice(0, _this.selectedIndexes.length);\n // initial configuration\n _this.buttons.forEach(function (button, index) {\n /** @type {?} */\n var buttonElement = button.nativeElement;\n if (_this.disabled) {\n button.disabled = true;\n }\n if (button.selected) {\n _this.selectButton(index);\n }\n button.buttonClick.pipe(takeUntil(_this.buttonClickNotifier$)).subscribe(function (ev) { return _this._clickHandler(ev, index); });\n _this._renderer.addClass(buttonElement, 'igx-button-group__item');\n });\n };\n this.viewButtons.changes.pipe(takeUntil(this.queryListNotifier$)).subscribe(function () { return initButtons(); });\n this.templateButtons.changes.pipe(takeUntil(this.queryListNotifier$)).subscribe(function () { return initButtons(); });\n initButtons();\n this._cdr.detectChanges();\n };\n /**\n * @hidden\n */\n /**\n * @hidden\n * @return {?}\n */\n IgxButtonGroupComponent.prototype.ngOnDestroy = /**\n * @hidden\n * @return {?}\n */\n function () {\n this.buttonClickNotifier$.next();\n this.buttonClickNotifier$.complete();\n this.queryListNotifier$.next();\n this.queryListNotifier$.complete();\n };\n /**\n *@hidden\n */\n /**\n * @hidden\n * @param {?} event\n * @param {?} i\n * @return {?}\n */\n IgxButtonGroupComponent.prototype._clickHandler = /**\n * @hidden\n * @param {?} event\n * @param {?} i\n * @return {?}\n */\n function (event, i) {\n if (this.selectedIndexes.indexOf(i) !== -1) {\n this.deselectButton(i);\n }\n else {\n this.selectButton(i);\n }\n };\n IgxButtonGroupComponent.decorators = [\n { type: Component, args: [{\n selector: 'igx-buttongroup',\n template: \"
\\n \\n \\n
\\n\"\n }] }\n ];\n /** @nocollapse */\n IgxButtonGroupComponent.ctorParameters = function () { return [\n { type: ChangeDetectorRef },\n { type: Renderer2 },\n { type: undefined, decorators: [{ type: Optional }, { type: Inject, args: [DisplayDensityToken,] }] }\n ]; };\n IgxButtonGroupComponent.propDecorators = {\n viewButtons: [{ type: ViewChildren, args: [IgxButtonDirective,] }],\n templateButtons: [{ type: ContentChildren, args: [IgxButtonDirective,] }],\n id: [{ type: HostBinding, args: ['attr.id',] }, { type: Input }],\n zIndex: [{ type: HostBinding, args: ['style.zIndex',] }],\n itemContentCssClass: [{ type: Input }],\n multiSelection: [{ type: Input }],\n values: [{ type: Input }],\n disabled: [{ type: Input }],\n alignment: [{ type: Input }],\n onSelect: [{ type: Output }],\n onUnselect: [{ type: Output }]\n };\n return IgxButtonGroupComponent;\n}(DisplayDensityBase));\n/**\n * @hidden\n */\nvar IgxButtonGroupModule = /** @class */ (function () {\n function IgxButtonGroupModule() {\n }\n IgxButtonGroupModule.decorators = [\n { type: NgModule, args: [{\n declarations: [IgxButtonGroupComponent],\n exports: [IgxButtonGroupComponent],\n imports: [IgxButtonModule, CommonModule, IgxRippleModule, IgxIconModule]\n },] }\n ];\n return IgxButtonGroupModule;\n}());\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n/** @enum {number} */\nvar DateRangeType = {\n After: 0,\n Before: 1,\n Between: 2,\n Specific: 3,\n Weekdays: 4,\n Weekends: 5,\n};\nDateRangeType[DateRangeType.After] = 'After';\nDateRangeType[DateRangeType.Before] = 'Before';\nDateRangeType[DateRangeType.Between] = 'Between';\nDateRangeType[DateRangeType.Specific] = 'Specific';\nDateRangeType[DateRangeType.Weekdays] = 'Weekdays';\nDateRangeType[DateRangeType.Weekends] = 'Weekends';\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n/** @enum {string} */\nvar TimeDeltaInterval = {\n Month: 'month',\n Year: 'year',\n};\n/** @type {?} */\nvar MDAYS = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];\n/** @type {?} */\nvar FEBRUARY = 1;\n/**\n * @param {?=} start\n * @param {?=} stop\n * @param {?=} step\n * @return {?}\n */\nfunction range(start, stop, step) {\n if (start === void 0) { start = 0; }\n if (step === void 0) { step = 1; }\n /** @type {?} */\n var res = [];\n /** @type {?} */\n var cur = (stop === undefined) ? 0 : start;\n /** @type {?} */\n var max = (stop === undefined) ? start : stop;\n for (var i = cur; step < 0 ? i > max : i < max; i += step) {\n res.push(i);\n }\n return res;\n}\n/**\n * Returns true for leap years, false for non-leap years.\n *\n * @export\n * @param {?} year\n * @return {?}\n */\nfunction isLeap(year) {\n return (year % 4 === 0) && ((year % 100 !== 0) || (year % 400 === 0));\n}\n/**\n * @param {?} year\n * @param {?} month\n * @param {?} day\n * @return {?}\n */\nfunction weekDay(year, month, day) {\n return new Date(year, month, day).getDay();\n}\n/**\n * Return weekday and number of days for year, month.\n *\n * @export\n * @param {?} year\n * @param {?} month\n * @return {?}\n */\nfunction monthRange(year, month) {\n if ((month < 0) || (month > 11)) {\n throw new Error('Invalid month specified');\n }\n /** @type {?} */\n var day = weekDay(year, month, 1);\n /** @type {?} */\n var nDays = MDAYS[month];\n if ((month === FEBRUARY) && (isLeap(year))) {\n nDays++;\n }\n return [day, nDays];\n}\n/**\n * @param {?} date\n * @param {?} ranges\n * @return {?}\n */\nfunction isDateInRanges(date, ranges) {\n var e_1, _a, e_2, _b;\n date = new Date(date.getFullYear(), date.getMonth(), date.getDate());\n /** @type {?} */\n var dateInMs = date.getTime();\n if (!ranges) {\n return false;\n }\n try {\n for (var ranges_1 = __values(ranges), ranges_1_1 = ranges_1.next(); !ranges_1_1.done; ranges_1_1 = ranges_1.next()) {\n var descriptor = ranges_1_1.value;\n /** @type {?} */\n var dRanges = descriptor.dateRange ? descriptor.dateRange.map(function (r) { return new Date(r.getFullYear(), r.getMonth(), r.getDate()); }) : undefined;\n switch (descriptor.type) {\n case (DateRangeType.After):\n if (dateInMs > dRanges[0].getTime()) {\n return true;\n }\n break;\n case (DateRangeType.Before):\n if (dateInMs < dRanges[0].getTime()) {\n return true;\n }\n break;\n case (DateRangeType.Between):\n /** @type {?} */\n var dRange = dRanges.map(function (d) { return d.getTime(); });\n /** @type {?} */\n var min = Math.min(dRange[0], dRange[1]);\n /** @type {?} */\n var max = Math.max(dRange[0], dRange[1]);\n if (dateInMs >= min && dateInMs <= max) {\n return true;\n }\n break;\n case (DateRangeType.Specific):\n /** @type {?} */\n var datesInMs = dRanges.map(function (d) { return d.getTime(); });\n try {\n for (var datesInMs_1 = __values(datesInMs), datesInMs_1_1 = datesInMs_1.next(); !datesInMs_1_1.done; datesInMs_1_1 = datesInMs_1.next()) {\n var specificDateInMs = datesInMs_1_1.value;\n if (dateInMs === specificDateInMs) {\n return true;\n }\n }\n }\n catch (e_2_1) { e_2 = { error: e_2_1 }; }\n finally {\n try {\n if (datesInMs_1_1 && !datesInMs_1_1.done && (_b = datesInMs_1.return)) _b.call(datesInMs_1);\n }\n finally { if (e_2) throw e_2.error; }\n }\n break;\n case (DateRangeType.Weekdays):\n /** @type {?} */\n var day = date.getDay();\n if (day % 6 !== 0) {\n return true;\n }\n break;\n case (DateRangeType.Weekends):\n /** @type {?} */\n var weekday = date.getDay();\n if (weekday % 6 === 0) {\n return true;\n }\n break;\n default:\n return false;\n }\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (ranges_1_1 && !ranges_1_1.done && (_a = ranges_1.return)) _a.call(ranges_1);\n }\n finally { if (e_1) throw e_1.error; }\n }\n return false;\n}\n/** @enum {number} */\nvar WEEKDAYS = {\n SUNDAY: 0,\n MONDAY: 1,\n TUESDAY: 2,\n WEDNESDAY: 3,\n THURSDAY: 4,\n FRIDAY: 5,\n SATURDAY: 6,\n};\nWEEKDAYS[WEEKDAYS.SUNDAY] = 'SUNDAY';\nWEEKDAYS[WEEKDAYS.MONDAY] = 'MONDAY';\nWEEKDAYS[WEEKDAYS.TUESDAY] = 'TUESDAY';\nWEEKDAYS[WEEKDAYS.WEDNESDAY] = 'WEDNESDAY';\nWEEKDAYS[WEEKDAYS.THURSDAY] = 'THURSDAY';\nWEEKDAYS[WEEKDAYS.FRIDAY] = 'FRIDAY';\nWEEKDAYS[WEEKDAYS.SATURDAY] = 'SATURDAY';\nvar Calendar = /** @class */ (function () {\n function Calendar(firstWeekDay) {\n if (firstWeekDay === void 0) { firstWeekDay = WEEKDAYS.SUNDAY; }\n this._firstWeekDay = firstWeekDay;\n }\n Object.defineProperty(Calendar.prototype, \"firstWeekDay\", {\n get: /**\n * @return {?}\n */\n function () {\n return this._firstWeekDay % 7;\n },\n set: /**\n * @param {?} value\n * @return {?}\n */\n function (value) {\n this._firstWeekDay = value;\n },\n enumerable: true,\n configurable: true\n });\n /**\n * Returns an array of weekdays for one week starting\n * with the currently set `firstWeekDay`\n *\n * this.firstWeekDay = 0 (Sunday) --> [0, 1, 2, 3, 4, 5, 6]\n * this.firstWeekDay = 1 (Monday) --> [1, 2, 3, 4, 5, 6, 0]\n *\n * @returns\n *\n * @memberof Calendar\n */\n /**\n * Returns an array of weekdays for one week starting\n * with the currently set `firstWeekDay`\n *\n * this.firstWeekDay = 0 (Sunday) --> [0, 1, 2, 3, 4, 5, 6]\n * this.firstWeekDay = 1 (Monday) --> [1, 2, 3, 4, 5, 6, 0]\n *\n * \\@memberof Calendar\n * @return {?}\n *\n */\n Calendar.prototype.weekdays = /**\n * Returns an array of weekdays for one week starting\n * with the currently set `firstWeekDay`\n *\n * this.firstWeekDay = 0 (Sunday) --> [0, 1, 2, 3, 4, 5, 6]\n * this.firstWeekDay = 1 (Monday) --> [1, 2, 3, 4, 5, 6, 0]\n *\n * \\@memberof Calendar\n * @return {?}\n *\n */\n function () {\n var e_3, _a;\n /** @type {?} */\n var res = [];\n try {\n for (var _b = __values(range(this.firstWeekDay, this.firstWeekDay + 7)), _c = _b.next(); !_c.done; _c = _b.next()) {\n var i = _c.value;\n res.push(i % 7);\n }\n }\n catch (e_3_1) { e_3 = { error: e_3_1 }; }\n finally {\n try {\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n }\n finally { if (e_3) throw e_3.error; }\n }\n return res;\n };\n /**\n * Returns the date values for one month. It will always iterate throught\n * complete weeks, so it will contain dates outside the specified month.\n *\n * @param year\n * @param month\n * @param boolean\n * @returns\n *\n * @memberof Calendar\n */\n /**\n * Returns the date values for one month. It will always iterate throught\n * complete weeks, so it will contain dates outside the specified month.\n *\n * \\@memberof Calendar\n * @param {?} year\n * @param {?} month\n * @param {?=} extraWeek\n * @return {?}\n *\n */\n Calendar.prototype.monthdates = /**\n * Returns the date values for one month. It will always iterate throught\n * complete weeks, so it will contain dates outside the specified month.\n *\n * \\@memberof Calendar\n * @param {?} year\n * @param {?} month\n * @param {?=} extraWeek\n * @return {?}\n *\n */\n function (year, month, extraWeek) {\n var e_4, _a;\n if (extraWeek === void 0) { extraWeek = false; }\n /** @type {?} */\n var date = new Date(year, month, 1);\n /** @type {?} */\n var days = (date.getDay() - this.firstWeekDay) % 7;\n if (days < 0) {\n days = 7 - Math.abs(days);\n }\n date = this.timedelta(date, 'day', -days);\n /** @type {?} */\n var res = [];\n /** @type {?} */\n var value;\n while (true) {\n value = this.generateICalendarDate(date, year, month);\n res.push(value);\n date = this.timedelta(date, 'day', 1);\n if ((date.getMonth() !== month) && (date.getDay() === this.firstWeekDay)) {\n if (extraWeek && res.length <= 35) {\n try {\n for (var _b = __values(range(0, 7)), _c = _b.next(); !_c.done; _c = _b.next()) {\n var _ = _c.value;\n value = this.generateICalendarDate(date, year, month);\n res.push(value);\n date = this.timedelta(date, 'day', 1);\n }\n }\n catch (e_4_1) { e_4 = { error: e_4_1 }; }\n finally {\n try {\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n }\n finally { if (e_4) throw e_4.error; }\n }\n }\n break;\n }\n }\n return res;\n };\n /**\n * Returns a matrix (array of arrays) representing a month's calendar.\n * Each row represents a full week; week entries are ICalendarDate objects.\n *\n * @param year\n * @param month\n * @returns\n *\n * @memberof Calendar\n */\n /**\n * Returns a matrix (array of arrays) representing a month's calendar.\n * Each row represents a full week; week entries are ICalendarDate objects.\n *\n * \\@memberof Calendar\n * @param {?} year\n * @param {?} month\n * @param {?=} extraWeek\n * @return {?}\n *\n */\n Calendar.prototype.monthdatescalendar = /**\n * Returns a matrix (array of arrays) representing a month's calendar.\n * Each row represents a full week; week entries are ICalendarDate objects.\n *\n * \\@memberof Calendar\n * @param {?} year\n * @param {?} month\n * @param {?=} extraWeek\n * @return {?}\n *\n */\n function (year, month, extraWeek) {\n var e_5, _a;\n if (extraWeek === void 0) { extraWeek = false; }\n /** @type {?} */\n var dates = this.monthdates(year, month, extraWeek);\n /** @type {?} */\n var res = [];\n try {\n for (var _b = __values(range(0, dates.length, 7)), _c = _b.next(); !_c.done; _c = _b.next()) {\n var i = _c.value;\n res.push(dates.slice(i, i + 7));\n }\n }\n catch (e_5_1) { e_5 = { error: e_5_1 }; }\n finally {\n try {\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n }\n finally { if (e_5) throw e_5.error; }\n }\n return res;\n };\n /**\n * @param {?} date\n * @param {?} interval\n * @param {?} units\n * @return {?}\n */\n Calendar.prototype.timedelta = /**\n * @param {?} date\n * @param {?} interval\n * @param {?} units\n * @return {?}\n */\n function (date, interval, units) {\n /** @type {?} */\n var ret = new Date(date);\n /** @type {?} */\n var checkRollover = function () {\n if (ret.getDate() !== date.getDate()) {\n ret.setDate(0);\n }\n };\n switch (interval.toLowerCase()) {\n case 'year':\n ret.setFullYear(ret.getFullYear() + units);\n checkRollover();\n break;\n case 'quarter':\n ret.setMonth(ret.getMonth() + 3 * units);\n checkRollover();\n break;\n case 'month':\n ret.setMonth(ret.getMonth() + units);\n checkRollover();\n break;\n case 'week':\n ret.setDate(ret.getDate() + 7 * units);\n break;\n case 'day':\n ret.setDate(ret.getDate() + units);\n break;\n case 'hour':\n ret.setTime(ret.getTime() + units * 3600000);\n break;\n case 'minute':\n ret.setTime(ret.getTime() + units * 60000);\n break;\n case 'second':\n ret.setTime(ret.getTime() + units * 1000);\n break;\n default:\n throw new Error('Invalid interval specifier');\n }\n return ret;\n };\n /**\n * @param {?} date\n * @param {?} locale\n * @param {?} options\n * @param {?} parts\n * @return {?}\n */\n Calendar.prototype.formatToParts = /**\n * @param {?} date\n * @param {?} locale\n * @param {?} options\n * @param {?} parts\n * @return {?}\n */\n function (date, locale, options, parts) {\n var e_6, _a, e_7, _b;\n /** @type {?} */\n var formatter = new Intl.DateTimeFormat(locale, options);\n /** @type {?} */\n var result = {\n date: date,\n full: formatter.format(date)\n };\n if (((/** @type {?} */ (formatter))).formatToParts) {\n /** @type {?} */\n var formattedParts_1 = ((/** @type {?} */ (formatter))).formatToParts(date);\n /** @type {?} */\n var toType = function (partType) {\n /** @type {?} */\n var index = formattedParts_1.findIndex(function (_a) {\n var type = _a.type;\n return type === partType;\n });\n /** @type {?} */\n var o = { value: '', literal: '', combined: '' };\n if (partType === 'era' && index > -1) {\n o.value = formattedParts_1[index].value;\n return o;\n }\n else if (partType === 'era' && index === -1) {\n return o;\n }\n o.value = formattedParts_1[index].value;\n o.literal = formattedParts_1[index + 1] ? formattedParts_1[index + 1].value : '';\n o.combined = [o.value, o.literal].join('');\n return o;\n };\n try {\n for (var parts_1 = __values(parts), parts_1_1 = parts_1.next(); !parts_1_1.done; parts_1_1 = parts_1.next()) {\n var each = parts_1_1.value;\n result[each] = toType(each);\n }\n }\n catch (e_6_1) { e_6 = { error: e_6_1 }; }\n finally {\n try {\n if (parts_1_1 && !parts_1_1.done && (_a = parts_1.return)) _a.call(parts_1);\n }\n finally { if (e_6) throw e_6.error; }\n }\n }\n else {\n try {\n for (var parts_2 = __values(parts), parts_2_1 = parts_2.next(); !parts_2_1.done; parts_2_1 = parts_2.next()) {\n var each = parts_2_1.value;\n result[each] = { value: '', literal: '', combined: '' };\n }\n }\n catch (e_7_1) { e_7 = { error: e_7_1 }; }\n finally {\n try {\n if (parts_2_1 && !parts_2_1.done && (_b = parts_2.return)) _b.call(parts_2);\n }\n finally { if (e_7) throw e_7.error; }\n }\n }\n return result;\n };\n /**\n * @param {?} date\n * @param {?} interval\n * @param {?} activeViewIdx\n * @return {?}\n */\n Calendar.prototype.getFirstViewDate = /**\n * @param {?} date\n * @param {?} interval\n * @param {?} activeViewIdx\n * @return {?}\n */\n function (date, interval, activeViewIdx) {\n return this.timedelta(date, interval, -activeViewIdx);\n };\n /**\n * @param {?} date\n * @return {?}\n */\n Calendar.prototype.getNextMonth = /**\n * @param {?} date\n * @return {?}\n */\n function (date) {\n return this.timedelta(date, TimeDeltaInterval.Month, 1);\n };\n /**\n * @param {?} date\n * @return {?}\n */\n Calendar.prototype.getPrevMonth = /**\n * @param {?} date\n * @return {?}\n */\n function (date) {\n return this.timedelta(date, TimeDeltaInterval.Month, -1);\n };\n /**\n * @param {?} date\n * @return {?}\n */\n Calendar.prototype.getNextYear = /**\n * @param {?} date\n * @return {?}\n */\n function (date) {\n return this.timedelta(date, TimeDeltaInterval.Year, 1);\n };\n /**\n * @param {?} date\n * @return {?}\n */\n Calendar.prototype.getPrevYear = /**\n * @param {?} date\n * @return {?}\n */\n function (date) {\n return this.timedelta(date, TimeDeltaInterval.Year, -1);\n };\n /**\n * @private\n * @param {?} date\n * @param {?} year\n * @param {?} month\n * @return {?}\n */\n Calendar.prototype.generateICalendarDate = /**\n * @private\n * @param {?} date\n * @param {?} year\n * @param {?} month\n * @return {?}\n */\n function (date, year, month) {\n return {\n date: date,\n isCurrentMonth: date.getFullYear() === year && date.getMonth() === month,\n isNextMonth: this.isNextMonth(date, year, month),\n isPrevMonth: this.isPreviousMonth(date, year, month)\n };\n };\n /**\n * @private\n * @param {?} date\n * @param {?} year\n * @param {?} month\n * @return {?}\n */\n Calendar.prototype.isPreviousMonth = /**\n * @private\n * @param {?} date\n * @param {?} year\n * @param {?} month\n * @return {?}\n */\n function (date, year, month) {\n if (date.getFullYear() === year) {\n return date.getMonth() < month;\n }\n return date.getFullYear() < year;\n };\n /**\n * @private\n * @param {?} date\n * @param {?} year\n * @param {?} month\n * @return {?}\n */\n Calendar.prototype.isNextMonth = /**\n * @private\n * @param {?} date\n * @param {?} year\n * @param {?} month\n * @return {?}\n */\n function (date, year, month) {\n if (date.getFullYear() === year) {\n return date.getMonth() > month;\n }\n return date.getFullYear() > year;\n };\n return Calendar;\n}());\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n/**\n * @hidden\n */\nvar IgxCalendarYearDirective = /** @class */ (function () {\n function IgxCalendarYearDirective() {\n this.onYearSelection = new EventEmitter();\n }\n Object.defineProperty(IgxCalendarYearDirective.prototype, \"defaultCSS\", {\n get: /**\n * @return {?}\n */\n function () {\n return !this.isCurrentYear;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxCalendarYearDirective.prototype, \"currentCSS\", {\n get: /**\n * @return {?}\n */\n function () {\n return this.isCurrentYear;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxCalendarYearDirective.prototype, \"isCurrentYear\", {\n get: /**\n * @return {?}\n */\n function () {\n return this.date.getFullYear() === this.value.getFullYear();\n },\n enumerable: true,\n configurable: true\n });\n /**\n * @return {?}\n */\n IgxCalendarYearDirective.prototype.onClick = /**\n * @return {?}\n */\n function () {\n this.onYearSelection.emit(this.value);\n };\n IgxCalendarYearDirective.decorators = [\n { type: Directive, args: [{\n selector: '[igxCalendarYear]'\n },] }\n ];\n IgxCalendarYearDirective.propDecorators = {\n value: [{ type: Input, args: ['igxCalendarYear',] }],\n date: [{ type: Input }],\n onYearSelection: [{ type: Output }],\n defaultCSS: [{ type: HostBinding, args: ['class.igx-calendar__year',] }],\n currentCSS: [{ type: HostBinding, args: ['class.igx-calendar__year--current',] }],\n onClick: [{ type: HostListener, args: ['click',] }]\n };\n return IgxCalendarYearDirective;\n}());\nvar IgxCalendarMonthDirective = /** @class */ (function () {\n function IgxCalendarMonthDirective(elementRef) {\n this.elementRef = elementRef;\n this.onMonthSelection = new EventEmitter();\n this.tabindex = 0;\n }\n Object.defineProperty(IgxCalendarMonthDirective.prototype, \"defaultCSS\", {\n get: /**\n * @return {?}\n */\n function () {\n return !this.isCurrentMonth;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxCalendarMonthDirective.prototype, \"currentCSS\", {\n get: /**\n * @return {?}\n */\n function () {\n return this.isCurrentMonth;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxCalendarMonthDirective.prototype, \"isCurrentMonth\", {\n get: /**\n * @return {?}\n */\n function () {\n return this.date.getMonth() === this.value.getMonth();\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxCalendarMonthDirective.prototype, \"nativeElement\", {\n get: /**\n * @return {?}\n */\n function () {\n return this.elementRef.nativeElement;\n },\n enumerable: true,\n configurable: true\n });\n /**\n * @return {?}\n */\n IgxCalendarMonthDirective.prototype.onClick = /**\n * @return {?}\n */\n function () {\n /** @type {?} */\n var date = new Date(this.value.getFullYear(), this.value.getMonth(), this.date.getDate());\n this.onMonthSelection.emit(date);\n };\n IgxCalendarMonthDirective.decorators = [\n { type: Directive, args: [{\n selector: '[igxCalendarMonth]'\n },] }\n ];\n /** @nocollapse */\n IgxCalendarMonthDirective.ctorParameters = function () { return [\n { type: ElementRef }\n ]; };\n IgxCalendarMonthDirective.propDecorators = {\n value: [{ type: Input, args: ['igxCalendarMonth',] }],\n date: [{ type: Input }],\n index: [{ type: Input }],\n onMonthSelection: [{ type: Output }],\n tabindex: [{ type: HostBinding, args: ['attr.tabindex',] }],\n defaultCSS: [{ type: HostBinding, args: ['class.igx-calendar__month',] }],\n currentCSS: [{ type: HostBinding, args: ['class.igx-calendar__month--current',] }],\n onClick: [{ type: HostListener, args: ['click',] }]\n };\n return IgxCalendarMonthDirective;\n}());\n/**\n * @hidden\n */\nvar IgxCalendarHeaderTemplateDirective = /** @class */ (function () {\n function IgxCalendarHeaderTemplateDirective(template) {\n this.template = template;\n }\n IgxCalendarHeaderTemplateDirective.decorators = [\n { type: Directive, args: [{\n selector: '[igxCalendarHeader]'\n },] }\n ];\n /** @nocollapse */\n IgxCalendarHeaderTemplateDirective.ctorParameters = function () { return [\n { type: TemplateRef }\n ]; };\n return IgxCalendarHeaderTemplateDirective;\n}());\n/**\n * @hidden\n */\nvar IgxCalendarSubheaderTemplateDirective = /** @class */ (function () {\n function IgxCalendarSubheaderTemplateDirective(template) {\n this.template = template;\n }\n IgxCalendarSubheaderTemplateDirective.decorators = [\n { type: Directive, args: [{\n selector: '[igxCalendarSubheader]'\n },] }\n ];\n /** @nocollapse */\n IgxCalendarSubheaderTemplateDirective.ctorParameters = function () { return [\n { type: TemplateRef }\n ]; };\n return IgxCalendarSubheaderTemplateDirective;\n}());\n/**\n * @hidden\n */\nvar IgxCalendarScrollMonthDirective = /** @class */ (function () {\n function IgxCalendarScrollMonthDirective(element, zone) {\n this.element = element;\n this.zone = zone;\n /**\n * @hidden\n */\n this.destroy$ = new Subject();\n }\n /**\n * @hidden\n */\n /**\n * @hidden\n * @return {?}\n */\n IgxCalendarScrollMonthDirective.prototype.ngAfterViewInit = /**\n * @hidden\n * @return {?}\n */\n function () {\n var _this = this;\n fromEvent(this.element.nativeElement, 'keyup').pipe(debounce(function () { return interval(100); }), takeUntil(this.destroy$)).subscribe(function (event) {\n _this.stopScroll(event);\n });\n this.zone.runOutsideAngular(function () {\n fromEvent(_this.element.nativeElement, 'keydown').pipe(tap(function (event) {\n if (event.key === \" \" /* SPACE */ || event.key === \"Spacebar\" /* SPACE_IE */ || event.key === \"Enter\" /* ENTER */) {\n event.preventDefault();\n event.stopPropagation();\n }\n }), debounce(function () { return interval(100); }), takeUntil(_this.destroy$)).subscribe(function (event) {\n if (event.key === \" \" /* SPACE */ || event.key === \"Spacebar\" /* SPACE_IE */ || event.key === \"Enter\" /* ENTER */) {\n _this.zone.run(function () { return _this.startScroll(true); });\n }\n });\n });\n };\n /**\n * @hidden\n */\n /**\n * @hidden\n * @return {?}\n */\n IgxCalendarScrollMonthDirective.prototype.ngOnDestroy = /**\n * @hidden\n * @return {?}\n */\n function () {\n this.destroy$.next(true);\n this.destroy$.complete();\n };\n /**\n * @hidden\n */\n /**\n * @hidden\n * @return {?}\n */\n IgxCalendarScrollMonthDirective.prototype.onMouseDown = /**\n * @hidden\n * @return {?}\n */\n function () {\n this.startScroll();\n };\n /**\n * @hidden\n */\n /**\n * @hidden\n * @param {?} event\n * @return {?}\n */\n IgxCalendarScrollMonthDirective.prototype.onMouseUp = /**\n * @hidden\n * @param {?} event\n * @return {?}\n */\n function (event) {\n this.stopScroll(event);\n };\n IgxCalendarScrollMonthDirective.decorators = [\n { type: Directive, args: [{\n selector: '[igxCalendarScrollMonth]'\n },] }\n ];\n /** @nocollapse */\n IgxCalendarScrollMonthDirective.ctorParameters = function () { return [\n { type: ElementRef },\n { type: NgZone }\n ]; };\n IgxCalendarScrollMonthDirective.propDecorators = {\n startScroll: [{ type: Input }],\n stopScroll: [{ type: Input }],\n onMouseDown: [{ type: HostListener, args: ['mousedown',] }],\n onMouseUp: [{ type: HostListener, args: ['mouseup', ['$event'],] }]\n };\n return IgxCalendarScrollMonthDirective;\n}());\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n/** @enum {string} */\nvar CalendarSelection = {\n SINGLE: 'single',\n MULTI: 'multi',\n RANGE: 'range',\n};\n/** @enum {string} */\nvar ScrollMonth = {\n PREV: 'prev',\n NEXT: 'next',\n NONE: 'none',\n};\nvar IgxCalendarBase = /** @class */ (function () {\n /**\n * @hidden\n */\n function IgxCalendarBase() {\n /**\n * Sets/gets whether the outside dates (dates that are out of the current month) will be hidden.\n * Default value is `false`.\n * ```html\n * \n * ```\n * ```typescript\n * let hideOutsideDays = this.calendar.hideOutsideDays;\n * ```\n */\n this.hideOutsideDays = false;\n /**\n * Emits an event when a date is selected.\n * Provides reference the `selectedDates` property.\n */\n this.onSelection = new EventEmitter();\n /**\n * @hidden\n */\n this._selection = CalendarSelection.SINGLE;\n /**\n * @hidden\n */\n this.rangeStarted = false;\n /**\n * @hidden\n */\n this._locale = 'en';\n /**\n * @hidden\n */\n this._disabledDates = null;\n /**\n * @hidden\n */\n this._specialDates = null;\n /**\n * @hidden\n */\n this._formatOptions = {\n day: 'numeric',\n month: 'short',\n weekday: 'short',\n year: 'numeric'\n };\n /**\n * @hidden\n */\n this._formatViews = {\n day: false,\n month: true,\n year: false\n };\n /**\n * @hidden\n */\n this.monthScrollDirection = ScrollMonth.NONE;\n /**\n * @hidden\n */\n this.scrollMonth$ = new Subject();\n /**\n * @hidden\n */\n this.stopMonthScroll$ = new Subject();\n /**\n * @hidden\n */\n this.startMonthScroll$ = new Subject();\n /**\n * @hidden\n */\n this._onTouchedCallback = function () { };\n /**\n * @hidden\n */\n this._onChangeCallback = function () { };\n this.calendarModel = new Calendar();\n this.viewDate = this.viewDate ? this.viewDate : new Date();\n this.calendarModel.firstWeekDay = this.weekStart;\n this.initFormatters();\n }\n Object.defineProperty(IgxCalendarBase.prototype, \"weekStart\", {\n /**\n * Gets the start day of the week.\n * Can return a numeric or an enum representation of the week day.\n * Defaults to `Sunday` / `0`.\n */\n get: /**\n * Gets the start day of the week.\n * Can return a numeric or an enum representation of the week day.\n * Defaults to `Sunday` / `0`.\n * @return {?}\n */\n function () {\n return this.calendarModel.firstWeekDay;\n },\n /**\n * Sets the start day of the week.\n * Can be assigned to a numeric value or to `WEEKDAYS` enum value.\n */\n set: /**\n * Sets the start day of the week.\n * Can be assigned to a numeric value or to `WEEKDAYS` enum value.\n * @param {?} value\n * @return {?}\n */\n function (value) {\n this.calendarModel.firstWeekDay = value;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxCalendarBase.prototype, \"locale\", {\n /**\n * Gets the `locale` of the calendar.\n * Default value is `\"en\"`.\n */\n get: /**\n * Gets the `locale` of the calendar.\n * Default value is `\"en\"`.\n * @return {?}\n */\n function () {\n return this._locale;\n },\n /**\n * Sets the `locale` of the calendar.\n * Expects a valid BCP 47 language tag.\n * Default value is `\"en\"`.\n */\n set: /**\n * Sets the `locale` of the calendar.\n * Expects a valid BCP 47 language tag.\n * Default value is `\"en\"`.\n * @param {?} value\n * @return {?}\n */\n function (value) {\n this._locale = value;\n this.initFormatters();\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxCalendarBase.prototype, \"formatOptions\", {\n /**\n * Gets the date format options of the days view.\n */\n get: /**\n * Gets the date format options of the days view.\n * @return {?}\n */\n function () {\n return this._formatOptions;\n },\n /**\n * Sets the date format options of the days view.\n * Default is { day: 'numeric', month: 'short', weekday: 'short', year: 'numeric' }\n */\n set: /**\n * Sets the date format options of the days view.\n * Default is { day: 'numeric', month: 'short', weekday: 'short', year: 'numeric' }\n * @param {?} formatOptions\n * @return {?}\n */\n function (formatOptions) {\n this._formatOptions = Object.assign(this._formatOptions, formatOptions);\n this.initFormatters();\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxCalendarBase.prototype, \"formatViews\", {\n /**\n * Gets whether the `day`, `month` and `year` should be rendered\n * according to the locale and formatOptions, if any.\n */\n get: /**\n * Gets whether the `day`, `month` and `year` should be rendered\n * according to the locale and formatOptions, if any.\n * @return {?}\n */\n function () {\n return this._formatViews;\n },\n /**\n * Gets whether the `day`, `month` and `year` should be rendered\n * according to the locale and formatOptions, if any.\n */\n set: /**\n * Gets whether the `day`, `month` and `year` should be rendered\n * according to the locale and formatOptions, if any.\n * @param {?} formatViews\n * @return {?}\n */\n function (formatViews) {\n this._formatViews = Object.assign(this._formatViews, formatViews);\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxCalendarBase.prototype, \"selection\", {\n /**\n *\n * Gets the selection type.\n * Default value is `\"single\"`.\n * Changing the type of selection resets the currently\n * selected values if any.\n */\n get: /**\n *\n * Gets the selection type.\n * Default value is `\"single\"`.\n * Changing the type of selection resets the currently\n * selected values if any.\n * @return {?}\n */\n function () {\n return this._selection;\n },\n /**\n * Sets the selection.\n */\n set: /**\n * Sets the selection.\n * @param {?} value\n * @return {?}\n */\n function (value) {\n switch (value) {\n case CalendarSelection.SINGLE:\n this.selectedDates = null;\n break;\n case CalendarSelection.MULTI:\n case CalendarSelection.RANGE:\n this.selectedDates = [];\n break;\n default:\n throw new Error('Invalid selection value');\n }\n this._onChangeCallback(this.selectedDates);\n this.rangeStarted = false;\n this._selection = value;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxCalendarBase.prototype, \"value\", {\n /**\n * Gets the selected date(s).\n *\n * When selection is set to `single`, it returns\n * a single `Date` object.\n * Otherwise it is an array of `Date` objects.\n */\n get: /**\n * Gets the selected date(s).\n *\n * When selection is set to `single`, it returns\n * a single `Date` object.\n * Otherwise it is an array of `Date` objects.\n * @return {?}\n */\n function () {\n return this.selectedDates;\n },\n /**\n * Sets the selected date(s).\n *\n * When selection is set to `single`, it accepts\n * a single `Date` object.\n * Otherwise it is an array of `Date` objects.\n */\n set: /**\n * Sets the selected date(s).\n *\n * When selection is set to `single`, it accepts\n * a single `Date` object.\n * Otherwise it is an array of `Date` objects.\n * @param {?} value\n * @return {?}\n */\n function (value) {\n if (!value || !!value && ((/** @type {?} */ (value))).length === 0) {\n return;\n }\n this.selectDate(value);\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxCalendarBase.prototype, \"viewDate\", {\n /**\n * Gets the date that is presented.\n * By default it is the current date.\n */\n get: /**\n * Gets the date that is presented.\n * By default it is the current date.\n * @return {?}\n */\n function () {\n return this._viewDate;\n },\n /**\n * Sets the date that will be presented in the default view when the component renders.\n */\n set: /**\n * Sets the date that will be presented in the default view when the component renders.\n * @param {?} value\n * @return {?}\n */\n function (value) {\n this._viewDate = this.getDateOnly(value);\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxCalendarBase.prototype, \"disabledDates\", {\n /**\n * Gets the disabled dates descriptors.\n */\n get: /**\n * Gets the disabled dates descriptors.\n * @return {?}\n */\n function () {\n return this._disabledDates;\n },\n /**\n * Sets the disabled dates' descriptors.\n * ```typescript\n *@ViewChild(\"MyCalendar\")\n *public calendar: IgxCalendarComponent;\n *ngOnInit(){\n * this.calendar.disabledDates = [\n * {type: DateRangeType.Between, dateRange: [new Date(\"2020-1-1\"), new Date(\"2020-1-15\")]},\n * {type: DateRangeType.Weekends}];\n *}\n *```\n */\n set: /**\n * Sets the disabled dates' descriptors.\n * ```typescript\n * \\@ViewChild(\"MyCalendar\")\n * public calendar: IgxCalendarComponent;\n * ngOnInit(){\n * this.calendar.disabledDates = [\n * {type: DateRangeType.Between, dateRange: [new Date(\"2020-1-1\"), new Date(\"2020-1-15\")]},\n * {type: DateRangeType.Weekends}];\n * }\n * ```\n * @param {?} value\n * @return {?}\n */\n function (value) {\n this._disabledDates = value;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxCalendarBase.prototype, \"specialDates\", {\n /**\n * Gets the special dates descriptors.\n */\n get: /**\n * Gets the special dates descriptors.\n * @return {?}\n */\n function () {\n return this._specialDates;\n },\n /**\n * Sets the special dates' descriptors.\n * ```typescript\n *@ViewChild(\"MyCalendar\")\n *public calendar: IgxCalendarComponent;\n *ngOnInit(){\n * this.calendar.specialDates = [\n * {type: DateRangeType.Between, dateRange: [new Date(\"2020-1-1\"), new Date(\"2020-1-15\")]},\n * {type: DateRangeType.Weekends}];\n *}\n *```\n */\n set: /**\n * Sets the special dates' descriptors.\n * ```typescript\n * \\@ViewChild(\"MyCalendar\")\n * public calendar: IgxCalendarComponent;\n * ngOnInit(){\n * this.calendar.specialDates = [\n * {type: DateRangeType.Between, dateRange: [new Date(\"2020-1-1\"), new Date(\"2020-1-15\")]},\n * {type: DateRangeType.Weekends}];\n * }\n * ```\n * @param {?} value\n * @return {?}\n */\n function (value) {\n this._specialDates = value;\n },\n enumerable: true,\n configurable: true\n });\n /**\n *@hidden\n */\n /**\n * @hidden\n * @private\n * @param {?} date\n * @return {?}\n */\n IgxCalendarBase.prototype.getDateOnlyInMs = /**\n * @hidden\n * @private\n * @param {?} date\n * @return {?}\n */\n function (date) {\n return this.getDateOnly(date).getTime();\n };\n /**\n *@hidden\n */\n /**\n * @hidden\n * @private\n * @param {?} start\n * @param {?} end\n * @return {?}\n */\n IgxCalendarBase.prototype.generateDateRange = /**\n * @hidden\n * @private\n * @param {?} start\n * @param {?} end\n * @return {?}\n */\n function (start, end) {\n /** @type {?} */\n var result = [];\n start = this.getDateOnly(start);\n end = this.getDateOnly(end);\n while (start.getTime() < end.getTime()) {\n start = this.calendarModel.timedelta(start, 'day', 1);\n result.push(start);\n }\n return result;\n };\n /**\n * Performs a single selection.\n * @hidden\n */\n /**\n * Performs a single selection.\n * @hidden\n * @private\n * @param {?} value\n * @return {?}\n */\n IgxCalendarBase.prototype.selectSingle = /**\n * Performs a single selection.\n * @hidden\n * @private\n * @param {?} value\n * @return {?}\n */\n function (value) {\n this.selectedDates = this.getDateOnly(value);\n this._onChangeCallback(this.selectedDates);\n };\n /**\n * Performs a multiple selection\n * @hidden\n */\n /**\n * Performs a multiple selection\n * @hidden\n * @private\n * @param {?} value\n * @return {?}\n */\n IgxCalendarBase.prototype.selectMultiple = /**\n * Performs a multiple selection\n * @hidden\n * @private\n * @param {?} value\n * @return {?}\n */\n function (value) {\n var _this = this;\n if (Array.isArray(value)) {\n /** @type {?} */\n var newDates = value.map(function (v) { return _this.getDateOnly(v).getTime(); });\n /** @type {?} */\n var selDates = this.selectedDates.map(function (v) { return _this.getDateOnly(v).getTime(); });\n if (JSON.stringify(newDates) === JSON.stringify(selDates)) {\n return;\n }\n this.selectedDates = Array.from(new Set(__spread(newDates, selDates))).map(function (v) { return new Date(v); });\n }\n else {\n /** @type {?} */\n var valueDateOnly_1 = this.getDateOnly(value);\n /** @type {?} */\n var newSelection = [];\n if (this.selectedDates.every(function (date) { return date.getTime() !== valueDateOnly_1.getTime(); })) {\n newSelection.push(valueDateOnly_1);\n }\n else {\n this.selectedDates = this.selectedDates.filter(function (date) { return date.getTime() !== valueDateOnly_1.getTime(); });\n }\n if (newSelection.length > 0) {\n this.selectedDates = this.selectedDates.concat(newSelection);\n }\n }\n this.selectedDates = this.selectedDates.filter(function (d) { return !_this.isDateDisabled(d); });\n this.selectedDates.sort(function (a, b) { return a.valueOf() - b.valueOf(); });\n this._onChangeCallback(this.selectedDates);\n };\n /**\n *@hidden\n */\n /**\n * @hidden\n * @private\n * @param {?} value\n * @param {?=} excludeDisabledDates\n * @return {?}\n */\n IgxCalendarBase.prototype.selectRange = /**\n * @hidden\n * @private\n * @param {?} value\n * @param {?=} excludeDisabledDates\n * @return {?}\n */\n function (value, excludeDisabledDates) {\n var _this = this;\n if (excludeDisabledDates === void 0) { excludeDisabledDates = false; }\n /** @type {?} */\n var start;\n /** @type {?} */\n var end;\n if (Array.isArray(value)) {\n // this.rangeStarted = false;\n value.sort(function (a, b) { return a.valueOf() - b.valueOf(); });\n start = this.getDateOnly(value[0]);\n end = this.getDateOnly(value[value.length - 1]);\n this.selectedDates = __spread([start], this.generateDateRange(start, end));\n }\n else {\n if (!this.rangeStarted) {\n this.rangeStarted = true;\n this.selectedDates = [value];\n }\n else {\n this.rangeStarted = false;\n if (this.selectedDates[0].getTime() === value.getTime()) {\n this.selectedDates = [];\n this._onChangeCallback(this.selectedDates);\n return;\n }\n this.selectedDates.push(value);\n this.selectedDates.sort(function (a, b) { return a.valueOf() - b.valueOf(); });\n start = this.selectedDates.shift();\n end = this.selectedDates.pop();\n this.selectedDates = __spread([start], this.generateDateRange(start, end));\n }\n }\n if (excludeDisabledDates) {\n this.selectedDates = this.selectedDates.filter(function (d) { return !_this.isDateDisabled(d); });\n }\n this._onChangeCallback(this.selectedDates);\n };\n /**\n * Performs a single deselection.\n * @hidden\n */\n /**\n * Performs a single deselection.\n * @hidden\n * @private\n * @param {?} value\n * @return {?}\n */\n IgxCalendarBase.prototype.deselectSingle = /**\n * Performs a single deselection.\n * @hidden\n * @private\n * @param {?} value\n * @return {?}\n */\n function (value) {\n if (this.selectedDates !== null &&\n this.getDateOnlyInMs((/** @type {?} */ (value))) === this.getDateOnlyInMs(this.selectedDates)) {\n this.selectedDates = null;\n this._onChangeCallback(this.selectedDates);\n }\n };\n /**\n * Performs a multiple deselection.\n * @hidden\n */\n /**\n * Performs a multiple deselection.\n * @hidden\n * @private\n * @param {?} value\n * @return {?}\n */\n IgxCalendarBase.prototype.deselectMultiple = /**\n * Performs a multiple deselection.\n * @hidden\n * @private\n * @param {?} value\n * @return {?}\n */\n function (value) {\n var _this = this;\n value = value.filter(function (v) { return v !== null; });\n /** @type {?} */\n var selectedDatesCount = this.selectedDates.length;\n /** @type {?} */\n var datesInMsToDeselect = new Set(value.map(function (v) { return _this.getDateOnlyInMs(v); }));\n for (var i = this.selectedDates.length - 1; i >= 0; i--) {\n if (datesInMsToDeselect.has(this.getDateOnlyInMs(this.selectedDates[i]))) {\n this.selectedDates.splice(i, 1);\n }\n }\n if (this.selectedDates.length !== selectedDatesCount) {\n this._onChangeCallback(this.selectedDates);\n }\n };\n /**\n * Performs deselection of a single value, when selection is multi\n * Usually performed by the selectMultiple method, but leads to bug when multiple months are in view\n * @hidden\n */\n /**\n * Performs deselection of a single value, when selection is multi\n * Usually performed by the selectMultiple method, but leads to bug when multiple months are in view\n * @hidden\n * @param {?} value\n * @return {?}\n */\n IgxCalendarBase.prototype.deselectMultipleInMonth = /**\n * Performs deselection of a single value, when selection is multi\n * Usually performed by the selectMultiple method, but leads to bug when multiple months are in view\n * @hidden\n * @param {?} value\n * @return {?}\n */\n function (value) {\n /** @type {?} */\n var valueDateOnly = this.getDateOnly(value);\n this.selectedDates = this.selectedDates.filter(function (date) { return date.getTime() !== valueDateOnly.getTime(); });\n };\n /**\n * Performs a range deselection.\n * @hidden\n */\n /**\n * Performs a range deselection.\n * @hidden\n * @private\n * @param {?} value\n * @return {?}\n */\n IgxCalendarBase.prototype.deselectRange = /**\n * Performs a range deselection.\n * @hidden\n * @private\n * @param {?} value\n * @return {?}\n */\n function (value) {\n value = value.filter(function (v) { return v !== null; });\n if (value.length < 1) {\n return;\n }\n value.sort(function (a, b) { return a.valueOf() - b.valueOf(); });\n /** @type {?} */\n var valueStart = this.getDateOnlyInMs(value[0]);\n /** @type {?} */\n var valueEnd = this.getDateOnlyInMs(value[value.length - 1]);\n this.selectedDates.sort(function (a, b) { return a.valueOf() - b.valueOf(); });\n /** @type {?} */\n var selectedDatesStart = this.getDateOnlyInMs(this.selectedDates[0]);\n /** @type {?} */\n var selectedDatesEnd = this.getDateOnlyInMs(this.selectedDates[this.selectedDates.length - 1]);\n if (!(valueEnd < selectedDatesStart) && !(valueStart > selectedDatesEnd)) {\n this.selectedDates = [];\n this.rangeStarted = false;\n this._onChangeCallback(this.selectedDates);\n }\n };\n /**\n * @hidden\n */\n /**\n * @hidden\n * @protected\n * @return {?}\n */\n IgxCalendarBase.prototype.initFormatters = /**\n * @hidden\n * @protected\n * @return {?}\n */\n function () {\n this.formatterDay = new Intl.DateTimeFormat(this._locale, { day: this._formatOptions.day });\n this.formatterWeekday = new Intl.DateTimeFormat(this._locale, { weekday: this._formatOptions.weekday });\n this.formatterMonth = new Intl.DateTimeFormat(this._locale, { month: this._formatOptions.month });\n this.formatterYear = new Intl.DateTimeFormat(this._locale, { year: this._formatOptions.year });\n this.formatterMonthday = new Intl.DateTimeFormat(this._locale, { month: this._formatOptions.month, day: this._formatOptions.day });\n };\n /**\n *@hidden\n */\n /**\n * @hidden\n * @protected\n * @param {?} date\n * @return {?}\n */\n IgxCalendarBase.prototype.getDateOnly = /**\n * @hidden\n * @protected\n * @param {?} date\n * @return {?}\n */\n function (date) {\n return new Date(date.getFullYear(), date.getMonth(), date.getDate());\n };\n /**\n * @hidden\n */\n /**\n * @hidden\n * @param {?} fn\n * @return {?}\n */\n IgxCalendarBase.prototype.registerOnChange = /**\n * @hidden\n * @param {?} fn\n * @return {?}\n */\n function (fn) {\n this._onChangeCallback = fn;\n };\n /**\n * @hidden\n */\n /**\n * @hidden\n * @param {?} fn\n * @return {?}\n */\n IgxCalendarBase.prototype.registerOnTouched = /**\n * @hidden\n * @param {?} fn\n * @return {?}\n */\n function (fn) {\n this._onTouchedCallback = fn;\n };\n /**\n * @hidden\n */\n /**\n * @hidden\n * @param {?} value\n * @return {?}\n */\n IgxCalendarBase.prototype.writeValue = /**\n * @hidden\n * @param {?} value\n * @return {?}\n */\n function (value) {\n this.selectDate((/** @type {?} */ (value)));\n };\n /**\n * Checks whether a date is disabled.\n * @hidden\n */\n /**\n * Checks whether a date is disabled.\n * @hidden\n * @param {?} date\n * @return {?}\n */\n IgxCalendarBase.prototype.isDateDisabled = /**\n * Checks whether a date is disabled.\n * @hidden\n * @param {?} date\n * @return {?}\n */\n function (date) {\n if (this.disabledDates === null) {\n return false;\n }\n return isDateInRanges(date, this.disabledDates);\n };\n /**\n * Selects date(s) (based on the selection type).\n */\n /**\n * Selects date(s) (based on the selection type).\n * @param {?} value\n * @return {?}\n */\n IgxCalendarBase.prototype.selectDate = /**\n * Selects date(s) (based on the selection type).\n * @param {?} value\n * @return {?}\n */\n function (value) {\n if (value === null || value === undefined || (Array.isArray(value) && value.length === 0)) {\n return;\n }\n switch (this.selection) {\n case CalendarSelection.SINGLE:\n if (isDate(value) && !this.isDateDisabled((/** @type {?} */ (value)))) {\n this.selectSingle((/** @type {?} */ (value)));\n }\n break;\n case CalendarSelection.MULTI:\n this.selectMultiple(value);\n break;\n case CalendarSelection.RANGE:\n this.selectRange(value, true);\n break;\n }\n };\n /**\n * Deselects date(s) (based on the selection type).\n */\n /**\n * Deselects date(s) (based on the selection type).\n * @param {?=} value\n * @return {?}\n */\n IgxCalendarBase.prototype.deselectDate = /**\n * Deselects date(s) (based on the selection type).\n * @param {?=} value\n * @return {?}\n */\n function (value) {\n if (!this.selectedDates || this.selectedDates.length === 0) {\n return;\n }\n if (value === null || value === undefined) {\n this.selectedDates = this.selection === CalendarSelection.SINGLE ? null : [];\n this.rangeStarted = false;\n this._onChangeCallback(this.selectedDates);\n return;\n }\n switch (this.selection) {\n case CalendarSelection.SINGLE:\n this.deselectSingle((/** @type {?} */ (value)));\n break;\n case CalendarSelection.MULTI:\n this.deselectMultiple((/** @type {?} */ (value)));\n break;\n case CalendarSelection.RANGE:\n this.deselectRange((/** @type {?} */ (value)));\n break;\n }\n };\n /**\n * @hidden\n */\n /**\n * @hidden\n * @param {?} value\n * @return {?}\n */\n IgxCalendarBase.prototype.selectDateFromClient = /**\n * @hidden\n * @param {?} value\n * @return {?}\n */\n function (value) {\n switch (this.selection) {\n case CalendarSelection.SINGLE:\n case CalendarSelection.MULTI:\n this.selectDate(value);\n break;\n case CalendarSelection.RANGE:\n this.selectRange(value, true);\n break;\n }\n };\n IgxCalendarBase.propDecorators = {\n weekStart: [{ type: Input }],\n locale: [{ type: Input }],\n formatOptions: [{ type: Input }],\n formatViews: [{ type: Input }],\n selection: [{ type: Input }],\n value: [{ type: Input }],\n viewDate: [{ type: Input }],\n disabledDates: [{ type: Input }],\n specialDates: [{ type: Input }],\n hideOutsideDays: [{ type: Input }],\n onSelection: [{ type: Output }]\n };\n return IgxCalendarBase;\n}());\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n/** @enum {number} */\nvar CalendarView = {\n DEFAULT: 0,\n YEAR: 1,\n DECADE: 2,\n};\nCalendarView[CalendarView.DEFAULT] = 'DEFAULT';\nCalendarView[CalendarView.YEAR] = 'YEAR';\nCalendarView[CalendarView.DECADE] = 'DECADE';\nvar IgxMonthPickerBase = /** @class */ (function (_super) {\n __extends(IgxMonthPickerBase, _super);\n function IgxMonthPickerBase() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n /**\n * Holds month view index we are operating on.\n */\n _this.activeViewIdx = 0;\n /**\n * The default `tabindex` attribute for the component.\n *\n * @hidden\n */\n _this.tabindex = 0;\n /**\n * @hidden\n */\n _this._activeView = CalendarView.DEFAULT;\n return _this;\n }\n Object.defineProperty(IgxMonthPickerBase.prototype, \"activeView\", {\n /**\n * Gets the current active view.\n */\n get: /**\n * Gets the current active view.\n * @return {?}\n */\n function () {\n return this._activeView;\n },\n /**\n * Sets the current active view.\n */\n set: /**\n * Sets the current active view.\n * @param {?} val\n * @return {?}\n */\n function (val) {\n this._activeView = val;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxMonthPickerBase.prototype, \"isDefaultView\", {\n /**\n * @hidden\n */\n get: /**\n * @hidden\n * @return {?}\n */\n function () {\n return this._activeView === CalendarView.DEFAULT;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxMonthPickerBase.prototype, \"isDecadeView\", {\n /**\n * @hidden\n */\n get: /**\n * @hidden\n * @return {?}\n */\n function () {\n return this._activeView === CalendarView.DECADE;\n },\n enumerable: true,\n configurable: true\n });\n /**\n * @hidden\n */\n /**\n * @hidden\n * @param {?} event\n * @return {?}\n */\n IgxMonthPickerBase.prototype.changeYear = /**\n * @hidden\n * @param {?} event\n * @return {?}\n */\n function (event) {\n var _this = this;\n this.viewDate = this.calendarModel.getFirstViewDate(event, 'month', this.activeViewIdx);\n this.activeView = CalendarView.DEFAULT;\n requestAnimationFrame(function () {\n if (_this.yearsBtns && _this.yearsBtns.length) {\n _this.yearsBtns.find(function (e, idx) { return idx === _this.activeViewIdx; }).nativeElement.focus();\n }\n });\n };\n /**\n * @hidden\n */\n /**\n * @hidden\n * @param {?=} activeViewIdx\n * @return {?}\n */\n IgxMonthPickerBase.prototype.activeViewDecade = /**\n * @hidden\n * @param {?=} activeViewIdx\n * @return {?}\n */\n function (activeViewIdx) {\n if (activeViewIdx === void 0) { activeViewIdx = 0; }\n this._activeView = CalendarView.DECADE;\n this.activeViewIdx = activeViewIdx;\n };\n /**\n * @hidden\n */\n /**\n * @hidden\n * @param {?} event\n * @param {?=} activeViewIdx\n * @return {?}\n */\n IgxMonthPickerBase.prototype.activeViewDecadeKB = /**\n * @hidden\n * @param {?} event\n * @param {?=} activeViewIdx\n * @return {?}\n */\n function (event, activeViewIdx) {\n if (activeViewIdx === void 0) { activeViewIdx = 0; }\n if (event.key === \" \" /* SPACE */ || event.key === \"Spacebar\" /* SPACE_IE */ || event.key === \"Enter\" /* ENTER */) {\n event.preventDefault();\n this.activeViewDecade(activeViewIdx);\n }\n };\n /**\n * Returns the locale representation of the year in the year view if enabled,\n * otherwise returns the default `Date.getFullYear()` value.\n *\n * @hidden\n */\n /**\n * Returns the locale representation of the year in the year view if enabled,\n * otherwise returns the default `Date.getFullYear()` value.\n *\n * @hidden\n * @param {?} value\n * @return {?}\n */\n IgxMonthPickerBase.prototype.formattedYear = /**\n * Returns the locale representation of the year in the year view if enabled,\n * otherwise returns the default `Date.getFullYear()` value.\n *\n * @hidden\n * @param {?} value\n * @return {?}\n */\n function (value) {\n if (this.formatViews.year) {\n return this.formatterYear.format(value);\n }\n return \"\" + value.getFullYear();\n };\n IgxMonthPickerBase.propDecorators = {\n tabindex: [{ type: HostBinding, args: ['attr.tabindex',] }],\n yearsBtns: [{ type: ViewChildren, args: ['yearsBtn',] }]\n };\n return IgxMonthPickerBase;\n}(IgxCalendarBase));\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n/** @type {?} */\nvar NEXT_ID$c = 0;\nvar IgxMonthsViewComponent = /** @class */ (function () {\n function IgxMonthsViewComponent(el) {\n this.el = el;\n /**\n * Sets/gets the `id` of the months view.\n * If not set, the `id` will have value `\"igx-months-view-0\"`.\n * ```html\n * \n * ```\n * ```typescript\n * let monthsViewId = this.monthsView.id;\n * ```\n * \\@memberof IgxMonthsViewComponent\n */\n this.id = \"igx-months-view-\" + NEXT_ID$c++;\n /**\n * Gets/sets the selected date of the months view.\n * By default it is the current date.\n * ```html\n * \n * ```\n * ```typescript\n * let date = this.monthsView.date;\n * ```\n * \\@memberof IgxMonthsViewComponent\n */\n this.date = new Date();\n /**\n * Gets/sets whether the view should be rendered\n * according to the locale and monthFormat, if any.\n */\n this.formatView = true;\n /**\n * Emits an event when a selection is made in the months view.\n * Provides reference the `date` property in the `IgxMonthsViewComponent`.\n * ```html\n * \n * ```\n * \\@memberof IgxMonthsViewComponent\n */\n this.onSelection = new EventEmitter();\n /**\n * The default css class applied to the component.\n *\n * @hidden\n */\n this.styleClass = true;\n /**\n * The default `tabindex` attribute for the component.\n *\n * @hidden\n */\n this.tabindex = 0;\n /**\n * @hidden\n */\n this._locale = 'en';\n /**\n * @hidden\n */\n this._monthFormat = 'short';\n /**\n * @hidden\n */\n this._onTouchedCallback = function () { };\n /**\n * @hidden\n */\n this._onChangeCallback = function () { };\n this.initMonthFormatter();\n this._calendarModel = new Calendar();\n }\n Object.defineProperty(IgxMonthsViewComponent.prototype, \"monthFormat\", {\n /**\n * Gets the month format option of the months view.\n * ```typescript\n * let monthFormat = this.monthsView.monthFormat.\n * ```\n */\n get: /**\n * Gets the month format option of the months view.\n * ```typescript\n * let monthFormat = this.monthsView.monthFormat.\n * ```\n * @return {?}\n */\n function () {\n return this._monthFormat;\n },\n /**\n * Sets the month format option of the months view.\n * ```html\n * [monthFormat] = \"short'\"\n * ```\n * @memberof IgxMonthsViewComponent\n */\n set: /**\n * Sets the month format option of the months view.\n * ```html\n * [monthFormat] = \"short'\"\n * ```\n * \\@memberof IgxMonthsViewComponent\n * @param {?} value\n * @return {?}\n */\n function (value) {\n this._monthFormat = value;\n this.initMonthFormatter();\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxMonthsViewComponent.prototype, \"locale\", {\n /**\n * Gets the `locale` of the months view.\n * Default value is `\"en\"`.\n * ```typescript\n * let locale = this.monthsView.locale;\n * ```\n * @memberof IgxMonthsViewComponent\n */\n get: /**\n * Gets the `locale` of the months view.\n * Default value is `\"en\"`.\n * ```typescript\n * let locale = this.monthsView.locale;\n * ```\n * \\@memberof IgxMonthsViewComponent\n * @return {?}\n */\n function () {\n return this._locale;\n },\n /**\n * Sets the `locale` of the months view.\n * Expects a valid BCP 47 language tag.\n * Default value is `\"en\"`.\n * ```html\n * \n * ```\n * @memberof IgxMonthsViewComponent\n */\n set: /**\n * Sets the `locale` of the months view.\n * Expects a valid BCP 47 language tag.\n * Default value is `\"en\"`.\n * ```html\n * \n * ```\n * \\@memberof IgxMonthsViewComponent\n * @param {?} value\n * @return {?}\n */\n function (value) {\n this._locale = value;\n this.initMonthFormatter();\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxMonthsViewComponent.prototype, \"months\", {\n /**\n * Returns an array of date objects which are then used to\n * properly render the month names.\n *\n * Used in the template of the component\n *\n * @hidden\n */\n get: /**\n * Returns an array of date objects which are then used to\n * properly render the month names.\n *\n * Used in the template of the component\n *\n * @hidden\n * @return {?}\n */\n function () {\n /** @type {?} */\n var start = new Date(this.date.getFullYear(), 0, 1);\n /** @type {?} */\n var result = [];\n for (var i = 0; i < 12; i++) {\n result.push(start);\n start = this._calendarModel.timedelta(start, 'month', 1);\n }\n return result;\n },\n enumerable: true,\n configurable: true\n });\n /**\n * Returns the locale representation of the month in the months view.\n *\n * @hidden\n */\n /**\n * Returns the locale representation of the month in the months view.\n *\n * @hidden\n * @param {?} value\n * @return {?}\n */\n IgxMonthsViewComponent.prototype.formattedMonth = /**\n * Returns the locale representation of the month in the months view.\n *\n * @hidden\n * @param {?} value\n * @return {?}\n */\n function (value) {\n if (this.formatView) {\n return this._formatterMonth.format(value);\n }\n return \"\" + value.getMonth();\n };\n /**\n *@hidden\n */\n /**\n * @hidden\n * @param {?} event\n * @return {?}\n */\n IgxMonthsViewComponent.prototype.selectMonth = /**\n * @hidden\n * @param {?} event\n * @return {?}\n */\n function (event) {\n this.onSelection.emit(event);\n this.date = event;\n this._onChangeCallback(this.date);\n };\n /**\n * @hidden\n */\n /**\n * @hidden\n * @param {?} fn\n * @return {?}\n */\n IgxMonthsViewComponent.prototype.registerOnChange = /**\n * @hidden\n * @param {?} fn\n * @return {?}\n */\n function (fn) {\n this._onChangeCallback = fn;\n };\n /**\n * @hidden\n */\n /**\n * @hidden\n * @param {?} fn\n * @return {?}\n */\n IgxMonthsViewComponent.prototype.registerOnTouched = /**\n * @hidden\n * @param {?} fn\n * @return {?}\n */\n function (fn) {\n this._onTouchedCallback = fn;\n };\n /**\n * @hidden\n */\n /**\n * @hidden\n * @param {?} value\n * @return {?}\n */\n IgxMonthsViewComponent.prototype.writeValue = /**\n * @hidden\n * @param {?} value\n * @return {?}\n */\n function (value) {\n if (value) {\n this.date = value;\n }\n };\n /**\n * @hidden\n */\n /**\n * @hidden\n * @param {?} index\n * @param {?} item\n * @return {?}\n */\n IgxMonthsViewComponent.prototype.monthTracker = /**\n * @hidden\n * @param {?} index\n * @param {?} item\n * @return {?}\n */\n function (index, item) {\n return item.getMonth() + \"}\";\n };\n /**\n *@hidden\n */\n /**\n * @hidden\n * @private\n * @return {?}\n */\n IgxMonthsViewComponent.prototype.initMonthFormatter = /**\n * @hidden\n * @private\n * @return {?}\n */\n function () {\n this._formatterMonth = new Intl.DateTimeFormat(this._locale, { month: this.monthFormat });\n };\n /**\n * @hidden\n */\n /**\n * @hidden\n * @param {?} event\n * @return {?}\n */\n IgxMonthsViewComponent.prototype.onKeydownArrowUp = /**\n * @hidden\n * @param {?} event\n * @return {?}\n */\n function (event) {\n event.preventDefault();\n event.stopPropagation();\n /** @type {?} */\n var node = this.monthsRef.find(function (date) { return date.nativeElement === event.target; });\n if (!node) {\n return;\n }\n /** @type {?} */\n var months = this.monthsRef.toArray();\n /** @type {?} */\n var nodeRect = node.nativeElement.getBoundingClientRect();\n for (var index = months.indexOf(node) - 1; index >= 0; index--) {\n /** @type {?} */\n var nextNodeRect = months[index].nativeElement.getBoundingClientRect();\n /** @type {?} */\n var tolerance = 6;\n if (nodeRect.top !== nextNodeRect.top && (nextNodeRect.left - nodeRect.left) < tolerance) {\n months[index].nativeElement.focus();\n break;\n }\n }\n };\n /**\n * @hidden\n */\n /**\n * @hidden\n * @param {?} event\n * @return {?}\n */\n IgxMonthsViewComponent.prototype.onKeydownArrowDown = /**\n * @hidden\n * @param {?} event\n * @return {?}\n */\n function (event) {\n event.preventDefault();\n event.stopPropagation();\n /** @type {?} */\n var node = this.monthsRef.find(function (date) { return date.nativeElement === event.target; });\n if (!node) {\n return;\n }\n /** @type {?} */\n var months = this.monthsRef.toArray();\n /** @type {?} */\n var nodeRect = node.nativeElement.getBoundingClientRect();\n for (var index = months.indexOf(node) + 1; index < months.length; index++) {\n /** @type {?} */\n var nextNodeRect = months[index].nativeElement.getBoundingClientRect();\n /** @type {?} */\n var tolerance = 6;\n if (nextNodeRect.top !== nodeRect.top && (nodeRect.left - nextNodeRect.left) < tolerance) {\n months[index].nativeElement.focus();\n break;\n }\n }\n };\n /**\n * @hidden\n */\n /**\n * @hidden\n * @param {?} event\n * @return {?}\n */\n IgxMonthsViewComponent.prototype.onKeydownArrowRight = /**\n * @hidden\n * @param {?} event\n * @return {?}\n */\n function (event) {\n event.preventDefault();\n event.stopPropagation();\n /** @type {?} */\n var node = this.monthsRef.find(function (date) { return date.nativeElement === event.target; });\n if (!node) {\n return;\n }\n /** @type {?} */\n var months = this.monthsRef.toArray();\n if (months.indexOf(node) + 1 < months.length) {\n /** @type {?} */\n var month = months[months.indexOf(node) + 1];\n month.nativeElement.focus();\n }\n };\n /**\n * @hidden\n */\n /**\n * @hidden\n * @param {?} event\n * @return {?}\n */\n IgxMonthsViewComponent.prototype.onKeydownArrowLeft = /**\n * @hidden\n * @param {?} event\n * @return {?}\n */\n function (event) {\n event.preventDefault();\n event.stopPropagation();\n /** @type {?} */\n var node = this.monthsRef.find(function (date) { return date.nativeElement === event.target; });\n if (!node) {\n return;\n }\n /** @type {?} */\n var months = this.monthsRef.toArray();\n if (months.indexOf(node) - 1 >= 0) {\n /** @type {?} */\n var month = months[months.indexOf(node) - 1];\n month.nativeElement.focus();\n }\n };\n /**\n * @hidden\n */\n /**\n * @hidden\n * @param {?} event\n * @return {?}\n */\n IgxMonthsViewComponent.prototype.onKeydownHome = /**\n * @hidden\n * @param {?} event\n * @return {?}\n */\n function (event) {\n event.preventDefault();\n event.stopPropagation();\n /** @type {?} */\n var month = this.monthsRef.toArray()[0];\n month.nativeElement.focus();\n };\n /**\n * @hidden\n */\n /**\n * @hidden\n * @param {?} event\n * @return {?}\n */\n IgxMonthsViewComponent.prototype.onKeydownEnd = /**\n * @hidden\n * @param {?} event\n * @return {?}\n */\n function (event) {\n event.preventDefault();\n event.stopPropagation();\n /** @type {?} */\n var months = this.monthsRef.toArray();\n /** @type {?} */\n var month = months[months.length - 1];\n month.nativeElement.focus();\n };\n /**\n * @hidden\n */\n /**\n * @hidden\n * @param {?} event\n * @return {?}\n */\n IgxMonthsViewComponent.prototype.onKeydownEnter = /**\n * @hidden\n * @param {?} event\n * @return {?}\n */\n function (event) {\n /** @type {?} */\n var value = this.monthsRef.find(function (date) { return date.nativeElement === event.target; }).value;\n this.date = new Date(value.getFullYear(), value.getMonth(), this.date.getDate());\n this.onSelection.emit(this.date);\n this._onChangeCallback(this.date);\n };\n IgxMonthsViewComponent.decorators = [\n { type: Component, args: [{\n providers: [{ provide: NG_VALUE_ACCESSOR, useExisting: IgxMonthsViewComponent, multi: true }],\n selector: 'igx-months-view',\n template: \"
\\n
\\n
\\n {{ formattedMonth(month) | titlecase }}\\n
\\n
\\n
\\n\\n\"\n }] }\n ];\n /** @nocollapse */\n IgxMonthsViewComponent.ctorParameters = function () { return [\n { type: ElementRef }\n ]; };\n IgxMonthsViewComponent.propDecorators = {\n id: [{ type: HostBinding, args: ['attr.id',] }, { type: Input }],\n date: [{ type: Input }],\n monthFormat: [{ type: Input }],\n locale: [{ type: Input }],\n formatView: [{ type: Input }],\n onSelection: [{ type: Output }],\n styleClass: [{ type: HostBinding, args: ['class.igx-calendar',] }],\n monthsRef: [{ type: ViewChildren, args: [IgxCalendarMonthDirective, { read: IgxCalendarMonthDirective },] }],\n tabindex: [{ type: HostBinding, args: ['attr.tabindex',] }],\n onKeydownArrowUp: [{ type: HostListener, args: ['keydown.arrowup', ['$event'],] }],\n onKeydownArrowDown: [{ type: HostListener, args: ['keydown.arrowdown', ['$event'],] }],\n onKeydownArrowRight: [{ type: HostListener, args: ['keydown.arrowright', ['$event'],] }],\n onKeydownArrowLeft: [{ type: HostListener, args: ['keydown.arrowleft', ['$event'],] }],\n onKeydownHome: [{ type: HostListener, args: ['keydown.home', ['$event'],] }],\n onKeydownEnd: [{ type: HostListener, args: ['keydown.end', ['$event'],] }],\n onKeydownEnter: [{ type: HostListener, args: ['keydown.enter', ['$event'],] }]\n };\n return IgxMonthsViewComponent;\n}());\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n/** @type {?} */\nvar NEXT_ID$d = 0;\nvar CalendarHammerConfig = /** @class */ (function (_super) {\n __extends(CalendarHammerConfig, _super);\n function CalendarHammerConfig() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.overrides = {\n pan: { direction: Hammer.DIRECTION_VERTICAL, threshold: 1 }\n };\n return _this;\n }\n CalendarHammerConfig.decorators = [\n { type: Injectable }\n ];\n return CalendarHammerConfig;\n}(HammerGestureConfig));\nvar IgxYearsViewComponent = /** @class */ (function () {\n function IgxYearsViewComponent(el) {\n this.el = el;\n /**\n * Sets/gets the `id` of the years view.\n * If not set, the `id` will have value `\"igx-years-view-0\"`.\n * ```html\n * \n * ```\n * ```typescript\n * let yearsViewId = this.yearsView.id;\n * ```\n * \\@memberof IgxCalendarComponent\n */\n this.id = \"igx-years-view-\" + NEXT_ID$d++;\n /**\n * Gets/sets the selected date of the years view.\n * By default it is the current date.\n * ```html\n * \n * ```\n * ```typescript\n * let date = this.yearsView.date;\n * ```\n * \\@memberof IgxYearsViewComponent\n */\n this.date = new Date();\n /**\n * Emits an event when a selection is made in the years view.\n * Provides reference the `date` property in the `IgxYearsViewComponent`.\n * ```html\n * \n * ```\n * \\@memberof IgxYearsViewComponent\n */\n this.onSelection = new EventEmitter();\n /**\n * The default css class applied to the component.\n *\n * @hidden\n */\n this.styleClass = true;\n /**\n * The default `tabindex` attribute for the component.\n *\n * @hidden\n */\n this.tabindex = 0;\n /**\n * @hidden\n */\n this._locale = 'en';\n /**\n * @hidden\n */\n this._yearFormat = 'numeric';\n /**\n * @hidden\n */\n this._onTouchedCallback = function () { };\n /**\n * @hidden\n */\n this._onChangeCallback = function () { };\n this.initYearFormatter();\n this._calendarModel = new Calendar();\n }\n Object.defineProperty(IgxYearsViewComponent.prototype, \"yearFormat\", {\n /**\n * Gets the year format option of the years view.\n * ```typescript\n * let yearFormat = this.yearsView.yearFormat.\n * ```\n */\n get: /**\n * Gets the year format option of the years view.\n * ```typescript\n * let yearFormat = this.yearsView.yearFormat.\n * ```\n * @return {?}\n */\n function () {\n return this._yearFormat;\n },\n /**\n * Sets the year format option of the years view.\n * ```html\n * \n * ```\n * @memberof IgxYearsViewComponent\n */\n set: /**\n * Sets the year format option of the years view.\n * ```html\n * \n * ```\n * \\@memberof IgxYearsViewComponent\n * @param {?} value\n * @return {?}\n */\n function (value) {\n this._yearFormat = value;\n this.initYearFormatter();\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxYearsViewComponent.prototype, \"locale\", {\n /**\n * Gets the `locale` of the years view.\n * Default value is `\"en\"`.\n * ```typescript\n * let locale = this.yearsView.locale;\n * ```\n * @memberof IgxYearsViewComponent\n */\n get: /**\n * Gets the `locale` of the years view.\n * Default value is `\"en\"`.\n * ```typescript\n * let locale = this.yearsView.locale;\n * ```\n * \\@memberof IgxYearsViewComponent\n * @return {?}\n */\n function () {\n return this._locale;\n },\n /**\n * Sets the `locale` of the years view.\n * Expects a valid BCP 47 language tag.\n * Default value is `\"en\"`.\n * ```html\n * \n * ```\n * @memberof IgxYearsViewComponent\n */\n set: /**\n * Sets the `locale` of the years view.\n * Expects a valid BCP 47 language tag.\n * Default value is `\"en\"`.\n * ```html\n * \n * ```\n * \\@memberof IgxYearsViewComponent\n * @param {?} value\n * @return {?}\n */\n function (value) {\n this._locale = value;\n this.initYearFormatter();\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxYearsViewComponent.prototype, \"decade\", {\n /**\n * Returns an array of date objects which are then used to properly\n * render the years.\n *\n * Used in the template of the component.\n *\n * @hidden\n */\n get: /**\n * Returns an array of date objects which are then used to properly\n * render the years.\n *\n * Used in the template of the component.\n *\n * @hidden\n * @return {?}\n */\n function () {\n var e_1, _a;\n /** @type {?} */\n var result = [];\n /** @type {?} */\n var start = this.date.getFullYear() - 3;\n /** @type {?} */\n var end = this.date.getFullYear() + 4;\n try {\n for (var _b = __values(range(start, end)), _c = _b.next(); !_c.done; _c = _b.next()) {\n var year = _c.value;\n result.push(new Date(year, this.date.getMonth(), this.date.getDate()));\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n }\n finally { if (e_1) throw e_1.error; }\n }\n return result;\n },\n enumerable: true,\n configurable: true\n });\n /**\n * Returns the locale representation of the year in the years view.\n *\n * @hidden\n */\n /**\n * Returns the locale representation of the year in the years view.\n *\n * @hidden\n * @param {?} value\n * @return {?}\n */\n IgxYearsViewComponent.prototype.formattedYear = /**\n * Returns the locale representation of the year in the years view.\n *\n * @hidden\n * @param {?} value\n * @return {?}\n */\n function (value) {\n if (this.formatView) {\n return this._formatterYear.format(value);\n }\n return \"\" + value.getFullYear();\n };\n /**\n *@hidden\n */\n /**\n * @hidden\n * @param {?} event\n * @return {?}\n */\n IgxYearsViewComponent.prototype.selectYear = /**\n * @hidden\n * @param {?} event\n * @return {?}\n */\n function (event) {\n this.date = event;\n this.onSelection.emit(this.date);\n this._onChangeCallback(this.date);\n };\n /**\n *@hidden\n */\n /**\n * @hidden\n * @param {?} event\n * @return {?}\n */\n IgxYearsViewComponent.prototype.scroll = /**\n * @hidden\n * @param {?} event\n * @return {?}\n */\n function (event) {\n event.preventDefault();\n event.stopPropagation();\n /** @type {?} */\n var delta = event.deltaY < 0 ? -1 : 1;\n this.generateYearRange(delta);\n };\n /**\n *@hidden\n */\n /**\n * @hidden\n * @param {?} event\n * @return {?}\n */\n IgxYearsViewComponent.prototype.pan = /**\n * @hidden\n * @param {?} event\n * @return {?}\n */\n function (event) {\n /** @type {?} */\n var delta = event.deltaY < 0 ? 1 : -1;\n this.generateYearRange(delta);\n };\n /**\n * @hidden\n */\n /**\n * @hidden\n * @param {?} fn\n * @return {?}\n */\n IgxYearsViewComponent.prototype.registerOnChange = /**\n * @hidden\n * @param {?} fn\n * @return {?}\n */\n function (fn) {\n this._onChangeCallback = fn;\n };\n /**\n * @hidden\n */\n /**\n * @hidden\n * @param {?} fn\n * @return {?}\n */\n IgxYearsViewComponent.prototype.registerOnTouched = /**\n * @hidden\n * @param {?} fn\n * @return {?}\n */\n function (fn) {\n this._onTouchedCallback = fn;\n };\n /**\n * @hidden\n */\n /**\n * @hidden\n * @param {?} index\n * @param {?} item\n * @return {?}\n */\n IgxYearsViewComponent.prototype.yearTracker = /**\n * @hidden\n * @param {?} index\n * @param {?} item\n * @return {?}\n */\n function (index, item) {\n return item.getFullYear() + \"}\";\n };\n /**\n * @hidden\n */\n /**\n * @hidden\n * @param {?} value\n * @return {?}\n */\n IgxYearsViewComponent.prototype.writeValue = /**\n * @hidden\n * @param {?} value\n * @return {?}\n */\n function (value) {\n if (value) {\n this.date = value;\n }\n };\n /**\n * @hidden\n */\n /**\n * @hidden\n * @param {?} event\n * @return {?}\n */\n IgxYearsViewComponent.prototype.onKeydownArrowDown = /**\n * @hidden\n * @param {?} event\n * @return {?}\n */\n function (event) {\n event.preventDefault();\n event.stopPropagation();\n this.generateYearRange(1);\n };\n /**\n * @hidden\n */\n /**\n * @hidden\n * @param {?} event\n * @return {?}\n */\n IgxYearsViewComponent.prototype.onKeydownArrowUp = /**\n * @hidden\n * @param {?} event\n * @return {?}\n */\n function (event) {\n event.preventDefault();\n event.stopPropagation();\n this.generateYearRange(-1);\n };\n /**\n * @hidden\n */\n /**\n * @hidden\n * @return {?}\n */\n IgxYearsViewComponent.prototype.onKeydownEnter = /**\n * @hidden\n * @return {?}\n */\n function () {\n this.onSelection.emit(this.date);\n this._onChangeCallback(this.date);\n };\n /**\n *@hidden\n */\n /**\n * @hidden\n * @private\n * @return {?}\n */\n IgxYearsViewComponent.prototype.initYearFormatter = /**\n * @hidden\n * @private\n * @return {?}\n */\n function () {\n this._formatterYear = new Intl.DateTimeFormat(this._locale, { year: this.yearFormat });\n };\n /**\n *@hidden\n */\n /**\n * @hidden\n * @private\n * @param {?} delta\n * @return {?}\n */\n IgxYearsViewComponent.prototype.generateYearRange = /**\n * @hidden\n * @private\n * @param {?} delta\n * @return {?}\n */\n function (delta) {\n /** @type {?} */\n var currentYear = new Date().getFullYear();\n if ((delta > 0 && this.date.getFullYear() - currentYear >= 95) ||\n (delta < 0 && currentYear - this.date.getFullYear() >= 95)) {\n return;\n }\n this.date = this._calendarModel.timedelta(this.date, 'year', delta);\n };\n IgxYearsViewComponent.decorators = [\n { type: Component, args: [{\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: IgxYearsViewComponent,\n multi: true\n },\n {\n provide: HAMMER_GESTURE_CONFIG,\n useClass: CalendarHammerConfig\n }\n ],\n selector: 'igx-years-view',\n template: \"
\\n
\\n \\n {{ formattedYear(year) }}\\n \\n
\\n
\\n\"\n }] }\n ];\n /** @nocollapse */\n IgxYearsViewComponent.ctorParameters = function () { return [\n { type: ElementRef }\n ]; };\n IgxYearsViewComponent.propDecorators = {\n id: [{ type: HostBinding, args: ['attr.id',] }, { type: Input }],\n date: [{ type: Input }],\n yearFormat: [{ type: Input }],\n locale: [{ type: Input }],\n formatView: [{ type: Input }],\n onSelection: [{ type: Output }],\n styleClass: [{ type: HostBinding, args: ['class.igx-calendar',] }],\n tabindex: [{ type: HostBinding, args: ['attr.tabindex',] }],\n onKeydownArrowDown: [{ type: HostListener, args: ['keydown.arrowdown', ['$event'],] }],\n onKeydownArrowUp: [{ type: HostListener, args: ['keydown.arrowup', ['$event'],] }],\n onKeydownEnter: [{ type: HostListener, args: ['keydown.enter',] }]\n };\n return IgxYearsViewComponent;\n}());\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n/**\n * @hidden\n */\nvar IgxDayItemComponent = /** @class */ (function () {\n function IgxDayItemComponent(elementRef) {\n this.elementRef = elementRef;\n this.hideOutsideDays = false;\n this.isLastInRange = false;\n this.isFirstInRange = false;\n this.isWithinRange = false;\n this.onDateSelection = new EventEmitter();\n this._selected = false;\n }\n Object.defineProperty(IgxDayItemComponent.prototype, \"selected\", {\n /**\n * Returns boolean indicating if the day is selected\n *\n */\n get: /**\n * Returns boolean indicating if the day is selected\n *\n * @return {?}\n */\n function () {\n return this._selected;\n },\n /**\n * Selects the day\n */\n set: /**\n * Selects the day\n * @param {?} value\n * @return {?}\n */\n function (value) {\n this._selected = value;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxDayItemComponent.prototype, \"isCurrentMonth\", {\n get: /**\n * @return {?}\n */\n function () {\n return this.date.isCurrentMonth;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxDayItemComponent.prototype, \"isPreviousMonth\", {\n get: /**\n * @return {?}\n */\n function () {\n return this.date.isPrevMonth;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxDayItemComponent.prototype, \"isNextMonth\", {\n get: /**\n * @return {?}\n */\n function () {\n return this.date.isNextMonth;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxDayItemComponent.prototype, \"nativeElement\", {\n get: /**\n * @return {?}\n */\n function () {\n return this.elementRef.nativeElement;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxDayItemComponent.prototype, \"isSelectedCSS\", {\n get: /**\n * @return {?}\n */\n function () {\n return (!this.isDisabled && this.selected);\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxDayItemComponent.prototype, \"isInactive\", {\n get: /**\n * @return {?}\n */\n function () {\n return this.date.isNextMonth || this.date.isPrevMonth;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxDayItemComponent.prototype, \"isHidden\", {\n get: /**\n * @return {?}\n */\n function () {\n return this.hideOutsideDays && this.isInactive;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxDayItemComponent.prototype, \"isToday\", {\n get: /**\n * @return {?}\n */\n function () {\n /** @type {?} */\n var today = new Date(Date.now());\n /** @type {?} */\n var date = this.date.date;\n return (date.getFullYear() === today.getFullYear() &&\n date.getMonth() === today.getMonth() &&\n date.getDate() === today.getDate());\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxDayItemComponent.prototype, \"isWeekend\", {\n get: /**\n * @return {?}\n */\n function () {\n /** @type {?} */\n var day = this.date.date.getDay();\n return day === 0 || day === 6;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxDayItemComponent.prototype, \"isDisabled\", {\n get: /**\n * @return {?}\n */\n function () {\n if (this.disabledDates === null) {\n return false;\n }\n return isDateInRanges(this.date.date, this.disabledDates);\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxDayItemComponent.prototype, \"isOutOfRange\", {\n get: /**\n * @return {?}\n */\n function () {\n if (!this.outOfRangeDates) {\n return false;\n }\n return isDateInRanges(this.date.date, this.outOfRangeDates);\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxDayItemComponent.prototype, \"isFocusable\", {\n get: /**\n * @return {?}\n */\n function () {\n return this.isCurrentMonth && !this.isHidden && !this.isDisabled && !this.isOutOfRange;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxDayItemComponent.prototype, \"isWithinRangeCSS\", {\n get: /**\n * @return {?}\n */\n function () {\n return !this.isSingleSelection && this.isWithinRange;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxDayItemComponent.prototype, \"isSpecial\", {\n get: /**\n * @return {?}\n */\n function () {\n if (this.specialDates === null) {\n return false;\n }\n return isDateInRanges(this.date.date, this.specialDates);\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxDayItemComponent.prototype, \"defaultCSS\", {\n get: /**\n * @return {?}\n */\n function () {\n return this.date.isCurrentMonth && !(this.isWeekend && this.selected);\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxDayItemComponent.prototype, \"isDisabledCSS\", {\n get: /**\n * @return {?}\n */\n function () {\n return this.isHidden || this.isDisabled || this.isOutOfRange;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxDayItemComponent.prototype, \"isSingleSelection\", {\n get: /**\n * @return {?}\n */\n function () {\n return this.selection !== CalendarSelection.RANGE;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxDayItemComponent.prototype, \"tabindex\", {\n get: /**\n * @return {?}\n */\n function () {\n return this.isDisabled || this.isHidden ? -1 : 0;\n },\n enumerable: true,\n configurable: true\n });\n /**\n * @return {?}\n */\n IgxDayItemComponent.prototype.onSelect = /**\n * @return {?}\n */\n function () {\n this.onDateSelection.emit(this.date);\n };\n IgxDayItemComponent.decorators = [\n { type: Component, args: [{\n selector: 'igx-day-item',\n template: \"\\n \\n\\n\"\n }] }\n ];\n /** @nocollapse */\n IgxDayItemComponent.ctorParameters = function () { return [\n { type: ElementRef }\n ]; };\n IgxDayItemComponent.propDecorators = {\n date: [{ type: Input }],\n selection: [{ type: Input }],\n selected: [{ type: Input }],\n disabledDates: [{ type: Input }],\n outOfRangeDates: [{ type: Input }],\n specialDates: [{ type: Input }],\n hideOutsideDays: [{ type: Input }],\n isLastInRange: [{ type: Input }, { type: HostBinding, args: ['class.igx-calendar__date--last',] }],\n isFirstInRange: [{ type: Input }, { type: HostBinding, args: ['class.igx-calendar__date--first',] }],\n isWithinRange: [{ type: Input }],\n onDateSelection: [{ type: Output }],\n isSelectedCSS: [{ type: HostBinding, args: ['class.igx-calendar__date--selected',] }],\n isInactive: [{ type: HostBinding, args: ['class.igx-calendar__date--inactive',] }],\n isHidden: [{ type: HostBinding, args: ['class.igx-calendar__date--hidden',] }],\n isToday: [{ type: HostBinding, args: ['class.igx-calendar__date--current',] }],\n isWeekend: [{ type: HostBinding, args: ['class.igx-calendar__date--weekend',] }],\n isWithinRangeCSS: [{ type: HostBinding, args: ['class.igx-calendar__date--range',] }],\n isSpecial: [{ type: HostBinding, args: ['class.igx-calendar__date--special',] }],\n defaultCSS: [{ type: HostBinding, args: ['class.igx-calendar__date',] }],\n isDisabledCSS: [{ type: HostBinding, args: ['class.igx-calendar__date--disabled',] }],\n isSingleSelection: [{ type: HostBinding, args: ['class.igx-calendar__date--single',] }],\n tabindex: [{ type: HostBinding, args: ['attr.tabindex',] }],\n onSelect: [{ type: HostListener, args: ['click',] }, { type: HostListener, args: ['keydown.enter',] }]\n };\n return IgxDayItemComponent;\n}());\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n/** @enum {string} */\nvar Direction = {\n Up: 'ArrowUp',\n Down: 'ArrowDown',\n Left: 'ArrowLeft',\n Right: 'ArrowRight',\n};\n/** @type {?} */\nvar ARROW = 'Arrow';\n/**\n * @hidden\n */\nvar IgxDaysViewNavigationService = /** @class */ (function () {\n function IgxDaysViewNavigationService() {\n }\n /**\n * Implements kb navigation in all MoveDirections. nextDate and nextMonthView naming convention is used for both previous/next\n * @hidden\n */\n /**\n * Implements kb navigation in all MoveDirections. nextDate and nextMonthView naming convention is used for both previous/next\n * @hidden\n * @param {?} target\n * @param {?} key\n * @param {?=} nextView\n * @return {?}\n */\n IgxDaysViewNavigationService.prototype.focusNextDate = /**\n * Implements kb navigation in all MoveDirections. nextDate and nextMonthView naming convention is used for both previous/next\n * @hidden\n * @param {?} target\n * @param {?} key\n * @param {?=} nextView\n * @return {?}\n */\n function (target, key, nextView) {\n if (nextView === void 0) { nextView = false; }\n if (target.childElementCount === 0) {\n target = target.parentElement;\n }\n if (key.indexOf('Arrow') === -1) {\n key = ARROW.concat(key);\n }\n /** @type {?} */\n var monthView = this.monthView;\n /** @type {?} */\n var node = monthView.dates.find(function (date) { return date.nativeElement === target; });\n /** @type {?} */\n var dates = monthView.dates.toArray();\n /** @type {?} */\n var day;\n /** @type {?} */\n var step;\n /** @type {?} */\n var i;\n /** @type {?} */\n var nextDate;\n /** @type {?} */\n var index = dates.indexOf(node);\n if (!node) {\n return;\n }\n // focus item in current month\n switch (key) {\n case Direction.Left: {\n step = -1;\n nextDate = this.timedelta(node.date.date, step);\n for (i = index; i > 0; i--) {\n day = nextView ? dates[i] : dates[i - 1];\n nextDate = day.date.date;\n if (day.date.isPrevMonth) {\n break;\n }\n if (day && day.isFocusable) {\n day.nativeElement.focus();\n return;\n }\n }\n break;\n }\n case Direction.Right: {\n step = 1;\n nextDate = this.timedelta(node.date.date, step);\n for (i = index; i < dates.length - 1; i++) {\n day = nextView ? dates[i] : dates[i + 1];\n nextDate = day.date.date;\n if (day.date.isNextMonth) {\n break;\n }\n if (day && day.isFocusable) {\n day.nativeElement.focus();\n return;\n }\n }\n break;\n }\n case Direction.Up: {\n step = -7;\n nextDate = this.timedelta(node.date.date, step);\n for (i = index; i - 7 > -1; i -= 7) {\n day = nextView ? dates[i] : dates[i - 7];\n nextDate = day.date.date;\n if (day.date.isPrevMonth) {\n break;\n }\n if (day && day.isFocusable) {\n day.nativeElement.focus();\n return;\n }\n }\n break;\n }\n case Direction.Down: {\n step = 7;\n nextDate = this.timedelta(node.date.date, step);\n for (i = index; i + 7 < 42; i += 7) {\n day = nextView ? dates[i] : dates[i + 7];\n nextDate = day.date.date;\n if (day.date.isNextMonth) {\n break;\n }\n if (day && day.isFocusable) {\n day.nativeElement.focus();\n return;\n }\n }\n break;\n }\n }\n // focus item in prev/next visible month\n /** @type {?} */\n var nextMonthView = step > 0 ? monthView.nextMonthView : monthView.prevMonthView;\n if (nextMonthView) {\n dates = nextMonthView.dates.toArray();\n day = dates.find(function (item) { return item.date.date.getTime() === nextDate.getTime(); });\n if (day && day.isFocusable) {\n day.nativeElement.focus();\n return;\n }\n nextMonthView.daysNavService.focusNextDate(day.nativeElement, key);\n }\n // if iterating in the visible prev/next moths above found a day that is not focusable, ie is disabled, hidden, etc\n // then it is needed to recalculate the next day, which is going to be part of the prev/next months\n if (day && !day.isFocusable) {\n day = dates[i + step];\n if (!day) {\n nextDate = this.timedelta(node.date.date, step + i - index);\n }\n }\n // focus item in prev/next month, which is currently out of view\n /** @type {?} */\n var dayIsNextMonth;\n if (day) {\n dayIsNextMonth = step > 0 ? day.date.isNextMonth : day.date.isPrevMonth;\n }\n if (monthView.changeDaysView && !nextMonthView && ((day && dayIsNextMonth) || !day)) {\n /** @type {?} */\n var monthAction = step > 0 ? ScrollMonth.NEXT : ScrollMonth.PREV;\n monthView.onViewChanging.emit({ monthAction: monthAction, key: key, nextDate: nextDate });\n }\n };\n /**\n * Focuses first focusable day in the month. Will go to next visible month, if no day in the first month is focusable\n * @hidden\n */\n /**\n * Focuses first focusable day in the month. Will go to next visible month, if no day in the first month is focusable\n * @hidden\n * @return {?}\n */\n IgxDaysViewNavigationService.prototype.focusHomeDate = /**\n * Focuses first focusable day in the month. Will go to next visible month, if no day in the first month is focusable\n * @hidden\n * @return {?}\n */\n function () {\n /** @type {?} */\n var monthView = this.monthView;\n while (!this.focusFirstDay(monthView) && monthView.nextMonthView) {\n monthView = monthView.nextMonthView;\n }\n };\n /**\n * Focuses last focusable day in the month. Will go to previous visible month, if no day in the first month is focusable\n * @hidden\n */\n /**\n * Focuses last focusable day in the month. Will go to previous visible month, if no day in the first month is focusable\n * @hidden\n * @return {?}\n */\n IgxDaysViewNavigationService.prototype.focusEndDate = /**\n * Focuses last focusable day in the month. Will go to previous visible month, if no day in the first month is focusable\n * @hidden\n * @return {?}\n */\n function () {\n /** @type {?} */\n var monthView = this.monthView;\n while (!this.focusLastDay(monthView) && monthView.prevMonthView) {\n monthView = monthView.prevMonthView;\n }\n };\n /**\n * @private\n * @param {?} date\n * @param {?} units\n * @return {?}\n */\n IgxDaysViewNavigationService.prototype.timedelta = /**\n * @private\n * @param {?} date\n * @param {?} units\n * @return {?}\n */\n function (date, units) {\n /** @type {?} */\n var ret = new Date(date);\n ret.setDate(ret.getDate() + units);\n return ret;\n };\n /**\n * @private\n * @param {?} monthView\n * @return {?}\n */\n IgxDaysViewNavigationService.prototype.focusFirstDay = /**\n * @private\n * @param {?} monthView\n * @return {?}\n */\n function (monthView) {\n /** @type {?} */\n var dates = monthView.dates.filter(function (d) { return d.isCurrentMonth; });\n for (var i = 0; i < dates.length; i++) {\n if (dates[i].isFocusable) {\n dates[i].nativeElement.focus();\n return true;\n }\n }\n return false;\n };\n /**\n * @private\n * @param {?} monthView\n * @return {?}\n */\n IgxDaysViewNavigationService.prototype.focusLastDay = /**\n * @private\n * @param {?} monthView\n * @return {?}\n */\n function (monthView) {\n /** @type {?} */\n var dates = monthView.dates.filter(function (d) { return d.isCurrentMonth; });\n for (var i = dates.length - 1; i >= 0; i--) {\n if (dates[i].isFocusable) {\n dates[i].nativeElement.focus();\n return true;\n }\n }\n return false;\n };\n IgxDaysViewNavigationService.decorators = [\n { type: Injectable }\n ];\n return IgxDaysViewNavigationService;\n}());\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n/** @type {?} */\nvar NEXT_ID$e = 0;\nvar IgxDaysViewComponent = /** @class */ (function (_super) {\n __extends(IgxDaysViewComponent, _super);\n /**\n * @hidden\n */\n function IgxDaysViewComponent(daysNavService) {\n var _this = _super.call(this) || this;\n _this.daysNavService = daysNavService;\n /**\n * Sets/gets the `id` of the days view.\n * If not set, the `id` will have value `\"igx-days-view-0\"`.\n * ```html\n * \n * ```\n * ```typescript\n * let daysViewId = this.daysView.id;\n * ```\n */\n _this.id = \"igx-days-view-\" + NEXT_ID$e++;\n /**\n * @hidden\n */\n _this.changeDaysView = false;\n /**\n * @hidden\n */\n _this.onDateSelection = new EventEmitter();\n /**\n * @hidden\n */\n _this.onViewChanging = new EventEmitter();\n /**\n * The default css class applied to the component.\n *\n * @hidden\n */\n _this.styleClass = true;\n return _this;\n }\n Object.defineProperty(IgxDaysViewComponent.prototype, \"getCalendarMonth\", {\n /**\n * @hidden\n */\n get: /**\n * @hidden\n * @return {?}\n */\n function () {\n return this.calendarModel.monthdatescalendar(this.viewDate.getFullYear(), this.viewDate.getMonth(), true);\n },\n enumerable: true,\n configurable: true\n });\n /**\n * @hidden\n */\n /**\n * @hidden\n * @return {?}\n */\n IgxDaysViewComponent.prototype.ngOnInit = /**\n * @hidden\n * @return {?}\n */\n function () {\n this.daysNavService.monthView = this;\n };\n /**\n * @hidden\n */\n /**\n * @hidden\n * @return {?}\n */\n IgxDaysViewComponent.prototype.ngDoCheck = /**\n * @hidden\n * @return {?}\n */\n function () {\n if (!this.changeDaysView && this.dates) {\n this.disableOutOfRangeDates();\n }\n };\n /**\n * Returns the locale representation of the date in the days view.\n *\n * @hidden\n */\n /**\n * Returns the locale representation of the date in the days view.\n *\n * @hidden\n * @param {?} value\n * @return {?}\n */\n IgxDaysViewComponent.prototype.formattedDate = /**\n * Returns the locale representation of the date in the days view.\n *\n * @hidden\n * @param {?} value\n * @return {?}\n */\n function (value) {\n if (this.formatViews.day) {\n return this.formatterDay.format(value);\n }\n return \"\" + value.getDate();\n };\n /**\n * @hidden\n */\n /**\n * @hidden\n * @return {?}\n */\n IgxDaysViewComponent.prototype.generateWeekHeader = /**\n * @hidden\n * @return {?}\n */\n function () {\n var e_1, _a;\n /** @type {?} */\n var dayNames = [];\n /** @type {?} */\n var rv = this.calendarModel.monthdatescalendar(this.viewDate.getFullYear(), this.viewDate.getMonth())[0];\n try {\n for (var rv_1 = __values(rv), rv_1_1 = rv_1.next(); !rv_1_1.done; rv_1_1 = rv_1.next()) {\n var day = rv_1_1.value;\n dayNames.push(this.formatterWeekday.format(day.date));\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (rv_1_1 && !rv_1_1.done && (_a = rv_1.return)) _a.call(rv_1);\n }\n finally { if (e_1) throw e_1.error; }\n }\n return dayNames;\n };\n /**\n * @hidden\n */\n /**\n * @hidden\n * @param {?} index\n * @param {?} item\n * @return {?}\n */\n IgxDaysViewComponent.prototype.rowTracker = /**\n * @hidden\n * @param {?} index\n * @param {?} item\n * @return {?}\n */\n function (index, item) {\n return \"\" + item[index].date.getMonth() + item[index].date.getDate();\n };\n /**\n * @hidden\n */\n /**\n * @hidden\n * @param {?} index\n * @param {?} item\n * @return {?}\n */\n IgxDaysViewComponent.prototype.dateTracker = /**\n * @hidden\n * @param {?} index\n * @param {?} item\n * @return {?}\n */\n function (index, item) {\n return item.date.getMonth() + \"--\" + item.date.getDate();\n };\n /**\n * @hidden\n */\n /**\n * @hidden\n * @param {?} value\n * @return {?}\n */\n IgxDaysViewComponent.prototype.isCurrentMonth = /**\n * @hidden\n * @param {?} value\n * @return {?}\n */\n function (value) {\n return this.viewDate.getMonth() === value.getMonth();\n };\n /**\n * @hidden\n */\n /**\n * @hidden\n * @param {?} value\n * @return {?}\n */\n IgxDaysViewComponent.prototype.isCurrentYear = /**\n * @hidden\n * @param {?} value\n * @return {?}\n */\n function (value) {\n return this.viewDate.getFullYear() === value.getFullYear();\n };\n /**\n * @hidden\n */\n /**\n * @hidden\n * @param {?} date\n * @return {?}\n */\n IgxDaysViewComponent.prototype.isSelected = /**\n * @hidden\n * @param {?} date\n * @return {?}\n */\n function (date) {\n /** @type {?} */\n var selectedDates;\n if (this.isDateDisabled(date.date) || !this.value ||\n (Array.isArray(this.value) && this.value.length === 0)) {\n return false;\n }\n if (this.selection === CalendarSelection.SINGLE) {\n selectedDates = ((/** @type {?} */ (this.value)));\n return this.getDateOnly(selectedDates).getTime() === date.date.getTime();\n }\n selectedDates = ((/** @type {?} */ (this.value)));\n if (this.selection === CalendarSelection.RANGE && selectedDates.length === 1) {\n return this.getDateOnly(selectedDates[0]).getTime() === date.date.getTime();\n }\n if (this.selection === CalendarSelection.MULTI) {\n /** @type {?} */\n var start = this.getDateOnly(selectedDates[0]);\n /** @type {?} */\n var end = this.getDateOnly(selectedDates[selectedDates.length - 1]);\n if (this.isWithinRange(date.date, false, start, end)) {\n /** @type {?} */\n var currentDate = selectedDates.find(function (element) { return element.getTime() === date.date.getTime(); });\n return !!currentDate;\n }\n else {\n return false;\n }\n }\n else {\n return this.isWithinRange(date.date, true);\n }\n };\n /**\n * @hidden\n */\n /**\n * @hidden\n * @param {?} date\n * @return {?}\n */\n IgxDaysViewComponent.prototype.isLastInRange = /**\n * @hidden\n * @param {?} date\n * @return {?}\n */\n function (date) {\n if (this.isSingleSelection || !this.value) {\n return false;\n }\n /** @type {?} */\n var dates = (/** @type {?} */ (this.value));\n /** @type {?} */\n var lastDate = dates[dates.length - 1];\n return isEqual(lastDate, date.date);\n };\n /**\n * @hidden\n */\n /**\n * @hidden\n * @param {?} date\n * @return {?}\n */\n IgxDaysViewComponent.prototype.isFirstInRange = /**\n * @hidden\n * @param {?} date\n * @return {?}\n */\n function (date) {\n if (this.isSingleSelection || !this.value) {\n return false;\n }\n return isEqual(((/** @type {?} */ (this.value)))[0], date.date);\n };\n /**\n * @hidden\n */\n /**\n * @hidden\n * @param {?} date\n * @param {?} checkForRange\n * @param {?=} min\n * @param {?=} max\n * @return {?}\n */\n IgxDaysViewComponent.prototype.isWithinRange = /**\n * @hidden\n * @param {?} date\n * @param {?} checkForRange\n * @param {?=} min\n * @param {?=} max\n * @return {?}\n */\n function (date, checkForRange, min, max) {\n if (checkForRange && !(Array.isArray(this.value) && this.value.length > 1)) {\n return false;\n }\n min = min ? min : this.value[0];\n max = max ? max : this.value[((/** @type {?} */ (this.value))).length - 1];\n return isDateInRanges(date, [\n {\n type: DateRangeType.Between,\n dateRange: [min, max]\n }\n ]);\n };\n /**\n *@hidden\n */\n /**\n * @hidden\n * @return {?}\n */\n IgxDaysViewComponent.prototype.focusActiveDate = /**\n * @hidden\n * @return {?}\n */\n function () {\n /** @type {?} */\n var date = this.dates.find(function (d) { return d.selected; });\n if (!date) {\n date = this.dates.find(function (d) { return d.isToday; });\n }\n if (date.isFocusable) {\n date.nativeElement.focus();\n }\n };\n /**\n * @hidden\n */\n /**\n * @hidden\n * @param {?} event\n * @return {?}\n */\n IgxDaysViewComponent.prototype.selectDay = /**\n * @hidden\n * @param {?} event\n * @return {?}\n */\n function (event) {\n this.selectDateFromClient(event.date);\n this.onDateSelection.emit(event);\n this.onSelection.emit(this.selectedDates);\n };\n /**\n * @hidden\n */\n /**\n * @hidden\n * @private\n * @return {?}\n */\n IgxDaysViewComponent.prototype.disableOutOfRangeDates = /**\n * @hidden\n * @private\n * @return {?}\n */\n function () {\n /** @type {?} */\n var dateRange = [];\n this.dates.toArray().forEach(function (date) {\n if (!date.isCurrentMonth) {\n dateRange.push(date.date.date);\n }\n });\n this.outOfRangeDates = [{\n type: DateRangeType.Specific,\n dateRange: dateRange\n }];\n };\n /**\n * @hidden\n */\n /**\n * @hidden\n * @return {?}\n */\n IgxDaysViewComponent.prototype.getFirstMonthView = /**\n * @hidden\n * @return {?}\n */\n function () {\n /** @type {?} */\n var monthView = (/** @type {?} */ (this));\n while (monthView.prevMonthView) {\n monthView = monthView.prevMonthView;\n }\n return monthView;\n };\n /**\n * @hidden\n */\n /**\n * @hidden\n * @private\n * @return {?}\n */\n IgxDaysViewComponent.prototype.getLastMonthView = /**\n * @hidden\n * @private\n * @return {?}\n */\n function () {\n /** @type {?} */\n var monthView = (/** @type {?} */ (this));\n while (monthView.nextMonthView) {\n monthView = monthView.nextMonthView;\n }\n return monthView;\n };\n Object.defineProperty(IgxDaysViewComponent.prototype, \"isSingleSelection\", {\n /**\n * @hidden\n */\n get: /**\n * @hidden\n * @private\n * @return {?}\n */\n function () {\n return this.selection !== CalendarSelection.RANGE;\n },\n enumerable: true,\n configurable: true\n });\n /**\n * @hidden\n */\n /**\n * @hidden\n * @param {?} event\n * @return {?}\n */\n IgxDaysViewComponent.prototype.onKeydownArrow = /**\n * @hidden\n * @param {?} event\n * @return {?}\n */\n function (event) {\n event.preventDefault();\n event.stopPropagation();\n this.daysNavService.focusNextDate((/** @type {?} */ (event.target)), event.key);\n };\n /**\n * @hidden\n */\n /**\n * @hidden\n * @param {?} event\n * @return {?}\n */\n IgxDaysViewComponent.prototype.onKeydownHome = /**\n * @hidden\n * @param {?} event\n * @return {?}\n */\n function (event) {\n event.preventDefault();\n event.stopPropagation();\n this.getFirstMonthView().daysNavService.focusHomeDate();\n };\n /**\n * @hidden\n */\n /**\n * @hidden\n * @param {?} event\n * @return {?}\n */\n IgxDaysViewComponent.prototype.onKeydownEnd = /**\n * @hidden\n * @param {?} event\n * @return {?}\n */\n function (event) {\n event.preventDefault();\n event.stopPropagation();\n this.getLastMonthView().daysNavService.focusEndDate();\n };\n IgxDaysViewComponent.decorators = [\n { type: Component, args: [{\n providers: [\n {\n multi: true,\n provide: NG_VALUE_ACCESSOR,\n useExisting: IgxDaysViewComponent\n },\n { provide: IgxDaysViewNavigationService, useClass: IgxDaysViewNavigationService }\n ],\n selector: 'igx-days-view',\n template: \"
\\n \\n {{ dayName | titlecase }}\\n \\n
\\n\\n
\\n \\n {{ formattedDate(day.date) }}\\n \\n
\\n\"\n }] }\n ];\n /** @nocollapse */\n IgxDaysViewComponent.ctorParameters = function () { return [\n { type: IgxDaysViewNavigationService }\n ]; };\n IgxDaysViewComponent.propDecorators = {\n id: [{ type: HostBinding, args: ['attr.id',] }, { type: Input }],\n changeDaysView: [{ type: Input }],\n onDateSelection: [{ type: Output }],\n onViewChanging: [{ type: Output }],\n dates: [{ type: ViewChildren, args: [IgxDayItemComponent, { read: IgxDayItemComponent },] }],\n styleClass: [{ type: HostBinding, args: ['class.igx-calendar',] }],\n onKeydownArrow: [{ type: HostListener, args: ['keydown.arrowleft', ['$event'],] }, { type: HostListener, args: ['keydown.arrowright', ['$event'],] }, { type: HostListener, args: ['keydown.arrowup', ['$event'],] }, { type: HostListener, args: ['keydown.arrowdown', ['$event'],] }],\n onKeydownHome: [{ type: HostListener, args: ['keydown.home', ['$event'],] }],\n onKeydownEnd: [{ type: HostListener, args: ['keydown.end', ['$event'],] }]\n };\n return IgxDaysViewComponent;\n}(IgxCalendarBase));\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n/** @type {?} */\nvar NEXT_ID$f = 0;\n/**\n * Calendar provides a way to display date information.\n *\n * \\@igxModule IgxCalendarModule\n *\n * \\@igxTheme igx-calendar-theme, igx-icon-theme\n *\n * \\@igxKeywords calendar, datepicker, schedule, date\n *\n * \\@igxGroup Scheduling\n *\n * \\@remarks\n * The Ignite UI Calendar provides an easy way to display a calendar and allow users to select dates using single, multiple\n * or range selection.\n *\n * \\@example:\n * ```html\n * \n * ```\n */\nvar IgxCalendarComponent = /** @class */ (function (_super) {\n __extends(IgxCalendarComponent, _super);\n function IgxCalendarComponent() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n /**\n * Sets/gets the `id` of the calendar.\n *\n * \\@remarks\n * If not set, the `id` will have value `\"igx-calendar-0\"`.\n *\n * \\@example\n * ```html\n * \n * ```\n * \\@memberof IgxCalendarComponent\n */\n _this.id = \"igx-calendar-\" + NEXT_ID$f++;\n /**\n * Sets/gets whether the calendar has header.\n * Default value is `true`.\n *\n * \\@example\n * ```html\n * \n * ```\n */\n _this.hasHeader = true;\n /**\n * Sets/gets whether the calendar header will be in vertical position.\n * Default value is `false`.\n *\n * \\@example\n * ```html\n * \n * ```\n */\n _this.vertical = false;\n /**\n * Apply the different states for the transitions of animateChange\n * @hidden\n * \\@internal\n */\n _this.animationAction = '';\n /**\n * Denote if the calendar view was changed with the keyboard\n *\n * @hidden\n * \\@internal\n */\n _this.isKeydownTrigger = false;\n /**\n * The default `tabindex` attribute for the component.\n *\n * @hidden\n * \\@internal\n */\n _this.tabindex = 0;\n /**\n * The default aria role attribute for the component.\n *\n * @hidden\n * \\@internal\n */\n _this.role = 'grid';\n /**\n * The default aria lebelled by attribute for the component.\n *\n * @hidden\n * \\@internal\n */\n _this.ariaLabelledBy = 'calendar';\n /**\n * The default css class applied to the component.\n *\n * @hidden\n * \\@internal\n */\n _this.styleClass = true;\n /**\n * @hidden\n * \\@internal\n */\n _this._monthsViewNumber = 1;\n /**\n * Continious navigation through the previous months\n * @hidden\n * \\@internal\n */\n _this.startPrevMonthScroll = function (isKeydownTrigger) {\n if (isKeydownTrigger === void 0) { isKeydownTrigger = false; }\n _this.startMonthScroll$.next();\n _this.monthScrollDirection = ScrollMonth.PREV;\n _this.previousMonth(isKeydownTrigger);\n };\n /**\n * Continious navigation through the next months\n * @hidden\n * \\@internal\n */\n _this.startNextMonthScroll = function (isKeydownTrigger) {\n if (isKeydownTrigger === void 0) { isKeydownTrigger = false; }\n _this.startMonthScroll$.next();\n _this.monthScrollDirection = ScrollMonth.NEXT;\n _this.nextMonth(isKeydownTrigger);\n };\n /**\n * Stop continuous navigation\n * @hidden\n * \\@internal\n */\n _this.stopMonthScroll = function (event) {\n event.stopPropagation();\n // generally the scrolling is built on the calendar component\n // and all start/stop scrolling methods are called on the calendar\n // if we change below lines to call stopMonthScroll$ on the calendar instead of on the views,\n // strange bug is introduced --> after changing number of months, continuous scrolling on mouse click does not happen\n _this.daysView.stopMonthScroll$.next(true);\n _this.daysView.stopMonthScroll$.complete();\n if (_this.monthScrollDirection === ScrollMonth.PREV) {\n _this.prevMonthBtn.nativeElement.focus();\n }\n else if (_this.monthScrollDirection === ScrollMonth.NEXT) {\n _this.nextMonthBtn.nativeElement.focus();\n }\n _this.monthScrollDirection = ScrollMonth.NONE;\n };\n return _this;\n }\n Object.defineProperty(IgxCalendarComponent.prototype, \"monthsViewNumber\", {\n /**\n * Sets/gets the number of month views displayed.\n * Default value is `1`.\n *\n * @example\n * ```html\n * \n * ```\n */\n get: /**\n * Sets/gets the number of month views displayed.\n * Default value is `1`.\n *\n * \\@example\n * ```html\n * \n * ```\n * @return {?}\n */\n function () {\n return this._monthsViewNumber;\n },\n set: /**\n * @param {?} val\n * @return {?}\n */\n function (val) {\n if (val < 1) {\n return;\n }\n this._monthsViewNumber = val;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxCalendarComponent.prototype, \"styleVerticalClass\", {\n /**\n * The default css class applied to the component.\n *\n * @hidden\n * @internal\n */\n get: /**\n * The default css class applied to the component.\n *\n * @hidden\n * \\@internal\n * @return {?}\n */\n function () {\n return this.vertical;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxCalendarComponent.prototype, \"isYearView\", {\n /**\n * Denote if the year view is active.\n * @hidden\n * @internal\n */\n get: /**\n * Denote if the year view is active.\n * @hidden\n * \\@internal\n * @return {?}\n */\n function () {\n return this.activeView === CalendarView.YEAR;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxCalendarComponent.prototype, \"headerTemplate\", {\n /**\n * Gets the header template.\n *\n * @example\n * ```typescript\n * let headerTemplate = this.calendar.headerTeamplate;\n * ```\n * @memberof IgxCalendarComponent\n */\n get: /**\n * Gets the header template.\n *\n * \\@example\n * ```typescript\n * let headerTemplate = this.calendar.headerTeamplate;\n * ```\n * \\@memberof IgxCalendarComponent\n * @return {?}\n */\n function () {\n if (this.headerTemplateDirective) {\n return this.headerTemplateDirective.template;\n }\n return null;\n },\n /**\n * Sets the header template.\n *\n * @example\n * ```html\n * \n * ```\n * @memberof IgxCalendarComponent\n */\n set: /**\n * Sets the header template.\n *\n * \\@example\n * ```html\n * \n * ```\n * \\@memberof IgxCalendarComponent\n * @param {?} directive\n * @return {?}\n */\n function (directive) {\n this.headerTemplateDirective = directive;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxCalendarComponent.prototype, \"subheaderTemplate\", {\n /**\n * Gets the subheader template.\n *\n * @example\n * ```typescript\n * let subheaderTemplate = this.calendar.subheaderTemplate;\n * ```\n */\n get: /**\n * Gets the subheader template.\n *\n * \\@example\n * ```typescript\n * let subheaderTemplate = this.calendar.subheaderTemplate;\n * ```\n * @return {?}\n */\n function () {\n if (this.subheaderTemplateDirective) {\n return this.subheaderTemplateDirective.template;\n }\n return null;\n },\n /**\n * Sets the subheader template.\n *\n * @example\n * ```html\n * \n * ```\n * @memberof IgxCalendarComponent\n */\n set: /**\n * Sets the subheader template.\n *\n * \\@example\n * ```html\n * \n * ```\n * \\@memberof IgxCalendarComponent\n * @param {?} directive\n * @return {?}\n */\n function (directive) {\n this.subheaderTemplateDirective = directive;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxCalendarComponent.prototype, \"headerContext\", {\n /**\n * Gets the context for the template marked with the `igxCalendarHeader` directive.\n *\n * @example\n * ```typescript\n * let headerContext = this.calendar.headerContext;\n * ```\n */\n get: /**\n * Gets the context for the template marked with the `igxCalendarHeader` directive.\n *\n * \\@example\n * ```typescript\n * let headerContext = this.calendar.headerContext;\n * ```\n * @return {?}\n */\n function () {\n /** @type {?} */\n var date = this.headerDate;\n return this.generateContext(date);\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxCalendarComponent.prototype, \"context\", {\n /**\n * Gets the context for the template marked with either `igxCalendarSubHeaderMonth`\n * or `igxCalendarSubHeaderYear` directive.\n *\n * @example\n * ```typescript\n * let context = this.calendar.context;\n * ```\n */\n get: /**\n * Gets the context for the template marked with either `igxCalendarSubHeaderMonth`\n * or `igxCalendarSubHeaderYear` directive.\n *\n * \\@example\n * ```typescript\n * let context = this.calendar.context;\n * ```\n * @return {?}\n */\n function () {\n /** @type {?} */\n var date = this.viewDate;\n return this.generateContext(date);\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxCalendarComponent.prototype, \"headerDate\", {\n /**\n * Date displayed in header\n *\n * @hidden\n * @internal\n */\n get: /**\n * Date displayed in header\n *\n * @hidden\n * \\@internal\n * @return {?}\n */\n function () {\n return this.selectedDates ? this.selectedDates : new Date();\n },\n enumerable: true,\n configurable: true\n });\n /**\n * @return {?}\n */\n IgxCalendarComponent.prototype.ngAfterViewInit = /**\n * @return {?}\n */\n function () {\n var _this = this;\n this.setSiblingMonths(this.monthViews);\n this._monthViewsChanges$ = this.monthViews.changes.subscribe(function (c) {\n _this.setSiblingMonths(c);\n });\n this.startMonthScroll$.pipe(takeUntil(this.stopMonthScroll$), switchMap(function () { return _this.scrollMonth$.pipe(skipLast(1), debounce(function () { return interval(300); }), takeUntil(_this.stopMonthScroll$)); })).subscribe(function () {\n switch (_this.monthScrollDirection) {\n case ScrollMonth.PREV:\n _this.previousMonth();\n break;\n case ScrollMonth.NEXT:\n _this.nextMonth();\n break;\n case ScrollMonth.NONE:\n default:\n break;\n }\n });\n };\n /**\n * Returns the locale representation of the month in the month view if enabled,\n * otherwise returns the default `Date.getMonth()` value.\n *\n * @hidden\n * @internal\n */\n /**\n * Returns the locale representation of the month in the month view if enabled,\n * otherwise returns the default `Date.getMonth()` value.\n *\n * @hidden\n * \\@internal\n * @param {?} value\n * @return {?}\n */\n IgxCalendarComponent.prototype.formattedMonth = /**\n * Returns the locale representation of the month in the month view if enabled,\n * otherwise returns the default `Date.getMonth()` value.\n *\n * @hidden\n * \\@internal\n * @param {?} value\n * @return {?}\n */\n function (value) {\n if (this.formatViews.month) {\n return this.formatterMonth.format(value);\n }\n return \"\" + value.getMonth();\n };\n /**\n * Change to previous month\n *\n * @hidden\n * @internal\n */\n /**\n * Change to previous month\n *\n * @hidden\n * \\@internal\n * @param {?=} isKeydownTrigger\n * @return {?}\n */\n IgxCalendarComponent.prototype.previousMonth = /**\n * Change to previous month\n *\n * @hidden\n * \\@internal\n * @param {?=} isKeydownTrigger\n * @return {?}\n */\n function (isKeydownTrigger) {\n if (isKeydownTrigger === void 0) { isKeydownTrigger = false; }\n this.viewDate = this.calendarModel.getPrevMonth(this.viewDate);\n this.animationAction = ScrollMonth.PREV;\n this.isKeydownTrigger = isKeydownTrigger;\n };\n /**\n * Change to next month\n *\n * @hidden\n * @internal\n */\n /**\n * Change to next month\n *\n * @hidden\n * \\@internal\n * @param {?=} isKeydownTrigger\n * @return {?}\n */\n IgxCalendarComponent.prototype.nextMonth = /**\n * Change to next month\n *\n * @hidden\n * \\@internal\n * @param {?=} isKeydownTrigger\n * @return {?}\n */\n function (isKeydownTrigger) {\n if (isKeydownTrigger === void 0) { isKeydownTrigger = false; }\n this.viewDate = this.calendarModel.getNextMonth(this.viewDate);\n this.animationAction = ScrollMonth.NEXT;\n this.isKeydownTrigger = isKeydownTrigger;\n };\n /**\n * @hidden\n * @internal\n */\n /**\n * @hidden\n * \\@internal\n * @param {?} args\n * @param {?} activeViewIdx\n * @return {?}\n */\n IgxCalendarComponent.prototype.onActiveViewDecade = /**\n * @hidden\n * \\@internal\n * @param {?} args\n * @param {?} activeViewIdx\n * @return {?}\n */\n function (args, activeViewIdx) {\n var _this = this;\n _super.prototype.activeViewDecade.call(this, activeViewIdx);\n requestAnimationFrame(function () {\n if (_this.dacadeView) {\n _this.dacadeView.date = args;\n _this.dacadeView.el.nativeElement.focus();\n }\n });\n };\n /**\n * @hidden\n * @internal\n */\n /**\n * @hidden\n * \\@internal\n * @param {?} event\n * @param {?} args\n * @param {?} activeViewIdx\n * @return {?}\n */\n IgxCalendarComponent.prototype.onActiveViewDecadeKB = /**\n * @hidden\n * \\@internal\n * @param {?} event\n * @param {?} args\n * @param {?} activeViewIdx\n * @return {?}\n */\n function (event, args, activeViewIdx) {\n var _this = this;\n _super.prototype.activeViewDecadeKB.call(this, event, activeViewIdx);\n requestAnimationFrame(function () {\n if (_this.dacadeView) {\n _this.dacadeView.date = args;\n _this.dacadeView.el.nativeElement.focus();\n }\n });\n };\n /**\n * @hidden\n * @internal\n */\n /**\n * @hidden\n * \\@internal\n * @return {?}\n */\n IgxCalendarComponent.prototype.getFormattedDate = /**\n * @hidden\n * \\@internal\n * @return {?}\n */\n function () {\n /** @type {?} */\n var date = this.headerDate;\n return {\n monthday: this.formatterMonthday.format(date),\n weekday: this.formatterWeekday.format(date),\n };\n };\n /**\n * Handles invoked on date selection\n * @hidden\n * @internal\n */\n /**\n * Handles invoked on date selection\n * @hidden\n * \\@internal\n * @param {?} instance\n * @return {?}\n */\n IgxCalendarComponent.prototype.childClicked = /**\n * Handles invoked on date selection\n * @hidden\n * \\@internal\n * @param {?} instance\n * @return {?}\n */\n function (instance) {\n if (instance.isPrevMonth) {\n this.previousMonth();\n }\n if (instance.isNextMonth) {\n this.nextMonth();\n }\n this.selectDateFromClient(instance.date);\n if (this.selection === 'multi') {\n this.deselectDateInMonthViews(instance.date);\n }\n this.onSelection.emit(this.selectedDates);\n };\n /**\n * @hidden\n * @internal\n */\n /**\n * @hidden\n * \\@internal\n * @param {?} args\n * @return {?}\n */\n IgxCalendarComponent.prototype.viewChanging = /**\n * @hidden\n * \\@internal\n * @param {?} args\n * @return {?}\n */\n function (args) {\n var _this = this;\n this.animationAction = args.monthAction;\n this.isKeydownTrigger = true;\n this.nextDate = args.nextDate;\n this.callback = function (next) {\n /** @type {?} */\n var day = _this.daysView.dates.find(function (item) { return item.date.date.getTime() === next.getTime(); });\n if (day) {\n _this.daysView.daysNavService.focusNextDate(day.nativeElement, args.key, true);\n }\n };\n this.viewDate = this.nextDate;\n };\n /**\n * @hidden\n * @intenal\n */\n /**\n * @hidden\n * \\@intenal\n * @param {?} event\n * @return {?}\n */\n IgxCalendarComponent.prototype.changeMonth = /**\n * @hidden\n * \\@intenal\n * @param {?} event\n * @return {?}\n */\n function (event) {\n var _this = this;\n this.viewDate = this.calendarModel.getFirstViewDate(event, 'month', this.activeViewIdx);\n this.activeView = CalendarView.DEFAULT;\n requestAnimationFrame(function () {\n /** @type {?} */\n var elem = _this.monthsBtns.find(function (e, idx) { return idx === _this.activeViewIdx; });\n if (elem) {\n elem.nativeElement.focus();\n }\n });\n };\n /**\n * @hidden\n * @internal\n */\n /**\n * @hidden\n * \\@internal\n * @param {?} args\n * @param {?} activeViewIdx\n * @param {?=} event\n * @return {?}\n */\n IgxCalendarComponent.prototype.onActiveViewYear = /**\n * @hidden\n * \\@internal\n * @param {?} args\n * @param {?} activeViewIdx\n * @param {?=} event\n * @return {?}\n */\n function (args, activeViewIdx, event) {\n var _this = this;\n this.activeView = CalendarView.YEAR;\n this.activeViewIdx = activeViewIdx;\n requestAnimationFrame(function () {\n _this.monthsView.date = args;\n _this.focusMonth(event.target);\n });\n };\n /**\n * @private\n * @param {?} target\n * @return {?}\n */\n IgxCalendarComponent.prototype.focusMonth = /**\n * @private\n * @param {?} target\n * @return {?}\n */\n function (target) {\n /** @type {?} */\n var month = this.monthsView.monthsRef.find(function (e) {\n return e.index === parseInt(target.parentElement.attributes['data-month'].value, 10);\n });\n if (month) {\n month.nativeElement.focus();\n }\n };\n /**\n * @hidden\n * @internal\n */\n /**\n * @hidden\n * \\@internal\n * @param {?} args\n * @param {?} event\n * @param {?} activeViewIdx\n * @return {?}\n */\n IgxCalendarComponent.prototype.onActiveViewYearKB = /**\n * @hidden\n * \\@internal\n * @param {?} args\n * @param {?} event\n * @param {?} activeViewIdx\n * @return {?}\n */\n function (args, event, activeViewIdx) {\n if (event.key === \" \" /* SPACE */ || event.key === \"Spacebar\" /* SPACE_IE */ || event.key === \"Enter\" /* ENTER */) {\n event.preventDefault();\n this.onActiveViewYear(args, activeViewIdx, event);\n }\n };\n /**\n * Deselects date(s) (based on the selection type).\n *\n * @example\n *```typescript\n * this.calendar.deselectDate(new Date(`2018-06-12`));\n *````\n */\n /**\n * Deselects date(s) (based on the selection type).\n *\n * \\@example\n * ```typescript\n * this.calendar.deselectDate(new Date(`2018-06-12`));\n * ````\n * @param {?=} value\n * @return {?}\n */\n IgxCalendarComponent.prototype.deselectDate = /**\n * Deselects date(s) (based on the selection type).\n *\n * \\@example\n * ```typescript\n * this.calendar.deselectDate(new Date(`2018-06-12`));\n * ````\n * @param {?=} value\n * @return {?}\n */\n function (value) {\n var _this = this;\n _super.prototype.deselectDate.call(this, value);\n this.monthViews.forEach(function (view) {\n view.selectedDates = _this.selectedDates;\n view.rangeStarted = false;\n });\n this._onChangeCallback(this.selectedDates);\n };\n /**\n * Helper method that does deselection for all month views when selection is \"multi\"\n * If not called, selection in other month views stays\n * @hidden\n * @internal\n */\n /**\n * Helper method that does deselection for all month views when selection is \"multi\"\n * If not called, selection in other month views stays\n * @hidden\n * \\@internal\n * @private\n * @param {?} value\n * @return {?}\n */\n IgxCalendarComponent.prototype.deselectDateInMonthViews = /**\n * Helper method that does deselection for all month views when selection is \"multi\"\n * If not called, selection in other month views stays\n * @hidden\n * \\@internal\n * @private\n * @param {?} value\n * @return {?}\n */\n function (value) {\n this.monthViews.forEach(function (m) {\n m.deselectMultipleInMonth(value);\n });\n };\n /**\n * @hidden\n * @internal\n */\n /**\n * @hidden\n * \\@internal\n * @param {?} i\n * @return {?}\n */\n IgxCalendarComponent.prototype.getViewDate = /**\n * @hidden\n * \\@internal\n * @param {?} i\n * @return {?}\n */\n function (i) {\n /** @type {?} */\n var date = this.calendarModel.timedelta(this.viewDate, 'month', i);\n return date;\n };\n /**\n * Getter for the context object inside the calendar templates.\n * @hidden\n * @internal\n */\n /**\n * Getter for the context object inside the calendar templates.\n * @hidden\n * \\@internal\n * @param {?} i\n * @return {?}\n */\n IgxCalendarComponent.prototype.getContext = /**\n * Getter for the context object inside the calendar templates.\n * @hidden\n * \\@internal\n * @param {?} i\n * @return {?}\n */\n function (i) {\n /** @type {?} */\n var date = this.getViewDate(i);\n return this.generateContext(date, i);\n };\n /**\n * @hidden\n * @internal\n */\n /**\n * @hidden\n * \\@internal\n * @param {?} event\n * @return {?}\n */\n IgxCalendarComponent.prototype.animationDone = /**\n * @hidden\n * \\@internal\n * @param {?} event\n * @return {?}\n */\n function (event) {\n if (this.monthScrollDirection !== ScrollMonth.NONE) {\n this.scrollMonth$.next();\n }\n if (this.activeView !== CalendarView.DEFAULT) {\n return;\n }\n /** @type {?} */\n var monthView = (/** @type {?} */ (this.daysView));\n /** @type {?} */\n var date = monthView.dates.find(function (d) { return d.selected; });\n while (!date && monthView.nextMonthView) {\n monthView = monthView.nextMonthView;\n date = monthView.dates.find(function (d) { return d.selected; });\n }\n if (date && date.isFocusable && !this.isKeydownTrigger) {\n setTimeout(function () {\n date.nativeElement.focus();\n }, parseInt(slideInRight.options.params.duration, 10));\n }\n else if (this.callback && (event.toState === ScrollMonth.NEXT || event.toState === ScrollMonth.PREV)) {\n this.callback(this.nextDate);\n }\n this.animationAction = ScrollMonth.NONE;\n };\n /**\n * Keyboard navigation of the calendar\n * @hidden\n * @internal\n */\n /**\n * Keyboard navigation of the calendar\n * @hidden\n * \\@internal\n * @param {?} event\n * @return {?}\n */\n IgxCalendarComponent.prototype.onKeydownPageDown = /**\n * Keyboard navigation of the calendar\n * @hidden\n * \\@internal\n * @param {?} event\n * @return {?}\n */\n function (event) {\n var _this = this;\n event.preventDefault();\n if (this.activeView !== CalendarView.DEFAULT) {\n return;\n }\n /** @type {?} */\n var isPageDown = event.key === 'PageDown';\n /** @type {?} */\n var step = isPageDown ? 1 : -1;\n /** @type {?} */\n var monthView = (/** @type {?} */ (this.daysView));\n /** @type {?} */\n var activeDate;\n while (!activeDate && monthView) {\n activeDate = monthView.dates.find(function (date) { return date.nativeElement === document.activeElement; });\n monthView = monthView.nextMonthView;\n }\n if (activeDate) {\n this.nextDate = new Date(activeDate.date.date);\n /** @type {?} */\n var year = this.nextDate.getFullYear();\n /** @type {?} */\n var month = this.nextDate.getMonth() + step;\n if (isPageDown) {\n if (month > 11) {\n month = 0;\n year += step;\n }\n }\n else {\n if (month < 0) {\n month = 11;\n year += step;\n }\n }\n /** @type {?} */\n var range = monthRange(this.nextDate.getFullYear(), month);\n /** @type {?} */\n var day = this.nextDate.getDate();\n if (day > range[1]) {\n day = range[1];\n }\n this.nextDate.setDate(day);\n this.nextDate.setMonth(month);\n this.nextDate.setFullYear(year);\n this.callback = function (next) {\n monthView = (/** @type {?} */ (_this.daysView));\n /** @type {?} */\n var dayItem;\n while ((!dayItem && monthView) || (dayItem && !dayItem.isCurrentMonth)) {\n dayItem = monthView.dates.find(function (d) { return d.date.date.getTime() === next.getTime(); });\n monthView = monthView.nextMonthView;\n }\n if (dayItem && dayItem.isFocusable) {\n dayItem.nativeElement.focus();\n }\n };\n }\n if (isPageDown) {\n this.nextMonth(true);\n }\n else {\n this.previousMonth(true);\n }\n };\n /**\n * Keyboard navigation of the calendar\n * @hidden\n * @internal\n */\n /**\n * Keyboard navigation of the calendar\n * @hidden\n * \\@internal\n * @param {?} event\n * @return {?}\n */\n IgxCalendarComponent.prototype.onKeydownShiftPageUp = /**\n * Keyboard navigation of the calendar\n * @hidden\n * \\@internal\n * @param {?} event\n * @return {?}\n */\n function (event) {\n var _this = this;\n event.preventDefault();\n if (this.activeView !== CalendarView.DEFAULT) {\n return;\n }\n /** @type {?} */\n var isPageDown = event.key === 'PageDown';\n /** @type {?} */\n var step = isPageDown ? 1 : -1;\n this.viewDate = this.calendarModel.timedelta(this.viewDate, 'year', step);\n this.animationAction = isPageDown ? ScrollMonth.NEXT : ScrollMonth.PREV;\n this.isKeydownTrigger = true;\n /** @type {?} */\n var monthView = (/** @type {?} */ (this.daysView));\n /** @type {?} */\n var activeDate;\n while (!activeDate && monthView) {\n activeDate = monthView.dates.find(function (date) { return date.nativeElement === document.activeElement; });\n monthView = monthView.nextMonthView;\n }\n if (activeDate) {\n this.nextDate = new Date(activeDate.date.date);\n /** @type {?} */\n var year = this.nextDate.getFullYear() + step;\n /** @type {?} */\n var range = monthRange(year, this.nextDate.getMonth());\n /** @type {?} */\n var day = this.nextDate.getDate();\n if (day > range[1]) {\n day = range[1];\n }\n this.nextDate.setDate(day);\n this.nextDate.setFullYear(year);\n this.callback = function (next) {\n monthView = (/** @type {?} */ (_this.daysView));\n /** @type {?} */\n var dayItem;\n while ((!dayItem && monthView) || (dayItem && !dayItem.isCurrentMonth)) {\n dayItem = monthView.dates.find(function (d) { return d.date.date.getTime() === next.getTime(); });\n monthView = monthView.nextMonthView;\n }\n if (dayItem && dayItem.isFocusable) {\n dayItem.nativeElement.focus();\n }\n };\n }\n };\n /**\n * Keyboard navigation of the calendar\n * @hidden\n * @internal\n */\n /**\n * Keyboard navigation of the calendar\n * @hidden\n * \\@internal\n * @param {?} event\n * @return {?}\n */\n IgxCalendarComponent.prototype.onKeydownHome = /**\n * Keyboard navigation of the calendar\n * @hidden\n * \\@internal\n * @param {?} event\n * @return {?}\n */\n function (event) {\n if (this.daysView) {\n this.daysView.onKeydownHome(event);\n }\n };\n /**\n * Keyboard navigation of the calendar\n * @hidden\n * @internal\n */\n /**\n * Keyboard navigation of the calendar\n * @hidden\n * \\@internal\n * @param {?} event\n * @return {?}\n */\n IgxCalendarComponent.prototype.onKeydownEnd = /**\n * Keyboard navigation of the calendar\n * @hidden\n * \\@internal\n * @param {?} event\n * @return {?}\n */\n function (event) {\n if (this.daysView) {\n this.daysView.onKeydownEnd(event);\n }\n };\n /**\n * Stop continuous navigation on mouseup event\n * @hidden\n * @internal\n */\n /**\n * Stop continuous navigation on mouseup event\n * @hidden\n * \\@internal\n * @param {?} event\n * @return {?}\n */\n IgxCalendarComponent.prototype.onMouseUp = /**\n * Stop continuous navigation on mouseup event\n * @hidden\n * \\@internal\n * @param {?} event\n * @return {?}\n */\n function (event) {\n if (this.monthScrollDirection !== ScrollMonth.NONE) {\n this.stopMonthScroll(event);\n }\n };\n /**\n * @hidden\n * @internal\n */\n /**\n * @hidden\n * \\@internal\n * @return {?}\n */\n IgxCalendarComponent.prototype.ngOnDestroy = /**\n * @hidden\n * \\@internal\n * @return {?}\n */\n function () {\n if (this._monthViewsChanges$) {\n this._monthViewsChanges$.unsubscribe();\n }\n };\n /**\n * Helper method building and returning the context object inside\n * the calendar templates.\n * @hidden\n * @internal\n */\n /**\n * Helper method building and returning the context object inside\n * the calendar templates.\n * @hidden\n * \\@internal\n * @private\n * @param {?} value\n * @param {?=} i\n * @return {?}\n */\n IgxCalendarComponent.prototype.generateContext = /**\n * Helper method building and returning the context object inside\n * the calendar templates.\n * @hidden\n * \\@internal\n * @private\n * @param {?} value\n * @param {?=} i\n * @return {?}\n */\n function (value, i) {\n var _this = this;\n /** @type {?} */\n var formatObject = __assign({ index: i, monthView: function () { return _this.onActiveViewYear(value, i); }, yearView: function () { return _this.onActiveViewDecade(value, i); } }, this.calendarModel.formatToParts(value, this.locale, this.formatOptions, ['era', 'year', 'month', 'day', 'weekday']));\n return { $implicit: formatObject };\n };\n /**\n * Helper method that sets references for prev/next months for each month in the view\n * @hidden\n * @internal\n */\n /**\n * Helper method that sets references for prev/next months for each month in the view\n * @hidden\n * \\@internal\n * @private\n * @param {?} monthViews\n * @return {?}\n */\n IgxCalendarComponent.prototype.setSiblingMonths = /**\n * Helper method that sets references for prev/next months for each month in the view\n * @hidden\n * \\@internal\n * @private\n * @param {?} monthViews\n * @return {?}\n */\n function (monthViews) {\n var _this = this;\n monthViews.forEach(function (item, index) {\n /** @type {?} */\n var prevMonthView = _this.getMonthView(index - 1);\n /** @type {?} */\n var nextMonthView = _this.getMonthView(index + 1);\n item.nextMonthView = nextMonthView;\n item.prevMonthView = prevMonthView;\n });\n };\n /**\n * Helper method returning previous/next day views\n * @hidden\n * @internal\n */\n /**\n * Helper method returning previous/next day views\n * @hidden\n * \\@internal\n * @private\n * @param {?} index\n * @return {?}\n */\n IgxCalendarComponent.prototype.getMonthView = /**\n * Helper method returning previous/next day views\n * @hidden\n * \\@internal\n * @private\n * @param {?} index\n * @return {?}\n */\n function (index) {\n if (index === -1 || index === this.monthViews.length) {\n return null;\n }\n else {\n return this.monthViews.toArray()[index];\n }\n };\n IgxCalendarComponent.decorators = [\n { type: Component, args: [{\n providers: [\n {\n multi: true,\n provide: NG_VALUE_ACCESSOR,\n useExisting: IgxCalendarComponent\n }\n ],\n animations: [\n trigger('animateView', [\n transition('void => 0', useAnimation(fadeIn)),\n transition('void => *', useAnimation(scaleInCenter, {\n params: {\n duration: '.2s',\n fromScale: .9\n }\n }))\n ]),\n trigger('animateChange', [\n transition('* => prev', useAnimation(slideInLeft, {\n params: {\n fromPosition: 'translateX(-30%)'\n }\n })),\n transition('* => next', useAnimation(slideInRight, {\n params: {\n fromPosition: 'translateX(30%)'\n }\n }))\n ])\n ],\n selector: 'igx-calendar',\n template: \"\\n {{ getFormattedDate().weekday }}, \\n {{ getFormattedDate().monthday }}\\n\\n\\n\\n \\n {{ formattedMonth(getViewDate(obj.index)) }}\\n \\n \\n {{ formattedYear(getViewDate(obj.index)) }}\\n \\n\\n\\n
\\n
{{ formattedYear(headerDate) }}
\\n

\\n \\n \\n

\\n
\\n\\n
\\n
\\n
\\n keyboard_arrow_left\\n
\\n
\\n \\n \\n
\\n
\\n keyboard_arrow_right\\n
\\n
\\n\\n
\\n \\n \\n
\\n
\\n\\n\\n\\n\\n\\n\\n\"\n }] }\n ];\n IgxCalendarComponent.propDecorators = {\n id: [{ type: HostBinding, args: ['attr.id',] }, { type: Input }],\n hasHeader: [{ type: Input }],\n vertical: [{ type: Input }],\n monthsViewNumber: [{ type: Input }],\n animationAction: [{ type: Input }],\n tabindex: [{ type: HostBinding, args: ['attr.tabindex',] }],\n role: [{ type: HostBinding, args: ['attr.role',] }],\n ariaLabelledBy: [{ type: HostBinding, args: ['attr.aria-labelledby',] }],\n styleVerticalClass: [{ type: HostBinding, args: ['class.igx-calendar--vertical',] }],\n styleClass: [{ type: HostBinding, args: ['class.igx-calendar',] }],\n monthsView: [{ type: ViewChild, args: ['months', { read: IgxMonthsViewComponent, static: false },] }],\n monthsBtns: [{ type: ViewChildren, args: ['monthsBtn',] }],\n dacadeView: [{ type: ViewChild, args: ['decade', { read: IgxYearsViewComponent, static: false },] }],\n daysView: [{ type: ViewChild, args: ['days', { read: IgxDaysViewComponent, static: false },] }],\n monthViews: [{ type: ViewChildren, args: ['days', { read: IgxDaysViewComponent },] }],\n prevMonthBtn: [{ type: ViewChild, args: ['prevMonthBtn', { static: false },] }],\n nextMonthBtn: [{ type: ViewChild, args: ['nextMonthBtn', { static: false },] }],\n headerTemplateDirective: [{ type: ContentChild, args: [forwardRef(function () { return IgxCalendarHeaderTemplateDirective; }), { read: IgxCalendarHeaderTemplateDirective, static: true },] }],\n subheaderTemplateDirective: [{ type: ContentChild, args: [forwardRef(function () { return IgxCalendarSubheaderTemplateDirective; }), { read: IgxCalendarSubheaderTemplateDirective, static: true },] }],\n onKeydownPageDown: [{ type: HostListener, args: ['keydown.pagedown', ['$event'],] }, { type: HostListener, args: ['keydown.pageup', ['$event'],] }],\n onKeydownShiftPageUp: [{ type: HostListener, args: ['keydown.shift.pageup', ['$event'],] }, { type: HostListener, args: ['keydown.shift.pagedown', ['$event'],] }],\n onKeydownHome: [{ type: HostListener, args: ['keydown.home', ['$event'],] }],\n onKeydownEnd: [{ type: HostListener, args: ['keydown.end', ['$event'],] }],\n onMouseUp: [{ type: HostListener, args: ['document:mouseup', ['$event'],] }]\n };\n return IgxCalendarComponent;\n}(IgxMonthPickerBase));\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n/** @type {?} */\nvar NEXT_ID$g = 0;\nvar IgxMonthPickerComponent = /** @class */ (function (_super) {\n __extends(IgxMonthPickerComponent, _super);\n function IgxMonthPickerComponent() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n /**\n * Sets/gets the `id` of the month picker.\n * If not set, the `id` will have value `\"igx-month-picker-0\"`.\n */\n _this.id = \"igx-month-picker-\" + NEXT_ID$g++;\n /**\n * The default css class applied to the component.\n *\n * @hidden\n */\n _this.styleClass = true;\n /**\n * @hidden\n */\n _this.yearAction = '';\n return _this;\n }\n /**\n * @hidden\n */\n /**\n * @hidden\n * @return {?}\n */\n IgxMonthPickerComponent.prototype.animationDone = /**\n * @hidden\n * @return {?}\n */\n function () {\n this.yearAction = '';\n };\n /**\n * @hidden\n */\n /**\n * @hidden\n * @param {?} event\n * @return {?}\n */\n IgxMonthPickerComponent.prototype.activeViewDecadeKB = /**\n * @hidden\n * @param {?} event\n * @return {?}\n */\n function (event) {\n var _this = this;\n _super.prototype.activeViewDecadeKB.call(this, event);\n if (event.key === \"ArrowRight\" /* RIGHT_ARROW */ || event.key === \"Right\" /* RIGHT_ARROW_IE */) {\n event.preventDefault();\n this.nextYear();\n }\n if (event.key === \"ArrowLeft\" /* LEFT_ARROW */ || event.key === \"Left\" /* LEFT_ARROW_IE */) {\n event.preventDefault();\n this.previousYear();\n }\n requestAnimationFrame(function () {\n if (_this.dacadeView) {\n _this.dacadeView.el.nativeElement.focus();\n }\n });\n };\n /**\n * @hidden\n */\n /**\n * @hidden\n * @return {?}\n */\n IgxMonthPickerComponent.prototype.activeViewDecade = /**\n * @hidden\n * @return {?}\n */\n function () {\n var _this = this;\n _super.prototype.activeViewDecade.call(this);\n requestAnimationFrame(function () {\n _this.dacadeView.el.nativeElement.focus();\n });\n };\n /**\n * @hidden\n */\n /**\n * @hidden\n * @return {?}\n */\n IgxMonthPickerComponent.prototype.nextYear = /**\n * @hidden\n * @return {?}\n */\n function () {\n this.yearAction = 'next';\n this.viewDate = this.calendarModel.getNextYear(this.viewDate);\n this.selectDate(this.viewDate);\n this.onSelection.emit(this.selectedDates);\n };\n /**\n * @hidden\n */\n /**\n * @hidden\n * @param {?} event\n * @return {?}\n */\n IgxMonthPickerComponent.prototype.nextYearKB = /**\n * @hidden\n * @param {?} event\n * @return {?}\n */\n function (event) {\n if (event.key === \" \" /* SPACE */ || event.key === \"Spacebar\" /* SPACE_IE */ || event.key === \"Enter\" /* ENTER */) {\n event.preventDefault();\n event.stopPropagation();\n this.nextYear();\n }\n };\n /**\n * @hidden\n */\n /**\n * @hidden\n * @return {?}\n */\n IgxMonthPickerComponent.prototype.previousYear = /**\n * @hidden\n * @return {?}\n */\n function () {\n this.yearAction = 'prev';\n this.viewDate = this.calendarModel.getPrevYear(this.viewDate);\n this.selectDate(this.viewDate);\n this.onSelection.emit(this.selectedDates);\n };\n /**\n * @hidden\n */\n /**\n * @hidden\n * @param {?} event\n * @return {?}\n */\n IgxMonthPickerComponent.prototype.previousYearKB = /**\n * @hidden\n * @param {?} event\n * @return {?}\n */\n function (event) {\n if (event.key === \" \" /* SPACE */ || event.key === \"Spacebar\" /* SPACE_IE */ || event.key === \"Enter\" /* ENTER */) {\n event.preventDefault();\n event.stopPropagation();\n this.previousYear();\n }\n };\n /**\n * @hidden\n */\n /**\n * @hidden\n * @param {?} event\n * @return {?}\n */\n IgxMonthPickerComponent.prototype.selectYear = /**\n * @hidden\n * @param {?} event\n * @return {?}\n */\n function (event) {\n var _this = this;\n this.viewDate = new Date(event.getFullYear(), event.getMonth(), event.getDate());\n this.activeView = CalendarView.DEFAULT;\n this.selectDate(event);\n this.onSelection.emit(this.selectedDates);\n requestAnimationFrame(function () {\n if (_this.yearsBtn) {\n _this.yearsBtn.nativeElement.focus();\n }\n });\n };\n /**\n * @hidden\n */\n /**\n * @hidden\n * @param {?} event\n * @return {?}\n */\n IgxMonthPickerComponent.prototype.selectMonth = /**\n * @hidden\n * @param {?} event\n * @return {?}\n */\n function (event) {\n this.selectDate(event);\n this.onSelection.emit(this.selectedDates);\n };\n /**\n * Selects a date.\n *```typescript\n * this.monPicker.selectDate(new Date(`2018-06-12`));\n *```\n */\n /**\n * Selects a date.\n * ```typescript\n * this.monPicker.selectDate(new Date(`2018-06-12`));\n * ```\n * @param {?} value\n * @return {?}\n */\n IgxMonthPickerComponent.prototype.selectDate = /**\n * Selects a date.\n * ```typescript\n * this.monPicker.selectDate(new Date(`2018-06-12`));\n * ```\n * @param {?} value\n * @return {?}\n */\n function (value) {\n if (!value) {\n return new Date();\n }\n // TO DO: to be refactored after discussion on the desired behavior\n _super.prototype.selectDate.call(this, value);\n this.viewDate = value;\n };\n /**\n * @hidden\n */\n /**\n * @hidden\n * @param {?} value\n * @return {?}\n */\n IgxMonthPickerComponent.prototype.writeValue = /**\n * @hidden\n * @param {?} value\n * @return {?}\n */\n function (value) {\n // TO DO: to be refactored after discussion on the desired behavior\n if (value) {\n this.viewDate = this.selectedDates = value;\n }\n };\n /**\n * @hidden\n */\n /**\n * @hidden\n * @param {?} event\n * @return {?}\n */\n IgxMonthPickerComponent.prototype.onKeydownPageUp = /**\n * @hidden\n * @param {?} event\n * @return {?}\n */\n function (event) {\n event.preventDefault();\n this.yearAction = 'prev';\n this.viewDate = this.calendarModel.getPrevYear(this.viewDate);\n };\n /**\n * @hidden\n */\n /**\n * @hidden\n * @param {?} event\n * @return {?}\n */\n IgxMonthPickerComponent.prototype.onKeydownPageDown = /**\n * @hidden\n * @param {?} event\n * @return {?}\n */\n function (event) {\n event.preventDefault();\n this.yearAction = 'next';\n this.viewDate = this.calendarModel.getNextYear(this.viewDate);\n };\n /**\n * @hidden\n */\n /**\n * @hidden\n * @param {?} event\n * @return {?}\n */\n IgxMonthPickerComponent.prototype.onKeydownHome = /**\n * @hidden\n * @param {?} event\n * @return {?}\n */\n function (event) {\n if (this.monthsView) {\n this.monthsView.el.nativeElement.focus();\n this.monthsView.onKeydownHome(event);\n }\n };\n /**\n * @hidden\n */\n /**\n * @hidden\n * @param {?} event\n * @return {?}\n */\n IgxMonthPickerComponent.prototype.onKeydownEnd = /**\n * @hidden\n * @param {?} event\n * @return {?}\n */\n function (event) {\n if (this.monthsView) {\n this.monthsView.el.nativeElement.focus();\n this.monthsView.onKeydownEnd(event);\n }\n };\n IgxMonthPickerComponent.decorators = [\n { type: Component, args: [{\n providers: [\n {\n multi: true,\n provide: NG_VALUE_ACCESSOR,\n useExisting: IgxMonthPickerComponent\n }\n ],\n animations: [\n trigger('animateView', [\n transition('void => 0', useAnimation(fadeIn)),\n transition('void => *', useAnimation(scaleInCenter, {\n params: {\n duration: '.2s',\n fromScale: .9\n }\n }))\n ]),\n trigger('animateChange', [\n transition('* => prev', useAnimation(slideInLeft, {\n params: {\n fromPosition: 'translateX(-30%)'\n }\n })),\n transition('* => next', useAnimation(slideInRight, {\n params: {\n fromPosition: 'translateX(30%)'\n }\n }))\n ])\n ],\n selector: 'igx-month-picker',\n template: \"
\\n
\\n
\\n keyboard_arrow_left\\n
\\n
\\n \\n {{ formattedYear(viewDate) }}\\n \\n
\\n
\\n keyboard_arrow_right\\n
\\n
\\n\\n \\n \\n
\\n\\n\\n\"\n }] }\n ];\n IgxMonthPickerComponent.propDecorators = {\n id: [{ type: HostBinding, args: ['attr.id',] }, { type: Input }],\n styleClass: [{ type: HostBinding, args: ['class.igx-calendar',] }],\n monthsView: [{ type: ViewChild, args: ['months', { read: IgxMonthsViewComponent, static: false },] }],\n dacadeView: [{ type: ViewChild, args: ['decade', { read: IgxYearsViewComponent, static: false },] }],\n daysView: [{ type: ViewChild, args: ['days', { read: IgxDaysViewComponent, static: false },] }],\n yearsBtn: [{ type: ViewChild, args: ['yearsBtn', { static: false },] }],\n onKeydownPageUp: [{ type: HostListener, args: ['keydown.pageup', ['$event'],] }],\n onKeydownPageDown: [{ type: HostListener, args: ['keydown.pagedown', ['$event'],] }],\n onKeydownHome: [{ type: HostListener, args: ['keydown.home', ['$event'],] }],\n onKeydownEnd: [{ type: HostListener, args: ['keydown.end', ['$event'],] }]\n };\n return IgxMonthPickerComponent;\n}(IgxMonthPickerBase));\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\nvar IgxMonthViewSlotsCalendar = /** @class */ (function () {\n function IgxMonthViewSlotsCalendar() {\n }\n /**\n * @param {?} monthViews\n * @return {?}\n */\n IgxMonthViewSlotsCalendar.prototype.transform = /**\n * @param {?} monthViews\n * @return {?}\n */\n function (monthViews) {\n return new Array(monthViews);\n };\n IgxMonthViewSlotsCalendar.decorators = [\n { type: Pipe, args: [{\n name: 'IgxMonthViewSlots'\n },] }\n ];\n return IgxMonthViewSlotsCalendar;\n}());\nvar IgxGetViewDateCalendar = /** @class */ (function () {\n function IgxGetViewDateCalendar() {\n this.calendar = new Calendar();\n }\n /**\n * @param {?} index\n * @param {?} viewDate\n * @param {?=} wholeDate\n * @return {?}\n */\n IgxGetViewDateCalendar.prototype.transform = /**\n * @param {?} index\n * @param {?} viewDate\n * @param {?=} wholeDate\n * @return {?}\n */\n function (index, viewDate, wholeDate) {\n if (wholeDate === void 0) { wholeDate = true; }\n /** @type {?} */\n var date = this.calendar.timedelta(viewDate, 'month', index);\n return wholeDate ? date : date.getMonth();\n };\n IgxGetViewDateCalendar.decorators = [\n { type: Pipe, args: [{\n name: 'IgxGetViewDate'\n },] }\n ];\n /** @nocollapse */\n IgxGetViewDateCalendar.ctorParameters = function () { return []; };\n return IgxGetViewDateCalendar;\n}());\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n/**\n * @hidden\n */\nvar IgxCalendarModule = /** @class */ (function () {\n function IgxCalendarModule() {\n }\n IgxCalendarModule.decorators = [\n { type: NgModule, args: [{\n declarations: [\n IgxDayItemComponent,\n IgxDaysViewComponent,\n IgxCalendarComponent,\n IgxCalendarHeaderTemplateDirective,\n IgxCalendarMonthDirective,\n IgxCalendarYearDirective,\n IgxCalendarSubheaderTemplateDirective,\n IgxCalendarScrollMonthDirective,\n IgxMonthsViewComponent,\n IgxYearsViewComponent,\n IgxMonthPickerComponent,\n IgxMonthViewSlotsCalendar,\n IgxGetViewDateCalendar\n ],\n exports: [\n IgxCalendarComponent,\n IgxDaysViewComponent,\n IgxMonthsViewComponent,\n IgxYearsViewComponent,\n IgxMonthPickerComponent,\n IgxCalendarHeaderTemplateDirective,\n IgxCalendarMonthDirective,\n IgxCalendarYearDirective,\n IgxCalendarSubheaderTemplateDirective\n ],\n imports: [CommonModule, FormsModule, IgxIconModule]\n },] }\n ];\n return IgxCalendarModule;\n}());\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n/** @type {?} */\nvar NEXT_ID$h = 0;\n/**\n * IgxCardMedia is container for the card media section.\n * Use it to wrap images and videos.\n */\nvar IgxCardMediaDirective = /** @class */ (function () {\n function IgxCardMediaDirective() {\n /**\n * @hidden\n */\n this.cssClass = 'igx-card__media';\n /**\n * An \\@Input property that sets the `width` and `min-width` style property\n * of the media container. If not provided it will be set to `auto`.\n * ```html\n * \n * ```\n */\n this.width = 'auto';\n /**\n * An \\@Input property that sets the `height` style property of the media container.\n * If not provided it will be set to `auto`.\n * ```html\n * \n * ```\n */\n this.height = 'auto';\n /**\n * An \\@Input property that sets the `role` attribute of the media container.\n */\n this.role = 'img';\n }\n IgxCardMediaDirective.decorators = [\n { type: Directive, args: [{\n // tslint:disable-next-line:directive-selector\n selector: 'igx-card-media'\n },] }\n ];\n IgxCardMediaDirective.propDecorators = {\n cssClass: [{ type: HostBinding, args: ['class.igx-card__media',] }],\n width: [{ type: HostBinding, args: ['style.width',] }, { type: HostBinding, args: ['style.min-width',] }, { type: Input }],\n height: [{ type: HostBinding, args: ['style.height',] }, { type: Input }],\n role: [{ type: HostBinding, args: ['attr.role',] }, { type: Input }]\n };\n return IgxCardMediaDirective;\n}());\n/**\n * IgxCardHeader is container for the card header\n */\nvar IgxCardHeaderComponent = /** @class */ (function () {\n function IgxCardHeaderComponent() {\n /**\n * @hidden\n */\n this.cssClass = 'igx-card-header';\n /**\n * An \\@Input property that sets the layout style of the header.\n * By default the header elements(thumbnail and title/subtitle) are aligned horizontally.\n * ```html\n * \n * ```\n */\n this.vertical = false;\n /**\n * An \\@Input property that sets the value of the `role` attribute of the card header.\n * By default the value is set to `header`.\n * ```html\n * \n * ```\n */\n this.role = 'header';\n }\n IgxCardHeaderComponent.decorators = [\n { type: Component, args: [{\n selector: 'igx-card-header',\n template: \"
\\n \\n
\\n\\n
\\n \\n \\n
\\n\\n\\n\"\n }] }\n ];\n IgxCardHeaderComponent.propDecorators = {\n cssClass: [{ type: HostBinding, args: ['class.igx-card-header',] }],\n vertical: [{ type: HostBinding, args: ['class.igx-card-header--vertical',] }, { type: Input }],\n role: [{ type: HostBinding, args: ['attr.role',] }]\n };\n return IgxCardHeaderComponent;\n}());\n/**\n * IgxCardThumbnail is container for the card thumbnail section.\n * Use it to wrap anything you want to be used as a thumbnail.\n */\nvar IgxCardThumbnailDirective = /** @class */ (function () {\n function IgxCardThumbnailDirective() {\n }\n IgxCardThumbnailDirective.decorators = [\n { type: Directive, args: [{\n selector: '[igxCardThumbnail]'\n },] }\n ];\n return IgxCardThumbnailDirective;\n}());\n/**\n * igxCardHeaderTitle is used to denote the header title in a card.\n * Use it to tag text nodes.\n */\nvar IgxCardHeaderTitleDirective = /** @class */ (function () {\n function IgxCardHeaderTitleDirective() {\n /**\n * @hidden\n */\n this.cssClass = 'igx-card__header__title';\n }\n IgxCardHeaderTitleDirective.decorators = [\n { type: Directive, args: [{\n selector: '[igxCardHeaderTitle]'\n },] }\n ];\n IgxCardHeaderTitleDirective.propDecorators = {\n cssClass: [{ type: HostBinding, args: ['class.igx-card-header__title',] }]\n };\n return IgxCardHeaderTitleDirective;\n}());\n/**\n * igxCardHeaderSubtitle is used to denote the header subtitle in a card.\n * Use it to tag text nodes.\n */\nvar IgxCardHeaderSubtitleDirective = /** @class */ (function () {\n function IgxCardHeaderSubtitleDirective() {\n /**\n * @hidden\n */\n this.cssClass = 'igx-card-header__subtitle';\n }\n IgxCardHeaderSubtitleDirective.decorators = [\n { type: Directive, args: [{\n selector: '[igxCardHeaderSubtitle]'\n },] }\n ];\n IgxCardHeaderSubtitleDirective.propDecorators = {\n cssClass: [{ type: HostBinding, args: ['class.igx-card-header__subtitle',] }]\n };\n return IgxCardHeaderSubtitleDirective;\n}());\n/**\n * IgxCardContent is container for the card content.\n */\nvar IgxCardContentDirective = /** @class */ (function () {\n function IgxCardContentDirective() {\n /**\n * @hidden\n */\n this.cssClass = 'igx-card-content';\n }\n IgxCardContentDirective.decorators = [\n { type: Directive, args: [{\n // tslint:disable-next-line:directive-selector\n selector: 'igx-card-content'\n },] }\n ];\n IgxCardContentDirective.propDecorators = {\n cssClass: [{ type: HostBinding, args: ['class.igx-card-content',] }]\n };\n return IgxCardContentDirective;\n}());\n/**\n * IgxCardFooter is container for the card footer\n */\nvar IgxCardFooterDirective = /** @class */ (function () {\n function IgxCardFooterDirective() {\n /**\n * An \\@Input property that sets the value of the `role` attribute of the card footer.\n * By default the value is set to `footer`.\n * ```html\n * \n * ```\n */\n this.role = 'footer';\n }\n IgxCardFooterDirective.decorators = [\n { type: Directive, args: [{\n // tslint:disable-next-line:directive-selector\n selector: 'igx-card-footer'\n },] }\n ];\n IgxCardFooterDirective.propDecorators = {\n role: [{ type: HostBinding, args: ['attr.role',] }, { type: Input }]\n };\n return IgxCardFooterDirective;\n}());\n/** @enum {string} */\nvar IgxCardType = {\n DEFAULT: 'default',\n OUTLINED: 'outlined',\n};\nvar IgxCardComponent = /** @class */ (function () {\n function IgxCardComponent() {\n /**\n * Sets/gets the `id` of the card.\n * If not set, `id` will have value `\"igx-card-0\"`;\n * ```html\n * \n * ```\n * ```typescript\n * let cardId = this.card.id;\n * ```\n * \\@memberof IgxCardComponent\n */\n this.id = \"igx-card-\" + NEXT_ID$h++;\n /**\n * An \\@Input property that sets the value of the `role` attribute of the card.\n * By default the value is set to `group`.\n * ```html\n * \n * ```\n */\n this.role = 'group';\n /**\n * An \\@Input property that sets the value of the `type` attribute of the card.\n * By default the value is set to `default`. You can make the card use the\n * outlined style by setting the value to `outlined`.\n * ```html\n * \n * ```\n */\n this.type = IgxCardType.DEFAULT;\n /**\n * An \\@Input property that sets the value of the `horizontal` attribute of the card.\n * Setting this to `true` will make the different card sections align horizontally,\n * essentially flipping the card to the side.\n * ```html\n * \n * ```\n */\n this.horizontal = false;\n }\n Object.defineProperty(IgxCardComponent.prototype, \"isOutlinedCard\", {\n /**\n * A getter which will return true if the card type is `outlined`.\n */\n get: /**\n * A getter which will return true if the card type is `outlined`.\n * @return {?}\n */\n function () {\n return this.type === IgxCardType.OUTLINED;\n },\n enumerable: true,\n configurable: true\n });\n IgxCardComponent.decorators = [\n { type: Component, args: [{\n selector: 'igx-card',\n template: \"\\n\\n\\n\\n \\n\\n\\n\\n\"\n }] }\n ];\n IgxCardComponent.propDecorators = {\n id: [{ type: HostBinding, args: ['attr.id',] }, { type: Input }],\n role: [{ type: HostBinding, args: ['attr.role',] }, { type: Input }],\n type: [{ type: HostBinding, args: ['class.igx-card',] }, { type: Input }],\n isOutlinedCard: [{ type: HostBinding, args: ['class.igx-card--outlined',] }],\n horizontal: [{ type: HostBinding, args: ['class.igx-card--horizontal',] }, { type: Input }]\n };\n return IgxCardComponent;\n}());\n/** @enum {string} */\nvar IgxCardActionsLayout = {\n DEFAULT: 'default',\n JUSTIFY: 'justify',\n};\n/**\n * IgxCardActions is container for the card actions.\n */\nvar IgxCardActionsComponent = /** @class */ (function () {\n function IgxCardActionsComponent(card) {\n this.card = card;\n this.isVerticalSet = false;\n /**\n * An \\@Input property that sets the layout style of the actions.\n * By default icons and icon buttons, as well as regular buttons\n * are split into two containers, which are then positioned on both ends\n * of the card-actions area.\n * You can justify the elements in those groups so they are positioned equally\n * from one another taking up all the space available along the card actions axis.\n * ```html\n * \n * ```\n */\n this.layout = 'default';\n /**\n * An \\@Input property that sets order of the buttons the actions area.\n * By default all icons/icon buttons are placed at the end of the action\n * area. Any regular buttons(flat, raised) will appear before the icons/icon buttons\n * placed in the actions area.\n * If you want to reverse their positions so that icons appear first, use the `reverse`\n * attribute.\n * ```html\n * \n * ```\n */\n this.reverse = false;\n }\n Object.defineProperty(IgxCardActionsComponent.prototype, \"isJustifyLayout\", {\n /**\n * A getter that returns `true` when the layout has been\n * set to `justify`.\n */\n get: /**\n * A getter that returns `true` when the layout has been\n * set to `justify`.\n * @return {?}\n */\n function () {\n return this.layout === IgxCardActionsLayout.JUSTIFY;\n },\n enumerable: true,\n configurable: true\n });\n /**\n * @param {?} changes\n * @return {?}\n */\n IgxCardActionsComponent.prototype.ngOnChanges = /**\n * @param {?} changes\n * @return {?}\n */\n function (changes) {\n for (var prop in changes) {\n if (prop === 'vertical') {\n this.isVerticalSet = true;\n }\n }\n };\n /**\n * @return {?}\n */\n IgxCardActionsComponent.prototype.ngOnInit = /**\n * @return {?}\n */\n function () {\n this.vertical = !this.isVerticalSet && this.card.horizontal;\n };\n IgxCardActionsComponent.decorators = [\n { type: Component, args: [{\n // tslint:disable-next-line:directive-selector\n selector: 'igx-card-actions',\n template: \"
\\n \\n
\\n\\n
\\n \\n
\\n\\n\\n\\n\"\n }] }\n ];\n /** @nocollapse */\n IgxCardActionsComponent.ctorParameters = function () { return [\n { type: IgxCardComponent, decorators: [{ type: Optional }, { type: Inject, args: [IgxCardComponent,] }] }\n ]; };\n IgxCardActionsComponent.propDecorators = {\n layout: [{ type: HostBinding, args: ['class.igx-card-actions',] }, { type: Input }],\n vertical: [{ type: HostBinding, args: ['class.igx-card-actions--vertical',] }, { type: Input }],\n isJustifyLayout: [{ type: HostBinding, args: ['class.igx-card-actions--justify',] }],\n reverse: [{ type: HostBinding, args: ['class.igx-card-actions--reverse',] }, { type: Input }]\n };\n return IgxCardActionsComponent;\n}());\n/**\n * @hidden\n */\nvar IgxCardModule = /** @class */ (function () {\n function IgxCardModule() {\n }\n IgxCardModule.decorators = [\n { type: NgModule, args: [{\n declarations: [\n IgxCardComponent,\n IgxCardHeaderComponent,\n IgxCardMediaDirective,\n IgxCardContentDirective,\n IgxCardActionsComponent,\n IgxCardFooterDirective,\n IgxCardHeaderTitleDirective,\n IgxCardHeaderSubtitleDirective,\n IgxCardThumbnailDirective,\n ],\n exports: [\n IgxCardComponent,\n IgxCardHeaderComponent,\n IgxCardMediaDirective,\n IgxCardContentDirective,\n IgxCardActionsComponent,\n IgxCardFooterDirective,\n IgxCardHeaderTitleDirective,\n IgxCardHeaderSubtitleDirective,\n IgxCardThumbnailDirective,\n ],\n imports: [CommonModule, IgxButtonModule]\n },] }\n ];\n return IgxCardModule;\n}());\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n/** @type {?} */\nvar NEXT_ID$i = 0;\n/** @enum {number} */\nvar Direction$1 = {\n NONE: 0, NEXT: 1, PREV: 2,\n};\nDirection$1[Direction$1.NONE] = 'NONE';\nDirection$1[Direction$1.NEXT] = 'NEXT';\nDirection$1[Direction$1.PREV] = 'PREV';\n/**\n * **Ignite UI for Angular Carousel** -\n * [Documentation](https://www.infragistics.com/products/ignite-ui-angular/angular/components/carousel.html)\n *\n * The Ignite UI Carousel is used to browse or navigate through a collection of slides. Slides can contain custom\n * content such as images or cards and be used for things such as on-boarding tutorials or page-based interfaces.\n * It can be used as a separate fullscreen element or inside another component.\n *\n * Example:\n * ```html\n * \n * \n *

First Slide Header

\n *

First slide Content

\n * \n * \n *

Second Slide Header

\n *

Second Slide Content

\n *
\n * ```\n */\nvar IgxCarouselComponent = /** @class */ (function () {\n function IgxCarouselComponent(element, platformUtil) {\n this.element = element;\n this.platformUtil = platformUtil;\n /**\n * Returns the `role` attribute of the carousel.\n * ```typescript\n * let carouselRole = this.carousel.role;\n * ```\n * \\@memberof IgxCarouselComponent\n */\n this.role = 'region';\n /**\n * Sets the `id` of the carousel.\n * If not set, the `id` of the first carousel component will be `\"igx-carousel-0\"`.\n * ```html\n * \n * ```\n * \\@memberof IgxCarouselComponent\n */\n this.id = \"igx-carousel-\" + NEXT_ID$i++;\n /**\n * Sets whether the carousel should `loop` back to the first slide after reaching the last slide.\n * Default value is `true`.\n * ```html\n * \n * ```\n * \\@memberOf IgxCarouselComponent\n */\n this.loop = true;\n /**\n * Sets whether the carousel will `pause` the slide transitions on user interactions.\n * Default value is `true`.\n * ```html\n * \n * ```\n * \\@memberOf IgxCarouselComponent\n */\n this.pause = true;\n /**\n * Controls whether the carousel should render the left/right `navigation` buttons.\n * Default value is `true`.\n * ```html\n * \n * ```\n * \\@memberOf IgxCarouselComponent\n */\n this.navigation = true;\n /**\n * An event that is emitted after a slide transition has happened.\n * Provides references to the `IgxCarouselComponent` and `IgxSlideComponent` as event arguments.\n * ```html\n * \n * ```\n * \\@memberOf IgxCarouselComponent\n */\n this.onSlideChanged = new EventEmitter();\n /**\n * An event that is emitted after a slide has been added to the carousel.\n * Provides references to the `IgxCarouselComponent` and `IgxSlideComponent` as event arguments.\n * ```html\n * \n * ```\n * \\@memberOf IgxCarouselComponent\n */\n this.onSlideAdded = new EventEmitter();\n /**\n * An event that is emitted after a slide has been removed from the carousel.\n * Provides references to the `IgxCarouselComponent` and `IgxSlideComponent` as event arguments.\n * ```html\n * \n * ```\n * \\@memberOf IgxCarouselComponent\n */\n this.onSlideRemoved = new EventEmitter();\n /**\n * An event that is emitted after the carousel has been paused.\n * Provides a reference to the `IgxCarouselComponent` as an event argument.\n * ```html\n * \n * ```\n * \\@memberOf IgxCarouselComponent\n */\n this.onCarouselPaused = new EventEmitter();\n /**\n * An event that is emitted after the carousel has resumed transitioning between `slides`.\n * Provides a reference to the `IgxCarouselComponent` as an event argument.\n * ```html\n * \n * ```\n * \\@memberOf IgxCarouselComponent\n */\n this.onCarouselPlaying = new EventEmitter();\n /**\n * The collection of `slides` currently in the carousel.\n * ```typescript\n * let slides: IgxSlideComponent[] = this.carousel.slides;\n * ```\n * \\@memberOf IgxCarouselComponent\n */\n this.slides = [];\n this._total = 0;\n }\n Object.defineProperty(IgxCarouselComponent.prototype, \"interval\", {\n /**\n * Returns the time `interval` in milliseconds before the slide changes.\n * ```typescript\n * let timeInterval = this.carousel.interval;\n * ```\n * @memberof IgxCarouselComponent\n */\n get: /**\n * Returns the time `interval` in milliseconds before the slide changes.\n * ```typescript\n * let timeInterval = this.carousel.interval;\n * ```\n * \\@memberof IgxCarouselComponent\n * @return {?}\n */\n function () {\n return this._interval;\n },\n /**\n * Sets the time `interval` in milliseconds before the slide changes.\n * If not set, the carousel will not change `slides` automatically.\n * ```html\n * \n * ```\n * @memberof IgxCarouselComponent\n */\n set: /**\n * Sets the time `interval` in milliseconds before the slide changes.\n * If not set, the carousel will not change `slides` automatically.\n * ```html\n * \n * ```\n * \\@memberof IgxCarouselComponent\n * @param {?} value\n * @return {?}\n */\n function (value) {\n this._interval = +value;\n this._restartInterval();\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxCarouselComponent.prototype, \"tabIndex\", {\n /**\n * Returns the `tabIndex` of the carousel component.\n * ```typescript\n * let tabIndex = this.carousel.tabIndex;\n * ```\n * @memberof IgxCarouselComponent\n */\n get: /**\n * Returns the `tabIndex` of the carousel component.\n * ```typescript\n * let tabIndex = this.carousel.tabIndex;\n * ```\n * \\@memberof IgxCarouselComponent\n * @return {?}\n */\n function () {\n return 0;\n },\n enumerable: true,\n configurable: true\n });\n /**\n *@hidden\n */\n /**\n * @hidden\n * @return {?}\n */\n IgxCarouselComponent.prototype.ngOnDestroy = /**\n * @hidden\n * @return {?}\n */\n function () {\n this._destroyed = true;\n if (this._lastInterval) {\n clearInterval(this._lastInterval);\n }\n };\n /**\n * @hidden\n * @memberof IgxCarouselComponent\n */\n /**\n * @hidden\n * \\@memberof IgxCarouselComponent\n * @param {?} slide\n * @return {?}\n */\n IgxCarouselComponent.prototype.setAriaLabel = /**\n * @hidden\n * \\@memberof IgxCarouselComponent\n * @param {?} slide\n * @return {?}\n */\n function (slide) {\n return \"Item \" + (slide.index + 1) + \" of \" + this.total;\n };\n Object.defineProperty(IgxCarouselComponent.prototype, \"total\", {\n /**\n * Returns the total number of `slides` in the carousel.\n * ```typescript\n * let slideCount = this.carousel.total;\n * ```\n * @memberOf IgxCarouselComponent\n */\n get: /**\n * Returns the total number of `slides` in the carousel.\n * ```typescript\n * let slideCount = this.carousel.total;\n * ```\n * \\@memberOf IgxCarouselComponent\n * @return {?}\n */\n function () {\n return this._total;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxCarouselComponent.prototype, \"current\", {\n /**\n * The index of the slide being currently shown.\n * ```typescript\n * let currentSlideNumber = this.carousel.current;\n * ```\n * @memberOf IgxCarouselComponent\n */\n get: /**\n * The index of the slide being currently shown.\n * ```typescript\n * let currentSlideNumber = this.carousel.current;\n * ```\n * \\@memberOf IgxCarouselComponent\n * @return {?}\n */\n function () {\n return !this._currentSlide ? 0 : this._currentSlide.index;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxCarouselComponent.prototype, \"isPlaying\", {\n /**\n * Returns a boolean indicating if the carousel is playing.\n * ```typescript\n * let isPlaying = this.carousel.isPlaying;\n * ```\n * @memberOf IgxCarouselComponent\n */\n get: /**\n * Returns a boolean indicating if the carousel is playing.\n * ```typescript\n * let isPlaying = this.carousel.isPlaying;\n * ```\n * \\@memberOf IgxCarouselComponent\n * @return {?}\n */\n function () {\n return this._playing;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxCarouselComponent.prototype, \"isDestroyed\", {\n /**\n * Returns а boolean indicating if the carousel is destroyed.\n * ```typescript\n * let isDestroyed = this.carousel.isDestroyed;\n * ```\n * @memberOf IgxCarouselComponent\n */\n get: /**\n * Returns а boolean indicating if the carousel is destroyed.\n * ```typescript\n * let isDestroyed = this.carousel.isDestroyed;\n * ```\n * \\@memberOf IgxCarouselComponent\n * @return {?}\n */\n function () {\n return this._destroyed;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxCarouselComponent.prototype, \"nativeElement\", {\n /**\n * Returns a reference to the carousel element in the DOM.\n * ```typescript\n * let nativeElement = this.carousel.nativeElement;\n * ```\n * @memberof IgxCarouselComponent\n */\n get: /**\n * Returns a reference to the carousel element in the DOM.\n * ```typescript\n * let nativeElement = this.carousel.nativeElement;\n * ```\n * \\@memberof IgxCarouselComponent\n * @return {?}\n */\n function () {\n return this.element.nativeElement;\n },\n enumerable: true,\n configurable: true\n });\n /**\n * Returns the slide corresponding to the provided `index` or null.\n * ```typescript\n * let slide1 = this.carousel.get(1);\n * ```\n * @memberOf IgxCarouselComponent\n */\n /**\n * Returns the slide corresponding to the provided `index` or null.\n * ```typescript\n * let slide1 = this.carousel.get(1);\n * ```\n * \\@memberOf IgxCarouselComponent\n * @param {?} index\n * @return {?}\n */\n IgxCarouselComponent.prototype.get = /**\n * Returns the slide corresponding to the provided `index` or null.\n * ```typescript\n * let slide1 = this.carousel.get(1);\n * ```\n * \\@memberOf IgxCarouselComponent\n * @param {?} index\n * @return {?}\n */\n function (index) {\n var e_1, _a;\n try {\n for (var _b = __values(this.slides), _c = _b.next(); !_c.done; _c = _b.next()) {\n var each = _c.value;\n if (each.index === index) {\n return each;\n }\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n }\n finally { if (e_1) throw e_1.error; }\n }\n };\n /**\n * Adds a new slide to the carousel.\n * ```typescript\n * this.carousel.add(newSlide);\n * ```\n * @memberOf IgxCarouselComponent\n */\n /**\n * Adds a new slide to the carousel.\n * ```typescript\n * this.carousel.add(newSlide);\n * ```\n * \\@memberOf IgxCarouselComponent\n * @param {?} slide\n * @return {?}\n */\n IgxCarouselComponent.prototype.add = /**\n * Adds a new slide to the carousel.\n * ```typescript\n * this.carousel.add(newSlide);\n * ```\n * \\@memberOf IgxCarouselComponent\n * @param {?} slide\n * @return {?}\n */\n function (slide) {\n slide.index = this.total;\n this.slides.push(slide);\n this._total += 1;\n if (this.total === 1 || slide.active) {\n this.select(slide);\n if (this.total === 1) {\n this.play();\n }\n }\n else {\n slide.active = false;\n }\n this.onSlideAdded.emit({ carousel: this, slide: slide });\n };\n /**\n * Removes a slide from the carousel.\n * ```typescript\n * this.carousel.remove(slide);\n * ```\n * @memberOf IgxCarouselComponent\n */\n /**\n * Removes a slide from the carousel.\n * ```typescript\n * this.carousel.remove(slide);\n * ```\n * \\@memberOf IgxCarouselComponent\n * @param {?} slide\n * @return {?}\n */\n IgxCarouselComponent.prototype.remove = /**\n * Removes a slide from the carousel.\n * ```typescript\n * this.carousel.remove(slide);\n * ```\n * \\@memberOf IgxCarouselComponent\n * @param {?} slide\n * @return {?}\n */\n function (slide) {\n if (slide && slide === this.get(slide.index)) { // check if the requested slide for delete is present in the carousel\n if (slide.index === this.current) {\n slide.active = false;\n this.next();\n }\n this.slides.splice(slide.index, 1);\n this._total -= 1;\n if (!this.total) {\n this._currentSlide = null;\n return;\n }\n for (var i = 0; i < this.total; i++) {\n this.slides[i].index = i;\n }\n this.onSlideRemoved.emit({ carousel: this, slide: slide });\n }\n };\n /**\n * Kicks in a transition for a given slide with a given `direction`.\n * ```typescript\n * this.carousel.select(this.carousel.get(2), Direction.NEXT);\n * ```\n * @memberOf IgxCarouselComponent\n */\n /**\n * Kicks in a transition for a given slide with a given `direction`.\n * ```typescript\n * this.carousel.select(this.carousel.get(2), Direction.NEXT);\n * ```\n * \\@memberOf IgxCarouselComponent\n * @param {?} slide\n * @param {?=} direction\n * @return {?}\n */\n IgxCarouselComponent.prototype.select = /**\n * Kicks in a transition for a given slide with a given `direction`.\n * ```typescript\n * this.carousel.select(this.carousel.get(2), Direction.NEXT);\n * ```\n * \\@memberOf IgxCarouselComponent\n * @param {?} slide\n * @param {?=} direction\n * @return {?}\n */\n function (slide, direction) {\n if (direction === void 0) { direction = Direction$1.NONE; }\n /** @type {?} */\n var newIndex = slide.index;\n if (direction === Direction$1.NONE) {\n direction = newIndex > this.current ? Direction$1.NEXT : Direction$1.PREV;\n }\n if (slide && slide !== this._currentSlide) {\n this._moveTo(slide, direction);\n }\n };\n /**\n * Transitions to the next slide in the carousel.\n * ```typescript\n * this.carousel.next();\n * ```\n * @memberOf IgxCarouselComponent\n */\n /**\n * Transitions to the next slide in the carousel.\n * ```typescript\n * this.carousel.next();\n * ```\n * \\@memberOf IgxCarouselComponent\n * @return {?}\n */\n IgxCarouselComponent.prototype.next = /**\n * Transitions to the next slide in the carousel.\n * ```typescript\n * this.carousel.next();\n * ```\n * \\@memberOf IgxCarouselComponent\n * @return {?}\n */\n function () {\n /** @type {?} */\n var index = (this.current + 1) % this.total;\n if (index === 0 && !this.loop) {\n this.stop();\n return;\n }\n return this.select(this.get(index), Direction$1.NEXT);\n };\n /**\n * Transitions to the previous slide in the carousel.\n * ```typescript\n * this.carousel.prev();\n * ```\n * @memberOf IgxCarouselComponent\n */\n /**\n * Transitions to the previous slide in the carousel.\n * ```typescript\n * this.carousel.prev();\n * ```\n * \\@memberOf IgxCarouselComponent\n * @return {?}\n */\n IgxCarouselComponent.prototype.prev = /**\n * Transitions to the previous slide in the carousel.\n * ```typescript\n * this.carousel.prev();\n * ```\n * \\@memberOf IgxCarouselComponent\n * @return {?}\n */\n function () {\n /** @type {?} */\n var index = this.current - 1 < 0 ?\n this.total - 1 : this.current - 1;\n if (!this.loop && index === this.total - 1) {\n this.stop();\n return;\n }\n return this.select(this.get(index), Direction$1.PREV);\n };\n /**\n * Resumes playing of the carousel if in paused state.\n * No operation otherwise.\n * ```typescript\n * this.carousel.play();\n * }\n * ```\n * @memberOf IgxCarouselComponent\n */\n /**\n * Resumes playing of the carousel if in paused state.\n * No operation otherwise.\n * ```typescript\n * this.carousel.play();\n * }\n * ```\n * \\@memberOf IgxCarouselComponent\n * @return {?}\n */\n IgxCarouselComponent.prototype.play = /**\n * Resumes playing of the carousel if in paused state.\n * No operation otherwise.\n * ```typescript\n * this.carousel.play();\n * }\n * ```\n * \\@memberOf IgxCarouselComponent\n * @return {?}\n */\n function () {\n if (!this._playing) {\n this._playing = true;\n this.onCarouselPlaying.emit(this);\n this._restartInterval();\n }\n };\n /**\n * Stops slide transitions if the `pause` option is set to `true`.\n * No operation otherwise.\n * ```typescript\n * this.carousel.stop();\n * }\n * ```\n * @memberOf IgxCarouselComponent\n */\n /**\n * Stops slide transitions if the `pause` option is set to `true`.\n * No operation otherwise.\n * ```typescript\n * this.carousel.stop();\n * }\n * ```\n * \\@memberOf IgxCarouselComponent\n * @return {?}\n */\n IgxCarouselComponent.prototype.stop = /**\n * Stops slide transitions if the `pause` option is set to `true`.\n * No operation otherwise.\n * ```typescript\n * this.carousel.stop();\n * }\n * ```\n * \\@memberOf IgxCarouselComponent\n * @return {?}\n */\n function () {\n if (this.pause) {\n this._playing = false;\n this.onCarouselPaused.emit(this);\n this._resetInterval();\n }\n };\n /**\n *@hidden\n */\n /**\n * @hidden\n * @private\n * @param {?} slide\n * @param {?} direction\n * @return {?}\n */\n IgxCarouselComponent.prototype._moveTo = /**\n * @hidden\n * @private\n * @param {?} slide\n * @param {?} direction\n * @return {?}\n */\n function (slide, direction) {\n if (this._destroyed) {\n return;\n }\n slide.direction = direction;\n slide.active = true;\n if (this._currentSlide) {\n this._currentSlide.direction = direction;\n this._currentSlide.active = false;\n }\n this._currentSlide = slide;\n this.onSlideChanged.emit({ carousel: this, slide: slide });\n this._restartInterval();\n };\n /**\n *@hidden\n */\n /**\n * @hidden\n * @private\n * @return {?}\n */\n IgxCarouselComponent.prototype._resetInterval = /**\n * @hidden\n * @private\n * @return {?}\n */\n function () {\n if (this._lastInterval) {\n clearInterval(this._lastInterval);\n this._lastInterval = null;\n }\n };\n /**\n *@hidden\n */\n /**\n * @hidden\n * @private\n * @return {?}\n */\n IgxCarouselComponent.prototype._restartInterval = /**\n * @hidden\n * @private\n * @return {?}\n */\n function () {\n var _this = this;\n this._resetInterval();\n if (!isNaN(this.interval) && this.interval > 0 && this.platformUtil.isBrowser) {\n this._lastInterval = setInterval(function () {\n /** @type {?} */\n var tick = +_this.interval;\n if (_this._playing && _this.total && !isNaN(tick) && tick > 0) {\n _this.next();\n }\n else {\n _this.stop();\n }\n }, this.interval);\n }\n };\n /**\n *@hidden\n */\n /**\n * @hidden\n * @return {?}\n */\n IgxCarouselComponent.prototype.onKeydownArrowRight = /**\n * @hidden\n * @return {?}\n */\n function () {\n var _this = this;\n this.next();\n requestAnimationFrame(function () { return _this.nativeElement.focus(); });\n };\n /**\n *@hidden\n */\n /**\n * @hidden\n * @return {?}\n */\n IgxCarouselComponent.prototype.onKeydownArrowLeft = /**\n * @hidden\n * @return {?}\n */\n function () {\n var _this = this;\n this.prev();\n requestAnimationFrame(function () { return _this.nativeElement.focus(); });\n };\n IgxCarouselComponent.decorators = [\n { type: Component, args: [{\n selector: 'igx-carousel',\n template: \"
\\n \\n \\n \\n
\\n\",\n styles: [\"\\n :host {\\n display: block;\\n outline-style: none;\\n }\"]\n }] }\n ];\n /** @nocollapse */\n IgxCarouselComponent.ctorParameters = function () { return [\n { type: ElementRef },\n { type: PlatformUtil }\n ]; };\n IgxCarouselComponent.propDecorators = {\n role: [{ type: HostBinding, args: ['attr.role',] }],\n id: [{ type: HostBinding, args: ['attr.id',] }, { type: Input }],\n loop: [{ type: Input }],\n pause: [{ type: Input }],\n interval: [{ type: Input }],\n tabIndex: [{ type: HostBinding, args: ['attr.tabindex',] }],\n navigation: [{ type: Input }],\n onSlideChanged: [{ type: Output }],\n onSlideAdded: [{ type: Output }],\n onSlideRemoved: [{ type: Output }],\n onCarouselPaused: [{ type: Output }],\n onCarouselPlaying: [{ type: Output }],\n onKeydownArrowRight: [{ type: HostListener, args: ['keydown.arrowright',] }],\n onKeydownArrowLeft: [{ type: HostListener, args: ['keydown.arrowleft',] }]\n };\n return IgxCarouselComponent;\n}());\n/**\n * A slide component that usually holds an image and/or a caption text.\n * IgxSlideComponent is usually a child component of an IgxCarouselComponent.\n *\n * ```\n * \n * \n * \n * ```\n *\n * @export\n */\nvar IgxSlideComponent = /** @class */ (function () {\n function IgxSlideComponent(carousel) {\n this.carousel = carousel;\n /**\n * @hidden\n */\n this.activeChange = new EventEmitter();\n }\n Object.defineProperty(IgxSlideComponent.prototype, \"active\", {\n /**\n * Gets/sets the `active` state of the slide.\n * ```html\n * \n * \n * \n * ```\n *\n * Two-way data binding.\n * ```html\n * \n * \n * \n * ```\n * @memberof IgxSlideComponent\n */\n get: /**\n * Gets/sets the `active` state of the slide.\n * ```html\n * \n * \n * \n * ```\n *\n * Two-way data binding.\n * ```html\n * \n * \n * \n * ```\n * \\@memberof IgxSlideComponent\n * @return {?}\n */\n function () {\n return this._active;\n },\n set: /**\n * @param {?} value\n * @return {?}\n */\n function (value) {\n this._active = value;\n this.activeChange.emit(this._active);\n },\n enumerable: true,\n configurable: true\n });\n /**\n *@hidden\n */\n /**\n * @hidden\n * @return {?}\n */\n IgxSlideComponent.prototype.ngOnInit = /**\n * @hidden\n * @return {?}\n */\n function () {\n this.carousel.add(this);\n };\n /**\n *@hidden\n */\n /**\n * @hidden\n * @return {?}\n */\n IgxSlideComponent.prototype.ngOnDestroy = /**\n * @hidden\n * @return {?}\n */\n function () {\n this.carousel.remove(this);\n };\n IgxSlideComponent.decorators = [\n { type: Component, args: [{\n selector: 'igx-slide',\n template: \"\\n \\n\\n\"\n }] }\n ];\n /** @nocollapse */\n IgxSlideComponent.ctorParameters = function () { return [\n { type: IgxCarouselComponent }\n ]; };\n IgxSlideComponent.propDecorators = {\n index: [{ type: Input }],\n direction: [{ type: Input }],\n active: [{ type: HostBinding, args: ['class.active',] }, { type: Input }],\n activeChange: [{ type: Output }]\n };\n return IgxSlideComponent;\n}());\n/**\n * @hidden\n */\nvar IgxCarouselModule = /** @class */ (function () {\n function IgxCarouselModule() {\n }\n IgxCarouselModule.decorators = [\n { type: NgModule, args: [{\n declarations: [IgxCarouselComponent, IgxSlideComponent],\n exports: [IgxCarouselComponent, IgxSlideComponent],\n imports: [CommonModule, IgxIconModule]\n },] }\n ];\n return IgxCarouselModule;\n}());\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n/** @enum {string} */\nvar LabelPosition = {\n BEFORE: 'before',\n AFTER: 'after',\n};\n/** @type {?} */\nvar noop$3 = function () { };\n/** @type {?} */\nvar nextId$2 = 0;\n/**\n * **Ignite UI for Angular Checkbox** -\n * [Documentation](https://www.infragistics.com/products/ignite-ui-angular/angular/components/checkbox.html)\n *\n * The Ignite UI Checkbox is a selection control that allows users to make a binary choice. It behaves similarly\n * to the native browser checkbox.\n *\n * Example:\n * ```html\n * \n * simple checkbox\n * \n * ```\n */\nvar IgxCheckboxComponent = /** @class */ (function () {\n function IgxCheckboxComponent() {\n /**\n * Sets/gets the `id` of the checkbox component.\n * If not set, the `id` of the first checkbox component will be `\"igx-checkbox-0\"`.\n * ```html\n * \n * ```\n * ```typescript\n * let checkboxId = this.checkbox.id;\n * ```\n * \\@memberof IgxCheckboxComponent\n */\n this.id = \"igx-checkbox-\" + nextId$2++;\n /**\n * Sets/gets the id of the `label` element.\n * If not set, the id of the `label` in the first checkbox component will be `\"igx-checkbox-0-label\"`.\n * ```html\n * \n * ```\n * ```typescript\n * let labelId = this.checkbox.labelId;\n * ```\n * \\@memberof IgxCheckboxComponent\n */\n this.labelId = this.id + \"-label\";\n /**\n * Sets/gets the value of the `tabindex` attribute.\n * ```html\n * \n * ```\n * ```typescript\n * let tabIndex = this.checkbox.tabindex;\n * ```\n * \\@memberof IgxCheckboxComponent\n */\n this.tabindex = null;\n /**\n * Sets/gets the position of the `label`.\n * If not set, the `labelPosition` will have value `\"after\"`.\n * ```html\n * \n * ```\n * ```typescript\n * let labelPosition = this.checkbox.labelPosition;\n * ```\n * \\@memberof IgxCheckboxComponent\n */\n this.labelPosition = LabelPosition.AFTER;\n /**\n * Enables/Disables the ripple effect.\n * If not set, `disableRipple` will have value `false`.\n * ```html\n * \n * ```\n * ```typescript\n * let isRippleDisabled = this.checkbox.desableRipple;\n * ```\n * \\@memberof IgxCheckboxComponent\n */\n this.disableRipple = false;\n /**\n * Sets/gets whether the checkbox is required.\n * If not set, `required` will have value `false`.\n * ```html\n * \n * ```\n * ```typescript\n * let isRequired = this.checkbox.required;\n * ```\n * \\@memberof IgxCheckboxComponent\n */\n this.required = false;\n /**\n * Sets/gets the `aria-labelledby` attribute.\n * If not set, the `aria-labelledby` will be equal to the value of `labelId` attribute.\n * ```html\n * \n * ```\n * ```typescript\n * let ariaLabelledBy = this.checkbox.ariaLabelledBy;\n * ```\n * \\@memberof IgxCheckboxComponent\n */\n this.ariaLabelledBy = this.labelId;\n /**\n * Sets/gets the value of the `aria-label` attribute.\n * ```html\n * \n * ```\n * ```typescript\n * let ariaLabel = this.checkbox.aruaLabel;\n * ```\n * \\@memberof IgxCheckboxComponent\n */\n this.ariaLabel = null;\n /**\n * An event that is emitted after the checkbox state is changed.\n * Provides references to the `IgxCheckboxComponent` and the `checked` property as event arguments.\n * \\@memberof IgxCheckboxComponent\n */\n this.change = new EventEmitter();\n /**\n * Returns the class of the checkbox component.\n * ```typescript\n * let class = this.checkbox.cssClass;\n * ```\n * \\@memberof IgxCheckboxComponent\n */\n this.cssClass = 'igx-checkbox';\n /**\n * Sets/gets whether the checkbox component is on focus.\n * Default value is `false`.\n * ```typescript\n * this.checkbox.focused = true;\n * ```\n * ```typescript\n * let isFocused = this.checkbox.focused;\n * ```\n * \\@memberof IgxCheckboxComponent\n */\n this.focused = false;\n /**\n * Sets/gets the checkbox indeterminate visual state.\n * Default value is `false`;\n * ```html\n * \n * ```\n * ```typescript\n * let isIndeterminate = this.checkbox.indeterminate;\n * ```\n * \\@memberof IgxCheckboxComponent\n */\n this.indeterminate = false;\n /**\n * Sets/gets whether the checkbox is checked.\n * Default value is `false`.\n * ```html\n * \n * ```\n * ```typescript\n * let isChecked = this.checkbox.checked;\n * ```\n * \\@memberof IgxCheckboxComponent\n */\n this.checked = false;\n /**\n * Sets/gets whether the checkbox is disabled.\n * Default value is `false`.\n * ```html\n * \n * ```\n * ```typescript\n * let isDisabled = this.checkbox.disabled;\n * ```\n * \\@memberof IgxCheckboxComponent\n */\n this.disabled = false;\n /**\n * Sets/gets whether the checkbox is readonly.\n * Default value is `false`.\n * ```html\n * \n * ```\n * ```typescript\n * let readonly = this.checkbox.readonly;\n * ```\n * \\@memberof IgxCheckboxComponent\n */\n this.readonly = false;\n /**\n * Sets/gets whether the checkbox should disable all css transitions.\n * Default value is `false`.\n * ```html\n * \n * ```\n * ```typescript\n * let disableTransitions = this.checkbox.disableTransitions;\n * ```\n * \\@memberof IgxCheckboxComponent\n */\n this.disableTransitions = false;\n /**\n * @hidden\n */\n this.inputId = this.id + \"-input\";\n /**\n * @hidden\n */\n this._onTouchedCallback = noop$3;\n /**\n * @hidden\n */\n this._onChangeCallback = noop$3;\n }\n /**\n * If `disabled` is `false`, switches the `checked` state.\n * ```typescript\n * this.checkbox.toggle();\n * ```\n * @memberof IgxCheckboxComponent\n */\n /**\n * If `disabled` is `false`, switches the `checked` state.\n * ```typescript\n * this.checkbox.toggle();\n * ```\n * \\@memberof IgxCheckboxComponent\n * @return {?}\n */\n IgxCheckboxComponent.prototype.toggle = /**\n * If `disabled` is `false`, switches the `checked` state.\n * ```typescript\n * this.checkbox.toggle();\n * ```\n * \\@memberof IgxCheckboxComponent\n * @return {?}\n */\n function () {\n if (this.disabled || this.readonly) {\n return;\n }\n this.indeterminate = false;\n this.focused = false;\n this.checked = !this.checked;\n this.change.emit({ checked: this.checked, checkbox: this });\n this._onChangeCallback(this.checked);\n };\n /**\n *@hidden\n */\n /**\n * @hidden\n * @param {?} event\n * @return {?}\n */\n IgxCheckboxComponent.prototype._onCheckboxChange = /**\n * @hidden\n * @param {?} event\n * @return {?}\n */\n function (event) {\n // We have to stop the original checkbox change event\n // from bubbling up since we emit our own change event\n event.stopPropagation();\n };\n /**\n *@hidden\n */\n /**\n * @hidden\n * @param {?} event\n * @return {?}\n */\n IgxCheckboxComponent.prototype._onCheckboxClick = /**\n * @hidden\n * @param {?} event\n * @return {?}\n */\n function (event) {\n // Since the original checkbox is hidden and the label\n // is used for styling and to change the checked state of the checkbox,\n // we need to prevent the checkbox click event from bubbling up\n // as it gets triggered on label click\n event.stopPropagation();\n if (this.readonly) {\n // readonly prevents the component from changing state (see toggle() method).\n // However, the native checkbox can still be activated through user interaction (focus + space, label click)\n // Prevent the native change so the input remains in sync\n event.preventDefault();\n }\n if (isIE()) {\n this.nativeCheckbox.nativeElement.blur();\n }\n this.toggle();\n };\n /**\n *@hidden\n */\n /**\n * @hidden\n * @param {?} event\n * @return {?}\n */\n IgxCheckboxComponent.prototype._onLabelClick = /**\n * @hidden\n * @param {?} event\n * @return {?}\n */\n function (event) {\n // We use a span element as a placeholder label\n // in place of the native label, we need to emit\n // the change event separately here alongside\n // the click event emitted on click\n this.toggle();\n };\n /**\n *@hidden\n */\n /**\n * @hidden\n * @param {?} event\n * @return {?}\n */\n IgxCheckboxComponent.prototype.onFocus = /**\n * @hidden\n * @param {?} event\n * @return {?}\n */\n function (event) {\n this.focused = true;\n };\n /**\n *@hidden\n */\n /**\n * @hidden\n * @param {?} event\n * @return {?}\n */\n IgxCheckboxComponent.prototype.onBlur = /**\n * @hidden\n * @param {?} event\n * @return {?}\n */\n function (event) {\n this.focused = false;\n this._onTouchedCallback();\n };\n /**\n *@hidden\n */\n /**\n * @hidden\n * @param {?} value\n * @return {?}\n */\n IgxCheckboxComponent.prototype.writeValue = /**\n * @hidden\n * @param {?} value\n * @return {?}\n */\n function (value) {\n this._value = value;\n this.checked = !!this._value;\n };\n Object.defineProperty(IgxCheckboxComponent.prototype, \"labelClass\", {\n /**\n *@hidden\n */\n get: /**\n * @hidden\n * @return {?}\n */\n function () {\n switch (this.labelPosition) {\n case LabelPosition.BEFORE:\n return this.cssClass + \"__label--before\";\n case LabelPosition.AFTER:\n default:\n return this.cssClass + \"__label\";\n }\n },\n enumerable: true,\n configurable: true\n });\n /**\n *@hidden\n */\n /**\n * @hidden\n * @param {?} fn\n * @return {?}\n */\n IgxCheckboxComponent.prototype.registerOnChange = /**\n * @hidden\n * @param {?} fn\n * @return {?}\n */\n function (fn) { this._onChangeCallback = fn; };\n /**\n *@hidden\n */\n /**\n * @hidden\n * @param {?} fn\n * @return {?}\n */\n IgxCheckboxComponent.prototype.registerOnTouched = /**\n * @hidden\n * @param {?} fn\n * @return {?}\n */\n function (fn) { this._onTouchedCallback = fn; };\n /** @hidden */\n /**\n * @hidden\n * @return {?}\n */\n IgxCheckboxComponent.prototype.getEditElement = /**\n * @hidden\n * @return {?}\n */\n function () {\n return this.nativeCheckbox.nativeElement;\n };\n IgxCheckboxComponent.decorators = [\n { type: Component, args: [{\n providers: [{ provide: NG_VALUE_ACCESSOR, useExisting: IgxCheckboxComponent, multi: true }],\n selector: 'igx-checkbox',\n preserveWhitespaces: false,\n template: \"\\n\\n\\n \\n\\n
\\n\\n\\n\\n \\n\\n\"\n }] }\n ];\n IgxCheckboxComponent.propDecorators = {\n nativeCheckbox: [{ type: ViewChild, args: ['checkbox', { static: true },] }],\n nativeLabel: [{ type: ViewChild, args: ['label', { static: true },] }],\n placeholderLabel: [{ type: ViewChild, args: ['placeholderLabel', { static: true },] }],\n id: [{ type: HostBinding, args: ['attr.id',] }, { type: Input }],\n labelId: [{ type: Input }],\n value: [{ type: Input }],\n name: [{ type: Input }],\n tabindex: [{ type: Input }],\n labelPosition: [{ type: Input }],\n disableRipple: [{ type: Input }],\n required: [{ type: Input }],\n ariaLabelledBy: [{ type: Input, args: ['aria-labelledby',] }],\n ariaLabel: [{ type: Input, args: ['aria-label',] }],\n change: [{ type: Output }],\n cssClass: [{ type: HostBinding, args: ['class.igx-checkbox',] }],\n focused: [{ type: HostBinding, args: ['class.igx-checkbox--focused',] }],\n indeterminate: [{ type: HostBinding, args: ['class.igx-checkbox--indeterminate',] }, { type: Input }],\n checked: [{ type: HostBinding, args: ['class.igx-checkbox--checked',] }, { type: Input }],\n disabled: [{ type: HostBinding, args: ['class.igx-checkbox--disabled',] }, { type: Input }],\n readonly: [{ type: Input }],\n disableTransitions: [{ type: HostBinding, args: ['class.igx-checkbox--plain',] }, { type: Input }]\n };\n return IgxCheckboxComponent;\n}());\n/** @type {?} */\nvar IGX_CHECKBOX_REQUIRED_VALIDATOR = {\n provide: NG_VALIDATORS,\n useExisting: forwardRef(function () { return IgxCheckboxRequiredDirective; }),\n multi: true\n};\n/* tslint:disable directive-selector */\nvar IgxCheckboxRequiredDirective = /** @class */ (function (_super) {\n __extends(IgxCheckboxRequiredDirective, _super);\n function IgxCheckboxRequiredDirective() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n IgxCheckboxRequiredDirective.decorators = [\n { type: Directive, args: [{\n selector: \"igx-checkbox[required][formControlName],\\n igx-checkbox[required][formControl],\\n igx-checkbox[required][ngModel]\",\n providers: [IGX_CHECKBOX_REQUIRED_VALIDATOR]\n },] }\n ];\n return IgxCheckboxRequiredDirective;\n}(CheckboxRequiredValidator));\n/**\n * @hidden\n */\nvar IgxCheckboxModule = /** @class */ (function () {\n function IgxCheckboxModule() {\n }\n IgxCheckboxModule.decorators = [\n { type: NgModule, args: [{\n declarations: [IgxCheckboxComponent, IgxCheckboxRequiredDirective],\n exports: [IgxCheckboxComponent, IgxCheckboxRequiredDirective],\n imports: [IgxRippleModule]\n },] }\n ];\n return IgxCheckboxModule;\n}());\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n/** @type {?} */\nvar CHIP_ID = 0;\nvar IgxChipComponent = /** @class */ (function (_super) {\n __extends(IgxChipComponent, _super);\n function IgxChipComponent(cdr, elementRef, renderer, _displayDensityOptions) {\n var _this = _super.call(this, _displayDensityOptions) || this;\n _this.cdr = cdr;\n _this.elementRef = elementRef;\n _this.renderer = renderer;\n _this._displayDensityOptions = _displayDensityOptions;\n /**\n * An \\@Input property that sets the value of `id` attribute. If not provided it will be automatically generated.\n * ```html\n * \n * ```\n */\n _this.id = \"igx-chip-\" + CHIP_ID++;\n /**\n * An \\@Input property that defines if the `IgxChipComponent` can be dragged in order to change it's position.\n * By default it is set to false.\n * ```html\n * \n * ```\n */\n _this.draggable = false;\n /**\n * An \\@Input property that enables/disables the draggable element animation when the element is released.\n * By default it's set to true.\n * ```html\n * \n * ```\n */\n _this.animateOnRelease = true;\n /**\n * An \\@Input property that enables/disables the hiding of the base element that has been dragged.\n * By default it's set to true.\n * ```html\n * \n * ```\n */\n _this.hideBaseOnDrag = true;\n /**\n * An \\@Input property that defines if the `IgxChipComponent` should render remove button and throw remove events.\n * By default it is set to false.\n * ```html\n * \n * ```\n */\n _this.removable = false;\n /**\n * An \\@Input property that defines if the `IgxChipComponent` can be selected on click or through navigation,\n * By default it is set to false.\n * ```html\n * \n * ```\n */\n _this.selectable = false;\n /**\n * @hidden\n */\n _this.class = '';\n /**\n * An \\@Input property that defines if the `IgxChipComponent` is disabled. When disabled it restricts user interactions\n * like focusing on click or tab, selection on click or Space, dragging.\n * By default it is set to false.\n * ```html\n * \n * ```\n */\n _this.disabled = false;\n /**\n * @hidden\n */\n _this.selectedChange = new EventEmitter();\n /**\n * Emits an event when the `IgxChipComponent` moving starts.\n * Returns the moving `IgxChipComponent`.\n * ```typescript\n * moveStarted(event: IBaseChipEventArgs){\n * let movingChip = event.owner;\n * }\n * ```\n * ```html\n * \n * ```\n */\n _this.onMoveStart = new EventEmitter();\n /**\n * Emits an event when the `IgxChipComponent` moving ends.\n * Returns the moved `IgxChipComponent`.\n * ```typescript\n * moveEnded(event: IBaseChipEventArgs){\n * let movedChip = event.owner;\n * }\n * ```\n * ```html\n * \n * ```\n */\n _this.onMoveEnd = new EventEmitter();\n /**\n * Emits an event when the `IgxChipComponent` is removed.\n * Returns the removed `IgxChipComponent`.\n * ```typescript\n * remove(event: IBaseChipEventArgs){\n * let removedChip = event.owner;\n * }\n * ```\n * ```html\n * \n * ```\n */\n _this.onRemove = new EventEmitter();\n /**\n * Emits an event when the `IgxChipComponent` is clicked.\n * Returns the clicked `IgxChipComponent`, whether the event should be canceled.\n * ```typescript\n * chipClick(event: IChipClickEventArgs){\n * let clickedChip = event.owner;\n * }\n * ```\n * ```html\n * \n * ```\n */\n _this.onClick = new EventEmitter();\n /**\n * Emits event when the `IgxChipComponent` is selected/deselected.\n * Returns the selected chip reference, whether the event should be canceled, what is the next selection state and\n * when the event is triggered by interaction `originalEvent` is provided, otherwise `originalEvent` is `null`.\n * ```typescript\n * chipSelect(event: IChipSelectEventArgs){\n * let selectedChip = event.owner;\n * }\n * ```\n * ```html\n * \n * ```\n */\n _this.onSelection = new EventEmitter();\n /**\n * Emits event when the `IgxChipComponent` is selected/deselected and any related animations and transitions also end.\n * ```typescript\n * chipSelectEnd(event: IBaseChipEventArgs){\n * let selectedChip = event.owner;\n * }\n * ```\n * ```html\n * \n * ```\n */\n _this.onSelectionDone = new EventEmitter();\n /**\n * Emits an event when the `IgxChipComponent` keyboard navigation is being used.\n * Returns the focused/selected `IgxChipComponent`, whether the event should be canceled,\n * if the `alt`, `shift` or `control` key is pressed and the pressed key name.\n * ```typescript\n * chipKeyDown(event: IChipKeyDownEventArgs){\n * let keyDown = event.key;\n * }\n * ```\n * ```html\n * \n * ```\n */\n _this.onKeyDown = new EventEmitter();\n /**\n * Emits an event when the `IgxChipComponent` has entered the `IgxChipsAreaComponent`.\n * Returns the target `IgxChipComponent`, the drag `IgxChipComponent`, as well as\n * the original drop event arguments.\n * ```typescript\n * chipEnter(event: IChipEnterDragAreaEventArgs){\n * let targetChip = event.targetChip;\n * }\n * ```\n * ```html\n * \n * ```\n */\n _this.onDragEnter = new EventEmitter();\n _this._selected = false;\n _this._selectedItemClass = 'igx-chip__item--selected';\n _this._movedWhileRemoving = false;\n return _this;\n }\n Object.defineProperty(IgxChipComponent.prototype, \"selected\", {\n /**\n * Returns if the `IgxChipComponent` is selected.\n * ```typescript\n * @ViewChild('myChip')\n * public chip: IgxChipComponent;\n * selectedChip(){\n * let selectedChip = this.chip.selected;\n * }\n * ```\n */\n get: /**\n * Returns if the `IgxChipComponent` is selected.\n * ```typescript\n * \\@ViewChild('myChip')\n * public chip: IgxChipComponent;\n * selectedChip(){\n * let selectedChip = this.chip.selected;\n * }\n * ```\n * @return {?}\n */\n function () {\n return this._selected;\n },\n /**\n * Sets the `IgxChipComponent` selected state.\n * ```html\n * \n * ```\n *\n * Two-way data binding:\n * ```html\n * \n * ```\n */\n set: /**\n * Sets the `IgxChipComponent` selected state.\n * ```html\n * \n * ```\n *\n * Two-way data binding:\n * ```html\n * \n * ```\n * @param {?} newValue\n * @return {?}\n */\n function (newValue) {\n this.changeSelection(newValue);\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxChipComponent.prototype, \"color\", {\n /**\n * Returns the background color of the `IgxChipComponent`.\n * ```typescript\n * @ViewChild('myChip')\n * public chip: IgxChipComponent;\n * ngAfterViewInit(){\n * let chipColor = this.chip.color;\n * }\n * ```\n */\n get: /**\n * Returns the background color of the `IgxChipComponent`.\n * ```typescript\n * \\@ViewChild('myChip')\n * public chip: IgxChipComponent;\n * ngAfterViewInit(){\n * let chipColor = this.chip.color;\n * }\n * ```\n * @return {?}\n */\n function () {\n return this.chipArea.nativeElement.style.backgroundColor;\n },\n /**\n * An @Input property that sets the `IgxChipComponent` background color.\n * The `color` property supports string, rgb, hex.\n * ```html\n * \n * ```\n */\n set: /**\n * An \\@Input property that sets the `IgxChipComponent` background color.\n * The `color` property supports string, rgb, hex.\n * ```html\n * \n * ```\n * @param {?} newColor\n * @return {?}\n */\n function (newColor) {\n this.chipArea.nativeElement.style.backgroundColor = newColor;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxChipComponent.prototype, \"hostClass\", {\n /**\n * @hidden\n */\n get: /**\n * @hidden\n * @return {?}\n */\n function () {\n /** @type {?} */\n var classes = [this.getComponentDensityClass('igx-chip')];\n classes.push(this.disabled ? 'igx-chip--disabled' : '');\n // The custom classes should be at the end.\n classes.push(this.class);\n return classes.join(' ');\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxChipComponent.prototype, \"removeButtonTemplate\", {\n /**\n * @hidden\n */\n get: /**\n * @hidden\n * @return {?}\n */\n function () {\n return this.removeIcon || this.defaultRemoveIcon;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxChipComponent.prototype, \"selectIconTemplate\", {\n /**\n * @hidden\n */\n get: /**\n * @hidden\n * @return {?}\n */\n function () {\n return this.selectIcon || this.defaultSelectIcon;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxChipComponent.prototype, \"ghostClass\", {\n /**\n * @hidden\n */\n get: /**\n * @hidden\n * @return {?}\n */\n function () {\n return this.getComponentDensityClass('igx-chip__ghost');\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxChipComponent.prototype, \"chipTabindex\", {\n get: /**\n * @return {?}\n */\n function () {\n return !this.disabled ? 0 : '';\n },\n enumerable: true,\n configurable: true\n });\n /**\n * @hidden\n */\n /**\n * @hidden\n * @param {?} condition\n * @return {?}\n */\n IgxChipComponent.prototype.selectClass = /**\n * @hidden\n * @param {?} condition\n * @return {?}\n */\n function (condition) {\n var _a;\n /** @type {?} */\n var SELECT_CLASS = 'igx-chip__select';\n return _a = {},\n _a[SELECT_CLASS] = condition,\n _a[SELECT_CLASS + \"--hidden\"] = !condition,\n _a;\n };\n /**\n * @protected\n * @param {?} newValue\n * @param {?=} srcEvent\n * @return {?}\n */\n IgxChipComponent.prototype.changeSelection = /**\n * @protected\n * @param {?} newValue\n * @param {?=} srcEvent\n * @return {?}\n */\n function (newValue, srcEvent) {\n if (srcEvent === void 0) { srcEvent = null; }\n /** @type {?} */\n var onSelectArgs = {\n originalEvent: srcEvent,\n owner: this,\n selected: false,\n cancel: false\n };\n if (newValue && !this._selected) {\n onSelectArgs.selected = true;\n this.onSelection.emit(onSelectArgs);\n if (!onSelectArgs.cancel) {\n this.renderer.addClass(this.chipArea.nativeElement, this._selectedItemClass);\n this._selected = newValue;\n this.selectedChange.emit(this._selected);\n }\n }\n else if (!newValue && this._selected) {\n this.onSelection.emit(onSelectArgs);\n if (!onSelectArgs.cancel) {\n this.renderer.removeClass(this.chipArea.nativeElement, this._selectedItemClass);\n this._selected = newValue;\n this.selectedChange.emit(this._selected);\n }\n }\n };\n /**\n * @param {?} event\n * @return {?}\n */\n IgxChipComponent.prototype.onSelectTransitionDone = /**\n * @param {?} event\n * @return {?}\n */\n function (event) {\n if (event.propertyName === 'width' && !!event.target.tagName) {\n // Trigger onSelectionDone on when `width` property is changed and the target is valid element(not comment).\n this.onSelectionDone.emit({\n owner: this,\n originalEvent: event\n });\n }\n };\n /**\n * @hidden\n */\n /**\n * @hidden\n * @param {?} event\n * @return {?}\n */\n IgxChipComponent.prototype.onChipKeyDown = /**\n * @hidden\n * @param {?} event\n * @return {?}\n */\n function (event) {\n /** @type {?} */\n var keyDownArgs = {\n originalEvent: event,\n owner: this,\n cancel: false\n };\n this.onKeyDown.emit(keyDownArgs);\n if (keyDownArgs.cancel) {\n return;\n }\n if ((event.key === 'Delete' || event.key === 'Del') && this.removable) {\n this.onRemove.emit({\n originalEvent: event,\n owner: this\n });\n }\n if ((event.key === ' ' || event.key === 'Spacebar') && this.selectable && !this.disabled) {\n this.changeSelection(!this.selected, event);\n }\n if (event.key !== 'Tab') {\n event.preventDefault();\n }\n };\n /**\n * @hidden\n */\n /**\n * @hidden\n * @param {?} event\n * @return {?}\n */\n IgxChipComponent.prototype.onRemoveBtnKeyDown = /**\n * @hidden\n * @param {?} event\n * @return {?}\n */\n function (event) {\n if (event.key === ' ' || event.key === 'Spacebar' || event.key === 'Enter') {\n this.onRemove.emit({\n originalEvent: event,\n owner: this\n });\n event.preventDefault();\n event.stopPropagation();\n }\n };\n /**\n * @param {?} event\n * @return {?}\n */\n IgxChipComponent.prototype.onRemoveMouseDown = /**\n * @param {?} event\n * @return {?}\n */\n function (event) {\n event.stopPropagation();\n };\n /**\n * @hidden\n */\n /**\n * @hidden\n * @param {?} event\n * @return {?}\n */\n IgxChipComponent.prototype.onRemoveClick = /**\n * @hidden\n * @param {?} event\n * @return {?}\n */\n function (event) {\n this.onRemove.emit({\n originalEvent: event,\n owner: this\n });\n };\n /**\n * @hidden\n */\n /**\n * @hidden\n * @return {?}\n */\n IgxChipComponent.prototype.onRemoveTouchMove = /**\n * @hidden\n * @return {?}\n */\n function () {\n // We don't remove chip if user starting touch interacting on the remove button moves the chip\n this._movedWhileRemoving = true;\n };\n /**\n * @hidden\n */\n /**\n * @hidden\n * @param {?} event\n * @return {?}\n */\n IgxChipComponent.prototype.onRemoveTouchEnd = /**\n * @hidden\n * @param {?} event\n * @return {?}\n */\n function (event) {\n if (!this._movedWhileRemoving) {\n this.onRemoveClick(event);\n }\n this._movedWhileRemoving = false;\n };\n /**\n * @hidden\n */\n // -----------------------------\n // Start chip igxDrag behavior\n /**\n * @hidden\n * @param {?} event\n * @return {?}\n */\n // -----------------------------\n // Start chip igxDrag behavior\n IgxChipComponent.prototype.onChipDragStart = /**\n * @hidden\n * @param {?} event\n * @return {?}\n */\n // -----------------------------\n // Start chip igxDrag behavior\n function (event) {\n this.onMoveStart.emit({\n originalEvent: event,\n owner: this\n });\n event.cancel = !this.draggable || this.disabled;\n };\n /**\n * @hidden\n */\n /**\n * @hidden\n * @return {?}\n */\n IgxChipComponent.prototype.onChipDragEnd = /**\n * @hidden\n * @return {?}\n */\n function () {\n if (this.animateOnRelease) {\n this.dragDirective.transitionToOrigin();\n }\n };\n /**\n * @hidden\n */\n /**\n * @hidden\n * @param {?} event\n * @return {?}\n */\n IgxChipComponent.prototype.onChipMoveEnd = /**\n * @hidden\n * @param {?} event\n * @return {?}\n */\n function (event) {\n // moveEnd is triggered after return animation has finished. This happen when we drag and release the chip.\n this.onMoveEnd.emit({\n originalEvent: event,\n owner: this\n });\n if (this.selected) {\n this.chipArea.nativeElement.focus();\n }\n };\n /**\n * @hidden\n */\n /**\n * @hidden\n * @param {?} event\n * @return {?}\n */\n IgxChipComponent.prototype.onChipDragClicked = /**\n * @hidden\n * @param {?} event\n * @return {?}\n */\n function (event) {\n /** @type {?} */\n var clickEventArgs = {\n originalEvent: event,\n owner: this,\n cancel: false\n };\n this.onClick.emit(clickEventArgs);\n if (!clickEventArgs.cancel && this.selectable && !this.disabled) {\n this.changeSelection(!this.selected, event);\n }\n };\n // End chip igxDrag behavior\n /**\n * @hidden\n */\n // -----------------------------\n // Start chip igxDrop behavior\n // End chip igxDrag behavior\n /**\n * @hidden\n * @param {?} event\n * @return {?}\n */\n // -----------------------------\n // Start chip igxDrop behavior\n IgxChipComponent.prototype.onChipDragEnterHandler = \n // End chip igxDrag behavior\n /**\n * @hidden\n * @param {?} event\n * @return {?}\n */\n // -----------------------------\n // Start chip igxDrop behavior\n function (event) {\n if (this.dragDirective === event.drag || !event.drag.data || !event.drag.data.chip) {\n return;\n }\n /** @type {?} */\n var eventArgs = {\n owner: this,\n dragChip: event.drag.data.chip,\n originalEvent: event\n };\n this.onDragEnter.emit(eventArgs);\n };\n /**\n * @hidden\n */\n /**\n * @hidden\n * @param {?} event\n * @return {?}\n */\n IgxChipComponent.prototype.onChipDrop = /**\n * @hidden\n * @param {?} event\n * @return {?}\n */\n function (event) {\n // Cancel the default drop logic\n event.cancel = true;\n };\n IgxChipComponent.decorators = [\n { type: Component, args: [{\n selector: 'igx-chip',\n template: \"
\\n\\n
\\n \\n
\\n\\n \\n\\n
\\n \\n
\\n\\n \\n\\n
\\n \\n
\\n
\\n\\n\\n done\\n\\n\\n\\n cancel\\n\\n\"\n }] }\n ];\n /** @nocollapse */\n IgxChipComponent.ctorParameters = function () { return [\n { type: ChangeDetectorRef },\n { type: ElementRef },\n { type: Renderer2 },\n { type: undefined, decorators: [{ type: Optional }, { type: Inject, args: [DisplayDensityToken,] }] }\n ]; };\n IgxChipComponent.propDecorators = {\n id: [{ type: HostBinding, args: ['attr.id',] }, { type: Input }],\n data: [{ type: Input }],\n draggable: [{ type: Input }],\n animateOnRelease: [{ type: Input }],\n hideBaseOnDrag: [{ type: Input }],\n removable: [{ type: Input }],\n removeIcon: [{ type: Input }],\n selectable: [{ type: Input }],\n selectIcon: [{ type: Input }],\n class: [{ type: Input }],\n disabled: [{ type: Input }],\n selected: [{ type: Input }],\n selectedChange: [{ type: Output }],\n color: [{ type: Input }],\n onMoveStart: [{ type: Output }],\n onMoveEnd: [{ type: Output }],\n onRemove: [{ type: Output }],\n onClick: [{ type: Output }],\n onSelection: [{ type: Output }],\n onSelectionDone: [{ type: Output }],\n onKeyDown: [{ type: Output }],\n onDragEnter: [{ type: Output }],\n hostClass: [{ type: HostBinding, args: ['attr.class',] }],\n dragDirective: [{ type: ViewChild, args: ['chipArea', { read: IgxDragDirective, static: true },] }],\n chipArea: [{ type: ViewChild, args: ['chipArea', { read: ElementRef, static: true },] }],\n defaultRemoveIcon: [{ type: ViewChild, args: ['defaultRemoveIcon', { read: TemplateRef, static: true },] }],\n defaultSelectIcon: [{ type: ViewChild, args: ['defaultSelectIcon', { read: TemplateRef, static: true },] }]\n };\n return IgxChipComponent;\n}(DisplayDensityBase));\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\nvar IgxChipsAreaComponent = /** @class */ (function () {\n function IgxChipsAreaComponent(cdr, element, _iterableDiffers) {\n this.cdr = cdr;\n this.element = element;\n this._iterableDiffers = _iterableDiffers;\n /**\n * @hidden\n */\n this.class = '';\n /**\n * Emits an event when `IgxChipComponent`s in the `IgxChipsAreaComponent` should be reordered.\n * Returns an array of `IgxChipComponent`s.\n * ```html\n * \n * ```\n * ```typescript\n * public changedOrder(event: IChipsAreaReorderEventArgs){\n * let chips: IgxChipComponent[] = event.chipsArray;\n * }\n * ```\n */\n this.onReorder = new EventEmitter();\n /**\n * Emits an event when an `IgxChipComponent` in the `IgxChipsAreaComponent` is selected/deselected.\n * Fired after the chips area is initialized if there are initially selected chips as well.\n * Returns an array of selected `IgxChipComponent`s and the `IgxChipAreaComponent`.\n * ```html\n * \n * ```\n * ```typescript\n * public selection(event: IChipsAreaSelectEventArgs){\n * let selectedChips: IgxChipComponent[] = event.newSelection;\n * }\n */\n this.onSelection = new EventEmitter();\n /**\n * Emits an event when an `IgxChipComponent` in the `IgxChipsAreaComponent` is moved.\n * ```html\n * \n * ```\n * ```typescript\n * moveStart(event: IBaseChipsAreaEventArgs){\n * let chipArea = event.owner;\n * }\n * ```\n */\n this.onMoveStart = new EventEmitter();\n /**\n * Emits an event after an `IgxChipComponent` in the `IgxChipsAreaComponent` is moved.\n * ```html\n * \n * ```\n * ```typescript\n * moveEnd(event: IBaseChipsAreaEventArgs){\n * let chipArea = event.owner;\n * }\n * ```\n */\n this.onMoveEnd = new EventEmitter();\n this._differ = null;\n this.destroy$ = new Subject();\n this._differ = this._iterableDiffers.find([]).create(null);\n }\n Object.defineProperty(IgxChipsAreaComponent.prototype, \"hostClass\", {\n /**\n * @hidden\n */\n get: /**\n * @hidden\n * @return {?}\n */\n function () {\n /** @type {?} */\n var classes = ['igx-chip-area'];\n classes.push(this.class);\n return classes.join(' ');\n },\n enumerable: true,\n configurable: true\n });\n /**\n * @hidden\n */\n /**\n * @hidden\n * @return {?}\n */\n IgxChipsAreaComponent.prototype.ngAfterViewInit = /**\n * @hidden\n * @return {?}\n */\n function () {\n // If we have initially selected chips through their inputs, we need to get them, because we cannot listen to their events yet.\n if (this.chipsList.length) {\n /** @type {?} */\n var selectedChips = this.chipsList.filter(function (item) { return item.selected; });\n if (selectedChips.length) {\n this.onSelection.emit({\n originalEvent: null,\n newSelection: selectedChips,\n owner: this\n });\n }\n }\n };\n /**\n * @hidden\n */\n /**\n * @hidden\n * @return {?}\n */\n IgxChipsAreaComponent.prototype.ngDoCheck = /**\n * @hidden\n * @return {?}\n */\n function () {\n var _this = this;\n if (this.chipsList) {\n /** @type {?} */\n var changes = this._differ.diff(this.chipsList.toArray());\n if (changes) {\n changes.forEachAddedItem(function (addedChip) {\n addedChip.item.onMoveStart.pipe(takeUntil(_this.destroy$)).subscribe(function (args) {\n _this.onChipMoveStart(args);\n });\n addedChip.item.onMoveEnd.pipe(takeUntil(_this.destroy$)).subscribe(function (args) {\n _this.onChipMoveEnd(args);\n });\n addedChip.item.onDragEnter.pipe(takeUntil(_this.destroy$)).subscribe(function (args) {\n _this.onChipDragEnter(args);\n });\n addedChip.item.onKeyDown.pipe(takeUntil(_this.destroy$)).subscribe(function (args) {\n _this.onChipKeyDown(args);\n });\n if (addedChip.item.selectable) {\n addedChip.item.onSelection.pipe(takeUntil(_this.destroy$)).subscribe(function (args) {\n _this.onChipSelectionChange(args);\n });\n }\n });\n this.modifiedChipsArray = this.chipsList.toArray();\n }\n }\n };\n /**\n *@hidden\n */\n /**\n * @hidden\n * @return {?}\n */\n IgxChipsAreaComponent.prototype.ngOnDestroy = /**\n * @hidden\n * @return {?}\n */\n function () {\n this.destroy$.next(true);\n this.destroy$.complete();\n };\n /**\n * @hidden\n */\n /**\n * @hidden\n * @protected\n * @param {?} event\n * @return {?}\n */\n IgxChipsAreaComponent.prototype.onChipKeyDown = /**\n * @hidden\n * @protected\n * @param {?} event\n * @return {?}\n */\n function (event) {\n var _this = this;\n /** @type {?} */\n var orderChanged = false;\n /** @type {?} */\n var chipsArray = this.chipsList.toArray();\n /** @type {?} */\n var dragChipIndex = chipsArray.findIndex(function (el) { return el === event.owner; });\n if (event.originalEvent.shiftKey === true) {\n if (event.originalEvent.key === 'ArrowLeft' || event.originalEvent.key === 'Left') {\n orderChanged = this.positionChipAtIndex(dragChipIndex, dragChipIndex - 1, false, event.originalEvent);\n if (orderChanged) {\n setTimeout(function () {\n _this.chipsList.toArray()[dragChipIndex - 1].chipArea.nativeElement.focus();\n });\n }\n }\n else if (event.originalEvent.key === 'ArrowRight' || event.originalEvent.key === 'Right') {\n orderChanged = this.positionChipAtIndex(dragChipIndex, dragChipIndex + 1, true, event.originalEvent);\n }\n }\n else {\n if ((event.originalEvent.key === 'ArrowLeft' || event.originalEvent.key === 'Left') && dragChipIndex > 0) {\n chipsArray[dragChipIndex - 1].chipArea.nativeElement.focus();\n }\n else if ((event.originalEvent.key === 'ArrowRight' || event.originalEvent.key === 'Right') &&\n dragChipIndex < chipsArray.length - 1) {\n chipsArray[dragChipIndex + 1].chipArea.nativeElement.focus();\n }\n }\n };\n /**\n * @hidden\n */\n /**\n * @hidden\n * @protected\n * @param {?} event\n * @return {?}\n */\n IgxChipsAreaComponent.prototype.onChipMoveStart = /**\n * @hidden\n * @protected\n * @param {?} event\n * @return {?}\n */\n function (event) {\n this.onMoveStart.emit({\n originalEvent: event.originalEvent,\n owner: this\n });\n };\n /**\n * @hidden\n */\n /**\n * @hidden\n * @protected\n * @param {?} event\n * @return {?}\n */\n IgxChipsAreaComponent.prototype.onChipMoveEnd = /**\n * @hidden\n * @protected\n * @param {?} event\n * @return {?}\n */\n function (event) {\n this.onMoveEnd.emit({\n originalEvent: event.originalEvent,\n owner: this\n });\n };\n /**\n * @hidden\n */\n /**\n * @hidden\n * @protected\n * @param {?} event\n * @return {?}\n */\n IgxChipsAreaComponent.prototype.onChipDragEnter = /**\n * @hidden\n * @protected\n * @param {?} event\n * @return {?}\n */\n function (event) {\n /** @type {?} */\n var dropChipIndex = this.chipsList.toArray().findIndex(function (el) { return el === event.owner; });\n /** @type {?} */\n var dragChipIndex = this.chipsList.toArray().findIndex(function (el) { return el === event.dragChip; });\n if (dragChipIndex < dropChipIndex) {\n // from the left to right\n this.positionChipAtIndex(dragChipIndex, dropChipIndex, true, event.originalEvent);\n }\n else {\n // from the right to left\n this.positionChipAtIndex(dragChipIndex, dropChipIndex, false, event.originalEvent);\n }\n };\n /**\n * @hidden\n */\n /**\n * @hidden\n * @protected\n * @param {?} chipIndex\n * @param {?} targetIndex\n * @param {?} shiftRestLeft\n * @param {?} originalEvent\n * @return {?}\n */\n IgxChipsAreaComponent.prototype.positionChipAtIndex = /**\n * @hidden\n * @protected\n * @param {?} chipIndex\n * @param {?} targetIndex\n * @param {?} shiftRestLeft\n * @param {?} originalEvent\n * @return {?}\n */\n function (chipIndex, targetIndex, shiftRestLeft, originalEvent) {\n if (chipIndex < 0 || this.chipsList.length <= chipIndex ||\n targetIndex < 0 || this.chipsList.length <= targetIndex) {\n return false;\n }\n /** @type {?} */\n var chipsArray = this.chipsList.toArray();\n /** @type {?} */\n var result = [];\n for (var i = 0; i < chipsArray.length; i++) {\n if (shiftRestLeft) {\n if (chipIndex <= i && i < targetIndex) {\n result.push(chipsArray[i + 1]);\n }\n else if (i === targetIndex) {\n result.push(chipsArray[chipIndex]);\n }\n else {\n result.push(chipsArray[i]);\n }\n }\n else {\n if (targetIndex < i && i <= chipIndex) {\n result.push(chipsArray[i - 1]);\n }\n else if (i === targetIndex) {\n result.push(chipsArray[chipIndex]);\n }\n else {\n result.push(chipsArray[i]);\n }\n }\n }\n this.modifiedChipsArray = result;\n /** @type {?} */\n var eventData = {\n chipsArray: this.modifiedChipsArray,\n originalEvent: originalEvent,\n owner: this\n };\n this.onReorder.emit(eventData);\n return true;\n };\n /**\n * @hidden\n */\n /**\n * @hidden\n * @protected\n * @param {?} event\n * @return {?}\n */\n IgxChipsAreaComponent.prototype.onChipSelectionChange = /**\n * @hidden\n * @protected\n * @param {?} event\n * @return {?}\n */\n function (event) {\n /** @type {?} */\n var selectedChips = this.chipsList.filter(function (chip) { return chip.selected; });\n if (event.selected && !selectedChips.includes(event.owner)) {\n selectedChips.push(event.owner);\n }\n else if (!event.selected && selectedChips.includes(event.owner)) {\n selectedChips = selectedChips.filter(function (chip) {\n return chip.id !== event.owner.id;\n });\n }\n this.onSelection.emit({\n originalEvent: event.originalEvent,\n newSelection: selectedChips,\n owner: this\n });\n };\n IgxChipsAreaComponent.decorators = [\n { type: Component, args: [{\n selector: 'igx-chips-area',\n template: \"\\n\"\n }] }\n ];\n /** @nocollapse */\n IgxChipsAreaComponent.ctorParameters = function () { return [\n { type: ChangeDetectorRef },\n { type: ElementRef },\n { type: IterableDiffers }\n ]; };\n IgxChipsAreaComponent.propDecorators = {\n class: [{ type: Input }],\n hostClass: [{ type: HostBinding, args: ['attr.class',] }],\n width: [{ type: HostBinding, args: ['style.width.px',] }, { type: Input }],\n height: [{ type: HostBinding, args: ['style.height.px',] }, { type: Input }],\n onReorder: [{ type: Output }],\n onSelection: [{ type: Output }],\n onMoveStart: [{ type: Output }],\n onMoveEnd: [{ type: Output }],\n chipsList: [{ type: ContentChildren, args: [IgxChipComponent,] }]\n };\n return IgxChipsAreaComponent;\n}());\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n/**\n * @hidden\n */\nvar IgxChipsModule = /** @class */ (function () {\n function IgxChipsModule() {\n }\n IgxChipsModule.decorators = [\n { type: NgModule, args: [{\n declarations: [\n IgxChipsAreaComponent,\n IgxChipComponent\n ],\n exports: [\n IgxChipsAreaComponent,\n IgxChipComponent,\n IgxPrefixDirective,\n IgxSuffixDirective\n ],\n imports: [\n CommonModule,\n IgxRippleModule,\n IgxIconModule,\n IgxButtonModule,\n IgxAvatarModule,\n IgxDragDropModule,\n IgxPrefixModule,\n IgxSuffixModule\n ]\n },] }\n ];\n return IgxChipsModule;\n}());\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n/**\n * @hidden\n */\nvar IgxComboHeaderDirective = /** @class */ (function () {\n function IgxComboHeaderDirective() {\n }\n IgxComboHeaderDirective.decorators = [\n { type: Directive, args: [{\n selector: '[igxComboHeader]'\n },] }\n ];\n return IgxComboHeaderDirective;\n}());\n/**\n * @hidden\n */\nvar IgxComboFooterDirective = /** @class */ (function () {\n function IgxComboFooterDirective() {\n }\n IgxComboFooterDirective.decorators = [\n { type: Directive, args: [{\n selector: '[igxComboFooter]'\n },] }\n ];\n return IgxComboFooterDirective;\n}());\n/**\n * @hidden\n */\nvar IgxComboItemDirective = /** @class */ (function () {\n function IgxComboItemDirective() {\n }\n IgxComboItemDirective.decorators = [\n { type: Directive, args: [{\n selector: '[igxComboItem]'\n },] }\n ];\n return IgxComboItemDirective;\n}());\n/**\n * @hidden\n */\nvar IgxComboEmptyDirective = /** @class */ (function () {\n function IgxComboEmptyDirective() {\n }\n IgxComboEmptyDirective.decorators = [\n { type: Directive, args: [{\n selector: '[igxComboEmpty]'\n },] }\n ];\n return IgxComboEmptyDirective;\n}());\n/**\n * @hidden\n */\nvar IgxComboHeaderItemDirective = /** @class */ (function () {\n function IgxComboHeaderItemDirective() {\n }\n IgxComboHeaderItemDirective.decorators = [\n { type: Directive, args: [{\n selector: '[igxComboHeaderItem]'\n },] }\n ];\n return IgxComboHeaderItemDirective;\n}());\n/**\n * @hidden\n */\nvar IgxComboAddItemDirective = /** @class */ (function () {\n function IgxComboAddItemDirective() {\n }\n IgxComboAddItemDirective.decorators = [\n { type: Directive, args: [{\n selector: '[igxComboAddItem]'\n },] }\n ];\n return IgxComboAddItemDirective;\n}());\n/**\n * @hidden\n */\nvar IgxComboToggleIconDirective = /** @class */ (function () {\n function IgxComboToggleIconDirective() {\n }\n IgxComboToggleIconDirective.decorators = [\n { type: Directive, args: [{\n selector: '[igxComboToggleIcon]'\n },] }\n ];\n return IgxComboToggleIconDirective;\n}());\n/**\n * @hidden\n */\nvar IgxComboClearIconDirective = /** @class */ (function () {\n function IgxComboClearIconDirective() {\n }\n IgxComboClearIconDirective.decorators = [\n { type: Directive, args: [{\n selector: '[igxComboClearIcon]'\n },] }\n ];\n return IgxComboClearIconDirective;\n}());\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n/**\n * @hidden\n */\nvar /**\n * @hidden\n */\nIgxComboAPIService = /** @class */ (function () {\n function IgxComboAPIService() {\n this.disableTransitions = false;\n }\n /**\n * @param {?} combo\n * @return {?}\n */\n IgxComboAPIService.prototype.register = /**\n * @param {?} combo\n * @return {?}\n */\n function (combo) {\n this.combo = combo;\n };\n /**\n * @return {?}\n */\n IgxComboAPIService.prototype.clear = /**\n * @return {?}\n */\n function () {\n this.combo = null;\n };\n Object.defineProperty(IgxComboAPIService.prototype, \"valueKey\", {\n get: /**\n * @return {?}\n */\n function () {\n return this.combo.valueKey !== null && this.combo.valueKey !== undefined ? this.combo.valueKey : null;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxComboAPIService.prototype, \"item_focusable\", {\n get: /**\n * @return {?}\n */\n function () {\n return false;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxComboAPIService.prototype, \"isRemote\", {\n get: /**\n * @return {?}\n */\n function () {\n return this.combo.isRemote;\n },\n enumerable: true,\n configurable: true\n });\n /**\n * @return {?}\n */\n IgxComboAPIService.prototype.add_custom_item = /**\n * @return {?}\n */\n function () {\n if (!this.combo) {\n return;\n }\n this.combo.addItemToCollection();\n };\n Object.defineProperty(IgxComboAPIService.prototype, \"comboID\", {\n get: /**\n * @return {?}\n */\n function () {\n return this.combo.id;\n },\n enumerable: true,\n configurable: true\n });\n /**\n * @param {?} itemID\n * @param {?=} event\n * @return {?}\n */\n IgxComboAPIService.prototype.set_selected_item = /**\n * @param {?} itemID\n * @param {?=} event\n * @return {?}\n */\n function (itemID, event) {\n /** @type {?} */\n var selected = this.combo.isItemSelected(itemID);\n if (itemID === null || itemID === undefined) {\n return;\n }\n if (!selected) {\n this.combo.selectItems([itemID], false, event);\n }\n else {\n this.combo.deselectItems([itemID], event);\n }\n };\n /**\n * @param {?} itemID\n * @return {?}\n */\n IgxComboAPIService.prototype.is_item_selected = /**\n * @param {?} itemID\n * @return {?}\n */\n function (itemID) {\n return this.combo.isItemSelected(itemID);\n };\n return IgxComboAPIService;\n}());\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n/**\n * @hidden\n */\nvar IgxComboItemComponent = /** @class */ (function (_super) {\n __extends(IgxComboItemComponent, _super);\n function IgxComboItemComponent(comboAPI, dropDown, elementRef, selection) {\n var _this = _super.call(this, dropDown, elementRef, null, selection) || this;\n _this.comboAPI = comboAPI;\n _this.dropDown = dropDown;\n _this.elementRef = elementRef;\n _this.selection = selection;\n /**\n * Gets the height of a list item\n * @hidden\n */\n _this.itemHeight = '';\n return _this;\n }\n Object.defineProperty(IgxComboItemComponent.prototype, \"itemID\", {\n /**\n * @hidden\n */\n get: /**\n * @hidden\n * @return {?}\n */\n function () {\n /** @type {?} */\n var valueKey = this.comboAPI.valueKey;\n return valueKey !== null ? this.value[valueKey] : this.value;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxComboItemComponent.prototype, \"comboID\", {\n /**\n * @hidden\n */\n get: /**\n * @hidden\n * @return {?}\n */\n function () {\n return this.comboAPI.comboID;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxComboItemComponent.prototype, \"disableTransitions\", {\n /**\n * @hidden\n * @internal\n */\n get: /**\n * @hidden\n * \\@internal\n * @return {?}\n */\n function () {\n return this.comboAPI.disableTransitions;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxComboItemComponent.prototype, \"selected\", {\n /**\n * @hidden\n */\n get: /**\n * @hidden\n * @return {?}\n */\n function () {\n return this.comboAPI.is_item_selected(this.itemID);\n },\n set: /**\n * @param {?} value\n * @return {?}\n */\n function (value) {\n if (this.isHeader) {\n return;\n }\n this._selected = value;\n },\n enumerable: true,\n configurable: true\n });\n /**\n * @hidden\n */\n /**\n * @hidden\n * @param {?} direction\n * @return {?}\n */\n IgxComboItemComponent.prototype.isVisible = /**\n * @hidden\n * @param {?} direction\n * @return {?}\n */\n function (direction) {\n /** @type {?} */\n var rect = this.element.nativeElement.getBoundingClientRect();\n /** @type {?} */\n var parentDiv = this.element.nativeElement.parentElement.parentElement.getBoundingClientRect();\n if (direction === Navigate.Down) {\n return rect.y + rect.height <= parentDiv.y + parentDiv.height;\n }\n return rect.y >= parentDiv.y;\n };\n /**\n * @param {?} event\n * @return {?}\n */\n IgxComboItemComponent.prototype.clicked = /**\n * @param {?} event\n * @return {?}\n */\n function (event) {\n this.comboAPI.disableTransitions = false;\n if (this.disabled || this.isHeader) {\n /** @type {?} */\n var focusedItem = this.dropDown.items.find(function (item) { return item.focused; });\n if (this.dropDown.allowItemsFocus && focusedItem) {\n focusedItem.element.nativeElement.focus({ preventScroll: true });\n }\n return;\n }\n this.dropDown.navigateItem(this.index);\n this.comboAPI.set_selected_item(this.itemID, event);\n };\n /**\n * @hidden\n * @internal\n * The event that is prevented is the click on the checkbox label element.\n * That is the only visible element that a user can interact with.\n * The click propagates to the host and the preventDefault is to stop it from\n * switching focus to the input it's base on.\n * The toggle happens in an internal handler in the drop-down on the next task queue cycle.\n */\n /**\n * @hidden\n * \\@internal\n * The event that is prevented is the click on the checkbox label element.\n * That is the only visible element that a user can interact with.\n * The click propagates to the host and the preventDefault is to stop it from\n * switching focus to the input it's base on.\n * The toggle happens in an internal handler in the drop-down on the next task queue cycle.\n * @param {?} event\n * @return {?}\n */\n IgxComboItemComponent.prototype.disableCheck = /**\n * @hidden\n * \\@internal\n * The event that is prevented is the click on the checkbox label element.\n * That is the only visible element that a user can interact with.\n * The click propagates to the host and the preventDefault is to stop it from\n * switching focus to the input it's base on.\n * The toggle happens in an internal handler in the drop-down on the next task queue cycle.\n * @param {?} event\n * @return {?}\n */\n function (event) {\n event.preventDefault();\n };\n /**\n * @return {?}\n */\n IgxComboItemComponent.prototype.ngDoCheck = /**\n * @return {?}\n */\n function () {\n };\n IgxComboItemComponent.decorators = [\n { type: Component, args: [{\n selector: 'igx-combo-item',\n template: \"\\n \\n\\n\\n\"\n }] }\n ];\n /** @nocollapse */\n IgxComboItemComponent.ctorParameters = function () { return [\n { type: IgxComboAPIService },\n { type: undefined, decorators: [{ type: Inject, args: [IGX_DROPDOWN_BASE,] }] },\n { type: ElementRef },\n { type: IgxSelectionAPIService, decorators: [{ type: Inject, args: [IgxSelectionAPIService,] }] }\n ]; };\n IgxComboItemComponent.propDecorators = {\n itemHeight: [{ type: Input }, { type: HostBinding, args: ['style.height.px',] }],\n clicked: [{ type: HostListener, args: ['click', ['$event'],] }]\n };\n return IgxComboItemComponent;\n}(IgxDropDownItemComponent));\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n/** @type {?} */\nvar IGX_COMBO_COMPONENT = 'IgxComboComponentToken';\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n/**\n * @hidden\n */\nvar IgxComboAddItemComponent = /** @class */ (function (_super) {\n __extends(IgxComboAddItemComponent, _super);\n function IgxComboAddItemComponent() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n Object.defineProperty(IgxComboAddItemComponent.prototype, \"selected\", {\n get: /**\n * @return {?}\n */\n function () {\n return false;\n },\n set: /**\n * @param {?} value\n * @return {?}\n */\n function (value) {\n },\n enumerable: true,\n configurable: true\n });\n /**\n * @param {?=} event\n * @return {?}\n */\n IgxComboAddItemComponent.prototype.clicked = /**\n * @param {?=} event\n * @return {?}\n */\n function (event) {\n this.comboAPI.disableTransitions = false;\n this.comboAPI.add_custom_item();\n };\n IgxComboAddItemComponent.decorators = [\n { type: Component, args: [{\n selector: 'igx-combo-add-item',\n template: '',\n providers: [{ provide: IgxComboItemComponent, useExisting: IgxComboAddItemComponent }]\n }] }\n ];\n return IgxComboAddItemComponent;\n}(IgxComboItemComponent));\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n/**\n * @hidden\n */\nvar IgxComboDropDownComponent = /** @class */ (function (_super) {\n __extends(IgxComboDropDownComponent, _super);\n function IgxComboDropDownComponent(elementRef, cdr, selection, combo, comboAPI, _displayDensityOptions) {\n var _this = _super.call(this, elementRef, cdr, selection, _displayDensityOptions) || this;\n _this.elementRef = elementRef;\n _this.cdr = cdr;\n _this.selection = selection;\n _this.combo = combo;\n _this.comboAPI = comboAPI;\n _this._displayDensityOptions = _displayDensityOptions;\n /**\n * @hidden\n * \\@internal\n */\n _this.children = null;\n _this.scrollHandler = function () {\n _this.comboAPI.disableTransitions = true;\n };\n return _this;\n }\n Object.defineProperty(IgxComboDropDownComponent.prototype, \"scrollContainer\", {\n get: /**\n * @protected\n * @return {?}\n */\n function () {\n return this.virtDir.dc.location.nativeElement;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxComboDropDownComponent.prototype, \"isScrolledToLast\", {\n get: /**\n * @protected\n * @return {?}\n */\n function () {\n /** @type {?} */\n var scrollTop = this.virtDir.scrollPosition;\n /** @type {?} */\n var scrollHeight = this.virtDir.getScroll().scrollHeight;\n return Math.floor(scrollTop + this.virtDir.igxForContainerSize) === scrollHeight;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxComboDropDownComponent.prototype, \"lastVisibleIndex\", {\n get: /**\n * @protected\n * @return {?}\n */\n function () {\n return this.combo.totalItemCount ?\n Math.floor(this.combo.itemsMaxHeight / this.combo.itemHeight) :\n this.items.length - 1;\n },\n enumerable: true,\n configurable: true\n });\n /**\n * @hidden @internal\n */\n /**\n * @hidden \\@internal\n * @return {?}\n */\n IgxComboDropDownComponent.prototype.onFocus = /**\n * @hidden \\@internal\n * @return {?}\n */\n function () {\n this.focusedItem = this._focusedItem || this.items[0];\n };\n /**\n * @hidden @internal\n */\n /**\n * @hidden \\@internal\n * @param {?=} evt\n * @return {?}\n */\n IgxComboDropDownComponent.prototype.onBlur = /**\n * @hidden \\@internal\n * @param {?=} evt\n * @return {?}\n */\n function (evt) {\n this.focusedItem = null;\n };\n /**\n * @hidden @internal\n */\n /**\n * @hidden \\@internal\n * @return {?}\n */\n IgxComboDropDownComponent.prototype.onToggleOpened = /**\n * @hidden \\@internal\n * @return {?}\n */\n function () {\n this.onOpened.emit();\n };\n /**\n * @hidden\n */\n /**\n * @hidden\n * @return {?}\n */\n IgxComboDropDownComponent.prototype.navigateFirst = /**\n * @hidden\n * @return {?}\n */\n function () {\n this.navigateItem(this.virtDir.igxForOf.findIndex(function (e) { return !e.isHeader; }));\n };\n /**\n * @hidden\n */\n /**\n * @hidden\n * @return {?}\n */\n IgxComboDropDownComponent.prototype.navigatePrev = /**\n * @hidden\n * @return {?}\n */\n function () {\n if (this._focusedItem && this._focusedItem.index === 0 && this.virtDir.state.startIndex === 0) {\n this.combo.focusSearchInput(false);\n }\n else {\n _super.prototype.navigatePrev.call(this);\n }\n };\n /**\n * @hidden\n */\n /**\n * @hidden\n * @return {?}\n */\n IgxComboDropDownComponent.prototype.navigateNext = /**\n * @hidden\n * @return {?}\n */\n function () {\n /** @type {?} */\n var lastIndex = this.combo.totalItemCount ? this.combo.totalItemCount - 1 : this.virtDir.igxForOf.length - 1;\n if (this._focusedItem && this._focusedItem.index === lastIndex) {\n this.focusAddItemButton();\n }\n else {\n _super.prototype.navigateNext.call(this);\n }\n };\n /**\n * @hidden @internal\n */\n /**\n * @hidden \\@internal\n * @param {?} item\n * @return {?}\n */\n IgxComboDropDownComponent.prototype.selectItem = /**\n * @hidden \\@internal\n * @param {?} item\n * @return {?}\n */\n function (item) {\n if (item === null || item === undefined) {\n return;\n }\n this.comboAPI.set_selected_item(item.itemID);\n this._focusedItem = item;\n };\n /**\n * @private\n * @return {?}\n */\n IgxComboDropDownComponent.prototype.focusAddItemButton = /**\n * @private\n * @return {?}\n */\n function () {\n if (this.combo.isAddButtonVisible()) {\n this.focusedItem = this.items[this.items.length - 1];\n }\n };\n /**\n * @protected\n * @param {?} newItem\n * @return {?}\n */\n IgxComboDropDownComponent.prototype.scrollToHiddenItem = /**\n * @protected\n * @param {?} newItem\n * @return {?}\n */\n function (newItem) { };\n Object.defineProperty(IgxComboDropDownComponent.prototype, \"sortedChildren\", {\n get: /**\n * @protected\n * @return {?}\n */\n function () {\n if (this.children !== undefined) {\n return this.children.toArray()\n .sort(function (a, b) {\n return a.index - b.index;\n });\n }\n return null;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxComboDropDownComponent.prototype, \"items\", {\n /**\n * Get all non-header items\n *\n * ```typescript\n * let myDropDownItems = this.dropdown.items;\n * ```\n */\n get: /**\n * Get all non-header items\n *\n * ```typescript\n * let myDropDownItems = this.dropdown.items;\n * ```\n * @return {?}\n */\n function () {\n var e_1, _a;\n /** @type {?} */\n var items = [];\n if (this.children !== undefined) {\n /** @type {?} */\n var sortedChildren = (/** @type {?} */ (this.sortedChildren));\n try {\n for (var sortedChildren_1 = __values(sortedChildren), sortedChildren_1_1 = sortedChildren_1.next(); !sortedChildren_1_1.done; sortedChildren_1_1 = sortedChildren_1.next()) {\n var child = sortedChildren_1_1.value;\n if (!child.isHeader) {\n items.push(child);\n }\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (sortedChildren_1_1 && !sortedChildren_1_1.done && (_a = sortedChildren_1.return)) _a.call(sortedChildren_1);\n }\n finally { if (e_1) throw e_1.error; }\n }\n }\n return items;\n },\n enumerable: true,\n configurable: true\n });\n /**\n * @hidden @internal\n */\n /**\n * @hidden \\@internal\n * @return {?}\n */\n IgxComboDropDownComponent.prototype.updateScrollPosition = /**\n * @hidden \\@internal\n * @return {?}\n */\n function () {\n this.virtDir.getScroll().scrollTop = this._scrollPosition;\n };\n /**\n * @hidden @internal\n */\n /**\n * @hidden \\@internal\n * @param {?} key\n * @return {?}\n */\n IgxComboDropDownComponent.prototype.onItemActionKey = /**\n * @hidden \\@internal\n * @param {?} key\n * @return {?}\n */\n function (key) {\n switch (key) {\n case DropDownActionKey.ENTER:\n this.handleEnter();\n break;\n case DropDownActionKey.SPACE:\n this.handleSpace();\n break;\n case DropDownActionKey.ESCAPE:\n this.close();\n }\n };\n /**\n * @private\n * @return {?}\n */\n IgxComboDropDownComponent.prototype.handleEnter = /**\n * @private\n * @return {?}\n */\n function () {\n if (this.isAddItemFocused()) {\n this.combo.addItemToCollection();\n }\n else {\n this.close();\n }\n };\n /**\n * @private\n * @return {?}\n */\n IgxComboDropDownComponent.prototype.handleSpace = /**\n * @private\n * @return {?}\n */\n function () {\n if (this.isAddItemFocused()) {\n return;\n }\n else {\n this.selectItem(this.focusedItem);\n }\n };\n /**\n * @private\n * @return {?}\n */\n IgxComboDropDownComponent.prototype.isAddItemFocused = /**\n * @private\n * @return {?}\n */\n function () {\n return this.focusedItem instanceof IgxComboAddItemComponent;\n };\n /**\n * @return {?}\n */\n IgxComboDropDownComponent.prototype.ngAfterViewInit = /**\n * @return {?}\n */\n function () {\n this.virtDir.getScroll().addEventListener('scroll', this.scrollHandler);\n };\n /**\n *@hidden @internal\n */\n /**\n * @hidden \\@internal\n * @return {?}\n */\n IgxComboDropDownComponent.prototype.ngOnDestroy = /**\n * @hidden \\@internal\n * @return {?}\n */\n function () {\n this.virtDir.getScroll().removeEventListener('scroll', this.scrollHandler);\n this.destroy$.next(true);\n this.destroy$.complete();\n };\n IgxComboDropDownComponent.decorators = [\n { type: Component, args: [{\n selector: 'igx-combo-drop-down',\n template: \"
\\n \\n \\n \\n
\\n\",\n providers: [{ provide: IGX_DROPDOWN_BASE, useExisting: IgxComboDropDownComponent }]\n }] }\n ];\n /** @nocollapse */\n IgxComboDropDownComponent.ctorParameters = function () { return [\n { type: ElementRef },\n { type: ChangeDetectorRef },\n { type: IgxSelectionAPIService },\n { type: undefined, decorators: [{ type: Inject, args: [IGX_COMBO_COMPONENT,] }] },\n { type: IgxComboAPIService },\n { type: undefined, decorators: [{ type: Optional }, { type: Inject, args: [DisplayDensityToken,] }] }\n ]; };\n IgxComboDropDownComponent.propDecorators = {\n children: [{ type: ContentChildren, args: [IgxComboItemComponent, { descendants: true },] }]\n };\n return IgxComboDropDownComponent;\n}(IgxDropDownComponent));\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n/**\n * @hidden\n */\nvar IgxComboFilteringPipe = /** @class */ (function () {\n function IgxComboFilteringPipe(combo) {\n this.combo = combo;\n }\n /**\n * @param {?} collection\n * @param {?} expressions\n * @param {?} logic\n * @return {?}\n */\n IgxComboFilteringPipe.prototype.transform = /**\n * @param {?} collection\n * @param {?} expressions\n * @param {?} logic\n * @return {?}\n */\n function (collection, expressions, logic) {\n /** @type {?} */\n var filteringExpressionsTree = new FilteringExpressionsTree(logic);\n filteringExpressionsTree.filteringOperands = expressions;\n /** @type {?} */\n var state = { expressionsTree: filteringExpressionsTree, strategy: new SimpleFilteringStrategy() };\n state.expressionsTree.filteringOperands = this.combo.filteringExpressions;\n if (!state.expressionsTree.filteringOperands.length) {\n return collection;\n }\n /** @type {?} */\n var result = DataUtil.filter(cloneArray(collection), state);\n return result;\n };\n IgxComboFilteringPipe.decorators = [\n { type: Pipe, args: [{\n name: 'comboFiltering'\n },] }\n ];\n /** @nocollapse */\n IgxComboFilteringPipe.ctorParameters = function () { return [\n { type: undefined, decorators: [{ type: Inject, args: [IGX_COMBO_COMPONENT,] }] }\n ]; };\n return IgxComboFilteringPipe;\n}());\n/**\n * @hidden\n */\nvar /**\n * @hidden\n */\nSimpleFilteringStrategy = /** @class */ (function (_super) {\n __extends(SimpleFilteringStrategy, _super);\n function SimpleFilteringStrategy() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n /**\n * @param {?} rec\n * @param {?} expr\n * @return {?}\n */\n SimpleFilteringStrategy.prototype.findMatchByExpression = /**\n * @param {?} rec\n * @param {?} expr\n * @return {?}\n */\n function (rec, expr) {\n /** @type {?} */\n var cond = expr.condition;\n /** @type {?} */\n var val = expr.fieldName === undefined ? rec : rec[expr.fieldName];\n return cond.logic(val, expr.searchVal, expr.ignoreCase);\n };\n return SimpleFilteringStrategy;\n}(FilteringStrategy));\n/**\n * @hidden\n */\nvar IgxComboSortingPipe = /** @class */ (function () {\n function IgxComboSortingPipe() {\n }\n /**\n * @param {?} collection\n * @param {?} expressions\n * @return {?}\n */\n IgxComboSortingPipe.prototype.transform = /**\n * @param {?} collection\n * @param {?} expressions\n * @return {?}\n */\n function (collection, expressions) {\n if (!expressions.length) {\n return collection;\n }\n /** @type {?} */\n var result = DataUtil.sort(cloneArray(collection), expressions);\n return result;\n };\n IgxComboSortingPipe.decorators = [\n { type: Pipe, args: [{\n name: 'comboSorting',\n pure: true\n },] }\n ];\n /** @nocollapse */\n IgxComboSortingPipe.ctorParameters = function () { return []; };\n return IgxComboSortingPipe;\n}());\n/**\n * @hidden\n */\nvar IgxComboGroupingPipe = /** @class */ (function () {\n function IgxComboGroupingPipe(combo) {\n this.combo = combo;\n }\n /**\n * @param {?} collection\n * @param {?} groupKey\n * @return {?}\n */\n IgxComboGroupingPipe.prototype.transform = /**\n * @param {?} collection\n * @param {?} groupKey\n * @return {?}\n */\n function (collection, groupKey) {\n var _a;\n this.combo.filteredData = collection;\n if ((!groupKey && groupKey !== 0) || !collection.length) {\n return collection;\n }\n /** @type {?} */\n var data = cloneArray(collection);\n /** @type {?} */\n var inserts = 0;\n /** @type {?} */\n var currentHeader = null;\n for (var i = 0; i < collection.length; i++) {\n /** @type {?} */\n var insertFlag = 0;\n if (currentHeader !== collection[i][groupKey]) {\n currentHeader = collection[i][groupKey];\n insertFlag = 1;\n }\n if (insertFlag) {\n data.splice(i + inserts, 0, (_a = {},\n _a[this.combo.valueKey] = currentHeader,\n _a[this.combo.groupKey] = currentHeader,\n _a.isHeader = true,\n _a));\n inserts++;\n }\n }\n return data;\n };\n IgxComboGroupingPipe.decorators = [\n { type: Pipe, args: [{\n name: 'comboGrouping'\n },] }\n ];\n /** @nocollapse */\n IgxComboGroupingPipe.ctorParameters = function () { return [\n { type: undefined, decorators: [{ type: Inject, args: [IGX_COMBO_COMPONENT,] }] }\n ]; };\n return IgxComboGroupingPipe;\n}());\n/**\n * @hidden\n */\nvar IgxComboFilterConditionPipe = /** @class */ (function () {\n function IgxComboFilterConditionPipe() {\n }\n /**\n * @param {?} value\n * @return {?}\n */\n IgxComboFilterConditionPipe.prototype.transform = /**\n * @param {?} value\n * @return {?}\n */\n function (value) {\n return value.split(/(?=[A-Z])/).join(' ');\n };\n IgxComboFilterConditionPipe.decorators = [\n { type: Pipe, args: [{\n name: 'filterCondition',\n pure: true\n },] }\n ];\n return IgxComboFilterConditionPipe;\n}());\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n/** @enum {string} */\nvar DataTypes = {\n EMPTY: 'empty',\n PRIMITIVE: 'primitive',\n COMPLEX: 'complex',\n PRIMARYKEY: 'valueKey',\n};\n/**\n * @hidden\n * @type {?}\n */\nvar ItemHeights = {\n 'comfortable': 40,\n 'cosy': 32,\n 'compact': 28,\n};\n/**\n * @hidden\n * The default number of items that should be in the combo's\n * drop-down list if no `[itemsMaxHeight]` is specified\n * @type {?}\n */\nvar itemsInContainer = 10;\n/** @enum {number} */\nvar IgxComboState = {\n /**\n * Combo with initial state.\n */\n INITIAL: 0,\n /**\n * Combo with valid state.\n */\n VALID: 1,\n /**\n * Combo with invalid state.\n */\n INVALID: 2,\n};\nIgxComboState[IgxComboState.INITIAL] = 'INITIAL';\nIgxComboState[IgxComboState.VALID] = 'VALID';\nIgxComboState[IgxComboState.INVALID] = 'INVALID';\n/**\n * When called with sets A & B, returns A - B (as array);\n * @hidden\n * @param {?} set1\n * @param {?} set2\n * @return {?}\n */\nfunction diffInSets(set1, set2) {\n /** @type {?} */\n var results = [];\n set1.forEach(function (entry) {\n if (!set2.has(entry)) {\n results.push(entry);\n }\n });\n return results;\n}\n/** @type {?} */\nvar NEXT_ID$j = 0;\n/** @type {?} */\nvar noop$4 = function () { };\nvar IgxComboComponent = /** @class */ (function (_super) {\n __extends(IgxComboComponent, _super);\n function IgxComboComponent(elementRef, cdr, selection, comboAPI, _displayDensityOptions, _injector) {\n var _this = _super.call(this, _displayDensityOptions) || this;\n _this.elementRef = elementRef;\n _this.cdr = cdr;\n _this.selection = selection;\n _this.comboAPI = comboAPI;\n _this._displayDensityOptions = _displayDensityOptions;\n _this._injector = _injector;\n /**\n * @hidden \\@internal\n */\n _this.customValueFlag = true;\n /**\n * @hidden \\@internal\n */\n _this.defaultFallbackGroup = 'Other';\n _this.stringFilters = IgxStringFilteringOperand;\n _this.booleanFilters = IgxBooleanFilteringOperand;\n _this._filteringLogic = FilteringLogic.Or;\n _this._filteringExpressions = [];\n _this._sortingExpressions = [];\n _this._groupKey = '';\n _this._prevInputValue = '';\n _this._dataType = '';\n _this.ngControl = null;\n _this.destroy$ = new Subject();\n _this._data = [];\n _this._filteredData = [];\n _this._itemHeight = null;\n _this._itemsMaxHeight = null;\n _this._remoteSelection = {};\n _this._onChangeCallback = noop$4;\n _this._onTouchedCallback = noop$4;\n _this._overlaySettings = {\n scrollStrategy: new AbsoluteScrollStrategy(),\n positionStrategy: new ConnectedPositioningStrategy(),\n modal: false,\n closeOnOutsideClick: true,\n excludePositionTarget: true\n };\n _this._value = '';\n _this._valid = IgxComboState.INITIAL;\n /**\n * Set custom overlay settings that control how the combo's list of items is displayed.\n * Set:\n * ```html\n * \n * ```\n *\n * ```typescript\n * const customSettings = { positionStrategy: { settings: { target: myTarget } } };\n * combo.overlaySettings = customSettings;\n * ```\n * Get any custom overlay settings used by the combo:\n * ```typescript\n * const comboOverlaySettings: OverlaySettings = myCombo.overlaySettings;\n * ```\n */\n _this.overlaySettings = null;\n /**\n * @hidden \\@internal\n */\n _this.searchInput = null;\n /**\n * The custom template, if any, that should be used when rendering ITEMS in the combo list\n *\n * ```typescript\n * // Set in typescript\n * const myCustomTemplate: TemplateRef = myComponent.customTemplate;\n * myComponent.combo.itemTemplate = myCustomTemplate;\n * ```\n * ```html\n * \n * \n * ...\n * \n *
\n *
{{ item[key] }}
\n *
{{ item.cost }}
\n *
\n *
\n *
\n * ```\n */\n _this.itemTemplate = null;\n /**\n * The custom template, if any, that should be used when rendering the HEADER for the combo items list\n *\n * ```typescript\n * // Set in typescript\n * const myCustomTemplate: TemplateRef = myComponent.customTemplate;\n * myComponent.combo.headerTemplate = myCustomTemplate;\n * ```\n * ```html\n * \n * \n * ...\n * \n *
\n * This is a custom header\n *
\n *
\n *
\n * ```\n */\n _this.headerTemplate = null;\n /**\n * The custom template, if any, that should be used when rendering the FOOTER for the combo items list\n *\n * ```typescript\n * // Set in typescript\n * const myCustomTemplate: TemplateRef = myComponent.customTemplate;\n * myComponent.combo.footerTemplate = myCustomTemplate;\n * ```\n * ```html\n * \n * \n * ...\n * \n *
\n * This is a custom footer\n *
\n *
\n *
\n * ```\n */\n _this.footerTemplate = null;\n /**\n * The custom template, if any, that should be used when rendering HEADER ITEMS for groups in the combo list\n *\n * ```typescript\n * // Set in typescript\n * const myCustomTemplate: TemplateRef = myComponent.customTemplate;\n * myComponent.combo.headerItemTemplate = myCustomTemplate;\n * ```\n * ```html\n * \n * \n * ...\n * \n *
Group header for {{ item[key] }}
\n *
\n *
\n * ```\n */\n _this.headerItemTemplate = null;\n /**\n * The custom template, if any, that should be used when rendering the ADD BUTTON in the combo drop down\n *\n * ```typescript\n * // Set in typescript\n * const myCustomTemplate: TemplateRef = myComponent.customTemplate;\n * myComponent.combo.addItemTemplate = myCustomTemplate;\n * ```\n * ```html\n * \n * \n * ...\n * \n * \n * \n * \n * ```\n */\n _this.addItemTemplate = null;\n /**\n * The custom template, if any, that should be used when rendering the ADD BUTTON in the combo drop down\n *\n * ```typescript\n * // Set in typescript\n * const myCustomTemplate: TemplateRef = myComponent.customTemplate;\n * myComponent.combo.emptyTemplate = myCustomTemplate;\n * ```\n * ```html\n * \n * \n * ...\n * \n *
\n * There are no items to display\n *
\n *
\n *
\n * ```\n */\n _this.emptyTemplate = null;\n /**\n * The custom template, if any, that should be used when rendering the combo TOGGLE(open/close) button\n *\n * ```typescript\n * // Set in typescript\n * const myCustomTemplate: TemplateRef = myComponent.customTemplate;\n * myComponent.combo.toggleIconTemplate = myCustomTemplate;\n * ```\n * ```html\n * \n * \n * ...\n * \n * {{ collapsed ? 'remove_circle' : 'remove_circle_outline'}}\n * \n * \n * ```\n */\n _this.toggleIconTemplate = null;\n /**\n * The custom template, if any, that should be used when rendering the combo CLEAR button\n *\n * ```typescript\n * // Set in typescript\n * const myCustomTemplate: TemplateRef = myComponent.customTemplate;\n * myComponent.combo.clearIconTemplate = myCustomTemplate;\n * ```\n * ```html\n * \n * \n * ...\n * \n * clear\n * \n * \n * ```\n */\n _this.clearIconTemplate = null;\n _this.dropdownContainer = null;\n /**\n * Emitted when item selection is changing, before the selection completes\n *\n * ```html\n * \n * ```\n */\n _this.onSelectionChange = new EventEmitter();\n /**\n * Emitted before the dropdown is opened\n *\n * ```html\n * \n * ```\n */\n _this.onOpening = new EventEmitter();\n /**\n * Emitted after the dropdown is opened\n *\n * ```html\n * \n * ```\n */\n _this.onOpened = new EventEmitter();\n /**\n * Emitted before the dropdown is closed\n *\n * ```html\n * \n * ```\n */\n _this.onClosing = new EventEmitter();\n /**\n * Emitted after the dropdown is closed\n *\n * ```html\n * \n * ```\n */\n _this.onClosed = new EventEmitter();\n /**\n * Emitted when an item is being added to the data collection\n *\n * ```html\n * \n * ```\n */\n _this.onAddition = new EventEmitter();\n /**\n * Emitted when the value of the search input changes (e.g. typing, pasting, clear, etc.)\n *\n * ```html\n * \n * ```\n */\n _this.onSearchInput = new EventEmitter();\n /**\n * Emitted when new chunk of data is loaded from the virtualization\n *\n * ```html\n * \n * ```\n */\n _this.onDataPreLoad = new EventEmitter();\n /**\n * Gets/gets combo id.\n *\n * ```typescript\n * // get\n * let id = this.combo.id;\n * ```\n *\n * ```html\n * \n * \n * ```\n */\n _this.id = \"igx-combo-\" + NEXT_ID$j++;\n /**\n * @hidden \\@internal\n */\n _this.cssClass = 'igx-combo'; // Independent of display density, at the time being\n // Independent of display density, at the time being\n /**\n * @hidden \\@internal\n */\n _this.role = 'combobox';\n /**\n * Controls whether custom values can be added to the collection\n *\n * ```typescript\n * // get\n * let comboAllowsCustomValues = this.combo.allowCustomValues;\n * ```\n *\n * ```html\n * \n * \n * ```\n */\n _this.allowCustomValues = false;\n /**\n * @hidden \\@internal\n */\n _this.filteringLogic = FilteringLogic.Or;\n /**\n * Defines the placeholder value for the combo dropdown search field\n *\n * ```typescript\n * // get\n * let myComboSearchPlaceholder = this.combo.searchPlaceholder;\n * ```\n *\n * ```html\n * \n * \n * ```\n */\n _this.searchPlaceholder = 'Enter a Search Term';\n /**\n * Combo value data source property.\n *\n * ```typescript\n * // get\n * let myComboValueKey = this.combo.valueKey;\n * ```\n *\n * ```html\n * \n * \n * ```\n */\n _this.valueKey = null;\n /**\n * An \\@Input property that enabled/disables filtering in the list. The default is `true`.\n * ```html\n * \n * ```\n */\n _this.filterable = true;\n /**\n * An \\@Input property that enabled/disables combo. The default is `false`.\n * ```html\n * \n * ```\n */\n _this.disabled = false;\n /**\n * An \\@Input property that sets how the combo will be styled.\n * The allowed values are `line`, `box`, `border` and `search`. The default is `box`.\n * ```html\n * \n * ```\n */\n _this.type = 'box';\n /**\n * @hidden \\@internal\n */\n _this.searchValue = '';\n _this.onStatusChanged = function () {\n if ((_this.ngControl.control.touched || _this.ngControl.control.dirty) &&\n (_this.ngControl.control.validator || _this.ngControl.control.asyncValidator)) {\n _this.valid = _this.ngControl.valid ? IgxComboState.VALID : IgxComboState.INVALID;\n }\n _this.manageRequiredAsterisk();\n };\n _this.comboAPI.register(_this);\n return _this;\n }\n Object.defineProperty(IgxComboComponent.prototype, \"displaySearchInput\", {\n /**\n * @hidden @internal\n */\n get: /**\n * @hidden \\@internal\n * @return {?}\n */\n function () {\n return this.filterable || this.allowCustomValues;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxComboComponent.prototype, \"ariaExpanded\", {\n /**\n * @hidden @internal\n */\n get: /**\n * @hidden \\@internal\n * @return {?}\n */\n function () {\n return !this.dropdown.collapsed;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxComboComponent.prototype, \"hasPopUp\", {\n /**\n * @hidden @internal\n */\n get: /**\n * @hidden \\@internal\n * @return {?}\n */\n function () {\n return 'listbox';\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxComboComponent.prototype, \"ariaOwns\", {\n /**\n * @hidden @internal\n */\n get: /**\n * @hidden \\@internal\n * @return {?}\n */\n function () {\n return this.dropdown.id;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxComboComponent.prototype, \"itemsMaxHeight\", {\n /**\n * Configures the drop down list height\n *\n * ```typescript\n * // get\n * let myComboItemsMaxHeight = this.combo.itemsMaxHeight;\n * ```\n *\n * ```html\n * \n * \n * ```\n */\n get: /**\n * Configures the drop down list height\n *\n * ```typescript\n * // get\n * let myComboItemsMaxHeight = this.combo.itemsMaxHeight;\n * ```\n *\n * ```html\n * \n * \n * ```\n * @return {?}\n */\n function () {\n if (this._itemsMaxHeight === null || this._itemsMaxHeight === undefined) {\n return this.itemHeight * itemsInContainer;\n }\n return this._itemsMaxHeight;\n },\n set: /**\n * @param {?} val\n * @return {?}\n */\n function (val) {\n this._itemsMaxHeight = val;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxComboComponent.prototype, \"itemHeight\", {\n /**\n * Configures the drop down list item height\n *\n * ```typescript\n * // get\n * let myComboItemHeight = this.combo.itemHeight;\n * ```\n *\n * ```html\n * \n * \n * ```\n */\n get: /**\n * Configures the drop down list item height\n *\n * ```typescript\n * // get\n * let myComboItemHeight = this.combo.itemHeight;\n * ```\n *\n * ```html\n * \n * \n * ```\n * @return {?}\n */\n function () {\n if (this._itemHeight === null || this._itemHeight === undefined) {\n return ItemHeights[this.displayDensity];\n }\n return this._itemHeight;\n },\n set: /**\n * @param {?} val\n * @return {?}\n */\n function (val) {\n this._itemHeight = val;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxComboComponent.prototype, \"inputEmpty\", {\n /**\n * @hidden @internal\n */\n get: /**\n * @hidden \\@internal\n * @return {?}\n */\n function () {\n return !this.value && !this.placeholder;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxComboComponent.prototype, \"data\", {\n /**\n * Combo data source.\n *\n * ```html\n * \n * \n * ```\n */\n get: /**\n * Combo data source.\n *\n * ```html\n * \n * \n * ```\n * @return {?}\n */\n function () {\n return this._data;\n },\n set: /**\n * @param {?} val\n * @return {?}\n */\n function (val) {\n this._data = (val) ? val : [];\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxComboComponent.prototype, \"displayKey\", {\n /**\n * Combo text data source property.\n *\n * ```typescript\n * // get\n * let myComboDisplayKey = this.combo.displayKey;\n *\n * // set\n * this.combo.displayKey = 'val';\n *\n * ```\n *\n * ```html\n * \n * \n * ```\n */\n get: /**\n * Combo text data source property.\n *\n * ```typescript\n * // get\n * let myComboDisplayKey = this.combo.displayKey;\n *\n * // set\n * this.combo.displayKey = 'val';\n *\n * ```\n *\n * ```html\n * \n * \n * ```\n * @return {?}\n */\n function () {\n return this._displayKey ? this._displayKey : this.valueKey;\n },\n set: /**\n * @param {?} val\n * @return {?}\n */\n function (val) {\n this._displayKey = val;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxComboComponent.prototype, \"groupKey\", {\n /**\n * The item property by which items should be grouped inside the items list. Not usable if data is not of type Object[].\n *\n * ```typescript\n * // get\n * let currentGroupKey = this.combo.groupKey;\n * ```\n */\n get: /**\n * The item property by which items should be grouped inside the items list. Not usable if data is not of type Object[].\n *\n * ```typescript\n * // get\n * let currentGroupKey = this.combo.groupKey;\n * ```\n * @return {?}\n */\n function () {\n return this._groupKey;\n },\n /**\n * The item property by which items should be grouped inside the items list. Not usable if data is not of type Object[].\n *\n * ```html\n * \n * \n * ```\n */\n set: /**\n * The item property by which items should be grouped inside the items list. Not usable if data is not of type Object[].\n *\n * ```html\n * \n * \n * ```\n * @param {?} val\n * @return {?}\n */\n function (val) {\n this.clearSorting(this._groupKey);\n this._groupKey = val;\n this.sort(this._groupKey);\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxComboComponent.prototype, \"valid\", {\n /**\n * Gets if control is valid, when used in a form\n *\n * ```typescript\n * // get\n * let valid = this.combo.valid;\n * ```\n * */\n get: /**\n * Gets if control is valid, when used in a form\n *\n * ```typescript\n * // get\n * let valid = this.combo.valid;\n * ```\n *\n * @return {?}\n */\n function () {\n return this._valid;\n },\n /**\n * Sets if control is valid, when used in a form\n *\n * ```typescript\n * // set\n * this.combo.valid = IgxComboState.INVALID;\n * ```\n */\n set: /**\n * Sets if control is valid, when used in a form\n *\n * ```typescript\n * // set\n * this.combo.valid = IgxComboState.INVALID;\n * ```\n * @param {?} valid\n * @return {?}\n */\n function (valid) {\n this._valid = valid;\n this.comboInput.valid = IgxInputState[IgxComboState[valid]];\n },\n enumerable: true,\n configurable: true\n });\n /**\n * @hidden @internal\n */\n /**\n * @hidden \\@internal\n * @param {?} event\n * @return {?}\n */\n IgxComboComponent.prototype.onArrowDown = /**\n * @hidden \\@internal\n * @param {?} event\n * @return {?}\n */\n function (event) {\n event.preventDefault();\n event.stopPropagation();\n this.open();\n };\n /**\n * @hidden @internal\n */\n /**\n * @hidden \\@internal\n * @param {?} event\n * @return {?}\n */\n IgxComboComponent.prototype.onInputClick = /**\n * @hidden \\@internal\n * @param {?} event\n * @return {?}\n */\n function (event) {\n event.stopPropagation();\n event.preventDefault();\n this.toggle();\n };\n Object.defineProperty(IgxComboComponent.prototype, \"virtualizationState\", {\n /**\n * Defines the current state of the virtualized data. It contains `startIndex` and `chunkSize`\n *\n * ```typescript\n * // get\n * let state = this.combo.virtualizationState;\n * ```\n */\n get: /**\n * Defines the current state of the virtualized data. It contains `startIndex` and `chunkSize`\n *\n * ```typescript\n * // get\n * let state = this.combo.virtualizationState;\n * ```\n * @return {?}\n */\n function () {\n return this.virtDir.state;\n },\n /**\n * Sets the current state of the virtualized data.\n *\n * ```typescript\n * // set\n * this.combo.virtualizationState(state);\n * ```\n */\n set: /**\n * Sets the current state of the virtualized data.\n *\n * ```typescript\n * // set\n * this.combo.virtualizationState(state);\n * ```\n * @param {?} state\n * @return {?}\n */\n function (state) {\n this.virtDir.state = state;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxComboComponent.prototype, \"totalItemCount\", {\n /**\n * Gets total count of the virtual data items, when using remote service.\n *\n * ```typescript\n * // get\n * let count = this.combo.totalItemCount;\n * ```\n */\n get: /**\n * Gets total count of the virtual data items, when using remote service.\n *\n * ```typescript\n * // get\n * let count = this.combo.totalItemCount;\n * ```\n * @return {?}\n */\n function () {\n return this.virtDir.totalItemCount;\n },\n /**\n * Sets total count of the virtual data items, when using remote service.\n *\n * ```typescript\n * // set\n * this.combo.totalItemCount(remoteService.count);\n * ```\n */\n set: /**\n * Sets total count of the virtual data items, when using remote service.\n *\n * ```typescript\n * // set\n * this.combo.totalItemCount(remoteService.count);\n * ```\n * @param {?} count\n * @return {?}\n */\n function (count) {\n this.virtDir.totalItemCount = count;\n this.cdr.detectChanges();\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxComboComponent.prototype, \"filteringExpressions\", {\n /**\n * @hidden @internal\n */\n get: /**\n * @hidden \\@internal\n * @return {?}\n */\n function () {\n return this.filterable ? this._filteringExpressions : [];\n },\n /**\n * @hidden @internal\n */\n set: /**\n * @hidden \\@internal\n * @param {?} value\n * @return {?}\n */\n function (value) {\n this._filteringExpressions = value;\n this.cdr.markForCheck();\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxComboComponent.prototype, \"sortingExpressions\", {\n /**\n * @hidden @internal\n */\n get: /**\n * @hidden \\@internal\n * @return {?}\n */\n function () {\n return this._sortingExpressions;\n },\n /**\n * @hidden @internal\n */\n set: /**\n * @hidden \\@internal\n * @param {?} value\n * @return {?}\n */\n function (value) {\n this._sortingExpressions = value;\n this.cdr.markForCheck();\n },\n enumerable: true,\n configurable: true\n });\n /**\n * @protected\n * @param {?=} field\n * @return {?}\n */\n IgxComboComponent.prototype.clearSorting = /**\n * @protected\n * @param {?=} field\n * @return {?}\n */\n function (field) {\n if (field === undefined || field === null) {\n this.sortingExpressions = [];\n return;\n }\n /** @type {?} */\n var currentState = cloneArray(this.sortingExpressions);\n /** @type {?} */\n var index = currentState.findIndex(function (expr) { return expr.fieldName === field; });\n if (index > -1) {\n currentState.splice(index, 1);\n this.sortingExpressions = currentState;\n }\n };\n Object.defineProperty(IgxComboComponent.prototype, \"value\", {\n /**\n * The text displayed in the combo input\n *\n * ```typescript\n * // get\n * let comboValue = this.combo.value;\n * ```\n */\n get: /**\n * The text displayed in the combo input\n *\n * ```typescript\n * // get\n * let comboValue = this.combo.value;\n * ```\n * @return {?}\n */\n function () {\n return this._value;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxComboComponent.prototype, \"filteredData\", {\n /**\n * @hidden @internal\n */\n get: /**\n * @hidden \\@internal\n * @return {?}\n */\n function () {\n return this.filterable ? this._filteredData : this.data;\n },\n /**\n * @hidden @internal\n */\n set: /**\n * @hidden \\@internal\n * @param {?} val\n * @return {?}\n */\n function (val) {\n this._filteredData = this.groupKey ? (val || []).filter(function (e) { return e.isHeader !== true; }) : val;\n this.checkMatch();\n },\n enumerable: true,\n configurable: true\n });\n /**\n * @hidden @internal\n */\n /**\n * @hidden \\@internal\n * @param {?} event\n * @return {?}\n */\n IgxComboComponent.prototype.handleKeyUp = /**\n * @hidden \\@internal\n * @param {?} event\n * @return {?}\n */\n function (event) {\n if (event.key === 'ArrowDown' || event.key === 'Down') {\n this.dropdown.focusedItem = this.dropdown.items[0];\n this.dropdownContainer.nativeElement.focus();\n }\n else if (event.key === 'Escape' || event.key === 'Esc') {\n this.toggle();\n }\n };\n /**\n * @hidden @internal\n */\n /**\n * @hidden \\@internal\n * @param {?} event\n * @return {?}\n */\n IgxComboComponent.prototype.handleKeyDown = /**\n * @hidden \\@internal\n * @param {?} event\n * @return {?}\n */\n function (event) {\n if (event.key === 'ArrowUp' || event.key === 'Up') {\n event.preventDefault();\n event.stopPropagation();\n this.close();\n }\n };\n /**\n * @private\n * @return {?}\n */\n IgxComboComponent.prototype.checkMatch = /**\n * @private\n * @return {?}\n */\n function () {\n var _this = this;\n /** @type {?} */\n var displayKey = this.displayKey;\n /** @type {?} */\n var matchFn = function (e) {\n /** @type {?} */\n var value = displayKey ? e[displayKey] : e;\n return value.toString().toLowerCase() === _this.searchValue.trim().toLowerCase();\n };\n /** @type {?} */\n var itemMatch = this.filteredData.some(matchFn);\n this.customValueFlag = this.allowCustomValues && !itemMatch;\n };\n /**\n * @hidden @internal\n */\n /**\n * @hidden \\@internal\n * @param {?=} event\n * @return {?}\n */\n IgxComboComponent.prototype.handleInputChange = /**\n * @hidden \\@internal\n * @param {?=} event\n * @return {?}\n */\n function (event) {\n var _this = this;\n /** @type {?} */\n var cdrFlag = false;\n /** @type {?} */\n var vContainer = this.virtDir;\n if (event !== undefined && this._prevInputValue === event) {\n // Nothing has changed\n return;\n }\n else {\n this._prevInputValue = event !== undefined ? event : '';\n }\n if (event !== undefined) {\n // Do not scroll if not scrollable\n if (vContainer.isScrollable()) {\n vContainer.scrollTo(0);\n }\n else {\n cdrFlag = true;\n }\n this.onSearchInput.emit(event);\n }\n else {\n cdrFlag = true;\n }\n if (this.filterable) {\n this.filter();\n // If there was no scroll before filtering, check if there is after and detect changes\n if (cdrFlag) {\n vContainer.onChunkLoad.pipe(take(1)).subscribe(function () {\n if (vContainer.isScrollable()) {\n _this.cdr.detectChanges();\n }\n });\n }\n }\n else {\n this.checkMatch();\n }\n };\n /**\n * @hidden @internal\n */\n /**\n * @hidden \\@internal\n * @param {?} fieldName\n * @param {?=} dir\n * @param {?=} ignoreCase\n * @param {?=} strategy\n * @return {?}\n */\n IgxComboComponent.prototype.sort = /**\n * @hidden \\@internal\n * @param {?} fieldName\n * @param {?=} dir\n * @param {?=} ignoreCase\n * @param {?=} strategy\n * @return {?}\n */\n function (fieldName, dir, ignoreCase, strategy) {\n if (dir === void 0) { dir = SortingDirection.Asc; }\n if (ignoreCase === void 0) { ignoreCase = true; }\n if (strategy === void 0) { strategy = DefaultSortingStrategy.instance(); }\n if (!fieldName) {\n return;\n }\n /** @type {?} */\n var sortingState = cloneArray(this.sortingExpressions, true);\n this.prepare_sorting_expression(sortingState, fieldName, dir, ignoreCase, strategy);\n this.sortingExpressions = sortingState;\n };\n /**\n * @protected\n * @param {?} state\n * @param {?} fieldName\n * @param {?} dir\n * @param {?} ignoreCase\n * @param {?} strategy\n * @return {?}\n */\n IgxComboComponent.prototype.prepare_sorting_expression = /**\n * @protected\n * @param {?} state\n * @param {?} fieldName\n * @param {?} dir\n * @param {?} ignoreCase\n * @param {?} strategy\n * @return {?}\n */\n function (state, fieldName, dir, ignoreCase, strategy) {\n if (dir === SortingDirection.None) {\n state.splice(state.findIndex(function (expr) { return expr.fieldName === fieldName; }), 1);\n return;\n }\n /** @type {?} */\n var expression = state.find(function (expr) { return expr.fieldName === fieldName; });\n if (!expression) {\n state.push({ fieldName: fieldName, dir: dir, ignoreCase: ignoreCase, strategy: strategy });\n }\n else {\n Object.assign(expression, { fieldName: fieldName, dir: dir, ignoreCase: ignoreCase });\n }\n };\n Object.defineProperty(IgxComboComponent.prototype, \"dataType\", {\n /**\n * @hidden @internal\n */\n get: /**\n * @hidden \\@internal\n * @return {?}\n */\n function () {\n if (this.displayKey) {\n return DataTypes.COMPLEX;\n }\n return DataTypes.PRIMITIVE;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxComboComponent.prototype, \"isRemote\", {\n /**\n * @hidden @internal\n */\n get: /**\n * @hidden \\@internal\n * @return {?}\n */\n function () {\n return this.totalItemCount > 0 &&\n this.valueKey &&\n this.dataType === DataTypes.COMPLEX;\n },\n enumerable: true,\n configurable: true\n });\n /** Contains key-value pairs of the selected valueKeys and their resp. displayKeys */\n /**\n * Contains key-value pairs of the selected valueKeys and their resp. displayKeys\n * @private\n * @param {?} ids\n * @param {?=} add\n * @return {?}\n */\n IgxComboComponent.prototype.registerRemoteEntries = /**\n * Contains key-value pairs of the selected valueKeys and their resp. displayKeys\n * @private\n * @param {?} ids\n * @param {?=} add\n * @return {?}\n */\n function (ids, add) {\n var e_1, _a, e_2, _b;\n if (add === void 0) { add = true; }\n if (add) {\n /** @type {?} */\n var selection = this.getValueDisplayPairs(ids);\n try {\n for (var selection_1 = __values(selection), selection_1_1 = selection_1.next(); !selection_1_1.done; selection_1_1 = selection_1.next()) {\n var entry = selection_1_1.value;\n this._remoteSelection[entry[this.valueKey]] = entry[this.displayKey];\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (selection_1_1 && !selection_1_1.done && (_a = selection_1.return)) _a.call(selection_1);\n }\n finally { if (e_1) throw e_1.error; }\n }\n }\n else {\n try {\n for (var ids_1 = __values(ids), ids_1_1 = ids_1.next(); !ids_1_1.done; ids_1_1 = ids_1.next()) {\n var entry = ids_1_1.value;\n delete this._remoteSelection[entry];\n }\n }\n catch (e_2_1) { e_2 = { error: e_2_1 }; }\n finally {\n try {\n if (ids_1_1 && !ids_1_1.done && (_b = ids_1.return)) _b.call(ids_1);\n }\n finally { if (e_2) throw e_2.error; }\n }\n }\n };\n /** For `id: any[]` returns a mapped `{ [combo.valueKey]: any, [combo.displayKey]: any }[]`*/\n /**\n * For `id: any[]` returns a mapped `{ [combo.valueKey]: any, [combo.displayKey]: any }[]`\n * @private\n * @param {?} ids\n * @return {?}\n */\n IgxComboComponent.prototype.getValueDisplayPairs = /**\n * For `id: any[]` returns a mapped `{ [combo.valueKey]: any, [combo.displayKey]: any }[]`\n * @private\n * @param {?} ids\n * @return {?}\n */\n function (ids) {\n var _this = this;\n return this.data.filter(function (entry) { return ids.indexOf(entry[_this.valueKey]) > -1; }).map(function (e) {\n var _a;\n return _a = {},\n _a[_this.valueKey] = e[_this.valueKey],\n _a[_this.displayKey] = e[_this.displayKey],\n _a;\n });\n };\n /**\n * Returns if the specified itemID is selected\n * @hidden\n * @internal\n */\n /**\n * Returns if the specified itemID is selected\n * @hidden\n * \\@internal\n * @param {?} item\n * @return {?}\n */\n IgxComboComponent.prototype.isItemSelected = /**\n * Returns if the specified itemID is selected\n * @hidden\n * \\@internal\n * @param {?} item\n * @return {?}\n */\n function (item) {\n return this.selection.is_item_selected(this.id, item);\n };\n /**\n * Triggers change detection on the combo view\n */\n /**\n * Triggers change detection on the combo view\n * @return {?}\n */\n IgxComboComponent.prototype.triggerCheck = /**\n * Triggers change detection on the combo view\n * @return {?}\n */\n function () {\n this.cdr.detectChanges();\n };\n /**\n * @hidden @internal\n */\n /**\n * @hidden \\@internal\n * @return {?}\n */\n IgxComboComponent.prototype.isAddButtonVisible = /**\n * @hidden \\@internal\n * @return {?}\n */\n function () {\n // This should always return a boolean value. If this.searchValue was '', it returns '' instead of false;\n return this.searchValue !== '' && this.customValueFlag;\n };\n /**\n * @hidden @internal\n */\n /**\n * @hidden \\@internal\n * @param {?} evt\n * @return {?}\n */\n IgxComboComponent.prototype.handleSelectAll = /**\n * @hidden \\@internal\n * @param {?} evt\n * @return {?}\n */\n function (evt) {\n if (evt.checked) {\n this.selectAllItems();\n }\n else {\n this.deselectAllItems();\n }\n };\n /**\n * @hidden @internal\n */\n /**\n * @hidden \\@internal\n * @return {?}\n */\n IgxComboComponent.prototype.addItemToCollection = /**\n * @hidden \\@internal\n * @return {?}\n */\n function () {\n var _a, _b;\n if (!this.searchValue) {\n return;\n }\n /** @type {?} */\n var newValue = this.searchValue.trim();\n /** @type {?} */\n var addedItem = this.displayKey ? (_a = {},\n _a[this.valueKey] = newValue,\n _a[this.displayKey] = newValue,\n _a) : newValue;\n if (this.groupKey) {\n Object.assign(addedItem, (_b = {}, _b[this.groupKey] = this.defaultFallbackGroup, _b));\n }\n /** @type {?} */\n var oldCollection = this.data;\n /** @type {?} */\n var newCollection = __spread(this.data);\n newCollection.push(addedItem);\n /** @type {?} */\n var args = {\n oldCollection: oldCollection, addedItem: addedItem, newCollection: newCollection\n };\n this.onAddition.emit(args);\n this.data.push(addedItem);\n // If you mutate the array, no pipe is invoked and the display isn't updated;\n // if you replace the array, the pipe executes and the display is updated.\n this.data = cloneArray(this.data);\n this.selectItems(this.comboAPI.valueKey !== null ? [addedItem[this.valueKey]] : [addedItem], false);\n this.customValueFlag = false;\n this.searchInput.nativeElement.focus();\n this.dropdown.focusedItem = null;\n this.handleInputChange();\n };\n /**\n * @hidden @internal\n */\n /**\n * @hidden \\@internal\n * @param {?=} opening\n * @return {?}\n */\n IgxComboComponent.prototype.focusSearchInput = /**\n * @hidden \\@internal\n * @param {?=} opening\n * @return {?}\n */\n function (opening) {\n if (this.displaySearchInput && this.searchInput) {\n this.searchInput.nativeElement.focus();\n }\n else {\n if (opening) {\n this.dropdownContainer.nativeElement.focus();\n }\n else {\n this.comboInput.nativeElement.focus();\n this.toggle();\n }\n }\n };\n /**\n * @protected\n * @param {?} searchVal\n * @param {?} condition\n * @param {?} ignoreCase\n * @param {?=} fieldName\n * @return {?}\n */\n IgxComboComponent.prototype.prepare_filtering_expression = /**\n * @protected\n * @param {?} searchVal\n * @param {?} condition\n * @param {?} ignoreCase\n * @param {?=} fieldName\n * @return {?}\n */\n function (searchVal, condition, ignoreCase, fieldName) {\n /** @type {?} */\n var newArray = __spread(this.filteringExpressions);\n /** @type {?} */\n var expression = newArray.find(function (expr) { return expr.fieldName === fieldName; });\n /** @type {?} */\n var newExpression = { fieldName: fieldName, searchVal: searchVal, condition: condition, ignoreCase: ignoreCase };\n if (!expression) {\n newArray.push(newExpression);\n }\n else {\n Object.assign(expression, newExpression);\n }\n if (this.groupKey) {\n /** @type {?} */\n var expression2 = newArray.find(function (expr) { return expr.fieldName === 'isHeader'; });\n /** @type {?} */\n var headerExpression = {\n fieldName: 'isHeader', searchVale: '',\n condition: IgxBooleanFilteringOperand.instance().condition('true'), ignoreCase: true\n };\n if (!expression2) {\n newArray.push(headerExpression);\n }\n else {\n Object.assign(expression2, headerExpression);\n }\n }\n this.filteringExpressions = newArray;\n };\n /**\n * @protected\n * @return {?}\n */\n IgxComboComponent.prototype.manageRequiredAsterisk = /**\n * @protected\n * @return {?}\n */\n function () {\n if (this.ngControl && this.ngControl.control.validator) {\n // Run the validation with empty object to check if required is enabled.\n /** @type {?} */\n var error = this.ngControl.control.validator((/** @type {?} */ ({})));\n this.inputGroup.isRequired = error && error.required;\n }\n };\n /**\n * @hidden @internal\n */\n /**\n * @hidden \\@internal\n * @return {?}\n */\n IgxComboComponent.prototype.onBlur = /**\n * @hidden \\@internal\n * @return {?}\n */\n function () {\n if (this.collapsed) {\n this._onTouchedCallback();\n if (this.ngControl && !this.ngControl.valid) {\n this.valid = IgxComboState.INVALID;\n }\n else {\n this.valid = IgxComboState.INITIAL;\n }\n }\n };\n /** @hidden @internal */\n /**\n * @hidden \\@internal\n * @return {?}\n */\n IgxComboComponent.prototype.onFocus = /**\n * @hidden \\@internal\n * @return {?}\n */\n function () {\n if (this.collapsed) {\n this._onTouchedCallback();\n }\n };\n /**\n * @hidden @internal\n */\n /**\n * @hidden \\@internal\n * @return {?}\n */\n IgxComboComponent.prototype.filter = /**\n * @hidden \\@internal\n * @return {?}\n */\n function () {\n this.prepare_filtering_expression(this.searchValue.trim(), IgxStringFilteringOperand.instance().condition('contains'), true, this.dataType === DataTypes.PRIMITIVE ? undefined : this.displayKey);\n };\n /**\n * @hidden @internal\n */\n /**\n * @hidden \\@internal\n * @return {?}\n */\n IgxComboComponent.prototype.ngOnInit = /**\n * @hidden \\@internal\n * @return {?}\n */\n function () {\n this.ngControl = this._injector.get((/** @type {?} */ (NgControl)), null);\n this._overlaySettings.positionStrategy.settings.target = this.elementRef.nativeElement;\n this.selection.set(this.id, new Set());\n };\n /**\n * @hidden @internal\n */\n /**\n * @hidden \\@internal\n * @return {?}\n */\n IgxComboComponent.prototype.ngAfterViewInit = /**\n * @hidden \\@internal\n * @return {?}\n */\n function () {\n this.filteredData = __spread(this.data);\n if (this.ngControl) {\n this.ngControl.statusChanges.pipe(takeUntil(this.destroy$)).subscribe(this.onStatusChanged);\n this.manageRequiredAsterisk();\n this.cdr.detectChanges();\n }\n };\n /**\n * @hidden @internal\n */\n /**\n * @hidden \\@internal\n * @return {?}\n */\n IgxComboComponent.prototype.ngOnDestroy = /**\n * @hidden \\@internal\n * @return {?}\n */\n function () {\n this.destroy$.next();\n this.destroy$.complete();\n this.comboAPI.clear();\n this.selection.clear(this.id);\n };\n /**\n * @hidden @internal\n */\n /**\n * @hidden \\@internal\n * @param {?} event\n * @return {?}\n */\n IgxComboComponent.prototype.dataLoading = /**\n * @hidden \\@internal\n * @param {?} event\n * @return {?}\n */\n function (event) {\n this.onDataPreLoad.emit(event);\n };\n /**\n * @hidden @internal\n */\n /**\n * @hidden \\@internal\n * @param {?} value\n * @return {?}\n */\n IgxComboComponent.prototype.writeValue = /**\n * @hidden \\@internal\n * @param {?} value\n * @return {?}\n */\n function (value) {\n this.selectItems(value, true);\n this.cdr.markForCheck();\n };\n /**\n * @hidden @internal\n */\n /**\n * @hidden \\@internal\n * @param {?} fn\n * @return {?}\n */\n IgxComboComponent.prototype.registerOnChange = /**\n * @hidden \\@internal\n * @param {?} fn\n * @return {?}\n */\n function (fn) {\n this._onChangeCallback = fn;\n };\n /**\n * @hidden @internal\n */\n /**\n * @hidden \\@internal\n * @param {?} fn\n * @return {?}\n */\n IgxComboComponent.prototype.registerOnTouched = /**\n * @hidden \\@internal\n * @param {?} fn\n * @return {?}\n */\n function (fn) {\n this._onTouchedCallback = fn;\n };\n /**\n * @hidden @internal\n */\n /**\n * @hidden \\@internal\n * @param {?} isDisabled\n * @return {?}\n */\n IgxComboComponent.prototype.setDisabledState = /**\n * @hidden \\@internal\n * @param {?} isDisabled\n * @return {?}\n */\n function (isDisabled) {\n this.disabled = isDisabled;\n };\n /**\n * @hidden\n */\n /**\n * @hidden\n * @return {?}\n */\n IgxComboComponent.prototype.getEditElement = /**\n * @hidden\n * @return {?}\n */\n function () {\n return this.comboInput.nativeElement;\n };\n Object.defineProperty(IgxComboComponent.prototype, \"template\", {\n /**\n * @hidden @internal\n */\n get: /**\n * @hidden \\@internal\n * @return {?}\n */\n function () {\n this._dataType = this.dataType;\n if (this.itemTemplate) {\n return this.itemTemplate;\n }\n if (this._dataType === DataTypes.COMPLEX) {\n return this.complexTemplate;\n }\n return this.primitiveTemplate;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxComboComponent.prototype, \"context\", {\n /**\n * @hidden @internal\n */\n get: /**\n * @hidden \\@internal\n * @return {?}\n */\n function () {\n return {\n $implicit: this\n };\n },\n enumerable: true,\n configurable: true\n });\n /**\n * @hidden @internal\n */\n /**\n * @hidden \\@internal\n * @param {?} event\n * @return {?}\n */\n IgxComboComponent.prototype.handleClearItems = /**\n * @hidden \\@internal\n * @param {?} event\n * @return {?}\n */\n function (event) {\n this.deselectAllItems(true, event);\n if (this.collapsed) {\n this.getEditElement().focus();\n }\n else {\n this.focusSearchInput(true);\n }\n event.stopPropagation();\n };\n /**\n * A method that opens/closes the combo.\n *\n *```html\n *\n *\n *```\n */\n /**\n * A method that opens/closes the combo.\n *\n * ```html\n * \n * \n * ```\n * @return {?}\n */\n IgxComboComponent.prototype.toggle = /**\n * A method that opens/closes the combo.\n *\n * ```html\n * \n * \n * ```\n * @return {?}\n */\n function () {\n /** @type {?} */\n var overlaySettings = Object.assign({}, this._overlaySettings, this.overlaySettings);\n this.dropdown.toggle(overlaySettings);\n };\n /**\n * A method that opens the combo.\n *\n *```html\n *\n *\n *```\n */\n /**\n * A method that opens the combo.\n *\n * ```html\n * \n * \n * ```\n * @return {?}\n */\n IgxComboComponent.prototype.open = /**\n * A method that opens the combo.\n *\n * ```html\n * \n * \n * ```\n * @return {?}\n */\n function () {\n /** @type {?} */\n var overlaySettings = Object.assign({}, this._overlaySettings, this.overlaySettings);\n this.dropdown.open(overlaySettings);\n };\n /**\n * A method that closes the combo.\n *\n *```html\n *\n *\n *```\n */\n /**\n * A method that closes the combo.\n *\n * ```html\n * \n * \n * ```\n * @return {?}\n */\n IgxComboComponent.prototype.close = /**\n * A method that closes the combo.\n *\n * ```html\n * \n * \n * ```\n * @return {?}\n */\n function () {\n this.dropdown.close();\n };\n Object.defineProperty(IgxComboComponent.prototype, \"collapsed\", {\n /**\n * Gets drop down state.\n *\n * ```typescript\n * let state = this.combo.collapsed;\n * ```\n */\n get: /**\n * Gets drop down state.\n *\n * ```typescript\n * let state = this.combo.collapsed;\n * ```\n * @return {?}\n */\n function () {\n return this.dropdown.collapsed;\n },\n enumerable: true,\n configurable: true\n });\n /**\n * Get current selection state\n * @returns Array of selected items\n * ```typescript\n * let selectedItems = this.combo.selectedItems();\n * ```\n */\n /**\n * Get current selection state\n * @return {?} Array of selected items\n * ```typescript\n * let selectedItems = this.combo.selectedItems();\n * ```\n */\n IgxComboComponent.prototype.selectedItems = /**\n * Get current selection state\n * @return {?} Array of selected items\n * ```typescript\n * let selectedItems = this.combo.selectedItems();\n * ```\n */\n function () {\n /** @type {?} */\n var items = Array.from(this.selection.get(this.id));\n return items;\n };\n /**\n * Select defined items\n * @param newItems new items to be selected\n * @param clearCurrentSelection if true clear previous selected items\n * ```typescript\n * this.combo.selectItems([\"New York\", \"New Jersey\"]);\n * ```\n */\n /**\n * Select defined items\n * @param {?} newItems new items to be selected\n * @param {?=} clearCurrentSelection if true clear previous selected items\n * ```typescript\n * this.combo.selectItems([\"New York\", \"New Jersey\"]);\n * ```\n * @param {?=} event\n * @return {?}\n */\n IgxComboComponent.prototype.selectItems = /**\n * Select defined items\n * @param {?} newItems new items to be selected\n * @param {?=} clearCurrentSelection if true clear previous selected items\n * ```typescript\n * this.combo.selectItems([\"New York\", \"New Jersey\"]);\n * ```\n * @param {?=} event\n * @return {?}\n */\n function (newItems, clearCurrentSelection, event) {\n if (newItems) {\n /** @type {?} */\n var newSelection = this.selection.add_items(this.id, newItems, clearCurrentSelection);\n this.setSelection(newSelection, event);\n }\n };\n /**\n * Deselect defined items\n * @param items items to deselected\n * ```typescript\n * this.combo.deselectItems([\"New York\", \"New Jersey\"]);\n * ```\n */\n /**\n * Deselect defined items\n * @param {?} items items to deselected\n * ```typescript\n * this.combo.deselectItems([\"New York\", \"New Jersey\"]);\n * ```\n * @param {?=} event\n * @return {?}\n */\n IgxComboComponent.prototype.deselectItems = /**\n * Deselect defined items\n * @param {?} items items to deselected\n * ```typescript\n * this.combo.deselectItems([\"New York\", \"New Jersey\"]);\n * ```\n * @param {?=} event\n * @return {?}\n */\n function (items, event) {\n if (items) {\n /** @type {?} */\n var newSelection = this.selection.delete_items(this.id, items);\n this.setSelection(newSelection, event);\n }\n };\n /**\n * Select all (filtered) items\n * @param ignoreFilter if set to true, selects all items, otherwise selects only the filtered ones.\n * ```typescript\n * this.combo.selectAllItems();\n * ```\n */\n /**\n * Select all (filtered) items\n * @param {?=} ignoreFilter if set to true, selects all items, otherwise selects only the filtered ones.\n * ```typescript\n * this.combo.selectAllItems();\n * ```\n * @param {?=} event\n * @return {?}\n */\n IgxComboComponent.prototype.selectAllItems = /**\n * Select all (filtered) items\n * @param {?=} ignoreFilter if set to true, selects all items, otherwise selects only the filtered ones.\n * ```typescript\n * this.combo.selectAllItems();\n * ```\n * @param {?=} event\n * @return {?}\n */\n function (ignoreFilter, event) {\n /** @type {?} */\n var allVisible = this.selection.get_all_ids(ignoreFilter ? this.data : this.filteredData, this.valueKey);\n /** @type {?} */\n var newSelection = this.selection.add_items(this.id, allVisible);\n this.setSelection(newSelection, event);\n };\n /**\n * Deselect all (filtered) items\n * @param ignoreFilter if set to true, deselects all items, otherwise deselects only the filtered ones.\n * ```typescript\n * this.combo.deselectAllItems();\n * ```\n */\n /**\n * Deselect all (filtered) items\n * @param {?=} ignoreFilter if set to true, deselects all items, otherwise deselects only the filtered ones.\n * ```typescript\n * this.combo.deselectAllItems();\n * ```\n * @param {?=} event\n * @return {?}\n */\n IgxComboComponent.prototype.deselectAllItems = /**\n * Deselect all (filtered) items\n * @param {?=} ignoreFilter if set to true, deselects all items, otherwise deselects only the filtered ones.\n * ```typescript\n * this.combo.deselectAllItems();\n * ```\n * @param {?=} event\n * @return {?}\n */\n function (ignoreFilter, event) {\n /** @type {?} */\n var newSelection = this.selection.get_empty();\n if (this.filteredData.length !== this.data.length && !ignoreFilter) {\n newSelection = this.selection.delete_items(this.id, this.selection.get_all_ids(this.filteredData, this.valueKey));\n }\n this.setSelection(newSelection, event);\n };\n /**\n * Selects/Deselects a single item\n * @param itemID the itemID of the specific item\n * @param select If the item should be selected (true) or deselected (false)\n *\n * Without specified valueKey;\n * ```typescript\n * this.combo.valueKey = null;\n * const items: { field: string, region: string}[] = data;\n * this.combo.setSelectedItem(items[0], true);\n * ```\n * With specified valueKey;\n * ```typescript\n * this.combo.valueKey = 'field';\n * const items: { field: string, region: string}[] = data;\n * this.combo.setSelectedItem('Connecticut', true);\n * ```\n */\n /**\n * Selects/Deselects a single item\n * @param {?} itemID the itemID of the specific item\n * @param {?=} select If the item should be selected (true) or deselected (false)\n *\n * Without specified valueKey;\n * ```typescript\n * this.combo.valueKey = null;\n * const items: { field: string, region: string}[] = data;\n * this.combo.setSelectedItem(items[0], true);\n * ```\n * With specified valueKey;\n * ```typescript\n * this.combo.valueKey = 'field';\n * const items: { field: string, region: string}[] = data;\n * this.combo.setSelectedItem('Connecticut', true);\n * ```\n * @param {?=} event\n * @return {?}\n */\n IgxComboComponent.prototype.setSelectedItem = /**\n * Selects/Deselects a single item\n * @param {?} itemID the itemID of the specific item\n * @param {?=} select If the item should be selected (true) or deselected (false)\n *\n * Without specified valueKey;\n * ```typescript\n * this.combo.valueKey = null;\n * const items: { field: string, region: string}[] = data;\n * this.combo.setSelectedItem(items[0], true);\n * ```\n * With specified valueKey;\n * ```typescript\n * this.combo.valueKey = 'field';\n * const items: { field: string, region: string}[] = data;\n * this.combo.setSelectedItem('Connecticut', true);\n * ```\n * @param {?=} event\n * @return {?}\n */\n function (itemID, select, event) {\n if (select === void 0) { select = true; }\n if (itemID === null || itemID === undefined) {\n return;\n }\n if (select) {\n this.selectItems([itemID], false, event);\n }\n else {\n this.deselectItems([itemID], event);\n }\n };\n /**\n * @protected\n * @param {?} newSelection\n * @param {?=} event\n * @return {?}\n */\n IgxComboComponent.prototype.setSelection = /**\n * @protected\n * @param {?} newSelection\n * @param {?=} event\n * @return {?}\n */\n function (newSelection, event) {\n var _this = this;\n /** @type {?} */\n var removed = diffInSets(this.selection.get(this.id), newSelection);\n /** @type {?} */\n var added = diffInSets(newSelection, this.selection.get(this.id));\n /** @type {?} */\n var args = {\n newSelection: Array.from(newSelection),\n oldSelection: Array.from(this.selection.get(this.id) || []),\n added: added,\n removed: removed,\n event: event,\n cancel: false\n };\n this.onSelectionChange.emit(args);\n if (!args.cancel) {\n this.selection.select_items(this.id, args.newSelection, true);\n /** @type {?} */\n var value = '';\n if (this.isRemote) {\n if (args.newSelection.length) {\n /** @type {?} */\n var removedItems = args.oldSelection.filter(function (e) { return args.newSelection.indexOf(e) < 0; });\n /** @type {?} */\n var addedItems = args.newSelection.filter(function (e) { return args.oldSelection.indexOf(e) < 0; });\n this.registerRemoteEntries(addedItems);\n this.registerRemoteEntries(removedItems, false);\n value = Object.keys(this._remoteSelection).map(function (e) { return _this._remoteSelection[e]; }).join(', ');\n }\n else {\n // If new selection is empty, clear all items\n this.registerRemoteEntries(args.oldSelection, false);\n }\n }\n else {\n value = this.displayKey !== null && this.displayKey !== undefined ?\n this.convertKeysToItems(args.newSelection).map(function (entry) { return entry[_this.displayKey]; }).join(', ') :\n args.newSelection.join(', ');\n }\n this._value = value;\n this._onChangeCallback(args.newSelection);\n }\n };\n /** if there is a valueKey - map the keys to data items, else - just return the keys */\n /**\n * if there is a valueKey - map the keys to data items, else - just return the keys\n * @private\n * @param {?} keys\n * @return {?}\n */\n IgxComboComponent.prototype.convertKeysToItems = /**\n * if there is a valueKey - map the keys to data items, else - just return the keys\n * @private\n * @param {?} keys\n * @return {?}\n */\n function (keys) {\n var _this = this;\n if (this.comboAPI.valueKey === null) {\n return keys;\n }\n // map keys vs. filter data to retain the order of the selected items\n return keys.map(function (key) { return _this.data.find(function (entry) { return entry[_this.valueKey] === key; }); }).filter(function (e) { return e !== undefined; });\n };\n /**\n * Event handlers\n * @hidden\n * @internal\n */\n /**\n * Event handlers\n * @hidden\n * \\@internal\n * @param {?} event\n * @return {?}\n */\n IgxComboComponent.prototype.handleOpening = /**\n * Event handlers\n * @hidden\n * \\@internal\n * @param {?} event\n * @return {?}\n */\n function (event) {\n this.onOpening.emit(event);\n if (event.cancel) {\n return;\n }\n this.handleInputChange();\n };\n /**\n * @hidden @internal\n */\n /**\n * @hidden \\@internal\n * @return {?}\n */\n IgxComboComponent.prototype.handleOpened = /**\n * @hidden \\@internal\n * @return {?}\n */\n function () {\n this.triggerCheck();\n this.focusSearchInput(true);\n this.onOpened.emit();\n };\n /**\n * @hidden @internal\n */\n /**\n * @hidden \\@internal\n * @param {?} event\n * @return {?}\n */\n IgxComboComponent.prototype.handleClosing = /**\n * @hidden \\@internal\n * @param {?} event\n * @return {?}\n */\n function (event) {\n this.onClosing.emit(event);\n if (event.cancel) {\n return;\n }\n this.searchValue = '';\n this.comboInput.nativeElement.focus();\n };\n /**\n * @hidden @internal\n */\n /**\n * @hidden \\@internal\n * @return {?}\n */\n IgxComboComponent.prototype.handleClosed = /**\n * @hidden \\@internal\n * @return {?}\n */\n function () {\n this.onClosed.emit();\n };\n IgxComboComponent.decorators = [\n { type: Component, args: [{\n selector: 'igx-combo',\n template: \"\\n {{display[key]}}\\n\\n\\n {{display}}\\n\\n\\n The list is empty\\n\\n\\n \\n\\n\\n {{ item[key] }}\\n\\n\\n\\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n clear\\n \\n \\n \\n \\n \\n {{ dropdown.collapsed ? 'arrow_drop_down' : 'arrow_drop_up'}}\\n \\n\\n\\n \\n \\n \\n \\n \\n
\\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n
\\n
\\n
\\n \\n \\n
\\n \\n \\n \\n \\n
\\n \\n \\n
\\n\",\n providers: [\n IgxComboAPIService,\n { provide: IGX_COMBO_COMPONENT, useExisting: IgxComboComponent },\n { provide: NG_VALUE_ACCESSOR, useExisting: forwardRef(function () { return IgxComboComponent; }), multi: true }\n ]\n }] }\n ];\n /** @nocollapse */\n IgxComboComponent.ctorParameters = function () { return [\n { type: ElementRef },\n { type: ChangeDetectorRef },\n { type: IgxSelectionAPIService },\n { type: IgxComboAPIService },\n { type: undefined, decorators: [{ type: Optional }, { type: Inject, args: [DisplayDensityToken,] }] },\n { type: Injector, decorators: [{ type: Optional }] }\n ]; };\n IgxComboComponent.propDecorators = {\n virtDir: [{ type: ViewChild, args: [IgxForOfDirective, { read: IgxForOfDirective, static: true },] }],\n overlaySettings: [{ type: Input }],\n inputGroup: [{ type: ViewChild, args: ['inputGroup', { read: IgxInputGroupComponent, static: true },] }],\n comboInput: [{ type: ViewChild, args: ['comboInput', { read: IgxInputDirective, static: true },] }],\n dropdown: [{ type: ViewChild, args: [IgxComboDropDownComponent, { read: IgxComboDropDownComponent, static: true },] }],\n searchInput: [{ type: ViewChild, args: ['searchInput', { static: false },] }],\n itemTemplate: [{ type: ContentChild, args: [IgxComboItemDirective, { read: TemplateRef, static: false },] }],\n headerTemplate: [{ type: ContentChild, args: [IgxComboHeaderDirective, { read: TemplateRef, static: false },] }],\n footerTemplate: [{ type: ContentChild, args: [IgxComboFooterDirective, { read: TemplateRef, static: false },] }],\n headerItemTemplate: [{ type: ContentChild, args: [IgxComboHeaderItemDirective, { read: TemplateRef, static: false },] }],\n addItemTemplate: [{ type: ContentChild, args: [IgxComboAddItemDirective, { read: TemplateRef, static: false },] }],\n emptyTemplate: [{ type: ContentChild, args: [IgxComboEmptyDirective, { read: TemplateRef, static: false },] }],\n toggleIconTemplate: [{ type: ContentChild, args: [IgxComboToggleIconDirective, { read: TemplateRef, static: false },] }],\n clearIconTemplate: [{ type: ContentChild, args: [IgxComboClearIconDirective, { read: TemplateRef, static: false },] }],\n primitiveTemplate: [{ type: ViewChild, args: ['primitive', { read: TemplateRef, static: true },] }],\n complexTemplate: [{ type: ViewChild, args: ['complex', { read: TemplateRef, static: true },] }],\n virtualScrollContainer: [{ type: ViewChild, args: [IgxForOfDirective, { static: true },] }],\n dropdownContainer: [{ type: ViewChild, args: ['dropdownItemContainer', { static: true },] }],\n onSelectionChange: [{ type: Output }],\n onOpening: [{ type: Output }],\n onOpened: [{ type: Output }],\n onClosing: [{ type: Output }],\n onClosed: [{ type: Output }],\n onAddition: [{ type: Output }],\n onSearchInput: [{ type: Output }],\n onDataPreLoad: [{ type: Output }],\n id: [{ type: HostBinding, args: ['attr.id',] }, { type: Input }],\n width: [{ type: HostBinding, args: ['style.width',] }, { type: Input }],\n cssClass: [{ type: HostBinding, args: ['class.igx-combo',] }],\n role: [{ type: HostBinding, args: [\"attr.role\",] }],\n ariaExpanded: [{ type: HostBinding, args: ['attr.aria-expanded',] }],\n hasPopUp: [{ type: HostBinding, args: ['attr.aria-haspopup',] }],\n ariaOwns: [{ type: HostBinding, args: ['attr.aria-owns',] }],\n allowCustomValues: [{ type: Input }],\n itemsMaxHeight: [{ type: Input }],\n itemsWidth: [{ type: Input }],\n itemHeight: [{ type: Input }],\n placeholder: [{ type: Input }],\n searchPlaceholder: [{ type: Input }],\n data: [{ type: Input }],\n valueKey: [{ type: Input }],\n displayKey: [{ type: Input }],\n groupKey: [{ type: Input }],\n filterable: [{ type: Input }],\n ariaLabelledBy: [{ type: Input }, { type: HostBinding, args: ['attr.aria-labelledby',] }],\n disabled: [{ type: Input }],\n type: [{ type: Input }],\n onArrowDown: [{ type: HostListener, args: ['keydown.ArrowDown', ['$event'],] }, { type: HostListener, args: ['keydown.Alt.ArrowDown', ['$event'],] }]\n };\n return IgxComboComponent;\n}(DisplayDensityBase));\n/**\n * @hidden\n */\nvar IgxComboModule = /** @class */ (function () {\n function IgxComboModule() {\n }\n IgxComboModule.decorators = [\n { type: NgModule, args: [{\n declarations: [IgxComboComponent, IgxComboItemComponent, IgxComboFilterConditionPipe, IgxComboGroupingPipe,\n IgxComboFilteringPipe, IgxComboSortingPipe, IgxComboDropDownComponent, IgxComboAddItemComponent,\n IgxComboItemDirective,\n IgxComboEmptyDirective,\n IgxComboHeaderItemDirective,\n IgxComboHeaderDirective,\n IgxComboFooterDirective,\n IgxComboAddItemDirective,\n IgxComboToggleIconDirective,\n IgxComboClearIconDirective],\n exports: [IgxComboComponent, IgxComboItemComponent, IgxComboDropDownComponent, IgxComboAddItemComponent,\n IgxComboItemDirective,\n IgxComboEmptyDirective,\n IgxComboHeaderItemDirective,\n IgxComboHeaderDirective,\n IgxComboFooterDirective,\n IgxComboAddItemDirective,\n IgxComboToggleIconDirective,\n IgxComboClearIconDirective],\n imports: [IgxRippleModule, CommonModule, IgxInputGroupModule, FormsModule, ReactiveFormsModule,\n IgxForOfModule, IgxToggleModule, IgxCheckboxModule, IgxDropDownModule, IgxButtonModule, IgxIconModule],\n providers: [IgxSelectionAPIService]\n },] }\n ];\n return IgxComboModule;\n}());\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n/**\n * @hidden\n * @abstract\n */\nvar DatePickerUtil = /** @class */ (function () {\n function DatePickerUtil() {\n }\n /**\n * This method generates date parts structure based on editor mask and locale.\n * @param maskValue: string\n * @param locale: string\n * @returns array containing information about date parts - type, position, format\n */\n /**\n * This method generates date parts structure based on editor mask and locale.\n * @param {?} maskValue\n * @param {?=} locale\n * @return {?} array containing information about date parts - type, position, format\n */\n DatePickerUtil.parseDateFormat = /**\n * This method generates date parts structure based on editor mask and locale.\n * @param {?} maskValue\n * @param {?=} locale\n * @return {?} array containing information about date parts - type, position, format\n */\n function (maskValue, locale) {\n if (locale === void 0) { locale = DatePickerUtil.DEFAULT_LOCALE; }\n /** @type {?} */\n var dateStruct = [];\n if (maskValue === undefined && !isIE()) {\n dateStruct = DatePickerUtil.getDefaultLocaleMask(locale);\n }\n else {\n /** @type {?} */\n var mask = (maskValue) ? maskValue : DatePickerUtil.SHORT_DATE_MASK;\n /** @type {?} */\n var maskArray = Array.from(mask);\n /** @type {?} */\n var monthInitPosition = mask.indexOf(\"M\" /* MonthChar */);\n /** @type {?} */\n var dayInitPosition = mask.indexOf(\"d\" /* DayChar */);\n /** @type {?} */\n var yearInitPosition = mask.indexOf(\"y\" /* YearChar */);\n if (yearInitPosition !== -1) {\n dateStruct.push({\n type: \"year\" /* Year */,\n initialPosition: yearInitPosition,\n formatType: DatePickerUtil.getYearFormatType(mask)\n });\n }\n if (monthInitPosition !== -1) {\n dateStruct.push({\n type: \"month\" /* Month */,\n initialPosition: monthInitPosition,\n formatType: DatePickerUtil.getMonthFormatType(mask)\n });\n }\n if (dayInitPosition !== -1) {\n dateStruct.push({\n type: \"day\" /* Day */,\n initialPosition: dayInitPosition,\n formatType: DatePickerUtil.getDayFormatType(mask)\n });\n }\n for (var i = 0; i < maskArray.length; i++) {\n if (!DatePickerUtil.isDateChar(maskArray[i])) {\n dateStruct.push({\n type: DatePickerUtil.SEPARATOR,\n initialPosition: i,\n value: maskArray[i]\n });\n }\n }\n dateStruct.sort(function (a, b) { return a.initialPosition - b.initialPosition; });\n DatePickerUtil.fillDatePartsPositions(dateStruct);\n }\n return dateStruct;\n };\n /**\n * This method generates input mask based on date parts.\n * @param dateStruct array\n * @returns input mask\n */\n /**\n * This method generates input mask based on date parts.\n * @param {?} dateStruct array\n * @return {?} input mask\n */\n DatePickerUtil.getInputMask = /**\n * This method generates input mask based on date parts.\n * @param {?} dateStruct array\n * @return {?} input mask\n */\n function (dateStruct) {\n /** @type {?} */\n var inputMask = [];\n for (var i = 0; i < dateStruct.length; i++) {\n if (dateStruct[i].type === DatePickerUtil.SEPARATOR) {\n inputMask.push(dateStruct[i].value);\n }\n else if (dateStruct[i].type === \"day\" /* Day */ || dateStruct[i].type === \"month\" /* Month */) {\n inputMask.push('00');\n }\n else if (dateStruct[i].type === \"year\" /* Year */) {\n switch (dateStruct[i].formatType) {\n case \"numeric\" /* Numeric */: {\n inputMask.push('0000');\n break;\n }\n case \"2-digit\" /* TwoDigits */: {\n inputMask.push('00');\n break;\n }\n }\n }\n }\n return inputMask.join('');\n };\n /**\n * This method generates editor mask.\n * @param dateStruct\n * @returns editor mask\n */\n /**\n * This method generates editor mask.\n * @param {?} dateStruct\n * @return {?} editor mask\n */\n DatePickerUtil.getMask = /**\n * This method generates editor mask.\n * @param {?} dateStruct\n * @return {?} editor mask\n */\n function (dateStruct) {\n /** @type {?} */\n var mask = [];\n for (var i = 0; i < dateStruct.length; i++) {\n switch (dateStruct[i].formatType) {\n case \"numeric\" /* Numeric */: {\n if (dateStruct[i].type === \"day\" /* Day */) {\n mask.push('d');\n }\n else if (dateStruct[i].type === \"month\" /* Month */) {\n mask.push('M');\n }\n else {\n mask.push('yyyy');\n }\n break;\n }\n case \"2-digit\" /* TwoDigits */: {\n if (dateStruct[i].type === \"day\" /* Day */) {\n mask.push('dd');\n }\n else if (dateStruct[i].type === \"month\" /* Month */) {\n mask.push('MM');\n }\n else {\n mask.push('yy');\n }\n }\n }\n if (dateStruct[i].type === DatePickerUtil.SEPARATOR) {\n mask.push(dateStruct[i].value);\n }\n }\n return mask.join('');\n };\n /**\n * This method parses an input string base on date parts and returns a date and its validation state.\n * @param dateFormatParts\n * @param prevDateValue\n * @param inputValue\n * @returns object containing a date and its validation state\n */\n /**\n * This method parses an input string base on date parts and returns a date and its validation state.\n * @param {?} dateFormatParts\n * @param {?} prevDateValue\n * @param {?} inputValue\n * @return {?} object containing a date and its validation state\n */\n DatePickerUtil.parseDateArray = /**\n * This method parses an input string base on date parts and returns a date and its validation state.\n * @param {?} dateFormatParts\n * @param {?} prevDateValue\n * @param {?} inputValue\n * @return {?} object containing a date and its validation state\n */\n function (dateFormatParts, prevDateValue, inputValue) {\n /** @type {?} */\n var dayStr = DatePickerUtil.getDayValueFromInput(dateFormatParts, inputValue);\n /** @type {?} */\n var monthStr = DatePickerUtil.getMonthValueFromInput(dateFormatParts, inputValue);\n /** @type {?} */\n var yearStr = DatePickerUtil.getYearValueFromInput(dateFormatParts, inputValue);\n /** @type {?} */\n var yearFormat = DatePickerUtil.getDateFormatPart(dateFormatParts, \"year\" /* Year */).formatType;\n /** @type {?} */\n var day = (dayStr !== '') ? parseInt(dayStr, 10) : 1;\n /** @type {?} */\n var month = (monthStr !== '') ? parseInt(monthStr, 10) - 1 : 0;\n /** @type {?} */\n var year;\n if (yearStr === '') {\n year = (yearFormat === \"2-digit\" /* TwoDigits */) ? '00' : '2000';\n }\n else {\n year = yearStr;\n }\n /** @type {?} */\n var yearPrefix;\n if (prevDateValue) {\n /** @type {?} */\n var originalYear = prevDateValue.getFullYear().toString();\n if (originalYear.length === 4) {\n yearPrefix = originalYear.substring(0, 2);\n }\n }\n else {\n yearPrefix = '20';\n }\n /** @type {?} */\n var fullYear = (yearFormat === \"2-digit\" /* TwoDigits */) ? yearPrefix.concat(year) : year;\n if ((month < 0) || (month > 11) || (month === NaN)) {\n return { state: \"invalid\" /* Invalid */, value: inputValue };\n }\n if ((day < 1) || (day > DatePickerUtil.daysInMonth(fullYear, month + 1)) || (day === NaN)) {\n return { state: \"invalid\" /* Invalid */, value: inputValue };\n }\n return { state: \"valid\" /* Valid */, date: new Date(fullYear, month, day) };\n };\n /**\n * @param {?} mask\n * @return {?}\n */\n DatePickerUtil.maskToPromptChars = /**\n * @param {?} mask\n * @return {?}\n */\n function (mask) {\n /** @type {?} */\n var result = mask.replace(/0|L/g, DatePickerUtil.PROMPT_CHAR);\n return result;\n };\n /**\n * This method replaces prompt chars with empty string.\n * @param value\n */\n /**\n * This method replaces prompt chars with empty string.\n * @param {?} value\n * @return {?}\n */\n DatePickerUtil.trimUnderlines = /**\n * This method replaces prompt chars with empty string.\n * @param {?} value\n * @return {?}\n */\n function (value) {\n /** @type {?} */\n var result = value.replace(/_/g, '');\n return result;\n };\n /**\n * This method is used for spinning date parts.\n * @param dateFormatParts\n * @param inputValue\n * @param position\n * @param delta\n * @param isSpinLoop\n * @return modified text input\n */\n /**\n * This method is used for spinning date parts.\n * @param {?} dateFormatParts\n * @param {?} inputValue\n * @param {?} position\n * @param {?} delta\n * @param {?} isSpinLoop\n * @return {?} modified text input\n */\n DatePickerUtil.getModifiedDateInput = /**\n * This method is used for spinning date parts.\n * @param {?} dateFormatParts\n * @param {?} inputValue\n * @param {?} position\n * @param {?} delta\n * @param {?} isSpinLoop\n * @return {?} modified text input\n */\n function (dateFormatParts, inputValue, position, delta, isSpinLoop) {\n /** @type {?} */\n var datePart = DatePickerUtil.getDatePartOnPosition(dateFormatParts, position);\n /** @type {?} */\n var datePartType = datePart.type;\n /** @type {?} */\n var datePartFormatType = datePart.formatType;\n /** @type {?} */\n var newValue;\n /** @type {?} */\n var datePartValue = DatePickerUtil.getDateValueFromInput(dateFormatParts, datePartType, inputValue);\n newValue = parseInt(datePartValue, 10);\n /** @type {?} */\n var maxValue;\n /** @type {?} */\n var minValue;\n /** @type {?} */\n var minMax = DatePickerUtil.getMinMaxValue(dateFormatParts, datePart, inputValue);\n minValue = minMax.min;\n maxValue = minMax.max;\n if (isNaN(newValue)) {\n if (minValue === 'infinite') {\n newValue = 2000;\n }\n else {\n newValue = minValue;\n }\n }\n /** @type {?} */\n var tempValue = newValue;\n tempValue += delta;\n // Infinite loop for full years\n if (maxValue === 'infinite' && minValue === 'infinite') {\n newValue = tempValue;\n }\n if (isSpinLoop) {\n if (tempValue > maxValue) {\n tempValue = minValue;\n }\n if (tempValue < minValue) {\n tempValue = maxValue;\n }\n newValue = tempValue;\n }\n else {\n if (tempValue <= maxValue && tempValue >= minValue) {\n newValue = tempValue;\n }\n }\n /** @type {?} */\n var startIdx = datePart.position[0];\n /** @type {?} */\n var endIdx = datePart.position[1];\n /** @type {?} */\n var start = inputValue.slice(0, startIdx);\n /** @type {?} */\n var end = inputValue.slice(endIdx, inputValue.length);\n /** @type {?} */\n var changedPart;\n /** @type {?} */\n var prefix = DatePickerUtil.getNumericFormatPrefix(datePartFormatType);\n changedPart = (newValue < 10) ? \"\" + prefix + newValue : \"\" + newValue;\n return \"\" + start + changedPart + end;\n };\n /**\n * This method returns date input with prompt chars.\n * @param dateFormatParts\n * @param date\n * @param inputValue\n * @returns date input including prompt chars\n */\n /**\n * This method returns date input with prompt chars.\n * @param {?} dateFormatParts\n * @param {?} date\n * @param {?} inputValue\n * @return {?} date input including prompt chars\n */\n DatePickerUtil.addPromptCharsEditMode = /**\n * This method returns date input with prompt chars.\n * @param {?} dateFormatParts\n * @param {?} date\n * @param {?} inputValue\n * @return {?} date input including prompt chars\n */\n function (dateFormatParts, date, inputValue) {\n /** @type {?} */\n var dateArray = Array.from(inputValue);\n for (var i = 0; i < dateFormatParts.length; i++) {\n if (dateFormatParts[i].formatType === \"numeric\" /* Numeric */) {\n if ((dateFormatParts[i].type === \"day\" /* Day */ && date.getDate() < 10)\n || (dateFormatParts[i].type === \"month\" /* Month */ && date.getMonth() + 1 < 10)) {\n dateArray.splice(dateFormatParts[i].position[0], 0, DatePickerUtil.PROMPT_CHAR);\n dateArray.join('');\n }\n }\n }\n return dateArray.join('');\n };\n /**\n * This method checks if date input is done.\n * @param dateFormatParts\n * @param input\n * @returns input completeness\n */\n /**\n * This method checks if date input is done.\n * @param {?} dateFormatParts\n * @param {?} input\n * @return {?} input completeness\n */\n DatePickerUtil.checkForCompleteDateInput = /**\n * This method checks if date input is done.\n * @param {?} dateFormatParts\n * @param {?} input\n * @return {?} input completeness\n */\n function (dateFormatParts, input) {\n /** @type {?} */\n var dayValue = DatePickerUtil.getDayValueFromInput(dateFormatParts, input);\n /** @type {?} */\n var monthValue = DatePickerUtil.getMonthValueFromInput(dateFormatParts, input);\n /** @type {?} */\n var yearValue = DatePickerUtil.getYearValueFromInput(dateFormatParts, input);\n /** @type {?} */\n var dayStr = DatePickerUtil.getDayValueFromInput(dateFormatParts, input, false);\n /** @type {?} */\n var monthStr = DatePickerUtil.getMonthValueFromInput(dateFormatParts, input, false);\n if (DatePickerUtil.isFullInput(dayValue, dayStr)\n && DatePickerUtil.isFullInput(monthValue, monthStr)\n && DatePickerUtil.isFullYearInput(dateFormatParts, yearValue)) {\n return 'complete';\n }\n else if (dayValue === '' && monthValue === '' && yearValue === '') {\n return 'empty';\n }\n else if (dayValue === '' || monthValue === '' || yearValue === '') {\n return 'partial';\n }\n return '';\n };\n /**\n * @private\n * @param {?} format\n * @return {?}\n */\n DatePickerUtil.getYearFormatType = /**\n * @private\n * @param {?} format\n * @return {?}\n */\n function (format) {\n switch (format.match(new RegExp(\"y\" /* YearChar */, 'g')).length) {\n case 1: {\n // y (2020)\n return \"numeric\" /* Numeric */;\n }\n case 4: {\n // yyyy (2020)\n return \"numeric\" /* Numeric */;\n }\n case 2: {\n // yy (20)\n return \"2-digit\" /* TwoDigits */;\n }\n }\n };\n /**\n * @private\n * @param {?} format\n * @return {?}\n */\n DatePickerUtil.getMonthFormatType = /**\n * @private\n * @param {?} format\n * @return {?}\n */\n function (format) {\n switch (format.match(new RegExp(\"M\" /* MonthChar */, 'g')).length) {\n case 1: {\n // M (8)\n return \"numeric\" /* Numeric */;\n }\n case 2: {\n // MM (08)\n return \"2-digit\" /* TwoDigits */;\n }\n }\n };\n /**\n * @private\n * @param {?} format\n * @return {?}\n */\n DatePickerUtil.getDayFormatType = /**\n * @private\n * @param {?} format\n * @return {?}\n */\n function (format) {\n switch (format.match(new RegExp(\"d\" /* DayChar */, 'g')).length) {\n case 1: {\n // d (6)\n return \"numeric\" /* Numeric */;\n }\n case 2: {\n // dd (06)\n return \"2-digit\" /* TwoDigits */;\n }\n }\n };\n /**\n * @private\n * @param {?} locale\n * @return {?}\n */\n DatePickerUtil.getDefaultLocaleMask = /**\n * @private\n * @param {?} locale\n * @return {?}\n */\n function (locale) {\n /** @type {?} */\n var dateStruct = [];\n /** @type {?} */\n var formatter = new Intl.DateTimeFormat(locale);\n /** @type {?} */\n var formatToParts = formatter.formatToParts(new Date());\n for (var i = 0; i < formatToParts.length; i++) {\n if (formatToParts[i].type === DatePickerUtil.SEPARATOR) {\n dateStruct.push({\n type: DatePickerUtil.SEPARATOR,\n value: formatToParts[i].value\n });\n }\n else {\n dateStruct.push({\n type: formatToParts[i].type,\n });\n }\n }\n /** @type {?} */\n var formatterOptions = formatter.resolvedOptions();\n for (var i = 0; i < dateStruct.length; i++) {\n switch (dateStruct[i].type) {\n case \"day\" /* Day */: {\n dateStruct[i].formatType = formatterOptions.day;\n break;\n }\n case \"month\" /* Month */: {\n dateStruct[i].formatType = formatterOptions.month;\n break;\n }\n case \"year\" /* Year */: {\n dateStruct[i].formatType = formatterOptions.month;\n break;\n }\n }\n }\n DatePickerUtil.fillDatePartsPositions(dateStruct);\n return dateStruct;\n };\n /**\n * @private\n * @param {?} char\n * @return {?}\n */\n DatePickerUtil.isDateChar = /**\n * @private\n * @param {?} char\n * @return {?}\n */\n function (char) {\n return (char === \"y\" /* YearChar */ || char === \"M\" /* MonthChar */ || char === \"d\" /* DayChar */);\n };\n /**\n * @private\n * @param {?} formatType\n * @return {?}\n */\n DatePickerUtil.getNumericFormatPrefix = /**\n * @private\n * @param {?} formatType\n * @return {?}\n */\n function (formatType) {\n switch (formatType) {\n case \"2-digit\" /* TwoDigits */: {\n return '0';\n }\n case \"numeric\" /* Numeric */: {\n return DatePickerUtil.PROMPT_CHAR;\n }\n }\n };\n /**\n * @private\n * @param {?} dateFormatParts\n * @param {?} datePart\n * @param {?} inputValue\n * @return {?}\n */\n DatePickerUtil.getMinMaxValue = /**\n * @private\n * @param {?} dateFormatParts\n * @param {?} datePart\n * @param {?} inputValue\n * @return {?}\n */\n function (dateFormatParts, datePart, inputValue) {\n /** @type {?} */\n var maxValue;\n /** @type {?} */\n var minValue;\n switch (datePart.type) {\n case \"month\" /* Month */: {\n minValue = 1;\n maxValue = DatePickerUtil.NUMBER_OF_MONTHS;\n break;\n }\n case \"day\" /* Day */: {\n minValue = 1;\n maxValue = DatePickerUtil.daysInMonth(DatePickerUtil.getFullYearFromString(DatePickerUtil.getDateFormatPart(dateFormatParts, \"year\" /* Year */), inputValue), parseInt(DatePickerUtil.getMonthValueFromInput(dateFormatParts, inputValue), 10));\n break;\n }\n case \"year\" /* Year */: {\n if (datePart.formatType === \"2-digit\" /* TwoDigits */) {\n minValue = 0;\n maxValue = 99;\n }\n else {\n // Infinite loop\n minValue = 'infinite';\n maxValue = 'infinite';\n }\n break;\n }\n }\n return { min: minValue, max: maxValue };\n };\n /**\n * @private\n * @param {?} fullYear\n * @param {?} month\n * @return {?}\n */\n DatePickerUtil.daysInMonth = /**\n * @private\n * @param {?} fullYear\n * @param {?} month\n * @return {?}\n */\n function (fullYear, month) {\n return new Date(fullYear, month, 0).getDate();\n };\n /**\n * @private\n * @param {?} dateFormatParts\n * @param {?} type\n * @param {?} inputValue\n * @param {?=} trim\n * @return {?}\n */\n DatePickerUtil.getDateValueFromInput = /**\n * @private\n * @param {?} dateFormatParts\n * @param {?} type\n * @param {?} inputValue\n * @param {?=} trim\n * @return {?}\n */\n function (dateFormatParts, type, inputValue, trim) {\n if (trim === void 0) { trim = true; }\n /** @type {?} */\n var partPosition = DatePickerUtil.getDateFormatPart(dateFormatParts, type).position;\n /** @type {?} */\n var result = inputValue.substring(partPosition[0], partPosition[1]);\n return (trim) ? DatePickerUtil.trimUnderlines(result) : result;\n };\n /**\n * @private\n * @param {?} dateFormatParts\n * @param {?} inputValue\n * @param {?=} trim\n * @return {?}\n */\n DatePickerUtil.getDayValueFromInput = /**\n * @private\n * @param {?} dateFormatParts\n * @param {?} inputValue\n * @param {?=} trim\n * @return {?}\n */\n function (dateFormatParts, inputValue, trim) {\n if (trim === void 0) { trim = true; }\n return DatePickerUtil.getDateValueFromInput(dateFormatParts, \"day\" /* Day */, inputValue, trim);\n };\n /**\n * @private\n * @param {?} dateFormatParts\n * @param {?} inputValue\n * @param {?=} trim\n * @return {?}\n */\n DatePickerUtil.getMonthValueFromInput = /**\n * @private\n * @param {?} dateFormatParts\n * @param {?} inputValue\n * @param {?=} trim\n * @return {?}\n */\n function (dateFormatParts, inputValue, trim) {\n if (trim === void 0) { trim = true; }\n return DatePickerUtil.getDateValueFromInput(dateFormatParts, \"month\" /* Month */, inputValue, trim);\n };\n /**\n * @private\n * @param {?} dateFormatParts\n * @param {?} inputValue\n * @param {?=} trim\n * @return {?}\n */\n DatePickerUtil.getYearValueFromInput = /**\n * @private\n * @param {?} dateFormatParts\n * @param {?} inputValue\n * @param {?=} trim\n * @return {?}\n */\n function (dateFormatParts, inputValue, trim) {\n if (trim === void 0) { trim = true; }\n return DatePickerUtil.getDateValueFromInput(dateFormatParts, \"year\" /* Year */, inputValue, trim);\n };\n /**\n * @private\n * @param {?} dateFormatParts\n * @param {?} type\n * @return {?}\n */\n DatePickerUtil.getDateFormatPart = /**\n * @private\n * @param {?} dateFormatParts\n * @param {?} type\n * @return {?}\n */\n function (dateFormatParts, type) {\n /** @type {?} */\n var result = dateFormatParts.filter(function (datePart) { return (datePart.type === type); })[0];\n return result;\n };\n /**\n * @private\n * @param {?} value\n * @param {?} input\n * @return {?}\n */\n DatePickerUtil.isFullInput = /**\n * @private\n * @param {?} value\n * @param {?} input\n * @return {?}\n */\n function (value, input) {\n return (value !== '' && input.length === 2 && input.charAt(1) !== DatePickerUtil.PROMPT_CHAR);\n };\n /**\n * @private\n * @param {?} dateFormatParts\n * @param {?} value\n * @return {?}\n */\n DatePickerUtil.isFullYearInput = /**\n * @private\n * @param {?} dateFormatParts\n * @param {?} value\n * @return {?}\n */\n function (dateFormatParts, value) {\n switch (DatePickerUtil.getDateFormatPart(dateFormatParts, \"year\" /* Year */).formatType) {\n case \"numeric\" /* Numeric */: {\n return (value !== '' && value.length === 4);\n }\n case \"2-digit\" /* TwoDigits */: {\n return (value !== '' && value.length === 2);\n }\n default: {\n return false;\n }\n }\n };\n /**\n * @private\n * @param {?} dateFormatParts\n * @param {?} position\n * @return {?}\n */\n DatePickerUtil.getDatePartOnPosition = /**\n * @private\n * @param {?} dateFormatParts\n * @param {?} position\n * @return {?}\n */\n function (dateFormatParts, position) {\n /** @type {?} */\n var result = dateFormatParts.filter(function (element) {\n return element.position[0] <= position && position <= element.position[1] && element.type !== DatePickerUtil.SEPARATOR;\n })[0];\n return result;\n };\n /**\n * @private\n * @param {?} yearPart\n * @param {?} inputValue\n * @return {?}\n */\n DatePickerUtil.getFullYearFromString = /**\n * @private\n * @param {?} yearPart\n * @param {?} inputValue\n * @return {?}\n */\n function (yearPart, inputValue) {\n return parseInt(inputValue.substring(yearPart.position[0], yearPart.position[1]), 10);\n };\n /**\n * @private\n * @param {?} dateArray\n * @return {?}\n */\n DatePickerUtil.fillDatePartsPositions = /**\n * @private\n * @param {?} dateArray\n * @return {?}\n */\n function (dateArray) {\n /** @type {?} */\n var currentPos = 0;\n for (var i = 0; i < dateArray.length; i++) {\n // Day|Month part positions\n if (dateArray[i].type === \"day\" /* Day */ || dateArray[i].type === \"month\" /* Month */) {\n // Offset 2 positions for number\n dateArray[i].position = [currentPos, currentPos + 2];\n currentPos += 2;\n }\n else if (dateArray[i].type === \"year\" /* Year */) {\n // Year part positions\n switch (dateArray[i].formatType) {\n case \"numeric\" /* Numeric */: {\n // Offset 4 positions for full year\n dateArray[i].position = [currentPos, currentPos + 4];\n currentPos += 4;\n break;\n }\n case \"2-digit\" /* TwoDigits */: {\n // Offset 2 positions for short year\n dateArray[i].position = [currentPos, currentPos + 2];\n currentPos += 2;\n break;\n }\n }\n }\n else if (dateArray[i].type === DatePickerUtil.SEPARATOR) {\n // Separator positions\n dateArray[i].position = [currentPos, currentPos + 1];\n currentPos++;\n }\n }\n };\n DatePickerUtil.SHORT_DATE_MASK = 'MM/dd/yy';\n DatePickerUtil.SEPARATOR = 'literal';\n DatePickerUtil.NUMBER_OF_MONTHS = 12;\n DatePickerUtil.PROMPT_CHAR = '_';\n DatePickerUtil.DEFAULT_LOCALE = 'en';\n return DatePickerUtil;\n}());\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n/**\n * @hidden\n * @type {?}\n */\nvar IGX_DATE_PICKER_COMPONENT = 'IgxDatePickerComponentToken';\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n/**\n * @hidden\n */\nvar DatePickerDisplayValuePipe = /** @class */ (function () {\n function DatePickerDisplayValuePipe(_datePicker) {\n this._datePicker = _datePicker;\n }\n /**\n * @param {?} value\n * @param {?=} args\n * @return {?}\n */\n DatePickerDisplayValuePipe.prototype.transform = /**\n * @param {?} value\n * @param {?=} args\n * @return {?}\n */\n function (value, args) {\n if (value !== '') {\n if (value === DatePickerUtil.maskToPromptChars(this._datePicker.inputMask)) {\n return '';\n }\n this._datePicker.rawDateString = value;\n return DatePickerUtil.trimUnderlines(value);\n }\n return '';\n };\n DatePickerDisplayValuePipe.decorators = [\n { type: Pipe, args: [{\n name: 'displayValue'\n },] }\n ];\n /** @nocollapse */\n DatePickerDisplayValuePipe.ctorParameters = function () { return [\n { type: undefined, decorators: [{ type: Inject, args: [IGX_DATE_PICKER_COMPONENT,] }] }\n ]; };\n return DatePickerDisplayValuePipe;\n}());\n/**\n * @hidden\n */\nvar DatePickerInputValuePipe = /** @class */ (function () {\n function DatePickerInputValuePipe(_datePicker) {\n this._datePicker = _datePicker;\n }\n /**\n * @param {?} value\n * @param {?=} args\n * @return {?}\n */\n DatePickerInputValuePipe.prototype.transform = /**\n * @param {?} value\n * @param {?=} args\n * @return {?}\n */\n function (value, args) {\n if (this._datePicker.invalidDate !== '') {\n return this._datePicker.invalidDate;\n }\n else {\n if (this._datePicker.value === null || this._datePicker.value === undefined) {\n return DatePickerUtil.maskToPromptChars(this._datePicker.inputMask);\n }\n else {\n return DatePickerUtil.addPromptCharsEditMode(this._datePicker.dateFormatParts, this._datePicker.value, value);\n }\n }\n };\n DatePickerInputValuePipe.decorators = [\n { type: Pipe, args: [{\n name: 'inputValue'\n },] }\n ];\n /** @nocollapse */\n DatePickerInputValuePipe.ctorParameters = function () { return [\n { type: undefined, decorators: [{ type: Inject, args: [IGX_DATE_PICKER_COMPONENT,] }] }\n ]; };\n return DatePickerInputValuePipe;\n}());\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\nvar IgxDatePickerTemplateDirective = /** @class */ (function () {\n function IgxDatePickerTemplateDirective(template) {\n this.template = template;\n }\n IgxDatePickerTemplateDirective.decorators = [\n { type: Directive, args: [{\n selector: '[igxDatePickerTemplate]'\n },] }\n ];\n /** @nocollapse */\n IgxDatePickerTemplateDirective.ctorParameters = function () { return [\n { type: TemplateRef }\n ]; };\n return IgxDatePickerTemplateDirective;\n}());\n/**\n * IgxDatePickerActionsDirective can be used to re-template the dropdown/dialog action buttons.\n */\nvar IgxDatePickerActionsDirective = /** @class */ (function () {\n function IgxDatePickerActionsDirective(template) {\n this.template = template;\n }\n IgxDatePickerActionsDirective.decorators = [\n { type: Directive, args: [{\n selector: '[igxDatePickerActions]'\n },] }\n ];\n /** @nocollapse */\n IgxDatePickerActionsDirective.ctorParameters = function () { return [\n { type: TemplateRef }\n ]; };\n return IgxDatePickerActionsDirective;\n}());\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n/** @enum {string} */\nvar InteractionMode = {\n DropDown: 'dropdown',\n Dialog: 'dialog',\n};\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n/**\n * @hidden\n */\nvar IgxCalendarContainerComponent = /** @class */ (function () {\n function IgxCalendarContainerComponent() {\n this.mode = InteractionMode.Dialog;\n this.vertical = false;\n this.onClose = new EventEmitter();\n this.onTodaySelection = new EventEmitter();\n this.styleClass = 'igx-date-picker';\n }\n Object.defineProperty(IgxCalendarContainerComponent.prototype, \"dropdownCSS\", {\n get: /**\n * @return {?}\n */\n function () {\n return this.mode === InteractionMode.DropDown;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxCalendarContainerComponent.prototype, \"verticalCSS\", {\n get: /**\n * @return {?}\n */\n function () {\n return this.vertical && this.mode === InteractionMode.Dialog;\n },\n enumerable: true,\n configurable: true\n });\n /**\n * @param {?} event\n * @return {?}\n */\n IgxCalendarContainerComponent.prototype.onEscape = /**\n * @param {?} event\n * @return {?}\n */\n function (event) {\n event.preventDefault();\n this.onClose.emit();\n };\n Object.defineProperty(IgxCalendarContainerComponent.prototype, \"isReadonly\", {\n /**\n * Returns whether the date-picker is in readonly dialog mode.\n *\n * @hidden\n */\n get: /**\n * Returns whether the date-picker is in readonly dialog mode.\n *\n * @hidden\n * @return {?}\n */\n function () {\n return this.mode === InteractionMode.Dialog;\n },\n enumerable: true,\n configurable: true\n });\n /**\n * Emits close event for the calendar.\n */\n /**\n * Emits close event for the calendar.\n * @return {?}\n */\n IgxCalendarContainerComponent.prototype.closeCalendar = /**\n * Emits close event for the calendar.\n * @return {?}\n */\n function () {\n this.onClose.emit();\n };\n /**\n * Emits today selection event for the calendar.\n */\n /**\n * Emits today selection event for the calendar.\n * @return {?}\n */\n IgxCalendarContainerComponent.prototype.triggerTodaySelection = /**\n * Emits today selection event for the calendar.\n * @return {?}\n */\n function () {\n this.onTodaySelection.emit();\n };\n IgxCalendarContainerComponent.decorators = [\n { type: Component, args: [{\n selector: 'igx-calendar-container',\n template: \"\\n
\\n \\n \\n
\\n
\\n\\n\\n\",\n styles: [':host {display: block;}']\n }] }\n ];\n IgxCalendarContainerComponent.propDecorators = {\n calendar: [{ type: ViewChild, args: ['calendar', { static: true },] }],\n mode: [{ type: Input }],\n vertical: [{ type: Input }],\n cancelButtonLabel: [{ type: Input }],\n todayButtonLabel: [{ type: Input }],\n datePickerActions: [{ type: Input }],\n onClose: [{ type: Output }],\n onTodaySelection: [{ type: Output }],\n styleClass: [{ type: HostBinding, args: ['class.igx-date-picker',] }],\n dropdownCSS: [{ type: HostBinding, args: ['class.igx-date-picker--dropdown',] }],\n verticalCSS: [{ type: HostBinding, args: ['class.igx-date-picker--vertical',] }],\n onEscape: [{ type: HostListener, args: ['keydown.esc', ['$event'],] }, { type: HostListener, args: ['keydown.alt.arrowup', ['$event'],] }]\n };\n return IgxCalendarContainerComponent;\n}());\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n/** @type {?} */\nvar NEXT_ID$k = 0;\n/** @enum {string} */\nvar PredefinedFormatOptions = {\n ShortDate: 'shortDate',\n MediumDate: 'mediumDate',\n LongDate: 'longDate',\n FullDate: 'fullDate',\n};\n/** @type {?} */\nvar noop$5 = function () { };\n/**\n * **Ignite UI for Angular Date Picker** -\n * [Documentation](https://www.infragistics.com/products/ignite-ui-angular/angular/components/date_picker.html)\n *\n * The Ignite UI Date Picker displays a popup calendar that lets users select a single date.\n *\n * Example:\n * ```html\n * \n * ```\n */\nvar IgxDatePickerComponent = /** @class */ (function () {\n function IgxDatePickerComponent(_overlayService, element, _cdr, _moduleRef, _injector) {\n this._overlayService = _overlayService;\n this.element = element;\n this._cdr = _cdr;\n this._moduleRef = _moduleRef;\n this._injector = _injector;\n /**\n * An \\@Input property that sets the `IgxDatePickerComponent` label.\n * The default label is 'Date'.\n * ```html\n * \n * ```\n */\n this.label = 'Date';\n /**\n * An \\@Input property that sets the `IgxDatePickerComponent` label visibility.\n * By default the visibility is set to true.\n * \n */\n this.labelVisibility = true;\n /**\n * An \\@Input property that sets on which day the week starts.\n * ```html\n * \n * ```\n */\n this.weekStart = WEEKDAYS.SUNDAY;\n /**\n * Sets/gets the number of month views displayed.\n * Default value is `1`.\n * ```html\n * \n * ```\n * ```typescript\n * let monthViewsDisplayed = this.datePicker.monthsViewNumber;\n * ```\n */\n this.monthsViewNumber = 1;\n /**\n * An \\@Input property that sets the value of `id` attribute. If not provided it will be automatically generated.\n * ```html\n * \n * ```\n */\n this.id = \"igx-date-picker-\" + NEXT_ID$k++;\n /**\n * An \\@Input property that sets the orientation of the `IgxDatePickerComponent` header.\n * ```html\n * \n * ```\n */\n this.vertical = false;\n /**\n * An \\@Input property that sets whether `IgxDatePickerComponent` is in dialog or drop down mode.\n * ```html\n * \n * ```\n */\n this.mode = InteractionMode.Dialog;\n /**\n * An \\@Input property that sets whether the `IgxDatePickerComponent` date parts would spin continuously or stop when min/max is reached.\n * ```html\n * \n * ```\n */\n this.isSpinLoop = true;\n /**\n * An event that is emitted when the `IgxDatePickerComponent` calendar is opened.\n */\n this.onOpened = new EventEmitter();\n /**\n * An event that is emitted after the `IgxDatePickerComponent` is closed.\n */\n this.onClosed = new EventEmitter();\n /**\n * An event that is emitted when the `IgxDatePickerComponent` is being closed.\n */\n this.onClosing = new EventEmitter();\n /**\n * An \\@Output property that is fired when selection is made in the calendar.\n * ```typescript\n * public selection(event){\n * alert(\"A date has been selected!\");\n * }\n * ```\n * ```html\n * \n * ```\n */\n this.onSelection = new EventEmitter();\n /**\n * An \\@Output property that is fired when date picker value is changed.\n * ```typescript\n * public valueChanged(event){\n * alert(\"Date picker value is changed\");\n * }\n * ```\n * ```html\n * \n * ```\n */\n this.valueChange = new EventEmitter();\n /**\n * An \\@Output property that fires when the user types/spins to a disabled date in the date-picker editor.\n * ```typescript\n * public onDisabledDate(event){\n * alert(\"This date is disabled!\");\n * }\n * ```\n * ```html\n * \n * ```\n */\n this.onDisabledDate = new EventEmitter();\n /**\n * An \\@Output property that fires when the user types/spins invalid date in the date-picker editor.\n * ```typescript\n * public onValidationFailed(event){\n * alert(\"This date is not valid!\");\n * }\n * ```\n * ```html\n * \n * ```\n */\n this.onValidationFailed = new EventEmitter();\n this.hasHeader = true;\n this.collapsed = true;\n this.displayValuePipe = new DatePickerDisplayValuePipe(this);\n this.inputValuePipe = new DatePickerInputValuePipe(this);\n this.dateFormatParts = [];\n this.isEmpty = true;\n this.invalidDate = '';\n this.spinDelta = 1;\n this.defaultLocale = 'en';\n this._formatOptions = {\n day: 'numeric',\n month: 'short',\n weekday: 'short',\n year: 'numeric'\n };\n this._formatViews = {\n day: false,\n month: true,\n year: false\n };\n this._destroy$ = new Subject();\n this._disabledDates = null;\n this._specialDates = null;\n this._onOpen = new EventEmitter();\n this._onClose = new EventEmitter();\n this._ngControl = null;\n //#region ControlValueAccessor\n this._onChangeCallback = noop$5;\n this._onTouchedCallback = noop$5;\n }\n Object.defineProperty(IgxDatePickerComponent.prototype, \"formatOptions\", {\n /**\n *Returns the format options of the `IgxDatePickerComponent`.\n *```typescript\n *@ViewChild(\"MyDatePicker\")\n *public datePicker: IgxDatePickerComponent;\n *ngAfterViewInit(){\n * let formatOptions = this.datePicker.formatOptions;\n *}\n *```\n */\n get: /**\n * Returns the format options of the `IgxDatePickerComponent`.\n * ```typescript\n * \\@ViewChild(\"MyDatePicker\")\n * public datePicker: IgxDatePickerComponent;\n * ngAfterViewInit(){\n * let formatOptions = this.datePicker.formatOptions;\n * }\n * ```\n * @return {?}\n */\n function () {\n return this._formatOptions;\n },\n /**\n *Sets the format options of the `IgxDatePickerComponent`.\n *```typescript\n *public Options;\n *@ViewChild(\"MyDatePicker\")\n *public datePicker: IgxDatePickerComponent;\n *ngAfterViewInit(){\n * this.Options = {\n * day: \"numeric\",\n * month: \"long\",\n * weekday: \"long\",\n * year: \"numeric\"\n * }\n *this.datePicker.formatOptions = this.Options;\n *}\n *```\n */\n set: /**\n * Sets the format options of the `IgxDatePickerComponent`.\n * ```typescript\n * public Options;\n * \\@ViewChild(\"MyDatePicker\")\n * public datePicker: IgxDatePickerComponent;\n * ngAfterViewInit(){\n * this.Options = {\n * day: \"numeric\",\n * month: \"long\",\n * weekday: \"long\",\n * year: \"numeric\"\n * }\n * this.datePicker.formatOptions = this.Options;\n * }\n * ```\n * @param {?} formatOptions\n * @return {?}\n */\n function (formatOptions) {\n this._formatOptions = Object.assign(this._formatOptions, formatOptions);\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxDatePickerComponent.prototype, \"format\", {\n /**\n *Returns the date display format of the `IgxDatePickerComponent` in dropdown mode.\n *```typescript\n *@ViewChild(\"MyDatePicker\")\n *public datePicker: IgxDatePickerComponent;\n *ngAfterViewInit(){\n * let format = this.datePicker.format;\n *}\n *```\n */\n get: /**\n * Returns the date display format of the `IgxDatePickerComponent` in dropdown mode.\n * ```typescript\n * \\@ViewChild(\"MyDatePicker\")\n * public datePicker: IgxDatePickerComponent;\n * ngAfterViewInit(){\n * let format = this.datePicker.format;\n * }\n * ```\n * @return {?}\n */\n function () {\n return (this._format === undefined) ? PredefinedFormatOptions.ShortDate : this._format;\n },\n /**\n *Sets the date format of the `IgxDatePickerComponent` when in editable dropdown mode.\n *```typescript\n *@ViewChild(\"MyDatePicker\")\n *public datePicker: IgxDatePickerComponent;\n *this.datePicker.format = 'yyyy-M-d';\n *}\n *```\n */\n set: /**\n * Sets the date format of the `IgxDatePickerComponent` when in editable dropdown mode.\n * ```typescript\n * \\@ViewChild(\"MyDatePicker\")\n * public datePicker: IgxDatePickerComponent;\n * this.datePicker.format = 'yyyy-M-d';\n * }\n * ```\n * @param {?} format\n * @return {?}\n */\n function (format) {\n this._format = format;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxDatePickerComponent.prototype, \"formatViews\", {\n /**\n *Returns the format views of the `IgxDatePickerComponent`.\n *```typescript\n *@ViewChild(\"MyDatePicker\")\n *public datePicker: IgxDatePickerComponent;\n *ngAfterViewInit(){\n * let formatViews = this.datePicker.formatViews;\n *}\n *```\n */\n get: /**\n * Returns the format views of the `IgxDatePickerComponent`.\n * ```typescript\n * \\@ViewChild(\"MyDatePicker\")\n * public datePicker: IgxDatePickerComponent;\n * ngAfterViewInit(){\n * let formatViews = this.datePicker.formatViews;\n * }\n * ```\n * @return {?}\n */\n function () {\n return this._formatViews;\n },\n /**\n *Sets the format views of the `IgxDatePickerComponent`.\n *```typescript\n *public Views;\n *@ViewChild(\"MyDatePicker\")\n *public datePicker: IgxDatePickerComponent;\n *ngAfterViewInit(){\n * this.Views = {day:false, month: false, year:false};\n * this.datePicker.formatViews = this.Views;\n *}\n *```\n */\n set: /**\n * Sets the format views of the `IgxDatePickerComponent`.\n * ```typescript\n * public Views;\n * \\@ViewChild(\"MyDatePicker\")\n * public datePicker: IgxDatePickerComponent;\n * ngAfterViewInit(){\n * this.Views = {day:false, month: false, year:false};\n * this.datePicker.formatViews = this.Views;\n * }\n * ```\n * @param {?} formatViews\n * @return {?}\n */\n function (formatViews) {\n this._formatViews = Object.assign(this._formatViews, formatViews);\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxDatePickerComponent.prototype, \"disabledDates\", {\n /**\n * Gets the disabled dates descriptors.\n * ```typescript\n * let disabledDates = this.datepicker.disabledDates;\n * ```\n */\n get: /**\n * Gets the disabled dates descriptors.\n * ```typescript\n * let disabledDates = this.datepicker.disabledDates;\n * ```\n * @return {?}\n */\n function () {\n return this._disabledDates;\n },\n /**\n * Sets the disabled dates' descriptors.\n * ```typescript\n *@ViewChild(\"MyDatePicker\")\n *public datePicker: IgxDatePickerComponent;\n *ngAfterViewInit(){\n * this.datePicker.disabledDates = [\n * {type: DateRangeType.Between, dateRange: [new Date(\"2020-1-1\"), new Date(\"2020-1-15\")]},\n * {type: DateRangeType.Weekends}];\n *}\n *```\n */\n set: /**\n * Sets the disabled dates' descriptors.\n * ```typescript\n * \\@ViewChild(\"MyDatePicker\")\n * public datePicker: IgxDatePickerComponent;\n * ngAfterViewInit(){\n * this.datePicker.disabledDates = [\n * {type: DateRangeType.Between, dateRange: [new Date(\"2020-1-1\"), new Date(\"2020-1-15\")]},\n * {type: DateRangeType.Weekends}];\n * }\n * ```\n * @param {?} value\n * @return {?}\n */\n function (value) {\n this._disabledDates = value;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxDatePickerComponent.prototype, \"specialDates\", {\n /**\n * Gets the special dates descriptors.\n * ```typescript\n * let specialDates = this.datepicker.specialDates;\n * ```\n */\n get: /**\n * Gets the special dates descriptors.\n * ```typescript\n * let specialDates = this.datepicker.specialDates;\n * ```\n * @return {?}\n */\n function () {\n return this._specialDates;\n },\n /**\n * Sets the special dates' descriptors.\n * ```typescript\n *@ViewChild(\"MyDatePicker\")\n *public datePicker: IgxDatePickerComponent;\n *ngAfterViewInit(){\n * this.datePicker.specialDates = [\n * {type: DateRangeType.Between, dateRange: [new Date(\"2020-1-1\"), new Date(\"2020-1-15\")]},\n * {type: DateRangeType.Weekends}];\n *}\n *```\n */\n set: /**\n * Sets the special dates' descriptors.\n * ```typescript\n * \\@ViewChild(\"MyDatePicker\")\n * public datePicker: IgxDatePickerComponent;\n * ngAfterViewInit(){\n * this.datePicker.specialDates = [\n * {type: DateRangeType.Between, dateRange: [new Date(\"2020-1-1\"), new Date(\"2020-1-15\")]},\n * {type: DateRangeType.Weekends}];\n * }\n * ```\n * @param {?} value\n * @return {?}\n */\n function (value) {\n this._specialDates = value;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxDatePickerComponent.prototype, \"modalOverlaySettings\", {\n get: /**\n * @return {?}\n */\n function () {\n return this._modalOverlay;\n },\n set: /**\n * @param {?} value\n * @return {?}\n */\n function (value) {\n this._modalOverlay = value;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxDatePickerComponent.prototype, \"dropDownOverlaySettings\", {\n get: /**\n * @return {?}\n */\n function () {\n return this._dropDownOverlaySettings || this._defaultDropDownOverlaySettings;\n },\n set: /**\n * @param {?} value\n * @return {?}\n */\n function (value) {\n this._dropDownOverlaySettings = value;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxDatePickerComponent.prototype, \"displayData\", {\n /**\n *Returns the formatted date when `IgxDatePickerComponent` is in dialog mode.\n *```typescript\n *@ViewChild(\"MyDatePicker\")\n *public datePicker: IgxDatePickerComponent;\n *public selection(event){\n * let selectedDate = this.datePicker.displayData;\n * alert(selectedDate);\n *}\n *```\n *```html\n *\n *```\n */\n get: /**\n * Returns the formatted date when `IgxDatePickerComponent` is in dialog mode.\n * ```typescript\n * \\@ViewChild(\"MyDatePicker\")\n * public datePicker: IgxDatePickerComponent;\n * public selection(event){\n * let selectedDate = this.datePicker.displayData;\n * alert(selectedDate);\n * }\n * ```\n * ```html\n * \n * ```\n * @return {?}\n */\n function () {\n if (this.value) {\n return this._customFormatChecker(this.formatter, this.value);\n }\n return '';\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxDatePickerComponent.prototype, \"transformedDate\", {\n /**\n hidden\n */\n get: /**\n * hidden\n * @return {?}\n */\n function () {\n if (this._value) {\n this._transformedDate = (this._isInEditMode) ? this._getEditorDate(this._value) : this._getDisplayDate(this._value);\n this.isEmpty = false;\n }\n else {\n this._transformedDate = (this._isInEditMode) ? DatePickerUtil.maskToPromptChars(this.inputMask) : '';\n }\n return this._transformedDate;\n },\n set: /**\n * @param {?} value\n * @return {?}\n */\n function (value) {\n this._transformedDate = value;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxDatePickerComponent.prototype, \"template\", {\n /**\n * Gets the input group template.\n * ```typescript\n * let template = this.template();\n * ```\n * @memberof IgxDatePickerComponent\n */\n get: /**\n * Gets the input group template.\n * ```typescript\n * let template = this.template();\n * ```\n * \\@memberof IgxDatePickerComponent\n * @return {?}\n */\n function () {\n if (this.datePickerTemplateDirective) {\n return this.datePickerTemplateDirective.template;\n }\n return (this.mode === InteractionMode.Dialog) ? this.readOnlyDatePickerTemplate : this.editableDatePickerTemplate;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxDatePickerComponent.prototype, \"context\", {\n /**\n * Gets the context passed to the input group template.\n * @memberof IgxDatePickerComponent\n */\n get: /**\n * Gets the context passed to the input group template.\n * \\@memberof IgxDatePickerComponent\n * @return {?}\n */\n function () {\n var _this = this;\n return {\n disabled: this.disabled,\n disabledDates: this.disabledDates,\n displayData: this.displayData,\n format: this.format,\n isSpinLoop: this.isSpinLoop,\n label: this.label,\n labelVisibility: this.labelVisibility,\n locale: this.locale,\n mask: this.mask,\n mode: this.mode,\n specialDates: this.specialDates,\n value: this.value,\n openDialog: function (target) { return _this.openDialog(target); }\n };\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxDatePickerComponent.prototype, \"required\", {\n get: /**\n * @private\n * @return {?}\n */\n function () {\n if (this._ngControl && this._ngControl.control && this._ngControl.control.validator) {\n // Run the validation with empty object to check if required is enabled.\n /** @type {?} */\n var error = this._ngControl.control.validator((/** @type {?} */ ({})));\n return error && error.required;\n }\n return false;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxDatePickerComponent.prototype, \"value\", {\n /**\n *An @Input property that gets/sets the selected date.\n *```typescript\n *public date: Date = new Date();\n *```\n *```html\n *\n *```\n */\n get: /**\n * An \\@Input property that gets/sets the selected date.\n * ```typescript\n * public date: Date = new Date();\n * ```\n * ```html\n * \n * ```\n * @return {?}\n */\n function () {\n return this._value;\n },\n set: /**\n * @param {?} date\n * @return {?}\n */\n function (date) {\n this._value = date;\n this._onChangeCallback(date);\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxDatePickerComponent.prototype, \"onOpen\", {\n /**\n * @deprecated Use 'onOpened' instead.\n *An event that is emitted when the `IgxDatePickerComponent` calendar is opened.\n *```typescript\n *public open(event){\n * alert(\"The date-picker calendar has been opened!\");\n *}\n *```\n *```html\n *\n *```\n */\n get: /**\n * @deprecated Use 'onOpened' instead.\n * An event that is emitted when the `IgxDatePickerComponent` calendar is opened.\n * ```typescript\n * public open(event){\n * alert(\"The date-picker calendar has been opened!\");\n * }\n * ```\n * ```html\n * \n * ```\n * @return {?}\n */\n function () {\n return this._onOpen;\n },\n set: /**\n * @param {?} val\n * @return {?}\n */\n function (val) {\n this._onOpen = val;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxDatePickerComponent.prototype, \"onClose\", {\n /**\n * @deprecated Use 'onClosed' instead.\n *\"An event that is emitted when the `IgxDatePickerComponent` is closed.\n *```typescript\n *public close(event){\n * alert(\"The date-picker has been closed!\");\n *}\n *```\n *```html\n *\n *```\n */\n get: /**\n * @deprecated Use 'onClosed' instead.\n * \"An event that is emitted when the `IgxDatePickerComponent` is closed.\n * ```typescript\n * public close(event){\n * alert(\"The date-picker has been closed!\");\n * }\n * ```\n * ```html\n * \n * ```\n * @return {?}\n */\n function () {\n return this._onClose;\n },\n set: /**\n * @param {?} val\n * @return {?}\n */\n function (val) {\n this._onClose = val;\n },\n enumerable: true,\n configurable: true\n });\n /** @hidden @internal */\n /**\n * @hidden \\@internal\n * @param {?} value\n * @return {?}\n */\n IgxDatePickerComponent.prototype.writeValue = /**\n * @hidden \\@internal\n * @param {?} value\n * @return {?}\n */\n function (value) {\n this._value = value;\n // TODO: do we need next call\n this._cdr.markForCheck();\n };\n /** @hidden @internal */\n /**\n * @hidden \\@internal\n * @param {?} fn\n * @return {?}\n */\n IgxDatePickerComponent.prototype.registerOnChange = /**\n * @hidden \\@internal\n * @param {?} fn\n * @return {?}\n */\n function (fn) { this._onChangeCallback = fn; };\n /** @hidden @internal */\n /**\n * @hidden \\@internal\n * @param {?} fn\n * @return {?}\n */\n IgxDatePickerComponent.prototype.registerOnTouched = /**\n * @hidden \\@internal\n * @param {?} fn\n * @return {?}\n */\n function (fn) { this._onTouchedCallback = fn; };\n /** @hidden @internal */\n /**\n * @hidden \\@internal\n * @param {?} isDisabled\n * @return {?}\n */\n IgxDatePickerComponent.prototype.setDisabledState = /**\n * @hidden \\@internal\n * @param {?} isDisabled\n * @return {?}\n */\n function (isDisabled) { this.disabled = isDisabled; };\n //#endregion\n /**\n * @hidden\n */\n //#endregion\n /**\n * @hidden\n * @param {?} event\n * @return {?}\n */\n IgxDatePickerComponent.prototype.onSpaceClick = \n //#endregion\n /**\n * @hidden\n * @param {?} event\n * @return {?}\n */\n function (event) {\n this.openDialog(this.getInputGroupElement());\n event.preventDefault();\n };\n /** @hidden */\n /**\n * @hidden\n * @return {?}\n */\n IgxDatePickerComponent.prototype.getEditElement = /**\n * @hidden\n * @return {?}\n */\n function () {\n /** @type {?} */\n var inputDirectiveElementRef = this._inputElementRef || this._inputUserTemplateElementRef;\n return (inputDirectiveElementRef) ? inputDirectiveElementRef.nativeElement : null;\n };\n /** @hidden */\n /**\n * @hidden\n * @return {?}\n */\n IgxDatePickerComponent.prototype.getInputGroupElement = /**\n * @hidden\n * @return {?}\n */\n function () {\n return this.inputGroup ? this.inputGroup.element.nativeElement : null;\n };\n /**\n *@hidden\n */\n /**\n * @hidden\n * @return {?}\n */\n IgxDatePickerComponent.prototype.ngOnInit = /**\n * @hidden\n * @return {?}\n */\n function () {\n var _this = this;\n this._positionSettings = {\n openAnimation: fadeIn,\n closeAnimation: fadeOut\n };\n this._defaultDropDownOverlaySettings = {\n closeOnOutsideClick: true,\n modal: false,\n scrollStrategy: new AbsoluteScrollStrategy(),\n positionStrategy: new AutoPositionStrategy(this._positionSettings),\n outlet: this.outlet\n };\n this._modalOverlaySettings = {\n closeOnOutsideClick: true,\n modal: true,\n outlet: this.outlet\n };\n this._overlayService.onOpening.pipe(filter(function (overlay) { return overlay.id === _this._componentID; }), takeUntil(this._destroy$)).subscribe(function (eventArgs) {\n _this._onOpening(eventArgs);\n });\n this._overlayService.onOpened.pipe(filter(function (overlay) { return overlay.id === _this._componentID; }), takeUntil(this._destroy$)).subscribe(function () {\n _this._onOpened();\n });\n this._overlayService.onClosed.pipe(filter(function (overlay) { return overlay.id === _this._componentID; }), takeUntil(this._destroy$)).subscribe(function () {\n _this._onClosed();\n });\n this._overlayService.onClosing.pipe(filter(function (overlay) { return overlay.id === _this._componentID; }), takeUntil(this._destroy$)).subscribe(function (event) {\n _this.onClosing.emit(event);\n // If canceled in a user onClosing handler\n if (event.cancel) {\n return;\n }\n // Do not focus the input if clicking outside in dropdown mode\n /** @type {?} */\n var input = _this.getEditElement();\n if (input && !(event.event && _this.mode === InteractionMode.DropDown)) {\n input.focus();\n }\n else {\n // outside click\n _this._updateValidityOnBlur();\n }\n });\n if (this.mode === InteractionMode.DropDown) {\n this.dateFormatParts = DatePickerUtil.parseDateFormat(this.mask, this.locale);\n if (this.mask === undefined) {\n this.mask = DatePickerUtil.getMask(this.dateFormatParts);\n }\n this.inputMask = DatePickerUtil.getInputMask(this.dateFormatParts);\n }\n this._ngControl = this._injector.get((/** @type {?} */ (NgControl)), null);\n };\n /**\n *@hidden @internal\n */\n /**\n * @hidden \\@internal\n * @return {?}\n */\n IgxDatePickerComponent.prototype.ngAfterViewInit = /**\n * @hidden \\@internal\n * @return {?}\n */\n function () {\n var _this = this;\n if (this.mode === InteractionMode.DropDown && this._inputElementRef) {\n fromEvent(this._inputElementRef.nativeElement, 'keydown').pipe(throttle(function () { return interval(0, animationFrameScheduler); }), takeUntil(this._destroy$)).subscribe(function (res) { return _this.onKeyDown(res); });\n }\n if (this._ngControl) {\n this._statusChanges$ = this._ngControl.statusChanges.subscribe(this.onStatusChanged.bind(this));\n }\n };\n /**\n * @return {?}\n */\n IgxDatePickerComponent.prototype.ngAfterViewChecked = /**\n * @return {?}\n */\n function () {\n // if one sets mode at run time this forces initialization of new igxInputGroup\n // As a result a new igxInputDirective is initialized too. In ngAfterViewInit of\n // the new directive isRequired of the igxInputGroup is set again. However\n // ngAfterViewInit of date picker is not called again and we may finish with wrong\n // isRequired in igxInputGroup. This is why we should set it her, only when needed\n if (this.inputGroup && this.inputGroup.isRequired !== this.required) {\n this.inputGroup.isRequired = this.required;\n this._cdr.detectChanges();\n }\n };\n /**\n * @protected\n * @return {?}\n */\n IgxDatePickerComponent.prototype.onStatusChanged = /**\n * @protected\n * @return {?}\n */\n function () {\n if ((this._ngControl.control.touched || this._ngControl.control.dirty) &&\n (this._ngControl.control.validator || this._ngControl.control.asyncValidator)) {\n if (this.inputGroup.isFocused) {\n this._inputDirective.valid = this._ngControl.valid ? IgxInputState.VALID : IgxInputState.INVALID;\n }\n else {\n this._inputDirective.valid = this._ngControl.valid ? IgxInputState.INITIAL : IgxInputState.INVALID;\n }\n }\n if (this.inputGroup && this.inputGroup.isRequired !== this.required) {\n this.inputGroup.isRequired = this.required;\n }\n };\n /**\n *@hidden\n */\n /**\n * @hidden\n * @return {?}\n */\n IgxDatePickerComponent.prototype.ngOnDestroy = /**\n * @hidden\n * @return {?}\n */\n function () {\n if (this._componentID) {\n this._overlayService.hide(this._componentID);\n }\n this._destroy$.next(true);\n this._destroy$.complete();\n };\n /**\n *Selects today's date from calendar and change the input field value, @calendar.viewDate and @calendar.value.\n *```typescript\n *@ViewChild(\"MyDatePicker\")\n *public datePicker: IgxDatePickerComponent;\n *ngAfterViewInit(){\n *this.datePicker.triggerTodaySelection();\n *}\n *```\n *@memberOf {@link IgxDatePickerComponent}\n */\n /**\n * Selects today's date from calendar and change the input field value, \\@calendar.viewDate and \\@calendar.value.\n * ```typescript\n * \\@ViewChild(\"MyDatePicker\")\n * public datePicker: IgxDatePickerComponent;\n * ngAfterViewInit(){\n * this.datePicker.triggerTodaySelection();\n * }\n * ```\n * \\@memberOf {\\@link IgxDatePickerComponent}\n * @return {?}\n */\n IgxDatePickerComponent.prototype.triggerTodaySelection = /**\n * Selects today's date from calendar and change the input field value, \\@calendar.viewDate and \\@calendar.value.\n * ```typescript\n * \\@ViewChild(\"MyDatePicker\")\n * public datePicker: IgxDatePickerComponent;\n * ngAfterViewInit(){\n * this.datePicker.triggerTodaySelection();\n * }\n * ```\n * \\@memberOf {\\@link IgxDatePickerComponent}\n * @return {?}\n */\n function () {\n /** @type {?} */\n var today = new Date(Date.now());\n this.handleSelection(today);\n };\n /**\n * Change the calendar selection and calling this method will emit the @calendar.onSelection event,\n * which will fire @handleSelection method.\n *```typescript\n *@ViewChild(\"MyDatePicker\")\n *public datePicker: IgxDatePickerComponent;\n *ngAfterViewInit(){\n *this.datePicker.selectDate(this.date);\n *}\n * ```\n * @param date passed date that has to be set to the calendar.\n * @memberOf {@link IgxDatePickerComponent}\n */\n /**\n * Change the calendar selection and calling this method will emit the \\@calendar.onSelection event,\n * which will fire \\@handleSelection method.\n * ```typescript\n * \\@ViewChild(\"MyDatePicker\")\n * public datePicker: IgxDatePickerComponent;\n * ngAfterViewInit(){\n * this.datePicker.selectDate(this.date);\n * }\n * ```\n * \\@memberOf {\\@link IgxDatePickerComponent}\n * @param {?} date passed date that has to be set to the calendar.\n * @return {?}\n */\n IgxDatePickerComponent.prototype.selectDate = /**\n * Change the calendar selection and calling this method will emit the \\@calendar.onSelection event,\n * which will fire \\@handleSelection method.\n * ```typescript\n * \\@ViewChild(\"MyDatePicker\")\n * public datePicker: IgxDatePickerComponent;\n * ngAfterViewInit(){\n * this.datePicker.selectDate(this.date);\n * }\n * ```\n * \\@memberOf {\\@link IgxDatePickerComponent}\n * @param {?} date passed date that has to be set to the calendar.\n * @return {?}\n */\n function (date) {\n /** @type {?} */\n var oldValue = this.value;\n this.value = date;\n this.emitValueChangeEvent(oldValue, this.value);\n this.onSelection.emit(date);\n };\n /**\n * Deselects the calendar date.\n *```typescript\n *@ViewChild(\"MyDatePicker\")\n *public datePicker: IgxDatePickerComponent;\n *ngAfterViewInit(){\n *this.datePicker.deselectDate();\n *}\n * ```\n * @memberOf {@link IgxDatePickerComponent}\n */\n /**\n * Deselects the calendar date.\n * ```typescript\n * \\@ViewChild(\"MyDatePicker\")\n * public datePicker: IgxDatePickerComponent;\n * ngAfterViewInit(){\n * this.datePicker.deselectDate();\n * }\n * ```\n * \\@memberOf {\\@link IgxDatePickerComponent}\n * @return {?}\n */\n IgxDatePickerComponent.prototype.deselectDate = /**\n * Deselects the calendar date.\n * ```typescript\n * \\@ViewChild(\"MyDatePicker\")\n * public datePicker: IgxDatePickerComponent;\n * ngAfterViewInit(){\n * this.datePicker.deselectDate();\n * }\n * ```\n * \\@memberOf {\\@link IgxDatePickerComponent}\n * @return {?}\n */\n function () {\n /** @type {?} */\n var oldValue = this.value;\n this.value = null;\n this.emitValueChangeEvent(oldValue, this.value);\n if (this.calendar) {\n this.calendar.deselectDate();\n }\n };\n /**\n * Opens the date picker drop down or dialog.\n * @param target HTMLElement - the target element to use for positioning the drop down container according to\n * ```html\n * \n * \n * \n * \n * \n * alarm\n * \n * \n * \n * \n * ```\n */\n /**\n * Opens the date picker drop down or dialog.\n * @param {?=} target HTMLElement - the target element to use for positioning the drop down container according to\n * ```html\n * \n * \n * \n * \n * \n * alarm\n * \n * \n * \n * \n * ```\n * @return {?}\n */\n IgxDatePickerComponent.prototype.openDialog = /**\n * Opens the date picker drop down or dialog.\n * @param {?=} target HTMLElement - the target element to use for positioning the drop down container according to\n * ```html\n * \n * \n * \n * \n * \n * alarm\n * \n * \n * \n * \n * ```\n * @return {?}\n */\n function (target) {\n if (!this.collapsed) {\n return;\n }\n switch (this.mode) {\n case InteractionMode.Dialog: {\n this.hasHeader = true;\n /** @type {?} */\n var modalOverlay = (this.modalOverlaySettings !== undefined) ? this._modalOverlay : this._modalOverlaySettings;\n this._componentID = this._overlayService.attach(IgxCalendarContainerComponent, modalOverlay, this._moduleRef);\n this._overlayService.show(this._componentID);\n break;\n }\n case InteractionMode.DropDown: {\n this.hasHeader = false;\n if (target) {\n this.dropDownOverlaySettings.positionStrategy.settings.target = target;\n }\n this._componentID = this._overlayService.attach(IgxCalendarContainerComponent, this.dropDownOverlaySettings, this._moduleRef);\n this._overlayService.show(this._componentID);\n break;\n }\n }\n };\n /**\n * @param {?} e\n * @return {?}\n */\n IgxDatePickerComponent.prototype.mouseDown = /**\n * @param {?} e\n * @return {?}\n */\n function (e) {\n // if the click is not on the input but in input group\n // e.g. on prefix or sufix, prevent default and this way prevent blur\n if (e.target !== this.getEditElement()) {\n e.preventDefault();\n }\n };\n /**\n * Close the calendar.\n *\n * @hidden\n */\n /**\n * Close the calendar.\n *\n * @hidden\n * @return {?}\n */\n IgxDatePickerComponent.prototype.closeCalendar = /**\n * Close the calendar.\n *\n * @hidden\n * @return {?}\n */\n function () {\n this._overlayService.hide(this._componentID);\n };\n /**\n * Clear the input field, date picker value and calendar selection.\n *\n * @hidden\n */\n /**\n * Clear the input field, date picker value and calendar selection.\n *\n * @hidden\n * @return {?}\n */\n IgxDatePickerComponent.prototype.clear = /**\n * Clear the input field, date picker value and calendar selection.\n *\n * @hidden\n * @return {?}\n */\n function () {\n this.isEmpty = true;\n this.invalidDate = '';\n this.deselectDate();\n this._setCursorPosition(0);\n };\n /**\n * Evaluates when @calendar.onSelection event was fired\n * and update the input value.\n *\n * @param event selected value from calendar.\n *\n * @hidden\n */\n /**\n * Evaluates when \\@calendar.onSelection event was fired\n * and update the input value.\n *\n * @hidden\n * @param {?} date\n * @return {?}\n */\n IgxDatePickerComponent.prototype.handleSelection = /**\n * Evaluates when \\@calendar.onSelection event was fired\n * and update the input value.\n *\n * @hidden\n * @param {?} date\n * @return {?}\n */\n function (date) {\n if (this.value) {\n date.setHours(this.value.getHours());\n date.setMinutes(this.value.getMinutes());\n date.setSeconds(this.value.getSeconds());\n date.setMilliseconds(this.value.getMilliseconds());\n }\n /** @type {?} */\n var oldValue = this.value;\n this.value = date;\n this.emitValueChangeEvent(oldValue, this.value);\n this.calendar.viewDate = date;\n this.closeCalendar();\n this.onSelection.emit(date);\n };\n /**\n * Evaluates when the input blur event was fired\n * and re-calculate the date picker value.\n *\n * @param event\n *\n * @hidden\n */\n /**\n * Evaluates when the input blur event was fired\n * and re-calculate the date picker value.\n *\n * @hidden\n * @param {?} event\n *\n * @return {?}\n */\n IgxDatePickerComponent.prototype.onBlur = /**\n * Evaluates when the input blur event was fired\n * and re-calculate the date picker value.\n *\n * @hidden\n * @param {?} event\n *\n * @return {?}\n */\n function (event) {\n this._isInEditMode = false;\n if (this.mode === InteractionMode.DropDown) {\n this.calculateDate(event.target.value, event.type);\n }\n if (this.collapsed) {\n this._updateValidityOnBlur();\n }\n };\n /**\n * Evaluates when the input focus event was fired\n * and re-calculate the editor text.\n *\n * @param event\n * @hidden\n */\n /**\n * Evaluates when the input focus event was fired\n * and re-calculate the editor text.\n *\n * @hidden\n * @return {?}\n */\n IgxDatePickerComponent.prototype.onFocus = /**\n * Evaluates when the input focus event was fired\n * and re-calculate the editor text.\n *\n * @hidden\n * @return {?}\n */\n function () {\n this._isInEditMode = true;\n if (this.value && this.invalidDate === '') {\n this._transformedDate = this._getEditorDate(this.value);\n }\n };\n /**\n * Evaluates when the keydown event was fired for up/down keys\n * to provide spinning of date parts.\n *\n * @param event\n *\n * @hidden\n */\n /**\n * Evaluates when the keydown event was fired for up/down keys\n * to provide spinning of date parts.\n *\n * @hidden\n * @param {?} event\n *\n * @return {?}\n */\n IgxDatePickerComponent.prototype.onKeyDown = /**\n * Evaluates when the keydown event was fired for up/down keys\n * to provide spinning of date parts.\n *\n * @hidden\n * @param {?} event\n *\n * @return {?}\n */\n function (event) {\n switch (event.key) {\n case \"ArrowUp\" /* UP_ARROW */:\n case \"Up\" /* UP_ARROW_IE */:\n event.preventDefault();\n event.stopPropagation();\n this.spinValue(event.target.value, 1, event.type);\n break;\n case \"ArrowDown\" /* DOWN_ARROW */:\n case \"Down\" /* DOWN_ARROW_IE */:\n if (event.altKey) {\n this.openDialog(this.getInputGroupElement());\n }\n else {\n event.preventDefault();\n event.stopPropagation();\n this.spinValue(event.target.value, -1, event.type);\n }\n break;\n default:\n break;\n }\n };\n /**\n * Evaluates when the mouse wheel event was fired\n * to provide spinning of date parts.\n *\n * @param event\n *\n * @hidden\n */\n /**\n * Evaluates when the mouse wheel event was fired\n * to provide spinning of date parts.\n *\n * @hidden\n * @param {?} event\n *\n * @return {?}\n */\n IgxDatePickerComponent.prototype.onWheel = /**\n * Evaluates when the mouse wheel event was fired\n * to provide spinning of date parts.\n *\n * @hidden\n * @param {?} event\n *\n * @return {?}\n */\n function (event) {\n if (this._isInEditMode) {\n event.preventDefault();\n event.stopPropagation();\n /** @type {?} */\n var sign = (event.deltaY > 0) ? -1 : 1;\n this.spinValue(event.target.value, sign, event.type);\n }\n };\n /**\n * Evaluates when input event was fired in editor.\n *\n * @param event\n *\n * @hidden\n */\n /**\n * Evaluates when input event was fired in editor.\n *\n * @hidden\n * @param {?} event\n *\n * @return {?}\n */\n IgxDatePickerComponent.prototype.onInput = /**\n * Evaluates when input event was fired in editor.\n *\n * @hidden\n * @param {?} event\n *\n * @return {?}\n */\n function (event) {\n var _this = this;\n /** @type {?} */\n var targetValue = event.target.value;\n /** @type {?} */\n var cursorPosition = this._getCursorPosition();\n /** @type {?} */\n var checkInput = DatePickerUtil.checkForCompleteDateInput(this.dateFormatParts, targetValue);\n this._isInEditMode = true;\n if (targetValue !== DatePickerUtil.maskToPromptChars(this.inputMask)) {\n this.isEmpty = false;\n }\n // If all date parts are completed, change the date-picker value, stay in edit mode\n if (checkInput === 'complete' && event.inputType !== 'deleteContentBackward') {\n this._transformedDate = targetValue;\n this.calculateDate(targetValue, event.type);\n this._setCursorPosition(cursorPosition);\n }\n else if (checkInput === 'partial') {\n // While editing, if one date part is deleted, date-picker value is set to null, the remaining input stays intact.\n this.deselectDate();\n requestAnimationFrame(function () {\n _this.getEditElement().value = targetValue;\n _this._setCursorPosition(cursorPosition);\n });\n }\n else if (checkInput === 'empty') {\n // Total clean-up as input is deleted.\n this.isEmpty = true;\n this.deselectDate();\n }\n };\n /**\n * @private\n * @param {?} oldValue\n * @param {?} newValue\n * @return {?}\n */\n IgxDatePickerComponent.prototype.emitValueChangeEvent = /**\n * @private\n * @param {?} oldValue\n * @param {?} newValue\n * @return {?}\n */\n function (oldValue, newValue) {\n if (!isEqual(oldValue, newValue)) {\n this.valueChange.emit(newValue);\n }\n };\n /**\n * @private\n * @param {?} dateString\n * @param {?} invokedByEvent\n * @return {?}\n */\n IgxDatePickerComponent.prototype.calculateDate = /**\n * @private\n * @param {?} dateString\n * @param {?} invokedByEvent\n * @return {?}\n */\n function (dateString, invokedByEvent) {\n if (dateString !== '') {\n /** @type {?} */\n var prevDateValue = this.value;\n /** @type {?} */\n var inputValue = (invokedByEvent === 'blur') ? this.rawDateString : dateString;\n /** @type {?} */\n var newDateArray = DatePickerUtil.parseDateArray(this.dateFormatParts, prevDateValue, inputValue);\n if (newDateArray.state === \"valid\" /* Valid */) {\n /** @type {?} */\n var newValue = newDateArray.date;\n // Restore the time part if any\n if (prevDateValue) {\n newValue.setHours(prevDateValue.getHours());\n newValue.setMinutes(prevDateValue.getMinutes());\n newValue.setSeconds(prevDateValue.getSeconds());\n newValue.setMilliseconds(prevDateValue.getMilliseconds());\n }\n if (this.disabledDates === null\n || (this.disabledDates !== null && !isDateInRanges(newValue, this.disabledDates))) {\n /** @type {?} */\n var oldValue = this.value;\n this.value = newValue;\n this.emitValueChangeEvent(oldValue, this.value);\n this.invalidDate = '';\n }\n else {\n /** @type {?} */\n var args = {\n datePicker: this,\n currentValue: newValue,\n };\n this.onDisabledDate.emit(args);\n }\n }\n else {\n /** @type {?} */\n var args = {\n datePicker: this,\n prevValue: prevDateValue\n };\n this.invalidDate = dateString;\n this.onValidationFailed.emit(args);\n }\n }\n };\n /**\n * @private\n * @param {?} inputValue\n * @param {?} sign\n * @param {?} eventType\n * @return {?}\n */\n IgxDatePickerComponent.prototype.spinValue = /**\n * @private\n * @param {?} inputValue\n * @param {?} sign\n * @param {?} eventType\n * @return {?}\n */\n function (inputValue, sign, eventType) {\n this._isInEditMode = true;\n this.isEmpty = false;\n /** @type {?} */\n var cursorPosition = this._getCursorPosition();\n /** @type {?} */\n var modifiedInputValue = DatePickerUtil.getModifiedDateInput(this.dateFormatParts, inputValue, cursorPosition, this.spinDelta * sign, this.isSpinLoop);\n this.getEditElement().value = modifiedInputValue;\n this._setCursorPosition(cursorPosition);\n /** @type {?} */\n var checkInput = DatePickerUtil.checkForCompleteDateInput(this.dateFormatParts, modifiedInputValue);\n if (checkInput === 'complete') {\n this._isInEditMode = true;\n this.calculateDate(modifiedInputValue, eventType);\n this._setCursorPosition(cursorPosition);\n }\n };\n /**\n * @private\n * @param {?} event\n * @return {?}\n */\n IgxDatePickerComponent.prototype._onOpening = /**\n * @private\n * @param {?} event\n * @return {?}\n */\n function (event) {\n this._initializeCalendarContainer((/** @type {?} */ (event.componentRef.instance)));\n this.collapsed = false;\n };\n /**\n * @private\n * @return {?}\n */\n IgxDatePickerComponent.prototype._onOpened = /**\n * @private\n * @return {?}\n */\n function () {\n this.onOpened.emit(this);\n // TODO: remove this line after deprecating 'onOpen'\n this._onOpen.emit(this);\n if (this.calendar) {\n this._focusCalendarDate();\n }\n };\n /**\n * @private\n * @return {?}\n */\n IgxDatePickerComponent.prototype._onClosed = /**\n * @private\n * @return {?}\n */\n function () {\n this.collapsed = true;\n this._componentID = null;\n this.onClosed.emit(this);\n };\n /**\n * @private\n * @param {?} componentInstance\n * @return {?}\n */\n IgxDatePickerComponent.prototype._initializeCalendarContainer = /**\n * @private\n * @param {?} componentInstance\n * @return {?}\n */\n function (componentInstance) {\n var _this = this;\n this.calendar = componentInstance.calendar;\n /** @type {?} */\n var isVertical = (this.vertical && this.mode === InteractionMode.Dialog);\n this.calendar.hasHeader = this.hasHeader;\n this.calendar.formatOptions = this.formatOptions;\n this.calendar.formatViews = this.formatViews;\n this.calendar.locale = this.locale;\n this.calendar.vertical = isVertical;\n this.calendar.weekStart = this.weekStart;\n this.calendar.specialDates = this.specialDates;\n this.calendar.disabledDates = this.disabledDates;\n this.calendar.headerTemplate = this.headerTemplate;\n this.calendar.subheaderTemplate = this.subheaderTemplate;\n this.calendar.hideOutsideDays = this.hideOutsideDays;\n this.calendar.monthsViewNumber = this.monthsViewNumber;\n this.calendar.onSelection.pipe(takeUntil(this._destroy$)).subscribe(function (ev) { return _this.handleSelection(ev); });\n if (this.value) {\n this.calendar.value = this.value;\n this.calendar.viewDate = this.value;\n }\n componentInstance.mode = this.mode;\n componentInstance.vertical = isVertical;\n componentInstance.cancelButtonLabel = this.cancelButtonLabel;\n componentInstance.todayButtonLabel = this.todayButtonLabel;\n componentInstance.datePickerActions = this.datePickerActionsDirective;\n componentInstance.onClose.pipe(takeUntil(this._destroy$)).subscribe(function () { return _this.closeCalendar(); });\n componentInstance.onTodaySelection.pipe(takeUntil(this._destroy$)).subscribe(function () { return _this.triggerTodaySelection(); });\n };\n // Focus a date, after the calendar appearance into DOM.\n // Focus a date, after the calendar appearance into DOM.\n /**\n * @private\n * @return {?}\n */\n IgxDatePickerComponent.prototype._focusCalendarDate = \n // Focus a date, after the calendar appearance into DOM.\n /**\n * @private\n * @return {?}\n */\n function () {\n var _this = this;\n requestAnimationFrame(function () {\n _this.calendar.daysView.focusActiveDate();\n });\n };\n /**\n * @private\n * @param {?} value\n * @return {?}\n */\n IgxDatePickerComponent.prototype._setLocaleToDate = /**\n * @private\n * @param {?} value\n * @return {?}\n */\n function (value) {\n if (isIE()) {\n // this is a workaround fixing the following IE11 issue:\n // IE11 has added character code 8206 (mark for RTL) to the output of toLocaleDateString() that\n // precedes each portion that comprises the total date... For more information read this article:\n // tslint:disable-next-line: max-line-length\n // https://www.csgpro.com/blog/2016/08/a-bad-date-with-internet-explorer-11-trouble-with-new-unicode-characters-in-javascript-date-strings/\n /** @type {?} */\n var localeDateStrIE = new Date(value.getFullYear(), value.getMonth(), value.getDate(), value.getHours(), value.getMinutes(), value.getSeconds(), value.getMilliseconds());\n return localeDateStrIE.toLocaleDateString(this.locale);\n }\n return value.toLocaleDateString(this.locale);\n };\n /**\n * @private\n * @return {?}\n */\n IgxDatePickerComponent.prototype._getCursorPosition = /**\n * @private\n * @return {?}\n */\n function () {\n return this.getEditElement().selectionStart;\n };\n /**\n * @private\n * @param {?} start\n * @param {?=} end\n * @return {?}\n */\n IgxDatePickerComponent.prototype._setCursorPosition = /**\n * @private\n * @param {?} start\n * @param {?=} end\n * @return {?}\n */\n function (start, end) {\n var _this = this;\n if (end === void 0) { end = start; }\n requestAnimationFrame(function () {\n _this.getEditElement().setSelectionRange(start, end);\n });\n };\n /**\n * Apply custom user formatter upon date.\n * @param formatter custom formatter function.\n * @param date passed date\n */\n /**\n * Apply custom user formatter upon date.\n * @private\n * @param {?} formatter custom formatter function.\n * @param {?} date passed date\n * @return {?}\n */\n IgxDatePickerComponent.prototype._customFormatChecker = /**\n * Apply custom user formatter upon date.\n * @private\n * @param {?} formatter custom formatter function.\n * @param {?} date passed date\n * @return {?}\n */\n function (formatter, date) {\n return this.formatter ? this.formatter(date) : this._setLocaleToDate(date);\n };\n /*\n * Transforms the date according to the specified format when `IgxDatePickerComponent` is in edit mode\n * using @angular/common formatDate method: https://angular.io/api/common/formatDate\n * @param value: string | number | Date\n * @returns formatted string\n */\n /*\n * Transforms the date according to the specified format when `IgxDatePickerComponent` is in edit mode\n * using @angular/common formatDate method: https://angular.io/api/common/formatDate\n * @param value: string | number | Date\n * @returns formatted string\n */\n /**\n * @private\n * @param {?} value\n * @return {?}\n */\n IgxDatePickerComponent.prototype._getDisplayDate = /*\n * Transforms the date according to the specified format when `IgxDatePickerComponent` is in edit mode\n * using @angular/common formatDate method: https://angular.io/api/common/formatDate\n * @param value: string | number | Date\n * @returns formatted string\n */\n /**\n * @private\n * @param {?} value\n * @return {?}\n */\n function (value) {\n if (this.format && !this.formatter) {\n /** @type {?} */\n var locale = this.locale || this.defaultLocale;\n return formatDate(value, this.format, locale);\n }\n else {\n return this._customFormatChecker(this.formatter, value);\n }\n };\n /**\n * @private\n * @param {?} value\n * @return {?}\n */\n IgxDatePickerComponent.prototype._getEditorDate = /**\n * @private\n * @param {?} value\n * @return {?}\n */\n function (value) {\n /** @type {?} */\n var locale = this.locale || this.defaultLocale;\n /** @type {?} */\n var changedValue = (value) ? formatDate(value, this.mask, locale) : '';\n return DatePickerUtil.addPromptCharsEditMode(this.dateFormatParts, this.value, changedValue);\n };\n /**\n * @return {?}\n */\n IgxDatePickerComponent.prototype._updateValidityOnBlur = /**\n * @return {?}\n */\n function () {\n this._onTouchedCallback();\n /** @type {?} */\n var input = this._inputDirective || this._inputDirectiveUserTemplate;\n if (input && this._ngControl && !this._ngControl.valid) {\n input.valid = IgxInputState.INVALID;\n }\n else {\n input.valid = IgxInputState.INITIAL;\n }\n };\n IgxDatePickerComponent.decorators = [\n { type: Component, args: [{\n providers: [{\n provide: NG_VALUE_ACCESSOR,\n useExisting: IgxDatePickerComponent,\n multi: true\n }],\n // tslint:disable-next-line:component-selector\n selector: 'igx-date-picker',\n template: \"\\n \\n \\n today\\n \\n \\n \\n \\n\\n\\n\\n \\n \\n today\\n \\n \\n \\n \\n clear\\n \\n \\n\\n\\n\\n\",\n styles: [\"\\n :host {\\n display: block;\\n }\\n \"]\n }] }\n ];\n /** @nocollapse */\n IgxDatePickerComponent.ctorParameters = function () { return [\n { type: IgxOverlayService, decorators: [{ type: Inject, args: [IgxOverlayService,] }] },\n { type: ElementRef },\n { type: ChangeDetectorRef },\n { type: NgModuleRef },\n { type: Injector }\n ]; };\n IgxDatePickerComponent.propDecorators = {\n label: [{ type: Input }],\n labelVisibility: [{ type: Input }],\n locale: [{ type: Input }],\n weekStart: [{ type: Input }],\n formatOptions: [{ type: Input }],\n hideOutsideDays: [{ type: Input }],\n monthsViewNumber: [{ type: Input }],\n format: [{ type: Input }],\n mask: [{ type: Input }],\n formatViews: [{ type: Input }],\n disabledDates: [{ type: Input }],\n specialDates: [{ type: Input }],\n modalOverlaySettings: [{ type: Input }],\n dropDownOverlaySettings: [{ type: Input }],\n value: [{ type: Input }],\n id: [{ type: HostBinding, args: ['attr.id',] }, { type: Input }],\n formatter: [{ type: Input }],\n disabled: [{ type: Input }],\n vertical: [{ type: Input }],\n todayButtonLabel: [{ type: Input }],\n cancelButtonLabel: [{ type: Input }],\n mode: [{ type: Input }],\n isSpinLoop: [{ type: Input }],\n outlet: [{ type: Input }],\n onOpen: [{ type: Output }],\n onOpened: [{ type: Output }],\n onClose: [{ type: Output }],\n onClosed: [{ type: Output }],\n onClosing: [{ type: Output }],\n onSelection: [{ type: Output }],\n valueChange: [{ type: Output }],\n onDisabledDate: [{ type: Output }],\n onValidationFailed: [{ type: Output }],\n readOnlyDatePickerTemplate: [{ type: ViewChild, args: ['readOnlyDatePickerTemplate', { read: TemplateRef, static: true },] }],\n editableDatePickerTemplate: [{ type: ViewChild, args: ['editableDatePickerTemplate', { read: TemplateRef, static: true },] }],\n inputGroup: [{ type: ViewChild, args: [IgxInputGroupComponent, { static: false },] }],\n _inputElementRef: [{ type: ViewChild, args: [IgxInputDirective, { read: ElementRef, static: false },] }],\n _inputUserTemplateElementRef: [{ type: ContentChild, args: [IgxInputDirective, { read: ElementRef, static: false },] }],\n _inputDirective: [{ type: ViewChild, args: [IgxInputDirective, { static: false },] }],\n _inputDirectiveUserTemplate: [{ type: ContentChild, args: [IgxInputDirective, { static: false },] }],\n datePickerTemplateDirective: [{ type: ContentChild, args: [IgxDatePickerTemplateDirective, { read: IgxDatePickerTemplateDirective, static: false },] }],\n headerTemplate: [{ type: ContentChild, args: [IgxCalendarHeaderTemplateDirective, { read: IgxCalendarHeaderTemplateDirective, static: false },] }],\n subheaderTemplate: [{ type: ContentChild, args: [IgxCalendarSubheaderTemplateDirective, { read: IgxCalendarSubheaderTemplateDirective, static: false },] }],\n datePickerActionsDirective: [{ type: ContentChild, args: [IgxDatePickerActionsDirective, { read: IgxDatePickerActionsDirective, static: false },] }],\n onSpaceClick: [{ type: HostListener, args: ['keydown.spacebar', ['$event'],] }, { type: HostListener, args: ['keydown.space', ['$event'],] }]\n };\n __decorate([\n DeprecateProperty(\"'onOpen' @Output property is deprecated. Use 'onOpened' instead.\"),\n __metadata(\"design:type\", EventEmitter),\n __metadata(\"design:paramtypes\", [EventEmitter])\n ], IgxDatePickerComponent.prototype, \"onOpen\", null);\n __decorate([\n DeprecateProperty(\"'onClose' @Output property is deprecated. Use 'onClosed' instead.\"),\n __metadata(\"design:type\", EventEmitter),\n __metadata(\"design:paramtypes\", [EventEmitter])\n ], IgxDatePickerComponent.prototype, \"onClose\", null);\n return IgxDatePickerComponent;\n}());\n/**\n * @hidden\n */\nvar IgxDatePickerModule = /** @class */ (function () {\n function IgxDatePickerModule() {\n }\n IgxDatePickerModule.decorators = [\n { type: NgModule, args: [{\n declarations: [IgxDatePickerComponent, IgxCalendarContainerComponent, IgxDatePickerActionsDirective,\n IgxDatePickerTemplateDirective, DatePickerDisplayValuePipe, DatePickerInputValuePipe],\n exports: [IgxDatePickerComponent, IgxDatePickerTemplateDirective, IgxDatePickerActionsDirective,\n DatePickerDisplayValuePipe, DatePickerInputValuePipe],\n imports: [CommonModule, IgxIconModule, IgxInputGroupModule, IgxCalendarModule, IgxButtonModule,\n IgxRippleModule, IgxMaskModule, IgxTextSelectionModule],\n entryComponents: [IgxCalendarContainerComponent]\n },] }\n ];\n return IgxDatePickerModule;\n}());\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n/**\n * @hidden\n */\nvar IgxDialogTitleDirective = /** @class */ (function () {\n function IgxDialogTitleDirective() {\n this.defaultStyle = true;\n }\n IgxDialogTitleDirective.decorators = [\n { type: Directive, args: [{\n selector: 'igx-dialog-title,[igxDialogTitle]'\n },] }\n ];\n IgxDialogTitleDirective.propDecorators = {\n defaultStyle: [{ type: HostBinding, args: ['class.igx-dialog__window-title',] }]\n };\n return IgxDialogTitleDirective;\n}());\n/**\n * @hidden\n */\nvar IgxDialogActionsDirective = /** @class */ (function () {\n function IgxDialogActionsDirective() {\n this.defaultClass = true;\n }\n IgxDialogActionsDirective.decorators = [\n { type: Directive, args: [{\n selector: 'igx-dialog-actions,[igxDialogActions]'\n },] }\n ];\n IgxDialogActionsDirective.propDecorators = {\n defaultClass: [{ type: HostBinding, args: ['class.igx-dialog__window-actions',] }]\n };\n return IgxDialogActionsDirective;\n}());\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n/** @type {?} */\nvar DIALOG_ID = 0;\n/**\n * **Ignite UI for Angular Dialog Window** -\n * [Documentation](https://www.infragistics.com/products/ignite-ui-angular/angular/components/dialog.html)\n *\n * The Ignite UI Dialog Window presents a dialog window to the user which can simply display messages or display\n * more complicated visuals such as a user sign-in form. It also provides a right and left button\n * which can be used for custom actions.\n *\n * Example:\n * ```html\n * \n * \n *
\n * \n * \n *
\n *
\n * \n * \n *
\n *
\n * ```\n */\nvar IgxDialogComponent = /** @class */ (function () {\n function IgxDialogComponent(elementRef, navService) {\n this.elementRef = elementRef;\n this.navService = navService;\n /**\n * An \\@Input property that sets the value of the `id` attribute. If not provided it will be automatically generated.\n * ```html\n * \n * ```\n */\n this.id = \"igx-dialog-\" + DIALOG_ID++;\n /**\n * An \\@Input property controlling the `title` of the dialog.\n * ```html\n * \n * ```\n */\n this.title = '';\n /**\n * An \\@Input property controlling the `message` of the dialog.\n * ```html\n * \n * ```\n */\n this.message = '';\n /**\n * An \\@Input property to set the `label` of the left button of the dialog.\n * ```html\n * \n * ```\n */\n this.leftButtonLabel = '';\n /**\n * An \\@Input property to set the left button `type`. The types are `flat`, `raised` and `fab`.\n * The `flat` type button is a rectangle and doesn't have a shadow.
\n * The `raised` type button is also a rectangle but has a shadow.
\n * The `fab` type button is a circle with a shadow.
\n * The default value is `flat`.\n * ```html\n * \n * ```\n */\n this.leftButtonType = 'flat';\n /**\n * An \\@Input property to set the left button color. The property accepts all valid CSS color property values.\n * ```html\n * \n * ```\n */\n this.leftButtonColor = '';\n /**\n * An \\@Input property to set the left button `background-color`. The property accepts all valid CSS color property values.\n * ```html\n * \n * ```\n */\n this.leftButtonBackgroundColor = '';\n /**\n * An \\@Input property to set the left button `ripple`. The `ripple` animates a click/tap to a component as a series of fading waves.\n * The property accepts all valid CSS color property values.\n * ```html\n * \n * ```\n */\n this.leftButtonRipple = '';\n /**\n * An \\@Input property to set the `label` of the right button of the dialog.\n * ```html\n * \n * ```\n */\n this.rightButtonLabel = '';\n /**\n * An \\@Input property to set the right button `type`. The types are `flat`, `raised` and `fab`.\n * The `flat` type button is a rectangle and doesn't have a shadow.
\n * The `raised` type button is also a rectangle but has a shadow.
\n * The `fab` type button is a circle with a shadow.
\n * The default value is `flat`.\n * ```html\n * \n * ```\n */\n this.rightButtonType = 'flat';\n /**\n * An \\@Input property to set the right button `color`. The property accepts all valid CSS color property values.\n * ```html\n * \n * ```\n */\n this.rightButtonColor = '';\n /**\n * An \\@Input property to set the right button `background-color`. The property accepts all valid CSS color property values.\n * ```html\n * \n * ```\n */\n this.rightButtonBackgroundColor = '';\n /**\n * An \\@Input property to set the right button `ripple`.\n * ```html\n * \n * ```\n */\n this.rightButtonRipple = '';\n /**\n * An event that is emitted when the dialog is opened.\n * ```html\n * \n * \n * ```\n */\n this.onOpen = new EventEmitter();\n /**\n * An event that is emitted when the dialog is closed.\n * ```html\n * \n * \n * ```\n */\n this.onClose = new EventEmitter();\n /**\n * An event that is emitted when the left button is clicked.\n * ```html\n * \n * \n * ```\n */\n this.onLeftButtonSelect = new EventEmitter();\n /**\n * An event that is emitted when the right button is clicked.\n * ```html\n * \n * \n * ```\n */\n this.onRightButtonSelect = new EventEmitter();\n this._positionSettings = {\n openAnimation: useAnimation(slideInBottom, { params: { fromPosition: 'translateY(100%)' } }),\n closeAnimation: useAnimation(slideOutTop, { params: { toPosition: 'translateY(-100%)' } })\n };\n this._closeOnOutsideSelect = false;\n this._isModal = true;\n this.destroy$ = new Subject();\n /**\n * The default `tabindex` attribute for the component\n *\n * @hidden\n */\n this.tabindex = -1;\n this._titleId = IgxDialogComponent.NEXT_ID++ + '_title';\n this._overlayDefaultSettings = {\n positionStrategy: new GlobalPositionStrategy(this._positionSettings),\n scrollStrategy: new NoOpScrollStrategy(),\n modal: this.isModal,\n closeOnOutsideClick: this.closeOnOutsideSelect\n };\n }\n Object.defineProperty(IgxDialogComponent.prototype, \"isModal\", {\n get: /**\n * @return {?}\n */\n function () {\n return this._isModal;\n },\n set: /**\n * @param {?} val\n * @return {?}\n */\n function (val) {\n this._overlayDefaultSettings.modal = val;\n this._isModal = val;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxDialogComponent.prototype, \"closeOnOutsideSelect\", {\n /**\n * An @Input property that allows you to enable the \"close on click outside the dialog\". By default it's disabled.\n *```html\n *\n *\n *```\n */\n get: /**\n * An \\@Input property that allows you to enable the \"close on click outside the dialog\". By default it's disabled.\n * ```html\n * \n * \n * ```\n * @return {?}\n */\n function () {\n return this._closeOnOutsideSelect;\n },\n set: /**\n * @param {?} val\n * @return {?}\n */\n function (val) {\n this._overlayDefaultSettings.closeOnOutsideClick = val;\n this._closeOnOutsideSelect = val;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxDialogComponent.prototype, \"positionSettings\", {\n /**\n * Get the position and animation settings used by the dialog.\n * ```typescript\n * @ViewChild('alert', { static: true }) public alert: IgxDialogComponent;\n * let currentPosition: PositionSettings = this.alert.positionSettings\n * ```\n */\n get: /**\n * Get the position and animation settings used by the dialog.\n * ```typescript\n * \\@ViewChild('alert', { static: true }) public alert: IgxDialogComponent;\n * let currentPosition: PositionSettings = this.alert.positionSettings\n * ```\n * @return {?}\n */\n function () {\n return this._positionSettings;\n },\n /**\n * Set the position and animation settings used by the dialog.\n * ```typescript\n * import { slideInLeft, slideOutRight } from 'igniteui-angular';\n * ...\n * @ViewChild('alert', { static: true }) public alert: IgxDialogComponent;\n * public newPositionSettings: PositionSettings = {\n * openAnimation: useAnimation(slideInTop, { params: { duration: '2000ms' } }),\n * closeAnimation: useAnimation(slideOutBottom, { params: { duration: '2000ms'} }),\n * horizontalDirection: HorizontalAlignment.Left,\n * verticalDirection: VerticalAlignment.Middle,\n * horizontalStartPoint: HorizontalAlignment.Left,\n * verticalStartPoint: VerticalAlignment.Middle,\n * minSize: { height: 100, width: 100 }\n * };\n * this.alert.positionSettings = this.newPositionSettings;\n * ```\n */\n set: /**\n * Set the position and animation settings used by the dialog.\n * ```typescript\n * import { slideInLeft, slideOutRight } from 'igniteui-angular';\n * ...\n * \\@ViewChild('alert', { static: true }) public alert: IgxDialogComponent;\n * public newPositionSettings: PositionSettings = {\n * openAnimation: useAnimation(slideInTop, { params: { duration: '2000ms' } }),\n * closeAnimation: useAnimation(slideOutBottom, { params: { duration: '2000ms'} }),\n * horizontalDirection: HorizontalAlignment.Left,\n * verticalDirection: VerticalAlignment.Middle,\n * horizontalStartPoint: HorizontalAlignment.Left,\n * verticalStartPoint: VerticalAlignment.Middle,\n * minSize: { height: 100, width: 100 }\n * };\n * this.alert.positionSettings = this.newPositionSettings;\n * ```\n * @param {?} settings\n * @return {?}\n */\n function (settings) {\n this._positionSettings = settings;\n this._overlayDefaultSettings.positionStrategy = new GlobalPositionStrategy(this._positionSettings);\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxDialogComponent.prototype, \"element\", {\n /**\n * @hidden\n */\n get: /**\n * @hidden\n * @return {?}\n */\n function () {\n return this.elementRef.nativeElement;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxDialogComponent.prototype, \"state\", {\n /**\n * Returns the value of state. Possible state values are \"open\" or \"close\".\n *```typescript\n *@ViewChild(\"MyDialog\")\n *public dialog: IgxDialogComponent;\n *ngAfterViewInit() {\n * let dialogState = this.dialog.state;\n *}\n *```\n */\n get: /**\n * Returns the value of state. Possible state values are \"open\" or \"close\".\n * ```typescript\n * \\@ViewChild(\"MyDialog\")\n * public dialog: IgxDialogComponent;\n * ngAfterViewInit() {\n * let dialogState = this.dialog.state;\n * }\n * ```\n * @return {?}\n */\n function () {\n return this.isOpen ? 'open' : 'close';\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxDialogComponent.prototype, \"isOpen\", {\n /**\n * Returns whether the dialog is visible to the end user.\n *```typescript\n *@ViewChild(\"MyDialog\")\n *public dialog: IgxDialogComponent;\n *ngAfterViewInit() {\n * let dialogOpen = this.dialog.isOpen;\n *}\n * ```\n */\n get: /**\n * Returns whether the dialog is visible to the end user.\n * ```typescript\n * \\@ViewChild(\"MyDialog\")\n * public dialog: IgxDialogComponent;\n * ngAfterViewInit() {\n * let dialogOpen = this.dialog.isOpen;\n * }\n * ```\n * @return {?}\n */\n function () {\n return !this.toggleRef.collapsed;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxDialogComponent.prototype, \"isCollapsed\", {\n get: /**\n * @return {?}\n */\n function () {\n return this.toggleRef.collapsed;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxDialogComponent.prototype, \"role\", {\n /**\n *Returns the value of the role of the dialog. The valid values are `dialog`, `alertdialog`, `alert`.\n *```typescript\n *@ViewChild(\"MyDialog\")\n *public dialog: IgxDialogComponent;\n *ngAfterViewInit() {\n * let dialogRole = this.dialog.role;\n *}\n * ```\n */\n get: /**\n * Returns the value of the role of the dialog. The valid values are `dialog`, `alertdialog`, `alert`.\n * ```typescript\n * \\@ViewChild(\"MyDialog\")\n * public dialog: IgxDialogComponent;\n * ngAfterViewInit() {\n * let dialogRole = this.dialog.role;\n * }\n * ```\n * @return {?}\n */\n function () {\n if (this.leftButtonLabel !== '' && this.rightButtonLabel !== '') {\n return 'dialog';\n }\n else if (this.leftButtonLabel !== '' ||\n this.rightButtonLabel !== '') {\n return 'alertdialog';\n }\n else {\n return 'alert';\n }\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxDialogComponent.prototype, \"titleId\", {\n /**\n *Returns the value of the title id.\n *```typescript\n *@ViewChild(\"MyDialog\")\n *public dialog: IgxDialogComponent;\n *ngAfterViewInit() {\n * let dialogTitle = this.dialog.titleId;\n *}\n * ```\n */\n get: /**\n * Returns the value of the title id.\n * ```typescript\n * \\@ViewChild(\"MyDialog\")\n * public dialog: IgxDialogComponent;\n * ngAfterViewInit() {\n * let dialogTitle = this.dialog.titleId;\n * }\n * ```\n * @return {?}\n */\n function () {\n return this._titleId;\n },\n enumerable: true,\n configurable: true\n });\n /**\n * @return {?}\n */\n IgxDialogComponent.prototype.ngAfterContentInit = /**\n * @return {?}\n */\n function () {\n var _this = this;\n this.toggleRef.onClosing.pipe(takeUntil(this.destroy$)).subscribe(function () { return _this.emitCloseFromDialog(); });\n };\n /**\n * @private\n * @return {?}\n */\n IgxDialogComponent.prototype.emitCloseFromDialog = /**\n * @private\n * @return {?}\n */\n function () {\n this.onClose.emit({ dialog: this, event: null });\n };\n /**\n * A method that opens the dialog.\n * @memberOf {@link IgxDialogComponent}\n *```html\n *\n *\n *```\n */\n /**\n * A method that opens the dialog.\n * \\@memberOf {\\@link IgxDialogComponent}\n * ```html\n * \n * \n * ```\n * @param {?=} overlaySettings\n * @return {?}\n */\n IgxDialogComponent.prototype.open = /**\n * A method that opens the dialog.\n * \\@memberOf {\\@link IgxDialogComponent}\n * ```html\n * \n * \n * ```\n * @param {?=} overlaySettings\n * @return {?}\n */\n function (overlaySettings) {\n if (overlaySettings === void 0) { overlaySettings = this._overlayDefaultSettings; }\n this.toggleRef.open(overlaySettings);\n this.onOpen.emit({ dialog: this, event: null });\n if (!this.leftButtonLabel && !this.rightButtonLabel) {\n this.toggleRef.element.focus();\n }\n };\n /**\n *A method that that closes the dialog.\n *@memberOf {@link IgxDialogComponent}\n *```html\n *\n *\n *```\n */\n /**\n * A method that that closes the dialog.\n * \\@memberOf {\\@link IgxDialogComponent}\n * ```html\n * \n * \n * ```\n * @return {?}\n */\n IgxDialogComponent.prototype.close = /**\n * A method that that closes the dialog.\n * \\@memberOf {\\@link IgxDialogComponent}\n * ```html\n * \n * \n * ```\n * @return {?}\n */\n function () {\n // `onClose` will emit from `toggleRef.onClosing` subscription\n this.toggleRef.close();\n };\n /**\n * A method that opens/closes the dialog.\n *@memberOf {@link IgxDialogComponent}\n *```html\n *\n *\n *```\n */\n /**\n * A method that opens/closes the dialog.\n * \\@memberOf {\\@link IgxDialogComponent}\n * ```html\n * \n * \n * ```\n * @return {?}\n */\n IgxDialogComponent.prototype.toggle = /**\n * A method that opens/closes the dialog.\n * \\@memberOf {\\@link IgxDialogComponent}\n * ```html\n * \n * \n * ```\n * @return {?}\n */\n function () {\n this.isOpen ? this.close() : this.open();\n };\n /**\n * @hidden\n */\n /**\n * @hidden\n * @param {?} event\n * @return {?}\n */\n IgxDialogComponent.prototype.onDialogSelected = /**\n * @hidden\n * @param {?} event\n * @return {?}\n */\n function (event) {\n event.stopPropagation();\n if (this.isOpen &&\n this.closeOnOutsideSelect &&\n event.target.classList.contains(IgxDialogComponent.DIALOG_CLASS)) {\n this.close();\n }\n };\n /**\n * @hidden\n */\n /**\n * @hidden\n * @param {?} event\n * @return {?}\n */\n IgxDialogComponent.prototype.onInternalLeftButtonSelect = /**\n * @hidden\n * @param {?} event\n * @return {?}\n */\n function (event) {\n this.onLeftButtonSelect.emit({ dialog: this, event: event });\n };\n /**\n * @hidden\n */\n /**\n * @hidden\n * @param {?} event\n * @return {?}\n */\n IgxDialogComponent.prototype.onInternalRightButtonSelect = /**\n * @hidden\n * @param {?} event\n * @return {?}\n */\n function (event) {\n this.onRightButtonSelect.emit({ dialog: this, event: event });\n };\n /**\n * @hidden\n */\n /**\n * @hidden\n * @return {?}\n */\n IgxDialogComponent.prototype.ngOnInit = /**\n * @hidden\n * @return {?}\n */\n function () {\n if (this.navService && this.id) {\n this.navService.add(this.id, this);\n }\n };\n /**\n * @hidden\n */\n /**\n * @hidden\n * @return {?}\n */\n IgxDialogComponent.prototype.ngOnDestroy = /**\n * @hidden\n * @return {?}\n */\n function () {\n if (this.navService && this.id) {\n this.navService.remove(this.id);\n }\n };\n IgxDialogComponent.NEXT_ID = 1;\n IgxDialogComponent.DIALOG_CLASS = 'igx-dialog';\n IgxDialogComponent.decorators = [\n { type: Component, args: [{\n selector: 'igx-dialog',\n template: \"
\\n
\\n\\n
\\n {{ title }}\\n
\\n \\n\\n
{{ message }}
\\n \\n\\n
\\n \\n \\n
\\n \\n\\n
\\n
\\n\"\n }] }\n ];\n /** @nocollapse */\n IgxDialogComponent.ctorParameters = function () { return [\n { type: ElementRef },\n { type: IgxNavigationService, decorators: [{ type: Optional }] }\n ]; };\n IgxDialogComponent.propDecorators = {\n toggleRef: [{ type: ViewChild, args: [IgxToggleDirective, { static: true },] }],\n id: [{ type: HostBinding, args: ['attr.id',] }, { type: Input }],\n isModal: [{ type: Input }],\n title: [{ type: Input }],\n message: [{ type: Input }],\n leftButtonLabel: [{ type: Input }],\n leftButtonType: [{ type: Input }],\n leftButtonColor: [{ type: Input }],\n leftButtonBackgroundColor: [{ type: Input }],\n leftButtonRipple: [{ type: Input }],\n rightButtonLabel: [{ type: Input }],\n rightButtonType: [{ type: Input }],\n rightButtonColor: [{ type: Input }],\n rightButtonBackgroundColor: [{ type: Input }],\n rightButtonRipple: [{ type: Input }],\n closeOnOutsideSelect: [{ type: Input }],\n positionSettings: [{ type: Input }],\n onOpen: [{ type: Output }],\n onClose: [{ type: Output }],\n onLeftButtonSelect: [{ type: Output }],\n onRightButtonSelect: [{ type: Output }],\n tabindex: [{ type: HostBinding, args: ['attr.tabindex',] }],\n isOpen: [{ type: Input }],\n isCollapsed: [{ type: HostBinding, args: ['class.igx-dialog--hidden',] }],\n role: [{ type: Input }],\n titleId: [{ type: Input }]\n };\n return IgxDialogComponent;\n}());\n/**\n * @hidden\n */\nvar IgxDialogModule = /** @class */ (function () {\n function IgxDialogModule() {\n }\n IgxDialogModule.decorators = [\n { type: NgModule, args: [{\n declarations: [IgxDialogComponent, IgxDialogTitleDirective, IgxDialogActionsDirective],\n exports: [IgxDialogComponent, IgxDialogTitleDirective, IgxDialogActionsDirective],\n imports: [CommonModule, IgxToggleModule, IgxButtonModule, IgxRippleModule, IgxFocusModule]\n },] }\n ];\n return IgxDialogModule;\n}());\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n// TODO: Refactor - export in a separate file\nvar \n// TODO: Refactor - export in a separate file\nIgxRow = /** @class */ (function () {\n function IgxRow(id, index, data) {\n this.id = id;\n this.index = index;\n this.data = data;\n }\n /**\n * @return {?}\n */\n IgxRow.prototype.createEditEventArgs = /**\n * @return {?}\n */\n function () {\n return {\n rowID: this.id,\n oldValue: __assign({}, this.data),\n newValue: this.newData,\n cancel: false\n };\n };\n return IgxRow;\n}());\nvar IgxCell = /** @class */ (function () {\n function IgxCell(id, rowIndex, column, value, editValue, rowData) {\n this.id = id;\n this.rowIndex = rowIndex;\n this.column = column;\n this.value = value;\n this.editValue = editValue;\n this.rowData = rowData;\n }\n /**\n * @param {?} value\n * @return {?}\n */\n IgxCell.prototype.castToNumber = /**\n * @param {?} value\n * @return {?}\n */\n function (value) {\n if (this.column.dataType === 'number' && !this.column.inlineEditorTemplate) {\n /** @type {?} */\n var v = parseFloat(value);\n return !isNaN(v) && isFinite(v) ? v : 0;\n }\n return value;\n };\n /**\n * @return {?}\n */\n IgxCell.prototype.createEditEventArgs = /**\n * @return {?}\n */\n function () {\n return {\n rowID: this.id.rowID,\n cellID: this.id,\n oldValue: this.value,\n newValue: this.editValue,\n cancel: false\n };\n };\n return IgxCell;\n}());\nvar IgxGridCRUDService = /** @class */ (function () {\n function IgxGridCRUDService() {\n this.cell = null;\n this.row = null;\n }\n /**\n * @param {?} cell\n * @return {?}\n */\n IgxGridCRUDService.prototype.createCell = /**\n * @param {?} cell\n * @return {?}\n */\n function (cell) {\n return new IgxCell(cell.cellID, cell.rowIndex, cell.column, cell.value, cell.value, cell.row.rowData);\n };\n /**\n * @param {?} cell\n * @return {?}\n */\n IgxGridCRUDService.prototype.createRow = /**\n * @param {?} cell\n * @return {?}\n */\n function (cell) {\n return new IgxRow(cell.id.rowID, cell.rowIndex, cell.rowData);\n };\n /**\n * @param {?} rowID\n * @return {?}\n */\n IgxGridCRUDService.prototype.sameRow = /**\n * @param {?} rowID\n * @return {?}\n */\n function (rowID) {\n return this.row && this.row.id === rowID;\n };\n /**\n * @param {?} cell\n * @return {?}\n */\n IgxGridCRUDService.prototype.sameCell = /**\n * @param {?} cell\n * @return {?}\n */\n function (cell) {\n return (this.cell.id.rowID === cell.id.rowID &&\n this.cell.id.columnID === cell.id.columnID);\n };\n Object.defineProperty(IgxGridCRUDService.prototype, \"inEditMode\", {\n get: /**\n * @return {?}\n */\n function () {\n return !!this.cell;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxGridCRUDService.prototype, \"rowEditing\", {\n get: /**\n * @return {?}\n */\n function () {\n return this.grid.rowEditable;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxGridCRUDService.prototype, \"primaryKey\", {\n get: /**\n * @return {?}\n */\n function () {\n return this.grid.primaryKey;\n },\n enumerable: true,\n configurable: true\n });\n /**\n * @return {?}\n */\n IgxGridCRUDService.prototype.beginRowEdit = /**\n * @return {?}\n */\n function () {\n if (this.grid.rowEditable && (this.grid.primaryKey === undefined || this.grid.primaryKey === null)) {\n console.warn('The grid must have a `primaryKey` specified when using `rowEditable`!');\n }\n this.row = this.createRow(this.cell);\n /** @type {?} */\n var args = {\n rowID: this.row.id,\n oldValue: this.row.data,\n cancel: false\n };\n this.grid.onRowEditEnter.emit(args);\n if (args.cancel) {\n this.endRowEdit();\n return;\n }\n this.row.transactionState = this.grid.transactions.getAggregatedValue(this.row.id, true);\n this.grid.transactions.startPending();\n this.grid.openRowOverlay(this.row.id);\n };\n /**\n * @return {?}\n */\n IgxGridCRUDService.prototype.endRowEdit = /**\n * @return {?}\n */\n function () {\n this.row = null;\n };\n /**\n * @param {?} cell\n * @return {?}\n */\n IgxGridCRUDService.prototype.begin = /**\n * @param {?} cell\n * @return {?}\n */\n function (cell) {\n /** @type {?} */\n var newCell = this.createCell(cell);\n newCell.primaryKey = this.primaryKey;\n /** @type {?} */\n var args = {\n cellID: newCell.id,\n rowID: newCell.id.rowID,\n oldValue: newCell.value,\n cancel: false\n };\n this.grid.onCellEditEnter.emit(args);\n if (args.cancel) {\n this.end();\n return;\n }\n if (this.rowEditing) {\n if (this.row && !this.sameRow(newCell.id.rowID)) {\n this.grid.endEdit(true);\n this.cell = newCell;\n this.beginRowEdit();\n return;\n }\n this.cell = newCell;\n if (!this.row) {\n this.beginRowEdit();\n return;\n }\n }\n else {\n this.cell = newCell;\n this.endRowEdit();\n }\n };\n /**\n * @return {?}\n */\n IgxGridCRUDService.prototype.end = /**\n * @return {?}\n */\n function () {\n this.cell = null;\n };\n /**\n * @param {?} rowIndex\n * @param {?} columnIndex\n * @return {?}\n */\n IgxGridCRUDService.prototype.isInEditMode = /**\n * @param {?} rowIndex\n * @param {?} columnIndex\n * @return {?}\n */\n function (rowIndex, columnIndex) {\n if (!this.cell) {\n return false;\n }\n return this.cell.column.index === columnIndex && this.cell.rowIndex === rowIndex;\n };\n IgxGridCRUDService.decorators = [\n { type: Injectable }\n ];\n return IgxGridCRUDService;\n}());\nvar IgxGridSelectionService = /** @class */ (function () {\n function IgxGridSelectionService(zone) {\n this.zone = zone;\n this.dragMode = false;\n this.keyboardState = (/** @type {?} */ ({}));\n this.pointerState = (/** @type {?} */ ({}));\n this.selection = new Map();\n this.temp = new Map();\n this._ranges = new Set();\n this.rowSelection = new Set();\n this.initPointerState();\n this.initKeyboardState();\n }\n Object.defineProperty(IgxGridSelectionService.prototype, \"ranges\", {\n /**\n * Returns the current selected ranges in the grid from both\n * keyboard and pointer interactions\n */\n get: /**\n * Returns the current selected ranges in the grid from both\n * keyboard and pointer interactions\n * @return {?}\n */\n function () {\n // The last action was keyboard + shift selection -> add it\n this.addKeyboardRange();\n /** @type {?} */\n var ranges = Array.from(this._ranges).map(function (range) { return JSON.parse(range); });\n // No ranges but we have a focused cell -> add it\n if (!ranges.length && this.activeElement && this.grid.isCellSelectable) {\n ranges.push(this.generateRange(this.activeElement));\n }\n return ranges;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxGridSelectionService.prototype, \"primaryButton\", {\n get: /**\n * @return {?}\n */\n function () {\n return this.pointerState.primaryButton;\n },\n set: /**\n * @param {?} value\n * @return {?}\n */\n function (value) {\n this.pointerState.primaryButton = value;\n },\n enumerable: true,\n configurable: true\n });\n /**\n * Resets the keyboard state\n */\n /**\n * Resets the keyboard state\n * @return {?}\n */\n IgxGridSelectionService.prototype.initKeyboardState = /**\n * Resets the keyboard state\n * @return {?}\n */\n function () {\n this.keyboardState.node = null;\n this.keyboardState.shift = false;\n this.keyboardState.range = null;\n this.keyboardState.active = false;\n };\n /**\n * Resets the pointer state\n */\n /**\n * Resets the pointer state\n * @return {?}\n */\n IgxGridSelectionService.prototype.initPointerState = /**\n * Resets the pointer state\n * @return {?}\n */\n function () {\n this.pointerState.node = null;\n this.pointerState.ctrl = false;\n this.pointerState.shift = false;\n this.pointerState.range = null;\n this.pointerState.primaryButton = true;\n };\n /**\n * Adds a single node.\n * Single clicks | Ctrl + single clicks on cells is the usual case.\n */\n /**\n * Adds a single node.\n * Single clicks | Ctrl + single clicks on cells is the usual case.\n * @param {?} node\n * @param {?=} addToRange\n * @return {?}\n */\n IgxGridSelectionService.prototype.add = /**\n * Adds a single node.\n * Single clicks | Ctrl + single clicks on cells is the usual case.\n * @param {?} node\n * @param {?=} addToRange\n * @return {?}\n */\n function (node, addToRange) {\n if (addToRange === void 0) { addToRange = true; }\n this.selection.has(node.row) ? this.selection.get(node.row).add(node.column) :\n this.selection.set(node.row, new Set()).get(node.row).add(node.column);\n if (addToRange) {\n this._ranges.add(JSON.stringify(this.generateRange(node)));\n }\n };\n /**\n * Adds the active keyboard range selection (if any) to the `ranges` meta.\n */\n /**\n * Adds the active keyboard range selection (if any) to the `ranges` meta.\n * @return {?}\n */\n IgxGridSelectionService.prototype.addKeyboardRange = /**\n * Adds the active keyboard range selection (if any) to the `ranges` meta.\n * @return {?}\n */\n function () {\n if (this.keyboardState.range) {\n this._ranges.add(JSON.stringify(this.keyboardState.range));\n }\n };\n /**\n * @param {?} node\n * @return {?}\n */\n IgxGridSelectionService.prototype.remove = /**\n * @param {?} node\n * @return {?}\n */\n function (node) {\n if (this.selection.has(node.row)) {\n this.selection.get(node.row).delete(node.column);\n }\n if (this.isActiveNode(node)) {\n this.activeElement = null;\n }\n this._ranges.delete(JSON.stringify(this.generateRange(node)));\n };\n /**\n * @param {?} node\n * @return {?}\n */\n IgxGridSelectionService.prototype.isInMap = /**\n * @param {?} node\n * @return {?}\n */\n function (node) {\n return (this.selection.has(node.row) && this.selection.get(node.row).has(node.column)) ||\n (this.temp.has(node.row) && this.temp.get(node.row).has(node.column));\n };\n /**\n * @param {?} node\n * @return {?}\n */\n IgxGridSelectionService.prototype.selected = /**\n * @param {?} node\n * @return {?}\n */\n function (node) {\n return (this.isActiveNode(node) && this.grid.isCellSelectable) || this.isInMap(node);\n };\n /**\n * @param {?} node\n * @return {?}\n */\n IgxGridSelectionService.prototype.isActiveNode = /**\n * @param {?} node\n * @return {?}\n */\n function (node) {\n if (this.activeElement) {\n /** @type {?} */\n var isActive = this.activeElement.column === node.column && this.activeElement.row === node.row;\n if (this.grid.hasColumnLayouts) {\n /** @type {?} */\n var layout = this.activeElement.layout;\n return isActive && this.isActiveLayout(layout, node.layout);\n }\n return isActive;\n }\n return false;\n };\n /**\n * @param {?} current\n * @param {?} target\n * @return {?}\n */\n IgxGridSelectionService.prototype.isActiveLayout = /**\n * @param {?} current\n * @param {?} target\n * @return {?}\n */\n function (current, target) {\n return current.columnVisibleIndex === target.columnVisibleIndex;\n };\n /**\n * @param {?} node\n * @param {?=} state\n * @return {?}\n */\n IgxGridSelectionService.prototype.addRangeMeta = /**\n * @param {?} node\n * @param {?=} state\n * @return {?}\n */\n function (node, state) {\n this._ranges.add(JSON.stringify(this.generateRange(node, state)));\n };\n /**\n * @param {?} node\n * @param {?=} state\n * @return {?}\n */\n IgxGridSelectionService.prototype.removeRangeMeta = /**\n * @param {?} node\n * @param {?=} state\n * @return {?}\n */\n function (node, state) {\n this._ranges.delete(JSON.stringify(this.generateRange(node, state)));\n };\n /**\n * Generates a new selection range from the given `node`.\n * If `state` is passed instead it will generate the range based on the passed `node`\n * and the start node of the `state`.\n */\n /**\n * Generates a new selection range from the given `node`.\n * If `state` is passed instead it will generate the range based on the passed `node`\n * and the start node of the `state`.\n * @param {?} node\n * @param {?=} state\n * @return {?}\n */\n IgxGridSelectionService.prototype.generateRange = /**\n * Generates a new selection range from the given `node`.\n * If `state` is passed instead it will generate the range based on the passed `node`\n * and the start node of the `state`.\n * @param {?} node\n * @param {?=} state\n * @return {?}\n */\n function (node, state) {\n if (!state) {\n return {\n rowStart: node.row,\n rowEnd: node.row,\n columnStart: node.column,\n columnEnd: node.column\n };\n }\n var _a = state.node, row = _a.row, column = _a.column;\n /** @type {?} */\n var rowStart = Math.min(node.row, row);\n /** @type {?} */\n var rowEnd = Math.max(node.row, row);\n /** @type {?} */\n var columnStart = Math.min(node.column, column);\n /** @type {?} */\n var columnEnd = Math.max(node.column, column);\n return { rowStart: rowStart, rowEnd: rowEnd, columnStart: columnStart, columnEnd: columnEnd };\n };\n /**\n *\n */\n /**\n *\n * @param {?} node\n * @param {?} shift\n * @param {?} shiftTab\n * @return {?}\n */\n IgxGridSelectionService.prototype.keyboardStateOnKeydown = /**\n *\n * @param {?} node\n * @param {?} shift\n * @param {?} shiftTab\n * @return {?}\n */\n function (node, shift, shiftTab) {\n this.keyboardState.active = true;\n this.initPointerState();\n this.keyboardState.shift = shift && !shiftTab;\n // Kb navigation with shift and no previous node.\n // Clear the current selection init the start node.\n if (this.keyboardState.shift && !this.keyboardState.node) {\n this.clear();\n this.keyboardState.node = node;\n }\n };\n /**\n * @param {?} node\n * @param {?} emitter\n * @param {?} dom\n * @return {?}\n */\n IgxGridSelectionService.prototype.keyboardStateOnFocus = /**\n * @param {?} node\n * @param {?} emitter\n * @param {?} dom\n * @return {?}\n */\n function (node, emitter, dom) {\n /** @type {?} */\n var kbState = this.keyboardState;\n // Focus triggered by keyboard navigation\n if (kbState.active) {\n if (isChromium()) {\n this._moveSelectionChrome(dom);\n }\n // Start generating a range if shift is hold\n if (kbState.shift) {\n this.dragSelect(node, kbState);\n kbState.range = this.generateRange(node, kbState);\n emitter.emit(this.generateRange(node, kbState));\n return;\n }\n this.initKeyboardState();\n this.clear();\n this.add(node);\n }\n };\n /**\n * @param {?} node\n * @param {?} shift\n * @param {?} ctrl\n * @return {?}\n */\n IgxGridSelectionService.prototype.pointerDown = /**\n * @param {?} node\n * @param {?} shift\n * @param {?} ctrl\n * @return {?}\n */\n function (node, shift, ctrl) {\n this.addKeyboardRange();\n this.initKeyboardState();\n this.pointerState.ctrl = ctrl;\n this.pointerState.shift = shift;\n // No ctrl key pressed - no multiple selection\n if (!ctrl) {\n this.clear();\n }\n if (shift) {\n // No previously 'clicked' node. Use the last active node.\n if (!this.pointerState.node) {\n this.pointerState.node = this.activeElement || node;\n }\n this.pointerDownShiftKey(node);\n this.clearTextSelection();\n return;\n }\n this.removeRangeMeta(node);\n this.pointerState.node = node;\n };\n /**\n * @param {?} node\n * @return {?}\n */\n IgxGridSelectionService.prototype.pointerDownShiftKey = /**\n * @param {?} node\n * @return {?}\n */\n function (node) {\n this.clear();\n this.selectRange(node, this.pointerState);\n };\n /**\n * @param {?} target\n * @param {?} source\n * @return {?}\n */\n IgxGridSelectionService.prototype.mergeMap = /**\n * @param {?} target\n * @param {?} source\n * @return {?}\n */\n function (target, source) {\n /** @type {?} */\n var iterator = source.entries();\n /** @type {?} */\n var pair = iterator.next();\n /** @type {?} */\n var key;\n /** @type {?} */\n var value;\n var _loop_1 = function () {\n var _a;\n _a = __read(pair.value, 2), key = _a[0], value = _a[1];\n if (target.has(key)) {\n /** @type {?} */\n var newValue_1 = target.get(key);\n value.forEach(function (record) { return newValue_1.add(record); });\n target.set(key, newValue_1);\n }\n else {\n target.set(key, value);\n }\n pair = iterator.next();\n };\n while (!pair.done) {\n _loop_1();\n }\n };\n /**\n * @param {?} node\n * @param {?} event\n * @return {?}\n */\n IgxGridSelectionService.prototype.pointerEnter = /**\n * @param {?} node\n * @param {?} event\n * @return {?}\n */\n function (node, event) {\n // https://www.w3.org/TR/pointerevents/#the-button-property\n this.dragMode = event.buttons === 1 && event.button === -1;\n if (!this.dragMode) {\n return false;\n }\n this.clearTextSelection();\n // If the users triggers a drag-like event by first clicking outside the grid cells\n // and then enters in the grid body we may not have a initial pointer starting node.\n // Assume the first pointerenter node is where we start.\n if (!this.pointerState.node) {\n this.pointerState.node = node;\n }\n this.pointerState.ctrl ? this.selectRange(node, this.pointerState, this.temp) :\n this.dragSelect(node, this.pointerState);\n return true;\n };\n /**\n * @param {?} node\n * @param {?} emitter\n * @return {?}\n */\n IgxGridSelectionService.prototype.pointerUp = /**\n * @param {?} node\n * @param {?} emitter\n * @return {?}\n */\n function (node, emitter) {\n var _this = this;\n if (this.dragMode) {\n this.restoreTextSelection();\n this.addRangeMeta(node, this.pointerState);\n this.mergeMap(this.selection, this.temp);\n this.zone.runTask(function () { return emitter.emit(_this.generateRange(node, _this.pointerState)); });\n this.temp.clear();\n this.dragMode = false;\n return true;\n }\n if (this.pointerState.shift) {\n this.clearTextSelection();\n this.restoreTextSelection();\n this.addRangeMeta(node, this.pointerState);\n emitter.emit(this.generateRange(node, this.pointerState));\n return true;\n }\n this.add(node);\n return false;\n };\n /**\n * @param {?} node\n * @param {?} state\n * @param {?=} collection\n * @return {?}\n */\n IgxGridSelectionService.prototype.selectRange = /**\n * @param {?} node\n * @param {?} state\n * @param {?=} collection\n * @return {?}\n */\n function (node, state, collection) {\n if (collection === void 0) { collection = this.selection; }\n if (collection === this.temp) {\n collection.clear();\n }\n var _a = this.generateRange(node, state), rowStart = _a.rowStart, rowEnd = _a.rowEnd, columnStart = _a.columnStart, columnEnd = _a.columnEnd;\n for (var i = rowStart; i <= rowEnd; i++) {\n for (var j = (/** @type {?} */ (columnStart)); j <= columnEnd; j++) {\n collection.has(i) ? collection.get(i).add(j) :\n collection.set(i, new Set()).get(i).add(j);\n }\n }\n };\n /**\n * @param {?} node\n * @param {?} state\n * @return {?}\n */\n IgxGridSelectionService.prototype.dragSelect = /**\n * @param {?} node\n * @param {?} state\n * @return {?}\n */\n function (node, state) {\n if (!this.pointerState.ctrl) {\n this.selection.clear();\n }\n this.selectRange(node, state);\n };\n /**\n * @param {?=} clearAcriveEl\n * @return {?}\n */\n IgxGridSelectionService.prototype.clear = /**\n * @param {?=} clearAcriveEl\n * @return {?}\n */\n function (clearAcriveEl) {\n if (clearAcriveEl === void 0) { clearAcriveEl = false; }\n if (clearAcriveEl) {\n this.activeElement = null;\n }\n this.selection.clear();\n this.temp.clear();\n this._ranges.clear();\n };\n /**\n * @return {?}\n */\n IgxGridSelectionService.prototype.clearTextSelection = /**\n * @return {?}\n */\n function () {\n /** @type {?} */\n var selection = window.getSelection();\n if (selection.rangeCount) {\n this._selectionRange = selection.getRangeAt(0);\n this._selectionRange.collapse(true);\n selection.removeAllRanges();\n }\n };\n /**\n * @return {?}\n */\n IgxGridSelectionService.prototype.restoreTextSelection = /**\n * @return {?}\n */\n function () {\n /** @type {?} */\n var selection = window.getSelection();\n if (!selection.rangeCount) {\n selection.addRange(this._selectionRange || document.createRange());\n }\n };\n /**\n * (╯°□°)╯︵ ┻━┻\n * Chrome and Chromium don't care about the active\n * range after keyboard navigation, thus this.\n */\n /**\n * (╯°□°)╯︵ ┻━┻\n * Chrome and Chromium don't care about the active\n * range after keyboard navigation, thus this.\n * @param {?} node\n * @return {?}\n */\n IgxGridSelectionService.prototype._moveSelectionChrome = /**\n * (╯°□°)╯︵ ┻━┻\n * Chrome and Chromium don't care about the active\n * range after keyboard navigation, thus this.\n * @param {?} node\n * @return {?}\n */\n function (node) {\n /** @type {?} */\n var selection = window.getSelection();\n selection.removeAllRanges();\n /** @type {?} */\n var range = new Range();\n range.selectNode(node);\n range.collapse(true);\n selection.addRange(range);\n };\n /** Returns array of the selected row id's. */\n /**\n * Returns array of the selected row id's.\n * @return {?}\n */\n IgxGridSelectionService.prototype.getSelectedRows = /**\n * Returns array of the selected row id's.\n * @return {?}\n */\n function () {\n return this.rowSelection.size ? Array.from(this.rowSelection.keys()) : [];\n };\n /** Clears row selection, if filtering is applied clears only selected rows from filtered data. */\n /**\n * Clears row selection, if filtering is applied clears only selected rows from filtered data.\n * @param {?=} event\n * @return {?}\n */\n IgxGridSelectionService.prototype.clearRowSelection = /**\n * Clears row selection, if filtering is applied clears only selected rows from filtered data.\n * @param {?=} event\n * @return {?}\n */\n function (event) {\n var _this = this;\n /** @type {?} */\n var removedRec = this.isFilteringApplied() ?\n this.getRowIDs(this.allData).filter(function (rID) { return _this.isRowSelected(rID); }) : this.getSelectedRows();\n /** @type {?} */\n var newSelection = this.isFilteringApplied() ? this.getSelectedRows().filter(function (x) { return !removedRec.includes(x); }) : [];\n this.emitRowSelectionEvent(newSelection, [], removedRec, event);\n };\n /** Select all rows, if filtering is applied select only from filtered data. */\n /**\n * Select all rows, if filtering is applied select only from filtered data.\n * @param {?=} event\n * @return {?}\n */\n IgxGridSelectionService.prototype.selectAllRows = /**\n * Select all rows, if filtering is applied select only from filtered data.\n * @param {?=} event\n * @return {?}\n */\n function (event) {\n var _this = this;\n /** @type {?} */\n var allRowIDs = this.getRowIDs(this.allData);\n /** @type {?} */\n var addedRows = allRowIDs.filter(function (rID) { return !_this.isRowSelected(rID); });\n /** @type {?} */\n var newSelection = this.rowSelection.size ? this.getSelectedRows().concat(addedRows) : addedRows;\n this.emitRowSelectionEvent(newSelection, addedRows, [], event);\n };\n /** Select the specified row and emit event. */\n /**\n * Select the specified row and emit event.\n * @param {?} rowID\n * @param {?=} clearPrevSelection\n * @param {?=} event\n * @return {?}\n */\n IgxGridSelectionService.prototype.selectRowById = /**\n * Select the specified row and emit event.\n * @param {?} rowID\n * @param {?=} clearPrevSelection\n * @param {?=} event\n * @return {?}\n */\n function (rowID, clearPrevSelection, event) {\n if (!this.grid.isRowSelectable || this.isRowDeleted(rowID)) {\n return;\n }\n clearPrevSelection = !this.grid.isMultiRowSelectionEnabled || clearPrevSelection;\n /** @type {?} */\n var newSelection = clearPrevSelection ? [rowID] : this.getSelectedRows().indexOf(rowID) !== -1 ?\n this.getSelectedRows() : __spread(this.getSelectedRows(), [rowID]);\n /** @type {?} */\n var removed = clearPrevSelection ? this.getSelectedRows() : [];\n this.emitRowSelectionEvent(newSelection, [rowID], removed, event);\n };\n /** Deselect the specified row and emit event. */\n /**\n * Deselect the specified row and emit event.\n * @param {?} rowID\n * @param {?=} event\n * @return {?}\n */\n IgxGridSelectionService.prototype.deselectRow = /**\n * Deselect the specified row and emit event.\n * @param {?} rowID\n * @param {?=} event\n * @return {?}\n */\n function (rowID, event) {\n if (!this.isRowSelected(rowID)) {\n return;\n }\n /** @type {?} */\n var newSelection = this.getSelectedRows().filter(function (r) { return r !== rowID; });\n if (this.rowSelection.size && this.rowSelection.has(rowID)) {\n this.emitRowSelectionEvent(newSelection, [], [rowID], event);\n }\n };\n /** Select specified rows. No event is emitted. */\n /**\n * Select specified rows. No event is emitted.\n * @param {?} rowIDs\n * @param {?=} clearPrevSelection\n * @return {?}\n */\n IgxGridSelectionService.prototype.selectRowsWithNoEvent = /**\n * Select specified rows. No event is emitted.\n * @param {?} rowIDs\n * @param {?=} clearPrevSelection\n * @return {?}\n */\n function (rowIDs, clearPrevSelection) {\n var _this = this;\n if (clearPrevSelection) {\n this.rowSelection.clear();\n }\n rowIDs.forEach(function (rowID) { _this.rowSelection.add(rowID); });\n this.allRowsSelected = undefined;\n };\n /** Deselect specified rows. No event is emitted. */\n /**\n * Deselect specified rows. No event is emitted.\n * @param {?} rowIDs\n * @return {?}\n */\n IgxGridSelectionService.prototype.deselectRowsWithNoEvent = /**\n * Deselect specified rows. No event is emitted.\n * @param {?} rowIDs\n * @return {?}\n */\n function (rowIDs) {\n var _this = this;\n rowIDs.forEach(function (rowID) { return _this.rowSelection.delete(rowID); });\n this.allRowsSelected = undefined;\n };\n /**\n * @param {?} rowID\n * @return {?}\n */\n IgxGridSelectionService.prototype.isRowSelected = /**\n * @param {?} rowID\n * @return {?}\n */\n function (rowID) {\n return this.rowSelection.size > 0 && this.rowSelection.has(rowID);\n };\n /** Select range from last selected row to the current specified row.*/\n /**\n * Select range from last selected row to the current specified row.\n * @param {?} rowID\n * @param {?} rowData\n * @param {?=} event\n * @return {?}\n */\n IgxGridSelectionService.prototype.selectMultipleRows = /**\n * Select range from last selected row to the current specified row.\n * @param {?} rowID\n * @param {?} rowData\n * @param {?=} event\n * @return {?}\n */\n function (rowID, rowData, event) {\n var _this = this;\n this.allRowsSelected = undefined;\n if (!this.rowSelection.size || this.isRowDeleted(rowID)) {\n this.selectRowById(rowID);\n return;\n }\n /** @type {?} */\n var gridData = this.allData;\n /** @type {?} */\n var lastRowID = this.getSelectedRows()[this.rowSelection.size - 1];\n /** @type {?} */\n var currIndex = gridData.indexOf(this.getRowDataById(lastRowID));\n /** @type {?} */\n var newIndex = gridData.indexOf(rowData);\n /** @type {?} */\n var rows = gridData.slice(Math.min(currIndex, newIndex), Math.max(currIndex, newIndex) + 1);\n /** @type {?} */\n var added = this.getRowIDs(rows).filter(function (rID) { return !_this.isRowSelected(rID); });\n /** @type {?} */\n var newSelection = this.getSelectedRows().concat(added);\n this.emitRowSelectionEvent(newSelection, added, [], event);\n };\n /**\n * @return {?}\n */\n IgxGridSelectionService.prototype.areAllRowSelected = /**\n * @return {?}\n */\n function () {\n if (!this.grid.data) {\n return false;\n }\n if (this.allRowsSelected !== undefined) {\n return this.allRowsSelected;\n }\n /** @type {?} */\n var dataItemsID = this.getRowIDs(this.allData);\n return this.allRowsSelected = Math.min(this.rowSelection.size, dataItemsID.length) > 0 &&\n new Set(Array.from(this.rowSelection.values()).concat(dataItemsID)).size === this.rowSelection.size;\n };\n /**\n * @return {?}\n */\n IgxGridSelectionService.prototype.hasSomeRowSelected = /**\n * @return {?}\n */\n function () {\n var _this = this;\n /** @type {?} */\n var filteredData = this.isFilteringApplied() ?\n this.getRowIDs(this.grid.filteredData).some(function (rID) { return _this.isRowSelected(rID); }) : true;\n return this.rowSelection.size > 0 && filteredData && !this.areAllRowSelected();\n };\n Object.defineProperty(IgxGridSelectionService.prototype, \"filteredSelectedRowIds\", {\n get: /**\n * @return {?}\n */\n function () {\n var _this = this;\n return this.isFilteringApplied() ?\n this.getRowIDs(this.allData).filter(function (rowID) { return _this.isRowSelected(rowID); }) :\n this.getSelectedRows().filter(function (rowID) { return !_this.isRowDeleted(rowID); });\n },\n enumerable: true,\n configurable: true\n });\n /**\n * @param {?} newSelection\n * @param {?} added\n * @param {?} removed\n * @param {?=} event\n * @return {?}\n */\n IgxGridSelectionService.prototype.emitRowSelectionEvent = /**\n * @param {?} newSelection\n * @param {?} added\n * @param {?} removed\n * @param {?=} event\n * @return {?}\n */\n function (newSelection, added, removed, event) {\n /** @type {?} */\n var currSelection = this.getSelectedRows();\n if (this.areEqualCollections(currSelection, newSelection)) {\n return;\n }\n /** @type {?} */\n var args = {\n oldSelection: currSelection, newSelection: newSelection,\n added: added, removed: removed, event: event, cancel: false\n };\n this.grid.onRowSelectionChange.emit(args);\n if (args.cancel) {\n return;\n }\n this.selectRowsWithNoEvent(args.newSelection, true);\n };\n /**\n * @param {?} rowID\n * @return {?}\n */\n IgxGridSelectionService.prototype.getRowDataById = /**\n * @param {?} rowID\n * @return {?}\n */\n function (rowID) {\n if (!this.grid.primaryKey) {\n return rowID;\n }\n /** @type {?} */\n var rowIndex = this.getRowIDs(this.grid.gridAPI.get_all_data(true)).indexOf(rowID);\n return rowIndex < 0 ? {} : this.grid.gridAPI.get_all_data(true)[rowIndex];\n };\n /**\n * @param {?} data\n * @return {?}\n */\n IgxGridSelectionService.prototype.getRowIDs = /**\n * @param {?} data\n * @return {?}\n */\n function (data) {\n var _this = this;\n return this.grid.primaryKey && data.length ? data.map(function (rec) { return rec[_this.grid.primaryKey]; }) : data;\n };\n /**\n * @return {?}\n */\n IgxGridSelectionService.prototype.clearHeaderCBState = /**\n * @return {?}\n */\n function () {\n this.allRowsSelected = undefined;\n };\n /**Clear rowSelection and update checkbox state*/\n /**\n * Clear rowSelection and update checkbox state\n * @return {?}\n */\n IgxGridSelectionService.prototype.clearAllSelectedRows = /**\n * Clear rowSelection and update checkbox state\n * @return {?}\n */\n function () {\n this.rowSelection.clear();\n this.clearHeaderCBState();\n };\n Object.defineProperty(IgxGridSelectionService.prototype, \"allData\", {\n /** Returns all data in the grid, with applied filtering and sorting and without deleted rows. */\n get: /**\n * Returns all data in the grid, with applied filtering and sorting and without deleted rows.\n * @return {?}\n */\n function () {\n var _this = this;\n /** @type {?} */\n var allData = this.isFilteringApplied() || this.grid.sortingExpressions.length ?\n this.grid.filteredSortedData : this.grid.gridAPI.get_all_data(true);\n return allData.filter(function (rData) { return !_this.isRowDeleted(_this.grid.gridAPI.get_row_id(rData)); });\n },\n enumerable: true,\n configurable: true\n });\n /**\n * @private\n * @param {?} first\n * @param {?} second\n * @return {?}\n */\n IgxGridSelectionService.prototype.areEqualCollections = /**\n * @private\n * @param {?} first\n * @param {?} second\n * @return {?}\n */\n function (first, second) {\n return first.length === second.length && new Set(first.concat(second)).size === first.length;\n };\n /**\n * @private\n * @return {?}\n */\n IgxGridSelectionService.prototype.isFilteringApplied = /**\n * @private\n * @return {?}\n */\n function () {\n /** @type {?} */\n var grid = (/** @type {?} */ (this.grid));\n return !FilteringExpressionsTree.empty(grid.filteringExpressionsTree) ||\n !FilteringExpressionsTree.empty(grid.advancedFilteringExpressionsTree);\n };\n /**\n * @private\n * @param {?} rowID\n * @return {?}\n */\n IgxGridSelectionService.prototype.isRowDeleted = /**\n * @private\n * @param {?} rowID\n * @return {?}\n */\n function (rowID) {\n return this.grid.gridAPI.row_deleted_transaction(rowID);\n };\n IgxGridSelectionService.decorators = [\n { type: Injectable }\n ];\n /** @nocollapse */\n IgxGridSelectionService.ctorParameters = function () { return [\n { type: NgZone }\n ]; };\n return IgxGridSelectionService;\n}());\n/**\n * @return {?}\n */\nfunction isChromium() {\n return (/Chrom|e?ium/g.test(navigator.userAgent) || /Google Inc/g.test(navigator.vendor)) && !/Edge/g.test(navigator.userAgent);\n}\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n/** @type {?} */\nvar EVENT_SUFFIX = 'precise';\n/**\n * Touch gestures manager based on Hammer.js\n * Use with caution, this will track references for single manager per element. Very TBD. Much TODO.\n * @hidden\n */\nvar HammerGesturesManager = /** @class */ (function () {\n function HammerGesturesManager(_zone, doc, platformUtil) {\n this._zone = _zone;\n this.doc = doc;\n this.platformUtil = platformUtil;\n /**\n * Event option defaults for each recognizer, see http://hammerjs.github.io/api/ for API listing.\n */\n this.hammerOptions = {};\n this._hammerManagers = [];\n this.platformBrowser = this.platformUtil.isBrowser;\n if (this.platformBrowser) {\n this.hammerOptions = {\n // D.P. #447 Force TouchInput due to PointerEventInput bug (https://github.com/hammerjs/hammer.js/issues/1065)\n // see https://github.com/IgniteUI/igniteui-angular/issues/447#issuecomment-324601803\n inputClass: Hammer.TouchInput,\n recognizers: [\n [Hammer.Pan, { threshold: 0 }],\n [Hammer.Swipe, {\n direction: Hammer.DIRECTION_HORIZONTAL\n }],\n [Hammer.Tap],\n [Hammer.Tap, { event: 'doubletap', taps: 2 }, ['tap']]\n ]\n };\n }\n }\n /**\n * @param {?} eventName\n * @return {?}\n */\n HammerGesturesManager.prototype.supports = /**\n * @param {?} eventName\n * @return {?}\n */\n function (eventName) {\n return eventName.toLowerCase().endsWith('.' + EVENT_SUFFIX);\n };\n /**\n * Add listener extended with options for Hammer.js. Will use defaults if none are provided.\n * Modeling after other event plugins for easy future modifications.\n */\n /**\n * Add listener extended with options for Hammer.js. Will use defaults if none are provided.\n * Modeling after other event plugins for easy future modifications.\n * @param {?} element\n * @param {?} eventName\n * @param {?} eventHandler\n * @param {?=} options\n * @return {?}\n */\n HammerGesturesManager.prototype.addEventListener = /**\n * Add listener extended with options for Hammer.js. Will use defaults if none are provided.\n * Modeling after other event plugins for easy future modifications.\n * @param {?} element\n * @param {?} eventName\n * @param {?} eventHandler\n * @param {?=} options\n * @return {?}\n */\n function (element, eventName, eventHandler, options) {\n var _this = this;\n if (options === void 0) { options = null; }\n if (!this.platformBrowser) {\n return;\n }\n // Creating the manager bind events, must be done outside of angular\n return this._zone.runOutsideAngular(function () {\n /** @type {?} */\n var mc = _this.getManagerForElement(element);\n if (mc === null) {\n // new Hammer is a shortcut for Manager with defaults\n mc = new Hammer(element, Object.assign(_this.hammerOptions, options));\n _this.addManagerForElement(element, mc);\n }\n /** @type {?} */\n var handler = function (eventObj) { _this._zone.run(function () { eventHandler(eventObj); }); };\n mc.on(eventName, handler);\n return function () { mc.off(eventName, handler); };\n });\n };\n /**\n * Add listener extended with options for Hammer.js. Will use defaults if none are provided.\n * Modeling after other event plugins for easy future modifications.\n *\n * @param target Can be one of either window, body or document(fallback default).\n */\n /**\n * Add listener extended with options for Hammer.js. Will use defaults if none are provided.\n * Modeling after other event plugins for easy future modifications.\n *\n * @param {?} target Can be one of either window, body or document(fallback default).\n * @param {?} eventName\n * @param {?} eventHandler\n * @return {?}\n */\n HammerGesturesManager.prototype.addGlobalEventListener = /**\n * Add listener extended with options for Hammer.js. Will use defaults if none are provided.\n * Modeling after other event plugins for easy future modifications.\n *\n * @param {?} target Can be one of either window, body or document(fallback default).\n * @param {?} eventName\n * @param {?} eventHandler\n * @return {?}\n */\n function (target, eventName, eventHandler) {\n if (!this.platformBrowser) {\n return;\n }\n /** @type {?} */\n var element = this.getGlobalEventTarget(target);\n // Creating the manager bind events, must be done outside of angular\n return this.addEventListener((/** @type {?} */ (element)), eventName, eventHandler);\n };\n /**\n * Exposes [Dom]Adapter.getGlobalEventTarget to get global event targets.\n * Supported: window, document, body. Defaults to document for invalid args.\n * @param target Target name\n */\n /**\n * Exposes [Dom]Adapter.getGlobalEventTarget to get global event targets.\n * Supported: window, document, body. Defaults to document for invalid args.\n * @param {?} target Target name\n * @return {?}\n */\n HammerGesturesManager.prototype.getGlobalEventTarget = /**\n * Exposes [Dom]Adapter.getGlobalEventTarget to get global event targets.\n * Supported: window, document, body. Defaults to document for invalid args.\n * @param {?} target Target name\n * @return {?}\n */\n function (target) {\n return ɵgetDOM().getGlobalEventTarget(this.doc, target);\n };\n /**\n * Set HammerManager options.\n *\n * @param element The DOM element used to create the manager on.\n *\n * ### Example\n *\n * ```ts\n * manager.setManagerOption(myElem, \"pan\", { pointers: 1 });\n * ```\n */\n /**\n * Set HammerManager options.\n *\n * @param {?} element The DOM element used to create the manager on.\n *\n * ### Example\n *\n * ```ts\n * manager.setManagerOption(myElem, \"pan\", { pointers: 1 });\n * ```\n * @param {?} event\n * @param {?} options\n * @return {?}\n */\n HammerGesturesManager.prototype.setManagerOption = /**\n * Set HammerManager options.\n *\n * @param {?} element The DOM element used to create the manager on.\n *\n * ### Example\n *\n * ```ts\n * manager.setManagerOption(myElem, \"pan\", { pointers: 1 });\n * ```\n * @param {?} event\n * @param {?} options\n * @return {?}\n */\n function (element, event, options) {\n /** @type {?} */\n var manager = this.getManagerForElement(element);\n manager.get(event).set(options);\n };\n /**\n * Add an element and manager map to the internal collection.\n *\n * @param element The DOM element used to create the manager on.\n */\n /**\n * Add an element and manager map to the internal collection.\n *\n * @param {?} element The DOM element used to create the manager on.\n * @param {?} manager\n * @return {?}\n */\n HammerGesturesManager.prototype.addManagerForElement = /**\n * Add an element and manager map to the internal collection.\n *\n * @param {?} element The DOM element used to create the manager on.\n * @param {?} manager\n * @return {?}\n */\n function (element, manager) {\n this._hammerManagers.push({ element: element, manager: manager });\n };\n /**\n * Get HammerManager for the element or null\n *\n * @param element The DOM element used to create the manager on.\n */\n /**\n * Get HammerManager for the element or null\n *\n * @param {?} element The DOM element used to create the manager on.\n * @return {?}\n */\n HammerGesturesManager.prototype.getManagerForElement = /**\n * Get HammerManager for the element or null\n *\n * @param {?} element The DOM element used to create the manager on.\n * @return {?}\n */\n function (element) {\n /** @type {?} */\n var result = this._hammerManagers.filter(function (value, index, array) {\n return value.element === element;\n });\n return result.length ? result[0].manager : null;\n };\n /**\n * Destroys the HammerManager for the element, removing event listeners in the process.\n *\n * @param element The DOM element used to create the manager on.\n */\n /**\n * Destroys the HammerManager for the element, removing event listeners in the process.\n *\n * @param {?} element The DOM element used to create the manager on.\n * @return {?}\n */\n HammerGesturesManager.prototype.removeManagerForElement = /**\n * Destroys the HammerManager for the element, removing event listeners in the process.\n *\n * @param {?} element The DOM element used to create the manager on.\n * @return {?}\n */\n function (element) {\n /** @type {?} */\n var index = null;\n for (var i = 0; i < this._hammerManagers.length; i++) {\n if (element === this._hammerManagers[i].element) {\n index = i;\n break;\n }\n }\n if (index !== null) {\n /** @type {?} */\n var item = this._hammerManagers.splice(index, 1)[0];\n // destroy also\n item.manager.destroy();\n }\n };\n /** Destroys all internally tracked HammerManagers, removing event listeners in the process. */\n /**\n * Destroys all internally tracked HammerManagers, removing event listeners in the process.\n * @return {?}\n */\n HammerGesturesManager.prototype.destroy = /**\n * Destroys all internally tracked HammerManagers, removing event listeners in the process.\n * @return {?}\n */\n function () {\n var e_1, _a;\n try {\n for (var _b = __values(this._hammerManagers), _c = _b.next(); !_c.done; _c = _b.next()) {\n var item = _c.value;\n item.manager.destroy();\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n }\n finally { if (e_1) throw e_1.error; }\n }\n this._hammerManagers = [];\n };\n HammerGesturesManager.decorators = [\n { type: Injectable }\n ];\n /** @nocollapse */\n HammerGesturesManager.ctorParameters = function () { return [\n { type: NgZone },\n { type: undefined, decorators: [{ type: Inject, args: [DOCUMENT,] }] },\n { type: PlatformUtil }\n ]; };\n return HammerGesturesManager;\n}());\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n/** @enum {string} */\nvar FilterMode = {\n quickFilter: 'quickFilter',\n excelStyleFilter: 'excelStyleFilter',\n};\n/** @enum {string} */\nvar GridSummaryPosition = {\n top: 'top',\n bottom: 'bottom',\n};\n/** @enum {string} */\nvar GridSummaryCalculationMode = {\n rootLevelOnly: 'rootLevelOnly',\n childLevelsOnly: 'childLevelsOnly',\n rootAndChildLevels: 'rootAndChildLevels',\n};\n/** @enum {string} */\nvar GridKeydownTargetType = {\n dataCell: 'dataCell',\n summaryCell: 'summaryCell',\n groupRow: 'groupRow',\n hierarchicalRow: 'hierarchicalRow',\n};\n/** @enum {string} */\nvar GridSelectionMode = {\n none: 'none',\n single: 'single',\n multiple: 'multiple',\n};\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n/**\n * Providing reference to `IgxGridCellComponent`:\n * ```typescript\n * \\@ViewChild('grid', { read: IgxGridComponent })\n * public grid: IgxGridComponent;\n * ```\n * ```typescript\n * let column = this.grid.columnList.first;\n * ```\n * ```typescript\n * let cell = column.cells[0];\n * ```\n */\nvar IgxGridCellComponent = /** @class */ (function () {\n function IgxGridCellComponent(selectionService, crudService, gridAPI, cdr, element, zone, touchManager, platformUtil) {\n var _this = this;\n this.selectionService = selectionService;\n this.crudService = crudService;\n this.gridAPI = gridAPI;\n this.cdr = cdr;\n this.element = element;\n this.zone = zone;\n this.touchManager = touchManager;\n this.platformUtil = platformUtil;\n this._vIndex = -1;\n /**\n * Sets/gets the highlight class of the cell.\n * Default value is `\"igx-highlight\"`.\n * ```typescript\n * let highlightClass = this.cell.highlightClass;\n * ```\n * ```typescript\n * this.cell.highlightClass = 'igx-cell-highlight';\n * ```\n * \\@memberof IgxGridCellComponent\n */\n this.highlightClass = 'igx-highlight';\n /**\n * Sets/gets the active highlight class class of the cell.\n * Default value is `\"igx-highlight__active\"`.\n * ```typescript\n * let activeHighlightClass = this.cell.activeHighlightClass;\n * ```\n * ```typescript\n * this.cell.activeHighlightClass = 'igx-cell-highlight_active';\n * ```\n * \\@memberof IgxGridCellComponent\n */\n this.activeHighlightClass = 'igx-highlight__active';\n /**\n * @hidden\n * \\@internal\n */\n this.lastPinned = false;\n /**\n * Returns whether the cell is in edit mode.\n */\n this.editMode = false;\n /**\n * Sets/get the `tabindex` property of the cell.\n * Default value is `0`.\n * ```typescript\n * this.cell.tabindex = 1;\n * ```\n * ```typescript\n * let cellTabIndex = this.cell.tabindex;\n * ```\n * \\@memberof IgxGridCellComponent\n */\n this.tabindex = 0;\n /**\n * Sets/get the `role` property of the cell.\n * Default value is `\"gridcell\"`.\n * ```typescript\n * this.cell.role = 'grid-cell';\n * ```\n * ```typescript\n * let cellRole = this.cell.role;\n * ```\n * \\@memberof IgxGridCellComponent\n */\n this.role = 'gridcell';\n /**\n * Gets the width of the cell.\n * ```typescript\n * let cellWidth = this.cell.width;\n * ```\n * \\@memberof IgxGridCellComponent\n */\n this.width = '';\n /**\n * @hidden\n * \\@internal\n */\n this.focused = false;\n this.isInCompositionMode = false;\n this._cellSelection = GridSelectionMode.multiple;\n /**\n *\n * @hidden\n * \\@internal\n */\n this.pointerdown = function (event) {\n if (!isLeftClick(event)) {\n _this.selectionService.addKeyboardRange();\n _this.selectionService.initKeyboardState();\n _this.selectionService.primaryButton = false;\n return;\n }\n _this.selectionService.pointerDown(_this.selectionNode, event.shiftKey, event.ctrlKey);\n };\n /**\n *\n * @hidden\n * \\@internal\n */\n this.pointerenter = function (event) {\n /** @type {?} */\n var dragMode = _this.selectionService.pointerEnter(_this.selectionNode, event);\n if (dragMode) {\n _this.grid.cdr.detectChanges();\n }\n };\n /**\n * @hidden\n * \\@internal\n */\n this.pointerup = function (event) {\n if (_this.grid.hasColumnLayouts) {\n _this.grid.navigation.setStartNavigationCell(_this.colStart, _this.rowStart, null);\n }\n if (!isLeftClick(event)) {\n return;\n }\n if (_this.selectionService.pointerUp(_this.selectionNode, _this.grid.onRangeSelection)) {\n _this.grid.cdr.detectChanges();\n }\n _this._updateCRUDStatus();\n };\n /**\n * @hidden\n * \\@internal\n */\n this.onDoubleClick = function (event) {\n if (event.type === 'doubletap') {\n // prevent double-tap to zoom on iOS\n ((/** @type {?} */ (event))).preventDefault();\n }\n if (_this.editable && !_this.editMode && !_this.row.deleted) {\n _this.crudService.begin(_this);\n }\n _this.grid.onDoubleClick.emit({\n cell: _this,\n event: event\n });\n };\n }\n Object.defineProperty(IgxGridCellComponent.prototype, \"context\", {\n /**\n * Gets the cell template context object.\n * ```typescript\n * let context = this.cell.context();\n * ```\n * @memberof IgxGridCellComponent\n */\n get: /**\n * Gets the cell template context object.\n * ```typescript\n * let context = this.cell.context();\n * ```\n * \\@memberof IgxGridCellComponent\n * @return {?}\n */\n function () {\n return {\n $implicit: this.value,\n cell: this\n };\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxGridCellComponent.prototype, \"template\", {\n /**\n * Gets the cell template.\n * ```typescript\n * let template = this.cell.template;\n * ```\n * @memberof IgxGridCellComponent\n */\n get: /**\n * Gets the cell template.\n * ```typescript\n * let template = this.cell.template;\n * ```\n * \\@memberof IgxGridCellComponent\n * @return {?}\n */\n function () {\n if (this.editMode) {\n /** @type {?} */\n var inlineEditorTemplate = this.column.inlineEditorTemplate;\n return inlineEditorTemplate ? inlineEditorTemplate : this.inlineEditorTemplate;\n }\n if (this.cellTemplate) {\n return this.cellTemplate;\n }\n return this.defaultCellTemplate;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxGridCellComponent.prototype, \"gridID\", {\n /**\n * Gets the `id` of the grid in which the cell is stored.\n * ```typescript\n * let gridId = this.cell.gridID;\n * ```\n * @memberof IgxGridCellComponent\n */\n get: /**\n * Gets the `id` of the grid in which the cell is stored.\n * ```typescript\n * let gridId = this.cell.gridID;\n * ```\n * \\@memberof IgxGridCellComponent\n * @return {?}\n */\n function () {\n return this.row.gridID;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxGridCellComponent.prototype, \"grid\", {\n /**\n * Gets the grid of the cell.\n * ```typescript\n * let grid = this.cell.grid;\n * ```\n * @memberof IgxGridCellComponent\n */\n get: /**\n * Gets the grid of the cell.\n * ```typescript\n * let grid = this.cell.grid;\n * ```\n * \\@memberof IgxGridCellComponent\n * @return {?}\n */\n function () {\n return this.gridAPI.grid;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxGridCellComponent.prototype, \"rowIndex\", {\n /**\n * Gets the `index` of the row where the cell is stored.\n * ```typescript\n * let rowIndex = this.cell.rowIndex;\n * ```\n * @memberof IgxGridCellComponent\n */\n get: /**\n * Gets the `index` of the row where the cell is stored.\n * ```typescript\n * let rowIndex = this.cell.rowIndex;\n * ```\n * \\@memberof IgxGridCellComponent\n * @return {?}\n */\n function () {\n return this.row.index;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxGridCellComponent.prototype, \"columnIndex\", {\n /**\n * Gets the `index` of the cell column.\n * ```typescript\n * let columnIndex = this.cell.columnIndex;\n * ```\n * @memberof IgxGridCellComponent\n */\n get: /**\n * Gets the `index` of the cell column.\n * ```typescript\n * let columnIndex = this.cell.columnIndex;\n * ```\n * \\@memberof IgxGridCellComponent\n * @return {?}\n */\n function () {\n return this.column.index;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxGridCellComponent.prototype, \"visibleColumnIndex\", {\n /**\n * Gets the visible `index` of the in which the cell is stored.\n * ```typescript\n * let visibleColumnIndex = this.cell.visibleColumnIndex;\n * ```\n * @memberof IgxGridCellComponent\n */\n get: /**\n * Gets the visible `index` of the in which the cell is stored.\n * ```typescript\n * let visibleColumnIndex = this.cell.visibleColumnIndex;\n * ```\n * \\@memberof IgxGridCellComponent\n * @return {?}\n */\n function () {\n return this.column.columnLayoutChild ? this.column.visibleIndex : this._vIndex;\n },\n set: /**\n * @param {?} val\n * @return {?}\n */\n function (val) {\n this._vIndex = val;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxGridCellComponent.prototype, \"cellID\", {\n /**\n * Gets the ID of the cell.\n * ```typescript\n * let cellID = this.cell.cellID;\n * ```\n * @memberof IgxGridCellComponent\n */\n get: /**\n * Gets the ID of the cell.\n * ```typescript\n * let cellID = this.cell.cellID;\n * ```\n * \\@memberof IgxGridCellComponent\n * @return {?}\n */\n function () {\n /** @type {?} */\n var primaryKey = this.grid.primaryKey;\n /** @type {?} */\n var rowID = primaryKey ? this.rowData[primaryKey] : this.rowData;\n return { rowID: rowID, columnID: this.columnIndex, rowIndex: this.rowIndex };\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxGridCellComponent.prototype, \"nativeElement\", {\n /**\n * Returns a reference to the nativeElement of the cell.\n * ```typescript\n * let cellNativeElement = this.cell.nativeElement;\n * ```\n * @memberof IgxGridCellComponent\n */\n get: /**\n * Returns a reference to the nativeElement of the cell.\n * ```typescript\n * let cellNativeElement = this.cell.nativeElement;\n * ```\n * \\@memberof IgxGridCellComponent\n * @return {?}\n */\n function () {\n return this.element.nativeElement;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxGridCellComponent.prototype, \"inEditMode\", {\n /**\n * @deprecated\n * Use `cell.editMode` as a getter and\n * `cell.setEditMode(true | false)` to start/exit edit mode.\n *\n * Gets/sets whether the cell is in edit mode.\n * ```typescript\n * let isCellInEditMode = this.cell.inEditMode;\n * ```\n * @memberof IgxGridCellComponent\n */\n get: /**\n * @deprecated\n * Use `cell.editMode` as a getter and\n * `cell.setEditMode(true | false)` to start/exit edit mode.\n *\n * Gets/sets whether the cell is in edit mode.\n * ```typescript\n * let isCellInEditMode = this.cell.inEditMode;\n * ```\n * \\@memberof IgxGridCellComponent\n * @return {?}\n */\n function () {\n return this.editMode;\n },\n set: /**\n * @param {?} value\n * @return {?}\n */\n function (value) {\n this.setEditMode(value);\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxGridCellComponent.prototype, \"cellSelectionMode\", {\n /**\n * @hidden\n * @internal\n */\n get: /**\n * @hidden\n * \\@internal\n * @return {?}\n */\n function () {\n return this._cellSelection;\n },\n set: /**\n * @param {?} value\n * @return {?}\n */\n function (value) {\n var _this = this;\n if (this._cellSelection === value) {\n return;\n }\n this.zone.runOutsideAngular(function () {\n value === GridSelectionMode.multiple ?\n _this.addPointerListeners(value) : _this.removePointerListeners(_this._cellSelection);\n });\n this._cellSelection = value;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxGridCellComponent.prototype, \"readonly\", {\n /**\n * Gets whether the cell is editable.\n * ```typescript\n * let isCellReadonly = this.cell.readonly;\n * ```\n * @memberof IgxGridCellComponent\n */\n get: /**\n * Gets whether the cell is editable.\n * ```typescript\n * let isCellReadonly = this.cell.readonly;\n * ```\n * \\@memberof IgxGridCellComponent\n * @return {?}\n */\n function () {\n return !this.column.editable;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxGridCellComponent.prototype, \"gridRowSpan\", {\n get: /**\n * @return {?}\n */\n function () {\n return this.column.gridRowSpan;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxGridCellComponent.prototype, \"gridColumnSpan\", {\n get: /**\n * @return {?}\n */\n function () {\n return this.column.gridColumnSpan;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxGridCellComponent.prototype, \"rowEnd\", {\n get: /**\n * @return {?}\n */\n function () {\n return this.column.rowEnd;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxGridCellComponent.prototype, \"colEnd\", {\n get: /**\n * @return {?}\n */\n function () {\n return this.column.colEnd;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxGridCellComponent.prototype, \"rowStart\", {\n get: /**\n * @return {?}\n */\n function () {\n return this.column.rowStart;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxGridCellComponent.prototype, \"colStart\", {\n get: /**\n * @return {?}\n */\n function () {\n return this.column.colStart;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxGridCellComponent.prototype, \"describedby\", {\n /**\n * Returns a string containing the grid `id` and the column `field` concatenated by \"_\".\n * ```typescript\n * let describedBy = this.cell.describedBy;\n * ```\n * @memberof IgxGridCellComponent\n */\n get: /**\n * Returns a string containing the grid `id` and the column `field` concatenated by \"_\".\n * ```typescript\n * let describedBy = this.cell.describedBy;\n * ```\n * \\@memberof IgxGridCellComponent\n * @return {?}\n */\n function () {\n return this.row.gridID + \"_\" + this.column.field;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxGridCellComponent.prototype, \"selected\", {\n /**\n * Gets whether the cell is selected.\n * ```typescript\n * let isSelected = this.cell.selected;\n * ```\n * @memberof IgxGridCellComponent\n */\n get: /**\n * Gets whether the cell is selected.\n * ```typescript\n * let isSelected = this.cell.selected;\n * ```\n * \\@memberof IgxGridCellComponent\n * @return {?}\n */\n function () {\n return this.selectionService.selected(this.selectionNode);\n },\n /**\n * Selects/deselects the cell.\n * ```typescript\n * this.cell.selected = true.\n * ```\n * @memberof IgxGridCellComponent\n */\n set: /**\n * Selects/deselects the cell.\n * ```typescript\n * this.cell.selected = true.\n * ```\n * \\@memberof IgxGridCellComponent\n * @param {?} val\n * @return {?}\n */\n function (val) {\n /** @type {?} */\n var node = this.selectionNode;\n val ? this.selectionService.add(node) : this.selectionService.remove(node);\n this.grid.notifyChanges();\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxGridCellComponent.prototype, \"dirty\", {\n get: /**\n * @return {?}\n */\n function () {\n if (this.grid.rowEditable) {\n /** @type {?} */\n var rowCurrentState = this.grid.transactions.getAggregatedValue(this.row.rowID, false);\n if (rowCurrentState) {\n return rowCurrentState[this.column.field] !== undefined && rowCurrentState[this.column.field] !== null;\n }\n }\n else {\n /** @type {?} */\n var rowTransaction = this.grid.transactions.getState(this.row.rowID);\n return rowTransaction && rowTransaction.value &&\n (rowTransaction.value[this.column.field] ||\n rowTransaction.value[this.column.field] === 0 ||\n rowTransaction.value[this.column.field] === false);\n }\n return false;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxGridCellComponent.prototype, \"editValue\", {\n /**\n * Gets the current edit value while a cell is in edit mode.\n * Only for cell editing mode.\n * ```typescript\n * let editValue = this.cell.editValue;\n * ```\n * @memberof IgxGridCellComponent\n */\n get: /**\n * Gets the current edit value while a cell is in edit mode.\n * Only for cell editing mode.\n * ```typescript\n * let editValue = this.cell.editValue;\n * ```\n * \\@memberof IgxGridCellComponent\n * @return {?}\n */\n function () {\n if (this.crudService.inEditMode) {\n return this.crudService.cell.editValue;\n }\n },\n /**\n * Sets the current edit value while a cell is in edit mode.\n * Only for cell editing mode.\n * ```typescript\n * this.cell.editValue = value;\n * ```\n * @memberof IgxGridCellComponent\n */\n set: /**\n * Sets the current edit value while a cell is in edit mode.\n * Only for cell editing mode.\n * ```typescript\n * this.cell.editValue = value;\n * ```\n * \\@memberof IgxGridCellComponent\n * @param {?} value\n * @return {?}\n */\n function (value) {\n if (this.crudService.inEditMode) {\n this.crudService.cell.editValue = value;\n }\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxGridCellComponent.prototype, \"editable\", {\n /**\n * Returns whether the cell is editable.\n */\n get: /**\n * Returns whether the cell is editable.\n * @return {?}\n */\n function () {\n return this.column.editable;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxGridCellComponent.prototype, \"highlight\", {\n get: /**\n * @protected\n * @return {?}\n */\n function () {\n return this._highlight;\n },\n set: /**\n * @protected\n * @param {?} value\n * @return {?}\n */\n function (value) {\n this._highlight = value;\n if (this._highlight && this.grid.lastSearchInfo.searchText) {\n this._highlight.highlight(this.grid.lastSearchInfo.searchText, this.grid.lastSearchInfo.caseSensitive, this.grid.lastSearchInfo.exactMatch);\n this._highlight.activateIfNecessary();\n }\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxGridCellComponent.prototype, \"selectionNode\", {\n get: /**\n * @protected\n * @return {?}\n */\n function () {\n return {\n row: this.rowIndex,\n column: this.column.columnLayoutChild ? this.column.parent.visibleIndex : this.visibleColumnIndex,\n layout: this.column.columnLayoutChild ? {\n rowStart: this.column.rowStart,\n colStart: this.column.colStart,\n rowEnd: this.column.rowEnd,\n colEnd: this.column.colEnd,\n columnVisibleIndex: this.visibleColumnIndex\n } : null\n };\n },\n enumerable: true,\n configurable: true\n });\n /**\n * @private\n * @param {?} selection\n * @return {?}\n */\n IgxGridCellComponent.prototype.addPointerListeners = /**\n * @private\n * @param {?} selection\n * @return {?}\n */\n function (selection) {\n if (selection !== GridSelectionMode.multiple) {\n return;\n }\n this.nativeElement.addEventListener('pointerdown', this.pointerdown);\n this.nativeElement.addEventListener('pointerenter', this.pointerenter);\n this.nativeElement.addEventListener('pointerup', this.pointerup);\n };\n /**\n * @private\n * @param {?} selection\n * @return {?}\n */\n IgxGridCellComponent.prototype.removePointerListeners = /**\n * @private\n * @param {?} selection\n * @return {?}\n */\n function (selection) {\n if (selection !== GridSelectionMode.multiple) {\n return;\n }\n this.nativeElement.removeEventListener('pointerdown', this.pointerdown);\n this.nativeElement.removeEventListener('pointerenter', this.pointerenter);\n this.nativeElement.removeEventListener('pointerup', this.pointerup);\n };\n /**\n * @hidden\n * @internal\n */\n /**\n * @hidden\n * \\@internal\n * @return {?}\n */\n IgxGridCellComponent.prototype.ngOnInit = /**\n * @hidden\n * \\@internal\n * @return {?}\n */\n function () {\n var _this = this;\n this.zone.runOutsideAngular(function () {\n _this.addPointerListeners(_this.cellSelectionMode);\n // IE 11 workarounds\n if (isIE()) {\n _this.compositionStartHandler = function () { return _this.isInCompositionMode = true; };\n _this.compositionEndHandler = function () { return _this.isInCompositionMode = false; };\n // Hitting Enter with IME submits and exits from edit mode instead of first closing the IME dialog\n _this.nativeElement.addEventListener('compositionstart', _this.compositionStartHandler);\n _this.nativeElement.addEventListener('compositionend', _this.compositionEndHandler);\n }\n });\n if (this.platformUtil.isIOS) {\n this.touchManager.addEventListener(this.nativeElement, 'doubletap', this.onDoubleClick, (/** @type {?} */ ({\n cssProps: {} /* don't disable user-select, etc */\n })));\n }\n };\n /**\n * @hidden\n * @internal\n */\n /**\n * @hidden\n * \\@internal\n * @return {?}\n */\n IgxGridCellComponent.prototype.ngOnDestroy = /**\n * @hidden\n * \\@internal\n * @return {?}\n */\n function () {\n var _this = this;\n this.zone.runOutsideAngular(function () {\n _this.removePointerListeners(_this.cellSelectionMode);\n if (isIE()) {\n _this.nativeElement.removeEventListener('compositionstart', _this.compositionStartHandler);\n _this.nativeElement.removeEventListener('compositionend', _this.compositionEndHandler);\n }\n });\n this.touchManager.destroy();\n };\n /**\n * @hidden\n * @internal\n */\n /**\n * @hidden\n * \\@internal\n * @return {?}\n */\n IgxGridCellComponent.prototype._updateCRUDStatus = /**\n * @hidden\n * \\@internal\n * @return {?}\n */\n function () {\n if (this.editMode) {\n return;\n }\n /** @type {?} */\n var crud = this.crudService;\n /** @type {?} */\n var editableCell = this.crudService.cell;\n /** @type {?} */\n var editMode = !!(crud.row || crud.cell);\n if (this.editable && editMode && !this.row.deleted) {\n if (editableCell) {\n this.gridAPI.update_cell(editableCell, editableCell.editValue);\n }\n crud.end();\n this.grid.notifyChanges();\n crud.begin(this);\n return;\n }\n if (editableCell && crud.sameRow(this.cellID.rowID)) {\n this.gridAPI.submit_value();\n }\n else if (editMode && !crud.sameRow(this.cellID.rowID)) {\n this.grid.endEdit(true);\n }\n };\n /**\n * @deprecated\n * Gets whether the cell is selected.\n * ```typescript\n * let isCellSelected = thid.cell.isCellSelected();\n * ```\n * @memberof IgxGridCellComponent\n */\n /**\n * @deprecated\n * Gets whether the cell is selected.\n * ```typescript\n * let isCellSelected = thid.cell.isCellSelected();\n * ```\n * \\@memberof IgxGridCellComponent\n * @return {?}\n */\n IgxGridCellComponent.prototype.isCellSelected = /**\n * @deprecated\n * Gets whether the cell is selected.\n * ```typescript\n * let isCellSelected = thid.cell.isCellSelected();\n * ```\n * \\@memberof IgxGridCellComponent\n * @return {?}\n */\n function () {\n return this.selectionService.selected(this.selectionNode);\n };\n /**\n * @hidden\n * @internal\n */\n /**\n * @hidden\n * \\@internal\n * @param {?} changes\n * @return {?}\n */\n IgxGridCellComponent.prototype.ngOnChanges = /**\n * @hidden\n * \\@internal\n * @param {?} changes\n * @return {?}\n */\n function (changes) {\n if (changes.value && !changes.value.firstChange) {\n if (this.highlight) {\n this.highlight.lastSearchInfo.searchedText = this.grid.lastSearchInfo.searchText;\n this.highlight.lastSearchInfo.caseSensitive = this.grid.lastSearchInfo.caseSensitive;\n this.highlight.lastSearchInfo.exactMatch = this.grid.lastSearchInfo.exactMatch;\n }\n }\n };\n /**\n * Starts/ends edit mode for the cell.\n *\n * ```typescript\n * cell.setEditMode(true);\n * ```\n */\n /**\n * Starts/ends edit mode for the cell.\n *\n * ```typescript\n * cell.setEditMode(true);\n * ```\n * @param {?} value\n * @return {?}\n */\n IgxGridCellComponent.prototype.setEditMode = /**\n * Starts/ends edit mode for the cell.\n *\n * ```typescript\n * cell.setEditMode(true);\n * ```\n * @param {?} value\n * @return {?}\n */\n function (value) {\n if (this.row.deleted) {\n return;\n }\n if (this.editable && value) {\n this.gridAPI.submit_value();\n this.crudService.begin(this);\n }\n else {\n this.gridAPI.escape_editMode();\n }\n this.grid.notifyChanges();\n };\n /**\n * Sets new value to the cell.\n * ```typescript\n * this.cell.update('New Value');\n * ```\n * @memberof IgxGridCellComponent\n */\n // TODO: Refactor\n /**\n * Sets new value to the cell.\n * ```typescript\n * this.cell.update('New Value');\n * ```\n * \\@memberof IgxGridCellComponent\n * @param {?} val\n * @return {?}\n */\n // TODO: Refactor\n IgxGridCellComponent.prototype.update = /**\n * Sets new value to the cell.\n * ```typescript\n * this.cell.update('New Value');\n * ```\n * \\@memberof IgxGridCellComponent\n * @param {?} val\n * @return {?}\n */\n // TODO: Refactor\n function (val) {\n if (this.row.deleted) {\n return;\n }\n /** @type {?} */\n var cell = this.crudService.createCell(this);\n /** @type {?} */\n var args = this.gridAPI.update_cell(cell, val);\n if (this.crudService.cell && this.crudService.sameCell(cell)) {\n if (args.cancel) {\n return;\n }\n this.gridAPI.escape_editMode();\n }\n this.cdr.markForCheck();\n };\n /**\n * @hidden\n * @internal\n */\n /**\n * @hidden\n * \\@internal\n * @param {?} event\n * @return {?}\n */\n IgxGridCellComponent.prototype.onClick = /**\n * @hidden\n * \\@internal\n * @param {?} event\n * @return {?}\n */\n function (event) {\n this.grid.onCellClick.emit({\n cell: this,\n event: event\n });\n };\n /**\n * @hidden\n * @internal\n */\n /**\n * @hidden\n * \\@internal\n * @param {?} event\n * @return {?}\n */\n IgxGridCellComponent.prototype.onContextMenu = /**\n * @hidden\n * \\@internal\n * @param {?} event\n * @return {?}\n */\n function (event) {\n this.grid.onContextMenu.emit({\n cell: this,\n event: event\n });\n };\n /**\n * @hidden\n * @internal\n */\n /**\n * @hidden\n * \\@internal\n * @param {?} event\n * @return {?}\n */\n IgxGridCellComponent.prototype.onFocus = /**\n * @hidden\n * \\@internal\n * @param {?} event\n * @return {?}\n */\n function (event) {\n if (this.focused) {\n return;\n }\n this.focused = true;\n this.row.focused = true;\n /** @type {?} */\n var node = this.selectionNode;\n /** @type {?} */\n var shouldEmitSelection = !this.selectionService.isActiveNode(node);\n if (this.selectionService.primaryButton) {\n this._updateCRUDStatus();\n this.selectionService.activeElement = node;\n }\n else {\n this.selectionService.activeElement = null;\n if (this.crudService.inEditMode && !this.editMode) {\n this.gridAPI.submit_value();\n }\n }\n this.selectionService.primaryButton = true;\n if (this.cellSelectionMode === GridSelectionMode.multiple && this.selectionService.activeElement) {\n this.selectionService.add(this.selectionService.activeElement, false); // pointer events handle range generation\n this.selectionService.keyboardStateOnFocus(node, this.grid.onRangeSelection, this.nativeElement);\n }\n if (this.grid.isCellSelectable && shouldEmitSelection) {\n this.grid.onSelection.emit({ cell: this, event: event });\n }\n };\n /**\n * @hidden\n * @internal\n */\n /**\n * @hidden\n * \\@internal\n * @return {?}\n */\n IgxGridCellComponent.prototype.onBlur = /**\n * @hidden\n * \\@internal\n * @return {?}\n */\n function () {\n this.focused = false;\n this.row.focused = false;\n };\n /**\n * @protected\n * @param {?} key\n * @param {?} event\n * @return {?}\n */\n IgxGridCellComponent.prototype.handleAlt = /**\n * @protected\n * @param {?} key\n * @param {?} event\n * @return {?}\n */\n function (key, event) {\n if (this.row.nativeElement.tagName.toLowerCase() === 'igx-tree-grid-row' && this.isToggleKey(key)) {\n /** @type {?} */\n var collapse = ((/** @type {?} */ (this.row))).expanded && ROW_COLLAPSE_KEYS.has(key);\n /** @type {?} */\n var expand = !((/** @type {?} */ (this.row))).expanded && ROW_EXPAND_KEYS.has(key);\n if (collapse) {\n ((/** @type {?} */ (this.gridAPI))).trigger_row_expansion_toggle(this.row.treeRow, !this.row.expanded, event, this.visibleColumnIndex);\n }\n else if (expand) {\n ((/** @type {?} */ (this.gridAPI))).trigger_row_expansion_toggle(this.row.treeRow, !this.row.expanded, event, this.visibleColumnIndex);\n }\n }\n };\n /**\n * @protected\n * @param {?} shift\n * @return {?}\n */\n IgxGridCellComponent.prototype.handleTab = /**\n * @protected\n * @param {?} shift\n * @return {?}\n */\n function (shift) {\n if (shift) {\n this.grid.navigation.performShiftTabKey(this.row.nativeElement, this.selectionNode);\n }\n else {\n this.grid.navigation.performTab(this.row.nativeElement, this.selectionNode);\n }\n };\n /**\n * @protected\n * @param {?} ctrl\n * @return {?}\n */\n IgxGridCellComponent.prototype.handleEnd = /**\n * @protected\n * @param {?} ctrl\n * @return {?}\n */\n function (ctrl) {\n if (ctrl) {\n this.grid.navigation.goToLastCell();\n }\n else {\n this.grid.navigation.onKeydownEnd(this.rowIndex, false, this.rowStart);\n }\n };\n /**\n * @protected\n * @param {?} ctrl\n * @return {?}\n */\n IgxGridCellComponent.prototype.handleHome = /**\n * @protected\n * @param {?} ctrl\n * @return {?}\n */\n function (ctrl) {\n if (ctrl) {\n this.grid.navigation.goToFirstCell();\n }\n else {\n this.grid.navigation.onKeydownHome(this.rowIndex, false, this.rowStart);\n }\n };\n // TODO: Refactor\n /**\n *\n * @hidden\n * @internal\n */\n // TODO: Refactor\n /**\n *\n * @hidden\n * \\@internal\n * @param {?} event\n * @return {?}\n */\n IgxGridCellComponent.prototype.dispatchEvent = \n // TODO: Refactor\n /**\n *\n * @hidden\n * \\@internal\n * @param {?} event\n * @return {?}\n */\n function (event) {\n /** @type {?} */\n var key = event.key.toLowerCase();\n /** @type {?} */\n var shift = event.shiftKey;\n /** @type {?} */\n var ctrl = event.ctrlKey;\n /** @type {?} */\n var node = this.selectionNode;\n if (!SUPPORTED_KEYS.has(key)) {\n return;\n }\n event.stopPropagation();\n /** @type {?} */\n var keydownArgs = { targetType: 'dataCell', target: this, event: event, cancel: false };\n this.grid.onGridKeydown.emit(keydownArgs);\n if (keydownArgs.cancel) {\n this.selectionService.clear();\n this.selectionService.keyboardState.active = true;\n return;\n }\n if (event.altKey) {\n event.preventDefault();\n this.handleAlt(key, event);\n return;\n }\n this.selectionService.keyboardStateOnKeydown(node, shift, shift && key === 'tab');\n if (key === 'tab') {\n event.preventDefault();\n }\n if (this.editMode) {\n if (NAVIGATION_KEYS.has(key)) {\n if (this.column.inlineEditorTemplate) {\n return;\n }\n if (['date', 'boolean'].indexOf(this.column.dataType) > -1) {\n return;\n }\n return;\n }\n }\n if (NAVIGATION_KEYS.has(key)) {\n event.preventDefault();\n }\n switch (key) {\n case 'tab':\n this.handleTab(shift);\n break;\n case 'end':\n this.handleEnd(ctrl);\n break;\n case 'home':\n this.handleHome(ctrl);\n break;\n case 'arrowleft':\n case 'left':\n if (ctrl) {\n this.grid.navigation.onKeydownHome(node.row, false, this.rowStart);\n break;\n }\n this.grid.navigation.onKeydownArrowLeft(this.nativeElement, this.selectionNode);\n break;\n case 'arrowright':\n case 'right':\n if (ctrl) {\n this.grid.navigation.onKeydownEnd(node.row, false, this.rowStart);\n break;\n }\n this.grid.navigation.onKeydownArrowRight(this.nativeElement, this.selectionNode);\n break;\n case 'arrowup':\n case 'up':\n if (ctrl) {\n this.grid.navigation.navigateTop(this.visibleColumnIndex);\n break;\n }\n this.grid.navigation.navigateUp(this.row.nativeElement, this.selectionNode);\n break;\n case 'arrowdown':\n case 'down':\n if (ctrl) {\n this.grid.navigation.navigateBottom(this.visibleColumnIndex);\n break;\n }\n this.grid.navigation.navigateDown(this.row.nativeElement, this.selectionNode);\n break;\n case 'enter':\n case 'f2':\n this.onKeydownEnterEditMode();\n break;\n case 'escape':\n case 'esc':\n this.onKeydownExitEditMode();\n break;\n case ' ':\n case 'spacebar':\n case 'space':\n if (this.grid.isRowSelectable) {\n this.row.selected ? this.selectionService.deselectRow(this.row.rowID, event) :\n this.selectionService.selectRowById(this.row.rowID, false, event);\n }\n break;\n default:\n return;\n }\n };\n /**\n * @hidden\n * @internal\n */\n /**\n * @hidden\n * \\@internal\n * @return {?}\n */\n IgxGridCellComponent.prototype.onKeydownEnterEditMode = /**\n * @hidden\n * \\@internal\n * @return {?}\n */\n function () {\n if (this.isInCompositionMode) {\n return;\n }\n if (this.column.editable && !this.row.deleted) {\n if (this.editMode) {\n this.grid.endEdit(true);\n this.nativeElement.focus();\n }\n else {\n this.crudService.begin(this);\n }\n }\n };\n /**\n * @hidden\n * @internal\n */\n /**\n * @hidden\n * \\@internal\n * @return {?}\n */\n IgxGridCellComponent.prototype.onKeydownExitEditMode = /**\n * @hidden\n * \\@internal\n * @return {?}\n */\n function () {\n if (this.isInCompositionMode) {\n return;\n }\n if (this.editMode) {\n /** @type {?} */\n var args = this.crudService.cell.createEditEventArgs();\n this.grid.onCellEditCancel.emit(args);\n if (args.cancel) {\n return;\n }\n this.grid.endEdit(false);\n this.nativeElement.focus();\n }\n };\n /**\n * If the provided string matches the text in the cell, the text gets highlighted.\n * ```typescript\n * this.cell.highlightText('Cell Value', true);\n * ```\n * @memberof IgxGridCellComponent\n */\n /**\n * If the provided string matches the text in the cell, the text gets highlighted.\n * ```typescript\n * this.cell.highlightText('Cell Value', true);\n * ```\n * \\@memberof IgxGridCellComponent\n * @param {?} text\n * @param {?=} caseSensitive\n * @param {?=} exactMatch\n * @return {?}\n */\n IgxGridCellComponent.prototype.highlightText = /**\n * If the provided string matches the text in the cell, the text gets highlighted.\n * ```typescript\n * this.cell.highlightText('Cell Value', true);\n * ```\n * \\@memberof IgxGridCellComponent\n * @param {?} text\n * @param {?=} caseSensitive\n * @param {?=} exactMatch\n * @return {?}\n */\n function (text, caseSensitive, exactMatch) {\n return this.highlight && this.column.searchable ? this.highlight.highlight(text, caseSensitive, exactMatch) : 0;\n };\n /**\n * Clears the highlight of the text in the cell.\n * ```typescript\n * this.cell.clearHighLight();\n * ```\n * @memberof IgxGridCellComponent\n */\n /**\n * Clears the highlight of the text in the cell.\n * ```typescript\n * this.cell.clearHighLight();\n * ```\n * \\@memberof IgxGridCellComponent\n * @return {?}\n */\n IgxGridCellComponent.prototype.clearHighlight = /**\n * Clears the highlight of the text in the cell.\n * ```typescript\n * this.cell.clearHighLight();\n * ```\n * \\@memberof IgxGridCellComponent\n * @return {?}\n */\n function () {\n if (this.highlight && this.column.searchable) {\n this.highlight.clearHighlight();\n }\n };\n /**\n * @hidden\n * @internal\n */\n /**\n * @hidden\n * \\@internal\n * @param {?} range\n * @return {?}\n */\n IgxGridCellComponent.prototype.calculateSizeToFit = /**\n * @hidden\n * \\@internal\n * @param {?} range\n * @return {?}\n */\n function (range) {\n return Math.max.apply(Math, __spread(Array.from(this.nativeElement.children)\n .map(function (child) { return getNodeSizeViaRange(range, child); })));\n };\n /**\n * @private\n * @param {?} key\n * @return {?}\n */\n IgxGridCellComponent.prototype.isToggleKey = /**\n * @private\n * @param {?} key\n * @return {?}\n */\n function (key) {\n return ROW_COLLAPSE_KEYS.has(key) || ROW_EXPAND_KEYS.has(key);\n };\n IgxGridCellComponent.decorators = [\n { type: Component, args: [{\n changeDetection: ChangeDetectionStrategy.OnPush,\n selector: 'igx-grid-cell',\n template: \"\\n
{{ formatter ? formatter(value) : column.dataType === 'number' ? (value | igxdecimal:\\n grid.locale) : column.dataType === 'date' ? (value | igxdate: grid.locale) : value }}
\\n
\\n\\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n\\n\\n\\n\",\n providers: [HammerGesturesManager]\n }] }\n ];\n /** @nocollapse */\n IgxGridCellComponent.ctorParameters = function () { return [\n { type: IgxGridSelectionService },\n { type: IgxGridCRUDService },\n { type: GridBaseAPIService },\n { type: ChangeDetectorRef },\n { type: ElementRef },\n { type: NgZone },\n { type: HammerGesturesManager },\n { type: PlatformUtil }\n ]; };\n IgxGridCellComponent.propDecorators = {\n column: [{ type: Input }],\n row: [{ type: Input }],\n rowData: [{ type: Input }],\n cellTemplate: [{ type: Input }],\n value: [{ type: Input }],\n formatter: [{ type: Input }],\n rowIndex: [{ type: HostBinding, args: ['attr.data-rowIndex',] }],\n visibleColumnIndex: [{ type: HostBinding, args: ['attr.data-visibleIndex',] }, { type: Input }],\n cellSelectionMode: [{ type: Input }],\n lastPinned: [{ type: Input }, { type: HostBinding, args: ['class.igx-grid__td--pinned-last',] }],\n editMode: [{ type: Input }, { type: HostBinding, args: ['class.igx-grid__td--editing',] }],\n tabindex: [{ type: HostBinding, args: ['attr.tabindex',] }],\n role: [{ type: HostBinding, args: ['attr.role',] }],\n readonly: [{ type: HostBinding, args: ['attr.aria-readonly',] }],\n gridRowSpan: [{ type: HostBinding, args: ['style.-ms-grid-row-span',] }],\n gridColumnSpan: [{ type: HostBinding, args: ['style.-ms-grid-column-span',] }],\n rowEnd: [{ type: HostBinding, args: ['style.grid-row-end',] }],\n colEnd: [{ type: HostBinding, args: ['style.grid-column-end',] }],\n rowStart: [{ type: HostBinding, args: ['style.-ms-grid-row',] }, { type: HostBinding, args: ['style.grid-row-start',] }],\n colStart: [{ type: HostBinding, args: ['style.-ms-grid-column',] }, { type: HostBinding, args: ['style.grid-column-start',] }],\n describedby: [{ type: HostBinding, args: ['attr.aria-describedby',] }],\n width: [{ type: HostBinding, args: ['style.min-width',] }, { type: HostBinding, args: ['style.max-width',] }, { type: HostBinding, args: ['style.flex-basis',] }, { type: Input }],\n selected: [{ type: HostBinding, args: ['attr.aria-selected',] }, { type: HostBinding, args: ['class.igx-grid__td--selected',] }],\n dirty: [{ type: HostBinding, args: ['class.igx-grid__td--edited',] }],\n focused: [{ type: HostBinding, args: ['class.igx-grid__td--active',] }],\n defaultCellTemplate: [{ type: ViewChild, args: ['defaultCell', { read: TemplateRef, static: true },] }],\n inlineEditorTemplate: [{ type: ViewChild, args: ['inlineEditor', { read: TemplateRef, static: true },] }],\n highlight: [{ type: ViewChild, args: [IgxTextHighlightDirective, { read: IgxTextHighlightDirective, static: false },] }],\n onDoubleClick: [{ type: HostListener, args: ['dblclick', ['$event'],] }],\n onClick: [{ type: HostListener, args: ['click', ['$event'],] }],\n onContextMenu: [{ type: HostListener, args: ['contextmenu', ['$event'],] }],\n onFocus: [{ type: HostListener, args: ['focus', ['$event'],] }],\n onBlur: [{ type: HostListener, args: ['blur',] }],\n dispatchEvent: [{ type: HostListener, args: ['keydown', ['$event'],] }]\n };\n __decorate([\n DeprecateProperty(\"'inEditMode' is deprecated\\nUse 'editMode' to get the current state and 'setEditMode(boolean)' as a setter\"),\n __metadata(\"design:type\", Boolean),\n __metadata(\"design:paramtypes\", [Boolean])\n ], IgxGridCellComponent.prototype, \"inEditMode\", null);\n __decorate([\n DeprecateMethod(\"'isCellSelected' is deprecated. Use 'selected' property instead.\"),\n __metadata(\"design:type\", Function),\n __metadata(\"design:paramtypes\", []),\n __metadata(\"design:returntype\", void 0)\n ], IgxGridCellComponent.prototype, \"isCellSelected\", null);\n return IgxGridCellComponent;\n}());\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n/**\n * @abstract\n * @template T\n */\nvar IgxRowComponent = /** @class */ (function () {\n function IgxRowComponent(gridAPI, crudService, selectionService, element, cdr) {\n this.gridAPI = gridAPI;\n this.crudService = crudService;\n this.selectionService = selectionService;\n this.element = element;\n this.cdr = cdr;\n /**\n * @hidden\n */\n this.role = 'row';\n /**\n * @hidden\n */\n this.dragging = false;\n /**\n * @hidden\n */\n this.focused = false;\n /**\n * @hidden\n * \\@internal\n */\n this.defaultCssClass = 'igx-grid__tr';\n }\n Object.defineProperty(IgxRowComponent.prototype, \"rowData\", {\n /**\n * The data passed to the row component.\n *\n * ```typescript\n * // get the row data for the first selected row\n * let selectedRowData = this.grid.selectedRows[0].rowData;\n * ```\n */\n get: /**\n * The data passed to the row component.\n *\n * ```typescript\n * // get the row data for the first selected row\n * let selectedRowData = this.grid.selectedRows[0].rowData;\n * ```\n * @return {?}\n */\n function () {\n if (this.inEditMode) {\n return Object.assign({}, this._rowData, this.grid.transactions.getAggregatedValue(this.rowID, false));\n }\n return this._rowData;\n },\n set: /**\n * @param {?} v\n * @return {?}\n */\n function (v) {\n this._rowData = v;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxRowComponent.prototype, \"dataRowIndex\", {\n get: /**\n * @return {?}\n */\n function () {\n return this.index;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxRowComponent.prototype, \"styleClasses\", {\n /**\n * @hidden\n */\n get: /**\n * @hidden\n * @return {?}\n */\n function () {\n return this.resolveClasses();\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxRowComponent.prototype, \"selected\", {\n /**\n * @hidden\n */\n get: /**\n * @hidden\n * @return {?}\n */\n function () {\n return this.selectionService.isRowSelected(this.rowID);\n },\n set: /**\n * @param {?} value\n * @return {?}\n */\n function (value) {\n value ? this.selectionService.selectRowsWithNoEvent([this.rowID]) :\n this.selectionService.deselectRowsWithNoEvent([this.rowID]);\n this.grid.cdr.markForCheck();\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxRowComponent.prototype, \"columns\", {\n /**\n * @hidden\n */\n get: /**\n * @hidden\n * @return {?}\n */\n function () {\n return this.grid.visibleColumns;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxRowComponent.prototype, \"viewIndex\", {\n /**\n * @hidden\n * @internal\n */\n get: /**\n * @hidden\n * \\@internal\n * @return {?}\n */\n function () {\n if (((/** @type {?} */ (this.grid))).groupingExpressions.length) {\n return this.grid.filteredSortedData.indexOf(this.rowData);\n }\n return this.index + this.grid.page * this.grid.perPage;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxRowComponent.prototype, \"pinnedColumns\", {\n /**\n * @hidden\n */\n get: /**\n * @hidden\n * @return {?}\n */\n function () {\n return this.grid.pinnedColumns;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxRowComponent.prototype, \"unpinnedColumns\", {\n /**\n * @hidden\n */\n get: /**\n * @hidden\n * @return {?}\n */\n function () {\n return this.grid.unpinnedColumns;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxRowComponent.prototype, \"showRowSelectors\", {\n /**\n * @hidden\n */\n get: /**\n * @hidden\n * @return {?}\n */\n function () {\n return this.grid.showRowSelectors;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxRowComponent.prototype, \"dirty\", {\n /** @hidden */\n get: /**\n * @hidden\n * @return {?}\n */\n function () {\n /** @type {?} */\n var row = this.grid.transactions.getState(this.rowID);\n if (row) {\n return row.type === TransactionType.ADD || row.type === TransactionType.UPDATE;\n }\n return false;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxRowComponent.prototype, \"isSelected\", {\n get: /**\n * @return {?}\n */\n function () {\n return this.selectionService.isRowSelected(this.rowID);\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxRowComponent.prototype, \"rowDraggable\", {\n /**\n * @hidden\n */\n get: /**\n * @hidden\n * @return {?}\n */\n function () {\n return this.grid.rowDraggable;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxRowComponent.prototype, \"added\", {\n /** @hidden */\n get: /**\n * @hidden\n * @return {?}\n */\n function () {\n /** @type {?} */\n var row = this.grid.transactions.getState(this.rowID);\n if (row) {\n return row.type === TransactionType.ADD;\n }\n return false;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxRowComponent.prototype, \"deleted\", {\n /** @hidden */\n get: /**\n * @hidden\n * @return {?}\n */\n function () {\n return this.gridAPI.row_deleted_transaction(this.rowID);\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxRowComponent.prototype, \"inEditMode\", {\n // TODO: Refactor\n get: \n // TODO: Refactor\n /**\n * @return {?}\n */\n function () {\n if (this.grid.rowEditable) {\n /** @type {?} */\n var editRowState = this.crudService.row;\n return (editRowState && editRowState.id === this.rowID) || false;\n }\n else {\n return false;\n }\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxRowComponent.prototype, \"grid\", {\n /**\n * Get a reference to the grid that contains the selected row.\n *\n * ```typescript\n * handleRowSelection(event) {\n * // the grid on which the onRowSelectionChange event was triggered\n * const grid = event.row.grid;\n * }\n * ```\n *\n * ```html\n * \n * \n * ```\n */\n get: /**\n * Get a reference to the grid that contains the selected row.\n *\n * ```typescript\n * handleRowSelection(event) {\n * // the grid on which the onRowSelectionChange event was triggered\n * const grid = event.row.grid;\n * }\n * ```\n *\n * ```html\n * \n * \n * ```\n * @return {?}\n */\n function () {\n return this.gridAPI.grid;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxRowComponent.prototype, \"rowID\", {\n /**\n * Gets the ID of the row.\n * A row in the grid is identified either by:\n * - primaryKey data value,\n * - the whole rowData, if the primaryKey is omitted.\n *\n * ```typescript\n * let rowID = this.grid.selectedRows[2].rowID;\n * ```\n */\n get: /**\n * Gets the ID of the row.\n * A row in the grid is identified either by:\n * - primaryKey data value,\n * - the whole rowData, if the primaryKey is omitted.\n *\n * ```typescript\n * let rowID = this.grid.selectedRows[2].rowID;\n * ```\n * @return {?}\n */\n function () {\n /** @type {?} */\n var primaryKey = this.grid.primaryKey;\n return primaryKey ? this._rowData[primaryKey] : this._rowData;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxRowComponent.prototype, \"nativeElement\", {\n /**\n * The native DOM element representing the row. Could be null in certain environments.\n *\n * ```typescript\n * // get the nativeElement of the second selected row\n * let selectedRowNativeElement = this.grid.selectedRows[1].nativeElement;\n * ```\n */\n get: /**\n * The native DOM element representing the row. Could be null in certain environments.\n *\n * ```typescript\n * // get the nativeElement of the second selected row\n * let selectedRowNativeElement = this.grid.selectedRows[1].nativeElement;\n * ```\n * @return {?}\n */\n function () {\n return this.element.nativeElement;\n },\n enumerable: true,\n configurable: true\n });\n /**\n * @hidden\n * @internal\n */\n /**\n * @hidden\n * \\@internal\n * @param {?} event\n * @return {?}\n */\n IgxRowComponent.prototype.onClick = /**\n * @hidden\n * \\@internal\n * @param {?} event\n * @return {?}\n */\n function (event) {\n if (this.grid.rowSelection === 'none' || this.deleted) {\n return;\n }\n if (event.shiftKey && this.grid.rowSelection === 'multiple') {\n this.selectionService.selectMultipleRows(this.rowID, this.rowData, event);\n return;\n }\n this.selectionService.selectRowById(this.rowID, !event.ctrlKey, event);\n };\n /**\n * @hidden\n */\n /**\n * @hidden\n * @param {?} event\n * @return {?}\n */\n IgxRowComponent.prototype.onRowSelectorClick = /**\n * @hidden\n * @param {?} event\n * @return {?}\n */\n function (event) {\n event.stopPropagation();\n if (event.shiftKey && this.grid.rowSelection === 'multiple') {\n this.selectionService.selectMultipleRows(this.rowID, this.rowData, event);\n return;\n }\n this.selected ? this.selectionService.deselectRow(this.rowID, event) :\n this.selectionService.selectRowById(this.rowID, false, event);\n };\n /**\n * Updates the specified row object and the data source record with the passed value.\n * This method emits `onEditDone` event.\n *\n * ```typescript\n * // update the second selected row's value\n * let newValue = \"Apple\";\n * this.grid.selectedRows[1].update(newValue);\n * ```\n */\n /**\n * Updates the specified row object and the data source record with the passed value.\n * This method emits `onEditDone` event.\n *\n * ```typescript\n * // update the second selected row's value\n * let newValue = \"Apple\";\n * this.grid.selectedRows[1].update(newValue);\n * ```\n * @param {?} value\n * @return {?}\n */\n IgxRowComponent.prototype.update = /**\n * Updates the specified row object and the data source record with the passed value.\n * This method emits `onEditDone` event.\n *\n * ```typescript\n * // update the second selected row's value\n * let newValue = \"Apple\";\n * this.grid.selectedRows[1].update(newValue);\n * ```\n * @param {?} value\n * @return {?}\n */\n function (value) {\n /** @type {?} */\n var crudService = this.crudService;\n if (crudService.inEditMode && crudService.cell.id.rowID === this.rowID) {\n this.grid.endEdit(false);\n }\n /** @type {?} */\n var row = new IgxRow(this.rowID, this.index, this.rowData);\n this.gridAPI.update_row(row, value);\n this.cdr.markForCheck();\n };\n /**\n * Removes the specified row from the grid's data source.\n * This method emits `onRowDeleted` event.\n *\n * ```typescript\n * // delete the third selected row from the grid\n * this.grid.selectedRows[2].delete();\n * ```\n */\n /**\n * Removes the specified row from the grid's data source.\n * This method emits `onRowDeleted` event.\n *\n * ```typescript\n * // delete the third selected row from the grid\n * this.grid.selectedRows[2].delete();\n * ```\n * @return {?}\n */\n IgxRowComponent.prototype.delete = /**\n * Removes the specified row from the grid's data source.\n * This method emits `onRowDeleted` event.\n *\n * ```typescript\n * // delete the third selected row from the grid\n * this.grid.selectedRows[2].delete();\n * ```\n * @return {?}\n */\n function () {\n this.grid.deleteRowById(this.rowID);\n };\n Object.defineProperty(IgxRowComponent.prototype, \"rowCheckboxAriaLabel\", {\n /**\n * @hidden\n */\n get: /**\n * @hidden\n * @return {?}\n */\n function () {\n return this.grid.primaryKey ?\n this.selected ? 'Deselect row with key ' + this.rowID : 'Select row with key ' + this.rowID :\n this.selected ? 'Deselect row' : 'Select row';\n },\n enumerable: true,\n configurable: true\n });\n /**\n * @hidden\n */\n /**\n * @hidden\n * @return {?}\n */\n IgxRowComponent.prototype.ngDoCheck = /**\n * @hidden\n * @return {?}\n */\n function () {\n this.cdr.markForCheck();\n };\n /**\n * @hidden\n */\n /**\n * @hidden\n * @protected\n * @return {?}\n */\n IgxRowComponent.prototype.resolveClasses = /**\n * @hidden\n * @protected\n * @return {?}\n */\n function () {\n /** @type {?} */\n var indexClass = this.index % 2 ? this.grid.evenRowCSS : this.grid.oddRowCSS;\n /** @type {?} */\n var selectedClass = this.selected ? 'igx-grid__tr--selected' : '';\n /** @type {?} */\n var editClass = this.inEditMode ? 'igx-grid__tr--edit' : '';\n /** @type {?} */\n var dirtyClass = this.dirty ? 'igx-grid__tr--edited' : '';\n /** @type {?} */\n var deletedClass = this.deleted ? 'igx-grid__tr--deleted' : '';\n /** @type {?} */\n var mrlClass = this.grid.hasColumnLayouts ? 'igx-grid__tr--mrl' : '';\n /** @type {?} */\n var dragClass = this.dragging ? 'igx-grid__tr--drag' : '';\n return (this.defaultCssClass + \" \" + indexClass + \" \" + selectedClass + \" \" + editClass + \" \" + dirtyClass + \"\\n \" + deletedClass + \" \" + mrlClass + \" \" + dragClass).trim();\n };\n Object.defineProperty(IgxRowComponent.prototype, \"resolveDragIndicatorClasses\", {\n /**\n * @hidden\n */\n get: /**\n * @hidden\n * @return {?}\n */\n function () {\n /** @type {?} */\n var defaultDragIndicatorCssClass = 'igx-grid__drag-indicator';\n /** @type {?} */\n var dragIndicatorOff = this.grid.rowDragging && !this.dragging ? 'igx-grid__drag-indicator--off' : '';\n return defaultDragIndicatorCssClass + \" \" + dragIndicatorOff;\n },\n enumerable: true,\n configurable: true\n });\n IgxRowComponent.decorators = [\n { type: Injectable }\n ];\n /** @nocollapse */\n IgxRowComponent.ctorParameters = function () { return [\n { type: GridBaseAPIService },\n { type: IgxGridCRUDService },\n { type: IgxGridSelectionService },\n { type: ElementRef },\n { type: ChangeDetectorRef }\n ]; };\n IgxRowComponent.propDecorators = {\n rowData: [{ type: Input }],\n index: [{ type: Input }],\n gridID: [{ type: Input }],\n virtDirRow: [{ type: ViewChild, args: ['igxDirRef', { read: IgxGridForOfDirective, static: false },] }],\n checkboxElement: [{ type: ViewChild, args: [forwardRef(function () { return IgxCheckboxComponent; }), { read: IgxCheckboxComponent, static: false },] }],\n cells: [{ type: ViewChildren, args: [forwardRef(function () { return IgxGridCellComponent; }),] }],\n role: [{ type: HostBinding, args: ['attr.role',] }],\n dataRowIndex: [{ type: HostBinding, args: ['attr.data-rowIndex',] }],\n styleClasses: [{ type: HostBinding, args: ['class',] }],\n selected: [{ type: Input }, { type: HostBinding, args: ['attr.aria-selected',] }],\n onClick: [{ type: HostListener, args: ['click', ['$event'],] }]\n };\n __decorate([\n DeprecateProperty('isSelected property is deprecated. Use selected property instead.'),\n __metadata(\"design:type\", Object),\n __metadata(\"design:paramtypes\", [])\n ], IgxRowComponent.prototype, \"isSelected\", null);\n return IgxRowComponent;\n}());\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n/**\n * @hidden\n * @return {?}\n */\nfunction WatchChanges() {\n return function (target, key, propDesc) {\n /** @type {?} */\n var privateKey = '_' + key.toString();\n propDesc = propDesc || {\n configurable: true,\n enumerable: true,\n };\n propDesc.get = propDesc.get || (function () { return this[privateKey]; });\n /** @type {?} */\n var originalSetter = propDesc.set || (function (val) { this[privateKey] = val; });\n propDesc.set = function (val) {\n var _a;\n /** @type {?} */\n var init = this._init;\n /** @type {?} */\n var oldValue = this[key];\n if (val !== oldValue || (typeof val === 'object' && val === oldValue)) {\n originalSetter.call(this, val);\n if (this.ngOnChanges && !init) {\n // in case wacthed prop changes trigger ngOnChanges manually\n /** @type {?} */\n var changes = (_a = {},\n _a[key] = new SimpleChange(oldValue, val, false),\n _a);\n this.ngOnChanges(changes);\n }\n }\n };\n return propDesc;\n };\n}\n/**\n * @return {?}\n */\nfunction WatchColumnChanges() {\n return function (target, key, propDesc) {\n /** @type {?} */\n var privateKey = '_' + key.toString();\n propDesc = propDesc || {\n configurable: true,\n enumerable: true,\n };\n propDesc.get = propDesc.get || (function () { return this[privateKey]; });\n /** @type {?} */\n var originalSetter = propDesc.set || (function (val) { this[privateKey] = val; });\n propDesc.set = function (val) {\n /** @type {?} */\n var init = this._init;\n /** @type {?} */\n var oldValue = this[key];\n originalSetter.call(this, val);\n if (val !== oldValue || (typeof val === 'object' && val === oldValue)) {\n if (this.rowIslandAPI.rowIsland) {\n this.rowIslandAPI.rowIsland.updateColumnList();\n }\n }\n };\n return propDesc;\n };\n}\n/**\n * @param {?=} repaint\n * @return {?}\n */\nfunction notifyChanges(repaint) {\n if (repaint === void 0) { repaint = false; }\n return function (_, key, propDesc) {\n /** @type {?} */\n var privateKey = \"__\" + key;\n propDesc = propDesc || {\n enumerable: true,\n configurable: true\n };\n /** @type {?} */\n var originalSetter = propDesc ? propDesc.set : null;\n propDesc.get = propDesc.get || (function () { return this[privateKey]; });\n propDesc.set = function (newValue) {\n if (originalSetter) {\n originalSetter.call(this, newValue);\n if (this.grid) {\n this.grid.notifyChanges(repaint);\n }\n }\n else {\n if (newValue === this[key]) {\n return;\n }\n this[privateKey] = newValue;\n if (this.grid) {\n this.grid.notifyChanges(repaint);\n }\n }\n };\n return (/** @type {?} */ (propDesc));\n };\n}\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\nvar IgxRowIslandAPIService = /** @class */ (function () {\n function IgxRowIslandAPIService() {\n this.change = new Subject();\n this.state = new Map();\n this.destroyMap = new Map();\n this.childRowIslands = new Map();\n this.childGrids = new Map();\n }\n /**\n * @param {?} rowIsland\n * @return {?}\n */\n IgxRowIslandAPIService.prototype.register = /**\n * @param {?} rowIsland\n * @return {?}\n */\n function (rowIsland) {\n this.state.set(rowIsland.id, rowIsland);\n this.destroyMap.set(rowIsland.id, new Subject());\n };\n /**\n * @param {?} rowIsland\n * @return {?}\n */\n IgxRowIslandAPIService.prototype.unsubscribe = /**\n * @param {?} rowIsland\n * @return {?}\n */\n function (rowIsland) {\n this.state.delete(rowIsland.id);\n };\n /**\n * @param {?} id\n * @return {?}\n */\n IgxRowIslandAPIService.prototype.get = /**\n * @param {?} id\n * @return {?}\n */\n function (id) {\n return this.state.get(id);\n };\n /**\n * @param {?} id\n * @return {?}\n */\n IgxRowIslandAPIService.prototype.unset = /**\n * @param {?} id\n * @return {?}\n */\n function (id) {\n this.state.delete(id);\n this.destroyMap.delete(id);\n };\n /**\n * @param {?} oldId\n * @param {?} newId\n * @return {?}\n */\n IgxRowIslandAPIService.prototype.reset = /**\n * @param {?} oldId\n * @param {?} newId\n * @return {?}\n */\n function (oldId, newId) {\n /** @type {?} */\n var destroy = this.destroyMap.get(oldId);\n /** @type {?} */\n var rowIsland = this.get(oldId);\n this.unset(oldId);\n if (rowIsland) {\n this.state.set(newId, rowIsland);\n }\n if (destroy) {\n this.destroyMap.set(newId, destroy);\n }\n };\n /**\n * @param {?} rowIsland\n * @return {?}\n */\n IgxRowIslandAPIService.prototype.registerChildRowIsland = /**\n * @param {?} rowIsland\n * @return {?}\n */\n function (rowIsland) {\n this.childRowIslands.set(rowIsland.key, rowIsland);\n this.destroyMap.set(rowIsland.key, new Subject());\n };\n /**\n * @param {?} rowIsland\n * @return {?}\n */\n IgxRowIslandAPIService.prototype.unsetChildRowIsland = /**\n * @param {?} rowIsland\n * @return {?}\n */\n function (rowIsland) {\n this.childRowIslands.delete(rowIsland.key);\n this.destroyMap.delete(rowIsland.key);\n };\n /**\n * @param {?} rowIslandKey\n * @return {?}\n */\n IgxRowIslandAPIService.prototype.getChildRowIsland = /**\n * @param {?} rowIslandKey\n * @return {?}\n */\n function (rowIslandKey) {\n return this.childRowIslands.get(rowIslandKey);\n };\n /**\n * @param {?} parentRowID\n * @param {?} grid\n * @return {?}\n */\n IgxRowIslandAPIService.prototype.registerChildGrid = /**\n * @param {?} parentRowID\n * @param {?} grid\n * @return {?}\n */\n function (parentRowID, grid) {\n this.childGrids.set(parentRowID, grid);\n };\n /**\n * @param {?=} inDepth\n * @return {?}\n */\n IgxRowIslandAPIService.prototype.getChildGrids = /**\n * @param {?=} inDepth\n * @return {?}\n */\n function (inDepth) {\n /** @type {?} */\n var allChildren = [];\n this.childGrids.forEach(function (grid) {\n allChildren.push(grid);\n });\n if (inDepth) {\n this.childRowIslands.forEach(function (layout) {\n allChildren = allChildren.concat(layout.rowIslandAPI.getChildGrids(inDepth));\n });\n }\n return allChildren;\n };\n /**\n * @param {?} rowID\n * @return {?}\n */\n IgxRowIslandAPIService.prototype.getChildGridByID = /**\n * @param {?} rowID\n * @return {?}\n */\n function (rowID) {\n return this.childGrids.get(rowID);\n };\n return IgxRowIslandAPIService;\n}());\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n/** @type {?} */\nvar clear = function (el) { return el === 0 || Boolean(el); };\n/** @type {?} */\nvar first = function (arr) { return arr[0]; };\n/** @type {?} */\nvar last = function (arr) { return arr[arr.length - 1]; };\nvar IgxSummaryOperand = /** @class */ (function () {\n function IgxSummaryOperand() {\n }\n /**\n * Counts all the records in the data source.\n * If filtering is applied, counts only the filtered records.\n * ```typescript\n * IgxSummaryOperand.count(dataSource);\n * ```\n * @memberof IgxSummaryOperand\n */\n /**\n * Counts all the records in the data source.\n * If filtering is applied, counts only the filtered records.\n * ```typescript\n * IgxSummaryOperand.count(dataSource);\n * ```\n * \\@memberof IgxSummaryOperand\n * @param {?} data\n * @return {?}\n */\n IgxSummaryOperand.count = /**\n * Counts all the records in the data source.\n * If filtering is applied, counts only the filtered records.\n * ```typescript\n * IgxSummaryOperand.count(dataSource);\n * ```\n * \\@memberof IgxSummaryOperand\n * @param {?} data\n * @return {?}\n */\n function (data) {\n return data.length;\n };\n /**\n * Executes the static `count` method and returns `IgxSummaryResult[]`.\n * ```typescript\n * interface IgxSummaryResult {\n * key: string;\n * label: string;\n * summaryResult: any;\n * }\n * ```\n * Can be overridden in the inherited classes to provide customization for the `summary`.\n * ```typescript\n * class CustomSummary extends IgxSummaryOperand {\n * constructor() {\n * super();\n * }\n * public operate(data: any[], allData: any[], fieldName: string): IgxSummaryResult[] {\n * const result = [];\n * result.push({\n * key: \"test\",\n * label: \"Test\",\n * summaryResult: IgxSummaryOperand.count(data)\n * });\n * return result;\n * }\n * }\n * this.grid.getColumnByName('ColumnName').summaries = CustomSummary;\n * ```\n * @memberof IgxSummaryOperand\n */\n /**\n * Executes the static `count` method and returns `IgxSummaryResult[]`.\n * ```typescript\n * interface IgxSummaryResult {\n * key: string;\n * label: string;\n * summaryResult: any;\n * }\n * ```\n * Can be overridden in the inherited classes to provide customization for the `summary`.\n * ```typescript\n * class CustomSummary extends IgxSummaryOperand {\n * constructor() {\n * super();\n * }\n * public operate(data: any[], allData: any[], fieldName: string): IgxSummaryResult[] {\n * const result = [];\n * result.push({\n * key: \"test\",\n * label: \"Test\",\n * summaryResult: IgxSummaryOperand.count(data)\n * });\n * return result;\n * }\n * }\n * this.grid.getColumnByName('ColumnName').summaries = CustomSummary;\n * ```\n * \\@memberof IgxSummaryOperand\n * @param {?=} data\n * @param {?=} allData\n * @param {?=} fieldName\n * @return {?}\n */\n IgxSummaryOperand.prototype.operate = /**\n * Executes the static `count` method and returns `IgxSummaryResult[]`.\n * ```typescript\n * interface IgxSummaryResult {\n * key: string;\n * label: string;\n * summaryResult: any;\n * }\n * ```\n * Can be overridden in the inherited classes to provide customization for the `summary`.\n * ```typescript\n * class CustomSummary extends IgxSummaryOperand {\n * constructor() {\n * super();\n * }\n * public operate(data: any[], allData: any[], fieldName: string): IgxSummaryResult[] {\n * const result = [];\n * result.push({\n * key: \"test\",\n * label: \"Test\",\n * summaryResult: IgxSummaryOperand.count(data)\n * });\n * return result;\n * }\n * }\n * this.grid.getColumnByName('ColumnName').summaries = CustomSummary;\n * ```\n * \\@memberof IgxSummaryOperand\n * @param {?=} data\n * @param {?=} allData\n * @param {?=} fieldName\n * @return {?}\n */\n function (data, allData, fieldName) {\n if (data === void 0) { data = []; }\n return [{\n key: 'count',\n label: 'Count',\n summaryResult: IgxSummaryOperand.count(data)\n }];\n };\n return IgxSummaryOperand;\n}());\n// @dynamic\nvar \n// @dynamic\nIgxNumberSummaryOperand = /** @class */ (function (_super) {\n __extends(IgxNumberSummaryOperand, _super);\n function IgxNumberSummaryOperand() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n /**\n * Returns the minimum numeric value in the provided data records.\n * If filtering is applied, returns the minimum value in the filtered data records.\n * ```typescript\n * IgxNumberSummaryOperand.min(data);\n * ```\n * @memberof IgxNumberSummaryOperand\n */\n /**\n * Returns the minimum numeric value in the provided data records.\n * If filtering is applied, returns the minimum value in the filtered data records.\n * ```typescript\n * IgxNumberSummaryOperand.min(data);\n * ```\n * \\@memberof IgxNumberSummaryOperand\n * @param {?} data\n * @return {?}\n */\n IgxNumberSummaryOperand.min = /**\n * Returns the minimum numeric value in the provided data records.\n * If filtering is applied, returns the minimum value in the filtered data records.\n * ```typescript\n * IgxNumberSummaryOperand.min(data);\n * ```\n * \\@memberof IgxNumberSummaryOperand\n * @param {?} data\n * @return {?}\n */\n function (data) {\n return data.length && data.filter(clear).length ? data.filter(clear).reduce(function (a, b) { return Math.min(a, b); }) : 0;\n };\n /**\n * Returns the maximum numeric value in the provided data records.\n * If filtering is applied, returns the maximum value in the filtered data records.\n * ```typescript\n * IgxNumberSummaryOperand.max(data);\n * ```\n * @memberof IgxNumberSummaryOperand\n */\n /**\n * Returns the maximum numeric value in the provided data records.\n * If filtering is applied, returns the maximum value in the filtered data records.\n * ```typescript\n * IgxNumberSummaryOperand.max(data);\n * ```\n * \\@memberof IgxNumberSummaryOperand\n * @param {?} data\n * @return {?}\n */\n IgxNumberSummaryOperand.max = /**\n * Returns the maximum numeric value in the provided data records.\n * If filtering is applied, returns the maximum value in the filtered data records.\n * ```typescript\n * IgxNumberSummaryOperand.max(data);\n * ```\n * \\@memberof IgxNumberSummaryOperand\n * @param {?} data\n * @return {?}\n */\n function (data) {\n return data.length && data.filter(clear).length ? data.filter(clear).reduce(function (a, b) { return Math.max(a, b); }) : 0;\n };\n /**\n * Returns the sum of the numeric values in the provided data records.\n * If filtering is applied, returns the sum of the numeric values in the data records.\n * ```typescript\n * IgxNumberSummaryOperand.sum(data);\n * ```\n * @memberof IgxNumberSummaryOperand\n */\n /**\n * Returns the sum of the numeric values in the provided data records.\n * If filtering is applied, returns the sum of the numeric values in the data records.\n * ```typescript\n * IgxNumberSummaryOperand.sum(data);\n * ```\n * \\@memberof IgxNumberSummaryOperand\n * @param {?} data\n * @return {?}\n */\n IgxNumberSummaryOperand.sum = /**\n * Returns the sum of the numeric values in the provided data records.\n * If filtering is applied, returns the sum of the numeric values in the data records.\n * ```typescript\n * IgxNumberSummaryOperand.sum(data);\n * ```\n * \\@memberof IgxNumberSummaryOperand\n * @param {?} data\n * @return {?}\n */\n function (data) {\n return data.length && data.filter(clear).length ? data.filter(clear).reduce(function (a, b) { return +a + +b; }) : 0;\n };\n /**\n * Returns the average numeric value in the data provided data records.\n * If filtering is applied, returns the average numeric value in the filtered data records.\n * ```typescript\n * IgxSummaryOperand.average(data);\n * ```\n * @memberof IgxNumberSummaryOperand\n */\n /**\n * Returns the average numeric value in the data provided data records.\n * If filtering is applied, returns the average numeric value in the filtered data records.\n * ```typescript\n * IgxSummaryOperand.average(data);\n * ```\n * \\@memberof IgxNumberSummaryOperand\n * @param {?} data\n * @return {?}\n */\n IgxNumberSummaryOperand.average = /**\n * Returns the average numeric value in the data provided data records.\n * If filtering is applied, returns the average numeric value in the filtered data records.\n * ```typescript\n * IgxSummaryOperand.average(data);\n * ```\n * \\@memberof IgxNumberSummaryOperand\n * @param {?} data\n * @return {?}\n */\n function (data) {\n return data.length && data.filter(clear).length ? this.sum(data) / this.count(data) : 0;\n };\n /**\n * Executes the static methods and returns `IgxSummaryResult[]`.\n * ```typescript\n * interface IgxSummaryResult {\n * key: string;\n * label: string;\n * summaryResult: any;\n * }\n * ```\n * Can be overridden in the inherited classes to provide customization for the `summary`.\n * ```typescript\n * class CustomNumberSummary extends IgxNumberSummaryOperand {\n * constructor() {\n * super();\n * }\n * public operate(data: any[], allData: any[], fieldName: string): IgxSummaryResult[] {\n * const result = [];\n * result.push({\n * key: \"avg\",\n * label: \"Avg\",\n * summaryResult: IgxNumberSummaryOperand.average(data)\n * });\n * result.push({\n * key: \"max\",\n * label: \"Max\",\n * summaryResult: IgxNumberSummaryOperand.max(data)\n * });\n * return result;\n * }\n * }\n * this.grid.getColumnByName('ColumnName').summaries = CustomNumberSummary;\n * ```\n * @memberof IgxNumberSummaryOperand\n */\n /**\n * Executes the static methods and returns `IgxSummaryResult[]`.\n * ```typescript\n * interface IgxSummaryResult {\n * key: string;\n * label: string;\n * summaryResult: any;\n * }\n * ```\n * Can be overridden in the inherited classes to provide customization for the `summary`.\n * ```typescript\n * class CustomNumberSummary extends IgxNumberSummaryOperand {\n * constructor() {\n * super();\n * }\n * public operate(data: any[], allData: any[], fieldName: string): IgxSummaryResult[] {\n * const result = [];\n * result.push({\n * key: \"avg\",\n * label: \"Avg\",\n * summaryResult: IgxNumberSummaryOperand.average(data)\n * });\n * result.push({\n * key: \"max\",\n * label: \"Max\",\n * summaryResult: IgxNumberSummaryOperand.max(data)\n * });\n * return result;\n * }\n * }\n * this.grid.getColumnByName('ColumnName').summaries = CustomNumberSummary;\n * ```\n * \\@memberof IgxNumberSummaryOperand\n * @param {?=} data\n * @param {?=} allData\n * @param {?=} fieldName\n * @return {?}\n */\n IgxNumberSummaryOperand.prototype.operate = /**\n * Executes the static methods and returns `IgxSummaryResult[]`.\n * ```typescript\n * interface IgxSummaryResult {\n * key: string;\n * label: string;\n * summaryResult: any;\n * }\n * ```\n * Can be overridden in the inherited classes to provide customization for the `summary`.\n * ```typescript\n * class CustomNumberSummary extends IgxNumberSummaryOperand {\n * constructor() {\n * super();\n * }\n * public operate(data: any[], allData: any[], fieldName: string): IgxSummaryResult[] {\n * const result = [];\n * result.push({\n * key: \"avg\",\n * label: \"Avg\",\n * summaryResult: IgxNumberSummaryOperand.average(data)\n * });\n * result.push({\n * key: \"max\",\n * label: \"Max\",\n * summaryResult: IgxNumberSummaryOperand.max(data)\n * });\n * return result;\n * }\n * }\n * this.grid.getColumnByName('ColumnName').summaries = CustomNumberSummary;\n * ```\n * \\@memberof IgxNumberSummaryOperand\n * @param {?=} data\n * @param {?=} allData\n * @param {?=} fieldName\n * @return {?}\n */\n function (data, allData, fieldName) {\n if (data === void 0) { data = []; }\n if (allData === void 0) { allData = []; }\n /** @type {?} */\n var result = _super.prototype.operate.call(this, data, allData, fieldName);\n result.push({\n key: 'min',\n label: 'Min',\n summaryResult: IgxNumberSummaryOperand.min(data)\n });\n result.push({\n key: 'max',\n label: 'Max',\n summaryResult: IgxNumberSummaryOperand.max(data)\n });\n result.push({\n key: 'sum',\n label: 'Sum',\n summaryResult: IgxNumberSummaryOperand.sum(data)\n });\n result.push({\n key: 'average',\n label: 'Avg',\n summaryResult: IgxNumberSummaryOperand.average(data)\n });\n return result;\n };\n return IgxNumberSummaryOperand;\n}(IgxSummaryOperand));\n// @dynamic\nvar \n// @dynamic\nIgxDateSummaryOperand = /** @class */ (function (_super) {\n __extends(IgxDateSummaryOperand, _super);\n function IgxDateSummaryOperand() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n /**\n * Returns the latest date value in the data records.\n * If filtering is applied, returns the latest date value in the filtered data records.\n * ```typescript\n * IgxDateSummaryOperand.latest(data);\n * ```\n * @memberof IgxDateSummaryOperand\n */\n /**\n * Returns the latest date value in the data records.\n * If filtering is applied, returns the latest date value in the filtered data records.\n * ```typescript\n * IgxDateSummaryOperand.latest(data);\n * ```\n * \\@memberof IgxDateSummaryOperand\n * @param {?} data\n * @return {?}\n */\n IgxDateSummaryOperand.latest = /**\n * Returns the latest date value in the data records.\n * If filtering is applied, returns the latest date value in the filtered data records.\n * ```typescript\n * IgxDateSummaryOperand.latest(data);\n * ```\n * \\@memberof IgxDateSummaryOperand\n * @param {?} data\n * @return {?}\n */\n function (data) {\n return data.length && data.filter(clear).length ?\n first(data.filter(clear).sort(function (a, b) { return new Date(b).valueOf() - new Date(a).valueOf(); })) : undefined;\n };\n /**\n * Returns the earliest date value in the data records.\n * If filtering is applied, returns the latest date value in the filtered data records.\n * ```typescript\n * IgxDateSummaryOperand.earliest(data);\n * ```\n * @memberof IgxDateSummaryOperand\n */\n /**\n * Returns the earliest date value in the data records.\n * If filtering is applied, returns the latest date value in the filtered data records.\n * ```typescript\n * IgxDateSummaryOperand.earliest(data);\n * ```\n * \\@memberof IgxDateSummaryOperand\n * @param {?} data\n * @return {?}\n */\n IgxDateSummaryOperand.earliest = /**\n * Returns the earliest date value in the data records.\n * If filtering is applied, returns the latest date value in the filtered data records.\n * ```typescript\n * IgxDateSummaryOperand.earliest(data);\n * ```\n * \\@memberof IgxDateSummaryOperand\n * @param {?} data\n * @return {?}\n */\n function (data) {\n return data.length && data.filter(clear).length ?\n last(data.filter(clear).sort(function (a, b) { return new Date(b).valueOf() - new Date(a).valueOf(); })) : undefined;\n };\n /**\n * Executes the static methods and returns `IgxSummaryResult[]`.\n * ```typescript\n * interface IgxSummaryResult {\n * key: string;\n * label: string;\n * summaryResult: any;\n * }\n * ```\n * Can be overridden in the inherited classes to provide customization for the `summary`.\n * ```typescript\n * class CustomDateSummary extends IgxDateSummaryOperand {\n * constructor() {\n * super();\n * }\n * public operate(data: any[], allData: any[], fieldName: string): IgxSummaryResult[] {\n * const result = [];\n * result.push({\n * key: \"latest\",\n * label: \"Latest Date\",\n * summaryResult: IgxDateSummaryOperand.latest(data)\n * });\n * return result;\n * }\n * }\n * this.grid.getColumnByName('ColumnName').summaries = CustomDateSummary;\n * ```\n * @memberof IgxDateSummaryOperand\n */\n /**\n * Executes the static methods and returns `IgxSummaryResult[]`.\n * ```typescript\n * interface IgxSummaryResult {\n * key: string;\n * label: string;\n * summaryResult: any;\n * }\n * ```\n * Can be overridden in the inherited classes to provide customization for the `summary`.\n * ```typescript\n * class CustomDateSummary extends IgxDateSummaryOperand {\n * constructor() {\n * super();\n * }\n * public operate(data: any[], allData: any[], fieldName: string): IgxSummaryResult[] {\n * const result = [];\n * result.push({\n * key: \"latest\",\n * label: \"Latest Date\",\n * summaryResult: IgxDateSummaryOperand.latest(data)\n * });\n * return result;\n * }\n * }\n * this.grid.getColumnByName('ColumnName').summaries = CustomDateSummary;\n * ```\n * \\@memberof IgxDateSummaryOperand\n * @param {?=} data\n * @param {?=} allData\n * @param {?=} fieldName\n * @return {?}\n */\n IgxDateSummaryOperand.prototype.operate = /**\n * Executes the static methods and returns `IgxSummaryResult[]`.\n * ```typescript\n * interface IgxSummaryResult {\n * key: string;\n * label: string;\n * summaryResult: any;\n * }\n * ```\n * Can be overridden in the inherited classes to provide customization for the `summary`.\n * ```typescript\n * class CustomDateSummary extends IgxDateSummaryOperand {\n * constructor() {\n * super();\n * }\n * public operate(data: any[], allData: any[], fieldName: string): IgxSummaryResult[] {\n * const result = [];\n * result.push({\n * key: \"latest\",\n * label: \"Latest Date\",\n * summaryResult: IgxDateSummaryOperand.latest(data)\n * });\n * return result;\n * }\n * }\n * this.grid.getColumnByName('ColumnName').summaries = CustomDateSummary;\n * ```\n * \\@memberof IgxDateSummaryOperand\n * @param {?=} data\n * @param {?=} allData\n * @param {?=} fieldName\n * @return {?}\n */\n function (data, allData, fieldName) {\n if (data === void 0) { data = []; }\n if (allData === void 0) { allData = []; }\n /** @type {?} */\n var result = _super.prototype.operate.call(this, data, allData, fieldName);\n result.push({\n key: 'earliest',\n label: 'Earliest',\n summaryResult: IgxDateSummaryOperand.earliest(data)\n });\n result.push({\n key: 'latest',\n label: 'Latest',\n summaryResult: IgxDateSummaryOperand.latest(data)\n });\n return result;\n };\n return IgxDateSummaryOperand;\n}(IgxSummaryOperand));\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\nvar IgxFilterCellTemplateDirective = /** @class */ (function () {\n function IgxFilterCellTemplateDirective(template) {\n this.template = template;\n }\n IgxFilterCellTemplateDirective.decorators = [\n { type: Directive, args: [{\n selector: '[igxFilterCellTemplate]'\n },] }\n ];\n /** @nocollapse */\n IgxFilterCellTemplateDirective.ctorParameters = function () { return [\n { type: TemplateRef }\n ]; };\n return IgxFilterCellTemplateDirective;\n}());\nvar IgxCellTemplateDirective = /** @class */ (function () {\n function IgxCellTemplateDirective(template) {\n this.template = template;\n }\n IgxCellTemplateDirective.decorators = [\n { type: Directive, args: [{\n selector: '[igxCell]'\n },] }\n ];\n /** @nocollapse */\n IgxCellTemplateDirective.ctorParameters = function () { return [\n { type: TemplateRef }\n ]; };\n return IgxCellTemplateDirective;\n}());\nvar IgxCellHeaderTemplateDirective = /** @class */ (function () {\n function IgxCellHeaderTemplateDirective(template) {\n this.template = template;\n }\n IgxCellHeaderTemplateDirective.decorators = [\n { type: Directive, args: [{\n selector: '[igxHeader]'\n },] }\n ];\n /** @nocollapse */\n IgxCellHeaderTemplateDirective.ctorParameters = function () { return [\n { type: TemplateRef }\n ]; };\n return IgxCellHeaderTemplateDirective;\n}());\n/**\n * @hidden\n */\nvar IgxCellFooterTemplateDirective = /** @class */ (function () {\n function IgxCellFooterTemplateDirective(template) {\n this.template = template;\n }\n IgxCellFooterTemplateDirective.decorators = [\n { type: Directive, args: [{\n selector: '[igxFooter]'\n },] }\n ];\n /** @nocollapse */\n IgxCellFooterTemplateDirective.ctorParameters = function () { return [\n { type: TemplateRef }\n ]; };\n return IgxCellFooterTemplateDirective;\n}());\nvar IgxCellEditorTemplateDirective = /** @class */ (function () {\n function IgxCellEditorTemplateDirective(template) {\n this.template = template;\n }\n IgxCellEditorTemplateDirective.decorators = [\n { type: Directive, args: [{\n selector: '[igxCellEditor]'\n },] }\n ];\n /** @nocollapse */\n IgxCellEditorTemplateDirective.ctorParameters = function () { return [\n { type: TemplateRef }\n ]; };\n return IgxCellEditorTemplateDirective;\n}());\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n/**\n * **Ignite UI for Angular Column** -\n * [Documentation](https://www.infragistics.com/products/ignite-ui-angular/angular/components/grid.html#columns-configuration)\n *\n * The Ignite UI Column is used within an `igx-grid` element to define what data the column will show. Features such as sorting,\n * filtering & editing are enabled at the column level. You can also provide a template containing custom content inside\n * the column using `ng-template` which will be used for all cells within the column.\n */\nvar IgxColumnComponent = /** @class */ (function () {\n function IgxColumnComponent(gridAPI, cdr, rowIslandAPI) {\n this.gridAPI = gridAPI;\n this.cdr = cdr;\n this.rowIslandAPI = rowIslandAPI;\n /**\n * Sets/gets the `header` value.\n * ```typescript\n * let columnHeader = this.column.header;\n * ```\n * ```html\n * \n * ```\n *\n * \\@memberof IgxColumnComponent\n */\n this.header = '';\n /**\n * Sets/gets whether the column is sortable.\n * Default value is `false`.\n * ```typescript\n * let isSortable = this.column.sortable;\n * ```\n * ```html\n * \n * ```\n * \\@memberof IgxColumnComponent\n */\n this.sortable = false;\n /**\n * Sets/gets whether the column is groupable.\n * Default value is `false`.\n * ```typescript\n * let isGroupable = this.column.groupable;\n * ```\n * ```html\n * \n * ```\n * \\@memberof IgxColumnComponent\n */\n this.groupable = false;\n /**\n * Sets/gets whether the column is filterable.\n * Default value is `true`.\n * ```typescript\n * let isFilterable = this.column.filterable;\n * ```\n * ```html\n * \n * ```\n * \\@memberof IgxColumnComponent\n */\n this.filterable = true;\n /**\n * Sets/gets whether the column is resizable.\n * Default value is `false`.\n * ```typescript\n * let isResizable = this.column.resizable;\n * ```\n * ```html\n * \n * ```\n * \\@memberof IgxColumnComponent\n */\n this.resizable = false;\n /**\n * @hidden\n */\n this.hiddenChange = new EventEmitter();\n /**\n * Gets whether the hiding is disabled.\n * ```typescript\n * let isHidingDisabled = this.column.disableHiding;\n * ```\n * \\@memberof IgxColumnComponent\n */\n this.disableHiding = false;\n /**\n * Gets whether the pinning is disabled.\n * ```typescript\n * let isPinningDisabled = this.column.disablePinning;\n * ```\n * \\@memberof IgxColumnComponent\n */\n this.disablePinning = false;\n /**\n * Sets/gets whether the column is movable.\n * Default value is `false`.\n * ```typescript\n * let isMovable = this.column.movable;\n * ```\n * ```html\n * \n * ```\n * \\@memberof IgxColumnComponent\n */\n this.movable = false;\n /**\n * @hidden\n */\n this.widthChange = new EventEmitter();\n this._calcWidth = null;\n /**\n * Sets/gets the class selector of the column header.\n * ```typescript\n * let columnHeaderClass = this.column.headerClasses;\n * ```\n * ```html\n * \n * ```\n * \\@memberof IgxColumnComponent\n */\n this.headerClasses = '';\n /**\n * Sets/gets the class selector of the column group header.\n * ```typescript\n * let columnHeaderClass = this.column.headerGroupClasses;\n * ```\n * ```html\n * \n * ```\n * \\@memberof IgxColumnComponent\n */\n this.headerGroupClasses = '';\n /**\n * Sets conditional style properties on the column cells.\n * Similar to `ngStyle` it accepts an object literal where the keys are\n * the style properties and the value is the expression to be evaluated.\n * As with `cellClasses` it accepts a callback function.\n * ```typescript\n * styles = {\n * background: 'royalblue',\n * color: (rowData, columnKey, cellValue, rowIndex) => value.startsWith('Important') : 'red': 'inherit'\n * }\n * ```\n * ```html\n * \n * ```\n *\n * \\@memberof IgxColumnComponent\n */\n this.cellStyles = null;\n /**\n * Sets/gets whether the column filtering should be case sensitive.\n * Default value is `true`.\n * ```typescript\n * let filteringIgnoreCase = this.column.filteringIgnoreCase;\n * ```\n * ```html\n * \n * ```\n * \\@memberof IgxColumnComponent\n */\n this.filteringIgnoreCase = true;\n /**\n * Sets/gets whether the column sorting should be case sensitive.\n * Default value is `true`.\n * ```typescript\n * let sortingIgnoreCase = this.column.sortingIgnoreCase;\n * ```\n * ```html\n * \n * ```\n * \\@memberof IgxColumnComponent\n */\n this.sortingIgnoreCase = true;\n /**\n * Sets/gets the data type of the column values.\n * Default value is `string`.\n * ```typescript\n * let columnDataType = this.column.dataType;\n * ```\n * ```html\n * \n * ```\n * \\@memberof IgxColumnComponent\n */\n this.dataType = DataType.String;\n /**\n * @hidden\n */\n this.pinnedChange = new EventEmitter();\n /**\n * Sets/gets whether the column is `searchable`.\n * Default value is `true`.\n * ```typescript\n * let isSearchable = this.column.searchable';\n * ```\n * ```html\n * \n * ```\n * \\@memberof IgxColumnComponent\n */\n this.searchable = true;\n /**\n * Sets/gets the parent column.\n * ```typescript\n * let parentColumn = this.column.parent;\n * ```\n * ```typescript\n * this.column.parent = higherLevelColumn;\n * ```\n * \\@memberof IgxColumnComponent\n */\n this.parent = null;\n /**\n * @hidden\n */\n this.destroy$ = new Subject();\n /**\n * @hidden\n */\n this._pinned = false;\n /**\n * @hidden\n */\n this._summaries = null;\n /**\n * @hidden\n */\n this._filters = null;\n /**\n * @hidden\n */\n this._sortStrategy = DefaultSortingStrategy.instance();\n /**\n * @hidden\n */\n this._hidden = false;\n /**\n * @hidden\n */\n this._disablePinning = false;\n /**\n * @hidden\n */\n this._defaultMinWidth = '';\n /**\n * @hidden\n */\n this._hasSummary = false;\n this._vIndex = NaN;\n }\n Object.defineProperty(IgxColumnComponent.prototype, \"editable\", {\n /**\n * Gets whether the column is editable.\n * Default value is `false`.\n * ```typescript\n * let isEditable = this.column.editable;\n * ```\n * @memberof IgxColumnComponent\n */\n get: /**\n * Gets whether the column is editable.\n * Default value is `false`.\n * ```typescript\n * let isEditable = this.column.editable;\n * ```\n * \\@memberof IgxColumnComponent\n * @return {?}\n */\n function () {\n // Updating the primary key when grid has transactions (incl. row edit)\n // should not be allowed, as that can corrupt transaction state.\n /** @type {?} */\n var rowEditable = this.grid && this.grid.rowEditable;\n /** @type {?} */\n var hasTransactions = this.grid && this.grid.transactions.enabled;\n if (this.isPrimaryColumn && (rowEditable || hasTransactions)) {\n return false;\n }\n if (this._editable !== undefined) {\n return this._editable;\n }\n else {\n return rowEditable;\n }\n },\n /**\n * Sets whether the column is editable.\n * ```typescript\n * this.column.editable = true;\n * ```\n * ```html\n * \n * ```\n * @memberof IgxColumnComponent\n */\n set: /**\n * Sets whether the column is editable.\n * ```typescript\n * this.column.editable = true;\n * ```\n * ```html\n * \n * ```\n * \\@memberof IgxColumnComponent\n * @param {?} editable\n * @return {?}\n */\n function (editable) {\n this._editable = editable;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxColumnComponent.prototype, \"hasSummary\", {\n /**\n * Gets a value indicating whether the summary for the column is enabled.\n * ```typescript\n * let hasSummary = this.column.hasSummary;\n * ```\n * @memberof IgxColumnComponent\n */\n get: /**\n * Gets a value indicating whether the summary for the column is enabled.\n * ```typescript\n * let hasSummary = this.column.hasSummary;\n * ```\n * \\@memberof IgxColumnComponent\n * @return {?}\n */\n function () {\n return this._hasSummary;\n },\n /**\n * Sets a value indicating whether the summary for the column is enabled.\n * Default value is `false`.\n * ```html\n * \n * ```\n * @memberof IgxColumnComponent\n */\n set: /**\n * Sets a value indicating whether the summary for the column is enabled.\n * Default value is `false`.\n * ```html\n * \n * ```\n * \\@memberof IgxColumnComponent\n * @param {?} value\n * @return {?}\n */\n function (value) {\n this._hasSummary = value;\n if (this.grid) {\n this.grid.summaryService.resetSummaryHeight();\n }\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxColumnComponent.prototype, \"hidden\", {\n /**\n * Gets whether the column is hidden.\n * ```typescript\n * let isHidden = this.column.hidden;\n * ```\n *@memberof IgxColumnComponent\n */\n get: /**\n * Gets whether the column is hidden.\n * ```typescript\n * let isHidden = this.column.hidden;\n * ```\n * \\@memberof IgxColumnComponent\n * @return {?}\n */\n function () {\n return this._hidden;\n },\n /**\n * Sets the column hidden property.\n * Default value is `false`.\n * ```html\n * \n * ```\n *\n * Two-way data binding.\n * ```html\n * \n * ```\n * @memberof IgxColumnComponent\n */\n set: /**\n * Sets the column hidden property.\n * Default value is `false`.\n * ```html\n * \n * ```\n *\n * Two-way data binding.\n * ```html\n * \n * ```\n * \\@memberof IgxColumnComponent\n * @param {?} value\n * @return {?}\n */\n function (value) {\n if (this._hidden !== value) {\n this._hidden = value;\n this.hiddenChange.emit(this._hidden);\n if (this.columnLayoutChild && this.parent.hidden !== value) {\n this.parent.hidden = value;\n return;\n }\n if (this.grid) {\n this.grid.endEdit(false);\n this.grid.summaryService.resetSummaryHeight();\n this.grid.filteringService.refreshExpressions();\n this.grid.filteringService.hideFilteringRowOnColumnVisibilityChange(this);\n this.grid.notifyChanges();\n // this.grid.refreshSearch(true);\n }\n }\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxColumnComponent.prototype, \"width\", {\n /**\n * Gets the `width` of the column.\n * ```typescript\n * let columnWidth = this.column.width;\n * ```\n * @memberof IgxColumnComponent\n */\n get: /**\n * Gets the `width` of the column.\n * ```typescript\n * let columnWidth = this.column.width;\n * ```\n * \\@memberof IgxColumnComponent\n * @return {?}\n */\n function () {\n return this.widthSetByUser ? this._width : this.defaultWidth;\n },\n /**\n * Sets the `width` of the column.\n * ```html\n * \n * ```\n *\n * Two-way data binding.\n * ```html\n * \n * ```\n * @memberof IgxColumnComponent\n */\n set: /**\n * Sets the `width` of the column.\n * ```html\n * \n * ```\n *\n * Two-way data binding.\n * ```html\n * \n * ```\n * \\@memberof IgxColumnComponent\n * @param {?} value\n * @return {?}\n */\n function (value) {\n if (value) {\n this._calcWidth = null;\n this.calcPixelWidth = NaN;\n this.widthSetByUser = true;\n this._width = value;\n if (this.grid) {\n this.cacheCalcWidth();\n }\n this.widthChange.emit(this._width);\n }\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxColumnComponent.prototype, \"calcWidth\", {\n /**\n * @hidden\n */\n get: /**\n * @hidden\n * @return {?}\n */\n function () {\n return this.getCalcWidth();\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxColumnComponent.prototype, \"minWidth\", {\n get: /**\n * @return {?}\n */\n function () {\n return !this._defaultMinWidth ? this.defaultMinWidth : this._defaultMinWidth;\n },\n /**\n * Sets/gets the minimum `width` of the column.\n * Default value is `88`;\n * ```typescript\n * let columnMinWidth = this.column.minWidth;\n * ```\n * ```html\n * \n * ```\n * @memberof IgxColumnComponent\n */\n set: /**\n * Sets/gets the minimum `width` of the column.\n * Default value is `88`;\n * ```typescript\n * let columnMinWidth = this.column.minWidth;\n * ```\n * ```html\n * \n * ```\n * \\@memberof IgxColumnComponent\n * @param {?} value\n * @return {?}\n */\n function (value) {\n /** @type {?} */\n var minVal = parseFloat(value);\n if (Number.isNaN(minVal)) {\n return;\n }\n this._defaultMinWidth = value;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxColumnComponent.prototype, \"index\", {\n /**\n * Gets the column index.\n * ```typescript\n * let columnIndex = this.column.index;\n * ```\n * @memberof IgxColumnComponent\n */\n get: /**\n * Gets the column index.\n * ```typescript\n * let columnIndex = this.column.index;\n * ```\n * \\@memberof IgxColumnComponent\n * @return {?}\n */\n function () {\n return this.grid.columns.indexOf(this);\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxColumnComponent.prototype, \"pinned\", {\n /**\n * Gets whether the column is `pinned`.\n * ```typescript\n * let isPinned = this.column.pinned;\n * ```\n * @memberof IgxColumnComponent\n */\n get: /**\n * Gets whether the column is `pinned`.\n * ```typescript\n * let isPinned = this.column.pinned;\n * ```\n * \\@memberof IgxColumnComponent\n * @return {?}\n */\n function () {\n return this._pinned;\n },\n /**\n * Sets whether the column is pinned.\n * Default value is `false`.\n * ```html\n * \n * ```\n *\n * Two-way data binding.\n * ```html\n * \n * ```\n * @memberof IgxColumnComponent\n */\n set: /**\n * Sets whether the column is pinned.\n * Default value is `false`.\n * ```html\n * \n * ```\n *\n * Two-way data binding.\n * ```html\n * \n * ```\n * \\@memberof IgxColumnComponent\n * @param {?} value\n * @return {?}\n */\n function (value) {\n if (this._pinned !== value) {\n if (this.grid && this.width && !isNaN(parseInt(this.width, 10))) {\n value ? this.pin() : this.unpin();\n return;\n }\n /* No grid/width available at initialization. `initPinning` in the grid\n will re-init the group (if present)\n */\n this._pinned = value;\n this.pinnedChange.emit(this._pinned);\n }\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxColumnComponent.prototype, \"summaries\", {\n /**\n * Gets the column `summaries`.\n * ```typescript\n * let columnSummaries = this.column.summaries;\n * ```\n * @memberof IgxColumnComponent\n */\n get: /**\n * Gets the column `summaries`.\n * ```typescript\n * let columnSummaries = this.column.summaries;\n * ```\n * \\@memberof IgxColumnComponent\n * @return {?}\n */\n function () {\n return this._summaries;\n },\n /**\n * Sets the column `summaries`.\n * ```typescript\n * this.column.summaries = IgxNumberSummaryOperand;\n * ```\n * @memberof IgxColumnComponent\n */\n set: /**\n * Sets the column `summaries`.\n * ```typescript\n * this.column.summaries = IgxNumberSummaryOperand;\n * ```\n * \\@memberof IgxColumnComponent\n * @param {?} classRef\n * @return {?}\n */\n function (classRef) {\n this._summaries = new classRef();\n if (this.grid) {\n this.grid.summaryService.removeSummariesCachePerColumn(this.field);\n ((/** @type {?} */ (this.grid)))._summaryPipeTrigger++;\n this.grid.summaryService.resetSummaryHeight();\n }\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxColumnComponent.prototype, \"filters\", {\n /**\n * Gets the column `filters`.\n * ```typescript\n * let columnFilters = this.column.filters'\n * ```\n * @memberof IgxColumnComponent\n */\n get: /**\n * Gets the column `filters`.\n * ```typescript\n * let columnFilters = this.column.filters'\n * ```\n * \\@memberof IgxColumnComponent\n * @return {?}\n */\n function () {\n return this._filters;\n },\n /**\n * Sets the column `filters`.\n * ```typescript\n * this.column.filters = IgxBooleanFilteringOperand.instance().\n * ```\n * @memberof IgxColumnComponent\n */\n set: /**\n * Sets the column `filters`.\n * ```typescript\n * this.column.filters = IgxBooleanFilteringOperand.instance().\n * ```\n * \\@memberof IgxColumnComponent\n * @param {?} instance\n * @return {?}\n */\n function (instance) {\n this._filters = instance;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxColumnComponent.prototype, \"sortStrategy\", {\n /**\n * Gets the column `sortStrategy`.\n * ```typescript\n * let sortStrategy = this.column.sortStrategy\n * ```\n * @memberof IgxColumnComponent\n */\n get: /**\n * Gets the column `sortStrategy`.\n * ```typescript\n * let sortStrategy = this.column.sortStrategy\n * ```\n * \\@memberof IgxColumnComponent\n * @return {?}\n */\n function () {\n return this._sortStrategy;\n },\n /**\n * Sets the column `sortStrategy`.\n * ```typescript\n * this.column.sortStrategy = new CustomSortingStrategy().\n * class CustomSortingStrategy extends SortingStrategy {...}\n * ```\n * @memberof IgxColumnComponent\n */\n set: /**\n * Sets the column `sortStrategy`.\n * ```typescript\n * this.column.sortStrategy = new CustomSortingStrategy().\n * class CustomSortingStrategy extends SortingStrategy {...}\n * ```\n * \\@memberof IgxColumnComponent\n * @param {?} classRef\n * @return {?}\n */\n function (classRef) {\n this._sortStrategy = classRef;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxColumnComponent.prototype, \"groupingComparer\", {\n /**\n * Gets the function that compares values for grouping.\n * ```typescript\n * let groupingComparer = this.column.groupingComparer'\n * ```\n * @memberof IgxColumnComponent\n */\n get: /**\n * Gets the function that compares values for grouping.\n * ```typescript\n * let groupingComparer = this.column.groupingComparer'\n * ```\n * \\@memberof IgxColumnComponent\n * @return {?}\n */\n function () {\n return this._groupingComparer;\n },\n /**\n * Sets a custom function to compare values for grouping.\n * Subsequent values in the sorted data that the function returns 0 for are grouped.\n * ```typescript\n * this.column.groupingComparer = (a: any, b: any) => { return a === b ? 0 : -1; }\n * ```\n * @memberof IgxColumnComponent\n */\n set: /**\n * Sets a custom function to compare values for grouping.\n * Subsequent values in the sorted data that the function returns 0 for are grouped.\n * ```typescript\n * this.column.groupingComparer = (a: any, b: any) => { return a === b ? 0 : -1; }\n * ```\n * \\@memberof IgxColumnComponent\n * @param {?} funcRef\n * @return {?}\n */\n function (funcRef) {\n this._groupingComparer = funcRef;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxColumnComponent.prototype, \"defaultMinWidth\", {\n /**\n * Gets the default minimum `width` of the column.\n * ```typescript\n * let defaultMinWidth = this.column.defaultMinWidth;\n * ```\n * @memberof IgxColumnComponent\n */\n get: /**\n * Gets the default minimum `width` of the column.\n * ```typescript\n * let defaultMinWidth = this.column.defaultMinWidth;\n * ```\n * \\@memberof IgxColumnComponent\n * @return {?}\n */\n function () {\n if (!this.grid) {\n return '80';\n }\n switch (this.grid.displayDensity) {\n case DisplayDensity.cosy:\n return '64';\n case DisplayDensity.compact:\n return '56';\n default:\n return '80';\n }\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxColumnComponent.prototype, \"grid\", {\n /**\n * The reference to the `igx-grid` owner.\n * ```typescript\n * let gridComponent = this.column.grid;\n * ```\n * @memberof IgxColumnComponent\n */\n get: /**\n * The reference to the `igx-grid` owner.\n * ```typescript\n * let gridComponent = this.column.grid;\n * ```\n * \\@memberof IgxColumnComponent\n * @return {?}\n */\n function () {\n return this.gridAPI.grid;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxColumnComponent.prototype, \"bodyTemplate\", {\n /**\n * Returns a reference to the `bodyTemplate`.\n * ```typescript\n * let bodyTemplate = this.column.bodyTemplate;\n * ```\n * @memberof IgxColumnComponent\n */\n get: /**\n * Returns a reference to the `bodyTemplate`.\n * ```typescript\n * let bodyTemplate = this.column.bodyTemplate;\n * ```\n * \\@memberof IgxColumnComponent\n * @return {?}\n */\n function () {\n return this._bodyTemplate;\n },\n /**\n * Sets the body template.\n * ```html\n * \n *
\n * {{val}} \n *
\n *
\n * ```\n * ```typescript\n * @ViewChild(\"'bodyTemplate'\", {read: TemplateRef })\n * public bodyTemplate: TemplateRef;\n * this.column.bodyTemplate = this.bodyTemplate;\n * ```\n * @memberof IgxColumnComponent\n */\n set: /**\n * Sets the body template.\n * ```html\n * \n *
\n * {{val}} \n *
\n *
\n * ```\n * ```typescript\n * \\@ViewChild(\"'bodyTemplate'\", {read: TemplateRef })\n * public bodyTemplate: TemplateRef;\n * this.column.bodyTemplate = this.bodyTemplate;\n * ```\n * \\@memberof IgxColumnComponent\n * @param {?} template\n * @return {?}\n */\n function (template) {\n this._bodyTemplate = template;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxColumnComponent.prototype, \"headerTemplate\", {\n /**\n * Returns a reference to the header template.\n * ```typescript\n * let headerTemplate = this.column.headerTemplate;\n * ```\n * @memberof IgxColumnComponent\n */\n get: /**\n * Returns a reference to the header template.\n * ```typescript\n * let headerTemplate = this.column.headerTemplate;\n * ```\n * \\@memberof IgxColumnComponent\n * @return {?}\n */\n function () {\n return this._headerTemplate;\n },\n /**\n * Sets the header template.\n * Note that the column header height is fixed and any content bigger than it will be cut off.\n * ```html\n * \n *
\n * {{column.field}}\n *
\n *
\n * ```\n * ```typescript\n * @ViewChild(\"'headerTemplate'\", {read: TemplateRef })\n * public headerTemplate: TemplateRef;\n * this.column.headerTemplate = this.headerTemplate;\n * ```\n * @memberof IgxColumnComponent\n */\n set: /**\n * Sets the header template.\n * Note that the column header height is fixed and any content bigger than it will be cut off.\n * ```html\n * \n *
\n * {{column.field}}\n *
\n *
\n * ```\n * ```typescript\n * \\@ViewChild(\"'headerTemplate'\", {read: TemplateRef })\n * public headerTemplate: TemplateRef;\n * this.column.headerTemplate = this.headerTemplate;\n * ```\n * \\@memberof IgxColumnComponent\n * @param {?} template\n * @return {?}\n */\n function (template) {\n this._headerTemplate = template;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxColumnComponent.prototype, \"inlineEditorTemplate\", {\n /**\n * Returns a reference to the inline editor template.\n * ```typescript\n * let inlineEditorTemplate = this.column.inlineEditorTemplate;\n * ```\n * @memberof IgxColumnComponent\n */\n get: /**\n * Returns a reference to the inline editor template.\n * ```typescript\n * let inlineEditorTemplate = this.column.inlineEditorTemplate;\n * ```\n * \\@memberof IgxColumnComponent\n * @return {?}\n */\n function () {\n return this._inlineEditorTemplate;\n },\n /**\n * Sets the inline editor template.\n * ```html\n * \n * \n * \n * ```\n * ```typescript\n * @ViewChild(\"'inlineEditorTemplate'\", {read: TemplateRef })\n * public inlineEditorTemplate: TemplateRef;\n * this.column.inlineEditorTemplate = this.inlineEditorTemplate;\n * ```\n * @memberof IgxColumnComponent\n */\n set: /**\n * Sets the inline editor template.\n * ```html\n * \n * \n * \n * ```\n * ```typescript\n * \\@ViewChild(\"'inlineEditorTemplate'\", {read: TemplateRef })\n * public inlineEditorTemplate: TemplateRef;\n * this.column.inlineEditorTemplate = this.inlineEditorTemplate;\n * ```\n * \\@memberof IgxColumnComponent\n * @param {?} template\n * @return {?}\n */\n function (template) {\n this._inlineEditorTemplate = template;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxColumnComponent.prototype, \"filterCellTemplate\", {\n /**\n * Returns a reference to the `filterCellTemplate`.\n * ```typescript\n * let filterCellTemplate = this.column.filterCellTemplate;\n * ```\n * @memberof IgxColumnComponent\n */\n get: /**\n * Returns a reference to the `filterCellTemplate`.\n * ```typescript\n * let filterCellTemplate = this.column.filterCellTemplate;\n * ```\n * \\@memberof IgxColumnComponent\n * @return {?}\n */\n function () {\n return this._filterCellTemplate;\n },\n /**\n * Sets the quick filter template.\n * ```html\n * \n * \n * \n * ```\n * ```typescript\n * @ViewChild(\"'filterCellTemplate'\", {read: TemplateRef })\n * public filterCellTemplate: TemplateRef;\n * this.column.filterCellTemplate = this.filterCellTemplate;\n * ```\n * @memberof IgxColumnComponent\n */\n set: /**\n * Sets the quick filter template.\n * ```html\n * \n * \n * \n * ```\n * ```typescript\n * \\@ViewChild(\"'filterCellTemplate'\", {read: TemplateRef })\n * public filterCellTemplate: TemplateRef;\n * this.column.filterCellTemplate = this.filterCellTemplate;\n * ```\n * \\@memberof IgxColumnComponent\n * @param {?} template\n * @return {?}\n */\n function (template) {\n this._filterCellTemplate = template;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxColumnComponent.prototype, \"cells\", {\n /**\n * Gets the cells of the column.\n * ```typescript\n * let columnCells = this.column.cells;\n * ```\n * @memberof IgxColumnComponent\n */\n get: /**\n * Gets the cells of the column.\n * ```typescript\n * let columnCells = this.column.cells;\n * ```\n * \\@memberof IgxColumnComponent\n * @return {?}\n */\n function () {\n var _this = this;\n return this.grid.rowList.filter(function (row) { return row instanceof IgxRowComponent; })\n .map(function (row) {\n if (row.cells) {\n return row.cells.filter(function (cell) { return cell.columnIndex === _this.index; });\n }\n }).reduce(function (a, b) { return a.concat(b); }, []);\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxColumnComponent.prototype, \"visibleIndex\", {\n /**\n * Gets the column visible index.\n * If the column is not visible, returns `-1`.\n * ```typescript\n * let visibleColumnIndex = this.column.visibleIndex;\n * ```\n * @memberof IgxColumnComponent\n */\n get: /**\n * Gets the column visible index.\n * If the column is not visible, returns `-1`.\n * ```typescript\n * let visibleColumnIndex = this.column.visibleIndex;\n * ```\n * \\@memberof IgxColumnComponent\n * @return {?}\n */\n function () {\n var _this = this;\n if (!isNaN(this._vIndex)) {\n return this._vIndex;\n }\n /** @type {?} */\n var unpinnedColumns = this.grid.unpinnedColumns.filter(function (c) { return !c.columnGroup; });\n /** @type {?} */\n var pinnedColumns = this.grid.pinnedColumns.filter(function (c) { return !c.columnGroup; });\n /** @type {?} */\n var col = this;\n /** @type {?} */\n var vIndex = -1;\n if (this.columnGroup) {\n col = (/** @type {?} */ (this.allChildren.filter(function (c) { return !c.columnGroup; })[0]));\n }\n if (this.columnLayoutChild) {\n return this.parent.childrenVisibleIndexes.find(function (x) { return x.column === _this; }).index;\n }\n if (!this.pinned) {\n /** @type {?} */\n var indexInCollection = unpinnedColumns.indexOf(col);\n vIndex = indexInCollection === -1 ? -1 : pinnedColumns.length + indexInCollection;\n }\n else {\n vIndex = pinnedColumns.indexOf(col);\n }\n this._vIndex = vIndex;\n return vIndex;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxColumnComponent.prototype, \"columnGroup\", {\n /**\n * Returns a boolean indicating if the column is a `ColumnGroup`.\n * ```typescript\n * let columnGroup = this.column.columnGroup;\n * ```\n * @memberof IgxColumnComponent\n */\n get: /**\n * Returns a boolean indicating if the column is a `ColumnGroup`.\n * ```typescript\n * let columnGroup = this.column.columnGroup;\n * ```\n * \\@memberof IgxColumnComponent\n * @return {?}\n */\n function () {\n return false;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxColumnComponent.prototype, \"columnLayout\", {\n /**\n * Returns a boolean indicating if the column is a `ColumnLayout` for multi-row layout.\n * ```typescript\n * let columnGroup = this.column.columnGroup;\n * ```\n * @memberof IgxColumnComponent\n */\n get: /**\n * Returns a boolean indicating if the column is a `ColumnLayout` for multi-row layout.\n * ```typescript\n * let columnGroup = this.column.columnGroup;\n * ```\n * \\@memberof IgxColumnComponent\n * @return {?}\n */\n function () {\n return false;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxColumnComponent.prototype, \"columnLayoutChild\", {\n /**\n * Returns a boolean indicating if the column is a child of a `ColumnLayout` for multi-row layout.\n * ```typescript\n * let columnLayoutChild = this.column.columnLayoutChild;\n * ```\n * @memberof IgxColumnComponent\n */\n get: /**\n * Returns a boolean indicating if the column is a child of a `ColumnLayout` for multi-row layout.\n * ```typescript\n * let columnLayoutChild = this.column.columnLayoutChild;\n * ```\n * \\@memberof IgxColumnComponent\n * @return {?}\n */\n function () {\n return this.parent && this.parent.columnLayout;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxColumnComponent.prototype, \"allChildren\", {\n /**\n * Returns the children columns collection.\n * Returns an empty array if the column does not contain children columns.\n * ```typescript\n * let childrenColumns = this.column.allChildren;\n * ```\n * @memberof IgxColumnComponent\n */\n get: /**\n * Returns the children columns collection.\n * Returns an empty array if the column does not contain children columns.\n * ```typescript\n * let childrenColumns = this.column.allChildren;\n * ```\n * \\@memberof IgxColumnComponent\n * @return {?}\n */\n function () {\n return [];\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxColumnComponent.prototype, \"level\", {\n /**\n * Returns the level of the column in a column group.\n * Returns `0` if the column doesn't have a `parent`.\n * ```typescript\n * let columnLevel = this.column.level;\n * ```\n * @memberof IgxColumnComponent\n */\n get: /**\n * Returns the level of the column in a column group.\n * Returns `0` if the column doesn't have a `parent`.\n * ```typescript\n * let columnLevel = this.column.level;\n * ```\n * \\@memberof IgxColumnComponent\n * @return {?}\n */\n function () {\n /** @type {?} */\n var ptr = this.parent;\n /** @type {?} */\n var lvl = 0;\n while (ptr) {\n lvl++;\n ptr = ptr.parent;\n }\n return lvl;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxColumnComponent.prototype, \"isLastPinned\", {\n get: /**\n * @return {?}\n */\n function () {\n return this.grid.pinnedColumns[this.grid.pinnedColumns.length - 1] === this;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxColumnComponent.prototype, \"gridRowSpan\", {\n get: /**\n * @return {?}\n */\n function () {\n return this.rowEnd && this.rowStart ? this.rowEnd - this.rowStart : 1;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxColumnComponent.prototype, \"gridColumnSpan\", {\n get: /**\n * @return {?}\n */\n function () {\n return this.colEnd && this.colStart ? this.colEnd - this.colStart : 1;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxColumnComponent.prototype, \"filteringExpressionsTree\", {\n /**\n * Returns the filteringExpressionsTree of the column.\n * ```typescript\n * let tree = this.column.filteringExpressionsTree;\n * ```\n * @memberof IgxColumnComponent\n */\n get: /**\n * Returns the filteringExpressionsTree of the column.\n * ```typescript\n * let tree = this.column.filteringExpressionsTree;\n * ```\n * \\@memberof IgxColumnComponent\n * @return {?}\n */\n function () {\n return (/** @type {?} */ (this.grid.filteringExpressionsTree.find(this.field)));\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxColumnComponent.prototype, \"isPrimaryColumn\", {\n /**\n * @hidden\n */\n get: /**\n * @hidden\n * @protected\n * @return {?}\n */\n function () {\n return this.field !== undefined && this.grid !== undefined && this.field === this.grid.primaryKey;\n },\n enumerable: true,\n configurable: true\n });\n /**\n * @hidden\n * @internal\n */\n /**\n * @hidden\n * \\@internal\n * @return {?}\n */\n IgxColumnComponent.prototype.resetCaches = /**\n * @hidden\n * \\@internal\n * @return {?}\n */\n function () {\n this._vIndex = NaN;\n if (this.grid) {\n this.cacheCalcWidth();\n }\n };\n /**\n *@hidden\n */\n /**\n * @hidden\n * @return {?}\n */\n IgxColumnComponent.prototype.ngAfterContentInit = /**\n * @hidden\n * @return {?}\n */\n function () {\n if (this.cellTemplate) {\n this._bodyTemplate = this.cellTemplate.template;\n }\n if (this.headTemplate && this.headTemplate.length) {\n this._headerTemplate = this.headTemplate.toArray()[0].template;\n }\n if (this.editorTemplate) {\n this._inlineEditorTemplate = this.editorTemplate.template;\n }\n if (this.filterCellTemplateDirective) {\n this._filterCellTemplate = this.filterCellTemplateDirective.template;\n }\n if (!this.summaries) {\n switch (this.dataType) {\n case DataType.String:\n case DataType.Boolean:\n this.summaries = IgxSummaryOperand;\n break;\n case DataType.Number:\n this.summaries = IgxNumberSummaryOperand;\n break;\n case DataType.Date:\n this.summaries = IgxDateSummaryOperand;\n break;\n default:\n this.summaries = IgxSummaryOperand;\n break;\n }\n }\n if (!this.filters) {\n switch (this.dataType) {\n case DataType.Boolean:\n this.filters = IgxBooleanFilteringOperand.instance();\n break;\n case DataType.Number:\n this.filters = IgxNumberFilteringOperand.instance();\n break;\n case DataType.Date:\n this.filters = IgxDateFilteringOperand.instance();\n break;\n case DataType.String:\n default:\n this.filters = IgxStringFilteringOperand.instance();\n break;\n }\n }\n };\n /**\n * @hidden\n */\n /**\n * @hidden\n * @param {?} isRow\n * @param {?} isIE\n * @return {?}\n */\n IgxColumnComponent.prototype.getGridTemplate = /**\n * @hidden\n * @param {?} isRow\n * @param {?} isIE\n * @return {?}\n */\n function (isRow, isIE) {\n if (isRow) {\n /** @type {?} */\n var rowsCount = this.grid.multiRowLayoutRowSize;\n return isIE ?\n \"(1fr)[\" + rowsCount + \"]\" :\n \"repeat(\" + rowsCount + \",1fr)\";\n }\n else {\n return this.getColumnSizesString(this.children);\n }\n };\n /**\n * @param {?} children\n * @return {?}\n */\n IgxColumnComponent.prototype.getInitialChildColumnSizes = /**\n * @param {?} children\n * @return {?}\n */\n function (children) {\n var _this = this;\n /** @type {?} */\n var columnSizes = [];\n // find the smallest col spans\n children.forEach(function (col) {\n if (!col.colStart) {\n return;\n }\n /** @type {?} */\n var newWidthSet = col.widthSetByUser && columnSizes[col.colStart - 1] && !columnSizes[col.colStart - 1].widthSetByUser;\n /** @type {?} */\n var newSpanSmaller = columnSizes[col.colStart - 1] && columnSizes[col.colStart - 1].colSpan > col.gridColumnSpan;\n /** @type {?} */\n var bothWidthsSet = col.widthSetByUser && columnSizes[col.colStart - 1] && columnSizes[col.colStart - 1].widthSetByUser;\n /** @type {?} */\n var bothWidthsNotSet = !col.widthSetByUser && columnSizes[col.colStart - 1] && !columnSizes[col.colStart - 1].widthSetByUser;\n if (columnSizes[col.colStart - 1] === undefined) {\n // If nothing is defined yet take any column at first\n // We use colEnd to know where the column actually ends, because not always it starts where we have it set in columnSizes.\n columnSizes[col.colStart - 1] = {\n ref: col,\n width: col.widthSetByUser || _this.grid.columnWidthSetByUser ? parseInt(col.calcWidth, 10) : null,\n colSpan: col.gridColumnSpan,\n colEnd: col.colStart + col.gridColumnSpan,\n widthSetByUser: col.widthSetByUser\n };\n }\n else if (newWidthSet || (newSpanSmaller && ((bothWidthsSet) || (bothWidthsNotSet)))) {\n // If a column is set already it should either not have width defined or have width with bigger span than the new one.\n /**\n * If replaced column has bigger span, we want to fill the remaining columns\n * that the replacing column does not fill with the old one.\n **/\n if (bothWidthsSet && newSpanSmaller) {\n // Start from where the new column set would end and apply the old column to the rest depending on how much it spans.\n // We have not yet replaced it so we can use it directly from the columnSizes collection.\n // This is where colEnd is used because the colStart of the old column is not actually i + 1.\n for (var i = col.colStart - 1 + col.gridColumnSpan; i < columnSizes[col.colStart - 1].colEnd - 1; i++) {\n if (!columnSizes[i] || !columnSizes[i].widthSetByUser) {\n columnSizes[i] = columnSizes[col.colStart - 1];\n }\n else {\n break;\n }\n }\n }\n // Replace the old column with the new one.\n columnSizes[col.colStart - 1] = {\n ref: col,\n width: col.widthSetByUser || _this.grid.columnWidthSetByUser ? parseInt(col.calcWidth, 10) : null,\n colSpan: col.gridColumnSpan,\n colEnd: col.colStart + col.gridColumnSpan,\n widthSetByUser: col.widthSetByUser\n };\n }\n else if (bothWidthsSet && columnSizes[col.colStart - 1].colSpan < col.gridColumnSpan) {\n // If the column already in the columnSizes has smaller span, we still need to fill any empty places with the current col.\n // Start from where the smaller column set would end and apply the bigger column to the rest depending on how much it spans.\n // Since here we do not have it in columnSizes we set it as a new column keeping the same colSpan.\n for (var i = col.colStart - 1 + columnSizes[col.colStart - 1].colSpan; i < col.colStart - 1 + col.gridColumnSpan; i++) {\n if (!columnSizes[i] || !columnSizes[i].widthSetByUser) {\n columnSizes[i] = {\n ref: col,\n width: col.widthSetByUser || _this.grid.columnWidthSetByUser ? parseInt(col.calcWidth, 10) : null,\n colSpan: col.gridColumnSpan,\n colEnd: col.colStart + col.gridColumnSpan,\n widthSetByUser: col.widthSetByUser\n };\n }\n else {\n break;\n }\n }\n }\n });\n // Flatten columnSizes so there are not columns with colSpan > 1\n for (var i = 0; i < columnSizes.length; i++) {\n if (columnSizes[i] && columnSizes[i].colSpan > 1) {\n /** @type {?} */\n var j = 1;\n // Replace all empty places depending on how much the current column spans starting from next col.\n for (; j < columnSizes[i].colSpan && i + j + 1 < columnSizes[i].colEnd; j++) {\n if (columnSizes[i + j] &&\n ((!columnSizes[i].width && columnSizes[i + j].width) ||\n (!columnSizes[i].width && !columnSizes[i + j].width && columnSizes[i + j].colSpan <= columnSizes[i].colSpan) ||\n (!!columnSizes[i + j].width && columnSizes[i + j].colSpan <= columnSizes[i].colSpan))) {\n // If we reach an already defined column that has width and the current doesn't have or\n // if the reached column has bigger colSpan we stop.\n break;\n }\n else {\n /** @type {?} */\n var width = columnSizes[i].widthSetByUser ?\n columnSizes[i].width / columnSizes[i].colSpan :\n columnSizes[i].width;\n columnSizes[i + j] = {\n ref: columnSizes[i].ref,\n width: width,\n colSpan: 1,\n colEnd: columnSizes[i].colEnd,\n widthSetByUser: columnSizes[i].widthSetByUser\n };\n }\n }\n // Update the current column width so it is divided between all columns it spans and set it to 1.\n columnSizes[i].width = columnSizes[i].widthSetByUser ?\n columnSizes[i].width / columnSizes[i].colSpan :\n columnSizes[i].width;\n columnSizes[i].colSpan = 1;\n // Update the index based on how much we have replaced. Subtract 1 because we started from 1.\n i += j - 1;\n }\n }\n return columnSizes;\n };\n /**\n * @param {?} children\n * @return {?}\n */\n IgxColumnComponent.prototype.getFilledChildColumnSizes = /**\n * @param {?} children\n * @return {?}\n */\n function (children) {\n /** @type {?} */\n var columnSizes = this.getInitialChildColumnSizes(children);\n // fill the gaps if there are any\n /** @type {?} */\n var result = [];\n for (var i = 0; i < columnSizes.length; i++) {\n if (columnSizes[i] && !!columnSizes[i].width) {\n result.push(columnSizes[i].width + 'px');\n }\n else {\n result.push(parseInt(this.grid.getPossibleColumnWidth(), 10) + 'px');\n }\n }\n return result;\n };\n /**\n * @protected\n * @param {?} children\n * @return {?}\n */\n IgxColumnComponent.prototype.getColumnSizesString = /**\n * @protected\n * @param {?} children\n * @return {?}\n */\n function (children) {\n /** @type {?} */\n var res = this.getFilledChildColumnSizes(children);\n return res.join(' ');\n };\n /**\n * @return {?}\n */\n IgxColumnComponent.prototype.getResizableColUnderEnd = /**\n * @return {?}\n */\n function () {\n if (this.columnLayout || !this.columnLayoutChild || this.columnGroup) {\n return [{ target: this, spanUsed: 1 }];\n }\n /** @type {?} */\n var columnSized = this.getInitialChildColumnSizes(this.parent.children);\n /** @type {?} */\n var targets = [];\n /** @type {?} */\n var colEnd = this.colEnd ? this.colEnd : this.colStart + 1;\n for (var i = 0; i < columnSized.length; i++) {\n if (this.colStart <= i + 1 && i + 1 < colEnd) {\n targets.push({ target: columnSized[i].ref, spanUsed: 1 });\n }\n }\n /** @type {?} */\n var targetsSquashed = [];\n for (var j = 0; j < targets.length; j++) {\n if (targetsSquashed.length && targetsSquashed[targetsSquashed.length - 1].target.field === targets[j].target.field) {\n targetsSquashed[targetsSquashed.length - 1].spanUsed++;\n }\n else {\n targetsSquashed.push(targets[j]);\n }\n }\n return targetsSquashed;\n };\n /**\n * Pins the column at the provided index in the pinned area. Defaults to index `0` if not provided.\n * Returns `true` if the column is successfully pinned. Returns `false` if the column cannot be pinned.\n * Column cannot be pinned if:\n * - Is already pinned\n * - index argument is out of range\n * - The pinned area exceeds 80% of the grid width\n * ```typescript\n * let success = this.column.pin();\n * ```\n * @memberof IgxColumnComponent\n */\n /**\n * Pins the column at the provided index in the pinned area. Defaults to index `0` if not provided.\n * Returns `true` if the column is successfully pinned. Returns `false` if the column cannot be pinned.\n * Column cannot be pinned if:\n * - Is already pinned\n * - index argument is out of range\n * - The pinned area exceeds 80% of the grid width\n * ```typescript\n * let success = this.column.pin();\n * ```\n * \\@memberof IgxColumnComponent\n * @param {?=} index\n * @return {?}\n */\n IgxColumnComponent.prototype.pin = /**\n * Pins the column at the provided index in the pinned area. Defaults to index `0` if not provided.\n * Returns `true` if the column is successfully pinned. Returns `false` if the column cannot be pinned.\n * Column cannot be pinned if:\n * - Is already pinned\n * - index argument is out of range\n * - The pinned area exceeds 80% of the grid width\n * ```typescript\n * let success = this.column.pin();\n * ```\n * \\@memberof IgxColumnComponent\n * @param {?=} index\n * @return {?}\n */\n function (index) {\n // TODO: Probably should the return type of the old functions\n // should be moved as a event parameter.\n if (this.grid) {\n this.grid.endEdit(true);\n }\n if (this._pinned) {\n return false;\n }\n if (this.parent && !this.parent.pinned) {\n return this.topLevelParent.pin(index);\n }\n /** @type {?} */\n var grid = ((/** @type {?} */ (this.grid)));\n /** @type {?} */\n var hasIndex = index !== undefined;\n if (hasIndex && (index < 0 || index >= grid.pinnedColumns.length)) {\n return false;\n }\n if (!this.parent && !this.pinnable) {\n return false;\n }\n this._pinned = true;\n this.pinnedChange.emit(this._pinned);\n this._unpinnedIndex = grid._unpinnedColumns.indexOf(this);\n index = index !== undefined ? index : grid._pinnedColumns.length;\n /** @type {?} */\n var targetColumn = grid._pinnedColumns[index];\n /** @type {?} */\n var args = { column: this, insertAtIndex: index, isPinned: true };\n grid.onColumnPinning.emit(args);\n if (grid._pinnedColumns.indexOf(this) === -1) {\n grid._pinnedColumns.splice(args.insertAtIndex, 0, this);\n if (grid._unpinnedColumns.indexOf(this) !== -1) {\n grid._unpinnedColumns.splice(grid._unpinnedColumns.indexOf(this), 1);\n }\n }\n if (hasIndex) {\n grid._moveColumns(this, targetColumn);\n }\n if (this.columnGroup) {\n this.allChildren.forEach(function (child) { return child.pin(); });\n grid.reinitPinStates();\n }\n grid.resetCaches();\n grid.notifyChanges();\n if (this.columnLayoutChild) {\n this.grid.columns.filter(function (x) { return x.columnLayout; }).forEach(function (x) { return x.populateVisibleIndexes(); });\n }\n this.grid.filteringService.refreshExpressions();\n // this.grid.refreshSearch(true);\n return true;\n };\n /**\n * Unpins the column and place it at the provided index in the unpinned area. Defaults to index `0` if not provided.\n * Returns `true` if the column is successfully unpinned. Returns `false` if the column cannot be unpinned.\n * Column cannot be unpinned if:\n * - Is already unpinned\n * - index argument is out of range\n * ```typescript\n * let success = this.column.unpin();\n * ```\n * @memberof IgxColumnComponent\n */\n /**\n * Unpins the column and place it at the provided index in the unpinned area. Defaults to index `0` if not provided.\n * Returns `true` if the column is successfully unpinned. Returns `false` if the column cannot be unpinned.\n * Column cannot be unpinned if:\n * - Is already unpinned\n * - index argument is out of range\n * ```typescript\n * let success = this.column.unpin();\n * ```\n * \\@memberof IgxColumnComponent\n * @param {?=} index\n * @return {?}\n */\n IgxColumnComponent.prototype.unpin = /**\n * Unpins the column and place it at the provided index in the unpinned area. Defaults to index `0` if not provided.\n * Returns `true` if the column is successfully unpinned. Returns `false` if the column cannot be unpinned.\n * Column cannot be unpinned if:\n * - Is already unpinned\n * - index argument is out of range\n * ```typescript\n * let success = this.column.unpin();\n * ```\n * \\@memberof IgxColumnComponent\n * @param {?=} index\n * @return {?}\n */\n function (index) {\n if (this.grid) {\n this.grid.endEdit(true);\n }\n if (!this._pinned) {\n return false;\n }\n if (this.parent && this.parent.pinned) {\n return this.topLevelParent.unpin(index);\n }\n /** @type {?} */\n var grid = ((/** @type {?} */ (this.grid)));\n /** @type {?} */\n var hasIndex = index !== undefined;\n if (hasIndex && (index < 0 || index >= grid._unpinnedColumns.length)) {\n return false;\n }\n index = (index !== undefined ? index :\n this._unpinnedIndex !== undefined ? this._unpinnedIndex : this.index);\n this._pinned = false;\n this.pinnedChange.emit(this._pinned);\n /** @type {?} */\n var targetColumn = grid._unpinnedColumns[index];\n grid._unpinnedColumns.splice(index, 0, this);\n if (grid._pinnedColumns.indexOf(this) !== -1) {\n grid._pinnedColumns.splice(grid._pinnedColumns.indexOf(this), 1);\n }\n if (hasIndex) {\n grid._moveColumns(this, targetColumn);\n }\n if (this.columnGroup) {\n this.allChildren.forEach(function (child) { return child.unpin(); });\n }\n grid.reinitPinStates();\n grid.resetCaches();\n /** @type {?} */\n var insertAtIndex = grid._unpinnedColumns.indexOf(this);\n /** @type {?} */\n var args = { column: this, insertAtIndex: insertAtIndex, isPinned: false };\n grid.onColumnPinning.emit(args);\n grid.notifyChanges();\n if (this.columnLayoutChild) {\n this.grid.columns.filter(function (x) { return x.columnLayout; }).forEach(function (x) { return x.populateVisibleIndexes(); });\n }\n this.grid.filteringService.refreshExpressions();\n // this.grid.refreshSearch(true);\n return true;\n };\n Object.defineProperty(IgxColumnComponent.prototype, \"topLevelParent\", {\n /**\n * Returns a reference to the top level parent column.\n * ```typescript\n * let topLevelParent = this.column.topLevelParent;\n * ```\n * @memberof IgxColumnComponent\n */\n get: /**\n * Returns a reference to the top level parent column.\n * ```typescript\n * let topLevelParent = this.column.topLevelParent;\n * ```\n * \\@memberof IgxColumnComponent\n * @return {?}\n */\n function () {\n /** @type {?} */\n var parent = this.parent;\n while (parent && parent.parent) {\n parent = parent.parent;\n }\n return parent;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxColumnComponent.prototype, \"headerCell\", {\n /**\n * Returns a reference to the header of the column.\n * ```typescript\n * let column = this.grid.columnList.filter(c => c.field === 'ID')[0];\n * let headerCell = column.headerCell;\n * ```\n * @memberof IgxColumnComponent\n */\n get: /**\n * Returns a reference to the header of the column.\n * ```typescript\n * let column = this.grid.columnList.filter(c => c.field === 'ID')[0];\n * let headerCell = column.headerCell;\n * ```\n * \\@memberof IgxColumnComponent\n * @return {?}\n */\n function () {\n var _this = this;\n return this.grid.headerCellList.find(function (header) { return header.column === _this; });\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxColumnComponent.prototype, \"filterCell\", {\n /**\n * Returns a reference to the filter cell of the column.\n * ```typescript\n * let column = this.grid.columnList.filter(c => c.field === 'ID')[0];\n * let filterell = column.filterell;\n * ```\n * @memberof IgxColumnComponent\n */\n get: /**\n * Returns a reference to the filter cell of the column.\n * ```typescript\n * let column = this.grid.columnList.filter(c => c.field === 'ID')[0];\n * let filterell = column.filterell;\n * ```\n * \\@memberof IgxColumnComponent\n * @return {?}\n */\n function () {\n var _this = this;\n return this.grid.filterCellList.find(function (filterCell) { return filterCell.column === _this; });\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxColumnComponent.prototype, \"headerGroup\", {\n /**\n * Returns a reference to the header group of the column.\n * @memberof IgxColumnComponent\n */\n get: /**\n * Returns a reference to the header group of the column.\n * \\@memberof IgxColumnComponent\n * @return {?}\n */\n function () {\n var _this = this;\n return this.grid.headerGroupsList.find(function (headerGroup) { return headerGroup.column === _this; });\n },\n enumerable: true,\n configurable: true\n });\n /**\n * Autosize the column to the longest currently visible cell value, including the header cell.\n * ```typescript\n * @ViewChild('grid') grid: IgxGridComponent;\n * let column = this.grid.columnList.filter(c => c.field === 'ID')[0];\n * column.autosize();\n * ```\n * @memberof IgxColumnComponent\n */\n /**\n * Autosize the column to the longest currently visible cell value, including the header cell.\n * ```typescript\n * \\@ViewChild('grid') grid: IgxGridComponent;\n * let column = this.grid.columnList.filter(c => c.field === 'ID')[0];\n * column.autosize();\n * ```\n * \\@memberof IgxColumnComponent\n * @return {?}\n */\n IgxColumnComponent.prototype.autosize = /**\n * Autosize the column to the longest currently visible cell value, including the header cell.\n * ```typescript\n * \\@ViewChild('grid') grid: IgxGridComponent;\n * let column = this.grid.columnList.filter(c => c.field === 'ID')[0];\n * column.autosize();\n * ```\n * \\@memberof IgxColumnComponent\n * @return {?}\n */\n function () {\n if (!this.columnGroup) {\n this.width = this.getLargestCellWidth();\n this.grid.reflow();\n }\n };\n /**\n * @hidden\n */\n /**\n * @hidden\n * @return {?}\n */\n IgxColumnComponent.prototype.getCalcWidth = /**\n * @hidden\n * @return {?}\n */\n function () {\n if (this._calcWidth !== null && !isNaN(this.calcPixelWidth)) {\n return this._calcWidth;\n }\n this.cacheCalcWidth();\n return this._calcWidth;\n };\n /**\n * @hidden\n * Returns the size (in pixels) of the longest currently visible cell, including the header cell.\n * ```typescript\n * @ViewChild('grid') grid: IgxGridComponent;\n *\n * let column = this.grid.columnList.filter(c => c.field === 'ID')[0];\n * let size = column.getLargestCellWidth();\n * ```\n * @memberof IgxColumnComponent\n */\n /**\n * @hidden\n * Returns the size (in pixels) of the longest currently visible cell, including the header cell.\n * ```typescript\n * \\@ViewChild('grid') grid: IgxGridComponent;\n *\n * let column = this.grid.columnList.filter(c => c.field === 'ID')[0];\n * let size = column.getLargestCellWidth();\n * ```\n * \\@memberof IgxColumnComponent\n * @return {?}\n */\n IgxColumnComponent.prototype.getLargestCellWidth = /**\n * @hidden\n * Returns the size (in pixels) of the longest currently visible cell, including the header cell.\n * ```typescript\n * \\@ViewChild('grid') grid: IgxGridComponent;\n *\n * let column = this.grid.columnList.filter(c => c.field === 'ID')[0];\n * let size = column.getLargestCellWidth();\n * ```\n * \\@memberof IgxColumnComponent\n * @return {?}\n */\n function () {\n /** @type {?} */\n var range = this.grid.document.createRange();\n /** @type {?} */\n var largest = new Map();\n if (this.cells.length > 0) {\n /** @type {?} */\n var cellsContentWidths_1 = [];\n if (this.cells[0].nativeElement.children.length > 0) {\n this.cells.forEach(function (cell) { return cellsContentWidths_1.push(cell.calculateSizeToFit(range)); });\n }\n else {\n cellsContentWidths_1 = this.cells.map(function (cell) { return getNodeSizeViaRange(range, cell.nativeElement); });\n }\n /** @type {?} */\n var index = cellsContentWidths_1.indexOf(Math.max.apply(Math, __spread(cellsContentWidths_1)));\n /** @type {?} */\n var cellStyle = this.grid.document.defaultView.getComputedStyle(this.cells[index].nativeElement);\n /** @type {?} */\n var cellPadding = parseFloat(cellStyle.paddingLeft) + parseFloat(cellStyle.paddingRight) +\n parseFloat(cellStyle.borderRightWidth);\n largest.set(Math.max.apply(Math, __spread(cellsContentWidths_1)), cellPadding);\n }\n if (this.headerCell) {\n /** @type {?} */\n var headerCell = void 0;\n if (this.headerTemplate && this.headerCell.elementRef.nativeElement.children[0].children.length > 0) {\n headerCell = Math.max.apply(Math, __spread(Array.from(this.headerCell.elementRef.nativeElement.children[0].children)\n .map(function (child) { return getNodeSizeViaRange(range, child); })));\n }\n else {\n headerCell = getNodeSizeViaRange(range, this.headerCell.elementRef.nativeElement.children[0]);\n }\n if (this.sortable || this.filterable) {\n headerCell += this.headerCell.elementRef.nativeElement.children[1].getBoundingClientRect().width;\n }\n /** @type {?} */\n var headerStyle = this.grid.document.defaultView.getComputedStyle(this.headerCell.elementRef.nativeElement);\n /** @type {?} */\n var headerPadding = parseFloat(headerStyle.paddingLeft) + parseFloat(headerStyle.paddingRight) +\n parseFloat(headerStyle.borderRightWidth);\n largest.set(headerCell, headerPadding);\n }\n /** @type {?} */\n var largestCell = Math.max.apply(Math, __spread(Array.from(largest.keys())));\n /** @type {?} */\n var width = Math.ceil(largestCell + largest.get(largestCell));\n if (Number.isNaN(width)) {\n return this.width;\n }\n else {\n return width + 'px';\n }\n };\n /**\n *@hidden\n */\n /**\n * @hidden\n * @return {?}\n */\n IgxColumnComponent.prototype.getCellWidth = /**\n * @hidden\n * @return {?}\n */\n function () {\n /** @type {?} */\n var colWidth = this.width;\n /** @type {?} */\n var isPercentageWidth = colWidth && typeof colWidth === 'string' && colWidth.indexOf('%') !== -1;\n if (this.columnLayoutChild) {\n return '';\n }\n if (colWidth && !isPercentageWidth) {\n /** @type {?} */\n var cellWidth = colWidth;\n if (typeof cellWidth !== 'string' || cellWidth.endsWith('px') === false) {\n cellWidth += 'px';\n }\n return cellWidth;\n }\n else {\n return colWidth;\n }\n };\n /**\n * @hidden\n * @internal\n */\n /**\n * @hidden\n * \\@internal\n * @protected\n * @return {?}\n */\n IgxColumnComponent.prototype.cacheCalcWidth = /**\n * @hidden\n * \\@internal\n * @protected\n * @return {?}\n */\n function () {\n /** @type {?} */\n var grid = this.gridAPI.grid;\n /** @type {?} */\n var colWidth = this.width;\n /** @type {?} */\n var isPercentageWidth = colWidth && typeof colWidth === 'string' && colWidth.indexOf('%') !== -1;\n if (isPercentageWidth) {\n this._calcWidth = parseInt(colWidth, 10) / 100 * (grid.calcWidth - grid.featureColumnsWidth);\n }\n else if (!colWidth) {\n // no width\n this._calcWidth = this.defaultWidth || grid.getPossibleColumnWidth();\n }\n else {\n this._calcWidth = this.width;\n }\n this.calcPixelWidth = parseInt(this._calcWidth, 10);\n };\n Object.defineProperty(IgxColumnComponent.prototype, \"pinnable\", {\n /**\n *@hidden\n */\n get: /**\n * @hidden\n * @return {?}\n */\n function () {\n /** @type {?} */\n var gridUnpinnedWidth = ((/** @type {?} */ (this.grid))).getUnpinnedWidth(true);\n /** @type {?} */\n var elementWidth = this.parent ? parseInt(this.topLevelParent.width, 10) : parseInt(this.width, 10);\n return ((/** @type {?} */ (this.grid)))._init || !((gridUnpinnedWidth - elementWidth) < this.grid.unpinnedAreaMinWidth);\n },\n enumerable: true,\n configurable: true\n });\n /**\n * @hidden\n */\n /**\n * @hidden\n * @return {?}\n */\n IgxColumnComponent.prototype.populateVisibleIndexes = /**\n * @hidden\n * @return {?}\n */\n function () { };\n /**\n * @hidden\n */\n /**\n * @hidden\n * @return {?}\n */\n IgxColumnComponent.prototype.ngOnDestroy = /**\n * @hidden\n * @return {?}\n */\n function () {\n this.destroy$.next(true);\n this.destroy$.complete();\n };\n IgxColumnComponent.decorators = [\n { type: Component, args: [{\n changeDetection: ChangeDetectionStrategy.OnPush,\n preserveWhitespaces: false,\n selector: 'igx-column',\n template: \"\"\n }] }\n ];\n /** @nocollapse */\n IgxColumnComponent.ctorParameters = function () { return [\n { type: GridBaseAPIService },\n { type: ChangeDetectorRef },\n { type: IgxRowIslandAPIService }\n ]; };\n IgxColumnComponent.propDecorators = {\n field: [{ type: Input }],\n header: [{ type: Input }],\n sortable: [{ type: Input }],\n groupable: [{ type: Input }],\n editable: [{ type: Input }],\n filterable: [{ type: Input }],\n resizable: [{ type: Input }],\n hasSummary: [{ type: Input }],\n hidden: [{ type: Input }],\n hiddenChange: [{ type: Output }],\n disableHiding: [{ type: Input }],\n disablePinning: [{ type: Input }],\n movable: [{ type: Input }],\n width: [{ type: Input }],\n widthChange: [{ type: Output }],\n maxWidth: [{ type: Input }],\n minWidth: [{ type: Input }],\n headerClasses: [{ type: Input }],\n headerGroupClasses: [{ type: Input }],\n cellClasses: [{ type: Input }],\n cellStyles: [{ type: Input }],\n formatter: [{ type: Input }],\n filteringIgnoreCase: [{ type: Input }],\n sortingIgnoreCase: [{ type: Input }],\n dataType: [{ type: Input }],\n pinned: [{ type: Input }],\n pinnedChange: [{ type: Output }],\n summaries: [{ type: Input }],\n searchable: [{ type: Input }],\n filters: [{ type: Input }],\n sortStrategy: [{ type: Input }],\n groupingComparer: [{ type: Input }],\n bodyTemplate: [{ type: Input, args: ['cellTemplate',] }],\n headerTemplate: [{ type: Input }],\n inlineEditorTemplate: [{ type: Input, args: ['cellEditorTemplate',] }],\n filterCellTemplate: [{ type: Input, args: ['filterCellTemplate',] }],\n rowEnd: [{ type: Input }],\n colEnd: [{ type: Input }],\n rowStart: [{ type: Input }],\n colStart: [{ type: Input }],\n cellTemplate: [{ type: ContentChild, args: [IgxCellTemplateDirective, { read: IgxCellTemplateDirective, static: false },] }],\n headTemplate: [{ type: ContentChildren, args: [IgxCellHeaderTemplateDirective, { read: IgxCellHeaderTemplateDirective, descendants: false },] }],\n editorTemplate: [{ type: ContentChild, args: [IgxCellEditorTemplateDirective, { read: IgxCellEditorTemplateDirective, static: false },] }],\n filterCellTemplateDirective: [{ type: ContentChild, args: [IgxFilterCellTemplateDirective, { read: IgxFilterCellTemplateDirective, static: false },] }]\n };\n __decorate([\n notifyChanges(),\n WatchColumnChanges(),\n __metadata(\"design:type\", Object)\n ], IgxColumnComponent.prototype, \"header\", void 0);\n __decorate([\n WatchColumnChanges(),\n __metadata(\"design:type\", Object)\n ], IgxColumnComponent.prototype, \"sortable\", void 0);\n __decorate([\n notifyChanges(true),\n WatchColumnChanges(),\n __metadata(\"design:type\", Object)\n ], IgxColumnComponent.prototype, \"groupable\", void 0);\n __decorate([\n WatchColumnChanges(),\n __metadata(\"design:type\", Boolean),\n __metadata(\"design:paramtypes\", [Boolean])\n ], IgxColumnComponent.prototype, \"editable\", null);\n __decorate([\n notifyChanges(),\n WatchColumnChanges(),\n __metadata(\"design:type\", Object)\n ], IgxColumnComponent.prototype, \"filterable\", void 0);\n __decorate([\n WatchColumnChanges(),\n __metadata(\"design:type\", Object)\n ], IgxColumnComponent.prototype, \"resizable\", void 0);\n __decorate([\n notifyChanges(true),\n WatchColumnChanges(),\n __metadata(\"design:type\", Object),\n __metadata(\"design:paramtypes\", [Object])\n ], IgxColumnComponent.prototype, \"hasSummary\", null);\n __decorate([\n notifyChanges(true),\n WatchColumnChanges(),\n __metadata(\"design:type\", Boolean),\n __metadata(\"design:paramtypes\", [Boolean])\n ], IgxColumnComponent.prototype, \"hidden\", null);\n __decorate([\n notifyChanges(),\n WatchColumnChanges(),\n __metadata(\"design:type\", Object)\n ], IgxColumnComponent.prototype, \"disableHiding\", void 0);\n __decorate([\n notifyChanges(),\n WatchColumnChanges(),\n __metadata(\"design:type\", Object)\n ], IgxColumnComponent.prototype, \"disablePinning\", void 0);\n __decorate([\n WatchColumnChanges(),\n notifyChanges(),\n __metadata(\"design:type\", Object)\n ], IgxColumnComponent.prototype, \"movable\", void 0);\n __decorate([\n notifyChanges(true),\n WatchColumnChanges(),\n __metadata(\"design:type\", String),\n __metadata(\"design:paramtypes\", [String])\n ], IgxColumnComponent.prototype, \"width\", null);\n __decorate([\n WatchColumnChanges(),\n __metadata(\"design:type\", String)\n ], IgxColumnComponent.prototype, \"maxWidth\", void 0);\n __decorate([\n notifyChanges(),\n WatchColumnChanges(),\n __metadata(\"design:type\", String),\n __metadata(\"design:paramtypes\", [String])\n ], IgxColumnComponent.prototype, \"minWidth\", null);\n __decorate([\n notifyChanges(),\n WatchColumnChanges(),\n __metadata(\"design:type\", Object)\n ], IgxColumnComponent.prototype, \"headerClasses\", void 0);\n __decorate([\n notifyChanges(),\n WatchColumnChanges(),\n __metadata(\"design:type\", Object)\n ], IgxColumnComponent.prototype, \"headerGroupClasses\", void 0);\n __decorate([\n notifyChanges(),\n WatchColumnChanges(),\n __metadata(\"design:type\", Object)\n ], IgxColumnComponent.prototype, \"cellClasses\", void 0);\n __decorate([\n notifyChanges(),\n WatchColumnChanges(),\n __metadata(\"design:type\", Object)\n ], IgxColumnComponent.prototype, \"cellStyles\", void 0);\n __decorate([\n notifyChanges(),\n WatchColumnChanges(),\n __metadata(\"design:type\", Function)\n ], IgxColumnComponent.prototype, \"formatter\", void 0);\n __decorate([\n WatchColumnChanges(),\n __metadata(\"design:type\", Object)\n ], IgxColumnComponent.prototype, \"filteringIgnoreCase\", void 0);\n __decorate([\n WatchColumnChanges(),\n __metadata(\"design:type\", Object)\n ], IgxColumnComponent.prototype, \"sortingIgnoreCase\", void 0);\n __decorate([\n WatchColumnChanges(),\n __metadata(\"design:type\", Boolean),\n __metadata(\"design:paramtypes\", [Boolean])\n ], IgxColumnComponent.prototype, \"pinned\", null);\n __decorate([\n DeprecateProperty(\"The property is deprecated. Please, use `column.grid.id` instead.\"),\n __metadata(\"design:type\", String)\n ], IgxColumnComponent.prototype, \"gridID\", void 0);\n __decorate([\n notifyChanges(true),\n WatchColumnChanges(),\n __metadata(\"design:type\", Object),\n __metadata(\"design:paramtypes\", [Object])\n ], IgxColumnComponent.prototype, \"summaries\", null);\n __decorate([\n notifyChanges(),\n WatchColumnChanges(),\n __metadata(\"design:type\", Object)\n ], IgxColumnComponent.prototype, \"searchable\", void 0);\n __decorate([\n notifyChanges(),\n WatchColumnChanges(),\n __metadata(\"design:type\", TemplateRef),\n __metadata(\"design:paramtypes\", [TemplateRef])\n ], IgxColumnComponent.prototype, \"bodyTemplate\", null);\n __decorate([\n notifyChanges(),\n WatchColumnChanges(),\n __metadata(\"design:type\", TemplateRef),\n __metadata(\"design:paramtypes\", [TemplateRef])\n ], IgxColumnComponent.prototype, \"headerTemplate\", null);\n __decorate([\n notifyChanges(),\n WatchColumnChanges(),\n __metadata(\"design:type\", TemplateRef),\n __metadata(\"design:paramtypes\", [TemplateRef])\n ], IgxColumnComponent.prototype, \"inlineEditorTemplate\", null);\n __decorate([\n notifyChanges(),\n WatchColumnChanges(),\n __metadata(\"design:type\", TemplateRef),\n __metadata(\"design:paramtypes\", [TemplateRef])\n ], IgxColumnComponent.prototype, \"filterCellTemplate\", null);\n return IgxColumnComponent;\n}());\nvar IgxColumnGroupComponent = /** @class */ (function (_super) {\n __extends(IgxColumnGroupComponent, _super);\n function IgxColumnGroupComponent(gridAPI, cdr, rowIslandAPI) {\n var _this = \n // D.P. constructor duplication due to es6 compilation, might be obsolete in the future\n _super.call(this, gridAPI, cdr, rowIslandAPI) || this;\n _this.gridAPI = gridAPI;\n _this.cdr = cdr;\n _this.rowIslandAPI = rowIslandAPI;\n _this.children = new QueryList();\n /**\n * Sets/gets whether the column group is `searchable`.\n * Default value is `true`.\n * ```typescript\n * let isSearchable = this.columnGroup.searchable;\n * ```\n * ```html\n * \n * ```\n * \\@memberof IgxColumnGroupComponent\n */\n _this.searchable = true;\n /**\n * @hidden\n */\n _this.hiddenChange = new EventEmitter();\n return _this;\n }\n Object.defineProperty(IgxColumnGroupComponent.prototype, \"summaries\", {\n /**\n * Gets the column group `summaries`.\n * ```typescript\n * let columnGroupSummaries = this.columnGroup.summaries;\n * ```\n * @memberof IgxColumnGroupComponent\n */\n get: /**\n * Gets the column group `summaries`.\n * ```typescript\n * let columnGroupSummaries = this.columnGroup.summaries;\n * ```\n * \\@memberof IgxColumnGroupComponent\n * @return {?}\n */\n function () {\n return this._summaries;\n },\n /**\n * Sets the column group `summaries`.\n * ```typescript\n * this.columnGroup.summaries = IgxNumberSummaryOperand;\n * ```\n * @memberof IgxColumnGroupComponent\n */\n set: /**\n * Sets the column group `summaries`.\n * ```typescript\n * this.columnGroup.summaries = IgxNumberSummaryOperand;\n * ```\n * \\@memberof IgxColumnGroupComponent\n * @param {?} classRef\n * @return {?}\n */\n function (classRef) { },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxColumnGroupComponent.prototype, \"filters\", {\n /**\n * Gets the column group `filters`.\n * ```typescript\n * let columnGroupFilters = this.columnGroup.filters;\n * ```\n * @memberof IgxColumnGroupComponent\n */\n get: /**\n * Gets the column group `filters`.\n * ```typescript\n * let columnGroupFilters = this.columnGroup.filters;\n * ```\n * \\@memberof IgxColumnGroupComponent\n * @return {?}\n */\n function () {\n return this._filters;\n },\n /**\n * Sets the column group `filters`.\n * ```typescript\n * this.columnGroup.filters = IgxStringFilteringOperand;\n * ```\n * @memberof IgxColumnGroupComponent\n */\n set: /**\n * Sets the column group `filters`.\n * ```typescript\n * this.columnGroup.filters = IgxStringFilteringOperand;\n * ```\n * \\@memberof IgxColumnGroupComponent\n * @param {?} classRef\n * @return {?}\n */\n function (classRef) { },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxColumnGroupComponent.prototype, \"bodyTemplate\", {\n /**\n * Returns a reference to the body template.\n * ```typescript\n * let bodyTemplate = this.columnGroup.bodyTemplate;\n * ```\n * @memberof IgxColumnGroupComponent\n */\n get: /**\n * Returns a reference to the body template.\n * ```typescript\n * let bodyTemplate = this.columnGroup.bodyTemplate;\n * ```\n * \\@memberof IgxColumnGroupComponent\n * @return {?}\n */\n function () {\n return this._bodyTemplate;\n },\n /**\n * @hidden\n */\n set: /**\n * @hidden\n * @param {?} template\n * @return {?}\n */\n function (template) { },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxColumnGroupComponent.prototype, \"inlineEditorTemplate\", {\n /**\n * Returns a reference to the inline editor template.\n * ```typescript\n * let inlineEditorTemplate = this.columnGroup.inlineEditorTemplate;\n * ```\n * @memberof IgxColumnGroupComponent\n */\n get: /**\n * Returns a reference to the inline editor template.\n * ```typescript\n * let inlineEditorTemplate = this.columnGroup.inlineEditorTemplate;\n * ```\n * \\@memberof IgxColumnGroupComponent\n * @return {?}\n */\n function () {\n return this._inlineEditorTemplate;\n },\n /**\n * @hidden\n */\n set: /**\n * @hidden\n * @param {?} template\n * @return {?}\n */\n function (template) { },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxColumnGroupComponent.prototype, \"cells\", {\n /**\n * Gets the column group cells.\n * ```typescript\n * let columnCells = this.columnGroup.cells;\n * ```\n * @memberof IgxColumnGroupComponent\n */\n get: /**\n * Gets the column group cells.\n * ```typescript\n * let columnCells = this.columnGroup.cells;\n * ```\n * \\@memberof IgxColumnGroupComponent\n * @return {?}\n */\n function () {\n return [];\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxColumnGroupComponent.prototype, \"hidden\", {\n /**\n * Gets whether the column group is hidden.\n * ```typescript\n * let isHidden = this.columnGroup.hidden;\n * ```\n * @memberof IgxColumnGroupComponent\n */\n get: /**\n * Gets whether the column group is hidden.\n * ```typescript\n * let isHidden = this.columnGroup.hidden;\n * ```\n * \\@memberof IgxColumnGroupComponent\n * @return {?}\n */\n function () {\n return this.allChildren.every(function (c) { return c.hidden; });\n },\n /**\n * Sets the column group hidden property.\n * ```html\n * \n * ```\n *\n * Two-way data binding\n * ```html\n * \n * ```\n * @memberof IgxColumnGroupComponent\n */\n set: /**\n * Sets the column group hidden property.\n * ```html\n * \n * ```\n *\n * Two-way data binding\n * ```html\n * \n * ```\n * \\@memberof IgxColumnGroupComponent\n * @param {?} value\n * @return {?}\n */\n function (value) {\n this._hidden = value;\n this.hiddenChange.emit(this._hidden);\n this.children.forEach(function (child) { return child.hidden = value; });\n },\n enumerable: true,\n configurable: true\n });\n /**\n *@hidden\n */\n /**\n * @hidden\n * @return {?}\n */\n IgxColumnGroupComponent.prototype.ngAfterContentInit = /**\n * @hidden\n * @return {?}\n */\n function () {\n var _this = this;\n /*\n @ContentChildren with descendants still returns the `parent`\n component in the query list.\n */\n if (this.headTemplate && this.headTemplate.length) {\n this._headerTemplate = this.headTemplate.toArray()[0].template;\n }\n this.children.reset(this.children.toArray().slice(1));\n this.children.forEach(function (child) {\n child.parent = _this;\n });\n /*\n TO DO: In Angular 9 this need to be removed, because the @ContentChildren will not return the `parent`\n component in the query list.\n */\n this.children.changes.pipe(takeUntil(this.destroy$))\n .subscribe(function (change) {\n if (change.first === _this) {\n _this.children.reset(_this.children.toArray().slice(1));\n _this.children.forEach(function (child) {\n child.parent = _this;\n });\n }\n });\n };\n Object.defineProperty(IgxColumnGroupComponent.prototype, \"allChildren\", {\n /**\n * Returns the children columns collection.\n * ```typescript\n * let columns = this.columnGroup.allChildren;\n * ```\n * @memberof IgxColumnGroupComponent\n */\n get: /**\n * Returns the children columns collection.\n * ```typescript\n * let columns = this.columnGroup.allChildren;\n * ```\n * \\@memberof IgxColumnGroupComponent\n * @return {?}\n */\n function () {\n return flatten(this.children.toArray());\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxColumnGroupComponent.prototype, \"columnGroup\", {\n /**\n * Returns a boolean indicating if the column is a `ColumnGroup`.\n * ```typescript\n * let isColumnGroup = this.columnGroup.columnGroup\n * ```\n * @memberof IgxColumnGroupComponent\n */\n get: /**\n * Returns a boolean indicating if the column is a `ColumnGroup`.\n * ```typescript\n * let isColumnGroup = this.columnGroup.columnGroup\n * ```\n * \\@memberof IgxColumnGroupComponent\n * @return {?}\n */\n function () {\n return true;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxColumnGroupComponent.prototype, \"columnLayout\", {\n /**\n * Returns a boolean indicating if the column is a `ColumnLayout` for multi-row layout.\n * ```typescript\n * let columnGroup = this.column.columnGroup;\n * ```\n * @memberof IgxColumnComponent\n */\n get: /**\n * Returns a boolean indicating if the column is a `ColumnLayout` for multi-row layout.\n * ```typescript\n * let columnGroup = this.column.columnGroup;\n * ```\n * \\@memberof IgxColumnComponent\n * @return {?}\n */\n function () {\n return false;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxColumnGroupComponent.prototype, \"width\", {\n /**\n * Gets the width of the column group.\n * ```typescript\n * let columnGroupWidth = this.columnGroup.width;\n * ```\n * @memberof IgxColumnGroupComponent\n */\n get: /**\n * Gets the width of the column group.\n * ```typescript\n * let columnGroupWidth = this.columnGroup.width;\n * ```\n * \\@memberof IgxColumnGroupComponent\n * @return {?}\n */\n function () {\n /** @type {?} */\n var isChildrenWidthInPercent = false;\n /** @type {?} */\n var width;\n width = \"\" + this.children.reduce(function (acc, val) {\n if (val.hidden) {\n return acc;\n }\n if (typeof val.width === 'string' && val.width.indexOf('%') !== -1) {\n isChildrenWidthInPercent = true;\n }\n return acc + parseInt(val.width, 10);\n }, 0);\n return isChildrenWidthInPercent ? width + '%' : width;\n },\n set: /**\n * @param {?} val\n * @return {?}\n */\n function (val) { },\n enumerable: true,\n configurable: true\n });\n IgxColumnGroupComponent.decorators = [\n { type: Component, args: [{\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [{ provide: IgxColumnComponent, useExisting: forwardRef(function () { return IgxColumnGroupComponent; }) }],\n selector: 'igx-column-group',\n template: \"\"\n }] }\n ];\n /** @nocollapse */\n IgxColumnGroupComponent.ctorParameters = function () { return [\n { type: GridBaseAPIService },\n { type: ChangeDetectorRef },\n { type: IgxRowIslandAPIService }\n ]; };\n IgxColumnGroupComponent.propDecorators = {\n children: [{ type: ContentChildren, args: [IgxColumnComponent, { read: IgxColumnComponent },] }],\n summaries: [{ type: Input }],\n searchable: [{ type: Input }],\n filters: [{ type: Input }],\n hidden: [{ type: Input }],\n hiddenChange: [{ type: Output }]\n };\n return IgxColumnGroupComponent;\n}(IgxColumnComponent));\nvar IgxColumnLayoutComponent = /** @class */ (function (_super) {\n __extends(IgxColumnLayoutComponent, _super);\n function IgxColumnLayoutComponent() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.childrenVisibleIndexes = [];\n return _this;\n }\n Object.defineProperty(IgxColumnLayoutComponent.prototype, \"width\", {\n /**\n * Gets the width of the column layout.\n * ```typescript\n * let columnGroupWidth = this.columnGroup.width;\n * ```\n * @memberof IgxColumnGroupComponent\n */\n get: /**\n * Gets the width of the column layout.\n * ```typescript\n * let columnGroupWidth = this.columnGroup.width;\n * ```\n * \\@memberof IgxColumnGroupComponent\n * @return {?}\n */\n function () {\n /** @type {?} */\n var width = this.getFilledChildColumnSizes(this.children).reduce(function (acc, val) { return acc + parseInt(val, 10); }, 0);\n return width;\n },\n set: /**\n * @param {?} val\n * @return {?}\n */\n function (val) { },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxColumnLayoutComponent.prototype, \"columnLayout\", {\n get: /**\n * @return {?}\n */\n function () {\n return true;\n },\n enumerable: true,\n configurable: true\n });\n /**\n * @hidden\n */\n /**\n * @hidden\n * @return {?}\n */\n IgxColumnLayoutComponent.prototype.getCalcWidth = /**\n * @hidden\n * @return {?}\n */\n function () {\n /** @type {?} */\n var borderWidth = 0;\n if (this.headerGroup && this.headerGroup.hasLastPinnedChildColumn) {\n /** @type {?} */\n var headerStyles = this.grid.document.defaultView.getComputedStyle(this.headerGroup.element.nativeElement.children[0]);\n borderWidth = parseInt(headerStyles.borderRightWidth, 10);\n }\n return _super.prototype.getCalcWidth.call(this) + borderWidth;\n };\n Object.defineProperty(IgxColumnLayoutComponent.prototype, \"visibleIndex\", {\n /**\n * Gets the column visible index.\n * If the column is not visible, returns `-1`.\n * ```typescript\n * let visibleColumnIndex = this.column.visibleIndex;\n * ```\n * @memberof IgxColumnComponent\n */\n get: /**\n * Gets the column visible index.\n * If the column is not visible, returns `-1`.\n * ```typescript\n * let visibleColumnIndex = this.column.visibleIndex;\n * ```\n * \\@memberof IgxColumnComponent\n * @return {?}\n */\n function () {\n if (!isNaN(this._vIndex)) {\n return this._vIndex;\n }\n /** @type {?} */\n var unpinnedColumns = this.grid.unpinnedColumns.filter(function (c) { return c.columnLayout && !c.hidden; });\n /** @type {?} */\n var pinnedColumns = this.grid.pinnedColumns.filter(function (c) { return c.columnLayout && !c.hidden; });\n /** @type {?} */\n var vIndex = -1;\n if (!this.pinned) {\n /** @type {?} */\n var indexInCollection = unpinnedColumns.indexOf(this);\n vIndex = indexInCollection === -1 ? -1 : pinnedColumns.length + indexInCollection;\n }\n else {\n vIndex = pinnedColumns.indexOf(this);\n }\n this._vIndex = vIndex;\n return vIndex;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxColumnLayoutComponent.prototype, \"hidden\", {\n /*\n * Gets whether the column layout is hidden.\n * ```typescript\n * let isHidden = this.columnGroup.hidden;\n * ```\n * @memberof IgxColumnGroupComponent\n */\n get: /*\n * Gets whether the column layout is hidden.\n * ```typescript\n * let isHidden = this.columnGroup.hidden;\n * ```\n * @memberof IgxColumnGroupComponent\n */\n /**\n * @return {?}\n */\n function () {\n return this._hidden;\n },\n /**\n * Sets the column layout hidden property.\n * ```typescript\n * \n * ```\n * @memberof IgxColumnGroupComponent\n */\n set: /**\n * Sets the column layout hidden property.\n * ```typescript\n * \n * ```\n * \\@memberof IgxColumnGroupComponent\n * @param {?} value\n * @return {?}\n */\n function (value) {\n this._hidden = value;\n this.children.forEach(function (child) { return child.hidden = value; });\n if (this.grid && this.grid.columns && this.grid.columns.length > 0) {\n // reset indexes in case columns are hidden/shown runtime\n this.grid.columns.filter(function (x) { return x.columnGroup; }).forEach(function (x) { return x.populateVisibleIndexes(); });\n }\n },\n enumerable: true,\n configurable: true\n });\n /**\n *@hidden\n */\n /**\n * @hidden\n * @return {?}\n */\n IgxColumnLayoutComponent.prototype.ngAfterContentInit = /**\n * @hidden\n * @return {?}\n */\n function () {\n var _this = this;\n _super.prototype.ngAfterContentInit.call(this);\n if (!this.hidden) {\n this.hidden = this.allChildren.some(function (x) { return x.hidden; });\n }\n else {\n this.children.forEach(function (child) { return child.hidden = _this.hidden; });\n }\n this.children.forEach(function (child) {\n child.movable = false;\n });\n };\n Object.defineProperty(IgxColumnLayoutComponent.prototype, \"hasLastPinnedChildColumn\", {\n /*\n * Gets whether the group contains the last pinned child column of the column layout.\n * ```typescript\n * let columsHasLastPinned = this.columnLayout.hasLastPinnedChildColumn;\n * ```\n * @memberof IgxColumnLayoutComponent\n */\n get: /*\n * Gets whether the group contains the last pinned child column of the column layout.\n * ```typescript\n * let columsHasLastPinned = this.columnLayout.hasLastPinnedChildColumn;\n * ```\n * @memberof IgxColumnLayoutComponent\n */\n /**\n * @return {?}\n */\n function () {\n return this.children.some(function (child) { return child.isLastPinned; });\n },\n enumerable: true,\n configurable: true\n });\n /**\n *@hidden\n */\n /**\n * @hidden\n * @return {?}\n */\n IgxColumnLayoutComponent.prototype.populateVisibleIndexes = /**\n * @hidden\n * @return {?}\n */\n function () {\n var _this = this;\n this.childrenVisibleIndexes = [];\n /** @type {?} */\n var grid = this.gridAPI.grid;\n /** @type {?} */\n var columns = grid && grid.pinnedColumns && grid.unpinnedColumns ? grid.pinnedColumns.concat(grid.unpinnedColumns) : [];\n /** @type {?} */\n var orderedCols = columns\n .filter(function (x) { return !x.columnGroup && !x.hidden; })\n .sort(function (a, b) { return a.rowStart - b.rowStart || columns.indexOf(a.parent) - columns.indexOf(b.parent) || a.colStart - b.colStart; });\n this.children.forEach(function (child) {\n /** @type {?} */\n var rs = child.rowStart || 1;\n /** @type {?} */\n var vIndex = 0;\n // filter out all cols with larger rowStart\n /** @type {?} */\n var cols = orderedCols.filter(function (c) {\n return !c.columnGroup && (c.rowStart || 1) <= rs;\n });\n vIndex = cols.indexOf(child);\n _this.childrenVisibleIndexes.push({ column: child, index: vIndex });\n });\n };\n IgxColumnLayoutComponent.decorators = [\n { type: Component, args: [{\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [{ provide: IgxColumnComponent, useExisting: forwardRef(function () { return IgxColumnLayoutComponent; }) }],\n selector: 'igx-column-layout',\n template: \"\"\n }] }\n ];\n IgxColumnLayoutComponent.propDecorators = {\n hidden: [{ type: Input }]\n };\n return IgxColumnLayoutComponent;\n}(IgxColumnGroupComponent));\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n/**\n * @hidden\n */\nvar IgxColumnResizingService = /** @class */ (function () {\n function IgxColumnResizingService(zone) {\n this.zone = zone;\n /**\n * @hidden\n */\n this.resizeCursor = null;\n /**\n * @hidden\n */\n this.showResizer = false;\n }\n Object.defineProperty(IgxColumnResizingService.prototype, \"resizerHeight\", {\n /**\n *@hidden\n */\n get: /**\n * @hidden\n * @return {?}\n */\n function () {\n /** @type {?} */\n var height = this.column.grid.getVisibleContentHeight();\n // Column height multiplier in case there are Column Layouts. The resizer height need to take into account rowStart.\n /** @type {?} */\n var columnHeightMultiplier = 1;\n if (this.column.columnLayoutChild) {\n columnHeightMultiplier = this.column.grid.multiRowLayoutRowSize - this.column.rowStart + 1;\n }\n if (this.column.level !== 0) {\n height -= this.column.topLevelParent.headerGroup.height - this.column.headerGroup.height * columnHeightMultiplier;\n }\n return height;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxColumnResizingService.prototype, \"restrictResizeMin\", {\n /**\n * Returns the minimal possible width to which the column can be resized.\n */\n get: /**\n * Returns the minimal possible width to which the column can be resized.\n * @return {?}\n */\n function () {\n /** @type {?} */\n var actualMinWidth = parseFloat(this.column.minWidth);\n /** @type {?} */\n var minWidth = actualMinWidth < parseFloat(this.column.width) ? actualMinWidth : parseFloat(this.column.width);\n return this.column.headerCell.elementRef.nativeElement.getBoundingClientRect().width - minWidth;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxColumnResizingService.prototype, \"restrictResizeMax\", {\n /**\n * Returns the maximal possible width to which the column can be resized.\n */\n get: /**\n * Returns the maximal possible width to which the column can be resized.\n * @return {?}\n */\n function () {\n /** @type {?} */\n var actualWidth = this.column.headerCell.elementRef.nativeElement.getBoundingClientRect().width;\n if (this.column.pinned) {\n /** @type {?} */\n var pinnedMaxWidth = this.pinnedMaxWidth =\n this.column.grid.calcPinnedContainerMaxWidth - this.column.grid.getPinnedWidth(true) + actualWidth;\n if (this.column.maxWidth && parseFloat(this.column.maxWidth) < pinnedMaxWidth) {\n this.pinnedMaxWidth = this.column.maxWidth;\n return parseFloat(this.column.maxWidth) - actualWidth;\n }\n else {\n return pinnedMaxWidth - actualWidth;\n }\n }\n else {\n if (this.column.maxWidth) {\n return parseFloat(this.column.maxWidth) - actualWidth;\n }\n else {\n return Number.MAX_SAFE_INTEGER;\n }\n }\n },\n enumerable: true,\n configurable: true\n });\n /**\n * Autosizes the column to the longest currently visible cell value, including the header cell.\n * If the column has a predifined maxWidth and the autosized column width will become bigger than it,\n * then the column is sized to its maxWidth.\n * If the column is pinned and the autosized column width will cause the pinned area to become bigger\n * than the maximum allowed pinned area width (80% of the total grid width), autosizing will be deismissed.\n */\n /**\n * Autosizes the column to the longest currently visible cell value, including the header cell.\n * If the column has a predifined maxWidth and the autosized column width will become bigger than it,\n * then the column is sized to its maxWidth.\n * If the column is pinned and the autosized column width will cause the pinned area to become bigger\n * than the maximum allowed pinned area width (80% of the total grid width), autosizing will be deismissed.\n * @return {?}\n */\n IgxColumnResizingService.prototype.autosizeColumnOnDblClick = /**\n * Autosizes the column to the longest currently visible cell value, including the header cell.\n * If the column has a predifined maxWidth and the autosized column width will become bigger than it,\n * then the column is sized to its maxWidth.\n * If the column is pinned and the autosized column width will cause the pinned area to become bigger\n * than the maximum allowed pinned area width (80% of the total grid width), autosizing will be deismissed.\n * @return {?}\n */\n function () {\n /** @type {?} */\n var currentColWidth = this.column.headerCell.elementRef.nativeElement.getBoundingClientRect().width;\n /** @type {?} */\n var size = this.column.getLargestCellWidth();\n if (this.column.pinned) {\n /** @type {?} */\n var newPinnedWidth = this.column.grid.getPinnedWidth(true) - currentColWidth + parseFloat(size);\n if (newPinnedWidth <= this.column.grid.calcPinnedContainerMaxWidth) {\n this.column.width = size;\n }\n }\n else if (this.column.maxWidth && (parseFloat(size) > parseFloat(this.column.maxWidth))) {\n this.column.width = parseFloat(this.column.maxWidth) + 'px';\n }\n else if (parseFloat(size) < parseFloat(this.column.minWidth)) {\n this.column.width = this.column.minWidth + 'px';\n }\n else {\n this.column.width = size;\n }\n this.zone.run(function () { });\n this.column.grid.onColumnResized.emit({\n column: this.column,\n prevWidth: currentColWidth.toString(),\n newWidth: this.column.width\n });\n };\n /**\n * Resizes the column regaridng to the column minWidth and maxWidth.\n */\n /**\n * Resizes the column regaridng to the column minWidth and maxWidth.\n * @param {?} event\n * @return {?}\n */\n IgxColumnResizingService.prototype.resizeColumn = /**\n * Resizes the column regaridng to the column minWidth and maxWidth.\n * @param {?} event\n * @return {?}\n */\n function (event) {\n this.showResizer = false;\n /** @type {?} */\n var diff = event.clientX - this.startResizePos;\n /** @type {?} */\n var currentColWidth = parseFloat(this.column.width);\n /** @type {?} */\n var actualWidth = this.column.headerCell.elementRef.nativeElement.getBoundingClientRect().width;\n currentColWidth = Number.isNaN(currentColWidth) || (currentColWidth < actualWidth) ? actualWidth : currentColWidth;\n /** @type {?} */\n var colMinWidth = this.getColMinWidth(this.column);\n /** @type {?} */\n var colMaxWidth = this.getColMaxWidth(this.column);\n if (this.column.grid.hasColumnLayouts) {\n this.resizeColumnLayoutFor(this.column, diff);\n }\n else {\n if (currentColWidth + diff < colMinWidth) {\n this.column.width = colMinWidth + 'px';\n }\n else if (colMaxWidth && (currentColWidth + diff > colMaxWidth)) {\n this.column.width = colMaxWidth + 'px';\n }\n else {\n this.column.width = (currentColWidth + diff) + 'px';\n }\n }\n this.zone.run(function () { });\n if (currentColWidth !== parseFloat(this.column.width)) {\n this.column.grid.onColumnResized.emit({\n column: this.column,\n prevWidth: currentColWidth.toString(),\n newWidth: this.column.width\n });\n }\n this.isColumnResizing = false;\n };\n /**\n * @protected\n * @param {?} column\n * @return {?}\n */\n IgxColumnResizingService.prototype.getColMinWidth = /**\n * @protected\n * @param {?} column\n * @return {?}\n */\n function (column) {\n /** @type {?} */\n var currentColWidth = parseFloat(column.width);\n /** @type {?} */\n var actualWidth = column.headerCell.elementRef.nativeElement.getBoundingClientRect().width;\n currentColWidth = Number.isNaN(currentColWidth) || (currentColWidth < actualWidth) ? actualWidth : currentColWidth;\n /** @type {?} */\n var actualMinWidth = parseFloat(column.minWidth);\n return actualMinWidth < currentColWidth ? actualMinWidth : currentColWidth;\n };\n /**\n * @protected\n * @param {?} column\n * @return {?}\n */\n IgxColumnResizingService.prototype.getColMaxWidth = /**\n * @protected\n * @param {?} column\n * @return {?}\n */\n function (column) {\n return column.pinned ? parseFloat(this.pinnedMaxWidth) : parseFloat(column.maxWidth);\n };\n /**\n * @protected\n * @param {?} column\n * @param {?} diff\n * @return {?}\n */\n IgxColumnResizingService.prototype.resizeColumnLayoutFor = /**\n * @protected\n * @param {?} column\n * @param {?} diff\n * @return {?}\n */\n function (column, diff) {\n var _this = this;\n /** @type {?} */\n var relativeColumns = column.getResizableColUnderEnd();\n /** @type {?} */\n var combinedSpan = relativeColumns.reduce(function (acc, col) { return acc + col.spanUsed; }, 0);\n if (column.pinned) {\n /** @type {?} */\n var pinnedWidth = this.column.grid.getPinnedWidth(true);\n /** @type {?} */\n var maxPinnedWidth = this.column.grid.calcPinnedContainerMaxWidth;\n if (pinnedWidth + diff > maxPinnedWidth) {\n diff = maxPinnedWidth - pinnedWidth;\n }\n }\n // Resize first those who might reach min/max width\n /** @type {?} */\n var columnsToResize = __spread(relativeColumns);\n /** @type {?} */\n var updatedDiff = diff;\n /** @type {?} */\n var updatedCombinedSpan = combinedSpan;\n /** @type {?} */\n var setMinMaxCols = false;\n var _loop_1 = function () {\n // Cycle them until there are not ones that reach min/max size, because the diff accumulates after each cycle.\n // This is because we can have at first 2 cols reaching min width and then after\n // recalculating the diff there might be 1 more that reaches min width.\n setMinMaxCols = false;\n /** @type {?} */\n var newCombinedSpan = updatedCombinedSpan;\n /** @type {?} */\n var newColsToResize = [];\n columnsToResize.forEach(function (col) {\n /** @type {?} */\n var currentResizeWidth = parseFloat(col.target.calcWidth);\n /** @type {?} */\n var resizeScaled = (diff / updatedCombinedSpan) * col.target.gridColumnSpan;\n /** @type {?} */\n var minWidth = _this.getColMinWidth(col.target);\n /** @type {?} */\n var maxWidth = _this.getColMaxWidth(col.target);\n if (currentResizeWidth + resizeScaled < minWidth) {\n col.target.width = minWidth + 'px';\n updatedDiff += (currentResizeWidth - minWidth);\n newCombinedSpan -= col.spanUsed;\n setMinMaxCols = true;\n }\n else if (maxWidth && (currentResizeWidth + resizeScaled > maxWidth)) {\n col.target.width = maxWidth + 'px';\n updatedDiff -= (maxWidth - currentResizeWidth);\n newCombinedSpan -= col.spanUsed;\n setMinMaxCols = true;\n }\n else {\n // Save new ones that can be resized\n newColsToResize.push(col);\n }\n });\n updatedCombinedSpan = newCombinedSpan;\n columnsToResize = newColsToResize;\n };\n do {\n _loop_1();\n } while (setMinMaxCols);\n // Those left that don't reach min/max size resize them normally.\n columnsToResize.forEach(function (col) {\n /** @type {?} */\n var currentResizeWidth = parseFloat(col.target.calcWidth);\n /** @type {?} */\n var resizeScaled = (updatedDiff / updatedCombinedSpan) * col.target.gridColumnSpan;\n col.target.width = (currentResizeWidth + resizeScaled) + 'px';\n });\n };\n IgxColumnResizingService.decorators = [\n { type: Injectable }\n ];\n /** @nocollapse */\n IgxColumnResizingService.ctorParameters = function () { return [\n { type: NgZone }\n ]; };\n return IgxColumnResizingService;\n}());\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n/** @type {?} */\nvar DEFAULT_DATE_FORMAT = 'mediumDate';\n/** @type {?} */\nvar DEBOUNCE_TIME = 200;\n/**\n * @hidden\n */\nvar IgxResizeHandleDirective = /** @class */ (function () {\n function IgxResizeHandleDirective(zone, element, colResizingService) {\n this.zone = zone;\n this.element = element;\n this.colResizingService = colResizingService;\n /**\n * @hidden\n */\n this._dblClick = false;\n /**\n * @hidden\n */\n this.destroy$ = new Subject();\n }\n /**\n * @hidden\n */\n /**\n * @hidden\n * @return {?}\n */\n IgxResizeHandleDirective.prototype.ngOnDestroy = /**\n * @hidden\n * @return {?}\n */\n function () {\n this.destroy$.next(true);\n this.destroy$.complete();\n };\n /**\n * @hidden\n */\n /**\n * @hidden\n * @return {?}\n */\n IgxResizeHandleDirective.prototype.ngAfterViewInit = /**\n * @hidden\n * @return {?}\n */\n function () {\n var _this = this;\n if (!this.column.columnGroup && this.column.resizable) {\n this.zone.runOutsideAngular(function () {\n fromEvent(_this.element.nativeElement, 'mousedown').pipe(debounceTime(DEBOUNCE_TIME), takeUntil(_this.destroy$)).subscribe(function (event) {\n if (_this._dblClick) {\n _this._dblClick = false;\n return;\n }\n if (event.button === 0) {\n _this._onResizeAreaMouseDown(event);\n _this.column.grid.resizeLine.resizer.onMousedown(event);\n }\n });\n });\n fromEvent(this.element.nativeElement, 'mouseup').pipe(debounceTime(DEBOUNCE_TIME), takeUntil(this.destroy$)).subscribe(function () {\n _this.colResizingService.isColumnResizing = false;\n _this.colResizingService.showResizer = false;\n _this.column.grid.cdr.detectChanges();\n });\n }\n };\n /**\n * @hidden\n */\n /**\n * @hidden\n * @return {?}\n */\n IgxResizeHandleDirective.prototype.onMouseOver = /**\n * @hidden\n * @return {?}\n */\n function () {\n this.colResizingService.resizeCursor = 'col-resize';\n };\n /**\n * @hidden\n */\n /**\n * @hidden\n * @return {?}\n */\n IgxResizeHandleDirective.prototype.onDoubleClick = /**\n * @hidden\n * @return {?}\n */\n function () {\n this._dblClick = true;\n this.colResizingService.column = this.column;\n this.colResizingService.autosizeColumnOnDblClick();\n };\n /**\n * @hidden\n */\n /**\n * @hidden\n * @private\n * @param {?} event\n * @return {?}\n */\n IgxResizeHandleDirective.prototype._onResizeAreaMouseDown = /**\n * @hidden\n * @private\n * @param {?} event\n * @return {?}\n */\n function (event) {\n this.colResizingService.column = this.column;\n this.colResizingService.isColumnResizing = true;\n this.colResizingService.startResizePos = event.clientX;\n this.colResizingService.showResizer = true;\n this.column.grid.cdr.detectChanges();\n };\n IgxResizeHandleDirective.decorators = [\n { type: Directive, args: [{\n selector: '[igxResizeHandle]'\n },] }\n ];\n /** @nocollapse */\n IgxResizeHandleDirective.ctorParameters = function () { return [\n { type: NgZone },\n { type: ElementRef },\n { type: IgxColumnResizingService }\n ]; };\n IgxResizeHandleDirective.propDecorators = {\n column: [{ type: Input, args: ['igxResizeHandle',] }],\n onMouseOver: [{ type: HostListener, args: ['mouseover',] }],\n onDoubleClick: [{ type: HostListener, args: ['dblclick',] }]\n };\n return IgxResizeHandleDirective;\n}());\n/**\n * @hidden\n */\nvar IgxColumnResizerDirective = /** @class */ (function () {\n function IgxColumnResizerDirective(element, document, zone) {\n var _this = this;\n this.element = element;\n this.document = document;\n this.zone = zone;\n this.restrictHResizeMin = Number.MIN_SAFE_INTEGER;\n this.restrictHResizeMax = Number.MAX_SAFE_INTEGER;\n this.resizeEnd = new Subject();\n this.resizeStart = new Subject();\n this.resize = new Subject();\n this._destroy = new Subject();\n this.resizeStart.pipe(map(function (event) { return event.clientX; }), takeUntil(this._destroy), switchMap(function (offset) { return _this.resize.pipe(map(function (event) { return event.clientX - offset; }), takeUntil(_this.resizeEnd), takeUntil(_this._destroy)); })).subscribe(function (pos) {\n /** @type {?} */\n var left = _this._left + pos;\n /** @type {?} */\n var min = _this._left - _this.restrictHResizeMin;\n /** @type {?} */\n var max = _this._left + _this.restrictHResizeMax;\n _this.left = left < min ? min : left;\n if (left > max) {\n _this.left = max;\n }\n });\n }\n /**\n * @return {?}\n */\n IgxColumnResizerDirective.prototype.ngOnInit = /**\n * @return {?}\n */\n function () {\n var _this = this;\n this.zone.runOutsideAngular(function () {\n fromEvent(_this.document.defaultView, 'mousemove').pipe(throttle(function () { return interval(0, animationFrameScheduler); }), takeUntil(_this._destroy)).subscribe(function (res) { return _this.onMousemove(res); });\n fromEvent(_this.document.defaultView, 'mouseup').pipe(takeUntil(_this._destroy))\n .subscribe(function (res) { return _this.onMouseup(res); });\n });\n };\n /**\n * @return {?}\n */\n IgxColumnResizerDirective.prototype.ngOnDestroy = /**\n * @return {?}\n */\n function () {\n this._destroy.next(true);\n this._destroy.complete();\n };\n Object.defineProperty(IgxColumnResizerDirective.prototype, \"left\", {\n set: /**\n * @param {?} val\n * @return {?}\n */\n function (val) {\n var _this = this;\n requestAnimationFrame(function () { return _this.element.nativeElement.style.left = val + 'px'; });\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxColumnResizerDirective.prototype, \"top\", {\n set: /**\n * @param {?} val\n * @return {?}\n */\n function (val) {\n var _this = this;\n requestAnimationFrame(function () { return _this.element.nativeElement.style.top = val + 'px'; });\n },\n enumerable: true,\n configurable: true\n });\n /**\n * @param {?} event\n * @return {?}\n */\n IgxColumnResizerDirective.prototype.onMouseup = /**\n * @param {?} event\n * @return {?}\n */\n function (event) {\n this.resizeEnd.next(event);\n this.resizeEnd.complete();\n };\n /**\n * @param {?} event\n * @return {?}\n */\n IgxColumnResizerDirective.prototype.onMousedown = /**\n * @param {?} event\n * @return {?}\n */\n function (event) {\n event.preventDefault();\n /** @type {?} */\n var parent = this.element.nativeElement.parentElement.parentElement;\n this.left = this._left = event.clientX - parent.getBoundingClientRect().left;\n this.top = event.target.getBoundingClientRect().top - parent.getBoundingClientRect().top;\n this.resizeStart.next(event);\n };\n /**\n * @param {?} event\n * @return {?}\n */\n IgxColumnResizerDirective.prototype.onMousemove = /**\n * @param {?} event\n * @return {?}\n */\n function (event) {\n event.preventDefault();\n this.resize.next(event);\n };\n IgxColumnResizerDirective.decorators = [\n { type: Directive, args: [{\n selector: '[igxResizer]'\n },] }\n ];\n /** @nocollapse */\n IgxColumnResizerDirective.ctorParameters = function () { return [\n { type: ElementRef },\n { type: undefined, decorators: [{ type: Inject, args: [DOCUMENT,] }] },\n { type: NgZone }\n ]; };\n IgxColumnResizerDirective.propDecorators = {\n restrictHResizeMin: [{ type: Input }],\n restrictHResizeMax: [{ type: Input }],\n resizeEnd: [{ type: Output }],\n resizeStart: [{ type: Output }],\n resize: [{ type: Output }]\n };\n return IgxColumnResizerDirective;\n}());\n/**\n * @hidden\n */\nvar IgxColumnMovingService = /** @class */ (function () {\n function IgxColumnMovingService() {\n }\n Object.defineProperty(IgxColumnMovingService.prototype, \"column\", {\n get: /**\n * @return {?}\n */\n function () {\n return this._column;\n },\n set: /**\n * @param {?} val\n * @return {?}\n */\n function (val) {\n if (val) {\n this._column = val;\n }\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxColumnMovingService.prototype, \"icon\", {\n get: /**\n * @return {?}\n */\n function () {\n return this._icon;\n },\n set: /**\n * @param {?} val\n * @return {?}\n */\n function (val) {\n if (val) {\n this._icon = val;\n }\n },\n enumerable: true,\n configurable: true\n });\n IgxColumnMovingService.decorators = [\n { type: Injectable, args: [{\n providedIn: 'root',\n },] }\n ];\n /** @nocollapse */ IgxColumnMovingService.ngInjectableDef = ɵɵdefineInjectable({ factory: function IgxColumnMovingService_Factory() { return new IgxColumnMovingService(); }, token: IgxColumnMovingService, providedIn: \"root\" });\n return IgxColumnMovingService;\n}());\n/** @enum {number} */\nvar DropPosition = {\n BeforeDropTarget: 0,\n AfterDropTarget: 1,\n None: 2,\n};\nDropPosition[DropPosition.BeforeDropTarget] = 'BeforeDropTarget';\nDropPosition[DropPosition.AfterDropTarget] = 'AfterDropTarget';\nDropPosition[DropPosition.None] = 'None';\n/**\n * @hidden\n */\nvar IgxColumnMovingDragDirective = /** @class */ (function (_super) {\n __extends(IgxColumnMovingDragDirective, _super);\n function IgxColumnMovingDragDirective(_element, _viewContainer, _zone, _renderer, _cdr, cms) {\n var _this = _super.call(this, _cdr, _element, _viewContainer, _zone, _renderer) || this;\n _this.cms = cms;\n _this._ghostClass = 'igx-grid__drag-ghost-image';\n _this.ghostImgIconClass = 'igx-grid__drag-ghost-image-icon';\n _this.ghostImgIconGroupClass = 'igx-grid__drag-ghost-image-icon-group';\n return _this;\n }\n Object.defineProperty(IgxColumnMovingDragDirective.prototype, \"data\", {\n set: /**\n * @param {?} val\n * @return {?}\n */\n function (val) {\n this._column = val;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxColumnMovingDragDirective.prototype, \"column\", {\n get: /**\n * @return {?}\n */\n function () {\n return this._column;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxColumnMovingDragDirective.prototype, \"draggable\", {\n get: /**\n * @return {?}\n */\n function () {\n return this.column && (this.column.movable || (this.column.groupable && !this.column.columnGroup));\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxColumnMovingDragDirective.prototype, \"icon\", {\n get: /**\n * @return {?}\n */\n function () {\n return this.cms.icon;\n },\n enumerable: true,\n configurable: true\n });\n /**\n * @return {?}\n */\n IgxColumnMovingDragDirective.prototype.ngOnDestroy = /**\n * @return {?}\n */\n function () {\n this._unsubscribe();\n };\n /**\n * @param {?} event\n * @return {?}\n */\n IgxColumnMovingDragDirective.prototype.onEscape = /**\n * @param {?} event\n * @return {?}\n */\n function (event) {\n this.cms.cancelDrop = true;\n this.onPointerUp(event);\n };\n /**\n * @param {?} event\n * @return {?}\n */\n IgxColumnMovingDragDirective.prototype.onPointerDown = /**\n * @param {?} event\n * @return {?}\n */\n function (event) {\n var _this = this;\n if (!this.draggable || event.target.getAttribute('draggable') === 'false') {\n return;\n }\n event.preventDefault();\n event.stopPropagation();\n this._removeOnDestroy = false;\n this.cms.column = this.column;\n this.ghostClass = this._ghostClass;\n _super.prototype.onPointerDown.call(this, event);\n this.cms.isColumnMoving = true;\n this.column.grid.cdr.detectChanges();\n /** @type {?} */\n var args = {\n source: this.column\n };\n this.column.grid.onColumnMovingStart.emit(args);\n this.subscription$ = fromEvent(this.column.grid.document.defaultView, 'keydown').subscribe(function (ev) {\n if (ev.key === \"Escape\" /* ESCAPE */ || ev.key === \"Esc\" /* ESCAPE_IE */) {\n _this.onEscape(ev);\n }\n });\n };\n /**\n * @param {?} event\n * @return {?}\n */\n IgxColumnMovingDragDirective.prototype.onPointerMove = /**\n * @param {?} event\n * @return {?}\n */\n function (event) {\n event.preventDefault();\n _super.prototype.onPointerMove.call(this, event);\n if (this._dragStarted && this.ghostElement && !this.column.grid.draggedColumn) {\n this.column.grid.draggedColumn = this.column;\n this.column.grid.cdr.detectChanges();\n }\n if (this.cms.isColumnMoving) {\n /** @type {?} */\n var args = {\n source: this.column,\n cancel: false\n };\n this.column.grid.onColumnMoving.emit(args);\n if (args.cancel) {\n this.onEscape(event);\n }\n }\n };\n /**\n * @param {?} event\n * @return {?}\n */\n IgxColumnMovingDragDirective.prototype.onPointerUp = /**\n * @param {?} event\n * @return {?}\n */\n function (event) {\n var _this = this;\n // Run it explicitly inside the zone because sometimes onPointerUp executes after the code below.\n this.zone.run(function () {\n _super.prototype.onPointerUp.call(_this, event);\n _this.cms.isColumnMoving = false;\n _this.column.grid.draggedColumn = null;\n _this.column.grid.cdr.detectChanges();\n });\n this._unsubscribe();\n };\n /**\n * @protected\n * @param {?} pageX\n * @param {?} pageY\n * @return {?}\n */\n IgxColumnMovingDragDirective.prototype.createGhost = /**\n * @protected\n * @param {?} pageX\n * @param {?} pageY\n * @return {?}\n */\n function (pageX, pageY) {\n _super.prototype.createGhost.call(this, pageX, pageY);\n this.ghostElement.style.height = null;\n this.ghostElement.style.minWidth = null;\n this.ghostElement.style.flexBasis = null;\n this.ghostElement.style.position = null;\n /** @type {?} */\n var icon = document.createElement('i');\n /** @type {?} */\n var text = document.createTextNode('block');\n icon.appendChild(text);\n icon.classList.add('material-icons');\n this.cms.icon = icon;\n if (!this.column.columnGroup) {\n this.renderer.addClass(icon, this.ghostImgIconClass);\n this.ghostElement.insertBefore(icon, this.ghostElement.firstElementChild);\n this.ghostLeft = this._ghostStartX = pageX - ((this.ghostElement.getBoundingClientRect().width / 3) * 2);\n this.ghostTop = this._ghostStartY = pageY - ((this.ghostElement.getBoundingClientRect().height / 3) * 2);\n }\n else {\n this.ghostElement.insertBefore(icon, this.ghostElement.childNodes[0]);\n this.renderer.addClass(icon, this.ghostImgIconGroupClass);\n this.ghostElement.children[0].style.paddingLeft = '0px';\n this.ghostLeft = this._ghostStartX = pageX - ((this.ghostElement.getBoundingClientRect().width / 3) * 2);\n this.ghostTop = this._ghostStartY = pageY - ((this.ghostElement.getBoundingClientRect().height / 3) * 2);\n }\n };\n /**\n * @private\n * @return {?}\n */\n IgxColumnMovingDragDirective.prototype._unsubscribe = /**\n * @private\n * @return {?}\n */\n function () {\n if (this.subscription$) {\n this.subscription$.unsubscribe();\n this.subscription$ = null;\n }\n };\n IgxColumnMovingDragDirective.decorators = [\n { type: Directive, args: [{\n selector: '[igxColumnMovingDrag]'\n },] }\n ];\n /** @nocollapse */\n IgxColumnMovingDragDirective.ctorParameters = function () { return [\n { type: ElementRef },\n { type: ViewContainerRef },\n { type: NgZone },\n { type: Renderer2 },\n { type: ChangeDetectorRef },\n { type: IgxColumnMovingService }\n ]; };\n IgxColumnMovingDragDirective.propDecorators = {\n data: [{ type: Input, args: ['igxColumnMovingDrag',] }]\n };\n return IgxColumnMovingDragDirective;\n}(IgxDragDirective));\n/**\n * @hidden\n */\nvar IgxColumnMovingDropDirective = /** @class */ (function (_super) {\n __extends(IgxColumnMovingDropDirective, _super);\n function IgxColumnMovingDropDirective(elementRef, renderer, zone, cms) {\n var _this = _super.call(this, elementRef, renderer, zone) || this;\n _this.elementRef = elementRef;\n _this.renderer = renderer;\n _this.zone = zone;\n _this.cms = cms;\n _this._dropIndicator = null;\n _this._lastDropIndicator = null;\n _this._dragLeave = new Subject();\n _this._dropIndicatorClass = 'igx-grid__th-drop-indicator--active';\n return _this;\n }\n Object.defineProperty(IgxColumnMovingDropDirective.prototype, \"data\", {\n set: /**\n * @param {?} val\n * @return {?}\n */\n function (val) {\n if (val instanceof IgxColumnComponent) {\n this._column = val;\n }\n if (val instanceof IgxGridForOfDirective) {\n this._hVirtDir = val;\n }\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxColumnMovingDropDirective.prototype, \"column\", {\n get: /**\n * @return {?}\n */\n function () {\n return this._column;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxColumnMovingDropDirective.prototype, \"isDropTarget\", {\n get: /**\n * @return {?}\n */\n function () {\n return this._column && this._column.grid.hasMovableColumns && this.cms.column.movable &&\n ((!this._column.pinned && this.cms.column.disablePinning) || !this.cms.column.disablePinning);\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxColumnMovingDropDirective.prototype, \"horizontalScroll\", {\n get: /**\n * @return {?}\n */\n function () {\n if (this._hVirtDir) {\n return this._hVirtDir;\n }\n },\n enumerable: true,\n configurable: true\n });\n /**\n * @return {?}\n */\n IgxColumnMovingDropDirective.prototype.ngOnDestroy = /**\n * @return {?}\n */\n function () {\n this._dragLeave.next(true);\n this._dragLeave.complete();\n };\n /**\n * @param {?} event\n * @return {?}\n */\n IgxColumnMovingDropDirective.prototype.onDragOver = /**\n * @param {?} event\n * @return {?}\n */\n function (event) {\n /** @type {?} */\n var drag = event.detail.owner;\n if (!(drag instanceof IgxColumnMovingDragDirective)) {\n return;\n }\n if (this.isDropTarget &&\n this.cms.column !== this.column &&\n this.cms.column.level === this.column.level &&\n this.cms.column.parent === this.column.parent) {\n if (this._lastDropIndicator) {\n this.renderer.removeClass(this._dropIndicator, this._dropIndicatorClass);\n }\n /** @type {?} */\n var clientRect = this.elementRef.nativeElement.getBoundingClientRect();\n /** @type {?} */\n var pos = clientRect.left + clientRect.width / 2;\n /** @type {?} */\n var parent_1 = this.elementRef.nativeElement.parentElement;\n if (event.detail.pageX < pos) {\n this._dropPos = DropPosition.BeforeDropTarget;\n this._lastDropIndicator = this._dropIndicator = parent_1.firstElementChild;\n }\n else {\n this._dropPos = DropPosition.AfterDropTarget;\n this._lastDropIndicator = this._dropIndicator = parent_1.lastElementChild;\n }\n if (this.cms.icon.innerText !== 'block') {\n this.renderer.addClass(this._dropIndicator, this._dropIndicatorClass);\n }\n }\n };\n /**\n * @param {?} event\n * @return {?}\n */\n IgxColumnMovingDropDirective.prototype.onDragEnter = /**\n * @param {?} event\n * @return {?}\n */\n function (event) {\n var _this = this;\n /** @type {?} */\n var drag = event.detail.owner;\n if (!(drag instanceof IgxColumnMovingDragDirective)) {\n return;\n }\n if (this.column && this.cms.column.grid.id !== this.column.grid.id) {\n this.cms.icon.innerText = 'block';\n return;\n }\n if (this.isDropTarget &&\n this.cms.column !== this.column &&\n this.cms.column.level === this.column.level &&\n this.cms.column.parent === this.column.parent) {\n if (!this.column.pinned || (this.column.pinned && this.cms.column.pinned)) {\n this.cms.icon.innerText = 'swap_horiz';\n }\n if (!this.cms.column.pinned && this.column.pinned) {\n /** @type {?} */\n var nextPinnedWidth = this.column.grid.getPinnedWidth(true) + parseFloat(this.cms.column.width);\n if (nextPinnedWidth <= this.column.grid.calcPinnedContainerMaxWidth) {\n this.cms.icon.innerText = 'lock';\n }\n else {\n this.cms.icon.innerText = 'block';\n }\n }\n }\n else {\n this.cms.icon.innerText = 'block';\n }\n if (this.horizontalScroll) {\n this.cms.icon.innerText = event.target.id === 'right' ? 'arrow_forward' : 'arrow_back';\n interval(100).pipe(takeUntil(this._dragLeave)).subscribe(function () {\n _this.cms.column.grid.wheelHandler();\n event.target.id === 'right' ? _this.horizontalScroll.scrollPosition += 15 :\n _this.horizontalScroll.scrollPosition -= 15;\n });\n }\n };\n /**\n * @param {?} event\n * @return {?}\n */\n IgxColumnMovingDropDirective.prototype.onDragLeave = /**\n * @param {?} event\n * @return {?}\n */\n function (event) {\n /** @type {?} */\n var drag = event.detail.owner;\n if (!(drag instanceof IgxColumnMovingDragDirective)) {\n return;\n }\n this.cms.icon.innerText = 'block';\n if (this._dropIndicator) {\n this.renderer.removeClass(this._dropIndicator, this._dropIndicatorClass);\n }\n if (this.horizontalScroll) {\n this._dragLeave.next(true);\n }\n };\n /**\n * @param {?} event\n * @return {?}\n */\n IgxColumnMovingDropDirective.prototype.onDragDrop = /**\n * @param {?} event\n * @return {?}\n */\n function (event) {\n event.preventDefault();\n /** @type {?} */\n var drag = event.detail.owner;\n if (!(drag instanceof IgxColumnMovingDragDirective)) {\n return;\n }\n if (this.column && (this.cms.column.grid.id !== this.column.grid.id)) {\n return;\n }\n if (this.horizontalScroll) {\n this._dragLeave.next(true);\n }\n if (this.isDropTarget) {\n /** @type {?} */\n var args = {\n source: this.cms.column,\n target: this.column\n };\n /** @type {?} */\n var nextPinnedWidth = void 0;\n if (this.column.pinned && !this.cms.column.pinned) {\n nextPinnedWidth = this.column.grid.getPinnedWidth(true) + parseFloat(this.cms.column.width);\n }\n if ((nextPinnedWidth && nextPinnedWidth > this.column.grid.calcPinnedContainerMaxWidth) ||\n this.column.level !== this.cms.column.level ||\n this.column.parent !== this.cms.column.parent ||\n this.cms.cancelDrop) {\n this.cms.cancelDrop = false;\n this.column.grid.onColumnMovingEnd.emit(args);\n return;\n }\n this.column.grid.moveColumn(this.cms.column, this.column, this._dropPos);\n this.column.grid.draggedColumn = null;\n this.column.grid.cdr.detectChanges();\n }\n };\n IgxColumnMovingDropDirective.decorators = [\n { type: Directive, args: [{\n selector: '[igxColumnMovingDrop]'\n },] }\n ];\n /** @nocollapse */\n IgxColumnMovingDropDirective.ctorParameters = function () { return [\n { type: ElementRef },\n { type: Renderer2 },\n { type: NgZone },\n { type: IgxColumnMovingService }\n ]; };\n IgxColumnMovingDropDirective.propDecorators = {\n data: [{ type: Input, args: ['igxColumnMovingDrop',] }]\n };\n return IgxColumnMovingDropDirective;\n}(IgxDropDirective));\nvar IgxGridBodyDirective = /** @class */ (function () {\n function IgxGridBodyDirective() {\n }\n IgxGridBodyDirective.decorators = [\n { type: Directive, args: [{\n selector: '[igxGridBody]',\n providers: [IgxForOfSyncService]\n },] }\n ];\n return IgxGridBodyDirective;\n}());\n/**\n * @hidden\n */\nvar IgxDatePipeComponent = /** @class */ (function (_super) {\n __extends(IgxDatePipeComponent, _super);\n function IgxDatePipeComponent(locale) {\n // D.P. constructor duplication due to es6 compilation, might be obsolete in the future\n return _super.call(this, locale) || this;\n }\n /**\n * @param {?} value\n * @param {?} locale\n * @return {?}\n */\n IgxDatePipeComponent.prototype.transform = /**\n * @param {?} value\n * @param {?} locale\n * @return {?}\n */\n function (value, locale) {\n if (value && value instanceof Date) {\n if (locale) {\n return _super.prototype.transform.call(this, value, DEFAULT_DATE_FORMAT, undefined, locale);\n }\n else {\n return _super.prototype.transform.call(this, value);\n }\n }\n else {\n return value;\n }\n };\n IgxDatePipeComponent.decorators = [\n { type: Pipe, args: [{\n name: 'igxdate'\n },] }\n ];\n /** @nocollapse */\n IgxDatePipeComponent.ctorParameters = function () { return [\n { type: String, decorators: [{ type: Inject, args: [LOCALE_ID,] }] }\n ]; };\n return IgxDatePipeComponent;\n}(DatePipe));\n/**\n * @hidden\n */\nvar IgxDecimalPipeComponent = /** @class */ (function (_super) {\n __extends(IgxDecimalPipeComponent, _super);\n function IgxDecimalPipeComponent(locale) {\n // D.P. constructor duplication due to es6 compilation, might be obsolete in the future\n return _super.call(this, locale) || this;\n }\n /**\n * @param {?} value\n * @param {?} locale\n * @return {?}\n */\n IgxDecimalPipeComponent.prototype.transform = /**\n * @param {?} value\n * @param {?} locale\n * @return {?}\n */\n function (value, locale) {\n if (value && typeof value === 'number') {\n if (locale) {\n return _super.prototype.transform.call(this, value, undefined, locale);\n }\n else {\n return _super.prototype.transform.call(this, value);\n }\n }\n else {\n return value;\n }\n };\n IgxDecimalPipeComponent.decorators = [\n { type: Pipe, args: [{\n name: 'igxdecimal'\n },] }\n ];\n /** @nocollapse */\n IgxDecimalPipeComponent.ctorParameters = function () { return [\n { type: String, decorators: [{ type: Inject, args: [LOCALE_ID,] }] }\n ]; };\n return IgxDecimalPipeComponent;\n}(DecimalPipe));\n/**\n * @hidden\n */\nvar /**\n * @hidden\n */\nRowEditPositionStrategy = /** @class */ (function (_super) {\n __extends(RowEditPositionStrategy, _super);\n function RowEditPositionStrategy() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.isTop = false;\n _this.isTopInitialPosition = null;\n return _this;\n }\n /**\n * @param {?} contentElement\n * @param {?} size\n * @param {?=} document\n * @param {?=} initialCall\n * @return {?}\n */\n RowEditPositionStrategy.prototype.position = /**\n * @param {?} contentElement\n * @param {?} size\n * @param {?=} document\n * @param {?=} initialCall\n * @return {?}\n */\n function (contentElement, size, document, initialCall) {\n /** @type {?} */\n var container = this.settings.container;\n // grid.tbody\n /** @type {?} */\n var target = (/** @type {?} */ (this.settings.target));\n // Position of the overlay depends on the available space in the grid.\n // If the bottom space is not enough then the the row overlay will show at the top of the row.\n // Once shown, either top or bottom, then this position stays until the overlay is closed (isTopInitialPosition property),\n // which means that when scrolling then overlay may hide, while the row is still visible (UX requirement).\n this.isTop = this.isTopInitialPosition !== null ?\n this.isTopInitialPosition :\n container.getBoundingClientRect().bottom <\n target.getBoundingClientRect().bottom + contentElement.getBoundingClientRect().height;\n // Set width of the row editing overlay to equal row width, otherwise it fits 100% of the grid.\n contentElement.style.width = target.clientWidth + 'px';\n this.settings.verticalStartPoint = this.settings.verticalDirection = this.isTop ? VerticalAlignment.Top : VerticalAlignment.Bottom;\n this.settings.openAnimation = this.isTop ? scaleInVerBottom : scaleInVerTop;\n _super.prototype.position.call(this, contentElement, { width: target.clientWidth, height: target.clientHeight }, document, initialCall);\n };\n return RowEditPositionStrategy;\n}(ConnectedPositioningStrategy));\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n/**\n * @hidden\n * @abstract\n */\nvar ItemPropertyValueChanged = /** @class */ (function () {\n function ItemPropertyValueChanged(propName) {\n this.valueChanged = new EventEmitter();\n this._propName = propName;\n }\n Object.defineProperty(ItemPropertyValueChanged.prototype, \"object\", {\n get: /**\n * @return {?}\n */\n function () {\n return this._object;\n },\n set: /**\n * @param {?} value\n * @return {?}\n */\n function (value) {\n if (value) {\n this._object = value;\n }\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(ItemPropertyValueChanged.prototype, \"value\", {\n get: /**\n * @return {?}\n */\n function () {\n return (this.object) ? this.object[this._propName] : null;\n },\n set: /**\n * @param {?} value\n * @return {?}\n */\n function (value) {\n this.onValueChanged(value);\n },\n enumerable: true,\n configurable: true\n });\n /**\n * @protected\n * @param {?} value\n * @return {?}\n */\n ItemPropertyValueChanged.prototype.onValueChanged = /**\n * @protected\n * @param {?} value\n * @return {?}\n */\n function (value) {\n /** @type {?} */\n var currentValue = this.value;\n if (value !== currentValue) {\n this.object[this._propName] = value;\n this.valueChanged.emit({ oldValue: currentValue, newValue: value });\n }\n };\n ItemPropertyValueChanged.propDecorators = {\n value: [{ type: Input }],\n valueChanged: [{ type: Output }]\n };\n return ItemPropertyValueChanged;\n}());\n/**\n * @hidden\n */\nvar ColumnChooserItemBase = /** @class */ (function (_super) {\n __extends(ColumnChooserItemBase, _super);\n function ColumnChooserItemBase(prop) {\n var _this = _super.call(this, prop) || this;\n _this.prop = prop;\n _this.indentation = 30;\n return _this;\n }\n Object.defineProperty(ColumnChooserItemBase.prototype, \"column\", {\n get: /**\n * @return {?}\n */\n function () {\n return this.object;\n },\n set: /**\n * @param {?} value\n * @return {?}\n */\n function (value) {\n if (value) {\n this.object = value;\n }\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(ColumnChooserItemBase.prototype, \"name\", {\n get: /**\n * @return {?}\n */\n function () {\n return (this.column) ? ((this.column.header) ? this.column.header : this.column.field) : '';\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(ColumnChooserItemBase.prototype, \"level\", {\n get: /**\n * @return {?}\n */\n function () {\n return this.column.level;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(ColumnChooserItemBase.prototype, \"calcIndent\", {\n get: /**\n * @return {?}\n */\n function () {\n return this.indentation * this.level;\n },\n enumerable: true,\n configurable: true\n });\n ColumnChooserItemBase.propDecorators = {\n column: [{ type: Input }],\n indentation: [{ type: Input }],\n container: [{ type: Input }]\n };\n return ColumnChooserItemBase;\n}(ItemPropertyValueChanged));\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n/**\n * @hidden\n */\nvar IgxColumnHidingItemDirective = /** @class */ (function (_super) {\n __extends(IgxColumnHidingItemDirective, _super);\n function IgxColumnHidingItemDirective() {\n return _super.call(this, 'hidden') || this;\n }\n Object.defineProperty(IgxColumnHidingItemDirective.prototype, \"disabled\", {\n get: /**\n * @return {?}\n */\n function () {\n return this.column.disableHiding;\n },\n enumerable: true,\n configurable: true\n });\n IgxColumnHidingItemDirective.decorators = [\n { type: Directive, args: [{\n selector: '[igxColumnHidingItem]'\n },] }\n ];\n /** @nocollapse */\n IgxColumnHidingItemDirective.ctorParameters = function () { return []; };\n return IgxColumnHidingItemDirective;\n}(ColumnChooserItemBase));\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n/** @enum {string} */\nvar ColumnDisplayOrder = {\n Alphabetical: 'Alphabetical',\n DisplayOrder: 'DisplayOrder',\n};\nvar CustomFilteringStrategy = /** @class */ (function (_super) {\n __extends(CustomFilteringStrategy, _super);\n function CustomFilteringStrategy() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n /**\n * @param {?} data\n * @param {?} expressionsTree\n * @return {?}\n */\n CustomFilteringStrategy.prototype.filter = /**\n * @param {?} data\n * @param {?} expressionsTree\n * @return {?}\n */\n function (data, expressionsTree) {\n var _this = this;\n /** @type {?} */\n var res = [];\n data.forEach(function (item) {\n if (_this.matchRecord(item, (/** @type {?} */ (expressionsTree.filteringOperands[0])))) {\n res.push(item);\n }\n else if (item.column.columnGroup) {\n if (item.column.allChildren.findIndex(function (child) {\n return _this.matchRecord(child, (/** @type {?} */ (expressionsTree.filteringOperands[1]))) ||\n _this.matchRecord(child, (/** @type {?} */ (expressionsTree.filteringOperands[2])));\n }) > -1) {\n res.push(item);\n }\n }\n });\n return res;\n };\n return CustomFilteringStrategy;\n}(FilteringStrategy));\n/**\n * @hidden\n * @abstract\n */\nvar ColumnChooserBase = /** @class */ (function () {\n function ColumnChooserBase(cdr) {\n this.cdr = cdr;\n /**\n * Hides/ shows the filtering columns input from the UI.\n */\n this.disableFilter = false;\n /**\n * Access to the columnHidingUI:\n * ```typescript\n * \\@ViewChild('column-hiding-component')\n * public columnHidingUI: IgxColumnHidingComponent;\n * ```\n * Sets/gets the max height of the column area.\n * ```typescript\n * let columnsAreaMaxHeight = this.columnHidingUI.columnsAreaMaxHeight;\n * ```\n *\n * ```html\n * \n * ```\n * \\@memberof ColumnChooserBase\n */\n this.columnsAreaMaxHeight = '100%';\n /**\n * Sets/Gets the css class selector.\n * By default the value of the `class` attribute is `\"igx-column-hiding\"`.\n * ```typescript\n * let cssCLass = this.columnHidingUI.cssClass;\n * ```\n * ```typescript\n * this.columnHidingUI.cssClass = 'column-chooser';\n * ```\n * \\@memberof ColumnChooserBase\n */\n this.cssClass = 'igx-column-hiding';\n /**\n * @hidden\n */\n this._currentColumns = [];\n /**\n * @hidden\n */\n this._gridColumns = [];\n /**\n * @hidden\n */\n this._rawColumns = [];\n /**\n * @hidden\n */\n this._columnDisplayOrder = ColumnDisplayOrder.DisplayOrder;\n /**\n * @hidden\n */\n this._filterCriteria = '';\n /**\n * @hidden\n */\n this._filterColumnsPrompt = '';\n /**\n * @hidden\n */\n this._title = '';\n }\n Object.defineProperty(ColumnChooserBase.prototype, \"columns\", {\n /**\n * Gets the grid columns that are going to be manipulated.\n * ```typescript\n * let gridColumns = this.columnHidingUI.columns;\n * ```\n * @memberof ColumnChooserBase\n */\n get: /**\n * Gets the grid columns that are going to be manipulated.\n * ```typescript\n * let gridColumns = this.columnHidingUI.columns;\n * ```\n * \\@memberof ColumnChooserBase\n * @return {?}\n */\n function () {\n return this._gridColumns;\n },\n /**\n * Sets the the grid columns that are going to be manipulated.\n * ```html\n * \n * ```\n * @memberof ColumnChooserBase\n */\n set: /**\n * Sets the the grid columns that are going to be manipulated.\n * ```html\n * \n * ```\n * \\@memberof ColumnChooserBase\n * @param {?} value\n * @return {?}\n */\n function (value) {\n if (value) {\n this._gridColumns = value;\n this.createColumnItems();\n if (this.filterCriteria) {\n this.filter();\n }\n }\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(ColumnChooserBase.prototype, \"title\", {\n /**\n * Sets/gets the title of the column chooser.\n * ```typescript\n * let title = this.columnHidingUI.title;\n * ```\n * @memberof ColumnChooserBase\n */\n get: /**\n * Sets/gets the title of the column chooser.\n * ```typescript\n * let title = this.columnHidingUI.title;\n * ```\n * \\@memberof ColumnChooserBase\n * @return {?}\n */\n function () {\n return this._title;\n },\n /**\n * ```html\n * \n * ```\n * @memberof ColumnChooserBase\n */\n set: /**\n * ```html\n * \n * ```\n * \\@memberof ColumnChooserBase\n * @param {?} value\n * @return {?}\n */\n function (value) {\n this._title = (value) ? value : '';\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(ColumnChooserBase.prototype, \"filterColumnsPrompt\", {\n /**\n * Gets the prompt that is displayed in the filter input.\n * ```typescript\n * let filterColumnsPrompt = this.columnHidingUI.filterColumnsPrompt;\n * ```\n * @memberof ColumnChooserBase\n */\n get: /**\n * Gets the prompt that is displayed in the filter input.\n * ```typescript\n * let filterColumnsPrompt = this.columnHidingUI.filterColumnsPrompt;\n * ```\n * \\@memberof ColumnChooserBase\n * @return {?}\n */\n function () {\n return this._filterColumnsPrompt;\n },\n /**\n * Sets the prompt that is going to be displayed in the filter input.\n * ```html\n * \n * ```\n * @memberof ColumnChooserBase\n */\n set: /**\n * Sets the prompt that is going to be displayed in the filter input.\n * ```html\n * \n * ```\n * \\@memberof ColumnChooserBase\n * @param {?} value\n * @return {?}\n */\n function (value) {\n this._filterColumnsPrompt = (value) ? value : '';\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(ColumnChooserBase.prototype, \"columnItems\", {\n /**\n * Gets the items of the selected columns.\n * ```typescript\n * let columnItems = this.columnHidingUI.columnItems;\n * ```\n * @memberof ColumnChooserBase\n */\n get: /**\n * Gets the items of the selected columns.\n * ```typescript\n * let columnItems = this.columnHidingUI.columnItems;\n * ```\n * \\@memberof ColumnChooserBase\n * @return {?}\n */\n function () {\n return this._currentColumns;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(ColumnChooserBase.prototype, \"filterCriteria\", {\n /**\n * Gets the value which filters the columns list.\n * ```typescript\n * let filterCriteria = this.columnHidingUI.filterCriteria;\n * ```\n * @memberof ColumnChooserBase\n */\n get: /**\n * Gets the value which filters the columns list.\n * ```typescript\n * let filterCriteria = this.columnHidingUI.filterCriteria;\n * ```\n * \\@memberof ColumnChooserBase\n * @return {?}\n */\n function () {\n return this._filterCriteria;\n },\n /**\n * Sets the value which filters the columns list.\n * ```html\n * \n * ```\n * @memberof ColumnChooserBase\n */\n set: /**\n * Sets the value which filters the columns list.\n * ```html\n * \n * ```\n * \\@memberof ColumnChooserBase\n * @param {?} value\n * @return {?}\n */\n function (value) {\n if (!value || value.length === 0) {\n this.clearFiltering();\n this._filterCriteria = '';\n this.cdr.detectChanges();\n return;\n }\n else if (this._filterCriteria && this._filterCriteria.length > value.length) {\n this.clearFiltering();\n }\n this._filterCriteria = value;\n this.filter();\n this.cdr.detectChanges();\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(ColumnChooserBase.prototype, \"columnDisplayOrder\", {\n /**\n * Gets the display order of the columns.\n * ```typescript\n * let columnDisplayOrder = this.columnHidingUI.columnDisplayOrder;\n * ```\n * @memberof ColumnChooserBase\n */\n get: /**\n * Gets the display order of the columns.\n * ```typescript\n * let columnDisplayOrder = this.columnHidingUI.columnDisplayOrder;\n * ```\n * \\@memberof ColumnChooserBase\n * @return {?}\n */\n function () {\n return this._columnDisplayOrder;\n },\n /**\n * Sets the display order of the columns.\n * ```typescript\n * this.columnHidingUI.columnDisplayOrder = ColumnDisplayOrder.Alphabetical;\n * ```\n * @memberof ColumnChooserBase\n */\n set: /**\n * Sets the display order of the columns.\n * ```typescript\n * this.columnHidingUI.columnDisplayOrder = ColumnDisplayOrder.Alphabetical;\n * ```\n * \\@memberof ColumnChooserBase\n * @param {?} value\n * @return {?}\n */\n function (value) {\n if (value !== undefined) {\n this.orderColumns(value);\n if (this._filterCriteria.length > 0) {\n this.filter();\n }\n }\n },\n enumerable: true,\n configurable: true\n });\n /**\n *@hidden\n */\n /**\n * @hidden\n * @return {?}\n */\n ColumnChooserBase.prototype.ngOnDestroy = /**\n * @hidden\n * @return {?}\n */\n function () {\n var e_1, _a;\n try {\n for (var _b = __values(this._currentColumns), _c = _b.next(); !_c.done; _c = _b.next()) {\n var item = _c.value;\n item.valueChanged.unsubscribe();\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n }\n finally { if (e_1) throw e_1.error; }\n }\n };\n /**\n *@hidden\n */\n /**\n * @hidden\n * @private\n * @return {?}\n */\n ColumnChooserBase.prototype.createColumnItems = /**\n * @hidden\n * @private\n * @return {?}\n */\n function () {\n var _this = this;\n if (this._gridColumns.length > 0) {\n this._rawColumns = [];\n this._gridColumns.forEach(function (column) {\n /** @type {?} */\n var item = _this.createColumnItem(_this, column);\n if (item) {\n _this._rawColumns.push(item);\n }\n });\n this._currentColumns = this._rawColumns.slice(0);\n this.orderColumns(this._columnDisplayOrder);\n }\n };\n /**\n *@hidden\n */\n /**\n * @hidden\n * @private\n * @param {?} value\n * @return {?}\n */\n ColumnChooserBase.prototype.orderColumns = /**\n * @hidden\n * @private\n * @param {?} value\n * @return {?}\n */\n function (value) {\n this._columnDisplayOrder = value;\n if (value === ColumnDisplayOrder[ColumnDisplayOrder.Alphabetical] ||\n value === ColumnDisplayOrder.Alphabetical) {\n this._currentColumns = this._rawColumns.slice(0).sort(function (current, next) {\n return current.name.toLowerCase().localeCompare(next.name.toLowerCase());\n });\n }\n else {\n this._currentColumns = this._rawColumns;\n }\n };\n /**\n *@hidden\n */\n /**\n * @hidden\n * @protected\n * @return {?}\n */\n ColumnChooserBase.prototype.filter = /**\n * @hidden\n * @protected\n * @return {?}\n */\n function () {\n /** @type {?} */\n var filteringExpressionsTree = new FilteringExpressionsTree(FilteringLogic.Or);\n filteringExpressionsTree.filteringOperands.push(this.createFilteringExpression('name'));\n filteringExpressionsTree.filteringOperands.push(this.createFilteringExpression('field'));\n filteringExpressionsTree.filteringOperands.push(this.createFilteringExpression('header'));\n /** @type {?} */\n var strategy = new CustomFilteringStrategy();\n this._currentColumns = strategy.filter(this._currentColumns, filteringExpressionsTree);\n };\n /**\n *@hidden\n */\n /**\n * @hidden\n * @protected\n * @param {?} fieldName\n * @return {?}\n */\n ColumnChooserBase.prototype.createFilteringExpression = /**\n * @hidden\n * @protected\n * @param {?} fieldName\n * @return {?}\n */\n function (fieldName) {\n return {\n condition: IgxStringFilteringOperand.instance().condition('contains'),\n fieldName: fieldName,\n ignoreCase: true,\n searchVal: this._filterCriteria\n };\n };\n /**\n *@hidden\n */\n /**\n * @hidden\n * @protected\n * @return {?}\n */\n ColumnChooserBase.prototype.clearFiltering = /**\n * @hidden\n * @protected\n * @return {?}\n */\n function () {\n this.createColumnItems();\n };\n ColumnChooserBase.propDecorators = {\n columns: [{ type: Input }],\n title: [{ type: Input }],\n filterColumnsPrompt: [{ type: Input }],\n disableFilter: [{ type: Input }],\n columnItems: [{ type: Input }],\n filterCriteria: [{ type: Input }],\n columnDisplayOrder: [{ type: Input }],\n columnsAreaMaxHeight: [{ type: Input }],\n cssClass: [{ type: HostBinding, args: ['attr.class',] }]\n };\n return ColumnChooserBase;\n}());\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\nvar IgxColumnHidingComponent = /** @class */ (function (_super) {\n __extends(IgxColumnHidingComponent, _super);\n function IgxColumnHidingComponent(cdr) {\n var _this = _super.call(this, cdr) || this;\n _this.cdr = cdr;\n /**\n * Sets/gets the text of the button that shows all columns if they are hidden.\n * ```typescript\n * let showAllButtonText = this.columnHiding.showAllText;\n * ```\n *\n * ```html\n * \n * ```\n * \\@memberof IgxColumnHidingComponent\n */\n _this.showAllText = 'Show All';\n /**\n * Sets/gets the text of the button that hides all columns if they are shown.\n * ```typescript\n * let hideAllButtonText = this.columnHiding.hideAllText;\n * ```\n *\n * ```html\n * \n * ```\n * \\@memberof IgxColumnHidingComponent\n */\n _this.hideAllText = 'Hide All';\n /**\n * An event that is emitted after the columns visibility is changed.\n * Provides references to the `column` and the `newValue` properties as event arguments.\n * ```html\n * \n * ```\n * \\@memberof IgxColumnHidingComponent\n */\n _this.onColumnVisibilityChanged = new EventEmitter();\n _this.destroy$ = new Subject();\n return _this;\n }\n Object.defineProperty(IgxColumnHidingComponent.prototype, \"disableHideAll\", {\n /**\n * Returns a boolean indicating whether the `HIDE ALL` button is disabled.\n * ```html\n * \n * \n * ```\n * ```typescript\n * @ViewChild(\"'columnHidingUI'\")\n * public columnHiding: IgxColumnHidingComponent;\n * let isHideAlldisabled = this.columnHiding.disableHideAll;\n * ```\n *@memberof IgxColumnHidingComponent\n */\n get: /**\n * Returns a boolean indicating whether the `HIDE ALL` button is disabled.\n * ```html\n * \n * \n * ```\n * ```typescript\n * \\@ViewChild(\"'columnHidingUI'\")\n * public columnHiding: IgxColumnHidingComponent;\n * let isHideAlldisabled = this.columnHiding.disableHideAll;\n * ```\n * \\@memberof IgxColumnHidingComponent\n * @return {?}\n */\n function () {\n if (!this.columnItems || this.columnItems.length < 1 ||\n this.hiddenColumnsCount === this.columns.length) {\n return true;\n }\n else if (this.hidableColumns.length < 1 ||\n this.hidableColumns.length === this.hidableColumns.filter(function (col) { return col.value; }).length) {\n return true;\n }\n else {\n return false;\n }\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxColumnHidingComponent.prototype, \"disableShowAll\", {\n /**\n * Returns a boolean indicating whether the `SHOW ALL` button is disabled.\n * ```typescript\n * let isShowAlldisabled = this.columnHiding.disableShowAll;\n * ```\n * @memberof IgxColumnHidingComponent\n */\n get: /**\n * Returns a boolean indicating whether the `SHOW ALL` button is disabled.\n * ```typescript\n * let isShowAlldisabled = this.columnHiding.disableShowAll;\n * ```\n * \\@memberof IgxColumnHidingComponent\n * @return {?}\n */\n function () {\n if (!this.columnItems || this.columnItems.length < 1 ||\n this.hiddenColumnsCount < 1 || this.hidableColumns.length < 1) {\n return true;\n }\n else if (this.hidableColumns.length === this.hidableColumns.filter(function (col) { return !col.value; }).length) {\n return true;\n }\n else {\n return false;\n }\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxColumnHidingComponent.prototype, \"hiddenColumnsCount\", {\n /**\n * Gets the count of the hidden columns.\n * ```typescript\n * let hiddenColumnsCount = this.columnHiding.hiddenColumnsCount;\n * ```\n * @memberof IgxColumnHidingComponent\n */\n get: /**\n * Gets the count of the hidden columns.\n * ```typescript\n * let hiddenColumnsCount = this.columnHiding.hiddenColumnsCount;\n * ```\n * \\@memberof IgxColumnHidingComponent\n * @return {?}\n */\n function () {\n return (this.columns) ? this.columns.filter(function (col) { return col.hidden; }).length : 0;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxColumnHidingComponent.prototype, \"hidableColumns\", {\n /**\n *@hidden\n */\n get: /**\n * @hidden\n * @return {?}\n */\n function () {\n return this.columnItems.filter(function (col) { return !col.disabled; });\n },\n enumerable: true,\n configurable: true\n });\n /**\n *@hidden\n */\n /**\n * @hidden\n * @protected\n * @param {?} container\n * @param {?} column\n * @return {?}\n */\n IgxColumnHidingComponent.prototype.createColumnItem = /**\n * @hidden\n * @protected\n * @param {?} container\n * @param {?} column\n * @return {?}\n */\n function (container, column) {\n var _this = this;\n if (column.grid.hasColumnLayouts && !column.columnLayout) {\n return null;\n }\n /** @type {?} */\n var item = new IgxColumnHidingItemDirective();\n item.container = container;\n item.column = column;\n item.valueChanged.pipe(takeUntil(this.destroy$)).subscribe(function (args) {\n _this.onVisibilityChanged({ column: item.column, newValue: args.newValue });\n });\n return item;\n };\n /**\n * Shows all columns in the grid.\n * ```typescript\n * this.columnHiding.showAllColumns();\n * ```\n * @memberof IgxColumnHidingComponent\n */\n /**\n * Shows all columns in the grid.\n * ```typescript\n * this.columnHiding.showAllColumns();\n * ```\n * \\@memberof IgxColumnHidingComponent\n * @return {?}\n */\n IgxColumnHidingComponent.prototype.showAllColumns = /**\n * Shows all columns in the grid.\n * ```typescript\n * this.columnHiding.showAllColumns();\n * ```\n * \\@memberof IgxColumnHidingComponent\n * @return {?}\n */\n function () {\n var e_1, _a;\n /** @type {?} */\n var collection = this.hidableColumns;\n try {\n for (var collection_1 = __values(collection), collection_1_1 = collection_1.next(); !collection_1_1.done; collection_1_1 = collection_1.next()) {\n var col = collection_1_1.value;\n col.value = false;\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (collection_1_1 && !collection_1_1.done && (_a = collection_1.return)) _a.call(collection_1);\n }\n finally { if (e_1) throw e_1.error; }\n }\n };\n /**\n * Hides all columns in the grid.\n * ```typescript\n * this.columnHiding.hideAllColumns();\n * ```\n * @memberof IgxColumnHidingComponent\n */\n /**\n * Hides all columns in the grid.\n * ```typescript\n * this.columnHiding.hideAllColumns();\n * ```\n * \\@memberof IgxColumnHidingComponent\n * @return {?}\n */\n IgxColumnHidingComponent.prototype.hideAllColumns = /**\n * Hides all columns in the grid.\n * ```typescript\n * this.columnHiding.hideAllColumns();\n * ```\n * \\@memberof IgxColumnHidingComponent\n * @return {?}\n */\n function () {\n var e_2, _a;\n /** @type {?} */\n var collection = this.hidableColumns;\n try {\n for (var collection_2 = __values(collection), collection_2_1 = collection_2.next(); !collection_2_1.done; collection_2_1 = collection_2.next()) {\n var col = collection_2_1.value;\n col.value = true;\n }\n }\n catch (e_2_1) { e_2 = { error: e_2_1 }; }\n finally {\n try {\n if (collection_2_1 && !collection_2_1.done && (_a = collection_2.return)) _a.call(collection_2);\n }\n finally { if (e_2) throw e_2.error; }\n }\n };\n /**\n * @hidden\n */\n /**\n * @hidden\n * @param {?} args\n * @return {?}\n */\n IgxColumnHidingComponent.prototype.onVisibilityChanged = /**\n * @hidden\n * @param {?} args\n * @return {?}\n */\n function (args) {\n this.onColumnVisibilityChanged.emit(args);\n };\n /**\n *@hidden\n */\n /**\n * @hidden\n * @return {?}\n */\n IgxColumnHidingComponent.prototype.ngOnDestroy = /**\n * @hidden\n * @return {?}\n */\n function () {\n this.destroy$.next(true);\n this.destroy$.complete();\n };\n IgxColumnHidingComponent.decorators = [\n { type: Component, args: [{\n preserveWhitespaces: false,\n selector: 'igx-column-hiding',\n template: \"
\\n

{{ title }}

\\n\\n \\n \\n \\n
\\n\\n
\\n \\n {{ columnItem.name }}\\n \\n
\\n\\n
\\n \\n \\n
\\n\"\n }] }\n ];\n /** @nocollapse */\n IgxColumnHidingComponent.ctorParameters = function () { return [\n { type: ChangeDetectorRef }\n ]; };\n IgxColumnHidingComponent.propDecorators = {\n disableHideAll: [{ type: Input }],\n disableShowAll: [{ type: Input }],\n showAllText: [{ type: Input }],\n hideAllText: [{ type: Input }],\n onColumnVisibilityChanged: [{ type: Output }]\n };\n return IgxColumnHidingComponent;\n}(ColumnChooserBase));\n/**\n * @hidden\n */\nvar IgxColumnHidingModule = /** @class */ (function () {\n function IgxColumnHidingModule() {\n }\n IgxColumnHidingModule.decorators = [\n { type: NgModule, args: [{\n declarations: [IgxColumnHidingComponent, IgxColumnHidingItemDirective],\n exports: [IgxColumnHidingComponent],\n imports: [\n IgxButtonModule,\n IgxCheckboxModule,\n IgxInputGroupModule,\n CommonModule,\n FormsModule,\n ]\n },] }\n ];\n return IgxColumnHidingModule;\n}());\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\nvar IgxColumnPinningItemDirective = /** @class */ (function (_super) {\n __extends(IgxColumnPinningItemDirective, _super);\n function IgxColumnPinningItemDirective() {\n return _super.call(this, 'pinned') || this;\n }\n Object.defineProperty(IgxColumnPinningItemDirective.prototype, \"pinnable\", {\n /**\n * Returns whether a column could be pinned.\n * It's not possible to pin a column if there is not enough space for the unpinned area.\n * ```typescript\n * const columnItem: IgxColumnPinningItemDirective;\n * this.columnItem.pinnable;\n * ```\n */\n get: /**\n * Returns whether a column could be pinned.\n * It's not possible to pin a column if there is not enough space for the unpinned area.\n * ```typescript\n * const columnItem: IgxColumnPinningItemDirective;\n * this.columnItem.pinnable;\n * ```\n * @return {?}\n */\n function () {\n return this.column.pinnable;\n },\n enumerable: true,\n configurable: true\n });\n IgxColumnPinningItemDirective.decorators = [\n { type: Directive, args: [{\n selector: '[igxColumnPinningItem]'\n },] }\n ];\n /** @nocollapse */\n IgxColumnPinningItemDirective.ctorParameters = function () { return []; };\n return IgxColumnPinningItemDirective;\n}(ColumnChooserItemBase));\nvar IgxColumnPinningComponent = /** @class */ (function (_super) {\n __extends(IgxColumnPinningComponent, _super);\n function IgxColumnPinningComponent(cdr) {\n var _this = _super.call(this, cdr) || this;\n _this.cdr = cdr;\n return _this;\n }\n /**\n * @hidden\n */\n /**\n * @hidden\n * @param {?} container\n * @param {?} column\n * @return {?}\n */\n IgxColumnPinningComponent.prototype.createColumnItem = /**\n * @hidden\n * @param {?} container\n * @param {?} column\n * @return {?}\n */\n function (container, column) {\n if (column.level !== 0 || column.disablePinning) {\n return null;\n }\n /** @type {?} */\n var item = new IgxColumnPinningItemDirective();\n item.container = container;\n item.column = column;\n return item;\n };\n /**\n * @hidden\n */\n /**\n * @hidden\n * @param {?} event\n * @param {?} columnItem\n * @return {?}\n */\n IgxColumnPinningComponent.prototype.checkboxValueChange = /**\n * @hidden\n * @param {?} event\n * @param {?} columnItem\n * @return {?}\n */\n function (event, columnItem) {\n if (event.checked && !columnItem.pinnable) {\n event.checkbox.checked = false;\n return false;\n }\n columnItem.value = !columnItem.value;\n };\n IgxColumnPinningComponent.decorators = [\n { type: Component, args: [{\n preserveWhitespaces: false,\n selector: 'igx-column-pinning',\n template: \"\\n
\\n

{{ title }}

\\n\\n \\n \\n \\n
\\n\\n
\\n \\n {{ columnItem.name }}\\n \\n
\\n\"\n }] }\n ];\n /** @nocollapse */\n IgxColumnPinningComponent.ctorParameters = function () { return [\n { type: ChangeDetectorRef }\n ]; };\n return IgxColumnPinningComponent;\n}(ColumnChooserBase));\n/**\n * @hidden\n */\nvar IgxColumnPinningModule = /** @class */ (function () {\n function IgxColumnPinningModule() {\n }\n IgxColumnPinningModule.decorators = [\n { type: NgModule, args: [{\n declarations: [IgxColumnPinningComponent, IgxColumnPinningItemDirective],\n exports: [IgxColumnPinningComponent],\n imports: [\n IgxCheckboxModule,\n IgxInputGroupModule,\n CommonModule,\n FormsModule\n ]\n },] }\n ];\n return IgxColumnPinningModule;\n}());\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n/**\n * This class encapsulates the Toolbar's logic and is internally used by\n * the `IgxGridComponent`, `IgxTreeGridComponent` and `IgxHierarchicalGridComponent`.\n */\nvar IgxGridToolbarComponent = /** @class */ (function (_super) {\n __extends(IgxGridToolbarComponent, _super);\n function IgxGridToolbarComponent(gridAPI, cdr, excelExporter, csvExporter, _displayDensityOptions) {\n var _this = _super.call(this, _displayDensityOptions) || this;\n _this.gridAPI = gridAPI;\n _this.cdr = cdr;\n _this.excelExporter = excelExporter;\n _this.csvExporter = csvExporter;\n _this._displayDensityOptions = _displayDensityOptions;\n _this._filterColumnsPrompt = 'Filter columns list ...';\n _this._positionSettings = {\n horizontalDirection: HorizontalAlignment.Left,\n horizontalStartPoint: HorizontalAlignment.Right,\n verticalDirection: VerticalAlignment.Bottom,\n verticalStartPoint: VerticalAlignment.Bottom\n };\n _this._overlaySettings = {\n positionStrategy: new ConnectedPositioningStrategy(_this._positionSettings),\n scrollStrategy: new AbsoluteScrollStrategy(),\n modal: false,\n closeOnOutsideClick: true,\n excludePositionTarget: true\n };\n return _this;\n }\n Object.defineProperty(IgxGridToolbarComponent.prototype, \"filterColumnsPrompt\", {\n /**\n * Gets the default text shown in the filtering box.\n * ```typescript\n * const filterPrompt = this.grid.toolbar.filterColumnsPrompt;\n * ```\n */\n get: /**\n * Gets the default text shown in the filtering box.\n * ```typescript\n * const filterPrompt = this.grid.toolbar.filterColumnsPrompt;\n * ```\n * @return {?}\n */\n function () {\n return this._filterColumnsPrompt;\n },\n /**\n * Sets the default text shown in the filtering box.\n * ```typescript\n * this.grid.toolbar.filterColumnsPrompt('Filter columns ...');\n * ```\n */\n set: /**\n * Sets the default text shown in the filtering box.\n * ```typescript\n * this.grid.toolbar.filterColumnsPrompt('Filter columns ...');\n * ```\n * @param {?} value\n * @return {?}\n */\n function (value) {\n this._filterColumnsPrompt = value;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxGridToolbarComponent.prototype, \"defaultDropDownsMaxHeight\", {\n /**\n * Gets the height for the `IgxGridToolbarComponent`'s drop down panels.\n * ```typescript\n * const dropdownHeight = this.grid.toolbar.defaultDropDownsMaxHeight;\n * ```\n */\n get: /**\n * Gets the height for the `IgxGridToolbarComponent`'s drop down panels.\n * ```typescript\n * const dropdownHeight = this.grid.toolbar.defaultDropDownsMaxHeight;\n * ```\n * @return {?}\n */\n function () {\n /** @type {?} */\n var gridHeight = this.grid.calcHeight;\n return (gridHeight) ? gridHeight * 0.7 + 'px' : '100%';\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxGridToolbarComponent.prototype, \"grid\", {\n /**\n * Returns a reference to the `IgxGridComponent` component, hosting the `IgxGridToolbarComponent`.\n * ```typescript\n * const grid = this.igxGrid1.toolbar.grid;\n * ```\n */\n get: /**\n * Returns a reference to the `IgxGridComponent` component, hosting the `IgxGridToolbarComponent`.\n * ```typescript\n * const grid = this.igxGrid1.toolbar.grid;\n * ```\n * @return {?}\n */\n function () {\n return this.gridAPI.grid;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxGridToolbarComponent.prototype, \"shouldShowExportButton\", {\n /**\n * Returns whether the `IgxGridComponent` renders an export button.\n * ```typescript\n * const exportButton = this.igxGrid1.toolbar.shouldShowExportButton;\n * ```\n */\n get: /**\n * Returns whether the `IgxGridComponent` renders an export button.\n * ```typescript\n * const exportButton = this.igxGrid1.toolbar.shouldShowExportButton;\n * ```\n * @return {?}\n */\n function () {\n return (this.grid != null && (this.grid.exportExcel || this.grid.exportCsv));\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxGridToolbarComponent.prototype, \"shouldShowExportExcelButton\", {\n /**\n * Returns whether the `IgxGridComponent` renders an Excel export button.\n * ```typescript\n * const exportExcelButton = this.igxGrid1.toolbar.shouldShowExportExcelButton;\n * ```\n */\n get: /**\n * Returns whether the `IgxGridComponent` renders an Excel export button.\n * ```typescript\n * const exportExcelButton = this.igxGrid1.toolbar.shouldShowExportExcelButton;\n * ```\n * @return {?}\n */\n function () {\n return (this.grid != null && this.grid.exportExcel);\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxGridToolbarComponent.prototype, \"shouldShowExportCsvButton\", {\n /**\n * Returns whether the `IgxGridComponent` renders an CSV export button.\n * ```typescript\n * const exportCSVButton = this.igxGrid1.toolbar.shouldShowExportCsvButton;\n * ```\n */\n get: /**\n * Returns whether the `IgxGridComponent` renders an CSV export button.\n * ```typescript\n * const exportCSVButton = this.igxGrid1.toolbar.shouldShowExportCsvButton;\n * ```\n * @return {?}\n */\n function () {\n return (this.grid != null && this.grid.exportCsv);\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxGridToolbarComponent.prototype, \"pinnedColumnsCount\", {\n /**\n * Returns how many columns are pinned.\n * ```typescript\n * const pinnedCount = this.igxGrid1.toolbar.pinnedColumnsCount;\n * ```\n */\n get: /**\n * Returns how many columns are pinned.\n * ```typescript\n * const pinnedCount = this.igxGrid1.toolbar.pinnedColumnsCount;\n * ```\n * @return {?}\n */\n function () {\n return this.grid.pinnedColumns.filter(function (col) { return !col.columnLayout; }).length;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxGridToolbarComponent.prototype, \"hostClass\", {\n /**\n * Returns the theme of the `IgxGridToolbarComponent`.\n * ```typescript\n * const toolbarTheme = this.grid.toolbar.hostClass;\n * ```\n */\n get: /**\n * Returns the theme of the `IgxGridToolbarComponent`.\n * ```typescript\n * const toolbarTheme = this.grid.toolbar.hostClass;\n * ```\n * @return {?}\n */\n function () {\n return this.getComponentDensityClass('igx-grid-toolbar');\n },\n enumerable: true,\n configurable: true\n });\n /**\n * Returns the title of `IgxGridToolbarComponent`.\n * ```typescript\n * const toolbarTitle = this.igxGrid1.toolbar.getTitle();\n * ```\n */\n /**\n * Returns the title of `IgxGridToolbarComponent`.\n * ```typescript\n * const toolbarTitle = this.igxGrid1.toolbar.getTitle();\n * ```\n * @return {?}\n */\n IgxGridToolbarComponent.prototype.getTitle = /**\n * Returns the title of `IgxGridToolbarComponent`.\n * ```typescript\n * const toolbarTitle = this.igxGrid1.toolbar.getTitle();\n * ```\n * @return {?}\n */\n function () {\n return this.grid != null ? this.grid.toolbarTitle : '';\n };\n /**\n * Returns the text of the export button of the `IgxGridToolbarComponent`.\n * ```typescript\n * const toolbarExportText = this.igxGrid1.toolbar.getTitle();\n * ```\n */\n /**\n * Returns the text of the export button of the `IgxGridToolbarComponent`.\n * ```typescript\n * const toolbarExportText = this.igxGrid1.toolbar.getTitle();\n * ```\n * @return {?}\n */\n IgxGridToolbarComponent.prototype.getExportText = /**\n * Returns the text of the export button of the `IgxGridToolbarComponent`.\n * ```typescript\n * const toolbarExportText = this.igxGrid1.toolbar.getTitle();\n * ```\n * @return {?}\n */\n function () {\n return this.grid != null ? this.grid.exportText : '';\n };\n /**\n * Returns the text of the Excel export button of the `IgxGridToolbarComponent`.\n * ```typescript\n * const toolbarExcelText = this.igxGrid1.toolbar.getExportExcelText();\n * ```\n */\n /**\n * Returns the text of the Excel export button of the `IgxGridToolbarComponent`.\n * ```typescript\n * const toolbarExcelText = this.igxGrid1.toolbar.getExportExcelText();\n * ```\n * @return {?}\n */\n IgxGridToolbarComponent.prototype.getExportExcelText = /**\n * Returns the text of the Excel export button of the `IgxGridToolbarComponent`.\n * ```typescript\n * const toolbarExcelText = this.igxGrid1.toolbar.getExportExcelText();\n * ```\n * @return {?}\n */\n function () {\n return this.grid != null ? this.grid.exportExcelText : '';\n };\n /**\n * Returns the text of the CSV export button of the `IgxGridToolbarComponent`.\n * ```typescript\n * const toolbarCSVText = this.igxGrid1.toolbar.getExportCsvText();\n * ```\n */\n /**\n * Returns the text of the CSV export button of the `IgxGridToolbarComponent`.\n * ```typescript\n * const toolbarCSVText = this.igxGrid1.toolbar.getExportCsvText();\n * ```\n * @return {?}\n */\n IgxGridToolbarComponent.prototype.getExportCsvText = /**\n * Returns the text of the CSV export button of the `IgxGridToolbarComponent`.\n * ```typescript\n * const toolbarCSVText = this.igxGrid1.toolbar.getExportCsvText();\n * ```\n * @return {?}\n */\n function () {\n return this.grid != null ? this.grid.exportCsvText : '';\n };\n /**\n * Toggles the export button's dropdown menu.\n * ```typescript\n * this.igxGrid1.toolbar.exportClicked();\n * ```\n */\n /**\n * Toggles the export button's dropdown menu.\n * ```typescript\n * this.igxGrid1.toolbar.exportClicked();\n * ```\n * @return {?}\n */\n IgxGridToolbarComponent.prototype.exportClicked = /**\n * Toggles the export button's dropdown menu.\n * ```typescript\n * this.igxGrid1.toolbar.exportClicked();\n * ```\n * @return {?}\n */\n function () {\n this._overlaySettings.positionStrategy.settings.target = this.exportButton.nativeElement;\n this._overlaySettings.outlet = this.grid.outletDirective;\n this.exportDropdown.toggle(this._overlaySettings);\n };\n /**\n * Exports the grid to excel.\n * ```typescript\n * this.igxGrid1.toolbar.exportToExcelClicked();\n * ```\n */\n /**\n * Exports the grid to excel.\n * ```typescript\n * this.igxGrid1.toolbar.exportToExcelClicked();\n * ```\n * @return {?}\n */\n IgxGridToolbarComponent.prototype.exportToExcelClicked = /**\n * Exports the grid to excel.\n * ```typescript\n * this.igxGrid1.toolbar.exportToExcelClicked();\n * ```\n * @return {?}\n */\n function () {\n this.performExport(this.excelExporter, 'excel');\n };\n /**\n * Exports the grid to CSV.\n * ```typescript\n * this.igxGrid1.toolbar.exportToCsvClicked();\n * ```\n */\n /**\n * Exports the grid to CSV.\n * ```typescript\n * this.igxGrid1.toolbar.exportToCsvClicked();\n * ```\n * @return {?}\n */\n IgxGridToolbarComponent.prototype.exportToCsvClicked = /**\n * Exports the grid to CSV.\n * ```typescript\n * this.igxGrid1.toolbar.exportToCsvClicked();\n * ```\n * @return {?}\n */\n function () {\n this.performExport(this.csvExporter, 'csv');\n };\n /**\n * @private\n * @param {?} exp\n * @param {?} exportType\n * @return {?}\n */\n IgxGridToolbarComponent.prototype.performExport = /**\n * @private\n * @param {?} exp\n * @param {?} exportType\n * @return {?}\n */\n function (exp, exportType) {\n this.exportClicked();\n /** @type {?} */\n var fileName = 'ExportedData';\n /** @type {?} */\n var options = exportType === 'excel' ?\n new IgxExcelExporterOptions(fileName) :\n new IgxCsvExporterOptions(fileName, CsvFileTypes.CSV);\n /** @type {?} */\n var args = { grid: this.grid, exporter: exp, options: options, cancel: false };\n this.grid.onToolbarExporting.emit(args);\n if (args.cancel) {\n return;\n }\n exp.export(this.grid, options);\n };\n /**\n * Toggles the Column Hiding UI.\n * ```typescript\n * this.grid1.toolbar.toggleColumnHidingUI();\n * ```\n */\n /**\n * Toggles the Column Hiding UI.\n * ```typescript\n * this.grid1.toolbar.toggleColumnHidingUI();\n * ```\n * @return {?}\n */\n IgxGridToolbarComponent.prototype.toggleColumnHidingUI = /**\n * Toggles the Column Hiding UI.\n * ```typescript\n * this.grid1.toolbar.toggleColumnHidingUI();\n * ```\n * @return {?}\n */\n function () {\n this._overlaySettings.positionStrategy.settings.target = this.columnHidingButton.nativeElement;\n this._overlaySettings.outlet = this.grid.outletDirective;\n this.columnHidingDropdown.toggle(this._overlaySettings);\n };\n /**\n * Toggles the Column Pinning UI.\n * ```typescript\n * this.grid1.toolbar.toggleColumnPinningUI();\n * ```\n */\n /**\n * Toggles the Column Pinning UI.\n * ```typescript\n * this.grid1.toolbar.toggleColumnPinningUI();\n * ```\n * @return {?}\n */\n IgxGridToolbarComponent.prototype.toggleColumnPinningUI = /**\n * Toggles the Column Pinning UI.\n * ```typescript\n * this.grid1.toolbar.toggleColumnPinningUI();\n * ```\n * @return {?}\n */\n function () {\n this._overlaySettings.positionStrategy.settings.target = this.columnPinningButton.nativeElement;\n this._overlaySettings.outlet = this.grid.outletDirective;\n this.columnPinningDropdown.toggle(this._overlaySettings);\n };\n /**\n * @hidden @internal\n */\n /**\n * @hidden \\@internal\n * @return {?}\n */\n IgxGridToolbarComponent.prototype.showAdvancedFilteringUI = /**\n * @hidden \\@internal\n * @return {?}\n */\n function () {\n this.grid.openAdvancedFilteringDialog();\n };\n Object.defineProperty(IgxGridToolbarComponent.prototype, \"context\", {\n /**\n * Returns the `context` object which represents the `template context` binding into the\n * `toolbar custom container` by providing references to the parent IgxGird and the toolbar itself.\n * ```typescript\n * const context = this.igxGrid.toolbar.context;\n * ```\n */\n get: /**\n * Returns the `context` object which represents the `template context` binding into the\n * `toolbar custom container` by providing references to the parent IgxGird and the toolbar itself.\n * ```typescript\n * const context = this.igxGrid.toolbar.context;\n * ```\n * @return {?}\n */\n function () {\n return {\n // $implicit: this\n grid: this.grid,\n toolbar: this\n };\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxGridToolbarComponent.prototype, \"customContentTemplate\", {\n /** @hidden */\n get: /**\n * @hidden\n * @return {?}\n */\n function () {\n if (this.grid != null && this.grid.toolbarCustomContentTemplate != null) {\n return this.grid.toolbarCustomContentTemplate.template;\n }\n else {\n return null;\n }\n },\n enumerable: true,\n configurable: true\n });\n IgxGridToolbarComponent.decorators = [\n { type: Component, args: [{\n selector: 'igx-grid-toolbar',\n template: \"\\n {{ getTitle() }}\\n\\n\\n
\\n \\n \\n
\\n\\n
\\n
\\n \\n
\\n\\n
\\n \\n \\n \\n \\n \\n
\\n
\\n \\n \\n \\n \\n
\\n\\n
\\n \\n\\n \\n
    \\n
  • {{ getExportExcelText() }}
  • \\n
  • {{ getExportCsvText() }}
  • \\n
\\n
\\n
\\n
\\n\"\n }] }\n ];\n /** @nocollapse */\n IgxGridToolbarComponent.ctorParameters = function () { return [\n { type: GridBaseAPIService },\n { type: ChangeDetectorRef },\n { type: IgxExcelExporterService, decorators: [{ type: Optional }] },\n { type: IgxCsvExporterService, decorators: [{ type: Optional }] },\n { type: undefined, decorators: [{ type: Optional }, { type: Inject, args: [DisplayDensityToken,] }] }\n ]; };\n IgxGridToolbarComponent.propDecorators = {\n gridID: [{ type: HostBinding, args: ['class.igx-grid-toolbar',] }, { type: Input }],\n filterColumnsPrompt: [{ type: Input }],\n defaultDropDownsMaxHeight: [{ type: Input }],\n columnHidingDropdown: [{ type: ViewChild, args: ['columnHidingDropdown', { read: IgxDropDownComponent, static: false },] }],\n columnHidingUI: [{ type: ViewChild, args: [IgxColumnHidingComponent, { static: false },] }],\n columnHidingButton: [{ type: ViewChild, args: ['columnHidingButton', { read: IgxButtonDirective, static: false },] }],\n exportDropdown: [{ type: ViewChild, args: ['exportDropdown', { read: IgxDropDownComponent, static: false },] }],\n exportButton: [{ type: ViewChild, args: ['btnExport', { read: IgxButtonDirective, static: false },] }],\n columnPinningDropdown: [{ type: ViewChild, args: ['columnPinningDropdown', { read: IgxDropDownComponent, static: false },] }],\n columnPinningUI: [{ type: ViewChild, args: [IgxColumnPinningComponent, { static: false },] }],\n columnPinningButton: [{ type: ViewChild, args: ['columnPinningButton', { read: IgxButtonDirective, static: false },] }],\n hostClass: [{ type: HostBinding, args: ['attr.class',] }]\n };\n return IgxGridToolbarComponent;\n}(DisplayDensityBase));\n/**\n * The IgxGridToolbarCustomContentDirective directive is used to mark an 'ng-template' (with\n * the 'igxToolbarCustomContent' selector) defined in the IgxGrid which is used to provide\n * custom content for cener part of the IgxGridToolbar.\n */\nvar IgxGridToolbarCustomContentDirective = /** @class */ (function () {\n function IgxGridToolbarCustomContentDirective(template) {\n this.template = template;\n }\n IgxGridToolbarCustomContentDirective.decorators = [\n { type: Directive, args: [{\n selector: '[igxToolbarCustomContent]'\n },] }\n ];\n /** @nocollapse */\n IgxGridToolbarCustomContentDirective.ctorParameters = function () { return [\n { type: TemplateRef }\n ]; };\n return IgxGridToolbarCustomContentDirective;\n}());\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n/**\n * @hidden\n */\nvar IgxRowEditTemplateDirective = /** @class */ (function () {\n function IgxRowEditTemplateDirective() {\n }\n IgxRowEditTemplateDirective.decorators = [\n { type: Directive, args: [{\n selector: '[igxRowEdit]'\n },] }\n ];\n return IgxRowEditTemplateDirective;\n}());\n/**\n * @hidden\n */\nvar IgxRowEditTextDirective = /** @class */ (function () {\n function IgxRowEditTextDirective() {\n }\n IgxRowEditTextDirective.decorators = [\n { type: Directive, args: [{\n selector: '[igxRowEditText]'\n },] }\n ];\n return IgxRowEditTextDirective;\n}());\n/**\n * @hidden\n */\nvar IgxRowEditActionsDirective = /** @class */ (function () {\n function IgxRowEditActionsDirective() {\n }\n IgxRowEditActionsDirective.decorators = [\n { type: Directive, args: [{\n selector: '[igxRowEditActions]'\n },] }\n ];\n return IgxRowEditActionsDirective;\n}());\n// TODO: Refactor circular ref, deps and logic\n/**\n * @hidden\n */\nvar IgxRowEditTabStopDirective = /** @class */ (function () {\n function IgxRowEditTabStopDirective(api, element) {\n var _this = this;\n this.api = api;\n this.element = element;\n /**\n * Sets the cell in edit mode and focus its native element\n * @param cellIndex index of the cell to activate\n */\n this.activateCell = function () {\n /** @type {?} */\n var cell = _this.grid.rowInEditMode.cells.find(function (e) { return e.visibleColumnIndex === _this.currentCellIndex; });\n cell.nativeElement.focus();\n cell.setEditMode(true);\n _this.currentCellIndex = -1;\n };\n }\n Object.defineProperty(IgxRowEditTabStopDirective.prototype, \"grid\", {\n get: /**\n * @return {?}\n */\n function () {\n return this.api.grid;\n },\n enumerable: true,\n configurable: true\n });\n /**\n * @param {?} event\n * @return {?}\n */\n IgxRowEditTabStopDirective.prototype.handleTab = /**\n * @param {?} event\n * @return {?}\n */\n function (event) {\n event.stopPropagation();\n if ((this.grid.rowEditTabs.last === this && !event.shiftKey) ||\n (this.grid.rowEditTabs.first === this && event.shiftKey)) {\n this.move(event);\n }\n };\n /**\n * @param {?} event\n * @return {?}\n */\n IgxRowEditTabStopDirective.prototype.handleEscape = /**\n * @param {?} event\n * @return {?}\n */\n function (event) {\n this.grid.endEdit(false, event);\n /** @type {?} */\n var activeNode = this.grid.selectionService.activeElement;\n // on right click activeNode is deleted, so we may have no one\n if (activeNode) {\n /** @type {?} */\n var cell = this.grid.navigation.getCellElementByVisibleIndex(activeNode.row, activeNode.layout ? activeNode.layout.columnVisibleIndex : activeNode.column);\n cell.focus();\n }\n };\n /**\n * Moves focus to first/last editable cell in the editable row and put the cell in edit mode.\n * If cell is out of view first scrolls to the cell\n * @param event keyboard event containing information about whether SHIFT key was pressed\n */\n /**\n * Moves focus to first/last editable cell in the editable row and put the cell in edit mode.\n * If cell is out of view first scrolls to the cell\n * @private\n * @param {?} event keyboard event containing information about whether SHIFT key was pressed\n * @return {?}\n */\n IgxRowEditTabStopDirective.prototype.move = /**\n * Moves focus to first/last editable cell in the editable row and put the cell in edit mode.\n * If cell is out of view first scrolls to the cell\n * @private\n * @param {?} event keyboard event containing information about whether SHIFT key was pressed\n * @return {?}\n */\n function (event) {\n event.preventDefault();\n this.currentCellIndex = event.shiftKey ? this.grid.lastEditableColumnIndex : this.grid.firstEditableColumnIndex;\n if (!this.grid.navigation.isColumnFullyVisible(this.currentCellIndex)) {\n this.grid.navigation.performHorizontalScrollToCell(this.grid.rowInEditMode.index, this.currentCellIndex, false, this.activateCell);\n }\n else {\n this.activateCell();\n }\n };\n IgxRowEditTabStopDirective.decorators = [\n { type: Directive, args: [{\n selector: \"[igxRowEditTabStop]\"\n },] }\n ];\n /** @nocollapse */\n IgxRowEditTabStopDirective.ctorParameters = function () { return [\n { type: GridBaseAPIService },\n { type: ElementRef }\n ]; };\n IgxRowEditTabStopDirective.propDecorators = {\n handleTab: [{ type: HostListener, args: ['keydown.Tab', [\"$event\"],] }, { type: HostListener, args: ['keydown.Shift.Tab', [\"$event\"],] }],\n handleEscape: [{ type: HostListener, args: ['keydown.Escape', [\"$event\"],] }]\n };\n return IgxRowEditTabStopDirective;\n}());\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\nvar IgxGridGroupByRowComponent = /** @class */ (function () {\n function IgxGridGroupByRowComponent(gridAPI, gridSelection, element, cdr) {\n this.gridAPI = gridAPI;\n this.gridSelection = gridSelection;\n this.element = element;\n this.cdr = cdr;\n /**\n * @hidden\n */\n this.defaultCssClass = 'igx-grid__group-row';\n /**\n * @hidden\n */\n this.paddingIndentationCssClass = 'igx-grid__group-row--padding-level';\n /**\n * @hidden\n */\n this.isFocused = false;\n /**\n * @hidden\n */\n this.tabindex = 0;\n }\n Object.defineProperty(IgxGridGroupByRowComponent.prototype, \"focused\", {\n /**\n * Returns whether the row is focused.\n * ```\n * let gridRowFocused = this.grid1.rowList.first.focused;\n * ```\n */\n get: /**\n * Returns whether the row is focused.\n * ```\n * let gridRowFocused = this.grid1.rowList.first.focused;\n * ```\n * @return {?}\n */\n function () {\n return this.isFocused;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxGridGroupByRowComponent.prototype, \"expanded\", {\n /**\n * Returns whether the group row is expanded.\n * ```typescript\n * const groupRowExpanded = this.grid1.rowList.first.expanded;\n * ```\n */\n get: /**\n * Returns whether the group row is expanded.\n * ```typescript\n * const groupRowExpanded = this.grid1.rowList.first.expanded;\n * ```\n * @return {?}\n */\n function () {\n return this.grid.isExpandedGroup(this.groupRow);\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxGridGroupByRowComponent.prototype, \"describedBy\", {\n /**\n * @hidden\n */\n get: /**\n * @hidden\n * @return {?}\n */\n function () {\n /** @type {?} */\n var grRowExpr = this.groupRow.expression !== undefined ? this.groupRow.expression.fieldName : '';\n return this.gridID + '_' + grRowExpr;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxGridGroupByRowComponent.prototype, \"dataRowIndex\", {\n get: /**\n * @return {?}\n */\n function () {\n return this.index;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxGridGroupByRowComponent.prototype, \"nativeElement\", {\n /**\n * Returns a reference to the underlying HTML element.\n * ```typescript\n * const groupRowElement = this.nativeElement;\n * ```\n */\n get: /**\n * Returns a reference to the underlying HTML element.\n * ```typescript\n * const groupRowElement = this.nativeElement;\n * ```\n * @return {?}\n */\n function () {\n return this.element.nativeElement;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxGridGroupByRowComponent.prototype, \"styleClasses\", {\n /**\n * Returns the style classes applied to the group rows.\n * ```typescript\n * const groupCssStyles = this.grid1.rowList.first.styleClasses;\n * ```\n */\n get: /**\n * Returns the style classes applied to the group rows.\n * ```typescript\n * const groupCssStyles = this.grid1.rowList.first.styleClasses;\n * ```\n * @return {?}\n */\n function () {\n return this.defaultCssClass + \" \" + (this.paddingIndentationCssClass + \"-\") + this.groupRow.level +\n (this.focused ? \" \" + this.defaultCssClass + \"--active\" : '');\n },\n enumerable: true,\n configurable: true\n });\n /**\n *@hidden\n */\n /**\n * @hidden\n * @return {?}\n */\n IgxGridGroupByRowComponent.prototype.onFocus = /**\n * @hidden\n * @return {?}\n */\n function () {\n this.isFocused = true;\n };\n /**\n *@hidden\n */\n /**\n * @hidden\n * @return {?}\n */\n IgxGridGroupByRowComponent.prototype.onBlur = /**\n * @hidden\n * @return {?}\n */\n function () {\n this.isFocused = false;\n };\n /**\n * Toggles the group row.\n * ```typescript\n * this.grid1.rowList.first.toggle()\n * ```\n */\n /**\n * Toggles the group row.\n * ```typescript\n * this.grid1.rowList.first.toggle()\n * ```\n * @return {?}\n */\n IgxGridGroupByRowComponent.prototype.toggle = /**\n * Toggles the group row.\n * ```typescript\n * this.grid1.rowList.first.toggle()\n * ```\n * @return {?}\n */\n function () {\n /** @type {?} */\n var isVirtualized = !this.grid.verticalScrollContainer.dc.instance.notVirtual;\n /** @type {?} */\n var groupRowIndex = this.index;\n this.grid.toggleGroup(this.groupRow);\n if (isVirtualized) {\n /** @type {?} */\n var groupRow = this.grid.nativeElement.querySelector(\"[data-rowIndex=\\\"\" + groupRowIndex + \"\\\"]\");\n if (groupRow) {\n groupRow.focus();\n }\n }\n };\n Object.defineProperty(IgxGridGroupByRowComponent.prototype, \"iconTemplate\", {\n get: /**\n * @return {?}\n */\n function () {\n if (this.expanded) {\n return this.grid.rowExpandedIndicatorTemplate || this.defaultGroupByExpandedTemplate;\n }\n else {\n return this.grid.rowCollapsedIndicatorTemplate || this.defaultGroupByCollapsedTemplate;\n }\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxGridGroupByRowComponent.prototype, \"selectionNode\", {\n get: /**\n * @protected\n * @return {?}\n */\n function () {\n return {\n row: this.index,\n column: this.gridSelection.activeElement ? this.gridSelection.activeElement.column : 0\n };\n },\n enumerable: true,\n configurable: true\n });\n /**\n * @hidden\n */\n /**\n * @hidden\n * @param {?} event\n * @return {?}\n */\n IgxGridGroupByRowComponent.prototype.onKeydown = /**\n * @hidden\n * @param {?} event\n * @return {?}\n */\n function (event) {\n // TODO: Refactor\n /** @type {?} */\n var key = event.key.toLowerCase();\n if (!SUPPORTED_KEYS.has(key)) {\n return;\n }\n event.stopPropagation();\n /** @type {?} */\n var keydownArgs = { targetType: 'groupRow', target: this, event: event, cancel: false };\n this.grid.onGridKeydown.emit(keydownArgs);\n if (keydownArgs.cancel) {\n return;\n }\n event.preventDefault();\n if (!this.isKeySupportedInGroupRow(key, event.shiftKey, event.altKey) || event.ctrlKey) {\n return;\n }\n if (this.isToggleKey(key, event.altKey)) {\n if ((this.expanded && ROW_COLLAPSE_KEYS.has(key)) || (!this.expanded && ROW_EXPAND_KEYS.has(key))) {\n this.toggle();\n }\n return;\n }\n /** @type {?} */\n var selection = this.gridSelection;\n selection.keyboardState.shift = event.shiftKey && !(key === 'tab');\n /** @type {?} */\n var activeNode = selection.activeElement ? Object.assign({}, selection.activeElement) : this.selectionNode;\n activeNode.row = this.index;\n switch (key) {\n case 'arrowdown':\n case 'down':\n this.grid.navigation.navigateDown(this.nativeElement, activeNode);\n break;\n case 'arrowup':\n case 'up':\n this.grid.navigation.navigateUp(this.nativeElement, activeNode);\n break;\n case 'tab':\n this.handleTabKey(event.shiftKey, activeNode);\n break;\n }\n };\n Object.defineProperty(IgxGridGroupByRowComponent.prototype, \"grid\", {\n /**\n * Returns a reference to the `IgxGridComponent` the `IgxGridGroupByRowComponent` belongs to.\n * ```typescript\n * this.grid1.rowList.first.grid;\n * ```\n */\n get: /**\n * Returns a reference to the `IgxGridComponent` the `IgxGridGroupByRowComponent` belongs to.\n * ```typescript\n * this.grid1.rowList.first.grid;\n * ```\n * @return {?}\n */\n function () {\n return this.gridAPI.grid;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxGridGroupByRowComponent.prototype, \"dataType\", {\n /**\n * @hidden\n */\n get: /**\n * @hidden\n * @return {?}\n */\n function () {\n /** @type {?} */\n var column = this.grid.getColumnByName(this.groupRow.expression.fieldName);\n return (column && column.dataType) || DataType.String;\n },\n enumerable: true,\n configurable: true\n });\n /**\n * @private\n * @param {?} shift\n * @param {?} activeNode\n * @return {?}\n */\n IgxGridGroupByRowComponent.prototype.handleTabKey = /**\n * @private\n * @param {?} shift\n * @param {?} activeNode\n * @return {?}\n */\n function (shift, activeNode) {\n if (shift) {\n this.grid.navigation.performShiftTabKey(this.nativeElement, activeNode);\n }\n else {\n if (this.index === this.grid.dataView.length - 1 && this.grid.rootSummariesEnabled) {\n this.grid.navigation.onKeydownHome(0, true);\n }\n else {\n /** @type {?} */\n var orderedColumns = this.grid.navigation.gridOrderedColumns;\n /** @type {?} */\n var lastCol = orderedColumns[orderedColumns.length - 1];\n activeNode.column = lastCol.columnLayoutChild ? lastCol.parent.visibleIndex : lastCol.visibleIndex;\n this.grid.navigation.performTab(this.nativeElement, activeNode);\n }\n }\n };\n /**\n * @private\n * @param {?} key\n * @param {?=} shift\n * @param {?=} alt\n * @return {?}\n */\n IgxGridGroupByRowComponent.prototype.isKeySupportedInGroupRow = /**\n * @private\n * @param {?} key\n * @param {?=} shift\n * @param {?=} alt\n * @return {?}\n */\n function (key, shift, alt) {\n if (shift === void 0) { shift = false; }\n if (alt === void 0) { alt = false; }\n if (shift) {\n return ['down', 'up', 'arrowdown', 'arrowup', 'tab'].indexOf(key) !== -1;\n }\n return this.isToggleKey(key, alt) ? true : ['down', 'up', 'arrowdown', 'arrowup', 'tab'].indexOf(key) !== -1;\n };\n /**\n * @private\n * @param {?} key\n * @param {?} altKey\n * @return {?}\n */\n IgxGridGroupByRowComponent.prototype.isToggleKey = /**\n * @private\n * @param {?} key\n * @param {?} altKey\n * @return {?}\n */\n function (key, altKey) {\n return altKey && ['left', 'right', 'up', 'down', 'arrowleft', 'arrowright', 'arrowup', 'arrowdown'].indexOf(key) !== -1;\n };\n IgxGridGroupByRowComponent.decorators = [\n { type: Component, args: [{\n changeDetection: ChangeDetectionStrategy.OnPush,\n preserveWhitespaces: false,\n selector: 'igx-grid-groupby-row',\n template: \"\\n
\\n \\n \\n
\\n\\n
\\n \\n \\n
\\n\\n \\n expand_more\\n \\n\\n \\n chevron_right\\n \\n\\n\\n \\n
\\n group_work\\n \\n {{ groupRow.expression ? groupRow.expression.fieldName : '' }}:\\n \\n\\n \\n {{ groupRow.value }}\\n \\n \\n \\n {{ groupRow.value | number }}\\n \\n \\n {{ groupRow.value | date }}\\n \\n \\n\\n \\n
\\n
\\n
\\n\"\n }] }\n ];\n /** @nocollapse */\n IgxGridGroupByRowComponent.ctorParameters = function () { return [\n { type: GridBaseAPIService },\n { type: IgxGridSelectionService },\n { type: ElementRef },\n { type: ChangeDetectorRef }\n ]; };\n IgxGridGroupByRowComponent.propDecorators = {\n defaultGroupByExpandedTemplate: [{ type: ViewChild, args: ['defaultGroupByExpandedTemplate', { read: TemplateRef, static: true },] }],\n defaultGroupByCollapsedTemplate: [{ type: ViewChild, args: ['defaultGroupByCollapsedTemplate', { read: TemplateRef, static: true },] }],\n isFocused: [{ type: Input }],\n index: [{ type: Input }],\n gridID: [{ type: Input }],\n groupRow: [{ type: Input }],\n groupContent: [{ type: ViewChild, args: ['groupContent', { static: true },] }],\n expanded: [{ type: HostBinding, args: ['attr.aria-expanded',] }],\n tabindex: [{ type: HostBinding, args: ['attr.tabindex',] }],\n describedBy: [{ type: HostBinding, args: ['attr.aria-describedby',] }],\n dataRowIndex: [{ type: HostBinding, args: ['attr.data-rowIndex',] }],\n styleClasses: [{ type: HostBinding, args: ['class',] }],\n onFocus: [{ type: HostListener, args: ['focus',] }],\n onBlur: [{ type: HostListener, args: ['blur',] }],\n onKeydown: [{ type: HostListener, args: ['keydown', ['$event'],] }]\n };\n return IgxGridGroupByRowComponent;\n}());\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n/** @enum {string} */\nvar MoveDirection = {\n LEFT: 'left',\n RIGHT: 'right',\n};\n/**\n * @hidden\n */\nvar IgxGridNavigationService = /** @class */ (function () {\n function IgxGridNavigationService() {\n }\n Object.defineProperty(IgxGridNavigationService.prototype, \"displayContainerWidth\", {\n get: /**\n * @return {?}\n */\n function () {\n return Math.round(this.grid.parentVirtDir.dc.instance._viewContainer.element.nativeElement.offsetWidth);\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxGridNavigationService.prototype, \"displayContainerScrollLeft\", {\n get: /**\n * @return {?}\n */\n function () {\n return Math.ceil(this.grid.headerContainer.scrollPosition);\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxGridNavigationService.prototype, \"verticalDisplayContainerElement\", {\n get: /**\n * @return {?}\n */\n function () {\n return this.grid.verticalScrollContainer.dc.instance._viewContainer.element.nativeElement;\n },\n enumerable: true,\n configurable: true\n });\n /**\n * @param {?} rowIndex\n * @return {?}\n */\n IgxGridNavigationService.prototype.horizontalScroll = /**\n * @param {?} rowIndex\n * @return {?}\n */\n function (rowIndex) {\n /** @type {?} */\n var rowComp = this.grid.dataRowList.find(function (row) { return row.index === rowIndex; }) || this.grid.dataRowList.first;\n if (!rowComp) {\n rowComp = this.grid.summariesRowList.find(function (row) { return row.index === rowIndex; });\n }\n return rowComp.virtDirRow;\n };\n /**\n * @param {?} visibleColumnIndex\n * @return {?}\n */\n IgxGridNavigationService.prototype.getColumnUnpinnedIndex = /**\n * @param {?} visibleColumnIndex\n * @return {?}\n */\n function (visibleColumnIndex) {\n /** @type {?} */\n var column = this.grid.unpinnedColumns.find(function (col) { return !col.columnGroup && col.visibleIndex === visibleColumnIndex; });\n return this.grid.pinnedColumns.length ? this.grid.unpinnedColumns.filter(function (c) { return !c.columnGroup; }).indexOf(column) :\n visibleColumnIndex;\n };\n /**\n * @param {?} columnIndex\n * @return {?}\n */\n IgxGridNavigationService.prototype.isColumnFullyVisible = /**\n * @param {?} columnIndex\n * @return {?}\n */\n function (columnIndex) {\n return this.isColumnRightEdgeVisible(columnIndex) && this.isColumnLeftEdgeVisible(columnIndex);\n };\n /**\n * @param {?} columnIndex\n * @return {?}\n */\n IgxGridNavigationService.prototype.isColumnRightEdgeVisible = /**\n * @param {?} columnIndex\n * @return {?}\n */\n function (columnIndex) {\n /** @type {?} */\n var forOfDir = this.forOfDir();\n if (this.isColumnPinned(columnIndex, forOfDir)) {\n return true;\n }\n /** @type {?} */\n var index = this.getColumnUnpinnedIndex(columnIndex);\n return this.displayContainerWidth >= forOfDir.getColumnScrollLeft(index + 1) - this.displayContainerScrollLeft;\n };\n /**\n * @param {?} columnIndex\n * @return {?}\n */\n IgxGridNavigationService.prototype.isColumnLeftEdgeVisible = /**\n * @param {?} columnIndex\n * @return {?}\n */\n function (columnIndex) {\n /** @type {?} */\n var forOfDir = this.forOfDir();\n if (this.isColumnPinned(columnIndex, forOfDir)) {\n return true;\n }\n /** @type {?} */\n var index = this.getColumnUnpinnedIndex(columnIndex);\n return this.displayContainerScrollLeft <= forOfDir.getColumnScrollLeft(index);\n };\n /**\n * @private\n * @return {?}\n */\n IgxGridNavigationService.prototype.forOfDir = /**\n * @private\n * @return {?}\n */\n function () {\n /** @type {?} */\n var forOfDir;\n if (this.grid.dataRowList.length > 0) {\n forOfDir = this.grid.dataRowList.first.virtDirRow;\n }\n else {\n forOfDir = this.grid.headerContainer;\n }\n return forOfDir;\n };\n /**\n * @private\n * @param {?} columnIndex\n * @param {?} forOfDir\n * @return {?}\n */\n IgxGridNavigationService.prototype.isColumnPinned = /**\n * @private\n * @param {?} columnIndex\n * @param {?} forOfDir\n * @return {?}\n */\n function (columnIndex, forOfDir) {\n /** @type {?} */\n var horizontalScroll = forOfDir.getScroll();\n /** @type {?} */\n var column = this.grid.columnList.filter(function (c) { return !c.columnGroup; }).find(function (col) { return col.visibleIndex === columnIndex; });\n return (!horizontalScroll.clientWidth || column.pinned);\n };\n Object.defineProperty(IgxGridNavigationService.prototype, \"gridOrderedColumns\", {\n get: /**\n * @return {?}\n */\n function () {\n return __spread(this.grid.pinnedColumns, this.grid.unpinnedColumns).filter(function (c) { return !c.columnGroup; });\n },\n enumerable: true,\n configurable: true\n });\n /**\n * @param {?} rowIndex\n * @return {?}\n */\n IgxGridNavigationService.prototype.isRowInEditMode = /**\n * @param {?} rowIndex\n * @return {?}\n */\n function (rowIndex) {\n return this.grid.rowEditable && (this.grid.rowInEditMode && this.grid.rowInEditMode.index === rowIndex);\n };\n /**\n * @param {?} direction\n * @param {?} visibleColumnIndex\n * @return {?}\n */\n IgxGridNavigationService.prototype.findNextEditable = /**\n * @param {?} direction\n * @param {?} visibleColumnIndex\n * @return {?}\n */\n function (direction, visibleColumnIndex) {\n // go trough all columns in one cycle instead of\n // splice().reverse().find()\n /** @type {?} */\n var gridColumns = this.gridOrderedColumns;\n /** @type {?} */\n var start = visibleColumnIndex;\n /** @type {?} */\n var end = 0;\n /** @type {?} */\n var step = 0;\n /** @type {?} */\n var result = -1;\n if (direction === MoveDirection.LEFT) {\n end = 0;\n step = -1;\n }\n else if (direction === MoveDirection.RIGHT) {\n end = gridColumns.length - 1;\n step = 1;\n }\n for (var c = start; (c * step) <= end; c += step) {\n /** @type {?} */\n var column = gridColumns[c];\n if (column.editable) {\n result = c;\n break;\n }\n }\n return result;\n };\n /**\n * @param {?} rowIndex\n * @param {?} visibleColumnIndex\n * @param {?=} isSummary\n * @return {?}\n */\n IgxGridNavigationService.prototype.getCellElementByVisibleIndex = /**\n * @param {?} rowIndex\n * @param {?} visibleColumnIndex\n * @param {?=} isSummary\n * @return {?}\n */\n function (rowIndex, visibleColumnIndex, isSummary) {\n if (isSummary === void 0) { isSummary = false; }\n /** @type {?} */\n var cellSelector = this.getCellSelector(visibleColumnIndex, isSummary);\n return (/** @type {?} */ (this.grid.nativeElement.querySelector(cellSelector + \"[data-rowindex=\\\"\" + rowIndex + \"\\\"][data-visibleIndex=\\\"\" + visibleColumnIndex + \"\\\"]\")));\n };\n /**\n * @param {?} element\n * @param {?} selectedNode\n * @return {?}\n */\n IgxGridNavigationService.prototype.onKeydownArrowRight = /**\n * @param {?} element\n * @param {?} selectedNode\n * @return {?}\n */\n function (element, selectedNode) {\n /** @type {?} */\n var rowIndex = selectedNode.row;\n /** @type {?} */\n var visibleColumnIndex = selectedNode.column;\n /** @type {?} */\n var isSummary = selectedNode.isSummaryRow;\n if (this.grid.unpinnedColumns[this.grid.unpinnedColumns.length - 1].visibleIndex === visibleColumnIndex) {\n return;\n }\n if (this.isColumnRightEdgeVisible(visibleColumnIndex + 1)) { // if next column is fully visible or is pinned\n if (element.classList.contains('igx-grid__td--pinned-last') || element.classList.contains('igx-grid-summary--pinned-last')) {\n if (this.isColumnLeftEdgeVisible(visibleColumnIndex + 1)) {\n element.nextElementSibling.firstElementChild.focus({ preventScroll: true });\n }\n else {\n this.getFocusableGrid().nativeElement.focus({ preventScroll: true });\n this.grid.parentVirtDir.onChunkLoad\n .pipe(first$1())\n .subscribe(function () {\n element.nextElementSibling.firstElementChild.focus({ preventScroll: true });\n });\n this.horizontalScroll(rowIndex).scrollTo(0);\n }\n }\n else {\n element.nextElementSibling.focus({ preventScroll: true });\n }\n }\n else {\n this.performHorizontalScrollToCell(rowIndex, visibleColumnIndex + 1, isSummary);\n }\n };\n /**\n * @param {?} element\n * @param {?} selectedNode\n * @return {?}\n */\n IgxGridNavigationService.prototype.onKeydownArrowLeft = /**\n * @param {?} element\n * @param {?} selectedNode\n * @return {?}\n */\n function (element, selectedNode) {\n /** @type {?} */\n var rowIndex = selectedNode.row;\n /** @type {?} */\n var visibleColumnIndex = selectedNode.column;\n /** @type {?} */\n var isSummary = selectedNode.isSummaryRow;\n if (visibleColumnIndex === 0) {\n return;\n }\n /** @type {?} */\n var index = this.getColumnUnpinnedIndex(visibleColumnIndex - 1);\n if (!element.previousElementSibling && this.grid.pinnedColumns.length && index === -1) {\n element.parentNode.previousElementSibling.focus({ preventScroll: true });\n }\n else if (!this.isColumnLeftEdgeVisible(visibleColumnIndex - 1)) {\n this.performHorizontalScrollToCell(rowIndex, visibleColumnIndex - 1, isSummary);\n }\n else {\n element.previousElementSibling.focus({ preventScroll: true });\n }\n };\n /**\n * @param {?} rowIndex\n * @param {?} currentColumnVisibleIndex\n * @return {?}\n */\n IgxGridNavigationService.prototype.movePreviousEditable = /**\n * @param {?} rowIndex\n * @param {?} currentColumnVisibleIndex\n * @return {?}\n */\n function (rowIndex, currentColumnVisibleIndex) {\n /** @type {?} */\n var prevEditableColumnIndex = this.findNextEditable(MoveDirection.LEFT, currentColumnVisibleIndex - 1);\n if (prevEditableColumnIndex === -1) {\n if (this.grid.rowEditTabs.length) {\n // TODO: make gridAPI visible for internal use and remove cast to any\n ((/** @type {?} */ (this.grid))).gridAPI.submit_value();\n this.grid.rowEditTabs.last.element.nativeElement.focus();\n return;\n }\n else {\n // In case when row edit template is empty select last editable cell\n prevEditableColumnIndex = this.grid.lastEditableColumnIndex;\n }\n }\n this.focusEditableTarget(rowIndex, prevEditableColumnIndex);\n };\n /**\n * @param {?} rowIndex\n * @param {?} currentColumnVisibleIndex\n * @return {?}\n */\n IgxGridNavigationService.prototype.moveNextEditable = /**\n * @param {?} rowIndex\n * @param {?} currentColumnVisibleIndex\n * @return {?}\n */\n function (rowIndex, currentColumnVisibleIndex) {\n /** @type {?} */\n var nextEditableColumnIndex = this.findNextEditable(MoveDirection.RIGHT, currentColumnVisibleIndex + 1);\n if (nextEditableColumnIndex === -1) {\n if (this.grid.rowEditTabs.length) {\n // TODO: make gridAPI visible for internal use and remove cast to any\n ((/** @type {?} */ (this.grid))).gridAPI.submit_value();\n this.grid.rowEditTabs.first.element.nativeElement.focus();\n return;\n }\n else {\n // In case when row edit template is empty select first editable cell\n nextEditableColumnIndex = this.grid.firstEditableColumnIndex;\n }\n }\n this.focusEditableTarget(rowIndex, nextEditableColumnIndex);\n };\n /**\n * @param {?} rowIndex\n * @param {?} columnIndex\n * @return {?}\n */\n IgxGridNavigationService.prototype.focusEditableTarget = /**\n * @param {?} rowIndex\n * @param {?} columnIndex\n * @return {?}\n */\n function (rowIndex, columnIndex) {\n if (this.isColumnFullyVisible(columnIndex)) {\n this.getCellElementByVisibleIndex(rowIndex, columnIndex).focus();\n }\n else {\n this.performHorizontalScrollToCell(rowIndex, columnIndex);\n }\n };\n /**\n * @param {?} rowIndex\n * @param {?=} isSummary\n * @return {?}\n */\n IgxGridNavigationService.prototype.onKeydownHome = /**\n * @param {?} rowIndex\n * @param {?=} isSummary\n * @return {?}\n */\n function (rowIndex, isSummary) {\n if (isSummary === void 0) { isSummary = false; }\n /** @type {?} */\n var rowList = isSummary ? this.grid.summariesRowList : this.grid.dataRowList;\n /** @type {?} */\n var rowElement = rowList.find(function (row) { return row.index === rowIndex; });\n /** @type {?} */\n var cellSelector = this.getCellSelector(0, isSummary);\n if (!rowElement) {\n return;\n }\n rowElement = rowElement.nativeElement;\n /** @type {?} */\n var firstCell = rowElement.querySelector(cellSelector);\n if (this.grid.pinnedColumns.length || this.displayContainerScrollLeft === 0) {\n firstCell.focus({ preventScroll: true });\n }\n else {\n this.getFocusableGrid().nativeElement.focus({ preventScroll: true });\n this.grid.parentVirtDir.onChunkLoad\n .pipe(first$1())\n .subscribe(function () {\n firstCell = rowElement.querySelector(cellSelector);\n firstCell.focus({ preventScroll: true });\n });\n this.horizontalScroll(rowIndex).scrollTo(0);\n }\n };\n /**\n * @param {?} rowIndex\n * @param {?=} isSummary\n * @return {?}\n */\n IgxGridNavigationService.prototype.onKeydownEnd = /**\n * @param {?} rowIndex\n * @param {?=} isSummary\n * @return {?}\n */\n function (rowIndex, isSummary) {\n var _this = this;\n if (isSummary === void 0) { isSummary = false; }\n /** @type {?} */\n var index = this.grid.unpinnedColumns[this.grid.unpinnedColumns.length - 1].visibleIndex;\n /** @type {?} */\n var rowList = isSummary ? this.grid.summariesRowList : this.grid.dataRowList;\n /** @type {?} */\n var rowElement = rowList.find(function (row) { return row.index === rowIndex; });\n if (!rowElement) {\n return;\n }\n rowElement = rowElement.nativeElement;\n if (this.isColumnRightEdgeVisible(index)) {\n /** @type {?} */\n var allCells = rowElement.querySelectorAll(this.getCellSelector(-1, isSummary));\n allCells[allCells.length - 1].focus({ preventScroll: true });\n }\n else {\n this.getFocusableGrid().nativeElement.focus({ preventScroll: true });\n this.grid.parentVirtDir.onChunkLoad\n .pipe(first$1())\n .subscribe(function () {\n /** @type {?} */\n var allCells = rowElement.querySelectorAll(_this.getCellSelector(-1, isSummary));\n allCells[allCells.length - 1].focus({ preventScroll: true });\n });\n this.horizontalScroll(rowIndex).scrollTo(this.getColumnUnpinnedIndex(index));\n }\n };\n /**\n * @param {?} visibleColumnIndex\n * @return {?}\n */\n IgxGridNavigationService.prototype.navigateTop = /**\n * @param {?} visibleColumnIndex\n * @return {?}\n */\n function (visibleColumnIndex) {\n var _this = this;\n /** @type {?} */\n var targetIndex = this.findFirstDataRowIndex();\n /** @type {?} */\n var verticalScroll = this.grid.verticalScrollContainer.getScroll();\n /** @type {?} */\n var cellSelector = this.getCellSelector(visibleColumnIndex);\n /** @type {?} */\n var targetScr = this.grid.verticalScrollContainer.getScrollForIndex(targetIndex, false);\n if (targetScr >= verticalScroll.scrollTop) {\n /** @type {?} */\n var cells = this.grid.nativeElement.querySelectorAll(cellSelector + \"[data-visibleIndex=\\\"\" + visibleColumnIndex + \"\\\"]\");\n ((/** @type {?} */ (cells[0]))).focus();\n }\n else {\n this.getFocusableGrid().nativeElement.focus({ preventScroll: true });\n this.grid.verticalScrollContainer.scrollTo(targetIndex !== -1 ? targetIndex : 0);\n this.grid.verticalScrollContainer.onChunkLoad\n .pipe(first$1()).subscribe(function () {\n /** @type {?} */\n var cells = _this.grid.nativeElement.querySelectorAll(cellSelector + \"[data-visibleIndex=\\\"\" + visibleColumnIndex + \"\\\"]\");\n if (cells.length > 0) {\n ((/** @type {?} */ (cells[0]))).focus();\n }\n });\n }\n };\n /**\n * @private\n * @return {?}\n */\n IgxGridNavigationService.prototype.findFirstDataRowIndex = /**\n * @private\n * @return {?}\n */\n function () {\n var _this = this;\n /** @type {?} */\n var dv = this.grid.dataView;\n return dv.findIndex(function (rec) { return !_this.grid.isGroupByRecord(rec); });\n };\n /**\n * @private\n * @return {?}\n */\n IgxGridNavigationService.prototype.findLastDataRowIndex = /**\n * @private\n * @return {?}\n */\n function () {\n /** @type {?} */\n var i = this.grid.dataView.length;\n while (i--) {\n /** @type {?} */\n var rec = this.grid.dataView[i];\n if (!this.grid.isGroupByRecord(rec)) {\n return i;\n }\n }\n };\n /**\n * @param {?} visibleColumnIndex\n * @return {?}\n */\n IgxGridNavigationService.prototype.navigateBottom = /**\n * @param {?} visibleColumnIndex\n * @return {?}\n */\n function (visibleColumnIndex) {\n var _this = this;\n /** @type {?} */\n var targetIndex = this.findLastDataRowIndex();\n /** @type {?} */\n var targetScr = this.grid.verticalScrollContainer.getScrollForIndex(targetIndex, true);\n /** @type {?} */\n var verticalScroll = this.grid.verticalScrollContainer.getScroll();\n /** @type {?} */\n var cellSelector = this.getCellSelector(visibleColumnIndex);\n if (verticalScroll.scrollHeight === 0 ||\n verticalScroll.scrollTop === targetScr) {\n /** @type {?} */\n var cells = this.grid.nativeElement.querySelectorAll(cellSelector + \"[data-visibleIndex=\\\"\" + visibleColumnIndex + \"\\\"]\");\n ((/** @type {?} */ (cells[cells.length - 1]))).focus();\n }\n else {\n this.getFocusableGrid().nativeElement.focus({ preventScroll: true });\n this.grid.verticalScrollContainer.scrollTo(targetIndex !== -1 ? targetIndex : this.grid.dataView.length - 1);\n this.grid.verticalScrollContainer.onChunkLoad\n .pipe(first$1()).subscribe(function () {\n /** @type {?} */\n var cells = _this.grid.nativeElement.querySelectorAll(cellSelector + \"[data-visibleIndex=\\\"\" + visibleColumnIndex + \"\\\"]\");\n if (cells.length > 0) {\n ((/** @type {?} */ (cells[cells.length - 1]))).focus();\n }\n });\n }\n };\n /**\n * @param {?} rowElement\n * @param {?} selectedNode\n * @return {?}\n */\n IgxGridNavigationService.prototype.navigateUp = /**\n * @param {?} rowElement\n * @param {?} selectedNode\n * @return {?}\n */\n function (rowElement, selectedNode) {\n var _this = this;\n /** @type {?} */\n var currentRowIndex = selectedNode.row;\n /** @type {?} */\n var visibleColumnIndex = selectedNode.column;\n if (currentRowIndex === 0) {\n return;\n }\n /** @type {?} */\n var containerTopOffset = parseInt(this.verticalDisplayContainerElement.style.top, 10);\n if (!rowElement.previousElementSibling ||\n rowElement.previousElementSibling.offsetTop < Math.abs(containerTopOffset)) {\n this.getFocusableGrid().nativeElement.focus({ preventScroll: true });\n this.grid.verticalScrollContainer.scrollTo(currentRowIndex - 1);\n this.grid.verticalScrollContainer.onChunkLoad\n .pipe(first$1())\n .subscribe(function () {\n /** @type {?} */\n var tag = rowElement.tagName.toLowerCase();\n /** @type {?} */\n var rowSelector = _this.getRowSelector();\n if (tag === rowSelector || tag === 'igx-grid-summary-row') {\n rowElement = _this.getRowByIndex(currentRowIndex, tag);\n }\n else {\n rowElement = _this.grid.nativeElement.querySelector(\"igx-grid-groupby-row[data-rowindex=\\\"\" + currentRowIndex + \"\\\"]\");\n }\n _this.focusPreviousElement(rowElement, visibleColumnIndex);\n });\n }\n else {\n this.focusPreviousElement(rowElement, visibleColumnIndex);\n }\n };\n /**\n * @protected\n * @param {?} currentRowEl\n * @param {?} visibleColumnIndex\n * @return {?}\n */\n IgxGridNavigationService.prototype.focusPreviousElement = /**\n * @protected\n * @param {?} currentRowEl\n * @param {?} visibleColumnIndex\n * @return {?}\n */\n function (currentRowEl, visibleColumnIndex) {\n this.focusElem(currentRowEl.previousElementSibling, visibleColumnIndex);\n };\n /**\n * @param {?} rowElement\n * @param {?} selectedNode\n * @return {?}\n */\n IgxGridNavigationService.prototype.navigateDown = /**\n * @param {?} rowElement\n * @param {?} selectedNode\n * @return {?}\n */\n function (rowElement, selectedNode) {\n var _this = this;\n /** @type {?} */\n var currentRowIndex = selectedNode.row;\n /** @type {?} */\n var visibleColumnIndex = selectedNode.column;\n if (currentRowIndex === this.grid.dataView.length - 1 ||\n (currentRowIndex === 0 && rowElement.tagName.toLowerCase() === 'igx-grid-summary-row')) {\n // check if this is rootSummary row\n return;\n }\n /** @type {?} */\n var rowHeight = this.grid.verticalScrollContainer.getSizeAt(currentRowIndex + 1);\n /** @type {?} */\n var containerHeight = this.grid.calcHeight ? Math.ceil(this.grid.calcHeight) : 0;\n /** @type {?} */\n var targetEndTopOffset = rowElement.nextElementSibling ?\n rowElement.nextElementSibling.offsetTop + rowHeight + parseInt(this.verticalDisplayContainerElement.style.top, 10) :\n containerHeight + rowHeight;\n this.getFocusableGrid().nativeElement.focus({ preventScroll: true });\n if (containerHeight && containerHeight < targetEndTopOffset) {\n /** @type {?} */\n var nextIndex_1 = currentRowIndex + 1;\n this.grid.verticalScrollContainer.scrollTo(nextIndex_1);\n this.grid.verticalScrollContainer.onChunkLoad\n .pipe(first$1())\n .subscribe(function () {\n rowElement = _this.getNextRowByIndex(nextIndex_1);\n _this.focusElem(rowElement, visibleColumnIndex);\n });\n }\n else {\n this.focusNextElement(rowElement, visibleColumnIndex);\n }\n };\n /**\n * @protected\n * @param {?} rowElement\n * @param {?} visibleColumnIndex\n * @return {?}\n */\n IgxGridNavigationService.prototype.focusElem = /**\n * @protected\n * @param {?} rowElement\n * @param {?} visibleColumnIndex\n * @return {?}\n */\n function (rowElement, visibleColumnIndex) {\n if (rowElement.tagName.toLowerCase() === 'igx-grid-groupby-row') {\n rowElement.focus();\n }\n else {\n /** @type {?} */\n var isSummaryRow = rowElement.tagName.toLowerCase() === 'igx-grid-summary-row';\n if (this.isColumnFullyVisible(visibleColumnIndex)) {\n /** @type {?} */\n var cellSelector = this.getCellSelector(visibleColumnIndex, isSummaryRow);\n /** @type {?} */\n var cell = rowElement.querySelector(cellSelector + \"[data-visibleIndex=\\\"\" + visibleColumnIndex + \"\\\"]\");\n cell.focus();\n return cell;\n }\n this.performHorizontalScrollToCell(parseInt(rowElement.getAttribute('data-rowindex'), 10), visibleColumnIndex, isSummaryRow);\n }\n };\n /**\n * @protected\n * @param {?} rowElement\n * @param {?} visibleColumnIndex\n * @return {?}\n */\n IgxGridNavigationService.prototype.focusNextElement = /**\n * @protected\n * @param {?} rowElement\n * @param {?} visibleColumnIndex\n * @return {?}\n */\n function (rowElement, visibleColumnIndex) {\n return this.focusElem(rowElement.nextElementSibling, visibleColumnIndex);\n };\n /**\n * @return {?}\n */\n IgxGridNavigationService.prototype.goToFirstCell = /**\n * @return {?}\n */\n function () {\n var _this = this;\n /** @type {?} */\n var targetIndex = this.findFirstDataRowIndex();\n /** @type {?} */\n var targetScr = this.grid.verticalScrollContainer.getScrollForIndex(targetIndex, false);\n /** @type {?} */\n var verticalScroll = this.grid.verticalScrollContainer.getScroll();\n if (verticalScroll.scrollTop === targetScr) {\n this.onKeydownHome(this.grid.dataRowList.first.index);\n }\n else {\n this.getFocusableGrid().nativeElement.focus({ preventScroll: true });\n this.grid.verticalScrollContainer.scrollTo(targetIndex !== -1 ? targetIndex : 0);\n this.grid.verticalScrollContainer.onChunkLoad\n .pipe(first$1()).subscribe(function () {\n _this.onKeydownHome(_this.grid.dataRowList.first.index);\n });\n }\n };\n /**\n * @return {?}\n */\n IgxGridNavigationService.prototype.goToLastCell = /**\n * @return {?}\n */\n function () {\n var _this = this;\n /** @type {?} */\n var targetIndex = this.findLastDataRowIndex();\n /** @type {?} */\n var targetScr = this.grid.verticalScrollContainer.getScrollForIndex(targetIndex, true);\n /** @type {?} */\n var verticalScroll = this.grid.verticalScrollContainer.getScroll();\n if (verticalScroll.scrollHeight === 0 ||\n verticalScroll.scrollTop === targetScr) {\n /** @type {?} */\n var rows = this.getAllRows();\n /** @type {?} */\n var rowIndex = parseInt(rows[rows.length - 1].getAttribute('data-rowIndex'), 10);\n this.onKeydownEnd(rowIndex);\n }\n else {\n this.getFocusableGrid().nativeElement.focus({ preventScroll: true });\n this.grid.verticalScrollContainer.scrollTo(targetIndex !== -1 ? targetIndex : this.grid.dataView.length - 1);\n this.grid.verticalScrollContainer.onChunkLoad\n .pipe(first$1()).subscribe(function () {\n /** @type {?} */\n var rows = _this.getAllRows();\n if (rows.length > 0) {\n /** @type {?} */\n var rowIndex = parseInt(rows[rows.length - 1].getAttribute('data-rowIndex'), 10);\n _this.onKeydownEnd(rowIndex);\n }\n });\n }\n };\n /**\n * @return {?}\n */\n IgxGridNavigationService.prototype.goToLastBodyElement = /**\n * @return {?}\n */\n function () {\n var _this = this;\n /** @type {?} */\n var verticalScroll = this.grid.verticalScrollContainer.getScroll();\n if (verticalScroll.scrollHeight === 0 ||\n verticalScroll.scrollTop === verticalScroll.scrollHeight - this.grid.verticalScrollContainer.igxForContainerSize) {\n /** @type {?} */\n var rowIndex = this.grid.dataView.length - 1;\n /** @type {?} */\n var row = (/** @type {?} */ (this.grid.nativeElement.querySelector(\"[data-rowindex=\\\"\" + rowIndex + \"\\\"]\")));\n if (row && row.tagName.toLowerCase() === 'igx-grid-groupby-row') {\n row.focus();\n return;\n }\n /** @type {?} */\n var isSummary = (row && row.tagName.toLowerCase() === 'igx-grid-summary-row') ? true : false;\n this.onKeydownEnd(rowIndex, isSummary);\n }\n else {\n this.grid.verticalScrollContainer.scrollTo(this.grid.dataView.length - 1);\n this.grid.verticalScrollContainer.onChunkLoad\n .pipe(first$1()).subscribe(function () {\n /** @type {?} */\n var rowIndex = _this.grid.dataView.length - 1;\n /** @type {?} */\n var row = (/** @type {?} */ (_this.grid.nativeElement.querySelector(\"[data-rowindex=\\\"\" + rowIndex + \"\\\"]\")));\n if (row && row.tagName.toLowerCase() === 'igx-grid-groupby-row') {\n row.focus();\n return;\n }\n /** @type {?} */\n var isSummary = (row && row.tagName.toLowerCase() === 'igx-grid-summary-row') ? true : false;\n _this.onKeydownEnd(rowIndex, isSummary);\n });\n }\n };\n /**\n * @param {?} currentRowEl\n * @param {?} selectedNode\n * @return {?}\n */\n IgxGridNavigationService.prototype.performTab = /**\n * @param {?} currentRowEl\n * @param {?} selectedNode\n * @return {?}\n */\n function (currentRowEl, selectedNode) {\n /** @type {?} */\n var rowIndex = selectedNode.row;\n /** @type {?} */\n var visibleColumnIndex = selectedNode.column;\n /** @type {?} */\n var isSummaryRow = selectedNode.isSummaryRow;\n if (isSummaryRow && rowIndex === 0 &&\n this.grid.unpinnedColumns[this.grid.unpinnedColumns.length - 1].visibleIndex === visibleColumnIndex) {\n return;\n }\n if (this.isRowInEditMode(rowIndex)) {\n this.moveNextEditable(rowIndex, visibleColumnIndex);\n return;\n }\n if (this.grid.unpinnedColumns[this.grid.unpinnedColumns.length - 1].visibleIndex === visibleColumnIndex) {\n /** @type {?} */\n var rowEl = this.grid.rowList.find(function (row) { return row.index === rowIndex + 1; }) ?\n this.grid.rowList.find(function (row) { return row.index === rowIndex + 1; }) :\n this.grid.summariesRowList.find(function (row) { return row.index === rowIndex + 1; });\n if (rowIndex === this.grid.dataView.length - 1 && this.grid.rootSummariesEnabled) {\n this.onKeydownHome(0, true);\n return;\n }\n if (rowEl) {\n this.navigateDown(currentRowEl, { row: rowIndex, column: 0 });\n }\n }\n else {\n /** @type {?} */\n var cell = this.getCellElementByVisibleIndex(rowIndex, visibleColumnIndex, isSummaryRow);\n if (cell) {\n this.onKeydownArrowRight(cell, selectedNode);\n }\n }\n };\n /**\n * @param {?=} toStart\n * @return {?}\n */\n IgxGridNavigationService.prototype.moveFocusToFilterCell = /**\n * @param {?=} toStart\n * @return {?}\n */\n function (toStart) {\n if (this.grid.filteringService.isFilterRowVisible) {\n this.grid.filteringService.focusFilterRowCloseButton();\n return;\n }\n /** @type {?} */\n var columns = this.grid.filteringService.unpinnedFilterableColumns;\n /** @type {?} */\n var targetIndex = toStart ? 0 : columns.length - 1;\n /** @type {?} */\n var visibleIndex = columns[targetIndex].visibleIndex;\n /** @type {?} */\n var isVisible = toStart ? this.isColumnLeftEdgeVisible(visibleIndex) : this.isColumnRightEdgeVisible(visibleIndex);\n if (isVisible) {\n this.grid.filteringService.focusFilterCellChip(columns[targetIndex], false);\n }\n else {\n this.grid.filteringService.scrollToFilterCell(columns[targetIndex], false);\n }\n };\n /**\n * @param {?} column\n * @param {?} eventArgs\n * @return {?}\n */\n IgxGridNavigationService.prototype.navigatePrevFilterCell = /**\n * @param {?} column\n * @param {?} eventArgs\n * @return {?}\n */\n function (column, eventArgs) {\n /** @type {?} */\n var cols = this.grid.filteringService.unpinnedFilterableColumns;\n /** @type {?} */\n var prevFilterableIndex = cols.indexOf(column) - 1;\n /** @type {?} */\n var visibleIndex = column.visibleIndex;\n if (visibleIndex === 0 || prevFilterableIndex < 0) {\n // prev is not filter cell\n /** @type {?} */\n var firstFiltarableCol = this.getFirstPinnedFilterableColumn();\n if (!firstFiltarableCol || column === firstFiltarableCol) {\n eventArgs.preventDefault();\n }\n return;\n }\n /** @type {?} */\n var prevColumn = cols[prevFilterableIndex];\n /** @type {?} */\n var prevVisibleIndex = prevColumn.visibleIndex;\n if (prevFilterableIndex >= 0 && visibleIndex > 0 && !this.isColumnLeftEdgeVisible(prevVisibleIndex) && !column.pinned) {\n eventArgs.preventDefault();\n this.grid.filteringService.scrollToFilterCell(prevColumn, false);\n }\n };\n /**\n * @param {?} eventArgs\n * @return {?}\n */\n IgxGridNavigationService.prototype.navigateFirstCellIfPossible = /**\n * @param {?} eventArgs\n * @return {?}\n */\n function (eventArgs) {\n if (this.grid.rowList.length > 0) {\n if (this.grid.rowList.filter(function (row) { return row instanceof IgxGridGroupByRowComponent; }).length > 0) {\n eventArgs.stopPropagation();\n return;\n }\n this.goToFirstCell();\n }\n else if (this.grid.rootSummariesEnabled) {\n this.onKeydownHome(0, true);\n }\n eventArgs.preventDefault();\n };\n /**\n * @param {?} column\n * @param {?} eventArgs\n * @return {?}\n */\n IgxGridNavigationService.prototype.navigateNextFilterCell = /**\n * @param {?} column\n * @param {?} eventArgs\n * @return {?}\n */\n function (column, eventArgs) {\n /** @type {?} */\n var cols = this.grid.filteringService.unpinnedFilterableColumns;\n /** @type {?} */\n var nextFilterableIndex = cols.indexOf(column) + 1;\n if (nextFilterableIndex >= this.grid.filteringService.unpinnedFilterableColumns.length) {\n // next is not filter cell\n this.navigateFirstCellIfPossible(eventArgs);\n return;\n }\n /** @type {?} */\n var nextColumn = cols[nextFilterableIndex];\n /** @type {?} */\n var nextVisibleIndex = nextColumn.visibleIndex;\n if (!column.pinned && !this.isColumnRightEdgeVisible(nextVisibleIndex)) {\n eventArgs.preventDefault();\n this.grid.filteringService.scrollToFilterCell(nextColumn, true);\n }\n else if (column === this.getLastPinnedFilterableColumn() && !this.isColumnRightEdgeVisible(nextVisibleIndex)) {\n this.grid.filteringService.scrollToFilterCell(nextColumn, false);\n eventArgs.stopPropagation();\n }\n };\n /**\n * @private\n * @return {?}\n */\n IgxGridNavigationService.prototype.getLastPinnedFilterableColumn = /**\n * @private\n * @return {?}\n */\n function () {\n /** @type {?} */\n var pinnedFilterableColums = this.grid.pinnedColumns.filter(function (col) { return !(col.columnGroup) && col.filterable; });\n return pinnedFilterableColums[pinnedFilterableColums.length - 1];\n };\n /**\n * @private\n * @return {?}\n */\n IgxGridNavigationService.prototype.getFirstPinnedFilterableColumn = /**\n * @private\n * @return {?}\n */\n function () {\n return this.grid.pinnedColumns.filter(function (col) { return !(col.columnGroup) && col.filterable; })[0];\n };\n /**\n * @param {?} currentRowEl\n * @param {?} selectedNode\n * @return {?}\n */\n IgxGridNavigationService.prototype.performShiftTabKey = /**\n * @param {?} currentRowEl\n * @param {?} selectedNode\n * @return {?}\n */\n function (currentRowEl, selectedNode) {\n /** @type {?} */\n var rowIndex = selectedNode.row;\n /** @type {?} */\n var visibleColumnIndex = selectedNode.column;\n /** @type {?} */\n var isSummary = selectedNode.isSummaryRow;\n if (isSummary && rowIndex === 0 && visibleColumnIndex === 0 && this.grid.rowList.length) {\n this.goToLastBodyElement();\n return;\n }\n if (this.isRowInEditMode(rowIndex)) {\n this.movePreviousEditable(rowIndex, visibleColumnIndex);\n return;\n }\n if (visibleColumnIndex === 0) {\n if (rowIndex === 0 && this.grid.allowFiltering && this.grid.filterMode === FilterMode.quickFilter) {\n this.moveFocusToFilterCell();\n }\n else {\n this.navigateUp(currentRowEl, {\n row: rowIndex,\n column: this.grid.unpinnedColumns[this.grid.unpinnedColumns.length - 1].visibleIndex\n });\n }\n }\n else {\n /** @type {?} */\n var cell = this.getCellElementByVisibleIndex(rowIndex, visibleColumnIndex, isSummary);\n if (cell) {\n this.onKeydownArrowLeft(cell, selectedNode);\n }\n }\n };\n /**\n * @param {?} targetRowIndex\n * @param {?} visibleColumnIndex\n * @return {?}\n */\n IgxGridNavigationService.prototype.shouldPerformVerticalScroll = /**\n * @param {?} targetRowIndex\n * @param {?} visibleColumnIndex\n * @return {?}\n */\n function (targetRowIndex, visibleColumnIndex) {\n /** @type {?} */\n var containerTopOffset = parseInt(this.verticalDisplayContainerElement.style.top, 10);\n /** @type {?} */\n var targetRow = this.grid.summariesRowList.filter(function (s) { return s.index !== 0; })\n .concat(this.grid.rowList.toArray()).find(function (r) { return r.index === targetRowIndex; });\n /** @type {?} */\n var rowHeight = this.grid.verticalScrollContainer.getSizeAt(targetRowIndex);\n /** @type {?} */\n var containerHeight = this.grid.calcHeight ? Math.ceil(this.grid.calcHeight) : 0;\n /** @type {?} */\n var targetEndTopOffset = targetRow ? targetRow.nativeElement.offsetTop + rowHeight + containerTopOffset :\n containerHeight + rowHeight;\n if (!targetRow || targetRow.nativeElement.offsetTop < Math.abs(containerTopOffset)\n || containerHeight && containerHeight < targetEndTopOffset) {\n return true;\n }\n else {\n return false;\n }\n };\n /**\n * @param {?} rowIndex\n * @param {?} visibleColIndex\n * @param {?=} cb\n * @return {?}\n */\n IgxGridNavigationService.prototype.performVerticalScrollToCell = /**\n * @param {?} rowIndex\n * @param {?} visibleColIndex\n * @param {?=} cb\n * @return {?}\n */\n function (rowIndex, visibleColIndex, cb) {\n this.grid.verticalScrollContainer.scrollTo(rowIndex);\n this.grid.verticalScrollContainer.onChunkLoad\n .pipe(first$1()).subscribe(function () {\n cb();\n });\n };\n /**\n * @param {?} rowIndex\n * @param {?} visibleColumnIndex\n * @param {?=} isSummary\n * @param {?=} cb\n * @return {?}\n */\n IgxGridNavigationService.prototype.performHorizontalScrollToCell = /**\n * @param {?} rowIndex\n * @param {?} visibleColumnIndex\n * @param {?=} isSummary\n * @param {?=} cb\n * @return {?}\n */\n function (rowIndex, visibleColumnIndex, isSummary, cb) {\n var _this = this;\n if (isSummary === void 0) { isSummary = false; }\n /** @type {?} */\n var unpinnedIndex = this.getColumnUnpinnedIndex(visibleColumnIndex);\n this.getFocusableGrid().nativeElement.focus({ preventScroll: true });\n this.grid.parentVirtDir.onChunkLoad\n .pipe(first$1())\n .subscribe(function () {\n if (cb) {\n cb();\n }\n else {\n /** @type {?} */\n var cellElement = _this.getCellElementByVisibleIndex(rowIndex, visibleColumnIndex, isSummary);\n if (cellElement) {\n cellElement.focus({ preventScroll: true });\n }\n }\n });\n this.horizontalScroll(rowIndex).scrollTo(unpinnedIndex);\n };\n /**\n * @protected\n * @return {?}\n */\n IgxGridNavigationService.prototype.getFocusableGrid = /**\n * @protected\n * @return {?}\n */\n function () {\n return this.grid;\n };\n /**\n * @protected\n * @param {?} index\n * @param {?=} selector\n * @return {?}\n */\n IgxGridNavigationService.prototype.getRowByIndex = /**\n * @protected\n * @param {?} index\n * @param {?=} selector\n * @return {?}\n */\n function (index, selector) {\n if (selector === void 0) { selector = this.getRowSelector(); }\n return this.grid.nativeElement.querySelector(selector + \"[data-rowindex=\\\"\" + index + \"\\\"]\");\n };\n /**\n * @protected\n * @param {?} nextIndex\n * @return {?}\n */\n IgxGridNavigationService.prototype.getNextRowByIndex = /**\n * @protected\n * @param {?} nextIndex\n * @return {?}\n */\n function (nextIndex) {\n return this.grid.tbody.nativeElement.querySelector(\"[data-rowindex=\\\"\" + nextIndex + \"\\\"]\");\n };\n /**\n * @private\n * @return {?}\n */\n IgxGridNavigationService.prototype.getAllRows = /**\n * @private\n * @return {?}\n */\n function () {\n /** @type {?} */\n var selector = this.getRowSelector();\n return this.grid.nativeElement.querySelectorAll(selector);\n };\n /**\n * @protected\n * @param {?=} visibleIndex\n * @param {?=} isSummary\n * @return {?}\n */\n IgxGridNavigationService.prototype.getCellSelector = /**\n * @protected\n * @param {?=} visibleIndex\n * @param {?=} isSummary\n * @return {?}\n */\n function (visibleIndex, isSummary) {\n if (isSummary === void 0) { isSummary = false; }\n return isSummary ? 'igx-grid-summary-cell' : 'igx-grid-cell';\n };\n /**\n * @protected\n * @return {?}\n */\n IgxGridNavigationService.prototype.getRowSelector = /**\n * @protected\n * @return {?}\n */\n function () {\n return 'igx-grid-row';\n };\n IgxGridNavigationService.decorators = [\n { type: Injectable }\n ];\n return IgxGridNavigationService;\n}());\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n/* tslint:disable */\nvar icons = [\n {\n name: 'add_filter',\n value: \"\\n \\n \"\n },\n {\n name: 'contains',\n value: \"\\n \\n \\n \"\n },\n {\n name: 'does_not_contain',\n value: \"\\n \\n \"\n },\n {\n name: 'all',\n value: \"\\n \\n \\n \"\n },\n {\n name: 'empty',\n value: \"\\n \\n \"\n },\n {\n name: 'end_expression',\n value: \"\\n \\n \\n \"\n },\n {\n name: 'ends_with',\n value: \"\\n \\n \"\n },\n {\n name: 'equals',\n value: \"\\n \\n \"\n },\n {\n name: 'greater_than_or_equal',\n value: \"\\n \\n \"\n },\n {\n name: 'greater_than',\n value: \"\\n \\n \\n \"\n },\n {\n name: 'is_after',\n value: \"\\n \\n \"\n },\n {\n name: 'is_before',\n value: \"\\n \\n \"\n },\n {\n name: 'is_false',\n value: \"\\n \\n \\n \"\n },\n {\n name: 'is_not_null',\n value: \"\\n \\n \"\n },\n {\n name: 'is_null',\n value: \"\\n \\n \"\n },\n {\n name: 'is_true',\n value: \"\\n \\n \\n \"\n },\n {\n name: 'last_month',\n value: \"\\n \\n \\n \"\n },\n {\n name: 'last_year',\n value: \"\\n \\n \\n \\n \"\n },\n {\n name: 'less_than_or_equal',\n value: \"\\n \\n \"\n },\n {\n name: 'less_than',\n value: \"\\n \\n \"\n },\n {\n name: 'next_month',\n value: \"\\n \\n \\n \"\n },\n {\n name: 'next_year',\n value: \"\\n \\n \\n \\n \"\n },\n {\n name: 'not_empty',\n value: \"\\n \\n \"\n },\n {\n name: 'not_equal',\n value: \"\\n \\n \"\n },\n {\n name: 'start_expression',\n value: \"\\n \\n \\n \"\n },\n {\n name: 'starts_with',\n value: \"\\n \\n \\n \"\n },\n {\n name: 'this_month',\n value: \"\\n \\n \\n \"\n },\n {\n name: 'this_year',\n value: \"\\n \\n \\n \\n \"\n },\n {\n name: 'today',\n value: \"\\n \\n \\n \"\n },\n {\n name: 'ungroup',\n value: \"\\n \\n \\n \"\n },\n {\n name: 'yesterday',\n value: \"\\n \\n \\n \"\n },\n {\n name: 'pin',\n value: \"\\n \\n \"\n },\n {\n name: 'unpin',\n value: \"\\n \\n \\n \"\n },\n {\n name: 'ungroup',\n value: \"\\n \\n \\n \\n \\n \\n \"\n }\n];\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n/** @type {?} */\nvar FILTERING_ICONS_FONT_SET = 'filtering-icons';\n/**\n * @hidden\n */\nvar /**\n * @hidden\n */\nExpressionUI = /** @class */ (function () {\n function ExpressionUI() {\n this.isSelected = false;\n this.isVisible = true;\n }\n return ExpressionUI;\n}());\n/**\n * @hidden\n */\nvar IgxFilteringService = /** @class */ (function () {\n function IgxFilteringService(gridAPI, iconService) {\n this.gridAPI = gridAPI;\n this.iconService = iconService;\n this.columnsWithComplexFilter = new Set();\n this.areEventsSubscribed = false;\n this.destroy$ = new Subject();\n this.isFiltering = false;\n this.columnToExpressionsMap = new Map();\n this.columnStartIndex = -1;\n this._filterIconsRegistered = false;\n this.isFilterRowVisible = false;\n this.filteredColumn = null;\n this.selectedExpression = null;\n this.columnToFocus = null;\n this.shouldFocusNext = false;\n this.columnToMoreIconHidden = new Map();\n }\n /**\n * @return {?}\n */\n IgxFilteringService.prototype.ngOnDestroy = /**\n * @return {?}\n */\n function () {\n this.destroy$.next(true);\n this.destroy$.complete();\n };\n Object.defineProperty(IgxFilteringService.prototype, \"displayContainerWidth\", {\n get: /**\n * @return {?}\n */\n function () {\n return parseInt(this.grid.parentVirtDir.dc.instance._viewContainer.element.nativeElement.offsetWidth, 10);\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxFilteringService.prototype, \"displayContainerScrollLeft\", {\n get: /**\n * @return {?}\n */\n function () {\n return this.grid.headerContainer.scrollPosition;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxFilteringService.prototype, \"areAllColumnsInView\", {\n get: /**\n * @return {?}\n */\n function () {\n return parseInt(this.grid.parentVirtDir.dc.instance._viewContainer.element.nativeElement.offsetWidth, 10) === 0;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxFilteringService.prototype, \"unpinnedFilterableColumns\", {\n get: /**\n * @return {?}\n */\n function () {\n return this.grid.unpinnedColumns.filter(function (col) { return !col.columnGroup && col.filterable; });\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxFilteringService.prototype, \"unpinnedColumns\", {\n get: /**\n * @return {?}\n */\n function () {\n return this.grid.unpinnedColumns.filter(function (col) { return !col.columnGroup; });\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxFilteringService.prototype, \"datePipe\", {\n get: /**\n * @return {?}\n */\n function () {\n if (!this._datePipe) {\n this._datePipe = new IgxDatePipeComponent(this.grid.locale);\n }\n return this._datePipe;\n },\n enumerable: true,\n configurable: true\n });\n /**\n * Subscribe to grid's events.\n */\n /**\n * Subscribe to grid's events.\n * @return {?}\n */\n IgxFilteringService.prototype.subscribeToEvents = /**\n * Subscribe to grid's events.\n * @return {?}\n */\n function () {\n var _this = this;\n if (!this.areEventsSubscribed) {\n this.areEventsSubscribed = true;\n this.grid.onColumnResized.pipe(takeUntil(this.destroy$)).subscribe(function (eventArgs) {\n _this.updateFilteringCell(eventArgs.column);\n });\n this.grid.parentVirtDir.onChunkLoad.pipe(takeUntil(this.destroy$)).subscribe(function (eventArgs) {\n if (eventArgs.startIndex !== _this.columnStartIndex) {\n _this.columnStartIndex = eventArgs.startIndex;\n _this.grid.filterCellList.forEach(function (filterCell) {\n filterCell.updateFilterCellArea();\n });\n }\n if (_this.columnToFocus) {\n _this.focusFilterCellChip(_this.columnToFocus, false);\n _this.columnToFocus = null;\n }\n });\n this.grid.onColumnMovingEnd.pipe(takeUntil(this.destroy$)).subscribe(function () {\n _this.grid.filterCellList.forEach(function (filterCell) {\n filterCell.updateFilterCellArea();\n });\n });\n }\n };\n /**\n * Close filtering row if a column is hidden.\n */\n /**\n * Close filtering row if a column is hidden.\n * @param {?} col\n * @return {?}\n */\n IgxFilteringService.prototype.hideFilteringRowOnColumnVisibilityChange = /**\n * Close filtering row if a column is hidden.\n * @param {?} col\n * @return {?}\n */\n function (col) {\n /** @type {?} */\n var filteringRow = this.grid.filteringRow;\n if (filteringRow && filteringRow.column && filteringRow.column === col) {\n filteringRow.close();\n }\n };\n /**\n * Internal method to create expressionsTree and filter grid used in both filter modes.\n */\n /**\n * Internal method to create expressionsTree and filter grid used in both filter modes.\n * @param {?} field\n * @param {?=} expressions\n * @return {?}\n */\n IgxFilteringService.prototype.filterInternal = /**\n * Internal method to create expressionsTree and filter grid used in both filter modes.\n * @param {?} field\n * @param {?=} expressions\n * @return {?}\n */\n function (field, expressions) {\n if (expressions === void 0) { expressions = null; }\n this.isFiltering = true;\n /** @type {?} */\n var expressionsTree;\n if (expressions instanceof FilteringExpressionsTree) {\n expressionsTree = expressions;\n }\n else {\n expressionsTree = this.createSimpleFilteringTree(field, expressions);\n }\n if (expressionsTree.filteringOperands.length === 0) {\n this.clearFilter(field);\n }\n else {\n this.filter(field, null, expressionsTree);\n }\n this.isFiltering = false;\n };\n /**\n * Execute filtering on the grid.\n */\n /**\n * Execute filtering on the grid.\n * @param {?} field\n * @param {?} value\n * @param {?=} conditionOrExpressionTree\n * @param {?=} ignoreCase\n * @return {?}\n */\n IgxFilteringService.prototype.filter = /**\n * Execute filtering on the grid.\n * @param {?} field\n * @param {?} value\n * @param {?=} conditionOrExpressionTree\n * @param {?=} ignoreCase\n * @return {?}\n */\n function (field, value, conditionOrExpressionTree, ignoreCase) {\n var _this = this;\n /** @type {?} */\n var col = this.gridAPI.get_column_by_name(field);\n /** @type {?} */\n var filteringIgnoreCase = ignoreCase || (col ? col.filteringIgnoreCase : false);\n if (conditionOrExpressionTree) {\n this.gridAPI.filter(field, value, conditionOrExpressionTree, filteringIgnoreCase);\n }\n else {\n /** @type {?} */\n var expressionsTreeForColumn = this.grid.filteringExpressionsTree.find(field);\n if (!expressionsTreeForColumn) {\n throw new Error('Invalid condition or Expression Tree!');\n }\n else if (expressionsTreeForColumn instanceof FilteringExpressionsTree) {\n this.gridAPI.filter(field, value, expressionsTreeForColumn, filteringIgnoreCase);\n }\n else {\n /** @type {?} */\n var expressionForColumn = (/** @type {?} */ (expressionsTreeForColumn));\n this.gridAPI.filter(field, value, expressionForColumn.condition, filteringIgnoreCase);\n }\n }\n // Wait for the change detection to update filtered data through the pipes and then emit the event.\n requestAnimationFrame(function () { return _this.grid.onFilteringDone.emit(col.filteringExpressionsTree); });\n };\n /**\n * Clear the filter of a given column.\n */\n /**\n * Clear the filter of a given column.\n * @param {?} field\n * @return {?}\n */\n IgxFilteringService.prototype.clearFilter = /**\n * Clear the filter of a given column.\n * @param {?} field\n * @return {?}\n */\n function (field) {\n var _this = this;\n if (field) {\n /** @type {?} */\n var column = this.gridAPI.get_column_by_name(field);\n if (!column) {\n return;\n }\n }\n this.isFiltering = true;\n this.gridAPI.clear_filter(field);\n // Wait for the change detection to update filtered data through the pipes and then emit the event.\n requestAnimationFrame(function () { return _this.grid.onFilteringDone.emit(null); });\n if (field) {\n /** @type {?} */\n var expressions = this.getExpressions(field);\n expressions.length = 0;\n }\n this.isFiltering = false;\n };\n /**\n * Filters all the `IgxColumnComponent` in the `IgxGridComponent` with the same condition.\n */\n /**\n * Filters all the `IgxColumnComponent` in the `IgxGridComponent` with the same condition.\n * @param {?} value\n * @param {?} condition\n * @param {?=} ignoreCase\n * @return {?}\n */\n IgxFilteringService.prototype.filterGlobal = /**\n * Filters all the `IgxColumnComponent` in the `IgxGridComponent` with the same condition.\n * @param {?} value\n * @param {?} condition\n * @param {?=} ignoreCase\n * @return {?}\n */\n function (value, condition, ignoreCase) {\n var _this = this;\n this.gridAPI.filter_global(value, condition, ignoreCase);\n // Wait for the change detection to update filtered data through the pipes and then emit the event.\n requestAnimationFrame(function () { return _this.grid.onFilteringDone.emit(_this.grid.filteringExpressionsTree); });\n };\n /**\n * Register filtering SVG icons in the icon service.\n */\n /**\n * Register filtering SVG icons in the icon service.\n * @return {?}\n */\n IgxFilteringService.prototype.registerSVGIcons = /**\n * Register filtering SVG icons in the icon service.\n * @return {?}\n */\n function () {\n var e_1, _a;\n if (!this._filterIconsRegistered) {\n try {\n for (var icons_1 = __values(icons), icons_1_1 = icons_1.next(); !icons_1_1.done; icons_1_1 = icons_1.next()) {\n var icon = icons_1_1.value;\n if (!this.iconService.isSvgIconCached(icon.name, FILTERING_ICONS_FONT_SET)) {\n this.iconService.addSvgIconFromText(icon.name, icon.value, FILTERING_ICONS_FONT_SET);\n }\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (icons_1_1 && !icons_1_1.done && (_a = icons_1.return)) _a.call(icons_1);\n }\n finally { if (e_1) throw e_1.error; }\n }\n this._filterIconsRegistered = true;\n }\n };\n /**\n * Returns the ExpressionUI array for a given column.\n */\n /**\n * Returns the ExpressionUI array for a given column.\n * @param {?} columnId\n * @return {?}\n */\n IgxFilteringService.prototype.getExpressions = /**\n * Returns the ExpressionUI array for a given column.\n * @param {?} columnId\n * @return {?}\n */\n function (columnId) {\n if (!this.columnToExpressionsMap.has(columnId)) {\n /** @type {?} */\n var column = this.grid.columns.find(function (col) { return col.field === columnId; });\n /** @type {?} */\n var expressionUIs = new Array();\n if (column) {\n this.generateExpressionsList(column.filteringExpressionsTree, this.grid.filteringExpressionsTree.operator, expressionUIs);\n this.columnToExpressionsMap.set(columnId, expressionUIs);\n }\n return expressionUIs;\n }\n return this.columnToExpressionsMap.get(columnId);\n };\n /**\n * Recreates all ExpressionUIs for all columns. Executed after filtering to refresh the cache.\n */\n /**\n * Recreates all ExpressionUIs for all columns. Executed after filtering to refresh the cache.\n * @return {?}\n */\n IgxFilteringService.prototype.refreshExpressions = /**\n * Recreates all ExpressionUIs for all columns. Executed after filtering to refresh the cache.\n * @return {?}\n */\n function () {\n var _this = this;\n if (!this.isFiltering) {\n this.columnsWithComplexFilter.clear();\n this.columnToExpressionsMap.forEach(function (value, key) {\n /** @type {?} */\n var column = _this.grid.columns.find(function (col) { return col.field === key; });\n if (column) {\n value.length = 0;\n _this.generateExpressionsList(column.filteringExpressionsTree, _this.grid.filteringExpressionsTree.operator, value);\n /** @type {?} */\n var isComplex = _this.isFilteringTreeComplex(column.filteringExpressionsTree);\n if (isComplex) {\n _this.columnsWithComplexFilter.add(key);\n }\n _this.updateFilteringCell(column);\n }\n else {\n _this.columnToExpressionsMap.delete(key);\n }\n });\n }\n };\n /**\n * Remove an ExpressionUI for a given column.\n */\n /**\n * Remove an ExpressionUI for a given column.\n * @param {?} columnId\n * @param {?} indexToRemove\n * @return {?}\n */\n IgxFilteringService.prototype.removeExpression = /**\n * Remove an ExpressionUI for a given column.\n * @param {?} columnId\n * @param {?} indexToRemove\n * @return {?}\n */\n function (columnId, indexToRemove) {\n /** @type {?} */\n var expressionsList = this.getExpressions(columnId);\n if (indexToRemove === 0 && expressionsList.length > 1) {\n expressionsList[1].beforeOperator = null;\n }\n else if (indexToRemove === expressionsList.length - 1) {\n expressionsList[indexToRemove - 1].afterOperator = null;\n }\n else {\n expressionsList[indexToRemove - 1].afterOperator = expressionsList[indexToRemove + 1].beforeOperator;\n expressionsList[0].beforeOperator = null;\n expressionsList[expressionsList.length - 1].afterOperator = null;\n }\n expressionsList.splice(indexToRemove, 1);\n };\n /**\n * Generate filtering tree for a given column from existing ExpressionUIs.\n */\n /**\n * Generate filtering tree for a given column from existing ExpressionUIs.\n * @param {?} columnId\n * @param {?=} expressionUIList\n * @return {?}\n */\n IgxFilteringService.prototype.createSimpleFilteringTree = /**\n * Generate filtering tree for a given column from existing ExpressionUIs.\n * @param {?} columnId\n * @param {?=} expressionUIList\n * @return {?}\n */\n function (columnId, expressionUIList) {\n if (expressionUIList === void 0) { expressionUIList = null; }\n /** @type {?} */\n var expressionsList = expressionUIList ? expressionUIList : this.getExpressions(columnId);\n /** @type {?} */\n var expressionsTree = new FilteringExpressionsTree(FilteringLogic.Or, columnId);\n /** @type {?} */\n var currAndBranch;\n /** @type {?} */\n var currExpressionUI;\n for (var i = 0; i < expressionsList.length; i++) {\n currExpressionUI = expressionsList[i];\n if (!currExpressionUI.expression.condition.isUnary && currExpressionUI.expression.searchVal === null) {\n if (currExpressionUI.afterOperator === FilteringLogic.And && !currAndBranch) {\n currAndBranch = new FilteringExpressionsTree(FilteringLogic.And, columnId);\n expressionsTree.filteringOperands.push(currAndBranch);\n }\n continue;\n }\n if ((currExpressionUI.beforeOperator === undefined || currExpressionUI.beforeOperator === null ||\n currExpressionUI.beforeOperator === FilteringLogic.Or) &&\n currExpressionUI.afterOperator === FilteringLogic.And) {\n currAndBranch = new FilteringExpressionsTree(FilteringLogic.And, columnId);\n expressionsTree.filteringOperands.push(currAndBranch);\n currAndBranch.filteringOperands.push(currExpressionUI.expression);\n }\n else if (currExpressionUI.beforeOperator === FilteringLogic.And) {\n currAndBranch.filteringOperands.push(currExpressionUI.expression);\n }\n else {\n expressionsTree.filteringOperands.push(currExpressionUI.expression);\n currAndBranch = null;\n }\n }\n return expressionsTree;\n };\n /**\n * Returns whether a complex filter is applied to a given column.\n */\n /**\n * Returns whether a complex filter is applied to a given column.\n * @param {?} columnId\n * @return {?}\n */\n IgxFilteringService.prototype.isFilterComplex = /**\n * Returns whether a complex filter is applied to a given column.\n * @param {?} columnId\n * @return {?}\n */\n function (columnId) {\n if (this.columnsWithComplexFilter.has(columnId)) {\n return true;\n }\n /** @type {?} */\n var column = this.grid.columns.find(function (col) { return col.field === columnId; });\n /** @type {?} */\n var isComplex = column && this.isFilteringTreeComplex(column.filteringExpressionsTree);\n if (isComplex) {\n this.columnsWithComplexFilter.add(columnId);\n }\n return isComplex;\n };\n /**\n * Returns the string representation of the FilteringLogic operator.\n */\n /**\n * Returns the string representation of the FilteringLogic operator.\n * @param {?} operator\n * @return {?}\n */\n IgxFilteringService.prototype.getOperatorAsString = /**\n * Returns the string representation of the FilteringLogic operator.\n * @param {?} operator\n * @return {?}\n */\n function (operator) {\n if (operator === 0) {\n return this.grid.resourceStrings.igx_grid_filter_operator_and;\n }\n else {\n return this.grid.resourceStrings.igx_grid_filter_operator_or;\n }\n };\n /**\n * Generate the label of a chip from a given filtering expression.\n */\n /**\n * Generate the label of a chip from a given filtering expression.\n * @param {?} expression\n * @return {?}\n */\n IgxFilteringService.prototype.getChipLabel = /**\n * Generate the label of a chip from a given filtering expression.\n * @param {?} expression\n * @return {?}\n */\n function (expression) {\n if (expression.condition.isUnary) {\n return this.grid.resourceStrings[\"igx_grid_filter_\" + expression.condition.name] || expression.condition.name;\n }\n else if (expression.searchVal instanceof Date) {\n return this.datePipe.transform(expression.searchVal, this.grid.locale);\n }\n else {\n return expression.searchVal;\n }\n };\n /**\n * Updates the content of a filterCell.\n */\n /**\n * Updates the content of a filterCell.\n * @param {?} column\n * @return {?}\n */\n IgxFilteringService.prototype.updateFilteringCell = /**\n * Updates the content of a filterCell.\n * @param {?} column\n * @return {?}\n */\n function (column) {\n /** @type {?} */\n var filterCell = column.filterCell;\n if (filterCell) {\n filterCell.updateFilterCellArea();\n }\n };\n /**\n * Focus a chip in a filterCell.\n */\n /**\n * Focus a chip in a filterCell.\n * @param {?} column\n * @param {?} focusFirst\n * @return {?}\n */\n IgxFilteringService.prototype.focusFilterCellChip = /**\n * Focus a chip in a filterCell.\n * @param {?} column\n * @param {?} focusFirst\n * @return {?}\n */\n function (column, focusFirst) {\n /** @type {?} */\n var filterCell = column.filterCell;\n if (filterCell) {\n filterCell.focusChip(focusFirst);\n }\n };\n /**\n * Focus the close button in the filtering row.\n */\n /**\n * Focus the close button in the filtering row.\n * @return {?}\n */\n IgxFilteringService.prototype.focusFilterRowCloseButton = /**\n * Focus the close button in the filtering row.\n * @return {?}\n */\n function () {\n this.grid.filteringRow.closeButton.nativeElement.focus();\n };\n Object.defineProperty(IgxFilteringService.prototype, \"filteredData\", {\n get: /**\n * @return {?}\n */\n function () {\n return this.grid.filteredData;\n },\n enumerable: true,\n configurable: true\n });\n /**\n * Scrolls to a filterCell.\n */\n /**\n * Scrolls to a filterCell.\n * @param {?} column\n * @param {?} shouldFocusNext\n * @return {?}\n */\n IgxFilteringService.prototype.scrollToFilterCell = /**\n * Scrolls to a filterCell.\n * @param {?} column\n * @param {?} shouldFocusNext\n * @return {?}\n */\n function (column, shouldFocusNext) {\n this.grid.nativeElement.focus({ preventScroll: true });\n this.columnToFocus = column;\n this.shouldFocusNext = shouldFocusNext;\n /** @type {?} */\n var currentColumnRight = 0;\n /** @type {?} */\n var currentColumnLeft = 0;\n for (var index = 0; index < this.unpinnedColumns.length; index++) {\n currentColumnRight += parseInt(this.unpinnedColumns[index].width, 10);\n if (this.unpinnedColumns[index] === column) {\n currentColumnLeft = currentColumnRight - parseInt(this.unpinnedColumns[index].width, 10);\n break;\n }\n }\n /** @type {?} */\n var forOfDir = this.grid.headerContainer;\n /** @type {?} */\n var width = this.displayContainerWidth + this.displayContainerScrollLeft;\n if (shouldFocusNext) {\n forOfDir.scrollPosition += currentColumnRight - width;\n }\n else {\n forOfDir.scrollPosition = currentColumnLeft;\n }\n };\n /**\n * @private\n * @param {?} expressions\n * @return {?}\n */\n IgxFilteringService.prototype.isFilteringTreeComplex = /**\n * @private\n * @param {?} expressions\n * @return {?}\n */\n function (expressions) {\n if (!expressions) {\n return false;\n }\n if (expressions instanceof FilteringExpressionsTree) {\n /** @type {?} */\n var expressionsTree = (/** @type {?} */ (expressions));\n if (expressionsTree.operator === FilteringLogic.Or) {\n /** @type {?} */\n var andOperatorsCount = this.getChildAndOperatorsCount(expressionsTree);\n // having more that 'And' and operator in the sub-tree means that the filter could not be represented without parentheses.\n return andOperatorsCount > 1;\n }\n /** @type {?} */\n var isComplex = false;\n for (var i = 0; i < expressionsTree.filteringOperands.length; i++) {\n isComplex = isComplex || this.isFilteringTreeComplex(expressionsTree.filteringOperands[i]);\n }\n return isComplex;\n }\n return false;\n };\n /**\n * @private\n * @param {?} expressions\n * @return {?}\n */\n IgxFilteringService.prototype.getChildAndOperatorsCount = /**\n * @private\n * @param {?} expressions\n * @return {?}\n */\n function (expressions) {\n /** @type {?} */\n var count = 0;\n /** @type {?} */\n var operand;\n for (var i = 0; i < expressions.filteringOperands.length; i++) {\n operand = expressions[i];\n if (operand instanceof FilteringExpressionsTree) {\n if (operand.operator === FilteringLogic.And) {\n count++;\n }\n count = count + this.getChildAndOperatorsCount(operand);\n }\n }\n return count;\n };\n /**\n * @param {?} expressions\n * @param {?} operator\n * @param {?} expressionsUIs\n * @return {?}\n */\n IgxFilteringService.prototype.generateExpressionsList = /**\n * @param {?} expressions\n * @param {?} operator\n * @param {?} expressionsUIs\n * @return {?}\n */\n function (expressions, operator, expressionsUIs) {\n this.generateExpressionsListRecursive(expressions, operator, expressionsUIs);\n // The beforeOperator of the first expression and the afterOperator of the last expression should be null\n if (expressionsUIs.length) {\n expressionsUIs[expressionsUIs.length - 1].afterOperator = null;\n }\n };\n /**\n * @private\n * @param {?} expressions\n * @param {?} operator\n * @param {?} expressionsUIs\n * @return {?}\n */\n IgxFilteringService.prototype.generateExpressionsListRecursive = /**\n * @private\n * @param {?} expressions\n * @param {?} operator\n * @param {?} expressionsUIs\n * @return {?}\n */\n function (expressions, operator, expressionsUIs) {\n if (!expressions) {\n return;\n }\n if (expressions instanceof FilteringExpressionsTree) {\n /** @type {?} */\n var expressionsTree = (/** @type {?} */ (expressions));\n for (var i = 0; i < expressionsTree.filteringOperands.length; i++) {\n this.generateExpressionsListRecursive(expressionsTree.filteringOperands[i], expressionsTree.operator, expressionsUIs);\n }\n if (expressionsUIs.length) {\n expressionsUIs[expressionsUIs.length - 1].afterOperator = operator;\n }\n }\n else {\n /** @type {?} */\n var exprUI = new ExpressionUI();\n exprUI.expression = (/** @type {?} */ (expressions));\n exprUI.afterOperator = operator;\n /** @type {?} */\n var prevExprUI = expressionsUIs[expressionsUIs.length - 1];\n if (prevExprUI) {\n exprUI.beforeOperator = prevExprUI.afterOperator;\n }\n expressionsUIs.push(exprUI);\n }\n };\n /**\n * @param {?} expressionTree\n * @return {?}\n */\n IgxFilteringService.prototype.isFilteringExpressionsTreeEmpty = /**\n * @param {?} expressionTree\n * @return {?}\n */\n function (expressionTree) {\n if (FilteringExpressionsTree.empty(expressionTree)) {\n return true;\n }\n /** @type {?} */\n var expr;\n for (var i = 0; i < expressionTree.filteringOperands.length; i++) {\n expr = expressionTree.filteringOperands[i];\n if ((expr instanceof FilteringExpressionsTree)) {\n /** @type {?} */\n var exprTree = (/** @type {?} */ (expr));\n if (exprTree.filteringOperands && exprTree.filteringOperands.length) {\n return false;\n }\n }\n else {\n return false;\n }\n }\n return true;\n };\n IgxFilteringService.decorators = [\n { type: Injectable }\n ];\n /** @nocollapse */\n IgxFilteringService.ctorParameters = function () { return [\n { type: GridBaseAPIService },\n { type: IgxIconService }\n ]; };\n return IgxFilteringService;\n}());\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\nvar IgxExcelStyleLoadingValuesTemplateDirective = /** @class */ (function () {\n function IgxExcelStyleLoadingValuesTemplateDirective(template) {\n this.template = template;\n }\n IgxExcelStyleLoadingValuesTemplateDirective.decorators = [\n { type: Directive, args: [{\n selector: '[igxExcelStyleLoading]'\n },] }\n ];\n /** @nocollapse */\n IgxExcelStyleLoadingValuesTemplateDirective.ctorParameters = function () { return [\n { type: TemplateRef }\n ]; };\n return IgxExcelStyleLoadingValuesTemplateDirective;\n}());\n/**\n * @hidden\n */\nvar IgxExcelStyleSearchComponent = /** @class */ (function () {\n function IgxExcelStyleSearchComponent(cdr) {\n this.cdr = cdr;\n }\n Object.defineProperty(IgxExcelStyleSearchComponent.prototype, \"isLoading\", {\n get: /**\n * @return {?}\n */\n function () {\n return this._isLoading;\n },\n set: /**\n * @param {?} value\n * @return {?}\n */\n function (value) {\n this._isLoading = value;\n if (!((/** @type {?} */ (this.cdr))).destroyed) {\n this.cdr.detectChanges();\n }\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxExcelStyleSearchComponent.prototype, \"valuesLoadingTemplate\", {\n get: /**\n * @return {?}\n */\n function () {\n if (this.grid.excelStyleLoadingValuesTemplateDirective) {\n return this.grid.excelStyleLoadingValuesTemplateDirective.template;\n }\n else {\n return this.defaultExcelStyleLoadingValuesTemplate;\n }\n },\n enumerable: true,\n configurable: true\n });\n /**\n * @return {?}\n */\n IgxExcelStyleSearchComponent.prototype.ngAfterViewInit = /**\n * @return {?}\n */\n function () {\n this.refreshSize();\n };\n /**\n * @return {?}\n */\n IgxExcelStyleSearchComponent.prototype.refreshSize = /**\n * @return {?}\n */\n function () {\n var _this = this;\n requestAnimationFrame(function () {\n _this.virtDir.recalcUpdateSizes();\n });\n };\n /**\n * @return {?}\n */\n IgxExcelStyleSearchComponent.prototype.clearInput = /**\n * @return {?}\n */\n function () {\n this.searchValue = null;\n };\n /**\n * @param {?} eventArgs\n * @return {?}\n */\n IgxExcelStyleSearchComponent.prototype.onCheckboxChange = /**\n * @param {?} eventArgs\n * @return {?}\n */\n function (eventArgs) {\n var _this = this;\n /** @type {?} */\n var selectedIndex = this.data.indexOf(eventArgs.checkbox.value);\n if (selectedIndex === 0) {\n this.data.forEach(function (element) {\n element.isSelected = eventArgs.checked;\n _this.data[0].indeterminate = false;\n });\n }\n else {\n eventArgs.checkbox.value.isSelected = eventArgs.checked;\n if (!this.data.slice(1, this.data.length).find(function (el) { return el.isSelected === false; })) {\n this.data[0].indeterminate = false;\n this.data[0].isSelected = true;\n }\n else if (!this.data.slice(1, this.data.length).find(function (el) { return el.isSelected === true; })) {\n this.data[0].indeterminate = false;\n this.data[0].isSelected = false;\n }\n else {\n this.data[0].indeterminate = true;\n }\n }\n eventArgs.checkbox.nativeCheckbox.nativeElement.blur();\n };\n Object.defineProperty(IgxExcelStyleSearchComponent.prototype, \"itemSize\", {\n get: /**\n * @return {?}\n */\n function () {\n /** @type {?} */\n var itemSize = '40px';\n switch (this.displayDensity) {\n case DisplayDensity.cosy:\n itemSize = '32px';\n break;\n case DisplayDensity.compact:\n itemSize = '24px';\n break;\n default: break;\n }\n return itemSize;\n },\n enumerable: true,\n configurable: true\n });\n IgxExcelStyleSearchComponent.decorators = [\n { type: Component, args: [{\n changeDetection: ChangeDetectionStrategy.OnPush,\n preserveWhitespaces: false,\n selector: 'igx-excel-style-search',\n template: \"\\n search\\n \\n \\n clear\\n \\n
\\n\\n\\n
\\n \\n \\n {{ item.label }}\\n \\n \\n
\\n\\n \\n
\\n \\n \\n
\\n
\\n
\\n\\n\\n \\n \\n\\n\"\n }] }\n ];\n /** @nocollapse */\n IgxExcelStyleSearchComponent.ctorParameters = function () { return [\n { type: ChangeDetectorRef }\n ]; };\n IgxExcelStyleSearchComponent.propDecorators = {\n grid: [{ type: Input }],\n data: [{ type: Input }],\n column: [{ type: Input }],\n searchInput: [{ type: ViewChild, args: ['input', { read: IgxInputDirective, static: true },] }],\n displayDensity: [{ type: Input }],\n virtDir: [{ type: ViewChild, args: [IgxForOfDirective, { static: true },] }],\n defaultExcelStyleLoadingValuesTemplate: [{ type: ViewChild, args: ['defaultExcelStyleLoadingValuesTemplate', { read: TemplateRef, static: true },] }]\n };\n return IgxExcelStyleSearchComponent;\n}());\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n/**\n * @hidden\n */\nvar IgxExcelStyleDefaultExpressionComponent = /** @class */ (function () {\n function IgxExcelStyleDefaultExpressionComponent(cdr) {\n this.cdr = cdr;\n this._dropDownOverlaySettings = {\n closeOnOutsideClick: true,\n modal: false,\n positionStrategy: new ConnectedPositioningStrategy(),\n scrollStrategy: new CloseScrollStrategy()\n };\n this.onExpressionRemoved = new EventEmitter();\n this.onLogicOperatorChanged = new EventEmitter();\n }\n Object.defineProperty(IgxExcelStyleDefaultExpressionComponent.prototype, \"inputValuesElement\", {\n get: /**\n * @protected\n * @return {?}\n */\n function () {\n return this.inputValuesDirective;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxExcelStyleDefaultExpressionComponent.prototype, \"isLast\", {\n get: /**\n * @return {?}\n */\n function () {\n return this.expressionsList[this.expressionsList.length - 1] === this.expressionUI;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxExcelStyleDefaultExpressionComponent.prototype, \"isSingle\", {\n get: /**\n * @return {?}\n */\n function () {\n return this.expressionsList.length === 1;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxExcelStyleDefaultExpressionComponent.prototype, \"inputConditionsPlaceholder\", {\n get: /**\n * @return {?}\n */\n function () {\n return this.grid.resourceStrings['igx_grid_filter_condition_placeholder'];\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxExcelStyleDefaultExpressionComponent.prototype, \"inputValuePlaceholder\", {\n get: /**\n * @return {?}\n */\n function () {\n return this.grid.resourceStrings['igx_grid_filter_row_placeholder'];\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxExcelStyleDefaultExpressionComponent.prototype, \"type\", {\n get: /**\n * @return {?}\n */\n function () {\n switch (this.column.dataType) {\n case DataType.Number:\n return 'number';\n default:\n return 'text';\n }\n },\n enumerable: true,\n configurable: true\n });\n /**\n * @return {?}\n */\n IgxExcelStyleDefaultExpressionComponent.prototype.ngAfterViewInit = /**\n * @return {?}\n */\n function () {\n this._dropDownOverlaySettings.outlet = this.column.grid.outletDirective;\n this._dropDownOverlaySettings.positionStrategy.settings.target = this.inputGroupConditions.element.nativeElement;\n };\n /**\n * @return {?}\n */\n IgxExcelStyleDefaultExpressionComponent.prototype.focus = /**\n * @return {?}\n */\n function () {\n var _this = this;\n // use requestAnimationFrame to focus the values input because when initializing the component\n // datepicker's input group is not yet fully initialized\n requestAnimationFrame(function () { return _this.inputValuesElement.focus(); });\n };\n /**\n * @param {?} conditionName\n * @return {?}\n */\n IgxExcelStyleDefaultExpressionComponent.prototype.isConditionSelected = /**\n * @param {?} conditionName\n * @return {?}\n */\n function (conditionName) {\n return this.expressionUI.expression.condition && this.expressionUI.expression.condition.name === conditionName;\n };\n /**\n * @param {?} condition\n * @return {?}\n */\n IgxExcelStyleDefaultExpressionComponent.prototype.getConditionName = /**\n * @param {?} condition\n * @return {?}\n */\n function (condition) {\n return condition ? this.translateCondition(condition.name) : null;\n };\n /**\n * @return {?}\n */\n IgxExcelStyleDefaultExpressionComponent.prototype.getInputWidth = /**\n * @return {?}\n */\n function () {\n return this.inputGroupConditions.element.nativeElement.offsetWidth + 'px';\n };\n Object.defineProperty(IgxExcelStyleDefaultExpressionComponent.prototype, \"conditions\", {\n get: /**\n * @return {?}\n */\n function () {\n return this.column.filters.conditionList();\n },\n enumerable: true,\n configurable: true\n });\n /**\n * @param {?} value\n * @return {?}\n */\n IgxExcelStyleDefaultExpressionComponent.prototype.translateCondition = /**\n * @param {?} value\n * @return {?}\n */\n function (value) {\n return this.grid.resourceStrings[\"igx_grid_filter_\" + this.getCondition(value).name] || value;\n };\n /**\n * @return {?}\n */\n IgxExcelStyleDefaultExpressionComponent.prototype.getIconName = /**\n * @return {?}\n */\n function () {\n if (this.column.dataType === DataType.Boolean && this.expressionUI.expression.condition === null) {\n return this.getCondition(this.conditions[0]).iconName;\n }\n else if (!this.expressionUI.expression.condition) {\n return 'filter_list';\n }\n else {\n return this.expressionUI.expression.condition.iconName;\n }\n };\n /**\n * @return {?}\n */\n IgxExcelStyleDefaultExpressionComponent.prototype.toggleCustomDialogDropDown = /**\n * @return {?}\n */\n function () {\n this.dropdownConditions.toggle(this._dropDownOverlaySettings);\n };\n /**\n * @param {?} value\n * @return {?}\n */\n IgxExcelStyleDefaultExpressionComponent.prototype.getCondition = /**\n * @param {?} value\n * @return {?}\n */\n function (value) {\n return this.column.filters.condition(value);\n };\n /**\n * @param {?} eventArgs\n * @return {?}\n */\n IgxExcelStyleDefaultExpressionComponent.prototype.onConditionsChanged = /**\n * @param {?} eventArgs\n * @return {?}\n */\n function (eventArgs) {\n /** @type {?} */\n var value = ((/** @type {?} */ (eventArgs.newSelection))).value;\n this.expressionUI.expression.condition = this.getCondition(value);\n this.focus();\n };\n /**\n * @param {?} eventArgs\n * @return {?}\n */\n IgxExcelStyleDefaultExpressionComponent.prototype.onValuesInput = /**\n * @param {?} eventArgs\n * @return {?}\n */\n function (eventArgs) {\n this.expressionUI.expression.searchVal = DataUtil.parseValue(this.column.dataType, eventArgs.target.value);\n };\n /**\n * @param {?} eventArgs\n * @param {?} buttonIndex\n * @return {?}\n */\n IgxExcelStyleDefaultExpressionComponent.prototype.onLogicOperatorButtonClicked = /**\n * @param {?} eventArgs\n * @param {?} buttonIndex\n * @return {?}\n */\n function (eventArgs, buttonIndex) {\n if (this.logicOperatorButtonGroup.selectedButtons.length === 0) {\n eventArgs.stopPropagation();\n this.logicOperatorButtonGroup.selectButton(buttonIndex);\n }\n else {\n this.onLogicOperatorChanged.emit({\n target: this.expressionUI,\n newValue: (/** @type {?} */ (buttonIndex))\n });\n }\n };\n /**\n * @param {?} eventArgs\n * @param {?} buttonIndex\n * @return {?}\n */\n IgxExcelStyleDefaultExpressionComponent.prototype.onLogicOperatorKeyDown = /**\n * @param {?} eventArgs\n * @param {?} buttonIndex\n * @return {?}\n */\n function (eventArgs, buttonIndex) {\n if (eventArgs.key === \"Enter\" /* ENTER */) {\n this.logicOperatorButtonGroup.selectButton(buttonIndex);\n this.onLogicOperatorChanged.emit({\n target: this.expressionUI,\n newValue: (/** @type {?} */ (buttonIndex))\n });\n }\n };\n /**\n * @return {?}\n */\n IgxExcelStyleDefaultExpressionComponent.prototype.onRemoveButtonClick = /**\n * @return {?}\n */\n function () {\n this.onExpressionRemoved.emit(this.expressionUI);\n };\n /**\n * @param {?} eventArgs\n * @return {?}\n */\n IgxExcelStyleDefaultExpressionComponent.prototype.onInputConditionsKeyDown = /**\n * @param {?} eventArgs\n * @return {?}\n */\n function (eventArgs) {\n if (eventArgs.altKey && (eventArgs.key === \"ArrowDown\" /* DOWN_ARROW */ || eventArgs.key === \"Down\" /* DOWN_ARROW_IE */)) {\n this.toggleCustomDialogDropDown();\n }\n if (eventArgs.key === \"Tab\" /* TAB */ && eventArgs.shiftKey && this.expressionsList[0] === this.expressionUI) {\n eventArgs.preventDefault();\n }\n event.stopPropagation();\n };\n IgxExcelStyleDefaultExpressionComponent.decorators = [\n { type: Component, args: [{\n changeDetection: ChangeDetectionStrategy.OnPush,\n preserveWhitespaces: false,\n selector: 'igx-excel-style-default-expression',\n template: \"\\n \\n \\n {{ translateCondition(condition) }}\\n \\n
\\n\\n\\n\\n \\n \\n filter_list\\n \\n\\n \\n\\n\\n\\n \\n\\n\\n\\n\\n\\n \\n {{ grid.resourceStrings.igx_grid_filter_operator_and }}\\n \\n\\n \\n {{ grid.resourceStrings.igx_grid_filter_operator_or }}\\n \\n\\n\"\n }] }\n ];\n /** @nocollapse */\n IgxExcelStyleDefaultExpressionComponent.ctorParameters = function () { return [\n { type: ChangeDetectorRef }\n ]; };\n IgxExcelStyleDefaultExpressionComponent.propDecorators = {\n column: [{ type: Input }],\n expressionUI: [{ type: Input }],\n expressionsList: [{ type: Input }],\n grid: [{ type: Input }],\n displayDensity: [{ type: Input }],\n onExpressionRemoved: [{ type: Output }],\n onLogicOperatorChanged: [{ type: Output }],\n inputGroupConditions: [{ type: ViewChild, args: ['inputGroupConditions', { read: IgxInputGroupComponent, static: true },] }],\n inputValuesDirective: [{ type: ViewChild, args: ['inputValues', { read: IgxInputDirective, static: true },] }],\n dropdownConditions: [{ type: ViewChild, args: ['dropdownConditions', { read: IgxDropDownComponent, static: true },] }],\n logicOperatorButtonGroup: [{ type: ViewChild, args: ['logicOperatorButtonGroup', { read: IgxButtonGroupComponent, static: false },] }]\n };\n return IgxExcelStyleDefaultExpressionComponent;\n}());\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n/**\n * @hidden\n */\nvar IgxExcelStyleDateExpressionComponent = /** @class */ (function (_super) {\n __extends(IgxExcelStyleDateExpressionComponent, _super);\n function IgxExcelStyleDateExpressionComponent() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n Object.defineProperty(IgxExcelStyleDateExpressionComponent.prototype, \"inputValuesElement\", {\n get: /**\n * @protected\n * @return {?}\n */\n function () {\n return this.datePicker.getEditElement();\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxExcelStyleDateExpressionComponent.prototype, \"inputDatePlaceholder\", {\n get: /**\n * @return {?}\n */\n function () {\n return this.grid.resourceStrings['igx_grid_filter_row_date_placeholder'];\n },\n enumerable: true,\n configurable: true\n });\n IgxExcelStyleDateExpressionComponent.decorators = [\n { type: Component, args: [{\n changeDetection: ChangeDetectionStrategy.OnPush,\n preserveWhitespaces: false,\n selector: 'igx-excel-style-date-expression',\n template: \"\\n \\n \\n {{ translateCondition(condition) }}\\n \\n
\\n\\n\\n\\n \\n \\n filter_list\\n \\n\\n \\n\\n\\n\\n \\n \\n \\n \\n \\n\\n\\n\\n\\n\\n \\n {{ grid.resourceStrings.igx_grid_filter_operator_and }}\\n \\n\\n \\n {{ grid.resourceStrings.igx_grid_filter_operator_or }}\\n \\n\\n\"\n }] }\n ];\n IgxExcelStyleDateExpressionComponent.propDecorators = {\n datePicker: [{ type: ViewChild, args: ['datePicker', { read: IgxDatePickerComponent, static: true },] }],\n displayDensity: [{ type: Input }]\n };\n return IgxExcelStyleDateExpressionComponent;\n}(IgxExcelStyleDefaultExpressionComponent));\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n/**\n * @hidden\n */\nvar IgxExcelStyleCustomDialogComponent = /** @class */ (function () {\n function IgxExcelStyleCustomDialogComponent(cdr) {\n this.cdr = cdr;\n this.expressionsList = new Array();\n this._customDialogPositionSettings = {\n verticalDirection: VerticalAlignment.Middle,\n horizontalDirection: HorizontalAlignment.Center,\n horizontalStartPoint: HorizontalAlignment.Center,\n verticalStartPoint: VerticalAlignment.Middle\n };\n this._customDialogOverlaySettings = {\n closeOnOutsideClick: true,\n modal: false,\n positionStrategy: new ConnectedPositioningStrategy(this._customDialogPositionSettings),\n scrollStrategy: new AbsoluteScrollStrategy()\n };\n }\n /**\n * @return {?}\n */\n IgxExcelStyleCustomDialogComponent.prototype.ngAfterViewInit = /**\n * @return {?}\n */\n function () {\n this._customDialogOverlaySettings.outlet = this.grid.outlet;\n };\n Object.defineProperty(IgxExcelStyleCustomDialogComponent.prototype, \"template\", {\n get: /**\n * @return {?}\n */\n function () {\n if (this.column.dataType === DataType.Date) {\n return this.dateExpressionTemplate;\n }\n return this.defaultExpressionTemplate;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxExcelStyleCustomDialogComponent.prototype, \"grid\", {\n get: /**\n * @return {?}\n */\n function () {\n return this.filteringService.grid;\n },\n enumerable: true,\n configurable: true\n });\n /**\n * @return {?}\n */\n IgxExcelStyleCustomDialogComponent.prototype.onCustomDialogOpening = /**\n * @return {?}\n */\n function () {\n if (this.selectedOperator) {\n this.createInitialExpressionUIElement();\n }\n };\n /**\n * @return {?}\n */\n IgxExcelStyleCustomDialogComponent.prototype.onCustomDialogOpened = /**\n * @return {?}\n */\n function () {\n if (this.expressionComponents.first) {\n this.expressionComponents.first.focus();\n }\n };\n /**\n * @return {?}\n */\n IgxExcelStyleCustomDialogComponent.prototype.open = /**\n * @return {?}\n */\n function () {\n this._customDialogOverlaySettings.positionStrategy.settings.target =\n this.grid.rootGrid ? this.grid.rootGrid.nativeElement : this.grid.nativeElement;\n this.toggle.open(this._customDialogOverlaySettings);\n };\n /**\n * @return {?}\n */\n IgxExcelStyleCustomDialogComponent.prototype.onClearButtonClick = /**\n * @return {?}\n */\n function () {\n this.filteringService.clearFilter(this.column.field);\n this.createInitialExpressionUIElement();\n this.cdr.detectChanges();\n };\n /**\n * @return {?}\n */\n IgxExcelStyleCustomDialogComponent.prototype.closeDialog = /**\n * @return {?}\n */\n function () {\n if (this.overlayComponentId) {\n this.overlayService.hide(this.overlayComponentId);\n }\n };\n /**\n * @return {?}\n */\n IgxExcelStyleCustomDialogComponent.prototype.onApplyButtonClick = /**\n * @return {?}\n */\n function () {\n this.expressionsList = this.expressionsList.filter(function (element) { return element.expression.condition &&\n (element.expression.searchVal || element.expression.searchVal === 0 || element.expression.condition.isUnary); });\n if (this.expressionsList.length > 0) {\n this.expressionsList[0].beforeOperator = null;\n this.expressionsList[this.expressionsList.length - 1].afterOperator = null;\n }\n this.filteringService.filterInternal(this.column.field, this.expressionsList);\n this.closeDialog();\n };\n /**\n * @return {?}\n */\n IgxExcelStyleCustomDialogComponent.prototype.onAddButtonClick = /**\n * @return {?}\n */\n function () {\n /** @type {?} */\n var exprUI = new ExpressionUI();\n exprUI.expression = {\n condition: null,\n fieldName: this.column.field,\n ignoreCase: this.column.filteringIgnoreCase,\n searchVal: null\n };\n this.expressionsList[this.expressionsList.length - 1].afterOperator = FilteringLogic.And;\n exprUI.beforeOperator = this.expressionsList[this.expressionsList.length - 1].afterOperator;\n this.expressionsList.push(exprUI);\n this.markChildrenForCheck();\n this.scrollToBottom();\n };\n /**\n * @param {?} event\n * @return {?}\n */\n IgxExcelStyleCustomDialogComponent.prototype.onExpressionRemoved = /**\n * @param {?} event\n * @return {?}\n */\n function (event) {\n /** @type {?} */\n var indexToRemove = this.expressionsList.indexOf(event);\n if (indexToRemove === 0 && this.expressionsList.length > 1) {\n this.expressionsList[1].beforeOperator = null;\n }\n else if (indexToRemove === this.expressionsList.length - 1) {\n this.expressionsList[indexToRemove - 1].afterOperator = null;\n }\n else {\n this.expressionsList[indexToRemove - 1].afterOperator = this.expressionsList[indexToRemove + 1].beforeOperator;\n this.expressionsList[0].beforeOperator = null;\n this.expressionsList[this.expressionsList.length - 1].afterOperator = null;\n }\n this.expressionsList.splice(indexToRemove, 1);\n this.cdr.detectChanges();\n this.markChildrenForCheck();\n };\n /**\n * @param {?} event\n * @return {?}\n */\n IgxExcelStyleCustomDialogComponent.prototype.onLogicOperatorChanged = /**\n * @param {?} event\n * @return {?}\n */\n function (event) {\n /** @type {?} */\n var index = this.expressionsList.indexOf(event.target);\n event.target.afterOperator = event.newValue;\n if (index + 1 < this.expressionsList.length) {\n this.expressionsList[index + 1].beforeOperator = event.newValue;\n }\n };\n /**\n * @param {?} eventArgs\n * @return {?}\n */\n IgxExcelStyleCustomDialogComponent.prototype.onKeyDown = /**\n * @param {?} eventArgs\n * @return {?}\n */\n function (eventArgs) {\n eventArgs.stopPropagation();\n };\n /**\n * @param {?} eventArgs\n * @return {?}\n */\n IgxExcelStyleCustomDialogComponent.prototype.onApplyButtonKeyDown = /**\n * @param {?} eventArgs\n * @return {?}\n */\n function (eventArgs) {\n if (eventArgs.key === \"Tab\" /* TAB */ && !eventArgs.shiftKey) {\n eventArgs.stopPropagation();\n eventArgs.preventDefault();\n }\n };\n /**\n * @private\n * @param {?} conditionName\n * @return {?}\n */\n IgxExcelStyleCustomDialogComponent.prototype.createCondition = /**\n * @private\n * @param {?} conditionName\n * @return {?}\n */\n function (conditionName) {\n switch (this.column.dataType) {\n case DataType.Boolean:\n return IgxBooleanFilteringOperand.instance().condition(conditionName);\n case DataType.Number:\n return IgxNumberFilteringOperand.instance().condition(conditionName);\n case DataType.Date:\n return IgxDateFilteringOperand.instance().condition(conditionName);\n default:\n return IgxStringFilteringOperand.instance().condition(conditionName);\n }\n };\n /**\n * @private\n * @return {?}\n */\n IgxExcelStyleCustomDialogComponent.prototype.markChildrenForCheck = /**\n * @private\n * @return {?}\n */\n function () {\n this.expressionComponents.forEach(function (x) { return x.cdr.markForCheck(); });\n this.expressionDateComponents.forEach(function (x) { return x.cdr.markForCheck(); });\n };\n /**\n * @private\n * @return {?}\n */\n IgxExcelStyleCustomDialogComponent.prototype.createInitialExpressionUIElement = /**\n * @private\n * @return {?}\n */\n function () {\n this.expressionsList = [];\n /** @type {?} */\n var firstExprUI = new ExpressionUI();\n firstExprUI.expression = {\n condition: this.createCondition(this.selectedOperator),\n fieldName: this.column.field,\n ignoreCase: this.column.filteringIgnoreCase,\n searchVal: null\n };\n firstExprUI.afterOperator = FilteringLogic.And;\n this.expressionsList.push(firstExprUI);\n /** @type {?} */\n var secondExprUI = new ExpressionUI();\n secondExprUI.expression = {\n condition: null,\n fieldName: this.column.field,\n ignoreCase: this.column.filteringIgnoreCase,\n searchVal: null\n };\n secondExprUI.beforeOperator = FilteringLogic.And;\n this.expressionsList.push(secondExprUI);\n };\n /**\n * @private\n * @return {?}\n */\n IgxExcelStyleCustomDialogComponent.prototype.scrollToBottom = /**\n * @private\n * @return {?}\n */\n function () {\n var _this = this;\n requestAnimationFrame(function () {\n _this.expressionsContainer.nativeElement.scrollTop = _this.expressionsContainer.nativeElement.scrollHeight;\n });\n };\n IgxExcelStyleCustomDialogComponent.decorators = [\n { type: Component, args: [{\n changeDetection: ChangeDetectionStrategy.OnPush,\n preserveWhitespaces: false,\n selector: 'igx-excel-style-custom-dialog',\n template: \"
\\n
\\n

\\n {{ grid.resourceStrings.igx_grid_excel_custom_dialog_header }}{{ column.header || column.field }}\\n

\\n
\\n\\n
\\n \\n \\n \\n \\n\\n \\n \\n \\n \\n\\n \\n
\\n\\n
\\n \\n\\n
\\n \\n \\n
\\n
\\n
\\n\"\n }] }\n ];\n /** @nocollapse */\n IgxExcelStyleCustomDialogComponent.ctorParameters = function () { return [\n { type: ChangeDetectorRef }\n ]; };\n IgxExcelStyleCustomDialogComponent.propDecorators = {\n expressionsList: [{ type: Input }],\n column: [{ type: Input }],\n selectedOperator: [{ type: Input }],\n filteringService: [{ type: Input }],\n overlayComponentId: [{ type: Input }],\n overlayService: [{ type: Input }],\n displayDensity: [{ type: Input }],\n expressionComponents: [{ type: ViewChildren, args: [IgxExcelStyleDefaultExpressionComponent,] }],\n expressionDateComponents: [{ type: ViewChildren, args: [IgxExcelStyleDateExpressionComponent,] }],\n toggle: [{ type: ViewChild, args: ['toggle', { read: IgxToggleDirective, static: true },] }],\n defaultExpressionTemplate: [{ type: ViewChild, args: ['defaultExpressionTemplate', { read: TemplateRef, static: false },] }],\n dateExpressionTemplate: [{ type: ViewChild, args: ['dateExpressionTemplate', { read: TemplateRef, static: false },] }],\n expressionsContainer: [{ type: ViewChild, args: ['expressionsContainer', { static: true },] }]\n };\n return IgxExcelStyleCustomDialogComponent;\n}());\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n/**\n * @hidden\n */\nvar IgxExcelStyleSortingComponent = /** @class */ (function () {\n function IgxExcelStyleSortingComponent() {\n }\n /**\n * @param {?} sortDirection\n * @return {?}\n */\n IgxExcelStyleSortingComponent.prototype.onSortButtonClicked = /**\n * @param {?} sortDirection\n * @return {?}\n */\n function (sortDirection) {\n if (this.sortButtonGroup.selectedIndexes.length === 0) {\n if (this.grid.isColumnGrouped(this.column.field)) {\n this.selectButton(sortDirection);\n }\n else {\n this.grid.clearSort(this.column.field);\n }\n }\n else {\n this.grid.sort({ fieldName: this.column.field, dir: sortDirection, ignoreCase: true });\n }\n };\n /**\n * @param {?} sortDirection\n * @return {?}\n */\n IgxExcelStyleSortingComponent.prototype.selectButton = /**\n * @param {?} sortDirection\n * @return {?}\n */\n function (sortDirection) {\n if (sortDirection === 1) {\n this.sortButtonGroup.selectButton(0);\n }\n else {\n this.sortButtonGroup.selectButton(1);\n }\n };\n IgxExcelStyleSortingComponent.decorators = [\n { type: Component, args: [{\n changeDetection: ChangeDetectionStrategy.OnPush,\n preserveWhitespaces: false,\n selector: 'igx-excel-style-sorting',\n template: \"
\\n {{ grid.resourceStrings.igx_grid_excel_filter_sorting_header }}\\n
\\n\\n \\n arrow_upwards\\n \\n {{ displayDensity==='compact'?\\n grid.resourceStrings.igx_grid_excel_filter_sorting_asc_short:\\n grid.resourceStrings.igx_grid_excel_filter_sorting_asc }}\\n \\n \\n\\n \\n arrow_downwards\\n \\n {{ displayDensity==='compact'?\\n grid.resourceStrings.igx_grid_excel_filter_sorting_desc_short:\\n grid.resourceStrings.igx_grid_excel_filter_sorting_desc\\n }}\\n \\n \\n\\n\"\n }] }\n ];\n /** @nocollapse */\n IgxExcelStyleSortingComponent.ctorParameters = function () { return []; };\n IgxExcelStyleSortingComponent.propDecorators = {\n column: [{ type: Input }],\n grid: [{ type: Input }],\n displayDensity: [{ type: Input }],\n sortButtonGroup: [{ type: ViewChild, args: ['sortButtonGroup', { read: IgxButtonGroupComponent, static: true },] }]\n };\n return IgxExcelStyleSortingComponent;\n}());\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n/**\n * @hidden\n */\nvar /**\n * @hidden\n */\nFilterListItem = /** @class */ (function () {\n function FilterListItem() {\n this.isSpecial = false;\n this.isBlanks = false;\n }\n return FilterListItem;\n}());\nvar IgxExcelStyleSortingTemplateDirective = /** @class */ (function () {\n function IgxExcelStyleSortingTemplateDirective(template) {\n this.template = template;\n }\n IgxExcelStyleSortingTemplateDirective.decorators = [\n { type: Directive, args: [{\n selector: '[igxExcelStyleSorting]'\n },] }\n ];\n /** @nocollapse */\n IgxExcelStyleSortingTemplateDirective.ctorParameters = function () { return [\n { type: TemplateRef }\n ]; };\n return IgxExcelStyleSortingTemplateDirective;\n}());\nvar IgxExcelStyleMovingTemplateDirective = /** @class */ (function () {\n function IgxExcelStyleMovingTemplateDirective(template) {\n this.template = template;\n }\n IgxExcelStyleMovingTemplateDirective.decorators = [\n { type: Directive, args: [{\n selector: '[igxExcelStyleMoving]'\n },] }\n ];\n /** @nocollapse */\n IgxExcelStyleMovingTemplateDirective.ctorParameters = function () { return [\n { type: TemplateRef }\n ]; };\n return IgxExcelStyleMovingTemplateDirective;\n}());\nvar IgxExcelStyleHidingTemplateDirective = /** @class */ (function () {\n function IgxExcelStyleHidingTemplateDirective(template) {\n this.template = template;\n }\n IgxExcelStyleHidingTemplateDirective.decorators = [\n { type: Directive, args: [{\n selector: '[igxExcelStyleHiding]'\n },] }\n ];\n /** @nocollapse */\n IgxExcelStyleHidingTemplateDirective.ctorParameters = function () { return [\n { type: TemplateRef }\n ]; };\n return IgxExcelStyleHidingTemplateDirective;\n}());\nvar IgxExcelStylePinningTemplateDirective = /** @class */ (function () {\n function IgxExcelStylePinningTemplateDirective(template) {\n this.template = template;\n }\n IgxExcelStylePinningTemplateDirective.decorators = [\n { type: Directive, args: [{\n selector: '[igxExcelStylePinning]'\n },] }\n ];\n /** @nocollapse */\n IgxExcelStylePinningTemplateDirective.ctorParameters = function () { return [\n { type: TemplateRef }\n ]; };\n return IgxExcelStylePinningTemplateDirective;\n}());\n/**\n * @hidden\n */\nvar IgxGridExcelStyleFilteringComponent = /** @class */ (function () {\n function IgxGridExcelStyleFilteringComponent(cdr) {\n this.cdr = cdr;\n this.shouldOpenSubMenu = true;\n this.expressionsList = new Array();\n this.destroy$ = new Subject();\n this.containsNullOrEmpty = false;\n this.selectAllSelected = true;\n this.selectAllIndeterminate = false;\n this.filterValues = new Set();\n this.columnMoving = new Subscription();\n this.listData = new Array();\n this.uniqueValues = [];\n this._subMenuPositionSettings = {\n verticalStartPoint: VerticalAlignment.Top\n };\n this._subMenuOverlaySettings = {\n closeOnOutsideClick: true,\n modal: false,\n positionStrategy: new AutoPositionStrategy(this._subMenuPositionSettings),\n scrollStrategy: new AbsoluteScrollStrategy()\n };\n this.className = 'igx-excel-filter';\n }\n Object.defineProperty(IgxGridExcelStyleFilteringComponent.prototype, \"grid\", {\n get: /**\n * @return {?}\n */\n function () {\n return this.filteringService.grid;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxGridExcelStyleFilteringComponent.prototype, \"conditions\", {\n get: /**\n * @return {?}\n */\n function () {\n return this.column.filters.conditionList();\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxGridExcelStyleFilteringComponent.prototype, \"subMenuText\", {\n get: /**\n * @return {?}\n */\n function () {\n switch (this.column.dataType) {\n case DataType.Boolean:\n return this.grid.resourceStrings.igx_grid_excel_boolean_filter;\n case DataType.Number:\n return this.grid.resourceStrings.igx_grid_excel_number_filter;\n case DataType.Date:\n return this.grid.resourceStrings.igx_grid_excel_date_filter;\n default:\n return this.grid.resourceStrings.igx_grid_excel_text_filter;\n }\n },\n enumerable: true,\n configurable: true\n });\n /**\n * @return {?}\n */\n IgxGridExcelStyleFilteringComponent.prototype.ngOnInit = /**\n * @return {?}\n */\n function () {\n this.isColumnPinnable = this.column.pinnable;\n };\n /**\n * @return {?}\n */\n IgxGridExcelStyleFilteringComponent.prototype.ngOnDestroy = /**\n * @return {?}\n */\n function () {\n this.destroy$.next(true);\n this.destroy$.complete();\n };\n /**\n * @return {?}\n */\n IgxGridExcelStyleFilteringComponent.prototype.ngAfterViewInit = /**\n * @return {?}\n */\n function () {\n var _this = this;\n this.expressionsList = new Array();\n this.filteringService.generateExpressionsList(this.column.filteringExpressionsTree, this.grid.filteringLogic, this.expressionsList);\n if (this.expressionsList && this.expressionsList.length &&\n this.expressionsList[0].expression.condition.name !== 'in') {\n this.customDialog.expressionsList = this.expressionsList;\n }\n this.populateColumnData();\n if (this.excelStyleSorting) {\n /** @type {?} */\n var se = this.grid.sortingExpressions.find(function (expr) { return expr.fieldName === _this.column.field; });\n if (se) {\n this.excelStyleSorting.selectButton(se.dir);\n }\n }\n requestAnimationFrame(function () {\n _this.excelStyleSearch.searchInput.nativeElement.focus();\n });\n };\n /**\n * @return {?}\n */\n IgxGridExcelStyleFilteringComponent.prototype.clearFilterClass = /**\n * @return {?}\n */\n function () {\n if (this.column.filteringExpressionsTree) {\n return 'igx-excel-filter__actions-clear';\n }\n return 'igx-excel-filter__actions-clear--disabled';\n };\n /**\n * @return {?}\n */\n IgxGridExcelStyleFilteringComponent.prototype.pinClass = /**\n * @return {?}\n */\n function () {\n return this.isColumnPinnable ? 'igx-excel-filter__actions-pin' : 'igx-excel-filter__actions-pin--disabled';\n };\n /**\n * @param {?} column\n * @param {?} filteringService\n * @param {?} overlayService\n * @param {?} overlayComponentId\n * @return {?}\n */\n IgxGridExcelStyleFilteringComponent.prototype.initialize = /**\n * @param {?} column\n * @param {?} filteringService\n * @param {?} overlayService\n * @param {?} overlayComponentId\n * @return {?}\n */\n function (column, filteringService, overlayService, overlayComponentId) {\n var _this = this;\n this.column = column;\n this.filteringService = filteringService;\n this.overlayService = overlayService;\n this.overlayComponentId = overlayComponentId;\n this._subMenuOverlaySettings.outlet = this.grid.outlet;\n this.columnMoving = this.grid.onColumnMoving.pipe(takeUntil(this.destroy$)).subscribe(function () {\n _this.closeDropdown();\n });\n };\n /**\n * Returns the filtering operation condition for a given value.\n */\n /**\n * Returns the filtering operation condition for a given value.\n * @param {?} value\n * @return {?}\n */\n IgxGridExcelStyleFilteringComponent.prototype.getCondition = /**\n * Returns the filtering operation condition for a given value.\n * @param {?} value\n * @return {?}\n */\n function (value) {\n return this.column.filters.condition(value);\n };\n /**\n * Returns the translated condition name for a given value.\n */\n /**\n * Returns the translated condition name for a given value.\n * @param {?} value\n * @return {?}\n */\n IgxGridExcelStyleFilteringComponent.prototype.translateCondition = /**\n * Returns the translated condition name for a given value.\n * @param {?} value\n * @return {?}\n */\n function (value) {\n return this.grid.resourceStrings[\"igx_grid_filter_\" + this.getCondition(value).name] || value;\n };\n /**\n * @return {?}\n */\n IgxGridExcelStyleFilteringComponent.prototype.onPin = /**\n * @return {?}\n */\n function () {\n this.column.pinned = !this.column.pinned;\n this.closeDropdown();\n };\n /**\n * @return {?}\n */\n IgxGridExcelStyleFilteringComponent.prototype.onHide = /**\n * @return {?}\n */\n function () {\n this.column.hidden = true;\n this.grid.onColumnVisibilityChanged.emit({ column: this.column, newValue: true });\n this.closeDropdown();\n };\n /**\n * @param {?} eventArgs\n * @return {?}\n */\n IgxGridExcelStyleFilteringComponent.prototype.onTextFilterClick = /**\n * @param {?} eventArgs\n * @return {?}\n */\n function (eventArgs) {\n if (this.shouldOpenSubMenu) {\n this._subMenuOverlaySettings.positionStrategy.settings.target = eventArgs.currentTarget;\n /** @type {?} */\n var gridRect = this.grid.nativeElement.getBoundingClientRect();\n /** @type {?} */\n var dropdownRect = this.mainDropdown.nativeElement.getBoundingClientRect();\n /** @type {?} */\n var x = dropdownRect.left + dropdownRect.width;\n /** @type {?} */\n var x1 = gridRect.left + gridRect.width;\n x += window.pageXOffset;\n x1 += window.pageXOffset;\n if (Math.abs(x - x1) < 200) {\n this._subMenuOverlaySettings.positionStrategy.settings.horizontalDirection = HorizontalAlignment.Left;\n this._subMenuOverlaySettings.positionStrategy.settings.horizontalStartPoint = HorizontalAlignment.Left;\n }\n else {\n this._subMenuOverlaySettings.positionStrategy.settings.horizontalDirection = HorizontalAlignment.Right;\n this._subMenuOverlaySettings.positionStrategy.settings.horizontalStartPoint = HorizontalAlignment.Right;\n }\n this.subMenu.open(this._subMenuOverlaySettings);\n this.shouldOpenSubMenu = false;\n }\n };\n /**\n * @param {?} eventArgs\n * @return {?}\n */\n IgxGridExcelStyleFilteringComponent.prototype.onTextFilterKeyDown = /**\n * @param {?} eventArgs\n * @return {?}\n */\n function (eventArgs) {\n if (eventArgs.key === \"Enter\" /* ENTER */) {\n this.onTextFilterClick(eventArgs);\n }\n };\n /**\n * @return {?}\n */\n IgxGridExcelStyleFilteringComponent.prototype.onSubMenuClosed = /**\n * @return {?}\n */\n function () {\n var _this = this;\n requestAnimationFrame(function () {\n _this.shouldOpenSubMenu = true;\n });\n };\n /**\n * @param {?} eventArgs\n * @return {?}\n */\n IgxGridExcelStyleFilteringComponent.prototype.onSubMenuSelection = /**\n * @param {?} eventArgs\n * @return {?}\n */\n function (eventArgs) {\n this.customDialog.selectedOperator = eventArgs.newSelection.value;\n eventArgs.cancel = true;\n this.mainDropdown.nativeElement.style.display = 'none';\n this.subMenu.close();\n this.customDialog.open();\n };\n /**\n * @private\n * @return {?}\n */\n IgxGridExcelStyleFilteringComponent.prototype.areExpressionsSelectable = /**\n * @private\n * @return {?}\n */\n function () {\n if (this.expressionsList.length === 1 &&\n (this.expressionsList[0].expression.condition.name === 'equals' ||\n this.expressionsList[0].expression.condition.name === 'true' ||\n this.expressionsList[0].expression.condition.name === 'false' ||\n this.expressionsList[0].expression.condition.name === 'empty' ||\n this.expressionsList[0].expression.condition.name === 'in')) {\n return true;\n }\n /** @type {?} */\n var selectableExpressionsCount = this.expressionsList.filter(function (exp) {\n return (exp.beforeOperator === 1 || exp.afterOperator === 1) &&\n (exp.expression.condition.name === 'equals' ||\n exp.expression.condition.name === 'true' ||\n exp.expression.condition.name === 'false' ||\n exp.expression.condition.name === 'empty' ||\n exp.expression.condition.name === 'in');\n }).length;\n return selectableExpressionsCount === this.expressionsList.length;\n };\n /**\n * @private\n * @return {?}\n */\n IgxGridExcelStyleFilteringComponent.prototype.areExpressionsValuesInTheList = /**\n * @private\n * @return {?}\n */\n function () {\n if (this.column.dataType === DataType.Boolean) {\n return true;\n }\n if (this.filterValues.size === 1) {\n /** @type {?} */\n var firstValue = this.filterValues.values().next().value;\n if (!firstValue && firstValue !== 0) {\n return true;\n }\n }\n for (var index = 0; index < this.uniqueValues.length; index++) {\n if (this.filterValues.has(this.uniqueValues[index])) {\n return true;\n }\n }\n return false;\n };\n /**\n * @return {?}\n */\n IgxGridExcelStyleFilteringComponent.prototype.populateColumnData = /**\n * @return {?}\n */\n function () {\n if (this.grid.uniqueColumnValuesStrategy) {\n this.renderColumnValuesRemotely();\n }\n else {\n this.renderColumnValuesFromData();\n }\n };\n /**\n * @private\n * @return {?}\n */\n IgxGridExcelStyleFilteringComponent.prototype.renderColumnValuesRemotely = /**\n * @private\n * @return {?}\n */\n function () {\n var _this = this;\n this.excelStyleSearch.isLoading = true;\n /** @type {?} */\n var expressionsTree = this.getColumnFilterExpressionsTree();\n this.grid.uniqueColumnValuesStrategy(this.column, expressionsTree, function (colVals) {\n /** @type {?} */\n var columnValues = (_this.column.dataType === DataType.Date) ?\n colVals.map(function (val) { return val ? val.toDateString() : val; }) : colVals;\n _this.renderValues(columnValues);\n _this.excelStyleSearch.isLoading = false;\n _this.excelStyleSearch.refreshSize();\n });\n };\n /**\n * @return {?}\n */\n IgxGridExcelStyleFilteringComponent.prototype.renderColumnValuesFromData = /**\n * @return {?}\n */\n function () {\n /** @type {?} */\n var data = this.column.gridAPI.get_all_data(this.grid.id);\n /** @type {?} */\n var expressionsTree = this.getColumnFilterExpressionsTree();\n if (expressionsTree.filteringOperands.length) {\n /** @type {?} */\n var state = { expressionsTree: expressionsTree };\n data = DataUtil.filter(cloneArray(data), state);\n }\n /** @type {?} */\n var columnField = this.column.field;\n /** @type {?} */\n var columnValues = (this.column.dataType === DataType.Date) ?\n data.map(function (record) { return record[columnField] ? record[columnField].toDateString() : record[columnField]; }) :\n data.map(function (record) { return record[columnField]; });\n this.renderValues(columnValues);\n };\n /**\n * @private\n * @param {?} columnValues\n * @return {?}\n */\n IgxGridExcelStyleFilteringComponent.prototype.renderValues = /**\n * @private\n * @param {?} columnValues\n * @return {?}\n */\n function (columnValues) {\n this.generateUniqueValues(columnValues);\n this.generateFilterValues(this.column.dataType === DataType.Date);\n this.generateListData();\n };\n /**\n * @private\n * @param {?} columnValues\n * @return {?}\n */\n IgxGridExcelStyleFilteringComponent.prototype.generateUniqueValues = /**\n * @private\n * @param {?} columnValues\n * @return {?}\n */\n function (columnValues) {\n this.uniqueValues = Array.from(new Set(columnValues));\n };\n /**\n * @private\n * @param {?=} isDateColumn\n * @return {?}\n */\n IgxGridExcelStyleFilteringComponent.prototype.generateFilterValues = /**\n * @private\n * @param {?=} isDateColumn\n * @return {?}\n */\n function (isDateColumn) {\n if (isDateColumn === void 0) { isDateColumn = false; }\n if (isDateColumn) {\n this.filterValues = new Set(this.expressionsList.reduce(function (arr, e) {\n if (e.expression.condition.name === 'in') {\n return __spread(arr, Array.from(((/** @type {?} */ (e.expression.searchVal))).values()).map(function (v) {\n return new Date(v).toDateString();\n }));\n }\n return __spread(arr, [e.expression.searchVal ? e.expression.searchVal.toDateString() : e.expression.searchVal]);\n }, []));\n }\n else {\n this.filterValues = new Set(this.expressionsList.reduce(function (arr, e) {\n if (e.expression.condition.name === 'in') {\n return __spread(arr, Array.from(((/** @type {?} */ (e.expression.searchVal))).values()));\n }\n return __spread(arr, [e.expression.searchVal]);\n }, []));\n }\n };\n /**\n * @private\n * @return {?}\n */\n IgxGridExcelStyleFilteringComponent.prototype.generateListData = /**\n * @private\n * @return {?}\n */\n function () {\n var _this = this;\n this.listData = new Array();\n /** @type {?} */\n var shouldUpdateSelection = this.areExpressionsSelectable() && this.areExpressionsValuesInTheList();\n if (this.column.dataType === DataType.Boolean) {\n this.addBooleanItems();\n }\n else {\n this.addItems(shouldUpdateSelection);\n }\n this.listData.sort(function (a, b) { return _this.sortData(a, b); });\n if (this.column.dataType === DataType.Date) {\n this.uniqueValues = this.uniqueValues.map(function (value) { return new Date(value); });\n }\n if (this.containsNullOrEmpty) {\n this.addBlanksItem(shouldUpdateSelection);\n }\n this.addSelectAllItem();\n if (!((/** @type {?} */ (this.cdr))).destroyed) {\n this.cdr.detectChanges();\n }\n };\n /**\n * @private\n * @return {?}\n */\n IgxGridExcelStyleFilteringComponent.prototype.getColumnFilterExpressionsTree = /**\n * @private\n * @return {?}\n */\n function () {\n var e_1, _a;\n /** @type {?} */\n var gridExpressionsTree = this.grid.filteringExpressionsTree;\n /** @type {?} */\n var expressionsTree = new FilteringExpressionsTree(gridExpressionsTree.operator, gridExpressionsTree.fieldName);\n try {\n for (var _b = __values(gridExpressionsTree.filteringOperands), _c = _b.next(); !_c.done; _c = _b.next()) {\n var operand = _c.value;\n if (operand instanceof FilteringExpressionsTree) {\n /** @type {?} */\n var columnExprTree = (/** @type {?} */ (operand));\n if (columnExprTree.fieldName === this.column.field) {\n break;\n }\n }\n expressionsTree.filteringOperands.push(operand);\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n }\n finally { if (e_1) throw e_1.error; }\n }\n return expressionsTree;\n };\n /**\n * @private\n * @return {?}\n */\n IgxGridExcelStyleFilteringComponent.prototype.addBooleanItems = /**\n * @private\n * @return {?}\n */\n function () {\n var _this = this;\n this.selectAllSelected = true;\n this.selectAllIndeterminate = false;\n this.uniqueValues.forEach(function (element) {\n /** @type {?} */\n var filterListItem = new FilterListItem();\n if (element !== undefined && element !== null && element !== '') {\n if (_this.column.filteringExpressionsTree) {\n if (element === true && _this.expressionsList.find(function (exp) { return exp.expression.condition.name === 'true'; })) {\n filterListItem.isSelected = true;\n _this.selectAllIndeterminate = true;\n }\n else if (element === false && _this.expressionsList.find(function (exp) { return exp.expression.condition.name === 'false'; })) {\n filterListItem.isSelected = true;\n _this.selectAllIndeterminate = true;\n }\n else {\n filterListItem.isSelected = false;\n }\n }\n else {\n filterListItem.isSelected = true;\n }\n filterListItem.value = element;\n filterListItem.label = element;\n filterListItem.indeterminate = false;\n _this.listData.push(filterListItem);\n }\n else {\n _this.containsNullOrEmpty = true;\n }\n });\n };\n /**\n * @private\n * @param {?} shouldUpdateSelection\n * @return {?}\n */\n IgxGridExcelStyleFilteringComponent.prototype.addItems = /**\n * @private\n * @param {?} shouldUpdateSelection\n * @return {?}\n */\n function (shouldUpdateSelection) {\n var _this = this;\n this.selectAllSelected = true;\n this.selectAllIndeterminate = false;\n /** @type {?} */\n var numberPipe = new IgxDecimalPipeComponent(this.column.grid.locale);\n /** @type {?} */\n var datePipe = new IgxDatePipeComponent(this.column.grid.locale);\n this.uniqueValues.forEach(function (element) {\n if (element !== undefined && element !== null && element !== '') {\n /** @type {?} */\n var filterListItem = new FilterListItem();\n if (_this.column.filteringExpressionsTree) {\n if (shouldUpdateSelection) {\n if (_this.filterValues.has(element)) {\n filterListItem.isSelected = true;\n }\n else {\n filterListItem.isSelected = false;\n }\n _this.selectAllIndeterminate = true;\n }\n else {\n filterListItem.isSelected = false;\n _this.selectAllSelected = false;\n }\n }\n else {\n filterListItem.isSelected = true;\n }\n if (_this.column.dataType === DataType.Date) {\n /** @type {?} */\n var date = new Date(element);\n filterListItem.value = date;\n filterListItem.label = _this.column.formatter ?\n _this.column.formatter(date) :\n datePipe.transform(date, _this.column.grid.locale);\n }\n else if (_this.column.dataType === DataType.Number) {\n filterListItem.value = element;\n filterListItem.label = _this.column.formatter ?\n _this.column.formatter(element) :\n numberPipe.transform(element, _this.column.grid.locale);\n }\n else {\n filterListItem.value = element;\n filterListItem.label = _this.column.formatter ?\n _this.column.formatter(element) :\n element;\n }\n filterListItem.indeterminate = false;\n _this.listData.push(filterListItem);\n }\n else {\n _this.containsNullOrEmpty = true;\n }\n });\n };\n /**\n * @private\n * @return {?}\n */\n IgxGridExcelStyleFilteringComponent.prototype.addSelectAllItem = /**\n * @private\n * @return {?}\n */\n function () {\n /** @type {?} */\n var selectAll = new FilterListItem();\n selectAll.isSelected = this.selectAllSelected;\n selectAll.value = this.grid.resourceStrings.igx_grid_excel_select_all;\n selectAll.label = this.grid.resourceStrings.igx_grid_excel_select_all;\n selectAll.indeterminate = this.selectAllIndeterminate;\n selectAll.isSpecial = true;\n this.listData.unshift(selectAll);\n };\n /**\n * @private\n * @param {?} shouldUpdateSelection\n * @return {?}\n */\n IgxGridExcelStyleFilteringComponent.prototype.addBlanksItem = /**\n * @private\n * @param {?} shouldUpdateSelection\n * @return {?}\n */\n function (shouldUpdateSelection) {\n /** @type {?} */\n var blanks = new FilterListItem();\n if (this.column.filteringExpressionsTree) {\n if (shouldUpdateSelection) {\n if (this.filterValues.has(null)) {\n blanks.isSelected = true;\n }\n else {\n blanks.isSelected = false;\n }\n }\n }\n else {\n blanks.isSelected = true;\n }\n blanks.value = null;\n blanks.label = this.grid.resourceStrings.igx_grid_excel_blanks;\n blanks.indeterminate = false;\n blanks.isSpecial = true;\n blanks.isBlanks = true;\n this.listData.unshift(blanks);\n };\n /**\n * @private\n * @param {?} a\n * @param {?} b\n * @return {?}\n */\n IgxGridExcelStyleFilteringComponent.prototype.sortData = /**\n * @private\n * @param {?} a\n * @param {?} b\n * @return {?}\n */\n function (a, b) {\n /** @type {?} */\n var valueA = a.value;\n /** @type {?} */\n var valueB = b.value;\n if (typeof (a) === DataType.String) {\n valueA = a.value.toUpperCase();\n valueB = b.value.toUpperCase();\n }\n if (valueA < valueB) {\n return -1;\n }\n else if (valueA > valueB) {\n return 1;\n }\n else {\n return 0;\n }\n };\n /**\n * @private\n * @return {?}\n */\n IgxGridExcelStyleFilteringComponent.prototype.selectAllFilterItems = /**\n * @private\n * @return {?}\n */\n function () {\n this.listData.forEach(function (filterListItem) {\n filterListItem.isSelected = true;\n filterListItem.indeterminate = false;\n });\n this.excelStyleSearch.cdr.detectChanges();\n };\n Object.defineProperty(IgxGridExcelStyleFilteringComponent.prototype, \"sortingTemplate\", {\n // TODO: sort members by access modifier\n get: \n // TODO: sort members by access modifier\n /**\n * @return {?}\n */\n function () {\n if (this.grid.excelStyleSortingTemplateDirective) {\n return this.grid.excelStyleSortingTemplateDirective.template;\n }\n else {\n return this.defaultExcelStyleSortingTemplate;\n }\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxGridExcelStyleFilteringComponent.prototype, \"movingTemplate\", {\n get: /**\n * @return {?}\n */\n function () {\n if (this.grid.excelStyleMovingTemplateDirective) {\n return this.grid.excelStyleMovingTemplateDirective.template;\n }\n else {\n return this.defaultExcelStyleMovingTemplate;\n }\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxGridExcelStyleFilteringComponent.prototype, \"pinningTemplate\", {\n get: /**\n * @return {?}\n */\n function () {\n if (this.grid.excelStylePinningTemplateDirective) {\n return this.grid.excelStylePinningTemplateDirective.template;\n }\n else {\n return this.defaultExcelStylePinningTemplate;\n }\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxGridExcelStyleFilteringComponent.prototype, \"hidingTemplate\", {\n get: /**\n * @return {?}\n */\n function () {\n if (this.grid.excelStyleHidingTemplateDirective) {\n return this.grid.excelStyleHidingTemplateDirective.template;\n }\n else {\n return this.defaultExcelStyleHidingTemplate;\n }\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxGridExcelStyleFilteringComponent.prototype, \"applyButtonDisabled\", {\n get: /**\n * @return {?}\n */\n function () {\n return this.listData[0] && !this.listData[0].isSelected && !this.listData[0].indeterminate;\n },\n enumerable: true,\n configurable: true\n });\n /**\n * @return {?}\n */\n IgxGridExcelStyleFilteringComponent.prototype.applyFilter = /**\n * @return {?}\n */\n function () {\n var _this = this;\n /** @type {?} */\n var filterTree = new FilteringExpressionsTree(FilteringLogic.Or, this.column.field);\n /** @type {?} */\n var selectedItems = this.listData.slice(1, this.listData.length).filter(function (el) { return el.isSelected === true; });\n /** @type {?} */\n var unselectedItem = this.listData.slice(1, this.listData.length).find(function (el) { return el.isSelected === false; });\n if (unselectedItem) {\n if (selectedItems.length <= IgxGridExcelStyleFilteringComponent.filterOptimizationThreshold) {\n selectedItems.forEach(function (element) {\n /** @type {?} */\n var condition = null;\n if (element.value !== null && element.value !== undefined) {\n if (_this.column.dataType === DataType.Boolean) {\n condition = _this.createCondition(element.value.toString());\n }\n else {\n condition = _this.createCondition('equals');\n }\n }\n else {\n condition = _this.createCondition('empty');\n }\n filterTree.filteringOperands.push({\n condition: condition,\n fieldName: _this.column.field,\n ignoreCase: _this.column.filteringIgnoreCase,\n searchVal: element.value\n });\n });\n }\n else {\n /** @type {?} */\n var blanksItemIndex = selectedItems.findIndex(function (e) { return e.value === null || e.value === undefined; });\n /** @type {?} */\n var blanksItem = void 0;\n if (blanksItemIndex >= 0) {\n blanksItem = selectedItems[blanksItemIndex];\n selectedItems.splice(blanksItemIndex, 1);\n }\n filterTree.filteringOperands.push({\n condition: this.createCondition('in'),\n fieldName: this.column.field,\n ignoreCase: this.column.filteringIgnoreCase,\n searchVal: new Set(this.column.dataType === DataType.Date ?\n selectedItems.map(function (d) { return new Date(d.value.getFullYear(), d.value.getMonth(), d.value.getDate()).toISOString(); }) :\n selectedItems.map(function (e) { return e.value; }))\n });\n if (blanksItem) {\n filterTree.filteringOperands.push({\n condition: this.createCondition('empty'),\n fieldName: this.column.field,\n ignoreCase: this.column.filteringIgnoreCase,\n searchVal: blanksItem.value\n });\n }\n }\n this.expressionsList = new Array();\n this.filteringService.filterInternal(this.column.field, filterTree);\n }\n else {\n this.filteringService.clearFilter(this.column.field);\n }\n this.closeDropdown();\n };\n /**\n * @return {?}\n */\n IgxGridExcelStyleFilteringComponent.prototype.closeDropdown = /**\n * @return {?}\n */\n function () {\n if (this.overlayComponentId) {\n this.overlayService.hide(this.overlayComponentId);\n this.overlayComponentId = null;\n }\n };\n /**\n * @param {?} eventArgs\n * @return {?}\n */\n IgxGridExcelStyleFilteringComponent.prototype.onKeyDown = /**\n * @param {?} eventArgs\n * @return {?}\n */\n function (eventArgs) {\n if (eventArgs.key === \"Escape\" /* ESCAPE */ || eventArgs.key === \"Esc\" /* ESCAPE_IE */) {\n this.closeDropdown();\n }\n eventArgs.stopPropagation();\n };\n /**\n * @return {?}\n */\n IgxGridExcelStyleFilteringComponent.prototype.clearFilter = /**\n * @return {?}\n */\n function () {\n this.filteringService.clearFilter(this.column.field);\n this.selectAllFilterItems();\n };\n /**\n * @param {?} eventArgs\n * @return {?}\n */\n IgxGridExcelStyleFilteringComponent.prototype.onClearFilterKeyDown = /**\n * @param {?} eventArgs\n * @return {?}\n */\n function (eventArgs) {\n if (eventArgs.key === \"Enter\" /* ENTER */) {\n this.clearFilter();\n }\n };\n /**\n * @return {?}\n */\n IgxGridExcelStyleFilteringComponent.prototype.showCustomFilterItem = /**\n * @return {?}\n */\n function () {\n /** @type {?} */\n var exprTree = this.column.filteringExpressionsTree;\n return exprTree && exprTree.filteringOperands && exprTree.filteringOperands.length &&\n !(((/** @type {?} */ (exprTree.filteringOperands[0]))).condition &&\n ((/** @type {?} */ (exprTree.filteringOperands[0]))).condition.name === 'in');\n };\n /**\n * @private\n * @param {?} conditionName\n * @return {?}\n */\n IgxGridExcelStyleFilteringComponent.prototype.createCondition = /**\n * @private\n * @param {?} conditionName\n * @return {?}\n */\n function (conditionName) {\n switch (this.column.dataType) {\n case DataType.Boolean:\n return IgxBooleanFilteringOperand.instance().condition(conditionName);\n case DataType.Number:\n return IgxNumberFilteringOperand.instance().condition(conditionName);\n case DataType.Date:\n return IgxDateFilteringOperand.instance().condition(conditionName);\n default:\n return IgxStringFilteringOperand.instance().condition(conditionName);\n }\n };\n IgxGridExcelStyleFilteringComponent.filterOptimizationThreshold = 2;\n IgxGridExcelStyleFilteringComponent.decorators = [\n { type: Component, args: [{\n changeDetection: ChangeDetectionStrategy.OnPush,\n preserveWhitespaces: false,\n selector: 'igx-grid-excel-style-filtering',\n template: \"
\\n\\n
\\n

{{ column.header || column.field }}

\\n
\\n \\n \\n \\n
\\n
\\n\\n \\n \\n \\n \\n\\n
\\n \\n
\\n\\n
\\n\\n \\n \\n \\n \\n\\n
\\n \\n
\\n\\n \\n
\\n {{ grid.resourceStrings.igx_grid_excel_pin }}\\n \\n
\\n\\n
\\n {{ grid.resourceStrings.igx_grid_excel_unpin }}\\n \\n
\\n
\\n\\n
\\n \\n
\\n\\n \\n
\\n {{ grid.resourceStrings.igx_grid_excel_hide }}\\n visibility_off\\n
\\n
\\n\\n
\\n \\n
\\n\\n \\n {{ grid.resourceStrings.igx_grid_excel_filter_clear }}\\n clear\\n \\n\\n \\n {{ subMenuText }}\\n keyboard_arrow_right\\n \\n
\\n\\n \\n \\n\\n
\\n \\n \\n
\\n
\\n\\n\\n
\\n \\n \\n {{ translateCondition(condition) }}\\n \\n \\n filter_list\\n {{ grid.resourceStrings.igx_grid_excel_custom_filter }}\\n \\n
\\n
\\n\\n\\n\\n\"\n }] }\n ];\n /** @nocollapse */\n IgxGridExcelStyleFilteringComponent.ctorParameters = function () { return [\n { type: ChangeDetectorRef }\n ]; };\n IgxGridExcelStyleFilteringComponent.propDecorators = {\n className: [{ type: HostBinding, args: ['class.igx-excel-filter',] }],\n mainDropdown: [{ type: ViewChild, args: ['dropdown', { read: ElementRef, static: true },] }],\n subMenu: [{ type: ViewChild, args: ['subMenu', { read: IgxDropDownComponent, static: true },] }],\n customDialog: [{ type: ViewChild, args: ['customDialog', { read: IgxExcelStyleCustomDialogComponent, static: true },] }],\n excelStyleSearch: [{ type: ViewChild, args: ['excelStyleSearch', { read: IgxExcelStyleSearchComponent, static: true },] }],\n excelStyleSorting: [{ type: ViewChild, args: ['excelStyleSorting', { read: IgxExcelStyleSortingComponent, static: false },] }],\n defaultExcelStyleSortingTemplate: [{ type: ViewChild, args: ['defaultExcelStyleSortingTemplate', { read: TemplateRef, static: true },] }],\n defaultExcelStyleHidingTemplate: [{ type: ViewChild, args: ['defaultExcelStyleHidingTemplate', { read: TemplateRef, static: true },] }],\n defaultExcelStyleMovingTemplate: [{ type: ViewChild, args: ['defaultExcelStyleMovingTemplate', { read: TemplateRef, static: true },] }],\n defaultExcelStylePinningTemplate: [{ type: ViewChild, args: ['defaultExcelStylePinningTemplate', { read: TemplateRef, static: true },] }]\n };\n return IgxGridExcelStyleFilteringComponent;\n}());\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n/**\n * @hidden\n */\nvar IgxGridHeaderComponent = /** @class */ (function () {\n function IgxGridHeaderComponent(gridAPI, colResizingService, cdr, elementRef, zone, _filteringService, _moduleRef, _overlayService) {\n this.gridAPI = gridAPI;\n this.colResizingService = colResizingService;\n this.cdr = cdr;\n this.elementRef = elementRef;\n this.zone = zone;\n this._filteringService = _filteringService;\n this._moduleRef = _moduleRef;\n this._overlayService = _overlayService;\n this._destroy$ = new Subject();\n this.hostRole = 'columnheader';\n this.tabindex = -1;\n this.sortDirection = SortingDirection.None;\n }\n Object.defineProperty(IgxGridHeaderComponent.prototype, \"styleClasses\", {\n get: /**\n * @return {?}\n */\n function () {\n var e_1, _a;\n /** @type {?} */\n var defaultClasses = [\n 'igx-grid__th--fw',\n this.column.headerClasses\n ];\n /** @type {?} */\n var classList = {\n 'igx-grid__th': !this.column.columnGroup,\n 'asc': this.ascending,\n 'desc': this.descending,\n 'igx-grid__th--number': this.column.dataType === DataType.Number,\n 'igx-grid__th--sortable': this.column.sortable,\n 'igx-grid__th--filtrable': this.column.filterable && this.grid.filteringService.isFilterRowVisible,\n 'igx-grid__th--sorted': this.sorted\n };\n try {\n for (var _b = __values(Object.keys(classList)), _c = _b.next(); !_c.done; _c = _b.next()) {\n var klass = _c.value;\n if (classList[klass]) {\n defaultClasses.push(klass);\n }\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n }\n finally { if (e_1) throw e_1.error; }\n }\n return defaultClasses.join(' ');\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxGridHeaderComponent.prototype, \"height\", {\n get: /**\n * @return {?}\n */\n function () {\n if (this.grid.hasColumnGroups) {\n return (this.grid.maxLevelHeaderDepth + 1 - this.column.level) * this.grid.defaultRowHeight / this.grid._baseFontSize;\n }\n return null;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxGridHeaderComponent.prototype, \"ascending\", {\n get: /**\n * @return {?}\n */\n function () {\n return this.sortDirection === SortingDirection.Asc;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxGridHeaderComponent.prototype, \"descending\", {\n get: /**\n * @return {?}\n */\n function () {\n return this.sortDirection === SortingDirection.Desc;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxGridHeaderComponent.prototype, \"sortingIcon\", {\n get: /**\n * @return {?}\n */\n function () {\n if (this.sortDirection !== SortingDirection.None) {\n // arrow_downward and arrow_upward\n // are material icons ligature strings\n return this.sortDirection === SortingDirection.Asc ? 'arrow_upward' : 'arrow_downward';\n }\n return 'arrow_upward';\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxGridHeaderComponent.prototype, \"sorted\", {\n get: /**\n * @return {?}\n */\n function () {\n return this.sortDirection !== SortingDirection.None;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxGridHeaderComponent.prototype, \"filterIconClassName\", {\n get: /**\n * @return {?}\n */\n function () {\n return this.column.filteringExpressionsTree ? 'igx-excel-filter__icon--filtered' : 'igx-excel-filter__icon';\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxGridHeaderComponent.prototype, \"headerID\", {\n get: /**\n * @return {?}\n */\n function () {\n return this.gridID + \"_\" + this.column.field;\n },\n enumerable: true,\n configurable: true\n });\n /**\n * @return {?}\n */\n IgxGridHeaderComponent.prototype.ngOnInit = /**\n * @return {?}\n */\n function () {\n this.initFilteringSettings();\n };\n /**\n * @return {?}\n */\n IgxGridHeaderComponent.prototype.ngDoCheck = /**\n * @return {?}\n */\n function () {\n this.getSortDirection();\n this.cdr.markForCheck();\n };\n /**\n * @return {?}\n */\n IgxGridHeaderComponent.prototype.ngOnDestroy = /**\n * @return {?}\n */\n function () {\n this._destroy$.next(true);\n this._destroy$.complete();\n if (this._componentOverlayId) {\n this._overlayService.hide(this._componentOverlayId);\n }\n };\n /**\n * @param {?} event\n * @return {?}\n */\n IgxGridHeaderComponent.prototype.onClick = /**\n * @param {?} event\n * @return {?}\n */\n function (event) {\n if (!this.colResizingService.isColumnResizing) {\n event.stopPropagation();\n if (this.grid.filteringService.isFilterRowVisible) {\n if (this.column.filterable && !this.column.columnGroup &&\n !this.grid.filteringService.isFilterComplex(this.column.field)) {\n this.grid.filteringService.filteredColumn = this.column;\n }\n }\n else if (this.column.sortable) {\n this.triggerSort();\n }\n }\n };\n /**\n * @param {?} event\n * @return {?}\n */\n IgxGridHeaderComponent.prototype.onFilteringIconClick = /**\n * @param {?} event\n * @return {?}\n */\n function (event) {\n event.stopPropagation();\n this.toggleFilterDropdown();\n };\n Object.defineProperty(IgxGridHeaderComponent.prototype, \"grid\", {\n get: /**\n * @return {?}\n */\n function () {\n return this.gridAPI.grid;\n },\n enumerable: true,\n configurable: true\n });\n /**\n * @protected\n * @return {?}\n */\n IgxGridHeaderComponent.prototype.getSortDirection = /**\n * @protected\n * @return {?}\n */\n function () {\n var _this = this;\n /** @type {?} */\n var expr = this.gridAPI.grid.sortingExpressions.find(function (x) { return x.fieldName === _this.column.field; });\n this.sortDirection = expr ? expr.dir : SortingDirection.None;\n };\n /**\n * @param {?} event\n * @return {?}\n */\n IgxGridHeaderComponent.prototype.onSortingIconClick = /**\n * @param {?} event\n * @return {?}\n */\n function (event) {\n if (this.grid.filteringService.isFilterRowVisible) {\n event.stopPropagation();\n this.triggerSort();\n }\n };\n /**\n * @private\n * @return {?}\n */\n IgxGridHeaderComponent.prototype.triggerSort = /**\n * @private\n * @return {?}\n */\n function () {\n var _this = this;\n /** @type {?} */\n var groupingExpr = this.grid.groupingExpressions ?\n this.grid.groupingExpressions.find(function (expr) { return expr.fieldName === _this.column.field; }) : null;\n /** @type {?} */\n var sortDir = groupingExpr ?\n this.sortDirection + 1 > SortingDirection.Desc ? SortingDirection.Asc : SortingDirection.Desc\n : this.sortDirection + 1 > SortingDirection.Desc ? SortingDirection.None : this.sortDirection + 1;\n this.sortDirection = sortDir;\n this.grid.sort({ fieldName: this.column.field, dir: this.sortDirection, ignoreCase: this.column.sortingIgnoreCase,\n strategy: this.column.sortStrategy });\n };\n /**\n * @private\n * @return {?}\n */\n IgxGridHeaderComponent.prototype.toggleFilterDropdown = /**\n * @private\n * @return {?}\n */\n function () {\n if (!this._componentOverlayId) {\n /** @type {?} */\n var headerTarget = this.elementRef.nativeElement;\n /** @type {?} */\n var filterIconTarget = headerTarget.querySelector('.' + this.filterIconClassName);\n this._filterMenuOverlaySettings.positionStrategy.settings.target = filterIconTarget;\n this._filterMenuOverlaySettings.outlet = this.grid.outlet;\n this._componentOverlayId =\n this._overlayService.attach(IgxGridExcelStyleFilteringComponent, this._filterMenuOverlaySettings, this._moduleRef);\n this._overlayService.show(this._componentOverlayId, this._filterMenuOverlaySettings);\n }\n };\n /**\n * @private\n * @return {?}\n */\n IgxGridHeaderComponent.prototype.initFilteringSettings = /**\n * @private\n * @return {?}\n */\n function () {\n var _this = this;\n this._filterMenuPositionSettings = {\n verticalStartPoint: VerticalAlignment.Bottom,\n openAnimation: useAnimation(fadeIn, {\n params: {\n duration: '250ms'\n }\n }),\n closeAnimation: useAnimation(fadeOut, {\n params: {\n duration: '200ms'\n }\n })\n };\n this._filterMenuOverlaySettings = {\n closeOnOutsideClick: true,\n modal: false,\n positionStrategy: new AutoPositionStrategy(this._filterMenuPositionSettings),\n scrollStrategy: new AbsoluteScrollStrategy()\n };\n this._overlayService.onOpening.pipe(filter(function (overlay) { return overlay.id === _this._componentOverlayId; }), takeUntil(this._destroy$)).subscribe(function (eventArgs) {\n _this.onOverlayOpening(eventArgs);\n });\n this._overlayService.onClosed.pipe(filter(function (overlay) { return overlay.id === _this._componentOverlayId; }), takeUntil(this._destroy$)).subscribe(function () {\n _this.onOverlayClosed();\n });\n };\n /**\n * @private\n * @param {?} eventArgs\n * @return {?}\n */\n IgxGridHeaderComponent.prototype.onOverlayOpening = /**\n * @private\n * @param {?} eventArgs\n * @return {?}\n */\n function (eventArgs) {\n /** @type {?} */\n var instance = (/** @type {?} */ (eventArgs.componentRef.instance));\n if (instance) {\n instance.initialize(this.column, this._filteringService, this._overlayService, eventArgs.id);\n }\n };\n /**\n * @private\n * @return {?}\n */\n IgxGridHeaderComponent.prototype.onOverlayClosed = /**\n * @private\n * @return {?}\n */\n function () {\n this._componentOverlayId = null;\n };\n IgxGridHeaderComponent.decorators = [\n { type: Component, args: [{\n changeDetection: ChangeDetectionStrategy.OnPush,\n preserveWhitespaces: false,\n selector: 'igx-grid-header',\n template: \"\\n {{ column.header || column.field }}\\n\\n\\n\\n \\n \\n\\n
\\n \\n {{sortingIcon}}\\n \\n\\n \\n filter_list\\n \\n
\\n\"\n }] }\n ];\n /** @nocollapse */\n IgxGridHeaderComponent.ctorParameters = function () { return [\n { type: GridBaseAPIService },\n { type: IgxColumnResizingService },\n { type: ChangeDetectorRef },\n { type: ElementRef },\n { type: NgZone },\n { type: IgxFilteringService },\n { type: NgModuleRef },\n { type: IgxOverlayService, decorators: [{ type: Inject, args: [IgxOverlayService,] }] }\n ]; };\n IgxGridHeaderComponent.propDecorators = {\n column: [{ type: Input }],\n gridID: [{ type: Input }],\n styleClasses: [{ type: HostBinding, args: ['class',] }],\n height: [{ type: HostBinding, args: ['style.height.rem',] }],\n hostRole: [{ type: HostBinding, args: ['attr.role',] }],\n tabindex: [{ type: HostBinding, args: ['attr.tabindex',] }],\n headerID: [{ type: HostBinding, args: ['attr.id',] }],\n onClick: [{ type: HostListener, args: ['click', ['$event'],] }]\n };\n return IgxGridHeaderComponent;\n}());\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n/**\n * @hidden\n */\nvar IgxGridFilteringCellComponent = /** @class */ (function () {\n function IgxGridFilteringCellComponent(cdr, filteringService, navService) {\n this.cdr = cdr;\n this.filteringService = filteringService;\n this.navService = navService;\n this.baseClass = 'igx-grid__filtering-cell-indicator';\n this.currentTemplate = null;\n this.moreFiltersCount = 0;\n this.cssClass = 'igx-grid__filtering-cell';\n this.filteringService.subscribeToEvents();\n }\n /**\n * @return {?}\n */\n IgxGridFilteringCellComponent.prototype.ngOnInit = /**\n * @return {?}\n */\n function () {\n this.filteringService.columnToMoreIconHidden.set(this.column.field, true);\n };\n /**\n * @return {?}\n */\n IgxGridFilteringCellComponent.prototype.ngAfterViewInit = /**\n * @return {?}\n */\n function () {\n this.updateFilterCellArea();\n };\n /**\n * @return {?}\n */\n IgxGridFilteringCellComponent.prototype.ngDoCheck = /**\n * @return {?}\n */\n function () {\n this.updateFilterCellArea();\n };\n /**\n * @param {?} eventArgs\n * @return {?}\n */\n IgxGridFilteringCellComponent.prototype.onTabKeyDown = /**\n * @param {?} eventArgs\n * @return {?}\n */\n function (eventArgs) {\n if (this.isLastElementFocused()) {\n this.filteringService.grid.navigation.navigateNextFilterCell(this.column, eventArgs);\n }\n eventArgs.stopPropagation();\n };\n /**\n * @param {?} eventArgs\n * @return {?}\n */\n IgxGridFilteringCellComponent.prototype.onShiftTabKeyDown = /**\n * @param {?} eventArgs\n * @return {?}\n */\n function (eventArgs) {\n if (this.isFirstElementFocused()) {\n this.filteringService.grid.navigation.navigatePrevFilterCell(this.column, eventArgs);\n }\n eventArgs.stopPropagation();\n };\n /**\n * Returns whether a chip with a given index is visible or not.\n */\n /**\n * Returns whether a chip with a given index is visible or not.\n * @param {?} index\n * @return {?}\n */\n IgxGridFilteringCellComponent.prototype.isChipVisible = /**\n * Returns whether a chip with a given index is visible or not.\n * @param {?} index\n * @return {?}\n */\n function (index) {\n /** @type {?} */\n var expression = this.expressionsList[index];\n return !!(expression && expression.isVisible);\n };\n /**\n * Updates the filtering cell area.\n */\n /**\n * Updates the filtering cell area.\n * @return {?}\n */\n IgxGridFilteringCellComponent.prototype.updateFilterCellArea = /**\n * Updates the filtering cell area.\n * @return {?}\n */\n function () {\n this.expressionsList = this.filteringService.getExpressions(this.column.field);\n this.updateVisibleFilters();\n };\n Object.defineProperty(IgxGridFilteringCellComponent.prototype, \"template\", {\n get: /**\n * @return {?}\n */\n function () {\n if (!this.column.filterable) {\n this.currentTemplate = null;\n return null;\n }\n if (this.column.filterCellTemplate) {\n this.currentTemplate = this.column.filterCellTemplate;\n return this.column.filterCellTemplate;\n }\n /** @type {?} */\n var expressionTree = this.column.filteringExpressionsTree;\n if (!expressionTree || expressionTree.filteringOperands.length === 0) {\n this.currentTemplate = this.emptyFilter;\n return this.emptyFilter;\n }\n if (this.filteringService.isFilterComplex(this.column.field)) {\n this.currentTemplate = this.complexFilter;\n return this.complexFilter;\n }\n this.currentTemplate = this.defaultFilter;\n return this.defaultFilter;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxGridFilteringCellComponent.prototype, \"context\", {\n /**\n * Gets the context passed to the filter template.\n * @memberof IgxGridFilteringCellComponent\n */\n get: /**\n * Gets the context passed to the filter template.\n * \\@memberof IgxGridFilteringCellComponent\n * @return {?}\n */\n function () {\n return {\n column: this.column\n };\n },\n enumerable: true,\n configurable: true\n });\n /**\n * Chip clicked event handler.\n */\n /**\n * Chip clicked event handler.\n * @param {?=} expression\n * @return {?}\n */\n IgxGridFilteringCellComponent.prototype.onChipClicked = /**\n * Chip clicked event handler.\n * @param {?=} expression\n * @return {?}\n */\n function (expression) {\n if (expression) {\n this.expressionsList.forEach(function (item) {\n item.isSelected = (item.expression === expression);\n });\n }\n else if (this.expressionsList.length > 0) {\n this.expressionsList.forEach(function (item) {\n item.isSelected = false;\n });\n this.expressionsList[0].isSelected = true;\n }\n /** @type {?} */\n var index = this.filteringService.unpinnedFilterableColumns.indexOf(this.column);\n if (index >= 0 && !this.isColumnRightVisible(index)) {\n this.filteringService.scrollToFilterCell(this.filteringService.unpinnedFilterableColumns[index], true);\n }\n else if (index >= 0 && !this.isColumnLeftVisible(index)) {\n this.filteringService.scrollToFilterCell(this.filteringService.unpinnedFilterableColumns[index], false);\n }\n this.filteringService.filteredColumn = this.column;\n this.filteringService.isFilterRowVisible = true;\n this.filteringService.selectedExpression = expression;\n };\n /**\n * Chip removed event handler.\n */\n /**\n * Chip removed event handler.\n * @param {?} eventArgs\n * @param {?} item\n * @return {?}\n */\n IgxGridFilteringCellComponent.prototype.onChipRemoved = /**\n * Chip removed event handler.\n * @param {?} eventArgs\n * @param {?} item\n * @return {?}\n */\n function (eventArgs, item) {\n /** @type {?} */\n var indexToRemove = this.expressionsList.indexOf(item);\n this.removeExpression(indexToRemove);\n this.focusChip();\n };\n /**\n * Clears the filtering.\n */\n /**\n * Clears the filtering.\n * @return {?}\n */\n IgxGridFilteringCellComponent.prototype.clearFiltering = /**\n * Clears the filtering.\n * @return {?}\n */\n function () {\n this.filteringService.clearFilter(this.column.field);\n this.cdr.detectChanges();\n };\n /**\n * Chip keydown event handler.\n */\n /**\n * Chip keydown event handler.\n * @param {?} eventArgs\n * @param {?=} expression\n * @return {?}\n */\n IgxGridFilteringCellComponent.prototype.onChipKeyDown = /**\n * Chip keydown event handler.\n * @param {?} eventArgs\n * @param {?=} expression\n * @return {?}\n */\n function (eventArgs, expression) {\n if (eventArgs.key === \"Enter\" /* ENTER */) {\n eventArgs.preventDefault();\n this.onChipClicked(expression);\n }\n };\n /**\n * Returns the filtering indicator class.\n */\n /**\n * Returns the filtering indicator class.\n * @return {?}\n */\n IgxGridFilteringCellComponent.prototype.filteringIndicatorClass = /**\n * Returns the filtering indicator class.\n * @return {?}\n */\n function () {\n var _a;\n return _a = {},\n _a[this.baseClass] = !this.isMoreIconHidden(),\n _a[this.baseClass + \"--hidden\"] = this.isMoreIconHidden(),\n _a;\n };\n /**\n * Focus a chip depending on the current visible template.\n */\n /**\n * Focus a chip depending on the current visible template.\n * @param {?=} focusFirst\n * @return {?}\n */\n IgxGridFilteringCellComponent.prototype.focusChip = /**\n * Focus a chip depending on the current visible template.\n * @param {?=} focusFirst\n * @return {?}\n */\n function (focusFirst) {\n if (focusFirst === void 0) { focusFirst = false; }\n if (this.currentTemplate === this.defaultFilter) {\n if (focusFirst) {\n this.focusFirstElement();\n }\n else {\n this.focusElement();\n }\n }\n else if (this.currentTemplate === this.emptyFilter) {\n this.ghostChip.elementRef.nativeElement.querySelector(\".igx-chip__item\").focus();\n }\n else if (this.currentTemplate === this.complexFilter) {\n this.complexChip.elementRef.nativeElement.querySelector(\".igx-chip__item\").focus();\n }\n };\n /**\n * @private\n * @param {?} indexToRemove\n * @return {?}\n */\n IgxGridFilteringCellComponent.prototype.removeExpression = /**\n * @private\n * @param {?} indexToRemove\n * @return {?}\n */\n function (indexToRemove) {\n if (indexToRemove === 0 && this.expressionsList.length === 1) {\n this.clearFiltering();\n return;\n }\n this.filteringService.removeExpression(this.column.field, indexToRemove);\n this.updateVisibleFilters();\n this.filteringService.filterInternal(this.column.field);\n };\n /**\n * @private\n * @return {?}\n */\n IgxGridFilteringCellComponent.prototype.isMoreIconHidden = /**\n * @private\n * @return {?}\n */\n function () {\n return this.filteringService.columnToMoreIconHidden.get(this.column.field);\n };\n /**\n * @private\n * @return {?}\n */\n IgxGridFilteringCellComponent.prototype.updateVisibleFilters = /**\n * @private\n * @return {?}\n */\n function () {\n this.expressionsList.forEach(function (ex) { return ex.isVisible = true; });\n if (this.moreIcon) {\n this.filteringService.columnToMoreIconHidden.set(this.column.field, true);\n }\n this.cdr.detectChanges();\n if (this.chipsArea && this.expressionsList.length > 1) {\n /** @type {?} */\n var areaWidth = this.chipsArea.element.nativeElement.offsetWidth;\n /** @type {?} */\n var viewWidth = 0;\n /** @type {?} */\n var chipsAreaElements = this.chipsArea.element.nativeElement.children;\n /** @type {?} */\n var visibleChipsCount = 0;\n /** @type {?} */\n var moreIconWidth = this.moreIcon.nativeElement.offsetWidth -\n parseInt(document.defaultView.getComputedStyle(this.moreIcon.nativeElement)['margin-left'], 10);\n for (var index = 0; index < chipsAreaElements.length - 1; index++) {\n if (viewWidth + chipsAreaElements[index].offsetWidth < areaWidth) {\n viewWidth += chipsAreaElements[index].offsetWidth;\n if (index % 2 === 0) {\n visibleChipsCount++;\n }\n else {\n viewWidth += parseInt(document.defaultView.getComputedStyle(chipsAreaElements[index])['margin-left'], 10);\n viewWidth += parseInt(document.defaultView.getComputedStyle(chipsAreaElements[index])['margin-right'], 10);\n }\n }\n else {\n if (index % 2 !== 0 && viewWidth + moreIconWidth > areaWidth) {\n visibleChipsCount--;\n }\n else if (visibleChipsCount > 0 && viewWidth - chipsAreaElements[index - 1].offsetWidth + moreIconWidth > areaWidth) {\n visibleChipsCount--;\n }\n this.moreFiltersCount = this.expressionsList.length - visibleChipsCount;\n this.filteringService.columnToMoreIconHidden.set(this.column.field, false);\n break;\n }\n }\n for (var i = visibleChipsCount; i < this.expressionsList.length; i++) {\n this.expressionsList[i].isVisible = false;\n }\n this.cdr.detectChanges();\n }\n };\n /**\n * @private\n * @return {?}\n */\n IgxGridFilteringCellComponent.prototype.isFirstElementFocused = /**\n * @private\n * @return {?}\n */\n function () {\n return !(this.chipsArea && this.chipsArea.chipsList.length > 0 &&\n this.chipsArea.chipsList.first.elementRef.nativeElement.querySelector(\".igx-chip__item\") !== document.activeElement);\n };\n /**\n * @private\n * @return {?}\n */\n IgxGridFilteringCellComponent.prototype.isLastElementFocused = /**\n * @private\n * @return {?}\n */\n function () {\n if (this.chipsArea) {\n if (this.isMoreIconHidden() && this.chipsArea.chipsList.last.elementRef.nativeElement.querySelector(\".igx-chip__remove\") !==\n document.activeElement) {\n return false;\n }\n else if (!this.isMoreIconHidden() && this.moreIcon.nativeElement !== document.activeElement) {\n return false;\n }\n }\n return true;\n };\n /**\n * @private\n * @return {?}\n */\n IgxGridFilteringCellComponent.prototype.focusFirstElement = /**\n * @private\n * @return {?}\n */\n function () {\n if (this.chipsArea.chipsList.length > 0) {\n this.chipsArea.chipsList.first.elementRef.nativeElement.querySelector(\".igx-chip__item\").focus();\n }\n else {\n this.moreIcon.nativeElement.focus();\n }\n };\n /**\n * @private\n * @return {?}\n */\n IgxGridFilteringCellComponent.prototype.focusElement = /**\n * @private\n * @return {?}\n */\n function () {\n if (this.filteringService.shouldFocusNext) {\n if (!this.isMoreIconHidden() && this.chipsArea.chipsList.length === 0) {\n this.moreIcon.nativeElement.focus();\n }\n else {\n this.chipsArea.chipsList.first.elementRef.nativeElement.querySelector(\".igx-chip__item\").focus();\n }\n }\n else {\n if (!this.isMoreIconHidden()) {\n this.moreIcon.nativeElement.focus();\n }\n else {\n this.chipsArea.chipsList.last.elementRef.nativeElement.querySelector(\".igx-chip__remove\").focus();\n }\n }\n };\n /**\n * @private\n * @param {?} columnIndex\n * @return {?}\n */\n IgxGridFilteringCellComponent.prototype.isColumnRightVisible = /**\n * @private\n * @param {?} columnIndex\n * @return {?}\n */\n function (columnIndex) {\n if (this.filteringService.areAllColumnsInView) {\n return true;\n }\n /** @type {?} */\n var currentColumnRight = 0;\n for (var index = 0; index < this.filteringService.unpinnedColumns.length; index++) {\n currentColumnRight += parseInt(this.filteringService.unpinnedColumns[index].width, 10);\n if (this.filteringService.unpinnedColumns[index] === this.filteringService.unpinnedFilterableColumns[columnIndex]) {\n break;\n }\n }\n /** @type {?} */\n var width = this.filteringService.displayContainerWidth + this.filteringService.displayContainerScrollLeft;\n return currentColumnRight <= width;\n };\n /**\n * @private\n * @param {?} columnIndex\n * @return {?}\n */\n IgxGridFilteringCellComponent.prototype.isColumnLeftVisible = /**\n * @private\n * @param {?} columnIndex\n * @return {?}\n */\n function (columnIndex) {\n if (this.filteringService.areAllColumnsInView) {\n return true;\n }\n /** @type {?} */\n var currentColumnLeft = 0;\n for (var index = 0; index < this.filteringService.unpinnedColumns.length; index++) {\n if (this.filteringService.unpinnedColumns[index] === this.filteringService.unpinnedFilterableColumns[columnIndex]) {\n break;\n }\n currentColumnLeft += parseInt(this.filteringService.unpinnedColumns[index].width, 10);\n }\n return currentColumnLeft >= this.filteringService.displayContainerScrollLeft;\n };\n IgxGridFilteringCellComponent.decorators = [\n { type: Component, args: [{\n changeDetection: ChangeDetectionStrategy.OnPush,\n preserveWhitespaces: false,\n selector: 'igx-grid-filtering-cell',\n template: \"\\n \\n \\n filter_list\\n {{filteringService.grid.resourceStrings.igx_grid_filter}}\\n \\n \\n\\n\\n\\n \\n \\n \\n \\n \\n \\n {{filteringService.getChipLabel(item.expression)}}\\n \\n \\n {{filteringService.getOperatorAsString(item.afterOperator)}}\\n \\n
\\n filter_list\\n \\n
\\n
\\n
\\n\\n\\n \\n filter_list\\n {{filteringService.grid.resourceStrings.igx_grid_complex_filter}}\\n \\n\\n\\n\\n\"\n }] }\n ];\n /** @nocollapse */\n IgxGridFilteringCellComponent.ctorParameters = function () { return [\n { type: ChangeDetectorRef },\n { type: IgxFilteringService },\n { type: IgxGridNavigationService }\n ]; };\n IgxGridFilteringCellComponent.propDecorators = {\n column: [{ type: Input }],\n emptyFilter: [{ type: ViewChild, args: ['emptyFilter', { read: TemplateRef, static: true },] }],\n defaultFilter: [{ type: ViewChild, args: ['defaultFilter', { read: TemplateRef, static: true },] }],\n complexFilter: [{ type: ViewChild, args: ['complexFilter', { read: TemplateRef, static: true },] }],\n chipsArea: [{ type: ViewChild, args: ['chipsArea', { read: IgxChipsAreaComponent, static: false },] }],\n moreIcon: [{ type: ViewChild, args: ['moreIcon', { read: ElementRef, static: false },] }],\n ghostChip: [{ type: ViewChild, args: ['ghostChip', { read: IgxChipComponent, static: false },] }],\n complexChip: [{ type: ViewChild, args: ['complexChip', { read: IgxChipComponent, static: false },] }],\n cssClass: [{ type: HostBinding, args: ['class.igx-grid__filtering-cell',] }],\n onTabKeyDown: [{ type: HostListener, args: ['keydown.tab', ['$event'],] }],\n onShiftTabKeyDown: [{ type: HostListener, args: ['keydown.shift.tab', ['$event'],] }]\n };\n return IgxGridFilteringCellComponent;\n}());\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n/** @type {?} */\nvar Z_INDEX = 9999;\n/**\n * @hidden\n */\nvar IgxGridHeaderGroupComponent = /** @class */ (function () {\n function IgxGridHeaderGroupComponent(cdr, gridAPI, element, colResizingService, filteringService) {\n this.cdr = cdr;\n this.gridAPI = gridAPI;\n this.element = element;\n this.colResizingService = colResizingService;\n this.filteringService = filteringService;\n }\n Object.defineProperty(IgxGridHeaderGroupComponent.prototype, \"gridRowSpan\", {\n get: /**\n * @return {?}\n */\n function () {\n return this.column.gridRowSpan;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxGridHeaderGroupComponent.prototype, \"gridColumnSpan\", {\n get: /**\n * @return {?}\n */\n function () {\n return this.column.gridColumnSpan;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxGridHeaderGroupComponent.prototype, \"rowEnd\", {\n get: /**\n * @return {?}\n */\n function () {\n return this.column.rowEnd;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxGridHeaderGroupComponent.prototype, \"colEnd\", {\n get: /**\n * @return {?}\n */\n function () {\n return this.column.colEnd;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxGridHeaderGroupComponent.prototype, \"rowStart\", {\n get: /**\n * @return {?}\n */\n function () {\n return this.column.rowStart;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxGridHeaderGroupComponent.prototype, \"colStart\", {\n get: /**\n * @return {?}\n */\n function () {\n return this.column.colStart;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxGridHeaderGroupComponent.prototype, \"width\", {\n /**\n * Gets the width of the header group.\n * @memberof IgxGridHeaderGroupComponent\n */\n get: /**\n * Gets the width of the header group.\n * \\@memberof IgxGridHeaderGroupComponent\n * @return {?}\n */\n function () {\n return this.grid.getHeaderGroupWidth(this.column);\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxGridHeaderGroupComponent.prototype, \"styleClasses\", {\n /**\n * Gets the style classes of the header group.\n * @memberof IgxGridHeaderGroupComponent\n */\n get: /**\n * Gets the style classes of the header group.\n * \\@memberof IgxGridHeaderGroupComponent\n * @return {?}\n */\n function () {\n var e_1, _a;\n /** @type {?} */\n var defaultClasses = [\n 'igx-grid__thead-item',\n this.column.headerGroupClasses\n ];\n /** @type {?} */\n var classList = {\n 'igx-grid__th--pinned': this.isPinned,\n 'igx-grid__th--pinned-last': this.isLastPinned,\n 'igx-grid__drag-col-header': this.isHeaderDragged,\n 'igx-grid__th--filtering': this.isFiltered\n };\n try {\n for (var _b = __values(Object.keys(classList)), _c = _b.next(); !_c.done; _c = _b.next()) {\n var className = _c.value;\n if (classList[className]) {\n defaultClasses.push(className);\n }\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n }\n finally { if (e_1) throw e_1.error; }\n }\n return defaultClasses.join(' ');\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxGridHeaderGroupComponent.prototype, \"zIndex\", {\n /**\n * @hidden\n */\n get: /**\n * @hidden\n * @return {?}\n */\n function () {\n if (!this.column.pinned) {\n return null;\n }\n return Z_INDEX - this.grid.pinnedColumns.indexOf(this.column);\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxGridHeaderGroupComponent.prototype, \"grid\", {\n /**\n * Gets the grid of the header group.\n * @memberof IgxGridHeaderGroupComponent\n */\n get: /**\n * Gets the grid of the header group.\n * \\@memberof IgxGridHeaderGroupComponent\n * @return {?}\n */\n function () {\n return this.gridAPI.grid;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxGridHeaderGroupComponent.prototype, \"isFiltered\", {\n /**\n * Gets whether the header group belongs to a column that is filtered.\n * @memberof IgxGridHeaderGroupComponent\n */\n get: /**\n * Gets whether the header group belongs to a column that is filtered.\n * \\@memberof IgxGridHeaderGroupComponent\n * @return {?}\n */\n function () {\n return this.filteringService.filteredColumn === this.column;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxGridHeaderGroupComponent.prototype, \"isLastPinned\", {\n /**\n * Gets whether the header group is stored in the last column in the pinned area.\n * @memberof IgxGridHeaderGroupComponent\n */\n get: /**\n * Gets whether the header group is stored in the last column in the pinned area.\n * \\@memberof IgxGridHeaderGroupComponent\n * @return {?}\n */\n function () {\n return !this.grid.hasColumnLayouts ? this.column.isLastPinned : false;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxGridHeaderGroupComponent.prototype, \"groupDisplayStyle\", {\n get: /**\n * @return {?}\n */\n function () {\n return this.grid.hasColumnLayouts && this.column.children && !isIE() ? 'flex' : '';\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxGridHeaderGroupComponent.prototype, \"isPinned\", {\n /**\n * Gets whether the header group is stored in a pinned column.\n * @memberof IgxGridHeaderGroupComponent\n */\n get: /**\n * Gets whether the header group is stored in a pinned column.\n * \\@memberof IgxGridHeaderGroupComponent\n * @return {?}\n */\n function () {\n return this.column.pinned;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxGridHeaderGroupComponent.prototype, \"isHeaderDragged\", {\n /**\n * Gets whether the header group belongs to a column that is moved.\n * @memberof IgxGridHeaderGroupComponent\n */\n get: /**\n * Gets whether the header group belongs to a column that is moved.\n * \\@memberof IgxGridHeaderGroupComponent\n * @return {?}\n */\n function () {\n return this.grid.draggedColumn === this.column;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxGridHeaderGroupComponent.prototype, \"hasLastPinnedChildColumn\", {\n /**\n * @hidden\n */\n get: /**\n * @hidden\n * @return {?}\n */\n function () {\n return this.column.allChildren.some(function (child) { return child.isLastPinned; });\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxGridHeaderGroupComponent.prototype, \"height\", {\n /**\n * @hidden\n */\n get: /**\n * @hidden\n * @return {?}\n */\n function () {\n return this.element.nativeElement.getBoundingClientRect().height;\n },\n enumerable: true,\n configurable: true\n });\n /**\n * @hidden\n */\n /**\n * @hidden\n * @param {?} event\n * @return {?}\n */\n IgxGridHeaderGroupComponent.prototype.onMouseDown = /**\n * @hidden\n * @param {?} event\n * @return {?}\n */\n function (event) {\n // hack for preventing text selection in IE and Edge while dragging the resizer\n event.preventDefault();\n };\n /**\n * @return {?}\n */\n IgxGridHeaderGroupComponent.prototype.ngDoCheck = /**\n * @return {?}\n */\n function () {\n this.cdr.markForCheck();\n };\n IgxGridHeaderGroupComponent.decorators = [\n { type: Component, args: [{\n changeDetection: ChangeDetectionStrategy.OnPush,\n preserveWhitespaces: false,\n selector: 'igx-grid-header-group',\n template: \"\\n \\n
\\n \\n \\n \\n \\n
\\n \\n
\\n\\n\\n {{column.header}}\\n\\n\\n\\n \\n
\\n \\n \\n
\\n
\\n \\n \\n \\n \\n
\\n \\n
\\n\\n\\n \\n \\n \\n \\n \\n \\n\\n\"\n }] }\n ];\n /** @nocollapse */\n IgxGridHeaderGroupComponent.ctorParameters = function () { return [\n { type: ChangeDetectorRef },\n { type: GridBaseAPIService },\n { type: ElementRef },\n { type: IgxColumnResizingService },\n { type: IgxFilteringService }\n ]; };\n IgxGridHeaderGroupComponent.propDecorators = {\n gridRowSpan: [{ type: HostBinding, args: ['style.-ms-grid-row-span',] }],\n gridColumnSpan: [{ type: HostBinding, args: ['style.-ms-grid-column-span',] }],\n rowEnd: [{ type: HostBinding, args: ['style.grid-row-end',] }],\n colEnd: [{ type: HostBinding, args: ['style.grid-column-end',] }],\n rowStart: [{ type: HostBinding, args: ['style.-ms-grid-row',] }, { type: HostBinding, args: ['style.grid-row-start',] }],\n colStart: [{ type: HostBinding, args: ['style.-ms-grid-column',] }, { type: HostBinding, args: ['style.grid-column-start',] }],\n column: [{ type: Input }],\n gridID: [{ type: Input }],\n headerCell: [{ type: ViewChild, args: [IgxGridHeaderComponent, { static: false },] }],\n filterCell: [{ type: ViewChild, args: [IgxGridFilteringCellComponent, { static: false },] }],\n children: [{ type: ViewChildren, args: [forwardRef(function () { return IgxGridHeaderGroupComponent; }), { read: IgxGridHeaderGroupComponent },] }],\n width: [{ type: HostBinding, args: ['style.min-width',] }, { type: HostBinding, args: ['style.flex-basis',] }],\n styleClasses: [{ type: HostBinding, args: ['class',] }],\n zIndex: [{ type: HostBinding, args: ['style.z-index',] }],\n groupDisplayStyle: [{ type: HostBinding, args: ['style.display',] }],\n onMouseDown: [{ type: HostListener, args: ['mousedown', ['$event'],] }]\n };\n return IgxGridHeaderGroupComponent;\n}());\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n/** @type {?} */\nvar GridResourceStringsEN = {\n igx_grid_groupByArea_message: 'Drag a column header and drop it here to group by that column.',\n igx_grid_emptyFilteredGrid_message: 'No records found.',\n igx_grid_emptyGrid_message: 'Grid has no data.',\n igx_grid_filter: 'Filter',\n igx_grid_filter_row_close: 'Close',\n igx_grid_filter_row_reset: 'Reset',\n igx_grid_filter_row_placeholder: 'Add filter value',\n igx_grid_filter_row_boolean_placeholder: 'All',\n igx_grid_filter_row_date_placeholder: 'Pick up date',\n igx_grid_filter_operator_and: 'And',\n igx_grid_filter_operator_or: 'Or',\n igx_grid_complex_filter: 'Complex Filter',\n igx_grid_filter_contains: 'Contains',\n igx_grid_filter_doesNotContain: 'Does Not Contain',\n igx_grid_filter_startsWith: 'Starts With',\n igx_grid_filter_endsWith: 'Ends With',\n igx_grid_filter_equals: 'Equals',\n igx_grid_filter_doesNotEqual: 'Does Not Equal',\n igx_grid_filter_empty: 'Empty',\n igx_grid_filter_notEmpty: 'Not Empty',\n igx_grid_filter_null: 'Null',\n igx_grid_filter_notNull: 'Not Null',\n igx_grid_filter_before: 'Before',\n igx_grid_filter_after: 'After',\n igx_grid_filter_today: 'Today',\n igx_grid_filter_yesterday: 'Yesterday',\n igx_grid_filter_thisMonth: 'This Month',\n igx_grid_filter_lastMonth: 'Last Month',\n igx_grid_filter_nextMonth: 'Next Month',\n igx_grid_filter_thisYear: 'This Year',\n igx_grid_filter_lastYear: 'Last Year',\n igx_grid_filter_nextYear: 'Next Year',\n igx_grid_filter_greaterThan: 'Greater Than',\n igx_grid_filter_lessThan: 'Less Than',\n igx_grid_filter_greaterThanOrEqualTo: 'Greater Than Or Equal To',\n igx_grid_filter_lessThanOrEqualTo: 'Less Than Or Equal To',\n igx_grid_filter_true: 'True',\n igx_grid_filter_false: 'False',\n igx_grid_filter_all: 'All',\n igx_grid_filter_condition_placeholder: 'Select filter',\n igx_grid_summary_count: 'Count',\n igx_grid_summary_min: 'Min',\n igx_grid_summary_max: 'Max',\n igx_grid_summary_sum: 'Sum',\n igx_grid_summary_average: 'Avg',\n igx_grid_summary_earliest: 'Earliest',\n igx_grid_summary_latest: 'Latest',\n igx_grid_excel_filter_moving_left: 'move left',\n igx_grid_excel_filter_moving_left_short: 'left',\n igx_grid_excel_filter_moving_right: 'move right',\n igx_grid_excel_filter_moving_right_short: 'right',\n igx_grid_excel_filter_moving_header: 'move',\n igx_grid_excel_filter_sorting_asc: 'ascending',\n igx_grid_excel_filter_sorting_asc_short: 'asc',\n igx_grid_excel_filter_sorting_desc: 'descending',\n igx_grid_excel_filter_sorting_desc_short: 'desc',\n igx_grid_excel_filter_sorting_header: 'sort',\n igx_grid_excel_filter_clear: 'Clear column filters',\n igx_grid_excel_custom_dialog_add: 'add filter',\n igx_grid_excel_custom_dialog_clear: 'Clear filter',\n igx_grid_excel_custom_dialog_header: 'Custom auto-filter on column: ',\n igx_grid_excel_cancel: 'cancel',\n igx_grid_excel_apply: 'apply',\n igx_grid_excel_search_placeholder: 'Search',\n igx_grid_excel_select_all: 'Select All',\n igx_grid_excel_blanks: '(Blanks)',\n igx_grid_excel_hide: 'Hide column',\n igx_grid_excel_pin: 'Pin column',\n igx_grid_excel_unpin: 'Unpin column',\n igx_grid_excel_text_filter: 'Text filter',\n igx_grid_excel_number_filter: 'Number filter',\n igx_grid_excel_date_filter: 'Date filter',\n igx_grid_excel_boolean_filter: 'Boolean filter',\n igx_grid_excel_custom_filter: 'Custom filter...',\n igx_grid_advanced_filter_title: 'Advanced Filtering',\n igx_grid_advanced_filter_and_group: '\"And\" Group',\n igx_grid_advanced_filter_or_group: '\"Or\" Group',\n igx_grid_advanced_filter_end_group: 'End Group',\n igx_grid_advanced_filter_create_and_group: 'Create \"And\" Group',\n igx_grid_advanced_filter_create_or_group: 'Create \"Or\" Group',\n igx_grid_advanced_filter_and_label: 'and',\n igx_grid_advanced_filter_or_label: 'or',\n igx_grid_advanced_filter_add_condition: 'Condition',\n igx_grid_advanced_filter_ungroup: 'Ungroup',\n igx_grid_advanced_filter_delete: 'Delete',\n igx_grid_advanced_filter_delete_filters: 'Delete filters',\n igx_grid_advanced_filter_initial_text: 'Start with creating a group of conditions linked with \"And\" or \"Or\"',\n igx_grid_advanced_filter_column_placeholder: 'Select column',\n igx_grid_advanced_filter_value_placeholder: 'Value'\n};\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n/** @type {?} */\nvar TimePickerResourceStringsEN = {\n igx_time_picker_ok: 'OK',\n igx_time_picker_cancel: 'Cancel'\n};\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n/** @type {?} */\nvar PaginatorResourceStringsEN = {\n igx_paginator_label: 'Items per page'\n};\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n/**\n * @hidden\n * @type {?}\n */\nvar CurrentResourceStrings = {\n GridResStrings: cloneValue(GridResourceStringsEN),\n TimePickerResStrings: cloneValue(TimePickerResourceStringsEN),\n PaginatorResStrings: cloneValue(PaginatorResourceStringsEN)\n};\n/**\n * @param {?} currentStrings\n * @param {?} newStrings\n * @return {?}\n */\nfunction updateResourceStrings(currentStrings, newStrings) {\n var e_1, _a;\n try {\n for (var _b = __values(Object.keys(newStrings)), _c = _b.next(); !_c.done; _c = _b.next()) {\n var key = _c.value;\n if (key in currentStrings) {\n currentStrings[key] = newStrings[key];\n }\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n }\n finally { if (e_1) throw e_1.error; }\n }\n}\n/**\n * Changes the resource strings for all components in the application\n * ```\n * @param {?} resourceStrings to be applied\n * @return {?}\n */\nfunction changei18n(resourceStrings) {\n var e_2, _a;\n try {\n for (var _b = __values(Object.keys(CurrentResourceStrings)), _c = _b.next(); !_c.done; _c = _b.next()) {\n var key = _c.value;\n updateResourceStrings(CurrentResourceStrings[key], resourceStrings);\n }\n }\n catch (e_2_1) { e_2 = { error: e_2_1 }; }\n finally {\n try {\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n }\n finally { if (e_2) throw e_2.error; }\n }\n}\n/**\n * Returns current resource strings for all components\n * @return {?}\n */\nfunction getCurrentResourceStrings() {\n return __assign({}, CurrentResourceStrings.GridResStrings, CurrentResourceStrings.TimePickerResStrings);\n}\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n/**\n * @hidden\n */\nvar IgxGridSummaryService = /** @class */ (function () {\n function IgxGridSummaryService() {\n this.summaryCacheMap = new Map();\n this.rootSummaryID = 'igxGridRootSummary';\n this.summaryHeight = 0;\n this.maxSummariesLenght = 0;\n this.groupingExpressions = [];\n this.retriggerRootPipe = 0;\n this.deleteOperation = false;\n }\n /**\n * @return {?}\n */\n IgxGridSummaryService.prototype.recalculateSummaries = /**\n * @return {?}\n */\n function () {\n this.resetSummaryHeight();\n this.grid.notifyChanges(true);\n };\n /**\n * @param {?=} args\n * @return {?}\n */\n IgxGridSummaryService.prototype.clearSummaryCache = /**\n * @param {?=} args\n * @return {?}\n */\n function (args) {\n if (!this.summaryCacheMap.size) {\n return;\n }\n if (!args) {\n this.summaryCacheMap.clear();\n if (this.grid && this.grid.rootSummariesEnabled) {\n this.retriggerRootPipe++;\n }\n return;\n }\n if (args.data) {\n /** @type {?} */\n var rowID = this.grid.primaryKey ? args.data[this.grid.primaryKey] : args.data;\n this.removeSummaries(rowID);\n }\n if (args.rowID !== undefined && args.rowID !== null) {\n /** @type {?} */\n var columnName = args.cellID ? this.grid.columnList.find(function (col) { return col.index === args.cellID.columnID; }).field : undefined;\n if (columnName && this.grid.rowEditable) {\n return;\n }\n /** @type {?} */\n var isGroupedColumn = this.grid.groupingExpressions &&\n this.grid.groupingExpressions.map(function (expr) { return expr.fieldName; }).indexOf(columnName) !== -1;\n if (columnName && isGroupedColumn) {\n columnName = undefined;\n }\n this.removeSummaries(args.rowID, columnName);\n }\n };\n /**\n * @param {?} rowID\n * @param {?=} columnName\n * @return {?}\n */\n IgxGridSummaryService.prototype.removeSummaries = /**\n * @param {?} rowID\n * @param {?=} columnName\n * @return {?}\n */\n function (rowID, columnName) {\n var _this = this;\n this.deleteSummaryCache(this.rootSummaryID, columnName);\n if (this.summaryCacheMap.size === 1 && this.summaryCacheMap.has(this.rootSummaryID)) {\n return;\n }\n if (this.isTreeGrid) {\n if (this.grid.transactions.enabled && this.deleteOperation) {\n this.deleteOperation = false;\n // TODO: this.removeChildRowSummaries(rowID, columnName);\n this.summaryCacheMap.clear();\n return;\n }\n this.removeAllTreeGridSummaries(rowID, columnName);\n }\n else if (this.isHierarchicalGrid) {\n if (this.grid.transactions.enabled && this.deleteOperation) {\n this.deleteOperation = false;\n this.summaryCacheMap.clear();\n }\n }\n else {\n /** @type {?} */\n var summaryIds = this.getSummaryID(rowID, this.grid.groupingExpressions);\n summaryIds.forEach(function (id) {\n _this.deleteSummaryCache(id, columnName);\n });\n }\n };\n /**\n * @param {?} columnName\n * @return {?}\n */\n IgxGridSummaryService.prototype.removeSummariesCachePerColumn = /**\n * @param {?} columnName\n * @return {?}\n */\n function (columnName) {\n this.summaryCacheMap.forEach(function (cache) {\n if (cache.get(columnName)) {\n cache.delete(columnName);\n }\n });\n if (this.grid.rootSummariesEnabled) {\n this.retriggerRootPipe++;\n }\n };\n /**\n * @return {?}\n */\n IgxGridSummaryService.prototype.calcMaxSummaryHeight = /**\n * @return {?}\n */\n function () {\n if (this.summaryHeight) {\n return this.summaryHeight;\n }\n if (!this.grid.data) {\n return this.summaryHeight = 0;\n }\n /** @type {?} */\n var maxSummaryLength = 0;\n this.grid.columnList.filter(function (col) { return col.hasSummary && !col.hidden; }).forEach(function (column) {\n /** @type {?} */\n var getCurrentSummaryColumn = column.summaries.operate([], [], column.field).length;\n if (getCurrentSummaryColumn) {\n if (maxSummaryLength < getCurrentSummaryColumn) {\n maxSummaryLength = getCurrentSummaryColumn;\n }\n }\n });\n this.maxSummariesLenght = maxSummaryLength;\n this.summaryHeight = maxSummaryLength * this.grid.defaultSummaryHeight;\n return this.summaryHeight;\n };\n /**\n * @param {?} rowID\n * @param {?} data\n * @return {?}\n */\n IgxGridSummaryService.prototype.calculateSummaries = /**\n * @param {?} rowID\n * @param {?} data\n * @return {?}\n */\n function (rowID, data) {\n /** @type {?} */\n var rowSummaries = this.summaryCacheMap.get(rowID);\n if (!rowSummaries) {\n rowSummaries = new Map();\n this.summaryCacheMap.set(rowID, rowSummaries);\n }\n if (!this.hasSummarizedColumns || !data) {\n return rowSummaries;\n }\n this.grid.columnList.filter(function (col) { return col.hasSummary; }).forEach(function (column) {\n if (!rowSummaries.get(column.field)) {\n rowSummaries.set(column.field, column.summaries.operate(data.map(function (r) { return r[column.field]; }), data, column.field));\n }\n });\n return rowSummaries;\n };\n /**\n * @return {?}\n */\n IgxGridSummaryService.prototype.resetSummaryHeight = /**\n * @return {?}\n */\n function () {\n this.summaryHeight = 0;\n ((/** @type {?} */ (this.grid)))._summaryPipeTrigger++;\n if (this.grid.rootSummariesEnabled) {\n this.retriggerRootPipe++;\n }\n };\n /**\n * @param {?} groupingArgs\n * @return {?}\n */\n IgxGridSummaryService.prototype.updateSummaryCache = /**\n * @param {?} groupingArgs\n * @return {?}\n */\n function (groupingArgs) {\n if (this.summaryCacheMap.size === 0 || !this.hasSummarizedColumns) {\n return;\n }\n if (this.groupingExpressions.length === 0) {\n this.groupingExpressions = groupingArgs.expressions.map(function (record) { return record.fieldName; });\n return;\n }\n if (groupingArgs.length === 0) {\n this.groupingExpressions = [];\n this.clearSummaryCache();\n return;\n }\n this.compareGroupingExpressions(this.groupingExpressions, groupingArgs);\n this.groupingExpressions = groupingArgs.expressions.map(function (record) { return record.fieldName; });\n };\n Object.defineProperty(IgxGridSummaryService.prototype, \"hasSummarizedColumns\", {\n get: /**\n * @return {?}\n */\n function () {\n /** @type {?} */\n var summarizedColumns = this.grid.columnList.filter(function (col) { return col.hasSummary && !col.hidden; });\n return summarizedColumns.length > 0;\n },\n enumerable: true,\n configurable: true\n });\n /**\n * @private\n * @param {?} id\n * @param {?} columnName\n * @return {?}\n */\n IgxGridSummaryService.prototype.deleteSummaryCache = /**\n * @private\n * @param {?} id\n * @param {?} columnName\n * @return {?}\n */\n function (id, columnName) {\n if (this.summaryCacheMap.get(id)) {\n /** @type {?} */\n var filteringApplied = columnName && this.grid.filteringExpressionsTree &&\n this.grid.filteringExpressionsTree.filteringOperands.map(function (expr) { return expr.fieldName; }).indexOf(columnName) !== -1;\n if (columnName && this.summaryCacheMap.get(id).get(columnName) && !filteringApplied) {\n this.summaryCacheMap.get(id).delete(columnName);\n }\n else {\n this.summaryCacheMap.delete(id);\n }\n if (id === this.rootSummaryID && this.grid.rootSummariesEnabled) {\n this.retriggerRootPipe++;\n }\n }\n };\n /**\n * @private\n * @param {?} rowID\n * @param {?} groupingExpressions\n * @return {?}\n */\n IgxGridSummaryService.prototype.getSummaryID = /**\n * @private\n * @param {?} rowID\n * @param {?} groupingExpressions\n * @return {?}\n */\n function (rowID, groupingExpressions) {\n var _this = this;\n if (groupingExpressions.length === 0) {\n return [];\n }\n /** @type {?} */\n var summaryIDs = [];\n /** @type {?} */\n var data = this.grid.data;\n if (this.grid.transactions.enabled) {\n data = DataUtil.mergeTransactions(cloneArray(this.grid.data), this.grid.transactions.getAggregatedChanges(true), this.grid.primaryKey);\n }\n /** @type {?} */\n var rowData = this.grid.primaryKey ? data.find(function (rec) { return rec[_this.grid.primaryKey] === rowID; }) : rowID;\n /** @type {?} */\n var id = '{ ';\n groupingExpressions.forEach(function (expr) {\n id += \"'\" + expr.fieldName + \"': '\" + rowData[expr.fieldName] + \"'\";\n summaryIDs.push(id.concat(' }'));\n id += ', ';\n });\n return summaryIDs;\n };\n /**\n * @private\n * @param {?} rowID\n * @param {?=} columnName\n * @return {?}\n */\n IgxGridSummaryService.prototype.removeAllTreeGridSummaries = /**\n * @private\n * @param {?} rowID\n * @param {?=} columnName\n * @return {?}\n */\n function (rowID, columnName) {\n /** @type {?} */\n var row = this.grid.records.get(rowID);\n if (!row) {\n return;\n }\n row = row.children ? row : row.parent;\n while (row) {\n rowID = row.rowID;\n this.deleteSummaryCache(rowID, columnName);\n row = row.parent;\n }\n };\n // TODO: remove only deleted rows\n // TODO: remove only deleted rows\n /**\n * @private\n * @param {?} rowID\n * @param {?=} columnName\n * @return {?}\n */\n IgxGridSummaryService.prototype.removeChildRowSummaries = \n // TODO: remove only deleted rows\n /**\n * @private\n * @param {?} rowID\n * @param {?=} columnName\n * @return {?}\n */\n function (rowID, columnName) {\n };\n /**\n * @private\n * @param {?} current\n * @param {?} groupingArgs\n * @return {?}\n */\n IgxGridSummaryService.prototype.compareGroupingExpressions = /**\n * @private\n * @param {?} current\n * @param {?} groupingArgs\n * @return {?}\n */\n function (current, groupingArgs) {\n var _this = this;\n /** @type {?} */\n var newExpressions = groupingArgs.expressions.map(function (record) { return record.fieldName; });\n /** @type {?} */\n var removedCols = groupingArgs.ungroupedColumns;\n if (current.length <= newExpressions.length) {\n /** @type {?} */\n var newExpr = newExpressions.slice(0, current.length).toString();\n if (current.toString() !== newExpr) {\n this.clearSummaryCache();\n }\n }\n else {\n /** @type {?} */\n var currExpr = current.slice(0, newExpressions.length).toString();\n if (currExpr !== newExpressions.toString()) {\n this.clearSummaryCache();\n return;\n }\n removedCols.map(function (col) { return col.field; }).forEach(function (colName) {\n _this.summaryCacheMap.forEach(function (cache, id) {\n if (id.indexOf(colName) !== -1) {\n _this.summaryCacheMap.delete(id);\n }\n });\n });\n }\n };\n Object.defineProperty(IgxGridSummaryService.prototype, \"isTreeGrid\", {\n get: /**\n * @private\n * @return {?}\n */\n function () {\n return this.grid.nativeElement.tagName.toLowerCase() === 'igx-tree-grid';\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxGridSummaryService.prototype, \"isHierarchicalGrid\", {\n get: /**\n * @private\n * @return {?}\n */\n function () {\n return this.grid.nativeElement.tagName.toLowerCase() === 'igx-hierarchical-grid';\n },\n enumerable: true,\n configurable: true\n });\n IgxGridSummaryService.decorators = [\n { type: Injectable }\n ];\n return IgxGridSummaryService;\n}());\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\nvar IgxSummaryCellComponent = /** @class */ (function () {\n function IgxSummaryCellComponent(element) {\n this.element = element;\n this.firstCellIndentation = 0;\n this.hasSummary = false;\n this.tabindex = 0;\n }\n Object.defineProperty(IgxSummaryCellComponent.prototype, \"visibleColumnIndex\", {\n get: /**\n * @return {?}\n */\n function () {\n return this.column.visibleIndex;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxSummaryCellComponent.prototype, \"describeby\", {\n get: /**\n * @return {?}\n */\n function () {\n return \"Summary_\" + this.column.field;\n },\n enumerable: true,\n configurable: true\n });\n /**\n * @return {?}\n */\n IgxSummaryCellComponent.prototype.onFocus = /**\n * @return {?}\n */\n function () {\n this.focused = true;\n };\n /**\n * @return {?}\n */\n IgxSummaryCellComponent.prototype.onBlur = /**\n * @return {?}\n */\n function () {\n this.focused = false;\n };\n Object.defineProperty(IgxSummaryCellComponent.prototype, \"selectionNode\", {\n get: /**\n * @protected\n * @return {?}\n */\n function () {\n return {\n row: this.rowIndex,\n column: this.column.columnLayoutChild ? this.column.parent.visibleIndex : this.visibleColumnIndex,\n isSummaryRow: true\n };\n },\n enumerable: true,\n configurable: true\n });\n /**\n * @param {?} event\n * @return {?}\n */\n IgxSummaryCellComponent.prototype.dispatchEvent = /**\n * @param {?} event\n * @return {?}\n */\n function (event) {\n // TODO: Refactor\n /** @type {?} */\n var key = event.key.toLowerCase();\n /** @type {?} */\n var ctrl = event.ctrlKey;\n /** @type {?} */\n var shift = event.shiftKey;\n if (!SUPPORTED_KEYS.has(key)) {\n return;\n }\n event.stopPropagation();\n /** @type {?} */\n var args = { targetType: 'summaryCell', target: this, event: event, cancel: false };\n this.grid.onGridKeydown.emit(args);\n if (args.cancel) {\n return;\n }\n event.preventDefault();\n if (!this.isKeySupportedInCell(key, ctrl)) {\n return;\n }\n this.grid.selectionService.keyboardState.shift = shift && !(key === 'tab');\n /** @type {?} */\n var row = this.getRowElementByIndex(this.rowIndex);\n switch (key) {\n case 'tab':\n if (shift) {\n this.grid.navigation.performShiftTabKey(row, this.selectionNode);\n break;\n }\n this.grid.navigation.performTab(row, this.selectionNode);\n break;\n case 'arrowleft':\n case 'home':\n case 'left':\n if (ctrl || key === 'home') {\n this.grid.navigation.onKeydownHome(this.rowIndex, true);\n break;\n }\n this.grid.navigation.onKeydownArrowLeft(this.nativeElement, this.selectionNode);\n break;\n case 'end':\n case 'arrowright':\n case 'right':\n if (ctrl || key === 'end') {\n this.grid.navigation.onKeydownEnd(this.rowIndex, true);\n break;\n }\n this.grid.navigation.onKeydownArrowRight(this.nativeElement, this.selectionNode);\n break;\n case 'arrowup':\n case 'up':\n this.grid.navigation.navigateUp(row, this.selectionNode);\n break;\n case 'arrowdown':\n case 'down':\n this.grid.navigation.navigateDown(row, this.selectionNode);\n break;\n }\n };\n Object.defineProperty(IgxSummaryCellComponent.prototype, \"width\", {\n get: /**\n * @return {?}\n */\n function () {\n return this.column.getCellWidth();\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxSummaryCellComponent.prototype, \"nativeElement\", {\n get: /**\n * @return {?}\n */\n function () {\n return this.element.nativeElement;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxSummaryCellComponent.prototype, \"columnDatatype\", {\n get: /**\n * @return {?}\n */\n function () {\n return this.column.dataType;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxSummaryCellComponent.prototype, \"itemHeight\", {\n get: /**\n * @return {?}\n */\n function () {\n return this.column.grid.defaultSummaryHeight;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxSummaryCellComponent.prototype, \"grid\", {\n /**\n * @hidden\n */\n get: /**\n * @hidden\n * @return {?}\n */\n function () {\n return ((/** @type {?} */ (this.column.grid)));\n },\n enumerable: true,\n configurable: true\n });\n /**\n * @private\n * @param {?} rowIndex\n * @return {?}\n */\n IgxSummaryCellComponent.prototype.getRowElementByIndex = /**\n * @private\n * @param {?} rowIndex\n * @return {?}\n */\n function (rowIndex) {\n /** @type {?} */\n var summaryRows = this.grid.summariesRowList.toArray();\n return summaryRows.find(function (sr) { return sr.dataRowIndex === rowIndex; }).nativeElement;\n };\n /**\n * @private\n * @param {?} key\n * @param {?} ctrl\n * @return {?}\n */\n IgxSummaryCellComponent.prototype.isKeySupportedInCell = /**\n * @private\n * @param {?} key\n * @param {?} ctrl\n * @return {?}\n */\n function (key, ctrl) {\n if (ctrl) {\n return ['arrowup', 'arrowdown', 'up', 'down', 'end', 'home'].indexOf(key) === -1;\n }\n return ['down', 'up', 'left', 'right', 'arrowdown', 'arrowup', 'arrowleft', 'arrowright', 'home', 'end', 'tab'].indexOf(key) !== -1;\n };\n /**\n * @param {?} summary\n * @return {?}\n */\n IgxSummaryCellComponent.prototype.translateSummary = /**\n * @param {?} summary\n * @return {?}\n */\n function (summary) {\n return this.grid.resourceStrings[\"igx_grid_summary_\" + summary.key] || summary.label;\n };\n IgxSummaryCellComponent.decorators = [\n { type: Component, args: [{\n changeDetection: ChangeDetectionStrategy.OnPush,\n preserveWhitespaces: false,\n selector: 'igx-grid-summary-cell',\n template: \"\\n \\n
\\n\\n = 0\\\">\\n
\\n\\n
\\n chevron_right\\n
\\n
\\n\\n {{ translateSummary(summary) }}\\n \\n {{ columnDatatype === 'number' ? (summary.summaryResult | igxdecimal: grid.locale) : columnDatatype === 'date' ? (summary.summaryResult | igxdate: grid.locale) : (summary.summaryResult) }}\\n \\n
\\n
\\n
\\n\"\n }] }\n ];\n /** @nocollapse */\n IgxSummaryCellComponent.ctorParameters = function () { return [\n { type: ElementRef }\n ]; };\n IgxSummaryCellComponent.propDecorators = {\n summaryResults: [{ type: Input }],\n column: [{ type: Input }],\n firstCellIndentation: [{ type: Input }],\n hasSummary: [{ type: Input }],\n density: [{ type: Input }],\n rowIndex: [{ type: Input }, { type: HostBinding, args: ['attr.data-rowIndex',] }],\n visibleColumnIndex: [{ type: HostBinding, args: ['attr.data-visibleIndex',] }],\n tabindex: [{ type: HostBinding, args: ['attr.tabindex',] }],\n describeby: [{ type: HostBinding, args: ['attr.aria-describedby',] }],\n focused: [{ type: HostBinding, args: ['class.igx-grid-summary--active',] }],\n onFocus: [{ type: HostListener, args: ['focus',] }],\n onBlur: [{ type: HostListener, args: ['blur',] }],\n dispatchEvent: [{ type: HostListener, args: ['keydown', ['$event'],] }],\n width: [{ type: HostBinding, args: ['style.min-width',] }, { type: HostBinding, args: ['style.max-width',] }, { type: HostBinding, args: ['style.flex-basis',] }]\n };\n return IgxSummaryCellComponent;\n}());\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\nvar IgxSummaryRowComponent = /** @class */ (function () {\n function IgxSummaryRowComponent(gridAPI, element, cdr) {\n this.gridAPI = gridAPI;\n this.element = element;\n this.cdr = cdr;\n this.firstCellIndentation = -1;\n }\n Object.defineProperty(IgxSummaryRowComponent.prototype, \"dataRowIndex\", {\n get: /**\n * @return {?}\n */\n function () {\n return this.index;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxSummaryRowComponent.prototype, \"minHeight\", {\n get: /**\n * @return {?}\n */\n function () {\n return this.grid.summaryService.calcMaxSummaryHeight() - 1;\n },\n enumerable: true,\n configurable: true\n });\n /**\n * @return {?}\n */\n IgxSummaryRowComponent.prototype.ngDoCheck = /**\n * @return {?}\n */\n function () {\n this.cdr.markForCheck();\n };\n Object.defineProperty(IgxSummaryRowComponent.prototype, \"grid\", {\n get: /**\n * @return {?}\n */\n function () {\n return this.gridAPI.grid;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxSummaryRowComponent.prototype, \"nativeElement\", {\n get: /**\n * @return {?}\n */\n function () {\n return this.element.nativeElement;\n },\n enumerable: true,\n configurable: true\n });\n /**\n * @param {?} columnName\n * @return {?}\n */\n IgxSummaryRowComponent.prototype.getColumnSummaries = /**\n * @param {?} columnName\n * @return {?}\n */\n function (columnName) {\n if (!this.summaries.get(columnName)) {\n return [];\n }\n return this.summaries.get(columnName);\n };\n Object.defineProperty(IgxSummaryRowComponent.prototype, \"pinnedColumns\", {\n /**\n * @hidden\n */\n get: /**\n * @hidden\n * @return {?}\n */\n function () {\n return this.grid.pinnedColumns;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxSummaryRowComponent.prototype, \"unpinnedColumns\", {\n /**\n * @hidden\n */\n get: /**\n * @hidden\n * @return {?}\n */\n function () {\n return this.grid.unpinnedColumns;\n },\n enumerable: true,\n configurable: true\n });\n IgxSummaryRowComponent.decorators = [\n { type: Component, args: [{\n changeDetection: ChangeDetectionStrategy.OnPush,\n preserveWhitespaces: false,\n selector: 'igx-grid-summary-row',\n template: \"\\n \\n \\n \\n 0\\\">\\n \\n \\n \\n \\n \\n \\n \\n\\n\",\n providers: [IgxForOfSyncService]\n }] }\n ];\n /** @nocollapse */\n IgxSummaryRowComponent.ctorParameters = function () { return [\n { type: GridBaseAPIService },\n { type: ElementRef },\n { type: ChangeDetectorRef }\n ]; };\n IgxSummaryRowComponent.propDecorators = {\n summaries: [{ type: Input }],\n gridID: [{ type: Input }],\n index: [{ type: Input }],\n firstCellIndentation: [{ type: Input }],\n dataRowIndex: [{ type: HostBinding, args: ['attr.data-rowIndex',] }],\n summaryCells: [{ type: ViewChildren, args: [IgxSummaryCellComponent, { read: IgxSummaryCellComponent },] }],\n virtDirRow: [{ type: ViewChild, args: ['igxDirRef', { read: IgxGridForOfDirective, static: false },] }]\n };\n return IgxSummaryRowComponent;\n}());\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n/** @enum {number} */\nvar DragScrollDirection = {\n NONE: 0,\n LEFT: 1,\n TOP: 2,\n RIGHT: 3,\n BOTTOM: 4,\n TOPLEFT: 5,\n TOPRIGHT: 6,\n BOTTOMLEFT: 7,\n BOTTOMRIGHT: 8,\n};\nDragScrollDirection[DragScrollDirection.NONE] = 'NONE';\nDragScrollDirection[DragScrollDirection.LEFT] = 'LEFT';\nDragScrollDirection[DragScrollDirection.TOP] = 'TOP';\nDragScrollDirection[DragScrollDirection.RIGHT] = 'RIGHT';\nDragScrollDirection[DragScrollDirection.BOTTOM] = 'BOTTOM';\nDragScrollDirection[DragScrollDirection.TOPLEFT] = 'TOPLEFT';\nDragScrollDirection[DragScrollDirection.TOPRIGHT] = 'TOPRIGHT';\nDragScrollDirection[DragScrollDirection.BOTTOMLEFT] = 'BOTTOMLEFT';\nDragScrollDirection[DragScrollDirection.BOTTOMRIGHT] = 'BOTTOMRIGHT';\nvar IgxGridDragSelectDirective = /** @class */ (function () {\n function IgxGridDragSelectDirective(ref, zone) {\n var _this = this;\n this.ref = ref;\n this.zone = zone;\n this.onDragStop = new EventEmitter();\n this.onDragScroll = new EventEmitter();\n this.end$ = new Subject();\n this.lastDirection = DragScrollDirection.NONE;\n this.startDragSelection = function (ev) {\n if (!_this.activeDrag) {\n return;\n }\n /** @type {?} */\n var x = ev.clientX;\n /** @type {?} */\n var y = ev.clientY;\n /** @type {?} */\n var direction = _this._measureDimensions(x, y);\n if (direction === _this.lastDirection) {\n return;\n }\n _this.unsubscribe();\n _this._sub = _this._interval$.subscribe(function () { return _this.onDragScroll.emit(direction); });\n _this.lastDirection = direction;\n };\n this.stopDragSelection = function () {\n if (!_this.activeDrag) {\n return;\n }\n _this.onDragStop.emit(false);\n _this.unsubscribe();\n _this.lastDirection = DragScrollDirection.NONE;\n };\n this._interval$ = interval(100).pipe(takeUntil(this.end$), filter(function () { return _this.activeDrag; }));\n }\n Object.defineProperty(IgxGridDragSelectDirective.prototype, \"activeDrag\", {\n get: /**\n * @return {?}\n */\n function () {\n return this._activeDrag;\n },\n set: /**\n * @param {?} val\n * @return {?}\n */\n function (val) {\n if (val !== this._activeDrag) {\n this.unsubscribe();\n this._activeDrag = val;\n }\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxGridDragSelectDirective.prototype, \"nativeElement\", {\n get: /**\n * @return {?}\n */\n function () {\n return this.ref.nativeElement;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxGridDragSelectDirective.prototype, \"clientRect\", {\n get: /**\n * @return {?}\n */\n function () {\n return this.nativeElement.getBoundingClientRect();\n },\n enumerable: true,\n configurable: true\n });\n /**\n * @return {?}\n */\n IgxGridDragSelectDirective.prototype.ngOnInit = /**\n * @return {?}\n */\n function () {\n var _this = this;\n this.zone.runOutsideAngular(function () {\n _this.nativeElement.addEventListener('pointerover', _this.startDragSelection);\n _this.nativeElement.addEventListener('pointerleave', _this.stopDragSelection);\n });\n };\n /**\n * @return {?}\n */\n IgxGridDragSelectDirective.prototype.ngOnDestroy = /**\n * @return {?}\n */\n function () {\n var _this = this;\n this.zone.runOutsideAngular(function () {\n _this.nativeElement.removeEventListener('pointerover', _this.startDragSelection);\n _this.nativeElement.removeEventListener('pointerleave', _this.stopDragSelection);\n });\n this.unsubscribe();\n this.end$.complete();\n };\n /**\n * @param {?} x\n * @param {?} y\n * @return {?}\n */\n IgxGridDragSelectDirective.prototype._measureDimensions = /**\n * @param {?} x\n * @param {?} y\n * @return {?}\n */\n function (x, y) {\n /** @type {?} */\n var direction;\n /** @type {?} */\n var rect = this.clientRect;\n /** @type {?} */\n var RATIO = 0.15;\n /** @type {?} */\n var offsetX = Math.trunc(x - rect.left);\n /** @type {?} */\n var offsetY = Math.trunc(y - rect.top);\n /** @type {?} */\n var left = offsetX <= rect.width * RATIO;\n /** @type {?} */\n var right = offsetX >= rect.width * (1 - RATIO);\n /** @type {?} */\n var top = offsetY <= rect.height * RATIO;\n /** @type {?} */\n var bottom = offsetY >= rect.height * (1 - RATIO);\n if (top && left) {\n direction = DragScrollDirection.TOPLEFT;\n }\n else if (top && right) {\n direction = DragScrollDirection.TOPRIGHT;\n }\n else if (bottom && left) {\n direction = DragScrollDirection.BOTTOMLEFT;\n }\n else if (bottom && right) {\n direction = DragScrollDirection.BOTTOMRIGHT;\n }\n else if (top) {\n direction = DragScrollDirection.TOP;\n }\n else if (bottom) {\n direction = DragScrollDirection.BOTTOM;\n }\n else if (left) {\n direction = DragScrollDirection.LEFT;\n }\n else if (right) {\n direction = DragScrollDirection.RIGHT;\n }\n else {\n direction = DragScrollDirection.NONE;\n }\n return direction;\n };\n /**\n * @protected\n * @return {?}\n */\n IgxGridDragSelectDirective.prototype.unsubscribe = /**\n * @protected\n * @return {?}\n */\n function () {\n if (this._sub) {\n this._sub.unsubscribe();\n }\n };\n IgxGridDragSelectDirective.decorators = [\n { type: Directive, args: [{\n selector: '[igxGridDragSelect]'\n },] }\n ];\n /** @nocollapse */\n IgxGridDragSelectDirective.ctorParameters = function () { return [\n { type: ElementRef },\n { type: NgZone }\n ]; };\n IgxGridDragSelectDirective.propDecorators = {\n activeDrag: [{ type: Input, args: ['igxGridDragSelect',] }],\n onDragStop: [{ type: Output }],\n onDragScroll: [{ type: Output }]\n };\n return IgxGridDragSelectDirective;\n}());\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n/**\n * @hidden\n */\nvar IgxTemplateOutletDirective = /** @class */ (function () {\n function IgxTemplateOutletDirective(_viewContainerRef, _zone, cdr) {\n this._viewContainerRef = _viewContainerRef;\n this._zone = _zone;\n this.cdr = cdr;\n /**\n * The embedded views cache. Collection is key-value paired.\n * Key is the template id, value is the embedded view for the related template.\n */\n this._embeddedViewsMap = new Map();\n this.onViewCreated = new EventEmitter();\n this.onViewMoved = new EventEmitter();\n this.onCachedViewLoaded = new EventEmitter();\n this.onBeforeViewDetach = new EventEmitter();\n }\n /**\n * @param {?} changes\n * @return {?}\n */\n IgxTemplateOutletDirective.prototype.ngOnChanges = /**\n * @param {?} changes\n * @return {?}\n */\n function (changes) {\n /** @type {?} */\n var actionType = this._getActionType(changes);\n switch (actionType) {\n case TemplateOutletAction.CreateView:\n this._recreateView();\n break;\n case TemplateOutletAction.MoveView:\n this._moveView();\n break;\n case TemplateOutletAction.UseCachedView:\n this._useCachedView();\n break;\n case TemplateOutletAction.UpdateViewContext:\n this._updateExistingContext(this.igxTemplateOutletContext);\n break;\n }\n };\n /**\n * @return {?}\n */\n IgxTemplateOutletDirective.prototype.cleanCache = /**\n * @return {?}\n */\n function () {\n this._embeddedViewsMap.forEach(function (item) {\n if (!item.destroyed) {\n item.destroy();\n }\n });\n this._embeddedViewsMap.clear();\n };\n /**\n * @param {?} tmplID\n * @return {?}\n */\n IgxTemplateOutletDirective.prototype.cleanView = /**\n * @param {?} tmplID\n * @return {?}\n */\n function (tmplID) {\n /** @type {?} */\n var embView = this._embeddedViewsMap.get(tmplID);\n if (embView) {\n embView.destroy();\n this._embeddedViewsMap.delete(tmplID);\n }\n };\n /**\n * @private\n * @return {?}\n */\n IgxTemplateOutletDirective.prototype._recreateView = /**\n * @private\n * @return {?}\n */\n function () {\n // detach old and create new\n if (this._viewRef) {\n this.onBeforeViewDetach.emit({ owner: this, view: this._viewRef, context: this.igxTemplateOutletContext });\n this._viewContainerRef.detach(this._viewContainerRef.indexOf(this._viewRef));\n }\n if (this.igxTemplateOutlet) {\n this._viewRef = this._viewContainerRef.createEmbeddedView(this.igxTemplateOutlet, this.igxTemplateOutletContext);\n this.onViewCreated.emit({ owner: this, view: this._viewRef, context: this.igxTemplateOutletContext });\n /** @type {?} */\n var tmplId = this.igxTemplateOutletContext['templateID'];\n if (tmplId) {\n // if context contains a template id, check if we have a view for that template already stored in the cache\n // if not create a copy and add it to the cache in detached state.\n // Note: Views in detached state do not appear in the DOM, however they remain stored in memory.\n /** @type {?} */\n var res = this._embeddedViewsMap.get(this.igxTemplateOutletContext['templateID']);\n if (!res) {\n this._embeddedViewsMap.set(this.igxTemplateOutletContext['templateID'], this._viewRef);\n }\n }\n }\n };\n /**\n * @private\n * @return {?}\n */\n IgxTemplateOutletDirective.prototype._moveView = /**\n * @private\n * @return {?}\n */\n function () {\n // using external view and inserting it in current view.\n /** @type {?} */\n var view = this.igxTemplateOutletContext['moveView'];\n /** @type {?} */\n var owner = this.igxTemplateOutletContext['owner'];\n if (view !== this._viewRef) {\n if (owner._viewContainerRef.indexOf(view) !== -1) {\n // detach in case view it is attached somewhere else at the moment.\n this.onBeforeViewDetach.emit({ owner: this, view: this._viewRef, context: this.igxTemplateOutletContext });\n owner._viewContainerRef.detach(owner._viewContainerRef.indexOf(view));\n }\n if (this._viewRef && this._viewContainerRef.indexOf(this._viewRef) !== -1) {\n this.onBeforeViewDetach.emit({ owner: this, view: this._viewRef, context: this.igxTemplateOutletContext });\n this._viewContainerRef.detach(this._viewContainerRef.indexOf(this._viewRef));\n }\n this._viewRef = view;\n this._viewContainerRef.insert(view, 0);\n this._updateExistingContext(this.igxTemplateOutletContext);\n this.onViewMoved.emit({ owner: this, view: this._viewRef, context: this.igxTemplateOutletContext });\n }\n else {\n this._updateExistingContext(this.igxTemplateOutletContext);\n }\n };\n /**\n * @private\n * @return {?}\n */\n IgxTemplateOutletDirective.prototype._useCachedView = /**\n * @private\n * @return {?}\n */\n function () {\n // use view for specific template cached in the current template outlet\n /** @type {?} */\n var tmplID = this.igxTemplateOutletContext['templateID'];\n /** @type {?} */\n var cachedView = tmplID ?\n this._embeddedViewsMap.get(tmplID) :\n null;\n // if view exists, but template has been changed and there is a view in the cache with the related template\n // then detach old view and insert the stored one with the matching template\n // after that update its context.\n this.onBeforeViewDetach.emit({ owner: this, view: this._viewRef, context: this.igxTemplateOutletContext });\n this._viewContainerRef.detach(this._viewContainerRef.indexOf(this._viewRef));\n this._viewRef = cachedView;\n /** @type {?} */\n var oldContext = this._cloneContext(cachedView.context);\n this._viewContainerRef.insert(this._viewRef, 0);\n this._updateExistingContext(this.igxTemplateOutletContext);\n this.onCachedViewLoaded.emit({ owner: this, view: this._viewRef, context: this.igxTemplateOutletContext, oldContext: oldContext });\n };\n /**\n * @private\n * @param {?} changes\n * @return {?}\n */\n IgxTemplateOutletDirective.prototype._shouldRecreateView = /**\n * @private\n * @param {?} changes\n * @return {?}\n */\n function (changes) {\n /** @type {?} */\n var ctxChange = changes['igxTemplateOutletContext'];\n return !!changes['igxTemplateOutlet'] || (ctxChange && this._hasContextShapeChanged(ctxChange));\n };\n /**\n * @private\n * @param {?} ctxChange\n * @return {?}\n */\n IgxTemplateOutletDirective.prototype._hasContextShapeChanged = /**\n * @private\n * @param {?} ctxChange\n * @return {?}\n */\n function (ctxChange) {\n var e_1, _a;\n /** @type {?} */\n var prevCtxKeys = Object.keys(ctxChange.previousValue || {});\n /** @type {?} */\n var currCtxKeys = Object.keys(ctxChange.currentValue || {});\n if (prevCtxKeys.length === currCtxKeys.length) {\n try {\n for (var currCtxKeys_1 = __values(currCtxKeys), currCtxKeys_1_1 = currCtxKeys_1.next(); !currCtxKeys_1_1.done; currCtxKeys_1_1 = currCtxKeys_1.next()) {\n var propName = currCtxKeys_1_1.value;\n if (prevCtxKeys.indexOf(propName) === -1) {\n return true;\n }\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (currCtxKeys_1_1 && !currCtxKeys_1_1.done && (_a = currCtxKeys_1.return)) _a.call(currCtxKeys_1);\n }\n finally { if (e_1) throw e_1.error; }\n }\n return false;\n }\n else {\n return true;\n }\n };\n /**\n * @private\n * @param {?} ctx\n * @return {?}\n */\n IgxTemplateOutletDirective.prototype._updateExistingContext = /**\n * @private\n * @param {?} ctx\n * @return {?}\n */\n function (ctx) {\n var e_2, _a;\n try {\n for (var _b = __values(Object.keys(ctx)), _c = _b.next(); !_c.done; _c = _b.next()) {\n var propName = _c.value;\n ((/** @type {?} */ (this._viewRef.context)))[propName] = ((/** @type {?} */ (this.igxTemplateOutletContext)))[propName];\n }\n }\n catch (e_2_1) { e_2 = { error: e_2_1 }; }\n finally {\n try {\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n }\n finally { if (e_2) throw e_2.error; }\n }\n };\n /**\n * @private\n * @param {?} ctx\n * @return {?}\n */\n IgxTemplateOutletDirective.prototype._cloneContext = /**\n * @private\n * @param {?} ctx\n * @return {?}\n */\n function (ctx) {\n var e_3, _a;\n /** @type {?} */\n var clone = {};\n try {\n for (var _b = __values(Object.keys(ctx)), _c = _b.next(); !_c.done; _c = _b.next()) {\n var propName = _c.value;\n clone[propName] = ctx[propName];\n }\n }\n catch (e_3_1) { e_3 = { error: e_3_1 }; }\n finally {\n try {\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n }\n finally { if (e_3) throw e_3.error; }\n }\n return clone;\n };\n /**\n * @private\n * @param {?} changes\n * @return {?}\n */\n IgxTemplateOutletDirective.prototype._getActionType = /**\n * @private\n * @param {?} changes\n * @return {?}\n */\n function (changes) {\n /** @type {?} */\n var movedView = this.igxTemplateOutletContext['moveView'];\n /** @type {?} */\n var tmplID = this.igxTemplateOutletContext['templateID'];\n /** @type {?} */\n var cachedView = tmplID ?\n this._embeddedViewsMap.get(tmplID) :\n null;\n /** @type {?} */\n var shouldRecreate = this._shouldRecreateView(changes);\n if (movedView) {\n // view is moved from external source\n return TemplateOutletAction.MoveView;\n }\n else if (shouldRecreate && cachedView) {\n // should recreate (template or context change) and there is a matching template in cache\n return TemplateOutletAction.UseCachedView;\n }\n else if (!this._viewRef || shouldRecreate) {\n // no view or should recreate\n return TemplateOutletAction.CreateView;\n }\n else if (this.igxTemplateOutletContext) {\n // has context, update context\n return TemplateOutletAction.UpdateViewContext;\n }\n };\n IgxTemplateOutletDirective.decorators = [\n { type: Directive, args: [{ selector: '[igxTemplateOutlet]' },] }\n ];\n /** @nocollapse */\n IgxTemplateOutletDirective.ctorParameters = function () { return [\n { type: ViewContainerRef },\n { type: NgZone },\n { type: ChangeDetectorRef }\n ]; };\n IgxTemplateOutletDirective.propDecorators = {\n igxTemplateOutletContext: [{ type: Input }],\n igxTemplateOutlet: [{ type: Input }],\n onViewCreated: [{ type: Output }],\n onViewMoved: [{ type: Output }],\n onCachedViewLoaded: [{ type: Output }],\n onBeforeViewDetach: [{ type: Output }]\n };\n return IgxTemplateOutletDirective;\n}());\n/** @enum {number} */\nvar TemplateOutletAction = {\n CreateView: 0,\n MoveView: 1,\n UseCachedView: 2,\n UpdateViewContext: 3,\n};\nTemplateOutletAction[TemplateOutletAction.CreateView] = 'CreateView';\nTemplateOutletAction[TemplateOutletAction.MoveView] = 'MoveView';\nTemplateOutletAction[TemplateOutletAction.UseCachedView] = 'UseCachedView';\nTemplateOutletAction[TemplateOutletAction.UpdateViewContext] = 'UpdateViewContext';\n/**\n * @hidden\n */\nvar IgxTemplateOutletModule = /** @class */ (function () {\n function IgxTemplateOutletModule() {\n }\n IgxTemplateOutletModule.decorators = [\n { type: NgModule, args: [{\n declarations: [IgxTemplateOutletDirective],\n entryComponents: [],\n exports: [IgxTemplateOutletDirective],\n imports: [CommonModule]\n },] }\n ];\n return IgxTemplateOutletModule;\n}());\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\nvar IgxGridColumnResizerComponent = /** @class */ (function () {\n function IgxGridColumnResizerComponent(colResizingService) {\n this.colResizingService = colResizingService;\n }\n IgxGridColumnResizerComponent.decorators = [\n { type: Component, args: [{\n changeDetection: ChangeDetectionStrategy.OnPush,\n preserveWhitespaces: false,\n selector: 'igx-grid-column-resizer',\n template: \"
\\n
\"\n }] }\n ];\n /** @nocollapse */\n IgxGridColumnResizerComponent.ctorParameters = function () { return [\n { type: IgxColumnResizingService }\n ]; };\n IgxGridColumnResizerComponent.propDecorators = {\n resizer: [{ type: ViewChild, args: [IgxColumnResizerDirective, { static: true },] }]\n };\n return IgxGridColumnResizerComponent;\n}());\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n/**\n * @hidden\n */\nvar IgxGridFilteringRowComponent = /** @class */ (function () {\n function IgxGridFilteringRowComponent(filteringService, element, cdr) {\n this.filteringService = filteringService;\n this.element = element;\n this.cdr = cdr;\n this._positionSettings = {\n horizontalStartPoint: HorizontalAlignment.Left,\n verticalStartPoint: VerticalAlignment.Bottom\n };\n this._conditionsOverlaySettings = {\n excludePositionTarget: true,\n closeOnOutsideClick: true,\n modal: false,\n scrollStrategy: new AbsoluteScrollStrategy(),\n positionStrategy: new ConnectedPositioningStrategy(this._positionSettings)\n };\n this._operatorsOverlaySettings = {\n excludePositionTarget: true,\n closeOnOutsideClick: true,\n modal: false,\n scrollStrategy: new AbsoluteScrollStrategy(),\n positionStrategy: new ConnectedPositioningStrategy(this._positionSettings)\n };\n this.chipAreaScrollOffset = 0;\n this._column = null;\n this.isKeyPressed = false;\n this.isComposing = false;\n this._cancelChipClick = false;\n this.cssClass = 'igx-grid__filtering-row';\n }\n Object.defineProperty(IgxGridFilteringRowComponent.prototype, \"column\", {\n get: /**\n * @return {?}\n */\n function () {\n return this._column;\n },\n set: /**\n * @param {?} val\n * @return {?}\n */\n function (val) {\n if (this._column) {\n this.expressionsList.forEach(function (exp) { return exp.isSelected = false; });\n }\n if (val) {\n this._column = val;\n this.expressionsList = this.filteringService.getExpressions(this._column.field);\n this.resetExpression();\n this.chipAreaScrollOffset = 0;\n this.transform(this.chipAreaScrollOffset);\n }\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxGridFilteringRowComponent.prototype, \"value\", {\n get: /**\n * @return {?}\n */\n function () {\n return this.expression ? this.expression.searchVal : null;\n },\n set: /**\n * @param {?} val\n * @return {?}\n */\n function (val) {\n var _this = this;\n if (!val && val !== 0) {\n this.expression.searchVal = null;\n this.showHideArrowButtons();\n }\n else {\n this.expression.searchVal = DataUtil.parseValue(this.column.dataType, val);\n if (this.expressionsList.find(function (item) { return item.expression === _this.expression; }) === undefined) {\n this.addExpression(true);\n }\n }\n this.filter();\n },\n enumerable: true,\n configurable: true\n });\n /**\n * @return {?}\n */\n IgxGridFilteringRowComponent.prototype.ngAfterViewInit = /**\n * @return {?}\n */\n function () {\n this._conditionsOverlaySettings.outlet = this.column.grid.outletDirective;\n this._operatorsOverlaySettings.outlet = this.column.grid.outletDirective;\n /** @type {?} */\n var selectedItem = this.expressionsList.find(function (expr) { return expr.isSelected === true; });\n if (selectedItem) {\n this.expression = selectedItem.expression;\n }\n this.input.nativeElement.focus();\n };\n /**\n * @param {?} event\n * @return {?}\n */\n IgxGridFilteringRowComponent.prototype.onTabKeydown = /**\n * @param {?} event\n * @return {?}\n */\n function (event) {\n event.stopPropagation();\n if (document.activeElement === this.closeButton.nativeElement && !event.shiftKey) {\n this.filteringService.grid.navigation.navigateFirstCellIfPossible(event);\n }\n };\n /**\n * @param {?} event\n * @return {?}\n */\n IgxGridFilteringRowComponent.prototype.onEscKeydown = /**\n * @param {?} event\n * @return {?}\n */\n function (event) {\n event.preventDefault();\n event.stopPropagation();\n this.close();\n };\n Object.defineProperty(IgxGridFilteringRowComponent.prototype, \"disabled\", {\n get: /**\n * @return {?}\n */\n function () {\n return !(this.column.filteringExpressionsTree && this.column.filteringExpressionsTree.filteringOperands.length > 0);\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxGridFilteringRowComponent.prototype, \"template\", {\n get: /**\n * @return {?}\n */\n function () {\n if (this.column.dataType === DataType.Date) {\n return this.defaultDateUI;\n }\n return this.defaultFilterUI;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxGridFilteringRowComponent.prototype, \"type\", {\n get: /**\n * @return {?}\n */\n function () {\n switch (this.column.dataType) {\n case DataType.String:\n case DataType.Boolean:\n return 'text';\n case DataType.Number:\n return 'number';\n }\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxGridFilteringRowComponent.prototype, \"conditions\", {\n get: /**\n * @return {?}\n */\n function () {\n return this.column.filters.conditionList();\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxGridFilteringRowComponent.prototype, \"isUnaryCondition\", {\n get: /**\n * @return {?}\n */\n function () {\n if (this.expression.condition) {\n return this.expression.condition.isUnary;\n }\n else {\n return true;\n }\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxGridFilteringRowComponent.prototype, \"placeholder\", {\n get: /**\n * @return {?}\n */\n function () {\n if (this.expression.condition && this.expression.condition.isUnary) {\n return this.filteringService.getChipLabel(this.expression);\n }\n else if (this.column.dataType === DataType.Date) {\n return this.filteringService.grid.resourceStrings.igx_grid_filter_row_date_placeholder;\n }\n else if (this.column.dataType === DataType.Boolean) {\n return this.filteringService.grid.resourceStrings.igx_grid_filter_row_boolean_placeholder;\n }\n else {\n return this.filteringService.grid.resourceStrings.igx_grid_filter_row_placeholder;\n }\n },\n enumerable: true,\n configurable: true\n });\n /**\n * Event handler for keydown on the input group's prefix.\n */\n /**\n * Event handler for keydown on the input group's prefix.\n * @param {?} event\n * @return {?}\n */\n IgxGridFilteringRowComponent.prototype.onPrefixKeyDown = /**\n * Event handler for keydown on the input group's prefix.\n * @param {?} event\n * @return {?}\n */\n function (event) {\n if ((event.key === \"Enter\" /* ENTER */ || event.key === \" \" /* SPACE */ || event.key === \"Spacebar\" /* SPACE_IE */) && this.dropDownConditions.collapsed) {\n this.toggleConditionsDropDown(this.inputGroupPrefix.nativeElement);\n event.stopImmediatePropagation();\n }\n else if (event.key === \"Tab\" /* TAB */) {\n if (event.shiftKey) {\n event.preventDefault();\n event.stopPropagation();\n }\n else if (!this.dropDownConditions.collapsed) {\n this.toggleConditionsDropDown(this.inputGroupPrefix.nativeElement);\n }\n }\n };\n /**\n * Event handler for keydown on the input.\n */\n /**\n * Event handler for keydown on the input.\n * @param {?} event\n * @return {?}\n */\n IgxGridFilteringRowComponent.prototype.onInputKeyDown = /**\n * Event handler for keydown on the input.\n * @param {?} event\n * @return {?}\n */\n function (event) {\n this.isKeyPressed = true;\n if (this.column.dataType === DataType.Boolean) {\n if (event.key === \"Enter\" /* ENTER */ || event.key === \" \" /* SPACE */ || event.key === \"Spacebar\" /* SPACE_IE */) {\n this.inputGroupPrefix.nativeElement.focus();\n this.toggleConditionsDropDown(this.inputGroupPrefix.nativeElement);\n event.stopPropagation();\n return;\n }\n }\n if (event.key === \"Enter\" /* ENTER */) {\n if (this.isComposing) {\n return;\n }\n this.commitInput();\n }\n else if (event.altKey && (event.key === \"ArrowDown\" /* DOWN_ARROW */ || event.key === \"Down\" /* DOWN_ARROW_IE */)) {\n this.inputGroupPrefix.nativeElement.focus();\n this.toggleConditionsDropDown(this.inputGroupPrefix.nativeElement);\n }\n else if (event.key === \"Escape\" /* ESCAPE */ || event.key === \"Esc\" /* ESCAPE_IE */) {\n event.preventDefault();\n this.close();\n }\n event.stopPropagation();\n };\n /**\n * Event handler for keyup on the input.\n */\n /**\n * Event handler for keyup on the input.\n * @param {?} eventArgs\n * @return {?}\n */\n IgxGridFilteringRowComponent.prototype.onInputKeyUp = /**\n * Event handler for keyup on the input.\n * @param {?} eventArgs\n * @return {?}\n */\n function (eventArgs) {\n this.isKeyPressed = false;\n };\n /**\n * Event handler for input on the input.\n */\n /**\n * Event handler for input on the input.\n * @param {?} eventArgs\n * @return {?}\n */\n IgxGridFilteringRowComponent.prototype.onInput = /**\n * Event handler for input on the input.\n * @param {?} eventArgs\n * @return {?}\n */\n function (eventArgs) {\n // The 'iskeyPressed' flag is needed for a case in IE, because the input event is fired on focus and for some reason,\n // when you have a japanese character as a placeholder, on init the value here is empty string .\n /** @type {?} */\n var target = eventArgs.target;\n if (isEdge() && target.type !== 'number' || this.isKeyPressed && isIE() || target.value || target.checkValidity()) {\n this.value = target.value;\n }\n };\n /**\n * Event handler for compositionstart on the input.\n */\n /**\n * Event handler for compositionstart on the input.\n * @return {?}\n */\n IgxGridFilteringRowComponent.prototype.onCompositionStart = /**\n * Event handler for compositionstart on the input.\n * @return {?}\n */\n function () {\n this.isComposing = true;\n };\n /**\n * Event handler for compositionend on the input.\n */\n /**\n * Event handler for compositionend on the input.\n * @return {?}\n */\n IgxGridFilteringRowComponent.prototype.onCompositionEnd = /**\n * Event handler for compositionend on the input.\n * @return {?}\n */\n function () {\n this.isComposing = false;\n };\n /**\n * Event handler for input click event.\n */\n /**\n * Event handler for input click event.\n * @return {?}\n */\n IgxGridFilteringRowComponent.prototype.onInputClick = /**\n * Event handler for input click event.\n * @return {?}\n */\n function () {\n if (this.column.dataType === DataType.Boolean && this.dropDownConditions.collapsed) {\n this.inputGroupPrefix.nativeElement.focus();\n this.toggleConditionsDropDown(this.inputGroupPrefix.nativeElement);\n }\n };\n /**\n * Event handler for datepicker's close.\n */\n /**\n * Event handler for datepicker's close.\n * @return {?}\n */\n IgxGridFilteringRowComponent.prototype.datePickerClose = /**\n * Event handler for datepicker's close.\n * @return {?}\n */\n function () {\n this.input.nativeElement.focus();\n };\n /**\n * Returns the filtering operation condition for a given value.\n */\n /**\n * Returns the filtering operation condition for a given value.\n * @param {?} value\n * @return {?}\n */\n IgxGridFilteringRowComponent.prototype.getCondition = /**\n * Returns the filtering operation condition for a given value.\n * @param {?} value\n * @return {?}\n */\n function (value) {\n return this.column.filters.condition(value);\n };\n /**\n * Returns the translated condition name for a given value.\n */\n /**\n * Returns the translated condition name for a given value.\n * @param {?} value\n * @return {?}\n */\n IgxGridFilteringRowComponent.prototype.translateCondition = /**\n * Returns the translated condition name for a given value.\n * @param {?} value\n * @return {?}\n */\n function (value) {\n return this.filteringService.grid.resourceStrings[\"igx_grid_filter_\" + this.getCondition(value).name] || value;\n };\n /**\n * Returns the icon name of the current condition.\n */\n /**\n * Returns the icon name of the current condition.\n * @return {?}\n */\n IgxGridFilteringRowComponent.prototype.getIconName = /**\n * Returns the icon name of the current condition.\n * @return {?}\n */\n function () {\n if (this.column.dataType === DataType.Boolean && this.expression.condition === null) {\n return this.getCondition(this.conditions[0]).iconName;\n }\n else {\n return this.expression.condition.iconName;\n }\n };\n /**\n * Returns whether a given condition is selected in dropdown.\n */\n /**\n * Returns whether a given condition is selected in dropdown.\n * @param {?} conditionName\n * @return {?}\n */\n IgxGridFilteringRowComponent.prototype.isConditionSelected = /**\n * Returns whether a given condition is selected in dropdown.\n * @param {?} conditionName\n * @return {?}\n */\n function (conditionName) {\n if (this.expression.condition) {\n return this.expression.condition.name === conditionName;\n }\n else {\n return false;\n }\n };\n /**\n * Clears the current filtering.\n */\n /**\n * Clears the current filtering.\n * @return {?}\n */\n IgxGridFilteringRowComponent.prototype.clearFiltering = /**\n * Clears the current filtering.\n * @return {?}\n */\n function () {\n this.filteringService.clearFilter(this.column.field);\n this.resetExpression();\n if (this.input) {\n this.input.nativeElement.focus();\n }\n this.cdr.detectChanges();\n this.chipAreaScrollOffset = 0;\n this.transform(this.chipAreaScrollOffset);\n };\n /**\n * Commits the value of the input.\n */\n /**\n * Commits the value of the input.\n * @return {?}\n */\n IgxGridFilteringRowComponent.prototype.commitInput = /**\n * Commits the value of the input.\n * @return {?}\n */\n function () {\n /** @type {?} */\n var selectedItem = this.expressionsList.filter(function (ex) { return ex.isSelected === true; });\n selectedItem.forEach(function (e) { return e.isSelected = false; });\n /** @type {?} */\n var indexToDeselect = -1;\n for (var index = 0; index < this.expressionsList.length; index++) {\n /** @type {?} */\n var expression = this.expressionsList[index].expression;\n if (expression.searchVal === null && !expression.condition.isUnary) {\n indexToDeselect = index;\n }\n }\n if (indexToDeselect !== -1) {\n this.removeExpression(indexToDeselect, this.expression);\n }\n this.resetExpression();\n this.scrollChipsWhenAddingExpression();\n };\n /**\n * Clears the value of the input.\n */\n /**\n * Clears the value of the input.\n * @return {?}\n */\n IgxGridFilteringRowComponent.prototype.clearInput = /**\n * Clears the value of the input.\n * @return {?}\n */\n function () {\n this.value = null;\n };\n /**\n * Event handler for keydown on clear button.\n */\n /**\n * Event handler for keydown on clear button.\n * @param {?} eventArgs\n * @return {?}\n */\n IgxGridFilteringRowComponent.prototype.onClearKeyDown = /**\n * Event handler for keydown on clear button.\n * @param {?} eventArgs\n * @return {?}\n */\n function (eventArgs) {\n if (eventArgs.key === \"Enter\" /* ENTER */ || eventArgs.key === \" \" /* SPACE */ || eventArgs.key === \"Spacebar\" /* SPACE_IE */) {\n eventArgs.preventDefault();\n this.clearInput();\n this.input.nativeElement.focus();\n }\n };\n /**\n * Event handler for click on clear button.\n */\n /**\n * Event handler for click on clear button.\n * @return {?}\n */\n IgxGridFilteringRowComponent.prototype.onClearClick = /**\n * Event handler for click on clear button.\n * @return {?}\n */\n function () {\n this.clearInput();\n this.input.nativeElement.focus();\n };\n /**\n * Event handler for keydown on commit button.\n */\n /**\n * Event handler for keydown on commit button.\n * @param {?} eventArgs\n * @return {?}\n */\n IgxGridFilteringRowComponent.prototype.onCommitKeyDown = /**\n * Event handler for keydown on commit button.\n * @param {?} eventArgs\n * @return {?}\n */\n function (eventArgs) {\n if (eventArgs.key === \"Enter\" /* ENTER */ || eventArgs.key === \" \" /* SPACE */ || eventArgs.key === \"Spacebar\" /* SPACE_IE */) {\n eventArgs.preventDefault();\n this.commitInput();\n this.input.nativeElement.focus();\n }\n };\n /**\n * Event handler for click on commit button.\n */\n /**\n * Event handler for click on commit button.\n * @return {?}\n */\n IgxGridFilteringRowComponent.prototype.onCommitClick = /**\n * Event handler for click on commit button.\n * @return {?}\n */\n function () {\n this.commitInput();\n this.input.nativeElement.focus();\n };\n /**\n * Event handler for focusout on the input group.\n */\n /**\n * Event handler for focusout on the input group.\n * @return {?}\n */\n IgxGridFilteringRowComponent.prototype.onInputGroupFocusout = /**\n * Event handler for focusout on the input group.\n * @return {?}\n */\n function () {\n var _this = this;\n if (!this.value && this.value !== 0 &&\n this.expression.condition && !this.expression.condition.isUnary) {\n return;\n }\n requestAnimationFrame(function () {\n /** @type {?} */\n var focusedElement = document.activeElement;\n if (focusedElement.className === 'igx-chip__remove' || focusedElement.tagName === 'IGX-DAY-ITEM') {\n return;\n }\n if (!(focusedElement && _this.inputGroup.nativeElement.contains(focusedElement))\n && _this.dropDownConditions.collapsed) {\n _this.commitInput();\n }\n });\n };\n /**\n * Closes the filtering edit row.\n */\n /**\n * Closes the filtering edit row.\n * @return {?}\n */\n IgxGridFilteringRowComponent.prototype.close = /**\n * Closes the filtering edit row.\n * @return {?}\n */\n function () {\n var _this = this;\n if (this.expressionsList.length === 1 &&\n this.expressionsList[0].expression.searchVal === null &&\n this.expressionsList[0].expression.condition.isUnary === false) {\n this.filteringService.getExpressions(this.column.field).pop();\n this.filter();\n }\n else {\n /** @type {?} */\n var condToRemove = this.expressionsList.filter(function (ex) { return ex.expression.searchVal === null && !ex.expression.condition.isUnary; });\n if (condToRemove && condToRemove.length > 0) {\n condToRemove.forEach(function (c) { return _this.filteringService.removeExpression(_this.column.field, _this.expressionsList.indexOf(c)); });\n this.filter();\n }\n }\n this.filteringService.isFilterRowVisible = false;\n this.filteringService.updateFilteringCell(this.column);\n this.filteringService.focusFilterCellChip(this.column, true);\n this.filteringService.filteredColumn = null;\n this.filteringService.selectedExpression = null;\n this.chipAreaScrollOffset = 0;\n this.transform(this.chipAreaScrollOffset);\n };\n /*\n * noop\n */\n /*\n * noop\n */\n /**\n * @return {?}\n */\n IgxGridFilteringRowComponent.prototype.noop = /*\n * noop\n */\n /**\n * @return {?}\n */\n function () { };\n /**\n * Event handler for date picker's selection.\n */\n /**\n * Event handler for date picker's selection.\n * @param {?} value\n * @return {?}\n */\n IgxGridFilteringRowComponent.prototype.onDateSelected = /**\n * Event handler for date picker's selection.\n * @param {?} value\n * @return {?}\n */\n function (value) {\n this.value = value;\n };\n /**\n * Opens the conditions dropdown.\n */\n /**\n * Opens the conditions dropdown.\n * @param {?} target\n * @return {?}\n */\n IgxGridFilteringRowComponent.prototype.toggleConditionsDropDown = /**\n * Opens the conditions dropdown.\n * @param {?} target\n * @return {?}\n */\n function (target) {\n this._conditionsOverlaySettings.positionStrategy.settings.target = target;\n this.dropDownConditions.toggle(this._conditionsOverlaySettings);\n };\n /**\n * Opens the logic operators dropdown.\n */\n /**\n * Opens the logic operators dropdown.\n * @param {?} eventArgs\n * @param {?} index\n * @return {?}\n */\n IgxGridFilteringRowComponent.prototype.toggleOperatorsDropDown = /**\n * Opens the logic operators dropdown.\n * @param {?} eventArgs\n * @param {?} index\n * @return {?}\n */\n function (eventArgs, index) {\n this._operatorsOverlaySettings.positionStrategy.settings.target = eventArgs.target.parentElement;\n this.dropDownOperators.toArray()[index].toggle(this._operatorsOverlaySettings);\n };\n /**\n * Event handler for change event in conditions dropdown.\n */\n /**\n * Event handler for change event in conditions dropdown.\n * @param {?} eventArgs\n * @return {?}\n */\n IgxGridFilteringRowComponent.prototype.onConditionsChanged = /**\n * Event handler for change event in conditions dropdown.\n * @param {?} eventArgs\n * @return {?}\n */\n function (eventArgs) {\n var _this = this;\n /** @type {?} */\n var value = ((/** @type {?} */ (eventArgs.newSelection))).value;\n this.expression.condition = this.getCondition(value);\n if (this.expression.condition.isUnary) {\n // update grid's filtering on the next cycle to ensure the drop-down is closed\n // if the drop-down is not closed this event handler will be invoked multiple times\n requestAnimationFrame(function () { return _this.unaryConditionChangedCallback(); });\n }\n else {\n requestAnimationFrame(function () { return _this.conditionChangedCallback(); });\n }\n if (this.input) {\n // Add requestAnimationFrame becasue of an issue in IE, where you are still able to write in the input,\n // if it has been focused and then set to readonly.\n requestAnimationFrame(function () { return _this.input.nativeElement.focus(); });\n }\n };\n /**\n * @param {?} args\n * @param {?} chip\n * @return {?}\n */\n IgxGridFilteringRowComponent.prototype.onChipPointerdown = /**\n * @param {?} args\n * @param {?} chip\n * @return {?}\n */\n function (args, chip) {\n /** @type {?} */\n var activeElement = document.activeElement;\n this._cancelChipClick = chip.selected && activeElement &&\n this.inputGroup.nativeElement.contains(activeElement);\n };\n /**\n * @param {?} args\n * @param {?} item\n * @return {?}\n */\n IgxGridFilteringRowComponent.prototype.onChipClick = /**\n * @param {?} args\n * @param {?} item\n * @return {?}\n */\n function (args, item) {\n if (this._cancelChipClick) {\n this._cancelChipClick = false;\n return;\n }\n this.expressionsList.forEach(function (ex) { return ex.isSelected = false; });\n this.toggleChip(item);\n };\n /**\n * @param {?} item\n * @return {?}\n */\n IgxGridFilteringRowComponent.prototype.toggleChip = /**\n * @param {?} item\n * @return {?}\n */\n function (item) {\n item.isSelected = !item.isSelected;\n if (item.isSelected) {\n this.expression = item.expression;\n if (this.input) {\n this.input.nativeElement.focus();\n }\n }\n };\n /**\n * Event handler for chip keydown event.\n */\n /**\n * Event handler for chip keydown event.\n * @param {?} eventArgs\n * @param {?} item\n * @return {?}\n */\n IgxGridFilteringRowComponent.prototype.onChipKeyDown = /**\n * Event handler for chip keydown event.\n * @param {?} eventArgs\n * @param {?} item\n * @return {?}\n */\n function (eventArgs, item) {\n if (eventArgs.key === \"Enter\" /* ENTER */) {\n eventArgs.preventDefault();\n this.toggleChip(item);\n }\n };\n /**\n * Scrolls the first chip into view if the tab key is pressed on the left arrow.\n */\n /**\n * Scrolls the first chip into view if the tab key is pressed on the left arrow.\n * @param {?} event\n * @return {?}\n */\n IgxGridFilteringRowComponent.prototype.onLeftArrowKeyDown = /**\n * Scrolls the first chip into view if the tab key is pressed on the left arrow.\n * @param {?} event\n * @return {?}\n */\n function (event) {\n if (event.key === \"Tab\" /* TAB */) {\n this.chipAreaScrollOffset = 0;\n this.transform(this.chipAreaScrollOffset);\n }\n };\n /**\n * Event handler for chip removed event.\n */\n /**\n * Event handler for chip removed event.\n * @param {?} eventArgs\n * @param {?} item\n * @return {?}\n */\n IgxGridFilteringRowComponent.prototype.onChipRemoved = /**\n * Event handler for chip removed event.\n * @param {?} eventArgs\n * @param {?} item\n * @return {?}\n */\n function (eventArgs, item) {\n /** @type {?} */\n var indexToRemove = this.expressionsList.indexOf(item);\n this.removeExpression(indexToRemove, item.expression);\n this.scrollChipsOnRemove();\n };\n /**\n * Event handler for logic operator changed event.\n */\n /**\n * Event handler for logic operator changed event.\n * @param {?} eventArgs\n * @param {?} expression\n * @return {?}\n */\n IgxGridFilteringRowComponent.prototype.onLogicOperatorChanged = /**\n * Event handler for logic operator changed event.\n * @param {?} eventArgs\n * @param {?} expression\n * @return {?}\n */\n function (eventArgs, expression) {\n var _this = this;\n if (eventArgs.oldSelection) {\n expression.afterOperator = ((/** @type {?} */ (eventArgs.newSelection))).value;\n this.expressionsList[this.expressionsList.indexOf(expression) + 1].beforeOperator = expression.afterOperator;\n // update grid's filtering on the next cycle to ensure the drop-down is closed\n // if the drop-down is not closed this event handler will be invoked multiple times\n requestAnimationFrame(function () { return _this.filter(); });\n }\n };\n /**\n * Scrolls the chips into the chip area when left or right arrows are pressed.\n */\n /**\n * Scrolls the chips into the chip area when left or right arrows are pressed.\n * @param {?} arrowPosition\n * @return {?}\n */\n IgxGridFilteringRowComponent.prototype.scrollChipsOnArrowPress = /**\n * Scrolls the chips into the chip area when left or right arrows are pressed.\n * @param {?} arrowPosition\n * @return {?}\n */\n function (arrowPosition) {\n /** @type {?} */\n var count = 0;\n /** @type {?} */\n var chipAraeChildren = this.chipsArea.element.nativeElement.children;\n /** @type {?} */\n var containerRect = this.container.nativeElement.getBoundingClientRect();\n if (arrowPosition === 'right') {\n for (var index = 0; index < chipAraeChildren.length; index++) {\n if (Math.ceil(chipAraeChildren[index].getBoundingClientRect().right) < Math.ceil(containerRect.right)) {\n count++;\n }\n }\n if (count < chipAraeChildren.length) {\n this.chipAreaScrollOffset -= Math.ceil(chipAraeChildren[count].getBoundingClientRect().right) -\n Math.ceil(containerRect.right) + 1;\n this.transform(this.chipAreaScrollOffset);\n }\n }\n if (arrowPosition === 'left') {\n for (var index = 0; index < chipAraeChildren.length; index++) {\n if (Math.ceil(chipAraeChildren[index].getBoundingClientRect().left) < Math.ceil(containerRect.left)) {\n count++;\n }\n }\n if (count > 0) {\n this.chipAreaScrollOffset += Math.ceil(containerRect.left) -\n Math.ceil(chipAraeChildren[count - 1].getBoundingClientRect().left) + 1;\n this.transform(this.chipAreaScrollOffset);\n }\n }\n };\n /**\n * @private\n * @return {?}\n */\n IgxGridFilteringRowComponent.prototype.showHideArrowButtons = /**\n * @private\n * @return {?}\n */\n function () {\n var _this = this;\n requestAnimationFrame(function () {\n if (_this.filteringService.isFilterRowVisible) {\n /** @type {?} */\n var containerWidth = _this.container.nativeElement.getBoundingClientRect().width;\n _this.chipsAreaWidth = _this.chipsArea.element.nativeElement.getBoundingClientRect().width;\n _this.showArrows = _this.chipsAreaWidth >= containerWidth && _this.isColumnFiltered;\n // TODO: revise the cdr.detectChanges() usage here\n if (!((/** @type {?} */ (_this.cdr))).destroyed) {\n _this.cdr.detectChanges();\n }\n }\n });\n };\n /**\n * @private\n * @param {?} isSelected\n * @return {?}\n */\n IgxGridFilteringRowComponent.prototype.addExpression = /**\n * @private\n * @param {?} isSelected\n * @return {?}\n */\n function (isSelected) {\n /** @type {?} */\n var exprUI = new ExpressionUI();\n exprUI.expression = this.expression;\n exprUI.beforeOperator = this.expressionsList.length > 0 ? FilteringLogic.And : null;\n exprUI.isSelected = isSelected;\n this.expressionsList.push(exprUI);\n /** @type {?} */\n var length = this.expressionsList.length;\n if (this.expressionsList[length - 2]) {\n this.expressionsList[length - 2].afterOperator = this.expressionsList[length - 1].beforeOperator;\n }\n this.showHideArrowButtons();\n };\n /**\n * @private\n * @param {?} indexToRemove\n * @param {?} expression\n * @return {?}\n */\n IgxGridFilteringRowComponent.prototype.removeExpression = /**\n * @private\n * @param {?} indexToRemove\n * @param {?} expression\n * @return {?}\n */\n function (indexToRemove, expression) {\n if (indexToRemove === 0 && this.expressionsList.length === 1) {\n this.clearFiltering();\n return;\n }\n this.filteringService.removeExpression(this.column.field, indexToRemove);\n this.filter();\n if (this.expression === expression) {\n this.resetExpression();\n }\n this.showHideArrowButtons();\n };\n /**\n * @private\n * @return {?}\n */\n IgxGridFilteringRowComponent.prototype.resetExpression = /**\n * @private\n * @return {?}\n */\n function () {\n this.expression = {\n fieldName: this.column.field,\n condition: null,\n searchVal: null,\n ignoreCase: this.column.filteringIgnoreCase\n };\n if (this.column.dataType !== DataType.Boolean) {\n this.expression.condition = this.getCondition(this.conditions[0]);\n }\n if (this.column.dataType === DataType.Date && this.input) {\n this.input.nativeElement.value = null;\n }\n this.showHideArrowButtons();\n };\n /**\n * @private\n * @return {?}\n */\n IgxGridFilteringRowComponent.prototype.scrollChipsWhenAddingExpression = /**\n * @private\n * @return {?}\n */\n function () {\n /** @type {?} */\n var chipAraeChildren = this.chipsArea.element.nativeElement.children;\n if (!chipAraeChildren || chipAraeChildren.length === 0) {\n return;\n }\n /** @type {?} */\n var containerRectRight = Math.ceil(this.container.nativeElement.getBoundingClientRect().right);\n /** @type {?} */\n var lastChipRectRight = Math.ceil(chipAraeChildren[chipAraeChildren.length - 1].getBoundingClientRect().right);\n if (lastChipRectRight >= containerRectRight) {\n this.chipAreaScrollOffset -= lastChipRectRight - containerRectRight;\n this.transform(this.chipAreaScrollOffset);\n }\n };\n /**\n * @hidden\n * Resets the chips area\n * @memberof IgxGridFilteringRowComponent\n */\n /**\n * @hidden\n * Resets the chips area\n * \\@memberof IgxGridFilteringRowComponent\n * @return {?}\n */\n IgxGridFilteringRowComponent.prototype.resetChipsArea = /**\n * @hidden\n * Resets the chips area\n * \\@memberof IgxGridFilteringRowComponent\n * @return {?}\n */\n function () {\n this.chipAreaScrollOffset = 0;\n this.transform(this.chipAreaScrollOffset);\n this.showHideArrowButtons();\n };\n /**\n * @private\n * @param {?} offset\n * @return {?}\n */\n IgxGridFilteringRowComponent.prototype.transform = /**\n * @private\n * @param {?} offset\n * @return {?}\n */\n function (offset) {\n var _this = this;\n requestAnimationFrame(function () {\n _this.chipsArea.element.nativeElement.style.transform = \"translate(\" + offset + \"px)\";\n });\n };\n /**\n * @private\n * @return {?}\n */\n IgxGridFilteringRowComponent.prototype.scrollChipsOnRemove = /**\n * @private\n * @return {?}\n */\n function () {\n /** @type {?} */\n var count = 0;\n /** @type {?} */\n var chipAraeChildren = this.chipsArea.element.nativeElement.children;\n /** @type {?} */\n var containerRect = this.container.nativeElement.getBoundingClientRect();\n for (var index = 0; index < chipAraeChildren.length; index++) {\n if (Math.ceil(chipAraeChildren[index].getBoundingClientRect().right) < Math.ceil(containerRect.left)) {\n count++;\n }\n }\n if (count <= 2) {\n this.chipAreaScrollOffset = 0;\n }\n else {\n /** @type {?} */\n var dif = chipAraeChildren[count].id === 'chip' ? count - 2 : count - 1;\n this.chipAreaScrollOffset += Math.ceil(containerRect.left) - Math.ceil(chipAraeChildren[dif].getBoundingClientRect().left) + 1;\n }\n this.transform(this.chipAreaScrollOffset);\n };\n /**\n * @private\n * @return {?}\n */\n IgxGridFilteringRowComponent.prototype.conditionChangedCallback = /**\n * @private\n * @return {?}\n */\n function () {\n if (!!this.expression.searchVal || this.expression.searchVal === 0) {\n this.filter();\n }\n else if (this.value) {\n this.value = null;\n }\n };\n /**\n * @private\n * @return {?}\n */\n IgxGridFilteringRowComponent.prototype.unaryConditionChangedCallback = /**\n * @private\n * @return {?}\n */\n function () {\n var _this = this;\n if (this.value) {\n this.value = null;\n }\n if (this.expressionsList.find(function (item) { return item.expression === _this.expression; }) === undefined) {\n this.addExpression(true);\n }\n this.filter();\n };\n /**\n * @private\n * @return {?}\n */\n IgxGridFilteringRowComponent.prototype.filter = /**\n * @private\n * @return {?}\n */\n function () {\n this.filteringService.filterInternal(this.column.field);\n };\n Object.defineProperty(IgxGridFilteringRowComponent.prototype, \"isColumnFiltered\", {\n get: /**\n * @private\n * @return {?}\n */\n function () {\n return this.column.filteringExpressionsTree && this.column.filteringExpressionsTree.filteringOperands.length > 0;\n },\n enumerable: true,\n configurable: true\n });\n IgxGridFilteringRowComponent.decorators = [\n { type: Component, args: [{\n changeDetection: ChangeDetectionStrategy.OnPush,\n preserveWhitespaces: false,\n selector: 'igx-grid-filtering-row',\n template: \"\\n\\n \\n \\n {{ translateCondition(condition) }}\\n
\\n\\n\\n\\n \\n \\n \\n \\n \\n \\n done\\n clear\\n \\n \\n\\n\\n\\n \\n \\n \\n \\n \\n \\n \\n \\n done\\n clear\\n \\n \\n \\n \\n\\n\\n\\n\\n\\n\\n
\\n
\\n \\n \\n \\n \\n \\n {{filteringService.getChipLabel(item.expression)}}\\n \\n\\n \\n \\n \\n {{filteringService.grid.resourceStrings.igx_grid_filter_operator_and}}\\n {{filteringService.grid.resourceStrings.igx_grid_filter_operator_or}}\\n \\n \\n \\n \\n
\\n
\\n\\n\\n\\n
\\n \\n \\n
\\n\"\n }] }\n ];\n /** @nocollapse */\n IgxGridFilteringRowComponent.ctorParameters = function () { return [\n { type: IgxFilteringService },\n { type: ElementRef },\n { type: ChangeDetectorRef }\n ]; };\n IgxGridFilteringRowComponent.propDecorators = {\n column: [{ type: Input }],\n value: [{ type: Input }],\n defaultFilterUI: [{ type: ViewChild, args: ['defaultFilterUI', { read: TemplateRef, static: true },] }],\n defaultDateUI: [{ type: ViewChild, args: ['defaultDateUI', { read: TemplateRef, static: true },] }],\n input: [{ type: ViewChild, args: ['input', { read: ElementRef, static: false },] }],\n dropDownConditions: [{ type: ViewChild, args: ['inputGroupConditions', { read: IgxDropDownComponent, static: true },] }],\n chipsArea: [{ type: ViewChild, args: ['chipsArea', { read: IgxChipsAreaComponent, static: true },] }],\n dropDownOperators: [{ type: ViewChildren, args: ['operators', { read: IgxDropDownComponent },] }],\n inputGroup: [{ type: ViewChild, args: ['inputGroup', { read: ElementRef, static: false },] }],\n inputGroupPrefix: [{ type: ViewChild, args: ['inputGroupPrefix', { read: ElementRef, static: false },] }],\n container: [{ type: ViewChild, args: ['container', { static: true },] }],\n operand: [{ type: ViewChild, args: ['operand', { static: false },] }],\n closeButton: [{ type: ViewChild, args: ['closeButton', { static: true },] }],\n cssClass: [{ type: HostBinding, args: ['class.igx-grid__filtering-row',] }],\n onTabKeydown: [{ type: HostListener, args: ['keydown.shift.tab', ['$event'],] }, { type: HostListener, args: ['keydown.tab', ['$event'],] }],\n onEscKeydown: [{ type: HostListener, args: ['keydown.esc', ['$event'],] }]\n };\n return IgxGridFilteringRowComponent;\n}());\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\nvar IgxSelectItemComponent = /** @class */ (function (_super) {\n __extends(IgxSelectItemComponent, _super);\n function IgxSelectItemComponent() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n Object.defineProperty(IgxSelectItemComponent.prototype, \"text\", {\n /**\n * An @Input property that gets/sets the item's text to be displayed in the select component's input when the item is selected.\n *\n * ```typescript\n * //get\n * let mySelectedItem = this.dropDown.selectedItem;\n * let selectedItemText = mySelectedItem.text;\n * ```\n \n * ```html\n * // set\n * \n * ```\n */\n get: /**\n * An \\@Input property that gets/sets the item's text to be displayed in the select component's input when the item is selected.\n *\n * ```typescript\n * //get\n * let mySelectedItem = this.dropDown.selectedItem;\n * let selectedItemText = mySelectedItem.text;\n * ```\n * ```html\n * // set\n * \n * ```\n * @return {?}\n */\n function () {\n return this._text;\n },\n set: /**\n * @param {?} text\n * @return {?}\n */\n function (text) {\n this._text = text;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxSelectItemComponent.prototype, \"itemText\", {\n /** @hidden @internal */\n get: /**\n * @hidden \\@internal\n * @return {?}\n */\n function () {\n if (this._text !== undefined) {\n return this._text;\n }\n // If text @Input is undefined, try extract a meaningful item text out of the item template\n return this.elementRef.nativeElement.textContent.trim();\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxSelectItemComponent.prototype, \"selected\", {\n /**\n * Sets/Gets if the item is the currently selected one in the select\n *\n * ```typescript\n * let mySelectedItem = this.select.selectedItem;\n * let isMyItemSelected = mySelectedItem.selected; // true\n * ```\n */\n get: /**\n * Sets/Gets if the item is the currently selected one in the select\n *\n * ```typescript\n * let mySelectedItem = this.select.selectedItem;\n * let isMyItemSelected = mySelectedItem.selected; // true\n * ```\n * @return {?}\n */\n function () {\n return !this.isHeader && !this.disabled && this.selection.is_item_selected(this.dropDown.id, this);\n },\n set: /**\n * @param {?} value\n * @return {?}\n */\n function (value) {\n if (value && !this.isHeader && !this.disabled) {\n this.dropDown.selectItem(this);\n }\n },\n enumerable: true,\n configurable: true\n });\n /**\n * @return {?}\n */\n IgxSelectItemComponent.prototype.ngDoCheck = /**\n * @return {?}\n */\n function () {\n };\n IgxSelectItemComponent.decorators = [\n { type: Component, args: [{\n selector: 'igx-select-item',\n template: ''\n }] }\n ];\n IgxSelectItemComponent.propDecorators = {\n text: [{ type: Input }]\n };\n return IgxSelectItemComponent;\n}(IgxDropDownItemComponent));\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n/** @enum {number} */\nvar Direction$2 = {\n Top: -1,\n Bottom: 1,\n None: 0,\n};\nDirection$2[Direction$2.Top] = 'Top';\nDirection$2[Direction$2.Bottom] = 'Bottom';\nDirection$2[Direction$2.None] = 'None';\n/**\n * @hidden \\@internal\n */\nvar /**\n * @hidden \\@internal\n */\nSelectPositioningStrategy = /** @class */ (function (_super) {\n __extends(SelectPositioningStrategy, _super);\n function SelectPositioningStrategy(select, settings) {\n var _this = _super.call(this) || this;\n _this.select = select;\n _this._selectDefaultSettings = {\n target: null,\n horizontalDirection: HorizontalAlignment.Right,\n verticalDirection: VerticalAlignment.Bottom,\n horizontalStartPoint: HorizontalAlignment.Left,\n verticalStartPoint: VerticalAlignment.Top,\n openAnimation: fadeIn,\n closeAnimation: fadeOut\n };\n _this.defaultWindowToListOffset = 5;\n _this.viewPort = Util.getViewportRect(document);\n _this.settings = Object.assign({}, _this._selectDefaultSettings, settings);\n return _this;\n }\n /**\n * @private\n * @param {?} contentElement\n * @param {?} outBoundsAmount\n * @return {?}\n */\n SelectPositioningStrategy.prototype.positionAndScrollBottom = /**\n * @private\n * @param {?} contentElement\n * @param {?} outBoundsAmount\n * @return {?}\n */\n function (contentElement, outBoundsAmount) {\n contentElement.style.top = this.viewPort.bottom - this.listContainerBoundRect.height - this.defaultWindowToListOffset + \"px\";\n contentElement.firstElementChild.scrollTop -= outBoundsAmount - (this.defaultWindowToListOffset);\n this.deltaY = this.viewPort.bottom - this.listContainerBoundRect.height -\n this.defaultWindowToListOffset - ((/** @type {?} */ (this.select.input.nativeElement.getBoundingClientRect()))).top;\n };\n /**\n * @private\n * @param {?} contentElement\n * @param {?} CURRENT_POSITION_Y\n * @return {?}\n */\n SelectPositioningStrategy.prototype.positionNoScroll = /**\n * @private\n * @param {?} contentElement\n * @param {?} CURRENT_POSITION_Y\n * @return {?}\n */\n function (contentElement, CURRENT_POSITION_Y) {\n contentElement.style.top = CURRENT_POSITION_Y - this.itemTextToInputTextDiff + \"px\";\n this.deltaY = CURRENT_POSITION_Y -\n ((/** @type {?} */ (this.select.input.nativeElement.getBoundingClientRect()))).top - this.itemTextToInputTextDiff;\n };\n /**\n * @private\n * @param {?} contentElement\n * @param {?} outBoundsAmount\n * @return {?}\n */\n SelectPositioningStrategy.prototype.positionAndScrollTop = /**\n * @private\n * @param {?} contentElement\n * @param {?} outBoundsAmount\n * @return {?}\n */\n function (contentElement, outBoundsAmount) {\n contentElement.style.top = this.viewPort.top + this.defaultWindowToListOffset + \"px\";\n contentElement.firstElementChild.scrollTop += outBoundsAmount + this.itemTextToInputTextDiff + this.defaultWindowToListOffset;\n this.deltaY = this.viewPort.top + this.defaultWindowToListOffset -\n ((/** @type {?} */ (this.select.input.nativeElement.getBoundingClientRect()))).top;\n };\n /**\n * @private\n * @param {?} contentElement\n * @param {?} itemHeight\n * @return {?}\n */\n SelectPositioningStrategy.prototype.getItemsOutOfView = /**\n * @private\n * @param {?} contentElement\n * @param {?} itemHeight\n * @return {?}\n */\n function (contentElement, itemHeight) {\n if (contentElement.firstElementChild.scrollHeight <= contentElement.firstElementChild.clientHeight) {\n return {\n 'currentScroll': 0,\n 'remainingScroll': 0\n };\n }\n /** @type {?} */\n var currentScroll = contentElement.firstElementChild.scrollTop;\n /** @type {?} */\n var remainingScroll = this.select.items.length * itemHeight - currentScroll - this.listContainerBoundRect.height;\n return {\n 'currentScroll': currentScroll,\n 'remainingScroll': remainingScroll\n };\n };\n /**\n * @private\n * @param {?} elementContainer\n * @param {?} document\n * @return {?}\n */\n SelectPositioningStrategy.prototype.listOutOfBounds = /**\n * @private\n * @param {?} elementContainer\n * @param {?} document\n * @return {?}\n */\n function (elementContainer, document) {\n /** @type {?} */\n var container = {\n TOP: elementContainer.top,\n BOTTOM: elementContainer.bottom,\n };\n /** @type {?} */\n var viewPort = Util.getViewportRect(document);\n /** @type {?} */\n var documentElement = {\n TOP: viewPort.top,\n BOTTOM: viewPort.bottom\n };\n /** @type {?} */\n var returnVals = {\n Direction: Direction$2.None,\n Amount: 0\n };\n if (documentElement.TOP + this.defaultWindowToListOffset > container.TOP) {\n returnVals.Direction = Direction$2.Top;\n returnVals.Amount = documentElement.TOP - container.TOP;\n }\n else if (documentElement.BOTTOM - this.defaultWindowToListOffset < container.BOTTOM) {\n returnVals.Direction = Direction$2.Bottom;\n returnVals.Amount = container.BOTTOM - documentElement.BOTTOM;\n }\n else {\n return null;\n }\n return returnVals;\n };\n /**\n * @param {?} contentElement\n * @param {?} size\n * @param {?=} document\n * @param {?=} initialCall\n * @return {?}\n */\n SelectPositioningStrategy.prototype.position = /**\n * @param {?} contentElement\n * @param {?} size\n * @param {?=} document\n * @param {?=} initialCall\n * @return {?}\n */\n function (contentElement, size, document, initialCall) {\n /** @type {?} */\n var inputElement = this.select.input.nativeElement;\n /** @type {?} */\n var inputRect = (/** @type {?} */ (inputElement.getBoundingClientRect()));\n this.listContainerBoundRect = (/** @type {?} */ (contentElement.getBoundingClientRect()));\n /** @type {?} */\n var LIST_HEIGHT = this.listContainerBoundRect.height;\n if (!initialCall) {\n this.deltaX = inputRect.left - this.itemTextPadding - this.itemTextIndent;\n /** @type {?} */\n var point = new Point(this.deltaX, inputRect.top + this.deltaY);\n this.settings.target = point;\n _super.prototype.position.call(this, contentElement, size);\n return;\n }\n /** @type {?} */\n var START = {\n X: inputRect.left,\n Y: inputRect.top\n };\n /** @type {?} */\n var itemElement;\n if (this.select.selectedItem) {\n itemElement = this.select.selectedItem.element.nativeElement;\n // D.P. Feb 22 2019, #3921 Force item scroll before measuring in IE11, due to base scrollToItem delay\n if (isIE()) {\n contentElement.firstElementChild.scrollTop = this.select.calculateScrollPosition(this.select.selectedItem);\n }\n }\n else {\n itemElement = this.select.getFirstItemElement();\n }\n /** @type {?} */\n var inputHeight = inputRect.height;\n /** @type {?} */\n var itemBoundRect = (/** @type {?} */ (itemElement.getBoundingClientRect()));\n /** @type {?} */\n var itemTopListOffset = itemBoundRect.top - this.listContainerBoundRect.top;\n /** @type {?} */\n var itemHeight = itemBoundRect.height;\n /** @type {?} */\n var inputFontSize = window.getComputedStyle(inputElement).fontSize;\n /** @type {?} */\n var numericInputFontSize = parseInt(inputFontSize.slice(0, inputFontSize.indexOf('p')), 10) || 0;\n /** @type {?} */\n var itemFontSize = window.getComputedStyle(itemElement).fontSize;\n /** @type {?} */\n var numericItemFontSize = parseInt(itemFontSize.slice(0, itemFontSize.indexOf('p')), 10) || 0;\n /** @type {?} */\n var inputTextToInputTop = (inputHeight - numericInputFontSize) / 2;\n /** @type {?} */\n var itemTextToItemTop = (itemHeight - numericItemFontSize) / 2;\n this.itemTextToInputTextDiff = itemTextToItemTop - inputTextToInputTop;\n /** @type {?} */\n var CURRENT_POSITION_Y = START.Y - itemTopListOffset;\n /** @type {?} */\n var CURRENT_BOTTOM_Y = CURRENT_POSITION_Y + this.listContainerBoundRect.height;\n /** @type {?} */\n var OUT_OF_BOUNDS = this.listOutOfBounds({ top: CURRENT_POSITION_Y, bottom: CURRENT_BOTTOM_Y }, document);\n if (OUT_OF_BOUNDS) {\n if (OUT_OF_BOUNDS.Direction === Direction$2.Top) {\n CURRENT_POSITION_Y = START.Y;\n }\n else {\n CURRENT_POSITION_Y = -1 * (LIST_HEIGHT - (itemHeight - (itemHeight - inputHeight) / 2));\n CURRENT_POSITION_Y += START.Y;\n }\n }\n /** @type {?} */\n var selectItemPaddingHorizontal = 24;\n /** @type {?} */\n var itemLeftPadding = window.getComputedStyle(itemElement).paddingLeft;\n /** @type {?} */\n var itemTextIndent = window.getComputedStyle(itemElement).textIndent;\n /** @type {?} */\n var numericLeftPadding = parseInt(itemLeftPadding.slice(0, itemLeftPadding.indexOf('p')), 10) || 0;\n /** @type {?} */\n var numericTextIndent = parseInt(itemTextIndent.slice(0, itemTextIndent.indexOf('r')), 10) || 0;\n this.itemTextPadding = numericLeftPadding;\n this.itemTextIndent = numericTextIndent;\n contentElement.style.left += START.X - numericLeftPadding - numericTextIndent + \"px\";\n contentElement.style.width = inputRect.width + 24 + selectItemPaddingHorizontal * 2 + 'px';\n this.deltaX = START.X - numericLeftPadding - numericTextIndent;\n /** @type {?} */\n var currentScroll = this.getItemsOutOfView(contentElement, itemHeight)['currentScroll'];\n /** @type {?} */\n var remainingScroll = this.getItemsOutOfView(contentElement, itemHeight)['remainingScroll'];\n // (5 items or less) no scroll and respectively no remaining scroll\n if (remainingScroll === 0 && currentScroll === 0) {\n this.positionNoScroll(contentElement, CURRENT_POSITION_Y);\n }\n // (more than 5 items) there is scroll OR remaining scroll\n if (remainingScroll !== 0 || currentScroll !== 0) {\n if (remainingScroll !== 0 && !OUT_OF_BOUNDS) {\n this.positionNoScroll(contentElement, CURRENT_POSITION_Y);\n }\n // (more than 5 items) and container getting out of the visible port\n if (remainingScroll !== 0 && OUT_OF_BOUNDS) {\n // if there is enough remaining scroll to scroll the item\n if (remainingScroll > itemHeight) {\n if (OUT_OF_BOUNDS.Direction === Direction$2.Top) {\n this.positionAndScrollTop(contentElement, OUT_OF_BOUNDS.Amount);\n return;\n }\n if (OUT_OF_BOUNDS.Direction === Direction$2.Bottom) {\n // (more than 5 items) and no current scroll\n if (currentScroll === 0) {\n this.positionNoScroll(contentElement, CURRENT_POSITION_Y);\n return;\n // (more than 5 items) and current scroll\n }\n else {\n this.positionAndScrollBottom(contentElement, OUT_OF_BOUNDS.Amount);\n return;\n }\n }\n }\n // if there is no enough remaining scroll to scroll the item\n if (remainingScroll < itemHeight) {\n if (OUT_OF_BOUNDS.Direction === Direction$2.Top) {\n this.positionNoScroll(contentElement, CURRENT_POSITION_Y);\n }\n if (OUT_OF_BOUNDS.Direction === Direction$2.Bottom) {\n this.positionAndScrollBottom(contentElement, OUT_OF_BOUNDS.Amount);\n }\n }\n }\n // (more than 5 items) and no remaining scroll\n if (remainingScroll === 0 && currentScroll !== 0) {\n if (OUT_OF_BOUNDS) {\n if (OUT_OF_BOUNDS.Direction === Direction$2.Bottom) {\n this.positionAndScrollBottom(contentElement, OUT_OF_BOUNDS.Amount);\n return;\n }\n }\n this.positionNoScroll(contentElement, CURRENT_POSITION_Y);\n }\n }\n };\n return SelectPositioningStrategy;\n}(ConnectedPositioningStrategy));\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n/**\n * @hidden \\@internal\n */\nvar IgxSelectToggleIconDirective = /** @class */ (function () {\n function IgxSelectToggleIconDirective() {\n }\n IgxSelectToggleIconDirective.decorators = [\n { type: Directive, args: [{\n selector: '[igxSelectToggleIcon]'\n },] }\n ];\n return IgxSelectToggleIconDirective;\n}());\n/** @type {?} */\nvar noop$6 = function () { };\n/**\n * **Ignite UI for Angular Select** -\n * [Documentation](https://www.infragistics.com/products/ignite-ui-angular/angular/components/select.html)\n *\n * The `igxSelect` provides an input with dropdown list allowing selection of a single item.\n *\n * Example:\n * ```html\n * \n * \n * \n * {{ item.field }}\n * \n * \n * ```\n */\nvar IgxSelectComponent = /** @class */ (function (_super) {\n __extends(IgxSelectComponent, _super);\n function IgxSelectComponent(elementRef, cdr, selection, _displayDensityOptions, _injector) {\n var _this = _super.call(this, elementRef, cdr, selection, _displayDensityOptions) || this;\n _this.elementRef = elementRef;\n _this.cdr = cdr;\n _this.selection = selection;\n _this._displayDensityOptions = _displayDensityOptions;\n _this._injector = _injector;\n _this.ngControl = null;\n /**\n * @hidden \\@internal do not use the drop-down container class\n */\n _this.cssClass = false;\n /**\n * @hidden \\@internal\n */\n _this.allowItemsFocus = false;\n /**\n * An \\@Input property that disables the `IgxSelectComponent`.\n * ```html\n * \n * ```\n */\n _this.disabled = false;\n /**\n * @hidden \\@internal\n */\n _this.maxHeight = '256px';\n /**\n * An \\@Input property that sets how the select will be styled.\n * The allowed values are `line`, `box` and `border`. The default is `line`.\n * ```html\n * \n * ```\n */\n _this.type = 'line';\n /**\n * The custom template, if any, that should be used when rendering the select TOGGLE(open/close) button\n *\n * ```typescript\n * // Set in typescript\n * const myCustomTemplate: TemplateRef = myComponent.customTemplate;\n * myComponent.select.toggleIconTemplate = myCustomTemplate;\n * ```\n * ```html\n * \n * \n * ...\n * \n * {{ collapsed ? 'remove_circle' : 'remove_circle_outline'}}\n * \n * \n * ```\n */\n _this.toggleIconTemplate = null;\n //#region ControlValueAccessor\n /**\n * @hidden \\@internal\n */\n _this._onChangeCallback = noop$6;\n /**\n * @hidden \\@internal\n */\n _this._onTouchedCallback = noop$6;\n /**\n * @hidden \\@internal\n */\n _this.writeValue = function (value) {\n _this.value = value;\n };\n return _this;\n }\n Object.defineProperty(IgxSelectComponent.prototype, \"value\", {\n /**\n * An @Input property that gets/sets the component value.\n *\n * ```typescript\n * // get\n * let selectValue = this.select.value;\n * ```\n *\n * ```typescript\n * // set\n * this.select.value = 'London';\n * ```\n * ```html\n * \n * ```\n */\n get: /**\n * An \\@Input property that gets/sets the component value.\n *\n * ```typescript\n * // get\n * let selectValue = this.select.value;\n * ```\n *\n * ```typescript\n * // set\n * this.select.value = 'London';\n * ```\n * ```html\n * \n * ```\n * @return {?}\n */\n function () {\n return this._value;\n },\n set: /**\n * @param {?} v\n * @return {?}\n */\n function (v) {\n var _this = this;\n if (this._value === v) {\n return;\n }\n this._value = v;\n this.setSelection(this.items.find(function (x) { return x.value === _this.value; }));\n this.cdr.detectChanges();\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxSelectComponent.prototype, \"selectionValue\", {\n /** @hidden @internal */\n get: /**\n * @hidden \\@internal\n * @return {?}\n */\n function () {\n /** @type {?} */\n var selectedItem = this.selectedItem;\n return selectedItem ? selectedItem.itemText : '';\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxSelectComponent.prototype, \"selectedItem\", {\n /** @hidden @internal */\n get: /**\n * @hidden \\@internal\n * @return {?}\n */\n function () {\n return this.selection.first_item(this.id);\n },\n enumerable: true,\n configurable: true\n });\n /** @hidden @internal */\n /**\n * @hidden \\@internal\n * @param {?} fn\n * @return {?}\n */\n IgxSelectComponent.prototype.registerOnChange = /**\n * @hidden \\@internal\n * @param {?} fn\n * @return {?}\n */\n function (fn) {\n this._onChangeCallback = fn;\n };\n /** @hidden @internal */\n /**\n * @hidden \\@internal\n * @param {?} fn\n * @return {?}\n */\n IgxSelectComponent.prototype.registerOnTouched = /**\n * @hidden \\@internal\n * @param {?} fn\n * @return {?}\n */\n function (fn) {\n this._onTouchedCallback = fn;\n };\n /** @hidden @internal */\n /**\n * @hidden \\@internal\n * @param {?} isDisabled\n * @return {?}\n */\n IgxSelectComponent.prototype.setDisabledState = /**\n * @hidden \\@internal\n * @param {?} isDisabled\n * @return {?}\n */\n function (isDisabled) {\n this.disabled = isDisabled;\n };\n //#endregion\n /** @hidden @internal */\n //#endregion\n /**\n * @hidden \\@internal\n * @return {?}\n */\n IgxSelectComponent.prototype.getEditElement = \n //#endregion\n /**\n * @hidden \\@internal\n * @return {?}\n */\n function () {\n return this.input.nativeElement;\n };\n /** @hidden @internal */\n /**\n * @hidden \\@internal\n * @param {?} newSelection\n * @param {?=} event\n * @return {?}\n */\n IgxSelectComponent.prototype.selectItem = /**\n * @hidden \\@internal\n * @param {?} newSelection\n * @param {?=} event\n * @return {?}\n */\n function (newSelection, event) {\n /** @type {?} */\n var oldSelection = this.selectedItem;\n if (event) {\n this.toggleDirective.close();\n }\n if (newSelection === null || newSelection === oldSelection || newSelection.disabled || newSelection.isHeader) {\n return;\n }\n /** @type {?} */\n var args = { oldSelection: oldSelection, newSelection: newSelection, cancel: false };\n this.onSelection.emit(args);\n if (args.cancel) {\n return;\n }\n this.setSelection(newSelection);\n this._value = newSelection.value;\n this.cdr.detectChanges();\n this._onChangeCallback(this.value);\n };\n /** @hidden @internal */\n /**\n * @hidden \\@internal\n * @return {?}\n */\n IgxSelectComponent.prototype.getFirstItemElement = /**\n * @hidden \\@internal\n * @return {?}\n */\n function () {\n return this.children.first.element.nativeElement;\n };\n /**\n * Opens the select\n *\n * ```typescript\n * this.select.open();\n * ```\n */\n /**\n * Opens the select\n *\n * ```typescript\n * this.select.open();\n * ```\n * @param {?=} overlaySettings\n * @return {?}\n */\n IgxSelectComponent.prototype.open = /**\n * Opens the select\n *\n * ```typescript\n * this.select.open();\n * ```\n * @param {?=} overlaySettings\n * @return {?}\n */\n function (overlaySettings) {\n if (this.disabled || this.items.length === 0) {\n return;\n }\n if (!this.selectedItem) {\n this.navigateFirst();\n }\n _super.prototype.open.call(this, Object.assign({}, this._overlayDefaults, this.overlaySettings, overlaySettings));\n };\n /** @hidden @internal */\n /**\n * @hidden \\@internal\n * @return {?}\n */\n IgxSelectComponent.prototype.ngAfterContentInit = /**\n * @hidden \\@internal\n * @return {?}\n */\n function () {\n var _this = this;\n this._overlayDefaults = {\n modal: false,\n closeOnOutsideClick: false,\n positionStrategy: new SelectPositioningStrategy(this, { target: this.inputGroup.element.nativeElement }),\n scrollStrategy: new AbsoluteScrollStrategy(),\n excludePositionTarget: true\n };\n this.children.changes.subscribe(function () {\n _this.setSelection(_this.items.find(function (x) { return x.value === _this.value; }));\n _this.cdr.detectChanges();\n });\n Promise.resolve().then(function () { return _this.children.notifyOnChanges(); });\n };\n /** @hidden @internal */\n /**\n * @hidden \\@internal\n * @param {?} event\n * @return {?}\n */\n IgxSelectComponent.prototype.onToggleOpening = /**\n * @hidden \\@internal\n * @param {?} event\n * @return {?}\n */\n function (event) {\n this.onOpening.emit(event);\n if (event.cancel) {\n return;\n }\n this.scrollToItem(this.selectedItem);\n };\n /**\n * @protected\n * @param {?} direction\n * @param {?=} currentIndex\n * @return {?}\n */\n IgxSelectComponent.prototype.navigate = /**\n * @protected\n * @param {?} direction\n * @param {?=} currentIndex\n * @return {?}\n */\n function (direction, currentIndex) {\n if (this.collapsed && this.selectedItem) {\n this.navigateItem(this.selectedItem.itemIndex);\n }\n _super.prototype.navigate.call(this, direction, currentIndex);\n };\n /**\n * @protected\n * @return {?}\n */\n IgxSelectComponent.prototype.manageRequiredAsterisk = /**\n * @protected\n * @return {?}\n */\n function () {\n if (this.ngControl && this.ngControl.control.validator) {\n // Run the validation with empty object to check if required is enabled.\n /** @type {?} */\n var error = this.ngControl.control.validator((/** @type {?} */ ({})));\n this.inputGroup.isRequired = error && error.required;\n this.cdr.markForCheck();\n }\n };\n /**\n * @private\n * @param {?} item\n * @return {?}\n */\n IgxSelectComponent.prototype.setSelection = /**\n * @private\n * @param {?} item\n * @return {?}\n */\n function (item) {\n if (item && item.value !== undefined && item.value !== null) {\n this.selection.set(this.id, new Set([item]));\n }\n else {\n this.selection.clear(this.id);\n }\n };\n /** @hidden @internal */\n /**\n * @hidden \\@internal\n * @return {?}\n */\n IgxSelectComponent.prototype.onBlur = /**\n * @hidden \\@internal\n * @return {?}\n */\n function () {\n this._onTouchedCallback();\n if (this.ngControl && !this.ngControl.valid) {\n this.input.valid = IgxInputState.INVALID;\n }\n else {\n this.input.valid = IgxInputState.INITIAL;\n }\n if (!this.collapsed) {\n this.toggleDirective.close();\n }\n };\n /** @hidden @internal */\n /**\n * @hidden \\@internal\n * @return {?}\n */\n IgxSelectComponent.prototype.onFocus = /**\n * @hidden \\@internal\n * @return {?}\n */\n function () {\n this._onTouchedCallback();\n };\n /**\n * @protected\n * @return {?}\n */\n IgxSelectComponent.prototype.onStatusChanged = /**\n * @protected\n * @return {?}\n */\n function () {\n if ((this.ngControl.control.touched || this.ngControl.control.dirty) &&\n (this.ngControl.control.validator || this.ngControl.control.asyncValidator)) {\n if (this.inputGroup.isFocused) {\n this.input.valid = this.ngControl.valid ? IgxInputState.VALID : IgxInputState.INVALID;\n }\n else {\n this.input.valid = this.ngControl.valid ? IgxInputState.INITIAL : IgxInputState.INVALID;\n }\n }\n this.manageRequiredAsterisk();\n };\n /**\n * @hidden @internal\n */\n /**\n * @hidden \\@internal\n * @return {?}\n */\n IgxSelectComponent.prototype.ngOnInit = /**\n * @hidden \\@internal\n * @return {?}\n */\n function () {\n this.ngControl = this._injector.get((/** @type {?} */ (NgControl)), null);\n };\n /**\n * @hidden @internal\n */\n /**\n * @hidden \\@internal\n * @return {?}\n */\n IgxSelectComponent.prototype.ngAfterViewInit = /**\n * @hidden \\@internal\n * @return {?}\n */\n function () {\n if (this.ngControl) {\n this._statusChanges$ = this.ngControl.statusChanges.subscribe(this.onStatusChanged.bind(this));\n this.manageRequiredAsterisk();\n }\n this.cdr.detectChanges();\n };\n /**\n * @hidden @internal\n */\n /**\n * @hidden \\@internal\n * @return {?}\n */\n IgxSelectComponent.prototype.ngOnDestroy = /**\n * @hidden \\@internal\n * @return {?}\n */\n function () {\n this.selection.clear(this.id);\n if (this._statusChanges$) {\n this._statusChanges$.unsubscribe();\n }\n };\n IgxSelectComponent.decorators = [\n { type: Component, args: [{\n selector: 'igx-select',\n template: \"\\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n {{ collapsed ? 'arrow_drop_down' : 'arrow_drop_up'}}\\n \\n \\n
\\n \\n \\n
\\n\",\n providers: [\n { provide: NG_VALUE_ACCESSOR, useExisting: IgxSelectComponent, multi: true },\n { provide: IGX_DROPDOWN_BASE, useExisting: IgxSelectComponent }\n ],\n styles: [\"\\n :host {\\n display: block;\\n }\\n \"]\n }] }\n ];\n /** @nocollapse */\n IgxSelectComponent.ctorParameters = function () { return [\n { type: ElementRef },\n { type: ChangeDetectorRef },\n { type: IgxSelectionAPIService },\n { type: undefined, decorators: [{ type: Optional }, { type: Inject, args: [DisplayDensityToken,] }] },\n { type: Injector }\n ]; };\n IgxSelectComponent.propDecorators = {\n inputGroup: [{ type: ViewChild, args: ['inputGroup', { read: IgxInputGroupComponent, static: true },] }],\n input: [{ type: ViewChild, args: ['input', { read: IgxInputDirective, static: true },] }],\n children: [{ type: ContentChildren, args: [forwardRef(function () { return IgxSelectItemComponent; }), { descendants: true },] }],\n label: [{ type: ContentChild, args: [forwardRef(function () { return IgxLabelDirective; }), { static: true },] }],\n value: [{ type: Input }],\n placeholder: [{ type: Input }],\n disabled: [{ type: Input }],\n overlaySettings: [{ type: Input }],\n maxHeight: [{ type: HostBinding, args: ['style.maxHeight',] }],\n type: [{ type: Input }],\n toggleIconTemplate: [{ type: ContentChild, args: [IgxSelectToggleIconDirective, { read: TemplateRef, static: false },] }]\n };\n return IgxSelectComponent;\n}(IgxDropDownComponent));\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n/**\n * @hidden\n */\nvar /**\n * @hidden\n */\nExpressionItem = /** @class */ (function () {\n function ExpressionItem(parent) {\n this.parent = parent;\n }\n return ExpressionItem;\n}());\n/**\n * @hidden\n */\nvar /**\n * @hidden\n */\nExpressionGroupItem = /** @class */ (function (_super) {\n __extends(ExpressionGroupItem, _super);\n function ExpressionGroupItem(operator, parent) {\n var _this = _super.call(this, parent) || this;\n _this.operator = operator;\n _this.children = [];\n return _this;\n }\n return ExpressionGroupItem;\n}(ExpressionItem));\n/**\n * @hidden\n */\nvar /**\n * @hidden\n */\nExpressionOperandItem = /** @class */ (function (_super) {\n __extends(ExpressionOperandItem, _super);\n function ExpressionOperandItem(expression, parent) {\n var _this = _super.call(this, parent) || this;\n _this.expression = expression;\n return _this;\n }\n return ExpressionOperandItem;\n}(ExpressionItem));\n/**\n * @hidden\n */\nvar IgxAdvancedFilteringDialogComponent = /** @class */ (function () {\n function IgxAdvancedFilteringDialogComponent(element, cdr) {\n this.element = element;\n this.cdr = cdr;\n this.selectedExpressions = [];\n this.selectedGroups = [];\n this._positionSettings = {\n horizontalStartPoint: HorizontalAlignment.Right,\n verticalStartPoint: VerticalAlignment.Top\n };\n this._overlaySettings = {\n closeOnOutsideClick: false,\n modal: false,\n positionStrategy: new ConnectedPositioningStrategy(this._positionSettings),\n scrollStrategy: new CloseScrollStrategy()\n };\n this.columnSelectOverlaySettings = {\n scrollStrategy: new AbsoluteScrollStrategy(),\n modal: false,\n closeOnOutsideClick: false,\n excludePositionTarget: true\n };\n this.conditionSelectOverlaySettings = {\n scrollStrategy: new AbsoluteScrollStrategy(),\n modal: false,\n closeOnOutsideClick: false,\n excludePositionTarget: true\n };\n this.display = 'block';\n this.destroy$ = new Subject();\n this._dblClickDelay = 200;\n this._preventChipClick = false;\n }\n Object.defineProperty(IgxAdvancedFilteringDialogComponent.prototype, \"editingInputsContainer\", {\n get: /**\n * @return {?}\n */\n function () {\n return this._editingInputsContainer;\n },\n set: /**\n * @param {?} value\n * @return {?}\n */\n function (value) {\n var _this = this;\n if ((value && !this._editingInputsContainer) ||\n (value && this._editingInputsContainer && this._editingInputsContainer.nativeElement !== value.nativeElement)) {\n requestAnimationFrame(function () {\n _this.scrollElementIntoView(value.nativeElement);\n });\n }\n this._editingInputsContainer = value;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxAdvancedFilteringDialogComponent.prototype, \"addModeContainer\", {\n get: /**\n * @return {?}\n */\n function () {\n return this._addModeContainer;\n },\n set: /**\n * @param {?} value\n * @return {?}\n */\n function (value) {\n var _this = this;\n if ((value && !this._addModeContainer) ||\n (value && this._addModeContainer && this._addModeContainer.nativeElement !== value.nativeElement)) {\n requestAnimationFrame(function () {\n _this.scrollElementIntoView(value.nativeElement);\n });\n }\n this._addModeContainer = value;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxAdvancedFilteringDialogComponent.prototype, \"currentGroupButtonsContainer\", {\n get: /**\n * @return {?}\n */\n function () {\n return this._currentGroupButtonsContainer;\n },\n set: /**\n * @param {?} value\n * @return {?}\n */\n function (value) {\n var _this = this;\n if ((value && !this._currentGroupButtonsContainer) ||\n (value && this._currentGroupButtonsContainer && this._currentGroupButtonsContainer.nativeElement !== value.nativeElement)) {\n requestAnimationFrame(function () {\n _this.scrollElementIntoView(value.nativeElement);\n });\n }\n this._currentGroupButtonsContainer = value;\n },\n enumerable: true,\n configurable: true\n });\n /**\n * @return {?}\n */\n IgxAdvancedFilteringDialogComponent.prototype.ngAfterViewInit = /**\n * @return {?}\n */\n function () {\n var _this = this;\n this._overlaySettings.outlet = this.overlayOutlet;\n this.columnSelectOverlaySettings.outlet = this.overlayOutlet;\n this.conditionSelectOverlaySettings.outlet = this.overlayOutlet;\n this.contextMenuToggle.onClosed.pipe(takeUntil(this.destroy$)).subscribe(function (args) {\n _this.contextualGroup = null;\n });\n };\n /**\n * @return {?}\n */\n IgxAdvancedFilteringDialogComponent.prototype.ngOnDestroy = /**\n * @return {?}\n */\n function () {\n this.destroy$.next(true);\n this.destroy$.complete();\n };\n Object.defineProperty(IgxAdvancedFilteringDialogComponent.prototype, \"displayDensity\", {\n get: /**\n * @return {?}\n */\n function () {\n return this.grid.displayDensity;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxAdvancedFilteringDialogComponent.prototype, \"selectedColumn\", {\n get: /**\n * @return {?}\n */\n function () {\n return this._selectedColumn;\n },\n set: /**\n * @param {?} value\n * @return {?}\n */\n function (value) {\n /** @type {?} */\n var oldValue = this._selectedColumn;\n if (this._selectedColumn !== value) {\n this._selectedColumn = value;\n if (oldValue && this._selectedColumn && this._selectedColumn.dataType !== oldValue.dataType) {\n this.selectedCondition = null;\n this.searchValue = null;\n this.cdr.detectChanges();\n }\n }\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxAdvancedFilteringDialogComponent.prototype, \"grid\", {\n get: /**\n * @return {?}\n */\n function () {\n return this.filteringService.grid;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxAdvancedFilteringDialogComponent.prototype, \"filterableColumns\", {\n get: /**\n * @return {?}\n */\n function () {\n return this.grid.columns.filter(function (col) { return !col.columnGroup && col.filterable; });\n },\n enumerable: true,\n configurable: true\n });\n /**\n * @param {?} dragArgs\n * @return {?}\n */\n IgxAdvancedFilteringDialogComponent.prototype.dragStart = /**\n * @param {?} dragArgs\n * @return {?}\n */\n function (dragArgs) {\n if (!this.contextMenuToggle.collapsed) {\n this.contextMenuToggle.element.style.display = 'none';\n }\n };\n /**\n * @param {?} dragArgs\n * @return {?}\n */\n IgxAdvancedFilteringDialogComponent.prototype.dragEnd = /**\n * @param {?} dragArgs\n * @return {?}\n */\n function (dragArgs) {\n if (!this.contextMenuToggle.collapsed) {\n this.calculateContextMenuTarget();\n this.contextMenuToggle.reposition();\n this.contextMenuToggle.element.style.display = '';\n }\n };\n /**\n * @param {?} parent\n * @param {?=} afterExpression\n * @return {?}\n */\n IgxAdvancedFilteringDialogComponent.prototype.addCondition = /**\n * @param {?} parent\n * @param {?=} afterExpression\n * @return {?}\n */\n function (parent, afterExpression) {\n this.cancelOperandAdd();\n /** @type {?} */\n var operandItem = new ExpressionOperandItem({\n fieldName: null,\n condition: null,\n ignoreCase: true,\n searchVal: null\n }, parent);\n if (afterExpression) {\n /** @type {?} */\n var index = parent.children.indexOf(afterExpression);\n parent.children.splice(index + 1, 0, operandItem);\n }\n else {\n parent.children.push(operandItem);\n }\n this.enterExpressionEdit(operandItem);\n };\n /**\n * @param {?=} parent\n * @param {?=} afterExpression\n * @return {?}\n */\n IgxAdvancedFilteringDialogComponent.prototype.addAndGroup = /**\n * @param {?=} parent\n * @param {?=} afterExpression\n * @return {?}\n */\n function (parent, afterExpression) {\n this.addGroup(FilteringLogic.And, parent, afterExpression);\n };\n /**\n * @param {?=} parent\n * @param {?=} afterExpression\n * @return {?}\n */\n IgxAdvancedFilteringDialogComponent.prototype.addOrGroup = /**\n * @param {?=} parent\n * @param {?=} afterExpression\n * @return {?}\n */\n function (parent, afterExpression) {\n this.addGroup(FilteringLogic.Or, parent, afterExpression);\n };\n /**\n * @param {?} groupItem\n * @return {?}\n */\n IgxAdvancedFilteringDialogComponent.prototype.endGroup = /**\n * @param {?} groupItem\n * @return {?}\n */\n function (groupItem) {\n this.currentGroup = groupItem.parent;\n };\n /**\n * @return {?}\n */\n IgxAdvancedFilteringDialogComponent.prototype.commitOperandEdit = /**\n * @return {?}\n */\n function () {\n if (this.editedExpression) {\n this.editedExpression.expression.fieldName = this.selectedColumn.field;\n this.editedExpression.expression.condition = this.selectedColumn.filters.condition(this.selectedCondition);\n this.editedExpression.expression.searchVal = DataUtil.parseValue(this.selectedColumn.dataType, this.searchValue);\n this.editedExpression.columnHeader = this.selectedColumn.header;\n this.editedExpression.inEditMode = false;\n this.editedExpression = null;\n }\n };\n /**\n * @return {?}\n */\n IgxAdvancedFilteringDialogComponent.prototype.cancelOperandAdd = /**\n * @return {?}\n */\n function () {\n if (this.addModeExpression) {\n this.addModeExpression.inAddMode = false;\n this.addModeExpression = null;\n }\n };\n /**\n * @return {?}\n */\n IgxAdvancedFilteringDialogComponent.prototype.cancelOperandEdit = /**\n * @return {?}\n */\n function () {\n if (this.editedExpression) {\n this.editedExpression.inEditMode = false;\n if (!this.editedExpression.expression.fieldName) {\n this.deleteItem(this.editedExpression);\n }\n this.editedExpression = null;\n }\n };\n /**\n * @return {?}\n */\n IgxAdvancedFilteringDialogComponent.prototype.operandCanBeCommitted = /**\n * @return {?}\n */\n function () {\n return this.selectedColumn && this.selectedCondition &&\n (!!this.searchValue || this.selectedColumn.filters.condition(this.selectedCondition).isUnary);\n };\n /**\n * @return {?}\n */\n IgxAdvancedFilteringDialogComponent.prototype.exitOperandEdit = /**\n * @return {?}\n */\n function () {\n if (!this.editedExpression) {\n return;\n }\n if (this.operandCanBeCommitted()) {\n this.commitOperandEdit();\n }\n else {\n this.cancelOperandEdit();\n }\n };\n /**\n * @param {?} expression\n * @return {?}\n */\n IgxAdvancedFilteringDialogComponent.prototype.isExpressionGroup = /**\n * @param {?} expression\n * @return {?}\n */\n function (expression) {\n return expression instanceof ExpressionGroupItem;\n };\n /**\n * @private\n * @param {?} operator\n * @param {?=} parent\n * @param {?=} afterExpression\n * @return {?}\n */\n IgxAdvancedFilteringDialogComponent.prototype.addGroup = /**\n * @private\n * @param {?} operator\n * @param {?=} parent\n * @param {?=} afterExpression\n * @return {?}\n */\n function (operator, parent, afterExpression) {\n this.cancelOperandAdd();\n /** @type {?} */\n var groupItem = new ExpressionGroupItem(operator, parent);\n if (parent) {\n if (afterExpression) {\n /** @type {?} */\n var index = parent.children.indexOf(afterExpression);\n parent.children.splice(index + 1, 0, groupItem);\n }\n else {\n parent.children.push(groupItem);\n }\n }\n else {\n this.rootGroup = groupItem;\n }\n this.addCondition(groupItem);\n this.currentGroup = groupItem;\n };\n /**\n * @private\n * @param {?} expressionTree\n * @param {?=} parent\n * @return {?}\n */\n IgxAdvancedFilteringDialogComponent.prototype.createExpressionGroupItem = /**\n * @private\n * @param {?} expressionTree\n * @param {?=} parent\n * @return {?}\n */\n function (expressionTree, parent) {\n var e_1, _a;\n /** @type {?} */\n var groupItem;\n if (expressionTree) {\n groupItem = new ExpressionGroupItem(expressionTree.operator, parent);\n try {\n for (var _b = __values(expressionTree.filteringOperands), _c = _b.next(); !_c.done; _c = _b.next()) {\n var expr = _c.value;\n if (expr instanceof FilteringExpressionsTree) {\n groupItem.children.push(this.createExpressionGroupItem(expr, groupItem));\n }\n else {\n /** @type {?} */\n var filteringExpr = (/** @type {?} */ (expr));\n /** @type {?} */\n var exprCopy = {\n fieldName: filteringExpr.fieldName,\n condition: filteringExpr.condition,\n searchVal: filteringExpr.searchVal,\n ignoreCase: filteringExpr.ignoreCase\n };\n /** @type {?} */\n var operandItem = new ExpressionOperandItem(exprCopy, groupItem);\n /** @type {?} */\n var column = this.grid.getColumnByName(filteringExpr.fieldName);\n operandItem.columnHeader = column.header;\n groupItem.children.push(operandItem);\n }\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n }\n finally { if (e_1) throw e_1.error; }\n }\n }\n return groupItem;\n };\n /**\n * @private\n * @param {?} groupItem\n * @return {?}\n */\n IgxAdvancedFilteringDialogComponent.prototype.createExpressionsTreeFromGroupItem = /**\n * @private\n * @param {?} groupItem\n * @return {?}\n */\n function (groupItem) {\n var e_2, _a;\n if (!groupItem) {\n return null;\n }\n /** @type {?} */\n var expressionsTree = new FilteringExpressionsTree(groupItem.operator);\n try {\n for (var _b = __values(groupItem.children), _c = _b.next(); !_c.done; _c = _b.next()) {\n var item = _c.value;\n if (item instanceof ExpressionGroupItem) {\n /** @type {?} */\n var subTree = this.createExpressionsTreeFromGroupItem(((/** @type {?} */ (item))));\n expressionsTree.filteringOperands.push(subTree);\n }\n else {\n expressionsTree.filteringOperands.push(((/** @type {?} */ (item))).expression);\n }\n }\n }\n catch (e_2_1) { e_2 = { error: e_2_1 }; }\n finally {\n try {\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n }\n finally { if (e_2) throw e_2.error; }\n }\n return expressionsTree;\n };\n /**\n * @param {?} expressionItem\n * @return {?}\n */\n IgxAdvancedFilteringDialogComponent.prototype.onChipRemove = /**\n * @param {?} expressionItem\n * @return {?}\n */\n function (expressionItem) {\n this.deleteItem(expressionItem);\n };\n /**\n * @param {?} expressionItem\n * @return {?}\n */\n IgxAdvancedFilteringDialogComponent.prototype.onChipClick = /**\n * @param {?} expressionItem\n * @return {?}\n */\n function (expressionItem) {\n var _this = this;\n this._clickTimer = setTimeout(function () {\n if (!_this._preventChipClick) {\n _this.onToggleExpression(expressionItem);\n }\n _this._preventChipClick = false;\n }, this._dblClickDelay);\n };\n /**\n * @param {?} expressionItem\n * @return {?}\n */\n IgxAdvancedFilteringDialogComponent.prototype.onChipDblClick = /**\n * @param {?} expressionItem\n * @return {?}\n */\n function (expressionItem) {\n clearTimeout(this._clickTimer);\n this._preventChipClick = true;\n this.enterExpressionEdit(expressionItem);\n };\n /**\n * @param {?} expressionItem\n * @return {?}\n */\n IgxAdvancedFilteringDialogComponent.prototype.enterExpressionEdit = /**\n * @param {?} expressionItem\n * @return {?}\n */\n function (expressionItem) {\n this.clearSelection();\n this.exitOperandEdit();\n this.cancelOperandAdd();\n if (this.editedExpression) {\n this.editedExpression.inEditMode = false;\n }\n expressionItem.hovered = false;\n this.selectedColumn = expressionItem.expression.fieldName ?\n this.grid.getColumnByName(expressionItem.expression.fieldName) : null;\n this.selectedCondition = expressionItem.expression.condition ?\n expressionItem.expression.condition.name : null;\n this.searchValue = expressionItem.expression.searchVal;\n expressionItem.inEditMode = true;\n this.editedExpression = expressionItem;\n this.cdr.detectChanges();\n this.columnSelectOverlaySettings.positionStrategy = new AutoPositionStrategy({ target: this.columnSelect.element });\n this.conditionSelectOverlaySettings.positionStrategy = new AutoPositionStrategy({ target: this.conditionSelect.element });\n if (!this.selectedColumn) {\n this.columnSelect.input.nativeElement.focus();\n }\n else if (this.selectedColumn.filters.condition(this.selectedCondition).isUnary) {\n this.conditionSelect.input.nativeElement.focus();\n }\n else {\n this.searchValueInput.nativeElement.focus();\n }\n };\n /**\n * @return {?}\n */\n IgxAdvancedFilteringDialogComponent.prototype.clearSelection = /**\n * @return {?}\n */\n function () {\n var e_3, _a, e_4, _b;\n try {\n for (var _c = __values(this.selectedGroups), _d = _c.next(); !_d.done; _d = _c.next()) {\n var group = _d.value;\n group.selected = false;\n }\n }\n catch (e_3_1) { e_3 = { error: e_3_1 }; }\n finally {\n try {\n if (_d && !_d.done && (_a = _c.return)) _a.call(_c);\n }\n finally { if (e_3) throw e_3.error; }\n }\n this.selectedGroups = [];\n try {\n for (var _e = __values(this.selectedExpressions), _f = _e.next(); !_f.done; _f = _e.next()) {\n var expr = _f.value;\n expr.selected = false;\n }\n }\n catch (e_4_1) { e_4 = { error: e_4_1 }; }\n finally {\n try {\n if (_f && !_f.done && (_b = _e.return)) _b.call(_e);\n }\n finally { if (e_4) throw e_4.error; }\n }\n this.selectedExpressions = [];\n this.toggleContextMenu();\n };\n /**\n * @param {?} expressionItem\n * @return {?}\n */\n IgxAdvancedFilteringDialogComponent.prototype.enterExpressionAdd = /**\n * @param {?} expressionItem\n * @return {?}\n */\n function (expressionItem) {\n this.clearSelection();\n this.exitOperandEdit();\n if (this.addModeExpression) {\n this.addModeExpression.inAddMode = false;\n }\n expressionItem.inAddMode = true;\n this.addModeExpression = expressionItem;\n if (expressionItem.selected) {\n this.toggleExpression(expressionItem);\n }\n };\n /**\n * @private\n * @param {?} expressionItem\n * @return {?}\n */\n IgxAdvancedFilteringDialogComponent.prototype.onToggleExpression = /**\n * @private\n * @param {?} expressionItem\n * @return {?}\n */\n function (expressionItem) {\n this.exitOperandEdit();\n this.toggleExpression(expressionItem);\n this.toggleContextMenu();\n };\n /**\n * @private\n * @param {?} expressionItem\n * @return {?}\n */\n IgxAdvancedFilteringDialogComponent.prototype.toggleExpression = /**\n * @private\n * @param {?} expressionItem\n * @return {?}\n */\n function (expressionItem) {\n expressionItem.selected = !expressionItem.selected;\n if (expressionItem.selected) {\n this.selectedExpressions.push(expressionItem);\n }\n else {\n /** @type {?} */\n var index = this.selectedExpressions.indexOf(expressionItem);\n this.selectedExpressions.splice(index, 1);\n this.deselectParentRecursive(expressionItem);\n }\n };\n /**\n * @private\n * @return {?}\n */\n IgxAdvancedFilteringDialogComponent.prototype.toggleContextMenu = /**\n * @private\n * @return {?}\n */\n function () {\n /** @type {?} */\n var contextualGroup = this.findSingleSelectedGroup();\n if (contextualGroup || this.selectedExpressions.length > 1) {\n this.contextualGroup = contextualGroup;\n if (contextualGroup) {\n this.filteringLogics = [\n {\n label: this.grid.resourceStrings.igx_grid_filter_operator_and,\n selected: contextualGroup.operator === FilteringLogic.And\n },\n {\n label: this.grid.resourceStrings.igx_grid_filter_operator_or,\n selected: contextualGroup.operator === FilteringLogic.Or\n }\n ];\n }\n }\n else {\n this.contextMenuToggle.close();\n }\n };\n /**\n * @private\n * @return {?}\n */\n IgxAdvancedFilteringDialogComponent.prototype.findSingleSelectedGroup = /**\n * @private\n * @return {?}\n */\n function () {\n var _this = this;\n var e_5, _a;\n var _loop_1 = function (group) {\n /** @type {?} */\n var containsAllSelectedExpressions = this_1.selectedExpressions.every(function (op) { return _this.isInsideGroup(op, group); });\n if (containsAllSelectedExpressions) {\n return { value: group };\n }\n };\n var this_1 = this;\n try {\n for (var _b = __values(this.selectedGroups), _c = _b.next(); !_c.done; _c = _b.next()) {\n var group = _c.value;\n var state_1 = _loop_1(group);\n if (typeof state_1 === \"object\")\n return state_1.value;\n }\n }\n catch (e_5_1) { e_5 = { error: e_5_1 }; }\n finally {\n try {\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n }\n finally { if (e_5) throw e_5.error; }\n }\n return null;\n };\n /**\n * @private\n * @param {?} item\n * @param {?} group\n * @return {?}\n */\n IgxAdvancedFilteringDialogComponent.prototype.isInsideGroup = /**\n * @private\n * @param {?} item\n * @param {?} group\n * @return {?}\n */\n function (item, group) {\n if (!item) {\n return false;\n }\n if (item.parent === group) {\n return true;\n }\n return this.isInsideGroup(item.parent, group);\n };\n /**\n * @private\n * @param {?} expressionItem\n * @return {?}\n */\n IgxAdvancedFilteringDialogComponent.prototype.deleteItem = /**\n * @private\n * @param {?} expressionItem\n * @return {?}\n */\n function (expressionItem) {\n if (!expressionItem.parent) {\n this.rootGroup = null;\n this.currentGroup = null;\n return;\n }\n if (expressionItem === this.currentGroup) {\n this.currentGroup = this.currentGroup.parent;\n }\n /** @type {?} */\n var children = expressionItem.parent.children;\n /** @type {?} */\n var index = children.indexOf(expressionItem);\n children.splice(index, 1);\n if (!children.length) {\n this.deleteItem(expressionItem.parent);\n }\n };\n /**\n * @param {?} eventArgs\n * @return {?}\n */\n IgxAdvancedFilteringDialogComponent.prototype.onKeyDown = /**\n * @param {?} eventArgs\n * @return {?}\n */\n function (eventArgs) {\n eventArgs.stopPropagation();\n if (!this.contextMenuToggle.collapsed &&\n (eventArgs.key === \"Escape\" /* ESCAPE */ || eventArgs.key === \"Esc\" /* ESCAPE_IE */)) {\n this.clearSelection();\n }\n };\n /**\n * @return {?}\n */\n IgxAdvancedFilteringDialogComponent.prototype.createAndGroup = /**\n * @return {?}\n */\n function () {\n this.createGroup(FilteringLogic.And);\n };\n /**\n * @return {?}\n */\n IgxAdvancedFilteringDialogComponent.prototype.createOrGroup = /**\n * @return {?}\n */\n function () {\n this.createGroup(FilteringLogic.Or);\n };\n /**\n * @private\n * @param {?} operator\n * @return {?}\n */\n IgxAdvancedFilteringDialogComponent.prototype.createGroup = /**\n * @private\n * @param {?} operator\n * @return {?}\n */\n function (operator) {\n var e_6, _a;\n /** @type {?} */\n var chips = this.chips.toArray();\n /** @type {?} */\n var minIndex = this.selectedExpressions.reduce(function (i, e) { return Math.min(i, chips.findIndex(function (c) { return c.data === e; })); }, Number.MAX_VALUE);\n /** @type {?} */\n var firstExpression = chips[minIndex].data;\n /** @type {?} */\n var parent = firstExpression.parent;\n /** @type {?} */\n var groupItem = new ExpressionGroupItem(operator, parent);\n /** @type {?} */\n var index = parent.children.indexOf(firstExpression);\n parent.children.splice(index, 0, groupItem);\n try {\n for (var _b = __values(this.selectedExpressions), _c = _b.next(); !_c.done; _c = _b.next()) {\n var expr = _c.value;\n this.deleteItem(expr);\n groupItem.children.push(expr);\n expr.parent = groupItem;\n }\n }\n catch (e_6_1) { e_6 = { error: e_6_1 }; }\n finally {\n try {\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n }\n finally { if (e_6) throw e_6.error; }\n }\n this.clearSelection();\n };\n /**\n * @return {?}\n */\n IgxAdvancedFilteringDialogComponent.prototype.deleteFilters = /**\n * @return {?}\n */\n function () {\n var e_7, _a;\n try {\n for (var _b = __values(this.selectedExpressions), _c = _b.next(); !_c.done; _c = _b.next()) {\n var expr = _c.value;\n this.deleteItem(expr);\n }\n }\n catch (e_7_1) { e_7 = { error: e_7_1 }; }\n finally {\n try {\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n }\n finally { if (e_7) throw e_7.error; }\n }\n this.clearSelection();\n };\n /**\n * @param {?} groupItem\n * @return {?}\n */\n IgxAdvancedFilteringDialogComponent.prototype.onGroupClick = /**\n * @param {?} groupItem\n * @return {?}\n */\n function (groupItem) {\n this.toggleGroup(groupItem);\n };\n /**\n * @private\n * @param {?} groupItem\n * @return {?}\n */\n IgxAdvancedFilteringDialogComponent.prototype.toggleGroup = /**\n * @private\n * @param {?} groupItem\n * @return {?}\n */\n function (groupItem) {\n this.exitOperandEdit();\n if (groupItem.children && groupItem.children.length) {\n this.toggleGroupRecursive(groupItem, !groupItem.selected);\n if (!groupItem.selected) {\n this.deselectParentRecursive(groupItem);\n }\n this.toggleContextMenu();\n }\n };\n /**\n * @private\n * @param {?} groupItem\n * @param {?} selected\n * @return {?}\n */\n IgxAdvancedFilteringDialogComponent.prototype.toggleGroupRecursive = /**\n * @private\n * @param {?} groupItem\n * @param {?} selected\n * @return {?}\n */\n function (groupItem, selected) {\n var e_8, _a;\n if (groupItem.selected !== selected) {\n groupItem.selected = selected;\n if (groupItem.selected) {\n this.selectedGroups.push(groupItem);\n }\n else {\n /** @type {?} */\n var index = this.selectedGroups.indexOf(groupItem);\n this.selectedGroups.splice(index, 1);\n }\n }\n try {\n for (var _b = __values(groupItem.children), _c = _b.next(); !_c.done; _c = _b.next()) {\n var expr = _c.value;\n if (expr instanceof ExpressionGroupItem) {\n this.toggleGroupRecursive(expr, selected);\n }\n else {\n /** @type {?} */\n var operandExpression = (/** @type {?} */ (expr));\n if (operandExpression.selected !== selected) {\n this.toggleExpression(operandExpression);\n }\n }\n }\n }\n catch (e_8_1) { e_8 = { error: e_8_1 }; }\n finally {\n try {\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n }\n finally { if (e_8) throw e_8.error; }\n }\n };\n /**\n * @private\n * @param {?} expressionItem\n * @return {?}\n */\n IgxAdvancedFilteringDialogComponent.prototype.deselectParentRecursive = /**\n * @private\n * @param {?} expressionItem\n * @return {?}\n */\n function (expressionItem) {\n /** @type {?} */\n var parent = expressionItem.parent;\n if (parent) {\n if (parent.selected) {\n parent.selected = false;\n /** @type {?} */\n var index = this.selectedGroups.indexOf(parent);\n this.selectedGroups.splice(index, 1);\n }\n this.deselectParentRecursive(parent);\n }\n };\n /**\n * @private\n * @return {?}\n */\n IgxAdvancedFilteringDialogComponent.prototype.calculateContextMenuTarget = /**\n * @private\n * @return {?}\n */\n function () {\n var _this = this;\n /** @type {?} */\n var containerRect = this.expressionsContainer.nativeElement.getBoundingClientRect();\n /** @type {?} */\n var chips = this.chips.filter(function (c) { return _this.selectedExpressions.indexOf(c.data) !== -1; });\n /** @type {?} */\n var minTop = chips.reduce(function (t, c) {\n return Math.min(t, c.elementRef.nativeElement.getBoundingClientRect().top);\n }, Number.MAX_VALUE);\n minTop = Math.max(containerRect.top, minTop);\n minTop = Math.min(containerRect.bottom, minTop);\n /** @type {?} */\n var maxRight = chips.reduce(function (r, c) {\n return Math.max(r, c.elementRef.nativeElement.getBoundingClientRect().right);\n }, 0);\n maxRight = Math.max(maxRight, containerRect.left);\n maxRight = Math.min(maxRight, containerRect.right);\n this._overlaySettings.positionStrategy.settings.target = new Point(maxRight, minTop);\n };\n /**\n * @private\n * @param {?} target\n * @return {?}\n */\n IgxAdvancedFilteringDialogComponent.prototype.scrollElementIntoView = /**\n * @private\n * @param {?} target\n * @return {?}\n */\n function (target) {\n /** @type {?} */\n var container = this.expressionsContainer.nativeElement;\n /** @type {?} */\n var targetOffset = target.offsetTop - container.offsetTop;\n /** @type {?} */\n var delta = 10;\n if (container.scrollTop + delta > targetOffset) {\n container.scrollTop = targetOffset - delta;\n }\n else if (container.scrollTop + container.clientHeight < targetOffset + target.offsetHeight + delta) {\n container.scrollTop = targetOffset + target.offsetHeight + delta - container.clientHeight;\n }\n };\n /**\n * @return {?}\n */\n IgxAdvancedFilteringDialogComponent.prototype.ungroup = /**\n * @return {?}\n */\n function () {\n var _a, e_9, _b;\n /** @type {?} */\n var selectedGroup = this.contextualGroup;\n /** @type {?} */\n var parent = selectedGroup.parent;\n if (parent) {\n /** @type {?} */\n var index = parent.children.indexOf(selectedGroup);\n (_a = parent.children).splice.apply(_a, __spread([index, 1], selectedGroup.children));\n try {\n for (var _c = __values(selectedGroup.children), _d = _c.next(); !_d.done; _d = _c.next()) {\n var expr = _d.value;\n expr.parent = parent;\n }\n }\n catch (e_9_1) { e_9 = { error: e_9_1 }; }\n finally {\n try {\n if (_d && !_d.done && (_b = _c.return)) _b.call(_c);\n }\n finally { if (e_9) throw e_9.error; }\n }\n }\n this.clearSelection();\n };\n /**\n * @return {?}\n */\n IgxAdvancedFilteringDialogComponent.prototype.deleteGroup = /**\n * @return {?}\n */\n function () {\n /** @type {?} */\n var selectedGroup = this.contextualGroup;\n /** @type {?} */\n var parent = selectedGroup.parent;\n if (parent) {\n /** @type {?} */\n var index = parent.children.indexOf(selectedGroup);\n parent.children.splice(index, 1);\n }\n else {\n this.rootGroup = null;\n }\n this.clearSelection();\n };\n /**\n * @param {?} event\n * @return {?}\n */\n IgxAdvancedFilteringDialogComponent.prototype.selectFilteringLogic = /**\n * @param {?} event\n * @return {?}\n */\n function (event) {\n this.contextualGroup.operator = (/** @type {?} */ (event.index));\n };\n /**\n * @param {?} name\n * @return {?}\n */\n IgxAdvancedFilteringDialogComponent.prototype.getConditionFriendlyName = /**\n * @param {?} name\n * @return {?}\n */\n function (name) {\n return this.grid.resourceStrings[\"igx_grid_filter_\" + name] || name;\n };\n /**\n * @param {?} value\n * @return {?}\n */\n IgxAdvancedFilteringDialogComponent.prototype.isDate = /**\n * @param {?} value\n * @return {?}\n */\n function (value) {\n return value instanceof Date;\n };\n /**\n * @return {?}\n */\n IgxAdvancedFilteringDialogComponent.prototype.onExpressionsScrolled = /**\n * @return {?}\n */\n function () {\n if (!this.contextMenuToggle.collapsed) {\n this.calculateContextMenuTarget();\n this.contextMenuToggle.reposition();\n }\n };\n /**\n * @param {?} eventArgs\n * @return {?}\n */\n IgxAdvancedFilteringDialogComponent.prototype.invokeClick = /**\n * @param {?} eventArgs\n * @return {?}\n */\n function (eventArgs) {\n if (eventArgs.key === \"Enter\" /* ENTER */ || eventArgs.key === \" \" /* SPACE */ || eventArgs.key === \"Spacebar\" /* SPACE_IE */) {\n eventArgs.preventDefault();\n ((/** @type {?} */ (eventArgs.currentTarget))).click();\n }\n };\n /**\n * @param {?} event\n * @return {?}\n */\n IgxAdvancedFilteringDialogComponent.prototype.onOutletPointerDown = /**\n * @param {?} event\n * @return {?}\n */\n function (event) {\n // This prevents closing the select's dropdown when clicking the scroll\n event.preventDefault();\n };\n /**\n * @return {?}\n */\n IgxAdvancedFilteringDialogComponent.prototype.getConditionList = /**\n * @return {?}\n */\n function () {\n return this.selectedColumn ? this.selectedColumn.filters.conditionList() : [];\n };\n /**\n * @param {?} filteringService\n * @param {?} overlayService\n * @param {?} overlayComponentId\n * @return {?}\n */\n IgxAdvancedFilteringDialogComponent.prototype.initialize = /**\n * @param {?} filteringService\n * @param {?} overlayService\n * @param {?} overlayComponentId\n * @return {?}\n */\n function (filteringService, overlayService, overlayComponentId) {\n var _this = this;\n this.filteringService = filteringService;\n this.overlayService = overlayService;\n this.overlayComponentId = overlayComponentId;\n this.filteringService.registerSVGIcons();\n // Set pointer-events to none of the overlay content element which blocks the grid interaction after dragging\n this.overlayService.onOpened.pipe(first$1()).subscribe(function () {\n if (_this.element.nativeElement.parentElement) {\n _this.element.nativeElement.parentElement.style['pointer-events'] = 'none';\n }\n });\n if (this.grid.advancedFilteringExpressionsTree) {\n this.rootGroup = this.createExpressionGroupItem(this.grid.advancedFilteringExpressionsTree);\n this.currentGroup = this.rootGroup;\n }\n };\n /**\n * @hidden @internal\n */\n /**\n * @hidden \\@internal\n * @return {?}\n */\n IgxAdvancedFilteringDialogComponent.prototype.setAddButtonFocus = /**\n * @hidden \\@internal\n * @return {?}\n */\n function () {\n if (this.addRootAndGroupButton) {\n this.addRootAndGroupButton.nativeElement.focus();\n }\n else if (this.addConditionButton) {\n this.addConditionButton.nativeElement.focus();\n }\n };\n /**\n * @param {?} expression\n * @param {?=} afterExpression\n * @return {?}\n */\n IgxAdvancedFilteringDialogComponent.prototype.context = /**\n * @param {?} expression\n * @param {?=} afterExpression\n * @return {?}\n */\n function (expression, afterExpression) {\n return {\n $implicit: expression,\n afterExpression: afterExpression\n };\n };\n /**\n * @return {?}\n */\n IgxAdvancedFilteringDialogComponent.prototype.onClearButtonClick = /**\n * @return {?}\n */\n function () {\n this.clearSelection();\n this.cancelOperandAdd();\n this.cancelOperandEdit();\n this.currentGroup = null;\n this.rootGroup = null;\n this.grid.endEdit(false);\n this.grid.advancedFilteringExpressionsTree = null;\n };\n /**\n * @return {?}\n */\n IgxAdvancedFilteringDialogComponent.prototype.closeDialog = /**\n * @return {?}\n */\n function () {\n if (this.overlayComponentId) {\n this.overlayService.hide(this.overlayComponentId);\n }\n };\n /**\n * @return {?}\n */\n IgxAdvancedFilteringDialogComponent.prototype.applyChanges = /**\n * @return {?}\n */\n function () {\n this.grid.endEdit(false);\n this.exitOperandEdit();\n this.grid.advancedFilteringExpressionsTree = this.createExpressionsTreeFromGroupItem(this.rootGroup);\n };\n /**\n * @return {?}\n */\n IgxAdvancedFilteringDialogComponent.prototype.onApplyButtonClick = /**\n * @return {?}\n */\n function () {\n this.applyChanges();\n this.closeDialog();\n };\n /**\n * @return {?}\n */\n IgxAdvancedFilteringDialogComponent.prototype.onChipSelectionEnd = /**\n * @return {?}\n */\n function () {\n /** @type {?} */\n var contextualGroup = this.findSingleSelectedGroup();\n if (contextualGroup || this.selectedExpressions.length > 1) {\n this.contextualGroup = contextualGroup;\n this.calculateContextMenuTarget();\n if (this.contextMenuToggle.collapsed) {\n this.contextMenuToggle.open(this._overlaySettings);\n }\n else {\n this.contextMenuToggle.reposition();\n }\n }\n };\n IgxAdvancedFilteringDialogComponent.decorators = [\n { type: Component, args: [{\n selector: 'igx-advanced-filtering-dialog',\n template: \"\\n
\\n

\\n {{ grid.resourceStrings.igx_grid_advanced_filter_title }}\\n

\\n
\\n
\\n {{ grid.resourceStrings.igx_grid_advanced_filter_and_label }}\\n
\\n
\\n {{ grid.resourceStrings.igx_grid_advanced_filter_or_label }}\\n
\\n
\\n
\\n\\n
\\n \\n\\n \\n\\n \\n\\n
\\n
\\n {{grid.resourceStrings.igx_grid_advanced_filter_initial_text}}\\n
\\n
\\n
\\n\\n \\n \\n\\n \\n\\n \\n\\n \\n\\n \\n
\\n \\n {{ expressionItem.columnHeader || expressionItem.expression.fieldName }}\\n \\n \\n \\n {{ getConditionFriendlyName(expressionItem.expression.condition.name) }}\\n \\n \\n {{ isDate(expressionItem.expression.searchVal) ? (expressionItem.expression.searchVal | igxdate:grid.locale) : expressionItem.expression.searchVal }}\\n \\n \\n
\\n \\n edit\\n \\n \\n add\\n \\n
\\n
\\n\\n
\\n \\n \\n {{column.header || column.field}}\\n \\n \\n\\n \\n \\n \\n \\n \\n \\n {{getConditionFriendlyName(condition)}}\\n \\n \\n\\n \\n \\n \\n\\n \\n \\n \\n \\n \\n \\n \\n\\n
\\n \\n \\n
\\n
\\n\\n
\\n \\n \\n
\\n\\n
\\n\\n \\n
\\n
\\n\\n
\\n \\n \\n \\n
\\n \\n \\n
\\n
\\n
\\n\\n
\\n\\n \\n \\n \\n\\n
\\n \\n\\n \\n \\n \\n\\n \\n \\n {{grid.resourceStrings.igx_grid_advanced_filter_ungroup}}\\n \\n \\n delete\\n {{grid.resourceStrings.igx_grid_advanced_filter_delete}}\\n \\n \\n \\n \\n {{grid.resourceStrings.igx_grid_advanced_filter_create_and_group}}\\n \\n \\n {{grid.resourceStrings.igx_grid_advanced_filter_create_or_group}}\\n \\n \\n {{grid.resourceStrings.igx_grid_advanced_filter_delete_filters}}\\n \\n \\n
\\n
\\n\\n
\\n \\n\\n
\\n \\n \\n
\\n
\\n\\n
\\n
\\n\"\n }] }\n ];\n /** @nocollapse */\n IgxAdvancedFilteringDialogComponent.ctorParameters = function () { return [\n { type: ElementRef },\n { type: ChangeDetectorRef }\n ]; };\n IgxAdvancedFilteringDialogComponent.propDecorators = {\n filteringService: [{ type: Input }],\n overlayComponentId: [{ type: Input }],\n overlayService: [{ type: Input }],\n columnSelect: [{ type: ViewChild, args: ['columnSelect', { read: IgxSelectComponent, static: false },] }],\n conditionSelect: [{ type: ViewChild, args: ['conditionSelect', { read: IgxSelectComponent, static: false },] }],\n searchValueInput: [{ type: ViewChild, args: ['searchValueInput', { read: ElementRef, static: false },] }],\n addRootAndGroupButton: [{ type: ViewChild, args: ['addRootAndGroupButton', { read: ElementRef, static: false },] }],\n addConditionButton: [{ type: ViewChild, args: ['addConditionButton', { read: ElementRef, static: false },] }],\n editingInputsContainer: [{ type: ViewChild, args: ['editingInputsContainer', { read: ElementRef, static: false },] }],\n addModeContainer: [{ type: ViewChild, args: ['addModeContainer', { read: ElementRef, static: false },] }],\n currentGroupButtonsContainer: [{ type: ViewChild, args: ['currentGroupButtonsContainer', { read: ElementRef, static: false },] }],\n contextMenuToggle: [{ type: ViewChild, args: [IgxToggleDirective, { static: true },] }],\n chips: [{ type: ViewChildren, args: [IgxChipComponent,] }],\n expressionsContainer: [{ type: ViewChild, args: ['expressionsContainer', { static: true },] }],\n overlayOutlet: [{ type: ViewChild, args: ['overlayOutlet', { read: IgxOverlayOutletDirective, static: true },] }],\n display: [{ type: HostBinding, args: ['style.display',] }]\n };\n return IgxAdvancedFilteringDialogComponent;\n}());\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n/**\n * @hidden\n */\nvar IgxRowSelectorDirective = /** @class */ (function () {\n function IgxRowSelectorDirective(templateRef) {\n this.templateRef = templateRef;\n }\n IgxRowSelectorDirective.decorators = [\n { type: Directive, args: [{\n selector: '[igxRowSelector]'\n },] }\n ];\n /** @nocollapse */\n IgxRowSelectorDirective.ctorParameters = function () { return [\n { type: TemplateRef }\n ]; };\n return IgxRowSelectorDirective;\n}());\n/**\n * @hidden\n */\nvar IgxHeadSelectorDirective = /** @class */ (function () {\n function IgxHeadSelectorDirective(templateRef) {\n this.templateRef = templateRef;\n }\n IgxHeadSelectorDirective.decorators = [\n { type: Directive, args: [{\n selector: '[igxHeadSelector]'\n },] }\n ];\n /** @nocollapse */\n IgxHeadSelectorDirective.ctorParameters = function () { return [\n { type: TemplateRef }\n ]; };\n return IgxHeadSelectorDirective;\n}());\n/**\n * @hidden\n */\nvar IgxRowSelectorsModule = /** @class */ (function () {\n function IgxRowSelectorsModule() {\n }\n IgxRowSelectorsModule.decorators = [\n { type: NgModule, args: [{\n declarations: [IgxRowSelectorDirective, IgxHeadSelectorDirective],\n exports: [IgxRowSelectorDirective, IgxHeadSelectorDirective]\n },] }\n ];\n return IgxRowSelectorsModule;\n}());\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n/**\n * @hidden\n */\nvar IgxGroupByRowTemplateDirective = /** @class */ (function () {\n function IgxGroupByRowTemplateDirective(template) {\n this.template = template;\n }\n IgxGroupByRowTemplateDirective.decorators = [\n { type: Directive, args: [{\n selector: '[igxGroupByRow]'\n },] }\n ];\n /** @nocollapse */\n IgxGroupByRowTemplateDirective.ctorParameters = function () { return [\n { type: TemplateRef }\n ]; };\n return IgxGroupByRowTemplateDirective;\n}());\n/**\n * @hidden\n */\nvar IgxRowExpandedIndicatorDirective = /** @class */ (function () {\n function IgxRowExpandedIndicatorDirective() {\n }\n IgxRowExpandedIndicatorDirective.decorators = [\n { type: Directive, args: [{\n selector: '[igxRowExpandedIndicator]'\n },] }\n ];\n return IgxRowExpandedIndicatorDirective;\n}());\n/**\n * @hidden\n */\nvar IgxRowCollapsedIndicatorDirective = /** @class */ (function () {\n function IgxRowCollapsedIndicatorDirective() {\n }\n IgxRowCollapsedIndicatorDirective.decorators = [\n { type: Directive, args: [{\n selector: '[igxRowCollapsedIndicator]'\n },] }\n ];\n return IgxRowCollapsedIndicatorDirective;\n}());\n/**\n * @hidden\n */\nvar IgxHeaderExpandIndicatorDirective = /** @class */ (function () {\n function IgxHeaderExpandIndicatorDirective() {\n }\n IgxHeaderExpandIndicatorDirective.decorators = [\n { type: Directive, args: [{\n selector: '[igxHeaderExpandedIndicator]'\n },] }\n ];\n return IgxHeaderExpandIndicatorDirective;\n}());\n/**\n * @hidden\n */\nvar IgxHeaderCollapseIndicatorDirective = /** @class */ (function () {\n function IgxHeaderCollapseIndicatorDirective() {\n }\n IgxHeaderCollapseIndicatorDirective.decorators = [\n { type: Directive, args: [{\n selector: '[igxHeaderCollapsedIndicator]'\n },] }\n ];\n return IgxHeaderCollapseIndicatorDirective;\n}());\n/**\n * @hidden\n */\nvar IgxGroupAreaDropDirective = /** @class */ (function (_super) {\n __extends(IgxGroupAreaDropDirective, _super);\n function IgxGroupAreaDropDirective(elementRef, renderer, zone) {\n var _this = _super.call(this, elementRef, renderer, zone) || this;\n _this.elementRef = elementRef;\n _this.renderer = renderer;\n _this.zone = zone;\n _this.hovered = false;\n return _this;\n }\n /**\n * @param {?} event\n * @return {?}\n */\n IgxGroupAreaDropDirective.prototype.onDragEnter = /**\n * @param {?} event\n * @return {?}\n */\n function (event) {\n /** @type {?} */\n var drag = event.detail.owner;\n /** @type {?} */\n var column = drag.column;\n if (!this.columnBelongsToGrid(column)) {\n return;\n }\n /** @type {?} */\n var grid = (/** @type {?} */ (column.grid));\n /** @type {?} */\n var isGrouped = grid.groupingExpressions.findIndex(function (item) { return item.fieldName === column.field; }) !== -1;\n if (column.groupable && !isGrouped && !column.columnGroup && !!column.field) {\n drag.icon.innerText = 'group_work';\n this.hovered = true;\n }\n else {\n drag.icon.innerText = 'block';\n this.hovered = false;\n }\n };\n /**\n * @param {?} event\n * @return {?}\n */\n IgxGroupAreaDropDirective.prototype.onDragLeave = /**\n * @param {?} event\n * @return {?}\n */\n function (event) {\n /** @type {?} */\n var drag = event.detail.owner;\n /** @type {?} */\n var column = drag.column;\n if (!this.columnBelongsToGrid(column)) {\n return;\n }\n event.detail.owner.icon.innerText = 'block';\n this.hovered = false;\n };\n /**\n * @param {?} event\n * @return {?}\n */\n IgxGroupAreaDropDirective.prototype.onDragDrop = /**\n * @param {?} event\n * @return {?}\n */\n function (event) {\n /** @type {?} */\n var drag = event.detail.owner;\n if (drag instanceof IgxColumnMovingDragDirective) {\n /** @type {?} */\n var column_1 = drag.column;\n if (!this.columnBelongsToGrid(column_1)) {\n return;\n }\n /** @type {?} */\n var grid = (/** @type {?} */ (column_1.grid));\n /** @type {?} */\n var isGrouped = grid.groupingExpressions.findIndex(function (item) { return item.fieldName === column_1.field; }) !== -1;\n if (column_1.groupable && !isGrouped && !column_1.columnGroup && !!column_1.field) {\n grid.groupBy({ fieldName: column_1.field, dir: SortingDirection.Asc, ignoreCase: column_1.sortingIgnoreCase,\n strategy: column_1.sortStrategy, groupingComparer: column_1.groupingComparer });\n }\n }\n };\n /**\n * @private\n * @param {?} elem\n * @param {?} attr\n * @return {?}\n */\n IgxGroupAreaDropDirective.prototype.closestParentByAttr = /**\n * @private\n * @param {?} elem\n * @param {?} attr\n * @return {?}\n */\n function (elem, attr) {\n return elem.hasAttribute(attr) ?\n elem :\n this.closestParentByAttr(elem.parentElement, attr);\n };\n /**\n * @private\n * @param {?} column\n * @return {?}\n */\n IgxGroupAreaDropDirective.prototype.columnBelongsToGrid = /**\n * @private\n * @param {?} column\n * @return {?}\n */\n function (column) {\n /** @type {?} */\n var elem = this.elementRef.nativeElement;\n /** @type {?} */\n var closestGridID = this.closestParentByAttr(elem, 'igxGroupAreaDrop').getAttribute('gridId');\n if (!column) {\n return false;\n }\n else {\n /** @type {?} */\n var grid = (/** @type {?} */ (column.grid));\n if (!grid || grid.id !== closestGridID) {\n return false;\n }\n return true;\n }\n };\n IgxGroupAreaDropDirective.decorators = [\n { type: Directive, args: [{\n selector: '[igxGroupAreaDrop]'\n },] }\n ];\n /** @nocollapse */\n IgxGroupAreaDropDirective.ctorParameters = function () { return [\n { type: ElementRef },\n { type: Renderer2 },\n { type: NgZone }\n ]; };\n IgxGroupAreaDropDirective.propDecorators = {\n hovered: [{ type: HostBinding, args: ['class.igx-drop-area--hover',] }]\n };\n return IgxGroupAreaDropDirective;\n}(IgxDropDirective));\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n/** @type {?} */\nvar ghostBackgroundClass = 'igx-grid__tr--ghost';\n/** @type {?} */\nvar gridCellClass = 'igx-grid__td';\n/** @type {?} */\nvar rowSelectedClass = 'igx-grid__tr--selected';\n/** @type {?} */\nvar cellSelectedClass = 'igx-grid__td--selected';\n/** @type {?} */\nvar cellActiveClass = 'igx-grid__td--active';\n/**\n * @hidden\n */\nvar IgxRowDragDirective = /** @class */ (function (_super) {\n __extends(IgxRowDragDirective, _super);\n function IgxRowDragDirective() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this._rowDragStarted = false;\n _this.transitionEndEvent = function (evt) {\n if (_this.ghostElement) {\n _this.ghostElement.removeEventListener('transitionend', _this.transitionEndEvent, false);\n }\n _this.endDragging();\n };\n return _this;\n }\n Object.defineProperty(IgxRowDragDirective.prototype, \"data\", {\n get: /**\n * @return {?}\n */\n function () {\n return this.row;\n },\n set: /**\n * @param {?} val\n * @return {?}\n */\n function (val) {\n this.row = val;\n },\n enumerable: true,\n configurable: true\n });\n /**\n * @param {?} event\n * @return {?}\n */\n IgxRowDragDirective.prototype.onPointerDown = /**\n * @param {?} event\n * @return {?}\n */\n function (event) {\n event.preventDefault();\n this._rowDragStarted = false;\n this._removeOnDestroy = false;\n _super.prototype.onPointerDown.call(this, event);\n };\n /**\n * @param {?} event\n * @return {?}\n */\n IgxRowDragDirective.prototype.onPointerMove = /**\n * @param {?} event\n * @return {?}\n */\n function (event) {\n var _this = this;\n _super.prototype.onPointerMove.call(this, event);\n if (this._dragStarted && !this._rowDragStarted) {\n this._rowDragStarted = true;\n /** @type {?} */\n var args = {\n dragDirective: this,\n dragData: this.row,\n cancel: false,\n owner: this.row.grid\n };\n this.row.grid.onRowDragStart.emit(args);\n if (args.cancel) {\n this.ghostElement.parentNode.removeChild(this.ghostElement);\n this.ghostElement = null;\n this._dragStarted = false;\n this._clicked = false;\n return;\n }\n this.row.dragging = true;\n this.row.grid.rowDragging = true;\n this.row.grid.markForCheck();\n this.subscription$ = fromEvent(this.row.grid.document.defaultView, 'keydown').subscribe(function (ev) {\n if (ev.key === \"Escape\" /* ESCAPE */ || ev.key === \"Esc\" /* ESCAPE_IE */) {\n _this._lastDropArea = false;\n _this.onPointerUp(event);\n }\n });\n }\n };\n /**\n * @param {?} event\n * @return {?}\n */\n IgxRowDragDirective.prototype.onPointerUp = /**\n * @param {?} event\n * @return {?}\n */\n function (event) {\n var _this = this;\n if (!this._clicked) {\n return;\n }\n /** @type {?} */\n var args = {\n dragDirective: this,\n dragData: this.row,\n animation: false,\n owner: this.row.grid\n };\n this.zone.run(function () {\n _this.row.grid.onRowDragEnd.emit(args);\n });\n /** @type {?} */\n var dropArea = this._lastDropArea;\n _super.prototype.onPointerUp.call(this, event);\n if (!dropArea && this.ghostElement) {\n this.ghostElement.addEventListener('transitionend', this.transitionEndEvent, false);\n }\n else {\n this.endDragging();\n }\n };\n /**\n * @protected\n * @param {?} pageX\n * @param {?} pageY\n * @return {?}\n */\n IgxRowDragDirective.prototype.createGhost = /**\n * @protected\n * @param {?} pageX\n * @param {?} pageY\n * @return {?}\n */\n function (pageX, pageY) {\n this.row.grid.endEdit(true);\n this.row.grid.markForCheck();\n this.ghostContext = {\n $implicit: this.row.rowData,\n data: this.row.rowData,\n grid: this.row.grid\n };\n _super.prototype.createGhost.call(this, pageX, pageY, this.row.nativeElement);\n // check if there is an expander icon and create the ghost at the corresponding position\n if (this.isHierarchicalGrid) {\n /** @type {?} */\n var row = (/** @type {?} */ (this.row));\n if (row.expander) {\n /** @type {?} */\n var expanderWidth = row.expander.nativeElement.getBoundingClientRect().width;\n this._ghostHostX += expanderWidth;\n }\n }\n /** @type {?} */\n var ghost = this.ghostElement;\n /** @type {?} */\n var gridRect = this.row.grid.nativeElement.getBoundingClientRect();\n /** @type {?} */\n var rowRect = this.row.nativeElement.getBoundingClientRect();\n ghost.style.overflow = 'hidden';\n ghost.style.width = gridRect.width + 'px';\n ghost.style.height = rowRect.height + 'px';\n this.renderer.addClass(ghost, ghostBackgroundClass);\n this.renderer.removeClass(ghost, rowSelectedClass);\n /** @type {?} */\n var ghostCells = ghost.getElementsByClassName(gridCellClass);\n for (var index = 0; index < ghostCells.length; index++) {\n this.renderer.removeClass(ghostCells[index], cellSelectedClass);\n this.renderer.removeClass(ghostCells[index], cellActiveClass);\n }\n };\n /**\n * @private\n * @return {?}\n */\n IgxRowDragDirective.prototype._unsubscribe = /**\n * @private\n * @return {?}\n */\n function () {\n if (this.subscription$ && !this.subscription$.closed) {\n this.subscription$.unsubscribe();\n }\n };\n /**\n * @private\n * @return {?}\n */\n IgxRowDragDirective.prototype.endDragging = /**\n * @private\n * @return {?}\n */\n function () {\n this.onTransitionEnd(null);\n this.row.dragging = false;\n this.row.grid.rowDragging = false;\n this.row.grid.markForCheck();\n this._unsubscribe();\n };\n Object.defineProperty(IgxRowDragDirective.prototype, \"isHierarchicalGrid\", {\n get: /**\n * @private\n * @return {?}\n */\n function () {\n return this.row.grid.nativeElement.tagName.toLowerCase() === 'igx-hierarchical-grid';\n },\n enumerable: true,\n configurable: true\n });\n IgxRowDragDirective.decorators = [\n { type: Directive, args: [{\n selector: '[igxRowDrag]'\n },] }\n ];\n IgxRowDragDirective.propDecorators = {\n data: [{ type: Input, args: ['igxRowDrag',] }]\n };\n return IgxRowDragDirective;\n}(IgxDragDirective));\n/**\n * @hidden\n */\nvar IgxDragIndicatorIconDirective = /** @class */ (function () {\n function IgxDragIndicatorIconDirective() {\n }\n IgxDragIndicatorIconDirective.decorators = [\n { type: Directive, args: [{\n selector: '[igxDragIndicatorIcon]'\n },] }\n ];\n return IgxDragIndicatorIconDirective;\n}());\n/**\n * @hidden\n */\nvar IgxRowDragGhostDirective = /** @class */ (function () {\n function IgxRowDragGhostDirective(templateRef) {\n this.templateRef = templateRef;\n }\n IgxRowDragGhostDirective.decorators = [\n { type: Directive, args: [{\n selector: '[igxRowDragGhost]'\n },] }\n ];\n /** @nocollapse */\n IgxRowDragGhostDirective.ctorParameters = function () { return [\n { type: TemplateRef }\n ]; };\n return IgxRowDragGhostDirective;\n}());\nvar IgxRowDragModule = /** @class */ (function () {\n function IgxRowDragModule() {\n }\n IgxRowDragModule.decorators = [\n { type: NgModule, args: [{\n declarations: [IgxRowDragDirective, IgxDragIndicatorIconDirective, IgxRowDragGhostDirective],\n entryComponents: [],\n exports: [IgxRowDragDirective, IgxDragIndicatorIconDirective, IgxRowDragGhostDirective],\n imports: []\n },] }\n ];\n return IgxRowDragModule;\n}());\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n/** @type {?} */\nvar MINIMUM_COLUMN_WIDTH = 136;\n/** @type {?} */\nvar FILTER_ROW_HEIGHT = 50;\n// By default row editing overlay outlet is inside grid body so that overlay is hidden below grid header when scrolling.\n// In cases when grid has 1-2 rows there isn't enough space in grid body and row editing overlay should be shown above header.\n// Default row editing overlay height is higher then row height that is why the case is valid also for row with 2 rows.\n// More accurate calculation is not possible, cause row editing overlay is still not shown and we don't know its height,\n// but in the same time we need to set row editing overlay outlet before opening the overlay itself.\n/** @type {?} */\nvar MIN_ROW_EDITING_COUNT_THRESHOLD = 2;\n/** @type {?} */\nvar IgxGridTransaction = new InjectionToken('IgxGridTransaction');\n/**\n * @abstract\n */\nvar IgxGridBaseComponent = /** @class */ (function (_super) {\n __extends(IgxGridBaseComponent, _super);\n function IgxGridBaseComponent(selectionService, crudService, colResizingService, gridAPI, _transactions, elementRef, zone, document, cdr, resolver, differs, viewRef, navigation, filteringService, overlayService, summaryService, _displayDensityOptions) {\n var _this = _super.call(this, _displayDensityOptions) || this;\n _this.selectionService = selectionService;\n _this.crudService = crudService;\n _this.colResizingService = colResizingService;\n _this.gridAPI = gridAPI;\n _this._transactions = _transactions;\n _this.elementRef = elementRef;\n _this.zone = zone;\n _this.document = document;\n _this.cdr = cdr;\n _this.resolver = resolver;\n _this.differs = differs;\n _this.viewRef = viewRef;\n _this.navigation = navigation;\n _this.filteringService = filteringService;\n _this.overlayService = overlayService;\n _this.summaryService = summaryService;\n _this._displayDensityOptions = _displayDensityOptions;\n _this._init = true;\n _this._cdrRequests = false;\n _this._cdrRequestRepaint = false;\n _this._resourceStrings = CurrentResourceStrings.GridResStrings;\n _this._emptyGridMessage = null;\n _this._emptyFilteredGridMessage = null;\n _this._isLoading = false;\n _this._locale = null;\n _this._destroyed = false;\n _this.overlayIDs = [];\n _this._advancedFilteringPositionSettings = {\n verticalDirection: VerticalAlignment.Middle,\n horizontalDirection: HorizontalAlignment.Center,\n horizontalStartPoint: HorizontalAlignment.Center,\n verticalStartPoint: VerticalAlignment.Middle\n };\n _this._advancedFilteringOverlaySettings = {\n closeOnOutsideClick: false,\n modal: false,\n positionStrategy: new ConnectedPositioningStrategy(_this._advancedFilteringPositionSettings),\n };\n /**\n * An \\@Input property that autogenerates the `IgxGridComponent` columns.\n * The default value is false.\n * \\@remarks\n * When set to true, it will override all columns declared through code or in markup.\n * ```html\n * \n * ```\n * \\@memberof IgxGridBaseComponent\n */\n _this.autoGenerate = false;\n /**\n * @hidden\n */\n _this.filteringExpressionsTreeChange = new EventEmitter();\n /**\n * Emitted after advanced filtering is performed.\n * Returns the advanced filtering expressions tree.\n * ```typescript\n * advancedFilteringExprTreeChange(event: IFilteringExpressionsTree){\n * const filteringTree = event;\n * }\n * ```\n * ```html\n * \n * ```\n * \\@memberof IgxGridBaseComponent\n */\n _this.advancedFilteringExpressionsTreeChange = new EventEmitter();\n /**\n * @hidden\n */\n _this.pageChange = new EventEmitter();\n /**\n * @hidden\n */\n _this.perPageChange = new EventEmitter();\n /**\n * @hidden\n * \\@internal\n */\n _this.rowDragging = false;\n /**\n * An \\@Input property that adds styling classes applied to all even `IgxGridRowComponent`s in the grid.\n * ```html\n * \n * ```\n * \\@memberof IgxGridBaseComponent\n */\n _this.evenRowCSS = 'igx-grid__tr--even';\n /**\n * An \\@Input property that adds styling classes applied to all odd `IgxGridRowComponent`s in the grid.\n * ```html\n * \n * ```\n * \\@memberof IgxGridBaseComponent\n */\n _this.oddRowCSS = 'igx-grid__tr--odd';\n /**\n * An \\@Input property that sets the title to be displayed in the built-in column hiding UI.\n * ```html\n * \n * ```\n * \\@memberof IgxGridBaseComponent\n */\n _this.columnHidingTitle = '';\n /**\n * An \\@Input property that sets the title to be displayed in the UI of the column pinning.\n * ```html\n * \n * ```\n * \\@memberof IgxGridBaseComponent\n */\n _this.columnPinningTitle = '';\n /**\n * Emitted when `IgxGridCellComponent` is clicked. Returns the `IgxGridCellComponent`.\n * ```html\n * \n * ```\n * ```typescript\n * public onCellClick(e){\n * alert(\"The cell has been clicked!\");\n * }\n * ```\n * \\@memberof IgxGridBaseComponent\n */\n _this.onCellClick = new EventEmitter();\n /**\n * Emitted when `IgxGridCellComponent` is selected. Returns the `IgxGridCellComponent`.\n * ```html\n * \n * ```\n * ```typescript\n * public onCellSelect(e){\n * alert(\"The cell has been selected!\");\n * }\n * ```\n * \\@memberof IgxGridBaseComponent\n */\n _this.onSelection = new EventEmitter();\n /**\n * Emitted when `IgxGridRowComponent` is selected.\n * ```html\n * \n * ```\n * ```typescript\n * public onCellClickChange(e){\n * alert(\"The selected row has been changed!\");\n * }\n * ```\n * \\@memberof IgxGridBaseComponent\n */\n _this.onRowSelectionChange = new EventEmitter();\n /**\n * Emitted when `IgxColumnComponent` is pinned.\n * The index that the column is inserted at may be changed through the `insertAtIndex` property.\n * ```typescript\n * public columnPinning(event) {\n * if (event.column.field === \"Name\") {\n * event.insertAtIndex = 0;\n * }\n * }\n * ```\n * \\@memberof IgxGridBaseComponent\n */\n _this.onColumnPinning = new EventEmitter();\n /**\n * An \\@Output property emitting an event when `IgxGridCellComponent`\n * editing has been performed in the grid and the values have **not** been submitted (e.g. `Esc` key was pressed).\n * This event is cancelable.\n *\n * args: IGridEditEventArgs = {\n * cancel: bool,\n * cellID: {\n * columnID: int,\n * rowID: int,\n * rowIndex: int\n * }\n * newValue: object,\n * oldValue: object,\n * rowID: int\n * }\n *\n * ```typescript\n * editCancel(event: IGridEditEventArgs){\n * const rowID: IgxColumnComponent = event.rowID;\n * }\n * ```\n * ```html\n * \n * \n * \n * \n * \n * ```\n * \\@memberof IgxGridComponent\n */\n _this.onCellEditCancel = new EventEmitter();\n /**\n * An \\@Output property emitting an event when `IgxGridCellComponent` enters edit mode.\n * This event is cancelable.\n *\n * args: IGridEditEventArgs = {\n * cancel: bool,\n * cellID: {\n * columnID: int,\n * rowID: int,\n * rowIndex: int\n * }\n * oldValue: object,\n * rowID: int\n * }\n *\n * ```typescript\n * editStart(event: IGridEditEventArgs){\n * const value: IgxColumnComponent = event.newValue;\n * }\n * ```\n * ```html\n * \n * \n * \n * \n * \n * ```\n * \\@memberof IgxGridComponent\n */\n _this.onCellEditEnter = new EventEmitter();\n /**\n * An \\@Output property emitting an event when `IgxGridCellComponent` editing has been performed in the grid.\n * Event is fired after editing is completed, when the cell is exiting edit mode.\n * This event is cancelable.\n *\n * args: IGridEditEventArgs = {\n * cancel: bool,\n * cellID: {\n * columnID: int,\n * rowID: int,\n * rowIndex: int\n * }\n * newValue: object,\n * oldValue: object,\n * rowID: int\n * }\n *\n * ```typescript\n * editDone(event: IGridEditEventArgs){\n * const value: IgxColumnComponent = event.newValue;\n * }\n * ```\n * ```html\n * \n * \n * \n * \n * \n * ```\n * \\@memberof IgxGridBaseComponent\n */\n _this.onCellEdit = new EventEmitter();\n /**\n * An \\@Output property emitting an event when [rowEditable]=\"true\" a row enters edit mode.\n * This event is cancelable.\n *\n * args: IGridEditEventArgs = {\n * cancel: bool,\n * oldValue: ,\n * rowID: int\n * }\n *\n * Bind to the event in markup as follows:\n * ```html\n * \n * \n * \n * \n * \n * ```\n * ```typescript\n * editStart(event: IGridEditEventArgs) {\n * const editedRowObj = event.oldValue;\n * const cancelValue = event.cancel;\n * const rowID = event.rowID;\n * }\n * ```\n * \\@memberof IgxGridComponent\n */\n _this.onRowEditEnter = new EventEmitter();\n /**\n * An \\@Output property emitting an event when [rowEditable]=\"true\" & `endEdit(true)` is called.\n * Emitted when changing rows during edit mode, selecting an un-editable cell in the edited row,\n * performing paging operation, column resizing, pinning, moving or hitting `Done`\n * button inside of the rowEditingOverlay, or hitting the `Enter` key while editing a cell.\n * This event is cancelable.\n *\n * args: IGridEditEventArgs = {\n * cancel: bool,\n * newValue: ,\n * oldValue: ,\n * rowID: int\n * }\n *\n * Bind to the event in markup as follows:\n * ```html\n * \n * \n * \n * \n * \n * ```\n *\n * ```typescript\n * editDone(event: IGridEditEventArgs) {\n * const originalRowObj = event.oldValue;\n * const updatedRowObj = event.newValue;\n * const cancelValue = event.cancel;\n * const rowID = event.rowID;\n * }\n * ```\n * \\@memberof IgxGridBaseComponent\n */\n _this.onRowEdit = new EventEmitter();\n /**\n * An \\@Output property emitting an event when [rowEditable]=\"true\" & `endEdit(false)` is called.\n * Emitted when changing hitting `Esc` key during cell editing and when click on the `Cancel` button\n * in the row editing overlay.\n * This event is cancelable.\n *\n * args: IGridEditEventArgs = {\n * cancel: bool,\n * newValue: ,\n * oldValue: ,\n * rowID: int\n * }\n *\n * Bind to the event in markup as follows:\n * ```html\n * \n * \n * \n * \n * \n * ```\n * ```typescript\n * editCancel(emitted: { row: IgxGridRowComponent, newValue: any, oldValue: any }): void {\n * const originalRowObj = event.oldValue;\n * const updatedRowObj = event.newValue;\n * const cancelValue = event.cancel;\n * const rowID = event.rowID;\n * }\n * ```\n * \\@memberof IgxGridBaseComponent\n */\n _this.onRowEditCancel = new EventEmitter();\n /**\n * Emitted when a grid column is initialized. Returns the column object.\n * ```html\n * \n * ```\n * ```typescript\n * initColumns(event: IgxColumnComponent) {\n * const column: IgxColumnComponent = event;\n * column.filterable = true;\n * column.sortable = true;\n * column.editable = true;\n * }\n * ```\n * \\@memberof IgxGridBaseComponent\n */\n _this.onColumnInit = new EventEmitter();\n /**\n * Emitted when sorting is performed through the UI. Returns the sorting expression.\n * ```html\n * \n * ```\n * ```typescript\n * sortingDone(event: SortingDirection){\n * const sortingDirection = event;\n * }\n * ```\n * \\@memberof IgxGridBaseComponent\n */\n _this.onSortingDone = new EventEmitter();\n /**\n * Emitted when filtering is performed through the UI.\n * Returns the filtering expressions tree of the column for which filtering was performed.\n * ```typescript\n * filteringDone(event: IFilteringExpressionsTree){\n * const filteringTree = event;\n * }\n * ```\n * ```html\n * \n * ```\n * \\@memberof IgxGridBaseComponent\n */\n _this.onFilteringDone = new EventEmitter();\n /**\n * Emitted when paging is performed. Returns an object consisting of the previous and next pages.\n * ```typescript\n * pagingDone(event: IPageEventArgs){\n * const paging = event;\n * }\n * ```\n * ```html\n * \n * ```\n * \\@memberof IgxGridBaseComponent\n */\n _this.onPagingDone = new EventEmitter();\n /**\n * Emitted when a `IgxGridRowComponent` is being added to the `IgxGridComponent` through the API.\n * Returns the data for the new `IgxGridRowComponent` object.\n * ```typescript\n * rowAdded(event: IRowDataEventArgs){\n * const rowInfo = event;\n * }\n * ```\n * ```html\n * \n * ```\n * \\@memberof IgxGridBaseComponent\n */\n _this.onRowAdded = new EventEmitter();\n /**\n * Emitted when a `IgxGridRowComponent` is deleted through the `IgxGridComponent` API.\n * Returns an `IRowDataEventArgs` object.\n * ```typescript\n * rowDeleted(event: IRowDataEventArgs){\n * const rowInfo = event;\n * }\n * ```\n * ```html\n * \n * ```\n * \\@memberof IgxGridBaseComponent\n */\n _this.onRowDeleted = new EventEmitter();\n /**\n * Emitted when a new chunk of data is loaded from virtualization.\n * ```typescript\n * \n * ```\n * \\@memberof IgxGridBaseComponent\n */\n _this.onDataPreLoad = new EventEmitter();\n /**\n * Emitted when `IgxColumnComponent` is resized.\n * Returns the `IgxColumnComponent` object's old and new width.\n * ```typescript\n * resizing(event: IColumnResizeEventArgs){\n * const grouping = event;\n * }\n * ```\n * ```html\n * \n * ```\n * \\@memberof IgxGridBaseComponent\n */\n _this.onColumnResized = new EventEmitter();\n /**\n * Emitted when a `IgxGridCellComponent` is right clicked. Returns the `IgxGridCellComponent` object.\n * ```typescript\n * contextMenu(event: IGridCellEventArgs){\n * const resizing = event;\n * console.log(resizing);\n * }\n * ```\n * ```html\n * \n * ```\n * \\@memberof IgxGridBaseComponent\n */\n _this.onContextMenu = new EventEmitter();\n /**\n * Emitted when a `IgxGridCellComponent` is double clicked. Returns the `IgxGridCellComponent` object.\n * ```typescript\n * dblClick(event: IGridCellEventArgs){\n * const dblClick = event;\n * console.log(dblClick);\n * }\n * ```\n * ```html\n * \n * ```\n * \\@memberof IgxGridBaseComponent\n */\n _this.onDoubleClick = new EventEmitter();\n /**\n * Emitted when `IgxColumnComponent` visibility is changed. Args: { column: any, newValue: boolean }\n * ```typescript\n * visibilityChanged(event: IColumnVisibilityChangedEventArgs){\n * const visiblity = event;\n * }\n * ```\n * ```html\n * \n * ```\n * \\@memberof IgxGridBaseComponent\n */\n _this.onColumnVisibilityChanged = new EventEmitter();\n /**\n * Emitted when `IgxColumnComponent` moving starts. Returns the moved `IgxColumnComponent` object.\n * ```typescript\n * movingStart(event: IColumnMovingStartEventArgs){\n * const movingStarts = event;\n * }\n * ```\n * ```html\n * \n * ```\n * \\@memberof IgxGridBaseComponent\n */\n _this.onColumnMovingStart = new EventEmitter();\n /**\n * Emitted throughout the `IgxColumnComponent` moving operation.\n * Returns the source and target `IgxColumnComponent` objects. This event is cancelable.\n * ```typescript\n * moving(event: IColumnMovingEventArgs){\n * const moving = event;\n * }\n * ```\n * ```html\n * \n * ```\n * \\@memberof IgxGridBaseComponent\n */\n _this.onColumnMoving = new EventEmitter();\n /**\n * Emitted when `IgxColumnComponent` moving ends.\n * Returns the source and target `IgxColumnComponent` objects.\n * ```typescript\n * movingEnds(event: IColumnMovingEndEventArgs){\n * const movingEnds = event;\n * }\n * ```\n * ```html\n * \n * ```\n * \\@memberof IgxGridBaseComponent\n */\n _this.onColumnMovingEnd = new EventEmitter();\n /**\n * Emitted when keydown is triggered over element inside grid's body.\n * This event is fired only if the key combination is supported in the grid.\n * Return the target type, target object and the original event. This event is cancelable.\n * ```typescript\n * customKeydown(args: IGridKeydownEventArgs) {\n * const keydownEvent = args.event;\n * }\n * ```\n * ```html\n * \n * ```\n */\n _this.onGridKeydown = new EventEmitter();\n /**\n * Emitted when start dragging a row.\n * Return the dragged row.\n */\n _this.onRowDragStart = new EventEmitter();\n /**\n * Emitted when dropping a row.\n * Return the dropped row.\n */\n _this.onRowDragEnd = new EventEmitter();\n /**\n * Emitted when a copy operation is executed.\n * Fired only if copy behavior is enabled through the [`clipboardOptions`]{\\@link IgxGridBaseComponent#clipboardOptions}.\n */\n _this.onGridCopy = new EventEmitter();\n /**\n * @hidden\n */\n _this.columnList = new QueryList();\n /**\n * @hidden\n */\n _this.tmpOutlets = new QueryList();\n /**\n * The custom template, if any, that should be used when rendering a row expand indicator.\n */\n _this.rowExpandedIndicatorTemplate = null;\n /**\n * The custom template, if any, that should be used when rendering a row collapse indicator.\n */\n _this.rowCollapsedIndicatorTemplate = null;\n /**\n * The custom template, if any, that should be used when rendering a header expand indicator.\n */\n _this.headerExpandIndicatorTemplate = null;\n /**\n * The custom template, if any, that should be used when rendering a header collapse indicator.\n */\n _this.headerCollapseIndicatorTemplate = null;\n /**\n * @hidden\n */\n _this.tabindex = 0;\n /**\n * @hidden\n */\n _this.hostRole = 'grid';\n /**\n * @hidden\n */\n _this.sortingExpressionsChange = new EventEmitter();\n /**\n * @hidden\n */\n _this.columnsWithNoSetWidths = null;\n /* Toolbar related definitions */\n _this._showToolbar = false;\n _this._exportExcel = false;\n _this._exportCsv = false;\n _this._toolbarTitle = null;\n _this._exportText = null;\n _this._exportExcelText = null;\n _this._exportCsvText = null;\n _this._rowEditable = false;\n _this._filteredSortedData = null;\n /**\n * Provides access to the `IgxToolbarComponent`.\n * ```typescript\n * const gridToolbar = this.grid.toolbar;\n * ```\n * \\@memberof IgxGridBaseComponent\n */\n _this.toolbar = null;\n _this.toolbarHtml = null;\n /**\n * Controls the copy behavior of the grid.\n */\n _this.clipboardOptions = {\n /**\n * Enables/disables the copy behavior\n */\n enabled: true,\n /**\n * Include the columns headers in the clipboard output.\n */\n copyHeaders: true,\n /**\n * Apply the columns formatters (if any) on the data in the clipboard output.\n */\n copyFormatters: true,\n /**\n * The separator used for formatting the copy output. Defaults to `\\t`.\n */\n separator: '\\t'\n };\n /**\n * Emitted when an export process is initiated by the user.\n * ```typescript\n * toolbarExporting(event: IGridToolbarExportEventArgs){\n * const toolbarExporting = event;\n * }\n * ```\n * \\@memberof IgxGridBaseComponent\n */\n _this.onToolbarExporting = new EventEmitter();\n /* End of toolbar related definitions */\n /**\n * Emitted when making a range selection either through\n * drag selection or through keyboard selection.\n */\n _this.onRangeSelection = new EventEmitter();\n /**\n * @hidden\n */\n _this.calcHeight = 0;\n /**\n * @hidden\n */\n _this.chipsGoupingExpressions = [];\n /**\n * @hidden\n */\n _this.disableTransitions = false;\n /**\n * @hidden\n */\n _this.lastSearchInfo = {\n searchText: '',\n caseSensitive: false,\n exactMatch: false,\n activeMatchIndex: 0,\n matchInfoCache: []\n };\n /**\n * @hidden\n */\n _this.columnWidthSetByUser = false;\n /**\n * @hidden\n */\n _this.destroy$ = new Subject();\n /**\n * @hidden\n */\n _this._perPage = 15;\n /**\n * @hidden\n */\n _this._page = 0;\n /**\n * @hidden\n */\n _this._paging = false;\n /**\n * @hidden\n */\n _this._hideRowSelectors = false;\n /**\n * @hidden\n */\n _this._rowDrag = false;\n /**\n * @hidden\n */\n _this._pipeTrigger = 0;\n /**\n * @hidden\n */\n _this._filteringPipeTrigger = 0;\n /**\n * @hidden\n */\n _this._summaryPipeTrigger = 0;\n /**\n * @hidden\n */\n _this._columns = [];\n /**\n * @hidden\n */\n _this._pinnedColumns = [];\n /**\n * @hidden\n */\n _this._unpinnedColumns = [];\n /**\n * @hidden\n */\n _this._filteringExpressionsTree = new FilteringExpressionsTree(FilteringLogic.And);\n /**\n * @hidden\n */\n _this._sortingExpressions = [];\n /**\n * @hidden\n */\n _this._maxLevelHeaderDepth = null;\n /**\n * @hidden\n */\n _this._columnHiding = false;\n /**\n * @hidden\n */\n _this._columnPinning = false;\n _this._allowFiltering = false;\n _this._allowAdvancedFiltering = false;\n _this._filterMode = FilterMode.quickFilter;\n _this.observer = new ResizeObserver(function () { });\n _this.resizeNotify = new Subject();\n _this._hiddenColumnsText = '';\n _this._pinnedColumnsText = '';\n _this._height = '100%';\n _this._width = '100%';\n _this._horizontalForOfs = [];\n _this._multiRowLayoutRowSize = 1;\n // Caches\n _this._totalWidth = NaN;\n _this._pinnedVisible = [];\n _this._unpinnedVisible = [];\n _this._pinnedWidth = NaN;\n _this._unpinnedWidth = NaN;\n _this._visibleColumns = [];\n _this._columnGroups = false;\n _this._defaultTargetRecordNumber = 10;\n _this._summaryPosition = GridSummaryPosition.bottom;\n _this._summaryCalculationMode = GridSummaryCalculationMode.rootAndChildLevels;\n _this._cellSelectionMode = GridSelectionMode.multiple;\n _this._rowSelectionMode = GridSelectionMode.none;\n _this.rowEditPositioningStrategy = new RowEditPositionStrategy({\n horizontalDirection: HorizontalAlignment.Right,\n verticalDirection: VerticalAlignment.Bottom,\n horizontalStartPoint: HorizontalAlignment.Left,\n verticalStartPoint: VerticalAlignment.Bottom,\n closeAnimation: null\n });\n _this.rowEditSettings = {\n scrollStrategy: new AbsoluteScrollStrategy(),\n modal: false,\n closeOnOutsideClick: false,\n outlet: _this.rowOutletDirective,\n positionStrategy: _this.rowEditPositioningStrategy\n };\n _this.verticalScrollHandler = function (event) {\n _this.verticalScrollContainer.onScroll(event);\n if (isEdge()) {\n _this.wheelHandler(false);\n }\n _this.disableTransitions = true;\n _this.zone.run(function () {\n _this.zone.onStable.pipe(first$1()).subscribe(function () {\n _this.verticalScrollContainer.onChunkLoad.emit(_this.verticalScrollContainer.state);\n });\n if (_this.rowEditable) {\n _this.changeRowEditingOverlayStateOnScroll(_this.rowInEditMode);\n }\n _this.disableTransitions = false;\n });\n _this.hideOverlays();\n };\n _this.horizontalScrollHandler = function (event) {\n /** @type {?} */\n var scrollLeft = event.target.scrollLeft;\n if (isEdge()) {\n _this.wheelHandler(true);\n }\n _this.headerContainer.onHScroll(scrollLeft);\n _this._horizontalForOfs.forEach(function (vfor) { return vfor.onHScroll(scrollLeft); });\n _this.cdr.markForCheck();\n _this.zone.run(function () {\n _this.zone.onStable.pipe(first$1()).subscribe(function () {\n _this.parentVirtDir.onChunkLoad.emit(_this.headerContainer.state);\n });\n });\n _this.hideOverlays();\n };\n _this.keydownHandler = function (event) {\n /** @type {?} */\n var key = event.key.toLowerCase();\n if ((isNavigationKey(key) && event.keyCode !== 32) || key === 'tab' || key === 'pagedown' || key === 'pageup') {\n event.preventDefault();\n if (key === 'pagedown') {\n _this.verticalScrollContainer.scrollNextPage();\n _this.nativeElement.focus();\n }\n else if (key === 'pageup') {\n _this.verticalScrollContainer.scrollPrevPage();\n _this.nativeElement.focus();\n }\n }\n };\n /**\n * @hidden\n */\n _this.scrollHandler = function (event) {\n _this.headerContainer.scrollPosition += event.target.scrollLeft;\n _this.verticalScrollContainer.scrollPosition += event.target.scrollTop;\n event.target.scrollLeft = 0;\n event.target.scrollTop = 0;\n };\n /**\n * @hidden\n */\n _this.wheelHandler = function (isScroll) {\n if (isScroll === void 0) { isScroll = false; }\n if (_this.document.activeElement &&\n // tslint:disable-next-line:no-bitwise\n (_this.document.activeElement.compareDocumentPosition(_this.tbody.nativeElement) & Node.DOCUMENT_POSITION_CONTAINS ||\n // tslint:disable-next-line:no-bitwise\n (_this.document.activeElement.\n compareDocumentPosition(_this.tfoot.nativeElement) & Node.DOCUMENT_POSITION_CONTAINS && isScroll))) {\n ((/** @type {?} */ (_this.document.activeElement))).blur();\n }\n };\n /**\n * @hidden\n */\n _this.rowEditingWheelHandler = function (event) {\n if (event.deltaY > 0) {\n _this.verticalScrollContainer.scrollNext();\n }\n else {\n _this.verticalScrollContainer.scrollPrev();\n }\n };\n _this.cdr.detach();\n return _this;\n }\n Object.defineProperty(IgxGridBaseComponent.prototype, \"scrollWidth\", {\n get: /**\n * @return {?}\n */\n function () {\n return this._scrollWidth;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxGridBaseComponent.prototype, \"resourceStrings\", {\n /**\n * An accessor that returns the resource strings.\n */\n get: /**\n * An accessor that returns the resource strings.\n * @return {?}\n */\n function () {\n return this._resourceStrings;\n },\n /**\n * An accessor that sets the resource strings.\n * By default it uses EN resources.\n */\n set: /**\n * An accessor that sets the resource strings.\n * By default it uses EN resources.\n * @param {?} value\n * @return {?}\n */\n function (value) {\n this._resourceStrings = Object.assign({}, this._resourceStrings, value);\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxGridBaseComponent.prototype, \"filteringLogic\", {\n get: /**\n * @return {?}\n */\n function () {\n return this._filteringExpressionsTree.operator;\n },\n /**\n * Sets the filtering logic of the `IgxGridComponent`.\n * The default is AND.\n * ```html\n * \n * ```\n * @memberof IgxGridBaseComponent\n */\n set: /**\n * Sets the filtering logic of the `IgxGridComponent`.\n * The default is AND.\n * ```html\n * \n * ```\n * \\@memberof IgxGridBaseComponent\n * @param {?} value\n * @return {?}\n */\n function (value) {\n this._filteringExpressionsTree.operator = value;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxGridBaseComponent.prototype, \"filteringExpressionsTree\", {\n /**\n * Returns the filtering state of `IgxGridComponent`.\n * ```typescript\n * let filteringExpressionsTree = this.grid.filteringExpressionsTree;\n * ```\n * @memberof IgxGridBaseComponent\n */\n get: /**\n * Returns the filtering state of `IgxGridComponent`.\n * ```typescript\n * let filteringExpressionsTree = this.grid.filteringExpressionsTree;\n * ```\n * \\@memberof IgxGridBaseComponent\n * @return {?}\n */\n function () {\n return this._filteringExpressionsTree;\n },\n /**\n * Sets the filtering state of the `IgxGridComponent`.\n * ```typescript\n * const logic = new FilteringExpressionsTree(FilteringLogic.And, \"ID\");\n * logic.filteringOperands = [\n * {\n * condition: IgxNumberFilteringOperand.instance().condition('greaterThan'),\n * fieldName: 'ID',\n * searchVal: 1\n * }\n * ];\n * this.grid.filteringExpressionsTree = (logic);\n * ```\n * Two-way data binding.\n * ```html\n * \n * ```\n * @memberof IgxGridBaseComponent\n */\n set: /**\n * Sets the filtering state of the `IgxGridComponent`.\n * ```typescript\n * const logic = new FilteringExpressionsTree(FilteringLogic.And, \"ID\");\n * logic.filteringOperands = [\n * {\n * condition: IgxNumberFilteringOperand.instance().condition('greaterThan'),\n * fieldName: 'ID',\n * searchVal: 1\n * }\n * ];\n * this.grid.filteringExpressionsTree = (logic);\n * ```\n * Two-way data binding.\n * ```html\n * \n * ```\n * \\@memberof IgxGridBaseComponent\n * @param {?} value\n * @return {?}\n */\n function (value) {\n if (value && value instanceof FilteringExpressionsTree) {\n /** @type {?} */\n var val = ((/** @type {?} */ (value)));\n for (var index = 0; index < val.filteringOperands.length; index++) {\n if (!(val.filteringOperands[index] instanceof FilteringExpressionsTree)) {\n /** @type {?} */\n var newExpressionsTree = new FilteringExpressionsTree(FilteringLogic.And, val.filteringOperands[index].fieldName);\n newExpressionsTree.filteringOperands.push((/** @type {?} */ (val.filteringOperands[index])));\n val.filteringOperands[index] = newExpressionsTree;\n }\n }\n value.type = FilteringExpressionsTreeType.Regular;\n this._filteringExpressionsTree = value;\n this._filteringPipeTrigger++;\n this.filteringExpressionsTreeChange.emit(this._filteringExpressionsTree);\n if (this.filteringService.isFilteringExpressionsTreeEmpty(this._filteringExpressionsTree) &&\n !this.advancedFilteringExpressionsTree) {\n this.filteredData = null;\n }\n this.filteringService.refreshExpressions();\n this.selectionService.clearHeaderCBState();\n this.summaryService.clearSummaryCache();\n this.notifyChanges();\n }\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxGridBaseComponent.prototype, \"advancedFilteringExpressionsTree\", {\n /**\n * Returns the advanced filtering state of `IgxGridComponent`.\n * ```typescript\n * let advancedFilteringExpressionsTree = this.grid.advancedFilteringExpressionsTree;\n * ```\n * @memberof IgxGridBaseComponent\n */\n get: /**\n * Returns the advanced filtering state of `IgxGridComponent`.\n * ```typescript\n * let advancedFilteringExpressionsTree = this.grid.advancedFilteringExpressionsTree;\n * ```\n * \\@memberof IgxGridBaseComponent\n * @return {?}\n */\n function () {\n return this._advancedFilteringExpressionsTree;\n },\n /**\n * Sets the advanced filtering state of the `IgxGridComponent`.\n * ```typescript\n * const logic = new FilteringExpressionsTree(FilteringLogic.And);\n * logic.filteringOperands = [\n * {\n * condition: IgxNumberFilteringOperand.instance().condition('greaterThan'),\n * fieldName: 'ID',\n * searchVal: 1\n * },\n * {\n * condition: IgxStringFilteringOperand.instance().condition('contains'),\n * fieldName: 'CompanyName',\n * searchVal: 'a'\n * }\n * ];\n * this.grid.advancedFilteringExpressionsTree = logic;\n * ```\n * @memberof IgxGridBaseComponent\n */\n set: /**\n * Sets the advanced filtering state of the `IgxGridComponent`.\n * ```typescript\n * const logic = new FilteringExpressionsTree(FilteringLogic.And);\n * logic.filteringOperands = [\n * {\n * condition: IgxNumberFilteringOperand.instance().condition('greaterThan'),\n * fieldName: 'ID',\n * searchVal: 1\n * },\n * {\n * condition: IgxStringFilteringOperand.instance().condition('contains'),\n * fieldName: 'CompanyName',\n * searchVal: 'a'\n * }\n * ];\n * this.grid.advancedFilteringExpressionsTree = logic;\n * ```\n * \\@memberof IgxGridBaseComponent\n * @param {?} value\n * @return {?}\n */\n function (value) {\n var _this = this;\n if (value && value instanceof FilteringExpressionsTree) {\n value.type = FilteringExpressionsTreeType.Advanced;\n this._advancedFilteringExpressionsTree = value;\n this._filteringPipeTrigger++;\n }\n else {\n this._advancedFilteringExpressionsTree = null;\n }\n this.advancedFilteringExpressionsTreeChange.emit(this._advancedFilteringExpressionsTree);\n if (this.filteringService.isFilteringExpressionsTreeEmpty(this._advancedFilteringExpressionsTree) &&\n !this.advancedFilteringExpressionsTree) {\n this.filteredData = null;\n }\n this.selectionService.clearHeaderCBState();\n this.summaryService.clearSummaryCache();\n this.notifyChanges();\n // Wait for the change detection to update filtered data through the pipes and then emit the event.\n requestAnimationFrame(function () { return _this.onFilteringDone.emit(_this._advancedFilteringExpressionsTree); });\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxGridBaseComponent.prototype, \"locale\", {\n /**\n * Returns the locale of the grid.\n * If not set, returns browser's language.\n */\n get: /**\n * Returns the locale of the grid.\n * If not set, returns browser's language.\n * @return {?}\n */\n function () {\n if (this._locale) {\n return this._locale;\n }\n else {\n return 'en';\n }\n },\n /**\n * Sets the locale of the grid.\n */\n set: /**\n * Sets the locale of the grid.\n * @param {?} value\n * @return {?}\n */\n function (value) {\n this._locale = value;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxGridBaseComponent.prototype, \"paging\", {\n /**\n * Returns whether the paging feature is enabled/disabled.\n * The default state is disabled (false).\n * ```\n * const paging = this.grid.paging;\n * ```\n * @memberof IgxGridBaseComponent\n */\n get: /**\n * Returns whether the paging feature is enabled/disabled.\n * The default state is disabled (false).\n * ```\n * const paging = this.grid.paging;\n * ```\n * \\@memberof IgxGridBaseComponent\n * @return {?}\n */\n function () {\n return this._paging;\n },\n /**\n * Enables/Disables the paging feature.\n * ```html\n * \n * ```\n * @memberof IgxGridBaseComponent\n */\n set: /**\n * Enables/Disables the paging feature.\n * ```html\n * \n * ```\n * \\@memberof IgxGridBaseComponent\n * @param {?} value\n * @return {?}\n */\n function (value) {\n this._paging = value;\n this._pipeTrigger++;\n this.notifyChanges(true);\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxGridBaseComponent.prototype, \"page\", {\n /**\n * Returns the current page index.\n * ```html\n * let gridPage = this.grid.page;\n * ```\n * @memberof IgxGridBaseComponent\n */\n get: /**\n * Returns the current page index.\n * ```html\n * let gridPage = this.grid.page;\n * ```\n * \\@memberof IgxGridBaseComponent\n * @return {?}\n */\n function () {\n return this._page;\n },\n /**\n * Sets the current page index.\n * ```html\n * \n *```\n * Two-way data binding.\n * ```html\n * \n * ```\n * @memberof IgxGridBaseComponent\n */\n set: /**\n * Sets the current page index.\n * ```html\n * \n * ```\n * Two-way data binding.\n * ```html\n * \n * ```\n * \\@memberof IgxGridBaseComponent\n * @param {?} val\n * @return {?}\n */\n function (val) {\n if (val === this._page || val < 0 || val > this.totalPages - 1) {\n return;\n }\n this.selectionService.clear(true);\n this.onPagingDone.emit({ previous: this._page, current: val });\n this._page = val;\n this.pageChange.emit(this._page);\n this.navigateTo(0);\n this.notifyChanges();\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxGridBaseComponent.prototype, \"perPage\", {\n /**\n * Returns the number of visible items per page of the `IgxGridComponent`.\n * The default is 15.\n * ```html\n * let itemsPerPage = this.grid.perPage;\n * ```\n * @memberof IgxGridBaseComponent\n */\n get: /**\n * Returns the number of visible items per page of the `IgxGridComponent`.\n * The default is 15.\n * ```html\n * let itemsPerPage = this.grid.perPage;\n * ```\n * \\@memberof IgxGridBaseComponent\n * @return {?}\n */\n function () {\n return this._perPage;\n },\n /**\n * Sets the number of visible items per page of the `IgxGridComponent`.\n * ```html\n * \n * ```\n *\n * Two-way data binding.\n * ```html\n * \n * ```\n * @memberof IgxGridBaseComponent\n */\n set: /**\n * Sets the number of visible items per page of the `IgxGridComponent`.\n * ```html\n * \n * ```\n *\n * Two-way data binding.\n * ```html\n * \n * ```\n * \\@memberof IgxGridBaseComponent\n * @param {?} val\n * @return {?}\n */\n function (val) {\n if (val < 0) {\n return;\n }\n this.selectionService.clear(true);\n this._perPage = val;\n this.perPageChange.emit(this._perPage);\n this.page = 0;\n this.endEdit(true);\n this.notifyChanges();\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxGridBaseComponent.prototype, \"columnHiding\", {\n /**\n * Returns whether the column hiding UI for the `IgxGridComponent` is enabled.\n * By default it is disabled (false).\n * ```typescript\n * let gridColHiding = this.grid.columnHiding;\n * ```\n * @memberof IgxGridBaseComponent\n */\n get: /**\n * Returns whether the column hiding UI for the `IgxGridComponent` is enabled.\n * By default it is disabled (false).\n * ```typescript\n * let gridColHiding = this.grid.columnHiding;\n * ```\n * \\@memberof IgxGridBaseComponent\n * @return {?}\n */\n function () {\n return this._columnHiding;\n },\n /**\n * Sets whether the column hiding UI for the `IgxGridComponent` is enabled.\n * In order for the UI to work, you need to enable the toolbar as shown in the example below.\n * ```html\n * \n * ```\n * @memberof IgxGridBaseComponent\n */\n set: /**\n * Sets whether the column hiding UI for the `IgxGridComponent` is enabled.\n * In order for the UI to work, you need to enable the toolbar as shown in the example below.\n * ```html\n * \n * ```\n * \\@memberof IgxGridBaseComponent\n * @param {?} value\n * @return {?}\n */\n function (value) {\n if (this._columnHiding !== value) {\n this._columnHiding = value;\n if (!this._init) {\n this.notifyChanges(true);\n }\n }\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxGridBaseComponent.prototype, \"rowSelectable\", {\n get: /**\n * @return {?}\n */\n function () {\n return this.isRowSelectable;\n },\n set: /**\n * @param {?} val\n * @return {?}\n */\n function (val) {\n this.rowSelection = val ? GridSelectionMode.multiple : GridSelectionMode.none;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxGridBaseComponent.prototype, \"hideRowSelectors\", {\n /**\n * Returns if the row selectors are hidden\n * @memberof IgxGridBaseComponent\n */\n get: /**\n * Returns if the row selectors are hidden\n * \\@memberof IgxGridBaseComponent\n * @return {?}\n */\n function () {\n return this._hideRowSelectors;\n },\n /**\n * Allows you to change the visibility of the row selectors\n * By default row selectors are shown\n * @memberof IgxGridBaseComponent\n */\n set: /**\n * Allows you to change the visibility of the row selectors\n * By default row selectors are shown\n * \\@memberof IgxGridBaseComponent\n * @param {?} value\n * @return {?}\n */\n function (value) {\n this._hideRowSelectors = value;\n this.notifyChanges(true);\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxGridBaseComponent.prototype, \"rowDraggable\", {\n get: /**\n * @return {?}\n */\n function () {\n return this._rowDrag && this.hasVisibleColumns;\n },\n /**\n * Sets whether rows can be moved.\n * ```html\n * \n * ```\n * @memberof IgxGridBaseComponent\n */\n set: /**\n * Sets whether rows can be moved.\n * ```html\n * \n * ```\n * \\@memberof IgxGridBaseComponent\n * @param {?} val\n * @return {?}\n */\n function (val) {\n this._rowDrag = val;\n this.notifyChanges(true);\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxGridBaseComponent.prototype, \"rowEditable\", {\n /**\n * Sets whether the `IgxGridRowComponent` is editable.\n * By default it is set to false.\n * ```typescript\n * let rowEditable = this.grid.rowEditable;\n * ```\n * @memberof IgxGridBaseComponent\n */\n get: /**\n * Sets whether the `IgxGridRowComponent` is editable.\n * By default it is set to false.\n * ```typescript\n * let rowEditable = this.grid.rowEditable;\n * ```\n * \\@memberof IgxGridBaseComponent\n * @return {?}\n */\n function () {\n return this._rowEditable;\n },\n /**\n * Sets whether rows can be edited.\n * ```html\n * \n * ```\n * @memberof IgxGridBaseComponent\n */\n set: /**\n * Sets whether rows can be edited.\n * ```html\n * \n * ```\n * \\@memberof IgxGridBaseComponent\n * @param {?} val\n * @return {?}\n */\n function (val) {\n if (!this._init) {\n this.refreshGridState();\n }\n this._rowEditable = val;\n this.notifyChanges();\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxGridBaseComponent.prototype, \"height\", {\n /**\n * Returns the height of the `IgxGridComponent`.\n * ```typescript\n * let gridHeight = this.grid.height;\n * ```\n * @memberof IgxGridBaseComponent\n */\n get: /**\n * Returns the height of the `IgxGridComponent`.\n * ```typescript\n * let gridHeight = this.grid.height;\n * ```\n * \\@memberof IgxGridBaseComponent\n * @return {?}\n */\n function () {\n return this._height;\n },\n /**\n * Sets the height of the `IgxGridComponent`.\n * ```html\n * \n * ```\n * @memberof IgxGridBaseComponent\n */\n set: /**\n * Sets the height of the `IgxGridComponent`.\n * ```html\n * \n * ```\n * \\@memberof IgxGridBaseComponent\n * @param {?} value\n * @return {?}\n */\n function (value) {\n if (this._height !== value) {\n this._height = value;\n this.nativeElement.style.height = value;\n this.notifyChanges(true);\n }\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxGridBaseComponent.prototype, \"hostWidth\", {\n /**\n * @hidden\n */\n get: /**\n * @hidden\n * @return {?}\n */\n function () {\n return this._width || this._hostWidth;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxGridBaseComponent.prototype, \"width\", {\n /**\n * Returns the width of the `IgxGridComponent`.\n * ```typescript\n * let gridWidth = this.grid.width;\n * ```\n * @memberof IgxGridBaseComponent\n */\n get: /**\n * Returns the width of the `IgxGridComponent`.\n * ```typescript\n * let gridWidth = this.grid.width;\n * ```\n * \\@memberof IgxGridBaseComponent\n * @return {?}\n */\n function () {\n return this._width;\n },\n set: /**\n * @param {?} value\n * @return {?}\n */\n function (value) {\n if (this._width !== value) {\n this._width = value;\n this.nativeElement.style.width = value;\n this.notifyChanges(true);\n }\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxGridBaseComponent.prototype, \"headerWidth\", {\n /**\n * Returns the width of the header of the `IgxGridComponent`.\n * ```html\n * let gridHeaderWidth = this.grid.headerWidth;\n * ```\n * @memberof IgxGridBaseComponent\n */\n get: /**\n * Returns the width of the header of the `IgxGridComponent`.\n * ```html\n * let gridHeaderWidth = this.grid.headerWidth;\n * ```\n * \\@memberof IgxGridBaseComponent\n * @return {?}\n */\n function () {\n return parseInt(this.width, 10) - 17;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxGridBaseComponent.prototype, \"rowHeight\", {\n /**\n * Returns the row height.\n * ```typescript\n * const rowHeight = this.grid.rowHeight;\n * ```\n * @memberof IgxGridBaseComponent\n */\n get: /**\n * Returns the row height.\n * ```typescript\n * const rowHeight = this.grid.rowHeight;\n * ```\n * \\@memberof IgxGridBaseComponent\n * @return {?}\n */\n function () {\n return this._rowHeight ? this._rowHeight : this.defaultRowHeight;\n },\n /**\n * Sets the row height.\n * ```html\n * \n * ```\n * @memberof IgxGridBaseComponent\n */\n set: /**\n * Sets the row height.\n * ```html\n * \n * ```\n * \\@memberof IgxGridBaseComponent\n * @param {?} value\n * @return {?}\n */\n function (value) {\n this._rowHeight = parseInt(value, 10);\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxGridBaseComponent.prototype, \"columnWidth\", {\n /**\n * An @Input property that sets the default width of the `IgxGridComponent`'s columns.\n * ```html\n * \n * ```\n * @memberof IgxGridBaseComponent\n */\n get: /**\n * An \\@Input property that sets the default width of the `IgxGridComponent`'s columns.\n * ```html\n * \n * ```\n * \\@memberof IgxGridBaseComponent\n * @return {?}\n */\n function () {\n return this._columnWidth;\n },\n set: /**\n * @param {?} value\n * @return {?}\n */\n function (value) {\n this._columnWidth = value;\n this.columnWidthSetByUser = true;\n this.notifyChanges(true);\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxGridBaseComponent.prototype, \"emptyGridMessage\", {\n /**\n * An accessor that returns the message displayed when there are no records.\n */\n get: /**\n * An accessor that returns the message displayed when there are no records.\n * @return {?}\n */\n function () {\n return this._emptyGridMessage || this.resourceStrings.igx_grid_emptyGrid_message;\n },\n /**\n * An @Input property that sets the message displayed when there are no records.\n * ```html\n * \n * ```\n * @memberof IgxGridBaseComponent\n */\n set: /**\n * An \\@Input property that sets the message displayed when there are no records.\n * ```html\n * \n * ```\n * \\@memberof IgxGridBaseComponent\n * @param {?} value\n * @return {?}\n */\n function (value) {\n this._emptyGridMessage = value;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxGridBaseComponent.prototype, \"isLoading\", {\n /**\n * An accessor that returns whether the grid is showing loading indicator.\n */\n get: /**\n * An accessor that returns whether the grid is showing loading indicator.\n * @return {?}\n */\n function () {\n return this._isLoading;\n },\n /**\n * An @Input property that sets whether the grid is going to show loading indicator.\n * ```html\n * \n * ```\n * @memberof IgxGridBaseComponent\n */\n set: /**\n * An \\@Input property that sets whether the grid is going to show loading indicator.\n * ```html\n * \n * ```\n * \\@memberof IgxGridBaseComponent\n * @param {?} value\n * @return {?}\n */\n function (value) {\n var _this = this;\n if (this._isLoading !== value) {\n this._isLoading = value;\n this.evaluateLoadingState();\n }\n Promise.resolve().then(function () {\n // wait for the current detection cycle to end before triggering a new one.\n _this.notifyChanges();\n });\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxGridBaseComponent.prototype, \"emptyFilteredGridMessage\", {\n /**\n * An accessor that returns the message displayed when there are no records and the grid is filtered.\n */\n get: /**\n * An accessor that returns the message displayed when there are no records and the grid is filtered.\n * @return {?}\n */\n function () {\n return this._emptyFilteredGridMessage || this.resourceStrings.igx_grid_emptyFilteredGrid_message;\n },\n /**\n * An @Input property that sets the message displayed when there are no records and the grid is filtered.\n * ```html\n * \n * ```\n * @memberof IgxGridBaseComponent\n */\n set: /**\n * An \\@Input property that sets the message displayed when there are no records and the grid is filtered.\n * ```html\n * \n * ```\n * \\@memberof IgxGridBaseComponent\n * @param {?} value\n * @return {?}\n */\n function (value) {\n this._emptyFilteredGridMessage = value;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxGridBaseComponent.prototype, \"columnPinning\", {\n /**\n * Returns if the built-in column pinning UI should be shown in the toolbar.\n * ```typescript\n * let colPinning = this.grid.columnPinning;\n * ```\n * @memberof IgxGridBaseComponent\n */\n get: /**\n * Returns if the built-in column pinning UI should be shown in the toolbar.\n * ```typescript\n * let colPinning = this.grid.columnPinning;\n * ```\n * \\@memberof IgxGridBaseComponent\n * @return {?}\n */\n function () {\n return this._columnPinning;\n },\n /**\n * Sets if the built-in column pinning UI should be shown in the toolbar.\n * By default it's disabled.\n * ```html\n * \n * ```\n * @memberof IgxGridBaseComponent\n */\n set: /**\n * Sets if the built-in column pinning UI should be shown in the toolbar.\n * By default it's disabled.\n * ```html\n * \n * ```\n * \\@memberof IgxGridBaseComponent\n * @param {?} value\n * @return {?}\n */\n function (value) {\n if (this._columnPinning !== value) {\n this._columnPinning = value;\n if (!this._init) {\n this.notifyChanges(true);\n }\n }\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxGridBaseComponent.prototype, \"allowFiltering\", {\n /**\n * Returns if the filtering is enabled.\n * ```typescript\n * let filtering = this.grid.allowFiltering;\n * ```\n * @memberof IgxGridBaseComponent\n */\n get: /**\n * Returns if the filtering is enabled.\n * ```typescript\n * let filtering = this.grid.allowFiltering;\n * ```\n * \\@memberof IgxGridBaseComponent\n * @return {?}\n */\n function () {\n return this._allowFiltering;\n },\n /**\n * Sets if the filtering is enabled.\n * By default it's disabled.\n * ```html\n * \n * ```\n * @memberof IgxGridBaseComponent\n */\n set: /**\n * Sets if the filtering is enabled.\n * By default it's disabled.\n * ```html\n * \n * ```\n * \\@memberof IgxGridBaseComponent\n * @param {?} value\n * @return {?}\n */\n function (value) {\n if (this._allowFiltering !== value) {\n this._allowFiltering = value;\n this.filteringService.registerSVGIcons();\n if (!this._init) {\n this.calcGridHeadRow();\n }\n this.filteringService.isFilterRowVisible = false;\n this.filteringService.filteredColumn = null;\n this.notifyChanges(true);\n }\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxGridBaseComponent.prototype, \"allowAdvancedFiltering\", {\n /**\n * Returns a value indicating whether the advanced filtering is enabled.\n * ```typescript\n * let filtering = this.grid.allowAdvancedFiltering;\n * ```\n * @memberof IgxGridBaseComponent\n */\n get: /**\n * Returns a value indicating whether the advanced filtering is enabled.\n * ```typescript\n * let filtering = this.grid.allowAdvancedFiltering;\n * ```\n * \\@memberof IgxGridBaseComponent\n * @return {?}\n */\n function () {\n return this._allowAdvancedFiltering;\n },\n /**\n * Sets a value indicating whether the advanced filtering is enabled.\n * By default it's disabled.\n * ```html\n * \n * ```\n * @memberof IgxGridBaseComponent\n */\n set: /**\n * Sets a value indicating whether the advanced filtering is enabled.\n * By default it's disabled.\n * ```html\n * \n * ```\n * \\@memberof IgxGridBaseComponent\n * @param {?} value\n * @return {?}\n */\n function (value) {\n if (this._allowAdvancedFiltering !== value) {\n this._allowAdvancedFiltering = value;\n this.filteringService.registerSVGIcons();\n if (!this._init) {\n this.notifyChanges(true);\n }\n }\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxGridBaseComponent.prototype, \"filterMode\", {\n /**\n * Returns the filter mode.\n * ```typescript\n * let filtering = this.grid.filterMode;\n * ```\n * @memberof IgxGridBaseComponent\n */\n get: /**\n * Returns the filter mode.\n * ```typescript\n * let filtering = this.grid.filterMode;\n * ```\n * \\@memberof IgxGridBaseComponent\n * @return {?}\n */\n function () {\n return this._filterMode;\n },\n /**\n * Sets filter mode.\n * By default it's set to FilterMode.quickFilter.\n * ```html\n * \n * ```\n * @memberof IgxGridBaseComponent\n */\n set: /**\n * Sets filter mode.\n * By default it's set to FilterMode.quickFilter.\n * ```html\n * \n * ```\n * \\@memberof IgxGridBaseComponent\n * @param {?} value\n * @return {?}\n */\n function (value) {\n this._filterMode = value;\n if (this.filteringService.isFilterRowVisible) {\n this.filteringRow.close();\n }\n this.notifyChanges(true);\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxGridBaseComponent.prototype, \"summaryPosition\", {\n /**\n * Returns the summary position.\n * ```typescript\n * let summaryPosition = this.grid.summaryPosition;\n * ```\n * @memberof IgxGridBaseComponent\n */\n get: /**\n * Returns the summary position.\n * ```typescript\n * let summaryPosition = this.grid.summaryPosition;\n * ```\n * \\@memberof IgxGridBaseComponent\n * @return {?}\n */\n function () {\n return this._summaryPosition;\n },\n /**\n * Sets summary position.\n * By default it is bottom.\n * ```html\n * \n * ```\n * @memberof IgxGridBaseComponent\n */\n set: /**\n * Sets summary position.\n * By default it is bottom.\n * ```html\n * \n * ```\n * \\@memberof IgxGridBaseComponent\n * @param {?} value\n * @return {?}\n */\n function (value) {\n this._summaryPosition = value;\n this.notifyChanges();\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxGridBaseComponent.prototype, \"summaryCalculationMode\", {\n /**\n * Returns the summary calculation mode.\n * ```typescript\n * let summaryCalculationMode = this.grid.summaryCalculationMode;\n * ```\n * @memberof IgxGridBaseComponent\n */\n get: /**\n * Returns the summary calculation mode.\n * ```typescript\n * let summaryCalculationMode = this.grid.summaryCalculationMode;\n * ```\n * \\@memberof IgxGridBaseComponent\n * @return {?}\n */\n function () {\n return this._summaryCalculationMode;\n },\n /**\n * Sets summary calculation mode.\n * By default it is rootAndChildLevels which means the summaries are calculated for the root level and each child level.\n * ```html\n * \n * ```\n * @memberof IgxGridBaseComponent\n */\n set: /**\n * Sets summary calculation mode.\n * By default it is rootAndChildLevels which means the summaries are calculated for the root level and each child level.\n * ```html\n * \n * ```\n * \\@memberof IgxGridBaseComponent\n * @param {?} value\n * @return {?}\n */\n function (value) {\n this._summaryCalculationMode = value;\n if (!this._init) {\n this.endEdit(true);\n this.summaryService.resetSummaryHeight();\n this.notifyChanges(true);\n }\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxGridBaseComponent.prototype, \"filterStrategy\", {\n /**\n * Gets the filtering strategy of the grid.\n * ```typescript\n * let filterStrategy = this.grid.filterStrategy\n * ```\n */\n get: /**\n * Gets the filtering strategy of the grid.\n * ```typescript\n * let filterStrategy = this.grid.filterStrategy\n * ```\n * @return {?}\n */\n function () {\n return this._filteringStrategy;\n },\n /**\n * Sets the filtering strategy of the grid.\n * ```html\n * \n * ```\n */\n set: /**\n * Sets the filtering strategy of the grid.\n * ```html\n * \n * ```\n * @param {?} classRef\n * @return {?}\n */\n function (classRef) {\n this._filteringStrategy = classRef;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxGridBaseComponent.prototype, \"virtualizationState\", {\n /**\n * Returns the state of the grid virtualization, including the start index and how many records are rendered.\n * ```typescript\n * const gridVirtState = this.grid1.virtualizationState;\n * ```\n * @memberof IgxGridBaseComponent\n */\n get: /**\n * Returns the state of the grid virtualization, including the start index and how many records are rendered.\n * ```typescript\n * const gridVirtState = this.grid1.virtualizationState;\n * ```\n * \\@memberof IgxGridBaseComponent\n * @return {?}\n */\n function () {\n return this.verticalScrollContainer.state;\n },\n /**\n * @hidden\n */\n set: /**\n * @hidden\n * @param {?} state\n * @return {?}\n */\n function (state) {\n this.verticalScrollContainer.state = state;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxGridBaseComponent.prototype, \"headerGroupsList\", {\n /**\n * A list of all `IgxGridHeaderGroupComponent`.\n * ```typescript\n * const headerGroupsList = this.grid.headerGroupsList;\n * ```\n * @memberof IgxGridBaseComponent\n */\n get: /**\n * A list of all `IgxGridHeaderGroupComponent`.\n * ```typescript\n * const headerGroupsList = this.grid.headerGroupsList;\n * ```\n * \\@memberof IgxGridBaseComponent\n * @return {?}\n */\n function () {\n return this.headerGroups ? flatten(this.headerGroups.toArray()) : [];\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxGridBaseComponent.prototype, \"headerCellList\", {\n /**\n * A list of all `IgxGridHeaderComponent`.\n * ```typescript\n * const headers = this.grid.headerCellList;\n * ```\n * @memberof IgxGridBaseComponent\n */\n get: /**\n * A list of all `IgxGridHeaderComponent`.\n * ```typescript\n * const headers = this.grid.headerCellList;\n * ```\n * \\@memberof IgxGridBaseComponent\n * @return {?}\n */\n function () {\n return this.headerGroupsList.map(function (headerGroup) { return headerGroup.headerCell; }).filter(function (headerCell) { return headerCell; });\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxGridBaseComponent.prototype, \"filterCellList\", {\n /**\n * A list of all `IgxGridFilteringCellComponent`.\n * ```typescript\n * const filterCells = this.grid.filterCellList;\n * ```\n * @memberof IgxGridBaseComponent\n */\n get: /**\n * A list of all `IgxGridFilteringCellComponent`.\n * ```typescript\n * const filterCells = this.grid.filterCellList;\n * ```\n * \\@memberof IgxGridBaseComponent\n * @return {?}\n */\n function () {\n return this.headerGroupsList.map(function (headerGroup) { return headerGroup.filterCell; }).filter(function (filterCell) { return filterCell; });\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxGridBaseComponent.prototype, \"summariesRowList\", {\n get: /**\n * @return {?}\n */\n function () {\n /** @type {?} */\n var res = new QueryList();\n if (!this._summaryRowList) {\n return res;\n }\n /** @type {?} */\n var sumList = this._summaryRowList.filter(function (item) {\n return item.element.nativeElement.parentElement !== null;\n });\n res.reset(sumList);\n return res;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxGridBaseComponent.prototype, \"rowList\", {\n /**\n * A list of `IgxGridRowComponent`.\n * ```typescript\n * const rowList = this.grid.rowList;\n * ```\n * @memberof IgxGridBaseComponent\n */\n get: /**\n * A list of `IgxGridRowComponent`.\n * ```typescript\n * const rowList = this.grid.rowList;\n * ```\n * \\@memberof IgxGridBaseComponent\n * @return {?}\n */\n function () {\n /** @type {?} */\n var res = new QueryList();\n if (!this._rowList) {\n return res;\n }\n /** @type {?} */\n var rList = this._rowList\n .filter(function (item) {\n return item.element.nativeElement.parentElement !== null;\n })\n .sort(function (a, b) {\n return a.index - b.index;\n });\n res.reset(rList);\n return res;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxGridBaseComponent.prototype, \"dataRowList\", {\n /**\n * A list of `IgxGridRowComponent`, currently rendered.\n * ```typescript\n * const dataList = this.grid.dataRowList;\n * ```\n * @memberof IgxGridBaseComponent\n */\n get: /**\n * A list of `IgxGridRowComponent`, currently rendered.\n * ```typescript\n * const dataList = this.grid.dataRowList;\n * ```\n * \\@memberof IgxGridBaseComponent\n * @return {?}\n */\n function () {\n /** @type {?} */\n var res = new QueryList();\n if (!this._dataRowList) {\n return res;\n }\n /** @type {?} */\n var rList = this._dataRowList.filter(function (item) {\n return item.element.nativeElement.parentElement !== null;\n }).sort(function (a, b) {\n return a.index - b.index;\n });\n res.reset(rList);\n return res;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxGridBaseComponent.prototype, \"toolbarCustomContentTemplate\", {\n /**\n * Returns the template which will be used by the toolbar to show custom content.\n * ```typescript\n * let customContentTemplate = this.grid.toolbarCustomContentTemplate;\n * ```\n * @memberof IgxGridBaseComponent\n */\n get: /**\n * Returns the template which will be used by the toolbar to show custom content.\n * ```typescript\n * let customContentTemplate = this.grid.toolbarCustomContentTemplate;\n * ```\n * \\@memberof IgxGridBaseComponent\n * @return {?}\n */\n function () {\n return this.toolbarCustomContentTemplates.first;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxGridBaseComponent.prototype, \"headSelectorTemplate\", {\n /**\n * @hidden\n * @internal\n */\n get: /**\n * @hidden\n * \\@internal\n * @return {?}\n */\n function () {\n if (this.headSelectorsTemplates && this.headSelectorsTemplates.first) {\n return this.headSelectorsTemplates.first.templateRef;\n }\n return null;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxGridBaseComponent.prototype, \"rowSelectorTemplate\", {\n /**\n * @hidden\n * @internal\n */\n get: /**\n * @hidden\n * \\@internal\n * @return {?}\n */\n function () {\n if (this.rowSelectorsTemplates && this.rowSelectorsTemplates.first) {\n return this.rowSelectorsTemplates.first.templateRef;\n }\n return null;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxGridBaseComponent.prototype, \"dragIndicatorIconTemplate\", {\n /**\n * The custom template, if any, that should be used when rendering the row drag indicator icon\n */\n get: /**\n * The custom template, if any, that should be used when rendering the row drag indicator icon\n * @return {?}\n */\n function () {\n return this._customDragIndicatorIconTemplate || this.dragIndicatorIconTemplates.first;\n },\n set: /**\n * @param {?} val\n * @return {?}\n */\n function (val) {\n this._customDragIndicatorIconTemplate = val;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxGridBaseComponent.prototype, \"outletDirective\", {\n /**\n * @hidden\n */\n get: /**\n * @hidden\n * @return {?}\n */\n function () {\n return this._outletDirective;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxGridBaseComponent.prototype, \"rowOutletDirective\", {\n /**\n * @hidden\n */\n get: /**\n * @hidden\n * @return {?}\n */\n function () {\n return this.rowEditingOutletDirective;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxGridBaseComponent.prototype, \"parentRowOutletDirective\", {\n /**\n * @hidden\n */\n get: /**\n * @hidden\n * @return {?}\n */\n function () {\n return this.outletDirective;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxGridBaseComponent.prototype, \"rowEditContainer\", {\n /** @hidden */\n get: /**\n * @hidden\n * @return {?}\n */\n function () {\n return this.rowEditCustom ? this.rowEditCustom : this.defaultRowEditTemplate;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxGridBaseComponent.prototype, \"rowInEditMode\", {\n /**\n * @hidden\n */\n get: /**\n * @hidden\n * @return {?}\n */\n function () {\n /** @type {?} */\n var editRowState = this.crudService.row;\n return editRowState !== null ? this.rowList.find(function (e) { return e.rowID === editRowState.id; }) : null;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxGridBaseComponent.prototype, \"firstEditableColumnIndex\", {\n /**\n * @hidden\n */\n get: /**\n * @hidden\n * @return {?}\n */\n function () {\n /** @type {?} */\n var index = this.navigation.gridOrderedColumns.findIndex(function (e) { return e.editable; });\n return index !== -1 ? index : null;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxGridBaseComponent.prototype, \"lastEditableColumnIndex\", {\n /**\n * @hidden\n */\n get: /**\n * @hidden\n * @return {?}\n */\n function () {\n /** @type {?} */\n var orderedColumns = this.navigation.gridOrderedColumns;\n /** @type {?} */\n var index = orderedColumns.reverse().findIndex(function (e) { return e.editable; });\n return index !== -1 ? orderedColumns.length - 1 - index : null;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxGridBaseComponent.prototype, \"rowEditTabs\", {\n /**\n * @hidden\n * TODO: Nav service logic doesn't handle 0 results from this querylist\n */\n get: /**\n * @hidden\n * TODO: Nav service logic doesn't handle 0 results from this querylist\n * @return {?}\n */\n function () {\n return this.rowEditTabsCUSTOM.length ? this.rowEditTabsCUSTOM : this.rowEditTabsDEFAULT;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxGridBaseComponent.prototype, \"hostClass\", {\n /**\n * @hidden\n */\n get: /**\n * @hidden\n * @return {?}\n */\n function () {\n return this.getComponentDensityClass('igx-grid');\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxGridBaseComponent.prototype, \"bannerClass\", {\n get: /**\n * @return {?}\n */\n function () {\n /** @type {?} */\n var position = this.rowEditPositioningStrategy.isTop ? 'igx-banner__border-top' : 'igx-banner__border-bottom';\n return this.getComponentDensityClass('igx-banner') + \" \" + position;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxGridBaseComponent.prototype, \"pipeTrigger\", {\n /**\n * @hidden\n */\n get: /**\n * @hidden\n * @return {?}\n */\n function () {\n return this._pipeTrigger;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxGridBaseComponent.prototype, \"filteringPipeTrigger\", {\n /**\n * @hidden\n */\n get: /**\n * @hidden\n * @return {?}\n */\n function () {\n return this._filteringPipeTrigger;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxGridBaseComponent.prototype, \"summaryPipeTrigger\", {\n /**\n * @hidden\n */\n get: /**\n * @hidden\n * @return {?}\n */\n function () {\n return this._summaryPipeTrigger;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxGridBaseComponent.prototype, \"sortingExpressions\", {\n /**\n * Returns the sorting state of the `IgxGridComponent`.\n * ```typescript\n * const sortingState = this.grid.sortingExpressions;\n * ```\n * @memberof IgxGridBaseComponent\n */\n get: /**\n * Returns the sorting state of the `IgxGridComponent`.\n * ```typescript\n * const sortingState = this.grid.sortingExpressions;\n * ```\n * \\@memberof IgxGridBaseComponent\n * @return {?}\n */\n function () {\n return this._sortingExpressions;\n },\n /**\n * Sets the sorting state of the `IgxGridComponent`.\n * ```typescript\n * this.grid.sortingExpressions = [{\n * fieldName: \"ID\",\n * dir: SortingDirection.Desc,\n * ignoreCase: true\n * }];\n * ```\n *\n * Two-way data binding.\n * ```html\n * \n * ```\n * @memberof IgxGridBaseComponent\n */\n set: /**\n * Sets the sorting state of the `IgxGridComponent`.\n * ```typescript\n * this.grid.sortingExpressions = [{\n * fieldName: \"ID\",\n * dir: SortingDirection.Desc,\n * ignoreCase: true\n * }];\n * ```\n *\n * Two-way data binding.\n * ```html\n * \n * ```\n * \\@memberof IgxGridBaseComponent\n * @param {?} value\n * @return {?}\n */\n function (value) {\n this._sortingExpressions = cloneArray(value);\n this.sortingExpressionsChange.emit(this._sortingExpressions);\n this.notifyChanges();\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxGridBaseComponent.prototype, \"maxLevelHeaderDepth\", {\n /**\n * @hidden\n */\n get: /**\n * @hidden\n * @return {?}\n */\n function () {\n if (this._maxLevelHeaderDepth === null) {\n this._maxLevelHeaderDepth = this.hasColumnLayouts ?\n this.columnList.reduce(function (acc, col) { return Math.max(acc, col.rowStart); }, 0) :\n this.columnList.reduce(function (acc, col) { return Math.max(acc, col.level); }, 0);\n }\n return this._maxLevelHeaderDepth;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxGridBaseComponent.prototype, \"hiddenColumnsCount\", {\n /**\n * Returns the number of hidden `IgxColumnComponent`.\n * ```typescript\n * const hiddenCol = this.grid.hiddenColumnsCount;\n * ``\n */\n get: /**\n * Returns the number of hidden `IgxColumnComponent`.\n * ```typescript\n * const hiddenCol = this.grid.hiddenColumnsCount;\n * ``\n * @return {?}\n */\n function () {\n return this.columnList.filter(function (col) { return col.columnGroup === false && col.hidden === true; }).length;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxGridBaseComponent.prototype, \"hiddenColumnsText\", {\n /**\n * Returns the text to be displayed inside the toggle button\n * for the built-in column hiding UI of the`IgxColumnComponent`.\n * ```typescript\n * const hiddenColText = this.grid.hiddenColumnsText;\n * ```\n * @memberof IgxGridBaseComponent\n */\n get: /**\n * Returns the text to be displayed inside the toggle button\n * for the built-in column hiding UI of the`IgxColumnComponent`.\n * ```typescript\n * const hiddenColText = this.grid.hiddenColumnsText;\n * ```\n * \\@memberof IgxGridBaseComponent\n * @return {?}\n */\n function () {\n return this._hiddenColumnsText;\n },\n /**\n * Sets the text to be displayed inside the toggle button\n * for the built-in column hiding UI of the`IgxColumnComponent`.\n * ```typescript\n * \n * ```\n * @memberof IgxGridBaseComponent\n */\n set: /**\n * Sets the text to be displayed inside the toggle button\n * for the built-in column hiding UI of the`IgxColumnComponent`.\n * ```typescript\n * \n * ```\n * \\@memberof IgxGridBaseComponent\n * @param {?} value\n * @return {?}\n */\n function (value) {\n this._hiddenColumnsText = value;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxGridBaseComponent.prototype, \"pinnedColumnsText\", {\n /**\n * Returns the text to be displayed inside the toggle button\n * for the built-in column pinning UI of the`IgxColumnComponent`.\n * ```typescript\n * const pinnedText = this.grid.pinnedColumnsText;\n * ```\n * @memberof IgxGridBaseComponent\n */\n get: /**\n * Returns the text to be displayed inside the toggle button\n * for the built-in column pinning UI of the`IgxColumnComponent`.\n * ```typescript\n * const pinnedText = this.grid.pinnedColumnsText;\n * ```\n * \\@memberof IgxGridBaseComponent\n * @return {?}\n */\n function () {\n return this._pinnedColumnsText;\n },\n /**\n * Sets the text to be displayed inside the toggle button\n * for the built-in column pinning UI of the`IgxColumnComponent`.\n * ```html\n * \n * ```\n * @memberof IgxGridBaseComponent\n */\n set: /**\n * Sets the text to be displayed inside the toggle button\n * for the built-in column pinning UI of the`IgxColumnComponent`.\n * ```html\n * \n * ```\n * \\@memberof IgxGridBaseComponent\n * @param {?} value\n * @return {?}\n */\n function (value) {\n this._pinnedColumnsText = value;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxGridBaseComponent.prototype, \"transactions\", {\n /**\n * Get transactions service for the grid.\n */\n get: /**\n * Get transactions service for the grid.\n * @return {?}\n */\n function () {\n return this._transactions;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxGridBaseComponent.prototype, \"currentRowState\", {\n /**\n * @hidden\n */\n get: /**\n * @hidden\n * @return {?}\n */\n function () {\n return this._currentRowState;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxGridBaseComponent.prototype, \"showToolbar\", {\n /**\n * Returns whether the `IgxGridComponent`'s toolbar is shown or hidden.\n * ```typescript\n * const toolbarGrid = this.grid.showToolbar;\n * ```\n * @memberof IgxGridBaseComponent\n */\n get: /**\n * Returns whether the `IgxGridComponent`'s toolbar is shown or hidden.\n * ```typescript\n * const toolbarGrid = this.grid.showToolbar;\n * ```\n * \\@memberof IgxGridBaseComponent\n * @return {?}\n */\n function () {\n return this._showToolbar;\n },\n /**\n * Shows or hides the `IgxGridComponent`'s toolbar.\n * ```html\n * \n * ```\n * @memberof IgxGridBaseComponent\n */\n set: /**\n * Shows or hides the `IgxGridComponent`'s toolbar.\n * ```html\n * \n * ```\n * \\@memberof IgxGridBaseComponent\n * @param {?} newValue\n * @return {?}\n */\n function (newValue) {\n if (this._showToolbar !== newValue) {\n this._showToolbar = newValue;\n if (!this._init) {\n this.notifyChanges(true);\n }\n }\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxGridBaseComponent.prototype, \"toolbarTitle\", {\n /**\n * Returns the toolbar's title.\n * ```typescript\n * const toolbarTitle = this.grid.toolbarTitle;\n * ```\n * @memberof IgxGridBaseComponent\n */\n get: /**\n * Returns the toolbar's title.\n * ```typescript\n * const toolbarTitle = this.grid.toolbarTitle;\n * ```\n * \\@memberof IgxGridBaseComponent\n * @return {?}\n */\n function () {\n return this._toolbarTitle;\n },\n /**\n * Sets the toolbar's title.\n * ```html\n * \n * ```\n * @memberof IgxGridBaseComponent\n */\n set: /**\n * Sets the toolbar's title.\n * ```html\n * \n * ```\n * \\@memberof IgxGridBaseComponent\n * @param {?} newValue\n * @return {?}\n */\n function (newValue) {\n if (this._toolbarTitle !== newValue) {\n this._toolbarTitle = newValue;\n if (!this._init) {\n this.notifyChanges(true);\n }\n }\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxGridBaseComponent.prototype, \"exportExcel\", {\n /**\n * Returns whether the option for exporting to MS Excel is enabled or disabled.\n * ```typescript\n * cosnt excelExporter = this.grid.exportExcel;\n * ```\n * @memberof IgxGridBaseComponent\n */\n get: /**\n * Returns whether the option for exporting to MS Excel is enabled or disabled.\n * ```typescript\n * cosnt excelExporter = this.grid.exportExcel;\n * ```\n * \\@memberof IgxGridBaseComponent\n * @return {?}\n */\n function () {\n return this.getExportExcel();\n },\n /**\n * Enable or disable the option for exporting to MS Excel.\n * ```html\n * \n * ```\n * @memberof IgxGridBaseComponent\n */\n set: /**\n * Enable or disable the option for exporting to MS Excel.\n * ```html\n * \n * ```\n * \\@memberof IgxGridBaseComponent\n * @param {?} newValue\n * @return {?}\n */\n function (newValue) {\n if (this._exportExcel !== newValue) {\n this._exportExcel = newValue;\n if (!this._init) {\n this.notifyChanges(true);\n }\n }\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxGridBaseComponent.prototype, \"exportCsv\", {\n /**\n * Returns whether the option for exporting to CSV is enabled or disabled.\n * ```typescript\n * const exportCsv = this.grid.exportCsv;\n * ```\n * @memberof IgxGridBaseComponent\n */\n get: /**\n * Returns whether the option for exporting to CSV is enabled or disabled.\n * ```typescript\n * const exportCsv = this.grid.exportCsv;\n * ```\n * \\@memberof IgxGridBaseComponent\n * @return {?}\n */\n function () {\n return this.getExportCsv();\n },\n /**\n * Enable or disable the option for exporting to CSV.\n * ```html\n * \n * ```\n * @memberof IgxGridBaseComponent\n */\n set: /**\n * Enable or disable the option for exporting to CSV.\n * ```html\n * \n * ```\n * \\@memberof IgxGridBaseComponent\n * @param {?} newValue\n * @return {?}\n */\n function (newValue) {\n if (this._exportCsv !== newValue) {\n this._exportCsv = newValue;\n if (!this._init) {\n this.notifyChanges(true);\n }\n }\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxGridBaseComponent.prototype, \"exportText\", {\n /**\n * Returns the textual content for the main export button.\n * ```typescript\n * const exportText = this.grid.exportText;\n * ```\n * @memberof IgxGridBaseComponent\n */\n get: /**\n * Returns the textual content for the main export button.\n * ```typescript\n * const exportText = this.grid.exportText;\n * ```\n * \\@memberof IgxGridBaseComponent\n * @return {?}\n */\n function () {\n return this._exportText;\n },\n /**\n * Sets the textual content for the main export button.\n * ```html\n * \n * ```\n * @memberof IgxGridBaseComponent\n */\n set: /**\n * Sets the textual content for the main export button.\n * ```html\n * \n * ```\n * \\@memberof IgxGridBaseComponent\n * @param {?} newValue\n * @return {?}\n */\n function (newValue) {\n if (this._exportText !== newValue) {\n this._exportText = newValue;\n if (!this._init) {\n this.notifyChanges(true);\n }\n }\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxGridBaseComponent.prototype, \"exportExcelText\", {\n /**\n * Returns the textual content for the MS Excel export button.\n * ```typescript\n * const excelText = this.grid.exportExcelText;\n * ```\n * @memberof IgxGridBaseComponent\n */\n get: /**\n * Returns the textual content for the MS Excel export button.\n * ```typescript\n * const excelText = this.grid.exportExcelText;\n * ```\n * \\@memberof IgxGridBaseComponent\n * @return {?}\n */\n function () {\n return this._exportExcelText;\n },\n /**\n * Sets the textual content for the MS Excel export button.\n * ```html\n * \n * ```\n * @memberof IgxGridBaseComponent\n */\n set: /**\n * Sets the textual content for the MS Excel export button.\n * ```html\n * \n * ```\n * \\@memberof IgxGridBaseComponent\n * @param {?} newValue\n * @return {?}\n */\n function (newValue) {\n if (this._exportExcelText !== newValue) {\n this._exportExcelText = newValue;\n if (!this._init) {\n this.notifyChanges(true);\n }\n }\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxGridBaseComponent.prototype, \"exportCsvText\", {\n /**\n * Returns the textual content for the CSV export button.\n * ```typescript\n * const csvText = this.grid.exportCsvText;\n * ```\n * @memberof IgxGridBaseComponent\n */\n get: /**\n * Returns the textual content for the CSV export button.\n * ```typescript\n * const csvText = this.grid.exportCsvText;\n * ```\n * \\@memberof IgxGridBaseComponent\n * @return {?}\n */\n function () {\n return this._exportCsvText;\n },\n /**\n * Sets the textual content for the CSV export button.\n * ```html\n * \n * ```\n * @memberof IgxGridBaseComponent\n */\n set: /**\n * Sets the textual content for the CSV export button.\n * ```html\n * \n * ```\n * \\@memberof IgxGridBaseComponent\n * @param {?} newValue\n * @return {?}\n */\n function (newValue) {\n if (this._exportCsvText !== newValue) {\n this._exportCsvText = newValue;\n if (!this._init) {\n this.notifyChanges(true);\n }\n }\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxGridBaseComponent.prototype, \"cellSelection\", {\n /**\n * Returns the current cell selection state, which can be none, single or multiple\n * @memberof IgxGridBaseComponent\n */\n get: /**\n * Returns the current cell selection state, which can be none, single or multiple\n * \\@memberof IgxGridBaseComponent\n * @return {?}\n */\n function () {\n return this._cellSelectionMode;\n },\n /**\n * Allows you to set cell selection mode\n * By default the cell selection mode is multiple\n * @param selectionMode: GridSelectionMode\n * @memberof IgxGridBaseComponent\n */\n set: /**\n * Allows you to set cell selection mode\n * By default the cell selection mode is multiple\n * \\@memberof IgxGridBaseComponent\n * @param {?} selectionMode\n * @return {?}\n */\n function (selectionMode) {\n this._cellSelectionMode = selectionMode;\n if (this.gridAPI.grid) {\n this.selectionService.clear(true);\n this.notifyChanges();\n }\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxGridBaseComponent.prototype, \"rowSelection\", {\n /**\n * Returns the current row selection state, which can be none, single or multiple\n * @memberof IgxGridBaseComponent\n */\n get: /**\n * Returns the current row selection state, which can be none, single or multiple\n * \\@memberof IgxGridBaseComponent\n * @return {?}\n */\n function () {\n return this._rowSelectionMode;\n },\n /**\n * Allows you to set row selection mode\n * By default the row selection mode is none\n * @param selectionMode: GridSelectionMode\n * @memberof IgxGridBaseComponent\n */\n set: /**\n * Allows you to set row selection mode\n * By default the row selection mode is none\n * \\@memberof IgxGridBaseComponent\n * @param {?} selectionMode\n * @return {?}\n */\n function (selectionMode) {\n this._rowSelectionMode = selectionMode;\n if (this.gridAPI.grid && this.columnList) {\n this.selectionService.clearAllSelectedRows();\n this.notifyChanges(true);\n }\n },\n enumerable: true,\n configurable: true\n });\n /**\n * @hidden\n * @internal\n */\n /**\n * @hidden\n * \\@internal\n * @return {?}\n */\n IgxGridBaseComponent.prototype.hideOverlays = /**\n * @hidden\n * \\@internal\n * @return {?}\n */\n function () {\n var _this = this;\n this.overlayIDs.forEach(function (overlayID) {\n _this.overlayService.hide(overlayID);\n _this.overlayService.onClosed.pipe(filter(function (o) { return o.id === overlayID; }), takeUntil(_this.destroy$)).subscribe(function () {\n _this.nativeElement.focus();\n });\n });\n };\n /**\n * @return {?}\n */\n IgxGridBaseComponent.prototype._setupServices = /**\n * @return {?}\n */\n function () {\n this.gridAPI.grid = this;\n this.crudService.grid = this;\n this.selectionService.grid = this;\n this.navigation.grid = this;\n this.filteringService.grid = this;\n this.summaryService.grid = this;\n };\n /**\n * @return {?}\n */\n IgxGridBaseComponent.prototype._setupListeners = /**\n * @return {?}\n */\n function () {\n var _this = this;\n /** @type {?} */\n var destructor = takeUntil(this.destroy$);\n this.onRowAdded.pipe(destructor).subscribe(function (args) { return _this.refreshGridState(args); });\n this.onRowDeleted.pipe(destructor).subscribe(function (args) {\n _this.summaryService.deleteOperation = true;\n _this.summaryService.clearSummaryCache(args);\n });\n this.transactions.onStateUpdate.pipe(destructor).subscribe(function () {\n _this.selectionService.clearHeaderCBState();\n _this.summaryService.clearSummaryCache();\n _this._pipeTrigger++;\n _this.notifyChanges();\n if (_this.transactions.getAggregatedChanges(false).length === 0) {\n // Needs better check, calling 'transactions.clear()' will also trigger this\n if (_this.gridAPI.atInexistingPage()) {\n _this.page--;\n }\n }\n });\n this.resizeNotify.pipe(destructor, filter(function () { return !_this._init; }), throttleTime(100))\n .subscribe(function () {\n _this.zone.run(function () {\n _this.notifyChanges(true);\n });\n });\n this.onPagingDone.pipe(destructor).subscribe(function () {\n _this.endEdit(true);\n _this.selectionService.clear(true);\n });\n this.onColumnMoving.pipe(destructor).subscribe(function () { return _this.endEdit(true); });\n this.onColumnResized.pipe(destructor).subscribe(function () { return _this.endEdit(true); });\n this.overlayService.onOpening.pipe(destructor).subscribe(function (event) {\n if (_this._advancedFilteringOverlayId === event.id) {\n /** @type {?} */\n var instance = (/** @type {?} */ (event.componentRef.instance));\n if (instance) {\n instance.initialize(_this.filteringService, _this.overlayService, event.id);\n }\n }\n });\n this.overlayService.onOpened.pipe(destructor).subscribe(function (event) {\n // do not hide the advanced filtering overlay on scroll\n if (_this._advancedFilteringOverlayId === event.id) {\n /** @type {?} */\n var instance = (/** @type {?} */ (event.componentRef.instance));\n if (instance) {\n instance.setAddButtonFocus();\n }\n return;\n }\n if (_this.overlayService.getOverlayById(event.id).settings.outlet === _this.outletDirective &&\n _this.overlayIDs.indexOf(event.id) < 0) {\n _this.overlayIDs.push(event.id);\n }\n });\n this.overlayService.onClosed.pipe(destructor, filter(function () { return !_this._init; })).subscribe(function (event) {\n if (_this._advancedFilteringOverlayId === event.id) {\n _this._advancedFilteringOverlayId = null;\n return;\n }\n /** @type {?} */\n var ind = _this.overlayIDs.indexOf(event.id);\n if (ind !== -1) {\n _this.overlayIDs.splice(ind, 1);\n }\n });\n this.verticalScrollContainer.onDataChanging.pipe(destructor, filter(function () { return !_this._init; })).subscribe(function ($event) {\n /** @type {?} */\n var shouldRecalcSize = _this.isPercentHeight &&\n (!_this.calcHeight || _this.calcHeight === _this.getDataBasedBodyHeight() ||\n _this.calcHeight === _this.renderedRowHeight * _this._defaultTargetRecordNumber);\n if (shouldRecalcSize) {\n _this.calculateGridHeight();\n $event.containerSize = _this.calcHeight;\n }\n _this.evaluateLoadingState();\n });\n this.verticalScrollContainer.onScrollbarVisibilityChanged.pipe(destructor, filter(function () { return !_this._init; })).subscribe(function () {\n // called to recalc all widths that may have changes as a result of\n // the vert. scrollbar showing/hiding\n _this.notifyChanges(true);\n });\n this.verticalScrollContainer.onContentSizeChange.pipe(destructor, filter(function () { return !_this._init; })).subscribe(function ($event) {\n _this.calculateGridSizes();\n });\n this.onDensityChanged.pipe(destructor).subscribe(function () {\n _this.summaryService.summaryHeight = 0;\n _this.endEdit(true);\n _this.cdr.markForCheck();\n });\n };\n /**\n * @hidden\n */\n /**\n * @hidden\n * @return {?}\n */\n IgxGridBaseComponent.prototype.ngOnInit = /**\n * @hidden\n * @return {?}\n */\n function () {\n _super.prototype.ngOnInit.call(this);\n this._setupServices();\n this._setupListeners();\n this.columnListDiffer = this.differs.find([]).create(null);\n this.calcWidth = this.width && this.width.indexOf('%') === -1 ? parseInt(this.width, 10) : 0;\n this.shouldGenerate = this.autoGenerate;\n this._scrollWidth = this.getScrollWidth();\n };\n /**\n * @protected\n * @return {?}\n */\n IgxGridBaseComponent.prototype.setupColumns = /**\n * @protected\n * @return {?}\n */\n function () {\n var _this = this;\n if (this.autoGenerate) {\n this.autogenerateColumns();\n }\n this.initColumns(this.columnList, function (col) { return _this.onColumnInit.emit(col); });\n this.columnListDiffer.diff(this.columnList);\n this.columnList.changes\n .pipe(takeUntil(this.destroy$))\n .subscribe(function (change) { _this.onColumnsChanged(change); });\n };\n /**\n * @hidden\n * @internal\n */\n /**\n * @hidden\n * \\@internal\n * @return {?}\n */\n IgxGridBaseComponent.prototype.resetColumnsCaches = /**\n * @hidden\n * \\@internal\n * @return {?}\n */\n function () {\n this.columnList.forEach(function (column) { return column.resetCaches(); });\n };\n /**\n * @hidden\n * @internal\n */\n /**\n * @hidden\n * \\@internal\n * @return {?}\n */\n IgxGridBaseComponent.prototype.resetForOfCache = /**\n * @hidden\n * \\@internal\n * @return {?}\n */\n function () {\n /** @type {?} */\n var firstVirtRow = this.dataRowList.first;\n if (firstVirtRow) {\n if (this._cdrRequests) {\n firstVirtRow.virtDirRow.cdr.detectChanges();\n }\n firstVirtRow.virtDirRow.assumeMaster();\n }\n };\n /**\n * @hidden\n * @internal\n */\n /**\n * @hidden\n * \\@internal\n * @return {?}\n */\n IgxGridBaseComponent.prototype.resetColumnCollections = /**\n * @hidden\n * \\@internal\n * @return {?}\n */\n function () {\n this._visibleColumns.length = 0;\n this._pinnedVisible.length = 0;\n this._unpinnedVisible.length = 0;\n };\n /**\n * @hidden\n * @internal\n */\n /**\n * @hidden\n * \\@internal\n * @return {?}\n */\n IgxGridBaseComponent.prototype.resetCachedWidths = /**\n * @hidden\n * \\@internal\n * @return {?}\n */\n function () {\n this._unpinnedWidth = NaN;\n this._pinnedWidth = NaN;\n this._totalWidth = NaN;\n };\n /**\n * @hidden\n * @internal\n */\n /**\n * @hidden\n * \\@internal\n * @return {?}\n */\n IgxGridBaseComponent.prototype.resetCaches = /**\n * @hidden\n * \\@internal\n * @return {?}\n */\n function () {\n this.resetForOfCache();\n this.resetColumnsCaches();\n this.resetColumnCollections();\n this.resetCachedWidths();\n this.hasVisibleColumns = undefined;\n this._columnGroups = this.columnList.some(function (col) { return col.columnGroup; });\n };\n /**\n * @hidden\n */\n /**\n * @hidden\n * @return {?}\n */\n IgxGridBaseComponent.prototype.ngAfterContentInit = /**\n * @hidden\n * @return {?}\n */\n function () {\n this.setupColumns();\n };\n /**\n * @return {?}\n */\n IgxGridBaseComponent.prototype._setupRowObservers = /**\n * @return {?}\n */\n function () {\n var _this = this;\n /** @type {?} */\n var elementFilter = function (item) { return _this.isDefined(item.nativeElement.parentElement); };\n /** @type {?} */\n var extractForOfs = pipe(map(function (collection) { return collection.filter(elementFilter).map(function (item) { return item.virtDirRow; }); }));\n /** @type {?} */\n var rowListObserver = extractForOfs(this._dataRowList.changes);\n /** @type {?} */\n var summaryRowObserver = extractForOfs(this._summaryRowList.changes);\n combineLatest([rowListObserver, summaryRowObserver]).pipe(takeUntil(this.destroy$))\n .subscribe(function (_a) {\n var _b = __read(_a, 2), row = _b[0], summary = _b[1];\n return _this._horizontalForOfs = __spread(row, summary);\n });\n this._horizontalForOfs = __spread(this._dataRowList.filter(elementFilter).map(function (item) { return item.virtDirRow; }), this._summaryRowList.filter(elementFilter).map(function (item) { return item.virtDirRow; }));\n };\n /**\n * @return {?}\n */\n IgxGridBaseComponent.prototype._zoneBegoneListeners = /**\n * @return {?}\n */\n function () {\n var _this = this;\n this.zone.runOutsideAngular(function () {\n _this.nativeElement.addEventListener('keydown', _this.keydownHandler);\n _this.verticalScrollContainer.getScroll().addEventListener('scroll', _this.verticalScrollHandler);\n _this.headerContainer.getScroll().addEventListener('scroll', _this.horizontalScrollHandler);\n _this.observer = new ResizeObserver(function () { return _this.resizeNotify.next(); });\n _this.observer.observe(_this.nativeElement);\n });\n };\n /**\n * @hidden\n */\n /**\n * @hidden\n * @return {?}\n */\n IgxGridBaseComponent.prototype.ngAfterViewInit = /**\n * @hidden\n * @return {?}\n */\n function () {\n var _this = this;\n this.initPinning();\n this.calculateGridSizes();\n this._init = false;\n this.cdr.reattach();\n this._setupRowObservers();\n this._zoneBegoneListeners();\n /** @type {?} */\n var vertScrDC = this.verticalScrollContainer.displayContainer;\n vertScrDC.addEventListener('scroll', this.scrollHandler);\n vertScrDC.addEventListener('wheel', function () { return _this.wheelHandler(); });\n };\n /**\n * @param {?=} repaint\n * @return {?}\n */\n IgxGridBaseComponent.prototype.notifyChanges = /**\n * @param {?=} repaint\n * @return {?}\n */\n function (repaint) {\n if (repaint === void 0) { repaint = false; }\n this._cdrRequests = true;\n this._cdrRequestRepaint = repaint;\n this.cdr.markForCheck();\n };\n /**\n * @protected\n * @return {?}\n */\n IgxGridBaseComponent.prototype.resetNotifyChanges = /**\n * @protected\n * @return {?}\n */\n function () {\n this._cdrRequestRepaint = false;\n this._cdrRequests = false;\n };\n /**\n * @return {?}\n */\n IgxGridBaseComponent.prototype.ngDoCheck = /**\n * @return {?}\n */\n function () {\n _super.prototype.ngDoCheck.call(this);\n if (this._init) {\n return;\n }\n if (this._cdrRequestRepaint) {\n this.resetNotifyChanges();\n this.calculateGridSizes();\n this.refreshSearch(true);\n return;\n }\n if (this._cdrRequests) {\n this.resetNotifyChanges();\n this.cdr.detectChanges();\n }\n };\n /**\n * @hidden\n * @internal\n */\n /**\n * @hidden\n * \\@internal\n * @return {?}\n */\n IgxGridBaseComponent.prototype.getDragGhostCustomTemplate = /**\n * @hidden\n * \\@internal\n * @return {?}\n */\n function () {\n if (this.dragGhostCustomTemplates && this.dragGhostCustomTemplates.first) {\n return this.dragGhostCustomTemplates.first;\n }\n return null;\n };\n /**\n * @hidden\n */\n /**\n * @hidden\n * @return {?}\n */\n IgxGridBaseComponent.prototype.ngOnDestroy = /**\n * @hidden\n * @return {?}\n */\n function () {\n var _this = this;\n this.tmpOutlets.forEach(function (tmplOutlet) {\n tmplOutlet.cleanCache();\n });\n this.destroy$.next(true);\n this.destroy$.complete();\n this._destroyed = true;\n if (this._advancedFilteringOverlayId) {\n this.overlayService.hide(this._advancedFilteringOverlayId);\n }\n this.zone.runOutsideAngular(function () {\n _this.observer.disconnect();\n _this.nativeElement.removeEventListener('keydown', _this.keydownHandler);\n _this.verticalScrollContainer.getScroll().removeEventListener('scroll', _this.verticalScrollHandler);\n _this.headerContainer.getScroll().removeEventListener('scroll', _this.horizontalScrollHandler);\n /** @type {?} */\n var vertScrDC = _this.verticalScrollContainer.displayContainer;\n vertScrDC.removeEventListener('scroll', _this.scrollHandler);\n vertScrDC.removeEventListener('wheel', function () { return _this.wheelHandler(); });\n });\n };\n /**\n * @hidden\n */\n /**\n * @hidden\n * @param {?} event\n * @return {?}\n */\n IgxGridBaseComponent.prototype.dataLoading = /**\n * @hidden\n * @param {?} event\n * @return {?}\n */\n function (event) {\n this.onDataPreLoad.emit(event);\n };\n /**\n * Toggles the specified column's visibility.\n * ```typescript\n * this.grid1.toggleColumnVisibility({\n * column: this.grid1.columns[0],\n * newValue: true\n * });\n * ```\n * @memberof IgxGridBaseComponent\n */\n /**\n * Toggles the specified column's visibility.\n * ```typescript\n * this.grid1.toggleColumnVisibility({\n * column: this.grid1.columns[0],\n * newValue: true\n * });\n * ```\n * \\@memberof IgxGridBaseComponent\n * @param {?} args\n * @return {?}\n */\n IgxGridBaseComponent.prototype.toggleColumnVisibility = /**\n * Toggles the specified column's visibility.\n * ```typescript\n * this.grid1.toggleColumnVisibility({\n * column: this.grid1.columns[0],\n * newValue: true\n * });\n * ```\n * \\@memberof IgxGridBaseComponent\n * @param {?} args\n * @return {?}\n */\n function (args) {\n /** @type {?} */\n var col = args.column ? this.columnList.find(function (c) { return c === args.column; }) : undefined;\n if (!col) {\n return;\n }\n col.hidden = args.newValue;\n this.onColumnVisibilityChanged.emit(args);\n };\n Object.defineProperty(IgxGridBaseComponent.prototype, \"nativeElement\", {\n /**\n * Returns the native element of the `IgxGridComponent`.\n * ```typescript\n * const nativeEl = this.grid.nativeElement.\n * ```\n * @memberof IgxGridBaseComponent\n */\n get: /**\n * Returns the native element of the `IgxGridComponent`.\n * ```typescript\n * const nativeEl = this.grid.nativeElement.\n * ```\n * \\@memberof IgxGridBaseComponent\n * @return {?}\n */\n function () {\n return this.elementRef.nativeElement;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxGridBaseComponent.prototype, \"outlet\", {\n /**\n * @hidden\n */\n get: /**\n * @hidden\n * @protected\n * @return {?}\n */\n function () {\n return this.outletDirective;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxGridBaseComponent.prototype, \"defaultRowHeight\", {\n /**\n * Returns the `IgxGridComponent`'s rows height.\n * ```typescript\n * const rowHeigh = this.grid.defaultRowHeight;\n * ```\n * @memberof IgxGridBaseComponent\n */\n get: /**\n * Returns the `IgxGridComponent`'s rows height.\n * ```typescript\n * const rowHeigh = this.grid.defaultRowHeight;\n * ```\n * \\@memberof IgxGridBaseComponent\n * @return {?}\n */\n function () {\n switch (this.displayDensity) {\n case DisplayDensity.cosy:\n return 40;\n case DisplayDensity.compact:\n return 32;\n default:\n return 50;\n }\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxGridBaseComponent.prototype, \"defaultSummaryHeight\", {\n get: /**\n * @return {?}\n */\n function () {\n switch (this.displayDensity) {\n case DisplayDensity.cosy:\n return 30;\n case DisplayDensity.compact:\n return 24;\n default:\n return 36;\n }\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxGridBaseComponent.prototype, \"defaultHeaderGroupMinWidth\", {\n /**\n * Returns the `IgxGridHeaderGroupComponent`'s minimum allowed width.\n * Used internally for restricting header group component width.\n * The values below depend on the header cell default right/left padding values.\n * @memberof IgxGridBaseComponent\n */\n get: /**\n * Returns the `IgxGridHeaderGroupComponent`'s minimum allowed width.\n * Used internally for restricting header group component width.\n * The values below depend on the header cell default right/left padding values.\n * \\@memberof IgxGridBaseComponent\n * @return {?}\n */\n function () {\n switch (this.displayDensity) {\n case DisplayDensity.cosy:\n return 32;\n case DisplayDensity.compact:\n return 24;\n default:\n return 48;\n }\n },\n enumerable: true,\n configurable: true\n });\n /**\n * @return {?}\n */\n IgxGridBaseComponent.prototype.paginatorClassName = /**\n * @return {?}\n */\n function () {\n switch (this.displayDensity) {\n case DisplayDensity.cosy:\n return 'igx-paginator--cosy';\n case DisplayDensity.compact:\n return 'igx-paginator--compact';\n default:\n return 'igx-paginator';\n }\n };\n Object.defineProperty(IgxGridBaseComponent.prototype, \"calcPinnedContainerMaxWidth\", {\n /**\n * Returns the maximum width of the container for the pinned `IgxColumnComponent`s.\n * The width is 80% of the total grid width.\n * ```typescript\n * const maxPinnedColWidth = this.grid.calcPinnedContainerMaxWidth;\n * ```\n * @memberof IgxGridBaseComponent\n */\n get: /**\n * Returns the maximum width of the container for the pinned `IgxColumnComponent`s.\n * The width is 80% of the total grid width.\n * ```typescript\n * const maxPinnedColWidth = this.grid.calcPinnedContainerMaxWidth;\n * ```\n * \\@memberof IgxGridBaseComponent\n * @return {?}\n */\n function () {\n return (this.calcWidth * 80) / 100;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxGridBaseComponent.prototype, \"unpinnedAreaMinWidth\", {\n /**\n * Returns the minimum width of the container for the unpinned `IgxColumnComponent`s.\n * The width is 20% of the total grid width.\n * ```typescript\n * const minUnpinnedColWidth = this.grid.unpinnedAreaMinWidth;\n * ```\n * @memberof IgxGridBaseComponent\n */\n get: /**\n * Returns the minimum width of the container for the unpinned `IgxColumnComponent`s.\n * The width is 20% of the total grid width.\n * ```typescript\n * const minUnpinnedColWidth = this.grid.unpinnedAreaMinWidth;\n * ```\n * \\@memberof IgxGridBaseComponent\n * @return {?}\n */\n function () {\n return (this.calcWidth * 20) / 100;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxGridBaseComponent.prototype, \"pinnedWidth\", {\n /**\n * Returns the current width of the container for the pinned `IgxColumnComponent`s.\n * ```typescript\n * const pinnedWidth = this.grid.getPinnedWidth;\n * ```\n * @memberof IgxGridBaseComponent\n */\n get: /**\n * Returns the current width of the container for the pinned `IgxColumnComponent`s.\n * ```typescript\n * const pinnedWidth = this.grid.getPinnedWidth;\n * ```\n * \\@memberof IgxGridBaseComponent\n * @return {?}\n */\n function () {\n if (!isNaN(this._pinnedWidth)) {\n return this._pinnedWidth;\n }\n this._pinnedWidth = this.getPinnedWidth();\n return this._pinnedWidth;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxGridBaseComponent.prototype, \"unpinnedWidth\", {\n /**\n * Returns the current width of the container for the unpinned `IgxColumnComponent`s.\n * ```typescript\n * const unpinnedWidth = this.grid.getUnpinnedWidth;\n * ```\n * @memberof IgxGridBaseComponent\n */\n get: /**\n * Returns the current width of the container for the unpinned `IgxColumnComponent`s.\n * ```typescript\n * const unpinnedWidth = this.grid.getUnpinnedWidth;\n * ```\n * \\@memberof IgxGridBaseComponent\n * @return {?}\n */\n function () {\n if (!isNaN(this._unpinnedWidth)) {\n return this._unpinnedWidth;\n }\n this._unpinnedWidth = this.getUnpinnedWidth();\n return this._unpinnedWidth;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxGridBaseComponent.prototype, \"isHorizontalScrollHidden\", {\n get: /**\n * @return {?}\n */\n function () {\n /** @type {?} */\n var diff = this.unpinnedWidth - this.totalWidth;\n return this.width === null || diff >= 0;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxGridBaseComponent.prototype, \"featureColumnsWidth\", {\n /**\n * @hidden\n * Gets the combined width of the columns that are specific to the enabled grid features. They are fixed.\n * TODO: Update for Angular 8. Calling parent class getter using super is not supported for now.\n */\n get: /**\n * @hidden\n * Gets the combined width of the columns that are specific to the enabled grid features. They are fixed.\n * TODO: Update for Angular 8. Calling parent class getter using super is not supported for now.\n * @return {?}\n */\n function () {\n return this.getFeatureColumnsWidth();\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxGridBaseComponent.prototype, \"summariesMargin\", {\n /**\n * @hidden\n */\n get: /**\n * @hidden\n * @return {?}\n */\n function () {\n return this.featureColumnsWidth;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxGridBaseComponent.prototype, \"columns\", {\n /**\n * Returns an array of `IgxColumnComponent`s.\n * ```typescript\n * const colums = this.grid.columns.\n * ```\n * @memberof IgxGridBaseComponent\n */\n get: /**\n * Returns an array of `IgxColumnComponent`s.\n * ```typescript\n * const colums = this.grid.columns.\n * ```\n * \\@memberof IgxGridBaseComponent\n * @return {?}\n */\n function () {\n return this._columns;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxGridBaseComponent.prototype, \"pinnedColumns\", {\n /**\n * Returns an array of the pinned `IgxColumnComponent`s.\n * ```typescript\n * const pinnedColumns = this.grid.pinnedColumns.\n * ```\n * @memberof IgxGridBaseComponent\n */\n get: /**\n * Returns an array of the pinned `IgxColumnComponent`s.\n * ```typescript\n * const pinnedColumns = this.grid.pinnedColumns.\n * ```\n * \\@memberof IgxGridBaseComponent\n * @return {?}\n */\n function () {\n if (this._pinnedVisible.length) {\n return this._pinnedVisible;\n }\n this._pinnedVisible = this._pinnedColumns.filter(function (col) { return !col.hidden; });\n return this._pinnedVisible;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxGridBaseComponent.prototype, \"unpinnedColumns\", {\n /**\n * Returns an array of unpinned `IgxColumnComponent`s.\n * ```typescript\n * const unpinnedColumns = this.grid.unpinnedColumns.\n * ```\n * @memberof IgxGridBaseComponent\n */\n get: /**\n * Returns an array of unpinned `IgxColumnComponent`s.\n * ```typescript\n * const unpinnedColumns = this.grid.unpinnedColumns.\n * ```\n * \\@memberof IgxGridBaseComponent\n * @return {?}\n */\n function () {\n if (this._unpinnedVisible.length) {\n return this._unpinnedVisible;\n }\n this._unpinnedVisible = this._unpinnedColumns.filter(function (col) { return !col.hidden; });\n return this._unpinnedVisible;\n },\n enumerable: true,\n configurable: true\n });\n /**\n * Returns the `width` to be set on `IgxGridHeaderGroupComponent`.\n * @memberof IgxGridBaseComponent\n */\n /**\n * Returns the `width` to be set on `IgxGridHeaderGroupComponent`.\n * \\@memberof IgxGridBaseComponent\n * @param {?} column\n * @return {?}\n */\n IgxGridBaseComponent.prototype.getHeaderGroupWidth = /**\n * Returns the `width` to be set on `IgxGridHeaderGroupComponent`.\n * \\@memberof IgxGridBaseComponent\n * @param {?} column\n * @return {?}\n */\n function (column) {\n if (this.hasColumnLayouts) {\n return '';\n }\n /** @type {?} */\n var colWidth = column.width;\n /** @type {?} */\n var minWidth = this.defaultHeaderGroupMinWidth;\n /** @type {?} */\n var isPercentageWidth = colWidth && typeof colWidth === 'string' && colWidth.indexOf('%') !== -1;\n if (!isPercentageWidth && parseInt(column.width, 10) < minWidth) {\n return minWidth.toString();\n }\n return column.width;\n };\n /**\n * Returns the `IgxColumnComponent` by field name.\n * ```typescript\n * const myCol = this.grid1.getColumnByName(\"ID\");\n * ```\n * @param name\n * @memberof IgxGridBaseComponent\n */\n /**\n * Returns the `IgxColumnComponent` by field name.\n * ```typescript\n * const myCol = this.grid1.getColumnByName(\"ID\");\n * ```\n * \\@memberof IgxGridBaseComponent\n * @param {?} name\n * @return {?}\n */\n IgxGridBaseComponent.prototype.getColumnByName = /**\n * Returns the `IgxColumnComponent` by field name.\n * ```typescript\n * const myCol = this.grid1.getColumnByName(\"ID\");\n * ```\n * \\@memberof IgxGridBaseComponent\n * @param {?} name\n * @return {?}\n */\n function (name) {\n return this.columnList.find(function (col) { return col.field === name; });\n };\n /**\n * Returns the `IgxRowComponent` by index.\n * ```typescript\n * const myRow = this.grid1.getRowByIndex(1);\n * ```\n * @param index\n * @memberof IgxGridBaseComponent\n */\n /**\n * Returns the `IgxRowComponent` by index.\n * ```typescript\n * const myRow = this.grid1.getRowByIndex(1);\n * ```\n * \\@memberof IgxGridBaseComponent\n * @param {?} index\n * @return {?}\n */\n IgxGridBaseComponent.prototype.getRowByIndex = /**\n * Returns the `IgxRowComponent` by index.\n * ```typescript\n * const myRow = this.grid1.getRowByIndex(1);\n * ```\n * \\@memberof IgxGridBaseComponent\n * @param {?} index\n * @return {?}\n */\n function (index) {\n return this.gridAPI.get_row_by_index(index);\n };\n /**\n * Returns `IgxGridRowComponent` object by the specified primary key .\n * Requires that the `primaryKey` property is set.\n * ```typescript\n * const myRow = this.grid1.getRowByKey(\"cell5\");\n * ```\n * @param keyValue\n * @memberof IgxGridBaseComponent\n */\n /**\n * Returns `IgxGridRowComponent` object by the specified primary key .\n * Requires that the `primaryKey` property is set.\n * ```typescript\n * const myRow = this.grid1.getRowByKey(\"cell5\");\n * ```\n * \\@memberof IgxGridBaseComponent\n * @param {?} keyValue\n * @return {?}\n */\n IgxGridBaseComponent.prototype.getRowByKey = /**\n * Returns `IgxGridRowComponent` object by the specified primary key .\n * Requires that the `primaryKey` property is set.\n * ```typescript\n * const myRow = this.grid1.getRowByKey(\"cell5\");\n * ```\n * \\@memberof IgxGridBaseComponent\n * @param {?} keyValue\n * @return {?}\n */\n function (keyValue) {\n return this.gridAPI.get_row_by_key(keyValue);\n };\n Object.defineProperty(IgxGridBaseComponent.prototype, \"visibleColumns\", {\n /**\n * Returns an array of visible `IgxColumnComponent`s.\n * ```typescript\n * const visibleColumns = this.grid.visibleColumns.\n * ```\n * @memberof IgxGridBaseComponent\n */\n get: /**\n * Returns an array of visible `IgxColumnComponent`s.\n * ```typescript\n * const visibleColumns = this.grid.visibleColumns.\n * ```\n * \\@memberof IgxGridBaseComponent\n * @return {?}\n */\n function () {\n if (this._visibleColumns.length) {\n return this._visibleColumns;\n }\n this._visibleColumns = this.columnList.filter(function (c) { return !c.hidden; });\n return this._visibleColumns;\n },\n enumerable: true,\n configurable: true\n });\n /**\n * Returns the `IgxGridCellComponent` that matches the conditions.\n * ```typescript\n * const myCell = this.grid1.getCellByColumn(2,\"UnitPrice\");\n * ```\n * @param rowIndex\n * @param columnField\n * @memberof IgxGridBaseComponent\n */\n /**\n * Returns the `IgxGridCellComponent` that matches the conditions.\n * ```typescript\n * const myCell = this.grid1.getCellByColumn(2,\"UnitPrice\");\n * ```\n * \\@memberof IgxGridBaseComponent\n * @param {?} rowIndex\n * @param {?} columnField\n * @return {?}\n */\n IgxGridBaseComponent.prototype.getCellByColumn = /**\n * Returns the `IgxGridCellComponent` that matches the conditions.\n * ```typescript\n * const myCell = this.grid1.getCellByColumn(2,\"UnitPrice\");\n * ```\n * \\@memberof IgxGridBaseComponent\n * @param {?} rowIndex\n * @param {?} columnField\n * @return {?}\n */\n function (rowIndex, columnField) {\n /** @type {?} */\n var columnId = this.columnList.map(function (column) { return column.field; }).indexOf(columnField);\n if (columnId !== -1) {\n return this.gridAPI.get_cell_by_index(rowIndex, columnId);\n }\n };\n /**\n * Returns an `IgxGridCellComponent` object by the specified primary key and column field.\n * Requires that the primaryKey property is set.\n * ```typescript\n * grid.getCellByKey(1, 'index');\n * ```\n * @param rowSelector match any rowID\n * @param columnField\n * @memberof IgxGridBaseComponent\n */\n /**\n * Returns an `IgxGridCellComponent` object by the specified primary key and column field.\n * Requires that the primaryKey property is set.\n * ```typescript\n * grid.getCellByKey(1, 'index');\n * ```\n * \\@memberof IgxGridBaseComponent\n * @param {?} rowSelector match any rowID\n * @param {?} columnField\n * @return {?}\n */\n IgxGridBaseComponent.prototype.getCellByKey = /**\n * Returns an `IgxGridCellComponent` object by the specified primary key and column field.\n * Requires that the primaryKey property is set.\n * ```typescript\n * grid.getCellByKey(1, 'index');\n * ```\n * \\@memberof IgxGridBaseComponent\n * @param {?} rowSelector match any rowID\n * @param {?} columnField\n * @return {?}\n */\n function (rowSelector, columnField) {\n return this.gridAPI.get_cell_by_key(rowSelector, columnField);\n };\n Object.defineProperty(IgxGridBaseComponent.prototype, \"totalPages\", {\n /**\n * Returns the total number of pages.\n * ```typescript\n * const totalPages = this.grid.totalPages;\n * ```\n * @memberof IgxGridBaseComponent\n */\n get: /**\n * Returns the total number of pages.\n * ```typescript\n * const totalPages = this.grid.totalPages;\n * ```\n * \\@memberof IgxGridBaseComponent\n * @return {?}\n */\n function () {\n if (this.pagingState) {\n return this.pagingState.metadata.countPages;\n }\n return -1;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxGridBaseComponent.prototype, \"isFirstPage\", {\n /**\n * Returns if the current page is the first page.\n * ```typescript\n * const firstPage = this.grid.isFirstPage;\n * ```\n * @memberof IgxGridBaseComponent\n */\n get: /**\n * Returns if the current page is the first page.\n * ```typescript\n * const firstPage = this.grid.isFirstPage;\n * ```\n * \\@memberof IgxGridBaseComponent\n * @return {?}\n */\n function () {\n return this.page === 0;\n },\n enumerable: true,\n configurable: true\n });\n /**\n * Goes to the next page of the `IgxGridComponent`, if the grid is not already at the last page.\n * ```typescript\n * this.grid1.nextPage();\n * ```\n * @memberof IgxGridBaseComponent\n */\n /**\n * Goes to the next page of the `IgxGridComponent`, if the grid is not already at the last page.\n * ```typescript\n * this.grid1.nextPage();\n * ```\n * \\@memberof IgxGridBaseComponent\n * @return {?}\n */\n IgxGridBaseComponent.prototype.nextPage = /**\n * Goes to the next page of the `IgxGridComponent`, if the grid is not already at the last page.\n * ```typescript\n * this.grid1.nextPage();\n * ```\n * \\@memberof IgxGridBaseComponent\n * @return {?}\n */\n function () {\n if (!this.isLastPage) {\n this.page += 1;\n }\n };\n /**\n * Goes to the previous page of the `IgxGridComponent`, if the grid is not already at the first page.\n * ```typescript\n * this.grid1.previousPage();\n * ```\n * @memberof IgxGridBaseComponent\n */\n /**\n * Goes to the previous page of the `IgxGridComponent`, if the grid is not already at the first page.\n * ```typescript\n * this.grid1.previousPage();\n * ```\n * \\@memberof IgxGridBaseComponent\n * @return {?}\n */\n IgxGridBaseComponent.prototype.previousPage = /**\n * Goes to the previous page of the `IgxGridComponent`, if the grid is not already at the first page.\n * ```typescript\n * this.grid1.previousPage();\n * ```\n * \\@memberof IgxGridBaseComponent\n * @return {?}\n */\n function () {\n if (!this.isFirstPage) {\n this.page -= 1;\n }\n };\n Object.defineProperty(IgxGridBaseComponent.prototype, \"totalRecords\", {\n /**\n * Returns the total number of records.\n * Only functions when paging is enabled.\n * ```typescript\n * const totalRecords = this.grid.totalRecords;\n * ```\n * @memberof IgxGridBaseComponent\n */\n get: /**\n * Returns the total number of records.\n * Only functions when paging is enabled.\n * ```typescript\n * const totalRecords = this.grid.totalRecords;\n * ```\n * \\@memberof IgxGridBaseComponent\n * @return {?}\n */\n function () {\n if (this.pagingState) {\n return this.pagingState.metadata.countRecords;\n }\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxGridBaseComponent.prototype, \"isLastPage\", {\n /**\n * Returns if the current page is the last page.\n * ```typescript\n * const lastPage = this.grid.isLastPage;\n * ```\n * @memberof IgxGridBaseComponent\n */\n get: /**\n * Returns if the current page is the last page.\n * ```typescript\n * const lastPage = this.grid.isLastPage;\n * ```\n * \\@memberof IgxGridBaseComponent\n * @return {?}\n */\n function () {\n return this.page + 1 >= this.totalPages;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxGridBaseComponent.prototype, \"totalWidth\", {\n /**\n * Returns the total width of the `IgxGridComponent`.\n * ```typescript\n * const gridWidth = this.grid.totalWidth;\n * ```\n * @memberof IgxGridBaseComponent\n */\n get: /**\n * Returns the total width of the `IgxGridComponent`.\n * ```typescript\n * const gridWidth = this.grid.totalWidth;\n * ```\n * \\@memberof IgxGridBaseComponent\n * @return {?}\n */\n function () {\n if (!isNaN(this._totalWidth)) {\n return this._totalWidth;\n }\n // Take only top level columns\n /** @type {?} */\n var cols = this.visibleColumns.filter(function (col) { return col.level === 0 && !col.pinned; });\n /** @type {?} */\n var totalWidth = 0;\n /** @type {?} */\n var i = 0;\n for (i; i < cols.length; i++) {\n totalWidth += parseInt(cols[i].calcWidth, 10) || 0;\n }\n this._totalWidth = totalWidth;\n return totalWidth;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxGridBaseComponent.prototype, \"showRowSelectors\", {\n /**\n * @hidden\n * @internal\n */\n get: /**\n * @hidden\n * \\@internal\n * @return {?}\n */\n function () {\n return this.isRowSelectable && this.hasVisibleColumns && !this.hideRowSelectors;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxGridBaseComponent.prototype, \"showDragIcons\", {\n /**\n * @hidden\n * @internal\n */\n get: /**\n * @hidden\n * \\@internal\n * @return {?}\n */\n function () {\n return this.rowDraggable && this.columns.length > this.hiddenColumnsCount;\n },\n enumerable: true,\n configurable: true\n });\n /**\n * @hidden\n */\n /**\n * @hidden\n * @protected\n * @param {?} from\n * @param {?} to\n * @param {?} pos\n * @return {?}\n */\n IgxGridBaseComponent.prototype._moveColumns = /**\n * @hidden\n * @protected\n * @param {?} from\n * @param {?} to\n * @param {?} pos\n * @return {?}\n */\n function (from, to, pos) {\n /** @type {?} */\n var list = this.columnList.toArray();\n /** @type {?} */\n var fromIndex = list.indexOf(from);\n /** @type {?} */\n var toIndex = list.indexOf(to);\n if (pos === DropPosition.BeforeDropTarget) {\n toIndex--;\n if (toIndex < 0) {\n toIndex = 0;\n }\n }\n if (pos === DropPosition.AfterDropTarget) {\n toIndex++;\n }\n list.splice.apply(list, __spread([toIndex, 0], list.splice(fromIndex, 1)));\n /** @type {?} */\n var newList = this._resetColumnList(list);\n this.columnList.reset(newList);\n this.columnList.notifyOnChanges();\n this._columns = this.columnList.toArray();\n };\n /**\n * @hidden\n */\n /**\n * @hidden\n * @protected\n * @param {?=} list\n * @return {?}\n */\n IgxGridBaseComponent.prototype._resetColumnList = /**\n * @hidden\n * @protected\n * @param {?=} list\n * @return {?}\n */\n function (list) {\n if (!list) {\n list = this.columnList.toArray();\n }\n /** @type {?} */\n var newList = [];\n list.filter(function (c) { return c.level === 0; }).forEach(function (p) {\n newList.push(p);\n if (p.columnGroup) {\n newList = newList.concat(p.allChildren);\n }\n });\n return newList;\n };\n /**\n * @hidden\n */\n /**\n * @hidden\n * @protected\n * @param {?} from\n * @param {?} to\n * @param {?} position\n * @return {?}\n */\n IgxGridBaseComponent.prototype._reorderPinnedColumns = /**\n * @hidden\n * @protected\n * @param {?} from\n * @param {?} to\n * @param {?} position\n * @return {?}\n */\n function (from, to, position) {\n /** @type {?} */\n var pinned = this._pinnedColumns;\n /** @type {?} */\n var dropIndex = pinned.indexOf(to);\n if (to.columnGroup) {\n dropIndex += to.allChildren.length;\n }\n if (position === DropPosition.BeforeDropTarget) {\n dropIndex--;\n }\n if (position === DropPosition.AfterDropTarget) {\n dropIndex++;\n }\n pinned.splice.apply(pinned, __spread([dropIndex, 0], pinned.splice(pinned.indexOf(from), 1)));\n };\n /**\n * @hidden\n */\n /**\n * @hidden\n * @protected\n * @param {?} parent\n * @param {?} from\n * @param {?} to\n * @param {?} pos\n * @return {?}\n */\n IgxGridBaseComponent.prototype._moveChildColumns = /**\n * @hidden\n * @protected\n * @param {?} parent\n * @param {?} from\n * @param {?} to\n * @param {?} pos\n * @return {?}\n */\n function (parent, from, to, pos) {\n /** @type {?} */\n var buffer = parent.children.toArray();\n /** @type {?} */\n var fromIndex = buffer.indexOf(from);\n /** @type {?} */\n var toIndex = buffer.indexOf(to);\n if (pos === DropPosition.BeforeDropTarget) {\n toIndex--;\n }\n if (pos === DropPosition.AfterDropTarget) {\n toIndex++;\n }\n buffer.splice.apply(buffer, __spread([toIndex, 0], buffer.splice(fromIndex, 1)));\n parent.children.reset(buffer);\n };\n /**\n * Moves a column to the specified drop target.\n * ```typescript\n * grid.moveColumn(compName, persDetails);\n * ```\n * @memberof IgxGridBaseComponent\n */\n /**\n * Moves a column to the specified drop target.\n * ```typescript\n * grid.moveColumn(compName, persDetails);\n * ```\n * \\@memberof IgxGridBaseComponent\n * @param {?} column\n * @param {?} dropTarget\n * @param {?=} pos\n * @return {?}\n */\n IgxGridBaseComponent.prototype.moveColumn = /**\n * Moves a column to the specified drop target.\n * ```typescript\n * grid.moveColumn(compName, persDetails);\n * ```\n * \\@memberof IgxGridBaseComponent\n * @param {?} column\n * @param {?} dropTarget\n * @param {?=} pos\n * @return {?}\n */\n function (column, dropTarget, pos) {\n if (pos === void 0) { pos = DropPosition.None; }\n /** @type {?} */\n var position = pos;\n /** @type {?} */\n var fromIndex = column.visibleIndex;\n /** @type {?} */\n var toIndex = dropTarget.visibleIndex;\n if (pos === DropPosition.BeforeDropTarget && fromIndex < toIndex) {\n position = DropPosition.BeforeDropTarget;\n }\n else if (pos === DropPosition.AfterDropTarget && fromIndex > toIndex) {\n position = DropPosition.AfterDropTarget;\n }\n else {\n position = DropPosition.None;\n }\n if ((column.level !== dropTarget.level) ||\n (column.topLevelParent !== dropTarget.topLevelParent)) {\n return;\n }\n this.endEdit(true);\n if (column.level) {\n this._moveChildColumns(column.parent, column, dropTarget, position);\n }\n if (dropTarget.pinned && column.pinned) {\n this._reorderPinnedColumns(column, dropTarget, position);\n }\n if (dropTarget.pinned && !column.pinned) {\n column.pin();\n this._reorderPinnedColumns(column, dropTarget, position);\n }\n if (!dropTarget.pinned && column.pinned) {\n column.unpin();\n /** @type {?} */\n var list = this.columnList.toArray();\n /** @type {?} */\n var fi = list.indexOf(column);\n /** @type {?} */\n var ti = list.indexOf(dropTarget);\n if (pos === DropPosition.BeforeDropTarget && fi < ti) {\n position = DropPosition.BeforeDropTarget;\n }\n else if (pos === DropPosition.AfterDropTarget && fi > ti) {\n position = DropPosition.AfterDropTarget;\n }\n else {\n position = DropPosition.None;\n }\n }\n this._moveColumns(column, dropTarget, position);\n this.notifyChanges();\n if (this.hasColumnLayouts) {\n this.columns.filter(function (x) { return x.columnLayout; }).forEach(function (x) { return x.populateVisibleIndexes(); });\n }\n /** @type {?} */\n var args = {\n source: column,\n target: dropTarget\n };\n this.onColumnMovingEnd.emit(args);\n };\n /**\n * Goes to the desired page index.\n * ```typescript\n * this.grid1.paginate(1);\n * ```\n * @param val\n * @memberof IgxGridBaseComponent\n */\n /**\n * Goes to the desired page index.\n * ```typescript\n * this.grid1.paginate(1);\n * ```\n * \\@memberof IgxGridBaseComponent\n * @param {?} val\n * @return {?}\n */\n IgxGridBaseComponent.prototype.paginate = /**\n * Goes to the desired page index.\n * ```typescript\n * this.grid1.paginate(1);\n * ```\n * \\@memberof IgxGridBaseComponent\n * @param {?} val\n * @return {?}\n */\n function (val) {\n if (val < 0 || val > this.totalPages - 1) {\n return;\n }\n this.page = val;\n };\n /**\n * Manually marks the `IgxGridComponent` for change detection.\n * ```typescript\n * this.grid1.markForCheck();\n * ```\n * @memberof IgxGridBaseComponent\n */\n /**\n * Manually marks the `IgxGridComponent` for change detection.\n * ```typescript\n * this.grid1.markForCheck();\n * ```\n * \\@memberof IgxGridBaseComponent\n * @return {?}\n */\n IgxGridBaseComponent.prototype.markForCheck = /**\n * Manually marks the `IgxGridComponent` for change detection.\n * ```typescript\n * this.grid1.markForCheck();\n * ```\n * \\@memberof IgxGridBaseComponent\n * @return {?}\n */\n function () {\n this.cdr.detectChanges();\n };\n /**\n * Creates a new `IgxGridRowComponent` and adds the data record to the end of the data source.\n * ```typescript\n * const record = {\n * ID: this.grid1.data[this.grid1.data.length - 1].ID + 1,\n * Name: this.newRecord\n * };\n * this.grid1.addRow(record);\n * ```\n * @param data\n * @memberof IgxGridBaseComponent\n */\n /**\n * Creates a new `IgxGridRowComponent` and adds the data record to the end of the data source.\n * ```typescript\n * const record = {\n * ID: this.grid1.data[this.grid1.data.length - 1].ID + 1,\n * Name: this.newRecord\n * };\n * this.grid1.addRow(record);\n * ```\n * \\@memberof IgxGridBaseComponent\n * @param {?} data\n * @return {?}\n */\n IgxGridBaseComponent.prototype.addRow = /**\n * Creates a new `IgxGridRowComponent` and adds the data record to the end of the data source.\n * ```typescript\n * const record = {\n * ID: this.grid1.data[this.grid1.data.length - 1].ID + 1,\n * Name: this.newRecord\n * };\n * this.grid1.addRow(record);\n * ```\n * \\@memberof IgxGridBaseComponent\n * @param {?} data\n * @return {?}\n */\n function (data) {\n // commit pending states prior to adding a row\n this.endEdit(true);\n this.gridAPI.addRowToData(data);\n this.onRowAdded.emit({ data: data });\n this._pipeTrigger++;\n this.notifyChanges();\n };\n /**\n * Removes the `IgxGridRowComponent` and the corresponding data record by primary key.\n * Requires that the `primaryKey` property is set.\n * The method accept rowSelector as a parameter, which is the rowID.\n * ```typescript\n * this.grid1.deleteRow(0);\n * ```\n * @param rowSelector\n * @memberof IgxGridBaseComponent\n */\n /**\n * Removes the `IgxGridRowComponent` and the corresponding data record by primary key.\n * Requires that the `primaryKey` property is set.\n * The method accept rowSelector as a parameter, which is the rowID.\n * ```typescript\n * this.grid1.deleteRow(0);\n * ```\n * \\@memberof IgxGridBaseComponent\n * @param {?} rowSelector\n * @return {?}\n */\n IgxGridBaseComponent.prototype.deleteRow = /**\n * Removes the `IgxGridRowComponent` and the corresponding data record by primary key.\n * Requires that the `primaryKey` property is set.\n * The method accept rowSelector as a parameter, which is the rowID.\n * ```typescript\n * this.grid1.deleteRow(0);\n * ```\n * \\@memberof IgxGridBaseComponent\n * @param {?} rowSelector\n * @return {?}\n */\n function (rowSelector) {\n if (this.primaryKey !== undefined && this.primaryKey !== null) {\n this.deleteRowById(rowSelector);\n }\n };\n /** @hidden */\n /**\n * @hidden\n * @param {?} rowId\n * @return {?}\n */\n IgxGridBaseComponent.prototype.deleteRowById = /**\n * @hidden\n * @param {?} rowId\n * @return {?}\n */\n function (rowId) {\n this.gridAPI.deleteRowById(rowId);\n };\n /**\n * @hidden\n */\n /**\n * @hidden\n * @protected\n * @param {?} rowID\n * @param {?} index\n * @return {?}\n */\n IgxGridBaseComponent.prototype.deleteRowFromData = /**\n * @hidden\n * @protected\n * @param {?} rowID\n * @param {?} index\n * @return {?}\n */\n function (rowID, index) {\n // if there is a row (index !== 0) delete it\n // if there is a row in ADD or UPDATE state change it's state to DELETE\n if (index !== -1) {\n if (this.transactions.enabled) {\n /** @type {?} */\n var transaction = { id: rowID, type: TransactionType.DELETE, newValue: null };\n this.transactions.add(transaction, this.data[index]);\n }\n else {\n this.data.splice(index, 1);\n }\n }\n else {\n /** @type {?} */\n var state = this.transactions.getState(rowID);\n this.transactions.add({ id: rowID, type: TransactionType.DELETE, newValue: null }, state && state.recordRef);\n }\n };\n /**\n * Updates the `IgxGridRowComponent` and the corresponding data record by primary key.\n * Requires that the `primaryKey` property is set.\n * ```typescript\n * this.gridWithPK.updateCell('Updated', 1, 'ProductName');\n * ```\n * @param value the new value which is to be set.\n * @param rowSelector corresponds to rowID.\n * @param column corresponds to column field.\n * @memberof IgxGridBaseComponent\n */\n /**\n * Updates the `IgxGridRowComponent` and the corresponding data record by primary key.\n * Requires that the `primaryKey` property is set.\n * ```typescript\n * this.gridWithPK.updateCell('Updated', 1, 'ProductName');\n * ```\n * \\@memberof IgxGridBaseComponent\n * @param {?} value the new value which is to be set.\n * @param {?} rowSelector corresponds to rowID.\n * @param {?} column corresponds to column field.\n * @return {?}\n */\n IgxGridBaseComponent.prototype.updateCell = /**\n * Updates the `IgxGridRowComponent` and the corresponding data record by primary key.\n * Requires that the `primaryKey` property is set.\n * ```typescript\n * this.gridWithPK.updateCell('Updated', 1, 'ProductName');\n * ```\n * \\@memberof IgxGridBaseComponent\n * @param {?} value the new value which is to be set.\n * @param {?} rowSelector corresponds to rowID.\n * @param {?} column corresponds to column field.\n * @return {?}\n */\n function (value, rowSelector, column) {\n if (this.isDefined(this.primaryKey)) {\n /** @type {?} */\n var col = this.columnList.toArray().find(function (c) { return c.field === column; });\n if (col) {\n // Simplify\n /** @type {?} */\n var rowData = this.gridAPI.getRowData(rowSelector);\n /** @type {?} */\n var index = this.gridAPI.get_row_index_in_data(rowSelector);\n // If row passed is invalid\n if (index < 0) {\n return;\n }\n /** @type {?} */\n var id = {\n rowID: rowSelector,\n columnID: col.index,\n rowIndex: index\n };\n /** @type {?} */\n var cell = new IgxCell(id, index, col, rowData[col.field], rowData[col.field], rowData);\n /** @type {?} */\n var args = this.gridAPI.update_cell(cell, value);\n if (this.crudService.cell && this.crudService.sameCell(cell)) {\n if (args.cancel) {\n return;\n }\n this.gridAPI.escape_editMode();\n }\n this.cdr.detectChanges();\n }\n }\n };\n /**\n * Updates the `IgxGridRowComponent`, which is specified by\n * rowSelector parameter and the data source record with the passed value.\n * This method will apply requested update only if primary key is specified in the grid.\n * ```typescript\n * grid.updateRow({\n * ProductID: 1, ProductName: 'Spearmint', InStock: true, UnitsInStock: 1, OrderDate: new Date('2005-03-21')\n * }, 1);\n * ```\n * @param value\n * @param rowSelector correspond to rowID\n * @memberof IgxGridBaseComponent\n */\n /**\n * Updates the `IgxGridRowComponent`, which is specified by\n * rowSelector parameter and the data source record with the passed value.\n * This method will apply requested update only if primary key is specified in the grid.\n * ```typescript\n * grid.updateRow({\n * ProductID: 1, ProductName: 'Spearmint', InStock: true, UnitsInStock: 1, OrderDate: new Date('2005-03-21')\n * }, 1);\n * ```\n * \\@memberof IgxGridBaseComponent\n * @param {?} value\n * @param {?} rowSelector correspond to rowID\n * @return {?}\n */\n IgxGridBaseComponent.prototype.updateRow = /**\n * Updates the `IgxGridRowComponent`, which is specified by\n * rowSelector parameter and the data source record with the passed value.\n * This method will apply requested update only if primary key is specified in the grid.\n * ```typescript\n * grid.updateRow({\n * ProductID: 1, ProductName: 'Spearmint', InStock: true, UnitsInStock: 1, OrderDate: new Date('2005-03-21')\n * }, 1);\n * ```\n * \\@memberof IgxGridBaseComponent\n * @param {?} value\n * @param {?} rowSelector correspond to rowID\n * @return {?}\n */\n function (value, rowSelector) {\n if (this.isDefined(this.primaryKey)) {\n /** @type {?} */\n var editableCell = this.crudService.cell;\n if (editableCell && editableCell.id.rowID === rowSelector) {\n this.gridAPI.escape_editMode();\n }\n /** @type {?} */\n var row = new IgxRow(rowSelector, -1, this.gridAPI.getRowData(rowSelector));\n this.gridAPI.update_row(row, value);\n // TODO: fix for #5934 and probably break for #5763\n // consider adding of third optional boolean parameter in updateRow.\n // If developer set this parameter to true we should call notifyChanges(true), and\n // vise-versa if developer set it to false we should call notifyChanges(false).\n // The parameter should default to false\n this.notifyChanges();\n }\n };\n /**\n * Sort a single `IgxColumnComponent`.\n * Sort the `IgxGridComponent`'s `IgxColumnComponent` based on the provided array of sorting expressions.\n * ```typescript\n * this.grid.sort({ fieldName: name, dir: SortingDirection.Asc, ignoreCase: false });\n * ```\n * @memberof IgxGridBaseComponent\n */\n /**\n * Sort a single `IgxColumnComponent`.\n * Sort the `IgxGridComponent`'s `IgxColumnComponent` based on the provided array of sorting expressions.\n * ```typescript\n * this.grid.sort({ fieldName: name, dir: SortingDirection.Asc, ignoreCase: false });\n * ```\n * \\@memberof IgxGridBaseComponent\n * @param {?} expression\n * @return {?}\n */\n IgxGridBaseComponent.prototype.sort = /**\n * Sort a single `IgxColumnComponent`.\n * Sort the `IgxGridComponent`'s `IgxColumnComponent` based on the provided array of sorting expressions.\n * ```typescript\n * this.grid.sort({ fieldName: name, dir: SortingDirection.Asc, ignoreCase: false });\n * ```\n * \\@memberof IgxGridBaseComponent\n * @param {?} expression\n * @return {?}\n */\n function (expression) {\n var _this = this;\n this.endEdit(false);\n if (expression instanceof Array) {\n this.gridAPI.sort_multiple(expression);\n }\n else {\n this.gridAPI.sort(expression);\n }\n requestAnimationFrame(function () { return _this.onSortingDone.emit(expression); });\n };\n /**\n * Filters a single `IgxColumnComponent`.\n * ```typescript\n * public filter(term) {\n * this.grid.filter(\"ProductName\", term, IgxStringFilteringOperand.instance().condition(\"contains\"));\n * }\n * ```\n * @param name\n * @param value\n * @param conditionOrExpressionTree\n * @param ignoreCase\n * @memberof IgxGridBaseComponent\n */\n /**\n * Filters a single `IgxColumnComponent`.\n * ```typescript\n * public filter(term) {\n * this.grid.filter(\"ProductName\", term, IgxStringFilteringOperand.instance().condition(\"contains\"));\n * }\n * ```\n * \\@memberof IgxGridBaseComponent\n * @param {?} name\n * @param {?} value\n * @param {?=} conditionOrExpressionTree\n * @param {?=} ignoreCase\n * @return {?}\n */\n IgxGridBaseComponent.prototype.filter = /**\n * Filters a single `IgxColumnComponent`.\n * ```typescript\n * public filter(term) {\n * this.grid.filter(\"ProductName\", term, IgxStringFilteringOperand.instance().condition(\"contains\"));\n * }\n * ```\n * \\@memberof IgxGridBaseComponent\n * @param {?} name\n * @param {?} value\n * @param {?=} conditionOrExpressionTree\n * @param {?=} ignoreCase\n * @return {?}\n */\n function (name, value, conditionOrExpressionTree, ignoreCase) {\n this.filteringService.filter(name, value, conditionOrExpressionTree, ignoreCase);\n };\n /**\n * Filters all the `IgxColumnComponent` in the `IgxGridComponent` with the same condition.\n * ```typescript\n * grid.filterGlobal('some', IgxStringFilteringOperand.instance().condition('contains'));\n * ```\n * @param value\n * @param condition\n * @param ignoreCase\n * @memberof IgxGridBaseComponent\n */\n /**\n * Filters all the `IgxColumnComponent` in the `IgxGridComponent` with the same condition.\n * ```typescript\n * grid.filterGlobal('some', IgxStringFilteringOperand.instance().condition('contains'));\n * ```\n * \\@memberof IgxGridBaseComponent\n * @param {?} value\n * @param {?} condition\n * @param {?=} ignoreCase\n * @return {?}\n */\n IgxGridBaseComponent.prototype.filterGlobal = /**\n * Filters all the `IgxColumnComponent` in the `IgxGridComponent` with the same condition.\n * ```typescript\n * grid.filterGlobal('some', IgxStringFilteringOperand.instance().condition('contains'));\n * ```\n * \\@memberof IgxGridBaseComponent\n * @param {?} value\n * @param {?} condition\n * @param {?=} ignoreCase\n * @return {?}\n */\n function (value, condition, ignoreCase) {\n this.filteringService.filterGlobal(value, condition, ignoreCase);\n };\n /**\n * Enables summaries for the specified column and applies your customSummary.\n * If you do not provide the customSummary, then the default summary for the column data type will be applied.\n * ```typescript\n * grid.enableSummaries([{ fieldName: 'ProductName' }, { fieldName: 'ID' }]);\n * ```\n * Enable summaries for the listed columns.\n * ```typescript\n * grid.enableSummaries('ProductName');\n * ```\n * @param rest\n * @memberof IgxGridBaseComponent\n */\n /**\n * Enables summaries for the specified column and applies your customSummary.\n * If you do not provide the customSummary, then the default summary for the column data type will be applied.\n * ```typescript\n * grid.enableSummaries([{ fieldName: 'ProductName' }, { fieldName: 'ID' }]);\n * ```\n * Enable summaries for the listed columns.\n * ```typescript\n * grid.enableSummaries('ProductName');\n * ```\n * \\@memberof IgxGridBaseComponent\n * @param {...?} rest\n * @return {?}\n */\n IgxGridBaseComponent.prototype.enableSummaries = /**\n * Enables summaries for the specified column and applies your customSummary.\n * If you do not provide the customSummary, then the default summary for the column data type will be applied.\n * ```typescript\n * grid.enableSummaries([{ fieldName: 'ProductName' }, { fieldName: 'ID' }]);\n * ```\n * Enable summaries for the listed columns.\n * ```typescript\n * grid.enableSummaries('ProductName');\n * ```\n * \\@memberof IgxGridBaseComponent\n * @param {...?} rest\n * @return {?}\n */\n function () {\n var rest = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n rest[_i] = arguments[_i];\n }\n if (rest.length === 1 && Array.isArray(rest[0])) {\n this._multipleSummaries(rest[0], true);\n }\n else {\n this._summaries(rest[0], true, rest[1]);\n }\n };\n /**\n * Disable summaries for the specified column.\n * ```typescript\n * grid.disableSummaries('ProductName');\n * ```\n *\n * Disable summaries for the listed columns.\n * ```typescript\n * grid.disableSummaries([{ fieldName: 'ProductName' }]);\n * ```\n * @memberof IgxGridBaseComponent\n */\n /**\n * Disable summaries for the specified column.\n * ```typescript\n * grid.disableSummaries('ProductName');\n * ```\n *\n * Disable summaries for the listed columns.\n * ```typescript\n * grid.disableSummaries([{ fieldName: 'ProductName' }]);\n * ```\n * \\@memberof IgxGridBaseComponent\n * @param {...?} rest\n * @return {?}\n */\n IgxGridBaseComponent.prototype.disableSummaries = /**\n * Disable summaries for the specified column.\n * ```typescript\n * grid.disableSummaries('ProductName');\n * ```\n *\n * Disable summaries for the listed columns.\n * ```typescript\n * grid.disableSummaries([{ fieldName: 'ProductName' }]);\n * ```\n * \\@memberof IgxGridBaseComponent\n * @param {...?} rest\n * @return {?}\n */\n function () {\n var rest = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n rest[_i] = arguments[_i];\n }\n if (rest.length === 1 && Array.isArray(rest[0])) {\n this._disableMultipleSummaries(rest[0]);\n }\n else {\n this._summaries(rest[0], false);\n }\n };\n /**\n * If name is provided, clears the filtering state of the corresponding `IgxColumnComponent`,\n * otherwise clears the filtering state of all `IgxColumnComponent`s.\n * ```typescript\n * this.grid.clearFilter();\n * ```\n * @param name\n * @memberof IgxGridBaseComponent\n */\n /**\n * If name is provided, clears the filtering state of the corresponding `IgxColumnComponent`,\n * otherwise clears the filtering state of all `IgxColumnComponent`s.\n * ```typescript\n * this.grid.clearFilter();\n * ```\n * \\@memberof IgxGridBaseComponent\n * @param {?=} name\n * @return {?}\n */\n IgxGridBaseComponent.prototype.clearFilter = /**\n * If name is provided, clears the filtering state of the corresponding `IgxColumnComponent`,\n * otherwise clears the filtering state of all `IgxColumnComponent`s.\n * ```typescript\n * this.grid.clearFilter();\n * ```\n * \\@memberof IgxGridBaseComponent\n * @param {?=} name\n * @return {?}\n */\n function (name) {\n this.filteringService.clearFilter(name);\n };\n /**\n * If name is provided, clears the sorting state of the corresponding `IgxColumnComponent`,\n * otherwise clears the sorting state of all `IgxColumnComponent`.\n * ```typescript\n * this.grid.clearSort();\n * ```\n * @param name\n * @memberof IgxGridBaseComponent\n */\n /**\n * If name is provided, clears the sorting state of the corresponding `IgxColumnComponent`,\n * otherwise clears the sorting state of all `IgxColumnComponent`.\n * ```typescript\n * this.grid.clearSort();\n * ```\n * \\@memberof IgxGridBaseComponent\n * @param {?=} name\n * @return {?}\n */\n IgxGridBaseComponent.prototype.clearSort = /**\n * If name is provided, clears the sorting state of the corresponding `IgxColumnComponent`,\n * otherwise clears the sorting state of all `IgxColumnComponent`.\n * ```typescript\n * this.grid.clearSort();\n * ```\n * \\@memberof IgxGridBaseComponent\n * @param {?=} name\n * @return {?}\n */\n function (name) {\n if (!name) {\n this.sortingExpressions = [];\n return;\n }\n if (!this.gridAPI.get_column_by_name(name)) {\n return;\n }\n this.gridAPI.clear_sort(name);\n };\n /**\n * @hidden\n */\n /**\n * @hidden\n * @param {?=} args\n * @return {?}\n */\n IgxGridBaseComponent.prototype.refreshGridState = /**\n * @hidden\n * @param {?=} args\n * @return {?}\n */\n function (args) {\n this.endEdit(true);\n this.selectionService.clearHeaderCBState();\n this.summaryService.clearSummaryCache(args);\n };\n // TODO: We have return values here. Move them to event args ??\n /**\n * Pins a column by field name. Returns whether the operation is successful.\n * ```typescript\n * this.grid.pinColumn(\"ID\");\n * ```\n * @param columnName\n * @param index\n * @memberof IgxGridBaseComponent\n */\n // TODO: We have return values here. Move them to event args ??\n /**\n * Pins a column by field name. Returns whether the operation is successful.\n * ```typescript\n * this.grid.pinColumn(\"ID\");\n * ```\n * \\@memberof IgxGridBaseComponent\n * @param {?} columnName\n * @param {?=} index\n * @return {?}\n */\n IgxGridBaseComponent.prototype.pinColumn = \n // TODO: We have return values here. Move them to event args ??\n /**\n * Pins a column by field name. Returns whether the operation is successful.\n * ```typescript\n * this.grid.pinColumn(\"ID\");\n * ```\n * \\@memberof IgxGridBaseComponent\n * @param {?} columnName\n * @param {?=} index\n * @return {?}\n */\n function (columnName, index) {\n /** @type {?} */\n var col = columnName instanceof IgxColumnComponent ? columnName : this.getColumnByName(columnName);\n return col.pin(index);\n };\n /**\n * Unpins a column by field name. Returns whether the operation is successful.\n * ```typescript\n * this.grid.pinColumn(\"ID\");\n * ```\n * @param columnName\n * @param index\n * @memberof IgxGridBaseComponent\n */\n /**\n * Unpins a column by field name. Returns whether the operation is successful.\n * ```typescript\n * this.grid.pinColumn(\"ID\");\n * ```\n * \\@memberof IgxGridBaseComponent\n * @param {?} columnName\n * @param {?=} index\n * @return {?}\n */\n IgxGridBaseComponent.prototype.unpinColumn = /**\n * Unpins a column by field name. Returns whether the operation is successful.\n * ```typescript\n * this.grid.pinColumn(\"ID\");\n * ```\n * \\@memberof IgxGridBaseComponent\n * @param {?} columnName\n * @param {?=} index\n * @return {?}\n */\n function (columnName, index) {\n /** @type {?} */\n var col = columnName instanceof IgxColumnComponent ? columnName : this.getColumnByName(columnName);\n return col.unpin(index);\n };\n /**\n * Recalculates grid width/height dimensions. Should be run when changing DOM elements dimentions manually that affect the grid's size.\n * ```typescript\n * this.grid.reflow();\n * ```\n * @memberof IgxGridBaseComponent\n */\n /**\n * Recalculates grid width/height dimensions. Should be run when changing DOM elements dimentions manually that affect the grid's size.\n * ```typescript\n * this.grid.reflow();\n * ```\n * \\@memberof IgxGridBaseComponent\n * @return {?}\n */\n IgxGridBaseComponent.prototype.reflow = /**\n * Recalculates grid width/height dimensions. Should be run when changing DOM elements dimentions manually that affect the grid's size.\n * ```typescript\n * this.grid.reflow();\n * ```\n * \\@memberof IgxGridBaseComponent\n * @return {?}\n */\n function () {\n this.calculateGridSizes();\n };\n /**\n * Finds the next occurrence of a given string in the grid and scrolls to the cell if it isn't visible.\n * Returns how many times the grid contains the string.\n * ```typescript\n * this.grid.findNext(\"financial\");\n * ```\n * @param text the string to search.\n * @param caseSensitive optionally, if the search should be case sensitive (defaults to false).\n * @param exactMatch optionally, if the text should match the entire value (defaults to false).\n * @memberof IgxGridBaseComponent\n */\n /**\n * Finds the next occurrence of a given string in the grid and scrolls to the cell if it isn't visible.\n * Returns how many times the grid contains the string.\n * ```typescript\n * this.grid.findNext(\"financial\");\n * ```\n * \\@memberof IgxGridBaseComponent\n * @param {?} text the string to search.\n * @param {?=} caseSensitive optionally, if the search should be case sensitive (defaults to false).\n * @param {?=} exactMatch optionally, if the text should match the entire value (defaults to false).\n * @return {?}\n */\n IgxGridBaseComponent.prototype.findNext = /**\n * Finds the next occurrence of a given string in the grid and scrolls to the cell if it isn't visible.\n * Returns how many times the grid contains the string.\n * ```typescript\n * this.grid.findNext(\"financial\");\n * ```\n * \\@memberof IgxGridBaseComponent\n * @param {?} text the string to search.\n * @param {?=} caseSensitive optionally, if the search should be case sensitive (defaults to false).\n * @param {?=} exactMatch optionally, if the text should match the entire value (defaults to false).\n * @return {?}\n */\n function (text, caseSensitive, exactMatch) {\n return this.find(text, 1, caseSensitive, exactMatch);\n };\n /**\n * Finds the previous occurrence of a given string in the grid and scrolls to the cell if it isn't visible.\n * Returns how many times the grid contains the string.\n * ```typescript\n * this.grid.findPrev(\"financial\");\n * ```\n * @param text the string to search.\n * @param caseSensitive optionally, if the search should be case sensitive (defaults to false).\n * @param exactMatch optionally, if the text should match the entire value (defaults to false).\n * @memberof IgxGridBaseComponent\n */\n /**\n * Finds the previous occurrence of a given string in the grid and scrolls to the cell if it isn't visible.\n * Returns how many times the grid contains the string.\n * ```typescript\n * this.grid.findPrev(\"financial\");\n * ```\n * \\@memberof IgxGridBaseComponent\n * @param {?} text the string to search.\n * @param {?=} caseSensitive optionally, if the search should be case sensitive (defaults to false).\n * @param {?=} exactMatch optionally, if the text should match the entire value (defaults to false).\n * @return {?}\n */\n IgxGridBaseComponent.prototype.findPrev = /**\n * Finds the previous occurrence of a given string in the grid and scrolls to the cell if it isn't visible.\n * Returns how many times the grid contains the string.\n * ```typescript\n * this.grid.findPrev(\"financial\");\n * ```\n * \\@memberof IgxGridBaseComponent\n * @param {?} text the string to search.\n * @param {?=} caseSensitive optionally, if the search should be case sensitive (defaults to false).\n * @param {?=} exactMatch optionally, if the text should match the entire value (defaults to false).\n * @return {?}\n */\n function (text, caseSensitive, exactMatch) {\n return this.find(text, -1, caseSensitive, exactMatch);\n };\n /**\n * Reapplies the existing search.\n * Returns how many times the grid contains the last search.\n * ```typescript\n * this.grid.refreshSearch();\n * ```\n * @param updateActiveInfo\n * @memberof IgxGridBaseComponent\n */\n /**\n * Reapplies the existing search.\n * Returns how many times the grid contains the last search.\n * ```typescript\n * this.grid.refreshSearch();\n * ```\n * \\@memberof IgxGridBaseComponent\n * @param {?=} updateActiveInfo\n * @return {?}\n */\n IgxGridBaseComponent.prototype.refreshSearch = /**\n * Reapplies the existing search.\n * Returns how many times the grid contains the last search.\n * ```typescript\n * this.grid.refreshSearch();\n * ```\n * \\@memberof IgxGridBaseComponent\n * @param {?=} updateActiveInfo\n * @return {?}\n */\n function (updateActiveInfo) {\n var _this = this;\n if (this.lastSearchInfo.searchText) {\n this.rebuildMatchCache();\n if (updateActiveInfo) {\n /** @type {?} */\n var activeInfo_1 = IgxTextHighlightDirective.highlightGroupsMap.get(this.id);\n this.lastSearchInfo.matchInfoCache.forEach(function (match, i) {\n if (match.column === activeInfo_1.column &&\n match.row === activeInfo_1.row &&\n match.index === activeInfo_1.index) {\n _this.lastSearchInfo.activeMatchIndex = i;\n }\n });\n }\n return this.find(this.lastSearchInfo.searchText, 0, this.lastSearchInfo.caseSensitive, this.lastSearchInfo.exactMatch, false);\n }\n else {\n return 0;\n }\n };\n /**\n * Removes all the highlights in the cell.\n * ```typescript\n * this.grid.clearSearch();\n * ```\n * @memberof IgxGridBaseComponent\n */\n /**\n * Removes all the highlights in the cell.\n * ```typescript\n * this.grid.clearSearch();\n * ```\n * \\@memberof IgxGridBaseComponent\n * @return {?}\n */\n IgxGridBaseComponent.prototype.clearSearch = /**\n * Removes all the highlights in the cell.\n * ```typescript\n * this.grid.clearSearch();\n * ```\n * \\@memberof IgxGridBaseComponent\n * @return {?}\n */\n function () {\n this.lastSearchInfo = {\n searchText: '',\n caseSensitive: false,\n exactMatch: false,\n activeMatchIndex: 0,\n matchInfoCache: []\n };\n this.rowList.forEach(function (row) {\n if (row.cells) {\n row.cells.forEach(function (c) {\n c.clearHighlight();\n });\n }\n });\n };\n Object.defineProperty(IgxGridBaseComponent.prototype, \"hasSortableColumns\", {\n /**\n * Returns if the `IgxGridComponent` has sortable columns.\n * ```typescript\n * const sortableGrid = this.grid.hasSortableColumns;\n * ```\n * @memberof IgxGridBaseComponent\n */\n get: /**\n * Returns if the `IgxGridComponent` has sortable columns.\n * ```typescript\n * const sortableGrid = this.grid.hasSortableColumns;\n * ```\n * \\@memberof IgxGridBaseComponent\n * @return {?}\n */\n function () {\n return this.columnList.some(function (col) { return col.sortable; });\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxGridBaseComponent.prototype, \"hasEditableColumns\", {\n /**\n * Returns if the `IgxGridComponent` has editable columns.\n * ```typescript\n * const editableGrid = this.grid.hasEditableColumns;\n * ```\n * @memberof IgxGridBaseComponent\n */\n get: /**\n * Returns if the `IgxGridComponent` has editable columns.\n * ```typescript\n * const editableGrid = this.grid.hasEditableColumns;\n * ```\n * \\@memberof IgxGridBaseComponent\n * @return {?}\n */\n function () {\n return this.columnList.some(function (col) { return col.editable; });\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxGridBaseComponent.prototype, \"hasFilterableColumns\", {\n /**\n * Returns if the `IgxGridComponent` has fiterable columns.\n * ```typescript\n * const filterableGrid = this.grid.hasFilterableColumns;\n * ```\n * @memberof IgxGridBaseComponent\n */\n get: /**\n * Returns if the `IgxGridComponent` has fiterable columns.\n * ```typescript\n * const filterableGrid = this.grid.hasFilterableColumns;\n * ```\n * \\@memberof IgxGridBaseComponent\n * @return {?}\n */\n function () {\n return this.columnList.some(function (col) { return col.filterable; });\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxGridBaseComponent.prototype, \"hasSummarizedColumns\", {\n /**\n * Returns if the `IgxGridComponent` has summarized columns.\n * ```typescript\n * const summarizedGrid = this.grid.hasSummarizedColumns;\n * ```\n * @memberof IgxGridBaseComponent\n */\n get: /**\n * Returns if the `IgxGridComponent` has summarized columns.\n * ```typescript\n * const summarizedGrid = this.grid.hasSummarizedColumns;\n * ```\n * \\@memberof IgxGridBaseComponent\n * @return {?}\n */\n function () {\n return this.summaryService.hasSummarizedColumns;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxGridBaseComponent.prototype, \"rootSummariesEnabled\", {\n /**\n * @hidden\n */\n get: /**\n * @hidden\n * @return {?}\n */\n function () {\n return this.summaryCalculationMode !== GridSummaryCalculationMode.childLevelsOnly;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxGridBaseComponent.prototype, \"hasVisibleColumns\", {\n /**\n * @hidden\n */\n get: /**\n * @hidden\n * @return {?}\n */\n function () {\n if (this._hasVisibleColumns === undefined) {\n return this.columnList ? this.columnList.some(function (c) { return !c.hidden; }) : false;\n }\n return this._hasVisibleColumns;\n },\n set: /**\n * @param {?} value\n * @return {?}\n */\n function (value) {\n this._hasVisibleColumns = value;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxGridBaseComponent.prototype, \"hasMovableColumns\", {\n /**\n * Returns if the `IgxGridComponent` has moveable columns.\n * ```typescript\n * const movableGrid = this.grid.hasMovableColumns;\n * ```\n * @memberof IgxGridBaseComponent\n */\n get: /**\n * Returns if the `IgxGridComponent` has moveable columns.\n * ```typescript\n * const movableGrid = this.grid.hasMovableColumns;\n * ```\n * \\@memberof IgxGridBaseComponent\n * @return {?}\n */\n function () {\n return this.columnList && this.columnList.some(function (col) { return col.movable; });\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxGridBaseComponent.prototype, \"hasColumnGroups\", {\n /**\n * Returns if the `IgxGridComponent` has column groups.\n * ```typescript\n * const groupGrid = this.grid.hasColumnGroups;\n * ```\n * @memberof IgxGridBaseComponent\n */\n get: /**\n * Returns if the `IgxGridComponent` has column groups.\n * ```typescript\n * const groupGrid = this.grid.hasColumnGroups;\n * ```\n * \\@memberof IgxGridBaseComponent\n * @return {?}\n */\n function () {\n return this._columnGroups;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxGridBaseComponent.prototype, \"hasColumnLayouts\", {\n /**\n * Returns if the `IgxGridComponent` has column layouts for multi-row layout definition.\n * ```typescript\n * const layoutGrid = this.grid.hasColumnLayouts;\n * ```\n * @memberof IgxGridBaseComponent\n */\n get: /**\n * Returns if the `IgxGridComponent` has column layouts for multi-row layout definition.\n * ```typescript\n * const layoutGrid = this.grid.hasColumnLayouts;\n * ```\n * \\@memberof IgxGridBaseComponent\n * @return {?}\n */\n function () {\n return !!this.columnList.some(function (col) { return col.columnLayout; });\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxGridBaseComponent.prototype, \"selectedCells\", {\n /**\n * Returns an array of the selected `IgxGridCellComponent`s.\n * ```typescript\n * const selectedCells = this.grid.selectedCells;\n * ```\n * @memberof IgxGridBaseComponent\n */\n get: /**\n * Returns an array of the selected `IgxGridCellComponent`s.\n * ```typescript\n * const selectedCells = this.grid.selectedCells;\n * ```\n * \\@memberof IgxGridBaseComponent\n * @return {?}\n */\n function () {\n if (this.dataRowList) {\n return this.dataRowList.map(function (row) { return row.cells.filter(function (cell) { return cell.selected; }); })\n .reduce(function (a, b) { return a.concat(b); }, []);\n }\n return [];\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxGridBaseComponent.prototype, \"multiRowLayoutRowSize\", {\n /**\n * @hidden\n */\n get: /**\n * @hidden\n * @return {?}\n */\n function () {\n return this._multiRowLayoutRowSize;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxGridBaseComponent.prototype, \"rowBasedHeight\", {\n /**\n * @hidden\n */\n get: /**\n * @hidden\n * @protected\n * @return {?}\n */\n function () {\n return this.dataLength * this.rowHeight;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxGridBaseComponent.prototype, \"isPercentWidth\", {\n /**\n * @hidden\n */\n get: /**\n * @hidden\n * @protected\n * @return {?}\n */\n function () {\n return this.width && this.width.indexOf('%') !== -1;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxGridBaseComponent.prototype, \"isPercentHeight\", {\n /**\n * @hidden @internal\n */\n get: /**\n * @hidden \\@internal\n * @return {?}\n */\n function () {\n return this._height && this._height.indexOf('%') !== -1;\n },\n enumerable: true,\n configurable: true\n });\n /**\n * @hidden\n * Sets columns defaultWidth property\n */\n /**\n * @hidden\n * Sets columns defaultWidth property\n * @protected\n * @return {?}\n */\n IgxGridBaseComponent.prototype._derivePossibleWidth = /**\n * @hidden\n * Sets columns defaultWidth property\n * @protected\n * @return {?}\n */\n function () {\n var _this = this;\n if (!this.columnWidthSetByUser) {\n this._columnWidth = this.width !== null ? this.getPossibleColumnWidth() : MINIMUM_COLUMN_WIDTH + 'px';\n }\n this.columnList.forEach(function (column) {\n if (_this.hasColumnLayouts && parseInt(_this._columnWidth, 10)) {\n /** @type {?} */\n var columnWidthCombined = parseInt(_this._columnWidth, 10) * (column.colEnd ? column.colEnd - column.colStart : 1);\n column.defaultWidth = columnWidthCombined + 'px';\n }\n else {\n column.defaultWidth = _this._columnWidth;\n column.resetCaches();\n }\n });\n this.resetCachedWidths();\n };\n Object.defineProperty(IgxGridBaseComponent.prototype, \"defaultTargetBodyHeight\", {\n /**\n * @hidden\n */\n get: /**\n * @hidden\n * @protected\n * @return {?}\n */\n function () {\n /** @type {?} */\n var allItems = this.dataLength;\n return this.renderedRowHeight * Math.min(this._defaultTargetRecordNumber, this.paging ? Math.min(allItems, this.perPage) : allItems);\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxGridBaseComponent.prototype, \"renderedRowHeight\", {\n /**\n * @hidden @internal\n * The rowHeight input is bound to min-height css prop of rows that adds a 1px border in all cases\n */\n get: /**\n * @hidden \\@internal\n * The rowHeight input is bound to min-height css prop of rows that adds a 1px border in all cases\n * @return {?}\n */\n function () {\n return this.rowHeight + 1;\n },\n enumerable: true,\n configurable: true\n });\n /**\n * @hidden\n * @internal\n */\n /**\n * @hidden\n * \\@internal\n * @protected\n * @return {?}\n */\n IgxGridBaseComponent.prototype.calcGridHeadRow = /**\n * @hidden\n * \\@internal\n * @protected\n * @return {?}\n */\n function () {\n if (this.maxLevelHeaderDepth) {\n this._baseFontSize = parseFloat(getComputedStyle(this.document.documentElement).getPropertyValue('font-size'));\n /** @type {?} */\n var minSize = (this.maxLevelHeaderDepth + 1) * this.defaultRowHeight / this._baseFontSize;\n if (this._allowFiltering && this._filterMode === FilterMode.quickFilter) {\n minSize += (FILTER_ROW_HEIGHT + 1) / this._baseFontSize;\n }\n this.theadRow.nativeElement.style.minHeight = minSize + \"rem\";\n }\n };\n /**\n * @hidden\n * Sets TBODY height i.e. this.calcHeight\n */\n /**\n * @hidden\n * Sets TBODY height i.e. this.calcHeight\n * @protected\n * @return {?}\n */\n IgxGridBaseComponent.prototype.calculateGridHeight = /**\n * @hidden\n * Sets TBODY height i.e. this.calcHeight\n * @protected\n * @return {?}\n */\n function () {\n this.calcGridHeadRow();\n this.summariesHeight = 0;\n if (this.hasSummarizedColumns && this.rootSummariesEnabled) {\n this.summariesHeight = this.summaryService.calcMaxSummaryHeight();\n }\n this.calcHeight = this._calculateGridBodyHeight();\n };\n /**\n * @hidden\n */\n /**\n * @hidden\n * @protected\n * @return {?}\n */\n IgxGridBaseComponent.prototype.getGroupAreaHeight = /**\n * @hidden\n * @protected\n * @return {?}\n */\n function () {\n return 0;\n };\n /**\n * @hidden\n */\n /**\n * @hidden\n * @protected\n * @return {?}\n */\n IgxGridBaseComponent.prototype.getToolbarHeight = /**\n * @hidden\n * @protected\n * @return {?}\n */\n function () {\n /** @type {?} */\n var toolbarHeight = 0;\n if (this.showToolbar && this.toolbarHtml != null) {\n toolbarHeight = this.toolbarHtml.nativeElement.firstElementChild ?\n this.toolbarHtml.nativeElement.offsetHeight : 0;\n }\n return toolbarHeight;\n };\n /**\n * @hidden\n */\n /**\n * @hidden\n * @protected\n * @return {?}\n */\n IgxGridBaseComponent.prototype.getPagingHeight = /**\n * @hidden\n * @protected\n * @return {?}\n */\n function () {\n /** @type {?} */\n var pagingHeight = 0;\n if (this.paging && this.footer) {\n pagingHeight = this.footer.nativeElement.firstElementChild ?\n this.footer.nativeElement.offsetHeight : 0;\n }\n return pagingHeight;\n };\n /**\n * @hidden\n */\n /**\n * @hidden\n * @protected\n * @return {?}\n */\n IgxGridBaseComponent.prototype.getFilterCellHeight = /**\n * @hidden\n * @protected\n * @return {?}\n */\n function () {\n /** @type {?} */\n var headerGroupNativeEl = (this.headerGroupsList.length !== 0) ?\n this.headerGroupsList[0].element.nativeElement : null;\n /** @type {?} */\n var filterCellNativeEl = (headerGroupNativeEl) ?\n headerGroupNativeEl.querySelector('igx-grid-filtering-cell') : null;\n return (filterCellNativeEl) ? filterCellNativeEl.offsetHeight : 0;\n };\n /**\n * @hidden\n */\n /**\n * @hidden\n * @protected\n * @return {?}\n */\n IgxGridBaseComponent.prototype._calculateGridBodyHeight = /**\n * @hidden\n * @protected\n * @return {?}\n */\n function () {\n if (!this._height) {\n return null;\n }\n /** @type {?} */\n var actualTheadRow = (!this.allowFiltering || (this.allowFiltering && this.filterMode !== FilterMode.quickFilter)) ?\n this.theadRow.nativeElement.offsetHeight - this.getFilterCellHeight() :\n this.theadRow.nativeElement.offsetHeight;\n /** @type {?} */\n var footerHeight = this.summariesHeight || this.tfoot.nativeElement.offsetHeight - this.tfoot.nativeElement.clientHeight;\n /** @type {?} */\n var toolbarHeight = this.getToolbarHeight();\n /** @type {?} */\n var pagingHeight = this.getPagingHeight();\n /** @type {?} */\n var groupAreaHeight = this.getGroupAreaHeight();\n /** @type {?} */\n var renderedHeight = toolbarHeight + actualTheadRow +\n footerHeight + pagingHeight + groupAreaHeight +\n this.scr.nativeElement.clientHeight;\n /** @type {?} */\n var computed = this.document.defaultView.getComputedStyle(this.nativeElement).getPropertyValue('height');\n /** @type {?} */\n var gridHeight = 0;\n if (this.isPercentHeight) {\n /** @type {?} */\n var autoSize = this._shouldAutoSize(renderedHeight);\n if (autoSize || computed.indexOf('%') !== -1) {\n /** @type {?} */\n var bodyHeight = this.getDataBasedBodyHeight();\n return bodyHeight > 0 ? bodyHeight : null;\n }\n gridHeight = parseInt(computed, 10);\n }\n else {\n gridHeight = parseInt(this._height, 10);\n }\n /** @type {?} */\n var height = Math.abs(gridHeight - renderedHeight);\n if (height === 0 || isNaN(gridHeight)) {\n /** @type {?} */\n var bodyHeight = this.defaultTargetBodyHeight;\n return bodyHeight > 0 ? bodyHeight : null;\n }\n return height;\n };\n /**\n * @protected\n * @return {?}\n */\n IgxGridBaseComponent.prototype.checkContainerSizeChange = /**\n * @protected\n * @return {?}\n */\n function () {\n /** @type {?} */\n var origHeight = this.nativeElement.parentElement.offsetHeight;\n this.nativeElement.style.display = 'none';\n /** @type {?} */\n var height = this.nativeElement.parentElement.offsetHeight;\n this.nativeElement.style.display = '';\n return origHeight !== height;\n };\n /**\n * @protected\n * @param {?} renderedHeight\n * @return {?}\n */\n IgxGridBaseComponent.prototype._shouldAutoSize = /**\n * @protected\n * @param {?} renderedHeight\n * @return {?}\n */\n function (renderedHeight) {\n this.tbody.nativeElement.style.display = 'none';\n /** @type {?} */\n var res = !this.nativeElement.parentElement ||\n this.nativeElement.parentElement.clientHeight === 0 ||\n this.nativeElement.parentElement.clientHeight === renderedHeight;\n if (!isChromium()) {\n // If grid causes the parent container to extend (for example when container is flex)\n // we should always auto-size since the actual size of the container will continuously change as the grid renders elements.\n res = this.checkContainerSizeChange();\n }\n this.tbody.nativeElement.style.display = '';\n return res;\n };\n Object.defineProperty(IgxGridBaseComponent.prototype, \"outerWidth\", {\n get: /**\n * @return {?}\n */\n function () {\n return this.hasVerticalSroll() ? this.calcWidth + this.scrollWidth : this.calcWidth;\n },\n enumerable: true,\n configurable: true\n });\n /**\n * @hidden\n * Gets the visible content height that includes header + tbody + footer.\n */\n /**\n * @hidden\n * Gets the visible content height that includes header + tbody + footer.\n * @return {?}\n */\n IgxGridBaseComponent.prototype.getVisibleContentHeight = /**\n * @hidden\n * Gets the visible content height that includes header + tbody + footer.\n * @return {?}\n */\n function () {\n /** @type {?} */\n var height = this.theadRow.nativeElement.clientHeight + this.tbody.nativeElement.clientHeight;\n if (this.hasSummarizedColumns) {\n height += this.tfoot.nativeElement.clientHeight;\n }\n return height;\n };\n /**\n * @hidden\n */\n /**\n * @hidden\n * @param {?=} baseWidth\n * @return {?}\n */\n IgxGridBaseComponent.prototype.getPossibleColumnWidth = /**\n * @hidden\n * @param {?=} baseWidth\n * @return {?}\n */\n function (baseWidth) {\n if (baseWidth === void 0) { baseWidth = null; }\n /** @type {?} */\n var computedWidth;\n if (baseWidth !== null) {\n computedWidth = baseWidth;\n }\n else {\n computedWidth = this.calcWidth ||\n parseInt(this.document.defaultView.getComputedStyle(this.nativeElement).getPropertyValue('width'), 10);\n }\n computedWidth -= this.getFeatureColumnsWidth();\n if (this.showDragIcons) {\n computedWidth -= this.headerDragContainer ? this.headerDragContainer.nativeElement.offsetWidth : 0;\n }\n /** @type {?} */\n var visibleChildColumns = this.visibleColumns.filter(function (c) { return !c.columnGroup; });\n // Column layouts related\n /** @type {?} */\n var visibleCols = [];\n /** @type {?} */\n var columnBlocks = this.visibleColumns.filter(function (c) { return c.columnGroup; });\n /** @type {?} */\n var colsPerBlock = columnBlocks.map(function (block) { return block.getInitialChildColumnSizes(block.children); });\n /** @type {?} */\n var combinedBlocksSize = colsPerBlock.reduce(function (acc, item) { return acc + item.length; }, 0);\n colsPerBlock.forEach(function (blockCols) { return visibleCols = visibleCols.concat(blockCols); });\n //\n /** @type {?} */\n var columnsWithSetWidths = this.hasColumnLayouts ?\n visibleCols.filter(function (c) { return c.widthSetByUser; }) :\n visibleChildColumns.filter(function (c) { return c.widthSetByUser; });\n /** @type {?} */\n var columnsToSize = this.hasColumnLayouts ?\n combinedBlocksSize - columnsWithSetWidths.length :\n visibleChildColumns.length - columnsWithSetWidths.length;\n /** @type {?} */\n var sumExistingWidths = columnsWithSetWidths\n .reduce(function (prev, curr) {\n /** @type {?} */\n var colWidth = curr.width;\n /** @type {?} */\n var widthValue = parseInt(colWidth, 10);\n /** @type {?} */\n var currWidth = colWidth && typeof colWidth === 'string' && colWidth.indexOf('%') !== -1 ?\n widthValue / 100 * computedWidth :\n widthValue;\n return prev + currWidth;\n }, 0);\n // When all columns are hidden, return 0px width\n if (!sumExistingWidths && !columnsToSize) {\n return '0px';\n }\n /** @type {?} */\n var columnWidth = Math.floor(!Number.isFinite(sumExistingWidths) ?\n Math.max(computedWidth / columnsToSize, MINIMUM_COLUMN_WIDTH) :\n Math.max((computedWidth - sumExistingWidths) / columnsToSize, MINIMUM_COLUMN_WIDTH));\n return columnWidth.toString();\n };\n /**\n * @hidden\n * Sets grid width i.e. this.calcWidth\n */\n /**\n * @hidden\n * Sets grid width i.e. this.calcWidth\n * @protected\n * @return {?}\n */\n IgxGridBaseComponent.prototype.calculateGridWidth = /**\n * @hidden\n * Sets grid width i.e. this.calcWidth\n * @protected\n * @return {?}\n */\n function () {\n /** @type {?} */\n var width;\n /** @type {?} */\n var computed = this.document.defaultView.getComputedStyle(this.nativeElement).getPropertyValue('width');\n if (this.isPercentWidth) {\n /* width in %*/\n width = computed.indexOf('%') === -1 ? parseInt(computed, 10) : null;\n }\n else {\n width = parseInt(this.width, 10);\n }\n if (!width && this.nativeElement) {\n width = this.nativeElement.offsetWidth;\n }\n if (this.width === null || !width) {\n width = this.getColumnWidthSum();\n }\n if (this.hasVerticalSroll() && this.width !== null) {\n width -= this.scrollWidth;\n }\n if ((Number.isFinite(width) || width === null) && width !== this.calcWidth) {\n this.calcWidth = width;\n }\n this._derivePossibleWidth();\n };\n /**\n * @private\n * @return {?}\n */\n IgxGridBaseComponent.prototype.getColumnWidthSum = /**\n * @private\n * @return {?}\n */\n function () {\n /** @type {?} */\n var colSum = 0;\n /** @type {?} */\n var cols = this.hasColumnLayouts ?\n this.visibleColumns.filter(function (x) { return x.columnLayout; }) : this.visibleColumns.filter(function (x) { return !x.columnGroup; });\n cols.forEach(function (item) {\n /** @type {?} */\n var isWidthInPercent = item.width && typeof item.width === 'string' && item.width.indexOf('%') !== -1;\n if (isWidthInPercent) {\n item.width = item.calcWidth || MINIMUM_COLUMN_WIDTH + 'px';\n }\n colSum += parseInt((item.width || item.defaultWidth), 10) || MINIMUM_COLUMN_WIDTH;\n });\n if (!colSum) {\n return null;\n }\n this.cdr.detectChanges();\n colSum += this.getFeatureColumnsWidth();\n return colSum;\n };\n /**\n * @return {?}\n */\n IgxGridBaseComponent.prototype.hasVerticalSroll = /**\n * @return {?}\n */\n function () {\n if (this._init) {\n return false;\n }\n /** @type {?} */\n var isScrollable = this.verticalScrollContainer ? this.verticalScrollContainer.isScrollable() : false;\n return !!(this.calcWidth && this.dataView &&\n this.dataView.length > 0 &&\n isScrollable);\n };\n /**\n * @hidden @internal\n */\n /**\n * @hidden \\@internal\n * @protected\n * @return {?}\n */\n IgxGridBaseComponent.prototype.getDataBasedBodyHeight = /**\n * @hidden \\@internal\n * @protected\n * @return {?}\n */\n function () {\n return !this.data || (this.data.length < this._defaultTargetRecordNumber) ?\n 0 : this.defaultTargetBodyHeight;\n };\n /**\n * @hidden\n */\n /**\n * @hidden\n * @protected\n * @param {?} change\n * @return {?}\n */\n IgxGridBaseComponent.prototype.onColumnsChanged = /**\n * @hidden\n * @protected\n * @param {?} change\n * @return {?}\n */\n function (change) {\n var _this = this;\n /** @type {?} */\n var diff = this.columnListDiffer.diff(change);\n if (diff) {\n /** @type {?} */\n var added_1 = false;\n /** @type {?} */\n var removed_1 = false;\n this.initColumns(this.columnList);\n diff.forEachAddedItem(function (record) {\n _this.onColumnInit.emit(record.item);\n added_1 = true;\n });\n diff.forEachRemovedItem(function (record) {\n /** @type {?} */\n var isColumnGroup = record.item instanceof IgxColumnGroupComponent;\n if (!isColumnGroup) {\n // Clear Grouping\n _this.gridAPI.clear_groupby(record.item.field);\n // Clear Filtering\n _this.gridAPI.clear_filter(record.item.field);\n // Close filter row\n if (_this.filteringService.isFilterRowVisible\n && _this.filteringService.filteredColumn\n && _this.filteringService.filteredColumn.field === record.item.field) {\n _this.filteringRow.close();\n }\n // Clear Sorting\n _this.gridAPI.clear_sort(record.item.field);\n }\n removed_1 = true;\n });\n this.resetCaches();\n if (added_1 || removed_1) {\n this.summaryService.clearSummaryCache();\n Promise.resolve().then(function () {\n // `onColumnsChanged` can be executed midway a current detectChange cycle and markForCheck will be ignored then.\n // This ensures that we will wait for the current cycle to end so we can trigger a new one and ngDoCheck to fire.\n _this.notifyChanges(true);\n });\n }\n }\n };\n /**\n * @hidden\n */\n /**\n * @hidden\n * @protected\n * @return {?}\n */\n IgxGridBaseComponent.prototype.calculateGridSizes = /**\n * @hidden\n * @protected\n * @return {?}\n */\n function () {\n var _this = this;\n /*\n TODO: (R.K.) This layered lasagne should be refactored\n ASAP. The reason I have to reset the caches so many times is because\n after teach `detectChanges` call they are filled with invalid\n state. Of course all of this happens midway through the grid\n sizing process which of course, uses values from the caches, thus resulting\n in a broken layout.\n */\n this.resetCaches();\n this.cdr.detectChanges();\n /** @type {?} */\n var hasScroll = this.hasVerticalSroll();\n this.calculateGridWidth();\n this.resetCaches();\n this.cdr.detectChanges();\n this.calculateGridHeight();\n if (this.rowEditable) {\n this.repositionRowEditingOverlay(this.rowInEditMode);\n }\n if (this.filteringService.isFilterRowVisible) {\n this.filteringRow.resetChipsArea();\n }\n this.cdr.detectChanges();\n // in case scrollbar has appeared recalc to size correctly.\n if (hasScroll !== this.hasVerticalSroll()) {\n this.calculateGridWidth();\n this.cdr.detectChanges();\n }\n if (this.zone.isStable) {\n this.zone.run(function () {\n _this._applyWidthHostBinding();\n _this.cdr.detectChanges();\n });\n }\n else {\n this.zone.onStable.pipe(first$1()).subscribe(function () {\n _this.zone.run(function () {\n _this._applyWidthHostBinding();\n });\n });\n }\n this.resetCaches();\n };\n /**\n * @private\n * @return {?}\n */\n IgxGridBaseComponent.prototype._applyWidthHostBinding = /**\n * @private\n * @return {?}\n */\n function () {\n /** @type {?} */\n var width = this._width;\n if (width === null) {\n /** @type {?} */\n var currentWidth = this.calcWidth;\n if (this.hasVerticalSroll()) {\n currentWidth += this.scrollWidth;\n }\n width = currentWidth + 'px';\n this.resetCaches();\n }\n this._hostWidth = width;\n this.cdr.markForCheck();\n };\n /**\n * @hidden\n * Gets the combined width of the columns that are specific to the enabled grid features. They are fixed.\n * Method used to override the calculations.\n * TODO: Remove for Angular 8. Calling parent class getter using super is not supported for now.\n */\n /**\n * @hidden\n * Gets the combined width of the columns that are specific to the enabled grid features. They are fixed.\n * Method used to override the calculations.\n * TODO: Remove for Angular 8. Calling parent class getter using super is not supported for now.\n * @return {?}\n */\n IgxGridBaseComponent.prototype.getFeatureColumnsWidth = /**\n * @hidden\n * Gets the combined width of the columns that are specific to the enabled grid features. They are fixed.\n * Method used to override the calculations.\n * TODO: Remove for Angular 8. Calling parent class getter using super is not supported for now.\n * @return {?}\n */\n function () {\n /** @type {?} */\n var width = 0;\n if (this.isRowSelectable) {\n width += this.headerSelectorContainer ? this.headerSelectorContainer.nativeElement.getBoundingClientRect().width : 0;\n }\n if (this.rowDraggable) {\n width += this.headerDragContainer ? this.headerDragContainer.nativeElement.getBoundingClientRect().width : 0;\n }\n return width;\n };\n /**\n * Gets calculated width of the pinned area.\n * ```typescript\n * const pinnedWidth = this.grid.getPinnedWidth();\n * ```\n * @param takeHidden If we should take into account the hidden columns in the pinned area.\n * @memberof IgxGridBaseComponent\n */\n /**\n * Gets calculated width of the pinned area.\n * ```typescript\n * const pinnedWidth = this.grid.getPinnedWidth();\n * ```\n * \\@memberof IgxGridBaseComponent\n * @param {?=} takeHidden If we should take into account the hidden columns in the pinned area.\n * @return {?}\n */\n IgxGridBaseComponent.prototype.getPinnedWidth = /**\n * Gets calculated width of the pinned area.\n * ```typescript\n * const pinnedWidth = this.grid.getPinnedWidth();\n * ```\n * \\@memberof IgxGridBaseComponent\n * @param {?=} takeHidden If we should take into account the hidden columns in the pinned area.\n * @return {?}\n */\n function (takeHidden) {\n var e_1, _a;\n if (takeHidden === void 0) { takeHidden = false; }\n /** @type {?} */\n var fc = takeHidden ? this._pinnedColumns : this.pinnedColumns;\n /** @type {?} */\n var sum = 0;\n try {\n for (var fc_1 = __values(fc), fc_1_1 = fc_1.next(); !fc_1_1.done; fc_1_1 = fc_1.next()) {\n var col = fc_1_1.value;\n if (col.level === 0) {\n sum += parseInt(col.calcWidth, 10);\n }\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (fc_1_1 && !fc_1_1.done && (_a = fc_1.return)) _a.call(fc_1);\n }\n finally { if (e_1) throw e_1.error; }\n }\n sum += this.featureColumnsWidth;\n return sum;\n };\n /**\n * @hidden\n * Gets calculated width of the unpinned area\n * @param takeHidden If we should take into account the hidden columns in the pinned area.\n * @memberof IgxGridBaseComponent\n */\n /**\n * @hidden\n * Gets calculated width of the unpinned area\n * \\@memberof IgxGridBaseComponent\n * @protected\n * @param {?=} takeHidden If we should take into account the hidden columns in the pinned area.\n * @return {?}\n */\n IgxGridBaseComponent.prototype.getUnpinnedWidth = /**\n * @hidden\n * Gets calculated width of the unpinned area\n * \\@memberof IgxGridBaseComponent\n * @protected\n * @param {?=} takeHidden If we should take into account the hidden columns in the pinned area.\n * @return {?}\n */\n function (takeHidden) {\n if (takeHidden === void 0) { takeHidden = false; }\n /** @type {?} */\n var width = this.isPercentWidth ?\n this.calcWidth :\n parseInt(this.width, 10) || parseInt(this.hostWidth, 10) || this.calcWidth;\n if (this.hasVerticalSroll() && !this.isPercentWidth) {\n width -= this.scrollWidth;\n }\n return width - this.getPinnedWidth(takeHidden);\n };\n /**\n * @hidden\n */\n /**\n * @hidden\n * @protected\n * @param {?} fieldName\n * @param {?} hasSummary\n * @param {?=} summaryOperand\n * @return {?}\n */\n IgxGridBaseComponent.prototype._summaries = /**\n * @hidden\n * @protected\n * @param {?} fieldName\n * @param {?} hasSummary\n * @param {?=} summaryOperand\n * @return {?}\n */\n function (fieldName, hasSummary, summaryOperand) {\n /** @type {?} */\n var column = this.gridAPI.get_column_by_name(fieldName);\n if (column) {\n column.hasSummary = hasSummary;\n if (summaryOperand) {\n if (this.rootSummariesEnabled) {\n this.summaryService.retriggerRootPipe++;\n }\n column.summaries = summaryOperand;\n }\n }\n };\n /**\n * @hidden\n */\n /**\n * @hidden\n * @protected\n * @param {?} expressions\n * @param {?} hasSummary\n * @return {?}\n */\n IgxGridBaseComponent.prototype._multipleSummaries = /**\n * @hidden\n * @protected\n * @param {?} expressions\n * @param {?} hasSummary\n * @return {?}\n */\n function (expressions, hasSummary) {\n var _this = this;\n expressions.forEach(function (element) {\n _this._summaries(element.fieldName, hasSummary, element.customSummary);\n });\n };\n /**\n * @hidden\n */\n /**\n * @hidden\n * @protected\n * @param {?} expressions\n * @return {?}\n */\n IgxGridBaseComponent.prototype._disableMultipleSummaries = /**\n * @hidden\n * @protected\n * @param {?} expressions\n * @return {?}\n */\n function (expressions) {\n var _this = this;\n expressions.forEach(function (column) {\n /** @type {?} */\n var columnName = column && column.fieldName ? column.fieldName : column;\n _this._summaries(columnName, false);\n });\n };\n /**\n * @hidden\n */\n /**\n * @hidden\n * @protected\n * @param {?} rec\n * @return {?}\n */\n IgxGridBaseComponent.prototype.resolveDataTypes = /**\n * @hidden\n * @protected\n * @param {?} rec\n * @return {?}\n */\n function (rec) {\n if (typeof rec === 'number') {\n return DataType.Number;\n }\n else if (typeof rec === 'boolean') {\n return DataType.Boolean;\n }\n else if (typeof rec === 'object' && rec instanceof Date) {\n return DataType.Date;\n }\n return DataType.String;\n };\n /**\n * @private\n * @return {?}\n */\n IgxGridBaseComponent.prototype.getScrollWidth = /**\n * @private\n * @return {?}\n */\n function () {\n /** @type {?} */\n var div = document.createElement('div');\n /** @type {?} */\n var style = div.style;\n style.width = '100px';\n style.height = '100px';\n style.position = 'absolute';\n style.top = '-10000px';\n style.top = '-10000px';\n style.overflow = 'scroll';\n document.body.appendChild(div);\n /** @type {?} */\n var scrollWidth = div.offsetWidth - div.clientWidth;\n document.body.removeChild(div);\n return scrollWidth;\n };\n /**\n * @hidden\n */\n /**\n * @hidden\n * @protected\n * @return {?}\n */\n IgxGridBaseComponent.prototype.autogenerateColumns = /**\n * @hidden\n * @protected\n * @return {?}\n */\n function () {\n var _this = this;\n /** @type {?} */\n var data = this.gridAPI.get_data();\n /** @type {?} */\n var factory = this.resolver.resolveComponentFactory(IgxColumnComponent);\n /** @type {?} */\n var fields = this.generateDataFields(data);\n /** @type {?} */\n var columns = [];\n fields.forEach(function (field) {\n /** @type {?} */\n var ref = factory.create(_this.viewRef.injector);\n ref.instance.field = field;\n ref.instance.dataType = _this.resolveDataTypes(data[0][field]);\n ref.changeDetectorRef.detectChanges();\n columns.push(ref.instance);\n });\n this.columnList.reset(columns);\n if (data && data.length > 0) {\n this.shouldGenerate = false;\n }\n };\n /**\n * @protected\n * @param {?} data\n * @return {?}\n */\n IgxGridBaseComponent.prototype.generateDataFields = /**\n * @protected\n * @param {?} data\n * @return {?}\n */\n function (data) {\n return Object.keys(data && data.length !== 0 ? data[0] : []);\n };\n /**\n * @hidden\n */\n /**\n * @hidden\n * @param {?} arr\n * @return {?}\n */\n IgxGridBaseComponent.prototype.onlyTopLevel = /**\n * @hidden\n * @param {?} arr\n * @return {?}\n */\n function (arr) {\n return arr.filter(function (c) { return c.level === 0; });\n };\n /**\n * @hidden\n */\n /**\n * @hidden\n * @protected\n * @param {?} collection\n * @param {?=} cb\n * @return {?}\n */\n IgxGridBaseComponent.prototype.initColumns = /**\n * @hidden\n * @protected\n * @param {?} collection\n * @param {?=} cb\n * @return {?}\n */\n function (collection, cb) {\n var _this = this;\n if (cb === void 0) { cb = null; }\n this._columnGroups = this.columnList.some(function (col) { return col.columnGroup; });\n if (this.hasColumnLayouts) {\n // Set overall row layout size\n this.columnList.forEach(function (col) {\n if (col.columnLayout) {\n /** @type {?} */\n var layoutSize = col.children ?\n col.children.reduce(function (acc, val) { return Math.max(val.rowStart + val.gridRowSpan - 1, acc); }, 1) :\n 1;\n _this._multiRowLayoutRowSize = Math.max(layoutSize, _this._multiRowLayoutRowSize);\n }\n });\n }\n if (this.hasColumnLayouts && this.hasColumnGroups) {\n // invalid configuration - multi-row and column groups\n // remove column groups\n /** @type {?} */\n var columnLayoutColumns = this.columnList.filter(function (col) { return col.columnLayout || col.columnLayoutChild; });\n this.columnList.reset(columnLayoutColumns);\n }\n this._maxLevelHeaderDepth = null;\n this._columns = this.columnList.toArray();\n collection.forEach(function (column) {\n column.defaultWidth = _this.columnWidthSetByUser ? _this._columnWidth : column.defaultWidth ? column.defaultWidth : '';\n if (cb) {\n cb(column);\n }\n });\n this.reinitPinStates();\n if (this.hasColumnLayouts) {\n collection.forEach(function (column) {\n column.populateVisibleIndexes();\n });\n }\n };\n /**\n * @hidden\n */\n /**\n * @hidden\n * @protected\n * @return {?}\n */\n IgxGridBaseComponent.prototype.reinitPinStates = /**\n * @hidden\n * @protected\n * @return {?}\n */\n function () {\n var _this = this;\n this._pinnedColumns = (this.hasColumnGroups) ? this.columnList.filter(function (c) { return c.pinned; }) :\n this.columnList.filter(function (c) { return c.pinned; }).sort(function (a, b) { return _this._pinnedColumns.indexOf(a) - _this._pinnedColumns.indexOf(b); });\n this._unpinnedColumns = this.columnList.filter(function (c) { return !c.pinned; });\n };\n /**\n * @hidden\n */\n /**\n * @hidden\n * @param {?} fieldName\n * @return {?}\n */\n IgxGridBaseComponent.prototype.isColumnGrouped = /**\n * @hidden\n * @param {?} fieldName\n * @return {?}\n */\n function (fieldName) {\n return false;\n };\n /**\n * @hidden\n */\n /**\n * @hidden\n * @param {?} event\n * @return {?}\n */\n IgxGridBaseComponent.prototype.onHeaderSelectorClick = /**\n * @hidden\n * @param {?} event\n * @return {?}\n */\n function (event) {\n if (!this.isMultiRowSelectionEnabled) {\n return;\n }\n this.selectionService.areAllRowSelected() ?\n this.selectionService.clearRowSelection(event) : this.selectionService.selectAllRows(event);\n };\n /**\n * @hidden\n * @internal\n */\n /**\n * @hidden\n * \\@internal\n * @param {?} rec\n * @return {?}\n */\n IgxGridBaseComponent.prototype.isGroupByRecord = /**\n * @hidden\n * \\@internal\n * @param {?} rec\n * @return {?}\n */\n function (rec) {\n return false;\n };\n Object.defineProperty(IgxGridBaseComponent.prototype, \"headSelectorBaseAriaLabel\", {\n /**\n * @hidden\n */\n get: /**\n * @hidden\n * @return {?}\n */\n function () {\n if (this._filteringExpressionsTree.filteringOperands.length > 0) {\n return this.selectionService.areAllRowSelected() ? 'Deselect all filtered' : 'Select all filtered';\n }\n return this.selectionService.areAllRowSelected() ? 'Deselect all' : 'Select all';\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxGridBaseComponent.prototype, \"totalRowsCountAfterFilter\", {\n /**\n * @hidden\n * @internal\n */\n get: /**\n * @hidden\n * \\@internal\n * @return {?}\n */\n function () {\n if (this.data) {\n return this.selectionService.allData.length;\n }\n return 0;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxGridBaseComponent.prototype, \"dataView\", {\n /**\n * Returns the currently transformed paged/filtered/sorted/grouped data, displayed in the grid.\n * ```typescript\n * const dataView = this.grid.dataView;\n * ```\n * @memberof IgxGridComponent\n */\n get: /**\n * Returns the currently transformed paged/filtered/sorted/grouped data, displayed in the grid.\n * ```typescript\n * const dataView = this.grid.dataView;\n * ```\n * \\@memberof IgxGridComponent\n * @return {?}\n */\n function () {\n return this.verticalScrollContainer.igxForOf;\n },\n enumerable: true,\n configurable: true\n });\n /**\n * Get current selection state.\n * Returns an array with selected rows' IDs (primaryKey or rowData)\n * ```typescript\n * const selectedRows = this.grid.selectedRows();\n * ```\n * @memberof IgxGridBaseComponent\n */\n /**\n * Get current selection state.\n * Returns an array with selected rows' IDs (primaryKey or rowData)\n * ```typescript\n * const selectedRows = this.grid.selectedRows();\n * ```\n * \\@memberof IgxGridBaseComponent\n * @return {?}\n */\n IgxGridBaseComponent.prototype.selectedRows = /**\n * Get current selection state.\n * Returns an array with selected rows' IDs (primaryKey or rowData)\n * ```typescript\n * const selectedRows = this.grid.selectedRows();\n * ```\n * \\@memberof IgxGridBaseComponent\n * @return {?}\n */\n function () {\n return this.selectionService.getSelectedRows();\n };\n /**\n * Select specified rows by ID.\n * ```typescript\n * this.grid.selectRows([1,2,5], true);\n * ```\n * @param rowIDs\n * @param clearCurrentSelection if true clears the current selection\n * @memberof IgxGridBaseComponent\n */\n /**\n * Select specified rows by ID.\n * ```typescript\n * this.grid.selectRows([1,2,5], true);\n * ```\n * \\@memberof IgxGridBaseComponent\n * @param {?} rowIDs\n * @param {?=} clearCurrentSelection if true clears the current selection\n * @return {?}\n */\n IgxGridBaseComponent.prototype.selectRows = /**\n * Select specified rows by ID.\n * ```typescript\n * this.grid.selectRows([1,2,5], true);\n * ```\n * \\@memberof IgxGridBaseComponent\n * @param {?} rowIDs\n * @param {?=} clearCurrentSelection if true clears the current selection\n * @return {?}\n */\n function (rowIDs, clearCurrentSelection) {\n this.selectionService.selectRowsWithNoEvent(rowIDs, clearCurrentSelection);\n this.notifyChanges();\n };\n /**\n * Deselect specified rows by ID.\n * ```typescript\n * this.grid.deselectRows([1,2,5]);\n * ```\n * @param rowIDs\n * @memberof IgxGridBaseComponent\n */\n /**\n * Deselect specified rows by ID.\n * ```typescript\n * this.grid.deselectRows([1,2,5]);\n * ```\n * \\@memberof IgxGridBaseComponent\n * @param {?} rowIDs\n * @return {?}\n */\n IgxGridBaseComponent.prototype.deselectRows = /**\n * Deselect specified rows by ID.\n * ```typescript\n * this.grid.deselectRows([1,2,5]);\n * ```\n * \\@memberof IgxGridBaseComponent\n * @param {?} rowIDs\n * @return {?}\n */\n function (rowIDs) {\n this.selectionService.deselectRowsWithNoEvent(rowIDs);\n this.notifyChanges();\n };\n /**\n * Selects all rows\n * Note: By default if filtering is in place, selectAllRows() and deselectAllRows() select/deselect all filtered rows.\n * If you set the parameter onlyFilterData to false that will select all rows in the grid exept deleted rows.\n * ```typescript\n * this.grid.selectAllRows();\n * this.grid.selectAllRows(false);\n * ```\n * @param onlyFilterData\n * @memberof IgxGridBaseComponent\n */\n /**\n * Selects all rows\n * Note: By default if filtering is in place, selectAllRows() and deselectAllRows() select/deselect all filtered rows.\n * If you set the parameter onlyFilterData to false that will select all rows in the grid exept deleted rows.\n * ```typescript\n * this.grid.selectAllRows();\n * this.grid.selectAllRows(false);\n * ```\n * \\@memberof IgxGridBaseComponent\n * @param {?=} onlyFilterData\n * @return {?}\n */\n IgxGridBaseComponent.prototype.selectAllRows = /**\n * Selects all rows\n * Note: By default if filtering is in place, selectAllRows() and deselectAllRows() select/deselect all filtered rows.\n * If you set the parameter onlyFilterData to false that will select all rows in the grid exept deleted rows.\n * ```typescript\n * this.grid.selectAllRows();\n * this.grid.selectAllRows(false);\n * ```\n * \\@memberof IgxGridBaseComponent\n * @param {?=} onlyFilterData\n * @return {?}\n */\n function (onlyFilterData) {\n var _this = this;\n if (onlyFilterData === void 0) { onlyFilterData = true; }\n /** @type {?} */\n var data = onlyFilterData && this.filteredData ? this.filteredData : this.gridAPI.get_all_data(true);\n /** @type {?} */\n var rowIDs = this.selectionService.getRowIDs(data).filter(function (rID) { return !_this.gridAPI.row_deleted_transaction(rID); });\n this.selectRows(rowIDs);\n };\n /**\n * Deselects all rows\n * Note: By default if filtering is in place, selectAllRows() and deselectAllRows() select/deselect all filtered rows.\n * If you set the parameter onlyFilterData to false that will select all rows in the grid exept deleted rows.\n * ```typescript\n * this.grid.deselectAllRows();\n * ```\n * @param onlyFilterData\n * @memberof IgxGridBaseComponent\n */\n /**\n * Deselects all rows\n * Note: By default if filtering is in place, selectAllRows() and deselectAllRows() select/deselect all filtered rows.\n * If you set the parameter onlyFilterData to false that will select all rows in the grid exept deleted rows.\n * ```typescript\n * this.grid.deselectAllRows();\n * ```\n * \\@memberof IgxGridBaseComponent\n * @param {?=} onlyFilterData\n * @return {?}\n */\n IgxGridBaseComponent.prototype.deselectAllRows = /**\n * Deselects all rows\n * Note: By default if filtering is in place, selectAllRows() and deselectAllRows() select/deselect all filtered rows.\n * If you set the parameter onlyFilterData to false that will select all rows in the grid exept deleted rows.\n * ```typescript\n * this.grid.deselectAllRows();\n * ```\n * \\@memberof IgxGridBaseComponent\n * @param {?=} onlyFilterData\n * @return {?}\n */\n function (onlyFilterData) {\n if (onlyFilterData === void 0) { onlyFilterData = true; }\n if (onlyFilterData && this.filteredData && this.filteredData.length > 0) {\n this.deselectRows(this.selectionService.getRowIDs(this.filteredData));\n }\n else {\n this.selectionService.clearAllSelectedRows();\n this.notifyChanges();\n }\n };\n /**\n * @return {?}\n */\n IgxGridBaseComponent.prototype.clearCellSelection = /**\n * @return {?}\n */\n function () {\n this.selectionService.clear(true);\n this.notifyChanges();\n };\n /**\n * @param {?} dir\n * @return {?}\n */\n IgxGridBaseComponent.prototype.dragScroll = /**\n * @param {?} dir\n * @return {?}\n */\n function (dir) {\n /** @type {?} */\n var scrollDelta = 48;\n /** @type {?} */\n var horizontal = this.headerContainer.getScroll();\n /** @type {?} */\n var vertical = this.verticalScrollContainer.getScroll();\n switch (dir) {\n case DragScrollDirection.LEFT:\n horizontal.scrollLeft -= scrollDelta;\n break;\n case DragScrollDirection.RIGHT:\n horizontal.scrollLeft += scrollDelta;\n break;\n case DragScrollDirection.TOP:\n vertical.scrollTop -= scrollDelta;\n break;\n case DragScrollDirection.BOTTOM:\n vertical.scrollTop += scrollDelta;\n break;\n case DragScrollDirection.BOTTOMLEFT:\n horizontal.scrollLeft -= scrollDelta;\n vertical.scrollTop += scrollDelta;\n break;\n case DragScrollDirection.BOTTOMRIGHT:\n horizontal.scrollLeft += scrollDelta;\n vertical.scrollTop += scrollDelta;\n break;\n case DragScrollDirection.TOPLEFT:\n horizontal.scrollLeft -= scrollDelta;\n vertical.scrollTop -= scrollDelta;\n break;\n case DragScrollDirection.TOPRIGHT:\n horizontal.scrollLeft += scrollDelta;\n vertical.scrollTop -= scrollDelta;\n break;\n default:\n return;\n }\n this.wheelHandler();\n };\n /**\n * @param {?} arg\n * @return {?}\n */\n IgxGridBaseComponent.prototype.isDefined = /**\n * @param {?} arg\n * @return {?}\n */\n function (arg) {\n return arg !== undefined && arg !== null;\n };\n /**\n * @param {?} arg\n * @return {?}\n */\n IgxGridBaseComponent.prototype.selectRange = /**\n * @param {?} arg\n * @return {?}\n */\n function (arg) {\n var _this = this;\n if (!this.isDefined(arg)) {\n this.clearCellSelection();\n return;\n }\n if (arg instanceof Array) {\n arg.forEach(function (range) { return _this.setSelection(range); });\n }\n else {\n this.setSelection(arg);\n }\n this.notifyChanges();\n };\n /**\n * @param {?} field\n * @return {?}\n */\n IgxGridBaseComponent.prototype.columnToVisibleIndex = /**\n * @param {?} field\n * @return {?}\n */\n function (field) {\n /** @type {?} */\n var visibleColumns = this.visibleColumns;\n if (typeof field === 'number') {\n return field;\n }\n return visibleColumns.find(function (column) { return column.field === field; }).visibleIndex;\n };\n /**\n * @param {?} range\n * @return {?}\n */\n IgxGridBaseComponent.prototype.setSelection = /**\n * @param {?} range\n * @return {?}\n */\n function (range) {\n /** @type {?} */\n var startNode = { row: range.rowStart, column: this.columnToVisibleIndex(range.columnStart) };\n /** @type {?} */\n var endNode = { row: range.rowEnd, column: this.columnToVisibleIndex(range.columnEnd) };\n this.selectionService.pointerState.node = startNode;\n this.selectionService.selectRange(endNode, this.selectionService.pointerState);\n this.selectionService.addRangeMeta(endNode, this.selectionService.pointerState);\n this.selectionService.initPointerState();\n };\n /**\n * @return {?}\n */\n IgxGridBaseComponent.prototype.getSelectedRanges = /**\n * @return {?}\n */\n function () {\n return this.selectionService.ranges;\n };\n /**\n * @protected\n * @param {?} source\n * @param {?=} formatters\n * @param {?=} headers\n * @return {?}\n */\n IgxGridBaseComponent.prototype.extractDataFromSelection = /**\n * @protected\n * @param {?} source\n * @param {?=} formatters\n * @param {?=} headers\n * @return {?}\n */\n function (source, formatters, headers) {\n var e_2, _a;\n if (formatters === void 0) { formatters = false; }\n if (headers === void 0) { headers = false; }\n /** @type {?} */\n var columnsArray;\n /** @type {?} */\n var record = {};\n /** @type {?} */\n var selectedData = [];\n /** @type {?} */\n var activeEl = this.selectionService.activeElement;\n /** @type {?} */\n var selectionMap = Array.from(this.selectionService.selection)\n .filter(function (tuple) { return tuple[0] < source.length; });\n if (this.cellSelection === GridSelectionMode.single && activeEl) {\n selectionMap.push([activeEl.row, new Set().add(activeEl.column)]);\n }\n var _loop_1 = function (row, set) {\n var e_3, _a;\n if (!source[row]) {\n return \"continue\";\n }\n /** @type {?} */\n var temp = Array.from(set);\n try {\n for (var temp_1 = __values(temp), temp_1_1 = temp_1.next(); !temp_1_1.done; temp_1_1 = temp_1.next()) {\n var each = temp_1_1.value;\n columnsArray = this_1.getSelectableColumnsAt(each);\n columnsArray.forEach(function (col) {\n if (col) {\n /** @type {?} */\n var key = headers ? col.header || col.field : col.field;\n record[key] = formatters && col.formatter ? col.formatter(source[row][col.field])\n : source[row][col.field];\n }\n });\n }\n }\n catch (e_3_1) { e_3 = { error: e_3_1 }; }\n finally {\n try {\n if (temp_1_1 && !temp_1_1.done && (_a = temp_1.return)) _a.call(temp_1);\n }\n finally { if (e_3) throw e_3.error; }\n }\n if (Object.keys(record).length) {\n selectedData.push(record);\n }\n record = {};\n };\n var this_1 = this;\n try {\n for (var selectionMap_1 = __values(selectionMap), selectionMap_1_1 = selectionMap_1.next(); !selectionMap_1_1.done; selectionMap_1_1 = selectionMap_1.next()) {\n var _b = __read(selectionMap_1_1.value, 2), row = _b[0], set = _b[1];\n _loop_1(row, set);\n }\n }\n catch (e_2_1) { e_2 = { error: e_2_1 }; }\n finally {\n try {\n if (selectionMap_1_1 && !selectionMap_1_1.done && (_a = selectionMap_1.return)) _a.call(selectionMap_1);\n }\n finally { if (e_2) throw e_2.error; }\n }\n return selectedData;\n };\n /**\n * @protected\n * @param {?} index\n * @return {?}\n */\n IgxGridBaseComponent.prototype.getSelectableColumnsAt = /**\n * @protected\n * @param {?} index\n * @return {?}\n */\n function (index) {\n if (this.hasColumnLayouts) {\n /** @type {?} */\n var visibleLayoutColumns = this.visibleColumns\n .filter(function (col) { return col.columnLayout; })\n .sort(function (a, b) { return a.visibleIndex - b.visibleIndex; });\n /** @type {?} */\n var colLayout = visibleLayoutColumns[index];\n return colLayout ? colLayout.children.toArray() : [];\n }\n else {\n /** @type {?} */\n var visibleColumns = this.visibleColumns\n .filter(function (col) { return !col.columnGroup; })\n .sort(function (a, b) { return a.visibleIndex - b.visibleIndex; });\n return [visibleColumns[index]];\n }\n };\n /**\n *\n * Returns an array of the current cell selection in the form of `[{ column.field: cell.value }, ...]`.\n * If `formatters` is enabled, the cell value will be formatted by its respective column formatter (if any).\n * If `headers` is enabled, it will use the column header (if any) instead of the column field.\n */\n /**\n *\n * Returns an array of the current cell selection in the form of `[{ column.field: cell.value }, ...]`.\n * If `formatters` is enabled, the cell value will be formatted by its respective column formatter (if any).\n * If `headers` is enabled, it will use the column header (if any) instead of the column field.\n * @param {?=} formatters\n * @param {?=} headers\n * @return {?}\n */\n IgxGridBaseComponent.prototype.getSelectedData = /**\n *\n * Returns an array of the current cell selection in the form of `[{ column.field: cell.value }, ...]`.\n * If `formatters` is enabled, the cell value will be formatted by its respective column formatter (if any).\n * If `headers` is enabled, it will use the column header (if any) instead of the column field.\n * @param {?=} formatters\n * @param {?=} headers\n * @return {?}\n */\n function (formatters, headers) {\n if (formatters === void 0) { formatters = false; }\n if (headers === void 0) { headers = false; }\n /** @type {?} */\n var source = this.dataView;\n return this.extractDataFromSelection(source, formatters, headers);\n };\n /**\n * @return {?}\n */\n IgxGridBaseComponent.prototype.copyHandlerIE = /**\n * @return {?}\n */\n function () {\n if (isIE()) {\n this.copyHandler(null, true);\n }\n };\n /**\n * @hidden\n * @internal\n */\n /**\n * @hidden\n * \\@internal\n * @param {?} event\n * @param {?=} ie11\n * @return {?}\n */\n IgxGridBaseComponent.prototype.copyHandler = /**\n * @hidden\n * \\@internal\n * @param {?} event\n * @param {?=} ie11\n * @return {?}\n */\n function (event, ie11) {\n if (ie11 === void 0) { ie11 = false; }\n if (!this.clipboardOptions.enabled || this.crudService.inEditMode) {\n return;\n }\n /** @type {?} */\n var data = this.getSelectedData(this.clipboardOptions.copyFormatters, this.clipboardOptions.copyHeaders);\n /** @type {?} */\n var ev = (/** @type {?} */ ({ data: data, cancel: false }));\n this.onGridCopy.emit(ev);\n if (ev.cancel) {\n return;\n }\n /** @type {?} */\n var transformer = new CharSeparatedValueData(ev.data, this.clipboardOptions.separator);\n /** @type {?} */\n var result = transformer.prepareData();\n if (!this.clipboardOptions.copyHeaders) {\n result = result.substring(result.indexOf('\\n') + 1);\n }\n if (ie11) {\n ((/** @type {?} */ (window))).clipboardData.setData('Text', result);\n return;\n }\n event.preventDefault();\n /* Necessary for the hiearachical case but will probably have to\n change how getSelectedData is propagated in the hiearachical grid\n */\n event.stopPropagation();\n event.clipboardData.setData('text/plain', result);\n };\n /**\n * This method allows you to navigate to a position\n * in the grid based on provided `rowindex` and `visibleColumnIndex`,\n * also to execute a custom logic over the target element,\n * through a callback function that accepts { targetType: GridKeydownTargetType, target: Object }\n * ```typescript\n * this.grid.navigateTo(10, 3, (args) => { args.target.nativeElement.focus(); });\n * ```\n * @memberof IgxGridBaseComponent\n */\n /**\n * This method allows you to navigate to a position\n * in the grid based on provided `rowindex` and `visibleColumnIndex`,\n * also to execute a custom logic over the target element,\n * through a callback function that accepts { targetType: GridKeydownTargetType, target: Object }\n * ```typescript\n * this.grid.navigateTo(10, 3, (args) => { args.target.nativeElement.focus(); });\n * ```\n * \\@memberof IgxGridBaseComponent\n * @param {?} rowIndex\n * @param {?=} visibleColIndex\n * @param {?=} cb\n * @return {?}\n */\n IgxGridBaseComponent.prototype.navigateTo = /**\n * This method allows you to navigate to a position\n * in the grid based on provided `rowindex` and `visibleColumnIndex`,\n * also to execute a custom logic over the target element,\n * through a callback function that accepts { targetType: GridKeydownTargetType, target: Object }\n * ```typescript\n * this.grid.navigateTo(10, 3, (args) => { args.target.nativeElement.focus(); });\n * ```\n * \\@memberof IgxGridBaseComponent\n * @param {?} rowIndex\n * @param {?=} visibleColIndex\n * @param {?=} cb\n * @return {?}\n */\n function (rowIndex, visibleColIndex, cb) {\n var _this = this;\n if (visibleColIndex === void 0) { visibleColIndex = -1; }\n if (cb === void 0) { cb = null; }\n if (rowIndex < 0 || rowIndex > this.dataView.length - 1\n || (visibleColIndex !== -1 && this.columnList.map(function (col) { return col.visibleIndex; }).indexOf(visibleColIndex) === -1)) {\n return;\n }\n this.wheelHandler();\n if (this.dataView.slice(rowIndex, rowIndex + 1).find(function (rec) { return rec.expression || rec.childGridsData; })) {\n visibleColIndex = -1;\n }\n /** @type {?} */\n var shouldScrollVertically = this.navigation.shouldPerformVerticalScroll(rowIndex, visibleColIndex);\n /** @type {?} */\n var shouldScrollHorizontally = visibleColIndex !== -1 && !this.navigation.isColumnFullyVisible(visibleColIndex);\n if (shouldScrollVertically) {\n this.navigation.performVerticalScrollToCell(rowIndex, visibleColIndex, function () { _this.navigateTo(rowIndex, visibleColIndex, cb); });\n }\n else if (shouldScrollHorizontally) {\n this.navigation.performHorizontalScrollToCell(rowIndex, visibleColIndex, false, function () { _this.navigateTo(rowIndex, visibleColIndex, cb); });\n }\n else {\n this.executeCallback(rowIndex, visibleColIndex, cb);\n }\n };\n /**\n * Returns `ICellPosition` which defines the next cell,\n * according to the current position, that match specific criteria.\n * You can pass callback function as a third parameter of `getPreviousCell` method.\n * The callback function accepts IgxColumnComponent as a param\n * ```typescript\n * const nextEditableCellPosition = this.grid.getNextCell(0, 3, (column) => column.editable);\n * ```\n * @memberof IgxGridBaseComponent\n */\n /**\n * Returns `ICellPosition` which defines the next cell,\n * according to the current position, that match specific criteria.\n * You can pass callback function as a third parameter of `getPreviousCell` method.\n * The callback function accepts IgxColumnComponent as a param\n * ```typescript\n * const nextEditableCellPosition = this.grid.getNextCell(0, 3, (column) => column.editable);\n * ```\n * \\@memberof IgxGridBaseComponent\n * @param {?} currRowIndex\n * @param {?} curVisibleColIndex\n * @param {?=} callback\n * @return {?}\n */\n IgxGridBaseComponent.prototype.getNextCell = /**\n * Returns `ICellPosition` which defines the next cell,\n * according to the current position, that match specific criteria.\n * You can pass callback function as a third parameter of `getPreviousCell` method.\n * The callback function accepts IgxColumnComponent as a param\n * ```typescript\n * const nextEditableCellPosition = this.grid.getNextCell(0, 3, (column) => column.editable);\n * ```\n * \\@memberof IgxGridBaseComponent\n * @param {?} currRowIndex\n * @param {?} curVisibleColIndex\n * @param {?=} callback\n * @return {?}\n */\n function (currRowIndex, curVisibleColIndex, callback) {\n if (callback === void 0) { callback = null; }\n /** @type {?} */\n var columns = this.columnList.filter(function (col) { return !col.columnGroup && col.visibleIndex >= 0; });\n if (!this.isValidPosition(currRowIndex, curVisibleColIndex)) {\n return { rowIndex: currRowIndex, visibleColumnIndex: curVisibleColIndex };\n }\n /** @type {?} */\n var colIndexes = callback ? columns.filter(function (col) { return callback(col); }).map(function (editCol) { return editCol.visibleIndex; }).sort(function (a, b) { return a - b; }) :\n columns.map(function (editCol) { return editCol.visibleIndex; }).sort(function (a, b) { return a - b; });\n /** @type {?} */\n var nextCellIndex = colIndexes.find(function (index) { return index > curVisibleColIndex; });\n if (this.dataView.slice(currRowIndex, currRowIndex + 1)\n .find(function (rec) { return !rec.expression && !rec.summaries && !rec.childGridsData; }) && nextCellIndex !== undefined) {\n return { rowIndex: currRowIndex, visibleColumnIndex: nextCellIndex };\n }\n else {\n if (colIndexes.length === 0 || this.getNextDataRowIndex(currRowIndex) === currRowIndex) {\n return { rowIndex: currRowIndex, visibleColumnIndex: curVisibleColIndex };\n }\n else {\n return { rowIndex: this.getNextDataRowIndex(currRowIndex), visibleColumnIndex: colIndexes[0] };\n }\n }\n };\n /**\n * Returns `ICellPosition` which defines the previous cell,\n * according to the current position, that match specific criteria.\n * You can pass callback function as a third parameter of `getPreviousCell` method.\n * The callback function accepts IgxColumnComponent as a param\n * ```typescript\n * const previousEditableCellPosition = this.grid.getPreviousCell(0, 3, (column) => column.editable);\n * ```\n * @memberof IgxGridBaseComponent\n */\n /**\n * Returns `ICellPosition` which defines the previous cell,\n * according to the current position, that match specific criteria.\n * You can pass callback function as a third parameter of `getPreviousCell` method.\n * The callback function accepts IgxColumnComponent as a param\n * ```typescript\n * const previousEditableCellPosition = this.grid.getPreviousCell(0, 3, (column) => column.editable);\n * ```\n * \\@memberof IgxGridBaseComponent\n * @param {?} currRowIndex\n * @param {?} curVisibleColIndex\n * @param {?=} callback\n * @return {?}\n */\n IgxGridBaseComponent.prototype.getPreviousCell = /**\n * Returns `ICellPosition` which defines the previous cell,\n * according to the current position, that match specific criteria.\n * You can pass callback function as a third parameter of `getPreviousCell` method.\n * The callback function accepts IgxColumnComponent as a param\n * ```typescript\n * const previousEditableCellPosition = this.grid.getPreviousCell(0, 3, (column) => column.editable);\n * ```\n * \\@memberof IgxGridBaseComponent\n * @param {?} currRowIndex\n * @param {?} curVisibleColIndex\n * @param {?=} callback\n * @return {?}\n */\n function (currRowIndex, curVisibleColIndex, callback) {\n if (callback === void 0) { callback = null; }\n /** @type {?} */\n var columns = this.columnList.filter(function (col) { return !col.columnGroup && col.visibleIndex >= 0; });\n if (!this.isValidPosition(currRowIndex, curVisibleColIndex)) {\n return { rowIndex: currRowIndex, visibleColumnIndex: curVisibleColIndex };\n }\n /** @type {?} */\n var colIndexes = callback ? columns.filter(function (col) { return callback(col); }).map(function (editCol) { return editCol.visibleIndex; }).sort(function (a, b) { return b - a; }) :\n columns.map(function (editCol) { return editCol.visibleIndex; }).sort(function (a, b) { return b - a; });\n /** @type {?} */\n var prevCellIndex = colIndexes.find(function (index) { return index < curVisibleColIndex; });\n if (this.dataView.slice(currRowIndex, currRowIndex + 1)\n .find(function (rec) { return !rec.expression && !rec.summaries && !rec.childGridsData; }) && prevCellIndex !== undefined) {\n return { rowIndex: currRowIndex, visibleColumnIndex: prevCellIndex };\n }\n else {\n if (colIndexes.length === 0 || this.getPrevDataRowIndex(currRowIndex) === currRowIndex) {\n return { rowIndex: currRowIndex, visibleColumnIndex: curVisibleColIndex };\n }\n else {\n return { rowIndex: this.getPrevDataRowIndex(currRowIndex), visibleColumnIndex: colIndexes[0] };\n }\n }\n };\n /**\n * @private\n * @param {?} rowIndex\n * @param {?=} visibleColIndex\n * @param {?=} cb\n * @return {?}\n */\n IgxGridBaseComponent.prototype.executeCallback = /**\n * @private\n * @param {?} rowIndex\n * @param {?=} visibleColIndex\n * @param {?=} cb\n * @return {?}\n */\n function (rowIndex, visibleColIndex, cb) {\n if (visibleColIndex === void 0) { visibleColIndex = -1; }\n if (cb === void 0) { cb = null; }\n if (!cb) {\n return;\n }\n /** @type {?} */\n var targetType;\n /** @type {?} */\n var target;\n /** @type {?} */\n var row = this.summariesRowList.filter(function (s) { return s.index !== 0; }).concat(this.rowList.toArray()).find(function (r) { return r.index === rowIndex; });\n if (!row) {\n return;\n }\n switch (row.nativeElement.tagName.toLowerCase()) {\n case 'igx-grid-groupby-row':\n targetType = GridKeydownTargetType.groupRow;\n target = row;\n break;\n case 'igx-grid-summary-row':\n targetType = GridKeydownTargetType.summaryCell;\n target = visibleColIndex !== -1 ?\n row.summaryCells.find(function (c) { return c.visibleColumnIndex === visibleColIndex; }) : row.summaryCells.first;\n break;\n case 'igx-child-grid-row':\n targetType = GridKeydownTargetType.hierarchicalRow;\n target = row;\n break;\n default:\n targetType = GridKeydownTargetType.dataCell;\n target = visibleColIndex !== -1 ? row.cells.find(function (c) { return c.visibleColumnIndex === visibleColIndex; }) : row.cells.first;\n break;\n }\n /** @type {?} */\n var args = { targetType: targetType, target: target };\n cb(args);\n };\n /**\n * @private\n * @param {?} currentRowIndex\n * @return {?}\n */\n IgxGridBaseComponent.prototype.getPrevDataRowIndex = /**\n * @private\n * @param {?} currentRowIndex\n * @return {?}\n */\n function (currentRowIndex) {\n if (currentRowIndex <= 0) {\n return currentRowIndex;\n }\n /** @type {?} */\n var prevRow = this.dataView.slice(0, currentRowIndex).reverse()\n .find(function (rec) { return !rec.expression && !rec.summaries && !rec.childGridsData; });\n return prevRow ? this.dataView.indexOf(prevRow) : currentRowIndex;\n };\n /**\n * @private\n * @param {?} currentRowIndex\n * @return {?}\n */\n IgxGridBaseComponent.prototype.getNextDataRowIndex = /**\n * @private\n * @param {?} currentRowIndex\n * @return {?}\n */\n function (currentRowIndex) {\n if (currentRowIndex === this.dataView.length) {\n return currentRowIndex;\n }\n /** @type {?} */\n var nextRow = this.dataView.slice(currentRowIndex + 1, this.dataView.length)\n .find(function (rec) { return !rec.expression && !rec.summaries && !rec.childGridsData; });\n return nextRow ? this.dataView.indexOf(nextRow) : currentRowIndex;\n };\n /**\n * @private\n * @param {?} rowIndex\n * @param {?} colIndex\n * @return {?}\n */\n IgxGridBaseComponent.prototype.isValidPosition = /**\n * @private\n * @param {?} rowIndex\n * @param {?} colIndex\n * @return {?}\n */\n function (rowIndex, colIndex) {\n /** @type {?} */\n var rows = this.summariesRowList.filter(function (s) { return s.index !== 0; }).concat(this.rowList.toArray()).length;\n /** @type {?} */\n var cols = this.columnList.filter(function (col) { return !col.columnGroup && col.visibleIndex >= 0 && !col.hidden; }).length;\n if (rows < 1 || cols < 1) {\n return false;\n }\n if (rowIndex > -1 && rowIndex < this.dataView.length &&\n colIndex > -1 && colIndex < cols) {\n return true;\n }\n return false;\n };\n /**\n * @hidden\n */\n /**\n * @hidden\n * @param {?} index\n * @param {?} col\n * @return {?}\n */\n IgxGridBaseComponent.prototype.trackColumnChanges = /**\n * @hidden\n * @param {?} index\n * @param {?} col\n * @return {?}\n */\n function (index, col) {\n return col.field + col._calcWidth;\n };\n /**\n * @private\n * @param {?} text\n * @param {?} increment\n * @param {?=} caseSensitive\n * @param {?=} exactMatch\n * @param {?=} scroll\n * @return {?}\n */\n IgxGridBaseComponent.prototype.find = /**\n * @private\n * @param {?} text\n * @param {?} increment\n * @param {?=} caseSensitive\n * @param {?=} exactMatch\n * @param {?=} scroll\n * @return {?}\n */\n function (text, increment, caseSensitive, exactMatch, scroll) {\n if (!this.rowList) {\n return 0;\n }\n this.endEdit(false);\n if (!text) {\n this.clearSearch();\n return 0;\n }\n /** @type {?} */\n var caseSensitiveResolved = caseSensitive ? true : false;\n /** @type {?} */\n var exactMatchResolved = exactMatch ? true : false;\n /** @type {?} */\n var rebuildCache = false;\n if (this.lastSearchInfo.searchText !== text ||\n this.lastSearchInfo.caseSensitive !== caseSensitiveResolved ||\n this.lastSearchInfo.exactMatch !== exactMatchResolved) {\n this.lastSearchInfo = {\n searchText: text,\n activeMatchIndex: 0,\n caseSensitive: caseSensitiveResolved,\n exactMatch: exactMatchResolved,\n matchInfoCache: []\n };\n rebuildCache = true;\n }\n else {\n this.lastSearchInfo.activeMatchIndex += increment;\n }\n if (rebuildCache) {\n this.rowList.forEach(function (row) {\n if (row.cells) {\n row.cells.forEach(function (c) {\n c.highlightText(text, caseSensitiveResolved, exactMatchResolved);\n });\n }\n });\n this.rebuildMatchCache();\n }\n if (this.lastSearchInfo.activeMatchIndex >= this.lastSearchInfo.matchInfoCache.length) {\n this.lastSearchInfo.activeMatchIndex = 0;\n }\n else if (this.lastSearchInfo.activeMatchIndex < 0) {\n this.lastSearchInfo.activeMatchIndex = this.lastSearchInfo.matchInfoCache.length - 1;\n }\n if (this.lastSearchInfo.matchInfoCache.length) {\n /** @type {?} */\n var matchInfo = this.lastSearchInfo.matchInfoCache[this.lastSearchInfo.activeMatchIndex];\n this.lastSearchInfo = __assign({}, this.lastSearchInfo);\n if (scroll !== false) {\n this.scrollTo(matchInfo.row, matchInfo.column);\n }\n IgxTextHighlightDirective.setActiveHighlight(this.id, {\n column: matchInfo.column,\n row: matchInfo.row,\n index: matchInfo.index,\n });\n }\n else {\n IgxTextHighlightDirective.clearActiveHighlight(this.id);\n }\n return this.lastSearchInfo.matchInfoCache.length;\n };\n Object.defineProperty(IgxGridBaseComponent.prototype, \"filteredSortedData\", {\n /**\n * Returns an array containing the filtered sorted data.\n * ```typescript\n * const filteredSortedData = this.grid1.filteredSortedData;\n * ```\n * @memberof IgxGridBaseComponent\n */\n get: /**\n * Returns an array containing the filtered sorted data.\n * ```typescript\n * const filteredSortedData = this.grid1.filteredSortedData;\n * ```\n * \\@memberof IgxGridBaseComponent\n * @return {?}\n */\n function () {\n return this._filteredSortedData;\n },\n set: /**\n * @param {?} value\n * @return {?}\n */\n function (value) {\n this._filteredSortedData = value;\n this.refreshSearch(true);\n },\n enumerable: true,\n configurable: true\n });\n /**\n * @hidden\n */\n /**\n * @hidden\n * @protected\n * @return {?}\n */\n IgxGridBaseComponent.prototype.initPinning = /**\n * @hidden\n * @protected\n * @return {?}\n */\n function () {\n /** @type {?} */\n var currentPinnedWidth = 0;\n /** @type {?} */\n var pinnedColumns = [];\n /** @type {?} */\n var unpinnedColumns = [];\n /** @type {?} */\n var newUnpinnedCols = [];\n this.calculateGridWidth();\n this.resetCaches();\n // When a column is a group or is inside a group, pin all related.\n this._pinnedColumns.forEach(function (col) {\n if (col.parent) {\n col.parent.pinned = true;\n }\n if (col.columnGroup) {\n col.children.forEach(function (child) { return child.pinned = true; });\n }\n });\n // Make sure we don't exceed unpinned area min width and get pinned and unpinned col collections.\n // We take into account top level columns (top level groups and non groups).\n // If top level is unpinned the pinning handles all children to be unpinned as well.\n for (var i = 0; i < this._columns.length; i++) {\n if (this._columns[i].pinned && !this._columns[i].parent) {\n // Pinned column. Check if with it the unpinned min width is exceeded.\n /** @type {?} */\n var colWidth = parseInt(this._columns[i].width, 10);\n if (currentPinnedWidth + colWidth > this.calcWidth - this.unpinnedAreaMinWidth) {\n // unpinned min width is exceeded. Unpin the columns and add it to the unpinned collection.\n this._columns[i].pinned = false;\n unpinnedColumns.push(this._columns[i]);\n newUnpinnedCols.push(this._columns[i]);\n }\n else {\n // unpinned min width is not exceeded. Keep it pinned and add it to the pinned collection.\n currentPinnedWidth += colWidth;\n pinnedColumns.push(this._columns[i]);\n }\n }\n else if (this._columns[i].pinned && this._columns[i].parent) {\n if (this._columns[i].topLevelParent.pinned) {\n pinnedColumns.push(this._columns[i]);\n }\n else {\n this._columns[i].pinned = false;\n unpinnedColumns.push(this._columns[i]);\n }\n }\n else {\n unpinnedColumns.push(this._columns[i]);\n }\n }\n if (newUnpinnedCols.length) {\n console.warn('igxGrid - The pinned area exceeds maximum pinned width. ' +\n 'The following columns were unpinned to prevent further issues:' +\n newUnpinnedCols.map(function (col) { return '\"' + col.header + '\"'; }).toString() + '. For more info see our documentation.');\n }\n // Assign the applicaple collections.\n this._pinnedColumns = pinnedColumns;\n this._unpinnedColumns = unpinnedColumns;\n this.notifyChanges();\n };\n /**\n * @hidden\n */\n /**\n * @hidden\n * @protected\n * @param {?} row\n * @param {?} column\n * @param {?=} inCollection\n * @return {?}\n */\n IgxGridBaseComponent.prototype.scrollTo = /**\n * @hidden\n * @protected\n * @param {?} row\n * @param {?} column\n * @param {?=} inCollection\n * @return {?}\n */\n function (row, column, inCollection) {\n var _this = this;\n if (inCollection === void 0) { inCollection = this.filteredSortedData; }\n /** @type {?} */\n var delayScrolling = false;\n if (this.paging && typeof (row) !== 'number') {\n /** @type {?} */\n var rowIndex = inCollection.indexOf(row);\n /** @type {?} */\n var page = Math.floor(rowIndex / this.perPage);\n if (this.page !== page) {\n delayScrolling = true;\n this.page = page;\n }\n }\n if (delayScrolling) {\n this.verticalScrollContainer.onDataChanged.pipe(first$1()).subscribe(function () {\n _this.scrollDirective(_this.verticalScrollContainer, typeof (row) === 'number' ? row : _this.dataView.indexOf(row));\n });\n }\n else {\n this.scrollDirective(this.verticalScrollContainer, typeof (row) === 'number' ? row : this.dataView.indexOf(row));\n }\n this.scrollToHorizontally(column);\n };\n /**\n * @hidden\n */\n /**\n * @hidden\n * @protected\n * @param {?} column\n * @return {?}\n */\n IgxGridBaseComponent.prototype.scrollToHorizontally = /**\n * @hidden\n * @protected\n * @param {?} column\n * @return {?}\n */\n function (column) {\n /** @type {?} */\n var columnIndex = typeof column === 'number' ? column : this.getColumnByName(column).visibleIndex;\n /** @type {?} */\n var scrollRow = this.rowList.find(function (r) { return r.virtDirRow; });\n /** @type {?} */\n var virtDir = scrollRow ? scrollRow.virtDirRow : null;\n if (this.pinnedColumns.length) {\n if (columnIndex >= this.pinnedColumns.length) {\n columnIndex -= this.pinnedColumns.length;\n this.scrollDirective(virtDir, columnIndex);\n }\n }\n else {\n this.scrollDirective(virtDir, columnIndex);\n }\n };\n /**\n * @hidden\n */\n /**\n * @hidden\n * @protected\n * @param {?} directive\n * @param {?} goal\n * @return {?}\n */\n IgxGridBaseComponent.prototype.scrollDirective = /**\n * @hidden\n * @protected\n * @param {?} directive\n * @param {?} goal\n * @return {?}\n */\n function (directive, goal) {\n if (!directive) {\n return;\n }\n directive.scrollTo(goal);\n };\n /**\n * @private\n * @return {?}\n */\n IgxGridBaseComponent.prototype.rebuildMatchCache = /**\n * @private\n * @return {?}\n */\n function () {\n var _this = this;\n this.lastSearchInfo.matchInfoCache = [];\n /** @type {?} */\n var caseSensitive = this.lastSearchInfo.caseSensitive;\n /** @type {?} */\n var exactMatch = this.lastSearchInfo.exactMatch;\n /** @type {?} */\n var searchText = caseSensitive ? this.lastSearchInfo.searchText : this.lastSearchInfo.searchText.toLowerCase();\n /** @type {?} */\n var data = this.filteredSortedData;\n /** @type {?} */\n var columnItems = this.visibleColumns.filter(function (c) { return !c.columnGroup; }).sort(function (c1, c2) { return c1.visibleIndex - c2.visibleIndex; });\n /** @type {?} */\n var numberPipe = new IgxDecimalPipeComponent(this.locale);\n /** @type {?} */\n var datePipe = new IgxDatePipeComponent(this.locale);\n data.forEach(function (dataRow) {\n columnItems.forEach(function (c) {\n /** @type {?} */\n var value = c.formatter ? c.formatter(dataRow[c.field]) :\n c.dataType === 'number' ? numberPipe.transform(dataRow[c.field], _this.locale) :\n c.dataType === 'date' ? datePipe.transform(dataRow[c.field], _this.locale)\n : dataRow[c.field];\n if (value !== undefined && value !== null && c.searchable) {\n /** @type {?} */\n var searchValue = caseSensitive ? String(value) : String(value).toLowerCase();\n if (exactMatch) {\n if (searchValue === searchText) {\n _this.lastSearchInfo.matchInfoCache.push({\n row: dataRow,\n column: c.field,\n index: 0,\n });\n }\n }\n else {\n /** @type {?} */\n var occurenceIndex = 0;\n /** @type {?} */\n var searchIndex = searchValue.indexOf(searchText);\n while (searchIndex !== -1) {\n _this.lastSearchInfo.matchInfoCache.push({\n row: dataRow,\n column: c.field,\n index: occurenceIndex++,\n });\n searchValue = searchValue.substring(searchIndex + searchText.length);\n searchIndex = searchValue.indexOf(searchText);\n }\n }\n }\n });\n });\n };\n /**\n * @hidden\n */\n /**\n * @hidden\n * @param {?} _group\n * @return {?}\n */\n IgxGridBaseComponent.prototype.isExpandedGroup = /**\n * @hidden\n * @param {?} _group\n * @return {?}\n */\n function (_group) {\n return undefined;\n };\n /**\n * @protected\n * @param {?} row\n * @return {?}\n */\n IgxGridBaseComponent.prototype.changeRowEditingOverlayStateOnScroll = /**\n * @protected\n * @param {?} row\n * @return {?}\n */\n function (row) {\n if (!this.rowEditable || !this.rowEditingOverlay || this.rowEditingOverlay.collapsed) {\n return;\n }\n if (!row) {\n this.toggleRowEditingOverlay(false);\n }\n else {\n this.repositionRowEditingOverlay(row);\n }\n };\n /**\n * Should be called when data and/or isLoading input changes so that the overlay can be\n * hidden/shown based on the current value of shouldOverlayLoading\n */\n /**\n * Should be called when data and/or isLoading input changes so that the overlay can be\n * hidden/shown based on the current value of shouldOverlayLoading\n * @protected\n * @return {?}\n */\n IgxGridBaseComponent.prototype.evaluateLoadingState = /**\n * Should be called when data and/or isLoading input changes so that the overlay can be\n * hidden/shown based on the current value of shouldOverlayLoading\n * @protected\n * @return {?}\n */\n function () {\n if (this.shouldOverlayLoading) {\n // a new overlay should be shown\n /** @type {?} */\n var overlaySettings = {\n outlet: this.loadingOutlet,\n closeOnOutsideClick: false,\n positionStrategy: new ContainerPositionStrategy()\n };\n if (!this._loadingId) {\n this._loadingId = this.overlayService.attach(this.loadingOverlay, overlaySettings);\n this.overlayService.show(this._loadingId, overlaySettings);\n }\n }\n else {\n if (this._loadingId) {\n this.overlayService.hide(this._loadingId);\n this._loadingId = null;\n }\n }\n };\n /**\n * @param {?} id\n * @return {?}\n */\n IgxGridBaseComponent.prototype.openRowOverlay = /**\n * @param {?} id\n * @return {?}\n */\n function (id) {\n this.configureRowEditingOverlay(id, this.rowList.length <= MIN_ROW_EDITING_COUNT_THRESHOLD);\n this.rowEditingOverlay.open(this.rowEditSettings);\n this.rowEditPositioningStrategy.isTopInitialPosition = this.rowEditPositioningStrategy.isTop;\n this.rowEditingOverlay.element.addEventListener('wheel', this.rowEditingWheelHandler);\n };\n /**\n * @hidden\n */\n /**\n * @hidden\n * @return {?}\n */\n IgxGridBaseComponent.prototype.closeRowEditingOverlay = /**\n * @hidden\n * @return {?}\n */\n function () {\n this.rowEditingOverlay.element.removeEventListener('wheel', this.rowEditingWheelHandler);\n this.rowEditPositioningStrategy.isTopInitialPosition = null;\n this.rowEditingOverlay.close();\n this.rowEditingOverlay.element.parentElement.style.display = '';\n };\n /**\n * @hidden\n */\n /**\n * @hidden\n * @param {?} show\n * @return {?}\n */\n IgxGridBaseComponent.prototype.toggleRowEditingOverlay = /**\n * @hidden\n * @param {?} show\n * @return {?}\n */\n function (show) {\n /** @type {?} */\n var rowStyle = this.rowEditingOverlay.element.style;\n if (show) {\n rowStyle.display = 'block';\n }\n else {\n rowStyle.display = 'none';\n }\n };\n /**\n * @hidden\n */\n /**\n * @hidden\n * @param {?} row\n * @return {?}\n */\n IgxGridBaseComponent.prototype.repositionRowEditingOverlay = /**\n * @hidden\n * @param {?} row\n * @return {?}\n */\n function (row) {\n if (row && !this.rowEditingOverlay.collapsed) {\n /** @type {?} */\n var rowStyle = this.rowEditingOverlay.element.parentElement.style;\n if (row) {\n rowStyle.display = '';\n this.configureRowEditingOverlay(row.rowID);\n this.rowEditingOverlay.reposition();\n }\n else {\n rowStyle.display = 'none';\n }\n }\n };\n /**\n * @private\n * @param {?} rowID\n * @param {?=} useOuter\n * @return {?}\n */\n IgxGridBaseComponent.prototype.configureRowEditingOverlay = /**\n * @private\n * @param {?} rowID\n * @param {?=} useOuter\n * @return {?}\n */\n function (rowID, useOuter) {\n if (useOuter === void 0) { useOuter = false; }\n this.rowEditSettings.outlet = useOuter ? this.parentRowOutletDirective : this.rowOutletDirective;\n this.rowEditPositioningStrategy.settings.container = this.tbody.nativeElement;\n /** @type {?} */\n var targetRow = this.gridAPI.get_row_by_key(rowID);\n if (!targetRow) {\n return;\n }\n this.rowEditPositioningStrategy.settings.target = targetRow.element.nativeElement;\n this.toggleRowEditingOverlay(true);\n };\n Object.defineProperty(IgxGridBaseComponent.prototype, \"rowChangesCount\", {\n /**\n * @hidden\n */\n get: /**\n * @hidden\n * @return {?}\n */\n function () {\n if (!this.crudService.row) {\n return 0;\n }\n /** @type {?} */\n var rowChanges = this.transactions.getAggregatedValue(this.crudService.row.id, false);\n return rowChanges ? Object.keys(rowChanges).length : 0;\n },\n enumerable: true,\n configurable: true\n });\n /**\n * @protected\n * @param {?} rowIndex\n * @param {?} value\n * @return {?}\n */\n IgxGridBaseComponent.prototype.writeToData = /**\n * @protected\n * @param {?} rowIndex\n * @param {?} value\n * @return {?}\n */\n function (rowIndex, value) {\n mergeObjects(this.gridAPI.get_all_data()[rowIndex], value);\n };\n /**\n * @param {?} commit\n * @param {?} row\n * @return {?}\n */\n IgxGridBaseComponent.prototype.endRowTransaction = /**\n * @param {?} commit\n * @param {?} row\n * @return {?}\n */\n function (commit, row) {\n row.newData = this.transactions.getAggregatedValue(row.id, true);\n /** @type {?} */\n var args = row.createEditEventArgs();\n if (!commit) {\n this.onRowEditCancel.emit(args);\n this.transactions.endPending(false);\n }\n else {\n args = this.gridAPI.update_row(row, row.newData);\n }\n if (args.cancel) {\n this.transactions.startPending();\n return;\n }\n this.crudService.endRowEdit();\n this.closeRowEditingOverlay();\n };\n /**\n * @hidden\n */\n /**\n * @hidden\n * @param {?} event\n * @return {?}\n */\n IgxGridBaseComponent.prototype.gridOutletKeyboardHandler = /**\n * @hidden\n * @param {?} event\n * @return {?}\n */\n function (event) {\n // TODO: This should be removed after grid keyboard refactoring\n // call stopPropagation for keydown event for the outlet not to propagate event to the grid\n event.stopPropagation();\n };\n // TODO: Refactor\n /**\n * Finishes the row transactions on the current row.\n * If `commit === true`, passes them from the pending state to the data (or transaction service)\n *\n * Binding to the event\n * ```html\n * \n * ```\n * @param commit\n */\n // TODO: Refactor\n /**\n * Finishes the row transactions on the current row.\n * If `commit === true`, passes them from the pending state to the data (or transaction service)\n *\n * Binding to the event\n * ```html\n * \n * ```\n * @param {?=} commit\n * @param {?=} event\n * @return {?}\n */\n IgxGridBaseComponent.prototype.endEdit = \n // TODO: Refactor\n /**\n * Finishes the row transactions on the current row.\n * If `commit === true`, passes them from the pending state to the data (or transaction service)\n *\n * Binding to the event\n * ```html\n * \n * ```\n * @param {?=} commit\n * @param {?=} event\n * @return {?}\n */\n function (commit, event) {\n if (commit === void 0) { commit = true; }\n /** @type {?} */\n var row = this.crudService.row;\n /** @type {?} */\n var cell = this.crudService.cell;\n // TODO: Merge the crudService with wht BaseAPI service\n if (!row && !cell) {\n return;\n }\n commit ? this.gridAPI.submit_value() : this.gridAPI.escape_editMode();\n if (!this.rowEditable || this.rowEditingOverlay && this.rowEditingOverlay.collapsed || !row) {\n return;\n }\n this.endRowTransaction(commit, row);\n /** @type {?} */\n var activeCell = this.selectionService.activeElement;\n if (event && activeCell) {\n /** @type {?} */\n var rowIndex = activeCell.row;\n /** @type {?} */\n var visibleColIndex = activeCell.layout ? activeCell.layout.columnVisibleIndex : activeCell.column;\n this.navigateTo(rowIndex, visibleColIndex, function (c) {\n if (c.targetType === GridKeydownTargetType.dataCell && c.target) {\n c.target.nativeElement.focus();\n }\n });\n }\n };\n Object.defineProperty(IgxGridBaseComponent.prototype, \"dataWithAddedInTransactionRows\", {\n /**\n * @hidden\n */\n get: /**\n * @hidden\n * @return {?}\n */\n function () {\n /** @type {?} */\n var result = (/** @type {?} */ (cloneArray(this.gridAPI.get_all_data())));\n if (this.transactions.enabled) {\n result.push.apply(result, __spread(this.transactions.getAggregatedChanges(true)\n .filter(function (t) { return t.type === TransactionType.ADD; })\n .map(function (t) { return t.newValue; })));\n }\n return result;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxGridBaseComponent.prototype, \"dataLength\", {\n get: /**\n * @return {?}\n */\n function () {\n return this.transactions.enabled ? this.dataWithAddedInTransactionRows.length : this.gridAPI.get_all_data().length;\n },\n enumerable: true,\n configurable: true\n });\n /**\n * @return {?}\n */\n IgxGridBaseComponent.prototype.hasHorizontalScroll = /**\n * @return {?}\n */\n function () {\n return this.totalWidth - this.unpinnedWidth > 0;\n };\n /**\n * @protected\n * @param {?} row\n * @return {?}\n */\n IgxGridBaseComponent.prototype._restoreVirtState = /**\n * @protected\n * @param {?} row\n * @return {?}\n */\n function (row) {\n // check virtualization state of data record added from cache\n // in case state is no longer valid - update it.\n /** @type {?} */\n var rowForOf = row.virtDirRow;\n /** @type {?} */\n var gridScrLeft = rowForOf.getScroll().scrollLeft;\n /** @type {?} */\n var left = -parseInt(rowForOf.dc.instance._viewContainer.element.nativeElement.style.left, 10);\n /** @type {?} */\n var actualScrollLeft = left + rowForOf.getColumnScrollLeft(rowForOf.state.startIndex);\n if (gridScrLeft !== actualScrollLeft) {\n rowForOf.onHScroll(gridScrLeft);\n }\n };\n /**\n * @hidden\n */\n /**\n * @hidden\n * @protected\n * @return {?}\n */\n IgxGridBaseComponent.prototype.getExportExcel = /**\n * @hidden\n * @protected\n * @return {?}\n */\n function () {\n return this._exportExcel;\n };\n /**\n * @hidden\n */\n /**\n * @hidden\n * @protected\n * @return {?}\n */\n IgxGridBaseComponent.prototype.getExportCsv = /**\n * @hidden\n * @protected\n * @return {?}\n */\n function () {\n return this._exportCsv;\n };\n Object.defineProperty(IgxGridBaseComponent.prototype, \"shouldOverlayLoading\", {\n /**\n * @hidden\n */\n get: /**\n * @hidden\n * @return {?}\n */\n function () {\n return this.isLoading && this.data && this.data.length > 0;\n },\n enumerable: true,\n configurable: true\n });\n /**\n * @hidden\n */\n /**\n * @hidden\n * @param {?} rowData\n * @return {?}\n */\n IgxGridBaseComponent.prototype.isSummaryRow = /**\n * @hidden\n * @param {?} rowData\n * @return {?}\n */\n function (rowData) {\n return rowData.summaries && (rowData.summaries instanceof Map);\n };\n Object.defineProperty(IgxGridBaseComponent.prototype, \"isMultiRowSelectionEnabled\", {\n /** @hidden */\n get: /**\n * @hidden\n * @return {?}\n */\n function () {\n return this.rowSelection === GridSelectionMode.multiple;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxGridBaseComponent.prototype, \"isRowSelectable\", {\n /** @hidden */\n get: /**\n * @hidden\n * @return {?}\n */\n function () {\n return this.rowSelection !== GridSelectionMode.none;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxGridBaseComponent.prototype, \"isCellSelectable\", {\n /** @hidden */\n get: /**\n * @hidden\n * @return {?}\n */\n function () {\n return this.cellSelection !== GridSelectionMode.none;\n },\n enumerable: true,\n configurable: true\n });\n /** @hidden */\n /**\n * @hidden\n * @param {?} args\n * @return {?}\n */\n IgxGridBaseComponent.prototype.viewDetachHandler = /**\n * @hidden\n * @param {?} args\n * @return {?}\n */\n function (args) {\n /** @type {?} */\n var context = args.view.context;\n if (context['templateID'] === 'dataRow') {\n // some browsers (like FireFox and Edge) do not trigger onBlur when the focused element is detached from DOM\n // hence we need to trigger it manually when cell is detached.\n /** @type {?} */\n var row = this.getRowByIndex(context.index);\n /** @type {?} */\n var focusedCell = row.cells.find(function (x) { return x.focused; });\n if (focusedCell) {\n focusedCell.onBlur();\n }\n }\n };\n /**\n * @hidden\n */\n /**\n * @hidden\n * @param {?} args\n * @return {?}\n */\n IgxGridBaseComponent.prototype.cachedViewLoaded = /**\n * @hidden\n * @param {?} args\n * @return {?}\n */\n function (args) {\n var _this = this;\n if (args.context['templateID'] === 'dataRow' && args.context['$implicit'] === args.oldContext['$implicit']) {\n args.view.detectChanges();\n /** @type {?} */\n var row = this.getRowByIndex(args.context.index);\n if (row && row.cells) {\n row.cells.forEach(function (c) {\n c.highlightText(_this.lastSearchInfo.searchText, _this.lastSearchInfo.caseSensitive, _this.lastSearchInfo.exactMatch);\n });\n }\n }\n if (this.hasHorizontalScroll()) {\n /** @type {?} */\n var tmplId = args.context.templateID;\n /** @type {?} */\n var index_1 = args.context.index;\n args.view.detectChanges();\n /** @type {?} */\n var row = tmplId === 'dataRow' ? this.getRowByIndex(index_1) : null;\n /** @type {?} */\n var summaryRow = tmplId === 'summaryRow' ? this.summariesRowList.find(function (sr) { return sr.dataRowIndex === index_1; }) : null;\n if (row && row instanceof IgxRowComponent) {\n this._restoreVirtState(row);\n }\n else if (summaryRow) {\n this._restoreVirtState(summaryRow);\n }\n }\n };\n /**\n * Opens the advanced filtering dialog.\n */\n /**\n * Opens the advanced filtering dialog.\n * @return {?}\n */\n IgxGridBaseComponent.prototype.openAdvancedFilteringDialog = /**\n * Opens the advanced filtering dialog.\n * @return {?}\n */\n function () {\n if (!this._advancedFilteringOverlayId) {\n this._advancedFilteringOverlaySettings.positionStrategy.settings.target =\n ((/** @type {?} */ (this))).rootGrid ? ((/** @type {?} */ (this))).rootGrid.nativeElement : this.nativeElement;\n this._advancedFilteringOverlaySettings.outlet = this.outletDirective;\n this._advancedFilteringOverlayId = this.overlayService.attach(IgxAdvancedFilteringDialogComponent, this._advancedFilteringOverlaySettings, {\n injector: this.viewRef.injector,\n componentFactoryResolver: this.resolver\n });\n this.overlayService.show(this._advancedFilteringOverlayId, this._advancedFilteringOverlaySettings);\n }\n };\n /**\n * Closes the advanced filtering dialog.\n * @param applyChanges indicates whether the changes should be applied\n */\n /**\n * Closes the advanced filtering dialog.\n * @param {?} applyChanges indicates whether the changes should be applied\n * @return {?}\n */\n IgxGridBaseComponent.prototype.closeAdvancedFilteringDialog = /**\n * Closes the advanced filtering dialog.\n * @param {?} applyChanges indicates whether the changes should be applied\n * @return {?}\n */\n function (applyChanges) {\n if (this._advancedFilteringOverlayId) {\n /** @type {?} */\n var advancedFilteringOverlay = this.overlayService.getOverlayById(this._advancedFilteringOverlayId);\n /** @type {?} */\n var advancedFilteringDialog = (/** @type {?} */ (advancedFilteringOverlay.componentRef.instance));\n if (applyChanges) {\n advancedFilteringDialog.applyChanges();\n }\n advancedFilteringDialog.closeDialog();\n }\n };\n IgxGridBaseComponent.decorators = [\n { type: Injectable }\n ];\n /** @nocollapse */\n IgxGridBaseComponent.ctorParameters = function () { return [\n { type: IgxGridSelectionService },\n { type: IgxGridCRUDService },\n { type: IgxColumnResizingService },\n { type: GridBaseAPIService },\n { type: undefined, decorators: [{ type: Inject, args: [IgxGridTransaction,] }] },\n { type: ElementRef },\n { type: NgZone },\n { type: undefined, decorators: [{ type: Inject, args: [DOCUMENT,] }] },\n { type: ChangeDetectorRef },\n { type: ComponentFactoryResolver },\n { type: IterableDiffers },\n { type: ViewContainerRef },\n { type: IgxGridNavigationService },\n { type: IgxFilteringService },\n { type: IgxOverlayService, decorators: [{ type: Inject, args: [IgxOverlayService,] }] },\n { type: IgxGridSummaryService },\n { type: undefined, decorators: [{ type: Optional }, { type: Inject, args: [DisplayDensityToken,] }] }\n ]; };\n IgxGridBaseComponent.propDecorators = {\n defaultExpandedTemplate: [{ type: ViewChild, args: ['defaultExpandedTemplate', { read: TemplateRef, static: true },] }],\n defaultCollapsedTemplate: [{ type: ViewChild, args: ['defaultCollapsedTemplate', { read: TemplateRef, static: true },] }],\n resourceStrings: [{ type: Input }],\n autoGenerate: [{ type: Input }],\n emptyGridTemplate: [{ type: Input }],\n loadingGridTemplate: [{ type: Input }],\n filteringLogic: [{ type: Input }],\n filteringExpressionsTree: [{ type: Input }],\n filteringExpressionsTreeChange: [{ type: Output }],\n advancedFilteringExpressionsTreeChange: [{ type: Output }],\n advancedFilteringExpressionsTree: [{ type: Input }],\n locale: [{ type: Input }],\n paging: [{ type: Input }],\n page: [{ type: Input }],\n pageChange: [{ type: Output }],\n perPage: [{ type: Input }],\n perPageChange: [{ type: Output }],\n paginationTemplate: [{ type: Input }],\n columnHiding: [{ type: Input }],\n rowSelectable: [{ type: Input }],\n hideRowSelectors: [{ type: Input }],\n rowDraggable: [{ type: Input }],\n rowEditable: [{ type: Input }],\n height: [{ type: HostBinding, args: ['style.height',] }, { type: Input }],\n hostWidth: [{ type: HostBinding, args: ['style.width',] }],\n width: [{ type: Input }],\n evenRowCSS: [{ type: Input }],\n oddRowCSS: [{ type: Input }],\n rowHeight: [{ type: Input }],\n columnWidth: [{ type: Input }],\n primaryKey: [{ type: Input }],\n emptyGridMessage: [{ type: Input }],\n isLoading: [{ type: Input }],\n emptyFilteredGridMessage: [{ type: Input }],\n columnHidingTitle: [{ type: Input }],\n columnPinning: [{ type: Input }],\n columnPinningTitle: [{ type: Input }],\n allowFiltering: [{ type: Input }],\n allowAdvancedFiltering: [{ type: Input }],\n filterMode: [{ type: Input }],\n summaryPosition: [{ type: Input }],\n summaryCalculationMode: [{ type: Input }],\n filterStrategy: [{ type: Input }],\n uniqueColumnValuesStrategy: [{ type: Input }],\n onCellClick: [{ type: Output }],\n onSelection: [{ type: Output }],\n onRowSelectionChange: [{ type: Output }],\n onColumnPinning: [{ type: Output }],\n onCellEditCancel: [{ type: Output }],\n onCellEditEnter: [{ type: Output }],\n onCellEdit: [{ type: Output }],\n onRowEditEnter: [{ type: Output }],\n onRowEdit: [{ type: Output }],\n onRowEditCancel: [{ type: Output }],\n onColumnInit: [{ type: Output }],\n onSortingDone: [{ type: Output }],\n onFilteringDone: [{ type: Output }],\n onPagingDone: [{ type: Output }],\n onRowAdded: [{ type: Output }],\n onRowDeleted: [{ type: Output }],\n onDataPreLoad: [{ type: Output }],\n onColumnResized: [{ type: Output }],\n onContextMenu: [{ type: Output }],\n onDoubleClick: [{ type: Output }],\n onColumnVisibilityChanged: [{ type: Output }],\n onColumnMovingStart: [{ type: Output }],\n onColumnMoving: [{ type: Output }],\n onColumnMovingEnd: [{ type: Output }],\n onGridKeydown: [{ type: Output }],\n onRowDragStart: [{ type: Output }],\n onRowDragEnd: [{ type: Output }],\n onGridCopy: [{ type: Output }],\n resizeLine: [{ type: ViewChild, args: [IgxGridColumnResizerComponent, { static: false },] }],\n loadingOverlay: [{ type: ViewChild, args: ['loadingOverlay', { static: true },] }],\n loadingOutlet: [{ type: ViewChild, args: ['igxLoadingOverlayOutlet', { read: IgxOverlayOutletDirective, static: true },] }],\n columnList: [{ type: ContentChildren, args: [IgxColumnComponent, { read: IgxColumnComponent, descendants: true },] }],\n excelStyleSortingTemplateDirective: [{ type: ContentChild, args: [IgxExcelStyleSortingTemplateDirective, { read: IgxExcelStyleSortingTemplateDirective, static: false },] }],\n excelStyleMovingTemplateDirective: [{ type: ContentChild, args: [IgxExcelStyleMovingTemplateDirective, { read: IgxExcelStyleMovingTemplateDirective, static: false },] }],\n excelStyleHidingTemplateDirective: [{ type: ContentChild, args: [IgxExcelStyleHidingTemplateDirective, { read: IgxExcelStyleHidingTemplateDirective, static: false },] }],\n excelStylePinningTemplateDirective: [{ type: ContentChild, args: [IgxExcelStylePinningTemplateDirective, { read: IgxExcelStylePinningTemplateDirective, static: false },] }],\n excelStyleLoadingValuesTemplateDirective: [{ type: ContentChild, args: [IgxExcelStyleLoadingValuesTemplateDirective, { read: IgxExcelStyleLoadingValuesTemplateDirective, static: true },] }],\n headerGroups: [{ type: ViewChildren, args: [IgxGridHeaderGroupComponent, { read: IgxGridHeaderGroupComponent },] }],\n _rowList: [{ type: ViewChildren, args: ['row',] }],\n _summaryRowList: [{ type: ViewChildren, args: ['summaryRow', { read: IgxSummaryRowComponent },] }],\n _dataRowList: [{ type: ViewChildren, args: [IgxRowComponent, { read: IgxRowComponent },] }],\n emptyFilteredGridTemplate: [{ type: ViewChild, args: ['emptyFilteredGrid', { read: TemplateRef, static: true },] }],\n emptyGridDefaultTemplate: [{ type: ViewChild, args: ['defaultEmptyGrid', { read: TemplateRef, static: true },] }],\n loadingGridDefaultTemplate: [{ type: ViewChild, args: ['defaultLoadingGrid', { read: TemplateRef, static: true },] }],\n parentVirtDir: [{ type: ViewChild, args: ['scrollContainer', { read: IgxGridForOfDirective, static: true },] }],\n toolbarCustomContentTemplates: [{ type: ContentChildren, args: [IgxGridToolbarCustomContentDirective, { read: IgxGridToolbarCustomContentDirective, descendants: false },] }],\n headSelectorsTemplates: [{ type: ContentChildren, args: [IgxHeadSelectorDirective, { read: IgxHeadSelectorDirective, descendants: false },] }],\n rowSelectorsTemplates: [{ type: ContentChildren, args: [IgxRowSelectorDirective, { read: IgxRowSelectorDirective, descendants: false },] }],\n dragGhostCustomTemplates: [{ type: ContentChildren, args: [IgxRowDragGhostDirective, { read: TemplateRef, descendants: false },] }],\n dragIndicatorIconTemplates: [{ type: ContentChildren, args: [IgxDragIndicatorIconDirective, { read: TemplateRef, descendants: false },] }],\n verticalScrollContainer: [{ type: ViewChild, args: ['verticalScrollContainer', { read: IgxGridForOfDirective, static: true },] }],\n verticalScroll: [{ type: ViewChild, args: ['verticalScrollHolder', { read: IgxGridForOfDirective, static: true },] }],\n scr: [{ type: ViewChild, args: ['scr', { read: ElementRef, static: true },] }],\n footer: [{ type: ViewChild, args: ['footer', { read: ElementRef, static: false },] }],\n headerContainer: [{ type: ViewChild, args: ['hContainer', { read: IgxGridForOfDirective, static: true },] }],\n headerSelectorContainer: [{ type: ViewChild, args: ['headerSelectorContainer', { static: false },] }],\n headerDragContainer: [{ type: ViewChild, args: ['headerDragContainer', { static: false },] }],\n headerGroupContainer: [{ type: ViewChild, args: ['headerGroupContainer', { static: false },] }],\n filteringRow: [{ type: ViewChild, args: ['filteringRow', { read: IgxGridFilteringRowComponent, static: false },] }],\n theadRow: [{ type: ViewChild, args: ['theadRow', { static: true },] }],\n tbody: [{ type: ViewChild, args: ['tbody', { static: true },] }],\n tfoot: [{ type: ViewChild, args: ['tfoot', { static: true },] }],\n _outletDirective: [{ type: ViewChild, args: ['igxFilteringOverlayOutlet', { read: IgxOverlayOutletDirective, static: true },] }],\n rowEditingOutletDirective: [{ type: ViewChild, args: ['igxRowEditingOverlayOutlet', { read: IgxOverlayOutletDirective, static: true },] }],\n tmpOutlets: [{ type: ViewChildren, args: [IgxTemplateOutletDirective, { read: IgxTemplateOutletDirective },] }],\n dragIndicatorIconBase: [{ type: ViewChild, args: ['dragIndicatorIconBase', { read: TemplateRef, static: true },] }],\n defaultRowEditTemplate: [{ type: ViewChild, args: ['defaultRowEditTemplate', { read: TemplateRef, static: true },] }],\n rowEditCustom: [{ type: ContentChild, args: [IgxRowEditTemplateDirective, { read: TemplateRef, static: false },] }],\n rowEditText: [{ type: ContentChild, args: [IgxRowEditTextDirective, { read: TemplateRef, static: false },] }],\n rowEditActions: [{ type: ContentChild, args: [IgxRowEditActionsDirective, { read: TemplateRef, static: false },] }],\n rowExpandedIndicatorTemplate: [{ type: ContentChild, args: [IgxRowExpandedIndicatorDirective, { read: TemplateRef, static: false },] }],\n rowCollapsedIndicatorTemplate: [{ type: ContentChild, args: [IgxRowCollapsedIndicatorDirective, { read: TemplateRef, static: false },] }],\n headerExpandIndicatorTemplate: [{ type: ContentChild, args: [IgxHeaderExpandIndicatorDirective, { read: TemplateRef, static: false },] }],\n headerCollapseIndicatorTemplate: [{ type: ContentChild, args: [IgxHeaderCollapseIndicatorDirective, { read: TemplateRef, static: false },] }],\n rowEditTabsDEFAULT: [{ type: ViewChildren, args: [IgxRowEditTabStopDirective,] }],\n rowEditTabsCUSTOM: [{ type: ContentChildren, args: [IgxRowEditTabStopDirective,] }],\n rowEditingOverlay: [{ type: ViewChild, args: [IgxToggleDirective, { static: false },] }],\n tabindex: [{ type: HostBinding, args: ['attr.tabindex',] }],\n hostClass: [{ type: HostBinding, args: ['attr.class',] }],\n hostRole: [{ type: HostBinding, args: ['attr.role',] }],\n sortingExpressions: [{ type: Input }],\n sortingExpressionsChange: [{ type: Output }],\n hiddenColumnsText: [{ type: Input }],\n pinnedColumnsText: [{ type: Input }],\n toolbar: [{ type: ViewChild, args: ['toolbar', { read: IgxGridToolbarComponent, static: false },] }],\n toolbarHtml: [{ type: ViewChild, args: ['toolbar', { read: ElementRef, static: false },] }],\n showToolbar: [{ type: Input }],\n toolbarTitle: [{ type: Input }],\n exportExcel: [{ type: Input }],\n exportCsv: [{ type: Input }],\n exportText: [{ type: Input }],\n exportExcelText: [{ type: Input }],\n exportCsvText: [{ type: Input }],\n clipboardOptions: [{ type: Input }],\n cellSelection: [{ type: Input }],\n rowSelection: [{ type: Input }],\n onToolbarExporting: [{ type: Output }],\n onRangeSelection: [{ type: Output }]\n };\n __decorate([\n WatchChanges(),\n __metadata(\"design:type\", Number),\n __metadata(\"design:paramtypes\", [Number])\n ], IgxGridBaseComponent.prototype, \"filteringLogic\", null);\n __decorate([\n WatchChanges(),\n __metadata(\"design:type\", Object),\n __metadata(\"design:paramtypes\", [Object])\n ], IgxGridBaseComponent.prototype, \"filteringExpressionsTree\", null);\n __decorate([\n WatchChanges(),\n __metadata(\"design:type\", Object),\n __metadata(\"design:paramtypes\", [Object])\n ], IgxGridBaseComponent.prototype, \"advancedFilteringExpressionsTree\", null);\n __decorate([\n DeprecateProperty('rowSelectable property is deprecated. Use rowSelection property instead.'),\n WatchChanges(),\n __metadata(\"design:type\", Boolean),\n __metadata(\"design:paramtypes\", [Boolean])\n ], IgxGridBaseComponent.prototype, \"rowSelectable\", null);\n __decorate([\n WatchChanges(),\n __metadata(\"design:type\", Boolean),\n __metadata(\"design:paramtypes\", [Boolean])\n ], IgxGridBaseComponent.prototype, \"hideRowSelectors\", null);\n __decorate([\n WatchChanges(),\n __metadata(\"design:type\", Boolean),\n __metadata(\"design:paramtypes\", [Boolean])\n ], IgxGridBaseComponent.prototype, \"rowEditable\", null);\n __decorate([\n WatchChanges(),\n __metadata(\"design:type\", String),\n __metadata(\"design:paramtypes\", [String])\n ], IgxGridBaseComponent.prototype, \"height\", null);\n __decorate([\n WatchChanges(),\n __metadata(\"design:type\", Object),\n __metadata(\"design:paramtypes\", [Object])\n ], IgxGridBaseComponent.prototype, \"width\", null);\n __decorate([\n WatchChanges(),\n __metadata(\"design:type\", Object),\n __metadata(\"design:paramtypes\", [Object])\n ], IgxGridBaseComponent.prototype, \"rowHeight\", null);\n __decorate([\n WatchChanges(),\n __metadata(\"design:type\", String),\n __metadata(\"design:paramtypes\", [String])\n ], IgxGridBaseComponent.prototype, \"columnWidth\", null);\n __decorate([\n WatchChanges(),\n __metadata(\"design:type\", Object)\n ], IgxGridBaseComponent.prototype, \"primaryKey\", void 0);\n __decorate([\n WatchChanges(),\n __metadata(\"design:type\", Boolean),\n __metadata(\"design:paramtypes\", [Boolean])\n ], IgxGridBaseComponent.prototype, \"isLoading\", null);\n __decorate([\n WatchChanges(),\n __metadata(\"design:type\", Object),\n __metadata(\"design:paramtypes\", [Object])\n ], IgxGridBaseComponent.prototype, \"columnPinning\", null);\n __decorate([\n WatchChanges(),\n __metadata(\"design:type\", Array),\n __metadata(\"design:paramtypes\", [Array])\n ], IgxGridBaseComponent.prototype, \"sortingExpressions\", null);\n __decorate([\n WatchChanges(),\n __metadata(\"design:type\", Object),\n __metadata(\"design:paramtypes\", [Object])\n ], IgxGridBaseComponent.prototype, \"hiddenColumnsText\", null);\n __decorate([\n WatchChanges(),\n __metadata(\"design:type\", Object),\n __metadata(\"design:paramtypes\", [Object])\n ], IgxGridBaseComponent.prototype, \"pinnedColumnsText\", null);\n __decorate([\n WatchChanges(),\n __metadata(\"design:type\", Boolean),\n __metadata(\"design:paramtypes\", [Boolean])\n ], IgxGridBaseComponent.prototype, \"showToolbar\", null);\n __decorate([\n WatchChanges(),\n __metadata(\"design:type\", String),\n __metadata(\"design:paramtypes\", [String])\n ], IgxGridBaseComponent.prototype, \"toolbarTitle\", null);\n __decorate([\n WatchChanges(),\n __metadata(\"design:type\", Boolean),\n __metadata(\"design:paramtypes\", [Boolean])\n ], IgxGridBaseComponent.prototype, \"exportExcel\", null);\n __decorate([\n WatchChanges(),\n __metadata(\"design:type\", Boolean),\n __metadata(\"design:paramtypes\", [Boolean])\n ], IgxGridBaseComponent.prototype, \"exportCsv\", null);\n __decorate([\n WatchChanges(),\n __metadata(\"design:type\", String),\n __metadata(\"design:paramtypes\", [String])\n ], IgxGridBaseComponent.prototype, \"exportText\", null);\n __decorate([\n WatchChanges(),\n __metadata(\"design:type\", String),\n __metadata(\"design:paramtypes\", [String])\n ], IgxGridBaseComponent.prototype, \"exportExcelText\", null);\n __decorate([\n WatchChanges(),\n __metadata(\"design:type\", String),\n __metadata(\"design:paramtypes\", [String])\n ], IgxGridBaseComponent.prototype, \"exportCsvText\", null);\n __decorate([\n WatchChanges(),\n __metadata(\"design:type\", String),\n __metadata(\"design:paramtypes\", [String])\n ], IgxGridBaseComponent.prototype, \"cellSelection\", null);\n __decorate([\n WatchChanges(),\n __metadata(\"design:type\", String),\n __metadata(\"design:paramtypes\", [String])\n ], IgxGridBaseComponent.prototype, \"rowSelection\", null);\n return IgxGridBaseComponent;\n}(DisplayDensityBase));\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\nvar IgxGridFooterComponent = /** @class */ (function () {\n function IgxGridFooterComponent() {\n }\n IgxGridFooterComponent.decorators = [\n { type: Component, args: [{\n selector: 'igx-grid-footer',\n template: ''\n }] }\n ];\n return IgxGridFooterComponent;\n}());\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\nvar IgxSummaryDataPipe = /** @class */ (function () {\n function IgxSummaryDataPipe(gridAPI) {\n this.gridAPI = gridAPI;\n }\n /**\n * @param {?} id\n * @param {?=} trigger\n * @return {?}\n */\n IgxSummaryDataPipe.prototype.transform = /**\n * @param {?} id\n * @param {?=} trigger\n * @return {?}\n */\n function (id, trigger) {\n /** @type {?} */\n var summaryService = this.gridAPI.grid.summaryService;\n return summaryService.calculateSummaries(summaryService.rootSummaryID, this.gridAPI.get_summary_data());\n };\n IgxSummaryDataPipe.decorators = [\n { type: Pipe, args: [{\n name: 'igxGridSummaryDataPipe',\n pure: true\n },] }\n ];\n /** @nocollapse */\n IgxSummaryDataPipe.ctorParameters = function () { return [\n { type: GridBaseAPIService }\n ]; };\n return IgxSummaryDataPipe;\n}());\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\nvar IgxProcessBarTextTemplateDirective = /** @class */ (function () {\n function IgxProcessBarTextTemplateDirective(template) {\n this.template = template;\n }\n IgxProcessBarTextTemplateDirective.decorators = [\n { type: Directive, args: [{\n selector: '[igxProcessBarText]'\n },] }\n ];\n /** @nocollapse */\n IgxProcessBarTextTemplateDirective.ctorParameters = function () { return [\n { type: TemplateRef }\n ]; };\n return IgxProcessBarTextTemplateDirective;\n}());\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n/** @type {?} */\nvar ONE_PERCENT = 0.01;\n/** @type {?} */\nvar MIN_VALUE = 0;\n/** @enum {string} */\nvar IgxTextAlign = {\n START: 'start',\n CENTER: 'center',\n END: 'end',\n};\n/** @enum {string} */\nvar IgxProgressType = {\n DANGER: 'danger',\n INFO: 'info',\n WARNING: 'warning',\n SUCCESS: 'success',\n};\n/**\n * @abstract\n */\nvar /**\n * @abstract\n */\nBaseProgress = /** @class */ (function () {\n function BaseProgress() {\n /**\n * @hidden\n */\n this.requestAnimationId = undefined;\n /**\n * @hidden\n */\n this._valueInPercent = MIN_VALUE;\n /**\n * @hidden\n */\n this._max = 100;\n /**\n * @hidden\n */\n this._value = MIN_VALUE;\n /**\n * @hidden\n */\n this._animate = true;\n }\n Object.defineProperty(BaseProgress.prototype, \"valueInPercent\", {\n /**\n *Returns the `IgxLinearProgressBarComponent`/`IgxCircularProgressBarComponent` value in percentage.\n *```typescript\n *@ViewChild(\"MyProgressBar\")\n *public progressBar: IgxLinearProgressBarComponent; // IgxCircularProgressBarComponent\n *public valuePercent(event){\n * let percentValue = this.progressBar.valueInPercent;\n * alert(percentValue);\n *}\n *```\n */\n get: /**\n * Returns the `IgxLinearProgressBarComponent`/`IgxCircularProgressBarComponent` value in percentage.\n * ```typescript\n * \\@ViewChild(\"MyProgressBar\")\n * public progressBar: IgxLinearProgressBarComponent; // IgxCircularProgressBarComponent\n * public valuePercent(event){\n * let percentValue = this.progressBar.valueInPercent;\n * alert(percentValue);\n * }\n * ```\n * @return {?}\n */\n function () {\n return this._valueInPercent;\n },\n /**\n *Sets the `IgxLinearProgressBarComponent`/`IgxCircularProgressBarComponent` value in percentage.\n *```typescript\n *@ViewChild(\"MyProgressBar\")\n *public progressBar: IgxLinearProgressBarComponent; // IgxCircularProgressBarComponent\n * public setValue(event){\n * this.progressBar.valueInPercent = 56;\n *}\n * //...\n *```\n *```html\n *\n *```\n */\n set: /**\n * Sets the `IgxLinearProgressBarComponent`/`IgxCircularProgressBarComponent` value in percentage.\n * ```typescript\n * \\@ViewChild(\"MyProgressBar\")\n * public progressBar: IgxLinearProgressBarComponent; // IgxCircularProgressBarComponent\n * public setValue(event){\n * this.progressBar.valueInPercent = 56;\n * }\n * //...\n * ```\n * ```html\n * \n * ```\n * @param {?} value\n * @return {?}\n */\n function (value) {\n this._valueInPercent = value;\n },\n enumerable: true,\n configurable: true\n });\n /**\n * @hidden\n */\n /**\n * @hidden\n * @protected\n * @param {?} val\n * @param {?} step\n * @return {?}\n */\n BaseProgress.prototype.runAnimation = /**\n * @hidden\n * @protected\n * @param {?} val\n * @param {?} step\n * @return {?}\n */\n function (val, step) {\n var _this = this;\n this.requestAnimationId = requestAnimationFrame(function () { return _this.updateProgressSmoothly.call(_this, val, step); });\n };\n /**\n * @hidden\n */\n /**\n * @hidden\n * @protected\n * @param {?} val\n * @param {?} step\n * @return {?}\n */\n BaseProgress.prototype.updateProgressSmoothly = /**\n * @hidden\n * @protected\n * @param {?} val\n * @param {?} step\n * @return {?}\n */\n function (val, step) {\n var _this = this;\n this._value += step;\n /** @type {?} */\n var passedValue = convertInPercentage(val, this._max);\n /** @type {?} */\n var progressValue = convertInPercentage(this._value, this._max);\n if (this.valueInPercent === passedValue) {\n this.updateProgress(val);\n cancelAnimationFrame(this.requestAnimationId);\n }\n else if (this.isInLimitRange(progressValue, passedValue, step)) {\n this.updateProgress(val);\n cancelAnimationFrame(this.requestAnimationId);\n }\n else {\n this.valueInPercent = progressValue;\n this.requestAnimationId = requestAnimationFrame(function () { return _this.updateProgressSmoothly.call(_this, val, step); });\n }\n };\n /**\n * @hidden\n */\n /**\n * @hidden\n * @protected\n * @param {?} val\n * @return {?}\n */\n BaseProgress.prototype.updateProgressDirectly = /**\n * @hidden\n * @protected\n * @param {?} val\n * @return {?}\n */\n function (val) {\n this._value = val;\n this.valueInPercent = convertInPercentage(this._value, this._max);\n };\n /**\n * @hidden\n */\n /**\n * @hidden\n * @protected\n * @param {?} currentValue\n * @param {?} prevValue\n * @param {?} step\n * @return {?}\n */\n BaseProgress.prototype.directionFlow = /**\n * @hidden\n * @protected\n * @param {?} currentValue\n * @param {?} prevValue\n * @param {?} step\n * @return {?}\n */\n function (currentValue, prevValue, step) {\n if (currentValue < prevValue) {\n return step;\n }\n return -step;\n };\n /**\n * @hidden\n */\n /**\n * @hidden\n * @private\n * @param {?} val\n * @param {?} comparator\n * @param {?} step\n * @return {?}\n */\n BaseProgress.prototype.isInLimitRange = /**\n * @hidden\n * @private\n * @param {?} val\n * @param {?} comparator\n * @param {?} step\n * @return {?}\n */\n function (val, comparator, step) {\n return this.isExceedingUpperLimit(val, comparator, step) || this.isExceedingLowerLimit(val, comparator, step);\n };\n /**\n * @hidden\n *\n *\n * @param val\n * @param comparator\n * @param step\n */\n /**\n * @hidden\n *\n *\n * @private\n * @param {?} val\n * @param {?} comparator\n * @param {?} step\n * @return {?}\n */\n BaseProgress.prototype.isExceedingUpperLimit = /**\n * @hidden\n *\n *\n * @private\n * @param {?} val\n * @param {?} comparator\n * @param {?} step\n * @return {?}\n */\n function (val, comparator, step) {\n return val > comparator && step > 0;\n };\n /**\n * @hidden\n *\n * @param val\n * @param comparator\n * @param step\n */\n /**\n * @hidden\n *\n * @private\n * @param {?} val\n * @param {?} comparator\n * @param {?} step\n * @return {?}\n */\n BaseProgress.prototype.isExceedingLowerLimit = /**\n * @hidden\n *\n * @private\n * @param {?} val\n * @param {?} comparator\n * @param {?} step\n * @return {?}\n */\n function (val, comparator, step) {\n return val < comparator && step < 0;\n };\n /**\n * @hidden\n * @param step\n */\n /**\n * @hidden\n * @private\n * @param {?} val\n * @return {?}\n */\n BaseProgress.prototype.updateProgress = /**\n * @hidden\n * @private\n * @param {?} val\n * @return {?}\n */\n function (val) {\n this._value = val;\n this.valueInPercent = convertInPercentage(this._value, this._max);\n };\n return BaseProgress;\n}());\n/** @type {?} */\nvar NEXT_LINEAR_ID = 0;\n/** @type {?} */\nvar NEXT_CIRCULAR_ID = 0;\nvar IgxLinearProgressBarComponent = /** @class */ (function (_super) {\n __extends(IgxLinearProgressBarComponent, _super);\n function IgxLinearProgressBarComponent() {\n var _this = _super.call(this) || this;\n _this.valueMin = 0;\n _this.cssClass = 'igx-linear-bar';\n /**\n * Set `IgxLinearProgressBarComponent` to have striped style. By default it is set to false.\n * ```html\n * \n * ```\n */\n _this.striped = false;\n /**\n * Set `IgxLinearProgressBarComponent` to have indeterminate. By default it is set to false.\n * ```html\n * \n * ```\n */\n _this.indeterminate = false;\n /**\n * An \\@Input property that sets the value of the `role` attribute. If not provided it will be automatically set to `progressbar`.\n * ```html\n * \n * ```\n */\n _this.role = 'progressbar';\n /**\n * An \\@Input property that sets the value of `id` attribute. If not provided it will be automatically generated.\n * ```html\n * \n * ```\n */\n _this.id = \"igx-linear-bar-\" + NEXT_LINEAR_ID++;\n /**\n * Set the position that defines where the text is aligned.\n * Possible options - `IgxTextAlign.START` (default), `IgxTextAlign.CENTER`, `IgxTextAlign.END`.\n * ```typescript\n * public positionCenter: IgxTextAlign;\n * public ngOnInit() {\n * this.positionCenter = IgxTextAlign.CENTER;\n * }\n * //...\n * ```\n * ```html\n * \n * ```\n */\n _this.textAlign = IgxTextAlign.START;\n /**\n * Set the text to be visible. By default it is set to true.\n * ```html\n * \n * ```\n */\n _this.textVisibility = true;\n /**\n * Set the position that defines if the text should be aligned above the progress line. By default is set to false.\n * ```html\n * \n * ```\n */\n _this.textTop = false;\n /**\n * Set type of the `IgxLinearProgressBarComponent`. Possible options - `default`, `success`, `info`, `warning`, and `danger`.\n * ```html\n * \n * ```\n */\n _this.type = 'default';\n /**\n * An event, which is triggered after a progress is changed.\n * ```typescript\n * public progressChange(event) {\n * alert(\"Progress made!\");\n * }\n * //...\n * ```\n * ```html\n * \n * ```\n */\n _this.onProgressChanged = new EventEmitter();\n return _this;\n }\n Object.defineProperty(IgxLinearProgressBarComponent.prototype, \"animate\", {\n /**\n *Returns whether the `IgxLinearProgressBarComponent` has animation true/false.\n *```typescript\n *@ViewChild(\"MyProgressBar\")\n *public progressBar: IgxLinearProgressBarComponent;\n *public animationStatus(event) {\n * let animationStatus = this.progressBar.animate;\n * alert(animationStatus);\n *}\n *```\n */\n get: /**\n * Returns whether the `IgxLinearProgressBarComponent` has animation true/false.\n * ```typescript\n * \\@ViewChild(\"MyProgressBar\")\n * public progressBar: IgxLinearProgressBarComponent;\n * public animationStatus(event) {\n * let animationStatus = this.progressBar.animate;\n * alert(animationStatus);\n * }\n * ```\n * @return {?}\n */\n function () {\n return this._animate;\n },\n /**\n *Animation on progress `IgxLinearProgressBarComponent`. By default it is set to true.\n *```html\n *\n *```\n */\n set: /**\n * Animation on progress `IgxLinearProgressBarComponent`. By default it is set to true.\n * ```html\n * \n * ```\n * @param {?} animate\n * @return {?}\n */\n function (animate) {\n this._animate = animate;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxLinearProgressBarComponent.prototype, \"max\", {\n /**\n *Returns the the maximum progress value of the `IgxLinearProgressBarComponent`.\n *```typescript\n *@ViewChild(\"MyProgressBar\")\n *public progressBar: IgxLinearProgressBarComponent;\n *public maxValue(event) {\n * let max = this.progressBar.max;\n * alert(max);\n *}\n *```\n */\n get: /**\n * Returns the the maximum progress value of the `IgxLinearProgressBarComponent`.\n * ```typescript\n * \\@ViewChild(\"MyProgressBar\")\n * public progressBar: IgxLinearProgressBarComponent;\n * public maxValue(event) {\n * let max = this.progressBar.max;\n * alert(max);\n * }\n * ```\n * @return {?}\n */\n function () {\n return this._max;\n },\n /**\n *Set maximum value that can be passed. By default it is set to 100.\n *```html\n *\n *```\n */\n set: /**\n * Set maximum value that can be passed. By default it is set to 100.\n * ```html\n * \n * ```\n * @param {?} maxNum\n * @return {?}\n */\n function (maxNum) {\n this._max = maxNum;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxLinearProgressBarComponent.prototype, \"step\", {\n /**\n *Returns the value which update the progress indicator of the `IgxLinearProgressBarComponent`.\n *```typescript\n *@ViewChild(\"MyProgressBar\")\n *public progressBar: IgxLinearProgressBarComponent;\n *public stepValue(event) {\n * let step = this.progressBar.step;\n * alert(step);\n *}\n *```\n */\n get: /**\n * Returns the value which update the progress indicator of the `IgxLinearProgressBarComponent`.\n * ```typescript\n * \\@ViewChild(\"MyProgressBar\")\n * public progressBar: IgxLinearProgressBarComponent;\n * public stepValue(event) {\n * let step = this.progressBar.step;\n * alert(step);\n * }\n * ```\n * @return {?}\n */\n function () {\n if (this._step) {\n return this._step;\n }\n return this._max * ONE_PERCENT;\n },\n /**\n *Sets the value by which progress indicator is updated. By default it is 1% of the maximum value.\n *```html\n *\n *```\n */\n set: /**\n * Sets the value by which progress indicator is updated. By default it is 1% of the maximum value.\n * ```html\n * \n * ```\n * @param {?} val\n * @return {?}\n */\n function (val) {\n this._step = Number(val);\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxLinearProgressBarComponent.prototype, \"value\", {\n /**\n *Returns value that indicates the current `IgxLinearProgressBarComponent` position.\n *```typescript\n *@ViewChild(\"MyProgressBar\")\n *public progressBar: IgxLinearProgressBarComponent;\n *public getValue(event) {\n * let value = this.progressBar.value;\n * alert(value);\n *}\n *```\n */\n get: /**\n * Returns value that indicates the current `IgxLinearProgressBarComponent` position.\n * ```typescript\n * \\@ViewChild(\"MyProgressBar\")\n * public progressBar: IgxLinearProgressBarComponent;\n * public getValue(event) {\n * let value = this.progressBar.value;\n * alert(value);\n * }\n * ```\n * @return {?}\n */\n function () {\n return this._value;\n },\n /**\n *Set value that indicates the current `IgxLinearProgressBarComponent` position.\n *```html\n *\n *```\n */\n set: /**\n * Set value that indicates the current `IgxLinearProgressBarComponent` position.\n * ```html\n * \n * ```\n * @param {?} val\n * @return {?}\n */\n function (val) {\n val = Number(val);\n if (this._value === val || this.indeterminate) {\n return;\n }\n /** @type {?} */\n var valueInRange = getValueInProperRange(val, this.max);\n if (isNaN(valueInRange)) {\n return;\n }\n /** @type {?} */\n var changedValues = {\n currentValue: valueInRange,\n previousValue: this._value\n };\n /** @type {?} */\n var updateValue = _super.prototype.directionFlow.call(this, this._value, val, this.step);\n if (this._animate && val >= this.step) {\n _super.prototype.runAnimation.call(this, valueInRange, updateValue);\n }\n else {\n _super.prototype.updateProgressDirectly.call(this, valueInRange);\n }\n this.onProgressChanged.emit(changedValues);\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxLinearProgressBarComponent.prototype, \"danger\", {\n /**\n * @hidden\n */\n get: /**\n * @hidden\n * @return {?}\n */\n function () {\n return this.type === IgxProgressType.DANGER;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxLinearProgressBarComponent.prototype, \"info\", {\n /**\n * @hidden\n */\n get: /**\n * @hidden\n * @return {?}\n */\n function () {\n return this.type === IgxProgressType.INFO;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxLinearProgressBarComponent.prototype, \"warning\", {\n /**\n * @hidden\n */\n get: /**\n * @hidden\n * @return {?}\n */\n function () {\n return this.type === IgxProgressType.WARNING;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxLinearProgressBarComponent.prototype, \"success\", {\n /**\n * @hidden\n */\n get: /**\n * @hidden\n * @return {?}\n */\n function () {\n return this.type === IgxProgressType.SUCCESS;\n },\n enumerable: true,\n configurable: true\n });\n IgxLinearProgressBarComponent.decorators = [\n { type: Component, args: [{\n selector: 'igx-linear-bar',\n template: \"
\\n
\\n
\\n\\n\\n {{text ? text : valueInPercent + '%'}}\\n\\n\"\n }] }\n ];\n /** @nocollapse */\n IgxLinearProgressBarComponent.ctorParameters = function () { return []; };\n IgxLinearProgressBarComponent.propDecorators = {\n animate: [{ type: Input }],\n max: [{ type: HostBinding, args: ['attr.aria-valuemax',] }, { type: Input }],\n step: [{ type: Input }],\n valueMin: [{ type: HostBinding, args: ['attr.aria-valuemin',] }],\n cssClass: [{ type: HostBinding, args: ['class.igx-linear-bar',] }],\n striped: [{ type: HostBinding, args: ['class.igx-linear-bar--striped',] }, { type: Input }],\n indeterminate: [{ type: HostBinding, args: ['class.igx-linear-bar--indeterminate',] }, { type: Input }],\n role: [{ type: HostBinding, args: ['attr.role',] }, { type: Input }],\n id: [{ type: HostBinding, args: ['attr.id',] }, { type: Input }],\n textAlign: [{ type: Input }],\n textVisibility: [{ type: Input }],\n textTop: [{ type: Input }],\n text: [{ type: Input }],\n type: [{ type: Input }],\n value: [{ type: HostBinding, args: ['attr.aria-valuenow',] }, { type: Input }],\n onProgressChanged: [{ type: Output }],\n danger: [{ type: HostBinding, args: ['class.igx-linear-bar--danger',] }],\n info: [{ type: HostBinding, args: ['class.igx-linear-bar--info',] }],\n warning: [{ type: HostBinding, args: ['class.igx-linear-bar--warning',] }],\n success: [{ type: HostBinding, args: ['class.igx-linear-bar--success',] }]\n };\n return IgxLinearProgressBarComponent;\n}(BaseProgress));\nvar IgxCircularProgressBarComponent = /** @class */ (function (_super) {\n __extends(IgxCircularProgressBarComponent, _super);\n function IgxCircularProgressBarComponent(renderer) {\n var _this = _super.call(this) || this;\n _this.renderer = renderer;\n _this.STROKE_OPACITY_DVIDER = 100;\n _this.STROKE_OPACITY_ADDITION = .2;\n /**\n * @hidden\n */\n _this.cssClass = 'igx-circular-bar';\n /**\n * An event, which is triggered after a progress is changed.\n * ```typescript\n * public progressChange(event) {\n * alert(\"Progress made!\");\n * }\n * //...\n * ```\n * ```html\n * \n * ```\n */\n _this.onProgressChanged = new EventEmitter();\n /**\n * An \\@Input property that sets the value of `id` attribute. If not provided it will be automatically generated.\n * ```html\n * \n * ```\n */\n _this.id = \"igx-circular-bar-\" + NEXT_CIRCULAR_ID++;\n /**\n * An \\@Input property that sets the value of the `indeterminate` attribute. If not provided it will be automatically set to false.\n * ```html\n * \n * ```\n */\n _this.indeterminate = false;\n /**\n * Sets the text visibility. By default it is set to true.\n * ```html\n * \n * ```\n */\n _this.textVisibility = true;\n _this._circleRadius = 46;\n _this._circumference = 2 * Math.PI * _this._circleRadius;\n return _this;\n }\n Object.defineProperty(IgxCircularProgressBarComponent.prototype, \"context\", {\n /**\n * @hidden\n */\n get: /**\n * @hidden\n * @return {?}\n */\n function () {\n return {\n $implicit: { value: this.value, valueInPercent: this.valueInPercent, max: this.max }\n };\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxCircularProgressBarComponent.prototype, \"animate\", {\n /**\n *Returns whether the `IgxCircularProgressBarComponent` has animation true/false.\n *```typescript\n *@ViewChild(\"MyProgressBar\")\n *public progressBar: IgxCircularProgressBarComponent;\n *public animationStatus(event) {\n * let animationStatus = this.progressBar.animate;\n * alert(animationStatus);\n *}\n *```\n */\n get: /**\n * Returns whether the `IgxCircularProgressBarComponent` has animation true/false.\n * ```typescript\n * \\@ViewChild(\"MyProgressBar\")\n * public progressBar: IgxCircularProgressBarComponent;\n * public animationStatus(event) {\n * let animationStatus = this.progressBar.animate;\n * alert(animationStatus);\n * }\n * ```\n * @return {?}\n */\n function () {\n return this._animate;\n },\n /**\n *Animation on progress `IgxCircularProgressBarComponent`. By default it is set to true.\n *```html\n *\n *```\n */\n set: /**\n * Animation on progress `IgxCircularProgressBarComponent`. By default it is set to true.\n * ```html\n * \n * ```\n * @param {?} animate\n * @return {?}\n */\n function (animate) {\n this._animate = animate;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxCircularProgressBarComponent.prototype, \"max\", {\n /**\n *Returns the the maximum progress value of the `IgxCircularProgressBarComponent`.\n *```typescript\n *@ViewChild(\"MyProgressBar\")\n *public progressBar: IgxCircularProgressBarComponent;\n *public maxValue(event) {\n * let max = this.progressBar.max;\n * alert(max);\n *}\n *```\n *```html\n *\n *```\n */\n get: /**\n * Returns the the maximum progress value of the `IgxCircularProgressBarComponent`.\n * ```typescript\n * \\@ViewChild(\"MyProgressBar\")\n * public progressBar: IgxCircularProgressBarComponent;\n * public maxValue(event) {\n * let max = this.progressBar.max;\n * alert(max);\n * }\n * ```\n * ```html\n * \n * ```\n * @return {?}\n */\n function () {\n return this._max;\n },\n /**\n *Set maximum value that can be passed. By default it is set to 100.\n *```html\n *\n *```\n */\n set: /**\n * Set maximum value that can be passed. By default it is set to 100.\n * ```html\n * \n * ```\n * @param {?} maxNum\n * @return {?}\n */\n function (maxNum) {\n this._max = maxNum;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxCircularProgressBarComponent.prototype, \"step\", {\n /**\n *Returns the value which update the progress indicator of the `IgxCircularProgressBarComponent`.\n *```typescript\n *@ViewChild(\"MyProgressBar\")\n *public progressBar: IgxCircularProgressBarComponent;\n *public stepValue(event) {\n * let step = this.progressBar.step;\n * alert(step);\n *}\n *```\n */\n get: /**\n * Returns the value which update the progress indicator of the `IgxCircularProgressBarComponent`.\n * ```typescript\n * \\@ViewChild(\"MyProgressBar\")\n * public progressBar: IgxCircularProgressBarComponent;\n * public stepValue(event) {\n * let step = this.progressBar.step;\n * alert(step);\n * }\n * ```\n * @return {?}\n */\n function () {\n if (this._step) {\n return this._step;\n }\n return this._max * ONE_PERCENT;\n },\n /**\n *Sets the value by which progress indicator is updated. By default it is 1% of the maximum value.\n *```html\n *\n *```\n */\n set: /**\n * Sets the value by which progress indicator is updated. By default it is 1% of the maximum value.\n * ```html\n * \n * ```\n * @param {?} val\n * @return {?}\n */\n function (val) {\n this._step = Number(val);\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxCircularProgressBarComponent.prototype, \"value\", {\n /**\n *Returns value that indicates the current `IgxCircularProgressBarComponent` position.\n *```typescript\n *@ViewChild(\"MyProgressBar\")\n *public progressBar: IgxCircularProgressBarComponent;\n *public getValue(event) {\n * let value = this.progressBar.value;\n * alert(value);\n *}\n *```\n *```html\n *\n *```\n */\n get: /**\n * Returns value that indicates the current `IgxCircularProgressBarComponent` position.\n * ```typescript\n * \\@ViewChild(\"MyProgressBar\")\n * public progressBar: IgxCircularProgressBarComponent;\n * public getValue(event) {\n * let value = this.progressBar.value;\n * alert(value);\n * }\n * ```\n * ```html\n * \n * ```\n * @return {?}\n */\n function () {\n return this._value;\n },\n /**\n *Set value that indicates the current `IgxCircularProgressBarComponent` position.\n *```html\n *\n *```\n */\n set: /**\n * Set value that indicates the current `IgxCircularProgressBarComponent` position.\n * ```html\n * \n * ```\n * @param {?} val\n * @return {?}\n */\n function (val) {\n val = Number(val);\n if (this._value === val || this.indeterminate) {\n return;\n }\n /** @type {?} */\n var valueInProperRange = getValueInProperRange(val, this.max);\n if (isNaN(valueInProperRange)) {\n return;\n }\n /** @type {?} */\n var changedValues = {\n currentValue: valueInProperRange,\n previousValue: this._value\n };\n /** @type {?} */\n var updateValue = _super.prototype.directionFlow.call(this, this._value, val, this.step);\n if (this.animate && val >= this.step) {\n _super.prototype.runAnimation.call(this, valueInProperRange, updateValue);\n }\n else {\n this.updateProgressDirectly(valueInProperRange);\n }\n this.onProgressChanged.emit(changedValues);\n },\n enumerable: true,\n configurable: true\n });\n /**\n * @hidden\n */\n /**\n * @hidden\n * @param {?} val\n * @param {?} step\n * @return {?}\n */\n IgxCircularProgressBarComponent.prototype.updateProgressSmoothly = /**\n * @hidden\n * @param {?} val\n * @param {?} step\n * @return {?}\n */\n function (val, step) {\n // Set frames for the animation\n /** @type {?} */\n var FRAMES = [{\n strokeDashoffset: this.getProgress(this._value),\n strokeOpacity: (this._value / this.STROKE_OPACITY_DVIDER) + this.STROKE_OPACITY_ADDITION\n }, {\n strokeDashoffset: this.getProgress(this.valueInPercent),\n strokeOpacity: (this.valueInPercent / this.STROKE_OPACITY_DVIDER) + this.STROKE_OPACITY_ADDITION\n }];\n this._svgCircle.nativeElement.animate(FRAMES, {\n easing: 'ease-out',\n fill: 'forwards'\n });\n _super.prototype.updateProgressSmoothly.call(this, val, step);\n };\n Object.defineProperty(IgxCircularProgressBarComponent.prototype, \"textContent\", {\n /**\n * @hidden\n */\n get: /**\n * @hidden\n * @return {?}\n */\n function () {\n return this.text;\n },\n enumerable: true,\n configurable: true\n });\n /**\n * @hidden\n */\n /**\n * @hidden\n * @param {?} val\n * @return {?}\n */\n IgxCircularProgressBarComponent.prototype.updateProgressDirectly = /**\n * @hidden\n * @param {?} val\n * @return {?}\n */\n function (val) {\n _super.prototype.updateProgressDirectly.call(this, val);\n this.renderer.setStyle(this._svgCircle.nativeElement, 'stroke-dashoffset', this.getProgress(this.valueInPercent));\n this.renderer.setStyle(this._svgCircle.nativeElement, 'stroke-opacity', (this.valueInPercent / this.STROKE_OPACITY_DVIDER) + this.STROKE_OPACITY_ADDITION);\n };\n /**\n * @private\n * @param {?} percentage\n * @return {?}\n */\n IgxCircularProgressBarComponent.prototype.getProgress = /**\n * @private\n * @param {?} percentage\n * @return {?}\n */\n function (percentage) {\n // Reverse the sign here: '-' should become '+' in RTL mode\n return this._circumference - (percentage * this._circumference / 100);\n };\n IgxCircularProgressBarComponent.decorators = [\n { type: Component, args: [{\n selector: 'igx-circular-bar',\n template: \"\\n \\n \\n \\n \\n \\n \\n\\n \\n {{textContent ? textContent: valueInPercent + '%'}}\\n \\n\\n\"\n }] }\n ];\n /** @nocollapse */\n IgxCircularProgressBarComponent.ctorParameters = function () { return [\n { type: Renderer2 }\n ]; };\n IgxCircularProgressBarComponent.propDecorators = {\n cssClass: [{ type: HostBinding, args: ['class.igx-circular-bar',] }],\n onProgressChanged: [{ type: Output }],\n id: [{ type: HostBinding, args: ['attr.id',] }, { type: Input }],\n indeterminate: [{ type: HostBinding, args: ['class.igx-circular-bar--indeterminate',] }, { type: Input }],\n textVisibility: [{ type: Input }],\n text: [{ type: Input }],\n textTemplate: [{ type: ContentChild, args: [IgxProcessBarTextTemplateDirective, { read: IgxProcessBarTextTemplateDirective, static: false },] }],\n animate: [{ type: Input }],\n max: [{ type: Input }],\n step: [{ type: Input }],\n value: [{ type: Input }],\n _svgCircle: [{ type: ViewChild, args: ['circle', { static: true },] }]\n };\n return IgxCircularProgressBarComponent;\n}(BaseProgress));\n/**\n * @param {?} value\n * @param {?} max\n * @param {?=} min\n * @return {?}\n */\nfunction getValueInProperRange(value, max, min) {\n if (min === void 0) { min = 0; }\n return Math.max(Math.min(value, max), min);\n}\n/**\n * @param {?} value\n * @param {?} max\n * @return {?}\n */\nfunction convertInPercentage(value, max) {\n return Math.floor(100 * value / max);\n}\n/**\n * @hidden\n */\nvar IgxProgressBarModule = /** @class */ (function () {\n function IgxProgressBarModule() {\n }\n IgxProgressBarModule.decorators = [\n { type: NgModule, args: [{\n declarations: [IgxLinearProgressBarComponent, IgxCircularProgressBarComponent, IgxProcessBarTextTemplateDirective],\n exports: [IgxLinearProgressBarComponent, IgxCircularProgressBarComponent, IgxProcessBarTextTemplateDirective],\n imports: [CommonModule]\n },] }\n ];\n return IgxProgressBarModule;\n}());\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n/**\n * The `` is a container intended for row items in\n * a `` container.\n */\nvar IgxSelectGroupComponent = /** @class */ (function (_super) {\n __extends(IgxSelectGroupComponent, _super);\n function IgxSelectGroupComponent() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n IgxSelectGroupComponent.decorators = [\n { type: Component, args: [{\n selector: 'igx-select-item-group',\n template: \"\\n \\n \\n \"\n }] }\n ];\n return IgxSelectGroupComponent;\n}(IgxDropDownGroupComponent));\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n/**\n * @hidden \\@internal\n */\nvar IgxSelectItemNavigationDirective = /** @class */ (function (_super) {\n __extends(IgxSelectItemNavigationDirective, _super);\n function IgxSelectItemNavigationDirective() {\n var _this = _super.call(this, null) || this;\n // tslint:disable:member-ordering\n _this.inputStream = '';\n _this.clearStream$ = Subscription.EMPTY;\n return _this;\n }\n /** Captures keydown events and calls the appropriate handlers on the target component */\n /**\n * Captures keydown events and calls the appropriate handlers on the target component\n * @param {?} event\n * @return {?}\n */\n IgxSelectItemNavigationDirective.prototype.handleKeyDown = /**\n * Captures keydown events and calls the appropriate handlers on the target component\n * @param {?} event\n * @return {?}\n */\n function (event) {\n if (!event || event.shiftKey) {\n return;\n }\n /** @type {?} */\n var key = event.key.toLowerCase();\n if (event.altKey && (key === 'arrowdown' || key === 'arrowup' || key === 'down' || key === 'up')) {\n this.target.toggle();\n return;\n }\n if (this.target.collapsed) {\n switch (key) {\n case 'space':\n case 'spacebar':\n case ' ':\n case 'enter':\n event.preventDefault();\n this.target.open();\n return;\n case 'arrowdown':\n case 'down':\n this.target.navigateNext();\n this.target.selectItem(this.target.focusedItem);\n event.preventDefault();\n return;\n case 'arrowup':\n case 'up':\n this.target.navigatePrev();\n this.target.selectItem(this.target.focusedItem);\n event.preventDefault();\n return;\n default:\n break;\n }\n }\n _super.prototype.handleKeyDown.call(this, event);\n };\n /** Handle continuous letter typing navigation */\n /**\n * Handle continuous letter typing navigation\n * @param {?} event\n * @return {?}\n */\n IgxSelectItemNavigationDirective.prototype.captureKey = /**\n * Handle continuous letter typing navigation\n * @param {?} event\n * @return {?}\n */\n function (event) {\n var _this = this;\n // relying only on key, available on all major browsers:\n // https://caniuse.com/#feat=keyboardevent-key (IE/Edge quirk doesn't affect letter typing)\n if (!event || !event.key || event.key.length > 1) {\n // ignore longer keys ('Alt', 'ArrowDown', etc)\n return;\n }\n this.clearStream$.unsubscribe();\n this.clearStream$ = timer(500).subscribe(function () {\n _this.inputStream = '';\n });\n this.inputStream += event.key;\n /** @type {?} */\n var focusedItem = (/** @type {?} */ (this.target.focusedItem));\n // select the item\n if (focusedItem && this.inputStream.length > 1 && focusedItem.itemText.toLowerCase().startsWith(this.inputStream.toLowerCase())) {\n return;\n }\n this.activateItemByText(this.inputStream);\n };\n /**\n * @param {?} text\n * @return {?}\n */\n IgxSelectItemNavigationDirective.prototype.activateItemByText = /**\n * @param {?} text\n * @return {?}\n */\n function (text) {\n /** @type {?} */\n var items = (/** @type {?} */ (this.target.items));\n /** @type {?} */\n var activeItemIndex = items.indexOf((/** @type {?} */ (this.target.focusedItem))) || 0;\n // ^ this is focused OR selected if the dd is closed\n /** @type {?} */\n var nextItem = items.slice(activeItemIndex + 1).find(function (x) { return !x.disabled && (x.itemText.toLowerCase().startsWith(text.toLowerCase())); });\n if (!nextItem) {\n nextItem = items.slice(0, activeItemIndex).find(function (x) { return !x.disabled && (x.itemText.toLowerCase().startsWith(text.toLowerCase())); });\n }\n if (!nextItem) {\n return;\n }\n if (this.target.collapsed) {\n this.target.selectItem(nextItem);\n }\n this.target.navigateItem(items.indexOf(nextItem));\n };\n /**\n * @return {?}\n */\n IgxSelectItemNavigationDirective.prototype.ngOnDestroy = /**\n * @return {?}\n */\n function () {\n this.clearStream$.unsubscribe();\n };\n IgxSelectItemNavigationDirective.decorators = [\n { type: Directive, args: [{\n selector: '[igxSelectItemNavigation]'\n },] }\n ];\n /** @nocollapse */\n IgxSelectItemNavigationDirective.ctorParameters = function () { return []; };\n IgxSelectItemNavigationDirective.propDecorators = {\n target: [{ type: Input, args: ['igxSelectItemNavigation',] }],\n captureKey: [{ type: HostListener, args: ['keyup', ['$event'],] }]\n };\n return IgxSelectItemNavigationDirective;\n}(IgxDropDownItemNavigationDirective));\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n/**\n * @hidden\n */\nvar IgxSelectModule = /** @class */ (function () {\n function IgxSelectModule() {\n }\n IgxSelectModule.decorators = [\n { type: NgModule, args: [{\n declarations: [IgxSelectComponent, IgxSelectItemComponent, IgxSelectItemNavigationDirective,\n IgxSelectToggleIconDirective, IgxSelectGroupComponent],\n exports: [IgxSelectComponent, IgxSelectItemComponent, IgxSelectItemNavigationDirective,\n IgxSelectToggleIconDirective, IgxSelectGroupComponent],\n imports: [IgxRippleModule, CommonModule, IgxInputGroupModule, FormsModule, ReactiveFormsModule,\n IgxToggleModule, IgxDropDownModule, IgxButtonModule, IgxIconModule],\n providers: []\n },] }\n ];\n return IgxSelectModule;\n}());\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\nvar IgxPaginatorComponent = /** @class */ (function (_super) {\n __extends(IgxPaginatorComponent, _super);\n function IgxPaginatorComponent(_displayDensityOptions) {\n var _this = _super.call(this, _displayDensityOptions) || this;\n _this._displayDensityOptions = _displayDensityOptions;\n _this._page = 0;\n _this.defaultSelectValues = [5, 10, 15, 25, 50, 100, 500];\n _this._perPage = 15;\n /**\n * An \\@Input property that sets if the pager in the paginator should be enabled.\n * ```html\n * \n * ```\n * \\@memberof IgxPaginatorComponent\n */\n _this.pagerEnabled = true;\n /**\n * An \\@Input property that sets if the pager in the paginator should be hidden.\n * ```html\n * \n * ```\n * \\@memberof IgxPaginatorComponent\n */\n _this.pagerHidden = false;\n /**\n * An \\@Input property that sets if the dropdown in the paginator should be enabled.\n * ```html\n * \n * ```\n * \\@memberof IgxPaginatorComponent\n */\n _this.dropdownEnabled = true;\n /**\n * An \\@Input property that sets if the dropdown in the paginator should be hidden.\n * ```html\n * \n * ```\n * \\@memberof IgxPaginatorComponent\n */\n _this.dropdownHidden = false;\n /**\n * An \\@Input property, sets number of label of the select.\n * The default is 'Items per page' localized string.\n * ```html\n * \n * ```\n * \\@memberof IgxPaginatorComponent\n */\n _this.selectLabel = CurrentResourceStrings.PaginatorResStrings.igx_paginator_label;\n /**\n * An event that is emitted when the select in the `IgxPaginatorComponent` changes its value.\n */\n _this.perPageChange = new EventEmitter();\n /**\n * An event that is emitted when the paginating is used.\n */\n _this.pageChange = new EventEmitter();\n return _this;\n }\n Object.defineProperty(IgxPaginatorComponent.prototype, \"classCosy\", {\n /**\n * Sets the class of the IgxPaginatorComponent based\n * on the provided displayDensity.\n */\n get: /**\n * Sets the class of the IgxPaginatorComponent based\n * on the provided displayDensity.\n * @return {?}\n */\n function () {\n return this.displayDensity === DisplayDensity.cosy;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxPaginatorComponent.prototype, \"classCompact\", {\n get: /**\n * @return {?}\n */\n function () {\n return this.displayDensity === DisplayDensity.compact;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxPaginatorComponent.prototype, \"classComfortable\", {\n get: /**\n * @return {?}\n */\n function () {\n return this.displayDensity === DisplayDensity.comfortable;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxPaginatorComponent.prototype, \"page\", {\n /**\n * An @Input property, sets current page of the `IgxPaginatorComponent`.\n * The default is 0.\n * ```typescript\n * let page = this.paginator.page;\n * ```\n * @memberof IgxPaginatorComponent\n */\n get: /**\n * An \\@Input property, sets current page of the `IgxPaginatorComponent`.\n * The default is 0.\n * ```typescript\n * let page = this.paginator.page;\n * ```\n * \\@memberof IgxPaginatorComponent\n * @return {?}\n */\n function () {\n return this._page;\n },\n set: /**\n * @param {?} value\n * @return {?}\n */\n function (value) {\n this._page = value;\n this.pageChange.emit(this._page);\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxPaginatorComponent.prototype, \"perPage\", {\n /**\n * An @Input property, sets number of visible items per page in the `IgxPaginatorComponent`.\n * The default is 15.\n * ```typescript\n * let itemsPerPage = this.paginator.perPage;\n * ```\n * @memberof IgxPaginatorComponent\n */\n get: /**\n * An \\@Input property, sets number of visible items per page in the `IgxPaginatorComponent`.\n * The default is 15.\n * ```typescript\n * let itemsPerPage = this.paginator.perPage;\n * ```\n * \\@memberof IgxPaginatorComponent\n * @return {?}\n */\n function () {\n return this._perPage;\n },\n set: /**\n * @param {?} value\n * @return {?}\n */\n function (value) {\n this._perPage = Number(value);\n this.perPageChange.emit(this._perPage);\n this._selectOptions = this.sortUniqueOptions(this.defaultSelectValues, this._perPage);\n this.totalPages = Math.ceil(this.totalRecords / this._perPage);\n if (this._page >= this.totalPages) {\n this._page = this.totalPages - 1;\n }\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxPaginatorComponent.prototype, \"totalRecords\", {\n /**\n * An @Input property that sets the total records.\n * ```typescript\n * let totalRecords = this.paginator.totalRecords;\n * ```\n * @memberof IgxPaginatorComponent\n */\n get: /**\n * An \\@Input property that sets the total records.\n * ```typescript\n * let totalRecords = this.paginator.totalRecords;\n * ```\n * \\@memberof IgxPaginatorComponent\n * @return {?}\n */\n function () {\n return this._totalRecords;\n },\n set: /**\n * @param {?} value\n * @return {?}\n */\n function (value) {\n this._totalRecords = value;\n this.totalPages = Math.ceil(this.totalRecords / this.perPage);\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxPaginatorComponent.prototype, \"selectOptions\", {\n /**\n * An @Input property that sets custom options in the select of the paginator\n * ```typescript\n * let options = this.paginator.selectOptions;\n * ```\n * @memberof IgxPaginatorComponent\n */\n get: /**\n * An \\@Input property that sets custom options in the select of the paginator\n * ```typescript\n * let options = this.paginator.selectOptions;\n * ```\n * \\@memberof IgxPaginatorComponent\n * @return {?}\n */\n function () {\n return this._selectOptions;\n },\n set: /**\n * @param {?} value\n * @return {?}\n */\n function (value) {\n this._selectOptions = this.sortUniqueOptions(value, this._perPage);\n this.defaultSelectValues = __spread(this._selectOptions);\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxPaginatorComponent.prototype, \"isLastPage\", {\n /**\n * Returns if the current page is the last page.\n * ```typescript\n * const lastPage = this.paginator.isLastPage;\n * ```\n */\n get: /**\n * Returns if the current page is the last page.\n * ```typescript\n * const lastPage = this.paginator.isLastPage;\n * ```\n * @return {?}\n */\n function () {\n return this.page + 1 >= this.totalPages;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxPaginatorComponent.prototype, \"isFirstPage\", {\n /**\n * Returns if the current page is the first page.\n * ```typescript\n * const lastPage = this.paginator.isFirstPage;\n * ```\n */\n get: /**\n * Returns if the current page is the first page.\n * ```typescript\n * const lastPage = this.paginator.isFirstPage;\n * ```\n * @return {?}\n */\n function () {\n return this.page === 0;\n },\n enumerable: true,\n configurable: true\n });\n /**\n * @private\n * @param {?} values\n * @param {?} newOption\n * @return {?}\n */\n IgxPaginatorComponent.prototype.sortUniqueOptions = /**\n * @private\n * @param {?} values\n * @param {?} newOption\n * @return {?}\n */\n function (values, newOption) {\n return Array.from(new Set(__spread(values, [newOption]))).sort(function (a, b) { return a - b; });\n };\n /**\n * Sets DisplayDensity for the inside the paginator\n * @hidden\n * @return {?}\n */\n IgxPaginatorComponent.prototype.paginatorSelectDisplayDensity = /**\n * Sets DisplayDensity for the \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n\\n\\n 0\\\">\\n
\\n
\\n
\\n \\n \\n
\\n
\\n \\n \\n
\\n \\n \\n \\n \\n
\\n\\n\\n\\n expand_more\\n\\n\\n chevron_right\\n\\n\",\n providers: [HammerGesturesManager]\n }] }\n ];\n /** @nocollapse */\n IgxTreeGridCellComponent.ctorParameters = function () { return [\n { type: IgxGridSelectionService },\n { type: IgxGridCRUDService },\n { type: GridBaseAPIService },\n { type: ChangeDetectorRef },\n { type: ElementRef },\n { type: NgZone },\n { type: HammerGesturesManager },\n { type: undefined, decorators: [{ type: Inject, args: [DOCUMENT,] }] },\n { type: PlatformUtil }\n ]; };\n IgxTreeGridCellComponent.propDecorators = {\n expanded: [{ type: Input }],\n level: [{ type: Input }],\n showIndicator: [{ type: Input }],\n indicator: [{ type: ViewChild, args: ['indicator', { read: ElementRef, static: false },] }],\n indentationDiv: [{ type: ViewChild, args: ['indentationDiv', { read: ElementRef, static: false },] }],\n defaultContentElement: [{ type: ViewChild, args: ['defaultContentElement', { read: ElementRef, static: false },] }],\n defaultExpandedTemplate: [{ type: ViewChild, args: ['defaultExpandedTemplate', { read: TemplateRef, static: true },] }],\n defaultCollapsedTemplate: [{ type: ViewChild, args: ['defaultCollapsedTemplate', { read: TemplateRef, static: true },] }],\n isLoading: [{ type: Input }]\n };\n return IgxTreeGridCellComponent;\n}(IgxGridCellComponent));\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n/**\n * @hidden\n */\nvar IgxTreeGridSummaryPipe = /** @class */ (function () {\n function IgxTreeGridSummaryPipe(gridAPI) {\n this.gridAPI = (/** @type {?} */ (gridAPI));\n }\n /**\n * @param {?} flatData\n * @param {?} hasSummary\n * @param {?} summaryCalculationMode\n * @param {?} summaryPosition\n * @param {?} id\n * @param {?} pipeTrigger\n * @param {?} summaryPipeTrigger\n * @return {?}\n */\n IgxTreeGridSummaryPipe.prototype.transform = /**\n * @param {?} flatData\n * @param {?} hasSummary\n * @param {?} summaryCalculationMode\n * @param {?} summaryPosition\n * @param {?} id\n * @param {?} pipeTrigger\n * @param {?} summaryPipeTrigger\n * @return {?}\n */\n function (flatData, hasSummary, summaryCalculationMode, summaryPosition, id, pipeTrigger, summaryPipeTrigger) {\n /** @type {?} */\n var grid = this.gridAPI.grid;\n if (!flatData || !hasSummary || summaryCalculationMode === GridSummaryCalculationMode.rootLevelOnly) {\n return flatData;\n }\n return this.addSummaryRows(grid, flatData, summaryPosition);\n };\n /**\n * @private\n * @param {?} grid\n * @param {?} collection\n * @param {?} summaryPosition\n * @return {?}\n */\n IgxTreeGridSummaryPipe.prototype.addSummaryRows = /**\n * @private\n * @param {?} grid\n * @param {?} collection\n * @param {?} summaryPosition\n * @return {?}\n */\n function (grid, collection, summaryPosition) {\n /** @type {?} */\n var recordsWithSummary = [];\n /** @type {?} */\n var maxSummaryHeight = grid.summaryService.calcMaxSummaryHeight();\n for (var i = 0; i < collection.length; i++) {\n /** @type {?} */\n var record = collection[i];\n recordsWithSummary.push(record);\n /** @type {?} */\n var isExpanded = record.children && record.children.length > 0 && record.expanded;\n if (summaryPosition === GridSummaryPosition.bottom && !isExpanded) {\n /** @type {?} */\n var childRecord = record;\n /** @type {?} */\n var parent_1 = record.parent;\n while (parent_1) {\n /** @type {?} */\n var children = parent_1.children;\n if (children[children.length - 1] === childRecord) {\n /** @type {?} */\n var childData = children.filter(function (r) { return !r.isFilteredOutParent; }).map(function (r) { return r.data; });\n childData = this.removeDeletedRecord(grid, parent_1.rowID, childData);\n /** @type {?} */\n var summaries = grid.summaryService.calculateSummaries(parent_1.rowID, childData);\n /** @type {?} */\n var summaryRecord = {\n summaries: summaries,\n max: maxSummaryHeight,\n cellIndentation: parent_1.level + 1\n };\n recordsWithSummary.push(summaryRecord);\n childRecord = parent_1;\n parent_1 = childRecord.parent;\n }\n else {\n break;\n }\n }\n }\n else if (summaryPosition === GridSummaryPosition.top && isExpanded) {\n /** @type {?} */\n var childData = record.children.filter(function (r) { return !r.isFilteredOutParent; }).map(function (r) { return r.data; });\n childData = this.removeDeletedRecord(grid, record.rowID, childData);\n /** @type {?} */\n var summaries = grid.summaryService.calculateSummaries(record.rowID, childData);\n /** @type {?} */\n var summaryRecord = {\n summaries: summaries,\n max: maxSummaryHeight,\n cellIndentation: record.level + 1\n };\n recordsWithSummary.push(summaryRecord);\n }\n }\n return recordsWithSummary;\n };\n /**\n * @private\n * @param {?} grid\n * @param {?} rowId\n * @param {?} data\n * @return {?}\n */\n IgxTreeGridSummaryPipe.prototype.removeDeletedRecord = /**\n * @private\n * @param {?} grid\n * @param {?} rowId\n * @param {?} data\n * @return {?}\n */\n function (grid, rowId, data) {\n if (!grid.transactions.enabled || !grid.cascadeOnDelete) {\n return data;\n }\n /** @type {?} */\n var deletedRows = grid.transactions.getTransactionLog().filter(function (t) { return t.type === 'delete'; }).map(function (t) { return t.id; });\n /** @type {?} */\n var row = grid.records.get(rowId);\n if (!row && deletedRows.lenght === 0) {\n return [];\n }\n row = row.children ? row : row.parent;\n while (row) {\n rowId = row.rowID;\n if (deletedRows.indexOf(rowId) !== -1) {\n return [];\n }\n row = row.parent;\n }\n deletedRows.forEach(function (rowID) {\n /** @type {?} */\n var tempData = grid.primaryKey ? data.map(function (rec) { return rec[grid.primaryKey]; }) : data;\n /** @type {?} */\n var index = tempData.indexOf(rowID);\n if (index !== -1) {\n data.splice(index, 1);\n }\n });\n return data;\n };\n IgxTreeGridSummaryPipe.decorators = [\n { type: Pipe, args: [{\n name: 'treeGridSummary',\n pure: true\n },] }\n ];\n /** @nocollapse */\n IgxTreeGridSummaryPipe.ctorParameters = function () { return [\n { type: GridBaseAPIService }\n ]; };\n return IgxTreeGridSummaryPipe;\n}());\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n/**\n * @hidden\n */\nvar IgxTreeGridModule = /** @class */ (function () {\n function IgxTreeGridModule() {\n }\n IgxTreeGridModule.decorators = [\n { type: NgModule, args: [{\n declarations: [\n IgxTreeGridComponent,\n IgxTreeGridRowComponent,\n IgxTreeGridCellComponent,\n IgxTreeGridHierarchizingPipe,\n IgxTreeGridFlatteningPipe,\n IgxTreeGridSortingPipe,\n IgxTreeGridFilteringPipe,\n IgxTreeGridPagingPipe,\n IgxTreeGridTransactionPipe,\n IgxTreeGridSummaryPipe,\n IgxRowLoadingIndicatorTemplateDirective\n ],\n exports: [\n IgxTreeGridComponent,\n IgxTreeGridRowComponent,\n IgxTreeGridCellComponent,\n IgxRowLoadingIndicatorTemplateDirective,\n IgxGridCommonModule\n ],\n imports: [\n CommonModule,\n FormsModule,\n IgxChipsModule,\n IgxGridCommonModule,\n IgxSelectModule\n ]\n },] }\n ];\n return IgxTreeGridModule;\n}());\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\nvar IgxHierarchicalGridNavigationService = /** @class */ (function (_super) {\n __extends(IgxHierarchicalGridNavigationService, _super);\n function IgxHierarchicalGridNavigationService() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n /**\n * @protected\n * @param {?=} visibleIndex\n * @param {?=} isSummary\n * @return {?}\n */\n IgxHierarchicalGridNavigationService.prototype.getCellSelector = /**\n * @protected\n * @param {?=} visibleIndex\n * @param {?=} isSummary\n * @return {?}\n */\n function (visibleIndex, isSummary) {\n if (isSummary === void 0) { isSummary = false; }\n return isSummary ? 'igx-grid-summary-cell' : 'igx-hierarchical-grid-cell';\n };\n /**\n * @protected\n * @return {?}\n */\n IgxHierarchicalGridNavigationService.prototype.getRowSelector = /**\n * @protected\n * @return {?}\n */\n function () {\n return 'igx-hierarchical-grid-row';\n };\n /**\n * @protected\n * @param {?} index\n * @return {?}\n */\n IgxHierarchicalGridNavigationService.prototype.getRowByIndex = /**\n * @protected\n * @param {?} index\n * @return {?}\n */\n function (index) {\n var _this = this;\n /** @type {?} */\n var selector = this.getRowSelector();\n /** @type {?} */\n var rows = Array.from(this.grid.nativeElement.querySelectorAll(selector + \"[data-rowindex=\\\"\" + index + \"\\\"]\"));\n /** @type {?} */\n var row;\n rows.forEach(function (r) {\n /** @type {?} */\n var parentGrid = _this.getClosestElemByTag(r, 'igx-hierarchical-grid');\n if (parentGrid && parentGrid.getAttribute('id') === _this.grid.id) {\n row = r;\n }\n });\n return row;\n };\n /**\n * @private\n * @param {?=} grid\n * @return {?}\n */\n IgxHierarchicalGridNavigationService.prototype.getChildContainer = /**\n * @private\n * @param {?=} grid\n * @return {?}\n */\n function (grid) {\n /** @type {?} */\n var currGrid = grid || this.grid;\n return currGrid.nativeElement.parentNode.parentNode.parentNode;\n };\n /**\n * @private\n * @param {?=} grid\n * @return {?}\n */\n IgxHierarchicalGridNavigationService.prototype.getChildGridRowContainer = /**\n * @private\n * @param {?=} grid\n * @return {?}\n */\n function (grid) {\n /** @type {?} */\n var currGrid = grid || this.grid;\n return currGrid.nativeElement.parentNode.parentNode;\n };\n /**\n * @private\n * @param {?} childGridID\n * @param {?} grid\n * @return {?}\n */\n IgxHierarchicalGridNavigationService.prototype.getChildGrid = /**\n * @private\n * @param {?} childGridID\n * @param {?} grid\n * @return {?}\n */\n function (childGridID, grid) {\n /** @type {?} */\n var cgrid = grid.hgridAPI.getChildGrids(true).filter(function (g) { return g.id === childGridID; })[0];\n return cgrid;\n };\n /**\n * @private\n * @param {?} grid\n * @return {?}\n */\n IgxHierarchicalGridNavigationService.prototype._isScrolledToBottom = /**\n * @private\n * @param {?} grid\n * @return {?}\n */\n function (grid) {\n /** @type {?} */\n var scrollTop = grid.verticalScrollContainer.scrollPosition;\n /** @type {?} */\n var scrollHeight = grid.verticalScrollContainer.getScroll().scrollHeight;\n return scrollHeight === 0 || Math.round(scrollTop + grid.verticalScrollContainer.igxForContainerSize) === scrollHeight;\n };\n /**\n * @private\n * @param {?} index\n * @return {?}\n */\n IgxHierarchicalGridNavigationService.prototype.getIsChildAtIndex = /**\n * @private\n * @param {?} index\n * @return {?}\n */\n function (index) {\n return this.grid.isChildGridRecord(this.grid.dataView[index]);\n };\n /**\n * @param {?} rowIndex\n * @param {?} visibleColumnIndex\n * @param {?=} isSummary\n * @return {?}\n */\n IgxHierarchicalGridNavigationService.prototype.getCellElementByVisibleIndex = /**\n * @param {?} rowIndex\n * @param {?} visibleColumnIndex\n * @param {?=} isSummary\n * @return {?}\n */\n function (rowIndex, visibleColumnIndex, isSummary) {\n if (isSummary === void 0) { isSummary = false; }\n /** @type {?} */\n var cellSelector = this.getCellSelector(visibleColumnIndex, isSummary);\n if (isSummary) {\n /** @type {?} */\n var summaryRow = this.grid.summariesRowList.toArray()[0].nativeElement;\n return summaryRow.querySelector(cellSelector + \"[data-visibleIndex=\\\"\" + visibleColumnIndex + \"\\\"]\");\n }\n /** @type {?} */\n var row = this.getRowByIndex(rowIndex);\n return row.querySelector(cellSelector + \"[data-rowindex=\\\"\" + rowIndex + \"\\\"][data-visibleIndex=\\\"\" + visibleColumnIndex + \"\\\"]\");\n };\n /**\n * @param {?} rowElement\n * @param {?} selectedNode\n * @return {?}\n */\n IgxHierarchicalGridNavigationService.prototype.navigateUp = /**\n * @param {?} rowElement\n * @param {?} selectedNode\n * @return {?}\n */\n function (rowElement, selectedNode) {\n var _this = this;\n if (selectedNode.isSummaryRow) {\n return;\n }\n /** @type {?} */\n var prevElem = rowElement.previousElementSibling;\n /** @type {?} */\n var visibleColumnIndex = selectedNode.column;\n /** @type {?} */\n var currentRowIndex = selectedNode.row;\n if (prevElem) {\n /** @type {?} */\n var nodeName = prevElem.children[0].nodeName.toLowerCase();\n /** @type {?} */\n var isElemChildGrid = nodeName.toLowerCase() === 'igx-child-grid-row';\n if (isElemChildGrid) {\n this.focusPrevChild(prevElem, visibleColumnIndex, this.grid);\n }\n else {\n if (this.grid.parent !== null) {\n // currently navigating in child grid\n this._navigateUpInChild(rowElement, currentRowIndex, visibleColumnIndex);\n }\n else {\n _super.prototype.navigateUp.call(this, rowElement, selectedNode);\n }\n }\n }\n else if (currentRowIndex !== 0) {\n // handle scenario when prev item is child grid but is not yet in view\n /** @type {?} */\n var isPrevChildGrid = this.getIsChildAtIndex(currentRowIndex - 1);\n if (!isPrevChildGrid) {\n _super.prototype.navigateUp.call(this, rowElement, selectedNode);\n }\n else {\n this.scrollGrid(this.grid, -rowElement.offsetHeight, function () {\n rowElement = _this.getRowByIndex(currentRowIndex);\n _this.navigateUp(rowElement, selectedNode);\n });\n }\n }\n else if (this.grid.parent !== null &&\n currentRowIndex === 0) {\n // move to prev row in sibling layout or parent\n this.focusPrev(visibleColumnIndex);\n }\n };\n /**\n * @param {?} rowElement\n * @param {?} selectedNode\n * @return {?}\n */\n IgxHierarchicalGridNavigationService.prototype.navigateDown = /**\n * @param {?} rowElement\n * @param {?} selectedNode\n * @return {?}\n */\n function (rowElement, selectedNode) {\n if (selectedNode.isSummaryRow) {\n return;\n }\n /** @type {?} */\n var nextElem = rowElement.nextElementSibling;\n /** @type {?} */\n var visibleColumnIndex = selectedNode.column;\n /** @type {?} */\n var currentRowIndex = selectedNode.row;\n if (nextElem) {\n // next elem is in DOM\n /** @type {?} */\n var nodeName = nextElem.children[0].nodeName.toLowerCase();\n /** @type {?} */\n var isNextElemChildGrid = nodeName.toLowerCase() === 'igx-child-grid-row';\n if (isNextElemChildGrid) {\n this.focusNextChild(nextElem, visibleColumnIndex, this.grid);\n }\n else {\n if (this.grid.parent !== null) {\n // currently navigating in child grid\n this._navigateDownInChild(rowElement, currentRowIndex, visibleColumnIndex);\n }\n else {\n _super.prototype.navigateDown.call(this, rowElement, selectedNode);\n }\n }\n }\n else if (currentRowIndex !== this.grid.dataView.length - 1) {\n // scroll next in view\n _super.prototype.navigateDown.call(this, rowElement, selectedNode);\n }\n else if (this.grid.parent !== null &&\n currentRowIndex === this.grid.dataView.length - 1) {\n // move to next row in sibling layout or in parent\n this.focusNext(visibleColumnIndex);\n }\n };\n /**\n * @param {?} visibleColumnIndex\n * @return {?}\n */\n IgxHierarchicalGridNavigationService.prototype.navigateTop = /**\n * @param {?} visibleColumnIndex\n * @return {?}\n */\n function (visibleColumnIndex) {\n var _this = this;\n if (this.grid.parent !== null) {\n // navigating in child\n /** @type {?} */\n var childContainer = this.grid.nativeElement.parentNode.parentNode;\n /** @type {?} */\n var diff = childContainer.getBoundingClientRect().top - this.grid.rootGrid.tbody.nativeElement.getBoundingClientRect().top;\n /** @type {?} */\n var topIsVisible = diff >= 0;\n /** @type {?} */\n var scrollable = this.getNextScrollable(this.grid);\n if (!topIsVisible) {\n this.scrollGrid(scrollable.grid, diff, function () { return _super.prototype.navigateTop.call(_this, visibleColumnIndex); });\n }\n else {\n _super.prototype.navigateTop.call(this, visibleColumnIndex);\n }\n }\n else {\n _super.prototype.navigateTop.call(this, visibleColumnIndex);\n }\n };\n /**\n * @param {?} visibleColumnIndex\n * @return {?}\n */\n IgxHierarchicalGridNavigationService.prototype.navigateBottom = /**\n * @param {?} visibleColumnIndex\n * @return {?}\n */\n function (visibleColumnIndex) {\n var _this = this;\n // handle scenario where last index is child grid\n // in that case focus cell in last data row\n /** @type {?} */\n var lastIndex = this.grid.dataView.length - 1;\n if (this.getIsChildAtIndex(lastIndex)) {\n /** @type {?} */\n var targetIndex_1 = lastIndex - 1;\n /** @type {?} */\n var scrTopPosition = this.grid.verticalScrollContainer.getScrollForIndex(targetIndex_1, true);\n /** @type {?} */\n var verticalScrollTop = this.grid.verticalScrollContainer.scrollPosition;\n /** @type {?} */\n var cellSelector_1 = this.getCellSelector(visibleColumnIndex);\n if (verticalScrollTop === scrTopPosition) {\n /** @type {?} */\n var cells = this.getRowByIndex(targetIndex_1).querySelectorAll(cellSelector_1 + \"[data-visibleIndex=\\\"\" + visibleColumnIndex + \"\\\"]\");\n cells[cells.length - 1].focus();\n }\n else {\n this.scrollGrid(this.grid, scrTopPosition - verticalScrollTop, function () {\n /** @type {?} */\n var cells = _this.getRowByIndex(targetIndex_1).querySelectorAll(cellSelector_1 + \"[data-visibleIndex=\\\"\" + visibleColumnIndex + \"\\\"]\");\n if (cells.length > 0) {\n cells[cells.length - 1].focus();\n }\n });\n }\n }\n else if (this.grid.parent !== null) {\n /** @type {?} */\n var childContainer = this.grid.nativeElement.parentNode.parentNode;\n /** @type {?} */\n var diff = childContainer.getBoundingClientRect().bottom - this.grid.rootGrid.tbody.nativeElement.getBoundingClientRect().bottom;\n /** @type {?} */\n var endIsVisible = diff < 0;\n /** @type {?} */\n var scrollable = this.getNextScrollableDown(this.grid);\n if (!endIsVisible) {\n this.scrollGrid(scrollable.grid, diff, function () { return _super.prototype.navigateBottom.call(_this, visibleColumnIndex); });\n }\n else {\n _super.prototype.navigateBottom.call(this, visibleColumnIndex);\n }\n }\n else {\n _super.prototype.navigateBottom.call(this, visibleColumnIndex);\n }\n };\n /**\n * @return {?}\n */\n IgxHierarchicalGridNavigationService.prototype.goToLastCell = /**\n * @return {?}\n */\n function () {\n var _this = this;\n // handle scenario where last index is child grid\n // in that case focus last cell in last data row\n /** @type {?} */\n var lastIndex = this.grid.dataView.length - 1;\n if (this.getIsChildAtIndex(lastIndex)) {\n /** @type {?} */\n var targetIndex_2 = lastIndex - 1;\n /** @type {?} */\n var scrTopPosition = this.grid.verticalScrollContainer.getScrollForIndex(targetIndex_2, true);\n /** @type {?} */\n var verticalScrollTop = this.grid.verticalScrollContainer.scrollPosition;\n if (verticalScrollTop === scrTopPosition) {\n this.onKeydownEnd(targetIndex_2);\n }\n else {\n this.scrollGrid(this.grid, scrTopPosition - verticalScrollTop, function () {\n _this.onKeydownEnd(targetIndex_2);\n });\n }\n }\n else {\n _super.prototype.goToLastCell.call(this);\n }\n };\n /**\n * @param {?} rowIndex\n * @param {?=} isSummary\n * @return {?}\n */\n IgxHierarchicalGridNavigationService.prototype.onKeydownEnd = /**\n * @param {?} rowIndex\n * @param {?=} isSummary\n * @return {?}\n */\n function (rowIndex, isSummary) {\n var _this = this;\n if (isSummary === void 0) { isSummary = false; }\n if (this.grid.parent && !isSummary) {\n // handle scenario where last child row might not be in view\n // parent should scroll to child grid end\n /** @type {?} */\n var childContainer = this.grid.nativeElement.parentNode.parentNode;\n /** @type {?} */\n var diffBottom = childContainer.getBoundingClientRect().bottom - this.grid.rootGrid.nativeElement.getBoundingClientRect().bottom;\n /** @type {?} */\n var row = this.grid.getRowByIndex(rowIndex).element.nativeElement;\n /** @type {?} */\n var rowBottom = row.getBoundingClientRect().bottom;\n /** @type {?} */\n var rowIsVisible = rowBottom <= this.grid.rootGrid.tbody.nativeElement.getBoundingClientRect().bottom;\n /** @type {?} */\n var gridTop = this._getMaxTop(this.grid);\n /** @type {?} */\n var diffTop = row.getBoundingClientRect().bottom -\n row.offsetHeight - gridTop;\n /** @type {?} */\n var endIsVisible = diffBottom <= 0;\n /** @type {?} */\n var topVisible = diffTop >= 0;\n if (!endIsVisible && !rowIsVisible) {\n this.scrollGrid(this.grid.parent, diffBottom, function () { return _super.prototype.onKeydownEnd.call(_this, rowIndex); });\n }\n else if (!topVisible) {\n /** @type {?} */\n var scrGrid = this.grid.verticalScrollContainer.scrollPosition !== 0 ? this.grid :\n this.getNextScrollable(this.grid).grid;\n /** @type {?} */\n var topGrid = scrGrid.tbody.nativeElement.getBoundingClientRect().top >\n this.grid.rootGrid.tbody.nativeElement.getBoundingClientRect().top ? scrGrid : this.grid.rootGrid;\n this.scrollGrid(topGrid, diffTop, function () { return _super.prototype.onKeydownEnd.call(_this, rowIndex); });\n }\n else {\n _super.prototype.onKeydownEnd.call(this, rowIndex, isSummary);\n }\n }\n else {\n _super.prototype.onKeydownEnd.call(this, rowIndex, isSummary);\n }\n };\n /**\n * @return {?}\n */\n IgxHierarchicalGridNavigationService.prototype.goToFirstCell = /**\n * @return {?}\n */\n function () {\n var _this = this;\n /** @type {?} */\n var verticalScroll = this.grid.verticalScrollContainer.getScroll();\n /** @type {?} */\n var horizontalScroll = this.grid.dataRowList.first.virtDirRow.getScroll();\n if (verticalScroll.scrollTop === 0 && this.grid.parent) {\n // scroll parent so that current child is in view\n if (!horizontalScroll.clientWidth || parseInt(horizontalScroll.scrollLeft, 10) <= 1 || this.grid.pinnedColumns.length) {\n this.navigateTop(0);\n }\n else {\n this.horizontalScroll(this.grid.dataRowList.first.index).scrollTo(0);\n this.grid.parentVirtDir.onChunkLoad\n .pipe(first$1())\n .subscribe(function () {\n _this.navigateTop(0);\n });\n }\n }\n else {\n _super.prototype.goToFirstCell.call(this);\n }\n };\n /**\n * @param {?} currentRowEl\n * @param {?} selectedNode\n * @return {?}\n */\n IgxHierarchicalGridNavigationService.prototype.performTab = /**\n * @param {?} currentRowEl\n * @param {?} selectedNode\n * @return {?}\n */\n function (currentRowEl, selectedNode) {\n var _this = this;\n if (this.grid.rowInEditMode) {\n _super.prototype.performTab.call(this, currentRowEl, selectedNode);\n return;\n }\n /** @type {?} */\n var rowIndex = selectedNode.row;\n /** @type {?} */\n var visibleColumnIndex = selectedNode.column;\n /** @type {?} */\n var isSummaryRow = selectedNode.isSummaryRow;\n /** @type {?} */\n var summaryRows = this.grid.summariesRowList.toArray();\n /** @type {?} */\n var hasSummaries = summaryRows.length > 0;\n /** @type {?} */\n var isLastDataRow = rowIndex === this.grid.dataView.length - 1;\n /** @type {?} */\n var nextIsDataRow = this.grid.dataRowList.find(function (row) { return row.index === rowIndex + 1; });\n /** @type {?} */\n var isLastColumn = this.grid.unpinnedColumns[this.grid.unpinnedColumns.length - 1].visibleIndex === visibleColumnIndex;\n /** @type {?} */\n var isLastSummaryRow = hasSummaries && isSummaryRow;\n /** @type {?} */\n var nextIndex = rowIndex + 1;\n /** @type {?} */\n var virt = this.grid.verticalScrollContainer;\n /** @type {?} */\n var isNextChild = nextIndex <= virt.igxForOf.length - 1 &&\n this.grid.isChildGridRecord(virt.igxForOf[nextIndex]);\n if (!nextIsDataRow && !(isLastDataRow && hasSummaries) && isLastColumn && !isSummaryRow) {\n // navigating in child, next is not summary\n /** @type {?} */\n var childContainer = this.getChildGridRowContainer();\n /** @type {?} */\n var nextIsSiblingChild = this.grid.parent ? !!childContainer.nextElementSibling : false;\n if (nextIsSiblingChild) {\n this.focusNextChildDOMElem(childContainer, this.grid.parent);\n }\n else if (isNextChild) {\n /** @type {?} */\n var isInView = virt.state.startIndex + virt.state.chunkSize > nextIndex;\n if (!isInView) {\n this.scrollGrid(this.grid, 'next', function () {\n _this.focusNextChildDOMElem(currentRowEl, _this.grid);\n });\n }\n else {\n this.focusNextChildDOMElem(currentRowEl, this.grid);\n }\n }\n else if (this.grid.parent && this.grid.parent.summariesRowList.length > 0) {\n this._navigateToNextParentRow(currentRowEl);\n }\n else {\n this.navigateDown(currentRowEl, { row: rowIndex, column: 0 });\n }\n }\n else if (isLastSummaryRow && isLastColumn && this.grid.parent) {\n this._navigateToNextParentRow(currentRowEl);\n }\n else if (isLastDataRow && hasSummaries && isLastColumn && this.grid.parent) {\n // navigating in child rows, next is child grid's summary row\n this.focusNextRow(summaryRows[0].nativeElement, 0, this.grid.parent, true);\n }\n else {\n _super.prototype.performTab.call(this, currentRowEl, selectedNode);\n }\n };\n /**\n * @private\n * @param {?} currentRowEl\n * @return {?}\n */\n IgxHierarchicalGridNavigationService.prototype._navigateToNextParentRow = /**\n * @private\n * @param {?} currentRowEl\n * @return {?}\n */\n function (currentRowEl) {\n // next is parent summary or next parent row\n /** @type {?} */\n var parent = this.grid.parent;\n /** @type {?} */\n var parentHasSummary = parent.summariesRowList.length > 0;\n /** @type {?} */\n var parentRowIndex = parseInt(this.getClosestElemByTag(currentRowEl, 'igx-child-grid-row').parentNode.getAttribute('data-rowindex'), 10);\n /** @type {?} */\n var isLastRowInParent = parent.dataView.length - 1 === parentRowIndex;\n // check if next is sibling\n /** @type {?} */\n var childRowContainer = this.getChildGridRowContainer(this.grid);\n /** @type {?} */\n var nextIsSiblingChild = !!childRowContainer.nextElementSibling;\n if (isLastRowInParent && parentHasSummary && !nextIsSiblingChild) {\n // next is parent summary\n /** @type {?} */\n var parentSummary = parent.summariesRowList.first.nativeElement;\n parent.navigation.focusNextRow(parentSummary, 0, parent, true);\n }\n else {\n // next is sibling or parent\n this.focusNext(0);\n }\n };\n /**\n * @private\n * @param {?} currentRowEl\n * @param {?} grid\n * @return {?}\n */\n IgxHierarchicalGridNavigationService.prototype.focusNextChildDOMElem = /**\n * @private\n * @param {?} currentRowEl\n * @param {?} grid\n * @return {?}\n */\n function (currentRowEl, grid) {\n /** @type {?} */\n var gridElem = currentRowEl.nextElementSibling.querySelector('igx-hierarchical-grid');\n /** @type {?} */\n var childGridID = gridElem.getAttribute('id');\n /** @type {?} */\n var childGrid = this.getChildGrid(childGridID, grid);\n if (childGrid.allowFiltering && childGrid.filterMode === FilterMode.quickFilter) {\n childGrid.navigation.moveFocusToFilterCell(true);\n return;\n }\n this.focusNextChild(currentRowEl.nextElementSibling, 0, grid);\n };\n /**\n * @param {?} column\n * @param {?} eventArgs\n * @return {?}\n */\n IgxHierarchicalGridNavigationService.prototype.navigatePrevFilterCell = /**\n * @param {?} column\n * @param {?} eventArgs\n * @return {?}\n */\n function (column, eventArgs) {\n if (column.visibleIndex === 0 && this.grid.parent) {\n eventArgs.preventDefault();\n /** @type {?} */\n var targetGrid = this.grid.parent;\n /** @type {?} */\n var prevSiblingChild = this.getChildGridRowContainer().previousElementSibling;\n if (prevSiblingChild) {\n /** @type {?} */\n var gridElem = prevSiblingChild.querySelectorAll('igx-hierarchical-grid')[0];\n targetGrid = this.getChildGrid(gridElem.getAttribute('id'), this.grid.parent);\n }\n this.focusPrev(targetGrid.unpinnedColumns[targetGrid.unpinnedColumns.length - 1].visibleIndex);\n }\n else {\n _super.prototype.navigatePrevFilterCell.call(this, column, eventArgs);\n }\n };\n /**\n * @param {?} column\n * @param {?} eventArgs\n * @return {?}\n */\n IgxHierarchicalGridNavigationService.prototype.navigateNextFilterCell = /**\n * @param {?} column\n * @param {?} eventArgs\n * @return {?}\n */\n function (column, eventArgs) {\n /** @type {?} */\n var cols = this.grid.filteringService.unpinnedFilterableColumns;\n /** @type {?} */\n var nextFilterableIndex = cols.indexOf(column) + 1;\n if (nextFilterableIndex >= this.grid.filteringService.unpinnedFilterableColumns.length) {\n // next is not filter cell\n /** @type {?} */\n var dataRows = this.grid.rowList.toArray();\n /** @type {?} */\n var hasRows = dataRows.length !== 0;\n /** @type {?} */\n var summaryRows = this.grid.summariesRowList.toArray();\n /** @type {?} */\n var hasSummaries = summaryRows.length > 0 && summaryRows[0].summaryCells.length > 0;\n if (hasRows) {\n this.focusNextRow(dataRows[0].nativeElement, 0, this.grid, false);\n }\n else if (hasSummaries) {\n this.focusNextRow(summaryRows[0].nativeElement, 0, this.grid, true);\n }\n else {\n this.focusNext(0);\n }\n eventArgs.preventDefault();\n }\n else {\n _super.prototype.navigateNextFilterCell.call(this, column, eventArgs);\n }\n };\n /**\n * @param {?} currentRowEl\n * @param {?} selectedNode\n * @return {?}\n */\n IgxHierarchicalGridNavigationService.prototype.performShiftTabKey = /**\n * @param {?} currentRowEl\n * @param {?} selectedNode\n * @return {?}\n */\n function (currentRowEl, selectedNode) {\n var _this = this;\n if (this.grid.rowInEditMode) {\n _super.prototype.performShiftTabKey.call(this, currentRowEl, selectedNode);\n return;\n }\n /** @type {?} */\n var rowIndex = selectedNode.row;\n /** @type {?} */\n var visibleColumnIndex = selectedNode.column;\n /** @type {?} */\n var isSummary = selectedNode.isSummaryRow;\n if (visibleColumnIndex === 0 && rowIndex === 0 && this.grid.parent && !isSummary) {\n if (this.grid.allowFiltering && this.grid.filterMode === FilterMode.quickFilter) {\n this.moveFocusToFilterCell();\n }\n else {\n /** @type {?} */\n var prevSiblingChild = this.getChildGridRowContainer().previousElementSibling;\n if (prevSiblingChild) {\n /** @type {?} */\n var gridElem = prevSiblingChild.querySelectorAll('igx-hierarchical-grid')[0];\n this.performShiftTabIntoChild(gridElem, currentRowEl, rowIndex);\n }\n else {\n /** @type {?} */\n var selNode = {\n row: rowIndex,\n column: this.grid.parent.unpinnedColumns[this.grid.parent.unpinnedColumns.length - 1].visibleIndex\n };\n this.navigateUp(currentRowEl, selNode);\n }\n }\n }\n else if (visibleColumnIndex === 0 && currentRowEl.previousElementSibling &&\n currentRowEl.previousElementSibling.children[0].tagName.toLowerCase() === 'igx-child-grid-row') {\n /** @type {?} */\n var gridElem = this.getLastGridElem(currentRowEl.previousElementSibling);\n this.performShiftTabIntoChild(gridElem, currentRowEl, rowIndex);\n }\n else if (visibleColumnIndex === 0 && isSummary) {\n /** @type {?} */\n var lastRowIndex_1 = this.grid.dataView.length - 1;\n if (lastRowIndex_1 === -1) {\n // no child data\n if (this.grid.allowFiltering && this.grid.filterMode === FilterMode.quickFilter) {\n this.moveFocusToFilterCell();\n }\n else {\n /** @type {?} */\n var selNode = {\n row: rowIndex,\n column: this.grid.parent.unpinnedColumns[this.grid.parent.unpinnedColumns.length - 1].visibleIndex\n };\n this.navigateUp(currentRowEl, selNode);\n }\n }\n else if (!this.getIsChildAtIndex(lastRowIndex_1)) {\n _super.prototype.goToLastCell.call(this);\n }\n else {\n /** @type {?} */\n var scrTopPosition = this.grid.verticalScrollContainer.getScrollForIndex(lastRowIndex_1, true);\n /** @type {?} */\n var verticalScrollTop = this.grid.verticalScrollContainer.scrollPosition;\n if (verticalScrollTop === scrTopPosition || isNaN(scrTopPosition)) {\n /** @type {?} */\n var closestChild = this.getLastGridElem(this.grid.getRowByIndex(lastRowIndex_1).nativeElement.parentElement);\n this.performShiftTabIntoChild(closestChild, currentRowEl, rowIndex);\n }\n else {\n this.scrollGrid(this.grid, scrTopPosition - verticalScrollTop, function () {\n /** @type {?} */\n var closestChild = _this.getLastGridElem(_this.grid.getRowByIndex(lastRowIndex_1).nativeElement.parentElement);\n _this.performShiftTabIntoChild(closestChild, currentRowEl, rowIndex);\n });\n }\n }\n }\n else {\n _super.prototype.performShiftTabKey.call(this, currentRowEl, selectedNode);\n }\n };\n /**\n * @return {?}\n */\n IgxHierarchicalGridNavigationService.prototype.getFocusableGrid = /**\n * @return {?}\n */\n function () {\n return (isIE() && this.grid.rootGrid) ? this.grid.rootGrid : this.grid;\n };\n /**\n * @private\n * @param {?} trContainer\n * @return {?}\n */\n IgxHierarchicalGridNavigationService.prototype.getLastGridElem = /**\n * @private\n * @param {?} trContainer\n * @return {?}\n */\n function (trContainer) {\n /** @type {?} */\n var children = trContainer.children;\n /** @type {?} */\n var closestChild = children[children.length - 1].children[0].children[0];\n return closestChild;\n };\n /**\n * @private\n * @param {?} gridElem\n * @param {?} currentRowEl\n * @param {?} rowIndex\n * @return {?}\n */\n IgxHierarchicalGridNavigationService.prototype.performShiftTabIntoChild = /**\n * @private\n * @param {?} gridElem\n * @param {?} currentRowEl\n * @param {?} rowIndex\n * @return {?}\n */\n function (gridElem, currentRowEl, rowIndex) {\n /** @type {?} */\n var childGridID = gridElem.getAttribute('id');\n /** @type {?} */\n var childGrid = this.getChildGrid(childGridID, this.grid) || this.getChildGrid(childGridID, this.grid.parent);\n /** @type {?} */\n var lastIndex = childGrid.unpinnedColumns[childGrid.unpinnedColumns.length - 1].visibleIndex;\n /** @type {?} */\n var summaryRows = childGrid.summariesRowList.toArray();\n if (summaryRows.length > 0 && summaryRows[0].summaryCells.length > 0) {\n // move focus to last summary row cell\n /** @type {?} */\n var summaryRow = summaryRows[0].nativeElement;\n this.focusPrevRow(summaryRow, lastIndex, childGrid, true, true);\n }\n else if (childGrid.rowList.length === 0 &&\n childGrid.allowFiltering && childGrid.filterMode === FilterMode.quickFilter) {\n // move to filter cell\n childGrid.navigation.moveFocusToFilterCell();\n }\n else if (childGrid.rowList.length === 0) {\n // move to prev child or parent row\n /** @type {?} */\n var prevChild = this.getSibling(childGrid);\n if (prevChild) {\n this.performShiftTabIntoChild(prevChild, currentRowEl, rowIndex);\n }\n else {\n /** @type {?} */\n var selNode = {\n row: rowIndex,\n column: this.grid.unpinnedColumns[this.grid.unpinnedColumns.length - 1].visibleIndex\n };\n this.navigateUp(currentRowEl, selNode);\n }\n }\n else {\n // move to prev cell\n childGrid.navigation.goToLastCell();\n }\n };\n /**\n * @private\n * @param {?} childGrid\n * @return {?}\n */\n IgxHierarchicalGridNavigationService.prototype.getSibling = /**\n * @private\n * @param {?} childGrid\n * @return {?}\n */\n function (childGrid) {\n /** @type {?} */\n var prevChildRow = childGrid.childRow.nativeElement.previousElementSibling;\n if (prevChildRow) {\n return prevChildRow.children[0].children[0];\n }\n return null;\n };\n /**\n * @private\n * @param {?} elem\n * @param {?} visibleColumnIndex\n * @param {?} grid\n * @return {?}\n */\n IgxHierarchicalGridNavigationService.prototype.focusNextChild = /**\n * @private\n * @param {?} elem\n * @param {?} visibleColumnIndex\n * @param {?} grid\n * @return {?}\n */\n function (elem, visibleColumnIndex, grid) {\n var _this = this;\n /** @type {?} */\n var gridElem = elem.querySelector('igx-hierarchical-grid');\n /** @type {?} */\n var childGridID = gridElem.getAttribute('id');\n /** @type {?} */\n var childGrid = this.getChildGrid(childGridID, grid);\n if (childGrid.rowList.length === 0) {\n this.focusNext(visibleColumnIndex, childGrid);\n return;\n }\n // Update column index since the next child can have in general less columns than visibleColumnIndex value.\n /** @type {?} */\n var lastCellIndex = childGrid.unpinnedColumns[childGrid.unpinnedColumns.length - 1].visibleIndex;\n visibleColumnIndex = Math.min(lastCellIndex, visibleColumnIndex);\n if (childGrid.verticalScrollContainer.state.startIndex !== 0) {\n // scroll to top\n this.scrollGrid(childGrid, 'top', function () { return _this.focusNextRow(elem, visibleColumnIndex, childGrid); });\n }\n else {\n this.focusNextRow(elem, visibleColumnIndex, childGrid);\n }\n };\n /**\n * @private\n * @param {?} elem\n * @param {?} visibleColumnIndex\n * @param {?} grid\n * @return {?}\n */\n IgxHierarchicalGridNavigationService.prototype.focusPrevChild = /**\n * @private\n * @param {?} elem\n * @param {?} visibleColumnIndex\n * @param {?} grid\n * @return {?}\n */\n function (elem, visibleColumnIndex, grid) {\n var _this = this;\n /** @type {?} */\n var grids = [];\n /** @type {?} */\n var gridElems = Array.from(elem.querySelectorAll('igx-hierarchical-grid'));\n /** @type {?} */\n var childLevel = grid.childLayoutList.first.level;\n gridElems.forEach(function (hg) {\n /** @type {?} */\n var parentRow = _this.getClosestElemByTag(hg, 'igx-child-grid-row');\n if (parentRow && parseInt(parentRow.getAttribute('data-level'), 10) === childLevel) {\n grids.push(hg);\n }\n });\n /** @type {?} */\n var gridElem = grids[grids.length - 1];\n /** @type {?} */\n var childGridID = gridElem.getAttribute('id');\n /** @type {?} */\n var childGrid = this.getChildGrid(childGridID, grid);\n if (childGrid.rowList.length === 0) {\n this.focusPrev(visibleColumnIndex, childGrid);\n return;\n }\n // Update column index since the previous child can have in general less columns than visibleColumnIndex value.\n /** @type {?} */\n var lastCellIndex = childGrid.unpinnedColumns[childGrid.unpinnedColumns.length - 1].visibleIndex;\n visibleColumnIndex = Math.min(lastCellIndex, visibleColumnIndex);\n /** @type {?} */\n var isScrolledToBottom = this._isScrolledToBottom(childGrid);\n /** @type {?} */\n var lastIndex = childGrid.dataView.length - 1;\n if (!isScrolledToBottom) {\n // scroll to end\n this.scrollGrid(childGrid, 'bottom', function () { return _this.focusPrevChild(elem, visibleColumnIndex, grid); });\n }\n else {\n /** @type {?} */\n var lastRowInChild = childGrid.getRowByIndex(lastIndex);\n /** @type {?} */\n var isChildGrid = lastRowInChild.nativeElement.nodeName.toLowerCase() === 'igx-child-grid-row';\n if (isChildGrid) {\n this.focusPrevChild(lastRowInChild.nativeElement.parentNode, visibleColumnIndex, childGrid);\n }\n else {\n this.focusPrevRow(lastRowInChild.nativeElement, visibleColumnIndex, childGrid, true);\n }\n }\n };\n /**\n * @private\n * @param {?} visibleColumnIndex\n * @param {?=} grid\n * @return {?}\n */\n IgxHierarchicalGridNavigationService.prototype.focusPrev = /**\n * @private\n * @param {?} visibleColumnIndex\n * @param {?=} grid\n * @return {?}\n */\n function (visibleColumnIndex, grid) {\n var _this = this;\n /** @type {?} */\n var currGrid = grid || this.grid;\n /** @type {?} */\n var parentContainer = this.getChildContainer(currGrid);\n /** @type {?} */\n var childRowContainer = this.getChildGridRowContainer(currGrid);\n /** @type {?} */\n var prevIsSiblingChild = !!childRowContainer.previousElementSibling;\n /** @type {?} */\n var prev = childRowContainer.previousElementSibling || parentContainer.previousElementSibling;\n if (prev) {\n if (prevIsSiblingChild) {\n this.focusPrevChild(prev, visibleColumnIndex, currGrid.parent);\n }\n else {\n this.focusPrevRow(prev, visibleColumnIndex, currGrid.parent);\n }\n }\n else {\n this.scrollGrid(currGrid.parent, 'prev', function () {\n parentContainer = _this.getChildContainer(grid);\n childRowContainer = _this.getChildGridRowContainer(grid);\n prev = childRowContainer.previousElementSibling || parentContainer.previousElementSibling;\n if (prevIsSiblingChild) {\n _this.focusPrevChild(prev, visibleColumnIndex, currGrid.parent);\n }\n else {\n _this.focusPrevRow(prev, visibleColumnIndex, currGrid.parent);\n }\n });\n }\n };\n /**\n * @private\n * @param {?} grid\n * @return {?}\n */\n IgxHierarchicalGridNavigationService.prototype.getNextParentInfo = /**\n * @private\n * @param {?} grid\n * @return {?}\n */\n function (grid) {\n // find next parent that is not at bottom\n /** @type {?} */\n var currGrid = grid.parent;\n /** @type {?} */\n var nextElem = this.getChildContainer(grid).nextElementSibling;\n while (!nextElem && currGrid.parent !== null) {\n nextElem = this.getChildContainer(currGrid).nextElementSibling;\n currGrid = currGrid.parent;\n }\n return { grid: currGrid, nextElement: nextElem };\n };\n /**\n * @private\n * @param {?} grid\n * @return {?}\n */\n IgxHierarchicalGridNavigationService.prototype.getNextScrollable = /**\n * @private\n * @param {?} grid\n * @return {?}\n */\n function (grid) {\n /** @type {?} */\n var currGrid = grid.parent;\n if (!currGrid) {\n return { grid: grid, prev: null };\n }\n /** @type {?} */\n var nonScrollable = currGrid.verticalScrollContainer.scrollPosition === 0;\n /** @type {?} */\n var prev = grid;\n while (nonScrollable && currGrid.parent !== null) {\n prev = currGrid;\n currGrid = currGrid.parent;\n nonScrollable = currGrid.verticalScrollContainer.scrollPosition === 0;\n }\n return { grid: currGrid, prev: prev };\n };\n /**\n * @private\n * @param {?} visibleColumnIndex\n * @param {?=} grid\n * @return {?}\n */\n IgxHierarchicalGridNavigationService.prototype.focusNext = /**\n * @private\n * @param {?} visibleColumnIndex\n * @param {?=} grid\n * @return {?}\n */\n function (visibleColumnIndex, grid) {\n var _this = this;\n /** @type {?} */\n var currGrid = grid || this.grid;\n /** @type {?} */\n var parentInfo = this.getNextParentInfo(currGrid);\n /** @type {?} */\n var nextParentGrid = parentInfo.grid;\n /** @type {?} */\n var nextParentElem = parentInfo.nextElement;\n /** @type {?} */\n var childRowContainer = this.getChildGridRowContainer(currGrid);\n /** @type {?} */\n var nextIsSiblingChild = !!childRowContainer.nextElementSibling;\n /** @type {?} */\n var next = childRowContainer.nextElementSibling || nextParentElem;\n /** @type {?} */\n var verticalScroll = nextParentGrid.verticalScrollContainer.getScroll();\n /** @type {?} */\n var parentState = nextParentGrid.verticalScrollContainer.state;\n /** @type {?} */\n var atLastChunk = parentState.startIndex + parentState.chunkSize ===\n nextParentGrid.dataView.length;\n if (next) {\n if (nextIsSiblingChild) {\n this.focusNextChild(next, visibleColumnIndex, nextParentGrid);\n }\n else {\n this.focusNextRow(next, visibleColumnIndex, grid || nextParentGrid);\n }\n }\n else if (verticalScroll.scrollTop !==\n verticalScroll.scrollHeight - nextParentGrid.verticalScrollContainer.igxForContainerSize && !atLastChunk) {\n this.scrollGrid(nextParentGrid, 'next', function () {\n nextParentElem = parentInfo.nextElement;\n childRowContainer = _this.getChildGridRowContainer();\n next = childRowContainer.nextElementSibling || nextParentElem;\n if (next && nextIsSiblingChild) {\n _this.focusNextChild(next, visibleColumnIndex, nextParentGrid);\n }\n else if (next) {\n _this.focusNextRow(next, visibleColumnIndex, grid || nextParentGrid);\n }\n });\n }\n };\n /**\n * @private\n * @param {?} grid\n * @return {?}\n */\n IgxHierarchicalGridNavigationService.prototype.getNextScrollableDown = /**\n * @private\n * @param {?} grid\n * @return {?}\n */\n function (grid) {\n /** @type {?} */\n var currGrid = grid.parent;\n if (!currGrid) {\n return { grid: grid, prev: null };\n }\n /** @type {?} */\n var scrollTop = currGrid.verticalScrollContainer.scrollPosition;\n /** @type {?} */\n var scrollHeight = currGrid.verticalScrollContainer.getScroll().scrollHeight;\n /** @type {?} */\n var nonScrollable = scrollHeight === 0 ||\n Math.round(scrollTop + currGrid.verticalScrollContainer.igxForContainerSize) === scrollHeight;\n /** @type {?} */\n var prev = grid;\n while (nonScrollable && currGrid.parent !== null) {\n prev = currGrid;\n currGrid = currGrid.parent;\n scrollTop = currGrid.verticalScrollContainer.scrollPosition;\n scrollHeight = currGrid.verticalScrollContainer.getScroll().scrollHeight;\n nonScrollable = scrollHeight === 0 ||\n Math.round(scrollTop + currGrid.verticalScrollContainer.igxForContainerSize) === scrollHeight;\n }\n return { grid: currGrid, prev: prev };\n };\n /**\n * @private\n * @param {?} grid\n * @return {?}\n */\n IgxHierarchicalGridNavigationService.prototype._getMinBottom = /**\n * @private\n * @param {?} grid\n * @return {?}\n */\n function (grid) {\n /** @type {?} */\n var currGrid = grid;\n /** @type {?} */\n var bottom = currGrid.tbody.nativeElement.getBoundingClientRect().bottom;\n while (currGrid.parent) {\n currGrid = currGrid.parent;\n bottom = Math.min(bottom, currGrid.tbody.nativeElement.getBoundingClientRect().bottom);\n }\n return bottom;\n };\n /**\n * @private\n * @param {?} grid\n * @return {?}\n */\n IgxHierarchicalGridNavigationService.prototype._getMaxTop = /**\n * @private\n * @param {?} grid\n * @return {?}\n */\n function (grid) {\n /** @type {?} */\n var currGrid = grid;\n /** @type {?} */\n var top = currGrid.tbody.nativeElement.getBoundingClientRect().top;\n while (currGrid.parent) {\n currGrid = currGrid.parent;\n top = Math.max(top, currGrid.tbody.nativeElement.getBoundingClientRect().top);\n }\n return top;\n };\n /**\n * @private\n * @param {?} elem\n * @param {?} visibleColumnIndex\n * @param {?} grid\n * @param {?=} isSummary\n * @return {?}\n */\n IgxHierarchicalGridNavigationService.prototype.focusNextRow = /**\n * @private\n * @param {?} elem\n * @param {?} visibleColumnIndex\n * @param {?} grid\n * @param {?=} isSummary\n * @return {?}\n */\n function (elem, visibleColumnIndex, grid, isSummary) {\n var _this = this;\n /** @type {?} */\n var lastCellIndex = grid.unpinnedColumns[grid.unpinnedColumns.length - 1].visibleIndex;\n visibleColumnIndex = Math.min(lastCellIndex, visibleColumnIndex);\n /** @type {?} */\n var cellSelector = this.getCellSelector(visibleColumnIndex, isSummary);\n if (grid.navigation.isColumnFullyVisible(visibleColumnIndex) || grid.rowList.length === 0) {\n /** @type {?} */\n var cell_1 = elem.querySelector(cellSelector + \"[data-visibleIndex=\\\"\" + visibleColumnIndex + \"\\\"]\");\n /** @type {?} */\n var closestScrollableGrid = this.getNextScrollableDown(grid).grid;\n // const diff = cell.getBoundingClientRect().bottom - grid.rootGrid.tbody.nativeElement.getBoundingClientRect().bottom;\n /** @type {?} */\n var gridBottom = this._getMinBottom(grid);\n /** @type {?} */\n var diff = cell_1.getBoundingClientRect().bottom - gridBottom;\n /** @type {?} */\n var inView = diff <= 0;\n /** @type {?} */\n var scrollTop = closestScrollableGrid.verticalScrollContainer.scrollPosition;\n /** @type {?} */\n var scrollHeight = closestScrollableGrid.verticalScrollContainer.getScroll().scrollHeight;\n /** @type {?} */\n var canScroll = !(scrollHeight === 0 ||\n Math.round(scrollTop + closestScrollableGrid.verticalScrollContainer.igxForContainerSize) === scrollHeight);\n if (!inView && canScroll) {\n this.scrollGrid(closestScrollableGrid, diff, function () { return cell_1.focus({ preventScroll: true }); });\n }\n else {\n cell_1.focus({ preventScroll: true });\n }\n }\n else {\n this.horizontalScrollGridToIndex(grid, visibleColumnIndex, function () {\n _this.focusNextRow(elem, visibleColumnIndex, grid, isSummary);\n });\n }\n };\n /**\n * @param {?} visibleColumnIndex\n * @param {?=} grid\n * @return {?}\n */\n IgxHierarchicalGridNavigationService.prototype.getColumnUnpinnedIndex = /**\n * @param {?} visibleColumnIndex\n * @param {?=} grid\n * @return {?}\n */\n function (visibleColumnIndex, grid) {\n /** @type {?} */\n var currGrid = grid || this.grid;\n /** @type {?} */\n var column = currGrid.unpinnedColumns.find(function (col) { return !col.columnGroup && col.visibleIndex === visibleColumnIndex; });\n return currGrid.pinnedColumns.length ? currGrid.unpinnedColumns.filter(function (c) { return !c.columnGroup; }).indexOf(column) :\n visibleColumnIndex;\n };\n /**\n * @private\n * @param {?} elem\n * @param {?} visibleColumnIndex\n * @param {?} grid\n * @param {?=} inChild\n * @param {?=} isSummary\n * @return {?}\n */\n IgxHierarchicalGridNavigationService.prototype.focusPrevRow = /**\n * @private\n * @param {?} elem\n * @param {?} visibleColumnIndex\n * @param {?} grid\n * @param {?=} inChild\n * @param {?=} isSummary\n * @return {?}\n */\n function (elem, visibleColumnIndex, grid, inChild, isSummary) {\n var _this = this;\n /** @type {?} */\n var lastCellIndex = grid.unpinnedColumns[grid.unpinnedColumns.length - 1].visibleIndex;\n visibleColumnIndex = Math.min(lastCellIndex, visibleColumnIndex);\n if (grid.navigation.isColumnFullyVisible(visibleColumnIndex)) {\n /** @type {?} */\n var cellSelector_2 = this.getCellSelector(visibleColumnIndex, isSummary);\n /** @type {?} */\n var cells = elem.querySelectorAll(cellSelector_2 + \"[data-visibleIndex=\\\"\" + visibleColumnIndex + \"\\\"]\");\n /** @type {?} */\n var cell_2 = cells[cells.length - 1];\n /** @type {?} */\n var rIndex_1 = parseInt(elem.getAttribute('data-rowindex'), 10);\n /** @type {?} */\n var scrGrid = grid.verticalScrollContainer.scrollPosition !== 0 ? grid :\n this.getNextScrollable(grid).grid;\n /** @type {?} */\n var topGrid = scrGrid.tbody.nativeElement.getBoundingClientRect().top >\n grid.rootGrid.tbody.nativeElement.getBoundingClientRect().top ? scrGrid : grid.rootGrid;\n /** @type {?} */\n var gridTop = this._getMaxTop(grid);\n /** @type {?} */\n var scrTop = scrGrid.verticalScrollContainer.scrollPosition;\n /** @type {?} */\n var diff = cell_2.getBoundingClientRect().bottom -\n cell_2.offsetHeight - gridTop;\n if (scrTop !== 0 && diff < 0 && !inChild) {\n this.scrollGrid(scrGrid, diff, function () {\n /** @type {?} */\n var el = !isSummary ? grid.navigation.getRowByIndex(rIndex_1) : elem;\n cell_2 = el.querySelectorAll(cellSelector_2 + \"[data-visibleIndex=\\\"\" + visibleColumnIndex + \"\\\"]\")[0];\n cell_2.focus({ preventScroll: true });\n });\n }\n else if (diff < 0 && inChild) {\n this.scrollGrid(topGrid, diff, function () {\n cell_2.focus({ preventScroll: true });\n });\n }\n else {\n cell_2.focus({ preventScroll: true });\n }\n }\n else {\n this.horizontalScrollGridToIndex(grid, visibleColumnIndex, function () {\n _this.focusPrevRow(elem, visibleColumnIndex, grid, inChild, isSummary);\n });\n }\n };\n /**\n * @private\n * @param {?} grid\n * @param {?} visibleColumnIndex\n * @param {?} callBackFunc\n * @return {?}\n */\n IgxHierarchicalGridNavigationService.prototype.horizontalScrollGridToIndex = /**\n * @private\n * @param {?} grid\n * @param {?} visibleColumnIndex\n * @param {?} callBackFunc\n * @return {?}\n */\n function (grid, visibleColumnIndex, callBackFunc) {\n /** @type {?} */\n var unpinnedIndex = this.getColumnUnpinnedIndex(visibleColumnIndex, grid);\n grid.parentVirtDir.onChunkLoad\n .pipe(first$1())\n .subscribe(callBackFunc);\n if (grid.dataRowList.length > 0) {\n grid.dataRowList.first.virtDirRow.scrollTo(unpinnedIndex);\n }\n else {\n grid.headerContainer.scrollTo(unpinnedIndex);\n }\n };\n /**\n * @private\n * @param {?} grid\n * @param {?} target\n * @param {?} callBackFunc\n * @return {?}\n */\n IgxHierarchicalGridNavigationService.prototype.scrollGrid = /**\n * @private\n * @param {?} grid\n * @param {?} target\n * @param {?} callBackFunc\n * @return {?}\n */\n function (grid, target, callBackFunc) {\n this.getFocusableGrid().nativeElement.focus({ preventScroll: true });\n requestAnimationFrame(function () {\n if (typeof target === 'number') {\n grid.verticalScrollContainer.addScrollTop(target);\n }\n else {\n switch (target) {\n case 'top':\n grid.verticalScrollContainer.scrollTo(0);\n break;\n case 'bottom':\n grid.verticalScrollContainer.scrollTo(grid.dataView.length - 1);\n break;\n case 'next':\n grid.verticalScrollContainer.scrollNext();\n break;\n case 'prev':\n grid.verticalScrollContainer.scrollPrev();\n break;\n }\n }\n grid.verticalScrollContainer.onChunkLoad\n .pipe(first$1())\n .subscribe(callBackFunc);\n });\n };\n /**\n * @private\n * @param {?} rowElement\n * @param {?} currentRowIndex\n * @param {?} visibleColumnIndex\n * @return {?}\n */\n IgxHierarchicalGridNavigationService.prototype._navigateUpInChild = /**\n * @private\n * @param {?} rowElement\n * @param {?} currentRowIndex\n * @param {?} visibleColumnIndex\n * @return {?}\n */\n function (rowElement, currentRowIndex, visibleColumnIndex) {\n var _this = this;\n /** @type {?} */\n var prevElem = rowElement.previousElementSibling;\n /** @type {?} */\n var scrollable = this.getNextScrollable(this.grid);\n /** @type {?} */\n var grid = scrollable.grid;\n /** @type {?} */\n var scrTop = grid.verticalScrollContainer.scrollPosition;\n /** @type {?} */\n var containerTop = scrollable.prev.nativeElement.parentNode.parentNode.parentNode.parentNode;\n /** @type {?} */\n var top = parseInt(containerTop.style.top, 10);\n if (scrTop !== 0 && top < 0) {\n this.scrollGrid(grid, -prevElem.offsetHeight, function () { return _super.prototype.navigateUp.call(_this, rowElement, { row: currentRowIndex, column: visibleColumnIndex }); });\n }\n else {\n _super.prototype.navigateUp.call(this, rowElement, { row: currentRowIndex, column: visibleColumnIndex });\n }\n };\n /**\n * @private\n * @param {?} rowElement\n * @param {?} currentRowIndex\n * @param {?} visibleColumnIndex\n * @return {?}\n */\n IgxHierarchicalGridNavigationService.prototype._navigateDownInChild = /**\n * @private\n * @param {?} rowElement\n * @param {?} currentRowIndex\n * @param {?} visibleColumnIndex\n * @return {?}\n */\n function (rowElement, currentRowIndex, visibleColumnIndex) {\n var _this = this;\n /** @type {?} */\n var nextElem = rowElement.nextElementSibling;\n /** @type {?} */\n var childContainer = this.grid.nativeElement.parentNode.parentNode;\n /** @type {?} */\n var diff = childContainer.getBoundingClientRect().bottom - this.grid.rootGrid.nativeElement.getBoundingClientRect().bottom;\n /** @type {?} */\n var endIsVisible = diff < 0;\n /** @type {?} */\n var scrollable = this.getNextScrollableDown(this.grid);\n /** @type {?} */\n var grid = scrollable.grid;\n if (!endIsVisible) {\n this.scrollGrid(grid, nextElem.offsetHeight, function () { return _super.prototype.navigateDown.call(_this, rowElement, { row: currentRowIndex, column: visibleColumnIndex }); });\n }\n else {\n _super.prototype.navigateDown.call(this, rowElement, { row: currentRowIndex, column: visibleColumnIndex });\n }\n };\n /**\n * @private\n * @param {?} sourceElem\n * @param {?} targetTag\n * @return {?}\n */\n IgxHierarchicalGridNavigationService.prototype.getClosestElemByTag = /**\n * @private\n * @param {?} sourceElem\n * @param {?} targetTag\n * @return {?}\n */\n function (sourceElem, targetTag) {\n /** @type {?} */\n var result = sourceElem;\n while (result !== null && result.nodeType === 1) {\n if (result.tagName.toLowerCase() === targetTag.toLowerCase()) {\n return result;\n }\n result = result.parentNode;\n }\n return null;\n };\n /**\n * @protected\n * @param {?} nextIndex\n * @return {?}\n */\n IgxHierarchicalGridNavigationService.prototype.getNextRowByIndex = /**\n * @protected\n * @param {?} nextIndex\n * @return {?}\n */\n function (nextIndex) {\n return this.grid.dataRowList.find(function (element) { return element.index === nextIndex; }).element.nativeElement;\n };\n return IgxHierarchicalGridNavigationService;\n}(IgxGridNavigationService));\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n/** @type {?} */\nvar IgxHierarchicalTransactionServiceFactory = {\n provide: IgxGridTransaction,\n useFactory: hierarchicalTransactionServiceFactory\n};\n/**\n * @return {?}\n */\nfunction hierarchicalTransactionServiceFactory() {\n return function () { return new IgxHierarchicalTransactionService(); };\n}\n/**\n * @abstract\n */\nvar IgxHierarchicalGridBaseComponent = /** @class */ (function (_super) {\n __extends(IgxHierarchicalGridBaseComponent, _super);\n function IgxHierarchicalGridBaseComponent(selectionService, crudService, colResizingService, gridAPI, transactionFactory, elementRef, zone, document, cdr, resolver, differs, viewRef, navigation, filteringService, overlayService, summaryService, _displayDensityOptions) {\n var _this = _super.call(this, selectionService, crudService, colResizingService, gridAPI, typeof transactionFactory === 'function' ? transactionFactory() : transactionFactory, elementRef, zone, document, cdr, resolver, differs, viewRef, navigation, filteringService, overlayService, summaryService, _displayDensityOptions) || this;\n _this.selectionService = selectionService;\n _this.colResizingService = colResizingService;\n _this.transactionFactory = transactionFactory;\n _this.document = document;\n _this.overlayService = overlayService;\n _this.summaryService = summaryService;\n _this._displayDensityOptions = _displayDensityOptions;\n _this.showExpandAll = false;\n _this._expandChildren = false;\n _this.hgridAPI = (/** @type {?} */ (gridAPI));\n return _this;\n }\n Object.defineProperty(IgxHierarchicalGridBaseComponent.prototype, \"maxLevelHeaderDepth\", {\n /**\n * @hidden\n */\n get: /**\n * @hidden\n * @return {?}\n */\n function () {\n if (this._maxLevelHeaderDepth === null) {\n this._maxLevelHeaderDepth = this.columnList.reduce(function (acc, col) { return Math.max(acc, col.level); }, 0);\n }\n return this._maxLevelHeaderDepth;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxHierarchicalGridBaseComponent.prototype, \"outlet\", {\n /**\n * @hidden\n */\n get: /**\n * @hidden\n * @protected\n * @return {?}\n */\n function () {\n return this.rootGrid ? this.rootGrid.outletDirective : this.outletDirective;\n },\n enumerable: true,\n configurable: true\n });\n /**\n * @hidden\n */\n /**\n * @hidden\n * @param {?} cols\n * @return {?}\n */\n IgxHierarchicalGridBaseComponent.prototype.createColumnsList = /**\n * @hidden\n * @param {?} cols\n * @return {?}\n */\n function (cols) {\n var _this = this;\n /** @type {?} */\n var columns = [];\n /** @type {?} */\n var topLevelCols = this.onlyTopLevel(cols);\n topLevelCols.forEach(function (col) {\n /** @type {?} */\n var ref = _this._createColumn(col);\n ref.changeDetectorRef.detectChanges();\n columns.push(ref.instance);\n });\n /** @type {?} */\n var result = flatten$1(columns);\n this.columnList.reset(result);\n this.columnList.notifyOnChanges();\n this.initPinning();\n };\n /**\n * @protected\n * @param {?} col\n * @return {?}\n */\n IgxHierarchicalGridBaseComponent.prototype._createColumn = /**\n * @protected\n * @param {?} col\n * @return {?}\n */\n function (col) {\n /** @type {?} */\n var ref;\n if (col instanceof IgxColumnGroupComponent) {\n ref = this._createColGroupComponent(col);\n }\n else {\n ref = this._createColComponent(col);\n }\n return ref;\n };\n /**\n * @protected\n * @param {?} col\n * @return {?}\n */\n IgxHierarchicalGridBaseComponent.prototype._createColGroupComponent = /**\n * @protected\n * @param {?} col\n * @return {?}\n */\n function (col) {\n var _this = this;\n /** @type {?} */\n var factoryGroup = this.resolver.resolveComponentFactory(IgxColumnGroupComponent);\n /** @type {?} */\n var ref = this.viewRef.createComponent(factoryGroup, null, this.viewRef.injector);\n ref.changeDetectorRef.detectChanges();\n factoryGroup.inputs.forEach(function (input) {\n /** @type {?} */\n var propName = input.propName;\n ((/** @type {?} */ (ref.instance)))[propName] = ((/** @type {?} */ (col)))[propName];\n });\n if (col.children.length > 0) {\n /** @type {?} */\n var newChildren_1 = [];\n col.children.forEach(function (child) {\n /** @type {?} */\n var newCol = _this._createColumn(child).instance;\n newCol.parent = ref.instance;\n newChildren_1.push(newCol);\n });\n ((/** @type {?} */ (ref.instance))).children.reset(newChildren_1);\n ((/** @type {?} */ (ref.instance))).children.notifyOnChanges();\n }\n // (ref.instance).grid = this;\n return ref;\n };\n /**\n * @protected\n * @param {?} col\n * @return {?}\n */\n IgxHierarchicalGridBaseComponent.prototype._createColComponent = /**\n * @protected\n * @param {?} col\n * @return {?}\n */\n function (col) {\n /** @type {?} */\n var factoryColumn = this.resolver.resolveComponentFactory(IgxColumnComponent);\n /** @type {?} */\n var ref = this.viewRef.createComponent(factoryColumn, null, this.viewRef.injector);\n factoryColumn.inputs.forEach(function (input) {\n /** @type {?} */\n var propName = input.propName;\n if (!(((/** @type {?} */ (col)))[propName] instanceof IgxSummaryOperand)) {\n ((/** @type {?} */ (ref.instance)))[propName] = ((/** @type {?} */ (col)))[propName];\n }\n else {\n ((/** @type {?} */ (ref.instance)))[propName] = col[propName].constructor;\n }\n });\n // (ref.instance).grid = this;\n return ref;\n };\n /**\n * @protected\n * @param {?} rowIslandID\n * @return {?}\n */\n IgxHierarchicalGridBaseComponent.prototype.getGridsForIsland = /**\n * @protected\n * @param {?} rowIslandID\n * @return {?}\n */\n function (rowIslandID) {\n return this.hgridAPI.getChildGridsForRowIsland(rowIslandID);\n };\n /**\n * @protected\n * @param {?} path\n * @return {?}\n */\n IgxHierarchicalGridBaseComponent.prototype.getChildGrid = /**\n * @protected\n * @param {?} path\n * @return {?}\n */\n function (path) {\n if (!path) {\n return;\n }\n return this.hgridAPI.getChildGrid(path);\n };\n /** @nocollapse */\n IgxHierarchicalGridBaseComponent.ctorParameters = function () { return [\n { type: IgxGridSelectionService },\n { type: IgxGridCRUDService },\n { type: IgxColumnResizingService },\n { type: GridBaseAPIService },\n { type: undefined, decorators: [{ type: Inject, args: [IgxGridTransaction,] }] },\n { type: ElementRef },\n { type: NgZone },\n { type: undefined, decorators: [{ type: Inject, args: [DOCUMENT,] }] },\n { type: ChangeDetectorRef },\n { type: ComponentFactoryResolver },\n { type: IterableDiffers },\n { type: ViewContainerRef },\n { type: IgxHierarchicalGridNavigationService },\n { type: IgxFilteringService },\n { type: IgxOverlayService, decorators: [{ type: Inject, args: [IgxOverlayService,] }] },\n { type: IgxGridSummaryService },\n { type: undefined, decorators: [{ type: Optional }, { type: Inject, args: [DisplayDensityToken,] }] }\n ]; };\n IgxHierarchicalGridBaseComponent.propDecorators = {\n expandChildren: [{ type: Input }],\n hasChildrenKey: [{ type: Input }],\n showExpandAll: [{ type: Input }],\n dragIndicatorIconBase: [{ type: ViewChild, args: ['dragIndicatorIconBase', { read: TemplateRef, static: true },] }]\n };\n return IgxHierarchicalGridBaseComponent;\n}(IgxGridBaseComponent));\n/**\n * @param {?} arr\n * @return {?}\n */\nfunction flatten$1(arr) {\n /** @type {?} */\n var result = [];\n arr.forEach(function (el) {\n result.push(el);\n if (el.children) {\n result = result.concat(flatten$1(el.children.toArray()));\n }\n });\n return result;\n}\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\nvar IgxHierarchicalGridAPIService = /** @class */ (function (_super) {\n __extends(IgxHierarchicalGridAPIService, _super);\n function IgxHierarchicalGridAPIService() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.childRowIslands = new Map();\n _this.childGrids = new Map();\n return _this;\n }\n /**\n * @param {?} rowIsland\n * @return {?}\n */\n IgxHierarchicalGridAPIService.prototype.registerChildRowIsland = /**\n * @param {?} rowIsland\n * @return {?}\n */\n function (rowIsland) {\n this.childRowIslands.set(rowIsland.key, rowIsland);\n this.destroyMap.set(rowIsland.key, new Subject());\n };\n /**\n * @param {?} rowIsland\n * @return {?}\n */\n IgxHierarchicalGridAPIService.prototype.unsetChildRowIsland = /**\n * @param {?} rowIsland\n * @return {?}\n */\n function (rowIsland) {\n this.childGrids.delete(rowIsland.key);\n this.childRowIslands.delete(rowIsland.key);\n this.destroyMap.delete(rowIsland.key);\n };\n /**\n * @param {?} key\n * @return {?}\n */\n IgxHierarchicalGridAPIService.prototype.getChildRowIsland = /**\n * @param {?} key\n * @return {?}\n */\n function (key) {\n return this.childRowIslands.get(key);\n };\n /**\n * @param {?} path\n * @return {?}\n */\n IgxHierarchicalGridAPIService.prototype.getChildGrid = /**\n * @param {?} path\n * @return {?}\n */\n function (path) {\n /** @type {?} */\n var currPath = path;\n /** @type {?} */\n var grid;\n /** @type {?} */\n var pathElem = currPath.shift();\n /** @type {?} */\n var childrenForLayout = this.childGrids.get(pathElem.rowIslandKey);\n if (childrenForLayout) {\n /** @type {?} */\n var childGrid = childrenForLayout.get(pathElem.rowID);\n if (currPath.length === 0) {\n grid = childGrid;\n }\n else {\n grid = childGrid.hgridAPI.getChildGrid(currPath);\n }\n }\n return grid;\n };\n /**\n * @param {?=} inDepth\n * @return {?}\n */\n IgxHierarchicalGridAPIService.prototype.getChildGrids = /**\n * @param {?=} inDepth\n * @return {?}\n */\n function (inDepth) {\n /** @type {?} */\n var allChildren = [];\n this.childGrids.forEach(function (layoutMap) {\n layoutMap.forEach(function (grid) {\n allChildren.push(grid);\n if (inDepth) {\n /** @type {?} */\n var children = grid.hgridAPI.getChildGrids(inDepth);\n children.forEach(function (item) {\n allChildren.push(item);\n });\n }\n });\n });\n return allChildren;\n };\n /**\n * @param {?} childGrid\n * @return {?}\n */\n IgxHierarchicalGridAPIService.prototype.getParentRowId = /**\n * @param {?} childGrid\n * @return {?}\n */\n function (childGrid) {\n /** @type {?} */\n var rowID;\n this.childGrids.forEach(function (layoutMap) {\n layoutMap.forEach(function (grid, key) {\n if (grid === childGrid) {\n rowID = key;\n return;\n }\n });\n });\n return rowID;\n };\n /**\n * @param {?} parentRowID\n * @param {?} rowIslandKey\n * @param {?} grid\n * @return {?}\n */\n IgxHierarchicalGridAPIService.prototype.registerChildGrid = /**\n * @param {?} parentRowID\n * @param {?} rowIslandKey\n * @param {?} grid\n * @return {?}\n */\n function (parentRowID, rowIslandKey, grid) {\n /** @type {?} */\n var childrenForLayout = this.childGrids.get(rowIslandKey);\n if (!childrenForLayout) {\n this.childGrids.set(rowIslandKey, new Map());\n childrenForLayout = this.childGrids.get(rowIslandKey);\n }\n childrenForLayout.set(parentRowID, grid);\n };\n /**\n * @param {?} rowIslandKey\n * @return {?}\n */\n IgxHierarchicalGridAPIService.prototype.getChildGridsForRowIsland = /**\n * @param {?} rowIslandKey\n * @return {?}\n */\n function (rowIslandKey) {\n /** @type {?} */\n var childrenForLayout = this.childGrids.get(rowIslandKey);\n /** @type {?} */\n var children = [];\n if (childrenForLayout) {\n childrenForLayout.forEach(function (child) {\n children.push(child);\n });\n }\n return children;\n };\n /**\n * @param {?} rowIslandKey\n * @param {?} rowID\n * @return {?}\n */\n IgxHierarchicalGridAPIService.prototype.getChildGridByID = /**\n * @param {?} rowIslandKey\n * @param {?} rowID\n * @return {?}\n */\n function (rowIslandKey, rowID) {\n /** @type {?} */\n var childrenForLayout = this.childGrids.get(rowIslandKey);\n return childrenForLayout.get(rowID);\n };\n return IgxHierarchicalGridAPIService;\n}(GridBaseAPIService));\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\nvar IgxRowIslandComponent = /** @class */ (function (_super) {\n __extends(IgxRowIslandComponent, _super);\n function IgxRowIslandComponent(selectionService, crudService, colResizingService, gridAPI, transactionFactory, elementRef, zone, document, cdr, resolver, differs, viewRef, navigation, filteringService, overlayService, summaryService, _displayDensityOptions, rowIslandAPI) {\n var _this = _super.call(this, selectionService, crudService, colResizingService, gridAPI, typeof transactionFactory === 'function' ? transactionFactory() : transactionFactory, elementRef, zone, document, cdr, resolver, differs, viewRef, navigation, filteringService, overlayService, summaryService, _displayDensityOptions) || this;\n _this.selectionService = selectionService;\n _this.colResizingService = colResizingService;\n _this.transactionFactory = transactionFactory;\n _this.document = document;\n _this.overlayService = overlayService;\n _this.summaryService = summaryService;\n _this._displayDensityOptions = _displayDensityOptions;\n _this.rowIslandAPI = rowIslandAPI;\n /**\n * @hidden\n */\n _this.children = new QueryList();\n /**\n * @hidden\n */\n _this.childColumns = new QueryList();\n /**\n * @hidden\n */\n _this.onLayoutChange = new EventEmitter();\n /**\n * Event emmited when a grid is being created based on this row island.\n * ```html\n * \n * \n * \n * \n * \n * ```\n * \\@memberof IgxRowIslandComponent\n */\n _this.onGridCreated = new EventEmitter();\n /**\n * @hidden\n */\n _this.initialChanges = [];\n /**\n * @hidden\n */\n _this.rootGrid = null;\n _this.layout_id = \"igx-row-island-\";\n _this.isInit = false;\n _this.hgridAPI = (/** @type {?} */ (gridAPI));\n return _this;\n }\n Object.defineProperty(IgxRowIslandComponent.prototype, \"expandChildren\", {\n /**\n * Gets if all immediate children of the grids for this `IgxRowIslandComponent` have been set to be expanded/collapsed.\n * ```typescript\n * const expanded = this.rowIsland.expandChildren;\n * ```\n * @memberof IgxRowIslandComponent\n */\n get: /**\n * Gets if all immediate children of the grids for this `IgxRowIslandComponent` have been set to be expanded/collapsed.\n * ```typescript\n * const expanded = this.rowIsland.expandChildren;\n * ```\n * \\@memberof IgxRowIslandComponent\n * @return {?}\n */\n function () {\n return this._expandChildren;\n },\n /**\n * Sets if all immediate children of the grids for this `IgxRowIslandComponent` should be expanded/collapsed.\n * ```html\n * \n * \n * \n * \n * \n * ```\n * @memberof IgxRowIslandComponent\n */\n set: /**\n * Sets if all immediate children of the grids for this `IgxRowIslandComponent` should be expanded/collapsed.\n * ```html\n * \n * \n * \n * \n * \n * ```\n * \\@memberof IgxRowIslandComponent\n * @param {?} value\n * @return {?}\n */\n function (value) {\n this._expandChildren = value;\n this.rowIslandAPI.getChildGrids().forEach(function (grid) {\n if (document.body.contains(grid.nativeElement)) {\n // Detect changes right away if the grid is visible\n grid.expandChildren = value;\n grid.markForCheck();\n }\n else {\n // Else defer the detection on changes when the grid gets into view for performance.\n grid.updateOnRender = true;\n }\n });\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxRowIslandComponent.prototype, \"id\", {\n /**\n * @hidden\n */\n get: /**\n * @hidden\n * @return {?}\n */\n function () {\n /** @type {?} */\n var pId = this.parentId ? this.parentId.substring(this.parentId.indexOf(this.layout_id) + this.layout_id.length) + '-' : '';\n return this.layout_id + pId + this.key;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxRowIslandComponent.prototype, \"parentId\", {\n /**\n * @hidden\n */\n get: /**\n * @hidden\n * @return {?}\n */\n function () {\n return this.parentIsland ? this.parentIsland.id : null;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxRowIslandComponent.prototype, \"level\", {\n /**\n * @hidden\n */\n get: /**\n * @hidden\n * @return {?}\n */\n function () {\n /** @type {?} */\n var ptr = this.parentIsland;\n /** @type {?} */\n var lvl = 0;\n while (ptr) {\n lvl++;\n ptr = ptr.parentIsland;\n }\n return lvl + 1;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxRowIslandComponent.prototype, \"transactions\", {\n /**\n * Get transactions service for the children grid components.\n * @experimental @hidden\n */\n get: /**\n * Get transactions service for the children grid components.\n * \\@experimental \\@hidden\n * @return {?}\n */\n function () {\n /** @type {?} */\n var grids = this.rowIslandAPI.getChildGrids();\n return grids.length ? grids[0].transactions : this._transactions;\n },\n enumerable: true,\n configurable: true\n });\n /**\n * @hidden\n */\n /**\n * @hidden\n * @return {?}\n */\n IgxRowIslandComponent.prototype.ngOnInit = /**\n * @hidden\n * @return {?}\n */\n function () {\n this.rootGrid = this.hgridAPI.grid;\n this.rowIslandAPI.rowIsland = this;\n };\n /**\n * @hidden\n */\n /**\n * @hidden\n * @return {?}\n */\n IgxRowIslandComponent.prototype.ngDoCheck = /**\n * @hidden\n * @return {?}\n */\n function () {\n };\n /**\n * @hidden\n */\n /**\n * @hidden\n * @return {?}\n */\n IgxRowIslandComponent.prototype.ngAfterContentInit = /**\n * @hidden\n * @return {?}\n */\n function () {\n var _this = this;\n this.updateChildren();\n this.children.notifyOnChanges();\n this.children.changes.pipe(takeUntil(this.destroy$))\n .subscribe(function (change) {\n _this.updateChildren();\n // update existing grids since their child ri have been changed.\n _this.getGridsForIsland(_this.key).forEach(function (grid) {\n ((/** @type {?} */ (grid))).onRowIslandChange(_this.children);\n });\n });\n /** @type {?} */\n var nestedColumns = this.children.map(function (layout) { return layout.columnList.toArray(); });\n /** @type {?} */\n var colsArray = [].concat.apply([], nestedColumns);\n /** @type {?} */\n var topCols = this.columnList.filter(function (item) {\n return colsArray.indexOf(item) === -1;\n });\n this.childColumns.reset(topCols);\n this.columnList.changes.pipe(takeUntil(this.destroy$)).subscribe(function () { _this.updateColumnList(); });\n };\n /**\n * @protected\n * @return {?}\n */\n IgxRowIslandComponent.prototype.updateChildren = /**\n * @protected\n * @return {?}\n */\n function () {\n var _this = this;\n this.children.reset(this.children.toArray().slice(1));\n this.children.forEach(function (child) {\n child.parentIsland = _this;\n });\n };\n /**\n * @hidden\n */\n /**\n * @hidden\n * @return {?}\n */\n IgxRowIslandComponent.prototype.ngAfterViewInit = /**\n * @hidden\n * @return {?}\n */\n function () {\n this.rowIslandAPI.register(this);\n if (this.parentIsland) {\n this.parentIsland.rowIslandAPI.registerChildRowIsland(this);\n }\n else {\n this.rootGrid.hgridAPI.registerChildRowIsland(this);\n }\n this._init = false;\n };\n /**\n * @hidden\n */\n /**\n * @hidden\n * @param {?} changes\n * @return {?}\n */\n IgxRowIslandComponent.prototype.ngOnChanges = /**\n * @hidden\n * @param {?} changes\n * @return {?}\n */\n function (changes) {\n this.onLayoutChange.emit(changes);\n if (!this.isInit) {\n this.initialChanges.push(changes);\n }\n };\n /**\n * @hidden\n */\n /**\n * @hidden\n * @return {?}\n */\n IgxRowIslandComponent.prototype.ngOnDestroy = /**\n * @hidden\n * @return {?}\n */\n function () {\n var _this = this;\n // Override the base destroy because we don't have rendered anything to use removeEventListener on\n this.destroy$.next(true);\n this.destroy$.complete();\n this._destroyed = true;\n this.rowIslandAPI.unset(this.id);\n if (this.parentIsland) {\n this.getGridsForIsland(this.key).forEach(function (grid) {\n _this.cleanGridState(grid);\n grid.hgridAPI.unsetChildRowIsland(_this);\n });\n this.parentIsland.rowIslandAPI.unsetChildRowIsland(this);\n }\n else {\n this.rootGrid.hgridAPI.unsetChildRowIsland(this);\n this.cleanGridState(this.rootGrid);\n }\n };\n /**\n * @private\n * @param {?} grid\n * @return {?}\n */\n IgxRowIslandComponent.prototype.cleanGridState = /**\n * @private\n * @param {?} grid\n * @return {?}\n */\n function (grid) {\n grid.childGridTemplates.forEach(function (tmpl) {\n tmpl.owner.cleanView(tmpl.context.templateID);\n });\n grid.childGridTemplates.clear();\n grid.onRowIslandChange();\n };\n /**\n * @hidden\n */\n /**\n * @hidden\n * @return {?}\n */\n IgxRowIslandComponent.prototype.reflow = /**\n * @hidden\n * @return {?}\n */\n function () { };\n /**\n * @hidden\n */\n /**\n * @hidden\n * @return {?}\n */\n IgxRowIslandComponent.prototype.calculateGridHeight = /**\n * @hidden\n * @return {?}\n */\n function () { };\n /**\n * @protected\n * @return {?}\n */\n IgxRowIslandComponent.prototype.updateColumnList = /**\n * @protected\n * @return {?}\n */\n function () {\n var _this = this;\n /** @type {?} */\n var nestedColumns = this.children.map(function (layout) { return layout.columnList.toArray(); });\n /** @type {?} */\n var colsArray = [].concat.apply([], nestedColumns);\n /** @type {?} */\n var topCols = this.columnList.filter(function (item) {\n if (colsArray.indexOf(item) === -1) {\n /* Reset the default width of the columns that come into this row island,\n because the root catches them first during the detectChanges() and sets their defaultWidth. */\n item.defaultWidth = undefined;\n return true;\n }\n return false;\n });\n this.childColumns.reset(topCols);\n if (this.parentIsland) {\n this.parentIsland.columnList.notifyOnChanges();\n }\n else {\n this.rootGrid.columnList.notifyOnChanges();\n }\n this.rowIslandAPI.getChildGrids().forEach(function (grid) {\n grid.createColumnsList(_this.childColumns.toArray());\n if (!document.body.contains(grid.nativeElement)) {\n grid.updateOnRender = true;\n }\n });\n };\n IgxRowIslandComponent.decorators = [\n { type: Component, args: [{\n changeDetection: ChangeDetectionStrategy.OnPush,\n selector: 'igx-row-island',\n template: \"\",\n providers: [IgxRowIslandAPIService]\n }] }\n ];\n /** @nocollapse */\n IgxRowIslandComponent.ctorParameters = function () { return [\n { type: IgxGridSelectionService },\n { type: IgxGridCRUDService },\n { type: IgxColumnResizingService },\n { type: GridBaseAPIService },\n { type: undefined, decorators: [{ type: Inject, args: [IgxGridTransaction,] }] },\n { type: ElementRef },\n { type: NgZone },\n { type: undefined, decorators: [{ type: Inject, args: [DOCUMENT,] }] },\n { type: ChangeDetectorRef },\n { type: ComponentFactoryResolver },\n { type: IterableDiffers },\n { type: ViewContainerRef },\n { type: IgxHierarchicalGridNavigationService },\n { type: IgxFilteringService },\n { type: IgxOverlayService, decorators: [{ type: Inject, args: [IgxOverlayService,] }] },\n { type: IgxGridSummaryService },\n { type: undefined, decorators: [{ type: Optional }, { type: Inject, args: [DisplayDensityToken,] }] },\n { type: IgxRowIslandAPIService }\n ]; };\n IgxRowIslandComponent.propDecorators = {\n key: [{ type: Input }],\n expandChildren: [{ type: Input }],\n children: [{ type: ContentChildren, args: [IgxRowIslandComponent, { read: IgxRowIslandComponent, descendants: false },] }],\n childColumns: [{ type: ContentChildren, args: [IgxColumnComponent, { read: IgxColumnComponent, descendants: false },] }],\n onLayoutChange: [{ type: Output }],\n onGridCreated: [{ type: Output }]\n };\n return IgxRowIslandComponent;\n}(IgxHierarchicalGridBaseComponent));\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\nvar IgxChildGridRowComponent = /** @class */ (function () {\n function IgxChildGridRowComponent(gridAPI, element, resolver, cdr) {\n this.gridAPI = gridAPI;\n this.element = element;\n this.cdr = cdr;\n /**\n * Returns whether the row is expanded.\n * ```typescript\n * const RowExpanded = this.grid1.rowList.first.expanded;\n * ```\n */\n this.expanded = false;\n /**\n * The data passed to the row component.\n *\n * ```typescript\n * // get the row data for the first selected row\n * let selectedRowData = this.grid.selectedRows[0].rowData;\n * ```\n */\n this.rowData = [];\n /**\n * @hidden\n */\n this.tabindex = 0;\n /**\n * @hidden\n */\n this.role = 'row';\n this.resolver = resolver;\n }\n Object.defineProperty(IgxChildGridRowComponent.prototype, \"parentHasScroll\", {\n /**\n * @hidden\n */\n get: /**\n * @hidden\n * @return {?}\n */\n function () {\n return !this.parentGrid.verticalScrollContainer.dc.instance.notVirtual;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxChildGridRowComponent.prototype, \"parentGrid\", {\n /**\n * Get a reference to the grid that contains the selected row.\n *\n * ```typescript\n * handleRowSelection(event) {\n * // the grid on which the onRowSelectionChange event was triggered\n * const grid = event.row.grid;\n * }\n * ```\n *\n * ```html\n * \n * \n * ```\n */\n // TODO: Refactor\n get: /**\n * Get a reference to the grid that contains the selected row.\n *\n * ```typescript\n * handleRowSelection(event) {\n * // the grid on which the onRowSelectionChange event was triggered\n * const grid = event.row.grid;\n * }\n * ```\n *\n * ```html\n * \n * \n * ```\n * @return {?}\n */\n // TODO: Refactor\n function () {\n return this.gridAPI.grid;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxChildGridRowComponent.prototype, \"level\", {\n get: /**\n * @return {?}\n */\n function () {\n return this.layout.level;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxChildGridRowComponent.prototype, \"nativeElement\", {\n /**\n * The native DOM element representing the row. Could be null in certain environments.\n *\n * ```typescript\n * // get the nativeElement of the second selected row\n * let selectedRowNativeElement = this.grid.selectedRows[1].nativeElement;\n * ```\n */\n get: /**\n * The native DOM element representing the row. Could be null in certain environments.\n *\n * ```typescript\n * // get the nativeElement of the second selected row\n * let selectedRowNativeElement = this.grid.selectedRows[1].nativeElement;\n * ```\n * @return {?}\n */\n function () {\n return this.element.nativeElement;\n },\n enumerable: true,\n configurable: true\n });\n /**\n * @hidden\n */\n /**\n * @hidden\n * @return {?}\n */\n IgxChildGridRowComponent.prototype.ngOnInit = /**\n * @hidden\n * @return {?}\n */\n function () {\n var _this = this;\n this.layout.onLayoutChange.subscribe(function (ch) {\n _this._handleLayoutChanges(ch);\n });\n /** @type {?} */\n var changes = this.layout.initialChanges;\n changes.forEach(function (change) {\n _this._handleLayoutChanges(change);\n });\n this.hGrid.parent = this.parentGrid;\n this.hGrid.parentIsland = this.layout;\n this.hGrid.childRow = this;\n // handler logic that re-emits hgrid events on the row island\n this.setupEventEmitters();\n this.layout.onGridCreated.emit({\n owner: this.layout,\n parentID: this.rowData.rowID,\n grid: this.hGrid\n });\n };\n /**\n * @hidden\n */\n /**\n * @hidden\n * @return {?}\n */\n IgxChildGridRowComponent.prototype.ngAfterViewInit = /**\n * @hidden\n * @return {?}\n */\n function () {\n var _this = this;\n this.hGrid.childLayoutList = this.layout.children;\n if (this.layout.childColumns.length > 0 && !this.hGrid.autoGenerate) {\n this.hGrid.createColumnsList(this.layout.childColumns.toArray());\n }\n /** @type {?} */\n var layouts = this.hGrid.childLayoutList.toArray();\n layouts.forEach(function (l) { return _this.hGrid.hgridAPI.registerChildRowIsland(l); });\n this.parentGrid.hgridAPI.registerChildGrid(this.rowData.rowID, this.layout.key, this.hGrid);\n this.layout.rowIslandAPI.registerChildGrid(this.rowData.rowID, this.hGrid);\n this.hGrid.cdr.detectChanges();\n };\n /**\n * @private\n * @return {?}\n */\n IgxChildGridRowComponent.prototype.setupEventEmitters = /**\n * @private\n * @return {?}\n */\n function () {\n var _this = this;\n /** @type {?} */\n var destructor = takeUntil(this.hGrid.destroy$);\n /** @type {?} */\n var factory = this.resolver.resolveComponentFactory(IgxGridComponent);\n // exclude outputs related to two-way binding functionality\n /** @type {?} */\n var inputNames = factory.inputs.map(function (input) { return input.propName; });\n /** @type {?} */\n var outputs = factory.outputs.filter(function (o) {\n /** @type {?} */\n var matchingInputPropName = o.propName.slice(0, o.propName.indexOf('Change'));\n return inputNames.indexOf(matchingInputPropName) === -1;\n });\n outputs.forEach(function (output) {\n if (_this.hGrid[output.propName]) {\n _this.hGrid[output.propName].pipe(destructor).subscribe(function (args) {\n if (!args) {\n args = {};\n }\n args.owner = _this.hGrid;\n _this.layout[output.propName].emit(args);\n });\n }\n });\n };\n /**\n * @private\n * @param {?} changes\n * @return {?}\n */\n IgxChildGridRowComponent.prototype._handleLayoutChanges = /**\n * @private\n * @param {?} changes\n * @return {?}\n */\n function (changes) {\n for (var change in changes) {\n if (changes.hasOwnProperty(change)) {\n this.hGrid[change] = changes[change].currentValue;\n }\n }\n };\n IgxChildGridRowComponent.decorators = [\n { type: Component, args: [{\n changeDetection: ChangeDetectionStrategy.OnPush,\n preserveWhitespaces: false,\n selector: 'igx-child-grid-row',\n template: \"
\\n \\n
\\n\"\n }] }\n ];\n /** @nocollapse */\n IgxChildGridRowComponent.ctorParameters = function () { return [\n { type: GridBaseAPIService },\n { type: ElementRef },\n { type: ComponentFactoryResolver },\n { type: ChangeDetectorRef }\n ]; };\n IgxChildGridRowComponent.propDecorators = {\n layout: [{ type: Input }],\n parentGridID: [{ type: Input }],\n rowData: [{ type: Input }],\n index: [{ type: Input }],\n hGrid: [{ type: ViewChild, args: ['hgrid', { static: true },] }],\n tabindex: [{ type: HostBinding, args: ['attr.tabindex',] }],\n role: [{ type: HostBinding, args: ['attr.role',] }],\n level: [{ type: HostBinding, args: ['attr.data-level',] }]\n };\n return IgxChildGridRowComponent;\n}());\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n/** @type {?} */\nvar NEXT_ID$o = 0;\nvar IgxHierarchicalGridComponent = /** @class */ (function (_super) {\n __extends(IgxHierarchicalGridComponent, _super);\n function IgxHierarchicalGridComponent(selectionService, crudService, colResizingService, gridAPI, transactionFactory, elementRef, zone, document, cdr, resolver, differs, viewRef, navigation, filteringService, overlayService, summaryService, _displayDensityOptions) {\n var _this = _super.call(this, selectionService, crudService, colResizingService, gridAPI, typeof transactionFactory === 'function' ? transactionFactory() : transactionFactory, elementRef, zone, document, cdr, resolver, differs, viewRef, navigation, filteringService, overlayService, summaryService, _displayDensityOptions) || this;\n _this.selectionService = selectionService;\n _this.colResizingService = colResizingService;\n _this.transactionFactory = transactionFactory;\n _this.document = document;\n _this.overlayService = overlayService;\n _this.summaryService = summaryService;\n _this._displayDensityOptions = _displayDensityOptions;\n /**\n * @hidden\n */\n _this.hierarchicalStateChange = new EventEmitter();\n /**\n * @hidden\n */\n _this.childLayoutKeys = [];\n /**\n * @hidden\n */\n _this.highlightedRowID = null;\n /**\n * @hidden\n */\n _this.updateOnRender = false;\n /**\n * @hidden\n */\n _this.parent = null;\n _this._hierarchicalState = [];\n _this._filteredData = null;\n _this.h_id = \"igx-hierarchical-grid-\" + NEXT_ID$o++;\n _this.childGridTemplates = new Map();\n _this.scrollTop = 0;\n _this.scrollLeft = 0;\n _this.hgridAPI = (/** @type {?} */ (gridAPI));\n return _this;\n }\n Object.defineProperty(IgxHierarchicalGridComponent.prototype, \"id\", {\n /**\n * Sets the value of the `id` attribute. If not provided it will be automatically generated.\n * ```html\n * \n * ```\n * @memberof IgxHierarchicalGridComponent\n */\n get: /**\n * Sets the value of the `id` attribute. If not provided it will be automatically generated.\n * ```html\n * \n * ```\n * \\@memberof IgxHierarchicalGridComponent\n * @return {?}\n */\n function () {\n return this.h_id;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxHierarchicalGridComponent.prototype, \"data\", {\n /**\n * Returns an array of data set to the `IgxHierarchicalGridComponent`.\n * ```typescript\n * let filteredData = this.grid.filteredData;\n * ```\n * @memberof IgxHierarchicalGridComponent\n */\n get: /**\n * Returns an array of data set to the `IgxHierarchicalGridComponent`.\n * ```typescript\n * let filteredData = this.grid.filteredData;\n * ```\n * \\@memberof IgxHierarchicalGridComponent\n * @return {?}\n */\n function () {\n return this._data;\n },\n /**\n * An @Input property that lets you fill the `IgxHierarchicalGridComponent` with an array of data.\n * ```html\n * \n * ```\n * @memberof IgxHierarchicalGridComponent\n */\n set: /**\n * An \\@Input property that lets you fill the `IgxHierarchicalGridComponent` with an array of data.\n * ```html\n * \n * ```\n * \\@memberof IgxHierarchicalGridComponent\n * @param {?} value\n * @return {?}\n */\n function (value) {\n this._data = value || [];\n this.summaryService.clearSummaryCache();\n if (this.shouldGenerate) {\n this.setupColumns();\n this.reflow();\n }\n this.cdr.markForCheck();\n if (this.parent && (this.height === null || this.height.indexOf('%') !== -1)) {\n // If the height will change based on how much data there is, recalculate sizes in igxForOf.\n this.notifyChanges(true);\n }\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxHierarchicalGridComponent.prototype, \"hierarchicalState\", {\n /**\n * Sets the state of the `IgxHierarchicalGridComponent` containing which rows are expanded.\n * ```typescript\n * this.gridState = [{ rowID: 1 }, { rowID: 4}];\n * ```\n * ```html\n * \n * \n * \n * \n * \n * ```\n *\n * Two-way data binding.\n * ```html\n * \n * \n * \n * \n * \n * ```\n * @memberof IgxHierarchicalGridComponent\n */\n get: /**\n * Sets the state of the `IgxHierarchicalGridComponent` containing which rows are expanded.\n * ```typescript\n * this.gridState = [{ rowID: 1 }, { rowID: 4}];\n * ```\n * ```html\n * \n * \n * \n * \n * \n * ```\n *\n * Two-way data binding.\n * ```html\n * \n * \n * \n * \n * \n * ```\n * \\@memberof IgxHierarchicalGridComponent\n * @return {?}\n */\n function () {\n return this._hierarchicalState;\n },\n set: /**\n * @param {?} val\n * @return {?}\n */\n function (val) {\n var _this = this;\n if (this._hierarchicalState !== val) {\n this.hierarchicalStateChange.emit(val);\n }\n if (this.hasChildrenKey) {\n val = val.filter(function (item) {\n /** @type {?} */\n var rec = _this.primaryKey ? _this.data.find(function (x) { return x[_this.primaryKey] === item.rowID; }) : item.rowID;\n return rec[_this.hasChildrenKey];\n });\n }\n this._hierarchicalState = val;\n if (this.parent) {\n this.notifyChanges(true);\n }\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxHierarchicalGridComponent.prototype, \"filteredData\", {\n /**\n * Returns an array of objects containing the filtered data in the `IgxHierarchicalGridComponent`.\n * ```typescript\n * let filteredData = this.grid.filteredData;\n * ```\n * @memberof IgxHierarchicalGridComponent\n */\n get: /**\n * Returns an array of objects containing the filtered data in the `IgxHierarchicalGridComponent`.\n * ```typescript\n * let filteredData = this.grid.filteredData;\n * ```\n * \\@memberof IgxHierarchicalGridComponent\n * @return {?}\n */\n function () {\n return this._filteredData;\n },\n /**\n * Sets an array of objects containing the filtered data in the `IgxHierarchicalGridComponent`.\n * ```typescript\n * this.grid.filteredData = [{\n * ID: 1,\n * Name: \"A\"\n * }];\n * ```\n * @memberof IgxHierarchicalGridComponent\n */\n set: /**\n * Sets an array of objects containing the filtered data in the `IgxHierarchicalGridComponent`.\n * ```typescript\n * this.grid.filteredData = [{\n * ID: 1,\n * Name: \"A\"\n * }];\n * ```\n * \\@memberof IgxHierarchicalGridComponent\n * @param {?} value\n * @return {?}\n */\n function (value) {\n this._filteredData = value;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxHierarchicalGridComponent.prototype, \"expandChildren\", {\n /**\n * Gets if all immediate children of the `IgxHierarchicalGridComponent` previously have been set to be expanded/collapsed.\n * If previously set and some rows have been manually expanded/collapsed it will still return the last set value.\n * ```typescript\n * const expanded = this.grid.expandChildren;\n * ```\n * @memberof IgxHierarchicalGridComponent\n */\n get: /**\n * Gets if all immediate children of the `IgxHierarchicalGridComponent` previously have been set to be expanded/collapsed.\n * If previously set and some rows have been manually expanded/collapsed it will still return the last set value.\n * ```typescript\n * const expanded = this.grid.expandChildren;\n * ```\n * \\@memberof IgxHierarchicalGridComponent\n * @return {?}\n */\n function () {\n return this._expandChildren;\n },\n /**\n * Sets if all immediate children of the `IgxHierarchicalGridComponent` should be expanded/collapsed.\n * Defult value is false.\n * ```html\n * \n * ```\n * @memberof IgxHierarchicalGridComponent\n */\n set: /**\n * Sets if all immediate children of the `IgxHierarchicalGridComponent` should be expanded/collapsed.\n * Defult value is false.\n * ```html\n * \n * ```\n * \\@memberof IgxHierarchicalGridComponent\n * @param {?} value\n * @return {?}\n */\n function (value) {\n var _this = this;\n this._expandChildren = value;\n if (value && this.data) {\n this.hierarchicalState = this.data.map(function (rec) {\n return { rowID: _this.primaryKey ? rec[_this.primaryKey] : rec };\n });\n }\n else if (this.data) {\n this.hierarchicalState = [];\n }\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxHierarchicalGridComponent.prototype, \"foreignKey\", {\n /**\n * Gets the unique identifier of the parent row. It may be a `string` or `number` if `primaryKey` of the\n * parent grid is set or an object reference of the parent record otherwise.\n * ```typescript\n * const foreignKey = this.grid.foreignKey;\n * ```\n * @memberof IgxHierarchicalGridComponent\n */\n get: /**\n * Gets the unique identifier of the parent row. It may be a `string` or `number` if `primaryKey` of the\n * parent grid is set or an object reference of the parent record otherwise.\n * ```typescript\n * const foreignKey = this.grid.foreignKey;\n * ```\n * \\@memberof IgxHierarchicalGridComponent\n * @return {?}\n */\n function () {\n if (!this.parent) {\n return null;\n }\n return this.parent.hgridAPI.getParentRowId(this);\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxHierarchicalGridComponent.prototype, \"hasExpandableChildren\", {\n /**\n * @hidden\n */\n get: /**\n * @hidden\n * @return {?}\n */\n function () {\n return !!this.childLayoutKeys.length;\n },\n enumerable: true,\n configurable: true\n });\n /**\n * @hidden\n */\n /**\n * @hidden\n * @return {?}\n */\n IgxHierarchicalGridComponent.prototype.ngOnInit = /**\n * @hidden\n * @return {?}\n */\n function () {\n this._transactions = this.parentIsland ? this.parentIsland.transactions : this._transactions;\n _super.prototype.ngOnInit.call(this);\n };\n /**\n * @return {?}\n */\n IgxHierarchicalGridComponent.prototype.ngDoCheck = /**\n * @return {?}\n */\n function () {\n if (this._cdrRequestRepaint && !this._init) {\n this.updateSizes();\n }\n _super.prototype.ngDoCheck.call(this);\n };\n /**\n * @hidden\n */\n /**\n * @hidden\n * @return {?}\n */\n IgxHierarchicalGridComponent.prototype.ngAfterViewInit = /**\n * @hidden\n * @return {?}\n */\n function () {\n var _this = this;\n _super.prototype.ngAfterViewInit.call(this);\n this.verticalScrollContainer.getScroll().addEventListener('scroll', this.hg_verticalScrollHandler.bind(this));\n this.headerContainer.getScroll().addEventListener('scroll', this.hg_horizontalScrollHandler.bind(this));\n if (this.expandChildren && this.data && this.hierarchicalState.length !== this.data.length) {\n this.hierarchicalState = this.data.map(function (rec) {\n return { rowID: _this.primaryKey ? rec[_this.primaryKey] : rec };\n });\n this.cdr.detectChanges();\n }\n this.verticalScrollContainer.onBeforeViewDestroyed.pipe(takeUntil(this.destroy$)).subscribe(function (view) {\n /** @type {?} */\n var rowData = view.context.$implicit;\n if (_this.isChildGridRecord(rowData)) {\n /** @type {?} */\n var cachedData = _this.childGridTemplates.get(rowData.rowID);\n if (cachedData) {\n /** @type {?} */\n var tmlpOutlet = cachedData.owner;\n tmlpOutlet._viewContainerRef.detach(0);\n }\n }\n });\n if (this.parent) {\n this._displayDensity = this.rootGrid._displayDensity;\n this.rootGrid.onDensityChanged.pipe(takeUntil(this.destroy$)).subscribe(function () {\n _this._displayDensity = _this.rootGrid._displayDensity;\n _this.notifyChanges(true);\n _this.cdr.markForCheck();\n });\n this.childLayoutKeys = this.parentIsland.children.map(function (item) { return item.key; });\n }\n this.toolbarCustomContentTemplates = this.parentIsland ?\n this.parentIsland.toolbarCustomContentTemplates :\n this.toolbarCustomContentTemplates;\n this.headSelectorsTemplates = this.parentIsland ?\n this.parentIsland.headSelectorsTemplates :\n this.headSelectorsTemplates;\n this.rowSelectorsTemplates = this.parentIsland ?\n this.parentIsland.rowSelectorsTemplates :\n this.rowSelectorsTemplates;\n this.dragIndicatorIconTemplate = this.parentIsland ?\n this.parentIsland.dragIndicatorIconTemplate :\n this.dragIndicatorIconTemplate;\n this.rowExpandedIndicatorTemplate = this.rootGrid.rowExpandedIndicatorTemplate;\n this.rowCollapsedIndicatorTemplate = this.rootGrid.rowCollapsedIndicatorTemplate;\n this.headerCollapseIndicatorTemplate = this.rootGrid.headerCollapseIndicatorTemplate;\n this.headerExpandIndicatorTemplate = this.rootGrid.headerExpandIndicatorTemplate;\n this.hasChildrenKey = this.parentIsland ?\n this.parentIsland.hasChildrenKey || this.rootGrid.hasChildrenKey :\n this.rootGrid.hasChildrenKey;\n this.showExpandAll = this.parentIsland ?\n this.parentIsland.showExpandAll : this.rootGrid.showExpandAll;\n };\n /**\n * @private\n * @return {?}\n */\n IgxHierarchicalGridComponent.prototype.updateSizes = /**\n * @private\n * @return {?}\n */\n function () {\n if (document.body.contains(this.nativeElement) && this.isPercentWidth) {\n this.reflow();\n this.hgridAPI.getChildGrids(false).forEach(function (grid) {\n grid.updateSizes();\n });\n }\n };\n /**\n * @protected\n * @param {?} renderedHeight\n * @return {?}\n */\n IgxHierarchicalGridComponent.prototype._shouldAutoSize = /**\n * @protected\n * @param {?} renderedHeight\n * @return {?}\n */\n function (renderedHeight) {\n if (this.isPercentHeight && this.parent) {\n return true;\n }\n return _super.prototype._shouldAutoSize.call(this, renderedHeight);\n };\n Object.defineProperty(IgxHierarchicalGridComponent.prototype, \"outletDirective\", {\n get: /**\n * @return {?}\n */\n function () {\n return this.rootGrid._outletDirective;\n },\n enumerable: true,\n configurable: true\n });\n /**\n * @hidden\n */\n /**\n * @hidden\n * @return {?}\n */\n IgxHierarchicalGridComponent.prototype.ngAfterContentInit = /**\n * @hidden\n * @return {?}\n */\n function () {\n var _this = this;\n this.updateColumnList(false);\n this.childLayoutKeys = this.parent ?\n this.parentIsland.children.map(function (item) { return item.key; }) :\n this.childLayoutKeys = this.childLayoutList.map(function (item) { return item.key; });\n this.childLayoutList.notifyOnChanges();\n this.childLayoutList.changes.pipe(takeUntil(this.destroy$))\n .subscribe(function () { return _this.onRowIslandChange(); });\n _super.prototype.ngAfterContentInit.call(this);\n };\n /**\n * @hidden\n */\n /**\n * @hidden\n * @return {?}\n */\n IgxHierarchicalGridComponent.prototype.onRowIslandChange = /**\n * @hidden\n * @return {?}\n */\n function () {\n if (this.parent) {\n this.childLayoutKeys = this.parentIsland.children.filter(function (item) { return !((/** @type {?} */ (item)))._destroyed; }).map(function (item) { return item.key; });\n }\n else {\n this.childLayoutKeys = this.childLayoutList.filter(function (item) { return !((/** @type {?} */ (item)))._destroyed; }).map(function (item) { return item.key; });\n }\n if (!((/** @type {?} */ (this.cdr))).destroyed) {\n this.cdr.detectChanges();\n }\n };\n /**\n * @protected\n * @param {?} change\n * @return {?}\n */\n IgxHierarchicalGridComponent.prototype.onColumnsChanged = /**\n * @protected\n * @param {?} change\n * @return {?}\n */\n function (change) {\n var _this = this;\n this.updateColumnList();\n /** @type {?} */\n var cols = change.filter(function (c) { return c.gridAPI.grid === _this; });\n if (cols.length > 0) {\n this.columnList.reset(cols);\n _super.prototype.onColumnsChanged.call(this, this.columnList);\n }\n };\n /**\n * @private\n * @param {?=} recalcColSizes\n * @return {?}\n */\n IgxHierarchicalGridComponent.prototype.updateColumnList = /**\n * @private\n * @param {?=} recalcColSizes\n * @return {?}\n */\n function (recalcColSizes) {\n if (recalcColSizes === void 0) { recalcColSizes = true; }\n /** @type {?} */\n var childLayouts = this.parent ? this.childLayoutList : this.allLayoutList;\n /** @type {?} */\n var nestedColumns = childLayouts.map(function (layout) {\n return layout.columnList.toArray();\n });\n /** @type {?} */\n var colsArray = [].concat.apply([], nestedColumns);\n /** @type {?} */\n var colLength = this.columnList.length;\n if (colsArray.length > 0) {\n /** @type {?} */\n var topCols = this.columnList.filter(function (item) {\n return colsArray.indexOf(item) === -1;\n });\n this.columnList.reset(topCols);\n if (recalcColSizes && this.columnList.length !== colLength) {\n this.calculateGridSizes();\n }\n }\n };\n /**\n * @return {?}\n */\n IgxHierarchicalGridComponent.prototype.ngOnDestroy = /**\n * @return {?}\n */\n function () {\n if (!this.parent) {\n this.hgridAPI.getChildGrids(true).forEach(function (grid) {\n if (!grid.childRow.cdr.destroyed) {\n grid.childRow.cdr.destroy();\n }\n });\n }\n if (this.parent && this.selectionService.activeElement) {\n // in case selection is in destroyed child grid, selection should be cleared.\n this._clearSeletionHighlights();\n }\n _super.prototype.ngOnDestroy.call(this);\n };\n /**\n * @private\n * @return {?}\n */\n IgxHierarchicalGridComponent.prototype._clearSeletionHighlights = /**\n * @private\n * @return {?}\n */\n function () {\n __spread([this.rootGrid], this.rootGrid.getChildGrids(true)).forEach(function (grid) {\n grid.selectionService.clear();\n grid.selectionService.activeElement = null;\n grid.nativeElement.classList.remove('igx-grid__tr--highlighted');\n grid.highlightedRowID = null;\n grid.cdr.markForCheck();\n });\n };\n Object.defineProperty(IgxHierarchicalGridComponent.prototype, \"template\", {\n /**\n * @hidden\n */\n get: /**\n * @hidden\n * @return {?}\n */\n function () {\n if (this.filteredData && this.filteredData.length === 0) {\n return this.emptyGridTemplate ? this.emptyGridTemplate : this.emptyFilteredGridTemplate;\n }\n if (this.isLoading && (!this.data || this.dataLength === 0)) {\n return this.loadingGridTemplate ? this.loadingGridTemplate : this.loadingGridDefaultTemplate;\n }\n if (this.dataLength === 0) {\n return this.emptyGridTemplate ? this.emptyGridTemplate : this.emptyGridDefaultTemplate;\n }\n },\n enumerable: true,\n configurable: true\n });\n /**\n * @hidden\n * Gets the combined width of the columns that are specific to the enabled grid features. They are fixed.\n * TODO: Remove for Angular 8. Calling parent class getter using super is not supported for now.\n */\n /**\n * @hidden\n * Gets the combined width of the columns that are specific to the enabled grid features. They are fixed.\n * TODO: Remove for Angular 8. Calling parent class getter using super is not supported for now.\n * @return {?}\n */\n IgxHierarchicalGridComponent.prototype.getFeatureColumnsWidth = /**\n * @hidden\n * Gets the combined width of the columns that are specific to the enabled grid features. They are fixed.\n * TODO: Remove for Angular 8. Calling parent class getter using super is not supported for now.\n * @return {?}\n */\n function () {\n /** @type {?} */\n var width = _super.prototype.getFeatureColumnsWidth.call(this);\n if (this.hasExpandableChildren) {\n width += this.headerHierarchyExpander.nativeElement.offsetWidth || this.getDefaultExpanderWidth();\n }\n return width;\n };\n /**\n * @private\n * @return {?}\n */\n IgxHierarchicalGridComponent.prototype.getDefaultExpanderWidth = /**\n * @private\n * @return {?}\n */\n function () {\n switch (this.displayDensity) {\n case DisplayDensity.cosy:\n return 57;\n case DisplayDensity.compact:\n return 49;\n default:\n return 72;\n }\n };\n /**\n * @hidden\n */\n /**\n * @hidden\n * @param {?} rowData\n * @return {?}\n */\n IgxHierarchicalGridComponent.prototype.isRowHighlighted = /**\n * @hidden\n * @param {?} rowData\n * @return {?}\n */\n function (rowData) {\n return this.highlightedRowID === rowData.rowID;\n };\n /**\n * @hidden\n */\n /**\n * @hidden\n * @param {?} record\n * @return {?}\n */\n IgxHierarchicalGridComponent.prototype.isHierarchicalRecord = /**\n * @hidden\n * @param {?} record\n * @return {?}\n */\n function (record) {\n return this.childLayoutList.length !== 0 && record[this.childLayoutList.first.key];\n };\n /**\n * @hidden\n */\n /**\n * @hidden\n * @param {?} record\n * @return {?}\n */\n IgxHierarchicalGridComponent.prototype.isChildGridRecord = /**\n * @hidden\n * @param {?} record\n * @return {?}\n */\n function (record) {\n // Can be null when there is defined layout but no child data was found\n return record.childGridsData !== undefined;\n };\n /**\n * @hidden\n */\n /**\n * @hidden\n * @param {?} index\n * @param {?} rec\n * @return {?}\n */\n IgxHierarchicalGridComponent.prototype.trackChanges = /**\n * @hidden\n * @param {?} index\n * @param {?} rec\n * @return {?}\n */\n function (index, rec) {\n if (rec.childGridsData !== undefined) {\n // if is child rec\n return rec.rowID;\n }\n return rec;\n };\n /**\n * @hidden\n */\n /**\n * @hidden\n * @param {?} rowData\n * @return {?}\n */\n IgxHierarchicalGridComponent.prototype.getContext = /**\n * @hidden\n * @param {?} rowData\n * @return {?}\n */\n function (rowData) {\n if (this.isChildGridRecord(rowData)) {\n /** @type {?} */\n var cachedData = this.childGridTemplates.get(rowData.rowID);\n if (cachedData) {\n /** @type {?} */\n var view = cachedData.view;\n /** @type {?} */\n var tmlpOutlet = cachedData.owner;\n return {\n $implicit: rowData,\n moveView: view,\n owner: tmlpOutlet,\n index: this.dataView.indexOf(rowData)\n };\n }\n else {\n /** @type {?} */\n var rowID = this.primaryKey ? rowData.rowID : this.data.indexOf(rowData.rowID);\n // child rows contain unique grids, hence should have unique templates\n return {\n $implicit: rowData,\n templateID: 'childRow-' + rowID,\n index: this.dataView.indexOf(rowData)\n };\n }\n }\n else {\n return {\n $implicit: rowData,\n templateID: 'dataRow',\n index: this.dataView.indexOf(rowData)\n };\n }\n };\n Object.defineProperty(IgxHierarchicalGridComponent.prototype, \"rootGrid\", {\n /**\n * @hidden\n */\n get: /**\n * @hidden\n * @template THIS\n * @this {THIS}\n * @return {THIS}\n */\n function () {\n /** @type {?} */\n var currGrid = (/** @type {?} */ (this));\n while (currGrid.parent) {\n currGrid = currGrid.parent;\n }\n return currGrid;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxHierarchicalGridComponent.prototype, \"iconTemplate\", {\n /**\n * @hidden\n */\n get: /**\n * @hidden\n * @return {?}\n */\n function () {\n /** @type {?} */\n var expanded = this.hierarchicalState.length > 0 && this.hasExpandableChildren;\n if (!expanded && this.showExpandAll) {\n return this.headerCollapseIndicatorTemplate || this.defaultCollapsedTemplate;\n }\n else {\n return this.headerExpandIndicatorTemplate || this.defaultExpandedTemplate;\n }\n },\n enumerable: true,\n configurable: true\n });\n /**\n * @hidden\n * @internal\n */\n /**\n * @hidden\n * \\@internal\n * @return {?}\n */\n IgxHierarchicalGridComponent.prototype.getDragGhostCustomTemplate = /**\n * @hidden\n * \\@internal\n * @return {?}\n */\n function () {\n if (this.parentIsland) {\n return this.parentIsland.getDragGhostCustomTemplate();\n }\n return _super.prototype.getDragGhostCustomTemplate.call(this);\n };\n /**\n * @hidden\n */\n /**\n * @hidden\n * @protected\n * @param {?} collection\n * @param {?=} cb\n * @return {?}\n */\n IgxHierarchicalGridComponent.prototype.initColumns = /**\n * @hidden\n * @protected\n * @param {?} collection\n * @param {?=} cb\n * @return {?}\n */\n function (collection, cb) {\n if (cb === void 0) { cb = null; }\n if (this.hasColumnLayouts) {\n // invalid configuration - hierarchical grid should not allow column layouts\n // remove column layouts\n /** @type {?} */\n var nonColumnLayoutColumns = this.columnList.filter(function (col) { return !col.columnLayout && !col.columnLayoutChild; });\n this.columnList.reset(nonColumnLayoutColumns);\n }\n _super.prototype.initColumns.call(this, collection, cb);\n };\n /**\n * @hidden\n * Gets the visible content height that includes header + tbody + footer.\n * For hierarchical child grid it may be scrolled and not fully visible.\n */\n /**\n * @hidden\n * Gets the visible content height that includes header + tbody + footer.\n * For hierarchical child grid it may be scrolled and not fully visible.\n * @return {?}\n */\n IgxHierarchicalGridComponent.prototype.getVisibleContentHeight = /**\n * @hidden\n * Gets the visible content height that includes header + tbody + footer.\n * For hierarchical child grid it may be scrolled and not fully visible.\n * @return {?}\n */\n function () {\n /** @type {?} */\n var height = _super.prototype.getVisibleContentHeight.call(this);\n if (this.parent) {\n /** @type {?} */\n var rootHeight = this.rootGrid.getVisibleContentHeight();\n /** @type {?} */\n var topDiff = this.nativeElement.getBoundingClientRect().top - this.rootGrid.nativeElement.getBoundingClientRect().top;\n height = rootHeight - topDiff > height ? height : rootHeight - topDiff;\n }\n return height;\n };\n /**\n * @hidden\n */\n /**\n * @hidden\n * @return {?}\n */\n IgxHierarchicalGridComponent.prototype.toggleAll = /**\n * @hidden\n * @return {?}\n */\n function () {\n /** @type {?} */\n var expanded = this.hierarchicalState.length > 0 && this.hasExpandableChildren;\n if (!expanded && this.showExpandAll) {\n this.expandAll();\n }\n else {\n this.collapseAll();\n }\n };\n /**\n * Collapses all rows of the current hierarchical grid.\n * ```typescript\n * this.grid.collapseAll();\n * ```\n * @memberof IgxHierarchicalGridComponent\n */\n /**\n * Collapses all rows of the current hierarchical grid.\n * ```typescript\n * this.grid.collapseAll();\n * ```\n * \\@memberof IgxHierarchicalGridComponent\n * @return {?}\n */\n IgxHierarchicalGridComponent.prototype.collapseAll = /**\n * Collapses all rows of the current hierarchical grid.\n * ```typescript\n * this.grid.collapseAll();\n * ```\n * \\@memberof IgxHierarchicalGridComponent\n * @return {?}\n */\n function () {\n this.hierarchicalState = [];\n };\n /**\n * Expands all rows of the current hierarchical grid.\n * ```typescript\n * this.grid.expandAll();\n * ```\n * @memberof IgxHierarchicalGridComponent\n */\n /**\n * Expands all rows of the current hierarchical grid.\n * ```typescript\n * this.grid.expandAll();\n * ```\n * \\@memberof IgxHierarchicalGridComponent\n * @return {?}\n */\n IgxHierarchicalGridComponent.prototype.expandAll = /**\n * Expands all rows of the current hierarchical grid.\n * ```typescript\n * this.grid.expandAll();\n * ```\n * \\@memberof IgxHierarchicalGridComponent\n * @return {?}\n */\n function () {\n var _this = this;\n if (this.data) {\n this.hierarchicalState = this.data.map(function (rec) {\n return { rowID: _this.primaryKey ? rec[_this.primaryKey] : rec };\n });\n }\n };\n /**\n * @hidden\n */\n /**\n * @hidden\n * @param {?} record\n * @return {?}\n */\n IgxHierarchicalGridComponent.prototype.isExpanded = /**\n * @hidden\n * @param {?} record\n * @return {?}\n */\n function (record) {\n var _this = this;\n /** @type {?} */\n var inState;\n if (record.childGridsData !== undefined) {\n inState = !!this.hierarchicalState.find(function (v) { return v.rowID === record.rowID; });\n }\n else {\n inState = !!this.hierarchicalState.find(function (v) {\n return _this.primaryKey ? v.rowID === record[_this.primaryKey] : v.rowID === record;\n });\n }\n return inState && this.childLayoutList.length !== 0;\n };\n /**\n * @hidden\n */\n /**\n * @hidden\n * @param {?} args\n * @return {?}\n */\n IgxHierarchicalGridComponent.prototype.viewCreatedHandler = /**\n * @hidden\n * @param {?} args\n * @return {?}\n */\n function (args) {\n if (this.isChildGridRecord(args.context.$implicit)) {\n /** @type {?} */\n var key = args.context.$implicit.rowID;\n this.childGridTemplates.set(key, args);\n }\n };\n /**\n * @hidden\n */\n /**\n * @hidden\n * @param {?} args\n * @return {?}\n */\n IgxHierarchicalGridComponent.prototype.viewMovedHandler = /**\n * @hidden\n * @param {?} args\n * @return {?}\n */\n function (args) {\n var _this = this;\n if (this.isChildGridRecord(args.context.$implicit)) {\n // view was moved, update owner in cache\n /** @type {?} */\n var key = args.context.$implicit.rowID;\n /** @type {?} */\n var cachedData = this.childGridTemplates.get(key);\n cachedData.owner = args.owner;\n this.childLayoutList.forEach(function (layout) {\n /** @type {?} */\n var relatedGrid = _this.hgridAPI.getChildGridByID(layout.key, args.context.$implicit.rowID);\n if (relatedGrid && relatedGrid.updateOnRender) {\n // Detect changes if `expandChildren` has changed when the grid wasn't visible. This is for performance reasons.\n relatedGrid.notifyChanges(true);\n relatedGrid.updateOnRender = false;\n }\n });\n /** @type {?} */\n var childGrids = this.getChildGrids(true);\n childGrids.forEach(function (grid) {\n if (grid.isPercentWidth) {\n grid.notifyChanges(true);\n }\n grid.updateScrollPosition();\n });\n }\n };\n /**\n * @hidden\n */\n /**\n * @hidden\n * @return {?}\n */\n IgxHierarchicalGridComponent.prototype.updateScrollPosition = /**\n * @hidden\n * @return {?}\n */\n function () {\n /** @type {?} */\n var vScr = this.verticalScrollContainer.getScroll();\n /** @type {?} */\n var hScr = this.headerContainer.getScroll();\n if (vScr) {\n vScr.scrollTop = this.scrollTop;\n }\n if (hScr) {\n hScr.scrollLeft = this.scrollLeft;\n }\n };\n /**\n * @protected\n * @param {?=} inDeph\n * @return {?}\n */\n IgxHierarchicalGridComponent.prototype.getChildGrids = /**\n * @protected\n * @param {?=} inDeph\n * @return {?}\n */\n function (inDeph) {\n return this.hgridAPI.getChildGrids(inDeph);\n };\n /**\n * @protected\n * @param {?} data\n * @return {?}\n */\n IgxHierarchicalGridComponent.prototype.generateDataFields = /**\n * @protected\n * @param {?} data\n * @return {?}\n */\n function (data) {\n var _this = this;\n return _super.prototype.generateDataFields.call(this, data).filter(function (field) {\n /** @type {?} */\n var layoutsList = _this.parentIsland ? _this.parentIsland.children : _this.childLayoutList;\n /** @type {?} */\n var keys = layoutsList.map(function (item) { return item.key; });\n return keys.indexOf(field) === -1;\n });\n };\n /**\n * @private\n * @param {?} event\n * @return {?}\n */\n IgxHierarchicalGridComponent.prototype.hg_verticalScrollHandler = /**\n * @private\n * @param {?} event\n * @return {?}\n */\n function (event) {\n this.scrollTop = event.target.scrollTop;\n };\n /**\n * @return {?}\n */\n IgxHierarchicalGridComponent.prototype.onContainerScroll = /**\n * @return {?}\n */\n function () {\n this.hideOverlays();\n };\n /**\n * @private\n * @param {?} event\n * @return {?}\n */\n IgxHierarchicalGridComponent.prototype.hg_horizontalScrollHandler = /**\n * @private\n * @param {?} event\n * @return {?}\n */\n function (event) {\n this.scrollLeft = event.target.scrollLeft;\n };\n IgxHierarchicalGridComponent.decorators = [\n { type: Component, args: [{\n changeDetection: ChangeDetectionStrategy.OnPush,\n preserveWhitespaces: false,\n selector: 'igx-hierarchical-grid',\n template: \"\\n\\n\\n
\\n
\\n
\\n \\n 0\\\"\\n [igxColumnMovingDrop]=\\\"headerContainer\\\" [attr.droppable]=\\\"true\\\" id=\\\"left\\\"\\n class=\\\"igx-grid__scroll-on-drag-pinned\\\" [style.left.px]=\\\"pinnedWidth\\\">\\n
\\n \\n
\\n \\n
\\n
\\n \\n \\n
\\n
\\n
\\n \\n
\\n \\n \\n
\\n
\\n 0\\\">\\n \\n \\n \\n \\n \\n \\n \\n
\\n \\n
\\n
\\n \\n \\n
\\n \\n
\\n
\\n\\n
\\n
\\n \\n 0\\\"\\n [igxColumnMovingDrop]=\\\"headerContainer\\\" [attr.droppable]=\\\"true\\\" id=\\\"left\\\"\\n class=\\\"igx-grid__scroll-on-drag-pinned\\\" [style.left.px]=\\\"pinnedWidth\\\">\\n \\n \\n \\n \\n \\n \\n \\n \\n \\n
\\n \\n \\n
\\n
\\n \\n \\n \\n \\n \\n \\n
\\n
\\n \\n
\\n \\n
\\n
\\n\\n\\n
\\n \\n \\n
\\n
\\n\\n
\\n
\\n
\\n \\n \\n
\\n
\\n\\n
\\n \\n \\n \\n \\n \\n
\\n\\n\\n \\n \\n\\n\\n\\n {{emptyFilteredGridMessage}}\\n\\n\\n\\n {{emptyGridMessage}}\\n\\n\\n\\n
\\n \\n \\n
\\n
\\n\\n\\n unfold_more\\n\\n\\n\\n unfold_less\\n\\n\\n
\\n
\\n \\n \\n
\\n
\\n\\n You have {{ rowChangesCount }} changes in this row\\n\\n\\n \\n \\n\\n\\n
\\n \\n \\n \\n \\n
\\n
\\n
\\n \\n \\n
\\n
\\n
\\n\\n\\n drag_indicator\\n\\n\\n\\n
\\n 0 && context.totalCount === context.selectedCount\\\"\\n disableRipple=\\\"true\\\"\\n [ngStyle]=\\\"{'visibility': isMultiRowSelectionEnabled? 'visible' : 'hidden' }\\\"\\n [indeterminate]=\\\"context.selectedCount > 0 && context.selectedCount !== context.totalCount\\\"\\n [aria-label]=\\\"headSelectorBaseAriaLabel\\\"\\n #headerCheckbox>\\n \\n
\\n
\\n\\n\\n
\\n
\\n\",\n providers: [\n IgxGridSelectionService,\n IgxGridCRUDService,\n { provide: GridBaseAPIService, useClass: IgxHierarchicalGridAPIService },\n { provide: IgxGridBaseComponent, useExisting: forwardRef(function () { return IgxHierarchicalGridComponent; }) },\n IgxGridSummaryService,\n IgxFilteringService,\n IgxHierarchicalGridNavigationService,\n IgxForOfSyncService,\n IgxForOfScrollSyncService\n ]\n }] }\n ];\n /** @nocollapse */\n IgxHierarchicalGridComponent.ctorParameters = function () { return [\n { type: IgxGridSelectionService },\n { type: IgxGridCRUDService },\n { type: IgxColumnResizingService },\n { type: GridBaseAPIService },\n { type: undefined, decorators: [{ type: Inject, args: [IgxGridTransaction,] }] },\n { type: ElementRef },\n { type: NgZone },\n { type: undefined, decorators: [{ type: Inject, args: [DOCUMENT,] }] },\n { type: ChangeDetectorRef },\n { type: ComponentFactoryResolver },\n { type: IterableDiffers },\n { type: ViewContainerRef },\n { type: IgxHierarchicalGridNavigationService },\n { type: IgxFilteringService },\n { type: IgxOverlayService, decorators: [{ type: Inject, args: [IgxOverlayService,] }] },\n { type: IgxGridSummaryService },\n { type: undefined, decorators: [{ type: Optional }, { type: Inject, args: [DisplayDensityToken,] }] }\n ]; };\n IgxHierarchicalGridComponent.propDecorators = {\n id: [{ type: HostBinding, args: ['attr.id',] }, { type: Input }],\n data: [{ type: Input }],\n hierarchicalState: [{ type: Input }],\n hierarchicalStateChange: [{ type: Output }],\n expandChildren: [{ type: Input }],\n childLayoutList: [{ type: ContentChildren, args: [IgxRowIslandComponent, { read: IgxRowIslandComponent, descendants: false },] }],\n allLayoutList: [{ type: ContentChildren, args: [IgxRowIslandComponent, { read: IgxRowIslandComponent, descendants: true },] }],\n hierarchicalRecordTemplate: [{ type: ViewChild, args: ['hierarchical_record_template', { read: TemplateRef, static: true },] }],\n childTemplate: [{ type: ViewChild, args: ['child_record_template', { read: TemplateRef, static: true },] }],\n headerHierarchyExpander: [{ type: ViewChild, args: ['headerHierarchyExpander', { read: ElementRef, static: true },] }],\n templateOutlets: [{ type: ViewChildren, args: [IgxTemplateOutletDirective, { read: IgxTemplateOutletDirective },] }],\n hierarchicalRows: [{ type: ViewChildren, args: [IgxChildGridRowComponent, { read: IgxChildGridRowComponent },] }]\n };\n return IgxHierarchicalGridComponent;\n}(IgxHierarchicalGridBaseComponent));\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\nvar IgxHierarchicalGridCellComponent = /** @class */ (function (_super) {\n __extends(IgxHierarchicalGridCellComponent, _super);\n function IgxHierarchicalGridCellComponent(selectionService, crudService, gridAPI, cdr, helement, zone, touchManager, platformUtil) {\n var _this = _super.call(this, selectionService, crudService, gridAPI, cdr, helement, zone, touchManager, platformUtil) || this;\n _this.selectionService = selectionService;\n _this.crudService = crudService;\n _this.gridAPI = gridAPI;\n _this.cdr = cdr;\n _this.helement = helement;\n _this.zone = zone;\n _this.platformUtil = platformUtil;\n return _this;\n // this.hSelection = selection;\n }\n /**\n * @return {?}\n */\n IgxHierarchicalGridCellComponent.prototype.ngOnInit = /**\n * @return {?}\n */\n function () {\n _super.prototype.ngOnInit.call(this);\n this._rootGrid = this._getRootGrid();\n };\n /**\n * @private\n * @return {?}\n */\n IgxHierarchicalGridCellComponent.prototype._getRootGrid = /**\n * @private\n * @return {?}\n */\n function () {\n /** @type {?} */\n var currGrid = this.grid;\n while (currGrid.parent) {\n currGrid = currGrid.parent;\n }\n return currGrid;\n };\n // TODO: Extend the new selection service to avoid complete traversal\n // TODO: Extend the new selection service to avoid complete traversal\n /**\n * @return {?}\n */\n IgxHierarchicalGridCellComponent.prototype._clearAllHighlights = \n // TODO: Extend the new selection service to avoid complete traversal\n /**\n * @return {?}\n */\n function () {\n __spread([this._rootGrid], this._rootGrid.getChildGrids(true)).forEach(function (grid) {\n grid.selectionService.clear();\n grid.selectionService.activeElement = null;\n grid.nativeElement.classList.remove('igx-grid__tr--highlighted');\n grid.highlightedRowID = null;\n grid.cdr.markForCheck();\n });\n };\n /**\n * @hidden\n * @internal\n */\n /**\n * @hidden\n * \\@internal\n * @param {?} event\n * @return {?}\n */\n IgxHierarchicalGridCellComponent.prototype.onFocus = /**\n * @hidden\n * \\@internal\n * @param {?} event\n * @return {?}\n */\n function (event) {\n this._clearAllHighlights();\n /** @type {?} */\n var currentElement = this.grid.nativeElement;\n /** @type {?} */\n var parentGrid = this.grid;\n /** @type {?} */\n var childGrid;\n // add highligh to the current grid\n if (this._rootGrid.id !== currentElement.id) {\n currentElement.classList.add('igx-grid__tr--highlighted');\n }\n // add highligh to the current grid\n while (this._rootGrid.id !== parentGrid.id) {\n childGrid = parentGrid;\n parentGrid = parentGrid.parent;\n /** @type {?} */\n var parentRowID = parentGrid.hgridAPI.getParentRowId(childGrid);\n parentGrid.highlightedRowID = parentRowID;\n }\n _super.prototype.onFocus.call(this, event);\n };\n // TODO: Refactor\n /**\n * @hidden\n * @internal\n */\n // TODO: Refactor\n /**\n * @hidden\n * \\@internal\n * @param {?} event\n * @return {?}\n */\n IgxHierarchicalGridCellComponent.prototype.dispatchEvent = \n // TODO: Refactor\n /**\n * @hidden\n * \\@internal\n * @param {?} event\n * @return {?}\n */\n function (event) {\n var _this = this;\n /** @type {?} */\n var key = event.key.toLowerCase();\n if (event.altKey && !this.row.added) {\n /** @type {?} */\n var grid = this.gridAPI.grid;\n /** @type {?} */\n var state = this.gridAPI.grid.hierarchicalState;\n /** @type {?} */\n var collapse = this.row.expanded && (key === 'left' || key === 'arrowleft' || key === 'up' || key === 'arrowup');\n /** @type {?} */\n var expand = !this.row.expanded && (key === 'right' || key === 'arrowright' || key === 'down' || key === 'arrowdown');\n if (collapse) {\n grid.hierarchicalState = state.filter(function (v) {\n return v.rowID !== _this.row.rowID;\n });\n }\n else if (expand) {\n state.push({ rowID: this.row.rowID });\n grid.hierarchicalState = __spread(state);\n }\n if (expand || collapse) {\n /** @type {?} */\n var rowID = this.cellID.rowID;\n grid.cdr.detectChanges();\n this.persistFocusedCell(rowID);\n }\n return;\n }\n _super.prototype.dispatchEvent.call(this, event);\n };\n /**\n * @protected\n * @param {?} rowID\n * @return {?}\n */\n IgxHierarchicalGridCellComponent.prototype.persistFocusedCell = /**\n * @protected\n * @param {?} rowID\n * @return {?}\n */\n function (rowID) {\n var _this = this;\n requestAnimationFrame(function () {\n // TODO: Test it out\n /** @type {?} */\n var cell = _this.gridAPI.get_cell_by_key(rowID, _this.column.field);\n if (cell) {\n cell.nativeElement.focus();\n }\n });\n };\n IgxHierarchicalGridCellComponent.decorators = [\n { type: Component, args: [{\n changeDetection: ChangeDetectionStrategy.OnPush,\n preserveWhitespaces: false,\n selector: 'igx-hierarchical-grid-cell',\n template: \"\\n
{{ formatter ? formatter(value) : column.dataType === 'number' ? (value | igxdecimal:\\n grid.locale) : column.dataType === 'date' ? (value | igxdate: grid.locale) : value }}
\\n
\\n\\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n\\n\\n\\n\",\n providers: [HammerGesturesManager]\n }] }\n ];\n /** @nocollapse */\n IgxHierarchicalGridCellComponent.ctorParameters = function () { return [\n { type: IgxGridSelectionService },\n { type: IgxGridCRUDService },\n { type: GridBaseAPIService },\n { type: ChangeDetectorRef },\n { type: ElementRef },\n { type: NgZone },\n { type: HammerGesturesManager },\n { type: PlatformUtil }\n ]; };\n IgxHierarchicalGridCellComponent.propDecorators = {\n onFocus: [{ type: HostListener, args: ['focus', ['$event'],] }],\n dispatchEvent: [{ type: HostListener, args: ['keydown', ['$event'],] }]\n };\n return IgxHierarchicalGridCellComponent;\n}(IgxGridCellComponent));\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\nvar IgxHierarchicalRowComponent = /** @class */ (function (_super) {\n __extends(IgxHierarchicalRowComponent, _super);\n function IgxHierarchicalRowComponent() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n /**\n * @hidden\n */\n _this.tabindex = 0;\n /**\n * @hidden\n * \\@internal\n */\n _this.select = function () {\n _this.grid.selectRows([_this.rowID]);\n };\n /**\n * @hidden\n * \\@internal\n */\n _this.deselect = function () {\n _this.grid.deselectRows([_this.rowID]);\n };\n return _this;\n }\n Object.defineProperty(IgxHierarchicalRowComponent.prototype, \"viewIndex\", {\n get: /**\n * @return {?}\n */\n function () {\n return this.index + this.grid.page * this.grid.perPage;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxHierarchicalRowComponent.prototype, \"expanded\", {\n /**\n * Returns whether the row is expanded.\n * ```typescript\n * const RowExpanded = this.grid1.rowList.first.expanded;\n * ```\n */\n get: /**\n * Returns whether the row is expanded.\n * ```typescript\n * const RowExpanded = this.grid1.rowList.first.expanded;\n * ```\n * @return {?}\n */\n function () {\n return this.grid.isExpanded(this.rowData);\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxHierarchicalRowComponent.prototype, \"hasChildren\", {\n get: /**\n * @return {?}\n */\n function () {\n return !!this.grid.childLayoutKeys.length;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxHierarchicalRowComponent.prototype, \"highlighted\", {\n /**\n * @hidden\n */\n get: /**\n * @hidden\n * @return {?}\n */\n function () {\n return this.grid && this.grid.highlightedRowID === this.rowID;\n },\n enumerable: true,\n configurable: true\n });\n /**\n * @hidden\n */\n /**\n * @hidden\n * @param {?} event\n * @return {?}\n */\n IgxHierarchicalRowComponent.prototype.expanderClick = /**\n * @hidden\n * @param {?} event\n * @return {?}\n */\n function (event) {\n event.stopPropagation();\n this.toggle();\n };\n /**\n * Toggles the hierarchical row.\n * ```typescript\n * this.grid1.rowList.first.toggle()\n * ```\n */\n /**\n * Toggles the hierarchical row.\n * ```typescript\n * this.grid1.rowList.first.toggle()\n * ```\n * @return {?}\n */\n IgxHierarchicalRowComponent.prototype.toggle = /**\n * Toggles the hierarchical row.\n * ```typescript\n * this.grid1.rowList.first.toggle()\n * ```\n * @return {?}\n */\n function () {\n var _this = this;\n if (this.added) {\n return;\n }\n /** @type {?} */\n var grid = this.gridAPI.grid;\n this.endEdit(grid.rootGrid);\n /** @type {?} */\n var state = this.gridAPI.grid.hierarchicalState;\n if (!this.expanded) {\n state.push({ rowID: this.rowID });\n grid.hierarchicalState = __spread(state);\n }\n else {\n grid.hierarchicalState = state.filter(function (v) {\n return v.rowID !== _this.rowID;\n });\n }\n grid.cdr.detectChanges();\n };\n Object.defineProperty(IgxHierarchicalRowComponent.prototype, \"iconTemplate\", {\n /**\n * @hidden\n */\n get: /**\n * @hidden\n * @return {?}\n */\n function () {\n /** @type {?} */\n var expandable = true;\n if (this.grid.hasChildrenKey) {\n expandable = this.rowData[this.grid.hasChildrenKey];\n }\n if (!expandable) {\n return this.defaultEmptyTemplate;\n }\n if (this.expanded) {\n return this.grid.rowExpandedIndicatorTemplate || this.defaultExpandedTemplate;\n }\n else {\n return this.grid.rowCollapsedIndicatorTemplate || this.defaultCollapsedTemplate;\n }\n },\n enumerable: true,\n configurable: true\n });\n /**\n * @private\n * @param {?} grid\n * @return {?}\n */\n IgxHierarchicalRowComponent.prototype.endEdit = /**\n * @private\n * @param {?} grid\n * @return {?}\n */\n function (grid) {\n if (grid.crudService.inEditMode) {\n grid.endEdit();\n }\n grid.hgridAPI.getChildGrids(true).forEach(function (g) {\n if (g.crudService.inEditMode) {\n g.endEdit();\n }\n });\n };\n IgxHierarchicalRowComponent.decorators = [\n { type: Component, args: [{\n changeDetection: ChangeDetectionStrategy.OnPush,\n preserveWhitespaces: false,\n selector: 'igx-hierarchical-grid-row',\n template: \"
\\n \\n \\n
\\n\\n expand_more\\n \\n\\n\\n chevron_right\\n \\n\\n \\n \\n\\n\\n\\n
\\n \\n
\\n
\\n\\n
\\n \\n \\n
\\n
\\n\\n 0\\\">\\n \\n \\n\\n\\n\\n \\n \\n\\n\\n\\n
\\n \\n \\n
\\n
\\n\",\n providers: [{ provide: IgxRowComponent, useExisting: forwardRef(function () { return IgxHierarchicalRowComponent; }) }]\n }] }\n ];\n IgxHierarchicalRowComponent.propDecorators = {\n cells: [{ type: ViewChildren, args: [forwardRef(function () { return IgxHierarchicalGridCellComponent; }), { read: IgxHierarchicalGridCellComponent },] }],\n expander: [{ type: ViewChild, args: ['expander', { read: ElementRef, static: false },] }],\n defaultExpandedTemplate: [{ type: ViewChild, args: ['defaultExpandedTemplate', { read: TemplateRef, static: true },] }],\n defaultEmptyTemplate: [{ type: ViewChild, args: ['defaultEmptyTemplate', { read: TemplateRef, static: true },] }],\n defaultCollapsedTemplate: [{ type: ViewChild, args: ['defaultCollapsedTemplate', { read: TemplateRef, static: true },] }],\n tabindex: [{ type: HostBinding, args: ['attr.tabindex',] }],\n expanded: [{ type: HostBinding, args: ['class.igx-grid__tr--expanded',] }],\n highlighted: [{ type: HostBinding, args: ['class.igx-grid__tr--highlighted',] }]\n };\n return IgxHierarchicalRowComponent;\n}(IgxRowComponent));\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n/**\n * @hidden\n */\nvar IgxGridHierarchicalPipe = /** @class */ (function () {\n function IgxGridHierarchicalPipe(gridAPI) {\n this.gridAPI = gridAPI;\n }\n /**\n * @param {?} collection\n * @param {?=} state\n * @param {?=} id\n * @param {?=} primaryKey\n * @param {?=} childKeys\n * @param {?=} pipeTrigger\n * @return {?}\n */\n IgxGridHierarchicalPipe.prototype.transform = /**\n * @param {?} collection\n * @param {?=} state\n * @param {?=} id\n * @param {?=} primaryKey\n * @param {?=} childKeys\n * @param {?=} pipeTrigger\n * @return {?}\n */\n function (collection, state, id, primaryKey, childKeys, pipeTrigger) {\n if (state === void 0) { state = []; }\n if (childKeys.length === 0) {\n return collection;\n }\n /** @type {?} */\n var grid = this.gridAPI.grid;\n /** @type {?} */\n var result = this.addHierarchy(grid, cloneArray(collection), state, primaryKey, childKeys);\n return result;\n };\n /**\n * @template T\n * @param {?} grid\n * @param {?} data\n * @param {?} state\n * @param {?} primaryKey\n * @param {?} childKeys\n * @return {?}\n */\n IgxGridHierarchicalPipe.prototype.addHierarchy = /**\n * @template T\n * @param {?} grid\n * @param {?} data\n * @param {?} state\n * @param {?} primaryKey\n * @param {?} childKeys\n * @return {?}\n */\n function (grid, data, state, primaryKey, childKeys) {\n /** @type {?} */\n var result = [];\n data.forEach(function (v) {\n result.push(v);\n /** @type {?} */\n var childGridsData = {};\n childKeys.forEach(function (childKey) {\n /** @type {?} */\n var childData = v[childKey] ? v[childKey] : null;\n childGridsData[childKey] = childData;\n });\n if (grid.isExpanded(v)) {\n result.push({ rowID: primaryKey ? v[primaryKey] : v, childGridsData: childGridsData });\n }\n });\n return result;\n };\n IgxGridHierarchicalPipe.decorators = [\n { type: Pipe, args: [{\n name: 'gridHierarchical',\n pure: true\n },] }\n ];\n /** @nocollapse */\n IgxGridHierarchicalPipe.ctorParameters = function () { return [\n { type: GridBaseAPIService }\n ]; };\n return IgxGridHierarchicalPipe;\n}());\n/**\n * @hidden\n */\nvar IgxGridHierarchicalPagingPipe = /** @class */ (function () {\n function IgxGridHierarchicalPagingPipe(gridAPI) {\n this.gridAPI = gridAPI;\n }\n /**\n * @param {?} collection\n * @param {?=} page\n * @param {?=} perPage\n * @param {?=} id\n * @param {?=} pipeTrigger\n * @return {?}\n */\n IgxGridHierarchicalPagingPipe.prototype.transform = /**\n * @param {?} collection\n * @param {?=} page\n * @param {?=} perPage\n * @param {?=} id\n * @param {?=} pipeTrigger\n * @return {?}\n */\n function (collection, page, perPage, id, pipeTrigger) {\n if (page === void 0) { page = 0; }\n if (perPage === void 0) { perPage = 15; }\n if (!this.gridAPI.grid.paging) {\n return collection;\n }\n /** @type {?} */\n var state = {\n index: page,\n recordsPerPage: perPage\n };\n /** @type {?} */\n var result = DataUtil.page(cloneArray(collection), state);\n this.gridAPI.grid.pagingState = state;\n return result;\n };\n IgxGridHierarchicalPagingPipe.decorators = [\n { type: Pipe, args: [{\n name: 'gridHierarchicalPaging',\n pure: true\n },] }\n ];\n /** @nocollapse */\n IgxGridHierarchicalPagingPipe.ctorParameters = function () { return [\n { type: GridBaseAPIService }\n ]; };\n return IgxGridHierarchicalPagingPipe;\n}());\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n/**\n * @hidden\n */\nvar IgxHierarchicalGridModule = /** @class */ (function () {\n function IgxHierarchicalGridModule() {\n }\n IgxHierarchicalGridModule.decorators = [\n { type: NgModule, args: [{\n declarations: [\n IgxHierarchicalGridComponent,\n IgxHierarchicalRowComponent,\n IgxRowIslandComponent,\n IgxChildGridRowComponent,\n IgxHierarchicalGridCellComponent,\n IgxGridHierarchicalPipe,\n IgxGridHierarchicalPagingPipe\n ],\n exports: [\n IgxGridModule,\n IgxHierarchicalGridComponent,\n IgxHierarchicalRowComponent,\n IgxHierarchicalGridCellComponent,\n IgxRowIslandComponent,\n IgxChildGridRowComponent\n ],\n imports: [\n CommonModule,\n FormsModule,\n IgxChipsModule,\n IgxGridModule,\n IgxSelectModule\n ],\n providers: [\n IgxRowIslandAPIService\n ],\n entryComponents: [\n IgxGridComponent\n ]\n },] }\n ];\n return IgxHierarchicalGridModule;\n}());\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n/**\n * IgxActionIcon is a container for the action nav icon of the IgxNavbar.\n */\nvar IgxActionIconDirective = /** @class */ (function () {\n function IgxActionIconDirective() {\n }\n IgxActionIconDirective.decorators = [\n { type: Directive, args: [{\n // tslint:disable-next-line:directive-selector\n selector: 'igx-action-icon'\n },] }\n ];\n return IgxActionIconDirective;\n}());\n/** @type {?} */\nvar NEXT_ID$p = 0;\n/**\n * **Ignite UI for Angular Navbar** -\n * [Documentation](https://www.infragistics.com/products/ignite-ui-angular/angular/components/navbar.html)\n *\n * The Ignite UI Navbar is most commonly used to provide an app header with a hamburger menu and navigation\n * state such as a \"Go Back\" button. It also supports other actions represented by icons.\n *\n * Example:\n * ```html\n * \n * search\n * favorite\n * more_vert\n * \n * ```\n */\nvar IgxNavbarComponent = /** @class */ (function () {\n function IgxNavbarComponent() {\n this.isVisible = true;\n /**\n * An \\@Input property that sets the value of the `id` attribute. If not provided it will be automatically generated.\n * ```html\n * \n * ```\n */\n this.id = \"igx-navbar-\" + NEXT_ID$p++;\n /**\n * The event that will be thrown when the action is executed,\n * provides reference to the `IgxNavbar` component as argument\n * ```typescript\n * public actionExc(event){\n * alert(\"Action Execute!\");\n * }\n * //..\n * ```\n * ```html\n * \n * ```\n */\n this.onAction = new EventEmitter();\n /**\n * An \\@Input property that sets the titleId of the `IgxNavbarComponent`. If not set it will be automatically generated.\n * ```html\n * \n * ```\n */\n this.titleId = \"igx-navbar-\" + IgxNavbarComponent.NEXT_ID++;\n }\n Object.defineProperty(IgxNavbarComponent.prototype, \"isActionButtonVisible\", {\n /**\n *Returns whether the `IgxNavbarComponent` action button is visible, true/false.\n *```typescript\n *@ViewChild(\"MyChild\")\n *public navBar: IgxNavbarComponent;\n *ngAfterViewInit(){\n * let actionButtonVisibile = this.navBar.isActionButtonVisible;\n *}\n *```\n */\n get: /**\n * Returns whether the `IgxNavbarComponent` action button is visible, true/false.\n * ```typescript\n * \\@ViewChild(\"MyChild\")\n * public navBar: IgxNavbarComponent;\n * ngAfterViewInit(){\n * let actionButtonVisibile = this.navBar.isActionButtonVisible;\n * }\n * ```\n * @return {?}\n */\n function () {\n if (this.actionIconTemplate || !this.actionButtonIcon) {\n return false;\n }\n return this.isVisible;\n },\n /**\n *Sets whether the action button of the `IgxNavbarComponent` is visible.\n *```html\n *\n *```\n */\n set: /**\n * Sets whether the action button of the `IgxNavbarComponent` is visible.\n * ```html\n * \n * ```\n * @param {?} value\n * @return {?}\n */\n function (value) {\n this.isVisible = value;\n },\n enumerable: true,\n configurable: true\n });\n /**\n *@hidden\n */\n /**\n * @hidden\n * @return {?}\n */\n IgxNavbarComponent.prototype._triggerAction = /**\n * @hidden\n * @return {?}\n */\n function () {\n this.onAction.emit(this);\n };\n IgxNavbarComponent.NEXT_ID = 1;\n IgxNavbarComponent.decorators = [\n { type: Component, args: [{\n selector: 'igx-navbar',\n template: \"\\n\",\n styles: [\"\\n :host {\\n display: block;\\n }\\n \"]\n }] }\n ];\n IgxNavbarComponent.propDecorators = {\n id: [{ type: HostBinding, args: ['attr.id',] }, { type: Input }],\n isActionButtonVisible: [{ type: Input }],\n actionButtonIcon: [{ type: Input }],\n title: [{ type: Input }],\n onAction: [{ type: Output }],\n titleId: [{ type: Input }],\n actionIconTemplate: [{ type: ContentChild, args: [IgxActionIconDirective, { read: IgxActionIconDirective, static: false },] }]\n };\n return IgxNavbarComponent;\n}());\n/**\n * @hidden\n */\nvar IgxNavbarModule = /** @class */ (function () {\n function IgxNavbarModule() {\n }\n IgxNavbarModule.decorators = [\n { type: NgModule, args: [{\n declarations: [IgxNavbarComponent, IgxActionIconDirective],\n exports: [IgxNavbarComponent, IgxActionIconDirective],\n imports: [IgxButtonModule, IgxIconModule, CommonModule]\n },] }\n ];\n return IgxNavbarModule;\n}());\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\nvar IgxNavDrawerItemDirective = /** @class */ (function () {\n function IgxNavDrawerItemDirective() {\n /**\n * @hidden\n */\n this.active = false;\n /**\n * @hidden\n */\n this.isHeader = false;\n /**\n * @hidden\n */\n this.activeClass = 'igx-nav-drawer__item--active';\n }\n Object.defineProperty(IgxNavDrawerItemDirective.prototype, \"defaultCSS\", {\n /**\n * @hidden\n */\n get: /**\n * @hidden\n * @return {?}\n */\n function () {\n return !this.active && !this.isHeader;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxNavDrawerItemDirective.prototype, \"currentCSS\", {\n /**\n * @hidden\n */\n get: /**\n * @hidden\n * @return {?}\n */\n function () {\n return this.active && !this.isHeader;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxNavDrawerItemDirective.prototype, \"headerCSS\", {\n /**\n * @hidden\n */\n get: /**\n * @hidden\n * @return {?}\n */\n function () {\n return this.isHeader;\n },\n enumerable: true,\n configurable: true\n });\n IgxNavDrawerItemDirective.decorators = [\n { type: Directive, args: [{\n selector: '[igxDrawerItem]',\n exportAs: 'igxDrawerItem'\n },] }\n ];\n IgxNavDrawerItemDirective.propDecorators = {\n active: [{ type: Input, args: ['active',] }],\n isHeader: [{ type: Input, args: ['isHeader',] }],\n defaultCSS: [{ type: HostBinding, args: ['class.igx-nav-drawer__item',] }],\n currentCSS: [{ type: HostBinding, args: ['class.igx-nav-drawer__item--active',] }],\n headerCSS: [{ type: HostBinding, args: ['class.igx-nav-drawer__item--header',] }]\n };\n return IgxNavDrawerItemDirective;\n}());\nvar IgxNavDrawerTemplateDirective = /** @class */ (function () {\n function IgxNavDrawerTemplateDirective(template) {\n this.template = template;\n }\n IgxNavDrawerTemplateDirective.decorators = [\n { type: Directive, args: [{\n selector: '[igxDrawer]'\n },] }\n ];\n /** @nocollapse */\n IgxNavDrawerTemplateDirective.ctorParameters = function () { return [\n { type: TemplateRef }\n ]; };\n return IgxNavDrawerTemplateDirective;\n}());\nvar IgxNavDrawerMiniTemplateDirective = /** @class */ (function () {\n function IgxNavDrawerMiniTemplateDirective(template) {\n this.template = template;\n }\n IgxNavDrawerMiniTemplateDirective.decorators = [\n { type: Directive, args: [{\n selector: '[igxDrawerMini]'\n },] }\n ];\n /** @nocollapse */\n IgxNavDrawerMiniTemplateDirective.ctorParameters = function () { return [\n { type: TemplateRef }\n ]; };\n return IgxNavDrawerMiniTemplateDirective;\n}());\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n/** @type {?} */\nvar NEXT_ID$q = 0;\n/**\n * **Ignite UI for Angular Navigation Drawer** -\n * [Documentation](https://www.infragistics.com/products/ignite-ui-angular/angular/components/navdrawer.html)\n *\n * The Ignite UI Navigation Drawer is a collapsible side navigation container commonly used in combination with the Navbar.\n *\n * Example:\n * ```html\n * \n * \n * \n * \n * \n * ```\n */\nvar IgxNavigationDrawerComponent = /** @class */ (function () {\n function IgxNavigationDrawerComponent(elementRef, _state, renderer, _touchManager, platformUtil) {\n var _this = this;\n this.elementRef = elementRef;\n this._state = _state;\n this.renderer = renderer;\n this._touchManager = _touchManager;\n this.platformUtil = platformUtil;\n this._isOpen = false;\n /**\n * @hidden \\@internal\n */\n this.cssClass = true;\n /**\n * ID of the component\n *\n * ```typescript\n * // get\n * let myNavDrawerId = this.navdrawer.id;\n * ```\n *\n * ```html\n * \n * \n * ```\n */\n this.id = \"igx-nav-drawer-\" + NEXT_ID$q++;\n /**\n * Position of the Navigation Drawer. Can be \"left\"(default) or \"right\".\n *\n * ```typescript\n * // get\n * let myNavDrawerPosition = this.navdrawer.position;\n * ```\n *\n * ```html\n * \n * \n * ```\n */\n this.position = 'left';\n /**\n * Enables the use of touch gestures to manipulate the drawer:\n * - swipe/pan from edge to open, swipe-toggle and pan-drag.\n *\n * ```typescript\n * // get\n * let gesturesEnabled = this.navdrawer.enableGestures;\n * ```\n *\n * ```html\n * \n * \n * ```\n */\n this.enableGestures = true;\n /**\n * @hidden\n */\n this.isOpenChange = new EventEmitter();\n /**\n * When pinned the drawer is relatively positioned instead of sitting above content.\n * May require additional layout styling.\n *\n * ```typescript\n * // get\n * let navDrawerIsPinned = this.navdrawer.pin;\n * ```\n *\n * ```html\n * \n * \n * ```\n */\n this.pin = false;\n /**\n * Minimum device width required for automatic pin to be toggled.\n * Default is 1024, can be set to a falsy value to disable this behavior.\n *\n * ```typescript\n * // get\n * let navDrawerPinTreshold = this.navdrawer.pinThreshold;\n * ```\n *\n * ```html\n * \n * \n * ```\n */\n this.pinThreshold = 1024;\n /**\n * Width of the drawer in its open state. Defaults to \"280px\".\n *\n * ```typescript\n * // get\n * let navDrawerWidth = this.navdrawer.width;\n * ```\n *\n * ```html\n * \n * \n * ```\n */\n this.width = '280px';\n /**\n * Width of the drawer in its mini state. Defaults to 68px.\n *\n * ```typescript\n * // get\n * let navDrawerMiniWidth = this.navdrawer.miniWidth;\n * ```\n *\n * ```html\n * \n * \n * ```\n */\n this.miniWidth = '68px';\n /**\n * Pinned state change output for two-way binding.\n *\n * ```html\n * \n * ```\n */\n this.pinChange = new EventEmitter(true);\n /**\n * Event fired as the Navigation Drawer is about to open.\n *\n * ```html\n * \n * ```\n */\n this.opening = new EventEmitter();\n /**\n * Event fired when the Navigation Drawer has opened.\n *\n * ```html\n * \n * ```\n */\n this.opened = new EventEmitter();\n /**\n * Event fired as the Navigation Drawer is about to close.\n *\n * ```html\n * \n * ```\n */\n this.closing = new EventEmitter();\n /**\n * Event fired when the Navigation Drawer has closed.\n *\n * ```html\n * \n * ```\n */\n this.closed = new EventEmitter();\n this._gesturesAttached = false;\n this._widthCache = { width: null, miniWidth: null, windowWidth: null };\n this.css = {\n drawer: 'igx-nav-drawer__aside',\n mini: 'igx-nav-drawer__aside--mini',\n overlay: 'igx-nav-drawer__overlay',\n styleDummy: 'igx-nav-drawer__style-dummy'\n };\n /**\n * Pan animation properties\n */\n this._panning = false;\n this._maxEdgeZone = 50;\n this.checkPinThreshold = function (evt) {\n if (!_this.platformUtil.isBrowser) {\n return;\n }\n /** @type {?} */\n var windowWidth;\n if (_this.pinThreshold) {\n windowWidth = _this.getWindowWidth();\n if (evt && _this._widthCache.windowWidth === windowWidth) {\n return;\n }\n _this._widthCache.windowWidth = windowWidth;\n if (!_this.pin && windowWidth >= _this.pinThreshold) {\n _this.pin = true;\n _this.pinChange.emit(true);\n }\n else if (_this.pin && windowWidth < _this.pinThreshold) {\n _this.pin = false;\n _this.pinChange.emit(false);\n }\n }\n };\n this.swipe = function (evt) {\n // TODO: Could also force input type: http://stackoverflow.com/a/27108052\n if (!_this.enableGestures || evt.pointerType !== 'touch') {\n return;\n }\n // HammerJS swipe is horizontal-only by default, don't check deltaY\n /** @type {?} */\n var deltaX;\n /** @type {?} */\n var startPosition;\n if (_this.position === 'right') {\n // when on the right use inverse of deltaX\n deltaX = -evt.deltaX;\n startPosition = _this.getWindowWidth() - (evt.center.x + evt.distance);\n }\n else {\n deltaX = evt.deltaX;\n startPosition = evt.center.x - evt.distance;\n }\n // only accept closing swipe (ignoring minEdgeZone) when the drawer is expanded:\n if ((_this.isOpen && deltaX < 0) ||\n // positive deltaX from the edge:\n (deltaX > 0 && startPosition < _this.maxEdgeZone)) {\n _this.toggle();\n }\n };\n this.panstart = function (evt) {\n if (!_this.enableGestures || _this.pin || evt.pointerType !== 'touch') {\n return;\n }\n /** @type {?} */\n var startPosition = _this.position === 'right' ? _this.getWindowWidth() - (evt.center.x + evt.distance)\n : evt.center.x - evt.distance;\n // cache width during animation, flag to allow further handling\n if (_this.isOpen || (startPosition < _this.maxEdgeZone)) {\n _this._panning = true;\n _this._panStartWidth = _this.getExpectedWidth(!_this.isOpen);\n _this._panLimit = _this.getExpectedWidth(_this.isOpen);\n _this.renderer.setElementClass(_this.overlay, 'panning', true);\n _this.renderer.setElementClass(_this.drawer, 'panning', true);\n }\n };\n this.pan = function (evt) {\n // TODO: input.deltaX = prevDelta.x + (center.x - offset.x);\n // get actual delta (not total session one) from event?\n // pan WILL also fire after a full swipe, only resize on flag\n if (!_this._panning) {\n return;\n }\n /** @type {?} */\n var right = _this.position === 'right';\n // when on the right use inverse of deltaX\n /** @type {?} */\n var deltaX = right ? -evt.deltaX : evt.deltaX;\n /** @type {?} */\n var visibleWidth;\n /** @type {?} */\n var newX;\n /** @type {?} */\n var percent;\n visibleWidth = _this._panStartWidth + deltaX;\n if (_this.isOpen && deltaX < 0) {\n // when visibleWidth hits limit - stop animating\n if (visibleWidth <= _this._panLimit) {\n return;\n }\n if (_this.hasAnimateWidth) {\n percent = (visibleWidth - _this._panLimit) / (_this._panStartWidth - _this._panLimit);\n newX = visibleWidth;\n }\n else {\n percent = visibleWidth / _this._panStartWidth;\n newX = evt.deltaX;\n }\n _this.setXSize(newX, percent.toPrecision(2));\n }\n else if (!_this.isOpen && deltaX > 0) {\n // when visibleWidth hits limit - stop animating\n if (visibleWidth >= _this._panLimit) {\n return;\n }\n if (_this.hasAnimateWidth) {\n percent = (visibleWidth - _this._panStartWidth) / (_this._panLimit - _this._panStartWidth);\n newX = visibleWidth;\n }\n else {\n percent = visibleWidth / _this._panLimit;\n newX = (_this._panLimit - visibleWidth) * (right ? 1 : -1);\n }\n _this.setXSize(newX, percent.toPrecision(2));\n }\n };\n this.panEnd = function (evt) {\n if (_this._panning) {\n /** @type {?} */\n var deltaX = _this.position === 'right' ? -evt.deltaX : evt.deltaX;\n /** @type {?} */\n var visibleWidth = _this._panStartWidth + deltaX;\n _this.resetPan();\n // check if pan brought the drawer to 50%\n if (_this.isOpen && visibleWidth <= _this._panStartWidth / 2) {\n _this.close();\n }\n else if (!_this.isOpen && visibleWidth >= _this._panLimit / 2) {\n _this.open();\n }\n _this._panStartWidth = null;\n }\n };\n this.toggleOpenedEvent = function (evt) {\n _this.elementRef.nativeElement.removeEventListener('transitionend', _this.toggleOpenedEvent, false);\n _this.opened.emit();\n };\n this.toggleClosedEvent = function (evt) {\n _this.elementRef.nativeElement.removeEventListener('transitionend', _this.toggleClosedEvent, false);\n _this.closed.emit();\n };\n }\n Object.defineProperty(IgxNavigationDrawerComponent.prototype, \"isOpen\", {\n /**\n * State of the drawer.\n *\n * ```typescript\n * // get\n * let navDrawerIsOpen = this.navdrawer.isOpen;\n * ```\n *\n * ```html\n * \n * \n * ```\n *\n * Two-way data binding.\n * ```html\n * \n * \n * ```\n */\n get: /**\n * State of the drawer.\n *\n * ```typescript\n * // get\n * let navDrawerIsOpen = this.navdrawer.isOpen;\n * ```\n *\n * ```html\n * \n * \n * ```\n *\n * Two-way data binding.\n * ```html\n * \n * \n * ```\n * @return {?}\n */\n function () {\n return this._isOpen;\n },\n set: /**\n * @param {?} value\n * @return {?}\n */\n function (value) {\n this._isOpen = value;\n this.isOpenChange.emit(this._isOpen);\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxNavigationDrawerComponent.prototype, \"element\", {\n /**\n * Returns nativeElement of the component.\n *\n * @hidden\n */\n get: /**\n * Returns nativeElement of the component.\n *\n * @hidden\n * @return {?}\n */\n function () {\n return this.elementRef.nativeElement;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxNavigationDrawerComponent.prototype, \"template\", {\n /**\n * @hidden\n */\n get: /**\n * @hidden\n * @return {?}\n */\n function () {\n if (this.miniTemplate && !this.isOpen) {\n return this.miniTemplate.template;\n }\n else if (this.contentTemplate) {\n return this.contentTemplate.template;\n }\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxNavigationDrawerComponent.prototype, \"miniTemplate\", {\n /**\n * @hidden\n */\n get: /**\n * @hidden\n * @return {?}\n */\n function () {\n return this._miniTemplate;\n },\n /**\n * @hidden\n */\n set: /**\n * @hidden\n * @param {?} v\n * @return {?}\n */\n function (v) {\n if (!this.isOpen) {\n this.setDrawerWidth(v ? this.miniWidth : '');\n }\n this._miniTemplate = v;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxNavigationDrawerComponent.prototype, \"flexWidth\", {\n /**\n * @hidden\n */\n get: /**\n * @hidden\n * @return {?}\n */\n function () {\n if (!this.pin) {\n return '0px';\n }\n if (this.isOpen) {\n return this.width;\n }\n if (this.miniTemplate && this.miniWidth) {\n return this.miniWidth;\n }\n return '0px';\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxNavigationDrawerComponent.prototype, \"isPinnedRight\", {\n /** @hidden */\n get: /**\n * @hidden\n * @return {?}\n */\n function () {\n return this.pin && this.position === 'right' ? '1' : '0';\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxNavigationDrawerComponent.prototype, \"drawer\", {\n /**\n * @hidden\n */\n get: /**\n * @hidden\n * @return {?}\n */\n function () {\n return this._drawer.nativeElement;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxNavigationDrawerComponent.prototype, \"overlay\", {\n /**\n * @hidden\n */\n get: /**\n * @hidden\n * @return {?}\n */\n function () {\n return this._overlay.nativeElement;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxNavigationDrawerComponent.prototype, \"styleDummy\", {\n /**\n * @hidden\n */\n get: /**\n * @hidden\n * @return {?}\n */\n function () {\n return this._styleDummy.nativeElement;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxNavigationDrawerComponent.prototype, \"hasAnimateWidth\", {\n /**\n * Property to decide whether to change width or translate the drawer from pan gesture.\n *\n * @hidden\n */\n get: /**\n * Property to decide whether to change width or translate the drawer from pan gesture.\n *\n * @hidden\n * @return {?}\n */\n function () {\n return this.pin || !!this.miniTemplate;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxNavigationDrawerComponent.prototype, \"maxEdgeZone\", {\n /**\n * Used for touch gestures (swipe and pan).\n * Defaults to 50 (in px) and is extended to at least 110% of the mini template width if available.\n *\n * @hidden\n */\n get: /**\n * Used for touch gestures (swipe and pan).\n * Defaults to 50 (in px) and is extended to at least 110% of the mini template width if available.\n *\n * @hidden\n * @return {?}\n */\n function () {\n return this._maxEdgeZone;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxNavigationDrawerComponent.prototype, \"expectedWidth\", {\n /**\n * Gets the Drawer width for specific state.\n * Will attempt to evaluate requested state and cache.\n *\n *\n * @hidden\n */\n get: /**\n * Gets the Drawer width for specific state.\n * Will attempt to evaluate requested state and cache.\n *\n *\n * @hidden\n * @return {?}\n */\n function () {\n return this.getExpectedWidth(false);\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxNavigationDrawerComponent.prototype, \"expectedMiniWidth\", {\n /**\n * Get the Drawer mini width for specific state.\n * Will attempt to evaluate requested state and cache.\n *\n * @hidden\n */\n get: /**\n * Get the Drawer mini width for specific state.\n * Will attempt to evaluate requested state and cache.\n *\n * @hidden\n * @return {?}\n */\n function () {\n return this.getExpectedWidth(true);\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxNavigationDrawerComponent.prototype, \"touchManager\", {\n /**\n * @hidden\n */\n get: /**\n * @hidden\n * @return {?}\n */\n function () {\n return this._touchManager;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxNavigationDrawerComponent.prototype, \"state\", {\n /**\n * Exposes optional navigation service\n *\n * @hidden\n */\n get: /**\n * Exposes optional navigation service\n *\n * @hidden\n * @return {?}\n */\n function () {\n return this._state;\n },\n enumerable: true,\n configurable: true\n });\n /**\n * @hidden\n */\n /**\n * @hidden\n * @return {?}\n */\n IgxNavigationDrawerComponent.prototype.ngOnInit = /**\n * @hidden\n * @return {?}\n */\n function () {\n // DOM and @Input()-s initialized\n if (this._state) {\n this._state.add(this.id, this);\n }\n if (this.isOpen) {\n this.setDrawerWidth(this.width);\n }\n };\n /**\n * @hidden\n */\n /**\n * @hidden\n * @return {?}\n */\n IgxNavigationDrawerComponent.prototype.ngAfterContentInit = /**\n * @hidden\n * @return {?}\n */\n function () {\n // wait for template and ng-content to be ready\n this.updateEdgeZone();\n this.checkPinThreshold();\n this.ensureEvents();\n // TODO: apply platform-safe Ruler from http://plnkr.co/edit/81nWDyreYMzkunihfRgX?p=preview\n // (https://github.com/angular/angular/issues/6515), blocked by https://github.com/angular/angular/issues/6904\n };\n /**\n * @hidden\n */\n /**\n * @hidden\n * @return {?}\n */\n IgxNavigationDrawerComponent.prototype.ngOnDestroy = /**\n * @hidden\n * @return {?}\n */\n function () {\n this._touchManager.destroy();\n if (this._state) {\n this._state.remove(this.id);\n }\n if (this._resizeObserver) {\n this._resizeObserver.unsubscribe();\n }\n };\n /**\n * @hidden\n */\n /**\n * @hidden\n * @param {?} changes\n * @return {?}\n */\n IgxNavigationDrawerComponent.prototype.ngOnChanges = /**\n * @hidden\n * @param {?} changes\n * @return {?}\n */\n function (changes) {\n // simple settings can come from attribute set (rather than binding), make sure boolean props are converted\n if (changes.enableGestures && changes.enableGestures.currentValue !== undefined) {\n this.enableGestures = !!(this.enableGestures && this.enableGestures.toString() === 'true');\n this.ensureEvents();\n }\n if (changes.pin && changes.pin.currentValue !== undefined) {\n this.pin = !!(this.pin && this.pin.toString() === 'true');\n if (this.pin) {\n this._touchManager.destroy();\n this._gesturesAttached = false;\n }\n else {\n this.ensureEvents();\n }\n }\n if (changes.pinThreshold) {\n if (this.pinThreshold) {\n this.ensureEvents();\n this.checkPinThreshold();\n }\n }\n if (changes.width && this.isOpen) {\n this.setDrawerWidth(changes.width.currentValue);\n }\n if (changes.miniWidth) {\n if (!this.isOpen) {\n this.setDrawerWidth(changes.miniWidth.currentValue);\n }\n this.updateEdgeZone();\n }\n };\n /**\n * Toggle the open state of the Navigation Drawer.\n *\n * ```typescript\n * this.navdrawer.toggle();\n * ```\n */\n /**\n * Toggle the open state of the Navigation Drawer.\n *\n * ```typescript\n * this.navdrawer.toggle();\n * ```\n * @return {?}\n */\n IgxNavigationDrawerComponent.prototype.toggle = /**\n * Toggle the open state of the Navigation Drawer.\n *\n * ```typescript\n * this.navdrawer.toggle();\n * ```\n * @return {?}\n */\n function () {\n if (this.isOpen) {\n this.close();\n }\n else {\n this.open();\n }\n };\n /**\n * Open the Navigation Drawer. Has no effect if already opened.\n *\n * ```typescript\n * this.navdrawer.open();\n * ```\n */\n /**\n * Open the Navigation Drawer. Has no effect if already opened.\n *\n * ```typescript\n * this.navdrawer.open();\n * ```\n * @return {?}\n */\n IgxNavigationDrawerComponent.prototype.open = /**\n * Open the Navigation Drawer. Has no effect if already opened.\n *\n * ```typescript\n * this.navdrawer.open();\n * ```\n * @return {?}\n */\n function () {\n if (this._panning) {\n this.resetPan();\n }\n if (this.isOpen) {\n return;\n }\n this.opening.emit();\n this.isOpen = true;\n // TODO: Switch to animate API when available\n // var animationCss = this.animate.css();\n // animationCss\n // .setStyles({'width':'50px'}, {'width':'400px'})\n // .start(this.elementRef.nativeElement)\n // .onComplete(() => animationCss.setToStyles({'width':'auto'}).start(this.elementRef.nativeElement));\n this.elementRef.nativeElement.addEventListener('transitionend', this.toggleOpenedEvent, false);\n this.setDrawerWidth(this.width);\n };\n /**\n * Close the Navigation Drawer. Has no effect if already closed.\n *\n * ```typescript\n * this.navdrawer.close();\n * ```\n */\n /**\n * Close the Navigation Drawer. Has no effect if already closed.\n *\n * ```typescript\n * this.navdrawer.close();\n * ```\n * @return {?}\n */\n IgxNavigationDrawerComponent.prototype.close = /**\n * Close the Navigation Drawer. Has no effect if already closed.\n *\n * ```typescript\n * this.navdrawer.close();\n * ```\n * @return {?}\n */\n function () {\n if (this._panning) {\n this.resetPan();\n }\n if (!this.isOpen) {\n return;\n }\n this.closing.emit();\n this.isOpen = false;\n this.setDrawerWidth(this.miniTemplate ? this.miniWidth : '');\n this.elementRef.nativeElement.addEventListener('transitionend', this.toggleClosedEvent, false);\n };\n /**\n * @hidden\n */\n /**\n * @hidden\n * @protected\n * @param {?} value\n * @return {?}\n */\n IgxNavigationDrawerComponent.prototype.set_maxEdgeZone = /**\n * @hidden\n * @protected\n * @param {?} value\n * @return {?}\n */\n function (value) {\n this._maxEdgeZone = value;\n };\n /**\n * Get the Drawer width for specific state. Will attempt to evaluate requested state and cache.\n *\n * @hidden\n * @param [mini] - Request mini width instead\n */\n /**\n * Get the Drawer width for specific state. Will attempt to evaluate requested state and cache.\n *\n * @hidden\n * @protected\n * @param {?=} mini\n * @return {?}\n */\n IgxNavigationDrawerComponent.prototype.getExpectedWidth = /**\n * Get the Drawer width for specific state. Will attempt to evaluate requested state and cache.\n *\n * @hidden\n * @protected\n * @param {?=} mini\n * @return {?}\n */\n function (mini) {\n if (mini) {\n if (!this.miniTemplate) {\n return 0;\n }\n if (this.miniWidth) {\n return parseFloat(this.miniWidth);\n }\n else {\n // if (!this.isOpen) { // This WON'T work due to transition timings...\n // return this.elementRef.nativeElement.children[1].offsetWidth;\n // } else {\n if (this._widthCache.miniWidth === null) {\n // force class for width calc. TODO?\n this.renderer.setElementClass(this.styleDummy, this.css.drawer, true);\n this.renderer.setElementClass(this.styleDummy, this.css.mini, true);\n this._widthCache.miniWidth = this.styleDummy.offsetWidth;\n this.renderer.setElementClass(this.styleDummy, this.css.drawer, false);\n this.renderer.setElementClass(this.styleDummy, this.css.mini, false);\n }\n return this._widthCache.miniWidth;\n }\n }\n else {\n if (this.width) {\n return parseFloat(this.width);\n }\n else {\n if (this._widthCache.width === null) {\n // force class for width calc. TODO?\n this.renderer.setElementClass(this.styleDummy, this.css.drawer, true);\n this._widthCache.width = this.styleDummy.offsetWidth;\n this.renderer.setElementClass(this.styleDummy, this.css.drawer, false);\n }\n return this._widthCache.width;\n }\n }\n };\n /**\n * @private\n * @return {?}\n */\n IgxNavigationDrawerComponent.prototype.getWindowWidth = /**\n * @private\n * @return {?}\n */\n function () {\n return (window.innerWidth > 0) ? window.innerWidth : screen.width;\n };\n /**\n * Sets the drawer width.\n */\n /**\n * Sets the drawer width.\n * @private\n * @param {?} width\n * @return {?}\n */\n IgxNavigationDrawerComponent.prototype.setDrawerWidth = /**\n * Sets the drawer width.\n * @private\n * @param {?} width\n * @return {?}\n */\n function (width) {\n var _this = this;\n if (this.platformUtil.isBrowser) {\n requestAnimationFrame(function () {\n if (_this.drawer) {\n _this.renderer.setElementStyle(_this.drawer, 'width', width);\n }\n });\n }\n else {\n this.renderer.setElementStyle(this.drawer, 'width', width);\n }\n };\n /**\n * Get current Drawer width.\n */\n /**\n * Get current Drawer width.\n * @private\n * @return {?}\n */\n IgxNavigationDrawerComponent.prototype.getDrawerWidth = /**\n * Get current Drawer width.\n * @private\n * @return {?}\n */\n function () {\n return this.drawer.offsetWidth;\n };\n /**\n * @private\n * @return {?}\n */\n IgxNavigationDrawerComponent.prototype.ensureEvents = /**\n * @private\n * @return {?}\n */\n function () {\n var _this = this;\n // set listeners for swipe/pan only if needed, but just once\n if (this.enableGestures && !this.pin && !this._gesturesAttached) {\n // Built-in manager handler(L20887) causes endless loop and max stack exception.\n // https://github.com/angular/angular/issues/6993\n // Use ours for now (until beta.10):\n // this.renderer.listen(document, \"swipe\", this.swipe);\n this._touchManager.addGlobalEventListener('document', 'swipe', this.swipe);\n this._gesturesAttached = true;\n // this.renderer.listen(document, \"panstart\", this.panstart);\n // this.renderer.listen(document, \"pan\", this.pan);\n this._touchManager.addGlobalEventListener('document', 'panstart', this.panstart);\n this._touchManager.addGlobalEventListener('document', 'panmove', this.pan);\n this._touchManager.addGlobalEventListener('document', 'panend', this.panEnd);\n }\n if (!this._resizeObserver && this.platformUtil.isBrowser) {\n this._resizeObserver = fromEvent(window, 'resize').pipe(debounce(function () { return interval(150); }))\n .subscribe(function (value) {\n _this.checkPinThreshold(value);\n });\n }\n };\n /**\n * @private\n * @return {?}\n */\n IgxNavigationDrawerComponent.prototype.updateEdgeZone = /**\n * @private\n * @return {?}\n */\n function () {\n /** @type {?} */\n var maxValue;\n if (this.miniTemplate) {\n maxValue = Math.max(this._maxEdgeZone, this.getExpectedWidth(true) * 1.1);\n this.set_maxEdgeZone(maxValue);\n }\n };\n /**\n * @private\n * @return {?}\n */\n IgxNavigationDrawerComponent.prototype.resetPan = /**\n * @private\n * @return {?}\n */\n function () {\n this._panning = false;\n /* styles fail to apply when set on parent due to extra attributes, prob ng bug */\n this.renderer.setElementClass(this.overlay, 'panning', false);\n this.renderer.setElementClass(this.drawer, 'panning', false);\n this.setXSize(0, '');\n };\n /**\n * Sets the absolute position or width in case the drawer doesn't change position.\n * @param x the number pixels to translate on the X axis or the width to set. 0 width will clear the style instead.\n * @param opacity optional value to apply to the overlay\n */\n /**\n * Sets the absolute position or width in case the drawer doesn't change position.\n * @private\n * @param {?} x the number pixels to translate on the X axis or the width to set. 0 width will clear the style instead.\n * @param {?=} opacity optional value to apply to the overlay\n * @return {?}\n */\n IgxNavigationDrawerComponent.prototype.setXSize = /**\n * Sets the absolute position or width in case the drawer doesn't change position.\n * @private\n * @param {?} x the number pixels to translate on the X axis or the width to set. 0 width will clear the style instead.\n * @param {?=} opacity optional value to apply to the overlay\n * @return {?}\n */\n function (x, opacity) {\n var _this = this;\n // Angular polyfills patches window.requestAnimationFrame, but switch to DomAdapter API (TODO)\n window.requestAnimationFrame(function () {\n if (_this.hasAnimateWidth) {\n _this.renderer.setElementStyle(_this.drawer, 'width', x ? Math.abs(x) + 'px' : '');\n }\n else {\n /** @type {?} */\n var transform = x ? 'translate3d(' + x + 'px,0,0)' : '';\n _this.renderer.setElementStyle(_this.drawer, 'transform', transform);\n _this.renderer.setElementStyle(_this.drawer, '-webkit-transform', transform);\n }\n if (opacity !== undefined) {\n _this.renderer.setElementStyle(_this.overlay, 'opacity', opacity);\n }\n });\n };\n IgxNavigationDrawerComponent.decorators = [\n { type: Component, args: [{\n providers: [HammerGesturesManager],\n selector: 'igx-nav-drawer',\n template: \"\\n
Navigation Drawer
\\n
Start by adding
\\n
<ng-template igxDrawer>
\\n
And some items inside
\\n
Style with igxDrawerItem
\\n
and igxRipple directives
\\n
\\n\\n
\\n
\\n\\n
\\n\",\n styles: [\"\\n :host {\\n display: block;\\n height: 100%;\\n }\\n \"]\n }] }\n ];\n /** @nocollapse */\n IgxNavigationDrawerComponent.ctorParameters = function () { return [\n { type: ElementRef, decorators: [{ type: Inject, args: [ElementRef,] }] },\n { type: IgxNavigationService, decorators: [{ type: Optional }] },\n { type: Renderer },\n { type: HammerGesturesManager },\n { type: PlatformUtil }\n ]; };\n IgxNavigationDrawerComponent.propDecorators = {\n cssClass: [{ type: HostBinding, args: ['class.igx-nav-drawer',] }],\n id: [{ type: HostBinding, args: ['attr.id',] }, { type: Input }],\n position: [{ type: Input }],\n enableGestures: [{ type: Input }],\n isOpen: [{ type: Input }],\n isOpenChange: [{ type: Output }],\n pin: [{ type: Input }],\n pinThreshold: [{ type: Input }],\n width: [{ type: Input }],\n miniWidth: [{ type: Input }],\n pinChange: [{ type: Output }],\n opening: [{ type: Output }],\n opened: [{ type: Output }],\n closing: [{ type: Output }],\n closed: [{ type: Output }],\n miniTemplate: [{ type: ContentChild, args: [IgxNavDrawerMiniTemplateDirective, { read: IgxNavDrawerMiniTemplateDirective, static: false },] }],\n contentTemplate: [{ type: ContentChild, args: [IgxNavDrawerTemplateDirective, { read: IgxNavDrawerTemplateDirective, static: false },] }],\n flexWidth: [{ type: HostBinding, args: ['style.flexBasis',] }],\n isPinnedRight: [{ type: HostBinding, args: ['style.order',] }],\n _drawer: [{ type: ViewChild, args: ['aside', { static: true },] }],\n _overlay: [{ type: ViewChild, args: ['overlay', { static: true },] }],\n _styleDummy: [{ type: ViewChild, args: ['dummy', { static: true },] }]\n };\n return IgxNavigationDrawerComponent;\n}());\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n/**\n * @hidden\n */\nvar IgxNavigationDrawerModule = /** @class */ (function () {\n function IgxNavigationDrawerModule() {\n }\n IgxNavigationDrawerModule.decorators = [\n { type: NgModule, args: [{\n declarations: [\n IgxNavigationDrawerComponent,\n IgxNavDrawerItemDirective,\n IgxNavDrawerMiniTemplateDirective,\n IgxNavDrawerTemplateDirective\n ],\n exports: [\n IgxNavigationDrawerComponent,\n IgxNavDrawerItemDirective,\n IgxNavDrawerMiniTemplateDirective,\n IgxNavDrawerTemplateDirective\n ],\n imports: [CommonModule]\n },] }\n ];\n return IgxNavigationDrawerModule;\n}());\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n/**\n * Template directive that allows you to set a custom template representing the lower label value of the {\\@link IgxSliderComponent}\n *\n * ```html\n * \n * {{value}}\n * \n * ```\n *\n * \\@context {\\@link IgxSliderComponent.context}\n */\nvar IgxThumbFromTemplateDirective = /** @class */ (function () {\n function IgxThumbFromTemplateDirective() {\n }\n IgxThumbFromTemplateDirective.decorators = [\n { type: Directive, args: [{\n selector: '[igxSliderThumbFrom]'\n },] }\n ];\n return IgxThumbFromTemplateDirective;\n}());\n/**\n * Template directive that allows you to set a custom template representing the upper label value of the {\\@link IgxSliderComponent}\n *\n * ```html\n * \n * {{value}}\n * \n * ```\n *\n * \\@context {\\@link IgxSliderComponent.context}\n */\nvar IgxThumbToTemplateDirective = /** @class */ (function () {\n function IgxThumbToTemplateDirective() {\n }\n IgxThumbToTemplateDirective.decorators = [\n { type: Directive, args: [{\n selector: '[igxSliderThumbTo]'\n },] }\n ];\n return IgxThumbToTemplateDirective;\n}());\n/** @enum {number} */\nvar SliderType = {\n /**\n * Slider with single thumb.\n */\n SLIDER: 0,\n /**\n * Range slider with multiple thumbs, that can mark the range.\n */\n RANGE: 1,\n};\nSliderType[SliderType.SLIDER] = 'SLIDER';\nSliderType[SliderType.RANGE] = 'RANGE';\n/** @enum {number} */\nvar SliderHandle = {\n FROM: 0,\n TO: 1,\n};\nSliderHandle[SliderHandle.FROM] = 'FROM';\nSliderHandle[SliderHandle.TO] = 'TO';\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n/**\n * @hidden\n */\nvar IgxSliderThumbComponent = /** @class */ (function () {\n function IgxSliderThumbComponent(_elementRef) {\n this._elementRef = _elementRef;\n this._isActive = false;\n this._isPressed = false;\n this._destroy$ = new Subject();\n this.isActive = false;\n this.onThumbValueChange = new EventEmitter();\n this.onChange = new EventEmitter();\n this.onHoverChange = new EventEmitter();\n this.tabindex = 0;\n this.zIndex = 0;\n }\n Object.defineProperty(IgxSliderThumbComponent.prototype, \"thumbPositionX\", {\n get: /**\n * @private\n * @return {?}\n */\n function () {\n /** @type {?} */\n var thumbBounderies = this.nativeElement.getBoundingClientRect();\n /** @type {?} */\n var thumbCenter = (thumbBounderies.right - thumbBounderies.left) / 2;\n return thumbBounderies.left + thumbCenter;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxSliderThumbComponent.prototype, \"thumbFromClass\", {\n get: /**\n * @return {?}\n */\n function () {\n return this.type === SliderHandle.FROM;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxSliderThumbComponent.prototype, \"thumbToClass\", {\n get: /**\n * @return {?}\n */\n function () {\n return this.type === SliderHandle.TO;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxSliderThumbComponent.prototype, \"thumbFromActiveClass\", {\n get: /**\n * @return {?}\n */\n function () {\n return this.type === SliderHandle.FROM && this._isActive;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxSliderThumbComponent.prototype, \"thumbToActiveClass\", {\n get: /**\n * @return {?}\n */\n function () {\n return this.type === SliderHandle.TO && this._isActive;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxSliderThumbComponent.prototype, \"thumbPressedClass\", {\n get: /**\n * @return {?}\n */\n function () {\n return this.isActive && this._isPressed;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxSliderThumbComponent.prototype, \"nativeElement\", {\n get: /**\n * @return {?}\n */\n function () {\n return this._elementRef.nativeElement;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxSliderThumbComponent.prototype, \"destroy\", {\n get: /**\n * @return {?}\n */\n function () {\n return this._destroy$;\n },\n enumerable: true,\n configurable: true\n });\n /**\n * @hidden\n */\n /**\n * @hidden\n * @return {?}\n */\n IgxSliderThumbComponent.prototype.ngOnInit = /**\n * @hidden\n * @return {?}\n */\n function () {\n var _this = this;\n this.onPan\n .pipe(takeUntil(this._destroy$))\n .subscribe(function (mouseX) {\n return _this.updateThumbValue(mouseX);\n });\n };\n /**\n * @hidden\n */\n /**\n * @hidden\n * @return {?}\n */\n IgxSliderThumbComponent.prototype.ngOnDestroy = /**\n * @hidden\n * @return {?}\n */\n function () {\n this._destroy$.next(true);\n this._destroy$.complete();\n };\n /**\n * @return {?}\n */\n IgxSliderThumbComponent.prototype.onPinterEnter = /**\n * @return {?}\n */\n function () {\n this.onHoverChange.emit(true);\n };\n /**\n * @return {?}\n */\n IgxSliderThumbComponent.prototype.onPointerLeave = /**\n * @return {?}\n */\n function () {\n this.onHoverChange.emit(false);\n };\n /**\n * @param {?} event\n * @return {?}\n */\n IgxSliderThumbComponent.prototype.onKeyDown = /**\n * @param {?} event\n * @return {?}\n */\n function (event) {\n if (this.disabled) {\n return;\n }\n /** @type {?} */\n var increment = 0;\n if (event.key.endsWith('Left')) {\n increment = this.step * -1;\n }\n else if (event.key.endsWith('Right')) {\n increment = this.step;\n }\n else {\n return;\n }\n this.onChange.emit();\n this.onThumbValueChange.emit(increment);\n };\n /**\n * @return {?}\n */\n IgxSliderThumbComponent.prototype.onBlur = /**\n * @return {?}\n */\n function () {\n this.isActive = false;\n this.zIndex = 0;\n };\n /**\n * @return {?}\n */\n IgxSliderThumbComponent.prototype.onFocusListener = /**\n * @return {?}\n */\n function () {\n this.isActive = true;\n this.zIndex = 1;\n };\n /**\n * Show thumb label and ripple.\n */\n /**\n * Show thumb label and ripple.\n * @return {?}\n */\n IgxSliderThumbComponent.prototype.showThumbIndicators = /**\n * Show thumb label and ripple.\n * @return {?}\n */\n function () {\n this.toggleThumbIndicators(true);\n };\n /**\n * Hide thumb label and ripple.\n */\n /**\n * Hide thumb label and ripple.\n * @return {?}\n */\n IgxSliderThumbComponent.prototype.hideThumbIndicators = /**\n * Hide thumb label and ripple.\n * @return {?}\n */\n function () {\n this.toggleThumbIndicators(false);\n };\n /**\n * @private\n * @param {?} mouseX\n * @return {?}\n */\n IgxSliderThumbComponent.prototype.updateThumbValue = /**\n * @private\n * @param {?} mouseX\n * @return {?}\n */\n function (mouseX) {\n /** @type {?} */\n var updateValue = this.calculateTrackUpdate(mouseX);\n if (this.isActive && updateValue !== 0) {\n this.onThumbValueChange.emit(updateValue);\n }\n };\n /**\n * @private\n * @param {?} mouseX\n * @return {?}\n */\n IgxSliderThumbComponent.prototype.calculateTrackUpdate = /**\n * @private\n * @param {?} mouseX\n * @return {?}\n */\n function (mouseX) {\n /** @type {?} */\n var scaleX = mouseX - this.thumbPositionX;\n /** @type {?} */\n var stepDistanceCenter = this.stepDistance / 2;\n // If the thumb scale range (slider update) is less thàn a half step,\n // the position stays the same.\n /** @type {?} */\n var scaleXPositive = Math.abs(scaleX);\n if (scaleXPositive < stepDistanceCenter) {\n return 0;\n }\n return this.stepToProceed(scaleX, this.stepDistance);\n };\n /**\n * @private\n * @param {?} scaleX\n * @param {?} stepDist\n * @return {?}\n */\n IgxSliderThumbComponent.prototype.stepToProceed = /**\n * @private\n * @param {?} scaleX\n * @param {?} stepDist\n * @return {?}\n */\n function (scaleX, stepDist) {\n return Math.round(scaleX / stepDist) * this.step;\n };\n /**\n * @private\n * @param {?} visible\n * @return {?}\n */\n IgxSliderThumbComponent.prototype.toggleThumbIndicators = /**\n * @private\n * @param {?} visible\n * @return {?}\n */\n function (visible) {\n this._isPressed = visible;\n if (!this.continuous) {\n this._isActive = visible;\n }\n };\n IgxSliderThumbComponent.decorators = [\n { type: Component, args: [{\n selector: 'igx-thumb',\n template: \"
\\n\"\n }] }\n ];\n /** @nocollapse */\n IgxSliderThumbComponent.ctorParameters = function () { return [\n { type: ElementRef }\n ]; };\n IgxSliderThumbComponent.propDecorators = {\n value: [{ type: Input }],\n continuous: [{ type: Input }],\n thumbLabelVisibilityDuration: [{ type: Input }],\n disabled: [{ type: Input }],\n onPan: [{ type: Input }],\n stepDistance: [{ type: Input }],\n step: [{ type: Input }],\n templateRef: [{ type: Input }],\n context: [{ type: Input }],\n type: [{ type: Input }],\n onThumbValueChange: [{ type: Output }],\n onChange: [{ type: Output }],\n onHoverChange: [{ type: Output }],\n tabindex: [{ type: HostBinding, args: ['attr.tabindex',] }],\n zIndex: [{ type: HostBinding, args: ['attr.z-index',] }],\n thumbFromClass: [{ type: HostBinding, args: ['class.igx-slider__thumb-from',] }],\n thumbToClass: [{ type: HostBinding, args: ['class.igx-slider__thumb-to',] }],\n thumbFromActiveClass: [{ type: HostBinding, args: ['class.igx-slider__thumb-from--active',] }],\n thumbToActiveClass: [{ type: HostBinding, args: ['class.igx-slider__thumb-to--active',] }],\n thumbPressedClass: [{ type: HostBinding, args: ['class.igx-slider__thumb--pressed',] }],\n onPinterEnter: [{ type: HostListener, args: ['pointerenter',] }],\n onPointerLeave: [{ type: HostListener, args: ['pointerleave',] }],\n onKeyDown: [{ type: HostListener, args: ['keydown', ['$event'],] }],\n onBlur: [{ type: HostListener, args: ['blur',] }],\n onFocusListener: [{ type: HostListener, args: ['focus',] }]\n };\n return IgxSliderThumbComponent;\n}());\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\nvar IgxThumbLabelComponent = /** @class */ (function () {\n function IgxThumbLabelComponent(_elementRef) {\n this._elementRef = _elementRef;\n }\n Object.defineProperty(IgxThumbLabelComponent.prototype, \"thumbFromClass\", {\n get: /**\n * @return {?}\n */\n function () {\n return this.type === SliderHandle.FROM;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxThumbLabelComponent.prototype, \"thumbToClass\", {\n get: /**\n * @return {?}\n */\n function () {\n return this.type === SliderHandle.TO;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxThumbLabelComponent.prototype, \"thumbFromActiveClass\", {\n get: /**\n * @return {?}\n */\n function () {\n return this.type === SliderHandle.FROM && this.active;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxThumbLabelComponent.prototype, \"thumbToActiveClass\", {\n get: /**\n * @return {?}\n */\n function () {\n return this.type === SliderHandle.TO && this.active;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxThumbLabelComponent.prototype, \"nativeElement\", {\n get: /**\n * @return {?}\n */\n function () {\n return this._elementRef.nativeElement;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxThumbLabelComponent.prototype, \"active\", {\n get: /**\n * @return {?}\n */\n function () {\n return this._active;\n },\n set: /**\n * @param {?} val\n * @return {?}\n */\n function (val) {\n if (this.continuous) {\n return;\n }\n this._active = val;\n },\n enumerable: true,\n configurable: true\n });\n IgxThumbLabelComponent.decorators = [\n { type: Component, args: [{\n selector: 'igx-thumb-label',\n template: \"
\\n \\n
\\n\\n\\n {{ value }}\\n\\n\"\n }] }\n ];\n /** @nocollapse */\n IgxThumbLabelComponent.ctorParameters = function () { return [\n { type: ElementRef }\n ]; };\n IgxThumbLabelComponent.propDecorators = {\n value: [{ type: Input }],\n templateRef: [{ type: Input }],\n context: [{ type: Input }],\n type: [{ type: Input }],\n continuous: [{ type: Input }],\n thumbFromClass: [{ type: HostBinding, args: ['class.igx-slider__label-from',] }],\n thumbToClass: [{ type: HostBinding, args: ['class.igx-slider__label-to',] }],\n thumbFromActiveClass: [{ type: HostBinding, args: ['class.igx-slider__label-from--active',] }],\n thumbToActiveClass: [{ type: HostBinding, args: ['class.igx-slider__label-to--active',] }]\n };\n return IgxThumbLabelComponent;\n}());\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n/** @type {?} */\nvar noop$7 = function () {\n};\n/** @type {?} */\nvar NEXT_ID$r = 0;\n/**\n * **Ignite UI for Angular Slider** -\n * [Documentation](https://www.infragistics.com/products/ignite-ui-angular/angular/components/slider.html)\n *\n * The Ignite UI Slider allows selection in a given range by moving the thumb along the track. The track\n * can be defined as continuous or stepped, and you can choose between single and range slider types.\n *\n * Example:\n * ```html\n * \n * \n * ```\n */\nvar IgxSliderComponent = /** @class */ (function () {\n function IgxSliderComponent(renderer, _el, _cdr) {\n this.renderer = renderer;\n this._el = _el;\n this._cdr = _cdr;\n // Limit handle travel zone\n this._pMin = 0;\n this._pMax = 1;\n // From/upperValue in percent values\n this._hasViewInit = false;\n this._minValue = 0;\n this._maxValue = 100;\n this._continuous = false;\n this._disabled = false;\n this._step = 1;\n this._labels = new Array();\n this._type = SliderType.SLIDER;\n this._destroyer$ = new Subject();\n this._indicatorsDestroyer$ = new Subject();\n this._onChangeCallback = noop$7;\n this._onTouchedCallback = noop$7;\n /**\n * @hidden\n */\n this.thumbs = new QueryList();\n /**\n * @hidden\n */\n this.labelRefs = new QueryList();\n /**\n * @hidden\n */\n this.stepDistance = this._step;\n /**\n * @hidden\n */\n this.onPan = new Subject();\n /**\n * @hidden\n */\n this.role = 'slider';\n /**\n * @hidden\n */\n this.slierClass = true;\n /**\n * An \\@Input property that sets the value of the `id` attribute.\n * If not provided it will be automatically generated.\n * ```html\n * \n * ```\n */\n this.id = \"igx-slider-\" + NEXT_ID$r++;\n /**\n * An \\@Input property that sets the duration visibility of thumbs labels. The default value is 750 milliseconds.\n * ```html\n * \n * ```\n */\n this.thumbLabelVisibilityDuration = 750;\n /**\n * This event is emitted when user has stopped interacting the thumb and value is changed.\n * ```typescript\n * public change(event){\n * alert(\"The value has been changed!\");\n * }\n * ```\n * ```html\n * \n * ```\n */\n this.onValueChange = new EventEmitter();\n }\n Object.defineProperty(IgxSliderComponent.prototype, \"thumbFrom\", {\n get: /**\n * @private\n * @return {?}\n */\n function () {\n return this.thumbs.find(function (thumb) { return thumb.type === SliderHandle.FROM; });\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxSliderComponent.prototype, \"thumbTo\", {\n get: /**\n * @private\n * @return {?}\n */\n function () {\n return this.thumbs.find(function (thumb) { return thumb.type === SliderHandle.TO; });\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxSliderComponent.prototype, \"labelFrom\", {\n get: /**\n * @private\n * @return {?}\n */\n function () {\n return this.labelRefs.find(function (label) { return label.type === SliderHandle.FROM; });\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxSliderComponent.prototype, \"labelTo\", {\n get: /**\n * @private\n * @return {?}\n */\n function () {\n return this.labelRefs.find(function (label) { return label.type === SliderHandle.TO; });\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxSliderComponent.prototype, \"valuemin\", {\n /**\n * @hidden\n */\n get: /**\n * @hidden\n * @return {?}\n */\n function () {\n return this.minValue;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxSliderComponent.prototype, \"valuemax\", {\n /**\n * @hidden\n */\n get: /**\n * @hidden\n * @return {?}\n */\n function () {\n return this.maxValue;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxSliderComponent.prototype, \"readonly\", {\n /**\n * @hidden\n */\n get: /**\n * @hidden\n * @return {?}\n */\n function () {\n return this.disabled;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxSliderComponent.prototype, \"disabledClass\", {\n /**\n * @hidden\n */\n get: /**\n * @hidden\n * @return {?}\n */\n function () {\n return this.disabled;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxSliderComponent.prototype, \"type\", {\n /**\n * An @Input property that gets the type of the `IgxSliderComponent`. The slider can be SliderType.SLIDER(default) or SliderType.RANGE.\n * ```typescript\n * @ViewChild(\"slider2\")\n * public slider: IgxSliderComponent;\n * ngAfterViewInit(){\n * let type = this.slider.type;\n * }\n */\n get: /**\n * An \\@Input property that gets the type of the `IgxSliderComponent`. The slider can be SliderType.SLIDER(default) or SliderType.RANGE.\n * ```typescript\n * \\@ViewChild(\"slider2\")\n * public slider: IgxSliderComponent;\n * ngAfterViewInit(){\n * let type = this.slider.type;\n * }\n * @return {?}\n */\n function () {\n return this._type;\n },\n /**\n * An @Input property that sets the type of the `IgxSliderComponent`. The slider can be SliderType.SLIDER(default) or SliderType.RANGE.\n * ```typescript\n * sliderType: SliderType = SliderType.RANGE;\n * ```\n * ```html\n * \n * ```\n */\n set: /**\n * An \\@Input property that sets the type of the `IgxSliderComponent`. The slider can be SliderType.SLIDER(default) or SliderType.RANGE.\n * ```typescript\n * sliderType: SliderType = SliderType.RANGE;\n * ```\n * ```html\n * \n * ```\n * @param {?} type\n * @return {?}\n */\n function (type) {\n this._type = type;\n if (type === SliderType.SLIDER) {\n this.lowerValue = 0;\n }\n if (this.labelsViewEnabled && this.upperValue > this.maxValue) {\n this.upperValue = this.labels.length - 1;\n }\n if (this._hasViewInit) {\n this.updateTrack();\n }\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxSliderComponent.prototype, \"labels\", {\n /**\n * Enables `labelView`, by accepting a collection of primitive values with more than one element.\n * Each element will be equally spread over the slider and it will serve as a thumb label.\n * Once the property is set, it will precendence over {@link maxValue}, {@link minValue}, {@link step}.\n * This means that the manipulation for those properties won't be allowed.\n */\n get: /**\n * Enables `labelView`, by accepting a collection of primitive values with more than one element.\n * Each element will be equally spread over the slider and it will serve as a thumb label.\n * Once the property is set, it will precendence over {\\@link maxValue}, {\\@link minValue}, {\\@link step}.\n * This means that the manipulation for those properties won't be allowed.\n * @return {?}\n */\n function () {\n return this._labels;\n },\n set: /**\n * @param {?} labels\n * @return {?}\n */\n function (labels) {\n this._labels = labels;\n this._pMax = 1;\n if (this._hasViewInit) {\n this.stepDistance = this.calculateStepDistance();\n this.positionHandlesAndUpdateTrack();\n this.setTickInterval(labels);\n }\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxSliderComponent.prototype, \"context\", {\n /**\n * Returns the template context corresponding\n * to {@link IgxThumbFromTemplateDirective} and {@link IgxThumbToTemplateDirective} templates.\n *\n * return {\n * $implicit: {@link value},\n * labels: {@link labels}\n * }\n * ```\n */\n get: /**\n * Returns the template context corresponding\n * to {\\@link IgxThumbFromTemplateDirective} and {\\@link IgxThumbToTemplateDirective} templates.\n *\n * return {\n * $implicit: {\\@link value},\n * labels: {\\@link labels}\n * }\n * ```\n * @return {?}\n */\n function () {\n return {\n $implicit: this.value,\n labels: this.labels\n };\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxSliderComponent.prototype, \"step\", {\n /**\n * Returns the incremental/decremental dragging step of the {@link IgxSliderComponent}.\n * ```typescript\n * @ViewChild(\"slider2\")\n * public slider: IgxSliderComponent;\n * ngAfterViewInit(){\n * let step = this.slider.step;\n * }\n * ```\n */\n get: /**\n * Returns the incremental/decremental dragging step of the {\\@link IgxSliderComponent}.\n * ```typescript\n * \\@ViewChild(\"slider2\")\n * public slider: IgxSliderComponent;\n * ngAfterViewInit(){\n * let step = this.slider.step;\n * }\n * ```\n * @return {?}\n */\n function () {\n return this.labelsViewEnabled ? 1 : this._step;\n },\n /**\n * An @Input property that sets the incremental/decremental step of the value when dragging the thumb.\n * The default step is 1, and step should not be less or equal than 0.\n * ```html\n * \n * ```\n */\n set: /**\n * An \\@Input property that sets the incremental/decremental step of the value when dragging the thumb.\n * The default step is 1, and step should not be less or equal than 0.\n * ```html\n * \n * ```\n * @param {?} step\n * @return {?}\n */\n function (step) {\n this._step = step;\n if (this._hasViewInit) {\n this.stepDistance = this.calculateStepDistance();\n this.normalizeByStep(this.value);\n this.setTickInterval(this.labels);\n }\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxSliderComponent.prototype, \"disabled\", {\n /**\n * Returns if the {@link IgxSliderComponent} is disabled.\n * ```typescript\n * @ViewChild(\"slider2\")\n * public slider: IgxSliderComponent;\n * ngAfterViewInit(){\n * let isDisabled = this.slider.disabled;\n * }\n * ```\n */\n get: /**\n * Returns if the {\\@link IgxSliderComponent} is disabled.\n * ```typescript\n * \\@ViewChild(\"slider2\")\n * public slider: IgxSliderComponent;\n * ngAfterViewInit(){\n * let isDisabled = this.slider.disabled;\n * }\n * ```\n * @return {?}\n */\n function () {\n return this._disabled;\n },\n /**\n *An @Input property that disables or enables UI interaction.\n *```html\n *\n *```\n */\n set: /**\n * An \\@Input property that disables or enables UI interaction.\n * ```html\n * \n * ```\n * @param {?} disable\n * @return {?}\n */\n function (disable) {\n this._disabled = disable;\n if (this._hasViewInit) {\n this.changeThumbFocusableState(disable);\n }\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxSliderComponent.prototype, \"continuous\", {\n /**\n * Returns if the {@link IgxSliderComponent} is set as continuous.\n * ```typescript\n * @ViewChild(\"slider2\")\n * public slider: IgxSliderComponent;\n * ngAfterViewInit(){\n * let continuous = this.slider.continuous;\n * }\n * ```\n */\n get: /**\n * Returns if the {\\@link IgxSliderComponent} is set as continuous.\n * ```typescript\n * \\@ViewChild(\"slider2\")\n * public slider: IgxSliderComponent;\n * ngAfterViewInit(){\n * let continuous = this.slider.continuous;\n * }\n * ```\n * @return {?}\n */\n function () {\n return this._continuous;\n },\n /**\n * An @Input property that marks the {@link IgxSliderComponent} as continuous.\n * By default is considered that the {@link IgxSliderComponent} is discrete.\n * Discrete {@link IgxSliderComponent} does not have ticks and does not show bubble labels for values.\n * ```html\n * \n * ```\n */\n set: /**\n * An \\@Input property that marks the {\\@link IgxSliderComponent} as continuous.\n * By default is considered that the {\\@link IgxSliderComponent} is discrete.\n * Discrete {\\@link IgxSliderComponent} does not have ticks and does not show bubble labels for values.\n * ```html\n * \n * ```\n * @param {?} continuous\n * @return {?}\n */\n function (continuous) {\n this._continuous = continuous;\n this.setTickInterval(null);\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxSliderComponent.prototype, \"isContinuous\", {\n /**\n * Returns if the {@link IgxSliderComponent} is set as continuous.\n * ```typescript\n * @ViewChild(\"slider2\")\n * public slider: IgxSliderComponent;\n * ngAfterViewInit(){\n * let continuous = this.slider.continuous;\n * }\n * ```\n */\n get: /**\n * Returns if the {\\@link IgxSliderComponent} is set as continuous.\n * ```typescript\n * \\@ViewChild(\"slider2\")\n * public slider: IgxSliderComponent;\n * ngAfterViewInit(){\n * let continuous = this.slider.continuous;\n * }\n * ```\n * @return {?}\n */\n function () {\n return this.continuous;\n },\n /**\n * @hidden\n * @internal\n */\n set: /**\n * @hidden\n * \\@internal\n * @param {?} continuous\n * @return {?}\n */\n function (continuous) {\n this.continuous = continuous;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxSliderComponent.prototype, \"maxValue\", {\n /**\n * Returns the maximum value for the {@link IgxSliderComponent}.\n * ```typescript\n *@ViewChild(\"slider\")\n *public slider: IgxSliderComponent;\n *ngAfterViewInit(){\n * let sliderMax = this.slider.maxValue;\n *}\n * ```\n */\n get: /**\n * Returns the maximum value for the {\\@link IgxSliderComponent}.\n * ```typescript\n * \\@ViewChild(\"slider\")\n * public slider: IgxSliderComponent;\n * ngAfterViewInit(){\n * let sliderMax = this.slider.maxValue;\n * }\n * ```\n * @return {?}\n */\n function () {\n return this.labelsViewEnabled ?\n this.labels.length - 1 :\n this._maxValue;\n },\n /**\n * Sets the maximal value for the `IgxSliderComponent`.\n * The default maximum value is 100.\n * ```html\n * \n * ```\n */\n set: /**\n * Sets the maximal value for the `IgxSliderComponent`.\n * The default maximum value is 100.\n * ```html\n * \n * ```\n * @param {?} value\n * @return {?}\n */\n function (value) {\n if (value <= this._minValue) {\n this._maxValue = this._minValue + 1;\n }\n else {\n this._maxValue = value;\n }\n if (value < this.lowerBound) {\n this.updateLowerBoundAndMinTravelZone();\n this.upperBound = value;\n }\n // refresh max travel zone limits.\n this._pMax = 1;\n // recalculate step distance.\n this.stepDistance = this.calculateStepDistance();\n this.positionHandlesAndUpdateTrack();\n this.setTickInterval(null);\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxSliderComponent.prototype, \"minValue\", {\n /**\n *Returns the minimal value of the `IgxSliderComponent`.\n *```typescript\n *@ViewChild(\"slider2\")\n *public slider: IgxSliderComponent;\n *ngAfterViewInit(){\n * let sliderMin = this.slider.minValue;\n *}\n *```\n */\n get: /**\n * Returns the minimal value of the `IgxSliderComponent`.\n * ```typescript\n * \\@ViewChild(\"slider2\")\n * public slider: IgxSliderComponent;\n * ngAfterViewInit(){\n * let sliderMin = this.slider.minValue;\n * }\n * ```\n * @return {?}\n */\n function () {\n if (this.labelsViewEnabled) {\n return 0;\n }\n return this._minValue;\n },\n /**\n * Sets the minimal value for the `IgxSliderComponent`.\n * The default minimal value is 0.\n * ```html\n * \n * ```\n */\n set: /**\n * Sets the minimal value for the `IgxSliderComponent`.\n * The default minimal value is 0.\n * ```html\n * \n * ```\n * @param {?} value\n * @return {?}\n */\n function (value) {\n if (value >= this.maxValue) {\n this._minValue = this.maxValue - 1;\n }\n else {\n this._minValue = value;\n }\n if (value > this.upperBound) {\n this.updateUpperBoundAndMaxTravelZone();\n this.lowerBound = value;\n }\n // Refresh min travel zone limit.\n this._pMin = 0;\n // Recalculate step distance.\n this.stepDistance = this.calculateStepDistance();\n this.positionHandlesAndUpdateTrack();\n this.setTickInterval(null);\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxSliderComponent.prototype, \"lowerBound\", {\n /**\n * Returns the lower boundary of the `IgxSliderComponent`.\n *```typescript\n *@ViewChild(\"slider\")\n *public slider: IgxSliderComponent;\n *ngAfterViewInit(){\n * let sliderLowBound = this.slider.lowerBound;\n *}\n *```\n */\n get: /**\n * Returns the lower boundary of the `IgxSliderComponent`.\n * ```typescript\n * \\@ViewChild(\"slider\")\n * public slider: IgxSliderComponent;\n * ngAfterViewInit(){\n * let sliderLowBound = this.slider.lowerBound;\n * }\n * ```\n * @return {?}\n */\n function () {\n if (!Number.isNaN(this._lowerBound) && this._lowerBound !== undefined) {\n return this.valueInRange(this._lowerBound, this.minValue, this.maxValue);\n }\n return this.minValue;\n },\n /**\n * Sets the lower boundary of the `IgxSliderComponent`.\n * If not set is the same as min value.\n * ```html\n * \n * ```\n */\n set: /**\n * Sets the lower boundary of the `IgxSliderComponent`.\n * If not set is the same as min value.\n * ```html\n * \n * ```\n * @param {?} value\n * @return {?}\n */\n function (value) {\n if (value >= this.upperBound || (this.labelsViewEnabled && value < 0)) {\n return;\n }\n this._lowerBound = this.valueInRange(value, this.minValue, this.maxValue);\n // Refresh time travel zone.\n this._pMin = this.valueToFraction(this._lowerBound) || 0;\n this.positionHandlesAndUpdateTrack();\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxSliderComponent.prototype, \"upperBound\", {\n /**\n * Returns the upper boundary of the `IgxSliderComponent`.\n * ```typescript\n *@ViewChild(\"slider\")\n *public slider: IgxSliderComponent;\n *ngAfterViewInit(){\n * let sliderUpBound = this.slider.upperBound;\n *}\n * ```\n */\n get: /**\n * Returns the upper boundary of the `IgxSliderComponent`.\n * ```typescript\n * \\@ViewChild(\"slider\")\n * public slider: IgxSliderComponent;\n * ngAfterViewInit(){\n * let sliderUpBound = this.slider.upperBound;\n * }\n * ```\n * @return {?}\n */\n function () {\n if (!Number.isNaN(this._upperBound) && this._upperBound !== undefined) {\n return this.valueInRange(this._upperBound, this.minValue, this.maxValue);\n }\n return this.maxValue;\n },\n /**\n * Sets the upper boundary of the `IgxSliderComponent`.\n * If not set is the same as max value.\n * ```html\n * \n * ```\n */\n set: /**\n * Sets the upper boundary of the `IgxSliderComponent`.\n * If not set is the same as max value.\n * ```html\n * \n * ```\n * @param {?} value\n * @return {?}\n */\n function (value) {\n if (value <= this.lowerBound || (this.labelsViewEnabled && value > this.labels.length - 1)) {\n return;\n }\n this._upperBound = this.valueInRange(value, this.minValue, this.maxValue);\n // Refresh time travel zone.\n this._pMax = this.valueToFraction(this._upperBound) || 1;\n this.positionHandlesAndUpdateTrack();\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxSliderComponent.prototype, \"value\", {\n /**\n * Returns the slider value. If the slider is of type {@link SliderType.SLIDER} the returned value is number.\n * If the slider type is {@link SliderType.RANGE} the returned value represents an object of {@link lowerValue} and {@link upperValue}.\n *```typescript\n *@ViewChild(\"slider2\")\n *public slider: IgxSliderComponent;\n *public sliderValue(event){\n * let sliderVal = this.slider.value;\n *}\n *```\n */\n get: /**\n * Returns the slider value. If the slider is of type {\\@link SliderType.SLIDER} the returned value is number.\n * If the slider type is {\\@link SliderType.RANGE} the returned value represents an object of {\\@link lowerValue} and {\\@link upperValue}.\n * ```typescript\n * \\@ViewChild(\"slider2\")\n * public slider: IgxSliderComponent;\n * public sliderValue(event){\n * let sliderVal = this.slider.value;\n * }\n * ```\n * @return {?}\n */\n function () {\n if (this.isRange) {\n return {\n lower: this.valueInRange(this.lowerValue, this.lowerBound, this.upperBound),\n upper: this.valueInRange(this.upperValue, this.lowerBound, this.upperBound)\n };\n }\n else {\n return this.valueInRange(this.upperValue, this.lowerBound, this.upperBound);\n }\n },\n /**\n * Sets the slider value.\n * If the slider is of type {@link SliderType.SLIDER} the argument is number. By default the {@link value} gets the {@link lowerBound}.\n * If the slider type is {@link SliderType.RANGE} the argument\n * represents an object of {@link lowerValue} and {@link upperValue} properties.\n * By default the object is associated with the {@link lowerBound} and {@link upperBound} property values.\n * ```typescript\n *rangeValue = {\n * lower: 30,\n * upper: 60\n *};\n * ```\n * ```html\n * \n * ```\n */\n set: /**\n * Sets the slider value.\n * If the slider is of type {\\@link SliderType.SLIDER} the argument is number. By default the {\\@link value} gets the {\\@link lowerBound}.\n * If the slider type is {\\@link SliderType.RANGE} the argument\n * represents an object of {\\@link lowerValue} and {\\@link upperValue} properties.\n * By default the object is associated with the {\\@link lowerBound} and {\\@link upperBound} property values.\n * ```typescript\n * rangeValue = {\n * lower: 30,\n * upper: 60\n * };\n * ```\n * ```html\n * \n * ```\n * @param {?} value\n * @return {?}\n */\n function (value) {\n if (!this.isRange) {\n this.upperValue = (/** @type {?} */ (value));\n }\n else {\n value = this.validateInitialValue((/** @type {?} */ (value)));\n this.upperValue = ((/** @type {?} */ (value))).upper;\n this.lowerValue = ((/** @type {?} */ (value))).lower;\n }\n this._onChangeCallback(this.value);\n if (this._hasViewInit) {\n this.positionHandlesAndUpdateTrack();\n }\n },\n enumerable: true,\n configurable: true\n });\n /**\n * @hidden\n */\n /**\n * @hidden\n * @param {?} $event\n * @return {?}\n */\n IgxSliderComponent.prototype.onPointerDown = /**\n * @hidden\n * @param {?} $event\n * @return {?}\n */\n function ($event) {\n this.findClosestThumb($event);\n if (!this.thumbTo.isActive && this.thumbFrom === undefined) {\n return;\n }\n /** @type {?} */\n var activeThumb = this.thumbTo.isActive ? this.thumbTo : this.thumbFrom;\n activeThumb.nativeElement.setPointerCapture($event.pointerId);\n this.showSliderIndicators();\n $event.preventDefault();\n };\n /**\n * @hidden\n */\n /**\n * @hidden\n * @param {?} $event\n * @return {?}\n */\n IgxSliderComponent.prototype.onPointerUp = /**\n * @hidden\n * @param {?} $event\n * @return {?}\n */\n function ($event) {\n if (!this.thumbTo.isActive && this.thumbFrom === undefined) {\n return;\n }\n /** @type {?} */\n var activeThumb = this.thumbTo.isActive ? this.thumbTo : this.thumbTo;\n activeThumb.nativeElement.releasePointerCapture($event.pointerId);\n this.hideSliderIndicators();\n };\n /**\n * @hidden\n */\n /**\n * @hidden\n * @return {?}\n */\n IgxSliderComponent.prototype.onFocus = /**\n * @hidden\n * @return {?}\n */\n function () {\n this.toggleSliderIndicators();\n };\n /**\n * @hidden\n */\n /**\n * @hidden\n * @param {?} $event\n * @return {?}\n */\n IgxSliderComponent.prototype.onPanListener = /**\n * @hidden\n * @param {?} $event\n * @return {?}\n */\n function ($event) {\n this.update($event.srcEvent.clientX);\n };\n /**\n * @return {?}\n */\n IgxSliderComponent.prototype.onPanStart = /**\n * @return {?}\n */\n function () {\n this.showSliderIndicators();\n };\n /**\n * @return {?}\n */\n IgxSliderComponent.prototype.onPanEnd = /**\n * @return {?}\n */\n function () {\n this.hideSliderIndicators();\n };\n Object.defineProperty(IgxSliderComponent.prototype, \"isRange\", {\n /**\n *Returns whether the `IgxSliderComponent` type is RANGE.\n *```typescript\n *@ViewChild(\"slider\")\n *public slider: IgxSliderComponent;\n *ngAfterViewInit(){\n * let sliderRange = this.slider.isRange;\n *}\n * ```\n */\n get: /**\n * Returns whether the `IgxSliderComponent` type is RANGE.\n * ```typescript\n * \\@ViewChild(\"slider\")\n * public slider: IgxSliderComponent;\n * ngAfterViewInit(){\n * let sliderRange = this.slider.isRange;\n * }\n * ```\n * @return {?}\n */\n function () {\n return this.type === SliderType.RANGE;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxSliderComponent.prototype, \"lowerValue\", {\n /**\n * Returns the lower value of the `IgxSliderComponent`.\n * ```typescript\n * @ViewChild(\"slider\")\n * public slider: IgxSliderComponent;\n * public lowValue(event){\n * let sliderLowValue = this.slider.lowerValue;\n *}\n *```\n */\n get: /**\n * Returns the lower value of the `IgxSliderComponent`.\n * ```typescript\n * \\@ViewChild(\"slider\")\n * public slider: IgxSliderComponent;\n * public lowValue(event){\n * let sliderLowValue = this.slider.lowerValue;\n * }\n * ```\n * @return {?}\n */\n function () {\n if (!Number.isNaN(this._lowerValue) && this._lowerValue !== undefined && this._lowerValue >= this.lowerBound) {\n return this._lowerValue;\n }\n return this.lowerBound;\n },\n /**\n *Sets the lower value of the `IgxSliderComponent`.\n *```typescript\n *@ViewChild(\"slider2\")\n *public slider: IgxSliderComponent;\n *public lowValue(event){\n * this.slider.lowerValue = 120;\n *}\n *```\n */\n set: /**\n * Sets the lower value of the `IgxSliderComponent`.\n * ```typescript\n * \\@ViewChild(\"slider2\")\n * public slider: IgxSliderComponent;\n * public lowValue(event){\n * this.slider.lowerValue = 120;\n * }\n * ```\n * @param {?} value\n * @return {?}\n */\n function (value) {\n value = this.valueInRange(value, this.lowerBound, this.upperBound);\n this._lowerValue = value;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxSliderComponent.prototype, \"upperValue\", {\n /**\n *Returns the upper value of the `IgxSliderComponent`.\n *```typescript\n *@ViewChild(\"slider2\")\n *public slider: IgxSliderComponent;\n *public upperValue(event){\n * let upperValue = this.slider.upperValue;\n *}\n *```\n */\n get: /**\n * Returns the upper value of the `IgxSliderComponent`.\n * ```typescript\n * \\@ViewChild(\"slider2\")\n * public slider: IgxSliderComponent;\n * public upperValue(event){\n * let upperValue = this.slider.upperValue;\n * }\n * ```\n * @return {?}\n */\n function () {\n if (!Number.isNaN(this._upperValue) && this._upperValue !== undefined && this._upperValue <= this.upperBound) {\n return this._upperValue;\n }\n return this.upperBound;\n },\n /**\n *Sets the upper value of the `IgxSliderComponent`.\n *```typescript\n *@ViewChild(\"slider2\")\n *public slider: IgxSliderComponent;\n *public upperValue(event){\n * this.slider.upperValue = 120;\n *}\n *```\n */\n set: /**\n * Sets the upper value of the `IgxSliderComponent`.\n * ```typescript\n * \\@ViewChild(\"slider2\")\n * public slider: IgxSliderComponent;\n * public upperValue(event){\n * this.slider.upperValue = 120;\n * }\n * ```\n * @param {?} value\n * @return {?}\n */\n function (value) {\n value = this.valueInRange(value, this.lowerBound, this.upperBound);\n this._upperValue = value;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxSliderComponent.prototype, \"lowerLabel\", {\n /**\n * Returns the value corresponding the lower label.\n *```typescript\n * @ViewChild(\"slider\")\n * public slider: IgxSliderComponent;\n * let label = this.slider.lowerLabel;\n *```\n */\n get: /**\n * Returns the value corresponding the lower label.\n * ```typescript\n * \\@ViewChild(\"slider\")\n * public slider: IgxSliderComponent;\n * let label = this.slider.lowerLabel;\n * ```\n * @return {?}\n */\n function () {\n return this.labelsViewEnabled ?\n this.labels[this.lowerValue] :\n this.lowerValue;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxSliderComponent.prototype, \"upperLabel\", {\n /**\n * Returns the value corresponding the upper label.\n *```typescript\n * @ViewChild(\"slider\")\n * public slider: IgxSliderComponent;\n * let label = this.slider.upperLabel;\n *```\n */\n get: /**\n * Returns the value corresponding the upper label.\n * ```typescript\n * \\@ViewChild(\"slider\")\n * public slider: IgxSliderComponent;\n * let label = this.slider.upperLabel;\n * ```\n * @return {?}\n */\n function () {\n return this.labelsViewEnabled ?\n this.labels[this.upperValue] :\n this.upperValue;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxSliderComponent.prototype, \"labelsViewEnabled\", {\n /**\n * Returns if label view is enabled.\n * If the {@link labels} is set, the view is automatically activated.\n *```typescript\n * @ViewChild(\"slider\")\n * public slider: IgxSliderComponent;\n * let labelView = this.slider.labelsViewEnabled;\n *```\n */\n get: /**\n * Returns if label view is enabled.\n * If the {\\@link labels} is set, the view is automatically activated.\n * ```typescript\n * \\@ViewChild(\"slider\")\n * public slider: IgxSliderComponent;\n * let labelView = this.slider.labelsViewEnabled;\n * ```\n * @return {?}\n */\n function () {\n return !!(this.labels && this.labels.length > 1);\n },\n enumerable: true,\n configurable: true\n });\n /**\n * @hidden\n */\n /**\n * @hidden\n * @return {?}\n */\n IgxSliderComponent.prototype.ngOnInit = /**\n * @hidden\n * @return {?}\n */\n function () {\n this.sliderSetup();\n // Set track travel zone\n this._pMin = this.valueToFraction(this.lowerBound) || 0;\n this._pMax = this.valueToFraction(this.upperBound) || 1;\n };\n /**\n * @hidden\n */\n /**\n * @hidden\n * @return {?}\n */\n IgxSliderComponent.prototype.ngAfterViewInit = /**\n * @hidden\n * @return {?}\n */\n function () {\n var _this = this;\n this._hasViewInit = true;\n this.positionHandlesAndUpdateTrack();\n this.setTickInterval(this.labels);\n this.changeThumbFocusableState(this.disabled);\n this.subscribeTo(this.thumbFrom, this.thumbChanged.bind(this));\n this.subscribeTo(this.thumbTo, this.thumbChanged.bind(this));\n this.thumbs.changes.pipe(takeUntil(this._destroyer$)).subscribe(function (change) {\n /** @type {?} */\n var thumbFrom = change.find(function (thumb) { return thumb.type === SliderHandle.FROM; });\n /** @type {?} */\n var labelFrom = _this.labelRefs.find(function (label) { return label.type === SliderHandle.FROM; });\n _this.positionHandle(thumbFrom, labelFrom, _this.lowerValue);\n _this.subscribeTo(thumbFrom, _this.thumbChanged.bind(_this));\n _this.changeThumbFocusableState(_this.disabled);\n });\n };\n /**\n * @hidden\n */\n /**\n * @hidden\n * @return {?}\n */\n IgxSliderComponent.prototype.ngAfterContentChecked = /**\n * @hidden\n * @return {?}\n */\n function () {\n // Calculates the distance between every step in pixels.\n this.stepDistance = this.calculateStepDistance();\n };\n /**\n * @hidden\n */\n /**\n * @hidden\n * @return {?}\n */\n IgxSliderComponent.prototype.ngOnDestroy = /**\n * @hidden\n * @return {?}\n */\n function () {\n this._destroyer$.next(true);\n this._destroyer$.complete();\n this._indicatorsDestroyer$.next(true);\n this._indicatorsDestroyer$.complete();\n };\n /**\n * @hidden\n */\n /**\n * @hidden\n * @param {?} value\n * @return {?}\n */\n IgxSliderComponent.prototype.writeValue = /**\n * @hidden\n * @param {?} value\n * @return {?}\n */\n function (value) {\n if (!value) {\n return;\n }\n this.normalizeByStep(value);\n };\n /**\n * @hidden\n */\n /**\n * @hidden\n * @param {?} fn\n * @return {?}\n */\n IgxSliderComponent.prototype.registerOnChange = /**\n * @hidden\n * @param {?} fn\n * @return {?}\n */\n function (fn) {\n this._onChangeCallback = fn;\n };\n /**\n * @hidden\n */\n /**\n * @hidden\n * @param {?} fn\n * @return {?}\n */\n IgxSliderComponent.prototype.registerOnTouched = /**\n * @hidden\n * @param {?} fn\n * @return {?}\n */\n function (fn) {\n this._onTouchedCallback = fn;\n };\n /** @hidden */\n /**\n * @hidden\n * @return {?}\n */\n IgxSliderComponent.prototype.getEditElement = /**\n * @hidden\n * @return {?}\n */\n function () {\n return this.isRange ? this.thumbFrom.nativeElement : this.thumbTo.nativeElement;\n };\n /**\n *\n * @hidden\n */\n /**\n *\n * @hidden\n * @param {?} mouseX\n * @return {?}\n */\n IgxSliderComponent.prototype.update = /**\n *\n * @hidden\n * @param {?} mouseX\n * @return {?}\n */\n function (mouseX) {\n if (this.disabled) {\n return;\n }\n // Update To/From Values\n this.onPan.next(mouseX);\n // Finally do positionHandlesAndUpdateTrack the DOM\n // based on data values\n this.positionHandlesAndUpdateTrack();\n this._onTouchedCallback();\n };\n /**\n * @hidden\n */\n /**\n * @hidden\n * @param {?} value\n * @param {?} thumbType\n * @return {?}\n */\n IgxSliderComponent.prototype.thumbChanged = /**\n * @hidden\n * @param {?} value\n * @param {?} thumbType\n * @return {?}\n */\n function (value, thumbType) {\n /** @type {?} */\n var oldValue = this.value;\n /** @type {?} */\n var newVal;\n if (this.isRange) {\n if (thumbType === SliderHandle.FROM) {\n newVal = {\n lower: ((/** @type {?} */ (this.value))).lower + value,\n upper: ((/** @type {?} */ (this.value))).upper\n };\n }\n else {\n newVal = {\n lower: ((/** @type {?} */ (this.value))).lower,\n upper: ((/** @type {?} */ (this.value))).upper + value\n };\n }\n // Swap the thumbs if a collision appears.\n if (newVal.lower >= newVal.upper) {\n this.value = this.swapThumb(newVal);\n }\n else {\n this.value = newVal;\n }\n }\n else {\n this.value = (/** @type {?} */ (this.value)) + value;\n }\n if (this.hasValueChanged(oldValue)) {\n this.emitValueChanged(oldValue);\n }\n };\n /**\n * @hidden\n */\n /**\n * @hidden\n * @return {?}\n */\n IgxSliderComponent.prototype.onThumbChange = /**\n * @hidden\n * @return {?}\n */\n function () {\n this.toggleSliderIndicators();\n };\n /**\n * @param {?} state\n * @return {?}\n */\n IgxSliderComponent.prototype.onHoverChange = /**\n * @param {?} state\n * @return {?}\n */\n function (state) {\n return state ? this.showSliderIndicators() : this.hideSliderIndicators();\n };\n /**\n * @private\n * @param {?} value\n * @return {?}\n */\n IgxSliderComponent.prototype.swapThumb = /**\n * @private\n * @param {?} value\n * @return {?}\n */\n function (value) {\n if (this.thumbFrom.isActive) {\n value.upper = this.upperValue;\n value.lower = this.upperValue;\n }\n else {\n value.upper = this.lowerValue;\n value.lower = this.lowerValue;\n }\n this.toggleThumb();\n return value;\n };\n /**\n * @private\n * @param {?} event\n * @return {?}\n */\n IgxSliderComponent.prototype.findClosestThumb = /**\n * @private\n * @param {?} event\n * @return {?}\n */\n function (event) {\n if (this.isRange) {\n this.closestHandle(event);\n }\n else {\n this.thumbTo.nativeElement.focus();\n }\n this.update(event.clientX);\n };\n /**\n * @private\n * @return {?}\n */\n IgxSliderComponent.prototype.updateLowerBoundAndMinTravelZone = /**\n * @private\n * @return {?}\n */\n function () {\n this.lowerBound = this.minValue;\n this._pMin = 0;\n };\n /**\n * @private\n * @return {?}\n */\n IgxSliderComponent.prototype.updateUpperBoundAndMaxTravelZone = /**\n * @private\n * @return {?}\n */\n function () {\n this.upperBound = this.maxValue;\n this._pMax = 1;\n };\n /**\n * @private\n * @return {?}\n */\n IgxSliderComponent.prototype.sliderSetup = /**\n * @private\n * @return {?}\n */\n function () {\n /**\n * if {@link SliderType.SLIDER} than the initial value shold be the lowest one.\n */\n if (!this.isRange && this.value === this.upperBound) {\n this.value = this.lowerBound;\n }\n };\n /**\n * @private\n * @return {?}\n */\n IgxSliderComponent.prototype.calculateStepDistance = /**\n * @private\n * @return {?}\n */\n function () {\n return this._el.nativeElement.getBoundingClientRect().width / (this.maxValue - this.minValue) * this.step;\n };\n /**\n * @private\n * @return {?}\n */\n IgxSliderComponent.prototype.toggleThumb = /**\n * @private\n * @return {?}\n */\n function () {\n return this.thumbFrom.isActive ?\n this.thumbTo.nativeElement.focus() :\n this.thumbFrom.nativeElement.focus();\n };\n /**\n * @private\n * @param {?} value\n * @param {?=} min\n * @param {?=} max\n * @return {?}\n */\n IgxSliderComponent.prototype.valueInRange = /**\n * @private\n * @param {?} value\n * @param {?=} min\n * @param {?=} max\n * @return {?}\n */\n function (value, min, max) {\n if (min === void 0) { min = 0; }\n if (max === void 0) { max = 100; }\n return Math.max(Math.min(value, max), min);\n };\n /**\n * @private\n * @param {?} color\n * @param {?} interval\n * @return {?}\n */\n IgxSliderComponent.prototype.generateTickMarks = /**\n * @private\n * @param {?} color\n * @param {?} interval\n * @return {?}\n */\n function (color, interval) {\n return interval !== null ? \"repeating-linear-gradient(\\n \" + 'to left' + \",\\n \" + color + \",\\n \" + color + \" 1.5px,\\n transparent 1.5px,\\n transparent \" + interval + \"%\\n ), repeating-linear-gradient(\\n \" + 'to right' + \",\\n \" + color + \",\\n \" + color + \" 1.5px,\\n transparent 1.5px,\\n transparent \" + interval + \"%\\n )\" : interval;\n };\n /**\n * @private\n * @param {?} thumbHandle\n * @param {?} labelHandle\n * @param {?} position\n * @return {?}\n */\n IgxSliderComponent.prototype.positionHandle = /**\n * @private\n * @param {?} thumbHandle\n * @param {?} labelHandle\n * @param {?} position\n * @return {?}\n */\n function (thumbHandle, labelHandle, position) {\n /** @type {?} */\n var positionLeft = this.valueToFraction(position) * 100 + \"%\";\n if (thumbHandle) {\n thumbHandle.nativeElement.style.left = positionLeft;\n }\n if (labelHandle) {\n labelHandle.nativeElement.style.left = positionLeft;\n }\n };\n /**\n * @private\n * @return {?}\n */\n IgxSliderComponent.prototype.positionHandlesAndUpdateTrack = /**\n * @private\n * @return {?}\n */\n function () {\n if (!this.isRange) {\n this.positionHandle(this.thumbTo, this.labelTo, (/** @type {?} */ (this.value)));\n }\n else {\n this.positionHandle(this.thumbTo, this.labelTo, ((/** @type {?} */ (this.value))).upper);\n this.positionHandle(this.thumbFrom, this.labelFrom, ((/** @type {?} */ (this.value))).lower);\n }\n this.updateTrack();\n };\n /**\n * @private\n * @param {?} event\n * @return {?}\n */\n IgxSliderComponent.prototype.closestHandle = /**\n * @private\n * @param {?} event\n * @return {?}\n */\n function (event) {\n /** @type {?} */\n var fromOffset = this.thumbFrom.nativeElement.offsetLeft + this.thumbFrom.nativeElement.offsetWidth / 2;\n /** @type {?} */\n var toOffset = this.thumbTo.nativeElement.offsetLeft + this.thumbTo.nativeElement.offsetWidth / 2;\n /** @type {?} */\n var xPointer = event.clientX - this._el.nativeElement.getBoundingClientRect().left;\n /** @type {?} */\n var match = this.closestTo(xPointer, [fromOffset, toOffset]);\n if (fromOffset === toOffset && toOffset < xPointer) {\n this.thumbTo.nativeElement.focus();\n }\n else if (fromOffset === toOffset && toOffset > xPointer) {\n this.thumbFrom.nativeElement.focus();\n }\n else if (match === fromOffset) {\n this.thumbFrom.nativeElement.focus();\n }\n else {\n this.thumbTo.nativeElement.focus();\n }\n };\n /**\n * @private\n * @param {?} labels\n * @return {?}\n */\n IgxSliderComponent.prototype.setTickInterval = /**\n * @private\n * @param {?} labels\n * @return {?}\n */\n function (labels) {\n /** @type {?} */\n var interval;\n /** @type {?} */\n var trackProgress = 100;\n if (this.labelsViewEnabled) {\n // Calc ticks depending on the labels length;\n interval = ((trackProgress / (this.labels.length - 1) * 10)) / 10;\n }\n else {\n /** @type {?} */\n var trackRange = this.maxValue - this.minValue;\n interval = this.step > 1 ?\n (trackProgress / ((trackRange / this.step)) * 10) / 10\n : null;\n }\n /** @type {?} */\n var renderCallbackExecution = !this.continuous ? this.generateTickMarks('white', interval) : null;\n this.renderer.setStyle(this.ticks.nativeElement, 'background', renderCallbackExecution);\n };\n /**\n * @private\n * @return {?}\n */\n IgxSliderComponent.prototype.showSliderIndicators = /**\n * @private\n * @return {?}\n */\n function () {\n if (this.disabled) {\n return;\n }\n if (this._indicatorsTimer) {\n this._indicatorsDestroyer$.next(true);\n this._indicatorsTimer = null;\n }\n this.thumbTo.showThumbIndicators();\n this.labelTo.active = true;\n if (this.thumbFrom) {\n this.thumbFrom.showThumbIndicators();\n }\n if (this.labelFrom) {\n this.labelFrom.active = true;\n }\n };\n /**\n * @private\n * @return {?}\n */\n IgxSliderComponent.prototype.hideSliderIndicators = /**\n * @private\n * @return {?}\n */\n function () {\n var _this = this;\n if (this.disabled) {\n return;\n }\n this._indicatorsTimer = timer(this.thumbLabelVisibilityDuration);\n this._indicatorsTimer.pipe(takeUntil(this._indicatorsDestroyer$)).subscribe(function () {\n _this.thumbTo.hideThumbIndicators();\n _this.labelTo.active = false;\n if (_this.thumbFrom) {\n _this.thumbFrom.hideThumbIndicators();\n }\n if (_this.labelFrom) {\n _this.labelFrom.active = false;\n }\n });\n };\n /**\n * @private\n * @return {?}\n */\n IgxSliderComponent.prototype.toggleSliderIndicators = /**\n * @private\n * @return {?}\n */\n function () {\n this.showSliderIndicators();\n this.hideSliderIndicators();\n };\n /**\n * @private\n * @param {?} state\n * @return {?}\n */\n IgxSliderComponent.prototype.changeThumbFocusableState = /**\n * @private\n * @param {?} state\n * @return {?}\n */\n function (state) {\n /** @type {?} */\n var value = state ? -1 : 1;\n if (this.isRange) {\n this.thumbFrom.tabindex = value;\n }\n this.thumbTo.tabindex = value;\n this._cdr.detectChanges();\n };\n /**\n * @private\n * @param {?} goal\n * @param {?} positions\n * @return {?}\n */\n IgxSliderComponent.prototype.closestTo = /**\n * @private\n * @param {?} goal\n * @param {?} positions\n * @return {?}\n */\n function (goal, positions) {\n return positions.reduce(function (previous, current) {\n return (Math.abs(goal - current) < Math.abs(goal - previous) ? current : previous);\n });\n };\n /**\n * @private\n * @param {?} value\n * @param {?=} pMin\n * @param {?=} pMax\n * @return {?}\n */\n IgxSliderComponent.prototype.valueToFraction = /**\n * @private\n * @param {?} value\n * @param {?=} pMin\n * @param {?=} pMax\n * @return {?}\n */\n function (value, pMin, pMax) {\n if (pMin === void 0) { pMin = this._pMin; }\n if (pMax === void 0) { pMax = this._pMax; }\n return this.valueInRange((value - this.minValue) / (this.maxValue - this.minValue), pMin, pMax);\n };\n /**\n * @hidden\n * Normalizе the value when two-way data bind is used and {@link this.step} is set.\n * @param value\n */\n /**\n * @hidden\n * Normalizе the value when two-way data bind is used and {\\@link this.step} is set.\n * @private\n * @param {?} value\n * @return {?}\n */\n IgxSliderComponent.prototype.normalizeByStep = /**\n * @hidden\n * Normalizе the value when two-way data bind is used and {\\@link this.step} is set.\n * @private\n * @param {?} value\n * @return {?}\n */\n function (value) {\n if (this.isRange) {\n this.value = {\n lower: ((/** @type {?} */ (value))).lower - (((/** @type {?} */ (value))).lower % this.step),\n upper: ((/** @type {?} */ (value))).upper - (((/** @type {?} */ (value))).upper % this.step)\n };\n }\n else {\n this.value = ((/** @type {?} */ (value))) - (((/** @type {?} */ (value))) % this.step);\n }\n };\n /**\n * @private\n * @return {?}\n */\n IgxSliderComponent.prototype.updateTrack = /**\n * @private\n * @return {?}\n */\n function () {\n /** @type {?} */\n var fromPosition = this.valueToFraction(this.lowerValue);\n /** @type {?} */\n var toPosition = this.valueToFraction(this.upperValue);\n /** @type {?} */\n var positionGap = toPosition - fromPosition;\n /** @type {?} */\n var trackLeftIndention = fromPosition;\n if (this.isRange) {\n if (positionGap) {\n trackLeftIndention = Math.round((1 / positionGap * fromPosition) * 100);\n }\n this.renderer.setStyle(this.track.nativeElement, 'transform', \"scaleX(\" + positionGap + \") translateX(\" + trackLeftIndention + \"%)\");\n }\n else {\n this.renderer.setStyle(this.track.nativeElement, 'transform', \"scaleX(\" + toPosition + \")\");\n }\n };\n /**\n * @private\n * @param {?} value\n * @return {?}\n */\n IgxSliderComponent.prototype.validateInitialValue = /**\n * @private\n * @param {?} value\n * @return {?}\n */\n function (value) {\n if (value.lower < this.lowerBound && value.upper < this.lowerBound) {\n value.upper = this.lowerBound;\n value.lower = this.lowerBound;\n }\n if (value.lower > this.upperBound && value.upper > this.upperBound) {\n value.upper = this.upperBound;\n value.lower = this.upperBound;\n }\n if (value.upper < value.lower) {\n value.upper = this.upperValue;\n value.lower = this.lowerValue;\n }\n return value;\n };\n /**\n * @private\n * @param {?} thumb\n * @param {?} callback\n * @return {?}\n */\n IgxSliderComponent.prototype.subscribeTo = /**\n * @private\n * @param {?} thumb\n * @param {?} callback\n * @return {?}\n */\n function (thumb, callback) {\n if (!thumb) {\n return;\n }\n thumb.onThumbValueChange\n .pipe(takeUntil(this.unsubscriber(thumb)))\n .subscribe(function (value) { return callback(value, thumb.type); });\n };\n /**\n * @private\n * @param {?} thumb\n * @return {?}\n */\n IgxSliderComponent.prototype.unsubscriber = /**\n * @private\n * @param {?} thumb\n * @return {?}\n */\n function (thumb) {\n return merge(this._destroyer$, thumb.destroy);\n };\n /**\n * @private\n * @param {?} oldValue\n * @return {?}\n */\n IgxSliderComponent.prototype.hasValueChanged = /**\n * @private\n * @param {?} oldValue\n * @return {?}\n */\n function (oldValue) {\n /** @type {?} */\n var isSliderWithDifferentValue = !this.isRange && oldValue !== this.value;\n /** @type {?} */\n var isRangeWithOneDifferentValue = this.isRange &&\n (((/** @type {?} */ (oldValue))).lower !== ((/** @type {?} */ (this.value))).lower ||\n ((/** @type {?} */ (oldValue))).upper !== ((/** @type {?} */ (this.value))).upper);\n return isSliderWithDifferentValue || isRangeWithOneDifferentValue;\n };\n /**\n * @private\n * @param {?} oldValue\n * @return {?}\n */\n IgxSliderComponent.prototype.emitValueChanged = /**\n * @private\n * @param {?} oldValue\n * @return {?}\n */\n function (oldValue) {\n this.onValueChange.emit({ oldValue: oldValue, value: this.value });\n };\n IgxSliderComponent.decorators = [\n { type: Component, args: [{\n providers: [{ provide: NG_VALUE_ACCESSOR, useExisting: IgxSliderComponent, multi: true }],\n selector: 'igx-slider',\n template: \"
\\n
\\n
\\n
\\n
\\n \\n\\n \\n\\n \\n\\n \\n
\\n\"\n }] }\n ];\n /** @nocollapse */\n IgxSliderComponent.ctorParameters = function () { return [\n { type: Renderer2 },\n { type: ElementRef },\n { type: ChangeDetectorRef }\n ]; };\n IgxSliderComponent.propDecorators = {\n track: [{ type: ViewChild, args: ['track', { static: true },] }],\n ticks: [{ type: ViewChild, args: ['ticks', { static: true },] }],\n thumbs: [{ type: ViewChildren, args: [IgxSliderThumbComponent,] }],\n labelRefs: [{ type: ViewChildren, args: [IgxThumbLabelComponent,] }],\n thumbFromTemplateRef: [{ type: ContentChild, args: [IgxThumbFromTemplateDirective, { read: TemplateRef, static: false },] }],\n thumbToTemplateRef: [{ type: ContentChild, args: [IgxThumbToTemplateDirective, { read: TemplateRef, static: false },] }],\n role: [{ type: HostBinding, args: [\"attr.role\",] }],\n valuemin: [{ type: HostBinding, args: [\"attr.aria-valuemin\",] }],\n valuemax: [{ type: HostBinding, args: [\"attr.aria-valuemax\",] }],\n readonly: [{ type: HostBinding, args: [\"attr.aria-readonly\",] }],\n slierClass: [{ type: HostBinding, args: ['class.igx-slider',] }],\n disabledClass: [{ type: HostBinding, args: ['class.igx-slider--disabled',] }],\n id: [{ type: HostBinding, args: ['attr.id',] }, { type: Input }],\n type: [{ type: Input }],\n thumbLabelVisibilityDuration: [{ type: Input }],\n labels: [{ type: Input }],\n step: [{ type: Input }],\n disabled: [{ type: Input }],\n continuous: [{ type: Input }],\n isContinuous: [{ type: Input }],\n maxValue: [{ type: Input }],\n minValue: [{ type: Input }],\n lowerBound: [{ type: Input }],\n upperBound: [{ type: Input }],\n value: [{ type: Input }],\n onValueChange: [{ type: Output }],\n onPointerDown: [{ type: HostListener, args: ['pointerdown', ['$event'],] }],\n onPointerUp: [{ type: HostListener, args: ['pointerup', ['$event'],] }],\n onFocus: [{ type: HostListener, args: ['focus',] }],\n onPanListener: [{ type: HostListener, args: ['pan', ['$event'],] }],\n onPanStart: [{ type: HostListener, args: ['panstart',] }],\n onPanEnd: [{ type: HostListener, args: ['panend',] }]\n };\n __decorate([\n DeprecateProperty(\"IgxSliderComponent `isContinuous` property is deprecated.\\nUse `continuous` instead.\"),\n __metadata(\"design:type\", Boolean),\n __metadata(\"design:paramtypes\", [Boolean])\n ], IgxSliderComponent.prototype, \"isContinuous\", null);\n return IgxSliderComponent;\n}());\n/**\n * @hidden\n */\nvar IgxSliderModule = /** @class */ (function () {\n function IgxSliderModule() {\n }\n IgxSliderModule.decorators = [\n { type: NgModule, args: [{\n declarations: [\n IgxSliderComponent,\n IgxThumbFromTemplateDirective,\n IgxThumbToTemplateDirective,\n IgxSliderThumbComponent,\n IgxThumbLabelComponent\n ],\n exports: [\n IgxSliderComponent,\n IgxThumbFromTemplateDirective,\n IgxThumbToTemplateDirective,\n IgxSliderThumbComponent,\n IgxThumbLabelComponent\n ],\n imports: [CommonModule]\n },] }\n ];\n return IgxSliderModule;\n}());\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n/** @type {?} */\nvar NEXT_ID$s = 0;\n/**\n * **Ignite UI for Angular Snackbar** -\n * [Documentation](https://www.infragistics.com/products/ignite-ui-angular/angular/components/snackbar.html)\n *\n * The Ignite UI Snack Bar provides feedback about an operation with a single-line message, which can\n * include a link to an action such as Undo.\n *\n * Example:\n * ```html\n * \n *
\n * \n * \n *
\n * ```\n */\nvar IgxSnackbarComponent = /** @class */ (function () {\n function IgxSnackbarComponent(zone) {\n this.zone = zone;\n /**\n * Sets/gets the `id` of the snackbar.\n * If not set, the `id` of the first snackbar component will be `\"igx-snackbar-0\"`;\n * ```html\n * \n * ```\n * ```typescript\n * let snackbarId = this.snackbar.id;\n * ```\n * \\@memberof IgxSnackbarComponent\n */\n this.id = \"igx-snackbar-\" + NEXT_ID$s++;\n /**\n * Enables/Disables the visibility of the snackbar.\n * If not set, the `isVisible` attribute will have value `false`.\n * ```html\n * \n * ```\n * ```typescript\n * let isVisible = this.snackbar.isVisible;\n * ```\n */\n this.isVisible = false;\n /**\n * Sets/gets if the snackbar will be automatically hidden after the `displayTime` is over.\n * Default value is `true`.\n * ```html\n * \n * ```\n * ```typescript\n * let autoHide = this.snackbar.autoHide;\n * ```\n */\n this.autoHide = true;\n /**\n * Sets/gets the duration of time(in milliseconds) in which the snackbar will be visible after it is being shown.\n * Default value is 4000.\n * ```html\n * \n * ```\n * ```typescript\n * let displayTime = this.snackbar.displayTime;\n * ```\n */\n this.displayTime = 4000;\n /**\n * An event that will be emitted when the action is executed.\n * Provides reference to the `IgxSnackbarComponent` as an argument.\n * ```html\n * \n * ```\n */\n this.onAction = new EventEmitter();\n /**\n * An event that will be emitted when the snackbar animation starts.\n * Provides reference to the `AnimationEvent` interface as an argument.\n * ```html\n * \n * ```\n */\n this.animationStarted = new EventEmitter();\n /**\n * An event that will be emitted when the snackbar animation ends.\n * Provides reference to the `AnimationEvent` interface as an argument.\n * ```html\n * \n * ```\n */\n this.animationDone = new EventEmitter();\n }\n /**\n * Shows the snackbar and hides it after the `displayTime` is over if `autoHide` is set to `true`.\n * ```typescript\n * this.snackbar.show();\n * ```\n */\n /**\n * Shows the snackbar and hides it after the `displayTime` is over if `autoHide` is set to `true`.\n * ```typescript\n * this.snackbar.show();\n * ```\n * @return {?}\n */\n IgxSnackbarComponent.prototype.show = /**\n * Shows the snackbar and hides it after the `displayTime` is over if `autoHide` is set to `true`.\n * ```typescript\n * this.snackbar.show();\n * ```\n * @return {?}\n */\n function () {\n var _this = this;\n clearTimeout(this.timeoutId);\n setTimeout(this.timeoutId);\n this.isVisible = true;\n if (this.autoHide) {\n this.timeoutId = setTimeout(function () {\n _this.hide();\n }, this.displayTime);\n }\n };\n /**\n * Hides the snackbar.\n * ```typescript\n * this.snackbar.hide();\n * ```\n */\n /**\n * Hides the snackbar.\n * ```typescript\n * this.snackbar.hide();\n * ```\n * @return {?}\n */\n IgxSnackbarComponent.prototype.hide = /**\n * Hides the snackbar.\n * ```typescript\n * this.snackbar.hide();\n * ```\n * @return {?}\n */\n function () {\n this.isVisible = false;\n clearTimeout(this.timeoutId);\n };\n /**\n *@hidden\n */\n /**\n * @hidden\n * @return {?}\n */\n IgxSnackbarComponent.prototype.triggerAction = /**\n * @hidden\n * @return {?}\n */\n function () {\n this.onAction.emit(this);\n };\n /**\n *@hidden\n * @memberof IgxSnackbarComponent\n */\n /**\n * @hidden\n * \\@memberof IgxSnackbarComponent\n * @param {?} evt\n * @return {?}\n */\n IgxSnackbarComponent.prototype.snackbarAnimationStarted = /**\n * @hidden\n * \\@memberof IgxSnackbarComponent\n * @param {?} evt\n * @return {?}\n */\n function (evt) {\n if (evt.fromState === 'void') {\n this.animationStarted.emit(evt);\n }\n };\n /**\n *@hidden\n * @memberof IgxSnackbarComponent\n */\n /**\n * @hidden\n * \\@memberof IgxSnackbarComponent\n * @param {?} evt\n * @return {?}\n */\n IgxSnackbarComponent.prototype.snackbarAnimationDone = /**\n * @hidden\n * \\@memberof IgxSnackbarComponent\n * @param {?} evt\n * @return {?}\n */\n function (evt) {\n if (evt.fromState === 'show') {\n this.animationDone.emit(evt);\n }\n };\n IgxSnackbarComponent.decorators = [\n { type: Component, args: [{\n animations: [\n trigger('slideInOut', [\n transition('void => *', [\n useAnimation(slideInBottom, {\n params: {\n duration: '.35s',\n easing: 'cubic-bezier(0.0, 0.0, 0.2, 1)',\n fromPosition: 'translateY(100%)',\n toPosition: 'translateY(0)'\n }\n })\n ]),\n transition('* => void', [\n useAnimation(slideOutBottom, {\n params: {\n duration: '.2s',\n easing: 'cubic-bezier(0.4, 0.0, 1, 1)',\n fromPosition: 'translateY(0)',\n toOpacity: 1,\n toPosition: 'translateY(100%)'\n }\n })\n ])\n ]),\n trigger('fadeInOut', [\n transition('void => *', [\n useAnimation(fadeIn, {\n params: {\n duration: '.35s',\n easing: 'ease-out'\n }\n })\n ]),\n transition('* => void', [\n useAnimation(fadeOut, {\n params: {\n duration: '.2s',\n easing: 'ease-out'\n }\n })\n ])\n ])\n ],\n selector: 'igx-snackbar',\n template: \"
\\n
\\n {{ message }}\\n \\n
\\n \\n
\\n\",\n styles: [\"\\n :host {\\n display: block;\\n }\\n \"]\n }] }\n ];\n /** @nocollapse */\n IgxSnackbarComponent.ctorParameters = function () { return [\n { type: NgZone }\n ]; };\n IgxSnackbarComponent.propDecorators = {\n id: [{ type: HostBinding, args: ['attr.id',] }, { type: Input }],\n message: [{ type: Input }],\n isVisible: [{ type: Input }],\n autoHide: [{ type: Input }],\n displayTime: [{ type: Input }],\n actionText: [{ type: Input }],\n onAction: [{ type: Output }],\n animationStarted: [{ type: Output }],\n animationDone: [{ type: Output }]\n };\n return IgxSnackbarComponent;\n}());\n/**\n * @hidden\n */\nvar IgxSnackbarModule = /** @class */ (function () {\n function IgxSnackbarModule() {\n }\n IgxSnackbarModule.decorators = [\n { type: NgModule, args: [{\n declarations: [IgxSnackbarComponent],\n exports: [IgxSnackbarComponent],\n imports: [CommonModule]\n },] }\n ];\n return IgxSnackbarModule;\n}());\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n/** @enum {string} */\nvar SwitchLabelPosition = {\n BEFORE: 'before',\n AFTER: 'after',\n};\n/** @type {?} */\nvar noop$8 = function () { };\n/** @type {?} */\nvar nextId$3 = 0;\n/**\n * **Ignite UI for Angular Switch** -\n * [Documentation](https://www.infragistics.com/products/ignite-ui-angular/angular/components/switch.html)\n *\n * The Ignite UI Switch lets the user toggle between on/off or true/false states.\n *\n * Example:\n * ```html\n * \n * Simple switch\n * \n * ```\n */\nvar IgxSwitchComponent = /** @class */ (function () {\n function IgxSwitchComponent() {\n /**\n * Sets/gets the `id` of the switch component.\n * If not set, the `id` of the first switch component will be `\"igx-switch-0\"`.\n * ```html\n * \n * ```\n * ```typescript\n * let switchId = this.switch.id;\n * ```\n * \\@memberof IgxSwitchComponent\n */\n this.id = \"igx-switch-\" + nextId$3++;\n /**\n * Sets/gets the id of the `label` element in the switch component.\n * If not set, the label of the first switch component will have value `\"igx-switch-0-label\"`.\n * ```html\n * \n * ```\n * ```typescript\n * let labelId = this.switch.labelId;\n * ```\n * \\@memberof IgxSwitchComponent\n */\n this.labelId = this.id + \"-label\";\n /**\n * Sets/gets the value of the `tabindex` attribute.\n * ```html\n * \n * ```\n * ```typescript\n * let tabIndex = this.switch.tabindex;\n * ```\n * \\@memberof IgxSwitchComponent\n */\n this.tabindex = null;\n /**\n * Sets/gets the position of the `label` in the switch component.\n * If not set, `labelPosition` will have value `\"after\"`.\n * ```html\n * \n * ```\n * ```typescript\n * let labelPosition = this.switch.labelPosition;\n * ```\n * \\@memberof IgxSwitchComponent\n */\n this.labelPosition = 'after';\n /**\n * Enables/Disables the ripple effect\n * If not set, `disableRipple` will have value `false`.\n * ```html\n * \n * ```\n * ```typescript\n * let isRippleDisabled = this.switch.disableRipple;\n * ```\n * \\@memberof IgxSwitchComponent\n */\n this.disableRipple = false;\n /**\n * Sets/gets whether switch is required.\n * If not set, `required` will have value `false`.\n * ```html\n * \n * ```\n * ```typescript\n * let isRequired = this.switch.required;\n * ```\n * \\@memberof IgxSwitchComponent\n */\n this.required = false;\n /**\n * Sets/gets the `aria-labelledBy` attribute.\n * If not set, the value of `aria-labelledBy` will be equal to the value of `labelId` attribute.\n * ```html\n * \n * ```\n * ```typescript\n * let ariaLabelledBy = this.switch.ariaLabelledBy;\n * ```\n * \\@memberof IgxSwitchComponent\n */\n this.ariaLabelledBy = this.labelId;\n /**\n * Sets/gets the value of the `aria-label` attribute.\n * ```html\n * \n * ```\n * ```typescript\n * let ariaLabel = this.switch.ariaLabel;\n * ```\n * \\@memberof IgxSwitchComponent\n */\n this.ariaLabel = null;\n /**\n * An event that is emitted after the switch state is changed.\n * Provides references to the `IgxSwitchComponent` and the `checked` property as event arguments.\n * \\@memberof IgxSwitchComponent\n */\n this.change = new EventEmitter();\n /**\n * @hidden\n * \\@memberof IgxSwitchComponent\n */\n this._onTouchedCallback = noop$8;\n /**\n * @hidden\n * \\@memberof IgxSwitchComponent\n */\n this._onChangeCallback = noop$8;\n /**\n * Returns the class of the switch component.\n * ```typescript\n * let switchClass = this.switch.cssClass;\n * ```\n * \\@memberof IgxSwitchComponent\n */\n this.cssClass = 'igx-switch';\n /**\n * Sets/gets whether the switch is on or off.\n * Default value is 'false'.\n * ```html\n * \n * ```\n * ```typescript\n * let isChecked = this.switch.checked;\n * ```\n * \\@memberof IgxSwitchComponent\n */\n this.checked = false;\n /**\n * Sets/gets the `disabled` attribute.\n * Default value is `false`.\n * ```html\n * \n * ```\n * ```typescript\n * let isDisabled = this.switch.disabled;\n * ```\n * \\@memberof IgxSwitchComponent\n */\n this.disabled = false;\n /**\n * Sets/gets whether the switch component is on focus.\n * Default value is `false`.\n * ```typescript\n * this.switch.focused = true;\n * ```\n * ```typescript\n * let isFocused = this.switch.focused;\n * ```\n * \\@memberof IgxSwitchComponent\n */\n this.focused = false;\n /**\n * @hidden\n */\n this.inputId = this.id + \"-input\";\n }\n /**\n * Toggles the checked state of the switch.\n * ```typescript\n * this.switch.toggle();\n * ```\n * @memberof IgxSwitchComponent\n */\n /**\n * Toggles the checked state of the switch.\n * ```typescript\n * this.switch.toggle();\n * ```\n * \\@memberof IgxSwitchComponent\n * @return {?}\n */\n IgxSwitchComponent.prototype.toggle = /**\n * Toggles the checked state of the switch.\n * ```typescript\n * this.switch.toggle();\n * ```\n * \\@memberof IgxSwitchComponent\n * @return {?}\n */\n function () {\n if (this.disabled) {\n return;\n }\n this.checked = !this.checked;\n this.focused = false;\n this.change.emit({ checked: this.checked, switch: this });\n this._onChangeCallback(this.checked);\n };\n /**\n *@hidden\n */\n /**\n * @hidden\n * @param {?} event\n * @return {?}\n */\n IgxSwitchComponent.prototype._onSwitchChange = /**\n * @hidden\n * @param {?} event\n * @return {?}\n */\n function (event) {\n event.stopPropagation();\n };\n /**\n *@hidden\n */\n /**\n * @hidden\n * @param {?} event\n * @return {?}\n */\n IgxSwitchComponent.prototype._onSwitchClick = /**\n * @hidden\n * @param {?} event\n * @return {?}\n */\n function (event) {\n event.stopPropagation();\n this.toggle();\n if (isIE()) {\n this.nativeCheckbox.nativeElement.blur();\n }\n };\n /**\n *@hidden\n */\n /**\n * @hidden\n * @param {?} event\n * @return {?}\n */\n IgxSwitchComponent.prototype._onLabelClick = /**\n * @hidden\n * @param {?} event\n * @return {?}\n */\n function (event) {\n this.toggle();\n };\n /**\n *@hidden\n */\n /**\n * @hidden\n * @param {?} event\n * @return {?}\n */\n IgxSwitchComponent.prototype.onFocus = /**\n * @hidden\n * @param {?} event\n * @return {?}\n */\n function (event) {\n this.focused = true;\n };\n /**\n *@hidden\n */\n /**\n * @hidden\n * @param {?} event\n * @return {?}\n */\n IgxSwitchComponent.prototype.onBlur = /**\n * @hidden\n * @param {?} event\n * @return {?}\n */\n function (event) {\n this.focused = false;\n this._onTouchedCallback();\n };\n /**\n *@hidden\n */\n /**\n * @hidden\n * @param {?} value\n * @return {?}\n */\n IgxSwitchComponent.prototype.writeValue = /**\n * @hidden\n * @param {?} value\n * @return {?}\n */\n function (value) {\n this._value = value;\n this.checked = !!this._value;\n };\n /** @hidden */\n /**\n * @hidden\n * @return {?}\n */\n IgxSwitchComponent.prototype.getEditElement = /**\n * @hidden\n * @return {?}\n */\n function () {\n return this.nativeCheckbox.nativeElement;\n };\n Object.defineProperty(IgxSwitchComponent.prototype, \"labelClass\", {\n /**\n *@hidden\n */\n get: /**\n * @hidden\n * @return {?}\n */\n function () {\n switch (this.labelPosition) {\n case SwitchLabelPosition.BEFORE:\n return this.cssClass + \"__label--before\";\n case SwitchLabelPosition.AFTER:\n default:\n return this.cssClass + \"__label\";\n }\n },\n enumerable: true,\n configurable: true\n });\n /**\n *@hidden\n */\n /**\n * @hidden\n * @param {?} fn\n * @return {?}\n */\n IgxSwitchComponent.prototype.registerOnChange = /**\n * @hidden\n * @param {?} fn\n * @return {?}\n */\n function (fn) { this._onChangeCallback = fn; };\n /**\n *@hidden\n */\n /**\n * @hidden\n * @param {?} fn\n * @return {?}\n */\n IgxSwitchComponent.prototype.registerOnTouched = /**\n * @hidden\n * @param {?} fn\n * @return {?}\n */\n function (fn) { this._onTouchedCallback = fn; };\n IgxSwitchComponent.decorators = [\n { type: Component, args: [{\n providers: [{ provide: NG_VALUE_ACCESSOR, useExisting: IgxSwitchComponent, multi: true }],\n selector: 'igx-switch',\n template: \"\\n\\n\\n\\n\\n \\n\\n\"\n }] }\n ];\n IgxSwitchComponent.propDecorators = {\n nativeCheckbox: [{ type: ViewChild, args: ['checkbox', { static: true },] }],\n nativeLabel: [{ type: ViewChild, args: ['label', { static: true },] }],\n placeholderLabel: [{ type: ViewChild, args: ['placeholderLabel', { static: true },] }],\n id: [{ type: HostBinding, args: ['attr.id',] }, { type: Input }],\n labelId: [{ type: Input }],\n value: [{ type: Input }],\n name: [{ type: Input }],\n tabindex: [{ type: Input }],\n labelPosition: [{ type: Input }],\n disableRipple: [{ type: Input }],\n required: [{ type: Input }],\n ariaLabelledBy: [{ type: Input, args: ['aria-labelledby',] }],\n ariaLabel: [{ type: Input, args: ['aria-label',] }],\n change: [{ type: Output }],\n cssClass: [{ type: HostBinding, args: ['class.igx-switch',] }],\n checked: [{ type: HostBinding, args: ['class.igx-switch--checked',] }, { type: Input }],\n disabled: [{ type: HostBinding, args: ['class.igx-switch--disabled',] }, { type: Input }],\n focused: [{ type: HostBinding, args: ['class.igx-switch--focused',] }]\n };\n return IgxSwitchComponent;\n}());\n/** @type {?} */\nvar IGX_SWITCH_REQUIRED_VALIDATOR = {\n provide: NG_VALIDATORS,\n useExisting: forwardRef(function () { return IgxSwitchRequiredDirective; }),\n multi: true\n};\n/* tslint:disable directive-selector */\nvar IgxSwitchRequiredDirective = /** @class */ (function (_super) {\n __extends(IgxSwitchRequiredDirective, _super);\n function IgxSwitchRequiredDirective() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n IgxSwitchRequiredDirective.decorators = [\n { type: Directive, args: [{\n selector: \"igx-switch[required][formControlName],\\n igx-switch[required][formControl],\\n igx-switch[required][ngModel]\",\n providers: [IGX_SWITCH_REQUIRED_VALIDATOR]\n },] }\n ];\n return IgxSwitchRequiredDirective;\n}(CheckboxRequiredValidator));\n/**\n * @hidden\n */\nvar IgxSwitchModule = /** @class */ (function () {\n function IgxSwitchModule() {\n }\n IgxSwitchModule.decorators = [\n { type: NgModule, args: [{\n declarations: [IgxSwitchComponent, IgxSwitchRequiredDirective],\n exports: [IgxSwitchComponent, IgxSwitchRequiredDirective],\n imports: [IgxRippleModule]\n },] }\n ];\n return IgxSwitchModule;\n}());\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n/** @type {?} */\nvar NEXT_ID$t = 0;\nvar IgxTabTemplateDirective = /** @class */ (function () {\n function IgxTabTemplateDirective(template) {\n this.template = template;\n }\n IgxTabTemplateDirective.decorators = [\n { type: Directive, args: [{\n selector: '[igxTab]'\n },] }\n ];\n /** @nocollapse */\n IgxTabTemplateDirective.ctorParameters = function () { return [\n { type: TemplateRef }\n ]; };\n return IgxTabTemplateDirective;\n}());\n/**\n * **Ignite UI for Angular Tab Bar** -\n * [Documentation](https://www.infragistics.com/products/ignite-ui-angular/angular/components/tabbar.html)\n *\n * The Ignite UI Tab Bar enables the user to navigate among a number of content panels displayed in a single view.\n *\n * Example:\n * ```html\n * \n * Tab 1 Content\n * Tab 2 Content\n * Tab 3 Content\n * \n * ```\n */\nvar IgxBottomNavComponent = /** @class */ (function () {\n function IgxBottomNavComponent(_element) {\n this._element = _element;\n this._currentBottomNavId = NEXT_ID$t++;\n /**\n * Sets/gets the `id` of the tab bar.\n * If not set, the `id` of the first tab bar component will be `\"igx-bottom-nav-0\"`.\n * ```html\n * \n * ```\n * ```typescript\n * let tabBarId = this.tabBar.id;\n * ```\n * \\@memberof IgxBottomNavComponent\n */\n this.id = \"igx-bottom-nav-\" + this._currentBottomNavId;\n /**\n * Emits an event when a new tab is selected.\n * Provides references to the `IgxTabComponent` and `IgxTabPanelComponent` as event arguments.\n * ```html\n * \n * ```\n * \\@memberof IgxBottomNavComponent\n */\n this.onTabSelected = new EventEmitter();\n /**\n * Emits an event when a tab is deselected.\n * Provides references to the `IgxTabComponent` and `IgxTabPanelComponent` as event arguments.\n * ```html\n * \n * ```\n * \\@memberof IgxBottomNavComponent\n */\n this.onTabDeselected = new EventEmitter();\n /**\n * Gets the `index` of selected tab/panel in the respective collection.\n * ```typescript\n * let index = this.tabBar.selectedIndex;\n * ```\n * \\@memberof IgxBottomNavComponent\n */\n this.selectedIndex = -1;\n /**\n * @hidden\n */\n this._itemStyle = 'igx-bottom-nav';\n }\n Object.defineProperty(IgxBottomNavComponent.prototype, \"tabs\", {\n /**\n * Gets the `IgxTabComponent` elements for this bottom navigation component.\n * First try to get them as content children if not available get them as view children.\n * ```typescript\n * let tabs: QueryList = this.tabBar.tabs;\n * ```\n * @memberof IgxBottomNavComponent\n */\n get: /**\n * Gets the `IgxTabComponent` elements for this bottom navigation component.\n * First try to get them as content children if not available get them as view children.\n * ```typescript\n * let tabs: QueryList = this.tabBar.tabs;\n * ```\n * \\@memberof IgxBottomNavComponent\n * @return {?}\n */\n function () {\n return this.hasContentTabs ? this.contentTabs : this.viewTabs;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxBottomNavComponent.prototype, \"itemStyle\", {\n /**\n * Gets the `itemStyle` of the tab bar.\n * ```typescript\n * let itemStyle = this.tabBar.itemStyle;\n * ```\n * @memberof IgxBottomNavComponent\n */\n get: /**\n * Gets the `itemStyle` of the tab bar.\n * ```typescript\n * let itemStyle = this.tabBar.itemStyle;\n * ```\n * \\@memberof IgxBottomNavComponent\n * @return {?}\n */\n function () {\n return this._itemStyle;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxBottomNavComponent.prototype, \"hasContentTabs\", {\n /**\n *@hidden\n */\n get: /**\n * @hidden\n * @return {?}\n */\n function () {\n return (this.contentTabs && this.contentTabs.length > 0);\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxBottomNavComponent.prototype, \"selectedTab\", {\n /**\n * Gets the selected tab in the tab bar.\n * ```typescript\n * let tab = this.tabBar.selectedTab;\n * ```\n * @memberof IgxBottomNavComponent\n */\n get: /**\n * Gets the selected tab in the tab bar.\n * ```typescript\n * let tab = this.tabBar.selectedTab;\n * ```\n * \\@memberof IgxBottomNavComponent\n * @return {?}\n */\n function () {\n if (this.tabs && this.selectedIndex !== undefined) {\n return this.tabs.toArray()[this.selectedIndex];\n }\n },\n enumerable: true,\n configurable: true\n });\n /**\n *@hidden\n */\n /**\n * @hidden\n * @return {?}\n */\n IgxBottomNavComponent.prototype.ngAfterViewInit = /**\n * @hidden\n * @return {?}\n */\n function () {\n var _this = this;\n this.setPanelsAttributes();\n this._panelsChanges$ = this.panels.changes.subscribe(function () {\n _this.setPanelsAttributes();\n });\n // initial selection\n setTimeout(function () {\n if (_this.selectedIndex === -1) {\n /** @type {?} */\n var selectablePanels = _this.panels.filter(function (p) { return !p.disabled; });\n /** @type {?} */\n var panel = selectablePanels[0];\n if (panel) {\n panel.select();\n }\n }\n }, 0);\n };\n /**\n *@hidden\n */\n /**\n * @hidden\n * @return {?}\n */\n IgxBottomNavComponent.prototype.ngOnDestroy = /**\n * @hidden\n * @return {?}\n */\n function () {\n if (this._panelsChanges$) {\n this._panelsChanges$.unsubscribe();\n }\n };\n /**\n * @private\n * @return {?}\n */\n IgxBottomNavComponent.prototype.setPanelsAttributes = /**\n * @private\n * @return {?}\n */\n function () {\n /** @type {?} */\n var panelsArray = this.panels.toArray();\n for (var index = 0; index < this.panels.length; index++) {\n /** @type {?} */\n var tabPanels = (/** @type {?} */ (panelsArray[index]));\n tabPanels.nativeElement.setAttribute('id', this.getTabPanelId(index));\n tabPanels.nativeElement.setAttribute('aria-labelledby', this.getTabId(index));\n }\n };\n /**\n * @hidden\n */\n /**\n * @hidden\n * @param {?} args\n * @return {?}\n */\n IgxBottomNavComponent.prototype._selectedPanelHandler = /**\n * @hidden\n * @param {?} args\n * @return {?}\n */\n function (args) {\n var _this = this;\n if (this.hasContentTabs) {\n this.selectedIndex = args.tab.index;\n this.contentTabs.forEach(function (t) {\n if (t !== args.tab) {\n _this._deselectTab(t);\n }\n });\n }\n else {\n if (args.panel) {\n this.selectedIndex = args.panel.index;\n this.panels.forEach(function (p) {\n if (p.index !== _this.selectedIndex) {\n _this._deselectPanel(p);\n }\n });\n }\n }\n };\n /**\n *@hidden\n */\n /**\n * @hidden\n * @private\n * @param {?} panel\n * @return {?}\n */\n IgxBottomNavComponent.prototype._deselectPanel = /**\n * @hidden\n * @private\n * @param {?} panel\n * @return {?}\n */\n function (panel) {\n // Cannot deselect the selected tab - this will mean that there will be not selected tab left\n if (panel.disabled || this.selectedTab.index === panel.index) {\n return;\n }\n panel.isSelected = false;\n this.onTabDeselected.emit({ tab: this.tabs[panel.index], panel: panel });\n };\n /**\n * @private\n * @param {?} aTab\n * @return {?}\n */\n IgxBottomNavComponent.prototype._deselectTab = /**\n * @private\n * @param {?} aTab\n * @return {?}\n */\n function (aTab) {\n aTab.isSelected = false;\n this.onTabDeselected.emit({ tab: aTab, panel: null });\n };\n /**\n * @hidden\n */\n /**\n * @hidden\n * @param {?} index\n * @return {?}\n */\n IgxBottomNavComponent.prototype.getTabId = /**\n * @hidden\n * @param {?} index\n * @return {?}\n */\n function (index) {\n return \"igx-tab-\" + this._currentBottomNavId + \"-\" + index;\n };\n /**\n * @hidden\n */\n /**\n * @hidden\n * @param {?} index\n * @return {?}\n */\n IgxBottomNavComponent.prototype.getTabPanelId = /**\n * @hidden\n * @param {?} index\n * @return {?}\n */\n function (index) {\n return \"igx-tab-panel-\" + this._currentBottomNavId + \"-\" + index;\n };\n IgxBottomNavComponent.decorators = [\n { type: Component, args: [{\n selector: 'igx-bottom-nav',\n template: \"
\\n \\n
\\n
\\n \\n >\\n \\n \\n \\n
\\n\",\n styles: [\"\\n :host {\\n display: block;\\n }\\n \"]\n }] }\n ];\n /** @nocollapse */\n IgxBottomNavComponent.ctorParameters = function () { return [\n { type: ElementRef }\n ]; };\n IgxBottomNavComponent.propDecorators = {\n viewTabs: [{ type: ViewChildren, args: [forwardRef(function () { return IgxTabComponent; }),] }],\n contentTabs: [{ type: ContentChildren, args: [forwardRef(function () { return IgxTabComponent; }),] }],\n panels: [{ type: ContentChildren, args: [forwardRef(function () { return IgxTabPanelComponent; }),] }],\n id: [{ type: HostBinding, args: ['attr.id',] }, { type: Input }],\n onTabSelected: [{ type: Output }],\n onTabDeselected: [{ type: Output }],\n _selectedPanelHandler: [{ type: HostListener, args: ['onTabSelected', ['$event'],] }]\n };\n return IgxBottomNavComponent;\n}());\n// ================================= IgxTabPanelComponent ======================================\nvar IgxTabPanelComponent = /** @class */ (function () {\n function IgxTabPanelComponent(_tabBar, _element) {\n this._tabBar = _tabBar;\n this._element = _element;\n /**\n * @hidden\n */\n this._itemStyle = 'igx-tab-panel';\n /**\n * @hidden\n */\n this._isSelected = false;\n /**\n * Gets the role of the tab panel.\n * ```typescript\n * let tabPanelRole = this.tabPanel.role;\n * ```\n * \\@memberof IgxTabPanelComponent\n */\n this.role = 'tabpanel';\n }\n Object.defineProperty(IgxTabPanelComponent.prototype, \"styleClass\", {\n /**\n * Gets whether a tab panel will have `igx-bottom-nav__panel` class.\n * ```typescript\n * let styleClass = this.tabPanel.styleClass;\n * ```\n * @memberof IgxTabPanelComponent\n */\n get: /**\n * Gets whether a tab panel will have `igx-bottom-nav__panel` class.\n * ```typescript\n * let styleClass = this.tabPanel.styleClass;\n * ```\n * \\@memberof IgxTabPanelComponent\n * @return {?}\n */\n function () {\n return (!this.isSelected);\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxTabPanelComponent.prototype, \"isSelected\", {\n /**\n * Sets/gets whether a tab panel is selected.\n * ```typescript\n * this.tabPanel.isSelected = true;\n * ```\n * ```typescript\n * let isSelected = this.tabPanel.isSelected;\n * ```\n * @memberof IgxTabPanelComponent\n */\n get: /**\n * Sets/gets whether a tab panel is selected.\n * ```typescript\n * this.tabPanel.isSelected = true;\n * ```\n * ```typescript\n * let isSelected = this.tabPanel.isSelected;\n * ```\n * \\@memberof IgxTabPanelComponent\n * @return {?}\n */\n function () {\n return this._isSelected;\n },\n set: /**\n * @param {?} newValue\n * @return {?}\n */\n function (newValue) {\n if (this._isSelected !== newValue) {\n if (newValue) {\n this.select();\n }\n else {\n this._isSelected = newValue;\n }\n }\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxTabPanelComponent.prototype, \"itemStyle\", {\n /**\n * Gets the `itemStyle` of the tab panel.\n * ```typescript\n * let itemStyle = this.tabPanel.itemStyle;\n * ```\n * @memberof IgxTabPanelComponent\n */\n get: /**\n * Gets the `itemStyle` of the tab panel.\n * ```typescript\n * let itemStyle = this.tabPanel.itemStyle;\n * ```\n * \\@memberof IgxTabPanelComponent\n * @return {?}\n */\n function () {\n return this._itemStyle;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxTabPanelComponent.prototype, \"nativeElement\", {\n /**\n * Returns the native element of the tab-panel component\n * ```typescript\n * const mytabPanelElement: HTMLElement = tabPanel.nativeElement;\n * ```\n */\n get: /**\n * Returns the native element of the tab-panel component\n * ```typescript\n * const mytabPanelElement: HTMLElement = tabPanel.nativeElement;\n * ```\n * @return {?}\n */\n function () {\n return this._element.nativeElement;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxTabPanelComponent.prototype, \"relatedTab\", {\n /**\n * Gets the tab associated with the panel.\n * ```typescript\n * let tab = this.tabPanel.relatedTab;\n * ```\n * @memberof IgxTabPanelComponent\n */\n get: /**\n * Gets the tab associated with the panel.\n * ```typescript\n * let tab = this.tabPanel.relatedTab;\n * ```\n * \\@memberof IgxTabPanelComponent\n * @return {?}\n */\n function () {\n if (this._tabBar.tabs) {\n return this._tabBar.tabs.toArray()[this.index];\n }\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxTabPanelComponent.prototype, \"changesCount\", {\n /**\n * Gets the changes and updates accordingly applied to the tab/panel.\n *\n * @memberof IgxTabComponent\n */\n get: /**\n * Gets the changes and updates accordingly applied to the tab/panel.\n *\n * \\@memberof IgxTabComponent\n * @return {?}\n */\n function () {\n return this.relatedTab ? this.relatedTab.changesCount : 0;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxTabPanelComponent.prototype, \"index\", {\n /**\n * Gets the index of a panel in the panels collection.\n * ```typescript\n * let panelIndex = this.tabPanel.index\n * ```\n * @memberof IgxTabPanelComponent\n */\n get: /**\n * Gets the index of a panel in the panels collection.\n * ```typescript\n * let panelIndex = this.tabPanel.index\n * ```\n * \\@memberof IgxTabPanelComponent\n * @return {?}\n */\n function () {\n if (this._tabBar.panels) {\n return this._tabBar.panels.toArray().indexOf(this);\n }\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxTabPanelComponent.prototype, \"customTabTemplate\", {\n /**\n * Gets the tab template.\n * ```typescript\n * let tabTemplate = this.tabPanel.customTabTemplate\n * ```\n * @memberof IgxTabPanelComponent\n */\n get: /**\n * Gets the tab template.\n * ```typescript\n * let tabTemplate = this.tabPanel.customTabTemplate\n * ```\n * \\@memberof IgxTabPanelComponent\n * @return {?}\n */\n function () {\n return this._tabTemplate;\n },\n /**\n * Sets the tab template.\n * ```typescript\n * this.tabPanel.customTabTemplate(tabTemplate);\n * ```\n * @memberof IgxTabPanelComponent\n */\n set: /**\n * Sets the tab template.\n * ```typescript\n * this.tabPanel.customTabTemplate(tabTemplate);\n * ```\n * \\@memberof IgxTabPanelComponent\n * @param {?} template\n * @return {?}\n */\n function (template) {\n this._tabTemplate = template;\n },\n enumerable: true,\n configurable: true\n });\n /**\n *@hidden\n */\n /**\n * @hidden\n * @return {?}\n */\n IgxTabPanelComponent.prototype.ngAfterContentInit = /**\n * @hidden\n * @return {?}\n */\n function () {\n if (this.tabTemplate) {\n this._tabTemplate = this.tabTemplate.template;\n }\n };\n /**\n * Selects the current tab and the tab panel.\n * ```typescript\n * this.tabPanel.select();\n * ```\n * @memberof IgxTabPanelComponent\n */\n /**\n * Selects the current tab and the tab panel.\n * ```typescript\n * this.tabPanel.select();\n * ```\n * \\@memberof IgxTabPanelComponent\n * @return {?}\n */\n IgxTabPanelComponent.prototype.select = /**\n * Selects the current tab and the tab panel.\n * ```typescript\n * this.tabPanel.select();\n * ```\n * \\@memberof IgxTabPanelComponent\n * @return {?}\n */\n function () {\n if (this.disabled || this._tabBar.selectedIndex === this.index) {\n return;\n }\n this._isSelected = true;\n this._tabBar.onTabSelected.emit({ tab: this._tabBar.tabs.toArray()[this.index], panel: this });\n };\n IgxTabPanelComponent.decorators = [\n { type: Component, args: [{\n selector: 'igx-tab-panel',\n template: \"\\n\"\n }] }\n ];\n /** @nocollapse */\n IgxTabPanelComponent.ctorParameters = function () { return [\n { type: IgxBottomNavComponent },\n { type: ElementRef }\n ]; };\n IgxTabPanelComponent.propDecorators = {\n label: [{ type: Input }],\n icon: [{ type: Input }],\n disabled: [{ type: Input }],\n role: [{ type: HostBinding, args: ['attr.role',] }],\n styleClass: [{ type: HostBinding, args: ['class.igx-bottom-nav__panel',] }],\n isSelected: [{ type: HostBinding, args: ['class.igx-bottom-nav__panel--selected',] }],\n tabTemplate: [{ type: ContentChild, args: [IgxTabTemplateDirective, { read: IgxTabTemplateDirective, static: false },] }]\n };\n return IgxTabPanelComponent;\n}());\n// ======================================= IgxTabComponent ==========================================\nvar IgxTabComponent = /** @class */ (function () {\n function IgxTabComponent(_tabBar, _element) {\n this._tabBar = _tabBar;\n this._element = _element;\n /**\n * Gets the `role` attribute.\n * ```typescript\n * let tabRole = this.tab.role;\n * ```\n * \\@memberof IgxTabComponent\n */\n this.role = 'tab';\n /**\n * @hidden \\@internal\n */\n this.ariaLabel = this.label;\n /**\n * @hidden \\@internal\n */\n this.ariaDisabled = this.disabled;\n /**\n * @hidden \\@internal\n */\n this.ariaSelected = this.isSelected;\n /**\n * @hidden\n */\n this._changesCount = 0; // changes and updates accordingly applied to the tab.\n this._disabled = false;\n this._selected = false;\n }\n Object.defineProperty(IgxTabComponent.prototype, \"label\", {\n /**\n * Sets/gets the `label` of the tab panel.\n * ```html\n * \n * ```\n * ```typescript\n * let tabLabel = this.tab.label;\n * ```\n * @memberof IgxTabComponent\n */\n get: /**\n * Sets/gets the `label` of the tab panel.\n * ```html\n * \n * ```\n * ```typescript\n * let tabLabel = this.tab.label;\n * ```\n * \\@memberof IgxTabComponent\n * @return {?}\n */\n function () {\n return this.relatedPanel ? this.relatedPanel.label : this._label;\n },\n set: /**\n * @param {?} newValue\n * @return {?}\n */\n function (newValue) {\n if (this.relatedPanel) {\n this.relatedPanel.label = newValue;\n }\n this._label = newValue;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxTabComponent.prototype, \"icon\", {\n /**\n * Sets/gets the `icon` of the tab panel.\n * ```html\n * \n * ```\n * ```typescript\n * let tabIcon = this.tab.icon;\n * ```\n * @memberof IgxTabComponent\n */\n get: /**\n * Sets/gets the `icon` of the tab panel.\n * ```html\n * \n * ```\n * ```typescript\n * let tabIcon = this.tab.icon;\n * ```\n * \\@memberof IgxTabComponent\n * @return {?}\n */\n function () {\n return this.relatedPanel ? this.relatedPanel.icon : this._icon;\n },\n set: /**\n * @param {?} newValue\n * @return {?}\n */\n function (newValue) {\n if (this.relatedPanel) {\n this.relatedPanel.icon = newValue;\n }\n this._icon = newValue;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxTabComponent.prototype, \"changesCount\", {\n /**\n * Gets the changes and updates accordingly applied to the tab.\n *\n * @memberof IgxTabComponent\n */\n get: \n // changes and updates accordingly applied to the tab.\n /**\n * Gets the changes and updates accordingly applied to the tab.\n *\n * \\@memberof IgxTabComponent\n * @return {?}\n */\n function () {\n return this._changesCount;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxTabComponent.prototype, \"disabled\", {\n /**\n * Gets whether the tab is disabled.\n * ```typescript\n * let isDisabled = this.tab.disabled;\n * ```\n * @memberof IgxTabComponent\n */\n get: /**\n * Gets whether the tab is disabled.\n * ```typescript\n * let isDisabled = this.tab.disabled;\n * ```\n * \\@memberof IgxTabComponent\n * @return {?}\n */\n function () {\n return this.relatedPanel ? this.relatedPanel.disabled : this._disabled;\n },\n set: /**\n * @param {?} newValue\n * @return {?}\n */\n function (newValue) {\n if (this.relatedPanel) {\n this.relatedPanel.disabled = newValue;\n }\n else {\n this._disabled = newValue;\n }\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxTabComponent.prototype, \"isSelected\", {\n get: /**\n * @return {?}\n */\n function () {\n return this.relatedPanel ? this.relatedPanel.isSelected : this._selected;\n },\n /**\n * Gets whether the tab is selected.\n * ```typescript\n * let isSelected = this.tab.isSelected;\n * ```\n * @memberof IgxTabComponent\n */\n set: /**\n * Gets whether the tab is selected.\n * ```typescript\n * let isSelected = this.tab.isSelected;\n * ```\n * \\@memberof IgxTabComponent\n * @param {?} newValue\n * @return {?}\n */\n function (newValue) {\n if (this.relatedPanel) {\n this.relatedPanel.isSelected = newValue;\n }\n else if (this._selected !== newValue) {\n this._selected = newValue;\n if (this._selected) {\n this._tabBar.onTabSelected.emit({ tab: this, panel: null });\n }\n }\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxTabComponent.prototype, \"cssClassSelected\", {\n get: /**\n * @return {?}\n */\n function () {\n return this.isSelected;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxTabComponent.prototype, \"cssClassDisabled\", {\n get: /**\n * @return {?}\n */\n function () {\n return this.disabled;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxTabComponent.prototype, \"cssClass\", {\n get: /**\n * @return {?}\n */\n function () {\n return (!this.disabled && !this.isSelected);\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxTabComponent.prototype, \"index\", {\n /**\n * Gets the `index` of the tab.\n * ```typescript\n * let tabIndex = this.tab.index;\n * ```\n * @memberof IgxTabComponent\n */\n get: /**\n * Gets the `index` of the tab.\n * ```typescript\n * let tabIndex = this.tab.index;\n * ```\n * \\@memberof IgxTabComponent\n * @return {?}\n */\n function () {\n if (this._tabBar.tabs) {\n return this._tabBar.tabs.toArray().indexOf(this);\n }\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxTabComponent.prototype, \"template\", {\n /**\n * Returns the `template` for this IgxTabComponent.\n * ```typescript\n * let tabItemTemplate = this.tabItem.template;\n * ```\n * @memberof IgxTabComponent\n */\n get: /**\n * Returns the `template` for this IgxTabComponent.\n * ```typescript\n * let tabItemTemplate = this.tabItem.template;\n * ```\n * \\@memberof IgxTabComponent\n * @return {?}\n */\n function () {\n if (this.relatedPanel && this.relatedPanel.customTabTemplate) {\n return this.relatedPanel.customTabTemplate;\n }\n if (this.customTabTemplateDir) {\n return this.customTabTemplateDir.template;\n }\n return this.defaultTabTemplate;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxTabComponent.prototype, \"context\", {\n /**\n * Returns the `context` object for the template of this `IgxTabComponent`.\n * ```typescript\n * let tabItemContext = this.tabItem.context;\n * ```\n */\n get: /**\n * Returns the `context` object for the template of this `IgxTabComponent`.\n * ```typescript\n * let tabItemContext = this.tabItem.context;\n * ```\n * @return {?}\n */\n function () {\n return this.relatedPanel ? this.relatedPanel : this;\n },\n enumerable: true,\n configurable: true\n });\n /**\n * Selects the current tab and the associated panel.\n * ```typescript\n * this.tab.select();\n * ```\n * @memberof IgxTabComponent\n */\n /**\n * Selects the current tab and the associated panel.\n * ```typescript\n * this.tab.select();\n * ```\n * \\@memberof IgxTabComponent\n * @return {?}\n */\n IgxTabComponent.prototype.select = /**\n * Selects the current tab and the associated panel.\n * ```typescript\n * this.tab.select();\n * ```\n * \\@memberof IgxTabComponent\n * @return {?}\n */\n function () {\n if (this.relatedPanel) {\n this.relatedPanel.select();\n }\n else {\n this._selected = true;\n this._tabBar.onTabSelected.emit({ tab: this, panel: null });\n }\n };\n /**\n * @hidden\n */\n /**\n * @hidden\n * @return {?}\n */\n IgxTabComponent.prototype.onClick = /**\n * @hidden\n * @return {?}\n */\n function () {\n if (this.autoGenerated) {\n this.select();\n }\n };\n /**\n * @return {?}\n */\n IgxTabComponent.prototype.elementRef = /**\n * @return {?}\n */\n function () {\n return this._element;\n };\n IgxTabComponent.decorators = [\n { type: Component, args: [{\n selector: 'igx-tab',\n template: \"\\n
\\n {{context.icon}}\\n \\n
\\n
{{context.label}}
\\n
\\n\\n\"\n }] }\n ];\n /** @nocollapse */\n IgxTabComponent.ctorParameters = function () { return [\n { type: IgxBottomNavComponent },\n { type: ElementRef }\n ]; };\n IgxTabComponent.propDecorators = {\n role: [{ type: HostBinding, args: ['attr.role',] }],\n ariaLabel: [{ type: HostBinding, args: ['attr.aria-label',] }],\n ariaDisabled: [{ type: HostBinding, args: ['attr.aria-disabled',] }],\n ariaSelected: [{ type: HostBinding, args: ['attr.aria-selected',] }],\n relatedPanel: [{ type: Input }],\n label: [{ type: Input }],\n icon: [{ type: Input }],\n disabled: [{ type: Input }],\n isSelected: [{ type: Input }],\n autoGenerated: [{ type: Input }],\n cssClassSelected: [{ type: HostBinding, args: ['class.igx-bottom-nav__menu-item--selected',] }],\n cssClassDisabled: [{ type: HostBinding, args: ['class.igx-bottom-nav__menu-item--disabled',] }],\n cssClass: [{ type: HostBinding, args: ['class.igx-bottom-nav__menu-item',] }],\n defaultTabTemplate: [{ type: ViewChild, args: ['defaultTabTemplate', { read: TemplateRef, static: true },] }],\n customTabTemplateDir: [{ type: ContentChild, args: [IgxTabTemplateDirective, { read: IgxTabTemplateDirective, static: false },] }],\n onClick: [{ type: HostListener, args: ['click',] }]\n };\n return IgxTabComponent;\n}());\n/**\n * @hidden\n */\nvar IgxBottomNavModule = /** @class */ (function () {\n function IgxBottomNavModule() {\n }\n IgxBottomNavModule.decorators = [\n { type: NgModule, args: [{\n declarations: [IgxBottomNavComponent, IgxTabPanelComponent, IgxTabComponent, IgxTabTemplateDirective],\n exports: [IgxBottomNavComponent, IgxTabPanelComponent, IgxTabComponent, IgxTabTemplateDirective],\n imports: [CommonModule, IgxBadgeModule, IgxIconModule]\n },] }\n ];\n return IgxBottomNavModule;\n}());\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n/**\n * @hidden\n * @abstract\n */\nvar /**\n * @hidden\n * @abstract\n */\nIgxTabsBase = /** @class */ (function () {\n function IgxTabsBase() {\n }\n /**\n * @param {?} element\n * @param {?} scrollRight\n * @return {?}\n */\n IgxTabsBase.prototype.scrollElement = /**\n * @param {?} element\n * @param {?} scrollRight\n * @return {?}\n */\n function (element, scrollRight) { };\n /**\n * @param {?} newTab\n * @return {?}\n */\n IgxTabsBase.prototype.performSelectionChange = /**\n * @param {?} newTab\n * @return {?}\n */\n function (newTab) { };\n /**\n * @param {?} tab\n * @param {?} duration\n * @return {?}\n */\n IgxTabsBase.prototype.transformContentAnimation = /**\n * @param {?} tab\n * @param {?} duration\n * @return {?}\n */\n function (tab, duration) { };\n /**\n * @param {?} element\n * @param {?=} duration\n * @return {?}\n */\n IgxTabsBase.prototype.transformIndicatorAnimation = /**\n * @param {?} element\n * @param {?=} duration\n * @return {?}\n */\n function (element, duration) { };\n return IgxTabsBase;\n}());\n/**\n * @hidden\n * @abstract\n */\nvar /**\n * @hidden\n * @abstract\n */\nIgxTabItemBase = /** @class */ (function () {\n function IgxTabItemBase() {\n }\n Object.defineProperty(IgxTabItemBase.prototype, \"index\", {\n get: /**\n * @return {?}\n */\n function () { return 0; },\n enumerable: true,\n configurable: true\n });\n /**\n * @return {?}\n */\n IgxTabItemBase.prototype.select = /**\n * @return {?}\n */\n function () { };\n /**\n * @param {?} newValue\n * @return {?}\n */\n IgxTabItemBase.prototype.setSelectedInternal = /**\n * @param {?} newValue\n * @return {?}\n */\n function (newValue) { };\n return IgxTabItemBase;\n}());\n/**\n * @hidden\n * @abstract\n */\nvar /**\n * @hidden\n * @abstract\n */\nIgxTabsGroupBase = /** @class */ (function () {\n function IgxTabsGroupBase() {\n }\n /**\n * @return {?}\n */\n IgxTabsGroupBase.prototype.select = /**\n * @return {?}\n */\n function () { };\n /**\n * @param {?} newValue\n * @return {?}\n */\n IgxTabsGroupBase.prototype.setSelectedInternal = /**\n * @param {?} newValue\n * @return {?}\n */\n function (newValue) { };\n return IgxTabsGroupBase;\n}());\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n/** @enum {string} */\nvar ButtonStyle = {\n VISIBLE: 'visible',\n HIDDEN: 'hidden',\n NOT_DISPLAYED: 'not_displayed',\n};\nvar IgxRightButtonStyleDirective = /** @class */ (function () {\n function IgxRightButtonStyleDirective(tabs) {\n this.tabs = tabs;\n }\n Object.defineProperty(IgxRightButtonStyleDirective.prototype, \"visibleCSS\", {\n get: /**\n * @return {?}\n */\n function () {\n return (this.getRightButtonStyle() === ButtonStyle.VISIBLE) ? true : false;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxRightButtonStyleDirective.prototype, \"hiddenCSS\", {\n get: /**\n * @return {?}\n */\n function () {\n return (this.getRightButtonStyle() === ButtonStyle.HIDDEN) ? true : false;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxRightButtonStyleDirective.prototype, \"notDisplayedCSS\", {\n get: /**\n * @return {?}\n */\n function () {\n return (this.getRightButtonStyle() === ButtonStyle.NOT_DISPLAYED) ? true : false;\n },\n enumerable: true,\n configurable: true\n });\n /**\n * @private\n * @return {?}\n */\n IgxRightButtonStyleDirective.prototype.getRightButtonStyle = /**\n * @private\n * @return {?}\n */\n function () {\n /** @type {?} */\n var viewPortWidth = this.tabs.viewPort.nativeElement.offsetWidth;\n // We use this hacky way to get the width of the itemsContainer,\n // because there is inconsistency in IE we cannot use offsetWidth or scrollOffset.\n /** @type {?} */\n var itemsContainerChildrenCount = this.tabs.itemsContainer.nativeElement.children.length;\n /** @type {?} */\n var itemsContainerWidth = 0;\n if (itemsContainerChildrenCount > 1) {\n /** @type {?} */\n var lastTab = this.tabs.itemsContainer.nativeElement.children[itemsContainerChildrenCount - 2];\n itemsContainerWidth = lastTab.offsetLeft + lastTab.offsetWidth;\n }\n /** @type {?} */\n var headerContainerWidth = this.tabs.headerContainer.nativeElement.offsetWidth;\n /** @type {?} */\n var offset = this.tabs.offset;\n /** @type {?} */\n var total = offset + viewPortWidth;\n // Fix for IE 11, a difference is accumulated from the widths calculations.\n if (itemsContainerWidth - headerContainerWidth <= 1 && offset === 0) {\n return ButtonStyle.NOT_DISPLAYED;\n }\n if (itemsContainerWidth > total) {\n return ButtonStyle.VISIBLE;\n }\n else {\n return ButtonStyle.HIDDEN;\n }\n };\n IgxRightButtonStyleDirective.decorators = [\n { type: Directive, args: [{\n selector: '[igxRightButtonStyle]'\n },] }\n ];\n /** @nocollapse */\n IgxRightButtonStyleDirective.ctorParameters = function () { return [\n { type: IgxTabsBase }\n ]; };\n IgxRightButtonStyleDirective.propDecorators = {\n visibleCSS: [{ type: HostBinding, args: ['class.igx-tabs__header-button',] }],\n hiddenCSS: [{ type: HostBinding, args: ['class.igx-tabs__header-button--hidden',] }],\n notDisplayedCSS: [{ type: HostBinding, args: ['class.igx-tabs__header-button--none',] }]\n };\n return IgxRightButtonStyleDirective;\n}());\nvar IgxLeftButtonStyleDirective = /** @class */ (function () {\n function IgxLeftButtonStyleDirective(tabs) {\n this.tabs = tabs;\n }\n Object.defineProperty(IgxLeftButtonStyleDirective.prototype, \"visibleCSS\", {\n get: /**\n * @return {?}\n */\n function () {\n return (this.getLeftButtonStyle() === ButtonStyle.VISIBLE) ? true : false;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxLeftButtonStyleDirective.prototype, \"hiddenCSS\", {\n get: /**\n * @return {?}\n */\n function () {\n return (this.getLeftButtonStyle() === ButtonStyle.HIDDEN) ? true : false;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxLeftButtonStyleDirective.prototype, \"notDisplayedCSS\", {\n get: /**\n * @return {?}\n */\n function () {\n return (this.getLeftButtonStyle() === ButtonStyle.NOT_DISPLAYED) ? true : false;\n },\n enumerable: true,\n configurable: true\n });\n /**\n * @private\n * @return {?}\n */\n IgxLeftButtonStyleDirective.prototype.getLeftButtonStyle = /**\n * @private\n * @return {?}\n */\n function () {\n // We use this hacky way to get the width of the itemsContainer,\n // because there is inconsistency in IE we cannot use offsetWidth or scrollOffset.\n /** @type {?} */\n var itemsContainerChildrenCount = this.tabs.itemsContainer.nativeElement.children.length;\n /** @type {?} */\n var itemsContainerWidth = 0;\n if (itemsContainerChildrenCount > 1) {\n /** @type {?} */\n var lastTab = this.tabs.itemsContainer.nativeElement.children[itemsContainerChildrenCount - 2];\n itemsContainerWidth = lastTab.offsetLeft + lastTab.offsetWidth;\n }\n /** @type {?} */\n var headerContainerWidth = this.tabs.headerContainer.nativeElement.offsetWidth;\n /** @type {?} */\n var offset = this.tabs.offset;\n if (offset === 0) {\n // Fix for IE 11, a difference is accumulated from the widths calculations.\n if (itemsContainerWidth - headerContainerWidth <= 1) {\n return ButtonStyle.NOT_DISPLAYED;\n }\n return ButtonStyle.HIDDEN;\n }\n else {\n return ButtonStyle.VISIBLE;\n }\n };\n IgxLeftButtonStyleDirective.decorators = [\n { type: Directive, args: [{\n selector: '[igxLeftButtonStyle]'\n },] }\n ];\n /** @nocollapse */\n IgxLeftButtonStyleDirective.ctorParameters = function () { return [\n { type: IgxTabsBase }\n ]; };\n IgxLeftButtonStyleDirective.propDecorators = {\n visibleCSS: [{ type: HostBinding, args: ['class.igx-tabs__header-button',] }],\n hiddenCSS: [{ type: HostBinding, args: ['class.igx-tabs__header-button--hidden',] }],\n notDisplayedCSS: [{ type: HostBinding, args: ['class.igx-tabs__header-button--none',] }]\n };\n return IgxLeftButtonStyleDirective;\n}());\nvar IgxTabItemTemplateDirective = /** @class */ (function () {\n function IgxTabItemTemplateDirective(template) {\n this.template = template;\n }\n IgxTabItemTemplateDirective.decorators = [\n { type: Directive, args: [{\n selector: '[igxTab]'\n },] }\n ];\n /** @nocollapse */\n IgxTabItemTemplateDirective.ctorParameters = function () { return [\n { type: TemplateRef }\n ]; };\n return IgxTabItemTemplateDirective;\n}());\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\nvar IgxTabsGroupComponent = /** @class */ (function (_super) {\n __extends(IgxTabsGroupComponent, _super);\n function IgxTabsGroupComponent(_tabs, _element) {\n var _this = _super.call(this) || this;\n _this._tabs = _tabs;\n _this._element = _element;\n /**\n * An \\@Input property that allows you to enable/disable the `IgxTabGroupComponent`.\n * ```html\n * \n * ```\n */\n _this.disabled = false;\n _this._isSelected = false;\n /**\n * @hidden\n */\n _this.role = 'tabpanel';\n /**\n * @hidden\n */\n _this.styleClass = true;\n return _this;\n }\n Object.defineProperty(IgxTabsGroupComponent.prototype, \"isSelected\", {\n /**\n * Sets/gets whether a tab group is selected.\n * ```typescript\n * this.tabGroup.isSelected = true;\n * ```\n * ```typescript\n * let isSelected = this.tabGroup.isSelected;\n * ```\n * @memberof IgxTabsGroupComponent\n */\n get: /**\n * Sets/gets whether a tab group is selected.\n * ```typescript\n * this.tabGroup.isSelected = true;\n * ```\n * ```typescript\n * let isSelected = this.tabGroup.isSelected;\n * ```\n * \\@memberof IgxTabsGroupComponent\n * @return {?}\n */\n function () {\n return this._isSelected;\n },\n set: /**\n * @param {?} newValue\n * @return {?}\n */\n function (newValue) {\n if (!this.disabled && this.isSelected !== newValue) {\n this._tabs.performSelectionChange(newValue ? this.relatedTab : null);\n }\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxTabsGroupComponent.prototype, \"nativeElement\", {\n /**\n * Returns the native element of the tabs-group component\n * ```typescript\n * const mytabsGroupElement: HTMLElement = tabsGroup.nativeElement;\n * ```\n */\n get: /**\n * Returns the native element of the tabs-group component\n * ```typescript\n * const mytabsGroupElement: HTMLElement = tabsGroup.nativeElement;\n * ```\n * @return {?}\n */\n function () {\n return this._element.nativeElement;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxTabsGroupComponent.prototype, \"relatedTab\", {\n /**\n * An accessor that returns the `IgxTabItemComponent` component.\n * ```typescript\n * @ViewChild(\"MyTabsGroup\")\n * public tab: IgxTabsGroupComponent;\n * ngAfterViewInIt(){\n * let tabComponent = this.tab.relatedTab;\n * }\n * ```\n */\n get: /**\n * An accessor that returns the `IgxTabItemComponent` component.\n * ```typescript\n * \\@ViewChild(\"MyTabsGroup\")\n * public tab: IgxTabsGroupComponent;\n * ngAfterViewInIt(){\n * let tabComponent = this.tab.relatedTab;\n * }\n * ```\n * @return {?}\n */\n function () {\n if (this._tabs.tabs) {\n return (/** @type {?} */ (this._tabs.tabs.toArray()[this.index]));\n }\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxTabsGroupComponent.prototype, \"index\", {\n /**\n * An accessor that returns the value of the index of the `IgxTabsGroupComponent`.\n * ```typescript\n * @ViewChild(\"MyTabsGroup\")\n * public tab: IgxTabsGroupComponent;\n * ngAfterViewInIt(){\n * let tabIndex = this.tab.index;\n * }\n * ```\n */\n get: /**\n * An accessor that returns the value of the index of the `IgxTabsGroupComponent`.\n * ```typescript\n * \\@ViewChild(\"MyTabsGroup\")\n * public tab: IgxTabsGroupComponent;\n * ngAfterViewInIt(){\n * let tabIndex = this.tab.index;\n * }\n * ```\n * @return {?}\n */\n function () {\n if (this._tabs.groups) {\n return this._tabs.groups.toArray().indexOf(this);\n }\n return -1;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxTabsGroupComponent.prototype, \"customTabTemplate\", {\n /**\n * @hidden\n */\n get: /**\n * @hidden\n * @return {?}\n */\n function () {\n return this._tabTemplate;\n },\n /**\n *@hidden\n */\n set: /**\n * @hidden\n * @param {?} template\n * @return {?}\n */\n function (template) {\n this._tabTemplate = template;\n },\n enumerable: true,\n configurable: true\n });\n /**\n * @hidden\n */\n /**\n * @hidden\n * @return {?}\n */\n IgxTabsGroupComponent.prototype.ngAfterContentInit = /**\n * @hidden\n * @return {?}\n */\n function () {\n if (this.tabTemplate) {\n this._tabTemplate = this.tabTemplate.template;\n }\n };\n /**\n * A method that sets the focus on a tab.\n * @memberof {@link IgxTabsGroupComponent}\n *```typescript\n *@ViewChild(\"MyChild\")\n *public tab : IgxTabsGroupComponent;\n *ngAfterViewInit(){\n * this.tab.select();\n *}\n *```\n */\n /**\n * A method that sets the focus on a tab.\n * \\@memberof {\\@link IgxTabsGroupComponent}\n * ```typescript\n * \\@ViewChild(\"MyChild\")\n * public tab : IgxTabsGroupComponent;\n * ngAfterViewInit(){\n * this.tab.select();\n * }\n * ```\n * @return {?}\n */\n IgxTabsGroupComponent.prototype.select = /**\n * A method that sets the focus on a tab.\n * \\@memberof {\\@link IgxTabsGroupComponent}\n * ```typescript\n * \\@ViewChild(\"MyChild\")\n * public tab : IgxTabsGroupComponent;\n * ngAfterViewInit(){\n * this.tab.select();\n * }\n * ```\n * @return {?}\n */\n function () {\n if (!this.disabled && !this.isSelected) {\n this._tabs.performSelectionChange(this.relatedTab);\n }\n };\n /**\n * @hidden\n */\n /**\n * @hidden\n * @param {?} newValue\n * @return {?}\n */\n IgxTabsGroupComponent.prototype.setSelectedInternal = /**\n * @hidden\n * @param {?} newValue\n * @return {?}\n */\n function (newValue) {\n this._isSelected = newValue;\n };\n IgxTabsGroupComponent.decorators = [\n { type: Component, args: [{\n selector: 'igx-tabs-group',\n template: \"\\n\"\n }] }\n ];\n /** @nocollapse */\n IgxTabsGroupComponent.ctorParameters = function () { return [\n { type: IgxTabsBase },\n { type: ElementRef }\n ]; };\n IgxTabsGroupComponent.propDecorators = {\n disabled: [{ type: Input }],\n icon: [{ type: Input }],\n label: [{ type: Input }],\n tabTemplate: [{ type: ContentChild, args: [IgxTabItemTemplateDirective, { read: IgxTabItemTemplateDirective, static: false },] }],\n role: [{ type: HostBinding, args: ['attr.role',] }],\n styleClass: [{ type: HostBinding, args: ['class.igx-tabs__group',] }]\n };\n return IgxTabsGroupComponent;\n}(IgxTabsGroupBase));\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\nvar IgxTabItemComponent = /** @class */ (function (_super) {\n __extends(IgxTabItemComponent, _super);\n function IgxTabItemComponent(_tabs, _element, _ngZone) {\n var _this = _super.call(this) || this;\n _this._tabs = _tabs;\n _this._element = _element;\n _this._ngZone = _ngZone;\n _this._changesCount = 0; // changes and updates accordingly applied to the tab.\n // changes and updates accordingly applied to the tab.\n _this._isSelected = false;\n _this._disabled = false;\n /**\n * @hidden \\@internal\n */\n _this.role = 'tab';\n /**\n * @hidden \\@internal\n */\n _this.tabindex = -1;\n /**\n * @hidden \\@internal\n */\n _this.ariaLabel = _this.label;\n /**\n * @hidden \\@internal\n */\n _this.ariaDisabled = _this.disabled;\n /**\n * @hidden \\@internal\n */\n _this.ariaSelected = _this.isSelected;\n _this._nativeTabItem = _element;\n return _this;\n }\n Object.defineProperty(IgxTabItemComponent.prototype, \"icon\", {\n /**\n * An @Input property that sets the value of the `icon`.\n * The value should be valid icon name from {@link https://material.io/tools/icons/?style=baseline}.\n *```html\n *\n *```\n */\n get: /**\n * An \\@Input property that sets the value of the `icon`.\n * The value should be valid icon name from {\\@link https://material.io/tools/icons/?style=baseline}.\n * ```html\n * \n * ```\n * @return {?}\n */\n function () {\n return this.relatedGroup ? this.relatedGroup.icon : this._icon;\n },\n set: /**\n * @param {?} newValue\n * @return {?}\n */\n function (newValue) {\n if (this.relatedGroup) {\n this.relatedGroup.icon = newValue;\n }\n this._icon = newValue;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxTabItemComponent.prototype, \"label\", {\n /**\n * An @Input property that sets the value of the `label`.\n *```html\n *\n *```\n */\n get: /**\n * An \\@Input property that sets the value of the `label`.\n * ```html\n * \n * ```\n * @return {?}\n */\n function () {\n return this.relatedGroup ? this.relatedGroup.label : this._label;\n },\n set: /**\n * @param {?} newValue\n * @return {?}\n */\n function (newValue) {\n if (this.relatedGroup) {\n this.relatedGroup.label = newValue;\n }\n this._label = newValue;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxTabItemComponent.prototype, \"provideCssClassSelected\", {\n get: /**\n * @return {?}\n */\n function () {\n return this.isSelected;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxTabItemComponent.prototype, \"provideCssClassDisabled\", {\n get: /**\n * @return {?}\n */\n function () {\n return this.disabled;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxTabItemComponent.prototype, \"provideCssClass\", {\n get: /**\n * @return {?}\n */\n function () {\n return (!this.disabled && !this.isSelected);\n },\n enumerable: true,\n configurable: true\n });\n /**\n * @return {?}\n */\n IgxTabItemComponent.prototype.ngAfterViewInit = /**\n * @return {?}\n */\n function () {\n var _this = this;\n this._ngZone.runOutsideAngular(function () {\n _this._resizeObserver = new ResizeObserver(function () {\n _this._tabs.transformIndicatorAnimation(_this._nativeTabItem.nativeElement, 0);\n });\n });\n };\n /**\n * @return {?}\n */\n IgxTabItemComponent.prototype.ngOnDestroy = /**\n * @return {?}\n */\n function () {\n var _this = this;\n this._ngZone.runOutsideAngular(function () {\n _this._resizeObserver.disconnect();\n });\n };\n /**\n * @hidden\n */\n /**\n * @hidden\n * @param {?} event\n * @return {?}\n */\n IgxTabItemComponent.prototype.onClick = /**\n * @hidden\n * @param {?} event\n * @return {?}\n */\n function (event) {\n if (this.autoGenerated) {\n this.select();\n }\n };\n /**\n * @hidden\n */\n /**\n * @hidden\n * @param {?} event\n * @return {?}\n */\n IgxTabItemComponent.prototype.onKeydown = /**\n * @hidden\n * @param {?} event\n * @return {?}\n */\n function (event) {\n /** @type {?} */\n var tabsArray = this._tabs.tabs.toArray();\n /** @type {?} */\n var startIndex = tabsArray.indexOf(this);\n /** @type {?} */\n var finalIndex = -1;\n /** @type {?} */\n var currentIndex = startIndex;\n switch (event.key) {\n case \"ArrowRight\" /* RIGHT_ARROW */:\n case \"Right\" /* RIGHT_ARROW_IE */:\n do {\n currentIndex++;\n if (currentIndex === tabsArray.length) {\n currentIndex = -1;\n continue;\n }\n else if (((/** @type {?} */ (tabsArray[currentIndex]))).disabled === false) {\n finalIndex = currentIndex;\n break;\n }\n } while (currentIndex !== startIndex);\n break;\n case \"ArrowLeft\" /* LEFT_ARROW */:\n case \"Left\" /* LEFT_ARROW_IE */:\n do {\n currentIndex--;\n if (currentIndex === -1) {\n currentIndex = tabsArray.length;\n continue;\n }\n else if (((/** @type {?} */ (tabsArray[currentIndex]))).disabled === false) {\n finalIndex = currentIndex;\n break;\n }\n } while (currentIndex !== startIndex);\n break;\n case \"Home\" /* HOME */:\n event.preventDefault();\n finalIndex = tabsArray.find(function (t) { return ((/** @type {?} */ (t))).disabled === false; }).index;\n break;\n case \"End\" /* END */:\n event.preventDefault();\n finalIndex = tabsArray.slice().reverse().find(function (t) { return ((/** @type {?} */ (t))).disabled === false; }).index;\n break;\n case \"Enter\" /* ENTER */:\n if (!this.autoGenerated) {\n this.nativeTabItem.nativeElement.click();\n }\n break;\n case \" \" /* SPACE */:\n case \"Spacebar\" /* SPACE_IE */:\n event.preventDefault();\n if (!this.autoGenerated) {\n this.nativeTabItem.nativeElement.click();\n }\n break;\n default:\n break;\n }\n if (finalIndex > -1) {\n /** @type {?} */\n var tab = tabsArray[finalIndex];\n tab.nativeTabItem.nativeElement.focus();\n if (this.autoGenerated) {\n tab.select();\n }\n }\n };\n Object.defineProperty(IgxTabItemComponent.prototype, \"changesCount\", {\n /**\n * @hidden\n */\n get: /**\n * @hidden\n * @return {?}\n */\n function () {\n return this._changesCount;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxTabItemComponent.prototype, \"nativeTabItem\", {\n /**\n * @hidden\n */\n get: /**\n * @hidden\n * @return {?}\n */\n function () {\n return this._nativeTabItem;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxTabItemComponent.prototype, \"disabled\", {\n /**\n * \tGets whether the tab is disabled.\n * ```\n * const disabledItem = this.myTabComponent.tabs.first.disabled;\n * ```\n */\n get: /**\n * \tGets whether the tab is disabled.\n * ```\n * const disabledItem = this.myTabComponent.tabs.first.disabled;\n * ```\n * @return {?}\n */\n function () {\n return this.relatedGroup ? this.relatedGroup.disabled : this._disabled;\n },\n set: /**\n * @param {?} newValue\n * @return {?}\n */\n function (newValue) {\n if (this.relatedGroup) {\n this.relatedGroup.disabled = newValue;\n }\n else {\n this._disabled = newValue;\n }\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxTabItemComponent.prototype, \"isSelected\", {\n /**\n * Gets whether the tab is selected.\n * ```typescript\n * const selectedItem = this.myTabComponent.tabs.first.isSelected;\n * ```\n */\n get: /**\n * Gets whether the tab is selected.\n * ```typescript\n * const selectedItem = this.myTabComponent.tabs.first.isSelected;\n * ```\n * @return {?}\n */\n function () {\n return this.relatedGroup ? this.relatedGroup.isSelected : this._isSelected;\n },\n set: /**\n * @param {?} newValue\n * @return {?}\n */\n function (newValue) {\n if (!this.disabled && this.isSelected !== newValue) {\n this._tabs.performSelectionChange(newValue ? this : null);\n }\n },\n enumerable: true,\n configurable: true\n });\n /**\n * @hidden\n */\n /**\n * @hidden\n * @return {?}\n */\n IgxTabItemComponent.prototype.select = /**\n * @hidden\n * @return {?}\n */\n function () {\n if (!this.disabled && !this.isSelected) {\n this._tabs.performSelectionChange(this);\n }\n };\n Object.defineProperty(IgxTabItemComponent.prototype, \"index\", {\n /**\n * @hidden\n */\n get: /**\n * @hidden\n * @return {?}\n */\n function () {\n if (this._tabs.tabs) {\n return this._tabs.tabs.toArray().indexOf(this);\n }\n return -1;\n },\n enumerable: true,\n configurable: true\n });\n /**\n * @hidden\n */\n /**\n * @hidden\n * @param {?} newValue\n * @return {?}\n */\n IgxTabItemComponent.prototype.setSelectedInternal = /**\n * @hidden\n * @param {?} newValue\n * @return {?}\n */\n function (newValue) {\n var _this = this;\n this._isSelected = newValue;\n this._ngZone.runOutsideAngular(function () {\n if (_this._resizeObserver) {\n if (_this._isSelected) {\n _this._resizeObserver.observe(_this._element.nativeElement);\n }\n else {\n _this._resizeObserver.disconnect();\n }\n }\n });\n this.tabindex = newValue ? 0 : -1;\n };\n Object.defineProperty(IgxTabItemComponent.prototype, \"template\", {\n /**\n * @hidden\n */\n get: /**\n * @hidden\n * @return {?}\n */\n function () {\n if (this.relatedGroup && this.relatedGroup.customTabTemplate) {\n return this.relatedGroup.customTabTemplate;\n }\n if (this.customTabTemplateDir) {\n return this.customTabTemplateDir.template;\n }\n return this.defaultTabTemplate;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxTabItemComponent.prototype, \"context\", {\n /**\n * @hidden\n */\n get: /**\n * @hidden\n * @return {?}\n */\n function () {\n return this.relatedGroup ? this.relatedGroup : this;\n },\n enumerable: true,\n configurable: true\n });\n IgxTabItemComponent.decorators = [\n { type: Component, args: [{\n selector: 'igx-tab-item',\n template: \"\\n
\\n {{context.icon}}\\n \\n
\\n
{{context.label}}
\\n
\\n\\n\"\n }] }\n ];\n /** @nocollapse */\n IgxTabItemComponent.ctorParameters = function () { return [\n { type: IgxTabsBase },\n { type: ElementRef },\n { type: NgZone }\n ]; };\n IgxTabItemComponent.propDecorators = {\n relatedGroup: [{ type: Input }],\n icon: [{ type: Input }],\n label: [{ type: Input }],\n autoGenerated: [{ type: Input }],\n defaultTabTemplate: [{ type: ViewChild, args: ['defaultTabTemplate', { read: TemplateRef, static: true },] }],\n customTabTemplateDir: [{ type: ContentChild, args: [IgxTabItemTemplateDirective, { read: IgxTabItemTemplateDirective, static: false },] }],\n provideCssClassSelected: [{ type: HostBinding, args: ['class.igx-tabs__header-menu-item--selected',] }],\n provideCssClassDisabled: [{ type: HostBinding, args: ['class.igx-tabs__header-menu-item--disabled',] }],\n provideCssClass: [{ type: HostBinding, args: ['class.igx-tabs__header-menu-item',] }],\n role: [{ type: HostBinding, args: ['attr.role',] }],\n tabindex: [{ type: HostBinding, args: ['attr.tabindex',] }],\n ariaLabel: [{ type: HostBinding, args: ['attr.aria-label',] }],\n ariaDisabled: [{ type: HostBinding, args: ['attr.aria-disabled',] }],\n ariaSelected: [{ type: HostBinding, args: ['attr.aria-selected',] }],\n onClick: [{ type: HostListener, args: ['click', ['$event'],] }],\n onKeydown: [{ type: HostListener, args: ['keydown', ['$event'],] }],\n disabled: [{ type: Input }],\n isSelected: [{ type: Input }]\n };\n return IgxTabItemComponent;\n}(IgxTabItemBase));\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n/** @enum {string} */\nvar TabsType = {\n FIXED: 'fixed',\n CONTENTFIT: 'contentfit',\n};\n/** @type {?} */\nvar NEXT_TABS_ID = 0;\nvar IgxTabsComponent = /** @class */ (function () {\n function IgxTabsComponent(_element, _ngZone, platformUtil) {\n this._element = _element;\n this._ngZone = _ngZone;\n this.platformUtil = platformUtil;\n this._currentTabsId = NEXT_TABS_ID++;\n /**\n * @hidden\n */\n this.selectedIndexChange = new EventEmitter();\n /**\n * Defines the tab header sizing mode. You can choose between `contentfit` or `fixed`.\n * By default the header sizing mode is `contentfit`.\n * ```html\n * \n * Home\n * \n * ```\n */\n this.tabsType = 'contentfit';\n /**\n * Sets/gets the `id` of the tabs.\n *\n * \\@remarks\n * If not set, the `id` will have value `\"igx-tabs-0\"`.\n *\n * \\@example\n * ```html\n * \n * ```\n * \\@memberof IgxTabsComponent\n */\n this.id = \"igx-tabs-\" + this._currentTabsId;\n /**\n * @hidden\n */\n this.class = '';\n /**\n * Emitted when a tab item is deselected.\n * ```html\n * \n * This is Tab 1 content.\n * This is Tab 2 content.\n * \n * ```\n * ```typescript\n * itemDeselected(e){\n * const tabGroup = e.group;\n * const tabItem = e.tab;\n * }\n * ```\n */\n this.onTabItemDeselected = new EventEmitter();\n /**\n * Emitted when a tab item is selected.\n * ```html\n * \n * This is Tab 1 content.\n * This is Tab 2 content.\n * \n * ```\n * ```typescript\n * itemSelected(e){\n * const tabGroup = e.group;\n * const tabItem = e.tab;\n * }\n * ```\n */\n this.onTabItemSelected = new EventEmitter();\n /**\n * @hidden\n */\n this.offset = 0;\n this._selectedIndex = -1;\n }\n Object.defineProperty(IgxTabsComponent.prototype, \"selectedIndex\", {\n /**\n * An @Input property that sets the value of the `selectedIndex`.\n * Default value is 0.\n * ```html\n * \n * ```\n *\n * Two-way data binding.\n * ```html\n * \n * ```\n */\n get: /**\n * An \\@Input property that sets the value of the `selectedIndex`.\n * Default value is 0.\n * ```html\n * \n * ```\n *\n * Two-way data binding.\n * ```html\n * \n * ```\n * @return {?}\n */\n function () {\n return this._selectedIndex;\n },\n set: /**\n * @param {?} index\n * @return {?}\n */\n function (index) {\n /** @type {?} */\n var newIndex = typeof index !== 'number' ? parseInt(index, 10) : index;\n if (this._selectedIndex !== newIndex) {\n if (this.tabs && this.tabs.length > 0) {\n /** @type {?} */\n var newTab = this.tabs.toArray()[newIndex];\n if (newTab) {\n this.performSelectionChange(newTab);\n }\n }\n else {\n this._selectedIndex = newIndex;\n }\n }\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxTabsComponent.prototype, \"tabs\", {\n /**\n * Provides an observable collection of all `IgxTabItemComponent`s.\n * First try to get them as content children if not available get them as view children.\n * ```typescript\n * const tabItems = this.myTabComponent.tabs;\n * ```\n */\n get: /**\n * Provides an observable collection of all `IgxTabItemComponent`s.\n * First try to get them as content children if not available get them as view children.\n * ```typescript\n * const tabItems = this.myTabComponent.tabs;\n * ```\n * @return {?}\n */\n function () {\n if (this.hasContentTabs) {\n return this.contentTabs;\n }\n return this.viewTabs;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxTabsComponent.prototype, \"hasContentTabs\", {\n /**\n *@hidden\n */\n get: /**\n * @hidden\n * @return {?}\n */\n function () {\n return (this.contentTabs && this.contentTabs.length > 0);\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxTabsComponent.prototype, \"cssClass\", {\n /**\n * @hidden\n */\n get: /**\n * @hidden\n * @return {?}\n */\n function () {\n /** @type {?} */\n var defaultStyle = \"igx-tabs\";\n /** @type {?} */\n var fixedStyle = \"igx-tabs--fixed\";\n /** @type {?} */\n var iconStyle = \"igx-tabs--icons\";\n /** @type {?} */\n var iconLabelFoundInGroups = this.groups.find(function (group) { return group.icon != null && group.label != null; });\n /** @type {?} */\n var iconLabelFoundInTabs = this.contentTabs.find(function (tab) { return tab.icon != null && tab.label != null; });\n /** @type {?} */\n var css;\n switch (TabsType[this.tabsType.toUpperCase()]) {\n case TabsType.FIXED: {\n css = fixedStyle;\n break;\n }\n default: {\n css = defaultStyle;\n break;\n }\n }\n // Layout fix for items with icons\n if (iconLabelFoundInGroups !== undefined || iconLabelFoundInTabs !== undefined) {\n css = css + \" \" + iconStyle;\n }\n return css + \" \" + this.class;\n },\n enumerable: true,\n configurable: true\n });\n /**\n * @hidden\n */\n /**\n * @hidden\n * @param {?} event\n * @return {?}\n */\n IgxTabsComponent.prototype.scrollLeft = /**\n * @hidden\n * @param {?} event\n * @return {?}\n */\n function (event) {\n this.scroll(false);\n };\n /**\n * @hidden\n */\n /**\n * @hidden\n * @param {?} event\n * @return {?}\n */\n IgxTabsComponent.prototype.scrollRight = /**\n * @hidden\n * @param {?} event\n * @return {?}\n */\n function (event) {\n this.scroll(true);\n };\n /**\n * @hidden\n */\n /**\n * @hidden\n * @param {?} element\n * @param {?} scrollRight\n * @return {?}\n */\n IgxTabsComponent.prototype.scrollElement = /**\n * @hidden\n * @param {?} element\n * @param {?} scrollRight\n * @return {?}\n */\n function (element, scrollRight) {\n /** @type {?} */\n var viewPortWidth = this.viewPort.nativeElement.offsetWidth;\n this.offset = (scrollRight) ? element.offsetWidth + element.offsetLeft - viewPortWidth : element.offsetLeft;\n this.itemsContainer.nativeElement.style.transform = \"translate(\" + -this.offset + \"px)\";\n };\n Object.defineProperty(IgxTabsComponent.prototype, \"selectedTabItem\", {\n /**\n * Gets the selected `IgxTabItemComponent`.\n * ```\n * const selectedItem = this.myTabComponent.selectedTabItem;\n * ```\n */\n get: /**\n * Gets the selected `IgxTabItemComponent`.\n * ```\n * const selectedItem = this.myTabComponent.selectedTabItem;\n * ```\n * @return {?}\n */\n function () {\n if (this.tabs && this.selectedIndex !== undefined) {\n return this.tabs.toArray()[this.selectedIndex];\n }\n },\n enumerable: true,\n configurable: true\n });\n /**\n * @hidden\n */\n /**\n * @hidden\n * @return {?}\n */\n IgxTabsComponent.prototype.ngAfterViewInit = /**\n * @hidden\n * @return {?}\n */\n function () {\n var _this = this;\n if (this._selectedIndex === -1) {\n this.tabs.forEach(function (t) {\n if (t.isSelected) {\n _this._selectedIndex = t.index;\n }\n });\n }\n if (!this.hasContentTabs && (this.selectedIndex < 0 || this.selectedIndex >= this.groups.length)) {\n this._selectedIndex = 0;\n }\n if (this.platformUtil.isBrowser) {\n requestAnimationFrame(function () {\n /** @type {?} */\n var newTab = _this.tabs.toArray()[_this._selectedIndex];\n if (newTab) {\n _this.performSelection(newTab);\n }\n else {\n _this.hideIndicator();\n }\n });\n this._ngZone.runOutsideAngular(function () {\n _this._resizeObserver = new ResizeObserver(function () {\n if (!_this.hasContentTabs && _this._selectedIndex >= 0 && _this._selectedIndex < _this.tabs.length) {\n /** @type {?} */\n var newTab = _this.tabs.toArray()[_this._selectedIndex];\n _this.transformContentAnimation(newTab, 0);\n }\n });\n _this._resizeObserver.observe(_this.tabsContainer.nativeElement);\n });\n }\n this.setGroupsAttributes();\n this._groupChanges$ = this.groups.changes.subscribe(function () {\n _this.setGroupsAttributes();\n _this.resetSelectionOnCollectionChanged();\n });\n };\n /**\n * @hidden\n */\n /**\n * @hidden\n * @return {?}\n */\n IgxTabsComponent.prototype.ngOnDestroy = /**\n * @hidden\n * @return {?}\n */\n function () {\n var _this = this;\n if (this._groupChanges$) {\n this._groupChanges$.unsubscribe();\n }\n if (this._resizeObserver) {\n this._ngZone.runOutsideAngular(function () {\n _this._resizeObserver.disconnect();\n });\n }\n };\n /**\n * @private\n * @return {?}\n */\n IgxTabsComponent.prototype.setGroupsAttributes = /**\n * @private\n * @return {?}\n */\n function () {\n /** @type {?} */\n var groupsArray = this.groups.toArray();\n for (var index = 0; index < this.groups.length; index++) {\n /** @type {?} */\n var tabsGroup = (/** @type {?} */ (groupsArray[index]));\n tabsGroup.nativeElement.setAttribute('id', this.getTabsGroupId(index));\n tabsGroup.nativeElement.setAttribute('aria-labelledby', this.getTabItemId(index));\n }\n };\n /**\n * @private\n * @return {?}\n */\n IgxTabsComponent.prototype.resetSelectionOnCollectionChanged = /**\n * @private\n * @return {?}\n */\n function () {\n var _this = this;\n requestAnimationFrame(function () {\n /** @type {?} */\n var currentTab = _this.tabs.toArray()[_this.selectedIndex];\n if (currentTab) {\n _this.performSelectionChange(currentTab);\n }\n else if (_this.selectedIndex >= _this.tabs.length) {\n _this.performSelectionChange(_this.tabs.last);\n }\n else {\n _this.hideIndicator();\n }\n });\n };\n /**\n * @private\n * @param {?} scrollRight\n * @return {?}\n */\n IgxTabsComponent.prototype.scroll = /**\n * @private\n * @param {?} scrollRight\n * @return {?}\n */\n function (scrollRight) {\n var e_1, _a;\n /** @type {?} */\n var tabsArray = this.tabs.toArray();\n try {\n for (var tabsArray_1 = __values(tabsArray), tabsArray_1_1 = tabsArray_1.next(); !tabsArray_1_1.done; tabsArray_1_1 = tabsArray_1.next()) {\n var tab = tabsArray_1_1.value;\n /** @type {?} */\n var element = tab.nativeTabItem.nativeElement;\n if (scrollRight) {\n if (element.offsetWidth + element.offsetLeft > this.viewPort.nativeElement.offsetWidth + this.offset) {\n this.scrollElement(element, scrollRight);\n break;\n }\n }\n else {\n if (element.offsetWidth + element.offsetLeft >= this.offset) {\n this.scrollElement(element, scrollRight);\n break;\n }\n }\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (tabsArray_1_1 && !tabsArray_1_1.done && (_a = tabsArray_1.return)) _a.call(tabsArray_1);\n }\n finally { if (e_1) throw e_1.error; }\n }\n };\n /**\n * @hidden\n */\n /**\n * @hidden\n * @param {?} newTab\n * @return {?}\n */\n IgxTabsComponent.prototype.performSelectionChange = /**\n * @hidden\n * @param {?} newTab\n * @return {?}\n */\n function (newTab) {\n /** @type {?} */\n var oldTab = this.selectedTabItem;\n if (oldTab) {\n this.performDeselection(oldTab);\n }\n if (newTab) {\n this.performSelection(newTab);\n }\n else {\n // if there is no new selected tab hide the selection indicator\n this.hideIndicator();\n }\n this.selectedIndexChange.emit(this._selectedIndex);\n };\n /**\n * @private\n * @param {?} oldTab\n * @return {?}\n */\n IgxTabsComponent.prototype.performDeselection = /**\n * @private\n * @param {?} oldTab\n * @return {?}\n */\n function (oldTab) {\n oldTab.setSelectedInternal(false);\n /** @type {?} */\n var oldTabRelatedGroup = this.groups.toArray()[oldTab.index];\n if (oldTabRelatedGroup) {\n oldTabRelatedGroup.setSelectedInternal(false);\n }\n this._selectedIndex = -1;\n this.onTabItemDeselected.emit({ tab: oldTab, group: oldTabRelatedGroup });\n };\n /**\n * @private\n * @param {?} newTab\n * @return {?}\n */\n IgxTabsComponent.prototype.performSelection = /**\n * @private\n * @param {?} newTab\n * @return {?}\n */\n function (newTab) {\n var _this = this;\n newTab.setSelectedInternal(true);\n this._selectedIndex = newTab.index;\n /** @type {?} */\n var newTabRelatedGroup = null;\n if (!this.hasContentTabs && this.groups) {\n newTabRelatedGroup = this.groups.toArray()[newTab.index];\n if (newTabRelatedGroup) {\n newTabRelatedGroup.setSelectedInternal(true);\n }\n }\n this.onTabItemSelected.emit({ tab: newTab, group: newTabRelatedGroup });\n requestAnimationFrame(function () {\n // bring the new selected tab into view if it is not\n _this.bringNewTabIntoView(newTab);\n // animate the new selection indicator\n _this.transformIndicatorAnimation(newTab.nativeTabItem.nativeElement);\n // animate the new tab's group content\n if (!_this.hasContentTabs) {\n _this.transformContentAnimation(newTab, 0.2);\n }\n });\n };\n /**\n * @private\n * @param {?} newTab\n * @return {?}\n */\n IgxTabsComponent.prototype.bringNewTabIntoView = /**\n * @private\n * @param {?} newTab\n * @return {?}\n */\n function (newTab) {\n /** @type {?} */\n var tabNativeElement = newTab.nativeTabItem.nativeElement;\n // Scroll left if there is need\n if (tabNativeElement.offsetLeft < this.offset) {\n this.scrollElement(tabNativeElement, false);\n }\n // Scroll right if there is need\n /** @type {?} */\n var viewPortOffsetWidth = this.viewPort.nativeElement.offsetWidth;\n /** @type {?} */\n var delta = (tabNativeElement.offsetLeft + tabNativeElement.offsetWidth) - (viewPortOffsetWidth + this.offset);\n // Fix for IE 11, a difference is accumulated from the widths calculations\n if (delta > 1) {\n this.scrollElement(tabNativeElement, true);\n }\n };\n /**\n * @hidden\n */\n /**\n * @hidden\n * @param {?} index\n * @return {?}\n */\n IgxTabsComponent.prototype.getTabItemId = /**\n * @hidden\n * @param {?} index\n * @return {?}\n */\n function (index) {\n return \"igx-tab-item-\" + this._currentTabsId + \"-\" + index;\n };\n /**\n * @hidden\n */\n /**\n * @hidden\n * @param {?} index\n * @return {?}\n */\n IgxTabsComponent.prototype.getTabsGroupId = /**\n * @hidden\n * @param {?} index\n * @return {?}\n */\n function (index) {\n return \"igx-tabs-group-\" + this._currentTabsId + \"-\" + index;\n };\n /**\n * @hidden\n */\n // animation for the new panel/group (not needed for tab only mode)\n /**\n * @hidden\n * @param {?} tab\n * @param {?} duration\n * @return {?}\n */\n // animation for the new panel/group (not needed for tab only mode)\n IgxTabsComponent.prototype.transformContentAnimation = /**\n * @hidden\n * @param {?} tab\n * @param {?} duration\n * @return {?}\n */\n // animation for the new panel/group (not needed for tab only mode)\n function (tab, duration) {\n /** @type {?} */\n var contentOffset = this.tabsContainer.nativeElement.offsetWidth * tab.index;\n this.contentsContainer.nativeElement.style.transitionDuration = duration > 0 ? duration + \"s\" : 'initial';\n this.contentsContainer.nativeElement.style.transform = \"translate(\" + -contentOffset + \"px)\";\n };\n /**\n * @hidden\n */\n /**\n * @hidden\n * @param {?} element\n * @param {?=} duration\n * @return {?}\n */\n IgxTabsComponent.prototype.transformIndicatorAnimation = /**\n * @hidden\n * @param {?} element\n * @param {?=} duration\n * @return {?}\n */\n function (element, duration) {\n if (duration === void 0) { duration = 0.3; }\n if (this.selectedIndicator) {\n this.selectedIndicator.nativeElement.style.visibility = 'visible';\n this.selectedIndicator.nativeElement.style.transitionDuration = duration > 0 ? duration + \"s\" : 'initial';\n this.selectedIndicator.nativeElement.style.width = element.offsetWidth + \"px\";\n this.selectedIndicator.nativeElement.style.transform = \"translate(\" + element.offsetLeft + \"px)\";\n }\n };\n /**\n * @return {?}\n */\n IgxTabsComponent.prototype.hideIndicator = /**\n * @return {?}\n */\n function () {\n if (this.selectedIndicator) {\n this.selectedIndicator.nativeElement.style.visibility = 'hidden';\n }\n };\n IgxTabsComponent.decorators = [\n { type: Component, args: [{\n selector: 'igx-tabs',\n template: \"\\n
\\n
\\n \\n
\\n
\\n \\n \\n \\n \\n \\n
0 || contentTabs.length > 0\\\" class=\\\"igx-tabs__header-menu-item-indicator\\\">
\\n
\\n
\\n \\n
\\n
\\n
\\n \\n
\\n
\\n
\\n\",\n providers: [{ provide: IgxTabsBase, useExisting: IgxTabsComponent }]\n }] }\n ];\n /** @nocollapse */\n IgxTabsComponent.ctorParameters = function () { return [\n { type: ElementRef },\n { type: NgZone },\n { type: PlatformUtil }\n ]; };\n IgxTabsComponent.propDecorators = {\n groups: [{ type: ContentChildren, args: [forwardRef(function () { return IgxTabsGroupComponent; }),] }],\n contentTabs: [{ type: ContentChildren, args: [forwardRef(function () { return IgxTabItemComponent; }),] }],\n selectedIndex: [{ type: Input }],\n selectedIndexChange: [{ type: Output }],\n tabsType: [{ type: Input, args: ['tabsType',] }],\n id: [{ type: HostBinding, args: ['attr.id',] }, { type: Input }],\n class: [{ type: Input }],\n onTabItemDeselected: [{ type: Output }],\n onTabItemSelected: [{ type: Output }],\n contentsContainer: [{ type: ViewChild, args: ['contentsContainer', { static: true },] }],\n headerContainer: [{ type: ViewChild, args: ['headerContainer', { static: true },] }],\n itemsContainer: [{ type: ViewChild, args: ['itemsContainer', { static: true },] }],\n selectedIndicator: [{ type: ViewChild, args: ['selectedIndicator', { static: false },] }],\n tabsContainer: [{ type: ViewChild, args: ['tabsContainer', { static: true },] }],\n viewPort: [{ type: ViewChild, args: ['viewPort', { static: true },] }],\n viewTabs: [{ type: ViewChildren, args: [forwardRef(function () { return IgxTabItemComponent; }),] }],\n cssClass: [{ type: HostBinding, args: ['attr.class',] }]\n };\n return IgxTabsComponent;\n}());\n/**\n * @hidden\n */\nvar IgxTabsModule = /** @class */ (function () {\n function IgxTabsModule() {\n }\n IgxTabsModule.decorators = [\n { type: NgModule, args: [{\n declarations: [IgxTabsComponent,\n IgxTabsGroupComponent,\n IgxTabItemComponent,\n IgxTabItemTemplateDirective,\n IgxRightButtonStyleDirective,\n IgxLeftButtonStyleDirective],\n exports: [IgxTabsComponent,\n IgxTabsGroupComponent,\n IgxTabItemComponent,\n IgxTabItemTemplateDirective,\n IgxRightButtonStyleDirective,\n IgxLeftButtonStyleDirective],\n imports: [CommonModule, IgxBadgeModule, IgxIconModule, IgxRippleModule]\n },] }\n ];\n return IgxTabsModule;\n}());\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n/**\n * @hidden\n * @type {?}\n */\nvar IGX_TIME_PICKER_COMPONENT = 'IgxTimePickerComponentToken';\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n/**\n * @hidden\n */\nvar IgxItemListDirective = /** @class */ (function () {\n function IgxItemListDirective(timePicker, elementRef) {\n this.timePicker = timePicker;\n this.elementRef = elementRef;\n this.tabindex = 0;\n }\n Object.defineProperty(IgxItemListDirective.prototype, \"defaultCSS\", {\n get: /**\n * @return {?}\n */\n function () {\n return true;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxItemListDirective.prototype, \"hourCSS\", {\n get: /**\n * @return {?}\n */\n function () {\n return this.type === 'hourList';\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxItemListDirective.prototype, \"minuteCSS\", {\n get: /**\n * @return {?}\n */\n function () {\n return this.type === 'minuteList';\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxItemListDirective.prototype, \"ampmCSS\", {\n get: /**\n * @return {?}\n */\n function () {\n return this.type === 'ampmList';\n },\n enumerable: true,\n configurable: true\n });\n /**\n * @return {?}\n */\n IgxItemListDirective.prototype.onFocus = /**\n * @return {?}\n */\n function () {\n this.isActive = true;\n };\n /**\n * @return {?}\n */\n IgxItemListDirective.prototype.onBlur = /**\n * @return {?}\n */\n function () {\n this.isActive = false;\n };\n /**\n * @private\n * @return {?}\n */\n IgxItemListDirective.prototype.nextItem = /**\n * @private\n * @return {?}\n */\n function () {\n switch (this.type) {\n case 'hourList': {\n this.timePicker.nextHour();\n break;\n }\n case 'minuteList': {\n this.timePicker.nextMinute();\n break;\n }\n case 'ampmList': {\n this.timePicker.nextAmPm();\n break;\n }\n }\n };\n /**\n * @private\n * @return {?}\n */\n IgxItemListDirective.prototype.prevItem = /**\n * @private\n * @return {?}\n */\n function () {\n switch (this.type) {\n case 'hourList': {\n this.timePicker.prevHour();\n break;\n }\n case 'minuteList': {\n this.timePicker.prevMinute();\n break;\n }\n case 'ampmList': {\n this.timePicker.prevAmPm();\n break;\n }\n }\n };\n /**\n * @hidden\n */\n /**\n * @hidden\n * @param {?} event\n * @return {?}\n */\n IgxItemListDirective.prototype.onKeydownArrowDown = /**\n * @hidden\n * @param {?} event\n * @return {?}\n */\n function (event) {\n event.preventDefault();\n this.nextItem();\n };\n /**\n * @hidden\n */\n /**\n * @hidden\n * @param {?} event\n * @return {?}\n */\n IgxItemListDirective.prototype.onKeydownArrowUp = /**\n * @hidden\n * @param {?} event\n * @return {?}\n */\n function (event) {\n event.preventDefault();\n this.prevItem();\n };\n /**\n * @hidden\n */\n /**\n * @hidden\n * @param {?} event\n * @return {?}\n */\n IgxItemListDirective.prototype.onKeydownArrowRight = /**\n * @hidden\n * @param {?} event\n * @return {?}\n */\n function (event) {\n event.preventDefault();\n /** @type {?} */\n var listName = ((/** @type {?} */ (event.target))).className;\n if (listName.indexOf('hourList') !== -1 && this.timePicker.minuteList) {\n this.timePicker.minuteList.nativeElement.focus();\n }\n else if ((listName.indexOf('hourList') !== -1 || listName.indexOf('minuteList') !== -1) && this.timePicker.ampmList) {\n this.timePicker.ampmList.nativeElement.focus();\n }\n };\n /**\n * @hidden\n */\n /**\n * @hidden\n * @param {?} event\n * @return {?}\n */\n IgxItemListDirective.prototype.onKeydownArrowLeft = /**\n * @hidden\n * @param {?} event\n * @return {?}\n */\n function (event) {\n event.preventDefault();\n /** @type {?} */\n var listName = ((/** @type {?} */ (event.target))).className;\n if (listName.indexOf('ampmList') !== -1 && this.timePicker.minuteList) {\n this.timePicker.minuteList.nativeElement.focus();\n }\n else if ((listName.indexOf('ampmList') !== -1 || listName.indexOf('minuteList') !== -1) && this.timePicker.hourList) {\n this.timePicker.hourList.nativeElement.focus();\n }\n };\n /**\n * @hidden\n */\n /**\n * @hidden\n * @param {?} event\n * @return {?}\n */\n IgxItemListDirective.prototype.onKeydownEnter = /**\n * @hidden\n * @param {?} event\n * @return {?}\n */\n function (event) {\n event.preventDefault();\n if (this.timePicker.mode === InteractionMode.DropDown) {\n this.timePicker.close();\n return;\n }\n this.timePicker.okButtonClick();\n };\n /**\n * @hidden\n */\n /**\n * @hidden\n * @param {?} event\n * @return {?}\n */\n IgxItemListDirective.prototype.onKeydownEscape = /**\n * @hidden\n * @param {?} event\n * @return {?}\n */\n function (event) {\n event.preventDefault();\n this.timePicker.cancelButtonClick();\n };\n /**\n * @hidden\n */\n /**\n * @hidden\n * @return {?}\n */\n IgxItemListDirective.prototype.onHover = /**\n * @hidden\n * @return {?}\n */\n function () {\n this.elementRef.nativeElement.focus();\n };\n /**\n * @hidden\n */\n /**\n * @hidden\n * @param {?} event\n * @return {?}\n */\n IgxItemListDirective.prototype.onScroll = /**\n * @hidden\n * @param {?} event\n * @return {?}\n */\n function (event) {\n event.preventDefault();\n event.stopPropagation();\n if (event.deltaY > 0) {\n this.nextItem();\n }\n else if (event.deltaY < 0) {\n this.prevItem();\n }\n };\n /**\n * @hidden\n */\n /**\n * @hidden\n * @param {?} event\n * @return {?}\n */\n IgxItemListDirective.prototype.onPanMove = /**\n * @hidden\n * @param {?} event\n * @return {?}\n */\n function (event) {\n if (event.deltaY < 0) {\n this.nextItem();\n }\n else if (event.deltaY > 0) {\n this.prevItem();\n }\n };\n IgxItemListDirective.decorators = [\n { type: Directive, args: [{\n selector: '[igxItemList]'\n },] }\n ];\n /** @nocollapse */\n IgxItemListDirective.ctorParameters = function () { return [\n { type: undefined, decorators: [{ type: Inject, args: [IGX_TIME_PICKER_COMPONENT,] }] },\n { type: ElementRef }\n ]; };\n IgxItemListDirective.propDecorators = {\n type: [{ type: Input, args: ['igxItemList',] }],\n tabindex: [{ type: HostBinding, args: ['attr.tabindex',] }],\n defaultCSS: [{ type: HostBinding, args: ['class.igx-time-picker__column',] }],\n hourCSS: [{ type: HostBinding, args: ['class.igx-time-picker__hourList',] }],\n minuteCSS: [{ type: HostBinding, args: ['class.igx-time-picker__minuteList',] }],\n ampmCSS: [{ type: HostBinding, args: ['class.igx-time-picker__ampmList',] }],\n onFocus: [{ type: HostListener, args: ['focus',] }],\n onBlur: [{ type: HostListener, args: ['blur',] }],\n onKeydownArrowDown: [{ type: HostListener, args: ['keydown.arrowdown', ['$event'],] }],\n onKeydownArrowUp: [{ type: HostListener, args: ['keydown.arrowup', ['$event'],] }],\n onKeydownArrowRight: [{ type: HostListener, args: ['keydown.arrowright', ['$event'],] }],\n onKeydownArrowLeft: [{ type: HostListener, args: ['keydown.arrowleft', ['$event'],] }],\n onKeydownEnter: [{ type: HostListener, args: ['keydown.enter', ['$event'],] }],\n onKeydownEscape: [{ type: HostListener, args: ['keydown.escape', ['$event'],] }],\n onHover: [{ type: HostListener, args: ['mouseover',] }],\n onScroll: [{ type: HostListener, args: ['wheel', ['$event'],] }],\n onPanMove: [{ type: HostListener, args: ['panmove', ['$event'],] }]\n };\n return IgxItemListDirective;\n}());\n/**\n * @hidden\n */\nvar IgxHourItemDirective = /** @class */ (function () {\n function IgxHourItemDirective(timePicker, itemList) {\n this.timePicker = timePicker;\n this.itemList = itemList;\n }\n Object.defineProperty(IgxHourItemDirective.prototype, \"defaultCSS\", {\n get: /**\n * @return {?}\n */\n function () {\n return true;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxHourItemDirective.prototype, \"selectedCSS\", {\n get: /**\n * @return {?}\n */\n function () {\n return this.isSelectedHour;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxHourItemDirective.prototype, \"activeCSS\", {\n get: /**\n * @return {?}\n */\n function () {\n return this.isSelectedHour && this.itemList.isActive;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxHourItemDirective.prototype, \"isSelectedHour\", {\n get: /**\n * @return {?}\n */\n function () {\n return this.timePicker.selectedHour === this.value;\n },\n enumerable: true,\n configurable: true\n });\n /**\n * @param {?} item\n * @return {?}\n */\n IgxHourItemDirective.prototype.onClick = /**\n * @param {?} item\n * @return {?}\n */\n function (item) {\n if (item !== '') {\n this.timePicker.scrollHourIntoView(item);\n }\n };\n IgxHourItemDirective.decorators = [\n { type: Directive, args: [{\n selector: '[igxHourItem]'\n },] }\n ];\n /** @nocollapse */\n IgxHourItemDirective.ctorParameters = function () { return [\n { type: undefined, decorators: [{ type: Inject, args: [IGX_TIME_PICKER_COMPONENT,] }] },\n { type: IgxItemListDirective }\n ]; };\n IgxHourItemDirective.propDecorators = {\n value: [{ type: Input, args: ['igxHourItem',] }],\n defaultCSS: [{ type: HostBinding, args: ['class.igx-time-picker__item',] }],\n selectedCSS: [{ type: HostBinding, args: ['class.igx-time-picker__item--selected',] }],\n activeCSS: [{ type: HostBinding, args: ['class.igx-time-picker__item--active',] }],\n onClick: [{ type: HostListener, args: ['click', ['value'],] }]\n };\n return IgxHourItemDirective;\n}());\n/**\n * @hidden\n */\nvar IgxMinuteItemDirective = /** @class */ (function () {\n function IgxMinuteItemDirective(timePicker, itemList) {\n this.timePicker = timePicker;\n this.itemList = itemList;\n }\n Object.defineProperty(IgxMinuteItemDirective.prototype, \"defaultCSS\", {\n get: /**\n * @return {?}\n */\n function () {\n return true;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxMinuteItemDirective.prototype, \"selectedCSS\", {\n get: /**\n * @return {?}\n */\n function () {\n return this.isSelectedMinute;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxMinuteItemDirective.prototype, \"activeCSS\", {\n get: /**\n * @return {?}\n */\n function () {\n return this.isSelectedMinute && this.itemList.isActive;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxMinuteItemDirective.prototype, \"isSelectedMinute\", {\n get: /**\n * @return {?}\n */\n function () {\n return this.timePicker.selectedMinute === this.value;\n },\n enumerable: true,\n configurable: true\n });\n /**\n * @param {?} item\n * @return {?}\n */\n IgxMinuteItemDirective.prototype.onClick = /**\n * @param {?} item\n * @return {?}\n */\n function (item) {\n if (item !== '') {\n this.timePicker.scrollMinuteIntoView(item);\n }\n };\n IgxMinuteItemDirective.decorators = [\n { type: Directive, args: [{\n selector: '[igxMinuteItem]'\n },] }\n ];\n /** @nocollapse */\n IgxMinuteItemDirective.ctorParameters = function () { return [\n { type: undefined, decorators: [{ type: Inject, args: [IGX_TIME_PICKER_COMPONENT,] }] },\n { type: IgxItemListDirective }\n ]; };\n IgxMinuteItemDirective.propDecorators = {\n value: [{ type: Input, args: ['igxMinuteItem',] }],\n defaultCSS: [{ type: HostBinding, args: ['class.igx-time-picker__item',] }],\n selectedCSS: [{ type: HostBinding, args: ['class.igx-time-picker__item--selected',] }],\n activeCSS: [{ type: HostBinding, args: ['class.igx-time-picker__item--active',] }],\n onClick: [{ type: HostListener, args: ['click', ['value'],] }]\n };\n return IgxMinuteItemDirective;\n}());\n/**\n * @hidden\n */\nvar IgxAmPmItemDirective = /** @class */ (function () {\n function IgxAmPmItemDirective(timePicker, itemList) {\n this.timePicker = timePicker;\n this.itemList = itemList;\n }\n Object.defineProperty(IgxAmPmItemDirective.prototype, \"defaultCSS\", {\n get: /**\n * @return {?}\n */\n function () {\n return true;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxAmPmItemDirective.prototype, \"selectedCSS\", {\n get: /**\n * @return {?}\n */\n function () {\n return this.isSelectedAmPm;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxAmPmItemDirective.prototype, \"activeCSS\", {\n get: /**\n * @return {?}\n */\n function () {\n return this.isSelectedAmPm && this.itemList.isActive;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxAmPmItemDirective.prototype, \"isSelectedAmPm\", {\n get: /**\n * @return {?}\n */\n function () {\n return this.timePicker.selectedAmPm === this.value;\n },\n enumerable: true,\n configurable: true\n });\n /**\n * @param {?} item\n * @return {?}\n */\n IgxAmPmItemDirective.prototype.onClick = /**\n * @param {?} item\n * @return {?}\n */\n function (item) {\n if (item !== '') {\n this.timePicker.scrollAmPmIntoView(item);\n }\n };\n IgxAmPmItemDirective.decorators = [\n { type: Directive, args: [{\n selector: '[igxAmPmItem]'\n },] }\n ];\n /** @nocollapse */\n IgxAmPmItemDirective.ctorParameters = function () { return [\n { type: undefined, decorators: [{ type: Inject, args: [IGX_TIME_PICKER_COMPONENT,] }] },\n { type: IgxItemListDirective }\n ]; };\n IgxAmPmItemDirective.propDecorators = {\n value: [{ type: Input, args: ['igxAmPmItem',] }],\n defaultCSS: [{ type: HostBinding, args: ['class.igx-time-picker__item',] }],\n selectedCSS: [{ type: HostBinding, args: ['class.igx-time-picker__item--selected',] }],\n activeCSS: [{ type: HostBinding, args: ['class.igx-time-picker__item--active',] }],\n onClick: [{ type: HostListener, args: ['click', ['value'],] }]\n };\n return IgxAmPmItemDirective;\n}());\n/**\n * This directive should be used to mark which ng-template will be used from IgxTimePicker when re-templating its input group.\n */\nvar IgxTimePickerTemplateDirective = /** @class */ (function () {\n function IgxTimePickerTemplateDirective(template) {\n this.template = template;\n }\n IgxTimePickerTemplateDirective.decorators = [\n { type: Directive, args: [{\n selector: '[igxTimePickerTemplate]'\n },] }\n ];\n /** @nocollapse */\n IgxTimePickerTemplateDirective.ctorParameters = function () { return [\n { type: TemplateRef }\n ]; };\n return IgxTimePickerTemplateDirective;\n}());\n/**\n * This directive can be used to add custom action buttons to the dropdownb/dialog.\n */\nvar IgxTimePickerActionsDirective = /** @class */ (function () {\n function IgxTimePickerActionsDirective(template) {\n this.template = template;\n }\n IgxTimePickerActionsDirective.decorators = [\n { type: Directive, args: [{\n selector: '[igxTimePickerActions]'\n },] }\n ];\n /** @nocollapse */\n IgxTimePickerActionsDirective.ctorParameters = function () { return [\n { type: TemplateRef }\n ]; };\n return IgxTimePickerActionsDirective;\n}());\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n/**\n * Formats `IgxTimePickerComponent` display value according to the `format` property,\n * when the input element loses focus.\n *\n */\nvar TimeDisplayFormatPipe = /** @class */ (function () {\n function TimeDisplayFormatPipe(timePicker) {\n this.timePicker = timePicker;\n }\n /**\n * @param {?} value\n * @return {?}\n */\n TimeDisplayFormatPipe.prototype.transform = /**\n * @param {?} value\n * @return {?}\n */\n function (value) {\n /** @type {?} */\n var hour;\n /** @type {?} */\n var minutes;\n /** @type {?} */\n var amPM;\n /** @type {?} */\n var maskAmPM = this.timePicker.parseMask();\n /** @type {?} */\n var mask = this.timePicker.parseMask(false);\n if (!value || value === mask || value === maskAmPM) {\n return '';\n }\n /** @type {?} */\n var sections = value.split(/[\\s:]+/);\n if (this.timePicker.showHoursList) {\n hour = sections[0];\n }\n if (this.timePicker.showMinutesList) {\n minutes = this.timePicker.showHoursList ? sections[1] : sections[0];\n }\n if (this.timePicker.showAmPmList) {\n amPM = sections[sections.length - 1];\n }\n /** @type {?} */\n var format = this.timePicker.format;\n /** @type {?} */\n var prompt = this.timePicker.promptChar;\n /** @type {?} */\n var regExp = new RegExp(this.timePicker.promptChar, 'g');\n if (format.indexOf('hh') !== -1 || format.indexOf('HH') !== -1 && hour.indexOf(prompt) !== -1) {\n hour = hour === prompt + prompt ? '00' : hour.replace(regExp, '0');\n }\n if (format.indexOf('mm') !== -1 && minutes.indexOf(prompt) !== -1) {\n minutes = minutes === prompt + prompt ? '00' : minutes.replace(regExp, '0');\n }\n if (format.indexOf('hh') === -1 && format.indexOf('HH') === -1 && hour !== undefined) {\n hour = hour.indexOf(prompt) !== -1 ? hour.replace(regExp, '') : hour;\n /** @type {?} */\n var hourVal = parseInt(hour, 10);\n hour = !hourVal ? '0' : hourVal < 10 && hourVal !== 0 ? hour.replace('0', '') : hour;\n }\n if (format.indexOf('mm') === -1 && minutes !== undefined) {\n minutes = minutes.indexOf(prompt) !== -1 ? minutes.replace(regExp, '') : minutes;\n /** @type {?} */\n var minutesVal = parseInt(minutes, 10);\n minutes = !minutesVal ? '0' : minutesVal < 10 && minutesVal !== 0 ? minutes.replace('0', '') : minutes;\n }\n if (format.indexOf('tt') !== -1 && (amPM !== 'AM' || amPM !== 'PM')) {\n amPM = amPM.indexOf('p') !== -1 || amPM.indexOf('P') !== -1 ? 'PM' : 'AM';\n }\n /** @type {?} */\n var result = amPM ? hour + \":\" + minutes + \" \" + amPM : hour + \":\" + minutes;\n if (!hour) {\n result = result.slice(result.indexOf(':') + 1, result.length);\n }\n if (!minutes) {\n result = result.slice(0, result.indexOf(':'));\n if (amPM) {\n result = result + ' ' + amPM;\n }\n }\n return result;\n };\n TimeDisplayFormatPipe.decorators = [\n { type: Pipe, args: [{ name: 'displayFormat' },] }\n ];\n /** @nocollapse */\n TimeDisplayFormatPipe.ctorParameters = function () { return [\n { type: undefined, decorators: [{ type: Inject, args: [IGX_TIME_PICKER_COMPONENT,] }] }\n ]; };\n return TimeDisplayFormatPipe;\n}());\n/**\n * Formats `IgxTimePickerComponent` display value according to the `format` property,\n * when the input element gets focus.\n *\n */\nvar TimeInputFormatPipe = /** @class */ (function () {\n function TimeInputFormatPipe(timePicker) {\n this.timePicker = timePicker;\n }\n /**\n * @param {?} value\n * @return {?}\n */\n TimeInputFormatPipe.prototype.transform = /**\n * @param {?} value\n * @return {?}\n */\n function (value) {\n /** @type {?} */\n var prompt = this.timePicker.promptChar;\n /** @type {?} */\n var regExp = new RegExp(prompt, 'g');\n /** @type {?} */\n var mask;\n /** @type {?} */\n var hour;\n /** @type {?} */\n var minutes;\n /** @type {?} */\n var amPM;\n if (this.timePicker.cleared) {\n this.timePicker.cleared = false;\n mask = this.timePicker.parseMask(false);\n }\n else {\n mask = this.timePicker.parseMask();\n }\n if (!value || value === mask) {\n return mask;\n }\n /** @type {?} */\n var sections = value.split(/[\\s:]+/);\n if (this.timePicker.showHoursList) {\n hour = sections[0];\n hour = hour.replace(regExp, '');\n /** @type {?} */\n var leadZeroHour = (parseInt(hour, 10) < 10 && !hour.startsWith('0')) || hour === '0';\n hour = leadZeroHour ? '0' + hour : hour;\n }\n if (this.timePicker.showMinutesList) {\n minutes = this.timePicker.showHoursList ? sections[1] : sections[0];\n minutes = minutes.replace(regExp, '');\n /** @type {?} */\n var leadZeroMinutes = (parseInt(minutes, 10) < 10 && !minutes.startsWith('0')) || minutes === '0';\n minutes = leadZeroMinutes ? '0' + minutes : minutes;\n }\n if (this.timePicker.showAmPmList) {\n amPM = sections[sections.length - 1];\n }\n /** @type {?} */\n var result = amPM ? hour + \":\" + minutes + \" \" + amPM : hour + \":\" + minutes;\n if (!hour) {\n result = result.slice(result.indexOf(':') + 1, result.length);\n }\n if (!minutes) {\n result = result.slice(0, result.indexOf(':'));\n if (amPM) {\n result = result + ' ' + amPM;\n }\n }\n return result;\n };\n TimeInputFormatPipe.decorators = [\n { type: Pipe, args: [{ name: 'inputFormat' },] }\n ];\n /** @nocollapse */\n TimeInputFormatPipe.ctorParameters = function () { return [\n { type: undefined, decorators: [{ type: Inject, args: [IGX_TIME_PICKER_COMPONENT,] }] }\n ]; };\n return TimeInputFormatPipe;\n}());\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n/** @type {?} */\nvar NEXT_ID$u = 0;\n/** @type {?} */\nvar HOURS_POS = [0, 1, 2];\n/** @type {?} */\nvar MINUTES_POS = [3, 4, 5];\n/** @type {?} */\nvar AMPM_POS = [6, 7, 8];\n/** @type {?} */\nvar ITEMS_COUNT = 7;\nvar TimePickerHammerConfig = /** @class */ (function (_super) {\n __extends(TimePickerHammerConfig, _super);\n function TimePickerHammerConfig() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.overrides = {\n pan: { direction: Hammer.DIRECTION_VERTICAL, threshold: 1 }\n };\n return _this;\n }\n TimePickerHammerConfig.decorators = [\n { type: Injectable }\n ];\n return TimePickerHammerConfig;\n}(HammerGestureConfig));\n/** @type {?} */\nvar noop$9 = function () { };\nvar IgxTimePickerComponent = /** @class */ (function () {\n function IgxTimePickerComponent(_injector, _cdr) {\n this._injector = _injector;\n this._cdr = _cdr;\n /**\n * An \\@Input property that sets the value of the `id` attribute.\n * ```html\n * \n * ```\n */\n this.id = \"igx-time-picker-\" + NEXT_ID$u++;\n /**\n * An \\@Input property that allows you to disable the `igx-time-picker` component. By default `disabled` is set to false.\n * ```html\n * \n * ```\n */\n this.disabled = false;\n /**\n * An \\@Input property that gets/sets the delta by which hour and minute items would be changed
\n * when the user presses the Up/Down keys.\n * By default `itemsDelta` is set to `{hours: 1, minutes:1}`\n * ```html\n * \n * ```\n */\n this.itemsDelta = { hours: 1, minutes: 1 };\n /**\n * An \\@Input property that determines the spin behavior. By default `isSpinLoop` is set to true.\n * The minutes and hour spinning will wrap around by default.\n * ```html\n * \n * ```\n */\n this.isSpinLoop = true;\n /**\n * An \\@Input property that Gets/Sets the orientation of the `igxTimePicker`. By default `vertical` is set to false.\n * ```html\n * \n * ```\n */\n this.vertical = false;\n /**\n * Sets the character used to prompt the user for input.\n * Default value is \"'-'\".\n * ```html\n * \n * ```\n * \\@memberof IgxTimePickerComponent\n */\n this.promptChar = '-';\n /**\n * An \\@Input property that allows you to switch the interaction mode between\n * a dialog picker or dropdown with editable masked input.\n * Deafult is dialog picker.\n * ```html\n * public mode = InteractionMode.DROPDOWN;\n * //..\n * \n * ```\n * \\@memberof IgxTimePickerComponent\n */\n this.mode = InteractionMode.Dialog;\n /**\n * Emitted when selection is made. The event contains the selected value. Returns {`oldValue`: `Date`, `newValue`: `Date`}.\n * ```typescript\n * \\@ViewChild(\"toast\")\n * private toast: IgxToastComponent;\n * public onValueChanged(timepicker){\n * this.toast.show()\n * }\n * //...\n * ```\n * ```html\n * \n * \n * ```\n */\n this.onValueChanged = new EventEmitter();\n /**\n * Emitted when an invalid value is being set. Returns {`timePicker`: `any`, `currentValue`: `Date`, `setThroughUI`: `boolean`}\n * ```typescript\n * public min: string = \"09:00\";\n * public max: string = \"18:00\";\n * \\@ViewChild(\"toast\")\n * private toast: IgxToastComponent;\n * public onValidationFailed(timepicker){\n * this.toast.show();\n * }\n * //...\n * ```\n * ```html\n * \n * \n * ```\n */\n this.onValidationFailed = new EventEmitter();\n /**\n * Emitted when a timePicker is opened.\n */\n this.onOpened = new EventEmitter();\n /**\n * Emitted when a timePicker is closed.\n */\n this.onClosed = new EventEmitter();\n /**\n * Emitted when a timePicker is being closed.\n */\n this.onClosing = new EventEmitter();\n /**\n * @hidden\n */\n this._hourItems = [];\n /**\n * @hidden\n */\n this._minuteItems = [];\n /**\n * @hidden\n */\n this._ampmItems = [];\n /**\n * @hidden\n */\n this.cleared = false;\n /**\n * @hidden\n */\n this.isNotEmpty = false;\n /**\n * @hidden\n */\n this.displayFormat = new TimeDisplayFormatPipe(this);\n /**\n * @hidden\n */\n this.inputFormat = new TimeInputFormatPipe(this);\n this._resourceStrings = CurrentResourceStrings.TimePickerResStrings;\n this._okButtonLabel = null;\n this._cancelButtonLabel = null;\n this._isHourListLoop = this.isSpinLoop;\n this._isMinuteListLoop = this.isSpinLoop;\n this._hourView = [];\n this._minuteView = [];\n this._ampmView = [];\n this._destroy$ = new Subject();\n this._onOpen = new EventEmitter();\n this._onClose = new EventEmitter();\n this._hoursPos = new Set();\n this._minutesPos = new Set();\n this._secondsPos = new Set();\n this._amPmPos = new Set();\n this._ngControl = null;\n //#region ControlValueAccessor\n this._onChangeCallback = noop$9;\n this._onTouchedCallback = noop$9;\n }\n Object.defineProperty(IgxTimePickerComponent.prototype, \"value\", {\n /**\n * An accessor that returns the value of `igx-time-picker` component.\n * ```html\n *@ViewChild(\"MyPick\")\n *public pick: IgxTimePickerComponent;\n *ngAfterViewInit(){\n * let pickSelect = this.pick.value;\n * }\n * ```\n */\n get: /**\n * An accessor that returns the value of `igx-time-picker` component.\n * ```html\n * \\@ViewChild(\"MyPick\")\n * public pick: IgxTimePickerComponent;\n * ngAfterViewInit(){\n * let pickSelect = this.pick.value;\n * }\n * ```\n * @return {?}\n */\n function () {\n return this._value;\n },\n /**\n * An accessor that allows you to set a time using the `value` input.\n * ```html\n *public date: Date = new Date(Date.now());\n * //...\n *\n * ```\n */\n set: /**\n * An accessor that allows you to set a time using the `value` input.\n * ```html\n * public date: Date = new Date(Date.now());\n * //...\n * \n * ```\n * @param {?} value\n * @return {?}\n */\n function (value) {\n if (this._isValueValid(value)) {\n /** @type {?} */\n var oldVal = this._value;\n this._value = value;\n this._onChangeCallback(value);\n /** @type {?} */\n var dispVal = this._formatTime(this.value, this.format);\n if (this.mode === InteractionMode.DropDown && this._displayValue !== dispVal) {\n this.displayValue = dispVal;\n }\n /** @type {?} */\n var args = {\n oldValue: oldVal,\n newValue: value\n };\n this.onValueChanged.emit(args);\n }\n else {\n /** @type {?} */\n var args = {\n timePicker: this,\n currentValue: value,\n setThroughUI: false\n };\n this.onValidationFailed.emit(args);\n }\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxTimePickerComponent.prototype, \"resourceStrings\", {\n /**\n * An accessor that returns the resource strings.\n */\n get: /**\n * An accessor that returns the resource strings.\n * @return {?}\n */\n function () {\n return this._resourceStrings;\n },\n /**\n * An accessor that sets the resource strings.\n * By default it uses EN resources.\n */\n set: /**\n * An accessor that sets the resource strings.\n * By default it uses EN resources.\n * @param {?} value\n * @return {?}\n */\n function (value) {\n this._resourceStrings = Object.assign({}, this._resourceStrings, value);\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxTimePickerComponent.prototype, \"okButtonLabel\", {\n /**\n * An accessor that returns the label of ok button.\n */\n get: /**\n * An accessor that returns the label of ok button.\n * @return {?}\n */\n function () {\n if (this._okButtonLabel === null) {\n return this.resourceStrings.igx_time_picker_ok;\n }\n return this._okButtonLabel;\n },\n /**\n * An @Input property that renders OK button with custom text. By default `okButtonLabel` is set to OK.\n * ```html\n * \n * ```\n */\n set: /**\n * An \\@Input property that renders OK button with custom text. By default `okButtonLabel` is set to OK.\n * ```html\n * \n * ```\n * @param {?} value\n * @return {?}\n */\n function (value) {\n this._okButtonLabel = value;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxTimePickerComponent.prototype, \"cancelButtonLabel\", {\n /**\n * An accessor that returns the label of cancel button.\n */\n get: /**\n * An accessor that returns the label of cancel button.\n * @return {?}\n */\n function () {\n if (this._cancelButtonLabel === null) {\n return this.resourceStrings.igx_time_picker_cancel;\n }\n return this._cancelButtonLabel;\n },\n /**\n * An @Input property that renders cancel button with custom text.\n * By default `cancelButtonLabel` is set to Cancel.\n * ```html\n * \n * ```\n */\n set: /**\n * An \\@Input property that renders cancel button with custom text.\n * By default `cancelButtonLabel` is set to Cancel.\n * ```html\n * \n * ```\n * @param {?} value\n * @return {?}\n */\n function (value) {\n this._cancelButtonLabel = value;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxTimePickerComponent.prototype, \"format\", {\n /**\n * An @Input property that Gets/Sets format of time while `igxTimePicker` does not have focus.
\n * By default `format` is set to hh:mm tt.
\n * List of time-flags:
\n * `h` : hours field in 12-hours format without leading zero
\n * `hh` : hours field in 12-hours format with leading zero
\n * `H` : hours field in 24-hours format without leading zero
\n * `HH` : hours field in 24-hours format with leading zero
\n * `m` : minutes field without leading zero
\n * `mm` : minutes field with leading zero
\n * `tt` : 2 character string which represents AM/PM field
\n * ```html\n *\n * ```\n */\n get: /**\n * An \\@Input property that Gets/Sets format of time while `igxTimePicker` does not have focus.
\n * By default `format` is set to hh:mm tt.
\n * List of time-flags:
\n * `h` : hours field in 12-hours format without leading zero
\n * `hh` : hours field in 12-hours format with leading zero
\n * `H` : hours field in 24-hours format without leading zero
\n * `HH` : hours field in 24-hours format with leading zero
\n * `m` : minutes field without leading zero
\n * `mm` : minutes field with leading zero
\n * `tt` : 2 character string which represents AM/PM field
\n * ```html\n * \n * ```\n * @return {?}\n */\n function () {\n return this._format || 'hh:mm tt';\n },\n set: /**\n * @param {?} formatValue\n * @return {?}\n */\n function (formatValue) {\n this._format = formatValue;\n this.mask = this._format.indexOf('tt') !== -1 ? '00:00 LL' : '00:00';\n if (!this.showHoursList || !this.showMinutesList) {\n this.mask = this.mask.slice(this.mask.indexOf(':') + 1, this.mask.length);\n }\n if (this.displayValue) {\n this.displayValue = this._formatTime(this.value, this._format);\n }\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxTimePickerComponent.prototype, \"overlaySettings\", {\n get: /**\n * @return {?}\n */\n function () {\n return this._overlaySettings ? this._overlaySettings :\n (this.mode === InteractionMode.Dialog ? this._dialogOverlaySettings : this._dropDownOverlaySettings);\n },\n /**\n * An @Input property that allows you to modify overlay positioning, interaction and scroll behavior.\n * ```typescript\n * const settings: OverlaySettings = {\n * closeOnOutsideClick: true,\n * modal: false\n * }\n * ```\n * ---\n * ```html\n * \n * ```\n * @memberof IgxTimePickerComponent\n */\n set: /**\n * An \\@Input property that allows you to modify overlay positioning, interaction and scroll behavior.\n * ```typescript\n * const settings: OverlaySettings = {\n * closeOnOutsideClick: true,\n * modal: false\n * }\n * ```\n * ---\n * ```html\n * \n * ```\n * \\@memberof IgxTimePickerComponent\n * @param {?} value\n * @return {?}\n */\n function (value) {\n this._overlaySettings = value;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxTimePickerComponent.prototype, \"onOpen\", {\n /**\n * @deprecated Use 'onOpened' instead.\n * Emitted when a timePicker is being opened.\n * ```html\n *@ViewChild(\"toast\")\n *private toast: IgxToastComponent;\n *public onOpen(timepicker){\n * this.toast.show();\n *}\n * //...\n * ```\n * ```html\n *\n *\n * ```\n */\n get: /**\n * @deprecated Use 'onOpened' instead.\n * Emitted when a timePicker is being opened.\n * ```html\n * \\@ViewChild(\"toast\")\n * private toast: IgxToastComponent;\n * public onOpen(timepicker){\n * this.toast.show();\n * }\n * //...\n * ```\n * ```html\n * \n * \n * ```\n * @return {?}\n */\n function () {\n return this._onOpen;\n },\n set: /**\n * @param {?} val\n * @return {?}\n */\n function (val) {\n this._onOpen = val;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxTimePickerComponent.prototype, \"onClose\", {\n /**\n * @deprecated Use 'onClosed' instead.\n * Emitted when a timePicker is being closed.\n */\n get: /**\n * @deprecated Use 'onClosed' instead.\n * Emitted when a timePicker is being closed.\n * @return {?}\n */\n function () {\n return this._onClose;\n },\n set: /**\n * @param {?} val\n * @return {?}\n */\n function (val) {\n this._onClose = val;\n },\n enumerable: true,\n configurable: true\n });\n /** @hidden @internal */\n /**\n * @hidden \\@internal\n * @param {?} value\n * @return {?}\n */\n IgxTimePickerComponent.prototype.writeValue = /**\n * @hidden \\@internal\n * @param {?} value\n * @return {?}\n */\n function (value) {\n // use this flag to make sure that min/maxValue are checked (in _convertMinMaxValue() method)\n // against the real value when initializing the component and value is bound via ngModel\n this._dateFromModel = value;\n this._value = value;\n if (this.mode === InteractionMode.DropDown) {\n this.displayValue = this._formatTime(this.value, this.format);\n }\n };\n /** @hidden @internal */\n /**\n * @hidden \\@internal\n * @param {?} fn\n * @return {?}\n */\n IgxTimePickerComponent.prototype.registerOnChange = /**\n * @hidden \\@internal\n * @param {?} fn\n * @return {?}\n */\n function (fn) { this._onChangeCallback = fn; };\n /** @hidden @internal */\n /**\n * @hidden \\@internal\n * @param {?} fn\n * @return {?}\n */\n IgxTimePickerComponent.prototype.registerOnTouched = /**\n * @hidden \\@internal\n * @param {?} fn\n * @return {?}\n */\n function (fn) { this._onTouchedCallback = fn; };\n /** @hidden @internal */\n /**\n * @hidden \\@internal\n * @param {?} isDisabled\n * @return {?}\n */\n IgxTimePickerComponent.prototype.setDisabledState = /**\n * @hidden \\@internal\n * @param {?} isDisabled\n * @return {?}\n */\n function (isDisabled) { this.disabled = isDisabled; };\n Object.defineProperty(IgxTimePickerComponent.prototype, \"mask\", {\n //#endregion\n /**\n * @hidden\n */\n get: \n //#endregion\n /**\n * @hidden\n * @return {?}\n */\n function () {\n return this._mask || '00:00 LL';\n },\n set: /**\n * @param {?} val\n * @return {?}\n */\n function (val) {\n this._mask = val;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxTimePickerComponent.prototype, \"displayValue\", {\n /**\n * @hidden\n */\n get: /**\n * @hidden\n * @return {?}\n */\n function () {\n if (this._displayValue === undefined) {\n return this._formatTime(this.value, this.format);\n }\n return this._displayValue;\n },\n set: /**\n * @param {?} value\n * @return {?}\n */\n function (value) {\n this._displayValue = value;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxTimePickerComponent.prototype, \"displayTime\", {\n /**\n * Returns the current time formatted as string using the `format` option.\n * If there is no set time the return is an empty string.\n *```typescript\n *@ViewChild(\"MyChild\")\n *private picker: IgxTimePickerComponent;\n *ngAfterViewInit(){\n * let time = this.picker.displayTime;\n *}\n *```\n */\n get: /**\n * Returns the current time formatted as string using the `format` option.\n * If there is no set time the return is an empty string.\n * ```typescript\n * \\@ViewChild(\"MyChild\")\n * private picker: IgxTimePickerComponent;\n * ngAfterViewInit(){\n * let time = this.picker.displayTime;\n * }\n * ```\n * @return {?}\n */\n function () {\n if (this.value) {\n return this._formatTime(this.value, this.format);\n }\n return '';\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxTimePickerComponent.prototype, \"hourView\", {\n /**\n * @hidden\n */\n get: /**\n * @hidden\n * @return {?}\n */\n function () {\n return this._hourView;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxTimePickerComponent.prototype, \"minuteView\", {\n /**\n * @hidden\n */\n get: /**\n * @hidden\n * @return {?}\n */\n function () {\n return this._minuteView;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxTimePickerComponent.prototype, \"ampmView\", {\n /**\n * @hidden\n */\n get: /**\n * @hidden\n * @return {?}\n */\n function () {\n return this._ampmView;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxTimePickerComponent.prototype, \"showClearButton\", {\n /**\n * @hidden\n */\n get: /**\n * @hidden\n * @return {?}\n */\n function () {\n return (this.displayValue && this.displayValue !== this.parseMask(false)) || this.isNotEmpty;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxTimePickerComponent.prototype, \"showHoursList\", {\n /**\n * @hidden\n */\n get: /**\n * @hidden\n * @return {?}\n */\n function () {\n return this.format.indexOf('h') !== -1 || this.format.indexOf('H') !== -1;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxTimePickerComponent.prototype, \"showMinutesList\", {\n /**\n * @hidden\n */\n get: /**\n * @hidden\n * @return {?}\n */\n function () {\n return this.format.indexOf('m') !== -1;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxTimePickerComponent.prototype, \"showAmPmList\", {\n /**\n * @hidden\n */\n get: /**\n * @hidden\n * @return {?}\n */\n function () {\n return this.format.indexOf('t') !== -1;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxTimePickerComponent.prototype, \"validMinuteEntries\", {\n /**\n * @hidden\n */\n get: /**\n * @hidden\n * @return {?}\n */\n function () {\n /** @type {?} */\n var minuteEntries = [];\n for (var i = 0; i < 60; i++) {\n minuteEntries.push(i);\n }\n return minuteEntries;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxTimePickerComponent.prototype, \"validHourEntries\", {\n /**\n * @hidden\n */\n get: /**\n * @hidden\n * @return {?}\n */\n function () {\n /** @type {?} */\n var hourEntries = [];\n /** @type {?} */\n var index = this.format.indexOf('h') !== -1 ? 13 : 24;\n for (var i = 0; i < index; i++) {\n hourEntries.push(i);\n }\n return hourEntries;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxTimePickerComponent.prototype, \"template\", {\n /**\n * Gets the input group template.\n * ```typescript\n * let template = this.template();\n * ```\n * @memberof IgxTimePickerComponent\n */\n get: /**\n * Gets the input group template.\n * ```typescript\n * let template = this.template();\n * ```\n * \\@memberof IgxTimePickerComponent\n * @return {?}\n */\n function () {\n if (this.timePickerTemplateDirective) {\n return this.timePickerTemplateDirective.template;\n }\n return this.mode === InteractionMode.Dialog ? this.defaultTimePickerTemplate : this.dropdownInputTemplate;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxTimePickerComponent.prototype, \"context\", {\n /**\n * Gets the context passed to the input group template.\n * @memberof IgxTimePickerComponent\n */\n get: /**\n * Gets the context passed to the input group template.\n * \\@memberof IgxTimePickerComponent\n * @return {?}\n */\n function () {\n var _this = this;\n return {\n value: this.value,\n displayTime: this.displayTime,\n displayValue: this.displayValue,\n openDialog: function (target) { return _this.openDialog(target); }\n };\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxTimePickerComponent.prototype, \"required\", {\n get: /**\n * @private\n * @return {?}\n */\n function () {\n if (this._ngControl && this._ngControl.control && this._ngControl.control.validator) {\n // Run the validation with empty object to check if required is enabled.\n /** @type {?} */\n var error = this._ngControl.control.validator((/** @type {?} */ ({})));\n return error && error.required;\n }\n return false;\n },\n enumerable: true,\n configurable: true\n });\n /**\n * @hidden\n */\n /**\n * @hidden\n * @return {?}\n */\n IgxTimePickerComponent.prototype.ngOnInit = /**\n * @hidden\n * @return {?}\n */\n function () {\n this._generateHours();\n this._generateMinutes();\n if (this.format.indexOf('tt') !== -1) {\n this._generateAmPm();\n }\n this._dropDownOverlaySettings = {\n modal: false,\n closeOnOutsideClick: true,\n scrollStrategy: new AbsoluteScrollStrategy(),\n positionStrategy: new AutoPositionStrategy()\n };\n this._dialogOverlaySettings = {};\n this._ngControl = this._injector.get((/** @type {?} */ (NgControl)), null);\n };\n /**\n * @hidden\n */\n /**\n * @hidden\n * @return {?}\n */\n IgxTimePickerComponent.prototype.ngAfterViewInit = /**\n * @hidden\n * @return {?}\n */\n function () {\n var _this = this;\n if (this.mode === InteractionMode.DropDown && this._inputElementRef) {\n fromEvent(this._inputElementRef.nativeElement, 'keydown').pipe(throttle(function () { return interval(0, animationFrameScheduler); }), takeUntil(this._destroy$)).subscribe(function (event) {\n if (event.key === \"ArrowUp\" /* UP_ARROW */ || event.key === \"Up\" /* UP_ARROW_IE */ ||\n event.key === \"ArrowDown\" /* DOWN_ARROW */ || event.key === \"Down\" /* DOWN_ARROW_IE */) {\n _this.spinOnEdit(event);\n }\n });\n }\n if (this.toggleRef && this._inputGroup) {\n this.toggleRef.element.style.width = this._inputGroup.element.nativeElement.getBoundingClientRect().width + 'px';\n }\n if (this.toggleRef) {\n this.toggleRef.onClosed.pipe(takeUntil(this._destroy$)).subscribe(function () {\n if (_this.mode === InteractionMode.DropDown) {\n _this._onDropDownClosed();\n }\n _this.onClosed.emit(_this);\n // TODO: remove this line after deprecating 'onClose'\n _this._onClose.emit(_this);\n });\n this.toggleRef.onOpened.pipe(takeUntil(this._destroy$)).subscribe(function () {\n _this.onOpened.emit(_this);\n // TODO: remove this line after deprecating 'onOpen'\n _this._onOpen.emit(_this);\n });\n this.toggleRef.onClosing.pipe(takeUntil(this._destroy$)).subscribe(function (event) {\n _this.onClosing.emit(event);\n // If canceled in a user onClosing handler\n if (event.cancel) {\n return;\n }\n // Do not focus the input if clicking outside in dropdown mode\n /** @type {?} */\n var input = _this.getEditElement();\n if (input && !(event.event && _this.mode === InteractionMode.DropDown)) {\n input.focus();\n }\n else {\n _this._updateValidityOnBlur();\n }\n });\n this.determineCursorPos();\n if (this._ngControl) {\n this._statusChanges$ = this._ngControl.statusChanges.subscribe(this.onStatusChanged.bind(this));\n }\n }\n };\n /**\n * @return {?}\n */\n IgxTimePickerComponent.prototype.ngAfterViewChecked = /**\n * @return {?}\n */\n function () {\n // if one sets mode at run time this forces initialization of new igxInputGroup\n // As a result a new igxInputDirective is initialized too. In ngAfterViewInit of\n // the new directive isRequired of the igxInputGroup is set again. However\n // ngAfterViewInit of the time picker is not called again and we may finish with wrong\n // isRequired in igxInputGroup. This is why we should set it her, only when needed\n if (this._inputGroup && this._inputGroup.isRequired !== this.required) {\n this._inputGroup.isRequired = this.required;\n this._cdr.detectChanges();\n }\n };\n /**\n * @hidden\n */\n /**\n * @hidden\n * @return {?}\n */\n IgxTimePickerComponent.prototype.ngOnDestroy = /**\n * @hidden\n * @return {?}\n */\n function () {\n this._destroy$.next(true);\n this._destroy$.complete();\n };\n /**\n * @hidden\n */\n /**\n * @hidden\n * @param {?} event\n * @return {?}\n */\n IgxTimePickerComponent.prototype.onKeydownSpace = /**\n * @hidden\n * @param {?} event\n * @return {?}\n */\n function (event) {\n this.openDialog(this.getInputGroupElement());\n event.preventDefault();\n };\n /**\n * @hidden\n */\n /**\n * @hidden\n * @return {?}\n */\n IgxTimePickerComponent.prototype.onAltArrowDown = /**\n * @hidden\n * @return {?}\n */\n function () {\n this.openDialog(this.getInputGroupElement());\n };\n /**\n * @private\n * @return {?}\n */\n IgxTimePickerComponent.prototype.determineCursorPos = /**\n * @private\n * @return {?}\n */\n function () {\n var e_1, _a;\n this.clearCursorPos();\n try {\n for (var _b = __values(this.format), _c = _b.next(); !_c.done; _c = _b.next()) {\n var char = _c.value;\n switch (char) {\n case 'H':\n case 'h':\n this._hoursPos.size === 0 ? this._hoursPos.add(this.format.indexOf(char)) :\n this._hoursPos.add(this.format.lastIndexOf(char));\n this._hoursPos.add(this.format.lastIndexOf(char) + 1);\n break;\n case 'M':\n case 'm':\n this._minutesPos.size === 0 ? this._minutesPos.add(this.format.indexOf(char)) :\n this._minutesPos.add(this.format.lastIndexOf(char));\n this._minutesPos.add(this.format.lastIndexOf(char) + 1);\n break;\n case 'S':\n case 's':\n this._secondsPos.size === 0 ? this._secondsPos.add(this.format.indexOf(char)) :\n this._secondsPos.add(this.format.lastIndexOf(char));\n this._secondsPos.add(this.format.lastIndexOf(char) + 1);\n break;\n case 'T':\n case 't':\n this._amPmPos.size === 0 ? this._amPmPos.add(this.format.indexOf(char)) :\n this._amPmPos.add(this.format.lastIndexOf(char));\n this._amPmPos.add(this.format.lastIndexOf(char) + 1);\n break;\n }\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n }\n finally { if (e_1) throw e_1.error; }\n }\n };\n /**\n * @private\n * @return {?}\n */\n IgxTimePickerComponent.prototype.clearCursorPos = /**\n * @private\n * @return {?}\n */\n function () {\n var _this = this;\n this._hoursPos.forEach(function (v) { return _this._hoursPos.delete(v); });\n this._minutesPos.forEach(function (v) { return _this._minutesPos.delete(v); });\n this._secondsPos.forEach(function (v) { return _this._secondsPos.delete(v); });\n this._amPmPos.forEach(function (v) { return _this._amPmPos.delete(v); });\n };\n /**\n * @private\n * @param {?} item\n * @param {?} items\n * @param {?} selectedItem\n * @param {?} isListLoop\n * @param {?} viewType\n * @return {?}\n */\n IgxTimePickerComponent.prototype._scrollItemIntoView = /**\n * @private\n * @param {?} item\n * @param {?} items\n * @param {?} selectedItem\n * @param {?} isListLoop\n * @param {?} viewType\n * @return {?}\n */\n function (item, items, selectedItem, isListLoop, viewType) {\n /** @type {?} */\n var itemIntoView;\n if (items) {\n /** @type {?} */\n var index = (item === 'AM' || item === 'PM') ? items.indexOf(item) : items.indexOf(parseInt(item, 10));\n /** @type {?} */\n var view = void 0;\n if (index !== -1) {\n if (isListLoop) {\n if (index > 0) {\n selectedItem = this._itemToString(items[index - 1], viewType);\n itemIntoView = this._nextItem(items, selectedItem, isListLoop, viewType);\n }\n else {\n selectedItem = this._itemToString(items[1], viewType);\n itemIntoView = this._prevItem(items, selectedItem, isListLoop, viewType);\n }\n }\n else {\n view = items.slice(index - 3, index + 4);\n selectedItem = this._itemToString(items[index], viewType);\n itemIntoView = { selectedItem: selectedItem, view: view };\n }\n itemIntoView.view = this._viewToString(itemIntoView.view, viewType);\n }\n }\n return itemIntoView;\n };\n /**\n * @private\n * @param {?} view\n * @param {?} viewType\n * @return {?}\n */\n IgxTimePickerComponent.prototype._viewToString = /**\n * @private\n * @param {?} view\n * @param {?} viewType\n * @return {?}\n */\n function (view, viewType) {\n for (var i = 0; i < view.length; i++) {\n if (typeof (view[i]) !== 'string') {\n view[i] = this._itemToString(view[i], viewType);\n }\n }\n return view;\n };\n /**\n * @private\n * @param {?} item\n * @param {?} viewType\n * @return {?}\n */\n IgxTimePickerComponent.prototype._itemToString = /**\n * @private\n * @param {?} item\n * @param {?} viewType\n * @return {?}\n */\n function (item, viewType) {\n if (item === null) {\n item = '';\n }\n else if (viewType && typeof (item) !== 'string') {\n /** @type {?} */\n var leadZeroHour = (item < 10 && (this.format.indexOf('hh') !== -1 || this.format.indexOf('HH') !== -1));\n /** @type {?} */\n var leadZeroMinute = (item < 10 && this.format.indexOf('mm') !== -1);\n /** @type {?} */\n var leadZero = (viewType === 'hour') ? leadZeroHour : leadZeroMinute;\n item = (leadZero) ? '0' + item : \"\" + item;\n }\n return item;\n };\n /**\n * @private\n * @param {?} items\n * @param {?} selectedItem\n * @param {?} isListLoop\n * @param {?} viewType\n * @return {?}\n */\n IgxTimePickerComponent.prototype._prevItem = /**\n * @private\n * @param {?} items\n * @param {?} selectedItem\n * @param {?} isListLoop\n * @param {?} viewType\n * @return {?}\n */\n function (items, selectedItem, isListLoop, viewType) {\n /** @type {?} */\n var selectedIndex = items.indexOf(parseInt(selectedItem, 10));\n /** @type {?} */\n var itemsCount = items.length;\n /** @type {?} */\n var view;\n if (selectedIndex === -1) {\n view = items.slice(0, 7);\n selectedItem = items[3];\n }\n else if (isListLoop) {\n if (selectedIndex - 4 < 0) {\n view = items.slice(itemsCount - (4 - selectedIndex), itemsCount);\n view = view.concat(items.slice(0, selectedIndex + 3));\n }\n else if (selectedIndex + 4 > itemsCount) {\n view = items.slice(selectedIndex - 4, itemsCount);\n view = view.concat(items.slice(0, selectedIndex + 3 - itemsCount));\n }\n else {\n view = items.slice(selectedIndex - 4, selectedIndex + 3);\n }\n selectedItem = (selectedIndex === 0) ? items[itemsCount - 1] : items[selectedIndex - 1];\n }\n else if (selectedIndex > 3) {\n view = items.slice(selectedIndex - 4, selectedIndex + 3);\n selectedItem = items[selectedIndex - 1];\n }\n else if (selectedIndex === 3) {\n view = items.slice(0, 7);\n }\n view = this._viewToString(view, viewType);\n selectedItem = this._itemToString(selectedItem, viewType);\n return {\n selectedItem: selectedItem,\n view: view\n };\n };\n /**\n * @private\n * @param {?} items\n * @param {?} selectedItem\n * @param {?} isListLoop\n * @param {?} viewType\n * @return {?}\n */\n IgxTimePickerComponent.prototype._nextItem = /**\n * @private\n * @param {?} items\n * @param {?} selectedItem\n * @param {?} isListLoop\n * @param {?} viewType\n * @return {?}\n */\n function (items, selectedItem, isListLoop, viewType) {\n /** @type {?} */\n var selectedIndex = items.indexOf(parseInt(selectedItem, 10));\n /** @type {?} */\n var itemsCount = items.length;\n /** @type {?} */\n var view;\n if (selectedIndex === -1) {\n view = items.slice(0, 7);\n selectedItem = items[3];\n }\n else if (isListLoop) {\n if (selectedIndex < 2) {\n view = items.slice(itemsCount - (2 - selectedIndex), itemsCount);\n view = view.concat(items.slice(0, selectedIndex + 5));\n }\n else if (selectedIndex + 4 >= itemsCount) {\n view = items.slice(selectedIndex - 2, itemsCount);\n view = view.concat(items.slice(0, selectedIndex + 5 - itemsCount));\n }\n else {\n view = items.slice(selectedIndex - 2, selectedIndex + 5);\n }\n selectedItem = (selectedIndex === itemsCount - 1) ? items[0] : items[selectedIndex + 1];\n }\n else if (selectedIndex + 1 < itemsCount - 3) {\n view = items.slice(selectedIndex - 2, selectedIndex + 5);\n selectedItem = items[selectedIndex + 1];\n }\n else if (selectedIndex === itemsCount - 4) {\n view = items.slice(selectedIndex - 3, itemsCount);\n }\n view = this._viewToString(view, viewType);\n selectedItem = this._itemToString(selectedItem, viewType);\n return {\n selectedItem: selectedItem,\n view: view\n };\n };\n /**\n * @private\n * @param {?} value\n * @param {?} format\n * @return {?}\n */\n IgxTimePickerComponent.prototype._formatTime = /**\n * @private\n * @param {?} value\n * @param {?} format\n * @return {?}\n */\n function (value, format) {\n if (!value) {\n return '';\n }\n else {\n /** @type {?} */\n var hour = value.getHours();\n /** @type {?} */\n var formattedMinute = void 0;\n /** @type {?} */\n var formattedHour = void 0;\n /** @type {?} */\n var minute = value.getMinutes();\n /** @type {?} */\n var amPM = (hour > 11) ? 'PM' : 'AM';\n if (format.indexOf('h') !== -1) {\n if (hour > 12) {\n hour -= 12;\n formattedHour = hour < 10 && format.indexOf('hh') !== -1 ? '0' + hour : \"\" + hour;\n }\n else if (hour === 0) {\n formattedHour = '12';\n }\n else if (hour < 10 && format.indexOf('hh') !== -1) {\n formattedHour = '0' + hour;\n }\n else {\n formattedHour = \"\" + hour;\n }\n }\n else {\n if (hour < 10 && format.indexOf('HH') !== -1) {\n formattedHour = '0' + hour;\n }\n else {\n formattedHour = \"\" + hour;\n }\n }\n formattedMinute = minute < 10 && format.indexOf('mm') !== -1 ? '0' + minute : \"\" + minute;\n return format.replace('hh', formattedHour).replace('h', formattedHour)\n .replace('HH', formattedHour).replace('H', formattedHour)\n .replace('mm', formattedMinute).replace('m', formattedMinute)\n .replace('tt', amPM);\n }\n };\n /**\n * @private\n * @param {?} start\n * @param {?} end\n * @return {?}\n */\n IgxTimePickerComponent.prototype._updateHourView = /**\n * @private\n * @param {?} start\n * @param {?} end\n * @return {?}\n */\n function (start, end) {\n this._hourView = this._viewToString(this._hourItems.slice(start, end), 'hour');\n };\n /**\n * @private\n * @param {?} start\n * @param {?} end\n * @return {?}\n */\n IgxTimePickerComponent.prototype._updateMinuteView = /**\n * @private\n * @param {?} start\n * @param {?} end\n * @return {?}\n */\n function (start, end) {\n this._minuteView = this._viewToString(this._minuteItems.slice(start, end), 'minute');\n };\n /**\n * @private\n * @param {?} start\n * @param {?} end\n * @return {?}\n */\n IgxTimePickerComponent.prototype._updateAmPmView = /**\n * @private\n * @param {?} start\n * @param {?} end\n * @return {?}\n */\n function (start, end) {\n this._ampmView = this._ampmItems.slice(start, end);\n };\n /**\n * @private\n * @param {?} items\n * @return {?}\n */\n IgxTimePickerComponent.prototype._addEmptyItems = /**\n * @private\n * @param {?} items\n * @return {?}\n */\n function (items) {\n for (var i = 0; i < 3; i++) {\n items.push(null);\n }\n };\n /**\n * @private\n * @return {?}\n */\n IgxTimePickerComponent.prototype._generateHours = /**\n * @private\n * @return {?}\n */\n function () {\n /** @type {?} */\n var hourItemsCount = 24;\n if (this.format.indexOf('h') !== -1) {\n hourItemsCount = 13;\n }\n hourItemsCount /= this.itemsDelta.hours;\n /** @type {?} */\n var i = this.format.indexOf('H') !== -1 ? 0 : 1;\n if (hourItemsCount < 7 || !this.isSpinLoop) {\n this._addEmptyItems(this._hourItems);\n this._isHourListLoop = false;\n }\n if (hourItemsCount > 1) {\n for (i; i < hourItemsCount; i++) {\n this._hourItems.push(i * this.itemsDelta.hours);\n }\n }\n else {\n this._hourItems.push(0);\n }\n if (hourItemsCount < 7 || !this.isSpinLoop) {\n this._addEmptyItems(this._hourItems);\n }\n };\n /**\n * @private\n * @return {?}\n */\n IgxTimePickerComponent.prototype._generateMinutes = /**\n * @private\n * @return {?}\n */\n function () {\n /** @type {?} */\n var minuteItemsCount = 60 / this.itemsDelta.minutes;\n if (minuteItemsCount < 7 || !this.isSpinLoop) {\n this._addEmptyItems(this._minuteItems);\n this._isMinuteListLoop = false;\n }\n for (var i = 0; i < minuteItemsCount; i++) {\n this._minuteItems.push(i * this.itemsDelta.minutes);\n }\n if (minuteItemsCount < 7 || !this.isSpinLoop) {\n this._addEmptyItems(this._minuteItems);\n }\n };\n /**\n * @private\n * @return {?}\n */\n IgxTimePickerComponent.prototype._generateAmPm = /**\n * @private\n * @return {?}\n */\n function () {\n this._addEmptyItems(this._ampmItems);\n this._ampmItems.push('AM');\n this._ampmItems.push('PM');\n this._addEmptyItems(this._ampmItems);\n };\n /**\n * @private\n * @return {?}\n */\n IgxTimePickerComponent.prototype._getSelectedTime = /**\n * @private\n * @return {?}\n */\n function () {\n /** @type {?} */\n var date = this.value ? new Date(this.value) : new Date();\n if (this.selectedHour) {\n date.setHours(parseInt(this.selectedHour, 10));\n }\n if (this.selectedMinute) {\n date.setMinutes(parseInt(this.selectedMinute, 10));\n }\n date.setSeconds(0);\n if (((this.showHoursList && this.selectedHour !== '12') || (!this.showHoursList && this.selectedHour <= '11')) &&\n this.selectedAmPm === 'PM') {\n date.setHours(date.getHours() + 12);\n }\n if (!this.showHoursList && this.selectedAmPm === 'AM' && this.selectedHour > '11') {\n date.setHours(date.getHours() - 12);\n }\n if (this.selectedAmPm === 'AM' && this.selectedHour === '12') {\n date.setHours(0);\n }\n return date;\n };\n /**\n * @private\n * @param {?} value\n * @return {?}\n */\n IgxTimePickerComponent.prototype._convertMinMaxValue = /**\n * @private\n * @param {?} value\n * @return {?}\n */\n function (value) {\n /** @type {?} */\n var date = this.value ? new Date(this.value) : this._dateFromModel ? new Date(this._dateFromModel) : new Date();\n /** @type {?} */\n var sections = value.split(/[\\s:]+/);\n /** @type {?} */\n var hour;\n /** @type {?} */\n var minutes;\n /** @type {?} */\n var amPM;\n date.setSeconds(0);\n if (this.showHoursList) {\n hour = sections[0];\n date.setHours(parseInt(hour, 10));\n }\n if (this.showMinutesList) {\n minutes = this.showHoursList ? sections[1] : sections[0];\n date.setMinutes(parseInt(minutes, 10));\n }\n if (this.showAmPmList) {\n amPM = sections[sections.length - 1];\n if (((this.showHoursList && date.getHours().toString() !== '12') ||\n (!this.showHoursList && date.getHours().toString() <= '11')) && amPM === 'PM') {\n date.setHours(date.getHours() + 12);\n }\n if (!this.showHoursList && amPM === 'AM' && date.getHours().toString() > '11') {\n date.setHours(date.getHours() - 12);\n }\n if (this.showHoursList && date.getHours() === 12 && amPM === 'AM') {\n date.setHours(0);\n }\n }\n return date;\n };\n /**\n * @private\n * @param {?} value\n * @return {?}\n */\n IgxTimePickerComponent.prototype._isValueValid = /**\n * @private\n * @param {?} value\n * @return {?}\n */\n function (value) {\n if (this.maxValue && value > this._convertMinMaxValue(this.maxValue)) {\n return false;\n }\n else if (this.minValue && value < this._convertMinMaxValue(this.minValue)) {\n return false;\n }\n return true;\n };\n /**\n * @private\n * @param {?} val\n * @return {?}\n */\n IgxTimePickerComponent.prototype._isEntryValid = /**\n * @private\n * @param {?} val\n * @return {?}\n */\n function (val) {\n /** @type {?} */\n var validH = true;\n /** @type {?} */\n var validM = true;\n /** @type {?} */\n var sections = val.split(/[\\s:]+/);\n /** @type {?} */\n var re = new RegExp(this.promptChar, 'g');\n if (this.showHoursList) {\n validH = this.validHourEntries.indexOf(parseInt(sections[0].replace(re, ''), 10)) !== -1;\n }\n if (this.showMinutesList) {\n /** @type {?} */\n var minutes = this.showHoursList ? sections[1] : sections[0];\n validM = this.validMinuteEntries.indexOf(parseInt(minutes.replace(re, ''), 10)) !== -1;\n }\n return validH && validM;\n };\n /**\n * @private\n * @return {?}\n */\n IgxTimePickerComponent.prototype._getCursorPosition = /**\n * @private\n * @return {?}\n */\n function () {\n return this._inputElementRef.nativeElement.selectionStart;\n };\n /**\n * @private\n * @param {?} start\n * @param {?=} end\n * @return {?}\n */\n IgxTimePickerComponent.prototype._setCursorPosition = /**\n * @private\n * @param {?} start\n * @param {?=} end\n * @return {?}\n */\n function (start, end) {\n if (end === void 0) { end = start; }\n this._inputElementRef.nativeElement.setSelectionRange(start, end);\n };\n /**\n * @private\n * @return {?}\n */\n IgxTimePickerComponent.prototype._updateEditableInput = /**\n * @private\n * @return {?}\n */\n function () {\n if (this.mode === InteractionMode.DropDown) {\n this.displayValue = this._formatTime(this._getSelectedTime(), this.format);\n }\n };\n /**\n * @private\n * @param {?} currentVal\n * @param {?} minVal\n * @param {?} maxVal\n * @param {?} hDelta\n * @param {?} sign\n * @return {?}\n */\n IgxTimePickerComponent.prototype._spinHours = /**\n * @private\n * @param {?} currentVal\n * @param {?} minVal\n * @param {?} maxVal\n * @param {?} hDelta\n * @param {?} sign\n * @return {?}\n */\n function (currentVal, minVal, maxVal, hDelta, sign) {\n /** @type {?} */\n var oldVal = new Date(currentVal);\n currentVal.setMinutes(sign * hDelta);\n if (currentVal.getDate() !== oldVal.getDate() && this.isSpinLoop) {\n currentVal.setDate(oldVal.getDate());\n }\n /** @type {?} */\n var minutes = currentVal.getMinutes();\n if (currentVal.getTime() > maxVal.getTime()) {\n if (this.isSpinLoop) {\n minutes = minutes < minVal.getMinutes() ? 60 + minutes : minutes;\n minVal.setMinutes(sign * minutes);\n return minVal;\n }\n else {\n return oldVal;\n }\n }\n else if (currentVal.getTime() < minVal.getTime()) {\n if (this.isSpinLoop) {\n minutes = minutes <= maxVal.getMinutes() ? minutes : minutes - 60;\n maxVal.setMinutes(minutes);\n return maxVal;\n }\n else {\n return oldVal;\n }\n }\n else {\n return currentVal;\n }\n };\n /**\n * @private\n * @param {?} currentVal\n * @param {?} mDelta\n * @param {?} sign\n * @return {?}\n */\n IgxTimePickerComponent.prototype._spinMinutes = /**\n * @private\n * @param {?} currentVal\n * @param {?} mDelta\n * @param {?} sign\n * @return {?}\n */\n function (currentVal, mDelta, sign) {\n /** @type {?} */\n var minutes = currentVal.getMinutes() + (sign * mDelta);\n if (minutes < 0 || minutes >= 60) {\n minutes = this.isSpinLoop ? minutes - (sign * 60) : currentVal.getMinutes();\n }\n currentVal.setMinutes(minutes);\n return currentVal;\n };\n /**\n * @private\n * @return {?}\n */\n IgxTimePickerComponent.prototype._initializeContainer = /**\n * @private\n * @return {?}\n */\n function () {\n var _this = this;\n if (this.value) {\n /** @type {?} */\n var formttedTime = this._formatTime(this.value, this.format);\n /** @type {?} */\n var sections = formttedTime.split(/[\\s:]+/);\n if (this.showHoursList) {\n this.selectedHour = sections[0];\n }\n if (this.showMinutesList) {\n this.selectedMinute = this.showHoursList ? sections[1] : sections[0];\n }\n if (this.showAmPmList && this._ampmItems !== null) {\n this.selectedAmPm = sections[sections.length - 1];\n }\n }\n if (this.selectedHour === undefined) {\n this.selectedHour = !this.showHoursList && this.value ? this.value.getHours().toString() :\n this.showHoursList ? \"\" + this._hourItems[3] : '0';\n }\n if (this.selectedMinute === undefined) {\n this.selectedMinute = !this.showMinutesList && this.value ? this.value.getMinutes().toString() : '0';\n }\n if (this.selectedAmPm === undefined && this._ampmItems !== null) {\n this.selectedAmPm = this._ampmItems[3];\n }\n this._prevSelectedHour = this.selectedHour;\n this._prevSelectedMinute = this.selectedMinute;\n this._prevSelectedAmPm = this.selectedAmPm;\n this._onTouchedCallback();\n this._updateHourView(0, ITEMS_COUNT);\n this._updateMinuteView(0, ITEMS_COUNT);\n this._updateAmPmView(0, ITEMS_COUNT);\n if (this.selectedHour) {\n this.scrollHourIntoView(this.selectedHour);\n }\n if (this.selectedMinute) {\n this.scrollMinuteIntoView(this.selectedMinute);\n }\n if (this.selectedAmPm) {\n this.scrollAmPmIntoView(this.selectedAmPm);\n }\n requestAnimationFrame(function () {\n if (_this.hourList) {\n _this.hourList.nativeElement.focus();\n }\n else if (_this.minuteList) {\n _this.minuteList.nativeElement.focus();\n }\n });\n };\n /**\n * @private\n * @return {?}\n */\n IgxTimePickerComponent.prototype._onDropDownClosed = /**\n * @private\n * @return {?}\n */\n function () {\n /** @type {?} */\n var oldValue = this.value;\n /** @type {?} */\n var newVal = this._convertMinMaxValue(this.displayValue);\n if (this.displayValue === this.parseMask(false)) {\n return;\n }\n if (this._isValueValid(newVal)) {\n if (!this.value || oldValue.getTime() !== newVal.getTime()) {\n this.value = newVal;\n }\n }\n else {\n this.displayValue = this.inputFormat.transform(this._formatTime(oldValue, this.format));\n /** @type {?} */\n var args = {\n timePicker: this,\n currentValue: newVal,\n setThroughUI: true\n };\n this.onValidationFailed.emit(args);\n }\n };\n /**\n * @protected\n * @return {?}\n */\n IgxTimePickerComponent.prototype.onStatusChanged = /**\n * @protected\n * @return {?}\n */\n function () {\n if ((this._ngControl.control.touched || this._ngControl.control.dirty) &&\n (this._ngControl.control.validator || this._ngControl.control.asyncValidator)) {\n /** @type {?} */\n var input = this._inputDirective || this._inputDirectiveUserTemplate;\n if (this._inputGroup.isFocused) {\n input.valid = this._ngControl.valid ? IgxInputState.VALID : IgxInputState.INVALID;\n }\n else {\n input.valid = this._ngControl.valid ? IgxInputState.INITIAL : IgxInputState.INVALID;\n }\n }\n if (this._inputGroup && this._inputGroup.isRequired !== this.required) {\n this._inputGroup.isRequired = this.required;\n }\n };\n /**\n * @hidden\n */\n /**\n * @hidden\n * @return {?}\n */\n IgxTimePickerComponent.prototype.getEditElement = /**\n * @hidden\n * @return {?}\n */\n function () {\n return this._inputElementRef ? this._inputElementRef.nativeElement : null;\n };\n /**\n * @hidden\n */\n /**\n * @hidden\n * @return {?}\n */\n IgxTimePickerComponent.prototype.getInputGroupElement = /**\n * @hidden\n * @return {?}\n */\n function () {\n return this._inputGroup ? this._inputGroup.element.nativeElement : null;\n };\n /**\n * opens the dialog.\n * @param target HTMLElement - the target element to use for positioning the drop down container according to\n * ```html\n * \n * \n * \n * \n * \n * alarm\n * \n * \n * \n * \n * ```\n */\n /**\n * opens the dialog.\n * @param {?=} target HTMLElement - the target element to use for positioning the drop down container according to\n * ```html\n * \n * \n * \n * \n * \n * alarm\n * \n * \n * \n * \n * ```\n * @return {?}\n */\n IgxTimePickerComponent.prototype.openDialog = /**\n * opens the dialog.\n * @param {?=} target HTMLElement - the target element to use for positioning the drop down container according to\n * ```html\n * \n * \n * \n * \n * \n * alarm\n * \n * \n * \n * \n * ```\n * @return {?}\n */\n function (target) {\n if (!this.toggleRef.collapsed) {\n return this._onDropDownClosed();\n }\n /** @type {?} */\n var settings = this.overlaySettings;\n if (target && settings && settings.positionStrategy) {\n settings.positionStrategy.settings.target = target;\n }\n if (this.outlet) {\n settings.outlet = this.outlet;\n }\n this.toggleRef.open(settings);\n this._initializeContainer();\n };\n /**\n * Scrolls a hour item into view.\n * ```typescript\n *scrhintoView(picker) {\n *picker.scrollHourIntoView('2');\n *}\n * ```\n *```html\n *\n *```\n *@param item to be scrolled in view.\n */\n /**\n * Scrolls a hour item into view.\n * ```typescript\n * scrhintoView(picker) {\n * picker.scrollHourIntoView('2');\n * }\n * ```\n * ```html\n * \n * ```\n * @param {?} item to be scrolled in view.\n * @return {?}\n */\n IgxTimePickerComponent.prototype.scrollHourIntoView = /**\n * Scrolls a hour item into view.\n * ```typescript\n * scrhintoView(picker) {\n * picker.scrollHourIntoView('2');\n * }\n * ```\n * ```html\n * \n * ```\n * @param {?} item to be scrolled in view.\n * @return {?}\n */\n function (item) {\n if (this.showHoursList) {\n /** @type {?} */\n var hourIntoView = this._scrollItemIntoView(item, this._hourItems, this.selectedHour, this._isHourListLoop, 'hour');\n if (hourIntoView) {\n this._hourView = hourIntoView.view;\n this.selectedHour = hourIntoView.selectedItem;\n this._updateEditableInput();\n }\n }\n };\n /**\n * Scrolls a minute item into view.\n * ```typescript\n *scrMintoView(picker) {\n *picker.scrollMinuteIntoView('3');\n *}\n * ```\n *```html\n *\n *```\n * @param item to be scrolled in view.\n */\n /**\n * Scrolls a minute item into view.\n * ```typescript\n * scrMintoView(picker) {\n * picker.scrollMinuteIntoView('3');\n * }\n * ```\n * ```html\n * \n * ```\n * @param {?} item to be scrolled in view.\n * @return {?}\n */\n IgxTimePickerComponent.prototype.scrollMinuteIntoView = /**\n * Scrolls a minute item into view.\n * ```typescript\n * scrMintoView(picker) {\n * picker.scrollMinuteIntoView('3');\n * }\n * ```\n * ```html\n * \n * ```\n * @param {?} item to be scrolled in view.\n * @return {?}\n */\n function (item) {\n if (this.showMinutesList) {\n /** @type {?} */\n var minuteIntoView = this._scrollItemIntoView(item, this._minuteItems, this.selectedMinute, this._isMinuteListLoop, 'minute');\n if (minuteIntoView) {\n this._minuteView = minuteIntoView.view;\n this.selectedMinute = minuteIntoView.selectedItem;\n this._updateEditableInput();\n }\n }\n };\n /**\n * Scrolls an ampm item into view.\n * ```typescript\n *scrAmPmIntoView(picker) {\n *picker.scrollAmPmIntoView('PM');\n *}\n * ```\n *```html\n *\n *```\n * @param item to be scrolled in view.\n */\n /**\n * Scrolls an ampm item into view.\n * ```typescript\n * scrAmPmIntoView(picker) {\n * picker.scrollAmPmIntoView('PM');\n * }\n * ```\n * ```html\n * \n * ```\n * @param {?} item to be scrolled in view.\n * @return {?}\n */\n IgxTimePickerComponent.prototype.scrollAmPmIntoView = /**\n * Scrolls an ampm item into view.\n * ```typescript\n * scrAmPmIntoView(picker) {\n * picker.scrollAmPmIntoView('PM');\n * }\n * ```\n * ```html\n * \n * ```\n * @param {?} item to be scrolled in view.\n * @return {?}\n */\n function (item) {\n if (this.showAmPmList) {\n /** @type {?} */\n var ampmIntoView = this._scrollItemIntoView(item, this._ampmItems, this.selectedAmPm, false, null);\n if (ampmIntoView) {\n this._ampmView = ampmIntoView.view;\n this.selectedAmPm = ampmIntoView.selectedItem;\n this._updateEditableInput();\n }\n }\n };\n /**\n * @hidden\n */\n /**\n * @hidden\n * @return {?}\n */\n IgxTimePickerComponent.prototype.nextHour = /**\n * @hidden\n * @return {?}\n */\n function () {\n /** @type {?} */\n var nextHour = this._nextItem(this._hourItems, this.selectedHour, this._isHourListLoop, 'hour');\n this._hourView = nextHour.view;\n this.selectedHour = nextHour.selectedItem;\n this._updateEditableInput();\n };\n /**\n * @hidden\n */\n /**\n * @hidden\n * @return {?}\n */\n IgxTimePickerComponent.prototype.prevHour = /**\n * @hidden\n * @return {?}\n */\n function () {\n /** @type {?} */\n var prevHour = this._prevItem(this._hourItems, this.selectedHour, this._isHourListLoop, 'hour');\n this._hourView = prevHour.view;\n this.selectedHour = prevHour.selectedItem;\n this._updateEditableInput();\n };\n /**\n * @hidden\n */\n /**\n * @hidden\n * @return {?}\n */\n IgxTimePickerComponent.prototype.nextMinute = /**\n * @hidden\n * @return {?}\n */\n function () {\n /** @type {?} */\n var nextMinute = this._nextItem(this._minuteItems, this.selectedMinute, this._isMinuteListLoop, 'minute');\n this._minuteView = nextMinute.view;\n this.selectedMinute = nextMinute.selectedItem;\n this._updateEditableInput();\n };\n /**\n * @hidden\n */\n /**\n * @hidden\n * @return {?}\n */\n IgxTimePickerComponent.prototype.prevMinute = /**\n * @hidden\n * @return {?}\n */\n function () {\n /** @type {?} */\n var prevMinute = this._prevItem(this._minuteItems, this.selectedMinute, this._isMinuteListLoop, 'minute');\n this._minuteView = prevMinute.view;\n this.selectedMinute = prevMinute.selectedItem;\n this._updateEditableInput();\n };\n /**\n * @hidden\n */\n /**\n * @hidden\n * @return {?}\n */\n IgxTimePickerComponent.prototype.nextAmPm = /**\n * @hidden\n * @return {?}\n */\n function () {\n /** @type {?} */\n var selectedIndex = this._ampmItems.indexOf(this.selectedAmPm);\n if (selectedIndex + 1 < this._ampmItems.length - 3) {\n this._updateAmPmView(selectedIndex - 2, selectedIndex + 5);\n this.selectedAmPm = this._ampmItems[selectedIndex + 1];\n this._updateEditableInput();\n }\n };\n /**\n * @hidden\n */\n /**\n * @hidden\n * @return {?}\n */\n IgxTimePickerComponent.prototype.prevAmPm = /**\n * @hidden\n * @return {?}\n */\n function () {\n /** @type {?} */\n var selectedIndex = this._ampmItems.indexOf(this.selectedAmPm);\n if (selectedIndex > 3) {\n this._updateAmPmView(selectedIndex - 4, selectedIndex + 3);\n this.selectedAmPm = this._ampmItems[selectedIndex - 1];\n this._updateEditableInput();\n }\n };\n /**\n * If current value is valid selects it, closes the dialog and returns true, otherwise returns false.\n * ```html\n * \n * //..\n * \n * ```\n */\n /**\n * If current value is valid selects it, closes the dialog and returns true, otherwise returns false.\n * ```html\n * \n * //..\n * \n * ```\n * @return {?}\n */\n IgxTimePickerComponent.prototype.okButtonClick = /**\n * If current value is valid selects it, closes the dialog and returns true, otherwise returns false.\n * ```html\n * \n * //..\n * \n * ```\n * @return {?}\n */\n function () {\n /** @type {?} */\n var time = this._getSelectedTime();\n if (this._isValueValid(time)) {\n this.close();\n this.value = time;\n return true;\n }\n else {\n /** @type {?} */\n var args = {\n timePicker: this,\n currentValue: time,\n setThroughUI: true\n };\n this.onValidationFailed.emit(args);\n return false;\n }\n };\n /**\n * Closes the dialog without selecting the current value.\n * ```html\n * \n * //...\n * \n * ```\n */\n /**\n * Closes the dialog without selecting the current value.\n * ```html\n * \n * //...\n * \n * ```\n * @return {?}\n */\n IgxTimePickerComponent.prototype.cancelButtonClick = /**\n * Closes the dialog without selecting the current value.\n * ```html\n * \n * //...\n * \n * ```\n * @return {?}\n */\n function () {\n if (this.mode === InteractionMode.DropDown) {\n this.displayValue = this.value ? this._formatTime(this.value, this.format) : this.parseMask(false);\n }\n this.close();\n this.selectedHour = this._prevSelectedHour;\n this.selectedMinute = this._prevSelectedMinute;\n this.selectedAmPm = this._prevSelectedAmPm;\n };\n /**\n * Returns an array of the hours currently in view.\n *```html\n *@ViewChild(\"MyChild\")\n *private picker: IgxTimePickerComponent;\n *ngAfterViewInit(){\n * let hInView = this.picker.hoursInView;\n *}\n *```\n */\n /**\n * Returns an array of the hours currently in view.\n * ```html\n * \\@ViewChild(\"MyChild\")\n * private picker: IgxTimePickerComponent;\n * ngAfterViewInit(){\n * let hInView = this.picker.hoursInView;\n * }\n * ```\n * @return {?}\n */\n IgxTimePickerComponent.prototype.hoursInView = /**\n * Returns an array of the hours currently in view.\n * ```html\n * \\@ViewChild(\"MyChild\")\n * private picker: IgxTimePickerComponent;\n * ngAfterViewInit(){\n * let hInView = this.picker.hoursInView;\n * }\n * ```\n * @return {?}\n */\n function () {\n return this._hourView.filter(function (hour) { return hour !== ''; });\n };\n /**\n * Returns an array of the minutes currently in view.\n *```html\n *@ViewChild(\"MyChild\")\n *private picker: IgxTimePickerComponent;\n *ngAfterViewInit(){\n * let minInView = this.picker.minutesInView;\n *}\n *```\n */\n /**\n * Returns an array of the minutes currently in view.\n * ```html\n * \\@ViewChild(\"MyChild\")\n * private picker: IgxTimePickerComponent;\n * ngAfterViewInit(){\n * let minInView = this.picker.minutesInView;\n * }\n * ```\n * @return {?}\n */\n IgxTimePickerComponent.prototype.minutesInView = /**\n * Returns an array of the minutes currently in view.\n * ```html\n * \\@ViewChild(\"MyChild\")\n * private picker: IgxTimePickerComponent;\n * ngAfterViewInit(){\n * let minInView = this.picker.minutesInView;\n * }\n * ```\n * @return {?}\n */\n function () {\n return this._minuteView.filter(function (minute) { return minute !== ''; });\n };\n /**\n * Returns an array of the AM/PM currently in view.\n *```html\n *@ViewChild(\"MyChild\")\n *private picker: IgxTimePickerComponent;\n *ngAfterViewInit(){\n * let ApInView = this.picker.ampmInView;\n *}\n *```\n */\n /**\n * Returns an array of the AM/PM currently in view.\n * ```html\n * \\@ViewChild(\"MyChild\")\n * private picker: IgxTimePickerComponent;\n * ngAfterViewInit(){\n * let ApInView = this.picker.ampmInView;\n * }\n * ```\n * @return {?}\n */\n IgxTimePickerComponent.prototype.ampmInView = /**\n * Returns an array of the AM/PM currently in view.\n * ```html\n * \\@ViewChild(\"MyChild\")\n * private picker: IgxTimePickerComponent;\n * ngAfterViewInit(){\n * let ApInView = this.picker.ampmInView;\n * }\n * ```\n * @return {?}\n */\n function () {\n return this._ampmView.filter(function (ampm) { return ampm !== ''; });\n };\n /**\n * Closes the dropdown/dialog.\n * ```html\n *\n * ```\n * ```typescript\n * @ViewChild('timePicker', { read: IgxTimePickerComponent }) picker: IgxTimePickerComponent;\n * picker.close();\n * ```\n */\n /**\n * Closes the dropdown/dialog.\n * ```html\n * \n * ```\n * ```typescript\n * \\@ViewChild('timePicker', { read: IgxTimePickerComponent }) picker: IgxTimePickerComponent;\n * picker.close();\n * ```\n * @return {?}\n */\n IgxTimePickerComponent.prototype.close = /**\n * Closes the dropdown/dialog.\n * ```html\n * \n * ```\n * ```typescript\n * \\@ViewChild('timePicker', { read: IgxTimePickerComponent }) picker: IgxTimePickerComponent;\n * picker.close();\n * ```\n * @return {?}\n */\n function () {\n this.toggleRef.close();\n };\n /**\n * @hidden\n */\n /**\n * @hidden\n * @param {?=} preserveAmPm\n * @return {?}\n */\n IgxTimePickerComponent.prototype.parseMask = /**\n * @hidden\n * @param {?=} preserveAmPm\n * @return {?}\n */\n function (preserveAmPm) {\n if (preserveAmPm === void 0) { preserveAmPm = true; }\n /** @type {?} */\n var maskWithAmPm = this.mask.replace(new RegExp('0', 'g'), this.promptChar).replace('LL', 'AM');\n /** @type {?} */\n var pureMask = this.mask.replace(new RegExp('0', 'g'), this.promptChar).replace(new RegExp('L', 'g'), this.promptChar);\n return preserveAmPm ? maskWithAmPm : pureMask;\n };\n /**\n * @hidden\n */\n /**\n * @hidden\n * @return {?}\n */\n IgxTimePickerComponent.prototype.clear = /**\n * @hidden\n * @return {?}\n */\n function () {\n if (this.toggleRef.collapsed) {\n this.cleared = true;\n this.isNotEmpty = false;\n /** @type {?} */\n var oldVal = new Date(this.value);\n this.displayValue = '';\n this.value.setHours(0, 0);\n if (oldVal.getTime() !== this.value.getTime()) {\n /** @type {?} */\n var args = {\n oldValue: oldVal,\n newValue: this.value\n };\n this.onValueChanged.emit(args);\n }\n }\n else {\n this.close();\n }\n };\n /**\n * @hidden\n */\n /**\n * @hidden\n * @param {?} event\n * @return {?}\n */\n IgxTimePickerComponent.prototype.onInput = /**\n * @hidden\n * @param {?} event\n * @return {?}\n */\n function (event) {\n /** @type {?} */\n var val = event.target.value;\n /** @type {?} */\n var oldVal = new Date(this.value);\n this.isNotEmpty = val !== this.parseMask(false);\n // handle cases where all empty positions (promts) are filled and we want to update\n // timepicker own value property if it is a valid Date\n if (val.indexOf(this.promptChar) === -1) {\n if (this._isEntryValid(val)) {\n /** @type {?} */\n var newVal = this._convertMinMaxValue(val);\n if (oldVal.getTime() !== newVal.getTime()) {\n this.value = newVal;\n }\n }\n else {\n /** @type {?} */\n var args = {\n timePicker: this,\n currentValue: val,\n setThroughUI: false\n };\n this.onValidationFailed.emit(args);\n }\n // handle cases where the user deletes the display value (when pressing backspace or delete)\n }\n else if (!this.value || !val || val === this.parseMask(false)) {\n this.isNotEmpty = false;\n this.value.setHours(0, 0);\n this.displayValue = val;\n if (oldVal.getTime() !== this.value.getTime()) {\n /** @type {?} */\n var args = {\n oldValue: oldVal,\n newValue: this.value\n };\n this.onValueChanged.emit(args);\n }\n }\n };\n /**\n * @hidden\n */\n /**\n * @hidden\n * @param {?} event\n * @return {?}\n */\n IgxTimePickerComponent.prototype.onFocus = /**\n * @hidden\n * @param {?} event\n * @return {?}\n */\n function (event) {\n this.isNotEmpty = event.target.value !== this.parseMask(false);\n };\n /**\n * @hidden\n */\n /**\n * @hidden\n * @param {?} event\n * @return {?}\n */\n IgxTimePickerComponent.prototype.onBlur = /**\n * @hidden\n * @param {?} event\n * @return {?}\n */\n function (event) {\n if (this.mode === InteractionMode.DropDown) {\n /** @type {?} */\n var value = event.target.value;\n this.isNotEmpty = value !== '';\n this.displayValue = value;\n if (value && value !== this.parseMask()) {\n if (this._isEntryValid(value)) {\n /** @type {?} */\n var newVal = this._convertMinMaxValue(value);\n if (!this.value || this.value.getTime() !== newVal.getTime()) {\n this.value = newVal;\n }\n }\n else {\n /** @type {?} */\n var args = {\n timePicker: this,\n currentValue: value,\n setThroughUI: false\n };\n this.onValidationFailed.emit(args);\n }\n }\n }\n if (this.toggleRef.collapsed) {\n this._updateValidityOnBlur();\n }\n };\n /**\n * @param {?} event\n * @return {?}\n */\n IgxTimePickerComponent.prototype.mouseDown = /**\n * @param {?} event\n * @return {?}\n */\n function (event) {\n // if the click is not on the input but in input group\n // e.g. on prefix or suffix, prevent default and this way prevent blur\n if (event.target !== this.getEditElement()) {\n event.preventDefault();\n }\n };\n /**\n * @hidden\n */\n /**\n * @hidden\n * @param {?} event\n * @return {?}\n */\n IgxTimePickerComponent.prototype.spinOnEdit = /**\n * @hidden\n * @param {?} event\n * @return {?}\n */\n function (event) {\n var _this = this;\n event.preventDefault();\n /** @type {?} */\n var sign;\n /** @type {?} */\n var displayVal;\n /** @type {?} */\n var currentVal = new Date(this.value);\n /** @type {?} */\n var min = this.minValue ? this._convertMinMaxValue(this.minValue) : this._convertMinMaxValue('00:00');\n /** @type {?} */\n var max = this.maxValue ? this._convertMinMaxValue(this.maxValue) : this._convertMinMaxValue('24:00');\n /** @type {?} */\n var cursor = this._getCursorPosition();\n if (event.key) {\n /** @type {?} */\n var key = event.key;\n sign = key === \"ArrowDown\" /* DOWN_ARROW */ || key === \"Down\" /* DOWN_ARROW_IE */ ? -1 : 1;\n }\n if (event.deltaY) {\n sign = event.deltaY < 0 ? 1 : -1;\n }\n if (!this.displayValue) {\n this.value = min;\n displayVal = this._formatTime(this.value, this.format);\n }\n else {\n /** @type {?} */\n var hDelta = this.itemsDelta.hours * 60 + (sign * this.value.getMinutes());\n /** @type {?} */\n var mDelta = this.itemsDelta.minutes;\n if (this.showHoursList && HOURS_POS.indexOf(cursor) !== -1) {\n this.value = this._spinHours(currentVal, min, max, hDelta, sign);\n }\n if (this.showMinutesList &&\n ((this.showHoursList && MINUTES_POS.indexOf(cursor) !== -1) || (!this.showHoursList && HOURS_POS.indexOf(cursor) !== -1))) {\n this.value = this._spinMinutes(currentVal, mDelta, sign);\n }\n if (this.showAmPmList) {\n if (((!this.showHoursList || !this.showMinutesList) && MINUTES_POS.indexOf(cursor) !== -1) ||\n (this.showHoursList && this.showMinutesList && AMPM_POS.indexOf(cursor) !== -1)) {\n /** @type {?} */\n var sections = this.displayValue.split(/[\\s:]+/);\n sign = sections[sections.length - 1] === 'AM' ? 1 : -1;\n currentVal.setHours(currentVal.getHours() + (sign * 12));\n this.value = currentVal;\n }\n }\n displayVal = this._formatTime(this.value, this.format);\n }\n // minor hack for preventing cursor jumping in IE\n this.displayValue = this.inputFormat.transform(displayVal);\n this._inputElementRef.nativeElement.value = this.displayValue;\n this._setCursorPosition(cursor);\n requestAnimationFrame(function () {\n _this._setCursorPosition(cursor);\n });\n };\n /**\n * @private\n * @return {?}\n */\n IgxTimePickerComponent.prototype._updateValidityOnBlur = /**\n * @private\n * @return {?}\n */\n function () {\n this._onTouchedCallback();\n /** @type {?} */\n var input = this._inputDirective || this._inputDirectiveUserTemplate;\n if (this._ngControl && !this._ngControl.valid) {\n input.valid = IgxInputState.INVALID;\n }\n else {\n input.valid = IgxInputState.INITIAL;\n }\n };\n IgxTimePickerComponent.decorators = [\n { type: Component, args: [{\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: IgxTimePickerComponent,\n multi: true\n },\n {\n provide: HAMMER_GESTURE_CONFIG,\n useClass: TimePickerHammerConfig\n },\n {\n provide: IGX_TIME_PICKER_COMPONENT,\n useExisting: IgxTimePickerComponent\n }\n ],\n selector: 'igx-time-picker',\n template: \"\\n \\n \\n \\n access_time\\n \\n \\n \\n clear\\n \\n \\n\\n\\n \\n \\n access_time\\n \\n \\n \\n \\n\\n\\n\\n\\n
\\n \\n \\n
\\n
\\n
\\n
\\n
{{ selectedAmPm }}
\\n

\\n {{ selectedHour }}:{{ selectedMinute }}\\n

\\n
\\n
\\n
\\n
\\n {{ hour }}\\n
\\n
\\n {{ minute }}\\n
\\n
\\n {{ ampm }}\\n
\\n
\\n \\n
\\n
\",\n styles: [\":host {\\n display: block;\\n }\"]\n }] }\n ];\n /** @nocollapse */\n IgxTimePickerComponent.ctorParameters = function () { return [\n { type: Injector },\n { type: ChangeDetectorRef }\n ]; };\n IgxTimePickerComponent.propDecorators = {\n id: [{ type: HostBinding, args: ['attr.id',] }, { type: Input }],\n value: [{ type: Input }],\n disabled: [{ type: Input }],\n resourceStrings: [{ type: Input }],\n okButtonLabel: [{ type: Input }],\n cancelButtonLabel: [{ type: Input }],\n itemsDelta: [{ type: Input }],\n minValue: [{ type: Input }],\n maxValue: [{ type: Input }],\n isSpinLoop: [{ type: Input }],\n vertical: [{ type: Input }],\n format: [{ type: Input }],\n promptChar: [{ type: Input }],\n mode: [{ type: Input }],\n outlet: [{ type: Input }],\n overlaySettings: [{ type: Input }],\n onValueChanged: [{ type: Output }],\n onValidationFailed: [{ type: Output }],\n onOpen: [{ type: Output }],\n onOpened: [{ type: Output }],\n onClose: [{ type: Output }],\n onClosed: [{ type: Output }],\n onClosing: [{ type: Output }],\n hourList: [{ type: ViewChild, args: ['hourList', { static: false },] }],\n minuteList: [{ type: ViewChild, args: ['minuteList', { static: false },] }],\n ampmList: [{ type: ViewChild, args: ['ampmList', { static: false },] }],\n defaultTimePickerTemplate: [{ type: ViewChild, args: ['defaultTimePickerTemplate', { read: TemplateRef, static: true },] }],\n dropdownInputTemplate: [{ type: ViewChild, args: ['dropdownInputTemplate', { read: TemplateRef, static: true },] }],\n timePickerTemplateDirective: [{ type: ContentChild, args: [IgxTimePickerTemplateDirective, { read: IgxTimePickerTemplateDirective, static: false },] }],\n timePickerActionsDirective: [{ type: ContentChild, args: [IgxTimePickerActionsDirective, { read: IgxTimePickerActionsDirective, static: false },] }],\n toggleRef: [{ type: ViewChild, args: [IgxToggleDirective, { static: true },] }],\n _inputElementRef: [{ type: ViewChild, args: [IgxInputDirective, { read: ElementRef, static: false },] }],\n _inputDirective: [{ type: ViewChild, args: [IgxInputDirective, { read: IgxInputDirective, static: false },] }],\n _inputDirectiveUserTemplate: [{ type: ContentChild, args: [IgxInputDirective, { read: IgxInputDirective, static: false },] }],\n _inputGroup: [{ type: ViewChild, args: [IgxInputGroupComponent, { read: IgxInputGroupComponent, static: false },] }],\n onKeydownSpace: [{ type: HostListener, args: ['keydown.spacebar', ['$event'],] }, { type: HostListener, args: ['keydown.space', ['$event'],] }],\n onAltArrowDown: [{ type: HostListener, args: ['keydown.Alt.ArrowDown',] }]\n };\n __decorate([\n DeprecateProperty(\"'onOpen' @Output property is deprecated. Use 'onOpened' instead.\"),\n __metadata(\"design:type\", EventEmitter),\n __metadata(\"design:paramtypes\", [EventEmitter])\n ], IgxTimePickerComponent.prototype, \"onOpen\", null);\n __decorate([\n DeprecateProperty(\"'onClose' @Output property is deprecated. Use 'onClosed' instead.\"),\n __metadata(\"design:type\", EventEmitter),\n __metadata(\"design:paramtypes\", [EventEmitter])\n ], IgxTimePickerComponent.prototype, \"onClose\", null);\n return IgxTimePickerComponent;\n}());\n/**\n * @hidden\n */\nvar IgxTimePickerModule = /** @class */ (function () {\n function IgxTimePickerModule() {\n }\n IgxTimePickerModule.decorators = [\n { type: NgModule, args: [{\n declarations: [\n IgxTimePickerComponent,\n IgxHourItemDirective,\n IgxItemListDirective,\n IgxMinuteItemDirective,\n IgxAmPmItemDirective,\n IgxTimePickerTemplateDirective,\n IgxTimePickerActionsDirective,\n TimeDisplayFormatPipe,\n TimeInputFormatPipe\n ],\n exports: [\n IgxTimePickerComponent,\n IgxTimePickerTemplateDirective,\n IgxTimePickerActionsDirective,\n TimeDisplayFormatPipe,\n TimeInputFormatPipe\n ],\n imports: [\n CommonModule,\n IgxInputGroupModule,\n IgxIconModule,\n IgxButtonModule,\n IgxMaskModule,\n IgxToggleModule\n ],\n providers: []\n },] }\n ];\n return IgxTimePickerModule;\n}());\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n/** @type {?} */\nvar NEXT_ID$v = 0;\n/**\n * **Ignite UI for Angular Toast** -\n * [Documentation](https://www.infragistics.com/products/ignite-ui-angular/angular/components/toast.html)\n *\n * The Ignite UI Toast provides information and warning messages that are non-interactive and cannot\n * be dismissed by the user. Toasts can be displayed at the bottom, middle, or top of the page.\n *\n * Example:\n * ```html\n * \n * \n * \n * ```\n */\nvar IgxToastComponent = /** @class */ (function () {\n function IgxToastComponent(elementRef, navService) {\n this.elementRef = elementRef;\n this.navService = navService;\n this._isVisible = false;\n /**\n * Returns a list of available CSS classes.\n * ```typescript\n * let toastClasses = this.toast.CSS_CLASSES;\n * ```\n * \\@memberof IgxToastComponent\n */\n this.CSS_CLASSES = {\n IGX_TOAST_BOTTOM: 'igx-toast--bottom',\n IGX_TOAST_MIDDLE: 'igx-toast--middle',\n IGX_TOAST_TOP: 'igx-toast--top'\n };\n /**\n * Sets/gets the `id` of the toast.\n * If not set, the `id` will have value `\"igx-toast-0\"`.\n * ```html\n * \n * ```\n * ```typescript\n * let toastId = this.toast.id;\n * ```\n */\n this.id = \"igx-toast-\" + NEXT_ID$v++;\n /**\n * Emits an event prior the toast is shown.\n * Provides reference to the `IgxToastComponent` as event argument.\n * ```html\n * \n * ```\n * \\@memberof IgxToastComponent\n */\n this.onShowing = new EventEmitter();\n /**\n * Emits an event when the toast is shown.\n * Provides reference to the `IgxToastComponent` as event argument.\n * ```html\n * \n * ```\n * \\@memberof IgxToastComponent\n */\n this.onShown = new EventEmitter();\n /**\n * Emits an event prior the toast is hidden.\n * Provides reference to the `IgxToastComponent` as event argument.\n * ```html\n * \n * ```\n * \\@memberof IgxToastComponent\n */\n this.onHiding = new EventEmitter();\n /**\n * Emits an event when the toast is hidden.\n * Provides reference to the `IgxToastComponent` as event argument.\n * ```html\n * \n * ```\n * \\@memberof IgxToastComponent\n */\n this.onHidden = new EventEmitter();\n /**\n * Sets/gets the `role` attribute.\n * If not set, `role` will have value `\"alert\"`.\n * ```html\n * \n * ```\n * ```typescript\n * let toastRole = this.toast.role;\n * ```\n * \\@memberof IgxToastComponent\n */\n this.role = 'alert';\n /**\n * Sets/gets whether the toast will be hidden after the `displayTime` is over.\n * Default value is `true`.\n * ```html\n * \n * ```\n * ```typescript\n * let autoHide = this.toast.autoHide;\n * ```\n * \\@memberof IgxToastComponent\n */\n this.autoHide = true;\n /**\n * Sets/gets the duration of time span(in milliseconds) which the toast will be visible\n * after it is being shown.\n * Default value is `4000`.\n * ```html\n * \n * ```\n * ```typescript\n * let displayTime = this.toast.displayTime;\n * ```\n * \\@memberof IgxToastComponent\n */\n this.displayTime = 4000;\n /**\n * @hidden\n */\n this.isVisibleChange = new EventEmitter();\n /**\n * Sets/gets the position of the toast.\n * If not set, the `position` attribute will have value `IgxToastPosition.Bottom`.\n * ```html\n * \n * ```\n * ```typescript\n * let toastPosition = this.toast.position;\n * ```\n * \\@memberof IgxToastComponent\n */\n this.position = IgxToastPosition.Bottom;\n }\n Object.defineProperty(IgxToastComponent.prototype, \"isVisible\", {\n /**\n * Enables/Disables the visibility of the toast.\n * If not set, the `isVisible` attribute will have value `false`.\n * ```html\n * \n * ```\n * ```typescript\n * let isVisible = this.toast.isVisible;\n * ```\n *\n * Two-way data binding.\n * ```html\n * \n * ```\n * @memberof IgxToastComponent\n */\n get: /**\n * Enables/Disables the visibility of the toast.\n * If not set, the `isVisible` attribute will have value `false`.\n * ```html\n * \n * ```\n * ```typescript\n * let isVisible = this.toast.isVisible;\n * ```\n *\n * Two-way data binding.\n * ```html\n * \n * ```\n * \\@memberof IgxToastComponent\n * @return {?}\n */\n function () {\n return this._isVisible;\n },\n set: /**\n * @param {?} value\n * @return {?}\n */\n function (value) {\n this._isVisible = value;\n this.isVisibleChange.emit(this._isVisible);\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(IgxToastComponent.prototype, \"element\", {\n /**\n * Gets the nativeElement of the toast.\n * ```typescript\n * let nativeElement = this.toast.element;\n * ```\n * @memberof IgxToastComponent\n */\n get: /**\n * Gets the nativeElement of the toast.\n * ```typescript\n * let nativeElement = this.toast.element;\n * ```\n * \\@memberof IgxToastComponent\n * @return {?}\n */\n function () {\n return this.elementRef.nativeElement;\n },\n enumerable: true,\n configurable: true\n });\n /**\n * Shows the toast.\n * If `autoHide` is enabled, the toast will hide after `displayTime` is over.\n * ```typescript\n * this.toast.show();\n * ```\n * @memberof IgxToastComponent\n */\n /**\n * Shows the toast.\n * If `autoHide` is enabled, the toast will hide after `displayTime` is over.\n * ```typescript\n * this.toast.show();\n * ```\n * \\@memberof IgxToastComponent\n * @return {?}\n */\n IgxToastComponent.prototype.show = /**\n * Shows the toast.\n * If `autoHide` is enabled, the toast will hide after `displayTime` is over.\n * ```typescript\n * this.toast.show();\n * ```\n * \\@memberof IgxToastComponent\n * @return {?}\n */\n function () {\n var _this = this;\n clearInterval(this.timeoutId);\n this.onShowing.emit(this);\n this.isVisible = true;\n if (this.autoHide) {\n this.timeoutId = setTimeout(function () {\n _this.hide();\n }, this.displayTime);\n }\n this.onShown.emit(this);\n };\n /**\n * Hides the toast.\n * ```typescript\n * this.toast.hide();\n * ```\n * @memberof IgxToastComponent\n */\n /**\n * Hides the toast.\n * ```typescript\n * this.toast.hide();\n * ```\n * \\@memberof IgxToastComponent\n * @return {?}\n */\n IgxToastComponent.prototype.hide = /**\n * Hides the toast.\n * ```typescript\n * this.toast.hide();\n * ```\n * \\@memberof IgxToastComponent\n * @return {?}\n */\n function () {\n this.onHiding.emit(this);\n this.isVisible = false;\n this.onHidden.emit(this);\n clearInterval(this.timeoutId);\n };\n /**\n * Wraps @show() method due @IToggleView interface implementation.\n * @hidden\n */\n /**\n * Wraps \\@show() method due \\@IToggleView interface implementation.\n * @hidden\n * @return {?}\n */\n IgxToastComponent.prototype.open = /**\n * Wraps \\@show() method due \\@IToggleView interface implementation.\n * @hidden\n * @return {?}\n */\n function () {\n this.show();\n };\n /**\n * Wraps @hide() method due @IToggleView interface implementation.\n * @hidden\n */\n /**\n * Wraps \\@hide() method due \\@IToggleView interface implementation.\n * @hidden\n * @return {?}\n */\n IgxToastComponent.prototype.close = /**\n * Wraps \\@hide() method due \\@IToggleView interface implementation.\n * @hidden\n * @return {?}\n */\n function () {\n this.hide();\n };\n /**\n * Toggles the visible state of the toast.\n * ```typescript\n * this.toast.toggle();\n * ```\n * @memberof IgxToastComponent\n */\n /**\n * Toggles the visible state of the toast.\n * ```typescript\n * this.toast.toggle();\n * ```\n * \\@memberof IgxToastComponent\n * @return {?}\n */\n IgxToastComponent.prototype.toggle = /**\n * Toggles the visible state of the toast.\n * ```typescript\n * this.toast.toggle();\n * ```\n * \\@memberof IgxToastComponent\n * @return {?}\n */\n function () {\n this.isVisible ? this.close() : this.open();\n };\n /**\n * Sets/gets the class name of the toast based on the `position` value.\n * ```typescript\n * let className = this.toast.mapPositionToClassName();\n * ```\n * @memberof IgxToastComponent\n */\n /**\n * Sets/gets the class name of the toast based on the `position` value.\n * ```typescript\n * let className = this.toast.mapPositionToClassName();\n * ```\n * \\@memberof IgxToastComponent\n * @return {?}\n */\n IgxToastComponent.prototype.mapPositionToClassName = /**\n * Sets/gets the class name of the toast based on the `position` value.\n * ```typescript\n * let className = this.toast.mapPositionToClassName();\n * ```\n * \\@memberof IgxToastComponent\n * @return {?}\n */\n function () {\n if (this.position === IgxToastPosition.Top) {\n return this.CSS_CLASSES.IGX_TOAST_TOP;\n }\n if (this.position === IgxToastPosition.Middle) {\n return this.CSS_CLASSES.IGX_TOAST_MIDDLE;\n }\n if (this.position === IgxToastPosition.Bottom) {\n return this.CSS_CLASSES.IGX_TOAST_BOTTOM;\n }\n };\n /**\n *@hidden\n */\n /**\n * @hidden\n * @return {?}\n */\n IgxToastComponent.prototype.ngOnInit = /**\n * @hidden\n * @return {?}\n */\n function () {\n if (this.navService && this.id) {\n this.navService.add(this.id, this);\n }\n };\n /**\n *@hidden\n */\n /**\n * @hidden\n * @return {?}\n */\n IgxToastComponent.prototype.ngOnDestroy = /**\n * @hidden\n * @return {?}\n */\n function () {\n if (this.navService && this.id) {\n this.navService.remove(this.id);\n }\n };\n IgxToastComponent.decorators = [\n { type: Component, args: [{\n animations: [\n trigger('animate', [\n state('show', style({\n opacity: 1\n })),\n transition('* => show', animate('.20s ease')),\n transition('show => *', animate('.40s ease-out'))\n ])\n ],\n selector: 'igx-toast',\n template: \"
\\n {{ message }}\\n
\\n\",\n styles: [\"\\n :host {\\n display: block;\\n }\\n \"]\n }] }\n ];\n /** @nocollapse */\n IgxToastComponent.ctorParameters = function () { return [\n { type: ElementRef },\n { type: IgxNavigationService, decorators: [{ type: Optional }] }\n ]; };\n IgxToastComponent.propDecorators = {\n id: [{ type: HostBinding, args: ['attr.id',] }, { type: Input }],\n onShowing: [{ type: Output }],\n onShown: [{ type: Output }],\n onHiding: [{ type: Output }],\n onHidden: [{ type: Output }],\n role: [{ type: Input }],\n autoHide: [{ type: Input }],\n displayTime: [{ type: Input }],\n isVisible: [{ type: Input }],\n isVisibleChange: [{ type: Output }],\n message: [{ type: Input }],\n position: [{ type: Input }]\n };\n return IgxToastComponent;\n}());\n/** @enum {number} */\nvar IgxToastPosition = {\n Bottom: 0,\n Middle: 1,\n Top: 2,\n};\nIgxToastPosition[IgxToastPosition.Bottom] = 'Bottom';\nIgxToastPosition[IgxToastPosition.Middle] = 'Middle';\nIgxToastPosition[IgxToastPosition.Top] = 'Top';\n/**\n * @hidden\n */\nvar IgxToastModule = /** @class */ (function () {\n function IgxToastModule() {\n }\n IgxToastModule.decorators = [\n { type: NgModule, args: [{\n declarations: [IgxToastComponent],\n exports: [IgxToastComponent],\n imports: [CommonModule]\n },] }\n ];\n return IgxToastModule;\n}());\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n\nexport { AbsoluteScrollStrategy, AutoPositionStrategy, AvatarType, BaseFilteringStrategy, BaseProgress, BlockScrollStrategy, ButtonGroupAlignment, Calendar, CalendarHammerConfig, CalendarView, CloseScrollStrategy, ColumnDisplayOrder, ConnectedPositioningStrategy, ContainerPositionStrategy, CsvFileTypes, DataType, DataUtil, DateRangeType, DefaultSortingStrategy, Direction$1 as Direction, DisplayDensity, DisplayDensityBase, DisplayDensityToken, DropPosition, ElasticPositionStrategy, FilterMode, FilteringExpressionsTree, FilteringExpressionsTreeType, FilteringLogic, FilteringStrategy, GlobalPositionStrategy, GridBaseAPIService, GridKeydownTargetType, GridSelectionMode, GridSummaryCalculationMode, GridSummaryPosition, GroupedRecords, HorizontalAlignment, IGX_CHECKBOX_REQUIRED_VALIDATOR, IGX_SWITCH_REQUIRED_VALIDATOR, IgxActionIconDirective, IgxAppendDropStrategy, IgxAutocompleteDirective, IgxAutocompleteModule, IgxAvatarComponent, IgxAvatarModule, IgxBadgeComponent, IgxBadgeModule, IgxBannerComponent, IgxBannerModule, IgxBaseExporter, IgxBaseTransactionService, IgxBooleanFilteringOperand, IgxBottomNavComponent, IgxBottomNavModule, IgxButtonDirective, IgxButtonGroupComponent, IgxButtonGroupModule, IgxButtonModule, IgxCalendarComponent, IgxCalendarHeaderTemplateDirective, IgxCalendarModule, IgxCalendarMonthDirective, IgxCalendarScrollMonthDirective, IgxCalendarSubheaderTemplateDirective, IgxCalendarYearDirective, IgxCardActionsComponent, IgxCardActionsLayout, IgxCardComponent, IgxCardContentDirective, IgxCardFooterDirective, IgxCardHeaderComponent, IgxCardHeaderSubtitleDirective, IgxCardHeaderTitleDirective, IgxCardMediaDirective, IgxCardModule, IgxCardThumbnailDirective, IgxCardType, IgxCarouselComponent, IgxCarouselModule, IgxCellEditorTemplateDirective, IgxCellFooterTemplateDirective, IgxCellHeaderTemplateDirective, IgxCellTemplateDirective, IgxCheckboxComponent, IgxCheckboxModule, IgxCheckboxRequiredDirective, IgxChipComponent, IgxChipsAreaComponent, IgxChipsModule, IgxCircularProgressBarComponent, IgxColumnComponent, IgxColumnGroupComponent, IgxColumnHidingComponent, IgxColumnHidingModule, IgxColumnLayoutComponent, IgxColumnMovingDragDirective, IgxColumnMovingDropDirective, IgxColumnMovingService, IgxColumnPinningComponent, IgxColumnPinningItemDirective, IgxColumnPinningModule, IgxColumnResizerDirective, IgxComboComponent, IgxComboModule, IgxComboState, IgxCsvExporterOptions, IgxCsvExporterService, IgxDataLoadingTemplateDirective, IgxDataRecordSorting, IgxDateFilteringOperand, IgxDatePickerComponent, IgxDatePickerModule, IgxDatePipeComponent, IgxDateSummaryOperand, IgxDaysViewComponent, IgxDecimalPipeComponent, IgxDefaultDropStrategy, IgxDialogComponent, IgxDialogModule, IgxDividerDirective, IgxDividerModule, IgxDividerType, IgxDragDirective, IgxDragDropModule, IgxDragLocation, IgxDropDirective, IgxDropDownBase, IgxDropDownComponent, IgxDropDownGroupComponent, IgxDropDownItemBase, IgxDropDownItemComponent, IgxDropDownItemNavigationDirective, IgxDropDownModule, IgxEmptyListTemplateDirective, IgxExcelExporterOptions, IgxExcelExporterService, IgxExpansionPanelBodyComponent, IgxExpansionPanelComponent, IgxExpansionPanelHeaderComponent, IgxExpansionPanelModule, IgxExporterOptionsBase, IgxFilterCellTemplateDirective, IgxFilterDirective, IgxFilterModule, IgxFilterOptions, IgxFilterPipe, IgxFilteringOperand, IgxFlexDirective, IgxFocusDirective, IgxFocusModule, IgxForOfContext, IgxForOfDirective, IgxForOfModule, IgxGridAPIService, IgxGridBaseComponent, IgxGridBodyDirective, IgxGridCellComponent, IgxGridCommonModule, IgxGridComponent, IgxGridForOfDirective, IgxGridGroupByRowComponent, IgxGridModule, IgxGridRowComponent, IgxGridTransaction, IgxGroupAreaDropDirective, IgxGroupByRowTemplateDirective, IgxGrouping, IgxHeaderCollapseIndicatorDirective, IgxHeaderExpandIndicatorDirective, IgxHierarchicalGridAPIService, IgxHierarchicalGridBaseComponent, IgxHierarchicalGridCellComponent, IgxHierarchicalGridComponent, IgxHierarchicalGridModule, IgxHierarchicalRowComponent, IgxHierarchicalTransactionService, IgxHierarchicalTransactionServiceFactory, IgxHintDirective, IgxIconComponent, IgxIconModule, IgxIconService, IgxInputDirective, IgxInputGroupComponent, IgxInputGroupModule, IgxInputState, IgxInsertDropStrategy, IgxLabelDirective, IgxLayoutDirective, IgxLayoutModule, IgxLeftButtonStyleDirective, IgxLinearProgressBarComponent, IgxListActionDirective, IgxListBase, IgxListComponent, IgxListItemComponent, IgxListItemLeftPanningTemplateDirective, IgxListItemRightPanningTemplateDirective, IgxListLineDirective, IgxListLineSubTitleDirective, IgxListLineTitleDirective, IgxListModule, IgxListPanState, IgxListThumbnailDirective, IgxMaskDirective, IgxMaskModule, IgxMonthPickerBase, IgxMonthPickerComponent, IgxMonthsViewComponent, IgxNavDrawerItemDirective, IgxNavDrawerMiniTemplateDirective, IgxNavDrawerTemplateDirective, IgxNavbarComponent, IgxNavbarModule, IgxNavigationCloseDirective, IgxNavigationDrawerComponent, IgxNavigationDrawerModule, IgxNavigationModule, IgxNavigationService, IgxNavigationToggleDirective, IgxNumberFilteringOperand, IgxNumberSummaryOperand, IgxOverlayOutletDirective, IgxOverlayService, IgxPaginatorComponent, IgxPaginatorModule, IgxPrefixDirective, IgxPrefixModule, IgxPrependDropStrategy, IgxProgressBarModule, IgxProgressType, IgxRadioComponent, IgxRadioGroupDirective, IgxRadioModule, IgxResizeHandleDirective, IgxRightButtonStyleDirective, IgxRippleDirective, IgxRippleModule, IgxRowCollapsedIndicatorDirective, IgxRowComponent, IgxRowExpandedIndicatorDirective, IgxRowIslandAPIService, IgxRowIslandComponent, IgxSelectComponent, IgxSelectGroupComponent, IgxSelectItemComponent, IgxSelectModule, IgxSelectToggleIconDirective, IgxSlideComponent, IgxSliderComponent, IgxSliderModule, IgxSnackbarComponent, IgxSnackbarModule, IgxSorting, IgxStringFilteringOperand, IgxSuffixDirective, IgxSuffixModule, IgxSummaryOperand, IgxSwitchComponent, IgxSwitchModule, IgxSwitchRequiredDirective, IgxTabComponent, IgxTabItemComponent, IgxTabItemTemplateDirective, IgxTabPanelComponent, IgxTabTemplateDirective, IgxTabsComponent, IgxTabsGroupComponent, IgxTabsModule, IgxTextAlign, IgxTextHighlightDirective, IgxTextHighlightModule, IgxTextSelectionDirective, IgxTextSelectionModule, IgxThumbFromTemplateDirective, IgxThumbToTemplateDirective, IgxTimePickerComponent, IgxTimePickerModule, IgxToastComponent, IgxToastModule, IgxToastPosition, IgxToggleActionDirective, IgxToggleDirective, IgxToggleModule, IgxTooltipDirective, IgxTooltipModule, IgxTooltipTargetDirective, IgxTransactionService, IgxTreeGridAPIService, IgxTreeGridCellComponent, IgxTreeGridComponent, IgxTreeGridModule, IgxTreeGridRowComponent, IgxYearsViewComponent, InteractionMode, LabelPosition, NoOpScrollStrategy, PagingError, Point, PredefinedFormatOptions, RadioLabelPosition, RestrictDrag, RowEditPositionStrategy, ScrollStrategy, Size, SliderHandle, SliderType, SortingDirection, SwitchLabelPosition, TabsType, TimePickerHammerConfig, TransactionType, Type, VerticalAlignment, WEEKDAYS, blink, changei18n, convertInPercentage, fadeIn, fadeOut, filteringStateDefaults, flipBottom, flipHorBck, flipHorFwd, flipLeft, flipRight, flipTop, flipVerBck, flipVerFwd, getCurrentResourceStrings, getTypeNameForDebugging, getValueInProperRange, growVerIn, growVerOut, heartbeat, hierarchicalTransactionServiceFactory, isDateInRanges, isLeap, monthRange, pulsateBck, pulsateFwd, range, rotateInBl, rotateInBottom, rotateInBr, rotateInCenter, rotateInDiagonal1, rotateInDiagonal2, rotateInHor, rotateInLeft, rotateInRight, rotateInTl, rotateInTop, rotateInTr, rotateInVer, rotateOutBl, rotateOutBottom, rotateOutBr, rotateOutCenter, rotateOutDiagonal1, rotateOutDiagonal2, rotateOutHor, rotateOutLeft, rotateOutRight, rotateOutTl, rotateOutTop, rotateOutTr, rotateOutVer, scaleInBl, scaleInBottom, scaleInBr, scaleInCenter, scaleInHorCenter, scaleInHorLeft, scaleInHorRight, scaleInLeft, scaleInRight, scaleInTl, scaleInTop, scaleInTr, scaleInVerBottom, scaleInVerCenter, scaleInVerTop, scaleOutBl, scaleOutBottom, scaleOutBr, scaleOutCenter, scaleOutHorCenter, scaleOutHorLeft, scaleOutHorRight, scaleOutLeft, scaleOutRight, scaleOutTl, scaleOutTop, scaleOutTr, scaleOutVerBottom, scaleOutVerCenter, scaleOutVerTop, shakeBl, shakeBottom, shakeBr, shakeCenter, shakeHor, shakeLeft, shakeRight, shakeTl, shakeTop, shakeTr, shakeVer, slideInBl, slideInBottom, slideInBr, slideInLeft, slideInRight, slideInTl, slideInTop, slideInTr, slideOutBl, slideOutBottom, slideOutBr, slideOutLeft, slideOutRight, slideOutTl, slideOutTop, slideOutTr, swingInBottomBck, swingInBottomFwd, swingInLeftBck, swingInLeftFwd, swingInRightBck, swingInRightFwd, swingInTopBck, swingInTopFwd, swingOutBottomBck, swingOutBottomFwd, swingOutLeftBck, swingOutLefttFwd, swingOutRightBck, swingOutRightFwd, swingOutTopBck, swingOutTopFwd, weekDay, IGX_DROPDOWN_BASE as ɵa, IgxExpansionPanelDescriptionDirective as ɵba, IgxExpansionPanelIconDirective as ɵbb, IgxCalendarBase as ɵbc, IgxDaysViewNavigationService as ɵbd, IgxDayItemComponent as ɵbe, IgxMonthViewSlotsCalendar as ɵbf, IgxGetViewDateCalendar as ɵbg, IgxComboAPIService as ɵbh, IGX_COMBO_COMPONENT as ɵbi, IgxComboDropDownComponent as ɵbk, IgxComboItemComponent as ɵbl, IgxComboHeaderDirective as ɵbm, IgxComboFooterDirective as ɵbn, IgxComboItemDirective as ɵbo, IgxComboEmptyDirective as ɵbp, IgxComboHeaderItemDirective as ɵbq, IgxComboAddItemDirective as ɵbr, IgxComboToggleIconDirective as ɵbs, IgxComboClearIconDirective as ɵbt, IgxComboFilteringPipe as ɵbu, IgxComboSortingPipe as ɵbv, IgxComboGroupingPipe as ɵbw, IgxComboFilterConditionPipe as ɵbx, IgxComboAddItemComponent as ɵby, IgxDatePickerTemplateDirective as ɵbz, ColumnChooserBase as ɵc, IgxDatePickerActionsDirective as ɵca, IgxCalendarContainerComponent as ɵcb, DatePickerDisplayValuePipe as ɵcc, DatePickerInputValuePipe as ɵcd, IGX_DATE_PICKER_COMPONENT as ɵce, IgxDialogTitleDirective as ɵcg, IgxDialogActionsDirective as ɵch, HammerGesturesManager as ɵci, IgxGridCRUDService as ɵcj, IgxGridSelectionService as ɵck, WatchChanges as ɵcl, WatchColumnChanges as ɵcm, notifyChanges as ɵcn, IgxGridColumnResizerComponent as ɵco, IgxColumnResizingService as ɵcp, IgxExcelStyleSortingTemplateDirective as ɵcq, IgxExcelStyleMovingTemplateDirective as ɵcr, IgxExcelStyleHidingTemplateDirective as ɵcs, IgxExcelStylePinningTemplateDirective as ɵct, IgxGridExcelStyleFilteringComponent as ɵcu, IgxExcelStyleLoadingValuesTemplateDirective as ɵcv, IgxExcelStyleSearchComponent as ɵcw, IgxGridHeaderGroupComponent as ɵcx, IgxGridHeaderComponent as ɵcy, IgxFilteringService as ɵcz, IgxColumnHidingItemDirective as ɵd, IgxGridFilteringCellComponent as ɵda, IgxChipsAreaComponent as ɵdb, IgxChipComponent as ɵdc, IgxGridNavigationService as ɵdd, IgxSummaryRowComponent as ɵde, IgxSummaryCellComponent as ɵdf, IgxGridToolbarComponent as ɵdg, IgxGridToolbarCustomContentDirective as ɵdh, IgxRowSelectorDirective as ɵdi, IgxHeadSelectorDirective as ɵdj, IgxRowSelectorsModule as ɵdk, IgxRowDragDirective as ɵdl, IgxDragIndicatorIconDirective as ɵdm, IgxRowDragGhostDirective as ɵdn, IgxRowDragModule as ɵdo, IgxGridFilteringRowComponent as ɵdp, IgxTemplateOutletDirective as ɵdq, IgxTemplateOutletModule as ɵdr, IgxRowEditTemplateDirective as ɵds, IgxRowEditTextDirective as ɵdt, IgxRowEditActionsDirective as ɵdu, IgxRowEditTabStopDirective as ɵdv, IgxGridSummaryService as ɵdw, ConnectedPositioningStrategy as ɵdx, IgxSummaryDataPipe as ɵdy, IgxGridDragSelectDirective as ɵdz, IgxGridFooterComponent as ɵea, IgxAdvancedFilteringDialogComponent as ɵeb, ItemPropertyValueChanged as ɵec, ColumnChooserItemBase as ɵed, IgxProcessBarTextTemplateDirective as ɵee, IgxGridPipesModule as ɵef, IgxGridCellStyleClassesPipe as ɵeg, IgxGridCellStylesPipe as ɵeh, IgxGridNotGroupedPipe as ɵei, IgxGridTopLevelColumns as ɵej, IgxGridFilterConditionPipe as ɵek, IgxGridTransactionPipe as ɵel, IgxGridPaginatorOptionsPipe as ɵem, IgxHasVisibleColumnsPipe as ɵen, IgxGridExcelStyleFilteringModule as ɵeo, IgxDropDownComponent as ɵep, IgxExcelStyleCustomDialogComponent as ɵeq, IgxExcelStyleDefaultExpressionComponent as ɵer, IgxExcelStyleDateExpressionComponent as ɵes, IgxExcelStyleSortingComponent as ɵet, IgxExcelStyleColumnMovingComponent as ɵeu, IgxExcelStyleSearchFilterPipe as ɵev, IgxSelectItemNavigationDirective as ɵew, IgxGridSortingPipe as ɵex, IgxGridGroupingPipe as ɵey, IgxGridPagingPipe as ɵez, IGX_EXPANSION_PANEL_COMPONENT as ɵf, IgxGridFilteringPipe as ɵfa, IgxGridSummaryPipe as ɵfb, IgxTreeGridNavigationService as ɵfc, IgxRowLoadingIndicatorTemplateDirective as ɵfd, IgxTreeGridHierarchizingPipe as ɵfe, IgxTreeGridFlatteningPipe as ɵff, IgxTreeGridSortingPipe as ɵfg, IgxTreeGridPagingPipe as ɵfh, IgxTreeGridTransactionPipe as ɵfi, IgxTreeGridFilteringPipe as ɵfj, IgxTreeGridSummaryPipe as ɵfk, IgxHierarchicalGridNavigationService as ɵfl, GridBaseAPIService as ɵfm, IgxChildGridRowComponent as ɵfn, IgxGridHierarchicalPipe as ɵfo, IgxGridHierarchicalPagingPipe as ɵfp, IgxSliderThumbComponent as ɵfq, IgxThumbLabelComponent as ɵfr, IgxTabsBase as ɵfs, IgxTabItemBase as ɵft, IgxTabsGroupBase as ɵfu, IGX_TIME_PICKER_COMPONENT as ɵfv, IgxItemListDirective as ɵfx, IgxHourItemDirective as ɵfy, IgxMinuteItemDirective as ɵfz, PlatformUtil as ɵg, IgxAmPmItemDirective as ɵga, IgxTimePickerTemplateDirective as ɵgb, IgxTimePickerActionsDirective as ɵgc, TimeDisplayFormatPipe as ɵgd, TimeInputFormatPipe as ɵge, EaseIn as ɵh, EaseOut as ɵi, IgxInputGroupBase as ɵj, IgxForOfSyncService as ɵk, IgxForOfScrollSyncService as ɵl, DeprecateMethod as ɵm, DeprecateProperty as ɵn, IgxSelectionAPIService as ɵo, IgxDragHandleDirective as ɵp, DisplayContainerComponent as ɵq, VirtualHelperComponent as ɵr, VirtualHelperBaseDirective as ɵs, HVirtualHelperComponent as ɵt, IgxScrollInertiaDirective as ɵu, IgxScrollInertiaModule as ɵv, isHierarchyMatch as ɵw, getHierarchy as ɵx, IgxBannerActionsDirective as ɵy, IgxExpansionPanelTitleDirective as ɵz };\n//# sourceMappingURL=igniteui-angular.js.map\n","/*!\n\nJSZip v3.3.0 - A JavaScript class for generating and reading zip files\n\n\n(c) 2009-2016 Stuart Knightley \nDual licenced under the MIT license or GPLv3. See https://raw.github.com/Stuk/jszip/master/LICENSE.markdown.\n\nJSZip uses the library pako released under the MIT license :\nhttps://github.com/nodeca/pako/blob/master/LICENSE\n*/\n\n!function(t){if(\"object\"==typeof exports&&\"undefined\"!=typeof module)module.exports=t();else if(\"function\"==typeof define&&define.amd)define([],t);else{(\"undefined\"!=typeof window?window:\"undefined\"!=typeof global?global:\"undefined\"!=typeof self?self:this).JSZip=t()}}(function(){return function s(a,o,h){function u(r,t){if(!o[r]){if(!a[r]){var e=\"function\"==typeof require&&require;if(!t&&e)return e(r,!0);if(l)return l(r,!0);var i=new Error(\"Cannot find module '\"+r+\"'\");throw i.code=\"MODULE_NOT_FOUND\",i}var n=o[r]={exports:{}};a[r][0].call(n.exports,function(t){var e=a[r][1][t];return u(e||t)},n,n.exports,s,a,o,h)}return o[r].exports}for(var l=\"function\"==typeof require&&require,t=0;t>2,s=(3&e)<<4|r>>4,a=1>6:64,o=2>4,r=(15&n)<<4|(s=p.indexOf(t.charAt(o++)))>>2,i=(3&s)<<6|(a=p.indexOf(t.charAt(o++))),l[h++]=e,64!==s&&(l[h++]=r),64!==a&&(l[h++]=i);return l}},{\"./support\":30,\"./utils\":32}],2:[function(t,e,r){\"use strict\";var i=t(\"./external\"),n=t(\"./stream/DataWorker\"),s=t(\"./stream/DataLengthProbe\"),a=t(\"./stream/Crc32Probe\");s=t(\"./stream/DataLengthProbe\");function o(t,e,r,i,n){this.compressedSize=t,this.uncompressedSize=e,this.crc32=r,this.compression=i,this.compressedContent=n}o.prototype={getContentWorker:function(){var t=new n(i.Promise.resolve(this.compressedContent)).pipe(this.compression.uncompressWorker()).pipe(new s(\"data_length\")),e=this;return t.on(\"end\",function(){if(this.streamInfo.data_length!==e.uncompressedSize)throw new Error(\"Bug : uncompressed data size mismatch\")}),t},getCompressedWorker:function(){return new n(i.Promise.resolve(this.compressedContent)).withStreamInfo(\"compressedSize\",this.compressedSize).withStreamInfo(\"uncompressedSize\",this.uncompressedSize).withStreamInfo(\"crc32\",this.crc32).withStreamInfo(\"compression\",this.compression)}},o.createWorkerFrom=function(t,e,r){return t.pipe(new a).pipe(new s(\"uncompressedSize\")).pipe(e.compressWorker(r)).pipe(new s(\"compressedSize\")).withStreamInfo(\"compression\",e)},e.exports=o},{\"./external\":6,\"./stream/Crc32Probe\":25,\"./stream/DataLengthProbe\":26,\"./stream/DataWorker\":27}],3:[function(t,e,r){\"use strict\";var i=t(\"./stream/GenericWorker\");r.STORE={magic:\"\\0\\0\",compressWorker:function(t){return new i(\"STORE compression\")},uncompressWorker:function(){return new i(\"STORE decompression\")}},r.DEFLATE=t(\"./flate\")},{\"./flate\":7,\"./stream/GenericWorker\":28}],4:[function(t,e,r){\"use strict\";var i=t(\"./utils\");var o=function(){for(var t,e=[],r=0;r<256;r++){t=r;for(var i=0;i<8;i++)t=1&t?3988292384^t>>>1:t>>>1;e[r]=t}return e}();e.exports=function(t,e){return void 0!==t&&t.length?\"string\"!==i.getTypeOf(t)?function(t,e,r,i){var n=o,s=i+r;t^=-1;for(var a=i;a>>8^n[255&(t^e[a])];return-1^t}(0|e,t,t.length,0):function(t,e,r,i){var n=o,s=i+r;t^=-1;for(var a=i;a>>8^n[255&(t^e.charCodeAt(a))];return-1^t}(0|e,t,t.length,0):0}},{\"./utils\":32}],5:[function(t,e,r){\"use strict\";r.base64=!1,r.binary=!1,r.dir=!1,r.createFolders=!0,r.date=null,r.compression=null,r.compressionOptions=null,r.comment=null,r.unixPermissions=null,r.dosPermissions=null},{}],6:[function(t,e,r){\"use strict\";var i=null;i=\"undefined\"!=typeof Promise?Promise:t(\"lie\"),e.exports={Promise:i}},{lie:37}],7:[function(t,e,r){\"use strict\";var i=\"undefined\"!=typeof Uint8Array&&\"undefined\"!=typeof Uint16Array&&\"undefined\"!=typeof Uint32Array,n=t(\"pako\"),s=t(\"./utils\"),a=t(\"./stream/GenericWorker\"),o=i?\"uint8array\":\"array\";function h(t,e){a.call(this,\"FlateWorker/\"+t),this._pako=null,this._pakoAction=t,this._pakoOptions=e,this.meta={}}r.magic=\"\\b\\0\",s.inherits(h,a),h.prototype.processChunk=function(t){this.meta=t.meta,null===this._pako&&this._createPako(),this._pako.push(s.transformTo(o,t.data),!1)},h.prototype.flush=function(){a.prototype.flush.call(this),null===this._pako&&this._createPako(),this._pako.push([],!0)},h.prototype.cleanUp=function(){a.prototype.cleanUp.call(this),this._pako=null},h.prototype._createPako=function(){this._pako=new n[this._pakoAction]({raw:!0,level:this._pakoOptions.level||-1});var e=this;this._pako.onData=function(t){e.push({data:t,meta:e.meta})}},r.compressWorker=function(t){return new h(\"Deflate\",t)},r.uncompressWorker=function(){return new h(\"Inflate\",{})}},{\"./stream/GenericWorker\":28,\"./utils\":32,pako:38}],8:[function(t,e,r){\"use strict\";function A(t,e){var r,i=\"\";for(r=0;r>>=8;return i}function i(t,e,r,i,n,s){var a,o,h=t.file,u=t.compression,l=s!==O.utf8encode,f=I.transformTo(\"string\",s(h.name)),d=I.transformTo(\"string\",O.utf8encode(h.name)),c=h.comment,p=I.transformTo(\"string\",s(c)),m=I.transformTo(\"string\",O.utf8encode(c)),_=d.length!==h.name.length,g=m.length!==c.length,b=\"\",v=\"\",y=\"\",w=h.dir,k=h.date,x={crc32:0,compressedSize:0,uncompressedSize:0};e&&!r||(x.crc32=t.crc32,x.compressedSize=t.compressedSize,x.uncompressedSize=t.uncompressedSize);var S=0;e&&(S|=8),l||!_&&!g||(S|=2048);var z=0,C=0;w&&(z|=16),\"UNIX\"===n?(C=798,z|=function(t,e){var r=t;return t||(r=e?16893:33204),(65535&r)<<16}(h.unixPermissions,w)):(C=20,z|=function(t){return 63&(t||0)}(h.dosPermissions)),a=k.getUTCHours(),a<<=6,a|=k.getUTCMinutes(),a<<=5,a|=k.getUTCSeconds()/2,o=k.getUTCFullYear()-1980,o<<=4,o|=k.getUTCMonth()+1,o<<=5,o|=k.getUTCDate(),_&&(v=A(1,1)+A(B(f),4)+d,b+=\"up\"+A(v.length,2)+v),g&&(y=A(1,1)+A(B(p),4)+m,b+=\"uc\"+A(y.length,2)+y);var E=\"\";return E+=\"\\n\\0\",E+=A(S,2),E+=u.magic,E+=A(a,2),E+=A(o,2),E+=A(x.crc32,4),E+=A(x.compressedSize,4),E+=A(x.uncompressedSize,4),E+=A(f.length,2),E+=A(b.length,2),{fileRecord:R.LOCAL_FILE_HEADER+E+f+b,dirRecord:R.CENTRAL_FILE_HEADER+A(C,2)+E+A(p.length,2)+\"\\0\\0\\0\\0\"+A(z,4)+A(i,4)+f+b+p}}var I=t(\"../utils\"),n=t(\"../stream/GenericWorker\"),O=t(\"../utf8\"),B=t(\"../crc32\"),R=t(\"../signature\");function s(t,e,r,i){n.call(this,\"ZipFileWorker\"),this.bytesWritten=0,this.zipComment=e,this.zipPlatform=r,this.encodeFileName=i,this.streamFiles=t,this.accumulate=!1,this.contentBuffer=[],this.dirRecords=[],this.currentSourceOffset=0,this.entriesCount=0,this.currentFile=null,this._sources=[]}I.inherits(s,n),s.prototype.push=function(t){var e=t.meta.percent||0,r=this.entriesCount,i=this._sources.length;this.accumulate?this.contentBuffer.push(t):(this.bytesWritten+=t.data.length,n.prototype.push.call(this,{data:t.data,meta:{currentFile:this.currentFile,percent:r?(e+100*(r-i-1))/r:100}}))},s.prototype.openedSource=function(t){this.currentSourceOffset=this.bytesWritten,this.currentFile=t.file.name;var e=this.streamFiles&&!t.file.dir;if(e){var r=i(t,e,!1,this.currentSourceOffset,this.zipPlatform,this.encodeFileName);this.push({data:r.fileRecord,meta:{percent:0}})}else this.accumulate=!0},s.prototype.closedSource=function(t){this.accumulate=!1;var e=this.streamFiles&&!t.file.dir,r=i(t,e,!0,this.currentSourceOffset,this.zipPlatform,this.encodeFileName);if(this.dirRecords.push(r.dirRecord),e)this.push({data:function(t){return R.DATA_DESCRIPTOR+A(t.crc32,4)+A(t.compressedSize,4)+A(t.uncompressedSize,4)}(t),meta:{percent:100}});else for(this.push({data:r.fileRecord,meta:{percent:0}});this.contentBuffer.length;)this.push(this.contentBuffer.shift());this.currentFile=null},s.prototype.flush=function(){for(var t=this.bytesWritten,e=0;e=this.index;e--)r=(r<<8)+this.byteAt(e);return this.index+=t,r},readString:function(t){return i.transformTo(\"string\",this.readData(t))},readData:function(t){},lastIndexOfSignature:function(t){},readAndCheckSignature:function(t){},readDate:function(){var t=this.readInt(4);return new Date(Date.UTC(1980+(t>>25&127),(t>>21&15)-1,t>>16&31,t>>11&31,t>>5&63,(31&t)<<1))}},e.exports=n},{\"../utils\":32}],19:[function(t,e,r){\"use strict\";var i=t(\"./Uint8ArrayReader\");function n(t){i.call(this,t)}t(\"../utils\").inherits(n,i),n.prototype.readData=function(t){this.checkOffset(t);var e=this.data.slice(this.zero+this.index,this.zero+this.index+t);return this.index+=t,e},e.exports=n},{\"../utils\":32,\"./Uint8ArrayReader\":21}],20:[function(t,e,r){\"use strict\";var i=t(\"./DataReader\");function n(t){i.call(this,t)}t(\"../utils\").inherits(n,i),n.prototype.byteAt=function(t){return this.data.charCodeAt(this.zero+t)},n.prototype.lastIndexOfSignature=function(t){return this.data.lastIndexOf(t)-this.zero},n.prototype.readAndCheckSignature=function(t){return t===this.readData(4)},n.prototype.readData=function(t){this.checkOffset(t);var e=this.data.slice(this.zero+this.index,this.zero+this.index+t);return this.index+=t,e},e.exports=n},{\"../utils\":32,\"./DataReader\":18}],21:[function(t,e,r){\"use strict\";var i=t(\"./ArrayReader\");function n(t){i.call(this,t)}t(\"../utils\").inherits(n,i),n.prototype.readData=function(t){if(this.checkOffset(t),0===t)return new Uint8Array(0);var e=this.data.subarray(this.zero+this.index,this.zero+this.index+t);return this.index+=t,e},e.exports=n},{\"../utils\":32,\"./ArrayReader\":17}],22:[function(t,e,r){\"use strict\";var i=t(\"../utils\"),n=t(\"../support\"),s=t(\"./ArrayReader\"),a=t(\"./StringReader\"),o=t(\"./NodeBufferReader\"),h=t(\"./Uint8ArrayReader\");e.exports=function(t){var e=i.getTypeOf(t);return i.checkSupport(e),\"string\"!==e||n.uint8array?\"nodebuffer\"===e?new o(t):n.uint8array?new h(i.transformTo(\"uint8array\",t)):new s(i.transformTo(\"array\",t)):new a(t)}},{\"../support\":30,\"../utils\":32,\"./ArrayReader\":17,\"./NodeBufferReader\":19,\"./StringReader\":20,\"./Uint8ArrayReader\":21}],23:[function(t,e,r){\"use strict\";r.LOCAL_FILE_HEADER=\"PK\u0003\u0004\",r.CENTRAL_FILE_HEADER=\"PK\u0001\u0002\",r.CENTRAL_DIRECTORY_END=\"PK\u0005\u0006\",r.ZIP64_CENTRAL_DIRECTORY_LOCATOR=\"PK\u0006\u0007\",r.ZIP64_CENTRAL_DIRECTORY_END=\"PK\u0006\u0006\",r.DATA_DESCRIPTOR=\"PK\u0007\\b\"},{}],24:[function(t,e,r){\"use strict\";var i=t(\"./GenericWorker\"),n=t(\"../utils\");function s(t){i.call(this,\"ConvertWorker to \"+t),this.destType=t}n.inherits(s,i),s.prototype.processChunk=function(t){this.push({data:n.transformTo(this.destType,t.data),meta:t.meta})},e.exports=s},{\"../utils\":32,\"./GenericWorker\":28}],25:[function(t,e,r){\"use strict\";var i=t(\"./GenericWorker\"),n=t(\"../crc32\");function s(){i.call(this,\"Crc32Probe\"),this.withStreamInfo(\"crc32\",0)}t(\"../utils\").inherits(s,i),s.prototype.processChunk=function(t){this.streamInfo.crc32=n(t.data,this.streamInfo.crc32||0),this.push(t)},e.exports=s},{\"../crc32\":4,\"../utils\":32,\"./GenericWorker\":28}],26:[function(t,e,r){\"use strict\";var i=t(\"../utils\"),n=t(\"./GenericWorker\");function s(t){n.call(this,\"DataLengthProbe for \"+t),this.propName=t,this.withStreamInfo(t,0)}i.inherits(s,n),s.prototype.processChunk=function(t){if(t){var e=this.streamInfo[this.propName]||0;this.streamInfo[this.propName]=e+t.data.length}n.prototype.processChunk.call(this,t)},e.exports=s},{\"../utils\":32,\"./GenericWorker\":28}],27:[function(t,e,r){\"use strict\";var i=t(\"../utils\"),n=t(\"./GenericWorker\");function s(t){n.call(this,\"DataWorker\");var e=this;this.dataIsReady=!1,this.index=0,this.max=0,this.data=null,this.type=\"\",this._tickScheduled=!1,t.then(function(t){e.dataIsReady=!0,e.data=t,e.max=t&&t.length||0,e.type=i.getTypeOf(t),e.isPaused||e._tickAndRepeat()},function(t){e.error(t)})}i.inherits(s,n),s.prototype.cleanUp=function(){n.prototype.cleanUp.call(this),this.data=null},s.prototype.resume=function(){return!!n.prototype.resume.call(this)&&(!this._tickScheduled&&this.dataIsReady&&(this._tickScheduled=!0,i.delay(this._tickAndRepeat,[],this)),!0)},s.prototype._tickAndRepeat=function(){this._tickScheduled=!1,this.isPaused||this.isFinished||(this._tick(),this.isFinished||(i.delay(this._tickAndRepeat,[],this),this._tickScheduled=!0))},s.prototype._tick=function(){if(this.isPaused||this.isFinished)return!1;var t=null,e=Math.min(this.max,this.index+16384);if(this.index>=this.max)return this.end();switch(this.type){case\"string\":t=this.data.substring(this.index,e);break;case\"uint8array\":t=this.data.subarray(this.index,e);break;case\"array\":case\"nodebuffer\":t=this.data.slice(this.index,e)}return this.index=e,this.push({data:t,meta:{percent:this.max?this.index/this.max*100:0}})},e.exports=s},{\"../utils\":32,\"./GenericWorker\":28}],28:[function(t,e,r){\"use strict\";function i(t){this.name=t||\"default\",this.streamInfo={},this.generatedError=null,this.extraStreamInfo={},this.isPaused=!0,this.isFinished=!1,this.isLocked=!1,this._listeners={data:[],end:[],error:[]},this.previous=null}i.prototype={push:function(t){this.emit(\"data\",t)},end:function(){if(this.isFinished)return!1;this.flush();try{this.emit(\"end\"),this.cleanUp(),this.isFinished=!0}catch(t){this.emit(\"error\",t)}return!0},error:function(t){return!this.isFinished&&(this.isPaused?this.generatedError=t:(this.isFinished=!0,this.emit(\"error\",t),this.previous&&this.previous.error(t),this.cleanUp()),!0)},on:function(t,e){return this._listeners[t].push(e),this},cleanUp:function(){this.streamInfo=this.generatedError=this.extraStreamInfo=null,this._listeners=[]},emit:function(t,e){if(this._listeners[t])for(var r=0;r \"+t:t}},e.exports=i},{}],29:[function(t,e,r){\"use strict\";var h=t(\"../utils\"),n=t(\"./ConvertWorker\"),s=t(\"./GenericWorker\"),u=t(\"../base64\"),i=t(\"../support\"),a=t(\"../external\"),o=null;if(i.nodestream)try{o=t(\"../nodejs/NodejsStreamOutputAdapter\")}catch(t){}function l(t,o){return new a.Promise(function(e,r){var i=[],n=t._internalType,s=t._outputType,a=t._mimeType;t.on(\"data\",function(t,e){i.push(t),o&&o(e)}).on(\"error\",function(t){i=[],r(t)}).on(\"end\",function(){try{var t=function(t,e,r){switch(t){case\"blob\":return h.newBlob(h.transformTo(\"arraybuffer\",e),r);case\"base64\":return u.encode(e);default:return h.transformTo(t,e)}}(s,function(t,e){var r,i=0,n=null,s=0;for(r=0;r>>6:(r<65536?e[s++]=224|r>>>12:(e[s++]=240|r>>>18,e[s++]=128|r>>>12&63),e[s++]=128|r>>>6&63),e[s++]=128|63&r);return e}(t)},s.utf8decode=function(t){return h.nodebuffer?o.transformTo(\"nodebuffer\",t).toString(\"utf-8\"):function(t){var e,r,i,n,s=t.length,a=new Array(2*s);for(e=r=0;e>10&1023,a[r++]=56320|1023&i)}return a.length!==r&&(a.subarray?a=a.subarray(0,r):a.length=r),o.applyFromCharCode(a)}(t=o.transformTo(h.uint8array?\"uint8array\":\"array\",t))},o.inherits(a,i),a.prototype.processChunk=function(t){var e=o.transformTo(h.uint8array?\"uint8array\":\"array\",t.data);if(this.leftOver&&this.leftOver.length){if(h.uint8array){var r=e;(e=new Uint8Array(r.length+this.leftOver.length)).set(this.leftOver,0),e.set(r,this.leftOver.length)}else e=this.leftOver.concat(e);this.leftOver=null}var i=function(t,e){var r;for((e=e||t.length)>t.length&&(e=t.length),r=e-1;0<=r&&128==(192&t[r]);)r--;return r<0?e:0===r?e:r+u[t[r]]>e?r:e}(e),n=e;i!==e.length&&(h.uint8array?(n=e.subarray(0,i),this.leftOver=e.subarray(i,e.length)):(n=e.slice(0,i),this.leftOver=e.slice(i,e.length))),this.push({data:s.utf8decode(n),meta:t.meta})},a.prototype.flush=function(){this.leftOver&&this.leftOver.length&&(this.push({data:s.utf8decode(this.leftOver),meta:{}}),this.leftOver=null)},s.Utf8DecodeWorker=a,o.inherits(l,i),l.prototype.processChunk=function(t){this.push({data:s.utf8encode(t.data),meta:t.meta})},s.Utf8EncodeWorker=l},{\"./nodejsUtils\":14,\"./stream/GenericWorker\":28,\"./support\":30,\"./utils\":32}],32:[function(t,e,a){\"use strict\";var o=t(\"./support\"),h=t(\"./base64\"),r=t(\"./nodejsUtils\"),i=t(\"set-immediate-shim\"),u=t(\"./external\");function n(t){return t}function l(t,e){for(var r=0;r>8;this.dir=!!(16&this.externalFileAttributes),0==t&&(this.dosPermissions=63&this.externalFileAttributes),3==t&&(this.unixPermissions=this.externalFileAttributes>>16&65535),this.dir||\"/\"!==this.fileNameStr.slice(-1)||(this.dir=!0)},parseZIP64ExtraField:function(t){if(this.extraFields[1]){var e=i(this.extraFields[1].value);this.uncompressedSize===s.MAX_VALUE_32BITS&&(this.uncompressedSize=e.readInt(8)),this.compressedSize===s.MAX_VALUE_32BITS&&(this.compressedSize=e.readInt(8)),this.localHeaderOffset===s.MAX_VALUE_32BITS&&(this.localHeaderOffset=e.readInt(8)),this.diskNumberStart===s.MAX_VALUE_32BITS&&(this.diskNumberStart=e.readInt(4))}},readExtraFields:function(t){var e,r,i,n=t.index+this.extraFieldsLength;for(this.extraFields||(this.extraFields={});t.index>>6:(r<65536?e[s++]=224|r>>>12:(e[s++]=240|r>>>18,e[s++]=128|r>>>12&63),e[s++]=128|r>>>6&63),e[s++]=128|63&r);return e},r.buf2binstring=function(t){return l(t,t.length)},r.binstring2buf=function(t){for(var e=new h.Buf8(t.length),r=0,i=e.length;r>10&1023,o[i++]=56320|1023&n)}return l(o,i)},r.utf8border=function(t,e){var r;for((e=e||t.length)>t.length&&(e=t.length),r=e-1;0<=r&&128==(192&t[r]);)r--;return r<0?e:0===r?e:r+u[t[r]]>e?r:e}},{\"./common\":41}],43:[function(t,e,r){\"use strict\";e.exports=function(t,e,r,i){for(var n=65535&t|0,s=t>>>16&65535|0,a=0;0!==r;){for(r-=a=2e3>>1:t>>>1;e[r]=t}return e}();e.exports=function(t,e,r,i){var n=o,s=i+r;t^=-1;for(var a=i;a>>8^n[255&(t^e[a])];return-1^t}},{}],46:[function(t,e,r){\"use strict\";var h,d=t(\"../utils/common\"),u=t(\"./trees\"),c=t(\"./adler32\"),p=t(\"./crc32\"),i=t(\"./messages\"),l=0,f=4,m=0,_=-2,g=-1,b=4,n=2,v=8,y=9,s=286,a=30,o=19,w=2*s+1,k=15,x=3,S=258,z=S+x+1,C=42,E=113,A=1,I=2,O=3,B=4;function R(t,e){return t.msg=i[e],e}function T(t){return(t<<1)-(4t.avail_out&&(r=t.avail_out),0!==r&&(d.arraySet(t.output,e.pending_buf,e.pending_out,r,t.next_out),t.next_out+=r,e.pending_out+=r,t.total_out+=r,t.avail_out-=r,e.pending-=r,0===e.pending&&(e.pending_out=0))}function N(t,e){u._tr_flush_block(t,0<=t.block_start?t.block_start:-1,t.strstart-t.block_start,e),t.block_start=t.strstart,F(t.strm)}function U(t,e){t.pending_buf[t.pending++]=e}function P(t,e){t.pending_buf[t.pending++]=e>>>8&255,t.pending_buf[t.pending++]=255&e}function L(t,e){var r,i,n=t.max_chain_length,s=t.strstart,a=t.prev_length,o=t.nice_match,h=t.strstart>t.w_size-z?t.strstart-(t.w_size-z):0,u=t.window,l=t.w_mask,f=t.prev,d=t.strstart+S,c=u[s+a-1],p=u[s+a];t.prev_length>=t.good_match&&(n>>=2),o>t.lookahead&&(o=t.lookahead);do{if(u[(r=e)+a]===p&&u[r+a-1]===c&&u[r]===u[s]&&u[++r]===u[s+1]){s+=2,r++;do{}while(u[++s]===u[++r]&&u[++s]===u[++r]&&u[++s]===u[++r]&&u[++s]===u[++r]&&u[++s]===u[++r]&&u[++s]===u[++r]&&u[++s]===u[++r]&&u[++s]===u[++r]&&sh&&0!=--n);return a<=t.lookahead?a:t.lookahead}function j(t){var e,r,i,n,s,a,o,h,u,l,f=t.w_size;do{if(n=t.window_size-t.lookahead-t.strstart,t.strstart>=f+(f-z)){for(d.arraySet(t.window,t.window,f,f,0),t.match_start-=f,t.strstart-=f,t.block_start-=f,e=r=t.hash_size;i=t.head[--e],t.head[e]=f<=i?i-f:0,--r;);for(e=r=f;i=t.prev[--e],t.prev[e]=f<=i?i-f:0,--r;);n+=f}if(0===t.strm.avail_in)break;if(a=t.strm,o=t.window,h=t.strstart+t.lookahead,u=n,l=void 0,l=a.avail_in,u=x)for(s=t.strstart-t.insert,t.ins_h=t.window[s],t.ins_h=(t.ins_h<=x&&(t.ins_h=(t.ins_h<=x)if(i=u._tr_tally(t,t.strstart-t.match_start,t.match_length-x),t.lookahead-=t.match_length,t.match_length<=t.max_lazy_match&&t.lookahead>=x){for(t.match_length--;t.strstart++,t.ins_h=(t.ins_h<=x&&(t.ins_h=(t.ins_h<=x&&t.match_length<=t.prev_length){for(n=t.strstart+t.lookahead-x,i=u._tr_tally(t,t.strstart-1-t.prev_match,t.prev_length-x),t.lookahead-=t.prev_length-1,t.prev_length-=2;++t.strstart<=n&&(t.ins_h=(t.ins_h<t.pending_buf_size-5&&(r=t.pending_buf_size-5);;){if(t.lookahead<=1){if(j(t),0===t.lookahead&&e===l)return A;if(0===t.lookahead)break}t.strstart+=t.lookahead,t.lookahead=0;var i=t.block_start+r;if((0===t.strstart||t.strstart>=i)&&(t.lookahead=t.strstart-i,t.strstart=i,N(t,!1),0===t.strm.avail_out))return A;if(t.strstart-t.block_start>=t.w_size-z&&(N(t,!1),0===t.strm.avail_out))return A}return t.insert=0,e===f?(N(t,!0),0===t.strm.avail_out?O:B):(t.strstart>t.block_start&&(N(t,!1),t.strm.avail_out),A)}),new M(4,4,8,4,Z),new M(4,5,16,8,Z),new M(4,6,32,32,Z),new M(4,4,16,16,W),new M(8,16,32,32,W),new M(8,16,128,128,W),new M(8,32,128,256,W),new M(32,128,258,1024,W),new M(32,258,258,4096,W)],r.deflateInit=function(t,e){return Y(t,e,v,15,8,0)},r.deflateInit2=Y,r.deflateReset=K,r.deflateResetKeep=G,r.deflateSetHeader=function(t,e){return t&&t.state?2!==t.state.wrap?_:(t.state.gzhead=e,m):_},r.deflate=function(t,e){var r,i,n,s;if(!t||!t.state||5>8&255),U(i,i.gzhead.time>>16&255),U(i,i.gzhead.time>>24&255),U(i,9===i.level?2:2<=i.strategy||i.level<2?4:0),U(i,255&i.gzhead.os),i.gzhead.extra&&i.gzhead.extra.length&&(U(i,255&i.gzhead.extra.length),U(i,i.gzhead.extra.length>>8&255)),i.gzhead.hcrc&&(t.adler=p(t.adler,i.pending_buf,i.pending,0)),i.gzindex=0,i.status=69):(U(i,0),U(i,0),U(i,0),U(i,0),U(i,0),U(i,9===i.level?2:2<=i.strategy||i.level<2?4:0),U(i,3),i.status=E);else{var a=v+(i.w_bits-8<<4)<<8;a|=(2<=i.strategy||i.level<2?0:i.level<6?1:6===i.level?2:3)<<6,0!==i.strstart&&(a|=32),a+=31-a%31,i.status=E,P(i,a),0!==i.strstart&&(P(i,t.adler>>>16),P(i,65535&t.adler)),t.adler=1}if(69===i.status)if(i.gzhead.extra){for(n=i.pending;i.gzindex<(65535&i.gzhead.extra.length)&&(i.pending!==i.pending_buf_size||(i.gzhead.hcrc&&i.pending>n&&(t.adler=p(t.adler,i.pending_buf,i.pending-n,n)),F(t),n=i.pending,i.pending!==i.pending_buf_size));)U(i,255&i.gzhead.extra[i.gzindex]),i.gzindex++;i.gzhead.hcrc&&i.pending>n&&(t.adler=p(t.adler,i.pending_buf,i.pending-n,n)),i.gzindex===i.gzhead.extra.length&&(i.gzindex=0,i.status=73)}else i.status=73;if(73===i.status)if(i.gzhead.name){n=i.pending;do{if(i.pending===i.pending_buf_size&&(i.gzhead.hcrc&&i.pending>n&&(t.adler=p(t.adler,i.pending_buf,i.pending-n,n)),F(t),n=i.pending,i.pending===i.pending_buf_size)){s=1;break}s=i.gzindexn&&(t.adler=p(t.adler,i.pending_buf,i.pending-n,n)),0===s&&(i.gzindex=0,i.status=91)}else i.status=91;if(91===i.status)if(i.gzhead.comment){n=i.pending;do{if(i.pending===i.pending_buf_size&&(i.gzhead.hcrc&&i.pending>n&&(t.adler=p(t.adler,i.pending_buf,i.pending-n,n)),F(t),n=i.pending,i.pending===i.pending_buf_size)){s=1;break}s=i.gzindexn&&(t.adler=p(t.adler,i.pending_buf,i.pending-n,n)),0===s&&(i.status=103)}else i.status=103;if(103===i.status&&(i.gzhead.hcrc?(i.pending+2>i.pending_buf_size&&F(t),i.pending+2<=i.pending_buf_size&&(U(i,255&t.adler),U(i,t.adler>>8&255),t.adler=0,i.status=E)):i.status=E),0!==i.pending){if(F(t),0===t.avail_out)return i.last_flush=-1,m}else if(0===t.avail_in&&T(e)<=T(r)&&e!==f)return R(t,-5);if(666===i.status&&0!==t.avail_in)return R(t,-5);if(0!==t.avail_in||0!==i.lookahead||e!==l&&666!==i.status){var o=2===i.strategy?function(t,e){for(var r;;){if(0===t.lookahead&&(j(t),0===t.lookahead)){if(e===l)return A;break}if(t.match_length=0,r=u._tr_tally(t,0,t.window[t.strstart]),t.lookahead--,t.strstart++,r&&(N(t,!1),0===t.strm.avail_out))return A}return t.insert=0,e===f?(N(t,!0),0===t.strm.avail_out?O:B):t.last_lit&&(N(t,!1),0===t.strm.avail_out)?A:I}(i,e):3===i.strategy?function(t,e){for(var r,i,n,s,a=t.window;;){if(t.lookahead<=S){if(j(t),t.lookahead<=S&&e===l)return A;if(0===t.lookahead)break}if(t.match_length=0,t.lookahead>=x&&0t.lookahead&&(t.match_length=t.lookahead)}if(t.match_length>=x?(r=u._tr_tally(t,1,t.match_length-x),t.lookahead-=t.match_length,t.strstart+=t.match_length,t.match_length=0):(r=u._tr_tally(t,0,t.window[t.strstart]),t.lookahead--,t.strstart++),r&&(N(t,!1),0===t.strm.avail_out))return A}return t.insert=0,e===f?(N(t,!0),0===t.strm.avail_out?O:B):t.last_lit&&(N(t,!1),0===t.strm.avail_out)?A:I}(i,e):h[i.level].func(i,e);if(o!==O&&o!==B||(i.status=666),o===A||o===O)return 0===t.avail_out&&(i.last_flush=-1),m;if(o===I&&(1===e?u._tr_align(i):5!==e&&(u._tr_stored_block(i,0,0,!1),3===e&&(D(i.head),0===i.lookahead&&(i.strstart=0,i.block_start=0,i.insert=0))),F(t),0===t.avail_out))return i.last_flush=-1,m}return e!==f?m:i.wrap<=0?1:(2===i.wrap?(U(i,255&t.adler),U(i,t.adler>>8&255),U(i,t.adler>>16&255),U(i,t.adler>>24&255),U(i,255&t.total_in),U(i,t.total_in>>8&255),U(i,t.total_in>>16&255),U(i,t.total_in>>24&255)):(P(i,t.adler>>>16),P(i,65535&t.adler)),F(t),0=r.w_size&&(0===s&&(D(r.head),r.strstart=0,r.block_start=0,r.insert=0),u=new d.Buf8(r.w_size),d.arraySet(u,e,l-r.w_size,r.w_size,0),e=u,l=r.w_size),a=t.avail_in,o=t.next_in,h=t.input,t.avail_in=l,t.next_in=0,t.input=e,j(r);r.lookahead>=x;){for(i=r.strstart,n=r.lookahead-(x-1);r.ins_h=(r.ins_h<>>=y=v>>>24,p-=y,0===(y=v>>>16&255))C[s++]=65535&v;else{if(!(16&y)){if(0==(64&y)){v=m[(65535&v)+(c&(1<>>=y,p-=y),p<15&&(c+=z[i++]<>>=y=v>>>24,p-=y,!(16&(y=v>>>16&255))){if(0==(64&y)){v=_[(65535&v)+(c&(1<>>=y,p-=y,(y=s-a)>3,c&=(1<<(p-=w<<3))-1,t.next_in=i,t.next_out=s,t.avail_in=i>>24&255)+(t>>>8&65280)+((65280&t)<<8)+((255&t)<<24)}function s(){this.mode=0,this.last=!1,this.wrap=0,this.havedict=!1,this.flags=0,this.dmax=0,this.check=0,this.total=0,this.head=null,this.wbits=0,this.wsize=0,this.whave=0,this.wnext=0,this.window=null,this.hold=0,this.bits=0,this.length=0,this.offset=0,this.extra=0,this.lencode=null,this.distcode=null,this.lenbits=0,this.distbits=0,this.ncode=0,this.nlen=0,this.ndist=0,this.have=0,this.next=null,this.lens=new I.Buf16(320),this.work=new I.Buf16(288),this.lendyn=null,this.distdyn=null,this.sane=0,this.back=0,this.was=0}function a(t){var e;return t&&t.state?(e=t.state,t.total_in=t.total_out=e.total=0,t.msg=\"\",e.wrap&&(t.adler=1&e.wrap),e.mode=P,e.last=0,e.havedict=0,e.dmax=32768,e.head=null,e.hold=0,e.bits=0,e.lencode=e.lendyn=new I.Buf32(i),e.distcode=e.distdyn=new I.Buf32(n),e.sane=1,e.back=-1,N):U}function o(t){var e;return t&&t.state?((e=t.state).wsize=0,e.whave=0,e.wnext=0,a(t)):U}function h(t,e){var r,i;return t&&t.state?(i=t.state,e<0?(r=0,e=-e):(r=1+(e>>4),e<48&&(e&=15)),e&&(e<8||15=s.wsize?(I.arraySet(s.window,e,r-s.wsize,s.wsize,0),s.wnext=0,s.whave=s.wsize):(i<(n=s.wsize-s.wnext)&&(n=i),I.arraySet(s.window,e,r-i,n,s.wnext),(i-=n)?(I.arraySet(s.window,e,r-i,i,0),s.wnext=i,s.whave=s.wsize):(s.wnext+=n,s.wnext===s.wsize&&(s.wnext=0),s.whave>>8&255,r.check=B(r.check,E,2,0),l=u=0,r.mode=2;break}if(r.flags=0,r.head&&(r.head.done=!1),!(1&r.wrap)||(((255&u)<<8)+(u>>8))%31){t.msg=\"incorrect header check\",r.mode=30;break}if(8!=(15&u)){t.msg=\"unknown compression method\",r.mode=30;break}if(l-=4,k=8+(15&(u>>>=4)),0===r.wbits)r.wbits=k;else if(k>r.wbits){t.msg=\"invalid window size\",r.mode=30;break}r.dmax=1<>8&1),512&r.flags&&(E[0]=255&u,E[1]=u>>>8&255,r.check=B(r.check,E,2,0)),l=u=0,r.mode=3;case 3:for(;l<32;){if(0===o)break t;o--,u+=i[s++]<>>8&255,E[2]=u>>>16&255,E[3]=u>>>24&255,r.check=B(r.check,E,4,0)),l=u=0,r.mode=4;case 4:for(;l<16;){if(0===o)break t;o--,u+=i[s++]<>8),512&r.flags&&(E[0]=255&u,E[1]=u>>>8&255,r.check=B(r.check,E,2,0)),l=u=0,r.mode=5;case 5:if(1024&r.flags){for(;l<16;){if(0===o)break t;o--,u+=i[s++]<>>8&255,r.check=B(r.check,E,2,0)),l=u=0}else r.head&&(r.head.extra=null);r.mode=6;case 6:if(1024&r.flags&&(o<(c=r.length)&&(c=o),c&&(r.head&&(k=r.head.extra_len-r.length,r.head.extra||(r.head.extra=new Array(r.head.extra_len)),I.arraySet(r.head.extra,i,s,c,k)),512&r.flags&&(r.check=B(r.check,i,c,s)),o-=c,s+=c,r.length-=c),r.length))break t;r.length=0,r.mode=7;case 7:if(2048&r.flags){if(0===o)break t;for(c=0;k=i[s+c++],r.head&&k&&r.length<65536&&(r.head.name+=String.fromCharCode(k)),k&&c>9&1,r.head.done=!0),t.adler=r.check=0,r.mode=12;break;case 10:for(;l<32;){if(0===o)break t;o--,u+=i[s++]<>>=7&l,l-=7&l,r.mode=27;break}for(;l<3;){if(0===o)break t;o--,u+=i[s++]<>>=1)){case 0:r.mode=14;break;case 1:if(j(r),r.mode=20,6!==e)break;u>>>=2,l-=2;break t;case 2:r.mode=17;break;case 3:t.msg=\"invalid block type\",r.mode=30}u>>>=2,l-=2;break;case 14:for(u>>>=7&l,l-=7&l;l<32;){if(0===o)break t;o--,u+=i[s++]<>>16^65535)){t.msg=\"invalid stored block lengths\",r.mode=30;break}if(r.length=65535&u,l=u=0,r.mode=15,6===e)break t;case 15:r.mode=16;case 16:if(c=r.length){if(o>>=5,l-=5,r.ndist=1+(31&u),u>>>=5,l-=5,r.ncode=4+(15&u),u>>>=4,l-=4,286>>=3,l-=3}for(;r.have<19;)r.lens[A[r.have++]]=0;if(r.lencode=r.lendyn,r.lenbits=7,S={bits:r.lenbits},x=T(0,r.lens,0,19,r.lencode,0,r.work,S),r.lenbits=S.bits,x){t.msg=\"invalid code lengths set\",r.mode=30;break}r.have=0,r.mode=19;case 19:for(;r.have>>16&255,b=65535&C,!((_=C>>>24)<=l);){if(0===o)break t;o--,u+=i[s++]<>>=_,l-=_,r.lens[r.have++]=b;else{if(16===b){for(z=_+2;l>>=_,l-=_,0===r.have){t.msg=\"invalid bit length repeat\",r.mode=30;break}k=r.lens[r.have-1],c=3+(3&u),u>>>=2,l-=2}else if(17===b){for(z=_+3;l>>=_)),u>>>=3,l-=3}else{for(z=_+7;l>>=_)),u>>>=7,l-=7}if(r.have+c>r.nlen+r.ndist){t.msg=\"invalid bit length repeat\",r.mode=30;break}for(;c--;)r.lens[r.have++]=k}}if(30===r.mode)break;if(0===r.lens[256]){t.msg=\"invalid code -- missing end-of-block\",r.mode=30;break}if(r.lenbits=9,S={bits:r.lenbits},x=T(D,r.lens,0,r.nlen,r.lencode,0,r.work,S),r.lenbits=S.bits,x){t.msg=\"invalid literal/lengths set\",r.mode=30;break}if(r.distbits=6,r.distcode=r.distdyn,S={bits:r.distbits},x=T(F,r.lens,r.nlen,r.ndist,r.distcode,0,r.work,S),r.distbits=S.bits,x){t.msg=\"invalid distances set\",r.mode=30;break}if(r.mode=20,6===e)break t;case 20:r.mode=21;case 21:if(6<=o&&258<=h){t.next_out=a,t.avail_out=h,t.next_in=s,t.avail_in=o,r.hold=u,r.bits=l,R(t,d),a=t.next_out,n=t.output,h=t.avail_out,s=t.next_in,i=t.input,o=t.avail_in,u=r.hold,l=r.bits,12===r.mode&&(r.back=-1);break}for(r.back=0;g=(C=r.lencode[u&(1<>>16&255,b=65535&C,!((_=C>>>24)<=l);){if(0===o)break t;o--,u+=i[s++]<>v)])>>>16&255,b=65535&C,!(v+(_=C>>>24)<=l);){if(0===o)break t;o--,u+=i[s++]<>>=v,l-=v,r.back+=v}if(u>>>=_,l-=_,r.back+=_,r.length=b,0===g){r.mode=26;break}if(32&g){r.back=-1,r.mode=12;break}if(64&g){t.msg=\"invalid literal/length code\",r.mode=30;break}r.extra=15&g,r.mode=22;case 22:if(r.extra){for(z=r.extra;l>>=r.extra,l-=r.extra,r.back+=r.extra}r.was=r.length,r.mode=23;case 23:for(;g=(C=r.distcode[u&(1<>>16&255,b=65535&C,!((_=C>>>24)<=l);){if(0===o)break t;o--,u+=i[s++]<>v)])>>>16&255,b=65535&C,!(v+(_=C>>>24)<=l);){if(0===o)break t;o--,u+=i[s++]<>>=v,l-=v,r.back+=v}if(u>>>=_,l-=_,r.back+=_,64&g){t.msg=\"invalid distance code\",r.mode=30;break}r.offset=b,r.extra=15&g,r.mode=24;case 24:if(r.extra){for(z=r.extra;l>>=r.extra,l-=r.extra,r.back+=r.extra}if(r.offset>r.dmax){t.msg=\"invalid distance too far back\",r.mode=30;break}r.mode=25;case 25:if(0===h)break t;if(c=d-h,r.offset>c){if((c=r.offset-c)>r.whave&&r.sane){t.msg=\"invalid distance too far back\",r.mode=30;break}p=c>r.wnext?(c-=r.wnext,r.wsize-c):r.wnext-c,c>r.length&&(c=r.length),m=r.window}else m=n,p=a-r.offset,c=r.length;for(hc?(m=R[T+a[v]],A[I+a[v]]):(m=96,0),h=1<>S)+(u-=h)]=p<<24|m<<16|_|0,0!==u;);for(h=1<>=1;if(0!==h?(E&=h-1,E+=h):E=0,v++,0==--O[b]){if(b===w)break;b=e[r+a[v]]}if(k>>7)]}function U(t,e){t.pending_buf[t.pending++]=255&e,t.pending_buf[t.pending++]=e>>>8&255}function P(t,e,r){t.bi_valid>c-r?(t.bi_buf|=e<>c-t.bi_valid,t.bi_valid+=r-c):(t.bi_buf|=e<>>=1,r<<=1,0<--e;);return r>>>1}function Z(t,e,r){var i,n,s=new Array(g+1),a=0;for(i=1;i<=g;i++)s[i]=a=a+r[i-1]<<1;for(n=0;n<=e;n++){var o=t[2*n+1];0!==o&&(t[2*n]=j(s[o]++,o))}}function W(t){var e;for(e=0;e>1;1<=r;r--)G(t,s,r);for(n=h;r=t.heap[1],t.heap[1]=t.heap[t.heap_len--],G(t,s,1),i=t.heap[1],t.heap[--t.heap_max]=r,t.heap[--t.heap_max]=i,s[2*n]=s[2*r]+s[2*i],t.depth[n]=(t.depth[r]>=t.depth[i]?t.depth[r]:t.depth[i])+1,s[2*r+1]=s[2*i+1]=n,t.heap[1]=n++,G(t,s,1),2<=t.heap_len;);t.heap[--t.heap_max]=t.heap[1],function(t,e){var r,i,n,s,a,o,h=e.dyn_tree,u=e.max_code,l=e.stat_desc.static_tree,f=e.stat_desc.has_stree,d=e.stat_desc.extra_bits,c=e.stat_desc.extra_base,p=e.stat_desc.max_length,m=0;for(s=0;s<=g;s++)t.bl_count[s]=0;for(h[2*t.heap[t.heap_max]+1]=0,r=t.heap_max+1;r<_;r++)p<(s=h[2*h[2*(i=t.heap[r])+1]+1]+1)&&(s=p,m++),h[2*i+1]=s,u>=7;i>>=1)if(1&r&&0!==t.dyn_ltree[2*e])return o;if(0!==t.dyn_ltree[18]||0!==t.dyn_ltree[20]||0!==t.dyn_ltree[26])return h;for(e=32;e>>3,(s=t.static_len+3+7>>>3)<=n&&(n=s)):n=s=r+5,r+4<=n&&-1!==e?J(t,e,r,i):4===t.strategy||s===n?(P(t,2+(i?1:0),3),K(t,z,C)):(P(t,4+(i?1:0),3),function(t,e,r,i){var n;for(P(t,e-257,5),P(t,r-1,5),P(t,i-4,4),n=0;n>>8&255,t.pending_buf[t.d_buf+2*t.last_lit+1]=255&e,t.pending_buf[t.l_buf+t.last_lit]=255&r,t.last_lit++,0===e?t.dyn_ltree[2*r]++:(t.matches++,e--,t.dyn_ltree[2*(A[r]+u+1)]++,t.dyn_dtree[2*N(e)]++),t.last_lit===t.lit_bufsize-1},r._tr_align=function(t){P(t,2,3),L(t,m,z),function(t){16===t.bi_valid?(U(t,t.bi_buf),t.bi_buf=0,t.bi_valid=0):8<=t.bi_valid&&(t.pending_buf[t.pending++]=255&t.bi_buf,t.bi_buf>>=8,t.bi_valid-=8)}(t)}},{\"../utils/common\":41}],53:[function(t,e,r){\"use strict\";e.exports=function(){this.input=null,this.next_in=0,this.avail_in=0,this.total_in=0,this.output=null,this.next_out=0,this.avail_out=0,this.total_out=0,this.msg=\"\",this.state=null,this.data_type=2,this.adler=0}},{}],54:[function(t,e,r){\"use strict\";e.exports=\"function\"==typeof setImmediate?setImmediate:function(){var t=[].slice.apply(arguments);t.splice(1,0,0),setTimeout.apply(null,t)}},{}]},{},[10])(10)});","import { __decorate, __param, __metadata, __read } from 'tslib';\nimport { InjectionToken, Injectable, Inject, PLATFORM_ID, Optional, Input, HostBinding, Output, Component, ElementRef, NgZone, EventEmitter, NgModule, HostListener, Directive, forwardRef } from '@angular/core';\nimport { isPlatformBrowser } from '@angular/common';\nimport { BehaviorSubject, of, Subject } from 'rxjs';\nimport { NG_VALUE_ACCESSOR, FormsModule } from '@angular/forms';\n\nvar RECAPTCHA_LANGUAGE = new InjectionToken('recaptcha-language');\nvar RECAPTCHA_BASE_URL = new InjectionToken('recaptcha-base-url');\nvar RECAPTCHA_NONCE = new InjectionToken('recaptcha-nonce-tag');\nfunction loadScript(renderMode, onLoaded, urlParams, url, nonce) {\n window.ng2recaptchaloaded = function () {\n onLoaded(grecaptcha);\n };\n var script = document.createElement('script');\n script.innerHTML = '';\n var baseUrl = url || 'https://www.google.com/recaptcha/api.js';\n script.src = baseUrl + \"?render=\" + renderMode + \"&onload=ng2recaptchaloaded\" + urlParams;\n if (nonce) {\n // tslint:disable-next-line:no-any Remove \"any\" cast once we upgrade Angular to 7 and TypeScript along with it\n script.nonce = nonce;\n }\n script.async = true;\n script.defer = true;\n document.head.appendChild(script);\n}\nvar RecaptchaLoaderService = /** @class */ (function () {\n function RecaptchaLoaderService(\n // tslint:disable-next-line:no-any\n platformId, language, baseUrl, nonce) {\n this.platformId = platformId;\n this.language = language;\n this.baseUrl = baseUrl;\n this.nonce = nonce;\n this.init();\n this.ready = isPlatformBrowser(this.platformId) ? RecaptchaLoaderService_1.ready.asObservable() : of();\n }\n RecaptchaLoaderService_1 = RecaptchaLoaderService;\n /** @internal */\n RecaptchaLoaderService.prototype.init = function () {\n if (RecaptchaLoaderService_1.ready) {\n return;\n }\n if (isPlatformBrowser(this.platformId)) {\n var subject_1 = new BehaviorSubject(null);\n RecaptchaLoaderService_1.ready = subject_1;\n var langParam = this.language ? '&hl=' + this.language : '';\n loadScript('explicit', function (grecaptcha) { return subject_1.next(grecaptcha); }, langParam, this.baseUrl, this.nonce);\n }\n };\n /**\n * @internal\n * @nocollapse\n */\n RecaptchaLoaderService.ready = null;\n RecaptchaLoaderService = RecaptchaLoaderService_1 = __decorate([\n Injectable(),\n __param(0, Inject(PLATFORM_ID)),\n __param(1, Optional()), __param(1, Inject(RECAPTCHA_LANGUAGE)),\n __param(2, Optional()), __param(2, Inject(RECAPTCHA_BASE_URL)),\n __param(3, Optional()), __param(3, Inject(RECAPTCHA_NONCE)),\n __metadata(\"design:paramtypes\", [Object, String, String, String])\n ], RecaptchaLoaderService);\n return RecaptchaLoaderService;\n var RecaptchaLoaderService_1;\n}());\n\nvar RECAPTCHA_SETTINGS = new InjectionToken('recaptcha-settings');\n\nvar nextId = 0;\nvar RecaptchaComponent = /** @class */ (function () {\n function RecaptchaComponent(elementRef, loader, zone, settings) {\n this.elementRef = elementRef;\n this.loader = loader;\n this.zone = zone;\n this.id = \"ngrecaptcha-\" + nextId++;\n this.resolved = new EventEmitter();\n if (settings) {\n this.siteKey = settings.siteKey;\n this.theme = settings.theme;\n this.type = settings.type;\n this.size = settings.size;\n this.badge = settings.badge;\n }\n }\n RecaptchaComponent.prototype.ngAfterViewInit = function () {\n var _this = this;\n this.subscription = this.loader.ready.subscribe(function (grecaptcha) {\n if (grecaptcha != null && grecaptcha.render instanceof Function) {\n _this.grecaptcha = grecaptcha;\n _this.renderRecaptcha();\n }\n });\n };\n RecaptchaComponent.prototype.ngOnDestroy = function () {\n // reset the captcha to ensure it does not leave anything behind\n // after the component is no longer needed\n this.grecaptchaReset();\n if (this.subscription) {\n this.subscription.unsubscribe();\n }\n };\n /**\n * Executes the invisible recaptcha.\n * Does nothing if component's size is not set to \"invisible\".\n */\n RecaptchaComponent.prototype.execute = function () {\n if (this.size !== 'invisible') {\n return;\n }\n if (this.widget != null) {\n this.grecaptcha.execute(this.widget);\n }\n else {\n // delay execution of recaptcha until it actually renders\n this.executeRequested = true;\n }\n };\n RecaptchaComponent.prototype.reset = function () {\n if (this.widget != null) {\n if (this.grecaptcha.getResponse(this.widget)) {\n // Only emit an event in case if something would actually change.\n // That way we do not trigger \"touching\" of the control if someone does a \"reset\"\n // on a non-resolved captcha.\n this.resolved.emit(null);\n }\n this.grecaptchaReset();\n }\n };\n /** @internal */\n RecaptchaComponent.prototype.expired = function () {\n this.resolved.emit(null);\n };\n /** @internal */\n RecaptchaComponent.prototype.captchaResponseCallback = function (response) {\n this.resolved.emit(response);\n };\n /** @internal */\n RecaptchaComponent.prototype.grecaptchaReset = function () {\n var _this = this;\n if (this.widget != null) {\n this.zone.runOutsideAngular(function () { return _this.grecaptcha.reset(_this.widget); });\n }\n };\n /** @internal */\n RecaptchaComponent.prototype.renderRecaptcha = function () {\n var _this = this;\n this.widget = this.grecaptcha.render(this.elementRef.nativeElement, {\n badge: this.badge,\n callback: function (response) {\n _this.zone.run(function () { return _this.captchaResponseCallback(response); });\n },\n 'expired-callback': function () {\n _this.zone.run(function () { return _this.expired(); });\n },\n sitekey: this.siteKey,\n size: this.size,\n tabindex: this.tabIndex,\n theme: this.theme,\n type: this.type,\n });\n if (this.executeRequested === true) {\n this.executeRequested = false;\n this.execute();\n }\n };\n __decorate([\n Input(),\n HostBinding('attr.id'),\n __metadata(\"design:type\", Object)\n ], RecaptchaComponent.prototype, \"id\", void 0);\n __decorate([\n Input(),\n __metadata(\"design:type\", String)\n ], RecaptchaComponent.prototype, \"siteKey\", void 0);\n __decorate([\n Input(),\n __metadata(\"design:type\", String)\n ], RecaptchaComponent.prototype, \"theme\", void 0);\n __decorate([\n Input(),\n __metadata(\"design:type\", String)\n ], RecaptchaComponent.prototype, \"type\", void 0);\n __decorate([\n Input(),\n __metadata(\"design:type\", String)\n ], RecaptchaComponent.prototype, \"size\", void 0);\n __decorate([\n Input(),\n __metadata(\"design:type\", Number)\n ], RecaptchaComponent.prototype, \"tabIndex\", void 0);\n __decorate([\n Input(),\n __metadata(\"design:type\", String)\n ], RecaptchaComponent.prototype, \"badge\", void 0);\n __decorate([\n Output(),\n __metadata(\"design:type\", Object)\n ], RecaptchaComponent.prototype, \"resolved\", void 0);\n RecaptchaComponent = __decorate([\n Component({\n exportAs: 'reCaptcha',\n selector: 're-captcha',\n template: \"\"\n }),\n __param(3, Optional()), __param(3, Inject(RECAPTCHA_SETTINGS)),\n __metadata(\"design:paramtypes\", [ElementRef,\n RecaptchaLoaderService,\n NgZone, Object])\n ], RecaptchaComponent);\n return RecaptchaComponent;\n}());\n\nvar RecaptchaCommonModule = /** @class */ (function () {\n function RecaptchaCommonModule() {\n }\n RecaptchaCommonModule = __decorate([\n NgModule({\n declarations: [\n RecaptchaComponent,\n ],\n exports: [\n RecaptchaComponent,\n ],\n })\n ], RecaptchaCommonModule);\n return RecaptchaCommonModule;\n}());\n\nvar RecaptchaModule = /** @class */ (function () {\n function RecaptchaModule() {\n }\n RecaptchaModule_1 = RecaptchaModule;\n // We need this to maintain backwards-compatibility with v4. Removing this will be a breaking change\n RecaptchaModule.forRoot = function () {\n return RecaptchaModule_1;\n };\n RecaptchaModule = RecaptchaModule_1 = __decorate([\n NgModule({\n exports: [\n RecaptchaComponent,\n ],\n imports: [\n RecaptchaCommonModule,\n ],\n providers: [\n RecaptchaLoaderService,\n ],\n })\n ], RecaptchaModule);\n return RecaptchaModule;\n var RecaptchaModule_1;\n}());\n\nvar RECAPTCHA_V3_SITE_KEY = new InjectionToken('recaptcha-v3-site-key');\n/**\n * The main service for working with reCAPTCHA v3 APIs.\n *\n * Use the `execute` method for executing a single action, and\n * `onExecute` observable for listening to all actions at once.\n */\nvar ReCaptchaV3Service = /** @class */ (function () {\n function ReCaptchaV3Service(zone, siteKey, \n // tslint:disable-next-line:no-any\n platformId, baseUrl, nonce) {\n var _this = this;\n /** @internal */\n this.onLoadComplete = function (grecaptcha) {\n _this.grecaptcha = grecaptcha;\n if (_this.actionBacklog && _this.actionBacklog.length > 0) {\n _this.actionBacklog.forEach(function (_a) {\n var _b = __read(_a, 2), action = _b[0], subject = _b[1];\n return _this.executeActionWithSubject(action, subject);\n });\n _this.actionBacklog = undefined;\n }\n };\n this.zone = zone;\n this.isBrowser = isPlatformBrowser(platformId);\n this.siteKey = siteKey;\n this.nonce = nonce;\n this.baseUrl = baseUrl;\n this.init();\n }\n Object.defineProperty(ReCaptchaV3Service.prototype, \"onExecute\", {\n get: function () {\n if (!this.onExecuteSubject) {\n this.onExecuteSubject = new Subject();\n this.onExecuteObservable = this.onExecuteSubject.asObservable();\n }\n return this.onExecuteObservable;\n },\n enumerable: true,\n configurable: true\n });\n /**\n * Executes the provided `action` with reCAPTCHA v3 API.\n * Use the emitted token value for verification purposes on the backend.\n *\n * For more information about reCAPTCHA v3 actions and tokens refer to the official documentation at\n * https://developers.google.com/recaptcha/docs/v3.\n *\n * @param {string} action the action to execute\n * @returns {Observable} an `Observable` that will emit the reCAPTCHA v3 string `token` value whenever ready.\n * The returned `Observable` completes immediately after emitting a value.\n */\n ReCaptchaV3Service.prototype.execute = function (action) {\n var subject = new Subject();\n if (this.isBrowser) {\n if (!this.grecaptcha) {\n // todo: add to array of later executions\n if (!this.actionBacklog) {\n this.actionBacklog = [];\n }\n this.actionBacklog.push([action, subject]);\n }\n else {\n this.executeActionWithSubject(action, subject);\n }\n }\n return subject.asObservable();\n };\n /** @internal */\n ReCaptchaV3Service.prototype.executeActionWithSubject = function (action, subject) {\n var _this = this;\n this.zone.runOutsideAngular(function () {\n // tslint:disable-next-line:no-any\n _this.grecaptcha.execute(_this.siteKey, { action: action }).then(function (token) {\n _this.zone.run(function () {\n subject.next(token);\n subject.complete();\n if (_this.onExecuteSubject) {\n _this.onExecuteSubject.next({ action: action, token: token });\n }\n });\n });\n });\n };\n /** @internal */\n ReCaptchaV3Service.prototype.init = function () {\n if (this.isBrowser) {\n if ('grecaptcha' in window) {\n this.grecaptcha = grecaptcha;\n }\n else {\n loadScript(this.siteKey, this.onLoadComplete, '', this.baseUrl, this.nonce);\n }\n }\n };\n ReCaptchaV3Service = __decorate([\n Injectable(),\n __param(1, Inject(RECAPTCHA_V3_SITE_KEY)),\n __param(2, Inject(PLATFORM_ID)),\n __param(3, Optional()), __param(3, Inject(RECAPTCHA_BASE_URL)),\n __param(4, Optional()), __param(4, Inject(RECAPTCHA_NONCE)),\n __metadata(\"design:paramtypes\", [NgZone, String, Object, String, String])\n ], ReCaptchaV3Service);\n return ReCaptchaV3Service;\n}());\n\nvar RecaptchaV3Module = /** @class */ (function () {\n function RecaptchaV3Module() {\n }\n RecaptchaV3Module = __decorate([\n NgModule({\n providers: [\n ReCaptchaV3Service,\n ],\n })\n ], RecaptchaV3Module);\n return RecaptchaV3Module;\n}());\n\nvar RecaptchaValueAccessorDirective = /** @class */ (function () {\n function RecaptchaValueAccessorDirective(host) {\n this.host = host;\n }\n RecaptchaValueAccessorDirective_1 = RecaptchaValueAccessorDirective;\n RecaptchaValueAccessorDirective.prototype.writeValue = function (value) {\n if (!value) {\n this.host.reset();\n }\n };\n RecaptchaValueAccessorDirective.prototype.registerOnChange = function (fn) { this.onChange = fn; };\n RecaptchaValueAccessorDirective.prototype.registerOnTouched = function (fn) { this.onTouched = fn; };\n RecaptchaValueAccessorDirective.prototype.onResolve = function ($event) {\n if (this.onChange) {\n this.onChange($event);\n }\n if (this.onTouched) {\n this.onTouched();\n }\n };\n __decorate([\n HostListener('resolved', ['$event']),\n __metadata(\"design:type\", Function),\n __metadata(\"design:paramtypes\", [String]),\n __metadata(\"design:returntype\", void 0)\n ], RecaptchaValueAccessorDirective.prototype, \"onResolve\", null);\n RecaptchaValueAccessorDirective = RecaptchaValueAccessorDirective_1 = __decorate([\n Directive({\n providers: [\n {\n multi: true,\n provide: NG_VALUE_ACCESSOR,\n // tslint:disable-next-line:no-forward-ref\n useExisting: forwardRef(function () { return RecaptchaValueAccessorDirective_1; }),\n },\n ],\n // tslint:disable-next-line:directive-selector\n selector: 're-captcha[formControlName],re-captcha[formControl],re-captcha[ngModel]',\n }),\n __metadata(\"design:paramtypes\", [RecaptchaComponent])\n ], RecaptchaValueAccessorDirective);\n return RecaptchaValueAccessorDirective;\n var RecaptchaValueAccessorDirective_1;\n}());\n\nvar RecaptchaFormsModule = /** @class */ (function () {\n function RecaptchaFormsModule() {\n }\n RecaptchaFormsModule = __decorate([\n NgModule({\n declarations: [\n RecaptchaValueAccessorDirective,\n ],\n exports: [RecaptchaValueAccessorDirective],\n imports: [FormsModule, RecaptchaCommonModule],\n })\n ], RecaptchaFormsModule);\n return RecaptchaFormsModule;\n}());\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { RECAPTCHA_BASE_URL, RECAPTCHA_LANGUAGE, RECAPTCHA_NONCE, RECAPTCHA_SETTINGS, RECAPTCHA_V3_SITE_KEY, ReCaptchaV3Service, RecaptchaComponent, RecaptchaFormsModule, RecaptchaLoaderService, RecaptchaModule, RecaptchaV3Module, RecaptchaValueAccessorDirective, RecaptchaCommonModule as ɵa };\n//# sourceMappingURL=ng-recaptcha.js.map\n","import { Component, ElementRef, ChangeDetectorRef, Renderer2, Input, ViewChild, HostListener, EventEmitter, Directive, ViewContainerRef, ComponentFactoryResolver, ApplicationRef, Injector, Output, NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\n/**\n * @fileoverview added by tsickle\n * Generated from: lib/popover.placement.ts\n * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\nvar PopoverPlacement = /** @class */ (function () {\n function PopoverPlacement() {\n }\n PopoverPlacement.Bottom = 'bottom';\n PopoverPlacement.BottomLeft = 'bottom-left';\n PopoverPlacement.BottomRight = 'bottom-right';\n PopoverPlacement.Left = 'left';\n PopoverPlacement.Right = 'right';\n PopoverPlacement.Top = 'top';\n PopoverPlacement.TopLeft = 'top-left';\n PopoverPlacement.TopRight = 'top-right';\n return PopoverPlacement;\n}());\n\n/**\n * @fileoverview added by tsickle\n * Generated from: lib/popover-content.component.ts\n * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\nvar PopoverContentComponent = /** @class */ (function () {\n // -------------------------------------------------------------------------\n // Constructor\n // -------------------------------------------------------------------------\n function PopoverContentComponent(element, cdr, renderer) {\n var _this = this;\n this.element = element;\n this.cdr = cdr;\n this.renderer = renderer;\n this.placement = PopoverPlacement.Top;\n this.animation = true;\n this.closeOnClickOutside = false;\n this.closeOnMouseOutside = false;\n this.appendToBody = false;\n this.size = 'small';\n this.onCloseFromOutside = new EventEmitter();\n this.top = -10000;\n this.left = -10000;\n this.isIn = false;\n this.opacity = 0;\n this.transitionEnabled = false;\n this.windowWidth = window.innerWidth;\n this.windowHeight = window.innerHeight;\n // -------------------------------------------------------------------------\n // Anonymous\n // -------------------------------------------------------------------------\n /**\n * Closes dropdown if user clicks outside of this directive.\n */\n this.onDocumentMouseDown = (/**\n * @param {?} event\n * @return {?}\n */\n function (event) {\n /** @type {?} */\n var element = _this.element.nativeElement;\n if (!element || !_this.popover) {\n return;\n }\n if (element.contains(event.target) || _this.popover.getElement().contains(event.target)) {\n return;\n }\n _this.onCloseFromOutside.emit(undefined);\n });\n }\n // -------------------------------------------------------------------------\n // Lifecycle callbacks\n // -------------------------------------------------------------------------\n // -------------------------------------------------------------------------\n // Lifecycle callbacks\n // -------------------------------------------------------------------------\n /**\n * @return {?}\n */\n PopoverContentComponent.prototype.ngAfterViewInit = \n // -------------------------------------------------------------------------\n // Lifecycle callbacks\n // -------------------------------------------------------------------------\n /**\n * @return {?}\n */\n function () {\n var _this = this;\n if (this.closeOnClickOutside) {\n this.listenClickFunc = this.renderer.listen('document', 'mousedown', (/**\n * @param {?} event\n * @return {?}\n */\n function (event) { return _this.onDocumentMouseDown(event); }));\n }\n if (this.closeOnMouseOutside) {\n this.listenMouseFunc = this.renderer.listen('document', 'mouseover', (/**\n * @param {?} event\n * @return {?}\n */\n function (event) { return _this.onDocumentMouseDown(event); }));\n }\n // Always close on mobile touch event outside.\n this.listenTouchFunc = this.renderer.listen('document', 'touchstart', (/**\n * @param {?} event\n * @return {?}\n */\n function (event) { return _this.onDocumentMouseDown(event); }));\n this.show();\n this.cdr.detectChanges();\n };\n /**\n * @return {?}\n */\n PopoverContentComponent.prototype.ngOnDestroy = /**\n * @return {?}\n */\n function () {\n if (this.closeOnClickOutside && this.listenClickFunc) {\n this.listenClickFunc();\n }\n if (this.closeOnMouseOutside && this.listenMouseFunc) {\n this.listenMouseFunc();\n }\n if (!!this.listenTouchFunc) {\n this.listenTouchFunc();\n }\n };\n // -------------------------------------------------------------------------\n // Public Methods\n // -------------------------------------------------------------------------\n // -------------------------------------------------------------------------\n // Public Methods\n // -------------------------------------------------------------------------\n /**\n * @param {?} event\n * @return {?}\n */\n PopoverContentComponent.prototype.onResize = \n // -------------------------------------------------------------------------\n // Public Methods\n // -------------------------------------------------------------------------\n /**\n * @param {?} event\n * @return {?}\n */\n function (event) {\n this.windowWidth = window.innerWidth;\n this.windowHeight = window.innerHeight;\n };\n /**\n * @return {?}\n */\n PopoverContentComponent.prototype.updatePosition = /**\n * @return {?}\n */\n function () {\n // if visible, reposition\n if (this.opacity) {\n /** @type {?} */\n var p = this.positionElements(this.popover.getElement(), this.popoverDiv.nativeElement, this.placement);\n this.top = p.top;\n this.left = p.left;\n }\n };\n /**\n * @return {?}\n */\n PopoverContentComponent.prototype.show = /**\n * @return {?}\n */\n function () {\n if (!this.popover || !this.popover.getElement()) {\n return;\n }\n /** @type {?} */\n var p = this.positionElements(this.popover.getElement(), this.popoverDiv.nativeElement, this.placement);\n this.top = p.top;\n this.left = p.left;\n this.isIn = true;\n this.transitionEnabled = true;\n this.opacity = 1;\n };\n /**\n * @return {?}\n */\n PopoverContentComponent.prototype.hide = /**\n * @return {?}\n */\n function () {\n this.top = -10000;\n this.left = -10000;\n this.isIn = true;\n this.popover.hide();\n };\n /**\n * @return {?}\n */\n PopoverContentComponent.prototype.hideFromPopover = /**\n * @return {?}\n */\n function () {\n this.top = -10000;\n this.left = -10000;\n this.isIn = true;\n this.transitionEnabled = false;\n this.opacity = 0;\n };\n // -------------------------------------------------------------------------\n // Protected Methods\n // -------------------------------------------------------------------------\n // -------------------------------------------------------------------------\n // Protected Methods\n // -------------------------------------------------------------------------\n /**\n * @protected\n * @param {?} hostEl\n * @param {?} targetEl\n * @param {?} positionStr\n * @param {?=} appendToBody\n * @return {?}\n */\n PopoverContentComponent.prototype.positionElements = \n // -------------------------------------------------------------------------\n // Protected Methods\n // -------------------------------------------------------------------------\n /**\n * @protected\n * @param {?} hostEl\n * @param {?} targetEl\n * @param {?} positionStr\n * @param {?=} appendToBody\n * @return {?}\n */\n function (hostEl, targetEl, positionStr, appendToBody) {\n if (appendToBody === void 0) { appendToBody = false; }\n /** @type {?} */\n var positionStrParts = ((/** @type {?} */ (positionStr))).split(' ');\n /** @type {?} */\n var pos0 = positionStrParts[0];\n /** @type {?} */\n var pos1 = positionStrParts[1] || 'center';\n /** @type {?} */\n var hostElPos = this.appendToBody || appendToBody ? this.offset(hostEl) : this.position(hostEl);\n /** @type {?} */\n var targetElWidth = targetEl.offsetWidth;\n /** @type {?} */\n var targetElHeight = targetEl.offsetHeight;\n this.effectivePlacement = pos0 = this.getEffectivePlacement(pos0, hostEl, targetEl);\n /** @type {?} */\n var shiftWidth = {\n center: (/**\n * @return {?}\n */\n function () {\n return hostElPos.left + hostElPos.width / 2 - targetElWidth / 2;\n }),\n left: (/**\n * @return {?}\n */\n function () {\n return hostElPos.left;\n }),\n right: (/**\n * @return {?}\n */\n function () {\n return hostElPos.left + hostElPos.width;\n }),\n topOrBottomRight: (/**\n * @return {?}\n */\n function () {\n return hostElPos.left + hostElPos.width / 2;\n }),\n topOrBottomLeft: (/**\n * @return {?}\n */\n function () {\n return hostElPos.left - targetElWidth + hostElPos.width / 2;\n })\n };\n /** @type {?} */\n var shiftHeight = {\n center: (/**\n * @return {?}\n */\n function () {\n return hostElPos.top + hostElPos.height / 2 - targetElHeight / 2;\n }),\n top: (/**\n * @return {?}\n */\n function () {\n return hostElPos.top;\n }),\n bottom: (/**\n * @return {?}\n */\n function () {\n return hostElPos.top + hostElPos.height;\n })\n };\n /** @type {?} */\n var targetElPos;\n switch (pos0) {\n case PopoverPlacement.Right:\n targetElPos = {\n top: shiftHeight[pos1](),\n left: shiftWidth[pos0]()\n };\n break;\n case PopoverPlacement.Left:\n targetElPos = {\n top: shiftHeight[pos1](),\n left: hostElPos.left - targetElWidth\n };\n break;\n case PopoverPlacement.Bottom:\n targetElPos = {\n top: shiftHeight[pos0](),\n left: shiftWidth[pos1]()\n };\n break;\n case PopoverPlacement.TopLeft:\n targetElPos = {\n top: hostElPos.top - targetElHeight,\n left: shiftWidth['topOrBottomLeft']()\n };\n break;\n case PopoverPlacement.TopRight:\n targetElPos = {\n top: hostElPos.top - targetElHeight,\n left: shiftWidth['topOrBottomRight']()\n };\n break;\n case PopoverPlacement.BottomLeft:\n targetElPos = {\n top: shiftHeight[PopoverPlacement.Bottom](),\n left: shiftWidth['topOrBottomLeft']()\n };\n break;\n case PopoverPlacement.BottomRight:\n targetElPos = {\n top: shiftHeight[PopoverPlacement.Bottom](),\n left: shiftWidth['topOrBottomRight']()\n };\n break;\n default:\n targetElPos = {\n top: hostElPos.top - targetElHeight,\n left: shiftWidth[pos1]()\n };\n break;\n }\n return targetElPos;\n };\n /**\n * @protected\n * @param {?} nativeEl\n * @return {?}\n */\n PopoverContentComponent.prototype.position = /**\n * @protected\n * @param {?} nativeEl\n * @return {?}\n */\n function (nativeEl) {\n /** @type {?} */\n var offsetParentBCR = { top: 0, left: 0 };\n /** @type {?} */\n var elBCR = this.offset(nativeEl);\n /** @type {?} */\n var offsetParentEl = this.parentOffsetEl(nativeEl);\n if (offsetParentEl !== window.document) {\n offsetParentBCR = this.offset(offsetParentEl);\n offsetParentBCR.top += offsetParentEl.clientTop - offsetParentEl.scrollTop;\n offsetParentBCR.left += offsetParentEl.clientLeft - offsetParentEl.scrollLeft;\n }\n /** @type {?} */\n var boundingClientRect = nativeEl.getBoundingClientRect();\n return {\n width: boundingClientRect.width || nativeEl.offsetWidth,\n height: boundingClientRect.height || nativeEl.offsetHeight,\n top: elBCR.top - offsetParentBCR.top,\n left: elBCR.left - offsetParentBCR.left\n };\n };\n /**\n * @protected\n * @param {?} nativeEl\n * @return {?}\n */\n PopoverContentComponent.prototype.offset = /**\n * @protected\n * @param {?} nativeEl\n * @return {?}\n */\n function (nativeEl) {\n /** @type {?} */\n var boundingClientRect = nativeEl.getBoundingClientRect();\n return {\n width: boundingClientRect.width || nativeEl.offsetWidth,\n height: boundingClientRect.height || nativeEl.offsetHeight,\n top: boundingClientRect.top + (window.pageYOffset || window.document.documentElement.scrollTop),\n left: boundingClientRect.left + (window.pageXOffset || window.document.documentElement.scrollLeft)\n };\n };\n /**\n * @protected\n * @param {?} nativeEl\n * @param {?} cssProp\n * @return {?}\n */\n PopoverContentComponent.prototype.getStyle = /**\n * @protected\n * @param {?} nativeEl\n * @param {?} cssProp\n * @return {?}\n */\n function (nativeEl, cssProp) {\n if (((/** @type {?} */ (nativeEl))).currentStyle) { // IE\n return ((/** @type {?} */ (nativeEl))).currentStyle[cssProp];\n }\n if (window.getComputedStyle) {\n return ((/** @type {?} */ (window.getComputedStyle)))(nativeEl)[cssProp];\n }\n // finally try and get inline style\n return ((/** @type {?} */ (nativeEl.style)))[cssProp];\n };\n /**\n * @protected\n * @param {?} nativeEl\n * @return {?}\n */\n PopoverContentComponent.prototype.isStaticPositioned = /**\n * @protected\n * @param {?} nativeEl\n * @return {?}\n */\n function (nativeEl) {\n return (this.getStyle(nativeEl, 'position') || 'static') === 'static';\n };\n /**\n * @protected\n * @param {?} nativeEl\n * @return {?}\n */\n PopoverContentComponent.prototype.parentOffsetEl = /**\n * @protected\n * @param {?} nativeEl\n * @return {?}\n */\n function (nativeEl) {\n /** @type {?} */\n var offsetParent = nativeEl.offsetParent || window.document;\n while (offsetParent && offsetParent !== window.document && this.isStaticPositioned(offsetParent)) {\n offsetParent = offsetParent.offsetParent;\n }\n return offsetParent || window.document;\n };\n // Check for overflow of the viewport and reflect the position if necessary.\n // Check for overflow of the viewport and reflect the position if necessary.\n /**\n * @protected\n * @param {?} placement\n * @param {?} hostElement\n * @param {?} targetElement\n * @return {?}\n */\n PopoverContentComponent.prototype.getEffectivePlacement = \n // Check for overflow of the viewport and reflect the position if necessary.\n /**\n * @protected\n * @param {?} placement\n * @param {?} hostElement\n * @param {?} targetElement\n * @return {?}\n */\n function (placement, hostElement, targetElement) {\n /** @type {?} */\n var hostElBoundingRect = hostElement.getBoundingClientRect();\n /** @type {?} */\n var desiredPlacement = placement || PopoverPlacement.Top;\n // Determines if a popover overflows in a direction when in a specific position.\n /** @type {?} */\n var overflows = {\n positionTop: {\n top: hostElBoundingRect.top - targetElement.offsetHeight < 0,\n right: hostElBoundingRect.left + hostElBoundingRect.width / 2 + targetElement.offsetWidth / 2 > this.windowWidth,\n left: hostElBoundingRect.left + hostElBoundingRect.width / 2 - targetElement.offsetWidth / 2 < 0\n },\n positionTopRight: {\n top: hostElBoundingRect.top - targetElement.offsetHeight < 0,\n right: hostElBoundingRect.right + targetElement.offsetWidth > this.windowWidth\n },\n positionRight: {\n top: hostElBoundingRect.top + hostElBoundingRect.height / 2 - targetElement.offsetHeight / 2 < 0,\n right: hostElBoundingRect.right + targetElement.offsetWidth > this.windowWidth,\n bottom: hostElBoundingRect.top + hostElBoundingRect.height / 2 + targetElement.offsetHeight / 2 > this.windowHeight\n },\n positionBottomRight: {\n right: hostElBoundingRect.right + targetElement.offsetWidth > this.windowWidth,\n bottom: hostElBoundingRect.bottom + targetElement.offsetHeight > this.windowHeight\n },\n positionBottom: {\n right: hostElBoundingRect.left + hostElBoundingRect.width / 2 + targetElement.offsetWidth / 2 > this.windowWidth,\n bottom: hostElBoundingRect.bottom + targetElement.offsetHeight > this.windowHeight,\n left: hostElBoundingRect.left + hostElBoundingRect.width / 2 - targetElement.offsetWidth / 2 < 0\n },\n positionBottomLeft: {\n bottom: hostElBoundingRect.bottom + targetElement.offsetHeight > this.windowHeight,\n left: hostElBoundingRect.left - targetElement.offsetWidth < 0\n },\n positionLeft: {\n left: hostElBoundingRect.left < targetElement.offsetWidth,\n top: hostElBoundingRect.top + hostElBoundingRect.height / 2 - targetElement.offsetHeight / 2 < 0,\n bottom: hostElBoundingRect.top + hostElBoundingRect.height / 2 + targetElement.offsetHeight / 2 > this.windowHeight\n },\n positionTopLeft: {\n top: hostElBoundingRect.top - targetElement.offsetHeight < 0,\n left: hostElBoundingRect.left - targetElement.offsetWidth < 0\n }\n };\n if (desiredPlacement === PopoverPlacement.Top) {\n // If it overflows on the top AND left, go to bottom-right.\n if (overflows.positionTop.top && overflows.positionTop.left) {\n return PopoverPlacement.BottomRight;\n // If it overflows on the top AND right, go to bottom-left.\n }\n else if (overflows.positionTop.top && overflows.positionTop.right) {\n return PopoverPlacement.BottomLeft;\n // If it only overflows on the top, go to bottom.\n }\n else if (overflows.positionTop.top) {\n return PopoverPlacement.Bottom;\n // If it only overflows to the right, go to top-left.\n }\n else if (overflows.positionTop.right) {\n return PopoverPlacement.TopLeft;\n // If it only overflows to the left, go to top-right.\n }\n else if (overflows.positionTop.left) {\n return PopoverPlacement.TopRight;\n }\n else {\n return PopoverPlacement.Top;\n }\n }\n if (desiredPlacement === PopoverPlacement.TopRight) {\n // If it overflows on the top AND the right, try in the order: bottom, Bottom-left, left.\n if (overflows.positionTopRight.top && overflows.positionTopRight.right) {\n if (overflows.positionBottom.bottom) {\n return PopoverPlacement.Left;\n }\n else if (overflows.positionBottom.right) {\n return PopoverPlacement.BottomLeft;\n }\n else {\n return PopoverPlacement.Bottom;\n }\n // If it only overflows on the top, try in the order: right, bottom-right.\n }\n else if (overflows.positionTopRight.top) {\n if (overflows.positionRight.top) {\n return PopoverPlacement.BottomRight;\n }\n else {\n return PopoverPlacement.Right;\n }\n // If it only overflows on the right, try in the order: top, top-left.\n }\n else if (overflows.positionTopRight.right) {\n if (overflows.positionTop.right) {\n return PopoverPlacement.TopLeft;\n }\n else {\n return PopoverPlacement.Top;\n }\n }\n else {\n return PopoverPlacement.TopRight;\n }\n }\n if (desiredPlacement === PopoverPlacement.Right) {\n // If it overflows on the right AND the top, try in the order: bottom-right, bottom, bottom-left.\n if (overflows.positionRight.right && overflows.positionRight.top) {\n if (overflows.positionBottomRight.right && overflows.positionBottom.right) {\n return PopoverPlacement.BottomLeft;\n }\n else if (overflows.positionBottomRight.right) {\n return PopoverPlacement.Bottom;\n }\n else {\n return PopoverPlacement.BottomRight;\n }\n // If it overflows on the right AND the bottom, try in the order: top-right, top, top-left.\n }\n else if (overflows.positionRight.right && overflows.positionRight.bottom) {\n if (overflows.positionTopRight.right && overflows.positionTop.right) {\n return PopoverPlacement.TopLeft;\n }\n else if (overflows.positionTopRight.right) {\n return PopoverPlacement.Top;\n }\n else {\n return PopoverPlacement.TopRight;\n }\n // If it only overflows on the right, try all top positions from right to left, then try all bottom positions right to left.\n }\n else if (overflows.positionRight.right) {\n if (overflows.positionTop.top) {\n if (overflows.positionBottom.right) {\n return PopoverPlacement.BottomLeft;\n }\n else if (overflows.positionBottomRight.right) {\n return PopoverPlacement.Bottom;\n }\n else {\n return PopoverPlacement.BottomRight;\n }\n }\n else {\n if (overflows.positionTop.right) {\n return PopoverPlacement.TopLeft;\n }\n else if (overflows.positionTopRight.right) {\n return PopoverPlacement.Top;\n }\n else {\n return PopoverPlacement.TopRight;\n }\n }\n // If it only over flows on the top, go bottom-right.\n }\n else if (overflows.positionRight.top) {\n return PopoverPlacement.BottomRight;\n // If it only overflows on the bottom, go top-right.\n }\n else if (overflows.positionRight.bottom) {\n return PopoverPlacement.TopRight;\n }\n else {\n return PopoverPlacement.Right;\n }\n }\n if (desiredPlacement === PopoverPlacement.BottomRight) {\n // If it overflows on the bottom AND the right, try in the order: top, top-left, left.\n if (overflows.positionBottomRight.bottom && overflows.positionBottomRight.right) {\n if (overflows.positionTop.top) {\n return PopoverPlacement.Left;\n }\n else if (overflows.positionTop.right) {\n return PopoverPlacement.TopLeft;\n }\n else {\n return PopoverPlacement.Top;\n }\n // If it only overflows on the bottom, try in the order: right, top-right.\n }\n else if (overflows.positionBottomRight.bottom) {\n if (overflows.positionRight.bottom) {\n return PopoverPlacement.TopRight;\n }\n else {\n return PopoverPlacement.Right;\n }\n // If it only overflows on the right, try in the order: bottom, bottom-left.\n }\n else if (overflows.positionBottomRight.right) {\n if (overflows.positionBottom.right) {\n return PopoverPlacement.BottomLeft;\n }\n else {\n return PopoverPlacement.Bottom;\n }\n }\n else {\n return PopoverPlacement.BottomRight;\n }\n }\n if (desiredPlacement === PopoverPlacement.Bottom) {\n // If it overflows on the bottom AND left, go to top-right.\n if (overflows.positionBottom.bottom && overflows.positionBottom.left) {\n return PopoverPlacement.TopRight;\n // If it overflows on the bottom AND right, go to top-left.\n }\n else if (overflows.positionBottom.bottom && overflows.positionBottom.right) {\n return PopoverPlacement.TopLeft;\n // If it only overflows on the bottom, go to top.\n }\n else if (overflows.positionBottom.bottom) {\n return PopoverPlacement.Top;\n // If it only overflows to the right, go to bottom-left.\n }\n else if (overflows.positionBottom.right) {\n return PopoverPlacement.BottomLeft;\n // If it only overflows to the left, go to bottom-right.\n }\n else if (overflows.positionBottom.left) {\n return PopoverPlacement.BottomRight;\n }\n else {\n return PopoverPlacement.Bottom;\n }\n }\n if (desiredPlacement === PopoverPlacement.BottomLeft) {\n // If it overflows on the bottom AND the left, try in the order: top, top-right, right.\n if (overflows.positionBottomLeft.bottom && overflows.positionBottomLeft.left) {\n if (overflows.positionTop.top) {\n return PopoverPlacement.Right;\n }\n else if (overflows.positionTop.left) {\n return PopoverPlacement.TopRight;\n }\n else {\n return PopoverPlacement.Top;\n }\n // If it only overflows on the bottom, try in the order: left, top-left.\n }\n else if (overflows.positionBottomLeft.bottom) {\n if (overflows.positionLeft.bottom) {\n return PopoverPlacement.TopLeft;\n }\n else {\n return PopoverPlacement.Left;\n }\n // If it only overflows on the left, try in the order: bottom, bottom-right.\n }\n else if (overflows.positionBottomLeft.left) {\n if (overflows.positionBottom.left) {\n return PopoverPlacement.BottomRight;\n }\n else {\n return PopoverPlacement.Bottom;\n }\n }\n else {\n return PopoverPlacement.BottomLeft;\n }\n }\n if (desiredPlacement === PopoverPlacement.Left) {\n // If it overflows on the left AND the top, try in the order: bottom-left, bottom, bottom-right.\n if (overflows.positionLeft.left && overflows.positionLeft.top) {\n if (overflows.positionBottomLeft.left && overflows.positionBottom.left) {\n return PopoverPlacement.BottomRight;\n }\n else if (overflows.positionBottomRight.right) {\n return PopoverPlacement.Bottom;\n }\n else {\n return PopoverPlacement.BottomLeft;\n }\n // If it overflows on the left AND the bottom, try in the order: top-left, top, top-right.\n }\n else if (overflows.positionLeft.left && overflows.positionLeft.bottom) {\n if (overflows.positionTopLeft.left && overflows.positionTop.left) {\n return PopoverPlacement.TopRight;\n }\n else if (overflows.positionTopLeft.left) {\n return PopoverPlacement.Top;\n }\n else {\n return PopoverPlacement.TopLeft;\n }\n // If it only overflows on the left, try all top positions from left to right, then try all bottom positions left to right.\n }\n else if (overflows.positionLeft.left) {\n if (overflows.positionTop.top) {\n if (overflows.positionBottom.left) {\n return PopoverPlacement.BottomRight;\n }\n else if (overflows.positionBottomLeft.left) {\n return PopoverPlacement.Bottom;\n }\n else {\n return PopoverPlacement.BottomLeft;\n }\n }\n else {\n if (overflows.positionTop.left) {\n return PopoverPlacement.TopRight;\n }\n else if (overflows.positionTopLeft.left) {\n return PopoverPlacement.Top;\n }\n else {\n return PopoverPlacement.TopLeft;\n }\n }\n // If it only over flows on the top, go bottom-left.\n }\n else if (overflows.positionLeft.top) {\n return PopoverPlacement.BottomLeft;\n // If it only overflows on the bottom, go top-left.\n }\n else if (overflows.positionLeft.bottom) {\n return PopoverPlacement.TopLeft;\n }\n else {\n return PopoverPlacement.Left;\n }\n }\n if (desiredPlacement === PopoverPlacement.TopLeft) {\n // If it overflows on the top AND the left, try in the order: bottom, Bottom-right, right.\n if (overflows.positionTopLeft.top && overflows.positionTopLeft.left) {\n if (overflows.positionBottom.bottom) {\n return PopoverPlacement.Right;\n }\n else if (overflows.positionBottom.left) {\n return PopoverPlacement.BottomRight;\n }\n else {\n return PopoverPlacement.Bottom;\n }\n // If it only overflows on the top, try in the order: left, bottom-left.\n }\n else if (overflows.positionTopLeft.top) {\n if (overflows.positionLeft.top) {\n return PopoverPlacement.BottomLeft;\n }\n else {\n return PopoverPlacement.Left;\n }\n // If it only overflows on the left, try in the order: top, top-right.\n }\n else if (overflows.positionTopLeft.left) {\n if (overflows.positionTop.left) {\n return PopoverPlacement.TopRight;\n }\n else {\n return PopoverPlacement.Top;\n }\n }\n else {\n return PopoverPlacement.TopLeft;\n }\n }\n return desiredPlacement;\n };\n PopoverContentComponent.decorators = [\n { type: Component, args: [{\n selector: 'popover-content',\n template: \"\\n
\\n
\\n
\\n
{{ title }}
\\n
\\n \\n {{ content }}\\n
\\n
\\n \"\n }] }\n ];\n /** @nocollapse */\n PopoverContentComponent.ctorParameters = function () { return [\n { type: ElementRef },\n { type: ChangeDetectorRef },\n { type: Renderer2 }\n ]; };\n PopoverContentComponent.propDecorators = {\n content: [{ type: Input }],\n placement: [{ type: Input }],\n title: [{ type: Input }],\n parentClass: [{ type: Input }],\n animation: [{ type: Input }],\n closeOnClickOutside: [{ type: Input }],\n closeOnMouseOutside: [{ type: Input }],\n appendToBody: [{ type: Input }],\n size: [{ type: Input }],\n popoverDiv: [{ type: ViewChild, args: ['popoverDiv', { static: true },] }],\n onResize: [{ type: HostListener, args: ['window:resize', ['$event'],] }]\n };\n return PopoverContentComponent;\n}());\n\n/**\n * @fileoverview added by tsickle\n * Generated from: lib/popover.directive.ts\n * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n/**\n * \\@group Basic Toolkit\n * \\@component Popover Directive\n */\nvar PopoverDirective = /** @class */ (function () {\n // -------------------------------------------------------------------------\n // Constructor\n // -------------------------------------------------------------------------\n function PopoverDirective(viewContainerRef, cdr, resolver, appRef, injector) {\n this.viewContainerRef = viewContainerRef;\n this.cdr = cdr;\n this.resolver = resolver;\n this.appRef = appRef;\n this.injector = injector;\n // -------------------------------------------------------------------------\n // Properties\n // -------------------------------------------------------------------------\n this.popoverContentComponent = PopoverContentComponent;\n this.popoverOnHover = true;\n this.popoverDismissTimeout = 0;\n this.onShown = new EventEmitter();\n this.onHidden = new EventEmitter();\n }\n // -------------------------------------------------------------------------\n // Event listeners\n // -------------------------------------------------------------------------\n // -------------------------------------------------------------------------\n // Event listeners\n // -------------------------------------------------------------------------\n /**\n * @param {?} evt\n * @return {?}\n */\n PopoverDirective.prototype.showOrHideOnClick = \n // -------------------------------------------------------------------------\n // Event listeners\n // -------------------------------------------------------------------------\n /**\n * @param {?} evt\n * @return {?}\n */\n function (evt) {\n if (this.popoverOnHover) {\n return;\n }\n if (this.popoverDisabled) {\n return;\n }\n evt.stopImmediatePropagation();\n this.toggle();\n };\n /**\n * @param {?} evt\n * @return {?}\n */\n PopoverDirective.prototype.showOrHideOnTouch = /**\n * @param {?} evt\n * @return {?}\n */\n function (evt) {\n evt.stopImmediatePropagation();\n if (!this.popoverOnHover) {\n return;\n }\n if (this.popoverDisabled) {\n return;\n }\n this.toggle();\n };\n /**\n * @return {?}\n */\n PopoverDirective.prototype.showOnHover = /**\n * @return {?}\n */\n function () {\n if (!this.popoverOnHover) {\n return;\n }\n if (this.popoverDisabled) {\n return;\n }\n this.show();\n };\n /**\n * @return {?}\n */\n PopoverDirective.prototype.hideOnHover = /**\n * @return {?}\n */\n function () {\n if (this.popoverCloseOnMouseOutside) {\n return; // don't do anything since we do not control this\n }\n if (!this.popoverOnHover) {\n return;\n }\n if (this.popoverDisabled) {\n return;\n }\n this.hide();\n };\n /**\n * @param {?} changes\n * @return {?}\n */\n PopoverDirective.prototype.ngOnChanges = /**\n * @param {?} changes\n * @return {?}\n */\n function (changes) {\n if (changes['popoverDisabled']) {\n if (changes['popoverDisabled'].currentValue) {\n this.hide();\n }\n }\n };\n /**\n * @protected\n * @param {?} component\n * @return {?}\n */\n PopoverDirective.prototype.createComponent = /**\n * @protected\n * @param {?} component\n * @return {?}\n */\n function (component) {\n /** @type {?} */\n var factory = this.resolver.resolveComponentFactory(component);\n // Create a component reference from the component\n /** @type {?} */\n var componentRef = this.appendToBody\n ? factory.create(this.injector)\n : this.viewContainerRef.createComponent(factory);\n if (this.appendToBody) {\n // Attach component to the appRef so that it's inside the ng component tree\n this.appRef.attachView(componentRef.hostView);\n // Get DOM element from component\n /** @type {?} */\n var domElem = (/** @type {?} */ (((/** @type {?} */ (componentRef.hostView)))\n .rootNodes[0]));\n // Append DOM element to the body\n document.body.appendChild(domElem);\n }\n return componentRef;\n };\n /**\n * @protected\n * @param {?} componentRef\n * @return {?}\n */\n PopoverDirective.prototype.removeComponent = /**\n * @protected\n * @param {?} componentRef\n * @return {?}\n */\n function (componentRef) {\n if (this.popover) {\n if (this.appendToBody) {\n this.appRef.detachView(componentRef.hostView);\n }\n componentRef.destroy();\n }\n };\n // -------------------------------------------------------------------------\n // Public Methods\n // -------------------------------------------------------------------------\n // -------------------------------------------------------------------------\n // Public Methods\n // -------------------------------------------------------------------------\n /**\n * @return {?}\n */\n PopoverDirective.prototype.toggle = \n // -------------------------------------------------------------------------\n // Public Methods\n // -------------------------------------------------------------------------\n /**\n * @return {?}\n */\n function () {\n if (!this.visible) {\n this.show();\n }\n else {\n this.hide();\n }\n };\n /**\n * @return {?}\n */\n PopoverDirective.prototype.show = /**\n * @return {?}\n */\n function () {\n var _this = this;\n if (this.visible) {\n return;\n }\n this.visible = true;\n if (typeof this.content === 'string') {\n if (!this.visible) {\n return;\n }\n this.popover = this.createComponent(this.popoverContentComponent);\n /** @type {?} */\n var popover = (/** @type {?} */ (this.popover.instance));\n popover.popover = this;\n popover.content = (/** @type {?} */ (this.content));\n if (this.popoverPlacement !== undefined) {\n popover.placement = this.popoverPlacement;\n }\n if (this.popoverAnimation !== undefined) {\n popover.animation = this.popoverAnimation;\n }\n if (this.popoverTitle !== undefined) {\n popover.title = this.popoverTitle;\n }\n if (this.popoverCloseOnClickOutside !== undefined) {\n popover.closeOnClickOutside = this.popoverCloseOnClickOutside;\n }\n if (this.popoverCloseOnMouseOutside !== undefined) {\n popover.closeOnMouseOutside = this.popoverCloseOnMouseOutside;\n }\n if (this.popoverSize) {\n popover.size = this.popoverSize;\n }\n popover.appendToBody = this.appendToBody;\n popover.onCloseFromOutside.subscribe((/**\n * @return {?}\n */\n function () { return _this.hide(); }));\n // if dismissTimeout option is set, then this popover will be dismissed in dismissTimeout time\n if (this.popoverDismissTimeout > 0) {\n setTimeout((/**\n * @return {?}\n */\n function () { return _this.hide(); }), this.popoverDismissTimeout);\n }\n }\n else {\n /** @type {?} */\n var popover = (/** @type {?} */ (this.content));\n popover.popover = this;\n if (this.popoverPlacement !== undefined) {\n popover.placement = this.popoverPlacement;\n }\n if (this.popoverAnimation !== undefined) {\n popover.animation = this.popoverAnimation;\n }\n if (this.popoverTitle !== undefined) {\n popover.title = this.popoverTitle;\n }\n if (this.popoverCloseOnClickOutside !== undefined) {\n popover.closeOnClickOutside = this.popoverCloseOnClickOutside;\n }\n if (this.popoverCloseOnMouseOutside !== undefined) {\n popover.closeOnMouseOutside = this.popoverCloseOnMouseOutside;\n }\n if (this.popoverSize) {\n popover.size = this.popoverSize;\n }\n popover.appendToBody = this.appendToBody;\n popover.onCloseFromOutside.subscribe((/**\n * @return {?}\n */\n function () { return _this.hide(); }));\n // if dismissTimeout option is set, then this popover will be dismissed in dismissTimeout time\n if (this.popoverDismissTimeout > 0) {\n setTimeout((/**\n * @return {?}\n */\n function () { return _this.hide(); }), this.popoverDismissTimeout);\n }\n popover.show();\n }\n this.cdr.detectChanges();\n this.onShown.emit(this);\n };\n /**\n * @return {?}\n */\n PopoverDirective.prototype.hide = /**\n * @return {?}\n */\n function () {\n if (!this.visible) {\n return;\n }\n this.visible = false;\n this.removeComponent(this.popover);\n if (this.content instanceof PopoverContentComponent) {\n ((/** @type {?} */ (this.content))).hideFromPopover();\n }\n this.cdr.detectChanges();\n this.onHidden.emit(this);\n };\n /**\n * @return {?}\n */\n PopoverDirective.prototype.getElement = /**\n * @return {?}\n */\n function () {\n return this.viewContainerRef.element.nativeElement;\n };\n PopoverDirective.decorators = [\n { type: Directive, args: [{\n selector: '[popover]',\n exportAs: 'popover'\n },] }\n ];\n /** @nocollapse */\n PopoverDirective.ctorParameters = function () { return [\n { type: ViewContainerRef },\n { type: ChangeDetectorRef },\n { type: ComponentFactoryResolver },\n { type: ApplicationRef },\n { type: Injector }\n ]; };\n PopoverDirective.propDecorators = {\n content: [{ type: Input, args: ['popover',] }],\n popoverSize: [{ type: Input }],\n popoverDisabled: [{ type: Input }],\n popoverAnimation: [{ type: Input }],\n popoverPlacement: [{ type: Input }],\n popoverTitle: [{ type: Input }],\n popoverOnHover: [{ type: Input }],\n popoverCloseOnClickOutside: [{ type: Input }],\n popoverCloseOnMouseOutside: [{ type: Input }],\n popoverDismissTimeout: [{ type: Input }],\n appendToBody: [{ type: Input }],\n onShown: [{ type: Output }],\n onHidden: [{ type: Output }],\n showOrHideOnClick: [{ type: HostListener, args: ['click', ['$event'],] }],\n showOrHideOnTouch: [{ type: HostListener, args: ['touchend', ['$event'],] }],\n showOnHover: [{ type: HostListener, args: ['focusin',] }, { type: HostListener, args: ['mouseenter',] }],\n hideOnHover: [{ type: HostListener, args: ['focusout',] }, { type: HostListener, args: ['mouseleave',] }]\n };\n return PopoverDirective;\n}());\n\n/**\n * @fileoverview added by tsickle\n * Generated from: lib/popover.module.ts\n * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\nvar PopoverModule = /** @class */ (function () {\n function PopoverModule() {\n }\n PopoverModule.decorators = [\n { type: NgModule, args: [{\n declarations: [\n PopoverDirective,\n PopoverContentComponent\n ],\n imports: [\n CommonModule,\n ],\n exports: [\n PopoverContentComponent,\n PopoverDirective\n ],\n entryComponents: [\n PopoverContentComponent\n ]\n },] }\n ];\n return PopoverModule;\n}());\n\n/**\n * @fileoverview added by tsickle\n * Generated from: public_api.ts\n * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n\n/**\n * @fileoverview added by tsickle\n * Generated from: ngx-smart-popover.ts\n * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n\nexport { PopoverContentComponent, PopoverDirective, PopoverModule, PopoverPlacement };\n//# sourceMappingURL=ngx-smart-popover.js.map\n","export default \"
\\r\\n \\r\\n\\r\\n
\\r\\n

{{cConfirmModel.sMensaje}}

\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n
\\r\\n
\"","export default \"
\\r\\n \\r\\n\\r\\n
\\r\\n

{{cConfirmModel.sMensaje}}

\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\"","export default \"\\r\\n
\\r\\n

{{data.tipo}}

\\r\\n
\\r\\n

Mensaje: {{data.mensajeCorto}}

\\r\\n \\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\"","export default \"
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n

{{ 'msg-final-cancel.msg' | translate }}

\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\"","export default \"
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n

{{ 'msg-final-exito.msg' | translate }}

\\r\\n

{{ 'msg-final-exito.texto.1' | translate }}
{{ 'msg-final-exito.texto.2' | translate }}\\r\\n

\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\"","export default \"\\r\\n\\r\\n
\\r\\n
\\r\\n \\\"logo\\\"\\r\\n \\\"logo\\\"\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n \\\"logo\\\"\\r\\n \\\"logo\\\"\\r\\n 3\\\" src=\\\"{{urlBucketS3 + logoUrl}}\\\" class=\\\"homeImagen-bmw\\\" alt=\\\"logo\\\">\\r\\n
\\r\\n \\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n \\\"logo\\\"\\r\\n \\\"logo\\\"\\r\\n \\\"logo\\\"\\r\\n 3\\\" src=\\\"{{urlBucketS3 + logoUrl}}\\\" class=\\\"homeImagen-bmw\\\" alt=\\\"logo\\\">\\r\\n
\\r\\n
\\r\\n \\\"logo\\\"\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n   \\r\\n {{ telefono }}\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n {{ 'consultar.titulo1' | translate }}{{ cantRecalls }}{{ 'consultar.titulo2' | translate }}\\r\\n\\r\\n
\\r\\n

{{ 'consultar.placeholder.recalls' | translate }}

\\r\\n \\r\\n {{ 'consultar.placeholder.recallsChoose' | translate }}\\r\\n \\r\\n \\r\\n {{oTipoRecall.Code}} - {{oTipoRecall.ShortDescription}}\\r\\n \\r\\n \\r\\n \\r\\n Seleccione un tipo de Recall\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n Su vehículo está afecto al Recall: {{recallSelected}} \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n Fecha de Inicio de campaña: {{recallPublishDate}}\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n Descripción: {{recallSelectedDesc}}\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n Información adicional: {{recallInfoAdittional}}\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n Agende una cita para realizar la revisión de su vehículo.\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n

*Recuerda, los recalls son totalmente gratuitos para usted como usuario.

\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n\\r\\n
\\r\\n\\r\\n\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\"","export default \"\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n 3\\\"\\r\\n src=\\\"{{ urlBucketS3 + logoUrl }}\\\"\\r\\n class=\\\"homeImagen-bmw\\\"\\r\\n alt=\\\"logo\\\"\\r\\n />\\r\\n
\\r\\n \\r\\n \\r\\n account_circle Iniciar sesión\\r\\n \\r\\n \\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n 3\\\"\\r\\n src=\\\"{{ urlBucketS3 + logoUrl }}\\\"\\r\\n class=\\\"homeImagen-bmw\\\"\\r\\n alt=\\\"logo\\\"\\r\\n />\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n   \\r\\n {{ telefono }}\\r\\n \\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n {{\\r\\n \\\"home.texto\\\" | translate\\r\\n }}\\r\\n {{\\r\\n \\\"home.servicio\\\" | translate\\r\\n }}\\r\\n\\r\\n \\r\\n \\r\\n {{\\r\\n \\\"home.placeholder.vin\\\" | translate\\r\\n }}\\r\\n \\r\\n \\r\\n N° de Vin requerido\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n\\r\\n
\\r\\n \\r\\n {{ \\\"home.button.consultar\\\" | translate }}\\r\\n \\r\\n
\\r\\n
\\r\\n

\\r\\n *Recuerda, los recalls son totalmente gratuitos\\r\\n para usted como usuario.\\r\\n

\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n
\\r\\n {{\\r\\n \\\"home.ayudaVin\\\" | translate\\r\\n }}\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n\"","export default \"\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n \\\"logo\\\"\\r\\n \\\"logo\\\"\\r\\n \\\"logo\\\"\\r\\n 3\\\" src=\\\"{{urlBucketS3 + logoUrl}}\\\" class=\\\"homeImagen-bmw\\\" alt=\\\"logo\\\">\\r\\n\\r\\n
\\r\\n
\\r\\n \\\"logo\\\"\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\"","/**\r\n * A collection of shims that provide minimal functionality of the ES6 collections.\r\n *\r\n * These implementations are not meant to be used outside of the ResizeObserver\r\n * modules as they cover only a limited range of use cases.\r\n */\r\n/* eslint-disable require-jsdoc, valid-jsdoc */\r\nvar MapShim = (function () {\r\n if (typeof Map !== 'undefined') {\r\n return Map;\r\n }\r\n /**\r\n * Returns index in provided array that matches the specified key.\r\n *\r\n * @param {Array} arr\r\n * @param {*} key\r\n * @returns {number}\r\n */\r\n function getIndex(arr, key) {\r\n var result = -1;\r\n arr.some(function (entry, index) {\r\n if (entry[0] === key) {\r\n result = index;\r\n return true;\r\n }\r\n return false;\r\n });\r\n return result;\r\n }\r\n return /** @class */ (function () {\r\n function class_1() {\r\n this.__entries__ = [];\r\n }\r\n Object.defineProperty(class_1.prototype, \"size\", {\r\n /**\r\n * @returns {boolean}\r\n */\r\n get: function () {\r\n return this.__entries__.length;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n /**\r\n * @param {*} key\r\n * @returns {*}\r\n */\r\n class_1.prototype.get = function (key) {\r\n var index = getIndex(this.__entries__, key);\r\n var entry = this.__entries__[index];\r\n return entry && entry[1];\r\n };\r\n /**\r\n * @param {*} key\r\n * @param {*} value\r\n * @returns {void}\r\n */\r\n class_1.prototype.set = function (key, value) {\r\n var index = getIndex(this.__entries__, key);\r\n if (~index) {\r\n this.__entries__[index][1] = value;\r\n }\r\n else {\r\n this.__entries__.push([key, value]);\r\n }\r\n };\r\n /**\r\n * @param {*} key\r\n * @returns {void}\r\n */\r\n class_1.prototype.delete = function (key) {\r\n var entries = this.__entries__;\r\n var index = getIndex(entries, key);\r\n if (~index) {\r\n entries.splice(index, 1);\r\n }\r\n };\r\n /**\r\n * @param {*} key\r\n * @returns {void}\r\n */\r\n class_1.prototype.has = function (key) {\r\n return !!~getIndex(this.__entries__, key);\r\n };\r\n /**\r\n * @returns {void}\r\n */\r\n class_1.prototype.clear = function () {\r\n this.__entries__.splice(0);\r\n };\r\n /**\r\n * @param {Function} callback\r\n * @param {*} [ctx=null]\r\n * @returns {void}\r\n */\r\n class_1.prototype.forEach = function (callback, ctx) {\r\n if (ctx === void 0) { ctx = null; }\r\n for (var _i = 0, _a = this.__entries__; _i < _a.length; _i++) {\r\n var entry = _a[_i];\r\n callback.call(ctx, entry[1], entry[0]);\r\n }\r\n };\r\n return class_1;\r\n }());\r\n})();\n\n/**\r\n * Detects whether window and document objects are available in current environment.\r\n */\r\nvar isBrowser = typeof window !== 'undefined' && typeof document !== 'undefined' && window.document === document;\n\n// Returns global object of a current environment.\r\nvar global$1 = (function () {\r\n if (typeof global !== 'undefined' && global.Math === Math) {\r\n return global;\r\n }\r\n if (typeof self !== 'undefined' && self.Math === Math) {\r\n return self;\r\n }\r\n if (typeof window !== 'undefined' && window.Math === Math) {\r\n return window;\r\n }\r\n // eslint-disable-next-line no-new-func\r\n return Function('return this')();\r\n})();\n\n/**\r\n * A shim for the requestAnimationFrame which falls back to the setTimeout if\r\n * first one is not supported.\r\n *\r\n * @returns {number} Requests' identifier.\r\n */\r\nvar requestAnimationFrame$1 = (function () {\r\n if (typeof requestAnimationFrame === 'function') {\r\n // It's required to use a bounded function because IE sometimes throws\r\n // an \"Invalid calling object\" error if rAF is invoked without the global\r\n // object on the left hand side.\r\n return requestAnimationFrame.bind(global$1);\r\n }\r\n return function (callback) { return setTimeout(function () { return callback(Date.now()); }, 1000 / 60); };\r\n})();\n\n// Defines minimum timeout before adding a trailing call.\r\nvar trailingTimeout = 2;\r\n/**\r\n * Creates a wrapper function which ensures that provided callback will be\r\n * invoked only once during the specified delay period.\r\n *\r\n * @param {Function} callback - Function to be invoked after the delay period.\r\n * @param {number} delay - Delay after which to invoke callback.\r\n * @returns {Function}\r\n */\r\nfunction throttle (callback, delay) {\r\n var leadingCall = false, trailingCall = false, lastCallTime = 0;\r\n /**\r\n * Invokes the original callback function and schedules new invocation if\r\n * the \"proxy\" was called during current request.\r\n *\r\n * @returns {void}\r\n */\r\n function resolvePending() {\r\n if (leadingCall) {\r\n leadingCall = false;\r\n callback();\r\n }\r\n if (trailingCall) {\r\n proxy();\r\n }\r\n }\r\n /**\r\n * Callback invoked after the specified delay. It will further postpone\r\n * invocation of the original function delegating it to the\r\n * requestAnimationFrame.\r\n *\r\n * @returns {void}\r\n */\r\n function timeoutCallback() {\r\n requestAnimationFrame$1(resolvePending);\r\n }\r\n /**\r\n * Schedules invocation of the original function.\r\n *\r\n * @returns {void}\r\n */\r\n function proxy() {\r\n var timeStamp = Date.now();\r\n if (leadingCall) {\r\n // Reject immediately following calls.\r\n if (timeStamp - lastCallTime < trailingTimeout) {\r\n return;\r\n }\r\n // Schedule new call to be in invoked when the pending one is resolved.\r\n // This is important for \"transitions\" which never actually start\r\n // immediately so there is a chance that we might miss one if change\r\n // happens amids the pending invocation.\r\n trailingCall = true;\r\n }\r\n else {\r\n leadingCall = true;\r\n trailingCall = false;\r\n setTimeout(timeoutCallback, delay);\r\n }\r\n lastCallTime = timeStamp;\r\n }\r\n return proxy;\r\n}\n\n// Minimum delay before invoking the update of observers.\r\nvar REFRESH_DELAY = 20;\r\n// A list of substrings of CSS properties used to find transition events that\r\n// might affect dimensions of observed elements.\r\nvar transitionKeys = ['top', 'right', 'bottom', 'left', 'width', 'height', 'size', 'weight'];\r\n// Check if MutationObserver is available.\r\nvar mutationObserverSupported = typeof MutationObserver !== 'undefined';\r\n/**\r\n * Singleton controller class which handles updates of ResizeObserver instances.\r\n */\r\nvar ResizeObserverController = /** @class */ (function () {\r\n /**\r\n * Creates a new instance of ResizeObserverController.\r\n *\r\n * @private\r\n */\r\n function ResizeObserverController() {\r\n /**\r\n * Indicates whether DOM listeners have been added.\r\n *\r\n * @private {boolean}\r\n */\r\n this.connected_ = false;\r\n /**\r\n * Tells that controller has subscribed for Mutation Events.\r\n *\r\n * @private {boolean}\r\n */\r\n this.mutationEventsAdded_ = false;\r\n /**\r\n * Keeps reference to the instance of MutationObserver.\r\n *\r\n * @private {MutationObserver}\r\n */\r\n this.mutationsObserver_ = null;\r\n /**\r\n * A list of connected observers.\r\n *\r\n * @private {Array}\r\n */\r\n this.observers_ = [];\r\n this.onTransitionEnd_ = this.onTransitionEnd_.bind(this);\r\n this.refresh = throttle(this.refresh.bind(this), REFRESH_DELAY);\r\n }\r\n /**\r\n * Adds observer to observers list.\r\n *\r\n * @param {ResizeObserverSPI} observer - Observer to be added.\r\n * @returns {void}\r\n */\r\n ResizeObserverController.prototype.addObserver = function (observer) {\r\n if (!~this.observers_.indexOf(observer)) {\r\n this.observers_.push(observer);\r\n }\r\n // Add listeners if they haven't been added yet.\r\n if (!this.connected_) {\r\n this.connect_();\r\n }\r\n };\r\n /**\r\n * Removes observer from observers list.\r\n *\r\n * @param {ResizeObserverSPI} observer - Observer to be removed.\r\n * @returns {void}\r\n */\r\n ResizeObserverController.prototype.removeObserver = function (observer) {\r\n var observers = this.observers_;\r\n var index = observers.indexOf(observer);\r\n // Remove observer if it's present in registry.\r\n if (~index) {\r\n observers.splice(index, 1);\r\n }\r\n // Remove listeners if controller has no connected observers.\r\n if (!observers.length && this.connected_) {\r\n this.disconnect_();\r\n }\r\n };\r\n /**\r\n * Invokes the update of observers. It will continue running updates insofar\r\n * it detects changes.\r\n *\r\n * @returns {void}\r\n */\r\n ResizeObserverController.prototype.refresh = function () {\r\n var changesDetected = this.updateObservers_();\r\n // Continue running updates if changes have been detected as there might\r\n // be future ones caused by CSS transitions.\r\n if (changesDetected) {\r\n this.refresh();\r\n }\r\n };\r\n /**\r\n * Updates every observer from observers list and notifies them of queued\r\n * entries.\r\n *\r\n * @private\r\n * @returns {boolean} Returns \"true\" if any observer has detected changes in\r\n * dimensions of it's elements.\r\n */\r\n ResizeObserverController.prototype.updateObservers_ = function () {\r\n // Collect observers that have active observations.\r\n var activeObservers = this.observers_.filter(function (observer) {\r\n return observer.gatherActive(), observer.hasActive();\r\n });\r\n // Deliver notifications in a separate cycle in order to avoid any\r\n // collisions between observers, e.g. when multiple instances of\r\n // ResizeObserver are tracking the same element and the callback of one\r\n // of them changes content dimensions of the observed target. Sometimes\r\n // this may result in notifications being blocked for the rest of observers.\r\n activeObservers.forEach(function (observer) { return observer.broadcastActive(); });\r\n return activeObservers.length > 0;\r\n };\r\n /**\r\n * Initializes DOM listeners.\r\n *\r\n * @private\r\n * @returns {void}\r\n */\r\n ResizeObserverController.prototype.connect_ = function () {\r\n // Do nothing if running in a non-browser environment or if listeners\r\n // have been already added.\r\n if (!isBrowser || this.connected_) {\r\n return;\r\n }\r\n // Subscription to the \"Transitionend\" event is used as a workaround for\r\n // delayed transitions. This way it's possible to capture at least the\r\n // final state of an element.\r\n document.addEventListener('transitionend', this.onTransitionEnd_);\r\n window.addEventListener('resize', this.refresh);\r\n if (mutationObserverSupported) {\r\n this.mutationsObserver_ = new MutationObserver(this.refresh);\r\n this.mutationsObserver_.observe(document, {\r\n attributes: true,\r\n childList: true,\r\n characterData: true,\r\n subtree: true\r\n });\r\n }\r\n else {\r\n document.addEventListener('DOMSubtreeModified', this.refresh);\r\n this.mutationEventsAdded_ = true;\r\n }\r\n this.connected_ = true;\r\n };\r\n /**\r\n * Removes DOM listeners.\r\n *\r\n * @private\r\n * @returns {void}\r\n */\r\n ResizeObserverController.prototype.disconnect_ = function () {\r\n // Do nothing if running in a non-browser environment or if listeners\r\n // have been already removed.\r\n if (!isBrowser || !this.connected_) {\r\n return;\r\n }\r\n document.removeEventListener('transitionend', this.onTransitionEnd_);\r\n window.removeEventListener('resize', this.refresh);\r\n if (this.mutationsObserver_) {\r\n this.mutationsObserver_.disconnect();\r\n }\r\n if (this.mutationEventsAdded_) {\r\n document.removeEventListener('DOMSubtreeModified', this.refresh);\r\n }\r\n this.mutationsObserver_ = null;\r\n this.mutationEventsAdded_ = false;\r\n this.connected_ = false;\r\n };\r\n /**\r\n * \"Transitionend\" event handler.\r\n *\r\n * @private\r\n * @param {TransitionEvent} event\r\n * @returns {void}\r\n */\r\n ResizeObserverController.prototype.onTransitionEnd_ = function (_a) {\r\n var _b = _a.propertyName, propertyName = _b === void 0 ? '' : _b;\r\n // Detect whether transition may affect dimensions of an element.\r\n var isReflowProperty = transitionKeys.some(function (key) {\r\n return !!~propertyName.indexOf(key);\r\n });\r\n if (isReflowProperty) {\r\n this.refresh();\r\n }\r\n };\r\n /**\r\n * Returns instance of the ResizeObserverController.\r\n *\r\n * @returns {ResizeObserverController}\r\n */\r\n ResizeObserverController.getInstance = function () {\r\n if (!this.instance_) {\r\n this.instance_ = new ResizeObserverController();\r\n }\r\n return this.instance_;\r\n };\r\n /**\r\n * Holds reference to the controller's instance.\r\n *\r\n * @private {ResizeObserverController}\r\n */\r\n ResizeObserverController.instance_ = null;\r\n return ResizeObserverController;\r\n}());\n\n/**\r\n * Defines non-writable/enumerable properties of the provided target object.\r\n *\r\n * @param {Object} target - Object for which to define properties.\r\n * @param {Object} props - Properties to be defined.\r\n * @returns {Object} Target object.\r\n */\r\nvar defineConfigurable = (function (target, props) {\r\n for (var _i = 0, _a = Object.keys(props); _i < _a.length; _i++) {\r\n var key = _a[_i];\r\n Object.defineProperty(target, key, {\r\n value: props[key],\r\n enumerable: false,\r\n writable: false,\r\n configurable: true\r\n });\r\n }\r\n return target;\r\n});\n\n/**\r\n * Returns the global object associated with provided element.\r\n *\r\n * @param {Object} target\r\n * @returns {Object}\r\n */\r\nvar getWindowOf = (function (target) {\r\n // Assume that the element is an instance of Node, which means that it\r\n // has the \"ownerDocument\" property from which we can retrieve a\r\n // corresponding global object.\r\n var ownerGlobal = target && target.ownerDocument && target.ownerDocument.defaultView;\r\n // Return the local global object if it's not possible extract one from\r\n // provided element.\r\n return ownerGlobal || global$1;\r\n});\n\n// Placeholder of an empty content rectangle.\r\nvar emptyRect = createRectInit(0, 0, 0, 0);\r\n/**\r\n * Converts provided string to a number.\r\n *\r\n * @param {number|string} value\r\n * @returns {number}\r\n */\r\nfunction toFloat(value) {\r\n return parseFloat(value) || 0;\r\n}\r\n/**\r\n * Extracts borders size from provided styles.\r\n *\r\n * @param {CSSStyleDeclaration} styles\r\n * @param {...string} positions - Borders positions (top, right, ...)\r\n * @returns {number}\r\n */\r\nfunction getBordersSize(styles) {\r\n var positions = [];\r\n for (var _i = 1; _i < arguments.length; _i++) {\r\n positions[_i - 1] = arguments[_i];\r\n }\r\n return positions.reduce(function (size, position) {\r\n var value = styles['border-' + position + '-width'];\r\n return size + toFloat(value);\r\n }, 0);\r\n}\r\n/**\r\n * Extracts paddings sizes from provided styles.\r\n *\r\n * @param {CSSStyleDeclaration} styles\r\n * @returns {Object} Paddings box.\r\n */\r\nfunction getPaddings(styles) {\r\n var positions = ['top', 'right', 'bottom', 'left'];\r\n var paddings = {};\r\n for (var _i = 0, positions_1 = positions; _i < positions_1.length; _i++) {\r\n var position = positions_1[_i];\r\n var value = styles['padding-' + position];\r\n paddings[position] = toFloat(value);\r\n }\r\n return paddings;\r\n}\r\n/**\r\n * Calculates content rectangle of provided SVG element.\r\n *\r\n * @param {SVGGraphicsElement} target - Element content rectangle of which needs\r\n * to be calculated.\r\n * @returns {DOMRectInit}\r\n */\r\nfunction getSVGContentRect(target) {\r\n var bbox = target.getBBox();\r\n return createRectInit(0, 0, bbox.width, bbox.height);\r\n}\r\n/**\r\n * Calculates content rectangle of provided HTMLElement.\r\n *\r\n * @param {HTMLElement} target - Element for which to calculate the content rectangle.\r\n * @returns {DOMRectInit}\r\n */\r\nfunction getHTMLElementContentRect(target) {\r\n // Client width & height properties can't be\r\n // used exclusively as they provide rounded values.\r\n var clientWidth = target.clientWidth, clientHeight = target.clientHeight;\r\n // By this condition we can catch all non-replaced inline, hidden and\r\n // detached elements. Though elements with width & height properties less\r\n // than 0.5 will be discarded as well.\r\n //\r\n // Without it we would need to implement separate methods for each of\r\n // those cases and it's not possible to perform a precise and performance\r\n // effective test for hidden elements. E.g. even jQuery's ':visible' filter\r\n // gives wrong results for elements with width & height less than 0.5.\r\n if (!clientWidth && !clientHeight) {\r\n return emptyRect;\r\n }\r\n var styles = getWindowOf(target).getComputedStyle(target);\r\n var paddings = getPaddings(styles);\r\n var horizPad = paddings.left + paddings.right;\r\n var vertPad = paddings.top + paddings.bottom;\r\n // Computed styles of width & height are being used because they are the\r\n // only dimensions available to JS that contain non-rounded values. It could\r\n // be possible to utilize the getBoundingClientRect if only it's data wasn't\r\n // affected by CSS transformations let alone paddings, borders and scroll bars.\r\n var width = toFloat(styles.width), height = toFloat(styles.height);\r\n // Width & height include paddings and borders when the 'border-box' box\r\n // model is applied (except for IE).\r\n if (styles.boxSizing === 'border-box') {\r\n // Following conditions are required to handle Internet Explorer which\r\n // doesn't include paddings and borders to computed CSS dimensions.\r\n //\r\n // We can say that if CSS dimensions + paddings are equal to the \"client\"\r\n // properties then it's either IE, and thus we don't need to subtract\r\n // anything, or an element merely doesn't have paddings/borders styles.\r\n if (Math.round(width + horizPad) !== clientWidth) {\r\n width -= getBordersSize(styles, 'left', 'right') + horizPad;\r\n }\r\n if (Math.round(height + vertPad) !== clientHeight) {\r\n height -= getBordersSize(styles, 'top', 'bottom') + vertPad;\r\n }\r\n }\r\n // Following steps can't be applied to the document's root element as its\r\n // client[Width/Height] properties represent viewport area of the window.\r\n // Besides, it's as well not necessary as the itself neither has\r\n // rendered scroll bars nor it can be clipped.\r\n if (!isDocumentElement(target)) {\r\n // In some browsers (only in Firefox, actually) CSS width & height\r\n // include scroll bars size which can be removed at this step as scroll\r\n // bars are the only difference between rounded dimensions + paddings\r\n // and \"client\" properties, though that is not always true in Chrome.\r\n var vertScrollbar = Math.round(width + horizPad) - clientWidth;\r\n var horizScrollbar = Math.round(height + vertPad) - clientHeight;\r\n // Chrome has a rather weird rounding of \"client\" properties.\r\n // E.g. for an element with content width of 314.2px it sometimes gives\r\n // the client width of 315px and for the width of 314.7px it may give\r\n // 314px. And it doesn't happen all the time. So just ignore this delta\r\n // as a non-relevant.\r\n if (Math.abs(vertScrollbar) !== 1) {\r\n width -= vertScrollbar;\r\n }\r\n if (Math.abs(horizScrollbar) !== 1) {\r\n height -= horizScrollbar;\r\n }\r\n }\r\n return createRectInit(paddings.left, paddings.top, width, height);\r\n}\r\n/**\r\n * Checks whether provided element is an instance of the SVGGraphicsElement.\r\n *\r\n * @param {Element} target - Element to be checked.\r\n * @returns {boolean}\r\n */\r\nvar isSVGGraphicsElement = (function () {\r\n // Some browsers, namely IE and Edge, don't have the SVGGraphicsElement\r\n // interface.\r\n if (typeof SVGGraphicsElement !== 'undefined') {\r\n return function (target) { return target instanceof getWindowOf(target).SVGGraphicsElement; };\r\n }\r\n // If it's so, then check that element is at least an instance of the\r\n // SVGElement and that it has the \"getBBox\" method.\r\n // eslint-disable-next-line no-extra-parens\r\n return function (target) { return (target instanceof getWindowOf(target).SVGElement &&\r\n typeof target.getBBox === 'function'); };\r\n})();\r\n/**\r\n * Checks whether provided element is a document element ().\r\n *\r\n * @param {Element} target - Element to be checked.\r\n * @returns {boolean}\r\n */\r\nfunction isDocumentElement(target) {\r\n return target === getWindowOf(target).document.documentElement;\r\n}\r\n/**\r\n * Calculates an appropriate content rectangle for provided html or svg element.\r\n *\r\n * @param {Element} target - Element content rectangle of which needs to be calculated.\r\n * @returns {DOMRectInit}\r\n */\r\nfunction getContentRect(target) {\r\n if (!isBrowser) {\r\n return emptyRect;\r\n }\r\n if (isSVGGraphicsElement(target)) {\r\n return getSVGContentRect(target);\r\n }\r\n return getHTMLElementContentRect(target);\r\n}\r\n/**\r\n * Creates rectangle with an interface of the DOMRectReadOnly.\r\n * Spec: https://drafts.fxtf.org/geometry/#domrectreadonly\r\n *\r\n * @param {DOMRectInit} rectInit - Object with rectangle's x/y coordinates and dimensions.\r\n * @returns {DOMRectReadOnly}\r\n */\r\nfunction createReadOnlyRect(_a) {\r\n var x = _a.x, y = _a.y, width = _a.width, height = _a.height;\r\n // If DOMRectReadOnly is available use it as a prototype for the rectangle.\r\n var Constr = typeof DOMRectReadOnly !== 'undefined' ? DOMRectReadOnly : Object;\r\n var rect = Object.create(Constr.prototype);\r\n // Rectangle's properties are not writable and non-enumerable.\r\n defineConfigurable(rect, {\r\n x: x, y: y, width: width, height: height,\r\n top: y,\r\n right: x + width,\r\n bottom: height + y,\r\n left: x\r\n });\r\n return rect;\r\n}\r\n/**\r\n * Creates DOMRectInit object based on the provided dimensions and the x/y coordinates.\r\n * Spec: https://drafts.fxtf.org/geometry/#dictdef-domrectinit\r\n *\r\n * @param {number} x - X coordinate.\r\n * @param {number} y - Y coordinate.\r\n * @param {number} width - Rectangle's width.\r\n * @param {number} height - Rectangle's height.\r\n * @returns {DOMRectInit}\r\n */\r\nfunction createRectInit(x, y, width, height) {\r\n return { x: x, y: y, width: width, height: height };\r\n}\n\n/**\r\n * Class that is responsible for computations of the content rectangle of\r\n * provided DOM element and for keeping track of it's changes.\r\n */\r\nvar ResizeObservation = /** @class */ (function () {\r\n /**\r\n * Creates an instance of ResizeObservation.\r\n *\r\n * @param {Element} target - Element to be observed.\r\n */\r\n function ResizeObservation(target) {\r\n /**\r\n * Broadcasted width of content rectangle.\r\n *\r\n * @type {number}\r\n */\r\n this.broadcastWidth = 0;\r\n /**\r\n * Broadcasted height of content rectangle.\r\n *\r\n * @type {number}\r\n */\r\n this.broadcastHeight = 0;\r\n /**\r\n * Reference to the last observed content rectangle.\r\n *\r\n * @private {DOMRectInit}\r\n */\r\n this.contentRect_ = createRectInit(0, 0, 0, 0);\r\n this.target = target;\r\n }\r\n /**\r\n * Updates content rectangle and tells whether it's width or height properties\r\n * have changed since the last broadcast.\r\n *\r\n * @returns {boolean}\r\n */\r\n ResizeObservation.prototype.isActive = function () {\r\n var rect = getContentRect(this.target);\r\n this.contentRect_ = rect;\r\n return (rect.width !== this.broadcastWidth ||\r\n rect.height !== this.broadcastHeight);\r\n };\r\n /**\r\n * Updates 'broadcastWidth' and 'broadcastHeight' properties with a data\r\n * from the corresponding properties of the last observed content rectangle.\r\n *\r\n * @returns {DOMRectInit} Last observed content rectangle.\r\n */\r\n ResizeObservation.prototype.broadcastRect = function () {\r\n var rect = this.contentRect_;\r\n this.broadcastWidth = rect.width;\r\n this.broadcastHeight = rect.height;\r\n return rect;\r\n };\r\n return ResizeObservation;\r\n}());\n\nvar ResizeObserverEntry = /** @class */ (function () {\r\n /**\r\n * Creates an instance of ResizeObserverEntry.\r\n *\r\n * @param {Element} target - Element that is being observed.\r\n * @param {DOMRectInit} rectInit - Data of the element's content rectangle.\r\n */\r\n function ResizeObserverEntry(target, rectInit) {\r\n var contentRect = createReadOnlyRect(rectInit);\r\n // According to the specification following properties are not writable\r\n // and are also not enumerable in the native implementation.\r\n //\r\n // Property accessors are not being used as they'd require to define a\r\n // private WeakMap storage which may cause memory leaks in browsers that\r\n // don't support this type of collections.\r\n defineConfigurable(this, { target: target, contentRect: contentRect });\r\n }\r\n return ResizeObserverEntry;\r\n}());\n\nvar ResizeObserverSPI = /** @class */ (function () {\r\n /**\r\n * Creates a new instance of ResizeObserver.\r\n *\r\n * @param {ResizeObserverCallback} callback - Callback function that is invoked\r\n * when one of the observed elements changes it's content dimensions.\r\n * @param {ResizeObserverController} controller - Controller instance which\r\n * is responsible for the updates of observer.\r\n * @param {ResizeObserver} callbackCtx - Reference to the public\r\n * ResizeObserver instance which will be passed to callback function.\r\n */\r\n function ResizeObserverSPI(callback, controller, callbackCtx) {\r\n /**\r\n * Collection of resize observations that have detected changes in dimensions\r\n * of elements.\r\n *\r\n * @private {Array}\r\n */\r\n this.activeObservations_ = [];\r\n /**\r\n * Registry of the ResizeObservation instances.\r\n *\r\n * @private {Map}\r\n */\r\n this.observations_ = new MapShim();\r\n if (typeof callback !== 'function') {\r\n throw new TypeError('The callback provided as parameter 1 is not a function.');\r\n }\r\n this.callback_ = callback;\r\n this.controller_ = controller;\r\n this.callbackCtx_ = callbackCtx;\r\n }\r\n /**\r\n * Starts observing provided element.\r\n *\r\n * @param {Element} target - Element to be observed.\r\n * @returns {void}\r\n */\r\n ResizeObserverSPI.prototype.observe = function (target) {\r\n if (!arguments.length) {\r\n throw new TypeError('1 argument required, but only 0 present.');\r\n }\r\n // Do nothing if current environment doesn't have the Element interface.\r\n if (typeof Element === 'undefined' || !(Element instanceof Object)) {\r\n return;\r\n }\r\n if (!(target instanceof getWindowOf(target).Element)) {\r\n throw new TypeError('parameter 1 is not of type \"Element\".');\r\n }\r\n var observations = this.observations_;\r\n // Do nothing if element is already being observed.\r\n if (observations.has(target)) {\r\n return;\r\n }\r\n observations.set(target, new ResizeObservation(target));\r\n this.controller_.addObserver(this);\r\n // Force the update of observations.\r\n this.controller_.refresh();\r\n };\r\n /**\r\n * Stops observing provided element.\r\n *\r\n * @param {Element} target - Element to stop observing.\r\n * @returns {void}\r\n */\r\n ResizeObserverSPI.prototype.unobserve = function (target) {\r\n if (!arguments.length) {\r\n throw new TypeError('1 argument required, but only 0 present.');\r\n }\r\n // Do nothing if current environment doesn't have the Element interface.\r\n if (typeof Element === 'undefined' || !(Element instanceof Object)) {\r\n return;\r\n }\r\n if (!(target instanceof getWindowOf(target).Element)) {\r\n throw new TypeError('parameter 1 is not of type \"Element\".');\r\n }\r\n var observations = this.observations_;\r\n // Do nothing if element is not being observed.\r\n if (!observations.has(target)) {\r\n return;\r\n }\r\n observations.delete(target);\r\n if (!observations.size) {\r\n this.controller_.removeObserver(this);\r\n }\r\n };\r\n /**\r\n * Stops observing all elements.\r\n *\r\n * @returns {void}\r\n */\r\n ResizeObserverSPI.prototype.disconnect = function () {\r\n this.clearActive();\r\n this.observations_.clear();\r\n this.controller_.removeObserver(this);\r\n };\r\n /**\r\n * Collects observation instances the associated element of which has changed\r\n * it's content rectangle.\r\n *\r\n * @returns {void}\r\n */\r\n ResizeObserverSPI.prototype.gatherActive = function () {\r\n var _this = this;\r\n this.clearActive();\r\n this.observations_.forEach(function (observation) {\r\n if (observation.isActive()) {\r\n _this.activeObservations_.push(observation);\r\n }\r\n });\r\n };\r\n /**\r\n * Invokes initial callback function with a list of ResizeObserverEntry\r\n * instances collected from active resize observations.\r\n *\r\n * @returns {void}\r\n */\r\n ResizeObserverSPI.prototype.broadcastActive = function () {\r\n // Do nothing if observer doesn't have active observations.\r\n if (!this.hasActive()) {\r\n return;\r\n }\r\n var ctx = this.callbackCtx_;\r\n // Create ResizeObserverEntry instance for every active observation.\r\n var entries = this.activeObservations_.map(function (observation) {\r\n return new ResizeObserverEntry(observation.target, observation.broadcastRect());\r\n });\r\n this.callback_.call(ctx, entries, ctx);\r\n this.clearActive();\r\n };\r\n /**\r\n * Clears the collection of active observations.\r\n *\r\n * @returns {void}\r\n */\r\n ResizeObserverSPI.prototype.clearActive = function () {\r\n this.activeObservations_.splice(0);\r\n };\r\n /**\r\n * Tells whether observer has active observations.\r\n *\r\n * @returns {boolean}\r\n */\r\n ResizeObserverSPI.prototype.hasActive = function () {\r\n return this.activeObservations_.length > 0;\r\n };\r\n return ResizeObserverSPI;\r\n}());\n\n// Registry of internal observers. If WeakMap is not available use current shim\r\n// for the Map collection as it has all required methods and because WeakMap\r\n// can't be fully polyfilled anyway.\r\nvar observers = typeof WeakMap !== 'undefined' ? new WeakMap() : new MapShim();\r\n/**\r\n * ResizeObserver API. Encapsulates the ResizeObserver SPI implementation\r\n * exposing only those methods and properties that are defined in the spec.\r\n */\r\nvar ResizeObserver = /** @class */ (function () {\r\n /**\r\n * Creates a new instance of ResizeObserver.\r\n *\r\n * @param {ResizeObserverCallback} callback - Callback that is invoked when\r\n * dimensions of the observed elements change.\r\n */\r\n function ResizeObserver(callback) {\r\n if (!(this instanceof ResizeObserver)) {\r\n throw new TypeError('Cannot call a class as a function.');\r\n }\r\n if (!arguments.length) {\r\n throw new TypeError('1 argument required, but only 0 present.');\r\n }\r\n var controller = ResizeObserverController.getInstance();\r\n var observer = new ResizeObserverSPI(callback, controller, this);\r\n observers.set(this, observer);\r\n }\r\n return ResizeObserver;\r\n}());\r\n// Expose public methods of ResizeObserver.\r\n[\r\n 'observe',\r\n 'unobserve',\r\n 'disconnect'\r\n].forEach(function (method) {\r\n ResizeObserver.prototype[method] = function () {\r\n var _a;\r\n return (_a = observers.get(this))[method].apply(_a, arguments);\r\n };\r\n});\n\nvar index = (function () {\r\n // Export existing implementation if available.\r\n if (typeof global$1.ResizeObserver !== 'undefined') {\r\n return global$1.ResizeObserver;\r\n }\r\n return ResizeObserver;\r\n})();\n\nexport default index;\n","import { NgModule, LOCALE_ID } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { registerLocaleData } from '@angular/common';\r\nimport localePe from '@angular/common/locales/es-PE';\r\nregisterLocaleData(localePe, 'es-PE');\r\nimport { MatToolbarModule } from '@angular/material/toolbar';\r\nimport { MatIconModule } from '@angular/material/icon';\r\nimport { MatButtonModule } from '@angular/material/button';\r\nimport { MatSidenavModule } from '@angular/material/sidenav';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { MatFormFieldModule } from '@angular/material/form-field';\r\nimport { MatCardModule } from '@angular/material/card';\r\nimport { MatProgressSpinnerModule } from '@angular/material/progress-spinner';\r\nimport { MatInputModule } from '@angular/material/input';\r\nimport { MatProgressBarModule } from '@angular/material/progress-bar';\r\nimport { MatSnackBarModule } from '@angular/material/snack-bar';\r\nimport { MatMenuModule } from '@angular/material/menu';\r\nimport { MatGridListModule } from '@angular/material/grid-list';\r\nimport { MatListModule } from '@angular/material/list';\r\nimport { MatStepperModule } from '@angular/material/stepper';\r\nimport { MatSelectModule } from '@angular/material/select';\r\nimport { FlexLayoutModule } from '@angular/flex-layout';\r\nimport { MatDatepickerModule } from '@angular/material/datepicker';\r\nimport { MatNativeDateModule } from '@angular/material/core';\r\nimport { IgxCalendarModule } from 'igniteui-angular';\r\nimport { MatCheckboxModule } from '@angular/material/checkbox';\r\nimport { MensajeDialogoComponent } from './mensaje-dialogo/mensaje-dialogo.component';\r\nimport { MAT_DIALOG_DEFAULT_OPTIONS } from '@angular/material/dialog';\r\nimport { MsgFinalCancelComponent } from './msg-final-cancel/msg-final-cancel.component';\r\nimport { MsgFinalExitoComponent } from './msg-final-exito/msg-final-exito.component';\r\nimport { MensajeDialogoOkComponent } from './mensaje-dialogo-ok/mensaje-dialogo-ok.component';\r\nimport {PopoverModule} from \"ngx-smart-popover\";\r\nimport {MatDialogModule} from '@angular/material/dialog';\r\nimport {MatExpansionModule} from '@angular/material/expansion';\r\nimport {MatSlideToggleModule} from '@angular/material/slide-toggle';\r\n\r\n/*TRANSLATE*/\r\nimport { TranslateModule, TranslateLoader } from '@ngx-translate/core';\r\nimport { HttpClient, HttpClientModule } from '@angular/common/http';\r\nimport { TranslateHttpLoader} from '@ngx-translate/http-loader';\r\nimport { MsgAlertComponent } from './msg-alert/msg-alert.component';\r\n\r\n\r\n\r\n@NgModule({\r\n declarations: [\r\n MensajeDialogoComponent,\r\n MsgFinalCancelComponent,\r\n MsgFinalExitoComponent,\r\n MensajeDialogoOkComponent,\r\n MsgAlertComponent],\r\n imports: [\r\n CommonModule,\r\n MatToolbarModule,\r\n MatIconModule,\r\n MatButtonModule,\r\n MatSidenavModule,\r\n FormsModule,\r\n ReactiveFormsModule,\r\n MatButtonModule,\r\n MatFormFieldModule,\r\n MatCardModule,\r\n MatProgressSpinnerModule,\r\n MatInputModule,\r\n MatProgressBarModule,\r\n MatSnackBarModule,\r\n MatMenuModule,\r\n MatListModule,\r\n MatStepperModule,\r\n MatSelectModule,\r\n FlexLayoutModule,\r\n MatDatepickerModule,\r\n MatNativeDateModule,\r\n IgxCalendarModule,\r\n MatCheckboxModule,\r\n MatGridListModule,\r\n HttpClientModule,\r\n PopoverModule,\r\n MatDialogModule,\r\n MatExpansionModule,\r\n MatSlideToggleModule,\r\n TranslateModule.forRoot({\r\n loader: {\r\n provide: TranslateLoader,\r\n useFactory: (http: HttpClient) => {\r\n return new TranslateHttpLoader(http);\r\n },\r\n deps: [HttpClient]\r\n }\r\n })\r\n ],\r\n providers: [{ provide: LOCALE_ID, useValue: 'es-PE' }, { provide: MAT_DIALOG_DEFAULT_OPTIONS, useValue: { hasBackdrop: true } }],\r\n exports: [],\r\n entryComponents: [MensajeDialogoComponent, MensajeDialogoOkComponent,MsgAlertComponent]\r\n})\r\nexport class ComponentsModule { }\r\n","export default \"::ng-deep .mat-dialog-container { \\r\\n}\\r\\n\\r\\n.content {\\r\\n text-align: center;\\r\\n align-items: center;\\r\\n}\\r\\n\\r\\n.msg {\\r\\n font-size: 16px;\\r\\n padding-bottom: 12px;\\r\\n /*font-family: Helvetica_Condensed !important;*/\\r\\n}\\r\\n\\r\\n.SI {\\r\\n font-size: 16px;\\r\\n /*font-family: Helvetica_Condensed !important;*/\\r\\n font-weight: 900;\\r\\n height: 50px;\\r\\n}\\r\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy9tZW5zYWplLWRpYWxvZ28tb2svbWVuc2FqZS1kaWFsb2dvLW9rLmNvbXBvbmVudC5jc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7QUFDQTs7QUFFQTtJQUNJLGtCQUFrQjtJQUNsQixtQkFBbUI7QUFDdkI7O0FBRUE7SUFDSSxlQUFlO0lBQ2Ysb0JBQW9CO0lBQ3BCLCtDQUErQztBQUNuRDs7QUFFQTtJQUNJLGVBQWU7SUFDZiwrQ0FBK0M7SUFDL0MsZ0JBQWdCO0lBQ2hCLFlBQVk7QUFDaEIiLCJmaWxlIjoic3JjL2FwcC9jb21wb25lbnRzL21lbnNhamUtZGlhbG9nby1vay9tZW5zYWplLWRpYWxvZ28tb2suY29tcG9uZW50LmNzcyIsInNvdXJjZXNDb250ZW50IjpbIjo6bmctZGVlcCAubWF0LWRpYWxvZy1jb250YWluZXIgeyBcclxufVxyXG5cclxuLmNvbnRlbnQge1xyXG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxufVxyXG5cclxuLm1zZyB7XHJcbiAgICBmb250LXNpemU6IDE2cHg7XHJcbiAgICBwYWRkaW5nLWJvdHRvbTogMTJweDtcclxuICAgIC8qZm9udC1mYW1pbHk6IEhlbHZldGljYV9Db25kZW5zZWQgIWltcG9ydGFudDsqL1xyXG59XHJcblxyXG4uU0kge1xyXG4gICAgZm9udC1zaXplOiAxNnB4O1xyXG4gICAgLypmb250LWZhbWlseTogSGVsdmV0aWNhX0NvbmRlbnNlZCAhaW1wb3J0YW50OyovXHJcbiAgICBmb250LXdlaWdodDogOTAwO1xyXG4gICAgaGVpZ2h0OiA1MHB4O1xyXG59Il19 */\"","import { Component, Inject } from '@angular/core';\r\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\r\nimport { MensajeDialogoModel } from 'src/app/models/mensaje-dialogo.model';\r\n\r\n@Component({\r\n selector: 'app-mensaje-dialogo-ok',\r\n templateUrl: './mensaje-dialogo-ok.component.html',\r\n styleUrls: ['./mensaje-dialogo-ok.component.css']\r\n})\r\nexport class MensajeDialogoOkComponent {\r\n\r\n constructor(\r\n public dialogRef: MatDialogRef,\r\n @Inject(MAT_DIALOG_DATA) public cConfirmModel: MensajeDialogoModel\r\n ) { }\r\n onYesClick(): void {\r\n this.cConfirmModel.sRespuesta = 'OK';\r\n this.dialogRef.close(`${this.cConfirmModel.sRespuesta}`);\r\n }\r\n}\r\n\r\n","export default \"::ng-deep .mat-dialog-container {\\r\\n \\r\\n}\\r\\n\\r\\n.content {\\r\\n text-align: center;\\r\\n align-items: center;\\r\\n height: auto;\\r\\n}\\r\\n\\r\\n.msg {\\r\\n width: 270px;\\r\\n font-size: 16px;\\r\\n margin: 20px auto 20px auto;\\r\\n /*font-family: Helvetica_Condensed !important;*/\\r\\n font-weight: 900;\\r\\n}\\r\\n\\r\\n.cancelar {\\r\\n margin-left: 10px;\\r\\n font-size: 16px;\\r\\n /*font-family: Helvetica_Condensed !important;*/\\r\\n font-weight: 900;\\r\\n height: 50px;\\r\\n}\\r\\n\\r\\n.no {\\r\\n margin-right: 10px;\\r\\n font-size: 16px;\\r\\n /*font-family: Helvetica_Condensed !important;*/\\r\\n font-weight: 900;\\r\\n height: 50px;\\r\\n}\\r\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy9tZW5zYWplLWRpYWxvZ28vbWVuc2FqZS1kaWFsb2dvLmNvbXBvbmVudC5jc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0FBRUE7O0FBRUE7SUFDSSxrQkFBa0I7SUFDbEIsbUJBQW1CO0lBQ25CLFlBQVk7QUFDaEI7O0FBRUE7SUFDSSxZQUFZO0lBQ1osZUFBZTtJQUNmLDJCQUEyQjtJQUMzQiwrQ0FBK0M7SUFDL0MsZ0JBQWdCO0FBQ3BCOztBQUVBO0lBQ0ksaUJBQWlCO0lBQ2pCLGVBQWU7SUFDZiwrQ0FBK0M7SUFDL0MsZ0JBQWdCO0lBQ2hCLFlBQVk7QUFDaEI7O0FBRUE7SUFDSSxrQkFBa0I7SUFDbEIsZUFBZTtJQUNmLCtDQUErQztJQUMvQyxnQkFBZ0I7SUFDaEIsWUFBWTtBQUNoQiIsImZpbGUiOiJzcmMvYXBwL2NvbXBvbmVudHMvbWVuc2FqZS1kaWFsb2dvL21lbnNhamUtZGlhbG9nby5jb21wb25lbnQuY3NzIiwic291cmNlc0NvbnRlbnQiOlsiOjpuZy1kZWVwIC5tYXQtZGlhbG9nLWNvbnRhaW5lciB7XHJcbiAgICAgXHJcbn1cclxuXHJcbi5jb250ZW50IHtcclxuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcclxuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XHJcbiAgICBoZWlnaHQ6IGF1dG87XHJcbn1cclxuXHJcbi5tc2cge1xyXG4gICAgd2lkdGg6IDI3MHB4O1xyXG4gICAgZm9udC1zaXplOiAxNnB4O1xyXG4gICAgbWFyZ2luOiAyMHB4IGF1dG8gMjBweCBhdXRvO1xyXG4gICAgLypmb250LWZhbWlseTogSGVsdmV0aWNhX0NvbmRlbnNlZCAhaW1wb3J0YW50OyovXHJcbiAgICBmb250LXdlaWdodDogOTAwO1xyXG59XHJcblxyXG4uY2FuY2VsYXIge1xyXG4gICAgbWFyZ2luLWxlZnQ6IDEwcHg7XHJcbiAgICBmb250LXNpemU6IDE2cHg7XHJcbiAgICAvKmZvbnQtZmFtaWx5OiBIZWx2ZXRpY2FfQ29uZGVuc2VkICFpbXBvcnRhbnQ7Ki9cclxuICAgIGZvbnQtd2VpZ2h0OiA5MDA7XHJcbiAgICBoZWlnaHQ6IDUwcHg7XHJcbn1cclxuXHJcbi5ubyB7XHJcbiAgICBtYXJnaW4tcmlnaHQ6IDEwcHg7XHJcbiAgICBmb250LXNpemU6IDE2cHg7XHJcbiAgICAvKmZvbnQtZmFtaWx5OiBIZWx2ZXRpY2FfQ29uZGVuc2VkICFpbXBvcnRhbnQ7Ki9cclxuICAgIGZvbnQtd2VpZ2h0OiA5MDA7XHJcbiAgICBoZWlnaHQ6IDUwcHg7XHJcbn0iXX0= */\"","import { Component, Inject } from '@angular/core';\r\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\r\nimport { MensajeDialogoModel } from 'src/app/models/mensaje-dialogo.model';\r\nimport { ConfigService } from 'src/app/services/config.service';\r\n\r\n@Component({\r\n selector: 'app-mensaje-dialogo',\r\n templateUrl: './mensaje-dialogo.component.html',\r\n styleUrls: ['./mensaje-dialogo.component.css']\r\n})\r\nexport class MensajeDialogoComponent {\r\n p_i_marca;\r\n constructor(\r\n public dialogRef: MatDialogRef,\r\n private cConfigService: ConfigService,\r\n @Inject(MAT_DIALOG_DATA) public cConfirmModel: MensajeDialogoModel\r\n ) { \r\n this.p_i_marca = cConfigService.onObtenerMarcaBase();\r\n }\r\n onYesClick(): void {\r\n this.cConfirmModel.sRespuesta = 'OK';\r\n this.dialogRef.close(`${this.cConfirmModel.sRespuesta}`);\r\n }\r\n onNoClick(): void {\r\n this.dialogRef.close();\r\n }\r\n ngAfterViewInit() {\r\n //ir arriba en la pagina\r\n let top = document.getElementById('top');\r\n if (top !== null) {\r\n top.scrollIntoView();\r\n top = null;\r\n }\r\n this.modificarFont();\r\n }\r\n modificarFont(){\r\n switch (this.p_i_marca) {\r\n case 1://subaru\r\n var list, index;\r\n list = document.getElementsByClassName(\"content\");\r\n for (index = 0; index < list.length; ++index) {\r\n list[index].style.fontFamily = \"AvenirNext-Regular\"\r\n }\r\n break;\r\n break;\r\n case 2://dfsk\r\n var list, index;\r\n list = document.getElementsByClassName(\"content\");\r\n for (index = 0; index < list.length; ++index) {\r\n list[index].style.fontFamily = \"HelveticaLTStd\"\r\n }\r\n break;\r\n case 3://bmw\r\n var list, index;\r\n list = document.getElementsByClassName(\"content\");\r\n for (index = 0; index < list.length; ++index) {\r\n list[index].style.fontFamily = \"AvenirNextLTPro\"\r\n }\r\n break;\r\n }\r\n }\r\n\r\n}\r\n","export default \".dialog-msg{\\r\\n width: 400px;\\r\\n font-family: 'Roboto monoespace'!important;\\r\\n}\\r\\n.titulo{\\r\\n font-family: 'Roboto monoespace'!important;\\r\\n}\\r\\n.detalleMensaje{\\r\\n font-family: 'Roboto monoespace'!important;\\r\\n}\\r\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy9tc2ctYWxlcnQvbXNnLWFsZXJ0LmNvbXBvbmVudC5jc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7SUFDSSxZQUFZO0lBQ1osMENBQTBDO0FBQzlDO0FBQ0E7SUFDSSwwQ0FBMEM7QUFDOUM7QUFDQTtJQUNJLDBDQUEwQztBQUM5QyIsImZpbGUiOiJzcmMvYXBwL2NvbXBvbmVudHMvbXNnLWFsZXJ0L21zZy1hbGVydC5jb21wb25lbnQuY3NzIiwic291cmNlc0NvbnRlbnQiOlsiLmRpYWxvZy1tc2d7XHJcbiAgICB3aWR0aDogNDAwcHg7XHJcbiAgICBmb250LWZhbWlseTogJ1JvYm90byBtb25vZXNwYWNlJyFpbXBvcnRhbnQ7XHJcbn1cclxuLnRpdHVsb3tcclxuICAgIGZvbnQtZmFtaWx5OiAnUm9ib3RvIG1vbm9lc3BhY2UnIWltcG9ydGFudDtcclxufVxyXG4uZGV0YWxsZU1lbnNhamV7XHJcbiAgICBmb250LWZhbWlseTogJ1JvYm90byBtb25vZXNwYWNlJyFpbXBvcnRhbnQ7XHJcbn0iXX0= */\"","import { Component, OnInit, Inject } from '@angular/core';\r\nimport { MensajeDialogoComponent } from '../mensaje-dialogo/mensaje-dialogo.component';\r\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material';\r\nimport { MensajeDialogoModel } from 'src/app/models/mensaje-dialogo.model';\r\n\r\n@Component({\r\n selector: 'app-msg-alert',\r\n templateUrl: './msg-alert.component.html',\r\n styleUrls: ['./msg-alert.component.css']\r\n})\r\nexport class MsgAlertComponent implements OnInit {\r\n data;\r\n constructor(\r\n public dialogRef: MatDialogRef,\r\n @Inject(MAT_DIALOG_DATA) public cConfirmModel: MensajeDialogoModel\r\n ) { }\r\n\r\n ngOnInit() {\r\n this.data = this.cConfirmModel;\r\n }\r\n\r\n}\r\n","export default \".idMensajeFinal{\\r\\n text-align: center;\\r\\n width: 275px;\\r\\n}\\r\\n\\r\\n.icon{\\r\\n width: 52px;\\r\\n margin-bottom: 27.5px;\\r\\n}\\r\\n\\r\\n.msg{\\r\\n font-size: 30px;\\r\\n color: #FFFFFF;\\r\\n margin: 0;\\r\\n margin-bottom: 20.5px;\\r\\n word-spacing: 5px;\\r\\n}\\r\\n\\r\\n.btn{\\r\\n border: 1px solid #FFFFFF;\\r\\n color: #FFFFFF;\\r\\n font-size: 16px;\\r\\n padding: 6px 25.1px 6px 25.1px;\\r\\n background: transparent;\\r\\n /*font-family: Helvetica_Condensed !important;*/\\r\\n font-weight: 900;\\r\\n}\\r\\n\\r\\n@media only screen and (max-width: 600px) {\\r\\n .msg{\\r\\n font-size: 30px;\\r\\n margin: 0;\\r\\n margin-bottom: 20.5px;\\r\\n color: #FFFFFF;\\r\\n }\\r\\n\\r\\n .idMensajeFinal{\\r\\n margin-top: 60px;\\r\\n width: 250px;\\r\\n }\\r\\n}\\r\\n\\r\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy9tc2ctZmluYWwtY2FuY2VsL21zZy1maW5hbC1jYW5jZWwuY29tcG9uZW50LmNzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtFQUNFLGtCQUFrQjtFQUNsQixZQUFZO0FBQ2Q7O0FBRUE7RUFDRSxXQUFXO0VBQ1gscUJBQXFCO0FBQ3ZCOztBQUVBO0VBQ0UsZUFBZTtFQUNmLGNBQWM7RUFDZCxTQUFTO0VBQ1QscUJBQXFCO0VBQ3JCLGlCQUFpQjtBQUNuQjs7QUFFQTtFQUNFLHlCQUF5QjtFQUN6QixjQUFjO0VBQ2QsZUFBZTtFQUNmLDhCQUE4QjtFQUM5Qix1QkFBdUI7RUFDdkIsK0NBQStDO0VBQy9DLGdCQUFnQjtBQUNsQjs7QUFFQTtFQUNFO0lBQ0UsZUFBZTtJQUNmLFNBQVM7SUFDVCxxQkFBcUI7SUFDckIsY0FBYztFQUNoQjs7RUFFQTtJQUNFLGdCQUFnQjtJQUNoQixZQUFZO0VBQ2Q7QUFDRiIsImZpbGUiOiJzcmMvYXBwL2NvbXBvbmVudHMvbXNnLWZpbmFsLWNhbmNlbC9tc2ctZmluYWwtY2FuY2VsLmNvbXBvbmVudC5jc3MiLCJzb3VyY2VzQ29udGVudCI6WyIuaWRNZW5zYWplRmluYWx7XHJcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG4gIHdpZHRoOiAyNzVweDtcclxufVxyXG5cclxuLmljb257XHJcbiAgd2lkdGg6IDUycHg7XHJcbiAgbWFyZ2luLWJvdHRvbTogMjcuNXB4O1xyXG59XHJcblxyXG4ubXNne1xyXG4gIGZvbnQtc2l6ZTogMzBweDtcclxuICBjb2xvcjogI0ZGRkZGRjtcclxuICBtYXJnaW46IDA7XHJcbiAgbWFyZ2luLWJvdHRvbTogMjAuNXB4O1xyXG4gIHdvcmQtc3BhY2luZzogNXB4O1xyXG59XHJcblxyXG4uYnRue1xyXG4gIGJvcmRlcjogMXB4IHNvbGlkICNGRkZGRkY7XHJcbiAgY29sb3I6ICNGRkZGRkY7XHJcbiAgZm9udC1zaXplOiAxNnB4O1xyXG4gIHBhZGRpbmc6IDZweCAyNS4xcHggNnB4IDI1LjFweDtcclxuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcclxuICAvKmZvbnQtZmFtaWx5OiBIZWx2ZXRpY2FfQ29uZGVuc2VkICFpbXBvcnRhbnQ7Ki9cclxuICBmb250LXdlaWdodDogOTAwO1xyXG59XHJcblxyXG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDYwMHB4KSB7XHJcbiAgLm1zZ3tcclxuICAgIGZvbnQtc2l6ZTogMzBweDtcclxuICAgIG1hcmdpbjogMDtcclxuICAgIG1hcmdpbi1ib3R0b206IDIwLjVweDtcclxuICAgIGNvbG9yOiAjRkZGRkZGO1xyXG4gIH1cclxuXHJcbiAgLmlkTWVuc2FqZUZpbmFse1xyXG4gICAgbWFyZ2luLXRvcDogNjBweDtcclxuICAgIHdpZHRoOiAyNTBweDtcclxuICB9XHJcbn1cclxuIl19 */\"","import { Component, OnInit, ChangeDetectorRef } from '@angular/core';\r\nimport { Router } from '@angular/router';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { MediaMatcher } from '@angular/cdk/layout';\r\nimport { ImagenesService } from 'src/app/services/imagenes/imagenes.service';\r\nimport { ConfigService } from 'src/app/services/config.service';\r\n\r\n\r\n@Component({\r\n selector: 'app-msg-final-cancel',\r\n templateUrl: './msg-final-cancel.component.html',\r\n styleUrls: ['./msg-final-cancel.component.css']\r\n})\r\nexport class MsgFinalCancelComponent implements OnInit {\r\n public activeLang = 'es';\r\n mobileQuery: MediaQueryList;\r\n public urlBucketS3 = localStorage.getItem(\"UrlBucketS3\");\r\n p_i_marca;\r\n constructor(\r\n private translate: TranslateService,\r\n private cRouter: Router,\r\n changeDetectorRef: ChangeDetectorRef,\r\n media: MediaMatcher,\r\n cConfigService:ConfigService,\r\n private cImagenesService: ImagenesService) {\r\n this.translate.setDefaultLang(this.activeLang);\r\n this.mobileQuery = media.matchMedia('(max-width: 600px)');\r\n this._mobileQueryListener = () => changeDetectorRef.detectChanges();\r\n this.mobileQuery.addListener(this._mobileQueryListener);\r\n this.p_i_marca = cConfigService.onObtenerMarcaBase();\r\n }\r\n\r\n ngOnInit() {\r\n this.onGetFoto();\r\n }\r\n\r\n onGetFoto() {\r\n if (this.mobileQuery.matches) {\r\n var oData = {\r\n identifier: 'AgendaCancel',\r\n p_i_marca:this.p_i_marca,\r\n isPublished:true\r\n }\r\n\r\n } else {\r\n var oData = {\r\n identifier: 'AgendaCancelMobile',\r\n p_i_marca: this.p_i_marca,\r\n isPublished:true\r\n }\r\n }\r\n\r\n this.cImagenesService.onGetImagen(oData).subscribe(resp => {\r\n let imagenHomeAux = [];\r\n resp.forEach(element => {\r\n imagenHomeAux.push(element);\r\n this.onSetFoto(imagenHomeAux);\r\n });\r\n });\r\n }\r\n\r\n onSetFoto(oData) {\r\n if (oData.length !== 0) { \r\n let element = this.urlBucketS3 + oData[0].MainImageRelative;\r\n document.getElementById('body-general').style.background = \"url('\" + [element] + \"')\";\r\n document.getElementById('body-general').style.backgroundRepeat = 'no-repeat';\r\n if (this.mobileQuery.matches) {\r\n document.getElementById('body-general').style.backgroundSize = 'auto';\r\n } else {\r\n document.getElementById('body-general').style.backgroundSize = 'cover';\r\n } \r\n } else {\r\n if (this.mobileQuery.matches) {\r\n document.getElementById('body-general').style.backgroundColor=\"white\";\r\n document.getElementById('body-general').style.backgroundRepeat = 'no-repeat'; \r\n document.getElementById('body-general').style.backgroundSize = 'auto';\r\n } else {\r\n document.getElementById('body-general').style.backgroundColor=\"white\";\r\n document.getElementById('body-general').style.backgroundRepeat = 'no-repeat'; \r\n document.getElementById('body-general').style.backgroundSize = 'cover';\r\n }\r\n }\r\n }\r\n\r\n onGoHome() {\r\n this.cRouter.navigateByUrl('/');\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.mobileQuery.removeListener(this._mobileQueryListener);\r\n }\r\n private _mobileQueryListener: () => void;\r\n\r\n shouldRun = [/(^|\\.)plnkr\\.co$/, /(^|\\.)stackblitz\\.io$/].some(h => h.test(window.location.host));\r\n\r\n\r\n}\r\n","export default \".idMensajeFinal{\\r\\n text-align: center;\\r\\n\\r\\n}\\r\\n\\r\\n.icon{\\r\\n width: 52px;\\r\\n margin-bottom: 27.5px;\\r\\n}\\r\\n\\r\\n.msg{\\r\\n font-size: 30px !important;\\r\\n color: #FFFFFF;\\r\\n margin: 0;\\r\\n margin-bottom: 22.5px;\\r\\n word-spacing: 5px;\\r\\n}\\r\\n\\r\\n.texto{\\r\\n font-size: 16px;\\r\\n color: #FFFFFF;\\r\\n margin: 0;\\r\\n margin-bottom: 21px;\\r\\n /*font-family: Helvetica_Condensed !important;*/\\r\\n}\\r\\n\\r\\n.btn{\\r\\n border: 1px solid #FFFFFF;\\r\\n color: #FFFFFF;\\r\\n font-size: 16px;\\r\\n padding: 6px 25.1px 6px 25.1px;\\r\\n background: transparent;\\r\\n /*font-family: Helvetica_Condensed !important;*/\\r\\n font-weight: 900;\\r\\n}\\r\\n\\r\\n@media only screen and (max-width: 600px) {\\r\\n .idMensajeFinal{\\r\\n margin-top: 60px;\\r\\n }\\r\\n\\r\\n .msg{\\r\\n font-size: 36px;\\r\\n margin: 0;\\r\\n margin-bottom: 22.5px;\\r\\n color: #FFFFFF;\\r\\n }\\r\\n\\r\\n}\\r\\n\\r\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy9tc2ctZmluYWwtZXhpdG8vbXNnLWZpbmFsLWV4aXRvLmNvbXBvbmVudC5jc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7RUFDRSxrQkFBa0I7O0FBRXBCOztBQUVBO0VBQ0UsV0FBVztFQUNYLHFCQUFxQjtBQUN2Qjs7QUFFQTtFQUNFLDBCQUEwQjtFQUMxQixjQUFjO0VBQ2QsU0FBUztFQUNULHFCQUFxQjtFQUNyQixpQkFBaUI7QUFDbkI7O0FBRUE7RUFDRSxlQUFlO0VBQ2YsY0FBYztFQUNkLFNBQVM7RUFDVCxtQkFBbUI7RUFDbkIsK0NBQStDO0FBQ2pEOztBQUVBO0VBQ0UseUJBQXlCO0VBQ3pCLGNBQWM7RUFDZCxlQUFlO0VBQ2YsOEJBQThCO0VBQzlCLHVCQUF1QjtFQUN2QiwrQ0FBK0M7RUFDL0MsZ0JBQWdCO0FBQ2xCOztBQUVBO0VBQ0U7SUFDRSxnQkFBZ0I7RUFDbEI7O0VBRUE7SUFDRSxlQUFlO0lBQ2YsU0FBUztJQUNULHFCQUFxQjtJQUNyQixjQUFjO0VBQ2hCOztBQUVGIiwiZmlsZSI6InNyYy9hcHAvY29tcG9uZW50cy9tc2ctZmluYWwtZXhpdG8vbXNnLWZpbmFsLWV4aXRvLmNvbXBvbmVudC5jc3MiLCJzb3VyY2VzQ29udGVudCI6WyIuaWRNZW5zYWplRmluYWx7XHJcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG5cclxufVxyXG5cclxuLmljb257XHJcbiAgd2lkdGg6IDUycHg7XHJcbiAgbWFyZ2luLWJvdHRvbTogMjcuNXB4O1xyXG59XHJcblxyXG4ubXNne1xyXG4gIGZvbnQtc2l6ZTogMzBweCAhaW1wb3J0YW50O1xyXG4gIGNvbG9yOiAjRkZGRkZGO1xyXG4gIG1hcmdpbjogMDtcclxuICBtYXJnaW4tYm90dG9tOiAyMi41cHg7XHJcbiAgd29yZC1zcGFjaW5nOiA1cHg7XHJcbn1cclxuXHJcbi50ZXh0b3tcclxuICBmb250LXNpemU6IDE2cHg7XHJcbiAgY29sb3I6ICNGRkZGRkY7XHJcbiAgbWFyZ2luOiAwO1xyXG4gIG1hcmdpbi1ib3R0b206IDIxcHg7XHJcbiAgLypmb250LWZhbWlseTogSGVsdmV0aWNhX0NvbmRlbnNlZCAhaW1wb3J0YW50OyovXHJcbn1cclxuXHJcbi5idG57XHJcbiAgYm9yZGVyOiAxcHggc29saWQgI0ZGRkZGRjtcclxuICBjb2xvcjogI0ZGRkZGRjtcclxuICBmb250LXNpemU6IDE2cHg7XHJcbiAgcGFkZGluZzogNnB4IDI1LjFweCA2cHggMjUuMXB4O1xyXG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xyXG4gIC8qZm9udC1mYW1pbHk6IEhlbHZldGljYV9Db25kZW5zZWQgIWltcG9ydGFudDsqL1xyXG4gIGZvbnQtd2VpZ2h0OiA5MDA7XHJcbn1cclxuXHJcbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogNjAwcHgpIHtcclxuICAuaWRNZW5zYWplRmluYWx7XHJcbiAgICBtYXJnaW4tdG9wOiA2MHB4O1xyXG4gIH1cclxuXHJcbiAgLm1zZ3tcclxuICAgIGZvbnQtc2l6ZTogMzZweDtcclxuICAgIG1hcmdpbjogMDtcclxuICAgIG1hcmdpbi1ib3R0b206IDIyLjVweDtcclxuICAgIGNvbG9yOiAjRkZGRkZGO1xyXG4gIH1cclxuXHJcbn1cclxuIl19 */\"","import { Component, OnInit, ChangeDetectorRef } from '@angular/core';\r\nimport { Router } from '@angular/router';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { MediaMatcher } from '@angular/cdk/layout';\r\nimport { ImagenesService } from 'src/app/services/imagenes/imagenes.service';\r\nimport { ConfigService } from 'src/app/services/config.service';\r\nimport { AgendarGeneralService } from 'src/app/services/agendar-general.service';\r\nimport { SesionService } from 'src/app/services/sesion/sesion.service';\r\n\r\n\r\n@Component({\r\n selector: 'app-msg-final-exito',\r\n templateUrl: './msg-final-exito.component.html',\r\n styleUrls: ['./msg-final-exito.component.css']\r\n})\r\nexport class MsgFinalExitoComponent implements OnInit {\r\n public activeLang = 'es';\r\n public urlBucketS3 = localStorage.getItem(\"UrlBucketS3\");\r\n mobileQuery: MediaQueryList;\r\n p_i_marca;\r\n constructor(\r\n private cSesionService: SesionService,\r\n private translate: TranslateService,\r\n private cRouter: Router,\r\n changeDetectorRef: ChangeDetectorRef,\r\n cConfigService: ConfigService,\r\n public cAgendarGeneralService: AgendarGeneralService,\r\n media: MediaMatcher,\r\n private cImagenesService: ImagenesService) {\r\n this.translate.setDefaultLang(this.activeLang);\r\n this.mobileQuery = media.matchMedia('(max-width: 600px)');\r\n //this._mobileQueryListener = () => changeDetectorRef.detectChanges();\r\n //this.mobileQuery.addListener(this._mobileQueryListener);\r\n this.p_i_marca = cConfigService.onObtenerMarcaBase();\r\n }\r\n\r\n ngOnInit() {\r\n this.onGetFoto();\r\n }\r\n ngAfterViewInit() {\r\n this.modificarFont();\r\n }\r\n modificarFont() {\r\n switch (this.p_i_marca) {\r\n case 1://subaru\r\n var list, index;\r\n list = document.getElementsByClassName(\"example-container\");\r\n for (index = 0; index < list.length; ++index) {\r\n list[index].style.fontFamily = \"AvenirNext-Regular\"\r\n }\r\n break;\r\n break;\r\n case 2://dfsk\r\n var list, index;\r\n list = document.getElementsByClassName(\"example-container\");\r\n for (index = 0; index < list.length; ++index) {\r\n list[index].style.fontFamily = \"HelveticaLTStd\"\r\n }\r\n break;\r\n case 3://bmw\r\n var list, index;\r\n list = document.getElementsByClassName(\"example-container\");\r\n for (index = 0; index < list.length; ++index) {\r\n list[index].style.fontFamily = \"AvenirNextLTPro\"\r\n }\r\n break;\r\n }\r\n }\r\n onGetFoto() {\r\n var oData;\r\n if (this.mobileQuery.matches) {\r\n oData = {\r\n masterUserId: localStorage.getItem(\"MasterUserId\"),\r\n companyId: localStorage.getItem(\"CompanyId\"),\r\n contentId: null,\r\n brandId: localStorage.getItem(\"BrandId\"),\r\n parentId: null,\r\n identifier: 'AgendaSuccessMobile',\r\n isPublished: true\r\n }\r\n } else {\r\n oData = {\r\n masterUserId: localStorage.getItem(\"MasterUserId\"),\r\n companyId: localStorage.getItem(\"CompanyId\"),\r\n contentId: null,\r\n brandId: localStorage.getItem(\"BrandId\"),\r\n parentId: null,\r\n identifier: 'AgendaSuccess',\r\n isPublished: true\r\n }\r\n }\r\n this.cImagenesService.onGetImagen(oData).subscribe(resp => {\r\n let imagenHomeAux = [];\r\n resp.forEach(element => {\r\n imagenHomeAux.push(element);\r\n });\r\n this.onSetFoto(imagenHomeAux);\r\n });\r\n }\r\n\r\n onSetFoto(oData) {\r\n\r\n if (oData.length !== 0) {\r\n let element = this.urlBucketS3 + oData[0].MainImageRelative;\r\n document.getElementById('body-general').style.background = \"url('\" + [element] + \"')\";\r\n document.getElementById('body-general').style.backgroundRepeat = 'no-repeat';\r\n if (this.mobileQuery.matches) {\r\n document.getElementById('body-general').style.backgroundSize = 'auto';\r\n } else {\r\n document.getElementById('body-general').style.backgroundSize = 'cover';\r\n document.getElementById('body-general').style.backgroundPosition = 'center center'; \r\n\r\n } \r\n } else {\r\n if (this.mobileQuery.matches) {\r\n document.getElementById('body-general').style.backgroundColor=\"white\";\r\n document.getElementById('body-general').style.backgroundRepeat = 'no-repeat'; \r\n document.getElementById('body-general').style.backgroundSize = 'auto';\r\n } else {\r\n document.getElementById('body-general').style.backgroundColor=\"white\";\r\n document.getElementById('body-general').style.backgroundRepeat = 'no-repeat'; \r\n document.getElementById('body-general').style.backgroundSize = 'cover';\r\n }\r\n }\r\n }\r\n onGoHome() {\r\n this.cAgendarGeneralService.fnRestaurarReservaSesion();\r\n var odata = {\r\n \"sessionId\": localStorage.getItem('SessionId')\r\n }\r\n this.cSesionService.onCerrarSesion(odata).subscribe(resp => {\r\n localStorage.setItem('SessionId', \"\");\r\n localStorage.setItem('CredentialId', \"\");\r\n localStorage.setItem('UserData', \"\");\r\n this.cRouter.navigateByUrl('/');\r\n }, err => {\r\n });\r\n }\r\n\r\n // ngOnDestroy(): void {\r\n // this.mobileQuery.removeListener(this._mobileQueryListener);\r\n // }\r\n // private _mobileQueryListener: () => void;\r\n\r\n // shouldRun = [/(^|\\.)plnkr\\.co$/, /(^|\\.)stackblitz\\.io$/].some(h => h.test(window.location.host));\r\n\r\n}\r\n","export default \"/*=====================INICIO - HEADER=====================*/\\r\\n:host {\\r\\n display: flex;\\r\\n flex-direction: column;\\r\\n height: 100%;\\r\\n}\\r\\n.mat-toolbar {\\r\\n background: #ffffff;\\r\\n padding: 0px!important;\\r\\n border-bottom: 1px solid #ebebeb; \\r\\n width: 100%;\\r\\n left: 0;\\r\\n /* Posicionamos la cabecera al lado izquierdo */\\r\\n top: 0;\\r\\n /* Posicionamos la cabecera pegada arriba */\\r\\n}\\r\\n/* .button-logon {\\r\\n font-family: 'Roboto monoespace';\\r\\n}\\r\\n\\r\\n::ng-deep mat-tooltip {\\r\\n font-family: 'Roboto monoespace'!important;\\r\\n} */\\r\\n.homeImagen-dfsk {\\r\\n padding: 25px;\\r\\n width: 130px;\\r\\n height: 30px;\\r\\n}\\r\\n.homeImagen-bmw {\\r\\n width: 50px;\\r\\n}\\r\\n.homeImagen-subaru {\\r\\n height: 60px;\\r\\n}\\r\\n/* .mat-toolbar {\\r\\n background: #ffffff;\\r\\n border-bottom: 1px solid #ebebeb;\\r\\n height: 60px;\\r\\n} */\\r\\n.imagen {\\r\\n width: 145px;\\r\\n margin-top: 10px;\\r\\n}\\r\\n.telefono {\\r\\n width: -webkit-fit-content;\\r\\n width: -moz-fit-content;\\r\\n width: fit-content;\\r\\n word-spacing: 5px;\\r\\n}\\r\\n.iconTelefono {\\r\\n width: 20px; \\r\\n}\\r\\n.numero {\\r\\n font-size: 12px;\\r\\n color: #000000; \\r\\n \\r\\n font-weight: 900;\\r\\n}\\r\\n@media only screen and (max-width: 460px) {\\r\\n .numero {\\r\\n font-size: 14px !important;\\r\\n }\\r\\n .imagen {\\r\\n width: 95.75px !important;\\r\\n }\\r\\n .scroll-activate {\\r\\n height: 100%;\\r\\n overflow-x: auto;\\r\\n }\\r\\n .scroll-activate::-webkit-scrollbar {\\r\\n display: none;\\r\\n }\\r\\n}\\r\\n/*=====================FIN - HEADER=====================*/\\r\\n.login {\\r\\n margin-left: 40px !important;\\r\\n margin-right: 40px !important;\\r\\n margin-top: 50px !important;\\r\\n padding: 20px !important;\\r\\n}\\r\\n.texto {\\r\\n font-size: 24px;\\r\\n margin: 0;\\r\\n}\\r\\n.texto.negro {\\r\\n color: black;\\r\\n}\\r\\n.texto.rojo {\\r\\n color: #ff000e;\\r\\n}\\r\\n.hint {\\r\\n font-size: 16px;\\r\\n margin: 0;\\r\\n margin-bottom: 8px;\\r\\n margin-top: 5px;\\r\\n\\r\\n font-weight: 900;\\r\\n}\\r\\n.input {\\r\\n font-size: 16px;\\r\\n width: 100%;\\r\\n}\\r\\n.mat-card .mat-divider-horizontal {\\r\\n position: relative;\\r\\n}\\r\\n.button {\\r\\n font-size: 16px;\\r\\n width: 100%;\\r\\n border-radius: 5px;\\r\\n opacity: 1;\\r\\n height: 50px;\\r\\n\\r\\n font-weight: 900;\\r\\n text-transform: uppercase;\\r\\n}\\r\\n.button-home {\\r\\n font-size: 16px;\\r\\n\\r\\n font-weight: 900;\\r\\n}\\r\\n.button-agendar {\\r\\n width: 100%;\\r\\n font-size: 16px;\\r\\n\\r\\n font-weight: 900;\\r\\n height: 50px;\\r\\n text-transform: uppercase;\\r\\n}\\r\\n.button.reservar {\\r\\n background: #FFD3D3 0% 0% no-repeat padding-box;\\r\\n color: white;\\r\\n margin-bottom: 15px;\\r\\n}\\r\\n.button.consultar {\\r\\n border: 1px solid #c8c8c8;\\r\\n border-radius: 5px;\\r\\n margin-top: 15px;\\r\\n}\\r\\n::ng-deep .mat-option {\\r\\n\\r\\n font-weight: 900;\\r\\n}\\r\\n::ng-deep .mat-select-value-text{\\r\\n \\r\\n\\r\\n font-weight: 900;\\r\\n}\\r\\n::ng-deep .mat-form-field {\\r\\n\\r\\n font-weight: 900;\\r\\n}\\r\\n::ng-deep .mat-form-field-appearance-outline.mat-form-field-disabled .mat-form-field-outline {\\r\\n color: #CCCCCC;\\r\\n}\\r\\n::ng-deep .mat-form-field-appearance-outline .mat-form-field-outline {\\r\\n color: #CCCCCC;\\r\\n}\\r\\n@media only screen and (max-width: 600px) {\\r\\n #back {\\r\\n background: white;\\r\\n }\\r\\n .login {\\r\\n margin-left: 20px !important;\\r\\n margin-right: 20px !important;\\r\\n margin-top: 20px !important;\\r\\n margin-bottom: 20px !important;\\r\\n padding: 20px !important;\\r\\n }\\r\\n .texto {\\r\\n font-size: 20px !important;\\r\\n }\\r\\n .hint {\\r\\n font-size: 16px;\\r\\n }\\r\\n}\\r\\n@media only screen and (max-width: 460px) {\\r\\n .numero {\\r\\n font-size: 14px !important;\\r\\n }\\r\\n .imagen {\\r\\n width: 95.75px !important;\\r\\n height: 22px !important; \\r\\n }\\r\\n}\\r\\n.linkLibro{\\r\\n font-size: 15px;\\r\\n padding: 10px;\\r\\n text-decoration: none;\\r\\n color: rgb(107, 107, 116);\\r\\n}\\r\\n.linkIcono{\\r\\n font-size: 27px;\\r\\n padding: 10px;\\r\\n text-decoration: none;\\r\\n color: rgb(107, 107, 116);\\r\\n}\\r\\n\\r\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvcGFnZXMvY29uc3VsdGFyL2NvbnN1bHRhci5jb21wb25lbnQuY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLDREQUE0RDtBQUM1RDtJQUNJLGFBQWE7SUFDYixzQkFBc0I7SUFDdEIsWUFBWTtBQUNoQjtBQUNBO0lBQ0ksbUJBQW1CO0lBQ25CLHNCQUFzQjtJQUN0QixnQ0FBZ0M7SUFDaEMsV0FBVztJQUNYLE9BQU87SUFDUCwrQ0FBK0M7SUFDL0MsTUFBTTtJQUNOLDJDQUEyQztBQUMvQztBQUdBOzs7Ozs7R0FNRztBQUVIO0lBQ0ksYUFBYTtJQUNiLFlBQVk7SUFDWixZQUFZO0FBQ2hCO0FBRUE7SUFDSSxXQUFXO0FBQ2Y7QUFFQTtJQUNJLFlBQVk7QUFDaEI7QUFFQTs7OztHQUlHO0FBRUg7SUFDSSxZQUFZO0lBQ1osZ0JBQWdCO0FBQ3BCO0FBRUE7SUFDSSwwQkFBa0I7SUFBbEIsdUJBQWtCO0lBQWxCLGtCQUFrQjtJQUNsQixpQkFBaUI7QUFDckI7QUFFQTtJQUNJLFdBQVc7QUFDZjtBQUVBO0lBQ0ksZUFBZTtJQUNmLGNBQWM7O0lBRWQsZ0JBQWdCO0FBQ3BCO0FBRUE7SUFDSTtRQUNJLDBCQUEwQjtJQUM5QjtJQUNBO1FBQ0kseUJBQXlCO0lBQzdCO0lBQ0E7UUFDSSxZQUFZO1FBQ1osZ0JBQWdCO0lBQ3BCO0lBQ0E7UUFDSSxhQUFhO0lBQ2pCO0FBQ0o7QUFHQSx5REFBeUQ7QUFFekQ7SUFDSSw0QkFBNEI7SUFDNUIsNkJBQTZCO0lBQzdCLDJCQUEyQjtJQUMzQix3QkFBd0I7QUFDNUI7QUFFQTtJQUNJLGVBQWU7SUFDZixTQUFTO0FBQ2I7QUFFQTtJQUNJLFlBQVk7QUFDaEI7QUFFQTtJQUNJLGNBQWM7QUFDbEI7QUFFQTtJQUNJLGVBQWU7SUFDZixTQUFTO0lBQ1Qsa0JBQWtCO0lBQ2xCLGVBQWU7O0lBRWYsZ0JBQWdCO0FBQ3BCO0FBRUE7SUFDSSxlQUFlO0lBQ2YsV0FBVztBQUNmO0FBRUE7SUFDSSxrQkFBa0I7QUFDdEI7QUFFQTtJQUNJLGVBQWU7SUFDZixXQUFXO0lBQ1gsa0JBQWtCO0lBQ2xCLFVBQVU7SUFDVixZQUFZOztJQUVaLGdCQUFnQjtJQUNoQix5QkFBeUI7QUFDN0I7QUFFQTtJQUNJLGVBQWU7O0lBRWYsZ0JBQWdCO0FBQ3BCO0FBRUE7SUFDSSxXQUFXO0lBQ1gsZUFBZTs7SUFFZixnQkFBZ0I7SUFDaEIsWUFBWTtJQUNaLHlCQUF5QjtBQUM3QjtBQUVBO0lBQ0ksK0NBQStDO0lBQy9DLFlBQVk7SUFDWixtQkFBbUI7QUFDdkI7QUFFQTtJQUNJLHlCQUF5QjtJQUN6QixrQkFBa0I7SUFDbEIsZ0JBQWdCO0FBQ3BCO0FBQ0E7O0lBRUksZ0JBQWdCO0FBQ3BCO0FBQ0E7OztJQUdJLGdCQUFnQjtBQUNwQjtBQUNBOztJQUVJLGdCQUFnQjtBQUNwQjtBQUVBO0lBQ0ksY0FBYztBQUNsQjtBQUVBO0lBQ0ksY0FBYztBQUNsQjtBQUVBO0lBQ0k7UUFDSSxpQkFBaUI7SUFDckI7SUFDQTtRQUNJLDRCQUE0QjtRQUM1Qiw2QkFBNkI7UUFDN0IsMkJBQTJCO1FBQzNCLDhCQUE4QjtRQUM5Qix3QkFBd0I7SUFDNUI7SUFDQTtRQUNJLDBCQUEwQjtJQUM5QjtJQUNBO1FBQ0ksZUFBZTtJQUNuQjtBQUNKO0FBRUE7SUFDSTtRQUNJLDBCQUEwQjtJQUM5QjtJQUNBO1FBQ0kseUJBQXlCO1FBQ3pCLHVCQUF1QjtJQUMzQjtBQUNKO0FBQ0E7SUFDSSxlQUFlO0lBQ2YsYUFBYTtJQUNiLHFCQUFxQjtJQUNyQix5QkFBeUI7QUFDN0I7QUFDQTtJQUNJLGVBQWU7SUFDZixhQUFhO0lBQ2IscUJBQXFCO0lBQ3JCLHlCQUF5QjtBQUM3QiIsImZpbGUiOiJzcmMvYXBwL3BhZ2VzL2NvbnN1bHRhci9jb25zdWx0YXIuY29tcG9uZW50LmNzcyIsInNvdXJjZXNDb250ZW50IjpbIi8qPT09PT09PT09PT09PT09PT09PT09SU5JQ0lPIC0gSEVBREVSPT09PT09PT09PT09PT09PT09PT09Ki9cclxuOmhvc3Qge1xyXG4gICAgZGlzcGxheTogZmxleDtcclxuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XHJcbiAgICBoZWlnaHQ6IDEwMCU7XHJcbn1cclxuLm1hdC10b29sYmFyIHtcclxuICAgIGJhY2tncm91bmQ6ICNmZmZmZmY7XHJcbiAgICBwYWRkaW5nOiAwcHghaW1wb3J0YW50O1xyXG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNlYmViZWI7IFxyXG4gICAgd2lkdGg6IDEwMCU7XHJcbiAgICBsZWZ0OiAwO1xyXG4gICAgLyogUG9zaWNpb25hbW9zIGxhIGNhYmVjZXJhIGFsIGxhZG8gaXpxdWllcmRvICovXHJcbiAgICB0b3A6IDA7XHJcbiAgICAvKiBQb3NpY2lvbmFtb3MgbGEgY2FiZWNlcmEgcGVnYWRhIGFycmliYSAqL1xyXG59XHJcblxyXG5cclxuLyogLmJ1dHRvbi1sb2dvbiB7XHJcbiAgICBmb250LWZhbWlseTogJ1JvYm90byBtb25vZXNwYWNlJztcclxufVxyXG5cclxuOjpuZy1kZWVwIG1hdC10b29sdGlwIHtcclxuICAgIGZvbnQtZmFtaWx5OiAnUm9ib3RvIG1vbm9lc3BhY2UnIWltcG9ydGFudDtcclxufSAqL1xyXG5cclxuLmhvbWVJbWFnZW4tZGZzayB7XHJcbiAgICBwYWRkaW5nOiAyNXB4O1xyXG4gICAgd2lkdGg6IDEzMHB4O1xyXG4gICAgaGVpZ2h0OiAzMHB4O1xyXG59XHJcblxyXG4uaG9tZUltYWdlbi1ibXcge1xyXG4gICAgd2lkdGg6IDUwcHg7XHJcbn1cclxuXHJcbi5ob21lSW1hZ2VuLXN1YmFydSB7XHJcbiAgICBoZWlnaHQ6IDYwcHg7XHJcbn1cclxuXHJcbi8qIC5tYXQtdG9vbGJhciB7XHJcbiAgICBiYWNrZ3JvdW5kOiAjZmZmZmZmO1xyXG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNlYmViZWI7XHJcbiAgICBoZWlnaHQ6IDYwcHg7XHJcbn0gKi9cclxuXHJcbi5pbWFnZW4ge1xyXG4gICAgd2lkdGg6IDE0NXB4O1xyXG4gICAgbWFyZ2luLXRvcDogMTBweDtcclxufVxyXG5cclxuLnRlbGVmb25vIHtcclxuICAgIHdpZHRoOiBmaXQtY29udGVudDtcclxuICAgIHdvcmQtc3BhY2luZzogNXB4O1xyXG59XHJcblxyXG4uaWNvblRlbGVmb25vIHtcclxuICAgIHdpZHRoOiAyMHB4OyBcclxufVxyXG5cclxuLm51bWVybyB7XHJcbiAgICBmb250LXNpemU6IDEycHg7XHJcbiAgICBjb2xvcjogIzAwMDAwMDsgXHJcbiBcclxuICAgIGZvbnQtd2VpZ2h0OiA5MDA7XHJcbn1cclxuXHJcbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogNDYwcHgpIHtcclxuICAgIC5udW1lcm8ge1xyXG4gICAgICAgIGZvbnQtc2l6ZTogMTRweCAhaW1wb3J0YW50O1xyXG4gICAgfVxyXG4gICAgLmltYWdlbiB7XHJcbiAgICAgICAgd2lkdGg6IDk1Ljc1cHggIWltcG9ydGFudDtcclxuICAgIH1cclxuICAgIC5zY3JvbGwtYWN0aXZhdGUge1xyXG4gICAgICAgIGhlaWdodDogMTAwJTtcclxuICAgICAgICBvdmVyZmxvdy14OiBhdXRvO1xyXG4gICAgfVxyXG4gICAgLnNjcm9sbC1hY3RpdmF0ZTo6LXdlYmtpdC1zY3JvbGxiYXIge1xyXG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XHJcbiAgICB9XHJcbn1cclxuXHJcblxyXG4vKj09PT09PT09PT09PT09PT09PT09PUZJTiAtIEhFQURFUj09PT09PT09PT09PT09PT09PT09PSovXHJcblxyXG4ubG9naW4ge1xyXG4gICAgbWFyZ2luLWxlZnQ6IDQwcHggIWltcG9ydGFudDtcclxuICAgIG1hcmdpbi1yaWdodDogNDBweCAhaW1wb3J0YW50O1xyXG4gICAgbWFyZ2luLXRvcDogNTBweCAhaW1wb3J0YW50O1xyXG4gICAgcGFkZGluZzogMjBweCAhaW1wb3J0YW50O1xyXG59XHJcblxyXG4udGV4dG8ge1xyXG4gICAgZm9udC1zaXplOiAyNHB4O1xyXG4gICAgbWFyZ2luOiAwO1xyXG59XHJcblxyXG4udGV4dG8ubmVncm8ge1xyXG4gICAgY29sb3I6IGJsYWNrO1xyXG59XHJcblxyXG4udGV4dG8ucm9qbyB7XHJcbiAgICBjb2xvcjogI2ZmMDAwZTtcclxufVxyXG5cclxuLmhpbnQge1xyXG4gICAgZm9udC1zaXplOiAxNnB4O1xyXG4gICAgbWFyZ2luOiAwO1xyXG4gICAgbWFyZ2luLWJvdHRvbTogOHB4O1xyXG4gICAgbWFyZ2luLXRvcDogNXB4O1xyXG5cclxuICAgIGZvbnQtd2VpZ2h0OiA5MDA7XHJcbn1cclxuXHJcbi5pbnB1dCB7XHJcbiAgICBmb250LXNpemU6IDE2cHg7XHJcbiAgICB3aWR0aDogMTAwJTtcclxufVxyXG5cclxuLm1hdC1jYXJkIC5tYXQtZGl2aWRlci1ob3Jpem9udGFsIHtcclxuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxufVxyXG5cclxuLmJ1dHRvbiB7XHJcbiAgICBmb250LXNpemU6IDE2cHg7XHJcbiAgICB3aWR0aDogMTAwJTtcclxuICAgIGJvcmRlci1yYWRpdXM6IDVweDtcclxuICAgIG9wYWNpdHk6IDE7XHJcbiAgICBoZWlnaHQ6IDUwcHg7XHJcblxyXG4gICAgZm9udC13ZWlnaHQ6IDkwMDtcclxuICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XHJcbn1cclxuXHJcbi5idXR0b24taG9tZSB7XHJcbiAgICBmb250LXNpemU6IDE2cHg7XHJcblxyXG4gICAgZm9udC13ZWlnaHQ6IDkwMDtcclxufVxyXG5cclxuLmJ1dHRvbi1hZ2VuZGFyIHtcclxuICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgZm9udC1zaXplOiAxNnB4O1xyXG5cclxuICAgIGZvbnQtd2VpZ2h0OiA5MDA7XHJcbiAgICBoZWlnaHQ6IDUwcHg7XHJcbiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xyXG59XHJcblxyXG4uYnV0dG9uLnJlc2VydmFyIHtcclxuICAgIGJhY2tncm91bmQ6ICNGRkQzRDMgMCUgMCUgbm8tcmVwZWF0IHBhZGRpbmctYm94O1xyXG4gICAgY29sb3I6IHdoaXRlO1xyXG4gICAgbWFyZ2luLWJvdHRvbTogMTVweDtcclxufVxyXG5cclxuLmJ1dHRvbi5jb25zdWx0YXIge1xyXG4gICAgYm9yZGVyOiAxcHggc29saWQgI2M4YzhjODtcclxuICAgIGJvcmRlci1yYWRpdXM6IDVweDtcclxuICAgIG1hcmdpbi10b3A6IDE1cHg7XHJcbn1cclxuOjpuZy1kZWVwIC5tYXQtb3B0aW9uIHtcclxuXHJcbiAgICBmb250LXdlaWdodDogOTAwO1xyXG59XHJcbjo6bmctZGVlcCAubWF0LXNlbGVjdC12YWx1ZS10ZXh0e1xyXG4gICAgXHJcblxyXG4gICAgZm9udC13ZWlnaHQ6IDkwMDtcclxufVxyXG46Om5nLWRlZXAgLm1hdC1mb3JtLWZpZWxkIHtcclxuXHJcbiAgICBmb250LXdlaWdodDogOTAwO1xyXG59XHJcblxyXG46Om5nLWRlZXAgLm1hdC1mb3JtLWZpZWxkLWFwcGVhcmFuY2Utb3V0bGluZS5tYXQtZm9ybS1maWVsZC1kaXNhYmxlZCAubWF0LWZvcm0tZmllbGQtb3V0bGluZSB7XHJcbiAgICBjb2xvcjogI0NDQ0NDQztcclxufVxyXG5cclxuOjpuZy1kZWVwIC5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLW91dGxpbmUgLm1hdC1mb3JtLWZpZWxkLW91dGxpbmUge1xyXG4gICAgY29sb3I6ICNDQ0NDQ0M7XHJcbn1cclxuXHJcbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogNjAwcHgpIHtcclxuICAgICNiYWNrIHtcclxuICAgICAgICBiYWNrZ3JvdW5kOiB3aGl0ZTtcclxuICAgIH1cclxuICAgIC5sb2dpbiB7XHJcbiAgICAgICAgbWFyZ2luLWxlZnQ6IDIwcHggIWltcG9ydGFudDtcclxuICAgICAgICBtYXJnaW4tcmlnaHQ6IDIwcHggIWltcG9ydGFudDtcclxuICAgICAgICBtYXJnaW4tdG9wOiAyMHB4ICFpbXBvcnRhbnQ7XHJcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMjBweCAhaW1wb3J0YW50O1xyXG4gICAgICAgIHBhZGRpbmc6IDIwcHggIWltcG9ydGFudDtcclxuICAgIH1cclxuICAgIC50ZXh0byB7XHJcbiAgICAgICAgZm9udC1zaXplOiAyMHB4ICFpbXBvcnRhbnQ7XHJcbiAgICB9XHJcbiAgICAuaGludCB7XHJcbiAgICAgICAgZm9udC1zaXplOiAxNnB4O1xyXG4gICAgfVxyXG59XHJcblxyXG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDQ2MHB4KSB7XHJcbiAgICAubnVtZXJvIHtcclxuICAgICAgICBmb250LXNpemU6IDE0cHggIWltcG9ydGFudDtcclxuICAgIH1cclxuICAgIC5pbWFnZW4ge1xyXG4gICAgICAgIHdpZHRoOiA5NS43NXB4ICFpbXBvcnRhbnQ7XHJcbiAgICAgICAgaGVpZ2h0OiAyMnB4ICFpbXBvcnRhbnQ7IFxyXG4gICAgfVxyXG59XHJcbi5saW5rTGlicm97XHJcbiAgICBmb250LXNpemU6IDE1cHg7XHJcbiAgICBwYWRkaW5nOiAxMHB4O1xyXG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xyXG4gICAgY29sb3I6IHJnYigxMDcsIDEwNywgMTE2KTtcclxufVxyXG4ubGlua0ljb25ve1xyXG4gICAgZm9udC1zaXplOiAyN3B4O1xyXG4gICAgcGFkZGluZzogMTBweDtcclxuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcclxuICAgIGNvbG9yOiByZ2IoMTA3LCAxMDcsIDExNik7XHJcbn1cclxuIl19 */\"","import { Component, OnInit, ChangeDetectorRef } from '@angular/core';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { AgendaModel } from 'src/app/models/agenda.model';\r\nimport { Router } from '@angular/router';\r\nimport { MediaMatcher } from '@angular/cdk/layout';\r\nimport { MatSnackBar } from '@angular/material/snack-bar';\r\nimport { ErrorStateMatcher } from '@angular/material/core';\r\nimport { FormGroupDirective, NgForm, FormControl, Validators } from '@angular/forms';\r\nimport { ImagenesService } from 'src/app/services/imagenes/imagenes.service';\r\nimport { ReCaptchaV3Service, OnExecuteData } from 'ng-recaptcha';\r\nimport { Subscription } from 'rxjs';\r\nimport { SesionService } from 'src/app/services/sesion/sesion.service';\r\nimport { ConfigService } from 'src/app/services/config.service';\r\nimport { MatDialog } from '@angular/material';\r\nimport { SharedService } from 'src/app/services/shared.service';\r\nimport { MsgAlertComponent } from 'src/app/components/msg-alert/msg-alert.component';\r\nimport { CompanyService } from 'src/app/services/company.service';\r\nimport { AgendarGeneralService } from 'src/app/services/agendar-general.service';\r\nimport { DatePipe } from '@angular/common';\r\n\r\nexport class MyErrorStateMatcher implements ErrorStateMatcher {\r\n isErrorState(control: FormControl | null, form: FormGroupDirective | NgForm | null): boolean {\r\n const isSubmitted = form && form.submitted;\r\n return !!(control && control.invalid && (control.dirty || control.touched || isSubmitted));\r\n }\r\n}\r\n\r\n@Component({\r\n selector: 'app-consultar',\r\n templateUrl: './consultar.component.html',\r\n styleUrls: ['./consultar.component.css'],\r\n providers: [DatePipe]\r\n})\r\nexport class ConsultarComponent implements OnInit {\r\n public activeLang = 'es';\r\n public urlBucketS3 = localStorage.getItem(\"UrlBucketS3\");\r\n public cantRecalls = 0;\r\n public telefono: string = '';\r\n public recentToken: string = '';\r\n public readonly executionLog: OnExecuteData[] = [];\r\n private allExecutionsSubscription: Subscription;\r\n private singleExecutionSubscription: Subscription;\r\n public c_placa = new FormControl('', [Validators.required]);\r\n public c_vin = new FormControl('', [Validators.required]);\r\n public c_recaptcha = new FormControl(null, [Validators.required]);\r\n aTiposRecall: any[] = [];\r\n public bButtonDisabled: boolean = false;\r\n public oAgenda: AgendaModel = {} as AgendaModel;\r\n public mobileQuery: MediaQueryList;\r\n private _mobileQueryListener: () => void;\r\n public shouldRun = [/(^|\\.)plnkr\\.co$/, /(^|\\.)stackblitz\\.io$/].some(h => h.test(window.location.host));\r\n public CompanyId = localStorage.getItem(\"CompanyId\");\r\n public MasterUserId = localStorage.getItem(\"MasterUserId\");\r\n public valCanal = false;\r\n public bInvalido: boolean = true;\r\n public logoUrl:string = localStorage.getItem(\"Logo\");\r\n public p_i_marca:number = parseInt(localStorage.getItem(\"BrandId\"));\r\n public recallSelected=\"\";\r\n public recallSelectedDesc = \"\";\r\n public recallPublishDate = \"\";\r\n public recallInfoAdittional = \"\";\r\n ipAddress\r\n aTiposVins: any[] = [];\r\n formTipoRecall = new FormControl('', [\r\n Validators.required\r\n ]);\r\n matcher = new MyErrorStateMatcher();\r\n tituloLibro = \"\";\r\n linkLibro = \"\";\r\n constructor(\r\n private cCompaniaService: CompanyService,\r\n public dialog: MatDialog,\r\n public changeDetectorRef: ChangeDetectorRef,\r\n public media: MediaMatcher,\r\n private recaptchaV3Service: ReCaptchaV3Service,\r\n private cSesionService: SesionService,\r\n private translate: TranslateService,\r\n private cRouter: Router,\r\n private cMatSnackBar: MatSnackBar,\r\n private cImagenesService: ImagenesService,\r\n public cConfigService: ConfigService,\r\n private cSharedService: SharedService,\r\n private cTranslateService: TranslateService,\r\n public cAgendarGeneralService: AgendarGeneralService,\r\n public cMatDialog: MatDialog,\r\n private cDatePipe: DatePipe,\r\n ) {\r\n this.translate.setDefaultLang(this.activeLang);\r\n this.mobileQuery = media.matchMedia('(max-width: 600px)');\r\n this._mobileQueryListener = () => changeDetectorRef.detectChanges();\r\n this.mobileQuery.addListener(this._mobileQueryListener);\r\n }\r\n\r\n ngOnInit() {\r\n this.cAgendarGeneralService.isGlobalLoading = true;\r\n this.aTiposRecall = this.cAgendarGeneralService.aTiposRecall; \r\n this.cantRecalls = this.aTiposRecall.length;\r\n\r\n setTimeout(() => {\r\n this.CompanyId = localStorage.getItem(\"CompanyId\");\r\n this.MasterUserId = localStorage.getItem(\"MasterUserId\");\r\n this.urlBucketS3 = localStorage.getItem(\"UrlBucketS3\"); \r\n this.logoUrl = localStorage.getItem(\"Logo\");\r\n\r\n this.allExecutionsSubscription = this.recaptchaV3Service.onExecute\r\n .subscribe((data) => this.executionLog.push(data));\r\n this.onGetMasterCompany();\r\n this.onGetFoto();\r\n this.c_vin.setErrors({\r\n notUnique: true\r\n });\r\n }, 1000);\r\n\r\n\r\n\r\n\r\n }\r\n\r\n onChangeRecall(oTipoRecall){\r\n this.recallSelected = oTipoRecall.Code;\r\n this.recallSelectedDesc = oTipoRecall.Description;\r\n this.recallPublishDate = this.cDatePipe.transform(oTipoRecall.PublishDate.substr(0,10), 'dd-MM-yyyy'); ;\r\n this.recallInfoAdittional = oTipoRecall.AditionalInfo;\r\n }\r\n\r\n onGetFoto() {\r\n\r\n this.cAgendarGeneralService.isGlobalLoading = true;\r\n var oData;\r\n if (this.mobileQuery.matches) {\r\n oData = {\r\n masterUserId: localStorage.getItem(\"MasterUserId\"),\r\n companyId: localStorage.getItem(\"CompanyId\"),\r\n contentId: null,\r\n parentId: null,\r\n brandId:localStorage.getItem(\"BrandId\"),\r\n identifier: 'RCLLDESKTOP',\r\n isPublished: true\r\n }\r\n } else {\r\n oData = {\r\n masterUserId: localStorage.getItem(\"MasterUserId\"),\r\n companyId: localStorage.getItem(\"CompanyId\"),\r\n contentId: null,\r\n parentId: null,\r\n brandId:localStorage.getItem(\"BrandId\"),\r\n identifier: 'RCLLDESKTOP',\r\n isPublished: true\r\n }\r\n }\r\n this.cImagenesService.onGetImagen(oData).subscribe(resp => {\r\n let imagenHomeAux = [];\r\n resp.forEach(element => {\r\n imagenHomeAux.push(element);\r\n });\r\n this.onSetFoto(imagenHomeAux);\r\n }, (error) => {\r\n\r\n this.cAgendarGeneralService.isGlobalLoading = false;\r\n }, () => {\r\n\r\n this.cAgendarGeneralService.isGlobalLoading = false;\r\n });\r\n }\r\n\r\n interval = null;\r\n\r\n onSetFoto(oData) {\r\n let that = this;\r\n let element;\r\n if (oData.length !== 0) {\r\n let countMax = oData.length;\r\n if (countMax > 1) {\r\n this.urlBucketS3 = localStorage.getItem('UrlBucketS3');\r\n\r\n setInterval(() => {\r\n\r\n let element2 = this.urlBucketS3 + oData[0].MainImageRelative;\r\n document.getElementById('body-general').style.background = \"url('\" + [element2] + \"')\";\r\n if (that.mobileQuery.matches) {\r\n document.getElementById('body-general').style.backgroundSize = 'auto';\r\n document.getElementById('body-general').style.backgroundRepeat = 'repeat-y';\r\n } else {\r\n document.getElementById('body-general').style.backgroundSize = 'cover';\r\n document.getElementById('body-general').style.backgroundRepeat = 'no-repeat';\r\n document.getElementById('body-general').style.backgroundPosition = 'center center';\r\n\r\n }\r\n\r\n this.interval = setInterval(function () {\r\n\r\n for (let index = 0; index < oData.length; index++) {\r\n setTimeout(function () {\r\n element = this.urlBucketS3 + oData[index].MainImageRelative;\r\n document.getElementById('body-general').style.background = \"url('\" + [element] + \"')\";\r\n document.getElementById('body-general').style.backgroundRepeat = 'no-repeat';\r\n if (that.mobileQuery.matches) {\r\n document.getElementById('body-general').style.backgroundSize = 'auto';\r\n document.getElementById('body-general').style.backgroundRepeat = 'repeat-y';\r\n } else {\r\n document.getElementById('body-general').style.backgroundSize = 'cover';\r\n document.getElementById('body-general').style.backgroundRepeat = 'no-repeat';\r\n document.getElementById('body-general').style.backgroundPosition = 'center center';\r\n \r\n }\r\n\r\n }, index * 10000);\r\n }\r\n\r\n }, (10000 * countMax));\r\n\r\n if (!this.urlBucketS3) { clearInterval() }\r\n }, 1000);\r\n\r\n } else {\r\n\r\n this.urlBucketS3 = localStorage.getItem('UrlBucketS3');\r\n\r\n setInterval(() => {\r\n for (let index = 0; index < oData.length; index++) {\r\n\r\n element = this.urlBucketS3 + oData[index].MainImageRelative;\r\n document.getElementById('body-general').style.background = \"url('\" + [element] + \"')\";\r\n if (that.mobileQuery.matches) {\r\n document.getElementById('body-general').style.backgroundSize = 'auto';\r\n document.getElementById('body-general').style.backgroundRepeat = 'repeat-y';\r\n } else {\r\n document.getElementById('body-general').style.backgroundSize = 'cover';\r\n document.getElementById('body-general').style.backgroundRepeat = 'no-repeat';\r\n document.getElementById('body-general').style.backgroundPosition = 'center center';\r\n \r\n }\r\n\r\n }\r\n if (!this.urlBucketS3) { clearInterval() }\r\n }, 1000);\r\n }\r\n\r\n } else {\r\n if (that.mobileQuery.matches) {\r\n document.getElementById('body-general').style.backgroundColor = \"white\";\r\n document.getElementById('body-general').style.backgroundRepeat = 'no-repeat';\r\n document.getElementById('body-general').style.backgroundSize = 'auto';\r\n } else {\r\n document.getElementById('body-general').style.backgroundColor = \"white\";\r\n document.getElementById('body-general').style.backgroundRepeat = 'no-repeat';\r\n document.getElementById('body-general').style.backgroundSize = 'cover';\r\n }\r\n }\r\n }\r\n\r\n onGoConsultar() {\r\n this.cAgendarGeneralService.isGlobalLoading = true;\r\n this.bButtonDisabled = true;\r\n this.cRouter.navigateByUrl('/consultar');\r\n // this.executeAction('agendar_agendamiento', this.onValidarCredenciales, 1);\r\n }\r\n\r\n // onGoConsultar() {\r\n // this.cAgendarGeneralService.isGlobalLoading = true;\r\n // this.executeAction('consultar_agendamiento', this.onValidarCredenciales, 2);\r\n // }\r\n\r\n onValidarCredenciales(sToken, that, tipo) {\r\n\r\n let oDataSend = {\r\n Plate: that.c_placa.value.trim(),\r\n DocumentId: that.c_vin.value.trim(),\r\n TypeDocId: that.formTipoDocumento.value,\r\n Host: that.ipAddress == undefined ? \"\" : that.ipAddress,\r\n AppId: localStorage.getItem(\"AppId\"),\r\n CompanyId: localStorage.getItem(\"CompanyId\"),\r\n BrandId: localStorage.getItem(\"BrandId\"),\r\n RequestType: tipo\r\n }\r\n that.cSesionService.obtenerSesionPlaca(oDataSend).subscribe(oRes => {\r\n \r\n that.bButtonDisabled = false;\r\n }, oError => {\r\n that.bButtonDisabled = false;\r\n }, () => {\r\n\r\n that.cAgendarGeneralService.isGlobalLoading = false;\r\n });\r\n }\r\n onMostrarMensaje(data, that) {\r\n const dialogRef = that.cMatDialog.open(MsgAlertComponent, {\r\n data: data\r\n });\r\n dialogRef.afterClosed().subscribe(oResp => {\r\n });\r\n }\r\n\r\n onChangePlaca() {\r\n let oPlaca = this.c_placa.value.trim();\r\n this.c_placa.setValue(oPlaca);\r\n this.onChangeVin();\r\n }\r\n\r\n onChangeVin() {\r\n let sVin = this.c_vin.value.trim();\r\n\r\n (sVin.length !== 11) ? this.bInvalido = false : this.bInvalido = true;\r\n \r\n this.c_vin.setValue(sVin);\r\n }\r\n\r\n\r\n onGoAgendar() {\r\n location.href =\"https://subaru.inchcapelatam.app\";\r\n }\r\n\r\n\r\n public executeAction(action: string, CallBack, tipo: number): void {\r\n let that = this;\r\n if (this.singleExecutionSubscription) {\r\n this.singleExecutionSubscription.unsubscribe();\r\n }\r\n this.singleExecutionSubscription = this.recaptchaV3Service.execute(action)\r\n .subscribe((token) => {\r\n this.recentToken = token;\r\n CallBack(this.recentToken, that, tipo);\r\n });\r\n }\r\n \r\n public onGoLogon() {\r\n this.cRouter.navigateByUrl(\"/logon\");\r\n }\r\n\r\n //Obtener datos de compañia\r\n onGetMasterCompany() {\r\n\r\n this.cAgendarGeneralService.isGlobalLoading = true;\r\n //Activa la barra de carga\r\n //Objeto JSON para enviar el request\r\n var oData = {\r\n masterUserId: this.MasterUserId,\r\n companyId: this.CompanyId,\r\n brandId: localStorage.getItem(\"BrandId\"),\r\n isActived: true \r\n }\r\n //Consumir API\r\n var canales = [];\r\n this.cCompaniaService.onMasterCompanyGet(oData).subscribe(oRes => {\r\n oRes.forEach(element => {\r\n if (element.CompanyId.toUpperCase() == this.CompanyId.toUpperCase()) {\r\n localStorage.setItem(\"telefono\", element.Phone);\r\n this.telefono = element.Phone; \r\n }\r\n canales = element.ChannelsByCompany;\r\n });\r\n canales.forEach(element => {\r\n if (element.ChannelId == 1 && element.BrandId.toString() == localStorage.getItem(\"BrandId\").toString()) {\r\n this.valCanal = true;\r\n }\r\n });\r\n\r\n }, oErr => {\r\n //Desactiva la barra de carga \r\n\r\n this.cAgendarGeneralService.isGlobalLoading = false;\r\n }, () => {\r\n\r\n this.cAgendarGeneralService.isGlobalLoading = false;\r\n });\r\n }\r\n\r\n onCallTelefono() {\r\n window.open('tel:' + this.telefono, '_blank');\r\n }\r\n}\r\n","export default \"/*=====================INICIO - HEADER=====================*/\\r\\n:host {\\r\\n display: flex;\\r\\n flex-direction: column;\\r\\n height: 100%;\\r\\n}\\r\\n.mat-toolbar {\\r\\n background: #ffffff;\\r\\n padding: 0px!important;\\r\\n border-bottom: 1px solid #ebebeb; \\r\\n width: 100%;\\r\\n left: 0;\\r\\n /* Posicionamos la cabecera al lado izquierdo */\\r\\n top: 0;\\r\\n /* Posicionamos la cabecera pegada arriba */\\r\\n}\\r\\n/* .button-logon {\\r\\n font-family: 'Roboto monoespace';\\r\\n}\\r\\n\\r\\n::ng-deep mat-tooltip {\\r\\n font-family: 'Roboto monoespace'!important;\\r\\n} */\\r\\n.homeImagen-dfsk {\\r\\n padding: 25px;\\r\\n width: 130px;\\r\\n height: 30px;\\r\\n}\\r\\n.homeImagen-bmw {\\r\\n width: 50px;\\r\\n}\\r\\n.homeImagen-subaru {\\r\\n height: 60px;\\r\\n}\\r\\n/* .mat-toolbar {\\r\\n background: #ffffff;\\r\\n border-bottom: 1px solid #ebebeb;\\r\\n height: 60px;\\r\\n} */\\r\\n.imagen {\\r\\n width: 145px;\\r\\n margin-top: 10px;\\r\\n}\\r\\n.telefono {\\r\\n width: -webkit-fit-content;\\r\\n width: -moz-fit-content;\\r\\n width: fit-content;\\r\\n word-spacing: 5px;\\r\\n}\\r\\n.iconTelefono {\\r\\n width: 20px; \\r\\n}\\r\\n.numero {\\r\\n font-size: 12px;\\r\\n color: #000000; \\r\\n \\r\\n font-weight: 900;\\r\\n}\\r\\n@media only screen and (max-width: 460px) {\\r\\n .numero {\\r\\n font-size: 14px !important;\\r\\n }\\r\\n .imagen {\\r\\n width: 95.75px !important;\\r\\n }\\r\\n .scroll-activate {\\r\\n height: 100%;\\r\\n overflow-x: auto;\\r\\n }\\r\\n .scroll-activate::-webkit-scrollbar {\\r\\n display: none;\\r\\n }\\r\\n}\\r\\n/*=====================FIN - HEADER=====================*/\\r\\n.login {\\r\\n margin-left: 40px !important;\\r\\n margin-right: 40px !important;\\r\\n margin-top: 50px !important;\\r\\n padding: 20px !important;\\r\\n}\\r\\n.texto {\\r\\n font-size: 24px;\\r\\n margin: 0;\\r\\n}\\r\\n.texto.negro {\\r\\n color: black;\\r\\n}\\r\\n.texto.rojo {\\r\\n color: #ff000e;\\r\\n}\\r\\n.hint {\\r\\n font-size: 16px;\\r\\n margin: 0;\\r\\n margin-bottom: 8px;\\r\\n margin-top: 5px;\\r\\n\\r\\n font-weight: 900;\\r\\n}\\r\\n.input {\\r\\n font-size: 16px;\\r\\n width: 100%;\\r\\n}\\r\\n.mat-card .mat-divider-horizontal {\\r\\n position: relative;\\r\\n}\\r\\n.button {\\r\\n font-size: 16px;\\r\\n width: 100%;\\r\\n border-radius: 5px;\\r\\n opacity: 1;\\r\\n height: 50px;\\r\\n\\r\\n font-weight: 900;\\r\\n text-transform: uppercase;\\r\\n}\\r\\n.button-home {\\r\\n font-size: 16px;\\r\\n\\r\\n font-weight: 900;\\r\\n}\\r\\n.button-agendar {\\r\\n width: 100%;\\r\\n font-size: 16px;\\r\\n\\r\\n font-weight: 900;\\r\\n height: 50px;\\r\\n text-transform: uppercase;\\r\\n margin-bottom: 6%;\\r\\n}\\r\\n.button.reservar {\\r\\n background: #FFD3D3 0% 0% no-repeat padding-box;\\r\\n color: white;\\r\\n margin-bottom: 15px;\\r\\n}\\r\\n.button.consultar {\\r\\n border: 1px solid #c8c8c8;\\r\\n border-radius: 5px;\\r\\n margin-top: 15px;\\r\\n}\\r\\n::ng-deep .mat-option {\\r\\n\\r\\n font-weight: 900;\\r\\n}\\r\\n::ng-deep .mat-select-value-text{\\r\\n \\r\\n\\r\\n font-weight: 900;\\r\\n}\\r\\n::ng-deep .mat-form-field {\\r\\n\\r\\n font-weight: 900;\\r\\n}\\r\\n::ng-deep .mat-form-field-appearance-outline.mat-form-field-disabled .mat-form-field-outline {\\r\\n color: #CCCCCC;\\r\\n}\\r\\n::ng-deep .mat-form-field-appearance-outline .mat-form-field-outline {\\r\\n color: #CCCCCC;\\r\\n}\\r\\n@media only screen and (max-width: 600px) {\\r\\n #back {\\r\\n background: white;\\r\\n }\\r\\n .login {\\r\\n margin-left: 20px !important;\\r\\n margin-right: 20px !important;\\r\\n margin-top: 20px !important;\\r\\n margin-bottom: 20px !important;\\r\\n padding: 20px !important;\\r\\n }\\r\\n .texto {\\r\\n font-size: 20px !important;\\r\\n }\\r\\n .hint {\\r\\n font-size: 16px;\\r\\n }\\r\\n}\\r\\n@media only screen and (max-width: 460px) {\\r\\n .numero {\\r\\n font-size: 14px !important;\\r\\n }\\r\\n .imagen {\\r\\n width: 95.75px !important;\\r\\n height: 22px !important; \\r\\n }\\r\\n}\\r\\n.linkLibro{\\r\\n font-size: 15px;\\r\\n padding: 10px;\\r\\n text-decoration: none;\\r\\n color: rgb(107, 107, 116);\\r\\n}\\r\\n.linkIcono{\\r\\n font-size: 27px;\\r\\n padding: 10px;\\r\\n text-decoration: none;\\r\\n color: rgb(107, 107, 116);\\r\\n}\\r\\n\\r\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvcGFnZXMvaG9tZS9ob21lLmNvbXBvbmVudC5jc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsNERBQTREO0FBQzVEO0lBQ0ksYUFBYTtJQUNiLHNCQUFzQjtJQUN0QixZQUFZO0FBQ2hCO0FBQ0E7SUFDSSxtQkFBbUI7SUFDbkIsc0JBQXNCO0lBQ3RCLGdDQUFnQztJQUNoQyxXQUFXO0lBQ1gsT0FBTztJQUNQLCtDQUErQztJQUMvQyxNQUFNO0lBQ04sMkNBQTJDO0FBQy9DO0FBR0E7Ozs7OztHQU1HO0FBRUg7SUFDSSxhQUFhO0lBQ2IsWUFBWTtJQUNaLFlBQVk7QUFDaEI7QUFFQTtJQUNJLFdBQVc7QUFDZjtBQUVBO0lBQ0ksWUFBWTtBQUNoQjtBQUVBOzs7O0dBSUc7QUFFSDtJQUNJLFlBQVk7SUFDWixnQkFBZ0I7QUFDcEI7QUFFQTtJQUNJLDBCQUFrQjtJQUFsQix1QkFBa0I7SUFBbEIsa0JBQWtCO0lBQ2xCLGlCQUFpQjtBQUNyQjtBQUVBO0lBQ0ksV0FBVztBQUNmO0FBRUE7SUFDSSxlQUFlO0lBQ2YsY0FBYzs7SUFFZCxnQkFBZ0I7QUFDcEI7QUFFQTtJQUNJO1FBQ0ksMEJBQTBCO0lBQzlCO0lBQ0E7UUFDSSx5QkFBeUI7SUFDN0I7SUFDQTtRQUNJLFlBQVk7UUFDWixnQkFBZ0I7SUFDcEI7SUFDQTtRQUNJLGFBQWE7SUFDakI7QUFDSjtBQUdBLHlEQUF5RDtBQUV6RDtJQUNJLDRCQUE0QjtJQUM1Qiw2QkFBNkI7SUFDN0IsMkJBQTJCO0lBQzNCLHdCQUF3QjtBQUM1QjtBQUVBO0lBQ0ksZUFBZTtJQUNmLFNBQVM7QUFDYjtBQUVBO0lBQ0ksWUFBWTtBQUNoQjtBQUVBO0lBQ0ksY0FBYztBQUNsQjtBQUVBO0lBQ0ksZUFBZTtJQUNmLFNBQVM7SUFDVCxrQkFBa0I7SUFDbEIsZUFBZTs7SUFFZixnQkFBZ0I7QUFDcEI7QUFFQTtJQUNJLGVBQWU7SUFDZixXQUFXO0FBQ2Y7QUFFQTtJQUNJLGtCQUFrQjtBQUN0QjtBQUVBO0lBQ0ksZUFBZTtJQUNmLFdBQVc7SUFDWCxrQkFBa0I7SUFDbEIsVUFBVTtJQUNWLFlBQVk7O0lBRVosZ0JBQWdCO0lBQ2hCLHlCQUF5QjtBQUM3QjtBQUVBO0lBQ0ksZUFBZTs7SUFFZixnQkFBZ0I7QUFDcEI7QUFFQTtJQUNJLFdBQVc7SUFDWCxlQUFlOztJQUVmLGdCQUFnQjtJQUNoQixZQUFZO0lBQ1oseUJBQXlCO0lBQ3pCLGlCQUFpQjtBQUNyQjtBQUVBO0lBQ0ksK0NBQStDO0lBQy9DLFlBQVk7SUFDWixtQkFBbUI7QUFDdkI7QUFFQTtJQUNJLHlCQUF5QjtJQUN6QixrQkFBa0I7SUFDbEIsZ0JBQWdCO0FBQ3BCO0FBQ0E7O0lBRUksZ0JBQWdCO0FBQ3BCO0FBQ0E7OztJQUdJLGdCQUFnQjtBQUNwQjtBQUNBOztJQUVJLGdCQUFnQjtBQUNwQjtBQUVBO0lBQ0ksY0FBYztBQUNsQjtBQUVBO0lBQ0ksY0FBYztBQUNsQjtBQUVBO0lBQ0k7UUFDSSxpQkFBaUI7SUFDckI7SUFDQTtRQUNJLDRCQUE0QjtRQUM1Qiw2QkFBNkI7UUFDN0IsMkJBQTJCO1FBQzNCLDhCQUE4QjtRQUM5Qix3QkFBd0I7SUFDNUI7SUFDQTtRQUNJLDBCQUEwQjtJQUM5QjtJQUNBO1FBQ0ksZUFBZTtJQUNuQjtBQUNKO0FBRUE7SUFDSTtRQUNJLDBCQUEwQjtJQUM5QjtJQUNBO1FBQ0kseUJBQXlCO1FBQ3pCLHVCQUF1QjtJQUMzQjtBQUNKO0FBQ0E7SUFDSSxlQUFlO0lBQ2YsYUFBYTtJQUNiLHFCQUFxQjtJQUNyQix5QkFBeUI7QUFDN0I7QUFDQTtJQUNJLGVBQWU7SUFDZixhQUFhO0lBQ2IscUJBQXFCO0lBQ3JCLHlCQUF5QjtBQUM3QiIsImZpbGUiOiJzcmMvYXBwL3BhZ2VzL2hvbWUvaG9tZS5jb21wb25lbnQuY3NzIiwic291cmNlc0NvbnRlbnQiOlsiLyo9PT09PT09PT09PT09PT09PT09PT1JTklDSU8gLSBIRUFERVI9PT09PT09PT09PT09PT09PT09PT0qL1xyXG46aG9zdCB7XHJcbiAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcclxuICAgIGhlaWdodDogMTAwJTtcclxufVxyXG4ubWF0LXRvb2xiYXIge1xyXG4gICAgYmFja2dyb3VuZDogI2ZmZmZmZjtcclxuICAgIHBhZGRpbmc6IDBweCFpbXBvcnRhbnQ7XHJcbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2ViZWJlYjsgXHJcbiAgICB3aWR0aDogMTAwJTtcclxuICAgIGxlZnQ6IDA7XHJcbiAgICAvKiBQb3NpY2lvbmFtb3MgbGEgY2FiZWNlcmEgYWwgbGFkbyBpenF1aWVyZG8gKi9cclxuICAgIHRvcDogMDtcclxuICAgIC8qIFBvc2ljaW9uYW1vcyBsYSBjYWJlY2VyYSBwZWdhZGEgYXJyaWJhICovXHJcbn1cclxuXHJcblxyXG4vKiAuYnV0dG9uLWxvZ29uIHtcclxuICAgIGZvbnQtZmFtaWx5OiAnUm9ib3RvIG1vbm9lc3BhY2UnO1xyXG59XHJcblxyXG46Om5nLWRlZXAgbWF0LXRvb2x0aXAge1xyXG4gICAgZm9udC1mYW1pbHk6ICdSb2JvdG8gbW9ub2VzcGFjZSchaW1wb3J0YW50O1xyXG59ICovXHJcblxyXG4uaG9tZUltYWdlbi1kZnNrIHtcclxuICAgIHBhZGRpbmc6IDI1cHg7XHJcbiAgICB3aWR0aDogMTMwcHg7XHJcbiAgICBoZWlnaHQ6IDMwcHg7XHJcbn1cclxuXHJcbi5ob21lSW1hZ2VuLWJtdyB7XHJcbiAgICB3aWR0aDogNTBweDtcclxufVxyXG5cclxuLmhvbWVJbWFnZW4tc3ViYXJ1IHtcclxuICAgIGhlaWdodDogNjBweDtcclxufVxyXG5cclxuLyogLm1hdC10b29sYmFyIHtcclxuICAgIGJhY2tncm91bmQ6ICNmZmZmZmY7XHJcbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2ViZWJlYjtcclxuICAgIGhlaWdodDogNjBweDtcclxufSAqL1xyXG5cclxuLmltYWdlbiB7XHJcbiAgICB3aWR0aDogMTQ1cHg7XHJcbiAgICBtYXJnaW4tdG9wOiAxMHB4O1xyXG59XHJcblxyXG4udGVsZWZvbm8ge1xyXG4gICAgd2lkdGg6IGZpdC1jb250ZW50O1xyXG4gICAgd29yZC1zcGFjaW5nOiA1cHg7XHJcbn1cclxuXHJcbi5pY29uVGVsZWZvbm8ge1xyXG4gICAgd2lkdGg6IDIwcHg7IFxyXG59XHJcblxyXG4ubnVtZXJvIHtcclxuICAgIGZvbnQtc2l6ZTogMTJweDtcclxuICAgIGNvbG9yOiAjMDAwMDAwOyBcclxuIFxyXG4gICAgZm9udC13ZWlnaHQ6IDkwMDtcclxufVxyXG5cclxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA0NjBweCkge1xyXG4gICAgLm51bWVybyB7XHJcbiAgICAgICAgZm9udC1zaXplOiAxNHB4ICFpbXBvcnRhbnQ7XHJcbiAgICB9XHJcbiAgICAuaW1hZ2VuIHtcclxuICAgICAgICB3aWR0aDogOTUuNzVweCAhaW1wb3J0YW50O1xyXG4gICAgfVxyXG4gICAgLnNjcm9sbC1hY3RpdmF0ZSB7XHJcbiAgICAgICAgaGVpZ2h0OiAxMDAlO1xyXG4gICAgICAgIG92ZXJmbG93LXg6IGF1dG87XHJcbiAgICB9XHJcbiAgICAuc2Nyb2xsLWFjdGl2YXRlOjotd2Via2l0LXNjcm9sbGJhciB7XHJcbiAgICAgICAgZGlzcGxheTogbm9uZTtcclxuICAgIH1cclxufVxyXG5cclxuXHJcbi8qPT09PT09PT09PT09PT09PT09PT09RklOIC0gSEVBREVSPT09PT09PT09PT09PT09PT09PT09Ki9cclxuXHJcbi5sb2dpbiB7XHJcbiAgICBtYXJnaW4tbGVmdDogNDBweCAhaW1wb3J0YW50O1xyXG4gICAgbWFyZ2luLXJpZ2h0OiA0MHB4ICFpbXBvcnRhbnQ7XHJcbiAgICBtYXJnaW4tdG9wOiA1MHB4ICFpbXBvcnRhbnQ7XHJcbiAgICBwYWRkaW5nOiAyMHB4ICFpbXBvcnRhbnQ7XHJcbn1cclxuXHJcbi50ZXh0byB7XHJcbiAgICBmb250LXNpemU6IDI0cHg7XHJcbiAgICBtYXJnaW46IDA7XHJcbn1cclxuXHJcbi50ZXh0by5uZWdybyB7XHJcbiAgICBjb2xvcjogYmxhY2s7XHJcbn1cclxuXHJcbi50ZXh0by5yb2pvIHtcclxuICAgIGNvbG9yOiAjZmYwMDBlO1xyXG59XHJcblxyXG4uaGludCB7XHJcbiAgICBmb250LXNpemU6IDE2cHg7XHJcbiAgICBtYXJnaW46IDA7XHJcbiAgICBtYXJnaW4tYm90dG9tOiA4cHg7XHJcbiAgICBtYXJnaW4tdG9wOiA1cHg7XHJcblxyXG4gICAgZm9udC13ZWlnaHQ6IDkwMDtcclxufVxyXG5cclxuLmlucHV0IHtcclxuICAgIGZvbnQtc2l6ZTogMTZweDtcclxuICAgIHdpZHRoOiAxMDAlO1xyXG59XHJcblxyXG4ubWF0LWNhcmQgLm1hdC1kaXZpZGVyLWhvcml6b250YWwge1xyXG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG59XHJcblxyXG4uYnV0dG9uIHtcclxuICAgIGZvbnQtc2l6ZTogMTZweDtcclxuICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgYm9yZGVyLXJhZGl1czogNXB4O1xyXG4gICAgb3BhY2l0eTogMTtcclxuICAgIGhlaWdodDogNTBweDtcclxuXHJcbiAgICBmb250LXdlaWdodDogOTAwO1xyXG4gICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcclxufVxyXG5cclxuLmJ1dHRvbi1ob21lIHtcclxuICAgIGZvbnQtc2l6ZTogMTZweDtcclxuXHJcbiAgICBmb250LXdlaWdodDogOTAwO1xyXG59XHJcblxyXG4uYnV0dG9uLWFnZW5kYXIge1xyXG4gICAgd2lkdGg6IDEwMCU7XHJcbiAgICBmb250LXNpemU6IDE2cHg7XHJcblxyXG4gICAgZm9udC13ZWlnaHQ6IDkwMDtcclxuICAgIGhlaWdodDogNTBweDtcclxuICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XHJcbiAgICBtYXJnaW4tYm90dG9tOiA2JTtcclxufVxyXG5cclxuLmJ1dHRvbi5yZXNlcnZhciB7XHJcbiAgICBiYWNrZ3JvdW5kOiAjRkZEM0QzIDAlIDAlIG5vLXJlcGVhdCBwYWRkaW5nLWJveDtcclxuICAgIGNvbG9yOiB3aGl0ZTtcclxuICAgIG1hcmdpbi1ib3R0b206IDE1cHg7XHJcbn1cclxuXHJcbi5idXR0b24uY29uc3VsdGFyIHtcclxuICAgIGJvcmRlcjogMXB4IHNvbGlkICNjOGM4Yzg7XHJcbiAgICBib3JkZXItcmFkaXVzOiA1cHg7XHJcbiAgICBtYXJnaW4tdG9wOiAxNXB4O1xyXG59XHJcbjo6bmctZGVlcCAubWF0LW9wdGlvbiB7XHJcblxyXG4gICAgZm9udC13ZWlnaHQ6IDkwMDtcclxufVxyXG46Om5nLWRlZXAgLm1hdC1zZWxlY3QtdmFsdWUtdGV4dHtcclxuICAgIFxyXG5cclxuICAgIGZvbnQtd2VpZ2h0OiA5MDA7XHJcbn1cclxuOjpuZy1kZWVwIC5tYXQtZm9ybS1maWVsZCB7XHJcblxyXG4gICAgZm9udC13ZWlnaHQ6IDkwMDtcclxufVxyXG5cclxuOjpuZy1kZWVwIC5tYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLW91dGxpbmUubWF0LWZvcm0tZmllbGQtZGlzYWJsZWQgLm1hdC1mb3JtLWZpZWxkLW91dGxpbmUge1xyXG4gICAgY29sb3I6ICNDQ0NDQ0M7XHJcbn1cclxuXHJcbjo6bmctZGVlcCAubWF0LWZvcm0tZmllbGQtYXBwZWFyYW5jZS1vdXRsaW5lIC5tYXQtZm9ybS1maWVsZC1vdXRsaW5lIHtcclxuICAgIGNvbG9yOiAjQ0NDQ0NDO1xyXG59XHJcblxyXG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDYwMHB4KSB7XHJcbiAgICAjYmFjayB7XHJcbiAgICAgICAgYmFja2dyb3VuZDogd2hpdGU7XHJcbiAgICB9XHJcbiAgICAubG9naW4ge1xyXG4gICAgICAgIG1hcmdpbi1sZWZ0OiAyMHB4ICFpbXBvcnRhbnQ7XHJcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAyMHB4ICFpbXBvcnRhbnQ7XHJcbiAgICAgICAgbWFyZ2luLXRvcDogMjBweCAhaW1wb3J0YW50O1xyXG4gICAgICAgIG1hcmdpbi1ib3R0b206IDIwcHggIWltcG9ydGFudDtcclxuICAgICAgICBwYWRkaW5nOiAyMHB4ICFpbXBvcnRhbnQ7XHJcbiAgICB9XHJcbiAgICAudGV4dG8ge1xyXG4gICAgICAgIGZvbnQtc2l6ZTogMjBweCAhaW1wb3J0YW50O1xyXG4gICAgfVxyXG4gICAgLmhpbnQge1xyXG4gICAgICAgIGZvbnQtc2l6ZTogMTZweDtcclxuICAgIH1cclxufVxyXG5cclxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA0NjBweCkge1xyXG4gICAgLm51bWVybyB7XHJcbiAgICAgICAgZm9udC1zaXplOiAxNHB4ICFpbXBvcnRhbnQ7XHJcbiAgICB9XHJcbiAgICAuaW1hZ2VuIHtcclxuICAgICAgICB3aWR0aDogOTUuNzVweCAhaW1wb3J0YW50O1xyXG4gICAgICAgIGhlaWdodDogMjJweCAhaW1wb3J0YW50OyBcclxuICAgIH1cclxufVxyXG4ubGlua0xpYnJve1xyXG4gICAgZm9udC1zaXplOiAxNXB4O1xyXG4gICAgcGFkZGluZzogMTBweDtcclxuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcclxuICAgIGNvbG9yOiByZ2IoMTA3LCAxMDcsIDExNik7XHJcbn1cclxuLmxpbmtJY29ub3tcclxuICAgIGZvbnQtc2l6ZTogMjdweDtcclxuICAgIHBhZGRpbmc6IDEwcHg7XHJcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XHJcbiAgICBjb2xvcjogcmdiKDEwNywgMTA3LCAxMTYpO1xyXG59XHJcbiJdfQ== */\"","import { Component, OnInit, ChangeDetectorRef } from '@angular/core';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { AgendaModel } from 'src/app/models/agenda.model';\r\nimport { Router } from '@angular/router';\r\nimport { MediaMatcher } from '@angular/cdk/layout';\r\nimport { MatSnackBar } from '@angular/material/snack-bar';\r\nimport { ErrorStateMatcher } from '@angular/material/core';\r\nimport { FormGroupDirective, NgForm, FormControl, Validators } from '@angular/forms';\r\nimport { ImagenesService } from 'src/app/services/imagenes/imagenes.service';\r\nimport { ReCaptchaV3Service, OnExecuteData } from 'ng-recaptcha';\r\nimport { Subscription } from 'rxjs';\r\nimport { SesionService } from 'src/app/services/sesion/sesion.service';\r\nimport { ConfigService } from 'src/app/services/config.service';\r\nimport { MatDialog } from '@angular/material';\r\nimport { SharedService } from 'src/app/services/shared.service';\r\nimport { MsgAlertComponent } from 'src/app/components/msg-alert/msg-alert.component';\r\nimport { CompanyService } from 'src/app/services/company.service';\r\nimport { AgendarGeneralService } from 'src/app/services/agendar-general.service';\r\nimport { RecallService } from 'src/app/services/recall/recall.service';\r\nimport { MensajeDialogoComponent } from 'src/app/components/mensaje-dialogo/mensaje-dialogo.component';\r\n\r\n\r\nexport class MyErrorStateMatcher implements ErrorStateMatcher {\r\n isErrorState(control: FormControl | null, form: FormGroupDirective | NgForm | null): boolean {\r\n const isSubmitted = form && form.submitted;\r\n return !!(control && control.invalid && (control.dirty || control.touched || isSubmitted));\r\n }\r\n}\r\n@Component({\r\n selector: 'app-home',\r\n templateUrl: './home.component.html',\r\n styleUrls: ['./home.component.css']\r\n})\r\nexport class HomeComponent implements OnInit {\r\n public activeLang = 'es';\r\n public urlBucketS3 = localStorage.getItem(\"UrlBucketS3\");\r\n public telefono: string = '';\r\n public recentToken: string = '';\r\n public readonly executionLog: OnExecuteData[] = [];\r\n private allExecutionsSubscription: Subscription;\r\n private singleExecutionSubscription: Subscription;\r\n public c_placa = new FormControl('', [Validators.required]);\r\n public c_vin = new FormControl('', [Validators.required]);\r\n public c_recaptcha = new FormControl(null, [Validators.required]);\r\n public aTipoServicio = [];\r\n public bButtonDisabled: boolean = false;\r\n public oAgenda: AgendaModel = {} as AgendaModel;\r\n public mobileQuery: MediaQueryList;\r\n private _mobileQueryListener: () => void;\r\n public shouldRun = [/(^|\\.)plnkr\\.co$/, /(^|\\.)stackblitz\\.io$/].some(h => h.test(window.location.host));\r\n public CompanyId = localStorage.getItem(\"CompanyId\");\r\n public MasterUserId = localStorage.getItem(\"MasterUserId\");\r\n public valCanal = false;\r\n public bInvalido: boolean = true;\r\n public logoUrl:string = localStorage.getItem(\"Logo\");\r\n public p_i_marca:number = parseInt(localStorage.getItem(\"BrandId\"));\r\n ipAddress\r\n aTiposVins: any[] = [];\r\n formTipoDocumento = new FormControl('', [\r\n Validators.required\r\n ]);\r\n matcher = new MyErrorStateMatcher();\r\n tituloLibro = \"\";\r\n linkLibro = \"\";\r\n constructor(\r\n private cCompaniaService: CompanyService,\r\n public dialog: MatDialog,\r\n public changeDetectorRef: ChangeDetectorRef,\r\n public media: MediaMatcher,\r\n private recaptchaV3Service: ReCaptchaV3Service,\r\n private cSesionService: SesionService,\r\n private translate: TranslateService,\r\n private cRouter: Router,\r\n private cMatSnackBar: MatSnackBar,\r\n private cImagenesService: ImagenesService,\r\n private cRecall: RecallService,\r\n public cConfigService: ConfigService,\r\n private cSharedService: SharedService,\r\n private cTranslateService: TranslateService,\r\n public cAgendarGeneralService: AgendarGeneralService,\r\n public cMatDialog: MatDialog,\r\n ) {\r\n this.translate.setDefaultLang(this.activeLang);\r\n this.mobileQuery = media.matchMedia('(max-width: 600px)');\r\n this._mobileQueryListener = () => changeDetectorRef.detectChanges();\r\n this.mobileQuery.addListener(this._mobileQueryListener);\r\n }\r\n\r\n ngOnInit() {\r\n this.cAgendarGeneralService.isGlobalLoading = true;\r\n setTimeout(() => {\r\n this.CompanyId = localStorage.getItem(\"CompanyId\");\r\n this.MasterUserId = localStorage.getItem(\"MasterUserId\");\r\n this.urlBucketS3 = localStorage.getItem(\"UrlBucketS3\"); \r\n this.logoUrl = localStorage.getItem(\"Logo\");\r\n\r\n this.allExecutionsSubscription = this.recaptchaV3Service.onExecute\r\n .subscribe((data) => this.executionLog.push(data));\r\n this.onGetMasterCompany();\r\n this.onGetFoto();\r\n this.c_vin.setErrors({\r\n notUnique: true\r\n });\r\n }, 1000);\r\n\r\n\r\n\r\n\r\n }\r\n\r\n onGetFoto() {\r\n\r\n this.cAgendarGeneralService.isGlobalLoading = true;\r\n var oData;\r\n if (this.mobileQuery.matches) {\r\n oData = {\r\n masterUserId: localStorage.getItem(\"MasterUserId\"),\r\n companyId: localStorage.getItem(\"CompanyId\"),\r\n contentId: null,\r\n parentId: null,\r\n brandId:localStorage.getItem(\"BrandId\"),\r\n identifier: 'RCLLDESKTOP',\r\n isPublished: true\r\n }\r\n } else {\r\n oData = {\r\n masterUserId: localStorage.getItem(\"MasterUserId\"),\r\n companyId: localStorage.getItem(\"CompanyId\"),\r\n contentId: null,\r\n parentId: null,\r\n brandId:localStorage.getItem(\"BrandId\"),\r\n identifier: 'RCLLDESKTOP',\r\n isPublished: true\r\n }\r\n }\r\n this.cImagenesService.onGetImagen(oData).subscribe(resp => {\r\n let imagenHomeAux = [];\r\n resp.forEach(element => {\r\n imagenHomeAux.push(element);\r\n });\r\n this.onSetFoto(imagenHomeAux);\r\n }, (error) => {\r\n\r\n this.cAgendarGeneralService.isGlobalLoading = false;\r\n }, () => {\r\n\r\n this.cAgendarGeneralService.isGlobalLoading = false;\r\n });\r\n }\r\n\r\n interval = null;\r\n\r\n onSetFoto(oData) {\r\n let that = this;\r\n let element;\r\n if (oData.length !== 0) {\r\n let countMax = oData.length;\r\n if (countMax > 1) {\r\n this.urlBucketS3 = localStorage.getItem('UrlBucketS3');\r\n\r\n setInterval(() => {\r\n\r\n let element2 = this.urlBucketS3 + oData[0].MainImageRelative;\r\n document.getElementById('body-general').style.background = \"url('\" + [element2] + \"')\";\r\n if (that.mobileQuery.matches) {\r\n document.getElementById('body-general').style.backgroundSize = 'auto';\r\n document.getElementById('body-general').style.backgroundRepeat = 'repeat-y';\r\n } else {\r\n document.getElementById('body-general').style.backgroundSize = 'cover';\r\n document.getElementById('body-general').style.backgroundRepeat = 'no-repeat';\r\n document.getElementById('body-general').style.backgroundPosition = 'center center';\r\n\r\n }\r\n\r\n this.interval = setInterval(function () {\r\n\r\n for (let index = 0; index < oData.length; index++) {\r\n setTimeout(function () {\r\n element = this.urlBucketS3 + oData[index].MainImageRelative;\r\n document.getElementById('body-general').style.background = \"url('\" + [element] + \"')\";\r\n document.getElementById('body-general').style.backgroundRepeat = 'no-repeat';\r\n if (that.mobileQuery.matches) {\r\n document.getElementById('body-general').style.backgroundSize = 'auto';\r\n document.getElementById('body-general').style.backgroundRepeat = 'repeat-y';\r\n } else {\r\n document.getElementById('body-general').style.backgroundSize = 'cover';\r\n document.getElementById('body-general').style.backgroundRepeat = 'no-repeat';\r\n document.getElementById('body-general').style.backgroundPosition = 'center center';\r\n \r\n }\r\n\r\n }, index * 10000);\r\n }\r\n\r\n }, (10000 * countMax));\r\n\r\n if (!this.urlBucketS3) { clearInterval() }\r\n }, 1000);\r\n\r\n } else {\r\n\r\n this.urlBucketS3 = localStorage.getItem('UrlBucketS3');\r\n\r\n setInterval(() => {\r\n for (let index = 0; index < oData.length; index++) {\r\n\r\n element = this.urlBucketS3 + oData[index].MainImageRelative;\r\n document.getElementById('body-general').style.background = \"url('\" + [element] + \"')\";\r\n if (that.mobileQuery.matches) {\r\n document.getElementById('body-general').style.backgroundSize = 'auto';\r\n document.getElementById('body-general').style.backgroundRepeat = 'repeat-y';\r\n } else {\r\n document.getElementById('body-general').style.backgroundSize = 'cover';\r\n document.getElementById('body-general').style.backgroundRepeat = 'no-repeat';\r\n document.getElementById('body-general').style.backgroundPosition = 'center center';\r\n \r\n }\r\n\r\n }\r\n if (!this.urlBucketS3) { clearInterval() }\r\n }, 1000);\r\n }\r\n\r\n } else {\r\n if (that.mobileQuery.matches) {\r\n document.getElementById('body-general').style.backgroundColor = \"white\";\r\n document.getElementById('body-general').style.backgroundRepeat = 'no-repeat';\r\n document.getElementById('body-general').style.backgroundSize = 'auto';\r\n } else {\r\n document.getElementById('body-general').style.backgroundColor = \"white\";\r\n document.getElementById('body-general').style.backgroundRepeat = 'no-repeat';\r\n document.getElementById('body-general').style.backgroundSize = 'cover';\r\n }\r\n }\r\n }\r\n\r\n onGoConsultar() {\r\n this.cAgendarGeneralService.isGlobalLoading = true;\r\n this.onGetTiposRecall();\r\n }\r\n\r\n onGetTiposRecall(){\r\n let aTiposRecall = [];\r\n this.cAgendarGeneralService.isGlobalLoading = true;\r\n\r\n let oData = {\r\n \"vin\": this.c_vin.value,\r\n \"plate\": this.c_placa.value\r\n }\r\n \r\n this.bButtonDisabled = true;\r\n\r\n this.cRecall.onGetRecalls(oData).subscribe(resp => {\r\n if(resp.length > 0){\r\n aTiposRecall = resp;\r\n this.cAgendarGeneralService.aTiposRecall = aTiposRecall;\r\n this.cRouter.navigateByUrl('/consultar');\r\n }else{\r\n // this.cMatSnackBar.open(\"Su vehículo no está afecto a ningún recall.\", \"cerrar\", {\r\n // verticalPosition: 'top',\r\n // horizontalPosition: 'end',\r\n // duration: 22000,\r\n // });\r\n this.onCancelarReserva();\r\n this.bButtonDisabled = false;\r\n }\r\n }, (error) => {\r\n\r\n this.cAgendarGeneralService.isGlobalLoading = false;\r\n }, () => {\r\n\r\n this.cAgendarGeneralService.isGlobalLoading = false;\r\n });\r\n }\r\n\r\n\r\n onCancelarReserva() {\r\n const dialogRef = this.cMatDialog.open(MensajeDialogoComponent, {\r\n width: '400px',\r\n height: '260px',\r\n data: {\r\n sMensaje: 'Su vehículo no se encuentra afecto a ningún recall. Si ha ingresado la placa, puede volver a intentar ingresando el VIN.',\r\n sButton: 'VOLVER A CONSULTAR'\r\n }\r\n });\r\n dialogRef.afterClosed().subscribe(result => {\r\n if (result === 'OK') { \r\n // this.onGoHome();\r\n } else {\r\n return;\r\n }\r\n });\r\n }\r\n\r\n\r\n onValidarCredenciales(sToken, that, tipo) {\r\n\r\n let oDataSend = {\r\n Plate: that.c_placa.value.trim(),\r\n DocumentId: that.c_vin.value.trim(),\r\n TypeDocId: that.formTipoDocumento.value,\r\n Host: that.ipAddress == undefined ? \"\" : that.ipAddress,\r\n AppId: localStorage.getItem(\"AppId\"),\r\n CompanyId: localStorage.getItem(\"CompanyId\"),\r\n BrandId: localStorage.getItem(\"BrandId\"),\r\n RequestType: tipo\r\n }\r\n that.cSesionService.obtenerSesionPlaca(oDataSend).subscribe(oRes => {\r\n \r\n that.bButtonDisabled = false;\r\n }, oError => {\r\n that.bButtonDisabled = false;\r\n }, () => {\r\n\r\n that.cAgendarGeneralService.isGlobalLoading = false;\r\n });\r\n }\r\n onMostrarMensaje(data, that) {\r\n const dialogRef = that.cMatDialog.open(MsgAlertComponent, {\r\n data: data\r\n });\r\n dialogRef.afterClosed().subscribe(oResp => {\r\n });\r\n }\r\n\r\n onChangePlaca() {\r\n let oPlaca = this.c_placa.value.trim();\r\n this.c_placa.setValue(oPlaca);\r\n this.onChangeVin();\r\n }\r\n\r\n onChangeVin() {\r\n let sVin = this.c_vin.value.trim();\r\n\r\n (sVin.length !== 11) ? this.bInvalido = false : this.bInvalido = true;\r\n \r\n this.c_vin.setValue(sVin);\r\n }\r\n\r\n\r\n private onGoAgendarRoute() {\r\n this.cRouter.navigateByUrl('/agendar/' + this.c_placa.value);\r\n }\r\n\r\n private onGoConsultarRoute() {\r\n this.cRouter.navigateByUrl('/consultar');\r\n }\r\n\r\n public executeAction(action: string, CallBack, tipo: number): void {\r\n let that = this;\r\n if (this.singleExecutionSubscription) {\r\n this.singleExecutionSubscription.unsubscribe();\r\n }\r\n this.singleExecutionSubscription = this.recaptchaV3Service.execute(action)\r\n .subscribe((token) => {\r\n this.recentToken = token;\r\n CallBack(this.recentToken, that, tipo);\r\n });\r\n }\r\n \r\n public onGoLogon() {\r\n this.cRouter.navigateByUrl(\"/logon\");\r\n }\r\n\r\n //Obtener datos de compañia\r\n onGetMasterCompany() {\r\n\r\n this.cAgendarGeneralService.isGlobalLoading = true;\r\n //Activa la barra de carga\r\n //Objeto JSON para enviar el request\r\n var oData = {\r\n masterUserId: this.MasterUserId,\r\n companyId: this.CompanyId,\r\n brandId: localStorage.getItem(\"BrandId\"),\r\n isActived: true \r\n }\r\n //Consumir API\r\n var canales = [];\r\n this.cCompaniaService.onMasterCompanyGet(oData).subscribe(oRes => {\r\n oRes.forEach(element => {\r\n if (element.CompanyId.toUpperCase() == this.CompanyId.toUpperCase()) {\r\n localStorage.setItem(\"telefono\", element.Phone);\r\n this.telefono = element.Phone; \r\n }\r\n canales = element.ChannelsByCompany;\r\n });\r\n canales.forEach(element => {\r\n if (element.ChannelId == 1 && element.BrandId.toString() == localStorage.getItem(\"BrandId\").toString()) {\r\n this.valCanal = true;\r\n }\r\n });\r\n\r\n }, oErr => {\r\n //Desactiva la barra de carga \r\n\r\n this.cAgendarGeneralService.isGlobalLoading = false;\r\n }, () => {\r\n\r\n this.cAgendarGeneralService.isGlobalLoading = false;\r\n });\r\n }\r\n\r\n onCallTelefono() {\r\n window.open('tel:' + this.telefono, '_blank');\r\n }\r\n}\r\n","export default \".example-container {\\r\\n display: flex;\\r\\n flex-direction: column;\\r\\n position: absolute;\\r\\n top: 0;\\r\\n bottom: 0;\\r\\n left: 0;\\r\\n right: 0;\\r\\n}\\r\\n\\r\\n.stepper {\\r\\n height: 43px;\\r\\n}\\r\\n\\r\\n.stepper-ball {\\r\\n border-radius: 50%;\\r\\n width: 22px;\\r\\n height: 22px;\\r\\n font-size: 12px;\\r\\n background: #FF5050;\\r\\n color: white;\\r\\n text-align: center;\\r\\n}\\r\\n\\r\\n.stepper-ball-text {\\r\\n margin-top: 1px;\\r\\n}\\r\\n\\r\\n.stepper-label {\\r\\n font-size: 14px;\\r\\n /*font-family: Helvetica_Condensed !important;*/\\r\\n font-weight: 900;\\r\\n color: #505050;\\r\\n}\\r\\n\\r\\n.stepper-label-disabled {\\r\\n font-size: 14px;\\r\\n /*font-family: Helvetica_Condensed !important;*/\\r\\n font-weight: 900;\\r\\n color: #cfcfcf;\\r\\n}\\r\\n\\r\\n.letra-base {\\r\\n /*font-family: Helvetica_Condensed !important;*/\\r\\n font-weight: 900;\\r\\n text-transform: uppercase;\\r\\n}\\r\\n\\r\\n.nombre-login {\\r\\n /*font-family: Helvetica_Condensed !important;*/\\r\\n font-weight: 900;\\r\\n}\\r\\n\\r\\n.line {\\r\\n border-bottom: 0.6px solid #C8C8C8;\\r\\n width: 100%;\\r\\n}\\r\\n\\r\\n.container-interno {\\r\\n padding: 30.5px 64px 20px 64px;\\r\\n}\\r\\n\\r\\n.homeImagen-dfsk {\\r\\n padding: 25px;\\r\\n width: 130px;\\r\\n height: 30px;\\r\\n}\\r\\n\\r\\n.homeImagen-bmw {\\r\\n width: 50px;\\r\\n}\\r\\n\\r\\n.homeImagen-subaru {\\r\\n height: 60px;\\r\\n}\\r\\n\\r\\n/*=====================INICIO - HEADER=====================*/\\r\\n\\r\\n.mat-toolbar {\\r\\n background: #ffffff;\\r\\n border-bottom: 1px solid #ebebeb;\\r\\n height: 60px;\\r\\n width: 100%;\\r\\n left: 0;\\r\\n padding: 0px!important;\\r\\n /* Posicionamos la cabecera al lado izquierdo */\\r\\n top: 0;\\r\\n /* Posicionamos la cabecera pegada arriba */\\r\\n}\\r\\n\\r\\n.imagen {\\r\\n width: 130px;\\r\\n height: 30px;\\r\\n cursor: pointer;\\r\\n}\\r\\n\\r\\n.telefono {\\r\\n width: -webkit-fit-content;\\r\\n width: -moz-fit-content;\\r\\n width: fit-content;\\r\\n word-spacing: 5px;\\r\\n}\\r\\n\\r\\n.iconTelefono {\\r\\n width: 20px;\\r\\n margin-top: 5px;\\r\\n}\\r\\n\\r\\n.numero {\\r\\n font-size: 16px;\\r\\n color: #000000;\\r\\n float: right;\\r\\n /*font-family: Helvetica_Condensed !important;*/\\r\\n font-weight: 900;\\r\\n}\\r\\n\\r\\n.example-is-mobile .example-toolbar {\\r\\n position: fixed;\\r\\n /* Make sure the toolbar will stay on top of the content as it scrolls past. */\\r\\n z-index: 2;\\r\\n}\\r\\n\\r\\nh1.example-app-name {\\r\\n margin-left: 8px;\\r\\n}\\r\\n\\r\\n.example-sidenav-container {\\r\\n /* When the sidenav is not fixed, stretch the sidenav container to fill the available space. This\\r\\n causes `` to act as our scrolling element for desktop layouts. */\\r\\n flex: 1;\\r\\n}\\r\\n\\r\\n.example-is-mobile .example-sidenav-container {\\r\\n /* When the sidenav is fixed, don't constrain the height of the sidenav container. This allows the\\r\\n `` to be our scrolling element for mobile layouts. */\\r\\n flex: 1 0 auto;\\r\\n}\\r\\n\\r\\n/*=====================FIN - HEADER=====================*/\\r\\n\\r\\napp-agendar-mireserva {\\r\\n width: 100%;\\r\\n}\\r\\n\\r\\n.height-full {\\r\\n height: 100% !important;\\r\\n}\\r\\n\\r\\n.scroll-activate {\\r\\n height: 100%;\\r\\n overflow-x: auto;\\r\\n background: white;\\r\\n}\\r\\n\\r\\n.scroll-activate::-webkit-scrollbar {\\r\\n display: none;\\r\\n}\\r\\n\\r\\n.mat-sidenav-content {\\r\\n background: white;\\r\\n padding: 0px;\\r\\n}\\r\\n\\r\\n@media only screen and (max-width: 460px) {\\r\\n .numero {\\r\\n font-size: 14px !important;\\r\\n }\\r\\n .imagen {\\r\\n width: 95.75px !important;\\r\\n height: 22px !important;\\r\\n margin-top: 10px;\\r\\n }\\r\\n}\\r\\n\\r\\n@media only screen and (max-width: 600px) {\\r\\n .scroll-activate {\\r\\n height: 100%;\\r\\n overflow-x: auto;\\r\\n }\\r\\n .container-interno {\\r\\n padding: 0px 20px 20px 20px;\\r\\n }\\r\\n .content-stepper {\\r\\n padding: 15px;\\r\\n }\\r\\n .stepper {\\r\\n height: 66px;\\r\\n }\\r\\n .stepper-ball {\\r\\n border-radius: 50%;\\r\\n font-size: 10px;\\r\\n width: 18px;\\r\\n height: 18px;\\r\\n background: #FF5050;\\r\\n }\\r\\n .stepper-label {\\r\\n font-size: 12px;\\r\\n }\\r\\n}\\r\\n\\r\\n/*=====================INICIO - FULL COMBO=====================*/\\r\\n\\r\\n.border-listado {\\r\\n border-bottom: 1px solid #e6e6e6;\\r\\n}\\r\\n\\r\\n.iconCombo {\\r\\n color: #FF5050 !important;\\r\\n width: 20px !important;\\r\\n height: 20px !important;\\r\\n}\\r\\n\\r\\n.clase-titulo-lista {\\r\\n margin: 0px !important;\\r\\n margin-bottom: 20.5px !important;\\r\\n font-size: 22px;\\r\\n padding-left: 20px;\\r\\n padding-right: 60px;\\r\\n /*font-family: Helvetica_Condensed !important;*/\\r\\n font-weight: 900;\\r\\n}\\r\\n\\r\\n.lista-combo2 {\\r\\n font-size: 14px !important;\\r\\n height: 59px !important;\\r\\n border-bottom: 1px solid #e5e5e5;\\r\\n /*font-family: Helvetica_Condensed !important;*/\\r\\n font-weight: 900;\\r\\n}\\r\\n\\r\\n.mat-list-base {\\r\\n padding: 0px !important;\\r\\n}\\r\\n\\r\\n/*=====================FIN - FULL COMBO=====================*/\\r\\n\\r\\n.mat-toolbar3 {\\r\\n height: 50px;\\r\\n min-height: 50px;\\r\\n max-height: 50px;\\r\\n padding: 0px;\\r\\n border: 0px !important;\\r\\n background: #FFD3D3 !important;\\r\\n}\\r\\n\\r\\n.btn-fix {\\r\\n color: white;\\r\\n font-size: 14px;\\r\\n /*font-family: Helvetica_Condensed !important;*/\\r\\n font-weight: 900;\\r\\n}\\r\\n\\r\\n::ng-deep .mat-select-disabled .mat-select-value {\\r\\n color: rgb(0, 0, 0)!important;\\r\\n}\\r\\n\\r\\n::ng-deep .mat-form-field-label:not(.mat-form-field-empty) {\\r\\n color: black !important;\\r\\n}\\r\\n\\r\\n.buton-siguiente {\\r\\n height: 100%;\\r\\n width: 100%;\\r\\n border-radius: 0px;\\r\\n}\\r\\n\\r\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvcGFnZXMvaW5pY2lvL2luaWNpby5jb21wb25lbnQuY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0lBQ0ksYUFBYTtJQUNiLHNCQUFzQjtJQUN0QixrQkFBa0I7SUFDbEIsTUFBTTtJQUNOLFNBQVM7SUFDVCxPQUFPO0lBQ1AsUUFBUTtBQUNaOztBQUVBO0lBQ0ksWUFBWTtBQUNoQjs7QUFFQTtJQUNJLGtCQUFrQjtJQUNsQixXQUFXO0lBQ1gsWUFBWTtJQUNaLGVBQWU7SUFDZixtQkFBbUI7SUFDbkIsWUFBWTtJQUNaLGtCQUFrQjtBQUN0Qjs7QUFFQTtJQUNJLGVBQWU7QUFDbkI7O0FBRUE7SUFDSSxlQUFlO0lBQ2YsK0NBQStDO0lBQy9DLGdCQUFnQjtJQUNoQixjQUFjO0FBQ2xCOztBQUVBO0lBQ0ksZUFBZTtJQUNmLCtDQUErQztJQUMvQyxnQkFBZ0I7SUFDaEIsY0FBYztBQUNsQjs7QUFFQTtJQUNJLCtDQUErQztJQUMvQyxnQkFBZ0I7SUFDaEIseUJBQXlCO0FBQzdCOztBQUVBO0lBQ0ksK0NBQStDO0lBQy9DLGdCQUFnQjtBQUNwQjs7QUFFQTtJQUNJLGtDQUFrQztJQUNsQyxXQUFXO0FBQ2Y7O0FBRUE7SUFDSSw4QkFBOEI7QUFDbEM7O0FBRUE7SUFDSSxhQUFhO0lBQ2IsWUFBWTtJQUNaLFlBQVk7QUFDaEI7O0FBRUE7SUFDSSxXQUFXO0FBQ2Y7O0FBRUE7SUFDSSxZQUFZO0FBQ2hCOztBQUdBLDREQUE0RDs7QUFFNUQ7SUFDSSxtQkFBbUI7SUFDbkIsZ0NBQWdDO0lBQ2hDLFlBQVk7SUFDWixXQUFXO0lBQ1gsT0FBTztJQUNQLHNCQUFzQjtJQUN0QiwrQ0FBK0M7SUFDL0MsTUFBTTtJQUNOLDJDQUEyQztBQUMvQzs7QUFFQTtJQUNJLFlBQVk7SUFDWixZQUFZO0lBQ1osZUFBZTtBQUNuQjs7QUFFQTtJQUNJLDBCQUFrQjtJQUFsQix1QkFBa0I7SUFBbEIsa0JBQWtCO0lBQ2xCLGlCQUFpQjtBQUNyQjs7QUFFQTtJQUNJLFdBQVc7SUFDWCxlQUFlO0FBQ25COztBQUVBO0lBQ0ksZUFBZTtJQUNmLGNBQWM7SUFDZCxZQUFZO0lBQ1osK0NBQStDO0lBQy9DLGdCQUFnQjtBQUNwQjs7QUFFQTtJQUNJLGVBQWU7SUFDZiw4RUFBOEU7SUFDOUUsVUFBVTtBQUNkOztBQUVBO0lBQ0ksZ0JBQWdCO0FBQ3BCOztBQUVBO0lBQ0k7MEZBQ3NGO0lBQ3RGLE9BQU87QUFDWDs7QUFFQTtJQUNJOytEQUMyRDtJQUMzRCxjQUFjO0FBQ2xCOztBQUdBLHlEQUF5RDs7QUFFekQ7SUFDSSxXQUFXO0FBQ2Y7O0FBRUE7SUFDSSx1QkFBdUI7QUFDM0I7O0FBRUE7SUFDSSxZQUFZO0lBQ1osZ0JBQWdCO0lBQ2hCLGlCQUFpQjtBQUNyQjs7QUFFQTtJQUNJLGFBQWE7QUFDakI7O0FBRUE7SUFDSSxpQkFBaUI7SUFDakIsWUFBWTtBQUNoQjs7QUFFQTtJQUNJO1FBQ0ksMEJBQTBCO0lBQzlCO0lBQ0E7UUFDSSx5QkFBeUI7UUFDekIsdUJBQXVCO1FBQ3ZCLGdCQUFnQjtJQUNwQjtBQUNKOztBQUVBO0lBQ0k7UUFDSSxZQUFZO1FBQ1osZ0JBQWdCO0lBQ3BCO0lBQ0E7UUFDSSwyQkFBMkI7SUFDL0I7SUFDQTtRQUNJLGFBQWE7SUFDakI7SUFDQTtRQUNJLFlBQVk7SUFDaEI7SUFDQTtRQUNJLGtCQUFrQjtRQUNsQixlQUFlO1FBQ2YsV0FBVztRQUNYLFlBQVk7UUFDWixtQkFBbUI7SUFDdkI7SUFDQTtRQUNJLGVBQWU7SUFDbkI7QUFDSjs7QUFHQSxnRUFBZ0U7O0FBRWhFO0lBQ0ksZ0NBQWdDO0FBQ3BDOztBQUVBO0lBQ0kseUJBQXlCO0lBQ3pCLHNCQUFzQjtJQUN0Qix1QkFBdUI7QUFDM0I7O0FBRUE7SUFDSSxzQkFBc0I7SUFDdEIsZ0NBQWdDO0lBQ2hDLGVBQWU7SUFDZixrQkFBa0I7SUFDbEIsbUJBQW1CO0lBQ25CLCtDQUErQztJQUMvQyxnQkFBZ0I7QUFDcEI7O0FBRUE7SUFDSSwwQkFBMEI7SUFDMUIsdUJBQXVCO0lBQ3ZCLGdDQUFnQztJQUNoQywrQ0FBK0M7SUFDL0MsZ0JBQWdCO0FBQ3BCOztBQUVBO0lBQ0ksdUJBQXVCO0FBQzNCOztBQUdBLDZEQUE2RDs7QUFFN0Q7SUFDSSxZQUFZO0lBQ1osZ0JBQWdCO0lBQ2hCLGdCQUFnQjtJQUNoQixZQUFZO0lBQ1osc0JBQXNCO0lBQ3RCLDhCQUE4QjtBQUNsQzs7QUFFQTtJQUNJLFlBQVk7SUFDWixlQUFlO0lBQ2YsK0NBQStDO0lBQy9DLGdCQUFnQjtBQUNwQjs7QUFFQTtJQUNJLDZCQUE2QjtBQUNqQzs7QUFFQTtJQUNJLHVCQUF1QjtBQUMzQjs7QUFFQTtJQUNJLFlBQVk7SUFDWixXQUFXO0lBQ1gsa0JBQWtCO0FBQ3RCIiwiZmlsZSI6InNyYy9hcHAvcGFnZXMvaW5pY2lvL2luaWNpby5jb21wb25lbnQuY3NzIiwic291cmNlc0NvbnRlbnQiOlsiLmV4YW1wbGUtY29udGFpbmVyIHtcclxuICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xyXG4gICAgcG9zaXRpb246IGFic29sdXRlO1xyXG4gICAgdG9wOiAwO1xyXG4gICAgYm90dG9tOiAwO1xyXG4gICAgbGVmdDogMDtcclxuICAgIHJpZ2h0OiAwO1xyXG59XHJcblxyXG4uc3RlcHBlciB7XHJcbiAgICBoZWlnaHQ6IDQzcHg7XHJcbn1cclxuXHJcbi5zdGVwcGVyLWJhbGwge1xyXG4gICAgYm9yZGVyLXJhZGl1czogNTAlO1xyXG4gICAgd2lkdGg6IDIycHg7XHJcbiAgICBoZWlnaHQ6IDIycHg7XHJcbiAgICBmb250LXNpemU6IDEycHg7XHJcbiAgICBiYWNrZ3JvdW5kOiAjRkY1MDUwO1xyXG4gICAgY29sb3I6IHdoaXRlO1xyXG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG59XHJcblxyXG4uc3RlcHBlci1iYWxsLXRleHQge1xyXG4gICAgbWFyZ2luLXRvcDogMXB4O1xyXG59XHJcblxyXG4uc3RlcHBlci1sYWJlbCB7XHJcbiAgICBmb250LXNpemU6IDE0cHg7XHJcbiAgICAvKmZvbnQtZmFtaWx5OiBIZWx2ZXRpY2FfQ29uZGVuc2VkICFpbXBvcnRhbnQ7Ki9cclxuICAgIGZvbnQtd2VpZ2h0OiA5MDA7XHJcbiAgICBjb2xvcjogIzUwNTA1MDtcclxufVxyXG5cclxuLnN0ZXBwZXItbGFiZWwtZGlzYWJsZWQge1xyXG4gICAgZm9udC1zaXplOiAxNHB4O1xyXG4gICAgLypmb250LWZhbWlseTogSGVsdmV0aWNhX0NvbmRlbnNlZCAhaW1wb3J0YW50OyovXHJcbiAgICBmb250LXdlaWdodDogOTAwO1xyXG4gICAgY29sb3I6ICNjZmNmY2Y7XHJcbn1cclxuXHJcbi5sZXRyYS1iYXNlIHtcclxuICAgIC8qZm9udC1mYW1pbHk6IEhlbHZldGljYV9Db25kZW5zZWQgIWltcG9ydGFudDsqL1xyXG4gICAgZm9udC13ZWlnaHQ6IDkwMDtcclxuICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XHJcbn1cclxuXHJcbi5ub21icmUtbG9naW4ge1xyXG4gICAgLypmb250LWZhbWlseTogSGVsdmV0aWNhX0NvbmRlbnNlZCAhaW1wb3J0YW50OyovXHJcbiAgICBmb250LXdlaWdodDogOTAwO1xyXG59XHJcblxyXG4ubGluZSB7XHJcbiAgICBib3JkZXItYm90dG9tOiAwLjZweCBzb2xpZCAjQzhDOEM4O1xyXG4gICAgd2lkdGg6IDEwMCU7XHJcbn1cclxuXHJcbi5jb250YWluZXItaW50ZXJubyB7XHJcbiAgICBwYWRkaW5nOiAzMC41cHggNjRweCAyMHB4IDY0cHg7XHJcbn1cclxuXHJcbi5ob21lSW1hZ2VuLWRmc2sge1xyXG4gICAgcGFkZGluZzogMjVweDtcclxuICAgIHdpZHRoOiAxMzBweDtcclxuICAgIGhlaWdodDogMzBweDtcclxufVxyXG5cclxuLmhvbWVJbWFnZW4tYm13IHtcclxuICAgIHdpZHRoOiA1MHB4O1xyXG59XHJcblxyXG4uaG9tZUltYWdlbi1zdWJhcnUge1xyXG4gICAgaGVpZ2h0OiA2MHB4O1xyXG59XHJcblxyXG5cclxuLyo9PT09PT09PT09PT09PT09PT09PT1JTklDSU8gLSBIRUFERVI9PT09PT09PT09PT09PT09PT09PT0qL1xyXG5cclxuLm1hdC10b29sYmFyIHtcclxuICAgIGJhY2tncm91bmQ6ICNmZmZmZmY7XHJcbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2ViZWJlYjtcclxuICAgIGhlaWdodDogNjBweDtcclxuICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgbGVmdDogMDtcclxuICAgIHBhZGRpbmc6IDBweCFpbXBvcnRhbnQ7XHJcbiAgICAvKiBQb3NpY2lvbmFtb3MgbGEgY2FiZWNlcmEgYWwgbGFkbyBpenF1aWVyZG8gKi9cclxuICAgIHRvcDogMDtcclxuICAgIC8qIFBvc2ljaW9uYW1vcyBsYSBjYWJlY2VyYSBwZWdhZGEgYXJyaWJhICovXHJcbn1cclxuXHJcbi5pbWFnZW4ge1xyXG4gICAgd2lkdGg6IDEzMHB4O1xyXG4gICAgaGVpZ2h0OiAzMHB4O1xyXG4gICAgY3Vyc29yOiBwb2ludGVyO1xyXG59XHJcblxyXG4udGVsZWZvbm8ge1xyXG4gICAgd2lkdGg6IGZpdC1jb250ZW50O1xyXG4gICAgd29yZC1zcGFjaW5nOiA1cHg7XHJcbn1cclxuXHJcbi5pY29uVGVsZWZvbm8ge1xyXG4gICAgd2lkdGg6IDIwcHg7XHJcbiAgICBtYXJnaW4tdG9wOiA1cHg7XHJcbn1cclxuXHJcbi5udW1lcm8ge1xyXG4gICAgZm9udC1zaXplOiAxNnB4O1xyXG4gICAgY29sb3I6ICMwMDAwMDA7XHJcbiAgICBmbG9hdDogcmlnaHQ7XHJcbiAgICAvKmZvbnQtZmFtaWx5OiBIZWx2ZXRpY2FfQ29uZGVuc2VkICFpbXBvcnRhbnQ7Ki9cclxuICAgIGZvbnQtd2VpZ2h0OiA5MDA7XHJcbn1cclxuXHJcbi5leGFtcGxlLWlzLW1vYmlsZSAuZXhhbXBsZS10b29sYmFyIHtcclxuICAgIHBvc2l0aW9uOiBmaXhlZDtcclxuICAgIC8qIE1ha2Ugc3VyZSB0aGUgdG9vbGJhciB3aWxsIHN0YXkgb24gdG9wIG9mIHRoZSBjb250ZW50IGFzIGl0IHNjcm9sbHMgcGFzdC4gKi9cclxuICAgIHotaW5kZXg6IDI7XHJcbn1cclxuXHJcbmgxLmV4YW1wbGUtYXBwLW5hbWUge1xyXG4gICAgbWFyZ2luLWxlZnQ6IDhweDtcclxufVxyXG5cclxuLmV4YW1wbGUtc2lkZW5hdi1jb250YWluZXIge1xyXG4gICAgLyogV2hlbiB0aGUgc2lkZW5hdiBpcyBub3QgZml4ZWQsIHN0cmV0Y2ggdGhlIHNpZGVuYXYgY29udGFpbmVyIHRvIGZpbGwgdGhlIGF2YWlsYWJsZSBzcGFjZS4gVGhpc1xyXG4gICAgIGNhdXNlcyBgPG1hdC1zaWRlbmF2LWNvbnRlbnQ+YCB0byBhY3QgYXMgb3VyIHNjcm9sbGluZyBlbGVtZW50IGZvciBkZXNrdG9wIGxheW91dHMuICovXHJcbiAgICBmbGV4OiAxO1xyXG59XHJcblxyXG4uZXhhbXBsZS1pcy1tb2JpbGUgLmV4YW1wbGUtc2lkZW5hdi1jb250YWluZXIge1xyXG4gICAgLyogV2hlbiB0aGUgc2lkZW5hdiBpcyBmaXhlZCwgZG9uJ3QgY29uc3RyYWluIHRoZSBoZWlnaHQgb2YgdGhlIHNpZGVuYXYgY29udGFpbmVyLiBUaGlzIGFsbG93cyB0aGVcclxuICAgICBgPGJvZHk+YCB0byBiZSBvdXIgc2Nyb2xsaW5nIGVsZW1lbnQgZm9yIG1vYmlsZSBsYXlvdXRzLiAqL1xyXG4gICAgZmxleDogMSAwIGF1dG87XHJcbn1cclxuXHJcblxyXG4vKj09PT09PT09PT09PT09PT09PT09PUZJTiAtIEhFQURFUj09PT09PT09PT09PT09PT09PT09PSovXHJcblxyXG5hcHAtYWdlbmRhci1taXJlc2VydmEge1xyXG4gICAgd2lkdGg6IDEwMCU7XHJcbn1cclxuXHJcbi5oZWlnaHQtZnVsbCB7XHJcbiAgICBoZWlnaHQ6IDEwMCUgIWltcG9ydGFudDtcclxufVxyXG5cclxuLnNjcm9sbC1hY3RpdmF0ZSB7XHJcbiAgICBoZWlnaHQ6IDEwMCU7XHJcbiAgICBvdmVyZmxvdy14OiBhdXRvO1xyXG4gICAgYmFja2dyb3VuZDogd2hpdGU7XHJcbn1cclxuXHJcbi5zY3JvbGwtYWN0aXZhdGU6Oi13ZWJraXQtc2Nyb2xsYmFyIHtcclxuICAgIGRpc3BsYXk6IG5vbmU7XHJcbn1cclxuXHJcbi5tYXQtc2lkZW5hdi1jb250ZW50IHtcclxuICAgIGJhY2tncm91bmQ6IHdoaXRlO1xyXG4gICAgcGFkZGluZzogMHB4O1xyXG59XHJcblxyXG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDQ2MHB4KSB7XHJcbiAgICAubnVtZXJvIHtcclxuICAgICAgICBmb250LXNpemU6IDE0cHggIWltcG9ydGFudDtcclxuICAgIH1cclxuICAgIC5pbWFnZW4ge1xyXG4gICAgICAgIHdpZHRoOiA5NS43NXB4ICFpbXBvcnRhbnQ7XHJcbiAgICAgICAgaGVpZ2h0OiAyMnB4ICFpbXBvcnRhbnQ7XHJcbiAgICAgICAgbWFyZ2luLXRvcDogMTBweDtcclxuICAgIH1cclxufVxyXG5cclxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA2MDBweCkge1xyXG4gICAgLnNjcm9sbC1hY3RpdmF0ZSB7XHJcbiAgICAgICAgaGVpZ2h0OiAxMDAlO1xyXG4gICAgICAgIG92ZXJmbG93LXg6IGF1dG87XHJcbiAgICB9XHJcbiAgICAuY29udGFpbmVyLWludGVybm8ge1xyXG4gICAgICAgIHBhZGRpbmc6IDBweCAyMHB4IDIwcHggMjBweDtcclxuICAgIH1cclxuICAgIC5jb250ZW50LXN0ZXBwZXIge1xyXG4gICAgICAgIHBhZGRpbmc6IDE1cHg7XHJcbiAgICB9XHJcbiAgICAuc3RlcHBlciB7XHJcbiAgICAgICAgaGVpZ2h0OiA2NnB4O1xyXG4gICAgfVxyXG4gICAgLnN0ZXBwZXItYmFsbCB7XHJcbiAgICAgICAgYm9yZGVyLXJhZGl1czogNTAlO1xyXG4gICAgICAgIGZvbnQtc2l6ZTogMTBweDtcclxuICAgICAgICB3aWR0aDogMThweDtcclxuICAgICAgICBoZWlnaHQ6IDE4cHg7XHJcbiAgICAgICAgYmFja2dyb3VuZDogI0ZGNTA1MDtcclxuICAgIH1cclxuICAgIC5zdGVwcGVyLWxhYmVsIHtcclxuICAgICAgICBmb250LXNpemU6IDEycHg7XHJcbiAgICB9XHJcbn1cclxuXHJcblxyXG4vKj09PT09PT09PT09PT09PT09PT09PUlOSUNJTyAtIEZVTEwgQ09NQk89PT09PT09PT09PT09PT09PT09PT0qL1xyXG5cclxuLmJvcmRlci1saXN0YWRvIHtcclxuICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjZTZlNmU2O1xyXG59XHJcblxyXG4uaWNvbkNvbWJvIHtcclxuICAgIGNvbG9yOiAjRkY1MDUwICFpbXBvcnRhbnQ7XHJcbiAgICB3aWR0aDogMjBweCAhaW1wb3J0YW50O1xyXG4gICAgaGVpZ2h0OiAyMHB4ICFpbXBvcnRhbnQ7XHJcbn1cclxuXHJcbi5jbGFzZS10aXR1bG8tbGlzdGEge1xyXG4gICAgbWFyZ2luOiAwcHggIWltcG9ydGFudDtcclxuICAgIG1hcmdpbi1ib3R0b206IDIwLjVweCAhaW1wb3J0YW50O1xyXG4gICAgZm9udC1zaXplOiAyMnB4O1xyXG4gICAgcGFkZGluZy1sZWZ0OiAyMHB4O1xyXG4gICAgcGFkZGluZy1yaWdodDogNjBweDtcclxuICAgIC8qZm9udC1mYW1pbHk6IEhlbHZldGljYV9Db25kZW5zZWQgIWltcG9ydGFudDsqL1xyXG4gICAgZm9udC13ZWlnaHQ6IDkwMDtcclxufVxyXG5cclxuLmxpc3RhLWNvbWJvMiB7XHJcbiAgICBmb250LXNpemU6IDE0cHggIWltcG9ydGFudDtcclxuICAgIGhlaWdodDogNTlweCAhaW1wb3J0YW50O1xyXG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNlNWU1ZTU7XHJcbiAgICAvKmZvbnQtZmFtaWx5OiBIZWx2ZXRpY2FfQ29uZGVuc2VkICFpbXBvcnRhbnQ7Ki9cclxuICAgIGZvbnQtd2VpZ2h0OiA5MDA7XHJcbn1cclxuXHJcbi5tYXQtbGlzdC1iYXNlIHtcclxuICAgIHBhZGRpbmc6IDBweCAhaW1wb3J0YW50O1xyXG59XHJcblxyXG5cclxuLyo9PT09PT09PT09PT09PT09PT09PT1GSU4gLSBGVUxMIENPTUJPPT09PT09PT09PT09PT09PT09PT09Ki9cclxuXHJcbi5tYXQtdG9vbGJhcjMge1xyXG4gICAgaGVpZ2h0OiA1MHB4O1xyXG4gICAgbWluLWhlaWdodDogNTBweDtcclxuICAgIG1heC1oZWlnaHQ6IDUwcHg7XHJcbiAgICBwYWRkaW5nOiAwcHg7XHJcbiAgICBib3JkZXI6IDBweCAhaW1wb3J0YW50O1xyXG4gICAgYmFja2dyb3VuZDogI0ZGRDNEMyAhaW1wb3J0YW50O1xyXG59XHJcblxyXG4uYnRuLWZpeCB7XHJcbiAgICBjb2xvcjogd2hpdGU7XHJcbiAgICBmb250LXNpemU6IDE0cHg7XHJcbiAgICAvKmZvbnQtZmFtaWx5OiBIZWx2ZXRpY2FfQ29uZGVuc2VkICFpbXBvcnRhbnQ7Ki9cclxuICAgIGZvbnQtd2VpZ2h0OiA5MDA7XHJcbn1cclxuXHJcbjo6bmctZGVlcCAubWF0LXNlbGVjdC1kaXNhYmxlZCAubWF0LXNlbGVjdC12YWx1ZSB7XHJcbiAgICBjb2xvcjogcmdiKDAsIDAsIDApIWltcG9ydGFudDtcclxufVxyXG5cclxuOjpuZy1kZWVwIC5tYXQtZm9ybS1maWVsZC1sYWJlbDpub3QoLm1hdC1mb3JtLWZpZWxkLWVtcHR5KSB7XHJcbiAgICBjb2xvcjogYmxhY2sgIWltcG9ydGFudDtcclxufVxyXG5cclxuLmJ1dG9uLXNpZ3VpZW50ZSB7XHJcbiAgICBoZWlnaHQ6IDEwMCU7XHJcbiAgICB3aWR0aDogMTAwJTtcclxuICAgIGJvcmRlci1yYWRpdXM6IDBweDtcclxufVxyXG4iXX0= */\"","import { Component, OnInit, ChangeDetectorRef, OnDestroy } from '@angular/core';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\nimport { MediaMatcher } from '@angular/cdk/layout';\r\nimport { MatSnackBar } from '@angular/material/snack-bar';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { ConfiguracionService } from 'src/app/services/configuracion/configuracion.service';\r\nimport { ConfigService } from 'src/app/services/config.service';\r\nimport { SesionService } from 'src/app/services/sesion/sesion.service';\r\nimport { AgendarGeneralService } from 'src/app/services/agendar-general.service';\r\n\r\n@Component({\r\n selector: 'app-inicio',\r\n templateUrl: './inicio.component.html',\r\n styleUrls: ['./inicio.component.css']\r\n})\r\nexport class InicioComponent implements OnInit, OnDestroy {\r\n\r\n shouldRun = [/(^|\\.)plnkr\\.co$/, /(^|\\.)stackblitz\\.io$/].some(h => h.test(window.location.host));\r\n\r\n public urlBucketS3 = localStorage.getItem(\"UrlBucketS3\");\r\n public logoUrl:string = localStorage.getItem(\"Logo\");\r\n public activeLang = 'es';\r\n mobileQuery: MediaQueryList;\r\n private _mobileQueryListener: () => void;\r\n p_i_marca;\r\n public oDataMain: any = { \"p_i_usuario_usuario\": 0, \"c_apellidos_usuario\": \"\", \"c_nombres_usuario\": \"\", \"c_documento_usuario\": \"\", \"c_correo_usuario\": \"\", \"p_i_usuario_cliente\": 0, \"c_apellidos_cliente\": \"\", \"c_nombres_cliente\": \"\", \"c_documento_cliente\": \"\", \"c_correo_cliente\": \"\" };\r\n constructor(\r\n private translate: TranslateService,\r\n private cRouter: Router,\r\n private cMatSnackBar: MatSnackBar,\r\n changeDetectorRef: ChangeDetectorRef,\r\n media: MediaMatcher,\r\n private cActivatedRoute: ActivatedRoute,\r\n private cConfiguracionService: ConfiguracionService,\r\n private cConfigService: ConfigService,\r\n private cAgendarGeneralService:AgendarGeneralService,\r\n private cSesionService: SesionService\r\n ) {\r\n this.translate.setDefaultLang(this.activeLang);\r\n this.mobileQuery = media.matchMedia('(max-width: 600px)');\r\n this._mobileQueryListener = () => changeDetectorRef.detectChanges();\r\n this.mobileQuery.addListener(this._mobileQueryListener);\r\n this.p_i_marca = cConfigService.onObtenerMarcaBase();\r\n }\r\n\r\n ngOnInit(): void {\r\n //this.onObtenerDatosUsuario();\r\n }\r\n ngOnDestroy(): void {\r\n this.mobileQuery.removeListener(this._mobileQueryListener);\r\n }\r\n\r\n onObtenerDatosUsuario() {\r\n let dataSend = {\r\n c_placa: \"\",\r\n c_usuario: localStorage.getItem('p_i_usuario')\r\n };\r\n this.cSesionService.obtenerDatosUsuario(dataSend).subscribe(oData => {\r\n this.oDataMain = oData;\r\n localStorage.setItem(\"oDataMain\", JSON.stringify(oData))\r\n });\r\n }\r\n onCerrarSesion() {\r\n this.cAgendarGeneralService.fnRestaurarReservaSesion();\r\n localStorage.setItem('SessionId', \"\");\r\n localStorage.setItem('CredentialId', \"\");\r\n localStorage.setItem('UserData', \"\");\r\n this.cRouter.navigate([\"/\"]);\r\n }\r\n onGoHome() {\r\n this.cRouter.navigateByUrl('/inicio');\r\n }\r\n\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { Routes, RouterModule } from '@angular/router';\r\nimport { HomeComponent } from './home/home.component';\r\nimport { ConsultarComponent } from './consultar/consultar.component';\r\nimport { MsgFinalExitoComponent } from './../components/msg-final-exito/msg-final-exito.component';\r\nimport { MsgFinalCancelComponent } from './../components/msg-final-cancel/msg-final-cancel.component';\r\nimport { InicioComponent } from './inicio/inicio.component';\r\n\r\nconst routes: Routes = [\r\n {\r\n path: '',\r\n component: HomeComponent\r\n },\r\n {\r\n path: 'inicio',\r\n component: InicioComponent,\r\n },\r\n {\r\n path: 'consultar',\r\n component: ConsultarComponent,\r\n },\r\n\r\n {\r\n path: 'msg-cancelar',\r\n component: MsgFinalCancelComponent\r\n },\r\n {\r\n path: 'msg-exito',\r\n component: MsgFinalExitoComponent\r\n },\r\n];\r\n\r\n@NgModule({\r\n imports: [RouterModule.forChild(routes)],\r\n exports: [RouterModule]\r\n})\r\nexport class PagesRoutingModule { }\r\n","import { NgModule, LOCALE_ID } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { registerLocaleData } from '@angular/common';\r\nimport localePe from '@angular/common/locales/es-PE';\r\nregisterLocaleData(localePe, 'es-PE');\r\nimport { HomeComponent } from './home/home.component';\r\nimport { PagesRoutingModule } from './pages-routing.module';\r\nimport { FlexLayoutModule } from '@angular/flex-layout';\r\nimport { MatToolbarModule } from '@angular/material/toolbar';\r\nimport { MatIconModule } from '@angular/material/icon';\r\nimport { MatButtonModule } from '@angular/material/button';\r\nimport { MatSidenavModule } from '@angular/material/sidenav';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { MatCardModule } from '@angular/material/card';\r\nimport { MatSnackBarModule } from '@angular/material/snack-bar';\r\nimport { MatProgressBarModule } from '@angular/material/progress-bar';\r\nimport { MatInputModule } from '@angular/material/input';\r\nimport { MatProgressSpinnerModule } from '@angular/material/progress-spinner';\r\nimport { MatFormFieldModule } from '@angular/material/form-field';\r\nimport { MatMenuModule } from '@angular/material/menu';\r\nimport { MatListModule } from '@angular/material/list';\r\nimport { MatStepperModule } from '@angular/material/stepper';\r\nimport { MatSelectModule } from '@angular/material/select';\r\nimport { ConsultarComponent } from './consultar/consultar.component';\r\nimport { ComponentsModule } from '../components/components.module';\r\nimport { PopoverModule } from \"ngx-smart-popover\";\r\n\r\n//Translation\r\nimport { TranslateLoader, TranslateModule } from '@ngx-translate/core';\r\nimport { TranslateHttpLoader } from '@ngx-translate/http-loader';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { RecaptchaV3Module, RECAPTCHA_V3_SITE_KEY } from 'ng-recaptcha';\r\nimport {MatTooltipModule} from '@angular/material/tooltip';\r\nimport { InicioComponent } from './inicio/inicio.component';\r\n\r\n@NgModule({\r\n declarations: [HomeComponent, ConsultarComponent, InicioComponent],\r\n imports: [\r\n CommonModule,\r\n PagesRoutingModule,\r\n ComponentsModule,\r\n MatToolbarModule,\r\n MatButtonModule,\r\n MatSidenavModule,\r\n FormsModule,\r\n ReactiveFormsModule,\r\n MatButtonModule,\r\n MatIconModule,\r\n MatFormFieldModule,\r\n MatCardModule,\r\n MatProgressSpinnerModule,\r\n MatInputModule,\r\n MatProgressBarModule,\r\n MatSnackBarModule,\r\n MatMenuModule,\r\n MatListModule,\r\n MatStepperModule,\r\n MatSelectModule,\r\n FlexLayoutModule,\r\n PopoverModule,\r\n RecaptchaV3Module,\r\n MatTooltipModule,\r\n TranslateModule.forRoot({\r\n loader: {\r\n provide: TranslateLoader,\r\n useFactory: (http: HttpClient) => {\r\n return new TranslateHttpLoader(http, \"assets/i18n/\", \".json\")\r\n },\r\n deps: [HttpClient]\r\n }\r\n })\r\n ],\r\n providers: [{ provide: LOCALE_ID, useValue: 'es-PE' },\r\n { provide: RECAPTCHA_V3_SITE_KEY, useValue: '6Lc6ZfQUAAAAAH9XL1i4rubtOccV0zCYqfd6MC9G' }]\r\n})\r\nexport class PagesModule { }\r\n","import { Injectable } from '@angular/core';\r\nimport { AgendaModel } from '../models/agenda.model';\r\nimport { Observable } from 'rxjs';\r\nimport { OpcionesModel } from 'src/app/models/opciones.model';\r\nimport { FormControl, Validators } from '@angular/forms';\r\nimport { ClienteModel } from '../models/cliente.model';\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class AgendarGeneralService {\r\n isGlobalLoading: boolean = false;\r\n aTiposRecall: any[];\r\n oAgenda: AgendaModel = {\r\n oCliente: {} as ClienteModel,\r\n oUsuario: {},\r\n c_tipo_servicio: new FormControl(0),\r\n c_region: new FormControl(''),\r\n c_taller: new FormControl(''),\r\n c_kilometraje: new FormControl(''),\r\n c_asesor: new FormControl(''),\r\n c_repre_nombre: new FormControl(''),\r\n c_repre_documento: new FormControl(''),\r\n c_repre_telefono: new FormControl('',[\r\n Validators.pattern(/^[\\+]?[(]?[0-9]{3}[)]?[-\\s\\.]?[0-9]{3}[-\\s\\.]?[0-9]{4,6}$/im)\r\n ]),\r\n c_terminos: new FormControl(false),\r\n c_repre_desicion: new FormControl(false),\r\n c_proteciondatos: new FormControl(false),\r\n c_clie_documento: new FormControl(''),\r\n c_clie_nombre: new FormControl(''),\r\n c_clie_apellido: new FormControl(''),\r\n c_fecha_calendario: new FormControl(new Date()),\r\n c_tipo_documento : new FormControl(),\r\n c_documento: new FormControl(),\r\n aTipoDocumento: [],\r\n d_fecha: null,\r\n d_horario: null,\r\n isRepresentante: null,\r\n aRegiones: [],\r\n aKilometraje: [],\r\n aTiposServicio: [],\r\n aCanales: [],\r\n aTalleres: [],\r\n aAsesores: [],\r\n aHorario: [],\r\n sPaso: \"1\",\r\n bPasoSegundo: true,\r\n sButtonEdicion: false,\r\n sTipoServicio: '------',\r\n p_i_servicio: 0,\r\n sKilometraje: '------',\r\n sRegion: '------',\r\n p_c_region: '',\r\n sTaller: '------',\r\n p_c_taller: '',\r\n sAsesor: '------',\r\n p_c_asesor: \"\",\r\n sFecha: '------',\r\n sHora: '------',\r\n sRepresentante: '------',\r\n sDNI: '------',\r\n sRutaActual: \"\",\r\n sPreOT: \"\",\r\n sAsesorFinal:\"\",\r\n sPackage:\"\",\r\n c_repre_apellido:new FormControl(),\r\n c_repre_tipoDoc:new FormControl(),\r\n c_observaciones:new FormControl(''),\r\n isPickUpAndDelivery:new FormControl(false),\r\n cCountryCode: new FormControl(\"\"),\r\n sDireccionTaller:\"\",\r\n bContinue: true\r\n } as AgendaModel;\r\n oOpciones: OpcionesModel = { toogle: false } as OpcionesModel;\r\n constructor() {\r\n }\r\n public fnRestaurarReservaSesion() {\r\n this.oAgenda = {\r\n oCliente: {} as ClienteModel,\r\n oUsuario: {},\r\n c_tipo_servicio: new FormControl(0),\r\n c_region: new FormControl(''),\r\n c_taller: new FormControl(''),\r\n c_kilometraje: new FormControl(''),\r\n c_asesor: new FormControl(''),\r\n c_repre_nombre: new FormControl(''),\r\n c_repre_documento: new FormControl(''),\r\n c_repre_telefono: new FormControl('',[\r\n Validators.pattern(/^[\\+]?[(]?[0-9]{3}[)]?[-\\s\\.]?[0-9]{3}[-\\s\\.]?[0-9]{4,6}$/im)\r\n ]),\r\n c_terminos: new FormControl(false),\r\n c_proteciondatos: new FormControl(false),\r\n c_repre_desicion: new FormControl(false),\r\n c_clie_documento: new FormControl(''),\r\n c_clie_nombre: new FormControl(''),\r\n c_clie_apellido: new FormControl(''),\r\n c_fecha_calendario: new FormControl(new Date()),\r\n d_fecha: null,\r\n d_horario: null,\r\n isRepresentante: null,\r\n aRegiones: [],\r\n aTiposServicio: [],\r\n aCanales: [],\r\n aTalleres: [],\r\n aKilometraje: [],\r\n aTiposRecall: [],\r\n aAsesores: [],\r\n aHorario: [],\r\n sPaso: \"1\",\r\n bPasoSegundo: true,\r\n sButtonEdicion: false,\r\n sTipoServicio: '------',\r\n p_i_servicio: 0,\r\n sKilometraje: '------',\r\n sRegion: '------',\r\n p_c_region: '',\r\n sTaller: '------',\r\n p_c_taller: '',\r\n sAsesor: '------',\r\n p_c_asesor: \"\",\r\n sFecha: '------',\r\n sHora: '------',\r\n sRepresentante: '------',\r\n sDNI: '------',\r\n sRutaActual: \"\",\r\n sPreOT: \"\",\r\n c_tipo_documento : new FormControl(),\r\n c_documento: new FormControl(),\r\n aTipoDocumento: [],\r\n sAsesorFinal:\"\",\r\n sPackage:\"\",\r\n c_repre_apellido:new FormControl(''),\r\n c_repre_tipoDoc:new FormControl(''),\r\n c_observaciones:new FormControl(''),\r\n isPickUpAndDelivery:new FormControl(false),\r\n cCountryCode: new FormControl(\"\"),\r\n sDireccionTaller:\"\",\r\n bContinue: true\r\n } as AgendaModel;\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { ConfigService } from './config.service';\r\nimport { Observable } from 'rxjs';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class CompanyService {\r\n\r\n private sMasterCompanyGet = 'MasterCompanyGet';\r\n private sMileagesByCompanyGet = 'MileagesByCompanyGet';\r\n constructor(\r\n private cHttpClient: HttpClient,\r\n private cConfigService: ConfigService\r\n ) { }\r\n\r\n onMasterCompanyGet(oData): Observable {\r\n let urlRequest = this.cConfigService.onObtenerBaseUrlServicios(this.sMasterCompanyGet) + '?' + this.cConfigService.onObtenerParametrosGet(oData)\r\n return this.cHttpClient.get(urlRequest);\r\n }\r\n\r\n onMileagesByCompanyGet(oData): Observable {\r\n let urlRequest = this.cConfigService.onObtenerBaseUrlServicios(this.sMileagesByCompanyGet) + '?' + this.cConfigService.onObtenerParametrosGet(oData)\r\n return this.cHttpClient.get(urlRequest);\r\n }\r\n\r\n\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { ConfigService } from '../config.service';\r\nimport { Observable } from 'rxjs';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class ImagenesService {\r\n private sServicio = 'OrganizationContentGet';\r\n imagenesHome = [];\r\n imagenesExito = [];\r\n imagenesCancelar = [];\r\n constructor(\r\n private cHttpClient: HttpClient,\r\n private cConfigService: ConfigService\r\n ) { }\r\n\r\n onGetImagen(oData): Observable {\r\n let urlRequest = this.cConfigService.onObtenerBaseUrlServicios(this.sServicio) + '?' +this.cConfigService.onObtenerParametrosGet(oData);\r\n return this.cHttpClient.get(urlRequest);\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { ConfigService } from '../config.service';\r\nimport { Observable } from 'rxjs';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class RecallService {\r\n\r\n private sRecallsByVinGet = \"RecallsByVinGet\";\r\n\r\n constructor(\r\n private cHttpClient: HttpClient,\r\n private cConfigService: ConfigService\r\n ) { }\r\n \r\n onGetRecalls(oData): Observable {\r\n let urlRequest = this.cConfigService.onObtenerBaseUrlServicios(this.sRecallsByVinGet) + '?' +this.cConfigService.onObtenerParametrosGet(oData)\r\n return this.cHttpClient.get(urlRequest);\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { ConfigService } from '../config.service';\r\nimport { Observable } from 'rxjs';\r\nimport { ReservaModel } from 'src/app/models/reserva.model';\r\nimport { ClienteModel } from 'src/app/models/cliente.model';\r\nimport { RespuestaModel } from 'src/app/models/respuesta.model';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class SesionService {\r\n reservaEditar;\r\n private sServicio = 'LoginUser';\r\n private sLoginFlujoAlterno = 'loginFlujoAlterno';\r\n private sSesionPlaca = 'Cliente';\r\n private sPassword = 'resetPassword'\r\n private sIdenticationTypeGet = 'IdenticationTypeGet';\r\n private sAgendaUserLogin = 'AgendaUserLogin';\r\n private sGeolocationGet = 'GeolocationGet';\r\n private sRegistroUsuario = 'AppUserRegistration';\r\n private sMasterSessionDelete = 'MasterSessionDelete';\r\n constructor(\r\n private cHttpClient: HttpClient,\r\n private cConfigService: ConfigService\r\n ) { }\r\n\r\n onGenerarSesion(oData): Observable {\r\n let urlRequest = this.cConfigService.onOtenerBaseUrlSeguridad(this.sServicio);\r\n return this.cHttpClient.post(urlRequest, oData);\r\n }\r\n\r\n obtenerSesionPlaca(oData): Observable {\r\n let urlRequest = this.cConfigService.onOtenerBaseUrlSeguridad(this.sAgendaUserLogin);\r\n return this.cHttpClient.post(urlRequest,oData);\r\n }\r\n\r\n obtenerSesionClienteAlterno(oData): Observable {\r\n let urlRequest = this.cConfigService.onOtenerBaseUrlSeguridad(this.sLoginFlujoAlterno);\r\n return this.cHttpClient.post(urlRequest,oData);\r\n }\r\n\r\n obtenerDatosUsuario(oData): Observable {\r\n let urlRequest = this.cConfigService.onObtenerBaseUrlServicios(this.sSesionPlaca);\r\n return this.cHttpClient.post(urlRequest,oData);\r\n }\r\n\r\n onRestaurarContrasena(c_correo){\r\n let urlRequest = this.cConfigService.onOtenerBaseUrlSeguridad(this.sPassword);\r\n return this.cHttpClient.post(urlRequest, { \"c_clave\": \"\",\"c_usuario\": c_correo,\"c_flag_temp\":\"\" });\r\n }\r\n getIPAddress() \r\n { \r\n return this.cHttpClient.get(\"https://cors-anywhere.herokuapp.com/https://api.ipify.org/?format=json\"); \r\n } \r\n getReniec(dni) \r\n { \r\n let urlRequest = \"https://cors-anywhere.herokuapp.com/https://api.reniec.cloud/dni/\" + dni;\r\n return this.cHttpClient.get(urlRequest); \r\n } \r\n obtenerDocumentos(): Observable {\r\n let urlRequest = this.cConfigService.onOtenerBaseUrlSeguridad(this.sIdenticationTypeGet)\r\n return this.cHttpClient.get(urlRequest);\r\n }\r\n onGeolocationGet(oData): Observable {\r\n let urlRequest = this.cConfigService.onOtenerBaseUrlSeguridad(this.sGeolocationGet) + '?' + this.cConfigService.onObtenerParametrosGet(oData)\r\n return this.cHttpClient.get(urlRequest);\r\n }\r\n registrarUsuario(oData): Observable {\r\n let urlRequest = this.cConfigService.onOtenerBaseUrlSeguridad(this.sRegistroUsuario);\r\n return this.cHttpClient.post(urlRequest,oData);\r\n }\r\n onCerrarSesion(oData):Observable {\r\n let urlRequest = this.cConfigService.onOtenerBaseUrlSeguridad(this.sMasterSessionDelete)+ '?' + this.cConfigService.onObtenerParametrosGet(oData);\r\n return this.cHttpClient.delete(urlRequest);\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\nimport { ConfigService } from './config.service';\r\nimport { HttpClient } from '@angular/common/http';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class SharedService {\r\n private sGeolocationGet = 'GeolocationGet';\r\n private sIdenticationTypeGet = 'IdenticationTypeGet';\r\n private sMasterCustomerGet = 'MasterCustomerGet';\r\n constructor(\r\n private cHttpClient: HttpClient,\r\n private cConfigService: ConfigService\r\n ) { }\r\n\r\n onGeolocationGet(oData): Observable {\r\n let urlRequest = this.cConfigService.onObtenerBaseUrlServicios(this.sGeolocationGet) + '?' + this.cConfigService.onObtenerParametrosGet(oData)\r\n return this.cHttpClient.get(urlRequest);\r\n }\r\n\r\n obtenerDocumentos(): Observable {\r\n let urlRequest = this.cConfigService.onObtenerBaseUrlServicios(this.sIdenticationTypeGet)\r\n return this.cHttpClient.get(urlRequest);\r\n }\r\n\r\n obtenerClienteBackend(oData): Observable {\r\n let urlRequest = this.cConfigService.onObtenerBaseUrlServicios(this.sMasterCustomerGet) + '?' + this.cConfigService.onObtenerParametrosGet(oData)\r\n return this.cHttpClient.get(urlRequest);\r\n }\r\n}\r\n"],"sourceRoot":"webpack:///"}