{"version":3,"file":"axulus-uikit-paginator.mjs","sources":["../../src/app/components/paginator/paginator.ts","../../src/app/components/paginator/axulus-uikit-paginator.ts"],"sourcesContent":["import { CommonModule } from '@angular/common';\nimport {\n  ChangeDetectionStrategy,\n  ChangeDetectorRef,\n  Component,\n  EventEmitter,\n  Input,\n  NgModule,\n  OnChanges,\n  OnInit,\n  Output,\n  SimpleChanges,\n  TemplateRef,\n  ViewEncapsulation\n} from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { SelectItem, SharedModule } from '@axulus/uikit/api';\nimport { DropdownModule } from '@axulus/uikit/dropdown';\nimport { InputNumberModule } from '@axulus/uikit/inputnumber';\nimport { RippleModule } from '@axulus/uikit/ripple';\n\n@Component({\n  selector: 'p-paginator',\n  template: `\n    <div\n      [class]=\"styleClass\"\n      [ngStyle]=\"style\"\n      [ngClass]=\"'p-paginator p-component'\"\n      *ngIf=\"alwaysShow ? true : pageLinks && pageLinks.length > 1\"\n    >\n      <div class=\"p-paginator-left-content\" *ngIf=\"templateLeft\">\n        <ng-container *ngTemplateOutlet=\"templateLeft; context: { $implicit: paginatorState }\"></ng-container>\n      </div>\n      <span class=\"p-paginator-current\" *ngIf=\"showCurrentPageReport\">{{ currentPageReport }}</span>\n      <button\n        *ngIf=\"showFirstLastIcon\"\n        type=\"button\"\n        [disabled]=\"isFirstPage() || empty()\"\n        (click)=\"changePageToFirst($event)\"\n        pRipple\n        class=\"p-paginator-first p-paginator-element p-link\"\n        [ngClass]=\"{ 'p-disabled': isFirstPage() || empty() }\"\n      >\n        <span class=\"p-paginator-icon pi pi-angle-double-left\"></span>\n      </button>\n      <button\n        type=\"button\"\n        [disabled]=\"isFirstPage() || empty()\"\n        (click)=\"changePageToPrev($event)\"\n        pRipple\n        class=\"p-paginator-prev p-paginator-element p-link\"\n        [ngClass]=\"{ 'p-disabled': isFirstPage() || empty() }\"\n      >\n        <span class=\"p-paginator-icon pi pi-angle-left\"></span>\n      </button>\n      <span class=\"p-paginator-pages\" *ngIf=\"showPageLinks\">\n        <button\n          type=\"button\"\n          *ngFor=\"let pageLink of pageLinks\"\n          class=\"p-paginator-page p-paginator-element p-link\"\n          [ngClass]=\"{ 'p-highlight': pageLink - 1 == getPage() }\"\n          (click)=\"onPageLinkClick($event, pageLink - 1)\"\n          pRipple\n        >\n          {{ pageLink }}\n        </button>\n      </span>\n      <p-dropdown\n        [options]=\"pageItems\"\n        [ngModel]=\"getPage()\"\n        *ngIf=\"showJumpToPageDropdown\"\n        [disabled]=\"empty()\"\n        styleClass=\"p-paginator-page-options\"\n        (onChange)=\"onPageDropdownChange($event)\"\n        [appendTo]=\"dropdownAppendTo\"\n        [scrollHeight]=\"dropdownScrollHeight\"\n      >\n        <ng-template pTemplate=\"selectedItem\">{{ currentPageReport }}</ng-template>\n      </p-dropdown>\n      <button\n        type=\"button\"\n        [disabled]=\"isLastPage() || empty()\"\n        (click)=\"changePageToNext($event)\"\n        pRipple\n        class=\"p-paginator-next p-paginator-element p-link\"\n        [ngClass]=\"{ 'p-disabled': isLastPage() || empty() }\"\n      >\n        <span class=\"p-paginator-icon pi pi-angle-right\"></span>\n      </button>\n      <button\n        *ngIf=\"showFirstLastIcon\"\n        type=\"button\"\n        [disabled]=\"isLastPage() || empty()\"\n        (click)=\"changePageToLast($event)\"\n        pRipple\n        class=\"p-paginator-last p-paginator-element p-link\"\n        [ngClass]=\"{ 'p-disabled': isLastPage() || empty() }\"\n      >\n        <span class=\"p-paginator-icon pi pi-angle-double-right\"></span>\n      </button>\n      <p-inputNumber\n        *ngIf=\"showJumpToPageInput\"\n        [ngModel]=\"currentPage()\"\n        class=\"p-paginator-page-input\"\n        [disabled]=\"empty()\"\n        (ngModelChange)=\"changePage($event - 1)\"\n      ></p-inputNumber>\n      <p-dropdown\n        [options]=\"rowsPerPageItems\"\n        [(ngModel)]=\"rows\"\n        *ngIf=\"rowsPerPageOptions\"\n        styleClass=\"p-paginator-rpp-options\"\n        [disabled]=\"empty()\"\n        (onChange)=\"onRppChange($event)\"\n        [appendTo]=\"dropdownAppendTo\"\n        [scrollHeight]=\"dropdownScrollHeight\"\n      >\n        <ng-container *ngIf=\"dropdownItemTemplate\">\n          <ng-template let-item pTemplate=\"item\">\n            <ng-container *ngTemplateOutlet=\"dropdownItemTemplate; context: { $implicit: item }\"> </ng-container>\n          </ng-template>\n        </ng-container>\n      </p-dropdown>\n      <div class=\"p-paginator-right-content\" *ngIf=\"templateRight\">\n        <ng-container *ngTemplateOutlet=\"templateRight; context: { $implicit: paginatorState }\"></ng-container>\n      </div>\n    </div>\n  `,\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  encapsulation: ViewEncapsulation.None,\n  styleUrls: ['./paginator.css'],\n  host: {\n    class: 'p-element'\n  }\n})\nexport class Paginator implements OnInit, OnChanges {\n  @Input() pageLinkSize: number = 5;\n\n  @Output() onPageChange: EventEmitter<any> = new EventEmitter();\n\n  @Input() style: any;\n\n  @Input() styleClass: string;\n\n  @Input() alwaysShow: boolean = true;\n\n  @Input() templateLeft: TemplateRef<any>;\n\n  @Input() templateRight: TemplateRef<any>;\n\n  @Input() dropdownAppendTo: any;\n\n  @Input() dropdownScrollHeight: string = '200px';\n\n  @Input() currentPageReportTemplate: string = '{currentPage} of {totalPages}';\n\n  @Input() showCurrentPageReport: boolean;\n\n  @Input() showFirstLastIcon: boolean = true;\n\n  @Input() totalRecords: number = 0;\n\n  @Input() rows: number = 0;\n\n  @Input() rowsPerPageOptions: any[];\n\n  @Input() showJumpToPageDropdown: boolean;\n\n  @Input() showJumpToPageInput: boolean;\n\n  @Input() showPageLinks: boolean = true;\n\n  @Input() dropdownItemTemplate: TemplateRef<any>;\n\n  pageLinks: number[];\n\n  pageItems: SelectItem[];\n\n  rowsPerPageItems: SelectItem[];\n\n  paginatorState: any;\n\n  _first: number = 0;\n\n  _page: number = 0;\n\n  constructor(private cd: ChangeDetectorRef) {}\n\n  ngOnInit() {\n    this.updatePaginatorState();\n  }\n\n  ngOnChanges(simpleChange: SimpleChanges) {\n    if (simpleChange.totalRecords) {\n      this.updatePageLinks();\n      this.updatePaginatorState();\n      this.updateFirst();\n      this.updateRowsPerPageOptions();\n    }\n\n    if (simpleChange.first) {\n      this._first = simpleChange.first.currentValue;\n      this.updatePageLinks();\n      this.updatePaginatorState();\n    }\n\n    if (simpleChange.rows) {\n      this.updatePageLinks();\n      this.updatePaginatorState();\n    }\n\n    if (simpleChange.rowsPerPageOptions) {\n      this.updateRowsPerPageOptions();\n    }\n  }\n\n  @Input() get first(): number {\n    return this._first;\n  }\n  set first(val: number) {\n    this._first = val;\n  }\n\n  updateRowsPerPageOptions() {\n    if (this.rowsPerPageOptions) {\n      this.rowsPerPageItems = [];\n      for (let opt of this.rowsPerPageOptions) {\n        if (typeof opt == 'object' && opt['showAll']) {\n          this.rowsPerPageItems.unshift({ label: opt['showAll'], value: this.totalRecords });\n        } else {\n          this.rowsPerPageItems.push({ label: String(opt), value: opt });\n        }\n      }\n    }\n  }\n\n  isFirstPage() {\n    return this.getPage() === 0;\n  }\n\n  isLastPage() {\n    return this.getPage() === this.getPageCount() - 1;\n  }\n\n  getPageCount() {\n    return Math.ceil(this.totalRecords / this.rows);\n  }\n\n  calculatePageLinkBoundaries() {\n    let numberOfPages = this.getPageCount(),\n      visiblePages = Math.min(this.pageLinkSize, numberOfPages);\n\n    //calculate range, keep current in middle if necessary\n    let start = Math.max(0, Math.ceil(this.getPage() - visiblePages / 2)),\n      end = Math.min(numberOfPages - 1, start + visiblePages - 1);\n\n    //check when approaching to last page\n    var delta = this.pageLinkSize - (end - start + 1);\n    start = Math.max(0, start - delta);\n\n    return [start, end];\n  }\n\n  updatePageLinks() {\n    this.pageLinks = [];\n    let boundaries = this.calculatePageLinkBoundaries(),\n      start = boundaries[0],\n      end = boundaries[1];\n\n    for (let i = start; i <= end; i++) {\n      this.pageLinks.push(i + 1);\n    }\n\n    if (this.showJumpToPageDropdown) {\n      this.pageItems = [];\n      for (let i = 0; i < this.getPageCount(); i++) {\n        this.pageItems.push({ label: String(i + 1), value: i });\n      }\n    }\n  }\n\n  changePage(p: number) {\n    var pc = this.getPageCount();\n\n    if (p >= 0 && p < pc) {\n      this._first = this.rows * p;\n      var state = {\n        page: p,\n        first: this.first,\n        rows: this.rows,\n        pageCount: pc\n      };\n      this.updatePageLinks();\n\n      this.onPageChange.emit(state);\n      this.updatePaginatorState();\n    }\n  }\n\n  updateFirst() {\n    const page = this.getPage();\n    if (page > 0 && this.totalRecords && this.first >= this.totalRecords) {\n      Promise.resolve(null).then(() => this.changePage(page - 1));\n    }\n  }\n\n  getPage(): number {\n    return Math.floor(this.first / this.rows);\n  }\n\n  changePageToFirst(event) {\n    if (!this.isFirstPage()) {\n      this.changePage(0);\n    }\n\n    event.preventDefault();\n  }\n\n  changePageToPrev(event) {\n    this.changePage(this.getPage() - 1);\n    event.preventDefault();\n  }\n\n  changePageToNext(event) {\n    this.changePage(this.getPage() + 1);\n    event.preventDefault();\n  }\n\n  changePageToLast(event) {\n    if (!this.isLastPage()) {\n      this.changePage(this.getPageCount() - 1);\n    }\n\n    event.preventDefault();\n  }\n\n  onPageLinkClick(event, page) {\n    this.changePage(page);\n    event.preventDefault();\n  }\n\n  onRppChange(event) {\n    this.changePage(this.getPage());\n  }\n\n  onPageDropdownChange(event) {\n    this.changePage(event.value);\n  }\n\n  updatePaginatorState() {\n    this.paginatorState = {\n      page: this.getPage(),\n      pageCount: this.getPageCount(),\n      rows: this.rows,\n      first: this.first,\n      totalRecords: this.totalRecords\n    };\n  }\n\n  empty() {\n    return this.getPageCount() === 0;\n  }\n\n  currentPage() {\n    return this.getPageCount() > 0 ? this.getPage() + 1 : 0;\n  }\n\n  get currentPageReport() {\n    return this.currentPageReportTemplate\n      .replace('{currentPage}', String(this.currentPage()))\n      .replace('{totalPages}', String(this.getPageCount()))\n      .replace('{first}', String(this.totalRecords > 0 ? this._first + 1 : 0))\n      .replace('{last}', String(Math.min(this._first + this.rows, this.totalRecords)))\n      .replace('{rows}', String(this.rows))\n      .replace('{totalRecords}', String(this.totalRecords));\n  }\n}\n\n@NgModule({\n  imports: [CommonModule, DropdownModule, InputNumberModule, FormsModule, SharedModule, RippleModule],\n  exports: [Paginator, SharedModule, RippleModule],\n  declarations: [Paginator]\n})\nexport class PaginatorModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":";;;;;;;;;;;;;;;MAuIa,SAAS,CAAA;AAmDpB,IAAA,WAAA,CAAoB,EAAqB,EAAA;QAArB,IAAE,CAAA,EAAA,GAAF,EAAE,CAAmB;QAlDhC,IAAY,CAAA,YAAA,GAAW,CAAC,CAAC;AAExB,QAAA,IAAA,CAAA,YAAY,GAAsB,IAAI,YAAY,EAAE,CAAC;QAMtD,IAAU,CAAA,UAAA,GAAY,IAAI,CAAC;QAQ3B,IAAoB,CAAA,oBAAA,GAAW,OAAO,CAAC;QAEvC,IAAyB,CAAA,yBAAA,GAAW,+BAA+B,CAAC;QAIpE,IAAiB,CAAA,iBAAA,GAAY,IAAI,CAAC;QAElC,IAAY,CAAA,YAAA,GAAW,CAAC,CAAC;QAEzB,IAAI,CAAA,IAAA,GAAW,CAAC,CAAC;QAQjB,IAAa,CAAA,aAAA,GAAY,IAAI,CAAC;QAYvC,IAAM,CAAA,MAAA,GAAW,CAAC,CAAC;QAEnB,IAAK,CAAA,KAAA,GAAW,CAAC,CAAC;KAE2B;IAE7C,QAAQ,GAAA;QACN,IAAI,CAAC,oBAAoB,EAAE,CAAC;KAC7B;AAED,IAAA,WAAW,CAAC,YAA2B,EAAA;QACrC,IAAI,YAAY,CAAC,YAAY,EAAE;YAC7B,IAAI,CAAC,eAAe,EAAE,CAAC;YACvB,IAAI,CAAC,oBAAoB,EAAE,CAAC;YAC5B,IAAI,CAAC,WAAW,EAAE,CAAC;YACnB,IAAI,CAAC,wBAAwB,EAAE,CAAC;AACjC,SAAA;QAED,IAAI,YAAY,CAAC,KAAK,EAAE;YACtB,IAAI,CAAC,MAAM,GAAG,YAAY,CAAC,KAAK,CAAC,YAAY,CAAC;YAC9C,IAAI,CAAC,eAAe,EAAE,CAAC;YACvB,IAAI,CAAC,oBAAoB,EAAE,CAAC;AAC7B,SAAA;QAED,IAAI,YAAY,CAAC,IAAI,EAAE;YACrB,IAAI,CAAC,eAAe,EAAE,CAAC;YACvB,IAAI,CAAC,oBAAoB,EAAE,CAAC;AAC7B,SAAA;QAED,IAAI,YAAY,CAAC,kBAAkB,EAAE;YACnC,IAAI,CAAC,wBAAwB,EAAE,CAAC;AACjC,SAAA;KACF;AAED,IAAA,IAAa,KAAK,GAAA;QAChB,OAAO,IAAI,CAAC,MAAM,CAAC;KACpB;IACD,IAAI,KAAK,CAAC,GAAW,EAAA;AACnB,QAAA,IAAI,CAAC,MAAM,GAAG,GAAG,CAAC;KACnB;IAED,wBAAwB,GAAA;QACtB,IAAI,IAAI,CAAC,kBAAkB,EAAE;AAC3B,YAAA,IAAI,CAAC,gBAAgB,GAAG,EAAE,CAAC;AAC3B,YAAA,KAAK,IAAI,GAAG,IAAI,IAAI,CAAC,kBAAkB,EAAE;gBACvC,IAAI,OAAO,GAAG,IAAI,QAAQ,IAAI,GAAG,CAAC,SAAS,CAAC,EAAE;oBAC5C,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,EAAE,KAAK,EAAE,GAAG,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,YAAY,EAAE,CAAC,CAAC;AACpF,iBAAA;AAAM,qBAAA;AACL,oBAAA,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,GAAG,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,CAAC;AAChE,iBAAA;AACF,aAAA;AACF,SAAA;KACF;IAED,WAAW,GAAA;AACT,QAAA,OAAO,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;KAC7B;IAED,UAAU,GAAA;QACR,OAAO,IAAI,CAAC,OAAO,EAAE,KAAK,IAAI,CAAC,YAAY,EAAE,GAAG,CAAC,CAAC;KACnD;IAED,YAAY,GAAA;AACV,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC;KACjD;IAED,2BAA2B,GAAA;AACzB,QAAA,IAAI,aAAa,GAAG,IAAI,CAAC,YAAY,EAAE,EACrC,YAAY,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,YAAY,EAAE,aAAa,CAAC,CAAC;;AAG5D,QAAA,IAAI,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,YAAY,GAAG,CAAC,CAAC,CAAC,EACnE,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,aAAa,GAAG,CAAC,EAAE,KAAK,GAAG,YAAY,GAAG,CAAC,CAAC,CAAC;;AAG9D,QAAA,IAAI,KAAK,GAAG,IAAI,CAAC,YAAY,IAAI,GAAG,GAAG,KAAK,GAAG,CAAC,CAAC,CAAC;QAClD,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,GAAG,KAAK,CAAC,CAAC;AAEnC,QAAA,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;KACrB;IAED,eAAe,GAAA;AACb,QAAA,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC;QACpB,IAAI,UAAU,GAAG,IAAI,CAAC,2BAA2B,EAAE,EACjD,KAAK,GAAG,UAAU,CAAC,CAAC,CAAC,EACrB,GAAG,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;QAEtB,KAAK,IAAI,CAAC,GAAG,KAAK,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,EAAE,EAAE;YACjC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;AAC5B,SAAA;QAED,IAAI,IAAI,CAAC,sBAAsB,EAAE;AAC/B,YAAA,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC;AACpB,YAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,YAAY,EAAE,EAAE,CAAC,EAAE,EAAE;gBAC5C,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC;AACzD,aAAA;AACF,SAAA;KACF;AAED,IAAA,UAAU,CAAC,CAAS,EAAA;AAClB,QAAA,IAAI,EAAE,GAAG,IAAI,CAAC,YAAY,EAAE,CAAC;AAE7B,QAAA,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,EAAE;YACpB,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC;AAC5B,YAAA,IAAI,KAAK,GAAG;AACV,gBAAA,IAAI,EAAE,CAAC;gBACP,KAAK,EAAE,IAAI,CAAC,KAAK;gBACjB,IAAI,EAAE,IAAI,CAAC,IAAI;AACf,gBAAA,SAAS,EAAE,EAAE;aACd,CAAC;YACF,IAAI,CAAC,eAAe,EAAE,CAAC;AAEvB,YAAA,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YAC9B,IAAI,CAAC,oBAAoB,EAAE,CAAC;AAC7B,SAAA;KACF;IAED,WAAW,GAAA;AACT,QAAA,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC;AAC5B,QAAA,IAAI,IAAI,GAAG,CAAC,IAAI,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,YAAY,EAAE;YACpE,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,MAAM,IAAI,CAAC,UAAU,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC;AAC7D,SAAA;KACF;IAED,OAAO,GAAA;AACL,QAAA,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC;KAC3C;AAED,IAAA,iBAAiB,CAAC,KAAK,EAAA;AACrB,QAAA,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,EAAE;AACvB,YAAA,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;AACpB,SAAA;QAED,KAAK,CAAC,cAAc,EAAE,CAAC;KACxB;AAED,IAAA,gBAAgB,CAAC,KAAK,EAAA;QACpB,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,CAAC;QACpC,KAAK,CAAC,cAAc,EAAE,CAAC;KACxB;AAED,IAAA,gBAAgB,CAAC,KAAK,EAAA;QACpB,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,CAAC;QACpC,KAAK,CAAC,cAAc,EAAE,CAAC;KACxB;AAED,IAAA,gBAAgB,CAAC,KAAK,EAAA;AACpB,QAAA,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,EAAE;YACtB,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,YAAY,EAAE,GAAG,CAAC,CAAC,CAAC;AAC1C,SAAA;QAED,KAAK,CAAC,cAAc,EAAE,CAAC;KACxB;IAED,eAAe,CAAC,KAAK,EAAE,IAAI,EAAA;AACzB,QAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;QACtB,KAAK,CAAC,cAAc,EAAE,CAAC;KACxB;AAED,IAAA,WAAW,CAAC,KAAK,EAAA;QACf,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;KACjC;AAED,IAAA,oBAAoB,CAAC,KAAK,EAAA;AACxB,QAAA,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;KAC9B;IAED,oBAAoB,GAAA;QAClB,IAAI,CAAC,cAAc,GAAG;AACpB,YAAA,IAAI,EAAE,IAAI,CAAC,OAAO,EAAE;AACpB,YAAA,SAAS,EAAE,IAAI,CAAC,YAAY,EAAE;YAC9B,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,YAAY,EAAE,IAAI,CAAC,YAAY;SAChC,CAAC;KACH;IAED,KAAK,GAAA;AACH,QAAA,OAAO,IAAI,CAAC,YAAY,EAAE,KAAK,CAAC,CAAC;KAClC;IAED,WAAW,GAAA;AACT,QAAA,OAAO,IAAI,CAAC,YAAY,EAAE,GAAG,CAAC,GAAG,IAAI,CAAC,OAAO,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC;KACzD;AAED,IAAA,IAAI,iBAAiB,GAAA;QACnB,OAAO,IAAI,CAAC,yBAAyB;aAClC,OAAO,CAAC,eAAe,EAAE,MAAM,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC;aACpD,OAAO,CAAC,cAAc,EAAE,MAAM,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC,CAAC;aACpD,OAAO,CAAC,SAAS,EAAE,MAAM,CAAC,IAAI,CAAC,YAAY,GAAG,CAAC,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;aACvE,OAAO,CAAC,QAAQ,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC;aAC/E,OAAO,CAAC,QAAQ,EAAE,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;aACpC,OAAO,CAAC,gBAAgB,EAAE,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC;KACzD;;sGAhPU,SAAS,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAT,SAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,SAAS,EAhHV,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,EAAA,YAAA,EAAA,cAAA,EAAA,KAAA,EAAA,OAAA,EAAA,UAAA,EAAA,YAAA,EAAA,UAAA,EAAA,YAAA,EAAA,YAAA,EAAA,cAAA,EAAA,aAAA,EAAA,eAAA,EAAA,gBAAA,EAAA,kBAAA,EAAA,oBAAA,EAAA,sBAAA,EAAA,yBAAA,EAAA,2BAAA,EAAA,qBAAA,EAAA,uBAAA,EAAA,iBAAA,EAAA,mBAAA,EAAA,YAAA,EAAA,cAAA,EAAA,IAAA,EAAA,MAAA,EAAA,kBAAA,EAAA,oBAAA,EAAA,sBAAA,EAAA,wBAAA,EAAA,mBAAA,EAAA,qBAAA,EAAA,aAAA,EAAA,eAAA,EAAA,oBAAA,EAAA,sBAAA,EAAA,KAAA,EAAA,OAAA,EAAA,EAAA,OAAA,EAAA,EAAA,YAAA,EAAA,cAAA,EAAA,EAAA,IAAA,EAAA,EAAA,cAAA,EAAA,WAAA,EAAA,EAAA,aAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAwGT,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,CAAA,6fAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,yBAAA,EAAA,kBAAA,EAAA,0BAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,QAAA,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,CAAA,cAAA,EAAA,QAAA,EAAA,MAAA,EAAA,OAAA,EAAA,YAAA,EAAA,YAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,aAAA,EAAA,mBAAA,EAAA,cAAA,EAAA,SAAA,EAAA,UAAA,EAAA,SAAA,EAAA,UAAA,EAAA,WAAA,EAAA,mBAAA,EAAA,cAAA,EAAA,aAAA,EAAA,aAAA,EAAA,gBAAA,EAAA,kBAAA,EAAA,qBAAA,EAAA,kBAAA,EAAA,OAAA,EAAA,WAAA,EAAA,oBAAA,EAAA,cAAA,EAAA,MAAA,EAAA,eAAA,EAAA,uBAAA,EAAA,sBAAA,EAAA,gBAAA,EAAA,iBAAA,EAAA,WAAA,EAAA,gBAAA,EAAA,iBAAA,EAAA,WAAA,EAAA,SAAA,EAAA,iBAAA,EAAA,sBAAA,EAAA,mBAAA,EAAA,iBAAA,EAAA,kBAAA,EAAA,UAAA,EAAA,UAAA,EAAA,YAAA,EAAA,YAAA,EAAA,uBAAA,EAAA,uBAAA,EAAA,SAAA,EAAA,aAAA,CAAA,EAAA,OAAA,EAAA,CAAA,UAAA,EAAA,UAAA,EAAA,SAAA,EAAA,QAAA,EAAA,SAAA,EAAA,QAAA,EAAA,QAAA,EAAA,SAAA,EAAA,YAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,aAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,WAAA,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,CAAA,aAAA,EAAA,QAAA,EAAA,cAAA,EAAA,SAAA,EAAA,YAAA,EAAA,OAAA,EAAA,aAAA,EAAA,MAAA,EAAA,WAAA,EAAA,UAAA,EAAA,OAAA,EAAA,WAAA,EAAA,cAAA,EAAA,MAAA,EAAA,UAAA,EAAA,cAAA,EAAA,KAAA,EAAA,KAAA,EAAA,sBAAA,EAAA,sBAAA,EAAA,qBAAA,EAAA,qBAAA,EAAA,UAAA,EAAA,MAAA,EAAA,YAAA,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,UAAA,EAAA,iBAAA,EAAA,aAAA,EAAA,mBAAA,EAAA,mBAAA,EAAA,QAAA,EAAA,QAAA,EAAA,YAAA,EAAA,iBAAA,EAAA,WAAA,EAAA,UAAA,CAAA,EAAA,OAAA,EAAA,CAAA,SAAA,EAAA,SAAA,EAAA,QAAA,EAAA,WAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,qDAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,SAAA,EAAA,gBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,MAAA,EAAA,QAAA,EAAA,WAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA,CAAA;2FAQU,SAAS,EAAA,UAAA,EAAA,CAAA;kBAlHrB,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,aAAa,EACb,QAAA,EAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAwGT,EAAA,CAAA,EAAA,eAAA,EACgB,uBAAuB,CAAC,MAAM,iBAChC,iBAAiB,CAAC,IAAI,EAE/B,IAAA,EAAA;AACJ,wBAAA,KAAK,EAAE,WAAW;AACnB,qBAAA,EAAA,MAAA,EAAA,CAAA,6fAAA,CAAA,EAAA,CAAA;wGAGQ,YAAY,EAAA,CAAA;sBAApB,KAAK;gBAEI,YAAY,EAAA,CAAA;sBAArB,MAAM;gBAEE,KAAK,EAAA,CAAA;sBAAb,KAAK;gBAEG,UAAU,EAAA,CAAA;sBAAlB,KAAK;gBAEG,UAAU,EAAA,CAAA;sBAAlB,KAAK;gBAEG,YAAY,EAAA,CAAA;sBAApB,KAAK;gBAEG,aAAa,EAAA,CAAA;sBAArB,KAAK;gBAEG,gBAAgB,EAAA,CAAA;sBAAxB,KAAK;gBAEG,oBAAoB,EAAA,CAAA;sBAA5B,KAAK;gBAEG,yBAAyB,EAAA,CAAA;sBAAjC,KAAK;gBAEG,qBAAqB,EAAA,CAAA;sBAA7B,KAAK;gBAEG,iBAAiB,EAAA,CAAA;sBAAzB,KAAK;gBAEG,YAAY,EAAA,CAAA;sBAApB,KAAK;gBAEG,IAAI,EAAA,CAAA;sBAAZ,KAAK;gBAEG,kBAAkB,EAAA,CAAA;sBAA1B,KAAK;gBAEG,sBAAsB,EAAA,CAAA;sBAA9B,KAAK;gBAEG,mBAAmB,EAAA,CAAA;sBAA3B,KAAK;gBAEG,aAAa,EAAA,CAAA;sBAArB,KAAK;gBAEG,oBAAoB,EAAA,CAAA;sBAA5B,KAAK;gBA4CO,KAAK,EAAA,CAAA;sBAAjB,KAAK;;MAuKK,eAAe,CAAA;;4GAAf,eAAe,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;AAAf,eAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,eAAe,iBAxPf,SAAS,CAAA,EAAA,OAAA,EAAA,CAoPV,YAAY,EAAE,cAAc,EAAE,iBAAiB,EAAE,WAAW,EAAE,YAAY,EAAE,YAAY,CAAA,EAAA,OAAA,EAAA,CApPvF,SAAS,EAqPC,YAAY,EAAE,YAAY,CAAA,EAAA,CAAA,CAAA;AAGpC,eAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,eAAe,EAJhB,OAAA,EAAA,CAAA,YAAY,EAAE,cAAc,EAAE,iBAAiB,EAAE,WAAW,EAAE,YAAY,EAAE,YAAY,EAC7E,YAAY,EAAE,YAAY,CAAA,EAAA,CAAA,CAAA;2FAGpC,eAAe,EAAA,UAAA,EAAA,CAAA;kBAL3B,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,OAAO,EAAE,CAAC,YAAY,EAAE,cAAc,EAAE,iBAAiB,EAAE,WAAW,EAAE,YAAY,EAAE,YAAY,CAAC;AACnG,oBAAA,OAAO,EAAE,CAAC,SAAS,EAAE,YAAY,EAAE,YAAY,CAAC;oBAChD,YAAY,EAAE,CAAC,SAAS,CAAC;AAC1B,iBAAA,CAAA;;;AC9XD;;AAEG;;;;"}