{"version":3,"sources":["./node_modules/@angular/cdk/esm5/accordion.es5.js","./node_modules/@angular/cdk/esm5/stepper.es5.js","./node_modules/@angular/cdk/esm5/table.es5.js","./node_modules/@angular/cdk/esm5/tree.es5.js","./node_modules/@angular/material/esm5/autocomplete.es5.js","./node_modules/@angular/material/esm5/badge.es5.js","./node_modules/@angular/material/esm5/bottom-sheet.es5.js","./node_modules/@angular/material/esm5/button-toggle.es5.js","./node_modules/@angular/material/esm5/card.es5.js","./node_modules/@angular/material/esm5/divider.es5.js","./node_modules/@angular/material/esm5/expansion.es5.js","./node_modules/@angular/material/esm5/grid-list.es5.js","./node_modules/@angular/material/esm5/list.es5.js","./node_modules/@angular/material/esm5/material.es5.js","./node_modules/@angular/material/esm5/progress-spinner.es5.js","./node_modules/@angular/material/esm5/radio.es5.js","./node_modules/@angular/material/esm5/sidenav.es5.js","./node_modules/@angular/material/esm5/slide-toggle.es5.js","./node_modules/@angular/material/esm5/slider.es5.js","./node_modules/@angular/material/esm5/snack-bar.es5.js","./node_modules/@angular/material/esm5/sort.es5.js","./node_modules/@angular/material/esm5/stepper.es5.js","./node_modules/@angular/material/esm5/table.es5.js","./node_modules/@angular/material/esm5/tabs.es5.js","./node_modules/@angular/material/esm5/toolbar.es5.js","./node_modules/@angular/material/esm5/tree.es5.js","./src/app/blog/blog-entry.template.html","./src/app/blog/blog-latest.template.html","./src/app/blog/blogs-view.template.html","./src/app/blog/blog-entry.component.ts","./src/app/blog/blog-latest.component.ts","./src/app/blog/blog-view.service.ts","./src/app/blog/blog.animations.ts","./src/app/blog/blog.component.ts","./src/app/blog/blog.module.ts","./src/app/blog/blog.routes.ts"],"names":[],"mappings":";;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AAC8D;AAC0D;AAC3E;AACwB;;AAErE;AACA;AACA,cAAc,uFAAuF;AACrG;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,4CAAO;AACxC;AACA;AACA;AACA,wCAAwC,4CAAO;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA,qBAAqB,oBAAoB,EAAE;AAC3C;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA,0BAA0B,eAAe,mFAAqB,QAAQ,EAAE;AACxE;AACA;AACA,KAAK;AACL;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,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,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,IAAI;AACrB;AACA;AACA,iBAAiB,OAAO,mDAAK,EAAE;AAC/B;AACA;AACA,CAAC;;AAED;AACA;AACA,cAAc,uFAAuF;AACrG;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC,iDAAY;AACrD;AACA;AACA;AACA,0BAA0B,0DAAY;AACtC;AACA;AACA;AACA,0BAA0B,0DAAY;AACtC;AACA;AACA;AACA,6BAA6B,0DAAY;AACzC;AACA;AACA;AACA;AACA;AACA,kCAAkC,0DAAY;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA,qBAAqB,EAAE;AACvB;AACA;AACA,uBAAuB,EAAE;AACzB,uBAAuB,EAAE;AACzB,wBAAwB;AACxB;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA,qBAAqB,uBAAuB,EAAE;AAC9C;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA,uBAAuB,mFAAqB;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA,qBAAqB,uBAAuB,EAAE;AAC9C;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA,6BAA6B,kBAAkB,mFAAqB,WAAW,EAAE;AACjF;AACA;AACA,KAAK;AACL;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,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,gBAAgB;AAChB;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS,OAAO,uDAAS;AACzB;AACA;AACA;AACA;AACA;AACA,yBAAyB,sCAAsC;AAC/D;AACA,iBAAiB,IAAI;AACrB;AACA;AACA,mDAAmD;AACnD,SAAS,mCAAmC,OAAO,sDAAQ,EAAE,GAAG,OAAO,sDAAQ,EAAE,GAAG;AACpF,SAAS,OAAO,+DAAiB,EAAE;AACnC,SAAS,OAAO,kFAAyB;AACzC,MAAM;AACN;AACA,kBAAkB,OAAO,oDAAM,EAAE;AACjC,kBAAkB,OAAO,oDAAM,EAAE;AACjC,qBAAqB,OAAO,oDAAM,EAAE;AACpC,0BAA0B,OAAO,oDAAM,EAAE;AACzC,oBAAoB,OAAO,mDAAK,EAAE;AAClC,oBAAoB,OAAO,mDAAK,EAAE;AAClC;AACA;AACA,CAAC;;AAED;AACA;AACA,cAAc,uFAAuF;AACrG;AACA;AACA;AACA;AACA;AACA,SAAS,OAAO,sDAAQ;AACxB;AACA;AACA,iBAAiB,IAAI;AACrB;AACA;AACA,CAAC;;AAED;AACA;AACA,cAAc,uFAAuF;AACrG;;AAEA;AACA;AACA,cAAc,uFAAuF;AACrG;;AAE8D;AAC9D;;;;;;;;;;;;;AClYA;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;AAC0R;AACtO;AACW;AACqB;AACJ;AACvB;AACtB;AACmB;;AAEtD;AACA;AACA,cAAc,uFAAuF;AACrG;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;AACA,qBAAqB;AACrB,iBAAiB,IAAI;AACrB;AACA;AACA,gDAAgD;AAChD,SAAS,OAAO,wDAAU;AAC1B,MAAM;AACN;AACA,CAAC;;AAED;AACA;AACA,cAAc,uFAAuF;AACrG;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,OAAO,uDAAS;AACzB;AACA,iBAAiB,IAAI;AACrB;AACA;AACA,+CAA+C;AAC/C,SAAS,OAAO,yDAAW;AAC3B,MAAM;AACN;AACA,CAAC;;AAED;AACA;AACA,cAAc,uFAAuF;AACrG;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA,iCAAiC,4DAAc;AAC/C;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,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA,6BAA6B,mFAAqB;AAClD,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,6BAA6B,mFAAqB;AAClD,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,sCAAsC,mFAAqB;AAC3D,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA,gCAAgC,mFAAqB;AACrD,SAAS;AACT;AACA;AACA,KAAK;AACL;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;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,OAAO,uDAAS,UAAU;AACnC;AACA;AACA,mCAAmC,+DAAiB;AACpD,qCAAqC,qEAAuB;AAC5D,iBAAiB,IAAI;AACrB;AACA;AACA,0CAA0C;AAC1C,SAAS,iCAAiC,OAAO,oDAAM,SAAS,gEAAU;AAC1E,oCAAoC;AACpC;AACA,qCAAqC,mBAAmB,EAAE,MAAM,GAAG;AACnE,SAAS,gCAAgC,OAAO,sDAAQ,EAAE,GAAG,OAAO,oDAAM,mCAAmC;AAC7G,MAAM;AACN;AACA,qBAAqB,OAAO,0DAAY,wBAAwB,gBAAgB,IAAI;AACpF,mBAAmB,OAAO,uDAAS,SAAS,yDAAW,GAAG,eAAe,IAAI;AAC7E,uBAAuB,OAAO,mDAAK,EAAE;AACrC,iBAAiB,OAAO,mDAAK,EAAE;AAC/B,wBAAwB,OAAO,mDAAK,EAAE;AACtC,qBAAqB,OAAO,mDAAK,yBAAyB;AAC1D,0BAA0B,OAAO,mDAAK,8BAA8B;AACpE,iBAAiB,OAAO,mDAAK,EAAE;AAC/B,oBAAoB,OAAO,mDAAK,EAAE;AAClC,oBAAoB,OAAO,mDAAK,EAAE;AAClC,qBAAqB,OAAO,mDAAK,EAAE;AACnC,oBAAoB,OAAO,mDAAK,EAAE;AAClC;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,4CAAO;AACrC;AACA;AACA;AACA;AACA;AACA,mCAAmC,0DAAY;AAC/C;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,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA,2BAA2B,mFAAqB;AAChD,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,uBAAuB,EAAE;AACzB,2BAA2B,kFAAoB;AAC/C;AACA;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,uFAAuF,EAAE;AACzF,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,+BAA+B,iEAAe;AAC9C;AACA;AACA,kCAAkC,EAAE,2BAA2B,+CAAE;AACjE,kBAAkB,gEAAS,2BAA2B,gEAAS;AAC/D;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA,8BAA8B,+DAA+D,EAAE;AAC/F;AACA,gCAAgC,gEAAS;AACzC,oBAAoB;AACpB;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;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,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA,yBAAyB,qBAAqB,EAAE;AAChD;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,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;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA,+BAA+B,2BAA2B;AAC1D,mBAAmB,EAAE;AACrB;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;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,2BAA2B;AAC1D;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,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,SAAS;AACT;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,0BAA0B,4EAAc;AACxC,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA;AACA,yBAAyB,2DAAK,gBAAgB,2DAAK;AACnD;AACA;AACA;AACA,6BAA6B,0DAAI;AACjC;AACA;AACA;AACA,6BAA6B,yDAAG;AAChC;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,uBAAuB,EAAE;AACzB,wBAAwB;AACxB;AACA;AACA,2BAA2B,EAAE;AAC7B;AACA,2BAA2B,EAAE;AAC7B;AACA;AACA,aAAa;AACb;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;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA,SAAS,OAAO,uDAAS;AACzB;AACA;AACA,iBAAiB,IAAI;AACrB;AACA;AACA,6CAA6C;AAC7C,SAAS,OAAO,gEAAc,gBAAgB,OAAO,sDAAQ,EAAE,GAAG;AAClE,SAAS,OAAO,+DAAiB,EAAE;AACnC,SAAS,OAAO,wDAAU,EAAE;AAC5B,SAAS,gCAAgC,OAAO,oDAAM,SAAS,wDAAQ,IAAI;AAC3E,MAAM;AACN;AACA,kBAAkB,OAAO,6DAAe,oBAAoB;AAC5D,uBAAuB,OAAO,6DAAe,0BAA0B;AACvE,kBAAkB,OAAO,mDAAK,EAAE;AAChC,yBAAyB,OAAO,mDAAK,EAAE;AACvC,oBAAoB,OAAO,mDAAK,EAAE;AAClC,2BAA2B,OAAO,oDAAM,EAAE;AAC1C;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;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,SAAS,OAAO,uDAAS;AACzB;AACA;AACA;AACA;AACA,iBAAiB,IAAI;AACrB;AACA;AACA,iDAAiD;AACjD,SAAS;AACT,MAAM;AACN;AACA,gBAAgB,OAAO,mDAAK,EAAE;AAC9B,wBAAwB,OAAO,0DAAY,oBAAoB;AAC/D;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,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,SAAS,OAAO,uDAAS;AACzB;AACA;AACA;AACA;AACA,iBAAiB,IAAI;AACrB;AACA;AACA,qDAAqD;AACrD,SAAS;AACT,MAAM;AACN;AACA,gBAAgB,OAAO,mDAAK,EAAE;AAC9B,wBAAwB,OAAO,0DAAY,oBAAoB;AAC/D;AACA;AACA,CAAC;;AAED;AACA;AACA,cAAc,uFAAuF;AACrG;AACA;AACA;AACA;AACA;AACA,SAAS,OAAO,sDAAQ;AACxB,8BAA8B,4DAAU,EAAE,4DAAY;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,IAAI;AACrB;AACA;AACA,CAAC;;AAED;AACA;AACA,cAAc,uFAAuF;AACrG;;AAEA;AACA;AACA,cAAc,uFAAuF;AACrG;;AAEyM;AACzM;;;;;;;;;;;;;ACz7BA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;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;AAC4B;AACsP;AACjQ;AACK;AACF;AACL;AACQ;AACO;AACrB;;AAE3C;AACA;AACA,cAAc,uFAAuF;AACrG;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,YAAY;AACZ;AACA;AACA;AACA,QAAQ,uDAAS;AACjB;AACA;AACA,4BAA4B,uBAAuB;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA,yBAAyB,qBAAqB,EAAE;AAChD;AACA,uBAAuB,EAAE;AACzB,wBAAwB;AACxB;AACA;AACA,2BAA2B,EAAE;AAC7B;AACA,+BAA+B,mFAAqB;AACpD;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA,uBAAuB,EAAE;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA,cAAc,uFAAuF;AACrG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,OAAO,uDAAS,UAAU,2BAA2B,IAAI;AAClE;AACA;AACA,6CAA6C;AAC7C,SAAS,OAAO,yDAAW;AAC3B,MAAM;AACN;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,OAAO,uDAAS,UAAU,iCAAiC,IAAI;AACxE;AACA;AACA,mDAAmD;AACnD,SAAS,OAAO,yDAAW;AAC3B,MAAM;AACN;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,OAAO,uDAAS,UAAU,iCAAiC,IAAI;AACxE;AACA;AACA,mDAAmD;AACnD,SAAS,OAAO,yDAAW;AAC3B,MAAM;AACN;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD,WAAW,EAAE;AACb;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,uDAAS;AACb;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,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA,uBAAuB,EAAE;AACzB;AACA,8BAA8B,mFAAqB;AACnD;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA,SAAS,OAAO,uDAAS;AACzB;AACA;AACA,iCAAiC,mEAAmE;AACpG,iBAAiB,IAAI;AACrB;AACA;AACA,gBAAgB,OAAO,mDAAK,2BAA2B;AACvD,qBAAqB,OAAO,mDAAK,wBAAwB;AACzD,gBAAgB,OAAO,0DAAY,sBAAsB,gBAAgB,IAAI;AAC7E,sBAAsB,OAAO,0DAAY,4BAA4B,gBAAgB,IAAI;AACzF,sBAAsB,OAAO,0DAAY,4BAA4B,gBAAgB,IAAI;AACzF;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA,IAAI,uDAAS;AACb;AACA;AACA;AACA;AACA,SAAS,OAAO,uDAAS;AACzB;AACA;AACA;AACA;AACA,qBAAqB;AACrB,iBAAiB,IAAI;AACrB;AACA;AACA,gDAAgD;AAChD,SAAS,qBAAqB;AAC9B,SAAS,OAAO,wDAAU;AAC1B,MAAM;AACN;AACA,CAAC;AACD;AACA;AACA;AACA;AACA,IAAI,uDAAS;AACb;AACA;AACA;AACA;AACA,SAAS,OAAO,uDAAS;AACzB;AACA;AACA;AACA;AACA,qBAAqB;AACrB,iBAAiB,IAAI;AACrB;AACA;AACA,gDAAgD;AAChD,SAAS,qBAAqB;AAC9B,SAAS,OAAO,wDAAU;AAC1B,MAAM;AACN;AACA,CAAC;AACD;AACA;AACA;AACA;AACA,IAAI,uDAAS;AACb;AACA;AACA;AACA;AACA,SAAS,OAAO,uDAAS;AACzB;AACA;AACA;AACA;AACA,qBAAqB;AACrB,iBAAiB,IAAI;AACrB;AACA;AACA,0CAA0C;AAC1C,SAAS,qBAAqB;AAC9B,SAAS,OAAO,wDAAU;AAC1B,MAAM;AACN;AACA,CAAC;;AAED;AACA;AACA,cAAc,uFAAuF;AACrG;AACA;AACA;AACA;AACA,UAAU;AACV;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;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,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,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,uDAAS;AACb;AACA;AACA;AACA;AACA,CAAC;AACD,WAAW,EAAE;AACb;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;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,SAAS,OAAO,uDAAS;AACzB;AACA;AACA,iBAAiB,IAAI;AACrB;AACA;AACA,kDAAkD;AAClD,SAAS,OAAO,yDAAW,EAAE;AAC7B,SAAS,OAAO,6DAAe;AAC/B,MAAM;AACN;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,uDAAS;AACb;AACA;AACA;AACA;AACA,CAAC;AACD,WAAW,EAAE;AACb;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;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,SAAS,OAAO,uDAAS;AACzB;AACA;AACA,iBAAiB,IAAI;AACrB;AACA;AACA,kDAAkD;AAClD,SAAS,OAAO,yDAAW,EAAE;AAC7B,SAAS,OAAO,6DAAe;AAC/B,MAAM;AACN;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,uDAAS;AACb;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,OAAO,uDAAS;AACzB;AACA;AACA,iBAAiB,IAAI;AACrB;AACA;AACA,4CAA4C;AAC5C,SAAS,OAAO,yDAAW,EAAE;AAC7B,SAAS,OAAO,6DAAe;AAC/B,MAAM;AACN;AACA,CAAC;AACD;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;AACA;AACA;AACA;AACA,SAAS,OAAO,uDAAS,UAAU,8BAA8B,IAAI;AACrE;AACA;AACA,gDAAgD;AAChD,SAAS,OAAO,8DAAgB;AAChC,MAAM;AACN;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,OAAO,uDAAS,UAAU;AACnC;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA,qCAAqC,qEAAuB;AAC5D,mCAAmC,+DAAiB;AACpD,iBAAiB,IAAI;AACrB;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,OAAO,uDAAS,UAAU;AACnC;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA,qCAAqC,qEAAuB;AAC5D,mCAAmC,+DAAiB;AACpD,iBAAiB,IAAI;AACrB;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,OAAO,uDAAS,UAAU;AACnC;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA,qCAAqC,qEAAuB;AAC5D,mCAAmC,+DAAiB;AACpD,iBAAiB,IAAI;AACrB;AACA;AACA,CAAC;;AAED;AACA;AACA,cAAc,uFAAuF;AACrG;;AAEA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0EAA0E;AAC1E;AACA;AACA;AACA;AACA,oCAAoC,mBAAmB;AACvD;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,uCAAuC,oBAAoB;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,yBAAyB;AACpD,2BAA2B,EAAE;AAC7B,uCAAuC,EAAE;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB;AACA,eAAe,EAAE;AACjB;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB;AACA,eAAe,EAAE;AACjB;AACA,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA,0BAA0B,cAAc,EAAE;AAC1C,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA,0BAA0B,cAAc,EAAE;AAC1C;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,uCAAuC,oBAAoB;AAC3D;AACA,2BAA2B,cAAc;AACzC,2BAA2B,EAAE;AAC7B,uCAAuC,EAAE;AACzC;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,eAAe,EAAE;AACjB;AACA,eAAe,EAAE;AACjB;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB;AACA,eAAe,EAAE;AACjB;AACA,eAAe,EAAE;AACjB;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA,8BAA8B,wBAAwB;AACtD;AACA;AACA;AACA,uBAAuB,EAAE;AACzB;AACA;AACA,+BAA+B,yBAAyB;AACxD,+BAA+B,EAAE;AACjC,2CAA2C,EAAE;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,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;AACA,mBAAmB,EAAE;AACrB,gCAAgC,EAAE;AAClC;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA,0BAA0B,eAAe,EAAE;AAC3C;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,+DAA+D,gCAAgC;AAC/F;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA,wBAAwB,6BAA6B,EAAE;AACvD;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,2DAA2D,kBAAkB;AAC7E;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,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,iEAAiE,iCAAiC;AAClG;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,uBAAuB,0BAA0B;AACjD,uBAAuB,EAAE;AACzB,mCAAmC,EAAE;AACrC;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,uBAAuB,mBAAmB;AAC1C;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,mCAAmC,OAAO;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA,cAAc,uFAAuF;AACrG;;AAEA;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,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA,kEAAkE;AAClE;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;;AAEA;AACA;AACA,cAAc,uFAAuF;AACrG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,OAAO,uDAAS,UAAU,0BAA0B,IAAI;AACjE;AACA;AACA,gDAAgD;AAChD,SAAS,OAAO,8DAAgB,EAAE;AAClC,SAAS,OAAO,wDAAU;AAC1B,MAAM;AACN;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,OAAO,uDAAS,UAAU,gCAAgC,IAAI;AACvE;AACA;AACA,kDAAkD;AAClD,SAAS,OAAO,8DAAgB,EAAE;AAClC,SAAS,OAAO,wDAAU;AAC1B,MAAM;AACN;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,OAAO,uDAAS,UAAU,gCAAgC,IAAI;AACvE;AACA;AACA,kDAAkD;AAClD,SAAS,OAAO,8DAAgB,EAAE;AAClC,SAAS,OAAO,wDAAU;AAC1B,MAAM;AACN;AACA,CAAC;AACD;AACA;AACA;AACA;AACA,UAAU;AACV;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,CAAC,CAAC,6DAAe;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,4CAAO;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,8BAA8B,oDAAe,EAAE,kCAAkC;AACjF;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,gBAAgB,+DAAS,4DAA4D,EAAE;AACvF,4BAA4B,EAAE;AAC9B;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;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,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA,0CAA0C,mFAAqB;AAC/D;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,mBAAmB,EAAE;AACrB,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;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;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,6EAAY;AACxB;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;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA,mBAAmB,EAAE;AACrB,mBAAmB,EAAE;AACrB,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA;AACA,0DAA0D,EAAE;AAC5D;AACA;AACA,iDAAiD,EAAE;AACnD;AACA;AACA,2BAA2B,EAAE;AAC7B,uCAAuC,EAAE,mCAAmC,EAAE;AAC9E,+CAA+C,EAAE;AACjD;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA,uBAAuB,EAAE;AACzB,sCAAsC,EAAE,mCAAmC,EAAE;AAC7E;AACA,SAAS;AACT;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,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,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,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;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,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB,uCAAuC,EAAE;AACzC;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA,wBAAwB,mBAAmB,EAAE;AAC7C;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA,wBAAwB,iCAAiC,EAAE;AAC3D;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,uCAAuC,EAAE;AACzC;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA,wBAAwB,mBAAmB,EAAE;AAC7C;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA,wBAAwB,iCAAiC,EAAE;AAC3D;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,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA;AACA,uBAAuB,EAAE;AACzB;AACA,2BAA2B,qBAAqB;AAChD;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,mBAAmB,EAAE;AACrB,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA,wBAAwB,iCAAiC,EAAE;AAC3D;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,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA,uBAAuB,uBAAuB;AAC9C,uBAAuB,EAAE;AACzB;AACA,uBAAuB,EAAE;AACzB;AACA;AACA;AACA;AACA,2BAA2B,8BAA8B;AACzD,2BAA2B,EAAE;AAC7B;AACA,2BAA2B,EAAE;AAC7B,wCAAwC,EAAE;AAC1C;AACA,gCAAgC,EAAE;AAClC;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,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA,uBAAuB,EAAE;AACzB,8EAA8E,EAAE;AAChF;AACA,2BAA2B,EAAE;AAC7B,0CAA0C,EAAE;AAC5C;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA,wBAAwB,kBAAkB,EAAE;AAC5C;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,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA,6BAA6B,sCAAsC,EAAE;AACrE;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,YAAY,6EAAY;AACxB;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,mBAAmB,EAAE;AACrB;AACA,YAAY,6EAAY;AACxB;AACA;AACA,4CAA4C,+CAAU;AACtD;AACA;AACA;AACA,yBAAyB,+CAAE;AAC3B;AACA;AACA;AACA;AACA,yDAAyD,gEAAS;AAClE,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;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;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA,2BAA2B,yDAAyD,EAAE;AACtF;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,mBAAmB,EAAE;AACrB,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA,2BAA2B,yDAAyD,EAAE;AACtF;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,oBAAoB;AACpB;AACA;AACA,uBAAuB,EAAE;AACzB;AACA;AACA;AACA;AACA,+BAA+B,EAAE;AACjC,SAAS;AACT,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA,8BAA8B,yBAAyB,EAAE;AACzD,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA,8BAA8B,4BAA4B,EAAE;AAC5D;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,oCAAoC;AAC3D,uBAAuB,EAAE;AACzB,uCAAuC,EAAE,iBAAiB,EAAE;AAC5D;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;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA,uBAAuB,EAAE;AACzB,wBAAwB;AACxB;AACA,4BAA4B,+CAA+C,EAAE;AAC7E;AACA;AACA,uBAAuB,EAAE;AACzB;AACA,uBAAuB,EAAE;AACzB,wBAAwB;AACxB;AACA,4BAA4B,8CAA8C,EAAE;AAC5E;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,uBAAuB;AACvB;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,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA,iCAAiC,cAAc;AAC/C;AACA;AACA,6DAA6D,gBAAgB;AAC7E;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,+DAA+D,qBAAqB;AACpF,uBAAuB,EAAE;AACzB,sCAAsC,EAAE;AACxC,uBAAuB,EAAE;AACzB,sCAAsC,EAAE;AACxC;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,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA,uBAAuB,EAAE;AACzB;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA,aAAa,8CAA8C;AAC3D,aAAa,wCAAwC;AACrD,aAAa,8CAA8C;AAC3D;AACA,+CAA+C,wBAAwB;AACvE;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;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,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB,mBAAmB,EAAE;AACrB,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,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA,wCAAwC,+CAAE;AAC1C,kBAAkB,gEAAS;AAC3B;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS,OAAO,uDAAS,UAAU;AACnC;AACA;AACA;AACA;AACA,qBAAqB;AACrB,mCAAmC,+DAAiB;AACpD;AACA;AACA;AACA;AACA,qCAAqC,qEAAuB;AAC5D,iBAAiB,IAAI;AACrB;AACA;AACA,2CAA2C;AAC3C,SAAS,OAAO,6DAAe,EAAE;AACjC,SAAS,OAAO,+DAAiB,EAAE;AACnC,SAAS,OAAO,wDAAU,EAAE;AAC5B,SAAS,6BAA6B,OAAO,uDAAS,mBAAmB,GAAG;AAC5E,SAAS,OAAO,gEAAc,gBAAgB,OAAO,sDAAQ,EAAE,GAAG;AAClE,SAAS,gCAAgC,OAAO,oDAAM,SAAS,wDAAQ,IAAI,GAAG;AAC9E,SAAS,OAAO,8DAAQ;AACxB,MAAM;AACN;AACA,mBAAmB,OAAO,mDAAK,EAAE;AACjC,sBAAsB,OAAO,mDAAK,EAAE;AACpC,iCAAiC,OAAO,mDAAK,EAAE;AAC/C,sBAAsB,OAAO,uDAAS,yBAAyB,eAAe,IAAI;AAClF,4BAA4B,OAAO,uDAAS,2BAA2B,eAAe,IAAI;AAC1F,4BAA4B,OAAO,uDAAS,2BAA2B,eAAe,IAAI;AAC1F,8BAA8B,OAAO,6DAAe,yBAAyB;AAC7E,2BAA2B,OAAO,6DAAe,sBAAsB;AACvE,iCAAiC,OAAO,6DAAe,4BAA4B;AACnF,iCAAiC,OAAO,6DAAe,4BAA4B;AACnF;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,WAAW,EAAE;AACb,WAAW,EAAE;AACb,YAAY;AACZ;AACA;AACA;AACA;;AAEA;AACA;AACA,cAAc,uFAAuF;AACrG;AACA;AACA;AACA,UAAU;AACV;AACA,8BAA8B,4DAAc;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,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,gBAAgB;AAChB;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,EAAE;AAC7B,2BAA2B,EAAE;AAC7B,4BAA4B;AAC5B;AACA,uCAAuC,qBAAqB,EAAE,mBAAmB,EAAE;AACnF;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,YAAY,+DAAS;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,SAAS,OAAO,uDAAS,UAAU;AACnC,yJAAyJ,YAAY,sGAAsG,0BAA0B;AACrS,mCAAmC,+DAAiB;AACpD;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC,qEAAuB;AAC5D,iBAAiB,IAAI;AACrB;AACA;AACA,gDAAgD;AAChD,SAAS,+BAA+B,OAAO,sDAAQ,EAAE,GAAG;AAC5D,SAAS,gCAAgC,OAAO,sDAAQ,EAAE,GAAG,OAAO,oDAAM,gCAAgC;AAC1G,MAAM;AACN;AACA,gBAAgB,OAAO,mDAAK,EAAE;AAC9B,sBAAsB,OAAO,mDAAK,EAAE;AACpC,wBAAwB,OAAO,mDAAK,EAAE;AACtC,mBAAmB,OAAO,mDAAK,EAAE;AACjC,qBAAqB,OAAO,uDAAS,wBAAwB,eAAe,IAAI;AAChF,gBAAgB,OAAO,uDAAS,sBAAsB,eAAe,IAAI;AACzE,sBAAsB,OAAO,uDAAS,4BAA4B,eAAe,IAAI;AACrF;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,SAAS,OAAO,sDAAQ;AACxB,8BAA8B,4DAAY;AAC1C;AACA;AACA,iBAAiB,IAAI;AACrB;AACA;AACA,CAAC;;AAED;AACA;AACA,cAAc,uFAAuF;AACrG;;AAEA;AACA;AACA,cAAc,uFAAuF;AACrG;;AAEmb;AACnb;;;;;;;;;;;;;ACh8FA;AAAA;AAAA;AAAA;AAAA;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;AACwE;AACtC;AAC8B;AACP;AAC+N;AACrO;AACiC;AACnC;AACF;;AAE/C;AACA;AACA,cAAc,uFAAuF;AACrG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,uEAAc;AAChD;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,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,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,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,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA,cAAc,uFAAuF;AACrG;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,eAAe,EAAE;AACjB,gBAAgB;AAChB;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,oCAAoC,yFAAyF;AAC7H;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,CAAC;;AAED;AACA;AACA,cAAc,uFAAuF;AACrG;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,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;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;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA,uBAAuB,EAAE;AACzB,wBAAwB;AACxB;AACA,8BAA8B,kDAAkD,EAAE;AAClF;AACA,0CAA0C,+CAAU;AACpD;AACA;AACA,+BAA+B,2DAAI,KAAK,6DAAM,aAAa,EAAE;AAC7D;AACA,uBAAuB,EAAE;AACzB,wBAAwB;AACxB;AACA;AACA,uDAAuD,wBAAwB;AAC/E;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA,cAAc,uFAAuF;AACrG;;AAEA;AACA;AACA,cAAc,uFAAuF;AACrG;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA,oCAAoC,4DAAc;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,OAAO,uDAAS;AACzB;AACA,iBAAiB,IAAI;AACrB;AACA;AACA,oDAAoD;AACpD,SAAS,OAAO,8DAAgB,EAAE;AAClC,SAAS,gCAAgC,OAAO,oDAAM,sCAAsC,GAAG,OAAO,sDAAQ,EAAE;AAChH,MAAM;AACN;AACA,CAAC;;AAED;AACA;AACA,cAAc,uFAAuF;AACrG;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,SAAS,OAAO,uDAAS;AACzB;AACA;AACA;AACA;AACA,iBAAiB,IAAI;AACrB;AACA;AACA,iDAAiD;AACjD,SAAS,OAAO,yDAAW;AAC3B,MAAM;AACN;AACA,CAAC;;AAED;AACA;AACA,cAAc,uFAAuF;AACrG;;AAEA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;;AAEA;AACA;AACA,cAAc,uFAAuF;AACrG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,4CAAO;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,oDAAe,EAAE,kCAAkC;AACjF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA,qBAAqB,yBAAyB,EAAE;AAChD;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;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,oDAAoD,EAAE;AACtD,yBAAyB,EAAE;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA,wBAAwB,kBAAkB,EAAE;AAC5C;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,oDAAoD,EAAE;AACtD,yBAAyB,EAAE;AAC3B;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,mBAAmB,EAAE;AACrB;AACA,YAAY,6EAAY;AACxB;AACA;AACA,6CAA6C,+CAAU;AACvD;AACA;AACA;AACA,yBAAyB,+CAAE;AAC3B;AACA;AACA,qDAAqD,gEAAS;AAC9D;AACA,uBAAuB,EAAE;AACzB,wBAAwB;AACxB;AACA,6BAA6B,sCAAsC,EAAE;AACrE;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,oCAAoC,+BAA+B;AACnE,uCAAuC,gDAAgD;AACvF,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB,mBAAmB,EAAE;AACrB,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA;AACA,kDAAkD,EAAE,kCAAkC,EAAE;AACxF;AACA;AACA,iDAAiD,EAAE;AACnD;AACA;AACA;AACA,2BAA2B,EAAE;AAC7B,yDAAyD,EAAE;AAC3D,+CAA+C,EAAE;AACjD;AACA,SAAS;AACT;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;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA,wBAAwB,sCAAsC,EAAE;AAChE;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,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,GAAG;AAClB,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,EAAE;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,OAAO,uDAAS,UAAU;AACnC;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB,mCAAmC,+DAAiB;AACpD;AACA;AACA;AACA;AACA,qCAAqC,qEAAuB;AAC5D,iBAAiB,IAAI;AACrB;AACA;AACA,0CAA0C;AAC1C,SAAS,OAAO,6DAAe,EAAE;AACjC,SAAS,OAAO,+DAAiB;AACjC,MAAM;AACN;AACA,sBAAsB,OAAO,mDAAK,EAAE;AACpC,uBAAuB,OAAO,mDAAK,EAAE;AACrC,mBAAmB,OAAO,mDAAK,EAAE;AACjC,uBAAuB,OAAO,uDAAS,6BAA6B,eAAe,IAAI;AACvF,qBAAqB,OAAO,6DAAe,2BAA2B;AACtE;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,4CAAO;AACrC;AACA;AACA;AACA,gCAAgC,4CAAO;AACvC;AACA;AACA;AACA;AACA;AACA,qDAAqD,EAAE;AACvD;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA,qBAAqB,mBAAmB,EAAE;AAC1C;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;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,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,gBAAgB;AAChB;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,EAAE;AACzB;AACA;AACA,sDAAsD,EAAE;AACxD;AACA,8CAA8C,+CAAU;AACxD,mCAAmC,gEAAS;AAC5C;AACA,2BAA2B,EAAE;AAC7B,4BAA4B;AAC5B;AACA,qCAAqC,6CAA6C,EAAE;AACpF;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;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB,iBAAiB,IAAI;AACrB;AACA;AACA,8CAA8C;AAC9C,SAAS,OAAO,wDAAU,EAAE;AAC5B,SAAS;AACT,MAAM;AACN;AACA,gBAAgB,OAAO,mDAAK,EAAE;AAC9B;AACA;AACA,CAAC;;AAED;AACA;AACA,cAAc,uFAAuF;AACrG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,gCAAgC,aAAa;AAC7C,gCAAgC,aAAa;AAC7C;AACA;AACA;AACA;AACA;AACA,IAAI,uDAAS;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA,iDAAiD,EAAE;AACnD;AACA,0CAA0C,+CAAU;AACpD,+BAA+B,gEAAS;AACxC;AACA,uBAAuB,EAAE;AACzB,wBAAwB;AACxB;AACA,+BAA+B,0CAA0C,EAAE;AAC3E;AACA,qCAAqC,gEAAS;AAC9C;AACA,oBAAoB;AACpB;AACA,qBAAqB,oCAAoC,EAAE;AAC3D;AACA;AACA,gBAAgB;AAChB;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,mBAAmB,EAAE;AACrB;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,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,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA,2BAA2B,gDAAgD,EAAE;AAC7E;AACA;AACA,SAAS,OAAO,uDAAS;AACzB;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA,yBAAyB,uDAAuD;AAChF,yBAAyB;AACzB;AACA,iBAAiB,IAAI;AACrB;AACA;AACA,oDAAoD;AACpD,SAAS,OAAO,wDAAU,EAAE;AAC5B,SAAS,gBAAgB;AACzB,SAAS,OAAO,6DAAe;AAC/B,MAAM;AACN;AACA,sBAAsB,OAAO,6DAAe;AAC5C;AACA;AACA;AACA,qBAAqB,IAAI;AACzB;AACA;AACA,CAAC;;AAED;AACA;AACA,cAAc,uFAAuF;AACrG;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,4CAAO;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,gEAAS;AACtC,wBAAwB;AACxB;AACA,yBAAyB,gCAAgC,EAAE;AAC3D;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA,qBAAqB,4BAA4B,EAAE;AACnD;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA,qBAAqB,oBAAoB,EAAE;AAC3C;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA,sCAAsC,EAAE,KAAK,kFAAoB;AACjE;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA,qBAAqB,qBAAqB,EAAE;AAC5C;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA,uBAAuB,EAAE;AACzB;AACA,uBAAuB,EAAE;AACzB;AACA;AACA,2BAA2B,EAAE;AAC7B;AACA;AACA;AACA;AACA;AACA,2BAA2B,kFAAoB;AAC/C;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA,gBAAgB;AAChB;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;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA,qCAAqC,qBAAqB;AAC1D,mBAAmB,EAAE;AACrB;AACA;AACA,uBAAuB,EAAE;AACzB;AACA,uBAAuB,EAAE;AACzB;AACA,uBAAuB,EAAE;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,OAAO,uDAAS;AACzB;AACA,iBAAiB,IAAI;AACrB;AACA;AACA,qDAAqD;AACrD,SAAS,oBAAoB;AAC7B,SAAS,gBAAgB;AACzB,SAAS,OAAO,uDAAS,EAAE;AAC3B,SAAS,OAAO,wDAAU,EAAE;AAC5B,SAAS,OAAO,gEAAc,gBAAgB,OAAO,sDAAQ,EAAE;AAC/D,MAAM;AACN;AACA,iBAAiB,OAAO,mDAAK,iCAAiC;AAC9D,kBAAkB,OAAO,mDAAK,uCAAuC;AACrE;AACA;AACA,CAAC;;AAED;AACA;AACA,cAAc,uFAAuF;AACrG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA,qBAAqB,wBAAwB,EAAE;AAC/C;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA,0BAA0B,mBAAmB,mFAAqB,QAAQ,EAAE;AAC5E;AACA;AACA,KAAK;AACL;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,SAAS,OAAO,uDAAS,UAAU,kCAAkC,IAAI;AACzE;AACA;AACA,oDAAoD;AACpD,SAAS,gBAAgB;AACzB,SAAS;AACT,MAAM;AACN;AACA,qBAAqB,OAAO,mDAAK,yCAAyC;AAC1E,mBAAmB,OAAO,0DAAY,gCAAgC;AACtE;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,SAAS,OAAO,sDAAQ;AACxB,8BAA8B,4DAAY;AAC1C;AACA;AACA,gCAAgC,8DAAY;AAC5C,iBAAiB,IAAI;AACrB;AACA;AACA,CAAC;;AAED;AACA;AACA,cAAc,uFAAuF;AACrG;;AAEA;AACA;AACA,cAAc,uFAAuF;AACrG;;AAE+Z;AAC/Z;;;;;;;;;;;;;ACn8CA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;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;AAC6B;AACD;AACgO;AACxD;AACnL;AAC8B;AACJ;AAClB;AACN;AACE;AACE;AACN;AACS;AACc;AACA;;AAE1E;AACA;AACA,cAAc,uFAAuF;AACrG;AACA;AACA;AACA;AACA,UAAU;AACV;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,CAAC;AACD,WAAW,EAAE;AACb,gCAAgC,iFAAkB;AAClD;AACA;AACA,UAAU;AACV;AACA,2CAA2C,4DAAc;AACzD;AACA;AACA,CAAC;AACD;AACA;AACA,YAAY;AACZ;AACA;AACA,YAAY;AACZ;AACA;AACA,IAAI,uDAAS;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,0DAAY;AAC/C;AACA;AACA;AACA,2BAA2B,0DAAY;AACvC;AACA;AACA;AACA,2BAA2B,0DAAY;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA,qBAAqB,uCAAuC,EAAE;AAC9D;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA,qBAAqB,oCAAoC,EAAE;AAC3D;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA,0CAA0C,mFAAqB;AAC/D,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA;AACA;AACA,2BAA2B,EAAE;AAC7B,2BAA2B,EAAE;AAC7B,4BAA4B;AAC5B;AACA;AACA;AACA;AACA,iBAAiB,eAAe,EAAE,OAAO;AACzC;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA,gBAAgB;AAChB;AACA;AACA,gBAAgB;AAChB;AACA;AACA,+BAA+B,4EAA0B;AACzD;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,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,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;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,OAAO,uDAAS,UAAU;AACnC;AACA,sDAAsD,gBAAgB,gBAAgB,cAAc,iCAAiC,kBAAkB,eAAe,iBAAiB,kBAAkB,WAAW,8BAA8B,+BAA+B,iDAAiD,mBAAmB,gDAAgD,kBAAkB,sDAAsD,gBAAgB,2BAA2B,4BAA4B,gDAAgD,gBAAgB,kCAAkC,wBAAwB,mBAAmB;AACjqB,mCAAmC,+DAAiB;AACpD,qCAAqC,qEAAuB;AAC5D;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA,yBAAyB,UAAU,kFAA2B;AAC9D;AACA,iBAAiB,IAAI;AACrB;AACA;AACA,kDAAkD;AAClD,SAAS,OAAO,+DAAiB,EAAE;AACnC,SAAS,OAAO,wDAAU,EAAE;AAC5B,SAAS,gCAAgC,OAAO,oDAAM,6CAA6C;AACnG,MAAM;AACN;AACA,oBAAoB,OAAO,uDAAS,SAAS,yDAAW,GAAG,eAAe,IAAI;AAC9E,iBAAiB,OAAO,uDAAS,mBAAmB,gBAAgB,IAAI;AACxE,mBAAmB,OAAO,6DAAe,SAAS,gEAAS,GAAG,oBAAoB,IAAI;AACtF,wBAAwB,OAAO,6DAAe,SAAS,kEAAW,IAAI;AACtE,uBAAuB,OAAO,mDAAK,EAAE;AACrC,iCAAiC,OAAO,mDAAK,EAAE;AAC/C,sBAAsB,OAAO,mDAAK,EAAE;AACpC,0BAA0B,OAAO,oDAAM,EAAE;AACzC,kBAAkB,OAAO,oDAAM,EAAE;AACjC,kBAAkB,OAAO,oDAAM,EAAE;AACjC,qBAAqB,OAAO,mDAAK,oBAAoB;AACrD;AACA;AACA,CAAC;;AAED;AACA;AACA,cAAc,uFAAuF;AACrG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,OAAO,uDAAS;AACzB;AACA;AACA,iBAAiB,IAAI;AACrB;AACA;AACA,wDAAwD;AACxD,SAAS,OAAO,wDAAU;AAC1B,MAAM;AACN;AACA,CAAC;;AAED;AACA;AACA,cAAc,uFAAuF;AACrG;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA,UAAU;AACV;AACA,2CAA2C,4DAAc;AACzD;AACA;AACA,WAAW,EAAE;AACb,YAAY;AACZ;AACA;AACA;AACA,gBAAgB;AAChB;AACA,iBAAiB,8CAA8C,EAAE;AACjE;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA,WAAW,4DAAO;AAClB;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA,aAAa,iEAAiB;AAC9B,iBAAiB,gEAAU;AAC3B,gBAAgB;AAChB;AACA,iBAAiB,+BAA+B,EAAE;AAClD;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,qCAAqC,kDAAY;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,6CAAO;AAC/C;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA,qBAAqB,EAAE;AACvB;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA,qBAAqB,EAAE;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C,EAAE,KAAK,mDAAK;AACxD,oBAAoB;AACpB;AACA;AACA;AACA,uBAAuB,2CAAK;AAC5B,2BAA2B,EAAE;AAC7B,4BAA4B;AAC5B;AACA,mCAAmC,iCAAiC,EAAE;AACtE;AACA;AACA;AACA;AACA;AACA,sBAAsB,4DAAI,KAAK,iEAAS;AACxC,wBAAwB;AACxB;AACA,yBAAyB,+BAA+B,EAAE;AAC1D,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA,qBAAqB,mCAAmC,EAAE;AAC1D;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA,yCAAyC,mFAAqB;AAC9D,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA,gBAAgB;AAChB;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA;AACA,aAAa;AACb,gBAAgB,gFAAkB;AAClC,2BAA2B,EAAE;AAC7B;AACA,2BAA2B,EAAE;AAC7B;AACA;AACA;AACA,4EAA4E,EAAE;AAC9E;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,4BAA4B,EAAE;AAC9B;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA,gBAAgB;AAChB;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,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;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,wBAAwB,EAAE;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,mBAAmB,mDAAK,kEAAkE,8DAAM;AAChG,wBAAwB;AACxB;AACA,yBAAyB,+BAA+B,EAAE;AAC1D,oDAAoD,8DAAM;AAC1D,4BAA4B;AAC5B;AACA,6BAA6B,+BAA+B,EAAE;AAC9D,gBAAgB,gDAAE;AAClB;AACA,YAAY,2DAAG;AACf,uBAAuB,EAAE;AACzB,wBAAwB;AACxB;AACA,8BAA8B,yBAAyB,+EAAwB,gBAAgB,EAAE;AACjG,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,mDAAK,aAAa,EAAE,KAAK,uDAAS,yCAAyC,EAAE,KAAK,uDAAS;AAC1G,kBAAkB,8DAAM;AACxB,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA;AACA;AACA,uBAAuB,EAAE;AACzB,0CAA0C,EAAE;AAC5C;AACA,uBAAuB,EAAE;AACzB;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA,qBAAqB,sCAAsC,EAAE;AAC7D;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,eAAe,EAAE;AACjB,gBAAgB;AAChB;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,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,wBAAwB,4DAAM;AAC9B;AACA;AACA,6CAA6C,2DAAK;AAClD;AACA;AACA;AACA;AACA;AACA,uBAAuB,EAAE;AACzB;AACA,uBAAuB,EAAE;AACzB,yCAAyC,8DAAQ,gBAAgB,gEAAU;AAC3E,8CAA8C,yDAAG;AACjD;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,iCAAiC,EAAE;AACnC,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,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,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA,uCAAuC,uBAAuB;AAC9D;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,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB,yBAAyB,4FAA6B;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,EAAE;AACzB,oCAAoC,uFAAwB;AAC5D;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,kEAAkE,4DAAI;AACtE,mBAAmB,EAAE;AACrB,mEAAmE,2DAAG;AACtE,oBAAoB;AACpB;AACA,qBAAqB,sDAAsD,EAAE;AAC7E;AACA;AACA,QAAQ,6DAAK;AACb;AACA,eAAe,mDAAK;AACpB;AACA;AACA;AACA,QAAQ,iEAAS;AACjB,oBAAoB;AACpB;AACA;AACA,uBAAuB,EAAE;AACzB;AACA;AACA;AACA;AACA,4BAA4B,EAAE;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,QAAQ,4DAAI;AACZ;AACA;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA,0BAA0B,uCAAuC,EAAE;AACnE;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,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;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;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA,+BAA+B,kEAAc;AAC7C;AACA;AACA;AACA;AACA;AACA,uBAAuB,EAAE;AACzB,wBAAwB;AACxB;AACA;AACA;AACA;AACA,sCAAsC,4DAAM,uBAAuB,8DAAQ;AAC3E;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,4BAA4B;AAC5B;AACA;AACA;AACA,+CAA+C,gCAAgC;AAC/E;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA,mCAAmC,+BAA+B;AAClE;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA,mBAAmB,kEAAa;AAChC;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;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,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,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,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;AACA;AACA,gBAAgB;AAChB;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,SAAS,OAAO,uDAAS;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA,iBAAiB,IAAI;AACrB;AACA;AACA,yDAAyD;AACzD,SAAS,OAAO,wDAAU,EAAE;AAC5B,SAAS,OAAO,4DAAO,EAAE;AACzB,SAAS,OAAO,8DAAgB,EAAE;AAClC,SAAS,OAAO,oDAAM,EAAE;AACxB,SAAS,OAAO,+DAAiB,EAAE;AACnC,SAAS,gCAAgC,OAAO,oDAAM,6CAA6C,GAAG;AACtG,SAAS,OAAO,gEAAc,gBAAgB,OAAO,sDAAQ,EAAE,GAAG;AAClE,SAAS,OAAO,0EAAY,gBAAgB,OAAO,sDAAQ,EAAE,GAAG,OAAO,kDAAI,EAAE,GAAG;AAChF,SAAS,gCAAgC,OAAO,sDAAQ,EAAE,GAAG,OAAO,oDAAM,SAAS,yDAAQ,IAAI,GAAG;AAClG,SAAS,OAAO,qEAAa;AAC7B,MAAM;AACN;AACA,wBAAwB,OAAO,mDAAK,8BAA8B;AAClE,oBAAoB,OAAO,mDAAK,sCAAsC;AACtE,uBAAuB,OAAO,mDAAK,yCAAyC;AAC5E,iCAAiC,OAAO,mDAAK,2BAA2B;AACxE,gCAAgC,OAAO,mDAAK,sCAAsC;AAClF;AACA;AACA,CAAC;;AAED;AACA;AACA,cAAc,uFAAuF;AACrG;AACA;AACA;AACA;AACA;AACA,SAAS,OAAO,sDAAQ;AACxB,8BAA8B,sEAAe,EAAE,kEAAa,EAAE,sEAAe,EAAE,6DAAY;AAC3F;AACA;AACA,wBAAwB,sEAAe;AACvC;AACA;AACA,wBAAwB,sEAAe;AACvC;AACA;AACA;AACA,iBAAiB,IAAI;AACrB;AACA;AACA,CAAC;;AAED;AACA;AACA,cAAc,uFAAuF;AACrG;;AAEA;AACA;AACA,cAAc,uFAAuF;AACrG;;AAEuc;AACvc;;;;;;;;;;;;;AC95CA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACkC;AAC4B;AACA;AACyD;AAC/C;AACK;;AAE7E;AACA;AACA,cAAc,uFAAuF;AACrG;AACA,WAAW,EAAE;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD,WAAW,EAAE;AACb,yBAAyB,4EAAa;AACtC;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,YAAY,+DAAS;AACrB,uBAAuB,EAAE;AACzB;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,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA,qBAAqB,sBAAsB,EAAE;AAC7C;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA,4BAA4B,mFAAqB;AACjD,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA,qBAAqB,0BAA0B,EAAE;AACjD;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA;AACA,2BAA2B,EAAE;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA,qBAAqB,qBAAqB,EAAE;AAC5C;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA,2BAA2B,mFAAqB;AAChD,SAAS;AACT;AACA;AACA,KAAK;AACL;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,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;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;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;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,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA;AACA,4BAA4B;AAC5B;AACA;AACA;AACA,iBAAiB;AACjB,aAAa;AACb;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;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,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,uBAAuB,EAAE;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,OAAO,uDAAS;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB,iBAAiB,IAAI;AACrB;AACA;AACA,2CAA2C;AAC3C,SAAS,OAAO,oDAAM,EAAE;AACxB,SAAS,OAAO,wDAAU,EAAE;AAC5B,SAAS,OAAO,+DAAa,EAAE;AAC/B,SAAS,OAAO,uDAAS,EAAE;AAC3B,SAAS,6BAA6B,OAAO,sDAAQ,EAAE,GAAG,OAAO,oDAAM,SAAS,0FAAqB,IAAI;AACzG,MAAM;AACN;AACA,iBAAiB,OAAO,mDAAK,4BAA4B;AACzD,mBAAmB,OAAO,mDAAK,8BAA8B;AAC7D,oBAAoB,OAAO,mDAAK,+BAA+B;AAC/D,mBAAmB,OAAO,mDAAK,uBAAuB;AACtD,uBAAuB,OAAO,mDAAK,kCAAkC;AACrE,gBAAgB,OAAO,mDAAK,2BAA2B;AACvD,kBAAkB,OAAO,mDAAK,6BAA6B;AAC3D;AACA;AACA,CAAC;;AAED;AACA;AACA,cAAc,uFAAuF;AACrG;AACA;AACA;AACA;AACA;AACA,SAAS,OAAO,sDAAQ;AACxB;AACA,wBAAwB,4DAAU;AAClC,wBAAwB,sEAAe;AACvC;AACA;AACA;AACA,iBAAiB,IAAI;AACrB;AACA;AACA,CAAC;;AAED;AACA;AACA,cAAc,uFAAuF;AACrG;;AAEA;AACA;AACA,cAAc,uFAAuF;AACrG;;AAEoC;AACpC;;;;;;;;;;;;;AChcA;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;AAC+Q;AAC9L;AACa;AAClD;AAC2F;AACjE;AACH;AACd;AACwB;AACd;AACrB;AACI;AACK;;AAEnD;AACA;AACA,cAAc,uFAAuF;AACrG;AACA;AACA;AACA,UAAU;AACV;AACA,gCAAgC,4DAAc;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,CAAC;;AAED;AACA;AACA,cAAc,uFAAuF;AACrG;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA,sBAAsB,mEAAO;AAC7B,QAAQ,iEAAK,iBAAiB,iEAAK,EAAE,gCAAgC;AACrE,QAAQ,iEAAK,YAAY,iEAAK,EAAE,8BAA8B;AAC9D,QAAQ,sEAAU,uCAAuC,mEAAO,CAAC,yEAAkB,iBAAiB,sEAAe;AACnH,QAAQ,sEAAU,oBAAoB,mEAAO,CAAC,yEAAkB,iBAAiB,sEAAe;AAChG;AACA;;AAEA;AACA;AACA,cAAc,uFAAuF;AACrG;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,uDAAS;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C,0DAAY;AACvD;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,+DAAW,SAAS,+DAAW,QAAQ,+DAAW;AACxE;AACA,oBAAoB;AACpB;AACA;AACA,iGAAiG,+DAAW;AAC5G,gGAAgG,+DAAW;AAC3G,iGAAiG,+DAAW;AAC5G,SAAS;AACT;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,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,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,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;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;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,gBAAgB;AAChB;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA,uBAAuB,EAAE;AACzB,wBAAwB;AACxB;AACA,iCAAiC,wCAAwC,EAAE;AAC3E;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,uBAAuB,EAAE;AACzB;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,uDAAuD,EAAE;AACzD;AACA;AACA;AACA,wBAAwB;AACxB;AACA,yBAAyB,gDAAgD,EAAE;AAC3E;AACA;AACA;AACA,SAAS,OAAO,uDAAS,UAAU;AACnC;AACA,0DAA0D,iBAAiB,gBAAgB,sBAAsB,cAAc,UAAU,gBAAgB,cAAc,kCAAkC,4BAA4B,mBAAmB,wGAAwG,2BAA2B,4BAA4B,mCAAmC,gBAAgB,8BAA8B,kCAAkC,gBAAgB,8BAA8B,mCAAmC,gBAAgB,8BAA8B;AACzoB,qCAAqC,qEAAuB;AAC5D,mCAAmC,+DAAiB;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB,iBAAiB,IAAI;AACrB;AACA;AACA,0DAA0D;AAC1D,SAAS,OAAO,wDAAU,EAAE;AAC5B,SAAS,OAAO,+DAAiB,EAAE;AACnC,SAAS,OAAO,kEAAgB,EAAE;AAClC,SAAS,OAAO,sEAAkB,EAAE;AACpC,SAAS,gCAAgC,OAAO,sDAAQ,EAAE,GAAG,OAAO,oDAAM,SAAS,wDAAQ,IAAI,GAAG;AAClG,SAAS;AACT,MAAM;AACN;AACA,yBAAyB,OAAO,uDAAS,SAAS,mEAAe,GAAG,eAAe,IAAI;AACvF;AACA;AACA,CAAC,CAAC,oEAAgB;;AAElB;AACA;AACA,cAAc,uFAAuF;AACrG;AACA;AACA;AACA;AACA;AACA,SAAS,OAAO,sDAAQ;AACxB;AACA,wBAAwB,4DAAY;AACpC,wBAAwB,kEAAa;AACrC,wBAAwB,sEAAe;AACvC,wBAAwB,gEAAY;AACpC;AACA,uDAAuD,sEAAe;AACtE;AACA;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;AACA;AACA,mCAAmC,6CAAO;AAC1C;AACA;AACA;AACA,gCAAgC,6CAAO;AACvC;AACA;AACA;AACA,sDAAsD,8DAAM;AAC5D,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA,0BAA0B,kEAAkE,EAAE,IAAI,4DAAI;AACtG;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,kBAAkB,8DAAM;AACxB,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA,0BAA0B,iEAAiE,EAAE,IAAI,4DAAI;AACrG;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA,SAAS;AACT,uCAAuC,4DAAI;AAC3C,oBAAoB;AACpB;AACA;AACA;AACA;AACA,SAAS;AACT,QAAQ,mDAAK,+DAA+D,8DAAM;AAClF,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA,0BAA0B,0BAA0B,4DAAM,CAAC,EAAE;AAC7D,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA;AACA,8CAA8C,4EAAc,aAAa,EAAE;AAC3E;AACA;AACA;AACA,SAAS;AACT;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,+DAA+D,8DAAM;AACrE,uBAAuB,EAAE;AACzB,wBAAwB;AACxB;AACA,8BAA8B,oCAAoC,EAAE,IAAI,4DAAI;AAC5E,uBAAuB,EAAE;AACzB,wBAAwB;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B;AAC5B;AACA;AACA;AACA,iBAAiB;AACjB;AACA,aAAa;AACb;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,gBAAgB;AAChB;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA,cAAc,uFAAuF;AACrG;AACA;AACA;AACA,UAAU;AACV;AACA,2CAA2C,4DAAc;AACzD;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,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;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;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA,8CAA8C,yDAAW;AACzD,+CAA+C,kEAAc,qCAAqC,EAAE,yBAAyB,EAAE;AAC/H;AACA;AACA,aAAa;AACb;AACA;AACA,uBAAuB,EAAE;AACzB,6BAA6B,mEAAe;AAC5C,uBAAuB,EAAE;AACzB;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA,yBAAyB,sCAAsC,EAAE;AACjE;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,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;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB,2BAA2B,kEAAc;AACzC;AACA;AACA,mBAAmB,EAAE;AACrB,kCAAkC,mEAAe;AACjD,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,mBAAmB,EAAE;AACrB,gCAAgC,kEAAa;AAC7C;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,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,gDAAgD,iEAAc;AAC9D,gCAAgC,iEAAc;AAC9C;AACA,wBAAwB,gDAAE;AAC1B,aAAa;AACb;AACA,mBAAmB,kEAAc;AACjC;AACA;AACA,SAAS,OAAO,wDAAU,UAAU,mCAAmC,IAAI;AAC3E;AACA;AACA,iDAAiD;AACjD,SAAS,OAAO,4DAAO,EAAE;AACzB,SAAS,OAAO,sDAAQ,EAAE;AAC1B,SAAS,qCAAqC,OAAO,sDAAQ,EAAE,GAAG,OAAO,sDAAQ,EAAE,GAAG;AACtF,SAAS,OAAO,wDAAQ,gBAAgB,OAAO,sDAAQ,EAAE,GAAG;AAC5D,SAAS,2CAA2C,OAAO,sDAAQ,EAAE,GAAG,OAAO,oDAAM,6CAA6C;AAClI,MAAM;AACN,wDAAwD,wEAAkB,EAAE,6CAA6C,2BAA2B,8DAAQ,CAAC,4DAAO,GAAG,8DAAQ,CAAC,sDAAQ,GAAG,8DAAQ,sBAAsB,8DAAQ,CAAC,wDAAQ,MAAM,8DAAQ,uCAAuC,EAAE,2DAA2D;AAC5V;AACA,CAAC;AACD;AACA;AACA,WAAW,EAAE;AACb,WAAW,GAAG;AACd,YAAY,EAAE;AACd;AACA;AACA,WAAW,sDAAQ,GAAG;AACtB;;AAEA;AACA;AACA,cAAc,uFAAuF;AACrG;;AAEA;AACA;AACA,cAAc,uFAAuF;AACrG;;AAEqM;AACrM;;;;;;;;;;;;;ACj3BA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACkC;AACe;AACa;AACJ;AACkM;AACzM;AAC2C;;AAE9F;AACA;AACA,cAAc,uFAAuF;AACrG;AACA;AACA;AACA;AACA,UAAU;AACV;AACA,4CAA4C,4DAAc;AAC1D;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA,aAAa,gEAAiB;AAC9B,iBAAiB,gEAAU;AAC3B,gBAAgB;AAChB;AACA,iBAAiB,6BAA6B,EAAE;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD,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;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA,qBAAqB,EAAE;AACvB;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA,qBAAqB,EAAE;AACvB;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,0DAAY;AAC3C;AACA;AACA;AACA,0BAA0B,0DAAY;AACtC;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,2BAA2B,EAAE;AAC7B,4BAA4B;AAC5B;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA,qBAAqB,uBAAuB,EAAE;AAC9C;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA,6BAA6B,mFAAqB;AAClD,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA,uBAAuB,EAAE;AACzB;AACA;AACA;AACA,2BAA2B,EAAE;AAC7B,4BAA4B;AAC5B;AACA,mCAAmC,qBAAqB,EAAE;AAC1D;AACA;AACA,SAAS;AACT;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA;AACA;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,qBAAqB,uBAAuB,EAAE;AAC9C;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA,6BAA6B,mFAAqB;AAClD,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA,qBAAqB,uBAAuB,EAAE;AAC9C;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA,6BAA6B,mFAAqB;AAClD;AACA;AACA,2BAA2B,EAAE;AAC7B,4BAA4B;AAC5B;AACA,mCAAmC,+BAA+B,EAAE;AACpE;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA,gBAAgB;AAChB;AACA;AACA,gBAAgB;AAChB;AACA;AACA,mCAAmC,uEAAc;AACjD;AACA;AACA,gBAAgB;AAChB;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA,2BAA2B,uBAAuB,EAAE;AACpD;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;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;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,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;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,0DAA0D,EAAE;AAC5D;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,qCAAqC,qBAAqB;AAC1D,qCAAqC,qBAAqB;AAC1D;AACA;AACA;AACA,yBAAyB,EAAE;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,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,uBAAuB,EAAE;AACzB,wBAAwB;AACxB;AACA,8BAA8B,uDAAuD,EAAE;AACvF;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,uBAAuB,EAAE;AACzB,wBAAwB;AACxB;AACA,qCAAqC,yCAAyC,EAAE;AAChF;AACA;AACA;AACA;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,2BAA2B,+BAA+B,EAAE;AAC5D;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,oBAAoB;AACpB;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;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,OAAO,uDAAS;AACzB;AACA;AACA;AACA,yBAAyB,2EAA2E;AACpG;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA,iBAAiB,IAAI;AACrB;AACA;AACA,uDAAuD;AACvD,SAAS,OAAO,+DAAiB,EAAE;AACnC,SAAS,gCAAgC,OAAO,sDAAQ,EAAE,GAAG,OAAO,oDAAM,8CAA8C;AACxH,MAAM;AACN;AACA,0BAA0B,OAAO,6DAAe,SAAS,gEAAU;AACnE,gCAAgC;AAChC;AACA,iCAAiC,wBAAwB,EAAE,MAAM;AACjE,sBAAsB,OAAO,mDAAK,EAAE;AACpC,gBAAgB,OAAO,mDAAK,EAAE;AAC9B,oBAAoB,OAAO,mDAAK,EAAE;AAClC,iBAAiB,OAAO,mDAAK,EAAE;AAC/B,uBAAuB,OAAO,oDAAM,EAAE;AACtC,oBAAoB,OAAO,mDAAK,EAAE;AAClC,oBAAoB,OAAO,mDAAK,EAAE;AAClC,kBAAkB,OAAO,oDAAM,EAAE;AACjC;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD,WAAW,EAAE;AACb,gCAAgC,iFAAkB;AAClD;AACA;AACA;AACA;AACA,IAAI,uDAAS;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,0DAAY;AACvC,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA,qBAAqB,4BAA4B,EAAE;AACnD;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;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA,uBAAuB,EAAE;AACzB,2BAA2B,mFAAqB;AAChD;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,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA,0BAA0B,kBAAkB,mFAAqB,QAAQ,EAAE;AAC3E;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,gBAAgB;AAChB;AACA;AACA,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AAC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;AACzB;AACA;AACA;AACA;AACA,iBAAiB,IAAI;AACrB;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,OAAO,uDAAS;AACzB;AACA;AACA;AACA;AACA,iBAAiB,IAAI;AACrB;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,OAAO,uDAAS;AACzB;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,IAAI;AACrB;AACA;AACA,iBAAiB,OAAO,mDAAK,EAAE;AAC/B;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,OAAO,uDAAS;AACzB;AACA,2BAA2B;AAC3B,iBAAiB,IAAI;AACrB;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,OAAO,uDAAS;AACzB;AACA,2BAA2B;AAC3B,iBAAiB,IAAI;AACrB;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,OAAO,uDAAS;AACzB;AACA,2BAA2B;AAC3B,iBAAiB,IAAI;AACrB;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,OAAO,uDAAS;AACzB;AACA,2BAA2B;AAC3B,iBAAiB,IAAI;AACrB;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,OAAO,uDAAS;AACzB;AACA,2BAA2B;AAC3B,iBAAiB,IAAI;AACrB;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,OAAO,uDAAS;AACzB;AACA,2BAA2B;AAC3B,iBAAiB,IAAI;AACrB;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,OAAO,uDAAS;AACzB;AACA,2BAA2B;AAC3B,iBAAiB,IAAI;AACrB;AACA;AACA,CAAC;AACD;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sEAAU,8CAA8C,iEAAK;AACrE,YAAY,iEAAK,qBAAqB,wEAAY,KAAK,iBAAiB;AACxE,YAAY,mEAAO;AACnB;AACA;AACA;AACA;AACA;AACA,mBAAmB,mEAAO;AAC1B,QAAQ,iEAAK,oBAAoB,iEAAK,EAAE,sCAAsC;AAC9E,QAAQ,iEAAK,aAAa,iEAAK,EAAE,qCAAqC;AACtE,QAAQ,sEAAU,8CAA8C,mEAAO;AACvE;AACA;;AAEA;AACA;AACA,cAAc,uFAAuF;AACrG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,OAAO,uDAAS;AACzB;AACA,iBAAiB,IAAI;AACrB;AACA;AACA,2DAA2D;AAC3D,SAAS,OAAO,yDAAW;AAC3B,MAAM;AACN;AACA,CAAC;;AAED;AACA;AACA,cAAc,uFAAuF;AACrG;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA,8CAA8C,4DAAc;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,uDAAS;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,0DAAY;AAC5C;AACA;AACA;AACA,kCAAkC,0DAAY;AAC9C;AACA;AACA;AACA,kCAAkC,4CAAO;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,4CAAO;AAC9C;AACA;AACA;AACA;AACA,sCAAsC,4EAAoB;AAC1D,mBAAmB,EAAE;AACrB,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA,+BAA+B,mFAAqB;AACpD,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,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,gBAAgB;AAChB;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,6BAA6B,iEAAS,aAAa,EAAE,cAAc,8DAAM;AACzE,wBAAwB;AACxB;AACA,yBAAyB,yCAAyC,EAAE,IAAI,4DAAI;AAC5E,wBAAwB;AACxB;AACA;AACA,oCAAoC,kEAAc;AAClD,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,uBAAuB,EAAE;AACzB;AACA,uBAAuB,EAAE;AACzB;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,OAAO,uDAAS,UAAU,+BAA+B,uBAAuB,cAAc,SAAS,kBAAkB,gBAAgB,yFAAyF,6HAA6H,gBAAgB,kDAAkD,4BAA4B,2BAA2B,iDAAiD,+BAA+B,8BAA8B,kCAAkC,qBAAqB,mBAAmB,gIAAgI,gBAAgB,6BAA6B,aAAa,sBAAsB,iBAAiB,0BAA0B,oBAAoB,6BAA6B,cAAc,2IAA2I,aAAa,yIAAyI,gBAAgB,gBAAgB,uBAAuB,qBAAqB,aAAa,mBAAmB,yBAAyB,2BAA2B,uCAAuC,gBAAgB,iDAAiD,cAAc,iBAAiB;AAC3hD;AACA;AACA;AACA,mCAAmC,+DAAiB;AACpD,qCAAqC,qEAAuB;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,uCAAuC;AAChE;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,IAAI;AACrB;AACA;AACA,oDAAoD;AACpD,SAAS,gCAAgC,OAAO,sDAAQ,EAAE,GAAG,OAAO,sDAAQ,EAAE,GAAG,OAAO,oDAAM,0BAA0B,GAAG;AAC3H,SAAS,OAAO,+DAAiB,EAAE;AACnC,SAAS,OAAO,kFAAyB,EAAE;AAC3C,SAAS,OAAO,8DAAgB,EAAE;AAClC,SAAS,gCAAgC,OAAO,oDAAM,SAAS,wDAAQ,IAAI,GAAG;AAC9E,SAAS,6BAA6B,OAAO,sDAAQ,EAAE,GAAG,OAAO,oDAAM,SAAS,0FAAqB,IAAI,GAAG;AAC5G,SAAS,gCAAgC,OAAO,oDAAM,gDAAgD,GAAG,OAAO,sDAAQ,EAAE;AAC1H,MAAM;AACN;AACA,sBAAsB,OAAO,mDAAK,EAAE;AACpC,0BAA0B,OAAO,mDAAK,EAAE;AACxC,uBAAuB,OAAO,oDAAM,EAAE;AACtC,yBAAyB,OAAO,oDAAM,EAAE;AACxC,wBAAwB,OAAO,0DAAY,oCAAoC,gBAAgB,IAAI;AACnG,iBAAiB,OAAO,uDAAS,kBAAkB,gBAAgB,IAAI;AACvE;AACA;AACA,CAAC,CAAC,uEAAgB;AAClB;AACA;AACA;AACA;AACA,SAAS,OAAO,uDAAS;AACzB;AACA;AACA;AACA;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,yCAAyC,iDAAY;AACrD;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,+CAA+C,8DAAM;AACrD,uBAAuB,EAAE;AACzB,wBAAwB;AACxB;AACA,gCAAgC,+DAA+D,EAAE;AACjG,YAAY,0CAAK;AACjB;AACA;AACA;AACA,YAAY,kDAAK,iFAAiF,8DAAM;AACxG,uBAAuB,EAAE;AACzB,wBAAwB;AACxB;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,wBAAwB;AACxB;AACA,yBAAyB,gDAAgD,EAAE;AAC3E;AACA;AACA,kBAAkB,8DAAM;AACxB,oBAAoB;AACpB;AACA,qBAAqB,+BAA+B,EAAE;AACtD;AACA,oBAAoB;AACpB;AACA,qBAAqB,oDAAoD,EAAE;AAC3E;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;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,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,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,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,iBAAiB,4DAAK;AACtB,iBAAiB,4DAAK;AACtB,qBAAqB,6EAAc;AACnC;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,gCAAgC,oBAAoB;AACpD;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,OAAO,uDAAS,UAAU;AACnC,0DAA0D,aAAa,mBAAmB,mBAAmB,eAAe,sBAAsB,oEAAoE,UAAU,8FAA8F,mBAAmB,sDAAsD,eAAe,kEAAkE,2BAA2B,2FAA2F,kBAAkB,qGAAqG,kBAAkB,aAAa,aAAa,OAAO,mBAAmB,gBAAgB,0EAA0E,aAAa,YAAY,kBAAkB,8FAA8F,eAAe,iBAAiB,wCAAwC,YAAY,gCAAgC,mBAAmB,yBAAyB,WAAW,qBAAqB,YAAY,wBAAwB,sBAAsB;AACxuC;AACA,mCAAmC,+DAAiB;AACpD,qCAAqC,qEAAuB;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gDAAgD,wDAAwD,kGAAkG,OAAO;AACjN,qBAAqB;AACrB,iBAAiB,IAAI;AACrB;AACA;AACA,0DAA0D;AAC1D,SAAS,wCAAwC,OAAO,kDAAI,EAAE,GAAG;AACjE,SAAS,OAAO,wDAAU,EAAE;AAC5B,SAAS,OAAO,+DAAY,EAAE;AAC9B,SAAS,OAAO,+DAAiB,EAAE;AACnC,SAAS,gCAAgC,OAAO,oDAAM,gDAAgD,GAAG,OAAO,sDAAQ,EAAE;AAC1H,MAAM;AACN;AACA,0BAA0B,OAAO,mDAAK,EAAE;AACxC,2BAA2B,OAAO,mDAAK,EAAE;AACzC;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,OAAO,uDAAS;AACzB;AACA;AACA;AACA;AACA,iBAAiB,IAAI;AACrB;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,OAAO,uDAAS;AACzB;AACA;AACA;AACA;AACA,iBAAiB,IAAI;AACrB;AACA;AACA,CAAC;;AAED;AACA;AACA,cAAc,uFAAuF;AACrG;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,oBAAoB;AACpB;AACA,qBAAqB,yBAAyB,EAAE;AAChD;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA,yBAAyB,oBAAoB,mFAAqB,OAAO,EAAE;AAC3E;AACA;AACA,KAAK;AACL;AACA,gBAAgB;AAChB;AACA;AACA,gBAAgB;AAChB;AACA;AACA,+BAA+B,kEAAe;AAC9C;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,wBAAwB,2DAAI;AAC5B,iBAAiB,6EAAc;AAC/B;AACA;AACA;AACA;AACA,6BAA6B,0DAAG;AAChC,iBAAiB,6EAAc;AAC/B;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,SAAS,OAAO,uDAAS;AACzB;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA,iBAAiB,IAAI;AACrB;AACA;AACA,oBAAoB,OAAO,6DAAe,mCAAmC,oBAAoB,IAAI;AACrG,sBAAsB,OAAO,mDAAK,EAAE;AACpC,uBAAuB,OAAO,mDAAK,EAAE;AACrC,0BAA0B,OAAO,mDAAK,EAAE;AACxC;AACA;AACA,CAAC,CAAC,mEAAY;;AAEd;AACA;AACA,cAAc,uFAAuF;AACrG;AACA;AACA;AACA;AACA;AACA,SAAS,OAAO,sDAAQ;AACxB,8BAA8B,4DAAY,EAAE,yEAAkB,EAAE,gEAAY;AAC5E;AACA;AACA;AACA;AACA;AACA;AACA;AA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A;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,+BAA+B;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA,qBAAqB,0BAA0B,EAAE;AACjD;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA,uBAAuB,EAAE;AACzB;AACA;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,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA,yBAAyB,+BAA+B,EAAE;AAC1D;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;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;AACA;AACA;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;AACA;AACA;AACA,uBAAuB,yBAAyB;AAChD;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,uCAAuC,yBAAyB;AAChE;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,uBAAuB,kBAAkB;AACzC;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA,cAAc,uFAAuF;AACrG;;AAEA;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,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;AACA;AACA,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB,EAAE;AAClB;AACA;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;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;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,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;AACA,mBAAmB,EAAE;AACrB;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;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,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;AACA;AACA,gBAAgB;AAChB;AACA,iBAAiB,aAAa;AAC9B;AACA,CAAC;AACD;AACA;AACA;AACA;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,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;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,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;AACA;AACA;AACA,uBAAuB,EAAE;AACzB,wBAAwB;AACxB;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,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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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;AACA;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;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;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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;AACA,mBAAmB,EAAE;AACrB;AACA;AACA,mBAAmB,EAAE;AACrB;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;AACA,uBAAuB,EAAE;AACzB,wBAAwB;AACxB;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,CAAC;AACD;AACA;AACA,WAAW,EAAE;AACb,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,YAAY;AACZ;AACA;AACA;AACA;;AAEA;AACA;AACA,cAAc,uFAAuF;AACrG;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb;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,gDAAgD,kFAAoB;AACpE,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA,qBAAqB,qBAAqB,EAAE;AAC5C;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA,0BAA0B,kDAAkD,EAAE;AAC9E;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA,qBAAqB,wBAAwB,EAAE;AAC/C;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA,uBAAuB,EAAE;AACzB;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,gBAAgB;AAChB;AACA;AACA;AACA;AACA,gBAAgB;AAChB;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,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,gBAAgB;AAChB;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA,yBAAyB,oDAAoD,EAAE;AAC/E,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA,uBAAuB,EAAE;AACzB;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AA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AI;AACrB;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,OAAO,uDAAS;AACzB;AACA,2BAA2B;AAC3B,iBAAiB,IAAI;AACrB;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,OAAO,uDAAS;AACzB;AACA,2BAA2B;AAC3B,iBAAiB,IAAI;AACrB;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA,IAAI,uDAAS;AACb;AACA;AACA;AACA;AACA,+BAA+B,4CAAO;AACtC;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C,gEAAS;AACpD,wBAAwB;AACxB;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA,gBAAgB;AAChB;AACA;AACA,QAAQ,uEAAQ;AAChB;AACA;AACA,gBAAgB;AAChB;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,gBAAgB;AAChB;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,SAAS,OAAO,uDAAS,UAAU;AACnC;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA,mCAAmC,+DAAiB;AACpD,qCAAqC,qEAAuB;AAC5D,iBAAiB,IAAI;AACrB;AACA;AACA,8CAA8C;AAC9C,SAAS,OAAO,wDAAU,EAAE;AAC5B,SAAS,OAAO,+DAAiB,EAAE;AACnC,SAAS,iCAAiC,OAAO,sDAAQ,EAAE,GAAG;AAC9D,SAAS,8BAA8B,OAAO,sDAAQ,EAAE;AACxD,MAAM;AACN;AACA,kBAAkB,OAAO,6DAAe,SAAS,8DAAO,GAAG,oBAAoB,IAAI;AACnF,mBAAmB,OAAO,0DAAY,qCAAqC,gBAAgB,IAAI;AAC/F,iBAAiB,OAAO,0DAAY,mCAAmC,gBAAgB,IAAI;AAC3F;AACA;AACA,CAAC;;AAED;AACA;AACA,cAAc,uFAAuF;AACrG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD,WAAW,EAAE;AACb,iCAAiC,iFAAkB;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD,WAAW,EAAE;AACb,8BAA8B,iFAAkB;AAChD;AACA;AACA,UAAU;AACV;AACA;AACA,aAAa,gEAAiB;AAC9B,iBAAiB,gEAAU;AAC3B,gBAAgB;AAChB;AACA,iBAAiB,yBAAyB,EAAE;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;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,oBAAoB;AACpB;AACA,qBAAqB,gDAAgD,EAAE;AACvE;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA,6BAA6B,wBAAwB,EAAE;AACvD;AACA;AACA,KAAK;AACL;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,oBAAoB;AACpB;AACA,qBAAqB,8EAA8E,EAAE;AACrG;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA,uBAAuB,EAAE;AACzB,2BAA2B,mFAAqB;AAChD;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA,qBAAqB,4DAA4D,EAAE;AACnF;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA,uBAAuB,EAAE;AACzB,6BAA6B,mFAAqB;AAClD;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA,gBAAgB;AAChB;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA,0BAA0B,8CAA8C,EAAE;AAC1E;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,gBAAgB;AAChB;AACA;AACA,gBAAgB;AAChB;AACA;AACA,QAAQ,uEAAQ;AAChB;AACA;AACA,gBAAgB;AAChB;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA;AACA,aAAa;AACb;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,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,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,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;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,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,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,SAAS,OAAO,uDAAS,UAAU;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA,mCAAmC,+DAAiB;AACpD,qCAAqC,qEAAuB;AAC5D,iBAAiB,IAAI;AACrB;AACA;AACA,gDAAgD;AAChD,SAAS,OAAO,wDAAU,EAAE;AAC5B,SAAS,OAAO,+DAAiB,EAAE;AACnC,SAAS,uCAAuC,OAAO,oDAAM,SAAS,gEAAU;AAChF,oCAAoC;AACpC;AACA,qCAAqC,yBAAyB,EAAE,MAAM;AACtE,MAAM;AACN;AACA,mBAAmB,OAAO,0DAAY,qCAAqC,gBAAgB,IAAI;AAC/F,iBAAiB,OAAO,0DAAY,mCAAmC,gBAAgB,IAAI;AAC3F,kBAAkB,OAAO,6DAAe,SAAS,8DAAO,IAAI;AAC5D,iBAAiB,OAAO,uDAAS,kBAAkB,gBAAgB,IAAI;AACvE,4BAA4B,OAAO,mDAAK,EAAE;AAC1C,iBAAiB,OAAO,mDAAK,EAAE;AAC/B,iBAAiB,OAAO,mDAAK,EAAE;AAC/B,oBAAoB,OAAO,mDAAK,EAAE;AAClC,oBAAoB,OAAO,mDAAK,EAAE;AAClC;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA,IAAI,uDAAS;AACb;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,0DAAY;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA,2BAA2B,kBAAkB,EAAE;AAC/C;AACA;AACA;AACA;AACA,oCAAoC,uEAAc;AAClD;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA,sBAAsB,EAAE;AACxB;AACA;AACA;AACA,+BAA+B,4CAAO;AACtC;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA,qBAAqB,EAAE;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA,qBAAqB,uBAAuB,EAAE;AAC9C;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA,6BAA6B,mFAAqB;AAClD;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA,gBAAgB;AAChB;AACA;AACA,gBAAgB;AAChB;AACA;AACA,+BAA+B,iEAAe;AAC9C;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA,qBAAqB,cAAc,EAAE;AACrC;AACA;AACA;AACA;AACA;AACA,2CAA2C,gEAAS;AACpD,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA;AACA,kDAAkD,gBAAgB;AAClE;AACA;AACA;AACA;AACA;AACA,oDAAoD,gBAAgB;AACpE;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;AACA;AACA;AACA;AACA,gBAAgB;AAChB;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,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,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,EAAE;AAClB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB,EAAE;AAClB;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,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB,0BAA0B,4EAAc;AACxC;AACA,iBAAiB,2DAAK;AACtB,iBAAiB,2DAAK;AACtB;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,0DAAI;AACrB,iBAAiB,yDAAG;AACpB;AACA,gCAAgC,0DAAI;AACpC;AACA;AACA;AACA,iBAAiB,uDAAC;AAClB,oBAAoB,4EAAc;AAClC;AACA,+BAA+B,EAAE;AACjC,gCAAgC;AAChC;AACA,uCAAuC,yBAAyB,EAAE;AAClE;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,8DAAQ,gBAAgB,gEAAU;AAC3D;AACA;AACA;AACA;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;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;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,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA,2BAA2B,mCAAmC,EAAE;AAChE;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA,uBAAuB,EAAE;AACzB;AACA,uBAAuB,EAAE;AACzB,wBAAwB;AACxB;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA,2BAA2B,wBAAwB,EAAE;AACrD,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA,2BAA2B,qBAAqB,EAAE;AAClD;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;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,eAAe,EAAE;AACjB,gBAAgB;AACh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;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;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;AAC6e;AAC1a;AACwK;AAC1J;AAC8J;AAC8B;AACY;AACnE;AACkuB;AAC5Y;AAChH;AACnX;AAC4Q;AACJ;AACvI;AACqH;AAC5K;AACoH;AAC6B;AACtH;AAC1B;AAC8C;AACY;AACoO;AAC1J;AACK;AAC3K;AACqJ;AAC5E;AACsH;AACrB;AACiG;AACxQ;AAC0P;AACnI;;AAE5O;AACA;AACA,cAAc,uFAAuF;AACrG;;AAEA;AACA;AACA,cAAc,uFAAuF;AACrG;AACA;;;;;;;;;;;;;ACpDA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACkC;AAC2B;AACZ;AACQ;AAC4F;AAChF;AACQ;;AAE7E;AACA;AACA,cAAc,uFAAuF;AACrG;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD,WAAW,EAAE;AACb,mCAAmC,yEAAU;AAC7C;AACA;AACA,UAAU;AACV;AACA,+CAA+C,4DAAc;AAC7D;AACA;AACA,CAAC;AACD;AACA;AACA,YAAY;AACZ;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,mGAAmG,eAAe,gCAAgC,uBAAuB,EAAE,eAAe,8BAA8B,yBAAyB,EAAE,iBAAiB,8BAA8B,+CAA+C,EAAE,eAAe,gCAAgC,6CAA6C,EAAE,oBAAoB,gCAAgC,4BAA4B,EAAE,eAAe,8BAA8B,8BAA8B,EAAE,iBAAiB,8BAA8B,gDAAgD,EAAE,eAAe,gCAAgC,8CAA8C,EAAE,mBAAmB,gCAAgC,4BAA4B,EAAE,eAAe,8BAA8B,8BAA8B,EAAE,iBAAiB,8BAA8B,gDAAgD,EAAE,eAAe,gCAAgC,8CAA8C,EAAE,mBAAmB,gCAAgC,2BAA2B,EAAE,eAAe,8BAA8B,6BAA6B,EAAE,iBAAiB,8BAA8B,gDAAgD,EAAE,eAAe,gCAAgC,8CAA8C,EAAE,KAAK;AAC/8C;AACA;AACA;AACA;AACA,IAAI,uDAAS;AACb;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,oBAAoB;AACpB;AACA,qBAAqB,uBAAuB,EAAE;AAC9C;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA,6BAA6B,kFAAoB;AACjD;AACA;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,gCAAgC,kFAAoB;AACpD,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,oDAAoD,kFAAoB;AACxE,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA,gBAAgB;AAChB;AACA;AACA,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;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,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;AACA,oBAAoB;AACpB;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,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,uBAAuB,EAAE;AACzB;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,SAAS,OAAO,uDAAS,UAAU;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA,oDAAoD,cAAc,kBAAkB,0BAA0B,kBAAkB,yBAAyB,MAAM,OAAO,wBAAwB,iBAAiB,6BAA6B,iBAAiB,wBAAwB,0CAA0C,qDAAqD,gBAAgB,eAAe,uFAAuF,gEAAgE,+GAA+G,gBAAgB,eAAe,8FAA8F,2BAA2B,sBAAsB,oDAAoD,mCAAmC,sHAAsH,gBAAgB,eAAe,gGAAgG,+FAA+F,wHAAwH,gBAAgB,eAAe,uGAAuG,2BAA2B,+HAA+H,gBAAgB,eAAe,8CAA8C,GAAG,oBAAoB,KAAK,0BAA0B,kDAAkD,GAAG,8BAA8B,oBAAoB,MAAM,6BAA6B,oBAAoB,SAA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CA,cAAc,uFAAuF;AACrG;;AAEA;AACA;AACA,cAAc,uFAAuF;AACrG;;AAEwJ;AACxJ;;;;;;;;;;;;;ACjcA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACkC;AACe;AACa;AACO;AAC4K;AAC9L;AAC0D;AAChC;AAC9B;;AAE/C;AACA;AACA,cAAc,uFAAuF;AACrG;AACA,WAAW,EAAE;AACb,oCAAoC,4DAAc;AAClD;AACA;AACA,CAAC;AACD;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA,aAAa,gEAAiB;AAC9B,iBAAiB,gEAAU;AAC3B,gBAAgB;AAChB;AACA,iBAAiB,sBAAsB,EAAE;AACzC;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,oBAAoB;AACpB;AACA,qBAAqB,EAAE;AACvB;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA,qBAAqB,EAAE;AACvB;AACA;AACA;AACA;AACA;AACA,0BAA0B,0DAAY;AACtC;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA,qBAAqB,mBAAmB,EAAE;AAC1C;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;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;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;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;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,oBAAoB;AACpB;AACA,qBAAqB,uBAAuB,EAAE;AAC9C;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA,qBAAqB,uBAAuB,EAAE;AAC9C;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA,6BAA6B,mFAAqB;AAClD;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA,qBAAqB,uBAAuB,EAAE;AAC9C;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA,6BAA6B,mFAAqB;AAClD;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;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,uBAAuB,EAAE;AACzB,wBAAwB;AACxB;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA,uBAAuB,EAAE;AACzB,wBAAwB;AACxB;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,4DAA4D,EAAE;AAC9D;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA,uBAAuB,EAAE;AACzB,wBAAwB;AACxB;AACA,8BAA8B,8BAA8B,EAAE;AAC9D;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;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;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,SAAS,OAAO,uDAAS;AACzB;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB,iBAAiB,IAAI;AACrB;AACA;AACA,gDAAgD;AAChD,SAAS,OAAO,+DAAiB;AACjC,MAAM;AACN;AACA,kBAAkB,OAAO,oDAAM,EAAE;AACjC,mBAAmB,OAAO,6DAAe,SAAS,gEAAU;AAC5D,gCAAgC;AAChC;AACA,iCAAiC,uBAAuB,EAAE,KAAK,oBAAoB,IAAI;AACvF,iBAAiB,OAAO,mDAAK,EAAE;AAC/B,gBAAgB,OAAO,mDAAK,EAAE;AAC9B,yBAAyB,OAAO,mDAAK,EAAE;AACvC,iBAAiB,OAAO,mDAAK,EAAE;AAC/B,oBAAoB,OAAO,mDAAK,EAAE;AAClC,oBAAoB,OAAO,mDAAK,EAAE;AAClC,oBAAoB,OAAO,mDAAK,EAAE;AAClC;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA,WAAW,EAAE;AACb,+BAA+B,iFAAkB,CAAC,4EAAa;AAC/D;AACA;AACA;AACA;AACA,IAAI,uDAAS;AACb;AACA;AACA;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;AACA,oBAAoB;AACpB;AACA,qBAAqB,EAAE;AACvB;AACA;AACA;AACA;AACA;AACA,uBAAuB,EAAE;AACzB,uBAAuB,EAAE;AACzB,wBAAwB;AACxB;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA,qBAAqB,sBAAsB,EAAE;AAC7C;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA,uBAAuB,EAAE;AACzB,kCAAkC,mFAAqB;AACvD;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,oBAAoB;AACpB;AACA,qBAAqB,oBAAoB,EAAE;AAC3C;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,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,SAAS;AACT;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA,uBAAuB,EAAE;AACzB,mCAAmC,mFAAqB;AACxD;AACA;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,6BAA6B,mFAAqB;AAClD,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA,6BAA6B,wBAAwB,EAAE;AACvD;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA,qBAAqB,+CAA+C,EAAE;AACtE;AACA;AACA,KAAK;AACL;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,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;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,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA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E,MAAM,GAAG;AAC3E,SAAS,OAAO,wDAAU,EAAE;AAC5B,SAAS,OAAO,uEAAgB,EAAE;AAClC,SAAS,OAAO,oDAAM;AACtB,MAAM;AACN;AACA,CAAC,CAAC,oEAAa;AACf;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,6CAAO;AAC5C;AACA;AACA;AACA,iCAAiC,6CAAO;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,0DAAY;AACxB;AACA;AACA;AACA,8BAA8B,6CAAO;AACrC;AACA;AACA;AACA;AACA,qCAAqC,0DAAY;AACjD;AACA;AACA;AACA;AACA,gCAAgC,6CAAO;AACvC;AACA;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA;AACA;AACA,6EAA6E,EAAE;AAC/E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA,yBAAyB,EAAE,KAAK,uDAAS,qDAAqD,8DAAM;AACpG,uBAAuB,EAAE;AACzB,wBAAwB;AACxB;AACA;AACA,yCAAyC,4DAAM,4BAA4B,4EAAc;AACzF,aAAa,IAAI,iEAAS;AAC1B,uBAAuB,EAAE;AACzB,wBAAwB;AACxB;AACA,8BAA8B;AAC9B,wBAAwB;AACxB;AACA;AACA;AACA;AACA;AACA,aAAa,GAAG,EAAE;AAClB,SAAS;AACT;AACA;AACA,gCAAgC,4EAAoB;AACpD,mBAAmB,EAAE;AACrB,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA,qBAAqB,uBAAuB,EAAE;AAC9C;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA,+BAA+B;AAC/B;AACA,8BAA8B;AAC9B,oBAAoB;AACpB;AACA,qBAAqB,mBAAmB,EAAE;AAC1C;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA,qBAAqB,2BAA2B,EAAE;AAClD;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA,0BAA0B,sBAAsB,mFAAqB,QAAQ,EAAE;AAC/E;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA,qBAAqB,wBAAwB,EAAE;AAC/C;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA,0BAA0B,mBAAmB,mFAAqB,QAAQ,EAAE;AAC5E;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA,0CAA0C,8DAAM;AAChD,uBAAuB,EAAE;AACzB,wBAAwB;AACxB;AACA,0BAA0B,UAAU,EAAE,IAAI,2DAAG;AAC7C,wBAAwB;AACxB;AACA,yBAAyB,EAAE;AAC3B,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA,+CAA+C,8DAAM;AACrD,uBAAuB,EAAE;AACzB,wBAAwB;AACxB;AACA,0BAA0B,qEAAqE,EAAE,IAAI,2DAAG;AACxG,wBAAwB;AACxB;AACA,yBAAyB,EAAE;AAC3B,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA,0CAA0C,8DAAM;AAChD,uBAAuB,EAAE;AACzB,wBAAwB;AACxB;AACA,0BAA0B,WAAW,EAAE,IAAI,2DAAG;AAC9C,wBAAwB;AACxB;AACA,yBAAyB,EAAE;AAC3B,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA,+CAA+C,8DAAM;AACrD,uBAAuB,EAAE;AACzB,wBAAwB;AACxB;AACA,0BAA0B,0DAA0D,EAAE,IAAI,2DAAG;AAC7F,wBAAwB;AACxB;AACA,yBAAyB,EAAE;AAC3B,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA;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;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;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;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,oBAAoB;AACpB;AACA,qBAAqB,qBAAqB,EAAE;AAC5C;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA,0BAA0B,aAAa,mFAAqB,SAAS,EAAE;AACvE;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,GAAG;AAClB;AACA,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,GAAG;AAClB;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,eAAe,GAAG;AAClB,eAAe,GAAG;AAClB;AACA,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,GAAG;AAClB,eAAe,GAAG;AAClB;AACA,gBAAgB;AAChB;AACA;AACA;AACA,gCAAgC,uBAAuB;AACvD,mCAAmC,uBAAuB;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA,oCAAoC,4DAAI;AACxC,uBAAuB,EAAE;AACzB,wBAAwB;AACxB;AACA,6BAA6B,yCAAyC,EAAE;AACxE,SAAS;AACT;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;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,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,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,SAAS,OAAO,uDAAS,UAAU;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB,qCAAqC,qEAAuB;AAC5D,mCAAmC,+DAAiB;AACpD,iBAAiB,IAAI;AACrB;AACA;AACA,4CAA4C;AAC5C,SAAS,OAAO,wDAAU,EAAE;AAC5B,SAAS,OAAO,kEAAgB,EAAE;AAClC,SAAS,OAAO,8DAAY,EAAE;AAC9B,SAAS,OAAO,8DAAQ,EAAE;AAC1B,SAAS,OAAO,oDAAM,EAAE;AACxB,SAAS,gCAAgC,OAAO,sDAAQ,EAAE,GAAG,OAAO,oDAAM,SAAS,wDAAQ,IAAI;AAC/F,MAAM;AACN;AACA,oBAAoB,OAAO,mDAAK,EAAE;AAClC,gBAAgB,OAAO,mDAAK,EAAE;AAC9B,wBAAwB,OAAO,mDAAK,EAAE;AACtC,qBAAqB,OAAO,mDAAK,EAAE;AACnC,2BAA2B,OAAO,yDAAW,yBAAyB;AACtE,wBAAwB,OAAO,oDAAM,EAAE;AACvC,yBAAyB,OAAO,oDAAM,qBAAqB;AAC3D,uBAAuB,OAAO,oDAAM,EAAE;AACtC,yBAAyB,OAAO,oDAAM,qBAAqB;AAC3D,uBAAuB,OAAO,oDAAM,EAAE;AACtC,6BAA6B,OAAO,oDAAM,8BAA8B;AACxE,kBAAkB,OAAO,mDAAK,EAAE;AAChC,mCAAmC,OAAO,0DAAY,2CAA2C;AACjG,kCAAkC,OAAO,0DAAY,0CAA0C;AAC/F;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC,yBAAyB;AAClE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,0DAAY;AAC7C;AACA;AACA;AACA,8BAA8B,6CAAO;AACrC;AACA;AACA;AACA,mCAAmC,6CAAO;AAC1C;AACA;AACA;AACA;AACA;AACA,gCAAgC;AAChC,yCAAyC,6CAAO;AAChD;AACA;AACA;AACA,6BAA6B,iEAAS;AACtC,wBAAwB;AACxB;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,kBAAkB,iEAAS;AAC3B;AACA,oBAAoB;AACpB;AACA,qBAAqB,qCAAqC,EAAE;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA,qBAAqB,oBAAoB,EAAE;AAC3C;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA,qBAAqB,kBAAkB,EAAE;AACzC;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,0BAA0B,kBAAkB,mFAAqB,QAAQ,EAAE;AAC3E;AACA;AACA,KAAK;AACL;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,4DAA4D,mFAAqB;AACjF,SAAS;AACT;AACA;AACA,KAAK;AACL;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,mCAAmC,iEAAS;AAC5C,oBAAoB;AACpB;AACA;AACA;AACA;AACA,uBAAuB,EAAE;AACzB,wBAAwB;AACxB;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,kCAAkC,oEAAY;AAC9C,QAAQ,iEAAS;AACjB,oBAAoB;AACpB;AACA,qBAAqB,qCAAqC,EAAE;AAC5D;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,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA,2BAA2B,sBAAsB,EAAE;AACnD;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA,2BAA2B,uBAAuB,EAAE;AACpD;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,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,EAAE;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,EAAE;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,EAAE;AACrC,qCAAqC,EAAE;AACvC;AACA,oCAAoC;AACpC;AACA;AACA;AACA,wBAAwB;AACxB;AACA,yBAAyB,gEAAgE,EAAE;AAC3F;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA,yBAAyB,qCAAqC,EAAE;AAChE;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,sCAAsC,8DAAM;AAC5C,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA,0BAA0B,0CAA0C,EAAE,IAAI,iEAAS;AACnF;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,qCAAqC,iEAAS;AAC9C,wBAAwB;AACxB;AACA;AACA;AACA,aAAa;AACb;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,sCAAsC,iEAAS;AAC/C,oBAAoB;AACpB;AACA;AACA,+DAA+D,4DAAI;AACnE,wBAAwB;AACxB;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA,qCAAqC,iEAAS,CAAC,mDAAK;AACpD;AACA,wBAAwB;AACxB;AACA;AACA;AACA;AACA,aAAa;AACb;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;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA,gBAAgB;AAChB;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;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,gBAAgB;AAChB;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA,2BAA2B,yEAAyE,EAAE;AACtG;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA,2BAA2B,oBAAoB,EAAE,sBAAsB,EAAE;AACzE;AACA;AACA,gBAAgB;AAChB;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;A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,wBAAwB,uEAAe;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,IAAI;AACrB;AACA;AACA,CAAC;;AAED;AACA;AACA,cAAc,uFAAuF;AACrG;;AAEA;AACA;AACA,cAAc,uFAAuF;AACrG;;AAEuP;AACvP;;;;;;;;;;;;;ACjgDA;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;AACmP;AACjN;AACe;AACE;AACW;AAC+B;AAC0D;AAC1E;AACpB;AACS;;AAElE;AACA;AACA,cAAc,uFAAuF;AACrG;AACA;AACA;AACA,UAAU;AACV;AACA,2CAA2C,4DAAc;AACzD;AACA;AACA,gBAAgB;AAChB;AACA,iBAAiB,UAAU,qDAAqD,EAAE,EAAE;AACpF,CAAC;;AAED;AACA;AACA,cAAc,uFAAuF;AACrG;AACA;AACA,WAAW,EAAE;AACb;AACA;AACA;AACA,UAAU;AACV;AACA;AACA,aAAa,gEAAiB;AAC9B,iBAAiB,gEAAU;AAC3B,gBAAgB;AAChB;AACA,iBAAiB,uBAAuB,EAAE;AAC1C;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,CAAC;AACD,WAAW,EAAE;AACb,+BAA+B,4EAAa,CAAC,yEAAU,CAAC,iFAAkB,CAAC,4EAAa;AACxF;AACA;AACA;AACA;AACA,IAAI,uDAAS;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA,sBAAsB,EAAE;AACxB;AACA,oBAAoB;AACpB;AACA,qBAAqB,EAAE;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;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,0DAAY;AACvC;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,0DAAY;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,0DAAY;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA,qBAAqB,uBAAuB,EAAE;AAC9C;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA,0BAA0B,kBAAkB,mFAAqB,QAAQ,EAAE;AAC3E;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA,qBAAqB,sBAAsB,EAAE;AAC7C;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA,4BAA4B,mFAAqB;AACjD;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA,qBAAqB,+CAA+C,EAAE;AACtE;AACA;AACA,KAAK;AACL;AACA,gBAAgB;AAChB;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B;AAC5B;AACA,6BAA6B,2BAA2B,EAAE;AAC1D;AACA,SAAS;AACT;AACA;AACA,gBAAgB;AAChB;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;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,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,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,GAAG;AAClB,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,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;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;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,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,uBAAuB,EAAE;AACzB;AACA;AACA;AACA,uBAAuB,EAAE;AACzB;AACA;AACA;AAC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AACzB;AACA;AACA,iBAAiB,IAAI;AACrB;AACA;AACA,CAAC,CAAC,wEAAyB;;AAE3B;AACA;AACA,cAAc,uFAAuF;AACrG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,OAAO,sDAAQ;AACxB;AACA;AACA,iBAAiB,IAAI;AACrB;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA,SAAS,OAAO,sDAAQ;AACxB;AACA;AACA,wBAAwB,sEAAe;AACvC,wBAAwB,sEAAe;AACvC,wBAAwB,sEAAe;AACvC;AACA;AACA;AACA;AACA,wBAAwB,sEAAe;AACvC;AACA;AACA;AACA,yBAAyB,UAAU,+EAAqB,YAAY,oEAAa;AACjF;AACA,iBAAiB,IAAI;AACrB;AACA;AACA,CAAC;;AAED;AACA;AACA,cAAc,uFAAuF;AACrG;;AAEA;AACA;AACA,cAAc,uFAAuF;AACrG;;AAEuP;AACvP;;;;;;;;;;;;;ACloBA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACkC;AACe;AACE;AACiC;AACiD;AAC2E;AAC7J;AAC+D;AACrC;AACzC;AACW;AACmB;;AAElE;AACA;AACA,cAAc,uFAAuF;AACrG;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA,aAAa,gEAAiB;AAC9B,iBAAiB,gEAAU;AAC3B,gBAAgB;AAChB;AACA,iBAAiB,kBAAkB,EAAE;AACrC;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,CAAC;AACD,WAAW,EAAE;AACb,0BAA0B,4EAAa,CAAC,yEAAU,CAAC,4EAAa;AAChE;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,2BAA2B,0DAAY;AACvC;AACA;AACA;AACA,0BAA0B,0DAAY;AACtC;AACA;AACA;AACA;AACA;AACA,gCAAgC,0DAAY;AAC5C;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA,qBAAqB,EAAE;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA,qBAAqB,EAAE;AACvB;AACA;AACA;AACA,uCAAuC,iDAAY;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA,qBAAqB,qBAAqB,EAAE;AAC5C;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA,2BAA2B,mFAAqB;AAChD,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA,qBAAqB,kBAAkB,EAAE;AACzC;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA,wBAAwB,kFAAoB;AAC5C;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA,qBAAqB,kBAAkB,EAAE;AACzC;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA,wBAAwB,kFAAoB;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA,qBAAqB,mBAAmB,EAAE;AAC1C;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA,yBAAyB,kFAAoB;AAC7C;AACA,mDAAmD,EAAE;AACrD;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA,qBAAqB,yBAAyB,EAAE;AAChD;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA,0BAA0B,oBAAoB,mFAAqB,QAAQ,EAAE;AAC7E;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA,qBAAqB,2BAA2B,EAAE;AAClD;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC,kFAAoB,oBAAoB,EAAE;AAC/E;AACA;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,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA;AACA,2BAA2B,EAAE;AAC7B,4BAA4B,kFAAoB;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA,qBAAqB,uBAAuB,EAAE;AAC9C;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA,6BAA6B,mFAAqB;AAClD,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA,oDAAoD,EAAE;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA,qBAAqB,mCAAmC,EAAE;AAC1D;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,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;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA,uBAAuB,EAAE;AACzB;AACA,uBAAuB,EAAE;AACzB;AACA,uBAAuB,EAAE;AACzB;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA,uBAAuB,EAAE;AACzB;AACA,uBAAuB,EAAE;AACzB;AACA,uBAAuB,EAAE;AACzB;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA,uBAAuB,EAAE;AACzB;AACA;AACA;AACA,uBAAuB,EAAE;AACzB;AACA,uBAAuB,EAAE;AACzB;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA,uBAAuB,EAAE;AACzB;AACA,uBAAuB,EAAE;AACzB;AACA,uBAAuB,EAAE;AACzB;AACA;AACA;AACA;AACA,uBAAuB,EAAE;AACzB;AACA,uBAAuB,EAAE;AACzB;AACA,uBAAuB,EAAE;AACzB;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,EAAE;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA,oBAAoB;AACpB;AACA;AACA,uBAAuB,EAAE;AACzB;AACA;AACA;AACA,uBAAuB,EAAE;AACzB;AACA,uBAAuB,EAAE;AACzB;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,gBAAgB;AAChB;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,wBAAwB;AACxB;AACA;AACA;AACA,aAAa;AACb;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,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,uCAAuC,qCAAqC;AAC5E;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,uCAAuC,uCAAuC;AAC9E;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,2CAA2C,uCAAuC;AAClF;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA,gBAAgB;AAChB;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,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,6BAA6B,4EAAc;AAC3C;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA,iBAAiB,6DAAO;AACxB;AACA;AACA,iBAAiB,+DAAS;AAC1B;AACA;AACA,iBAAiB,yDAAG;AACpB;AACA;AACA,iBAAiB,0DAAI;AACrB;AACA;AACA,iBAAiB,gEAAU;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,8DAAQ;AACzB;AACA;AACA,iBAAiB,iEAAW;AAC5B;AACA;AACA;AACA,iBAAiB,gEAAU;AAC3B;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;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;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,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;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;AACA;AACA;AACA;AACA;AACA,uBAAuB,EAAE;AACzB;AACA;AACA;AACA,uBAAuB,EAAE;AACzB;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,gBAAgB;AAChB;AACA;AACA;AACA;AACA,gBAAgB;AAChB;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,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA;AACA;AACA,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA,+BAA+B,oBAAoB;AACnD,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,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,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,eAAe,EAAE;AACjB,eAAe,GAAG;AAClB,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA,6BAA6B,SAAS;AACtC,6BAA6B,SAAS;AACtC;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,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,eAAe,GAAG;AAClB,gBAAgB;AAChB;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,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;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;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;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,SAAS,OAAO,uDAAS,UAAU;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,qBAAqB;AACrB,sqBAAsqB,cAAc;AACprB,0CAA0C,qBAAqB,kBAAkB,sBAAsB,YAAY,UAAU,sBAAsB,sGAAsG,wBAAwB,gBAAgB,oBAAoB,kBAAkB,0BAA0B,kBAAkB,MAAM,OAAO,gBAAgB,uBAAuB,kBAAkB,qBAAqB,oGAAoG,6BAA6B,kBAAkB,2BAA2B,oGAAoG,4BAA4B,kBAAkB,OAAO,MAAM,gBAAgB,kBAAkB,yBAAyB,4BAA4B,sBAAsB,UAAU,kDAA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;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AAC+B;AAC0O;AACxL;AACrC;AAC2F;AACtF;AAC4B;AAC9B;AACU;AACE;AACT;AACoB;;AAEtE;AACA;AACA,cAAc,uFAAuF;AACrG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,4CAAO;AAC1C;AACA;AACA;AACA,gCAAgC,4CAAO;AACvC;AACA;AACA;AACA,6BAA6B,4CAAO;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA,qBAAqB,wBAAwB,EAAE;AAC/C;AACA,oBAAoB;AACpB;AACA,qBAAqB,+BAA+B,EAAE;AACtD;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;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;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,oBAAoB;AACpB;AACA,qBAAqB,wBAAwB,EAAE;AAC/C;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,mCAAmC,6CAA6C;AAChF;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,CAAC;;AAED;AACA;AACA,cAAc,uFAAuF;AACrG;AACA;AACA;AACA,UAAU;AACV;AACA,6BAA6B,4DAAc;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,CAAC;;AAED;AACA;AACA,cAAc,uFAAuF;AACrG;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,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA,SAAS,OAAO,uDAAS,UAAU;AACnC,uCAAuC,cAAc,+GAA+G,aAAa;AACjL,mDAAmD,aAAa,8BAA8B,mBAAmB,iBAAiB,UAAU,4BAA4B,cAAc,0BAA0B,mCAAmC,gBAAgB,YAAY,sCAAsC,iBAAiB,iBAAiB;AACvV,mCAAmC,+DAAiB;AACpD,qCAAqC,qEAAuB;AAC5D;AACA;AACA;AACA,iBAAiB,IAAI;AACrB;AACA;AACA,iDAAiD;AACjD,SAAS,uBAAuB;AAChC,SAAS,gCAAgC,OAAO,oDAAM,+BAA+B;AACrF,MAAM;AACN;AACA,CAAC;;AAED;AACA;AACA,cAAc,uFAAuF;AACrG;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA,mBAAmB,mEAAO;AAC1B,QAAQ,iEAAK,iBAAiB,iEAAK;AACnC;AACA;AACA,SAAS;AACT,QAAQ,iEAAK,YAAY,iEAAK;AAC9B;AACA;AACA,SAAS;AACT,QAAQ,sEAAU,iBAAiB,mEAAO;AAC1C,QAAQ,sEAAU,2BAA2B,mEAAO,sCAAsC,iEAAK;AAC/F;AACA,SAAS;AACT;AACA;;AAEA;AACA;AACA,cAAc,uFAAuF;AACrG;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,uDAAS;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,4CAAO;AACnC;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,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,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,EAAE;AACzB;AACA;AACA,wBAAwB;AACxB;AACA;AACA;AACA;AACA,aAAa;AACb;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,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;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,0DAA0D,2DAAI;AAC9D,oBAAoB;AACpB;AACA;AACA;AACA;AACA,SAAS;AACT;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,2BAA2B,EAAE;AAC7B,4BAA4B;AAC5B;AACA,qCAAqC,wCAAwC,EAAE;AAC/E;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,SAAS,OAAO,uDAAS,UAAU;AACnC;AACA,uDAAuD,kBAAkB,sBAAsB,cAAc,YAAY,eAAe,gBAAgB,kBAAkB,gBAAgB,wBAAwB,kCAAkC,yBAAyB,kBAAkB,uBAAuB,WAAW,gDAAgD,WAAW,eAAe,YAAY,WAAW;AACla;AACA;AACA;AACA;AACA,qCAAqC,qEAAuB;AAC5D,mCAAmC,+DAAiB;AACpD;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB,iBAAiB,IAAI;AACrB;AACA;AACA,uDAAuD;AACvD,SAAS,OAAO,oDAAM,EAAE;AACxB,SAAS,OAAO,wDAAU,EAAE;AAC5B,SAAS,OAAO,+DAAiB,EAAE;AACnC,SAAS;AACT,MAAM;AACN;AACA,yBAAyB,OAAO,uDAAS,SAAS,mEAAe,GAAG,eAAe,IAAI;AACvF;AACA;AACA,CAAC,CAAC,oEAAgB;;AAElB;AACA;AACA,cAAc,uFAAuF;AACrG;AACA;AACA;AACA;AACA;AACA,SAAS,OAAO,sDAAQ;AACxB;AACA,wBAAwB,kEAAa;AACrC,wBAAwB,gEAAY;AACpC,wBAAwB,4DAAY;AACpC,wBAAwB,wEAAe;AACvC,wBAAwB,sEAAe;AACvC;AACA,oDAAoD,sEAAe;AACnE;AACA;AACA,iBAAiB,IAAI;AACrB;AACA;AACA,CAAC;;AAED;AACA;AACA,cAAc,uFAAuF;AACrG;AACA;AACA;AACA,UAAU;AACV;AACA,wCAAwC,4DAAc;AACtD;AACA;AACA,CAAC;AACD;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,oBAAoB;AACpB;AACA;AACA,uBAAuB,EAAE;AACzB;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,eAAe,EAAE;AACjB,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA,2BAA2B,EAAE;AAC7B;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;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,gCAAgC,aAAa;AAC7C,mBAAmB,EAAE;AACrB,sBAAsB,sDAAQ,GAAG;AACjC;AACA;AACA,wBAAwB;AACxB;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,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,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB,2BAA2B,kEAAc;AACzC;AACA;AACA,mBAAmB,EAAE;AACrB,kCAAkC,mEAAe;AACjD,mBAAmB,EAAE;AACrB;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,qBAAqB,sDAAQ,GAAG;AAChC,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA,+BAA+B,yDAAW;AAC1C,uBAAuB,EAAE;AACzB,6BAA6B,kEAAc,sBAAsB,EAAE,yBAAyB,EAAE;AAC9F;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,uBAAuB,EAAE;AACzB;AACA,uBAAuB,EAAE;AACzB,6BAA6B,mEAAe;AAC5C,uBAAuB,EAAE;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC,gEAAW,uBAAuB,gEAAS;AACpF,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA,uBAAuB,EAAE;AACzB;AACA,uBAAuB,EAAE;AACzB;AACA;AACA,SAAS;AACT;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,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA,yBAAyB,8CAA8C,EAAE,wBAAwB,EAAE;AACnG;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,gCAAgC,kEAAa;AAC7C;AACA,mBAAmB,EAAE;AACrB;AACA;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;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,kEAAc;AACjC;AACA;AACA;AACA;AACA;AACA,SAAS,OAAO,wDAAU,UAAU,gCAAgC,IAAI;AACxE;AACA;AACA,8CAA8C;AAC9C,SAAS,OAAO,4DAAO,EAAE;AACzB,SAAS,OAAO,gEAAa,EAAE;AAC/B,SAAS,OAAO,sDAAQ,EAAE;AAC1B,SAAS,OAAO,uEAAkB,EAAE;AACpC,SAAS,kCAAkC,OAAO,sDAAQ,EAAE,GAAG,OAAO,sDAAQ,EAAE,GAAG;AACnF,SAAS,wCAAwC,OAAO,oDAAM,0CAA0C;AACxG,MAAM;AACN,qDAAqD,wEAAkB,EAAE,0CAA0C,wBAAwB,8DAAQ,CAAC,4DAAO,GAAG,8DAAQ,CAAC,gEAAa,GAAG,8DAAQ,CAAC,sDAAQ,GAAG,8DAAQ,CAAC,uEAAkB,GAAG,8DAAQ,mBAAmB,8DAAQ,iCAAiC,EAAE,qDAAqD;AACpW;AACA,CAAC;;AAED;AACA;AACA,cAAc,uFAAuF;AACrG;;AAEA;AACA;AACA,cAAc,uFAAuF;AACrG;;AAEoO;AACpO;;;;;;;;;;;;;ACtiCA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACkC;AAC4B;AACoK;AACpH;AACxE;AAC2E;AAClE;;AAE/C;AACA;AACA,cAAc,uFAAuF;AACrG;;AAEA;AACA;AACA,WAAW,EAAE;AACb,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;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;AACA,CAAC;AACD,WAAW,EAAE;AACb,wBAAwB,+EAAgB,CAAC,4EAAa;AACtD;AACA;AACA;AACA;AACA,IAAI,uDAAS;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,4CAAO;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,0DAAY;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA,qBAAqB,wBAAwB,EAAE;AAC/C;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA,gBAAgB,+DAAS;AACzB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA,qBAAqB,2BAA2B,EAAE;AAClD;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA,sBAAsB,sBAAsB,mFAAqB,IAAI,EAAE;AACvE;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;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;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,8BAA8B,iDAAiD;AAC/E;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;AACA,mBAAmB,EAAE;AACrB;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,SAAS,OAAO,uDAAS;AACzB;AACA;AACA;AACA,iBAAiB,IAAI;AACrB;AACA;AACA,kBAAkB,OAAO,mDAAK,4BAA4B;AAC1D,iBAAiB,OAAO,mDAAK,2BAA2B;AACxD,qBAAqB,OAAO,mDAAK,+BAA+B;AAChE,wBAAwB,OAAO,mDAAK,kCAAkC;AACtE,sBAAsB,OAAO,oDAAM,4BAA4B;AAC/D;AACA;AACA,CAAC;AACD;AACA;AACA,WAAW,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ACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC,kDAAK;AAC3C;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oDAAoD,sDAAsD;AAC1G;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA,qBAAqB,2BAA2B,EAAE;AAClD;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA,sBAAsB,sBAAsB,mFAAqB,IAAI,EAAE;AACvE;AACA;AACA,KAAK;AACL;AACA,gBAAgB;AAChB;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C,8DAA8D;AACzG;AACA;AACA;AACA,gBAAgB;AAChB;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;AACA,mDAAmD,mDAAmD;AACtG;AACA;AACA,mDAAmD,mDAAmD;AACtG;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,+BAA+B;AAC/B;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,aAAa,qDAAqD;AAClE,aAAa;AACb;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,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;AACA;AACA,gBAAgB;AAChB;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,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,SAAS,OAAO,uDAAS,UAAU;AACnC;AACA;AACA,yDAAyD,aAAa,eAAe,mBAAmB,qDAAqD,eAAe,iCAAiC,2BAA2B,wBAAwB,YAAY,eAAe,aAAa,mBAAmB,UAAU,eAAe,UAAU,aAAa,mBAAmB,0CAA0C,SAAS,uBAAuB,YAAY,WAAW,eAAe,kBAAkB,aAAa,UAAU,yFAAyF,iBAAiB,yFAAyF,iBAAiB,sBAAsB,wBAAwB,YAAY,UAAU,YAAY,aAAa,mBAAmB,kCAAkC,sBAAsB,QAAQ,uBAAuB,2BAA2B,WAAW,WAAW,aAAa,mBAAmB,kBAAkB,MAAM,OAAO,gCAAgC,YAAY,WAAW,UAAU,wBAAwB,wBAAwB,kCAAkC,gCAAgC,QAAQ,SAAS,qBAAqB,uBAAuB,6DAA6D,wBAAwB,UAAU,WAAW,kBAAkB,MAAM,kCAAkC,6DAA6D,QAAQ,SAAS,sBAAsB,sBAAsB,8BAA8B,uBAAuB,OAAO,+BAA+B,sBAAsB,QAAQ;AACzqD;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB,mCAAmC,+DAAiB;AACpD,qCAAqC,qEAAuB;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,IAAI;AACrB;AACA;AACA,gDAAgD;AAChD,SAAS,0BAA0B;AACnC,SAAS,OAAO,+DAAiB,EAAE;AACnC,SAAS,8BAA8B,OAAO,sDAAQ,EAAE,GAAG;AAC3D,SAAS,gCAAgC,OAAO,oDAAM,yCAAyC,GAAG,OAAO,sDAAQ,EAAE;AACnH,MAAM;AACN;AACA,cAAc,OAAO,mDAAK,8BAA8B;AACxD,yBAAyB,OAAO,mDAAK,EAAE;AACvC,iBAAiB,OAAO,mDAAK,EAAE;AAC/B,wBAAwB,OAAO,mDAAK,EAAE;AACtC;AACA;AACA,CAAC;;AAED;AACA;AACA,cAAc,uFAAuF;AACrG;AACA;AACA;AACA;AACA;AACA,SAAS,OAAO,sDAAQ;AACxB,8BAA8B,4DAAY;AAC1C;AACA;AACA;AACA,iBAAiB,IAAI;AACrB;AACA;AACA,CAAC;;AAED;AACA;AACA,cAAc,uFAAuF;AACrG;;AAEA;AACA;AACA,cAAc,uFAAuF;AACrG;;AAEA;AACA;AACA,cAAc,uFAAuF;AACrG;;AAE6J;AAC7J;;;;;;;;;;;;;ACn0BA;AAAA;AAAA;AAAA;AAAA;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;AACuQ;AACnI;AACvI;AACkB;AACgC;AAC9B;AACM;AACoC;AAC5B;AACd;AACQ;AACJ;;AAEvD;AACA;AACA,cAAc,uFAAuF;AACrG;AACA;AACA,IAAI,uDAAS;AACb;AACA;AACA;AACA;AACA,SAAS,OAAO,uDAAS;AACzB;AACA,iBAAiB,IAAI;AACrB;AACA;AACA,CAAC,CAAC,iEAAY;;AAEd;AACA;AACA,cAAc,uFAAuF;AACrG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,4CAAO;AAClC;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,OAAO,wDAAU,UAAU,qBAAqB,IAAI;AAC7D;AACA,wDAAwD,wEAAkB,EAAE,6CAA6C,6BAA6B,EAAE,6CAA6C;AACrM;AACA,CAAC;AACD;AACA;AACA,WAAW,EAAE;AACb,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA,gBAAgB,sDAAQ,QAAQ,sDAAQ;AACxC;AACA;;AAEA;AACA;AACA,cAAc,uFAAuF;AACrG;AACA;AACA,IAAI,uDAAS;AACb;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA,qBAAqB,yCAAyC,EAAE;AAChE;AACA;AACA;AACA,gBAAgB;AAChB;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,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,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,SAAS,OAAO,uDAAS,UAAU;AACnC,uMAAuM,OAAO,kYAAkY,gCAAgC,oCAAoC,gCAAgC,oXAAoX,OAAO,gFAAgF,qBAAqB,2EAA2E,cAAc;AAC7uC,+CAA+C,gBAAgB,UAAU,eAAe,kBAAkB,uBAAuB,wCAAwC,6CAA6C,eAAe,eAAe,kBAAkB,Y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,uFAAuF;AACrG;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,uDAAS;AACb;AACA;AACA;AACA;AACA,SAAS,OAAO,uDAAS;AACzB;AACA,iCAAiC,UAAU,kEAAe,gCAAgC;AAC1F;AACA,iBAAiB,IAAI;AACrB;AACA;AACA,CAAC,CAAC,kEAAe;AACjB;AACA;AACA;AACA;AACA;AACA,IAAI,uDAAS;AACb;AACA;AACA;AACA;AACA,SAAS,OAAO,uDAAS;AACzB;AACA,iCAAiC,UAAU,kEAAe,gCAAgC;AAC1F;AACA,iBAAiB,IAAI;AACrB;AACA;AACA,CAAC,CAAC,kEAAe;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,uDAAS;AACb;AACA;AACA;AACA;AACA,SAAS,OAAO,uDAAS;AACzB;AACA,iCAAiC,UAAU,4DAAS,0BAA0B;AAC9E;AACA,iBAAiB,IAAI;AACrB;AACA;AACA,CAAC,CAAC,4DAAS;AACX;AACA;AACA;AACA;AACA,IAAI,uDAAS;AACb;AACA;AACA;AACA;AACA,SAAS,OAAO,uDAAS,UAAU;AACnC,8BAA8B,mEAAgB;AAC9C;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA,qCAAqC,qEAAuB;AAC5D,mCAAmC,+DAAiB;AACpD;AACA,iCAAiC,UAAU,+DAAY,6BAA6B;AACpF,iBAAiB,IAAI;AACrB;AACA;AACA,CAAC,CAAC,+DAAY;AACd;AACA;AACA;AACA;AACA,IAAI,uDAAS;AACb;AACA;AACA;AACA;AACA,SAAS,OAAO,uDAAS,UAAU;AACnC,8BAA8B,mEAAgB;AAC9C;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA,qCAAqC,qEAAuB;AAC5D,mCAAmC,+DAAiB;AACpD;AACA,iCAAiC,UAAU,+DAAY,6BAA6B;AACpF,iBAAiB,IAAI;AACrB;AACA;AACA,CAAC,CAAC,+DAAY;AACd;AACA;AACA;AACA;AACA,IAAI,uDAAS;AACb;AACA;AACA;AACA;AACA,SAAS,OAAO,uDAAS,UAAU;AACnC,8BAA8B,mEAAgB;AAC9C;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA,qCAAqC,qEAAuB;AAC5D,mCAAmC,+DAAiB;AACpD;AACA,iCAAiC,UAAU,yDAAM,uBAAuB;AACxE,iBAAiB,IAAI;AACrB;AACA;AACA,CAAC,CAAC,yDAAM;;AAER;AACA;AACA,cAAc,uFAAuF;AACrG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,uDAAS;AACb;AACA;AACA;AACA;AACA,SAAS,OAAO,uDAAS,UAAU;AACnC,yJAAyJ,YAAY,sGAAsG,0BAA0B;AACrS,mCAAmC,+DAAiB;AACpD;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC,qEAAuB;AAC5D,iBAAiB,IAAI;AACrB;AACA;AACA,CAAC,CAAC,gEAAa;;AAEf;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,SAAS,OAAO,sDAAQ;AACxB;AACA,wBAAwB,iEAAc;AACtC,wBAAwB,4DAAY;AACpC,wBAAwB,sEAAe;AACvC;AACA;AACA;AACA,iBAAiB,IAAI;AACrB;AACA;AACA,CAAC;;AAED;AACA;AACA,cAAc,uFAAuF;AACrG;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,IAAI,uDAAS;AACb;AACA,qCAAqC,kBAAkB;AACvD;AACA;AACA;AACA;AACA,gCAAgC,oDAAe;AAC/C;AACA;AACA;AACA,4BAA4B,oDAAe;AAC3C;AACA;AACA;AACA,yCAAyC,4CAAO;AAChD;AACA;AACA;AACA;AACA,2CAA2C,iDAAY;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA,uBAAuB,EAAE;AACzB,qCAAqC,EAAE;AACvC,gBAAgB,4EAAc;AAC9B,2BAA2B,EAAE;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA,uBAAuB,EAAE;AACzB;AACA,uBAAuB,EAAE;AACzB;AACA;AACA;AACA;AACA;AACA,uBAAuB,EAAE;AACzB,uBAAuB,EAAE;AACzB,wBAAwB;AACxB;AACA;AACA,2BAA2B,EAAE;AAC7B;AACA,2BAA2B,EAAE;AAC7B;AACA;AACA;AACA;AACA;AACA,2BAA2B,EAAE;AAC7B;AACA;AACA,oEAAoE;AACpE;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;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA;AACA,uBAAuB,EAAE;AACzB;AACA,uBAAuB,EAAE;AACzB,uBAAuB,EAAE;AACzB,wBAAwB;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kDAAkD,EAAE;AACpD,aAAa;AACb;AACA,uBAAuB,EAAE;AACzB;AACA;AACA,SAAS;AACT,0BAA0B,oDAAe;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA,qBAAqB,yBAAyB,EAAE;AAChD;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA,yBAAyB,uBAAuB,EAAE;AAClD;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA,qBAAqB,2BAA2B,EAAE;AAClD;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA,2BAA2B,2BAA2B,EAAE;AACxD;AACA;AACA,KAAK;AACL;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,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,wBAAwB,EAAE;AAC/C;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,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA,wBAAwB,EAAE,KAAK,kDAAK;AACpC,YAAY,+CAAE;AACd,mBAAmB,EAAE;AACrB;AACA,wBAAwB,EAAE,KAAK,kDAAK;AACpC,YAAY,+CAAE;AACd,mBAAmB,EAAE;AACrB;AACA;AACA,mBAAmB,EAAE;AACrB,2BAA2B,0DAAa;AACxC,kBAAkB,0DAAG;AACrB,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,mBAAmB,EAAE;AACrB,0BAA0B,0DAAa;AACvC,kBAAkB,0DAAG;AACrB,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,mBAAmB,EAAE;AACrB,4BAA4B,0DAAa;AACzC,kBAAkB,0DAAG;AACrB,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA,yBAAyB,qCAAqC,EAAE;AAChE;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,uBAAuB,EAAE;AACzB,wBAAwB;AACxB;AACA,4BAA4B,iDAAiD,EAAE;AAC/E;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,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,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA,uBAAuB,EAAE;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,EAAE;AAC7B;AACA,2BAA2B,EAAE;AAC7B;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,iBAAiB,yBAAyB;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA,iBAAiB;AACjB;AACA,CAAC,CAAC,6DAAU;;AAEZ;AACA;AACA,cAAc,uFAAuF;AACrG;;AAEA;AACA;AACA,cAAc,uFAAuF;AACrG;;AAE6P;AAC7P;;;;;;;;;;;;;ACr7BA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;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;AAC2U;AAC9P;AAC3C;AACkF;AAC+D;AACzG;AACO;AAC9B;AACyB;AACQ;AAC7B;AACuB;AACE;AACE;AACzB;AACV;;AAE/C;AACA;AACA,cAAc,uFAAuF;AACrG;AACA;AACA;AACA,UAAU;AACV;AACA,kCAAkC,4DAAc;AAChD;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA,eAAe,EAAE;AACjB;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA,wBAAwB;AACxB;AACA;AACA,KAAK,EAAE,EAAE;AACT;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,wBAAwB;AACxB;AACA;AACA;AACA,4BAA4B;AAC5B;AACA,6BAA6B,kCAAkC,EAAE;AACjE,aAAa;AACb;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;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,SAAS,OAAO,uDAAS;AACzB;AACA;AACA;AACA;AACA,qBAAqB;AACrB,iBAAiB,IAAI;AACrB;AACA;AACA,4CAA4C;AAC5C,SAAS,OAAO,wDAAU,EAAE;AAC5B,SAAS,OAAO,oDAAM,EAAE;AACxB,SAAS,gCAAgC,OAAO,oDAAM,oCAAoC,GAAG;AAC7F,SAAS,6BAA6B,OAAO,sDAAQ,EAAE,GAAG,OAAO,oDAAM,SAAS,0FAAqB,IAAI;AACzG,MAAM;AACN;AACA,CAAC;;AAED;AACA;AACA,cAAc,uFAAuF;AACrG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,OAAO,uDAAS,UAAU,8BAA8B,IAAI;AACrE;AACA;AACA,gDAAgD;AAChD,SAAS,OAAO,yDAAW;AAC3B,MAAM;AACN;AACA,CAAC;;AAED;AACA;AACA,cAAc,uFAAuF;AACrG;AACA;AACA;AACA;AACA;AACA,IAAI,uDAAS;AACb;AACA;AACA;AACA;AACA,SAAS,OAAO,uDAAS;AACzB;AACA,iBAAiB,IAAI;AACrB;AACA;AACA,CAAC,CAAC,6DAAS;;AAEX;AACA;AACA,cAAc,uFAAuF;AACrG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD,WAAW,EAAE;AACb,uBAAuB,4EAAa;AACpC;AACA,IAAI,uDAAS;AACb;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;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,gBAAgB;AAChB;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA,gBAAgB;AAChB;AACA;AACA,kCAAkC,kEAAc;AAChD;AACA;AACA,SAAS,OAAO,uDAAS,UAAU;AACnC;AACA;AACA,qCAAqC,qEAAuB;AAC5D,mCAAmC,+DAAiB;AACpD;AACA,iBAAiB,IAAI;AACrB;AACA;AACA,yCAAyC;AACzC,SAAS,OAAO,8DAAgB;AAChC,MAAM;AACN;AACA,yBAAyB,OAAO,0DAAY,uBAAuB,gBAAgB,IAAI;AACvF,4BAA4B,OAAO,0DAAY,yBAAyB,OAAO,yDAAW,gBAAgB,IAAI;AAC9G,4BAA4B,OAAO,uDAAS,SAAS,yDAAW,GAAG,eAAe,IAAI;AACtF,qBAAqB,OAAO,mDAAK,oBAAoB;AACrD,qBAAqB,OAAO,mDAAK,yBAAyB;AAC1D,0BAA0B,OAAO,mDAAK,8BAA8B;AACpE;AACA;AACA,CAAC;;AAED;AACA;AACA,cAAc,uFAAuF;AACrG;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA,kBAAkB,mEAAO;AACzB;AACA,QAAQ,iEAAK,0DAA0D,iEAAK,EAAE,oBAAoB;AAClG;AACA;AACA;AACA;AACA,QAAQ,iEAAK,SAAS,iEAAK,EAAE,0DAA0D;AACvF,QAAQ,iEAAK,UAAU,iEAAK,EAAE,yDAAyD;AACvF,QAAQ,sEAAU,2DAA2D,mEAAO,IAAI,mBAAmB;AAC3G,QAAQ,sEAAU;AAClB,YAAY,iEAAK,EAAE,wCAAwC;AAC3D,YAAY,mEAAO,IAAI,mBAAmB;AAC1C;AACA,QAAQ,sEAAU;AAClB,YAAY,iEAAK,EAAE,uCAAuC;AAC1D,YAAY,mEAAO,IAAI,mBAAmB;AAC1C;AACA;AACA;;AAEA;AACA;AACA,cAAc,uFAAuF;AACrG;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,uDAAS;AACb;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,iDAAY;AAC1C;AACA;AACA;AACA,4BAA4B,iDAAY;AACxC;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,kBAAkB,gEAAS;AAC3B;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,OAAO,uDAAS;AACzB;AACA,iBAAiB,IAAI;AACrB;AACA;AACA,mDAAmD;AACnD,SAAS,OAAO,sEAAwB,EAAE;AAC1C,SAAS,OAAO,8DAAgB,EAAE;AAClC,SAAS,iCAAiC,OAAO,oDAAM,SAAS,gEAAU;AAC1E,oCAAoC;AACpC;AACA,qCAAqC,mBAAmB,EAAE,MAAM;AAChE,MAAM;AACN;AACA,CAAC,CAAC,mEAAe;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC,iDAAY;AAClD;AACA;AACA;AACA,yCAAyC,4CAAO;AAChD;AACA;AACA;AACA,gCAAgC,0DAAY;AAC5C;AACA;AACA;AACA,oCAAoC,0DAAY;AAChD;AACA;AACA;AACA,uCAAuC,0DAAY;AACnD;AACA;AACA;AACA,+BAA+B,0DAAY;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,EAAE;AACzB,wBAAwB;AACxB;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,wCAAwC,2EAAoB;AAC5D,mBAAmB,EAAE;AACrB,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;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;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA,gBAAgB;AAChB;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;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,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA;AACA;AACA,eAAe,GAAG;AAClB,gBAAgB;AAChB;AACA;AACA,6BAA6B,kCAAkC;AAC/D;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;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,OAAO,uDAAS;AACzB;AACA;AACA,iBAAiB,IAAI;AACrB;AACA;AACA,kDAAkD;AAClD,SAAS,OAAO,wDAAU,EAAE;AAC5B,SAAS,OAAO,gEAAc,gBAAgB,OAAO,sDAAQ,EAAE,GAAG;AAClE,SAAS,OAAO,+DAAiB;AACjC,MAAM;AACN;AACA,wBAAwB,OAAO,oDAAM,EAAE;AACvC,4BAA4B,OAAO,oDAAM,EAAE;AAC3C,+BAA+B,OAAO,oDAAM,EAAE;AAC9C,uBAAuB,OAAO,oDAAM,EAAE;AACtC,oBAAoB,OAAO,mDAAK,sBAAsB;AACtD,kBAAkB,OAAO,mDAAK,EAAE;AAChC,6BAA6B,OAAO,mDAAK,EAAE;AAC3C,oBAAoB,OAAO,mDAAK,EAAE;AAClC;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA,IAAI,uDAAS;AACb;AACA;AACA;AACA;AACA,SAAS,OAAO,uDAAS,UAAU;AACnC,+FAA+F,4BAA4B,qCAAqC,EAAE;AAClK,oDAAoD,YAAY,cAAc,oDAAoD,gBAAgB;AAClJ,mCAAmC,+DAAiB;AACpD,qCAAqC,qEAAuB;AAC5D;AACA;AACA;AACA;AACA,iBAAiB,IAAI;AACrB;AACA;AACA,6CAA6C;AAC7C,SAAS,OAAO,wDAAU,EAAE;AAC5B,SAAS,OAAO,gEAAc,gBAAgB,OAAO,sDAAQ,EAAE,GAAG;AAClE,SAAS,OAAO,+DAAiB;AACjC,MAAM;AACN;AACA,uBAAuB,OAAO,uDAAS,SAAS,uEAAmB,GAAG,gBAAgB,IAAI;AAC1F;AACA;AACA,CAAC;;AAED;AACA;AACA,cAAc,uFAAuF;AACrG;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA,UAAU;AACV;AACA,0BAA0B,4DAAc;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD,WAAW,EAAE;AACb,4BAA4B,yEAAU,CAAC,iFAAkB;AACzD;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,uDAAS;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,iDAAY;AAC9C;AACA;AACA;AACA,sCAAsC,iDAAY;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,0DAAY;AACpD;AACA;AACA;AACA,gCAAgC,0DAAY;AAC5C;AACA;AACA;AACA,kCAAkC,0DAAY;AAC9C;AACA;AACA;AACA,sCAAsC,0DAAY;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA,qBAAqB,4BAA4B,EAAE;AACnD;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA,0BAA0B,uBAAuB,mFAAqB,QAAQ,EAAE;AAChF;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA,qBAAqB,4BAA4B,EAAE;AACnD;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA,kCAAkC,kFAAoB;AACtD,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA,qBAAqB,gCAAgC,EAAE;AACvD;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA,qBAAqB,8BAA8B,EAAE;AACrD;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,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;AACA,uBAAuB,EAAE;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA;AACA,2BAA2B,EAAE;AAC7B,2BAA2B,EAAE;AAC7B,4BAA4B;AAC5B;AACA,uCAAuC,+CAA+C,EAAE;AACxF;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,mBAAmB,EAAE;AACrB,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA,uBAAuB,EAAE;AACzB;AACA;AACA;AACA;AACA,2BAA2B,EAAE;AAC7B;AACA,+BAA+B,iBAAiB;AAChD;AACA;AACA;AACA;AACA;AACA;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;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,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,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC,0CAAK;AAC1C,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA,wBAAwB,0BAA0B,EAAE;AACpD,oBAAoB;AACpB;AACA,qBAAqB,gDAAgD,EAAE;AACvE;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,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AA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C,4EAAa;AAChD;AACA;AACA;AACA;AACA;AACA,IAAI,uDAAS;AACb;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,gBAAgB;AAChB;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,SAAS,OAAO,uDAAS;AACzB;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,IAAI;AACrB;AACA;AACA,qDAAqD;AACrD,SAAS,OAAO,wDAAU;AAC1B,MAAM;AACN;AACA,CAAC;;AAED;AACA;AACA,cAAc,uFAAuF;AACrG;AACA;AACA;AACA,UAAU;AACV;AACA,8CAA8C,EAAE,KAAK,8FAA+B,EAAE,gBAAgB;AACtG;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;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,8BAA8B,4CAAO;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,4CAAO;AACzC;AACA;AACA;AACA;AACA,sCAAsC,0DAAY;AAClD;AACA;AACA;AACA,gCAAgC,0DAAY;AAC5C;AACA;AACA,oBAAoB;AACpB;AACA;AACA,YAAY,sDAAS;AACrB,sBAAsB,gEAAS;AAC/B;AACA,wBAAwB;AACxB;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA,qBAAqB,4BAA4B,EAAE;AACnD;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA,oBAAoB,kFAAoB;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA,gBAAgB;AAChB;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA,QAAQ,sDAAS;AACjB,kBAAkB,gEAAS;AAC3B;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT,QAAQ,sDAAS;AACjB,kBAAkB,gEAAS;AAC3B;AACA,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,gBAAgB;AAChB;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,mBAAmB,EAAE;AACrB,uDAAuD,+CAAE;AACzD,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA,SAAS;AACT,+BAA+B,kEAAe;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,kDAAK,8CAA8C,gEAAS;AACpE,oBAAoB;AACpB;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,qCAAqC,gEAAS;AAC9C,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA;AACA;AACA,SAAS;AACT;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;AACA;AACA,gBAAgB;AAChB;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,YAAY,6EAAc;AAC1B;AACA;AACA;AACA,iBAAiB,2DAAI;AACrB;AACA;AACA;AACA,iBAAiB,0DAAG;AACpB;AACA;AACA;AACA,iBAAiB,4DAAK;AACtB,iBAAiB,4DAAK;AACtB;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB;AACxB;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;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C;AAC3C;AACA,0CAA0C;AAC1C,oBAAoB;AACpB;AACA;AACA,kDAAkD,EAAE;AACpD,SAAS;AACT;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,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;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,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;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,gBAAgB;AAChB;AACA;AACA;AACA,gBAAgB;AAChB;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA,qBAAqB,6BAA6B,EAAE;AACpD;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,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,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;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;AACA,mBAAmB,EAAE;AACrB;AACA,mBAAmB,EAAE;AACrB;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;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;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,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,gBAAgB;AAChB;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;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,QAAQ,kDAAK;AACb;AACA,kBAAkB,gEAAS,CAAC,kDAAK;AACjC;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;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;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA,SAAS,OAAO,uDAAS;AACzB;AACA;AACA,iBAAiB,IAAI;AACrB;AACA;AACA,wDAAwD;AACxD,SAAS,OAAO,wDAAU,EAAE;AAC5B,SAAS,OAAO,+DAAiB,E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,OAAO,uDAAS,+BAA+B,gBAAgB,IAAI;AACjG;AACA;AACA,CAAC;;AAED;AACA;AACA,cAAc,uFAAuF;AACrG;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,oBAAoB;AACpB;AACA,qBAAqB,8BAA8B,EAAE;AACrD;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,oBAAoB;AACpB;AACA,qBAAqB,4BAA4B,EAAE;AACnD;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA,0BAA0B,uBAAuB,mFAAqB,QAAQ,EAAE;AAChF;AACA;AACA,KAAK;AACL;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,iCAAiC,gEAAS,QAAQ,gEAAS;AAC3D,oBAAoB;AACpB;AACA;AACA;AACA,SAAS;AACT;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,uBAAuB,kBAAkB;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,OAAO,uDAAS;AACzB;AACA;AACA,iBAAiB,IAAI;AACrB;AACA;AACA,iDAAiD;AACjD,SAAS,OAAO,wDAAU,EAAE;AAC5B,SAAS,OAAO,gEAAc,gBAAgB,OAAO,sDAAQ,EAAE,GAAG;AAClE,SAAS,OAAO,oDAAM,EAAE;AACxB,SAAS,OAAO,+DAAiB,EAAE;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CpC,wBAAwB,sEAAe;AACvC,wBAAwB,uEAAe;AACvC,wBAAwB,6DAAU;AAClC;AACA;AACA;AACA,wBAAwB,sEAAe;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,EAAE;AACtC;AACA;AACA,oCAAoC,EAAE;AACtC,oCAAoC,EAAE;AACtC,oCAAoC,EAAE;AACtC,oCAAoC,EAAE;AACtC,oCAAoC,EAAE;AACtC;AACA,iBAAiB,IAAI;AACrB;AACA;AACA,CAAC;;AAED;AACA;AACA,cAAc,uFAAuF;AACrG;;AAEA;AACA;AACA,cAAc,uFAAuF;AACrG;;AAEA;AACA;AACA,cAAc,uFAAuF;AACrG;;AAE2Z;AAC3Z;;;;;;;;;;;;;ACpoFA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACkC;AACe;AACN;AACgH;AACtF;;AAErE;AACA;AACA,cAAc,uFAAuF;AACrG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD,WAAW,EAAE;AACb,2BAA2B,yEAAU;AACrC;AACA;AACA;AACA;AACA,SAAS,OAAO,uDAAS;AACzB;AACA;AACA,2BAA2B,6BAA6B;AACxD,iBAAiB,IAAI;AACrB;AACA;AACA,CAAC;AACD;AACA,IAAI,uDAAS;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,aAAa,+DAAS;AACtB;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA,qBAAqB,wCAAwC,EAAE;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,EAAE;AACrB;AACA;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA,yBAAyB,wEAAwE,EAAE;AACnG;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA,yBAAyB,+EAA+E,EAAE;AAC1G;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA,yBAAyB,wDAAwD,EAAE;AACnF;AACA;AACA;AACA;AACA;AACA,SAAS,OAAO,uDAAS,UAAU;AACnC;AACA;AACA,gEAAgE,aAAa,mBAAmB,yCAAyC,aAAa,sBAAsB,eAAe,WAAW,mBAAmB,mBAAmB,mBAAmB,2BAA2B,aAAa,sBAAsB,sBAAsB,WAAW,2BAA2B,gBAAgB,yCAAyC,YAAY,yBAAyB,2BAA2B,gBAAgB,yCAAyC,aAAa;AACxjB;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB,qCAAqC,qEAAuB;AAC5D,mCAAmC,+DAAiB;AACpD,iBAAiB,IAAI;AACrB;AACA;AACA,6CAA6C;AAC7C,SAAS,OAAO,wDAAU,EAAE;AAC5B,SAAS,OAAO,8DAAQ,EAAE;AAC1B,SAAS,gCAAgC,OAAO,oDAAM,SAAS,wDAAQ,IAAI;AAC3E,MAAM;AACN;AACA,wBAAwB,OAAO,6DAAe,0BAA0B;AACxE;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,cAAc,uFAAuF;AACrG;AACA;AACA;AACA;AACA;AACA,SAAS,OAAO,sDAAQ;AACxB,8BAA8B,sEAAe;AAC7C,yDAAyD,sEAAe;AACxE;AACA,iBAAiB,IAAI;AACrB;AACA;AACA,CAAC;;AAED;AACA;AACA,cAAc,uFAAuF;AACrG;;AAEA;AACA;AACA,cAAc,uFAAuF;AACrG;;AAEoF;AACpF;;;;;;;;;;;;;AClLA;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;AAC8J;AACS;AAClH;AACzB;AACf;AACO;AACR;AACH;;AAE3C;AACA;AACA,cAAc,uFAAuF;AACrG;AACA,WAAW,EAAE;AACb,4BAA4B,4EAAa,CAAC,4EAAa,CAAC,6DAAW;AACnE;AACA;AACA;AACA;AACA;AACA,IAAI,uDAAS;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,OAAO,uDAAS;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB,iCAAiC,UAAU,6DAAW,4BAA4B;AAClF,iBAAiB,IAAI;AACrB;AACA;AACA,8CAA8C;AAC9C,SAAS,OAAO,wDAAU,EAAE;AAC5B,SAAS,OAAO,yDAAO,EAAE;AACzB,SAAS,6BAA6B,OAAO,uDAAS,uBAAuB;AAC7E,MAAM;AACN;AACA,gBAAgB,OAAO,mDAAK,EAAE;AAC9B;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA,IAAI,uDAAS;AACb;AACA;AACA;AACA;AACA,SAAS,OAAO,uDAAS;AACzB;AACA;AACA;AACA;AACA,iCAAiC,UAAU,gEAAc,+BAA+B;AACxF,iBAAiB,IAAI;AACrB;AACA;AACA,gBAAgB,OAAO,mDAAK,0BAA0B;AACtD;AACA;AACA,CAAC,CAAC,gEAAc;AAChB;AACA;AACA;AACA;AACA;AACA,IAAI,uDAAS;AACb;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,0BAA0B,kBAAkB,mFAAqB,QAAQ,EAAE;AAC3E;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA,qBAAqB,4CAA4C,EAAE;AACnE;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;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,gBAAgB;AAChB;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,SAAS,OAAO,uDAAS;AACzB;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA,yBAAyB,UAAU,mEAAiB,kCAAkC;AACtF,yBAAyB,UAAU,6DAAW,kCAAkC;AAChF,yBAAyB,UAAU,2EAAyB;AAC5D;AACA,iBAAiB,IAAI;AACrB;AACA;AACA,oDAAoD;AACpD,SAAS,OAAO,wDAAU,EAAE;AAC5B,SAAS,OAAO,yDAAO,EAAE;AACzB,SAAS,OAAO,6DAAe,EAAE;AACjC,SAAS,6BAA6B,OAAO,uDAAS,uBAAuB;AAC7E,MAAM;AACN;AACA,gBAAgB,OAAO,mDAAK,gCAAgC;AAC5D,oBAAoB,OAAO,mDAAK,EAAE;AAClC,oBAAoB,OAAO,mDAAK,EAAE;AAClC;AACA;AACA,CAAC,CAAC,mEAAiB;;AAEnB;AACA;AACA,cAAc,uFAAuF;AACrG;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,uDAAS;AACb;AACA;AACA;AACA;AACA,SAAS,OAAO,uDAAS;AACzB;AACA,iCAAiC,UAAU,oEAAkB,mCAAmC;AAChG,iBAAiB,IAAI;AACrB;AACA;AACA,iBAAiB,OAAO,mDAAK,iCAAiC;AAC9D,kBAAkB,OAAO,mDAAK,uCAAuC;AACrE;AACA;AACA,CAAC,CAAC,oEAAkB;;AAEpB;AACA;AACA,cAAc,uFAAuF;AACrG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,OAAO,uDAAS;AACzB;AACA;AACA,qCAAqC,mEAAiB;AACtD;AACA,yBAAyB;AACzB,iBAAiB,IAAI;AACrB;AACA;AACA,oDAAoD;AACpD,SAAS,OAAO,8DAAgB,EAAE;AAClC,SAAS,gCAAgC,OAAO,oDAAM,SAAS,2EAAyB,IAAI,GAAG,OAAO,sDAAQ,EAAE;AAChH,MAAM;AACN;AACA,CAAC;;AAED;AACA;AACA,cAAc,uFAAuF;AACrG;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,uDAAS;AACb;AACA;AACA;AACA;AACA,SAAS,OAAO,uDAAS,UAAU;AACnC;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB,wCAAwC,cAAc,eAAe,aAAa,mBAAmB,gBAAgB,OAAO,gBAAgB,qBAAqB,sBAAsB,sBAAsB;AAC7M,mCAAmC,+DAAiB;AACpD;AACA;AACA,qCAAqC,qEAAuB;AAC5D,iCAAiC,UAAU,yDAAO,wBAAwB;AAC1E,iBAAiB,IAAI;AACrB;AACA;AACA,uBAAuB,OAAO,uDAAS,6BAA6B,eAAe,IAAI;AACvF;AACA;AACA,CAAC,CAAC,yDAAO;;AAET;AACA;AACA,cAAc,uFAAuF;AACrG;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,uDAAS;AACb;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,OAAO,uDAAS;AACzB;AACA,iCAAiC,UAAU,mEAAiB,kCAAkC;AAC9F,iBAAiB,IAAI;AACrB;AACA;AACA,qBAAqB,OAAO,mDAAK,yCAAyC;AAC1E;AACA;AACA,CAAC,CAAC,mEAAiB;;AAEnB;AACA;AACA,cAAc,uFAAuF;AACrG;AACA,WAAW,EAAE;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,OAAO,sDAAQ;AACxB,8BAA8B,+DAAa,EAAE,4DAAY,EAAE,sEAAe;AAC1E;AACA;AACA,iBAAiB,IAAI;AACrB;AACA;AACA,CAAC;;AAED;AACA;AACA,cAAc,uFAAuF;AACrG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;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,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;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;AACA;AACA,uBAAuB,EAAE;AACzB;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,2DAAI;AAC3C,+BAA+B,EAAE;AACjC,gCAAgC;AAChC;AACA;AACA;AACA,qBAAqB;AACrB;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;AACA,mBAAmB,EAAE;AACrB,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA,uBAAuB,EAAE;AACzB;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,mBAAmB,EAAE;AACrB;AACA;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA,yBAAyB,qDAAqD,EAAE;AAChF;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;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA;AACA,uBAAuB,EAAE;AACzB;AACA,2BAA2B,2BAA2B;AACtD;AACA;AACA;AACA;AACA;AACA;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,IAAI,uDAAS;AACb;AACA,qCAAqC,kBAAkB;AACvD;AACA;AACA;AACA,mCAAmC,oDAAe;AAClD,kCAAkC,oDAAe;AACjD,0BAA0B,oDAAe;AACzC;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA,qBAAqB,yBAAyB,EAAE;AAChD;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;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;AACA;AACA;AACA;AACA,eAAe,0CAAK,6BAA6B,0DAAG;AACpD,oBAAoB;AACpB;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,gBAAgB;AAChB;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,CAAC,CAAC,mEAAU;;AAEZ;AACA;AACA,cAAc,uFAAuF;AACrG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,uDAAS;AACb;AACA;AACA,0BAA0B,oDAAe;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA,qBAAqB,yBAAyB,EAAE;AAChD;AACA,mBAAmB,EAAE;AACrB,oBAAoB;AACpB;AACA,0BAA0B,wBAAwB,EAAE;AACpD;AACA;AACA,KAAK;AACL;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA,eAAe,EAAE;AACjB,gBAAgB;AAChB;AACA;AACA;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","file":"app-blog-blog-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 { coerceBooleanProperty } from '@angular/cdk/coercion';\nimport { Directive, Input, Output, EventEmitter, Optional, ChangeDetectorRef, SkipSelf, NgModule } from '@angular/core';\nimport { Subject, Subscription } from 'rxjs';\nimport { UniqueSelectionDispatcher } from '@angular/cdk/collections';\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n/**\n * Used to generate unique ID for each accordion.\n * @type {?}\n */\nvar nextId = 0;\n/**\n * Directive whose purpose is to manage the expanded state of CdkAccordionItem children.\n */\nvar CdkAccordion = /** @class */ (function () {\n function CdkAccordion() {\n /**\n * Emits when the state of the accordion changes\n */\n this._stateChanges = new Subject();\n /**\n * Stream that emits true/false when openAll/closeAll is triggered.\n */\n this._openCloseAllActions = new Subject();\n /**\n * A readonly id value to use for unique selection coordination.\n */\n this.id = \"cdk-accordion-\" + nextId++;\n this._multi = false;\n }\n Object.defineProperty(CdkAccordion.prototype, \"multi\", {\n /** Whether the accordion should allow multiple expanded accordion items simultaneously. */\n get: /**\n * Whether the accordion should allow multiple expanded accordion items simultaneously.\n * @return {?}\n */\n function () { return this._multi; },\n set: /**\n * @param {?} multi\n * @return {?}\n */\n function (multi) { this._multi = coerceBooleanProperty(multi); },\n enumerable: true,\n configurable: true\n });\n /** Opens all enabled accordion items in an accordion where multi is enabled. */\n /**\n * Opens all enabled accordion items in an accordion where multi is enabled.\n * @return {?}\n */\n CdkAccordion.prototype.openAll = /**\n * Opens all enabled accordion items in an accordion where multi is enabled.\n * @return {?}\n */\n function () {\n this._openCloseAll(true);\n };\n /** Closes all enabled accordion items in an accordion where multi is enabled. */\n /**\n * Closes all enabled accordion items in an accordion where multi is enabled.\n * @return {?}\n */\n CdkAccordion.prototype.closeAll = /**\n * Closes all enabled accordion items in an accordion where multi is enabled.\n * @return {?}\n */\n function () {\n this._openCloseAll(false);\n };\n /**\n * @param {?} changes\n * @return {?}\n */\n CdkAccordion.prototype.ngOnChanges = /**\n * @param {?} changes\n * @return {?}\n */\n function (changes) {\n this._stateChanges.next(changes);\n };\n /**\n * @return {?}\n */\n CdkAccordion.prototype.ngOnDestroy = /**\n * @return {?}\n */\n function () {\n this._stateChanges.complete();\n };\n /**\n * @private\n * @param {?} expanded\n * @return {?}\n */\n CdkAccordion.prototype._openCloseAll = /**\n * @private\n * @param {?} expanded\n * @return {?}\n */\n function (expanded) {\n if (this.multi) {\n this._openCloseAllActions.next(expanded);\n }\n };\n CdkAccordion.decorators = [\n { type: Directive, args: [{\n selector: 'cdk-accordion, [cdkAccordion]',\n exportAs: 'cdkAccordion',\n },] },\n ];\n CdkAccordion.propDecorators = {\n multi: [{ type: Input }]\n };\n return CdkAccordion;\n}());\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n/**\n * Used to generate unique ID for each accordion item.\n * @type {?}\n */\nvar nextId$1 = 0;\nvar ɵ0 = undefined;\n/**\n * An basic directive expected to be extended and decorated as a component. Sets up all\n * events and attributes needed to be managed by a CdkAccordion parent.\n */\nvar CdkAccordionItem = /** @class */ (function () {\n function CdkAccordionItem(accordion, _changeDetectorRef, _expansionDispatcher) {\n var _this = this;\n this.accordion = accordion;\n this._changeDetectorRef = _changeDetectorRef;\n this._expansionDispatcher = _expansionDispatcher;\n /**\n * Subscription to openAll/closeAll events.\n */\n this._openCloseAllSubscription = Subscription.EMPTY;\n /**\n * Event emitted every time the AccordionItem is closed.\n */\n this.closed = new EventEmitter();\n /**\n * Event emitted every time the AccordionItem is opened.\n */\n this.opened = new EventEmitter();\n /**\n * Event emitted when the AccordionItem is destroyed.\n */\n this.destroyed = new EventEmitter();\n /**\n * Emits whenever the expanded state of the accordion changes.\n * Primarily used to facilitate two-way binding.\n * \\@docs-private\n */\n this.expandedChange = new EventEmitter();\n /**\n * The unique AccordionItem id.\n */\n this.id = \"cdk-accordion-child-\" + nextId$1++;\n this._expanded = false;\n this._disabled = false;\n /**\n * Unregister function for _expansionDispatcher.\n */\n this._removeUniqueSelectionListener = (/**\n * @return {?}\n */\n function () { });\n this._removeUniqueSelectionListener =\n _expansionDispatcher.listen((/**\n * @param {?} id\n * @param {?} accordionId\n * @return {?}\n */\n function (id, accordionId) {\n if (_this.accordion && !_this.accordion.multi &&\n _this.accordion.id === accordionId && _this.id !== id) {\n _this.expanded = false;\n }\n }));\n // When an accordion item is hosted in an accordion, subscribe to open/close events.\n if (this.accordion) {\n this._openCloseAllSubscription = this._subscribeToOpenCloseAllActions();\n }\n }\n Object.defineProperty(CdkAccordionItem.prototype, \"expanded\", {\n /** Whether the AccordionItem is expanded. */\n get: /**\n * Whether the AccordionItem is expanded.\n * @return {?}\n */\n function () { return this._expanded; },\n set: /**\n * @param {?} expanded\n * @return {?}\n */\n function (expanded) {\n expanded = coerceBooleanProperty(expanded);\n // Only emit events and update the internal value if the value changes.\n if (this._expanded !== expanded) {\n this._expanded = expanded;\n this.expandedChange.emit(expanded);\n if (expanded) {\n this.opened.emit();\n /**\n * In the unique selection dispatcher, the id parameter is the id of the CdkAccordionItem,\n * the name value is the id of the accordion.\n * @type {?}\n */\n var accordionId = this.accordion ? this.accordion.id : this.id;\n this._expansionDispatcher.notify(this.id, accordionId);\n }\n else {\n this.closed.emit();\n }\n // Ensures that the animation will run when the value is set outside of an `@Input`.\n // This includes cases like the open, close and toggle methods.\n this._changeDetectorRef.markForCheck();\n }\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(CdkAccordionItem.prototype, \"disabled\", {\n /** Whether the AccordionItem is disabled. */\n get: /**\n * Whether the AccordionItem is disabled.\n * @return {?}\n */\n function () { return this._disabled; },\n set: /**\n * @param {?} disabled\n * @return {?}\n */\n function (disabled) { this._disabled = coerceBooleanProperty(disabled); },\n enumerable: true,\n configurable: true\n });\n /** Emits an event for the accordion item being destroyed. */\n /**\n * Emits an event for the accordion item being destroyed.\n * @return {?}\n */\n CdkAccordionItem.prototype.ngOnDestroy = /**\n * Emits an event for the accordion item being destroyed.\n * @return {?}\n */\n function () {\n this.opened.complete();\n this.closed.complete();\n this.destroyed.emit();\n this.destroyed.complete();\n this._removeUniqueSelectionListener();\n this._openCloseAllSubscription.unsubscribe();\n };\n /** Toggles the expanded state of the accordion item. */\n /**\n * Toggles the expanded state of the accordion item.\n * @return {?}\n */\n CdkAccordionItem.prototype.toggle = /**\n * Toggles the expanded state of the accordion item.\n * @return {?}\n */\n function () {\n if (!this.disabled) {\n this.expanded = !this.expanded;\n }\n };\n /** Sets the expanded state of the accordion item to false. */\n /**\n * Sets the expanded state of the accordion item to false.\n * @return {?}\n */\n CdkAccordionItem.prototype.close = /**\n * Sets the expanded state of the accordion item to false.\n * @return {?}\n */\n function () {\n if (!this.disabled) {\n this.expanded = false;\n }\n };\n /** Sets the expanded state of the accordion item to true. */\n /**\n * Sets the expanded state of the accordion item to true.\n * @return {?}\n */\n CdkAccordionItem.prototype.open = /**\n * Sets the expanded state of the accordion item to true.\n * @return {?}\n */\n function () {\n if (!this.disabled) {\n this.expanded = true;\n }\n };\n /**\n * @private\n * @return {?}\n */\n CdkAccordionItem.prototype._subscribeToOpenCloseAllActions = /**\n * @private\n * @return {?}\n */\n function () {\n var _this = this;\n return this.accordion._openCloseAllActions.subscribe((/**\n * @param {?} expanded\n * @return {?}\n */\n function (expanded) {\n // Only change expanded state if item is enabled\n if (!_this.disabled) {\n _this.expanded = expanded;\n }\n }));\n };\n CdkAccordionItem.decorators = [\n { type: Directive, args: [{\n selector: 'cdk-accordion-item, [cdkAccordionItem]',\n exportAs: 'cdkAccordionItem',\n providers: [\n // Provide CdkAccordion as undefined to prevent nested accordion items from registering\n // to the same accordion.\n { provide: CdkAccordion, useValue: ɵ0 },\n ],\n },] },\n ];\n /** @nocollapse */\n CdkAccordionItem.ctorParameters = function () { return [\n { type: CdkAccordion, decorators: [{ type: Optional }, { type: SkipSelf }] },\n { type: ChangeDetectorRef },\n { type: UniqueSelectionDispatcher }\n ]; };\n CdkAccordionItem.propDecorators = {\n closed: [{ type: Output }],\n opened: [{ type: Output }],\n destroyed: [{ type: Output }],\n expandedChange: [{ type: Output }],\n expanded: [{ type: Input }],\n disabled: [{ type: Input }]\n };\n return CdkAccordionItem;\n}());\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\nvar CdkAccordionModule = /** @class */ (function () {\n function CdkAccordionModule() {\n }\n CdkAccordionModule.decorators = [\n { type: NgModule, args: [{\n exports: [CdkAccordion, CdkAccordionItem],\n declarations: [CdkAccordion, CdkAccordionItem],\n },] },\n ];\n return CdkAccordionModule;\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 { CdkAccordionItem, CdkAccordion, CdkAccordionModule };\n//# sourceMappingURL=accordion.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 { Directive, ElementRef, TemplateRef, ChangeDetectionStrategy, ChangeDetectorRef, Component, ContentChild, ContentChildren, EventEmitter, forwardRef, Inject, InjectionToken, Input, Optional, Output, ViewChild, ViewEncapsulation, HostListener, NgModule } from '@angular/core';\nimport { FocusKeyManager } from '@angular/cdk/a11y';\nimport { Directionality, BidiModule } from '@angular/cdk/bidi';\nimport { coerceBooleanProperty, coerceNumberProperty } from '@angular/cdk/coercion';\nimport { END, ENTER, hasModifierKey, HOME, SPACE } from '@angular/cdk/keycodes';\nimport { DOCUMENT, CommonModule } from '@angular/common';\nimport { of, Subject } from 'rxjs';\nimport { startWith, takeUntil } from 'rxjs/operators';\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\nvar CdkStepHeader = /** @class */ (function () {\n function CdkStepHeader(_elementRef) {\n this._elementRef = _elementRef;\n }\n /** Focuses the step header. */\n /**\n * Focuses the step header.\n * @return {?}\n */\n CdkStepHeader.prototype.focus = /**\n * Focuses the step header.\n * @return {?}\n */\n function () {\n this._elementRef.nativeElement.focus();\n };\n CdkStepHeader.decorators = [\n { type: Directive, args: [{\n selector: '[cdkStepHeader]',\n host: {\n 'role': 'tab',\n },\n },] },\n ];\n /** @nocollapse */\n CdkStepHeader.ctorParameters = function () { return [\n { type: ElementRef }\n ]; };\n return CdkStepHeader;\n}());\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\nvar CdkStepLabel = /** @class */ (function () {\n function CdkStepLabel(/** @docs-private */ template) {\n this.template = template;\n }\n CdkStepLabel.decorators = [\n { type: Directive, args: [{\n selector: '[cdkStepLabel]',\n },] },\n ];\n /** @nocollapse */\n CdkStepLabel.ctorParameters = function () { return [\n { type: TemplateRef }\n ]; };\n return CdkStepLabel;\n}());\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n/**\n * Used to generate unique ID for each stepper component.\n * @type {?}\n */\nvar nextId = 0;\n/**\n * Change event emitted on selection changes.\n */\nvar /**\n * Change event emitted on selection changes.\n */\nStepperSelectionEvent = /** @class */ (function () {\n function StepperSelectionEvent() {\n }\n return StepperSelectionEvent;\n}());\n/**\n * Enum to represent the different states of the steps.\n * @type {?}\n */\nvar STEP_STATE = {\n NUMBER: 'number',\n EDIT: 'edit',\n DONE: 'done',\n ERROR: 'error'\n};\n/**\n * InjectionToken that can be used to specify the global stepper options.\n * @type {?}\n */\nvar STEPPER_GLOBAL_OPTIONS = new InjectionToken('STEPPER_GLOBAL_OPTIONS');\n/**\n * InjectionToken that can be used to specify the global stepper options.\n * @deprecated Use `STEPPER_GLOBAL_OPTIONS` instead.\n * \\@breaking-change 8.0.0.\n * @type {?}\n */\nvar MAT_STEPPER_GLOBAL_OPTIONS = STEPPER_GLOBAL_OPTIONS;\nvar CdkStep = /** @class */ (function () {\n /** @breaking-change 8.0.0 remove the `?` after `stepperOptions` */\n function CdkStep(_stepper, stepperOptions) {\n this._stepper = _stepper;\n /**\n * Whether user has seen the expanded step content or not.\n */\n this.interacted = false;\n this._editable = true;\n this._optional = false;\n this._completedOverride = null;\n this._customError = null;\n this._stepperOptions = stepperOptions ? stepperOptions : {};\n this._displayDefaultIndicatorType = this._stepperOptions.displayDefaultIndicatorType !== false;\n this._showError = !!this._stepperOptions.showError;\n }\n Object.defineProperty(CdkStep.prototype, \"editable\", {\n /** Whether the user can return to this step once it has been marked as completed. */\n get: /**\n * Whether the user can return to this step once it has been marked as completed.\n * @return {?}\n */\n function () {\n return this._editable;\n },\n set: /**\n * @param {?} value\n * @return {?}\n */\n function (value) {\n this._editable = coerceBooleanProperty(value);\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(CdkStep.prototype, \"optional\", {\n /** Whether the completion of step is optional. */\n get: /**\n * Whether the completion of step is optional.\n * @return {?}\n */\n function () {\n return this._optional;\n },\n set: /**\n * @param {?} value\n * @return {?}\n */\n function (value) {\n this._optional = coerceBooleanProperty(value);\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(CdkStep.prototype, \"completed\", {\n /** Whether step is marked as completed. */\n get: /**\n * Whether step is marked as completed.\n * @return {?}\n */\n function () {\n return this._completedOverride == null ? this._getDefaultCompleted() : this._completedOverride;\n },\n set: /**\n * @param {?} value\n * @return {?}\n */\n function (value) {\n this._completedOverride = coerceBooleanProperty(value);\n },\n enumerable: true,\n configurable: true\n });\n /**\n * @private\n * @return {?}\n */\n CdkStep.prototype._getDefaultCompleted = /**\n * @private\n * @return {?}\n */\n function () {\n return this.stepControl ? this.stepControl.valid && this.interacted : this.interacted;\n };\n Object.defineProperty(CdkStep.prototype, \"hasError\", {\n /** Whether step has an error. */\n get: /**\n * Whether step has an error.\n * @return {?}\n */\n function () {\n return this._customError == null ? this._getDefaultError() : this._customError;\n },\n set: /**\n * @param {?} value\n * @return {?}\n */\n function (value) {\n this._customError = coerceBooleanProperty(value);\n },\n enumerable: true,\n configurable: true\n });\n /**\n * @private\n * @return {?}\n */\n CdkStep.prototype._getDefaultError = /**\n * @private\n * @return {?}\n */\n function () {\n return this.stepControl && this.stepControl.invalid && this.interacted;\n };\n /** Selects this step component. */\n /**\n * Selects this step component.\n * @return {?}\n */\n CdkStep.prototype.select = /**\n * Selects this step component.\n * @return {?}\n */\n function () {\n this._stepper.selected = this;\n };\n /** Resets the step to its initial state. Note that this includes resetting form data. */\n /**\n * Resets the step to its initial state. Note that this includes resetting form data.\n * @return {?}\n */\n CdkStep.prototype.reset = /**\n * Resets the step to its initial state. Note that this includes resetting form data.\n * @return {?}\n */\n function () {\n this.interacted = false;\n if (this._completedOverride != null) {\n this._completedOverride = false;\n }\n if (this._customError != null) {\n this._customError = false;\n }\n if (this.stepControl) {\n this.stepControl.reset();\n }\n };\n /**\n * @return {?}\n */\n CdkStep.prototype.ngOnChanges = /**\n * @return {?}\n */\n function () {\n // Since basically all inputs of the MatStep get proxied through the view down to the\n // underlying MatStepHeader, we have to make sure that change detection runs correctly.\n this._stepper._stateChanged();\n };\n CdkStep.decorators = [\n { type: Component, args: [{selector: 'cdk-step',\n exportAs: 'cdkStep',\n template: '',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n },] },\n ];\n /** @nocollapse */\n CdkStep.ctorParameters = function () { return [\n { type: CdkStepper, decorators: [{ type: Inject, args: [forwardRef((/**\n * @return {?}\n */\n function () { return CdkStepper; })),] }] },\n { type: undefined, decorators: [{ type: Optional }, { type: Inject, args: [STEPPER_GLOBAL_OPTIONS,] }] }\n ]; };\n CdkStep.propDecorators = {\n stepLabel: [{ type: ContentChild, args: [CdkStepLabel, { static: false },] }],\n content: [{ type: ViewChild, args: [TemplateRef, { static: true },] }],\n stepControl: [{ type: Input }],\n label: [{ type: Input }],\n errorMessage: [{ type: Input }],\n ariaLabel: [{ type: Input, args: ['aria-label',] }],\n ariaLabelledby: [{ type: Input, args: ['aria-labelledby',] }],\n state: [{ type: Input }],\n editable: [{ type: Input }],\n optional: [{ type: Input }],\n completed: [{ type: Input }],\n hasError: [{ type: Input }]\n };\n return CdkStep;\n}());\nvar CdkStepper = /** @class */ (function () {\n function CdkStepper(_dir, _changeDetectorRef, _elementRef, _document) {\n this._dir = _dir;\n this._changeDetectorRef = _changeDetectorRef;\n this._elementRef = _elementRef;\n /**\n * Emits when the component is destroyed.\n */\n this._destroyed = new Subject();\n this._linear = false;\n this._selectedIndex = 0;\n /**\n * Event emitted when the selected step has changed.\n */\n this.selectionChange = new EventEmitter();\n this._orientation = 'horizontal';\n this._groupId = nextId++;\n this._document = _document;\n }\n Object.defineProperty(CdkStepper.prototype, \"steps\", {\n /** The list of step components that the stepper is holding. */\n get: /**\n * The list of step components that the stepper is holding.\n * @return {?}\n */\n function () {\n return this._steps;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(CdkStepper.prototype, \"linear\", {\n /** Whether the validity of previous steps should be checked or not. */\n get: /**\n * Whether the validity of previous steps should be checked or not.\n * @return {?}\n */\n function () {\n return this._linear;\n },\n set: /**\n * @param {?} value\n * @return {?}\n */\n function (value) {\n this._linear = coerceBooleanProperty(value);\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(CdkStepper.prototype, \"selectedIndex\", {\n /** The index of the selected step. */\n get: /**\n * The index of the selected step.\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 = coerceNumberProperty(index);\n if (this.steps) {\n // Ensure that the index can't be out of bounds.\n if (newIndex < 0 || newIndex > this.steps.length - 1) {\n throw Error('cdkStepper: Cannot assign out-of-bounds value to `selectedIndex`.');\n }\n if (this._selectedIndex != newIndex && !this._anyControlsInvalidOrPending(newIndex) &&\n (newIndex >= this._selectedIndex || this.steps.toArray()[newIndex].editable)) {\n this._updateSelectedItemIndex(index);\n }\n }\n else {\n this._selectedIndex = newIndex;\n }\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(CdkStepper.prototype, \"selected\", {\n /** The step that is selected. */\n get: /**\n * The step that is selected.\n * @return {?}\n */\n function () {\n // @breaking-change 8.0.0 Change return type to `CdkStep | undefined`.\n return this.steps ? this.steps.toArray()[this.selectedIndex] : (/** @type {?} */ (undefined));\n },\n set: /**\n * @param {?} step\n * @return {?}\n */\n function (step) {\n this.selectedIndex = this.steps ? this.steps.toArray().indexOf(step) : -1;\n },\n enumerable: true,\n configurable: true\n });\n /**\n * @return {?}\n */\n CdkStepper.prototype.ngAfterViewInit = /**\n * @return {?}\n */\n function () {\n var _this = this;\n // Note that while the step headers are content children by default, any components that\n // extend this one might have them as view chidren. We initialize the keyboard handling in\n // AfterViewInit so we're guaranteed for both view and content children to be defined.\n this._keyManager = new FocusKeyManager(this._stepHeader)\n .withWrap()\n .withVerticalOrientation(this._orientation === 'vertical');\n (this._dir ? ((/** @type {?} */ (this._dir.change))) : of())\n .pipe(startWith(this._layoutDirection()), takeUntil(this._destroyed))\n .subscribe((/**\n * @param {?} direction\n * @return {?}\n */\n function (direction) { return _this._keyManager.withHorizontalOrientation(direction); }));\n this._keyManager.updateActiveItemIndex(this._selectedIndex);\n this.steps.changes.pipe(takeUntil(this._destroyed)).subscribe((/**\n * @return {?}\n */\n function () {\n if (!_this.selected) {\n _this._selectedIndex = Math.max(_this._selectedIndex - 1, 0);\n }\n }));\n };\n /**\n * @return {?}\n */\n CdkStepper.prototype.ngOnDestroy = /**\n * @return {?}\n */\n function () {\n this._destroyed.next();\n this._destroyed.complete();\n };\n /** Selects and focuses the next step in list. */\n /**\n * Selects and focuses the next step in list.\n * @return {?}\n */\n CdkStepper.prototype.next = /**\n * Selects and focuses the next step in list.\n * @return {?}\n */\n function () {\n this.selectedIndex = Math.min(this._selectedIndex + 1, this.steps.length - 1);\n };\n /** Selects and focuses the previous step in list. */\n /**\n * Selects and focuses the previous step in list.\n * @return {?}\n */\n CdkStepper.prototype.previous = /**\n * Selects and focuses the previous step in list.\n * @return {?}\n */\n function () {\n this.selectedIndex = Math.max(this._selectedIndex - 1, 0);\n };\n /** Resets the stepper to its initial state. Note that this includes clearing form data. */\n /**\n * Resets the stepper to its initial state. Note that this includes clearing form data.\n * @return {?}\n */\n CdkStepper.prototype.reset = /**\n * Resets the stepper to its initial state. Note that this includes clearing form data.\n * @return {?}\n */\n function () {\n this._updateSelectedItemIndex(0);\n this.steps.forEach((/**\n * @param {?} step\n * @return {?}\n */\n function (step) { return step.reset(); }));\n this._stateChanged();\n };\n /** Returns a unique id for each step label element. */\n /**\n * Returns a unique id for each step label element.\n * @param {?} i\n * @return {?}\n */\n CdkStepper.prototype._getStepLabelId = /**\n * Returns a unique id for each step label element.\n * @param {?} i\n * @return {?}\n */\n function (i) {\n return \"cdk-step-label-\" + this._groupId + \"-\" + i;\n };\n /** Returns unique id for each step content element. */\n /**\n * Returns unique id for each step content element.\n * @param {?} i\n * @return {?}\n */\n CdkStepper.prototype._getStepContentId = /**\n * Returns unique id for each step content element.\n * @param {?} i\n * @return {?}\n */\n function (i) {\n return \"cdk-step-content-\" + this._groupId + \"-\" + i;\n };\n /** Marks the component to be change detected. */\n /**\n * Marks the component to be change detected.\n * @return {?}\n */\n CdkStepper.prototype._stateChanged = /**\n * Marks the component to be change detected.\n * @return {?}\n */\n function () {\n this._changeDetectorRef.markForCheck();\n };\n /** Returns position state of the step with the given index. */\n /**\n * Returns position state of the step with the given index.\n * @param {?} index\n * @return {?}\n */\n CdkStepper.prototype._getAnimationDirection = /**\n * Returns position state of the step with the given index.\n * @param {?} index\n * @return {?}\n */\n function (index) {\n /** @type {?} */\n var position = index - this._selectedIndex;\n if (position < 0) {\n return this._layoutDirection() === 'rtl' ? 'next' : 'previous';\n }\n else if (position > 0) {\n return this._layoutDirection() === 'rtl' ? 'previous' : 'next';\n }\n return 'current';\n };\n /** Returns the type of icon to be displayed. */\n /**\n * Returns the type of icon to be displayed.\n * @param {?} index\n * @param {?=} state\n * @return {?}\n */\n CdkStepper.prototype._getIndicatorType = /**\n * Returns the type of icon to be displayed.\n * @param {?} index\n * @param {?=} state\n * @return {?}\n */\n function (index, state) {\n if (state === void 0) { state = STEP_STATE.NUMBER; }\n /** @type {?} */\n var step = this.steps.toArray()[index];\n /** @type {?} */\n var isCurrentStep = this._isCurrentStep(index);\n return step._displayDefaultIndicatorType ? this._getDefaultIndicatorLogic(step, isCurrentStep) :\n this._getGuidelineLogic(step, isCurrentStep, state);\n };\n /**\n * @private\n * @param {?} step\n * @param {?} isCurrentStep\n * @return {?}\n */\n CdkStepper.prototype._getDefaultIndicatorLogic = /**\n * @private\n * @param {?} step\n * @param {?} isCurrentStep\n * @return {?}\n */\n function (step, isCurrentStep) {\n if (step._showError && step.hasError && !isCurrentStep) {\n return STEP_STATE.ERROR;\n }\n else if (!step.completed || isCurrentStep) {\n return STEP_STATE.NUMBER;\n }\n else {\n return step.editable ? STEP_STATE.EDIT : STEP_STATE.DONE;\n }\n };\n /**\n * @private\n * @param {?} step\n * @param {?} isCurrentStep\n * @param {?=} state\n * @return {?}\n */\n CdkStepper.prototype._getGuidelineLogic = /**\n * @private\n * @param {?} step\n * @param {?} isCurrentStep\n * @param {?=} state\n * @return {?}\n */\n function (step, isCurrentStep, state) {\n if (state === void 0) { state = STEP_STATE.NUMBER; }\n if (step._showError && step.hasError && !isCurrentStep) {\n return STEP_STATE.ERROR;\n }\n else if (step.completed && !isCurrentStep) {\n return STEP_STATE.DONE;\n }\n else if (step.completed && isCurrentStep) {\n return state;\n }\n else if (step.editable && isCurrentStep) {\n return STEP_STATE.EDIT;\n }\n else {\n return state;\n }\n };\n /**\n * @private\n * @param {?} index\n * @return {?}\n */\n CdkStepper.prototype._isCurrentStep = /**\n * @private\n * @param {?} index\n * @return {?}\n */\n function (index) {\n return this._selectedIndex === index;\n };\n /** Returns the index of the currently-focused step header. */\n /**\n * Returns the index of the currently-focused step header.\n * @return {?}\n */\n CdkStepper.prototype._getFocusIndex = /**\n * Returns the index of the currently-focused step header.\n * @return {?}\n */\n function () {\n return this._keyManager ? this._keyManager.activeItemIndex : this._selectedIndex;\n };\n /**\n * @private\n * @param {?} newIndex\n * @return {?}\n */\n CdkStepper.prototype._updateSelectedItemIndex = /**\n * @private\n * @param {?} newIndex\n * @return {?}\n */\n function (newIndex) {\n /** @type {?} */\n var stepsArray = this.steps.toArray();\n this.selectionChange.emit({\n selectedIndex: newIndex,\n previouslySelectedIndex: this._selectedIndex,\n selectedStep: stepsArray[newIndex],\n previouslySelectedStep: stepsArray[this._selectedIndex],\n });\n // If focus is inside the stepper, move it to the next header, otherwise it may become\n // lost when the active step content is hidden. We can't be more granular with the check\n // (e.g. checking whether focus is inside the active step), because we don't have a\n // reference to the elements that are rendering out the content.\n this._containsFocus() ? this._keyManager.setActiveItem(newIndex) :\n this._keyManager.updateActiveItemIndex(newIndex);\n this._selectedIndex = newIndex;\n this._stateChanged();\n };\n /**\n * @param {?} event\n * @return {?}\n */\n CdkStepper.prototype._onKeydown = /**\n * @param {?} event\n * @return {?}\n */\n function (event) {\n /** @type {?} */\n var hasModifier = hasModifierKey(event);\n /** @type {?} */\n var keyCode = event.keyCode;\n /** @type {?} */\n var manager = this._keyManager;\n if (manager.activeItemIndex != null && !hasModifier &&\n (keyCode === SPACE || keyCode === ENTER)) {\n this.selectedIndex = manager.activeItemIndex;\n event.preventDefault();\n }\n else if (keyCode === HOME) {\n manager.setFirstItemActive();\n event.preventDefault();\n }\n else if (keyCode === END) {\n manager.setLastItemActive();\n event.preventDefault();\n }\n else {\n manager.onKeydown(event);\n }\n };\n /**\n * @private\n * @param {?} index\n * @return {?}\n */\n CdkStepper.prototype._anyControlsInvalidOrPending = /**\n * @private\n * @param {?} index\n * @return {?}\n */\n function (index) {\n /** @type {?} */\n var steps = this.steps.toArray();\n steps[this._selectedIndex].interacted = true;\n if (this._linear && index >= 0) {\n return steps.slice(0, index).some((/**\n * @param {?} step\n * @return {?}\n */\n function (step) {\n /** @type {?} */\n var control = step.stepControl;\n /** @type {?} */\n var isIncomplete = control ? (control.invalid || control.pending || !step.interacted) : !step.completed;\n return isIncomplete && !step.optional && !step._completedOverride;\n }));\n }\n return false;\n };\n /**\n * @private\n * @return {?}\n */\n CdkStepper.prototype._layoutDirection = /**\n * @private\n * @return {?}\n */\n function () {\n return this._dir && this._dir.value === 'rtl' ? 'rtl' : 'ltr';\n };\n /** Checks whether the stepper contains the focused element. */\n /**\n * Checks whether the stepper contains the focused element.\n * @private\n * @return {?}\n */\n CdkStepper.prototype._containsFocus = /**\n * Checks whether the stepper contains the focused element.\n * @private\n * @return {?}\n */\n function () {\n if (!this._document || !this._elementRef) {\n return false;\n }\n /** @type {?} */\n var stepperElement = this._elementRef.nativeElement;\n /** @type {?} */\n var focusedElement = this._document.activeElement;\n return stepperElement === focusedElement || stepperElement.contains(focusedElement);\n };\n CdkStepper.decorators = [\n { type: Directive, args: [{\n selector: '[cdkStepper]',\n exportAs: 'cdkStepper',\n },] },\n ];\n /** @nocollapse */\n CdkStepper.ctorParameters = function () { return [\n { type: Directionality, decorators: [{ type: Optional }] },\n { type: ChangeDetectorRef },\n { type: ElementRef },\n { type: undefined, decorators: [{ type: Inject, args: [DOCUMENT,] }] }\n ]; };\n CdkStepper.propDecorators = {\n _steps: [{ type: ContentChildren, args: [CdkStep,] }],\n _stepHeader: [{ type: ContentChildren, args: [CdkStepHeader,] }],\n linear: [{ type: Input }],\n selectedIndex: [{ type: Input }],\n selected: [{ type: Input }],\n selectionChange: [{ type: Output }]\n };\n return CdkStepper;\n}());\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n/**\n * Button that moves to the next step in a stepper workflow.\n */\nvar CdkStepperNext = /** @class */ (function () {\n function CdkStepperNext(_stepper) {\n this._stepper = _stepper;\n /**\n * Type of the next button. Defaults to \"submit\" if not specified.\n */\n this.type = 'submit';\n }\n // We have to use a `HostListener` here in order to support both Ivy and ViewEngine.\n // In Ivy the `host` bindings will be merged when this class is extended, whereas in\n // ViewEngine they're overwritten.\n // TODO(crisbeto): we move this back into `host` once Ivy is turned on by default.\n // tslint:disable-next-line:no-host-decorator-in-concrete\n // We have to use a `HostListener` here in order to support both Ivy and ViewEngine.\n // In Ivy the `host` bindings will be merged when this class is extended, whereas in\n // ViewEngine they're overwritten.\n // TODO(crisbeto): we move this back into `host` once Ivy is turned on by default.\n // tslint:disable-next-line:no-host-decorator-in-concrete\n /**\n * @return {?}\n */\n CdkStepperNext.prototype._handleClick = \n // We have to use a `HostListener` here in order to support both Ivy and ViewEngine.\n // In Ivy the `host` bindings will be merged when this class is extended, whereas in\n // ViewEngine they're overwritten.\n // TODO(crisbeto): we move this back into `host` once Ivy is turned on by default.\n // tslint:disable-next-line:no-host-decorator-in-concrete\n /**\n * @return {?}\n */\n function () {\n this._stepper.next();\n };\n CdkStepperNext.decorators = [\n { type: Directive, args: [{\n selector: 'button[cdkStepperNext]',\n host: {\n '[type]': 'type',\n }\n },] },\n ];\n /** @nocollapse */\n CdkStepperNext.ctorParameters = function () { return [\n { type: CdkStepper }\n ]; };\n CdkStepperNext.propDecorators = {\n type: [{ type: Input }],\n _handleClick: [{ type: HostListener, args: ['click',] }]\n };\n return CdkStepperNext;\n}());\n/**\n * Button that moves to the previous step in a stepper workflow.\n */\nvar CdkStepperPrevious = /** @class */ (function () {\n function CdkStepperPrevious(_stepper) {\n this._stepper = _stepper;\n /**\n * Type of the previous button. Defaults to \"button\" if not specified.\n */\n this.type = 'button';\n }\n // We have to use a `HostListener` here in order to support both Ivy and ViewEngine.\n // In Ivy the `host` bindings will be merged when this class is extended, whereas in\n // ViewEngine they're overwritten.\n // TODO(crisbeto): we move this back into `host` once Ivy is turned on by default.\n // tslint:disable-next-line:no-host-decorator-in-concrete\n // We have to use a `HostListener` here in order to support both Ivy and ViewEngine.\n // In Ivy the `host` bindings will be merged when this class is extended, whereas in\n // ViewEngine they're overwritten.\n // TODO(crisbeto): we move this back into `host` once Ivy is turned on by default.\n // tslint:disable-next-line:no-host-decorator-in-concrete\n /**\n * @return {?}\n */\n CdkStepperPrevious.prototype._handleClick = \n // We have to use a `HostListener` here in order to support both Ivy and ViewEngine.\n // In Ivy the `host` bindings will be merged when this class is extended, whereas in\n // ViewEngine they're overwritten.\n // TODO(crisbeto): we move this back into `host` once Ivy is turned on by default.\n // tslint:disable-next-line:no-host-decorator-in-concrete\n /**\n * @return {?}\n */\n function () {\n this._stepper.previous();\n };\n CdkStepperPrevious.decorators = [\n { type: Directive, args: [{\n selector: 'button[cdkStepperPrevious]',\n host: {\n '[type]': 'type',\n }\n },] },\n ];\n /** @nocollapse */\n CdkStepperPrevious.ctorParameters = function () { return [\n { type: CdkStepper }\n ]; };\n CdkStepperPrevious.propDecorators = {\n type: [{ type: Input }],\n _handleClick: [{ type: HostListener, args: ['click',] }]\n };\n return CdkStepperPrevious;\n}());\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\nvar CdkStepperModule = /** @class */ (function () {\n function CdkStepperModule() {\n }\n CdkStepperModule.decorators = [\n { type: NgModule, args: [{\n imports: [BidiModule, CommonModule],\n exports: [\n CdkStep,\n CdkStepper,\n CdkStepHeader,\n CdkStepLabel,\n CdkStepperNext,\n CdkStepperPrevious,\n ],\n declarations: [\n CdkStep,\n CdkStepper,\n CdkStepHeader,\n CdkStepLabel,\n CdkStepperNext,\n CdkStepperPrevious,\n ]\n },] },\n ];\n return CdkStepperModule;\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 { StepperSelectionEvent, STEP_STATE, STEPPER_GLOBAL_OPTIONS, MAT_STEPPER_GLOBAL_OPTIONS, CdkStep, CdkStepper, CdkStepLabel, CdkStepperNext, CdkStepperPrevious, CdkStepperModule, CdkStepHeader };\n//# sourceMappingURL=stepper.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 { coerceBooleanProperty } from '@angular/cdk/coercion';\nimport { ContentChild, Directive, ElementRef, Input, TemplateRef, ChangeDetectionStrategy, Component, IterableDiffers, ViewContainerRef, ViewEncapsulation, Attribute, ChangeDetectorRef, ContentChildren, EmbeddedViewRef, Inject, isDevMode, Optional, ViewChild, InjectionToken, NgModule } from '@angular/core';\nimport { Directionality } from '@angular/cdk/bidi';\nimport { isDataSource } from '@angular/cdk/collections';\nexport { DataSource } from '@angular/cdk/collections';\nimport { Platform } from '@angular/cdk/platform';\nimport { DOCUMENT, CommonModule } from '@angular/common';\nimport { BehaviorSubject, Observable, of, 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 * Mixin to provide a directive with a function that checks if the sticky input has been\n * changed since the last time the function was called. Essentially adds a dirty-check to the\n * sticky value.\n * \\@docs-private\n * @template T\n * @param {?} base\n * @return {?}\n */\nfunction mixinHasStickyInput(base) {\n return /** @class */ (function (_super) {\n __extends(class_1, _super);\n function class_1() {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n var _this = _super.apply(this, args) || this;\n _this._sticky = false;\n /**\n * Whether the sticky input has changed since it was last checked.\n */\n _this._hasStickyChanged = false;\n return _this;\n }\n Object.defineProperty(class_1.prototype, \"sticky\", {\n /** Whether sticky positioning should be applied. */\n get: /**\n * Whether sticky positioning should be applied.\n * @return {?}\n */\n function () { return this._sticky; },\n set: /**\n * @param {?} v\n * @return {?}\n */\n function (v) {\n /** @type {?} */\n var prevValue = this._sticky;\n this._sticky = coerceBooleanProperty(v);\n this._hasStickyChanged = prevValue !== this._sticky;\n },\n enumerable: true,\n configurable: true\n });\n /** Whether the sticky value has changed since this was last called. */\n /**\n * Whether the sticky value has changed since this was last called.\n * @return {?}\n */\n class_1.prototype.hasStickyChanged = /**\n * Whether the sticky value has changed since this was last called.\n * @return {?}\n */\n function () {\n /** @type {?} */\n var hasStickyChanged = this._hasStickyChanged;\n this._hasStickyChanged = false;\n return hasStickyChanged;\n };\n /** Resets the dirty check for cases where the sticky state has been used without checking. */\n /**\n * Resets the dirty check for cases where the sticky state has been used without checking.\n * @return {?}\n */\n class_1.prototype.resetStickyChanged = /**\n * Resets the dirty check for cases where the sticky state has been used without checking.\n * @return {?}\n */\n function () {\n this._hasStickyChanged = false;\n };\n return class_1;\n }(base));\n}\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n/**\n * Cell definition for a CDK table.\n * Captures the template of a column's data row cell as well as cell-specific properties.\n */\nvar CdkCellDef = /** @class */ (function () {\n function CdkCellDef(/** @docs-private */ template) {\n this.template = template;\n }\n CdkCellDef.decorators = [\n { type: Directive, args: [{ selector: '[cdkCellDef]' },] },\n ];\n /** @nocollapse */\n CdkCellDef.ctorParameters = function () { return [\n { type: TemplateRef }\n ]; };\n return CdkCellDef;\n}());\n/**\n * Header cell definition for a CDK table.\n * Captures the template of a column's header cell and as well as cell-specific properties.\n */\nvar CdkHeaderCellDef = /** @class */ (function () {\n function CdkHeaderCellDef(/** @docs-private */ template) {\n this.template = template;\n }\n CdkHeaderCellDef.decorators = [\n { type: Directive, args: [{ selector: '[cdkHeaderCellDef]' },] },\n ];\n /** @nocollapse */\n CdkHeaderCellDef.ctorParameters = function () { return [\n { type: TemplateRef }\n ]; };\n return CdkHeaderCellDef;\n}());\n/**\n * Footer cell definition for a CDK table.\n * Captures the template of a column's footer cell and as well as cell-specific properties.\n */\nvar CdkFooterCellDef = /** @class */ (function () {\n function CdkFooterCellDef(/** @docs-private */ template) {\n this.template = template;\n }\n CdkFooterCellDef.decorators = [\n { type: Directive, args: [{ selector: '[cdkFooterCellDef]' },] },\n ];\n /** @nocollapse */\n CdkFooterCellDef.ctorParameters = function () { return [\n { type: TemplateRef }\n ]; };\n return CdkFooterCellDef;\n}());\n// Boilerplate for applying mixins to CdkColumnDef.\n/**\n * \\@docs-private\n */\nvar \n// Boilerplate for applying mixins to CdkColumnDef.\n/**\n * \\@docs-private\n */\nCdkColumnDefBase = /** @class */ (function () {\n function CdkColumnDefBase() {\n }\n return CdkColumnDefBase;\n}());\n/** @type {?} */\nvar _CdkColumnDefBase = mixinHasStickyInput(CdkColumnDefBase);\n/**\n * Column definition for the CDK table.\n * Defines a set of cells available for a table column.\n */\nvar CdkColumnDef = /** @class */ (function (_super) {\n __extends(CdkColumnDef, _super);\n function CdkColumnDef() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this._stickyEnd = false;\n return _this;\n }\n Object.defineProperty(CdkColumnDef.prototype, \"name\", {\n /** Unique name for this column. */\n get: /**\n * Unique name for this column.\n * @return {?}\n */\n function () {\n return this._name;\n },\n set: /**\n * @param {?} name\n * @return {?}\n */\n function (name) {\n // If the directive is set without a name (updated programatically), then this setter will\n // trigger with an empty string and should not overwrite the programatically set value.\n if (!name) {\n return;\n }\n this._name = name;\n this.cssClassFriendlyName = name.replace(/[^a-z0-9_-]/ig, '-');\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(CdkColumnDef.prototype, \"stickyEnd\", {\n /**\n * Whether this column should be sticky positioned on the end of the row. Should make sure\n * that it mimics the `CanStick` mixin such that `_hasStickyChanged` is set to true if the value\n * has been changed.\n */\n get: /**\n * Whether this column should be sticky positioned on the end of the row. Should make sure\n * that it mimics the `CanStick` mixin such that `_hasStickyChanged` is set to true if the value\n * has been changed.\n * @return {?}\n */\n function () {\n return this._stickyEnd;\n },\n set: /**\n * @param {?} v\n * @return {?}\n */\n function (v) {\n /** @type {?} */\n var prevValue = this._stickyEnd;\n this._stickyEnd = coerceBooleanProperty(v);\n this._hasStickyChanged = prevValue !== this._stickyEnd;\n },\n enumerable: true,\n configurable: true\n });\n CdkColumnDef.decorators = [\n { type: Directive, args: [{\n selector: '[cdkColumnDef]',\n inputs: ['sticky'],\n providers: [{ provide: 'MAT_SORT_HEADER_COLUMN_DEF', useExisting: CdkColumnDef }],\n },] },\n ];\n CdkColumnDef.propDecorators = {\n name: [{ type: Input, args: ['cdkColumnDef',] }],\n stickyEnd: [{ type: Input, args: ['stickyEnd',] }],\n cell: [{ type: ContentChild, args: [CdkCellDef, { static: false },] }],\n headerCell: [{ type: ContentChild, args: [CdkHeaderCellDef, { static: false },] }],\n footerCell: [{ type: ContentChild, args: [CdkFooterCellDef, { static: false },] }]\n };\n return CdkColumnDef;\n}(_CdkColumnDefBase));\n/**\n * Base class for the cells. Adds a CSS classname that identifies the column it renders in.\n */\nvar /**\n * Base class for the cells. Adds a CSS classname that identifies the column it renders in.\n */\nBaseCdkCell = /** @class */ (function () {\n function BaseCdkCell(columnDef, elementRef) {\n /** @type {?} */\n var columnClassName = \"cdk-column-\" + columnDef.cssClassFriendlyName;\n elementRef.nativeElement.classList.add(columnClassName);\n }\n return BaseCdkCell;\n}());\n/**\n * Header cell template container that adds the right classes and role.\n */\nvar CdkHeaderCell = /** @class */ (function (_super) {\n __extends(CdkHeaderCell, _super);\n function CdkHeaderCell(columnDef, elementRef) {\n return _super.call(this, columnDef, elementRef) || this;\n }\n CdkHeaderCell.decorators = [\n { type: Directive, args: [{\n selector: 'cdk-header-cell, th[cdk-header-cell]',\n host: {\n 'class': 'cdk-header-cell',\n 'role': 'columnheader',\n },\n },] },\n ];\n /** @nocollapse */\n CdkHeaderCell.ctorParameters = function () { return [\n { type: CdkColumnDef },\n { type: ElementRef }\n ]; };\n return CdkHeaderCell;\n}(BaseCdkCell));\n/**\n * Footer cell template container that adds the right classes and role.\n */\nvar CdkFooterCell = /** @class */ (function (_super) {\n __extends(CdkFooterCell, _super);\n function CdkFooterCell(columnDef, elementRef) {\n return _super.call(this, columnDef, elementRef) || this;\n }\n CdkFooterCell.decorators = [\n { type: Directive, args: [{\n selector: 'cdk-footer-cell, td[cdk-footer-cell]',\n host: {\n 'class': 'cdk-footer-cell',\n 'role': 'gridcell',\n },\n },] },\n ];\n /** @nocollapse */\n CdkFooterCell.ctorParameters = function () { return [\n { type: CdkColumnDef },\n { type: ElementRef }\n ]; };\n return CdkFooterCell;\n}(BaseCdkCell));\n/**\n * Cell template container that adds the right classes and role.\n */\nvar CdkCell = /** @class */ (function (_super) {\n __extends(CdkCell, _super);\n function CdkCell(columnDef, elementRef) {\n return _super.call(this, columnDef, elementRef) || this;\n }\n CdkCell.decorators = [\n { type: Directive, args: [{\n selector: 'cdk-cell, td[cdk-cell]',\n host: {\n 'class': 'cdk-cell',\n 'role': 'gridcell',\n },\n },] },\n ];\n /** @nocollapse */\n CdkCell.ctorParameters = function () { return [\n { type: CdkColumnDef },\n { type: ElementRef }\n ]; };\n return CdkCell;\n}(BaseCdkCell));\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n/**\n * The row template that can be used by the mat-table. Should not be used outside of the\n * material library.\n * @type {?}\n */\nvar CDK_ROW_TEMPLATE = \"\";\n/**\n * Base class for the CdkHeaderRowDef and CdkRowDef that handles checking their columns inputs\n * for changes and notifying the table.\n * @abstract\n */\nvar /**\n * Base class for the CdkHeaderRowDef and CdkRowDef that handles checking their columns inputs\n * for changes and notifying the table.\n * @abstract\n */\nBaseRowDef = /** @class */ (function () {\n function BaseRowDef(template, _differs) {\n this.template = template;\n this._differs = _differs;\n }\n /**\n * @param {?} changes\n * @return {?}\n */\n BaseRowDef.prototype.ngOnChanges = /**\n * @param {?} changes\n * @return {?}\n */\n function (changes) {\n // Create a new columns differ if one does not yet exist. Initialize it based on initial value\n // of the columns property or an empty array if none is provided.\n if (!this._columnsDiffer) {\n /** @type {?} */\n var columns = (changes['columns'] && changes['columns'].currentValue) || [];\n this._columnsDiffer = this._differs.find(columns).create();\n this._columnsDiffer.diff(columns);\n }\n };\n /**\n * Returns the difference between the current columns and the columns from the last diff, or null\n * if there is no difference.\n */\n /**\n * Returns the difference between the current columns and the columns from the last diff, or null\n * if there is no difference.\n * @return {?}\n */\n BaseRowDef.prototype.getColumnsDiff = /**\n * Returns the difference between the current columns and the columns from the last diff, or null\n * if there is no difference.\n * @return {?}\n */\n function () {\n return this._columnsDiffer.diff(this.columns);\n };\n /** Gets this row def's relevant cell template from the provided column def. */\n /**\n * Gets this row def's relevant cell template from the provided column def.\n * @param {?} column\n * @return {?}\n */\n BaseRowDef.prototype.extractCellTemplate = /**\n * Gets this row def's relevant cell template from the provided column def.\n * @param {?} column\n * @return {?}\n */\n function (column) {\n if (this instanceof CdkHeaderRowDef) {\n return column.headerCell.template;\n }\n if (this instanceof CdkFooterRowDef) {\n return column.footerCell.template;\n }\n else {\n return column.cell.template;\n }\n };\n return BaseRowDef;\n}());\n// Boilerplate for applying mixins to CdkHeaderRowDef.\n/**\n * \\@docs-private\n */\nvar \n// Boilerplate for applying mixins to CdkHeaderRowDef.\n/**\n * \\@docs-private\n */\nCdkHeaderRowDefBase = /** @class */ (function (_super) {\n __extends(CdkHeaderRowDefBase, _super);\n function CdkHeaderRowDefBase() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n return CdkHeaderRowDefBase;\n}(BaseRowDef));\n/** @type {?} */\nvar _CdkHeaderRowDefBase = mixinHasStickyInput(CdkHeaderRowDefBase);\n/**\n * Header row definition for the CDK table.\n * Captures the header row's template and other header properties such as the columns to display.\n */\nvar CdkHeaderRowDef = /** @class */ (function (_super) {\n __extends(CdkHeaderRowDef, _super);\n function CdkHeaderRowDef(template, _differs) {\n return _super.call(this, template, _differs) || this;\n }\n // Prerender fails to recognize that ngOnChanges in a part of this class through inheritance.\n // Explicitly define it so that the method is called as part of the Angular lifecycle.\n // Prerender fails to recognize that ngOnChanges in a part of this class through inheritance.\n // Explicitly define it so that the method is called as part of the Angular lifecycle.\n /**\n * @param {?} changes\n * @return {?}\n */\n CdkHeaderRowDef.prototype.ngOnChanges = \n // Prerender fails to recognize that ngOnChanges in a part of this class through inheritance.\n // Explicitly define it so that the method is called as part of the Angular lifecycle.\n /**\n * @param {?} changes\n * @return {?}\n */\n function (changes) {\n _super.prototype.ngOnChanges.call(this, changes);\n };\n CdkHeaderRowDef.decorators = [\n { type: Directive, args: [{\n selector: '[cdkHeaderRowDef]',\n inputs: ['columns: cdkHeaderRowDef', 'sticky: cdkHeaderRowDefSticky'],\n },] },\n ];\n /** @nocollapse */\n CdkHeaderRowDef.ctorParameters = function () { return [\n { type: TemplateRef },\n { type: IterableDiffers }\n ]; };\n return CdkHeaderRowDef;\n}(_CdkHeaderRowDefBase));\n// Boilerplate for applying mixins to CdkFooterRowDef.\n/**\n * \\@docs-private\n */\nvar \n// Boilerplate for applying mixins to CdkFooterRowDef.\n/**\n * \\@docs-private\n */\nCdkFooterRowDefBase = /** @class */ (function (_super) {\n __extends(CdkFooterRowDefBase, _super);\n function CdkFooterRowDefBase() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n return CdkFooterRowDefBase;\n}(BaseRowDef));\n/** @type {?} */\nvar _CdkFooterRowDefBase = mixinHasStickyInput(CdkFooterRowDefBase);\n/**\n * Footer row definition for the CDK table.\n * Captures the footer row's template and other footer properties such as the columns to display.\n */\nvar CdkFooterRowDef = /** @class */ (function (_super) {\n __extends(CdkFooterRowDef, _super);\n function CdkFooterRowDef(template, _differs) {\n return _super.call(this, template, _differs) || this;\n }\n // Prerender fails to recognize that ngOnChanges in a part of this class through inheritance.\n // Explicitly define it so that the method is called as part of the Angular lifecycle.\n // Prerender fails to recognize that ngOnChanges in a part of this class through inheritance.\n // Explicitly define it so that the method is called as part of the Angular lifecycle.\n /**\n * @param {?} changes\n * @return {?}\n */\n CdkFooterRowDef.prototype.ngOnChanges = \n // Prerender fails to recognize that ngOnChanges in a part of this class through inheritance.\n // Explicitly define it so that the method is called as part of the Angular lifecycle.\n /**\n * @param {?} changes\n * @return {?}\n */\n function (changes) {\n _super.prototype.ngOnChanges.call(this, changes);\n };\n CdkFooterRowDef.decorators = [\n { type: Directive, args: [{\n selector: '[cdkFooterRowDef]',\n inputs: ['columns: cdkFooterRowDef', 'sticky: cdkFooterRowDefSticky'],\n },] },\n ];\n /** @nocollapse */\n CdkFooterRowDef.ctorParameters = function () { return [\n { type: TemplateRef },\n { type: IterableDiffers }\n ]; };\n return CdkFooterRowDef;\n}(_CdkFooterRowDefBase));\n/**\n * Data row definition for the CDK table.\n * Captures the header row's template and other row properties such as the columns to display and\n * a when predicate that describes when this row should be used.\n * @template T\n */\nvar CdkRowDef = /** @class */ (function (_super) {\n __extends(CdkRowDef, _super);\n // TODO(andrewseguin): Add an input for providing a switch function to determine\n // if this template should be used.\n function CdkRowDef(template, _differs) {\n return _super.call(this, template, _differs) || this;\n }\n CdkRowDef.decorators = [\n { type: Directive, args: [{\n selector: '[cdkRowDef]',\n inputs: ['columns: cdkRowDefColumns', 'when: cdkRowDefWhen'],\n },] },\n ];\n /** @nocollapse */\n CdkRowDef.ctorParameters = function () { return [\n { type: TemplateRef },\n { type: IterableDiffers }\n ]; };\n return CdkRowDef;\n}(BaseRowDef));\n/**\n * Outlet for rendering cells inside of a row or header row.\n * \\@docs-private\n */\nvar CdkCellOutlet = /** @class */ (function () {\n function CdkCellOutlet(_viewContainer) {\n this._viewContainer = _viewContainer;\n CdkCellOutlet.mostRecentCellOutlet = this;\n }\n /**\n * @return {?}\n */\n CdkCellOutlet.prototype.ngOnDestroy = /**\n * @return {?}\n */\n function () {\n // If this was the last outlet being rendered in the view, remove the reference\n // from the static property after it has been destroyed to avoid leaking memory.\n if (CdkCellOutlet.mostRecentCellOutlet === this) {\n CdkCellOutlet.mostRecentCellOutlet = null;\n }\n };\n /**\n * Static property containing the latest constructed instance of this class.\n * Used by the CDK table when each CdkHeaderRow and CdkRow component is created using\n * createEmbeddedView. After one of these components are created, this property will provide\n * a handle to provide that component's cells and context. After init, the CdkCellOutlet will\n * construct the cells with the provided context.\n */\n CdkCellOutlet.mostRecentCellOutlet = null;\n CdkCellOutlet.decorators = [\n { type: Directive, args: [{ selector: '[cdkCellOutlet]' },] },\n ];\n /** @nocollapse */\n CdkCellOutlet.ctorParameters = function () { return [\n { type: ViewContainerRef }\n ]; };\n return CdkCellOutlet;\n}());\n/**\n * Header template container that contains the cell outlet. Adds the right class and role.\n */\nvar CdkHeaderRow = /** @class */ (function () {\n function CdkHeaderRow() {\n }\n CdkHeaderRow.decorators = [\n { type: Component, args: [{selector: 'cdk-header-row, tr[cdk-header-row]',\n template: CDK_ROW_TEMPLATE,\n host: {\n 'class': 'cdk-header-row',\n 'role': 'row',\n },\n // See note on CdkTable for explanation on why this uses the default change detection strategy.\n // tslint:disable-next-line:validate-decorators\n changeDetection: ChangeDetectionStrategy.Default,\n encapsulation: ViewEncapsulation.None,\n },] },\n ];\n return CdkHeaderRow;\n}());\n/**\n * Footer template container that contains the cell outlet. Adds the right class and role.\n */\nvar CdkFooterRow = /** @class */ (function () {\n function CdkFooterRow() {\n }\n CdkFooterRow.decorators = [\n { type: Component, args: [{selector: 'cdk-footer-row, tr[cdk-footer-row]',\n template: CDK_ROW_TEMPLATE,\n host: {\n 'class': 'cdk-footer-row',\n 'role': 'row',\n },\n // See note on CdkTable for explanation on why this uses the default change detection strategy.\n // tslint:disable-next-line:validate-decorators\n changeDetection: ChangeDetectionStrategy.Default,\n encapsulation: ViewEncapsulation.None,\n },] },\n ];\n return CdkFooterRow;\n}());\n/**\n * Data row template container that contains the cell outlet. Adds the right class and role.\n */\nvar CdkRow = /** @class */ (function () {\n function CdkRow() {\n }\n CdkRow.decorators = [\n { type: Component, args: [{selector: 'cdk-row, tr[cdk-row]',\n template: CDK_ROW_TEMPLATE,\n host: {\n 'class': 'cdk-row',\n 'role': 'row',\n },\n // See note on CdkTable for explanation on why this uses the default change detection strategy.\n // tslint:disable-next-line:validate-decorators\n changeDetection: ChangeDetectionStrategy.Default,\n encapsulation: ViewEncapsulation.None,\n },] },\n ];\n return CdkRow;\n}());\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n\n/**\n * List of all possible directions that can be used for sticky positioning.\n * \\@docs-private\n * @type {?}\n */\nvar STICKY_DIRECTIONS = ['top', 'bottom', 'left', 'right'];\n/**\n * Applies and removes sticky positioning styles to the `CdkTable` rows and columns cells.\n * \\@docs-private\n */\nvar /**\n * Applies and removes sticky positioning styles to the `CdkTable` rows and columns cells.\n * \\@docs-private\n */\nStickyStyler = /** @class */ (function () {\n /**\n * @param _isNativeHtmlTable Whether the sticky logic should be based on a table\n * that uses the native `` element.\n * @param _stickCellCss The CSS class that will be applied to every row/cell that has\n * sticky positioning applied.\n * @param direction The directionality context of the table (ltr/rtl); affects column positioning\n * by reversing left/right positions.\n * @param _isBrowser Whether the table is currently being rendered on the server or the client.\n */\n function StickyStyler(_isNativeHtmlTable, _stickCellCss, direction, _isBrowser) {\n if (_isBrowser === void 0) { _isBrowser = true; }\n this._isNativeHtmlTable = _isNativeHtmlTable;\n this._stickCellCss = _stickCellCss;\n this.direction = direction;\n this._isBrowser = _isBrowser;\n }\n /**\n * Clears the sticky positioning styles from the row and its cells by resetting the `position`\n * style, setting the zIndex to 0, and unsetting each provided sticky direction.\n * @param rows The list of rows that should be cleared from sticking in the provided directions\n * @param stickyDirections The directions that should no longer be set as sticky on the rows.\n */\n /**\n * Clears the sticky positioning styles from the row and its cells by resetting the `position`\n * style, setting the zIndex to 0, and unsetting each provided sticky direction.\n * @param {?} rows The list of rows that should be cleared from sticking in the provided directions\n * @param {?} stickyDirections The directions that should no longer be set as sticky on the rows.\n * @return {?}\n */\n StickyStyler.prototype.clearStickyPositioning = /**\n * Clears the sticky positioning styles from the row and its cells by resetting the `position`\n * style, setting the zIndex to 0, and unsetting each provided sticky direction.\n * @param {?} rows The list of rows that should be cleared from sticking in the provided directions\n * @param {?} stickyDirections The directions that should no longer be set as sticky on the rows.\n * @return {?}\n */\n function (rows, stickyDirections) {\n for (var _i = 0, rows_1 = rows; _i < rows_1.length; _i++) {\n var row = rows_1[_i];\n // If the row isn't an element (e.g. if it's an `ng-container`),\n // it won't have inline styles or `children` so we skip it.\n if (row.nodeType !== row.ELEMENT_NODE) {\n continue;\n }\n this._removeStickyStyle(row, stickyDirections);\n for (var i = 0; i < row.children.length; i++) {\n /** @type {?} */\n var cell = (/** @type {?} */ (row.children[i]));\n this._removeStickyStyle(cell, stickyDirections);\n }\n }\n };\n /**\n * Applies sticky left and right positions to the cells of each row according to the sticky\n * states of the rendered column definitions.\n * @param rows The rows that should have its set of cells stuck according to the sticky states.\n * @param stickyStartStates A list of boolean states where each state represents whether the cell\n * in this index position should be stuck to the start of the row.\n * @param stickyEndStates A list of boolean states where each state represents whether the cell\n * in this index position should be stuck to the end of the row.\n */\n /**\n * Applies sticky left and right positions to the cells of each row according to the sticky\n * states of the rendered column definitions.\n * @param {?} rows The rows that should have its set of cells stuck according to the sticky states.\n * @param {?} stickyStartStates A list of boolean states where each state represents whether the cell\n * in this index position should be stuck to the start of the row.\n * @param {?} stickyEndStates A list of boolean states where each state represents whether the cell\n * in this index position should be stuck to the end of the row.\n * @return {?}\n */\n StickyStyler.prototype.updateStickyColumns = /**\n * Applies sticky left and right positions to the cells of each row according to the sticky\n * states of the rendered column definitions.\n * @param {?} rows The rows that should have its set of cells stuck according to the sticky states.\n * @param {?} stickyStartStates A list of boolean states where each state represents whether the cell\n * in this index position should be stuck to the start of the row.\n * @param {?} stickyEndStates A list of boolean states where each state represents whether the cell\n * in this index position should be stuck to the end of the row.\n * @return {?}\n */\n function (rows, stickyStartStates, stickyEndStates) {\n /** @type {?} */\n var hasStickyColumns = stickyStartStates.some((/**\n * @param {?} state\n * @return {?}\n */\n function (state) { return state; })) || stickyEndStates.some((/**\n * @param {?} state\n * @return {?}\n */\n function (state) { return state; }));\n if (!rows.length || !hasStickyColumns || !this._isBrowser) {\n return;\n }\n /** @type {?} */\n var firstRow = rows[0];\n /** @type {?} */\n var numCells = firstRow.children.length;\n /** @type {?} */\n var cellWidths = this._getCellWidths(firstRow);\n /** @type {?} */\n var startPositions = this._getStickyStartColumnPositions(cellWidths, stickyStartStates);\n /** @type {?} */\n var endPositions = this._getStickyEndColumnPositions(cellWidths, stickyEndStates);\n /** @type {?} */\n var isRtl = this.direction === 'rtl';\n for (var _i = 0, rows_2 = rows; _i < rows_2.length; _i++) {\n var row = rows_2[_i];\n for (var i = 0; i < numCells; i++) {\n /** @type {?} */\n var cell = (/** @type {?} */ (row.children[i]));\n if (stickyStartStates[i]) {\n this._addStickyStyle(cell, isRtl ? 'right' : 'left', startPositions[i]);\n }\n if (stickyEndStates[i]) {\n this._addStickyStyle(cell, isRtl ? 'left' : 'right', endPositions[i]);\n }\n }\n }\n };\n /**\n * Applies sticky positioning to the row's cells if using the native table layout, and to the\n * row itself otherwise.\n * @param rowsToStick The list of rows that should be stuck according to their corresponding\n * sticky state and to the provided top or bottom position.\n * @param stickyStates A list of boolean states where each state represents whether the row\n * should be stuck in the particular top or bottom position.\n * @param position The position direction in which the row should be stuck if that row should be\n * sticky.\n *\n */\n /**\n * Applies sticky positioning to the row's cells if using the native table layout, and to the\n * row itself otherwise.\n * @param {?} rowsToStick The list of rows that should be stuck according to their corresponding\n * sticky state and to the provided top or bottom position.\n * @param {?} stickyStates A list of boolean states where each state represents whether the row\n * should be stuck in the particular top or bottom position.\n * @param {?} position The position direction in which the row should be stuck if that row should be\n * sticky.\n *\n * @return {?}\n */\n StickyStyler.prototype.stickRows = /**\n * Applies sticky positioning to the row's cells if using the native table layout, and to the\n * row itself otherwise.\n * @param {?} rowsToStick The list of rows that should be stuck according to their corresponding\n * sticky state and to the provided top or bottom position.\n * @param {?} stickyStates A list of boolean states where each state represents whether the row\n * should be stuck in the particular top or bottom position.\n * @param {?} position The position direction in which the row should be stuck if that row should be\n * sticky.\n *\n * @return {?}\n */\n function (rowsToStick, stickyStates, position) {\n // Since we can't measure the rows on the server, we can't stick the rows properly.\n if (!this._isBrowser) {\n return;\n }\n // If positioning the rows to the bottom, reverse their order when evaluating the sticky\n // position such that the last row stuck will be \"bottom: 0px\" and so on.\n /** @type {?} */\n var rows = position === 'bottom' ? rowsToStick.reverse() : rowsToStick;\n /** @type {?} */\n var stickyHeight = 0;\n for (var rowIndex = 0; rowIndex < rows.length; rowIndex++) {\n if (!stickyStates[rowIndex]) {\n continue;\n }\n /** @type {?} */\n var row = rows[rowIndex];\n if (this._isNativeHtmlTable) {\n for (var j = 0; j < row.children.length; j++) {\n /** @type {?} */\n var cell = (/** @type {?} */ (row.children[j]));\n this._addStickyStyle(cell, position, stickyHeight);\n }\n }\n else {\n // Flex does not respect the stick positioning on the cells, needs to be applied to the row.\n // If this is applied on a native table, Safari causes the header to fly in wrong direction.\n this._addStickyStyle(row, position, stickyHeight);\n }\n if (rowIndex === rows.length - 1) {\n // prevent unnecessary reflow from getBoundingClientRect()\n return;\n }\n stickyHeight += row.getBoundingClientRect().height;\n }\n };\n /**\n * When using the native table in Safari, sticky footer cells do not stick. The only way to stick\n * footer rows is to apply sticky styling to the tfoot container. This should only be done if\n * all footer rows are sticky. If not all footer rows are sticky, remove sticky positioning from\n * the tfoot element.\n */\n /**\n * When using the native table in Safari, sticky footer cells do not stick. The only way to stick\n * footer rows is to apply sticky styling to the tfoot container. This should only be done if\n * all footer rows are sticky. If not all footer rows are sticky, remove sticky positioning from\n * the tfoot element.\n * @param {?} tableElement\n * @param {?} stickyStates\n * @return {?}\n */\n StickyStyler.prototype.updateStickyFooterContainer = /**\n * When using the native table in Safari, sticky footer cells do not stick. The only way to stick\n * footer rows is to apply sticky styling to the tfoot container. This should only be done if\n * all footer rows are sticky. If not all footer rows are sticky, remove sticky positioning from\n * the tfoot element.\n * @param {?} tableElement\n * @param {?} stickyStates\n * @return {?}\n */\n function (tableElement, stickyStates) {\n if (!this._isNativeHtmlTable) {\n return;\n }\n /** @type {?} */\n var tfoot = (/** @type {?} */ (tableElement.querySelector('tfoot')));\n if (stickyStates.some((/**\n * @param {?} state\n * @return {?}\n */\n function (state) { return !state; }))) {\n this._removeStickyStyle(tfoot, ['bottom']);\n }\n else {\n this._addStickyStyle(tfoot, 'bottom', 0);\n }\n };\n /**\n * Removes the sticky style on the element by removing the sticky cell CSS class, re-evaluating\n * the zIndex, removing each of the provided sticky directions, and removing the\n * sticky position if there are no more directions.\n */\n /**\n * Removes the sticky style on the element by removing the sticky cell CSS class, re-evaluating\n * the zIndex, removing each of the provided sticky directions, and removing the\n * sticky position if there are no more directions.\n * @param {?} element\n * @param {?} stickyDirections\n * @return {?}\n */\n StickyStyler.prototype._removeStickyStyle = /**\n * Removes the sticky style on the element by removing the sticky cell CSS class, re-evaluating\n * the zIndex, removing each of the provided sticky directions, and removing the\n * sticky position if there are no more directions.\n * @param {?} element\n * @param {?} stickyDirections\n * @return {?}\n */\n function (element, stickyDirections) {\n for (var _i = 0, stickyDirections_1 = stickyDirections; _i < stickyDirections_1.length; _i++) {\n var dir = stickyDirections_1[_i];\n element.style[dir] = '';\n }\n element.style.zIndex = this._getCalculatedZIndex(element);\n // If the element no longer has any more sticky directions, remove sticky positioning and\n // the sticky CSS class.\n /** @type {?} */\n var hasDirection = STICKY_DIRECTIONS.some((/**\n * @param {?} dir\n * @return {?}\n */\n function (dir) { return !!element.style[dir]; }));\n if (!hasDirection) {\n element.style.position = '';\n element.classList.remove(this._stickCellCss);\n }\n };\n /**\n * Adds the sticky styling to the element by adding the sticky style class, changing position\n * to be sticky (and -webkit-sticky), setting the appropriate zIndex, and adding a sticky\n * direction and value.\n */\n /**\n * Adds the sticky styling to the element by adding the sticky style class, changing position\n * to be sticky (and -webkit-sticky), setting the appropriate zIndex, and adding a sticky\n * direction and value.\n * @param {?} element\n * @param {?} dir\n * @param {?} dirValue\n * @return {?}\n */\n StickyStyler.prototype._addStickyStyle = /**\n * Adds the sticky styling to the element by adding the sticky style class, changing position\n * to be sticky (and -webkit-sticky), setting the appropriate zIndex, and adding a sticky\n * direction and value.\n * @param {?} element\n * @param {?} dir\n * @param {?} dirValue\n * @return {?}\n */\n function (element, dir, dirValue) {\n element.classList.add(this._stickCellCss);\n element.style[dir] = dirValue + \"px\";\n element.style.cssText += 'position: -webkit-sticky; position: sticky; ';\n element.style.zIndex = this._getCalculatedZIndex(element);\n };\n /**\n * Calculate what the z-index should be for the element, depending on what directions (top,\n * bottom, left, right) have been set. It should be true that elements with a top direction\n * should have the highest index since these are elements like a table header. If any of those\n * elements are also sticky in another direction, then they should appear above other elements\n * that are only sticky top (e.g. a sticky column on a sticky header). Bottom-sticky elements\n * (e.g. footer rows) should then be next in the ordering such that they are below the header\n * but above any non-sticky elements. Finally, left/right sticky elements (e.g. sticky columns)\n * should minimally increment so that they are above non-sticky elements but below top and bottom\n * elements.\n */\n /**\n * Calculate what the z-index should be for the element, depending on what directions (top,\n * bottom, left, right) have been set. It should be true that elements with a top direction\n * should have the highest index since these are elements like a table header. If any of those\n * elements are also sticky in another direction, then they should appear above other elements\n * that are only sticky top (e.g. a sticky column on a sticky header). Bottom-sticky elements\n * (e.g. footer rows) should then be next in the ordering such that they are below the header\n * but above any non-sticky elements. Finally, left/right sticky elements (e.g. sticky columns)\n * should minimally increment so that they are above non-sticky elements but below top and bottom\n * elements.\n * @param {?} element\n * @return {?}\n */\n StickyStyler.prototype._getCalculatedZIndex = /**\n * Calculate what the z-index should be for the element, depending on what directions (top,\n * bottom, left, right) have been set. It should be true that elements with a top direction\n * should have the highest index since these are elements like a table header. If any of those\n * elements are also sticky in another direction, then they should appear above other elements\n * that are only sticky top (e.g. a sticky column on a sticky header). Bottom-sticky elements\n * (e.g. footer rows) should then be next in the ordering such that they are below the header\n * but above any non-sticky elements. Finally, left/right sticky elements (e.g. sticky columns)\n * should minimally increment so that they are above non-sticky elements but below top and bottom\n * elements.\n * @param {?} element\n * @return {?}\n */\n function (element) {\n /** @type {?} */\n var zIndexIncrements = {\n top: 100,\n bottom: 10,\n left: 1,\n right: 1,\n };\n /** @type {?} */\n var zIndex = 0;\n for (var _i = 0, STICKY_DIRECTIONS_1 = STICKY_DIRECTIONS; _i < STICKY_DIRECTIONS_1.length; _i++) {\n var dir = STICKY_DIRECTIONS_1[_i];\n if (element.style[dir]) {\n zIndex += zIndexIncrements[dir];\n }\n }\n return zIndex ? \"\" + zIndex : '';\n };\n /** Gets the widths for each cell in the provided row. */\n /**\n * Gets the widths for each cell in the provided row.\n * @param {?} row\n * @return {?}\n */\n StickyStyler.prototype._getCellWidths = /**\n * Gets the widths for each cell in the provided row.\n * @param {?} row\n * @return {?}\n */\n function (row) {\n /** @type {?} */\n var cellWidths = [];\n /** @type {?} */\n var firstRowCells = row.children;\n for (var i = 0; i < firstRowCells.length; i++) {\n /** @type {?} */\n var cell = (/** @type {?} */ (firstRowCells[i]));\n cellWidths.push(cell.getBoundingClientRect().width);\n }\n return cellWidths;\n };\n /**\n * Determines the left and right positions of each sticky column cell, which will be the\n * accumulation of all sticky column cell widths to the left and right, respectively.\n * Non-sticky cells do not need to have a value set since their positions will not be applied.\n */\n /**\n * Determines the left and right positions of each sticky column cell, which will be the\n * accumulation of all sticky column cell widths to the left and right, respectively.\n * Non-sticky cells do not need to have a value set since their positions will not be applied.\n * @param {?} widths\n * @param {?} stickyStates\n * @return {?}\n */\n StickyStyler.prototype._getStickyStartColumnPositions = /**\n * Determines the left and right positions of each sticky column cell, which will be the\n * accumulation of all sticky column cell widths to the left and right, respectively.\n * Non-sticky cells do not need to have a value set since their positions will not be applied.\n * @param {?} widths\n * @param {?} stickyStates\n * @return {?}\n */\n function (widths, stickyStates) {\n /** @type {?} */\n var positions = [];\n /** @type {?} */\n var nextPosition = 0;\n for (var i = 0; i < widths.length; i++) {\n if (stickyStates[i]) {\n positions[i] = nextPosition;\n nextPosition += widths[i];\n }\n }\n return positions;\n };\n /**\n * Determines the left and right positions of each sticky column cell, which will be the\n * accumulation of all sticky column cell widths to the left and right, respectively.\n * Non-sticky cells do not need to have a value set since their positions will not be applied.\n */\n /**\n * Determines the left and right positions of each sticky column cell, which will be the\n * accumulation of all sticky column cell widths to the left and right, respectively.\n * Non-sticky cells do not need to have a value set since their positions will not be applied.\n * @param {?} widths\n * @param {?} stickyStates\n * @return {?}\n */\n StickyStyler.prototype._getStickyEndColumnPositions = /**\n * Determines the left and right positions of each sticky column cell, which will be the\n * accumulation of all sticky column cell widths to the left and right, respectively.\n * Non-sticky cells do not need to have a value set since their positions will not be applied.\n * @param {?} widths\n * @param {?} stickyStates\n * @return {?}\n */\n function (widths, stickyStates) {\n /** @type {?} */\n var positions = [];\n /** @type {?} */\n var nextPosition = 0;\n for (var i = widths.length; i > 0; i--) {\n if (stickyStates[i]) {\n positions[i] = nextPosition;\n nextPosition += widths[i];\n }\n }\n return positions;\n };\n return StickyStyler;\n}());\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n\n/**\n * Returns an error to be thrown when attempting to find an unexisting column.\n * \\@docs-private\n * @param {?} id Id whose lookup failed.\n * @return {?}\n */\nfunction getTableUnknownColumnError(id) {\n return Error(\"Could not find column with id \\\"\" + id + \"\\\".\");\n}\n/**\n * Returns an error to be thrown when two column definitions have the same name.\n * \\@docs-private\n * @param {?} name\n * @return {?}\n */\nfunction getTableDuplicateColumnNameError(name) {\n return Error(\"Duplicate column definition name provided: \\\"\" + name + \"\\\".\");\n}\n/**\n * Returns an error to be thrown when there are multiple rows that are missing a when function.\n * \\@docs-private\n * @return {?}\n */\nfunction getTableMultipleDefaultRowDefsError() {\n return Error(\"There can only be one default row without a when predicate function.\");\n}\n/**\n * Returns an error to be thrown when there are no matching row defs for a particular set of data.\n * \\@docs-private\n * @param {?} data\n * @return {?}\n */\nfunction getTableMissingMatchingRowDefError(data) {\n return Error(\"Could not find a matching row definition for the\" +\n (\"provided row data: \" + JSON.stringify(data)));\n}\n/**\n * Returns an error to be thrown when there is no row definitions present in the content.\n * \\@docs-private\n * @return {?}\n */\nfunction getTableMissingRowDefsError() {\n return Error('Missing definitions for header, footer, and row; ' +\n 'cannot determine which columns should be rendered.');\n}\n/**\n * Returns an error to be thrown when the data source does not match the compatible types.\n * \\@docs-private\n * @return {?}\n */\nfunction getTableUnknownDataSourceError() {\n return Error(\"Provided data source did not match an array, Observable, or DataSource\");\n}\n/**\n * Returns an error to be thrown when the text column cannot find a parent table to inject.\n * \\@docs-private\n * @return {?}\n */\nfunction getTableTextColumnMissingParentTableError() {\n return Error(\"Text column could not find a parent table for registration.\");\n}\n/**\n * Returns an error to be thrown when a table text column doesn't have a name.\n * \\@docs-private\n * @return {?}\n */\nfunction getTableTextColumnMissingNameError() {\n return Error(\"Table text column must have a name.\");\n}\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n/**\n * Provides a handle for the table to grab the view container's ng-container to insert data rows.\n * \\@docs-private\n */\nvar DataRowOutlet = /** @class */ (function () {\n function DataRowOutlet(viewContainer, elementRef) {\n this.viewContainer = viewContainer;\n this.elementRef = elementRef;\n }\n DataRowOutlet.decorators = [\n { type: Directive, args: [{ selector: '[rowOutlet]' },] },\n ];\n /** @nocollapse */\n DataRowOutlet.ctorParameters = function () { return [\n { type: ViewContainerRef },\n { type: ElementRef }\n ]; };\n return DataRowOutlet;\n}());\n/**\n * Provides a handle for the table to grab the view container's ng-container to insert the header.\n * \\@docs-private\n */\nvar HeaderRowOutlet = /** @class */ (function () {\n function HeaderRowOutlet(viewContainer, elementRef) {\n this.viewContainer = viewContainer;\n this.elementRef = elementRef;\n }\n HeaderRowOutlet.decorators = [\n { type: Directive, args: [{ selector: '[headerRowOutlet]' },] },\n ];\n /** @nocollapse */\n HeaderRowOutlet.ctorParameters = function () { return [\n { type: ViewContainerRef },\n { type: ElementRef }\n ]; };\n return HeaderRowOutlet;\n}());\n/**\n * Provides a handle for the table to grab the view container's ng-container to insert the footer.\n * \\@docs-private\n */\nvar FooterRowOutlet = /** @class */ (function () {\n function FooterRowOutlet(viewContainer, elementRef) {\n this.viewContainer = viewContainer;\n this.elementRef = elementRef;\n }\n FooterRowOutlet.decorators = [\n { type: Directive, args: [{ selector: '[footerRowOutlet]' },] },\n ];\n /** @nocollapse */\n FooterRowOutlet.ctorParameters = function () { return [\n { type: ViewContainerRef },\n { type: ElementRef }\n ]; };\n return FooterRowOutlet;\n}());\n/**\n * The table template that can be used by the mat-table. Should not be used outside of the\n * material library.\n * \\@docs-private\n * @type {?}\n */\nvar CDK_TABLE_TEMPLATE = \n// Note that according to MDN, the `caption` element has to be projected as the **first**\n// element in the table. See https://developer.mozilla.org/en-US/docs/Web/HTML/Element/caption\n\"\\n \\n \\n \\n \\n\";\n/**\n * Class used to conveniently type the embedded view ref for rows with a context.\n * \\@docs-private\n * @abstract\n * @template T\n */\nvar /**\n * Class used to conveniently type the embedded view ref for rows with a context.\n * \\@docs-private\n * @abstract\n * @template T\n */\nRowViewRef = /** @class */ (function (_super) {\n __extends(RowViewRef, _super);\n function RowViewRef() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n return RowViewRef;\n}(EmbeddedViewRef));\n/**\n * A data table that can render a header row, data rows, and a footer row.\n * Uses the dataSource input to determine the data to be rendered. The data can be provided either\n * as a data array, an Observable stream that emits the data array to render, or a DataSource with a\n * connect function that will return an Observable stream that emits the data array to render.\n * @template T\n */\nvar CdkTable = /** @class */ (function () {\n function CdkTable(_differs, _changeDetectorRef, _elementRef, role, _dir, _document, _platform) {\n this._differs = _differs;\n this._changeDetectorRef = _changeDetectorRef;\n this._elementRef = _elementRef;\n this._dir = _dir;\n this._platform = _platform;\n /**\n * Subject that emits when the component has been destroyed.\n */\n this._onDestroy = new Subject();\n /**\n * Map of all the user's defined columns (header, data, and footer cell template) identified by\n * name. Collection populated by the column definitions gathered by `ContentChildren` as well as\n * any custom column definitions added to `_customColumnDefs`.\n */\n this._columnDefsByName = new Map();\n /**\n * Column definitions that were defined outside of the direct content children of the table.\n * These will be defined when, e.g., creating a wrapper around the cdkTable that has\n * column definitions as *its* content child.\n */\n this._customColumnDefs = new Set();\n /**\n * Data row definitions that were defined outside of the direct content children of the table.\n * These will be defined when, e.g., creating a wrapper around the cdkTable that has\n * built-in data rows as *its* content child.\n */\n this._customRowDefs = new Set();\n /**\n * Header row definitions that were defined outside of the direct content children of the table.\n * These will be defined when, e.g., creating a wrapper around the cdkTable that has\n * built-in header rows as *its* content child.\n */\n this._customHeaderRowDefs = new Set();\n /**\n * Footer row definitions that were defined outside of the direct content children of the table.\n * These will be defined when, e.g., creating a wrapper around the cdkTable that has a\n * built-in footer row as *its* content child.\n */\n this._customFooterRowDefs = new Set();\n /**\n * Whether the header row definition has been changed. Triggers an update to the header row after\n * content is checked. Initialized as true so that the table renders the initial set of rows.\n */\n this._headerRowDefChanged = true;\n /**\n * Whether the footer row definition has been changed. Triggers an update to the footer row after\n * content is checked. Initialized as true so that the table renders the initial set of rows.\n */\n this._footerRowDefChanged = true;\n /**\n * Cache of the latest rendered `RenderRow` objects as a map for easy retrieval when constructing\n * a new list of `RenderRow` objects for rendering rows. Since the new list is constructed with\n * the cached `RenderRow` objects when possible, the row identity is preserved when the data\n * and row template matches, which allows the `IterableDiffer` to check rows by reference\n * and understand which rows are added/moved/removed.\n *\n * Implemented as a map of maps where the first key is the `data: T` object and the second is the\n * `CdkRowDef` object. With the two keys, the cache points to a `RenderRow` object that\n * contains an array of created pairs. The array is necessary to handle cases where the data\n * array contains multiple duplicate data objects and each instantiated `RenderRow` must be\n * stored.\n */\n this._cachedRenderRowsMap = new Map();\n /**\n * CSS class added to any row or cell that has sticky positioning applied. May be overriden by\n * table subclasses.\n */\n this.stickyCssClass = 'cdk-table-sticky';\n this._multiTemplateDataRows = false;\n // TODO(andrewseguin): Remove max value as the end index\n // and instead calculate the view on init and scroll.\n /**\n * Stream containing the latest information on what rows are being displayed on screen.\n * Can be used by the data source to as a heuristic of what data should be provided.\n *\n * \\@docs-private\n */\n this.viewChange = new BehaviorSubject({ start: 0, end: Number.MAX_VALUE });\n if (!role) {\n this._elementRef.nativeElement.setAttribute('role', 'grid');\n }\n this._document = _document;\n this._isNativeHtmlTable = this._elementRef.nativeElement.nodeName === 'TABLE';\n }\n Object.defineProperty(CdkTable.prototype, \"trackBy\", {\n /**\n * Tracking function that will be used to check the differences in data changes. Used similarly\n * to `ngFor` `trackBy` function. Optimize row operations by identifying a row based on its data\n * relative to the function to know if a row should be added/removed/moved.\n * Accepts a function that takes two parameters, `index` and `item`.\n */\n get: /**\n * Tracking function that will be used to check the differences in data changes. Used similarly\n * to `ngFor` `trackBy` function. Optimize row operations by identifying a row based on its data\n * relative to the function to know if a row should be added/removed/moved.\n * Accepts a function that takes two parameters, `index` and `item`.\n * @return {?}\n */\n function () {\n return this._trackByFn;\n },\n set: /**\n * @param {?} fn\n * @return {?}\n */\n function (fn) {\n if (isDevMode() && fn != null && typeof fn !== 'function' && (/** @type {?} */ (console)) &&\n (/** @type {?} */ (console.warn))) {\n console.warn(\"trackBy must be a function, but received \" + JSON.stringify(fn) + \".\");\n }\n this._trackByFn = fn;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(CdkTable.prototype, \"dataSource\", {\n /**\n * The table's source of data, which can be provided in three ways (in order of complexity):\n * - Simple data array (each object represents one table row)\n * - Stream that emits a data array each time the array changes\n * - `DataSource` object that implements the connect/disconnect interface.\n *\n * If a data array is provided, the table must be notified when the array's objects are\n * added, removed, or moved. This can be done by calling the `renderRows()` function which will\n * render the diff since the last table render. If the data array reference is changed, the table\n * will automatically trigger an update to the rows.\n *\n * When providing an Observable stream, the table will trigger an update automatically when the\n * stream emits a new array of data.\n *\n * Finally, when providing a `DataSource` object, the table will use the Observable stream\n * provided by the connect function and trigger updates when that stream emits new data array\n * values. During the table's ngOnDestroy or when the data source is removed from the table, the\n * table will call the DataSource's `disconnect` function (may be useful for cleaning up any\n * subscriptions registered during the connect process).\n */\n get: /**\n * The table's source of data, which can be provided in three ways (in order of complexity):\n * - Simple data array (each object represents one table row)\n * - Stream that emits a data array each time the array changes\n * - `DataSource` object that implements the connect/disconnect interface.\n *\n * If a data array is provided, the table must be notified when the array's objects are\n * added, removed, or moved. This can be done by calling the `renderRows()` function which will\n * render the diff since the last table render. If the data array reference is changed, the table\n * will automatically trigger an update to the rows.\n *\n * When providing an Observable stream, the table will trigger an update automatically when the\n * stream emits a new array of data.\n *\n * Finally, when providing a `DataSource` object, the table will use the Observable stream\n * provided by the connect function and trigger updates when that stream emits new data array\n * values. During the table's ngOnDestroy or when the data source is removed from the table, the\n * table will call the DataSource's `disconnect` function (may be useful for cleaning up any\n * subscriptions registered during the connect process).\n * @return {?}\n */\n function () {\n return this._dataSource;\n },\n set: /**\n * @param {?} dataSource\n * @return {?}\n */\n function (dataSource) {\n if (this._dataSource !== dataSource) {\n this._switchDataSource(dataSource);\n }\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(CdkTable.prototype, \"multiTemplateDataRows\", {\n /**\n * Whether to allow multiple rows per data object by evaluating which rows evaluate their 'when'\n * predicate to true. If `multiTemplateDataRows` is false, which is the default value, then each\n * dataobject will render the first row that evaluates its when predicate to true, in the order\n * defined in the table, or otherwise the default row which does not have a when predicate.\n */\n get: /**\n * Whether to allow multiple rows per data object by evaluating which rows evaluate their 'when'\n * predicate to true. If `multiTemplateDataRows` is false, which is the default value, then each\n * dataobject will render the first row that evaluates its when predicate to true, in the order\n * defined in the table, or otherwise the default row which does not have a when predicate.\n * @return {?}\n */\n function () {\n return this._multiTemplateDataRows;\n },\n set: /**\n * @param {?} v\n * @return {?}\n */\n function (v) {\n this._multiTemplateDataRows = coerceBooleanProperty(v);\n // In Ivy if this value is set via a static attribute (e.g.
),\n // this setter will be invoked before the row outlet has been defined hence the null check.\n if (this._rowOutlet && this._rowOutlet.viewContainer.length) {\n this._forceRenderDataRows();\n }\n },\n enumerable: true,\n configurable: true\n });\n /**\n * @return {?}\n */\n CdkTable.prototype.ngOnInit = /**\n * @return {?}\n */\n function () {\n var _this = this;\n this._setupStickyStyler();\n if (this._isNativeHtmlTable) {\n this._applyNativeTableSections();\n }\n // Set up the trackBy function so that it uses the `RenderRow` as its identity by default. If\n // the user has provided a custom trackBy, return the result of that function as evaluated\n // with the values of the `RenderRow`'s data and index.\n this._dataDiffer = this._differs.find([]).create((/**\n * @param {?} _i\n * @param {?} dataRow\n * @return {?}\n */\n function (_i, dataRow) {\n return _this.trackBy ? _this.trackBy(dataRow.dataIndex, dataRow.data) : dataRow;\n }));\n };\n /**\n * @return {?}\n */\n CdkTable.prototype.ngAfterContentChecked = /**\n * @return {?}\n */\n function () {\n // Cache the row and column definitions gathered by ContentChildren and programmatic injection.\n this._cacheRowDefs();\n this._cacheColumnDefs();\n // Make sure that the user has at least added header, footer, or data row def.\n if (!this._headerRowDefs.length && !this._footerRowDefs.length && !this._rowDefs.length) {\n throw getTableMissingRowDefsError();\n }\n // Render updates if the list of columns have been changed for the header, row, or footer defs.\n this._renderUpdatedColumns();\n // If the header row definition has been changed, trigger a render to the header row.\n if (this._headerRowDefChanged) {\n this._forceRenderHeaderRows();\n this._headerRowDefChanged = false;\n }\n // If the footer row definition has been changed, trigger a render to the footer row.\n if (this._footerRowDefChanged) {\n this._forceRenderFooterRows();\n this._footerRowDefChanged = false;\n }\n // If there is a data source and row definitions, connect to the data source unless a\n // connection has already been made.\n if (this.dataSource && this._rowDefs.length > 0 && !this._renderChangeSubscription) {\n this._observeRenderChanges();\n }\n this._checkStickyStates();\n };\n /**\n * @return {?}\n */\n CdkTable.prototype.ngOnDestroy = /**\n * @return {?}\n */\n function () {\n this._rowOutlet.viewContainer.clear();\n this._headerRowOutlet.viewContainer.clear();\n this._footerRowOutlet.viewContainer.clear();\n this._cachedRenderRowsMap.clear();\n this._onDestroy.next();\n this._onDestroy.complete();\n if (isDataSource(this.dataSource)) {\n this.dataSource.disconnect(this);\n }\n };\n /**\n * Renders rows based on the table's latest set of data, which was either provided directly as an\n * input or retrieved through an Observable stream (directly or from a DataSource).\n * Checks for differences in the data since the last diff to perform only the necessary\n * changes (add/remove/move rows).\n *\n * If the table's data source is a DataSource or Observable, this will be invoked automatically\n * each time the provided Observable stream emits a new data array. Otherwise if your data is\n * an array, this function will need to be called to render any changes.\n */\n /**\n * Renders rows based on the table's latest set of data, which was either provided directly as an\n * input or retrieved through an Observable stream (directly or from a DataSource).\n * Checks for differences in the data since the last diff to perform only the necessary\n * changes (add/remove/move rows).\n *\n * If the table's data source is a DataSource or Observable, this will be invoked automatically\n * each time the provided Observable stream emits a new data array. Otherwise if your data is\n * an array, this function will need to be called to render any changes.\n * @return {?}\n */\n CdkTable.prototype.renderRows = /**\n * Renders rows based on the table's latest set of data, which was either provided directly as an\n * input or retrieved through an Observable stream (directly or from a DataSource).\n * Checks for differences in the data since the last diff to perform only the necessary\n * changes (add/remove/move rows).\n *\n * If the table's data source is a DataSource or Observable, this will be invoked automatically\n * each time the provided Observable stream emits a new data array. Otherwise if your data is\n * an array, this function will need to be called to render any changes.\n * @return {?}\n */\n function () {\n var _this = this;\n this._renderRows = this._getAllRenderRows();\n /** @type {?} */\n var changes = this._dataDiffer.diff(this._renderRows);\n if (!changes) {\n return;\n }\n /** @type {?} */\n var viewContainer = this._rowOutlet.viewContainer;\n changes.forEachOperation((/**\n * @param {?} record\n * @param {?} prevIndex\n * @param {?} currentIndex\n * @return {?}\n */\n function (record, prevIndex, currentIndex) {\n if (record.previousIndex == null) {\n _this._insertRow(record.item, (/** @type {?} */ (currentIndex)));\n }\n else if (currentIndex == null) {\n viewContainer.remove((/** @type {?} */ (prevIndex)));\n }\n else {\n /** @type {?} */\n var view = (/** @type {?} */ (viewContainer.get((/** @type {?} */ (prevIndex)))));\n viewContainer.move((/** @type {?} */ (view)), currentIndex);\n }\n }));\n // Update the meta context of a row's context data (index, count, first, last, ...)\n this._updateRowIndexContext();\n // Update rows that did not get added/removed/moved but may have had their identity changed,\n // e.g. if trackBy matched data on some property but the actual data reference changed.\n changes.forEachIdentityChange((/**\n * @param {?} record\n * @return {?}\n */\n function (record) {\n /** @type {?} */\n var rowView = (/** @type {?} */ (viewContainer.get((/** @type {?} */ (record.currentIndex)))));\n rowView.context.$implicit = record.item.data;\n }));\n this.updateStickyColumnStyles();\n };\n /**\n * Sets the header row definition to be used. Overrides the header row definition gathered by\n * using `ContentChild`, if one exists. Sets a flag that will re-render the header row after the\n * table's content is checked.\n * @docs-private\n * @deprecated Use `addHeaderRowDef` and `removeHeaderRowDef` instead\n * @breaking-change 8.0.0\n */\n /**\n * Sets the header row definition to be used. Overrides the header row definition gathered by\n * using `ContentChild`, if one exists. Sets a flag that will re-render the header row after the\n * table's content is checked.\n * \\@docs-private\n * @deprecated Use `addHeaderRowDef` and `removeHeaderRowDef` instead\n * \\@breaking-change 8.0.0\n * @param {?} headerRowDef\n * @return {?}\n */\n CdkTable.prototype.setHeaderRowDef = /**\n * Sets the header row definition to be used. Overrides the header row definition gathered by\n * using `ContentChild`, if one exists. Sets a flag that will re-render the header row after the\n * table's content is checked.\n * \\@docs-private\n * @deprecated Use `addHeaderRowDef` and `removeHeaderRowDef` instead\n * \\@breaking-change 8.0.0\n * @param {?} headerRowDef\n * @return {?}\n */\n function (headerRowDef) {\n this._customHeaderRowDefs = new Set([headerRowDef]);\n this._headerRowDefChanged = true;\n };\n /**\n * Sets the footer row definition to be used. Overrides the footer row definition gathered by\n * using `ContentChild`, if one exists. Sets a flag that will re-render the footer row after the\n * table's content is checked.\n * @docs-private\n * @deprecated Use `addFooterRowDef` and `removeFooterRowDef` instead\n * @breaking-change 8.0.0\n */\n /**\n * Sets the footer row definition to be used. Overrides the footer row definition gathered by\n * using `ContentChild`, if one exists. Sets a flag that will re-render the footer row after the\n * table's content is checked.\n * \\@docs-private\n * @deprecated Use `addFooterRowDef` and `removeFooterRowDef` instead\n * \\@breaking-change 8.0.0\n * @param {?} footerRowDef\n * @return {?}\n */\n CdkTable.prototype.setFooterRowDef = /**\n * Sets the footer row definition to be used. Overrides the footer row definition gathered by\n * using `ContentChild`, if one exists. Sets a flag that will re-render the footer row after the\n * table's content is checked.\n * \\@docs-private\n * @deprecated Use `addFooterRowDef` and `removeFooterRowDef` instead\n * \\@breaking-change 8.0.0\n * @param {?} footerRowDef\n * @return {?}\n */\n function (footerRowDef) {\n this._customFooterRowDefs = new Set([footerRowDef]);\n this._footerRowDefChanged = true;\n };\n /** Adds a column definition that was not included as part of the content children. */\n /**\n * Adds a column definition that was not included as part of the content children.\n * @param {?} columnDef\n * @return {?}\n */\n CdkTable.prototype.addColumnDef = /**\n * Adds a column definition that was not included as part of the content children.\n * @param {?} columnDef\n * @return {?}\n */\n function (columnDef) {\n this._customColumnDefs.add(columnDef);\n };\n /** Removes a column definition that was not included as part of the content children. */\n /**\n * Removes a column definition that was not included as part of the content children.\n * @param {?} columnDef\n * @return {?}\n */\n CdkTable.prototype.removeColumnDef = /**\n * Removes a column definition that was not included as part of the content children.\n * @param {?} columnDef\n * @return {?}\n */\n function (columnDef) {\n this._customColumnDefs.delete(columnDef);\n };\n /** Adds a row definition that was not included as part of the content children. */\n /**\n * Adds a row definition that was not included as part of the content children.\n * @param {?} rowDef\n * @return {?}\n */\n CdkTable.prototype.addRowDef = /**\n * Adds a row definition that was not included as part of the content children.\n * @param {?} rowDef\n * @return {?}\n */\n function (rowDef) {\n this._customRowDefs.add(rowDef);\n };\n /** Removes a row definition that was not included as part of the content children. */\n /**\n * Removes a row definition that was not included as part of the content children.\n * @param {?} rowDef\n * @return {?}\n */\n CdkTable.prototype.removeRowDef = /**\n * Removes a row definition that was not included as part of the content children.\n * @param {?} rowDef\n * @return {?}\n */\n function (rowDef) {\n this._customRowDefs.delete(rowDef);\n };\n /** Adds a header row definition that was not included as part of the content children. */\n /**\n * Adds a header row definition that was not included as part of the content children.\n * @param {?} headerRowDef\n * @return {?}\n */\n CdkTable.prototype.addHeaderRowDef = /**\n * Adds a header row definition that was not included as part of the content children.\n * @param {?} headerRowDef\n * @return {?}\n */\n function (headerRowDef) {\n this._customHeaderRowDefs.add(headerRowDef);\n this._headerRowDefChanged = true;\n };\n /** Removes a header row definition that was not included as part of the content children. */\n /**\n * Removes a header row definition that was not included as part of the content children.\n * @param {?} headerRowDef\n * @return {?}\n */\n CdkTable.prototype.removeHeaderRowDef = /**\n * Removes a header row definition that was not included as part of the content children.\n * @param {?} headerRowDef\n * @return {?}\n */\n function (headerRowDef) {\n this._customHeaderRowDefs.delete(headerRowDef);\n this._headerRowDefChanged = true;\n };\n /** Adds a footer row definition that was not included as part of the content children. */\n /**\n * Adds a footer row definition that was not included as part of the content children.\n * @param {?} footerRowDef\n * @return {?}\n */\n CdkTable.prototype.addFooterRowDef = /**\n * Adds a footer row definition that was not included as part of the content children.\n * @param {?} footerRowDef\n * @return {?}\n */\n function (footerRowDef) {\n this._customFooterRowDefs.add(footerRowDef);\n this._footerRowDefChanged = true;\n };\n /** Removes a footer row definition that was not included as part of the content children. */\n /**\n * Removes a footer row definition that was not included as part of the content children.\n * @param {?} footerRowDef\n * @return {?}\n */\n CdkTable.prototype.removeFooterRowDef = /**\n * Removes a footer row definition that was not included as part of the content children.\n * @param {?} footerRowDef\n * @return {?}\n */\n function (footerRowDef) {\n this._customFooterRowDefs.delete(footerRowDef);\n this._footerRowDefChanged = true;\n };\n /**\n * Updates the header sticky styles. First resets all applied styles with respect to the cells\n * sticking to the top. Then, evaluating which cells need to be stuck to the top. This is\n * automatically called when the header row changes its displayed set of columns, or if its\n * sticky input changes. May be called manually for cases where the cell content changes outside\n * of these events.\n */\n /**\n * Updates the header sticky styles. First resets all applied styles with respect to the cells\n * sticking to the top. Then, evaluating which cells need to be stuck to the top. This is\n * automatically called when the header row changes its displayed set of columns, or if its\n * sticky input changes. May be called manually for cases where the cell content changes outside\n * of these events.\n * @return {?}\n */\n CdkTable.prototype.updateStickyHeaderRowStyles = /**\n * Updates the header sticky styles. First resets all applied styles with respect to the cells\n * sticking to the top. Then, evaluating which cells need to be stuck to the top. This is\n * automatically called when the header row changes its displayed set of columns, or if its\n * sticky input changes. May be called manually for cases where the cell content changes outside\n * of these events.\n * @return {?}\n */\n function () {\n /** @type {?} */\n var headerRows = this._getRenderedRows(this._headerRowOutlet);\n /** @type {?} */\n var tableElement = (/** @type {?} */ (this._elementRef.nativeElement));\n // Hide the thead element if there are no header rows. This is necessary to satisfy\n // overzealous a11y checkers that fail because the `rowgroup` element does not contain\n // required child `row`.\n /** @type {?} */\n var thead = tableElement.querySelector('thead');\n if (thead) {\n thead.style.display = headerRows.length ? '' : 'none';\n }\n /** @type {?} */\n var stickyStates = this._headerRowDefs.map((/**\n * @param {?} def\n * @return {?}\n */\n function (def) { return def.sticky; }));\n this._stickyStyler.clearStickyPositioning(headerRows, ['top']);\n this._stickyStyler.stickRows(headerRows, stickyStates, 'top');\n // Reset the dirty state of the sticky input change since it has been used.\n this._headerRowDefs.forEach((/**\n * @param {?} def\n * @return {?}\n */\n function (def) { return def.resetStickyChanged(); }));\n };\n /**\n * Updates the footer sticky styles. First resets all applied styles with respect to the cells\n * sticking to the bottom. Then, evaluating which cells need to be stuck to the bottom. This is\n * automatically called when the footer row changes its displayed set of columns, or if its\n * sticky input changes. May be called manually for cases where the cell content changes outside\n * of these events.\n */\n /**\n * Updates the footer sticky styles. First resets all applied styles with respect to the cells\n * sticking to the bottom. Then, evaluating which cells need to be stuck to the bottom. This is\n * automatically called when the footer row changes its displayed set of columns, or if its\n * sticky input changes. May be called manually for cases where the cell content changes outside\n * of these events.\n * @return {?}\n */\n CdkTable.prototype.updateStickyFooterRowStyles = /**\n * Updates the footer sticky styles. First resets all applied styles with respect to the cells\n * sticking to the bottom. Then, evaluating which cells need to be stuck to the bottom. This is\n * automatically called when the footer row changes its displayed set of columns, or if its\n * sticky input changes. May be called manually for cases where the cell content changes outside\n * of these events.\n * @return {?}\n */\n function () {\n /** @type {?} */\n var footerRows = this._getRenderedRows(this._footerRowOutlet);\n /** @type {?} */\n var tableElement = (/** @type {?} */ (this._elementRef.nativeElement));\n // Hide the tfoot element if there are no footer rows. This is necessary to satisfy\n // overzealous a11y checkers that fail because the `rowgroup` element does not contain\n // required child `row`.\n /** @type {?} */\n var tfoot = tableElement.querySelector('tfoot');\n if (tfoot) {\n tfoot.style.display = footerRows.length ? '' : 'none';\n }\n /** @type {?} */\n var stickyStates = this._footerRowDefs.map((/**\n * @param {?} def\n * @return {?}\n */\n function (def) { return def.sticky; }));\n this._stickyStyler.clearStickyPositioning(footerRows, ['bottom']);\n this._stickyStyler.stickRows(footerRows, stickyStates, 'bottom');\n this._stickyStyler.updateStickyFooterContainer(this._elementRef.nativeElement, stickyStates);\n // Reset the dirty state of the sticky input change since it has been used.\n this._footerRowDefs.forEach((/**\n * @param {?} def\n * @return {?}\n */\n function (def) { return def.resetStickyChanged(); }));\n };\n /**\n * Updates the column sticky styles. First resets all applied styles with respect to the cells\n * sticking to the left and right. Then sticky styles are added for the left and right according\n * to the column definitions for each cell in each row. This is automatically called when\n * the data source provides a new set of data or when a column definition changes its sticky\n * input. May be called manually for cases where the cell content changes outside of these events.\n */\n /**\n * Updates the column sticky styles. First resets all applied styles with respect to the cells\n * sticking to the left and right. Then sticky styles are added for the left and right according\n * to the column definitions for each cell in each row. This is automatically called when\n * the data source provides a new set of data or when a column definition changes its sticky\n * input. May be called manually for cases where the cell content changes outside of these events.\n * @return {?}\n */\n CdkTable.prototype.updateStickyColumnStyles = /**\n * Updates the column sticky styles. First resets all applied styles with respect to the cells\n * sticking to the left and right. Then sticky styles are added for the left and right according\n * to the column definitions for each cell in each row. This is automatically called when\n * the data source provides a new set of data or when a column definition changes its sticky\n * input. May be called manually for cases where the cell content changes outside of these events.\n * @return {?}\n */\n function () {\n var _this = this;\n /** @type {?} */\n var headerRows = this._getRenderedRows(this._headerRowOutlet);\n /** @type {?} */\n var dataRows = this._getRenderedRows(this._rowOutlet);\n /** @type {?} */\n var footerRows = this._getRenderedRows(this._footerRowOutlet);\n // Clear the left and right positioning from all columns in the table across all rows since\n // sticky columns span across all table sections (header, data, footer)\n this._stickyStyler.clearStickyPositioning(headerRows.concat(dataRows, footerRows), ['left', 'right']);\n // Update the sticky styles for each header row depending on the def's sticky state\n headerRows.forEach((/**\n * @param {?} headerRow\n * @param {?} i\n * @return {?}\n */\n function (headerRow, i) {\n _this._addStickyColumnStyles([headerRow], _this._headerRowDefs[i]);\n }));\n // Update the sticky styles for each data row depending on its def's sticky state\n this._rowDefs.forEach((/**\n * @param {?} rowDef\n * @return {?}\n */\n function (rowDef) {\n // Collect all the rows rendered with this row definition.\n /** @type {?} */\n var rows = [];\n for (var i = 0; i < dataRows.length; i++) {\n if (_this._renderRows[i].rowDef === rowDef) {\n rows.push(dataRows[i]);\n }\n }\n _this._addStickyColumnStyles(rows, rowDef);\n }));\n // Update the sticky styles for each footer row depending on the def's sticky state\n footerRows.forEach((/**\n * @param {?} footerRow\n * @param {?} i\n * @return {?}\n */\n function (footerRow, i) {\n _this._addStickyColumnStyles([footerRow], _this._footerRowDefs[i]);\n }));\n // Reset the dirty state of the sticky input change since it has been used.\n Array.from(this._columnDefsByName.values()).forEach((/**\n * @param {?} def\n * @return {?}\n */\n function (def) { return def.resetStickyChanged(); }));\n };\n /**\n * Get the list of RenderRow objects to render according to the current list of data and defined\n * row definitions. If the previous list already contained a particular pair, it should be reused\n * so that the differ equates their references.\n */\n /**\n * Get the list of RenderRow objects to render according to the current list of data and defined\n * row definitions. If the previous list already contained a particular pair, it should be reused\n * so that the differ equates their references.\n * @private\n * @return {?}\n */\n CdkTable.prototype._getAllRenderRows = /**\n * Get the list of RenderRow objects to render according to the current list of data and defined\n * row definitions. If the previous list already contained a particular pair, it should be reused\n * so that the differ equates their references.\n * @private\n * @return {?}\n */\n function () {\n /** @type {?} */\n var renderRows = [];\n // Store the cache and create a new one. Any re-used RenderRow objects will be moved into the\n // new cache while unused ones can be picked up by garbage collection.\n /** @type {?} */\n var prevCachedRenderRows = this._cachedRenderRowsMap;\n this._cachedRenderRowsMap = new Map();\n // For each data object, get the list of rows that should be rendered, represented by the\n // respective `RenderRow` object which is the pair of `data` and `CdkRowDef`.\n for (var i = 0; i < this._data.length; i++) {\n /** @type {?} */\n var data = this._data[i];\n /** @type {?} */\n var renderRowsForData = this._getRenderRowsForData(data, i, prevCachedRenderRows.get(data));\n if (!this._cachedRenderRowsMap.has(data)) {\n this._cachedRenderRowsMap.set(data, new WeakMap());\n }\n for (var j = 0; j < renderRowsForData.length; j++) {\n /** @type {?} */\n var renderRow = renderRowsForData[j];\n /** @type {?} */\n var cache = (/** @type {?} */ (this._cachedRenderRowsMap.get(renderRow.data)));\n if (cache.has(renderRow.rowDef)) {\n (/** @type {?} */ (cache.get(renderRow.rowDef))).push(renderRow);\n }\n else {\n cache.set(renderRow.rowDef, [renderRow]);\n }\n renderRows.push(renderRow);\n }\n }\n return renderRows;\n };\n /**\n * Gets a list of `RenderRow` for the provided data object and any `CdkRowDef` objects that\n * should be rendered for this data. Reuses the cached RenderRow objects if they match the same\n * `(T, CdkRowDef)` pair.\n */\n /**\n * Gets a list of `RenderRow` for the provided data object and any `CdkRowDef` objects that\n * should be rendered for this data. Reuses the cached RenderRow objects if they match the same\n * `(T, CdkRowDef)` pair.\n * @private\n * @param {?} data\n * @param {?} dataIndex\n * @param {?=} cache\n * @return {?}\n */\n CdkTable.prototype._getRenderRowsForData = /**\n * Gets a list of `RenderRow` for the provided data object and any `CdkRowDef` objects that\n * should be rendered for this data. Reuses the cached RenderRow objects if they match the same\n * `(T, CdkRowDef)` pair.\n * @private\n * @param {?} data\n * @param {?} dataIndex\n * @param {?=} cache\n * @return {?}\n */\n function (data, dataIndex, cache) {\n /** @type {?} */\n var rowDefs = this._getRowDefs(data, dataIndex);\n return rowDefs.map((/**\n * @param {?} rowDef\n * @return {?}\n */\n function (rowDef) {\n /** @type {?} */\n var cachedRenderRows = (cache && cache.has(rowDef)) ? (/** @type {?} */ (cache.get(rowDef))) : [];\n if (cachedRenderRows.length) {\n /** @type {?} */\n var dataRow = (/** @type {?} */ (cachedRenderRows.shift()));\n dataRow.dataIndex = dataIndex;\n return dataRow;\n }\n else {\n return { data: data, rowDef: rowDef, dataIndex: dataIndex };\n }\n }));\n };\n /** Update the map containing the content's column definitions. */\n /**\n * Update the map containing the content's column definitions.\n * @private\n * @return {?}\n */\n CdkTable.prototype._cacheColumnDefs = /**\n * Update the map containing the content's column definitions.\n * @private\n * @return {?}\n */\n function () {\n var _this = this;\n this._columnDefsByName.clear();\n /** @type {?} */\n var columnDefs = mergeQueryListAndSet(this._contentColumnDefs, this._customColumnDefs);\n columnDefs.forEach((/**\n * @param {?} columnDef\n * @return {?}\n */\n function (columnDef) {\n if (_this._columnDefsByName.has(columnDef.name)) {\n throw getTableDuplicateColumnNameError(columnDef.name);\n }\n _this._columnDefsByName.set(columnDef.name, columnDef);\n }));\n };\n /** Update the list of all available row definitions that can be used. */\n /**\n * Update the list of all available row definitions that can be used.\n * @private\n * @return {?}\n */\n CdkTable.prototype._cacheRowDefs = /**\n * Update the list of all available row definitions that can be used.\n * @private\n * @return {?}\n */\n function () {\n this._headerRowDefs =\n mergeQueryListAndSet(this._contentHeaderRowDefs, this._customHeaderRowDefs);\n this._footerRowDefs =\n mergeQueryListAndSet(this._contentFooterRowDefs, this._customFooterRowDefs);\n this._rowDefs = mergeQueryListAndSet(this._contentRowDefs, this._customRowDefs);\n // After all row definitions are determined, find the row definition to be considered default.\n /** @type {?} */\n var defaultRowDefs = this._rowDefs.filter((/**\n * @param {?} def\n * @return {?}\n */\n function (def) { return !def.when; }));\n if (!this.multiTemplateDataRows && defaultRowDefs.length > 1) {\n throw getTableMultipleDefaultRowDefsError();\n }\n this._defaultRowDef = defaultRowDefs[0];\n };\n /**\n * Check if the header, data, or footer rows have changed what columns they want to display or\n * whether the sticky states have changed for the header or footer. If there is a diff, then\n * re-render that section.\n */\n /**\n * Check if the header, data, or footer rows have changed what columns they want to display or\n * whether the sticky states have changed for the header or footer. If there is a diff, then\n * re-render that section.\n * @private\n * @return {?}\n */\n CdkTable.prototype._renderUpdatedColumns = /**\n * Check if the header, data, or footer rows have changed what columns they want to display or\n * whether the sticky states have changed for the header or footer. If there is a diff, then\n * re-render that section.\n * @private\n * @return {?}\n */\n function () {\n /** @type {?} */\n var columnsDiffReducer = (/**\n * @param {?} acc\n * @param {?} def\n * @return {?}\n */\n function (acc, def) { return acc || !!def.getColumnsDiff(); });\n // Force re-render data rows if the list of column definitions have changed.\n if (this._rowDefs.reduce(columnsDiffReducer, false)) {\n this._forceRenderDataRows();\n }\n // Force re-render header/footer rows if the list of column definitions have changed..\n if (this._headerRowDefs.reduce(columnsDiffReducer, false)) {\n this._forceRenderHeaderRows();\n }\n if (this._footerRowDefs.reduce(columnsDiffReducer, false)) {\n this._forceRenderFooterRows();\n }\n };\n /**\n * Switch to the provided data source by resetting the data and unsubscribing from the current\n * render change subscription if one exists. If the data source is null, interpret this by\n * clearing the row outlet. Otherwise start listening for new data.\n */\n /**\n * Switch to the provided data source by resetting the data and unsubscribing from the current\n * render change subscription if one exists. If the data source is null, interpret this by\n * clearing the row outlet. Otherwise start listening for new data.\n * @private\n * @param {?} dataSource\n * @return {?}\n */\n CdkTable.prototype._switchDataSource = /**\n * Switch to the provided data source by resetting the data and unsubscribing from the current\n * render change subscription if one exists. If the data source is null, interpret this by\n * clearing the row outlet. Otherwise start listening for new data.\n * @private\n * @param {?} dataSource\n * @return {?}\n */\n function (dataSource) {\n this._data = [];\n if (isDataSource(this.dataSource)) {\n this.dataSource.disconnect(this);\n }\n // Stop listening for data from the previous data source.\n if (this._renderChangeSubscription) {\n this._renderChangeSubscription.unsubscribe();\n this._renderChangeSubscription = null;\n }\n if (!dataSource) {\n if (this._dataDiffer) {\n this._dataDiffer.diff([]);\n }\n this._rowOutlet.viewContainer.clear();\n }\n this._dataSource = dataSource;\n };\n /** Set up a subscription for the data provided by the data source. */\n /**\n * Set up a subscription for the data provided by the data source.\n * @private\n * @return {?}\n */\n CdkTable.prototype._observeRenderChanges = /**\n * Set up a subscription for the data provided by the data source.\n * @private\n * @return {?}\n */\n function () {\n var _this = this;\n // If no data source has been set, there is nothing to observe for changes.\n if (!this.dataSource) {\n return;\n }\n /** @type {?} */\n var dataStream;\n if (isDataSource(this.dataSource)) {\n dataStream = this.dataSource.connect(this);\n }\n else if (this.dataSource instanceof Observable) {\n dataStream = this.dataSource;\n }\n else if (Array.isArray(this.dataSource)) {\n dataStream = of(this.dataSource);\n }\n if (dataStream === undefined) {\n throw getTableUnknownDataSourceError();\n }\n this._renderChangeSubscription = dataStream.pipe(takeUntil(this._onDestroy)).subscribe((/**\n * @param {?} data\n * @return {?}\n */\n function (data) {\n _this._data = data || [];\n _this.renderRows();\n }));\n };\n /**\n * Clears any existing content in the header row outlet and creates a new embedded view\n * in the outlet using the header row definition.\n */\n /**\n * Clears any existing content in the header row outlet and creates a new embedded view\n * in the outlet using the header row definition.\n * @private\n * @return {?}\n */\n CdkTable.prototype._forceRenderHeaderRows = /**\n * Clears any existing content in the header row outlet and creates a new embedded view\n * in the outlet using the header row definition.\n * @private\n * @return {?}\n */\n function () {\n var _this = this;\n // Clear the header row outlet if any content exists.\n if (this._headerRowOutlet.viewContainer.length > 0) {\n this._headerRowOutlet.viewContainer.clear();\n }\n this._headerRowDefs.forEach((/**\n * @param {?} def\n * @param {?} i\n * @return {?}\n */\n function (def, i) { return _this._renderRow(_this._headerRowOutlet, def, i); }));\n this.updateStickyHeaderRowStyles();\n this.updateStickyColumnStyles();\n };\n /**\n * Clears any existing content in the footer row outlet and creates a new embedded view\n * in the outlet using the footer row definition.\n */\n /**\n * Clears any existing content in the footer row outlet and creates a new embedded view\n * in the outlet using the footer row definition.\n * @private\n * @return {?}\n */\n CdkTable.prototype._forceRenderFooterRows = /**\n * Clears any existing content in the footer row outlet and creates a new embedded view\n * in the outlet using the footer row definition.\n * @private\n * @return {?}\n */\n function () {\n var _this = this;\n // Clear the footer row outlet if any content exists.\n if (this._footerRowOutlet.viewContainer.length > 0) {\n this._footerRowOutlet.viewContainer.clear();\n }\n this._footerRowDefs.forEach((/**\n * @param {?} def\n * @param {?} i\n * @return {?}\n */\n function (def, i) { return _this._renderRow(_this._footerRowOutlet, def, i); }));\n this.updateStickyFooterRowStyles();\n this.updateStickyColumnStyles();\n };\n /** Adds the sticky column styles for the rows according to the columns' stick states. */\n /**\n * Adds the sticky column styles for the rows according to the columns' stick states.\n * @private\n * @param {?} rows\n * @param {?} rowDef\n * @return {?}\n */\n CdkTable.prototype._addStickyColumnStyles = /**\n * Adds the sticky column styles for the rows according to the columns' stick states.\n * @private\n * @param {?} rows\n * @param {?} rowDef\n * @return {?}\n */\n function (rows, rowDef) {\n var _this = this;\n /** @type {?} */\n var columnDefs = Array.from(rowDef.columns || []).map((/**\n * @param {?} columnName\n * @return {?}\n */\n function (columnName) {\n /** @type {?} */\n var columnDef = _this._columnDefsByName.get(columnName);\n if (!columnDef) {\n throw getTableUnknownColumnError(columnName);\n }\n return (/** @type {?} */ (columnDef));\n }));\n /** @type {?} */\n var stickyStartStates = columnDefs.map((/**\n * @param {?} columnDef\n * @return {?}\n */\n function (columnDef) { return columnDef.sticky; }));\n /** @type {?} */\n var stickyEndStates = columnDefs.map((/**\n * @param {?} columnDef\n * @return {?}\n */\n function (columnDef) { return columnDef.stickyEnd; }));\n this._stickyStyler.updateStickyColumns(rows, stickyStartStates, stickyEndStates);\n };\n /** Gets the list of rows that have been rendered in the row outlet. */\n /**\n * Gets the list of rows that have been rendered in the row outlet.\n * @param {?} rowOutlet\n * @return {?}\n */\n CdkTable.prototype._getRenderedRows = /**\n * Gets the list of rows that have been rendered in the row outlet.\n * @param {?} rowOutlet\n * @return {?}\n */\n function (rowOutlet) {\n /** @type {?} */\n var renderedRows = [];\n for (var i = 0; i < rowOutlet.viewContainer.length; i++) {\n /** @type {?} */\n var viewRef = ((/** @type {?} */ ((/** @type {?} */ (rowOutlet.viewContainer.get(i))))));\n renderedRows.push(viewRef.rootNodes[0]);\n }\n return renderedRows;\n };\n /**\n * Get the matching row definitions that should be used for this row data. If there is only\n * one row definition, it is returned. Otherwise, find the row definitions that has a when\n * predicate that returns true with the data. If none return true, return the default row\n * definition.\n */\n /**\n * Get the matching row definitions that should be used for this row data. If there is only\n * one row definition, it is returned. Otherwise, find the row definitions that has a when\n * predicate that returns true with the data. If none return true, return the default row\n * definition.\n * @param {?} data\n * @param {?} dataIndex\n * @return {?}\n */\n CdkTable.prototype._getRowDefs = /**\n * Get the matching row definitions that should be used for this row data. If there is only\n * one row definition, it is returned. Otherwise, find the row definitions that has a when\n * predicate that returns true with the data. If none return true, return the default row\n * definition.\n * @param {?} data\n * @param {?} dataIndex\n * @return {?}\n */\n function (data, dataIndex) {\n if (this._rowDefs.length == 1) {\n return [this._rowDefs[0]];\n }\n /** @type {?} */\n var rowDefs = [];\n if (this.multiTemplateDataRows) {\n rowDefs = this._rowDefs.filter((/**\n * @param {?} def\n * @return {?}\n */\n function (def) { return !def.when || def.when(dataIndex, data); }));\n }\n else {\n /** @type {?} */\n var rowDef = this._rowDefs.find((/**\n * @param {?} def\n * @return {?}\n */\n function (def) { return def.when && def.when(dataIndex, data); })) || this._defaultRowDef;\n if (rowDef) {\n rowDefs.push(rowDef);\n }\n }\n if (!rowDefs.length) {\n throw getTableMissingMatchingRowDefError(data);\n }\n return rowDefs;\n };\n /**\n * Create the embedded view for the data row template and place it in the correct index location\n * within the data row view container.\n */\n /**\n * Create the embedded view for the data row template and place it in the correct index location\n * within the data row view container.\n * @private\n * @param {?} renderRow\n * @param {?} renderIndex\n * @return {?}\n */\n CdkTable.prototype._insertRow = /**\n * Create the embedded view for the data row template and place it in the correct index location\n * within the data row view container.\n * @private\n * @param {?} renderRow\n * @param {?} renderIndex\n * @return {?}\n */\n function (renderRow, renderIndex) {\n /** @type {?} */\n var rowDef = renderRow.rowDef;\n /** @type {?} */\n var context = { $implicit: renderRow.data };\n this._renderRow(this._rowOutlet, rowDef, renderIndex, context);\n };\n /**\n * Creates a new row template in the outlet and fills it with the set of cell templates.\n * Optionally takes a context to provide to the row and cells, as well as an optional index\n * of where to place the new row template in the outlet.\n */\n /**\n * Creates a new row template in the outlet and fills it with the set of cell templates.\n * Optionally takes a context to provide to the row and cells, as well as an optional index\n * of where to place the new row template in the outlet.\n * @private\n * @param {?} outlet\n * @param {?} rowDef\n * @param {?} index\n * @param {?=} context\n * @return {?}\n */\n CdkTable.prototype._renderRow = /**\n * Creates a new row template in the outlet and fills it with the set of cell templates.\n * Optionally takes a context to provide to the row and cells, as well as an optional index\n * of where to place the new row template in the outlet.\n * @private\n * @param {?} outlet\n * @param {?} rowDef\n * @param {?} index\n * @param {?=} context\n * @return {?}\n */\n function (outlet, rowDef, index, context) {\n if (context === void 0) { context = {}; }\n // TODO(andrewseguin): enforce that one outlet was instantiated from createEmbeddedView\n outlet.viewContainer.createEmbeddedView(rowDef.template, context, index);\n for (var _a = 0, _b = this._getCellTemplates(rowDef); _a < _b.length; _a++) {\n var cellTemplate = _b[_a];\n if (CdkCellOutlet.mostRecentCellOutlet) {\n CdkCellOutlet.mostRecentCellOutlet._viewContainer.createEmbeddedView(cellTemplate, context);\n }\n }\n this._changeDetectorRef.markForCheck();\n };\n /**\n * Updates the index-related context for each row to reflect any changes in the index of the rows,\n * e.g. first/last/even/odd.\n */\n /**\n * Updates the index-related context for each row to reflect any changes in the index of the rows,\n * e.g. first/last/even/odd.\n * @private\n * @return {?}\n */\n CdkTable.prototype._updateRowIndexContext = /**\n * Updates the index-related context for each row to reflect any changes in the index of the rows,\n * e.g. first/last/even/odd.\n * @private\n * @return {?}\n */\n function () {\n /** @type {?} */\n var viewContainer = this._rowOutlet.viewContainer;\n for (var renderIndex = 0, count = viewContainer.length; renderIndex < count; renderIndex++) {\n /** @type {?} */\n var viewRef = (/** @type {?} */ (viewContainer.get(renderIndex)));\n /** @type {?} */\n var context = (/** @type {?} */ (viewRef.context));\n context.count = count;\n context.first = renderIndex === 0;\n context.last = renderIndex === count - 1;\n context.even = renderIndex % 2 === 0;\n context.odd = !context.even;\n if (this.multiTemplateDataRows) {\n context.dataIndex = this._renderRows[renderIndex].dataIndex;\n context.renderIndex = renderIndex;\n }\n else {\n context.index = this._renderRows[renderIndex].dataIndex;\n }\n }\n };\n /** Gets the column definitions for the provided row def. */\n /**\n * Gets the column definitions for the provided row def.\n * @private\n * @param {?} rowDef\n * @return {?}\n */\n CdkTable.prototype._getCellTemplates = /**\n * Gets the column definitions for the provided row def.\n * @private\n * @param {?} rowDef\n * @return {?}\n */\n function (rowDef) {\n var _this = this;\n if (!rowDef || !rowDef.columns) {\n return [];\n }\n return Array.from(rowDef.columns, (/**\n * @param {?} columnId\n * @return {?}\n */\n function (columnId) {\n /** @type {?} */\n var column = _this._columnDefsByName.get(columnId);\n if (!column) {\n throw getTableUnknownColumnError(columnId);\n }\n return rowDef.extractCellTemplate(column);\n }));\n };\n /** Adds native table sections (e.g. tbody) and moves the row outlets into them. */\n /**\n * Adds native table sections (e.g. tbody) and moves the row outlets into them.\n * @private\n * @return {?}\n */\n CdkTable.prototype._applyNativeTableSections = /**\n * Adds native table sections (e.g. tbody) and moves the row outlets into them.\n * @private\n * @return {?}\n */\n function () {\n /** @type {?} */\n var documentFragment = this._document.createDocumentFragment();\n /** @type {?} */\n var sections = [\n { tag: 'thead', outlet: this._headerRowOutlet },\n { tag: 'tbody', outlet: this._rowOutlet },\n { tag: 'tfoot', outlet: this._footerRowOutlet },\n ];\n for (var _a = 0, sections_1 = sections; _a < sections_1.length; _a++) {\n var section = sections_1[_a];\n /** @type {?} */\n var element = this._document.createElement(section.tag);\n element.setAttribute('role', 'rowgroup');\n element.appendChild(section.outlet.elementRef.nativeElement);\n documentFragment.appendChild(element);\n }\n // Use a DocumentFragment so we don't hit the DOM on each iteration.\n this._elementRef.nativeElement.appendChild(documentFragment);\n };\n /**\n * Forces a re-render of the data rows. Should be called in cases where there has been an input\n * change that affects the evaluation of which rows should be rendered, e.g. toggling\n * `multiTemplateDataRows` or adding/removing row definitions.\n */\n /**\n * Forces a re-render of the data rows. Should be called in cases where there has been an input\n * change that affects the evaluation of which rows should be rendered, e.g. toggling\n * `multiTemplateDataRows` or adding/removing row definitions.\n * @private\n * @return {?}\n */\n CdkTable.prototype._forceRenderDataRows = /**\n * Forces a re-render of the data rows. Should be called in cases where there has been an input\n * change that affects the evaluation of which rows should be rendered, e.g. toggling\n * `multiTemplateDataRows` or adding/removing row definitions.\n * @private\n * @return {?}\n */\n function () {\n this._dataDiffer.diff([]);\n this._rowOutlet.viewContainer.clear();\n this.renderRows();\n this.updateStickyColumnStyles();\n };\n /**\n * Checks if there has been a change in sticky states since last check and applies the correct\n * sticky styles. Since checking resets the \"dirty\" state, this should only be performed once\n * during a change detection and after the inputs are settled (after content check).\n */\n /**\n * Checks if there has been a change in sticky states since last check and applies the correct\n * sticky styles. Since checking resets the \"dirty\" state, this should only be performed once\n * during a change detection and after the inputs are settled (after content check).\n * @private\n * @return {?}\n */\n CdkTable.prototype._checkStickyStates = /**\n * Checks if there has been a change in sticky states since last check and applies the correct\n * sticky styles. Since checking resets the \"dirty\" state, this should only be performed once\n * during a change detection and after the inputs are settled (after content check).\n * @private\n * @return {?}\n */\n function () {\n /** @type {?} */\n var stickyCheckReducer = (/**\n * @param {?} acc\n * @param {?} d\n * @return {?}\n */\n function (acc, d) {\n return acc || d.hasStickyChanged();\n });\n // Note that the check needs to occur for every definition since it notifies the definition\n // that it can reset its dirty state. Using another operator like `some` may short-circuit\n // remaining definitions and leave them in an unchecked state.\n if (this._headerRowDefs.reduce(stickyCheckReducer, false)) {\n this.updateStickyHeaderRowStyles();\n }\n if (this._footerRowDefs.reduce(stickyCheckReducer, false)) {\n this.updateStickyFooterRowStyles();\n }\n if (Array.from(this._columnDefsByName.values()).reduce(stickyCheckReducer, false)) {\n this.updateStickyColumnStyles();\n }\n };\n /**\n * Creates the sticky styler that will be used for sticky rows and columns. Listens\n * for directionality changes and provides the latest direction to the styler. Re-applies column\n * stickiness when directionality changes.\n */\n /**\n * Creates the sticky styler that will be used for sticky rows and columns. Listens\n * for directionality changes and provides the latest direction to the styler. Re-applies column\n * stickiness when directionality changes.\n * @private\n * @return {?}\n */\n CdkTable.prototype._setupStickyStyler = /**\n * Creates the sticky styler that will be used for sticky rows and columns. Listens\n * for directionality changes and provides the latest direction to the styler. Re-applies column\n * stickiness when directionality changes.\n * @private\n * @return {?}\n */\n function () {\n var _this = this;\n /** @type {?} */\n var direction = this._dir ? this._dir.value : 'ltr';\n this._stickyStyler = new StickyStyler(this._isNativeHtmlTable, this.stickyCssClass, direction, this._platform.isBrowser);\n (this._dir ? this._dir.change : of())\n .pipe(takeUntil(this._onDestroy))\n .subscribe((/**\n * @param {?} value\n * @return {?}\n */\n function (value) {\n _this._stickyStyler.direction = value;\n _this.updateStickyColumnStyles();\n }));\n };\n CdkTable.decorators = [\n { type: Component, args: [{selector: 'cdk-table, table[cdk-table]',\n exportAs: 'cdkTable',\n template: CDK_TABLE_TEMPLATE,\n host: {\n 'class': 'cdk-table',\n },\n encapsulation: ViewEncapsulation.None,\n // The \"OnPush\" status for the `MatTable` component is effectively a noop, so we are removing it.\n // The view for `MatTable` consists entirely of templates declared in other views. As they are\n // declared elsewhere, they are checked when their declaration points are checked.\n // tslint:disable-next-line:validate-decorators\n changeDetection: ChangeDetectionStrategy.Default,\n },] },\n ];\n /** @nocollapse */\n CdkTable.ctorParameters = function () { return [\n { type: IterableDiffers },\n { type: ChangeDetectorRef },\n { type: ElementRef },\n { type: String, decorators: [{ type: Attribute, args: ['role',] }] },\n { type: Directionality, decorators: [{ type: Optional }] },\n { type: undefined, decorators: [{ type: Inject, args: [DOCUMENT,] }] },\n { type: Platform }\n ]; };\n CdkTable.propDecorators = {\n trackBy: [{ type: Input }],\n dataSource: [{ type: Input }],\n multiTemplateDataRows: [{ type: Input }],\n _rowOutlet: [{ type: ViewChild, args: [DataRowOutlet, { static: true },] }],\n _headerRowOutlet: [{ type: ViewChild, args: [HeaderRowOutlet, { static: true },] }],\n _footerRowOutlet: [{ type: ViewChild, args: [FooterRowOutlet, { static: true },] }],\n _contentColumnDefs: [{ type: ContentChildren, args: [CdkColumnDef,] }],\n _contentRowDefs: [{ type: ContentChildren, args: [CdkRowDef,] }],\n _contentHeaderRowDefs: [{ type: ContentChildren, args: [CdkHeaderRowDef,] }],\n _contentFooterRowDefs: [{ type: ContentChildren, args: [CdkFooterRowDef,] }]\n };\n return CdkTable;\n}());\n/**\n * Utility function that gets a merged list of the entries in a QueryList and values of a Set.\n * @template T\n * @param {?} queryList\n * @param {?} set\n * @return {?}\n */\nfunction mergeQueryListAndSet(queryList, set) {\n return queryList.toArray().concat(Array.from(set));\n}\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n/**\n * Injection token that can be used to specify the text column options.\n * @type {?}\n */\nvar TEXT_COLUMN_OPTIONS = new InjectionToken('text-column-options');\n/**\n * Column that simply shows text content for the header and row cells. Assumes that the table\n * is using the native table implementation (`
`).\n *\n * By default, the name of this column will be the header text and data property accessor.\n * The header text can be overridden with the `headerText` input. Cell values can be overridden with\n * the `dataAccessor` input. Change the text justification to the start or end using the `justify`\n * input.\n * @template T\n */\nvar CdkTextColumn = /** @class */ (function () {\n function CdkTextColumn(_table, _options) {\n this._table = _table;\n this._options = _options;\n /**\n * Alignment of the cell values.\n */\n this.justify = 'start';\n this._options = _options || {};\n }\n Object.defineProperty(CdkTextColumn.prototype, \"name\", {\n /** Column name that should be used to reference this column. */\n get: /**\n * Column name that should be used to reference this column.\n * @return {?}\n */\n function () {\n return this._name;\n },\n set: /**\n * @param {?} name\n * @return {?}\n */\n function (name) {\n this._name = name;\n // With Ivy, inputs can be initialized before static query results are\n // available. In that case, we defer the synchronization until \"ngOnInit\" fires.\n this._syncColumnDefName();\n },\n enumerable: true,\n configurable: true\n });\n /**\n * @return {?}\n */\n CdkTextColumn.prototype.ngOnInit = /**\n * @return {?}\n */\n function () {\n this._syncColumnDefName();\n if (this.headerText === undefined) {\n this.headerText = this._createDefaultHeaderText();\n }\n if (!this.dataAccessor) {\n this.dataAccessor =\n this._options.defaultDataAccessor || ((/**\n * @param {?} data\n * @param {?} name\n * @return {?}\n */\n function (data, name) { return ((/** @type {?} */ (data)))[name]; }));\n }\n if (this._table) {\n // Provide the cell and headerCell directly to the table with the static `ViewChild` query,\n // since the columnDef will not pick up its content by the time the table finishes checking\n // its content and initializing the rows.\n this.columnDef.cell = this.cell;\n this.columnDef.headerCell = this.headerCell;\n this._table.addColumnDef(this.columnDef);\n }\n else {\n throw getTableTextColumnMissingParentTableError();\n }\n };\n /**\n * @return {?}\n */\n CdkTextColumn.prototype.ngOnDestroy = /**\n * @return {?}\n */\n function () {\n if (this._table) {\n this._table.removeColumnDef(this.columnDef);\n }\n };\n /**\n * Creates a default header text. Use the options' header text transformation function if one\n * has been provided. Otherwise simply capitalize the column name.\n */\n /**\n * Creates a default header text. Use the options' header text transformation function if one\n * has been provided. Otherwise simply capitalize the column name.\n * @return {?}\n */\n CdkTextColumn.prototype._createDefaultHeaderText = /**\n * Creates a default header text. Use the options' header text transformation function if one\n * has been provided. Otherwise simply capitalize the column name.\n * @return {?}\n */\n function () {\n /** @type {?} */\n var name = this.name;\n if (isDevMode() && !name) {\n throw getTableTextColumnMissingNameError();\n }\n if (this._options && this._options.defaultHeaderTextTransform) {\n return this._options.defaultHeaderTextTransform(name);\n }\n return name[0].toUpperCase() + name.slice(1);\n };\n /** Synchronizes the column definition name with the text column name. */\n /**\n * Synchronizes the column definition name with the text column name.\n * @private\n * @return {?}\n */\n CdkTextColumn.prototype._syncColumnDefName = /**\n * Synchronizes the column definition name with the text column name.\n * @private\n * @return {?}\n */\n function () {\n if (this.columnDef) {\n this.columnDef.name = this.name;\n }\n };\n CdkTextColumn.decorators = [\n { type: Component, args: [{selector: 'cdk-text-column',\n template: \"\\n \\n \\n \\n \\n \",\n encapsulation: ViewEncapsulation.None,\n // Change detection is intentionally not set to OnPush. This component's template will be provided\n // to the table to be inserted into its view. This is problematic when change detection runs since\n // the bindings in this template will be evaluated _after_ the table's view is evaluated, which\n // mean's the template in the table's view will not have the updated value (and in fact will cause\n // an ExpressionChangedAfterItHasBeenCheckedError).\n // tslint:disable-next-line:validate-decorators\n changeDetection: ChangeDetectionStrategy.Default,\n },] },\n ];\n /** @nocollapse */\n CdkTextColumn.ctorParameters = function () { return [\n { type: CdkTable, decorators: [{ type: Optional }] },\n { type: undefined, decorators: [{ type: Optional }, { type: Inject, args: [TEXT_COLUMN_OPTIONS,] }] }\n ]; };\n CdkTextColumn.propDecorators = {\n name: [{ type: Input }],\n headerText: [{ type: Input }],\n dataAccessor: [{ type: Input }],\n justify: [{ type: Input }],\n columnDef: [{ type: ViewChild, args: [CdkColumnDef, { static: true },] }],\n cell: [{ type: ViewChild, args: [CdkCellDef, { static: true },] }],\n headerCell: [{ type: ViewChild, args: [CdkHeaderCellDef, { static: true },] }]\n };\n return CdkTextColumn;\n}());\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n/** @type {?} */\nvar EXPORTED_DECLARATIONS = [\n CdkTable,\n CdkRowDef,\n CdkCellDef,\n CdkCellOutlet,\n CdkHeaderCellDef,\n CdkFooterCellDef,\n CdkColumnDef,\n CdkCell,\n CdkRow,\n CdkHeaderCell,\n CdkFooterCell,\n CdkHeaderRow,\n CdkHeaderRowDef,\n CdkFooterRow,\n CdkFooterRowDef,\n DataRowOutlet,\n HeaderRowOutlet,\n FooterRowOutlet,\n CdkTextColumn,\n];\nvar CdkTableModule = /** @class */ (function () {\n function CdkTableModule() {\n }\n CdkTableModule.decorators = [\n { type: NgModule, args: [{\n imports: [CommonModule],\n exports: EXPORTED_DECLARATIONS,\n declarations: EXPORTED_DECLARATIONS\n },] },\n ];\n return CdkTableModule;\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 { DataRowOutlet, HeaderRowOutlet, FooterRowOutlet, CDK_TABLE_TEMPLATE, CdkTable, CdkCellDef, CdkHeaderCellDef, CdkFooterCellDef, CdkColumnDef, BaseCdkCell, CdkHeaderCell, CdkFooterCell, CdkCell, CDK_ROW_TEMPLATE, BaseRowDef, CdkHeaderRowDef, CdkFooterRowDef, CdkRowDef, CdkCellOutlet, CdkHeaderRow, CdkFooterRow, CdkRow, CdkTableModule, STICKY_DIRECTIONS, StickyStyler, mixinHasStickyInput, TEXT_COLUMN_OPTIONS, CdkTextColumn };\n//# sourceMappingURL=table.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 { SelectionModel, isDataSource } from '@angular/cdk/collections';\nimport { __extends } from 'tslib';\nimport { Observable, BehaviorSubject, of, Subject } from 'rxjs';\nimport { take, filter, takeUntil } from 'rxjs/operators';\nimport { Directive, Inject, InjectionToken, Optional, ViewContainerRef, TemplateRef, ChangeDetectionStrategy, ChangeDetectorRef, Component, ContentChildren, ElementRef, Input, IterableDiffers, ViewChild, ViewEncapsulation, Renderer2, HostListener, NgModule } from '@angular/core';\nimport { Directionality } from '@angular/cdk/bidi';\nimport { coerceNumberProperty, coerceBooleanProperty } from '@angular/cdk/coercion';\nimport { FocusMonitor } from '@angular/cdk/a11y';\nimport { CommonModule } from '@angular/common';\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n/**\n * Base tree control. It has basic toggle/expand/collapse operations on a single data node.\n * @abstract\n * @template T\n */\nvar /**\n * Base tree control. It has basic toggle/expand/collapse operations on a single data node.\n * @abstract\n * @template T\n */\nBaseTreeControl = /** @class */ (function () {\n function BaseTreeControl() {\n /**\n * A selection model with multi-selection to track expansion status.\n */\n this.expansionModel = new SelectionModel(true);\n }\n /** Toggles one single data node's expanded/collapsed state. */\n /**\n * Toggles one single data node's expanded/collapsed state.\n * @param {?} dataNode\n * @return {?}\n */\n BaseTreeControl.prototype.toggle = /**\n * Toggles one single data node's expanded/collapsed state.\n * @param {?} dataNode\n * @return {?}\n */\n function (dataNode) {\n this.expansionModel.toggle(dataNode);\n };\n /** Expands one single data node. */\n /**\n * Expands one single data node.\n * @param {?} dataNode\n * @return {?}\n */\n BaseTreeControl.prototype.expand = /**\n * Expands one single data node.\n * @param {?} dataNode\n * @return {?}\n */\n function (dataNode) {\n this.expansionModel.select(dataNode);\n };\n /** Collapses one single data node. */\n /**\n * Collapses one single data node.\n * @param {?} dataNode\n * @return {?}\n */\n BaseTreeControl.prototype.collapse = /**\n * Collapses one single data node.\n * @param {?} dataNode\n * @return {?}\n */\n function (dataNode) {\n this.expansionModel.deselect(dataNode);\n };\n /** Whether a given data node is expanded or not. Returns true if the data node is expanded. */\n /**\n * Whether a given data node is expanded or not. Returns true if the data node is expanded.\n * @param {?} dataNode\n * @return {?}\n */\n BaseTreeControl.prototype.isExpanded = /**\n * Whether a given data node is expanded or not. Returns true if the data node is expanded.\n * @param {?} dataNode\n * @return {?}\n */\n function (dataNode) {\n return this.expansionModel.isSelected(dataNode);\n };\n /** Toggles a subtree rooted at `node` recursively. */\n /**\n * Toggles a subtree rooted at `node` recursively.\n * @param {?} dataNode\n * @return {?}\n */\n BaseTreeControl.prototype.toggleDescendants = /**\n * Toggles a subtree rooted at `node` recursively.\n * @param {?} dataNode\n * @return {?}\n */\n function (dataNode) {\n this.expansionModel.isSelected(dataNode)\n ? this.collapseDescendants(dataNode)\n : this.expandDescendants(dataNode);\n };\n /** Collapse all dataNodes in the tree. */\n /**\n * Collapse all dataNodes in the tree.\n * @return {?}\n */\n BaseTreeControl.prototype.collapseAll = /**\n * Collapse all dataNodes in the tree.\n * @return {?}\n */\n function () {\n this.expansionModel.clear();\n };\n /** Expands a subtree rooted at given data node recursively. */\n /**\n * Expands a subtree rooted at given data node recursively.\n * @param {?} dataNode\n * @return {?}\n */\n BaseTreeControl.prototype.expandDescendants = /**\n * Expands a subtree rooted at given data node recursively.\n * @param {?} dataNode\n * @return {?}\n */\n function (dataNode) {\n var _a;\n /** @type {?} */\n var toBeProcessed = [dataNode];\n toBeProcessed.push.apply(toBeProcessed, this.getDescendants(dataNode));\n (_a = this.expansionModel).select.apply(_a, toBeProcessed);\n };\n /** Collapses a subtree rooted at given data node recursively. */\n /**\n * Collapses a subtree rooted at given data node recursively.\n * @param {?} dataNode\n * @return {?}\n */\n BaseTreeControl.prototype.collapseDescendants = /**\n * Collapses a subtree rooted at given data node recursively.\n * @param {?} dataNode\n * @return {?}\n */\n function (dataNode) {\n var _a;\n /** @type {?} */\n var toBeProcessed = [dataNode];\n toBeProcessed.push.apply(toBeProcessed, this.getDescendants(dataNode));\n (_a = this.expansionModel).deselect.apply(_a, toBeProcessed);\n };\n return BaseTreeControl;\n}());\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n/**\n * Flat tree control. Able to expand/collapse a subtree recursively for flattened tree.\n * @template T\n */\nvar /**\n * Flat tree control. Able to expand/collapse a subtree recursively for flattened tree.\n * @template T\n */\nFlatTreeControl = /** @class */ (function (_super) {\n __extends(FlatTreeControl, _super);\n /** Construct with flat tree data node functions getLevel and isExpandable. */\n function FlatTreeControl(getLevel, isExpandable) {\n var _this = _super.call(this) || this;\n _this.getLevel = getLevel;\n _this.isExpandable = isExpandable;\n return _this;\n }\n /**\n * Gets a list of the data node's subtree of descendent data nodes.\n *\n * To make this working, the `dataNodes` of the TreeControl must be flattened tree nodes\n * with correct levels.\n */\n /**\n * Gets a list of the data node's subtree of descendent data nodes.\n *\n * To make this working, the `dataNodes` of the TreeControl must be flattened tree nodes\n * with correct levels.\n * @param {?} dataNode\n * @return {?}\n */\n FlatTreeControl.prototype.getDescendants = /**\n * Gets a list of the data node's subtree of descendent data nodes.\n *\n * To make this working, the `dataNodes` of the TreeControl must be flattened tree nodes\n * with correct levels.\n * @param {?} dataNode\n * @return {?}\n */\n function (dataNode) {\n /** @type {?} */\n var startIndex = this.dataNodes.indexOf(dataNode);\n /** @type {?} */\n var results = [];\n // Goes through flattened tree nodes in the `dataNodes` array, and get all descendants.\n // The level of descendants of a tree node must be greater than the level of the given\n // tree node.\n // If we reach a node whose level is equal to the level of the tree node, we hit a sibling.\n // If we reach a node whose level is greater than the level of the tree node, we hit a\n // sibling of an ancestor.\n for (var i = startIndex + 1; i < this.dataNodes.length && this.getLevel(dataNode) < this.getLevel(this.dataNodes[i]); i++) {\n results.push(this.dataNodes[i]);\n }\n return results;\n };\n /**\n * Expands all data nodes in the tree.\n *\n * To make this working, the `dataNodes` variable of the TreeControl must be set to all flattened\n * data nodes of the tree.\n */\n /**\n * Expands all data nodes in the tree.\n *\n * To make this working, the `dataNodes` variable of the TreeControl must be set to all flattened\n * data nodes of the tree.\n * @return {?}\n */\n FlatTreeControl.prototype.expandAll = /**\n * Expands all data nodes in the tree.\n *\n * To make this working, the `dataNodes` variable of the TreeControl must be set to all flattened\n * data nodes of the tree.\n * @return {?}\n */\n function () {\n var _a;\n (_a = this.expansionModel).select.apply(_a, this.dataNodes);\n };\n return FlatTreeControl;\n}(BaseTreeControl));\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n/**\n * Nested tree control. Able to expand/collapse a subtree recursively for NestedNode type.\n * @template T\n */\nvar /**\n * Nested tree control. Able to expand/collapse a subtree recursively for NestedNode type.\n * @template T\n */\nNestedTreeControl = /** @class */ (function (_super) {\n __extends(NestedTreeControl, _super);\n /** Construct with nested tree function getChildren. */\n function NestedTreeControl(getChildren) {\n var _this = _super.call(this) || this;\n _this.getChildren = getChildren;\n return _this;\n }\n /**\n * Expands all dataNodes in the tree.\n *\n * To make this working, the `dataNodes` variable of the TreeControl must be set to all root level\n * data nodes of the tree.\n */\n /**\n * Expands all dataNodes in the tree.\n *\n * To make this working, the `dataNodes` variable of the TreeControl must be set to all root level\n * data nodes of the tree.\n * @return {?}\n */\n NestedTreeControl.prototype.expandAll = /**\n * Expands all dataNodes in the tree.\n *\n * To make this working, the `dataNodes` variable of the TreeControl must be set to all root level\n * data nodes of the tree.\n * @return {?}\n */\n function () {\n var _a;\n var _this = this;\n this.expansionModel.clear();\n /** @type {?} */\n var allNodes = this.dataNodes.reduce((/**\n * @param {?} accumulator\n * @param {?} dataNode\n * @return {?}\n */\n function (accumulator, dataNode) {\n return accumulator.concat(_this.getDescendants(dataNode), [dataNode]);\n }), []);\n (_a = this.expansionModel).select.apply(_a, allNodes);\n };\n /** Gets a list of descendant dataNodes of a subtree rooted at given data node recursively. */\n /**\n * Gets a list of descendant dataNodes of a subtree rooted at given data node recursively.\n * @param {?} dataNode\n * @return {?}\n */\n NestedTreeControl.prototype.getDescendants = /**\n * Gets a list of descendant dataNodes of a subtree rooted at given data node recursively.\n * @param {?} dataNode\n * @return {?}\n */\n function (dataNode) {\n /** @type {?} */\n var descendants = [];\n this._getDescendants(descendants, dataNode);\n // Remove the node itself\n return descendants.splice(1);\n };\n /** A helper function to get descendants recursively. */\n /**\n * A helper function to get descendants recursively.\n * @protected\n * @param {?} descendants\n * @param {?} dataNode\n * @return {?}\n */\n NestedTreeControl.prototype._getDescendants = /**\n * A helper function to get descendants recursively.\n * @protected\n * @param {?} descendants\n * @param {?} dataNode\n * @return {?}\n */\n function (descendants, dataNode) {\n var _this = this;\n descendants.push(dataNode);\n /** @type {?} */\n var childrenNodes = this.getChildren(dataNode);\n if (Array.isArray(childrenNodes)) {\n childrenNodes.forEach((/**\n * @param {?} child\n * @return {?}\n */\n function (child) { return _this._getDescendants(descendants, child); }));\n }\n else if (childrenNodes instanceof Observable) {\n // TypeScript as of version 3.5 doesn't seem to treat `Boolean` like a function that\n // returns a `boolean` specifically in the context of `filter`, so we manually clarify that.\n childrenNodes.pipe(take(1), filter((/** @type {?} */ (Boolean))))\n .subscribe((/**\n * @param {?} children\n * @return {?}\n */\n function (children) {\n for (var _i = 0, children_1 = children; _i < children_1.length; _i++) {\n var child = children_1[_i];\n _this._getDescendants(descendants, child);\n }\n }));\n }\n };\n return NestedTreeControl;\n}(BaseTreeControl));\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 * Injection token used to provide a `CdkTreeNode` to its outlet.\n * Used primarily to avoid circular imports.\n * \\@docs-private\n * @type {?}\n */\nvar CDK_TREE_NODE_OUTLET_NODE = new InjectionToken('CDK_TREE_NODE_OUTLET_NODE');\n/**\n * Outlet for nested CdkNode. Put `[cdkTreeNodeOutlet]` on a tag to place children dataNodes\n * inside the outlet.\n */\nvar CdkTreeNodeOutlet = /** @class */ (function () {\n function CdkTreeNodeOutlet(viewContainer, _node) {\n this.viewContainer = viewContainer;\n this._node = _node;\n }\n CdkTreeNodeOutlet.decorators = [\n { type: Directive, args: [{\n selector: '[cdkTreeNodeOutlet]'\n },] },\n ];\n /** @nocollapse */\n CdkTreeNodeOutlet.ctorParameters = function () { return [\n { type: ViewContainerRef },\n { type: undefined, decorators: [{ type: Inject, args: [CDK_TREE_NODE_OUTLET_NODE,] }, { type: Optional }] }\n ]; };\n return CdkTreeNodeOutlet;\n}());\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n/**\n * Context provided to the tree node component.\n * @template T\n */\nvar /**\n * Context provided to the tree node component.\n * @template T\n */\nCdkTreeNodeOutletContext = /** @class */ (function () {\n function CdkTreeNodeOutletContext(data) {\n this.$implicit = data;\n }\n return CdkTreeNodeOutletContext;\n}());\n/**\n * Data node definition for the CdkTree.\n * Captures the node's template and a when predicate that describes when this node should be used.\n * @template T\n */\nvar CdkTreeNodeDef = /** @class */ (function () {\n /** @docs-private */\n function CdkTreeNodeDef(template) {\n this.template = template;\n }\n CdkTreeNodeDef.decorators = [\n { type: Directive, args: [{\n selector: '[cdkTreeNodeDef]',\n inputs: [\n 'when: cdkTreeNodeDefWhen'\n ],\n },] },\n ];\n /** @nocollapse */\n CdkTreeNodeDef.ctorParameters = function () { return [\n { type: TemplateRef }\n ]; };\n return CdkTreeNodeDef;\n}());\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n\n/**\n * Returns an error to be thrown when there is no usable data.\n * \\@docs-private\n * @return {?}\n */\nfunction getTreeNoValidDataSourceError() {\n return Error(\"A valid data source must be provided.\");\n}\n/**\n * Returns an error to be thrown when there are multiple nodes that are missing a when function.\n * \\@docs-private\n * @return {?}\n */\nfunction getTreeMultipleDefaultNodeDefsError() {\n return Error(\"There can only be one default row without a when predicate function.\");\n}\n/**\n * Returns an error to be thrown when there are no matching node defs for a particular set of data.\n * \\@docs-private\n * @return {?}\n */\nfunction getTreeMissingMatchingNodeDefError() {\n return Error(\"Could not find a matching node definition for the provided node data.\");\n}\n/**\n * Returns an error to be thrown when there are tree control.\n * \\@docs-private\n * @return {?}\n */\nfunction getTreeControlMissingError() {\n return Error(\"Could not find a tree control for the tree.\");\n}\n/**\n * Returns an error to be thrown when tree control did not implement functions for flat/nested node.\n * \\@docs-private\n * @return {?}\n */\nfunction getTreeControlFunctionsMissingError() {\n return Error(\"Could not find functions for nested/flat tree in tree control.\");\n}\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n/**\n * CDK tree component that connects with a data source to retrieve data of type `T` and renders\n * dataNodes with hierarchy. Updates the dataNodes when new data is provided by the data source.\n * @template T\n */\nvar CdkTree = /** @class */ (function () {\n function CdkTree(_differs, _changeDetectorRef) {\n this._differs = _differs;\n this._changeDetectorRef = _changeDetectorRef;\n /**\n * Subject that emits when the component has been destroyed.\n */\n this._onDestroy = new Subject();\n /**\n * Level of nodes\n */\n this._levels = new Map();\n // TODO(tinayuangao): Setup a listener for scrolling, emit the calculated view to viewChange.\n // Remove the MAX_VALUE in viewChange\n /**\n * Stream containing the latest information on what rows are being displayed on screen.\n * Can be used by the data source to as a heuristic of what data should be provided.\n */\n this.viewChange = new BehaviorSubject({ start: 0, end: Number.MAX_VALUE });\n }\n Object.defineProperty(CdkTree.prototype, \"dataSource\", {\n /**\n * Provides a stream containing the latest data array to render. Influenced by the tree's\n * stream of view window (what dataNodes are currently on screen).\n * Data source can be an observable of data array, or a data array to render.\n */\n get: /**\n * Provides a stream containing the latest data array to render. Influenced by the tree's\n * stream of view window (what dataNodes are currently on screen).\n * Data source can be an observable of data array, or a data array to render.\n * @return {?}\n */\n function () { return this._dataSource; },\n set: /**\n * @param {?} dataSource\n * @return {?}\n */\n function (dataSource) {\n if (this._dataSource !== dataSource) {\n this._switchDataSource(dataSource);\n }\n },\n enumerable: true,\n configurable: true\n });\n /**\n * @return {?}\n */\n CdkTree.prototype.ngOnInit = /**\n * @return {?}\n */\n function () {\n this._dataDiffer = this._differs.find([]).create(this.trackBy);\n if (!this.treeControl) {\n throw getTreeControlMissingError();\n }\n };\n /**\n * @return {?}\n */\n CdkTree.prototype.ngOnDestroy = /**\n * @return {?}\n */\n function () {\n this._nodeOutlet.viewContainer.clear();\n this._onDestroy.next();\n this._onDestroy.complete();\n if (this._dataSource && typeof ((/** @type {?} */ (this._dataSource))).disconnect === 'function') {\n ((/** @type {?} */ (this.dataSource))).disconnect(this);\n }\n if (this._dataSubscription) {\n this._dataSubscription.unsubscribe();\n this._dataSubscription = null;\n }\n };\n /**\n * @return {?}\n */\n CdkTree.prototype.ngAfterContentChecked = /**\n * @return {?}\n */\n function () {\n /** @type {?} */\n var defaultNodeDefs = this._nodeDefs.filter((/**\n * @param {?} def\n * @return {?}\n */\n function (def) { return !def.when; }));\n if (defaultNodeDefs.length > 1) {\n throw getTreeMultipleDefaultNodeDefsError();\n }\n this._defaultNodeDef = defaultNodeDefs[0];\n if (this.dataSource && this._nodeDefs && !this._dataSubscription) {\n this._observeRenderChanges();\n }\n };\n // TODO(tinayuangao): Work on keyboard traversal and actions, make sure it's working for RTL\n // and nested trees.\n /**\n * Switch to the provided data source by resetting the data and unsubscribing from the current\n * render change subscription if one exists. If the data source is null, interpret this by\n * clearing the node outlet. Otherwise start listening for new data.\n */\n // TODO(tinayuangao): Work on keyboard traversal and actions, make sure it's working for RTL\n // and nested trees.\n /**\n * Switch to the provided data source by resetting the data and unsubscribing from the current\n * render change subscription if one exists. If the data source is null, interpret this by\n * clearing the node outlet. Otherwise start listening for new data.\n * @private\n * @param {?} dataSource\n * @return {?}\n */\n CdkTree.prototype._switchDataSource = \n // TODO(tinayuangao): Work on keyboard traversal and actions, make sure it's working for RTL\n // and nested trees.\n /**\n * Switch to the provided data source by resetting the data and unsubscribing from the current\n * render change subscription if one exists. If the data source is null, interpret this by\n * clearing the node outlet. Otherwise start listening for new data.\n * @private\n * @param {?} dataSource\n * @return {?}\n */\n function (dataSource) {\n if (this._dataSource && typeof ((/** @type {?} */ (this._dataSource))).disconnect === 'function') {\n ((/** @type {?} */ (this.dataSource))).disconnect(this);\n }\n if (this._dataSubscription) {\n this._dataSubscription.unsubscribe();\n this._dataSubscription = null;\n }\n // Remove the all dataNodes if there is now no data source\n if (!dataSource) {\n this._nodeOutlet.viewContainer.clear();\n }\n this._dataSource = dataSource;\n if (this._nodeDefs) {\n this._observeRenderChanges();\n }\n };\n /** Set up a subscription for the data provided by the data source. */\n /**\n * Set up a subscription for the data provided by the data source.\n * @private\n * @return {?}\n */\n CdkTree.prototype._observeRenderChanges = /**\n * Set up a subscription for the data provided by the data source.\n * @private\n * @return {?}\n */\n function () {\n var _this = this;\n /** @type {?} */\n var dataStream;\n if (isDataSource(this._dataSource)) {\n dataStream = this._dataSource.connect(this);\n }\n else if (this._dataSource instanceof Observable) {\n dataStream = this._dataSource;\n }\n else if (Array.isArray(this._dataSource)) {\n dataStream = of(this._dataSource);\n }\n if (dataStream) {\n this._dataSubscription = dataStream.pipe(takeUntil(this._onDestroy))\n .subscribe((/**\n * @param {?} data\n * @return {?}\n */\n function (data) { return _this.renderNodeChanges(data); }));\n }\n else {\n throw getTreeNoValidDataSourceError();\n }\n };\n /** Check for changes made in the data and render each change (node added/removed/moved). */\n /**\n * Check for changes made in the data and render each change (node added/removed/moved).\n * @param {?} data\n * @param {?=} dataDiffer\n * @param {?=} viewContainer\n * @param {?=} parentData\n * @return {?}\n */\n CdkTree.prototype.renderNodeChanges = /**\n * Check for changes made in the data and render each change (node added/removed/moved).\n * @param {?} data\n * @param {?=} dataDiffer\n * @param {?=} viewContainer\n * @param {?=} parentData\n * @return {?}\n */\n function (data, dataDiffer, viewContainer, parentData) {\n var _this = this;\n if (dataDiffer === void 0) { dataDiffer = this._dataDiffer; }\n if (viewContainer === void 0) { viewContainer = this._nodeOutlet.viewContainer; }\n /** @type {?} */\n var changes = dataDiffer.diff(data);\n if (!changes) {\n return;\n }\n changes.forEachOperation((/**\n * @param {?} item\n * @param {?} adjustedPreviousIndex\n * @param {?} currentIndex\n * @return {?}\n */\n function (item, adjustedPreviousIndex, currentIndex) {\n if (item.previousIndex == null) {\n _this.insertNode(data[(/** @type {?} */ (currentIndex))], (/** @type {?} */ (currentIndex)), viewContainer, parentData);\n }\n else if (currentIndex == null) {\n viewContainer.remove((/** @type {?} */ (adjustedPreviousIndex)));\n _this._levels.delete(item.item);\n }\n else {\n /** @type {?} */\n var view = viewContainer.get((/** @type {?} */ (adjustedPreviousIndex)));\n viewContainer.move((/** @type {?} */ (view)), currentIndex);\n }\n }));\n this._changeDetectorRef.detectChanges();\n };\n /**\n * Finds the matching node definition that should be used for this node data. If there is only\n * one node definition, it is returned. Otherwise, find the node definition that has a when\n * predicate that returns true with the data. If none return true, return the default node\n * definition.\n */\n /**\n * Finds the matching node definition that should be used for this node data. If there is only\n * one node definition, it is returned. Otherwise, find the node definition that has a when\n * predicate that returns true with the data. If none return true, return the default node\n * definition.\n * @param {?} data\n * @param {?} i\n * @return {?}\n */\n CdkTree.prototype._getNodeDef = /**\n * Finds the matching node definition that should be used for this node data. If there is only\n * one node definition, it is returned. Otherwise, find the node definition that has a when\n * predicate that returns true with the data. If none return true, return the default node\n * definition.\n * @param {?} data\n * @param {?} i\n * @return {?}\n */\n function (data, i) {\n if (this._nodeDefs.length === 1) {\n return this._nodeDefs.first;\n }\n /** @type {?} */\n var nodeDef = this._nodeDefs.find((/**\n * @param {?} def\n * @return {?}\n */\n function (def) { return def.when && def.when(i, data); })) || this._defaultNodeDef;\n if (!nodeDef) {\n throw getTreeMissingMatchingNodeDefError();\n }\n return nodeDef;\n };\n /**\n * Create the embedded view for the data node template and place it in the correct index location\n * within the data node view container.\n */\n /**\n * Create the embedded view for the data node template and place it in the correct index location\n * within the data node view container.\n * @param {?} nodeData\n * @param {?} index\n * @param {?=} viewContainer\n * @param {?=} parentData\n * @return {?}\n */\n CdkTree.prototype.insertNode = /**\n * Create the embedded view for the data node template and place it in the correct index location\n * within the data node view container.\n * @param {?} nodeData\n * @param {?} index\n * @param {?=} viewContainer\n * @param {?=} parentData\n * @return {?}\n */\n function (nodeData, index, viewContainer, parentData) {\n /** @type {?} */\n var node = this._getNodeDef(nodeData, index);\n // Node context that will be provided to created embedded view\n /** @type {?} */\n var context = new CdkTreeNodeOutletContext(nodeData);\n // If the tree is flat tree, then use the `getLevel` function in flat tree control\n // Otherwise, use the level of parent node.\n if (this.treeControl.getLevel) {\n context.level = this.treeControl.getLevel(nodeData);\n }\n else if (typeof parentData !== 'undefined' && this._levels.has(parentData)) {\n context.level = (/** @type {?} */ (this._levels.get(parentData))) + 1;\n }\n else {\n context.level = 0;\n }\n this._levels.set(nodeData, context.level);\n // Use default tree nodeOutlet, or nested node's nodeOutlet\n /** @type {?} */\n var container = viewContainer ? viewContainer : this._nodeOutlet.viewContainer;\n container.createEmbeddedView(node.template, context, index);\n // Set the data to just created `CdkTreeNode`.\n // The `CdkTreeNode` created from `createEmbeddedView` will be saved in static variable\n // `mostRecentTreeNode`. We get it from static variable and pass the node data to it.\n if (CdkTreeNode.mostRecentTreeNode) {\n CdkTreeNode.mostRecentTreeNode.data = nodeData;\n }\n };\n CdkTree.decorators = [\n { type: Component, args: [{selector: 'cdk-tree',\n exportAs: 'cdkTree',\n template: \"\",\n host: {\n 'class': 'cdk-tree',\n 'role': 'tree',\n },\n encapsulation: ViewEncapsulation.None,\n // The \"OnPush\" status for the `CdkTree` component is effectively a noop, so we are removing it.\n // The view for `CdkTree` consists entirely of templates declared in other views. As they are\n // declared elsewhere, they are checked when their declaration points are checked.\n // tslint:disable-next-line:validate-decorators\n changeDetection: ChangeDetectionStrategy.Default\n },] },\n ];\n /** @nocollapse */\n CdkTree.ctorParameters = function () { return [\n { type: IterableDiffers },\n { type: ChangeDetectorRef }\n ]; };\n CdkTree.propDecorators = {\n dataSource: [{ type: Input }],\n treeControl: [{ type: Input }],\n trackBy: [{ type: Input }],\n _nodeOutlet: [{ type: ViewChild, args: [CdkTreeNodeOutlet, { static: true },] }],\n _nodeDefs: [{ type: ContentChildren, args: [CdkTreeNodeDef,] }]\n };\n return CdkTree;\n}());\n/**\n * Tree node for CdkTree. It contains the data in the tree node.\n * @template T\n */\nvar CdkTreeNode = /** @class */ (function () {\n function CdkTreeNode(_elementRef, _tree) {\n this._elementRef = _elementRef;\n this._tree = _tree;\n /**\n * Subject that emits when the component has been destroyed.\n */\n this._destroyed = new Subject();\n /**\n * Emits when the node's data has changed.\n */\n this._dataChanges = new Subject();\n /**\n * The role of the node should be 'group' if it's an internal node,\n * and 'treeitem' if it's a leaf node.\n */\n this.role = 'treeitem';\n CdkTreeNode.mostRecentTreeNode = (/** @type {?} */ (this));\n }\n Object.defineProperty(CdkTreeNode.prototype, \"data\", {\n /** The tree node's data. */\n get: /**\n * The tree node's data.\n * @return {?}\n */\n function () { return this._data; },\n set: /**\n * @param {?} value\n * @return {?}\n */\n function (value) {\n if (value !== this._data) {\n this._data = value;\n this._setRoleFromData();\n this._dataChanges.next();\n }\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(CdkTreeNode.prototype, \"isExpanded\", {\n get: /**\n * @return {?}\n */\n function () {\n return this._tree.treeControl.isExpanded(this._data);\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(CdkTreeNode.prototype, \"level\", {\n get: /**\n * @return {?}\n */\n function () {\n return this._tree.treeControl.getLevel ? this._tree.treeControl.getLevel(this._data) : 0;\n },\n enumerable: true,\n configurable: true\n });\n /**\n * @return {?}\n */\n CdkTreeNode.prototype.ngOnDestroy = /**\n * @return {?}\n */\n function () {\n // If this is the last tree node being destroyed,\n // clear out the reference to avoid leaking memory.\n if (CdkTreeNode.mostRecentTreeNode === this) {\n CdkTreeNode.mostRecentTreeNode = null;\n }\n this._dataChanges.complete();\n this._destroyed.next();\n this._destroyed.complete();\n };\n /** Focuses the menu item. Implements for FocusableOption. */\n /**\n * Focuses the menu item. Implements for FocusableOption.\n * @return {?}\n */\n CdkTreeNode.prototype.focus = /**\n * Focuses the menu item. Implements for FocusableOption.\n * @return {?}\n */\n function () {\n this._elementRef.nativeElement.focus();\n };\n /**\n * @protected\n * @return {?}\n */\n CdkTreeNode.prototype._setRoleFromData = /**\n * @protected\n * @return {?}\n */\n function () {\n var _this = this;\n if (this._tree.treeControl.isExpandable) {\n this.role = this._tree.treeControl.isExpandable(this._data) ? 'group' : 'treeitem';\n }\n else {\n if (!this._tree.treeControl.getChildren) {\n throw getTreeControlFunctionsMissingError();\n }\n /** @type {?} */\n var childrenNodes = this._tree.treeControl.getChildren(this._data);\n if (Array.isArray(childrenNodes)) {\n this._setRoleFromChildren((/** @type {?} */ (childrenNodes)));\n }\n else if (childrenNodes instanceof Observable) {\n childrenNodes.pipe(takeUntil(this._destroyed))\n .subscribe((/**\n * @param {?} children\n * @return {?}\n */\n function (children) { return _this._setRoleFromChildren(children); }));\n }\n }\n };\n /**\n * @protected\n * @param {?} children\n * @return {?}\n */\n CdkTreeNode.prototype._setRoleFromChildren = /**\n * @protected\n * @param {?} children\n * @return {?}\n */\n function (children) {\n this.role = children && children.length ? 'group' : 'treeitem';\n };\n /**\n * The most recently created `CdkTreeNode`. We save it in static variable so we can retrieve it\n * in `CdkTree` and set the data to it.\n */\n CdkTreeNode.mostRecentTreeNode = null;\n CdkTreeNode.decorators = [\n { type: Directive, args: [{\n selector: 'cdk-tree-node',\n exportAs: 'cdkTreeNode',\n host: {\n '[attr.aria-expanded]': 'isExpanded',\n '[attr.aria-level]': 'role === \"treeitem\" ? level : null',\n '[attr.role]': 'role',\n 'class': 'cdk-tree-node',\n },\n },] },\n ];\n /** @nocollapse */\n CdkTreeNode.ctorParameters = function () { return [\n { type: ElementRef },\n { type: CdkTree }\n ]; };\n CdkTreeNode.propDecorators = {\n role: [{ type: Input }]\n };\n return CdkTreeNode;\n}());\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n/**\n * Nested node is a child of ``. It works with nested tree.\n * By using `cdk-nested-tree-node` component in tree node template, children of the parent node will\n * be added in the `cdkTreeNodeOutlet` in tree node template.\n * For example:\n * ```html\n * \n * {{node.name}}\n * \n * \n * ```\n * The children of node will be automatically added to `cdkTreeNodeOutlet`, the result dom will be\n * like this:\n * ```html\n * \n * {{node.name}}\n * {{child1.name}}\n * {{child2.name}}\n * \n * ```\n * @template T\n */\nvar CdkNestedTreeNode = /** @class */ (function (_super) {\n __extends(CdkNestedTreeNode, _super);\n function CdkNestedTreeNode(_elementRef, _tree, _differs) {\n var _this = _super.call(this, _elementRef, _tree) || this;\n _this._elementRef = _elementRef;\n _this._tree = _tree;\n _this._differs = _differs;\n return _this;\n }\n /**\n * @return {?}\n */\n CdkNestedTreeNode.prototype.ngAfterContentInit = /**\n * @return {?}\n */\n function () {\n var _this = this;\n this._dataDiffer = this._differs.find([]).create(this._tree.trackBy);\n if (!this._tree.treeControl.getChildren) {\n throw getTreeControlFunctionsMissingError();\n }\n /** @type {?} */\n var childrenNodes = this._tree.treeControl.getChildren(this.data);\n if (Array.isArray(childrenNodes)) {\n this.updateChildrenNodes((/** @type {?} */ (childrenNodes)));\n }\n else if (childrenNodes instanceof Observable) {\n childrenNodes.pipe(takeUntil(this._destroyed))\n .subscribe((/**\n * @param {?} result\n * @return {?}\n */\n function (result) { return _this.updateChildrenNodes(result); }));\n }\n this.nodeOutlet.changes.pipe(takeUntil(this._destroyed))\n .subscribe((/**\n * @return {?}\n */\n function () { return _this.updateChildrenNodes(); }));\n };\n /**\n * @return {?}\n */\n CdkNestedTreeNode.prototype.ngOnDestroy = /**\n * @return {?}\n */\n function () {\n this._clear();\n _super.prototype.ngOnDestroy.call(this);\n };\n /** Add children dataNodes to the NodeOutlet */\n /**\n * Add children dataNodes to the NodeOutlet\n * @protected\n * @param {?=} children\n * @return {?}\n */\n CdkNestedTreeNode.prototype.updateChildrenNodes = /**\n * Add children dataNodes to the NodeOutlet\n * @protected\n * @param {?=} children\n * @return {?}\n */\n function (children) {\n /** @type {?} */\n var outlet = this._getNodeOutlet();\n if (children) {\n this._children = children;\n }\n if (outlet && this._children) {\n /** @type {?} */\n var viewContainer = outlet.viewContainer;\n this._tree.renderNodeChanges(this._children, this._dataDiffer, viewContainer, this._data);\n }\n else {\n // Reset the data differ if there's no children nodes displayed\n this._dataDiffer.diff([]);\n }\n };\n /** Clear the children dataNodes. */\n /**\n * Clear the children dataNodes.\n * @protected\n * @return {?}\n */\n CdkNestedTreeNode.prototype._clear = /**\n * Clear the children dataNodes.\n * @protected\n * @return {?}\n */\n function () {\n /** @type {?} */\n var outlet = this._getNodeOutlet();\n if (outlet) {\n outlet.viewContainer.clear();\n this._dataDiffer.diff([]);\n }\n };\n /** Gets the outlet for the current node. */\n /**\n * Gets the outlet for the current node.\n * @private\n * @return {?}\n */\n CdkNestedTreeNode.prototype._getNodeOutlet = /**\n * Gets the outlet for the current node.\n * @private\n * @return {?}\n */\n function () {\n var _this = this;\n /** @type {?} */\n var outlets = this.nodeOutlet;\n // Note that since we use `descendants: true` on the query, we have to ensure\n // that we don't pick up the outlet of a child node by accident.\n return outlets && outlets.find((/**\n * @param {?} outlet\n * @return {?}\n */\n function (outlet) { return !outlet._node || outlet._node === _this; }));\n };\n CdkNestedTreeNode.decorators = [\n { type: Directive, args: [{\n selector: 'cdk-nested-tree-node',\n exportAs: 'cdkNestedTreeNode',\n host: {\n '[attr.aria-expanded]': 'isExpanded',\n '[attr.role]': 'role',\n 'class': 'cdk-tree-node cdk-nested-tree-node',\n },\n providers: [\n { provide: CdkTreeNode, useExisting: CdkNestedTreeNode },\n { provide: CDK_TREE_NODE_OUTLET_NODE, useExisting: CdkNestedTreeNode }\n ]\n },] },\n ];\n /** @nocollapse */\n CdkNestedTreeNode.ctorParameters = function () { return [\n { type: ElementRef },\n { type: CdkTree },\n { type: IterableDiffers }\n ]; };\n CdkNestedTreeNode.propDecorators = {\n nodeOutlet: [{ type: ContentChildren, args: [CdkTreeNodeOutlet, {\n // We need to use `descendants: true`, because Ivy will no longer match\n // indirect descendants if it's left as false.\n descendants: true\n },] }]\n };\n return CdkNestedTreeNode;\n}(CdkTreeNode));\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n/**\n * Regex used to split a string on its CSS units.\n * @type {?}\n */\nvar cssUnitPattern = /([A-Za-z%]+)$/;\n/**\n * Indent for the children tree dataNodes.\n * This directive will add left-padding to the node to show hierarchy.\n * @template T\n */\nvar CdkTreeNodePadding = /** @class */ (function () {\n function CdkTreeNodePadding(_treeNode, _tree, _renderer, _element, _dir) {\n var _this = this;\n this._treeNode = _treeNode;\n this._tree = _tree;\n this._renderer = _renderer;\n this._element = _element;\n this._dir = _dir;\n /**\n * Subject that emits when the component has been destroyed.\n */\n this._destroyed = new Subject();\n /**\n * CSS units used for the indentation value.\n */\n this.indentUnits = 'px';\n this._indent = 40;\n this._setPadding();\n if (_dir) {\n _dir.change.pipe(takeUntil(this._destroyed)).subscribe((/**\n * @return {?}\n */\n function () { return _this._setPadding(true); }));\n }\n // In Ivy the indentation binding might be set before the tree node's data has been added,\n // which means that we'll miss the first render. We have to subscribe to changes in the\n // data to ensure that everything is up to date.\n _treeNode._dataChanges.subscribe((/**\n * @return {?}\n */\n function () { return _this._setPadding(); }));\n }\n Object.defineProperty(CdkTreeNodePadding.prototype, \"level\", {\n /** The level of depth of the tree node. The padding will be `level * indent` pixels. */\n get: /**\n * The level of depth of the tree node. The padding will be `level * indent` pixels.\n * @return {?}\n */\n function () { return this._level; },\n set: /**\n * @param {?} value\n * @return {?}\n */\n function (value) {\n // Set to null as the fallback value so that _setPadding can fall back to the node level if the\n // consumer set the directive as `cdkTreeNodePadding=\"\"`. We still want to take this value if\n // they set 0 explicitly.\n this._level = (/** @type {?} */ (coerceNumberProperty(value, null)));\n this._setPadding();\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(CdkTreeNodePadding.prototype, \"indent\", {\n /**\n * The indent for each level. Can be a number or a CSS string.\n * Default number 40px from material design menu sub-menu spec.\n */\n get: /**\n * The indent for each level. Can be a number or a CSS string.\n * Default number 40px from material design menu sub-menu spec.\n * @return {?}\n */\n function () { return this._indent; },\n set: /**\n * @param {?} indent\n * @return {?}\n */\n function (indent) {\n /** @type {?} */\n var value = indent;\n /** @type {?} */\n var units = 'px';\n if (typeof indent === 'string') {\n /** @type {?} */\n var parts = indent.split(cssUnitPattern);\n value = parts[0];\n units = parts[1] || units;\n }\n this.indentUnits = units;\n this._indent = coerceNumberProperty(value);\n this._setPadding();\n },\n enumerable: true,\n configurable: true\n });\n /**\n * @return {?}\n */\n CdkTreeNodePadding.prototype.ngOnDestroy = /**\n * @return {?}\n */\n function () {\n this._destroyed.next();\n this._destroyed.complete();\n };\n /** The padding indent value for the tree node. Returns a string with px numbers if not null. */\n /**\n * The padding indent value for the tree node. Returns a string with px numbers if not null.\n * @return {?}\n */\n CdkTreeNodePadding.prototype._paddingIndent = /**\n * The padding indent value for the tree node. Returns a string with px numbers if not null.\n * @return {?}\n */\n function () {\n /** @type {?} */\n var nodeLevel = (this._treeNode.data && this._tree.treeControl.getLevel)\n ? this._tree.treeControl.getLevel(this._treeNode.data)\n : null;\n /** @type {?} */\n var level = this._level == null ? nodeLevel : this._level;\n return typeof level === 'number' ? \"\" + level * this._indent + this.indentUnits : null;\n };\n /**\n * @param {?=} forceChange\n * @return {?}\n */\n CdkTreeNodePadding.prototype._setPadding = /**\n * @param {?=} forceChange\n * @return {?}\n */\n function (forceChange) {\n if (forceChange === void 0) { forceChange = false; }\n /** @type {?} */\n var padding = this._paddingIndent();\n if (padding !== this._currentPadding || forceChange) {\n /** @type {?} */\n var element = this._element.nativeElement;\n /** @type {?} */\n var paddingProp = this._dir && this._dir.value === 'rtl' ? 'paddingRight' : 'paddingLeft';\n /** @type {?} */\n var resetProp = paddingProp === 'paddingLeft' ? 'paddingRight' : 'paddingLeft';\n this._renderer.setStyle(element, paddingProp, padding);\n this._renderer.setStyle(element, resetProp, null);\n this._currentPadding = padding;\n }\n };\n CdkTreeNodePadding.decorators = [\n { type: Directive, args: [{\n selector: '[cdkTreeNodePadding]',\n },] },\n ];\n /** @nocollapse */\n CdkTreeNodePadding.ctorParameters = function () { return [\n { type: CdkTreeNode },\n { type: CdkTree },\n { type: Renderer2 },\n { type: ElementRef },\n { type: Directionality, decorators: [{ type: Optional }] }\n ]; };\n CdkTreeNodePadding.propDecorators = {\n level: [{ type: Input, args: ['cdkTreeNodePadding',] }],\n indent: [{ type: Input, args: ['cdkTreeNodePaddingIndent',] }]\n };\n return CdkTreeNodePadding;\n}());\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n/**\n * Node toggle to expand/collapse the node.\n * @template T\n */\nvar CdkTreeNodeToggle = /** @class */ (function () {\n function CdkTreeNodeToggle(_tree, _treeNode) {\n this._tree = _tree;\n this._treeNode = _treeNode;\n this._recursive = false;\n }\n Object.defineProperty(CdkTreeNodeToggle.prototype, \"recursive\", {\n /** Whether expand/collapse the node recursively. */\n get: /**\n * Whether expand/collapse the node recursively.\n * @return {?}\n */\n function () { return this._recursive; },\n set: /**\n * @param {?} value\n * @return {?}\n */\n function (value) { this._recursive = coerceBooleanProperty(value); },\n enumerable: true,\n configurable: true\n });\n // We have to use a `HostListener` here in order to support both Ivy and ViewEngine.\n // In Ivy the `host` bindings will be merged when this class is extended, whereas in\n // ViewEngine they're overwritten.\n // TODO(crisbeto): we move this back into `host` once Ivy is turned on by default.\n // tslint:disable-next-line:no-host-decorator-in-concrete\n // We have to use a `HostListener` here in order to support both Ivy and ViewEngine.\n // In Ivy the `host` bindings will be merged when this class is extended, whereas in\n // ViewEngine they're overwritten.\n // TODO(crisbeto): we move this back into `host` once Ivy is turned on by default.\n // tslint:disable-next-line:no-host-decorator-in-concrete\n /**\n * @param {?} event\n * @return {?}\n */\n CdkTreeNodeToggle.prototype._toggle = \n // We have to use a `HostListener` here in order to support both Ivy and ViewEngine.\n // In Ivy the `host` bindings will be merged when this class is extended, whereas in\n // ViewEngine they're overwritten.\n // TODO(crisbeto): we move this back into `host` once Ivy is turned on by default.\n // tslint:disable-next-line:no-host-decorator-in-concrete\n /**\n * @param {?} event\n * @return {?}\n */\n function (event) {\n this.recursive\n ? this._tree.treeControl.toggleDescendants(this._treeNode.data)\n : this._tree.treeControl.toggle(this._treeNode.data);\n event.stopPropagation();\n };\n CdkTreeNodeToggle.decorators = [\n { type: Directive, args: [{ selector: '[cdkTreeNodeToggle]' },] },\n ];\n /** @nocollapse */\n CdkTreeNodeToggle.ctorParameters = function () { return [\n { type: CdkTree },\n { type: CdkTreeNode }\n ]; };\n CdkTreeNodeToggle.propDecorators = {\n recursive: [{ type: Input, args: ['cdkTreeNodeToggleRecursive',] }],\n _toggle: [{ type: HostListener, args: ['click', ['$event'],] }]\n };\n return CdkTreeNodeToggle;\n}());\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n/** @type {?} */\nvar EXPORTED_DECLARATIONS = [\n CdkNestedTreeNode,\n CdkTreeNodeDef,\n CdkTreeNodePadding,\n CdkTreeNodeToggle,\n CdkTree,\n CdkTreeNode,\n CdkTreeNodeOutlet,\n];\nvar CdkTreeModule = /** @class */ (function () {\n function CdkTreeModule() {\n }\n CdkTreeModule.decorators = [\n { type: NgModule, args: [{\n imports: [CommonModule],\n exports: EXPORTED_DECLARATIONS,\n declarations: EXPORTED_DECLARATIONS,\n providers: [FocusMonitor, CdkTreeNodeDef]\n },] },\n ];\n return CdkTreeModule;\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 { BaseTreeControl, FlatTreeControl, NestedTreeControl, CdkNestedTreeNode, CdkTreeNodeOutletContext, CdkTreeNodeDef, CdkTreeNodePadding, CDK_TREE_NODE_OUTLET_NODE, CdkTreeNodeOutlet, CdkTree, CdkTreeNode, getTreeNoValidDataSourceError, getTreeMultipleDefaultNodeDefsError, getTreeMissingMatchingNodeDefError, getTreeControlMissingError, getTreeControlFunctionsMissingError, CdkTreeModule, CdkTreeNodeToggle };\n//# sourceMappingURL=tree.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 { ActiveDescendantKeyManager } from '@angular/cdk/a11y';\nimport { coerceBooleanProperty } from '@angular/cdk/coercion';\nimport { ChangeDetectionStrategy, ChangeDetectorRef, Component, ContentChildren, ElementRef, EventEmitter, Inject, InjectionToken, Input, Output, TemplateRef, ViewChild, ViewEncapsulation, Directive, forwardRef, Host, NgZone, Optional, ViewContainerRef, NgModule } from '@angular/core';\nimport { MAT_OPTION_PARENT_COMPONENT, MatOptgroup, MatOption, mixinDisableRipple, _countGroupLabelsBeforeOption, _getOptionScrollPosition, MatOptionSelectionChange, MatOptionModule, MatCommonModule } from '@angular/material/core';\nimport { Directionality } from '@angular/cdk/bidi';\nimport { DOWN_ARROW, ENTER, ESCAPE, TAB, UP_ARROW } from '@angular/cdk/keycodes';\nimport { Overlay, OverlayConfig, OverlayModule } from '@angular/cdk/overlay';\nimport { _supportsShadowDom } from '@angular/cdk/platform';\nimport { TemplatePortal } from '@angular/cdk/portal';\nimport { ViewportRuler } from '@angular/cdk/scrolling';\nimport { DOCUMENT, CommonModule } from '@angular/common';\nimport { NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { MatFormField } from '@angular/material/form-field';\nimport { defer, fromEvent, merge, of, Subject, Subscription } from 'rxjs';\nimport { delay, filter, map, switchMap, 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 * Autocomplete IDs need to be unique across components, so this counter exists outside of\n * the component definition.\n * @type {?}\n */\nvar _uniqueAutocompleteIdCounter = 0;\n/**\n * Event object that is emitted when an autocomplete option is selected.\n */\nvar /**\n * Event object that is emitted when an autocomplete option is selected.\n */\nMatAutocompleteSelectedEvent = /** @class */ (function () {\n function MatAutocompleteSelectedEvent(source, option) {\n this.source = source;\n this.option = option;\n }\n return MatAutocompleteSelectedEvent;\n}());\n// Boilerplate for applying mixins to MatAutocomplete.\n/**\n * \\@docs-private\n */\nvar \n// Boilerplate for applying mixins to MatAutocomplete.\n/**\n * \\@docs-private\n */\nMatAutocompleteBase = /** @class */ (function () {\n function MatAutocompleteBase() {\n }\n return MatAutocompleteBase;\n}());\n/** @type {?} */\nvar _MatAutocompleteMixinBase = mixinDisableRipple(MatAutocompleteBase);\n/**\n * Injection token to be used to override the default options for `mat-autocomplete`.\n * @type {?}\n */\nvar MAT_AUTOCOMPLETE_DEFAULT_OPTIONS = new InjectionToken('mat-autocomplete-default-options', {\n providedIn: 'root',\n factory: MAT_AUTOCOMPLETE_DEFAULT_OPTIONS_FACTORY,\n});\n/**\n * \\@docs-private\n * @return {?}\n */\nfunction MAT_AUTOCOMPLETE_DEFAULT_OPTIONS_FACTORY() {\n return { autoActiveFirstOption: false };\n}\nvar MatAutocomplete = /** @class */ (function (_super) {\n __extends(MatAutocomplete, _super);\n function MatAutocomplete(_changeDetectorRef, _elementRef, defaults) {\n var _this = _super.call(this) || this;\n _this._changeDetectorRef = _changeDetectorRef;\n _this._elementRef = _elementRef;\n /**\n * Whether the autocomplete panel should be visible, depending on option length.\n */\n _this.showPanel = false;\n _this._isOpen = false;\n /**\n * Function that maps an option's control value to its display value in the trigger.\n */\n _this.displayWith = null;\n /**\n * Event that is emitted whenever an option from the list is selected.\n */\n _this.optionSelected = new EventEmitter();\n /**\n * Event that is emitted when the autocomplete panel is opened.\n */\n _this.opened = new EventEmitter();\n /**\n * Event that is emitted when the autocomplete panel is closed.\n */\n _this.closed = new EventEmitter();\n _this._classList = {};\n /**\n * Unique ID to be used by autocomplete trigger's \"aria-owns\" property.\n */\n _this.id = \"mat-autocomplete-\" + _uniqueAutocompleteIdCounter++;\n _this._autoActiveFirstOption = !!defaults.autoActiveFirstOption;\n return _this;\n }\n Object.defineProperty(MatAutocomplete.prototype, \"isOpen\", {\n /** Whether the autocomplete panel is open. */\n get: /**\n * Whether the autocomplete panel is open.\n * @return {?}\n */\n function () { return this._isOpen && this.showPanel; },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(MatAutocomplete.prototype, \"autoActiveFirstOption\", {\n /**\n * Whether the first option should be highlighted when the autocomplete panel is opened.\n * Can be configured globally through the `MAT_AUTOCOMPLETE_DEFAULT_OPTIONS` token.\n */\n get: /**\n * Whether the first option should be highlighted when the autocomplete panel is opened.\n * Can be configured globally through the `MAT_AUTOCOMPLETE_DEFAULT_OPTIONS` token.\n * @return {?}\n */\n function () { return this._autoActiveFirstOption; },\n set: /**\n * @param {?} value\n * @return {?}\n */\n function (value) {\n this._autoActiveFirstOption = coerceBooleanProperty(value);\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(MatAutocomplete.prototype, \"classList\", {\n /**\n * Takes classes set on the host mat-autocomplete element and applies them to the panel\n * inside the overlay container to allow for easy styling.\n */\n set: /**\n * Takes classes set on the host mat-autocomplete element and applies them to the panel\n * inside the overlay container to allow for easy styling.\n * @param {?} value\n * @return {?}\n */\n function (value) {\n if (value && value.length) {\n this._classList = value.split(' ').reduce((/**\n * @param {?} classList\n * @param {?} className\n * @return {?}\n */\n function (classList, className) {\n classList[className.trim()] = true;\n return classList;\n }), (/** @type {?} */ ({})));\n }\n else {\n this._classList = {};\n }\n this._setVisibilityClasses(this._classList);\n this._elementRef.nativeElement.className = '';\n },\n enumerable: true,\n configurable: true\n });\n /**\n * @return {?}\n */\n MatAutocomplete.prototype.ngAfterContentInit = /**\n * @return {?}\n */\n function () {\n this._keyManager = new ActiveDescendantKeyManager(this.options).withWrap();\n // Set the initial visibility state.\n this._setVisibility();\n };\n /**\n * Sets the panel scrollTop. This allows us to manually scroll to display options\n * above or below the fold, as they are not actually being focused when active.\n */\n /**\n * Sets the panel scrollTop. This allows us to manually scroll to display options\n * above or below the fold, as they are not actually being focused when active.\n * @param {?} scrollTop\n * @return {?}\n */\n MatAutocomplete.prototype._setScrollTop = /**\n * Sets the panel scrollTop. This allows us to manually scroll to display options\n * above or below the fold, as they are not actually being focused when active.\n * @param {?} scrollTop\n * @return {?}\n */\n function (scrollTop) {\n if (this.panel) {\n this.panel.nativeElement.scrollTop = scrollTop;\n }\n };\n /** Returns the panel's scrollTop. */\n /**\n * Returns the panel's scrollTop.\n * @return {?}\n */\n MatAutocomplete.prototype._getScrollTop = /**\n * Returns the panel's scrollTop.\n * @return {?}\n */\n function () {\n return this.panel ? this.panel.nativeElement.scrollTop : 0;\n };\n /** Panel should hide itself when the option list is empty. */\n /**\n * Panel should hide itself when the option list is empty.\n * @return {?}\n */\n MatAutocomplete.prototype._setVisibility = /**\n * Panel should hide itself when the option list is empty.\n * @return {?}\n */\n function () {\n this.showPanel = !!this.options.length;\n this._setVisibilityClasses(this._classList);\n this._changeDetectorRef.markForCheck();\n };\n /** Emits the `select` event. */\n /**\n * Emits the `select` event.\n * @param {?} option\n * @return {?}\n */\n MatAutocomplete.prototype._emitSelectEvent = /**\n * Emits the `select` event.\n * @param {?} option\n * @return {?}\n */\n function (option) {\n /** @type {?} */\n var event = new MatAutocompleteSelectedEvent(this, option);\n this.optionSelected.emit(event);\n };\n /** Sets the autocomplete visibility classes on a classlist based on the panel is visible. */\n /**\n * Sets the autocomplete visibility classes on a classlist based on the panel is visible.\n * @private\n * @param {?} classList\n * @return {?}\n */\n MatAutocomplete.prototype._setVisibilityClasses = /**\n * Sets the autocomplete visibility classes on a classlist based on the panel is visible.\n * @private\n * @param {?} classList\n * @return {?}\n */\n function (classList) {\n classList['mat-autocomplete-visible'] = this.showPanel;\n classList['mat-autocomplete-hidden'] = !this.showPanel;\n };\n MatAutocomplete.decorators = [\n { type: Component, args: [{selector: 'mat-autocomplete',\n template: \"
\",\n styles: [\".mat-autocomplete-panel{min-width:112px;max-width:280px;overflow:auto;-webkit-overflow-scrolling:touch;visibility:hidden;max-width:none;max-height:256px;position:relative;width:100%;border-bottom-left-radius:4px;border-bottom-right-radius:4px}.mat-autocomplete-panel.mat-autocomplete-visible{visibility:visible}.mat-autocomplete-panel.mat-autocomplete-hidden{visibility:hidden}.mat-autocomplete-panel-above .mat-autocomplete-panel{border-radius:0;border-top-left-radius:4px;border-top-right-radius:4px}.mat-autocomplete-panel .mat-divider-horizontal{margin-top:-1px}@media (-ms-high-contrast:active){.mat-autocomplete-panel{outline:solid 1px}}\"],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n exportAs: 'matAutocomplete',\n inputs: ['disableRipple'],\n host: {\n 'class': 'mat-autocomplete'\n },\n providers: [\n { provide: MAT_OPTION_PARENT_COMPONENT, useExisting: MatAutocomplete }\n ]\n },] },\n ];\n /** @nocollapse */\n MatAutocomplete.ctorParameters = function () { return [\n { type: ChangeDetectorRef },\n { type: ElementRef },\n { type: undefined, decorators: [{ type: Inject, args: [MAT_AUTOCOMPLETE_DEFAULT_OPTIONS,] }] }\n ]; };\n MatAutocomplete.propDecorators = {\n template: [{ type: ViewChild, args: [TemplateRef, { static: true },] }],\n panel: [{ type: ViewChild, args: ['panel', { static: false },] }],\n options: [{ type: ContentChildren, args: [MatOption, { descendants: true },] }],\n optionGroups: [{ type: ContentChildren, args: [MatOptgroup,] }],\n displayWith: [{ type: Input }],\n autoActiveFirstOption: [{ type: Input }],\n panelWidth: [{ type: Input }],\n optionSelected: [{ type: Output }],\n opened: [{ type: Output }],\n closed: [{ type: Output }],\n classList: [{ type: Input, args: ['class',] }]\n };\n return MatAutocomplete;\n}(_MatAutocompleteMixinBase));\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n/**\n * Directive applied to an element to make it usable\n * as a connection point for an autocomplete panel.\n */\nvar MatAutocompleteOrigin = /** @class */ (function () {\n function MatAutocompleteOrigin(elementRef) {\n this.elementRef = elementRef;\n }\n MatAutocompleteOrigin.decorators = [\n { type: Directive, args: [{\n selector: '[matAutocompleteOrigin]',\n exportAs: 'matAutocompleteOrigin',\n },] },\n ];\n /** @nocollapse */\n MatAutocompleteOrigin.ctorParameters = function () { return [\n { type: ElementRef }\n ]; };\n return MatAutocompleteOrigin;\n}());\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n/**\n * The height of each autocomplete option.\n * @type {?}\n */\nvar AUTOCOMPLETE_OPTION_HEIGHT = 48;\n/**\n * The total height of the autocomplete panel.\n * @type {?}\n */\nvar AUTOCOMPLETE_PANEL_HEIGHT = 256;\n/**\n * Injection token that determines the scroll handling while the autocomplete panel is open.\n * @type {?}\n */\nvar MAT_AUTOCOMPLETE_SCROLL_STRATEGY = new InjectionToken('mat-autocomplete-scroll-strategy');\n/**\n * \\@docs-private\n * @param {?} overlay\n * @return {?}\n */\nfunction MAT_AUTOCOMPLETE_SCROLL_STRATEGY_FACTORY(overlay) {\n return (/**\n * @return {?}\n */\n function () { return overlay.scrollStrategies.reposition(); });\n}\n/**\n * \\@docs-private\n * @type {?}\n */\nvar MAT_AUTOCOMPLETE_SCROLL_STRATEGY_FACTORY_PROVIDER = {\n provide: MAT_AUTOCOMPLETE_SCROLL_STRATEGY,\n deps: [Overlay],\n useFactory: MAT_AUTOCOMPLETE_SCROLL_STRATEGY_FACTORY,\n};\n/**\n * Provider that allows the autocomplete to register as a ControlValueAccessor.\n * \\@docs-private\n * @type {?}\n */\nvar MAT_AUTOCOMPLETE_VALUE_ACCESSOR = {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef((/**\n * @return {?}\n */\n function () { return MatAutocompleteTrigger; })),\n multi: true\n};\n/**\n * Creates an error to be thrown when attempting to use an autocomplete trigger without a panel.\n * \\@docs-private\n * @return {?}\n */\nfunction getMatAutocompleteMissingPanelError() {\n return Error('Attempting to open an undefined instance of `mat-autocomplete`. ' +\n 'Make sure that the id passed to the `matAutocomplete` is correct and that ' +\n 'you\\'re attempting to open it after the ngAfterContentInit hook.');\n}\nvar MatAutocompleteTrigger = /** @class */ (function () {\n function MatAutocompleteTrigger(_element, _overlay, _viewContainerRef, _zone, _changeDetectorRef, scrollStrategy, _dir, _formField, _document, _viewportRuler) {\n var _this = this;\n this._element = _element;\n this._overlay = _overlay;\n this._viewContainerRef = _viewContainerRef;\n this._zone = _zone;\n this._changeDetectorRef = _changeDetectorRef;\n this._dir = _dir;\n this._formField = _formField;\n this._document = _document;\n this._viewportRuler = _viewportRuler;\n this._componentDestroyed = false;\n this._autocompleteDisabled = false;\n /**\n * Whether or not the label state is being overridden.\n */\n this._manuallyFloatingLabel = false;\n /**\n * Subscription to viewport size changes.\n */\n this._viewportSubscription = Subscription.EMPTY;\n /**\n * Whether the autocomplete can open the next time it is focused. Used to prevent a focused,\n * closed autocomplete from being reopened if the user switches to another browser tab and then\n * comes back.\n */\n this._canOpenOnNextFocus = true;\n /**\n * Stream of keyboard events that can close the panel.\n */\n this._closeKeyEventStream = new Subject();\n /**\n * Event handler for when the window is blurred. Needs to be an\n * arrow function in order to preserve the context.\n */\n this._windowBlurHandler = (/**\n * @return {?}\n */\n function () {\n // If the user blurred the window while the autocomplete is focused, it means that it'll be\n // refocused when they come back. In this case we want to skip the first focus event, if the\n // pane was closed, in order to avoid reopening it unintentionally.\n _this._canOpenOnNextFocus =\n _this._document.activeElement !== _this._element.nativeElement || _this.panelOpen;\n });\n /**\n * `View -> model callback called when value changes`\n */\n this._onChange = (/**\n * @return {?}\n */\n function () { });\n /**\n * `View -> model callback called when autocomplete has been touched`\n */\n this._onTouched = (/**\n * @return {?}\n */\n function () { });\n /**\n * Position of the autocomplete panel relative to the trigger element. A position of `auto`\n * will render the panel underneath the trigger if there is enough space for it to fit in\n * the viewport, otherwise the panel will be shown above it. If the position is set to\n * `above` or `below`, the panel will always be shown above or below the trigger. no matter\n * whether it fits completely in the viewport.\n */\n this.position = 'auto';\n /**\n * `autocomplete` attribute to be set on the input element.\n * \\@docs-private\n */\n this.autocompleteAttribute = 'off';\n this._overlayAttached = false;\n /**\n * Stream of autocomplete option selections.\n */\n this.optionSelections = (/** @type {?} */ (defer((/**\n * @return {?}\n */\n function () {\n if (_this.autocomplete && _this.autocomplete.options) {\n return merge.apply(void 0, _this.autocomplete.options.map((/**\n * @param {?} option\n * @return {?}\n */\n function (option) { return option.onSelectionChange; })));\n }\n // If there are any subscribers before `ngAfterViewInit`, the `autocomplete` will be undefined.\n // Return a stream that we'll replace with the real one once everything is in place.\n return _this._zone.onStable\n .asObservable()\n .pipe(take(1), switchMap((/**\n * @return {?}\n */\n function () { return _this.optionSelections; })));\n }))));\n this._scrollStrategy = scrollStrategy;\n }\n Object.defineProperty(MatAutocompleteTrigger.prototype, \"autocompleteDisabled\", {\n /**\n * Whether the autocomplete is disabled. When disabled, the element will\n * act as a regular input and the user won't be able to open the panel.\n */\n get: /**\n * Whether the autocomplete is disabled. When disabled, the element will\n * act as a regular input and the user won't be able to open the panel.\n * @return {?}\n */\n function () { return this._autocompleteDisabled; },\n set: /**\n * @param {?} value\n * @return {?}\n */\n function (value) {\n this._autocompleteDisabled = coerceBooleanProperty(value);\n },\n enumerable: true,\n configurable: true\n });\n /**\n * @return {?}\n */\n MatAutocompleteTrigger.prototype.ngAfterViewInit = /**\n * @return {?}\n */\n function () {\n var _this = this;\n if (typeof window !== 'undefined') {\n this._zone.runOutsideAngular((/**\n * @return {?}\n */\n function () {\n window.addEventListener('blur', _this._windowBlurHandler);\n }));\n if (_supportsShadowDom()) {\n /** @type {?} */\n var element = this._element.nativeElement;\n /** @type {?} */\n var rootNode = element.getRootNode ? element.getRootNode() : null;\n // We need to take the `ShadowRoot` off of `window`, because the built-in types are\n // incorrect. See https://github.com/Microsoft/TypeScript/issues/27929.\n this._isInsideShadowRoot = rootNode instanceof ((/** @type {?} */ (window))).ShadowRoot;\n }\n }\n };\n /**\n * @param {?} changes\n * @return {?}\n */\n MatAutocompleteTrigger.prototype.ngOnChanges = /**\n * @param {?} changes\n * @return {?}\n */\n function (changes) {\n if (changes['position'] && this._positionStrategy) {\n this._setStrategyPositions(this._positionStrategy);\n if (this.panelOpen) {\n (/** @type {?} */ (this._overlayRef)).updatePosition();\n }\n }\n };\n /**\n * @return {?}\n */\n MatAutocompleteTrigger.prototype.ngOnDestroy = /**\n * @return {?}\n */\n function () {\n if (typeof window !== 'undefined') {\n window.removeEventListener('blur', this._windowBlurHandler);\n }\n this._viewportSubscription.unsubscribe();\n this._componentDestroyed = true;\n this._destroyPanel();\n this._closeKeyEventStream.complete();\n };\n Object.defineProperty(MatAutocompleteTrigger.prototype, \"panelOpen\", {\n /** Whether or not the autocomplete panel is open. */\n get: /**\n * Whether or not the autocomplete panel is open.\n * @return {?}\n */\n function () {\n return this._overlayAttached && this.autocomplete.showPanel;\n },\n enumerable: true,\n configurable: true\n });\n /** Opens the autocomplete suggestion panel. */\n /**\n * Opens the autocomplete suggestion panel.\n * @return {?}\n */\n MatAutocompleteTrigger.prototype.openPanel = /**\n * Opens the autocomplete suggestion panel.\n * @return {?}\n */\n function () {\n this._attachOverlay();\n this._floatLabel();\n };\n /** Closes the autocomplete suggestion panel. */\n /**\n * Closes the autocomplete suggestion panel.\n * @return {?}\n */\n MatAutocompleteTrigger.prototype.closePanel = /**\n * Closes the autocomplete suggestion panel.\n * @return {?}\n */\n function () {\n this._resetLabel();\n if (!this._overlayAttached) {\n return;\n }\n if (this.panelOpen) {\n // Only emit if the panel was visible.\n this.autocomplete.closed.emit();\n }\n this.autocomplete._isOpen = this._overlayAttached = false;\n if (this._overlayRef && this._overlayRef.hasAttached()) {\n this._overlayRef.detach();\n this._closingActionsSubscription.unsubscribe();\n }\n // Note that in some cases this can end up being called after the component is destroyed.\n // Add a check to ensure that we don't try to run change detection on a destroyed view.\n if (!this._componentDestroyed) {\n // We need to trigger change detection manually, because\n // `fromEvent` doesn't seem to do it at the proper time.\n // This ensures that the label is reset when the\n // user clicks outside.\n this._changeDetectorRef.detectChanges();\n }\n };\n /**\n * Updates the position of the autocomplete suggestion panel to ensure that it fits all options\n * within the viewport.\n */\n /**\n * Updates the position of the autocomplete suggestion panel to ensure that it fits all options\n * within the viewport.\n * @return {?}\n */\n MatAutocompleteTrigger.prototype.updatePosition = /**\n * Updates the position of the autocomplete suggestion panel to ensure that it fits all options\n * within the viewport.\n * @return {?}\n */\n function () {\n if (this._overlayAttached) {\n (/** @type {?} */ (this._overlayRef)).updatePosition();\n }\n };\n Object.defineProperty(MatAutocompleteTrigger.prototype, \"panelClosingActions\", {\n /**\n * A stream of actions that should close the autocomplete panel, including\n * when an option is selected, on blur, and when TAB is pressed.\n */\n get: /**\n * A stream of actions that should close the autocomplete panel, including\n * when an option is selected, on blur, and when TAB is pressed.\n * @return {?}\n */\n function () {\n var _this = this;\n return merge(this.optionSelections, this.autocomplete._keyManager.tabOut.pipe(filter((/**\n * @return {?}\n */\n function () { return _this._overlayAttached; }))), this._closeKeyEventStream, this._getOutsideClickStream(), this._overlayRef ?\n this._overlayRef.detachments().pipe(filter((/**\n * @return {?}\n */\n function () { return _this._overlayAttached; }))) :\n of()).pipe(\n // Normalize the output so we return a consistent type.\n map((/**\n * @param {?} event\n * @return {?}\n */\n function (event) { return event instanceof MatOptionSelectionChange ? event : null; })));\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(MatAutocompleteTrigger.prototype, \"activeOption\", {\n /** The currently active option, coerced to MatOption type. */\n get: /**\n * The currently active option, coerced to MatOption type.\n * @return {?}\n */\n function () {\n if (this.autocomplete && this.autocomplete._keyManager) {\n return this.autocomplete._keyManager.activeItem;\n }\n return null;\n },\n enumerable: true,\n configurable: true\n });\n /** Stream of clicks outside of the autocomplete panel. */\n /**\n * Stream of clicks outside of the autocomplete panel.\n * @private\n * @return {?}\n */\n MatAutocompleteTrigger.prototype._getOutsideClickStream = /**\n * Stream of clicks outside of the autocomplete panel.\n * @private\n * @return {?}\n */\n function () {\n var _this = this;\n return merge((/** @type {?} */ (fromEvent(this._document, 'click'))), (/** @type {?} */ (fromEvent(this._document, 'touchend'))))\n .pipe(filter((/**\n * @param {?} event\n * @return {?}\n */\n function (event) {\n // If we're in the Shadow DOM, the event target will be the shadow root, so we have to\n // fall back to check the first element in the path of the click event.\n /** @type {?} */\n var clickTarget = (/** @type {?} */ ((_this._isInsideShadowRoot && event.composedPath ? event.composedPath()[0] :\n event.target)));\n /** @type {?} */\n var formField = _this._formField ? _this._formField._elementRef.nativeElement : null;\n return _this._overlayAttached && clickTarget !== _this._element.nativeElement &&\n (!formField || !formField.contains(clickTarget)) &&\n (!!_this._overlayRef && !_this._overlayRef.overlayElement.contains(clickTarget));\n })));\n };\n // Implemented as part of ControlValueAccessor.\n // Implemented as part of ControlValueAccessor.\n /**\n * @param {?} value\n * @return {?}\n */\n MatAutocompleteTrigger.prototype.writeValue = \n // Implemented as part of ControlValueAccessor.\n /**\n * @param {?} value\n * @return {?}\n */\n function (value) {\n var _this = this;\n Promise.resolve(null).then((/**\n * @return {?}\n */\n function () { return _this._setTriggerValue(value); }));\n };\n // Implemented as part of ControlValueAccessor.\n // Implemented as part of ControlValueAccessor.\n /**\n * @param {?} fn\n * @return {?}\n */\n MatAutocompleteTrigger.prototype.registerOnChange = \n // Implemented as part of ControlValueAccessor.\n /**\n * @param {?} fn\n * @return {?}\n */\n function (fn) {\n this._onChange = fn;\n };\n // Implemented as part of ControlValueAccessor.\n // Implemented as part of ControlValueAccessor.\n /**\n * @param {?} fn\n * @return {?}\n */\n MatAutocompleteTrigger.prototype.registerOnTouched = \n // Implemented as part of ControlValueAccessor.\n /**\n * @param {?} fn\n * @return {?}\n */\n function (fn) {\n this._onTouched = fn;\n };\n // Implemented as part of ControlValueAccessor.\n // Implemented as part of ControlValueAccessor.\n /**\n * @param {?} isDisabled\n * @return {?}\n */\n MatAutocompleteTrigger.prototype.setDisabledState = \n // Implemented as part of ControlValueAccessor.\n /**\n * @param {?} isDisabled\n * @return {?}\n */\n function (isDisabled) {\n this._element.nativeElement.disabled = isDisabled;\n };\n /**\n * @param {?} event\n * @return {?}\n */\n MatAutocompleteTrigger.prototype._handleKeydown = /**\n * @param {?} event\n * @return {?}\n */\n function (event) {\n /** @type {?} */\n var keyCode = event.keyCode;\n // Prevent the default action on all escape key presses. This is here primarily to bring IE\n // in line with other browsers. By default, pressing escape on IE will cause it to revert\n // the input value to the one that it had on focus, however it won't dispatch any events\n // which means that the model value will be out of sync with the view.\n if (keyCode === ESCAPE) {\n event.preventDefault();\n }\n if (this.activeOption && keyCode === ENTER && this.panelOpen) {\n this.activeOption._selectViaInteraction();\n this._resetActiveItem();\n event.preventDefault();\n }\n else if (this.autocomplete) {\n /** @type {?} */\n var prevActiveItem = this.autocomplete._keyManager.activeItem;\n /** @type {?} */\n var isArrowKey = keyCode === UP_ARROW || keyCode === DOWN_ARROW;\n if (this.panelOpen || keyCode === TAB) {\n this.autocomplete._keyManager.onKeydown(event);\n }\n else if (isArrowKey && this._canOpen()) {\n this.openPanel();\n }\n if (isArrowKey || this.autocomplete._keyManager.activeItem !== prevActiveItem) {\n this._scrollToOption();\n }\n }\n };\n /**\n * @param {?} event\n * @return {?}\n */\n MatAutocompleteTrigger.prototype._handleInput = /**\n * @param {?} event\n * @return {?}\n */\n function (event) {\n /** @type {?} */\n var target = (/** @type {?} */ (event.target));\n /** @type {?} */\n var value = target.value;\n // Based on `NumberValueAccessor` from forms.\n if (target.type === 'number') {\n value = value == '' ? null : parseFloat(value);\n }\n // If the input has a placeholder, IE will fire the `input` event on page load,\n // focus and blur, in addition to when the user actually changed the value. To\n // filter out all of the extra events, we save the value on focus and between\n // `input` events, and we check whether it changed.\n // See: https://connect.microsoft.com/IE/feedback/details/885747/\n if (this._previousValue !== value) {\n this._previousValue = value;\n this._onChange(value);\n if (this._canOpen() && this._document.activeElement === event.target) {\n this.openPanel();\n }\n }\n };\n /**\n * @return {?}\n */\n MatAutocompleteTrigger.prototype._handleFocus = /**\n * @return {?}\n */\n function () {\n if (!this._canOpenOnNextFocus) {\n this._canOpenOnNextFocus = true;\n }\n else if (this._canOpen()) {\n this._previousValue = this._element.nativeElement.value;\n this._attachOverlay();\n this._floatLabel(true);\n }\n };\n /**\n * In \"auto\" mode, the label will animate down as soon as focus is lost.\n * This causes the value to jump when selecting an option with the mouse.\n * This method manually floats the label until the panel can be closed.\n * @param shouldAnimate Whether the label should be animated when it is floated.\n */\n /**\n * In \"auto\" mode, the label will animate down as soon as focus is lost.\n * This causes the value to jump when selecting an option with the mouse.\n * This method manually floats the label until the panel can be closed.\n * @private\n * @param {?=} shouldAnimate Whether the label should be animated when it is floated.\n * @return {?}\n */\n MatAutocompleteTrigger.prototype._floatLabel = /**\n * In \"auto\" mode, the label will animate down as soon as focus is lost.\n * This causes the value to jump when selecting an option with the mouse.\n * This method manually floats the label until the panel can be closed.\n * @private\n * @param {?=} shouldAnimate Whether the label should be animated when it is floated.\n * @return {?}\n */\n function (shouldAnimate) {\n if (shouldAnimate === void 0) { shouldAnimate = false; }\n if (this._formField && this._formField.floatLabel === 'auto') {\n if (shouldAnimate) {\n this._formField._animateAndLockLabel();\n }\n else {\n this._formField.floatLabel = 'always';\n }\n this._manuallyFloatingLabel = true;\n }\n };\n /** If the label has been manually elevated, return it to its normal state. */\n /**\n * If the label has been manually elevated, return it to its normal state.\n * @private\n * @return {?}\n */\n MatAutocompleteTrigger.prototype._resetLabel = /**\n * If the label has been manually elevated, return it to its normal state.\n * @private\n * @return {?}\n */\n function () {\n if (this._manuallyFloatingLabel) {\n this._formField.floatLabel = 'auto';\n this._manuallyFloatingLabel = false;\n }\n };\n /**\n * Given that we are not actually focusing active options, we must manually adjust scroll\n * to reveal options below the fold. First, we find the offset of the option from the top\n * of the panel. If that offset is below the fold, the new scrollTop will be the offset -\n * the panel height + the option height, so the active option will be just visible at the\n * bottom of the panel. If that offset is above the top of the visible panel, the new scrollTop\n * will become the offset. If that offset is visible within the panel already, the scrollTop is\n * not adjusted.\n */\n /**\n * Given that we are not actually focusing active options, we must manually adjust scroll\n * to reveal options below the fold. First, we find the offset of the option from the top\n * of the panel. If that offset is below the fold, the new scrollTop will be the offset -\n * the panel height + the option height, so the active option will be just visible at the\n * bottom of the panel. If that offset is above the top of the visible panel, the new scrollTop\n * will become the offset. If that offset is visible within the panel already, the scrollTop is\n * not adjusted.\n * @private\n * @return {?}\n */\n MatAutocompleteTrigger.prototype._scrollToOption = /**\n * Given that we are not actually focusing active options, we must manually adjust scroll\n * to reveal options below the fold. First, we find the offset of the option from the top\n * of the panel. If that offset is below the fold, the new scrollTop will be the offset -\n * the panel height + the option height, so the active option will be just visible at the\n * bottom of the panel. If that offset is above the top of the visible panel, the new scrollTop\n * will become the offset. If that offset is visible within the panel already, the scrollTop is\n * not adjusted.\n * @private\n * @return {?}\n */\n function () {\n /** @type {?} */\n var index = this.autocomplete._keyManager.activeItemIndex || 0;\n /** @type {?} */\n var labelCount = _countGroupLabelsBeforeOption(index, this.autocomplete.options, this.autocomplete.optionGroups);\n if (index === 0 && labelCount === 1) {\n // If we've got one group label before the option and we're at the top option,\n // scroll the list to the top. This is better UX than scrolling the list to the\n // top of the option, because it allows the user to read the top group's label.\n this.autocomplete._setScrollTop(0);\n }\n else {\n /** @type {?} */\n var newScrollPosition = _getOptionScrollPosition(index + labelCount, AUTOCOMPLETE_OPTION_HEIGHT, this.autocomplete._getScrollTop(), AUTOCOMPLETE_PANEL_HEIGHT);\n this.autocomplete._setScrollTop(newScrollPosition);\n }\n };\n /**\n * This method listens to a stream of panel closing actions and resets the\n * stream every time the option list changes.\n */\n /**\n * This method listens to a stream of panel closing actions and resets the\n * stream every time the option list changes.\n * @private\n * @return {?}\n */\n MatAutocompleteTrigger.prototype._subscribeToClosingActions = /**\n * This method listens to a stream of panel closing actions and resets the\n * stream every time the option list changes.\n * @private\n * @return {?}\n */\n function () {\n var _this = this;\n /** @type {?} */\n var firstStable = this._zone.onStable.asObservable().pipe(take(1));\n /** @type {?} */\n var optionChanges = this.autocomplete.options.changes.pipe(tap((/**\n * @return {?}\n */\n function () { return _this._positionStrategy.reapplyLastPosition(); })), \n // Defer emitting to the stream until the next tick, because changing\n // bindings in here will cause \"changed after checked\" errors.\n delay(0));\n // When the zone is stable initially, and when the option list changes...\n return merge(firstStable, optionChanges)\n .pipe(\n // create a new stream of panelClosingActions, replacing any previous streams\n // that were created, and flatten it so our stream only emits closing events...\n switchMap((/**\n * @return {?}\n */\n function () {\n /** @type {?} */\n var wasOpen = _this.panelOpen;\n _this._resetActiveItem();\n _this.autocomplete._setVisibility();\n if (_this.panelOpen) {\n (/** @type {?} */ (_this._overlayRef)).updatePosition();\n // If the `panelOpen` state changed, we need to make sure to emit the `opened`\n // event, because we may not have emitted it when the panel was attached. This\n // can happen if the users opens the panel and there are no options, but the\n // options come in slightly later or as a result of the value changing.\n if (wasOpen !== _this.panelOpen) {\n _this.autocomplete.opened.emit();\n }\n }\n return _this.panelClosingActions;\n })), \n // when the first closing event occurs...\n take(1))\n // set the value, close the panel, and complete.\n .subscribe((/**\n * @param {?} event\n * @return {?}\n */\n function (event) { return _this._setValueAndClose(event); }));\n };\n /** Destroys the autocomplete suggestion panel. */\n /**\n * Destroys the autocomplete suggestion panel.\n * @private\n * @return {?}\n */\n MatAutocompleteTrigger.prototype._destroyPanel = /**\n * Destroys the autocomplete suggestion panel.\n * @private\n * @return {?}\n */\n function () {\n if (this._overlayRef) {\n this.closePanel();\n this._overlayRef.dispose();\n this._overlayRef = null;\n }\n };\n /**\n * @private\n * @param {?} value\n * @return {?}\n */\n MatAutocompleteTrigger.prototype._setTriggerValue = /**\n * @private\n * @param {?} value\n * @return {?}\n */\n function (value) {\n /** @type {?} */\n var toDisplay = this.autocomplete && this.autocomplete.displayWith ?\n this.autocomplete.displayWith(value) :\n value;\n // Simply falling back to an empty string if the display value is falsy does not work properly.\n // The display value can also be the number zero and shouldn't fall back to an empty string.\n /** @type {?} */\n var inputValue = toDisplay != null ? toDisplay : '';\n // If it's used within a `MatFormField`, we should set it through the property so it can go\n // through change detection.\n if (this._formField) {\n this._formField._control.value = inputValue;\n }\n else {\n this._element.nativeElement.value = inputValue;\n }\n this._previousValue = inputValue;\n };\n /**\n * This method closes the panel, and if a value is specified, also sets the associated\n * control to that value. It will also mark the control as dirty if this interaction\n * stemmed from the user.\n */\n /**\n * This method closes the panel, and if a value is specified, also sets the associated\n * control to that value. It will also mark the control as dirty if this interaction\n * stemmed from the user.\n * @private\n * @param {?} event\n * @return {?}\n */\n MatAutocompleteTrigger.prototype._setValueAndClose = /**\n * This method closes the panel, and if a value is specified, also sets the associated\n * control to that value. It will also mark the control as dirty if this interaction\n * stemmed from the user.\n * @private\n * @param {?} event\n * @return {?}\n */\n function (event) {\n if (event && event.source) {\n this._clearPreviousSelectedOption(event.source);\n this._setTriggerValue(event.source.value);\n this._onChange(event.source.value);\n this._element.nativeElement.focus();\n this.autocomplete._emitSelectEvent(event.source);\n }\n this.closePanel();\n };\n /**\n * Clear any previous selected option and emit a selection change event for this option\n */\n /**\n * Clear any previous selected option and emit a selection change event for this option\n * @private\n * @param {?} skip\n * @return {?}\n */\n MatAutocompleteTrigger.prototype._clearPreviousSelectedOption = /**\n * Clear any previous selected option and emit a selection change event for this option\n * @private\n * @param {?} skip\n * @return {?}\n */\n function (skip) {\n this.autocomplete.options.forEach((/**\n * @param {?} option\n * @return {?}\n */\n function (option) {\n if (option != skip && option.selected) {\n option.deselect();\n }\n }));\n };\n /**\n * @private\n * @return {?}\n */\n MatAutocompleteTrigger.prototype._attachOverlay = /**\n * @private\n * @return {?}\n */\n function () {\n var _this = this;\n if (!this.autocomplete) {\n throw getMatAutocompleteMissingPanelError();\n }\n /** @type {?} */\n var overlayRef = this._overlayRef;\n if (!overlayRef) {\n this._portal = new TemplatePortal(this.autocomplete.template, this._viewContainerRef);\n overlayRef = this._overlay.create(this._getOverlayConfig());\n this._overlayRef = overlayRef;\n // Use the `keydownEvents` in order to take advantage of\n // the overlay event targeting provided by the CDK overlay.\n overlayRef.keydownEvents().subscribe((/**\n * @param {?} event\n * @return {?}\n */\n function (event) {\n // Close when pressing ESCAPE or ALT + UP_ARROW, based on the a11y guidelines.\n // See: https://www.w3.org/TR/wai-aria-practices-1.1/#textbox-keyboard-interaction\n if (event.keyCode === ESCAPE || (event.keyCode === UP_ARROW && event.altKey)) {\n _this._resetActiveItem();\n _this._closeKeyEventStream.next();\n // We need to stop propagation, otherwise the event will eventually\n // reach the input itself and cause the overlay to be reopened.\n event.stopPropagation();\n event.preventDefault();\n }\n }));\n if (this._viewportRuler) {\n this._viewportSubscription = this._viewportRuler.change().subscribe((/**\n * @return {?}\n */\n function () {\n if (_this.panelOpen && overlayRef) {\n overlayRef.updateSize({ width: _this._getPanelWidth() });\n }\n }));\n }\n }\n else {\n // Update the trigger, panel width and direction, in case anything has changed.\n this._positionStrategy.setOrigin(this._getConnectedElement());\n overlayRef.updateSize({ width: this._getPanelWidth() });\n }\n if (overlayRef && !overlayRef.hasAttached()) {\n overlayRef.attach(this._portal);\n this._closingActionsSubscription = this._subscribeToClosingActions();\n }\n /** @type {?} */\n var wasOpen = this.panelOpen;\n this.autocomplete._setVisibility();\n this.autocomplete._isOpen = this._overlayAttached = true;\n // We need to do an extra `panelOpen` check in here, because the\n // autocomplete won't be shown if there are no options.\n if (this.panelOpen && wasOpen !== this.panelOpen) {\n this.autocomplete.opened.emit();\n }\n };\n /**\n * @private\n * @return {?}\n */\n MatAutocompleteTrigger.prototype._getOverlayConfig = /**\n * @private\n * @return {?}\n */\n function () {\n return new OverlayConfig({\n positionStrategy: this._getOverlayPosition(),\n scrollStrategy: this._scrollStrategy(),\n width: this._getPanelWidth(),\n direction: this._dir\n });\n };\n /**\n * @private\n * @return {?}\n */\n MatAutocompleteTrigger.prototype._getOverlayPosition = /**\n * @private\n * @return {?}\n */\n function () {\n /** @type {?} */\n var strategy = this._overlay.position()\n .flexibleConnectedTo(this._getConnectedElement())\n .withFlexibleDimensions(false)\n .withPush(false);\n this._setStrategyPositions(strategy);\n this._positionStrategy = strategy;\n return strategy;\n };\n /** Sets the positions on a position strategy based on the directive's input state. */\n /**\n * Sets the positions on a position strategy based on the directive's input state.\n * @private\n * @param {?} positionStrategy\n * @return {?}\n */\n MatAutocompleteTrigger.prototype._setStrategyPositions = /**\n * Sets the positions on a position strategy based on the directive's input state.\n * @private\n * @param {?} positionStrategy\n * @return {?}\n */\n function (positionStrategy) {\n /** @type {?} */\n var belowPosition = {\n originX: 'start',\n originY: 'bottom',\n overlayX: 'start',\n overlayY: 'top'\n };\n /** @type {?} */\n var abovePosition = {\n originX: 'start',\n originY: 'top',\n overlayX: 'start',\n overlayY: 'bottom',\n // The overlay edge connected to the trigger should have squared corners, while\n // the opposite end has rounded corners. We apply a CSS class to swap the\n // border-radius based on the overlay position.\n panelClass: 'mat-autocomplete-panel-above'\n };\n /** @type {?} */\n var positions;\n if (this.position === 'above') {\n positions = [abovePosition];\n }\n else if (this.position === 'below') {\n positions = [belowPosition];\n }\n else {\n positions = [belowPosition, abovePosition];\n }\n positionStrategy.withPositions(positions);\n };\n /**\n * @private\n * @return {?}\n */\n MatAutocompleteTrigger.prototype._getConnectedElement = /**\n * @private\n * @return {?}\n */\n function () {\n if (this.connectedTo) {\n return this.connectedTo.elementRef;\n }\n return this._formField ? this._formField.getConnectedOverlayOrigin() : this._element;\n };\n /**\n * @private\n * @return {?}\n */\n MatAutocompleteTrigger.prototype._getPanelWidth = /**\n * @private\n * @return {?}\n */\n function () {\n return this.autocomplete.panelWidth || this._getHostWidth();\n };\n /** Returns the width of the input element, so the panel width can match it. */\n /**\n * Returns the width of the input element, so the panel width can match it.\n * @private\n * @return {?}\n */\n MatAutocompleteTrigger.prototype._getHostWidth = /**\n * Returns the width of the input element, so the panel width can match it.\n * @private\n * @return {?}\n */\n function () {\n return this._getConnectedElement().nativeElement.getBoundingClientRect().width;\n };\n /**\n * Resets the active item to -1 so arrow events will activate the\n * correct options, or to 0 if the consumer opted into it.\n */\n /**\n * Resets the active item to -1 so arrow events will activate the\n * correct options, or to 0 if the consumer opted into it.\n * @private\n * @return {?}\n */\n MatAutocompleteTrigger.prototype._resetActiveItem = /**\n * Resets the active item to -1 so arrow events will activate the\n * correct options, or to 0 if the consumer opted into it.\n * @private\n * @return {?}\n */\n function () {\n this.autocomplete._keyManager.setActiveItem(this.autocomplete.autoActiveFirstOption ? 0 : -1);\n };\n /** Determines whether the panel can be opened. */\n /**\n * Determines whether the panel can be opened.\n * @private\n * @return {?}\n */\n MatAutocompleteTrigger.prototype._canOpen = /**\n * Determines whether the panel can be opened.\n * @private\n * @return {?}\n */\n function () {\n /** @type {?} */\n var element = this._element.nativeElement;\n return !element.readOnly && !element.disabled && !this._autocompleteDisabled;\n };\n MatAutocompleteTrigger.decorators = [\n { type: Directive, args: [{\n selector: \"input[matAutocomplete], textarea[matAutocomplete]\",\n host: {\n 'class': 'mat-autocomplete-trigger',\n '[attr.autocomplete]': 'autocompleteAttribute',\n '[attr.role]': 'autocompleteDisabled ? null : \"combobox\"',\n '[attr.aria-autocomplete]': 'autocompleteDisabled ? null : \"list\"',\n '[attr.aria-activedescendant]': '(panelOpen && activeOption) ? activeOption.id : null',\n '[attr.aria-expanded]': 'autocompleteDisabled ? null : panelOpen.toString()',\n '[attr.aria-owns]': '(autocompleteDisabled || !panelOpen) ? null : autocomplete?.id',\n '[attr.aria-haspopup]': '!autocompleteDisabled',\n // Note: we use `focusin`, as opposed to `focus`, in order to open the panel\n // a little earlier. This avoids issues where IE delays the focusing of the input.\n '(focusin)': '_handleFocus()',\n '(blur)': '_onTouched()',\n '(input)': '_handleInput($event)',\n '(keydown)': '_handleKeydown($event)',\n },\n exportAs: 'matAutocompleteTrigger',\n providers: [MAT_AUTOCOMPLETE_VALUE_ACCESSOR]\n },] },\n ];\n /** @nocollapse */\n MatAutocompleteTrigger.ctorParameters = function () { return [\n { type: ElementRef },\n { type: Overlay },\n { type: ViewContainerRef },\n { type: NgZone },\n { type: ChangeDetectorRef },\n { type: undefined, decorators: [{ type: Inject, args: [MAT_AUTOCOMPLETE_SCROLL_STRATEGY,] }] },\n { type: Directionality, decorators: [{ type: Optional }] },\n { type: MatFormField, decorators: [{ type: Optional }, { type: Host }] },\n { type: undefined, decorators: [{ type: Optional }, { type: Inject, args: [DOCUMENT,] }] },\n { type: ViewportRuler }\n ]; };\n MatAutocompleteTrigger.propDecorators = {\n autocomplete: [{ type: Input, args: ['matAutocomplete',] }],\n position: [{ type: Input, args: ['matAutocompletePosition',] }],\n connectedTo: [{ type: Input, args: ['matAutocompleteConnectedTo',] }],\n autocompleteAttribute: [{ type: Input, args: ['autocomplete',] }],\n autocompleteDisabled: [{ type: Input, args: ['matAutocompleteDisabled',] }]\n };\n return MatAutocompleteTrigger;\n}());\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\nvar MatAutocompleteModule = /** @class */ (function () {\n function MatAutocompleteModule() {\n }\n MatAutocompleteModule.decorators = [\n { type: NgModule, args: [{\n imports: [MatOptionModule, OverlayModule, MatCommonModule, CommonModule],\n exports: [\n MatAutocomplete,\n MatOptionModule,\n MatAutocompleteTrigger,\n MatAutocompleteOrigin,\n MatCommonModule\n ],\n declarations: [MatAutocomplete, MatAutocompleteTrigger, MatAutocompleteOrigin],\n providers: [MAT_AUTOCOMPLETE_SCROLL_STRATEGY_FACTORY_PROVIDER],\n },] },\n ];\n return MatAutocompleteModule;\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 { MAT_AUTOCOMPLETE_DEFAULT_OPTIONS_FACTORY, MatAutocompleteSelectedEvent, MAT_AUTOCOMPLETE_DEFAULT_OPTIONS, MatAutocomplete, MatAutocompleteModule, MAT_AUTOCOMPLETE_SCROLL_STRATEGY_FACTORY, getMatAutocompleteMissingPanelError, AUTOCOMPLETE_OPTION_HEIGHT, AUTOCOMPLETE_PANEL_HEIGHT, MAT_AUTOCOMPLETE_SCROLL_STRATEGY, MAT_AUTOCOMPLETE_SCROLL_STRATEGY_FACTORY_PROVIDER, MAT_AUTOCOMPLETE_VALUE_ACCESSOR, MatAutocompleteTrigger, MatAutocompleteOrigin };\n//# sourceMappingURL=autocomplete.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 { AriaDescriber, A11yModule } from '@angular/cdk/a11y';\nimport { coerceBooleanProperty } from '@angular/cdk/coercion';\nimport { Directive, ElementRef, Inject, Input, NgZone, Optional, Renderer2, isDevMode, NgModule } from '@angular/core';\nimport { mixinDisabled, MatCommonModule } from '@angular/material/core';\nimport { ANIMATION_MODULE_TYPE } from '@angular/platform-browser/animations';\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n/** @type {?} */\nvar nextId = 0;\n// Boilerplate for applying mixins to MatBadge.\n/**\n * \\@docs-private\n */\nvar \n// Boilerplate for applying mixins to MatBadge.\n/**\n * \\@docs-private\n */\nMatBadgeBase = /** @class */ (function () {\n function MatBadgeBase() {\n }\n return MatBadgeBase;\n}());\n/** @type {?} */\nvar _MatBadgeMixinBase = mixinDisabled(MatBadgeBase);\n/**\n * Directive to display a text badge.\n */\nvar MatBadge = /** @class */ (function (_super) {\n __extends(MatBadge, _super);\n function MatBadge(_ngZone, _elementRef, _ariaDescriber, _renderer, _animationMode) {\n var _this = _super.call(this) || this;\n _this._ngZone = _ngZone;\n _this._elementRef = _elementRef;\n _this._ariaDescriber = _ariaDescriber;\n _this._renderer = _renderer;\n _this._animationMode = _animationMode;\n /**\n * Whether the badge has any content.\n */\n _this._hasContent = false;\n _this._color = 'primary';\n _this._overlap = true;\n /**\n * Position the badge should reside.\n * Accepts any combination of 'above'|'below' and 'before'|'after'\n */\n _this.position = 'above after';\n /**\n * Size of the badge. Can be 'small', 'medium', or 'large'.\n */\n _this.size = 'medium';\n /**\n * Unique id for the badge\n */\n _this._id = nextId++;\n if (isDevMode()) {\n /** @type {?} */\n var nativeElement = _elementRef.nativeElement;\n if (nativeElement.nodeType !== nativeElement.ELEMENT_NODE) {\n throw Error('matBadge must be attached to an element node.');\n }\n }\n return _this;\n }\n Object.defineProperty(MatBadge.prototype, \"color\", {\n /** The color of the badge. Can be `primary`, `accent`, or `warn`. */\n get: /**\n * The color of the badge. Can be `primary`, `accent`, or `warn`.\n * @return {?}\n */\n function () { return this._color; },\n set: /**\n * @param {?} value\n * @return {?}\n */\n function (value) {\n this._setColor(value);\n this._color = value;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(MatBadge.prototype, \"overlap\", {\n /** Whether the badge should overlap its contents or not */\n get: /**\n * Whether the badge should overlap its contents or not\n * @return {?}\n */\n function () { return this._overlap; },\n set: /**\n * @param {?} val\n * @return {?}\n */\n function (val) {\n this._overlap = coerceBooleanProperty(val);\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(MatBadge.prototype, \"description\", {\n /** Message used to describe the decorated element via aria-describedby */\n get: /**\n * Message used to describe the decorated element via aria-describedby\n * @return {?}\n */\n function () { return this._description; },\n set: /**\n * @param {?} newDescription\n * @return {?}\n */\n function (newDescription) {\n if (newDescription !== this._description) {\n /** @type {?} */\n var badgeElement = this._badgeElement;\n this._updateHostAriaDescription(newDescription, this._description);\n this._description = newDescription;\n if (badgeElement) {\n newDescription ? badgeElement.setAttribute('aria-label', newDescription) :\n badgeElement.removeAttribute('aria-label');\n }\n }\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(MatBadge.prototype, \"hidden\", {\n /** Whether the badge is hidden. */\n get: /**\n * Whether the badge is hidden.\n * @return {?}\n */\n function () { return this._hidden; },\n set: /**\n * @param {?} val\n * @return {?}\n */\n function (val) {\n this._hidden = coerceBooleanProperty(val);\n },\n enumerable: true,\n configurable: true\n });\n /** Whether the badge is above the host or not */\n /**\n * Whether the badge is above the host or not\n * @return {?}\n */\n MatBadge.prototype.isAbove = /**\n * Whether the badge is above the host or not\n * @return {?}\n */\n function () {\n return this.position.indexOf('below') === -1;\n };\n /** Whether the badge is after the host or not */\n /**\n * Whether the badge is after the host or not\n * @return {?}\n */\n MatBadge.prototype.isAfter = /**\n * Whether the badge is after the host or not\n * @return {?}\n */\n function () {\n return this.position.indexOf('before') === -1;\n };\n /**\n * @param {?} changes\n * @return {?}\n */\n MatBadge.prototype.ngOnChanges = /**\n * @param {?} changes\n * @return {?}\n */\n function (changes) {\n /** @type {?} */\n var contentChange = changes['content'];\n if (contentChange) {\n /** @type {?} */\n var value = contentChange.currentValue;\n this._hasContent = value != null && (\"\" + value).trim().length > 0;\n this._updateTextContent();\n }\n };\n /**\n * @return {?}\n */\n MatBadge.prototype.ngOnDestroy = /**\n * @return {?}\n */\n function () {\n /** @type {?} */\n var badgeElement = this._badgeElement;\n if (badgeElement) {\n if (this.description) {\n this._ariaDescriber.removeDescription(badgeElement, this.description);\n }\n // When creating a badge through the Renderer, Angular will keep it in an index.\n // We have to destroy it ourselves, otherwise it'll be retained in memory.\n if (this._renderer.destroyNode) {\n this._renderer.destroyNode(badgeElement);\n }\n }\n };\n /**\n * Gets the element into which the badge's content is being rendered.\n * Undefined if the element hasn't been created (e.g. if the badge doesn't have content).\n */\n /**\n * Gets the element into which the badge's content is being rendered.\n * Undefined if the element hasn't been created (e.g. if the badge doesn't have content).\n * @return {?}\n */\n MatBadge.prototype.getBadgeElement = /**\n * Gets the element into which the badge's content is being rendered.\n * Undefined if the element hasn't been created (e.g. if the badge doesn't have content).\n * @return {?}\n */\n function () {\n return this._badgeElement;\n };\n /** Injects a span element into the DOM with the content. */\n /**\n * Injects a span element into the DOM with the content.\n * @private\n * @return {?}\n */\n MatBadge.prototype._updateTextContent = /**\n * Injects a span element into the DOM with the content.\n * @private\n * @return {?}\n */\n function () {\n if (!this._badgeElement) {\n this._badgeElement = this._createBadgeElement();\n }\n else {\n this._badgeElement.textContent = this.content;\n }\n return this._badgeElement;\n };\n /** Creates the badge element */\n /**\n * Creates the badge element\n * @private\n * @return {?}\n */\n MatBadge.prototype._createBadgeElement = /**\n * Creates the badge element\n * @private\n * @return {?}\n */\n function () {\n /** @type {?} */\n var badgeElement = this._renderer.createElement('span');\n /** @type {?} */\n var activeClass = 'mat-badge-active';\n /** @type {?} */\n var contentClass = 'mat-badge-content';\n // Clear any existing badges which may have persisted from a server-side render.\n this._clearExistingBadges(contentClass);\n badgeElement.setAttribute('id', \"mat-badge-content-\" + this._id);\n badgeElement.classList.add(contentClass);\n badgeElement.textContent = this.content;\n if (this._animationMode === 'NoopAnimations') {\n badgeElement.classList.add('_mat-animation-noopable');\n }\n if (this.description) {\n badgeElement.setAttribute('aria-label', this.description);\n }\n this._elementRef.nativeElement.appendChild(badgeElement);\n // animate in after insertion\n if (typeof requestAnimationFrame === 'function' && this._animationMode !== 'NoopAnimations') {\n this._ngZone.runOutsideAngular((/**\n * @return {?}\n */\n function () {\n requestAnimationFrame((/**\n * @return {?}\n */\n function () {\n badgeElement.classList.add(activeClass);\n }));\n }));\n }\n else {\n badgeElement.classList.add(activeClass);\n }\n return badgeElement;\n };\n /** Sets the aria-label property on the element */\n /**\n * Sets the aria-label property on the element\n * @private\n * @param {?} newDescription\n * @param {?} oldDescription\n * @return {?}\n */\n MatBadge.prototype._updateHostAriaDescription = /**\n * Sets the aria-label property on the element\n * @private\n * @param {?} newDescription\n * @param {?} oldDescription\n * @return {?}\n */\n function (newDescription, oldDescription) {\n // ensure content available before setting label\n /** @type {?} */\n var content = this._updateTextContent();\n if (oldDescription) {\n this._ariaDescriber.removeDescription(content, oldDescription);\n }\n if (newDescription) {\n this._ariaDescriber.describe(content, newDescription);\n }\n };\n /** Adds css theme class given the color to the component host */\n /**\n * Adds css theme class given the color to the component host\n * @private\n * @param {?} colorPalette\n * @return {?}\n */\n MatBadge.prototype._setColor = /**\n * Adds css theme class given the color to the component host\n * @private\n * @param {?} colorPalette\n * @return {?}\n */\n function (colorPalette) {\n if (colorPalette !== this._color) {\n if (this._color) {\n this._elementRef.nativeElement.classList.remove(\"mat-badge-\" + this._color);\n }\n if (colorPalette) {\n this._elementRef.nativeElement.classList.add(\"mat-badge-\" + colorPalette);\n }\n }\n };\n /** Clears any existing badges that might be left over from server-side rendering. */\n /**\n * Clears any existing badges that might be left over from server-side rendering.\n * @private\n * @param {?} cssClass\n * @return {?}\n */\n MatBadge.prototype._clearExistingBadges = /**\n * Clears any existing badges that might be left over from server-side rendering.\n * @private\n * @param {?} cssClass\n * @return {?}\n */\n function (cssClass) {\n /** @type {?} */\n var element = this._elementRef.nativeElement;\n /** @type {?} */\n var childCount = element.children.length;\n // Use a reverse while, because we'll be removing elements from the list as we're iterating.\n while (childCount--) {\n /** @type {?} */\n var currentChild = element.children[childCount];\n if (currentChild.classList.contains(cssClass)) {\n element.removeChild(currentChild);\n }\n }\n };\n MatBadge.decorators = [\n { type: Directive, args: [{\n selector: '[matBadge]',\n inputs: ['disabled: matBadgeDisabled'],\n host: {\n 'class': 'mat-badge',\n '[class.mat-badge-overlap]': 'overlap',\n '[class.mat-badge-above]': 'isAbove()',\n '[class.mat-badge-below]': '!isAbove()',\n '[class.mat-badge-before]': '!isAfter()',\n '[class.mat-badge-after]': 'isAfter()',\n '[class.mat-badge-small]': 'size === \"small\"',\n '[class.mat-badge-medium]': 'size === \"medium\"',\n '[class.mat-badge-large]': 'size === \"large\"',\n '[class.mat-badge-hidden]': 'hidden || !_hasContent',\n '[class.mat-badge-disabled]': 'disabled',\n },\n },] },\n ];\n /** @nocollapse */\n MatBadge.ctorParameters = function () { return [\n { type: NgZone },\n { type: ElementRef },\n { type: AriaDescriber },\n { type: Renderer2 },\n { type: String, decorators: [{ type: Optional }, { type: Inject, args: [ANIMATION_MODULE_TYPE,] }] }\n ]; };\n MatBadge.propDecorators = {\n color: [{ type: Input, args: ['matBadgeColor',] }],\n overlap: [{ type: Input, args: ['matBadgeOverlap',] }],\n position: [{ type: Input, args: ['matBadgePosition',] }],\n content: [{ type: Input, args: ['matBadge',] }],\n description: [{ type: Input, args: ['matBadgeDescription',] }],\n size: [{ type: Input, args: ['matBadgeSize',] }],\n hidden: [{ type: Input, args: ['matBadgeHidden',] }]\n };\n return MatBadge;\n}(_MatBadgeMixinBase));\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\nvar MatBadgeModule = /** @class */ (function () {\n function MatBadgeModule() {\n }\n MatBadgeModule.decorators = [\n { type: NgModule, args: [{\n imports: [\n A11yModule,\n MatCommonModule\n ],\n exports: [MatBadge],\n declarations: [MatBadge],\n },] },\n ];\n return MatBadgeModule;\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 { MatBadgeModule, MatBadge };\n//# sourceMappingURL=badge.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 { InjectionToken, Component, ViewChild, ElementRef, ChangeDetectionStrategy, ViewEncapsulation, ChangeDetectorRef, EventEmitter, Inject, Optional, NgModule, Injectable, Injector, SkipSelf, TemplateRef, ɵɵdefineInjectable, ɵɵinject, INJECTOR } from '@angular/core';\nimport { animate, state, style, transition, trigger } from '@angular/animations';\nimport { AnimationCurves, AnimationDurations, MatCommonModule } from '@angular/material/core';\nimport { __extends, __assign } from 'tslib';\nimport { BasePortalOutlet, CdkPortalOutlet, PortalModule, ComponentPortal, PortalInjector, TemplatePortal } from '@angular/cdk/portal';\nimport { BreakpointObserver, Breakpoints } from '@angular/cdk/layout';\nimport { DOCUMENT, CommonModule, Location } from '@angular/common';\nimport { FocusTrapFactory } from '@angular/cdk/a11y';\nimport { OverlayModule, Overlay, OverlayConfig } from '@angular/cdk/overlay';\nimport { ESCAPE, hasModifierKey } from '@angular/cdk/keycodes';\nimport { merge, Subject, of } from 'rxjs';\nimport { filter, take } from 'rxjs/operators';\nimport { Directionality } from '@angular/cdk/bidi';\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n/**\n * Injection token that can be used to access the data that was passed in to a bottom sheet.\n * @type {?}\n */\nvar MAT_BOTTOM_SHEET_DATA = new InjectionToken('MatBottomSheetData');\n/**\n * Configuration used when opening a bottom sheet.\n * @template D\n */\nvar /**\n * Configuration used when opening a bottom sheet.\n * @template D\n */\nMatBottomSheetConfig = /** @class */ (function () {\n function MatBottomSheetConfig() {\n /**\n * Data being injected into the child component.\n */\n this.data = null;\n /**\n * Whether the bottom sheet has a backdrop.\n */\n this.hasBackdrop = true;\n /**\n * Whether the user can use escape or clicking outside to close the bottom sheet.\n */\n this.disableClose = false;\n /**\n * Aria label to assign to the bottom sheet element.\n */\n this.ariaLabel = null;\n /**\n * Whether the bottom sheet should close when the user goes backwards/forwards in history.\n * Note that this usually doesn't include clicking on links (unless the user is using\n * the `HashLocationStrategy`).\n */\n this.closeOnNavigation = true;\n // Note that this is disabled by default, because while the a11y recommendations are to focus\n // the first focusable element, doing so prevents screen readers from reading out the\n // rest of the bottom sheet content.\n /**\n * Whether the bottom sheet should focus the first focusable element on open.\n */\n this.autoFocus = false;\n /**\n * Whether the bottom sheet should restore focus to the\n * previously-focused element, after it's closed.\n */\n this.restoreFocus = true;\n }\n return MatBottomSheetConfig;\n}());\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n/**\n * Animations used by the Material bottom sheet.\n * @type {?}\n */\nvar matBottomSheetAnimations = {\n /**\n * Animation that shows and hides a bottom sheet.\n */\n bottomSheetState: trigger('state', [\n state('void, hidden', style({ transform: 'translateY(100%)' })),\n state('visible', style({ transform: 'translateY(0%)' })),\n transition('visible => void, visible => hidden', animate(AnimationDurations.COMPLEX + \" \" + AnimationCurves.ACCELERATION_CURVE)),\n transition('void => visible', animate(AnimationDurations.EXITING + \" \" + AnimationCurves.DECELERATION_CURVE)),\n ])\n};\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n// TODO(crisbeto): consolidate some logic between this, MatDialog and MatSnackBar\n/**\n * Internal component that wraps user-provided bottom sheet content.\n * \\@docs-private\n */\nvar MatBottomSheetContainer = /** @class */ (function (_super) {\n __extends(MatBottomSheetContainer, _super);\n function MatBottomSheetContainer(_elementRef, _changeDetectorRef, _focusTrapFactory, breakpointObserver, document, bottomSheetConfig) {\n var _this = _super.call(this) || this;\n _this._elementRef = _elementRef;\n _this._changeDetectorRef = _changeDetectorRef;\n _this._focusTrapFactory = _focusTrapFactory;\n _this.bottomSheetConfig = bottomSheetConfig;\n /**\n * The state of the bottom sheet animations.\n */\n _this._animationState = 'void';\n /**\n * Emits whenever the state of the animation changes.\n */\n _this._animationStateChanged = new EventEmitter();\n /**\n * Element that was focused before the bottom sheet was opened.\n */\n _this._elementFocusedBeforeOpened = null;\n _this._document = document;\n _this._breakpointSubscription = breakpointObserver\n .observe([Breakpoints.Medium, Breakpoints.Large, Breakpoints.XLarge])\n .subscribe((/**\n * @return {?}\n */\n function () {\n _this._toggleClass('mat-bottom-sheet-container-medium', breakpointObserver.isMatched(Breakpoints.Medium));\n _this._toggleClass('mat-bottom-sheet-container-large', breakpointObserver.isMatched(Breakpoints.Large));\n _this._toggleClass('mat-bottom-sheet-container-xlarge', breakpointObserver.isMatched(Breakpoints.XLarge));\n }));\n return _this;\n }\n /** Attach a component portal as content to this bottom sheet container. */\n /**\n * Attach a component portal as content to this bottom sheet container.\n * @template T\n * @param {?} portal\n * @return {?}\n */\n MatBottomSheetContainer.prototype.attachComponentPortal = /**\n * Attach a component portal as content to this bottom sheet container.\n * @template T\n * @param {?} portal\n * @return {?}\n */\n function (portal) {\n this._validatePortalAttached();\n this._setPanelClass();\n this._savePreviouslyFocusedElement();\n return this._portalOutlet.attachComponentPortal(portal);\n };\n /** Attach a template portal as content to this bottom sheet container. */\n /**\n * Attach a template portal as content to this bottom sheet container.\n * @template C\n * @param {?} portal\n * @return {?}\n */\n MatBottomSheetContainer.prototype.attachTemplatePortal = /**\n * Attach a template portal as content to this bottom sheet container.\n * @template C\n * @param {?} portal\n * @return {?}\n */\n function (portal) {\n this._validatePortalAttached();\n this._setPanelClass();\n this._savePreviouslyFocusedElement();\n return this._portalOutlet.attachTemplatePortal(portal);\n };\n /** Begin animation of bottom sheet entrance into view. */\n /**\n * Begin animation of bottom sheet entrance into view.\n * @return {?}\n */\n MatBottomSheetContainer.prototype.enter = /**\n * Begin animation of bottom sheet entrance into view.\n * @return {?}\n */\n function () {\n if (!this._destroyed) {\n this._animationState = 'visible';\n this._changeDetectorRef.detectChanges();\n }\n };\n /** Begin animation of the bottom sheet exiting from view. */\n /**\n * Begin animation of the bottom sheet exiting from view.\n * @return {?}\n */\n MatBottomSheetContainer.prototype.exit = /**\n * Begin animation of the bottom sheet exiting from view.\n * @return {?}\n */\n function () {\n if (!this._destroyed) {\n this._animationState = 'hidden';\n this._changeDetectorRef.markForCheck();\n }\n };\n /**\n * @return {?}\n */\n MatBottomSheetContainer.prototype.ngOnDestroy = /**\n * @return {?}\n */\n function () {\n this._breakpointSubscription.unsubscribe();\n this._destroyed = true;\n };\n /**\n * @param {?} event\n * @return {?}\n */\n MatBottomSheetContainer.prototype._onAnimationDone = /**\n * @param {?} event\n * @return {?}\n */\n function (event) {\n if (event.toState === 'hidden') {\n this._restoreFocus();\n }\n else if (event.toState === 'visible') {\n this._trapFocus();\n }\n this._animationStateChanged.emit(event);\n };\n /**\n * @param {?} event\n * @return {?}\n */\n MatBottomSheetContainer.prototype._onAnimationStart = /**\n * @param {?} event\n * @return {?}\n */\n function (event) {\n this._animationStateChanged.emit(event);\n };\n /**\n * @private\n * @param {?} cssClass\n * @param {?} add\n * @return {?}\n */\n MatBottomSheetContainer.prototype._toggleClass = /**\n * @private\n * @param {?} cssClass\n * @param {?} add\n * @return {?}\n */\n function (cssClass, add) {\n /** @type {?} */\n var classList = this._elementRef.nativeElement.classList;\n add ? classList.add(cssClass) : classList.remove(cssClass);\n };\n /**\n * @private\n * @return {?}\n */\n MatBottomSheetContainer.prototype._validatePortalAttached = /**\n * @private\n * @return {?}\n */\n function () {\n if (this._portalOutlet.hasAttached()) {\n throw Error('Attempting to attach bottom sheet content after content is already attached');\n }\n };\n /**\n * @private\n * @return {?}\n */\n MatBottomSheetContainer.prototype._setPanelClass = /**\n * @private\n * @return {?}\n */\n function () {\n /** @type {?} */\n var element = this._elementRef.nativeElement;\n /** @type {?} */\n var panelClass = this.bottomSheetConfig.panelClass;\n if (Array.isArray(panelClass)) {\n // Note that we can't use a spread here, because IE doesn't support multiple arguments.\n panelClass.forEach((/**\n * @param {?} cssClass\n * @return {?}\n */\n function (cssClass) { return element.classList.add(cssClass); }));\n }\n else if (panelClass) {\n element.classList.add(panelClass);\n }\n };\n /** Moves the focus inside the focus trap. */\n /**\n * Moves the focus inside the focus trap.\n * @private\n * @return {?}\n */\n MatBottomSheetContainer.prototype._trapFocus = /**\n * Moves the focus inside the focus trap.\n * @private\n * @return {?}\n */\n function () {\n /** @type {?} */\n var element = this._elementRef.nativeElement;\n if (!this._focusTrap) {\n this._focusTrap = this._focusTrapFactory.create(element);\n }\n if (this.bottomSheetConfig.autoFocus) {\n this._focusTrap.focusInitialElementWhenReady();\n }\n else {\n /** @type {?} */\n var activeElement = this._document.activeElement;\n // Otherwise ensure that focus is on the container. It's possible that a different\n // component tried to move focus while the open animation was running. See:\n // https://github.com/angular/components/issues/16215. Note that we only want to do this\n // if the focus isn't inside the bottom sheet already, because it's possible that the\n // consumer turned off `autoFocus` in order to move focus themselves.\n if (activeElement !== element && !element.contains(activeElement)) {\n element.focus();\n }\n }\n };\n /** Restores focus to the element that was focused before the bottom sheet was opened. */\n /**\n * Restores focus to the element that was focused before the bottom sheet was opened.\n * @private\n * @return {?}\n */\n MatBottomSheetContainer.prototype._restoreFocus = /**\n * Restores focus to the element that was focused before the bottom sheet was opened.\n * @private\n * @return {?}\n */\n function () {\n /** @type {?} */\n var toFocus = this._elementFocusedBeforeOpened;\n // We need the extra check, because IE can set the `activeElement` to null in some cases.\n if (this.bottomSheetConfig.restoreFocus && toFocus && typeof toFocus.focus === 'function') {\n toFocus.focus();\n }\n if (this._focusTrap) {\n this._focusTrap.destroy();\n }\n };\n /** Saves a reference to the element that was focused before the bottom sheet was opened. */\n /**\n * Saves a reference to the element that was focused before the bottom sheet was opened.\n * @private\n * @return {?}\n */\n MatBottomSheetContainer.prototype._savePreviouslyFocusedElement = /**\n * Saves a reference to the element that was focused before the bottom sheet was opened.\n * @private\n * @return {?}\n */\n function () {\n var _this = this;\n this._elementFocusedBeforeOpened = (/** @type {?} */ (this._document.activeElement));\n // The `focus` method isn't available during server-side rendering.\n if (this._elementRef.nativeElement.focus) {\n Promise.resolve().then((/**\n * @return {?}\n */\n function () { return _this._elementRef.nativeElement.focus(); }));\n }\n };\n MatBottomSheetContainer.decorators = [\n { type: Component, args: [{selector: 'mat-bottom-sheet-container',\n template: \"\",\n styles: [\".mat-bottom-sheet-container{padding:8px 16px;min-width:100vw;box-sizing:border-box;display:block;outline:0;max-height:80vh;overflow:auto}@media (-ms-high-contrast:active){.mat-bottom-sheet-container{outline:1px solid}}.mat-bottom-sheet-container-large,.mat-bottom-sheet-container-medium,.mat-bottom-sheet-container-xlarge{border-top-left-radius:4px;border-top-right-radius:4px}.mat-bottom-sheet-container-medium{min-width:384px;max-width:calc(100vw - 128px)}.mat-bottom-sheet-container-large{min-width:512px;max-width:calc(100vw - 256px)}.mat-bottom-sheet-container-xlarge{min-width:576px;max-width:calc(100vw - 384px)}\"],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n animations: [matBottomSheetAnimations.bottomSheetState],\n host: {\n 'class': 'mat-bottom-sheet-container',\n 'tabindex': '-1',\n 'role': 'dialog',\n 'aria-modal': 'true',\n '[attr.aria-label]': 'bottomSheetConfig?.ariaLabel',\n '[@state]': '_animationState',\n '(@state.start)': '_onAnimationStart($event)',\n '(@state.done)': '_onAnimationDone($event)'\n },\n },] },\n ];\n /** @nocollapse */\n MatBottomSheetContainer.ctorParameters = function () { return [\n { type: ElementRef },\n { type: ChangeDetectorRef },\n { type: FocusTrapFactory },\n { type: BreakpointObserver },\n { type: undefined, decorators: [{ type: Optional }, { type: Inject, args: [DOCUMENT,] }] },\n { type: MatBottomSheetConfig }\n ]; };\n MatBottomSheetContainer.propDecorators = {\n _portalOutlet: [{ type: ViewChild, args: [CdkPortalOutlet, { static: true },] }]\n };\n return MatBottomSheetContainer;\n}(BasePortalOutlet));\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\nvar MatBottomSheetModule = /** @class */ (function () {\n function MatBottomSheetModule() {\n }\n MatBottomSheetModule.decorators = [\n { type: NgModule, args: [{\n imports: [\n CommonModule,\n OverlayModule,\n MatCommonModule,\n PortalModule,\n ],\n exports: [MatBottomSheetContainer, MatCommonModule],\n declarations: [MatBottomSheetContainer],\n entryComponents: [MatBottomSheetContainer],\n },] },\n ];\n return MatBottomSheetModule;\n}());\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n/**\n * Reference to a bottom sheet dispatched from the bottom sheet service.\n * @template T, R\n */\nvar /**\n * Reference to a bottom sheet dispatched from the bottom sheet service.\n * @template T, R\n */\nMatBottomSheetRef = /** @class */ (function () {\n function MatBottomSheetRef(containerInstance, _overlayRef, \n // @breaking-change 8.0.0 `_location` parameter to be removed.\n _location) {\n var _this = this;\n this._overlayRef = _overlayRef;\n /**\n * Subject for notifying the user that the bottom sheet has been dismissed.\n */\n this._afterDismissed = new Subject();\n /**\n * Subject for notifying the user that the bottom sheet has opened and appeared.\n */\n this._afterOpened = new Subject();\n this.containerInstance = containerInstance;\n this.disableClose = containerInstance.bottomSheetConfig.disableClose;\n // Emit when opening animation completes\n containerInstance._animationStateChanged.pipe(filter((/**\n * @param {?} event\n * @return {?}\n */\n function (event) { return event.phaseName === 'done' && event.toState === 'visible'; })), take(1))\n .subscribe((/**\n * @return {?}\n */\n function () {\n _this._afterOpened.next();\n _this._afterOpened.complete();\n }));\n // Dispose overlay when closing animation is complete\n containerInstance._animationStateChanged\n .pipe(filter((/**\n * @param {?} event\n * @return {?}\n */\n function (event) { return event.phaseName === 'done' && event.toState === 'hidden'; })), take(1))\n .subscribe((/**\n * @return {?}\n */\n function () {\n clearTimeout(_this._closeFallbackTimeout);\n _overlayRef.dispose();\n }));\n _overlayRef.detachments().pipe(take(1)).subscribe((/**\n * @return {?}\n */\n function () {\n _this._afterDismissed.next(_this._result);\n _this._afterDismissed.complete();\n }));\n merge(_overlayRef.backdropClick(), _overlayRef.keydownEvents().pipe(filter((/**\n * @param {?} event\n * @return {?}\n */\n function (event) { return event.keyCode === ESCAPE; })))).subscribe((/**\n * @param {?} event\n * @return {?}\n */\n function (event) {\n if (!_this.disableClose &&\n (event.type !== 'keydown' || !hasModifierKey((/** @type {?} */ (event))))) {\n event.preventDefault();\n _this.dismiss();\n }\n }));\n }\n /**\n * Dismisses the bottom sheet.\n * @param result Data to be passed back to the bottom sheet opener.\n */\n /**\n * Dismisses the bottom sheet.\n * @param {?=} result Data to be passed back to the bottom sheet opener.\n * @return {?}\n */\n MatBottomSheetRef.prototype.dismiss = /**\n * Dismisses the bottom sheet.\n * @param {?=} result Data to be passed back to the bottom sheet opener.\n * @return {?}\n */\n function (result) {\n var _this = this;\n if (!this._afterDismissed.closed) {\n // Transition the backdrop in parallel to the bottom sheet.\n this.containerInstance._animationStateChanged.pipe(filter((/**\n * @param {?} event\n * @return {?}\n */\n function (event) { return event.phaseName === 'start'; })), take(1)).subscribe((/**\n * @param {?} event\n * @return {?}\n */\n function (event) {\n // The logic that disposes of the overlay depends on the exit animation completing, however\n // it isn't guaranteed if the parent view is destroyed while it's running. Add a fallback\n // timeout which will clean everything up if the animation hasn't fired within the specified\n // amount of time plus 100ms. We don't need to run this outside the NgZone, because for the\n // vast majority of cases the timeout will have been cleared before it has fired.\n _this._closeFallbackTimeout = setTimeout((/**\n * @return {?}\n */\n function () {\n _this._overlayRef.dispose();\n }), event.totalTime + 100);\n _this._overlayRef.detachBackdrop();\n }));\n this._result = result;\n this.containerInstance.exit();\n }\n };\n /** Gets an observable that is notified when the bottom sheet is finished closing. */\n /**\n * Gets an observable that is notified when the bottom sheet is finished closing.\n * @return {?}\n */\n MatBottomSheetRef.prototype.afterDismissed = /**\n * Gets an observable that is notified when the bottom sheet is finished closing.\n * @return {?}\n */\n function () {\n return this._afterDismissed.asObservable();\n };\n /** Gets an observable that is notified when the bottom sheet has opened and appeared. */\n /**\n * Gets an observable that is notified when the bottom sheet has opened and appeared.\n * @return {?}\n */\n MatBottomSheetRef.prototype.afterOpened = /**\n * Gets an observable that is notified when the bottom sheet has opened and appeared.\n * @return {?}\n */\n function () {\n return this._afterOpened.asObservable();\n };\n /**\n * Gets an observable that emits when the overlay's backdrop has been clicked.\n */\n /**\n * Gets an observable that emits when the overlay's backdrop has been clicked.\n * @return {?}\n */\n MatBottomSheetRef.prototype.backdropClick = /**\n * Gets an observable that emits when the overlay's backdrop has been clicked.\n * @return {?}\n */\n function () {\n return this._overlayRef.backdropClick();\n };\n /**\n * Gets an observable that emits when keydown events are targeted on the overlay.\n */\n /**\n * Gets an observable that emits when keydown events are targeted on the overlay.\n * @return {?}\n */\n MatBottomSheetRef.prototype.keydownEvents = /**\n * Gets an observable that emits when keydown events are targeted on the overlay.\n * @return {?}\n */\n function () {\n return this._overlayRef.keydownEvents();\n };\n return MatBottomSheetRef;\n}());\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n/**\n * Injection token that can be used to specify default bottom sheet options.\n * @type {?}\n */\nvar MAT_BOTTOM_SHEET_DEFAULT_OPTIONS = new InjectionToken('mat-bottom-sheet-default-options');\n/**\n * Service to trigger Material Design bottom sheets.\n */\nvar MatBottomSheet = /** @class */ (function () {\n function MatBottomSheet(_overlay, _injector, _parentBottomSheet, _location, _defaultOptions) {\n this._overlay = _overlay;\n this._injector = _injector;\n this._parentBottomSheet = _parentBottomSheet;\n this._location = _location;\n this._defaultOptions = _defaultOptions;\n this._bottomSheetRefAtThisLevel = null;\n }\n Object.defineProperty(MatBottomSheet.prototype, \"_openedBottomSheetRef\", {\n /** Reference to the currently opened bottom sheet. */\n get: /**\n * Reference to the currently opened bottom sheet.\n * @return {?}\n */\n function () {\n /** @type {?} */\n var parent = this._parentBottomSheet;\n return parent ? parent._openedBottomSheetRef : this._bottomSheetRefAtThisLevel;\n },\n set: /**\n * @param {?} value\n * @return {?}\n */\n function (value) {\n if (this._parentBottomSheet) {\n this._parentBottomSheet._openedBottomSheetRef = value;\n }\n else {\n this._bottomSheetRefAtThisLevel = value;\n }\n },\n enumerable: true,\n configurable: true\n });\n /**\n * @template T, D, R\n * @param {?} componentOrTemplateRef\n * @param {?=} config\n * @return {?}\n */\n MatBottomSheet.prototype.open = /**\n * @template T, D, R\n * @param {?} componentOrTemplateRef\n * @param {?=} config\n * @return {?}\n */\n function (componentOrTemplateRef, config) {\n var _this = this;\n /** @type {?} */\n var _config = _applyConfigDefaults(this._defaultOptions || new MatBottomSheetConfig(), config);\n /** @type {?} */\n var overlayRef = this._createOverlay(_config);\n /** @type {?} */\n var container = this._attachContainer(overlayRef, _config);\n /** @type {?} */\n var ref = new MatBottomSheetRef(container, overlayRef, this._location);\n if (componentOrTemplateRef instanceof TemplateRef) {\n container.attachTemplatePortal(new TemplatePortal(componentOrTemplateRef, (/** @type {?} */ (null)), (/** @type {?} */ ({\n $implicit: _config.data,\n bottomSheetRef: ref\n }))));\n }\n else {\n /** @type {?} */\n var portal = new ComponentPortal(componentOrTemplateRef, undefined, this._createInjector(_config, ref));\n /** @type {?} */\n var contentRef = container.attachComponentPortal(portal);\n ref.instance = contentRef.instance;\n }\n // When the bottom sheet is dismissed, clear the reference to it.\n ref.afterDismissed().subscribe((/**\n * @return {?}\n */\n function () {\n // Clear the bottom sheet ref if it hasn't already been replaced by a newer one.\n if (_this._openedBottomSheetRef == ref) {\n _this._openedBottomSheetRef = null;\n }\n }));\n if (this._openedBottomSheetRef) {\n // If a bottom sheet is already in view, dismiss it and enter the\n // new bottom sheet after exit animation is complete.\n this._openedBottomSheetRef.afterDismissed().subscribe((/**\n * @return {?}\n */\n function () { return ref.containerInstance.enter(); }));\n this._openedBottomSheetRef.dismiss();\n }\n else {\n // If no bottom sheet is in view, enter the new bottom sheet.\n ref.containerInstance.enter();\n }\n this._openedBottomSheetRef = ref;\n return ref;\n };\n /**\n * Dismisses the currently-visible bottom sheet.\n */\n /**\n * Dismisses the currently-visible bottom sheet.\n * @return {?}\n */\n MatBottomSheet.prototype.dismiss = /**\n * Dismisses the currently-visible bottom sheet.\n * @return {?}\n */\n function () {\n if (this._openedBottomSheetRef) {\n this._openedBottomSheetRef.dismiss();\n }\n };\n /**\n * @return {?}\n */\n MatBottomSheet.prototype.ngOnDestroy = /**\n * @return {?}\n */\n function () {\n if (this._bottomSheetRefAtThisLevel) {\n this._bottomSheetRefAtThisLevel.dismiss();\n }\n };\n /**\n * Attaches the bottom sheet container component to the overlay.\n */\n /**\n * Attaches the bottom sheet container component to the overlay.\n * @private\n * @param {?} overlayRef\n * @param {?} config\n * @return {?}\n */\n MatBottomSheet.prototype._attachContainer = /**\n * Attaches the bottom sheet container component to the overlay.\n * @private\n * @param {?} overlayRef\n * @param {?} config\n * @return {?}\n */\n function (overlayRef, config) {\n /** @type {?} */\n var userInjector = config && config.viewContainerRef && config.viewContainerRef.injector;\n /** @type {?} */\n var injector = new PortalInjector(userInjector || this._injector, new WeakMap([\n [MatBottomSheetConfig, config]\n ]));\n /** @type {?} */\n var containerPortal = new ComponentPortal(MatBottomSheetContainer, config.viewContainerRef, injector);\n /** @type {?} */\n var containerRef = overlayRef.attach(containerPortal);\n return containerRef.instance;\n };\n /**\n * Creates a new overlay and places it in the correct location.\n * @param config The user-specified bottom sheet config.\n */\n /**\n * Creates a new overlay and places it in the correct location.\n * @private\n * @param {?} config The user-specified bottom sheet config.\n * @return {?}\n */\n MatBottomSheet.prototype._createOverlay = /**\n * Creates a new overlay and places it in the correct location.\n * @private\n * @param {?} config The user-specified bottom sheet config.\n * @return {?}\n */\n function (config) {\n /** @type {?} */\n var overlayConfig = new OverlayConfig({\n direction: config.direction,\n hasBackdrop: config.hasBackdrop,\n disposeOnNavigation: config.closeOnNavigation,\n maxWidth: '100%',\n scrollStrategy: config.scrollStrategy || this._overlay.scrollStrategies.block(),\n positionStrategy: this._overlay.position().global().centerHorizontally().bottom('0')\n });\n if (config.backdropClass) {\n overlayConfig.backdropClass = config.backdropClass;\n }\n return this._overlay.create(overlayConfig);\n };\n /**\n * Creates an injector to be used inside of a bottom sheet component.\n * @param config Config that was used to create the bottom sheet.\n * @param bottomSheetRef Reference to the bottom sheet.\n */\n /**\n * Creates an injector to be used inside of a bottom sheet component.\n * @private\n * @template T\n * @param {?} config Config that was used to create the bottom sheet.\n * @param {?} bottomSheetRef Reference to the bottom sheet.\n * @return {?}\n */\n MatBottomSheet.prototype._createInjector = /**\n * Creates an injector to be used inside of a bottom sheet component.\n * @private\n * @template T\n * @param {?} config Config that was used to create the bottom sheet.\n * @param {?} bottomSheetRef Reference to the bottom sheet.\n * @return {?}\n */\n function (config, bottomSheetRef) {\n /** @type {?} */\n var userInjector = config && config.viewContainerRef && config.viewContainerRef.injector;\n /** @type {?} */\n var injectionTokens = new WeakMap([\n [MatBottomSheetRef, bottomSheetRef],\n [MAT_BOTTOM_SHEET_DATA, config.data]\n ]);\n if (config.direction &&\n (!userInjector || !userInjector.get(Directionality, null))) {\n injectionTokens.set(Directionality, {\n value: config.direction,\n change: of()\n });\n }\n return new PortalInjector(userInjector || this._injector, injectionTokens);\n };\n MatBottomSheet.decorators = [\n { type: Injectable, args: [{ providedIn: MatBottomSheetModule },] },\n ];\n /** @nocollapse */\n MatBottomSheet.ctorParameters = function () { return [\n { type: Overlay },\n { type: Injector },\n { type: MatBottomSheet, decorators: [{ type: Optional }, { type: SkipSelf }] },\n { type: Location, decorators: [{ type: Optional }] },\n { type: MatBottomSheetConfig, decorators: [{ type: Optional }, { type: Inject, args: [MAT_BOTTOM_SHEET_DEFAULT_OPTIONS,] }] }\n ]; };\n /** @nocollapse */ MatBottomSheet.ngInjectableDef = ɵɵdefineInjectable({ factory: function MatBottomSheet_Factory() { return new MatBottomSheet(ɵɵinject(Overlay), ɵɵinject(INJECTOR), ɵɵinject(MatBottomSheet, 12), ɵɵinject(Location, 8), ɵɵinject(MAT_BOTTOM_SHEET_DEFAULT_OPTIONS, 8)); }, token: MatBottomSheet, providedIn: MatBottomSheetModule });\n return MatBottomSheet;\n}());\n/**\n * Applies default options to the bottom sheet config.\n * @param {?} defaults Object containing the default values to which to fall back.\n * @param {?=} config The configuration to which the defaults will be applied.\n * @return {?} The new configuration object with defaults applied.\n */\nfunction _applyConfigDefaults(defaults, config) {\n return __assign({}, defaults, config);\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 { MatBottomSheetModule, MAT_BOTTOM_SHEET_DEFAULT_OPTIONS, MatBottomSheet, MAT_BOTTOM_SHEET_DATA, MatBottomSheetConfig, MatBottomSheetContainer, matBottomSheetAnimations, MatBottomSheetRef };\n//# sourceMappingURL=bottom-sheet.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 { FocusMonitor } from '@angular/cdk/a11y';\nimport { coerceBooleanProperty } from '@angular/cdk/coercion';\nimport { SelectionModel } from '@angular/cdk/collections';\nimport { Attribute, ChangeDetectionStrategy, ChangeDetectorRef, Component, ContentChildren, Directive, ElementRef, EventEmitter, forwardRef, Input, Optional, Output, ViewChild, ViewEncapsulation, InjectionToken, Inject, NgModule } from '@angular/core';\nimport { NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { mixinDisableRipple, MatCommonModule, MatRippleModule } from '@angular/material/core';\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n/**\n * Injection token that can be used to configure the\n * default options for all button toggles within an app.\n * @type {?}\n */\nvar MAT_BUTTON_TOGGLE_DEFAULT_OPTIONS = new InjectionToken('MAT_BUTTON_TOGGLE_DEFAULT_OPTIONS');\n/**\n * Provider Expression that allows mat-button-toggle-group to register as a ControlValueAccessor.\n * This allows it to support [(ngModel)].\n * \\@docs-private\n * @type {?}\n */\nvar MAT_BUTTON_TOGGLE_GROUP_VALUE_ACCESSOR = {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef((/**\n * @return {?}\n */\n function () { return MatButtonToggleGroup; })),\n multi: true\n};\n/**\n * @deprecated Use `MatButtonToggleGroup` instead.\n * \\@breaking-change 8.0.0\n */\nvar /**\n * @deprecated Use `MatButtonToggleGroup` instead.\n * \\@breaking-change 8.0.0\n */\nMatButtonToggleGroupMultiple = /** @class */ (function () {\n function MatButtonToggleGroupMultiple() {\n }\n return MatButtonToggleGroupMultiple;\n}());\n/** @type {?} */\nvar _uniqueIdCounter = 0;\n/**\n * Change event object emitted by MatButtonToggle.\n */\nvar /**\n * Change event object emitted by MatButtonToggle.\n */\nMatButtonToggleChange = /** @class */ (function () {\n function MatButtonToggleChange(source, value) {\n this.source = source;\n this.value = value;\n }\n return MatButtonToggleChange;\n}());\n/**\n * Exclusive selection button toggle group that behaves like a radio-button group.\n */\nvar MatButtonToggleGroup = /** @class */ (function () {\n function MatButtonToggleGroup(_changeDetector, defaultOptions) {\n this._changeDetector = _changeDetector;\n this._vertical = false;\n this._multiple = false;\n this._disabled = false;\n /**\n * The method to be called in order to update ngModel.\n * Now `ngModel` binding is not supported in multiple selection mode.\n */\n this._controlValueAccessorChangeFn = (/**\n * @return {?}\n */\n function () { });\n /**\n * onTouch function registered via registerOnTouch (ControlValueAccessor).\n */\n this._onTouched = (/**\n * @return {?}\n */\n function () { });\n this._name = \"mat-button-toggle-group-\" + _uniqueIdCounter++;\n /**\n * Event that emits whenever the value of the group changes.\n * Used to facilitate two-way data binding.\n * \\@docs-private\n */\n this.valueChange = new EventEmitter();\n /**\n * Event emitted when the group's value changes.\n */\n this.change = new EventEmitter();\n this.appearance =\n defaultOptions && defaultOptions.appearance ? defaultOptions.appearance : 'standard';\n }\n Object.defineProperty(MatButtonToggleGroup.prototype, \"name\", {\n /** `name` attribute for the underlying `input` element. */\n get: /**\n * `name` attribute for the underlying `input` element.\n * @return {?}\n */\n function () { return this._name; },\n set: /**\n * @param {?} value\n * @return {?}\n */\n function (value) {\n var _this = this;\n this._name = value;\n if (this._buttonToggles) {\n this._buttonToggles.forEach((/**\n * @param {?} toggle\n * @return {?}\n */\n function (toggle) {\n toggle.name = _this._name;\n toggle._markForCheck();\n }));\n }\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(MatButtonToggleGroup.prototype, \"vertical\", {\n /** Whether the toggle group is vertical. */\n get: /**\n * Whether the toggle group is vertical.\n * @return {?}\n */\n function () { return this._vertical; },\n set: /**\n * @param {?} value\n * @return {?}\n */\n function (value) {\n this._vertical = coerceBooleanProperty(value);\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(MatButtonToggleGroup.prototype, \"value\", {\n /** Value of the toggle group. */\n get: /**\n * Value of the toggle group.\n * @return {?}\n */\n function () {\n /** @type {?} */\n var selected = this._selectionModel ? this._selectionModel.selected : [];\n if (this.multiple) {\n return selected.map((/**\n * @param {?} toggle\n * @return {?}\n */\n function (toggle) { return toggle.value; }));\n }\n return selected[0] ? selected[0].value : undefined;\n },\n set: /**\n * @param {?} newValue\n * @return {?}\n */\n function (newValue) {\n this._setSelectionByValue(newValue);\n this.valueChange.emit(this.value);\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(MatButtonToggleGroup.prototype, \"selected\", {\n /** Selected button toggles in the group. */\n get: /**\n * Selected button toggles in the group.\n * @return {?}\n */\n function () {\n /** @type {?} */\n var selected = this._selectionModel ? this._selectionModel.selected : [];\n return this.multiple ? selected : (selected[0] || null);\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(MatButtonToggleGroup.prototype, \"multiple\", {\n /** Whether multiple button toggles can be selected. */\n get: /**\n * Whether multiple button toggles can be selected.\n * @return {?}\n */\n function () { return this._multiple; },\n set: /**\n * @param {?} value\n * @return {?}\n */\n function (value) {\n this._multiple = coerceBooleanProperty(value);\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(MatButtonToggleGroup.prototype, \"disabled\", {\n /** Whether multiple button toggle group is disabled. */\n get: /**\n * Whether multiple button toggle group is disabled.\n * @return {?}\n */\n function () { return this._disabled; },\n set: /**\n * @param {?} value\n * @return {?}\n */\n function (value) {\n this._disabled = coerceBooleanProperty(value);\n if (this._buttonToggles) {\n this._buttonToggles.forEach((/**\n * @param {?} toggle\n * @return {?}\n */\n function (toggle) { return toggle._markForCheck(); }));\n }\n },\n enumerable: true,\n configurable: true\n });\n /**\n * @return {?}\n */\n MatButtonToggleGroup.prototype.ngOnInit = /**\n * @return {?}\n */\n function () {\n this._selectionModel = new SelectionModel(this.multiple, undefined, false);\n };\n /**\n * @return {?}\n */\n MatButtonToggleGroup.prototype.ngAfterContentInit = /**\n * @return {?}\n */\n function () {\n var _a;\n (_a = this._selectionModel).select.apply(_a, this._buttonToggles.filter((/**\n * @param {?} toggle\n * @return {?}\n */\n function (toggle) { return toggle.checked; })));\n };\n /**\n * Sets the model value. Implemented as part of ControlValueAccessor.\n * @param value Value to be set to the model.\n */\n /**\n * Sets the model value. Implemented as part of ControlValueAccessor.\n * @param {?} value Value to be set to the model.\n * @return {?}\n */\n MatButtonToggleGroup.prototype.writeValue = /**\n * Sets the model value. Implemented as part of ControlValueAccessor.\n * @param {?} value Value to be set to the model.\n * @return {?}\n */\n function (value) {\n this.value = value;\n this._changeDetector.markForCheck();\n };\n // Implemented as part of ControlValueAccessor.\n // Implemented as part of ControlValueAccessor.\n /**\n * @param {?} fn\n * @return {?}\n */\n MatButtonToggleGroup.prototype.registerOnChange = \n // Implemented as part of ControlValueAccessor.\n /**\n * @param {?} fn\n * @return {?}\n */\n function (fn) {\n this._controlValueAccessorChangeFn = fn;\n };\n // Implemented as part of ControlValueAccessor.\n // Implemented as part of ControlValueAccessor.\n /**\n * @param {?} fn\n * @return {?}\n */\n MatButtonToggleGroup.prototype.registerOnTouched = \n // Implemented as part of ControlValueAccessor.\n /**\n * @param {?} fn\n * @return {?}\n */\n function (fn) {\n this._onTouched = fn;\n };\n // Implemented as part of ControlValueAccessor.\n // Implemented as part of ControlValueAccessor.\n /**\n * @param {?} isDisabled\n * @return {?}\n */\n MatButtonToggleGroup.prototype.setDisabledState = \n // Implemented as part of ControlValueAccessor.\n /**\n * @param {?} isDisabled\n * @return {?}\n */\n function (isDisabled) {\n this.disabled = isDisabled;\n };\n /** Dispatch change event with current selection and group value. */\n /**\n * Dispatch change event with current selection and group value.\n * @return {?}\n */\n MatButtonToggleGroup.prototype._emitChangeEvent = /**\n * Dispatch change event with current selection and group value.\n * @return {?}\n */\n function () {\n /** @type {?} */\n var selected = this.selected;\n /** @type {?} */\n var source = Array.isArray(selected) ? selected[selected.length - 1] : selected;\n /** @type {?} */\n var event = new MatButtonToggleChange((/** @type {?} */ (source)), this.value);\n this._controlValueAccessorChangeFn(event.value);\n this.change.emit(event);\n };\n /**\n * Syncs a button toggle's selected state with the model value.\n * @param toggle Toggle to be synced.\n * @param select Whether the toggle should be selected.\n * @param isUserInput Whether the change was a result of a user interaction.\n * @param deferEvents Whether to defer emitting the change events.\n */\n /**\n * Syncs a button toggle's selected state with the model value.\n * @param {?} toggle Toggle to be synced.\n * @param {?} select Whether the toggle should be selected.\n * @param {?=} isUserInput Whether the change was a result of a user interaction.\n * @param {?=} deferEvents Whether to defer emitting the change events.\n * @return {?}\n */\n MatButtonToggleGroup.prototype._syncButtonToggle = /**\n * Syncs a button toggle's selected state with the model value.\n * @param {?} toggle Toggle to be synced.\n * @param {?} select Whether the toggle should be selected.\n * @param {?=} isUserInput Whether the change was a result of a user interaction.\n * @param {?=} deferEvents Whether to defer emitting the change events.\n * @return {?}\n */\n function (toggle, select, isUserInput, deferEvents) {\n if (isUserInput === void 0) { isUserInput = false; }\n if (deferEvents === void 0) { deferEvents = false; }\n // Deselect the currently-selected toggle, if we're in single-selection\n // mode and the button being toggled isn't selected at the moment.\n if (!this.multiple && this.selected && !toggle.checked) {\n ((/** @type {?} */ (this.selected))).checked = false;\n }\n if (this._selectionModel) {\n if (select) {\n this._selectionModel.select(toggle);\n }\n else {\n this._selectionModel.deselect(toggle);\n }\n }\n else {\n deferEvents = true;\n }\n // We need to defer in some cases in order to avoid \"changed after checked errors\", however\n // the side-effect is that we may end up updating the model value out of sequence in others\n // The `deferEvents` flag allows us to decide whether to do it on a case-by-case basis.\n if (deferEvents) {\n }\n else {\n this._updateModelValue(isUserInput);\n }\n };\n /** Checks whether a button toggle is selected. */\n /**\n * Checks whether a button toggle is selected.\n * @param {?} toggle\n * @return {?}\n */\n MatButtonToggleGroup.prototype._isSelected = /**\n * Checks whether a button toggle is selected.\n * @param {?} toggle\n * @return {?}\n */\n function (toggle) {\n return this._selectionModel && this._selectionModel.isSelected(toggle);\n };\n /** Determines whether a button toggle should be checked on init. */\n /**\n * Determines whether a button toggle should be checked on init.\n * @param {?} toggle\n * @return {?}\n */\n MatButtonToggleGroup.prototype._isPrechecked = /**\n * Determines whether a button toggle should be checked on init.\n * @param {?} toggle\n * @return {?}\n */\n function (toggle) {\n if (typeof this._rawValue === 'undefined') {\n return false;\n }\n if (this.multiple && Array.isArray(this._rawValue)) {\n return this._rawValue.some((/**\n * @param {?} value\n * @return {?}\n */\n function (value) { return toggle.value != null && value === toggle.value; }));\n }\n return toggle.value === this._rawValue;\n };\n /** Updates the selection state of the toggles in the group based on a value. */\n /**\n * Updates the selection state of the toggles in the group based on a value.\n * @private\n * @param {?} value\n * @return {?}\n */\n MatButtonToggleGroup.prototype._setSelectionByValue = /**\n * Updates the selection state of the toggles in the group based on a value.\n * @private\n * @param {?} value\n * @return {?}\n */\n function (value) {\n var _this = this;\n this._rawValue = value;\n if (!this._buttonToggles) {\n return;\n }\n if (this.multiple && value) {\n if (!Array.isArray(value)) {\n throw Error('Value must be an array in multiple-selection mode.');\n }\n this._clearSelection();\n value.forEach((/**\n * @param {?} currentValue\n * @return {?}\n */\n function (currentValue) { return _this._selectValue(currentValue); }));\n }\n else {\n this._clearSelection();\n this._selectValue(value);\n }\n };\n /** Clears the selected toggles. */\n /**\n * Clears the selected toggles.\n * @private\n * @return {?}\n */\n MatButtonToggleGroup.prototype._clearSelection = /**\n * Clears the selected toggles.\n * @private\n * @return {?}\n */\n function () {\n this._selectionModel.clear();\n this._buttonToggles.forEach((/**\n * @param {?} toggle\n * @return {?}\n */\n function (toggle) { return toggle.checked = false; }));\n };\n /** Selects a value if there's a toggle that corresponds to it. */\n /**\n * Selects a value if there's a toggle that corresponds to it.\n * @private\n * @param {?} value\n * @return {?}\n */\n MatButtonToggleGroup.prototype._selectValue = /**\n * Selects a value if there's a toggle that corresponds to it.\n * @private\n * @param {?} value\n * @return {?}\n */\n function (value) {\n /** @type {?} */\n var correspondingOption = this._buttonToggles.find((/**\n * @param {?} toggle\n * @return {?}\n */\n function (toggle) {\n return toggle.value != null && toggle.value === value;\n }));\n if (correspondingOption) {\n correspondingOption.checked = true;\n this._selectionModel.select(correspondingOption);\n }\n };\n /** Syncs up the group's value with the model and emits the change event. */\n /**\n * Syncs up the group's value with the model and emits the change event.\n * @private\n * @param {?} isUserInput\n * @return {?}\n */\n MatButtonToggleGroup.prototype._updateModelValue = /**\n * Syncs up the group's value with the model and emits the change event.\n * @private\n * @param {?} isUserInput\n * @return {?}\n */\n function (isUserInput) {\n // Only emit the change event for user input.\n if (isUserInput) {\n this._emitChangeEvent();\n }\n // Note: we emit this one no matter whether it was a user interaction, because\n // it is used by Angular to sync up the two-way data binding.\n this.valueChange.emit(this.value);\n };\n MatButtonToggleGroup.decorators = [\n { type: Directive, args: [{\n selector: 'mat-button-toggle-group',\n providers: [\n MAT_BUTTON_TOGGLE_GROUP_VALUE_ACCESSOR,\n { provide: MatButtonToggleGroupMultiple, useExisting: MatButtonToggleGroup },\n ],\n host: {\n 'role': 'group',\n 'class': 'mat-button-toggle-group',\n '[attr.aria-disabled]': 'disabled',\n '[class.mat-button-toggle-vertical]': 'vertical',\n '[class.mat-button-toggle-group-appearance-standard]': 'appearance === \"standard\"',\n },\n exportAs: 'matButtonToggleGroup',\n },] },\n ];\n /** @nocollapse */\n MatButtonToggleGroup.ctorParameters = function () { return [\n { type: ChangeDetectorRef },\n { type: undefined, decorators: [{ type: Optional }, { type: Inject, args: [MAT_BUTTON_TOGGLE_DEFAULT_OPTIONS,] }] }\n ]; };\n MatButtonToggleGroup.propDecorators = {\n _buttonToggles: [{ type: ContentChildren, args: [forwardRef((/**\n * @return {?}\n */\n function () { return MatButtonToggle; })),] }],\n appearance: [{ type: Input }],\n name: [{ type: Input }],\n vertical: [{ type: Input }],\n value: [{ type: Input }],\n valueChange: [{ type: Output }],\n multiple: [{ type: Input }],\n disabled: [{ type: Input }],\n change: [{ type: Output }]\n };\n return MatButtonToggleGroup;\n}());\n// Boilerplate for applying mixins to the MatButtonToggle class.\n/**\n * \\@docs-private\n */\nvar \n// Boilerplate for applying mixins to the MatButtonToggle class.\n/**\n * \\@docs-private\n */\nMatButtonToggleBase = /** @class */ (function () {\n function MatButtonToggleBase() {\n }\n return MatButtonToggleBase;\n}());\n/** @type {?} */\nvar _MatButtonToggleMixinBase = mixinDisableRipple(MatButtonToggleBase);\n/**\n * Single button inside of a toggle group.\n */\nvar MatButtonToggle = /** @class */ (function (_super) {\n __extends(MatButtonToggle, _super);\n function MatButtonToggle(toggleGroup, _changeDetectorRef, _elementRef, _focusMonitor, \n // @breaking-change 8.0.0 `defaultTabIndex` to be made a required parameter.\n defaultTabIndex, defaultOptions) {\n var _this = _super.call(this) || this;\n _this._changeDetectorRef = _changeDetectorRef;\n _this._elementRef = _elementRef;\n _this._focusMonitor = _focusMonitor;\n _this._isSingleSelector = false;\n _this._checked = false;\n /**\n * Users can specify the `aria-labelledby` attribute which will be forwarded to the input element\n */\n _this.ariaLabelledby = null;\n _this._disabled = false;\n /**\n * Event emitted when the group value changes.\n */\n _this.change = new EventEmitter();\n /** @type {?} */\n var parsedTabIndex = Number(defaultTabIndex);\n _this.tabIndex = (parsedTabIndex || parsedTabIndex === 0) ? parsedTabIndex : null;\n _this.buttonToggleGroup = toggleGroup;\n _this.appearance =\n defaultOptions && defaultOptions.appearance ? defaultOptions.appearance : 'standard';\n return _this;\n }\n Object.defineProperty(MatButtonToggle.prototype, \"buttonId\", {\n /** Unique ID for the underlying `button` element. */\n get: /**\n * Unique ID for the underlying `button` element.\n * @return {?}\n */\n function () { return this.id + \"-button\"; },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(MatButtonToggle.prototype, \"appearance\", {\n /** The appearance style of the button. */\n get: /**\n * The appearance style of the button.\n * @return {?}\n */\n function () {\n return this.buttonToggleGroup ? this.buttonToggleGroup.appearance : this._appearance;\n },\n set: /**\n * @param {?} value\n * @return {?}\n */\n function (value) {\n this._appearance = value;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(MatButtonToggle.prototype, \"checked\", {\n /** Whether the button is checked. */\n get: /**\n * Whether the button is checked.\n * @return {?}\n */\n function () {\n return this.buttonToggleGroup ? this.buttonToggleGroup._isSelected(this) : this._checked;\n },\n set: /**\n * @param {?} value\n * @return {?}\n */\n function (value) {\n /** @type {?} */\n var newValue = coerceBooleanProperty(value);\n if (newValue !== this._checked) {\n this._checked = newValue;\n if (this.buttonToggleGroup) {\n this.buttonToggleGroup._syncButtonToggle(this, this._checked);\n }\n this._changeDetectorRef.markForCheck();\n }\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(MatButtonToggle.prototype, \"disabled\", {\n /** Whether the button is disabled. */\n get: /**\n * Whether the button is disabled.\n * @return {?}\n */\n function () {\n return this._disabled || (this.buttonToggleGroup && this.buttonToggleGroup.disabled);\n },\n set: /**\n * @param {?} value\n * @return {?}\n */\n function (value) { this._disabled = coerceBooleanProperty(value); },\n enumerable: true,\n configurable: true\n });\n /**\n * @return {?}\n */\n MatButtonToggle.prototype.ngOnInit = /**\n * @return {?}\n */\n function () {\n this._isSingleSelector = this.buttonToggleGroup && !this.buttonToggleGroup.multiple;\n this._type = this._isSingleSelector ? 'radio' : 'checkbox';\n this.id = this.id || \"mat-button-toggle-\" + _uniqueIdCounter++;\n if (this._isSingleSelector) {\n this.name = this.buttonToggleGroup.name;\n }\n if (this.buttonToggleGroup && this.buttonToggleGroup._isPrechecked(this)) {\n this.checked = true;\n }\n this._focusMonitor.monitor(this._elementRef, true);\n };\n /**\n * @return {?}\n */\n MatButtonToggle.prototype.ngOnDestroy = /**\n * @return {?}\n */\n function () {\n /** @type {?} */\n var group = this.buttonToggleGroup;\n this._focusMonitor.stopMonitoring(this._elementRef);\n // Remove the toggle from the selection once it's destroyed. Needs to happen\n // on the next tick in order to avoid \"changed after checked\" errors.\n if (group && group._isSelected(this)) {\n group._syncButtonToggle(this, false, false, true);\n }\n };\n /** Focuses the button. */\n /**\n * Focuses the button.\n * @param {?=} options\n * @return {?}\n */\n MatButtonToggle.prototype.focus = /**\n * Focuses the button.\n * @param {?=} options\n * @return {?}\n */\n function (options) {\n this._buttonElement.nativeElement.focus(options);\n };\n /** Checks the button toggle due to an interaction with the underlying native button. */\n /**\n * Checks the button toggle due to an interaction with the underlying native button.\n * @return {?}\n */\n MatButtonToggle.prototype._onButtonClick = /**\n * Checks the button toggle due to an interaction with the underlying native button.\n * @return {?}\n */\n function () {\n /** @type {?} */\n var newChecked = this._isSingleSelector ? true : !this._checked;\n if (newChecked !== this._checked) {\n this._checked = newChecked;\n if (this.buttonToggleGroup) {\n this.buttonToggleGroup._syncButtonToggle(this, this._checked, true);\n this.buttonToggleGroup._onTouched();\n }\n }\n // Emit a change event when it's the single selector\n this.change.emit(new MatButtonToggleChange(this, this.value));\n };\n /**\n * Marks the button toggle as needing checking for change detection.\n * This method is exposed because the parent button toggle group will directly\n * update bound properties of the radio button.\n */\n /**\n * Marks the button toggle as needing checking for change detection.\n * This method is exposed because the parent button toggle group will directly\n * update bound properties of the radio button.\n * @return {?}\n */\n MatButtonToggle.prototype._markForCheck = /**\n * Marks the button toggle as needing checking for change detection.\n * This method is exposed because the parent button toggle group will directly\n * update bound properties of the radio button.\n * @return {?}\n */\n function () {\n // When the group value changes, the button will not be notified.\n // Use `markForCheck` to explicit update button toggle's status.\n this._changeDetectorRef.markForCheck();\n };\n MatButtonToggle.decorators = [\n { type: Component, args: [{selector: 'mat-button-toggle',\n template: \"
\",\n styles: [\".mat-button-toggle-group,.mat-button-toggle-standalone{position:relative;display:inline-flex;flex-direction:row;white-space:nowrap;overflow:hidden;border-radius:2px;-webkit-tap-highlight-color:transparent}@media (-ms-high-contrast:active){.mat-button-toggle-group,.mat-button-toggle-standalone{outline:solid 1px}}.mat-button-toggle-group-appearance-standard,.mat-button-toggle-standalone.mat-button-toggle-appearance-standard{border-radius:4px}@media (-ms-high-contrast:active){.mat-button-toggle-group-appearance-standard,.mat-button-toggle-standalone.mat-button-toggle-appearance-standard{outline:0}}.mat-button-toggle-vertical{flex-direction:column}.mat-button-toggle-vertical .mat-button-toggle-label-content{display:block}.mat-button-toggle{white-space:nowrap;position:relative}.mat-button-toggle .mat-icon svg{vertical-align:top}.mat-button-toggle.cdk-keyboard-focused .mat-button-toggle-focus-overlay{opacity:1}@media (-ms-high-contrast:active){.mat-button-toggle.cdk-keyboard-focused .mat-button-toggle-focus-overlay{opacity:.5}}.mat-button-toggle-appearance-standard:not(.mat-button-toggle-disabled):hover .mat-button-toggle-focus-overlay{opacity:.04}.mat-button-toggle-appearance-standard.cdk-keyboard-focused:not(.mat-button-toggle-disabled) .mat-button-toggle-focus-overlay{opacity:.12}@media (-ms-high-contrast:active){.mat-button-toggle-appearance-standard.cdk-keyboard-focused:not(.mat-button-toggle-disabled) .mat-button-toggle-focus-overlay{opacity:.5}}@media (hover:none){.mat-button-toggle-appearance-standard:not(.mat-button-toggle-disabled):hover .mat-button-toggle-focus-overlay{display:none}}.mat-button-toggle-label-content{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;display:inline-block;line-height:36px;padding:0 16px;position:relative}.mat-button-toggle-appearance-standard .mat-button-toggle-label-content{line-height:48px;padding:0 12px}.mat-button-toggle-label-content>*{vertical-align:middle}.mat-button-toggle-focus-overlay{border-radius:inherit;pointer-events:none;opacity:0;top:0;left:0;right:0;bottom:0;position:absolute}.mat-button-toggle-checked .mat-button-toggle-focus-overlay{border-bottom:solid 36px}@media (-ms-high-contrast:active){.mat-button-toggle-checked .mat-button-toggle-focus-overlay{opacity:.5;height:0}}@media (-ms-high-contrast:active){.mat-button-toggle-checked.mat-button-toggle-appearance-standard .mat-button-toggle-focus-overlay{border-bottom:solid 48px}}.mat-button-toggle .mat-button-toggle-ripple{top:0;left:0;right:0;bottom:0;position:absolute;pointer-events:none}.mat-button-toggle-button{border:0;background:0 0;color:inherit;padding:0;margin:0;font:inherit;outline:0;width:100%;cursor:pointer}.mat-button-toggle-disabled .mat-button-toggle-button{cursor:default}.mat-button-toggle-button::-moz-focus-inner{border:0}\"],\n encapsulation: ViewEncapsulation.None,\n exportAs: 'matButtonToggle',\n changeDetection: ChangeDetectionStrategy.OnPush,\n inputs: ['disableRipple'],\n host: {\n '[class.mat-button-toggle-standalone]': '!buttonToggleGroup',\n '[class.mat-button-toggle-checked]': 'checked',\n '[class.mat-button-toggle-disabled]': 'disabled',\n '[class.mat-button-toggle-appearance-standard]': 'appearance === \"standard\"',\n 'class': 'mat-button-toggle',\n // Always reset the tabindex to -1 so it doesn't conflict with the one on the `button`,\n // but can still receive focus from things like cdkFocusInitial.\n '[attr.tabindex]': '-1',\n '[attr.id]': 'id',\n '[attr.name]': 'null',\n '(focus)': 'focus()',\n }\n },] },\n ];\n /** @nocollapse */\n MatButtonToggle.ctorParameters = function () { return [\n { type: MatButtonToggleGroup, decorators: [{ type: Optional }] },\n { type: ChangeDetectorRef },\n { type: ElementRef },\n { type: FocusMonitor },\n { type: String, decorators: [{ type: Attribute, args: ['tabindex',] }] },\n { type: undefined, decorators: [{ type: Optional }, { type: Inject, args: [MAT_BUTTON_TOGGLE_DEFAULT_OPTIONS,] }] }\n ]; };\n MatButtonToggle.propDecorators = {\n ariaLabel: [{ type: Input, args: ['aria-label',] }],\n ariaLabelledby: [{ type: Input, args: ['aria-labelledby',] }],\n _buttonElement: [{ type: ViewChild, args: ['button', { static: false },] }],\n id: [{ type: Input }],\n name: [{ type: Input }],\n value: [{ type: Input }],\n tabIndex: [{ type: Input }],\n appearance: [{ type: Input }],\n checked: [{ type: Input }],\n disabled: [{ type: Input }],\n change: [{ type: Output }]\n };\n return MatButtonToggle;\n}(_MatButtonToggleMixinBase));\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\nvar MatButtonToggleModule = /** @class */ (function () {\n function MatButtonToggleModule() {\n }\n MatButtonToggleModule.decorators = [\n { type: NgModule, args: [{\n imports: [MatCommonModule, MatRippleModule],\n exports: [MatCommonModule, MatButtonToggleGroup, MatButtonToggle],\n declarations: [MatButtonToggleGroup, MatButtonToggle],\n },] },\n ];\n return MatButtonToggleModule;\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 { MAT_BUTTON_TOGGLE_DEFAULT_OPTIONS, MAT_BUTTON_TOGGLE_GROUP_VALUE_ACCESSOR, MatButtonToggleGroupMultiple, MatButtonToggleChange, MatButtonToggleGroup, MatButtonToggle, MatButtonToggleModule };\n//# sourceMappingURL=button-toggle.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 { Component, ViewEncapsulation, ChangeDetectionStrategy, Directive, Input, Optional, Inject, NgModule } from '@angular/core';\nimport { ANIMATION_MODULE_TYPE } from '@angular/platform-browser/animations';\nimport { MatCommonModule } from '@angular/material/core';\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n/**\n * Content of a card, needed as it's used as a selector in the API.\n * \\@docs-private\n */\nvar MatCardContent = /** @class */ (function () {\n function MatCardContent() {\n }\n MatCardContent.decorators = [\n { type: Directive, args: [{\n selector: 'mat-card-content',\n host: { 'class': 'mat-card-content' }\n },] },\n ];\n return MatCardContent;\n}());\n/**\n * Title of a card, needed as it's used as a selector in the API.\n * \\@docs-private\n */\nvar MatCardTitle = /** @class */ (function () {\n function MatCardTitle() {\n }\n MatCardTitle.decorators = [\n { type: Directive, args: [{\n selector: \"mat-card-title, [mat-card-title], [matCardTitle]\",\n host: {\n 'class': 'mat-card-title'\n }\n },] },\n ];\n return MatCardTitle;\n}());\n/**\n * Sub-title of a card, needed as it's used as a selector in the API.\n * \\@docs-private\n */\nvar MatCardSubtitle = /** @class */ (function () {\n function MatCardSubtitle() {\n }\n MatCardSubtitle.decorators = [\n { type: Directive, args: [{\n selector: \"mat-card-subtitle, [mat-card-subtitle], [matCardSubtitle]\",\n host: {\n 'class': 'mat-card-subtitle'\n }\n },] },\n ];\n return MatCardSubtitle;\n}());\n/**\n * Action section of a card, needed as it's used as a selector in the API.\n * \\@docs-private\n */\nvar MatCardActions = /** @class */ (function () {\n function MatCardActions() {\n /**\n * Position of the actions inside the card.\n */\n this.align = 'start';\n }\n MatCardActions.decorators = [\n { type: Directive, args: [{\n selector: 'mat-card-actions',\n exportAs: 'matCardActions',\n host: {\n 'class': 'mat-card-actions',\n '[class.mat-card-actions-align-end]': 'align === \"end\"',\n }\n },] },\n ];\n MatCardActions.propDecorators = {\n align: [{ type: Input }]\n };\n return MatCardActions;\n}());\n/**\n * Footer of a card, needed as it's used as a selector in the API.\n * \\@docs-private\n */\nvar MatCardFooter = /** @class */ (function () {\n function MatCardFooter() {\n }\n MatCardFooter.decorators = [\n { type: Directive, args: [{\n selector: 'mat-card-footer',\n host: { 'class': 'mat-card-footer' }\n },] },\n ];\n return MatCardFooter;\n}());\n/**\n * Image used in a card, needed to add the mat- CSS styling.\n * \\@docs-private\n */\nvar MatCardImage = /** @class */ (function () {\n function MatCardImage() {\n }\n MatCardImage.decorators = [\n { type: Directive, args: [{\n selector: '[mat-card-image], [matCardImage]',\n host: { 'class': 'mat-card-image' }\n },] },\n ];\n return MatCardImage;\n}());\n/**\n * Image used in a card, needed to add the mat- CSS styling.\n * \\@docs-private\n */\nvar MatCardSmImage = /** @class */ (function () {\n function MatCardSmImage() {\n }\n MatCardSmImage.decorators = [\n { type: Directive, args: [{\n selector: '[mat-card-sm-image], [matCardImageSmall]',\n host: { 'class': 'mat-card-sm-image' }\n },] },\n ];\n return MatCardSmImage;\n}());\n/**\n * Image used in a card, needed to add the mat- CSS styling.\n * \\@docs-private\n */\nvar MatCardMdImage = /** @class */ (function () {\n function MatCardMdImage() {\n }\n MatCardMdImage.decorators = [\n { type: Directive, args: [{\n selector: '[mat-card-md-image], [matCardImageMedium]',\n host: { 'class': 'mat-card-md-image' }\n },] },\n ];\n return MatCardMdImage;\n}());\n/**\n * Image used in a card, needed to add the mat- CSS styling.\n * \\@docs-private\n */\nvar MatCardLgImage = /** @class */ (function () {\n function MatCardLgImage() {\n }\n MatCardLgImage.decorators = [\n { type: Directive, args: [{\n selector: '[mat-card-lg-image], [matCardImageLarge]',\n host: { 'class': 'mat-card-lg-image' }\n },] },\n ];\n return MatCardLgImage;\n}());\n/**\n * Large image used in a card, needed to add the mat- CSS styling.\n * \\@docs-private\n */\nvar MatCardXlImage = /** @class */ (function () {\n function MatCardXlImage() {\n }\n MatCardXlImage.decorators = [\n { type: Directive, args: [{\n selector: '[mat-card-xl-image], [matCardImageXLarge]',\n host: { 'class': 'mat-card-xl-image' }\n },] },\n ];\n return MatCardXlImage;\n}());\n/**\n * Avatar image used in a card, needed to add the mat- CSS styling.\n * \\@docs-private\n */\nvar MatCardAvatar = /** @class */ (function () {\n function MatCardAvatar() {\n }\n MatCardAvatar.decorators = [\n { type: Directive, args: [{\n selector: '[mat-card-avatar], [matCardAvatar]',\n host: { 'class': 'mat-card-avatar' }\n },] },\n ];\n return MatCardAvatar;\n}());\n/**\n * A basic content container component that adds the styles of a Material design card.\n *\n * While this component can be used alone, it also provides a number\n * of preset styles for common card sections, including:\n * - mat-card-title\n * - mat-card-subtitle\n * - mat-card-content\n * - mat-card-actions\n * - mat-card-footer\n */\nvar MatCard = /** @class */ (function () {\n // @breaking-change 9.0.0 `_animationMode` parameter to be made required.\n function MatCard(_animationMode) {\n this._animationMode = _animationMode;\n }\n MatCard.decorators = [\n { type: Component, args: [{selector: 'mat-card',\n exportAs: 'matCard',\n template: \"\",\n styles: [\".mat-card{transition:box-shadow 280ms cubic-bezier(.4,0,.2,1);display:block;position:relative;padding:16px;border-radius:4px}._mat-animation-noopable.mat-card{transition:none;animation:none}.mat-card .mat-divider-horizontal{position:absolute;left:0;width:100%}[dir=rtl] .mat-card .mat-divider-horizontal{left:auto;right:0}.mat-card .mat-divider-horizontal.mat-divider-inset{position:static;margin:0}[dir=rtl] .mat-card .mat-divider-horizontal.mat-divider-inset{margin-right:0}@media (-ms-high-contrast:active){.mat-card{outline:solid 1px}}.mat-card-actions,.mat-card-content,.mat-card-subtitle{display:block;margin-bottom:16px}.mat-card-title{display:block;margin-bottom:8px}.mat-card-actions{margin-left:-8px;margin-right:-8px;padding:8px 0}.mat-card-actions-align-end{display:flex;justify-content:flex-end}.mat-card-image{width:calc(100% + 32px);margin:0 -16px 16px -16px}.mat-card-footer{display:block;margin:0 -16px -16px -16px}.mat-card-actions .mat-button,.mat-card-actions .mat-raised-button,.mat-card-actions .mat-stroked-button{margin:0 8px}.mat-card-header{display:flex;flex-direction:row}.mat-card-header .mat-card-title{margin-bottom:12px}.mat-card-header-text{margin:0 16px}.mat-card-avatar{height:40px;width:40px;border-radius:50%;flex-shrink:0;object-fit:cover}.mat-card-title-group{display:flex;justify-content:space-between}.mat-card-sm-image{width:80px;height:80px}.mat-card-md-image{width:112px;height:112px}.mat-card-lg-image{width:152px;height:152px}.mat-card-xl-image{width:240px;height:240px;margin:-8px}.mat-card-title-group>.mat-card-xl-image{margin:-8px 0 8px}@media (max-width:599px){.mat-card-title-group{margin:0}.mat-card-xl-image{margin-left:0;margin-right:0}}.mat-card-content>:first-child,.mat-card>:first-child{margin-top:0}.mat-card-content>:last-child:not(.mat-card-footer),.mat-card>:last-child:not(.mat-card-footer){margin-bottom:0}.mat-card-image:first-child{margin-top:-16px;border-top-left-radius:inherit;border-top-right-radius:inherit}.mat-card>.mat-card-actions:last-child{margin-bottom:-8px;padding-bottom:0}.mat-card-actions .mat-button:first-child,.mat-card-actions .mat-raised-button:first-child,.mat-card-actions .mat-stroked-button:first-child{margin-left:0;margin-right:0}.mat-card-subtitle:not(:first-child),.mat-card-title:not(:first-child){margin-top:-4px}.mat-card-header .mat-card-subtitle:not(:first-child){margin-top:-8px}.mat-card>.mat-card-xl-image:first-child{margin-top:-8px}.mat-card>.mat-card-xl-image:last-child{margin-bottom:-8px}\"],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n 'class': 'mat-card',\n '[class._mat-animation-noopable]': '_animationMode === \"NoopAnimations\"',\n }\n },] },\n ];\n /** @nocollapse */\n MatCard.ctorParameters = function () { return [\n { type: String, decorators: [{ type: Optional }, { type: Inject, args: [ANIMATION_MODULE_TYPE,] }] }\n ]; };\n return MatCard;\n}());\n/**\n * Component intended to be used within the `` component. It adds styles for a\n * preset header section (i.e. a title, subtitle, and avatar layout).\n * \\@docs-private\n */\nvar MatCardHeader = /** @class */ (function () {\n function MatCardHeader() {\n }\n MatCardHeader.decorators = [\n { type: Component, args: [{selector: 'mat-card-header',\n template: \"
\",\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: { 'class': 'mat-card-header' }\n },] },\n ];\n return MatCardHeader;\n}());\n/**\n * Component intended to be used within the `` component. It adds styles for a preset\n * layout that groups an image with a title section.\n * \\@docs-private\n */\nvar MatCardTitleGroup = /** @class */ (function () {\n function MatCardTitleGroup() {\n }\n MatCardTitleGroup.decorators = [\n { type: Component, args: [{selector: 'mat-card-title-group',\n template: \"
\",\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: { 'class': 'mat-card-title-group' }\n },] },\n ];\n return MatCardTitleGroup;\n}());\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\nvar MatCardModule = /** @class */ (function () {\n function MatCardModule() {\n }\n MatCardModule.decorators = [\n { type: NgModule, args: [{\n imports: [MatCommonModule],\n exports: [\n MatCard,\n MatCardHeader,\n MatCardTitleGroup,\n MatCardContent,\n MatCardTitle,\n MatCardSubtitle,\n MatCardActions,\n MatCardFooter,\n MatCardSmImage,\n MatCardMdImage,\n MatCardLgImage,\n MatCardImage,\n MatCardXlImage,\n MatCardAvatar,\n MatCommonModule,\n ],\n declarations: [\n MatCard, MatCardHeader, MatCardTitleGroup, MatCardContent, MatCardTitle, MatCardSubtitle,\n MatCardActions, MatCardFooter, MatCardSmImage, MatCardMdImage, MatCardLgImage, MatCardImage,\n MatCardXlImage, MatCardAvatar,\n ],\n },] },\n ];\n return MatCardModule;\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 { MatCardContent, MatCardTitle, MatCardSubtitle, MatCardActions, MatCardFooter, MatCardImage, MatCardSmImage, MatCardMdImage, MatCardLgImage, MatCardXlImage, MatCardAvatar, MatCard, MatCardHeader, MatCardTitleGroup, MatCardModule };\n//# sourceMappingURL=card.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 { ChangeDetectionStrategy, Component, Input, ViewEncapsulation, NgModule } from '@angular/core';\nimport { coerceBooleanProperty } from '@angular/cdk/coercion';\nimport { CommonModule } from '@angular/common';\nimport { MatCommonModule } from '@angular/material/core';\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\nvar MatDivider = /** @class */ (function () {\n function MatDivider() {\n this._vertical = false;\n this._inset = false;\n }\n Object.defineProperty(MatDivider.prototype, \"vertical\", {\n /** Whether the divider is vertically aligned. */\n get: /**\n * Whether the divider is vertically aligned.\n * @return {?}\n */\n function () { return this._vertical; },\n set: /**\n * @param {?} value\n * @return {?}\n */\n function (value) { this._vertical = coerceBooleanProperty(value); },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(MatDivider.prototype, \"inset\", {\n /** Whether the divider is an inset divider. */\n get: /**\n * Whether the divider is an inset divider.\n * @return {?}\n */\n function () { return this._inset; },\n set: /**\n * @param {?} value\n * @return {?}\n */\n function (value) { this._inset = coerceBooleanProperty(value); },\n enumerable: true,\n configurable: true\n });\n MatDivider.decorators = [\n { type: Component, args: [{selector: 'mat-divider',\n host: {\n 'role': 'separator',\n '[attr.aria-orientation]': 'vertical ? \"vertical\" : \"horizontal\"',\n '[class.mat-divider-vertical]': 'vertical',\n '[class.mat-divider-horizontal]': '!vertical',\n '[class.mat-divider-inset]': 'inset',\n 'class': 'mat-divider'\n },\n template: '',\n styles: [\".mat-divider{display:block;margin:0;border-top-width:1px;border-top-style:solid}.mat-divider.mat-divider-vertical{border-top:0;border-right-width:1px;border-right-style:solid}.mat-divider.mat-divider-inset{margin-left:80px}[dir=rtl] .mat-divider.mat-divider-inset{margin-left:auto;margin-right:80px}\"],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n },] },\n ];\n MatDivider.propDecorators = {\n vertical: [{ type: Input }],\n inset: [{ type: Input }]\n };\n return MatDivider;\n}());\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\nvar MatDividerModule = /** @class */ (function () {\n function MatDividerModule() {\n }\n MatDividerModule.decorators = [\n { type: NgModule, args: [{\n imports: [MatCommonModule, CommonModule],\n exports: [MatDivider, MatCommonModule],\n declarations: [MatDivider],\n },] },\n ];\n return MatDividerModule;\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 { MatDivider, MatDividerModule };\n//# sourceMappingURL=divider.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 { InjectionToken, Directive, TemplateRef, ChangeDetectionStrategy, ChangeDetectorRef, Component, ContentChild, EventEmitter, ElementRef, Input, Inject, Optional, Output, SkipSelf, ViewContainerRef, ViewEncapsulation, ViewChild, Host, ContentChildren, NgModule } from '@angular/core';\nimport { animate, animateChild, group, state, style, transition, trigger, query } from '@angular/animations';\nimport { __extends } from 'tslib';\nimport { CdkAccordionItem, CdkAccordion, CdkAccordionModule } from '@angular/cdk/accordion';\nimport { coerceBooleanProperty } from '@angular/cdk/coercion';\nimport { UniqueSelectionDispatcher } from '@angular/cdk/collections';\nimport { TemplatePortal, PortalModule } from '@angular/cdk/portal';\nimport { DOCUMENT, CommonModule } from '@angular/common';\nimport { ANIMATION_MODULE_TYPE } from '@angular/platform-browser/animations';\nimport { Subject, merge, Subscription, EMPTY } from 'rxjs';\nimport { filter, startWith, take, distinctUntilChanged } from 'rxjs/operators';\nimport { FocusMonitor, FocusKeyManager } from '@angular/cdk/a11y';\nimport { ENTER, SPACE, hasModifierKey, HOME, END } from '@angular/cdk/keycodes';\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n/**\n * Token used to provide a `MatAccordion` to `MatExpansionPanel`.\n * Used primarily to avoid circular imports between `MatAccordion` and `MatExpansionPanel`.\n * @type {?}\n */\nvar MAT_ACCORDION = new InjectionToken('MAT_ACCORDION');\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n/**\n * Time and timing curve for expansion panel animations.\n * @type {?}\n */\nvar EXPANSION_PANEL_ANIMATION_TIMING = '225ms cubic-bezier(0.4,0.0,0.2,1)';\n/**\n * Animations used by the Material expansion panel.\n *\n * A bug in angular animation's `state` when ViewContainers are moved using ViewContainerRef.move()\n * causes the animation state of moved components to become `void` upon exit, and not update again\n * upon reentry into the DOM. This can lead a to situation for the expansion panel where the state\n * of the panel is `expanded` or `collapsed` but the animation state is `void`.\n *\n * To correctly handle animating to the next state, we animate between `void` and `collapsed` which\n * are defined to have the same styles. Since angular animates from the current styles to the\n * destination state's style definition, in situations where we are moving from `void`'s styles to\n * `collapsed` this acts a noop since no style values change.\n *\n * In the case where angular's animation state is out of sync with the expansion panel's state, the\n * expansion panel being `expanded` and angular animations being `void`, the animation from the\n * `expanded`'s effective styles (though in a `void` animation state) to the collapsed state will\n * occur as expected.\n *\n * Angular Bug: https://github.com/angular/angular/issues/18847\n *\n * \\@docs-private\n * @type {?}\n */\nvar matExpansionAnimations = {\n /**\n * Animation that rotates the indicator arrow.\n */\n indicatorRotate: trigger('indicatorRotate', [\n state('collapsed, void', style({ transform: 'rotate(0deg)' })),\n state('expanded', style({ transform: 'rotate(180deg)' })),\n transition('expanded <=> collapsed, void => collapsed', animate(EXPANSION_PANEL_ANIMATION_TIMING)),\n ]),\n /**\n * Animation that expands and collapses the panel header height.\n */\n expansionHeaderHeight: trigger('expansionHeight', [\n state('collapsed, void', style({\n height: '{{collapsedHeight}}',\n }), {\n params: { collapsedHeight: '48px' },\n }),\n state('expanded', style({\n height: '{{expandedHeight}}'\n }), {\n params: { expandedHeight: '64px' }\n }),\n transition('expanded <=> collapsed, void => collapsed', group([\n query('@indicatorRotate', animateChild(), { optional: true }),\n animate(EXPANSION_PANEL_ANIMATION_TIMING),\n ])),\n ]),\n /**\n * Animation that expands and collapses the panel content.\n */\n bodyExpansion: trigger('bodyExpansion', [\n state('collapsed, void', style({ height: '0px', visibility: 'hidden' })),\n state('expanded', style({ height: '*', visibility: 'visible' })),\n transition('expanded <=> collapsed, void => collapsed', animate(EXPANSION_PANEL_ANIMATION_TIMING)),\n ])\n};\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n/**\n * Expansion panel content that will be rendered lazily\n * after the panel is opened for the first time.\n */\nvar MatExpansionPanelContent = /** @class */ (function () {\n function MatExpansionPanelContent(_template) {\n this._template = _template;\n }\n MatExpansionPanelContent.decorators = [\n { type: Directive, args: [{\n selector: 'ng-template[matExpansionPanelContent]'\n },] },\n ];\n /** @nocollapse */\n MatExpansionPanelContent.ctorParameters = function () { return [\n { type: TemplateRef }\n ]; };\n return MatExpansionPanelContent;\n}());\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n/**\n * Counter for generating unique element ids.\n * @type {?}\n */\nvar uniqueId = 0;\n/**\n * Injection token that can be used to configure the defalt\n * options for the expansion panel component.\n * @type {?}\n */\nvar MAT_EXPANSION_PANEL_DEFAULT_OPTIONS = new InjectionToken('MAT_EXPANSION_PANEL_DEFAULT_OPTIONS');\nvar ɵ0 = undefined;\n/**\n * ``\n *\n * This component can be used as a single element to show expandable content, or as one of\n * multiple children of an element with the MatAccordion directive attached.\n */\nvar MatExpansionPanel = /** @class */ (function (_super) {\n __extends(MatExpansionPanel, _super);\n function MatExpansionPanel(accordion, _changeDetectorRef, _uniqueSelectionDispatcher, _viewContainerRef, _document, _animationMode, defaultOptions) {\n var _this = _super.call(this, accordion, _changeDetectorRef, _uniqueSelectionDispatcher) || this;\n _this._viewContainerRef = _viewContainerRef;\n _this._animationMode = _animationMode;\n _this._hideToggle = false;\n /**\n * An event emitted after the body's expansion animation happens.\n */\n _this.afterExpand = new EventEmitter();\n /**\n * An event emitted after the body's collapse animation happens.\n */\n _this.afterCollapse = new EventEmitter();\n /**\n * Stream that emits for changes in `\\@Input` properties.\n */\n _this._inputChanges = new Subject();\n /**\n * ID for the associated header element. Used for a11y labelling.\n */\n _this._headerId = \"mat-expansion-panel-header-\" + uniqueId++;\n /**\n * Stream of body animation done events.\n */\n _this._bodyAnimationDone = new Subject();\n _this.accordion = accordion;\n _this._document = _document;\n // We need a Subject with distinctUntilChanged, because the `done` event\n // fires twice on some browsers. See https://github.com/angular/angular/issues/24084\n _this._bodyAnimationDone.pipe(distinctUntilChanged((/**\n * @param {?} x\n * @param {?} y\n * @return {?}\n */\n function (x, y) {\n return x.fromState === y.fromState && x.toState === y.toState;\n }))).subscribe((/**\n * @param {?} event\n * @return {?}\n */\n function (event) {\n if (event.fromState !== 'void') {\n if (event.toState === 'expanded') {\n _this.afterExpand.emit();\n }\n else if (event.toState === 'collapsed') {\n _this.afterCollapse.emit();\n }\n }\n }));\n if (defaultOptions) {\n _this.hideToggle = defaultOptions.hideToggle;\n }\n return _this;\n }\n Object.defineProperty(MatExpansionPanel.prototype, \"hideToggle\", {\n /** Whether the toggle indicator should be hidden. */\n get: /**\n * Whether the toggle indicator should be hidden.\n * @return {?}\n */\n function () {\n return this._hideToggle || (this.accordion && this.accordion.hideToggle);\n },\n set: /**\n * @param {?} value\n * @return {?}\n */\n function (value) {\n this._hideToggle = coerceBooleanProperty(value);\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(MatExpansionPanel.prototype, \"togglePosition\", {\n /** The position of the expansion indicator. */\n get: /**\n * The position of the expansion indicator.\n * @return {?}\n */\n function () {\n return this._togglePosition || (this.accordion && this.accordion.togglePosition);\n },\n set: /**\n * @param {?} value\n * @return {?}\n */\n function (value) {\n this._togglePosition = value;\n },\n enumerable: true,\n configurable: true\n });\n /** Determines whether the expansion panel should have spacing between it and its siblings. */\n /**\n * Determines whether the expansion panel should have spacing between it and its siblings.\n * @return {?}\n */\n MatExpansionPanel.prototype._hasSpacing = /**\n * Determines whether the expansion panel should have spacing between it and its siblings.\n * @return {?}\n */\n function () {\n if (this.accordion) {\n // We don't need to subscribe to the `stateChanges` of the parent accordion because each time\n // the [displayMode] input changes, the change detection will also cover the host bindings\n // of this expansion panel.\n return (this.expanded ? this.accordion.displayMode : this._getExpandedState()) === 'default';\n }\n return false;\n };\n /** Gets the expanded state string. */\n /**\n * Gets the expanded state string.\n * @return {?}\n */\n MatExpansionPanel.prototype._getExpandedState = /**\n * Gets the expanded state string.\n * @return {?}\n */\n function () {\n return this.expanded ? 'expanded' : 'collapsed';\n };\n /**\n * @return {?}\n */\n MatExpansionPanel.prototype.ngAfterContentInit = /**\n * @return {?}\n */\n function () {\n var _this = this;\n if (this._lazyContent) {\n // Render the content as soon as the panel becomes open.\n this.opened.pipe(startWith((/** @type {?} */ (null))), filter((/**\n * @return {?}\n */\n function () { return _this.expanded && !_this._portal; })), take(1)).subscribe((/**\n * @return {?}\n */\n function () {\n _this._portal = new TemplatePortal(_this._lazyContent._template, _this._viewContainerRef);\n }));\n }\n };\n /**\n * @param {?} changes\n * @return {?}\n */\n MatExpansionPanel.prototype.ngOnChanges = /**\n * @param {?} changes\n * @return {?}\n */\n function (changes) {\n this._inputChanges.next(changes);\n };\n /**\n * @return {?}\n */\n MatExpansionPanel.prototype.ngOnDestroy = /**\n * @return {?}\n */\n function () {\n _super.prototype.ngOnDestroy.call(this);\n this._bodyAnimationDone.complete();\n this._inputChanges.complete();\n };\n /** Checks whether the expansion panel's content contains the currently-focused element. */\n /**\n * Checks whether the expansion panel's content contains the currently-focused element.\n * @return {?}\n */\n MatExpansionPanel.prototype._containsFocus = /**\n * Checks whether the expansion panel's content contains the currently-focused element.\n * @return {?}\n */\n function () {\n if (this._body) {\n /** @type {?} */\n var focusedElement = this._document.activeElement;\n /** @type {?} */\n var bodyElement = this._body.nativeElement;\n return focusedElement === bodyElement || bodyElement.contains(focusedElement);\n }\n return false;\n };\n MatExpansionPanel.decorators = [\n { type: Component, args: [{styles: [\".mat-expansion-panel{box-sizing:content-box;display:block;margin:0;border-radius:4px;overflow:hidden;transition:margin 225ms cubic-bezier(.4,0,.2,1),box-shadow 280ms cubic-bezier(.4,0,.2,1)}.mat-accordion .mat-expansion-panel:not(.mat-expanded),.mat-accordion .mat-expansion-panel:not(.mat-expansion-panel-spacing){border-radius:0}.mat-accordion .mat-expansion-panel:first-of-type{border-top-right-radius:4px;border-top-left-radius:4px}.mat-accordion .mat-expansion-panel:last-of-type{border-bottom-right-radius:4px;border-bottom-left-radius:4px}@media (-ms-high-contrast:active){.mat-expansion-panel{outline:solid 1px}}.mat-expansion-panel._mat-animation-noopable,.mat-expansion-panel.ng-animate-disabled,.ng-animate-disabled .mat-expansion-panel{transition:none}.mat-expansion-panel-content{display:flex;flex-direction:column;overflow:visible}.mat-expansion-panel-body{padding:0 24px 16px}.mat-expansion-panel-spacing{margin:16px 0}.mat-accordion>.mat-expansion-panel-spacing:first-child,.mat-accordion>:first-child:not(.mat-expansion-panel) .mat-expansion-panel-spacing{margin-top:0}.mat-accordion>.mat-expansion-panel-spacing:last-child,.mat-accordion>:last-child:not(.mat-expansion-panel) .mat-expansion-panel-spacing{margin-bottom:0}.mat-action-row{border-top-style:solid;border-top-width:1px;display:flex;flex-direction:row;justify-content:flex-end;padding:16px 8px 16px 24px}.mat-action-row button.mat-button-base{margin-left:8px}[dir=rtl] .mat-action-row button.mat-button-base{margin-left:0;margin-right:8px}\"],\n selector: 'mat-expansion-panel',\n exportAs: 'matExpansionPanel',\n template: \"
\",\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n inputs: ['disabled', 'expanded'],\n outputs: ['opened', 'closed', 'expandedChange'],\n animations: [matExpansionAnimations.bodyExpansion],\n providers: [\n // Provide MatAccordion as undefined to prevent nested expansion panels from registering\n // to the same accordion.\n { provide: MAT_ACCORDION, useValue: ɵ0 },\n ],\n host: {\n 'class': 'mat-expansion-panel',\n '[class.mat-expanded]': 'expanded',\n '[class._mat-animation-noopable]': '_animationMode === \"NoopAnimations\"',\n '[class.mat-expansion-panel-spacing]': '_hasSpacing()',\n }\n },] },\n ];\n /** @nocollapse */\n MatExpansionPanel.ctorParameters = function () { return [\n { type: undefined, decorators: [{ type: Optional }, { type: SkipSelf }, { type: Inject, args: [MAT_ACCORDION,] }] },\n { type: ChangeDetectorRef },\n { type: UniqueSelectionDispatcher },\n { type: ViewContainerRef },\n { type: undefined, decorators: [{ type: Inject, args: [DOCUMENT,] }] },\n { type: String, decorators: [{ type: Optional }, { type: Inject, args: [ANIMATION_MODULE_TYPE,] }] },\n { type: undefined, decorators: [{ type: Inject, args: [MAT_EXPANSION_PANEL_DEFAULT_OPTIONS,] }, { type: Optional }] }\n ]; };\n MatExpansionPanel.propDecorators = {\n hideToggle: [{ type: Input }],\n togglePosition: [{ type: Input }],\n afterExpand: [{ type: Output }],\n afterCollapse: [{ type: Output }],\n _lazyContent: [{ type: ContentChild, args: [MatExpansionPanelContent, { static: false },] }],\n _body: [{ type: ViewChild, args: ['body', { static: false },] }]\n };\n return MatExpansionPanel;\n}(CdkAccordionItem));\nvar MatExpansionPanelActionRow = /** @class */ (function () {\n function MatExpansionPanelActionRow() {\n }\n MatExpansionPanelActionRow.decorators = [\n { type: Directive, args: [{\n selector: 'mat-action-row',\n host: {\n class: 'mat-action-row'\n }\n },] },\n ];\n return MatExpansionPanelActionRow;\n}());\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n/**\n * ``\n *\n * This component corresponds to the header element of an ``.\n */\nvar MatExpansionPanelHeader = /** @class */ (function () {\n function MatExpansionPanelHeader(panel, _element, _focusMonitor, _changeDetectorRef, defaultOptions) {\n var _this = this;\n this.panel = panel;\n this._element = _element;\n this._focusMonitor = _focusMonitor;\n this._changeDetectorRef = _changeDetectorRef;\n this._parentChangeSubscription = Subscription.EMPTY;\n /**\n * Whether Angular animations in the panel header should be disabled.\n */\n this._animationsDisabled = true;\n /** @type {?} */\n var accordionHideToggleChange = panel.accordion ?\n panel.accordion._stateChanges.pipe(filter((/**\n * @param {?} changes\n * @return {?}\n */\n function (changes) { return !!(changes['hideToggle'] || changes['togglePosition']); }))) :\n EMPTY;\n // Since the toggle state depends on an @Input on the panel, we\n // need to subscribe and trigger change detection manually.\n this._parentChangeSubscription =\n merge(panel.opened, panel.closed, accordionHideToggleChange, panel._inputChanges.pipe(filter((/**\n * @param {?} changes\n * @return {?}\n */\n function (changes) {\n return !!(changes['hideToggle'] ||\n changes['disabled'] ||\n changes['togglePosition']);\n }))))\n .subscribe((/**\n * @return {?}\n */\n function () { return _this._changeDetectorRef.markForCheck(); }));\n // Avoids focus being lost if the panel contained the focused element and was closed.\n panel.closed\n .pipe(filter((/**\n * @return {?}\n */\n function () { return panel._containsFocus(); })))\n .subscribe((/**\n * @return {?}\n */\n function () { return _focusMonitor.focusVia(_element, 'program'); }));\n _focusMonitor.monitor(_element).subscribe((/**\n * @param {?} origin\n * @return {?}\n */\n function (origin) {\n if (origin && panel.accordion) {\n panel.accordion._handleHeaderFocus(_this);\n }\n }));\n if (defaultOptions) {\n this.expandedHeight = defaultOptions.expandedHeight;\n this.collapsedHeight = defaultOptions.collapsedHeight;\n }\n }\n /**\n * @return {?}\n */\n MatExpansionPanelHeader.prototype._animationStarted = /**\n * @return {?}\n */\n function () {\n // Currently the `expansionHeight` animation has a `void => collapsed` transition which is\n // there to work around a bug in Angular (see #13088), however this introduces a different\n // issue. The new transition will cause the header to animate in on init (see #16067), if the\n // consumer has set a header height that is different from the default one. We work around it\n // by disabling animations on the header and re-enabling them after the first animation has run.\n // Note that Angular dispatches animation events even if animations are disabled. Ideally this\n // wouldn't be necessary if we remove the `void => collapsed` transition, but we have to wait\n // for https://github.com/angular/angular/issues/18847 to be resolved.\n this._animationsDisabled = false;\n };\n Object.defineProperty(MatExpansionPanelHeader.prototype, \"disabled\", {\n /**\n * Whether the associated panel is disabled. Implemented as a part of `FocusableOption`.\n * @docs-private\n */\n get: /**\n * Whether the associated panel is disabled. Implemented as a part of `FocusableOption`.\n * \\@docs-private\n * @return {?}\n */\n function () {\n return this.panel.disabled;\n },\n enumerable: true,\n configurable: true\n });\n /** Toggles the expanded state of the panel. */\n /**\n * Toggles the expanded state of the panel.\n * @return {?}\n */\n MatExpansionPanelHeader.prototype._toggle = /**\n * Toggles the expanded state of the panel.\n * @return {?}\n */\n function () {\n this.panel.toggle();\n };\n /** Gets whether the panel is expanded. */\n /**\n * Gets whether the panel is expanded.\n * @return {?}\n */\n MatExpansionPanelHeader.prototype._isExpanded = /**\n * Gets whether the panel is expanded.\n * @return {?}\n */\n function () {\n return this.panel.expanded;\n };\n /** Gets the expanded state string of the panel. */\n /**\n * Gets the expanded state string of the panel.\n * @return {?}\n */\n MatExpansionPanelHeader.prototype._getExpandedState = /**\n * Gets the expanded state string of the panel.\n * @return {?}\n */\n function () {\n return this.panel._getExpandedState();\n };\n /** Gets the panel id. */\n /**\n * Gets the panel id.\n * @return {?}\n */\n MatExpansionPanelHeader.prototype._getPanelId = /**\n * Gets the panel id.\n * @return {?}\n */\n function () {\n return this.panel.id;\n };\n /** Gets the toggle position for the header. */\n /**\n * Gets the toggle position for the header.\n * @return {?}\n */\n MatExpansionPanelHeader.prototype._getTogglePosition = /**\n * Gets the toggle position for the header.\n * @return {?}\n */\n function () {\n return this.panel.togglePosition;\n };\n /** Gets whether the expand indicator should be shown. */\n /**\n * Gets whether the expand indicator should be shown.\n * @return {?}\n */\n MatExpansionPanelHeader.prototype._showToggle = /**\n * Gets whether the expand indicator should be shown.\n * @return {?}\n */\n function () {\n return !this.panel.hideToggle && !this.panel.disabled;\n };\n /** Handle keydown event calling to toggle() if appropriate. */\n /**\n * Handle keydown event calling to toggle() if appropriate.\n * @param {?} event\n * @return {?}\n */\n MatExpansionPanelHeader.prototype._keydown = /**\n * Handle keydown event calling to toggle() if appropriate.\n * @param {?} event\n * @return {?}\n */\n function (event) {\n switch (event.keyCode) {\n // Toggle for space and enter keys.\n case SPACE:\n case ENTER:\n if (!hasModifierKey(event)) {\n event.preventDefault();\n this._toggle();\n }\n break;\n default:\n if (this.panel.accordion) {\n this.panel.accordion._handleHeaderKeydown(event);\n }\n return;\n }\n };\n /**\n * Focuses the panel header. Implemented as a part of `FocusableOption`.\n * @param origin Origin of the action that triggered the focus.\n * @docs-private\n */\n /**\n * Focuses the panel header. Implemented as a part of `FocusableOption`.\n * \\@docs-private\n * @param {?=} origin Origin of the action that triggered the focus.\n * @param {?=} options\n * @return {?}\n */\n MatExpansionPanelHeader.prototype.focus = /**\n * Focuses the panel header. Implemented as a part of `FocusableOption`.\n * \\@docs-private\n * @param {?=} origin Origin of the action that triggered the focus.\n * @param {?=} options\n * @return {?}\n */\n function (origin, options) {\n if (origin === void 0) { origin = 'program'; }\n this._focusMonitor.focusVia(this._element, origin, options);\n };\n /**\n * @return {?}\n */\n MatExpansionPanelHeader.prototype.ngOnDestroy = /**\n * @return {?}\n */\n function () {\n this._parentChangeSubscription.unsubscribe();\n this._focusMonitor.stopMonitoring(this._element);\n };\n MatExpansionPanelHeader.decorators = [\n { type: Component, args: [{selector: 'mat-expansion-panel-header',\n styles: [\".mat-expansion-panel-header{display:flex;flex-direction:row;align-items:center;padding:0 24px;border-radius:inherit}.mat-expansion-panel-header:focus,.mat-expansion-panel-header:hover{outline:0}.mat-expansion-panel-header.mat-expanded:focus,.mat-expansion-panel-header.mat-expanded:hover{background:inherit}.mat-expansion-panel-header:not([aria-disabled=true]){cursor:pointer}.mat-expansion-panel-header.mat-expansion-toggle-indicator-before{flex-direction:row-reverse}.mat-expansion-panel-header.mat-expansion-toggle-indicator-before .mat-expansion-indicator{margin:0 16px 0 0}[dir=rtl] .mat-expansion-panel-header.mat-expansion-toggle-indicator-before .mat-expansion-indicator{margin:0 0 0 16px}.mat-content{display:flex;flex:1;flex-direction:row;overflow:hidden}.mat-expansion-panel-header-description,.mat-expansion-panel-header-title{display:flex;flex-grow:1;margin-right:16px}[dir=rtl] .mat-expansion-panel-header-description,[dir=rtl] .mat-expansion-panel-header-title{margin-right:0;margin-left:16px}.mat-expansion-panel-header-description{flex-grow:2}.mat-expansion-indicator::after{border-style:solid;border-width:0 2px 2px 0;content:'';display:inline-block;padding:3px;transform:rotate(45deg);vertical-align:middle}\"],\n template: \"\",\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n animations: [\n matExpansionAnimations.indicatorRotate,\n matExpansionAnimations.expansionHeaderHeight\n ],\n host: {\n 'class': 'mat-expansion-panel-header',\n 'role': 'button',\n '[attr.id]': 'panel._headerId',\n '[attr.tabindex]': 'disabled ? -1 : 0',\n '[attr.aria-controls]': '_getPanelId()',\n '[attr.aria-expanded]': '_isExpanded()',\n '[attr.aria-disabled]': 'panel.disabled',\n '[class.mat-expanded]': '_isExpanded()',\n '[class.mat-expansion-toggle-indicator-after]': \"_getTogglePosition() === 'after'\",\n '[class.mat-expansion-toggle-indicator-before]': \"_getTogglePosition() === 'before'\",\n '(click)': '_toggle()',\n '(keydown)': '_keydown($event)',\n '[@.disabled]': '_animationsDisabled',\n '(@expansionHeight.start)': '_animationStarted()',\n '[@expansionHeight]': \"{\\n value: _getExpandedState(),\\n params: {\\n collapsedHeight: collapsedHeight,\\n expandedHeight: expandedHeight\\n }\\n }\",\n },\n },] },\n ];\n /** @nocollapse */\n MatExpansionPanelHeader.ctorParameters = function () { return [\n { type: MatExpansionPanel, decorators: [{ type: Host }] },\n { type: ElementRef },\n { type: FocusMonitor },\n { type: ChangeDetectorRef },\n { type: undefined, decorators: [{ type: Inject, args: [MAT_EXPANSION_PANEL_DEFAULT_OPTIONS,] }, { type: Optional }] }\n ]; };\n MatExpansionPanelHeader.propDecorators = {\n expandedHeight: [{ type: Input }],\n collapsedHeight: [{ type: Input }]\n };\n return MatExpansionPanelHeader;\n}());\n/**\n * ``\n *\n * This directive is to be used inside of the MatExpansionPanelHeader component.\n */\nvar MatExpansionPanelDescription = /** @class */ (function () {\n function MatExpansionPanelDescription() {\n }\n MatExpansionPanelDescription.decorators = [\n { type: Directive, args: [{\n selector: 'mat-panel-description',\n host: {\n class: 'mat-expansion-panel-header-description'\n }\n },] },\n ];\n return MatExpansionPanelDescription;\n}());\n/**\n * ``\n *\n * This directive is to be used inside of the MatExpansionPanelHeader component.\n */\nvar MatExpansionPanelTitle = /** @class */ (function () {\n function MatExpansionPanelTitle() {\n }\n MatExpansionPanelTitle.decorators = [\n { type: Directive, args: [{\n selector: 'mat-panel-title',\n host: {\n class: 'mat-expansion-panel-header-title'\n }\n },] },\n ];\n return MatExpansionPanelTitle;\n}());\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n/**\n * Directive for a Material Design Accordion.\n */\nvar MatAccordion = /** @class */ (function (_super) {\n __extends(MatAccordion, _super);\n function MatAccordion() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this._hideToggle = false;\n /**\n * Display mode used for all expansion panels in the accordion. Currently two display\n * modes exist:\n * default - a gutter-like spacing is placed around any expanded panel, placing the expanded\n * panel at a different elevation from the rest of the accordion.\n * flat - no spacing is placed around expanded panels, showing all panels at the same\n * elevation.\n */\n _this.displayMode = 'default';\n /**\n * The position of the expansion indicator.\n */\n _this.togglePosition = 'after';\n return _this;\n }\n Object.defineProperty(MatAccordion.prototype, \"hideToggle\", {\n /** Whether the expansion indicator should be hidden. */\n get: /**\n * Whether the expansion indicator should be hidden.\n * @return {?}\n */\n function () { return this._hideToggle; },\n set: /**\n * @param {?} show\n * @return {?}\n */\n function (show) { this._hideToggle = coerceBooleanProperty(show); },\n enumerable: true,\n configurable: true\n });\n /**\n * @return {?}\n */\n MatAccordion.prototype.ngAfterContentInit = /**\n * @return {?}\n */\n function () {\n this._keyManager = new FocusKeyManager(this._headers).withWrap();\n };\n /** Handles keyboard events coming in from the panel headers. */\n /**\n * Handles keyboard events coming in from the panel headers.\n * @param {?} event\n * @return {?}\n */\n MatAccordion.prototype._handleHeaderKeydown = /**\n * Handles keyboard events coming in from the panel headers.\n * @param {?} event\n * @return {?}\n */\n function (event) {\n var keyCode = event.keyCode;\n /** @type {?} */\n var manager = this._keyManager;\n if (keyCode === HOME) {\n if (!hasModifierKey(event)) {\n manager.setFirstItemActive();\n event.preventDefault();\n }\n }\n else if (keyCode === END) {\n if (!hasModifierKey(event)) {\n manager.setLastItemActive();\n event.preventDefault();\n }\n }\n else {\n this._keyManager.onKeydown(event);\n }\n };\n /**\n * @param {?} header\n * @return {?}\n */\n MatAccordion.prototype._handleHeaderFocus = /**\n * @param {?} header\n * @return {?}\n */\n function (header) {\n this._keyManager.updateActiveItem(header);\n };\n MatAccordion.decorators = [\n { type: Directive, args: [{\n selector: 'mat-accordion',\n exportAs: 'matAccordion',\n inputs: ['multi'],\n providers: [{\n provide: MAT_ACCORDION,\n useExisting: MatAccordion\n }],\n host: {\n class: 'mat-accordion'\n }\n },] },\n ];\n MatAccordion.propDecorators = {\n _headers: [{ type: ContentChildren, args: [MatExpansionPanelHeader, { descendants: true },] }],\n hideToggle: [{ type: Input }],\n displayMode: [{ type: Input }],\n togglePosition: [{ type: Input }]\n };\n return MatAccordion;\n}(CdkAccordion));\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\nvar MatExpansionModule = /** @class */ (function () {\n function MatExpansionModule() {\n }\n MatExpansionModule.decorators = [\n { type: NgModule, args: [{\n imports: [CommonModule, CdkAccordionModule, PortalModule],\n exports: [\n MatAccordion,\n MatExpansionPanel,\n MatExpansionPanelActionRow,\n MatExpansionPanelHeader,\n MatExpansionPanelTitle,\n MatExpansionPanelDescription,\n MatExpansionPanelContent,\n ],\n declarations: [\n MatAccordion,\n MatExpansionPanel,\n MatExpansionPanelActionRow,\n MatExpansionPanelHeader,\n MatExpansionPanelTitle,\n MatExpansionPanelDescription,\n MatExpansionPanelContent,\n ],\n },] },\n ];\n return MatExpansionModule;\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 { MatExpansionModule, MatAccordion, MAT_ACCORDION, MAT_EXPANSION_PANEL_DEFAULT_OPTIONS, MatExpansionPanel, MatExpansionPanelActionRow, MatExpansionPanelHeader, MatExpansionPanelDescription, MatExpansionPanelTitle, MatExpansionPanelContent, EXPANSION_PANEL_ANIMATION_TIMING, matExpansionAnimations };\n//# sourceMappingURL=expansion.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 { InjectionToken, Component, ViewEncapsulation, ElementRef, Input, Optional, ContentChildren, Directive, ChangeDetectionStrategy, Inject, NgModule } from '@angular/core';\nimport { MatLine, setLines, MatLineModule, MatCommonModule } from '@angular/material/core';\nimport { coerceNumberProperty } from '@angular/cdk/coercion';\nimport { __extends } from 'tslib';\nimport { Directionality } from '@angular/cdk/bidi';\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n/**\n * Injection token used to provide a grid list to a tile and to avoid circular imports.\n * \\@docs-private\n * @type {?}\n */\nvar MAT_GRID_LIST = new InjectionToken('MAT_GRID_LIST');\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\nvar MatGridTile = /** @class */ (function () {\n function MatGridTile(_element, _gridList) {\n this._element = _element;\n this._gridList = _gridList;\n this._rowspan = 1;\n this._colspan = 1;\n }\n Object.defineProperty(MatGridTile.prototype, \"rowspan\", {\n /** Amount of rows that the grid tile takes up. */\n get: /**\n * Amount of rows that the grid tile takes up.\n * @return {?}\n */\n function () { return this._rowspan; },\n set: /**\n * @param {?} value\n * @return {?}\n */\n function (value) { this._rowspan = Math.round(coerceNumberProperty(value)); },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(MatGridTile.prototype, \"colspan\", {\n /** Amount of columns that the grid tile takes up. */\n get: /**\n * Amount of columns that the grid tile takes up.\n * @return {?}\n */\n function () { return this._colspan; },\n set: /**\n * @param {?} value\n * @return {?}\n */\n function (value) { this._colspan = Math.round(coerceNumberProperty(value)); },\n enumerable: true,\n configurable: true\n });\n /**\n * Sets the style of the grid-tile element. Needs to be set manually to avoid\n * \"Changed after checked\" errors that would occur with HostBinding.\n */\n /**\n * Sets the style of the grid-tile element. Needs to be set manually to avoid\n * \"Changed after checked\" errors that would occur with HostBinding.\n * @param {?} property\n * @param {?} value\n * @return {?}\n */\n MatGridTile.prototype._setStyle = /**\n * Sets the style of the grid-tile element. Needs to be set manually to avoid\n * \"Changed after checked\" errors that would occur with HostBinding.\n * @param {?} property\n * @param {?} value\n * @return {?}\n */\n function (property, value) {\n ((/** @type {?} */ (this._element.nativeElement.style)))[property] = value;\n };\n MatGridTile.decorators = [\n { type: Component, args: [{selector: 'mat-grid-tile',\n exportAs: 'matGridTile',\n host: {\n 'class': 'mat-grid-tile',\n },\n template: \"
\",\n styles: [\".mat-grid-list{display:block;position:relative}.mat-grid-tile{display:block;position:absolute;overflow:hidden}.mat-grid-tile .mat-figure{top:0;left:0;right:0;bottom:0;position:absolute;display:flex;align-items:center;justify-content:center;height:100%;padding:0;margin:0}.mat-grid-tile .mat-grid-tile-footer,.mat-grid-tile .mat-grid-tile-header{display:flex;align-items:center;height:48px;color:#fff;background:rgba(0,0,0,.38);overflow:hidden;padding:0 16px;position:absolute;left:0;right:0}.mat-grid-tile .mat-grid-tile-footer>*,.mat-grid-tile .mat-grid-tile-header>*{margin:0;padding:0;font-weight:400;font-size:inherit}.mat-grid-tile .mat-grid-tile-footer.mat-2-line,.mat-grid-tile .mat-grid-tile-header.mat-2-line{height:68px}.mat-grid-tile .mat-grid-list-text{display:flex;flex-direction:column;width:100%;box-sizing:border-box;overflow:hidden}.mat-grid-tile .mat-grid-list-text>*{margin:0;padding:0;font-weight:400;font-size:inherit}.mat-grid-tile .mat-grid-list-text:empty{display:none}.mat-grid-tile .mat-grid-tile-header{top:0}.mat-grid-tile .mat-grid-tile-footer{bottom:0}.mat-grid-tile .mat-grid-avatar{padding-right:16px}[dir=rtl] .mat-grid-tile .mat-grid-avatar{padding-right:0;padding-left:16px}.mat-grid-tile .mat-grid-avatar:empty{display:none}\"],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n },] },\n ];\n /** @nocollapse */\n MatGridTile.ctorParameters = function () { return [\n { type: ElementRef },\n { type: undefined, decorators: [{ type: Optional }, { type: Inject, args: [MAT_GRID_LIST,] }] }\n ]; };\n MatGridTile.propDecorators = {\n rowspan: [{ type: Input }],\n colspan: [{ type: Input }]\n };\n return MatGridTile;\n}());\nvar MatGridTileText = /** @class */ (function () {\n function MatGridTileText(_element) {\n this._element = _element;\n }\n /**\n * @return {?}\n */\n MatGridTileText.prototype.ngAfterContentInit = /**\n * @return {?}\n */\n function () {\n setLines(this._lines, this._element);\n };\n MatGridTileText.decorators = [\n { type: Component, args: [{selector: 'mat-grid-tile-header, mat-grid-tile-footer',\n template: \"
\",\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n },] },\n ];\n /** @nocollapse */\n MatGridTileText.ctorParameters = function () { return [\n { type: ElementRef }\n ]; };\n MatGridTileText.propDecorators = {\n _lines: [{ type: ContentChildren, args: [MatLine,] }]\n };\n return MatGridTileText;\n}());\n/**\n * Directive whose purpose is to add the mat- CSS styling to this selector.\n * \\@docs-private\n */\nvar MatGridAvatarCssMatStyler = /** @class */ (function () {\n function MatGridAvatarCssMatStyler() {\n }\n MatGridAvatarCssMatStyler.decorators = [\n { type: Directive, args: [{\n selector: '[mat-grid-avatar], [matGridAvatar]',\n host: { 'class': 'mat-grid-avatar' }\n },] },\n ];\n return MatGridAvatarCssMatStyler;\n}());\n/**\n * Directive whose purpose is to add the mat- CSS styling to this selector.\n * \\@docs-private\n */\nvar MatGridTileHeaderCssMatStyler = /** @class */ (function () {\n function MatGridTileHeaderCssMatStyler() {\n }\n MatGridTileHeaderCssMatStyler.decorators = [\n { type: Directive, args: [{\n selector: 'mat-grid-tile-header',\n host: { 'class': 'mat-grid-tile-header' }\n },] },\n ];\n return MatGridTileHeaderCssMatStyler;\n}());\n/**\n * Directive whose purpose is to add the mat- CSS styling to this selector.\n * \\@docs-private\n */\nvar MatGridTileFooterCssMatStyler = /** @class */ (function () {\n function MatGridTileFooterCssMatStyler() {\n }\n MatGridTileFooterCssMatStyler.decorators = [\n { type: Directive, args: [{\n selector: 'mat-grid-tile-footer',\n host: { 'class': 'mat-grid-tile-footer' }\n },] },\n ];\n return MatGridTileFooterCssMatStyler;\n}());\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n\n/**\n * Class for determining, from a list of tiles, the (row, col) position of each of those tiles\n * in the grid. This is necessary (rather than just rendering the tiles in normal document flow)\n * because the tiles can have a rowspan.\n *\n * The positioning algorithm greedily places each tile as soon as it encounters a gap in the grid\n * large enough to accommodate it so that the tiles still render in the same order in which they\n * are given.\n *\n * The basis of the algorithm is the use of an array to track the already placed tiles. Each\n * element of the array corresponds to a column, and the value indicates how many cells in that\n * column are already occupied; zero indicates an empty cell. Moving \"down\" to the next row\n * decrements each value in the tracking array (indicating that the column is one cell closer to\n * being free).\n *\n * \\@docs-private\n */\nvar /**\n * Class for determining, from a list of tiles, the (row, col) position of each of those tiles\n * in the grid. This is necessary (rather than just rendering the tiles in normal document flow)\n * because the tiles can have a rowspan.\n *\n * The positioning algorithm greedily places each tile as soon as it encounters a gap in the grid\n * large enough to accommodate it so that the tiles still render in the same order in which they\n * are given.\n *\n * The basis of the algorithm is the use of an array to track the already placed tiles. Each\n * element of the array corresponds to a column, and the value indicates how many cells in that\n * column are already occupied; zero indicates an empty cell. Moving \"down\" to the next row\n * decrements each value in the tracking array (indicating that the column is one cell closer to\n * being free).\n *\n * \\@docs-private\n */\nTileCoordinator = /** @class */ (function () {\n function TileCoordinator() {\n /**\n * Index at which the search for the next gap will start.\n */\n this.columnIndex = 0;\n /**\n * The current row index.\n */\n this.rowIndex = 0;\n }\n Object.defineProperty(TileCoordinator.prototype, \"rowCount\", {\n /** Gets the total number of rows occupied by tiles */\n get: /**\n * Gets the total number of rows occupied by tiles\n * @return {?}\n */\n function () { return this.rowIndex + 1; },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(TileCoordinator.prototype, \"rowspan\", {\n /**\n * Gets the total span of rows occupied by tiles.\n * Ex: A list with 1 row that contains a tile with rowspan 2 will have a total rowspan of 2.\n */\n get: /**\n * Gets the total span of rows occupied by tiles.\n * Ex: A list with 1 row that contains a tile with rowspan 2 will have a total rowspan of 2.\n * @return {?}\n */\n function () {\n /** @type {?} */\n var lastRowMax = Math.max.apply(Math, this.tracker);\n // if any of the tiles has a rowspan that pushes it beyond the total row count,\n // add the difference to the rowcount\n return lastRowMax > 1 ? this.rowCount + lastRowMax - 1 : this.rowCount;\n },\n enumerable: true,\n configurable: true\n });\n /**\n * Updates the tile positions.\n * @param numColumns Amount of columns in the grid.\n */\n /**\n * Updates the tile positions.\n * @param {?} numColumns Amount of columns in the grid.\n * @param {?} tiles\n * @return {?}\n */\n TileCoordinator.prototype.update = /**\n * Updates the tile positions.\n * @param {?} numColumns Amount of columns in the grid.\n * @param {?} tiles\n * @return {?}\n */\n function (numColumns, tiles) {\n var _this = this;\n this.columnIndex = 0;\n this.rowIndex = 0;\n this.tracker = new Array(numColumns);\n this.tracker.fill(0, 0, this.tracker.length);\n this.positions = tiles.map((/**\n * @param {?} tile\n * @return {?}\n */\n function (tile) { return _this._trackTile(tile); }));\n };\n /** Calculates the row and col position of a tile. */\n /**\n * Calculates the row and col position of a tile.\n * @private\n * @param {?} tile\n * @return {?}\n */\n TileCoordinator.prototype._trackTile = /**\n * Calculates the row and col position of a tile.\n * @private\n * @param {?} tile\n * @return {?}\n */\n function (tile) {\n // Find a gap large enough for this tile.\n /** @type {?} */\n var gapStartIndex = this._findMatchingGap(tile.colspan);\n // Place tile in the resulting gap.\n this._markTilePosition(gapStartIndex, tile);\n // The next time we look for a gap, the search will start at columnIndex, which should be\n // immediately after the tile that has just been placed.\n this.columnIndex = gapStartIndex + tile.colspan;\n return new TilePosition(this.rowIndex, gapStartIndex);\n };\n /** Finds the next available space large enough to fit the tile. */\n /**\n * Finds the next available space large enough to fit the tile.\n * @private\n * @param {?} tileCols\n * @return {?}\n */\n TileCoordinator.prototype._findMatchingGap = /**\n * Finds the next available space large enough to fit the tile.\n * @private\n * @param {?} tileCols\n * @return {?}\n */\n function (tileCols) {\n if (tileCols > this.tracker.length) {\n throw Error(\"mat-grid-list: tile with colspan \" + tileCols + \" is wider than \" +\n (\"grid with cols=\\\"\" + this.tracker.length + \"\\\".\"));\n }\n // Start index is inclusive, end index is exclusive.\n /** @type {?} */\n var gapStartIndex = -1;\n /** @type {?} */\n var gapEndIndex = -1;\n // Look for a gap large enough to fit the given tile. Empty spaces are marked with a zero.\n do {\n // If we've reached the end of the row, go to the next row.\n if (this.columnIndex + tileCols > this.tracker.length) {\n this._nextRow();\n gapStartIndex = this.tracker.indexOf(0, this.columnIndex);\n gapEndIndex = this._findGapEndIndex(gapStartIndex);\n continue;\n }\n gapStartIndex = this.tracker.indexOf(0, this.columnIndex);\n // If there are no more empty spaces in this row at all, move on to the next row.\n if (gapStartIndex == -1) {\n this._nextRow();\n gapStartIndex = this.tracker.indexOf(0, this.columnIndex);\n gapEndIndex = this._findGapEndIndex(gapStartIndex);\n continue;\n }\n gapEndIndex = this._findGapEndIndex(gapStartIndex);\n // If a gap large enough isn't found, we want to start looking immediately after the current\n // gap on the next iteration.\n this.columnIndex = gapStartIndex + 1;\n // Continue iterating until we find a gap wide enough for this tile. Since gapEndIndex is\n // exclusive, gapEndIndex is 0 means we didn't find a gap and should continue.\n } while ((gapEndIndex - gapStartIndex < tileCols) || (gapEndIndex == 0));\n // If we still didn't manage to find a gap, ensure that the index is\n // at least zero so the tile doesn't get pulled out of the grid.\n return Math.max(gapStartIndex, 0);\n };\n /** Move \"down\" to the next row. */\n /**\n * Move \"down\" to the next row.\n * @private\n * @return {?}\n */\n TileCoordinator.prototype._nextRow = /**\n * Move \"down\" to the next row.\n * @private\n * @return {?}\n */\n function () {\n this.columnIndex = 0;\n this.rowIndex++;\n // Decrement all spaces by one to reflect moving down one row.\n for (var i = 0; i < this.tracker.length; i++) {\n this.tracker[i] = Math.max(0, this.tracker[i] - 1);\n }\n };\n /**\n * Finds the end index (exclusive) of a gap given the index from which to start looking.\n * The gap ends when a non-zero value is found.\n */\n /**\n * Finds the end index (exclusive) of a gap given the index from which to start looking.\n * The gap ends when a non-zero value is found.\n * @private\n * @param {?} gapStartIndex\n * @return {?}\n */\n TileCoordinator.prototype._findGapEndIndex = /**\n * Finds the end index (exclusive) of a gap given the index from which to start looking.\n * The gap ends when a non-zero value is found.\n * @private\n * @param {?} gapStartIndex\n * @return {?}\n */\n function (gapStartIndex) {\n for (var i = gapStartIndex + 1; i < this.tracker.length; i++) {\n if (this.tracker[i] != 0) {\n return i;\n }\n }\n // The gap ends with the end of the row.\n return this.tracker.length;\n };\n /** Update the tile tracker to account for the given tile in the given space. */\n /**\n * Update the tile tracker to account for the given tile in the given space.\n * @private\n * @param {?} start\n * @param {?} tile\n * @return {?}\n */\n TileCoordinator.prototype._markTilePosition = /**\n * Update the tile tracker to account for the given tile in the given space.\n * @private\n * @param {?} start\n * @param {?} tile\n * @return {?}\n */\n function (start, tile) {\n for (var i = 0; i < tile.colspan; i++) {\n this.tracker[start + i] = tile.rowspan;\n }\n };\n return TileCoordinator;\n}());\n/**\n * Simple data structure for tile position (row, col).\n * \\@docs-private\n */\nvar /**\n * Simple data structure for tile position (row, col).\n * \\@docs-private\n */\nTilePosition = /** @class */ (function () {\n function TilePosition(row, col) {\n this.row = row;\n this.col = col;\n }\n return TilePosition;\n}());\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n\n/**\n * RegExp that can be used to check whether a value will\n * be allowed inside a CSS `calc()` expression.\n * @type {?}\n */\nvar cssCalcAllowedValue = /^-?\\d+((\\.\\d+)?[A-Za-z%$]?)+$/;\n/**\n * Sets the style properties for an individual tile, given the position calculated by the\n * Tile Coordinator.\n * \\@docs-private\n * @abstract\n */\nvar /**\n * Sets the style properties for an individual tile, given the position calculated by the\n * Tile Coordinator.\n * \\@docs-private\n * @abstract\n */\nTileStyler = /** @class */ (function () {\n function TileStyler() {\n this._rows = 0;\n this._rowspan = 0;\n }\n /**\n * Adds grid-list layout info once it is available. Cannot be processed in the constructor\n * because these properties haven't been calculated by that point.\n *\n * @param gutterSize Size of the grid's gutter.\n * @param tracker Instance of the TileCoordinator.\n * @param cols Amount of columns in the grid.\n * @param direction Layout direction of the grid.\n */\n /**\n * Adds grid-list layout info once it is available. Cannot be processed in the constructor\n * because these properties haven't been calculated by that point.\n *\n * @param {?} gutterSize Size of the grid's gutter.\n * @param {?} tracker Instance of the TileCoordinator.\n * @param {?} cols Amount of columns in the grid.\n * @param {?} direction Layout direction of the grid.\n * @return {?}\n */\n TileStyler.prototype.init = /**\n * Adds grid-list layout info once it is available. Cannot be processed in the constructor\n * because these properties haven't been calculated by that point.\n *\n * @param {?} gutterSize Size of the grid's gutter.\n * @param {?} tracker Instance of the TileCoordinator.\n * @param {?} cols Amount of columns in the grid.\n * @param {?} direction Layout direction of the grid.\n * @return {?}\n */\n function (gutterSize, tracker, cols, direction) {\n this._gutterSize = normalizeUnits(gutterSize);\n this._rows = tracker.rowCount;\n this._rowspan = tracker.rowspan;\n this._cols = cols;\n this._direction = direction;\n };\n /**\n * Computes the amount of space a single 1x1 tile would take up (width or height).\n * Used as a basis for other calculations.\n * @param sizePercent Percent of the total grid-list space that one 1x1 tile would take up.\n * @param gutterFraction Fraction of the gutter size taken up by one 1x1 tile.\n * @return The size of a 1x1 tile as an expression that can be evaluated via CSS calc().\n */\n /**\n * Computes the amount of space a single 1x1 tile would take up (width or height).\n * Used as a basis for other calculations.\n * @param {?} sizePercent Percent of the total grid-list space that one 1x1 tile would take up.\n * @param {?} gutterFraction Fraction of the gutter size taken up by one 1x1 tile.\n * @return {?} The size of a 1x1 tile as an expression that can be evaluated via CSS calc().\n */\n TileStyler.prototype.getBaseTileSize = /**\n * Computes the amount of space a single 1x1 tile would take up (width or height).\n * Used as a basis for other calculations.\n * @param {?} sizePercent Percent of the total grid-list space that one 1x1 tile would take up.\n * @param {?} gutterFraction Fraction of the gutter size taken up by one 1x1 tile.\n * @return {?} The size of a 1x1 tile as an expression that can be evaluated via CSS calc().\n */\n function (sizePercent, gutterFraction) {\n // Take the base size percent (as would be if evenly dividing the size between cells),\n // and then subtracting the size of one gutter. However, since there are no gutters on the\n // edges, each tile only uses a fraction (gutterShare = numGutters / numCells) of the gutter\n // size. (Imagine having one gutter per tile, and then breaking up the extra gutter on the\n // edge evenly among the cells).\n return \"(\" + sizePercent + \"% - (\" + this._gutterSize + \" * \" + gutterFraction + \"))\";\n };\n /**\n * Gets The horizontal or vertical position of a tile, e.g., the 'top' or 'left' property value.\n * @param offset Number of tiles that have already been rendered in the row/column.\n * @param baseSize Base size of a 1x1 tile (as computed in getBaseTileSize).\n * @return Position of the tile as a CSS calc() expression.\n */\n /**\n * Gets The horizontal or vertical position of a tile, e.g., the 'top' or 'left' property value.\n * @param {?} baseSize Base size of a 1x1 tile (as computed in getBaseTileSize).\n * @param {?} offset Number of tiles that have already been rendered in the row/column.\n * @return {?} Position of the tile as a CSS calc() expression.\n */\n TileStyler.prototype.getTilePosition = /**\n * Gets The horizontal or vertical position of a tile, e.g., the 'top' or 'left' property value.\n * @param {?} baseSize Base size of a 1x1 tile (as computed in getBaseTileSize).\n * @param {?} offset Number of tiles that have already been rendered in the row/column.\n * @return {?} Position of the tile as a CSS calc() expression.\n */\n function (baseSize, offset) {\n // The position comes the size of a 1x1 tile plus gutter for each previous tile in the\n // row/column (offset).\n return offset === 0 ? '0' : calc(\"(\" + baseSize + \" + \" + this._gutterSize + \") * \" + offset);\n };\n /**\n * Gets the actual size of a tile, e.g., width or height, taking rowspan or colspan into account.\n * @param baseSize Base size of a 1x1 tile (as computed in getBaseTileSize).\n * @param span The tile's rowspan or colspan.\n * @return Size of the tile as a CSS calc() expression.\n */\n /**\n * Gets the actual size of a tile, e.g., width or height, taking rowspan or colspan into account.\n * @param {?} baseSize Base size of a 1x1 tile (as computed in getBaseTileSize).\n * @param {?} span The tile's rowspan or colspan.\n * @return {?} Size of the tile as a CSS calc() expression.\n */\n TileStyler.prototype.getTileSize = /**\n * Gets the actual size of a tile, e.g., width or height, taking rowspan or colspan into account.\n * @param {?} baseSize Base size of a 1x1 tile (as computed in getBaseTileSize).\n * @param {?} span The tile's rowspan or colspan.\n * @return {?} Size of the tile as a CSS calc() expression.\n */\n function (baseSize, span) {\n return \"(\" + baseSize + \" * \" + span + \") + (\" + (span - 1) + \" * \" + this._gutterSize + \")\";\n };\n /**\n * Sets the style properties to be applied to a tile for the given row and column index.\n * @param tile Tile to which to apply the styling.\n * @param rowIndex Index of the tile's row.\n * @param colIndex Index of the tile's column.\n */\n /**\n * Sets the style properties to be applied to a tile for the given row and column index.\n * @param {?} tile Tile to which to apply the styling.\n * @param {?} rowIndex Index of the tile's row.\n * @param {?} colIndex Index of the tile's column.\n * @return {?}\n */\n TileStyler.prototype.setStyle = /**\n * Sets the style properties to be applied to a tile for the given row and column index.\n * @param {?} tile Tile to which to apply the styling.\n * @param {?} rowIndex Index of the tile's row.\n * @param {?} colIndex Index of the tile's column.\n * @return {?}\n */\n function (tile, rowIndex, colIndex) {\n // Percent of the available horizontal space that one column takes up.\n /** @type {?} */\n var percentWidthPerTile = 100 / this._cols;\n // Fraction of the vertical gutter size that each column takes up.\n // For example, if there are 5 columns, each column uses 4/5 = 0.8 times the gutter width.\n /** @type {?} */\n var gutterWidthFractionPerTile = (this._cols - 1) / this._cols;\n this.setColStyles(tile, colIndex, percentWidthPerTile, gutterWidthFractionPerTile);\n this.setRowStyles(tile, rowIndex, percentWidthPerTile, gutterWidthFractionPerTile);\n };\n /** Sets the horizontal placement of the tile in the list. */\n /**\n * Sets the horizontal placement of the tile in the list.\n * @param {?} tile\n * @param {?} colIndex\n * @param {?} percentWidth\n * @param {?} gutterWidth\n * @return {?}\n */\n TileStyler.prototype.setColStyles = /**\n * Sets the horizontal placement of the tile in the list.\n * @param {?} tile\n * @param {?} colIndex\n * @param {?} percentWidth\n * @param {?} gutterWidth\n * @return {?}\n */\n function (tile, colIndex, percentWidth, gutterWidth) {\n // Base horizontal size of a column.\n /** @type {?} */\n var baseTileWidth = this.getBaseTileSize(percentWidth, gutterWidth);\n // The width and horizontal position of each tile is always calculated the same way, but the\n // height and vertical position depends on the rowMode.\n /** @type {?} */\n var side = this._direction === 'rtl' ? 'right' : 'left';\n tile._setStyle(side, this.getTilePosition(baseTileWidth, colIndex));\n tile._setStyle('width', calc(this.getTileSize(baseTileWidth, tile.colspan)));\n };\n /**\n * Calculates the total size taken up by gutters across one axis of a list.\n */\n /**\n * Calculates the total size taken up by gutters across one axis of a list.\n * @return {?}\n */\n TileStyler.prototype.getGutterSpan = /**\n * Calculates the total size taken up by gutters across one axis of a list.\n * @return {?}\n */\n function () {\n return this._gutterSize + \" * (\" + this._rowspan + \" - 1)\";\n };\n /**\n * Calculates the total size taken up by tiles across one axis of a list.\n * @param tileHeight Height of the tile.\n */\n /**\n * Calculates the total size taken up by tiles across one axis of a list.\n * @param {?} tileHeight Height of the tile.\n * @return {?}\n */\n TileStyler.prototype.getTileSpan = /**\n * Calculates the total size taken up by tiles across one axis of a list.\n * @param {?} tileHeight Height of the tile.\n * @return {?}\n */\n function (tileHeight) {\n return this._rowspan + \" * \" + this.getTileSize(tileHeight, 1);\n };\n /**\n * Calculates the computed height and returns the correct style property to set.\n * This method can be implemented by each type of TileStyler.\n * @docs-private\n */\n /**\n * Calculates the computed height and returns the correct style property to set.\n * This method can be implemented by each type of TileStyler.\n * \\@docs-private\n * @return {?}\n */\n TileStyler.prototype.getComputedHeight = /**\n * Calculates the computed height and returns the correct style property to set.\n * This method can be implemented by each type of TileStyler.\n * \\@docs-private\n * @return {?}\n */\n function () { return null; };\n return TileStyler;\n}());\n/**\n * This type of styler is instantiated when the user passes in a fixed row height.\n * Example ``\n * \\@docs-private\n */\nvar /**\n * This type of styler is instantiated when the user passes in a fixed row height.\n * Example ``\n * \\@docs-private\n */\nFixedTileStyler = /** @class */ (function (_super) {\n __extends(FixedTileStyler, _super);\n function FixedTileStyler(fixedRowHeight) {\n var _this = _super.call(this) || this;\n _this.fixedRowHeight = fixedRowHeight;\n return _this;\n }\n /**\n * @param {?} gutterSize\n * @param {?} tracker\n * @param {?} cols\n * @param {?} direction\n * @return {?}\n */\n FixedTileStyler.prototype.init = /**\n * @param {?} gutterSize\n * @param {?} tracker\n * @param {?} cols\n * @param {?} direction\n * @return {?}\n */\n function (gutterSize, tracker, cols, direction) {\n _super.prototype.init.call(this, gutterSize, tracker, cols, direction);\n this.fixedRowHeight = normalizeUnits(this.fixedRowHeight);\n if (!cssCalcAllowedValue.test(this.fixedRowHeight)) {\n throw Error(\"Invalid value \\\"\" + this.fixedRowHeight + \"\\\" set as rowHeight.\");\n }\n };\n /**\n * @param {?} tile\n * @param {?} rowIndex\n * @return {?}\n */\n FixedTileStyler.prototype.setRowStyles = /**\n * @param {?} tile\n * @param {?} rowIndex\n * @return {?}\n */\n function (tile, rowIndex) {\n tile._setStyle('top', this.getTilePosition(this.fixedRowHeight, rowIndex));\n tile._setStyle('height', calc(this.getTileSize(this.fixedRowHeight, tile.rowspan)));\n };\n /**\n * @return {?}\n */\n FixedTileStyler.prototype.getComputedHeight = /**\n * @return {?}\n */\n function () {\n return [\n 'height', calc(this.getTileSpan(this.fixedRowHeight) + \" + \" + this.getGutterSpan())\n ];\n };\n /**\n * @param {?} list\n * @return {?}\n */\n FixedTileStyler.prototype.reset = /**\n * @param {?} list\n * @return {?}\n */\n function (list) {\n list._setListStyle(['height', null]);\n if (list._tiles) {\n list._tiles.forEach((/**\n * @param {?} tile\n * @return {?}\n */\n function (tile) {\n tile._setStyle('top', null);\n tile._setStyle('height', null);\n }));\n }\n };\n return FixedTileStyler;\n}(TileStyler));\n/**\n * This type of styler is instantiated when the user passes in a width:height ratio\n * for the row height. Example ``\n * \\@docs-private\n */\nvar /**\n * This type of styler is instantiated when the user passes in a width:height ratio\n * for the row height. Example ``\n * \\@docs-private\n */\nRatioTileStyler = /** @class */ (function (_super) {\n __extends(RatioTileStyler, _super);\n function RatioTileStyler(value) {\n var _this = _super.call(this) || this;\n _this._parseRatio(value);\n return _this;\n }\n /**\n * @param {?} tile\n * @param {?} rowIndex\n * @param {?} percentWidth\n * @param {?} gutterWidth\n * @return {?}\n */\n RatioTileStyler.prototype.setRowStyles = /**\n * @param {?} tile\n * @param {?} rowIndex\n * @param {?} percentWidth\n * @param {?} gutterWidth\n * @return {?}\n */\n function (tile, rowIndex, percentWidth, gutterWidth) {\n /** @type {?} */\n var percentHeightPerTile = percentWidth / this.rowHeightRatio;\n this.baseTileHeight = this.getBaseTileSize(percentHeightPerTile, gutterWidth);\n // Use padding-top and margin-top to maintain the given aspect ratio, as\n // a percentage-based value for these properties is applied versus the *width* of the\n // containing block. See http://www.w3.org/TR/CSS2/box.html#margin-properties\n tile._setStyle('marginTop', this.getTilePosition(this.baseTileHeight, rowIndex));\n tile._setStyle('paddingTop', calc(this.getTileSize(this.baseTileHeight, tile.rowspan)));\n };\n /**\n * @return {?}\n */\n RatioTileStyler.prototype.getComputedHeight = /**\n * @return {?}\n */\n function () {\n return [\n 'paddingBottom', calc(this.getTileSpan(this.baseTileHeight) + \" + \" + this.getGutterSpan())\n ];\n };\n /**\n * @param {?} list\n * @return {?}\n */\n RatioTileStyler.prototype.reset = /**\n * @param {?} list\n * @return {?}\n */\n function (list) {\n list._setListStyle(['paddingBottom', null]);\n list._tiles.forEach((/**\n * @param {?} tile\n * @return {?}\n */\n function (tile) {\n tile._setStyle('marginTop', null);\n tile._setStyle('paddingTop', null);\n }));\n };\n /**\n * @private\n * @param {?} value\n * @return {?}\n */\n RatioTileStyler.prototype._parseRatio = /**\n * @private\n * @param {?} value\n * @return {?}\n */\n function (value) {\n /** @type {?} */\n var ratioParts = value.split(':');\n if (ratioParts.length !== 2) {\n throw Error(\"mat-grid-list: invalid ratio given for row-height: \\\"\" + value + \"\\\"\");\n }\n this.rowHeightRatio = parseFloat(ratioParts[0]) / parseFloat(ratioParts[1]);\n };\n return RatioTileStyler;\n}(TileStyler));\n/**\n * This type of styler is instantiated when the user selects a \"fit\" row height mode.\n * In other words, the row height will reflect the total height of the container divided\n * by the number of rows. Example ``\n *\n * \\@docs-private\n */\nvar /**\n * This type of styler is instantiated when the user selects a \"fit\" row height mode.\n * In other words, the row height will reflect the total height of the container divided\n * by the number of rows. Example ``\n *\n * \\@docs-private\n */\nFitTileStyler = /** @class */ (function (_super) {\n __extends(FitTileStyler, _super);\n function FitTileStyler() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n /**\n * @param {?} tile\n * @param {?} rowIndex\n * @return {?}\n */\n FitTileStyler.prototype.setRowStyles = /**\n * @param {?} tile\n * @param {?} rowIndex\n * @return {?}\n */\n function (tile, rowIndex) {\n // Percent of the available vertical space that one row takes up.\n /** @type {?} */\n var percentHeightPerTile = 100 / this._rowspan;\n // Fraction of the horizontal gutter size that each column takes up.\n /** @type {?} */\n var gutterHeightPerTile = (this._rows - 1) / this._rows;\n // Base vertical size of a column.\n /** @type {?} */\n var baseTileHeight = this.getBaseTileSize(percentHeightPerTile, gutterHeightPerTile);\n tile._setStyle('top', this.getTilePosition(baseTileHeight, rowIndex));\n tile._setStyle('height', calc(this.getTileSize(baseTileHeight, tile.rowspan)));\n };\n /**\n * @param {?} list\n * @return {?}\n */\n FitTileStyler.prototype.reset = /**\n * @param {?} list\n * @return {?}\n */\n function (list) {\n if (list._tiles) {\n list._tiles.forEach((/**\n * @param {?} tile\n * @return {?}\n */\n function (tile) {\n tile._setStyle('top', null);\n tile._setStyle('height', null);\n }));\n }\n };\n return FitTileStyler;\n}(TileStyler));\n/**\n * Wraps a CSS string in a calc function\n * @param {?} exp\n * @return {?}\n */\nfunction calc(exp) {\n return \"calc(\" + exp + \")\";\n}\n/**\n * Appends pixels to a CSS string if no units are given.\n * @param {?} value\n * @return {?}\n */\nfunction normalizeUnits(value) {\n return value.match(/([A-Za-z%]+)$/) ? value : value + \"px\";\n}\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n// TODO(kara): Conditional (responsive) column count / row size.\n// TODO(kara): Re-layout on window resize / media change (debounced).\n// TODO(kara): gridTileHeader and gridTileFooter.\n/** @type {?} */\nvar MAT_FIT_MODE = 'fit';\nvar MatGridList = /** @class */ (function () {\n function MatGridList(_element, _dir) {\n this._element = _element;\n this._dir = _dir;\n /**\n * The amount of space between tiles. This will be something like '5px' or '2em'.\n */\n this._gutter = '1px';\n }\n Object.defineProperty(MatGridList.prototype, \"cols\", {\n /** Amount of columns in the grid list. */\n get: /**\n * Amount of columns in the grid list.\n * @return {?}\n */\n function () { return this._cols; },\n set: /**\n * @param {?} value\n * @return {?}\n */\n function (value) {\n this._cols = Math.max(1, Math.round(coerceNumberProperty(value)));\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(MatGridList.prototype, \"gutterSize\", {\n /** Size of the grid list's gutter in pixels. */\n get: /**\n * Size of the grid list's gutter in pixels.\n * @return {?}\n */\n function () { return this._gutter; },\n set: /**\n * @param {?} value\n * @return {?}\n */\n function (value) { this._gutter = \"\" + (value == null ? '' : value); },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(MatGridList.prototype, \"rowHeight\", {\n /** Set internal representation of row height from the user-provided value. */\n get: /**\n * Set internal representation of row height from the user-provided value.\n * @return {?}\n */\n function () { return this._rowHeight; },\n set: /**\n * @param {?} value\n * @return {?}\n */\n function (value) {\n /** @type {?} */\n var newValue = \"\" + (value == null ? '' : value);\n if (newValue !== this._rowHeight) {\n this._rowHeight = newValue;\n this._setTileStyler(this._rowHeight);\n }\n },\n enumerable: true,\n configurable: true\n });\n /**\n * @return {?}\n */\n MatGridList.prototype.ngOnInit = /**\n * @return {?}\n */\n function () {\n this._checkCols();\n this._checkRowHeight();\n };\n /**\n * The layout calculation is fairly cheap if nothing changes, so there's little cost\n * to run it frequently.\n */\n /**\n * The layout calculation is fairly cheap if nothing changes, so there's little cost\n * to run it frequently.\n * @return {?}\n */\n MatGridList.prototype.ngAfterContentChecked = /**\n * The layout calculation is fairly cheap if nothing changes, so there's little cost\n * to run it frequently.\n * @return {?}\n */\n function () {\n this._layoutTiles();\n };\n /** Throw a friendly error if cols property is missing */\n /**\n * Throw a friendly error if cols property is missing\n * @private\n * @return {?}\n */\n MatGridList.prototype._checkCols = /**\n * Throw a friendly error if cols property is missing\n * @private\n * @return {?}\n */\n function () {\n if (!this.cols) {\n throw Error(\"mat-grid-list: must pass in number of columns. \" +\n \"Example: \");\n }\n };\n /** Default to equal width:height if rowHeight property is missing */\n /**\n * Default to equal width:height if rowHeight property is missing\n * @private\n * @return {?}\n */\n MatGridList.prototype._checkRowHeight = /**\n * Default to equal width:height if rowHeight property is missing\n * @private\n * @return {?}\n */\n function () {\n if (!this._rowHeight) {\n this._setTileStyler('1:1');\n }\n };\n /** Creates correct Tile Styler subtype based on rowHeight passed in by user */\n /**\n * Creates correct Tile Styler subtype based on rowHeight passed in by user\n * @private\n * @param {?} rowHeight\n * @return {?}\n */\n MatGridList.prototype._setTileStyler = /**\n * Creates correct Tile Styler subtype based on rowHeight passed in by user\n * @private\n * @param {?} rowHeight\n * @return {?}\n */\n function (rowHeight) {\n if (this._tileStyler) {\n this._tileStyler.reset(this);\n }\n if (rowHeight === MAT_FIT_MODE) {\n this._tileStyler = new FitTileStyler();\n }\n else if (rowHeight && rowHeight.indexOf(':') > -1) {\n this._tileStyler = new RatioTileStyler(rowHeight);\n }\n else {\n this._tileStyler = new FixedTileStyler(rowHeight);\n }\n };\n /** Computes and applies the size and position for all children grid tiles. */\n /**\n * Computes and applies the size and position for all children grid tiles.\n * @private\n * @return {?}\n */\n MatGridList.prototype._layoutTiles = /**\n * Computes and applies the size and position for all children grid tiles.\n * @private\n * @return {?}\n */\n function () {\n var _this = this;\n if (!this._tileCoordinator) {\n this._tileCoordinator = new TileCoordinator();\n }\n /** @type {?} */\n var tracker = this._tileCoordinator;\n /** @type {?} */\n var tiles = this._tiles.filter((/**\n * @param {?} tile\n * @return {?}\n */\n function (tile) { return !tile._gridList || tile._gridList === _this; }));\n /** @type {?} */\n var direction = this._dir ? this._dir.value : 'ltr';\n this._tileCoordinator.update(this.cols, tiles);\n this._tileStyler.init(this.gutterSize, tracker, this.cols, direction);\n tiles.forEach((/**\n * @param {?} tile\n * @param {?} index\n * @return {?}\n */\n function (tile, index) {\n /** @type {?} */\n var pos = tracker.positions[index];\n _this._tileStyler.setStyle(tile, pos.row, pos.col);\n }));\n this._setListStyle(this._tileStyler.getComputedHeight());\n };\n /** Sets style on the main grid-list element, given the style name and value. */\n /**\n * Sets style on the main grid-list element, given the style name and value.\n * @param {?} style\n * @return {?}\n */\n MatGridList.prototype._setListStyle = /**\n * Sets style on the main grid-list element, given the style name and value.\n * @param {?} style\n * @return {?}\n */\n function (style) {\n if (style) {\n ((/** @type {?} */ (this._element.nativeElement.style)))[style[0]] = style[1];\n }\n };\n MatGridList.decorators = [\n { type: Component, args: [{selector: 'mat-grid-list',\n exportAs: 'matGridList',\n template: \"
\",\n styles: [\".mat-grid-list{display:block;position:relative}.mat-grid-tile{display:block;position:absolute;overflow:hidden}.mat-grid-tile .mat-figure{top:0;left:0;right:0;bottom:0;position:absolute;display:flex;align-items:center;justify-content:center;height:100%;padding:0;margin:0}.mat-grid-tile .mat-grid-tile-footer,.mat-grid-tile .mat-grid-tile-header{display:flex;align-items:center;height:48px;color:#fff;background:rgba(0,0,0,.38);overflow:hidden;padding:0 16px;position:absolute;left:0;right:0}.mat-grid-tile .mat-grid-tile-footer>*,.mat-grid-tile .mat-grid-tile-header>*{margin:0;padding:0;font-weight:400;font-size:inherit}.mat-grid-tile .mat-grid-tile-footer.mat-2-line,.mat-grid-tile .mat-grid-tile-header.mat-2-line{height:68px}.mat-grid-tile .mat-grid-list-text{display:flex;flex-direction:column;width:100%;box-sizing:border-box;overflow:hidden}.mat-grid-tile .mat-grid-list-text>*{margin:0;padding:0;font-weight:400;font-size:inherit}.mat-grid-tile .mat-grid-list-text:empty{display:none}.mat-grid-tile .mat-grid-tile-header{top:0}.mat-grid-tile .mat-grid-tile-footer{bottom:0}.mat-grid-tile .mat-grid-avatar{padding-right:16px}[dir=rtl] .mat-grid-tile .mat-grid-avatar{padding-right:0;padding-left:16px}.mat-grid-tile .mat-grid-avatar:empty{display:none}\"],\n host: {\n 'class': 'mat-grid-list',\n },\n providers: [{\n provide: MAT_GRID_LIST,\n useExisting: MatGridList\n }],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n },] },\n ];\n /** @nocollapse */\n MatGridList.ctorParameters = function () { return [\n { type: ElementRef },\n { type: Directionality, decorators: [{ type: Optional }] }\n ]; };\n MatGridList.propDecorators = {\n _tiles: [{ type: ContentChildren, args: [MatGridTile, { descendants: true },] }],\n cols: [{ type: Input }],\n gutterSize: [{ type: Input }],\n rowHeight: [{ type: Input }]\n };\n return MatGridList;\n}());\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\nvar MatGridListModule = /** @class */ (function () {\n function MatGridListModule() {\n }\n MatGridListModule.decorators = [\n { type: NgModule, args: [{\n imports: [MatLineModule, MatCommonModule],\n exports: [\n MatGridList,\n MatGridTile,\n MatGridTileText,\n MatLineModule,\n MatCommonModule,\n MatGridTileHeaderCssMatStyler,\n MatGridTileFooterCssMatStyler,\n MatGridAvatarCssMatStyler\n ],\n declarations: [\n MatGridList,\n MatGridTile,\n MatGridTileText,\n MatGridTileHeaderCssMatStyler,\n MatGridTileFooterCssMatStyler,\n MatGridAvatarCssMatStyler\n ],\n },] },\n ];\n return MatGridListModule;\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 { MatGridListModule, MatGridList, MatGridTile, MatGridTileText, MatGridAvatarCssMatStyler, MatGridTileHeaderCssMatStyler, MatGridTileFooterCssMatStyler, MAT_GRID_LIST as ɵa11 };\n//# sourceMappingURL=grid-list.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 { ChangeDetectionStrategy, Component, ContentChild, ContentChildren, Directive, ElementRef, Optional, ViewEncapsulation, ChangeDetectorRef, Attribute, EventEmitter, forwardRef, Inject, Input, Output, ViewChild, NgModule } from '@angular/core';\nimport { MatLine, setLines, mixinDisableRipple, MatCommonModule, MatLineModule, MatPseudoCheckboxModule, MatRippleModule } from '@angular/material/core';\nimport { Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\nimport { FocusKeyManager } from '@angular/cdk/a11y';\nimport { coerceBooleanProperty } from '@angular/cdk/coercion';\nimport { SelectionModel } from '@angular/cdk/collections';\nimport { SPACE, ENTER, HOME, END, UP_ARROW, DOWN_ARROW, A, hasModifierKey } from '@angular/cdk/keycodes';\nimport { NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { CommonModule } from '@angular/common';\nimport { MatDividerModule } from '@angular/material/divider';\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n// Boilerplate for applying mixins to MatList.\n/**\n * \\@docs-private\n */\nvar \n// Boilerplate for applying mixins to MatList.\n/**\n * \\@docs-private\n */\nMatListBase = /** @class */ (function () {\n function MatListBase() {\n }\n return MatListBase;\n}());\n/** @type {?} */\nvar _MatListMixinBase = mixinDisableRipple(MatListBase);\n// Boilerplate for applying mixins to MatListItem.\n/**\n * \\@docs-private\n */\nvar \n// Boilerplate for applying mixins to MatListItem.\n/**\n * \\@docs-private\n */\nMatListItemBase = /** @class */ (function () {\n function MatListItemBase() {\n }\n return MatListItemBase;\n}());\n/** @type {?} */\nvar _MatListItemMixinBase = mixinDisableRipple(MatListItemBase);\nvar MatNavList = /** @class */ (function (_super) {\n __extends(MatNavList, _super);\n function MatNavList() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n /**\n * Emits when the state of the list changes.\n */\n _this._stateChanges = new Subject();\n return _this;\n }\n /**\n * @return {?}\n */\n MatNavList.prototype.ngOnChanges = /**\n * @return {?}\n */\n function () {\n this._stateChanges.next();\n };\n /**\n * @return {?}\n */\n MatNavList.prototype.ngOnDestroy = /**\n * @return {?}\n */\n function () {\n this._stateChanges.complete();\n };\n MatNavList.decorators = [\n { type: Component, args: [{selector: 'mat-nav-list',\n exportAs: 'matNavList',\n host: {\n 'role': 'navigation',\n 'class': 'mat-nav-list mat-list-base'\n },\n template: \"\",\n styles: [\".mat-subheader{display:flex;box-sizing:border-box;padding:16px;align-items:center}.mat-list-base .mat-subheader{margin:0}.mat-list-base{padding-top:8px;display:block;-webkit-tap-highlight-color:transparent}.mat-list-base .mat-subheader{height:48px;line-height:16px}.mat-list-base .mat-subheader:first-child{margin-top:-8px}.mat-list-base .mat-list-item,.mat-list-base .mat-list-option{display:block;height:48px;-webkit-tap-highlight-color:transparent;width:100%;padding:0}.mat-list-base .mat-list-item .mat-list-item-content,.mat-list-base .mat-list-option .mat-list-item-content{display:flex;flex-direction:row;align-items:center;box-sizing:border-box;padding:0 16px;position:relative;height:inherit}.mat-list-base .mat-list-item .mat-list-item-content-reverse,.mat-list-base .mat-list-option .mat-list-item-content-reverse{display:flex;align-items:center;padding:0 16px;flex-direction:row-reverse;justify-content:space-around}.mat-list-base .mat-list-item .mat-list-item-ripple,.mat-list-base .mat-list-option .mat-list-item-ripple{top:0;left:0;right:0;bottom:0;position:absolute;pointer-events:none}.mat-list-base .mat-list-item.mat-list-item-with-avatar,.mat-list-base .mat-list-option.mat-list-item-with-avatar{height:56px}.mat-list-base .mat-list-item.mat-2-line,.mat-list-base .mat-list-option.mat-2-line{height:72px}.mat-list-base .mat-list-item.mat-3-line,.mat-list-base .mat-list-option.mat-3-line{height:88px}.mat-list-base .mat-list-item.mat-multi-line,.mat-list-base .mat-list-option.mat-multi-line{height:auto}.mat-list-base .mat-list-item.mat-multi-line .mat-list-item-content,.mat-list-base .mat-list-option.mat-multi-line .mat-list-item-content{padding-top:16px;padding-bottom:16px}.mat-list-base .mat-list-item .mat-list-text,.mat-list-base .mat-list-option .mat-list-text{display:flex;flex-direction:column;width:100%;box-sizing:border-box;overflow:hidden;padding:0}.mat-list-base .mat-list-item .mat-list-text>*,.mat-list-base .mat-list-option .mat-list-text>*{margin:0;padding:0;font-weight:400;font-size:inherit}.mat-list-base .mat-list-item .mat-list-text:empty,.mat-list-base .mat-list-option .mat-list-text:empty{display:none}.mat-list-base .mat-list-item.mat-list-item-with-avatar .mat-list-item-content .mat-list-text,.mat-list-base .mat-list-item.mat-list-option .mat-list-item-content .mat-list-text,.mat-list-base .mat-list-option.mat-list-item-with-avatar .mat-list-item-content .mat-list-text,.mat-list-base .mat-list-option.mat-list-option .mat-list-item-content .mat-list-text{padding-right:0;padding-left:16px}[dir=rtl] .mat-list-base .mat-list-item.mat-list-item-with-avatar .mat-list-item-content .mat-list-text,[dir=rtl] .mat-list-base .mat-list-item.mat-list-option .mat-list-item-content .mat-list-text,[dir=rtl] .mat-list-base .mat-list-option.mat-list-item-with-avatar .mat-list-item-content .mat-list-text,[dir=rtl] .mat-list-base .mat-list-option.mat-list-option .mat-list-item-content .mat-list-text{padding-right:16px;padding-left:0}.mat-list-base .mat-list-item.mat-list-item-with-avatar .mat-list-item-content-reverse .mat-list-text,.mat-list-base .mat-list-item.mat-list-option .mat-list-item-content-reverse .mat-list-text,.mat-list-base .mat-list-option.mat-list-item-with-avatar .mat-list-item-content-reverse .mat-list-text,.mat-list-base .mat-list-option.mat-list-option .mat-list-item-content-reverse .mat-list-text{padding-left:0;padding-right:16px}[dir=rtl] .mat-list-base .mat-list-item.mat-list-item-with-avatar .mat-list-item-content-reverse .mat-list-text,[dir=rtl] .mat-list-base .mat-list-item.mat-list-option .mat-list-item-content-reverse .mat-list-text,[dir=rtl] .mat-list-base .mat-list-option.mat-list-item-with-avatar .mat-list-item-content-reverse .mat-list-text,[dir=rtl] .mat-list-base .mat-list-option.mat-list-option .mat-list-item-content-reverse .mat-list-text{padding-right:0;padding-left:16px}.mat-list-base .mat-list-item.mat-list-item-with-avatar.mat-list-option .mat-list-item-content .mat-list-text,.mat-list-base .mat-list-item.mat-list-item-with-avatar.mat-list-option .mat-list-item-content-reverse .mat-list-text,.mat-list-base .mat-list-option.mat-list-item-with-avatar.mat-list-option .mat-list-item-content .mat-list-text,.mat-list-base .mat-list-option.mat-list-item-with-avatar.mat-list-option .mat-list-item-content-reverse .mat-list-text{padding-right:16px;padding-left:16px}.mat-list-base .mat-list-item .mat-list-avatar,.mat-list-base .mat-list-option .mat-list-avatar{flex-shrink:0;width:40px;height:40px;border-radius:50%;object-fit:cover}.mat-list-base .mat-list-item .mat-list-avatar~.mat-divider-inset,.mat-list-base .mat-list-option .mat-list-avatar~.mat-divider-inset{margin-left:72px;width:calc(100% - 72px)}[dir=rtl] .mat-list-base .mat-list-item .mat-list-avatar~.mat-divider-inset,[dir=rtl] .mat-list-base .mat-list-option .mat-list-avatar~.mat-divider-inset{margin-left:auto;margin-right:72px}.mat-list-base .mat-list-item .mat-list-icon,.mat-list-base .mat-list-option .mat-list-icon{flex-shrink:0;width:24px;height:24px;font-size:24px;box-sizing:content-box;border-radius:50%;padding:4px}.mat-list-base .mat-list-item .mat-list-icon~.mat-divider-inset,.mat-list-base .mat-list-option .mat-list-icon~.mat-divider-inset{margin-left:64px;width:calc(100% - 64px)}[dir=rtl] .mat-list-base .mat-list-item .mat-list-icon~.mat-divider-inset,[dir=rtl] .mat-list-base .mat-list-option .mat-list-icon~.mat-divider-inset{margin-left:auto;margin-right:64px}.mat-list-base .mat-list-item .mat-divider,.mat-list-base .mat-list-option .mat-divider{position:absolute;bottom:0;left:0;width:100%;margin:0}[dir=rtl] .mat-list-base .mat-list-item .mat-divider,[dir=rtl] .mat-list-base .mat-list-option .mat-divider{margin-left:auto;margin-right:0}.mat-list-base .mat-list-item .mat-divider.mat-divider-inset,.mat-list-base .mat-list-option .mat-divider.mat-divider-inset{position:absolute}.mat-list-base[dense]{padding-top:4px;display:block}.mat-list-base[dense] .mat-subheader{height:40px;line-height:8px}.mat-list-base[dense] .mat-subheader:first-child{margin-top:-4px}.mat-list-base[dense] .mat-list-item,.mat-list-base[dense] .mat-list-option{display:block;height:40px;-webkit-tap-highlight-color:transparent;width:100%;padding:0}.mat-list-base[dense] .mat-list-item .mat-list-item-content,.mat-list-base[dense] .mat-list-option .mat-list-item-content{display:flex;flex-direction:row;align-items:center;box-sizing:border-box;padding:0 16px;position:relative;height:inherit}.mat-list-base[dense] .mat-list-item .mat-list-item-content-reverse,.mat-list-base[dense] .mat-list-option .mat-list-item-content-reverse{display:flex;align-items:center;padding:0 16px;flex-direction:row-reverse;justify-content:space-around}.mat-list-base[dense] .mat-list-item .mat-list-item-ripple,.mat-list-base[dense] .mat-list-option .mat-list-item-ripple{top:0;left:0;right:0;bottom:0;position:absolute;pointer-events:none}.mat-list-base[dense] .mat-list-item.mat-list-item-with-avatar,.mat-list-base[dense] .mat-list-option.mat-list-item-with-avatar{height:48px}.mat-list-base[dense] .mat-list-item.mat-2-line,.mat-list-base[dense] .mat-list-option.mat-2-line{height:60px}.mat-list-base[dense] .mat-list-item.mat-3-line,.mat-list-base[dense] .mat-list-option.mat-3-line{height:76px}.mat-list-base[dense] .mat-list-item.mat-multi-line,.mat-list-base[dense] .mat-list-option.mat-multi-line{height:auto}.mat-list-base[dense] .mat-list-item.mat-multi-line .mat-list-item-content,.mat-list-base[dense] .mat-list-option.mat-multi-line .mat-list-item-content{padding-top:16px;padding-bottom:16px}.mat-list-base[dense] .mat-list-item .mat-list-text,.mat-list-base[dense] .mat-list-option .mat-list-text{display:flex;flex-direction:column;width:100%;box-sizing:border-box;overflow:hidden;padding:0}.mat-list-base[dense] .mat-list-item .mat-list-text>*,.mat-list-base[dense] .mat-list-option .mat-list-text>*{margin:0;padding:0;font-weight:400;font-size:inherit}.mat-list-base[dense] .mat-list-item .mat-list-text:empty,.mat-list-base[dense] .mat-list-option .mat-list-text:empty{display:none}.mat-list-base[dense] .mat-list-item.mat-list-item-with-avatar .mat-list-item-content .mat-list-text,.mat-list-base[dense] .mat-list-item.mat-list-option .mat-list-item-content .mat-list-text,.mat-list-base[dense] .mat-list-option.mat-list-item-with-avatar .mat-list-item-content .mat-list-text,.mat-list-base[dense] .mat-list-option.mat-list-option .mat-list-item-content .mat-list-text{padding-right:0;padding-left:16px}[dir=rtl] .mat-list-base[dense] .mat-list-item.mat-list-item-with-avatar .mat-list-item-content .mat-list-text,[dir=rtl] .mat-list-base[dense] .mat-list-item.mat-list-option .mat-list-item-content .mat-list-text,[dir=rtl] .mat-list-base[dense] .mat-list-option.mat-list-item-with-avatar .mat-list-item-content .mat-list-text,[dir=rtl] .mat-list-base[dense] .mat-list-option.mat-list-option .mat-list-item-content .mat-list-text{padding-right:16px;padding-left:0}.mat-list-base[dense] .mat-list-item.mat-list-item-with-avatar .mat-list-item-content-reverse .mat-list-text,.mat-list-base[dense] .mat-list-item.mat-list-option .mat-list-item-content-reverse .mat-list-text,.mat-list-base[dense] .mat-list-option.mat-list-item-with-avatar .mat-list-item-content-reverse .mat-list-text,.mat-list-base[dense] .mat-list-option.mat-list-option .mat-list-item-content-reverse .mat-list-text{padding-left:0;padding-right:16px}[dir=rtl] .mat-list-base[dense] .mat-list-item.mat-list-item-with-avatar .mat-list-item-content-reverse .mat-list-text,[dir=rtl] .mat-list-base[dense] .mat-list-item.mat-list-option .mat-list-item-content-reverse .mat-list-text,[dir=rtl] .mat-list-base[dense] .mat-list-option.mat-list-item-with-avatar .mat-list-item-content-reverse .mat-list-text,[dir=rtl] .mat-list-base[dense] .mat-list-option.mat-list-option .mat-list-item-content-reverse .mat-list-text{padding-right:0;padding-left:16px}.mat-list-base[dense] .mat-list-item.mat-list-item-with-avatar.mat-list-option .mat-list-item-content .mat-list-text,.mat-list-base[dense] .mat-list-item.mat-list-item-with-avatar.mat-list-option .mat-list-item-content-reverse .mat-list-text,.mat-list-base[dense] .mat-list-option.mat-list-item-with-avatar.mat-list-option .mat-list-item-content .mat-list-text,.mat-list-base[dense] .mat-list-option.mat-list-item-with-avatar.mat-list-option .mat-list-item-content-reverse .mat-list-text{padding-right:16px;padding-left:16px}.mat-list-base[dense] .mat-list-item .mat-list-avatar,.mat-list-base[dense] .mat-list-option .mat-list-avatar{flex-shrink:0;width:36px;height:36px;border-radius:50%;object-fit:cover}.mat-list-base[dense] .mat-list-item .mat-list-avatar~.mat-divider-inset,.mat-list-base[dense] .mat-list-option .mat-list-avatar~.mat-divider-inset{margin-left:68px;width:calc(100% - 68px)}[dir=rtl] .mat-list-base[dense] .mat-list-item .mat-list-avatar~.mat-divider-inset,[dir=rtl] .mat-list-base[dense] .mat-list-option .mat-list-avatar~.mat-divider-inset{margin-left:auto;margin-right:68px}.mat-list-base[dense] .mat-list-item .mat-list-icon,.mat-list-base[dense] .mat-list-option .mat-list-icon{flex-shrink:0;width:20px;height:20px;font-size:20px;box-sizing:content-box;border-radius:50%;padding:4px}.mat-list-base[dense] .mat-list-item .mat-list-icon~.mat-divider-inset,.mat-list-base[dense] .mat-list-option .mat-list-icon~.mat-divider-inset{margin-left:60px;width:calc(100% - 60px)}[dir=rtl] .mat-list-base[dense] .mat-list-item .mat-list-icon~.mat-divider-inset,[dir=rtl] .mat-list-base[dense] .mat-list-option .mat-list-icon~.mat-divider-inset{margin-left:auto;margin-right:60px}.mat-list-base[dense] .mat-list-item .mat-divider,.mat-list-base[dense] .mat-list-option .mat-divider{position:absolute;bottom:0;left:0;width:100%;margin:0}[dir=rtl] .mat-list-base[dense] .mat-list-item .mat-divider,[dir=rtl] .mat-list-base[dense] .mat-list-option .mat-divider{margin-left:auto;margin-right:0}.mat-list-base[dense] .mat-list-item .mat-divider.mat-divider-inset,.mat-list-base[dense] .mat-list-option .mat-divider.mat-divider-inset{position:absolute}.mat-nav-list a{text-decoration:none;color:inherit}.mat-nav-list .mat-list-item{cursor:pointer;outline:0}mat-action-list button{background:0 0;color:inherit;border:none;font:inherit;outline:inherit;-webkit-tap-highlight-color:transparent;text-align:left}[dir=rtl] mat-action-list button{text-align:right}mat-action-list button::-moz-focus-inner{border:0}mat-action-list .mat-list-item{cursor:pointer;outline:inherit}.mat-list-option:not(.mat-list-item-disabled){cursor:pointer;outline:0}@media (-ms-high-contrast:active){.mat-selection-list:focus{outline-style:dotted}.mat-list-option:focus,.mat-list-option:hover,.mat-nav-list .mat-list-item:focus,.mat-nav-list .mat-list-item:hover,mat-action-list .mat-list-item:focus,mat-action-list .mat-list-item:hover{outline:dotted 1px}}@media (hover:none){.mat-action-list .mat-list-item:not(.mat-list-item-disabled):hover,.mat-list-option:not(.mat-list-item-disabled):hover,.mat-nav-list .mat-list-item:not(.mat-list-item-disabled):hover{background:0 0}}\"],\n inputs: ['disableRipple'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n },] },\n ];\n return MatNavList;\n}(_MatListMixinBase));\nvar MatList = /** @class */ (function (_super) {\n __extends(MatList, _super);\n function MatList(_elementRef) {\n var _this = _super.call(this) || this;\n _this._elementRef = _elementRef;\n /**\n * Emits when the state of the list changes.\n */\n _this._stateChanges = new Subject();\n if (_this._getListType() === 'action-list') {\n _elementRef.nativeElement.classList.add('mat-action-list');\n }\n return _this;\n }\n /**\n * @return {?}\n */\n MatList.prototype._getListType = /**\n * @return {?}\n */\n function () {\n /** @type {?} */\n var nodeName = this._elementRef.nativeElement.nodeName.toLowerCase();\n if (nodeName === 'mat-list') {\n return 'list';\n }\n if (nodeName === 'mat-action-list') {\n return 'action-list';\n }\n return null;\n };\n /**\n * @return {?}\n */\n MatList.prototype.ngOnChanges = /**\n * @return {?}\n */\n function () {\n this._stateChanges.next();\n };\n /**\n * @return {?}\n */\n MatList.prototype.ngOnDestroy = /**\n * @return {?}\n */\n function () {\n this._stateChanges.complete();\n };\n MatList.decorators = [\n { type: Component, args: [{selector: 'mat-list, mat-action-list',\n exportAs: 'matList',\n template: \"\",\n host: {\n 'class': 'mat-list mat-list-base'\n },\n styles: [\".mat-subheader{display:flex;box-sizing:border-box;padding:16px;align-items:center}.mat-list-base .mat-subheader{margin:0}.mat-list-base{padding-top:8px;display:block;-webkit-tap-highlight-color:transparent}.mat-list-base .mat-subheader{height:48px;line-height:16px}.mat-list-base .mat-subheader:first-child{margin-top:-8px}.mat-list-base .mat-list-item,.mat-list-base .mat-list-option{display:block;height:48px;-webkit-tap-highlight-color:transparent;width:100%;padding:0}.mat-list-base .mat-list-item .mat-list-item-content,.mat-list-base .mat-list-option .mat-list-item-content{display:flex;flex-direction:row;align-items:center;box-sizing:border-box;padding:0 16px;position:relative;height:inherit}.mat-list-base .mat-list-item .mat-list-item-content-reverse,.mat-list-base .mat-list-option .mat-list-item-content-reverse{display:flex;align-items:center;padding:0 16px;flex-direction:row-reverse;justify-content:space-around}.mat-list-base .mat-list-item .mat-list-item-ripple,.mat-list-base .mat-list-option .mat-list-item-ripple{top:0;left:0;right:0;bottom:0;position:absolute;pointer-events:none}.mat-list-base .mat-list-item.mat-list-item-with-avatar,.mat-list-base .mat-list-option.mat-list-item-with-avatar{height:56px}.mat-list-base .mat-list-item.mat-2-line,.mat-list-base .mat-list-option.mat-2-line{height:72px}.mat-list-base .mat-list-item.mat-3-line,.mat-list-base .mat-list-option.mat-3-line{height:88px}.mat-list-base .mat-list-item.mat-multi-line,.mat-list-base .mat-list-option.mat-multi-line{height:auto}.mat-list-base .mat-list-item.mat-multi-line .mat-list-item-content,.mat-list-base .mat-list-option.mat-multi-line .mat-list-item-content{padding-top:16px;padding-bottom:16px}.mat-list-base .mat-list-item .mat-list-text,.mat-list-base .mat-list-option .mat-list-text{display:flex;flex-direction:column;width:100%;box-sizing:border-box;overflow:hidden;padding:0}.mat-list-base .mat-list-item .mat-list-text>*,.mat-list-base .mat-list-option .mat-list-text>*{margin:0;padding:0;font-weight:400;font-size:inherit}.mat-list-base .mat-list-item .mat-list-text:empty,.mat-list-base .mat-list-option .mat-list-text:empty{display:none}.mat-list-base .mat-list-item.mat-list-item-with-avatar .mat-list-item-content .mat-list-text,.mat-list-base .mat-list-item.mat-list-option .mat-list-item-content .mat-list-text,.mat-list-base .mat-list-option.mat-list-item-with-avatar .mat-list-item-content .mat-list-text,.mat-list-base .mat-list-option.mat-list-option .mat-list-item-content .mat-list-text{padding-right:0;padding-left:16px}[dir=rtl] .mat-list-base .mat-list-item.mat-list-item-with-avatar .mat-list-item-content .mat-list-text,[dir=rtl] .mat-list-base .mat-list-item.mat-list-option .mat-list-item-content .mat-list-text,[dir=rtl] .mat-list-base .mat-list-option.mat-list-item-with-avatar .mat-list-item-content .mat-list-text,[dir=rtl] .mat-list-base .mat-list-option.mat-list-option .mat-list-item-content .mat-list-text{padding-right:16px;padding-left:0}.mat-list-base .mat-list-item.mat-list-item-with-avatar .mat-list-item-content-reverse .mat-list-text,.mat-list-base .mat-list-item.mat-list-option .mat-list-item-content-reverse .mat-list-text,.mat-list-base .mat-list-option.mat-list-item-with-avatar .mat-list-item-content-reverse .mat-list-text,.mat-list-base .mat-list-option.mat-list-option .mat-list-item-content-reverse .mat-list-text{padding-left:0;padding-right:16px}[dir=rtl] .mat-list-base .mat-list-item.mat-list-item-with-avatar .mat-list-item-content-reverse .mat-list-text,[dir=rtl] .mat-list-base .mat-list-item.mat-list-option .mat-list-item-content-reverse .mat-list-text,[dir=rtl] .mat-list-base .mat-list-option.mat-list-item-with-avatar .mat-list-item-content-reverse .mat-list-text,[dir=rtl] .mat-list-base .mat-list-option.mat-list-option .mat-list-item-content-reverse .mat-list-text{padding-right:0;padding-left:16px}.mat-list-base .mat-list-item.mat-list-item-with-avatar.mat-list-option .mat-list-item-content .mat-list-text,.mat-list-base .mat-list-item.mat-list-item-with-avatar.mat-list-option .mat-list-item-content-reverse .mat-list-text,.mat-list-base .mat-list-option.mat-list-item-with-avatar.mat-list-option .mat-list-item-content .mat-list-text,.mat-list-base .mat-list-option.mat-list-item-with-avatar.mat-list-option .mat-list-item-content-reverse .mat-list-text{padding-right:16px;padding-left:16px}.mat-list-base .mat-list-item .mat-list-avatar,.mat-list-base .mat-list-option .mat-list-avatar{flex-shrink:0;width:40px;height:40px;border-radius:50%;object-fit:cover}.mat-list-base .mat-list-item .mat-list-avatar~.mat-divider-inset,.mat-list-base .mat-list-option .mat-list-avatar~.mat-divider-inset{margin-left:72px;width:calc(100% - 72px)}[dir=rtl] .mat-list-base .mat-list-item .mat-list-avatar~.mat-divider-inset,[dir=rtl] .mat-list-base .mat-list-option .mat-list-avatar~.mat-divider-inset{margin-left:auto;margin-right:72px}.mat-list-base .mat-list-item .mat-list-icon,.mat-list-base .mat-list-option .mat-list-icon{flex-shrink:0;width:24px;height:24px;font-size:24px;box-sizing:content-box;border-radius:50%;padding:4px}.mat-list-base .mat-list-item .mat-list-icon~.mat-divider-inset,.mat-list-base .mat-list-option .mat-list-icon~.mat-divider-inset{margin-left:64px;width:calc(100% - 64px)}[dir=rtl] .mat-list-base .mat-list-item .mat-list-icon~.mat-divider-inset,[dir=rtl] .mat-list-base .mat-list-option .mat-list-icon~.mat-divider-inset{margin-left:auto;margin-right:64px}.mat-list-base .mat-list-item .mat-divider,.mat-list-base .mat-list-option .mat-divider{position:absolute;bottom:0;left:0;width:100%;margin:0}[dir=rtl] .mat-list-base .mat-list-item .mat-divider,[dir=rtl] .mat-list-base .mat-list-option .mat-divider{margin-left:auto;margin-right:0}.mat-list-base .mat-list-item .mat-divider.mat-divider-inset,.mat-list-base .mat-list-option .mat-divider.mat-divider-inset{position:absolute}.mat-list-base[dense]{padding-top:4px;display:block}.mat-list-base[dense] .mat-subheader{height:40px;line-height:8px}.mat-list-base[dense] .mat-subheader:first-child{margin-top:-4px}.mat-list-base[dense] .mat-list-item,.mat-list-base[dense] .mat-list-option{display:block;height:40px;-webkit-tap-highlight-color:transparent;width:100%;padding:0}.mat-list-base[dense] .mat-list-item .mat-list-item-content,.mat-list-base[dense] .mat-list-option .mat-list-item-content{display:flex;flex-direction:row;align-items:center;box-sizing:border-box;padding:0 16px;position:relative;height:inherit}.mat-list-base[dense] .mat-list-item .mat-list-item-content-reverse,.mat-list-base[dense] .mat-list-option .mat-list-item-content-reverse{display:flex;align-items:center;padding:0 16px;flex-direction:row-reverse;justify-content:space-around}.mat-list-base[dense] .mat-list-item .mat-list-item-ripple,.mat-list-base[dense] .mat-list-option .mat-list-item-ripple{top:0;left:0;right:0;bottom:0;position:absolute;pointer-events:none}.mat-list-base[dense] .mat-list-item.mat-list-item-with-avatar,.mat-list-base[dense] .mat-list-option.mat-list-item-with-avatar{height:48px}.mat-list-base[dense] .mat-list-item.mat-2-line,.mat-list-base[dense] .mat-list-option.mat-2-line{height:60px}.mat-list-base[dense] .mat-list-item.mat-3-line,.mat-list-base[dense] .mat-list-option.mat-3-line{height:76px}.mat-list-base[dense] .mat-list-item.mat-multi-line,.mat-list-base[dense] .mat-list-option.mat-multi-line{height:auto}.mat-list-base[dense] .mat-list-item.mat-multi-line .mat-list-item-content,.mat-list-base[dense] .mat-list-option.mat-multi-line .mat-list-item-content{padding-top:16px;padding-bottom:16px}.mat-list-base[dense] .mat-list-item .mat-list-text,.mat-list-base[dense] .mat-list-option .mat-list-text{display:flex;flex-direction:column;width:100%;box-sizing:border-box;overflow:hidden;padding:0}.mat-list-base[dense] .mat-list-item .mat-list-text>*,.mat-list-base[dense] .mat-list-option .mat-list-text>*{margin:0;padding:0;font-weight:400;font-size:inherit}.mat-list-base[dense] .mat-list-item .mat-list-text:empty,.mat-list-base[dense] .mat-list-option .mat-list-text:empty{display:none}.mat-list-base[dense] .mat-list-item.mat-list-item-with-avatar .mat-list-item-content .mat-list-text,.mat-list-base[dense] .mat-list-item.mat-list-option .mat-list-item-content .mat-list-text,.mat-list-base[dense] .mat-list-option.mat-list-item-with-avatar .mat-list-item-content .mat-list-text,.mat-list-base[dense] .mat-list-option.mat-list-option .mat-list-item-content .mat-list-text{padding-right:0;padding-left:16px}[dir=rtl] .mat-list-base[dense] .mat-list-item.mat-list-item-with-avatar .mat-list-item-content .mat-list-text,[dir=rtl] .mat-list-base[dense] .mat-list-item.mat-list-option .mat-list-item-content .mat-list-text,[dir=rtl] .mat-list-base[dense] .mat-list-option.mat-list-item-with-avatar .mat-list-item-content .mat-list-text,[dir=rtl] .mat-list-base[dense] .mat-list-option.mat-list-option .mat-list-item-content .mat-list-text{padding-right:16px;padding-left:0}.mat-list-base[dense] .mat-list-item.mat-list-item-with-avatar .mat-list-item-content-reverse .mat-list-text,.mat-list-base[dense] .mat-list-item.mat-list-option .mat-list-item-content-reverse .mat-list-text,.mat-list-base[dense] .mat-list-option.mat-list-item-with-avatar .mat-list-item-content-reverse .mat-list-text,.mat-list-base[dense] .mat-list-option.mat-list-option .mat-list-item-content-reverse .mat-list-text{padding-left:0;padding-right:16px}[dir=rtl] .mat-list-base[dense] .mat-list-item.mat-list-item-with-avatar .mat-list-item-content-reverse .mat-list-text,[dir=rtl] .mat-list-base[dense] .mat-list-item.mat-list-option .mat-list-item-content-reverse .mat-list-text,[dir=rtl] .mat-list-base[dense] .mat-list-option.mat-list-item-with-avatar .mat-list-item-content-reverse .mat-list-text,[dir=rtl] .mat-list-base[dense] .mat-list-option.mat-list-option .mat-list-item-content-reverse .mat-list-text{padding-right:0;padding-left:16px}.mat-list-base[dense] .mat-list-item.mat-list-item-with-avatar.mat-list-option .mat-list-item-content .mat-list-text,.mat-list-base[dense] .mat-list-item.mat-list-item-with-avatar.mat-list-option .mat-list-item-content-reverse .mat-list-text,.mat-list-base[dense] .mat-list-option.mat-list-item-with-avatar.mat-list-option .mat-list-item-content .mat-list-text,.mat-list-base[dense] .mat-list-option.mat-list-item-with-avatar.mat-list-option .mat-list-item-content-reverse .mat-list-text{padding-right:16px;padding-left:16px}.mat-list-base[dense] .mat-list-item .mat-list-avatar,.mat-list-base[dense] .mat-list-option .mat-list-avatar{flex-shrink:0;width:36px;height:36px;border-radius:50%;object-fit:cover}.mat-list-base[dense] .mat-list-item .mat-list-avatar~.mat-divider-inset,.mat-list-base[dense] .mat-list-option .mat-list-avatar~.mat-divider-inset{margin-left:68px;width:calc(100% - 68px)}[dir=rtl] .mat-list-base[dense] .mat-list-item .mat-list-avatar~.mat-divider-inset,[dir=rtl] .mat-list-base[dense] .mat-list-option .mat-list-avatar~.mat-divider-inset{margin-left:auto;margin-right:68px}.mat-list-base[dense] .mat-list-item .mat-list-icon,.mat-list-base[dense] .mat-list-option .mat-list-icon{flex-shrink:0;width:20px;height:20px;font-size:20px;box-sizing:content-box;border-radius:50%;padding:4px}.mat-list-base[dense] .mat-list-item .mat-list-icon~.mat-divider-inset,.mat-list-base[dense] .mat-list-option .mat-list-icon~.mat-divider-inset{margin-left:60px;width:calc(100% - 60px)}[dir=rtl] .mat-list-base[dense] .mat-list-item .mat-list-icon~.mat-divider-inset,[dir=rtl] .mat-list-base[dense] .mat-list-option .mat-list-icon~.mat-divider-inset{margin-left:auto;margin-right:60px}.mat-list-base[dense] .mat-list-item .mat-divider,.mat-list-base[dense] .mat-list-option .mat-divider{position:absolute;bottom:0;left:0;width:100%;margin:0}[dir=rtl] .mat-list-base[dense] .mat-list-item .mat-divider,[dir=rtl] .mat-list-base[dense] .mat-list-option .mat-divider{margin-left:auto;margin-right:0}.mat-list-base[dense] .mat-list-item .mat-divider.mat-divider-inset,.mat-list-base[dense] .mat-list-option .mat-divider.mat-divider-inset{position:absolute}.mat-nav-list a{text-decoration:none;color:inherit}.mat-nav-list .mat-list-item{cursor:pointer;outline:0}mat-action-list button{background:0 0;color:inherit;border:none;font:inherit;outline:inherit;-webkit-tap-highlight-color:transparent;text-align:left}[dir=rtl] mat-action-list button{text-align:right}mat-action-list button::-moz-focus-inner{border:0}mat-action-list .mat-list-item{cursor:pointer;outline:inherit}.mat-list-option:not(.mat-list-item-disabled){cursor:pointer;outline:0}@media (-ms-high-contrast:active){.mat-selection-list:focus{outline-style:dotted}.mat-list-option:focus,.mat-list-option:hover,.mat-nav-list .mat-list-item:focus,.mat-nav-list .mat-list-item:hover,mat-action-list .mat-list-item:focus,mat-action-list .mat-list-item:hover{outline:dotted 1px}}@media (hover:none){.mat-action-list .mat-list-item:not(.mat-list-item-disabled):hover,.mat-list-option:not(.mat-list-item-disabled):hover,.mat-nav-list .mat-list-item:not(.mat-list-item-disabled):hover{background:0 0}}\"],\n inputs: ['disableRipple'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n },] },\n ];\n /** @nocollapse */\n MatList.ctorParameters = function () { return [\n { type: ElementRef }\n ]; };\n return MatList;\n}(_MatListMixinBase));\n/**\n * Directive whose purpose is to add the mat- CSS styling to this selector.\n * \\@docs-private\n */\nvar MatListAvatarCssMatStyler = /** @class */ (function () {\n function MatListAvatarCssMatStyler() {\n }\n MatListAvatarCssMatStyler.decorators = [\n { type: Directive, args: [{\n selector: '[mat-list-avatar], [matListAvatar]',\n host: { 'class': 'mat-list-avatar' }\n },] },\n ];\n return MatListAvatarCssMatStyler;\n}());\n/**\n * Directive whose purpose is to add the mat- CSS styling to this selector.\n * \\@docs-private\n */\nvar MatListIconCssMatStyler = /** @class */ (function () {\n function MatListIconCssMatStyler() {\n }\n MatListIconCssMatStyler.decorators = [\n { type: Directive, args: [{\n selector: '[mat-list-icon], [matListIcon]',\n host: { 'class': 'mat-list-icon' }\n },] },\n ];\n return MatListIconCssMatStyler;\n}());\n/**\n * Directive whose purpose is to add the mat- CSS styling to this selector.\n * \\@docs-private\n */\nvar MatListSubheaderCssMatStyler = /** @class */ (function () {\n function MatListSubheaderCssMatStyler() {\n }\n MatListSubheaderCssMatStyler.decorators = [\n { type: Directive, args: [{\n selector: '[mat-subheader], [matSubheader]',\n host: { 'class': 'mat-subheader' }\n },] },\n ];\n return MatListSubheaderCssMatStyler;\n}());\n/**\n * An item within a Material Design list.\n */\nvar MatListItem = /** @class */ (function (_super) {\n __extends(MatListItem, _super);\n function MatListItem(_element, _changeDetectorRef, navList, list) {\n var _this = _super.call(this) || this;\n _this._element = _element;\n _this._isInteractiveList = false;\n _this._destroyed = new Subject();\n _this._isInteractiveList = !!(navList || (list && list._getListType() === 'action-list'));\n _this._list = navList || list;\n // If no type attributed is specified for \",\n styles: [\".mat-simple-snackbar{display:flex;justify-content:space-between;align-items:center;line-height:20px;opacity:1}.mat-simple-snackbar-action{flex-shrink:0;margin:-8px -8px -8px 8px}.mat-simple-snackbar-action button{max-height:36px;min-width:0}[dir=rtl] .mat-simple-snackbar-action{margin-left:-8px;margin-right:8px}\"],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n 'class': 'mat-simple-snackbar',\n }\n },] },\n ];\n /** @nocollapse */\n SimpleSnackBar.ctorParameters = function () { return [\n { type: MatSnackBarRef },\n { type: undefined, decorators: [{ type: Inject, args: [MAT_SNACK_BAR_DATA,] }] }\n ]; };\n return SimpleSnackBar;\n}());\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n/**\n * Animations used by the Material snack bar.\n * \\@docs-private\n * @type {?}\n */\nvar matSnackBarAnimations = {\n /**\n * Animation that shows and hides a snack bar.\n */\n snackBarState: trigger('state', [\n state('void, hidden', style({\n transform: 'scale(0.8)',\n opacity: 0,\n })),\n state('visible', style({\n transform: 'scale(1)',\n opacity: 1,\n })),\n transition('* => visible', animate('150ms cubic-bezier(0, 0, 0.2, 1)')),\n transition('* => void, * => hidden', animate('75ms cubic-bezier(0.4, 0.0, 1, 1)', style({\n opacity: 0\n }))),\n ])\n};\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n/**\n * Internal component that wraps user-provided snack bar content.\n * \\@docs-private\n */\nvar MatSnackBarContainer = /** @class */ (function (_super) {\n __extends(MatSnackBarContainer, _super);\n function MatSnackBarContainer(_ngZone, _elementRef, _changeDetectorRef, snackBarConfig) {\n var _this = _super.call(this) || this;\n _this._ngZone = _ngZone;\n _this._elementRef = _elementRef;\n _this._changeDetectorRef = _changeDetectorRef;\n _this.snackBarConfig = snackBarConfig;\n /**\n * Whether the component has been destroyed.\n */\n _this._destroyed = false;\n /**\n * Subject for notifying that the snack bar has exited from view.\n */\n _this._onExit = new Subject();\n /**\n * Subject for notifying that the snack bar has finished entering the view.\n */\n _this._onEnter = new Subject();\n /**\n * The state of the snack bar animations.\n */\n _this._animationState = 'void';\n // Based on the ARIA spec, `alert` and `status` roles have an\n // implicit `assertive` and `polite` politeness respectively.\n if (snackBarConfig.politeness === 'assertive' && !snackBarConfig.announcementMessage) {\n _this._role = 'alert';\n }\n else if (snackBarConfig.politeness === 'off') {\n _this._role = null;\n }\n else {\n _this._role = 'status';\n }\n return _this;\n }\n /** Attach a component portal as content to this snack bar container. */\n /**\n * Attach a component portal as content to this snack bar container.\n * @template T\n * @param {?} portal\n * @return {?}\n */\n MatSnackBarContainer.prototype.attachComponentPortal = /**\n * Attach a component portal as content to this snack bar container.\n * @template T\n * @param {?} portal\n * @return {?}\n */\n function (portal) {\n this._assertNotAttached();\n this._applySnackBarClasses();\n return this._portalOutlet.attachComponentPortal(portal);\n };\n /** Attach a template portal as content to this snack bar container. */\n /**\n * Attach a template portal as content to this snack bar container.\n * @template C\n * @param {?} portal\n * @return {?}\n */\n MatSnackBarContainer.prototype.attachTemplatePortal = /**\n * Attach a template portal as content to this snack bar container.\n * @template C\n * @param {?} portal\n * @return {?}\n */\n function (portal) {\n this._assertNotAttached();\n this._applySnackBarClasses();\n return this._portalOutlet.attachTemplatePortal(portal);\n };\n /** Handle end of animations, updating the state of the snackbar. */\n /**\n * Handle end of animations, updating the state of the snackbar.\n * @param {?} event\n * @return {?}\n */\n MatSnackBarContainer.prototype.onAnimationEnd = /**\n * Handle end of animations, updating the state of the snackbar.\n * @param {?} event\n * @return {?}\n */\n function (event) {\n var fromState = event.fromState, toState = event.toState;\n if ((toState === 'void' && fromState !== 'void') || toState === 'hidden') {\n this._completeExit();\n }\n if (toState === 'visible') {\n // Note: we shouldn't use `this` inside the zone callback,\n // because it can cause a memory leak.\n /** @type {?} */\n var onEnter_1 = this._onEnter;\n this._ngZone.run((/**\n * @return {?}\n */\n function () {\n onEnter_1.next();\n onEnter_1.complete();\n }));\n }\n };\n /** Begin animation of snack bar entrance into view. */\n /**\n * Begin animation of snack bar entrance into view.\n * @return {?}\n */\n MatSnackBarContainer.prototype.enter = /**\n * Begin animation of snack bar entrance into view.\n * @return {?}\n */\n function () {\n if (!this._destroyed) {\n this._animationState = 'visible';\n this._changeDetectorRef.detectChanges();\n }\n };\n /** Begin animation of the snack bar exiting from view. */\n /**\n * Begin animation of the snack bar exiting from view.\n * @return {?}\n */\n MatSnackBarContainer.prototype.exit = /**\n * Begin animation of the snack bar exiting from view.\n * @return {?}\n */\n function () {\n // Note: this one transitions to `hidden`, rather than `void`, in order to handle the case\n // where multiple snack bars are opened in quick succession (e.g. two consecutive calls to\n // `MatSnackBar.open`).\n this._animationState = 'hidden';\n return this._onExit;\n };\n /** Makes sure the exit callbacks have been invoked when the element is destroyed. */\n /**\n * Makes sure the exit callbacks have been invoked when the element is destroyed.\n * @return {?}\n */\n MatSnackBarContainer.prototype.ngOnDestroy = /**\n * Makes sure the exit callbacks have been invoked when the element is destroyed.\n * @return {?}\n */\n function () {\n this._destroyed = true;\n this._completeExit();\n };\n /**\n * Waits for the zone to settle before removing the element. Helps prevent\n * errors where we end up removing an element which is in the middle of an animation.\n */\n /**\n * Waits for the zone to settle before removing the element. Helps prevent\n * errors where we end up removing an element which is in the middle of an animation.\n * @private\n * @return {?}\n */\n MatSnackBarContainer.prototype._completeExit = /**\n * Waits for the zone to settle before removing the element. Helps prevent\n * errors where we end up removing an element which is in the middle of an animation.\n * @private\n * @return {?}\n */\n function () {\n var _this = this;\n this._ngZone.onMicrotaskEmpty.asObservable().pipe(take(1)).subscribe((/**\n * @return {?}\n */\n function () {\n _this._onExit.next();\n _this._onExit.complete();\n }));\n };\n /** Applies the various positioning and user-configured CSS classes to the snack bar. */\n /**\n * Applies the various positioning and user-configured CSS classes to the snack bar.\n * @private\n * @return {?}\n */\n MatSnackBarContainer.prototype._applySnackBarClasses = /**\n * Applies the various positioning and user-configured CSS classes to the snack bar.\n * @private\n * @return {?}\n */\n function () {\n /** @type {?} */\n var element = this._elementRef.nativeElement;\n /** @type {?} */\n var panelClasses = this.snackBarConfig.panelClass;\n if (panelClasses) {\n if (Array.isArray(panelClasses)) {\n // Note that we can't use a spread here, because IE doesn't support multiple arguments.\n panelClasses.forEach((/**\n * @param {?} cssClass\n * @return {?}\n */\n function (cssClass) { return element.classList.add(cssClass); }));\n }\n else {\n element.classList.add(panelClasses);\n }\n }\n if (this.snackBarConfig.horizontalPosition === 'center') {\n element.classList.add('mat-snack-bar-center');\n }\n if (this.snackBarConfig.verticalPosition === 'top') {\n element.classList.add('mat-snack-bar-top');\n }\n };\n /** Asserts that no content is already attached to the container. */\n /**\n * Asserts that no content is already attached to the container.\n * @private\n * @return {?}\n */\n MatSnackBarContainer.prototype._assertNotAttached = /**\n * Asserts that no content is already attached to the container.\n * @private\n * @return {?}\n */\n function () {\n if (this._portalOutlet.hasAttached()) {\n throw Error('Attempting to attach snack bar content after content is already attached');\n }\n };\n MatSnackBarContainer.decorators = [\n { type: Component, args: [{selector: 'snack-bar-container',\n template: \"\",\n styles: [\".mat-snack-bar-container{border-radius:4px;box-sizing:border-box;display:block;margin:24px;max-width:33vw;min-width:344px;padding:14px 16px;min-height:48px;transform-origin:center}@media (-ms-high-contrast:active){.mat-snack-bar-container{border:solid 1px}}.mat-snack-bar-handset{width:100%}.mat-snack-bar-handset .mat-snack-bar-container{margin:8px;max-width:100%;min-width:0;width:100%}\"],\n // In Ivy embedded views will be change detected from their declaration place, rather than\n // where they were stamped out. This means that we can't have the snack bar container be OnPush,\n // because it might cause snack bars that were opened from a template not to be out of date.\n // tslint:disable-next-line:validate-decorators\n changeDetection: ChangeDetectionStrategy.Default,\n encapsulation: ViewEncapsulation.None,\n animations: [matSnackBarAnimations.snackBarState],\n host: {\n '[attr.role]': '_role',\n 'class': 'mat-snack-bar-container',\n '[@state]': '_animationState',\n '(@state.done)': 'onAnimationEnd($event)'\n },\n },] },\n ];\n /** @nocollapse */\n MatSnackBarContainer.ctorParameters = function () { return [\n { type: NgZone },\n { type: ElementRef },\n { type: ChangeDetectorRef },\n { type: MatSnackBarConfig }\n ]; };\n MatSnackBarContainer.propDecorators = {\n _portalOutlet: [{ type: ViewChild, args: [CdkPortalOutlet, { static: true },] }]\n };\n return MatSnackBarContainer;\n}(BasePortalOutlet));\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\nvar MatSnackBarModule = /** @class */ (function () {\n function MatSnackBarModule() {\n }\n MatSnackBarModule.decorators = [\n { type: NgModule, args: [{\n imports: [\n OverlayModule,\n PortalModule,\n CommonModule,\n MatButtonModule,\n MatCommonModule,\n ],\n exports: [MatSnackBarContainer, MatCommonModule],\n declarations: [MatSnackBarContainer, SimpleSnackBar],\n entryComponents: [MatSnackBarContainer, SimpleSnackBar],\n },] },\n ];\n return MatSnackBarModule;\n}());\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n/**\n * Injection token that can be used to specify default snack bar.\n * @type {?}\n */\nvar MAT_SNACK_BAR_DEFAULT_OPTIONS = new InjectionToken('mat-snack-bar-default-options', {\n providedIn: 'root',\n factory: MAT_SNACK_BAR_DEFAULT_OPTIONS_FACTORY,\n});\n/**\n * \\@docs-private\n * @return {?}\n */\nfunction MAT_SNACK_BAR_DEFAULT_OPTIONS_FACTORY() {\n return new MatSnackBarConfig();\n}\n/**\n * Service to dispatch Material Design snack bar messages.\n */\nvar MatSnackBar = /** @class */ (function () {\n function MatSnackBar(_overlay, _live, _injector, _breakpointObserver, _parentSnackBar, _defaultConfig) {\n this._overlay = _overlay;\n this._live = _live;\n this._injector = _injector;\n this._breakpointObserver = _breakpointObserver;\n this._parentSnackBar = _parentSnackBar;\n this._defaultConfig = _defaultConfig;\n /**\n * Reference to the current snack bar in the view *at this level* (in the Angular injector tree).\n * If there is a parent snack-bar service, all operations should delegate to that parent\n * via `_openedSnackBarRef`.\n */\n this._snackBarRefAtThisLevel = null;\n }\n Object.defineProperty(MatSnackBar.prototype, \"_openedSnackBarRef\", {\n /** Reference to the currently opened snackbar at *any* level. */\n get: /**\n * Reference to the currently opened snackbar at *any* level.\n * @return {?}\n */\n function () {\n /** @type {?} */\n var parent = this._parentSnackBar;\n return parent ? parent._openedSnackBarRef : this._snackBarRefAtThisLevel;\n },\n set: /**\n * @param {?} value\n * @return {?}\n */\n function (value) {\n if (this._parentSnackBar) {\n this._parentSnackBar._openedSnackBarRef = value;\n }\n else {\n this._snackBarRefAtThisLevel = value;\n }\n },\n enumerable: true,\n configurable: true\n });\n /**\n * Creates and dispatches a snack bar with a custom component for the content, removing any\n * currently opened snack bars.\n *\n * @param component Component to be instantiated.\n * @param config Extra configuration for the snack bar.\n */\n /**\n * Creates and dispatches a snack bar with a custom component for the content, removing any\n * currently opened snack bars.\n *\n * @template T\n * @param {?} component Component to be instantiated.\n * @param {?=} config Extra configuration for the snack bar.\n * @return {?}\n */\n MatSnackBar.prototype.openFromComponent = /**\n * Creates and dispatches a snack bar with a custom component for the content, removing any\n * currently opened snack bars.\n *\n * @template T\n * @param {?} component Component to be instantiated.\n * @param {?=} config Extra configuration for the snack bar.\n * @return {?}\n */\n function (component, config) {\n return (/** @type {?} */ (this._attach(component, config)));\n };\n /**\n * Creates and dispatches a snack bar with a custom template for the content, removing any\n * currently opened snack bars.\n *\n * @param template Template to be instantiated.\n * @param config Extra configuration for the snack bar.\n */\n /**\n * Creates and dispatches a snack bar with a custom template for the content, removing any\n * currently opened snack bars.\n *\n * @param {?} template Template to be instantiated.\n * @param {?=} config Extra configuration for the snack bar.\n * @return {?}\n */\n MatSnackBar.prototype.openFromTemplate = /**\n * Creates and dispatches a snack bar with a custom template for the content, removing any\n * currently opened snack bars.\n *\n * @param {?} template Template to be instantiated.\n * @param {?=} config Extra configuration for the snack bar.\n * @return {?}\n */\n function (template, config) {\n return this._attach(template, config);\n };\n /**\n * Opens a snackbar with a message and an optional action.\n * @param message The message to show in the snackbar.\n * @param action The label for the snackbar action.\n * @param config Additional configuration options for the snackbar.\n */\n /**\n * Opens a snackbar with a message and an optional action.\n * @param {?} message The message to show in the snackbar.\n * @param {?=} action The label for the snackbar action.\n * @param {?=} config Additional configuration options for the snackbar.\n * @return {?}\n */\n MatSnackBar.prototype.open = /**\n * Opens a snackbar with a message and an optional action.\n * @param {?} message The message to show in the snackbar.\n * @param {?=} action The label for the snackbar action.\n * @param {?=} config Additional configuration options for the snackbar.\n * @return {?}\n */\n function (message, action, config) {\n if (action === void 0) { action = ''; }\n /** @type {?} */\n var _config = __assign({}, this._defaultConfig, config);\n // Since the user doesn't have access to the component, we can\n // override the data to pass in our own message and action.\n _config.data = { message: message, action: action };\n if (!_config.announcementMessage) {\n _config.announcementMessage = message;\n }\n return this.openFromComponent(SimpleSnackBar, _config);\n };\n /**\n * Dismisses the currently-visible snack bar.\n */\n /**\n * Dismisses the currently-visible snack bar.\n * @return {?}\n */\n MatSnackBar.prototype.dismiss = /**\n * Dismisses the currently-visible snack bar.\n * @return {?}\n */\n function () {\n if (this._openedSnackBarRef) {\n this._openedSnackBarRef.dismiss();\n }\n };\n /**\n * @return {?}\n */\n MatSnackBar.prototype.ngOnDestroy = /**\n * @return {?}\n */\n function () {\n // Only dismiss the snack bar at the current level on destroy.\n if (this._snackBarRefAtThisLevel) {\n this._snackBarRefAtThisLevel.dismiss();\n }\n };\n /**\n * Attaches the snack bar container component to the overlay.\n */\n /**\n * Attaches the snack bar container component to the overlay.\n * @private\n * @param {?} overlayRef\n * @param {?} config\n * @return {?}\n */\n MatSnackBar.prototype._attachSnackBarContainer = /**\n * Attaches the snack bar container component to the overlay.\n * @private\n * @param {?} overlayRef\n * @param {?} config\n * @return {?}\n */\n function (overlayRef, config) {\n /** @type {?} */\n var userInjector = config && config.viewContainerRef && config.viewContainerRef.injector;\n /** @type {?} */\n var injector = new PortalInjector(userInjector || this._injector, new WeakMap([\n [MatSnackBarConfig, config]\n ]));\n /** @type {?} */\n var containerPortal = new ComponentPortal(MatSnackBarContainer, config.viewContainerRef, injector);\n /** @type {?} */\n var containerRef = overlayRef.attach(containerPortal);\n containerRef.instance.snackBarConfig = config;\n return containerRef.instance;\n };\n /**\n * Places a new component or a template as the content of the snack bar container.\n */\n /**\n * Places a new component or a template as the content of the snack bar container.\n * @private\n * @template T\n * @param {?} content\n * @param {?=} userConfig\n * @return {?}\n */\n MatSnackBar.prototype._attach = /**\n * Places a new component or a template as the content of the snack bar container.\n * @private\n * @template T\n * @param {?} content\n * @param {?=} userConfig\n * @return {?}\n */\n function (content, userConfig) {\n /** @type {?} */\n var config = __assign({}, new MatSnackBarConfig(), this._defaultConfig, userConfig);\n /** @type {?} */\n var overlayRef = this._createOverlay(config);\n /** @type {?} */\n var container = this._attachSnackBarContainer(overlayRef, config);\n /** @type {?} */\n var snackBarRef = new MatSnackBarRef(container, overlayRef);\n if (content instanceof TemplateRef) {\n /** @type {?} */\n var portal = new TemplatePortal(content, (/** @type {?} */ (null)), (/** @type {?} */ ({\n $implicit: config.data,\n snackBarRef: snackBarRef\n })));\n snackBarRef.instance = container.attachTemplatePortal(portal);\n }\n else {\n /** @type {?} */\n var injector = this._createInjector(config, snackBarRef);\n /** @type {?} */\n var portal = new ComponentPortal(content, undefined, injector);\n /** @type {?} */\n var contentRef = container.attachComponentPortal(portal);\n // We can't pass this via the injector, because the injector is created earlier.\n snackBarRef.instance = contentRef.instance;\n }\n // Subscribe to the breakpoint observer and attach the mat-snack-bar-handset class as\n // appropriate. This class is applied to the overlay element because the overlay must expand to\n // fill the width of the screen for full width snackbars.\n this._breakpointObserver.observe(Breakpoints.HandsetPortrait).pipe(takeUntil(overlayRef.detachments())).subscribe((/**\n * @param {?} state\n * @return {?}\n */\n function (state$$1) {\n /** @type {?} */\n var classList = overlayRef.overlayElement.classList;\n /** @type {?} */\n var className = 'mat-snack-bar-handset';\n state$$1.matches ? classList.add(className) : classList.remove(className);\n }));\n this._animateSnackBar(snackBarRef, config);\n this._openedSnackBarRef = snackBarRef;\n return this._openedSnackBarRef;\n };\n /** Animates the old snack bar out and the new one in. */\n /**\n * Animates the old snack bar out and the new one in.\n * @private\n * @param {?} snackBarRef\n * @param {?} config\n * @return {?}\n */\n MatSnackBar.prototype._animateSnackBar = /**\n * Animates the old snack bar out and the new one in.\n * @private\n * @param {?} snackBarRef\n * @param {?} config\n * @return {?}\n */\n function (snackBarRef, config) {\n var _this = this;\n // When the snackbar is dismissed, clear the reference to it.\n snackBarRef.afterDismissed().subscribe((/**\n * @return {?}\n */\n function () {\n // Clear the snackbar ref if it hasn't already been replaced by a newer snackbar.\n if (_this._openedSnackBarRef == snackBarRef) {\n _this._openedSnackBarRef = null;\n }\n if (config.announcementMessage) {\n _this._live.clear();\n }\n }));\n if (this._openedSnackBarRef) {\n // If a snack bar is already in view, dismiss it and enter the\n // new snack bar after exit animation is complete.\n this._openedSnackBarRef.afterDismissed().subscribe((/**\n * @return {?}\n */\n function () {\n snackBarRef.containerInstance.enter();\n }));\n this._openedSnackBarRef.dismiss();\n }\n else {\n // If no snack bar is in view, enter the new snack bar.\n snackBarRef.containerInstance.enter();\n }\n // If a dismiss timeout is provided, set up dismiss based on after the snackbar is opened.\n if (config.duration && config.duration > 0) {\n snackBarRef.afterOpened().subscribe((/**\n * @return {?}\n */\n function () { return snackBarRef._dismissAfter((/** @type {?} */ (config.duration))); }));\n }\n if (config.announcementMessage) {\n this._live.announce(config.announcementMessage, config.politeness);\n }\n };\n /**\n * Creates a new overlay and places it in the correct location.\n * @param config The user-specified snack bar config.\n */\n /**\n * Creates a new overlay and places it in the correct location.\n * @private\n * @param {?} config The user-specified snack bar config.\n * @return {?}\n */\n MatSnackBar.prototype._createOverlay = /**\n * Creates a new overlay and places it in the correct location.\n * @private\n * @param {?} config The user-specified snack bar config.\n * @return {?}\n */\n function (config) {\n /** @type {?} */\n var overlayConfig = new OverlayConfig();\n overlayConfig.direction = config.direction;\n /** @type {?} */\n var positionStrategy = this._overlay.position().global();\n // Set horizontal position.\n /** @type {?} */\n var isRtl = config.direction === 'rtl';\n /** @type {?} */\n var isLeft = (config.horizontalPosition === 'left' ||\n (config.horizontalPosition === 'start' && !isRtl) ||\n (config.horizontalPosition === 'end' && isRtl));\n /** @type {?} */\n var isRight = !isLeft && config.horizontalPosition !== 'center';\n if (isLeft) {\n positionStrategy.left('0');\n }\n else if (isRight) {\n positionStrategy.right('0');\n }\n else {\n positionStrategy.centerHorizontally();\n }\n // Set horizontal position.\n if (config.verticalPosition === 'top') {\n positionStrategy.top('0');\n }\n else {\n positionStrategy.bottom('0');\n }\n overlayConfig.positionStrategy = positionStrategy;\n return this._overlay.create(overlayConfig);\n };\n /**\n * Creates an injector to be used inside of a snack bar component.\n * @param config Config that was used to create the snack bar.\n * @param snackBarRef Reference to the snack bar.\n */\n /**\n * Creates an injector to be used inside of a snack bar component.\n * @private\n * @template T\n * @param {?} config Config that was used to create the snack bar.\n * @param {?} snackBarRef Reference to the snack bar.\n * @return {?}\n */\n MatSnackBar.prototype._createInjector = /**\n * Creates an injector to be used inside of a snack bar component.\n * @private\n * @template T\n * @param {?} config Config that was used to create the snack bar.\n * @param {?} snackBarRef Reference to the snack bar.\n * @return {?}\n */\n function (config, snackBarRef) {\n /** @type {?} */\n var userInjector = config && config.viewContainerRef && config.viewContainerRef.injector;\n return new PortalInjector(userInjector || this._injector, new WeakMap([\n [MatSnackBarRef, snackBarRef],\n [MAT_SNACK_BAR_DATA, config.data]\n ]));\n };\n MatSnackBar.decorators = [\n { type: Injectable, args: [{ providedIn: MatSnackBarModule },] },\n ];\n /** @nocollapse */\n MatSnackBar.ctorParameters = function () { return [\n { type: Overlay },\n { type: LiveAnnouncer },\n { type: Injector },\n { type: BreakpointObserver },\n { type: MatSnackBar, decorators: [{ type: Optional }, { type: SkipSelf }] },\n { type: MatSnackBarConfig, decorators: [{ type: Inject, args: [MAT_SNACK_BAR_DEFAULT_OPTIONS,] }] }\n ]; };\n /** @nocollapse */ MatSnackBar.ngInjectableDef = ɵɵdefineInjectable({ factory: function MatSnackBar_Factory() { return new MatSnackBar(ɵɵinject(Overlay), ɵɵinject(LiveAnnouncer), ɵɵinject(INJECTOR), ɵɵinject(BreakpointObserver), ɵɵinject(MatSnackBar, 12), ɵɵinject(MAT_SNACK_BAR_DEFAULT_OPTIONS)); }, token: MatSnackBar, providedIn: MatSnackBarModule });\n return MatSnackBar;\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 { MatSnackBarModule, MAT_SNACK_BAR_DEFAULT_OPTIONS_FACTORY, MAT_SNACK_BAR_DEFAULT_OPTIONS, MatSnackBar, MatSnackBarContainer, MAT_SNACK_BAR_DATA, MatSnackBarConfig, MatSnackBarRef, SimpleSnackBar, matSnackBarAnimations };\n//# sourceMappingURL=snack-bar.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 { coerceBooleanProperty } from '@angular/cdk/coercion';\nimport { Directive, EventEmitter, Input, isDevMode, Output, Injectable, SkipSelf, Optional, NgModule, ChangeDetectionStrategy, ChangeDetectorRef, Component, ViewEncapsulation, Inject, ɵɵdefineInjectable } from '@angular/core';\nimport { mixinDisabled, mixinInitialized, AnimationCurves, AnimationDurations } from '@angular/material/core';\nimport { Subject, merge } from 'rxjs';\nimport { animate, state, style, transition, trigger, keyframes, query, animateChild } from '@angular/animations';\nimport { CommonModule } from '@angular/common';\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n\n/**\n * \\@docs-private\n * @param {?} id\n * @return {?}\n */\nfunction getSortDuplicateSortableIdError(id) {\n return Error(\"Cannot have two MatSortables with the same id (\" + id + \").\");\n}\n/**\n * \\@docs-private\n * @return {?}\n */\nfunction getSortHeaderNotContainedWithinSortError() {\n return Error(\"MatSortHeader must be placed within a parent element with the MatSort directive.\");\n}\n/**\n * \\@docs-private\n * @return {?}\n */\nfunction getSortHeaderMissingIdError() {\n return Error(\"MatSortHeader must be provided with a unique id.\");\n}\n/**\n * \\@docs-private\n * @param {?} direction\n * @return {?}\n */\nfunction getSortInvalidDirectionError(direction) {\n return Error(direction + \" is not a valid sort direction ('asc' or 'desc').\");\n}\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n// Boilerplate for applying mixins to MatSort.\n/**\n * \\@docs-private\n */\nvar \n// Boilerplate for applying mixins to MatSort.\n/**\n * \\@docs-private\n */\nMatSortBase = /** @class */ (function () {\n function MatSortBase() {\n }\n return MatSortBase;\n}());\n/** @type {?} */\nvar _MatSortMixinBase = mixinInitialized(mixinDisabled(MatSortBase));\n/**\n * Container for MatSortables to manage the sort state and provide default sort parameters.\n */\nvar MatSort = /** @class */ (function (_super) {\n __extends(MatSort, _super);\n function MatSort() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n /**\n * Collection of all registered sortables that this directive manages.\n */\n _this.sortables = new Map();\n /**\n * Used to notify any child components listening to state changes.\n */\n _this._stateChanges = new Subject();\n /**\n * The direction to set when an MatSortable is initially sorted.\n * May be overriden by the MatSortable's sort start.\n */\n _this.start = 'asc';\n _this._direction = '';\n /**\n * Event emitted when the user changes either the active sort or sort direction.\n */\n _this.sortChange = new EventEmitter();\n return _this;\n }\n Object.defineProperty(MatSort.prototype, \"direction\", {\n /** The sort direction of the currently active MatSortable. */\n get: /**\n * The sort direction of the currently active MatSortable.\n * @return {?}\n */\n function () { return this._direction; },\n set: /**\n * @param {?} direction\n * @return {?}\n */\n function (direction) {\n if (isDevMode() && direction && direction !== 'asc' && direction !== 'desc') {\n throw getSortInvalidDirectionError(direction);\n }\n this._direction = direction;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(MatSort.prototype, \"disableClear\", {\n /**\n * Whether to disable the user from clearing the sort by finishing the sort direction cycle.\n * May be overriden by the MatSortable's disable clear input.\n */\n get: /**\n * Whether to disable the user from clearing the sort by finishing the sort direction cycle.\n * May be overriden by the MatSortable's disable clear input.\n * @return {?}\n */\n function () { return this._disableClear; },\n set: /**\n * @param {?} v\n * @return {?}\n */\n function (v) { this._disableClear = coerceBooleanProperty(v); },\n enumerable: true,\n configurable: true\n });\n /**\n * Register function to be used by the contained MatSortables. Adds the MatSortable to the\n * collection of MatSortables.\n */\n /**\n * Register function to be used by the contained MatSortables. Adds the MatSortable to the\n * collection of MatSortables.\n * @param {?} sortable\n * @return {?}\n */\n MatSort.prototype.register = /**\n * Register function to be used by the contained MatSortables. Adds the MatSortable to the\n * collection of MatSortables.\n * @param {?} sortable\n * @return {?}\n */\n function (sortable) {\n if (!sortable.id) {\n throw getSortHeaderMissingIdError();\n }\n if (this.sortables.has(sortable.id)) {\n throw getSortDuplicateSortableIdError(sortable.id);\n }\n this.sortables.set(sortable.id, sortable);\n };\n /**\n * Unregister function to be used by the contained MatSortables. Removes the MatSortable from the\n * collection of contained MatSortables.\n */\n /**\n * Unregister function to be used by the contained MatSortables. Removes the MatSortable from the\n * collection of contained MatSortables.\n * @param {?} sortable\n * @return {?}\n */\n MatSort.prototype.deregister = /**\n * Unregister function to be used by the contained MatSortables. Removes the MatSortable from the\n * collection of contained MatSortables.\n * @param {?} sortable\n * @return {?}\n */\n function (sortable) {\n this.sortables.delete(sortable.id);\n };\n /** Sets the active sort id and determines the new sort direction. */\n /**\n * Sets the active sort id and determines the new sort direction.\n * @param {?} sortable\n * @return {?}\n */\n MatSort.prototype.sort = /**\n * Sets the active sort id and determines the new sort direction.\n * @param {?} sortable\n * @return {?}\n */\n function (sortable) {\n if (this.active != sortable.id) {\n this.active = sortable.id;\n this.direction = sortable.start ? sortable.start : this.start;\n }\n else {\n this.direction = this.getNextSortDirection(sortable);\n }\n this.sortChange.emit({ active: this.active, direction: this.direction });\n };\n /** Returns the next sort direction of the active sortable, checking for potential overrides. */\n /**\n * Returns the next sort direction of the active sortable, checking for potential overrides.\n * @param {?} sortable\n * @return {?}\n */\n MatSort.prototype.getNextSortDirection = /**\n * Returns the next sort direction of the active sortable, checking for potential overrides.\n * @param {?} sortable\n * @return {?}\n */\n function (sortable) {\n if (!sortable) {\n return '';\n }\n // Get the sort direction cycle with the potential sortable overrides.\n /** @type {?} */\n var disableClear = sortable.disableClear != null ? sortable.disableClear : this.disableClear;\n /** @type {?} */\n var sortDirectionCycle = getSortDirectionCycle(sortable.start || this.start, disableClear);\n // Get and return the next direction in the cycle\n /** @type {?} */\n var nextDirectionIndex = sortDirectionCycle.indexOf(this.direction) + 1;\n if (nextDirectionIndex >= sortDirectionCycle.length) {\n nextDirectionIndex = 0;\n }\n return sortDirectionCycle[nextDirectionIndex];\n };\n /**\n * @return {?}\n */\n MatSort.prototype.ngOnInit = /**\n * @return {?}\n */\n function () {\n this._markInitialized();\n };\n /**\n * @return {?}\n */\n MatSort.prototype.ngOnChanges = /**\n * @return {?}\n */\n function () {\n this._stateChanges.next();\n };\n /**\n * @return {?}\n */\n MatSort.prototype.ngOnDestroy = /**\n * @return {?}\n */\n function () {\n this._stateChanges.complete();\n };\n MatSort.decorators = [\n { type: Directive, args: [{\n selector: '[matSort]',\n exportAs: 'matSort',\n inputs: ['disabled: matSortDisabled']\n },] },\n ];\n MatSort.propDecorators = {\n active: [{ type: Input, args: ['matSortActive',] }],\n start: [{ type: Input, args: ['matSortStart',] }],\n direction: [{ type: Input, args: ['matSortDirection',] }],\n disableClear: [{ type: Input, args: ['matSortDisableClear',] }],\n sortChange: [{ type: Output, args: ['matSortChange',] }]\n };\n return MatSort;\n}(_MatSortMixinBase));\n/**\n * Returns the sort direction cycle to use given the provided parameters of order and clear.\n * @param {?} start\n * @param {?} disableClear\n * @return {?}\n */\nfunction getSortDirectionCycle(start, disableClear) {\n /** @type {?} */\n var sortOrder = ['asc', 'desc'];\n if (start == 'desc') {\n sortOrder.reverse();\n }\n if (!disableClear) {\n sortOrder.push('');\n }\n return sortOrder;\n}\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n/** @type {?} */\nvar SORT_ANIMATION_TRANSITION = AnimationDurations.ENTERING + ' ' +\n AnimationCurves.STANDARD_CURVE;\n/**\n * Animations used by MatSort.\n * \\@docs-private\n * @type {?}\n */\nvar matSortAnimations = {\n /**\n * Animation that moves the sort indicator.\n */\n indicator: trigger('indicator', [\n state('active-asc, asc', style({ transform: 'translateY(0px)' })),\n // 10px is the height of the sort indicator, minus the width of the pointers\n state('active-desc, desc', style({ transform: 'translateY(10px)' })),\n transition('active-asc <=> active-desc', animate(SORT_ANIMATION_TRANSITION))\n ]),\n /**\n * Animation that rotates the left pointer of the indicator based on the sorting direction.\n */\n leftPointer: trigger('leftPointer', [\n state('active-asc, asc', style({ transform: 'rotate(-45deg)' })),\n state('active-desc, desc', style({ transform: 'rotate(45deg)' })),\n transition('active-asc <=> active-desc', animate(SORT_ANIMATION_TRANSITION))\n ]),\n /**\n * Animation that rotates the right pointer of the indicator based on the sorting direction.\n */\n rightPointer: trigger('rightPointer', [\n state('active-asc, asc', style({ transform: 'rotate(45deg)' })),\n state('active-desc, desc', style({ transform: 'rotate(-45deg)' })),\n transition('active-asc <=> active-desc', animate(SORT_ANIMATION_TRANSITION))\n ]),\n /**\n * Animation that controls the arrow opacity.\n */\n arrowOpacity: trigger('arrowOpacity', [\n state('desc-to-active, asc-to-active, active', style({ opacity: 1 })),\n state('desc-to-hint, asc-to-hint, hint', style({ opacity: .54 })),\n state('hint-to-desc, active-to-desc, desc, hint-to-asc, active-to-asc, asc, void', style({ opacity: 0 })),\n // Transition between all states except for immediate transitions\n transition('* => asc, * => desc, * => active, * => hint, * => void', animate('0ms')),\n transition('* <=> *', animate(SORT_ANIMATION_TRANSITION)),\n ]),\n /**\n * Animation for the translation of the arrow as a whole. States are separated into two\n * groups: ones with animations and others that are immediate. Immediate states are asc, desc,\n * peek, and active. The other states define a specific animation (source-to-destination)\n * and are determined as a function of their prev user-perceived state and what the next state\n * should be.\n */\n arrowPosition: trigger('arrowPosition', [\n // Hidden Above => Hint Center\n transition('* => desc-to-hint, * => desc-to-active', animate(SORT_ANIMATION_TRANSITION, keyframes([\n style({ transform: 'translateY(-25%)' }),\n style({ transform: 'translateY(0)' })\n ]))),\n // Hint Center => Hidden Below\n transition('* => hint-to-desc, * => active-to-desc', animate(SORT_ANIMATION_TRANSITION, keyframes([\n style({ transform: 'translateY(0)' }),\n style({ transform: 'translateY(25%)' })\n ]))),\n // Hidden Below => Hint Center\n transition('* => asc-to-hint, * => asc-to-active', animate(SORT_ANIMATION_TRANSITION, keyframes([\n style({ transform: 'translateY(25%)' }),\n style({ transform: 'translateY(0)' })\n ]))),\n // Hint Center => Hidden Above\n transition('* => hint-to-asc, * => active-to-asc', animate(SORT_ANIMATION_TRANSITION, keyframes([\n style({ transform: 'translateY(0)' }),\n style({ transform: 'translateY(-25%)' })\n ]))),\n state('desc-to-hint, asc-to-hint, hint, desc-to-active, asc-to-active, active', style({ transform: 'translateY(0)' })),\n state('hint-to-desc, active-to-desc, desc', style({ transform: 'translateY(-25%)' })),\n state('hint-to-asc, active-to-asc, asc', style({ transform: 'translateY(25%)' })),\n ]),\n /**\n * Necessary trigger that calls animate on children animations.\n */\n allowChildren: trigger('allowChildren', [\n transition('* <=> *', [\n query('@*', animateChild(), { optional: true })\n ])\n ]),\n};\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n/**\n * To modify the labels and text displayed, create a new instance of MatSortHeaderIntl and\n * include it in a custom provider.\n */\nvar MatSortHeaderIntl = /** @class */ (function () {\n function MatSortHeaderIntl() {\n /**\n * Stream that emits whenever the labels here are changed. Use this to notify\n * components if the labels have changed after initialization.\n */\n this.changes = new Subject();\n /**\n * ARIA label for the sorting button.\n */\n this.sortButtonLabel = (/**\n * @param {?} id\n * @return {?}\n */\n function (id) {\n return \"Change sorting for \" + id;\n });\n }\n MatSortHeaderIntl.decorators = [\n { type: Injectable, args: [{ providedIn: 'root' },] },\n ];\n /** @nocollapse */ MatSortHeaderIntl.ngInjectableDef = ɵɵdefineInjectable({ factory: function MatSortHeaderIntl_Factory() { return new MatSortHeaderIntl(); }, token: MatSortHeaderIntl, providedIn: \"root\" });\n return MatSortHeaderIntl;\n}());\n/**\n * \\@docs-private\n * @param {?} parentIntl\n * @return {?}\n */\nfunction MAT_SORT_HEADER_INTL_PROVIDER_FACTORY(parentIntl) {\n return parentIntl || new MatSortHeaderIntl();\n}\n/**\n * \\@docs-private\n * @type {?}\n */\nvar MAT_SORT_HEADER_INTL_PROVIDER = {\n // If there is already an MatSortHeaderIntl available, use that. Otherwise, provide a new one.\n provide: MatSortHeaderIntl,\n deps: [[new Optional(), new SkipSelf(), MatSortHeaderIntl]],\n useFactory: MAT_SORT_HEADER_INTL_PROVIDER_FACTORY\n};\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n// Boilerplate for applying mixins to the sort header.\n/**\n * \\@docs-private\n */\nvar \n// Boilerplate for applying mixins to the sort header.\n/**\n * \\@docs-private\n */\nMatSortHeaderBase = /** @class */ (function () {\n function MatSortHeaderBase() {\n }\n return MatSortHeaderBase;\n}());\n/** @type {?} */\nvar _MatSortHeaderMixinBase = mixinDisabled(MatSortHeaderBase);\n/**\n * Applies sorting behavior (click to change sort) and styles to an element, including an\n * arrow to display the current sort direction.\n *\n * Must be provided with an id and contained within a parent MatSort directive.\n *\n * If used on header cells in a CdkTable, it will automatically default its id from its containing\n * column definition.\n */\nvar MatSortHeader = /** @class */ (function (_super) {\n __extends(MatSortHeader, _super);\n function MatSortHeader(_intl, changeDetectorRef, _sort, _columnDef) {\n var _this = \n // Note that we use a string token for the `_columnDef`, because the value is provided both by\n // `material/table` and `cdk/table` and we can't have the CDK depending on Material,\n // and we want to avoid having the sort header depending on the CDK table because\n // of this single reference.\n _super.call(this) || this;\n _this._intl = _intl;\n _this._sort = _sort;\n _this._columnDef = _columnDef;\n /**\n * Flag set to true when the indicator should be displayed while the sort is not active. Used to\n * provide an affordance that the header is sortable by showing on focus and hover.\n */\n _this._showIndicatorHint = false;\n /**\n * The direction the arrow should be facing according to the current state.\n */\n _this._arrowDirection = '';\n /**\n * Whether the view state animation should show the transition between the `from` and `to` states.\n */\n _this._disableViewStateAnimation = false;\n /**\n * Sets the position of the arrow that displays when sorted.\n */\n _this.arrowPosition = 'after';\n if (!_sort) {\n throw getSortHeaderNotContainedWithinSortError();\n }\n _this._rerenderSubscription = merge(_sort.sortChange, _sort._stateChanges, _intl.changes)\n .subscribe((/**\n * @return {?}\n */\n function () {\n if (_this._isSorted()) {\n _this._updateArrowDirection();\n }\n // If this header was recently active and now no longer sorted, animate away the arrow.\n if (!_this._isSorted() && _this._viewState && _this._viewState.toState === 'active') {\n _this._disableViewStateAnimation = false;\n _this._setAnimationTransitionState({ fromState: 'active', toState: _this._arrowDirection });\n }\n changeDetectorRef.markForCheck();\n }));\n return _this;\n }\n Object.defineProperty(MatSortHeader.prototype, \"disableClear\", {\n /** Overrides the disable clear value of the containing MatSort for this MatSortable. */\n get: /**\n * Overrides the disable clear value of the containing MatSort for this MatSortable.\n * @return {?}\n */\n function () { return this._disableClear; },\n set: /**\n * @param {?} v\n * @return {?}\n */\n function (v) { this._disableClear = coerceBooleanProperty(v); },\n enumerable: true,\n configurable: true\n });\n /**\n * @return {?}\n */\n MatSortHeader.prototype.ngOnInit = /**\n * @return {?}\n */\n function () {\n if (!this.id && this._columnDef) {\n this.id = this._columnDef.name;\n }\n // Initialize the direction of the arrow and set the view state to be immediately that state.\n this._updateArrowDirection();\n this._setAnimationTransitionState({ toState: this._isSorted() ? 'active' : this._arrowDirection });\n this._sort.register(this);\n };\n /**\n * @return {?}\n */\n MatSortHeader.prototype.ngOnDestroy = /**\n * @return {?}\n */\n function () {\n this._sort.deregister(this);\n this._rerenderSubscription.unsubscribe();\n };\n /**\n * Sets the \"hint\" state such that the arrow will be semi-transparently displayed as a hint to the\n * user showing what the active sort will become. If set to false, the arrow will fade away.\n */\n /**\n * Sets the \"hint\" state such that the arrow will be semi-transparently displayed as a hint to the\n * user showing what the active sort will become. If set to false, the arrow will fade away.\n * @param {?} visible\n * @return {?}\n */\n MatSortHeader.prototype._setIndicatorHintVisible = /**\n * Sets the \"hint\" state such that the arrow will be semi-transparently displayed as a hint to the\n * user showing what the active sort will become. If set to false, the arrow will fade away.\n * @param {?} visible\n * @return {?}\n */\n function (visible) {\n // No-op if the sort header is disabled - should not make the hint visible.\n if (this._isDisabled() && visible) {\n return;\n }\n this._showIndicatorHint = visible;\n if (!this._isSorted()) {\n this._updateArrowDirection();\n if (this._showIndicatorHint) {\n this._setAnimationTransitionState({ fromState: this._arrowDirection, toState: 'hint' });\n }\n else {\n this._setAnimationTransitionState({ fromState: 'hint', toState: this._arrowDirection });\n }\n }\n };\n /**\n * Sets the animation transition view state for the arrow's position and opacity. If the\n * `disableViewStateAnimation` flag is set to true, the `fromState` will be ignored so that\n * no animation appears.\n */\n /**\n * Sets the animation transition view state for the arrow's position and opacity. If the\n * `disableViewStateAnimation` flag is set to true, the `fromState` will be ignored so that\n * no animation appears.\n * @param {?} viewState\n * @return {?}\n */\n MatSortHeader.prototype._setAnimationTransitionState = /**\n * Sets the animation transition view state for the arrow's position and opacity. If the\n * `disableViewStateAnimation` flag is set to true, the `fromState` will be ignored so that\n * no animation appears.\n * @param {?} viewState\n * @return {?}\n */\n function (viewState) {\n this._viewState = viewState;\n // If the animation for arrow position state (opacity/translation) should be disabled,\n // remove the fromState so that it jumps right to the toState.\n if (this._disableViewStateAnimation) {\n this._viewState = { toState: viewState.toState };\n }\n };\n /** Triggers the sort on this sort header and removes the indicator hint. */\n /**\n * Triggers the sort on this sort header and removes the indicator hint.\n * @return {?}\n */\n MatSortHeader.prototype._handleClick = /**\n * Triggers the sort on this sort header and removes the indicator hint.\n * @return {?}\n */\n function () {\n if (this._isDisabled()) {\n return;\n }\n this._sort.sort(this);\n // Do not show the animation if the header was already shown in the right position.\n if (this._viewState.toState === 'hint' || this._viewState.toState === 'active') {\n this._disableViewStateAnimation = true;\n }\n // If the arrow is now sorted, animate the arrow into place. Otherwise, animate it away into\n // the direction it is facing.\n /** @type {?} */\n var viewState = this._isSorted() ?\n { fromState: this._arrowDirection, toState: 'active' } :\n { fromState: 'active', toState: this._arrowDirection };\n this._setAnimationTransitionState(viewState);\n this._showIndicatorHint = false;\n };\n /** Whether this MatSortHeader is currently sorted in either ascending or descending order. */\n /**\n * Whether this MatSortHeader is currently sorted in either ascending or descending order.\n * @return {?}\n */\n MatSortHeader.prototype._isSorted = /**\n * Whether this MatSortHeader is currently sorted in either ascending or descending order.\n * @return {?}\n */\n function () {\n return this._sort.active == this.id &&\n (this._sort.direction === 'asc' || this._sort.direction === 'desc');\n };\n /** Returns the animation state for the arrow direction (indicator and pointers). */\n /**\n * Returns the animation state for the arrow direction (indicator and pointers).\n * @return {?}\n */\n MatSortHeader.prototype._getArrowDirectionState = /**\n * Returns the animation state for the arrow direction (indicator and pointers).\n * @return {?}\n */\n function () {\n return \"\" + (this._isSorted() ? 'active-' : '') + this._arrowDirection;\n };\n /** Returns the arrow position state (opacity, translation). */\n /**\n * Returns the arrow position state (opacity, translation).\n * @return {?}\n */\n MatSortHeader.prototype._getArrowViewState = /**\n * Returns the arrow position state (opacity, translation).\n * @return {?}\n */\n function () {\n /** @type {?} */\n var fromState = this._viewState.fromState;\n return (fromState ? fromState + \"-to-\" : '') + this._viewState.toState;\n };\n /**\n * Updates the direction the arrow should be pointing. If it is not sorted, the arrow should be\n * facing the start direction. Otherwise if it is sorted, the arrow should point in the currently\n * active sorted direction. The reason this is updated through a function is because the direction\n * should only be changed at specific times - when deactivated but the hint is displayed and when\n * the sort is active and the direction changes. Otherwise the arrow's direction should linger\n * in cases such as the sort becoming deactivated but we want to animate the arrow away while\n * preserving its direction, even though the next sort direction is actually different and should\n * only be changed once the arrow displays again (hint or activation).\n */\n /**\n * Updates the direction the arrow should be pointing. If it is not sorted, the arrow should be\n * facing the start direction. Otherwise if it is sorted, the arrow should point in the currently\n * active sorted direction. The reason this is updated through a function is because the direction\n * should only be changed at specific times - when deactivated but the hint is displayed and when\n * the sort is active and the direction changes. Otherwise the arrow's direction should linger\n * in cases such as the sort becoming deactivated but we want to animate the arrow away while\n * preserving its direction, even though the next sort direction is actually different and should\n * only be changed once the arrow displays again (hint or activation).\n * @return {?}\n */\n MatSortHeader.prototype._updateArrowDirection = /**\n * Updates the direction the arrow should be pointing. If it is not sorted, the arrow should be\n * facing the start direction. Otherwise if it is sorted, the arrow should point in the currently\n * active sorted direction. The reason this is updated through a function is because the direction\n * should only be changed at specific times - when deactivated but the hint is displayed and when\n * the sort is active and the direction changes. Otherwise the arrow's direction should linger\n * in cases such as the sort becoming deactivated but we want to animate the arrow away while\n * preserving its direction, even though the next sort direction is actually different and should\n * only be changed once the arrow displays again (hint or activation).\n * @return {?}\n */\n function () {\n this._arrowDirection = this._isSorted() ?\n this._sort.direction :\n (this.start || this._sort.start);\n };\n /**\n * @return {?}\n */\n MatSortHeader.prototype._isDisabled = /**\n * @return {?}\n */\n function () {\n return this._sort.disabled || this.disabled;\n };\n /**\n * Gets the aria-sort attribute that should be applied to this sort header. If this header\n * is not sorted, returns null so that the attribute is removed from the host element. Aria spec\n * says that the aria-sort property should only be present on one header at a time, so removing\n * ensures this is true.\n */\n /**\n * Gets the aria-sort attribute that should be applied to this sort header. If this header\n * is not sorted, returns null so that the attribute is removed from the host element. Aria spec\n * says that the aria-sort property should only be present on one header at a time, so removing\n * ensures this is true.\n * @return {?}\n */\n MatSortHeader.prototype._getAriaSortAttribute = /**\n * Gets the aria-sort attribute that should be applied to this sort header. If this header\n * is not sorted, returns null so that the attribute is removed from the host element. Aria spec\n * says that the aria-sort property should only be present on one header at a time, so removing\n * ensures this is true.\n * @return {?}\n */\n function () {\n if (!this._isSorted()) {\n return null;\n }\n return this._sort.direction == 'asc' ? 'ascending' : 'descending';\n };\n /** Whether the arrow inside the sort header should be rendered. */\n /**\n * Whether the arrow inside the sort header should be rendered.\n * @return {?}\n */\n MatSortHeader.prototype._renderArrow = /**\n * Whether the arrow inside the sort header should be rendered.\n * @return {?}\n */\n function () {\n return !this._isDisabled() || this._isSorted();\n };\n MatSortHeader.decorators = [\n { type: Component, args: [{selector: '[mat-sort-header]',\n exportAs: 'matSortHeader',\n template: \"
\",\n styles: [\".mat-sort-header-container{display:flex;cursor:pointer;align-items:center}.mat-sort-header-disabled .mat-sort-header-container{cursor:default}.mat-sort-header-position-before{flex-direction:row-reverse}.mat-sort-header-button{border:none;background:0 0;display:flex;align-items:center;padding:0;cursor:inherit;outline:0;font:inherit;color:currentColor}.mat-sort-header-button::-moz-focus-inner{border:0}.mat-sort-header-arrow{height:12px;width:12px;min-width:12px;position:relative;display:flex;opacity:0}.mat-sort-header-arrow,[dir=rtl] .mat-sort-header-position-before .mat-sort-header-arrow{margin:0 0 0 6px}.mat-sort-header-position-before .mat-sort-header-arrow,[dir=rtl] .mat-sort-header-arrow{margin:0 6px 0 0}.mat-sort-header-stem{background:currentColor;height:10px;width:2px;margin:auto;display:flex;align-items:center}@media (-ms-high-contrast:active){.mat-sort-header-stem{width:0;border-left:solid 2px}}.mat-sort-header-indicator{width:100%;height:2px;display:flex;align-items:center;position:absolute;top:0;left:0}.mat-sort-header-pointer-middle{margin:auto;height:2px;width:2px;background:currentColor;transform:rotate(45deg)}@media (-ms-high-contrast:active){.mat-sort-header-pointer-middle{width:0;height:0;border-top:solid 2px;border-left:solid 2px}}.mat-sort-header-pointer-left,.mat-sort-header-pointer-right{background:currentColor;width:6px;height:2px;position:absolute;top:0}@media (-ms-high-contrast:active){.mat-sort-header-pointer-left,.mat-sort-header-pointer-right{width:0;height:0;border-left:solid 6px;border-top:solid 2px}}.mat-sort-header-pointer-left{transform-origin:right;left:0}.mat-sort-header-pointer-right{transform-origin:left;right:0}\"],\n host: {\n '(click)': '_handleClick()',\n '(mouseenter)': '_setIndicatorHintVisible(true)',\n '(mouseleave)': '_setIndicatorHintVisible(false)',\n '[attr.aria-sort]': '_getAriaSortAttribute()',\n '[class.mat-sort-header-disabled]': '_isDisabled()',\n },\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n inputs: ['disabled'],\n animations: [\n matSortAnimations.indicator,\n matSortAnimations.leftPointer,\n matSortAnimations.rightPointer,\n matSortAnimations.arrowOpacity,\n matSortAnimations.arrowPosition,\n matSortAnimations.allowChildren,\n ]\n },] },\n ];\n /** @nocollapse */\n MatSortHeader.ctorParameters = function () { return [\n { type: MatSortHeaderIntl },\n { type: ChangeDetectorRef },\n { type: MatSort, decorators: [{ type: Optional }] },\n { type: undefined, decorators: [{ type: Inject, args: ['MAT_SORT_HEADER_COLUMN_DEF',] }, { type: Optional }] }\n ]; };\n MatSortHeader.propDecorators = {\n id: [{ type: Input, args: ['mat-sort-header',] }],\n arrowPosition: [{ type: Input }],\n start: [{ type: Input }],\n disableClear: [{ type: Input }]\n };\n return MatSortHeader;\n}(_MatSortHeaderMixinBase));\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\nvar MatSortModule = /** @class */ (function () {\n function MatSortModule() {\n }\n MatSortModule.decorators = [\n { type: NgModule, args: [{\n imports: [CommonModule],\n exports: [MatSort, MatSortHeader],\n declarations: [MatSort, MatSortHeader],\n providers: [MAT_SORT_HEADER_INTL_PROVIDER]\n },] },\n ];\n return MatSortModule;\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\nexport { MatSortModule, MatSortHeader, MAT_SORT_HEADER_INTL_PROVIDER_FACTORY, MatSortHeaderIntl, MAT_SORT_HEADER_INTL_PROVIDER, MatSort, matSortAnimations };\n//# sourceMappingURL=sort.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, Injectable, Optional, SkipSelf, NgModule, ChangeDetectionStrategy, ChangeDetectorRef, Component, ElementRef, Input, ViewEncapsulation, ContentChild, ContentChildren, EventEmitter, forwardRef, Inject, Output, ViewChildren, TemplateRef, ɵɵdefineInjectable } from '@angular/core';\nimport { CdkStepLabel, CdkStepHeader, CdkStep, CdkStepper, STEPPER_GLOBAL_OPTIONS, CdkStepperNext, CdkStepperPrevious, CdkStepperModule } from '@angular/cdk/stepper';\nimport { Subject } from 'rxjs';\nimport { FocusMonitor } from '@angular/cdk/a11y';\nimport { animate, state, style, transition, trigger } from '@angular/animations';\nimport { Directionality } from '@angular/cdk/bidi';\nimport { DOCUMENT, CommonModule } from '@angular/common';\nimport { ErrorStateMatcher, MatCommonModule, MatRippleModule } from '@angular/material/core';\nimport { takeUntil, distinctUntilChanged } from 'rxjs/operators';\nimport { PortalModule } from '@angular/cdk/portal';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatIconModule } from '@angular/material/icon';\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\nvar MatStepLabel = /** @class */ (function (_super) {\n __extends(MatStepLabel, _super);\n function MatStepLabel() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n MatStepLabel.decorators = [\n { type: Directive, args: [{\n selector: '[matStepLabel]',\n },] },\n ];\n return MatStepLabel;\n}(CdkStepLabel));\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n/**\n * Stepper data that is required for internationalization.\n */\nvar MatStepperIntl = /** @class */ (function () {\n function MatStepperIntl() {\n /**\n * Stream that emits whenever the labels here are changed. Use this to notify\n * components if the labels have changed after initialization.\n */\n this.changes = new Subject();\n /**\n * Label that is rendered below optional steps.\n */\n this.optionalLabel = 'Optional';\n }\n MatStepperIntl.decorators = [\n { type: Injectable, args: [{ providedIn: 'root' },] },\n ];\n /** @nocollapse */ MatStepperIntl.ngInjectableDef = ɵɵdefineInjectable({ factory: function MatStepperIntl_Factory() { return new MatStepperIntl(); }, token: MatStepperIntl, providedIn: \"root\" });\n return MatStepperIntl;\n}());\n/**\n * \\@docs-private\n * @param {?} parentIntl\n * @return {?}\n */\nfunction MAT_STEPPER_INTL_PROVIDER_FACTORY(parentIntl) {\n return parentIntl || new MatStepperIntl();\n}\n/**\n * \\@docs-private\n * @type {?}\n */\nvar MAT_STEPPER_INTL_PROVIDER = {\n provide: MatStepperIntl,\n deps: [[new Optional(), new SkipSelf(), MatStepperIntl]],\n useFactory: MAT_STEPPER_INTL_PROVIDER_FACTORY\n};\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\nvar MatStepHeader = /** @class */ (function (_super) {\n __extends(MatStepHeader, _super);\n function MatStepHeader(_intl, _focusMonitor, _elementRef, changeDetectorRef) {\n var _this = _super.call(this, _elementRef) || this;\n _this._intl = _intl;\n _this._focusMonitor = _focusMonitor;\n _focusMonitor.monitor(_elementRef, true);\n _this._intlSubscription = _intl.changes.subscribe((/**\n * @return {?}\n */\n function () { return changeDetectorRef.markForCheck(); }));\n return _this;\n }\n /**\n * @return {?}\n */\n MatStepHeader.prototype.ngOnDestroy = /**\n * @return {?}\n */\n function () {\n this._intlSubscription.unsubscribe();\n this._focusMonitor.stopMonitoring(this._elementRef);\n };\n /** Focuses the step header. */\n /**\n * Focuses the step header.\n * @return {?}\n */\n MatStepHeader.prototype.focus = /**\n * Focuses the step header.\n * @return {?}\n */\n function () {\n this._focusMonitor.focusVia(this._elementRef, 'program');\n };\n /** Returns string label of given step if it is a text label. */\n /**\n * Returns string label of given step if it is a text label.\n * @return {?}\n */\n MatStepHeader.prototype._stringLabel = /**\n * Returns string label of given step if it is a text label.\n * @return {?}\n */\n function () {\n return this.label instanceof MatStepLabel ? null : this.label;\n };\n /** Returns MatStepLabel if the label of given step is a template label. */\n /**\n * Returns MatStepLabel if the label of given step is a template label.\n * @return {?}\n */\n MatStepHeader.prototype._templateLabel = /**\n * Returns MatStepLabel if the label of given step is a template label.\n * @return {?}\n */\n function () {\n return this.label instanceof MatStepLabel ? this.label : null;\n };\n /** Returns the host HTML element. */\n /**\n * Returns the host HTML element.\n * @return {?}\n */\n MatStepHeader.prototype._getHostElement = /**\n * Returns the host HTML element.\n * @return {?}\n */\n function () {\n return this._elementRef.nativeElement;\n };\n /** Template context variables that are exposed to the `matStepperIcon` instances. */\n /**\n * Template context variables that are exposed to the `matStepperIcon` instances.\n * @return {?}\n */\n MatStepHeader.prototype._getIconContext = /**\n * Template context variables that are exposed to the `matStepperIcon` instances.\n * @return {?}\n */\n function () {\n return {\n index: this.index,\n active: this.active,\n optional: this.optional\n };\n };\n /**\n * @param {?} state\n * @return {?}\n */\n MatStepHeader.prototype._getDefaultTextForState = /**\n * @param {?} state\n * @return {?}\n */\n function (state$$1) {\n if (state$$1 == 'number') {\n return \"\" + (this.index + 1);\n }\n if (state$$1 == 'edit') {\n return 'create';\n }\n if (state$$1 == 'error') {\n return 'warning';\n }\n return state$$1;\n };\n MatStepHeader.decorators = [\n { type: Component, args: [{selector: 'mat-step-header',\n template: \"
{{_getDefaultTextForState(state)}}{{_getDefaultTextForState(state)}}
{{label}}
{{_intl.optionalLabel}}
{{errorMessage}}
\",\n styles: [\".mat-step-header{overflow:hidden;outline:0;cursor:pointer;position:relative;box-sizing:content-box;-webkit-tap-highlight-color:transparent}.mat-step-optional,.mat-step-sub-label-error{font-size:12px}.mat-step-icon{border-radius:50%;height:24px;width:24px;flex-shrink:0;position:relative}.mat-step-icon .mat-icon,.mat-step-icon-content{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.mat-step-icon .mat-icon{font-size:16px;height:16px;width:16px}.mat-step-icon-state-error .mat-icon{font-size:24px;height:24px;width:24px}.mat-step-label{display:inline-block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:50px;vertical-align:middle}.mat-step-text-label{text-overflow:ellipsis;overflow:hidden}.mat-step-header .mat-step-header-ripple{top:0;left:0;right:0;bottom:0;position:absolute;pointer-events:none}\"],\n host: {\n 'class': 'mat-step-header',\n 'role': 'tab',\n },\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n },] },\n ];\n /** @nocollapse */\n MatStepHeader.ctorParameters = function () { return [\n { type: MatStepperIntl },\n { type: FocusMonitor },\n { type: ElementRef },\n { type: ChangeDetectorRef }\n ]; };\n MatStepHeader.propDecorators = {\n state: [{ type: Input }],\n label: [{ type: Input }],\n errorMessage: [{ type: Input }],\n iconOverrides: [{ type: Input }],\n index: [{ type: Input }],\n selected: [{ type: Input }],\n active: [{ type: Input }],\n optional: [{ type: Input }],\n disableRipple: [{ type: Input }]\n };\n return MatStepHeader;\n}(CdkStepHeader));\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n/**\n * Animations used by the Material steppers.\n * \\@docs-private\n * @type {?}\n */\nvar matStepperAnimations = {\n /**\n * Animation that transitions the step along the X axis in a horizontal stepper.\n */\n horizontalStepTransition: trigger('stepTransition', [\n state('previous', style({ transform: 'translate3d(-100%, 0, 0)', visibility: 'hidden' })),\n state('current', style({ transform: 'none', visibility: 'visible' })),\n state('next', style({ transform: 'translate3d(100%, 0, 0)', visibility: 'hidden' })),\n transition('* => *', animate('500ms cubic-bezier(0.35, 0, 0.25, 1)'))\n ]),\n /**\n * Animation that transitions the step along the Y axis in a vertical stepper.\n */\n verticalStepTransition: trigger('stepTransition', [\n state('previous', style({ height: '0px', visibility: 'hidden' })),\n state('next', style({ height: '0px', visibility: 'hidden' })),\n state('current', style({ height: '*', visibility: 'visible' })),\n transition('* <=> current', animate('225ms cubic-bezier(0.4, 0.0, 0.2, 1)'))\n ])\n};\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n/**\n * Template to be used to override the icons inside the step header.\n */\nvar MatStepperIcon = /** @class */ (function () {\n function MatStepperIcon(templateRef) {\n this.templateRef = templateRef;\n }\n MatStepperIcon.decorators = [\n { type: Directive, args: [{\n selector: 'ng-template[matStepperIcon]',\n },] },\n ];\n /** @nocollapse */\n MatStepperIcon.ctorParameters = function () { return [\n { type: TemplateRef }\n ]; };\n MatStepperIcon.propDecorators = {\n name: [{ type: Input, args: ['matStepperIcon',] }]\n };\n return MatStepperIcon;\n}());\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\nvar MatStep = /** @class */ (function (_super) {\n __extends(MatStep, _super);\n /** @breaking-change 8.0.0 remove the `?` after `stepperOptions` */\n function MatStep(stepper, _errorStateMatcher, stepperOptions) {\n var _this = _super.call(this, stepper, stepperOptions) || this;\n _this._errorStateMatcher = _errorStateMatcher;\n return _this;\n }\n /** Custom error state matcher that additionally checks for validity of interacted form. */\n /**\n * Custom error state matcher that additionally checks for validity of interacted form.\n * @param {?} control\n * @param {?} form\n * @return {?}\n */\n MatStep.prototype.isErrorState = /**\n * Custom error state matcher that additionally checks for validity of interacted form.\n * @param {?} control\n * @param {?} form\n * @return {?}\n */\n function (control, form) {\n /** @type {?} */\n var originalErrorState = this._errorStateMatcher.isErrorState(control, form);\n // Custom error state checks for the validity of form that is not submitted or touched\n // since user can trigger a form change by calling for another step without directly\n // interacting with the current form.\n /** @type {?} */\n var customErrorState = !!(control && control.invalid && this.interacted);\n return originalErrorState || customErrorState;\n };\n MatStep.decorators = [\n { type: Component, args: [{selector: 'mat-step',\n template: \"\",\n providers: [{ provide: ErrorStateMatcher, useExisting: MatStep }],\n encapsulation: ViewEncapsulation.None,\n exportAs: 'matStep',\n changeDetection: ChangeDetectionStrategy.OnPush,\n },] },\n ];\n /** @nocollapse */\n MatStep.ctorParameters = function () { return [\n { type: MatStepper, decorators: [{ type: Inject, args: [forwardRef((/**\n * @return {?}\n */\n function () { return MatStepper; })),] }] },\n { type: ErrorStateMatcher, decorators: [{ type: SkipSelf }] },\n { type: undefined, decorators: [{ type: Optional }, { type: Inject, args: [STEPPER_GLOBAL_OPTIONS,] }] }\n ]; };\n MatStep.propDecorators = {\n stepLabel: [{ type: ContentChild, args: [MatStepLabel, { static: false },] }]\n };\n return MatStep;\n}(CdkStep));\nvar MatStepper = /** @class */ (function (_super) {\n __extends(MatStepper, _super);\n function MatStepper() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n /**\n * Event emitted when the current step is done transitioning in.\n */\n _this.animationDone = new EventEmitter();\n /**\n * Consumer-specified template-refs to be used to override the header icons.\n */\n _this._iconOverrides = {};\n /**\n * Stream of animation `done` events when the body expands/collapses.\n */\n _this._animationDone = new Subject();\n return _this;\n }\n /**\n * @return {?}\n */\n MatStepper.prototype.ngAfterContentInit = /**\n * @return {?}\n */\n function () {\n var _this = this;\n this._icons.forEach((/**\n * @param {?} __0\n * @return {?}\n */\n function (_a) {\n var name = _a.name, templateRef = _a.templateRef;\n return _this._iconOverrides[name] = templateRef;\n }));\n // Mark the component for change detection whenever the content children query changes\n this._steps.changes.pipe(takeUntil(this._destroyed)).subscribe((/**\n * @return {?}\n */\n function () { return _this._stateChanged(); }));\n this._animationDone.pipe(\n // This needs a `distinctUntilChanged` in order to avoid emitting the same event twice due\n // to a bug in animations where the `.done` callback gets invoked twice on some browsers.\n // See https://github.com/angular/angular/issues/24084\n distinctUntilChanged((/**\n * @param {?} x\n * @param {?} y\n * @return {?}\n */\n function (x, y) { return x.fromState === y.fromState && x.toState === y.toState; })), takeUntil(this._destroyed)).subscribe((/**\n * @param {?} event\n * @return {?}\n */\n function (event) {\n if (((/** @type {?} */ (event.toState))) === 'current') {\n _this.animationDone.emit();\n }\n }));\n };\n MatStepper.decorators = [\n { type: Directive, args: [{ selector: '[matStepper]', providers: [{ provide: CdkStepper, useExisting: MatStepper }] },] },\n ];\n MatStepper.propDecorators = {\n _stepHeader: [{ type: ViewChildren, args: [MatStepHeader,] }],\n _steps: [{ type: ContentChildren, args: [MatStep,] }],\n _icons: [{ type: ContentChildren, args: [MatStepperIcon,] }],\n animationDone: [{ type: Output }],\n disableRipple: [{ type: Input }]\n };\n return MatStepper;\n}(CdkStepper));\nvar MatHorizontalStepper = /** @class */ (function (_super) {\n __extends(MatHorizontalStepper, _super);\n function MatHorizontalStepper() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n /**\n * Whether the label should display in bottom or end position.\n */\n _this.labelPosition = 'end';\n return _this;\n }\n MatHorizontalStepper.decorators = [\n { type: Component, args: [{selector: 'mat-horizontal-stepper',\n exportAs: 'matHorizontalStepper',\n template: \"
\",\n styles: [\".mat-stepper-horizontal,.mat-stepper-vertical{display:block}.mat-horizontal-stepper-header-container{white-space:nowrap;display:flex;align-items:center}.mat-stepper-label-position-bottom .mat-horizontal-stepper-header-container{align-items:flex-start}.mat-stepper-horizontal-line{border-top-width:1px;border-top-style:solid;flex:auto;height:0;margin:0 -16px;min-width:32px}.mat-stepper-label-position-bottom .mat-stepper-horizontal-line{margin:0;min-width:0;position:relative;top:36px}.mat-stepper-label-position-bottom .mat-horizontal-stepper-header:not(:first-child)::before,.mat-stepper-label-position-bottom .mat-horizontal-stepper-header:not(:last-child)::after,[dir=rtl] .mat-stepper-label-position-bottom .mat-horizontal-stepper-header:not(:first-child)::after,[dir=rtl] .mat-stepper-label-position-bottom .mat-horizontal-stepper-header:not(:last-child)::before{border-top-width:1px;border-top-style:solid;content:'';display:inline-block;height:0;position:absolute;top:36px;width:calc(50% - 20px)}.mat-horizontal-stepper-header{display:flex;height:72px;overflow:hidden;align-items:center;padding:0 24px}.mat-horizontal-stepper-header .mat-step-icon{margin-right:8px;flex:none}[dir=rtl] .mat-horizontal-stepper-header .mat-step-icon{margin-right:0;margin-left:8px}.mat-stepper-label-position-bottom .mat-horizontal-stepper-header{box-sizing:border-box;flex-direction:column;height:auto;padding:24px}.mat-stepper-label-position-bottom .mat-horizontal-stepper-header:not(:last-child)::after,[dir=rtl] .mat-stepper-label-position-bottom .mat-horizontal-stepper-header:not(:first-child)::after{right:0}.mat-stepper-label-position-bottom .mat-horizontal-stepper-header:not(:first-child)::before,[dir=rtl] .mat-stepper-label-position-bottom .mat-horizontal-stepper-header:not(:last-child)::before{left:0}[dir=rtl] .mat-stepper-label-position-bottom .mat-horizontal-stepper-header:first-child::after,[dir=rtl] .mat-stepper-label-position-bottom .mat-horizontal-stepper-header:last-child::before{display:none}.mat-stepper-label-position-bottom .mat-horizontal-stepper-header .mat-step-icon{margin-right:0;margin-left:0}.mat-stepper-label-position-bottom .mat-horizontal-stepper-header .mat-step-label{padding:16px 0 0 0;text-align:center;width:100%}.mat-vertical-stepper-header{display:flex;align-items:center;padding:24px;height:24px}.mat-vertical-stepper-header .mat-step-icon{margin-right:12px}[dir=rtl] .mat-vertical-stepper-header .mat-step-icon{margin-right:0;margin-left:12px}.mat-horizontal-stepper-content{outline:0}.mat-horizontal-stepper-content[aria-expanded=false]{height:0;overflow:hidden}.mat-horizontal-content-container{overflow:hidden;padding:0 24px 24px 24px}.mat-vertical-content-container{margin-left:36px;border:0;position:relative}[dir=rtl] .mat-vertical-content-container{margin-left:0;margin-right:36px}.mat-stepper-vertical-line::before{content:'';position:absolute;top:-16px;bottom:-16px;left:0;border-left-width:1px;border-left-style:solid}[dir=rtl] .mat-stepper-vertical-line::before{left:auto;right:0}.mat-vertical-stepper-content{overflow:hidden;outline:0}.mat-vertical-content{padding:0 24px 24px 24px}.mat-step:last-child .mat-vertical-content-container{border:none}\"],\n inputs: ['selectedIndex'],\n host: {\n 'class': 'mat-stepper-horizontal',\n '[class.mat-stepper-label-position-end]': 'labelPosition == \"end\"',\n '[class.mat-stepper-label-position-bottom]': 'labelPosition == \"bottom\"',\n 'aria-orientation': 'horizontal',\n 'role': 'tablist',\n },\n animations: [matStepperAnimations.horizontalStepTransition],\n providers: [\n { provide: MatStepper, useExisting: MatHorizontalStepper },\n { provide: CdkStepper, useExisting: MatHorizontalStepper }\n ],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n },] },\n ];\n MatHorizontalStepper.propDecorators = {\n labelPosition: [{ type: Input }]\n };\n return MatHorizontalStepper;\n}(MatStepper));\nvar MatVerticalStepper = /** @class */ (function (_super) {\n __extends(MatVerticalStepper, _super);\n function MatVerticalStepper(dir, changeDetectorRef, \n // @breaking-change 8.0.0 `elementRef` and `_document` parameters to become required.\n elementRef, _document) {\n var _this = _super.call(this, dir, changeDetectorRef, elementRef, _document) || this;\n _this._orientation = 'vertical';\n return _this;\n }\n MatVerticalStepper.decorators = [\n { type: Component, args: [{selector: 'mat-vertical-stepper',\n exportAs: 'matVerticalStepper',\n template: \"
\",\n styles: [\".mat-stepper-horizontal,.mat-stepper-vertical{display:block}.mat-horizontal-stepper-header-container{white-space:nowrap;display:flex;align-items:center}.mat-stepper-label-position-bottom .mat-horizontal-stepper-header-container{align-items:flex-start}.mat-stepper-horizontal-line{border-top-width:1px;border-top-style:solid;flex:auto;height:0;margin:0 -16px;min-width:32px}.mat-stepper-label-position-bottom .mat-stepper-horizontal-line{margin:0;min-width:0;position:relative;top:36px}.mat-stepper-label-position-bottom .mat-horizontal-stepper-header:not(:first-child)::before,.mat-stepper-label-position-bottom .mat-horizontal-stepper-header:not(:last-child)::after,[dir=rtl] .mat-stepper-label-position-bottom .mat-horizontal-stepper-header:not(:first-child)::after,[dir=rtl] .mat-stepper-label-position-bottom .mat-horizontal-stepper-header:not(:last-child)::before{border-top-width:1px;border-top-style:solid;content:'';display:inline-block;height:0;position:absolute;top:36px;width:calc(50% - 20px)}.mat-horizontal-stepper-header{display:flex;height:72px;overflow:hidden;align-items:center;padding:0 24px}.mat-horizontal-stepper-header .mat-step-icon{margin-right:8px;flex:none}[dir=rtl] .mat-horizontal-stepper-header .mat-step-icon{margin-right:0;margin-left:8px}.mat-stepper-label-position-bottom .mat-horizontal-stepper-header{box-sizing:border-box;flex-direction:column;height:auto;padding:24px}.mat-stepper-label-position-bottom .mat-horizontal-stepper-header:not(:last-child)::after,[dir=rtl] .mat-stepper-label-position-bottom .mat-horizontal-stepper-header:not(:first-child)::after{right:0}.mat-stepper-label-position-bottom .mat-horizontal-stepper-header:not(:first-child)::before,[dir=rtl] .mat-stepper-label-position-bottom .mat-horizontal-stepper-header:not(:last-child)::before{left:0}[dir=rtl] .mat-stepper-label-position-bottom .mat-horizontal-stepper-header:first-child::after,[dir=rtl] .mat-stepper-label-position-bottom .mat-horizontal-stepper-header:last-child::before{display:none}.mat-stepper-label-position-bottom .mat-horizontal-stepper-header .mat-step-icon{margin-right:0;margin-left:0}.mat-stepper-label-position-bottom .mat-horizontal-stepper-header .mat-step-label{padding:16px 0 0 0;text-align:center;width:100%}.mat-vertical-stepper-header{display:flex;align-items:center;padding:24px;height:24px}.mat-vertical-stepper-header .mat-step-icon{margin-right:12px}[dir=rtl] .mat-vertical-stepper-header .mat-step-icon{margin-right:0;margin-left:12px}.mat-horizontal-stepper-content{outline:0}.mat-horizontal-stepper-content[aria-expanded=false]{height:0;overflow:hidden}.mat-horizontal-content-container{overflow:hidden;padding:0 24px 24px 24px}.mat-vertical-content-container{margin-left:36px;border:0;position:relative}[dir=rtl] .mat-vertical-content-container{margin-left:0;margin-right:36px}.mat-stepper-vertical-line::before{content:'';position:absolute;top:-16px;bottom:-16px;left:0;border-left-width:1px;border-left-style:solid}[dir=rtl] .mat-stepper-vertical-line::before{left:auto;right:0}.mat-vertical-stepper-content{overflow:hidden;outline:0}.mat-vertical-content{padding:0 24px 24px 24px}.mat-step:last-child .mat-vertical-content-container{border:none}\"],\n inputs: ['selectedIndex'],\n host: {\n 'class': 'mat-stepper-vertical',\n 'aria-orientation': 'vertical',\n 'role': 'tablist',\n },\n animations: [matStepperAnimations.verticalStepTransition],\n providers: [\n { provide: MatStepper, useExisting: MatVerticalStepper },\n { provide: CdkStepper, useExisting: MatVerticalStepper }\n ],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n },] },\n ];\n /** @nocollapse */\n MatVerticalStepper.ctorParameters = function () { return [\n { type: Directionality, decorators: [{ type: Optional }] },\n { type: ChangeDetectorRef },\n { type: ElementRef },\n { type: undefined, decorators: [{ type: Inject, args: [DOCUMENT,] }] }\n ]; };\n return MatVerticalStepper;\n}(MatStepper));\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n/**\n * Button that moves to the next step in a stepper workflow.\n */\nvar MatStepperNext = /** @class */ (function (_super) {\n __extends(MatStepperNext, _super);\n function MatStepperNext() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n MatStepperNext.decorators = [\n { type: Directive, args: [{\n selector: 'button[matStepperNext]',\n host: {\n '[type]': 'type',\n },\n inputs: ['type']\n },] },\n ];\n return MatStepperNext;\n}(CdkStepperNext));\n/**\n * Button that moves to the previous step in a stepper workflow.\n */\nvar MatStepperPrevious = /** @class */ (function (_super) {\n __extends(MatStepperPrevious, _super);\n function MatStepperPrevious() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n MatStepperPrevious.decorators = [\n { type: Directive, args: [{\n selector: 'button[matStepperPrevious]',\n host: {\n '[type]': 'type',\n },\n inputs: ['type']\n },] },\n ];\n return MatStepperPrevious;\n}(CdkStepperPrevious));\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\nvar MatStepperModule = /** @class */ (function () {\n function MatStepperModule() {\n }\n MatStepperModule.decorators = [\n { type: NgModule, args: [{\n imports: [\n MatCommonModule,\n CommonModule,\n PortalModule,\n MatButtonModule,\n CdkStepperModule,\n MatIconModule,\n MatRippleModule,\n ],\n exports: [\n MatCommonModule,\n MatHorizontalStepper,\n MatVerticalStepper,\n MatStep,\n MatStepLabel,\n MatStepper,\n MatStepperNext,\n MatStepperPrevious,\n MatStepHeader,\n MatStepperIcon,\n ],\n declarations: [\n MatHorizontalStepper,\n MatVerticalStepper,\n MatStep,\n MatStepLabel,\n MatStepper,\n MatStepperNext,\n MatStepperPrevious,\n MatStepHeader,\n MatStepperIcon,\n ],\n providers: [MAT_STEPPER_INTL_PROVIDER, ErrorStateMatcher],\n },] },\n ];\n return MatStepperModule;\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 { MatStepperModule, MatStepLabel, MatStep, MatStepper, MatHorizontalStepper, MatVerticalStepper, MatStepperNext, MatStepperPrevious, MatStepHeader, MAT_STEPPER_INTL_PROVIDER_FACTORY, MatStepperIntl, MAT_STEPPER_INTL_PROVIDER, matStepperAnimations, MatStepperIcon };\n//# sourceMappingURL=stepper.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 { CDK_TABLE_TEMPLATE, CdkTable, CdkCell, CdkCellDef, CdkColumnDef, CdkFooterCell, CdkFooterCellDef, CdkHeaderCell, CdkHeaderCellDef, CDK_ROW_TEMPLATE, CdkFooterRow, CdkFooterRowDef, CdkHeaderRow, CdkHeaderRowDef, CdkRow, CdkRowDef, CdkTextColumn, CdkTableModule, DataSource } from '@angular/cdk/table';\nimport { ChangeDetectionStrategy, Component, ViewEncapsulation, Directive, ElementRef, Input, NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { MatCommonModule } from '@angular/material/core';\nimport { _isNumberValue } from '@angular/cdk/coercion';\nimport { BehaviorSubject, combineLatest, merge, of, Subscription, Subject } from 'rxjs';\nimport { map } from 'rxjs/operators';\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n/**\n * Wrapper for the CdkTable with Material design styles.\n * @template T\n */\nvar MatTable = /** @class */ (function (_super) {\n __extends(MatTable, _super);\n function MatTable() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n /**\n * Overrides the sticky CSS class set by the `CdkTable`.\n */\n _this.stickyCssClass = 'mat-table-sticky';\n return _this;\n }\n MatTable.decorators = [\n { type: Component, args: [{selector: 'mat-table, table[mat-table]',\n exportAs: 'matTable',\n template: CDK_TABLE_TEMPLATE,\n styles: [\"mat-table{display:block}mat-header-row{min-height:56px}mat-footer-row,mat-row{min-height:48px}mat-footer-row,mat-header-row,mat-row{display:flex;border-width:0;border-bottom-width:1px;border-style:solid;align-items:center;box-sizing:border-box}mat-footer-row::after,mat-header-row::after,mat-row::after{display:inline-block;min-height:inherit;content:''}mat-cell:first-of-type,mat-footer-cell:first-of-type,mat-header-cell:first-of-type{padding-left:24px}[dir=rtl] mat-cell:first-of-type,[dir=rtl] mat-footer-cell:first-of-type,[dir=rtl] mat-header-cell:first-of-type{padding-left:0;padding-right:24px}mat-cell:last-of-type,mat-footer-cell:last-of-type,mat-header-cell:last-of-type{padding-right:24px}[dir=rtl] mat-cell:last-of-type,[dir=rtl] mat-footer-cell:last-of-type,[dir=rtl] mat-header-cell:last-of-type{padding-right:0;padding-left:24px}mat-cell,mat-footer-cell,mat-header-cell{flex:1;display:flex;align-items:center;overflow:hidden;word-wrap:break-word;min-height:inherit}table.mat-table{border-spacing:0}tr.mat-header-row{height:56px}tr.mat-footer-row,tr.mat-row{height:48px}th.mat-header-cell{text-align:left}[dir=rtl] th.mat-header-cell{text-align:right}td.mat-cell,td.mat-footer-cell,th.mat-header-cell{padding:0;border-bottom-width:1px;border-bottom-style:solid}td.mat-cell:first-of-type,td.mat-footer-cell:first-of-type,th.mat-header-cell:first-of-type{padding-left:24px}[dir=rtl] td.mat-cell:first-of-type,[dir=rtl] td.mat-footer-cell:first-of-type,[dir=rtl] th.mat-header-cell:first-of-type{padding-left:0;padding-right:24px}td.mat-cell:last-of-type,td.mat-footer-cell:last-of-type,th.mat-header-cell:last-of-type{padding-right:24px}[dir=rtl] td.mat-cell:last-of-type,[dir=rtl] td.mat-footer-cell:last-of-type,[dir=rtl] th.mat-header-cell:last-of-type{padding-right:0;padding-left:24px}\"],\n host: {\n 'class': 'mat-table',\n },\n providers: [{ provide: CdkTable, useExisting: MatTable }],\n encapsulation: ViewEncapsulation.None,\n // See note on CdkTable for explanation on why this uses the default change detection strategy.\n // tslint:disable-next-line:validate-decorators\n changeDetection: ChangeDetectionStrategy.Default,\n },] },\n ];\n return MatTable;\n}(CdkTable));\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n/**\n * Cell definition for the mat-table.\n * Captures the template of a column's data row cell as well as cell-specific properties.\n */\nvar MatCellDef = /** @class */ (function (_super) {\n __extends(MatCellDef, _super);\n function MatCellDef() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n MatCellDef.decorators = [\n { type: Directive, args: [{\n selector: '[matCellDef]',\n providers: [{ provide: CdkCellDef, useExisting: MatCellDef }]\n },] },\n ];\n return MatCellDef;\n}(CdkCellDef));\n/**\n * Header cell definition for the mat-table.\n * Captures the template of a column's header cell and as well as cell-specific properties.\n */\nvar MatHeaderCellDef = /** @class */ (function (_super) {\n __extends(MatHeaderCellDef, _super);\n function MatHeaderCellDef() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n MatHeaderCellDef.decorators = [\n { type: Directive, args: [{\n selector: '[matHeaderCellDef]',\n providers: [{ provide: CdkHeaderCellDef, useExisting: MatHeaderCellDef }]\n },] },\n ];\n return MatHeaderCellDef;\n}(CdkHeaderCellDef));\n/**\n * Footer cell definition for the mat-table.\n * Captures the template of a column's footer cell and as well as cell-specific properties.\n */\nvar MatFooterCellDef = /** @class */ (function (_super) {\n __extends(MatFooterCellDef, _super);\n function MatFooterCellDef() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n MatFooterCellDef.decorators = [\n { type: Directive, args: [{\n selector: '[matFooterCellDef]',\n providers: [{ provide: CdkFooterCellDef, useExisting: MatFooterCellDef }]\n },] },\n ];\n return MatFooterCellDef;\n}(CdkFooterCellDef));\n/**\n * Column definition for the mat-table.\n * Defines a set of cells available for a table column.\n */\nvar MatColumnDef = /** @class */ (function (_super) {\n __extends(MatColumnDef, _super);\n function MatColumnDef() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n MatColumnDef.decorators = [\n { type: Directive, args: [{\n selector: '[matColumnDef]',\n providers: [\n { provide: CdkColumnDef, useExisting: MatColumnDef },\n { provide: 'MAT_SORT_HEADER_COLUMN_DEF', useExisting: MatColumnDef }\n ],\n },] },\n ];\n MatColumnDef.propDecorators = {\n name: [{ type: Input, args: ['matColumnDef',] }],\n sticky: [{ type: Input }],\n stickyEnd: [{ type: Input }]\n };\n return MatColumnDef;\n}(CdkColumnDef));\n/**\n * Header cell template container that adds the right classes and role.\n */\nvar MatHeaderCell = /** @class */ (function (_super) {\n __extends(MatHeaderCell, _super);\n function MatHeaderCell(columnDef, elementRef) {\n var _this = _super.call(this, columnDef, elementRef) || this;\n elementRef.nativeElement.classList.add(\"mat-column-\" + columnDef.cssClassFriendlyName);\n return _this;\n }\n MatHeaderCell.decorators = [\n { type: Directive, args: [{\n selector: 'mat-header-cell, th[mat-header-cell]',\n host: {\n 'class': 'mat-header-cell',\n 'role': 'columnheader',\n },\n },] },\n ];\n /** @nocollapse */\n MatHeaderCell.ctorParameters = function () { return [\n { type: CdkColumnDef },\n { type: ElementRef }\n ]; };\n return MatHeaderCell;\n}(CdkHeaderCell));\n/**\n * Footer cell template container that adds the right classes and role.\n */\nvar MatFooterCell = /** @class */ (function (_super) {\n __extends(MatFooterCell, _super);\n function MatFooterCell(columnDef, elementRef) {\n var _this = _super.call(this, columnDef, elementRef) || this;\n elementRef.nativeElement.classList.add(\"mat-column-\" + columnDef.cssClassFriendlyName);\n return _this;\n }\n MatFooterCell.decorators = [\n { type: Directive, args: [{\n selector: 'mat-footer-cell, td[mat-footer-cell]',\n host: {\n 'class': 'mat-footer-cell',\n 'role': 'gridcell',\n },\n },] },\n ];\n /** @nocollapse */\n MatFooterCell.ctorParameters = function () { return [\n { type: CdkColumnDef },\n { type: ElementRef }\n ]; };\n return MatFooterCell;\n}(CdkFooterCell));\n/**\n * Cell template container that adds the right classes and role.\n */\nvar MatCell = /** @class */ (function (_super) {\n __extends(MatCell, _super);\n function MatCell(columnDef, elementRef) {\n var _this = _super.call(this, columnDef, elementRef) || this;\n elementRef.nativeElement.classList.add(\"mat-column-\" + columnDef.cssClassFriendlyName);\n return _this;\n }\n MatCell.decorators = [\n { type: Directive, args: [{\n selector: 'mat-cell, td[mat-cell]',\n host: {\n 'class': 'mat-cell',\n 'role': 'gridcell',\n },\n },] },\n ];\n /** @nocollapse */\n MatCell.ctorParameters = function () { return [\n { type: CdkColumnDef },\n { type: ElementRef }\n ]; };\n return MatCell;\n}(CdkCell));\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n/**\n * Header row definition for the mat-table.\n * Captures the header row's template and other header properties such as the columns to display.\n */\nvar MatHeaderRowDef = /** @class */ (function (_super) {\n __extends(MatHeaderRowDef, _super);\n function MatHeaderRowDef() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n MatHeaderRowDef.decorators = [\n { type: Directive, args: [{\n selector: '[matHeaderRowDef]',\n providers: [{ provide: CdkHeaderRowDef, useExisting: MatHeaderRowDef }],\n inputs: ['columns: matHeaderRowDef', 'sticky: matHeaderRowDefSticky'],\n },] },\n ];\n return MatHeaderRowDef;\n}(CdkHeaderRowDef));\n/**\n * Footer row definition for the mat-table.\n * Captures the footer row's template and other footer properties such as the columns to display.\n */\nvar MatFooterRowDef = /** @class */ (function (_super) {\n __extends(MatFooterRowDef, _super);\n function MatFooterRowDef() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n MatFooterRowDef.decorators = [\n { type: Directive, args: [{\n selector: '[matFooterRowDef]',\n providers: [{ provide: CdkFooterRowDef, useExisting: MatFooterRowDef }],\n inputs: ['columns: matFooterRowDef', 'sticky: matFooterRowDefSticky'],\n },] },\n ];\n return MatFooterRowDef;\n}(CdkFooterRowDef));\n/**\n * Data row definition for the mat-table.\n * Captures the data row's template and other properties such as the columns to display and\n * a when predicate that describes when this row should be used.\n * @template T\n */\nvar MatRowDef = /** @class */ (function (_super) {\n __extends(MatRowDef, _super);\n function MatRowDef() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n MatRowDef.decorators = [\n { type: Directive, args: [{\n selector: '[matRowDef]',\n providers: [{ provide: CdkRowDef, useExisting: MatRowDef }],\n inputs: ['columns: matRowDefColumns', 'when: matRowDefWhen'],\n },] },\n ];\n return MatRowDef;\n}(CdkRowDef));\n/**\n * Footer template container that contains the cell outlet. Adds the right class and role.\n */\nvar MatHeaderRow = /** @class */ (function (_super) {\n __extends(MatHeaderRow, _super);\n function MatHeaderRow() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n MatHeaderRow.decorators = [\n { type: Component, args: [{selector: 'mat-header-row, tr[mat-header-row]',\n template: CDK_ROW_TEMPLATE,\n host: {\n 'class': 'mat-header-row',\n 'role': 'row',\n },\n // See note on CdkTable for explanation on why this uses the default change detection strategy.\n // tslint:disable-next-line:validate-decorators\n changeDetection: ChangeDetectionStrategy.Default,\n encapsulation: ViewEncapsulation.None,\n exportAs: 'matHeaderRow',\n providers: [{ provide: CdkHeaderRow, useExisting: MatHeaderRow }],\n },] },\n ];\n return MatHeaderRow;\n}(CdkHeaderRow));\n/**\n * Footer template container that contains the cell outlet. Adds the right class and role.\n */\nvar MatFooterRow = /** @class */ (function (_super) {\n __extends(MatFooterRow, _super);\n function MatFooterRow() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n MatFooterRow.decorators = [\n { type: Component, args: [{selector: 'mat-footer-row, tr[mat-footer-row]',\n template: CDK_ROW_TEMPLATE,\n host: {\n 'class': 'mat-footer-row',\n 'role': 'row',\n },\n // See note on CdkTable for explanation on why this uses the default change detection strategy.\n // tslint:disable-next-line:validate-decorators\n changeDetection: ChangeDetectionStrategy.Default,\n encapsulation: ViewEncapsulation.None,\n exportAs: 'matFooterRow',\n providers: [{ provide: CdkFooterRow, useExisting: MatFooterRow }],\n },] },\n ];\n return MatFooterRow;\n}(CdkFooterRow));\n/**\n * Data row template container that contains the cell outlet. Adds the right class and role.\n */\nvar MatRow = /** @class */ (function (_super) {\n __extends(MatRow, _super);\n function MatRow() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n MatRow.decorators = [\n { type: Component, args: [{selector: 'mat-row, tr[mat-row]',\n template: CDK_ROW_TEMPLATE,\n host: {\n 'class': 'mat-row',\n 'role': 'row',\n },\n // See note on CdkTable for explanation on why this uses the default change detection strategy.\n // tslint:disable-next-line:validate-decorators\n changeDetection: ChangeDetectionStrategy.Default,\n encapsulation: ViewEncapsulation.None,\n exportAs: 'matRow',\n providers: [{ provide: CdkRow, useExisting: MatRow }],\n },] },\n ];\n return MatRow;\n}(CdkRow));\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n/**\n * Column that simply shows text content for the header and row cells. Assumes that the table\n * is using the native table implementation (`
\\n {{headerText}}\\n \\n {{dataAccessor(data, name)}}\\n
`).\n *\n * By default, the name of this column will be the header text and data property accessor.\n * The header text can be overridden with the `headerText` input. Cell values can be overridden with\n * the `dataAccessor` input. Change the text justification to the start or end using the `justify`\n * input.\n * @template T\n */\nvar MatTextColumn = /** @class */ (function (_super) {\n __extends(MatTextColumn, _super);\n function MatTextColumn() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n MatTextColumn.decorators = [\n { type: Component, args: [{selector: 'mat-text-column',\n template: \"\\n \\n \\n \\n \\n \",\n encapsulation: ViewEncapsulation.None,\n // Change detection is intentionally not set to OnPush. This component's template will be provided\n // to the table to be inserted into its view. This is problematic when change detection runs since\n // the bindings in this template will be evaluated _after_ the table's view is evaluated, which\n // mean's the template in the table's view will not have the updated value (and in fact will cause\n // an ExpressionChangedAfterItHasBeenCheckedError).\n // tslint:disable-next-line:validate-decorators\n changeDetection: ChangeDetectionStrategy.Default,\n },] },\n ];\n return MatTextColumn;\n}(CdkTextColumn));\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n/** @type {?} */\nvar EXPORTED_DECLARATIONS = [\n // Table\n MatTable,\n // Template defs\n MatHeaderCellDef,\n MatHeaderRowDef,\n MatColumnDef,\n MatCellDef,\n MatRowDef,\n MatFooterCellDef,\n MatFooterRowDef,\n // Cell directives\n MatHeaderCell,\n MatCell,\n MatFooterCell,\n // Row directives\n MatHeaderRow,\n MatRow,\n MatFooterRow,\n MatTextColumn,\n];\nvar MatTableModule = /** @class */ (function () {\n function MatTableModule() {\n }\n MatTableModule.decorators = [\n { type: NgModule, args: [{\n imports: [\n CdkTableModule,\n CommonModule,\n MatCommonModule,\n ],\n exports: EXPORTED_DECLARATIONS,\n declarations: EXPORTED_DECLARATIONS,\n },] },\n ];\n return MatTableModule;\n}());\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n/**\n * Corresponds to `Number.MAX_SAFE_INTEGER`. Moved out into a variable here due to\n * flaky browser support and the value not being defined in Closure's typings.\n * @type {?}\n */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n/**\n * Data source that accepts a client-side data array and includes native support of filtering,\n * sorting (using MatSort), and pagination (using MatPaginator).\n *\n * Allows for sort customization by overriding sortingDataAccessor, which defines how data\n * properties are accessed. Also allows for filter customization by overriding filterTermAccessor,\n * which defines how row data is converted to a string for filter matching.\n *\n * **Note:** This class is meant to be a simple data source to help you get started. As such\n * it isn't equipped to handle some more advanced cases like robust i18n support or server-side\n * interactions. If your app needs to support more advanced use cases, consider implementing your\n * own `DataSource`.\n * @template T\n */\nvar /**\n * Data source that accepts a client-side data array and includes native support of filtering,\n * sorting (using MatSort), and pagination (using MatPaginator).\n *\n * Allows for sort customization by overriding sortingDataAccessor, which defines how data\n * properties are accessed. Also allows for filter customization by overriding filterTermAccessor,\n * which defines how row data is converted to a string for filter matching.\n *\n * **Note:** This class is meant to be a simple data source to help you get started. As such\n * it isn't equipped to handle some more advanced cases like robust i18n support or server-side\n * interactions. If your app needs to support more advanced use cases, consider implementing your\n * own `DataSource`.\n * @template T\n */\nMatTableDataSource = /** @class */ (function (_super) {\n __extends(MatTableDataSource, _super);\n function MatTableDataSource(initialData) {\n if (initialData === void 0) { initialData = []; }\n var _this = _super.call(this) || this;\n /**\n * Stream emitting render data to the table (depends on ordered data changes).\n */\n _this._renderData = new BehaviorSubject([]);\n /**\n * Stream that emits when a new filter string is set on the data source.\n */\n _this._filter = new BehaviorSubject('');\n /**\n * Used to react to internal changes of the paginator that are made by the data source itself.\n */\n _this._internalPageChanges = new Subject();\n /**\n * Subscription to the changes that should trigger an update to the table's rendered rows, such\n * as filtering, sorting, pagination, or base data changes.\n */\n _this._renderChangesSubscription = Subscription.EMPTY;\n /**\n * Data accessor function that is used for accessing data properties for sorting through\n * the default sortData function.\n * This default function assumes that the sort header IDs (which defaults to the column name)\n * matches the data's properties (e.g. column Xyz represents data['Xyz']).\n * May be set to a custom function for different behavior.\n * @param data Data object that is being accessed.\n * @param sortHeaderId The name of the column that represents the data.\n */\n _this.sortingDataAccessor = (/**\n * @param {?} data\n * @param {?} sortHeaderId\n * @return {?}\n */\n function (data, sortHeaderId) {\n /** @type {?} */\n var value = ((/** @type {?} */ (data)))[sortHeaderId];\n if (_isNumberValue(value)) {\n /** @type {?} */\n var numberValue = Number(value);\n // Numbers beyond `MAX_SAFE_INTEGER` can't be compared reliably so we\n // leave them as strings. For more info: https://goo.gl/y5vbSg\n return numberValue < MAX_SAFE_INTEGER ? numberValue : value;\n }\n return value;\n });\n /**\n * Gets a sorted copy of the data array based on the state of the MatSort. Called\n * after changes are made to the filtered data or when sort changes are emitted from MatSort.\n * By default, the function retrieves the active sort and its direction and compares data\n * by retrieving data using the sortingDataAccessor. May be overridden for a custom implementation\n * of data ordering.\n * @param data The array of data that should be sorted.\n * @param sort The connected MatSort that holds the current sort state.\n */\n _this.sortData = (/**\n * @param {?} data\n * @param {?} sort\n * @return {?}\n */\n function (data, sort) {\n /** @type {?} */\n var active = sort.active;\n /** @type {?} */\n var direction = sort.direction;\n if (!active || direction == '') {\n return data;\n }\n return data.sort((/**\n * @param {?} a\n * @param {?} b\n * @return {?}\n */\n function (a, b) {\n /** @type {?} */\n var valueA = _this.sortingDataAccessor(a, active);\n /** @type {?} */\n var valueB = _this.sortingDataAccessor(b, active);\n // If both valueA and valueB exist (truthy), then compare the two. Otherwise, check if\n // one value exists while the other doesn't. In this case, existing value should come last.\n // This avoids inconsistent results when comparing values to undefined/null.\n // If neither value exists, return 0 (equal).\n /** @type {?} */\n var comparatorResult = 0;\n if (valueA != null && valueB != null) {\n // Check if one value is greater than the other; if equal, comparatorResult should remain 0.\n if (valueA > valueB) {\n comparatorResult = 1;\n }\n else if (valueA < valueB) {\n comparatorResult = -1;\n }\n }\n else if (valueA != null) {\n comparatorResult = 1;\n }\n else if (valueB != null) {\n comparatorResult = -1;\n }\n return comparatorResult * (direction == 'asc' ? 1 : -1);\n }));\n });\n /**\n * Checks if a data object matches the data source's filter string. By default, each data object\n * is converted to a string of its properties and returns true if the filter has\n * at least one occurrence in that string. By default, the filter string has its whitespace\n * trimmed and the match is case-insensitive. May be overridden for a custom implementation of\n * filter matching.\n * @param data Data object used to check against the filter.\n * @param filter Filter string that has been set on the data source.\n * @return Whether the filter matches against the data\n */\n _this.filterPredicate = (/**\n * @param {?} data\n * @param {?} filter\n * @return {?}\n */\n function (data, filter) {\n // Transform the data into a lowercase string of all property values.\n /** @type {?} */\n var dataStr = Object.keys(data).reduce((/**\n * @param {?} currentTerm\n * @param {?} key\n * @return {?}\n */\n function (currentTerm, key) {\n // Use an obscure Unicode character to delimit the words in the concatenated string.\n // This avoids matches where the values of two columns combined will match the user's query\n // (e.g. `Flute` and `Stop` will match `Test`). The character is intended to be something\n // that has a very low chance of being typed in by somebody in a text field. This one in\n // particular is \"White up-pointing triangle with dot\" from\n // https://en.wikipedia.org/wiki/List_of_Unicode_characters\n return currentTerm + ((/** @type {?} */ (data)))[key] + 'â—¬';\n }), '').toLowerCase();\n // Transform the filter by converting it to lowercase and removing whitespace.\n /** @type {?} */\n var transformedFilter = filter.trim().toLowerCase();\n return dataStr.indexOf(transformedFilter) != -1;\n });\n _this._data = new BehaviorSubject(initialData);\n _this._updateChangeSubscription();\n return _this;\n }\n Object.defineProperty(MatTableDataSource.prototype, \"data\", {\n /** Array of data that should be rendered by the table, where each object represents one row. */\n get: /**\n * Array of data that should be rendered by the table, where each object represents one row.\n * @return {?}\n */\n function () { return this._data.value; },\n set: /**\n * @param {?} data\n * @return {?}\n */\n function (data) { this._data.next(data); },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(MatTableDataSource.prototype, \"filter\", {\n /**\n * Filter term that should be used to filter out objects from the data array. To override how\n * data objects match to this filter string, provide a custom function for filterPredicate.\n */\n get: /**\n * Filter term that should be used to filter out objects from the data array. To override how\n * data objects match to this filter string, provide a custom function for filterPredicate.\n * @return {?}\n */\n function () { return this._filter.value; },\n set: /**\n * @param {?} filter\n * @return {?}\n */\n function (filter) { this._filter.next(filter); },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(MatTableDataSource.prototype, \"sort\", {\n /**\n * Instance of the MatSort directive used by the table to control its sorting. Sort changes\n * emitted by the MatSort will trigger an update to the table's rendered data.\n */\n get: /**\n * Instance of the MatSort directive used by the table to control its sorting. Sort changes\n * emitted by the MatSort will trigger an update to the table's rendered data.\n * @return {?}\n */\n function () { return this._sort; },\n set: /**\n * @param {?} sort\n * @return {?}\n */\n function (sort) {\n this._sort = sort;\n this._updateChangeSubscription();\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(MatTableDataSource.prototype, \"paginator\", {\n /**\n * Instance of the MatPaginator component used by the table to control what page of the data is\n * displayed. Page changes emitted by the MatPaginator will trigger an update to the\n * table's rendered data.\n *\n * Note that the data source uses the paginator's properties to calculate which page of data\n * should be displayed. If the paginator receives its properties as template inputs,\n * e.g. `[pageLength]=100` or `[pageIndex]=1`, then be sure that the paginator's view has been\n * initialized before assigning it to this data source.\n */\n get: /**\n * Instance of the MatPaginator component used by the table to control what page of the data is\n * displayed. Page changes emitted by the MatPaginator will trigger an update to the\n * table's rendered data.\n *\n * Note that the data source uses the paginator's properties to calculate which page of data\n * should be displayed. If the paginator receives its properties as template inputs,\n * e.g. `[pageLength]=100` or `[pageIndex]=1`, then be sure that the paginator's view has been\n * initialized before assigning it to this data source.\n * @return {?}\n */\n function () { return this._paginator; },\n set: /**\n * @param {?} paginator\n * @return {?}\n */\n function (paginator) {\n this._paginator = paginator;\n this._updateChangeSubscription();\n },\n enumerable: true,\n configurable: true\n });\n /**\n * Subscribe to changes that should trigger an update to the table's rendered rows. When the\n * changes occur, process the current state of the filter, sort, and pagination along with\n * the provided base data and send it to the table for rendering.\n */\n /**\n * Subscribe to changes that should trigger an update to the table's rendered rows. When the\n * changes occur, process the current state of the filter, sort, and pagination along with\n * the provided base data and send it to the table for rendering.\n * @return {?}\n */\n MatTableDataSource.prototype._updateChangeSubscription = /**\n * Subscribe to changes that should trigger an update to the table's rendered rows. When the\n * changes occur, process the current state of the filter, sort, and pagination along with\n * the provided base data and send it to the table for rendering.\n * @return {?}\n */\n function () {\n var _this = this;\n // Sorting and/or pagination should be watched if MatSort and/or MatPaginator are provided.\n // The events should emit whenever the component emits a change or initializes, or if no\n // component is provided, a stream with just a null event should be provided.\n // The `sortChange` and `pageChange` acts as a signal to the combineLatests below so that the\n // pipeline can progress to the next step. Note that the value from these streams are not used,\n // they purely act as a signal to progress in the pipeline.\n /** @type {?} */\n var sortChange = this._sort ?\n (/** @type {?} */ (merge(this._sort.sortChange, this._sort.initialized))) :\n of(null);\n /** @type {?} */\n var pageChange = this._paginator ?\n (/** @type {?} */ (merge(this._paginator.page, this._internalPageChanges, this._paginator.initialized))) :\n of(null);\n /** @type {?} */\n var dataStream = this._data;\n // Watch for base data or filter changes to provide a filtered set of data.\n /** @type {?} */\n var filteredData = combineLatest([dataStream, this._filter])\n .pipe(map((/**\n * @param {?} __0\n * @return {?}\n */\n function (_a) {\n var data = _a[0];\n return _this._filterData(data);\n })));\n // Watch for filtered data or sort changes to provide an ordered set of data.\n /** @type {?} */\n var orderedData = combineLatest([filteredData, sortChange])\n .pipe(map((/**\n * @param {?} __0\n * @return {?}\n */\n function (_a) {\n var data = _a[0];\n return _this._orderData(data);\n })));\n // Watch for ordered data or page changes to provide a paged set of data.\n /** @type {?} */\n var paginatedData = combineLatest([orderedData, pageChange])\n .pipe(map((/**\n * @param {?} __0\n * @return {?}\n */\n function (_a) {\n var data = _a[0];\n return _this._pageData(data);\n })));\n // Watched for paged data changes and send the result to the table to render.\n this._renderChangesSubscription.unsubscribe();\n this._renderChangesSubscription = paginatedData.subscribe((/**\n * @param {?} data\n * @return {?}\n */\n function (data) { return _this._renderData.next(data); }));\n };\n /**\n * Returns a filtered data array where each filter object contains the filter string within\n * the result of the filterTermAccessor function. If no filter is set, returns the data array\n * as provided.\n */\n /**\n * Returns a filtered data array where each filter object contains the filter string within\n * the result of the filterTermAccessor function. If no filter is set, returns the data array\n * as provided.\n * @param {?} data\n * @return {?}\n */\n MatTableDataSource.prototype._filterData = /**\n * Returns a filtered data array where each filter object contains the filter string within\n * the result of the filterTermAccessor function. If no filter is set, returns the data array\n * as provided.\n * @param {?} data\n * @return {?}\n */\n function (data) {\n var _this = this;\n // If there is a filter string, filter out data that does not contain it.\n // Each data object is converted to a string using the function defined by filterTermAccessor.\n // May be overridden for customization.\n this.filteredData =\n !this.filter ? data : data.filter((/**\n * @param {?} obj\n * @return {?}\n */\n function (obj) { return _this.filterPredicate(obj, _this.filter); }));\n if (this.paginator) {\n this._updatePaginator(this.filteredData.length);\n }\n return this.filteredData;\n };\n /**\n * Returns a sorted copy of the data if MatSort has a sort applied, otherwise just returns the\n * data array as provided. Uses the default data accessor for data lookup, unless a\n * sortDataAccessor function is defined.\n */\n /**\n * Returns a sorted copy of the data if MatSort has a sort applied, otherwise just returns the\n * data array as provided. Uses the default data accessor for data lookup, unless a\n * sortDataAccessor function is defined.\n * @param {?} data\n * @return {?}\n */\n MatTableDataSource.prototype._orderData = /**\n * Returns a sorted copy of the data if MatSort has a sort applied, otherwise just returns the\n * data array as provided. Uses the default data accessor for data lookup, unless a\n * sortDataAccessor function is defined.\n * @param {?} data\n * @return {?}\n */\n function (data) {\n // If there is no active sort or direction, return the data without trying to sort.\n if (!this.sort) {\n return data;\n }\n return this.sortData(data.slice(), this.sort);\n };\n /**\n * Returns a paged slice of the provided data array according to the provided MatPaginator's page\n * index and length. If there is no paginator provided, returns the data array as provided.\n */\n /**\n * Returns a paged slice of the provided data array according to the provided MatPaginator's page\n * index and length. If there is no paginator provided, returns the data array as provided.\n * @param {?} data\n * @return {?}\n */\n MatTableDataSource.prototype._pageData = /**\n * Returns a paged slice of the provided data array according to the provided MatPaginator's page\n * index and length. If there is no paginator provided, returns the data array as provided.\n * @param {?} data\n * @return {?}\n */\n function (data) {\n if (!this.paginator) {\n return data;\n }\n /** @type {?} */\n var startIndex = this.paginator.pageIndex * this.paginator.pageSize;\n return data.slice(startIndex, startIndex + this.paginator.pageSize);\n };\n /**\n * Updates the paginator to reflect the length of the filtered data, and makes sure that the page\n * index does not exceed the paginator's last page. Values are changed in a resolved promise to\n * guard against making property changes within a round of change detection.\n */\n /**\n * Updates the paginator to reflect the length of the filtered data, and makes sure that the page\n * index does not exceed the paginator's last page. Values are changed in a resolved promise to\n * guard against making property changes within a round of change detection.\n * @param {?} filteredDataLength\n * @return {?}\n */\n MatTableDataSource.prototype._updatePaginator = /**\n * Updates the paginator to reflect the length of the filtered data, and makes sure that the page\n * index does not exceed the paginator's last page. Values are changed in a resolved promise to\n * guard against making property changes within a round of change detection.\n * @param {?} filteredDataLength\n * @return {?}\n */\n function (filteredDataLength) {\n var _this = this;\n Promise.resolve().then((/**\n * @return {?}\n */\n function () {\n /** @type {?} */\n var paginator = _this.paginator;\n if (!paginator) {\n return;\n }\n paginator.length = filteredDataLength;\n // If the page index is set beyond the page, reduce it to the last page.\n if (paginator.pageIndex > 0) {\n /** @type {?} */\n var lastPageIndex = Math.ceil(paginator.length / paginator.pageSize) - 1 || 0;\n /** @type {?} */\n var newPageIndex = Math.min(paginator.pageIndex, lastPageIndex);\n if (newPageIndex !== paginator.pageIndex) {\n paginator.pageIndex = newPageIndex;\n // Since the paginator only emits after user-generated changes,\n // we need our own stream so we know to should re-render the data.\n _this._internalPageChanges.next();\n }\n }\n }));\n };\n /**\n * Used by the MatTable. Called when it connects to the data source.\n * @docs-private\n */\n /**\n * Used by the MatTable. Called when it connects to the data source.\n * \\@docs-private\n * @return {?}\n */\n MatTableDataSource.prototype.connect = /**\n * Used by the MatTable. Called when it connects to the data source.\n * \\@docs-private\n * @return {?}\n */\n function () { return this._renderData; };\n /**\n * Used by the MatTable. Called when it is destroyed. No-op.\n * @docs-private\n */\n /**\n * Used by the MatTable. Called when it is destroyed. No-op.\n * \\@docs-private\n * @return {?}\n */\n MatTableDataSource.prototype.disconnect = /**\n * Used by the MatTable. Called when it is destroyed. No-op.\n * \\@docs-private\n * @return {?}\n */\n function () { };\n return MatTableDataSource;\n}(DataSource));\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 { MatTableModule, MatCellDef, MatHeaderCellDef, MatFooterCellDef, MatColumnDef, MatHeaderCell, MatFooterCell, MatCell, MatTable, MatHeaderRowDef, MatFooterRowDef, MatRowDef, MatHeaderRow, MatFooterRow, MatRow, MatTableDataSource, MatTextColumn };\n//# sourceMappingURL=table.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 { Directive, ElementRef, Inject, InjectionToken, NgZone, Optional, TemplateRef, ChangeDetectionStrategy, Component, ContentChild, Input, ViewChild, ViewContainerRef, ViewEncapsulation, ChangeDetectorRef, Output, EventEmitter, ComponentFactoryResolver, forwardRef, ContentChildren, Attribute, NgModule } from '@angular/core';\nimport { ANIMATION_MODULE_TYPE } from '@angular/platform-browser/animations';\nimport { __extends } from 'tslib';\nimport { CdkPortal, TemplatePortal, CdkPortalOutlet, PortalHostDirective, PortalModule } from '@angular/cdk/portal';\nimport { mixinDisabled, mixinColor, mixinDisableRipple, MAT_RIPPLE_GLOBAL_OPTIONS, mixinTabIndex, RippleRenderer, MatCommonModule, MatRippleModule } from '@angular/material/core';\nimport { Subject, Subscription, merge, of, timer, fromEvent } from 'rxjs';\nimport { animate, state, style, transition, trigger } from '@angular/animations';\nimport { Directionality } from '@angular/cdk/bidi';\nimport { startWith, distinctUntilChanged, takeUntil } from 'rxjs/operators';\nimport { coerceBooleanProperty, coerceNumberProperty } from '@angular/cdk/coercion';\nimport { ViewportRuler } from '@angular/cdk/scrolling';\nimport { FocusKeyManager, FocusMonitor, A11yModule } from '@angular/cdk/a11y';\nimport { END, ENTER, HOME, SPACE, hasModifierKey } from '@angular/cdk/keycodes';\nimport { Platform, normalizePassiveListenerOptions } from '@angular/cdk/platform';\nimport { ObserversModule } from '@angular/cdk/observers';\nimport { CommonModule } from '@angular/common';\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n/**\n * Injection token for the MatInkBar's Positioner.\n * @type {?}\n */\nvar _MAT_INK_BAR_POSITIONER = new InjectionToken('MatInkBarPositioner', {\n providedIn: 'root',\n factory: _MAT_INK_BAR_POSITIONER_FACTORY\n});\n/**\n * The default positioner function for the MatInkBar.\n * \\@docs-private\n * @return {?}\n */\nfunction _MAT_INK_BAR_POSITIONER_FACTORY() {\n /** @type {?} */\n var method = (/**\n * @param {?} element\n * @return {?}\n */\n function (element) { return ({\n left: element ? (element.offsetLeft || 0) + 'px' : '0',\n width: element ? (element.offsetWidth || 0) + 'px' : '0',\n }); });\n return method;\n}\n/**\n * The ink-bar is used to display and animate the line underneath the current active tab label.\n * \\@docs-private\n */\nvar MatInkBar = /** @class */ (function () {\n function MatInkBar(_elementRef, _ngZone, _inkBarPositioner, _animationMode) {\n this._elementRef = _elementRef;\n this._ngZone = _ngZone;\n this._inkBarPositioner = _inkBarPositioner;\n this._animationMode = _animationMode;\n }\n /**\n * Calculates the styles from the provided element in order to align the ink-bar to that element.\n * Shows the ink bar if previously set as hidden.\n * @param element\n */\n /**\n * Calculates the styles from the provided element in order to align the ink-bar to that element.\n * Shows the ink bar if previously set as hidden.\n * @param {?} element\n * @return {?}\n */\n MatInkBar.prototype.alignToElement = /**\n * Calculates the styles from the provided element in order to align the ink-bar to that element.\n * Shows the ink bar if previously set as hidden.\n * @param {?} element\n * @return {?}\n */\n function (element) {\n var _this = this;\n this.show();\n if (typeof requestAnimationFrame !== 'undefined') {\n this._ngZone.runOutsideAngular((/**\n * @return {?}\n */\n function () {\n requestAnimationFrame((/**\n * @return {?}\n */\n function () { return _this._setStyles(element); }));\n }));\n }\n else {\n this._setStyles(element);\n }\n };\n /** Shows the ink bar. */\n /**\n * Shows the ink bar.\n * @return {?}\n */\n MatInkBar.prototype.show = /**\n * Shows the ink bar.\n * @return {?}\n */\n function () {\n this._elementRef.nativeElement.style.visibility = 'visible';\n };\n /** Hides the ink bar. */\n /**\n * Hides the ink bar.\n * @return {?}\n */\n MatInkBar.prototype.hide = /**\n * Hides the ink bar.\n * @return {?}\n */\n function () {\n this._elementRef.nativeElement.style.visibility = 'hidden';\n };\n /**\n * Sets the proper styles to the ink bar element.\n * @param element\n */\n /**\n * Sets the proper styles to the ink bar element.\n * @private\n * @param {?} element\n * @return {?}\n */\n MatInkBar.prototype._setStyles = /**\n * Sets the proper styles to the ink bar element.\n * @private\n * @param {?} element\n * @return {?}\n */\n function (element) {\n /** @type {?} */\n var positions = this._inkBarPositioner(element);\n /** @type {?} */\n var inkBar = this._elementRef.nativeElement;\n inkBar.style.left = positions.left;\n inkBar.style.width = positions.width;\n };\n MatInkBar.decorators = [\n { type: Directive, args: [{\n selector: 'mat-ink-bar',\n host: {\n 'class': 'mat-ink-bar',\n '[class._mat-animation-noopable]': \"_animationMode === 'NoopAnimations'\",\n },\n },] },\n ];\n /** @nocollapse */\n MatInkBar.ctorParameters = function () { return [\n { type: ElementRef },\n { type: NgZone },\n { type: undefined, decorators: [{ type: Inject, args: [_MAT_INK_BAR_POSITIONER,] }] },\n { type: String, decorators: [{ type: Optional }, { type: Inject, args: [ANIMATION_MODULE_TYPE,] }] }\n ]; };\n return MatInkBar;\n}());\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n/**\n * Decorates the `ng-template` tags and reads out the template from it.\n */\nvar MatTabContent = /** @class */ (function () {\n function MatTabContent(template) {\n this.template = template;\n }\n MatTabContent.decorators = [\n { type: Directive, args: [{ selector: '[matTabContent]' },] },\n ];\n /** @nocollapse */\n MatTabContent.ctorParameters = function () { return [\n { type: TemplateRef }\n ]; };\n return MatTabContent;\n}());\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n/**\n * Used to flag tab labels for use with the portal directive\n */\nvar MatTabLabel = /** @class */ (function (_super) {\n __extends(MatTabLabel, _super);\n function MatTabLabel() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n MatTabLabel.decorators = [\n { type: Directive, args: [{\n selector: '[mat-tab-label], [matTabLabel]',\n },] },\n ];\n return MatTabLabel;\n}(CdkPortal));\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n// Boilerplate for applying mixins to MatTab.\n/**\n * \\@docs-private\n */\nvar \n// Boilerplate for applying mixins to MatTab.\n/**\n * \\@docs-private\n */\nMatTabBase = /** @class */ (function () {\n function MatTabBase() {\n }\n return MatTabBase;\n}());\n/** @type {?} */\nvar _MatTabMixinBase = mixinDisabled(MatTabBase);\nvar MatTab = /** @class */ (function (_super) {\n __extends(MatTab, _super);\n function MatTab(_viewContainerRef) {\n var _this = _super.call(this) || this;\n _this._viewContainerRef = _viewContainerRef;\n /**\n * Plain text label for the tab, used when there is no template label.\n */\n _this.textLabel = '';\n /**\n * Portal that will be the hosted content of the tab\n */\n _this._contentPortal = null;\n /**\n * Emits whenever the internal state of the tab changes.\n */\n _this._stateChanges = new Subject();\n /**\n * The relatively indexed position where 0 represents the center, negative is left, and positive\n * represents the right.\n */\n _this.position = null;\n /**\n * The initial relatively index origin of the tab if it was created and selected after there\n * was already a selected tab. Provides context of what position the tab should originate from.\n */\n _this.origin = null;\n /**\n * Whether the tab is currently active.\n */\n _this.isActive = false;\n return _this;\n }\n Object.defineProperty(MatTab.prototype, \"content\", {\n /** @docs-private */\n get: /**\n * \\@docs-private\n * @return {?}\n */\n function () {\n return this._contentPortal;\n },\n enumerable: true,\n configurable: true\n });\n /**\n * @param {?} changes\n * @return {?}\n */\n MatTab.prototype.ngOnChanges = /**\n * @param {?} changes\n * @return {?}\n */\n function (changes) {\n if (changes.hasOwnProperty('textLabel') || changes.hasOwnProperty('disabled')) {\n this._stateChanges.next();\n }\n };\n /**\n * @return {?}\n */\n MatTab.prototype.ngOnDestroy = /**\n * @return {?}\n */\n function () {\n this._stateChanges.complete();\n };\n /**\n * @return {?}\n */\n MatTab.prototype.ngOnInit = /**\n * @return {?}\n */\n function () {\n this._contentPortal = new TemplatePortal(this._explicitContent || this._implicitContent, this._viewContainerRef);\n };\n MatTab.decorators = [\n { type: Component, args: [{selector: 'mat-tab',\n template: \"\",\n inputs: ['disabled'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n exportAs: 'matTab',\n },] },\n ];\n /** @nocollapse */\n MatTab.ctorParameters = function () { return [\n { type: ViewContainerRef }\n ]; };\n MatTab.propDecorators = {\n templateLabel: [{ type: ContentChild, args: [MatTabLabel, { static: false },] }],\n _explicitContent: [{ type: ContentChild, args: [MatTabContent, { read: TemplateRef, static: true },] }],\n _implicitContent: [{ type: ViewChild, args: [TemplateRef, { static: true },] }],\n textLabel: [{ type: Input, args: ['label',] }],\n ariaLabel: [{ type: Input, args: ['aria-label',] }],\n ariaLabelledby: [{ type: Input, args: ['aria-labelledby',] }]\n };\n return MatTab;\n}(_MatTabMixinBase));\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n/**\n * Animations used by the Material tabs.\n * \\@docs-private\n * @type {?}\n */\nvar matTabsAnimations = {\n /**\n * Animation translates a tab along the X axis.\n */\n translateTab: trigger('translateTab', [\n // Note: transitions to `none` instead of 0, because some browsers might blur the content.\n state('center, void, left-origin-center, right-origin-center', style({ transform: 'none' })),\n // If the tab is either on the left or right, we additionally add a `min-height` of 1px\n // in order to ensure that the element has a height before its state changes. This is\n // necessary because Chrome does seem to skip the transition in RTL mode if the element does\n // not have a static height and is not rendered. See related issue: #9465\n state('left', style({ transform: 'translate3d(-100%, 0, 0)', minHeight: '1px' })),\n state('right', style({ transform: 'translate3d(100%, 0, 0)', minHeight: '1px' })),\n transition('* => left, * => right, left => center, right => center', animate('{{animationDuration}} cubic-bezier(0.35, 0, 0.25, 1)')),\n transition('void => left-origin-center', [\n style({ transform: 'translate3d(-100%, 0, 0)' }),\n animate('{{animationDuration}} cubic-bezier(0.35, 0, 0.25, 1)')\n ]),\n transition('void => right-origin-center', [\n style({ transform: 'translate3d(100%, 0, 0)' }),\n animate('{{animationDuration}} cubic-bezier(0.35, 0, 0.25, 1)')\n ])\n ])\n};\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n/**\n * The portal host directive for the contents of the tab.\n * \\@docs-private\n */\nvar MatTabBodyPortal = /** @class */ (function (_super) {\n __extends(MatTabBodyPortal, _super);\n function MatTabBodyPortal(componentFactoryResolver, viewContainerRef, _host) {\n var _this = _super.call(this, componentFactoryResolver, viewContainerRef) || this;\n _this._host = _host;\n /**\n * Subscription to events for when the tab body begins centering.\n */\n _this._centeringSub = Subscription.EMPTY;\n /**\n * Subscription to events for when the tab body finishes leaving from center position.\n */\n _this._leavingSub = Subscription.EMPTY;\n return _this;\n }\n /** Set initial visibility or set up subscription for changing visibility. */\n /**\n * Set initial visibility or set up subscription for changing visibility.\n * @return {?}\n */\n MatTabBodyPortal.prototype.ngOnInit = /**\n * Set initial visibility or set up subscription for changing visibility.\n * @return {?}\n */\n function () {\n var _this = this;\n _super.prototype.ngOnInit.call(this);\n this._centeringSub = this._host._beforeCentering\n .pipe(startWith(this._host._isCenterPosition(this._host._position)))\n .subscribe((/**\n * @param {?} isCentering\n * @return {?}\n */\n function (isCentering) {\n if (isCentering && !_this.hasAttached()) {\n _this.attach(_this._host._content);\n }\n }));\n this._leavingSub = this._host._afterLeavingCenter.subscribe((/**\n * @return {?}\n */\n function () {\n _this.detach();\n }));\n };\n /** Clean up centering subscription. */\n /**\n * Clean up centering subscription.\n * @return {?}\n */\n MatTabBodyPortal.prototype.ngOnDestroy = /**\n * Clean up centering subscription.\n * @return {?}\n */\n function () {\n _super.prototype.ngOnDestroy.call(this);\n this._centeringSub.unsubscribe();\n this._leavingSub.unsubscribe();\n };\n MatTabBodyPortal.decorators = [\n { type: Directive, args: [{\n selector: '[matTabBodyHost]'\n },] },\n ];\n /** @nocollapse */\n MatTabBodyPortal.ctorParameters = function () { return [\n { type: ComponentFactoryResolver },\n { type: ViewContainerRef },\n { type: MatTabBody, decorators: [{ type: Inject, args: [forwardRef((/**\n * @return {?}\n */\n function () { return MatTabBody; })),] }] }\n ]; };\n return MatTabBodyPortal;\n}(CdkPortalOutlet));\n/**\n * Base class with all of the `MatTabBody` functionality.\n * \\@docs-private\n * @abstract\n */\nvar _MatTabBodyBase = /** @class */ (function () {\n function _MatTabBodyBase(_elementRef, _dir, changeDetectorRef) {\n var _this = this;\n this._elementRef = _elementRef;\n this._dir = _dir;\n /**\n * Subscription to the directionality change observable.\n */\n this._dirChangeSubscription = Subscription.EMPTY;\n /**\n * Emits when an animation on the tab is complete.\n */\n this._translateTabComplete = new Subject();\n /**\n * Event emitted when the tab begins to animate towards the center as the active tab.\n */\n this._onCentering = new EventEmitter();\n /**\n * Event emitted before the centering of the tab begins.\n */\n this._beforeCentering = new EventEmitter();\n /**\n * Event emitted before the centering of the tab begins.\n */\n this._afterLeavingCenter = new EventEmitter();\n /**\n * Event emitted when the tab completes its animation towards the center.\n */\n this._onCentered = new EventEmitter(true);\n // Note that the default value will always be overwritten by `MatTabBody`, but we need one\n // anyway to prevent the animations module from throwing an error if the body is used on its own.\n /**\n * Duration for the tab's animation.\n */\n this.animationDuration = '500ms';\n if (_dir) {\n this._dirChangeSubscription = _dir.change.subscribe((/**\n * @param {?} dir\n * @return {?}\n */\n function (dir) {\n _this._computePositionAnimationState(dir);\n changeDetectorRef.markForCheck();\n }));\n }\n // Ensure that we get unique animation events, because the `.done` callback can get\n // invoked twice in some browsers. See https://github.com/angular/angular/issues/24084.\n this._translateTabComplete.pipe(distinctUntilChanged((/**\n * @param {?} x\n * @param {?} y\n * @return {?}\n */\n function (x, y) {\n return x.fromState === y.fromState && x.toState === y.toState;\n }))).subscribe((/**\n * @param {?} event\n * @return {?}\n */\n function (event) {\n // If the transition to the center is complete, emit an event.\n if (_this._isCenterPosition(event.toState) && _this._isCenterPosition(_this._position)) {\n _this._onCentered.emit();\n }\n if (_this._isCenterPosition(event.fromState) && !_this._isCenterPosition(_this._position)) {\n _this._afterLeavingCenter.emit();\n }\n }));\n }\n Object.defineProperty(_MatTabBodyBase.prototype, \"position\", {\n /** The shifted index position of the tab body, where zero represents the active center tab. */\n set: /**\n * The shifted index position of the tab body, where zero represents the active center tab.\n * @param {?} position\n * @return {?}\n */\n function (position) {\n this._positionIndex = position;\n this._computePositionAnimationState();\n },\n enumerable: true,\n configurable: true\n });\n /**\n * After initialized, check if the content is centered and has an origin. If so, set the\n * special position states that transition the tab from the left or right before centering.\n */\n /**\n * After initialized, check if the content is centered and has an origin. If so, set the\n * special position states that transition the tab from the left or right before centering.\n * @return {?}\n */\n _MatTabBodyBase.prototype.ngOnInit = /**\n * After initialized, check if the content is centered and has an origin. If so, set the\n * special position states that transition the tab from the left or right before centering.\n * @return {?}\n */\n function () {\n if (this._position == 'center' && this.origin != null) {\n this._position = this._computePositionFromOrigin();\n }\n };\n /**\n * @return {?}\n */\n _MatTabBodyBase.prototype.ngOnDestroy = /**\n * @return {?}\n */\n function () {\n this._dirChangeSubscription.unsubscribe();\n this._translateTabComplete.complete();\n };\n /**\n * @param {?} event\n * @return {?}\n */\n _MatTabBodyBase.prototype._onTranslateTabStarted = /**\n * @param {?} event\n * @return {?}\n */\n function (event) {\n /** @type {?} */\n var isCentering = this._isCenterPosition(event.toState);\n this._beforeCentering.emit(isCentering);\n if (isCentering) {\n this._onCentering.emit(this._elementRef.nativeElement.clientHeight);\n }\n };\n /** The text direction of the containing app. */\n /**\n * The text direction of the containing app.\n * @return {?}\n */\n _MatTabBodyBase.prototype._getLayoutDirection = /**\n * The text direction of the containing app.\n * @return {?}\n */\n function () {\n return this._dir && this._dir.value === 'rtl' ? 'rtl' : 'ltr';\n };\n /** Whether the provided position state is considered center, regardless of origin. */\n /**\n * Whether the provided position state is considered center, regardless of origin.\n * @param {?} position\n * @return {?}\n */\n _MatTabBodyBase.prototype._isCenterPosition = /**\n * Whether the provided position state is considered center, regardless of origin.\n * @param {?} position\n * @return {?}\n */\n function (position) {\n return position == 'center' ||\n position == 'left-origin-center' ||\n position == 'right-origin-center';\n };\n /** Computes the position state that will be used for the tab-body animation trigger. */\n /**\n * Computes the position state that will be used for the tab-body animation trigger.\n * @private\n * @param {?=} dir\n * @return {?}\n */\n _MatTabBodyBase.prototype._computePositionAnimationState = /**\n * Computes the position state that will be used for the tab-body animation trigger.\n * @private\n * @param {?=} dir\n * @return {?}\n */\n function (dir) {\n if (dir === void 0) { dir = this._getLayoutDirection(); }\n if (this._positionIndex < 0) {\n this._position = dir == 'ltr' ? 'left' : 'right';\n }\n else if (this._positionIndex > 0) {\n this._position = dir == 'ltr' ? 'right' : 'left';\n }\n else {\n this._position = 'center';\n }\n };\n /**\n * Computes the position state based on the specified origin position. This is used if the\n * tab is becoming visible immediately after creation.\n */\n /**\n * Computes the position state based on the specified origin position. This is used if the\n * tab is becoming visible immediately after creation.\n * @private\n * @return {?}\n */\n _MatTabBodyBase.prototype._computePositionFromOrigin = /**\n * Computes the position state based on the specified origin position. This is used if the\n * tab is becoming visible immediately after creation.\n * @private\n * @return {?}\n */\n function () {\n /** @type {?} */\n var dir = this._getLayoutDirection();\n if ((dir == 'ltr' && this.origin <= 0) || (dir == 'rtl' && this.origin > 0)) {\n return 'left-origin-center';\n }\n return 'right-origin-center';\n };\n _MatTabBodyBase.decorators = [\n { type: Directive, args: [{\n // TODO(crisbeto): this selector can be removed when we update to Angular 9.0.\n selector: 'do-not-use-abstract-mat-tab-body-base'\n },] },\n ];\n /** @nocollapse */\n _MatTabBodyBase.ctorParameters = function () { return [\n { type: ElementRef },\n { type: Directionality, decorators: [{ type: Optional }] },\n { type: ChangeDetectorRef }\n ]; };\n _MatTabBodyBase.propDecorators = {\n _onCentering: [{ type: Output }],\n _beforeCentering: [{ type: Output }],\n _afterLeavingCenter: [{ type: Output }],\n _onCentered: [{ type: Output }],\n _content: [{ type: Input, args: ['content',] }],\n origin: [{ type: Input }],\n animationDuration: [{ type: Input }],\n position: [{ type: Input }]\n };\n return _MatTabBodyBase;\n}());\n/**\n * Wrapper for the contents of a tab.\n * \\@docs-private\n */\nvar MatTabBody = /** @class */ (function (_super) {\n __extends(MatTabBody, _super);\n function MatTabBody(elementRef, dir, changeDetectorRef) {\n return _super.call(this, elementRef, dir, changeDetectorRef) || this;\n }\n MatTabBody.decorators = [\n { type: Component, args: [{selector: 'mat-tab-body',\n template: \"
\",\n styles: [\".mat-tab-body-content{height:100%;overflow:auto}.mat-tab-group-dynamic-height .mat-tab-body-content{overflow:hidden}\"],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n animations: [matTabsAnimations.translateTab],\n host: {\n 'class': 'mat-tab-body',\n }\n },] },\n ];\n /** @nocollapse */\n MatTabBody.ctorParameters = function () { return [\n { type: ElementRef },\n { type: Directionality, decorators: [{ type: Optional }] },\n { type: ChangeDetectorRef }\n ]; };\n MatTabBody.propDecorators = {\n _portalHost: [{ type: ViewChild, args: [PortalHostDirective, { static: false },] }]\n };\n return MatTabBody;\n}(_MatTabBodyBase));\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n/**\n * Used to generate unique ID's for each tab component\n * @type {?}\n */\nvar nextId = 0;\n/**\n * A simple change event emitted on focus or selection changes.\n */\nvar /**\n * A simple change event emitted on focus or selection changes.\n */\nMatTabChangeEvent = /** @class */ (function () {\n function MatTabChangeEvent() {\n }\n return MatTabChangeEvent;\n}());\n/**\n * Injection token that can be used to provide the default options the tabs module.\n * @type {?}\n */\nvar MAT_TABS_CONFIG = new InjectionToken('MAT_TABS_CONFIG');\n// Boilerplate for applying mixins to MatTabGroup.\n/**\n * \\@docs-private\n */\nvar \n// Boilerplate for applying mixins to MatTabGroup.\n/**\n * \\@docs-private\n */\nMatTabGroupMixinBase = /** @class */ (function () {\n function MatTabGroupMixinBase(_elementRef) {\n this._elementRef = _elementRef;\n }\n return MatTabGroupMixinBase;\n}());\n/** @type {?} */\nvar _MatTabGroupMixinBase = mixinColor(mixinDisableRipple(MatTabGroupMixinBase), 'primary');\n/**\n * Base class with all of the `MatTabGroupBase` functionality.\n * \\@docs-private\n * @abstract\n */\nvar _MatTabGroupBase = /** @class */ (function (_super) {\n __extends(_MatTabGroupBase, _super);\n function _MatTabGroupBase(elementRef, _changeDetectorRef, defaultConfig, _animationMode) {\n var _this = _super.call(this, elementRef) || this;\n _this._changeDetectorRef = _changeDetectorRef;\n _this._animationMode = _animationMode;\n /**\n * The tab index that should be selected after the content has been checked.\n */\n _this._indexToSelect = 0;\n /**\n * Snapshot of the height of the tab body wrapper before another tab is activated.\n */\n _this._tabBodyWrapperHeight = 0;\n /**\n * Subscription to tabs being added/removed.\n */\n _this._tabsSubscription = Subscription.EMPTY;\n /**\n * Subscription to changes in the tab labels.\n */\n _this._tabLabelSubscription = Subscription.EMPTY;\n _this._dynamicHeight = false;\n _this._selectedIndex = null;\n /**\n * Position of the tab header.\n */\n _this.headerPosition = 'above';\n /**\n * Output to enable support for two-way binding on `[(selectedIndex)]`\n */\n _this.selectedIndexChange = new EventEmitter();\n /**\n * Event emitted when focus has changed within a tab group.\n */\n _this.focusChange = new EventEmitter();\n /**\n * Event emitted when the body animation has completed\n */\n _this.animationDone = new EventEmitter();\n /**\n * Event emitted when the tab selection has changed.\n */\n _this.selectedTabChange = new EventEmitter(true);\n _this._groupId = nextId++;\n _this.animationDuration = defaultConfig && defaultConfig.animationDuration ?\n defaultConfig.animationDuration : '500ms';\n return _this;\n }\n Object.defineProperty(_MatTabGroupBase.prototype, \"dynamicHeight\", {\n /** Whether the tab group should grow to the size of the active tab. */\n get: /**\n * Whether the tab group should grow to the size of the active tab.\n * @return {?}\n */\n function () { return this._dynamicHeight; },\n set: /**\n * @param {?} value\n * @return {?}\n */\n function (value) { this._dynamicHeight = coerceBooleanProperty(value); },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(_MatTabGroupBase.prototype, \"selectedIndex\", {\n /** The index of the active tab. */\n get: /**\n * The index of the active tab.\n * @return {?}\n */\n function () { return this._selectedIndex; },\n set: /**\n * @param {?} value\n * @return {?}\n */\n function (value) {\n this._indexToSelect = coerceNumberProperty(value, null);\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(_MatTabGroupBase.prototype, \"animationDuration\", {\n /** Duration for the tab animation. Will be normalized to milliseconds if no units are set. */\n get: /**\n * Duration for the tab animation. Will be normalized to milliseconds if no units are set.\n * @return {?}\n */\n function () { return this._animationDuration; },\n set: /**\n * @param {?} value\n * @return {?}\n */\n function (value) {\n this._animationDuration = /^\\d+$/.test(value) ? value + 'ms' : value;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(_MatTabGroupBase.prototype, \"backgroundColor\", {\n /** Background color of the tab group. */\n get: /**\n * Background color of the tab group.\n * @return {?}\n */\n function () { return this._backgroundColor; },\n set: /**\n * @param {?} value\n * @return {?}\n */\n function (value) {\n /** @type {?} */\n var nativeElement = this._elementRef.nativeElement;\n nativeElement.classList.remove(\"mat-background-\" + this.backgroundColor);\n if (value) {\n nativeElement.classList.add(\"mat-background-\" + value);\n }\n this._backgroundColor = value;\n },\n enumerable: true,\n configurable: true\n });\n /**\n * After the content is checked, this component knows what tabs have been defined\n * and what the selected index should be. This is where we can know exactly what position\n * each tab should be in according to the new selected index, and additionally we know how\n * a new selected tab should transition in (from the left or right).\n */\n /**\n * After the content is checked, this component knows what tabs have been defined\n * and what the selected index should be. This is where we can know exactly what position\n * each tab should be in according to the new selected index, and additionally we know how\n * a new selected tab should transition in (from the left or right).\n * @return {?}\n */\n _MatTabGroupBase.prototype.ngAfterContentChecked = /**\n * After the content is checked, this component knows what tabs have been defined\n * and what the selected index should be. This is where we can know exactly what position\n * each tab should be in according to the new selected index, and additionally we know how\n * a new selected tab should transition in (from the left or right).\n * @return {?}\n */\n function () {\n var _this = this;\n // Don't clamp the `indexToSelect` immediately in the setter because it can happen that\n // the amount of tabs changes before the actual change detection runs.\n /** @type {?} */\n var indexToSelect = this._indexToSelect = this._clampTabIndex(this._indexToSelect);\n // If there is a change in selected index, emit a change event. Should not trigger if\n // the selected index has not yet been initialized.\n if (this._selectedIndex != indexToSelect) {\n /** @type {?} */\n var isFirstRun_1 = this._selectedIndex == null;\n if (!isFirstRun_1) {\n this.selectedTabChange.emit(this._createChangeEvent(indexToSelect));\n }\n // Changing these values after change detection has run\n // since the checked content may contain references to them.\n Promise.resolve().then((/**\n * @return {?}\n */\n function () {\n _this._tabs.forEach((/**\n * @param {?} tab\n * @param {?} index\n * @return {?}\n */\n function (tab, index) { return tab.isActive = index === indexToSelect; }));\n if (!isFirstRun_1) {\n _this.selectedIndexChange.emit(indexToSelect);\n }\n }));\n }\n // Setup the position for each tab and optionally setup an origin on the next selected tab.\n this._tabs.forEach((/**\n * @param {?} tab\n * @param {?} index\n * @return {?}\n */\n function (tab, index) {\n tab.position = index - indexToSelect;\n // If there is already a selected tab, then set up an origin for the next selected tab\n // if it doesn't have one already.\n if (_this._selectedIndex != null && tab.position == 0 && !tab.origin) {\n tab.origin = indexToSelect - _this._selectedIndex;\n }\n }));\n if (this._selectedIndex !== indexToSelect) {\n this._selectedIndex = indexToSelect;\n this._changeDetectorRef.markForCheck();\n }\n };\n /**\n * @return {?}\n */\n _MatTabGroupBase.prototype.ngAfterContentInit = /**\n * @return {?}\n */\n function () {\n var _this = this;\n this._subscribeToTabLabels();\n // Subscribe to changes in the amount of tabs, in order to be\n // able to re-render the content as new tabs are added or removed.\n this._tabsSubscription = this._tabs.changes.subscribe((/**\n * @return {?}\n */\n function () {\n /** @type {?} */\n var indexToSelect = _this._clampTabIndex(_this._indexToSelect);\n // Maintain the previously-selected tab if a new tab is added or removed and there is no\n // explicit change that selects a different tab.\n if (indexToSelect === _this._selectedIndex) {\n /** @type {?} */\n var tabs = _this._tabs.toArray();\n for (var i = 0; i < tabs.length; i++) {\n if (tabs[i].isActive) {\n // Assign both to the `_indexToSelect` and `_selectedIndex` so we don't fire a changed\n // event, otherwise the consumer may end up in an infinite loop in some edge cases like\n // adding a tab within the `selectedIndexChange` event.\n _this._indexToSelect = _this._selectedIndex = i;\n break;\n }\n }\n }\n _this._subscribeToTabLabels();\n _this._changeDetectorRef.markForCheck();\n }));\n };\n /**\n * @return {?}\n */\n _MatTabGroupBase.prototype.ngOnDestroy = /**\n * @return {?}\n */\n function () {\n this._tabsSubscription.unsubscribe();\n this._tabLabelSubscription.unsubscribe();\n };\n /** Re-aligns the ink bar to the selected tab element. */\n /**\n * Re-aligns the ink bar to the selected tab element.\n * @return {?}\n */\n _MatTabGroupBase.prototype.realignInkBar = /**\n * Re-aligns the ink bar to the selected tab element.\n * @return {?}\n */\n function () {\n if (this._tabHeader) {\n this._tabHeader._alignInkBarToSelectedTab();\n }\n };\n /**\n * @param {?} index\n * @return {?}\n */\n _MatTabGroupBase.prototype._focusChanged = /**\n * @param {?} index\n * @return {?}\n */\n function (index) {\n this.focusChange.emit(this._createChangeEvent(index));\n };\n /**\n * @private\n * @param {?} index\n * @return {?}\n */\n _MatTabGroupBase.prototype._createChangeEvent = /**\n * @private\n * @param {?} index\n * @return {?}\n */\n function (index) {\n /** @type {?} */\n var event = new MatTabChangeEvent;\n event.index = index;\n if (this._tabs && this._tabs.length) {\n event.tab = this._tabs.toArray()[index];\n }\n return event;\n };\n /**\n * Subscribes to changes in the tab labels. This is needed, because the @Input for the label is\n * on the MatTab component, whereas the data binding is inside the MatTabGroup. In order for the\n * binding to be updated, we need to subscribe to changes in it and trigger change detection\n * manually.\n */\n /**\n * Subscribes to changes in the tab labels. This is needed, because the \\@Input for the label is\n * on the MatTab component, whereas the data binding is inside the MatTabGroup. In order for the\n * binding to be updated, we need to subscribe to changes in it and trigger change detection\n * manually.\n * @private\n * @return {?}\n */\n _MatTabGroupBase.prototype._subscribeToTabLabels = /**\n * Subscribes to changes in the tab labels. This is needed, because the \\@Input for the label is\n * on the MatTab component, whereas the data binding is inside the MatTabGroup. In order for the\n * binding to be updated, we need to subscribe to changes in it and trigger change detection\n * manually.\n * @private\n * @return {?}\n */\n function () {\n var _this = this;\n if (this._tabLabelSubscription) {\n this._tabLabelSubscription.unsubscribe();\n }\n this._tabLabelSubscription = merge.apply(void 0, this._tabs.map((/**\n * @param {?} tab\n * @return {?}\n */\n function (tab) { return tab._stateChanges; }))).subscribe((/**\n * @return {?}\n */\n function () { return _this._changeDetectorRef.markForCheck(); }));\n };\n /** Clamps the given index to the bounds of 0 and the tabs length. */\n /**\n * Clamps the given index to the bounds of 0 and the tabs length.\n * @private\n * @param {?} index\n * @return {?}\n */\n _MatTabGroupBase.prototype._clampTabIndex = /**\n * Clamps the given index to the bounds of 0 and the tabs length.\n * @private\n * @param {?} index\n * @return {?}\n */\n function (index) {\n // Note the `|| 0`, which ensures that values like NaN can't get through\n // and which would otherwise throw the component into an infinite loop\n // (since Math.max(NaN, 0) === NaN).\n return Math.min(this._tabs.length - 1, Math.max(index || 0, 0));\n };\n /** Returns a unique id for each tab label element */\n /**\n * Returns a unique id for each tab label element\n * @param {?} i\n * @return {?}\n */\n _MatTabGroupBase.prototype._getTabLabelId = /**\n * Returns a unique id for each tab label element\n * @param {?} i\n * @return {?}\n */\n function (i) {\n return \"mat-tab-label-\" + this._groupId + \"-\" + i;\n };\n /** Returns a unique id for each tab content element */\n /**\n * Returns a unique id for each tab content element\n * @param {?} i\n * @return {?}\n */\n _MatTabGroupBase.prototype._getTabContentId = /**\n * Returns a unique id for each tab content element\n * @param {?} i\n * @return {?}\n */\n function (i) {\n return \"mat-tab-content-\" + this._groupId + \"-\" + i;\n };\n /**\n * Sets the height of the body wrapper to the height of the activating tab if dynamic\n * height property is true.\n */\n /**\n * Sets the height of the body wrapper to the height of the activating tab if dynamic\n * height property is true.\n * @param {?} tabHeight\n * @return {?}\n */\n _MatTabGroupBase.prototype._setTabBodyWrapperHeight = /**\n * Sets the height of the body wrapper to the height of the activating tab if dynamic\n * height property is true.\n * @param {?} tabHeight\n * @return {?}\n */\n function (tabHeight) {\n if (!this._dynamicHeight || !this._tabBodyWrapperHeight) {\n return;\n }\n /** @type {?} */\n var wrapper = this._tabBodyWrapper.nativeElement;\n wrapper.style.height = this._tabBodyWrapperHeight + 'px';\n // This conditional forces the browser to paint the height so that\n // the animation to the new height can have an origin.\n if (this._tabBodyWrapper.nativeElement.offsetHeight) {\n wrapper.style.height = tabHeight + 'px';\n }\n };\n /** Removes the height of the tab body wrapper. */\n /**\n * Removes the height of the tab body wrapper.\n * @return {?}\n */\n _MatTabGroupBase.prototype._removeTabBodyWrapperHeight = /**\n * Removes the height of the tab body wrapper.\n * @return {?}\n */\n function () {\n /** @type {?} */\n var wrapper = this._tabBodyWrapper.nativeElement;\n this._tabBodyWrapperHeight = wrapper.clientHeight;\n wrapper.style.height = '';\n this.animationDone.emit();\n };\n /** Handle click events, setting new selected index if appropriate. */\n /**\n * Handle click events, setting new selected index if appropriate.\n * @param {?} tab\n * @param {?} tabHeader\n * @param {?} index\n * @return {?}\n */\n _MatTabGroupBase.prototype._handleClick = /**\n * Handle click events, setting new selected index if appropriate.\n * @param {?} tab\n * @param {?} tabHeader\n * @param {?} index\n * @return {?}\n */\n function (tab, tabHeader, index) {\n if (!tab.disabled) {\n this.selectedIndex = tabHeader.focusIndex = index;\n }\n };\n /** Retrieves the tabindex for the tab. */\n /**\n * Retrieves the tabindex for the tab.\n * @param {?} tab\n * @param {?} idx\n * @return {?}\n */\n _MatTabGroupBase.prototype._getTabIndex = /**\n * Retrieves the tabindex for the tab.\n * @param {?} tab\n * @param {?} idx\n * @return {?}\n */\n function (tab, idx) {\n if (tab.disabled) {\n return null;\n }\n return this.selectedIndex === idx ? 0 : -1;\n };\n _MatTabGroupBase.decorators = [\n { type: Directive, args: [{\n // TODO(crisbeto): this selector can be removed when we update to Angular 9.0.\n selector: 'do-not-use-abstract-mat-tab-group-base'\n },] },\n ];\n /** @nocollapse */\n _MatTabGroupBase.ctorParameters = function () { return [\n { type: ElementRef },\n { type: ChangeDetectorRef },\n { type: undefined, decorators: [{ type: Inject, args: [MAT_TABS_CONFIG,] }, { type: Optional }] },\n { type: String, decorators: [{ type: Optional }, { type: Inject, args: [ANIMATION_MODULE_TYPE,] }] }\n ]; };\n _MatTabGroupBase.propDecorators = {\n dynamicHeight: [{ type: Input }],\n selectedIndex: [{ type: Input }],\n headerPosition: [{ type: Input }],\n animationDuration: [{ type: Input }],\n backgroundColor: [{ type: Input }],\n selectedIndexChange: [{ type: Output }],\n focusChange: [{ type: Output }],\n animationDone: [{ type: Output }],\n selectedTabChange: [{ type: Output }]\n };\n return _MatTabGroupBase;\n}(_MatTabGroupMixinBase));\n/**\n * Material design tab-group component. Supports basic tab pairs (label + content) and includes\n * animated ink-bar, keyboard navigation, and screen reader.\n * See: https://material.io/design/components/tabs.html\n */\nvar MatTabGroup = /** @class */ (function (_super) {\n __extends(MatTabGroup, _super);\n function MatTabGroup(elementRef, changeDetectorRef, defaultConfig, animationMode) {\n return _super.call(this, elementRef, changeDetectorRef, defaultConfig, animationMode) || this;\n }\n MatTabGroup.decorators = [\n { type: Component, args: [{selector: 'mat-tab-group',\n exportAs: 'matTabGroup',\n template: \"
{{tab.textLabel}}
\",\n styles: [\".mat-tab-group{display:flex;flex-direction:column}.mat-tab-group.mat-tab-group-inverted-header{flex-direction:column-reverse}.mat-tab-label{height:48px;padding:0 24px;cursor:pointer;box-sizing:border-box;opacity:.6;min-width:160px;text-align:center;display:inline-flex;justify-content:center;align-items:center;white-space:nowrap;position:relative}.mat-tab-label:focus{outline:0}.mat-tab-label:focus:not(.mat-tab-disabled){opacity:1}@media (-ms-high-contrast:active){.mat-tab-label:focus{outline:dotted 2px}}.mat-tab-label.mat-tab-disabled{cursor:default}@media (-ms-high-contrast:active){.mat-tab-label.mat-tab-disabled{opacity:.5}}.mat-tab-label .mat-tab-label-content{display:inline-flex;justify-content:center;align-items:center;white-space:nowrap}@media (-ms-high-contrast:active){.mat-tab-label{opacity:1}}@media (max-width:599px){.mat-tab-label{padding:0 12px}}@media (max-width:959px){.mat-tab-label{padding:0 12px}}.mat-tab-group[mat-stretch-tabs]>.mat-tab-header .mat-tab-label{flex-basis:0;flex-grow:1}.mat-tab-body-wrapper{position:relative;overflow:hidden;display:flex;transition:height .5s cubic-bezier(.35,0,.25,1)}._mat-animation-noopable.mat-tab-body-wrapper{transition:none;animation:none}.mat-tab-body{top:0;left:0;right:0;bottom:0;position:absolute;display:block;overflow:hidden;flex-basis:100%}.mat-tab-body.mat-tab-body-active{position:relative;overflow-x:hidden;overflow-y:auto;z-index:1;flex-grow:1}.mat-tab-group.mat-tab-group-dynamic-height .mat-tab-body.mat-tab-body-active{overflow-y:hidden}\"],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n inputs: ['color', 'disableRipple'],\n host: {\n 'class': 'mat-tab-group',\n '[class.mat-tab-group-dynamic-height]': 'dynamicHeight',\n '[class.mat-tab-group-inverted-header]': 'headerPosition === \"below\"',\n },\n },] },\n ];\n /** @nocollapse */\n MatTabGroup.ctorParameters = function () { return [\n { type: ElementRef },\n { type: ChangeDetectorRef },\n { type: undefined, decorators: [{ type: Inject, args: [MAT_TABS_CONFIG,] }, { type: Optional }] },\n { type: String, decorators: [{ type: Optional }, { type: Inject, args: [ANIMATION_MODULE_TYPE,] }] }\n ]; };\n MatTabGroup.propDecorators = {\n _tabs: [{ type: ContentChildren, args: [MatTab,] }],\n _tabBodyWrapper: [{ type: ViewChild, args: ['tabBodyWrapper', { static: false },] }],\n _tabHeader: [{ type: ViewChild, args: ['tabHeader', { static: false },] }]\n };\n return MatTabGroup;\n}(_MatTabGroupBase));\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n// Boilerplate for applying mixins to MatTabLabelWrapper.\n/**\n * \\@docs-private\n */\nvar \n// Boilerplate for applying mixins to MatTabLabelWrapper.\n/**\n * \\@docs-private\n */\nMatTabLabelWrapperBase = /** @class */ (function () {\n function MatTabLabelWrapperBase() {\n }\n return MatTabLabelWrapperBase;\n}());\n/** @type {?} */\nvar _MatTabLabelWrapperMixinBase = mixinDisabled(MatTabLabelWrapperBase);\n/**\n * Used in the `mat-tab-group` view to display tab labels.\n * \\@docs-private\n */\nvar MatTabLabelWrapper = /** @class */ (function (_super) {\n __extends(MatTabLabelWrapper, _super);\n function MatTabLabelWrapper(elementRef) {\n var _this = _super.call(this) || this;\n _this.elementRef = elementRef;\n return _this;\n }\n /** Sets focus on the wrapper element */\n /**\n * Sets focus on the wrapper element\n * @return {?}\n */\n MatTabLabelWrapper.prototype.focus = /**\n * Sets focus on the wrapper element\n * @return {?}\n */\n function () {\n this.elementRef.nativeElement.focus();\n };\n /**\n * @return {?}\n */\n MatTabLabelWrapper.prototype.getOffsetLeft = /**\n * @return {?}\n */\n function () {\n return this.elementRef.nativeElement.offsetLeft;\n };\n /**\n * @return {?}\n */\n MatTabLabelWrapper.prototype.getOffsetWidth = /**\n * @return {?}\n */\n function () {\n return this.elementRef.nativeElement.offsetWidth;\n };\n MatTabLabelWrapper.decorators = [\n { type: Directive, args: [{\n selector: '[matTabLabelWrapper]',\n inputs: ['disabled'],\n host: {\n '[class.mat-tab-disabled]': 'disabled',\n '[attr.aria-disabled]': '!!disabled',\n }\n },] },\n ];\n /** @nocollapse */\n MatTabLabelWrapper.ctorParameters = function () { return [\n { type: ElementRef }\n ]; };\n return MatTabLabelWrapper;\n}(_MatTabLabelWrapperMixinBase));\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n/**\n * Config used to bind passive event listeners\n * @type {?}\n */\nvar passiveEventListenerOptions = (/** @type {?} */ (normalizePassiveListenerOptions({ passive: true })));\n/**\n * The distance in pixels that will be overshot when scrolling a tab label into view. This helps\n * provide a small affordance to the label next to it.\n * @type {?}\n */\nvar EXAGGERATED_OVERSCROLL = 60;\n/**\n * Amount of milliseconds to wait before starting to scroll the header automatically.\n * Set a little conservatively in order to handle fake events dispatched on touch devices.\n * @type {?}\n */\nvar HEADER_SCROLL_DELAY = 650;\n/**\n * Interval in milliseconds at which to scroll the header\n * while the user is holding their pointer.\n * @type {?}\n */\nvar HEADER_SCROLL_INTERVAL = 100;\n/**\n * Base class for a tab header that supported pagination.\n * \\@docs-private\n * @abstract\n */\nvar MatPaginatedTabHeader = /** @class */ (function () {\n function MatPaginatedTabHeader(_elementRef, _changeDetectorRef, _viewportRuler, _dir, _ngZone, _platform, _animationMode) {\n var _this = this;\n this._elementRef = _elementRef;\n this._changeDetectorRef = _changeDetectorRef;\n this._viewportRuler = _viewportRuler;\n this._dir = _dir;\n this._ngZone = _ngZone;\n this._platform = _platform;\n this._animationMode = _animationMode;\n /**\n * The distance in pixels that the tab labels should be translated to the left.\n */\n this._scrollDistance = 0;\n /**\n * Whether the header should scroll to the selected index after the view has been checked.\n */\n this._selectedIndexChanged = false;\n /**\n * Emits when the component is destroyed.\n */\n this._destroyed = new Subject();\n /**\n * Whether the controls for pagination should be displayed\n */\n this._showPaginationControls = false;\n /**\n * Whether the tab list can be scrolled more towards the end of the tab label list.\n */\n this._disableScrollAfter = true;\n /**\n * Whether the tab list can be scrolled more towards the beginning of the tab label list.\n */\n this._disableScrollBefore = true;\n /**\n * Stream that will stop the automated scrolling.\n */\n this._stopScrolling = new Subject();\n this._selectedIndex = 0;\n /**\n * Event emitted when the option is selected.\n */\n this.selectFocusedIndex = new EventEmitter();\n /**\n * Event emitted when a label is focused.\n */\n this.indexFocused = new EventEmitter();\n // Bind the `mouseleave` event on the outside since it doesn't change anything in the view.\n _ngZone.runOutsideAngular((/**\n * @return {?}\n */\n function () {\n fromEvent(_elementRef.nativeElement, 'mouseleave')\n .pipe(takeUntil(_this._destroyed))\n .subscribe((/**\n * @return {?}\n */\n function () {\n _this._stopInterval();\n }));\n }));\n }\n Object.defineProperty(MatPaginatedTabHeader.prototype, \"selectedIndex\", {\n /** The index of the active tab. */\n get: /**\n * The index of the active tab.\n * @return {?}\n */\n function () { return this._selectedIndex; },\n set: /**\n * @param {?} value\n * @return {?}\n */\n function (value) {\n value = coerceNumberProperty(value);\n if (this._selectedIndex != value) {\n this._selectedIndexChanged = true;\n this._selectedIndex = value;\n if (this._keyManager) {\n this._keyManager.updateActiveItemIndex(value);\n }\n }\n },\n enumerable: true,\n configurable: true\n });\n /**\n * @return {?}\n */\n MatPaginatedTabHeader.prototype.ngAfterViewInit = /**\n * @return {?}\n */\n function () {\n var _this = this;\n // We need to handle these events manually, because we want to bind passive event listeners.\n fromEvent(this._previousPaginator.nativeElement, 'touchstart', passiveEventListenerOptions)\n .pipe(takeUntil(this._destroyed))\n .subscribe((/**\n * @return {?}\n */\n function () {\n _this._handlePaginatorPress('before');\n }));\n fromEvent(this._nextPaginator.nativeElement, 'touchstart', passiveEventListenerOptions)\n .pipe(takeUntil(this._destroyed))\n .subscribe((/**\n * @return {?}\n */\n function () {\n _this._handlePaginatorPress('after');\n }));\n };\n /**\n * @return {?}\n */\n MatPaginatedTabHeader.prototype.ngAfterContentInit = /**\n * @return {?}\n */\n function () {\n var _this = this;\n /** @type {?} */\n var dirChange = this._dir ? this._dir.change : of(null);\n /** @type {?} */\n var resize = this._viewportRuler.change(150);\n /** @type {?} */\n var realign = (/**\n * @return {?}\n */\n function () {\n _this.updatePagination();\n _this._alignInkBarToSelectedTab();\n });\n this._keyManager = new FocusKeyManager(this._items)\n .withHorizontalOrientation(this._getLayoutDirection())\n .withWrap();\n this._keyManager.updateActiveItem(0);\n // Defer the first call in order to allow for slower browsers to lay out the elements.\n // This helps in cases where the user lands directly on a page with paginated tabs.\n typeof requestAnimationFrame !== 'undefined' ? requestAnimationFrame(realign) : realign();\n // On dir change or window resize, realign the ink bar and update the orientation of\n // the key manager if the direction has changed.\n merge(dirChange, resize, this._items.changes).pipe(takeUntil(this._destroyed)).subscribe((/**\n * @return {?}\n */\n function () {\n realign();\n _this._keyManager.withHorizontalOrientation(_this._getLayoutDirection());\n }));\n // If there is a change in the focus key manager we need to emit the `indexFocused`\n // event in order to provide a public event that notifies about focus changes. Also we realign\n // the tabs container by scrolling the new focused tab into the visible section.\n this._keyManager.change.pipe(takeUntil(this._destroyed)).subscribe((/**\n * @param {?} newFocusIndex\n * @return {?}\n */\n function (newFocusIndex) {\n _this.indexFocused.emit(newFocusIndex);\n _this._setTabFocus(newFocusIndex);\n }));\n };\n /**\n * @return {?}\n */\n MatPaginatedTabHeader.prototype.ngAfterContentChecked = /**\n * @return {?}\n */\n function () {\n // If the number of tab labels have changed, check if scrolling should be enabled\n if (this._tabLabelCount != this._items.length) {\n this.updatePagination();\n this._tabLabelCount = this._items.length;\n this._changeDetectorRef.markForCheck();\n }\n // If the selected index has changed, scroll to the label and check if the scrolling controls\n // should be disabled.\n if (this._selectedIndexChanged) {\n this._scrollToLabel(this._selectedIndex);\n this._checkScrollingControls();\n this._alignInkBarToSelectedTab();\n this._selectedIndexChanged = false;\n this._changeDetectorRef.markForCheck();\n }\n // If the scroll distance has been changed (tab selected, focused, scroll controls activated),\n // then translate the header to reflect this.\n if (this._scrollDistanceChanged) {\n this._updateTabScrollPosition();\n this._scrollDistanceChanged = false;\n this._changeDetectorRef.markForCheck();\n }\n };\n /**\n * @return {?}\n */\n MatPaginatedTabHeader.prototype.ngOnDestroy = /**\n * @return {?}\n */\n function () {\n this._destroyed.next();\n this._destroyed.complete();\n this._stopScrolling.complete();\n };\n /** Handles keyboard events on the header. */\n /**\n * Handles keyboard events on the header.\n * @param {?} event\n * @return {?}\n */\n MatPaginatedTabHeader.prototype._handleKeydown = /**\n * Handles keyboard events on the header.\n * @param {?} event\n * @return {?}\n */\n function (event) {\n // We don't handle any key bindings with a modifier key.\n if (hasModifierKey(event)) {\n return;\n }\n switch (event.keyCode) {\n case HOME:\n this._keyManager.setFirstItemActive();\n event.preventDefault();\n break;\n case END:\n this._keyManager.setLastItemActive();\n event.preventDefault();\n break;\n case ENTER:\n case SPACE:\n this.selectFocusedIndex.emit(this.focusIndex);\n this._itemSelected(event);\n break;\n default:\n this._keyManager.onKeydown(event);\n }\n };\n /**\n * Callback for when the MutationObserver detects that the content has changed.\n */\n /**\n * Callback for when the MutationObserver detects that the content has changed.\n * @return {?}\n */\n MatPaginatedTabHeader.prototype._onContentChanges = /**\n * Callback for when the MutationObserver detects that the content has changed.\n * @return {?}\n */\n function () {\n var _this = this;\n /** @type {?} */\n var textContent = this._elementRef.nativeElement.textContent;\n // We need to diff the text content of the header, because the MutationObserver callback\n // will fire even if the text content didn't change which is inefficient and is prone\n // to infinite loops if a poorly constructed expression is passed in (see #14249).\n if (textContent !== this._currentTextContent) {\n this._currentTextContent = textContent || '';\n // The content observer runs outside the `NgZone` by default, which\n // means that we need to bring the callback back in ourselves.\n this._ngZone.run((/**\n * @return {?}\n */\n function () {\n _this.updatePagination();\n _this._alignInkBarToSelectedTab();\n _this._changeDetectorRef.markForCheck();\n }));\n }\n };\n /**\n * Updates the view whether pagination should be enabled or not.\n *\n * WARNING: Calling this method can be very costly in terms of performance. It should be called\n * as infrequently as possible from outside of the Tabs component as it causes a reflow of the\n * page.\n */\n /**\n * Updates the view whether pagination should be enabled or not.\n *\n * WARNING: Calling this method can be very costly in terms of performance. It should be called\n * as infrequently as possible from outside of the Tabs component as it causes a reflow of the\n * page.\n * @return {?}\n */\n MatPaginatedTabHeader.prototype.updatePagination = /**\n * Updates the view whether pagination should be enabled or not.\n *\n * WARNING: Calling this method can be very costly in terms of performance. It should be called\n * as infrequently as possible from outside of the Tabs component as it causes a reflow of the\n * page.\n * @return {?}\n */\n function () {\n this._checkPaginationEnabled();\n this._checkScrollingControls();\n this._updateTabScrollPosition();\n };\n Object.defineProperty(MatPaginatedTabHeader.prototype, \"focusIndex\", {\n /** Tracks which element has focus; used for keyboard navigation */\n get: /**\n * Tracks which element has focus; used for keyboard navigation\n * @return {?}\n */\n function () {\n return this._keyManager ? (/** @type {?} */ (this._keyManager.activeItemIndex)) : 0;\n },\n /** When the focus index is set, we must manually send focus to the correct label */\n set: /**\n * When the focus index is set, we must manually send focus to the correct label\n * @param {?} value\n * @return {?}\n */\n function (value) {\n if (!this._isValidIndex(value) || this.focusIndex === value || !this._keyManager) {\n return;\n }\n this._keyManager.setActiveItem(value);\n },\n enumerable: true,\n configurable: true\n });\n /**\n * Determines if an index is valid. If the tabs are not ready yet, we assume that the user is\n * providing a valid index and return true.\n */\n /**\n * Determines if an index is valid. If the tabs are not ready yet, we assume that the user is\n * providing a valid index and return true.\n * @param {?} index\n * @return {?}\n */\n MatPaginatedTabHeader.prototype._isValidIndex = /**\n * Determines if an index is valid. If the tabs are not ready yet, we assume that the user is\n * providing a valid index and return true.\n * @param {?} index\n * @return {?}\n */\n function (index) {\n if (!this._items) {\n return true;\n }\n /** @type {?} */\n var tab = this._items ? this._items.toArray()[index] : null;\n return !!tab && !tab.disabled;\n };\n /**\n * Sets focus on the HTML element for the label wrapper and scrolls it into the view if\n * scrolling is enabled.\n */\n /**\n * Sets focus on the HTML element for the label wrapper and scrolls it into the view if\n * scrolling is enabled.\n * @param {?} tabIndex\n * @return {?}\n */\n MatPaginatedTabHeader.prototype._setTabFocus = /**\n * Sets focus on the HTML element for the label wrapper and scrolls it into the view if\n * scrolling is enabled.\n * @param {?} tabIndex\n * @return {?}\n */\n function (tabIndex) {\n if (this._showPaginationControls) {\n this._scrollToLabel(tabIndex);\n }\n if (this._items && this._items.length) {\n this._items.toArray()[tabIndex].focus();\n // Do not let the browser manage scrolling to focus the element, this will be handled\n // by using translation. In LTR, the scroll left should be 0. In RTL, the scroll width\n // should be the full width minus the offset width.\n /** @type {?} */\n var containerEl = this._tabListContainer.nativeElement;\n /** @type {?} */\n var dir = this._getLayoutDirection();\n if (dir == 'ltr') {\n containerEl.scrollLeft = 0;\n }\n else {\n containerEl.scrollLeft = containerEl.scrollWidth - containerEl.offsetWidth;\n }\n }\n };\n /** The layout direction of the containing app. */\n /**\n * The layout direction of the containing app.\n * @return {?}\n */\n MatPaginatedTabHeader.prototype._getLayoutDirection = /**\n * The layout direction of the containing app.\n * @return {?}\n */\n function () {\n return this._dir && this._dir.value === 'rtl' ? 'rtl' : 'ltr';\n };\n /** Performs the CSS transformation on the tab list that will cause the list to scroll. */\n /**\n * Performs the CSS transformation on the tab list that will cause the list to scroll.\n * @return {?}\n */\n MatPaginatedTabHeader.prototype._updateTabScrollPosition = /**\n * Performs the CSS transformation on the tab list that will cause the list to scroll.\n * @return {?}\n */\n function () {\n /** @type {?} */\n var scrollDistance = this.scrollDistance;\n /** @type {?} */\n var platform = this._platform;\n /** @type {?} */\n var translateX = this._getLayoutDirection() === 'ltr' ? -scrollDistance : scrollDistance;\n // Don't use `translate3d` here because we don't want to create a new layer. A new layer\n // seems to cause flickering and overflow in Internet Explorer. For example, the ink bar\n // and ripples will exceed the boundaries of the visible tab bar.\n // See: https://github.com/angular/components/issues/10276\n // We round the `transform` here, because transforms with sub-pixel precision cause some\n // browsers to blur the content of the element.\n this._tabList.nativeElement.style.transform = \"translateX(\" + Math.round(translateX) + \"px)\";\n // Setting the `transform` on IE will change the scroll offset of the parent, causing the\n // position to be thrown off in some cases. We have to reset it ourselves to ensure that\n // it doesn't get thrown off. Note that we scope it only to IE and Edge, because messing\n // with the scroll position throws off Chrome 71+ in RTL mode (see #14689).\n // @breaking-change 9.0.0 Remove null check for `platform` after it can no longer be undefined.\n if (platform && (platform.TRIDENT || platform.EDGE)) {\n this._tabListContainer.nativeElement.scrollLeft = 0;\n }\n };\n Object.defineProperty(MatPaginatedTabHeader.prototype, \"scrollDistance\", {\n /** Sets the distance in pixels that the tab header should be transformed in the X-axis. */\n get: /**\n * Sets the distance in pixels that the tab header should be transformed in the X-axis.\n * @return {?}\n */\n function () { return this._scrollDistance; },\n set: /**\n * @param {?} value\n * @return {?}\n */\n function (value) {\n this._scrollTo(value);\n },\n enumerable: true,\n configurable: true\n });\n /**\n * Moves the tab list in the 'before' or 'after' direction (towards the beginning of the list or\n * the end of the list, respectively). The distance to scroll is computed to be a third of the\n * length of the tab list view window.\n *\n * This is an expensive call that forces a layout reflow to compute box and scroll metrics and\n * should be called sparingly.\n */\n /**\n * Moves the tab list in the 'before' or 'after' direction (towards the beginning of the list or\n * the end of the list, respectively). The distance to scroll is computed to be a third of the\n * length of the tab list view window.\n *\n * This is an expensive call that forces a layout reflow to compute box and scroll metrics and\n * should be called sparingly.\n * @param {?} direction\n * @return {?}\n */\n MatPaginatedTabHeader.prototype._scrollHeader = /**\n * Moves the tab list in the 'before' or 'after' direction (towards the beginning of the list or\n * the end of the list, respectively). The distance to scroll is computed to be a third of the\n * length of the tab list view window.\n *\n * This is an expensive call that forces a layout reflow to compute box and scroll metrics and\n * should be called sparingly.\n * @param {?} direction\n * @return {?}\n */\n function (direction) {\n /** @type {?} */\n var viewLength = this._tabListContainer.nativeElement.offsetWidth;\n // Move the scroll distance one-third the length of the tab list's viewport.\n /** @type {?} */\n var scrollAmount = (direction == 'before' ? -1 : 1) * viewLength / 3;\n return this._scrollTo(this._scrollDistance + scrollAmount);\n };\n /** Handles click events on the pagination arrows. */\n /**\n * Handles click events on the pagination arrows.\n * @param {?} direction\n * @return {?}\n */\n MatPaginatedTabHeader.prototype._handlePaginatorClick = /**\n * Handles click events on the pagination arrows.\n * @param {?} direction\n * @return {?}\n */\n function (direction) {\n this._stopInterval();\n this._scrollHeader(direction);\n };\n /**\n * Moves the tab list such that the desired tab label (marked by index) is moved into view.\n *\n * This is an expensive call that forces a layout reflow to compute box and scroll metrics and\n * should be called sparingly.\n */\n /**\n * Moves the tab list such that the desired tab label (marked by index) is moved into view.\n *\n * This is an expensive call that forces a layout reflow to compute box and scroll metrics and\n * should be called sparingly.\n * @param {?} labelIndex\n * @return {?}\n */\n MatPaginatedTabHeader.prototype._scrollToLabel = /**\n * Moves the tab list such that the desired tab label (marked by index) is moved into view.\n *\n * This is an expensive call that forces a layout reflow to compute box and scroll metrics and\n * should be called sparingly.\n * @param {?} labelIndex\n * @return {?}\n */\n function (labelIndex) {\n /** @type {?} */\n var selectedLabel = this._items ? this._items.toArray()[labelIndex] : null;\n if (!selectedLabel) {\n return;\n }\n // The view length is the visible width of the tab labels.\n /** @type {?} */\n var viewLength = this._tabListContainer.nativeElement.offsetWidth;\n var _a = selectedLabel.elementRef.nativeElement, offsetLeft = _a.offsetLeft, offsetWidth = _a.offsetWidth;\n /** @type {?} */\n var labelBeforePos;\n /** @type {?} */\n var labelAfterPos;\n if (this._getLayoutDirection() == 'ltr') {\n labelBeforePos = offsetLeft;\n labelAfterPos = labelBeforePos + offsetWidth;\n }\n else {\n labelAfterPos = this._tabList.nativeElement.offsetWidth - offsetLeft;\n labelBeforePos = labelAfterPos - offsetWidth;\n }\n /** @type {?} */\n var beforeVisiblePos = this.scrollDistance;\n /** @type {?} */\n var afterVisiblePos = this.scrollDistance + viewLength;\n if (labelBeforePos < beforeVisiblePos) {\n // Scroll header to move label to the before direction\n this.scrollDistance -= beforeVisiblePos - labelBeforePos + EXAGGERATED_OVERSCROLL;\n }\n else if (labelAfterPos > afterVisiblePos) {\n // Scroll header to move label to the after direction\n this.scrollDistance += labelAfterPos - afterVisiblePos + EXAGGERATED_OVERSCROLL;\n }\n };\n /**\n * Evaluate whether the pagination controls should be displayed. If the scroll width of the\n * tab list is wider than the size of the header container, then the pagination controls should\n * be shown.\n *\n * This is an expensive call that forces a layout reflow to compute box and scroll metrics and\n * should be called sparingly.\n */\n /**\n * Evaluate whether the pagination controls should be displayed. If the scroll width of the\n * tab list is wider than the size of the header container, then the pagination controls should\n * be shown.\n *\n * This is an expensive call that forces a layout reflow to compute box and scroll metrics and\n * should be called sparingly.\n * @return {?}\n */\n MatPaginatedTabHeader.prototype._checkPaginationEnabled = /**\n * Evaluate whether the pagination controls should be displayed. If the scroll width of the\n * tab list is wider than the size of the header container, then the pagination controls should\n * be shown.\n *\n * This is an expensive call that forces a layout reflow to compute box and scroll metrics and\n * should be called sparingly.\n * @return {?}\n */\n function () {\n /** @type {?} */\n var isEnabled = this._tabList.nativeElement.scrollWidth > this._elementRef.nativeElement.offsetWidth;\n if (!isEnabled) {\n this.scrollDistance = 0;\n }\n if (isEnabled !== this._showPaginationControls) {\n this._changeDetectorRef.markForCheck();\n }\n this._showPaginationControls = isEnabled;\n };\n /**\n * Evaluate whether the before and after controls should be enabled or disabled.\n * If the header is at the beginning of the list (scroll distance is equal to 0) then disable the\n * before button. If the header is at the end of the list (scroll distance is equal to the\n * maximum distance we can scroll), then disable the after button.\n *\n * This is an expensive call that forces a layout reflow to compute box and scroll metrics and\n * should be called sparingly.\n */\n /**\n * Evaluate whether the before and after controls should be enabled or disabled.\n * If the header is at the beginning of the list (scroll distance is equal to 0) then disable the\n * before button. If the header is at the end of the list (scroll distance is equal to the\n * maximum distance we can scroll), then disable the after button.\n *\n * This is an expensive call that forces a layout reflow to compute box and scroll metrics and\n * should be called sparingly.\n * @return {?}\n */\n MatPaginatedTabHeader.prototype._checkScrollingControls = /**\n * Evaluate whether the before and after controls should be enabled or disabled.\n * If the header is at the beginning of the list (scroll distance is equal to 0) then disable the\n * before button. If the header is at the end of the list (scroll distance is equal to the\n * maximum distance we can scroll), then disable the after button.\n *\n * This is an expensive call that forces a layout reflow to compute box and scroll metrics and\n * should be called sparingly.\n * @return {?}\n */\n function () {\n // Check if the pagination arrows should be activated.\n this._disableScrollBefore = this.scrollDistance == 0;\n this._disableScrollAfter = this.scrollDistance == this._getMaxScrollDistance();\n this._changeDetectorRef.markForCheck();\n };\n /**\n * Determines what is the maximum length in pixels that can be set for the scroll distance. This\n * is equal to the difference in width between the tab list container and tab header container.\n *\n * This is an expensive call that forces a layout reflow to compute box and scroll metrics and\n * should be called sparingly.\n */\n /**\n * Determines what is the maximum length in pixels that can be set for the scroll distance. This\n * is equal to the difference in width between the tab list container and tab header container.\n *\n * This is an expensive call that forces a layout reflow to compute box and scroll metrics and\n * should be called sparingly.\n * @return {?}\n */\n MatPaginatedTabHeader.prototype._getMaxScrollDistance = /**\n * Determines what is the maximum length in pixels that can be set for the scroll distance. This\n * is equal to the difference in width between the tab list container and tab header container.\n *\n * This is an expensive call that forces a layout reflow to compute box and scroll metrics and\n * should be called sparingly.\n * @return {?}\n */\n function () {\n /** @type {?} */\n var lengthOfTabList = this._tabList.nativeElement.scrollWidth;\n /** @type {?} */\n var viewLength = this._tabListContainer.nativeElement.offsetWidth;\n return (lengthOfTabList - viewLength) || 0;\n };\n /** Tells the ink-bar to align itself to the current label wrapper */\n /**\n * Tells the ink-bar to align itself to the current label wrapper\n * @return {?}\n */\n MatPaginatedTabHeader.prototype._alignInkBarToSelectedTab = /**\n * Tells the ink-bar to align itself to the current label wrapper\n * @return {?}\n */\n function () {\n /** @type {?} */\n var selectedItem = this._items && this._items.length ?\n this._items.toArray()[this.selectedIndex] : null;\n /** @type {?} */\n var selectedLabelWrapper = selectedItem ? selectedItem.elementRef.nativeElement : null;\n if (selectedLabelWrapper) {\n this._inkBar.alignToElement(selectedLabelWrapper);\n }\n else {\n this._inkBar.hide();\n }\n };\n /** Stops the currently-running paginator interval. */\n /**\n * Stops the currently-running paginator interval.\n * @return {?}\n */\n MatPaginatedTabHeader.prototype._stopInterval = /**\n * Stops the currently-running paginator interval.\n * @return {?}\n */\n function () {\n this._stopScrolling.next();\n };\n /**\n * Handles the user pressing down on one of the paginators.\n * Starts scrolling the header after a certain amount of time.\n * @param direction In which direction the paginator should be scrolled.\n */\n /**\n * Handles the user pressing down on one of the paginators.\n * Starts scrolling the header after a certain amount of time.\n * @param {?} direction In which direction the paginator should be scrolled.\n * @return {?}\n */\n MatPaginatedTabHeader.prototype._handlePaginatorPress = /**\n * Handles the user pressing down on one of the paginators.\n * Starts scrolling the header after a certain amount of time.\n * @param {?} direction In which direction the paginator should be scrolled.\n * @return {?}\n */\n function (direction) {\n var _this = this;\n // Avoid overlapping timers.\n this._stopInterval();\n // Start a timer after the delay and keep firing based on the interval.\n timer(HEADER_SCROLL_DELAY, HEADER_SCROLL_INTERVAL)\n // Keep the timer going until something tells it to stop or the component is destroyed.\n .pipe(takeUntil(merge(this._stopScrolling, this._destroyed)))\n .subscribe((/**\n * @return {?}\n */\n function () {\n var _a = _this._scrollHeader(direction), maxScrollDistance = _a.maxScrollDistance, distance = _a.distance;\n // Stop the timer if we've reached the start or the end.\n if (distance === 0 || distance >= maxScrollDistance) {\n _this._stopInterval();\n }\n }));\n };\n /**\n * Scrolls the header to a given position.\n * @param position Position to which to scroll.\n * @returns Information on the current scroll distance and the maximum.\n */\n /**\n * Scrolls the header to a given position.\n * @private\n * @param {?} position Position to which to scroll.\n * @return {?} Information on the current scroll distance and the maximum.\n */\n MatPaginatedTabHeader.prototype._scrollTo = /**\n * Scrolls the header to a given position.\n * @private\n * @param {?} position Position to which to scroll.\n * @return {?} Information on the current scroll distance and the maximum.\n */\n function (position) {\n /** @type {?} */\n var maxScrollDistance = this._getMaxScrollDistance();\n this._scrollDistance = Math.max(0, Math.min(maxScrollDistance, position));\n // Mark that the scroll distance has changed so that after the view is checked, the CSS\n // transformation can move the header.\n this._scrollDistanceChanged = true;\n this._checkScrollingControls();\n return { maxScrollDistance: maxScrollDistance, distance: this._scrollDistance };\n };\n MatPaginatedTabHeader.decorators = [\n { type: Directive, args: [{\n // TODO(crisbeto): this selector can be removed when we update to Angular 9.0.\n selector: 'do-not-use-abstract-mat-paginated-tab-header'\n },] },\n ];\n /** @nocollapse */\n MatPaginatedTabHeader.ctorParameters = function () { return [\n { type: ElementRef },\n { type: ChangeDetectorRef },\n { type: ViewportRuler },\n { type: Directionality, decorators: [{ type: Optional }] },\n { type: NgZone },\n { type: Platform },\n { type: String, decorators: [{ type: Optional }, { type: Inject, args: [ANIMATION_MODULE_TYPE,] }] }\n ]; };\n return MatPaginatedTabHeader;\n}());\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n/**\n * Base class with all of the `MatTabHeader` functionality.\n * \\@docs-private\n * @abstract\n */\nvar _MatTabHeaderBase = /** @class */ (function (_super) {\n __extends(_MatTabHeaderBase, _super);\n function _MatTabHeaderBase(elementRef, changeDetectorRef, viewportRuler, dir, ngZone, platform, \n // @breaking-change 9.0.0 `_animationMode` parameter to be made required.\n animationMode) {\n var _this = _super.call(this, elementRef, changeDetectorRef, viewportRuler, dir, ngZone, platform, animationMode) || this;\n _this._disableRipple = false;\n return _this;\n }\n Object.defineProperty(_MatTabHeaderBase.prototype, \"disableRipple\", {\n /** Whether the ripple effect is disabled or not. */\n get: /**\n * Whether the ripple effect is disabled or not.\n * @return {?}\n */\n function () { return this._disableRipple; },\n set: /**\n * @param {?} value\n * @return {?}\n */\n function (value) { this._disableRipple = coerceBooleanProperty(value); },\n enumerable: true,\n configurable: true\n });\n /**\n * @protected\n * @param {?} event\n * @return {?}\n */\n _MatTabHeaderBase.prototype._itemSelected = /**\n * @protected\n * @param {?} event\n * @return {?}\n */\n function (event) {\n event.preventDefault();\n };\n _MatTabHeaderBase.decorators = [\n { type: Directive, args: [{\n // TODO(crisbeto): this selector can be removed when we update to Angular 9.0.\n selector: 'do-not-use-abstract-mat-tab-header-base'\n },] },\n ];\n /** @nocollapse */\n _MatTabHeaderBase.ctorParameters = function () { return [\n { type: ElementRef },\n { type: ChangeDetectorRef },\n { type: ViewportRuler },\n { type: Directionality, decorators: [{ type: Optional }] },\n { type: NgZone },\n { type: Platform },\n { type: String, decorators: [{ type: Optional }, { type: Inject, args: [ANIMATION_MODULE_TYPE,] }] }\n ]; };\n _MatTabHeaderBase.propDecorators = {\n disableRipple: [{ type: Input }]\n };\n return _MatTabHeaderBase;\n}(MatPaginatedTabHeader));\n/**\n * The header of the tab group which displays a list of all the tabs in the tab group. Includes\n * an ink bar that follows the currently selected tab. When the tabs list's width exceeds the\n * width of the header container, then arrows will be displayed to allow the user to scroll\n * left and right across the header.\n * \\@docs-private\n */\nvar MatTabHeader = /** @class */ (function (_super) {\n __extends(MatTabHeader, _super);\n function MatTabHeader(elementRef, changeDetectorRef, viewportRuler, dir, ngZone, platform, \n // @breaking-change 9.0.0 `_animationMode` parameter to be made required.\n animationMode) {\n return _super.call(this, elementRef, changeDetectorRef, viewportRuler, dir, ngZone, platform, animationMode) || this;\n }\n MatTabHeader.decorators = [\n { type: Component, args: [{selector: 'mat-tab-header',\n template: \"
\",\n styles: [\".mat-tab-header{display:flex;overflow:hidden;position:relative;flex-shrink:0}.mat-tab-header-pagination{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;position:relative;display:none;justify-content:center;align-items:center;min-width:32px;cursor:pointer;z-index:2;-webkit-tap-highlight-color:transparent;touch-action:none}.mat-tab-header-pagination-controls-enabled .mat-tab-header-pagination{display:flex}.mat-tab-header-pagination-before,.mat-tab-header-rtl .mat-tab-header-pagination-after{padding-left:4px}.mat-tab-header-pagination-before .mat-tab-header-pagination-chevron,.mat-tab-header-rtl .mat-tab-header-pagination-after .mat-tab-header-pagination-chevron{transform:rotate(-135deg)}.mat-tab-header-pagination-after,.mat-tab-header-rtl .mat-tab-header-pagination-before{padding-right:4px}.mat-tab-header-pagination-after .mat-tab-header-pagination-chevron,.mat-tab-header-rtl .mat-tab-header-pagination-before .mat-tab-header-pagination-chevron{transform:rotate(45deg)}.mat-tab-header-pagination-chevron{border-style:solid;border-width:2px 2px 0 0;content:'';height:8px;width:8px}.mat-tab-header-pagination-disabled{box-shadow:none;cursor:default}.mat-tab-list{flex-grow:1;position:relative;transition:transform .5s cubic-bezier(.35,0,.25,1)}.mat-ink-bar{position:absolute;bottom:0;height:2px;transition:.5s cubic-bezier(.35,0,.25,1)}._mat-animation-noopable.mat-ink-bar{transition:none;animation:none}.mat-tab-group-inverted-header .mat-ink-bar{bottom:auto;top:0}@media (-ms-high-contrast:active){.mat-ink-bar{outline:solid 2px;height:0}}.mat-tab-labels{display:flex}[mat-align-tabs=center] .mat-tab-labels{justify-content:center}[mat-align-tabs=end] .mat-tab-labels{justify-content:flex-end}.mat-tab-label-container{display:flex;flex-grow:1;overflow:hidden;z-index:1}._mat-animation-noopable.mat-tab-list{transition:none;animation:none}.mat-tab-label{height:48px;padding:0 24px;cursor:pointer;box-sizing:border-box;opacity:.6;min-width:160px;text-align:center;display:inline-flex;justify-content:center;align-items:center;white-space:nowrap;position:relative}.mat-tab-label:focus{outline:0}.mat-tab-label:focus:not(.mat-tab-disabled){opacity:1}@media (-ms-high-contrast:active){.mat-tab-label:focus{outline:dotted 2px}}.mat-tab-label.mat-tab-disabled{cursor:default}@media (-ms-high-contrast:active){.mat-tab-label.mat-tab-disabled{opacity:.5}}.mat-tab-label .mat-tab-label-content{display:inline-flex;justify-content:center;align-items:center;white-space:nowrap}@media (-ms-high-contrast:active){.mat-tab-label{opacity:1}}@media (max-width:599px){.mat-tab-label{min-width:72px}}\"],\n inputs: ['selectedIndex'],\n outputs: ['selectFocusedIndex', 'indexFocused'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n 'class': 'mat-tab-header',\n '[class.mat-tab-header-pagination-controls-enabled]': '_showPaginationControls',\n '[class.mat-tab-header-rtl]': \"_getLayoutDirection() == 'rtl'\",\n },\n },] },\n ];\n /** @nocollapse */\n MatTabHeader.ctorParameters = function () { return [\n { type: ElementRef },\n { type: ChangeDetectorRef },\n { type: ViewportRuler },\n { type: Directionality, decorators: [{ type: Optional }] },\n { type: NgZone },\n { type: Platform },\n { type: String, decorators: [{ type: Optional }, { type: Inject, args: [ANIMATION_MODULE_TYPE,] }] }\n ]; };\n MatTabHeader.propDecorators = {\n _items: [{ type: ContentChildren, args: [MatTabLabelWrapper,] }],\n _inkBar: [{ type: ViewChild, args: [MatInkBar, { static: true },] }],\n _tabListContainer: [{ type: ViewChild, args: ['tabListContainer', { static: true },] }],\n _tabList: [{ type: ViewChild, args: ['tabList', { static: true },] }],\n _nextPaginator: [{ type: ViewChild, args: ['nextPaginator', { static: false },] }],\n _previousPaginator: [{ type: ViewChild, args: ['previousPaginator', { static: false },] }]\n };\n return MatTabHeader;\n}(_MatTabHeaderBase));\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n/**\n * Base class with all of the `MatTabNav` functionality.\n * \\@docs-private\n * @abstract\n */\nvar _MatTabNavBase = /** @class */ (function (_super) {\n __extends(_MatTabNavBase, _super);\n function _MatTabNavBase(elementRef, dir, ngZone, changeDetectorRef, viewportRuler, \n /**\n * @deprecated @breaking-change 9.0.0 `platform` parameter to become required.\n */\n platform, animationMode) {\n var _this = _super.call(this, elementRef, changeDetectorRef, viewportRuler, dir, ngZone, platform, animationMode) || this;\n _this._disableRipple = false;\n /**\n * Theme color of the nav bar.\n */\n _this.color = 'primary';\n return _this;\n }\n Object.defineProperty(_MatTabNavBase.prototype, \"backgroundColor\", {\n /** Background color of the tab nav. */\n get: /**\n * Background color of the tab nav.\n * @return {?}\n */\n function () { return this._backgroundColor; },\n set: /**\n * @param {?} value\n * @return {?}\n */\n function (value) {\n /** @type {?} */\n var classList = this._elementRef.nativeElement.classList;\n classList.remove(\"mat-background-\" + this.backgroundColor);\n if (value) {\n classList.add(\"mat-background-\" + value);\n }\n this._backgroundColor = value;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(_MatTabNavBase.prototype, \"disableRipple\", {\n /** Whether the ripple effect is disabled or not. */\n get: /**\n * Whether the ripple effect is disabled or not.\n * @return {?}\n */\n function () { return this._disableRipple; },\n set: /**\n * @param {?} value\n * @return {?}\n */\n function (value) { this._disableRipple = coerceBooleanProperty(value); },\n enumerable: true,\n configurable: true\n });\n /**\n * @protected\n * @return {?}\n */\n _MatTabNavBase.prototype._itemSelected = /**\n * @protected\n * @return {?}\n */\n function () {\n // noop\n };\n /**\n * @return {?}\n */\n _MatTabNavBase.prototype.ngAfterContentInit = /**\n * @return {?}\n */\n function () {\n var _this = this;\n // We need this to run before the `changes` subscription in parent to ensure that the\n // selectedIndex is up-to-date by the time the super class starts looking for it.\n this._items.changes.pipe(startWith(null), takeUntil(this._destroyed)).subscribe((/**\n * @return {?}\n */\n function () {\n _this.updateActiveLink();\n }));\n _super.prototype.ngAfterContentInit.call(this);\n };\n /**\n * Notifies the component that the active link has been changed.\n * @breaking-change 8.0.0 `element` parameter to be removed.\n */\n /**\n * Notifies the component that the active link has been changed.\n * \\@breaking-change 8.0.0 `element` parameter to be removed.\n * @param {?=} _element\n * @return {?}\n */\n _MatTabNavBase.prototype.updateActiveLink = /**\n * Notifies the component that the active link has been changed.\n * \\@breaking-change 8.0.0 `element` parameter to be removed.\n * @param {?=} _element\n * @return {?}\n */\n function (_element) {\n if (!this._items) {\n return;\n }\n /** @type {?} */\n var items = this._items.toArray();\n for (var i = 0; i < items.length; i++) {\n if (items[i].active) {\n this.selectedIndex = i;\n this._changeDetectorRef.markForCheck();\n return;\n }\n }\n // The ink bar should hide itself if no items are active.\n this.selectedIndex = -1;\n this._inkBar.hide();\n };\n _MatTabNavBase.decorators = [\n { type: Directive, args: [{\n // TODO(crisbeto): this selector can be removed when we update to Angular 9.0.\n selector: 'do-not-use-abstract-mat-tab-nav-base'\n },] },\n ];\n /** @nocollapse */\n _MatTabNavBase.ctorParameters = function () { return [\n { type: ElementRef },\n { type: Directionality, decorators: [{ type: Optional }] },\n { type: NgZone },\n { type: ChangeDetectorRef },\n { type: ViewportRuler },\n { type: Platform, decorators: [{ type: Optional }] },\n { type: String, decorators: [{ type: Optional }, { type: Inject, args: [ANIMATION_MODULE_TYPE,] }] }\n ]; };\n _MatTabNavBase.propDecorators = {\n backgroundColor: [{ type: Input }],\n disableRipple: [{ type: Input }],\n color: [{ type: Input }]\n };\n return _MatTabNavBase;\n}(MatPaginatedTabHeader));\n/**\n * Navigation component matching the styles of the tab group header.\n * Provides anchored navigation with animated ink bar.\n */\nvar MatTabNav = /** @class */ (function (_super) {\n __extends(MatTabNav, _super);\n function MatTabNav(elementRef, dir, ngZone, changeDetectorRef, viewportRuler, \n /**\n * @deprecated @breaking-change 9.0.0 `platform` parameter to become required.\n */\n platform, animationMode) {\n return _super.call(this, elementRef, dir, ngZone, changeDetectorRef, viewportRuler, platform, animationMode) || this;\n }\n MatTabNav.decorators = [\n { type: Component, args: [{selector: '[mat-tab-nav-bar]',\n exportAs: 'matTabNavBar, matTabNav',\n inputs: ['color'],\n template: \"
\",\n styles: [\".mat-tab-header{display:flex;overflow:hidden;position:relative;flex-shrink:0}.mat-tab-header-pagination{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;position:relative;display:none;justify-content:center;align-items:center;min-width:32px;cursor:pointer;z-index:2;-webkit-tap-highlight-color:transparent;touch-action:none}.mat-tab-header-pagination-controls-enabled .mat-tab-header-pagination{display:flex}.mat-tab-header-pagination-before,.mat-tab-header-rtl .mat-tab-header-pagination-after{padding-left:4px}.mat-tab-header-pagination-before .mat-tab-header-pagination-chevron,.mat-tab-header-rtl .mat-tab-header-pagination-after .mat-tab-header-pagination-chevron{transform:rotate(-135deg)}.mat-tab-header-pagination-after,.mat-tab-header-rtl .mat-tab-header-pagination-before{padding-right:4px}.mat-tab-header-pagination-after .mat-tab-header-pagination-chevron,.mat-tab-header-rtl .mat-tab-header-pagination-before .mat-tab-header-pagination-chevron{transform:rotate(45deg)}.mat-tab-header-pagination-chevron{border-style:solid;border-width:2px 2px 0 0;content:'';height:8px;width:8px}.mat-tab-header-pagination-disabled{box-shadow:none;cursor:default}.mat-tab-list{flex-grow:1;position:relative;transition:transform .5s cubic-bezier(.35,0,.25,1)}.mat-tab-links{display:flex}[mat-align-tabs=center] .mat-tab-links{justify-content:center}[mat-align-tabs=end] .mat-tab-links{justify-content:flex-end}.mat-ink-bar{position:absolute;bottom:0;height:2px;transition:.5s cubic-bezier(.35,0,.25,1)}._mat-animation-noopable.mat-ink-bar{transition:none;animation:none}.mat-tab-group-inverted-header .mat-ink-bar{bottom:auto;top:0}@media (-ms-high-contrast:active){.mat-ink-bar{outline:solid 2px;height:0}}.mat-tab-link-container{display:flex;flex-grow:1;overflow:hidden;z-index:1}.mat-tab-link{height:48px;padding:0 24px;cursor:pointer;box-sizing:border-box;opacity:.6;min-width:160px;text-align:center;display:inline-flex;justify-content:center;align-items:center;white-space:nowrap;vertical-align:top;text-decoration:none;position:relative;overflow:hidden;-webkit-tap-highlight-color:transparent}.mat-tab-link:focus{outline:0}.mat-tab-link:focus:not(.mat-tab-disabled){opacity:1}@media (-ms-high-contrast:active){.mat-tab-link:focus{outline:dotted 2px}}.mat-tab-link.mat-tab-disabled{cursor:default}@media (-ms-high-contrast:active){.mat-tab-link.mat-tab-disabled{opacity:.5}}.mat-tab-link .mat-tab-label-content{display:inline-flex;justify-content:center;align-items:center;white-space:nowrap}@media (-ms-high-contrast:active){.mat-tab-link{opacity:1}}[mat-stretch-tabs] .mat-tab-link{flex-basis:0;flex-grow:1}.mat-tab-link.mat-tab-disabled{pointer-events:none}@media (max-width:599px){.mat-tab-link{min-width:72px}}\"],\n host: {\n 'class': 'mat-tab-nav-bar mat-tab-header',\n '[class.mat-tab-header-pagination-controls-enabled]': '_showPaginationControls',\n '[class.mat-tab-header-rtl]': \"_getLayoutDirection() == 'rtl'\",\n '[class.mat-primary]': 'color !== \"warn\" && color !== \"accent\"',\n '[class.mat-accent]': 'color === \"accent\"',\n '[class.mat-warn]': 'color === \"warn\"',\n },\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n },] },\n ];\n /** @nocollapse */\n MatTabNav.ctorParameters = function () { return [\n { type: ElementRef },\n { type: Directionality, decorators: [{ type: Optional }] },\n { type: NgZone },\n { type: ChangeDetectorRef },\n { type: ViewportRuler },\n { type: Platform, decorators: [{ type: Optional }] },\n { type: String, decorators: [{ type: Optional }, { type: Inject, args: [ANIMATION_MODULE_TYPE,] }] }\n ]; };\n MatTabNav.propDecorators = {\n _items: [{ type: ContentChildren, args: [forwardRef((/**\n * @return {?}\n */\n function () { return MatTabLink; })), { descendants: true },] }],\n _inkBar: [{ type: ViewChild, args: [MatInkBar, { static: true },] }],\n _tabListContainer: [{ type: ViewChild, args: ['tabListContainer', { static: true },] }],\n _tabList: [{ type: ViewChild, args: ['tabList', { static: true },] }],\n _nextPaginator: [{ type: ViewChild, args: ['nextPaginator', { static: false },] }],\n _previousPaginator: [{ type: ViewChild, args: ['previousPaginator', { static: false },] }]\n };\n return MatTabNav;\n}(_MatTabNavBase));\n// Boilerplate for applying mixins to MatTabLink.\nvar \n// Boilerplate for applying mixins to MatTabLink.\nMatTabLinkMixinBase = /** @class */ (function () {\n function MatTabLinkMixinBase() {\n }\n return MatTabLinkMixinBase;\n}());\n/** @type {?} */\nvar _MatTabLinkMixinBase = mixinTabIndex(mixinDisableRipple(mixinDisabled(MatTabLinkMixinBase)));\n/**\n * Base class with all of the `MatTabLink` functionality.\n */\nvar _MatTabLinkBase = /** @class */ (function (_super) {\n __extends(_MatTabLinkBase, _super);\n function _MatTabLinkBase(_tabNavBar, elementRef, globalRippleOptions, tabIndex, _focusMonitor, animationMode) {\n var _this = _super.call(this) || this;\n _this._tabNavBar = _tabNavBar;\n _this.elementRef = elementRef;\n _this._focusMonitor = _focusMonitor;\n /**\n * Whether the tab link is active or not.\n */\n _this._isActive = false;\n _this.rippleConfig = globalRippleOptions || {};\n _this.tabIndex = parseInt(tabIndex) || 0;\n if (animationMode === 'NoopAnimations') {\n _this.rippleConfig.animation = { enterDuration: 0, exitDuration: 0 };\n }\n _focusMonitor.monitor(elementRef);\n return _this;\n }\n Object.defineProperty(_MatTabLinkBase.prototype, \"active\", {\n /** Whether the link is active. */\n get: /**\n * Whether the link is active.\n * @return {?}\n */\n function () { return this._isActive; },\n set: /**\n * @param {?} value\n * @return {?}\n */\n function (value) {\n if (value !== this._isActive) {\n this._isActive = value;\n this._tabNavBar.updateActiveLink(this.elementRef);\n }\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(_MatTabLinkBase.prototype, \"rippleDisabled\", {\n /**\n * Whether ripples are disabled on interaction.\n * @docs-private\n */\n get: /**\n * Whether ripples are disabled on interaction.\n * \\@docs-private\n * @return {?}\n */\n function () {\n return this.disabled || this.disableRipple || this._tabNavBar.disableRipple ||\n !!this.rippleConfig.disabled;\n },\n enumerable: true,\n configurable: true\n });\n /**\n * @return {?}\n */\n _MatTabLinkBase.prototype.focus = /**\n * @return {?}\n */\n function () {\n this.elementRef.nativeElement.focus();\n };\n /**\n * @return {?}\n */\n _MatTabLinkBase.prototype.ngOnDestroy = /**\n * @return {?}\n */\n function () {\n this._focusMonitor.stopMonitoring(this.elementRef);\n };\n _MatTabLinkBase.decorators = [\n { type: Directive, args: [{\n // TODO(crisbeto): this selector can be removed when we update to Angular 9.0.\n selector: 'do-not-use-abstract-mat-tab-link-base'\n },] },\n ];\n /** @nocollapse */\n _MatTabLinkBase.ctorParameters = function () { return [\n { type: _MatTabNavBase },\n { type: ElementRef },\n { type: undefined, decorators: [{ type: Optional }, { type: Inject, args: [MAT_RIPPLE_GLOBAL_OPTIONS,] }] },\n { type: String, decorators: [{ type: Attribute, args: ['tabindex',] }] },\n { type: FocusMonitor },\n { type: String, decorators: [{ type: Optional }, { type: Inject, args: [ANIMATION_MODULE_TYPE,] }] }\n ]; };\n _MatTabLinkBase.propDecorators = {\n active: [{ type: Input }]\n };\n return _MatTabLinkBase;\n}(_MatTabLinkMixinBase));\n/**\n * Link inside of a `mat-tab-nav-bar`.\n */\nvar MatTabLink = /** @class */ (function (_super) {\n __extends(MatTabLink, _super);\n function MatTabLink(tabNavBar, elementRef, ngZone, platform, globalRippleOptions, tabIndex, focusMonitor, animationMode) {\n var _this = _super.call(this, tabNavBar, elementRef, globalRippleOptions, tabIndex, focusMonitor, animationMode) || this;\n _this._tabLinkRipple = new RippleRenderer(_this, ngZone, elementRef, platform);\n _this._tabLinkRipple.setupTriggerEvents(elementRef.nativeElement);\n return _this;\n }\n /**\n * @return {?}\n */\n MatTabLink.prototype.ngOnDestroy = /**\n * @return {?}\n */\n function () {\n _super.prototype.ngOnDestroy.call(this);\n this._tabLinkRipple._removeTriggerEvents();\n };\n MatTabLink.decorators = [\n { type: Directive, args: [{\n selector: '[mat-tab-link], [matTabLink]',\n exportAs: 'matTabLink',\n inputs: ['disabled', 'disableRipple', 'tabIndex'],\n host: {\n 'class': 'mat-tab-link',\n '[attr.aria-current]': 'active ? \"page\" : null',\n '[attr.aria-disabled]': 'disabled',\n '[attr.tabIndex]': 'tabIndex',\n '[class.mat-tab-disabled]': 'disabled',\n '[class.mat-tab-label-active]': 'active',\n }\n },] },\n ];\n /** @nocollapse */\n MatTabLink.ctorParameters = function () { return [\n { type: MatTabNav },\n { type: ElementRef },\n { type: NgZone },\n { type: Platform },\n { type: undefined, decorators: [{ type: Optional }, { type: Inject, args: [MAT_RIPPLE_GLOBAL_OPTIONS,] }] },\n { type: String, decorators: [{ type: Attribute, args: ['tabindex',] }] },\n { type: FocusMonitor },\n { type: String, decorators: [{ type: Optional }, { type: Inject, args: [ANIMATION_MODULE_TYPE,] }] }\n ]; };\n return MatTabLink;\n}(_MatTabLinkBase));\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\nvar MatTabsModule = /** @class */ (function () {\n function MatTabsModule() {\n }\n MatTabsModule.decorators = [\n { type: NgModule, args: [{\n imports: [\n CommonModule,\n MatCommonModule,\n PortalModule,\n MatRippleModule,\n ObserversModule,\n A11yModule,\n ],\n // Don't export all components because some are only to be used internally.\n exports: [\n MatCommonModule,\n MatTabGroup,\n MatTabLabel,\n MatTab,\n MatTabNav,\n MatTabLink,\n MatTabContent,\n ],\n declarations: [\n MatTabGroup,\n MatTabLabel,\n MatTab,\n MatInkBar,\n MatTabLabelWrapper,\n MatTabNav,\n MatTabLink,\n MatTabBody,\n MatTabBodyPortal,\n MatTabHeader,\n MatTabContent,\n (/** @type {?} */ (\n // TODO(crisbeto): these can be removed once they're turned into selector-less directives.\n MatPaginatedTabHeader)),\n (/** @type {?} */ (_MatTabGroupBase)),\n (/** @type {?} */ (_MatTabNavBase)),\n (/** @type {?} */ (_MatTabBodyBase)),\n (/** @type {?} */ (_MatTabHeaderBase)),\n (/** @type {?} */ (_MatTabLinkBase)),\n ],\n },] },\n ];\n return MatTabsModule;\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\nexport { MatTabsModule, MatInkBar, _MAT_INK_BAR_POSITIONER, MatTabBody, _MatTabBodyBase, MatTabBodyPortal, MatTabHeader, _MatTabHeaderBase, MatTabLabelWrapper, MatTab, MatTabLabel, MatTabNav, MatTabLink, _MatTabNavBase, _MatTabLinkBase, MatTabContent, MatTabChangeEvent, MAT_TABS_CONFIG, _MatTabGroupBase, MatTabGroup, matTabsAnimations, _MAT_INK_BAR_POSITIONER_FACTORY as ɵa24, MatPaginatedTabHeader as ɵb24 };\n//# sourceMappingURL=tabs.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 { Platform } from '@angular/cdk/platform';\nimport { DOCUMENT } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, ContentChildren, Directive, ElementRef, Inject, isDevMode, ViewEncapsulation, NgModule } from '@angular/core';\nimport { mixinColor, MatCommonModule } from '@angular/material/core';\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n// Boilerplate for applying mixins to MatToolbar.\n/**\n * \\@docs-private\n */\nvar \n// Boilerplate for applying mixins to MatToolbar.\n/**\n * \\@docs-private\n */\nMatToolbarBase = /** @class */ (function () {\n function MatToolbarBase(_elementRef) {\n this._elementRef = _elementRef;\n }\n return MatToolbarBase;\n}());\n/** @type {?} */\nvar _MatToolbarMixinBase = mixinColor(MatToolbarBase);\nvar MatToolbarRow = /** @class */ (function () {\n function MatToolbarRow() {\n }\n MatToolbarRow.decorators = [\n { type: Directive, args: [{\n selector: 'mat-toolbar-row',\n exportAs: 'matToolbarRow',\n host: { 'class': 'mat-toolbar-row' },\n },] },\n ];\n return MatToolbarRow;\n}());\nvar MatToolbar = /** @class */ (function (_super) {\n __extends(MatToolbar, _super);\n function MatToolbar(elementRef, _platform, document) {\n var _this = _super.call(this, elementRef) || this;\n _this._platform = _platform;\n // TODO: make the document a required param when doing breaking changes.\n _this._document = document;\n return _this;\n }\n /**\n * @return {?}\n */\n MatToolbar.prototype.ngAfterViewInit = /**\n * @return {?}\n */\n function () {\n var _this = this;\n if (!isDevMode() || !this._platform.isBrowser) {\n return;\n }\n this._checkToolbarMixedModes();\n this._toolbarRows.changes.subscribe((/**\n * @return {?}\n */\n function () { return _this._checkToolbarMixedModes(); }));\n };\n /**\n * Throws an exception when developers are attempting to combine the different toolbar row modes.\n */\n /**\n * Throws an exception when developers are attempting to combine the different toolbar row modes.\n * @private\n * @return {?}\n */\n MatToolbar.prototype._checkToolbarMixedModes = /**\n * Throws an exception when developers are attempting to combine the different toolbar row modes.\n * @private\n * @return {?}\n */\n function () {\n var _this = this;\n if (!this._toolbarRows.length) {\n return;\n }\n // Check if there are any other DOM nodes that can display content but aren't inside of\n // a element.\n /** @type {?} */\n var isCombinedUsage = Array.from(this._elementRef.nativeElement.childNodes)\n .filter((/**\n * @param {?} node\n * @return {?}\n */\n function (node) { return !(node.classList && node.classList.contains('mat-toolbar-row')); }))\n .filter((/**\n * @param {?} node\n * @return {?}\n */\n function (node) { return node.nodeType !== (_this._document ? _this._document.COMMENT_NODE : 8); }))\n .some((/**\n * @param {?} node\n * @return {?}\n */\n function (node) { return !!(node.textContent && node.textContent.trim()); }));\n if (isCombinedUsage) {\n throwToolbarMixedModesError();\n }\n };\n MatToolbar.decorators = [\n { type: Component, args: [{selector: 'mat-toolbar',\n exportAs: 'matToolbar',\n template: \"\",\n styles: [\"@media (-ms-high-contrast:active){.mat-toolbar{outline:solid 1px}}.mat-toolbar-row,.mat-toolbar-single-row{display:flex;box-sizing:border-box;padding:0 16px;width:100%;flex-direction:row;align-items:center;white-space:nowrap}.mat-toolbar-multiple-rows{display:flex;box-sizing:border-box;flex-direction:column;width:100%}.mat-toolbar-multiple-rows{min-height:64px}.mat-toolbar-row,.mat-toolbar-single-row{height:64px}@media (max-width:599px){.mat-toolbar-multiple-rows{min-height:56px}.mat-toolbar-row,.mat-toolbar-single-row{height:56px}}\"],\n inputs: ['color'],\n host: {\n 'class': 'mat-toolbar',\n '[class.mat-toolbar-multiple-rows]': '_toolbarRows.length > 0',\n '[class.mat-toolbar-single-row]': '_toolbarRows.length === 0',\n },\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n },] },\n ];\n /** @nocollapse */\n MatToolbar.ctorParameters = function () { return [\n { type: ElementRef },\n { type: Platform },\n { type: undefined, decorators: [{ type: Inject, args: [DOCUMENT,] }] }\n ]; };\n MatToolbar.propDecorators = {\n _toolbarRows: [{ type: ContentChildren, args: [MatToolbarRow,] }]\n };\n return MatToolbar;\n}(_MatToolbarMixinBase));\n/**\n * Throws an exception when attempting to combine the different toolbar row modes.\n * \\@docs-private\n * @return {?}\n */\nfunction throwToolbarMixedModesError() {\n throw Error('MatToolbar: Attempting to combine different toolbar modes. ' +\n 'Either specify multiple `` elements explicitly or just place content ' +\n 'inside of a `` for a single row.');\n}\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\nvar MatToolbarModule = /** @class */ (function () {\n function MatToolbarModule() {\n }\n MatToolbarModule.decorators = [\n { type: NgModule, args: [{\n imports: [MatCommonModule],\n exports: [MatToolbar, MatToolbarRow, MatCommonModule],\n declarations: [MatToolbar, MatToolbarRow],\n },] },\n ];\n return MatToolbarModule;\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 { MatToolbarModule, throwToolbarMixedModesError, MatToolbarRow, MatToolbar };\n//# sourceMappingURL=toolbar.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 { CDK_TREE_NODE_OUTLET_NODE, CdkNestedTreeNode, CdkTree, CdkTreeNode, CdkTreeNodeDef, CdkTreeNodePadding, CdkTreeNodeOutlet, CdkTreeNodeToggle, CdkTreeModule } from '@angular/cdk/tree';\nimport { Attribute, Directive, ElementRef, Input, IterableDiffers, Inject, Optional, ViewContainerRef, ChangeDetectionStrategy, Component, ViewChild, ViewEncapsulation, NgModule } from '@angular/core';\nimport { mixinDisabled, mixinTabIndex, MatCommonModule } from '@angular/material/core';\nimport { coerceBooleanProperty } from '@angular/cdk/coercion';\nimport { CommonModule } from '@angular/common';\nimport { DataSource } from '@angular/cdk/collections';\nimport { BehaviorSubject, merge } from 'rxjs';\nimport { map, take } from 'rxjs/operators';\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n/** @type {?} */\nvar _MatTreeNodeMixinBase = mixinTabIndex(mixinDisabled(CdkTreeNode));\n/**\n * Wrapper for the CdkTree node with Material design styles.\n * @template T\n */\nvar MatTreeNode = /** @class */ (function (_super) {\n __extends(MatTreeNode, _super);\n function MatTreeNode(_elementRef, _tree, tabIndex) {\n var _this = _super.call(this, _elementRef, _tree) || this;\n _this._elementRef = _elementRef;\n _this._tree = _tree;\n _this.role = 'treeitem';\n _this.tabIndex = Number(tabIndex) || 0;\n return _this;\n }\n MatTreeNode.decorators = [\n { type: Directive, args: [{\n selector: 'mat-tree-node',\n exportAs: 'matTreeNode',\n inputs: ['disabled', 'tabIndex'],\n host: {\n '[attr.aria-expanded]': 'isExpanded',\n '[attr.aria-level]': 'role === \"treeitem\" ? level : null',\n '[attr.role]': 'role',\n 'class': 'mat-tree-node'\n },\n providers: [{ provide: CdkTreeNode, useExisting: MatTreeNode }]\n },] },\n ];\n /** @nocollapse */\n MatTreeNode.ctorParameters = function () { return [\n { type: ElementRef },\n { type: CdkTree },\n { type: String, decorators: [{ type: Attribute, args: ['tabindex',] }] }\n ]; };\n MatTreeNode.propDecorators = {\n role: [{ type: Input }]\n };\n return MatTreeNode;\n}(_MatTreeNodeMixinBase));\n/**\n * Wrapper for the CdkTree node definition with Material design styles.\n * @template T\n */\nvar MatTreeNodeDef = /** @class */ (function (_super) {\n __extends(MatTreeNodeDef, _super);\n function MatTreeNodeDef() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n MatTreeNodeDef.decorators = [\n { type: Directive, args: [{\n selector: '[matTreeNodeDef]',\n inputs: [\n 'when: matTreeNodeDefWhen'\n ],\n providers: [{ provide: CdkTreeNodeDef, useExisting: MatTreeNodeDef }]\n },] },\n ];\n MatTreeNodeDef.propDecorators = {\n data: [{ type: Input, args: ['matTreeNode',] }]\n };\n return MatTreeNodeDef;\n}(CdkTreeNodeDef));\n/**\n * Wrapper for the CdkTree nested node with Material design styles.\n * @template T\n */\nvar MatNestedTreeNode = /** @class */ (function (_super) {\n __extends(MatNestedTreeNode, _super);\n function MatNestedTreeNode(_elementRef, _tree, _differs, tabIndex) {\n var _this = _super.call(this, _elementRef, _tree, _differs) || this;\n _this._elementRef = _elementRef;\n _this._tree = _tree;\n _this._differs = _differs;\n _this._disabled = false;\n _this.tabIndex = Number(tabIndex) || 0;\n return _this;\n }\n Object.defineProperty(MatNestedTreeNode.prototype, \"disabled\", {\n /** Whether the node is disabled. */\n get: /**\n * Whether the node is disabled.\n * @return {?}\n */\n function () { return this._disabled; },\n set: /**\n * @param {?} value\n * @return {?}\n */\n function (value) { this._disabled = coerceBooleanProperty(value); },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(MatNestedTreeNode.prototype, \"tabIndex\", {\n /** Tabindex for the node. */\n get: /**\n * Tabindex for the node.\n * @return {?}\n */\n function () { return this.disabled ? -1 : this._tabIndex; },\n set: /**\n * @param {?} value\n * @return {?}\n */\n function (value) {\n // If the specified tabIndex value is null or undefined, fall back to the default value.\n this._tabIndex = value != null ? value : 0;\n },\n enumerable: true,\n configurable: true\n });\n // This is a workaround for https://github.com/angular/angular/issues/23091\n // In aot mode, the lifecycle hooks from parent class are not called.\n // TODO(tinayuangao): Remove when the angular issue #23091 is fixed\n // This is a workaround for https://github.com/angular/angular/issues/23091\n // In aot mode, the lifecycle hooks from parent class are not called.\n // TODO(tinayuangao): Remove when the angular issue #23091 is fixed\n /**\n * @return {?}\n */\n MatNestedTreeNode.prototype.ngAfterContentInit = \n // This is a workaround for https://github.com/angular/angular/issues/23091\n // In aot mode, the lifecycle hooks from parent class are not called.\n // TODO(tinayuangao): Remove when the angular issue #23091 is fixed\n /**\n * @return {?}\n */\n function () {\n _super.prototype.ngAfterContentInit.call(this);\n };\n /**\n * @return {?}\n */\n MatNestedTreeNode.prototype.ngOnDestroy = /**\n * @return {?}\n */\n function () {\n _super.prototype.ngOnDestroy.call(this);\n };\n MatNestedTreeNode.decorators = [\n { type: Directive, args: [{\n selector: 'mat-nested-tree-node',\n exportAs: 'matNestedTreeNode',\n host: {\n '[attr.aria-expanded]': 'isExpanded',\n '[attr.role]': 'role',\n 'class': 'mat-nested-tree-node',\n },\n providers: [\n { provide: CdkNestedTreeNode, useExisting: MatNestedTreeNode },\n { provide: CdkTreeNode, useExisting: MatNestedTreeNode },\n { provide: CDK_TREE_NODE_OUTLET_NODE, useExisting: MatNestedTreeNode }\n ]\n },] },\n ];\n /** @nocollapse */\n MatNestedTreeNode.ctorParameters = function () { return [\n { type: ElementRef },\n { type: CdkTree },\n { type: IterableDiffers },\n { type: String, decorators: [{ type: Attribute, args: ['tabindex',] }] }\n ]; };\n MatNestedTreeNode.propDecorators = {\n node: [{ type: Input, args: ['matNestedTreeNode',] }],\n disabled: [{ type: Input }],\n tabIndex: [{ type: Input }]\n };\n return MatNestedTreeNode;\n}(CdkNestedTreeNode));\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n/**\n * Wrapper for the CdkTree padding with Material design styles.\n * @template T\n */\nvar MatTreeNodePadding = /** @class */ (function (_super) {\n __extends(MatTreeNodePadding, _super);\n function MatTreeNodePadding() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n MatTreeNodePadding.decorators = [\n { type: Directive, args: [{\n selector: '[matTreeNodePadding]',\n providers: [{ provide: CdkTreeNodePadding, useExisting: MatTreeNodePadding }]\n },] },\n ];\n MatTreeNodePadding.propDecorators = {\n level: [{ type: Input, args: ['matTreeNodePadding',] }],\n indent: [{ type: Input, args: ['matTreeNodePaddingIndent',] }]\n };\n return MatTreeNodePadding;\n}(CdkTreeNodePadding));\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n/**\n * Outlet for nested CdkNode. Put `[matTreeNodeOutlet]` on a tag to place children dataNodes\n * inside the outlet.\n */\nvar MatTreeNodeOutlet = /** @class */ (function () {\n function MatTreeNodeOutlet(viewContainer, _node) {\n this.viewContainer = viewContainer;\n this._node = _node;\n }\n MatTreeNodeOutlet.decorators = [\n { type: Directive, args: [{\n selector: '[matTreeNodeOutlet]',\n providers: [{\n provide: CdkTreeNodeOutlet,\n useExisting: MatTreeNodeOutlet\n }]\n },] },\n ];\n /** @nocollapse */\n MatTreeNodeOutlet.ctorParameters = function () { return [\n { type: ViewContainerRef },\n { type: undefined, decorators: [{ type: Inject, args: [CDK_TREE_NODE_OUTLET_NODE,] }, { type: Optional }] }\n ]; };\n return MatTreeNodeOutlet;\n}());\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n/**\n * Wrapper for the CdkTable with Material design styles.\n * @template T\n */\nvar MatTree = /** @class */ (function (_super) {\n __extends(MatTree, _super);\n function MatTree() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n MatTree.decorators = [\n { type: Component, args: [{selector: 'mat-tree',\n exportAs: 'matTree',\n template: \"\",\n host: {\n 'class': 'mat-tree',\n 'role': 'tree',\n },\n styles: [\".mat-tree{display:block}.mat-tree-node{display:flex;align-items:center;min-height:48px;flex:1;overflow:hidden;word-wrap:break-word}.mat-nested-tree-ndoe{border-bottom-width:0}\"],\n encapsulation: ViewEncapsulation.None,\n // See note on CdkTree for explanation on why this uses the default change detection strategy.\n // tslint:disable-next-line:validate-decorators\n changeDetection: ChangeDetectionStrategy.Default,\n providers: [{ provide: CdkTree, useExisting: MatTree }]\n },] },\n ];\n MatTree.propDecorators = {\n _nodeOutlet: [{ type: ViewChild, args: [MatTreeNodeOutlet, { static: true },] }]\n };\n return MatTree;\n}(CdkTree));\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n/**\n * Wrapper for the CdkTree's toggle with Material design styles.\n * @template T\n */\nvar MatTreeNodeToggle = /** @class */ (function (_super) {\n __extends(MatTreeNodeToggle, _super);\n function MatTreeNodeToggle() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.recursive = false;\n return _this;\n }\n MatTreeNodeToggle.decorators = [\n { type: Directive, args: [{\n selector: '[matTreeNodeToggle]',\n providers: [{ provide: CdkTreeNodeToggle, useExisting: MatTreeNodeToggle }]\n },] },\n ];\n MatTreeNodeToggle.propDecorators = {\n recursive: [{ type: Input, args: ['matTreeNodeToggleRecursive',] }]\n };\n return MatTreeNodeToggle;\n}(CdkTreeNodeToggle));\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n/** @type {?} */\nvar MAT_TREE_DIRECTIVES = [\n MatNestedTreeNode,\n MatTreeNodeDef,\n MatTreeNodePadding,\n MatTreeNodeToggle,\n MatTree,\n MatTreeNode,\n MatTreeNodeOutlet\n];\nvar MatTreeModule = /** @class */ (function () {\n function MatTreeModule() {\n }\n MatTreeModule.decorators = [\n { type: NgModule, args: [{\n imports: [CdkTreeModule, CommonModule, MatCommonModule],\n exports: MAT_TREE_DIRECTIVES,\n declarations: MAT_TREE_DIRECTIVES,\n },] },\n ];\n return MatTreeModule;\n}());\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n/**\n * Tree flattener to convert a normal type of node to node with children & level information.\n * Transform nested nodes of type `T` to flattened nodes of type `F`.\n *\n * For example, the input data of type `T` is nested, and contains its children data:\n * SomeNode: {\n * key: 'Fruits',\n * children: [\n * NodeOne: {\n * key: 'Apple',\n * },\n * NodeTwo: {\n * key: 'Pear',\n * }\n * ]\n * }\n * After flattener flatten the tree, the structure will become\n * SomeNode: {\n * key: 'Fruits',\n * expandable: true,\n * level: 1\n * },\n * NodeOne: {\n * key: 'Apple',\n * expandable: false,\n * level: 2\n * },\n * NodeTwo: {\n * key: 'Pear',\n * expandable: false,\n * level: 2\n * }\n * and the output flattened type is `F` with additional information.\n * @template T, F\n */\nvar /**\n * Tree flattener to convert a normal type of node to node with children & level information.\n * Transform nested nodes of type `T` to flattened nodes of type `F`.\n *\n * For example, the input data of type `T` is nested, and contains its children data:\n * SomeNode: {\n * key: 'Fruits',\n * children: [\n * NodeOne: {\n * key: 'Apple',\n * },\n * NodeTwo: {\n * key: 'Pear',\n * }\n * ]\n * }\n * After flattener flatten the tree, the structure will become\n * SomeNode: {\n * key: 'Fruits',\n * expandable: true,\n * level: 1\n * },\n * NodeOne: {\n * key: 'Apple',\n * expandable: false,\n * level: 2\n * },\n * NodeTwo: {\n * key: 'Pear',\n * expandable: false,\n * level: 2\n * }\n * and the output flattened type is `F` with additional information.\n * @template T, F\n */\nMatTreeFlattener = /** @class */ (function () {\n function MatTreeFlattener(transformFunction, getLevel, isExpandable, getChildren) {\n this.transformFunction = transformFunction;\n this.getLevel = getLevel;\n this.isExpandable = isExpandable;\n this.getChildren = getChildren;\n }\n /**\n * @param {?} node\n * @param {?} level\n * @param {?} resultNodes\n * @param {?} parentMap\n * @return {?}\n */\n MatTreeFlattener.prototype._flattenNode = /**\n * @param {?} node\n * @param {?} level\n * @param {?} resultNodes\n * @param {?} parentMap\n * @return {?}\n */\n function (node, level, resultNodes, parentMap) {\n var _this = this;\n /** @type {?} */\n var flatNode = this.transformFunction(node, level);\n resultNodes.push(flatNode);\n if (this.isExpandable(flatNode)) {\n /** @type {?} */\n var childrenNodes = this.getChildren(node);\n if (childrenNodes) {\n if (Array.isArray(childrenNodes)) {\n this._flattenChildren(childrenNodes, level, resultNodes, parentMap);\n }\n else {\n childrenNodes.pipe(take(1)).subscribe((/**\n * @param {?} children\n * @return {?}\n */\n function (children) {\n _this._flattenChildren(children, level, resultNodes, parentMap);\n }));\n }\n }\n }\n return resultNodes;\n };\n /**\n * @param {?} children\n * @param {?} level\n * @param {?} resultNodes\n * @param {?} parentMap\n * @return {?}\n */\n MatTreeFlattener.prototype._flattenChildren = /**\n * @param {?} children\n * @param {?} level\n * @param {?} resultNodes\n * @param {?} parentMap\n * @return {?}\n */\n function (children, level, resultNodes, parentMap) {\n var _this = this;\n children.forEach((/**\n * @param {?} child\n * @param {?} index\n * @return {?}\n */\n function (child, index) {\n /** @type {?} */\n var childParentMap = parentMap.slice();\n childParentMap.push(index != children.length - 1);\n _this._flattenNode(child, level + 1, resultNodes, childParentMap);\n }));\n };\n /**\n * Flatten a list of node type T to flattened version of node F.\n * Please note that type T may be nested, and the length of `structuredData` may be different\n * from that of returned list `F[]`.\n */\n /**\n * Flatten a list of node type T to flattened version of node F.\n * Please note that type T may be nested, and the length of `structuredData` may be different\n * from that of returned list `F[]`.\n * @param {?} structuredData\n * @return {?}\n */\n MatTreeFlattener.prototype.flattenNodes = /**\n * Flatten a list of node type T to flattened version of node F.\n * Please note that type T may be nested, and the length of `structuredData` may be different\n * from that of returned list `F[]`.\n * @param {?} structuredData\n * @return {?}\n */\n function (structuredData) {\n var _this = this;\n /** @type {?} */\n var resultNodes = [];\n structuredData.forEach((/**\n * @param {?} node\n * @return {?}\n */\n function (node) { return _this._flattenNode(node, 0, resultNodes, []); }));\n return resultNodes;\n };\n /**\n * Expand flattened node with current expansion status.\n * The returned list may have different length.\n */\n /**\n * Expand flattened node with current expansion status.\n * The returned list may have different length.\n * @param {?} nodes\n * @param {?} treeControl\n * @return {?}\n */\n MatTreeFlattener.prototype.expandFlattenedNodes = /**\n * Expand flattened node with current expansion status.\n * The returned list may have different length.\n * @param {?} nodes\n * @param {?} treeControl\n * @return {?}\n */\n function (nodes, treeControl) {\n var _this = this;\n /** @type {?} */\n var results = [];\n /** @type {?} */\n var currentExpand = [];\n currentExpand[0] = true;\n nodes.forEach((/**\n * @param {?} node\n * @return {?}\n */\n function (node) {\n /** @type {?} */\n var expand = true;\n for (var i = 0; i <= _this.getLevel(node); i++) {\n expand = expand && currentExpand[i];\n }\n if (expand) {\n results.push(node);\n }\n if (_this.isExpandable(node)) {\n currentExpand[_this.getLevel(node) + 1] = treeControl.isExpanded(node);\n }\n }));\n return results;\n };\n return MatTreeFlattener;\n}());\n/**\n * Data source for flat tree.\n * The data source need to handle expansion/collapsion of the tree node and change the data feed\n * to `MatTree`.\n * The nested tree nodes of type `T` are flattened through `MatTreeFlattener`, and converted\n * to type `F` for `MatTree` to consume.\n * @template T, F\n */\nvar /**\n * Data source for flat tree.\n * The data source need to handle expansion/collapsion of the tree node and change the data feed\n * to `MatTree`.\n * The nested tree nodes of type `T` are flattened through `MatTreeFlattener`, and converted\n * to type `F` for `MatTree` to consume.\n * @template T, F\n */\nMatTreeFlatDataSource = /** @class */ (function (_super) {\n __extends(MatTreeFlatDataSource, _super);\n function MatTreeFlatDataSource(_treeControl, _treeFlattener, initialData) {\n if (initialData === void 0) { initialData = []; }\n var _this = _super.call(this) || this;\n _this._treeControl = _treeControl;\n _this._treeFlattener = _treeFlattener;\n _this._flattenedData = new BehaviorSubject([]);\n _this._expandedData = new BehaviorSubject([]);\n _this._data = new BehaviorSubject(initialData);\n return _this;\n }\n Object.defineProperty(MatTreeFlatDataSource.prototype, \"data\", {\n get: /**\n * @return {?}\n */\n function () { return this._data.value; },\n set: /**\n * @param {?} value\n * @return {?}\n */\n function (value) {\n this._data.next(value);\n this._flattenedData.next(this._treeFlattener.flattenNodes(this.data));\n this._treeControl.dataNodes = this._flattenedData.value;\n },\n enumerable: true,\n configurable: true\n });\n /**\n * @param {?} collectionViewer\n * @return {?}\n */\n MatTreeFlatDataSource.prototype.connect = /**\n * @param {?} collectionViewer\n * @return {?}\n */\n function (collectionViewer) {\n var _this = this;\n /** @type {?} */\n var changes = [\n collectionViewer.viewChange,\n this._treeControl.expansionModel.onChange,\n this._flattenedData\n ];\n return merge.apply(void 0, changes).pipe(map((/**\n * @return {?}\n */\n function () {\n _this._expandedData.next(_this._treeFlattener.expandFlattenedNodes(_this._flattenedData.value, _this._treeControl));\n return _this._expandedData.value;\n })));\n };\n /**\n * @return {?}\n */\n MatTreeFlatDataSource.prototype.disconnect = /**\n * @return {?}\n */\n function () {\n // no op\n };\n return MatTreeFlatDataSource;\n}(DataSource));\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n/**\n * Data source for nested tree.\n *\n * The data source for nested tree doesn't have to consider node flattener, or the way to expand\n * or collapse. The expansion/collapsion will be handled by TreeControl and each non-leaf node.\n * @template T\n */\nvar /**\n * Data source for nested tree.\n *\n * The data source for nested tree doesn't have to consider node flattener, or the way to expand\n * or collapse. The expansion/collapsion will be handled by TreeControl and each non-leaf node.\n * @template T\n */\nMatTreeNestedDataSource = /** @class */ (function (_super) {\n __extends(MatTreeNestedDataSource, _super);\n function MatTreeNestedDataSource() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this._data = new BehaviorSubject([]);\n return _this;\n }\n Object.defineProperty(MatTreeNestedDataSource.prototype, \"data\", {\n /**\n * Data for the nested tree\n */\n get: /**\n * Data for the nested tree\n * @return {?}\n */\n function () { return this._data.value; },\n set: /**\n * @param {?} value\n * @return {?}\n */\n function (value) { this._data.next(value); },\n enumerable: true,\n configurable: true\n });\n /**\n * @param {?} collectionViewer\n * @return {?}\n */\n MatTreeNestedDataSource.prototype.connect = /**\n * @param {?} collectionViewer\n * @return {?}\n */\n function (collectionViewer) {\n var _this = this;\n return merge.apply(void 0, [collectionViewer.viewChange, this._data]).pipe(map((/**\n * @return {?}\n */\n function () {\n return _this.data;\n })));\n };\n /**\n * @return {?}\n */\n MatTreeNestedDataSource.prototype.disconnect = /**\n * @return {?}\n */\n function () {\n // no op\n };\n return MatTreeNestedDataSource;\n}(DataSource));\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 { MatTreeNode, MatTreeNodeDef, MatNestedTreeNode, MatTreeNodePadding, MatTree, MatTreeModule, MatTreeNodeToggle, MatTreeNodeOutlet, MatTreeFlattener, MatTreeFlatDataSource, MatTreeNestedDataSource };\n//# sourceMappingURL=tree.es5.js.map\n","export default \"
\\r\\n
    \\r\\n
  • \\r\\n

    \\r\\n {{ blog.title }}\\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 {{ blog.title }}\\r\\n

    \\r\\n
    \\r\\n \\r\\n \\r\\n {{blog.body}}\\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
\\r\\n Sorry- it looks like the news is currently unavailable.
\\r\\n Please check back later\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n

\\r\\n News & Articles\\r\\n

\\r\\n
\\r\\n \\r\\n \\r\\n Search\\r\\n \\r\\n clear\\r\\n \\r\\n \\r\\n
\\r\\n

Recent Articles

\\r\\n
    \\r\\n
  • \\r\\n \\r\\n {{ blog.title }}\\r\\n
    \\r\\n {{ blog.posted | date:'longDate' }}\\r\\n
    \\r\\n
  • \\r\\n
  • \\r\\n \\r\\n View All\\r\\n \\r\\n
  • \\r\\n
  • \\r\\n \\r\\n News Home\\r\\n \\r\\n
  • \\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n\\r\\n \\r\\n
\\r\\n
\\r\\n
0\\\">No Entries Found
\\r\\n
\\r\\n \\r\\n
\\r\\n Filtered by {{ blogViewService.filterApplied }}: {{ blogViewService.filterString }} \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\"","import CONFIG from '../../config';\r\nimport { Component, OnInit } from '@angular/core';\r\nimport { Location } from '@angular/common';\r\nimport { Router, ActivatedRoute, Params } from '@angular/router';\r\nimport { NgForm, FormBuilder, FormControl, FormGroup, Validators } from '@angular/forms';\r\nimport { DomSanitizer } from '@angular/platform-browser'\r\n\r\nimport { BackendService } from '../shared/backend.service';\r\nimport { BlogViewService } from './blog-view.service';\r\nimport { NavService } from '../services/nav.service';\r\nimport { NotificationService } from '../notification/notification.service';\r\n\r\nimport { fader } from './blog.animations';\r\n\r\nimport { Subscription } from 'rxjs';\r\n\r\n@Component({\r\n selector: 'blog-entry',\r\n templateUrl: './blog-entry.template.html',\r\n animations: [fader()]\r\n})\r\nexport class BlogEntryComponent implements OnInit {\r\n apiUrl: string;\r\n slug: string;\r\n blog;\r\n routeSubscription: Subscription;\r\n\r\n keywordsFallback: string = 'blog, news, mimics, finance, software';\r\n descriptionFallback: string = 'MIMICS Blog Entry';\r\n\r\n constructor(\r\n public location: Location,\r\n public backendService: BackendService,\r\n public navService: NavService,\r\n public notificationService: NotificationService,\r\n public formBuilder: FormBuilder,\r\n public route: ActivatedRoute,\r\n public router: Router,\r\n public sanitizer: DomSanitizer,\r\n public blogViewService: BlogViewService\r\n ) {\r\n }\r\n\r\n ngOnInit() {\r\n this.apiUrl = CONFIG.blogsApiUrlBase;\r\n this.routeSubscription = this.route.params.subscribe((params: Params) => {\r\n this.slug = params['slug'];\r\n const currentObj = this.blogViewService.currentBlog;\r\n if(currentObj) {\r\n this.blog = currentObj;\r\n this.navService.metaChange(\r\n currentObj['title'], \r\n currentObj['description'] || this.descriptionFallback, \r\n currentObj['keywords'] || this.keywordsFallback\r\n );\r\n } else {\r\n this.getItem(this.slug);\r\n }\r\n });\r\n }\r\n\r\n ngOnDestroy() {\r\n if(this.routeSubscription) { this.routeSubscription.unsubscribe(); }\r\n }\r\n\r\n getItem(id) {\r\n console.log(id);\r\n this.backendService.getData(`${this.apiUrl}/${id}`)\r\n //.map(response => JSON.parse(response))\r\n .subscribe(item => {\r\n console.log(item);\r\n if(item) {\r\n this.navService.metaChange(\r\n \r\n item['data'].title, \r\n item['data'].description || this.descriptionFallback, \r\n item['data'].keywords || this.keywordsFallback\r\n );\r\n console.log(\"test\");\r\n const blog = Object.create(item['data']);\r\n blog['body'] = this.sanitizer.bypassSecurityTrustHtml(blog['body']);\r\n this.blog = blog;\r\n console.log(this.blog);\r\n } else {\r\n this.notificationService.showNotification({ timer: 5000, message: item['msg'], type: 'error', closeable: false });\r\n }\r\n },\r\n error => {\r\n console.log('server error getting blog:', error);\r\n });\r\n }\r\n}","import CONFIG from '../../config';\r\nimport { Component, OnInit } from '@angular/core';\r\nimport { Location } from '@angular/common';\r\n\r\nimport { BlogViewService } from './blog-view.service';\r\nimport { NavService } from '../services/nav.service';\r\nimport { PaginationService } from '../shared/pagination.service';\r\n\r\n@Component({\r\n selector: 'blogs-latest',\r\n templateUrl: './blog-latest.template.html'\r\n})\r\nexport class BlogLatestComponent implements OnInit {\r\n //meta tags\r\n description: string = 'Read the latest news about MIMICS, our partners, and our software';\r\n keywords: string = 'news, mimics, blog, details, finance, financial, software';\r\n\r\n constructor(\r\n public blogViewService: BlogViewService,\r\n public navService: NavService,\r\n public paginationService: PaginationService,\r\n ) {\r\n }\r\n\r\n ngOnInit() {\r\n this.paginationService.updateMaxItemsOnPage(5);\r\n this.blogViewService.filterApplied = '';\r\n this.blogViewService.setGrid(1, this.blogViewService.totalEntries);\r\n this.navService.metaChange('News', this.description, this.keywords);\r\n }\r\n}\r\n","import CONFIG from '../../config';\r\nimport { Injectable } from '@angular/core';\r\nimport { Location } from '@angular/common';\r\nimport { Router } from '@angular/router';\r\nimport { NgForm, FormBuilder, FormControl, FormGroup, Validators } from '@angular/forms';\r\nimport { DomSanitizer } from '@angular/platform-browser';\r\n\r\nimport { BackendService } from '../shared/backend.service';\r\nimport { FilterService } from '../shared/filter.service';\r\nimport { ModalService } from '../services/modal.service';\r\nimport { NavService } from '../services/nav.service';\r\nimport { NotificationService } from '../notification/notification.service';\r\nimport { OrderByService } from '../shared/orderby.service';\r\nimport { PaginationService } from '../shared/pagination.service';\r\nimport { SearchService } from '../shared/search.service';\r\n\r\nimport { Subscription } from 'rxjs';\r\n\r\n@Injectable()\r\nexport class BlogViewService {\r\n apiUrl: string = '';\r\n public loading: boolean = true;\r\n public getBlogsError: boolean = true;\r\n\r\n originalItems: Object[] = [];\r\n blogs: Object[] = [];\r\n searchFilteredItems: Object[] = [];\r\n prefilteredItems: Object[] = [];\r\n filterApplied: string = '';\r\n filterString: string = '';\r\n recentBlogs: Object[] = [];\r\n currentBlog: Object;\r\n\r\n //for menu nav\r\n categories: Array = [];\r\n archive: Array = [];\r\n\r\n //pagination\r\n entryRange: Array;\r\n entryRangeSubscription: Subscription;\r\n totalEntries: number = 0;\r\n\r\n //search\r\n searchSubscription: Subscription;\r\n searchArray: Array = [];\r\n TextSearch: FormGroup;\r\n term: FormControl;\r\n\r\n constructor(\r\n public location: Location,\r\n public backendService: BackendService,\r\n public notificationService: NotificationService,\r\n public modalService: ModalService,\r\n public navService: NavService,\r\n public searchService: SearchService,\r\n public orderByService: OrderByService,\r\n public paginationService: PaginationService,\r\n public filterService: FilterService,\r\n public router: Router,\r\n public sanitizer: DomSanitizer\r\n ) {}\r\n\r\n setGrid(start: number, length?: number) {\r\n let sentLen = length;\r\n if(length === undefined) {\r\n sentLen = this.originalItems.length;\r\n }\r\n this.paginationService.setGrid(start, sentLen);\r\n }\r\n\r\n updateMaxListed(max?: number) {\r\n if(max === undefined) {\r\n this.paginationService.updateMaxItemsOnPage(this.originalItems.length);\r\n } else {\r\n this.paginationService.updateMaxItemsOnPage(max);\r\n }\r\n }\r\n\r\n filterByCategory(cat) {\r\n if(this.filterString === cat) {\r\n this.resetFilter();\r\n return;\r\n }\r\n\r\n this.resetFilter();\r\n this.filterApplied = 'category';\r\n this.filterString = cat;\r\n this.blogs = this.originalItems.filter(blog => {\r\n return blog['category_name'] === cat;\r\n });\r\n this.searchFilteredItems = this.blogs;\r\n this.totalEntries = this.blogs.length;\r\n this.setGrid(1, this.totalEntries);\r\n this.notificationService.showNotification({\r\n type: 'warning',\r\n message: `Filtering by Category: ${this.filterString}`,\r\n timer: 0 //manual close\r\n });\r\n }\r\n\r\n filterByDate(date) {\r\n if(this.filterString === date) {\r\n this.resetFilter();\r\n return;\r\n }\r\n\r\n this.resetFilter();\r\n this.filterApplied = 'date';\r\n this.filterString = date;\r\n this.blogs = this.originalItems.filter(blog => {\r\n const yearMonth = blog['posted'].slice(0, 7);\r\n return yearMonth === date;\r\n });\r\n this.searchFilteredItems = this.blogs;\r\n this.totalEntries = this.blogs.length;\r\n this.setGrid(1, this.totalEntries);\r\n this.notificationService.showNotification({\r\n type: 'warning',\r\n message: `Filtering by Date: ${this.filterString}`,\r\n timer: 0 //manual close\r\n });\r\n }\r\n\r\n resetFilter() {\r\n this.filterApplied = '';\r\n this.filterString = '';\r\n this.blogs = this.originalItems;\r\n this.totalEntries = this.blogs.length;\r\n this.setGrid(1, this.totalEntries);\r\n this.notificationService.hideNotification();\r\n }\r\n\r\n goToBlog(url, slug, blogObj) {\r\n this.currentBlog = blogObj;\r\n this.router.navigate([`${url}/${slug}`])\r\n .then(result => this.navService.goToAnchor('#blog'))\r\n .catch(err => console.log('gotoblog error:', err));\r\n }\r\n\r\n getBlogs(filter?) {\r\n this.getBlogsError = false;\r\n this.loading = true;\r\nconsole.log(\"get blogs method\");\r\n this.backendService.getData(`${CONFIG.blogsApiUrlBase}`, false)\r\n //.map(response => JSON.parse(response))\r\n .subscribe(response => {\r\n console.log(response);\r\n //if(!response.result) {\r\n if(!response) {\r\n console.log(\"responce error\");\r\n this.loading = false;\r\n this.getBlogsError = true;\r\n }\r\n\r\n const data = response['data'];\r\n console.log(response['data']);\r\n this.originalItems = data.map(item => {\r\n item['body'] = this.sanitizer.bypassSecurityTrustHtml(item['body']);\r\n return item;\r\n });\r\n console.log(this.originalItems.length);\r\n //this is for latest blogs: top 5 by date that don't change on search\r\n this.recentBlogs = [...data].slice(0, 5);\r\n\r\n this.searchFilteredItems = this.originalItems;\r\n this.blogs = this.originalItems;\r\n this.totalEntries = this.blogs.length;\r\n\r\n console.log(this.originalItems.length);\r\n\r\n //by date listing\r\n const archiveFirst = copyArrayOfObjects(this.originalItems)\r\n .map(b => {\r\n b.posted = b.posted.slice(0, 7);\r\n return b;\r\n });\r\n console.log(this.originalItems.length);\r\n this.archive = aggregateArrayOfObjects(archiveFirst, 'posted');\r\n\r\n //by category listing\r\n const categoriesFirst = copyArrayOfObjects(this.originalItems);\r\n console.log(this.originalItems.length);\r\n\r\n console.log(categoriesFirst);\r\n this.categories = aggregateArrayOfObjects(categoriesFirst, 'category_name');\r\nconsole.log(this.categories);\r\n if(filter) {\r\n this.filterByCategory(filter);\r\n }\r\n this.setGrid(1, this.totalEntries);\r\n\r\n this.loading = false;\r\n }, error => {\r\n this.loading = false;\r\n this.getBlogsError = true;\r\n });\r\n }\r\n}\r\n\r\nfunction copyArrayOfObjects(objArr) {\r\n return [...objArr]\r\n .map(obj => {\r\n return Object.assign({}, obj);\r\n });\r\n}\r\n\r\nfunction aggregateArrayOfObjects(objArr, field) {\r\n console.log(field);\r\n let aggregated = [];\r\n let intermediateMap = {};\r\n\r\n objArr.forEach(item => {\r\n if(intermediateMap.hasOwnProperty(item[field])) {\r\n intermediateMap[item[field]] += 1;\r\n } else {\r\n intermediateMap[item[field]] = 1;\r\n }\r\n });\r\n\r\n for(let i in intermediateMap) {\r\n aggregated.push({name: i, total: intermediateMap[i]});\r\n }\r\n\r\n return aggregated;\r\n}","import { trigger, state, style, transition, animate, keyframes } from '@angular/animations';\r\n\r\nexport function fader() {\r\n return trigger('fader', [\r\n state('void', style({ opacity: 0, transform: `translateX(-30%)` })),\r\n state('*', style({ opacity: 1, transform: `translateX(0)` })),\r\n transition('void => *', animate('500ms ease-in')\r\n )]);\r\n}","import CONFIG from '../../config';\r\nimport { Component, OnInit, OnDestroy } from '@angular/core';\r\nimport { Location } from '@angular/common';\r\nimport { Router, ActivatedRoute, NavigationEnd } from '@angular/router';\r\nimport { NgForm, FormBuilder, FormControl, FormGroup, Validators } from '@angular/forms';\r\n\r\nimport { BackendService } from '../shared/backend.service';\r\nimport { BlogViewService } from './blog-view.service';\r\nimport { FilterService } from '../shared/filter.service';\r\nimport { ModalService } from '../services/modal.service';\r\nimport { NavService } from '../services/nav.service';\r\nimport { NotificationService } from '../notification/notification.service';\r\nimport { OrderByService } from '../shared/orderby.service';\r\nimport { PaginationService } from '../shared/pagination.service';\r\nimport { SearchService } from '../shared/search.service';\r\n\r\nimport { Subscription } from 'rxjs';\r\n\r\n@Component({\r\n selector: 'blogs-view',\r\n templateUrl: './blogs-view.template.html',\r\n styles: [`\r\n .span-link {\r\n cursor: pointer;\r\n color: rgba(0, 161, 168, 1);\r\n text-decoration: none;\r\n }\r\n .span-link:hover {\r\n color: rgba(0, 161, 168, .7);\r\n }\r\n button {\r\n cursor: pointer;\r\n }\r\n button:focus {\r\n background-color: buttonface;\r\n }\r\n .btn:focus {\r\n box-shadow: none;\r\n }\r\n .filter-active {\r\n background-color: #55aef6 !important;\r\n box-shadow: 0 0 0 2px rgba(11, 161, 232, 0.25);\r\n }\r\n `]\r\n})\r\nexport class BlogComponent implements OnInit, OnDestroy {\r\n queryParamSubscription: Subscription;\r\n routeSubscription: Subscription;\r\n hideSearch: boolean = false;\r\n\r\n constructor(\r\n public location: Location,\r\n public backendService: BackendService,\r\n public blogViewService: BlogViewService,\r\n public notificationService: NotificationService,\r\n public modalService: ModalService,\r\n public navService: NavService,\r\n public formBuilder: FormBuilder,\r\n public searchService: SearchService,\r\n public orderByService: OrderByService,\r\n public route: ActivatedRoute,\r\n public router: Router,\r\n public paginationService: PaginationService,\r\n public filterService: FilterService\r\n ) {}\r\n\r\n ngOnInit() {\r\n this.blogViewService.apiUrl = CONFIG.blogsEditApiUrlBase;\r\n this.paginationService.updateMaxItemsOnPage(5);\r\n\r\n this.queryParamSubscription = this.route.queryParams\r\n .subscribe(params => {\r\n if(params['filter']) {\r\n this.blogViewService.getBlogs(params['filter']);\r\n } else {\r\n this.blogViewService.getBlogs();\r\n }\r\n });\r\n\r\n //on jump straight to entry, need to hide search/filter options (they don't apply)\r\n this.hideSearch = this.location.path().includes('entry');\r\n\r\n //watch route and update options in menu accordingly\r\n this.routeSubscription = this.router.events\r\n .filter(event => event instanceof NavigationEnd)\r\n .subscribe(event => {\r\n this.hideSearch = event['url'].includes('entry');\r\n this.clearSearch();\r\n\r\n // if(this.blogViewService.filterApplied) {\r\n // this.blogViewService.resetFilter();\r\n // }\r\n });\r\n\r\n //text search\r\n this.blogViewService.searchArray = ['author', 'title', 'body_plain_text', 'category'];\r\n this.blogViewService.term = new FormControl();\r\n this.blogViewService.TextSearch = new FormGroup({\r\n term: this.blogViewService.term\r\n });\r\n\r\n this.blogViewService.searchSubscription = this.blogViewService.term.valueChanges\r\n .debounceTime(200)\r\n .subscribe(result => {\r\n let itemsToSearch = this.blogViewService.originalItems\r\n .map(item => {\r\n //regex strips out content between html tags for search. base64 images will cause many false positives if we allow their code!\r\n item['body_plain_text'] = String(item['body']).replace(/<[^>]+>/gm, ' ');\r\n return item;\r\n });\r\n this.searchService.findItemsFromMultiple(result, itemsToSearch, this.blogViewService.searchArray)\r\n .then(allFiltered => {\r\n if(result.length > 0) {\r\n this.blogViewService.blogs = allFiltered;\r\n this.blogViewService.searchFilteredItems = allFiltered;\r\n } else {\r\n this.blogViewService.blogs = this.blogViewService.originalItems;\r\n }\r\n this.blogViewService.totalEntries = this.blogViewService.blogs.length;\r\n this.blogViewService.setGrid(1, this.blogViewService.totalEntries);\r\n });\r\n });\r\n\r\n //pagination\r\n this.blogViewService.entryRangeSubscription = this.paginationService.entryRange\r\n .subscribe(range => {\r\n this.blogViewService.entryRange = range;\r\n if(this.blogViewService.term.value || this.blogViewService.filterApplied) {\r\n this.blogViewService.blogs = this.blogViewService.searchFilteredItems.slice(this.blogViewService.entryRange[0], this.blogViewService.entryRange[1]);\r\n this.blogViewService.totalEntries = this.blogViewService.searchFilteredItems.length;\r\n } else {\r\n this.blogViewService.blogs = this.blogViewService.originalItems.slice(this.blogViewService.entryRange[0], this.blogViewService.entryRange[1]);\r\n this.blogViewService.totalEntries = this.blogViewService.originalItems.length;\r\n }\r\n this.navService.goToAnchor('#blog');\r\n });\r\n }\r\n\r\n clearSearch() {\r\n this.blogViewService.term.setValue('');\r\n this.blogViewService.resetFilter();\r\n this.blogViewService.blogs = this.blogViewService.originalItems;\r\n this.blogViewService.searchFilteredItems = [];\r\n }\r\n\r\n ngOnDestroy() {\r\n this.notificationService.hideNotification();\r\n\r\n if(this.blogViewService.searchSubscription) { \r\n this.blogViewService.searchSubscription.unsubscribe();\r\n }\r\n if(this.blogViewService.entryRangeSubscription) { \r\n this.blogViewService.entryRangeSubscription.unsubscribe();\r\n }\r\n if(this.routeSubscription) { this.routeSubscription.unsubscribe(); }\r\n if(this.queryParamSubscription) { this.queryParamSubscription.unsubscribe(); }\r\n if(this.blogViewService.currentBlog) { this.blogViewService.currentBlog = undefined; }\r\n }\r\n}\r\n","//general Angular module imports\r\nimport { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { HttpModule } from '@angular/http';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { SharedModule } from '../shared/shared.module';\r\n\r\nimport { BlogRouting } from './blog.routes';\r\n\r\nimport { BlogComponent } from './blog.component';\r\nimport { BlogEntryComponent } from './blog-entry.component';\r\nimport { BlogLatestComponent } from './blog-latest.component';\r\n\r\nimport { BlogViewService } from './blog-view.service';\r\nimport { FilterService } from '../shared/filter.service';\r\nimport { OrderByService } from '../shared/orderby.service';\r\nimport { PaginationService } from '../shared/pagination.service';\r\nimport { SearchService } from '../shared/search.service';\r\nimport { Utilities } from '../shared/utilities.service';\r\n\r\nimport { MatDatepickerModule } from '@angular/material';\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n BlogRouting,\r\n HttpModule,\r\n FormsModule,\r\n ReactiveFormsModule,\r\n SharedModule,\r\n MatDatepickerModule\r\n ],\r\n declarations: [\r\n BlogComponent,\r\n BlogEntryComponent,\r\n BlogLatestComponent\r\n ],\r\n providers: [\r\n BlogViewService,\r\n FilterService,\r\n OrderByService,\r\n PaginationService,\r\n SearchService,\r\n Utilities\r\n ]\r\n})\r\nexport class BlogModule {\r\n}\r\n","import { Routes, RouterModule } from '@angular/router';\r\n\r\nimport { BlogComponent } from './blog.component';\r\nimport { BlogEntryComponent } from './blog-entry.component';\r\nimport { BlogLatestComponent } from './blog-latest.component';\r\n\r\nconst BlogRoutes: Routes = [\r\n {\r\n path: '',\r\n component: BlogComponent,\r\n children: [\r\n { path: '', component: BlogLatestComponent },\r\n { path: 'entry/:slug', component: BlogEntryComponent }\r\n //paths for category/:category, archive/:archive, pages?\r\n ]\r\n },\r\n];\r\n\r\nexport const BlogRouting = RouterModule.forChild(BlogRoutes);"],"sourceRoot":"webpack:///"}
\\n {{headerText}}\\n \\n {{dataAccessor(data, name)}}\\n