novo-elements 11.2.0 → 11.2.1-next.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/fesm2022/novo-elements-addons-ace-editor.mjs.map +1 -1
- package/fesm2022/novo-elements-addons-ckeditor.mjs.map +1 -1
- package/fesm2022/novo-elements-addons-code-editor.mjs +3 -3
- package/fesm2022/novo-elements-addons-code-editor.mjs.map +1 -1
- package/fesm2022/novo-elements-elements-agenda.mjs +15 -15
- package/fesm2022/novo-elements-elements-agenda.mjs.map +1 -1
- package/fesm2022/novo-elements-elements-aside.mjs.map +1 -1
- package/fesm2022/novo-elements-elements-autocomplete.mjs +7 -5
- package/fesm2022/novo-elements-elements-autocomplete.mjs.map +1 -1
- package/fesm2022/novo-elements-elements-avatar.mjs +2 -1
- package/fesm2022/novo-elements-elements-avatar.mjs.map +1 -1
- package/fesm2022/novo-elements-elements-breadcrumbs.mjs.map +1 -1
- package/fesm2022/novo-elements-elements-button.mjs.map +1 -1
- package/fesm2022/novo-elements-elements-calendar.mjs +7 -4
- package/fesm2022/novo-elements-elements-calendar.mjs.map +1 -1
- package/fesm2022/novo-elements-elements-card.mjs +1 -1
- package/fesm2022/novo-elements-elements-card.mjs.map +1 -1
- package/fesm2022/novo-elements-elements-category-dropdown.mjs.map +1 -1
- package/fesm2022/novo-elements-elements-checkbox.mjs.map +1 -1
- package/fesm2022/novo-elements-elements-chips.mjs +18 -14
- package/fesm2022/novo-elements-elements-chips.mjs.map +1 -1
- package/fesm2022/novo-elements-elements-color-picker.mjs +1 -1
- package/fesm2022/novo-elements-elements-color-picker.mjs.map +1 -1
- package/fesm2022/novo-elements-elements-common.mjs +28 -28
- package/fesm2022/novo-elements-elements-common.mjs.map +1 -1
- package/fesm2022/novo-elements-elements-data-table.mjs +28 -28
- package/fesm2022/novo-elements-elements-data-table.mjs.map +1 -1
- package/fesm2022/novo-elements-elements-date-picker.mjs +4 -4
- package/fesm2022/novo-elements-elements-date-picker.mjs.map +1 -1
- package/fesm2022/novo-elements-elements-date-time-picker.mjs.map +1 -1
- package/fesm2022/novo-elements-elements-divider.mjs.map +1 -1
- package/fesm2022/novo-elements-elements-drag-drop.mjs +7 -7
- package/fesm2022/novo-elements-elements-drag-drop.mjs.map +1 -1
- package/fesm2022/novo-elements-elements-dropdown.mjs +9 -9
- package/fesm2022/novo-elements-elements-dropdown.mjs.map +1 -1
- package/fesm2022/novo-elements-elements-expansion.mjs +5 -5
- package/fesm2022/novo-elements-elements-expansion.mjs.map +1 -1
- package/fesm2022/novo-elements-elements-field.mjs +20 -14
- package/fesm2022/novo-elements-elements-field.mjs.map +1 -1
- package/fesm2022/novo-elements-elements-flex.mjs +12 -12
- package/fesm2022/novo-elements-elements-flex.mjs.map +1 -1
- package/fesm2022/novo-elements-elements-form.mjs +16 -15
- package/fesm2022/novo-elements-elements-form.mjs.map +1 -1
- package/fesm2022/novo-elements-elements-header.mjs +6 -6
- package/fesm2022/novo-elements-elements-header.mjs.map +1 -1
- package/fesm2022/novo-elements-elements-icon.mjs.map +1 -1
- package/fesm2022/novo-elements-elements-layout.mjs +2 -2
- package/fesm2022/novo-elements-elements-layout.mjs.map +1 -1
- package/fesm2022/novo-elements-elements-list.mjs +12 -12
- package/fesm2022/novo-elements-elements-list.mjs.map +1 -1
- package/fesm2022/novo-elements-elements-loading.mjs +5 -5
- package/fesm2022/novo-elements-elements-loading.mjs.map +1 -1
- package/fesm2022/novo-elements-elements-menu.mjs +4 -4
- package/fesm2022/novo-elements-elements-menu.mjs.map +1 -1
- package/fesm2022/novo-elements-elements-modal.mjs.map +1 -1
- package/fesm2022/novo-elements-elements-multi-picker.mjs.map +1 -1
- package/fesm2022/novo-elements-elements-non-ideal-state.mjs.map +1 -1
- package/fesm2022/novo-elements-elements-picker.mjs +5 -5
- package/fesm2022/novo-elements-elements-picker.mjs.map +1 -1
- package/fesm2022/novo-elements-elements-places.mjs.map +1 -1
- package/fesm2022/novo-elements-elements-popover.mjs +3 -3
- package/fesm2022/novo-elements-elements-popover.mjs.map +1 -1
- package/fesm2022/novo-elements-elements-progress.mjs +3 -3
- package/fesm2022/novo-elements-elements-progress.mjs.map +1 -1
- package/fesm2022/novo-elements-elements-query-builder.mjs +27 -25
- package/fesm2022/novo-elements-elements-query-builder.mjs.map +1 -1
- package/fesm2022/novo-elements-elements-quick-note.mjs +2 -2
- package/fesm2022/novo-elements-elements-quick-note.mjs.map +1 -1
- package/fesm2022/novo-elements-elements-radio.mjs.map +1 -1
- package/fesm2022/novo-elements-elements-search.mjs.map +1 -1
- package/fesm2022/novo-elements-elements-select-search.mjs +2 -2
- package/fesm2022/novo-elements-elements-select-search.mjs.map +1 -1
- package/fesm2022/novo-elements-elements-select.mjs +5 -5
- package/fesm2022/novo-elements-elements-select.mjs.map +1 -1
- package/fesm2022/novo-elements-elements-simple-table.mjs +30 -30
- package/fesm2022/novo-elements-elements-simple-table.mjs.map +1 -1
- package/fesm2022/novo-elements-elements-slider.mjs.map +1 -1
- package/fesm2022/novo-elements-elements-stepper.mjs +4 -4
- package/fesm2022/novo-elements-elements-stepper.mjs.map +1 -1
- package/fesm2022/novo-elements-elements-switch.mjs.map +1 -1
- package/fesm2022/novo-elements-elements-tabbed-group-picker.mjs.map +1 -1
- package/fesm2022/novo-elements-elements-tabs.mjs +2 -1
- package/fesm2022/novo-elements-elements-tabs.mjs.map +1 -1
- package/fesm2022/novo-elements-elements-tiles.mjs.map +1 -1
- package/fesm2022/novo-elements-elements-time-picker.mjs +1 -0
- package/fesm2022/novo-elements-elements-time-picker.mjs.map +1 -1
- package/fesm2022/novo-elements-elements-tip-well.mjs.map +1 -1
- package/fesm2022/novo-elements-elements-toast.mjs.map +1 -1
- package/fesm2022/novo-elements-elements-toolbar.mjs +1 -1
- package/fesm2022/novo-elements-elements-toolbar.mjs.map +1 -1
- package/fesm2022/novo-elements-elements-tooltip.mjs +3 -4
- package/fesm2022/novo-elements-elements-tooltip.mjs.map +1 -1
- package/fesm2022/novo-elements-elements-unless.mjs +1 -1
- package/fesm2022/novo-elements-elements-unless.mjs.map +1 -1
- package/fesm2022/novo-elements-elements-value.mjs +2 -2
- package/fesm2022/novo-elements-elements-value.mjs.map +1 -1
- package/fesm2022/novo-elements-pipes.mjs +9 -9
- package/fesm2022/novo-elements-pipes.mjs.map +1 -1
- package/fesm2022/novo-elements-services.mjs +21 -22
- package/fesm2022/novo-elements-services.mjs.map +1 -1
- package/fesm2022/novo-elements-utils.mjs +33 -17
- package/fesm2022/novo-elements-utils.mjs.map +1 -1
- package/package.json +1 -1
- package/services/date-format/DateFormat.d.ts +2 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"novo-elements-elements-simple-table.mjs","sources":["../../../projects/novo-elements/src/elements/simple-table/activity-table-renderers.ts","../../../projects/novo-elements/src/elements/simple-table/state.ts","../../../projects/novo-elements/src/elements/simple-table/sort.ts","../../../projects/novo-elements/src/elements/simple-table/cell.ts","../../../projects/novo-elements/src/elements/simple-table/cell-header.ts","../../../projects/novo-elements/src/elements/simple-table/pagination.ts","../../../projects/novo-elements/src/elements/simple-table/PaginationOld.ts","../../../projects/novo-elements/src/elements/simple-table/row.ts","../../../projects/novo-elements/src/elements/simple-table/table-source.ts","../../../projects/novo-elements/src/elements/simple-table/table.ts","../../../projects/novo-elements/src/elements/simple-table/simple-table.module.ts","../../../projects/novo-elements/src/elements/simple-table/novo-elements-elements-simple-table.ts"],"sourcesContent":["export class ActivityTableRenderers {\n static propertyRenderer<T>(prop: string): Function {\n const ret = (data: T): string => {\n // TODO - allow for dots and sub props\n return data[prop];\n };\n return ret;\n }\n\n static dateRenderer<T>(prop: string): Function {\n const ret = (data: T): string => {\n return data[prop] ? new Date(data[prop]).toLocaleDateString() : '';\n };\n return ret;\n }\n}\n","import { EventEmitter, Injectable } from '@angular/core';\nimport { NovoSimpleTableChange } from './interfaces';\n\n@Injectable()\nexport class NovoActivityTableState {\n id: number = Math.random();\n sort: { id: string; value: string } = undefined;\n filter: { id: string; value: string } = undefined;\n page: number = 0;\n pageSize: number = undefined;\n globalSearch: string = undefined;\n selectedRows: Map<string, object> = new Map<string, object>();\n outsideFilter: any;\n\n updates: EventEmitter<NovoSimpleTableChange> = new EventEmitter<NovoSimpleTableChange>();\n onReset: EventEmitter<boolean> = new EventEmitter<boolean>();\n\n get userFiltered(): boolean {\n return !!(this.filter || this.sort || this.globalSearch || this.outsideFilter);\n }\n\n public reset(fireUpdate: boolean = true, persistUserFilters?: boolean): void {\n if (!persistUserFilters) {\n this.sort = undefined;\n this.globalSearch = undefined;\n this.filter = undefined;\n }\n this.page = 0;\n this.selectedRows.clear();\n this.onReset.emit(true);\n if (fireUpdate) {\n this.updates.emit({\n sort: this.sort,\n filter: this.filter,\n globalSearch: this.globalSearch,\n });\n }\n }\n}\n","import { Directive, EventEmitter, OnDestroy, Output } from '@angular/core';\nimport { Helpers } from 'novo-elements/utils';\nimport { NovoActivityTableState } from './state';\n\n@Directive({\n selector: '[novoSortFilter]',\n standalone: false\n})\nexport class NovoSortFilter {\n constructor(private state: NovoActivityTableState) {}\n\n public filter(id: string, value: any, transform: Function): void {\n let filter;\n if (!Helpers.isBlank(value)) {\n filter = { id, value, transform };\n } else {\n filter = undefined;\n }\n this.state.filter = filter;\n this.state.reset(false, true);\n this.state.updates.next({ filter, sort: this.state.sort });\n }\n\n public sort(id: string, value: string, transform: Function): void {\n const sort = { id, value, transform };\n this.state.sort = sort;\n this.state.reset(false, true);\n this.state.updates.next({ sort, filter: this.state.filter });\n }\n}\n\n@Directive({\n selector: '[novoSelection]',\n standalone: false\n})\nexport class NovoSelection implements OnDestroy {\n @Output()\n public novoSelectAllToggle = new EventEmitter<boolean>();\n\n public allRows = new Map<string, object>();\n private throttleTimeout: any;\n\n constructor(public state: NovoActivityTableState) {}\n\n public register(id, row): void {\n this.allRows.set(id, row);\n }\n\n public deregister(id): void {\n this.allRows.delete(id);\n this.state.selectedRows.delete(id);\n clearTimeout(this.throttleTimeout);\n this.throttleTimeout = setTimeout(() => {\n if (this.state.selectedRows.size === 0) {\n this.novoSelectAllToggle.emit(false);\n }\n });\n }\n\n public ngOnDestroy(): void {\n this.allRows.clear();\n this.state.selectedRows.clear();\n }\n\n public toggle(id: string, selected: boolean, row: any): void {\n if (selected) {\n this.state.selectedRows.set(id, row);\n } else {\n this.state.selectedRows.delete(id);\n }\n }\n\n public selectAll(value: boolean): void {\n if (value) {\n this.state.selectedRows = new Map<string, object>(this.allRows);\n } else {\n this.state.selectedRows.clear();\n }\n this.novoSelectAllToggle.emit(value);\n }\n}\n","import { CdkCell, CdkCellDef, CdkColumnDef, CdkHeaderCell, CdkHeaderCellDef } from '@angular/cdk/table';\nimport {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n Directive,\n ElementRef,\n HostBinding,\n Input,\n OnDestroy,\n OnInit,\n Optional,\n Renderer2,\n} from '@angular/core';\nimport { Subscription } from 'rxjs';\nimport { NovoLabelService } from 'novo-elements/services';\nimport { Helpers } from 'novo-elements/utils';\nimport { SimpleTableActionColumn, SimpleTableActionColumnOption, SimpleTableColumn } from './interfaces';\nimport { NovoSelection } from './sort';\n\n/** Workaround for https://github.com/angular/angular/issues/17849 */\nexport const _NovoCellDef = CdkCellDef;\nexport const _NovoHeaderCellDef = CdkHeaderCellDef;\nexport const _NovoColumnDef = CdkColumnDef;\nexport const _NovoHeaderCell = CdkHeaderCell;\nexport const _NovoCell = CdkCell;\n\n@Directive({\n selector: '[novoSimpleCellDef]',\n providers: [{ provide: CdkCellDef, useExisting: NovoSimpleCellDef }],\n standalone: false\n})\nexport class NovoSimpleCellDef extends _NovoCellDef {\n // TODO: add explicit constructor\n}\n\n@Directive({\n selector: '[novoSimpleHeaderCellDef]',\n providers: [{ provide: CdkHeaderCellDef, useExisting: NovoSimpleHeaderCellDef }],\n standalone: false\n})\nexport class NovoSimpleHeaderCellDef extends _NovoHeaderCellDef {\n // TODO: add explicit constructor\n}\n\n@Directive({\n selector: '[novoSimpleColumnDef]',\n providers: [{ provide: CdkColumnDef, useExisting: NovoSimpleColumnDef }],\n standalone: false\n})\nexport class NovoSimpleColumnDef extends _NovoColumnDef {\n @Input('novoSimpleColumnDef')\n get name(): string {\n return this._name;\n }\n set name(name: string) {\n this._setNameInput(name);\n }\n /**\n * This has been extracted to a util because of TS 4 and VE.\n * View Engine doesn't support property rename inheritance.\n * TS 4.0 doesn't allow properties to override accessors or vice-versa.\n * @docs-private\n */\n protected _setNameInput(value: string) {\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 (value) {\n this._name = value;\n this.cssClassFriendlyName = value.replace(/[^a-z0-9_-]/gi, '-');\n this._updateColumnCssClassName();\n }\n }\n}\n\n@Directive({\n selector: 'novo-simple-header-cell',\n standalone: false\n})\nexport class NovoSimpleHeaderCell<T> extends _NovoHeaderCell implements OnInit {\n @HostBinding('attr.role')\n public role = 'columnheader';\n\n @Input()\n public column: SimpleTableColumn<T>;\n\n constructor(columnDef: CdkColumnDef, private elementRef: ElementRef, private renderer: Renderer2) {\n super(columnDef, elementRef);\n renderer.setAttribute(elementRef.nativeElement, 'data-automation-id', `novo-column-header-${columnDef.cssClassFriendlyName}`);\n renderer.addClass(elementRef.nativeElement, `novo-column-${columnDef.cssClassFriendlyName}`);\n renderer.addClass(elementRef.nativeElement, 'novo-simple-header-cell');\n }\n\n public ngOnInit(): void {\n if (this.column.width) {\n this.renderer.setStyle(this.elementRef.nativeElement, 'min-width', `${this.column.width}px`);\n this.renderer.setStyle(this.elementRef.nativeElement, 'max-width', `${this.column.width}px`);\n this.renderer.setStyle(this.elementRef.nativeElement, 'width', `${this.column.width}px`);\n }\n }\n}\n\n@Directive({\n selector: 'novo-simple-empty-header-cell',\n standalone: false\n})\nexport class NovoSimpleEmptyHeaderCell extends _NovoHeaderCell {\n @HostBinding('attr.role')\n public role = 'columnheader';\n\n constructor(columnDef: CdkColumnDef, elementRef: ElementRef, renderer: Renderer2) {\n super(columnDef, elementRef);\n renderer.setAttribute(elementRef.nativeElement, 'data-automation-id', `novo-column-header-${columnDef.cssClassFriendlyName}`);\n renderer.addClass(elementRef.nativeElement, `novo-column-${columnDef.cssClassFriendlyName}`);\n renderer.addClass(elementRef.nativeElement, 'novo-simple-empty-header-cell');\n }\n}\n\n@Component({\n selector: 'novo-simple-checkbox-header-cell',\n template: `<novo-checkbox [(ngModel)]=\"selectAll\" (ngModelChange)=\"toggle($event)\"></novo-checkbox>`,\n standalone: false\n})\nexport class NovoSimpleCheckboxHeaderCell extends _NovoHeaderCell implements OnDestroy {\n @HostBinding('attr.role')\n public role = 'columnheader';\n\n public selectAll: boolean = false;\n private selectAllSubscription: Subscription;\n\n constructor(\n columnDef: CdkColumnDef,\n elementRef: ElementRef,\n renderer: Renderer2,\n ref: ChangeDetectorRef,\n @Optional() private _selection: NovoSelection,\n ) {\n super(columnDef, elementRef);\n renderer.setAttribute(elementRef.nativeElement, 'data-automation-id', `novo-checkbox-column-header-${columnDef.cssClassFriendlyName}`);\n renderer.addClass(elementRef.nativeElement, `novo-checkbox-column-${columnDef.cssClassFriendlyName}`);\n renderer.addClass(elementRef.nativeElement, 'novo-simple-checkbox-header-cell');\n\n this.selectAllSubscription = _selection.novoSelectAllToggle.subscribe((value: boolean) => {\n this.selectAll = value;\n ref.markForCheck();\n });\n }\n\n public ngOnDestroy(): void {\n this.selectAllSubscription.unsubscribe();\n }\n\n public toggle(value: boolean): void {\n this._selection.selectAll(value);\n }\n}\n\n@Component({\n selector: 'novo-simple-cell',\n template: ` <span [class.clickable]=\"!!column.onClick\" (click)=\"onClick($event)\" #span>{{ column.renderer(row) }}</span> `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: false\n})\nexport class NovoSimpleCell<T> extends _NovoCell implements OnInit {\n @HostBinding('attr.role')\n public role = 'gridcell';\n\n @Input()\n public row: any;\n @Input()\n public column: SimpleTableColumn<T>;\n\n constructor(columnDef: CdkColumnDef, private elementRef: ElementRef, private renderer: Renderer2) {\n super(columnDef, elementRef);\n renderer.setAttribute(elementRef.nativeElement, 'data-automation-id', `novo-column-${columnDef.cssClassFriendlyName}`);\n renderer.addClass(elementRef.nativeElement, `novo-column-${columnDef.cssClassFriendlyName}`);\n renderer.addClass(elementRef.nativeElement, 'novo-simple-cell');\n }\n\n public ngOnInit(): void {\n if (this.column.customClass) {\n this.renderer.addClass(this.elementRef.nativeElement, this.column.customClass(this.row));\n }\n if (this.column.width) {\n this.renderer.setStyle(this.elementRef.nativeElement, 'min-width', `${this.column.width}px`);\n this.renderer.setStyle(this.elementRef.nativeElement, 'max-width', `${this.column.width}px`);\n this.renderer.setStyle(this.elementRef.nativeElement, 'width', `${this.column.width}px`);\n }\n }\n\n public onClick(event: MouseEvent): void {\n Helpers.swallowEvent(event);\n if (this.column.onClick) {\n this.column.onClick(this.row);\n }\n return;\n }\n}\n\n@Component({\n selector: 'novo-simple-checkbox-cell',\n template: ` <novo-checkbox [ngModel]=\"selected\" (ngModelChange)=\"toggle($event)\"></novo-checkbox> `,\n standalone: false\n})\nexport class NovoSimpleCheckboxCell extends _NovoCell implements OnDestroy, OnInit {\n @HostBinding('attr.role')\n public role = 'gridcell';\n\n @Input()\n public row: any;\n @Input()\n public index: any;\n\n public selected: boolean = false;\n private selectAllSubscription: Subscription;\n\n constructor(public columnDef: CdkColumnDef, elementRef: ElementRef, renderer: Renderer2, @Optional() public _selection: NovoSelection) {\n super(columnDef, elementRef);\n renderer.setAttribute(elementRef.nativeElement, 'data-automation-id', `novo-checkbox-column-${columnDef.cssClassFriendlyName}`);\n renderer.addClass(elementRef.nativeElement, `novo-checkbox-column-${columnDef.cssClassFriendlyName}`);\n renderer.addClass(elementRef.nativeElement, 'novo-simple-checkbox-cell');\n\n this.selectAllSubscription = _selection.novoSelectAllToggle.subscribe((value: boolean) => {\n this.selected = value;\n });\n }\n\n public ngOnInit(): void {\n this._selection.register(this.row.id || this.index, this.row);\n this.selected = this._selection.state.selectedRows.has(this.row.id || this.index);\n }\n\n public ngOnDestroy(): void {\n this._selection.deregister(this.row.id || this.index);\n this.selectAllSubscription.unsubscribe();\n }\n\n public toggle(value: boolean): void {\n this._selection.toggle(this.row.id || this.index, value, this.row);\n }\n}\n\n@Component({\n selector: 'novo-simple-action-cell',\n template: `\n <ng-container *ngIf=\"!column.options\">\n <novo-button theme=\"icon\" [icon]=\"column.icon\" (click)=\"column.onClick(row)\" [disabled]=\"isDisabled(column, row)\"></novo-button>\n </ng-container>\n <ng-container *ngIf=\"column.options\">\n <novo-dropdown parentScrollSelector=\".novo-simple-table\" containerClass=\"novo-table-dropdown-cell\">\n <novo-button type=\"button\" theme=\"dialogue\" icon=\"collapse\" inverse>{{ column.label || labels.actions }}</novo-button>\n <list>\n <item *ngFor=\"let option of column.options\" (action)=\"option.onClick(row)\" [disabled]=\"isDisabled(option, row)\">\n <span [attr.data-automation-id]=\"option.label\">{{ option.label }}</span>\n </item>\n </list>\n </novo-dropdown>\n </ng-container>\n `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: false\n})\nexport class NovoSimpleActionCell<T> extends _NovoCell implements OnInit {\n @HostBinding('attr.role')\n public role = 'gridcell';\n\n @Input()\n public row: T;\n @Input()\n public column: SimpleTableActionColumn<T>;\n\n constructor(columnDef: CdkColumnDef, private elementRef: ElementRef, private renderer: Renderer2, public labels: NovoLabelService) {\n super(columnDef, elementRef);\n renderer.setAttribute(elementRef.nativeElement, 'data-automation-id', `novo-action-column-${columnDef.cssClassFriendlyName}`);\n }\n\n public ngOnInit(): void {\n if (this.column.options) {\n this.renderer.addClass(this.elementRef.nativeElement, 'novo-simple-dropdown-cell');\n } else {\n this.renderer.addClass(this.elementRef.nativeElement, 'novo-simple-button-cell');\n }\n }\n\n public isDisabled(check: SimpleTableActionColumn<T> | SimpleTableActionColumnOption<T>, row: T): boolean {\n if (check.disabled === true) {\n return true;\n }\n if (check.disabledCheck) {\n return check.disabledCheck(row);\n }\n return false;\n }\n}\n","import { coerceBooleanProperty } from '@angular/cdk/coercion';\nimport { CdkColumnDef } from '@angular/cdk/table';\nimport {\n AfterViewInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n Directive,\n ElementRef,\n Input,\n OnDestroy,\n OnInit,\n Optional,\n ViewChild,\n ViewEncapsulation,\n} from '@angular/core';\nimport { startOfToday, startOfTomorrow } from 'date-fns';\nimport { Subscription } from 'rxjs';\nimport { NovoLabelService } from 'novo-elements/services';\nimport { DateUtil, Helpers } from 'novo-elements/utils';\nimport { NovoDropdownElement } from 'novo-elements/elements/dropdown';\nimport { NovoSimpleSortFilter, NovoSimpleTableChange, SimpleTableColumnFilterConfig, SimpleTableColumnFilterOption } from './interfaces';\nimport { NovoSortFilter } from './sort';\nimport { NovoActivityTableState } from './state';\n\n@Directive({\n selector: '[novoSimpleFilterFocus]',\n standalone: false\n})\nexport class NovoSimpleFilterFocus implements AfterViewInit {\n constructor(private element: ElementRef) {}\n\n ngAfterViewInit() {\n this.element.nativeElement.focus();\n }\n}\n\n@Component({\n selector: '[novo-simple-cell-config]',\n template: `\n <label (click)=\"sort()\" data-automation-id=\"novo-activity-table-label\" [class.sort-disabled]=\"!config.sortable\">\n <ng-content></ng-content>\n </label>\n <div>\n <novo-button\n *ngIf=\"config.sortable\"\n theme=\"icon\"\n [icon]=\"icon\"\n (click)=\"sort()\"\n [class.active]=\"sortActive\"\n data-automation-id=\"novo-activity-table-sort\"\n ></novo-button>\n <novo-dropdown\n *ngIf=\"config.filterable\"\n side=\"right\"\n parentScrollSelector=\".novo-simple-table\"\n containerClass=\"simple-table-dropdown\"\n data-automation-id=\"novo-activity-table-filter\"\n >\n <novo-button type=\"button\" theme=\"icon\" icon=\"filter\" [class.active]=\"filterActive\"></novo-button>\n <div class=\"header\">\n <span>{{ labels.filters }}</span>\n <novo-button\n theme=\"dialogue\"\n color=\"negative\"\n icon=\"times\"\n (click)=\"clearFilter()\"\n *ngIf=\"filter\"\n data-automation-id=\"novo-activity-table-filter-clear\"\n >\n {{ labels.clear }}\n </novo-button>\n </div>\n <ng-container [ngSwitch]=\"config.filterConfig.type\">\n <novo-optgroup *ngSwitchCase=\"'date'\">\n <ng-container *ngIf=\"!showCustomRange\">\n <novo-option\n [class.active]=\"activeDateFilter === option.label\"\n *ngFor=\"let option of config.filterConfig.options\"\n (click)=\"filterData(option)\"\n [attr.data-automation-id]=\"'novo-activity-table-filter-' + option.label\"\n >\n {{ option.label }} <i class=\"bhi-check\" *ngIf=\"activeDateFilter === option.label\"></i>\n </novo-option>\n </ng-container>\n <novo-option\n [class.active]=\"labels.customDateRange === activeDateFilter\"\n (click)=\"toggleCustomRange($event, true)\"\n *ngIf=\"config.filterConfig.allowCustomRange && !showCustomRange\"\n [keepOpen]=\"true\"\n >\n {{ labels.customDateRange }} <i class=\"bhi-check\" *ngIf=\"labels.customDateRange === activeDateFilter\"></i>\n </novo-option>\n <div class=\"calendar-container\" *ngIf=\"showCustomRange\">\n <div (click)=\"toggleCustomRange($event, false)\"><i class=\"bhi-previous\"></i>{{ labels.backToPresetFilters }}</div>\n <novo-date-picker (onSelect)=\"filterData($event)\" [(ngModel)]=\"filter\" range=\"true\"></novo-date-picker>\n </div>\n </novo-optgroup>\n <novo-optgroup *ngSwitchCase=\"'select'\">\n <novo-option\n [class.active]=\"filter === option\"\n *ngFor=\"let option of config.filterConfig.options\"\n (click)=\"filterData(option)\"\n [attr.data-automation-id]=\"'novo-activity-table-filter-' + (option?.label || option)\"\n >\n <span>{{ option?.label || option }}</span>\n <i class=\"bhi-check\" *ngIf=\"option.hasOwnProperty('value') ? filter === option.value : filter === option\"></i>\n </novo-option>\n </novo-optgroup>\n <novo-optgroup *ngSwitchDefault>\n <novo-option class=\"filter-search\" keepOpen>\n <input\n type=\"text\"\n [(ngModel)]=\"filter\"\n (ngModelChange)=\"filterData($event)\"\n novoSimpleFilterFocus\n data-automation-id=\"novo-activity-table-filter-input\"\n />\n </novo-option>\n </novo-optgroup>\n </ng-container>\n </novo-dropdown>\n </div>\n `,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: false\n})\nexport class NovoSimpleCellHeader implements NovoSimpleSortFilter, OnInit, OnDestroy {\n @ViewChild(NovoDropdownElement)\n dropdown: NovoDropdownElement;\n\n @Input()\n defaultSort: { id: string; value: string };\n\n @Input('novo-simple-cell-config')\n get config() {\n return this._config;\n }\n\n set config(v) {\n if (!v) {\n this._config = {\n sortable: false,\n filterable: false,\n filterConfig: {\n type: 'text',\n },\n };\n } else {\n this._config = {\n sortable: coerceBooleanProperty(v.sortable),\n filterable: coerceBooleanProperty(v.filterable),\n transforms: v.transforms || {},\n filterConfig: v.filterConfig || {\n type: 'text',\n },\n };\n\n if (this._config.filterConfig.type === 'date' && !this._config.filterConfig.options) {\n this._config.filterConfig.options = this.getDefaultDateFilterOptions();\n }\n }\n }\n\n private _config: {\n sortable: boolean;\n filterable: boolean;\n transforms?: { filter?: Function; sort?: Function };\n filterConfig: SimpleTableColumnFilterConfig;\n };\n\n private _rerenderSubscription: Subscription;\n private changeTimeout: any;\n\n public icon: string = 'sortable';\n public id: string;\n public filter: string | boolean;\n public direction: string;\n public filterActive: boolean = false;\n public sortActive: boolean = false;\n public showCustomRange: boolean = false;\n public activeDateFilter: string;\n\n constructor(\n private changeDetectorRef: ChangeDetectorRef,\n public labels: NovoLabelService,\n private state: NovoActivityTableState,\n @Optional() public _sort: NovoSortFilter,\n @Optional() public _cdkColumnDef: CdkColumnDef,\n ) {\n this._rerenderSubscription = state.updates.subscribe((change: NovoSimpleTableChange) => {\n if (change.sort && change.sort.id === this.id) {\n this.icon = `sort-${change.sort.value}`;\n this.sortActive = true;\n } else {\n this.icon = 'sortable';\n this.sortActive = false;\n }\n if (change.filter && change.filter.id === this.id) {\n this.filterActive = true;\n this.filter = change.filter.value;\n } else {\n this.filterActive = false;\n this.filter = undefined;\n }\n changeDetectorRef.markForCheck();\n });\n }\n\n public ngOnInit(): void {\n if (this._cdkColumnDef) {\n this.id = this._cdkColumnDef.name;\n }\n if (this.defaultSort && this.id === this.defaultSort.id) {\n this.icon = `sort-${this.defaultSort.value}`;\n this.sortActive = true;\n this.changeDetectorRef.markForCheck();\n }\n }\n\n public ngOnDestroy(): void {\n this._rerenderSubscription.unsubscribe();\n }\n\n public sort(): void {\n if (this.changeTimeout) {\n clearTimeout(this.changeTimeout);\n }\n this.changeTimeout = setTimeout(() => {\n this.direction = this.getNextSortDirection(this.direction);\n this._sort.sort(this.id, this.direction, this._config.transforms.sort);\n this.changeDetectorRef.markForCheck();\n }, 300);\n }\n\n public toggleCustomRange(event: Event, value: boolean): void {\n Helpers.swallowEvent(event);\n this.showCustomRange = value;\n this.changeDetectorRef.markForCheck();\n this.dropdown.openPanel(); // Ensures that the panel correctly updates to the dynamic size of the dropdown\n }\n\n public filterData(filter?: any): void {\n let actualFilter = filter;\n if (this.config.filterConfig.type === 'date' && filter) {\n this.activeDateFilter = filter.label || this.labels.customDateRange;\n if (filter.startDate && filter.endDate) {\n actualFilter = {\n min: DateUtil.startOfDay(filter.startDate.date),\n max: DateUtil.startOfDay(DateUtil.addDays(DateUtil.startOfDay(filter.endDate.date), 1)),\n };\n } else {\n actualFilter = {\n min: filter.min ? DateUtil.addDays(startOfToday(), filter.min) : startOfToday(),\n max: filter.max ? DateUtil.addDays(startOfTomorrow(), filter.max) : startOfTomorrow(),\n };\n }\n }\n\n if (actualFilter && actualFilter.hasOwnProperty('value')) {\n actualFilter = filter.value;\n }\n\n if (this.changeTimeout) {\n clearTimeout(this.changeTimeout);\n }\n\n this.changeTimeout = setTimeout(() => {\n if (actualFilter === '') {\n actualFilter = undefined;\n }\n this._sort.filter(this.id, actualFilter, this.config.transforms.filter);\n this.changeDetectorRef.markForCheck();\n }, 300);\n }\n\n public clearFilter(): void {\n this.filter = undefined;\n this.activeDateFilter = undefined;\n this.filterData();\n }\n\n private getNextSortDirection(direction: string): string {\n if (!direction) {\n return 'asc';\n }\n if (direction === 'asc') {\n return 'desc';\n }\n return 'asc';\n }\n\n private getDefaultDateFilterOptions(): SimpleTableColumnFilterOption[] {\n const opts: SimpleTableColumnFilterOption[] = [\n { label: this.labels.past1Day, min: -1, max: 0 },\n { label: this.labels.past7Days, min: -7, max: 0 },\n { label: this.labels.past30Days, min: -30, max: 0 },\n { label: this.labels.past90Days, min: -90, max: 0 },\n { label: this.labels.past1Year, min: -366, max: 0 },\n { label: this.labels.next1Day, min: 0, max: 1 },\n { label: this.labels.next7Days, min: 0, max: 7 },\n { label: this.labels.next30Days, min: 0, max: 30 },\n { label: this.labels.next90Days, min: 0, max: 90 },\n { label: this.labels.next1Year, min: 0, max: 366 },\n ];\n return opts;\n }\n}\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component, EventEmitter, Input, OnDestroy, OnInit, Output } from '@angular/core';\nimport { Subscription } from 'rxjs';\nimport { NovoLabelService } from 'novo-elements/services';\nimport { NovoSimplePaginationEvent } from './interfaces';\nimport { NovoActivityTableState } from './state';\n\nconst DEFAULT_PAGE_SIZE = 50;\n\n@Component({\n selector: 'novo-simple-table-pagination',\n template: `\n <div class=\"novo-simple-table-pagination-size\">\n <novo-tiles\n *ngIf=\"displayedPageSizeOptions.length > 1\"\n [(ngModel)]=\"pageSize\"\n [options]=\"displayedPageSizeOptions\"\n (onChange)=\"changePageSize($event)\"\n data-automation-id=\"novo-simple-table-pagination-tiles\"\n >\n </novo-tiles>\n <div *ngIf=\"displayedPageSizeOptions.length <= 1\">{{ pageSize }}</div>\n </div>\n\n <div class=\"novo-simple-table-range-label-long\" data-automation-id=\"novo-simple-table-pagination-range-label-long\">\n {{ longRangeLabel }}\n </div>\n <div class=\"novo-simple-table-range-label-short\" data-automation-id=\"novo-simple-table-pagination-range-label-short\">\n {{ shortRangeLabel }}\n </div>\n\n <novo-button\n theme=\"dialogue\"\n type=\"button\"\n class=\"novo-simple-table-pagination-navigation-previous\"\n (click)=\"previousPage()\"\n icon=\"previous\"\n side=\"left\"\n [disabled]=\"!hasPreviousPage()\"\n data-automation-id=\"novo-simple-table-pagination-previous\"\n >\n <span>{{ labels.previous }}</span>\n </novo-button>\n <novo-button\n theme=\"dialogue\"\n type=\"button\"\n class=\"novo-simple-table-pagination-navigation-next\"\n (click)=\"nextPage()\"\n icon=\"next\"\n side=\"right\"\n [disabled]=\"!hasNextPage()\"\n data-automation-id=\"novo-simple-table-pagination-next\"\n >\n <span>{{ labels.next }}</span>\n </novo-button>\n `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: false\n})\nexport class NovoSimpleTablePagination implements OnInit, OnDestroy {\n private _initialized: boolean;\n\n @Input()\n get page(): number {\n return this._page;\n }\n set page(page: number) {\n this._page = page;\n this.changeDetectorRef.markForCheck();\n this.longRangeLabel = this.labels.getRangeText(this.page, this.pageSize, this.length, false);\n this.shortRangeLabel = this.labels.getRangeText(this.page, this.pageSize, this.length, true);\n this.state.page = this._page;\n }\n _page: number = 0;\n\n @Input()\n get length(): number {\n return this._length;\n }\n set length(length: number) {\n this._length = length;\n this.changeDetectorRef.markForCheck();\n this.longRangeLabel = this.labels.getRangeText(this.page, this.pageSize, this.length, false);\n this.shortRangeLabel = this.labels.getRangeText(this.page, this.pageSize, this.length, true);\n }\n _length: number = 0;\n\n @Input()\n get pageSize(): number {\n return this._pageSize;\n }\n set pageSize(pageSize: number) {\n this._pageSize = pageSize;\n this.updateDisplayedPageSizeOptions();\n this.state.pageSize = this._pageSize;\n }\n private _pageSize: number;\n\n @Input()\n get pageSizeOptions(): number[] {\n return this._pageSizeOptions;\n }\n set pageSizeOptions(pageSizeOptions: number[]) {\n this._pageSizeOptions = pageSizeOptions;\n this.updateDisplayedPageSizeOptions();\n }\n private _pageSizeOptions: number[] = [];\n\n @Output()\n pageChange = new EventEmitter<NovoSimplePaginationEvent>();\n\n public displayedPageSizeOptions: number[];\n public longRangeLabel: string;\n public shortRangeLabel: string;\n\n private resetSubscription: Subscription;\n\n constructor(private changeDetectorRef: ChangeDetectorRef, public labels: NovoLabelService, private state: NovoActivityTableState) {\n if (state && state.onReset) {\n this.resetSubscription = this.state.onReset.subscribe((clear: boolean) => {\n if (clear) {\n this.page = 0;\n this.changeDetectorRef.markForCheck();\n }\n });\n }\n }\n\n public ngOnInit(): void {\n this._initialized = true;\n this.updateDisplayedPageSizeOptions();\n }\n\n public ngOnDestroy(): void {\n this.resetSubscription.unsubscribe();\n }\n\n public nextPage(): void {\n if (!this.hasNextPage()) {\n return;\n }\n this.page++;\n this.emitPageEvent();\n }\n\n public previousPage(): void {\n if (!this.hasPreviousPage()) {\n return;\n }\n this.page--;\n this.emitPageEvent();\n }\n\n public hasPreviousPage(): boolean {\n return this.page >= 1 && this.pageSize !== 0;\n }\n\n public hasNextPage(): boolean {\n const numberOfPages = Math.ceil(this.length / this.pageSize) - 1;\n return this.page < numberOfPages && this.pageSize !== 0;\n }\n\n public changePageSize(pageSize: number): void {\n this.page = 0;\n this.pageSize = pageSize;\n this.emitPageEvent();\n }\n\n private updateDisplayedPageSizeOptions(): void {\n if (!this._initialized) {\n return;\n }\n if (!this.pageSize) {\n this._pageSize = this.pageSizeOptions.length !== 0 ? this.pageSizeOptions[0] : DEFAULT_PAGE_SIZE;\n }\n this.displayedPageSizeOptions = this.pageSizeOptions.slice();\n if (this.displayedPageSizeOptions.indexOf(this.pageSize) === -1) {\n this.displayedPageSizeOptions.push(this.pageSize);\n }\n this.displayedPageSizeOptions.sort((a, b) => a - b);\n this.changeDetectorRef.markForCheck();\n this.longRangeLabel = this.labels.getRangeText(this.page, this.pageSize, this.length, false);\n this.shortRangeLabel = this.labels.getRangeText(this.page, this.pageSize, this.length, true);\n }\n\n private emitPageEvent(): void {\n const event = {\n page: this.page,\n pageSize: this.pageSize,\n length: this.length,\n };\n this.pageChange.next(event);\n this.state.page = this.page;\n this.state.pageSize = this.pageSize;\n this.longRangeLabel = this.labels.getRangeText(this.page, this.pageSize, this.length, false);\n this.shortRangeLabel = this.labels.getRangeText(this.page, this.pageSize, this.length, true);\n this.state.updates.next(event);\n }\n}\n","// NG2\nimport { coerceBooleanProperty } from '@angular/cdk/coercion';\nimport { Component, EventEmitter, Input, OnChanges, OnInit, Output, SimpleChanges, ViewEncapsulation } from '@angular/core';\n// APP\nimport { NovoLabelService } from 'novo-elements/services';\n\ninterface Page {\n num: number;\n text: string;\n active: boolean;\n}\n@Component({\n selector: 'novo-pagination',\n template: `\n <ng-container *ngIf=\"rowOptions.length > 1\">\n <h5 class=\"rows\">{{ label }}</h5>\n <novo-select\n class=\"table-pagination-select\"\n [options]=\"rowOptions\"\n [placeholder]=\"labels.select\"\n [(ngModel)]=\"itemsPerPage\"\n (onSelect)=\"onPageSizeChanged($event)\"\n data-automation-id=\"pager-select\"\n ></novo-select>\n <span class=\"spacer\"></span>\n </ng-container>\n <ul class=\"pager\" data-automation-id=\"pager\">\n <li class=\"page\" (click)=\"selectPage(page - 1)\" [ngClass]=\"{ disabled: noPrevious() }\">\n <i class=\"bhi-previous\" data-automation-id=\"pager-previous\"></i>\n </li>\n <li\n class=\"page\"\n [ngClass]=\"{ active: p.active }\"\n [class.disabled]=\"disablePageSelection\"\n *ngFor=\"let p of pages\"\n (click)=\"selectPage(p.num, $event)\"\n >\n {{ p.text }}\n </li>\n <li class=\"page\" (click)=\"selectPage(page + 1)\" [ngClass]=\"{ disabled: noNext() }\">\n <i class=\"bhi-next\" data-automation-id=\"pager-next\"></i>\n </li>\n </ul>\n `,\n styleUrls: ['./PaginationOld.scss'],\n encapsulation: ViewEncapsulation.None,\n standalone: false\n})\nexport class Pagination implements OnInit, OnChanges {\n @Input()\n page: number;\n @Input()\n totalItems: number;\n @Input()\n itemsPerPage = 10;\n @Input()\n rowOptions;\n @Input()\n label: string;\n @Input()\n get disablePageSelection(): boolean {\n return this.pageSelectDisabled;\n }\n set disablePageSelection(val: boolean) {\n this.pageSelectDisabled = coerceBooleanProperty(val);\n }\n @Output()\n pageChange = new EventEmitter();\n @Output()\n itemsPerPageChange = new EventEmitter();\n @Output()\n onPageChange = new EventEmitter();\n\n public pageSelectDisabled: boolean;\n maxPagesDisplayed = 5;\n totalPages: number;\n pages: Array<Page>;\n\n constructor(public labels: NovoLabelService) {}\n\n ngOnInit() {\n this.label = this.label || this.labels.itemsPerPage;\n this.rowOptions = this.rowOptions || this.getDefaultRowOptions();\n }\n\n ngOnChanges(changes?: SimpleChanges) {\n this.page = this.page || 1;\n this.totalPages = this.calculateTotalPages();\n this.pages = this.getPages(this.page, this.totalPages);\n }\n\n getDefaultRowOptions() {\n return [\n { value: 10, label: '10' },\n { value: 25, label: '25' },\n { value: 50, label: '50' },\n { value: 100, label: '100' },\n ];\n }\n\n onPageSizeChanged(event) {\n this.page = 1;\n this.itemsPerPage = event.selected;\n this.totalPages = this.calculateTotalPages();\n this.pages = this.getPages(this.page, this.totalPages);\n this.pageChange.emit(this.page);\n this.itemsPerPageChange.emit(this.itemsPerPage);\n this.onPageChange.emit({\n page: this.page,\n itemsPerPage: this.itemsPerPage,\n });\n }\n\n selectPage(page: number, event?: MouseEvent) {\n if (event) {\n event.preventDefault();\n }\n\n this.page = page;\n this.pages = this.getPages(this.page, this.totalPages);\n this.pageChange.emit(this.page);\n this.onPageChange.emit({\n page: this.page,\n itemsPerPage: this.itemsPerPage,\n });\n }\n\n noPrevious() {\n return this.page === 1;\n }\n\n noNext() {\n return this.page === this.totalPages;\n }\n\n // Create page object used in template\n makePage(num: number, text: string, isActive: boolean) {\n return { num, text, active: isActive } as Page;\n }\n\n getPages(currentPage: number, totalPages: number) {\n const pages: Array<Page> = [];\n // Default page limits\n let startPage = 1;\n let endPage = totalPages;\n const isMaxSized = this.maxPagesDisplayed < totalPages;\n\n // recompute if maxPagesDisplayed\n if (isMaxSized) {\n // Current page is displayed in the middle of the visible ones\n startPage = Math.max(currentPage - Math.floor(this.maxPagesDisplayed / 2), 1);\n endPage = startPage + this.maxPagesDisplayed - 1;\n\n // Adjust if limit is exceeded\n if (endPage > totalPages) {\n endPage = totalPages;\n startPage = endPage - this.maxPagesDisplayed + 1;\n }\n }\n\n // Add page number links\n for (let num = startPage; num <= endPage; num++) {\n const page = this.makePage(num, num.toString(), num === currentPage);\n pages.push(page);\n }\n return pages;\n }\n\n calculateTotalPages() {\n const totalPages = this.itemsPerPage < 1 ? 1 : Math.ceil(this.totalItems / this.itemsPerPage);\n return Math.max(totalPages || 0, 1);\n }\n}\n","import { CdkHeaderRow, CdkHeaderRowDef, CdkRow, CdkRowDef, CDK_ROW_TEMPLATE } from '@angular/cdk/table';\nimport { ChangeDetectionStrategy, Component, Directive, HostBinding, Input } from '@angular/core';\n\n/** Workaround for https://github.com/angular/angular/issues/17849 */\nexport const _NovoHeaderRowDef = CdkHeaderRowDef;\nexport const _NovoCdkRowDef = CdkRowDef;\nexport const _NovoHeaderRow = CdkHeaderRow;\nexport const _NovoRow = CdkRow;\n\n@Directive({\n selector: '[novoSimpleHeaderRowDef]',\n providers: [{ provide: CdkHeaderRowDef, useExisting: NovoSimpleHeaderRowDef }],\n standalone: false\n})\nexport class NovoSimpleHeaderRowDef extends _NovoHeaderRowDef {\n // TODO: add explicit constructor\n\n @Input('novoSimpleHeaderRowDef')\n columns;\n}\n\n@Directive({\n selector: '[novoSimpleRowDef]',\n providers: [{ provide: CdkRowDef, useExisting: NovoSimpleRowDef }],\n standalone: false\n})\nexport class NovoSimpleRowDef<T> extends _NovoCdkRowDef<T> {\n // TODO: add explicit constructor\n\n @Input('novoSimpleRowDefColumns')\n columns;\n}\n\n@Component({\n selector: 'novo-simple-header-row',\n template: CDK_ROW_TEMPLATE,\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: false\n})\nexport class NovoSimpleHeaderRow extends _NovoHeaderRow {\n @HostBinding('class')\n public rowClass = 'novo-simple-header-row';\n @HostBinding('attr.role')\n public role = 'row';\n}\n\n@Component({\n selector: 'novo-simple-row',\n template: CDK_ROW_TEMPLATE,\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: false\n})\nexport class NovoSimpleRow extends _NovoRow {\n @HostBinding('class')\n public rowClass = 'novo-simple-row';\n @HostBinding('attr.role')\n public role = 'row';\n}\n","import { DataSource } from '@angular/cdk/table';\nimport { ChangeDetectorRef } from '@angular/core';\nimport { merge, Observable, of } from 'rxjs';\nimport { catchError, map, startWith, switchMap } from 'rxjs/operators';\nimport { Helpers } from 'novo-elements/utils';\nimport { NovoActivityTableState } from './state';\n\nexport interface ActivityTableService<T> {\n getTableResults(\n sort: { id: string; value: string; transform?: Function },\n filter: { id: string; value: string; transform?: Function },\n page: number,\n pageSize: number,\n globalSearch?: string,\n outsideFilter?: any,\n ): Observable<{ results: T[]; total: number }>;\n}\n\nexport abstract class RemoteActivityTableService<T> implements ActivityTableService<T> {\n abstract getTableResults(\n sort: { id: string; value: string; transform?: Function },\n filter: { id: string; value: string; transform?: Function },\n page: number,\n pageSize: number,\n globalSearch?: string,\n outsideFilter?: any,\n ): Observable<{ results: T[]; total: number }>;\n}\n\nexport class StaticActivityTableService<T> implements ActivityTableService<T> {\n constructor(private data: T[] = []) {}\n\n public getTableResults(\n sort: { id: string; value: string; transform?: Function },\n filter: { id: string; value: string; transform?: Function },\n page: number = 0,\n pageSize: number,\n globalSearch?: string,\n outsideFilter?: any,\n ): Observable<{ results: T[]; total: number }> {\n let ret: T[] = Helpers.deepClone(this.data);\n if (ret.length !== 0) {\n if (globalSearch) {\n ret = ret.filter((item) => Object.keys(item).some((key) => `${item[key]}`.toLowerCase().includes(globalSearch.toLowerCase())));\n }\n if (filter) {\n const value = Helpers.isString(filter.value) ? filter.value.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\$&') : filter.value;\n ret = ret.filter(Helpers.filterByField(filter.id, value));\n }\n if (sort) {\n ret = ret.sort(Helpers.sortByField(sort.id, sort.value === 'desc'));\n }\n if (!Helpers.isBlank(page) && !Helpers.isBlank(pageSize)) {\n ret = ret.slice(page * pageSize, (page + 1) * pageSize);\n }\n }\n return of({ results: ret, total: this.data.length });\n }\n}\n\nexport class ActivityTableDataSource<T> extends DataSource<T> {\n public total = 0;\n public current = 0;\n public loading = false;\n public pristine = true;\n\n get totallyEmpty(): boolean {\n return this.total === 0;\n }\n\n get currentlyEmpty(): boolean {\n return this.current === 0;\n }\n\n constructor(private tableService: ActivityTableService<T>, private state: NovoActivityTableState, private ref: ChangeDetectorRef) {\n super();\n }\n\n public connect(): Observable<any[]> {\n const displayDataChanges: any = [this.state.updates];\n return merge(...displayDataChanges).pipe(\n startWith(null),\n switchMap(() => {\n this.pristine = false;\n this.loading = true;\n return this.tableService.getTableResults(\n this.state.sort,\n this.state.filter,\n this.state.page,\n this.state.pageSize,\n this.state.globalSearch,\n this.state.outsideFilter,\n );\n }),\n map((data: { results: T[]; total: number }) => {\n this.loading = false;\n this.total = data.total;\n this.current = data.results.length;\n setTimeout(() => {\n this.ref.markForCheck();\n });\n return data.results;\n }),\n catchError((error) => {\n console.error(error); // tslint: disable-line\n this.loading = false;\n return of(null);\n }),\n );\n }\n\n public disconnect(): void {}\n}\n","import { coerceBooleanProperty } from '@angular/cdk/coercion';\nimport { _VIEW_REPEATER_STRATEGY, _DisposeViewRepeaterStrategy } from '@angular/cdk/collections';\nimport { CdkTable, CDK_TABLE, CDK_TABLE_TEMPLATE, _COALESCED_STYLE_SCHEDULER, _CoalescedStyleScheduler } from '@angular/cdk/table';\nimport {\n AfterContentInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n Directive,\n EventEmitter,\n HostBinding,\n Input,\n OnChanges,\n OnDestroy,\n SimpleChanges,\n ViewEncapsulation,\n} from '@angular/core';\nimport { Subscription } from 'rxjs';\nimport { NovoLabelService } from 'novo-elements/services';\nimport { notify } from 'novo-elements/utils';\nimport { SimpleTableActionColumn, SimpleTableColumn, SimpleTablePaginationOptions, SimpleTableSearchOptions } from './interfaces';\nimport { NovoActivityTableState } from './state';\nimport { ActivityTableDataSource, ActivityTableService } from './table-source';\n\n@Component({\n selector: 'novo-simple-table',\n template: CDK_TABLE_TEMPLATE,\n styleUrls: ['./table.scss'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [{ provide: CDK_TABLE, useExisting: NovoTable }],\n standalone: false\n})\nexport class NovoTable<T> extends CdkTable<T> {\n // TODO: add explicit constructor\n}\n\n@Directive({\n selector: 'novo-activity-table-actions',\n standalone: false\n})\nexport class NovoActivityTableActions {}\n\n@Directive({\n selector: 'novo-activity-table-custom-header',\n standalone: false\n})\nexport class NovoActivityTableCustomHeader {}\n\n@Directive({\n selector: 'novo-activity-table-custom-filter',\n standalone: false\n})\nexport class NovoActivityTableCustomFilter {}\n\n@Directive({\n selector: 'novo-activity-table-empty-message',\n standalone: false\n})\nexport class NovoActivityTableEmptyMessage {}\n\n@Directive({\n selector: 'novo-activity-table-no-results-message',\n standalone: false\n})\nexport class NovoActivityTableNoResultsMessage {}\n\n@Component({\n selector: 'novo-activity-table',\n template: `\n <div *ngIf=\"debug\">\n <p>Total: {{ dataSource?.total }}</p>\n <p>Current: {{ dataSource?.current }}</p>\n <p>Totally Empty: {{ dataSource?.totallyEmpty }}</p>\n <p>Currently Empty: {{ dataSource?.currentlyEmpty }}</p>\n <p>Loading (DataSource): {{ dataSource?.loading }}</p>\n <p>User Filtered: {{ state.userFiltered }}</p>\n <p>Loading (Table): {{ loading }}</p>\n </div>\n <header *ngIf=\"(!(dataSource?.totallyEmpty && !state.userFiltered) && !loading) || forceShowHeader\">\n <ng-content select=\"[novo-activity-table-custom-header]\"></ng-content>\n <novo-search\n alwaysOpen=\"true\"\n (searchChanged)=\"onSearchChange($event)\"\n [(ngModel)]=\"state.globalSearch\"\n *ngIf=\"!hideGlobalSearch\"\n [placeholder]=\"searchOptions?.placeholder\"\n [hint]=\"searchOptions?.tooltip\"\n >\n </novo-search>\n <novo-simple-table-pagination\n *ngIf=\"paginationOptions\"\n [length]=\"dataSource?.total\"\n [page]=\"paginationOptions.page\"\n [pageSize]=\"paginationOptions.pageSize\"\n [pageSizeOptions]=\"paginationOptions.pageSizeOptions\"\n >\n </novo-simple-table-pagination>\n <div class=\"novo-activity-table-actions\">\n <ng-content select=\"[novo-activity-table-actions]\"></ng-content>\n </div>\n </header>\n <div class=\"novo-activity-table-loading-mask\" *ngIf=\"dataSource?.loading || loading\" data-automation-id=\"novo-activity-table-loading\">\n <novo-loading></novo-loading>\n </div>\n <div class=\"novo-activity-table-filter-container\">\n <div class=\"novo-activity-table-custom-filter\" *ngIf=\"customFilter\">\n <ng-content select=\"[novo-activity-table-custom-filter]\"></ng-content>\n </div>\n <div class=\"novo-activity-table-container\">\n <novo-simple-table\n *ngIf=\"columns?.length > 0\"\n [dataSource]=\"dataSource\"\n novoSortFilter\n novoSelection\n [class.empty]=\"dataSource?.currentlyEmpty && state.userFiltered\"\n [hidden]=\"dataSource?.totallyEmpty && !state.userFiltered\">\n <ng-content></ng-content>\n <ng-container novoSimpleColumnDef=\"selection\">\n <novo-simple-checkbox-header-cell *novoSimpleHeaderCellDef></novo-simple-checkbox-header-cell>\n <novo-simple-checkbox-cell *novoSimpleCellDef=\"let row; let i = index\" [row]=\"row\" [index]=\"i\"></novo-simple-checkbox-cell>\n </ng-container>\n <ng-container *ngFor=\"let column of actionColumns\" [novoSimpleColumnDef]=\"column.id\">\n <novo-simple-empty-header-cell\n [class.button-header-cell]=\"!column.options\"\n [class.dropdown-header-cell]=\"column.options\"\n *novoSimpleHeaderCellDef\n ></novo-simple-empty-header-cell>\n <novo-simple-action-cell *novoSimpleCellDef=\"let row; let i = index\" [row]=\"row\" [column]=\"column\"></novo-simple-action-cell>\n </ng-container>\n <ng-container *ngFor=\"let column of columns\" [novoSimpleColumnDef]=\"column.id\">\n <novo-simple-header-cell\n *novoSimpleHeaderCellDef\n [column]=\"column\"\n [novo-simple-cell-config]=\"column.config\"\n [defaultSort]=\"defaultSort\"\n >{{ column.label }}</novo-simple-header-cell>\n <novo-simple-cell *novoSimpleCellDef=\"let row\" [column]=\"column\" [row]=\"row\"></novo-simple-cell>\n </ng-container>\n <novo-simple-header-row *novoSimpleHeaderRowDef=\"displayedColumns\"></novo-simple-header-row>\n <novo-simple-row *novoSimpleRowDef=\"let row; columns: displayedColumns\"></novo-simple-row>\n </novo-simple-table>\n <div\n class=\"novo-activity-table-no-results-container\"\n *ngIf=\"dataSource?.currentlyEmpty && state.userFiltered && !dataSource?.loading && !loading && !dataSource.pristine\"\n >\n <div #filtered><ng-content select=\"[novo-activity-table-no-results-message]\"></ng-content></div>\n <div class=\"novo-activity-table-empty-message\" *ngIf=\"filtered.childNodes.length == 0\">\n <h4><i class=\"bhi-search-question\"></i> {{ labels.noMatchingRecordsMessage }}</h4>\n </div>\n </div>\n <div\n class=\"novo-activity-table-empty-container\"\n *ngIf=\"dataSource?.totallyEmpty && !dataSource?.loading && !loading && !state.userFiltered && !dataSource.pristine\"\n >\n <div #empty><ng-content select=\"[novo-activity-table-empty-message]\"></ng-content></div>\n <div class=\"novo-activity-table-empty-message\" *ngIf=\"empty.childNodes.length == 0\">\n <h4><i class=\"bhi-search-question\"></i> {{ labels.emptyTableMessage }}</h4>\n </div>\n </div>\n </div>\n </div>\n `,\n styleUrls: ['./table.scss'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n NovoActivityTableState,\n { provide: _VIEW_REPEATER_STRATEGY, useClass: _DisposeViewRepeaterStrategy },\n { provide: _COALESCED_STYLE_SCHEDULER, useClass: _CoalescedStyleScheduler },\n ],\n standalone: false\n})\nexport class NovoActivityTable<T> implements AfterContentInit, OnChanges, OnDestroy {\n @HostBinding('class.global-search-hidden')\n globalSearchHiddenClassToggle: boolean = false;\n\n @Input()\n activityService: ActivityTableService<T>;\n @Input()\n columns: SimpleTableColumn<T>[];\n @Input()\n displayedColumns: string[];\n @Input()\n actionColumns: SimpleTableActionColumn<T>[];\n @Input()\n paginationOptions: SimpleTablePaginationOptions;\n @Input()\n searchOptions: SimpleTableSearchOptions;\n @Input()\n defaultSort: { id: string; value: string };\n @Input()\n outsideFilter: EventEmitter<any>;\n\n @Input()\n set customFilter(v: boolean) {\n this._customFilter = coerceBooleanProperty(v);\n }\n get customFilter() {\n return this._customFilter;\n }\n private _customFilter: boolean;\n\n @Input()\n set forceShowHeader(v: boolean) {\n this._forceShowHeader = coerceBooleanProperty(v);\n }\n get forceShowHeader() {\n return this._forceShowHeader;\n }\n private _forceShowHeader: boolean;\n\n @Input()\n set hideGlobalSearch(v: boolean) {\n this._hideGlobalSearch = coerceBooleanProperty(v);\n this.globalSearchHiddenClassToggle = this._hideGlobalSearch;\n }\n get hideGlobalSearch() {\n return this._hideGlobalSearch;\n }\n private _hideGlobalSearch: boolean;\n\n @Input()\n set debug(v: boolean) {\n this._debug = coerceBooleanProperty(v);\n }\n get debug() {\n return this._debug;\n }\n private _debug: boolean;\n\n public dataSource: ActivityTableDataSource<T>;\n public loading: boolean = true;\n\n private outsideFilterSubscription: Subscription;\n\n @HostBinding('class.empty')\n get empty() {\n return this.dataSource && this.dataSource.totallyEmpty;\n }\n\n @HostBinding('class.loading')\n get loadingClass() {\n return this.loading || (this.dataSource && this.dataSource.loading);\n }\n\n constructor(public labels: NovoLabelService, private ref: ChangeDetectorRef, public state: NovoActivityTableState) {\n notify('[Deprecated]: The simple table is deprecated. Please migrate to novo-data-tables!');\n }\n\n public ngOnChanges(changes: SimpleChanges): void {\n this.loading = changes.activityService && !changes.activityService.currentValue;\n this.ref.detectChanges();\n if (changes.activityService && changes.activityService.currentValue) {\n this.loading = false;\n this.dataSource = new ActivityTableDataSource<T>(this.activityService, this.state, this.ref);\n this.ref.detectChanges();\n }\n if (changes.outsideFilter && changes.outsideFilter.currentValue) {\n if (!this.outsideFilterSubscription) {\n this.outsideFilterSubscription = this.outsideFilter.subscribe((filter: any) => {\n this.state.outsideFilter = filter;\n this.state.updates.next({ globalSearch: this.state.globalSearch, filter: this.state.filter, sort: this.state.sort });\n this.ref.markForCheck();\n });\n }\n }\n }\n\n public ngOnDestroy(): void {\n if (this.outsideFilterSubscription) {\n this.outsideFilterSubscription.unsubscribe();\n }\n }\n\n public ngAfterContentInit(): void {\n if (this.paginationOptions && !this.paginationOptions.page) {\n this.paginationOptions.page = 0;\n }\n if (this.paginationOptions && !this.paginationOptions.pageSize) {\n this.paginationOptions.pageSize = 50;\n }\n if (this.paginationOptions && !this.paginationOptions.pageSizeOptions) {\n this.paginationOptions.pageSizeOptions = [10, 25, 50, 100];\n }\n this.state.page = this.paginationOptions ? this.paginationOptions.page : undefined;\n this.state.pageSize = this.paginationOptions ? this.paginationOptions.pageSize : undefined;\n this.ref.markForCheck();\n }\n\n public onSearchChange(term: string): void {\n this.state.globalSearch = term;\n this.state.reset(false, true);\n this.state.updates.next({ globalSearch: term, filter: this.state.filter, sort: this.state.sort });\n }\n}\n","import { CdkTableModule } from '@angular/cdk/table';\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { NovoButtonModule } from 'novo-elements/elements/button';\nimport { NovoCheckboxModule } from 'novo-elements/elements/checkbox';\nimport { NovoCommonModule, NovoOptionModule } from 'novo-elements/elements/common';\nimport { NovoDatePickerModule } from 'novo-elements/elements/date-picker';\nimport { NovoDropdownModule } from 'novo-elements/elements/dropdown';\nimport { NovoFormExtrasModule } from 'novo-elements/elements/form';\nimport { NovoLoadingModule } from 'novo-elements/elements/loading';\nimport { NovoSearchBoxModule } from 'novo-elements/elements/search';\nimport { NovoSelectModule } from 'novo-elements/elements/select';\nimport { NovoTilesModule } from 'novo-elements/elements/tiles';\nimport {\n NovoSimpleActionCell,\n NovoSimpleCell,\n NovoSimpleCellDef,\n NovoSimpleCheckboxCell,\n NovoSimpleCheckboxHeaderCell,\n NovoSimpleColumnDef,\n NovoSimpleEmptyHeaderCell,\n NovoSimpleHeaderCell,\n NovoSimpleHeaderCellDef,\n} from './cell';\nimport { NovoSimpleCellHeader, NovoSimpleFilterFocus } from './cell-header';\nimport { NovoSimpleTablePagination } from './pagination';\nimport { Pagination } from './PaginationOld';\nimport { NovoSimpleHeaderRow, NovoSimpleHeaderRowDef, NovoSimpleRow, NovoSimpleRowDef } from './row';\nimport { NovoSelection, NovoSortFilter } from './sort';\nimport { NovoActivityTableState } from './state';\nimport {\n NovoActivityTable,\n NovoActivityTableActions,\n NovoActivityTableCustomFilter,\n NovoActivityTableCustomHeader,\n NovoActivityTableEmptyMessage,\n NovoActivityTableNoResultsMessage,\n NovoTable,\n} from './table';\n\n@NgModule({\n imports: [\n NovoDatePickerModule,\n CdkTableModule,\n CommonModule,\n FormsModule,\n NovoCommonModule,\n NovoButtonModule,\n NovoDropdownModule,\n NovoFormExtrasModule,\n NovoLoadingModule,\n NovoTilesModule,\n NovoSearchBoxModule,\n NovoSelectModule,\n NovoCheckboxModule,\n NovoOptionModule,\n ],\n exports: [\n NovoTable,\n NovoSimpleCellDef,\n NovoSimpleHeaderCellDef,\n NovoSimpleColumnDef,\n NovoActivityTableEmptyMessage,\n NovoActivityTableNoResultsMessage,\n NovoSimpleHeaderRowDef,\n NovoSimpleRowDef,\n NovoSimpleCellHeader,\n NovoSortFilter,\n NovoSimpleActionCell,\n NovoSimpleEmptyHeaderCell,\n NovoSimpleHeaderCell,\n NovoSimpleCell,\n NovoSimpleHeaderRow,\n NovoSimpleRow,\n NovoSimpleFilterFocus,\n NovoSimpleTablePagination,\n NovoActivityTableCustomHeader,\n NovoSimpleCheckboxCell,\n NovoSimpleCheckboxHeaderCell,\n NovoSelection,\n NovoActivityTable,\n NovoActivityTableActions,\n NovoActivityTableCustomFilter,\n Pagination,\n ],\n declarations: [\n NovoTable,\n NovoSimpleCellDef,\n NovoSimpleHeaderCellDef,\n NovoSimpleColumnDef,\n NovoActivityTableEmptyMessage,\n NovoActivityTableNoResultsMessage,\n NovoSimpleHeaderRowDef,\n NovoSimpleRowDef,\n NovoSimpleCellHeader,\n NovoSortFilter,\n NovoSimpleActionCell,\n NovoSimpleEmptyHeaderCell,\n NovoSimpleHeaderCell,\n NovoSimpleCell,\n NovoSimpleHeaderRow,\n NovoSimpleRow,\n NovoSimpleFilterFocus,\n NovoSimpleTablePagination,\n NovoActivityTableCustomHeader,\n NovoSimpleCheckboxCell,\n NovoSimpleCheckboxHeaderCell,\n NovoSelection,\n NovoActivityTable,\n NovoActivityTableActions,\n NovoActivityTableCustomFilter,\n Pagination,\n ],\n providers: [NovoActivityTableState],\n})\nexport class NovoSimpleTableModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1.NovoActivityTableState","i2.NovoSelection","i5","i7","i8","i1","i2.NovoActivityTableState","i3.NovoSortFilter","i4","i9","i10","i3","i6","i2","i3.NovoActivityTableState","i8.NovoSimpleCellDef","i8.NovoSimpleHeaderCellDef","i8.NovoSimpleColumnDef","i9.NovoSimpleHeaderRowDef","i9.NovoSimpleRowDef","i10.NovoSimpleCellHeader","i11.NovoSortFilter","i8.NovoSimpleActionCell","i8.NovoSimpleEmptyHeaderCell","i8.NovoSimpleHeaderCell","i8.NovoSimpleCell","i9.NovoSimpleHeaderRow","i9.NovoSimpleRow","i12.NovoSimpleTablePagination","i8.NovoSimpleCheckboxCell","i8.NovoSimpleCheckboxHeaderCell","i11.NovoSelection"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;MAAa,sBAAsB,CAAA;IACjC,OAAO,gBAAgB,CAAI,IAAY,EAAA;AACrC,QAAA,MAAM,GAAG,GAAG,CAAC,IAAO,KAAY;;AAE9B,YAAA,OAAO,IAAI,CAAC,IAAI,CAAC;AACnB,SAAC;AACD,QAAA,OAAO,GAAG;;IAGZ,OAAO,YAAY,CAAI,IAAY,EAAA;AACjC,QAAA,MAAM,GAAG,GAAG,CAAC,IAAO,KAAY;YAC9B,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,kBAAkB,EAAE,GAAG,EAAE;AACpE,SAAC;AACD,QAAA,OAAO,GAAG;;AAEb;;MCXY,sBAAsB,CAAA;AADnC,IAAA,WAAA,GAAA;AAEE,QAAA,IAAA,CAAA,EAAE,GAAW,IAAI,CAAC,MAAM,EAAE;QAC1B,IAAI,CAAA,IAAA,GAAkC,SAAS;QAC/C,IAAM,CAAA,MAAA,GAAkC,SAAS;QACjD,IAAI,CAAA,IAAA,GAAW,CAAC;QAChB,IAAQ,CAAA,QAAA,GAAW,SAAS;QAC5B,IAAY,CAAA,YAAA,GAAW,SAAS;AAChC,QAAA,IAAA,CAAA,YAAY,GAAwB,IAAI,GAAG,EAAkB;AAG7D,QAAA,IAAA,CAAA,OAAO,GAAwC,IAAI,YAAY,EAAyB;AACxF,QAAA,IAAA,CAAA,OAAO,GAA0B,IAAI,YAAY,EAAW;AAuB7D;AArBC,IAAA,IAAI,YAAY,GAAA;AACd,QAAA,OAAO,CAAC,EAAE,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,aAAa,CAAC;;AAGzE,IAAA,KAAK,CAAC,UAAA,GAAsB,IAAI,EAAE,kBAA4B,EAAA;QACnE,IAAI,CAAC,kBAAkB,EAAE;AACvB,YAAA,IAAI,CAAC,IAAI,GAAG,SAAS;AACrB,YAAA,IAAI,CAAC,YAAY,GAAG,SAAS;AAC7B,YAAA,IAAI,CAAC,MAAM,GAAG,SAAS;;AAEzB,QAAA,IAAI,CAAC,IAAI,GAAG,CAAC;AACb,QAAA,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE;AACzB,QAAA,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC;QACvB,IAAI,UAAU,EAAE;AACd,YAAA,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC;gBAChB,IAAI,EAAE,IAAI,CAAC,IAAI;gBACf,MAAM,EAAE,IAAI,CAAC,MAAM;gBACnB,YAAY,EAAE,IAAI,CAAC,YAAY;AAChC,aAAA,CAAC;;;+GA/BK,sBAAsB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;mHAAtB,sBAAsB,EAAA,CAAA,CAAA;;4FAAtB,sBAAsB,EAAA,UAAA,EAAA,CAAA;kBADlC;;;MCKY,cAAc,CAAA;AACzB,IAAA,WAAA,CAAoB,KAA6B,EAAA;QAA7B,IAAK,CAAA,KAAA,GAAL,KAAK;;AAElB,IAAA,MAAM,CAAC,EAAU,EAAE,KAAU,EAAE,SAAmB,EAAA;AACvD,QAAA,IAAI,MAAM;QACV,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;YAC3B,MAAM,GAAG,EAAE,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE;;aAC5B;YACL,MAAM,GAAG,SAAS;;AAEpB,QAAA,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,MAAM;QAC1B,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,EAAE,IAAI,CAAC;AAC7B,QAAA,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;;AAGrD,IAAA,IAAI,CAAC,EAAU,EAAE,KAAa,EAAE,SAAmB,EAAA;QACxD,MAAM,IAAI,GAAG,EAAE,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE;AACrC,QAAA,IAAI,CAAC,KAAK,CAAC,IAAI,GAAG,IAAI;QACtB,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,EAAE,IAAI,CAAC;AAC7B,QAAA,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;;+GAnBnD,cAAc,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAA,sBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;mGAAd,cAAc,EAAA,YAAA,EAAA,KAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;4FAAd,cAAc,EAAA,UAAA,EAAA,CAAA;kBAJ1B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,kBAAkB;AAC5B,oBAAA,UAAU,EAAE;AACf,iBAAA;;MA4BY,aAAa,CAAA;AAOxB,IAAA,WAAA,CAAmB,KAA6B,EAAA;QAA7B,IAAK,CAAA,KAAA,GAAL,KAAK;AALjB,QAAA,IAAA,CAAA,mBAAmB,GAAG,IAAI,YAAY,EAAW;AAEjD,QAAA,IAAA,CAAA,OAAO,GAAG,IAAI,GAAG,EAAkB;;IAKnC,QAAQ,CAAC,EAAE,EAAE,GAAG,EAAA;QACrB,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC;;AAGpB,IAAA,UAAU,CAAC,EAAE,EAAA;AAClB,QAAA,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;QACvB,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,MAAM,CAAC,EAAE,CAAC;AAClC,QAAA,YAAY,CAAC,IAAI,CAAC,eAAe,CAAC;AAClC,QAAA,IAAI,CAAC,eAAe,GAAG,UAAU,CAAC,MAAK;YACrC,IAAI,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,KAAK,CAAC,EAAE;AACtC,gBAAA,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,KAAK,CAAC;;AAExC,SAAC,CAAC;;IAGG,WAAW,GAAA;AAChB,QAAA,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE;AACpB,QAAA,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,KAAK,EAAE;;AAG1B,IAAA,MAAM,CAAC,EAAU,EAAE,QAAiB,EAAE,GAAQ,EAAA;QACnD,IAAI,QAAQ,EAAE;YACZ,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC;;aAC/B;YACL,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,MAAM,CAAC,EAAE,CAAC;;;AAI/B,IAAA,SAAS,CAAC,KAAc,EAAA;QAC7B,IAAI,KAAK,EAAE;AACT,YAAA,IAAI,CAAC,KAAK,CAAC,YAAY,GAAG,IAAI,GAAG,CAAiB,IAAI,CAAC,OAAO,CAAC;;aAC1D;AACL,YAAA,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,KAAK,EAAE;;AAEjC,QAAA,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,KAAK,CAAC;;+GA3C3B,aAAa,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAA,sBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;mGAAb,aAAa,EAAA,YAAA,EAAA,KAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,OAAA,EAAA,EAAA,mBAAA,EAAA,qBAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;4FAAb,aAAa,EAAA,UAAA,EAAA,CAAA;kBAJzB,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,iBAAiB;AAC3B,oBAAA,UAAU,EAAE;AACf,iBAAA;wFAGQ,mBAAmB,EAAA,CAAA;sBADzB;;;AChBH;AACO,MAAM,YAAY,GAAG;AACrB,MAAM,kBAAkB,GAAG;AAC3B,MAAM,cAAc,GAAG;AACvB,MAAM,eAAe,GAAG;AACxB,MAAM,SAAS,GAAG;AAOnB,MAAO,iBAAkB,SAAQ,YAAY,CAAA;+GAAtC,iBAAiB,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;mGAAjB,iBAAiB,EAAA,YAAA,EAAA,KAAA,EAAA,QAAA,EAAA,qBAAA,EAAA,SAAA,EAHf,CAAC,EAAE,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,iBAAiB,EAAE,CAAC,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;4FAG3D,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAL7B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,qBAAqB;oBAC/B,SAAS,EAAE,CAAC,EAAE,OAAO,EAAE,UAAU,EAAE,WAAW,EAAmB,iBAAA,EAAE,CAAC;AACpE,oBAAA,UAAU,EAAE;AACf,iBAAA;;AAUK,MAAO,uBAAwB,SAAQ,kBAAkB,CAAA;+GAAlD,uBAAuB,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;mGAAvB,uBAAuB,EAAA,YAAA,EAAA,KAAA,EAAA,QAAA,EAAA,2BAAA,EAAA,SAAA,EAHrB,CAAC,EAAE,OAAO,EAAE,gBAAgB,EAAE,WAAW,EAAE,uBAAuB,EAAE,CAAC,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;4FAGvE,uBAAuB,EAAA,UAAA,EAAA,CAAA;kBALnC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,2BAA2B;oBACrC,SAAS,EAAE,CAAC,EAAE,OAAO,EAAE,gBAAgB,EAAE,WAAW,EAAyB,uBAAA,EAAE,CAAC;AAChF,oBAAA,UAAU,EAAE;AACf,iBAAA;;AAUK,MAAO,mBAAoB,SAAQ,cAAc,CAAA;AACrD,IAAA,IACI,IAAI,GAAA;QACN,OAAO,IAAI,CAAC,KAAK;;IAEnB,IAAI,IAAI,CAAC,IAAY,EAAA;AACnB,QAAA,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC;;AAE1B;;;;;AAKG;AACO,IAAA,aAAa,CAAC,KAAa,EAAA;;;QAGnC,IAAI,KAAK,EAAE;AACT,YAAA,IAAI,CAAC,KAAK,GAAG,KAAK;YAClB,IAAI,CAAC,oBAAoB,GAAG,KAAK,CAAC,OAAO,CAAC,eAAe,EAAE,GAAG,CAAC;YAC/D,IAAI,CAAC,yBAAyB,EAAE;;;+GApBzB,mBAAmB,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;mGAAnB,mBAAmB,EAAA,YAAA,EAAA,KAAA,EAAA,QAAA,EAAA,uBAAA,EAAA,MAAA,EAAA,EAAA,IAAA,EAAA,CAAA,qBAAA,EAAA,MAAA,CAAA,EAAA,EAAA,SAAA,EAHjB,CAAC,EAAE,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,mBAAmB,EAAE,CAAC,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;4FAG/D,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAL/B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,uBAAuB;oBACjC,SAAS,EAAE,CAAC,EAAE,OAAO,EAAE,YAAY,EAAE,WAAW,EAAqB,mBAAA,EAAE,CAAC;AACxE,oBAAA,UAAU,EAAE;AACf,iBAAA;8BAGK,IAAI,EAAA,CAAA;sBADP,KAAK;uBAAC,qBAAqB;;AA4BxB,MAAO,oBAAwB,SAAQ,eAAe,CAAA;AAO1D,IAAA,WAAA,CAAY,SAAuB,EAAU,UAAsB,EAAU,QAAmB,EAAA;AAC9F,QAAA,KAAK,CAAC,SAAS,EAAE,UAAU,CAAC;QADe,IAAU,CAAA,UAAA,GAAV,UAAU;QAAsB,IAAQ,CAAA,QAAA,GAAR,QAAQ;QAL9E,IAAI,CAAA,IAAA,GAAG,cAAc;AAO1B,QAAA,QAAQ,CAAC,YAAY,CAAC,UAAU,CAAC,aAAa,EAAE,oBAAoB,EAAE,sBAAsB,SAAS,CAAC,oBAAoB,CAAA,CAAE,CAAC;AAC7H,QAAA,QAAQ,CAAC,QAAQ,CAAC,UAAU,CAAC,aAAa,EAAE,CAAA,YAAA,EAAe,SAAS,CAAC,oBAAoB,CAAA,CAAE,CAAC;QAC5F,QAAQ,CAAC,QAAQ,CAAC,UAAU,CAAC,aAAa,EAAE,yBAAyB,CAAC;;IAGjE,QAAQ,GAAA;AACb,QAAA,IAAI,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE;YACrB,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,aAAa,EAAE,WAAW,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAI,EAAA,CAAA,CAAC;YAC5F,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,aAAa,EAAE,WAAW,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAI,EAAA,CAAA,CAAC;YAC5F,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,aAAa,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAI,EAAA,CAAA,CAAC;;;+GAlBjF,oBAAoB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,YAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,SAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;mGAApB,oBAAoB,EAAA,YAAA,EAAA,KAAA,EAAA,QAAA,EAAA,yBAAA,EAAA,MAAA,EAAA,EAAA,MAAA,EAAA,QAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,WAAA,EAAA,WAAA,EAAA,EAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;4FAApB,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBAJhC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,yBAAyB;AACnC,oBAAA,UAAU,EAAE;AACf,iBAAA;kIAGQ,IAAI,EAAA,CAAA;sBADV,WAAW;uBAAC,WAAW;gBAIjB,MAAM,EAAA,CAAA;sBADZ;;AAuBG,MAAO,yBAA0B,SAAQ,eAAe,CAAA;AAI5D,IAAA,WAAA,CAAY,SAAuB,EAAE,UAAsB,EAAE,QAAmB,EAAA;AAC9E,QAAA,KAAK,CAAC,SAAS,EAAE,UAAU,CAAC;QAHvB,IAAI,CAAA,IAAA,GAAG,cAAc;AAI1B,QAAA,QAAQ,CAAC,YAAY,CAAC,UAAU,CAAC,aAAa,EAAE,oBAAoB,EAAE,sBAAsB,SAAS,CAAC,oBAAoB,CAAA,CAAE,CAAC;AAC7H,QAAA,QAAQ,CAAC,QAAQ,CAAC,UAAU,CAAC,aAAa,EAAE,CAAA,YAAA,EAAe,SAAS,CAAC,oBAAoB,CAAA,CAAE,CAAC;QAC5F,QAAQ,CAAC,QAAQ,CAAC,UAAU,CAAC,aAAa,EAAE,+BAA+B,CAAC;;+GARnE,yBAAyB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,YAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,SAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;mGAAzB,yBAAyB,EAAA,YAAA,EAAA,KAAA,EAAA,QAAA,EAAA,+BAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,WAAA,EAAA,WAAA,EAAA,EAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;4FAAzB,yBAAyB,EAAA,UAAA,EAAA,CAAA;kBAJrC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,+BAA+B;AACzC,oBAAA,UAAU,EAAE;AACf,iBAAA;kIAGQ,IAAI,EAAA,CAAA;sBADV,WAAW;uBAAC,WAAW;;AAgBpB,MAAO,4BAA6B,SAAQ,eAAe,CAAA;IAO/D,WACE,CAAA,SAAuB,EACvB,UAAsB,EACtB,QAAmB,EACnB,GAAsB,EACF,UAAyB,EAAA;AAE7C,QAAA,KAAK,CAAC,SAAS,EAAE,UAAU,CAAC;QAFR,IAAU,CAAA,UAAA,GAAV,UAAU;QAVzB,IAAI,CAAA,IAAA,GAAG,cAAc;QAErB,IAAS,CAAA,SAAA,GAAY,KAAK;AAW/B,QAAA,QAAQ,CAAC,YAAY,CAAC,UAAU,CAAC,aAAa,EAAE,oBAAoB,EAAE,+BAA+B,SAAS,CAAC,oBAAoB,CAAA,CAAE,CAAC;AACtI,QAAA,QAAQ,CAAC,QAAQ,CAAC,UAAU,CAAC,aAAa,EAAE,CAAA,qBAAA,EAAwB,SAAS,CAAC,oBAAoB,CAAA,CAAE,CAAC;QACrG,QAAQ,CAAC,QAAQ,CAAC,UAAU,CAAC,aAAa,EAAE,kCAAkC,CAAC;AAE/E,QAAA,IAAI,CAAC,qBAAqB,GAAG,UAAU,CAAC,mBAAmB,CAAC,SAAS,CAAC,CAAC,KAAc,KAAI;AACvF,YAAA,IAAI,CAAC,SAAS,GAAG,KAAK;YACtB,GAAG,CAAC,YAAY,EAAE;AACpB,SAAC,CAAC;;IAGG,WAAW,GAAA;AAChB,QAAA,IAAI,CAAC,qBAAqB,CAAC,WAAW,EAAE;;AAGnC,IAAA,MAAM,CAAC,KAAc,EAAA;AAC1B,QAAA,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,KAAK,CAAC;;+GA9BvB,4BAA4B,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,YAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,SAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,EAAA,EAAA,KAAA,EAAAC,aAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAA5B,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,4BAA4B,wKAH3B,CAA0F,wFAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,YAAA,EAAA,CAAA,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,mBAAA,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,CAAA,YAAA,EAAA,iBAAA,EAAA,kBAAA,EAAA,IAAA,EAAA,MAAA,EAAA,OAAA,EAAA,UAAA,EAAA,eAAA,EAAA,OAAA,EAAA,OAAA,EAAA,UAAA,EAAA,UAAA,EAAA,SAAA,EAAA,eAAA,CAAA,EAAA,OAAA,EAAA,CAAA,QAAA,EAAA,qBAAA,EAAA,UAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;4FAG3F,4BAA4B,EAAA,UAAA,EAAA,CAAA;kBALxC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,kCAAkC;AAC5C,oBAAA,QAAQ,EAAE,CAA0F,wFAAA,CAAA;AACpG,oBAAA,UAAU,EAAE;AACf,iBAAA;;0BAaI;yCAVI,IAAI,EAAA,CAAA;sBADV,WAAW;uBAAC,WAAW;;AAuCpB,MAAO,cAAkB,SAAQ,SAAS,CAAA;AAS9C,IAAA,WAAA,CAAY,SAAuB,EAAU,UAAsB,EAAU,QAAmB,EAAA;AAC9F,QAAA,KAAK,CAAC,SAAS,EAAE,UAAU,CAAC;QADe,IAAU,CAAA,UAAA,GAAV,UAAU;QAAsB,IAAQ,CAAA,QAAA,GAAR,QAAQ;QAP9E,IAAI,CAAA,IAAA,GAAG,UAAU;AAStB,QAAA,QAAQ,CAAC,YAAY,CAAC,UAAU,CAAC,aAAa,EAAE,oBAAoB,EAAE,eAAe,SAAS,CAAC,oBAAoB,CAAA,CAAE,CAAC;AACtH,QAAA,QAAQ,CAAC,QAAQ,CAAC,UAAU,CAAC,aAAa,EAAE,CAAA,YAAA,EAAe,SAAS,CAAC,oBAAoB,CAAA,CAAE,CAAC;QAC5F,QAAQ,CAAC,QAAQ,CAAC,UAAU,CAAC,aAAa,EAAE,kBAAkB,CAAC;;IAG1D,QAAQ,GAAA;AACb,QAAA,IAAI,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE;YAC3B,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,aAAa,EAAE,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;;AAE1F,QAAA,IAAI,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE;YACrB,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,aAAa,EAAE,WAAW,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAI,EAAA,CAAA,CAAC;YAC5F,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,aAAa,EAAE,WAAW,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAI,EAAA,CAAA,CAAC;YAC5F,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,aAAa,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAI,EAAA,CAAA,CAAC;;;AAIrF,IAAA,OAAO,CAAC,KAAiB,EAAA;AAC9B,QAAA,OAAO,CAAC,YAAY,CAAC,KAAK,CAAC;AAC3B,QAAA,IAAI,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE;YACvB,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC;;QAE/B;;+GAhCS,cAAc,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,YAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,SAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAd,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,cAAc,kMAJb,CAAgH,8GAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;;4FAIjH,cAAc,EAAA,UAAA,EAAA,CAAA;kBAN1B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,kBAAkB;AAC5B,oBAAA,QAAQ,EAAE,CAAgH,8GAAA,CAAA;oBAC1H,eAAe,EAAE,uBAAuB,CAAC,MAAM;AAC/C,oBAAA,UAAU,EAAE;AACf,iBAAA;kIAGQ,IAAI,EAAA,CAAA;sBADV,WAAW;uBAAC,WAAW;gBAIjB,GAAG,EAAA,CAAA;sBADT;gBAGM,MAAM,EAAA,CAAA;sBADZ;;AAmCG,MAAO,sBAAuB,SAAQ,SAAS,CAAA;AAYnD,IAAA,WAAA,CAAmB,SAAuB,EAAE,UAAsB,EAAE,QAAmB,EAAqB,UAAyB,EAAA;AACnI,QAAA,KAAK,CAAC,SAAS,EAAE,UAAU,CAAC;QADX,IAAS,CAAA,SAAA,GAAT,SAAS;QAAgF,IAAU,CAAA,UAAA,GAAV,UAAU;QAV/G,IAAI,CAAA,IAAA,GAAG,UAAU;QAOjB,IAAQ,CAAA,QAAA,GAAY,KAAK;AAK9B,QAAA,QAAQ,CAAC,YAAY,CAAC,UAAU,CAAC,aAAa,EAAE,oBAAoB,EAAE,wBAAwB,SAAS,CAAC,oBAAoB,CAAA,CAAE,CAAC;AAC/H,QAAA,QAAQ,CAAC,QAAQ,CAAC,UAAU,CAAC,aAAa,EAAE,CAAA,qBAAA,EAAwB,SAAS,CAAC,oBAAoB,CAAA,CAAE,CAAC;QACrG,QAAQ,CAAC,QAAQ,CAAC,UAAU,CAAC,aAAa,EAAE,2BAA2B,CAAC;AAExE,QAAA,IAAI,CAAC,qBAAqB,GAAG,UAAU,CAAC,mBAAmB,CAAC,SAAS,CAAC,CAAC,KAAc,KAAI;AACvF,YAAA,IAAI,CAAC,QAAQ,GAAG,KAAK;AACvB,SAAC,CAAC;;IAGG,QAAQ,GAAA;AACb,QAAA,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,IAAI,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,GAAG,CAAC;QAC7D,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,IAAI,IAAI,CAAC,KAAK,CAAC;;IAG5E,WAAW,GAAA;AAChB,QAAA,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,IAAI,IAAI,CAAC,KAAK,CAAC;AACrD,QAAA,IAAI,CAAC,qBAAqB,CAAC,WAAW,EAAE;;AAGnC,IAAA,MAAM,CAAC,KAAc,EAAA;QAC1B,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,IAAI,IAAI,CAAC,KAAK,EAAE,KAAK,EAAE,IAAI,CAAC,GAAG,CAAC;;+GAlCzD,sBAAsB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,YAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,SAAA,EAAA,EAAA,EAAA,KAAA,EAAAA,aAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAtB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,sBAAsB,yMAHrB,CAAyF,uFAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,YAAA,EAAA,CAAA,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,mBAAA,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,CAAA,YAAA,EAAA,iBAAA,EAAA,kBAAA,EAAA,IAAA,EAAA,MAAA,EAAA,OAAA,EAAA,UAAA,EAAA,eAAA,EAAA,OAAA,EAAA,OAAA,EAAA,UAAA,EAAA,UAAA,EAAA,SAAA,EAAA,eAAA,CAAA,EAAA,OAAA,EAAA,CAAA,QAAA,EAAA,qBAAA,EAAA,UAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;4FAG1F,sBAAsB,EAAA,UAAA,EAAA,CAAA;kBALlC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,2BAA2B;AACrC,oBAAA,QAAQ,EAAE,CAAyF,uFAAA,CAAA;AACnG,oBAAA,UAAU,EAAE;AACf,iBAAA;;0BAa2F;yCAVnF,IAAI,EAAA,CAAA;sBADV,WAAW;uBAAC,WAAW;gBAIjB,GAAG,EAAA,CAAA;sBADT;gBAGM,KAAK,EAAA,CAAA;sBADX;;AAoDG,MAAO,oBAAwB,SAAQ,SAAS,CAAA;AASpD,IAAA,WAAA,CAAY,SAAuB,EAAU,UAAsB,EAAU,QAAmB,EAAS,MAAwB,EAAA;AAC/H,QAAA,KAAK,CAAC,SAAS,EAAE,UAAU,CAAC;QADe,IAAU,CAAA,UAAA,GAAV,UAAU;QAAsB,IAAQ,CAAA,QAAA,GAAR,QAAQ;QAAoB,IAAM,CAAA,MAAA,GAAN,MAAM;QAPxG,IAAI,CAAA,IAAA,GAAG,UAAU;AAStB,QAAA,QAAQ,CAAC,YAAY,CAAC,UAAU,CAAC,aAAa,EAAE,oBAAoB,EAAE,sBAAsB,SAAS,CAAC,oBAAoB,CAAA,CAAE,CAAC;;IAGxH,QAAQ,GAAA;AACb,QAAA,IAAI,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE;AACvB,YAAA,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,aAAa,EAAE,2BAA2B,CAAC;;aAC7E;AACL,YAAA,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,aAAa,EAAE,yBAAyB,CAAC;;;IAI7E,UAAU,CAAC,KAAoE,EAAE,GAAM,EAAA;AAC5F,QAAA,IAAI,KAAK,CAAC,QAAQ,KAAK,IAAI,EAAE;AAC3B,YAAA,OAAO,IAAI;;AAEb,QAAA,IAAI,KAAK,CAAC,aAAa,EAAE;AACvB,YAAA,OAAO,KAAK,CAAC,aAAa,CAAC,GAAG,CAAC;;AAEjC,QAAA,OAAO,KAAK;;+GA7BH,oBAAoB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,YAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,SAAA,EAAA,EAAA,EAAA,KAAA,EAAAC,IAAA,CAAA,gBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAApB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,oBAAoB,EAlBnB,YAAA,EAAA,KAAA,EAAA,QAAA,EAAA,yBAAA,EAAA,MAAA,EAAA,EAAA,GAAA,EAAA,KAAA,EAAA,MAAA,EAAA,QAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,WAAA,EAAA,WAAA,EAAA,EAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA;;;;;;;;;;;;;;AAcX,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,YAAA,EAAA,CAAA,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,EAAAC,EAAA,CAAA,mBAAA,EAAA,QAAA,EAAA,SAAA,EAAA,MAAA,EAAA,CAAA,OAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,IAAA,CAAA,iBAAA,EAAA,QAAA,EAAA,2BAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,MAAA,EAAA,MAAA,EAAA,OAAA,EAAA,SAAA,EAAA,MAAA,EAAA,YAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,mBAAA,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,CAAA,sBAAA,EAAA,oBAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,gBAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,cAAA,EAAA,UAAA,EAAA,0BAAA,CAAA,EAAA,OAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,MAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,UAAA,CAAA,EAAA,OAAA,EAAA,CAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,uBAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;;4FAIU,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBApBhC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,yBAAyB;AACnC,oBAAA,QAAQ,EAAE;;;;;;;;;;;;;;AAcX,EAAA,CAAA;oBACC,eAAe,EAAE,uBAAuB,CAAC,MAAM;AAC/C,oBAAA,UAAU,EAAE;AACf,iBAAA;mKAGQ,IAAI,EAAA,CAAA;sBADV,WAAW;uBAAC,WAAW;gBAIjB,GAAG,EAAA,CAAA;sBADT;gBAGM,MAAM,EAAA,CAAA;sBADZ;;;MC/OU,qBAAqB,CAAA;AAChC,IAAA,WAAA,CAAoB,OAAmB,EAAA;QAAnB,IAAO,CAAA,OAAA,GAAP,OAAO;;IAE3B,eAAe,GAAA;AACb,QAAA,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,KAAK,EAAE;;+GAJzB,qBAAqB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;mGAArB,qBAAqB,EAAA,YAAA,EAAA,KAAA,EAAA,QAAA,EAAA,yBAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;4FAArB,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBAJjC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,yBAAyB;AACnC,oBAAA,UAAU,EAAE;AACf,iBAAA;;MAoGY,oBAAoB,CAAA;AAO/B,IAAA,IACI,MAAM,GAAA;QACR,OAAO,IAAI,CAAC,OAAO;;IAGrB,IAAI,MAAM,CAAC,CAAC,EAAA;QACV,IAAI,CAAC,CAAC,EAAE;YACN,IAAI,CAAC,OAAO,GAAG;AACb,gBAAA,QAAQ,EAAE,KAAK;AACf,gBAAA,UAAU,EAAE,KAAK;AACjB,gBAAA,YAAY,EAAE;AACZ,oBAAA,IAAI,EAAE,MAAM;AACb,iBAAA;aACF;;aACI;YACL,IAAI,CAAC,OAAO,GAAG;AACb,gBAAA,QAAQ,EAAE,qBAAqB,CAAC,CAAC,CAAC,QAAQ,CAAC;AAC3C,gBAAA,UAAU,EAAE,qBAAqB,CAAC,CAAC,CAAC,UAAU,CAAC;AAC/C,gBAAA,UAAU,EAAE,CAAC,CAAC,UAAU,IAAI,EAAE;AAC9B,gBAAA,YAAY,EAAE,CAAC,CAAC,YAAY,IAAI;AAC9B,oBAAA,IAAI,EAAE,MAAM;AACb,iBAAA;aACF;AAED,YAAA,IAAI,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,IAAI,KAAK,MAAM,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,OAAO,EAAE;gBACnF,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,OAAO,GAAG,IAAI,CAAC,2BAA2B,EAAE;;;;IAwB5E,WACU,CAAA,iBAAoC,EACrC,MAAwB,EACvB,KAA6B,EAClB,KAAqB,EACrB,aAA2B,EAAA;QAJtC,IAAiB,CAAA,iBAAA,GAAjB,iBAAiB;QAClB,IAAM,CAAA,MAAA,GAAN,MAAM;QACL,IAAK,CAAA,KAAA,GAAL,KAAK;QACM,IAAK,CAAA,KAAA,GAAL,KAAK;QACL,IAAa,CAAA,aAAA,GAAb,aAAa;QAd3B,IAAI,CAAA,IAAA,GAAW,UAAU;QAIzB,IAAY,CAAA,YAAA,GAAY,KAAK;QAC7B,IAAU,CAAA,UAAA,GAAY,KAAK;QAC3B,IAAe,CAAA,eAAA,GAAY,KAAK;AAUrC,QAAA,IAAI,CAAC,qBAAqB,GAAG,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,MAA6B,KAAI;AACrF,YAAA,IAAI,MAAM,CAAC,IAAI,IAAI,MAAM,CAAC,IAAI,CAAC,EAAE,KAAK,IAAI,CAAC,EAAE,EAAE;gBAC7C,IAAI,CAAC,IAAI,GAAG,CAAQ,KAAA,EAAA,MAAM,CAAC,IAAI,CAAC,KAAK,CAAA,CAAE;AACvC,gBAAA,IAAI,CAAC,UAAU,GAAG,IAAI;;iBACjB;AACL,gBAAA,IAAI,CAAC,IAAI,GAAG,UAAU;AACtB,gBAAA,IAAI,CAAC,UAAU,GAAG,KAAK;;AAEzB,YAAA,IAAI,MAAM,CAAC,MAAM,IAAI,MAAM,CAAC,MAAM,CAAC,EAAE,KAAK,IAAI,CAAC,EAAE,EAAE;AACjD,gBAAA,IAAI,CAAC,YAAY,GAAG,IAAI;gBACxB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,KAAK;;iBAC5B;AACL,gBAAA,IAAI,CAAC,YAAY,GAAG,KAAK;AACzB,gBAAA,IAAI,CAAC,MAAM,GAAG,SAAS;;YAEzB,iBAAiB,CAAC,YAAY,EAAE;AAClC,SAAC,CAAC;;IAGG,QAAQ,GAAA;AACb,QAAA,IAAI,IAAI,CAAC,aAAa,EAAE;YACtB,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,aAAa,CAAC,IAAI;;AAEnC,QAAA,IAAI,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,EAAE,KAAK,IAAI,CAAC,WAAW,CAAC,EAAE,EAAE;YACvD,IAAI,CAAC,IAAI,GAAG,CAAQ,KAAA,EAAA,IAAI,CAAC,WAAW,CAAC,KAAK,CAAA,CAAE;AAC5C,YAAA,IAAI,CAAC,UAAU,GAAG,IAAI;AACtB,YAAA,IAAI,CAAC,iBAAiB,CAAC,YAAY,EAAE;;;IAIlC,WAAW,GAAA;AAChB,QAAA,IAAI,CAAC,qBAAqB,CAAC,WAAW,EAAE;;IAGnC,IAAI,GAAA;AACT,QAAA,IAAI,IAAI,CAAC,aAAa,EAAE;AACtB,YAAA,YAAY,CAAC,IAAI,CAAC,aAAa,CAAC;;AAElC,QAAA,IAAI,CAAC,aAAa,GAAG,UAAU,CAAC,MAAK;YACnC,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,SAAS,CAAC;YAC1D,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC;AACtE,YAAA,IAAI,CAAC,iBAAiB,CAAC,YAAY,EAAE;SACtC,EAAE,GAAG,CAAC;;IAGF,iBAAiB,CAAC,KAAY,EAAE,KAAc,EAAA;AACnD,QAAA,OAAO,CAAC,YAAY,CAAC,KAAK,CAAC;AAC3B,QAAA,IAAI,CAAC,eAAe,GAAG,KAAK;AAC5B,QAAA,IAAI,CAAC,iBAAiB,CAAC,YAAY,EAAE;AACrC,QAAA,IAAI,CAAC,QAAQ,CAAC,SAAS,EAAE,CAAC;;AAGrB,IAAA,UAAU,CAAC,MAAY,EAAA;QAC5B,IAAI,YAAY,GAAG,MAAM;AACzB,QAAA,IAAI,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,IAAI,KAAK,MAAM,IAAI,MAAM,EAAE;AACtD,YAAA,IAAI,CAAC,gBAAgB,GAAG,MAAM,CAAC,KAAK,IAAI,IAAI,CAAC,MAAM,CAAC,eAAe;YACnE,IAAI,MAAM,CAAC,SAAS,IAAI,MAAM,CAAC,OAAO,EAAE;AACtC,gBAAA,YAAY,GAAG;oBACb,GAAG,EAAE,QAAQ,CAAC,UAAU,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC;oBAC/C,GAAG,EAAE,QAAQ,CAAC,UAAU,CAAC,QAAQ,CAAC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;iBACxF;;iBACI;AACL,gBAAA,YAAY,GAAG;oBACb,GAAG,EAAE,MAAM,CAAC,GAAG,GAAG,QAAQ,CAAC,OAAO,CAAC,YAAY,EAAE,EAAE,MAAM,CAAC,GAAG,CAAC,GAAG,YAAY,EAAE;oBAC/E,GAAG,EAAE,MAAM,CAAC,GAAG,GAAG,QAAQ,CAAC,OAAO,CAAC,eAAe,EAAE,EAAE,MAAM,CAAC,GAAG,CAAC,GAAG,eAAe,EAAE;iBACtF;;;QAIL,IAAI,YAAY,IAAI,YAAY,CAAC,cAAc,CAAC,OAAO,CAAC,EAAE;AACxD,YAAA,YAAY,GAAG,MAAM,CAAC,KAAK;;AAG7B,QAAA,IAAI,IAAI,CAAC,aAAa,EAAE;AACtB,YAAA,YAAY,CAAC,IAAI,CAAC,aAAa,CAAC;;AAGlC,QAAA,IAAI,CAAC,aAAa,GAAG,UAAU,CAAC,MAAK;AACnC,YAAA,IAAI,YAAY,KAAK,EAAE,EAAE;gBACvB,YAAY,GAAG,SAAS;;AAE1B,YAAA,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,EAAE,YAAY,EAAE,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC;AACvE,YAAA,IAAI,CAAC,iBAAiB,CAAC,YAAY,EAAE;SACtC,EAAE,GAAG,CAAC;;IAGF,WAAW,GAAA;AAChB,QAAA,IAAI,CAAC,MAAM,GAAG,SAAS;AACvB,QAAA,IAAI,CAAC,gBAAgB,GAAG,SAAS;QACjC,IAAI,CAAC,UAAU,EAAE;;AAGX,IAAA,oBAAoB,CAAC,SAAiB,EAAA;QAC5C,IAAI,CAAC,SAAS,EAAE;AACd,YAAA,OAAO,KAAK;;AAEd,QAAA,IAAI,SAAS,KAAK,KAAK,EAAE;AACvB,YAAA,OAAO,MAAM;;AAEf,QAAA,OAAO,KAAK;;IAGN,2BAA2B,GAAA;AACjC,QAAA,MAAM,IAAI,GAAoC;AAC5C,YAAA,EAAE,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE;AAChD,YAAA,EAAE,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE;AACjD,YAAA,EAAE,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE,GAAG,EAAE,CAAC,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE;AACnD,YAAA,EAAE,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE,GAAG,EAAE,CAAC,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE;AACnD,YAAA,EAAE,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,GAAG,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC,EAAE;AACnD,YAAA,EAAE,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE;AAC/C,YAAA,EAAE,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE;AAChD,YAAA,EAAE,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE;AAClD,YAAA,EAAE,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE;AAClD,YAAA,EAAE,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE;SACnD;AACD,QAAA,OAAO,IAAI;;+GAlLF,oBAAoB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,EAAA,EAAA,KAAA,EAAAC,IAAA,CAAA,gBAAA,EAAA,EAAA,EAAA,KAAA,EAAAC,sBAAA,EAAA,EAAA,EAAA,KAAA,EAAAC,cAAA,EAAA,QAAA,EAAA,IAAA,EAAA,EAAA,EAAA,KAAA,EAAAC,EAAA,CAAA,YAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;mGAApB,oBAAoB,EAAA,YAAA,EAAA,KAAA,EAAA,QAAA,EAAA,2BAAA,EAAA,MAAA,EAAA,EAAA,WAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,yBAAA,EAAA,QAAA,CAAA,EAAA,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,UAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EACpB,mBAAmB,EA1FlB,WAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAoFX,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,qBAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,SAAA,EAAA,OAAA,EAAA,KAAA,EAAA,QAAA,EAAA,WAAA,EAAA,aAAA,EAAA,kBAAA,EAAA,YAAA,EAAA,WAAA,EAAA,qBAAA,EAAA,oBAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,OAAA,EAAA,iBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,UAAA,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,QAAA,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,CAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,YAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,cAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAL,EAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,8MAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,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,mBAAA,EAAA,QAAA,EAAA,SAAA,EAAA,MAAA,EAAA,CAAA,OAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAM,IAAA,CAAA,iBAAA,EAAA,QAAA,EAAA,2BAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,MAAA,EAAA,MAAA,EAAA,OAAA,EAAA,SAAA,EAAA,MAAA,EAAA,YAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,EAAA,CAAA,mBAAA,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,CAAA,sBAAA,EAAA,oBAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,gBAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,cAAA,EAAA,UAAA,EAAA,0BAAA,CAAA,EAAA,OAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,UAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,UAAA,EAAA,WAAA,EAAA,OAAA,EAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,YAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,YAAA,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,OAAA,CAAA,EAAA,QAAA,EAAA,CAAA,cAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EA9FU,qBAAqB,EAAA,QAAA,EAAA,yBAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA,CAAA;;4FAmGrB,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBA3FhC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,2BAA2B;AACrC,oBAAA,QAAQ,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAoFX,EAAA,CAAA;oBACC,aAAa,EAAE,iBAAiB,CAAC,IAAI;oBACrC,eAAe,EAAE,uBAAuB,CAAC,MAAM;AAC/C,oBAAA,UAAU,EAAE;AACf,iBAAA;;0BA6DI;;0BACA;yCA3DH,QAAQ,EAAA,CAAA;sBADP,SAAS;uBAAC,mBAAmB;gBAI9B,WAAW,EAAA,CAAA;sBADV;gBAIG,MAAM,EAAA,CAAA;sBADT,KAAK;uBAAC,yBAAyB;;;ACjIlC,MAAM,iBAAiB,GAAG,EAAE;MAoDf,yBAAyB,CAAA;AAGpC,IAAA,IACI,IAAI,GAAA;QACN,OAAO,IAAI,CAAC,KAAK;;IAEnB,IAAI,IAAI,CAAC,IAAY,EAAA;AACnB,QAAA,IAAI,CAAC,KAAK,GAAG,IAAI;AACjB,QAAA,IAAI,CAAC,iBAAiB,CAAC,YAAY,EAAE;QACrC,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,MAAM,EAAE,KAAK,CAAC;QAC5F,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC;QAC5F,IAAI,CAAC,KAAK,CAAC,IAAI,GAAG,IAAI,CAAC,KAAK;;AAI9B,IAAA,IACI,MAAM,GAAA;QACR,OAAO,IAAI,CAAC,OAAO;;IAErB,IAAI,MAAM,CAAC,MAAc,EAAA;AACvB,QAAA,IAAI,CAAC,OAAO,GAAG,MAAM;AACrB,QAAA,IAAI,CAAC,iBAAiB,CAAC,YAAY,EAAE;QACrC,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,MAAM,EAAE,KAAK,CAAC;QAC5F,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC;;AAI9F,IAAA,IACI,QAAQ,GAAA;QACV,OAAO,IAAI,CAAC,SAAS;;IAEvB,IAAI,QAAQ,CAAC,QAAgB,EAAA;AAC3B,QAAA,IAAI,CAAC,SAAS,GAAG,QAAQ;QACzB,IAAI,CAAC,8BAA8B,EAAE;QACrC,IAAI,CAAC,KAAK,CAAC,QAAQ,GAAG,IAAI,CAAC,SAAS;;AAItC,IAAA,IACI,eAAe,GAAA;QACjB,OAAO,IAAI,CAAC,gBAAgB;;IAE9B,IAAI,eAAe,CAAC,eAAyB,EAAA;AAC3C,QAAA,IAAI,CAAC,gBAAgB,GAAG,eAAe;QACvC,IAAI,CAAC,8BAA8B,EAAE;;AAavC,IAAA,WAAA,CAAoB,iBAAoC,EAAS,MAAwB,EAAU,KAA6B,EAAA;QAA5G,IAAiB,CAAA,iBAAA,GAAjB,iBAAiB;QAA4B,IAAM,CAAA,MAAA,GAAN,MAAM;QAA4B,IAAK,CAAA,KAAA,GAAL,KAAK;QA5CxG,IAAK,CAAA,KAAA,GAAW,CAAC;QAYjB,IAAO,CAAA,OAAA,GAAW,CAAC;QAqBX,IAAgB,CAAA,gBAAA,GAAa,EAAE;AAGvC,QAAA,IAAA,CAAA,UAAU,GAAG,IAAI,YAAY,EAA6B;AASxD,QAAA,IAAI,KAAK,IAAI,KAAK,CAAC,OAAO,EAAE;AAC1B,YAAA,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,KAAc,KAAI;gBACvE,IAAI,KAAK,EAAE;AACT,oBAAA,IAAI,CAAC,IAAI,GAAG,CAAC;AACb,oBAAA,IAAI,CAAC,iBAAiB,CAAC,YAAY,EAAE;;AAEzC,aAAC,CAAC;;;IAIC,QAAQ,GAAA;AACb,QAAA,IAAI,CAAC,YAAY,GAAG,IAAI;QACxB,IAAI,CAAC,8BAA8B,EAAE;;IAGhC,WAAW,GAAA;AAChB,QAAA,IAAI,CAAC,iBAAiB,CAAC,WAAW,EAAE;;IAG/B,QAAQ,GAAA;AACb,QAAA,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,EAAE;YACvB;;QAEF,IAAI,CAAC,IAAI,EAAE;QACX,IAAI,CAAC,aAAa,EAAE;;IAGf,YAAY,GAAA;AACjB,QAAA,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE,EAAE;YAC3B;;QAEF,IAAI,CAAC,IAAI,EAAE;QACX,IAAI,CAAC,aAAa,EAAE;;IAGf,eAAe,GAAA;QACpB,OAAO,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,IAAI,CAAC,QAAQ,KAAK,CAAC;;IAGvC,WAAW,GAAA;AAChB,QAAA,MAAM,aAAa,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC;QAChE,OAAO,IAAI,CAAC,IAAI,GAAG,aAAa,IAAI,IAAI,CAAC,QAAQ,KAAK,CAAC;;AAGlD,IAAA,cAAc,CAAC,QAAgB,EAAA;AACpC,QAAA,IAAI,CAAC,IAAI,GAAG,CAAC;AACb,QAAA,IAAI,CAAC,QAAQ,GAAG,QAAQ;QACxB,IAAI,CAAC,aAAa,EAAE;;IAGd,8BAA8B,GAAA;AACpC,QAAA,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE;YACtB;;AAEF,QAAA,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;YAClB,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,eAAe,CAAC,MAAM,KAAK,CAAC,GAAG,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,GAAG,iBAAiB;;QAElG,IAAI,CAAC,wBAAwB,GAAG,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE;AAC5D,QAAA,IAAI,IAAI,CAAC,wBAAwB,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE;YAC/D,IAAI,CAAC,wBAAwB,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC;;AAEnD,QAAA,IAAI,CAAC,wBAAwB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;AACnD,QAAA,IAAI,CAAC,iBAAiB,CAAC,YAAY,EAAE;QACrC,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,MAAM,EAAE,KAAK,CAAC;QAC5F,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC;;IAGtF,aAAa,GAAA;AACnB,QAAA,MAAM,KAAK,GAAG;YACZ,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,MAAM,EAAE,IAAI,CAAC,MAAM;SACpB;AACD,QAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC;QAC3B,IAAI,CAAC,KAAK,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI;QAC3B,IAAI,CAAC,KAAK,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ;QACnC,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,MAAM,EAAE,KAAK,CAAC;QAC5F,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC;QAC5F,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC;;+GAzIrB,yBAAyB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,EAAA,EAAA,KAAA,EAAAL,IAAA,CAAA,gBAAA,EAAA,EAAA,EAAA,KAAA,EAAAC,sBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAzB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,yBAAyB,EAhDxB,YAAA,EAAA,KAAA,EAAA,QAAA,EAAA,8BAAA,EAAA,MAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,MAAA,EAAA,QAAA,EAAA,QAAA,EAAA,UAAA,EAAA,eAAA,EAAA,iBAAA,EAAA,EAAA,OAAA,EAAA,EAAA,UAAA,EAAA,YAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA4CX,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAK,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,EAAAH,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,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,EAAAN,EAAA,CAAA,mBAAA,EAAA,QAAA,EAAA,SAAA,EAAA,MAAA,EAAA,CAAA,OAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAU,IAAA,CAAA,iBAAA,EAAA,QAAA,EAAA,2BAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,MAAA,EAAA,MAAA,EAAA,OAAA,EAAA,SAAA,EAAA,MAAA,EAAA,YAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,SAAA,EAAA,UAAA,EAAA,iBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,UAAA,EAAA,uBAAA,EAAA,uBAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;;4FAIU,yBAAyB,EAAA,UAAA,EAAA,CAAA;kBAlDrC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,8BAA8B;AACxC,oBAAA,QAAQ,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA4CX,EAAA,CAAA;oBACC,eAAe,EAAE,uBAAuB,CAAC,MAAM;AAC/C,oBAAA,UAAU,EAAE;AACf,iBAAA;yJAKK,IAAI,EAAA,CAAA;sBADP;gBAcG,MAAM,EAAA,CAAA;sBADT;gBAaG,QAAQ,EAAA,CAAA;sBADX;gBAYG,eAAe,EAAA,CAAA;sBADlB;gBAWD,UAAU,EAAA,CAAA;sBADT;;;AC3GH;MAgDa,UAAU,CAAA;AAWrB,IAAA,IACI,oBAAoB,GAAA;QACtB,OAAO,IAAI,CAAC,kBAAkB;;IAEhC,IAAI,oBAAoB,CAAC,GAAY,EAAA;AACnC,QAAA,IAAI,CAAC,kBAAkB,GAAG,qBAAqB,CAAC,GAAG,CAAC;;AActD,IAAA,WAAA,CAAmB,MAAwB,EAAA;QAAxB,IAAM,CAAA,MAAA,GAAN,MAAM;QAxBzB,IAAY,CAAA,YAAA,GAAG,EAAE;AAajB,QAAA,IAAA,CAAA,UAAU,GAAG,IAAI,YAAY,EAAE;AAE/B,QAAA,IAAA,CAAA,kBAAkB,GAAG,IAAI,YAAY,EAAE;AAEvC,QAAA,IAAA,CAAA,YAAY,GAAG,IAAI,YAAY,EAAE;QAGjC,IAAiB,CAAA,iBAAA,GAAG,CAAC;;IAMrB,QAAQ,GAAA;AACN,QAAA,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,MAAM,CAAC,YAAY;QACnD,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,oBAAoB,EAAE;;AAGlE,IAAA,WAAW,CAAC,OAAuB,EAAA;QACjC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,IAAI,CAAC;AAC1B,QAAA,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,mBAAmB,EAAE;AAC5C,QAAA,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,UAAU,CAAC;;IAGxD,oBAAoB,GAAA;QAClB,OAAO;AACL,YAAA,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE;AAC1B,YAAA,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE;AAC1B,YAAA,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE;AAC1B,YAAA,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,KAAK,EAAE;SAC7B;;AAGH,IAAA,iBAAiB,CAAC,KAAK,EAAA;AACrB,QAAA,IAAI,CAAC,IAAI,GAAG,CAAC;AACb,QAAA,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC,QAAQ;AAClC,QAAA,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,mBAAmB,EAAE;AAC5C,QAAA,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,UAAU,CAAC;QACtD,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;QAC/B,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC;AAC/C,QAAA,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC;YACrB,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,YAAY,EAAE,IAAI,CAAC,YAAY;AAChC,SAAA,CAAC;;IAGJ,UAAU,CAAC,IAAY,EAAE,KAAkB,EAAA;QACzC,IAAI,KAAK,EAAE;YACT,KAAK,CAAC,cAAc,EAAE;;AAGxB,QAAA,IAAI,CAAC,IAAI,GAAG,IAAI;AAChB,QAAA,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,UAAU,CAAC;QACtD,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;AAC/B,QAAA,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC;YACrB,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,YAAY,EAAE,IAAI,CAAC,YAAY;AAChC,SAAA,CAAC;;IAGJ,UAAU,GAAA;AACR,QAAA,OAAO,IAAI,CAAC,IAAI,KAAK,CAAC;;IAGxB,MAAM,GAAA;AACJ,QAAA,OAAO,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,UAAU;;;AAItC,IAAA,QAAQ,CAAC,GAAW,EAAE,IAAY,EAAE,QAAiB,EAAA;QACnD,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAU;;IAGhD,QAAQ,CAAC,WAAmB,EAAE,UAAkB,EAAA;QAC9C,MAAM,KAAK,GAAgB,EAAE;;QAE7B,IAAI,SAAS,GAAG,CAAC;QACjB,IAAI,OAAO,GAAG,UAAU;AACxB,QAAA,MAAM,UAAU,GAAG,IAAI,CAAC,iBAAiB,GAAG,UAAU;;QAGtD,IAAI,UAAU,EAAE;;YAEd,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,iBAAiB,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC;YAC7E,OAAO,GAAG,SAAS,GAAG,IAAI,CAAC,iBAAiB,GAAG,CAAC;;AAGhD,YAAA,IAAI,OAAO,GAAG,UAAU,EAAE;gBACxB,OAAO,GAAG,UAAU;gBACpB,SAAS,GAAG,OAAO,GAAG,IAAI,CAAC,iBAAiB,GAAG,CAAC;;;;AAKpD,QAAA,KAAK,IAAI,GAAG,GAAG,SAAS,EAAE,GAAG,IAAI,OAAO,EAAE,GAAG,EAAE,EAAE;AAC/C,YAAA,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,GAAG,CAAC,QAAQ,EAAE,EAAE,GAAG,KAAK,WAAW,CAAC;AACpE,YAAA,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC;;AAElB,QAAA,OAAO,KAAK;;IAGd,mBAAmB,GAAA;QACjB,MAAM,UAAU,GAAG,IAAI,CAAC,YAAY,GAAG,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,YAAY,CAAC;QAC7F,OAAO,IAAI,CAAC,GAAG,CAAC,UAAU,IAAI,CAAC,EAAE,CAAC,CAAC;;+GA1H1B,UAAU,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAP,IAAA,CAAA,gBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAV,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,UAAU,EAnCT,YAAA,EAAA,KAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,UAAA,EAAA,YAAA,EAAA,YAAA,EAAA,cAAA,EAAA,UAAA,EAAA,YAAA,EAAA,KAAA,EAAA,OAAA,EAAA,oBAAA,EAAA,sBAAA,EAAA,EAAA,OAAA,EAAA,EAAA,UAAA,EAAA,YAAA,EAAA,kBAAA,EAAA,oBAAA,EAAA,YAAA,EAAA,cAAA,EAAA,EAAA,aAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA8BX,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,CAAA,gkCAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAQ,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,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,EAAAA,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,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,EAAAL,IAAA,CAAA,iBAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,IAAA,EAAA,MAAA,EAAA,aAAA,EAAA,UAAA,EAAA,cAAA,EAAA,UAAA,EAAA,cAAA,EAAA,eAAA,EAAA,aAAA,EAAA,aAAA,EAAA,aAAA,EAAA,mBAAA,EAAA,OAAA,EAAA,UAAA,EAAA,SAAA,CAAA,EAAA,OAAA,EAAA,CAAA,UAAA,EAAA,iBAAA,EAAA,aAAA,EAAA,cAAA,EAAA,QAAA,EAAA,QAAA,CAAA,EAAA,CAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA,CAAA;;4FAKU,UAAU,EAAA,UAAA,EAAA,CAAA;kBArCtB,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,iBAAiB,EACjB,QAAA,EAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA8BX,EAAA,CAAA,EAAA,aAAA,EAEgB,iBAAiB,CAAC,IAAI,EAAA,UAAA,EACzB,KAAK,EAAA,MAAA,EAAA,CAAA,gkCAAA,CAAA,EAAA;uFAInB,IAAI,EAAA,CAAA;sBADH;gBAGD,UAAU,EAAA,CAAA;sBADT;gBAGD,YAAY,EAAA,CAAA;sBADX;gBAGD,UAAU,EAAA,CAAA;sBADT;gBAGD,KAAK,EAAA,CAAA;sBADJ;gBAGG,oBAAoB,EAAA,CAAA;sBADvB;gBAQD,UAAU,EAAA,CAAA;sBADT;gBAGD,kBAAkB,EAAA,CAAA;sBADjB;gBAGD,YAAY,EAAA,CAAA;sBADX;;;ACnEH;AACO,MAAM,iBAAiB,GAAG;AAC1B,MAAM,cAAc,GAAG;AACvB,MAAM,cAAc,GAAG;AACvB,MAAM,QAAQ,GAAG;AAOlB,MAAO,sBAAuB,SAAQ,iBAAiB,CAAA;+GAAhD,sBAAsB,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;mGAAtB,sBAAsB,EAAA,YAAA,EAAA,KAAA,EAAA,QAAA,EAAA,0BAAA,EAAA,MAAA,EAAA,EAAA,OAAA,EAAA,CAAA,wBAAA,EAAA,SAAA,CAAA,EAAA,EAAA,SAAA,EAHpB,CAAC,EAAE,OAAO,EAAE,eAAe,EAAE,WAAW,EAAE,sBAAsB,EAAE,CAAC,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;4FAGrE,sBAAsB,EAAA,UAAA,EAAA,CAAA;kBALlC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,0BAA0B;oBACpC,SAAS,EAAE,CAAC,EAAE,OAAO,EAAE,eAAe,EAAE,WAAW,EAAwB,sBAAA,EAAE,CAAC;AAC9E,oBAAA,UAAU,EAAE;AACf,iBAAA;8BAKC,OAAO,EAAA,CAAA;sBADN,KAAK;uBAAC,wBAAwB;;AAS3B,MAAO,gBAAoB,SAAQ,cAAiB,CAAA;+GAA7C,gBAAgB,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;mGAAhB,gBAAgB,EAAA,YAAA,EAAA,KAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,EAAA,OAAA,EAAA,CAAA,yBAAA,EAAA,SAAA,CAAA,EAAA,EAAA,SAAA,EAHd,CAAC,EAAE,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,gBAAgB,EAAE,CAAC,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;4FAGzD,gBAAgB,EAAA,UAAA,EAAA,CAAA;kBAL5B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,oBAAoB;oBAC9B,SAAS,EAAE,CAAC,EAAE,OAAO,EAAE,SAAS,EAAE,WAAW,EAAkB,gBAAA,EAAE,CAAC;AAClE,oBAAA,UAAU,EAAE;AACf,iBAAA;8BAKC,OAAO,EAAA,CAAA;sBADN,KAAK;uBAAC,yBAAyB;;AAU5B,MAAO,mBAAoB,SAAQ,cAAc,CAAA;AANvD,IAAA,WAAA,GAAA;;QAQS,IAAQ,CAAA,QAAA,GAAG,wBAAwB;QAEnC,IAAI,CAAA,IAAA,GAAG,KAAK;AACpB;+GALY,mBAAmB,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;mGAAnB,mBAAmB,EAAA,YAAA,EAAA,KAAA,EAAA,QAAA,EAAA,wBAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,OAAA,EAAA,eAAA,EAAA,WAAA,EAAA,WAAA,EAAA,EAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,6CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,aAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;;4FAAnB,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAN/B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,wBAAwB;AAClC,oBAAA,QAAQ,EAAE,gBAAgB;oBAC1B,eAAe,EAAE,uBAAuB,CAAC,MAAM;AAC/C,oBAAA,UAAU,EAAE;AACf,iBAAA;8BAGQ,QAAQ,EAAA,CAAA;sBADd,WAAW;uBAAC,OAAO;gBAGb,IAAI,EAAA,CAAA;sBADV,WAAW;uBAAC,WAAW;;AAUpB,MAAO,aAAc,SAAQ,QAAQ,CAAA;AAN3C,IAAA,WAAA,GAAA;;QAQS,IAAQ,CAAA,QAAA,GAAG,iBAAiB;QAE5B,IAAI,CAAA,IAAA,GAAG,KAAK;AACpB;+GALY,aAAa,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;mGAAb,aAAa,EAAA,YAAA,EAAA,KAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,OAAA,EAAA,eAAA,EAAA,WAAA,EAAA,WAAA,EAAA,EAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,6CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,aAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;;4FAAb,aAAa,EAAA,UAAA,EAAA,CAAA;kBANzB,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,iBAAiB;AAC3B,oBAAA,QAAQ,EAAE,gBAAgB;oBAC1B,eAAe,EAAE,uBAAuB,CAAC,MAAM;AAC/C,oBAAA,UAAU,EAAE;AACf,iBAAA;8BAGQ,QAAQ,EAAA,CAAA;sBADd,WAAW;uBAAC,OAAO;gBAGb,IAAI,EAAA,CAAA;sBADV,WAAW;uBAAC,WAAW;;;MCrCJ,0BAA0B,CAAA;AAS/C;MAEY,0BAA0B,CAAA;AACrC,IAAA,WAAA,CAAoB,OAAY,EAAE,EAAA;QAAd,IAAI,CAAA,IAAA,GAAJ,IAAI;;AAEjB,IAAA,eAAe,CACpB,IAAyD,EACzD,MAA2D,EAC3D,IAAA,GAAe,CAAC,EAChB,QAAgB,EAChB,YAAqB,EACrB,aAAmB,EAAA;QAEnB,IAAI,GAAG,GAAQ,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC;AAC3C,QAAA,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC,EAAE;YACpB,IAAI,YAAY,EAAE;AAChB,gBAAA,GAAG,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAA,CAAE,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,YAAY,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;;YAEhI,IAAI,MAAM,EAAE;AACV,gBAAA,MAAM,KAAK,GAAG,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,qBAAqB,EAAE,MAAM,CAAC,GAAG,MAAM,CAAC,KAAK;AACjH,gBAAA,GAAG,GAAG,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC;;YAE3D,IAAI,IAAI,EAAE;gBACR,GAAG,GAAG,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,KAAK,KAAK,MAAM,CAAC,CAAC;;AAErE,YAAA,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE;AACxD,gBAAA,GAAG,GAAG,GAAG,CAAC,KAAK,CAAC,IAAI,GAAG,QAAQ,EAAE,CAAC,IAAI,GAAG,CAAC,IAAI,QAAQ,CAAC;;;AAG3D,QAAA,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,GAAG,EAAE,KAAK,EAAE,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;;AAEvD;AAEK,MAAO,uBAA2B,SAAQ,UAAa,CAAA;AAM3D,IAAA,IAAI,YAAY,GAAA;AACd,QAAA,OAAO,IAAI,CAAC,KAAK,KAAK,CAAC;;AAGzB,IAAA,IAAI,cAAc,GAAA;AAChB,QAAA,OAAO,IAAI,CAAC,OAAO,KAAK,CAAC;;AAG3B,IAAA,WAAA,CAAoB,YAAqC,EAAU,KAA6B,EAAU,GAAsB,EAAA;AAC9H,QAAA,KAAK,EAAE;QADW,IAAY,CAAA,YAAA,GAAZ,YAAY;QAAmC,IAAK,CAAA,KAAA,GAAL,KAAK;QAAkC,IAAG,CAAA,GAAA,GAAH,GAAG;QAbtG,IAAK,CAAA,KAAA,GAAG,CAAC;QACT,IAAO,CAAA,OAAA,GAAG,CAAC;QACX,IAAO,CAAA,OAAA,GAAG,KAAK;QACf,IAAQ,CAAA,QAAA,GAAG,IAAI;;IAcf,OAAO,GAAA;QACZ,MAAM,kBAAkB,GAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC;AACpD,QAAA,OAAO,KAAK,CAAC,GAAG,kBAAkB,CAAC,CAAC,IAAI,CACtC,SAAS,CAAC,IAAI,CAAC,EACf,SAAS,CAAC,MAAK;AACb,YAAA,IAAI,CAAC,QAAQ,GAAG,KAAK;AACrB,YAAA,IAAI,CAAC,OAAO,GAAG,IAAI;AACnB,YAAA,OAAO,IAAI,CAAC,YAAY,CAAC,eAAe,CACtC,IAAI,CAAC,KAAK,CAAC,IAAI,EACf,IAAI,CAAC,KAAK,CAAC,MAAM,EACjB,IAAI,CAAC,KAAK,CAAC,IAAI,EACf,IAAI,CAAC,KAAK,CAAC,QAAQ,EACnB,IAAI,CAAC,KAAK,CAAC,YAAY,EACvB,IAAI,CAAC,KAAK,CAAC,aAAa,CACzB;AACH,SAAC,CAAC,EACF,GAAG,CAAC,CAAC,IAAqC,KAAI;AAC5C,YAAA,IAAI,CAAC,OAAO,GAAG,KAAK;AACpB,YAAA,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK;YACvB,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM;YAClC,UAAU,CAAC,MAAK;AACd,gBAAA,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE;AACzB,aAAC,CAAC;YACF,OAAO,IAAI,CAAC,OAAO;AACrB,SAAC,CAAC,EACF,UAAU,CAAC,CAAC,KAAK,KAAI;AACnB,YAAA,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;AACrB,YAAA,IAAI,CAAC,OAAO,GAAG,KAAK;AACpB,YAAA,OAAO,EAAE,CAAC,IAAI,CAAC;SAChB,CAAC,CACH;;AAGI,IAAA,UAAU;AAClB;;AC/EK,MAAO,SAAa,SAAQ,QAAW,CAAA;+GAAhC,SAAS,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;mGAAT,SAAS,EAAA,YAAA,EAAA,KAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,SAAA,EAHP,CAAC,EAAE,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,SAAS,EAAE,CAAC,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,kwBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,CAAA,62UAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,aAAA,EAAA,QAAA,EAAA,aAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA,CAAA;;4FAGlD,SAAS,EAAA,UAAA,EAAA,CAAA;kBATrB,SAAS;+BACI,mBAAmB,EAAA,QAAA,EACnB,kBAAkB,EAEb,aAAA,EAAA,iBAAiB,CAAC,IAAI,EAAA,eAAA,EACpB,uBAAuB,CAAC,MAAM,EAAA,SAAA,EACpC,CAAC,EAAE,OAAO,EAAE,SAAS,EAAE,WAAW,EAAW,SAAA,EAAE,CAAC,EAAA,UAAA,EAC/C,KAAK,EAAA,MAAA,EAAA,CAAA,62UAAA,CAAA,EAAA;;MAUR,wBAAwB,CAAA;+GAAxB,wBAAwB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;mGAAxB,wBAAwB,EAAA,YAAA,EAAA,KAAA,EAAA,QAAA,EAAA,6BAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;4FAAxB,wBAAwB,EAAA,UAAA,EAAA,CAAA;kBAJpC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,6BAA6B;AACvC,oBAAA,UAAU,EAAE;AACf,iBAAA;;MAOY,6BAA6B,CAAA;+GAA7B,6BAA6B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;mGAA7B,6BAA6B,EAAA,YAAA,EAAA,KAAA,EAAA,QAAA,EAAA,mCAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;4FAA7B,6BAA6B,EAAA,UAAA,EAAA,CAAA;kBAJzC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,mCAAmC;AAC7C,oBAAA,UAAU,EAAE;AACf,iBAAA;;MAOY,6BAA6B,CAAA;+GAA7B,6BAA6B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;mGAA7B,6BAA6B,EAAA,YAAA,EAAA,KAAA,EAAA,QAAA,EAAA,mCAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;4FAA7B,6BAA6B,EAAA,UAAA,EAAA,CAAA;kBAJzC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,mCAAmC;AAC7C,oBAAA,UAAU,EAAE;AACf,iBAAA;;MAOY,6BAA6B,CAAA;+GAA7B,6BAA6B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;mGAA7B,6BAA6B,EAAA,YAAA,EAAA,KAAA,EAAA,QAAA,EAAA,mCAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;4FAA7B,6BAA6B,EAAA,UAAA,EAAA,CAAA;kBAJzC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,mCAAmC;AAC7C,oBAAA,UAAU,EAAE;AACf,iBAAA;;MAOY,iCAAiC,CAAA;+GAAjC,iCAAiC,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;mGAAjC,iCAAiC,EAAA,YAAA,EAAA,KAAA,EAAA,QAAA,EAAA,wCAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;4FAAjC,iCAAiC,EAAA,UAAA,EAAA,CAAA;kBAJ7C,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,wCAAwC;AAClD,oBAAA,UAAU,EAAE;AACf,iBAAA;;MA6GY,iBAAiB,CAAA;IAqB5B,IACI,YAAY,CAAC,CAAU,EAAA;AACzB,QAAA,IAAI,CAAC,aAAa,GAAG,qBAAqB,CAAC,CAAC,CAAC;;AAE/C,IAAA,IAAI,YAAY,GAAA;QACd,OAAO,IAAI,CAAC,aAAa;;IAI3B,IACI,eAAe,CAAC,CAAU,EAAA;AAC5B,QAAA,IAAI,CAAC,gBAAgB,GAAG,qBAAqB,CAAC,CAAC,CAAC;;AAElD,IAAA,IAAI,eAAe,GAAA;QACjB,OAAO,IAAI,CAAC,gBAAgB;;IAI9B,IACI,gBAAgB,CAAC,CAAU,EAAA;AAC7B,QAAA,IAAI,CAAC,iBAAiB,GAAG,qBAAqB,CAAC,CAAC,CAAC;AACjD,QAAA,IAAI,CAAC,6BAA6B,GAAG,IAAI,CAAC,iBAAiB;;AAE7D,IAAA,IAAI,gBAAgB,GAAA;QAClB,OAAO,IAAI,CAAC,iBAAiB;;IAI/B,IACI,KAAK,CAAC,CAAU,EAAA;AAClB,QAAA,IAAI,CAAC,MAAM,GAAG,qBAAqB,CAAC,CAAC,CAAC;;AAExC,IAAA,IAAI,KAAK,GAAA;QACP,OAAO,IAAI,CAAC,MAAM;;AASpB,IAAA,IACI,KAAK,GAAA;QACP,OAAO,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,UAAU,CAAC,YAAY;;AAGxD,IAAA,IACI,YAAY,GAAA;AACd,QAAA,OAAO,IAAI,CAAC,OAAO,KAAK,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC;;AAGrE,IAAA,WAAA,CAAmB,MAAwB,EAAU,GAAsB,EAAS,KAA6B,EAAA;QAA9F,IAAM,CAAA,MAAA,GAAN,MAAM;QAA4B,IAAG,CAAA,GAAA,GAAH,GAAG;QAA4B,IAAK,CAAA,KAAA,GAAL,KAAK;QAvEzF,IAA6B,CAAA,6BAAA,GAAY,KAAK;QAyDvC,IAAO,CAAA,OAAA,GAAY,IAAI;QAe5B,MAAM,CAAC,mFAAmF,CAAC;;AAGtF,IAAA,WAAW,CAAC,OAAsB,EAAA;AACvC,QAAA,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,eAAe,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,YAAY;AAC/E,QAAA,IAAI,CAAC,GAAG,CAAC,aAAa,EAAE;QACxB,IAAI,OAAO,CAAC,eAAe,IAAI,OAAO,CAAC,eAAe,CAAC,YAAY,EAAE;AACnE,YAAA,IAAI,CAAC,OAAO,GAAG,KAAK;AACpB,YAAA,IAAI,CAAC,UAAU,GAAG,IAAI,uBAAuB,CAAI,IAAI,CAAC,eAAe,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,GAAG,CAAC;AAC5F,YAAA,IAAI,CAAC,GAAG,CAAC,aAAa,EAAE;;QAE1B,IAAI,OAAO,CAAC,aAAa,IAAI,OAAO,CAAC,aAAa,CAAC,YAAY,EAAE;AAC/D,YAAA,IAAI,CAAC,IAAI,CAAC,yBAAyB,EAAE;AACnC,gBAAA,IAAI,CAAC,yBAAyB,GAAG,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC,MAAW,KAAI;AAC5E,oBAAA,IAAI,CAAC,KAAK,CAAC,aAAa,GAAG,MAAM;AACjC,oBAAA,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,YAAY,EAAE,IAAI,CAAC,KAAK,CAAC,YAAY,EAAE,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;AACpH,oBAAA,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE;AACzB,iBAAC,CAAC;;;;IAKD,WAAW,GAAA;AAChB,QAAA,IAAI,IAAI,CAAC,yBAAyB,EAAE;AAClC,YAAA,IAAI,CAAC,yBAAyB,CAAC,WAAW,EAAE;;;IAIzC,kBAAkB,GAAA;QACvB,IAAI,IAAI,CAAC,iBAAiB,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,IAAI,EAAE;AAC1D,YAAA,IAAI,CAAC,iBAAiB,CAAC,IAAI,GAAG,CAAC;;QAEjC,IAAI,IAAI,CAAC,iBAAiB,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,QAAQ,EAAE;AAC9D,YAAA,IAAI,CAAC,iBAAiB,CAAC,QAAQ,GAAG,EAAE;;QAEtC,IAAI,IAAI,CAAC,iBAAiB,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,eAAe,EAAE;AACrE,YAAA,IAAI,CAAC,iBAAiB,CAAC,eAAe,GAAG,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,CAAC;;QAE5D,IAAI,CAAC,KAAK,CAAC,IAAI,GAAG,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,iBAAiB,CAAC,IAAI,GAAG,SAAS;QAClF,IAAI,CAAC,KAAK,CAAC,QAAQ,GAAG,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,iBAAiB,CAAC,QAAQ,GAAG,SAAS;AAC1F,QAAA,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE;;AAGlB,IAAA,cAAc,CAAC,IAAY,EAAA;AAChC,QAAA,IAAI,CAAC,KAAK,CAAC,YAAY,GAAG,IAAI;QAC9B,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,EAAE,IAAI,CAAC;AAC7B,QAAA,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,YAAY,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;;+GAxHxF,iBAAiB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAK,IAAA,CAAA,gBAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,EAAA,EAAA,KAAA,EAAAC,sBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAjB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,iBAAiB,EAPf,YAAA,EAAA,KAAA,EAAA,QAAA,EAAA,qBAAA,EAAA,MAAA,EAAA,EAAA,eAAA,EAAA,iBAAA,EAAA,OAAA,EAAA,SAAA,EAAA,gBAAA,EAAA,kBAAA,EAAA,aAAA,EAAA,eAAA,EAAA,iBAAA,EAAA,mBAAA,EAAA,aAAA,EAAA,eAAA,EAAA,WAAA,EAAA,aAAA,EAAA,aAAA,EAAA,eAAA,EAAA,YAAA,EAAA,cAAA,EAAA,eAAA,EAAA,iBAAA,EAAA,gBAAA,EAAA,kBAAA,EAAA,KAAA,EAAA,OAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,4BAAA,EAAA,oCAAA,EAAA,aAAA,EAAA,YAAA,EAAA,eAAA,EAAA,mBAAA,EAAA,EAAA,EAAA,SAAA,EAAA;YACP,sBAAsB;AACtB,YAAA,EAAE,OAAO,EAAE,uBAAuB,EAAE,QAAQ,EAAE,4BAA4B,EAAE;AAC5E,YAAA,EAAE,OAAO,EAAE,0BAA0B,EAAE,QAAQ,EAAE,wBAAwB,EAAE;SAC9E,EArGS,aAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA6FX,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,CAAA,62UAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAN,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,EAAAA,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,EAAAN,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,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,EAAAU,IAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,OAAA,EAAA,MAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAT,IAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,MAAA,EAAA,UAAA,EAAA,aAAA,EAAA,YAAA,EAAA,OAAA,EAAA,OAAA,EAAA,eAAA,EAAA,cAAA,EAAA,cAAA,EAAA,MAAA,EAAA,UAAA,EAAA,aAAA,EAAA,kBAAA,EAAA,iBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,EAAA,aAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAjIU,SAAS,EAAA,QAAA,EAAA,mBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAY,iBAAA,EAAA,QAAA,EAAA,qBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,uBAAA,EAAA,QAAA,EAAA,2BAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,mBAAA,EAAA,QAAA,EAAA,uBAAA,EAAA,MAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,sBAAA,EAAA,QAAA,EAAA,0BAAA,EAAA,MAAA,EAAA,CAAA,wBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,gBAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,yBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,oBAAA,EAAA,QAAA,EAAA,2BAAA,EAAA,MAAA,EAAA,CAAA,aAAA,EAAA,yBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,cAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,oBAAA,EAAA,QAAA,EAAA,yBAAA,EAAA,MAAA,EAAA,CAAA,KAAA,EAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,yBAAA,EAAA,QAAA,EAAA,+BAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,oBAAA,EAAA,QAAA,EAAA,yBAAA,EAAA,MAAA,EAAA,CAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,cAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,KAAA,EAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,mBAAA,EAAA,QAAA,EAAA,wBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,aAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,yBAAA,EAAA,QAAA,EAAA,8BAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,QAAA,EAAA,UAAA,EAAA,iBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,YAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,sBAAA,EAAA,QAAA,EAAA,2BAAA,EAAA,MAAA,EAAA,CAAA,KAAA,EAAA,OAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,4BAAA,EAAA,QAAA,EAAA,kCAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,aAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,OAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA,CAAA;;4FA4IT,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBA1G7B,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,qBAAqB,EACrB,QAAA,EAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA6FX,EAAA,CAAA,EAAA,aAAA,EAEgB,iBAAiB,CAAC,IAAI,mBACpB,uBAAuB,CAAC,MAAM,EACpC,SAAA,EAAA;wBACP,sBAAsB;AACtB,wBAAA,EAAE,OAAO,EAAE,uBAAuB,EAAE,QAAQ,EAAE,4BAA4B,EAAE;AAC5E,wBAAA,EAAE,OAAO,EAAE,0BAA0B,EAAE,QAAQ,EAAE,wBAAwB,EAAE;AAC9E,qBAAA,EAAA,UAAA,EACW,KAAK,EAAA,MAAA,EAAA,CAAA,62UAAA,CAAA,EAAA;yJAInB,6BAA6B,EAAA,CAAA;sBAD5B,WAAW;uBAAC,4BAA4B;gBAIzC,eAAe,EAAA,CAAA;sBADd;gBAGD,OAAO,EAAA,CAAA;sBADN;gBAGD,gBAAgB,EAAA,CAAA;sBADf;gBAGD,aAAa,EAAA,CAAA;sBADZ;gBAGD,iBAAiB,EAAA,CAAA;sBADhB;gBAGD,aAAa,EAAA,CAAA;sBADZ;gBAGD,WAAW,EAAA,CAAA;sBADV;gBAGD,aAAa,EAAA,CAAA;sBADZ;gBAIG,YAAY,EAAA,CAAA;sBADf;gBAUG,eAAe,EAAA,CAAA;sBADlB;gBAUG,gBAAgB,EAAA,CAAA;sBADnB;gBAWG,KAAK,EAAA,CAAA;sBADR;gBAeG,KAAK,EAAA,CAAA;sBADR,WAAW;uBAAC,aAAa;gBAMtB,YAAY,EAAA,CAAA;sBADf,WAAW;uBAAC,eAAe;;;MC7HjB,qBAAqB,CAAA;+GAArB,qBAAqB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;AAArB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,qBAAqB,iBA7B9B,SAAS;YACT,iBAAiB;YACjB,uBAAuB;YACvB,mBAAmB;YACnB,6BAA6B;YAC7B,iCAAiC;YACjC,sBAAsB;YACtB,gBAAgB;YAChB,oBAAoB;YACpB,cAAc;YACd,oBAAoB;YACpB,yBAAyB;YACzB,oBAAoB;YACpB,cAAc;YACd,mBAAmB;YACnB,aAAa;YACb,qBAAqB;YACrB,yBAAyB;YACzB,6BAA6B;YAC7B,sBAAsB;YACtB,4BAA4B;YAC5B,aAAa;YACb,iBAAiB;YACjB,wBAAwB;YACxB,6BAA6B;AAC7B,YAAA,UAAU,aArEV,oBAAoB;YACpB,cAAc;YACd,YAAY;YACZ,WAAW;YACX,gBAAgB;YAChB,gBAAgB;YAChB,kBAAkB;YAClB,oBAAoB;YACpB,iBAAiB;YACjB,eAAe;YACf,mBAAmB;YACnB,gBAAgB;YAChB,kBAAkB;AAClB,YAAA,gBAAgB,aAGhB,SAAS;YACT,iBAAiB;YACjB,uBAAuB;YACvB,mBAAmB;YACnB,6BAA6B;YAC7B,iCAAiC;YACjC,sBAAsB;YACtB,gBAAgB;YAChB,oBAAoB;YACpB,cAAc;YACd,oBAAoB;YACpB,yBAAyB;YACzB,oBAAoB;YACpB,cAAc;YACd,mBAAmB;YACnB,aAAa;YACb,qBAAqB;YACrB,yBAAyB;YACzB,6BAA6B;YAC7B,sBAAsB;YACtB,4BAA4B;YAC5B,aAAa;YACb,iBAAiB;YACjB,wBAAwB;YACxB,6BAA6B;YAC7B,UAAU,CAAA,EAAA,CAAA,CAAA;AAgCD,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,qBAAqB,EAFrB,SAAA,EAAA,CAAC,sBAAsB,CAAC,YAvEjC,oBAAoB;YACpB,cAAc;YACd,YAAY;YACZ,WAAW;YACX,gBAAgB;YAChB,gBAAgB;YAChB,kBAAkB;YAClB,oBAAoB;YACpB,iBAAiB;YACjB,eAAe;YACf,mBAAmB;YACnB,gBAAgB;YAChB,kBAAkB;YAClB,gBAAgB,CAAA,EAAA,CAAA,CAAA;;4FA4DP,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBA3EjC,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,OAAO,EAAE;wBACP,oBAAoB;wBACpB,cAAc;wBACd,YAAY;wBACZ,WAAW;wBACX,gBAAgB;wBAChB,gBAAgB;wBAChB,kBAAkB;wBAClB,oBAAoB;wBACpB,iBAAiB;wBACjB,eAAe;wBACf,mBAAmB;wBACnB,gBAAgB;wBAChB,kBAAkB;wBAClB,gBAAgB;AACjB,qBAAA;AACD,oBAAA,OAAO,EAAE;wBACP,SAAS;wBACT,iBAAiB;wBACjB,uBAAuB;wBACvB,mBAAmB;wBACnB,6BAA6B;wBAC7B,iCAAiC;wBACjC,sBAAsB;wBACtB,gBAAgB;wBAChB,oBAAoB;wBACpB,cAAc;wBACd,oBAAoB;wBACpB,yBAAyB;wBACzB,oBAAoB;wBACpB,cAAc;wBACd,mBAAmB;wBACnB,aAAa;wBACb,qBAAqB;wBACrB,yBAAyB;wBACzB,6BAA6B;wBAC7B,sBAAsB;wBACtB,4BAA4B;wBAC5B,aAAa;wBACb,iBAAiB;wBACjB,wBAAwB;wBACxB,6BAA6B;wBAC7B,UAAU;AACX,qBAAA;AACD,oBAAA,YAAY,EAAE;wBACZ,SAAS;wBACT,iBAAiB;wBACjB,uBAAuB;wBACvB,mBAAmB;wBACnB,6BAA6B;wBAC7B,iCAAiC;wBACjC,sBAAsB;wBACtB,gBAAgB;wBAChB,oBAAoB;wBACpB,cAAc;wBACd,oBAAoB;wBACpB,yBAAyB;wBACzB,oBAAoB;wBACpB,cAAc;wBACd,mBAAmB;wBACnB,aAAa;wBACb,qBAAqB;wBACrB,yBAAyB;wBACzB,6BAA6B;wBAC7B,sBAAsB;wBACtB,4BAA4B;wBAC5B,aAAa;wBACb,iBAAiB;wBACjB,wBAAwB;wBACxB,6BAA6B;wBAC7B,UAAU;AACX,qBAAA;oBACD,SAAS,EAAE,CAAC,sBAAsB,CAAC;AACpC,iBAAA;;;ACnHD;;AAEG;;;;"}
|
|
1
|
+
{"version":3,"file":"novo-elements-elements-simple-table.mjs","sources":["../../../projects/novo-elements/src/elements/simple-table/activity-table-renderers.ts","../../../projects/novo-elements/src/elements/simple-table/state.ts","../../../projects/novo-elements/src/elements/simple-table/sort.ts","../../../projects/novo-elements/src/elements/simple-table/cell.ts","../../../projects/novo-elements/src/elements/simple-table/cell-header.ts","../../../projects/novo-elements/src/elements/simple-table/pagination.ts","../../../projects/novo-elements/src/elements/simple-table/PaginationOld.ts","../../../projects/novo-elements/src/elements/simple-table/row.ts","../../../projects/novo-elements/src/elements/simple-table/table-source.ts","../../../projects/novo-elements/src/elements/simple-table/table.ts","../../../projects/novo-elements/src/elements/simple-table/simple-table.module.ts","../../../projects/novo-elements/src/elements/simple-table/novo-elements-elements-simple-table.ts"],"sourcesContent":["export class ActivityTableRenderers {\n static propertyRenderer<T>(prop: string): Function {\n const ret = (data: T): string => {\n // TODO - allow for dots and sub props\n return data[prop];\n };\n return ret;\n }\n\n static dateRenderer<T>(prop: string): Function {\n const ret = (data: T): string => {\n return data[prop] ? new Date(data[prop]).toLocaleDateString() : '';\n };\n return ret;\n }\n}\n","import { EventEmitter, Injectable } from '@angular/core';\nimport { NovoSimpleTableChange } from './interfaces';\n\n@Injectable()\nexport class NovoActivityTableState {\n id: number = Math.random();\n sort: { id: string; value: string } = undefined;\n filter: { id: string; value: string } = undefined;\n page: number = 0;\n pageSize: number = undefined;\n globalSearch: string = undefined;\n selectedRows: Map<string, object> = new Map<string, object>();\n outsideFilter: any;\n\n updates: EventEmitter<NovoSimpleTableChange> = new EventEmitter<NovoSimpleTableChange>();\n onReset: EventEmitter<boolean> = new EventEmitter<boolean>();\n\n get userFiltered(): boolean {\n return !!(this.filter || this.sort || this.globalSearch || this.outsideFilter);\n }\n\n public reset(fireUpdate: boolean = true, persistUserFilters?: boolean): void {\n if (!persistUserFilters) {\n this.sort = undefined;\n this.globalSearch = undefined;\n this.filter = undefined;\n }\n this.page = 0;\n this.selectedRows.clear();\n this.onReset.emit(true);\n if (fireUpdate) {\n this.updates.emit({\n sort: this.sort,\n filter: this.filter,\n globalSearch: this.globalSearch,\n });\n }\n }\n}\n","import { Directive, EventEmitter, OnDestroy, Output } from '@angular/core';\nimport { Helpers } from 'novo-elements/utils';\nimport { NovoActivityTableState } from './state';\n\n@Directive({\n selector: '[novoSortFilter]',\n standalone: false,\n})\nexport class NovoSortFilter {\n constructor(private state: NovoActivityTableState) {}\n\n public filter(id: string, value: any, transform: Function): void {\n let filter;\n if (!Helpers.isBlank(value)) {\n filter = { id, value, transform };\n } else {\n filter = undefined;\n }\n this.state.filter = filter;\n this.state.reset(false, true);\n this.state.updates.next({ filter, sort: this.state.sort });\n }\n\n public sort(id: string, value: string, transform: Function): void {\n const sort = { id, value, transform };\n this.state.sort = sort;\n this.state.reset(false, true);\n this.state.updates.next({ sort, filter: this.state.filter });\n }\n}\n\n@Directive({\n selector: '[novoSelection]',\n standalone: false,\n})\nexport class NovoSelection implements OnDestroy {\n @Output()\n public novoSelectAllToggle = new EventEmitter<boolean>();\n\n public allRows = new Map<string, object>();\n private throttleTimeout: any;\n\n constructor(public state: NovoActivityTableState) {}\n\n public register(id, row): void {\n this.allRows.set(id, row);\n }\n\n public deregister(id): void {\n this.allRows.delete(id);\n this.state.selectedRows.delete(id);\n clearTimeout(this.throttleTimeout);\n this.throttleTimeout = setTimeout(() => {\n if (this.state.selectedRows.size === 0) {\n this.novoSelectAllToggle.emit(false);\n }\n });\n }\n\n public ngOnDestroy(): void {\n this.allRows.clear();\n this.state.selectedRows.clear();\n }\n\n public toggle(id: string, selected: boolean, row: any): void {\n if (selected) {\n this.state.selectedRows.set(id, row);\n } else {\n this.state.selectedRows.delete(id);\n }\n }\n\n public selectAll(value: boolean): void {\n if (value) {\n this.state.selectedRows = new Map<string, object>(this.allRows);\n } else {\n this.state.selectedRows.clear();\n }\n this.novoSelectAllToggle.emit(value);\n }\n}\n","import { CdkCell, CdkCellDef, CdkColumnDef, CdkHeaderCell, CdkHeaderCellDef } from '@angular/cdk/table';\nimport {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n Directive,\n ElementRef,\n HostBinding,\n Input,\n OnDestroy,\n OnInit,\n Optional,\n Renderer2,\n} from '@angular/core';\nimport { Subscription } from 'rxjs';\nimport { NovoLabelService } from 'novo-elements/services';\nimport { Helpers } from 'novo-elements/utils';\nimport { SimpleTableActionColumn, SimpleTableActionColumnOption, SimpleTableColumn } from './interfaces';\nimport { NovoSelection } from './sort';\n\n/** Workaround for https://github.com/angular/angular/issues/17849 */\nexport const _NovoCellDef = CdkCellDef;\nexport const _NovoHeaderCellDef = CdkHeaderCellDef;\nexport const _NovoColumnDef = CdkColumnDef;\nexport const _NovoHeaderCell = CdkHeaderCell;\nexport const _NovoCell = CdkCell;\n\n@Directive({\n selector: '[novoSimpleCellDef]',\n providers: [{ provide: CdkCellDef, useExisting: NovoSimpleCellDef }],\n standalone: false,\n})\nexport class NovoSimpleCellDef extends _NovoCellDef {\n // TODO: add explicit constructor\n}\n\n@Directive({\n selector: '[novoSimpleHeaderCellDef]',\n providers: [{ provide: CdkHeaderCellDef, useExisting: NovoSimpleHeaderCellDef }],\n standalone: false,\n})\nexport class NovoSimpleHeaderCellDef extends _NovoHeaderCellDef {\n // TODO: add explicit constructor\n}\n\n@Directive({\n selector: '[novoSimpleColumnDef]',\n providers: [{ provide: CdkColumnDef, useExisting: NovoSimpleColumnDef }],\n standalone: false,\n})\nexport class NovoSimpleColumnDef extends _NovoColumnDef {\n @Input('novoSimpleColumnDef')\n get name(): string {\n return this._name;\n }\n set name(name: string) {\n this._setNameInput(name);\n }\n /**\n * This has been extracted to a util because of TS 4 and VE.\n * View Engine doesn't support property rename inheritance.\n * TS 4.0 doesn't allow properties to override accessors or vice-versa.\n * @docs-private\n */\n protected _setNameInput(value: string) {\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 (value) {\n this._name = value;\n this.cssClassFriendlyName = value.replace(/[^a-z0-9_-]/gi, '-');\n this._updateColumnCssClassName();\n }\n }\n}\n\n@Directive({\n selector: 'novo-simple-header-cell',\n standalone: false,\n})\nexport class NovoSimpleHeaderCell<T> extends _NovoHeaderCell implements OnInit {\n @HostBinding('attr.role')\n public role = 'columnheader';\n\n @Input()\n public column: SimpleTableColumn<T>;\n\n constructor(columnDef: CdkColumnDef, private elementRef: ElementRef, private renderer: Renderer2) {\n super(columnDef, elementRef);\n renderer.setAttribute(elementRef.nativeElement, 'data-automation-id', `novo-column-header-${columnDef.cssClassFriendlyName}`);\n renderer.addClass(elementRef.nativeElement, `novo-column-${columnDef.cssClassFriendlyName}`);\n renderer.addClass(elementRef.nativeElement, 'novo-simple-header-cell');\n }\n\n public ngOnInit(): void {\n if (this.column.width) {\n this.renderer.setStyle(this.elementRef.nativeElement, 'min-width', `${this.column.width}px`);\n this.renderer.setStyle(this.elementRef.nativeElement, 'max-width', `${this.column.width}px`);\n this.renderer.setStyle(this.elementRef.nativeElement, 'width', `${this.column.width}px`);\n }\n }\n}\n\n@Directive({\n selector: 'novo-simple-empty-header-cell',\n standalone: false,\n})\nexport class NovoSimpleEmptyHeaderCell extends _NovoHeaderCell {\n @HostBinding('attr.role')\n public role = 'columnheader';\n\n constructor(columnDef: CdkColumnDef, elementRef: ElementRef, renderer: Renderer2) {\n super(columnDef, elementRef);\n renderer.setAttribute(elementRef.nativeElement, 'data-automation-id', `novo-column-header-${columnDef.cssClassFriendlyName}`);\n renderer.addClass(elementRef.nativeElement, `novo-column-${columnDef.cssClassFriendlyName}`);\n renderer.addClass(elementRef.nativeElement, 'novo-simple-empty-header-cell');\n }\n}\n\n@Component({\n selector: 'novo-simple-checkbox-header-cell',\n template: '<novo-checkbox [(ngModel)]=\"selectAll\" (ngModelChange)=\"toggle($event)\"></novo-checkbox>',\n standalone: false,\n})\nexport class NovoSimpleCheckboxHeaderCell extends _NovoHeaderCell implements OnDestroy {\n @HostBinding('attr.role')\n public role = 'columnheader';\n\n public selectAll: boolean = false;\n private selectAllSubscription: Subscription;\n\n constructor(\n columnDef: CdkColumnDef,\n elementRef: ElementRef,\n renderer: Renderer2,\n ref: ChangeDetectorRef,\n @Optional() private _selection: NovoSelection,\n ) {\n super(columnDef, elementRef);\n renderer.setAttribute(elementRef.nativeElement, 'data-automation-id', `novo-checkbox-column-header-${columnDef.cssClassFriendlyName}`);\n renderer.addClass(elementRef.nativeElement, `novo-checkbox-column-${columnDef.cssClassFriendlyName}`);\n renderer.addClass(elementRef.nativeElement, 'novo-simple-checkbox-header-cell');\n\n this.selectAllSubscription = _selection.novoSelectAllToggle.subscribe((value: boolean) => {\n this.selectAll = value;\n ref.markForCheck();\n });\n }\n\n public ngOnDestroy(): void {\n this.selectAllSubscription.unsubscribe();\n }\n\n public toggle(value: boolean): void {\n this._selection.selectAll(value);\n }\n}\n\n@Component({\n selector: 'novo-simple-cell',\n template: ' <span [class.clickable]=\"!!column.onClick\" (click)=\"onClick($event)\" #span>{{ column.renderer(row) }}</span> ',\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: false,\n})\nexport class NovoSimpleCell<T> extends _NovoCell implements OnInit {\n @HostBinding('attr.role')\n public role = 'gridcell';\n\n @Input()\n public row: any;\n @Input()\n public column: SimpleTableColumn<T>;\n\n constructor(columnDef: CdkColumnDef, private elementRef: ElementRef, private renderer: Renderer2) {\n super(columnDef, elementRef);\n renderer.setAttribute(elementRef.nativeElement, 'data-automation-id', `novo-column-${columnDef.cssClassFriendlyName}`);\n renderer.addClass(elementRef.nativeElement, `novo-column-${columnDef.cssClassFriendlyName}`);\n renderer.addClass(elementRef.nativeElement, 'novo-simple-cell');\n }\n\n public ngOnInit(): void {\n if (this.column.customClass) {\n this.renderer.addClass(this.elementRef.nativeElement, this.column.customClass(this.row));\n }\n if (this.column.width) {\n this.renderer.setStyle(this.elementRef.nativeElement, 'min-width', `${this.column.width}px`);\n this.renderer.setStyle(this.elementRef.nativeElement, 'max-width', `${this.column.width}px`);\n this.renderer.setStyle(this.elementRef.nativeElement, 'width', `${this.column.width}px`);\n }\n }\n\n public onClick(event: MouseEvent): void {\n Helpers.swallowEvent(event);\n if (this.column.onClick) {\n this.column.onClick(this.row);\n }\n return;\n }\n}\n\n@Component({\n selector: 'novo-simple-checkbox-cell',\n template: ' <novo-checkbox [ngModel]=\"selected\" (ngModelChange)=\"toggle($event)\"></novo-checkbox> ',\n standalone: false,\n})\nexport class NovoSimpleCheckboxCell extends _NovoCell implements OnDestroy, OnInit {\n @HostBinding('attr.role')\n public role = 'gridcell';\n\n @Input()\n public row: any;\n @Input()\n public index: any;\n\n public selected: boolean = false;\n private selectAllSubscription: Subscription;\n\n constructor(public columnDef: CdkColumnDef, elementRef: ElementRef, renderer: Renderer2, @Optional() public _selection: NovoSelection) {\n super(columnDef, elementRef);\n renderer.setAttribute(elementRef.nativeElement, 'data-automation-id', `novo-checkbox-column-${columnDef.cssClassFriendlyName}`);\n renderer.addClass(elementRef.nativeElement, `novo-checkbox-column-${columnDef.cssClassFriendlyName}`);\n renderer.addClass(elementRef.nativeElement, 'novo-simple-checkbox-cell');\n\n this.selectAllSubscription = _selection.novoSelectAllToggle.subscribe((value: boolean) => {\n this.selected = value;\n });\n }\n\n public ngOnInit(): void {\n this._selection.register(this.row.id || this.index, this.row);\n this.selected = this._selection.state.selectedRows.has(this.row.id || this.index);\n }\n\n public ngOnDestroy(): void {\n this._selection.deregister(this.row.id || this.index);\n this.selectAllSubscription.unsubscribe();\n }\n\n public toggle(value: boolean): void {\n this._selection.toggle(this.row.id || this.index, value, this.row);\n }\n}\n\n@Component({\n selector: 'novo-simple-action-cell',\n template: `\n <ng-container *ngIf=\"!column.options\">\n <novo-button theme=\"icon\" [icon]=\"column.icon\" (click)=\"column.onClick(row)\" [disabled]=\"isDisabled(column, row)\"></novo-button>\n </ng-container>\n <ng-container *ngIf=\"column.options\">\n <novo-dropdown parentScrollSelector=\".novo-simple-table\" containerClass=\"novo-table-dropdown-cell\">\n <novo-button type=\"button\" theme=\"dialogue\" icon=\"collapse\" inverse>{{ column.label || labels.actions }}</novo-button>\n <list>\n <item *ngFor=\"let option of column.options\" (action)=\"option.onClick(row)\" [disabled]=\"isDisabled(option, row)\">\n <span [attr.data-automation-id]=\"option.label\">{{ option.label }}</span>\n </item>\n </list>\n </novo-dropdown>\n </ng-container>\n `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: false,\n})\nexport class NovoSimpleActionCell<T> extends _NovoCell implements OnInit {\n @HostBinding('attr.role')\n public role = 'gridcell';\n\n @Input()\n public row: T;\n @Input()\n public column: SimpleTableActionColumn<T>;\n\n constructor(columnDef: CdkColumnDef, private elementRef: ElementRef, private renderer: Renderer2, public labels: NovoLabelService) {\n super(columnDef, elementRef);\n renderer.setAttribute(elementRef.nativeElement, 'data-automation-id', `novo-action-column-${columnDef.cssClassFriendlyName}`);\n }\n\n public ngOnInit(): void {\n if (this.column.options) {\n this.renderer.addClass(this.elementRef.nativeElement, 'novo-simple-dropdown-cell');\n } else {\n this.renderer.addClass(this.elementRef.nativeElement, 'novo-simple-button-cell');\n }\n }\n\n public isDisabled(check: SimpleTableActionColumn<T> | SimpleTableActionColumnOption<T>, row: T): boolean {\n if (check.disabled === true) {\n return true;\n }\n if (check.disabledCheck) {\n return check.disabledCheck(row);\n }\n return false;\n }\n}\n","import { coerceBooleanProperty } from '@angular/cdk/coercion';\nimport { CdkColumnDef } from '@angular/cdk/table';\nimport {\n AfterViewInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n Directive,\n ElementRef,\n Input,\n OnDestroy,\n OnInit,\n Optional,\n ViewChild,\n ViewEncapsulation,\n} from '@angular/core';\nimport { startOfToday, startOfTomorrow } from 'date-fns';\nimport { Subscription } from 'rxjs';\nimport { NovoLabelService } from 'novo-elements/services';\nimport { DateUtil, Helpers } from 'novo-elements/utils';\nimport { NovoDropdownElement } from 'novo-elements/elements/dropdown';\nimport { NovoSimpleSortFilter, NovoSimpleTableChange, SimpleTableColumnFilterConfig, SimpleTableColumnFilterOption } from './interfaces';\nimport { NovoSortFilter } from './sort';\nimport { NovoActivityTableState } from './state';\n\n@Directive({\n selector: '[novoSimpleFilterFocus]',\n standalone: false,\n})\nexport class NovoSimpleFilterFocus implements AfterViewInit {\n constructor(private element: ElementRef) {}\n\n ngAfterViewInit() {\n this.element.nativeElement.focus();\n }\n}\n\n@Component({\n selector: '[novo-simple-cell-config]',\n template: `\n <label (click)=\"sort()\" data-automation-id=\"novo-activity-table-label\" [class.sort-disabled]=\"!config.sortable\">\n <ng-content></ng-content>\n </label>\n <div>\n <novo-button\n *ngIf=\"config.sortable\"\n theme=\"icon\"\n [icon]=\"icon\"\n (click)=\"sort()\"\n [class.active]=\"sortActive\"\n data-automation-id=\"novo-activity-table-sort\"\n ></novo-button>\n <novo-dropdown\n *ngIf=\"config.filterable\"\n side=\"right\"\n parentScrollSelector=\".novo-simple-table\"\n containerClass=\"simple-table-dropdown\"\n data-automation-id=\"novo-activity-table-filter\"\n >\n <novo-button type=\"button\" theme=\"icon\" icon=\"filter\" [class.active]=\"filterActive\"></novo-button>\n <div class=\"header\">\n <span>{{ labels.filters }}</span>\n <novo-button\n theme=\"dialogue\"\n color=\"negative\"\n icon=\"times\"\n (click)=\"clearFilter()\"\n *ngIf=\"filter\"\n data-automation-id=\"novo-activity-table-filter-clear\"\n >\n {{ labels.clear }}\n </novo-button>\n </div>\n <ng-container [ngSwitch]=\"config.filterConfig.type\">\n <novo-optgroup *ngSwitchCase=\"'date'\">\n <ng-container *ngIf=\"!showCustomRange\">\n <novo-option\n [class.active]=\"activeDateFilter === option.label\"\n *ngFor=\"let option of config.filterConfig.options\"\n (click)=\"filterData(option)\"\n [attr.data-automation-id]=\"'novo-activity-table-filter-' + option.label\"\n >\n {{ option.label }} <i class=\"bhi-check\" *ngIf=\"activeDateFilter === option.label\"></i>\n </novo-option>\n </ng-container>\n <novo-option\n [class.active]=\"labels.customDateRange === activeDateFilter\"\n (click)=\"toggleCustomRange($event, true)\"\n *ngIf=\"config.filterConfig.allowCustomRange && !showCustomRange\"\n [keepOpen]=\"true\"\n >\n {{ labels.customDateRange }} <i class=\"bhi-check\" *ngIf=\"labels.customDateRange === activeDateFilter\"></i>\n </novo-option>\n <div class=\"calendar-container\" *ngIf=\"showCustomRange\">\n <div (click)=\"toggleCustomRange($event, false)\"><i class=\"bhi-previous\"></i>{{ labels.backToPresetFilters }}</div>\n <novo-date-picker (onSelect)=\"filterData($event)\" [(ngModel)]=\"filter\" range=\"true\"></novo-date-picker>\n </div>\n </novo-optgroup>\n <novo-optgroup *ngSwitchCase=\"'select'\">\n <novo-option\n [class.active]=\"filter === option\"\n *ngFor=\"let option of config.filterConfig.options\"\n (click)=\"filterData(option)\"\n [attr.data-automation-id]=\"'novo-activity-table-filter-' + (option?.label || option)\"\n >\n <span>{{ option?.label || option }}</span>\n <i class=\"bhi-check\" *ngIf=\"option.hasOwnProperty('value') ? filter === option.value : filter === option\"></i>\n </novo-option>\n </novo-optgroup>\n <novo-optgroup *ngSwitchDefault>\n <novo-option class=\"filter-search\" keepOpen>\n <input\n type=\"text\"\n [(ngModel)]=\"filter\"\n (ngModelChange)=\"filterData($event)\"\n novoSimpleFilterFocus\n data-automation-id=\"novo-activity-table-filter-input\"\n />\n </novo-option>\n </novo-optgroup>\n </ng-container>\n </novo-dropdown>\n </div>\n `,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: false,\n})\nexport class NovoSimpleCellHeader implements NovoSimpleSortFilter, OnInit, OnDestroy {\n @ViewChild(NovoDropdownElement)\n dropdown: NovoDropdownElement;\n\n @Input()\n defaultSort: { id: string; value: string };\n\n @Input('novo-simple-cell-config')\n get config() {\n return this._config;\n }\n\n set config(v) {\n if (!v) {\n this._config = {\n sortable: false,\n filterable: false,\n filterConfig: {\n type: 'text',\n },\n };\n } else {\n this._config = {\n sortable: coerceBooleanProperty(v.sortable),\n filterable: coerceBooleanProperty(v.filterable),\n transforms: v.transforms || {},\n filterConfig: v.filterConfig || {\n type: 'text',\n },\n };\n\n if (this._config.filterConfig.type === 'date' && !this._config.filterConfig.options) {\n this._config.filterConfig.options = this.getDefaultDateFilterOptions();\n }\n }\n }\n\n private _config: {\n sortable: boolean;\n filterable: boolean;\n transforms?: { filter?: Function; sort?: Function };\n filterConfig: SimpleTableColumnFilterConfig;\n };\n\n private _rerenderSubscription: Subscription;\n private changeTimeout: any;\n\n public icon: string = 'sortable';\n public id: string;\n public filter: string | boolean;\n public direction: string;\n public filterActive: boolean = false;\n public sortActive: boolean = false;\n public showCustomRange: boolean = false;\n public activeDateFilter: string;\n\n constructor(\n private changeDetectorRef: ChangeDetectorRef,\n public labels: NovoLabelService,\n private state: NovoActivityTableState,\n @Optional() public _sort: NovoSortFilter,\n @Optional() public _cdkColumnDef: CdkColumnDef,\n ) {\n this._rerenderSubscription = state.updates.subscribe((change: NovoSimpleTableChange) => {\n if (change.sort && change.sort.id === this.id) {\n this.icon = `sort-${change.sort.value}`;\n this.sortActive = true;\n } else {\n this.icon = 'sortable';\n this.sortActive = false;\n }\n if (change.filter && change.filter.id === this.id) {\n this.filterActive = true;\n this.filter = change.filter.value;\n } else {\n this.filterActive = false;\n this.filter = undefined;\n }\n changeDetectorRef.markForCheck();\n });\n }\n\n public ngOnInit(): void {\n if (this._cdkColumnDef) {\n this.id = this._cdkColumnDef.name;\n }\n if (this.defaultSort && this.id === this.defaultSort.id) {\n this.icon = `sort-${this.defaultSort.value}`;\n this.sortActive = true;\n this.changeDetectorRef.markForCheck();\n }\n }\n\n public ngOnDestroy(): void {\n this._rerenderSubscription.unsubscribe();\n }\n\n public sort(): void {\n if (this.changeTimeout) {\n clearTimeout(this.changeTimeout);\n }\n this.changeTimeout = setTimeout(() => {\n this.direction = this.getNextSortDirection(this.direction);\n this._sort.sort(this.id, this.direction, this._config.transforms.sort);\n this.changeDetectorRef.markForCheck();\n }, 300);\n }\n\n public toggleCustomRange(event: Event, value: boolean): void {\n Helpers.swallowEvent(event);\n this.showCustomRange = value;\n this.changeDetectorRef.markForCheck();\n this.dropdown.openPanel(); // Ensures that the panel correctly updates to the dynamic size of the dropdown\n }\n\n public filterData(filter?: any): void {\n let actualFilter = filter;\n if (this.config.filterConfig.type === 'date' && filter) {\n this.activeDateFilter = filter.label || this.labels.customDateRange;\n if (filter.startDate && filter.endDate) {\n actualFilter = {\n min: DateUtil.startOfDay(filter.startDate.date),\n max: DateUtil.startOfDay(DateUtil.addDays(DateUtil.startOfDay(filter.endDate.date), 1)),\n };\n } else {\n actualFilter = {\n min: filter.min ? DateUtil.addDays(startOfToday(), filter.min) : startOfToday(),\n max: filter.max ? DateUtil.addDays(startOfTomorrow(), filter.max) : startOfTomorrow(),\n };\n }\n }\n\n if (actualFilter && actualFilter.hasOwnProperty('value')) {\n actualFilter = filter.value;\n }\n\n if (this.changeTimeout) {\n clearTimeout(this.changeTimeout);\n }\n\n this.changeTimeout = setTimeout(() => {\n if (actualFilter === '') {\n actualFilter = undefined;\n }\n this._sort.filter(this.id, actualFilter, this.config.transforms.filter);\n this.changeDetectorRef.markForCheck();\n }, 300);\n }\n\n public clearFilter(): void {\n this.filter = undefined;\n this.activeDateFilter = undefined;\n this.filterData();\n }\n\n private getNextSortDirection(direction: string): string {\n if (!direction) {\n return 'asc';\n }\n if (direction === 'asc') {\n return 'desc';\n }\n return 'asc';\n }\n\n private getDefaultDateFilterOptions(): SimpleTableColumnFilterOption[] {\n const opts: SimpleTableColumnFilterOption[] = [\n { label: this.labels.past1Day, min: -1, max: 0 },\n { label: this.labels.past7Days, min: -7, max: 0 },\n { label: this.labels.past30Days, min: -30, max: 0 },\n { label: this.labels.past90Days, min: -90, max: 0 },\n { label: this.labels.past1Year, min: -366, max: 0 },\n { label: this.labels.next1Day, min: 0, max: 1 },\n { label: this.labels.next7Days, min: 0, max: 7 },\n { label: this.labels.next30Days, min: 0, max: 30 },\n { label: this.labels.next90Days, min: 0, max: 90 },\n { label: this.labels.next1Year, min: 0, max: 366 },\n ];\n return opts;\n }\n}\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component, EventEmitter, Input, OnDestroy, OnInit, Output } from '@angular/core';\nimport { Subscription } from 'rxjs';\nimport { NovoLabelService } from 'novo-elements/services';\nimport { NovoSimplePaginationEvent } from './interfaces';\nimport { NovoActivityTableState } from './state';\n\nconst DEFAULT_PAGE_SIZE = 50;\n\n@Component({\n selector: 'novo-simple-table-pagination',\n template: `\n <div class=\"novo-simple-table-pagination-size\">\n <novo-tiles\n *ngIf=\"displayedPageSizeOptions.length > 1\"\n [(ngModel)]=\"pageSize\"\n [options]=\"displayedPageSizeOptions\"\n (onChange)=\"changePageSize($event)\"\n data-automation-id=\"novo-simple-table-pagination-tiles\"\n >\n </novo-tiles>\n <div *ngIf=\"displayedPageSizeOptions.length <= 1\">{{ pageSize }}</div>\n </div>\n\n <div class=\"novo-simple-table-range-label-long\" data-automation-id=\"novo-simple-table-pagination-range-label-long\">\n {{ longRangeLabel }}\n </div>\n <div class=\"novo-simple-table-range-label-short\" data-automation-id=\"novo-simple-table-pagination-range-label-short\">\n {{ shortRangeLabel }}\n </div>\n\n <novo-button\n theme=\"dialogue\"\n type=\"button\"\n class=\"novo-simple-table-pagination-navigation-previous\"\n (click)=\"previousPage()\"\n icon=\"previous\"\n side=\"left\"\n [disabled]=\"!hasPreviousPage()\"\n data-automation-id=\"novo-simple-table-pagination-previous\"\n >\n <span>{{ labels.previous }}</span>\n </novo-button>\n <novo-button\n theme=\"dialogue\"\n type=\"button\"\n class=\"novo-simple-table-pagination-navigation-next\"\n (click)=\"nextPage()\"\n icon=\"next\"\n side=\"right\"\n [disabled]=\"!hasNextPage()\"\n data-automation-id=\"novo-simple-table-pagination-next\"\n >\n <span>{{ labels.next }}</span>\n </novo-button>\n `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: false,\n})\nexport class NovoSimpleTablePagination implements OnInit, OnDestroy {\n private _initialized: boolean;\n\n @Input()\n get page(): number {\n return this._page;\n }\n set page(page: number) {\n this._page = page;\n this.changeDetectorRef.markForCheck();\n this.longRangeLabel = this.labels.getRangeText(this.page, this.pageSize, this.length, false);\n this.shortRangeLabel = this.labels.getRangeText(this.page, this.pageSize, this.length, true);\n this.state.page = this._page;\n }\n _page: number = 0;\n\n @Input()\n get length(): number {\n return this._length;\n }\n set length(length: number) {\n this._length = length;\n this.changeDetectorRef.markForCheck();\n this.longRangeLabel = this.labels.getRangeText(this.page, this.pageSize, this.length, false);\n this.shortRangeLabel = this.labels.getRangeText(this.page, this.pageSize, this.length, true);\n }\n _length: number = 0;\n\n @Input()\n get pageSize(): number {\n return this._pageSize;\n }\n set pageSize(pageSize: number) {\n this._pageSize = pageSize;\n this.updateDisplayedPageSizeOptions();\n this.state.pageSize = this._pageSize;\n }\n private _pageSize: number;\n\n @Input()\n get pageSizeOptions(): number[] {\n return this._pageSizeOptions;\n }\n set pageSizeOptions(pageSizeOptions: number[]) {\n this._pageSizeOptions = pageSizeOptions;\n this.updateDisplayedPageSizeOptions();\n }\n private _pageSizeOptions: number[] = [];\n\n @Output()\n pageChange = new EventEmitter<NovoSimplePaginationEvent>();\n\n public displayedPageSizeOptions: number[];\n public longRangeLabel: string;\n public shortRangeLabel: string;\n\n private resetSubscription: Subscription;\n\n constructor(private changeDetectorRef: ChangeDetectorRef, public labels: NovoLabelService, private state: NovoActivityTableState) {\n if (state && state.onReset) {\n this.resetSubscription = this.state.onReset.subscribe((clear: boolean) => {\n if (clear) {\n this.page = 0;\n this.changeDetectorRef.markForCheck();\n }\n });\n }\n }\n\n public ngOnInit(): void {\n this._initialized = true;\n this.updateDisplayedPageSizeOptions();\n }\n\n public ngOnDestroy(): void {\n this.resetSubscription.unsubscribe();\n }\n\n public nextPage(): void {\n if (!this.hasNextPage()) {\n return;\n }\n this.page++;\n this.emitPageEvent();\n }\n\n public previousPage(): void {\n if (!this.hasPreviousPage()) {\n return;\n }\n this.page--;\n this.emitPageEvent();\n }\n\n public hasPreviousPage(): boolean {\n return this.page >= 1 && this.pageSize !== 0;\n }\n\n public hasNextPage(): boolean {\n const numberOfPages = Math.ceil(this.length / this.pageSize) - 1;\n return this.page < numberOfPages && this.pageSize !== 0;\n }\n\n public changePageSize(pageSize: number): void {\n this.page = 0;\n this.pageSize = pageSize;\n this.emitPageEvent();\n }\n\n private updateDisplayedPageSizeOptions(): void {\n if (!this._initialized) {\n return;\n }\n if (!this.pageSize) {\n this._pageSize = this.pageSizeOptions.length !== 0 ? this.pageSizeOptions[0] : DEFAULT_PAGE_SIZE;\n }\n this.displayedPageSizeOptions = this.pageSizeOptions.slice();\n if (this.displayedPageSizeOptions.indexOf(this.pageSize) === -1) {\n this.displayedPageSizeOptions.push(this.pageSize);\n }\n this.displayedPageSizeOptions.sort((a, b) => a - b);\n this.changeDetectorRef.markForCheck();\n this.longRangeLabel = this.labels.getRangeText(this.page, this.pageSize, this.length, false);\n this.shortRangeLabel = this.labels.getRangeText(this.page, this.pageSize, this.length, true);\n }\n\n private emitPageEvent(): void {\n const event = {\n page: this.page,\n pageSize: this.pageSize,\n length: this.length,\n };\n this.pageChange.next(event);\n this.state.page = this.page;\n this.state.pageSize = this.pageSize;\n this.longRangeLabel = this.labels.getRangeText(this.page, this.pageSize, this.length, false);\n this.shortRangeLabel = this.labels.getRangeText(this.page, this.pageSize, this.length, true);\n this.state.updates.next(event);\n }\n}\n","// NG2\nimport { coerceBooleanProperty } from '@angular/cdk/coercion';\nimport { Component, EventEmitter, Input, OnChanges, OnInit, Output, SimpleChanges, ViewEncapsulation } from '@angular/core';\n// APP\nimport { NovoLabelService } from 'novo-elements/services';\n\ninterface Page {\n num: number;\n text: string;\n active: boolean;\n}\n@Component({\n selector: 'novo-pagination',\n template: `\n <ng-container *ngIf=\"rowOptions.length > 1\">\n <h5 class=\"rows\">{{ label }}</h5>\n <novo-select\n class=\"table-pagination-select\"\n [options]=\"rowOptions\"\n [placeholder]=\"labels.select\"\n [(ngModel)]=\"itemsPerPage\"\n (onSelect)=\"onPageSizeChanged($event)\"\n data-automation-id=\"pager-select\"\n ></novo-select>\n <span class=\"spacer\"></span>\n </ng-container>\n <ul class=\"pager\" data-automation-id=\"pager\">\n <li class=\"page\" (click)=\"selectPage(page - 1)\" [ngClass]=\"{ disabled: noPrevious() }\">\n <i class=\"bhi-previous\" data-automation-id=\"pager-previous\"></i>\n </li>\n <li\n class=\"page\"\n [ngClass]=\"{ active: p.active }\"\n [class.disabled]=\"disablePageSelection\"\n *ngFor=\"let p of pages\"\n (click)=\"selectPage(p.num, $event)\"\n >\n {{ p.text }}\n </li>\n <li class=\"page\" (click)=\"selectPage(page + 1)\" [ngClass]=\"{ disabled: noNext() }\">\n <i class=\"bhi-next\" data-automation-id=\"pager-next\"></i>\n </li>\n </ul>\n `,\n styleUrls: ['./PaginationOld.scss'],\n encapsulation: ViewEncapsulation.None,\n standalone: false,\n})\nexport class Pagination implements OnInit, OnChanges {\n @Input()\n page: number;\n @Input()\n totalItems: number;\n @Input()\n itemsPerPage = 10;\n @Input()\n rowOptions;\n @Input()\n label: string;\n @Input()\n get disablePageSelection(): boolean {\n return this.pageSelectDisabled;\n }\n set disablePageSelection(val: boolean) {\n this.pageSelectDisabled = coerceBooleanProperty(val);\n }\n @Output()\n pageChange = new EventEmitter();\n @Output()\n itemsPerPageChange = new EventEmitter();\n @Output()\n onPageChange = new EventEmitter();\n\n public pageSelectDisabled: boolean;\n maxPagesDisplayed = 5;\n totalPages: number;\n pages: Array<Page>;\n\n constructor(public labels: NovoLabelService) {}\n\n ngOnInit() {\n this.label = this.label || this.labels.itemsPerPage;\n this.rowOptions = this.rowOptions || this.getDefaultRowOptions();\n }\n\n ngOnChanges(changes?: SimpleChanges) {\n this.page = this.page || 1;\n this.totalPages = this.calculateTotalPages();\n this.pages = this.getPages(this.page, this.totalPages);\n }\n\n getDefaultRowOptions() {\n return [\n { value: 10, label: '10' },\n { value: 25, label: '25' },\n { value: 50, label: '50' },\n { value: 100, label: '100' },\n ];\n }\n\n onPageSizeChanged(event) {\n this.page = 1;\n this.itemsPerPage = event.selected;\n this.totalPages = this.calculateTotalPages();\n this.pages = this.getPages(this.page, this.totalPages);\n this.pageChange.emit(this.page);\n this.itemsPerPageChange.emit(this.itemsPerPage);\n this.onPageChange.emit({\n page: this.page,\n itemsPerPage: this.itemsPerPage,\n });\n }\n\n selectPage(page: number, event?: MouseEvent) {\n if (event) {\n event.preventDefault();\n }\n\n this.page = page;\n this.pages = this.getPages(this.page, this.totalPages);\n this.pageChange.emit(this.page);\n this.onPageChange.emit({\n page: this.page,\n itemsPerPage: this.itemsPerPage,\n });\n }\n\n noPrevious() {\n return this.page === 1;\n }\n\n noNext() {\n return this.page === this.totalPages;\n }\n\n // Create page object used in template\n makePage(num: number, text: string, isActive: boolean) {\n return { num, text, active: isActive } as Page;\n }\n\n getPages(currentPage: number, totalPages: number) {\n const pages: Array<Page> = [];\n // Default page limits\n let startPage = 1;\n let endPage = totalPages;\n const isMaxSized = this.maxPagesDisplayed < totalPages;\n\n // recompute if maxPagesDisplayed\n if (isMaxSized) {\n // Current page is displayed in the middle of the visible ones\n startPage = Math.max(currentPage - Math.floor(this.maxPagesDisplayed / 2), 1);\n endPage = startPage + this.maxPagesDisplayed - 1;\n\n // Adjust if limit is exceeded\n if (endPage > totalPages) {\n endPage = totalPages;\n startPage = endPage - this.maxPagesDisplayed + 1;\n }\n }\n\n // Add page number links\n for (let num = startPage; num <= endPage; num++) {\n const page = this.makePage(num, num.toString(), num === currentPage);\n pages.push(page);\n }\n return pages;\n }\n\n calculateTotalPages() {\n const totalPages = this.itemsPerPage < 1 ? 1 : Math.ceil(this.totalItems / this.itemsPerPage);\n return Math.max(totalPages || 0, 1);\n }\n}\n","import { CdkHeaderRow, CdkHeaderRowDef, CdkRow, CdkRowDef, CDK_ROW_TEMPLATE } from '@angular/cdk/table';\nimport { ChangeDetectionStrategy, Component, Directive, HostBinding, Input } from '@angular/core';\n\n/** Workaround for https://github.com/angular/angular/issues/17849 */\nexport const _NovoHeaderRowDef = CdkHeaderRowDef;\nexport const _NovoCdkRowDef = CdkRowDef;\nexport const _NovoHeaderRow = CdkHeaderRow;\nexport const _NovoRow = CdkRow;\n\n@Directive({\n selector: '[novoSimpleHeaderRowDef]',\n providers: [{ provide: CdkHeaderRowDef, useExisting: NovoSimpleHeaderRowDef }],\n standalone: false,\n})\nexport class NovoSimpleHeaderRowDef extends _NovoHeaderRowDef {\n // TODO: add explicit constructor\n\n @Input('novoSimpleHeaderRowDef')\n columns;\n}\n\n@Directive({\n selector: '[novoSimpleRowDef]',\n providers: [{ provide: CdkRowDef, useExisting: NovoSimpleRowDef }],\n standalone: false,\n})\nexport class NovoSimpleRowDef<T> extends _NovoCdkRowDef<T> {\n // TODO: add explicit constructor\n\n @Input('novoSimpleRowDefColumns')\n columns;\n}\n\n@Component({\n selector: 'novo-simple-header-row',\n template: CDK_ROW_TEMPLATE,\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: false,\n})\nexport class NovoSimpleHeaderRow extends _NovoHeaderRow {\n @HostBinding('class')\n public rowClass = 'novo-simple-header-row';\n @HostBinding('attr.role')\n public role = 'row';\n}\n\n@Component({\n selector: 'novo-simple-row',\n template: CDK_ROW_TEMPLATE,\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: false,\n})\nexport class NovoSimpleRow extends _NovoRow {\n @HostBinding('class')\n public rowClass = 'novo-simple-row';\n @HostBinding('attr.role')\n public role = 'row';\n}\n","import { DataSource } from '@angular/cdk/table';\nimport { ChangeDetectorRef } from '@angular/core';\nimport { merge, Observable, of } from 'rxjs';\nimport { catchError, map, startWith, switchMap } from 'rxjs/operators';\nimport { Helpers } from 'novo-elements/utils';\nimport { NovoActivityTableState } from './state';\n\nexport interface ActivityTableService<T> {\n getTableResults(\n sort: { id: string; value: string; transform?: Function },\n filter: { id: string; value: string; transform?: Function },\n page: number,\n pageSize: number,\n globalSearch?: string,\n outsideFilter?: any,\n ): Observable<{ results: T[]; total: number }>;\n}\n\nexport abstract class RemoteActivityTableService<T> implements ActivityTableService<T> {\n abstract getTableResults(\n sort: { id: string; value: string; transform?: Function },\n filter: { id: string; value: string; transform?: Function },\n page: number,\n pageSize: number,\n globalSearch?: string,\n outsideFilter?: any,\n ): Observable<{ results: T[]; total: number }>;\n}\n\nexport class StaticActivityTableService<T> implements ActivityTableService<T> {\n constructor(private data: T[] = []) {}\n\n public getTableResults(\n sort: { id: string; value: string; transform?: Function },\n filter: { id: string; value: string; transform?: Function },\n page: number = 0,\n pageSize: number,\n globalSearch?: string,\n outsideFilter?: any,\n ): Observable<{ results: T[]; total: number }> {\n let ret: T[] = Helpers.deepClone(this.data);\n if (ret.length !== 0) {\n if (globalSearch) {\n ret = ret.filter((item) => Object.keys(item).some((key) => `${item[key]}`.toLowerCase().includes(globalSearch.toLowerCase())));\n }\n if (filter) {\n const value = Helpers.isString(filter.value) ? filter.value.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\$&') : filter.value;\n ret = ret.filter(Helpers.filterByField(filter.id, value));\n }\n if (sort) {\n ret = ret.sort(Helpers.sortByField(sort.id, sort.value === 'desc'));\n }\n if (!Helpers.isBlank(page) && !Helpers.isBlank(pageSize)) {\n ret = ret.slice(page * pageSize, (page + 1) * pageSize);\n }\n }\n return of({ results: ret, total: this.data.length });\n }\n}\n\nexport class ActivityTableDataSource<T> extends DataSource<T> {\n public total = 0;\n public current = 0;\n public loading = false;\n public pristine = true;\n\n get totallyEmpty(): boolean {\n return this.total === 0;\n }\n\n get currentlyEmpty(): boolean {\n return this.current === 0;\n }\n\n constructor(private tableService: ActivityTableService<T>, private state: NovoActivityTableState, private ref: ChangeDetectorRef) {\n super();\n }\n\n public connect(): Observable<any[]> {\n const displayDataChanges: any = [this.state.updates];\n return merge(...displayDataChanges).pipe(\n startWith(null),\n switchMap(() => {\n this.pristine = false;\n this.loading = true;\n return this.tableService.getTableResults(\n this.state.sort,\n this.state.filter,\n this.state.page,\n this.state.pageSize,\n this.state.globalSearch,\n this.state.outsideFilter,\n );\n }),\n map((data: { results: T[]; total: number }) => {\n this.loading = false;\n this.total = data.total;\n this.current = data.results.length;\n setTimeout(() => {\n this.ref.markForCheck();\n });\n return data.results;\n }),\n catchError((error) => {\n console.error(error);\n this.loading = false;\n return of(null);\n }),\n );\n }\n\n public disconnect(): void {}\n}\n","import { coerceBooleanProperty } from '@angular/cdk/coercion';\nimport { _VIEW_REPEATER_STRATEGY, _DisposeViewRepeaterStrategy } from '@angular/cdk/collections';\nimport { CdkTable, CDK_TABLE, CDK_TABLE_TEMPLATE, _COALESCED_STYLE_SCHEDULER, _CoalescedStyleScheduler } from '@angular/cdk/table';\nimport {\n AfterContentInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n Directive,\n EventEmitter,\n HostBinding,\n Input,\n OnChanges,\n OnDestroy,\n SimpleChanges,\n ViewEncapsulation,\n} from '@angular/core';\nimport { Subscription } from 'rxjs';\nimport { NovoLabelService } from 'novo-elements/services';\nimport { notify } from 'novo-elements/utils';\nimport { SimpleTableActionColumn, SimpleTableColumn, SimpleTablePaginationOptions, SimpleTableSearchOptions } from './interfaces';\nimport { NovoActivityTableState } from './state';\nimport { ActivityTableDataSource, ActivityTableService } from './table-source';\n\n@Component({\n selector: 'novo-simple-table',\n template: CDK_TABLE_TEMPLATE,\n styleUrls: ['./table.scss'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [{ provide: CDK_TABLE, useExisting: NovoTable }],\n standalone: false,\n})\nexport class NovoTable<T> extends CdkTable<T> {\n // TODO: add explicit constructor\n}\n\n@Directive({\n selector: 'novo-activity-table-actions',\n standalone: false,\n})\nexport class NovoActivityTableActions {}\n\n@Directive({\n selector: 'novo-activity-table-custom-header',\n standalone: false,\n})\nexport class NovoActivityTableCustomHeader {}\n\n@Directive({\n selector: 'novo-activity-table-custom-filter',\n standalone: false,\n})\nexport class NovoActivityTableCustomFilter {}\n\n@Directive({\n selector: 'novo-activity-table-empty-message',\n standalone: false,\n})\nexport class NovoActivityTableEmptyMessage {}\n\n@Directive({\n selector: 'novo-activity-table-no-results-message',\n standalone: false,\n})\nexport class NovoActivityTableNoResultsMessage {}\n\n@Component({\n selector: 'novo-activity-table',\n template: `\n <div *ngIf=\"debug\">\n <p>Total: {{ dataSource?.total }}</p>\n <p>Current: {{ dataSource?.current }}</p>\n <p>Totally Empty: {{ dataSource?.totallyEmpty }}</p>\n <p>Currently Empty: {{ dataSource?.currentlyEmpty }}</p>\n <p>Loading (DataSource): {{ dataSource?.loading }}</p>\n <p>User Filtered: {{ state.userFiltered }}</p>\n <p>Loading (Table): {{ loading }}</p>\n </div>\n <header *ngIf=\"(!(dataSource?.totallyEmpty && !state.userFiltered) && !loading) || forceShowHeader\">\n <ng-content select=\"[novo-activity-table-custom-header]\"></ng-content>\n <novo-search\n alwaysOpen=\"true\"\n (searchChanged)=\"onSearchChange($event)\"\n [(ngModel)]=\"state.globalSearch\"\n *ngIf=\"!hideGlobalSearch\"\n [placeholder]=\"searchOptions?.placeholder\"\n [hint]=\"searchOptions?.tooltip\"\n >\n </novo-search>\n <novo-simple-table-pagination\n *ngIf=\"paginationOptions\"\n [length]=\"dataSource?.total\"\n [page]=\"paginationOptions.page\"\n [pageSize]=\"paginationOptions.pageSize\"\n [pageSizeOptions]=\"paginationOptions.pageSizeOptions\"\n >\n </novo-simple-table-pagination>\n <div class=\"novo-activity-table-actions\">\n <ng-content select=\"[novo-activity-table-actions]\"></ng-content>\n </div>\n </header>\n <div class=\"novo-activity-table-loading-mask\" *ngIf=\"dataSource?.loading || loading\" data-automation-id=\"novo-activity-table-loading\">\n <novo-loading></novo-loading>\n </div>\n <div class=\"novo-activity-table-filter-container\">\n <div class=\"novo-activity-table-custom-filter\" *ngIf=\"customFilter\">\n <ng-content select=\"[novo-activity-table-custom-filter]\"></ng-content>\n </div>\n <div class=\"novo-activity-table-container\">\n <novo-simple-table\n *ngIf=\"columns?.length > 0\"\n [dataSource]=\"dataSource\"\n novoSortFilter\n novoSelection\n [class.empty]=\"dataSource?.currentlyEmpty && state.userFiltered\"\n [hidden]=\"dataSource?.totallyEmpty && !state.userFiltered\">\n <ng-content></ng-content>\n <ng-container novoSimpleColumnDef=\"selection\">\n <novo-simple-checkbox-header-cell *novoSimpleHeaderCellDef></novo-simple-checkbox-header-cell>\n <novo-simple-checkbox-cell *novoSimpleCellDef=\"let row; let i = index\" [row]=\"row\" [index]=\"i\"></novo-simple-checkbox-cell>\n </ng-container>\n <ng-container *ngFor=\"let column of actionColumns\" [novoSimpleColumnDef]=\"column.id\">\n <novo-simple-empty-header-cell\n [class.button-header-cell]=\"!column.options\"\n [class.dropdown-header-cell]=\"column.options\"\n *novoSimpleHeaderCellDef\n ></novo-simple-empty-header-cell>\n <novo-simple-action-cell *novoSimpleCellDef=\"let row; let i = index\" [row]=\"row\" [column]=\"column\"></novo-simple-action-cell>\n </ng-container>\n <ng-container *ngFor=\"let column of columns\" [novoSimpleColumnDef]=\"column.id\">\n <novo-simple-header-cell\n *novoSimpleHeaderCellDef\n [column]=\"column\"\n [novo-simple-cell-config]=\"column.config\"\n [defaultSort]=\"defaultSort\"\n >{{ column.label }}</novo-simple-header-cell>\n <novo-simple-cell *novoSimpleCellDef=\"let row\" [column]=\"column\" [row]=\"row\"></novo-simple-cell>\n </ng-container>\n <novo-simple-header-row *novoSimpleHeaderRowDef=\"displayedColumns\"></novo-simple-header-row>\n <novo-simple-row *novoSimpleRowDef=\"let row; columns: displayedColumns\"></novo-simple-row>\n </novo-simple-table>\n <div\n class=\"novo-activity-table-no-results-container\"\n *ngIf=\"dataSource?.currentlyEmpty && state.userFiltered && !dataSource?.loading && !loading && !dataSource.pristine\"\n >\n <div #filtered><ng-content select=\"[novo-activity-table-no-results-message]\"></ng-content></div>\n <div class=\"novo-activity-table-empty-message\" *ngIf=\"filtered.childNodes.length == 0\">\n <h4><i class=\"bhi-search-question\"></i> {{ labels.noMatchingRecordsMessage }}</h4>\n </div>\n </div>\n <div\n class=\"novo-activity-table-empty-container\"\n *ngIf=\"dataSource?.totallyEmpty && !dataSource?.loading && !loading && !state.userFiltered && !dataSource.pristine\"\n >\n <div #empty><ng-content select=\"[novo-activity-table-empty-message]\"></ng-content></div>\n <div class=\"novo-activity-table-empty-message\" *ngIf=\"empty.childNodes.length == 0\">\n <h4><i class=\"bhi-search-question\"></i> {{ labels.emptyTableMessage }}</h4>\n </div>\n </div>\n </div>\n </div>\n `,\n styleUrls: ['./table.scss'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n NovoActivityTableState,\n { provide: _VIEW_REPEATER_STRATEGY, useClass: _DisposeViewRepeaterStrategy },\n { provide: _COALESCED_STYLE_SCHEDULER, useClass: _CoalescedStyleScheduler },\n ],\n standalone: false,\n})\nexport class NovoActivityTable<T> implements AfterContentInit, OnChanges, OnDestroy {\n @HostBinding('class.global-search-hidden')\n globalSearchHiddenClassToggle: boolean = false;\n\n @Input()\n activityService: ActivityTableService<T>;\n @Input()\n columns: SimpleTableColumn<T>[];\n @Input()\n displayedColumns: string[];\n @Input()\n actionColumns: SimpleTableActionColumn<T>[];\n @Input()\n paginationOptions: SimpleTablePaginationOptions;\n @Input()\n searchOptions: SimpleTableSearchOptions;\n @Input()\n defaultSort: { id: string; value: string };\n @Input()\n outsideFilter: EventEmitter<any>;\n\n @Input()\n set customFilter(v: boolean) {\n this._customFilter = coerceBooleanProperty(v);\n }\n get customFilter() {\n return this._customFilter;\n }\n private _customFilter: boolean;\n\n @Input()\n set forceShowHeader(v: boolean) {\n this._forceShowHeader = coerceBooleanProperty(v);\n }\n get forceShowHeader() {\n return this._forceShowHeader;\n }\n private _forceShowHeader: boolean;\n\n @Input()\n set hideGlobalSearch(v: boolean) {\n this._hideGlobalSearch = coerceBooleanProperty(v);\n this.globalSearchHiddenClassToggle = this._hideGlobalSearch;\n }\n get hideGlobalSearch() {\n return this._hideGlobalSearch;\n }\n private _hideGlobalSearch: boolean;\n\n @Input()\n set debug(v: boolean) {\n this._debug = coerceBooleanProperty(v);\n }\n get debug() {\n return this._debug;\n }\n private _debug: boolean;\n\n public dataSource: ActivityTableDataSource<T>;\n public loading: boolean = true;\n\n private outsideFilterSubscription: Subscription;\n\n @HostBinding('class.empty')\n get empty() {\n return this.dataSource && this.dataSource.totallyEmpty;\n }\n\n @HostBinding('class.loading')\n get loadingClass() {\n return this.loading || (this.dataSource && this.dataSource.loading);\n }\n\n constructor(public labels: NovoLabelService, private ref: ChangeDetectorRef, public state: NovoActivityTableState) {\n notify('[Deprecated]: The simple table is deprecated. Please migrate to novo-data-tables!');\n }\n\n public ngOnChanges(changes: SimpleChanges): void {\n this.loading = changes.activityService && !changes.activityService.currentValue;\n this.ref.detectChanges();\n if (changes.activityService && changes.activityService.currentValue) {\n this.loading = false;\n this.dataSource = new ActivityTableDataSource<T>(this.activityService, this.state, this.ref);\n this.ref.detectChanges();\n }\n if (changes.outsideFilter && changes.outsideFilter.currentValue) {\n if (!this.outsideFilterSubscription) {\n this.outsideFilterSubscription = this.outsideFilter.subscribe((filter: any) => {\n this.state.outsideFilter = filter;\n this.state.updates.next({ globalSearch: this.state.globalSearch, filter: this.state.filter, sort: this.state.sort });\n this.ref.markForCheck();\n });\n }\n }\n }\n\n public ngOnDestroy(): void {\n if (this.outsideFilterSubscription) {\n this.outsideFilterSubscription.unsubscribe();\n }\n }\n\n public ngAfterContentInit(): void {\n if (this.paginationOptions && !this.paginationOptions.page) {\n this.paginationOptions.page = 0;\n }\n if (this.paginationOptions && !this.paginationOptions.pageSize) {\n this.paginationOptions.pageSize = 50;\n }\n if (this.paginationOptions && !this.paginationOptions.pageSizeOptions) {\n this.paginationOptions.pageSizeOptions = [10, 25, 50, 100];\n }\n this.state.page = this.paginationOptions ? this.paginationOptions.page : undefined;\n this.state.pageSize = this.paginationOptions ? this.paginationOptions.pageSize : undefined;\n this.ref.markForCheck();\n }\n\n public onSearchChange(term: string): void {\n this.state.globalSearch = term;\n this.state.reset(false, true);\n this.state.updates.next({ globalSearch: term, filter: this.state.filter, sort: this.state.sort });\n }\n}\n","import { CdkTableModule } from '@angular/cdk/table';\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { NovoButtonModule } from 'novo-elements/elements/button';\nimport { NovoCheckboxModule } from 'novo-elements/elements/checkbox';\nimport { NovoCommonModule, NovoOptionModule } from 'novo-elements/elements/common';\nimport { NovoDatePickerModule } from 'novo-elements/elements/date-picker';\nimport { NovoDropdownModule } from 'novo-elements/elements/dropdown';\nimport { NovoFormExtrasModule } from 'novo-elements/elements/form';\nimport { NovoLoadingModule } from 'novo-elements/elements/loading';\nimport { NovoSearchBoxModule } from 'novo-elements/elements/search';\nimport { NovoSelectModule } from 'novo-elements/elements/select';\nimport { NovoTilesModule } from 'novo-elements/elements/tiles';\nimport {\n NovoSimpleActionCell,\n NovoSimpleCell,\n NovoSimpleCellDef,\n NovoSimpleCheckboxCell,\n NovoSimpleCheckboxHeaderCell,\n NovoSimpleColumnDef,\n NovoSimpleEmptyHeaderCell,\n NovoSimpleHeaderCell,\n NovoSimpleHeaderCellDef,\n} from './cell';\nimport { NovoSimpleCellHeader, NovoSimpleFilterFocus } from './cell-header';\nimport { NovoSimpleTablePagination } from './pagination';\nimport { Pagination } from './PaginationOld';\nimport { NovoSimpleHeaderRow, NovoSimpleHeaderRowDef, NovoSimpleRow, NovoSimpleRowDef } from './row';\nimport { NovoSelection, NovoSortFilter } from './sort';\nimport { NovoActivityTableState } from './state';\nimport {\n NovoActivityTable,\n NovoActivityTableActions,\n NovoActivityTableCustomFilter,\n NovoActivityTableCustomHeader,\n NovoActivityTableEmptyMessage,\n NovoActivityTableNoResultsMessage,\n NovoTable,\n} from './table';\n\n@NgModule({\n imports: [\n NovoDatePickerModule,\n CdkTableModule,\n CommonModule,\n FormsModule,\n NovoCommonModule,\n NovoButtonModule,\n NovoDropdownModule,\n NovoFormExtrasModule,\n NovoLoadingModule,\n NovoTilesModule,\n NovoSearchBoxModule,\n NovoSelectModule,\n NovoCheckboxModule,\n NovoOptionModule,\n ],\n exports: [\n NovoTable,\n NovoSimpleCellDef,\n NovoSimpleHeaderCellDef,\n NovoSimpleColumnDef,\n NovoActivityTableEmptyMessage,\n NovoActivityTableNoResultsMessage,\n NovoSimpleHeaderRowDef,\n NovoSimpleRowDef,\n NovoSimpleCellHeader,\n NovoSortFilter,\n NovoSimpleActionCell,\n NovoSimpleEmptyHeaderCell,\n NovoSimpleHeaderCell,\n NovoSimpleCell,\n NovoSimpleHeaderRow,\n NovoSimpleRow,\n NovoSimpleFilterFocus,\n NovoSimpleTablePagination,\n NovoActivityTableCustomHeader,\n NovoSimpleCheckboxCell,\n NovoSimpleCheckboxHeaderCell,\n NovoSelection,\n NovoActivityTable,\n NovoActivityTableActions,\n NovoActivityTableCustomFilter,\n Pagination,\n ],\n declarations: [\n NovoTable,\n NovoSimpleCellDef,\n NovoSimpleHeaderCellDef,\n NovoSimpleColumnDef,\n NovoActivityTableEmptyMessage,\n NovoActivityTableNoResultsMessage,\n NovoSimpleHeaderRowDef,\n NovoSimpleRowDef,\n NovoSimpleCellHeader,\n NovoSortFilter,\n NovoSimpleActionCell,\n NovoSimpleEmptyHeaderCell,\n NovoSimpleHeaderCell,\n NovoSimpleCell,\n NovoSimpleHeaderRow,\n NovoSimpleRow,\n NovoSimpleFilterFocus,\n NovoSimpleTablePagination,\n NovoActivityTableCustomHeader,\n NovoSimpleCheckboxCell,\n NovoSimpleCheckboxHeaderCell,\n NovoSelection,\n NovoActivityTable,\n NovoActivityTableActions,\n NovoActivityTableCustomFilter,\n Pagination,\n ],\n providers: [NovoActivityTableState],\n})\nexport class NovoSimpleTableModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1.NovoActivityTableState","i2.NovoSelection","i5","i7","i8","i1","i2.NovoActivityTableState","i3.NovoSortFilter","i4","i9","i10","i3","i6","i2","i3.NovoActivityTableState","i8.NovoSimpleCellDef","i8.NovoSimpleHeaderCellDef","i8.NovoSimpleColumnDef","i9.NovoSimpleHeaderRowDef","i9.NovoSimpleRowDef","i10.NovoSimpleCellHeader","i11.NovoSortFilter","i8.NovoSimpleActionCell","i8.NovoSimpleEmptyHeaderCell","i8.NovoSimpleHeaderCell","i8.NovoSimpleCell","i9.NovoSimpleHeaderRow","i9.NovoSimpleRow","i12.NovoSimpleTablePagination","i8.NovoSimpleCheckboxCell","i8.NovoSimpleCheckboxHeaderCell","i11.NovoSelection"],"mappings":"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"}
|