{"version":3,"file":"pagination.mjs","sources":["../../../../../k8-fastbuild-ST-fdfa778d11ba/bin/src/angular/pagination/navigation/navigation.ts","../../../../../k8-fastbuild-ST-fdfa778d11ba/bin/src/angular/pagination/navigation/navigation.html","../../../../../k8-fastbuild-ST-fdfa778d11ba/bin/src/angular/pagination/paginator/paginator.ts","../../../../../k8-fastbuild-ST-fdfa778d11ba/bin/src/angular/pagination/paginator/paginator.html","../../../../../k8-fastbuild-ST-fdfa778d11ba/bin/src/angular/pagination/pagination.module.ts"],"sourcesContent":["import {\n  ChangeDetectionStrategy,\n  Component,\n  EventEmitter,\n  Input,\n  OnChanges,\n  Output,\n  SimpleChanges,\n  ViewEncapsulation,\n} from '@angular/core';\nimport { SbbIcon } from '@sbb-esta/angular/icon';\n\nexport type SbbNavigationPageChangeEvent = 'next' | 'previous';\n\n@Component({\n  selector: 'sbb-navigation',\n  templateUrl: './navigation.html',\n  styleUrls: ['./navigation.css'],\n  encapsulation: ViewEncapsulation.None,\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  host: {\n    role: 'navigation',\n  },\n  imports: [SbbIcon],\n})\nexport class SbbNavigation implements OnChanges {\n  /** The next page descriptor. */\n  @Input()\n  nextPage: string | null = null;\n\n  /** The previous page descriptor. */\n  @Input()\n  previousPage: string | null = null;\n\n  /** This event can be used by parent components to handle events on page change. */\n  @Output()\n  pageChange: EventEmitter<SbbNavigationPageChangeEvent> =\n    new EventEmitter<SbbNavigationPageChangeEvent>();\n\n  ngOnChanges(changes: SimpleChanges) {\n    if (!this.nextPage && !this.previousPage) {\n      throw Error('At least hasNext or hasPrevious must be defined in <sbb-navigation>');\n    }\n  }\n}\n","<ul class=\"sbb-navigation sbb-clean-list\">\n  @if (previousPage) {\n    <li\n      class=\"sbb-navigation-item sbb-navigation-item-left\"\n      [class.sbb-navigation-item-single]=\"!nextPage\"\n    >\n      <button\n        type=\"button\"\n        class=\"sbb-button-reset-frameless sbb-navigation-item-button\"\n        (click)=\"pageChange.emit('previous')\"\n      >\n        <span class=\"sbb-navigation-item-boundary sbb-navigation-item-boundary-left\">\n          <span class=\"sbb-navigation-item-boundary-arrow\">\n            <sbb-icon svgIcon=\"chevron-small-left-circle-small\" class=\"sbb-icon-scaled\"></sbb-icon>\n          </span>\n          <span class=\"sbb-navigation-item-boundary-text\">{{ previousPage }}</span>\n        </span>\n      </button>\n    </li>\n  }\n  @if (nextPage) {\n    <li\n      class=\"sbb-navigation-item sbb-navigation-item-right\"\n      [class.sbb-navigation-item-single]=\"!previousPage\"\n    >\n      <button\n        type=\"button\"\n        class=\"sbb-button-reset-frameless sbb-navigation-item-button\"\n        (click)=\"pageChange.emit('next')\"\n      >\n        <span class=\"sbb-navigation-item-boundary sbb-navigation-item-boundary-right\">\n          <span class=\"sbb-navigation-item-boundary-text\">{{ nextPage }}</span>\n          <span class=\"sbb-navigation-item-boundary-arrow\">\n            <sbb-icon svgIcon=\"chevron-small-right-circle-small\" class=\"sbb-icon-scaled\"></sbb-icon>\n          </span>\n        </span>\n      </button>\n    </li>\n  }\n</ul>\n","// Workaround for: https://github.com/bazelbuild/rules_nodejs/issues/1265\n/// <reference types=\"@angular/localize/init\" />\n\nimport {\n  booleanAttribute,\n  ChangeDetectionStrategy,\n  ChangeDetectorRef,\n  Component,\n  EventEmitter,\n  inject,\n  InjectionToken,\n  Input,\n  numberAttribute,\n  OnDestroy,\n  OnInit,\n  Output,\n  ViewEncapsulation,\n} from '@angular/core';\nimport { SbbIcon } from '@sbb-esta/angular/icon';\nimport { Observable, ReplaySubject } from 'rxjs';\n\n/** The default page size if there is no page size and there are no provided page size options. */\nconst DEFAULT_PAGE_SIZE = 50;\n\nconst MAX_PAGE_NUMBERS_DISPLAYED = 3;\nconst range = (length: number, offset = 0) => Array.from({ length }, (_, k) => k + offset);\n\n/**\n * Change event object that is emitted when the user selects a\n * different page size or navigates to another page.\n */\nexport class SbbPageEvent {\n  /**\n   *\n   * @param pageIndex current page index\n   * @param previousPageIndex index of the page that was selected previously\n   * @param pageSize current page size\n   * @param length current total number of items being paged\n   */\n  constructor(\n    public pageIndex: number,\n    public previousPageIndex: number,\n    public pageSize: number,\n    public length: number,\n  ) {}\n}\n\n/** Object that can be used to configure the default options for the paginator module. */\nexport interface SbbPaginatorDefaultOptions {\n  /** Number of items to display on a page. By default set to 50. */\n  pageSize?: number;\n}\n\n/** Injection token that can be used to provide the default options for the paginator module. */\nexport const SBB_PAGINATOR_DEFAULT_OPTIONS = new InjectionToken<SbbPaginatorDefaultOptions>(\n  'SBB_PAGINATOR_DEFAULT_OPTIONS',\n);\n\n/**\n * Component to provide navigation between paged information. Displays the size of the current\n * page, user-selectable options to change that size, what items are being shown, and\n * navigational button to go to the previous or next page.\n */\n@Component({\n  selector: 'sbb-paginator',\n  exportAs: 'sbbPaginator',\n  templateUrl: './paginator.html',\n  styleUrls: ['./paginator.css'],\n  inputs: ['disabled'],\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  encapsulation: ViewEncapsulation.None,\n  host: {\n    role: 'group',\n    class: 'sbb-paginator sbb-icon-fit',\n  },\n  imports: [SbbIcon],\n})\nexport class SbbPaginator implements OnInit, OnDestroy {\n  _labelPreviousPage: string = $localize`:Button label to navigate to the previous page@@sbbPaginationPreviousPage:Previous Page`;\n\n  _labelNextPage: string = $localize`:Button label to navigate to the next page@@sbbPaginationNextPage:Next Page`;\n\n  private _changeDetectorRef = inject(ChangeDetectorRef);\n  private _previousPageSize!: number;\n  private _isInitialized = false;\n  private _initializedStream = new ReplaySubject<void>(1);\n\n  /** The zero-based page index of the displayed list of items. Defaulted to 0. */\n  @Input({ transform: numberAttribute })\n  get pageIndex(): number {\n    return this._pageIndex;\n  }\n  set pageIndex(value: number) {\n    const previousPageIndex = this._pageIndex;\n    this._pageIndex = this._coercePageIndexInRange(value);\n    this._emitPageEvent(previousPageIndex);\n    this._changeDetectorRef.markForCheck();\n  }\n  private _pageIndex = 0;\n\n  /** The length of the total number of items that are being paginated. Defaulted to 0. */\n  @Input({ transform: numberAttribute })\n  get length(): number {\n    return this._length;\n  }\n  set length(value: number) {\n    this._length = Math.max(value, 0);\n    this.pageIndex = this.pageIndex; // ensure index recalculating\n  }\n  private _length = 0;\n\n  /** Number of items to display on a page. By default set to 50. */\n  @Input({ transform: numberAttribute })\n  get pageSize(): number {\n    return this._pageSize;\n  }\n  set pageSize(value: number) {\n    this._changePageSize(value);\n  }\n  private _pageSize: number = DEFAULT_PAGE_SIZE;\n\n  /** Whether the paginator is disabled. */\n  @Input({ transform: booleanAttribute })\n  disabled: boolean = false;\n\n  /** Event emitted when the paginator changes the page size or page index. */\n  @Output() readonly page: EventEmitter<SbbPageEvent> = new EventEmitter<SbbPageEvent>();\n\n  /** Emits when the paginator is initialized. */\n  initialized: Observable<void> = this._initializedStream;\n\n  constructor(...args: unknown[]);\n  constructor() {\n    const defaults = inject<SbbPaginatorDefaultOptions>(SBB_PAGINATOR_DEFAULT_OPTIONS, {\n      optional: true,\n    });\n\n    if (defaults) {\n      const { pageSize } = defaults;\n\n      if (pageSize != null) {\n        this._pageSize = pageSize;\n      }\n    }\n  }\n\n  ngOnInit() {\n    this._previousPageSize = this._pageSize;\n    this._isInitialized = true;\n    this._initializedStream.next();\n  }\n\n  ngOnDestroy() {\n    this._initializedStream.complete();\n  }\n\n  /** @docs-private */\n  _pageRange(): Array<number | null> {\n    const m = this.numberOfPages();\n    const c = this.pageIndex;\n    if (m <= MAX_PAGE_NUMBERS_DISPLAYED + 2) {\n      return range(m);\n    } else if (c < MAX_PAGE_NUMBERS_DISPLAYED) {\n      return [...range(MAX_PAGE_NUMBERS_DISPLAYED + 1), null, m - 1];\n    } else if (c >= m - MAX_PAGE_NUMBERS_DISPLAYED) {\n      return [\n        0,\n        null,\n        ...range(MAX_PAGE_NUMBERS_DISPLAYED + 1, m - 1 - MAX_PAGE_NUMBERS_DISPLAYED),\n      ];\n    } else {\n      return [0, null, c - 1, c, c + 1, null, m - 1];\n    }\n  }\n\n  /** Advances to the next page if it exists. */\n  nextPage(): void {\n    this.pageIndex = this.pageIndex + 1;\n  }\n\n  /** Move back to the previous page if it exists. */\n  previousPage(): void {\n    this.pageIndex = this.pageIndex - 1;\n  }\n\n  /** Move to the first page if not already there. */\n  firstPage(): void {\n    this.pageIndex = 0;\n  }\n\n  /** Move to the last page if not already there. */\n  lastPage(): void {\n    this.pageIndex = this.numberOfPages() - 1;\n  }\n\n  /** Move to a specific page index. */\n  selectPage(index: number): void {\n    this.pageIndex = index;\n  }\n\n  /** Whether there is a previous page. */\n  hasPreviousPage(): boolean {\n    return this.pageIndex >= 1 && this.pageSize !== 0;\n  }\n\n  /** Whether there is a next page. */\n  hasNextPage(): boolean {\n    const maxPageIndex = this.numberOfPages() - 1;\n    return this.pageIndex < maxPageIndex && this.pageSize !== 0;\n  }\n\n  /** Calculate the number of pages */\n  numberOfPages(): number {\n    if (!this.pageSize) {\n      return 0;\n    }\n\n    return Math.ceil(this.length / this.pageSize);\n  }\n\n  /**\n   * Changes the page size so that the first item displayed on the page will still be\n   * displayed using the new page size.\n   *\n   * For example, if the page size is 10 and on the second page (items indexed 10-19) then\n   * switching so that the page size is 5 will set the third page as the current page so\n   * that the 10th item will still be displayed.\n   */\n  private _changePageSize(pageSize: number) {\n    // Current page needs to be updated to reflect the new page size. Navigate to the page\n    // containing the previous page's first item.\n    const startIndex = this.pageIndex * this.pageSize;\n\n    this._pageSize = Math.max(pageSize, 0);\n    this.pageIndex = Math.floor(startIndex / this._pageSize) || 0;\n    this._previousPageSize = this._pageSize;\n  }\n\n  /** Emits an event notifying that a change of the paginator's properties has been triggered. */\n  private _emitPageEvent(previousPageIndex: number) {\n    if (\n      !this._isInitialized ||\n      (this.pageIndex === previousPageIndex && this._previousPageSize === this.pageSize)\n    ) {\n      return;\n    }\n    this.page.emit(new SbbPageEvent(this.pageIndex, previousPageIndex, this.pageSize, this.length));\n  }\n\n  /**\n   * @docs-private\n   * Checks whether the buttons for going forwards should be disabled.\n   */\n  _nextButtonDisabled() {\n    return this.disabled || !this.hasNextPage();\n  }\n\n  /**\n   * @docs-private\n   * Checks whether the buttons for going backwards should be disabled.\n   */\n  _previousButtonDisabled() {\n    return this.disabled || !this.hasPreviousPage();\n  }\n\n  /** Ensures that pageIndex is in range of pages. */\n  private _coercePageIndexInRange(value: number): number {\n    return Math.max(Math.min(Math.max(value, 0), this.numberOfPages() - 1), 0);\n  }\n}\n","<ul class=\"sbb-paginator-list sbb-clean-list sbb-icon-fit\">\n  <li class=\"sbb-paginator-item\">\n    <button\n      type=\"button\"\n      [attr.aria-label]=\"_labelPreviousPage\"\n      class=\"sbb-button-reset-frameless sbb-paginator-item-boundary sbb-paginator-item-button\"\n      [disabled]=\"_previousButtonDisabled()\"\n      [class.sbb-paginator-item-disabled]=\"_previousButtonDisabled()\"\n      (click)=\"previousPage()\"\n    >\n      <sbb-icon svgIcon=\"chevron-small-left-small\" class=\"sbb-icon-scaled\"></sbb-icon>\n    </button>\n  </li>\n\n  @for (page of _pageRange(); track page) {\n    <li class=\"sbb-paginator-item\">\n      @if (page === null) {\n        <span\n          class=\"sbb-paginator-item-ellipsis\"\n          [class.sbb-paginator-item-ellipsis-disabled]=\"disabled\"\n          >...</span\n        >\n      }\n      @if (page !== null) {\n        <button\n          type=\"button\"\n          class=\"sbb-button-reset-frameless sbb-paginator-item-button\"\n          [attr.tabindex]=\"page === pageIndex ? '-1' : null\"\n          [class.sbb-paginator-item-selected]=\"page === pageIndex\"\n          [attr.aria-current]=\"page === pageIndex\"\n          [disabled]=\"disabled\"\n          [class.sbb-paginator-item-disabled]=\"disabled\"\n          (click)=\"selectPage(page)\"\n        >\n          <ng-container>{{ page + 1 }}</ng-container>\n        </button>\n      }\n    </li>\n  }\n  <li class=\"sbb-paginator-item\">\n    <button\n      type=\"button\"\n      [attr.aria-label]=\"_labelNextPage\"\n      class=\"sbb-button-reset-frameless sbb-paginator-item-boundary sbb-paginator-item-button\"\n      [disabled]=\"_nextButtonDisabled()\"\n      [class.sbb-paginator-item-disabled]=\"_nextButtonDisabled()\"\n      (click)=\"nextPage()\"\n    >\n      <sbb-icon svgIcon=\"chevron-small-right-small\" class=\"sbb-icon-scaled\"></sbb-icon>\n    </button>\n  </li>\n</ul>\n","import { NgModule } from '@angular/core';\nimport { RouterModule } from '@angular/router';\nimport { SbbCommonModule } from '@sbb-esta/angular/core';\nimport { SbbIconModule } from '@sbb-esta/angular/icon';\n\nimport { SbbNavigation } from './navigation/navigation';\nimport { SbbPaginator } from './paginator/paginator';\n\n@NgModule({\n  imports: [RouterModule, SbbCommonModule, SbbIconModule, SbbNavigation, SbbPaginator],\n  exports: [SbbNavigation, SbbPaginator],\n})\nexport class SbbPaginationModule {}\n"],"names":[],"mappings":";;;;;;;MAyBa,aAAa,CAAA;AAGxB,EAAA,QAAQ,GAAkB,IAAI;AAI9B,EAAA,YAAY,GAAkB,IAAI;AAIlC,EAAA,UAAU,GACR,IAAI,YAAY,EAAgC;EAElD,WAAW,CAAC,OAAsB,EAAA;IAChC,IAAI,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE;MACxC,MAAM,KAAK,CAAC,qEAAqE,CAAC;AACpF,IAAA;AACF,EAAA;;;;;UAlBW,aAAa;AAAA,IAAA,IAAA,EAAA,EAAA;AAAA,IAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA;AAAA,GAAA,CAAA;;;;UAAb,aAAa;AAAA,IAAA,YAAA,EAAA,IAAA;AAAA,IAAA,QAAA,EAAA,gBAAA;AAAA,IAAA,MAAA,EAAA;AAAA,MAAA,QAAA,EAAA,UAAA;AAAA,MAAA,YAAA,EAAA;KAAA;AAAA,IAAA,OAAA,EAAA;AAAA,MAAA,UAAA,EAAA;KAAA;AAAA,IAAA,IAAA,EAAA;AAAA,MAAA,UAAA,EAAA;AAAA,QAAA,MAAA,EAAA;AAAA;KAAA;AAAA,IAAA,aAAA,EAAA,IAAA;AAAA,IAAA,QAAA,EAAA,EAAA;AAAA,IAAA,QAAA,ECzB1B,8/CAwCA;IAAA,MAAA,EAAA,CAAA,o9GAAA,CAAA;AAAA,IAAA,YAAA,EAAA,CAAA;AAAA,MAAA,IAAA,EAAA,WAAA;AAAA,MAAA,IAAA,EDjBY,OAAO;AAAA,MAAA,QAAA,EAAA,UAAA;AAAA,MAAA,MAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,SAAA,EAAA,SAAA,EAAA,UAAA,EAAA,IAAA,CAAA;MAAA,QAAA,EAAA,CAAA,SAAA;AAAA,KAAA,CAAA;AAAA,IAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA;AAAA,IAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA;AAAA,GAAA,CAAA;;;;;;QAEN,aAAa;AAAA,EAAA,UAAA,EAAA,CAAA;UAXzB,SAAS;;gBACE,gBAAgB;MAAA,aAAA,EAGX,iBAAiB,CAAC,IAAI;uBACpB,uBAAuB,CAAC,MAAM;AAAA,MAAA,IAAA,EACzC;AACJ,QAAA,IAAI,EAAE;OACP;MAAA,OAAA,EACQ,CAAC,OAAO,CAAC;AAAA,MAAA,QAAA,EAAA,8/CAAA;MAAA,MAAA,EAAA,CAAA,o9GAAA;KAAA;;;;YAIjB;;;YAIA;;;YAIA;;;;;AEbH,MAAM,iBAAiB,GAAG,EAAE;AAE5B,MAAM,0BAA0B,GAAG,CAAC;AACpC,MAAM,KAAK,GAAG,CAAC,MAAc,EAAE,MAAM,GAAG,CAAC,KAAK,KAAK,CAAC,IAAI,CAAC;AAAE,EAAA;AAAM,CAAE,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,MAAM,CAAC;MAM7E,YAAY,CAAA;EASd,SAAA;EACA,iBAAA;EACA,QAAA;EACA,MAAA;EAJT,WAAA,CACS,SAAiB,EACjB,iBAAyB,EACzB,QAAgB,EAChB,MAAc,EAAA;IAHd,IAAA,CAAA,SAAS,GAAT,SAAS;IACT,IAAA,CAAA,iBAAiB,GAAjB,iBAAiB;IACjB,IAAA,CAAA,QAAQ,GAAR,QAAQ;IACR,IAAA,CAAA,MAAM,GAAN,MAAM;AACZ,EAAA;AACJ;MASY,6BAA6B,GAAG,IAAI,cAAc,CAC7D,+BAA+B;MAsBpB,YAAY,CAAA;EACvB,kBAAkB,GAAW,SAAS,CAAA,uFAAA,CAAyF;EAE/H,cAAc,GAAW,SAAS,CAAA,2EAAA,CAA6E;AAEvG,EAAA,kBAAkB,GAAG,MAAM,CAAC,iBAAiB,CAAC;EAC9C,iBAAiB;AACjB,EAAA,cAAc,GAAG,KAAK;AACtB,EAAA,kBAAkB,GAAG,IAAI,aAAa,CAAO,CAAC,CAAC;AAGvD,EAAA,IACI,SAAS,GAAA;IACX,OAAO,IAAI,CAAC,UAAU;AACxB,EAAA;EACA,IAAI,SAAS,CAAC,KAAa,EAAA;AACzB,IAAA,MAAM,iBAAiB,GAAG,IAAI,CAAC,UAAU;IACzC,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,uBAAuB,CAAC,KAAK,CAAC;AACrD,IAAA,IAAI,CAAC,cAAc,CAAC,iBAAiB,CAAC;AACtC,IAAA,IAAI,CAAC,kBAAkB,CAAC,YAAY,EAAE;AACxC,EAAA;AACQ,EAAA,UAAU,GAAG,CAAC;AAGtB,EAAA,IACI,MAAM,GAAA;IACR,OAAO,IAAI,CAAC,OAAO;AACrB,EAAA;EACA,IAAI,MAAM,CAAC,KAAa,EAAA;IACtB,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC,CAAC;AACjC,IAAA,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS;AACjC,EAAA;AACQ,EAAA,OAAO,GAAG,CAAC;AAGnB,EAAA,IACI,QAAQ,GAAA;IACV,OAAO,IAAI,CAAC,SAAS;AACvB,EAAA;EACA,IAAI,QAAQ,CAAC,KAAa,EAAA;AACxB,IAAA,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC;AAC7B,EAAA;AACQ,EAAA,SAAS,GAAW,iBAAiB;AAI7C,EAAA,QAAQ,GAAY,KAAK;AAGN,EAAA,IAAI,GAA+B,IAAI,YAAY,EAAgB;EAGtF,WAAW,GAAqB,IAAI,CAAC,kBAAkB;AAGvD,EAAA,WAAA,GAAA;AACE,IAAA,MAAM,QAAQ,GAAG,MAAM,CAA6B,6BAA6B,EAAE;AACjF,MAAA,QAAQ,EAAE;AACX,KAAA,CAAC;AAEF,IAAA,IAAI,QAAQ,EAAE;MACZ,MAAM;AAAE,QAAA;AAAQ,OAAE,GAAG,QAAQ;MAE7B,IAAI,QAAQ,IAAI,IAAI,EAAE;QACpB,IAAI,CAAC,SAAS,GAAG,QAAQ;AAC3B,MAAA;AACF,IAAA;AACF,EAAA;AAEA,EAAA,QAAQ,GAAA;AACN,IAAA,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,SAAS;IACvC,IAAI,CAAC,cAAc,GAAG,IAAI;AAC1B,IAAA,IAAI,CAAC,kBAAkB,CAAC,IAAI,EAAE;AAChC,EAAA;AAEA,EAAA,WAAW,GAAA;AACT,IAAA,IAAI,CAAC,kBAAkB,CAAC,QAAQ,EAAE;AACpC,EAAA;AAGA,EAAA,UAAU,GAAA;AACR,IAAA,MAAM,CAAC,GAAG,IAAI,CAAC,aAAa,EAAE;AAC9B,IAAA,MAAM,CAAC,GAAG,IAAI,CAAC,SAAS;AACxB,IAAA,IAAI,CAAC,IAAI,0BAA0B,GAAG,CAAC,EAAE;MACvC,OAAO,KAAK,CAAC,CAAC,CAAC;AACjB,IAAA,CAAC,MAAM,IAAI,CAAC,GAAG,0BAA0B,EAAE;AACzC,MAAA,OAAO,CAAC,GAAG,KAAK,CAAC,0BAA0B,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC;AAChE,IAAA,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,GAAG,0BAA0B,EAAE;AAC9C,MAAA,OAAO,CACL,CAAC,EACD,IAAI,EACJ,GAAG,KAAK,CAAC,0BAA0B,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,0BAA0B,CAAC,CAC7E;AACH,IAAA,CAAC,MAAM;MACL,OAAO,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC;AAChD,IAAA;AACF,EAAA;AAGA,EAAA,QAAQ,GAAA;AACN,IAAA,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,GAAG,CAAC;AACrC,EAAA;AAGA,EAAA,YAAY,GAAA;AACV,IAAA,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,GAAG,CAAC;AACrC,EAAA;AAGA,EAAA,SAAS,GAAA;IACP,IAAI,CAAC,SAAS,GAAG,CAAC;AACpB,EAAA;AAGA,EAAA,QAAQ,GAAA;IACN,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,aAAa,EAAE,GAAG,CAAC;AAC3C,EAAA;EAGA,UAAU,CAAC,KAAa,EAAA;IACtB,IAAI,CAAC,SAAS,GAAG,KAAK;AACxB,EAAA;AAGA,EAAA,eAAe,GAAA;IACb,OAAO,IAAI,CAAC,SAAS,IAAI,CAAC,IAAI,IAAI,CAAC,QAAQ,KAAK,CAAC;AACnD,EAAA;AAGA,EAAA,WAAW,GAAA;IACT,MAAM,YAAY,GAAG,IAAI,CAAC,aAAa,EAAE,GAAG,CAAC;IAC7C,OAAO,IAAI,CAAC,SAAS,GAAG,YAAY,IAAI,IAAI,CAAC,QAAQ,KAAK,CAAC;AAC7D,EAAA;AAGA,EAAA,aAAa,GAAA;AACX,IAAA,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;AAClB,MAAA,OAAO,CAAC;AACV,IAAA;IAEA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC;AAC/C,EAAA;EAUQ,eAAe,CAAC,QAAgB,EAAA;IAGtC,MAAM,UAAU,GAAG,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,QAAQ;IAEjD,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAC;AACtC,IAAA,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;AAC7D,IAAA,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,SAAS;AACzC,EAAA;EAGQ,cAAc,CAAC,iBAAyB,EAAA;AAC9C,IAAA,IACE,CAAC,IAAI,CAAC,cAAc,IACnB,IAAI,CAAC,SAAS,KAAK,iBAAiB,IAAI,IAAI,CAAC,iBAAiB,KAAK,IAAI,CAAC,QAAS,EAClF;AACA,MAAA;AACF,IAAA;IACA,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,YAAY,CAAC,IAAI,CAAC,SAAS,EAAE,iBAAiB,EAAE,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;AACjG,EAAA;AAMA,EAAA,mBAAmB,GAAA;IACjB,OAAO,IAAI,CAAC,QAAQ,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE;AAC7C,EAAA;AAMA,EAAA,uBAAuB,GAAA;IACrB,OAAO,IAAI,CAAC,QAAQ,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE;AACjD,EAAA;EAGQ,uBAAuB,CAAC,KAAa,EAAA;IAC3C,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC,CAAC,EAAE,IAAI,CAAC,aAAa,EAAE,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC;AAC5E,EAAA;;;;;UA/LW,YAAY;AAAA,IAAA,IAAA,EAAA,EAAA;AAAA,IAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA;AAAA,GAAA,CAAA;;;;UAAZ,YAAY;AAAA,IAAA,YAAA,EAAA,IAAA;AAAA,IAAA,QAAA,EAAA,eAAA;AAAA,IAAA,MAAA,EAAA;AAAA,MAAA,QAAA,EAAA,CAAA,UAAA,EAAA,UAAA,EA6CH,gBAAgB,CAAA;AAAA,MAAA,SAAA,EAAA,CAAA,WAAA,EAAA,WAAA,EAlChB,eAAe,CAAA;AAAA,MAAA,MAAA,EAAA,CAAA,QAAA,EAAA,QAAA,EAaf,eAAe,CAAA;AAAA,MAAA,QAAA,EAAA,CAAA,UAAA,EAAA,UAAA,EAWf,eAAe;KAAA;AAAA,IAAA,OAAA,EAAA;AAAA,MAAA,IAAA,EAAA;KAAA;AAAA,IAAA,IAAA,EAAA;AAAA,MAAA,UAAA,EAAA;AAAA,QAAA,MAAA,EAAA;OAAA;AAAA,MAAA,cAAA,EAAA;KAAA;IAAA,QAAA,EAAA,CAAA,cAAA,CAAA;AAAA,IAAA,QAAA,EAAA,EAAA;AAAA,IAAA,QAAA,EChHrC,i4DAoDA;IAAA,MAAA,EAAA,CAAA,u0GAAA,CAAA;AAAA,IAAA,YAAA,EAAA,CAAA;AAAA,MAAA,IAAA,EAAA,WAAA;AAAA,MAAA,IAAA,EDuBY,OAAO;AAAA,MAAA,QAAA,EAAA,UAAA;AAAA,MAAA,MAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,SAAA,EAAA,SAAA,EAAA,UAAA,EAAA,IAAA,CAAA;MAAA,QAAA,EAAA,CAAA,SAAA;AAAA,KAAA,CAAA;AAAA,IAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA;AAAA,IAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA;AAAA,GAAA,CAAA;;;;;;QAEN,YAAY;AAAA,EAAA,UAAA,EAAA,CAAA;UAdxB,SAAS;AACE,IAAA,IAAA,EAAA,CAAA;AAAA,MAAA,QAAA,EAAA,eAAe;AAAA,MAAA,QAAA,EACf,cAAc;MAAA,MAAA,EAGhB,CAAC,UAAU,CAAC;MAAA,eAAA,EACH,uBAAuB,CAAC,MAAM;MAAA,aAAA,EAChC,iBAAiB,CAAC,IAAI;AAAA,MAAA,IAAA,EAC/B;AACJ,QAAA,IAAI,EAAE,OAAO;AACb,QAAA,KAAK,EAAE;OACR;MAAA,OAAA,EACQ,CAAC,OAAO,CAAC;AAAA,MAAA,QAAA,EAAA,i4DAAA;MAAA,MAAA,EAAA,CAAA,u0GAAA;KAAA;;;;;YAajB,KAAK;aAAC;AAAE,QAAA,SAAS,EAAE;OAAiB;;;YAapC,KAAK;aAAC;AAAE,QAAA,SAAS,EAAE;OAAiB;;;YAWpC,KAAK;aAAC;AAAE,QAAA,SAAS,EAAE;OAAiB;;;YAUpC,KAAK;aAAC;AAAE,QAAA,SAAS,EAAE;OAAkB;;;YAIrC;;;;;MElHU,mBAAmB,CAAA;;;;;UAAnB,mBAAmB;AAAA,IAAA,IAAA,EAAA,EAAA;AAAA,IAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA;AAAA,GAAA,CAAA;AAAnB,EAAA,OAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA;AAAA,IAAA,UAAA,EAAA,QAAA;AAAA,IAAA,OAAA,EAAA,QAAA;AAAA,IAAA,QAAA,EAAA,EAAA;AAAA,IAAA,IAAA,EAAA,mBAAmB;IAAA,OAAA,EAAA,CAHpB,YAAY,EAAE,eAAe,EAAE,aAAa,EAAE,aAAa,EAAE,YAAY,CAAA;AAAA,IAAA,OAAA,EAAA,CACzE,aAAa,EAAE,YAAY;AAAA,GAAA,CAAA;;;;;UAE1B,mBAAmB;IAAA,OAAA,EAAA,CAHpB,YAAY,EAAE,eAAe,EAAE,aAAa,EAAE,aAAa,EAAE,YAAY;AAAA,GAAA,CAAA;;;;;;QAGxE,mBAAmB;AAAA,EAAA,UAAA,EAAA,CAAA;UAJ/B,QAAQ;AAAC,IAAA,IAAA,EAAA,CAAA;MACR,OAAO,EAAE,CAAC,YAAY,EAAE,eAAe,EAAE,aAAa,EAAE,aAAa,EAAE,YAAY,CAAC;AACpF,MAAA,OAAO,EAAE,CAAC,aAAa,EAAE,YAAY;KACtC;;;;;;"}