@den4ik92/ng2-smart-table 19.1.2 → 19.1.3
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.
|
@@ -27,6 +27,7 @@ class DefaultFilter {
|
|
|
27
27
|
this.delay = 300;
|
|
28
28
|
this.query = '';
|
|
29
29
|
this.inputClass = input('');
|
|
30
|
+
this.source = input.required();
|
|
30
31
|
this.column = input.required();
|
|
31
32
|
this.filter = output();
|
|
32
33
|
}
|
|
@@ -39,7 +40,7 @@ class DefaultFilter {
|
|
|
39
40
|
this.filter.emit(this.query);
|
|
40
41
|
}
|
|
41
42
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: DefaultFilter, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
42
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "19.0.3", type: DefaultFilter, isStandalone: true, selector: "ng2-default-base-filter-component", inputs: { query: { classPropertyName: "query", publicName: "query", isSignal: false, isRequired: false, transformFunction: null }, inputClass: { classPropertyName: "inputClass", publicName: "inputClass", isSignal: true, isRequired: false, transformFunction: null }, column: { classPropertyName: "column", publicName: "column", isSignal: true, isRequired: true, transformFunction: null } }, outputs: { filter: "filter" }, ngImport: i0, template: '', isInline: true }); }
|
|
43
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "19.0.3", type: DefaultFilter, isStandalone: true, selector: "ng2-default-base-filter-component", inputs: { query: { classPropertyName: "query", publicName: "query", isSignal: false, isRequired: false, transformFunction: null }, inputClass: { classPropertyName: "inputClass", publicName: "inputClass", isSignal: true, isRequired: false, transformFunction: null }, source: { classPropertyName: "source", publicName: "source", isSignal: true, isRequired: true, transformFunction: null }, column: { classPropertyName: "column", publicName: "column", isSignal: true, isRequired: true, transformFunction: null } }, outputs: { filter: "filter" }, ngImport: i0, template: '', isInline: true }); }
|
|
43
44
|
}
|
|
44
45
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: DefaultFilter, decorators: [{
|
|
45
46
|
type: Component,
|
|
@@ -2709,6 +2710,7 @@ class DefaultFilterComponent extends FilterDefault {
|
|
|
2709
2710
|
<ng2-select-filter
|
|
2710
2711
|
[query]="query"
|
|
2711
2712
|
[class]="inputClass()"
|
|
2713
|
+
[source]="source()"
|
|
2712
2714
|
[column]="column()"
|
|
2713
2715
|
(filter)="onFilter($event)"
|
|
2714
2716
|
>
|
|
@@ -2716,6 +2718,7 @@ class DefaultFilterComponent extends FilterDefault {
|
|
|
2716
2718
|
} @case ('checkbox') {
|
|
2717
2719
|
<ng2-checkbox-filter
|
|
2718
2720
|
[query]="query"
|
|
2721
|
+
[source]="source()"
|
|
2719
2722
|
[class]="inputClass()"
|
|
2720
2723
|
[column]="column()"
|
|
2721
2724
|
(filter)="onFilter($event)"
|
|
@@ -2724,6 +2727,7 @@ class DefaultFilterComponent extends FilterDefault {
|
|
|
2724
2727
|
} @default {
|
|
2725
2728
|
<ng2-input-filter
|
|
2726
2729
|
[query]="query"
|
|
2730
|
+
[source]="source()"
|
|
2727
2731
|
[class]="inputClass()"
|
|
2728
2732
|
[column]="column()"
|
|
2729
2733
|
(filter)="onFilter($event)"
|
|
@@ -2741,6 +2745,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.3", ngImpor
|
|
|
2741
2745
|
<ng2-select-filter
|
|
2742
2746
|
[query]="query"
|
|
2743
2747
|
[class]="inputClass()"
|
|
2748
|
+
[source]="source()"
|
|
2744
2749
|
[column]="column()"
|
|
2745
2750
|
(filter)="onFilter($event)"
|
|
2746
2751
|
>
|
|
@@ -2748,6 +2753,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.3", ngImpor
|
|
|
2748
2753
|
} @case ('checkbox') {
|
|
2749
2754
|
<ng2-checkbox-filter
|
|
2750
2755
|
[query]="query"
|
|
2756
|
+
[source]="source()"
|
|
2751
2757
|
[class]="inputClass()"
|
|
2752
2758
|
[column]="column()"
|
|
2753
2759
|
(filter)="onFilter($event)"
|
|
@@ -2756,6 +2762,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.3", ngImpor
|
|
|
2756
2762
|
} @default {
|
|
2757
2763
|
<ng2-input-filter
|
|
2758
2764
|
[query]="query"
|
|
2765
|
+
[source]="source()"
|
|
2759
2766
|
[class]="inputClass()"
|
|
2760
2767
|
[column]="column()"
|
|
2761
2768
|
(filter)="onFilter($event)"
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"den4ik92-ng2-smart-table.mjs","sources":["../../../projects/ng2-smart-table/src/lib/components/cell/cell-editors/default-editor.ts","../../../projects/ng2-smart-table/src/lib/components/filter/filter-types/default-filter.ts","../../../projects/ng2-smart-table/src/lib/lib/helpers.ts","../../../projects/ng2-smart-table/src/lib/components/table-columns-editor/table-columns-editor.component.ts","../../../projects/ng2-smart-table/src/lib/components/table-columns-editor/table-columns-editor.component.html","../../../projects/ng2-smart-table/src/lib/components/table-columns-editor/column-editor.directive.ts","../../../projects/ng2-smart-table/src/lib/lib/data-set/cell.ts","../../../projects/ng2-smart-table/src/lib/lib/data-set/column.ts","../../../projects/ng2-smart-table/src/lib/lib/data-set/row.ts","../../../projects/ng2-smart-table/src/lib/lib/interfaces/smart-table.models.ts","../../../projects/ng2-smart-table/src/lib/lib/data-source/data-source.ts","../../../projects/ng2-smart-table/src/lib/lib/data-source/local/local.filter.ts","../../../projects/ng2-smart-table/src/lib/lib/data-source/local/local.pager.ts","../../../projects/ng2-smart-table/src/lib/lib/data-source/local/local.sorter.ts","../../../projects/ng2-smart-table/src/lib/lib/data-source/local/local.data-source.ts","../../../projects/ng2-smart-table/src/lib/components/pager/pager.component.ts","../../../projects/ng2-smart-table/src/lib/components/cell/cell-edit-mode/edit-cell-default.ts","../../../projects/ng2-smart-table/src/lib/components/cell/cell-edit-mode/custom-edit.component.ts","../../../projects/ng2-smart-table/src/lib/components/cell/cell-editors/checkbox-editor.component.ts","../../../projects/ng2-smart-table/src/lib/components/cell/cell-editors/input-editor.component.ts","../../../projects/ng2-smart-table/src/lib/components/cell/cell-editors/select-editor.component.ts","../../../projects/ng2-smart-table/src/lib/components/cell/cell-editors/textarea-editor.component.ts","../../../projects/ng2-smart-table/src/lib/components/cell/cell-edit-mode/default-edit.component.ts","../../../projects/ng2-smart-table/src/lib/components/cell/cell-edit-mode/default-edit.component.html","../../../projects/ng2-smart-table/src/lib/components/cell/cell-edit-mode/edit-cell.component.ts","../../../projects/ng2-smart-table/src/lib/components/cell/cell-view-mode/custom-view.component.ts","../../../projects/ng2-smart-table/src/lib/components/cell/cell-view-mode/view-cell.component.ts","../../../projects/ng2-smart-table/src/lib/components/cell/cell.component.ts","../../../projects/ng2-smart-table/src/lib/components/tbody/cells/create-cancel.component.ts","../../../projects/ng2-smart-table/src/lib/lib/data-set/data-set.ts","../../../projects/ng2-smart-table/src/lib/lib/grid.ts","../../../projects/ng2-smart-table/src/lib/components/tbody/cells/custom.component.ts","../../../projects/ng2-smart-table/src/lib/components/tbody/cells/edit-delete.component.ts","../../../projects/ng2-smart-table/src/lib/components/tbody/tbody.component.ts","../../../projects/ng2-smart-table/src/lib/components/tbody/tbody.component.html","../../../projects/ng2-smart-table/src/lib/components/filter/filter-default.ts","../../../projects/ng2-smart-table/src/lib/components/filter/custom-filter.component.ts","../../../projects/ng2-smart-table/src/lib/components/filter/filter-types/checkbox-filter.component.ts","../../../projects/ng2-smart-table/src/lib/components/filter/filter-types/input-filter.component.ts","../../../projects/ng2-smart-table/src/lib/components/filter/filter-types/select-filter.component.ts","../../../projects/ng2-smart-table/src/lib/components/filter/default-filter.component.ts","../../../projects/ng2-smart-table/src/lib/components/filter/filter.component.ts","../../../projects/ng2-smart-table/src/lib/components/thead/cells/add-button.component.ts","../../../projects/ng2-smart-table/src/lib/components/thead/rows/thead-filters-row.component.ts","../../../projects/ng2-smart-table/src/lib/components/thead/cells/actions.component.ts","../../../projects/ng2-smart-table/src/lib/components/thead/rows/thead-form-row.component.ts","../../../projects/ng2-smart-table/src/lib/components/thead/cells/actions-title.component.ts","../../../projects/ng2-smart-table/src/lib/components/thead/cells/checkbox-select-all.component.ts","../../../projects/ng2-smart-table/src/lib/components/thead/cells/title/title.component.ts","../../../projects/ng2-smart-table/src/lib/components/thead/cells/column-title.component.ts","../../../projects/ng2-smart-table/src/lib/components/thead/rows/thead-titles-row.component.ts","../../../projects/ng2-smart-table/src/lib/components/thead/thead.component.ts","../../../projects/ng2-smart-table/src/lib/components/thead/thead.component.html","../../../projects/ng2-smart-table/src/lib/ng2-smart-table.component.ts","../../../projects/ng2-smart-table/src/lib/ng2-smart-table.component.html","../../../projects/ng2-smart-table/src/den4ik92-ng2-smart-table.ts"],"sourcesContent":["import {\n Component,\n input,\n InputSignal\n} from \"@angular/core\";\n\nimport { Cell } from \"../../../lib/data-set/cell\";\n\n@Component({ template: \"\", selector: 'ng2-default-editor-base-component' })\nexport class DefaultEditor implements Editor {\n readonly cell = input.required<Cell>();\n readonly inputClass = input(\"\");\n}\n\nexport interface Editor {\n cell: InputSignal<Cell>;\n inputClass: InputSignal<string>;\n}\n","import { Component, EventEmitter, Input, input, InputSignal, OnDestroy, output, OutputEmitterRef } from '@angular/core';\nimport { Subscription } from 'rxjs';\n\nimport { Column } from '../../../lib/data-set/column';\n\n@Component({ template: '', selector: 'ng2-default-base-filter-component' })\nexport class DefaultFilter implements Filter, OnDestroy {\n delay = 300;\n changesSubscription?: Subscription;\n @Input()query = '';\n readonly inputClass = input<string>('');\n readonly column = input.required<Column>();\n readonly filter = output<string>();\n\n ngOnDestroy() {\n if (this.changesSubscription) {\n this.changesSubscription.unsubscribe();\n }\n }\n\n setFilter() {\n this.filter.emit(this.query);\n }\n}\n\nexport interface Filter {\n delay?: number;\n changesSubscription?: Subscription;\n query: string;\n inputClass: InputSignal<string>;\n column: InputSignal<Column>;\n filter: EventEmitter<string> | OutputEmitterRef<any>;\n}\n","/**\n * Extending object that entered in first argument.\n *\n * Returns extended object or false if have no target object or incorrect type.\n *\n * If you wish to clone source object (without modify it), just use empty new\n * object as first argument, like this:\n * deepExtend({}, yourObj_1, [yourObj_N]);\n */\nexport const deepExtend = function(...objects: any[]): any {\n if (objects.length < 1 || typeof objects[0] !== 'object') {\n return false;\n }\n\n if (objects.length < 2) {\n return objects[0];\n }\n\n const target = objects[0];\n\n // convert arguments to array and cut off target object\n const args = Array.prototype.slice.call(objects, 1);\n\n let val, src;\n\n args.forEach((obj: any) => {\n // skip argument if it is array or isn't object\n if (typeof obj !== 'object' || Array.isArray(obj)) {\n return;\n }\n\n Object.keys(obj).forEach(function (key) {\n src = target[key]; // source value\n val = obj[key]; // new value\n\n // recursion prevention\n if (val === target) {\n return;\n\n /**\n * if new value isn't object then just overwrite by new value\n * instead of extending.\n */\n } else if (typeof val !== 'object' || val === null) {\n target[key] = val;\n return;\n\n // just clone arrays (and recursive clone objects inside)\n } else if (Array.isArray(val)) {\n target[key] = [...val];\n return;\n\n // overwrite by new value if source isn't object or array\n } else if (typeof src !== 'object' || src === null || Array.isArray(src)) {\n target[key] = deepExtend({}, val);\n return;\n\n // source value and new value is objects both, extending...\n } else {\n target[key] = deepExtend(src, val);\n return;\n }\n });\n });\n\n return target;\n};\n\nexport class Deferred<T> {\n promise: Promise<T>;\n resolve!: (value?: T) => void;\n reject!: (reason?: string) => void;\n\n constructor() {\n this.promise = new Promise<T>((resolve, reject) => {\n this.resolve = resolve as any;\n this.reject = reject;\n });\n }\n}\n\n// getDeepFromObject({result: {data: 1}}, 'result.data', 2); // returns 1\nexport function getDeepFromObject(object = {}, name: string, defaultValue: any = null) {\n try {\n let level = deepExtend({}, object)\n const keys = name.split('.');\n if (keys.length === 1) {\n return level[keys[0]] ?? defaultValue;\n }\n keys.forEach((k) => {\n if (level && typeof level[k] !== 'undefined') {\n level = level[k];\n } else {\n level = defaultValue\n }\n });\n return level ?? defaultValue\n } catch {\n return defaultValue\n }\n}\n\nexport function getPageForRowIndex(index: number, perPage: number): number {\n // we need to add 1 to convert 0-based index to 1-based page number.\n return Math.floor(index / perPage) + 1;\n}\n\nexport function cloneArrayOfObject<T>(array: T[]): T[] {\n return array.map((obj) => Object.assign({}, obj));\n}\n\nexport function getRandomId(prefix = '', suffix = ''): string {\n return `${prefix ? `${prefix}-` : ''}${Math.random().toString(16).slice(2)}${suffix ? `-${suffix}` : ''}`;\n}\n\nexport function setLocalStorage(key: string, value: string | object | boolean): void {\n localStorage.setItem(key, JSON.stringify(value));\n}\n\nexport function getLocalStorage<T = string>(key: string): T | null {\n const valueString = localStorage.getItem(key);\n if (!valueString) {\n return null;\n }\n try {\n return JSON.parse(valueString);\n } catch {\n return null;\n }\n}\n","import {\n CdkDrag,\n CdkDragDrop,\n CdkDragPlaceholder,\n CdkDropList,\n moveItemInArray,\n} from \"@angular/cdk/drag-drop\";\nimport { Component, effect, input, signal } from \"@angular/core\";\nimport { ColumnPositionState } from \"ng2-smart-table\";\nimport { Grid } from \"../../lib/grid\";\nimport { cloneArrayOfObject } from \"../../lib/helpers\";\n\n@Component({\n selector: \"ng2-table-columns-editor\",\n templateUrl: \"./table-columns-editor.component.html\",\n styleUrls: [\"./table-columns-editor.component.scss\"],\n imports: [CdkDropList, CdkDrag, CdkDragPlaceholder],\n})\nexport class TableColumnsEditorComponent {\n protected infoText =\n \"You can drag and drop columns as you wish and also disable unnecessary ones.\";\n public grid = input<Grid>();\n public close = input.required<() => void>();\n\n protected currentState: ColumnPositionState[] = [];\n stateHasChanged = signal(false)\n\n constructor() {\n effect(() => {\n this.currentState = cloneArrayOfObject(this.grid()?.currentColumnsSortState || [])\n })\n }\n\n resetChanges() {\n this.currentState = cloneArrayOfObject(this.grid()?.currentColumnsSortState || []);\n this.stateHasChanged.set(false);\n }\n\n drop(event: CdkDragDrop<ColumnPositionState[]>) {\n moveItemInArray(\n this.currentState,\n event.previousIndex,\n event.currentIndex\n );\n this.updateChangedState()\n }\n\n setVisibility(index: number) {\n this.currentState[index].hide = !this.currentState[index].hide;\n this.updateChangedState()\n }\n\n setAndUpdate() {\n this.grid()?.applyColumnsSortState(this.currentState);\n this.close()()\n this.stateHasChanged.set(false);\n }\n\n private updateChangedState() {\n this.stateHasChanged.set(JSON.stringify(this.grid()?.currentColumnsSortState) !== JSON.stringify(this.currentState))\n }\n}\n","<div class=\"sort-card\">\n <div class=\"sort-card-header\">\n <h6>Table columns setup</h6>\n </div>\n <div class=\"sort-card-body\">\n <div\n class=\"list\"\n cdkDropList\n [cdkDropListData]=\"currentState\"\n (cdkDropListDropped)=\"drop($event)\"\n >\n @for (column of currentState; track column.key; let i = $index) {\n\n <div\n cdkDrag\n [cdkDragLockAxis]=\"'y'\"\n [cdkDragStartDelay]=\"300\"\n [cdkDragDisabled]=\"column.moveDisabled\"\n class=\"drag-row\"\n #dragRow\n [style.--drag-row-height]=\"50\"\n >\n <div class=\"drag-placeholder\" *cdkDragPlaceholder></div>\n <div class=\"index-cell\">\n {{ i + 1 }}\n </div>\n <label class=\"sort-column-checkbox-wrap\" [for]=\"'sort-column-checkbox-' + i\">\n <span></span>\n <input\n [disabled]=\"column.moveDisabled\"\n [id]=\"'sort-column-checkbox-' + i\"\n title=\"Active state. If checked the column will be displayed\"\n type=\"checkbox\"\n class=\"sort-column-checkbox-input\"\n [checked]=\"!column.hide\"\n (change)=\"setVisibility(i)\"\n />\n <span></span>\n </label>\n {{ column.title }}\n </div>\n }\n </div>\n </div>\n @if (stateHasChanged()) {\n <div class=\"sort-card-footer\">\n <button class=\"reset-button\" (click)=\"resetChanges()\">reset</button>\n <button class=\"update-button\" (click)=\"setAndUpdate()\">Update</button>\n </div>\n }\n</div>\n","import { Overlay, OverlayConfig, OverlayRef } from \"@angular/cdk/overlay\";\nimport { ComponentPortal } from \"@angular/cdk/portal\";\nimport {\n ComponentRef,\n computed,\n Directive,\n ElementRef,\n inject,\n input,\n OnDestroy\n} from \"@angular/core\";\nimport { Ng2SmartTableComponent } from \"ng2-smart-table\";\nimport { Subject } from \"rxjs\";\nimport { takeUntil } from \"rxjs/operators\";\nimport { TableColumnsEditorComponent } from \"./table-columns-editor.component\";\n\n@Directive({\n selector: \"[ng2SmartTableColumnEditor]\",\n host: {\n \"(click)\": \"buttclicked()\",\n },\n})\nexport class SmartTableColumnEditorDirective implements OnDestroy {\n tableComponent = input<Ng2SmartTableComponent>();\n\n private readonly grid = computed(() => {\n return this.tableComponent()?.grid;\n });\n\n private readonly overlay = inject(Overlay);\n private readonly elementRef = inject(ElementRef);\n private readonly destroy$ = new Subject<void>()\n\n protected overlayRef?: OverlayRef;\n\n\n\n ngOnDestroy(): void {\n this.overlayRef?.dispose();\n this.destroy$.next();\n this.destroy$.complete();\n }\n\n protected showDropdown(): void {\n this.overlayRef = this.overlay.create(this.getOverlayConfig());\n const componentPortal = new ComponentPortal(TableColumnsEditorComponent);\n const dropdownRef: ComponentRef<TableColumnsEditorComponent> =\n this.overlayRef.attach(componentPortal);\n dropdownRef.setInput(\"grid\", this.grid());\n dropdownRef.setInput(\"close\", this.hide.bind(this));\n this.overlayRef?.backdropClick().pipe(takeUntil(this.destroy$)).subscribe(() => this.hide());\n }\n\n public hide() {\n this.overlayRef?.detach();\n this.overlayRef?.dispose();\n this.destroy$.next();\n }\n\n buttclicked() {\n this.showDropdown();\n }\n\n private getOverlayConfig(): OverlayConfig {\n const positionStrategy = this.overlay\n .position()\n .flexibleConnectedTo(this.elementRef)\n .withPush(false)\n .withPositions([\n {\n originX: \"center\",\n originY: \"bottom\",\n overlayX: \"end\",\n overlayY: \"top\",\n },\n {\n originX: \"center\",\n originY: \"bottom\",\n overlayX: \"center\",\n overlayY: \"top\",\n },\n {\n originX: \"center\",\n originY: \"bottom\",\n overlayX: \"start\",\n overlayY: \"top\",\n },\n {\n originX: \"center\",\n originY: \"top\",\n overlayX: \"start\",\n overlayY: \"bottom\",\n },\n {\n originX: \"center\",\n originY: \"top\",\n overlayX: \"center\",\n overlayY: \"bottom\",\n },\n {\n originX: \"center\",\n originY: \"top\",\n overlayX: \"start\",\n overlayY: \"bottom\",\n },\n ]);\n\n return new OverlayConfig({\n positionStrategy: positionStrategy,\n hasBackdrop: true,\n backdropClass: \"cdk-overlay-transparent-backdrop\",\n });\n }\n}\n","import { Column } from './column';\nimport { DataSet } from './data-set';\nimport { Row } from './row';\n\nexport class Cell {\n private prepareValue = (value: any) => value\n newValue: any = '';\n\n constructor(protected value: any, protected row: Row, protected column: Column, protected dataSet: DataSet) {\n this.newValue = value;\n }\n\n getColumn(): Column {\n return this.column;\n }\n\n getColumnClass(): string | undefined {\n return this.column.class;\n }\n\n getRow(): Row {\n return this.row;\n }\n\n getValue(): any {\n const prepare = this.column.getValuePrepareFunction() || this.prepareValue;\n return prepare.call(null, this.value, this.row.getData(), this);\n }\n\n getNotPrepareValue(): any {\n return this.value\n }\n\n setValue(value: any): any {\n this.newValue = value;\n }\n\n getId(): string {\n return this.getColumn().id;\n }\n\n getTitle(): string {\n return this.getColumn().title;\n }\n\n isEditable(): boolean {\n if (this.getRow().index === -1) {\n return this.getColumn().isAddable;\n }\n else {\n return this.getColumn().isEditable;\n }\n }\n\n}\n","import { SmartTableCompareFunction, SmartTableEditorAndFilter, SmartTableFilterFunction, SmartTableValuePrepareFunction } from '../interfaces/smart-table.models';\nimport { SmartTableColumnSettings, SmartTableColumnSettingsTypes, SmartTableSortDirection } from './../interfaces/smart-table.models';\nimport { DataSet } from './data-set';\n\nexport class Column {\n title = '';\n type: SmartTableColumnSettingsTypes = 'text';\n class = '';\n width = '';\n hide = false;\n isSortable = false;\n isEditable = true;\n isAddable = true;\n isFilterable = false;\n sortDirection: SmartTableSortDirection = 'asc';\n defaultSortDirection: SmartTableSortDirection | false = false;\n editor: SmartTableEditorAndFilter | false = false;\n filter: SmartTableEditorAndFilter | false = false;\n renderComponent: any;\n compareFunction?: SmartTableCompareFunction;\n valuePrepareFunction?: SmartTableValuePrepareFunction;\n filterFunction?: SmartTableFilterFunction;\n\n constructor(public id: string, private settings: SmartTableColumnSettings, protected dataSet: DataSet) {\n this.process(this.settings);\n }\n\n getCompareFunction(): SmartTableCompareFunction | undefined {\n return this.compareFunction;\n }\n\n getValuePrepareFunction(): SmartTableValuePrepareFunction | undefined {\n return this.valuePrepareFunction;\n }\n\n getFilterFunction(): SmartTableFilterFunction | undefined {\n return this.filterFunction;\n }\n\n getConfig(): any {\n if (this.editor && (this.editor.type === 'checkbox' || this.editor.type === 'custom' || this.editor.type === 'list')) {\n return this.editor?.config\n }\n return false\n }\n\n getFilterType() {\n return this.filter && this.filter.type;\n }\n\n getFilterConfig(): any {\n if (this.filter && (this.filter.type === 'checkbox' || this.filter.type === 'custom' || this.filter.type === 'list')) {\n return this.filter?.config\n }\n return false;\n }\n\n protected process(settings: SmartTableColumnSettings) {\n this.title = settings.title;\n this.class = settings.class || '';\n this.width = settings.width || '';\n this.hide = !!settings.hide;\n this.type = settings.type;\n if (settings?.editor) {\n this.editor = settings.editor;\n }\n if (settings?.filter) {\n this.filter = settings.filter;\n }\n if (settings.type === 'custom' && settings.renderComponent) {\n this.renderComponent = settings.renderComponent;\n }\n this.isFilterable = typeof settings.filter === 'undefined' ? true : !!settings['filter'];\n this.defaultSortDirection = settings?.sortDirection || false;\n this.isSortable = typeof settings.sort === 'undefined' ? true : settings.sort;\n this.isEditable = typeof settings.editable === 'undefined' ? true : settings.editable;\n this.isAddable=typeof settings.addable === 'undefined' ? true : settings.addable;\n this.sortDirection = this.prepareSortDirection();\n\n this.compareFunction = settings.compareFunction;\n this.valuePrepareFunction = settings.valuePrepareFunction;\n this.filterFunction = settings.filterFunction;\n }\n\n prepareSortDirection(): SmartTableSortDirection {\n return this.defaultSortDirection === 'desc' ? 'desc' : 'asc';\n }\n}\n","import { Cell } from './cell';\nimport { Column } from './column';\nimport { DataSet } from './data-set';\n\nexport class Row {\n\n pending = false;\n isSelected = false;\n isInEditing = false;\n cells: Cell[] = [];\n\n\n constructor(public index: number, private data: any, protected _dataSet: DataSet) {\n this.process();\n }\n\n getCell(column: Column): Cell | undefined {\n return this.cells.find(el => el.getColumn() === column);\n }\n\n getCells(): Cell[] {\n return this.cells;\n }\n\n getData(): any {\n return this.data;\n }\n\n getIsSelected(): boolean {\n return this.isSelected;\n }\n\n getNewData(): any {\n const values = Object.assign({}, this.data);\n this.getCells().forEach((cell) => values[cell.getColumn().id] = cell.newValue);\n return values;\n }\n\n setData<T=any>(data: T): void {\n this.data = data;\n this.process();\n }\n\n process(): void {\n this.cells = [];\n this._dataSet.getColumns().forEach((column: Column) => {\n const cell = this.createCell(column);\n this.cells.push(cell);\n });\n }\n\n createCell(column: Column): Cell {\n const defValue = (column as any).settings.defaultValue ? (column as any).settings.defaultValue : '';\n const value = typeof this.data[column.id] === 'undefined' ? defValue : this.data[column.id];\n return new Cell(value, this, column, this._dataSet);\n }\n}\n","import { Cell } from \"../data-set/cell\";\nimport { LocalDataSource } from \"../data-source/local/local.data-source\";\nimport { Deferred } from \"../helpers\";\n\ninterface SelectOption {\n\ttitle: string;\n\tvalue: any;\n}\n\nexport interface ViewCell<V=any, R=any> {\n value: V;\n rowData: R;\n}\n\nexport type ActionPosition = 'left' | 'right'\n\nexport interface ColumnPositionState {\n key: string;\n title: string;\n hide: boolean;\n moveDisabled: boolean;\n}\n\nexport interface SmartTableSettings<T extends Record<string, any> = any> {\n\tselectMode?: 'single' | 'multi';\n\tmode?: \"inline\" | \"external\";\n\tcolumnSortStorageKey?: string;\n\tcolumnSort?: boolean; // if you want to add column sort need to set true;\n\thideHeader?: boolean;\n\thideSubHeader?: boolean;\n\tactions?: SmartTableAction | false;\n\tactionsPosition?: ActionPosition;\n\tfilter?: {\n\t\tinputClass: string;\n\t};\n\tedit?:\n\t| {\n\t\tinputClass?: string;\n\t\teditButtonContent?: string;\n\t\tsaveButtonContent?: string;\n\t\tcancelButtonContent?: string;\n\t\tconfirmSave?: boolean;\n\t}\n\t| false;\n\tadd?:\n\t| {\n\t\tinputClass?: string;\n\t\taddButtonContent?: string;\n\t\tcreateButtonContent?: string;\n\t\tcancelButtonContent?: string;\n\t\tconfirmCreate?: boolean;\n\t}\n\t| false;\n\tdelete?:\n\t| {\n\t\tdeleteButtonContent?: string;\n\t\tconfirmDelete?: boolean;\n\t}\n\t| false;\n\tattr?: {\n\t\tid?: string;\n\t\tclass?: string;\n\t};\n\tnoDataMessage?: string;\n\tcolumns: SmartTableColumnSettings<T>[];\n\tpager?: SmartTablePagerSettings | false;\n\trowClassFunction?: (row: { data: T }) => string;\n}\n\nexport interface SmartTableAction {\n\tcolumnTitle?: string;\n\tadd?: boolean;\n\tedit?: boolean;\n\tdelete?: boolean;\n\tcustom?: SmartTableCustomAction[];\n}\n\nexport interface SmartTableCustomAction {\n\tname: string;\n\ttitle: string; // insert html content to action button\n}\n\nexport type SmartTableColumnSettingsTypes = 'text' | 'html' | 'custom'\n\nexport type SmartTableColumnSettings<T extends Record<string, any> = any> = SmartTableTextHtmlColumn<T> | SmartTableCustomColumn<T>;\n\nexport type SmartTableCompareFunction = (direction: number, a: any, b: any) => number;\nexport type SmartTableValuePrepareFunction<T extends Record<string, any> = any> = (columnData: any, rowData: T, cell: Cell) => any;\nexport type SmartTableFilterFunction = (columnData: any, search: string) => boolean;\n\ninterface SmartTableDefaultColumn<T extends Record<string, any>> {\n\tkey: keyof T;\n\ttitle: string;\n\twidth?: string; //example: '20px', '20%'\n\tclass?: string;\n\teditable?: boolean;\n\thide?: boolean;\n\t// disable column move in column change position list\n\tmoveDisabled?: boolean;\n\tsort?: boolean;\n\taddable?: boolean;\n\tsortDirection?: SmartTableSortDirection | false;\n\teditor?: SmartTableEditorAndFilter;\n\tfilter?: SmartTableEditorAndFilter | false;\n\tcompareFunction?: SmartTableCompareFunction;\n\tvaluePrepareFunction?: SmartTableValuePrepareFunction<T>;\n\tfilterFunction?: SmartTableFilterFunction;\n}\n\ninterface SmartTableTextHtmlColumn<T extends Record<string, any>> extends SmartTableDefaultColumn<T> {\n\ttype: 'text' | 'html';\n}\n\ninterface SmartTableCustomColumn<T extends Record<string, any>> extends SmartTableDefaultColumn<T> {\n\ttype: 'custom';\n\trenderComponent: any;\n}\n\nexport type SmartTableEditorAndFilterTypes = 'text' | 'textarea' | 'list' | 'custom' | 'checkbox';\n\nexport type SmartTableEditorAndFilter =\n\t| SmartTableTextEditor\n\t| SmartTableEditorList\n\t| SmartTableEditorCheckbox\n\t| SmartTableEditorCustom;\n\ninterface SmartTableTextEditor {\n\ttype: 'text' | 'textarea';\n\tconfig: any;\n}\n\ninterface SmartTableEditorList {\n\ttype: 'list';\n\tconfig: {\n\t\tselectText?: string;\n\t\tlist: SelectOption[];\n\t};\n}\n\ninterface SmartTableEditorCheckbox {\n\ttype: 'checkbox';\n\tconfig?: {\n\t\ttrue: any;\n\t\tfalse: any;\n\t\tresetText?: string;\n\t};\n}\n\ninterface SmartTableEditorCustom {\n\ttype: 'custom';\n\tcomponent: any;\n\tconfig?: any;\n}\n\ninterface SmartTablePagerSettings {\n\tdisplay: boolean;\n\tpage?: number;\n\tperPage: number;\n\tperPageSelect?: number[];\n}\n\nexport interface SmartTableFilterItem {\n\tfield: string;\n\tsearch: string;\n\tfilter?: any;\n}\n\nexport interface SmartTablePagingItem {\n\tpage: number;\n\tperPage: number;\n}\n\nexport type SmartTableSortDirection = 'asc' | 'desc';\n\nexport interface SmartTableSortItem {\n\tfield: string;\n\tdirection: SmartTableSortDirection;\n\tcompare?: SmartTableCompareFunction\n}\n\ninterface SmartTableDefaultEvent<T> {\n\tconfirm: Deferred<T>;\n\tdata: T;\n\tsource: LocalDataSource;\n}\n\nexport type SmartTableConfirmDeleteEvent<T = any> = SmartTableDefaultEvent<T>;\n\nexport type SmartTableRowClickedEvent<T = any> = Omit<SmartTableDefaultEvent<T>, \"confirm\">\n\nexport interface SmartTableCustomEvent<T = any> extends Omit<SmartTableDefaultEvent<T>, \"confirm\"> {\n\taction: string;\n}\n\nexport interface SmartTableRowSelectEvent<T = any> extends Omit<SmartTableDefaultEvent<T>, \"confirm\"> {\n\tisSelected: boolean;\n\tselected: T[];\n}\n\nexport interface SmartTableConfirmEditEvent<T = any, N = T> extends SmartTableDefaultEvent<T> {\n\tnewData: N;\n}\n\nexport interface SmartTableCreateConfirm<T = any> extends Omit<SmartTableDefaultEvent<T>, \"data\"> {\n\tnewData: T;\n}\n\nexport type ObjectStringString = Record<string, string>;\n\nexport enum SmartTableOnChangedEventName {\n\t'load' = 'load',\n\t'paging' = 'paging',\n\t'update' = 'update',\n\t'page' = 'page',\n\t'filter' = 'filter',\n\t'empty' = 'empty',\n\t'sort' = 'sort',\n\t'add' = 'add',\n\t'remove' = 'remove',\n\t'append' = 'append',\n\t'prepend' = 'prepend',\n\t'refresh' = 'refresh',\n}\n\nexport type SmartTableOnChangedEventType = 'load' | 'prepend' | 'append' | 'update' | 'empty' | 'paging' | 'page' | 'filter' | 'sort' | 'add' | 'remove' | 'refresh';\n\nexport interface SmartTableOnChangedEvent<T extends Record<string, any> = any> {\n\taction: SmartTableOnChangedEventType;\n\telements: T[];\n\tfilter: SmartTableFilterConf;\n\tpaging: SmartTablePagingItem | false;\n\tsort: SmartTableSortItem[];\n}\n\nexport interface SmartTableFilterConf { filters: SmartTableFilterItem[]; andOperator: boolean }","import { Subject } from 'rxjs';\nimport { Observable } from 'rxjs';\nimport { SmartTableFilterConf, SmartTableOnChangedEvent, SmartTableOnChangedEventName, SmartTableOnChangedEventType, SmartTablePagingItem, SmartTableSortItem } from '../interfaces/smart-table.models';\n\nexport abstract class DataSource<T=any> {\n\n protected onChangedSource = new Subject<SmartTableOnChangedEvent>();\n protected onAddedSource = new Subject<any>();\n protected onUpdatedSource = new Subject<any>();\n protected onRemovedSource = new Subject<any>();\n\n abstract getAll(): Promise<T[]>;\n abstract getElements(): Promise<T[]>;\n abstract getSort(): SmartTableSortItem[];\n abstract getFilter(): SmartTableFilterConf;\n abstract getPaging(): SmartTablePagingItem | false;\n abstract count(): number;\n\n refresh(): void {\n this.emitOnChanged(SmartTableOnChangedEventName.refresh);\n }\n\n loadEmit<T>(): Promise<true> {\n this.emitOnChanged(SmartTableOnChangedEventName.load);\n return Promise.resolve(true);\n }\n\n onChanged(): Observable<SmartTableOnChangedEvent> {\n return this.onChangedSource.asObservable();\n }\n\n onAdded(): Observable<any> {\n return this.onAddedSource.asObservable();\n }\n\n onUpdated(): Observable<any> {\n return this.onUpdatedSource.asObservable();\n }\n\n onRemoved(): Observable<any> {\n return this.onRemovedSource.asObservable();\n }\n\n prependEmit(element: T): Promise<true> {\n this.emitOnAdded(element);\n this.emitOnChanged(SmartTableOnChangedEventName.prepend);\n return Promise.resolve(true);\n }\n\n appendEmit(element: T): Promise<true> {\n this.emitOnAdded(element);\n this.emitOnChanged(SmartTableOnChangedEventName.append);\n return Promise.resolve(true);\n }\n\n addEmit(element: T): Promise<true> {\n this.emitOnAdded(element);\n this.emitOnChanged(SmartTableOnChangedEventName.add);\n return Promise.resolve(true);\n }\n\n removeEmit(element: T): Promise<true> {\n this.emitOnRemoved(element);\n this.emitOnChanged(SmartTableOnChangedEventName.remove);\n return Promise.resolve(true);\n }\n\n updateEmit(element: T): Promise<true> {\n this.emitOnUpdated(element);\n this.emitOnChanged(SmartTableOnChangedEventName.update);\n return Promise.resolve(true);\n }\n\n emptyEmit(): Promise<true> {\n this.emitOnChanged(SmartTableOnChangedEventName.empty);\n return Promise.resolve(true);\n }\n\n setSortEmit() {\n this.emitOnChanged(SmartTableOnChangedEventName.sort);\n }\n\n setFilterEmit() {\n this.emitOnChanged(SmartTableOnChangedEventName.filter);\n }\n\n addFilterEmit() {\n this.emitOnChanged(SmartTableOnChangedEventName.filter);\n }\n\n setPagingEmit() {\n this.emitOnChanged(SmartTableOnChangedEventName.paging);\n }\n\n setPageEmit() {\n this.emitOnChanged(SmartTableOnChangedEventName.page);\n }\n\n protected emitOnRemoved(element: T) {\n this.onRemovedSource.next(element);\n }\n\n protected emitOnUpdated(element: T) {\n this.onUpdatedSource.next(element);\n }\n\n protected emitOnAdded(element: T) {\n this.onAddedSource.next(element);\n }\n\n protected emitOnChanged(action: SmartTableOnChangedEventType) {\n this.getElements().then((elements) => this.onChangedSource.next({\n action: action,\n elements: elements,\n paging: this.getPaging(),\n filter: this.getFilter(),\n sort: this.getSort(),\n }));\n }\n}\n","export function filterValues(value: string, search: string) {\n return value.toString().toLowerCase().includes(search.toString().toLowerCase());\n}\n\nexport class LocalFilter {\n static filter(data: any[], field: string, search: string, customFilter?: Function): any[] {\n const filter: Function = customFilter ? customFilter : filterValues;\n\n return data.filter((el) => {\n const value = typeof el[field] === 'undefined' || el[field] === null ? '' : el[field];\n return filter.call(null, value, search);\n });\n }\n}\n","export class LocalPager {\n\n static paginate(data: Array<any>, page: number, perPage: number): Array<any> {\n return data.slice(perPage * (page - 1), perPage * page);\n }\n}\n","import { SmartTableCompareFunction } from \"../../interfaces/smart-table.models\";\n\nexport function compareValues(direction: number, a: any, b: any) {\n if (a < b) {\n return -1 * direction;\n }\n if (a > b) {\n return direction;\n }\n return 0;\n}\n\nexport class LocalSorter {\n static sort<T extends Record<string, any>>(\n data: T[],\n field: string,\n direction: string,\n customCompare?: SmartTableCompareFunction\n ): T[] {\n const dir: number = direction === \"asc\" ? 1 : -1;\n const compare = customCompare ? customCompare : compareValues;\n\n return data.sort((a, b) => {\n return compare.call(null, dir, a[field], b[field]);\n });\n }\n}\n","import { deepExtend } from '../../helpers';\nimport { SmartTableFilterConf, SmartTableFilterItem, SmartTablePagingItem, SmartTableSortItem } from '../../interfaces/smart-table.models';\nimport { DataSource } from '../data-source';\nimport { LocalFilter } from './local.filter';\nimport { LocalPager } from './local.pager';\nimport { LocalSorter } from './local.sorter';\n\nexport class LocalDataSource<T extends Record<string, any> = any> extends DataSource<T> {\n\n protected data: T[] = [];\n protected filteredAndSorted: T[] = [];\n protected sortConf: SmartTableSortItem[] = [];\n protected filterConf: SmartTableFilterConf = {\n filters: [],\n andOperator: true,\n };\n protected pagingConf: SmartTablePagingItem | false = false;\n\n constructor(data: T[] = []) {\n super();\n\n this.data = data;\n }\n\n load(data: any): Promise<true> {\n this.data = data;\n return super.loadEmit();\n }\n\n prepend(element: T): Promise<true> {\n this.reset(true);\n this.data.unshift(element);\n return super.prependEmit(element);\n }\n\n appendMany(elements: T[]): Promise<true> {\n this.reset(true);\n this.data = [...this.data, ...elements];\n return super.loadEmit();\n }\n\n append(element: T): Promise<true> {\n this.reset(true);\n\n this.data.push(element);\n return super.appendEmit(element);\n }\n\n add(element: T): Promise<true> {\n this.data.push(element);\n return super.addEmit(element);\n }\n\n remove(element: T): Promise<true> {\n this.data = this.data.filter(el => el !== element);\n return super.removeEmit(element);\n }\n\n update(element: T, values: T): Promise<true> {\n return new Promise((resolve, reject) => {\n this.find(element).then((found) => {\n found = deepExtend(found as any, values);\n super.updateEmit(found).then(resolve).catch(reject);\n }).catch(reject);\n });\n }\n\n find(element: T): Promise<T> {\n const found = this.data.find(el => el === element);\n if (found) {\n return Promise.resolve(found);\n }\n return Promise.reject(new Error('Element was not found in the dataset'));\n }\n\n getElements(): Promise<T[]> {\n const data = this.data.slice(0);\n return Promise.resolve(this.prepareData(data));\n }\n\n getFilteredAndSorted(): Promise<T[]> {\n const data = this.data.slice(0);\n this.prepareData(data);\n return Promise.resolve(this.filteredAndSorted);\n }\n\n getAll(): Promise<T[]> {\n const data = this.data.slice(0);\n return Promise.resolve(data);\n }\n\n reset(silent = false) {\n if (silent) {\n this.filterConf = {\n filters: [],\n andOperator: true,\n };\n this.sortConf = [];\n if (this.pagingConf) {\n this.pagingConf.page = 1;\n }\n } else {\n this.setFilter([], true, false);\n this.setSort([], false);\n if (this.pagingConf) {\n this.setPage(1);\n }\n }\n }\n\n empty(): Promise<true> {\n this.data = [];\n return super.emptyEmit();\n }\n\n count(): number {\n return this.filteredAndSorted.length;\n }\n\n /**\n *\n * Array of conf objects\n * [\n * {field: string, direction: asc|desc|null, compare: Function|null},\n * ]\n * @param conf\n * @param doEmit\n * @returns {LocalDataSource}\n */\n setSort(conf: SmartTableSortItem[], doEmit = true): LocalDataSource {\n if (conf !== null) {\n conf.forEach((fieldConf) => {\n if (!fieldConf.field || typeof fieldConf.direction === 'undefined') {\n throw new Error('Sort configuration object is not valid');\n }\n });\n this.sortConf = conf;\n }\n if (doEmit) {\n super.setSortEmit();\n }\n return this;\n }\n\n /**\n *\n * Array of conf objects\n * [\n * {field: string, search: string, filter: Function|null},\n * ]\n * @param conf\n * @param andOperator\n * @param doEmit\n * @returns {LocalDataSource}\n */\n setFilter(conf: SmartTableFilterItem[], andOperator = true, doEmit = true): LocalDataSource {\n if (conf && conf.length > 0) {\n conf.forEach((fieldConf) => {\n this.addFilter(fieldConf, andOperator, false);\n });\n } else {\n this.filterConf = {\n filters: [],\n andOperator: true,\n };\n }\n this.filterConf.andOperator = andOperator;\n if (this.pagingConf) {\n this.pagingConf.page = 1;\n }\n if (doEmit) {\n super.setFilterEmit();\n }\n return this;\n }\n\n addFilter(fieldConf: SmartTableFilterItem, andOperator = true, doEmit = true): LocalDataSource {\n if (!fieldConf.field || typeof fieldConf.search === 'undefined') {\n throw new Error('Filter configuration object is not valid');\n }\n\n let found = false;\n this.filterConf.filters.forEach((currentFieldConf: any, index: any) => {\n if (currentFieldConf.field === fieldConf.field) {\n this.filterConf.filters[index] = fieldConf;\n found = true;\n }\n });\n if (!found) {\n this.filterConf.filters.push(fieldConf);\n }\n this.filterConf.andOperator = andOperator;\n if (doEmit) {\n super.addFilterEmit();\n }\n return this;\n }\n\n setPaging(page = 1, perPage: number, doEmit = true): void {\n if (this.pagingConf) {\n this.pagingConf.page = page;\n this.pagingConf.perPage = perPage;\n } else {\n this.pagingConf = {\n page, perPage\n }\n }\n if (doEmit) {\n super.setPagingEmit();\n }\n return;\n }\n\n setPage(page: number, doEmit = true): void {\n if (!this.pagingConf) {\n return;\n }\n this.pagingConf.page = page;\n if(doEmit) {\n super.setPageEmit();\n }\n return;\n }\n\n getSort(): SmartTableSortItem[] {\n return this.sortConf;\n }\n\n getFilter(): SmartTableFilterConf {\n return this.filterConf;\n }\n\n getPaging(): SmartTablePagingItem | false {\n return this.pagingConf;\n }\n\n protected prepareData(data: T[]): T[] {\n data = this.filter(data);\n data = this.sort(data);\n this.filteredAndSorted = data.slice(0);\n if(this.pagingConf) {\n return this.paginate(data);\n } else return data\n }\n\n protected sort(data: T[]): T[] {\n if (this.sortConf) {\n this.sortConf.forEach((fieldConf) => {\n data = LocalSorter\n .sort<T>(data, fieldConf.field, fieldConf.direction, fieldConf.compare);\n });\n }\n return data;\n }\n\n // TODO: refactor?\n protected filter(data: T[]): T[] {\n if (this.filterConf.filters) {\n if (this.filterConf.andOperator) {\n this.filterConf.filters.forEach((fieldConf: SmartTableFilterItem) => {\n if (fieldConf.search?.length > 0) {\n data = LocalFilter\n .filter(data, fieldConf.field, fieldConf.search, fieldConf.filter);\n }\n });\n } else {\n let mergedData: T[] = [];\n this.filterConf.filters.forEach((fieldConf: SmartTableFilterItem) => {\n if (fieldConf.search?.length > 0) {\n mergedData = mergedData.concat(LocalFilter\n .filter(data, fieldConf.field, fieldConf.search, fieldConf.filter));\n }\n });\n // remove non unique items\n data = mergedData.filter((elem: any, pos: any, arr: any) => {\n return arr.indexOf(elem) === pos;\n });\n }\n }\n return data;\n }\n\n protected paginate(data: T[]): T[] {\n if (this.pagingConf && this.pagingConf.page && this.pagingConf.perPage) {\n data = LocalPager.paginate(data, this.pagingConf.page, this.pagingConf.perPage);\n }\n return data;\n }\n}\n","import {\n Component,\n Input,\n OnChanges,\n SimpleChanges,\n output\n} from \"@angular/core\";\nimport { FormsModule } from \"@angular/forms\";\nimport { Subscription } from \"rxjs\";\nimport { LocalDataSource } from \"../../lib/data-source/local/local.data-source\";\nimport { SmartTablePagingItem } from \"./../../lib/interfaces/smart-table.models\";\n\n@Component({\n selector: \"ng2-smart-table-pager\",\n styleUrls: [\"./pager.component.scss\"],\n template: `\n @if (shouldShow()) {\n <nav class=\"ng2-smart-pagination-nav\">\n <ul class=\"ng2-smart-pagination pagination\">\n <li\n class=\"ng2-smart-page-item page-item\"\n [class.disabled]=\"getPage() === 1\"\n >\n <a\n class=\"ng2-smart-page-link page-link\"\n href=\"#\"\n (click)=\"getPage() === 1 ? false : paginate(1)\"\n aria-label=\"First\"\n >\n <span aria-hidden=\"true\">«</span>\n <span class=\"sr-only\">First</span>\n </a>\n </li>\n <li\n class=\"ng2-smart-page-item page-item\"\n [class.disabled]=\"getPage() === 1\"\n >\n <a\n class=\"ng2-smart-page-link page-link page-link-prev\"\n href=\"#\"\n (click)=\"getPage() === 1 ? false : prev()\"\n aria-label=\"Prev\"\n >\n <span aria-hidden=\"true\"><</span>\n <span class=\"sr-only\">Prev</span>\n </a>\n </li>\n @for (page of getPages(); track page) {\n <li\n class=\"ng2-smart-page-item page-item\"\n [class.active]=\"getPage() === page\"\n >\n @if (getPage() === page) {\n <span class=\"ng2-smart-page-link page-link\"\n >{{ page }} <span class=\"sr-only\">(current)</span></span\n >\n } @if (getPage() !== page) {\n <a\n class=\"ng2-smart-page-link page-link\"\n href=\"#\"\n (click)=\"paginate(page)\"\n >{{ page }}</a\n >\n }\n </li>\n }\n <li\n class=\"ng2-smart-page-item page-item\"\n [class.disabled]=\"getPage() === getLast()\"\n >\n <a\n class=\"ng2-smart-page-link page-link page-link-next\"\n href=\"#\"\n (click)=\"getPage() === getLast() ? false : next()\"\n aria-label=\"Next\"\n >\n <span aria-hidden=\"true\">></span>\n <span class=\"sr-only\">Next</span>\n </a>\n </li>\n <li\n class=\"ng2-smart-page-item page-item\"\n [class.disabled]=\"getPage() === getLast()\"\n >\n <a\n class=\"ng2-smart-page-link page-link\"\n href=\"#\"\n (click)=\"getPage() === getLast() ? false : paginate(getLast())\"\n aria-label=\"Last\"\n >\n <span aria-hidden=\"true\">»</span>\n <span class=\"sr-only\">Last</span>\n </a>\n </li>\n </ul>\n </nav>\n } @if (perPageSelect && perPageSelect.length > 0) {\n <nav class=\"ng2-smart-pagination-per-page\">\n <label for=\"per-page\"> Per Page: </label>\n <select\n (change)=\"onChangePerPage()\"\n [(ngModel)]=\"currentPerPage\"\n id=\"per-page\"\n >\n @for (item of perPageSelect; track item) {\n <option [value]=\"item\">{{ item }}</option>\n }\n </select>\n </nav>\n }\n `,\n standalone: true,\n imports: [FormsModule],\n})\nexport class PagerComponent implements OnChanges {\n @Input() source!: LocalDataSource;\n @Input() perPageSelect: number[] = [];\n\n readonly changePage = output<any>();\n\n currentPerPage = 0;\n\n protected pages: number[] = [];\n protected page = 1;\n protected count = 0;\n protected perPage = 0;\n\n protected dataChangedSub: Subscription | undefined;\n\n ngOnChanges(changes: SimpleChanges) {\n if (changes[\"source\"]) {\n if (!changes[\"source\"].firstChange && this.dataChangedSub) {\n this.dataChangedSub.unsubscribe();\n }\n this.dataChangedSub = this.source.onChanged().subscribe((dataChanges) => {\n const paging: SmartTablePagingItem | false = this.source.getPaging();\n if (paging) {\n this.page = paging.page;\n this.perPage = paging.perPage;\n }\n this.currentPerPage = this.perPage;\n this.count = this.source.count();\n if (this.isPageOutOfBounce()) {\n this.source.setPage(--this.page);\n }\n\n this.processPageChange(dataChanges);\n this.initPages();\n });\n }\n }\n\n /**\n * We change the page here depending on the action performed against data source\n * if a new element was added to the end of the table - then change the page to the last\n * if a new element was added to the beginning of the table - then to the first page\n * @param changes\n */\n processPageChange(changes: any) {\n if (changes[\"action\"] === \"prepend\") {\n this.source.setPage(1);\n }\n if (changes[\"action\"] === \"append\") {\n this.source.setPage(this.getLast());\n }\n }\n\n shouldShow(): boolean {\n return this.source.count() > this.perPage;\n }\n\n paginate(page: number): boolean {\n this.source.setPage(page);\n this.page = page;\n this.changePage.emit({ page });\n return false;\n }\n\n next(): boolean {\n return this.paginate(this.getPage() + 1);\n }\n\n prev(): boolean {\n return this.paginate(this.getPage() - 1);\n }\n\n getPage(): number {\n return this.page;\n }\n\n getPages(): number[] {\n return this.pages;\n }\n\n getLast(): number {\n return Math.ceil(this.count / this.perPage);\n }\n\n isPageOutOfBounce(): boolean {\n return (\n this.page * this.perPage >= this.count + this.perPage && this.page > 1\n );\n }\n\n initPages() {\n const pagesCount = this.getLast();\n let showPagesCount = 4;\n showPagesCount = pagesCount < showPagesCount ? pagesCount : showPagesCount;\n this.pages = [];\n\n if (this.shouldShow()) {\n let middleOne = Math.ceil(showPagesCount / 2);\n middleOne = this.page >= middleOne ? this.page : middleOne;\n\n let lastOne = middleOne + Math.floor(showPagesCount / 2);\n lastOne = lastOne >= pagesCount ? pagesCount : lastOne;\n\n const firstOne = lastOne - showPagesCount + 1;\n\n for (let i = firstOne; i <= lastOne; i++) {\n this.pages.push(i);\n }\n }\n }\n\n onChangePerPage() {\n const paging: SmartTablePagingItem | false = this.source.getPaging();\n if (paging) {\n paging.perPage = this.currentPerPage * 1;\n }\n this.source.refresh();\n this.initPages();\n }\n}\n","import { Component, input } from '@angular/core';\n\nimport { Cell } from '../../../lib/data-set/cell';\n\n@Component({ template: '', selector: 'ng2-edit-cell-default-base-component' })\nexport class EditCellDefaultComponent {\n readonly cell = input.required< Cell>()\n readonly inputClass = input('');\n}\n","import {\n Component,\n ComponentRef,\n OnChanges,\n OnDestroy,\n SimpleChanges,\n ViewChild,\n ViewContainerRef,\n} from \"@angular/core\";\n\n\nimport { SmartTableEditorAndFilter } from \"../../../lib/interfaces/smart-table.models\";\nimport { DefaultEditor } from \"../cell-editors/default-editor\";\nimport { EditCellDefaultComponent } from \"./edit-cell-default\";\n\n@Component({\n selector: \"ng2-table-cell-custom-editor\",\n template: ` <ng-template #dynamicTarget></ng-template> `,\n standalone: true,\n})\nexport class CustomEditComponent extends EditCellDefaultComponent implements OnChanges, OnDestroy {\n @ViewChild(\"dynamicTarget\", { read: ViewContainerRef, static: true })\n dynamicTarget?: ViewContainerRef;\n\n private customComponent?: ComponentRef<DefaultEditor>;\n\n ngOnChanges(changes: SimpleChanges) {\n const editor: SmartTableEditorAndFilter | false =\n this.cell().getColumn().editor;\n if (this.customComponent) {\n if (this.customComponent?.instance && 'ngOnChanges' in this.customComponent.instance){\n const onChanges = this.customComponent.instance.ngOnChanges as (changes: SimpleChanges) => void\n onChanges(changes);\n }\n return;\n }\n if (\n this.cell() &&\n !this.customComponent &&\n editor &&\n editor.type == \"custom\"\n ) {\n this.customComponent = this.dynamicTarget?.createComponent(\n editor.component\n )\n this.customComponent?.setInput('cell', this.cell())\n this.customComponent?.setInput('inputClass', this.inputClass())\n }\n }\n\n ngOnDestroy() {\n if (this.customComponent) {\n this.customComponent.destroy();\n }\n }\n}\n","import { Component, computed } from \"@angular/core\";\n\nimport { DefaultEditor } from \"./default-editor\";\n\n@Component({\n selector: \"ng2-checkbox-editor\",\n styleUrls: [\"./editor.component.scss\"],\n template: `\n <input\n [class]=\"inputClass()\"\n type=\"checkbox\"\n class=\"form-control\"\n [name]=\"cell().getId()\"\n [disabled]=\"!cell().isEditable()\"\n (change)=\"onChange($event)\"\n [checked]=\"\n cell().getValue() === trueVal()\n \"\n />\n `,\n standalone: true,\n})\nexport class CheckboxEditorComponent extends DefaultEditor {\n readonly trueVal = computed(() => {\n return this.cell().getColumn().getConfig()?.true || true\n })\n readonly falseVal = computed(() => {\n return this.cell().getColumn().getConfig()?.false || false\n })\n\n\n constructor() {\n super();\n }\n\n onChange(event: any) {\n this.cell().newValue = event.target.checked ? this.trueVal() : this.falseVal();\n }\n}\n","import { Component } from \"@angular/core\";\n\nimport { FormsModule } from \"@angular/forms\";\nimport { DefaultEditor } from \"./default-editor\";\n\n@Component({\n selector: \"ng2-input-editor\",\n styleUrls: [\"./editor.component.scss\"],\n template: `\n <input\n [class]=\"inputClass()\"\n class=\"form-control\"\n [(ngModel)]=\"cell().newValue\"\n [name]=\"cell().getId()\"\n [placeholder]=\"cell().getTitle()\"\n [disabled]=\"!cell().isEditable()\"\n />\n `,\n standalone: true,\n imports: [FormsModule],\n})\nexport class InputEditorComponent extends DefaultEditor {\n constructor() {\n super();\n }\n}\n","import { Component } from \"@angular/core\";\n\nimport { FormsModule } from \"@angular/forms\";\nimport { DefaultEditor } from \"./default-editor\";\n\n@Component({\n selector: \"ng2-select-editor\",\n template: `\n <select\n [class]=\"inputClass()\"\n class=\"form-control\"\n [(ngModel)]=\"cell().newValue\"\n [name]=\"cell().getId()\"\n [disabled]=\"!cell().isEditable()\"\n >\n @for (option of cell().getColumn().getConfig()?.list; track option.value) {\n <option\n [value]=\"option.value\"\n [selected]=\"option.value === cell().getValue()\"\n >\n {{ option.title }}\n </option>\n }\n </select>\n `,\n standalone: true,\n imports: [FormsModule],\n})\nexport class SelectEditorComponent extends DefaultEditor {\n constructor() {\n super();\n }\n}\n","import { Component } from \"@angular/core\";\n\nimport { FormsModule } from \"@angular/forms\";\nimport { DefaultEditor } from \"./default-editor\";\n\n@Component({\n selector: \"ng2-textarea-editor\",\n styleUrls: [\"./editor.component.scss\"],\n template: `\n <textarea\n [class]=\"inputClass()\"\n class=\"form-control\"\n [(ngModel)]=\"cell().newValue\"\n [name]=\"cell().getId()\"\n [disabled]=\"!cell().isEditable()\"\n [placeholder]=\"cell().getTitle()\"\n >\n </textarea>\n `,\n standalone: true,\n imports: [FormsModule],\n})\nexport class TextareaEditorComponent extends DefaultEditor {\n constructor() {\n super();\n }\n}\n","import { Component } from \"@angular/core\";\n\nimport { SmartTableEditorAndFilterTypes } from \"../../../lib/interfaces/smart-table.models\";\nimport { CheckboxEditorComponent } from \"../cell-editors/checkbox-editor.component\";\nimport { InputEditorComponent } from \"../cell-editors/input-editor.component\";\nimport { SelectEditorComponent } from \"../cell-editors/select-editor.component\";\nimport { TextareaEditorComponent } from \"../cell-editors/textarea-editor.component\";\nimport { EditCellDefaultComponent } from \"./edit-cell-default\";\n\n@Component({\n selector: \"ng2-table-cell-default-editor\",\n templateUrl: \"./default-edit.component.html\",\n imports: [\n SelectEditorComponent,\n TextareaEditorComponent,\n CheckboxEditorComponent,\n InputEditorComponent,\n ],\n standalone: true,\n})\nexport class DefaultEditComponent extends EditCellDefaultComponent {\n constructor() {\n super();\n }\n\n getEditorType(): SmartTableEditorAndFilterTypes {\n const editor = this.cell().getColumn().editor;\n if (editor) {\n return editor.type || \"text\";\n }\n return \"text\";\n }\n}\n","<div role=\"none\" (click)=\"$event.stopPropagation()\">\n @switch (getEditorType()) {\n @case ('list') {\n <ng2-select-editor\n [cell]=\"cell()\"\n [inputClass]=\"inputClass()\">\n </ng2-select-editor>\n }\n @case ('textarea') {\n <ng2-textarea-editor\n [cell]=\"cell()\"\n [inputClass]=\"inputClass()\">\n </ng2-textarea-editor>\n }\n @case ('checkbox') {\n <ng2-checkbox-editor\n [cell]=\"cell()\"\n [inputClass]=\"inputClass()\">\n </ng2-checkbox-editor>\n }\n @default {\n <ng2-input-editor\n [cell]=\"cell()\"\n [inputClass]=\"inputClass()\">\n </ng2-input-editor>\n }\n}\n</div>","import { Component, input } from \"@angular/core\";\n\nimport { Cell } from \"../../../lib/data-set/cell\";\nimport { SmartTableEditorAndFilterTypes } from \"../../../lib/interfaces/smart-table.models\";\nimport { CustomEditComponent } from \"./custom-edit.component\";\nimport { DefaultEditComponent } from \"./default-edit.component\";\n\n@Component({\n selector: \"ng2-table-cell-edit-mode\",\n template: `\n <div>\n @switch (getEditorType()) { @case ('custom') {\n <ng2-table-cell-custom-editor [cell]=\"cell()\" [inputClass]=\"inputClass()\">\n </ng2-table-cell-custom-editor>\n } @default {\n <ng2-table-cell-default-editor\n [cell]=\"cell()\"\n [inputClass]=\"inputClass()\"\n >\n </ng2-table-cell-default-editor>\n } }\n </div>\n `,\n standalone: true,\n imports: [CustomEditComponent, DefaultEditComponent],\n})\nexport class EditCellComponent {\n readonly cell = input.required<Cell>();\n readonly inputClass = input(\"\");\n\n getEditorType(): SmartTableEditorAndFilterTypes {\n const editor = this.cell().getColumn().editor;\n if (editor) {\n return editor.type;\n }\n return \"text\";\n }\n}\n","import { Component, input } from \"@angular/core\";\n\nimport { NgComponentOutlet } from \"@angular/common\";\nimport { Cell } from \"../../../lib/data-set/cell\";\n\n@Component({\n selector: \"ng2-custom-view-component\",\n template: `<ng-template\n *ngComponentOutlet=\"\n cell().getColumn().renderComponent;\n inputs: { rowData: cell().getRow().getData(), value: cell().getValue() }\n \"\n ></ng-template>`,\n imports: [NgComponentOutlet],\n standalone: true,\n})\nexport class CustomViewComponent {\n readonly cell = input.required<Cell>();\n}\n","import { ChangeDetectionStrategy, Component, input } from \"@angular/core\";\n\nimport { Cell } from \"../../../lib/data-set/cell\";\nimport { CustomViewComponent } from \"./custom-view.component\";\n\n@Component({\n selector: \"ng2-table-cell-view-mode\",\n changeDetection: ChangeDetectionStrategy.OnPush,\n template: `\n <div>\n @switch (cell().getColumn().type) { @case ('custom') {\n <ng2-custom-view-component [cell]=\"cell()\"></ng2-custom-view-component>\n } @case ('html') {\n <div [innerHTML]=\"cell().getValue()\"></div>\n } @default {\n <div>{{ cell().getValue() }}</div>\n } }\n </div>\n `,\n standalone: true,\n imports: [CustomViewComponent],\n})\nexport class ViewCellComponent {\n readonly cell = input.required< Cell>()\n}\n","import { Component, input } from \"@angular/core\";\n\nimport { Cell } from \"../../lib/data-set/cell\";\nimport { EditCellComponent } from \"./cell-edit-mode/edit-cell.component\";\nimport { ViewCellComponent } from \"./cell-view-mode/view-cell.component\";\n\n@Component({\n selector: \"ng2-smart-table-cell\",\n template: `\n @if (!isInEditing()) {\n <ng2-table-cell-view-mode [cell]=\"cell()\"></ng2-table-cell-view-mode>\n } @else {\n <ng2-table-cell-edit-mode\n [cell]=\"cell()\"\n [inputClass]=\"inputClass()\"\n >\n </ng2-table-cell-edit-mode>\n }\n `,\n standalone: true,\n imports: [ViewCellComponent, EditCellComponent],\n})\nexport class CellComponent {\n readonly cell = input.required<Cell>()\n\n readonly inputClass = input('');\n readonly isInEditing = input<boolean>(false);\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n computed,\n EventEmitter,\n input,\n OutputEmitterRef\n} from \"@angular/core\";\n\nimport { Row } from \"../../../lib/data-set/row\";\nimport { Grid } from \"../../../lib/grid\";\n\n@Component({\n selector: \"ng2-st-tbody-create-cancel\",\n template: `\n @if (!row().pending) {\n <a\n href=\"#\"\n [id]=\"'row-' + row().index + '_editing-confirm-button'\"\n class=\"ng2-smart-action ng2-smart-action-edit-save\"\n [innerHTML]=\"saveButtonContent()\"\n (click)=\"onSave($event)\"\n ></a>\n <a\n href=\"#\"\n [id]=\"'row-' + row().index + '_editing-cancel-button'\"\n class=\"ng2-smart-action ng2-smart-action-edit-cancel\"\n [innerHTML]=\"cancelButtonContent()\"\n (click)=\"onCancelEdit($event)\"\n ></a>\n } @else {\n <div style=\"display: flex;\">\n <svg\n role=\"none\"\n (click)=\"$event.stopPropagation()\"\n style=\"height: 2rem; width: 2rem;\"\n version=\"1.1\"\n id=\"L9\"\n xmlns=\"http://www.w3.org/2000/svg\"\n xmlns:xlink=\"http://www.w3.org/1999/xlink\"\n x=\"0px\"\n y=\"0px\"\n viewBox=\"0 0 100 100\"\n enable-background=\"new 0 0 0 0\"\n xml:space=\"preserve\"\n >\n <path\n fill=\"#e9e9e9\"\n d=\"M73,50c0-12.7-10.3-23-23-23S27,37.3,27,50 M30.9,50c0-10.5,8.5-19.1,19.1-19.1S69.1,39.5,69.1,50\"\n >\n <animateTransform\n attributeName=\"transform\"\n attributeType=\"XML\"\n type=\"rotate\"\n dur=\"1s\"\n from=\"0 50 50\"\n to=\"360 50 50\"\n repeatCount=\"indefinite\"\n />\n </path>\n </svg>\n <svg\n role=\"none\"\n (click)=\"$event.stopPropagation()\"\n style=\"height: 2rem; width: 2rem; \"\n version=\"1.1\"\n id=\"L9\"\n xmlns=\"http://www.w3.org/2000/svg\"\n xmlns:xlink=\"http://www.w3.org/1999/xlink\"\n x=\"0px\"\n y=\"0px\"\n viewBox=\"0 0 100 100\"\n enable-background=\"new 0 0 0 0\"\n xml:space=\"preserve\"\n >\n <path\n fill=\"#e9e9e9\"\n d=\"M73,50c0-12.7-10.3-23-23-23S27,37.3,27,50 M30.9,50c0-10.5,8.5-19.1,19.1-19.1S69.1,39.5,69.1,50\"\n >\n <animateTransform\n attributeName=\"transform\"\n attributeType=\"XML\"\n type=\"rotate\"\n dur=\"1s\"\n from=\"0 50 50\"\n to=\"360 50 50\"\n repeatCount=\"indefinite\"\n />\n </path>\n </svg>\n </div>\n }\n `,\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class TbodyCreateCancelComponent {\n readonly grid = input.required<Grid>();\n readonly row = input.required<Row>();\n readonly editConfirm = input.required<EventEmitter<any> | OutputEmitterRef<any>>();\n readonly editCancel = input.required<EventEmitter<any> | OutputEmitterRef<any>>();\n\n readonly cancelButtonContent = computed(() => {\n const edit = this.grid().settings().edit\n return edit ? edit.cancelButtonContent || \"Cancel\" : \"Cancel\"\n })\n readonly saveButtonContent = computed(() => {\n const edit = this.grid().settings().edit\n return edit ? edit.saveButtonContent || \"Update\" : \"Update\"\n })\n\n onSave(event: any) {\n event.preventDefault();\n event.stopPropagation();\n this.grid().save(this.row(), this.editConfirm());\n }\n\n onCancelEdit(event: any) {\n event.preventDefault();\n event.stopPropagation();\n this.editCancel().emit(true);\n this.row().isInEditing = false;\n }\n}\n","import { SmartTableColumnSettings } from \"../interfaces/smart-table.models\";\nimport { Column } from \"./column\";\nimport { Row } from \"./row\";\n\nexport class DataSet {\n newRow!: Row;\n\n protected data: any[] = [];\n protected columns: Column[] = [];\n protected rows: Row[] = [];\n protected selectedRows = new Set<Row>();\n\n constructor(\n data: any[] = [],\n protected columnSettings: SmartTableColumnSettings[]\n ) {\n this.createColumns(columnSettings);\n this.setData(data);\n\n this.createNewRow();\n }\n\n setData(data: any[]) {\n this.data = data;\n this.createRows();\n }\n\n getColumns(): Column[] {\n return this.columns;\n }\n\n getRows(): Row[] {\n return this.rows;\n }\n\n getFirstRow(): Row {\n return this.rows[0];\n }\n\n getLastRow(): Row {\n return this.rows[this.rows.length - 1];\n }\n\n findRowByData(data: any): Row | undefined {\n return this.rows.find((row: Row) => row.getData() === data);\n }\n\n setSelectAll(state: boolean): void {\n this.rows.forEach((row) => {\n row.isSelected = state;\n this.storeSelectedRow(row);\n });\n }\n\n deselectAll() {\n this.rows.forEach((row) => {\n row.isSelected = false;\n });\n // we need to clear selectedRow field because no one row selected\n this.selectedRows.clear();\n }\n\n selectRow(row: Row, state: boolean): void {\n row.isSelected = state;\n this.storeSelectedRow(row);\n }\n\n multipleSelectRow(row: Row): Row {\n row.isSelected = !row.isSelected;\n this.storeSelectedRow(row);\n\n return row;\n }\n\n getSelectedRowsData(): any[] {\n return [...this.selectedRows];\n }\n\n createNewRow() {\n this.newRow = new Row(-1, {}, this);\n this.newRow.isInEditing = true;\n }\n\n /**\n * Create columns by mapping from the settings\n * @param settings\n * @private\n */\n createColumns(columnsParams: SmartTableColumnSettings[]) {\n columnsParams.forEach((params) => {\n this.columns.push(\n new Column(params.key as string, params, this)\n );\n });\n }\n\n /**\n * Create rows based on current data prepared in data source\n * @private\n */\n createRows() {\n this.rows = [];\n this.data.forEach((el, index) => {\n const row = new Row(index, el, this);\n row.isSelected = this.selectedRows.has(row.getData());\n this.rows.push(row);\n });\n }\n\n public get isAllSelected(): boolean {\n return this.rows.every((row) => row.isSelected);\n }\n\n private storeSelectedRow(row: Row): void {\n if (row.isSelected) {\n this.selectedRows.add(row.getData());\n } else {\n this.selectedRows.delete(row.getData());\n }\n }\n}\n","import { computed, EventEmitter, OutputEmitterRef, signal } from \"@angular/core\";\nimport { Observable, Subject, Subscription } from \"rxjs\";\nimport { LocalDataSource } from \"./data-source/local/local.data-source\";\n\nimport { Column } from \"./data-set/column\";\nimport { DataSet } from \"./data-set/data-set\";\nimport { Row } from \"./data-set/row\";\nimport {\n Deferred,\n getDeepFromObject,\n getLocalStorage,\n setLocalStorage,\n} from \"./helpers\";\nimport {\n ColumnPositionState,\n SmartTableColumnSettings,\n SmartTableSettings,\n SmartTableSortItem,\n} from \"./interfaces/smart-table.models\";\n\nexport class Grid {\n createFormShown = false;\n\n source!: LocalDataSource;\n dataSet!: DataSet;\n\n onSelectRowSource = new Subject<any>();\n onDeselectRowSource = new Subject<any>();\n\n currentColumnsSortState: ColumnPositionState[] = [];\n\n private columnsSortedEmitter!: OutputEmitterRef<ColumnPositionState[]>\n private sourceOnChangedSubscription: Subscription | undefined;\n private sourceOnUpdatedSubscription: Subscription | undefined;\n\n readonly settings = signal<SmartTableSettings>({} as SmartTableSettings);\n\n readonly isMultiSelectVisible = computed(() => {\n return this.settings().selectMode === \"multi\";\n })\n readonly isActionsVisible = computed<boolean>(() => {\n const actions = this.settings().actions\n if (!actions) return false;\n return actions.add || actions.edit || actions.delete || !!actions?.custom?.length;\n })\n readonly actionIsOnLeft = computed<boolean>(() => {\n return (this.settings().actionsPosition || 'left') === 'left';\n })\n readonly actionIsOnRight = computed<boolean>(() => {\n return this.settings().actionsPosition === 'right';\n })\n\n constructor(source: LocalDataSource, settings: SmartTableSettings) {\n this.setSettings(settings);\n this.setSource(source);\n }\n\n setColumnsSortedEmitter(emitter: OutputEmitterRef<ColumnPositionState[]>) {\n this.columnsSortedEmitter = emitter\n }\n\n detach(): void {\n if (this.sourceOnChangedSubscription) {\n this.sourceOnChangedSubscription.unsubscribe();\n }\n if (this.sourceOnUpdatedSubscription) {\n this.sourceOnUpdatedSubscription.unsubscribe();\n }\n }\n\n getNewRow(): Row {\n return this.dataSet.newRow;\n }\n\n setSettings(settings: SmartTableSettings) {\n this.updateSettingsAndDataSet(settings);\n if (this.getSetting('columnSort', false)) {\n this.setColumnsSortState(settings.columns);\n }\n }\n\n private updateSettingsAndDataSet(settings: SmartTableSettings) {\n this.settings.set(settings);\n this.dataSet = new DataSet(\n [],\n settings.columns\n );\n\n if (this.source) {\n this.source.refresh();\n }\n }\n\n getDataSet(): DataSet {\n return this.dataSet;\n }\n\n setSource(source: LocalDataSource) {\n this.source = this.prepareSource(source);\n this.detach();\n\n this.sourceOnChangedSubscription = this.source\n .onChanged()\n .subscribe((changes: any) => this.processDataChange(changes));\n\n this.sourceOnUpdatedSubscription = this.source\n .onUpdated()\n .subscribe((data: any) => {\n const changedRow = this.dataSet.findRowByData(data);\n if (changedRow) {\n changedRow.setData(data);\n }\n });\n }\n\n getSetting<T>(name: string, defaultValue?: any): T {\n return getDeepFromObject(this.settings(), name, defaultValue);\n }\n\n getColumns(): Column[] {\n return this.dataSet.getColumns();\n }\n\n getRows(): Row[] {\n return this.dataSet.getRows();\n }\n\n selectRow(row: Row, state: boolean) {\n this.dataSet.selectRow(row, state);\n }\n\n multipleSelectRow(row: Row) {\n this.dataSet.multipleSelectRow(row);\n }\n\n onSelectRow(): Observable<any> {\n return this.onSelectRowSource.asObservable();\n }\n\n onDeselectRow(): Observable<any> {\n return this.onDeselectRowSource.asObservable();\n }\n\n edit(row: Row) {\n row.isInEditing = true;\n }\n\n create(row: Row, confirmEmitter: EventEmitter<any> | OutputEmitterRef<any>) {\n row.pending = true;\n const deferred = new Deferred();\n deferred.promise\n .then((newData) => {\n row.pending = false;\n newData = newData || row.getNewData();\n this.source.prepend(newData).then(() => {\n this.createFormShown = false;\n this.dataSet.createNewRow();\n });\n })\n .catch((err) => {\n row.pending = false;\n });\n\n if (this.getSetting(\"add.confirmCreate\")) {\n confirmEmitter.emit({\n newData: row.getNewData(),\n source: this.source,\n confirm: deferred,\n });\n } else {\n deferred.resolve(false);\n }\n }\n\n save(row: Row, confirmEmitter: EventEmitter<any> | OutputEmitterRef<any>) {\n row.pending = true;\n const deferred = new Deferred();\n deferred.promise\n .then((newData) => {\n row.pending = false;\n newData = newData || row.getNewData();\n this.source.update(row.getData(), newData).then(() => {\n row.isInEditing = false;\n });\n })\n .catch((err) => {\n row.pending = false;\n });\n\n if (this.getSetting(\"edit.confirmSave\", false)) {\n confirmEmitter.emit({\n data: row.getData(),\n newData: row.getNewData(),\n source: this.source,\n confirm: deferred,\n });\n } else {\n deferred.resolve(false);\n }\n }\n\n delete(row: Row, confirmEmitter: EventEmitter<any> | OutputEmitterRef<any>) {\n row.pending = true;\n const deferred = new Deferred();\n deferred.promise\n .then(() => {\n row.pending = false;\n this.source.remove(row.getData());\n })\n .catch((err) => {\n row.pending = false;\n // doing nothing\n });\n if (this.getSetting(\"delete.confirmDelete\")) {\n confirmEmitter.emit({\n data: row.getData(),\n source: this.source,\n confirm: deferred,\n });\n } else {\n deferred.resolve(false);\n }\n if (row.isSelected) {\n this.dataSet.selectRow(row, false);\n }\n }\n\n processDataChange(changes: any) {\n if (this.shouldProcessChange(changes)) {\n if (changes[\"action\"] === \"load\") {\n this.dataSet.deselectAll();\n }\n this.dataSet.setData(changes[\"elements\"]);\n }\n }\n\n shouldProcessChange(changes: any): boolean {\n if (\n [\"filter\", \"sort\", \"page\", \"remove\", \"refresh\", \"load\", \"paging\"].indexOf(\n changes[\"action\"]\n ) !== -1\n ) {\n return true;\n } else if (\n [\"prepend\", \"append\"].indexOf(changes[\"action\"]) !== -1 &&\n !this.getSetting(\"pager.display\")\n ) {\n return true;\n }\n return false;\n }\n\n prepareSource(source: LocalDataSource): LocalDataSource {\n const initialSort: SmartTableSortItem | false = this.getInitialSort();\n if (initialSort) {\n source.setSort([initialSort], false);\n }\n if (this.getSetting(\"pager.display\") === true) {\n source.setPaging(1, this.getSetting(\"pager.perPage\"), false);\n }\n\n source.refresh();\n return source;\n }\n\n getInitialSort(): SmartTableSortItem | false {\n const defaultSortColumn = this.getColumns().find(\n (column: Column) => column.isSortable && column.defaultSortDirection\n );\n if (!defaultSortColumn) {\n return false;\n }\n return {\n field: defaultSortColumn.id,\n direction: defaultSortColumn.defaultSortDirection || \"asc\",\n compare: defaultSortColumn.getCompareFunction(),\n };\n }\n\n getSelectedRowsData(): any[] {\n return this.dataSet.getRows();\n }\n\n selectAllRows(status: boolean) {\n this.dataSet.setSelectAll(status);\n }\n\n getFirstRow(): Row {\n return this.dataSet.getFirstRow();\n }\n\n getLastRow(): Row {\n return this.dataSet.getLastRow();\n }\n\n // ------------------------------- column sort\n\n private async getSortedTableColumns(\n newState: ColumnPositionState[],\n columns: SmartTableColumnSettings[]\n ): Promise<SmartTableColumnSettings[]> {\n const sortedArray: SmartTableColumnSettings[] = [];\n newState.forEach((item2) => {\n const index = columns.findIndex(\n (item1) => item1.key === item2.key && item1.title === item2.title\n );\n if (index > -1) {\n sortedArray.push({ ...columns[index], hide: !!item2.hide });\n }\n });\n return Promise.resolve(sortedArray);\n }\n\n public async applyColumnsSortState(state: ColumnPositionState[], emitEvent = true) {\n this.currentColumnsSortState = this.getMergedColumnStates(state);\n this.updateSettingsAndDataSet({\n ...this.settings(),\n columns: await this.getSortedTableColumns(this.currentColumnsSortState, this.settings()?.columns),\n });\n if (this.columnStateStorageKey) {\n setLocalStorage(this.columnStateStorageKey, this.currentColumnsSortState);\n }\n if (emitEvent) {\n this.columnsSortedEmitter.emit(this.currentColumnsSortState)\n }\n }\n\n private setColumnsSortState(columns?: SmartTableColumnSettings[]) {\n const columnsState = this.getColumnsStateFromSettings(columns);\n if (this.columnStateStorageKey) {\n const storageState = getLocalStorage<ColumnPositionState[]>(\n this.columnStateStorageKey\n );\n if (!storageState) {\n this.currentColumnsSortState = columnsState;\n setLocalStorage(this.columnStateStorageKey, columnsState);\n return;\n }\n const merged = this.getMergedColumnStates(storageState, columnsState)\n this.applyColumnsSortState(merged, false);\n return;\n }\n this.applyColumnsSortState(columnsState, false);\n }\n\n private getColumnsStateFromSettings(columns?: SmartTableColumnSettings[]): ColumnPositionState[] {\n return (columns || this.settings().columns || []).map((column) => ({\n key: column.key as string,\n title: column.title,\n hide: !!column.hide,\n moveDisabled: !!column.moveDisabled,\n }));\n }\n\n private getMergedColumnStates(\n newState: ColumnPositionState[],\n columnsState?: ColumnPositionState[],\n ) {\n const columnsSettings = columnsState || this.getColumnsStateFromSettings();\n // merge new columns state with state from storage\n const filtered: ColumnPositionState[] = [];\n newState.forEach((state) => {\n const fined = columnsSettings.find(\n (column) => column.title === state.title && column.key === state.key\n );\n if (fined) {\n filtered.push({ ...fined, hide: fined.moveDisabled ? fined.hide : state.hide });\n }\n });\n // find new columns witch not exist in storage state\n const newColumns = columnsSettings.filter((state) => {\n return !filtered.some(\n (column) => column.title === state.title && column.key === state.key\n );\n });\n return [...filtered, ...newColumns];\n }\n\n private get columnStateStorageKey(): string | undefined {\n return this.settings().columnSortStorageKey;\n }\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n Input,\n output\n} from \"@angular/core\";\nimport { Row } from \"../../../lib/data-set/row\";\nimport { LocalDataSource } from \"./../../../lib/data-source/local/local.data-source\";\n\nimport { Grid } from \"../../../lib/grid\";\nimport { SmartTableCustomAction } from \"../../../lib/interfaces/smart-table.models\";\n\n@Component({\n selector: \"ng2-st-tbody-custom\",\n changeDetection: ChangeDetectionStrategy.OnPush,\n template: `\n @for (action of customActions(); track $index) {\n <a\n [id]=\"'row-' + row.index + '_action-' + action.name + '-button'\"\n href=\"#\"\n class=\"ng2-smart-action ng2-smart-action-custom-custom\"\n [innerHTML]=\"action.title\"\n (click)=\"\n $event.stopPropagation(); $event.preventDefault(); onCustom(action)\n \"\n ></a>\n }\n `,\n standalone: true,\n})\nexport class TbodyCustomComponent {\n @Input() grid!: Grid;\n @Input() row!: Row;\n @Input() source!: LocalDataSource;\n readonly custom = output<any>();\n\n onCustom(action: any) {\n this.custom.emit({\n action: action.name,\n data: this.row.getData(),\n source: this.source,\n });\n }\n\n customActions() {\n return this.grid.getSetting<SmartTableCustomAction[] | undefined>(\n \"actions.custom\"\n );\n }\n}\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n effect,\n EventEmitter,\n inject,\n input,\n output,\n OutputEmitterRef,\n} from \"@angular/core\";\n\nimport { Row } from \"../../../lib/data-set/row\";\nimport { LocalDataSource } from \"../../../lib/data-source/local/local.data-source\";\nimport { Grid } from \"../../../lib/grid\";\n\n@Component({\n selector: \"ng2-st-tbody-edit-delete\",\n template: `\n @if (!row().pending) { @if (isActionEdit) {\n <a\n href=\"#\"\n [id]=\"'row-' + row().index + '_action-edit-button'\"\n class=\"ng2-smart-action ng2-smart-action-edit-edit\"\n [innerHTML]=\"editRowButtonContent\"\n (click)=\"onEdit($event)\"\n ></a>\n } @if (isActionDelete) {\n <a\n href=\"#\"\n [id]=\"'row-' + row().index + '_action-delete-button'\"\n class=\"ng2-smart-action ng2-smart-action-delete-delete\"\n [innerHTML]=\"deleteRowButtonContent\"\n (click)=\"onDelete($event)\"\n ></a>\n } } @else {\n <div style=\"display: flex;\">\n @if (isActionEdit) {\n <svg\n role=\"none\"\n (click)=\"$event.stopPropagation()\"\n style=\"height: 2rem; width: 2rem;\"\n version=\"1.1\"\n id=\"L9\"\n xmlns=\"http://www.w3.org/2000/svg\"\n xmlns:xlink=\"http://www.w3.org/1999/xlink\"\n x=\"0px\"\n y=\"0px\"\n viewBox=\"0 0 100 100\"\n enable-background=\"new 0 0 0 0\"\n xml:space=\"preserve\"\n >\n <path\n fill=\"#e9e9e9\"\n d=\"M73,50c0-12.7-10.3-23-23-23S27,37.3,27,50 M30.9,50c0-10.5,8.5-19.1,19.1-19.1S69.1,39.5,69.1,50\"\n >\n <animateTransform\n attributeName=\"transform\"\n attributeType=\"XML\"\n type=\"rotate\"\n dur=\"1s\"\n from=\"0 50 50\"\n to=\"360 50 50\"\n repeatCount=\"indefinite\"\n />\n </path>\n </svg>\n } @if (isActionDelete) {\n <svg\n role=\"none\"\n (click)=\"$event.stopPropagation()\"\n style=\"height: 2rem; width: 2rem;\"\n version=\"1.1\"\n id=\"L9\"\n xmlns=\"http://www.w3.org/2000/svg\"\n xmlns:xlink=\"http://www.w3.org/1999/xlink\"\n x=\"0px\"\n y=\"0px\"\n viewBox=\"0 0 100 100\"\n enable-background=\"new 0 0 0 0\"\n xml:space=\"preserve\"\n >\n <path\n fill=\"#e9e9e9\"\n d=\"M73,50c0-12.7-10.3-23-23-23S27,37.3,27,50 M30.9,50c0-10.5,8.5-19.1,19.1-19.1S69.1,39.5,69.1,50\"\n >\n <animateTransform\n attributeName=\"transform\"\n attributeType=\"XML\"\n type=\"rotate\"\n dur=\"1s\"\n from=\"0 50 50\"\n to=\"360 50 50\"\n repeatCount=\"indefinite\"\n />\n </path>\n </svg>\n }\n </div>\n }\n `,\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class TbodyEditDeleteComponent {\n private readonly cdr = inject(ChangeDetectorRef);\n readonly grid = input.required<Grid>();\n readonly row = input.required<Row>();\n readonly source = input.required<LocalDataSource>();\n readonly deleteConfirm = input.required<\n EventEmitter<any> | OutputEmitterRef<any>\n >();\n\n readonly edit = output<any>();\n readonly delete = output<any>();\n\n isActionEdit = false;\n isActionDelete = false;\n isExternalMode = false;\n editRowButtonContent = \"Edit\";\n deleteRowButtonContent = \"Delete\";\n\n constructor() {\n effect(() => {\n const settings = this.grid().settings();\n const actions = settings.actions;\n if (actions) {\n this.isActionDelete = !!actions.delete;\n this.isActionEdit = !!actions.edit;\n }\n this.isExternalMode = settings.mode === 'external';\n this.editRowButtonContent = settings.edit\n ? settings.edit.editButtonContent || \"Edit\"\n : \"Edit\";\n this.deleteRowButtonContent = settings.delete\n ? settings.delete.deleteButtonContent || \"Delete\"\n : \"Delete\";\n this.cdr.detectChanges();\n\n\n });\n }\n\n onEdit(event: any) {\n event.preventDefault();\n event.stopPropagation();\n this.edit.emit({\n data: this.row().getData(),\n source: this.source,\n });\n if (!this.isExternalMode) {\n this.grid().edit(this.row());\n }\n }\n\n onDelete(event: any) {\n event.preventDefault();\n event.stopPropagation();\n if (this.isExternalMode) {\n this.delete.emit({\n data: this.row().getData(),\n source: this.source(),\n });\n } else {\n this.grid().delete(this.row(), this.deleteConfirm());\n }\n }\n}\n","import {\n Component,\n computed,\n EventEmitter,\n input,\n output,\n OutputEmitterRef\n} from \"@angular/core\";\n\nimport { NgTemplateOutlet } from \"@angular/common\";\nimport { FormsModule } from \"@angular/forms\";\nimport { Cell } from \"../../lib/data-set/cell\";\nimport { LocalDataSource } from \"../../lib/data-source/local/local.data-source\";\nimport { Grid } from \"../../lib/grid\";\nimport { CellComponent } from \"../cell/cell.component\";\nimport { TbodyCreateCancelComponent } from \"./cells/create-cancel.component\";\nimport { TbodyCustomComponent } from \"./cells/custom.component\";\nimport { TbodyEditDeleteComponent } from \"./cells/edit-delete.component\";\n\n@Component({\n selector: \"[ng2-st-tbody]\",\n styleUrls: [\"./tbody.component.scss\"],\n templateUrl: \"./tbody.component.html\",\n standalone: true,\n imports: [\n FormsModule,\n TbodyCustomComponent,\n TbodyEditDeleteComponent,\n TbodyCreateCancelComponent,\n NgTemplateOutlet,\n CellComponent,\n ],\n})\nexport class Ng2SmartTableTbodyComponent {\n readonly grid = input.required<Grid>();\n readonly source = input.required<LocalDataSource>();\n readonly deleteConfirm = input.required<EventEmitter<any> | OutputEmitterRef<any>>();\n readonly createConfirm = input.required<EventEmitter<any> | OutputEmitterRef<any>>();\n readonly editConfirm = input.required<EventEmitter<any> | OutputEmitterRef<any>>();\n readonly rowClassFunction = input<(row: any) => string>(() => \"\");\n\n readonly save = output<any>();\n readonly edit = output<any>();\n readonly editCancel = output<any>();\n readonly delete = output<any>();\n readonly custom = output<any>();\n readonly edited = output<any>();\n readonly userSelectRow = output<any>();\n readonly userClickedRow = output<any>();\n readonly multipleSelectRow = output<any>();\n\n readonly editInputClass = computed<string>(() => {\n const editOptions = this.grid().settings().edit;\n if (!editOptions) {\n return ''\n }\n return editOptions.inputClass || ''\n })\n readonly noDataMessage = computed<string>(() => {\n return this.grid().settings().noDataMessage || \"No data found\"\n })\n\n getVisibleCells(cells: Cell[]): Cell[] {\n return (cells || []).filter((cell: Cell) => !cell.getColumn().hide);\n }\n\n protected trackByIdOrIndex(index: number, item: any): string | number {\n return item?.id || index;\n }\n}\n","@for (row of grid().getRows(); track trackByIdOrIndex($index, row)) {\n<tr\n (click)=\"userClickedRow.emit(row)\"\n class=\"ng2-smart-row\"\n [class]=\"rowClassFunction()(row)\"\n [class.selected]=\"row.isSelected\"\n>\n @if (grid().isMultiSelectVisible()) {\n <td\n class=\"ng2-smart-actions ng2-smart-action-multiple-select\"\n (click)=\"$event.stopPropagation(); multipleSelectRow.emit(row)\"\n >\n <input\n type=\"checkbox\"\n [id]=\"'row-' + row.index + '_select-checkbox'\"\n class=\"form-control\"\n [ngModel]=\"row.isSelected\"\n />\n </td>\n } @if (grid().actionIsOnLeft()) {\n <ng-container [ngTemplateOutlet]=\"actions\"></ng-container>\n } @for (cell of getVisibleCells(row.cells); track cell.getId()) {\n <td [class]=\"cell.getColumnClass()\">\n <ng2-smart-table-cell\n [cell]=\"cell\"\n [inputClass]=\"editInputClass()\"\n [isInEditing]=\"row.isInEditing\"\n >\n </ng2-smart-table-cell>\n </td>\n } @if (grid().actionIsOnRight()) {\n <ng-container [ngTemplateOutlet]=\"actions\"></ng-container>\n }\n</tr>\n\n<ng-template #actions>\n @if (row.isInEditing) {\n <td class=\"ng2-smart-actions\">\n <ng2-st-tbody-create-cancel\n [grid]=\"grid()\"\n [row]=\"row\"\n [editConfirm]=\"editConfirm()\"\n [editCancel]=\"editCancel\"\n ></ng2-st-tbody-create-cancel>\n </td>\n } @if (!row.isInEditing && grid().isActionsVisible() ) {\n <td class=\"ng2-smart-actions\" (click)=\"$event.stopPropagation()\">\n <ng2-st-tbody-custom\n [grid]=\"grid()\"\n (custom)=\"custom.emit($event)\"\n [row]=\"row\"\n [source]=\"source()\"\n ></ng2-st-tbody-custom>\n <ng2-st-tbody-edit-delete\n [grid]=\"grid()\"\n [deleteConfirm]=\"deleteConfirm()\"\n (edit)=\"edit.emit(row)\"\n (delete)=\"delete.emit(row)\"\n [row]=\"row\"\n [source]=\"source()\"\n >\n </ng2-st-tbody-edit-delete>\n </td>\n }\n</ng-template>\n} @empty {\n<tr>\n <td colspan=\"50\">\n {{ noDataMessage() }}\n </td>\n</tr>\n}\n","import { Component, input, Input, output } from '@angular/core';\n\nimport { Column } from '../../lib/data-set/column';\nimport { LocalDataSource } from '../../lib/data-source/local/local.data-source';\n\n@Component({ template: '', selector: 'ng2-filter-default-component' })\nexport class FilterDefault {\n readonly column = input.required<Column>();\n readonly source = input.required<LocalDataSource>();\n readonly inputClass = input<string>('');\n @Input() query = '';\n\n readonly filter = output<any>();\n\n onFilter(query: string) {\n this.source().addFilter({\n field: this.column().id,\n search: query,\n filter: this.column().getFilterFunction(),\n });\n }\n}\n","import {\n Component,\n ComponentRef,\n OnChanges,\n OnDestroy,\n SimpleChanges,\n ViewChild,\n ViewContainerRef,\n} from \"@angular/core\";\n\nimport { DefaultFilter } from \"ng2-smart-table\";\nimport { FilterDefault } from \"./filter-default\";\n\n@Component({\n selector: \"ng2-custom-table-filter\",\n template: `<ng-template #dynamicTarget></ng-template>`,\n standalone: true,\n})\nexport class CustomFilterComponent\n extends FilterDefault\n implements OnChanges, OnDestroy\n{\n @ViewChild(\"dynamicTarget\", { read: ViewContainerRef, static: true })\n dynamicTarget?: ViewContainerRef;\n\n customComponent?: ComponentRef<DefaultFilter>;\n\n ngOnChanges(changes: SimpleChanges) {\n if (this.customComponent) {\n if (\n this.customComponent?.instance &&\n \"ngOnChanges\" in this.customComponent.instance\n ) {\n const onChanges = this.customComponent.instance.ngOnChanges as (\n changes: SimpleChanges\n ) => void;\n onChanges(changes);\n }\n return;\n }\n const columnFilter = this.column().filter;\n if (columnFilter && columnFilter.type === \"custom\") {\n this.customComponent = this.dynamicTarget?.createComponent(\n columnFilter?.component\n );\n // set @Inputs and @Outputs of custom component\n this.customComponent?.setInput(\"query\", this.query);\n this.customComponent?.setInput(\"column\", this.column());\n this.customComponent?.setInput(\"source\", this.source());\n this.customComponent?.setInput(\"inputClass\", this.inputClass());\n this.customComponent?.instance.filter.subscribe((event: any) =>\n this.onFilter(event)\n );\n }\n }\n\n ngOnDestroy() {\n if (this.customComponent) {\n this.customComponent.destroy();\n }\n }\n}\n","import { Component, OnInit } from \"@angular/core\";\nimport {\n FormsModule,\n ReactiveFormsModule,\n UntypedFormControl,\n} from \"@angular/forms\";\n\nimport { debounceTime } from \"rxjs/operators\";\nimport { DefaultFilter } from \"./default-filter\";\n\n@Component({\n selector: \"ng2-checkbox-filter\",\n template: `\n <input\n type=\"checkbox\"\n [formControl]=\"inputControl\"\n [class]=\"inputClass()\"\n class=\"form-control\"\n />\n @if (filterActive) {\n <a href=\"#\" (click)=\"resetFilter($event)\">{{\n column().getFilterConfig()?.resetText || \"reset\"\n }}</a>\n }\n `,\n standalone: true,\n imports: [FormsModule, ReactiveFormsModule],\n})\nexport class CheckboxFilterComponent extends DefaultFilter implements OnInit {\n filterActive = false;\n inputControl = new UntypedFormControl();\n\n constructor() {\n super();\n }\n\n ngOnInit() {\n this.changesSubscription = this.inputControl.valueChanges\n .pipe(debounceTime(this.delay))\n .subscribe((checked: boolean) => {\n this.filterActive = true;\n const trueVal =\n (this.column().getFilterConfig() &&\n this.column().getFilterConfig().true) ||\n true;\n const falseVal =\n (this.column().getFilterConfig() &&\n this.column().getFilterConfig().false) ||\n false;\n this.query = checked ? trueVal : falseVal;\n this.setFilter();\n });\n }\n\n resetFilter(event: any) {\n event.preventDefault();\n this.query = \"\";\n this.inputControl.setValue(false, { emitEvent: false });\n this.filterActive = false;\n this.setFilter();\n }\n}\n","import { Component, OnChanges, OnInit, SimpleChanges } from \"@angular/core\";\nimport {\n FormsModule,\n ReactiveFormsModule,\n UntypedFormControl,\n} from \"@angular/forms\";\nimport { debounceTime, distinctUntilChanged } from \"rxjs/operators\";\n\nimport { DefaultFilter } from \"./default-filter\";\n\n@Component({\n selector: \"ng2-input-filter\",\n template: `\n <input\n [class]=\"inputClass()\"\n [formControl]=\"inputControl\"\n class=\"form-control\"\n type=\"text\"\n placeholder=\"{{ column().title }}\"\n />\n `,\n standalone: true,\n imports: [FormsModule, ReactiveFormsModule],\n})\nexport class InputFilterComponent\n extends DefaultFilter\n implements OnInit, OnChanges\n{\n inputControl = new UntypedFormControl();\n\n constructor() {\n super();\n }\n\n ngOnInit() {\n if (this.query) {\n this.inputControl.setValue(this.query);\n }\n this.inputControl.valueChanges\n .pipe(distinctUntilChanged(), debounceTime(this.delay))\n .subscribe((value: string) => {\n this.query = this.inputControl.value;\n this.setFilter();\n });\n }\n\n ngOnChanges(changes: SimpleChanges) {\n if (changes?.[\"query\"]) {\n this.inputControl.setValue(this.query);\n }\n }\n}\n","import { Component, OnInit, ViewChild } from '@angular/core';\nimport { FormsModule, NgControl } from '@angular/forms';\nimport { debounceTime, distinctUntilChanged, skip } from 'rxjs/operators';\n\nimport { DefaultFilter } from './default-filter';\n\n@Component({\n selector: 'ng2-select-filter',\n template: `\n <select [class]=\"inputClass()\"\n class=\"form-control\"\n #inputControl\n [(ngModel)]=\"query\">\n\n <option value=\"\">{{ column().getFilterConfig().selectText }}</option>\n @for (option of column().getFilterConfig().list; track option.value) {\n <option [value]=\"option.value\">\n {{ option.title }}\n </option>\n }\n </select>\n `,\n standalone: true,\n imports: [FormsModule]\n})\nexport class SelectFilterComponent extends DefaultFilter implements OnInit {\n @ViewChild('inputControl', { read: NgControl, static: true }) inputControl!: NgControl;\n\n constructor() {\n super();\n }\n\n ngOnInit() {\n if (this.inputControl.valueChanges) {\n this.inputControl.valueChanges\n .pipe(\n skip(1),\n distinctUntilChanged(),\n debounceTime(this.delay)\n )\n .subscribe((value: string) => this.setFilter());\n }\n\n }\n}\n","import { Component } from \"@angular/core\";\n\nimport { FilterDefault } from \"./filter-default\";\nimport { CheckboxFilterComponent } from \"./filter-types/checkbox-filter.component\";\nimport { InputFilterComponent } from \"./filter-types/input-filter.component\";\nimport { SelectFilterComponent } from \"./filter-types/select-filter.component\";\n\n@Component({\n selector: \"ng2-default-table-filter\",\n template: `\n @switch (column().getFilterType()) { @case ('list') {\n <ng2-select-filter\n [query]=\"query\"\n [class]=\"inputClass()\"\n [column]=\"column()\"\n (filter)=\"onFilter($event)\"\n >\n </ng2-select-filter>\n } @case ('checkbox') {\n <ng2-checkbox-filter\n [query]=\"query\"\n [class]=\"inputClass()\"\n [column]=\"column()\"\n (filter)=\"onFilter($event)\"\n >\n </ng2-checkbox-filter>\n } @default {\n <ng2-input-filter\n [query]=\"query\"\n [class]=\"inputClass()\"\n [column]=\"column()\"\n (filter)=\"onFilter($event)\"\n >\n </ng2-input-filter>\n } }\n `,\n standalone: true,\n imports: [\n SelectFilterComponent,\n CheckboxFilterComponent,\n InputFilterComponent,\n ],\n})\nexport class DefaultFilterComponent extends FilterDefault {}\n","import { Component, OnChanges, SimpleChanges } from '@angular/core';\nimport { Subscription } from 'rxjs';\nimport { CustomFilterComponent } from './custom-filter.component';\nimport { DefaultFilterComponent } from './default-filter.component';\nimport { FilterDefault } from './filter-default';\n\n@Component({\n selector: 'ng2-smart-table-filter',\n styleUrls: ['./filter.component.scss'],\n template: `\n @if (column().isFilterable) {\n <div class=\"ng2-smart-filter\">\n @switch (column().getFilterType()) {\n @case ('custom') {\n <ng2-custom-table-filter\n [query]=\"query\"\n [column]=\"column()\"\n [source]=\"source()\"\n [inputClass]=\"inputClass()\"\n (filter)=\"onFilter($event)\">\n </ng2-custom-table-filter>\n }\n @default {\n <ng2-default-table-filter\n [query]=\"query\"\n [column]=\"column()\"\n [source]=\"source()\"\n [inputClass]=\"inputClass()\"\n (filter)=\"onFilter($event)\">\n </ng2-default-table-filter>\n }\n }\n </div>\n }\n `,\n standalone: true,\n imports: [CustomFilterComponent, DefaultFilterComponent]\n})\nexport class FilterComponent extends FilterDefault implements OnChanges {\n protected dataChangedSub?: Subscription;\n\n ngOnChanges(changes: SimpleChanges) {\n if (changes['source']) {\n if (!changes['source'].firstChange && this.dataChangedSub) {\n this.dataChangedSub.unsubscribe();\n }\n this.dataChangedSub = this.source().onChanged().subscribe((dataChanges) => {\n const filterConf = this.source().getFilter();\n if (filterConf && filterConf.filters && filterConf.filters.length === 0) {\n this.query = '';\n\n // add a check for existing filters an set the query if one exists for this column\n // this covers instances where the filter is set by user code while maintaining existing functionality\n } else if (filterConf && filterConf.filters && filterConf.filters.length > 0) {\n filterConf.filters.forEach((k: any, v: any) => {\n if (k.field == this.column().id) {\n this.query = k.search;\n }\n });\n }\n });\n }\n }\n}\n","import {\n Component,\n computed,\n input,\n output\n} from \"@angular/core\";\n\nimport { LocalDataSource } from \"../../../lib/data-source/local/local.data-source\";\nimport { Grid } from \"../../../lib/grid\";\n\n@Component({\n selector: \"[ng2-st-add-button]\",\n template: `\n @if (isActionAdd()) {\n <a\n href=\"#\"\n class=\"ng2-smart-action ng2-smart-action-add-add\"\n [innerHTML]=\"addNewButtonContent()\"\n (click)=\"onAdd($event)\"\n ></a>\n }\n `,\n host: {\n class: \"ng2-smart-actions-title ng2-smart-actions-title-add\",\n },\n standalone: true,\n})\nexport class AddButtonComponent {\n readonly grid = input.required<Grid>();\n readonly source = input.required<LocalDataSource>();\n readonly create = output<any>();\n\n readonly isActionAdd = computed(() => {\n const actions = this.grid().settings().actions;\n if (!actions) {\n return false;\n }\n return !!actions.add;\n });\n readonly addNewButtonContent = computed(() => {\n const addParams = this.grid().settings()?.add;\n if (!addParams) {\n return \"Add New\";\n }\n return addParams?.addButtonContent || \"Add New\";\n });\n\n onAdd(event: any) {\n event.preventDefault();\n event.stopPropagation();\n\n if (this.grid().getSetting(\"mode\") === \"external\") {\n this.create.emit({\n source: this.source(),\n });\n } else {\n this.grid().createFormShown = true;\n }\n }\n}\n","import { Component, computed, input, output } from \"@angular/core\";\n\nimport { Column } from \"../../../lib/data-set/column\";\nimport { LocalDataSource } from \"../../../lib/data-source/local/local.data-source\";\nimport { Grid } from \"../../../lib/grid\";\nimport { FilterComponent } from \"../../filter/filter.component\";\nimport { AddButtonComponent } from \"../cells/add-button.component\";\n\n@Component({\n selector: \"[ng2-st-thead-filters-row]\",\n template: `\n @if (grid().isMultiSelectVisible()) {\n <th></th>\n } @if (grid().actionIsOnLeft() && grid().isActionsVisible()) {\n <th\n ng2-st-add-button\n [source]=\"source()\"\n [grid]=\"grid()\"\n (create)=\"create.emit($event)\"\n ></th>\n } @for (column of getVisibleColumns(); track column.id) {\n <th class=\"ng2-smart-th {{ column.id }}\">\n <ng2-smart-table-filter\n [source]=\"source()\"\n [column]=\"column\"\n [inputClass]=\"filterInputClass()\"\n (filter)=\"filter.emit($event)\"\n >\n </ng2-smart-table-filter>\n </th>\n } @if (grid().actionIsOnRight() && grid().isActionsVisible()) {\n <th\n ng2-st-add-button\n [grid]=\"grid()\"\n [source]=\"source()\"\n (create)=\"create.emit($event)\"\n ></th>\n }\n `,\n standalone: true,\n imports: [AddButtonComponent, FilterComponent],\n})\nexport class TheadFiltersRowComponent {\n readonly grid = input.required<Grid>();\n readonly source = input.required<LocalDataSource>();\n\n readonly create = output<any>();\n readonly filter = output<any>();\n\n filterInputClass = computed<string>(() => {\n const filterOptions = this.grid().settings()?.filter;\n if (!filterOptions) {\n return \"\";\n }\n return filterOptions.inputClass || \"\";\n });\n\n getVisibleColumns(): Column[] {\n return (this.grid().getColumns() || []).filter(\n (column: Column) => !column.hide\n );\n }\n}\n","import {\n Component,\n computed,\n input,\n output\n} from \"@angular/core\";\n\nimport { Grid } from \"../../../lib/grid\";\n\n@Component({\n selector: \"ng2-st-actions\",\n template: `\n <a\n href=\"#\"\n class=\"ng2-smart-action ng2-smart-action-add-create\"\n [innerHTML]=\"createButtonContent()\"\n (click)=\"$event.preventDefault(); create.emit($event)\"\n ></a>\n <a\n href=\"#\"\n class=\"ng2-smart-action ng2-smart-action-add-cancel\"\n [innerHTML]=\"cancelButtonContent()\"\n (click)=\"$event.preventDefault(); grid().createFormShown = false\"\n ></a>\n `,\n standalone: true,\n})\nexport class ActionsComponent {\n readonly grid = input.required<Grid>();\n readonly create = output<any>();\n\n createButtonContent = computed(() => {\n const addOptions = this.grid().settings().add\n if (!addOptions) {\n return \"Create\"\n }\n return addOptions?.createButtonContent || \"Create\"\n });\n cancelButtonContent = computed(() => {\n const addOptions = this.grid().settings().add\n if (!addOptions) {\n return \"Cancel\"\n }\n return addOptions?.cancelButtonContent || \"Cancel\"\n });\n}\n","import {\n Component,\n computed,\n EventEmitter,\n input,\n Input,\n output,\n OutputEmitterRef\n} from \"@angular/core\";\n\nimport { Cell } from \"../../../lib/data-set/cell\";\nimport { Grid } from \"../../../lib/grid\";\nimport { CellComponent } from \"../../cell/cell.component\";\nimport { ActionsComponent } from \"../cells/actions.component\";\n\n@Component({\n selector: \"[ng2-st-thead-form-row]\",\n template: `\n @if (grid().isMultiSelectVisible()) {\n <td></td>\n } @if (grid().actionIsOnLeft() && grid().isActionsVisible()) {\n <td class=\"ng2-smart-actions\">\n <ng2-st-actions\n [grid]=\"grid()\"\n (create)=\"onCreate($event)\"\n ></ng2-st-actions>\n </td>\n } @for (cell of getVisibleCells(); track cell.getId()) {\n <td>\n <ng2-smart-table-cell\n [cell]=\"cell\"\n [inputClass]=\"addInputClass()\"\n [isInEditing]=\"grid().getNewRow().isInEditing\"\n >\n </ng2-smart-table-cell>\n </td>\n } @if (grid().actionIsOnRight() && grid().isActionsVisible()) {\n <td class=\"ng2-smart-actions\">\n <ng2-st-actions\n [grid]=\"grid()\"\n (create)=\"onCreate($event)\"\n ></ng2-st-actions>\n </td>\n }\n `,\n standalone: true,\n imports: [ActionsComponent, CellComponent],\n})\nexport class TheadFormRowComponent {\n readonly grid = input.required<Grid>();\n @Input() createConfirm!: EventEmitter<any> | OutputEmitterRef<any>;\n\n readonly create = output<any>();\n addInputClass = computed<string>(() => {\n const addOptions = this.grid().settings()?.add;\n if (!addOptions) {\n return \"\";\n }\n return addOptions.inputClass || \"\";\n });\n\n onCreate(event: any) {\n event.stopPropagation();\n this.grid().create(this.grid().getNewRow(), this.createConfirm);\n }\n\n getVisibleCells(): Cell[] {\n return (this.grid().getNewRow().getCells() || []).filter(\n (cell: Cell) => !cell.getColumn().hide\n );\n }\n}\n","import {\n Component,\n computed,\n input\n} from \"@angular/core\";\n\nimport { Grid } from \"../../../lib/grid\";\n\n@Component({\n selector: \"[ng2-st-actions-title]\",\n template: ` <div class=\"ng2-smart-title\">{{ actionsColumnTitle() }}</div> `,\n standalone: true,\n host: {\n class: \"ng2-smart-actions\",\n },\n})\nexport class ActionsTitleComponent {\n readonly grid = input.required<Grid>();\n\n actionsColumnTitle = computed(() => {\n const actions = this.grid().settings().actions;\n if (!actions) {\n return \"Actions\";\n }\n return actions.columnTitle || \"Actions\";\n });\n}\n","import { Component, input } from \"@angular/core\";\n\nimport { FormsModule } from \"@angular/forms\";\nimport { Grid } from \"../../../lib/grid\";\n@Component({\n selector: \"[ng2-st-checkbox-select-all]\",\n template: `\n <input type=\"checkbox\" [ngModel]=\"this.grid().dataSet.isAllSelected\" />\n `,\n standalone: true,\n imports: [FormsModule],\n})\nexport class CheckboxSelectAllComponent {\n readonly grid = input.required<Grid>();\n}\n","import {\n Component,\n OnChanges,\n OnDestroy,\n SimpleChanges,\n input,\n output\n} from \"@angular/core\";\nimport { Subscription } from \"rxjs\";\nimport { Column } from \"../../../../lib/data-set/column\";\nimport { LocalDataSource } from \"./../../../../lib/data-source/local/local.data-source\";\nimport { SmartTableSortDirection } from \"./../../../../lib/interfaces/smart-table.models\";\n\n@Component({\n selector: \"ng2-smart-table-title\",\n styleUrls: [\"./title.component.scss\"],\n template: `\n @if (column().isSortable) {\n <a\n href=\"#\"\n (click)=\"_sort($event)\"\n class=\"ng2-smart-sort-link sort\"\n [class]=\"currentDirection\"\n >\n {{ column().title }}\n </a>\n } @else {\n <span class=\"ng2-smart-sort\">{{ column().title }}</span>\n }\n `,\n standalone: true,\n})\nexport class TitleComponent implements OnChanges, OnDestroy {\n\n currentDirection: SmartTableSortDirection | \"\" = \"\";\n readonly source = input.required<LocalDataSource>();\n readonly column = input.required<Column>();\n\n readonly sort = output<any>();\n\n protected dataChangedSub: Subscription | false = false;\n\n ngOnChanges(changes: SimpleChanges) {\n if (changes[\"source\"]) {\n if (!changes[\"source\"].firstChange && this.dataChangedSub) {\n this.dataChangedSub.unsubscribe();\n }\n this.dataChangedSub = this.source().onChanged().subscribe((dataChanges) => {\n const sortConf = this.source().getSort();\n\n if (sortConf.length > 0 && sortConf[0][\"field\"] === this.column().id) {\n this.currentDirection = sortConf[0][\"direction\"];\n } else {\n this.currentDirection = \"\";\n }\n });\n }\n }\n\n ngOnDestroy(): void {\n if (this.dataChangedSub) {\n this.dataChangedSub?.unsubscribe();\n }\n }\n\n _sort(event: any) {\n event.preventDefault();\n this.changeSortDirection();\n this.source().setSort([\n {\n field: this.column().id,\n direction: this.currentDirection === \"desc\" ? \"desc\" : \"asc\",\n compare: this.column().getCompareFunction(),\n },\n ]);\n this.sort.emit(null);\n }\n\n changeSortDirection(): string {\n if (this.currentDirection) {\n const newDirection = this.currentDirection === \"asc\" ? \"desc\" : \"asc\";\n this.currentDirection = newDirection;\n } else {\n this.currentDirection = this.column().sortDirection;\n }\n return this.currentDirection;\n }\n}\n","import { Component, input, output } from \"@angular/core\";\n\nimport { Column } from \"../../../lib/data-set/column\";\nimport { LocalDataSource } from \"../../../lib/data-source/local/local.data-source\";\nimport { TitleComponent } from \"./title/title.component\";\n\n@Component({\n selector: \"ng2-st-column-title\",\n template: `\n <div class=\"ng2-smart-title\">\n <ng2-smart-table-title\n [source]=\"source()\"\n [column]=\"column()\"\n (sort)=\"sort.emit($event)\"\n ></ng2-smart-table-title>\n </div>\n `,\n standalone: true,\n imports: [TitleComponent],\n})\nexport class ColumnTitleComponent {\n readonly source = input.required<LocalDataSource>();\n readonly column = input.required<Column>();\n\n readonly sort = output<any>();\n}\n","import { Component, input, output } from \"@angular/core\";\n\nimport { Column } from \"../../../lib/data-set/column\";\nimport { LocalDataSource } from \"../../../lib/data-source/local/local.data-source\";\nimport { Grid } from \"../../../lib/grid\";\nimport { ActionsTitleComponent } from \"../cells/actions-title.component\";\nimport { CheckboxSelectAllComponent } from \"../cells/checkbox-select-all.component\";\nimport { ColumnTitleComponent } from \"../cells/column-title.component\";\n\n@Component({\n selector: \"[ng2-st-thead-titles-row]\",\n template: `\n @if (grid().isMultiSelectVisible()) {\n <th\n ng2-st-checkbox-select-all\n [grid]=\"grid()\"\n (click)=\"selectAllRows.emit($event)\"\n ></th>\n } @if (grid().actionIsOnLeft() && grid().isActionsVisible()) {\n\n <th ng2-st-actions-title [grid]=\"grid()\"></th>\n } @for (column of getVisibleColumns(); track column.id) {\n <th\n class=\"ng2-smart-th {{ column.id }}\"\n [class]=\"column.class\"\n [style.width]=\"column.width\"\n >\n <ng2-st-column-title\n [source]=\"source()\"\n [column]=\"column\"\n (sort)=\"sort.emit($event)\"\n ></ng2-st-column-title>\n </th>\n } @if (grid().actionIsOnRight() && grid().isActionsVisible()) {\n <th ng2-st-actions-title [grid]=\"grid()\"></th>\n }\n `,\n standalone: true,\n imports: [\n CheckboxSelectAllComponent,\n ActionsTitleComponent,\n ColumnTitleComponent,\n ],\n})\nexport class TheadTitlesRowComponent {\n readonly grid = input.required<Grid>();\n readonly source = input.required<LocalDataSource>();\n\n readonly sort = output<any>();\n readonly selectAllRows = output<any>();\n\n getVisibleColumns(): Column[] {\n return (this.grid().getColumns() || []).filter(\n (column: Column) => !column.hide\n );\n }\n}\n","import {\n Component,\n computed,\n EventEmitter,\n input,\n Input,\n output,\n OutputEmitterRef\n} from \"@angular/core\";\nimport { LocalDataSource } from \"./../../lib/data-source/local/local.data-source\";\n\nimport { Grid } from \"../../lib/grid\";\nimport { TheadFiltersRowComponent } from \"./rows/thead-filters-row.component\";\nimport { TheadFormRowComponent } from \"./rows/thead-form-row.component\";\nimport { TheadTitlesRowComponent } from \"./rows/thead-titles-row.component\";\n\n@Component({\n selector: \"[ng2-st-thead]\",\n templateUrl: \"./thead.component.html\",\n standalone: true,\n imports: [\n TheadTitlesRowComponent,\n TheadFiltersRowComponent,\n TheadFormRowComponent,\n ],\n})\nexport class Ng2SmartTableTheadComponent {\n readonly grid = input.required<Grid>();\n readonly source = input.required<LocalDataSource>();\n @Input() createConfirm!: EventEmitter<any> | OutputEmitterRef<any>;\n\n readonly sort = output<any>();\n readonly selectAllRows = output<any>();\n readonly create = output<any>();\n readonly filter = output<any>();\n\n readonly isHideHeader = computed<boolean>(() => {\n return this.grid().settings()?.hideHeader || false;\n });\n\n readonly isHideSubHeader = computed<boolean>(() => {\n return this.grid().settings()?.hideSubHeader || false;\n });\n}\n","@if (!isHideHeader()) {\n <tr ng2-st-thead-titles-row\n class=\"ng2-smart-titles\"\n [grid]=\"grid()\"\n [source]=\"source()\"\n (sort)=\"sort.emit($event)\"\n (selectAllRows)=\"selectAllRows.emit($event)\">\n </tr>\n}\n\n@if (!isHideSubHeader()) {\n <tr ng2-st-thead-filters-row\n class=\"ng2-smart-filters\"\n [grid]=\"grid()\"\n [source]=\"source()\"\n (create)=\"create.emit($event)\"\n (filter)=\"filter.emit($event)\">\n </tr>\n}\n\n@if (grid().createFormShown) {\n <tr ng2-st-thead-form-row\n [grid]=\"grid()\"\n [createConfirm]=\"createConfirm\">\n </tr>\n}\n","import {\n Component,\n Input,\n OnChanges,\n SimpleChange,\n effect,\n output\n} from \"@angular/core\";\n\nimport { PagerComponent } from \"./components/pager/pager.component\";\nimport { Ng2SmartTableTbodyComponent } from \"./components/tbody/tbody.component\";\nimport { Ng2SmartTableTheadComponent } from \"./components/thead/thead.component\";\nimport { Row } from \"./lib/data-set/row\";\nimport { LocalDataSource } from \"./lib/data-source/local/local.data-source\";\nimport { Grid } from \"./lib/grid\";\nimport { getRandomId } from \"./lib/helpers\";\nimport {\n ColumnPositionState,\n SmartTableConfirmDeleteEvent,\n SmartTableConfirmEditEvent,\n SmartTableCreateConfirm,\n SmartTableCustomEvent,\n SmartTableRowClickedEvent,\n SmartTableRowSelectEvent,\n SmartTableSettings,\n} from \"./lib/interfaces/smart-table.models\";\n\n@Component({\n selector: \"ng2-smart-table\",\n styleUrls: [\"./ng2-smart-table.component.scss\"],\n templateUrl: \"./ng2-smart-table.component.html\",\n standalone: true,\n imports: [\n Ng2SmartTableTheadComponent,\n Ng2SmartTableTbodyComponent,\n PagerComponent,\n ],\n})\nexport class Ng2SmartTableComponent implements OnChanges {\n @Input({required: true}) source!: LocalDataSource;\n @Input({required: true}) settings!: SmartTableSettings;\n\n readonly multiRowSelect = output<SmartTableRowSelectEvent>();\n readonly rowClicked = output<SmartTableRowClickedEvent>();\n readonly columnsSorted = output<ColumnPositionState[]>();\n readonly delete = output<any>();\n readonly edit = output<any>();\n readonly editCancel = output<any>();\n readonly create = output<any>();\n readonly custom = output<SmartTableCustomEvent>();\n readonly deleteConfirm = output<SmartTableConfirmDeleteEvent>();\n readonly editConfirm = output<SmartTableConfirmEditEvent>();\n readonly createConfirm = output<SmartTableCreateConfirm>();\n\n tableClass = \"\";\n tableId = \"\";\n perPageSelect: number[] = [];\n isPagerDisplay = false;\n rowClassFunction: (row: any) => string = () => '';\n\n grid!: Grid;\n\n constructor() {\n effect(() => {\n const settings = this.grid.settings();\n this.tableId = settings.attr?.id || getRandomId();\n this.tableClass = settings.attr?.class || '';\n this.isPagerDisplay = this.grid.getSetting(\"pager.display\", false);\n this.perPageSelect = this.grid.getSetting(\"pager.perPageSelect\");\n this.rowClassFunction = settings.rowClassFunction || (() => \"\");\n })\n }\n\n ngOnChanges({settings, source}: Record<string, SimpleChange>) {\n if (this.grid) {\n if (settings) {\n this.grid.setSettings(this.settings);\n }\n if (source) {\n this.source = this.prepareSource();\n this.grid.setSource(this.source);\n }\n } else {\n this.initGrid();\n }\n }\n\n protected multipleSelectRow(row: Row): void {\n this.grid.multipleSelectRow(row);\n this.emitUserSelectRow(row);\n }\n\n protected onSelectAllRows(): void {\n this.grid.selectAllRows(!this.grid.dataSet.isAllSelected);\n this.emitUserSelectRow(null);\n }\n\n protected onSelectRow(row: Row, state: boolean): void {\n this.grid.selectRow(row, state);\n }\n\n protected emitUserRowClicked(row: Row): void {\n this.rowClicked.emit({\n data: row ? row.getData() : null,\n source: this.source,\n });\n }\n\n private initGrid(): void {\n this.source = this.prepareSource();\n this.grid = new Grid(this.source, this.settings);\n this.grid.setColumnsSortedEmitter(this.columnsSorted)\n }\n\n private prepareSource(): LocalDataSource {\n if (this.source instanceof LocalDataSource) {\n return this.source;\n }\n return new LocalDataSource();\n }\n\n private emitUserSelectRow(row: Row | null): void {\n this.multiRowSelect.emit({\n data: row ? row.getData() : null,\n isSelected: row ? row.getIsSelected() : false,\n source: this.source,\n selected: this.grid.dataSet.getSelectedRowsData(),\n });\n }\n}\n","<table [id]=\"tableId\" [class]=\"tableClass\">\n <thead\n ng2-st-thead\n [grid]=\"grid\"\n [source]=\"source\"\n [createConfirm]=\"createConfirm\"\n (create)=\"create.emit($event)\"\n (selectAllRows)=\"onSelectAllRows()\"\n ></thead>\n\n <tbody\n ng2-st-tbody\n [grid]=\"grid\"\n [source]=\"source\"\n [deleteConfirm]=\"deleteConfirm\"\n [editConfirm]=\"editConfirm\"\n [createConfirm]=\"createConfirm\"\n [rowClassFunction]=\"rowClassFunction\"\n (edit)=\"edit.emit($event)\"\n (editCancel)=\"editCancel.emit($event)\"\n (delete)=\"delete.emit($event)\"\n (custom)=\"custom.emit($event)\"\n (userClickedRow)=\"emitUserRowClicked($event)\"\n (multipleSelectRow)=\"multipleSelectRow($event)\"\n ></tbody>\n</table>\n\n@if (isPagerDisplay) {\n<ng2-smart-table-pager [source]=\"source\" [perPageSelect]=\"perPageSelect\">\n</ng2-smart-table-pager>\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"den4ik92-ng2-smart-table.mjs","sources":["../../../projects/ng2-smart-table/src/lib/components/cell/cell-editors/default-editor.ts","../../../projects/ng2-smart-table/src/lib/components/filter/filter-types/default-filter.ts","../../../projects/ng2-smart-table/src/lib/lib/helpers.ts","../../../projects/ng2-smart-table/src/lib/components/table-columns-editor/table-columns-editor.component.ts","../../../projects/ng2-smart-table/src/lib/components/table-columns-editor/table-columns-editor.component.html","../../../projects/ng2-smart-table/src/lib/components/table-columns-editor/column-editor.directive.ts","../../../projects/ng2-smart-table/src/lib/lib/data-set/cell.ts","../../../projects/ng2-smart-table/src/lib/lib/data-set/column.ts","../../../projects/ng2-smart-table/src/lib/lib/data-set/row.ts","../../../projects/ng2-smart-table/src/lib/lib/interfaces/smart-table.models.ts","../../../projects/ng2-smart-table/src/lib/lib/data-source/data-source.ts","../../../projects/ng2-smart-table/src/lib/lib/data-source/local/local.filter.ts","../../../projects/ng2-smart-table/src/lib/lib/data-source/local/local.pager.ts","../../../projects/ng2-smart-table/src/lib/lib/data-source/local/local.sorter.ts","../../../projects/ng2-smart-table/src/lib/lib/data-source/local/local.data-source.ts","../../../projects/ng2-smart-table/src/lib/components/pager/pager.component.ts","../../../projects/ng2-smart-table/src/lib/components/cell/cell-edit-mode/edit-cell-default.ts","../../../projects/ng2-smart-table/src/lib/components/cell/cell-edit-mode/custom-edit.component.ts","../../../projects/ng2-smart-table/src/lib/components/cell/cell-editors/checkbox-editor.component.ts","../../../projects/ng2-smart-table/src/lib/components/cell/cell-editors/input-editor.component.ts","../../../projects/ng2-smart-table/src/lib/components/cell/cell-editors/select-editor.component.ts","../../../projects/ng2-smart-table/src/lib/components/cell/cell-editors/textarea-editor.component.ts","../../../projects/ng2-smart-table/src/lib/components/cell/cell-edit-mode/default-edit.component.ts","../../../projects/ng2-smart-table/src/lib/components/cell/cell-edit-mode/default-edit.component.html","../../../projects/ng2-smart-table/src/lib/components/cell/cell-edit-mode/edit-cell.component.ts","../../../projects/ng2-smart-table/src/lib/components/cell/cell-view-mode/custom-view.component.ts","../../../projects/ng2-smart-table/src/lib/components/cell/cell-view-mode/view-cell.component.ts","../../../projects/ng2-smart-table/src/lib/components/cell/cell.component.ts","../../../projects/ng2-smart-table/src/lib/components/tbody/cells/create-cancel.component.ts","../../../projects/ng2-smart-table/src/lib/lib/data-set/data-set.ts","../../../projects/ng2-smart-table/src/lib/lib/grid.ts","../../../projects/ng2-smart-table/src/lib/components/tbody/cells/custom.component.ts","../../../projects/ng2-smart-table/src/lib/components/tbody/cells/edit-delete.component.ts","../../../projects/ng2-smart-table/src/lib/components/tbody/tbody.component.ts","../../../projects/ng2-smart-table/src/lib/components/tbody/tbody.component.html","../../../projects/ng2-smart-table/src/lib/components/filter/filter-default.ts","../../../projects/ng2-smart-table/src/lib/components/filter/custom-filter.component.ts","../../../projects/ng2-smart-table/src/lib/components/filter/filter-types/checkbox-filter.component.ts","../../../projects/ng2-smart-table/src/lib/components/filter/filter-types/input-filter.component.ts","../../../projects/ng2-smart-table/src/lib/components/filter/filter-types/select-filter.component.ts","../../../projects/ng2-smart-table/src/lib/components/filter/default-filter.component.ts","../../../projects/ng2-smart-table/src/lib/components/filter/filter.component.ts","../../../projects/ng2-smart-table/src/lib/components/thead/cells/add-button.component.ts","../../../projects/ng2-smart-table/src/lib/components/thead/rows/thead-filters-row.component.ts","../../../projects/ng2-smart-table/src/lib/components/thead/cells/actions.component.ts","../../../projects/ng2-smart-table/src/lib/components/thead/rows/thead-form-row.component.ts","../../../projects/ng2-smart-table/src/lib/components/thead/cells/actions-title.component.ts","../../../projects/ng2-smart-table/src/lib/components/thead/cells/checkbox-select-all.component.ts","../../../projects/ng2-smart-table/src/lib/components/thead/cells/title/title.component.ts","../../../projects/ng2-smart-table/src/lib/components/thead/cells/column-title.component.ts","../../../projects/ng2-smart-table/src/lib/components/thead/rows/thead-titles-row.component.ts","../../../projects/ng2-smart-table/src/lib/components/thead/thead.component.ts","../../../projects/ng2-smart-table/src/lib/components/thead/thead.component.html","../../../projects/ng2-smart-table/src/lib/ng2-smart-table.component.ts","../../../projects/ng2-smart-table/src/lib/ng2-smart-table.component.html","../../../projects/ng2-smart-table/src/den4ik92-ng2-smart-table.ts"],"sourcesContent":["import {\n Component,\n input,\n InputSignal\n} from \"@angular/core\";\n\nimport { Cell } from \"../../../lib/data-set/cell\";\n\n@Component({ template: \"\", selector: 'ng2-default-editor-base-component' })\nexport class DefaultEditor implements Editor {\n readonly cell = input.required<Cell>();\n readonly inputClass = input(\"\");\n}\n\nexport interface Editor {\n cell: InputSignal<Cell>;\n inputClass: InputSignal<string>;\n}\n","import { Component, EventEmitter, Input, input, InputSignal, OnDestroy, output, OutputEmitterRef } from '@angular/core';\nimport { Subscription } from 'rxjs';\n\nimport { LocalDataSource } from 'ng2-smart-table';\nimport { Column } from '../../../lib/data-set/column';\n\n@Component({ template: '', selector: 'ng2-default-base-filter-component' })\nexport class DefaultFilter implements Filter, OnDestroy {\n delay = 300;\n changesSubscription?: Subscription;\n @Input()query = '';\n readonly inputClass = input<string>('');\n readonly source = input.required<LocalDataSource>();\n readonly column = input.required<Column>();\n readonly filter = output<string>();\n\n ngOnDestroy() {\n if (this.changesSubscription) {\n this.changesSubscription.unsubscribe();\n }\n }\n\n setFilter() {\n this.filter.emit(this.query);\n }\n}\n\nexport interface Filter {\n delay?: number;\n changesSubscription?: Subscription;\n query: string;\n inputClass: InputSignal<string>;\n source: InputSignal<LocalDataSource>;\n column: InputSignal<Column>;\n filter: EventEmitter<string> | OutputEmitterRef<any>;\n}\n","/**\n * Extending object that entered in first argument.\n *\n * Returns extended object or false if have no target object or incorrect type.\n *\n * If you wish to clone source object (without modify it), just use empty new\n * object as first argument, like this:\n * deepExtend({}, yourObj_1, [yourObj_N]);\n */\nexport const deepExtend = function(...objects: any[]): any {\n if (objects.length < 1 || typeof objects[0] !== 'object') {\n return false;\n }\n\n if (objects.length < 2) {\n return objects[0];\n }\n\n const target = objects[0];\n\n // convert arguments to array and cut off target object\n const args = Array.prototype.slice.call(objects, 1);\n\n let val, src;\n\n args.forEach((obj: any) => {\n // skip argument if it is array or isn't object\n if (typeof obj !== 'object' || Array.isArray(obj)) {\n return;\n }\n\n Object.keys(obj).forEach(function (key) {\n src = target[key]; // source value\n val = obj[key]; // new value\n\n // recursion prevention\n if (val === target) {\n return;\n\n /**\n * if new value isn't object then just overwrite by new value\n * instead of extending.\n */\n } else if (typeof val !== 'object' || val === null) {\n target[key] = val;\n return;\n\n // just clone arrays (and recursive clone objects inside)\n } else if (Array.isArray(val)) {\n target[key] = [...val];\n return;\n\n // overwrite by new value if source isn't object or array\n } else if (typeof src !== 'object' || src === null || Array.isArray(src)) {\n target[key] = deepExtend({}, val);\n return;\n\n // source value and new value is objects both, extending...\n } else {\n target[key] = deepExtend(src, val);\n return;\n }\n });\n });\n\n return target;\n};\n\nexport class Deferred<T> {\n promise: Promise<T>;\n resolve!: (value?: T) => void;\n reject!: (reason?: string) => void;\n\n constructor() {\n this.promise = new Promise<T>((resolve, reject) => {\n this.resolve = resolve as any;\n this.reject = reject;\n });\n }\n}\n\n// getDeepFromObject({result: {data: 1}}, 'result.data', 2); // returns 1\nexport function getDeepFromObject(object = {}, name: string, defaultValue: any = null) {\n try {\n let level = deepExtend({}, object)\n const keys = name.split('.');\n if (keys.length === 1) {\n return level[keys[0]] ?? defaultValue;\n }\n keys.forEach((k) => {\n if (level && typeof level[k] !== 'undefined') {\n level = level[k];\n } else {\n level = defaultValue\n }\n });\n return level ?? defaultValue\n } catch {\n return defaultValue\n }\n}\n\nexport function getPageForRowIndex(index: number, perPage: number): number {\n // we need to add 1 to convert 0-based index to 1-based page number.\n return Math.floor(index / perPage) + 1;\n}\n\nexport function cloneArrayOfObject<T>(array: T[]): T[] {\n return array.map((obj) => Object.assign({}, obj));\n}\n\nexport function getRandomId(prefix = '', suffix = ''): string {\n return `${prefix ? `${prefix}-` : ''}${Math.random().toString(16).slice(2)}${suffix ? `-${suffix}` : ''}`;\n}\n\nexport function setLocalStorage(key: string, value: string | object | boolean): void {\n localStorage.setItem(key, JSON.stringify(value));\n}\n\nexport function getLocalStorage<T = string>(key: string): T | null {\n const valueString = localStorage.getItem(key);\n if (!valueString) {\n return null;\n }\n try {\n return JSON.parse(valueString);\n } catch {\n return null;\n }\n}\n","import {\n CdkDrag,\n CdkDragDrop,\n CdkDragPlaceholder,\n CdkDropList,\n moveItemInArray,\n} from \"@angular/cdk/drag-drop\";\nimport { Component, effect, input, signal } from \"@angular/core\";\nimport { ColumnPositionState } from \"ng2-smart-table\";\nimport { Grid } from \"../../lib/grid\";\nimport { cloneArrayOfObject } from \"../../lib/helpers\";\n\n@Component({\n selector: \"ng2-table-columns-editor\",\n templateUrl: \"./table-columns-editor.component.html\",\n styleUrls: [\"./table-columns-editor.component.scss\"],\n imports: [CdkDropList, CdkDrag, CdkDragPlaceholder],\n})\nexport class TableColumnsEditorComponent {\n protected infoText =\n \"You can drag and drop columns as you wish and also disable unnecessary ones.\";\n public grid = input<Grid>();\n public close = input.required<() => void>();\n\n protected currentState: ColumnPositionState[] = [];\n stateHasChanged = signal(false)\n\n constructor() {\n effect(() => {\n this.currentState = cloneArrayOfObject(this.grid()?.currentColumnsSortState || [])\n })\n }\n\n resetChanges() {\n this.currentState = cloneArrayOfObject(this.grid()?.currentColumnsSortState || []);\n this.stateHasChanged.set(false);\n }\n\n drop(event: CdkDragDrop<ColumnPositionState[]>) {\n moveItemInArray(\n this.currentState,\n event.previousIndex,\n event.currentIndex\n );\n this.updateChangedState()\n }\n\n setVisibility(index: number) {\n this.currentState[index].hide = !this.currentState[index].hide;\n this.updateChangedState()\n }\n\n setAndUpdate() {\n this.grid()?.applyColumnsSortState(this.currentState);\n this.close()()\n this.stateHasChanged.set(false);\n }\n\n private updateChangedState() {\n this.stateHasChanged.set(JSON.stringify(this.grid()?.currentColumnsSortState) !== JSON.stringify(this.currentState))\n }\n}\n","<div class=\"sort-card\">\n <div class=\"sort-card-header\">\n <h6>Table columns setup</h6>\n </div>\n <div class=\"sort-card-body\">\n <div\n class=\"list\"\n cdkDropList\n [cdkDropListData]=\"currentState\"\n (cdkDropListDropped)=\"drop($event)\"\n >\n @for (column of currentState; track column.key; let i = $index) {\n\n <div\n cdkDrag\n [cdkDragLockAxis]=\"'y'\"\n [cdkDragStartDelay]=\"300\"\n [cdkDragDisabled]=\"column.moveDisabled\"\n class=\"drag-row\"\n #dragRow\n [style.--drag-row-height]=\"50\"\n >\n <div class=\"drag-placeholder\" *cdkDragPlaceholder></div>\n <div class=\"index-cell\">\n {{ i + 1 }}\n </div>\n <label class=\"sort-column-checkbox-wrap\" [for]=\"'sort-column-checkbox-' + i\">\n <span></span>\n <input\n [disabled]=\"column.moveDisabled\"\n [id]=\"'sort-column-checkbox-' + i\"\n title=\"Active state. If checked the column will be displayed\"\n type=\"checkbox\"\n class=\"sort-column-checkbox-input\"\n [checked]=\"!column.hide\"\n (change)=\"setVisibility(i)\"\n />\n <span></span>\n </label>\n {{ column.title }}\n </div>\n }\n </div>\n </div>\n @if (stateHasChanged()) {\n <div class=\"sort-card-footer\">\n <button class=\"reset-button\" (click)=\"resetChanges()\">reset</button>\n <button class=\"update-button\" (click)=\"setAndUpdate()\">Update</button>\n </div>\n }\n</div>\n","import { Overlay, OverlayConfig, OverlayRef } from \"@angular/cdk/overlay\";\nimport { ComponentPortal } from \"@angular/cdk/portal\";\nimport {\n ComponentRef,\n computed,\n Directive,\n ElementRef,\n inject,\n input,\n OnDestroy\n} from \"@angular/core\";\nimport { Ng2SmartTableComponent } from \"ng2-smart-table\";\nimport { Subject } from \"rxjs\";\nimport { takeUntil } from \"rxjs/operators\";\nimport { TableColumnsEditorComponent } from \"./table-columns-editor.component\";\n\n@Directive({\n selector: \"[ng2SmartTableColumnEditor]\",\n host: {\n \"(click)\": \"buttclicked()\",\n },\n})\nexport class SmartTableColumnEditorDirective implements OnDestroy {\n tableComponent = input<Ng2SmartTableComponent>();\n\n private readonly grid = computed(() => {\n return this.tableComponent()?.grid;\n });\n\n private readonly overlay = inject(Overlay);\n private readonly elementRef = inject(ElementRef);\n private readonly destroy$ = new Subject<void>()\n\n protected overlayRef?: OverlayRef;\n\n\n\n ngOnDestroy(): void {\n this.overlayRef?.dispose();\n this.destroy$.next();\n this.destroy$.complete();\n }\n\n protected showDropdown(): void {\n this.overlayRef = this.overlay.create(this.getOverlayConfig());\n const componentPortal = new ComponentPortal(TableColumnsEditorComponent);\n const dropdownRef: ComponentRef<TableColumnsEditorComponent> =\n this.overlayRef.attach(componentPortal);\n dropdownRef.setInput(\"grid\", this.grid());\n dropdownRef.setInput(\"close\", this.hide.bind(this));\n this.overlayRef?.backdropClick().pipe(takeUntil(this.destroy$)).subscribe(() => this.hide());\n }\n\n public hide() {\n this.overlayRef?.detach();\n this.overlayRef?.dispose();\n this.destroy$.next();\n }\n\n buttclicked() {\n this.showDropdown();\n }\n\n private getOverlayConfig(): OverlayConfig {\n const positionStrategy = this.overlay\n .position()\n .flexibleConnectedTo(this.elementRef)\n .withPush(false)\n .withPositions([\n {\n originX: \"center\",\n originY: \"bottom\",\n overlayX: \"end\",\n overlayY: \"top\",\n },\n {\n originX: \"center\",\n originY: \"bottom\",\n overlayX: \"center\",\n overlayY: \"top\",\n },\n {\n originX: \"center\",\n originY: \"bottom\",\n overlayX: \"start\",\n overlayY: \"top\",\n },\n {\n originX: \"center\",\n originY: \"top\",\n overlayX: \"start\",\n overlayY: \"bottom\",\n },\n {\n originX: \"center\",\n originY: \"top\",\n overlayX: \"center\",\n overlayY: \"bottom\",\n },\n {\n originX: \"center\",\n originY: \"top\",\n overlayX: \"start\",\n overlayY: \"bottom\",\n },\n ]);\n\n return new OverlayConfig({\n positionStrategy: positionStrategy,\n hasBackdrop: true,\n backdropClass: \"cdk-overlay-transparent-backdrop\",\n });\n }\n}\n","import { Column } from './column';\nimport { DataSet } from './data-set';\nimport { Row } from './row';\n\nexport class Cell {\n private prepareValue = (value: any) => value\n newValue: any = '';\n\n constructor(protected value: any, protected row: Row, protected column: Column, protected dataSet: DataSet) {\n this.newValue = value;\n }\n\n getColumn(): Column {\n return this.column;\n }\n\n getColumnClass(): string | undefined {\n return this.column.class;\n }\n\n getRow(): Row {\n return this.row;\n }\n\n getValue(): any {\n const prepare = this.column.getValuePrepareFunction() || this.prepareValue;\n return prepare.call(null, this.value, this.row.getData(), this);\n }\n\n getNotPrepareValue(): any {\n return this.value\n }\n\n setValue(value: any): any {\n this.newValue = value;\n }\n\n getId(): string {\n return this.getColumn().id;\n }\n\n getTitle(): string {\n return this.getColumn().title;\n }\n\n isEditable(): boolean {\n if (this.getRow().index === -1) {\n return this.getColumn().isAddable;\n }\n else {\n return this.getColumn().isEditable;\n }\n }\n\n}\n","import { SmartTableCompareFunction, SmartTableEditorAndFilter, SmartTableFilterFunction, SmartTableValuePrepareFunction } from '../interfaces/smart-table.models';\nimport { SmartTableColumnSettings, SmartTableColumnSettingsTypes, SmartTableSortDirection } from './../interfaces/smart-table.models';\nimport { DataSet } from './data-set';\n\nexport class Column {\n title = '';\n type: SmartTableColumnSettingsTypes = 'text';\n class = '';\n width = '';\n hide = false;\n isSortable = false;\n isEditable = true;\n isAddable = true;\n isFilterable = false;\n sortDirection: SmartTableSortDirection = 'asc';\n defaultSortDirection: SmartTableSortDirection | false = false;\n editor: SmartTableEditorAndFilter | false = false;\n filter: SmartTableEditorAndFilter | false = false;\n renderComponent: any;\n compareFunction?: SmartTableCompareFunction;\n valuePrepareFunction?: SmartTableValuePrepareFunction;\n filterFunction?: SmartTableFilterFunction;\n\n constructor(public id: string, private settings: SmartTableColumnSettings, protected dataSet: DataSet) {\n this.process(this.settings);\n }\n\n getCompareFunction(): SmartTableCompareFunction | undefined {\n return this.compareFunction;\n }\n\n getValuePrepareFunction(): SmartTableValuePrepareFunction | undefined {\n return this.valuePrepareFunction;\n }\n\n getFilterFunction(): SmartTableFilterFunction | undefined {\n return this.filterFunction;\n }\n\n getConfig(): any {\n if (this.editor && (this.editor.type === 'checkbox' || this.editor.type === 'custom' || this.editor.type === 'list')) {\n return this.editor?.config\n }\n return false\n }\n\n getFilterType() {\n return this.filter && this.filter.type;\n }\n\n getFilterConfig(): any {\n if (this.filter && (this.filter.type === 'checkbox' || this.filter.type === 'custom' || this.filter.type === 'list')) {\n return this.filter?.config\n }\n return false;\n }\n\n protected process(settings: SmartTableColumnSettings) {\n this.title = settings.title;\n this.class = settings.class || '';\n this.width = settings.width || '';\n this.hide = !!settings.hide;\n this.type = settings.type;\n if (settings?.editor) {\n this.editor = settings.editor;\n }\n if (settings?.filter) {\n this.filter = settings.filter;\n }\n if (settings.type === 'custom' && settings.renderComponent) {\n this.renderComponent = settings.renderComponent;\n }\n this.isFilterable = typeof settings.filter === 'undefined' ? true : !!settings['filter'];\n this.defaultSortDirection = settings?.sortDirection || false;\n this.isSortable = typeof settings.sort === 'undefined' ? true : settings.sort;\n this.isEditable = typeof settings.editable === 'undefined' ? true : settings.editable;\n this.isAddable=typeof settings.addable === 'undefined' ? true : settings.addable;\n this.sortDirection = this.prepareSortDirection();\n\n this.compareFunction = settings.compareFunction;\n this.valuePrepareFunction = settings.valuePrepareFunction;\n this.filterFunction = settings.filterFunction;\n }\n\n prepareSortDirection(): SmartTableSortDirection {\n return this.defaultSortDirection === 'desc' ? 'desc' : 'asc';\n }\n}\n","import { Cell } from './cell';\nimport { Column } from './column';\nimport { DataSet } from './data-set';\n\nexport class Row {\n\n pending = false;\n isSelected = false;\n isInEditing = false;\n cells: Cell[] = [];\n\n\n constructor(public index: number, private data: any, protected _dataSet: DataSet) {\n this.process();\n }\n\n getCell(column: Column): Cell | undefined {\n return this.cells.find(el => el.getColumn() === column);\n }\n\n getCells(): Cell[] {\n return this.cells;\n }\n\n getData(): any {\n return this.data;\n }\n\n getIsSelected(): boolean {\n return this.isSelected;\n }\n\n getNewData(): any {\n const values = Object.assign({}, this.data);\n this.getCells().forEach((cell) => values[cell.getColumn().id] = cell.newValue);\n return values;\n }\n\n setData<T=any>(data: T): void {\n this.data = data;\n this.process();\n }\n\n process(): void {\n this.cells = [];\n this._dataSet.getColumns().forEach((column: Column) => {\n const cell = this.createCell(column);\n this.cells.push(cell);\n });\n }\n\n createCell(column: Column): Cell {\n const defValue = (column as any).settings.defaultValue ? (column as any).settings.defaultValue : '';\n const value = typeof this.data[column.id] === 'undefined' ? defValue : this.data[column.id];\n return new Cell(value, this, column, this._dataSet);\n }\n}\n","import { Cell } from \"../data-set/cell\";\nimport { LocalDataSource } from \"../data-source/local/local.data-source\";\nimport { Deferred } from \"../helpers\";\n\ninterface SelectOption {\n\ttitle: string;\n\tvalue: any;\n}\n\nexport interface ViewCell<V=any, R=any> {\n value: V;\n rowData: R;\n}\n\nexport type ActionPosition = 'left' | 'right'\n\nexport interface ColumnPositionState {\n key: string;\n title: string;\n hide: boolean;\n moveDisabled: boolean;\n}\n\nexport interface SmartTableSettings<T extends Record<string, any> = any> {\n\tselectMode?: 'single' | 'multi';\n\tmode?: \"inline\" | \"external\";\n\tcolumnSortStorageKey?: string;\n\tcolumnSort?: boolean; // if you want to add column sort need to set true;\n\thideHeader?: boolean;\n\thideSubHeader?: boolean;\n\tactions?: SmartTableAction | false;\n\tactionsPosition?: ActionPosition;\n\tfilter?: {\n\t\tinputClass: string;\n\t};\n\tedit?:\n\t| {\n\t\tinputClass?: string;\n\t\teditButtonContent?: string;\n\t\tsaveButtonContent?: string;\n\t\tcancelButtonContent?: string;\n\t\tconfirmSave?: boolean;\n\t}\n\t| false;\n\tadd?:\n\t| {\n\t\tinputClass?: string;\n\t\taddButtonContent?: string;\n\t\tcreateButtonContent?: string;\n\t\tcancelButtonContent?: string;\n\t\tconfirmCreate?: boolean;\n\t}\n\t| false;\n\tdelete?:\n\t| {\n\t\tdeleteButtonContent?: string;\n\t\tconfirmDelete?: boolean;\n\t}\n\t| false;\n\tattr?: {\n\t\tid?: string;\n\t\tclass?: string;\n\t};\n\tnoDataMessage?: string;\n\tcolumns: SmartTableColumnSettings<T>[];\n\tpager?: SmartTablePagerSettings | false;\n\trowClassFunction?: (row: { data: T }) => string;\n}\n\nexport interface SmartTableAction {\n\tcolumnTitle?: string;\n\tadd?: boolean;\n\tedit?: boolean;\n\tdelete?: boolean;\n\tcustom?: SmartTableCustomAction[];\n}\n\nexport interface SmartTableCustomAction {\n\tname: string;\n\ttitle: string; // insert html content to action button\n}\n\nexport type SmartTableColumnSettingsTypes = 'text' | 'html' | 'custom'\n\nexport type SmartTableColumnSettings<T extends Record<string, any> = any> = SmartTableTextHtmlColumn<T> | SmartTableCustomColumn<T>;\n\nexport type SmartTableCompareFunction = (direction: number, a: any, b: any) => number;\nexport type SmartTableValuePrepareFunction<T extends Record<string, any> = any> = (columnData: any, rowData: T, cell: Cell) => any;\nexport type SmartTableFilterFunction = (columnData: any, search: string) => boolean;\n\ninterface SmartTableDefaultColumn<T extends Record<string, any>> {\n\tkey: keyof T;\n\ttitle: string;\n\twidth?: string; //example: '20px', '20%'\n\tclass?: string;\n\teditable?: boolean;\n\thide?: boolean;\n\t// disable column move in column change position list\n\tmoveDisabled?: boolean;\n\tsort?: boolean;\n\taddable?: boolean;\n\tsortDirection?: SmartTableSortDirection | false;\n\teditor?: SmartTableEditorAndFilter;\n\tfilter?: SmartTableEditorAndFilter | false;\n\tcompareFunction?: SmartTableCompareFunction;\n\tvaluePrepareFunction?: SmartTableValuePrepareFunction<T>;\n\tfilterFunction?: SmartTableFilterFunction;\n}\n\ninterface SmartTableTextHtmlColumn<T extends Record<string, any>> extends SmartTableDefaultColumn<T> {\n\ttype: 'text' | 'html';\n}\n\ninterface SmartTableCustomColumn<T extends Record<string, any>> extends SmartTableDefaultColumn<T> {\n\ttype: 'custom';\n\trenderComponent: any;\n}\n\nexport type SmartTableEditorAndFilterTypes = 'text' | 'textarea' | 'list' | 'custom' | 'checkbox';\n\nexport type SmartTableEditorAndFilter =\n\t| SmartTableTextEditor\n\t| SmartTableEditorList\n\t| SmartTableEditorCheckbox\n\t| SmartTableEditorCustom;\n\ninterface SmartTableTextEditor {\n\ttype: 'text' | 'textarea';\n\tconfig: any;\n}\n\ninterface SmartTableEditorList {\n\ttype: 'list';\n\tconfig: {\n\t\tselectText?: string;\n\t\tlist: SelectOption[];\n\t};\n}\n\ninterface SmartTableEditorCheckbox {\n\ttype: 'checkbox';\n\tconfig?: {\n\t\ttrue: any;\n\t\tfalse: any;\n\t\tresetText?: string;\n\t};\n}\n\ninterface SmartTableEditorCustom {\n\ttype: 'custom';\n\tcomponent: any;\n\tconfig?: any;\n}\n\ninterface SmartTablePagerSettings {\n\tdisplay: boolean;\n\tpage?: number;\n\tperPage: number;\n\tperPageSelect?: number[];\n}\n\nexport interface SmartTableFilterItem {\n\tfield: string;\n\tsearch: string;\n\tfilter?: any;\n}\n\nexport interface SmartTablePagingItem {\n\tpage: number;\n\tperPage: number;\n}\n\nexport type SmartTableSortDirection = 'asc' | 'desc';\n\nexport interface SmartTableSortItem {\n\tfield: string;\n\tdirection: SmartTableSortDirection;\n\tcompare?: SmartTableCompareFunction\n}\n\ninterface SmartTableDefaultEvent<T> {\n\tconfirm: Deferred<T>;\n\tdata: T;\n\tsource: LocalDataSource;\n}\n\nexport type SmartTableConfirmDeleteEvent<T = any> = SmartTableDefaultEvent<T>;\n\nexport type SmartTableRowClickedEvent<T = any> = Omit<SmartTableDefaultEvent<T>, \"confirm\">\n\nexport interface SmartTableCustomEvent<T = any> extends Omit<SmartTableDefaultEvent<T>, \"confirm\"> {\n\taction: string;\n}\n\nexport interface SmartTableRowSelectEvent<T = any> extends Omit<SmartTableDefaultEvent<T>, \"confirm\"> {\n\tisSelected: boolean;\n\tselected: T[];\n}\n\nexport interface SmartTableConfirmEditEvent<T = any, N = T> extends SmartTableDefaultEvent<T> {\n\tnewData: N;\n}\n\nexport interface SmartTableCreateConfirm<T = any> extends Omit<SmartTableDefaultEvent<T>, \"data\"> {\n\tnewData: T;\n}\n\nexport type ObjectStringString = Record<string, string>;\n\nexport enum SmartTableOnChangedEventName {\n\t'load' = 'load',\n\t'paging' = 'paging',\n\t'update' = 'update',\n\t'page' = 'page',\n\t'filter' = 'filter',\n\t'empty' = 'empty',\n\t'sort' = 'sort',\n\t'add' = 'add',\n\t'remove' = 'remove',\n\t'append' = 'append',\n\t'prepend' = 'prepend',\n\t'refresh' = 'refresh',\n}\n\nexport type SmartTableOnChangedEventType = 'load' | 'prepend' | 'append' | 'update' | 'empty' | 'paging' | 'page' | 'filter' | 'sort' | 'add' | 'remove' | 'refresh';\n\nexport interface SmartTableOnChangedEvent<T extends Record<string, any> = any> {\n\taction: SmartTableOnChangedEventType;\n\telements: T[];\n\tfilter: SmartTableFilterConf;\n\tpaging: SmartTablePagingItem | false;\n\tsort: SmartTableSortItem[];\n}\n\nexport interface SmartTableFilterConf { filters: SmartTableFilterItem[]; andOperator: boolean }","import { Subject } from 'rxjs';\nimport { Observable } from 'rxjs';\nimport { SmartTableFilterConf, SmartTableOnChangedEvent, SmartTableOnChangedEventName, SmartTableOnChangedEventType, SmartTablePagingItem, SmartTableSortItem } from '../interfaces/smart-table.models';\n\nexport abstract class DataSource<T=any> {\n\n protected onChangedSource = new Subject<SmartTableOnChangedEvent>();\n protected onAddedSource = new Subject<any>();\n protected onUpdatedSource = new Subject<any>();\n protected onRemovedSource = new Subject<any>();\n\n abstract getAll(): Promise<T[]>;\n abstract getElements(): Promise<T[]>;\n abstract getSort(): SmartTableSortItem[];\n abstract getFilter(): SmartTableFilterConf;\n abstract getPaging(): SmartTablePagingItem | false;\n abstract count(): number;\n\n refresh(): void {\n this.emitOnChanged(SmartTableOnChangedEventName.refresh);\n }\n\n loadEmit<T>(): Promise<true> {\n this.emitOnChanged(SmartTableOnChangedEventName.load);\n return Promise.resolve(true);\n }\n\n onChanged(): Observable<SmartTableOnChangedEvent> {\n return this.onChangedSource.asObservable();\n }\n\n onAdded(): Observable<any> {\n return this.onAddedSource.asObservable();\n }\n\n onUpdated(): Observable<any> {\n return this.onUpdatedSource.asObservable();\n }\n\n onRemoved(): Observable<any> {\n return this.onRemovedSource.asObservable();\n }\n\n prependEmit(element: T): Promise<true> {\n this.emitOnAdded(element);\n this.emitOnChanged(SmartTableOnChangedEventName.prepend);\n return Promise.resolve(true);\n }\n\n appendEmit(element: T): Promise<true> {\n this.emitOnAdded(element);\n this.emitOnChanged(SmartTableOnChangedEventName.append);\n return Promise.resolve(true);\n }\n\n addEmit(element: T): Promise<true> {\n this.emitOnAdded(element);\n this.emitOnChanged(SmartTableOnChangedEventName.add);\n return Promise.resolve(true);\n }\n\n removeEmit(element: T): Promise<true> {\n this.emitOnRemoved(element);\n this.emitOnChanged(SmartTableOnChangedEventName.remove);\n return Promise.resolve(true);\n }\n\n updateEmit(element: T): Promise<true> {\n this.emitOnUpdated(element);\n this.emitOnChanged(SmartTableOnChangedEventName.update);\n return Promise.resolve(true);\n }\n\n emptyEmit(): Promise<true> {\n this.emitOnChanged(SmartTableOnChangedEventName.empty);\n return Promise.resolve(true);\n }\n\n setSortEmit() {\n this.emitOnChanged(SmartTableOnChangedEventName.sort);\n }\n\n setFilterEmit() {\n this.emitOnChanged(SmartTableOnChangedEventName.filter);\n }\n\n addFilterEmit() {\n this.emitOnChanged(SmartTableOnChangedEventName.filter);\n }\n\n setPagingEmit() {\n this.emitOnChanged(SmartTableOnChangedEventName.paging);\n }\n\n setPageEmit() {\n this.emitOnChanged(SmartTableOnChangedEventName.page);\n }\n\n protected emitOnRemoved(element: T) {\n this.onRemovedSource.next(element);\n }\n\n protected emitOnUpdated(element: T) {\n this.onUpdatedSource.next(element);\n }\n\n protected emitOnAdded(element: T) {\n this.onAddedSource.next(element);\n }\n\n protected emitOnChanged(action: SmartTableOnChangedEventType) {\n this.getElements().then((elements) => this.onChangedSource.next({\n action: action,\n elements: elements,\n paging: this.getPaging(),\n filter: this.getFilter(),\n sort: this.getSort(),\n }));\n }\n}\n","export function filterValues(value: string, search: string) {\n return value.toString().toLowerCase().includes(search.toString().toLowerCase());\n}\n\nexport class LocalFilter {\n static filter(data: any[], field: string, search: string, customFilter?: Function): any[] {\n const filter: Function = customFilter ? customFilter : filterValues;\n\n return data.filter((el) => {\n const value = typeof el[field] === 'undefined' || el[field] === null ? '' : el[field];\n return filter.call(null, value, search);\n });\n }\n}\n","export class LocalPager {\n\n static paginate(data: Array<any>, page: number, perPage: number): Array<any> {\n return data.slice(perPage * (page - 1), perPage * page);\n }\n}\n","import { SmartTableCompareFunction } from \"../../interfaces/smart-table.models\";\n\nexport function compareValues(direction: number, a: any, b: any) {\n if (a < b) {\n return -1 * direction;\n }\n if (a > b) {\n return direction;\n }\n return 0;\n}\n\nexport class LocalSorter {\n static sort<T extends Record<string, any>>(\n data: T[],\n field: string,\n direction: string,\n customCompare?: SmartTableCompareFunction\n ): T[] {\n const dir: number = direction === \"asc\" ? 1 : -1;\n const compare = customCompare ? customCompare : compareValues;\n\n return data.sort((a, b) => {\n return compare.call(null, dir, a[field], b[field]);\n });\n }\n}\n","import { deepExtend } from '../../helpers';\nimport { SmartTableFilterConf, SmartTableFilterItem, SmartTablePagingItem, SmartTableSortItem } from '../../interfaces/smart-table.models';\nimport { DataSource } from '../data-source';\nimport { LocalFilter } from './local.filter';\nimport { LocalPager } from './local.pager';\nimport { LocalSorter } from './local.sorter';\n\nexport class LocalDataSource<T extends Record<string, any> = any> extends DataSource<T> {\n\n protected data: T[] = [];\n protected filteredAndSorted: T[] = [];\n protected sortConf: SmartTableSortItem[] = [];\n protected filterConf: SmartTableFilterConf = {\n filters: [],\n andOperator: true,\n };\n protected pagingConf: SmartTablePagingItem | false = false;\n\n constructor(data: T[] = []) {\n super();\n\n this.data = data;\n }\n\n load(data: any): Promise<true> {\n this.data = data;\n return super.loadEmit();\n }\n\n prepend(element: T): Promise<true> {\n this.reset(true);\n this.data.unshift(element);\n return super.prependEmit(element);\n }\n\n appendMany(elements: T[]): Promise<true> {\n this.reset(true);\n this.data = [...this.data, ...elements];\n return super.loadEmit();\n }\n\n append(element: T): Promise<true> {\n this.reset(true);\n\n this.data.push(element);\n return super.appendEmit(element);\n }\n\n add(element: T): Promise<true> {\n this.data.push(element);\n return super.addEmit(element);\n }\n\n remove(element: T): Promise<true> {\n this.data = this.data.filter(el => el !== element);\n return super.removeEmit(element);\n }\n\n update(element: T, values: T): Promise<true> {\n return new Promise((resolve, reject) => {\n this.find(element).then((found) => {\n found = deepExtend(found as any, values);\n super.updateEmit(found).then(resolve).catch(reject);\n }).catch(reject);\n });\n }\n\n find(element: T): Promise<T> {\n const found = this.data.find(el => el === element);\n if (found) {\n return Promise.resolve(found);\n }\n return Promise.reject(new Error('Element was not found in the dataset'));\n }\n\n getElements(): Promise<T[]> {\n const data = this.data.slice(0);\n return Promise.resolve(this.prepareData(data));\n }\n\n getFilteredAndSorted(): Promise<T[]> {\n const data = this.data.slice(0);\n this.prepareData(data);\n return Promise.resolve(this.filteredAndSorted);\n }\n\n getAll(): Promise<T[]> {\n const data = this.data.slice(0);\n return Promise.resolve(data);\n }\n\n reset(silent = false) {\n if (silent) {\n this.filterConf = {\n filters: [],\n andOperator: true,\n };\n this.sortConf = [];\n if (this.pagingConf) {\n this.pagingConf.page = 1;\n }\n } else {\n this.setFilter([], true, false);\n this.setSort([], false);\n if (this.pagingConf) {\n this.setPage(1);\n }\n }\n }\n\n empty(): Promise<true> {\n this.data = [];\n return super.emptyEmit();\n }\n\n count(): number {\n return this.filteredAndSorted.length;\n }\n\n /**\n *\n * Array of conf objects\n * [\n * {field: string, direction: asc|desc|null, compare: Function|null},\n * ]\n * @param conf\n * @param doEmit\n * @returns {LocalDataSource}\n */\n setSort(conf: SmartTableSortItem[], doEmit = true): LocalDataSource {\n if (conf !== null) {\n conf.forEach((fieldConf) => {\n if (!fieldConf.field || typeof fieldConf.direction === 'undefined') {\n throw new Error('Sort configuration object is not valid');\n }\n });\n this.sortConf = conf;\n }\n if (doEmit) {\n super.setSortEmit();\n }\n return this;\n }\n\n /**\n *\n * Array of conf objects\n * [\n * {field: string, search: string, filter: Function|null},\n * ]\n * @param conf\n * @param andOperator\n * @param doEmit\n * @returns {LocalDataSource}\n */\n setFilter(conf: SmartTableFilterItem[], andOperator = true, doEmit = true): LocalDataSource {\n if (conf && conf.length > 0) {\n conf.forEach((fieldConf) => {\n this.addFilter(fieldConf, andOperator, false);\n });\n } else {\n this.filterConf = {\n filters: [],\n andOperator: true,\n };\n }\n this.filterConf.andOperator = andOperator;\n if (this.pagingConf) {\n this.pagingConf.page = 1;\n }\n if (doEmit) {\n super.setFilterEmit();\n }\n return this;\n }\n\n addFilter(fieldConf: SmartTableFilterItem, andOperator = true, doEmit = true): LocalDataSource {\n if (!fieldConf.field || typeof fieldConf.search === 'undefined') {\n throw new Error('Filter configuration object is not valid');\n }\n\n let found = false;\n this.filterConf.filters.forEach((currentFieldConf: any, index: any) => {\n if (currentFieldConf.field === fieldConf.field) {\n this.filterConf.filters[index] = fieldConf;\n found = true;\n }\n });\n if (!found) {\n this.filterConf.filters.push(fieldConf);\n }\n this.filterConf.andOperator = andOperator;\n if (doEmit) {\n super.addFilterEmit();\n }\n return this;\n }\n\n setPaging(page = 1, perPage: number, doEmit = true): void {\n if (this.pagingConf) {\n this.pagingConf.page = page;\n this.pagingConf.perPage = perPage;\n } else {\n this.pagingConf = {\n page, perPage\n }\n }\n if (doEmit) {\n super.setPagingEmit();\n }\n return;\n }\n\n setPage(page: number, doEmit = true): void {\n if (!this.pagingConf) {\n return;\n }\n this.pagingConf.page = page;\n if(doEmit) {\n super.setPageEmit();\n }\n return;\n }\n\n getSort(): SmartTableSortItem[] {\n return this.sortConf;\n }\n\n getFilter(): SmartTableFilterConf {\n return this.filterConf;\n }\n\n getPaging(): SmartTablePagingItem | false {\n return this.pagingConf;\n }\n\n protected prepareData(data: T[]): T[] {\n data = this.filter(data);\n data = this.sort(data);\n this.filteredAndSorted = data.slice(0);\n if(this.pagingConf) {\n return this.paginate(data);\n } else return data\n }\n\n protected sort(data: T[]): T[] {\n if (this.sortConf) {\n this.sortConf.forEach((fieldConf) => {\n data = LocalSorter\n .sort<T>(data, fieldConf.field, fieldConf.direction, fieldConf.compare);\n });\n }\n return data;\n }\n\n // TODO: refactor?\n protected filter(data: T[]): T[] {\n if (this.filterConf.filters) {\n if (this.filterConf.andOperator) {\n this.filterConf.filters.forEach((fieldConf: SmartTableFilterItem) => {\n if (fieldConf.search?.length > 0) {\n data = LocalFilter\n .filter(data, fieldConf.field, fieldConf.search, fieldConf.filter);\n }\n });\n } else {\n let mergedData: T[] = [];\n this.filterConf.filters.forEach((fieldConf: SmartTableFilterItem) => {\n if (fieldConf.search?.length > 0) {\n mergedData = mergedData.concat(LocalFilter\n .filter(data, fieldConf.field, fieldConf.search, fieldConf.filter));\n }\n });\n // remove non unique items\n data = mergedData.filter((elem: any, pos: any, arr: any) => {\n return arr.indexOf(elem) === pos;\n });\n }\n }\n return data;\n }\n\n protected paginate(data: T[]): T[] {\n if (this.pagingConf && this.pagingConf.page && this.pagingConf.perPage) {\n data = LocalPager.paginate(data, this.pagingConf.page, this.pagingConf.perPage);\n }\n return data;\n }\n}\n","import {\n Component,\n Input,\n OnChanges,\n SimpleChanges,\n output\n} from \"@angular/core\";\nimport { FormsModule } from \"@angular/forms\";\nimport { Subscription } from \"rxjs\";\nimport { LocalDataSource } from \"../../lib/data-source/local/local.data-source\";\nimport { SmartTablePagingItem } from \"./../../lib/interfaces/smart-table.models\";\n\n@Component({\n selector: \"ng2-smart-table-pager\",\n styleUrls: [\"./pager.component.scss\"],\n template: `\n @if (shouldShow()) {\n <nav class=\"ng2-smart-pagination-nav\">\n <ul class=\"ng2-smart-pagination pagination\">\n <li\n class=\"ng2-smart-page-item page-item\"\n [class.disabled]=\"getPage() === 1\"\n >\n <a\n class=\"ng2-smart-page-link page-link\"\n href=\"#\"\n (click)=\"getPage() === 1 ? false : paginate(1)\"\n aria-label=\"First\"\n >\n <span aria-hidden=\"true\">«</span>\n <span class=\"sr-only\">First</span>\n </a>\n </li>\n <li\n class=\"ng2-smart-page-item page-item\"\n [class.disabled]=\"getPage() === 1\"\n >\n <a\n class=\"ng2-smart-page-link page-link page-link-prev\"\n href=\"#\"\n (click)=\"getPage() === 1 ? false : prev()\"\n aria-label=\"Prev\"\n >\n <span aria-hidden=\"true\"><</span>\n <span class=\"sr-only\">Prev</span>\n </a>\n </li>\n @for (page of getPages(); track page) {\n <li\n class=\"ng2-smart-page-item page-item\"\n [class.active]=\"getPage() === page\"\n >\n @if (getPage() === page) {\n <span class=\"ng2-smart-page-link page-link\"\n >{{ page }} <span class=\"sr-only\">(current)</span></span\n >\n } @if (getPage() !== page) {\n <a\n class=\"ng2-smart-page-link page-link\"\n href=\"#\"\n (click)=\"paginate(page)\"\n >{{ page }}</a\n >\n }\n </li>\n }\n <li\n class=\"ng2-smart-page-item page-item\"\n [class.disabled]=\"getPage() === getLast()\"\n >\n <a\n class=\"ng2-smart-page-link page-link page-link-next\"\n href=\"#\"\n (click)=\"getPage() === getLast() ? false : next()\"\n aria-label=\"Next\"\n >\n <span aria-hidden=\"true\">></span>\n <span class=\"sr-only\">Next</span>\n </a>\n </li>\n <li\n class=\"ng2-smart-page-item page-item\"\n [class.disabled]=\"getPage() === getLast()\"\n >\n <a\n class=\"ng2-smart-page-link page-link\"\n href=\"#\"\n (click)=\"getPage() === getLast() ? false : paginate(getLast())\"\n aria-label=\"Last\"\n >\n <span aria-hidden=\"true\">»</span>\n <span class=\"sr-only\">Last</span>\n </a>\n </li>\n </ul>\n </nav>\n } @if (perPageSelect && perPageSelect.length > 0) {\n <nav class=\"ng2-smart-pagination-per-page\">\n <label for=\"per-page\"> Per Page: </label>\n <select\n (change)=\"onChangePerPage()\"\n [(ngModel)]=\"currentPerPage\"\n id=\"per-page\"\n >\n @for (item of perPageSelect; track item) {\n <option [value]=\"item\">{{ item }}</option>\n }\n </select>\n </nav>\n }\n `,\n standalone: true,\n imports: [FormsModule],\n})\nexport class PagerComponent implements OnChanges {\n @Input() source!: LocalDataSource;\n @Input() perPageSelect: number[] = [];\n\n readonly changePage = output<any>();\n\n currentPerPage = 0;\n\n protected pages: number[] = [];\n protected page = 1;\n protected count = 0;\n protected perPage = 0;\n\n protected dataChangedSub: Subscription | undefined;\n\n ngOnChanges(changes: SimpleChanges) {\n if (changes[\"source\"]) {\n if (!changes[\"source\"].firstChange && this.dataChangedSub) {\n this.dataChangedSub.unsubscribe();\n }\n this.dataChangedSub = this.source.onChanged().subscribe((dataChanges) => {\n const paging: SmartTablePagingItem | false = this.source.getPaging();\n if (paging) {\n this.page = paging.page;\n this.perPage = paging.perPage;\n }\n this.currentPerPage = this.perPage;\n this.count = this.source.count();\n if (this.isPageOutOfBounce()) {\n this.source.setPage(--this.page);\n }\n\n this.processPageChange(dataChanges);\n this.initPages();\n });\n }\n }\n\n /**\n * We change the page here depending on the action performed against data source\n * if a new element was added to the end of the table - then change the page to the last\n * if a new element was added to the beginning of the table - then to the first page\n * @param changes\n */\n processPageChange(changes: any) {\n if (changes[\"action\"] === \"prepend\") {\n this.source.setPage(1);\n }\n if (changes[\"action\"] === \"append\") {\n this.source.setPage(this.getLast());\n }\n }\n\n shouldShow(): boolean {\n return this.source.count() > this.perPage;\n }\n\n paginate(page: number): boolean {\n this.source.setPage(page);\n this.page = page;\n this.changePage.emit({ page });\n return false;\n }\n\n next(): boolean {\n return this.paginate(this.getPage() + 1);\n }\n\n prev(): boolean {\n return this.paginate(this.getPage() - 1);\n }\n\n getPage(): number {\n return this.page;\n }\n\n getPages(): number[] {\n return this.pages;\n }\n\n getLast(): number {\n return Math.ceil(this.count / this.perPage);\n }\n\n isPageOutOfBounce(): boolean {\n return (\n this.page * this.perPage >= this.count + this.perPage && this.page > 1\n );\n }\n\n initPages() {\n const pagesCount = this.getLast();\n let showPagesCount = 4;\n showPagesCount = pagesCount < showPagesCount ? pagesCount : showPagesCount;\n this.pages = [];\n\n if (this.shouldShow()) {\n let middleOne = Math.ceil(showPagesCount / 2);\n middleOne = this.page >= middleOne ? this.page : middleOne;\n\n let lastOne = middleOne + Math.floor(showPagesCount / 2);\n lastOne = lastOne >= pagesCount ? pagesCount : lastOne;\n\n const firstOne = lastOne - showPagesCount + 1;\n\n for (let i = firstOne; i <= lastOne; i++) {\n this.pages.push(i);\n }\n }\n }\n\n onChangePerPage() {\n const paging: SmartTablePagingItem | false = this.source.getPaging();\n if (paging) {\n paging.perPage = this.currentPerPage * 1;\n }\n this.source.refresh();\n this.initPages();\n }\n}\n","import { Component, input } from '@angular/core';\n\nimport { Cell } from '../../../lib/data-set/cell';\n\n@Component({ template: '', selector: 'ng2-edit-cell-default-base-component' })\nexport class EditCellDefaultComponent {\n readonly cell = input.required< Cell>()\n readonly inputClass = input('');\n}\n","import {\n Component,\n ComponentRef,\n OnChanges,\n OnDestroy,\n SimpleChanges,\n ViewChild,\n ViewContainerRef,\n} from \"@angular/core\";\n\n\nimport { SmartTableEditorAndFilter } from \"../../../lib/interfaces/smart-table.models\";\nimport { DefaultEditor } from \"../cell-editors/default-editor\";\nimport { EditCellDefaultComponent } from \"./edit-cell-default\";\n\n@Component({\n selector: \"ng2-table-cell-custom-editor\",\n template: ` <ng-template #dynamicTarget></ng-template> `,\n standalone: true,\n})\nexport class CustomEditComponent extends EditCellDefaultComponent implements OnChanges, OnDestroy {\n @ViewChild(\"dynamicTarget\", { read: ViewContainerRef, static: true })\n dynamicTarget?: ViewContainerRef;\n\n private customComponent?: ComponentRef<DefaultEditor>;\n\n ngOnChanges(changes: SimpleChanges) {\n const editor: SmartTableEditorAndFilter | false =\n this.cell().getColumn().editor;\n if (this.customComponent) {\n if (this.customComponent?.instance && 'ngOnChanges' in this.customComponent.instance){\n const onChanges = this.customComponent.instance.ngOnChanges as (changes: SimpleChanges) => void\n onChanges(changes);\n }\n return;\n }\n if (\n this.cell() &&\n !this.customComponent &&\n editor &&\n editor.type == \"custom\"\n ) {\n this.customComponent = this.dynamicTarget?.createComponent(\n editor.component\n )\n this.customComponent?.setInput('cell', this.cell())\n this.customComponent?.setInput('inputClass', this.inputClass())\n }\n }\n\n ngOnDestroy() {\n if (this.customComponent) {\n this.customComponent.destroy();\n }\n }\n}\n","import { Component, computed } from \"@angular/core\";\n\nimport { DefaultEditor } from \"./default-editor\";\n\n@Component({\n selector: \"ng2-checkbox-editor\",\n styleUrls: [\"./editor.component.scss\"],\n template: `\n <input\n [class]=\"inputClass()\"\n type=\"checkbox\"\n class=\"form-control\"\n [name]=\"cell().getId()\"\n [disabled]=\"!cell().isEditable()\"\n (change)=\"onChange($event)\"\n [checked]=\"\n cell().getValue() === trueVal()\n \"\n />\n `,\n standalone: true,\n})\nexport class CheckboxEditorComponent extends DefaultEditor {\n readonly trueVal = computed(() => {\n return this.cell().getColumn().getConfig()?.true || true\n })\n readonly falseVal = computed(() => {\n return this.cell().getColumn().getConfig()?.false || false\n })\n\n\n constructor() {\n super();\n }\n\n onChange(event: any) {\n this.cell().newValue = event.target.checked ? this.trueVal() : this.falseVal();\n }\n}\n","import { Component } from \"@angular/core\";\n\nimport { FormsModule } from \"@angular/forms\";\nimport { DefaultEditor } from \"./default-editor\";\n\n@Component({\n selector: \"ng2-input-editor\",\n styleUrls: [\"./editor.component.scss\"],\n template: `\n <input\n [class]=\"inputClass()\"\n class=\"form-control\"\n [(ngModel)]=\"cell().newValue\"\n [name]=\"cell().getId()\"\n [placeholder]=\"cell().getTitle()\"\n [disabled]=\"!cell().isEditable()\"\n />\n `,\n standalone: true,\n imports: [FormsModule],\n})\nexport class InputEditorComponent extends DefaultEditor {\n constructor() {\n super();\n }\n}\n","import { Component } from \"@angular/core\";\n\nimport { FormsModule } from \"@angular/forms\";\nimport { DefaultEditor } from \"./default-editor\";\n\n@Component({\n selector: \"ng2-select-editor\",\n template: `\n <select\n [class]=\"inputClass()\"\n class=\"form-control\"\n [(ngModel)]=\"cell().newValue\"\n [name]=\"cell().getId()\"\n [disabled]=\"!cell().isEditable()\"\n >\n @for (option of cell().getColumn().getConfig()?.list; track option.value) {\n <option\n [value]=\"option.value\"\n [selected]=\"option.value === cell().getValue()\"\n >\n {{ option.title }}\n </option>\n }\n </select>\n `,\n standalone: true,\n imports: [FormsModule],\n})\nexport class SelectEditorComponent extends DefaultEditor {\n constructor() {\n super();\n }\n}\n","import { Component } from \"@angular/core\";\n\nimport { FormsModule } from \"@angular/forms\";\nimport { DefaultEditor } from \"./default-editor\";\n\n@Component({\n selector: \"ng2-textarea-editor\",\n styleUrls: [\"./editor.component.scss\"],\n template: `\n <textarea\n [class]=\"inputClass()\"\n class=\"form-control\"\n [(ngModel)]=\"cell().newValue\"\n [name]=\"cell().getId()\"\n [disabled]=\"!cell().isEditable()\"\n [placeholder]=\"cell().getTitle()\"\n >\n </textarea>\n `,\n standalone: true,\n imports: [FormsModule],\n})\nexport class TextareaEditorComponent extends DefaultEditor {\n constructor() {\n super();\n }\n}\n","import { Component } from \"@angular/core\";\n\nimport { SmartTableEditorAndFilterTypes } from \"../../../lib/interfaces/smart-table.models\";\nimport { CheckboxEditorComponent } from \"../cell-editors/checkbox-editor.component\";\nimport { InputEditorComponent } from \"../cell-editors/input-editor.component\";\nimport { SelectEditorComponent } from \"../cell-editors/select-editor.component\";\nimport { TextareaEditorComponent } from \"../cell-editors/textarea-editor.component\";\nimport { EditCellDefaultComponent } from \"./edit-cell-default\";\n\n@Component({\n selector: \"ng2-table-cell-default-editor\",\n templateUrl: \"./default-edit.component.html\",\n imports: [\n SelectEditorComponent,\n TextareaEditorComponent,\n CheckboxEditorComponent,\n InputEditorComponent,\n ],\n standalone: true,\n})\nexport class DefaultEditComponent extends EditCellDefaultComponent {\n constructor() {\n super();\n }\n\n getEditorType(): SmartTableEditorAndFilterTypes {\n const editor = this.cell().getColumn().editor;\n if (editor) {\n return editor.type || \"text\";\n }\n return \"text\";\n }\n}\n","<div role=\"none\" (click)=\"$event.stopPropagation()\">\n @switch (getEditorType()) {\n @case ('list') {\n <ng2-select-editor\n [cell]=\"cell()\"\n [inputClass]=\"inputClass()\">\n </ng2-select-editor>\n }\n @case ('textarea') {\n <ng2-textarea-editor\n [cell]=\"cell()\"\n [inputClass]=\"inputClass()\">\n </ng2-textarea-editor>\n }\n @case ('checkbox') {\n <ng2-checkbox-editor\n [cell]=\"cell()\"\n [inputClass]=\"inputClass()\">\n </ng2-checkbox-editor>\n }\n @default {\n <ng2-input-editor\n [cell]=\"cell()\"\n [inputClass]=\"inputClass()\">\n </ng2-input-editor>\n }\n}\n</div>","import { Component, input } from \"@angular/core\";\n\nimport { Cell } from \"../../../lib/data-set/cell\";\nimport { SmartTableEditorAndFilterTypes } from \"../../../lib/interfaces/smart-table.models\";\nimport { CustomEditComponent } from \"./custom-edit.component\";\nimport { DefaultEditComponent } from \"./default-edit.component\";\n\n@Component({\n selector: \"ng2-table-cell-edit-mode\",\n template: `\n <div>\n @switch (getEditorType()) { @case ('custom') {\n <ng2-table-cell-custom-editor [cell]=\"cell()\" [inputClass]=\"inputClass()\">\n </ng2-table-cell-custom-editor>\n } @default {\n <ng2-table-cell-default-editor\n [cell]=\"cell()\"\n [inputClass]=\"inputClass()\"\n >\n </ng2-table-cell-default-editor>\n } }\n </div>\n `,\n standalone: true,\n imports: [CustomEditComponent, DefaultEditComponent],\n})\nexport class EditCellComponent {\n readonly cell = input.required<Cell>();\n readonly inputClass = input(\"\");\n\n getEditorType(): SmartTableEditorAndFilterTypes {\n const editor = this.cell().getColumn().editor;\n if (editor) {\n return editor.type;\n }\n return \"text\";\n }\n}\n","import { Component, input } from \"@angular/core\";\n\nimport { NgComponentOutlet } from \"@angular/common\";\nimport { Cell } from \"../../../lib/data-set/cell\";\n\n@Component({\n selector: \"ng2-custom-view-component\",\n template: `<ng-template\n *ngComponentOutlet=\"\n cell().getColumn().renderComponent;\n inputs: { rowData: cell().getRow().getData(), value: cell().getValue() }\n \"\n ></ng-template>`,\n imports: [NgComponentOutlet],\n standalone: true,\n})\nexport class CustomViewComponent {\n readonly cell = input.required<Cell>();\n}\n","import { ChangeDetectionStrategy, Component, input } from \"@angular/core\";\n\nimport { Cell } from \"../../../lib/data-set/cell\";\nimport { CustomViewComponent } from \"./custom-view.component\";\n\n@Component({\n selector: \"ng2-table-cell-view-mode\",\n changeDetection: ChangeDetectionStrategy.OnPush,\n template: `\n <div>\n @switch (cell().getColumn().type) { @case ('custom') {\n <ng2-custom-view-component [cell]=\"cell()\"></ng2-custom-view-component>\n } @case ('html') {\n <div [innerHTML]=\"cell().getValue()\"></div>\n } @default {\n <div>{{ cell().getValue() }}</div>\n } }\n </div>\n `,\n standalone: true,\n imports: [CustomViewComponent],\n})\nexport class ViewCellComponent {\n readonly cell = input.required< Cell>()\n}\n","import { Component, input } from \"@angular/core\";\n\nimport { Cell } from \"../../lib/data-set/cell\";\nimport { EditCellComponent } from \"./cell-edit-mode/edit-cell.component\";\nimport { ViewCellComponent } from \"./cell-view-mode/view-cell.component\";\n\n@Component({\n selector: \"ng2-smart-table-cell\",\n template: `\n @if (!isInEditing()) {\n <ng2-table-cell-view-mode [cell]=\"cell()\"></ng2-table-cell-view-mode>\n } @else {\n <ng2-table-cell-edit-mode\n [cell]=\"cell()\"\n [inputClass]=\"inputClass()\"\n >\n </ng2-table-cell-edit-mode>\n }\n `,\n standalone: true,\n imports: [ViewCellComponent, EditCellComponent],\n})\nexport class CellComponent {\n readonly cell = input.required<Cell>()\n\n readonly inputClass = input('');\n readonly isInEditing = input<boolean>(false);\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n computed,\n EventEmitter,\n input,\n OutputEmitterRef\n} from \"@angular/core\";\n\nimport { Row } from \"../../../lib/data-set/row\";\nimport { Grid } from \"../../../lib/grid\";\n\n@Component({\n selector: \"ng2-st-tbody-create-cancel\",\n template: `\n @if (!row().pending) {\n <a\n href=\"#\"\n [id]=\"'row-' + row().index + '_editing-confirm-button'\"\n class=\"ng2-smart-action ng2-smart-action-edit-save\"\n [innerHTML]=\"saveButtonContent()\"\n (click)=\"onSave($event)\"\n ></a>\n <a\n href=\"#\"\n [id]=\"'row-' + row().index + '_editing-cancel-button'\"\n class=\"ng2-smart-action ng2-smart-action-edit-cancel\"\n [innerHTML]=\"cancelButtonContent()\"\n (click)=\"onCancelEdit($event)\"\n ></a>\n } @else {\n <div style=\"display: flex;\">\n <svg\n role=\"none\"\n (click)=\"$event.stopPropagation()\"\n style=\"height: 2rem; width: 2rem;\"\n version=\"1.1\"\n id=\"L9\"\n xmlns=\"http://www.w3.org/2000/svg\"\n xmlns:xlink=\"http://www.w3.org/1999/xlink\"\n x=\"0px\"\n y=\"0px\"\n viewBox=\"0 0 100 100\"\n enable-background=\"new 0 0 0 0\"\n xml:space=\"preserve\"\n >\n <path\n fill=\"#e9e9e9\"\n d=\"M73,50c0-12.7-10.3-23-23-23S27,37.3,27,50 M30.9,50c0-10.5,8.5-19.1,19.1-19.1S69.1,39.5,69.1,50\"\n >\n <animateTransform\n attributeName=\"transform\"\n attributeType=\"XML\"\n type=\"rotate\"\n dur=\"1s\"\n from=\"0 50 50\"\n to=\"360 50 50\"\n repeatCount=\"indefinite\"\n />\n </path>\n </svg>\n <svg\n role=\"none\"\n (click)=\"$event.stopPropagation()\"\n style=\"height: 2rem; width: 2rem; \"\n version=\"1.1\"\n id=\"L9\"\n xmlns=\"http://www.w3.org/2000/svg\"\n xmlns:xlink=\"http://www.w3.org/1999/xlink\"\n x=\"0px\"\n y=\"0px\"\n viewBox=\"0 0 100 100\"\n enable-background=\"new 0 0 0 0\"\n xml:space=\"preserve\"\n >\n <path\n fill=\"#e9e9e9\"\n d=\"M73,50c0-12.7-10.3-23-23-23S27,37.3,27,50 M30.9,50c0-10.5,8.5-19.1,19.1-19.1S69.1,39.5,69.1,50\"\n >\n <animateTransform\n attributeName=\"transform\"\n attributeType=\"XML\"\n type=\"rotate\"\n dur=\"1s\"\n from=\"0 50 50\"\n to=\"360 50 50\"\n repeatCount=\"indefinite\"\n />\n </path>\n </svg>\n </div>\n }\n `,\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class TbodyCreateCancelComponent {\n readonly grid = input.required<Grid>();\n readonly row = input.required<Row>();\n readonly editConfirm = input.required<EventEmitter<any> | OutputEmitterRef<any>>();\n readonly editCancel = input.required<EventEmitter<any> | OutputEmitterRef<any>>();\n\n readonly cancelButtonContent = computed(() => {\n const edit = this.grid().settings().edit\n return edit ? edit.cancelButtonContent || \"Cancel\" : \"Cancel\"\n })\n readonly saveButtonContent = computed(() => {\n const edit = this.grid().settings().edit\n return edit ? edit.saveButtonContent || \"Update\" : \"Update\"\n })\n\n onSave(event: any) {\n event.preventDefault();\n event.stopPropagation();\n this.grid().save(this.row(), this.editConfirm());\n }\n\n onCancelEdit(event: any) {\n event.preventDefault();\n event.stopPropagation();\n this.editCancel().emit(true);\n this.row().isInEditing = false;\n }\n}\n","import { SmartTableColumnSettings } from \"../interfaces/smart-table.models\";\nimport { Column } from \"./column\";\nimport { Row } from \"./row\";\n\nexport class DataSet {\n newRow!: Row;\n\n protected data: any[] = [];\n protected columns: Column[] = [];\n protected rows: Row[] = [];\n protected selectedRows = new Set<Row>();\n\n constructor(\n data: any[] = [],\n protected columnSettings: SmartTableColumnSettings[]\n ) {\n this.createColumns(columnSettings);\n this.setData(data);\n\n this.createNewRow();\n }\n\n setData(data: any[]) {\n this.data = data;\n this.createRows();\n }\n\n getColumns(): Column[] {\n return this.columns;\n }\n\n getRows(): Row[] {\n return this.rows;\n }\n\n getFirstRow(): Row {\n return this.rows[0];\n }\n\n getLastRow(): Row {\n return this.rows[this.rows.length - 1];\n }\n\n findRowByData(data: any): Row | undefined {\n return this.rows.find((row: Row) => row.getData() === data);\n }\n\n setSelectAll(state: boolean): void {\n this.rows.forEach((row) => {\n row.isSelected = state;\n this.storeSelectedRow(row);\n });\n }\n\n deselectAll() {\n this.rows.forEach((row) => {\n row.isSelected = false;\n });\n // we need to clear selectedRow field because no one row selected\n this.selectedRows.clear();\n }\n\n selectRow(row: Row, state: boolean): void {\n row.isSelected = state;\n this.storeSelectedRow(row);\n }\n\n multipleSelectRow(row: Row): Row {\n row.isSelected = !row.isSelected;\n this.storeSelectedRow(row);\n\n return row;\n }\n\n getSelectedRowsData(): any[] {\n return [...this.selectedRows];\n }\n\n createNewRow() {\n this.newRow = new Row(-1, {}, this);\n this.newRow.isInEditing = true;\n }\n\n /**\n * Create columns by mapping from the settings\n * @param settings\n * @private\n */\n createColumns(columnsParams: SmartTableColumnSettings[]) {\n columnsParams.forEach((params) => {\n this.columns.push(\n new Column(params.key as string, params, this)\n );\n });\n }\n\n /**\n * Create rows based on current data prepared in data source\n * @private\n */\n createRows() {\n this.rows = [];\n this.data.forEach((el, index) => {\n const row = new Row(index, el, this);\n row.isSelected = this.selectedRows.has(row.getData());\n this.rows.push(row);\n });\n }\n\n public get isAllSelected(): boolean {\n return this.rows.every((row) => row.isSelected);\n }\n\n private storeSelectedRow(row: Row): void {\n if (row.isSelected) {\n this.selectedRows.add(row.getData());\n } else {\n this.selectedRows.delete(row.getData());\n }\n }\n}\n","import { computed, EventEmitter, OutputEmitterRef, signal } from \"@angular/core\";\nimport { Observable, Subject, Subscription } from \"rxjs\";\nimport { LocalDataSource } from \"./data-source/local/local.data-source\";\n\nimport { Column } from \"./data-set/column\";\nimport { DataSet } from \"./data-set/data-set\";\nimport { Row } from \"./data-set/row\";\nimport {\n Deferred,\n getDeepFromObject,\n getLocalStorage,\n setLocalStorage,\n} from \"./helpers\";\nimport {\n ColumnPositionState,\n SmartTableColumnSettings,\n SmartTableSettings,\n SmartTableSortItem,\n} from \"./interfaces/smart-table.models\";\n\nexport class Grid {\n createFormShown = false;\n\n source!: LocalDataSource;\n dataSet!: DataSet;\n\n onSelectRowSource = new Subject<any>();\n onDeselectRowSource = new Subject<any>();\n\n currentColumnsSortState: ColumnPositionState[] = [];\n\n private columnsSortedEmitter!: OutputEmitterRef<ColumnPositionState[]>\n private sourceOnChangedSubscription: Subscription | undefined;\n private sourceOnUpdatedSubscription: Subscription | undefined;\n\n readonly settings = signal<SmartTableSettings>({} as SmartTableSettings);\n\n readonly isMultiSelectVisible = computed(() => {\n return this.settings().selectMode === \"multi\";\n })\n readonly isActionsVisible = computed<boolean>(() => {\n const actions = this.settings().actions\n if (!actions) return false;\n return actions.add || actions.edit || actions.delete || !!actions?.custom?.length;\n })\n readonly actionIsOnLeft = computed<boolean>(() => {\n return (this.settings().actionsPosition || 'left') === 'left';\n })\n readonly actionIsOnRight = computed<boolean>(() => {\n return this.settings().actionsPosition === 'right';\n })\n\n constructor(source: LocalDataSource, settings: SmartTableSettings) {\n this.setSettings(settings);\n this.setSource(source);\n }\n\n setColumnsSortedEmitter(emitter: OutputEmitterRef<ColumnPositionState[]>) {\n this.columnsSortedEmitter = emitter\n }\n\n detach(): void {\n if (this.sourceOnChangedSubscription) {\n this.sourceOnChangedSubscription.unsubscribe();\n }\n if (this.sourceOnUpdatedSubscription) {\n this.sourceOnUpdatedSubscription.unsubscribe();\n }\n }\n\n getNewRow(): Row {\n return this.dataSet.newRow;\n }\n\n setSettings(settings: SmartTableSettings) {\n this.updateSettingsAndDataSet(settings);\n if (this.getSetting('columnSort', false)) {\n this.setColumnsSortState(settings.columns);\n }\n }\n\n private updateSettingsAndDataSet(settings: SmartTableSettings) {\n this.settings.set(settings);\n this.dataSet = new DataSet(\n [],\n settings.columns\n );\n\n if (this.source) {\n this.source.refresh();\n }\n }\n\n getDataSet(): DataSet {\n return this.dataSet;\n }\n\n setSource(source: LocalDataSource) {\n this.source = this.prepareSource(source);\n this.detach();\n\n this.sourceOnChangedSubscription = this.source\n .onChanged()\n .subscribe((changes: any) => this.processDataChange(changes));\n\n this.sourceOnUpdatedSubscription = this.source\n .onUpdated()\n .subscribe((data: any) => {\n const changedRow = this.dataSet.findRowByData(data);\n if (changedRow) {\n changedRow.setData(data);\n }\n });\n }\n\n getSetting<T>(name: string, defaultValue?: any): T {\n return getDeepFromObject(this.settings(), name, defaultValue);\n }\n\n getColumns(): Column[] {\n return this.dataSet.getColumns();\n }\n\n getRows(): Row[] {\n return this.dataSet.getRows();\n }\n\n selectRow(row: Row, state: boolean) {\n this.dataSet.selectRow(row, state);\n }\n\n multipleSelectRow(row: Row) {\n this.dataSet.multipleSelectRow(row);\n }\n\n onSelectRow(): Observable<any> {\n return this.onSelectRowSource.asObservable();\n }\n\n onDeselectRow(): Observable<any> {\n return this.onDeselectRowSource.asObservable();\n }\n\n edit(row: Row) {\n row.isInEditing = true;\n }\n\n create(row: Row, confirmEmitter: EventEmitter<any> | OutputEmitterRef<any>) {\n row.pending = true;\n const deferred = new Deferred();\n deferred.promise\n .then((newData) => {\n row.pending = false;\n newData = newData || row.getNewData();\n this.source.prepend(newData).then(() => {\n this.createFormShown = false;\n this.dataSet.createNewRow();\n });\n })\n .catch((err) => {\n row.pending = false;\n });\n\n if (this.getSetting(\"add.confirmCreate\")) {\n confirmEmitter.emit({\n newData: row.getNewData(),\n source: this.source,\n confirm: deferred,\n });\n } else {\n deferred.resolve(false);\n }\n }\n\n save(row: Row, confirmEmitter: EventEmitter<any> | OutputEmitterRef<any>) {\n row.pending = true;\n const deferred = new Deferred();\n deferred.promise\n .then((newData) => {\n row.pending = false;\n newData = newData || row.getNewData();\n this.source.update(row.getData(), newData).then(() => {\n row.isInEditing = false;\n });\n })\n .catch((err) => {\n row.pending = false;\n });\n\n if (this.getSetting(\"edit.confirmSave\", false)) {\n confirmEmitter.emit({\n data: row.getData(),\n newData: row.getNewData(),\n source: this.source,\n confirm: deferred,\n });\n } else {\n deferred.resolve(false);\n }\n }\n\n delete(row: Row, confirmEmitter: EventEmitter<any> | OutputEmitterRef<any>) {\n row.pending = true;\n const deferred = new Deferred();\n deferred.promise\n .then(() => {\n row.pending = false;\n this.source.remove(row.getData());\n })\n .catch((err) => {\n row.pending = false;\n // doing nothing\n });\n if (this.getSetting(\"delete.confirmDelete\")) {\n confirmEmitter.emit({\n data: row.getData(),\n source: this.source,\n confirm: deferred,\n });\n } else {\n deferred.resolve(false);\n }\n if (row.isSelected) {\n this.dataSet.selectRow(row, false);\n }\n }\n\n processDataChange(changes: any) {\n if (this.shouldProcessChange(changes)) {\n if (changes[\"action\"] === \"load\") {\n this.dataSet.deselectAll();\n }\n this.dataSet.setData(changes[\"elements\"]);\n }\n }\n\n shouldProcessChange(changes: any): boolean {\n if (\n [\"filter\", \"sort\", \"page\", \"remove\", \"refresh\", \"load\", \"paging\"].indexOf(\n changes[\"action\"]\n ) !== -1\n ) {\n return true;\n } else if (\n [\"prepend\", \"append\"].indexOf(changes[\"action\"]) !== -1 &&\n !this.getSetting(\"pager.display\")\n ) {\n return true;\n }\n return false;\n }\n\n prepareSource(source: LocalDataSource): LocalDataSource {\n const initialSort: SmartTableSortItem | false = this.getInitialSort();\n if (initialSort) {\n source.setSort([initialSort], false);\n }\n if (this.getSetting(\"pager.display\") === true) {\n source.setPaging(1, this.getSetting(\"pager.perPage\"), false);\n }\n\n source.refresh();\n return source;\n }\n\n getInitialSort(): SmartTableSortItem | false {\n const defaultSortColumn = this.getColumns().find(\n (column: Column) => column.isSortable && column.defaultSortDirection\n );\n if (!defaultSortColumn) {\n return false;\n }\n return {\n field: defaultSortColumn.id,\n direction: defaultSortColumn.defaultSortDirection || \"asc\",\n compare: defaultSortColumn.getCompareFunction(),\n };\n }\n\n getSelectedRowsData(): any[] {\n return this.dataSet.getRows();\n }\n\n selectAllRows(status: boolean) {\n this.dataSet.setSelectAll(status);\n }\n\n getFirstRow(): Row {\n return this.dataSet.getFirstRow();\n }\n\n getLastRow(): Row {\n return this.dataSet.getLastRow();\n }\n\n // ------------------------------- column sort\n\n private async getSortedTableColumns(\n newState: ColumnPositionState[],\n columns: SmartTableColumnSettings[]\n ): Promise<SmartTableColumnSettings[]> {\n const sortedArray: SmartTableColumnSettings[] = [];\n newState.forEach((item2) => {\n const index = columns.findIndex(\n (item1) => item1.key === item2.key && item1.title === item2.title\n );\n if (index > -1) {\n sortedArray.push({ ...columns[index], hide: !!item2.hide });\n }\n });\n return Promise.resolve(sortedArray);\n }\n\n public async applyColumnsSortState(state: ColumnPositionState[], emitEvent = true) {\n this.currentColumnsSortState = this.getMergedColumnStates(state);\n this.updateSettingsAndDataSet({\n ...this.settings(),\n columns: await this.getSortedTableColumns(this.currentColumnsSortState, this.settings()?.columns),\n });\n if (this.columnStateStorageKey) {\n setLocalStorage(this.columnStateStorageKey, this.currentColumnsSortState);\n }\n if (emitEvent) {\n this.columnsSortedEmitter.emit(this.currentColumnsSortState)\n }\n }\n\n private setColumnsSortState(columns?: SmartTableColumnSettings[]) {\n const columnsState = this.getColumnsStateFromSettings(columns);\n if (this.columnStateStorageKey) {\n const storageState = getLocalStorage<ColumnPositionState[]>(\n this.columnStateStorageKey\n );\n if (!storageState) {\n this.currentColumnsSortState = columnsState;\n setLocalStorage(this.columnStateStorageKey, columnsState);\n return;\n }\n const merged = this.getMergedColumnStates(storageState, columnsState)\n this.applyColumnsSortState(merged, false);\n return;\n }\n this.applyColumnsSortState(columnsState, false);\n }\n\n private getColumnsStateFromSettings(columns?: SmartTableColumnSettings[]): ColumnPositionState[] {\n return (columns || this.settings().columns || []).map((column) => ({\n key: column.key as string,\n title: column.title,\n hide: !!column.hide,\n moveDisabled: !!column.moveDisabled,\n }));\n }\n\n private getMergedColumnStates(\n newState: ColumnPositionState[],\n columnsState?: ColumnPositionState[],\n ) {\n const columnsSettings = columnsState || this.getColumnsStateFromSettings();\n // merge new columns state with state from storage\n const filtered: ColumnPositionState[] = [];\n newState.forEach((state) => {\n const fined = columnsSettings.find(\n (column) => column.title === state.title && column.key === state.key\n );\n if (fined) {\n filtered.push({ ...fined, hide: fined.moveDisabled ? fined.hide : state.hide });\n }\n });\n // find new columns witch not exist in storage state\n const newColumns = columnsSettings.filter((state) => {\n return !filtered.some(\n (column) => column.title === state.title && column.key === state.key\n );\n });\n return [...filtered, ...newColumns];\n }\n\n private get columnStateStorageKey(): string | undefined {\n return this.settings().columnSortStorageKey;\n }\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n Input,\n output\n} from \"@angular/core\";\nimport { Row } from \"../../../lib/data-set/row\";\nimport { LocalDataSource } from \"./../../../lib/data-source/local/local.data-source\";\n\nimport { Grid } from \"../../../lib/grid\";\nimport { SmartTableCustomAction } from \"../../../lib/interfaces/smart-table.models\";\n\n@Component({\n selector: \"ng2-st-tbody-custom\",\n changeDetection: ChangeDetectionStrategy.OnPush,\n template: `\n @for (action of customActions(); track $index) {\n <a\n [id]=\"'row-' + row.index + '_action-' + action.name + '-button'\"\n href=\"#\"\n class=\"ng2-smart-action ng2-smart-action-custom-custom\"\n [innerHTML]=\"action.title\"\n (click)=\"\n $event.stopPropagation(); $event.preventDefault(); onCustom(action)\n \"\n ></a>\n }\n `,\n standalone: true,\n})\nexport class TbodyCustomComponent {\n @Input() grid!: Grid;\n @Input() row!: Row;\n @Input() source!: LocalDataSource;\n readonly custom = output<any>();\n\n onCustom(action: any) {\n this.custom.emit({\n action: action.name,\n data: this.row.getData(),\n source: this.source,\n });\n }\n\n customActions() {\n return this.grid.getSetting<SmartTableCustomAction[] | undefined>(\n \"actions.custom\"\n );\n }\n}\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n effect,\n EventEmitter,\n inject,\n input,\n output,\n OutputEmitterRef,\n} from \"@angular/core\";\n\nimport { Row } from \"../../../lib/data-set/row\";\nimport { LocalDataSource } from \"../../../lib/data-source/local/local.data-source\";\nimport { Grid } from \"../../../lib/grid\";\n\n@Component({\n selector: \"ng2-st-tbody-edit-delete\",\n template: `\n @if (!row().pending) { @if (isActionEdit) {\n <a\n href=\"#\"\n [id]=\"'row-' + row().index + '_action-edit-button'\"\n class=\"ng2-smart-action ng2-smart-action-edit-edit\"\n [innerHTML]=\"editRowButtonContent\"\n (click)=\"onEdit($event)\"\n ></a>\n } @if (isActionDelete) {\n <a\n href=\"#\"\n [id]=\"'row-' + row().index + '_action-delete-button'\"\n class=\"ng2-smart-action ng2-smart-action-delete-delete\"\n [innerHTML]=\"deleteRowButtonContent\"\n (click)=\"onDelete($event)\"\n ></a>\n } } @else {\n <div style=\"display: flex;\">\n @if (isActionEdit) {\n <svg\n role=\"none\"\n (click)=\"$event.stopPropagation()\"\n style=\"height: 2rem; width: 2rem;\"\n version=\"1.1\"\n id=\"L9\"\n xmlns=\"http://www.w3.org/2000/svg\"\n xmlns:xlink=\"http://www.w3.org/1999/xlink\"\n x=\"0px\"\n y=\"0px\"\n viewBox=\"0 0 100 100\"\n enable-background=\"new 0 0 0 0\"\n xml:space=\"preserve\"\n >\n <path\n fill=\"#e9e9e9\"\n d=\"M73,50c0-12.7-10.3-23-23-23S27,37.3,27,50 M30.9,50c0-10.5,8.5-19.1,19.1-19.1S69.1,39.5,69.1,50\"\n >\n <animateTransform\n attributeName=\"transform\"\n attributeType=\"XML\"\n type=\"rotate\"\n dur=\"1s\"\n from=\"0 50 50\"\n to=\"360 50 50\"\n repeatCount=\"indefinite\"\n />\n </path>\n </svg>\n } @if (isActionDelete) {\n <svg\n role=\"none\"\n (click)=\"$event.stopPropagation()\"\n style=\"height: 2rem; width: 2rem;\"\n version=\"1.1\"\n id=\"L9\"\n xmlns=\"http://www.w3.org/2000/svg\"\n xmlns:xlink=\"http://www.w3.org/1999/xlink\"\n x=\"0px\"\n y=\"0px\"\n viewBox=\"0 0 100 100\"\n enable-background=\"new 0 0 0 0\"\n xml:space=\"preserve\"\n >\n <path\n fill=\"#e9e9e9\"\n d=\"M73,50c0-12.7-10.3-23-23-23S27,37.3,27,50 M30.9,50c0-10.5,8.5-19.1,19.1-19.1S69.1,39.5,69.1,50\"\n >\n <animateTransform\n attributeName=\"transform\"\n attributeType=\"XML\"\n type=\"rotate\"\n dur=\"1s\"\n from=\"0 50 50\"\n to=\"360 50 50\"\n repeatCount=\"indefinite\"\n />\n </path>\n </svg>\n }\n </div>\n }\n `,\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class TbodyEditDeleteComponent {\n private readonly cdr = inject(ChangeDetectorRef);\n readonly grid = input.required<Grid>();\n readonly row = input.required<Row>();\n readonly source = input.required<LocalDataSource>();\n readonly deleteConfirm = input.required<\n EventEmitter<any> | OutputEmitterRef<any>\n >();\n\n readonly edit = output<any>();\n readonly delete = output<any>();\n\n isActionEdit = false;\n isActionDelete = false;\n isExternalMode = false;\n editRowButtonContent = \"Edit\";\n deleteRowButtonContent = \"Delete\";\n\n constructor() {\n effect(() => {\n const settings = this.grid().settings();\n const actions = settings.actions;\n if (actions) {\n this.isActionDelete = !!actions.delete;\n this.isActionEdit = !!actions.edit;\n }\n this.isExternalMode = settings.mode === 'external';\n this.editRowButtonContent = settings.edit\n ? settings.edit.editButtonContent || \"Edit\"\n : \"Edit\";\n this.deleteRowButtonContent = settings.delete\n ? settings.delete.deleteButtonContent || \"Delete\"\n : \"Delete\";\n this.cdr.detectChanges();\n\n\n });\n }\n\n onEdit(event: any) {\n event.preventDefault();\n event.stopPropagation();\n this.edit.emit({\n data: this.row().getData(),\n source: this.source,\n });\n if (!this.isExternalMode) {\n this.grid().edit(this.row());\n }\n }\n\n onDelete(event: any) {\n event.preventDefault();\n event.stopPropagation();\n if (this.isExternalMode) {\n this.delete.emit({\n data: this.row().getData(),\n source: this.source(),\n });\n } else {\n this.grid().delete(this.row(), this.deleteConfirm());\n }\n }\n}\n","import {\n Component,\n computed,\n EventEmitter,\n input,\n output,\n OutputEmitterRef\n} from \"@angular/core\";\n\nimport { NgTemplateOutlet } from \"@angular/common\";\nimport { FormsModule } from \"@angular/forms\";\nimport { Cell } from \"../../lib/data-set/cell\";\nimport { LocalDataSource } from \"../../lib/data-source/local/local.data-source\";\nimport { Grid } from \"../../lib/grid\";\nimport { CellComponent } from \"../cell/cell.component\";\nimport { TbodyCreateCancelComponent } from \"./cells/create-cancel.component\";\nimport { TbodyCustomComponent } from \"./cells/custom.component\";\nimport { TbodyEditDeleteComponent } from \"./cells/edit-delete.component\";\n\n@Component({\n selector: \"[ng2-st-tbody]\",\n styleUrls: [\"./tbody.component.scss\"],\n templateUrl: \"./tbody.component.html\",\n standalone: true,\n imports: [\n FormsModule,\n TbodyCustomComponent,\n TbodyEditDeleteComponent,\n TbodyCreateCancelComponent,\n NgTemplateOutlet,\n CellComponent,\n ],\n})\nexport class Ng2SmartTableTbodyComponent {\n readonly grid = input.required<Grid>();\n readonly source = input.required<LocalDataSource>();\n readonly deleteConfirm = input.required<EventEmitter<any> | OutputEmitterRef<any>>();\n readonly createConfirm = input.required<EventEmitter<any> | OutputEmitterRef<any>>();\n readonly editConfirm = input.required<EventEmitter<any> | OutputEmitterRef<any>>();\n readonly rowClassFunction = input<(row: any) => string>(() => \"\");\n\n readonly save = output<any>();\n readonly edit = output<any>();\n readonly editCancel = output<any>();\n readonly delete = output<any>();\n readonly custom = output<any>();\n readonly edited = output<any>();\n readonly userSelectRow = output<any>();\n readonly userClickedRow = output<any>();\n readonly multipleSelectRow = output<any>();\n\n readonly editInputClass = computed<string>(() => {\n const editOptions = this.grid().settings().edit;\n if (!editOptions) {\n return ''\n }\n return editOptions.inputClass || ''\n })\n readonly noDataMessage = computed<string>(() => {\n return this.grid().settings().noDataMessage || \"No data found\"\n })\n\n getVisibleCells(cells: Cell[]): Cell[] {\n return (cells || []).filter((cell: Cell) => !cell.getColumn().hide);\n }\n\n protected trackByIdOrIndex(index: number, item: any): string | number {\n return item?.id || index;\n }\n}\n","@for (row of grid().getRows(); track trackByIdOrIndex($index, row)) {\n<tr\n (click)=\"userClickedRow.emit(row)\"\n class=\"ng2-smart-row\"\n [class]=\"rowClassFunction()(row)\"\n [class.selected]=\"row.isSelected\"\n>\n @if (grid().isMultiSelectVisible()) {\n <td\n class=\"ng2-smart-actions ng2-smart-action-multiple-select\"\n (click)=\"$event.stopPropagation(); multipleSelectRow.emit(row)\"\n >\n <input\n type=\"checkbox\"\n [id]=\"'row-' + row.index + '_select-checkbox'\"\n class=\"form-control\"\n [ngModel]=\"row.isSelected\"\n />\n </td>\n } @if (grid().actionIsOnLeft()) {\n <ng-container [ngTemplateOutlet]=\"actions\"></ng-container>\n } @for (cell of getVisibleCells(row.cells); track cell.getId()) {\n <td [class]=\"cell.getColumnClass()\">\n <ng2-smart-table-cell\n [cell]=\"cell\"\n [inputClass]=\"editInputClass()\"\n [isInEditing]=\"row.isInEditing\"\n >\n </ng2-smart-table-cell>\n </td>\n } @if (grid().actionIsOnRight()) {\n <ng-container [ngTemplateOutlet]=\"actions\"></ng-container>\n }\n</tr>\n\n<ng-template #actions>\n @if (row.isInEditing) {\n <td class=\"ng2-smart-actions\">\n <ng2-st-tbody-create-cancel\n [grid]=\"grid()\"\n [row]=\"row\"\n [editConfirm]=\"editConfirm()\"\n [editCancel]=\"editCancel\"\n ></ng2-st-tbody-create-cancel>\n </td>\n } @if (!row.isInEditing && grid().isActionsVisible() ) {\n <td class=\"ng2-smart-actions\" (click)=\"$event.stopPropagation()\">\n <ng2-st-tbody-custom\n [grid]=\"grid()\"\n (custom)=\"custom.emit($event)\"\n [row]=\"row\"\n [source]=\"source()\"\n ></ng2-st-tbody-custom>\n <ng2-st-tbody-edit-delete\n [grid]=\"grid()\"\n [deleteConfirm]=\"deleteConfirm()\"\n (edit)=\"edit.emit(row)\"\n (delete)=\"delete.emit(row)\"\n [row]=\"row\"\n [source]=\"source()\"\n >\n </ng2-st-tbody-edit-delete>\n </td>\n }\n</ng-template>\n} @empty {\n<tr>\n <td colspan=\"50\">\n {{ noDataMessage() }}\n </td>\n</tr>\n}\n","import { Component, input, Input, output } from '@angular/core';\n\nimport { Column } from '../../lib/data-set/column';\nimport { LocalDataSource } from '../../lib/data-source/local/local.data-source';\n\n@Component({ template: '', selector: 'ng2-filter-default-component' })\nexport class FilterDefault {\n readonly column = input.required<Column>();\n readonly source = input.required<LocalDataSource>();\n readonly inputClass = input<string>('');\n @Input() query = '';\n\n readonly filter = output<any>();\n\n onFilter(query: string) {\n this.source().addFilter({\n field: this.column().id,\n search: query,\n filter: this.column().getFilterFunction(),\n });\n }\n}\n","import {\n Component,\n ComponentRef,\n OnChanges,\n OnDestroy,\n SimpleChanges,\n ViewChild,\n ViewContainerRef,\n} from \"@angular/core\";\n\nimport { DefaultFilter } from \"ng2-smart-table\";\nimport { FilterDefault } from \"./filter-default\";\n\n@Component({\n selector: \"ng2-custom-table-filter\",\n template: `<ng-template #dynamicTarget></ng-template>`,\n standalone: true,\n})\nexport class CustomFilterComponent\n extends FilterDefault\n implements OnChanges, OnDestroy\n{\n @ViewChild(\"dynamicTarget\", { read: ViewContainerRef, static: true })\n dynamicTarget?: ViewContainerRef;\n\n customComponent?: ComponentRef<DefaultFilter>;\n\n ngOnChanges(changes: SimpleChanges) {\n if (this.customComponent) {\n if (\n this.customComponent?.instance &&\n \"ngOnChanges\" in this.customComponent.instance\n ) {\n const onChanges = this.customComponent.instance.ngOnChanges as (\n changes: SimpleChanges\n ) => void;\n onChanges(changes);\n }\n return;\n }\n const columnFilter = this.column().filter;\n if (columnFilter && columnFilter.type === \"custom\") {\n this.customComponent = this.dynamicTarget?.createComponent(\n columnFilter?.component\n );\n // set @Inputs and @Outputs of custom component\n this.customComponent?.setInput(\"query\", this.query);\n this.customComponent?.setInput(\"column\", this.column());\n this.customComponent?.setInput(\"source\", this.source());\n this.customComponent?.setInput(\"inputClass\", this.inputClass());\n this.customComponent?.instance.filter.subscribe((event: any) =>\n this.onFilter(event)\n );\n }\n }\n\n ngOnDestroy() {\n if (this.customComponent) {\n this.customComponent.destroy();\n }\n }\n}\n","import { Component, OnInit } from \"@angular/core\";\nimport {\n FormsModule,\n ReactiveFormsModule,\n UntypedFormControl,\n} from \"@angular/forms\";\n\nimport { debounceTime } from \"rxjs/operators\";\nimport { DefaultFilter } from \"./default-filter\";\n\n@Component({\n selector: \"ng2-checkbox-filter\",\n template: `\n <input\n type=\"checkbox\"\n [formControl]=\"inputControl\"\n [class]=\"inputClass()\"\n class=\"form-control\"\n />\n @if (filterActive) {\n <a href=\"#\" (click)=\"resetFilter($event)\">{{\n column().getFilterConfig()?.resetText || \"reset\"\n }}</a>\n }\n `,\n standalone: true,\n imports: [FormsModule, ReactiveFormsModule],\n})\nexport class CheckboxFilterComponent extends DefaultFilter implements OnInit {\n filterActive = false;\n inputControl = new UntypedFormControl();\n\n constructor() {\n super();\n }\n\n ngOnInit() {\n this.changesSubscription = this.inputControl.valueChanges\n .pipe(debounceTime(this.delay))\n .subscribe((checked: boolean) => {\n this.filterActive = true;\n const trueVal =\n (this.column().getFilterConfig() &&\n this.column().getFilterConfig().true) ||\n true;\n const falseVal =\n (this.column().getFilterConfig() &&\n this.column().getFilterConfig().false) ||\n false;\n this.query = checked ? trueVal : falseVal;\n this.setFilter();\n });\n }\n\n resetFilter(event: any) {\n event.preventDefault();\n this.query = \"\";\n this.inputControl.setValue(false, { emitEvent: false });\n this.filterActive = false;\n this.setFilter();\n }\n}\n","import { Component, OnChanges, OnInit, SimpleChanges } from \"@angular/core\";\nimport {\n FormsModule,\n ReactiveFormsModule,\n UntypedFormControl,\n} from \"@angular/forms\";\nimport { debounceTime, distinctUntilChanged } from \"rxjs/operators\";\n\nimport { DefaultFilter } from \"./default-filter\";\n\n@Component({\n selector: \"ng2-input-filter\",\n template: `\n <input\n [class]=\"inputClass()\"\n [formControl]=\"inputControl\"\n class=\"form-control\"\n type=\"text\"\n placeholder=\"{{ column().title }}\"\n />\n `,\n standalone: true,\n imports: [FormsModule, ReactiveFormsModule],\n})\nexport class InputFilterComponent\n extends DefaultFilter\n implements OnInit, OnChanges\n{\n inputControl = new UntypedFormControl();\n\n constructor() {\n super();\n }\n\n ngOnInit() {\n if (this.query) {\n this.inputControl.setValue(this.query);\n }\n this.inputControl.valueChanges\n .pipe(distinctUntilChanged(), debounceTime(this.delay))\n .subscribe((value: string) => {\n this.query = this.inputControl.value;\n this.setFilter();\n });\n }\n\n ngOnChanges(changes: SimpleChanges) {\n if (changes?.[\"query\"]) {\n this.inputControl.setValue(this.query);\n }\n }\n}\n","import { Component, OnInit, ViewChild } from '@angular/core';\nimport { FormsModule, NgControl } from '@angular/forms';\nimport { debounceTime, distinctUntilChanged, skip } from 'rxjs/operators';\n\nimport { DefaultFilter } from './default-filter';\n\n@Component({\n selector: 'ng2-select-filter',\n template: `\n <select [class]=\"inputClass()\"\n class=\"form-control\"\n #inputControl\n [(ngModel)]=\"query\">\n\n <option value=\"\">{{ column().getFilterConfig().selectText }}</option>\n @for (option of column().getFilterConfig().list; track option.value) {\n <option [value]=\"option.value\">\n {{ option.title }}\n </option>\n }\n </select>\n `,\n standalone: true,\n imports: [FormsModule]\n})\nexport class SelectFilterComponent extends DefaultFilter implements OnInit {\n @ViewChild('inputControl', { read: NgControl, static: true }) inputControl!: NgControl;\n\n constructor() {\n super();\n }\n\n ngOnInit() {\n if (this.inputControl.valueChanges) {\n this.inputControl.valueChanges\n .pipe(\n skip(1),\n distinctUntilChanged(),\n debounceTime(this.delay)\n )\n .subscribe((value: string) => this.setFilter());\n }\n\n }\n}\n","import { Component } from \"@angular/core\";\n\nimport { FilterDefault } from \"./filter-default\";\nimport { CheckboxFilterComponent } from \"./filter-types/checkbox-filter.component\";\nimport { InputFilterComponent } from \"./filter-types/input-filter.component\";\nimport { SelectFilterComponent } from \"./filter-types/select-filter.component\";\n\n@Component({\n selector: \"ng2-default-table-filter\",\n template: `\n @switch (column().getFilterType()) { @case ('list') {\n <ng2-select-filter\n [query]=\"query\"\n [class]=\"inputClass()\"\n [source]=\"source()\"\n [column]=\"column()\"\n (filter)=\"onFilter($event)\"\n >\n </ng2-select-filter>\n } @case ('checkbox') {\n <ng2-checkbox-filter\n [query]=\"query\"\n [source]=\"source()\"\n [class]=\"inputClass()\"\n [column]=\"column()\"\n (filter)=\"onFilter($event)\"\n >\n </ng2-checkbox-filter>\n } @default {\n <ng2-input-filter\n [query]=\"query\"\n [source]=\"source()\"\n [class]=\"inputClass()\"\n [column]=\"column()\"\n (filter)=\"onFilter($event)\"\n >\n </ng2-input-filter>\n } }\n `,\n standalone: true,\n imports: [\n SelectFilterComponent,\n CheckboxFilterComponent,\n InputFilterComponent,\n ],\n})\nexport class DefaultFilterComponent extends FilterDefault {}\n","import { Component, OnChanges, SimpleChanges } from '@angular/core';\nimport { Subscription } from 'rxjs';\nimport { CustomFilterComponent } from './custom-filter.component';\nimport { DefaultFilterComponent } from './default-filter.component';\nimport { FilterDefault } from './filter-default';\n\n@Component({\n selector: 'ng2-smart-table-filter',\n styleUrls: ['./filter.component.scss'],\n template: `\n @if (column().isFilterable) {\n <div class=\"ng2-smart-filter\">\n @switch (column().getFilterType()) {\n @case ('custom') {\n <ng2-custom-table-filter\n [query]=\"query\"\n [column]=\"column()\"\n [source]=\"source()\"\n [inputClass]=\"inputClass()\"\n (filter)=\"onFilter($event)\">\n </ng2-custom-table-filter>\n }\n @default {\n <ng2-default-table-filter\n [query]=\"query\"\n [column]=\"column()\"\n [source]=\"source()\"\n [inputClass]=\"inputClass()\"\n (filter)=\"onFilter($event)\">\n </ng2-default-table-filter>\n }\n }\n </div>\n }\n `,\n standalone: true,\n imports: [CustomFilterComponent, DefaultFilterComponent]\n})\nexport class FilterComponent extends FilterDefault implements OnChanges {\n protected dataChangedSub?: Subscription;\n\n ngOnChanges(changes: SimpleChanges) {\n if (changes['source']) {\n if (!changes['source'].firstChange && this.dataChangedSub) {\n this.dataChangedSub.unsubscribe();\n }\n this.dataChangedSub = this.source().onChanged().subscribe((dataChanges) => {\n const filterConf = this.source().getFilter();\n if (filterConf && filterConf.filters && filterConf.filters.length === 0) {\n this.query = '';\n\n // add a check for existing filters an set the query if one exists for this column\n // this covers instances where the filter is set by user code while maintaining existing functionality\n } else if (filterConf && filterConf.filters && filterConf.filters.length > 0) {\n filterConf.filters.forEach((k: any, v: any) => {\n if (k.field == this.column().id) {\n this.query = k.search;\n }\n });\n }\n });\n }\n }\n}\n","import {\n Component,\n computed,\n input,\n output\n} from \"@angular/core\";\n\nimport { LocalDataSource } from \"../../../lib/data-source/local/local.data-source\";\nimport { Grid } from \"../../../lib/grid\";\n\n@Component({\n selector: \"[ng2-st-add-button]\",\n template: `\n @if (isActionAdd()) {\n <a\n href=\"#\"\n class=\"ng2-smart-action ng2-smart-action-add-add\"\n [innerHTML]=\"addNewButtonContent()\"\n (click)=\"onAdd($event)\"\n ></a>\n }\n `,\n host: {\n class: \"ng2-smart-actions-title ng2-smart-actions-title-add\",\n },\n standalone: true,\n})\nexport class AddButtonComponent {\n readonly grid = input.required<Grid>();\n readonly source = input.required<LocalDataSource>();\n readonly create = output<any>();\n\n readonly isActionAdd = computed(() => {\n const actions = this.grid().settings().actions;\n if (!actions) {\n return false;\n }\n return !!actions.add;\n });\n readonly addNewButtonContent = computed(() => {\n const addParams = this.grid().settings()?.add;\n if (!addParams) {\n return \"Add New\";\n }\n return addParams?.addButtonContent || \"Add New\";\n });\n\n onAdd(event: any) {\n event.preventDefault();\n event.stopPropagation();\n\n if (this.grid().getSetting(\"mode\") === \"external\") {\n this.create.emit({\n source: this.source(),\n });\n } else {\n this.grid().createFormShown = true;\n }\n }\n}\n","import { Component, computed, input, output } from \"@angular/core\";\n\nimport { Column } from \"../../../lib/data-set/column\";\nimport { LocalDataSource } from \"../../../lib/data-source/local/local.data-source\";\nimport { Grid } from \"../../../lib/grid\";\nimport { FilterComponent } from \"../../filter/filter.component\";\nimport { AddButtonComponent } from \"../cells/add-button.component\";\n\n@Component({\n selector: \"[ng2-st-thead-filters-row]\",\n template: `\n @if (grid().isMultiSelectVisible()) {\n <th></th>\n } @if (grid().actionIsOnLeft() && grid().isActionsVisible()) {\n <th\n ng2-st-add-button\n [source]=\"source()\"\n [grid]=\"grid()\"\n (create)=\"create.emit($event)\"\n ></th>\n } @for (column of getVisibleColumns(); track column.id) {\n <th class=\"ng2-smart-th {{ column.id }}\">\n <ng2-smart-table-filter\n [source]=\"source()\"\n [column]=\"column\"\n [inputClass]=\"filterInputClass()\"\n (filter)=\"filter.emit($event)\"\n >\n </ng2-smart-table-filter>\n </th>\n } @if (grid().actionIsOnRight() && grid().isActionsVisible()) {\n <th\n ng2-st-add-button\n [grid]=\"grid()\"\n [source]=\"source()\"\n (create)=\"create.emit($event)\"\n ></th>\n }\n `,\n standalone: true,\n imports: [AddButtonComponent, FilterComponent],\n})\nexport class TheadFiltersRowComponent {\n readonly grid = input.required<Grid>();\n readonly source = input.required<LocalDataSource>();\n\n readonly create = output<any>();\n readonly filter = output<any>();\n\n filterInputClass = computed<string>(() => {\n const filterOptions = this.grid().settings()?.filter;\n if (!filterOptions) {\n return \"\";\n }\n return filterOptions.inputClass || \"\";\n });\n\n getVisibleColumns(): Column[] {\n return (this.grid().getColumns() || []).filter(\n (column: Column) => !column.hide\n );\n }\n}\n","import {\n Component,\n computed,\n input,\n output\n} from \"@angular/core\";\n\nimport { Grid } from \"../../../lib/grid\";\n\n@Component({\n selector: \"ng2-st-actions\",\n template: `\n <a\n href=\"#\"\n class=\"ng2-smart-action ng2-smart-action-add-create\"\n [innerHTML]=\"createButtonContent()\"\n (click)=\"$event.preventDefault(); create.emit($event)\"\n ></a>\n <a\n href=\"#\"\n class=\"ng2-smart-action ng2-smart-action-add-cancel\"\n [innerHTML]=\"cancelButtonContent()\"\n (click)=\"$event.preventDefault(); grid().createFormShown = false\"\n ></a>\n `,\n standalone: true,\n})\nexport class ActionsComponent {\n readonly grid = input.required<Grid>();\n readonly create = output<any>();\n\n createButtonContent = computed(() => {\n const addOptions = this.grid().settings().add\n if (!addOptions) {\n return \"Create\"\n }\n return addOptions?.createButtonContent || \"Create\"\n });\n cancelButtonContent = computed(() => {\n const addOptions = this.grid().settings().add\n if (!addOptions) {\n return \"Cancel\"\n }\n return addOptions?.cancelButtonContent || \"Cancel\"\n });\n}\n","import {\n Component,\n computed,\n EventEmitter,\n input,\n Input,\n output,\n OutputEmitterRef\n} from \"@angular/core\";\n\nimport { Cell } from \"../../../lib/data-set/cell\";\nimport { Grid } from \"../../../lib/grid\";\nimport { CellComponent } from \"../../cell/cell.component\";\nimport { ActionsComponent } from \"../cells/actions.component\";\n\n@Component({\n selector: \"[ng2-st-thead-form-row]\",\n template: `\n @if (grid().isMultiSelectVisible()) {\n <td></td>\n } @if (grid().actionIsOnLeft() && grid().isActionsVisible()) {\n <td class=\"ng2-smart-actions\">\n <ng2-st-actions\n [grid]=\"grid()\"\n (create)=\"onCreate($event)\"\n ></ng2-st-actions>\n </td>\n } @for (cell of getVisibleCells(); track cell.getId()) {\n <td>\n <ng2-smart-table-cell\n [cell]=\"cell\"\n [inputClass]=\"addInputClass()\"\n [isInEditing]=\"grid().getNewRow().isInEditing\"\n >\n </ng2-smart-table-cell>\n </td>\n } @if (grid().actionIsOnRight() && grid().isActionsVisible()) {\n <td class=\"ng2-smart-actions\">\n <ng2-st-actions\n [grid]=\"grid()\"\n (create)=\"onCreate($event)\"\n ></ng2-st-actions>\n </td>\n }\n `,\n standalone: true,\n imports: [ActionsComponent, CellComponent],\n})\nexport class TheadFormRowComponent {\n readonly grid = input.required<Grid>();\n @Input() createConfirm!: EventEmitter<any> | OutputEmitterRef<any>;\n\n readonly create = output<any>();\n addInputClass = computed<string>(() => {\n const addOptions = this.grid().settings()?.add;\n if (!addOptions) {\n return \"\";\n }\n return addOptions.inputClass || \"\";\n });\n\n onCreate(event: any) {\n event.stopPropagation();\n this.grid().create(this.grid().getNewRow(), this.createConfirm);\n }\n\n getVisibleCells(): Cell[] {\n return (this.grid().getNewRow().getCells() || []).filter(\n (cell: Cell) => !cell.getColumn().hide\n );\n }\n}\n","import {\n Component,\n computed,\n input\n} from \"@angular/core\";\n\nimport { Grid } from \"../../../lib/grid\";\n\n@Component({\n selector: \"[ng2-st-actions-title]\",\n template: ` <div class=\"ng2-smart-title\">{{ actionsColumnTitle() }}</div> `,\n standalone: true,\n host: {\n class: \"ng2-smart-actions\",\n },\n})\nexport class ActionsTitleComponent {\n readonly grid = input.required<Grid>();\n\n actionsColumnTitle = computed(() => {\n const actions = this.grid().settings().actions;\n if (!actions) {\n return \"Actions\";\n }\n return actions.columnTitle || \"Actions\";\n });\n}\n","import { Component, input } from \"@angular/core\";\n\nimport { FormsModule } from \"@angular/forms\";\nimport { Grid } from \"../../../lib/grid\";\n@Component({\n selector: \"[ng2-st-checkbox-select-all]\",\n template: `\n <input type=\"checkbox\" [ngModel]=\"this.grid().dataSet.isAllSelected\" />\n `,\n standalone: true,\n imports: [FormsModule],\n})\nexport class CheckboxSelectAllComponent {\n readonly grid = input.required<Grid>();\n}\n","import {\n Component,\n OnChanges,\n OnDestroy,\n SimpleChanges,\n input,\n output\n} from \"@angular/core\";\nimport { Subscription } from \"rxjs\";\nimport { Column } from \"../../../../lib/data-set/column\";\nimport { LocalDataSource } from \"./../../../../lib/data-source/local/local.data-source\";\nimport { SmartTableSortDirection } from \"./../../../../lib/interfaces/smart-table.models\";\n\n@Component({\n selector: \"ng2-smart-table-title\",\n styleUrls: [\"./title.component.scss\"],\n template: `\n @if (column().isSortable) {\n <a\n href=\"#\"\n (click)=\"_sort($event)\"\n class=\"ng2-smart-sort-link sort\"\n [class]=\"currentDirection\"\n >\n {{ column().title }}\n </a>\n } @else {\n <span class=\"ng2-smart-sort\">{{ column().title }}</span>\n }\n `,\n standalone: true,\n})\nexport class TitleComponent implements OnChanges, OnDestroy {\n\n currentDirection: SmartTableSortDirection | \"\" = \"\";\n readonly source = input.required<LocalDataSource>();\n readonly column = input.required<Column>();\n\n readonly sort = output<any>();\n\n protected dataChangedSub: Subscription | false = false;\n\n ngOnChanges(changes: SimpleChanges) {\n if (changes[\"source\"]) {\n if (!changes[\"source\"].firstChange && this.dataChangedSub) {\n this.dataChangedSub.unsubscribe();\n }\n this.dataChangedSub = this.source().onChanged().subscribe((dataChanges) => {\n const sortConf = this.source().getSort();\n\n if (sortConf.length > 0 && sortConf[0][\"field\"] === this.column().id) {\n this.currentDirection = sortConf[0][\"direction\"];\n } else {\n this.currentDirection = \"\";\n }\n });\n }\n }\n\n ngOnDestroy(): void {\n if (this.dataChangedSub) {\n this.dataChangedSub?.unsubscribe();\n }\n }\n\n _sort(event: any) {\n event.preventDefault();\n this.changeSortDirection();\n this.source().setSort([\n {\n field: this.column().id,\n direction: this.currentDirection === \"desc\" ? \"desc\" : \"asc\",\n compare: this.column().getCompareFunction(),\n },\n ]);\n this.sort.emit(null);\n }\n\n changeSortDirection(): string {\n if (this.currentDirection) {\n const newDirection = this.currentDirection === \"asc\" ? \"desc\" : \"asc\";\n this.currentDirection = newDirection;\n } else {\n this.currentDirection = this.column().sortDirection;\n }\n return this.currentDirection;\n }\n}\n","import { Component, input, output } from \"@angular/core\";\n\nimport { Column } from \"../../../lib/data-set/column\";\nimport { LocalDataSource } from \"../../../lib/data-source/local/local.data-source\";\nimport { TitleComponent } from \"./title/title.component\";\n\n@Component({\n selector: \"ng2-st-column-title\",\n template: `\n <div class=\"ng2-smart-title\">\n <ng2-smart-table-title\n [source]=\"source()\"\n [column]=\"column()\"\n (sort)=\"sort.emit($event)\"\n ></ng2-smart-table-title>\n </div>\n `,\n standalone: true,\n imports: [TitleComponent],\n})\nexport class ColumnTitleComponent {\n readonly source = input.required<LocalDataSource>();\n readonly column = input.required<Column>();\n\n readonly sort = output<any>();\n}\n","import { Component, input, output } from \"@angular/core\";\n\nimport { Column } from \"../../../lib/data-set/column\";\nimport { LocalDataSource } from \"../../../lib/data-source/local/local.data-source\";\nimport { Grid } from \"../../../lib/grid\";\nimport { ActionsTitleComponent } from \"../cells/actions-title.component\";\nimport { CheckboxSelectAllComponent } from \"../cells/checkbox-select-all.component\";\nimport { ColumnTitleComponent } from \"../cells/column-title.component\";\n\n@Component({\n selector: \"[ng2-st-thead-titles-row]\",\n template: `\n @if (grid().isMultiSelectVisible()) {\n <th\n ng2-st-checkbox-select-all\n [grid]=\"grid()\"\n (click)=\"selectAllRows.emit($event)\"\n ></th>\n } @if (grid().actionIsOnLeft() && grid().isActionsVisible()) {\n\n <th ng2-st-actions-title [grid]=\"grid()\"></th>\n } @for (column of getVisibleColumns(); track column.id) {\n <th\n class=\"ng2-smart-th {{ column.id }}\"\n [class]=\"column.class\"\n [style.width]=\"column.width\"\n >\n <ng2-st-column-title\n [source]=\"source()\"\n [column]=\"column\"\n (sort)=\"sort.emit($event)\"\n ></ng2-st-column-title>\n </th>\n } @if (grid().actionIsOnRight() && grid().isActionsVisible()) {\n <th ng2-st-actions-title [grid]=\"grid()\"></th>\n }\n `,\n standalone: true,\n imports: [\n CheckboxSelectAllComponent,\n ActionsTitleComponent,\n ColumnTitleComponent,\n ],\n})\nexport class TheadTitlesRowComponent {\n readonly grid = input.required<Grid>();\n readonly source = input.required<LocalDataSource>();\n\n readonly sort = output<any>();\n readonly selectAllRows = output<any>();\n\n getVisibleColumns(): Column[] {\n return (this.grid().getColumns() || []).filter(\n (column: Column) => !column.hide\n );\n }\n}\n","import {\n Component,\n computed,\n EventEmitter,\n input,\n Input,\n output,\n OutputEmitterRef\n} from \"@angular/core\";\nimport { LocalDataSource } from \"./../../lib/data-source/local/local.data-source\";\n\nimport { Grid } from \"../../lib/grid\";\nimport { TheadFiltersRowComponent } from \"./rows/thead-filters-row.component\";\nimport { TheadFormRowComponent } from \"./rows/thead-form-row.component\";\nimport { TheadTitlesRowComponent } from \"./rows/thead-titles-row.component\";\n\n@Component({\n selector: \"[ng2-st-thead]\",\n templateUrl: \"./thead.component.html\",\n standalone: true,\n imports: [\n TheadTitlesRowComponent,\n TheadFiltersRowComponent,\n TheadFormRowComponent,\n ],\n})\nexport class Ng2SmartTableTheadComponent {\n readonly grid = input.required<Grid>();\n readonly source = input.required<LocalDataSource>();\n @Input() createConfirm!: EventEmitter<any> | OutputEmitterRef<any>;\n\n readonly sort = output<any>();\n readonly selectAllRows = output<any>();\n readonly create = output<any>();\n readonly filter = output<any>();\n\n readonly isHideHeader = computed<boolean>(() => {\n return this.grid().settings()?.hideHeader || false;\n });\n\n readonly isHideSubHeader = computed<boolean>(() => {\n return this.grid().settings()?.hideSubHeader || false;\n });\n}\n","@if (!isHideHeader()) {\n <tr ng2-st-thead-titles-row\n class=\"ng2-smart-titles\"\n [grid]=\"grid()\"\n [source]=\"source()\"\n (sort)=\"sort.emit($event)\"\n (selectAllRows)=\"selectAllRows.emit($event)\">\n </tr>\n}\n\n@if (!isHideSubHeader()) {\n <tr ng2-st-thead-filters-row\n class=\"ng2-smart-filters\"\n [grid]=\"grid()\"\n [source]=\"source()\"\n (create)=\"create.emit($event)\"\n (filter)=\"filter.emit($event)\">\n </tr>\n}\n\n@if (grid().createFormShown) {\n <tr ng2-st-thead-form-row\n [grid]=\"grid()\"\n [createConfirm]=\"createConfirm\">\n </tr>\n}\n","import {\n Component,\n Input,\n OnChanges,\n SimpleChange,\n effect,\n output\n} from \"@angular/core\";\n\nimport { PagerComponent } from \"./components/pager/pager.component\";\nimport { Ng2SmartTableTbodyComponent } from \"./components/tbody/tbody.component\";\nimport { Ng2SmartTableTheadComponent } from \"./components/thead/thead.component\";\nimport { Row } from \"./lib/data-set/row\";\nimport { LocalDataSource } from \"./lib/data-source/local/local.data-source\";\nimport { Grid } from \"./lib/grid\";\nimport { getRandomId } from \"./lib/helpers\";\nimport {\n ColumnPositionState,\n SmartTableConfirmDeleteEvent,\n SmartTableConfirmEditEvent,\n SmartTableCreateConfirm,\n SmartTableCustomEvent,\n SmartTableRowClickedEvent,\n SmartTableRowSelectEvent,\n SmartTableSettings,\n} from \"./lib/interfaces/smart-table.models\";\n\n@Component({\n selector: \"ng2-smart-table\",\n styleUrls: [\"./ng2-smart-table.component.scss\"],\n templateUrl: \"./ng2-smart-table.component.html\",\n standalone: true,\n imports: [\n Ng2SmartTableTheadComponent,\n Ng2SmartTableTbodyComponent,\n PagerComponent,\n ],\n})\nexport class Ng2SmartTableComponent implements OnChanges {\n @Input({required: true}) source!: LocalDataSource;\n @Input({required: true}) settings!: SmartTableSettings;\n\n readonly multiRowSelect = output<SmartTableRowSelectEvent>();\n readonly rowClicked = output<SmartTableRowClickedEvent>();\n readonly columnsSorted = output<ColumnPositionState[]>();\n readonly delete = output<any>();\n readonly edit = output<any>();\n readonly editCancel = output<any>();\n readonly create = output<any>();\n readonly custom = output<SmartTableCustomEvent>();\n readonly deleteConfirm = output<SmartTableConfirmDeleteEvent>();\n readonly editConfirm = output<SmartTableConfirmEditEvent>();\n readonly createConfirm = output<SmartTableCreateConfirm>();\n\n tableClass = \"\";\n tableId = \"\";\n perPageSelect: number[] = [];\n isPagerDisplay = false;\n rowClassFunction: (row: any) => string = () => '';\n\n grid!: Grid;\n\n constructor() {\n effect(() => {\n const settings = this.grid.settings();\n this.tableId = settings.attr?.id || getRandomId();\n this.tableClass = settings.attr?.class || '';\n this.isPagerDisplay = this.grid.getSetting(\"pager.display\", false);\n this.perPageSelect = this.grid.getSetting(\"pager.perPageSelect\");\n this.rowClassFunction = settings.rowClassFunction || (() => \"\");\n })\n }\n\n ngOnChanges({settings, source}: Record<string, SimpleChange>) {\n if (this.grid) {\n if (settings) {\n this.grid.setSettings(this.settings);\n }\n if (source) {\n this.source = this.prepareSource();\n this.grid.setSource(this.source);\n }\n } else {\n this.initGrid();\n }\n }\n\n protected multipleSelectRow(row: Row): void {\n this.grid.multipleSelectRow(row);\n this.emitUserSelectRow(row);\n }\n\n protected onSelectAllRows(): void {\n this.grid.selectAllRows(!this.grid.dataSet.isAllSelected);\n this.emitUserSelectRow(null);\n }\n\n protected onSelectRow(row: Row, state: boolean): void {\n this.grid.selectRow(row, state);\n }\n\n protected emitUserRowClicked(row: Row): void {\n this.rowClicked.emit({\n data: row ? row.getData() : null,\n source: this.source,\n });\n }\n\n private initGrid(): void {\n this.source = this.prepareSource();\n this.grid = new Grid(this.source, this.settings);\n this.grid.setColumnsSortedEmitter(this.columnsSorted)\n }\n\n private prepareSource(): LocalDataSource {\n if (this.source instanceof LocalDataSource) {\n return this.source;\n }\n return new LocalDataSource();\n }\n\n private emitUserSelectRow(row: Row | null): void {\n this.multiRowSelect.emit({\n data: row ? row.getData() : null,\n isSelected: row ? row.getIsSelected() : false,\n source: this.source,\n selected: this.grid.dataSet.getSelectedRowsData(),\n });\n }\n}\n","<table [id]=\"tableId\" [class]=\"tableClass\">\n <thead\n ng2-st-thead\n [grid]=\"grid\"\n [source]=\"source\"\n [createConfirm]=\"createConfirm\"\n (create)=\"create.emit($event)\"\n (selectAllRows)=\"onSelectAllRows()\"\n ></thead>\n\n <tbody\n ng2-st-tbody\n [grid]=\"grid\"\n [source]=\"source\"\n [deleteConfirm]=\"deleteConfirm\"\n [editConfirm]=\"editConfirm\"\n [createConfirm]=\"createConfirm\"\n [rowClassFunction]=\"rowClassFunction\"\n (edit)=\"edit.emit($event)\"\n (editCancel)=\"editCancel.emit($event)\"\n (delete)=\"delete.emit($event)\"\n (custom)=\"custom.emit($event)\"\n (userClickedRow)=\"emitUserRowClicked($event)\"\n (multipleSelectRow)=\"multipleSelectRow($event)\"\n ></tbody>\n</table>\n\n@if (isPagerDisplay) {\n<ng2-smart-table-pager [source]=\"source\" [perPageSelect]=\"perPageSelect\">\n</ng2-smart-table-pager>\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;;;;;;;;;;MASa,aAAa,CAAA;AAD1B,IAAA,WAAA,GAAA;AAEW,QAAA,IAAA,CAAA,IAAI,GAAG,KAAK,CAAC,QAAQ,EAAQ;AAC7B,QAAA,IAAA,CAAA,UAAU,GAAG,KAAK,CAAC,EAAE,CAAC;AAChC;8GAHY,aAAa,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAb,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,aAAa,oWADH,EAAE,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,CAAA;;2FACZ,aAAa,EAAA,UAAA,EAAA,CAAA;kBADzB,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA,EAAE,QAAQ,EAAE,EAAE,EAAE,QAAQ,EAAE,mCAAmC,EAAG;;;MCD9D,aAAa,CAAA;AAD1B,IAAA,WAAA,GAAA;QAEE,IAAK,CAAA,KAAA,GAAG,GAAG;QAEH,IAAK,CAAA,KAAA,GAAG,EAAE;AACT,QAAA,IAAA,CAAA,UAAU,GAAG,KAAK,CAAS,EAAE,CAAC;AAC9B,QAAA,IAAA,CAAA,MAAM,GAAG,KAAK,CAAC,QAAQ,EAAmB;AAC1C,QAAA,IAAA,CAAA,MAAM,GAAG,KAAK,CAAC,QAAQ,EAAU;QACjC,IAAM,CAAA,MAAA,GAAG,MAAM,EAAU;AAWnC;IATC,WAAW,GAAA;AACT,QAAA,IAAI,IAAI,CAAC,mBAAmB,EAAE;AAC5B,YAAA,IAAI,CAAC,mBAAmB,CAAC,WAAW,EAAE;;;IAI1C,SAAS,GAAA;QACP,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC;;8GAhBnB,aAAa,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAb,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,aAAa,4nBADH,EAAE,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,CAAA;;2FACZ,aAAa,EAAA,UAAA,EAAA,CAAA;kBADzB,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA,EAAE,QAAQ,EAAE,EAAE,EAAE,QAAQ,EAAE,mCAAmC,EAAE;8BAIhE,KAAK,EAAA,CAAA;sBAAZ;;;ACVH;;;;;;;;AAQG;AACI,MAAM,UAAU,GAAG,UAAS,GAAG,OAAc,EAAA;AAClD,IAAA,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,IAAI,OAAO,OAAO,CAAC,CAAC,CAAC,KAAK,QAAQ,EAAE;AACxD,QAAA,OAAO,KAAK;;AAGd,IAAA,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE;AACtB,QAAA,OAAO,OAAO,CAAC,CAAC,CAAC;;AAGnB,IAAA,MAAM,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC;;AAGzB,IAAA,MAAM,IAAI,GAAG,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;IAEnD,IAAI,GAAG,EAAE,GAAG;AAEZ,IAAA,IAAI,CAAC,OAAO,CAAC,CAAC,GAAQ,KAAI;;AAExB,QAAA,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;YACjD;;QAGF,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,UAAU,GAAG,EAAA;AACpC,YAAA,GAAG,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;AAClB,YAAA,GAAG,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC;;AAGf,YAAA,IAAI,GAAG,KAAK,MAAM,EAAE;gBAClB;AAEA;;;AAGG;;iBACE,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,GAAG,KAAK,IAAI,EAAE;AAClD,gBAAA,MAAM,CAAC,GAAG,CAAC,GAAG,GAAG;gBACjB;;;AAGK,iBAAA,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;gBAC7B,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC;gBACtB;;;AAGK,iBAAA,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,GAAG,KAAK,IAAI,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;gBACxE,MAAM,CAAC,GAAG,CAAC,GAAG,UAAU,CAAC,EAAE,EAAE,GAAG,CAAC;gBACjC;;;iBAGK;gBACL,MAAM,CAAC,GAAG,CAAC,GAAG,UAAU,CAAC,GAAG,EAAE,GAAG,CAAC;gBAClC;;AAEJ,SAAC,CAAC;AACJ,KAAC,CAAC;AAEF,IAAA,OAAO,MAAM;AACf,CAAC;MAEY,QAAQ,CAAA;AAKnB,IAAA,WAAA,GAAA;QACE,IAAI,CAAC,OAAO,GAAG,IAAI,OAAO,CAAI,CAAC,OAAO,EAAE,MAAM,KAAI;AAChD,YAAA,IAAI,CAAC,OAAO,GAAG,OAAc;AAC7B,YAAA,IAAI,CAAC,MAAM,GAAG,MAAM;AACtB,SAAC,CAAC;;AAEL;AAED;AACM,SAAU,iBAAiB,CAAC,MAAM,GAAG,EAAE,EAAE,IAAY,EAAE,YAAA,GAAoB,IAAI,EAAA;AACnF,IAAA,IAAI;QACF,IAAI,KAAK,GAAG,UAAU,CAAC,EAAE,EAAE,MAAM,CAAC;QAClC,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC;AAC5B,QAAA,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE;YACrB,OAAO,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,YAAY;;AAEvC,QAAA,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,KAAI;YACjB,IAAI,KAAK,IAAI,OAAO,KAAK,CAAC,CAAC,CAAC,KAAK,WAAW,EAAE;AAC5C,gBAAA,KAAK,GAAG,KAAK,CAAC,CAAC,CAAC;;iBACV;gBACN,KAAK,GAAG,YAAY;;AAExB,SAAC,CAAC;QACF,OAAO,KAAK,IAAI,YAAY;;AAC5B,IAAA,MAAM;AACN,QAAA,OAAO,YAAY;;AAEvB;AAEgB,SAAA,kBAAkB,CAAC,KAAa,EAAE,OAAe,EAAA;;IAE/D,OAAO,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC;AACxC;AAEM,SAAU,kBAAkB,CAAI,KAAU,EAAA;AAC9C,IAAA,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,KAAK,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC;AACnD;AAEM,SAAU,WAAW,CAAC,MAAM,GAAG,EAAE,EAAE,MAAM,GAAG,EAAE,EAAA;AAClD,IAAA,OAAO,GAAG,MAAM,GAAG,CAAA,EAAG,MAAM,CAAG,CAAA,CAAA,GAAG,EAAE,CAAG,EAAA,IAAI,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA,EAAG,MAAM,GAAG,CAAA,CAAA,EAAI,MAAM,CAAE,CAAA,GAAG,EAAE,EAAE;AAC3G;AAEgB,SAAA,eAAe,CAAC,GAAW,EAAE,KAAgC,EAAA;AAC3E,IAAA,YAAY,CAAC,OAAO,CAAC,GAAG,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;AAClD;AAEM,SAAU,eAAe,CAAa,GAAW,EAAA;IACrD,MAAM,WAAW,GAAG,YAAY,CAAC,OAAO,CAAC,GAAG,CAAC;IAC7C,IAAI,CAAC,WAAW,EAAE;AAChB,QAAA,OAAO,IAAI;;AAEb,IAAA,IAAI;AACF,QAAA,OAAO,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC;;AAC9B,IAAA,MAAM;AACN,QAAA,OAAO,IAAI;;AAEf;;MC/Ga,2BAA2B,CAAA;AAStC,IAAA,WAAA,GAAA;QARU,IAAQ,CAAA,QAAA,GAClB,8EAA8E;QACvE,IAAI,CAAA,IAAA,GAAG,KAAK,EAAQ;AACpB,QAAA,IAAA,CAAA,KAAK,GAAG,KAAK,CAAC,QAAQ,EAAc;QAEjC,IAAY,CAAA,YAAA,GAA0B,EAAE;AAClD,QAAA,IAAA,CAAA,eAAe,GAAG,MAAM,CAAC,KAAK,CAAC;QAG7B,MAAM,CAAC,MAAK;AACV,YAAA,IAAI,CAAC,YAAY,GAAG,kBAAkB,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,uBAAuB,IAAI,EAAE,CAAC;AACpF,SAAC,CAAC;;IAGJ,YAAY,GAAA;AACV,QAAA,IAAI,CAAC,YAAY,GAAG,kBAAkB,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,uBAAuB,IAAI,EAAE,CAAC;AAClF,QAAA,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,KAAK,CAAC;;AAGjC,IAAA,IAAI,CAAC,KAAyC,EAAA;AAC5C,QAAA,eAAe,CACb,IAAI,CAAC,YAAY,EACjB,KAAK,CAAC,aAAa,EACnB,KAAK,CAAC,YAAY,CACnB;QACD,IAAI,CAAC,kBAAkB,EAAE;;AAG3B,IAAA,aAAa,CAAC,KAAa,EAAA;AACzB,QAAA,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,IAAI,GAAG,CAAC,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,IAAI;QAC9D,IAAI,CAAC,kBAAkB,EAAE;;IAG3B,YAAY,GAAA;QACV,IAAI,CAAC,IAAI,EAAE,EAAE,qBAAqB,CAAC,IAAI,CAAC,YAAY,CAAC;AACrD,QAAA,IAAI,CAAC,KAAK,EAAE,EAAE;AACd,QAAA,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,KAAK,CAAC;;IAGzB,kBAAkB,GAAA;QACxB,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,uBAAuB,CAAC,KAAK,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;;8GAzC3G,2BAA2B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAA3B,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,2BAA2B,4UClBxC,okDAmDA,EAAA,MAAA,EAAA,CAAA,soEAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EDnCY,WAAW,EAAE,QAAA,EAAA,8BAAA,EAAA,MAAA,EAAA,CAAA,wBAAA,EAAA,iBAAA,EAAA,wBAAA,EAAA,IAAA,EAAA,qBAAA,EAAA,qBAAA,EAAA,4BAAA,EAAA,2BAAA,EAAA,0BAAA,EAAA,+BAAA,EAAA,2BAAA,EAAA,6BAAA,CAAA,EAAA,OAAA,EAAA,CAAA,oBAAA,EAAA,oBAAA,EAAA,mBAAA,EAAA,mBAAA,CAAA,EAAA,QAAA,EAAA,CAAA,aAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,OAAO,wcAAE,kBAAkB,EAAA,QAAA,EAAA,iCAAA,EAAA,MAAA,EAAA,CAAA,MAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;2FAEvC,2BAA2B,EAAA,UAAA,EAAA,CAAA;kBANvC,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,0BAA0B,WAG3B,CAAC,WAAW,EAAE,OAAO,EAAE,kBAAkB,CAAC,EAAA,QAAA,EAAA,okDAAA,EAAA,MAAA,EAAA,CAAA,soEAAA,CAAA,EAAA;;;MEMxC,+BAA+B,CAAA;AAN5C,IAAA,WAAA,GAAA;QAOE,IAAc,CAAA,cAAA,GAAG,KAAK,EAA0B;AAE/B,QAAA,IAAA,CAAA,IAAI,GAAG,QAAQ,CAAC,MAAK;AACpC,YAAA,OAAO,IAAI,CAAC,cAAc,EAAE,EAAE,IAAI;AACpC,SAAC,CAAC;AAEe,QAAA,IAAA,CAAA,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC;AACzB,QAAA,IAAA,CAAA,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC;AAC/B,QAAA,IAAA,CAAA,QAAQ,GAAG,IAAI,OAAO,EAAQ;AAkFhD;IA5EC,WAAW,GAAA;AACT,QAAA,IAAI,CAAC,UAAU,EAAE,OAAO,EAAE;AAC1B,QAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE;AACpB,QAAA,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE;;IAGhB,YAAY,GAAA;AACpB,QAAA,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,gBAAgB,EAAE,CAAC;AAC9D,QAAA,MAAM,eAAe,GAAG,IAAI,eAAe,CAAC,2BAA2B,CAAC;QACxE,MAAM,WAAW,GACf,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,eAAe,CAAC;QACzC,WAAW,CAAC,QAAQ,CAAC,MAAM,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC;AACzC,QAAA,WAAW,CAAC,QAAQ,CAAC,OAAO,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACnD,IAAI,CAAC,UAAU,EAAE,aAAa,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,MAAM,IAAI,CAAC,IAAI,EAAE,CAAC;;IAGvF,IAAI,GAAA;AACT,QAAA,IAAI,CAAC,UAAU,EAAE,MAAM,EAAE;AACzB,QAAA,IAAI,CAAC,UAAU,EAAE,OAAO,EAAE;AAC1B,QAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE;;IAGtB,WAAW,GAAA;QACT,IAAI,CAAC,YAAY,EAAE;;IAGb,gBAAgB,GAAA;AACtB,QAAA,MAAM,gBAAgB,GAAG,IAAI,CAAC;AAC3B,aAAA,QAAQ;AACR,aAAA,mBAAmB,CAAC,IAAI,CAAC,UAAU;aACnC,QAAQ,CAAC,KAAK;AACd,aAAA,aAAa,CAAC;AACb,YAAA;AACE,gBAAA,OAAO,EAAE,QAAQ;AACjB,gBAAA,OAAO,EAAE,QAAQ;AACjB,gBAAA,QAAQ,EAAE,KAAK;AACf,gBAAA,QAAQ,EAAE,KAAK;AAChB,aAAA;AACD,YAAA;AACE,gBAAA,OAAO,EAAE,QAAQ;AACjB,gBAAA,OAAO,EAAE,QAAQ;AACjB,gBAAA,QAAQ,EAAE,QAAQ;AAClB,gBAAA,QAAQ,EAAE,KAAK;AAChB,aAAA;AACD,YAAA;AACE,gBAAA,OAAO,EAAE,QAAQ;AACjB,gBAAA,OAAO,EAAE,QAAQ;AACjB,gBAAA,QAAQ,EAAE,OAAO;AACjB,gBAAA,QAAQ,EAAE,KAAK;AAChB,aAAA;AACD,YAAA;AACE,gBAAA,OAAO,EAAE,QAAQ;AACjB,gBAAA,OAAO,EAAE,KAAK;AACd,gBAAA,QAAQ,EAAE,OAAO;AACjB,gBAAA,QAAQ,EAAE,QAAQ;AACnB,aAAA;AACD,YAAA;AACE,gBAAA,OAAO,EAAE,QAAQ;AACjB,gBAAA,OAAO,EAAE,KAAK;AACd,gBAAA,QAAQ,EAAE,QAAQ;AAClB,gBAAA,QAAQ,EAAE,QAAQ;AACnB,aAAA;AACD,YAAA;AACE,gBAAA,OAAO,EAAE,QAAQ;AACjB,gBAAA,OAAO,EAAE,KAAK;AACd,gBAAA,QAAQ,EAAE,OAAO;AACjB,gBAAA,QAAQ,EAAE,QAAQ;AACnB,aAAA;AACF,SAAA,CAAC;QAEJ,OAAO,IAAI,aAAa,CAAC;AACvB,YAAA,gBAAgB,EAAE,gBAAgB;AAClC,YAAA,WAAW,EAAE,IAAI;AACjB,YAAA,aAAa,EAAE,kCAAkC;AAClD,SAAA,CAAC;;8GAzFO,+BAA+B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;kGAA/B,+BAA+B,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,6BAAA,EAAA,MAAA,EAAA,EAAA,cAAA,EAAA,EAAA,iBAAA,EAAA,gBAAA,EAAA,UAAA,EAAA,gBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,OAAA,EAAA,eAAA,EAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;2FAA/B,+BAA+B,EAAA,UAAA,EAAA,CAAA;kBAN3C,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,6BAA6B;AACvC,oBAAA,IAAI,EAAE;AACJ,wBAAA,SAAS,EAAE,eAAe;AAC3B,qBAAA;AACF,iBAAA;;;MCjBY,IAAI,CAAA;AAIf,IAAA,WAAA,CAAsB,KAAU,EAAY,GAAQ,EAAY,MAAc,EAAY,OAAgB,EAAA;QAApF,IAAK,CAAA,KAAA,GAAL,KAAK;QAAiB,IAAG,CAAA,GAAA,GAAH,GAAG;QAAiB,IAAM,CAAA,MAAA,GAAN,MAAM;QAAoB,IAAO,CAAA,OAAA,GAAP,OAAO;AAHzF,QAAA,IAAA,CAAA,YAAY,GAAG,CAAC,KAAU,KAAK,KAAK;QAC5C,IAAQ,CAAA,QAAA,GAAQ,EAAE;AAGhB,QAAA,IAAI,CAAC,QAAQ,GAAG,KAAK;;IAGvB,SAAS,GAAA;QACP,OAAO,IAAI,CAAC,MAAM;;IAGpB,cAAc,GAAA;AACZ,QAAA,OAAO,IAAI,CAAC,MAAM,CAAC,KAAK;;IAG1B,MAAM,GAAA;QACJ,OAAO,IAAI,CAAC,GAAG;;IAGjB,QAAQ,GAAA;AACN,QAAA,MAAM,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,uBAAuB,EAAE,IAAI,IAAI,CAAC,YAAY;AAC1E,QAAA,OAAO,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,EAAE,IAAI,CAAC;;IAGjE,kBAAkB,GAAA;QAChB,OAAO,IAAI,CAAC,KAAK;;AAGnB,IAAA,QAAQ,CAAC,KAAU,EAAA;AACjB,QAAA,IAAI,CAAC,QAAQ,GAAG,KAAK;;IAGvB,KAAK,GAAA;AACH,QAAA,OAAO,IAAI,CAAC,SAAS,EAAE,CAAC,EAAE;;IAG5B,QAAQ,GAAA;AACN,QAAA,OAAO,IAAI,CAAC,SAAS,EAAE,CAAC,KAAK;;IAG/B,UAAU,GAAA;QACR,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC,KAAK,KAAK,CAAC,CAAC,EAAE;AAC9B,YAAA,OAAO,IAAI,CAAC,SAAS,EAAE,CAAC,SAAS;;aAE9B;AACH,YAAA,OAAO,IAAI,CAAC,SAAS,EAAE,CAAC,UAAU;;;AAIvC;;MClDY,MAAM,CAAA;AAmBjB,IAAA,WAAA,CAAmB,EAAU,EAAU,QAAkC,EAAY,OAAgB,EAAA;QAAlF,IAAE,CAAA,EAAA,GAAF,EAAE;QAAkB,IAAQ,CAAA,QAAA,GAAR,QAAQ;QAAsC,IAAO,CAAA,OAAA,GAAP,OAAO;QAlB5F,IAAK,CAAA,KAAA,GAAG,EAAE;QACV,IAAI,CAAA,IAAA,GAAkC,MAAM;QAC5C,IAAK,CAAA,KAAA,GAAG,EAAE;QACV,IAAK,CAAA,KAAA,GAAG,EAAE;QACV,IAAI,CAAA,IAAA,GAAG,KAAK;QACZ,IAAU,CAAA,UAAA,GAAG,KAAK;QAClB,IAAU,CAAA,UAAA,GAAG,IAAI;QACjB,IAAS,CAAA,SAAA,GAAG,IAAI;QAChB,IAAY,CAAA,YAAA,GAAG,KAAK;QACpB,IAAa,CAAA,aAAA,GAA4B,KAAK;QAC9C,IAAoB,CAAA,oBAAA,GAAoC,KAAK;QAC7D,IAAM,CAAA,MAAA,GAAsC,KAAK;QACjD,IAAM,CAAA,MAAA,GAAsC,KAAK;AAO/C,QAAA,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC;;IAG7B,kBAAkB,GAAA;QAChB,OAAO,IAAI,CAAC,eAAe;;IAG7B,uBAAuB,GAAA;QACrB,OAAO,IAAI,CAAC,oBAAoB;;IAGlC,iBAAiB,GAAA;QACf,OAAO,IAAI,CAAC,cAAc;;IAG5B,SAAS,GAAA;AACP,QAAA,IAAI,IAAI,CAAC,MAAM,KAAK,IAAI,CAAC,MAAM,CAAC,IAAI,KAAK,UAAU,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,KAAK,QAAQ,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,KAAK,MAAM,CAAC,EAAE;AACpH,YAAA,OAAO,IAAI,CAAC,MAAM,EAAE,MAAM;;AAE5B,QAAA,OAAO,KAAK;;IAGd,aAAa,GAAA;QACX,OAAO,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI;;IAGxC,eAAe,GAAA;AACb,QAAA,IAAI,IAAI,CAAC,MAAM,KAAK,IAAI,CAAC,MAAM,CAAC,IAAI,KAAK,UAAU,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,KAAK,QAAQ,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,KAAK,MAAM,CAAC,EAAE;AACpH,YAAA,OAAO,IAAI,CAAC,MAAM,EAAE,MAAM;;AAE5B,QAAA,OAAO,KAAK;;AAGJ,IAAA,OAAO,CAAC,QAAkC,EAAA;AAClD,QAAA,IAAI,CAAC,KAAK,GAAG,QAAQ,CAAC,KAAK;QAC3B,IAAI,CAAC,KAAK,GAAG,QAAQ,CAAC,KAAK,IAAI,EAAE;QACjC,IAAI,CAAC,KAAK,GAAG,QAAQ,CAAC,KAAK,IAAI,EAAE;QACjC,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC,QAAQ,CAAC,IAAI;AAC3B,QAAA,IAAI,CAAC,IAAI,GAAG,QAAQ,CAAC,IAAI;AACzB,QAAA,IAAI,QAAQ,EAAE,MAAM,EAAE;AACpB,YAAA,IAAI,CAAC,MAAM,GAAG,QAAQ,CAAC,MAAM;;AAE/B,QAAA,IAAI,QAAQ,EAAE,MAAM,EAAE;AACpB,YAAA,IAAI,CAAC,MAAM,GAAG,QAAQ,CAAC,MAAM;;QAE/B,IAAI,QAAQ,CAAC,IAAI,KAAK,QAAQ,IAAI,QAAQ,CAAC,eAAe,EAAE;AAC1D,YAAA,IAAI,CAAC,eAAe,GAAG,QAAQ,CAAC,eAAe;;QAEjD,IAAI,CAAC,YAAY,GAAG,OAAO,QAAQ,CAAC,MAAM,KAAK,WAAW,GAAG,IAAI,GAAG,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC;QACxF,IAAI,CAAC,oBAAoB,GAAG,QAAQ,EAAE,aAAa,IAAI,KAAK;AAC5D,QAAA,IAAI,CAAC,UAAU,GAAG,OAAO,QAAQ,CAAC,IAAI,KAAK,WAAW,GAAG,IAAI,GAAG,QAAQ,CAAC,IAAI;AAC7E,QAAA,IAAI,CAAC,UAAU,GAAG,OAAO,QAAQ,CAAC,QAAQ,KAAK,WAAW,GAAG,IAAI,GAAG,QAAQ,CAAC,QAAQ;AACrF,QAAA,IAAI,CAAC,SAAS,GAAC,OAAO,QAAQ,CAAC,OAAO,KAAK,WAAW,GAAG,IAAI,GAAG,QAAQ,CAAC,OAAO;AAChF,QAAA,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,oBAAoB,EAAE;AAEhD,QAAA,IAAI,CAAC,eAAe,GAAG,QAAQ,CAAC,eAAe;AAC/C,QAAA,IAAI,CAAC,oBAAoB,GAAG,QAAQ,CAAC,oBAAoB;AACzD,QAAA,IAAI,CAAC,cAAc,GAAG,QAAQ,CAAC,cAAc;;IAG/C,oBAAoB,GAAA;AAClB,QAAA,OAAO,IAAI,CAAC,oBAAoB,KAAK,MAAM,GAAG,MAAM,GAAG,KAAK;;AAE/D;;MCnFY,GAAG,CAAA;AAQd,IAAA,WAAA,CAAmB,KAAa,EAAU,IAAS,EAAY,QAAiB,EAAA;QAA7D,IAAK,CAAA,KAAA,GAAL,KAAK;QAAkB,IAAI,CAAA,IAAA,GAAJ,IAAI;QAAiB,IAAQ,CAAA,QAAA,GAAR,QAAQ;QANvE,IAAO,CAAA,OAAA,GAAG,KAAK;QACf,IAAU,CAAA,UAAA,GAAG,KAAK;QAClB,IAAW,CAAA,WAAA,GAAG,KAAK;QACnB,IAAK,CAAA,KAAA,GAAW,EAAE;QAIhB,IAAI,CAAC,OAAO,EAAE;;AAGhB,IAAA,OAAO,CAAC,MAAc,EAAA;AACpB,QAAA,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,CAAC,SAAS,EAAE,KAAK,MAAM,CAAC;;IAGzD,QAAQ,GAAA;QACN,OAAO,IAAI,CAAC,KAAK;;IAGnB,OAAO,GAAA;QACL,OAAO,IAAI,CAAC,IAAI;;IAGlB,aAAa,GAAA;QACX,OAAO,IAAI,CAAC,UAAU;;IAGxB,UAAU,GAAA;AACR,QAAA,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,IAAI,CAAC,IAAI,CAAC;QAC3C,IAAI,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC;AAC9E,QAAA,OAAO,MAAM;;AAGf,IAAA,OAAO,CAAQ,IAAO,EAAA;AACpB,QAAA,IAAI,CAAC,IAAI,GAAG,IAAI;QAChB,IAAI,CAAC,OAAO,EAAE;;IAGhB,OAAO,GAAA;AACL,QAAA,IAAI,CAAC,KAAK,GAAG,EAAE;QACf,IAAI,CAAC,QAAQ,CAAC,UAAU,EAAE,CAAC,OAAO,CAAC,CAAC,MAAc,KAAI;YACpD,MAAM,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC;AACpC,YAAA,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC;AACvB,SAAC,CAAC;;AAGJ,IAAA,UAAU,CAAC,MAAc,EAAA;AACvB,QAAA,MAAM,QAAQ,GAAI,MAAc,CAAC,QAAQ,CAAC,YAAY,GAAI,MAAc,CAAC,QAAQ,CAAC,YAAY,GAAG,EAAE;AACnG,QAAA,MAAM,KAAK,GAAG,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,KAAK,WAAW,GAAG,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;AAC3F,QAAA,OAAO,IAAI,IAAI,CAAC,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,QAAQ,CAAC;;AAEtD;;ICyJW;AAAZ,CAAA,UAAY,4BAA4B,EAAA;AACvC,IAAA,4BAAA,CAAA,MAAA,CAAA,GAAA,MAAe;AACf,IAAA,4BAAA,CAAA,QAAA,CAAA,GAAA,QAAmB;AACnB,IAAA,4BAAA,CAAA,QAAA,CAAA,GAAA,QAAmB;AACnB,IAAA,4BAAA,CAAA,MAAA,CAAA,GAAA,MAAe;AACf,IAAA,4BAAA,CAAA,QAAA,CAAA,GAAA,QAAmB;AACnB,IAAA,4BAAA,CAAA,OAAA,CAAA,GAAA,OAAiB;AACjB,IAAA,4BAAA,CAAA,MAAA,CAAA,GAAA,MAAe;AACf,IAAA,4BAAA,CAAA,KAAA,CAAA,GAAA,KAAa;AACb,IAAA,4BAAA,CAAA,QAAA,CAAA,GAAA,QAAmB;AACnB,IAAA,4BAAA,CAAA,QAAA,CAAA,GAAA,QAAmB;AACnB,IAAA,4BAAA,CAAA,SAAA,CAAA,GAAA,SAAqB;AACrB,IAAA,4BAAA,CAAA,SAAA,CAAA,GAAA,SAAqB;AACtB,CAAC,EAbW,4BAA4B,KAA5B,4BAA4B,GAavC,EAAA,CAAA,CAAA;;MC1NqB,UAAU,CAAA;AAAhC,IAAA,WAAA,GAAA;AAEY,QAAA,IAAA,CAAA,eAAe,GAAG,IAAI,OAAO,EAA4B;AACzD,QAAA,IAAA,CAAA,aAAa,GAAG,IAAI,OAAO,EAAO;AAClC,QAAA,IAAA,CAAA,eAAe,GAAG,IAAI,OAAO,EAAO;AACpC,QAAA,IAAA,CAAA,eAAe,GAAG,IAAI,OAAO,EAAO;;IAS9C,OAAO,GAAA;AACL,QAAA,IAAI,CAAC,aAAa,CAAC,4BAA4B,CAAC,OAAO,CAAC;;IAG1D,QAAQ,GAAA;AACN,QAAA,IAAI,CAAC,aAAa,CAAC,4BAA4B,CAAC,IAAI,CAAC;AACrD,QAAA,OAAO,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC;;IAG9B,SAAS,GAAA;AACP,QAAA,OAAO,IAAI,CAAC,eAAe,CAAC,YAAY,EAAE;;IAG5C,OAAO,GAAA;AACL,QAAA,OAAO,IAAI,CAAC,aAAa,CAAC,YAAY,EAAE;;IAG1C,SAAS,GAAA;AACP,QAAA,OAAO,IAAI,CAAC,eAAe,CAAC,YAAY,EAAE;;IAG5C,SAAS,GAAA;AACP,QAAA,OAAO,IAAI,CAAC,eAAe,CAAC,YAAY,EAAE;;AAG5C,IAAA,WAAW,CAAC,OAAU,EAAA;AACpB,QAAA,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC;AACzB,QAAA,IAAI,CAAC,aAAa,CAAC,4BAA4B,CAAC,OAAO,CAAC;AACxD,QAAA,OAAO,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC;;AAG9B,IAAA,UAAU,CAAC,OAAU,EAAA;AACnB,QAAA,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC;AACzB,QAAA,IAAI,CAAC,aAAa,CAAC,4BAA4B,CAAC,MAAM,CAAC;AACvD,QAAA,OAAO,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC;;AAG9B,IAAA,OAAO,CAAC,OAAU,EAAA;AAChB,QAAA,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC;AACzB,QAAA,IAAI,CAAC,aAAa,CAAC,4BAA4B,CAAC,GAAG,CAAC;AACpD,QAAA,OAAO,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC;;AAG9B,IAAA,UAAU,CAAC,OAAU,EAAA;AACnB,QAAA,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC;AAC3B,QAAA,IAAI,CAAC,aAAa,CAAC,4BAA4B,CAAC,MAAM,CAAC;AACvD,QAAA,OAAO,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC;;AAG9B,IAAA,UAAU,CAAC,OAAU,EAAA;AACnB,QAAA,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC;AAC3B,QAAA,IAAI,CAAC,aAAa,CAAC,4BAA4B,CAAC,MAAM,CAAC;AACvD,QAAA,OAAO,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC;;IAG9B,SAAS,GAAA;AACP,QAAA,IAAI,CAAC,aAAa,CAAC,4BAA4B,CAAC,KAAK,CAAC;AACtD,QAAA,OAAO,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC;;IAG9B,WAAW,GAAA;AACT,QAAA,IAAI,CAAC,aAAa,CAAC,4BAA4B,CAAC,IAAI,CAAC;;IAGvD,aAAa,GAAA;AACX,QAAA,IAAI,CAAC,aAAa,CAAC,4BAA4B,CAAC,MAAM,CAAC;;IAGzD,aAAa,GAAA;AACX,QAAA,IAAI,CAAC,aAAa,CAAC,4BAA4B,CAAC,MAAM,CAAC;;IAGzD,aAAa,GAAA;AACX,QAAA,IAAI,CAAC,aAAa,CAAC,4BAA4B,CAAC,MAAM,CAAC;;IAGzD,WAAW,GAAA;AACT,QAAA,IAAI,CAAC,aAAa,CAAC,4BAA4B,CAAC,IAAI,CAAC;;AAG7C,IAAA,aAAa,CAAC,OAAU,EAAA;AAChC,QAAA,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,OAAO,CAAC;;AAG1B,IAAA,aAAa,CAAC,OAAU,EAAA;AAChC,QAAA,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,OAAO,CAAC;;AAG1B,IAAA,WAAW,CAAC,OAAU,EAAA;AAC9B,QAAA,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC;;AAGxB,IAAA,aAAa,CAAC,MAAoC,EAAA;AAC1D,QAAA,IAAI,CAAC,WAAW,EAAE,CAAC,IAAI,CAAC,CAAC,QAAQ,KAAK,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC;AAC9D,YAAA,MAAM,EAAE,MAAM;AACd,YAAA,QAAQ,EAAE,QAAQ;AAClB,YAAA,MAAM,EAAE,IAAI,CAAC,SAAS,EAAE;AACxB,YAAA,MAAM,EAAE,IAAI,CAAC,SAAS,EAAE;AACxB,YAAA,IAAI,EAAE,IAAI,CAAC,OAAO,EAAE;AACrB,SAAA,CAAC,CAAC;;AAEN;;ACvHe,SAAA,YAAY,CAAC,KAAa,EAAE,MAAc,EAAA;AACxD,IAAA,OAAO,KAAK,CAAC,QAAQ,EAAE,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,WAAW,EAAE,CAAC;AACjF;MAEa,WAAW,CAAA;IACtB,OAAO,MAAM,CAAC,IAAW,EAAE,KAAa,EAAE,MAAc,EAAE,YAAuB,EAAA;QAC/E,MAAM,MAAM,GAAa,YAAY,GAAG,YAAY,GAAG,YAAY;AAEnE,QAAA,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC,EAAE,KAAI;YACxB,MAAM,KAAK,GAAG,OAAO,EAAE,CAAC,KAAK,CAAC,KAAK,WAAW,IAAI,EAAE,CAAC,KAAK,CAAC,KAAK,IAAI,GAAG,EAAE,GAAG,EAAE,CAAC,KAAK,CAAC;YACrF,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,MAAM,CAAC;AACzC,SAAC,CAAC;;AAEL;;MCbY,UAAU,CAAA;AAErB,IAAA,OAAO,QAAQ,CAAC,IAAgB,EAAE,IAAY,EAAE,OAAe,EAAA;AAC7D,QAAA,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,IAAI,IAAI,GAAG,CAAC,CAAC,EAAE,OAAO,GAAG,IAAI,CAAC;;AAE1D;;SCHe,aAAa,CAAC,SAAiB,EAAE,CAAM,EAAE,CAAM,EAAA;AAC7D,IAAA,IAAI,CAAC,GAAG,CAAC,EAAE;AACT,QAAA,OAAO,CAAC,CAAC,GAAG,SAAS;;AAEvB,IAAA,IAAI,CAAC,GAAG,CAAC,EAAE;AACT,QAAA,OAAO,SAAS;;AAElB,IAAA,OAAO,CAAC;AACV;MAEa,WAAW,CAAA;IACtB,OAAO,IAAI,CACT,IAAS,EACT,KAAa,EACb,SAAiB,EACjB,aAAyC,EAAA;AAEzC,QAAA,MAAM,GAAG,GAAW,SAAS,KAAK,KAAK,GAAG,CAAC,GAAG,CAAC,CAAC;QAChD,MAAM,OAAO,GAAG,aAAa,GAAG,aAAa,GAAG,aAAa;QAE7D,OAAO,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,KAAI;AACxB,YAAA,OAAO,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,EAAE,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC;AACpD,SAAC,CAAC;;AAEL;;ACnBK,MAAO,eAAqD,SAAQ,UAAa,CAAA;AAWrF,IAAA,WAAA,CAAY,OAAY,EAAE,EAAA;AACxB,QAAA,KAAK,EAAE;QAVC,IAAI,CAAA,IAAA,GAAQ,EAAE;QACd,IAAiB,CAAA,iBAAA,GAAQ,EAAE;QAC3B,IAAQ,CAAA,QAAA,GAAyB,EAAE;AACnC,QAAA,IAAA,CAAA,UAAU,GAAyB;AAC3C,YAAA,OAAO,EAAE,EAAE;AACX,YAAA,WAAW,EAAE,IAAI;SAClB;QACS,IAAU,CAAA,UAAA,GAAiC,KAAK;AAKxD,QAAA,IAAI,CAAC,IAAI,GAAG,IAAI;;AAGlB,IAAA,IAAI,CAAC,IAAS,EAAA;AACZ,QAAA,IAAI,CAAC,IAAI,GAAG,IAAI;AAChB,QAAA,OAAO,KAAK,CAAC,QAAQ,EAAE;;AAGzB,IAAA,OAAO,CAAC,OAAU,EAAA;AAChB,QAAA,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC;AAChB,QAAA,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC;AAC1B,QAAA,OAAO,KAAK,CAAC,WAAW,CAAC,OAAO,CAAC;;AAGnC,IAAA,UAAU,CAAC,QAAa,EAAA;AACtB,QAAA,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC;AAChB,QAAA,IAAI,CAAC,IAAI,GAAG,CAAC,GAAG,IAAI,CAAC,IAAI,EAAE,GAAG,QAAQ,CAAC;AACvC,QAAA,OAAO,KAAK,CAAC,QAAQ,EAAE;;AAGzB,IAAA,MAAM,CAAC,OAAU,EAAA;AACf,QAAA,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC;AAEhB,QAAA,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC;AACvB,QAAA,OAAO,KAAK,CAAC,UAAU,CAAC,OAAO,CAAC;;AAGlC,IAAA,GAAG,CAAC,OAAU,EAAA;AACZ,QAAA,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC;AACvB,QAAA,OAAO,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC;;AAG/B,IAAA,MAAM,CAAC,OAAU,EAAA;AACf,QAAA,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,KAAK,OAAO,CAAC;AAClD,QAAA,OAAO,KAAK,CAAC,UAAU,CAAC,OAAO,CAAC;;IAGlC,MAAM,CAAC,OAAU,EAAE,MAAS,EAAA;QAC1B,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,KAAI;YACrC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,KAAI;AAChC,gBAAA,KAAK,GAAG,UAAU,CAAC,KAAY,EAAE,MAAM,CAAC;AACxC,gBAAA,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC;AACrD,aAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC;AAClB,SAAC,CAAC;;AAGJ,IAAA,IAAI,CAAC,OAAU,EAAA;AACb,QAAA,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,KAAK,OAAO,CAAC;QAClD,IAAI,KAAK,EAAE;AACT,YAAA,OAAO,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC;;QAE/B,OAAO,OAAO,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,sCAAsC,CAAC,CAAC;;IAG1E,WAAW,GAAA;QACT,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;QAC/B,OAAO,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;;IAGhD,oBAAoB,GAAA;QAClB,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;AAC/B,QAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC;QACtB,OAAO,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,iBAAiB,CAAC;;IAGhD,MAAM,GAAA;QACJ,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;AAC/B,QAAA,OAAO,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC;;IAG9B,KAAK,CAAC,MAAM,GAAG,KAAK,EAAA;QAClB,IAAI,MAAM,EAAE;YACV,IAAI,CAAC,UAAU,GAAG;AAChB,gBAAA,OAAO,EAAE,EAAE;AACX,gBAAA,WAAW,EAAE,IAAI;aAClB;AACD,YAAA,IAAI,CAAC,QAAQ,GAAG,EAAE;AAClB,YAAA,IAAI,IAAI,CAAC,UAAU,EAAE;AACnB,gBAAA,IAAI,CAAC,UAAU,CAAC,IAAI,GAAG,CAAC;;;aAErB;YACL,IAAI,CAAC,SAAS,CAAC,EAAE,EAAE,IAAI,EAAE,KAAK,CAAC;AAC/B,YAAA,IAAI,CAAC,OAAO,CAAC,EAAE,EAAE,KAAK,CAAC;AACvB,YAAA,IAAI,IAAI,CAAC,UAAU,EAAE;AACnB,gBAAA,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;;;;IAKrB,KAAK,GAAA;AACH,QAAA,IAAI,CAAC,IAAI,GAAG,EAAE;AACd,QAAA,OAAO,KAAK,CAAC,SAAS,EAAE;;IAG1B,KAAK,GAAA;AACH,QAAA,OAAO,IAAI,CAAC,iBAAiB,CAAC,MAAM;;AAGtC;;;;;;;;;AASG;AACH,IAAA,OAAO,CAAC,IAA0B,EAAE,MAAM,GAAG,IAAI,EAAA;AAC/C,QAAA,IAAI,IAAI,KAAK,IAAI,EAAE;AACjB,YAAA,IAAI,CAAC,OAAO,CAAC,CAAC,SAAS,KAAI;AACzB,gBAAA,IAAI,CAAC,SAAS,CAAC,KAAK,IAAI,OAAO,SAAS,CAAC,SAAS,KAAK,WAAW,EAAE;AAClE,oBAAA,MAAM,IAAI,KAAK,CAAC,wCAAwC,CAAC;;AAE7D,aAAC,CAAC;AACF,YAAA,IAAI,CAAC,QAAQ,GAAG,IAAI;;QAEtB,IAAI,MAAM,EAAE;YACV,KAAK,CAAC,WAAW,EAAE;;AAErB,QAAA,OAAO,IAAI;;AAGb;;;;;;;;;;AAUG;IACH,SAAS,CAAC,IAA4B,EAAE,WAAW,GAAG,IAAI,EAAE,MAAM,GAAG,IAAI,EAAA;QACvE,IAAI,IAAI,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE;AAC3B,YAAA,IAAI,CAAC,OAAO,CAAC,CAAC,SAAS,KAAI;gBACzB,IAAI,CAAC,SAAS,CAAC,SAAS,EAAE,WAAW,EAAE,KAAK,CAAC;AAC/C,aAAC,CAAC;;aACG;YACL,IAAI,CAAC,UAAU,GAAG;AAChB,gBAAA,OAAO,EAAE,EAAE;AACX,gBAAA,WAAW,EAAE,IAAI;aAClB;;AAEH,QAAA,IAAI,CAAC,UAAU,CAAC,WAAW,GAAG,WAAW;AACzC,QAAA,IAAI,IAAI,CAAC,UAAU,EAAE;AACnB,YAAA,IAAI,CAAC,UAAU,CAAC,IAAI,GAAG,CAAC;;QAE1B,IAAI,MAAM,EAAE;YACV,KAAK,CAAC,aAAa,EAAE;;AAEvB,QAAA,OAAO,IAAI;;IAGb,SAAS,CAAC,SAA+B,EAAE,WAAW,GAAG,IAAI,EAAE,MAAM,GAAG,IAAI,EAAA;AAC1E,QAAA,IAAI,CAAC,SAAS,CAAC,KAAK,IAAI,OAAO,SAAS,CAAC,MAAM,KAAK,WAAW,EAAE;AAC/D,YAAA,MAAM,IAAI,KAAK,CAAC,0CAA0C,CAAC;;QAG7D,IAAI,KAAK,GAAG,KAAK;AACjB,QAAA,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,gBAAqB,EAAE,KAAU,KAAI;YACpE,IAAI,gBAAgB,CAAC,KAAK,KAAK,SAAS,CAAC,KAAK,EAAE;gBAC9C,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,SAAS;gBAC1C,KAAK,GAAG,IAAI;;AAEhB,SAAC,CAAC;QACF,IAAI,CAAC,KAAK,EAAE;YACV,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC;;AAEzC,QAAA,IAAI,CAAC,UAAU,CAAC,WAAW,GAAG,WAAW;QACzC,IAAI,MAAM,EAAE;YACV,KAAK,CAAC,aAAa,EAAE;;AAEvB,QAAA,OAAO,IAAI;;IAGb,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,OAAe,EAAE,MAAM,GAAG,IAAI,EAAA;AAChD,QAAA,IAAI,IAAI,CAAC,UAAU,EAAE;AACnB,YAAA,IAAI,CAAC,UAAU,CAAC,IAAI,GAAG,IAAI;AAC3B,YAAA,IAAI,CAAC,UAAU,CAAC,OAAO,GAAG,OAAO;;aAC5B;YACL,IAAI,CAAC,UAAU,GAAG;AAChB,gBAAA,IAAI,EAAE;aACP;;QAEH,IAAI,MAAM,EAAE;YACV,KAAK,CAAC,aAAa,EAAE;;QAEvB;;AAGF,IAAA,OAAO,CAAC,IAAY,EAAE,MAAM,GAAG,IAAI,EAAA;AACjC,QAAA,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE;YACpB;;AAEF,QAAA,IAAI,CAAC,UAAU,CAAC,IAAI,GAAG,IAAI;QAC3B,IAAG,MAAM,EAAE;YACT,KAAK,CAAC,WAAW,EAAE;;QAErB;;IAGF,OAAO,GAAA;QACL,OAAO,IAAI,CAAC,QAAQ;;IAGtB,SAAS,GAAA;QACP,OAAO,IAAI,CAAC,UAAU;;IAGxB,SAAS,GAAA;QACP,OAAO,IAAI,CAAC,UAAU;;AAGd,IAAA,WAAW,CAAC,IAAS,EAAA;AAC7B,QAAA,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC;AACxB,QAAA,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;QACtB,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;AACtC,QAAA,IAAG,IAAI,CAAC,UAAU,EAAE;AAClB,YAAA,OAAO,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC;;;AACrB,YAAA,OAAO,IAAI;;AAGV,IAAA,IAAI,CAAC,IAAS,EAAA;AACtB,QAAA,IAAI,IAAI,CAAC,QAAQ,EAAE;YACjB,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,SAAS,KAAI;AAClC,gBAAA,IAAI,GAAG;AACJ,qBAAA,IAAI,CAAI,IAAI,EAAE,SAAS,CAAC,KAAK,EAAE,SAAS,CAAC,SAAS,EAAE,SAAS,CAAC,OAAO,CAAC;AAC3E,aAAC,CAAC;;AAEJ,QAAA,OAAO,IAAI;;;AAIH,IAAA,MAAM,CAAC,IAAS,EAAA;AACxB,QAAA,IAAI,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE;AAC3B,YAAA,IAAI,IAAI,CAAC,UAAU,CAAC,WAAW,EAAE;gBAC/B,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,SAA+B,KAAI;oBAClE,IAAI,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,CAAC,EAAE;AAChC,wBAAA,IAAI,GAAG;AACJ,6BAAA,MAAM,CAAC,IAAI,EAAE,SAAS,CAAC,KAAK,EAAE,SAAS,CAAC,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC;;AAExE,iBAAC,CAAC;;iBACG;gBACL,IAAI,UAAU,GAAQ,EAAE;gBACxB,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,SAA+B,KAAI;oBAClE,IAAI,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,CAAC,EAAE;AAChC,wBAAA,UAAU,GAAG,UAAU,CAAC,MAAM,CAAC;AAC5B,6BAAA,MAAM,CAAC,IAAI,EAAE,SAAS,CAAC,KAAK,EAAE,SAAS,CAAC,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,CAAC;;AAEzE,iBAAC,CAAC;;AAEF,gBAAA,IAAI,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC,IAAS,EAAE,GAAQ,EAAE,GAAQ,KAAI;oBACzD,OAAO,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,GAAG;AAClC,iBAAC,CAAC;;;AAGN,QAAA,OAAO,IAAI;;AAGH,IAAA,QAAQ,CAAC,IAAS,EAAA;AAC1B,QAAA,IAAI,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,UAAU,CAAC,IAAI,IAAI,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE;AACtE,YAAA,IAAI,GAAG,UAAU,CAAC,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC;;AAEjF,QAAA,OAAO,IAAI;;AAEd;;MC9KY,cAAc,CAAA;AAtG3B,IAAA,WAAA,GAAA;QAwGW,IAAa,CAAA,aAAA,GAAa,EAAE;QAE5B,IAAU,CAAA,UAAA,GAAG,MAAM,EAAO;QAEnC,IAAc,CAAA,cAAA,GAAG,CAAC;QAER,IAAK,CAAA,KAAA,GAAa,EAAE;QACpB,IAAI,CAAA,IAAA,GAAG,CAAC;QACR,IAAK,CAAA,KAAA,GAAG,CAAC;QACT,IAAO,CAAA,OAAA,GAAG,CAAC;AA4GtB;AAxGC,IAAA,WAAW,CAAC,OAAsB,EAAA;AAChC,QAAA,IAAI,OAAO,CAAC,QAAQ,CAAC,EAAE;AACrB,YAAA,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,WAAW,IAAI,IAAI,CAAC,cAAc,EAAE;AACzD,gBAAA,IAAI,CAAC,cAAc,CAAC,WAAW,EAAE;;AAEnC,YAAA,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC,SAAS,CAAC,CAAC,WAAW,KAAI;gBACtE,MAAM,MAAM,GAAiC,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE;gBACpE,IAAI,MAAM,EAAE;AACV,oBAAA,IAAI,CAAC,IAAI,GAAG,MAAM,CAAC,IAAI;AACvB,oBAAA,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,OAAO;;AAE/B,gBAAA,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,OAAO;gBAClC,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE;AAChC,gBAAA,IAAI,IAAI,CAAC,iBAAiB,EAAE,EAAE;oBAC5B,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC;;AAGlC,gBAAA,IAAI,CAAC,iBAAiB,CAAC,WAAW,CAAC;gBACnC,IAAI,CAAC,SAAS,EAAE;AAClB,aAAC,CAAC;;;AAIN;;;;;AAKG;AACH,IAAA,iBAAiB,CAAC,OAAY,EAAA;AAC5B,QAAA,IAAI,OAAO,CAAC,QAAQ,CAAC,KAAK,SAAS,EAAE;AACnC,YAAA,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;;AAExB,QAAA,IAAI,OAAO,CAAC,QAAQ,CAAC,KAAK,QAAQ,EAAE;YAClC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;;;IAIvC,UAAU,GAAA;QACR,OAAO,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,GAAG,IAAI,CAAC,OAAO;;AAG3C,IAAA,QAAQ,CAAC,IAAY,EAAA;AACnB,QAAA,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC;AACzB,QAAA,IAAI,CAAC,IAAI,GAAG,IAAI;QAChB,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,CAAC;AAC9B,QAAA,OAAO,KAAK;;IAGd,IAAI,GAAA;QACF,OAAO,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;;IAG1C,IAAI,GAAA;QACF,OAAO,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;;IAG1C,OAAO,GAAA;QACL,OAAO,IAAI,CAAC,IAAI;;IAGlB,QAAQ,GAAA;QACN,OAAO,IAAI,CAAC,KAAK;;IAGnB,OAAO,GAAA;AACL,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC;;IAG7C,iBAAiB,GAAA;QACf,QACE,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,IAAI,GAAG,CAAC;;IAI1E,SAAS,GAAA;AACP,QAAA,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,EAAE;QACjC,IAAI,cAAc,GAAG,CAAC;AACtB,QAAA,cAAc,GAAG,UAAU,GAAG,cAAc,GAAG,UAAU,GAAG,cAAc;AAC1E,QAAA,IAAI,CAAC,KAAK,GAAG,EAAE;AAEf,QAAA,IAAI,IAAI,CAAC,UAAU,EAAE,EAAE;YACrB,IAAI,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,cAAc,GAAG,CAAC,CAAC;AAC7C,YAAA,SAAS,GAAG,IAAI,CAAC,IAAI,IAAI,SAAS,GAAG,IAAI,CAAC,IAAI,GAAG,SAAS;AAE1D,YAAA,IAAI,OAAO,GAAG,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,cAAc,GAAG,CAAC,CAAC;AACxD,YAAA,OAAO,GAAG,OAAO,IAAI,UAAU,GAAG,UAAU,GAAG,OAAO;AAEtD,YAAA,MAAM,QAAQ,GAAG,OAAO,GAAG,cAAc,GAAG,CAAC;AAE7C,YAAA,KAAK,IAAI,CAAC,GAAG,QAAQ,EAAE,CAAC,IAAI,OAAO,EAAE,CAAC,EAAE,EAAE;AACxC,gBAAA,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;;;;IAKxB,eAAe,GAAA;QACb,MAAM,MAAM,GAAiC,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE;QACpE,IAAI,MAAM,EAAE;YACV,MAAM,CAAC,OAAO,GAAG,IAAI,CAAC,cAAc,GAAG,CAAC;;AAE1C,QAAA,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE;QACrB,IAAI,CAAC,SAAS,EAAE;;8GArHP,cAAc,EAAA,IAAA,EAAA,EAAA,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,QAAA,EAAA,IAAA,EAAA,cAAc,EAnGf,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,uBAAA,EAAA,MAAA,EAAA,EAAA,MAAA,EAAA,QAAA,EAAA,aAAA,EAAA,eAAA,EAAA,EAAA,OAAA,EAAA,EAAA,UAAA,EAAA,YAAA,EAAA,EAAA,aAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA+FT,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,CAAA,mfAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAES,WAAW,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,cAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,OAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,uBAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,OAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,0BAAA,EAAA,QAAA,EAAA,6GAAA,EAAA,MAAA,EAAA,CAAA,aAAA,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,CAAA,EAAA,CAAA,CAAA;;2FAEV,cAAc,EAAA,UAAA,EAAA,CAAA;kBAtG1B,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,uBAAuB,EAEvB,QAAA,EAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA+FT,EAAA,CAAA,EAAA,UAAA,EACW,IAAI,EAAA,OAAA,EACP,CAAC,WAAW,CAAC,EAAA,MAAA,EAAA,CAAA,mfAAA,CAAA,EAAA;8BAGb,MAAM,EAAA,CAAA;sBAAd;gBACQ,aAAa,EAAA,CAAA;sBAArB;;;MC/GU,wBAAwB,CAAA;AADrC,IAAA,WAAA,GAAA;AAEW,QAAA,IAAA,CAAA,IAAI,GAAG,KAAK,CAAC,QAAQ,EAAS;AAC9B,QAAA,IAAA,CAAA,UAAU,GAAG,KAAK,CAAC,EAAE,CAAC;AAChC;8GAHY,wBAAwB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAxB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,wBAAwB,uWADd,EAAE,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,CAAA;;2FACZ,wBAAwB,EAAA,UAAA,EAAA,CAAA;kBADpC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA,EAAE,QAAQ,EAAE,EAAE,EAAE,QAAQ,EAAE,sCAAsC,EAAE;;;ACgBvE,MAAO,mBAAoB,SAAQ,wBAAwB,CAAA;AAM/D,IAAA,WAAW,CAAC,OAAsB,EAAA;QAChC,MAAM,MAAM,GACV,IAAI,CAAC,IAAI,EAAE,CAAC,SAAS,EAAE,CAAC,MAAM;AAChC,QAAA,IAAI,IAAI,CAAC,eAAe,EAAE;AACxB,YAAA,IAAI,IAAI,CAAC,eAAe,EAAE,QAAQ,IAAI,aAAa,IAAI,IAAI,CAAC,eAAe,CAAC,QAAQ,EAAC;gBACnF,MAAM,SAAS,GAAG,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,WAA+C;gBAC/F,SAAS,CAAC,OAAO,CAAC;;YAEpB;;QAEF,IACE,IAAI,CAAC,IAAI,EAAE;YACX,CAAC,IAAI,CAAC,eAAe;YACrB,MAAM;AACN,YAAA,MAAM,CAAC,IAAI,IAAI,QAAQ,EACvB;AACA,YAAA,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,aAAa,EAAE,eAAe,CACxD,MAAM,CAAC,SAAS,CACjB;AACD,YAAA,IAAI,CAAC,eAAe,EAAE,QAAQ,CAAC,MAAM,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC;AACnD,YAAA,IAAI,CAAC,eAAe,EAAE,QAAQ,CAAC,YAAY,EAAE,IAAI,CAAC,UAAU,EAAE,CAAC;;;IAInE,WAAW,GAAA;AACT,QAAA,IAAI,IAAI,CAAC,eAAe,EAAE;AACxB,YAAA,IAAI,CAAC,eAAe,CAAC,OAAO,EAAE;;;8GAhCvB,mBAAmB,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;kGAAnB,mBAAmB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,8BAAA,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,eAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,eAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,IAAA,EACM,gBAAgB,EAAA,MAAA,EAAA,IAAA,EAAA,CAAA,EAAA,eAAA,EAAA,IAAA,EAAA,aAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAJ1C,CAA8C,4CAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,CAAA;;2FAG7C,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAL/B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,8BAA8B;AACxC,oBAAA,QAAQ,EAAE,CAA8C,4CAAA,CAAA;AACxD,oBAAA,UAAU,EAAE,IAAI;AACjB,iBAAA;8BAGC,aAAa,EAAA,CAAA;sBADZ,SAAS;uBAAC,eAAe,EAAE,EAAE,IAAI,EAAE,gBAAgB,EAAE,MAAM,EAAE,IAAI,EAAE;;;ACChE,MAAO,uBAAwB,SAAQ,aAAa,CAAA;AASxD,IAAA,WAAA,GAAA;AACE,QAAA,KAAK,EAAE;AATA,QAAA,IAAA,CAAA,OAAO,GAAG,QAAQ,CAAC,MAAK;AAC/B,YAAA,OAAO,IAAI,CAAC,IAAI,EAAE,CAAC,SAAS,EAAE,CAAC,SAAS,EAAE,EAAE,IAAI,IAAI,IAAI;AAC1D,SAAC,CAAC;AACO,QAAA,IAAA,CAAA,QAAQ,GAAG,QAAQ,CAAC,MAAK;AAChC,YAAA,OAAO,IAAI,CAAC,IAAI,EAAE,CAAC,SAAS,EAAE,CAAC,SAAS,EAAE,EAAE,KAAK,IAAI,KAAK;AAC5D,SAAC,CAAC;;AAOF,IAAA,QAAQ,CAAC,KAAU,EAAA;QACjB,IAAI,CAAC,IAAI,EAAE,CAAC,QAAQ,GAAG,KAAK,CAAC,MAAM,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,QAAQ,EAAE;;8GAdrE,uBAAuB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAvB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,uBAAuB,EAfxB,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,qBAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA;;;;;;;;;;;;AAYT,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,CAAA,kFAAA,CAAA,EAAA,CAAA,CAAA;;2FAGU,uBAAuB,EAAA,UAAA,EAAA,CAAA;kBAlBnC,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,qBAAqB,EAErB,QAAA,EAAA;;;;;;;;;;;;AAYT,EAAA,CAAA,EAAA,UAAA,EACW,IAAI,EAAA,MAAA,EAAA,CAAA,kFAAA,CAAA,EAAA;;;ACCZ,MAAO,oBAAqB,SAAQ,aAAa,CAAA;AACrD,IAAA,WAAA,GAAA;AACE,QAAA,KAAK,EAAE;;8GAFE,oBAAoB,EAAA,IAAA,EAAA,EAAA,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,QAAA,EAAA,IAAA,EAAA,oBAAoB,EAbrB,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA;;;;;;;;;AAST,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,CAAA,kFAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAES,WAAW,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,8MAAA,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,CAAA,EAAA,CAAA,CAAA;;2FAEV,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBAhBhC,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,kBAAkB,EAElB,QAAA,EAAA;;;;;;;;;AAST,EAAA,CAAA,EAAA,UAAA,EACW,IAAI,EAAA,OAAA,EACP,CAAC,WAAW,CAAC,EAAA,MAAA,EAAA,CAAA,kFAAA,CAAA,EAAA;;;ACSlB,MAAO,qBAAsB,SAAQ,aAAa,CAAA;AACtD,IAAA,WAAA,GAAA;AACE,QAAA,KAAK,EAAE;;8GAFE,qBAAqB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAArB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,qBAAqB,EArBtB,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA;;;;;;;;;;;;;;;;;AAiBT,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAES,WAAW,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,cAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,OAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,uBAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,OAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,0BAAA,EAAA,QAAA,EAAA,6GAAA,EAAA,MAAA,EAAA,CAAA,aAAA,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,CAAA,EAAA,CAAA,CAAA;;2FAEV,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBAvBjC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,mBAAmB;AAC7B,oBAAA,QAAQ,EAAE;;;;;;;;;;;;;;;;;AAiBT,EAAA,CAAA;AACD,oBAAA,UAAU,EAAE,IAAI;oBAChB,OAAO,EAAE,CAAC,WAAW,CAAC;AACvB,iBAAA;;;ACLK,MAAO,uBAAwB,SAAQ,aAAa,CAAA;AACxD,IAAA,WAAA,GAAA;AACE,QAAA,KAAK,EAAE;;8GAFE,uBAAuB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAvB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,uBAAuB,EAdxB,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,qBAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA;;;;;;;;;;AAUT,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,CAAA,kFAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAES,WAAW,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,8MAAA,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,CAAA,EAAA,CAAA,CAAA;;2FAEV,uBAAuB,EAAA,UAAA,EAAA,CAAA;kBAjBnC,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,qBAAqB,EAErB,QAAA,EAAA;;;;;;;;;;AAUT,EAAA,CAAA,EAAA,UAAA,EACW,IAAI,EAAA,OAAA,EACP,CAAC,WAAW,CAAC,EAAA,MAAA,EAAA,CAAA,kFAAA,CAAA,EAAA;;;ACAlB,MAAO,oBAAqB,SAAQ,wBAAwB,CAAA;AAChE,IAAA,WAAA,GAAA;AACE,QAAA,KAAK,EAAE;;IAGT,aAAa,GAAA;QACX,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC,SAAS,EAAE,CAAC,MAAM;QAC7C,IAAI,MAAM,EAAE;AACV,YAAA,OAAO,MAAM,CAAC,IAAI,IAAI,MAAM;;AAE9B,QAAA,OAAO,MAAM;;8GAVJ,oBAAoB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;kGAApB,oBAAoB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,+BAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECpBjC,gsBA2BM,EDdF,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,qBAAqB,8DACrB,uBAAuB,EAAA,QAAA,EAAA,qBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EACvB,uBAAuB,EAAA,QAAA,EAAA,qBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EACvB,oBAAoB,EAAA,QAAA,EAAA,kBAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;2FAIX,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBAXhC,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,+BAA+B,EAEhC,OAAA,EAAA;wBACP,qBAAqB;wBACrB,uBAAuB;wBACvB,uBAAuB;wBACvB,oBAAoB;AACrB,qBAAA,EAAA,UAAA,EACW,IAAI,EAAA,QAAA,EAAA,gsBAAA,EAAA;;;MEQL,iBAAiB,CAAA;AAnB9B,IAAA,WAAA,GAAA;AAoBW,QAAA,IAAA,CAAA,IAAI,GAAG,KAAK,CAAC,QAAQ,EAAQ;AAC7B,QAAA,IAAA,CAAA,UAAU,GAAG,KAAK,CAAC,EAAE,CAAC;AAShC;IAPC,aAAa,GAAA;QACX,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC,SAAS,EAAE,CAAC,MAAM;QAC7C,IAAI,MAAM,EAAE;YACV,OAAO,MAAM,CAAC,IAAI;;AAEpB,QAAA,OAAO,MAAM;;8GATJ,iBAAiB,EAAA,IAAA,EAAA,EAAA,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,QAAA,EAAA,IAAA,EAAA,iBAAiB,EAjBlB,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,0BAAA,EAAA,MAAA,EAAA,EAAA,IAAA,EAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,iBAAA,EAAA,YAAA,EAAA,UAAA,EAAA,YAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA;;;;;;;;;;;;;GAaT,EAES,QAAA,EAAA,IAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,mBAAmB,yEAAE,oBAAoB,EAAA,QAAA,EAAA,+BAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;2FAExC,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAnB7B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,0BAA0B;AACpC,oBAAA,QAAQ,EAAE;;;;;;;;;;;;;AAaT,EAAA,CAAA;AACD,oBAAA,UAAU,EAAE,IAAI;AAChB,oBAAA,OAAO,EAAE,CAAC,mBAAmB,EAAE,oBAAoB,CAAC;AACrD,iBAAA;;;MCTY,mBAAmB,CAAA;AAXhC,IAAA,WAAA,GAAA;AAYW,QAAA,IAAA,CAAA,IAAI,GAAG,KAAK,CAAC,QAAQ,EAAQ;AACvC;8GAFY,mBAAmB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAnB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,mBAAmB,EATpB,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,2BAAA,EAAA,MAAA,EAAA,EAAA,IAAA,EAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,CAAA;;;;;AAKM,iBAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EACN,iBAAiB,EAAA,QAAA,EAAA,qBAAA,EAAA,MAAA,EAAA,CAAA,mBAAA,EAAA,yBAAA,EAAA,2BAAA,EAAA,0BAAA,EAAA,2BAAA,EAAA,kCAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;2FAGhB,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAX/B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,2BAA2B;AACrC,oBAAA,QAAQ,EAAE,CAAA;;;;;AAKM,iBAAA,CAAA;oBAChB,OAAO,EAAE,CAAC,iBAAiB,CAAC;AAC5B,oBAAA,UAAU,EAAE,IAAI;AACjB,iBAAA;;;MCOY,iBAAiB,CAAA;AAjB9B,IAAA,WAAA,GAAA;AAkBW,QAAA,IAAA,CAAA,IAAI,GAAG,KAAK,CAAC,QAAQ,EAAS;AACxC;8GAFY,iBAAiB,EAAA,IAAA,EAAA,EAAA,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,QAAA,EAAA,IAAA,EAAA,iBAAiB,EAdlB,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,0BAAA,EAAA,MAAA,EAAA,EAAA,IAAA,EAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA;;;;;;;;;;AAUT,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAES,mBAAmB,EAAA,QAAA,EAAA,2BAAA,EAAA,MAAA,EAAA,CAAA,MAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;;2FAElB,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAjB7B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,0BAA0B;oBACpC,eAAe,EAAE,uBAAuB,CAAC,MAAM;AAC/C,oBAAA,QAAQ,EAAE;;;;;;;;;;AAUT,EAAA,CAAA;AACD,oBAAA,UAAU,EAAE,IAAI;oBAChB,OAAO,EAAE,CAAC,mBAAmB,CAAC;AAC/B,iBAAA;;;MCCY,aAAa,CAAA;AAhB1B,IAAA,WAAA,GAAA;AAiBW,QAAA,IAAA,CAAA,IAAI,GAAG,KAAK,CAAC,QAAQ,EAAQ;AAE7B,QAAA,IAAA,CAAA,UAAU,GAAG,KAAK,CAAC,EAAE,CAAC;AACtB,QAAA,IAAA,CAAA,WAAW,GAAG,KAAK,CAAU,KAAK,CAAC;AAC7C;8GALY,aAAa,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAb,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,aAAa,EAdd,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,sBAAA,EAAA,MAAA,EAAA,EAAA,IAAA,EAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,iBAAA,EAAA,YAAA,EAAA,UAAA,EAAA,YAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,WAAA,EAAA,EAAA,iBAAA,EAAA,aAAA,EAAA,UAAA,EAAA,aAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA;;;;;;;;;;GAUT,EAES,QAAA,EAAA,IAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,iBAAiB,uFAAE,iBAAiB,EAAA,QAAA,EAAA,0BAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,YAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;2FAEnC,aAAa,EAAA,UAAA,EAAA,CAAA;kBAhBzB,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,sBAAsB;AAChC,oBAAA,QAAQ,EAAE;;;;;;;;;;AAUT,EAAA,CAAA;AACD,oBAAA,UAAU,EAAE,IAAI;AAChB,oBAAA,OAAO,EAAE,CAAC,iBAAiB,EAAE,iBAAiB,CAAC;AAChD,iBAAA;;;MC2EY,0BAA0B,CAAA;AApFvC,IAAA,WAAA,GAAA;AAqFW,QAAA,IAAA,CAAA,IAAI,GAAG,KAAK,CAAC,QAAQ,EAAQ;AAC7B,QAAA,IAAA,CAAA,GAAG,GAAG,KAAK,CAAC,QAAQ,EAAO;AAC3B,QAAA,IAAA,CAAA,WAAW,GAAG,KAAK,CAAC,QAAQ,EAA6C;AACzE,QAAA,IAAA,CAAA,UAAU,GAAG,KAAK,CAAC,QAAQ,EAA6C;AAExE,QAAA,IAAA,CAAA,mBAAmB,GAAG,QAAQ,CAAC,MAAK;YAC3C,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC,QAAQ,EAAE,CAAC,IAAI;AACxC,YAAA,OAAO,IAAI,GAAG,IAAI,CAAC,mBAAmB,IAAI,QAAQ,GAAG,QAAQ;AAC/D,SAAC,CAAC;AACO,QAAA,IAAA,CAAA,iBAAiB,GAAG,QAAQ,CAAC,MAAK;YACzC,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC,QAAQ,EAAE,CAAC,IAAI;AACxC,YAAA,OAAO,IAAI,GAAG,IAAI,CAAC,iBAAiB,IAAI,QAAQ,GAAG,QAAQ;AAC7D,SAAC,CAAC;AAcH;AAZC,IAAA,MAAM,CAAC,KAAU,EAAA;QACf,KAAK,CAAC,cAAc,EAAE;QACtB,KAAK,CAAC,eAAe,EAAE;AACvB,QAAA,IAAI,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,EAAE,IAAI,CAAC,WAAW,EAAE,CAAC;;AAGlD,IAAA,YAAY,CAAC,KAAU,EAAA;QACrB,KAAK,CAAC,cAAc,EAAE;QACtB,KAAK,CAAC,eAAe,EAAE;QACvB,IAAI,CAAC,UAAU,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC;AAC5B,QAAA,IAAI,CAAC,GAAG,EAAE,CAAC,WAAW,GAAG,KAAK;;8GAzBrB,0BAA0B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAA1B,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,0BAA0B,EAlF3B,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,4BAAA,EAAA,MAAA,EAAA,EAAA,IAAA,EAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,GAAA,EAAA,EAAA,iBAAA,EAAA,KAAA,EAAA,UAAA,EAAA,KAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,WAAA,EAAA,EAAA,iBAAA,EAAA,aAAA,EAAA,UAAA,EAAA,aAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,iBAAA,EAAA,YAAA,EAAA,UAAA,EAAA,YAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA8ET,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;;2FAIU,0BAA0B,EAAA,UAAA,EAAA,CAAA;kBApFtC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,4BAA4B;AACtC,oBAAA,QAAQ,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA8ET,EAAA,CAAA;AACD,oBAAA,UAAU,EAAE,IAAI;oBAChB,eAAe,EAAE,uBAAuB,CAAC,MAAM;AAChD,iBAAA;;;MC3FY,OAAO,CAAA;IAQlB,WACE,CAAA,IAAA,GAAc,EAAE,EACN,cAA0C,EAAA;QAA1C,IAAc,CAAA,cAAA,GAAd,cAAc;QAPhB,IAAI,CAAA,IAAA,GAAU,EAAE;QAChB,IAAO,CAAA,OAAA,GAAa,EAAE;QACtB,IAAI,CAAA,IAAA,GAAU,EAAE;AAChB,QAAA,IAAA,CAAA,YAAY,GAAG,IAAI,GAAG,EAAO;AAMrC,QAAA,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC;AAClC,QAAA,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC;QAElB,IAAI,CAAC,YAAY,EAAE;;AAGrB,IAAA,OAAO,CAAC,IAAW,EAAA;AACjB,QAAA,IAAI,CAAC,IAAI,GAAG,IAAI;QAChB,IAAI,CAAC,UAAU,EAAE;;IAGnB,UAAU,GAAA;QACR,OAAO,IAAI,CAAC,OAAO;;IAGrB,OAAO,GAAA;QACL,OAAO,IAAI,CAAC,IAAI;;IAGlB,WAAW,GAAA;AACT,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;;IAGrB,UAAU,GAAA;AACR,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;;AAGxC,IAAA,aAAa,CAAC,IAAS,EAAA;AACrB,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,GAAQ,KAAK,GAAG,CAAC,OAAO,EAAE,KAAK,IAAI,CAAC;;AAG7D,IAAA,YAAY,CAAC,KAAc,EAAA;QACzB,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,GAAG,KAAI;AACxB,YAAA,GAAG,CAAC,UAAU,GAAG,KAAK;AACtB,YAAA,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC;AAC5B,SAAC,CAAC;;IAGJ,WAAW,GAAA;QACT,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,GAAG,KAAI;AACxB,YAAA,GAAG,CAAC,UAAU,GAAG,KAAK;AACxB,SAAC,CAAC;;AAEF,QAAA,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE;;IAG3B,SAAS,CAAC,GAAQ,EAAE,KAAc,EAAA;AAChC,QAAA,GAAG,CAAC,UAAU,GAAG,KAAK;AACtB,QAAA,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC;;AAG5B,IAAA,iBAAiB,CAAC,GAAQ,EAAA;AACxB,QAAA,GAAG,CAAC,UAAU,GAAG,CAAC,GAAG,CAAC,UAAU;AAChC,QAAA,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC;AAE1B,QAAA,OAAO,GAAG;;IAGZ,mBAAmB,GAAA;AACjB,QAAA,OAAO,CAAC,GAAG,IAAI,CAAC,YAAY,CAAC;;IAG/B,YAAY,GAAA;AACV,QAAA,IAAI,CAAC,MAAM,GAAG,IAAI,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,IAAI,CAAC;AACnC,QAAA,IAAI,CAAC,MAAM,CAAC,WAAW,GAAG,IAAI;;AAGhC;;;;AAIG;AACH,IAAA,aAAa,CAAC,aAAyC,EAAA;AACrD,QAAA,aAAa,CAAC,OAAO,CAAC,CAAC,MAAM,KAAI;AAC/B,YAAA,IAAI,CAAC,OAAO,CAAC,IAAI,CACf,IAAI,MAAM,CAAC,MAAM,CAAC,GAAa,EAAE,MAAM,EAAE,IAAI,CAAC,CAC/C;AACH,SAAC,CAAC;;AAGJ;;;AAGG;IACH,UAAU,GAAA;AACR,QAAA,IAAI,CAAC,IAAI,GAAG,EAAE;QACd,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,EAAE,EAAE,KAAK,KAAI;YAC9B,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,KAAK,EAAE,EAAE,EAAE,IAAI,CAAC;AACpC,YAAA,GAAG,CAAC,UAAU,GAAG,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC;AACrD,YAAA,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC;AACrB,SAAC,CAAC;;AAGJ,IAAA,IAAW,aAAa,GAAA;AACtB,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,KAAK,GAAG,CAAC,UAAU,CAAC;;AAGzC,IAAA,gBAAgB,CAAC,GAAQ,EAAA;AAC/B,QAAA,IAAI,GAAG,CAAC,UAAU,EAAE;YAClB,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC;;aAC/B;YACL,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC;;;AAG5C;;MCpGY,IAAI,CAAA;IAgCf,WAAY,CAAA,MAAuB,EAAE,QAA4B,EAAA;QA/BjE,IAAe,CAAA,eAAA,GAAG,KAAK;AAKvB,QAAA,IAAA,CAAA,iBAAiB,GAAG,IAAI,OAAO,EAAO;AACtC,QAAA,IAAA,CAAA,mBAAmB,GAAG,IAAI,OAAO,EAAO;QAExC,IAAuB,CAAA,uBAAA,GAA0B,EAAE;AAM1C,QAAA,IAAA,CAAA,QAAQ,GAAG,MAAM,CAAqB,EAAwB,CAAC;AAE/D,QAAA,IAAA,CAAA,oBAAoB,GAAG,QAAQ,CAAC,MAAK;YAC5C,OAAO,IAAI,CAAC,QAAQ,EAAE,CAAC,UAAU,KAAK,OAAO;AAC/C,SAAC,CAAC;AACO,QAAA,IAAA,CAAA,gBAAgB,GAAG,QAAQ,CAAU,MAAK;YACjD,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC,OAAO;AACvC,YAAA,IAAI,CAAC,OAAO;AAAE,gBAAA,OAAO,KAAK;AAC1B,YAAA,OAAO,OAAO,CAAC,GAAG,IAAI,OAAO,CAAC,IAAI,IAAI,OAAO,CAAC,MAAM,IAAI,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM;AACnF,SAAC,CAAC;AACO,QAAA,IAAA,CAAA,cAAc,GAAG,QAAQ,CAAU,MAAK;AAC/C,YAAA,OAAO,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,eAAe,IAAI,MAAM,MAAM,MAAM;AAC/D,SAAC,CAAC;AACO,QAAA,IAAA,CAAA,eAAe,GAAG,QAAQ,CAAU,MAAK;YAChD,OAAO,IAAI,CAAC,QAAQ,EAAE,CAAC,eAAe,KAAK,OAAO;AACpD,SAAC,CAAC;AAGA,QAAA,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC;AAC1B,QAAA,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC;;AAGxB,IAAA,uBAAuB,CAAC,OAAgD,EAAA;AACtE,QAAA,IAAI,CAAC,oBAAoB,GAAG,OAAO;;IAGrC,MAAM,GAAA;AACJ,QAAA,IAAI,IAAI,CAAC,2BAA2B,EAAE;AACpC,YAAA,IAAI,CAAC,2BAA2B,CAAC,WAAW,EAAE;;AAEhD,QAAA,IAAI,IAAI,CAAC,2BAA2B,EAAE;AACpC,YAAA,IAAI,CAAC,2BAA2B,CAAC,WAAW,EAAE;;;IAIlD,SAAS,GAAA;AACP,QAAA,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM;;AAG5B,IAAA,WAAW,CAAC,QAA4B,EAAA;AACtC,QAAA,IAAI,CAAC,wBAAwB,CAAC,QAAQ,CAAC;QACvC,IAAI,IAAI,CAAC,UAAU,CAAC,YAAY,EAAE,KAAK,CAAC,EAAE;AACxC,YAAA,IAAI,CAAC,mBAAmB,CAAC,QAAQ,CAAC,OAAO,CAAC;;;AAItC,IAAA,wBAAwB,CAAC,QAA4B,EAAA;AAC3D,QAAA,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC;AAC3B,QAAA,IAAI,CAAC,OAAO,GAAG,IAAI,OAAO,CACxB,EAAE,EACF,QAAQ,CAAC,OAAO,CACjB;AAED,QAAA,IAAI,IAAI,CAAC,MAAM,EAAE;AACf,YAAA,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE;;;IAIzB,UAAU,GAAA;QACR,OAAO,IAAI,CAAC,OAAO;;AAGrB,IAAA,SAAS,CAAC,MAAuB,EAAA;QAC/B,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC;QACxC,IAAI,CAAC,MAAM,EAAE;AAEb,QAAA,IAAI,CAAC,2BAA2B,GAAG,IAAI,CAAC;AACrC,aAAA,SAAS;AACT,aAAA,SAAS,CAAC,CAAC,OAAY,KAAK,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC;AAE/D,QAAA,IAAI,CAAC,2BAA2B,GAAG,IAAI,CAAC;AACrC,aAAA,SAAS;AACT,aAAA,SAAS,CAAC,CAAC,IAAS,KAAI;YACvB,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,IAAI,CAAC;YACnD,IAAI,UAAU,EAAE;AACd,gBAAA,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC;;AAE5B,SAAC,CAAC;;IAGN,UAAU,CAAI,IAAY,EAAE,YAAkB,EAAA;QAC5C,OAAO,iBAAiB,CAAC,IAAI,CAAC,QAAQ,EAAE,EAAE,IAAI,EAAE,YAAY,CAAC;;IAG/D,UAAU,GAAA;AACR,QAAA,OAAO,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE;;IAGlC,OAAO,GAAA;AACL,QAAA,OAAO,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE;;IAG/B,SAAS,CAAC,GAAQ,EAAE,KAAc,EAAA;QAChC,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,GAAG,EAAE,KAAK,CAAC;;AAGpC,IAAA,iBAAiB,CAAC,GAAQ,EAAA;AACxB,QAAA,IAAI,CAAC,OAAO,CAAC,iBAAiB,CAAC,GAAG,CAAC;;IAGrC,WAAW,GAAA;AACT,QAAA,OAAO,IAAI,CAAC,iBAAiB,CAAC,YAAY,EAAE;;IAG9C,aAAa,GAAA;AACX,QAAA,OAAO,IAAI,CAAC,mBAAmB,CAAC,YAAY,EAAE;;AAGhD,IAAA,IAAI,CAAC,GAAQ,EAAA;AACX,QAAA,GAAG,CAAC,WAAW,GAAG,IAAI;;IAGxB,MAAM,CAAC,GAAQ,EAAE,cAAyD,EAAA;AACxE,QAAA,GAAG,CAAC,OAAO,GAAG,IAAI;AAClB,QAAA,MAAM,QAAQ,GAAG,IAAI,QAAQ,EAAE;AAC/B,QAAA,QAAQ,CAAC;AACN,aAAA,IAAI,CAAC,CAAC,OAAO,KAAI;AAChB,YAAA,GAAG,CAAC,OAAO,GAAG,KAAK;AACnB,YAAA,OAAO,GAAG,OAAO,IAAI,GAAG,CAAC,UAAU,EAAE;YACrC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,MAAK;AACrC,gBAAA,IAAI,CAAC,eAAe,GAAG,KAAK;AAC5B,gBAAA,IAAI,CAAC,OAAO,CAAC,YAAY,EAAE;AAC7B,aAAC,CAAC;AACJ,SAAC;AACA,aAAA,KAAK,CAAC,CAAC,GAAG,KAAI;AACb,YAAA,GAAG,CAAC,OAAO,GAAG,KAAK;AACrB,SAAC,CAAC;AAEJ,QAAA,IAAI,IAAI,CAAC,UAAU,CAAC,mBAAmB,CAAC,EAAE;YACxC,cAAc,CAAC,IAAI,CAAC;AAClB,gBAAA,OAAO,EAAE,GAAG,CAAC,UAAU,EAAE;gBACzB,MAAM,EAAE,IAAI,CAAC,MAAM;AACnB,gBAAA,OAAO,EAAE,QAAQ;AAClB,aAAA,CAAC;;aACG;AACL,YAAA,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC;;;IAI3B,IAAI,CAAC,GAAQ,EAAE,cAAyD,EAAA;AACtE,QAAA,GAAG,CAAC,OAAO,GAAG,IAAI;AAClB,QAAA,MAAM,QAAQ,GAAG,IAAI,QAAQ,EAAE;AAC/B,QAAA,QAAQ,CAAC;AACN,aAAA,IAAI,CAAC,CAAC,OAAO,KAAI;AAChB,YAAA,GAAG,CAAC,OAAO,GAAG,KAAK;AACnB,YAAA,OAAO,GAAG,OAAO,IAAI,GAAG,CAAC,UAAU,EAAE;AACrC,YAAA,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,EAAE,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC,MAAK;AACnD,gBAAA,GAAG,CAAC,WAAW,GAAG,KAAK;AACzB,aAAC,CAAC;AACJ,SAAC;AACA,aAAA,KAAK,CAAC,CAAC,GAAG,KAAI;AACb,YAAA,GAAG,CAAC,OAAO,GAAG,KAAK;AACrB,SAAC,CAAC;QAEJ,IAAI,IAAI,CAAC,UAAU,CAAC,kBAAkB,EAAE,KAAK,CAAC,EAAE;YAC9C,cAAc,CAAC,IAAI,CAAC;AAClB,gBAAA,IAAI,EAAE,GAAG,CAAC,OAAO,EAAE;AACnB,gBAAA,OAAO,EAAE,GAAG,CAAC,UAAU,EAAE;gBACzB,MAAM,EAAE,IAAI,CAAC,MAAM;AACnB,gBAAA,OAAO,EAAE,QAAQ;AAClB,aAAA,CAAC;;aACG;AACL,YAAA,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC;;;IAI3B,MAAM,CAAC,GAAQ,EAAE,cAAyD,EAAA;AACxE,QAAA,GAAG,CAAC,OAAO,GAAG,IAAI;AAClB,QAAA,MAAM,QAAQ,GAAG,IAAI,QAAQ,EAAE;AAC/B,QAAA,QAAQ,CAAC;aACN,IAAI,CAAC,MAAK;AACT,YAAA,GAAG,CAAC,OAAO,GAAG,KAAK;YACnB,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC;AACnC,SAAC;AACA,aAAA,KAAK,CAAC,CAAC,GAAG,KAAI;AACb,YAAA,GAAG,CAAC,OAAO,GAAG,KAAK;;AAErB,SAAC,CAAC;AACJ,QAAA,IAAI,IAAI,CAAC,UAAU,CAAC,sBAAsB,CAAC,EAAE;YAC3C,cAAc,CAAC,IAAI,CAAC;AAClB,gBAAA,IAAI,EAAE,GAAG,CAAC,OAAO,EAAE;gBACnB,MAAM,EAAE,IAAI,CAAC,MAAM;AACnB,gBAAA,OAAO,EAAE,QAAQ;AAClB,aAAA,CAAC;;aACG;AACL,YAAA,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC;;AAEzB,QAAA,IAAI,GAAG,CAAC,UAAU,EAAE;YAClB,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,GAAG,EAAE,KAAK,CAAC;;;AAItC,IAAA,iBAAiB,CAAC,OAAY,EAAA;AAC5B,QAAA,IAAI,IAAI,CAAC,mBAAmB,CAAC,OAAO,CAAC,EAAE;AACrC,YAAA,IAAI,OAAO,CAAC,QAAQ,CAAC,KAAK,MAAM,EAAE;AAChC,gBAAA,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE;;YAE5B,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;;;AAI7C,IAAA,mBAAmB,CAAC,OAAY,EAAA;QAC9B,IACE,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC,OAAO,CACvE,OAAO,CAAC,QAAQ,CAAC,CAClB,KAAK,CAAC,CAAC,EACR;AACA,YAAA,OAAO,IAAI;;AACN,aAAA,IACL,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,KAAK,CAAC,CAAC;AACvD,YAAA,CAAC,IAAI,CAAC,UAAU,CAAC,eAAe,CAAC,EACjC;AACA,YAAA,OAAO,IAAI;;AAEb,QAAA,OAAO,KAAK;;AAGd,IAAA,aAAa,CAAC,MAAuB,EAAA;AACnC,QAAA,MAAM,WAAW,GAA+B,IAAI,CAAC,cAAc,EAAE;QACrE,IAAI,WAAW,EAAE;YACf,MAAM,CAAC,OAAO,CAAC,CAAC,WAAW,CAAC,EAAE,KAAK,CAAC;;QAEtC,IAAI,IAAI,CAAC,UAAU,CAAC,eAAe,CAAC,KAAK,IAAI,EAAE;AAC7C,YAAA,MAAM,CAAC,SAAS,CAAC,CAAC,EAAE,IAAI,CAAC,UAAU,CAAC,eAAe,CAAC,EAAE,KAAK,CAAC;;QAG9D,MAAM,CAAC,OAAO,EAAE;AAChB,QAAA,OAAO,MAAM;;IAGf,cAAc,GAAA;QACZ,MAAM,iBAAiB,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC,IAAI,CAC9C,CAAC,MAAc,KAAK,MAAM,CAAC,UAAU,IAAI,MAAM,CAAC,oBAAoB,CACrE;QACD,IAAI,CAAC,iBAAiB,EAAE;AACtB,YAAA,OAAO,KAAK;;QAEd,OAAO;YACL,KAAK,EAAE,iBAAiB,CAAC,EAAE;AAC3B,YAAA,SAAS,EAAE,iBAAiB,CAAC,oBAAoB,IAAI,KAAK;AAC1D,YAAA,OAAO,EAAE,iBAAiB,CAAC,kBAAkB,EAAE;SAChD;;IAGH,mBAAmB,GAAA;AACjB,QAAA,OAAO,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE;;AAG/B,IAAA,aAAa,CAAC,MAAe,EAAA;AAC3B,QAAA,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,MAAM,CAAC;;IAGnC,WAAW,GAAA;AACT,QAAA,OAAO,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE;;IAGnC,UAAU,GAAA;AACR,QAAA,OAAO,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE;;;AAK1B,IAAA,MAAM,qBAAqB,CACjC,QAA+B,EAC/B,OAAmC,EAAA;QAEnC,MAAM,WAAW,GAA+B,EAAE;AAClD,QAAA,QAAQ,CAAC,OAAO,CAAC,CAAC,KAAK,KAAI;YACzB,MAAM,KAAK,GAAG,OAAO,CAAC,SAAS,CAC7B,CAAC,KAAK,KAAK,KAAK,CAAC,GAAG,KAAK,KAAK,CAAC,GAAG,IAAI,KAAK,CAAC,KAAK,KAAK,KAAK,CAAC,KAAK,CAClE;AACD,YAAA,IAAI,KAAK,GAAG,CAAC,CAAC,EAAE;AACd,gBAAA,WAAW,CAAC,IAAI,CAAC,EAAE,GAAG,OAAO,CAAC,KAAK,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;;AAE/D,SAAC,CAAC;AACF,QAAA,OAAO,OAAO,CAAC,OAAO,CAAC,WAAW,CAAC;;AAG9B,IAAA,MAAM,qBAAqB,CAAC,KAA4B,EAAE,SAAS,GAAG,IAAI,EAAA;QAC/E,IAAI,CAAC,uBAAuB,GAAG,IAAI,CAAC,qBAAqB,CAAC,KAAK,CAAC;QAChE,IAAI,CAAC,wBAAwB,CAAC;YAC5B,GAAG,IAAI,CAAC,QAAQ,EAAE;AAClB,YAAA,OAAO,EAAE,MAAM,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,uBAAuB,EAAE,IAAI,CAAC,QAAQ,EAAE,EAAE,OAAO,CAAC;AAClG,SAAA,CAAC;AACF,QAAA,IAAI,IAAI,CAAC,qBAAqB,EAAE;YAC9B,eAAe,CAAC,IAAI,CAAC,qBAAqB,EAAE,IAAI,CAAC,uBAAuB,CAAC;;QAE3E,IAAI,SAAS,EAAE;YACb,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,IAAI,CAAC,uBAAuB,CAAC;;;AAIxD,IAAA,mBAAmB,CAAC,OAAoC,EAAA;QAC9D,MAAM,YAAY,GAAG,IAAI,CAAC,2BAA2B,CAAC,OAAO,CAAC;AAC9D,QAAA,IAAI,IAAI,CAAC,qBAAqB,EAAE;YAC9B,MAAM,YAAY,GAAG,eAAe,CAClC,IAAI,CAAC,qBAAqB,CAC3B;YACD,IAAI,CAAC,YAAY,EAAE;AACjB,gBAAA,IAAI,CAAC,uBAAuB,GAAG,YAAY;AAC3C,gBAAA,eAAe,CAAC,IAAI,CAAC,qBAAqB,EAAE,YAAY,CAAC;gBACzD;;YAEF,MAAM,MAAM,GAAG,IAAI,CAAC,qBAAqB,CAAC,YAAY,EAAE,YAAY,CAAC;AACrE,YAAA,IAAI,CAAC,qBAAqB,CAAC,MAAM,EAAE,KAAK,CAAC;YACzC;;AAEF,QAAA,IAAI,CAAC,qBAAqB,CAAC,YAAY,EAAE,KAAK,CAAC;;AAGzC,IAAA,2BAA2B,CAAC,OAAoC,EAAA;QACtE,OAAO,CAAC,OAAO,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC,OAAO,IAAI,EAAE,EAAE,GAAG,CAAC,CAAC,MAAM,MAAM;YACjE,GAAG,EAAE,MAAM,CAAC,GAAa;YACzB,KAAK,EAAE,MAAM,CAAC,KAAK;AACnB,YAAA,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,IAAI;AACnB,YAAA,YAAY,EAAE,CAAC,CAAC,MAAM,CAAC,YAAY;AACpC,SAAA,CAAC,CAAC;;IAGG,qBAAqB,CAC3B,QAA+B,EAC/B,YAAoC,EAAA;QAEpC,MAAM,eAAe,GAAG,YAAY,IAAI,IAAI,CAAC,2BAA2B,EAAE;;QAE1E,MAAM,QAAQ,GAA0B,EAAE;AAC1C,QAAA,QAAQ,CAAC,OAAO,CAAC,CAAC,KAAK,KAAI;YACzB,MAAM,KAAK,GAAG,eAAe,CAAC,IAAI,CAChC,CAAC,MAAM,KAAK,MAAM,CAAC,KAAK,KAAK,KAAK,CAAC,KAAK,IAAI,MAAM,CAAC,GAAG,KAAK,KAAK,CAAC,GAAG,CACrE;YACD,IAAI,KAAK,EAAE;gBACT,QAAQ,CAAC,IAAI,CAAC,EAAE,GAAG,KAAK,EAAE,IAAI,EAAE,KAAK,CAAC,YAAY,GAAG,KAAK,CAAC,IAAI,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC;;AAEnF,SAAC,CAAC;;QAEF,MAAM,UAAU,GAAG,eAAe,CAAC,MAAM,CAAC,CAAC,KAAK,KAAI;YAClD,OAAO,CAAC,QAAQ,CAAC,IAAI,CACnB,CAAC,MAAM,KAAK,MAAM,CAAC,KAAK,KAAK,KAAK,CAAC,KAAK,IAAI,MAAM,CAAC,GAAG,KAAK,KAAK,CAAC,GAAG,CACrE;AACH,SAAC,CAAC;AACF,QAAA,OAAO,CAAC,GAAG,QAAQ,EAAE,GAAG,UAAU,CAAC;;AAGrC,IAAA,IAAY,qBAAqB,GAAA;AAC/B,QAAA,OAAO,IAAI,CAAC,QAAQ,EAAE,CAAC,oBAAoB;;AAE9C;;MC/VY,oBAAoB,CAAA;AAlBjC,IAAA,WAAA,GAAA;QAsBW,IAAM,CAAA,MAAA,GAAG,MAAM,EAAO;AAehC;AAbC,IAAA,QAAQ,CAAC,MAAW,EAAA;AAClB,QAAA,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC;YACf,MAAM,EAAE,MAAM,CAAC,IAAI;AACnB,YAAA,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE;YACxB,MAAM,EAAE,IAAI,CAAC,MAAM;AACpB,SAAA,CAAC;;IAGJ,aAAa,GAAA;QACX,OAAO,IAAI,CAAC,IAAI,CAAC,UAAU,CACzB,gBAAgB,CACjB;;8GAjBQ,oBAAoB,EAAA,IAAA,EAAA,EAAA,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,QAAA,EAAA,IAAA,EAAA,oBAAoB,EAfrB,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,qBAAA,EAAA,MAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,GAAA,EAAA,KAAA,EAAA,MAAA,EAAA,QAAA,EAAA,EAAA,OAAA,EAAA,EAAA,MAAA,EAAA,QAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA;;;;;;;;;;;;AAYT,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;;2FAGU,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBAlBhC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,qBAAqB;oBAC/B,eAAe,EAAE,uBAAuB,CAAC,MAAM;AAC/C,oBAAA,QAAQ,EAAE;;;;;;;;;;;;AAYT,EAAA,CAAA;AACD,oBAAA,UAAU,EAAE,IAAI;AACjB,iBAAA;8BAEU,IAAI,EAAA,CAAA;sBAAZ;gBACQ,GAAG,EAAA,CAAA;sBAAX;gBACQ,MAAM,EAAA,CAAA;sBAAd;;;MCuEU,wBAAwB,CAAA;AAkBnC,IAAA,WAAA,GAAA;AAjBiB,QAAA,IAAA,CAAA,GAAG,GAAG,MAAM,CAAC,iBAAiB,CAAC;AACvC,QAAA,IAAA,CAAA,IAAI,GAAG,KAAK,CAAC,QAAQ,EAAQ;AAC7B,QAAA,IAAA,CAAA,GAAG,GAAG,KAAK,CAAC,QAAQ,EAAO;AAC3B,QAAA,IAAA,CAAA,MAAM,GAAG,KAAK,CAAC,QAAQ,EAAmB;AAC1C,QAAA,IAAA,CAAA,aAAa,GAAG,KAAK,CAAC,QAAQ,EAEpC;QAEM,IAAI,CAAA,IAAA,GAAG,MAAM,EAAO;QACpB,IAAM,CAAA,MAAA,GAAG,MAAM,EAAO;QAE/B,IAAY,CAAA,YAAA,GAAG,KAAK;QACpB,IAAc,CAAA,cAAA,GAAG,KAAK;QACtB,IAAc,CAAA,cAAA,GAAG,KAAK;QACtB,IAAoB,CAAA,oBAAA,GAAG,MAAM;QAC7B,IAAsB,CAAA,sBAAA,GAAG,QAAQ;QAG/B,MAAM,CAAC,MAAK;YACV,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC,QAAQ,EAAE;AACvC,YAAA,MAAM,OAAO,GAAG,QAAQ,CAAC,OAAO;YAChC,IAAI,OAAO,EAAE;gBACX,IAAI,CAAC,cAAc,GAAG,CAAC,CAAC,OAAO,CAAC,MAAM;gBACtC,IAAI,CAAC,YAAY,GAAG,CAAC,CAAC,OAAO,CAAC,IAAI;;YAEpC,IAAI,CAAC,cAAc,GAAG,QAAQ,CAAC,IAAI,KAAK,UAAU;AAClD,YAAA,IAAI,CAAC,oBAAoB,GAAG,QAAQ,CAAC;AACnC,kBAAE,QAAQ,CAAC,IAAI,CAAC,iBAAiB,IAAI;kBACnC,MAAM;AACV,YAAA,IAAI,CAAC,sBAAsB,GAAG,QAAQ,CAAC;AACrC,kBAAE,QAAQ,CAAC,MAAM,CAAC,mBAAmB,IAAI;kBACvC,QAAQ;AACZ,YAAA,IAAI,CAAC,GAAG,CAAC,aAAa,EAAE;AAG1B,SAAC,CAAC;;AAGJ,IAAA,MAAM,CAAC,KAAU,EAAA;QACf,KAAK,CAAC,cAAc,EAAE;QACtB,KAAK,CAAC,eAAe,EAAE;AACvB,QAAA,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;AACb,YAAA,IAAI,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC,OAAO,EAAE;YAC1B,MAAM,EAAE,IAAI,CAAC,MAAM;AACpB,SAAA,CAAC;AACF,QAAA,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE;YACxB,IAAI,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;;;AAIhC,IAAA,QAAQ,CAAC,KAAU,EAAA;QACjB,KAAK,CAAC,cAAc,EAAE;QACtB,KAAK,CAAC,eAAe,EAAE;AACvB,QAAA,IAAI,IAAI,CAAC,cAAc,EAAE;AACvB,YAAA,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC;AACf,gBAAA,IAAI,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC,OAAO,EAAE;AAC1B,gBAAA,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE;AACtB,aAAA,CAAC;;aACG;AACL,YAAA,IAAI,CAAC,IAAI,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,EAAE,IAAI,CAAC,aAAa,EAAE,CAAC;;;8GA5D7C,wBAAwB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAxB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,wBAAwB,EAtFzB,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,0BAAA,EAAA,MAAA,EAAA,EAAA,IAAA,EAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,GAAA,EAAA,EAAA,iBAAA,EAAA,KAAA,EAAA,UAAA,EAAA,KAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,MAAA,EAAA,EAAA,iBAAA,EAAA,QAAA,EAAA,UAAA,EAAA,QAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,aAAA,EAAA,EAAA,iBAAA,EAAA,eAAA,EAAA,UAAA,EAAA,eAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,OAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,MAAA,EAAA,QAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAkFT,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;;2FAIU,wBAAwB,EAAA,UAAA,EAAA,CAAA;kBAxFpC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,0BAA0B;AACpC,oBAAA,QAAQ,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAkFT,EAAA,CAAA;AACD,oBAAA,UAAU,EAAE,IAAI;oBAChB,eAAe,EAAE,uBAAuB,CAAC,MAAM;AAChD,iBAAA;;;MCtEY,2BAA2B,CAAA;AAdxC,IAAA,WAAA,GAAA;AAeW,QAAA,IAAA,CAAA,IAAI,GAAG,KAAK,CAAC,QAAQ,EAAQ;AAC7B,QAAA,IAAA,CAAA,MAAM,GAAG,KAAK,CAAC,QAAQ,EAAmB;AAC1C,QAAA,IAAA,CAAA,aAAa,GAAG,KAAK,CAAC,QAAQ,EAA6C;AAC3E,QAAA,IAAA,CAAA,aAAa,GAAG,KAAK,CAAC,QAAQ,EAA6C;AAC3E,QAAA,IAAA,CAAA,WAAW,GAAI,KAAK,CAAC,QAAQ,EAA6C;QAC1E,IAAgB,CAAA,gBAAA,GAAG,KAAK,CAAuB,MAAM,EAAE,CAAC;QAExD,IAAI,CAAA,IAAA,GAAG,MAAM,EAAO;QACpB,IAAI,CAAA,IAAA,GAAG,MAAM,EAAO;QACpB,IAAU,CAAA,UAAA,GAAG,MAAM,EAAO;QAC1B,IAAM,CAAA,MAAA,GAAG,MAAM,EAAO;QACtB,IAAM,CAAA,MAAA,GAAG,MAAM,EAAO;QACtB,IAAM,CAAA,MAAA,GAAG,MAAM,EAAO;QACtB,IAAa,CAAA,aAAA,GAAG,MAAM,EAAO;QAC7B,IAAc,CAAA,cAAA,GAAG,MAAM,EAAO;QAC9B,IAAiB,CAAA,iBAAA,GAAG,MAAM,EAAO;AAEjC,QAAA,IAAA,CAAA,cAAc,GAAG,QAAQ,CAAS,MAAK;YAC9C,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC,QAAQ,EAAE,CAAC,IAAI;YAC/C,IAAI,CAAC,WAAW,EAAE;AAChB,gBAAA,OAAO,EAAE;;AAEX,YAAA,OAAO,WAAW,CAAC,UAAU,IAAI,EAAE;AACrC,SAAC,CAAC;AACO,QAAA,IAAA,CAAA,aAAa,GAAG,QAAQ,CAAS,MAAK;YAC7C,OAAO,IAAI,CAAC,IAAI,EAAE,CAAC,QAAQ,EAAE,CAAC,aAAa,IAAI,eAAe;AAChE,SAAC,CAAC;AASH;AAPC,IAAA,eAAe,CAAC,KAAa,EAAA;QAC3B,OAAO,CAAC,KAAK,IAAI,EAAE,EAAE,MAAM,CAAC,CAAC,IAAU,KAAK,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC,IAAI,CAAC;;IAG3D,gBAAgB,CAAC,KAAa,EAAE,IAAS,EAAA;AACjD,QAAA,OAAO,IAAI,EAAE,EAAE,IAAI,KAAK;;8GAlCf,2BAA2B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAA3B,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,2BAA2B,ECjCxC,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,EAAA,IAAA,EAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,MAAA,EAAA,EAAA,iBAAA,EAAA,QAAA,EAAA,UAAA,EAAA,QAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,aAAA,EAAA,EAAA,iBAAA,EAAA,eAAA,EAAA,UAAA,EAAA,eAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,aAAA,EAAA,EAAA,iBAAA,EAAA,eAAA,EAAA,UAAA,EAAA,eAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,WAAA,EAAA,EAAA,iBAAA,EAAA,aAAA,EAAA,UAAA,EAAA,aAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,gBAAA,EAAA,EAAA,iBAAA,EAAA,kBAAA,EAAA,UAAA,EAAA,kBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,OAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,MAAA,EAAA,UAAA,EAAA,YAAA,EAAA,MAAA,EAAA,QAAA,EAAA,MAAA,EAAA,QAAA,EAAA,MAAA,EAAA,QAAA,EAAA,aAAA,EAAA,eAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,iBAAA,EAAA,mBAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,6gEAwEA,ED/CI,MAAA,EAAA,CAAA,sRAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,WAAW,EACX,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,4BAAA,EAAA,QAAA,EAAA,uGAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,qDAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,SAAA,EAAA,gBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,oBAAoB,EACpB,QAAA,EAAA,qBAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,KAAA,EAAA,QAAA,CAAA,EAAA,OAAA,EAAA,CAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,wBAAwB,EACxB,QAAA,EAAA,0BAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,KAAA,EAAA,QAAA,EAAA,eAAA,CAAA,EAAA,OAAA,EAAA,CAAA,MAAA,EAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,0BAA0B,EAC1B,QAAA,EAAA,4BAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,KAAA,EAAA,aAAA,EAAA,YAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,gBAAgB,oJAChB,aAAa,EAAA,QAAA,EAAA,sBAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,YAAA,EAAA,aAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;2FAGJ,2BAA2B,EAAA,UAAA,EAAA,CAAA;kBAdvC,SAAS;+BACE,gBAAgB,EAAA,UAAA,EAGd,IAAI,EACP,OAAA,EAAA;wBACP,WAAW;wBACX,oBAAoB;wBACpB,wBAAwB;wBACxB,0BAA0B;wBAC1B,gBAAgB;wBAChB,aAAa;AACd,qBAAA,EAAA,QAAA,EAAA,6gEAAA,EAAA,MAAA,EAAA,CAAA,sRAAA,CAAA,EAAA;;;MEzBU,aAAa,CAAA;AAD1B,IAAA,WAAA,GAAA;AAEW,QAAA,IAAA,CAAA,MAAM,GAAG,KAAK,CAAC,QAAQ,EAAU;AACjC,QAAA,IAAA,CAAA,MAAM,GAAG,KAAK,CAAC,QAAQ,EAAmB;AAC1C,QAAA,IAAA,CAAA,UAAU,GAAG,KAAK,CAAS,EAAE,CAAC;QAC9B,IAAK,CAAA,KAAA,GAAG,EAAE;QAEV,IAAM,CAAA,MAAA,GAAG,MAAM,EAAO;AAShC;AAPC,IAAA,QAAQ,CAAC,KAAa,EAAA;AACpB,QAAA,IAAI,CAAC,MAAM,EAAE,CAAC,SAAS,CAAC;AACtB,YAAA,KAAK,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE;AACvB,YAAA,MAAM,EAAE,KAAK;AACb,YAAA,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC,iBAAiB,EAAE;AAC1C,SAAA,CAAC;;8GAbO,aAAa,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAb,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,aAAa,unBADH,EAAE,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,CAAA;;2FACZ,aAAa,EAAA,UAAA,EAAA,CAAA;kBADzB,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA,EAAE,QAAQ,EAAE,EAAE,EAAE,QAAQ,EAAE,8BAA8B,EAAE;8BAK1D,KAAK,EAAA,CAAA;sBAAb;;;ACQG,MAAO,qBACX,SAAQ,aAAa,CAAA;AAQrB,IAAA,WAAW,CAAC,OAAsB,EAAA;AAChC,QAAA,IAAI,IAAI,CAAC,eAAe,EAAE;AACxB,YAAA,IACE,IAAI,CAAC,eAAe,EAAE,QAAQ;AAC9B,gBAAA,aAAa,IAAI,IAAI,CAAC,eAAe,CAAC,QAAQ,EAC9C;gBACA,MAAM,SAAS,GAAG,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,WAEvC;gBACT,SAAS,CAAC,OAAO,CAAC;;YAEpB;;QAEF,MAAM,YAAY,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,MAAM;QACzC,IAAI,YAAY,IAAI,YAAY,CAAC,IAAI,KAAK,QAAQ,EAAE;AAClD,YAAA,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,aAAa,EAAE,eAAe,CACxD,YAAY,EAAE,SAAS,CACxB;;YAED,IAAI,CAAC,eAAe,EAAE,QAAQ,CAAC,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC;AACnD,YAAA,IAAI,CAAC,eAAe,EAAE,QAAQ,CAAC,QAAQ,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC;AACvD,YAAA,IAAI,CAAC,eAAe,EAAE,QAAQ,CAAC,QAAQ,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC;AACvD,YAAA,IAAI,CAAC,eAAe,EAAE,QAAQ,CAAC,YAAY,EAAE,IAAI,CAAC,UAAU,EAAE,CAAC;YAC/D,IAAI,CAAC,eAAe,EAAE,QAAQ,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,KAAU,KACzD,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CACrB;;;IAIL,WAAW,GAAA;AACT,QAAA,IAAI,IAAI,CAAC,eAAe,EAAE;AACxB,YAAA,IAAI,CAAC,eAAe,CAAC,OAAO,EAAE;;;8GAxCvB,qBAAqB,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;kGAArB,qBAAqB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,yBAAA,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,eAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,eAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,IAAA,EAII,gBAAgB,EAAA,MAAA,EAAA,IAAA,EAAA,CAAA,EAAA,eAAA,EAAA,IAAA,EAAA,aAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAP1C,CAA4C,0CAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,CAAA;;2FAG3C,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBALjC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,yBAAyB;AACnC,oBAAA,QAAQ,EAAE,CAA4C,0CAAA,CAAA;AACtD,oBAAA,UAAU,EAAE,IAAI;AACjB,iBAAA;8BAMC,aAAa,EAAA,CAAA;sBADZ,SAAS;uBAAC,eAAe,EAAE,EAAE,IAAI,EAAE,gBAAgB,EAAE,MAAM,EAAE,IAAI,EAAE;;;ACMhE,MAAO,uBAAwB,SAAQ,aAAa,CAAA;AAIxD,IAAA,WAAA,GAAA;AACE,QAAA,KAAK,EAAE;QAJT,IAAY,CAAA,YAAA,GAAG,KAAK;AACpB,QAAA,IAAA,CAAA,YAAY,GAAG,IAAI,kBAAkB,EAAE;;IAMvC,QAAQ,GAAA;AACN,QAAA,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC,YAAY,CAAC;AAC1C,aAAA,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC;AAC7B,aAAA,SAAS,CAAC,CAAC,OAAgB,KAAI;AAC9B,YAAA,IAAI,CAAC,YAAY,GAAG,IAAI;YACxB,MAAM,OAAO,GACX,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,eAAe,EAAE;gBAC9B,IAAI,CAAC,MAAM,EAAE,CAAC,eAAe,EAAE,CAAC,IAAI;AACtC,gBAAA,IAAI;YACN,MAAM,QAAQ,GACZ,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,eAAe,EAAE;gBAC9B,IAAI,CAAC,MAAM,EAAE,CAAC,eAAe,EAAE,CAAC,KAAK;AACvC,gBAAA,KAAK;AACP,YAAA,IAAI,CAAC,KAAK,GAAG,OAAO,GAAG,OAAO,GAAG,QAAQ;YACzC,IAAI,CAAC,SAAS,EAAE;AAClB,SAAC,CAAC;;AAGN,IAAA,WAAW,CAAC,KAAU,EAAA;QACpB,KAAK,CAAC,cAAc,EAAE;AACtB,QAAA,IAAI,CAAC,KAAK,GAAG,EAAE;AACf,QAAA,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,KAAK,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC;AACvD,QAAA,IAAI,CAAC,YAAY,GAAG,KAAK;QACzB,IAAI,CAAC,SAAS,EAAE;;8GA/BP,uBAAuB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAvB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,uBAAuB,EAhBxB,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,qBAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA;;;;;;;;;;;;GAYT,EAES,QAAA,EAAA,IAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,WAAW,uTAAE,mBAAmB,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,CAAA,aAAA,EAAA,UAAA,EAAA,SAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,QAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;2FAE/B,uBAAuB,EAAA,UAAA,EAAA,CAAA;kBAlBnC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,qBAAqB;AAC/B,oBAAA,QAAQ,EAAE;;;;;;;;;;;;AAYT,EAAA,CAAA;AACD,oBAAA,UAAU,EAAE,IAAI;AAChB,oBAAA,OAAO,EAAE,CAAC,WAAW,EAAE,mBAAmB,CAAC;AAC5C,iBAAA;;;ACHK,MAAO,oBACX,SAAQ,aAAa,CAAA;AAKrB,IAAA,WAAA,GAAA;AACE,QAAA,KAAK,EAAE;AAHT,QAAA,IAAA,CAAA,YAAY,GAAG,IAAI,kBAAkB,EAAE;;IAMvC,QAAQ,GAAA;AACN,QAAA,IAAI,IAAI,CAAC,KAAK,EAAE;YACd,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC;;QAExC,IAAI,CAAC,YAAY,CAAC;aACf,IAAI,CAAC,oBAAoB,EAAE,EAAE,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC;AACrD,aAAA,SAAS,CAAC,CAAC,KAAa,KAAI;YAC3B,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,YAAY,CAAC,KAAK;YACpC,IAAI,CAAC,SAAS,EAAE;AAClB,SAAC,CAAC;;AAGN,IAAA,WAAW,CAAC,OAAsB,EAAA;AAChC,QAAA,IAAI,OAAO,GAAG,OAAO,CAAC,EAAE;YACtB,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC;;;8GAxB/B,oBAAoB,EAAA,IAAA,EAAA,EAAA,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,QAAA,EAAA,IAAA,EAAA,oBAAoB,EAZrB,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,eAAA,EAAA,IAAA,EAAA,aAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA;;;;;;;;GAQT,EAES,QAAA,EAAA,IAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,WAAW,sZAAE,mBAAmB,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,CAAA,aAAA,EAAA,UAAA,EAAA,SAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,QAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;2FAE/B,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBAdhC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,kBAAkB;AAC5B,oBAAA,QAAQ,EAAE;;;;;;;;AAQT,EAAA,CAAA;AACD,oBAAA,UAAU,EAAE,IAAI;AAChB,oBAAA,OAAO,EAAE,CAAC,WAAW,EAAE,mBAAmB,CAAC;AAC5C,iBAAA;;;ACEK,MAAO,qBAAsB,SAAQ,aAAa,CAAA;AAGtD,IAAA,WAAA,GAAA;AACE,QAAA,KAAK,EAAE;;IAGT,QAAQ,GAAA;AACN,QAAA,IAAI,IAAI,CAAC,YAAY,CAAC,YAAY,EAAE;YAClC,IAAI,CAAC,YAAY,CAAC;AACjB,iBAAA,IAAI,CACH,IAAI,CAAC,CAAC,CAAC,EACP,oBAAoB,EAAE,EACtB,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC;iBAEzB,SAAS,CAAC,CAAC,KAAa,KAAK,IAAI,CAAC,SAAS,EAAE,CAAC;;;8GAfxC,qBAAqB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;kGAArB,qBAAqB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,cAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,cAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,IAAA,EACG,SAAS,EAlBhC,MAAA,EAAA,IAAA,EAAA,CAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA;;;;;;;;;;;;;AAaT,IAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAES,WAAW,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,cAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,OAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,uBAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,OAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,0BAAA,EAAA,QAAA,EAAA,6GAAA,EAAA,MAAA,EAAA,CAAA,aAAA,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,CAAA,EAAA,CAAA,CAAA;;2FAEZ,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBAnBjC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,mBAAmB;AAC7B,oBAAA,QAAQ,EAAE;;;;;;;;;;;;;AAaT,IAAA,CAAA;AACD,oBAAA,UAAU,EAAE,IAAI;oBAChB,OAAO,EAAE,CAAC,WAAW;AACxB,iBAAA;wDAE+D,YAAY,EAAA,CAAA;sBAAzE,SAAS;uBAAC,cAAc,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE;;;ACoBxD,MAAO,sBAAuB,SAAQ,aAAa,CAAA;8GAA5C,sBAAsB,EAAA,IAAA,EAAA,IAAA,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,QAAA,EAAA,IAAA,EAAA,sBAAsB,EArCvB,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,0BAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA6BT,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAGC,qBAAqB,EAAA,QAAA,EAAA,mBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EACrB,uBAAuB,EAAA,QAAA,EAAA,qBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EACvB,oBAAoB,EAAA,QAAA,EAAA,kBAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;2FAGX,sBAAsB,EAAA,UAAA,EAAA,CAAA;kBAvClC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,0BAA0B;AACpC,oBAAA,QAAQ,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA6BT,EAAA,CAAA;AACD,oBAAA,UAAU,EAAE,IAAI;AAChB,oBAAA,OAAO,EAAE;wBACP,qBAAqB;wBACrB,uBAAuB;wBACvB,oBAAoB;AACrB,qBAAA;AACF,iBAAA;;;ACPK,MAAO,eAAgB,SAAQ,aAAa,CAAA;AAGhD,IAAA,WAAW,CAAC,OAAsB,EAAA;AAChC,QAAA,IAAI,OAAO,CAAC,QAAQ,CAAC,EAAE;AACrB,YAAA,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,WAAW,IAAI,IAAI,CAAC,cAAc,EAAE;AACzD,gBAAA,IAAI,CAAC,cAAc,CAAC,WAAW,EAAE;;AAEnC,YAAA,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,SAAS,EAAE,CAAC,SAAS,CAAC,CAAC,WAAW,KAAI;gBACxE,MAAM,UAAU,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,SAAS,EAAE;AAC5C,gBAAA,IAAI,UAAU,IAAI,UAAU,CAAC,OAAO,IAAI,UAAU,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE;AACvE,oBAAA,IAAI,CAAC,KAAK,GAAG,EAAE;;;;AAIV,qBAAA,IAAI,UAAU,IAAI,UAAU,CAAC,OAAO,IAAI,UAAU,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE;oBAC5E,UAAU,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAM,EAAE,CAAM,KAAI;wBAC5C,IAAI,CAAC,CAAC,KAAK,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AAC/B,4BAAA,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,MAAM;;AAEzB,qBAAC,CAAC;;AAEN,aAAC,CAAC;;;8GAtBK,eAAe,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAf,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,eAAe,EA7Bd,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,wBAAA,EAAA,eAAA,EAAA,IAAA,EAAA,aAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA;;;;;;;;;;;;;;;;;;;;;;;;;OAyBP,EAEO,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,CAAA,iWAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,qBAAqB,oEAAE,sBAAsB,EAAA,QAAA,EAAA,0BAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;2FAE9C,eAAe,EAAA,UAAA,EAAA,CAAA;kBAhC3B,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,wBAAwB,EAExB,QAAA,EAAA;;;;;;;;;;;;;;;;;;;;;;;;;AAyBP,MAAA,CAAA,EAAA,UAAA,EACW,IAAI,EACT,OAAA,EAAA,CAAC,qBAAqB,EAAE,sBAAsB,CAAC,EAAA,MAAA,EAAA,CAAA,iWAAA,CAAA,EAAA;;;MCT/C,kBAAkB,CAAA;AAjB/B,IAAA,WAAA,GAAA;AAkBW,QAAA,IAAA,CAAA,IAAI,GAAG,KAAK,CAAC,QAAQ,EAAQ;AAC7B,QAAA,IAAA,CAAA,MAAM,GAAG,KAAK,CAAC,QAAQ,EAAmB;QAC1C,IAAM,CAAA,MAAA,GAAG,MAAM,EAAO;AAEtB,QAAA,IAAA,CAAA,WAAW,GAAG,QAAQ,CAAC,MAAK;YACnC,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC,QAAQ,EAAE,CAAC,OAAO;YAC9C,IAAI,CAAC,OAAO,EAAE;AACZ,gBAAA,OAAO,KAAK;;AAEd,YAAA,OAAO,CAAC,CAAC,OAAO,CAAC,GAAG;AACtB,SAAC,CAAC;AACO,QAAA,IAAA,CAAA,mBAAmB,GAAG,QAAQ,CAAC,MAAK;YAC3C,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC,QAAQ,EAAE,EAAE,GAAG;YAC7C,IAAI,CAAC,SAAS,EAAE;AACd,gBAAA,OAAO,SAAS;;AAElB,YAAA,OAAO,SAAS,EAAE,gBAAgB,IAAI,SAAS;AACjD,SAAC,CAAC;AAcH;AAZC,IAAA,KAAK,CAAC,KAAU,EAAA;QACd,KAAK,CAAC,cAAc,EAAE;QACtB,KAAK,CAAC,eAAe,EAAE;AAEvB,QAAA,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC,KAAK,UAAU,EAAE;AACjD,YAAA,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC;AACf,gBAAA,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE;AACtB,aAAA,CAAC;;aACG;AACP,YAAA,IAAI,CAAC,IAAI,EAAE,CAAC,eAAe,GAAG,IAAI;;;8GA7BzB,kBAAkB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAlB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,kBAAkB,EAfnB,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,qBAAA,EAAA,MAAA,EAAA,EAAA,IAAA,EAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,MAAA,EAAA,EAAA,iBAAA,EAAA,QAAA,EAAA,UAAA,EAAA,QAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,OAAA,EAAA,EAAA,MAAA,EAAA,QAAA,EAAA,EAAA,IAAA,EAAA,EAAA,cAAA,EAAA,qDAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA;;;;;;;;;AAST,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,CAAA;;2FAMU,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBAjB9B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,qBAAqB;AAC/B,oBAAA,QAAQ,EAAE;;;;;;;;;AAST,EAAA,CAAA;AACD,oBAAA,IAAI,EAAE;AACJ,wBAAA,KAAK,EAAE,qDAAqD;AAC7D,qBAAA;AACD,oBAAA,UAAU,EAAE,IAAI;AACjB,iBAAA;;;MCgBY,wBAAwB,CAAA;AAlCrC,IAAA,WAAA,GAAA;AAmCW,QAAA,IAAA,CAAA,IAAI,GAAG,KAAK,CAAC,QAAQ,EAAQ;AAC7B,QAAA,IAAA,CAAA,MAAM,GAAG,KAAK,CAAC,QAAQ,EAAmB;QAE1C,IAAM,CAAA,MAAA,GAAG,MAAM,EAAO;QACtB,IAAM,CAAA,MAAA,GAAG,MAAM,EAAO;AAE/B,QAAA,IAAA,CAAA,gBAAgB,GAAG,QAAQ,CAAS,MAAK;YACvC,MAAM,aAAa,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC,QAAQ,EAAE,EAAE,MAAM;YACpD,IAAI,CAAC,aAAa,EAAE;AAClB,gBAAA,OAAO,EAAE;;AAEX,YAAA,OAAO,aAAa,CAAC,UAAU,IAAI,EAAE;AACvC,SAAC,CAAC;AAOH;IALC,iBAAiB,GAAA;QACf,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,UAAU,EAAE,IAAI,EAAE,EAAE,MAAM,CAC5C,CAAC,MAAc,KAAK,CAAC,MAAM,CAAC,IAAI,CACjC;;8GAlBQ,wBAAwB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAxB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,wBAAwB,EAhCzB,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,4BAAA,EAAA,MAAA,EAAA,EAAA,IAAA,EAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,MAAA,EAAA,EAAA,iBAAA,EAAA,QAAA,EAAA,UAAA,EAAA,QAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,OAAA,EAAA,EAAA,MAAA,EAAA,QAAA,EAAA,MAAA,EAAA,QAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BT,EAES,QAAA,EAAA,IAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,kBAAkB,iHAAE,eAAe,EAAA,QAAA,EAAA,wBAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;2FAElC,wBAAwB,EAAA,UAAA,EAAA,CAAA;kBAlCpC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,4BAA4B;AACtC,oBAAA,QAAQ,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA4BT,EAAA,CAAA;AACD,oBAAA,UAAU,EAAE,IAAI;AAChB,oBAAA,OAAO,EAAE,CAAC,kBAAkB,EAAE,eAAe,CAAC;AAC/C,iBAAA;;;MCdY,gBAAgB,CAAA;AAlB7B,IAAA,WAAA,GAAA;AAmBW,QAAA,IAAA,CAAA,IAAI,GAAG,KAAK,CAAC,QAAQ,EAAQ;QAC7B,IAAM,CAAA,MAAA,GAAG,MAAM,EAAO;AAE/B,QAAA,IAAA,CAAA,mBAAmB,GAAG,QAAQ,CAAC,MAAK;YAClC,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC,QAAQ,EAAE,CAAC,GAAG;YAC7C,IAAI,CAAC,UAAU,EAAE;AACf,gBAAA,OAAO,QAAQ;;AAEjB,YAAA,OAAO,UAAU,EAAE,mBAAmB,IAAI,QAAQ;AACpD,SAAC,CAAC;AACF,QAAA,IAAA,CAAA,mBAAmB,GAAG,QAAQ,CAAC,MAAK;YAClC,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC,QAAQ,EAAE,CAAC,GAAG;YAC7C,IAAI,CAAC,UAAU,EAAE;AACf,gBAAA,OAAO,QAAQ;;AAEjB,YAAA,OAAO,UAAU,EAAE,mBAAmB,IAAI,QAAQ;AACpD,SAAC,CAAC;AACH;8GAlBY,gBAAgB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAhB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,gBAAgB,EAhBjB,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,EAAA,IAAA,EAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,OAAA,EAAA,EAAA,MAAA,EAAA,QAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA;;;;;;;;;;;;;AAaT,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,CAAA;;2FAGU,gBAAgB,EAAA,UAAA,EAAA,CAAA;kBAlB5B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,gBAAgB;AAC1B,oBAAA,QAAQ,EAAE;;;;;;;;;;;;;AAaT,EAAA,CAAA;AACD,oBAAA,UAAU,EAAE,IAAI;AACjB,iBAAA;;;MCsBY,qBAAqB,CAAA;AAjClC,IAAA,WAAA,GAAA;AAkCW,QAAA,IAAA,CAAA,IAAI,GAAG,KAAK,CAAC,QAAQ,EAAQ;QAG7B,IAAM,CAAA,MAAA,GAAG,MAAM,EAAO;AAC/B,QAAA,IAAA,CAAA,aAAa,GAAG,QAAQ,CAAS,MAAK;YACpC,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC,QAAQ,EAAE,EAAE,GAAG;YAC9C,IAAI,CAAC,UAAU,EAAE;AACf,gBAAA,OAAO,EAAE;;AAEX,YAAA,OAAO,UAAU,CAAC,UAAU,IAAI,EAAE;AACpC,SAAC,CAAC;AAYH;AAVC,IAAA,QAAQ,CAAC,KAAU,EAAA;QACjB,KAAK,CAAC,eAAe,EAAE;AACvB,QAAA,IAAI,CAAC,IAAI,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,SAAS,EAAE,EAAE,IAAI,CAAC,aAAa,CAAC;;IAGjE,eAAe,GAAA;AACb,QAAA,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,SAAS,EAAE,CAAC,QAAQ,EAAE,IAAI,EAAE,EAAE,MAAM,CACtD,CAAC,IAAU,KAAK,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC,IAAI,CACvC;;8GArBQ,qBAAqB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAArB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,qBAAqB,EA/BtB,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,yBAAA,EAAA,MAAA,EAAA,EAAA,IAAA,EAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,aAAA,EAAA,EAAA,iBAAA,EAAA,eAAA,EAAA,UAAA,EAAA,eAAA,EAAA,QAAA,EAAA,KAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,OAAA,EAAA,EAAA,MAAA,EAAA,QAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BT,EAES,QAAA,EAAA,IAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,gBAAgB,kGAAE,aAAa,EAAA,QAAA,EAAA,sBAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,YAAA,EAAA,aAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;2FAE9B,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBAjCjC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,yBAAyB;AACnC,oBAAA,QAAQ,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;AA2BT,EAAA,CAAA;AACD,oBAAA,UAAU,EAAE,IAAI;AAChB,oBAAA,OAAO,EAAE,CAAC,gBAAgB,EAAE,aAAa,CAAC;AAC3C,iBAAA;8BAGU,aAAa,EAAA,CAAA;sBAArB;;;MClCU,qBAAqB,CAAA;AARlC,IAAA,WAAA,GAAA;AASW,QAAA,IAAA,CAAA,IAAI,GAAG,KAAK,CAAC,QAAQ,EAAQ;AAEtC,QAAA,IAAA,CAAA,kBAAkB,GAAG,QAAQ,CAAC,MAAK;YACjC,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC,QAAQ,EAAE,CAAC,OAAO;YAC9C,IAAI,CAAC,OAAO,EAAE;AACZ,gBAAA,OAAO,SAAS;;AAElB,YAAA,OAAO,OAAO,CAAC,WAAW,IAAI,SAAS;AACzC,SAAC,CAAC;AACH;8GAVY,qBAAqB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAArB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,qBAAqB,iQANtB,CAAiE,+DAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,CAAA;;2FAMhE,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBARjC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,wBAAwB;AAClC,oBAAA,QAAQ,EAAE,CAAiE,+DAAA,CAAA;AAC3E,oBAAA,UAAU,EAAE,IAAI;AAChB,oBAAA,IAAI,EAAE;AACJ,wBAAA,KAAK,EAAE,mBAAmB;AAC3B,qBAAA;AACF,iBAAA;;;MCHY,0BAA0B,CAAA;AARvC,IAAA,WAAA,GAAA;AASW,QAAA,IAAA,CAAA,IAAI,GAAG,KAAK,CAAC,QAAQ,EAAQ;AACvC;8GAFY,0BAA0B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAA1B,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,0BAA0B,EAN3B,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,8BAAA,EAAA,MAAA,EAAA,EAAA,IAAA,EAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA;;AAET,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAES,WAAW,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,4BAAA,EAAA,QAAA,EAAA,uGAAA,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,CAAA,EAAA,CAAA,CAAA;;2FAEV,0BAA0B,EAAA,UAAA,EAAA,CAAA;kBARtC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,8BAA8B;AACxC,oBAAA,QAAQ,EAAE;;AAET,EAAA,CAAA;AACD,oBAAA,UAAU,EAAE,IAAI;oBAChB,OAAO,EAAE,CAAC,WAAW,CAAC;AACvB,iBAAA;;;MCqBY,cAAc,CAAA;AAnB3B,IAAA,WAAA,GAAA;QAqBE,IAAgB,CAAA,gBAAA,GAAiC,EAAE;AAC1C,QAAA,IAAA,CAAA,MAAM,GAAG,KAAK,CAAC,QAAQ,EAAmB;AAC1C,QAAA,IAAA,CAAA,MAAM,GAAG,KAAK,CAAC,QAAQ,EAAU;QAEjC,IAAI,CAAA,IAAA,GAAG,MAAM,EAAO;QAEnB,IAAc,CAAA,cAAA,GAAyB,KAAK;AA+CvD;AA7CC,IAAA,WAAW,CAAC,OAAsB,EAAA;AAChC,QAAA,IAAI,OAAO,CAAC,QAAQ,CAAC,EAAE;AACrB,YAAA,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,WAAW,IAAI,IAAI,CAAC,cAAc,EAAE;AACzD,gBAAA,IAAI,CAAC,cAAc,CAAC,WAAW,EAAE;;AAEnC,YAAA,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,SAAS,EAAE,CAAC,SAAS,CAAC,CAAC,WAAW,KAAI;gBACxE,MAAM,QAAQ,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,OAAO,EAAE;gBAExC,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,IAAI,QAAQ,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;oBACpE,IAAI,CAAC,gBAAgB,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC;;qBAC3C;AACL,oBAAA,IAAI,CAAC,gBAAgB,GAAG,EAAE;;AAE9B,aAAC,CAAC;;;IAIN,WAAW,GAAA;AACT,QAAA,IAAI,IAAI,CAAC,cAAc,EAAE;AACvB,YAAA,IAAI,CAAC,cAAc,EAAE,WAAW,EAAE;;;AAItC,IAAA,KAAK,CAAC,KAAU,EAAA;QACd,KAAK,CAAC,cAAc,EAAE;QACtB,IAAI,CAAC,mBAAmB,EAAE;AAC1B,QAAA,IAAI,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC;AACpB,YAAA;AACE,gBAAA,KAAK,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE;AACvB,gBAAA,SAAS,EAAE,IAAI,CAAC,gBAAgB,KAAK,MAAM,GAAG,MAAM,GAAG,KAAK;AAC5D,gBAAA,OAAO,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC,kBAAkB,EAAE;AAC5C,aAAA;AACF,SAAA,CAAC;AACF,QAAA,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;;IAGtB,mBAAmB,GAAA;AACjB,QAAA,IAAI,IAAI,CAAC,gBAAgB,EAAE;AACzB,YAAA,MAAM,YAAY,GAAG,IAAI,CAAC,gBAAgB,KAAK,KAAK,GAAG,MAAM,GAAG,KAAK;AACrE,YAAA,IAAI,CAAC,gBAAgB,GAAG,YAAY;;aAC/B;YACL,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,aAAa;;QAErD,OAAO,IAAI,CAAC,gBAAgB;;8GArDnB,cAAc,EAAA,IAAA,EAAA,EAAA,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,QAAA,EAAA,IAAA,EAAA,cAAc,EAhBf,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,uBAAA,EAAA,MAAA,EAAA,EAAA,MAAA,EAAA,EAAA,iBAAA,EAAA,QAAA,EAAA,UAAA,EAAA,QAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,MAAA,EAAA,EAAA,iBAAA,EAAA,QAAA,EAAA,UAAA,EAAA,QAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,OAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,aAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA;;;;;;;;;;;;;AAaT,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,CAAA,iYAAA,CAAA,EAAA,CAAA,CAAA;;2FAGU,cAAc,EAAA,UAAA,EAAA,CAAA;kBAnB1B,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,uBAAuB,EAEvB,QAAA,EAAA;;;;;;;;;;;;;AAaT,EAAA,CAAA,EAAA,UAAA,EACW,IAAI,EAAA,MAAA,EAAA,CAAA,iYAAA,CAAA,EAAA;;;MCVL,oBAAoB,CAAA;AAdjC,IAAA,WAAA,GAAA;AAeW,QAAA,IAAA,CAAA,MAAM,GAAG,KAAK,CAAC,QAAQ,EAAmB;AAC1C,QAAA,IAAA,CAAA,MAAM,GAAG,KAAK,CAAC,QAAQ,EAAU;QAEjC,IAAI,CAAA,IAAA,GAAG,MAAM,EAAO;AAC9B;8GALY,oBAAoB,EAAA,IAAA,EAAA,EAAA,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,QAAA,EAAA,IAAA,EAAA,oBAAoB,EAZrB,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,qBAAA,EAAA,MAAA,EAAA,EAAA,MAAA,EAAA,EAAA,iBAAA,EAAA,QAAA,EAAA,UAAA,EAAA,QAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,MAAA,EAAA,EAAA,iBAAA,EAAA,QAAA,EAAA,UAAA,EAAA,QAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,OAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA;;;;;;;;AAQT,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAES,cAAc,EAAA,QAAA,EAAA,uBAAA,EAAA,MAAA,EAAA,CAAA,QAAA,EAAA,QAAA,CAAA,EAAA,OAAA,EAAA,CAAA,MAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;2FAEb,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBAdhC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,qBAAqB;AAC/B,oBAAA,QAAQ,EAAE;;;;;;;;AAQT,EAAA,CAAA;AACD,oBAAA,UAAU,EAAE,IAAI;oBAChB,OAAO,EAAE,CAAC,cAAc,CAAC;AAC1B,iBAAA;;;MCyBY,uBAAuB,CAAA;AAnCpC,IAAA,WAAA,GAAA;AAoCW,QAAA,IAAA,CAAA,IAAI,GAAG,KAAK,CAAC,QAAQ,EAAQ;AAC7B,QAAA,IAAA,CAAA,MAAM,GAAG,KAAK,CAAC,QAAQ,EAAmB;QAE1C,IAAI,CAAA,IAAA,GAAG,MAAM,EAAO;QACpB,IAAa,CAAA,aAAA,GAAG,MAAM,EAAO;AAOvC;IALC,iBAAiB,GAAA;QACf,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,UAAU,EAAE,IAAI,EAAE,EAAE,MAAM,CAC5C,CAAC,MAAc,KAAK,CAAC,MAAM,CAAC,IAAI,CACjC;;8GAVQ,uBAAuB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAvB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,uBAAuB,EAjCxB,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,2BAAA,EAAA,MAAA,EAAA,EAAA,IAAA,EAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,MAAA,EAAA,EAAA,iBAAA,EAAA,QAAA,EAAA,UAAA,EAAA,QAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,OAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,aAAA,EAAA,eAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA;;;;;;;;;;;;;;;;;;;;;;;;;AAyBT,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAGC,0BAA0B,EAAA,QAAA,EAAA,8BAAA,EAAA,MAAA,EAAA,CAAA,MAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAC1B,qBAAqB,EAAA,QAAA,EAAA,wBAAA,EAAA,MAAA,EAAA,CAAA,MAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EACrB,oBAAoB,EAAA,QAAA,EAAA,qBAAA,EAAA,MAAA,EAAA,CAAA,QAAA,EAAA,QAAA,CAAA,EAAA,OAAA,EAAA,CAAA,MAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;2FAGX,uBAAuB,EAAA,UAAA,EAAA,CAAA;kBAnCnC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,2BAA2B;AACrC,oBAAA,QAAQ,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;AAyBT,EAAA,CAAA;AACD,oBAAA,UAAU,EAAE,IAAI;AAChB,oBAAA,OAAO,EAAE;wBACP,0BAA0B;wBAC1B,qBAAqB;wBACrB,oBAAoB;AACrB,qBAAA;AACF,iBAAA;;;MCjBY,2BAA2B,CAAA;AAVxC,IAAA,WAAA,GAAA;AAWW,QAAA,IAAA,CAAA,IAAI,GAAG,KAAK,CAAC,QAAQ,EAAQ;AAC7B,QAAA,IAAA,CAAA,MAAM,GAAG,KAAK,CAAC,QAAQ,EAAmB;QAG1C,IAAI,CAAA,IAAA,GAAG,MAAM,EAAO;QACpB,IAAa,CAAA,aAAA,GAAG,MAAM,EAAO;QAC7B,IAAM,CAAA,MAAA,GAAG,MAAM,EAAO;QACtB,IAAM,CAAA,MAAA,GAAG,MAAM,EAAO;AAEtB,QAAA,IAAA,CAAA,YAAY,GAAG,QAAQ,CAAU,MAAK;YAC7C,OAAO,IAAI,CAAC,IAAI,EAAE,CAAC,QAAQ,EAAE,EAAE,UAAU,IAAI,KAAK;AACpD,SAAC,CAAC;AAEO,QAAA,IAAA,CAAA,eAAe,GAAG,QAAQ,CAAU,MAAK;YAChD,OAAO,IAAI,CAAC,IAAI,EAAE,CAAC,QAAQ,EAAE,EAAE,aAAa,IAAI,KAAK;AACvD,SAAC,CAAC;AACH;8GAjBY,2BAA2B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAA3B,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,2BAA2B,ojBC1BxC,mmBA0BA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EDLI,uBAAuB,EACvB,QAAA,EAAA,2BAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,QAAA,CAAA,EAAA,OAAA,EAAA,CAAA,MAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,wBAAwB,kIACxB,qBAAqB,EAAA,QAAA,EAAA,yBAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,eAAA,CAAA,EAAA,OAAA,EAAA,CAAA,QAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;2FAGZ,2BAA2B,EAAA,UAAA,EAAA,CAAA;kBAVvC,SAAS;+BACE,gBAAgB,EAAA,UAAA,EAEd,IAAI,EACP,OAAA,EAAA;wBACP,uBAAuB;wBACvB,wBAAwB;wBACxB,qBAAqB;AACtB,qBAAA,EAAA,QAAA,EAAA,mmBAAA,EAAA;8BAKQ,aAAa,EAAA,CAAA;sBAArB;;;MESU,sBAAsB,CAAA;AAwBjC,IAAA,WAAA,GAAA;QApBS,IAAc,CAAA,cAAA,GAAG,MAAM,EAA4B;QACnD,IAAU,CAAA,UAAA,GAAG,MAAM,EAA6B;QAChD,IAAa,CAAA,aAAA,GAAG,MAAM,EAAyB;QAC/C,IAAM,CAAA,MAAA,GAAG,MAAM,EAAO;QACtB,IAAI,CAAA,IAAA,GAAG,MAAM,EAAO;QACpB,IAAU,CAAA,UAAA,GAAG,MAAM,EAAO;QAC1B,IAAM,CAAA,MAAA,GAAG,MAAM,EAAO;QACtB,IAAM,CAAA,MAAA,GAAG,MAAM,EAAyB;QACxC,IAAa,CAAA,aAAA,GAAG,MAAM,EAAgC;QACtD,IAAW,CAAA,WAAA,GAAG,MAAM,EAA8B;QAClD,IAAa,CAAA,aAAA,GAAG,MAAM,EAA2B;QAE1D,IAAU,CAAA,UAAA,GAAG,EAAE;QACf,IAAO,CAAA,OAAA,GAAG,EAAE;QACZ,IAAa,CAAA,aAAA,GAAa,EAAE;QAC5B,IAAc,CAAA,cAAA,GAAG,KAAK;AACtB,QAAA,IAAA,CAAA,gBAAgB,GAAyB,MAAM,EAAE;QAK/C,MAAM,CAAC,MAAK;YACV,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;YACrC,IAAI,CAAC,OAAO,GAAG,QAAQ,CAAC,IAAI,EAAE,EAAE,IAAI,WAAW,EAAE;YACjD,IAAI,CAAC,UAAU,GAAG,QAAQ,CAAC,IAAI,EAAE,KAAK,IAAI,EAAE;AAC5C,YAAA,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,eAAe,EAAE,KAAK,CAAC;YAClE,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,qBAAqB,CAAC;AAChE,YAAA,IAAI,CAAC,gBAAgB,GAAG,QAAQ,CAAC,gBAAgB,KAAK,MAAM,EAAE,CAAC;AACjE,SAAC,CAAC;;AAGJ,IAAA,WAAW,CAAC,EAAC,QAAQ,EAAE,MAAM,EAA+B,EAAA;AAC1D,QAAA,IAAI,IAAI,CAAC,IAAI,EAAE;YACb,IAAI,QAAQ,EAAE;gBACZ,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC;;YAEtC,IAAI,MAAM,EAAE;AACV,gBAAA,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,aAAa,EAAE;gBAClC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC;;;aAE7B;YACL,IAAI,CAAC,QAAQ,EAAE;;;AAIT,IAAA,iBAAiB,CAAC,GAAQ,EAAA;AAClC,QAAA,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC;AAChC,QAAA,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC;;IAGnB,eAAe,GAAA;AACvB,QAAA,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC;AACzD,QAAA,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC;;IAGpB,WAAW,CAAC,GAAQ,EAAE,KAAc,EAAA;QAC5C,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,KAAK,CAAC;;AAGvB,IAAA,kBAAkB,CAAC,GAAQ,EAAA;AACnC,QAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;AACnB,YAAA,IAAI,EAAE,GAAG,GAAG,GAAG,CAAC,OAAO,EAAE,GAAG,IAAI;YAChC,MAAM,EAAE,IAAI,CAAC,MAAM;AACpB,SAAA,CAAC;;IAGI,QAAQ,GAAA;AACd,QAAA,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,aAAa,EAAE;AAClC,QAAA,IAAI,CAAC,IAAI,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,QAAQ,CAAC;QAChD,IAAI,CAAC,IAAI,CAAC,uBAAuB,CAAC,IAAI,CAAC,aAAa,CAAC;;IAG/C,aAAa,GAAA;AACnB,QAAA,IAAI,IAAI,CAAC,MAAM,YAAY,eAAe,EAAE;YAC1C,OAAO,IAAI,CAAC,MAAM;;QAEpB,OAAO,IAAI,eAAe,EAAE;;AAGtB,IAAA,iBAAiB,CAAC,GAAe,EAAA;AACvC,QAAA,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC;AACvB,YAAA,IAAI,EAAE,GAAG,GAAG,GAAG,CAAC,OAAO,EAAE,GAAG,IAAI;AAChC,YAAA,UAAU,EAAE,GAAG,GAAG,GAAG,CAAC,aAAa,EAAE,GAAG,KAAK;YAC7C,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,QAAQ,EAAE,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,mBAAmB,EAAE;AAClD,SAAA,CAAC;;8GAzFO,sBAAsB,EAAA,IAAA,EAAA,EAAA,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,QAAA,EAAA,IAAA,EAAA,sBAAsB,ubCtCnC,i5BA+BA,EAAA,MAAA,EAAA,CAAA,gsBAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EDEI,2BAA2B,EAC3B,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,QAAA,EAAA,eAAA,CAAA,EAAA,OAAA,EAAA,CAAA,MAAA,EAAA,eAAA,EAAA,QAAA,EAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,2BAA2B,2RAC3B,cAAc,EAAA,QAAA,EAAA,uBAAA,EAAA,MAAA,EAAA,CAAA,QAAA,EAAA,eAAA,CAAA,EAAA,OAAA,EAAA,CAAA,YAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;2FAGL,sBAAsB,EAAA,UAAA,EAAA,CAAA;kBAXlC,SAAS;+BACE,iBAAiB,EAAA,UAAA,EAGf,IAAI,EACP,OAAA,EAAA;wBACP,2BAA2B;wBAC3B,2BAA2B;wBAC3B,cAAc;AACf,qBAAA,EAAA,QAAA,EAAA,i5BAAA,EAAA,MAAA,EAAA,CAAA,gsBAAA,CAAA,EAAA;wDAGwB,MAAM,EAAA,CAAA;sBAA9B,KAAK;uBAAC,EAAC,QAAQ,EAAE,IAAI,EAAC;gBACE,QAAQ,EAAA,CAAA;sBAAhC,KAAK;uBAAC,EAAC,QAAQ,EAAE,IAAI,EAAC;;;AExCzB;;AAEG;;;;"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { EventEmitter, InputSignal, OnDestroy, OutputEmitterRef } from '@angular/core';
|
|
2
2
|
import { Subscription } from 'rxjs';
|
|
3
|
+
import { LocalDataSource } from 'ng2-smart-table';
|
|
3
4
|
import { Column } from '../../../lib/data-set/column';
|
|
4
5
|
import * as i0 from "@angular/core";
|
|
5
6
|
export declare class DefaultFilter implements Filter, OnDestroy {
|
|
@@ -7,18 +8,20 @@ export declare class DefaultFilter implements Filter, OnDestroy {
|
|
|
7
8
|
changesSubscription?: Subscription;
|
|
8
9
|
query: string;
|
|
9
10
|
readonly inputClass: InputSignal<string>;
|
|
11
|
+
readonly source: InputSignal<LocalDataSource<any>>;
|
|
10
12
|
readonly column: InputSignal<Column>;
|
|
11
13
|
readonly filter: OutputEmitterRef<string>;
|
|
12
14
|
ngOnDestroy(): void;
|
|
13
15
|
setFilter(): void;
|
|
14
16
|
static ɵfac: i0.ɵɵFactoryDeclaration<DefaultFilter, never>;
|
|
15
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<DefaultFilter, "ng2-default-base-filter-component", never, { "query": { "alias": "query"; "required": false; }; "inputClass": { "alias": "inputClass"; "required": false; "isSignal": true; }; "column": { "alias": "column"; "required": true; "isSignal": true; }; }, { "filter": "filter"; }, never, never, true, never>;
|
|
17
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<DefaultFilter, "ng2-default-base-filter-component", never, { "query": { "alias": "query"; "required": false; }; "inputClass": { "alias": "inputClass"; "required": false; "isSignal": true; }; "source": { "alias": "source"; "required": true; "isSignal": true; }; "column": { "alias": "column"; "required": true; "isSignal": true; }; }, { "filter": "filter"; }, never, never, true, never>;
|
|
16
18
|
}
|
|
17
19
|
export interface Filter {
|
|
18
20
|
delay?: number;
|
|
19
21
|
changesSubscription?: Subscription;
|
|
20
22
|
query: string;
|
|
21
23
|
inputClass: InputSignal<string>;
|
|
24
|
+
source: InputSignal<LocalDataSource>;
|
|
22
25
|
column: InputSignal<Column>;
|
|
23
26
|
filter: EventEmitter<string> | OutputEmitterRef<any>;
|
|
24
27
|
}
|