@elite.framework/ng.ui.core 1.0.86 → 1.0.88
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.
|
@@ -335,11 +335,11 @@ class GenericTable {
|
|
|
335
335
|
}
|
|
336
336
|
}
|
|
337
337
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.8", ngImport: i0, type: GenericTable, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
338
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.1.8", type: GenericTable, isStandalone: true, selector: "lib-generic-table", inputs: { data: "data", columns: "columns", loading: "loading", actions: "actions", actionsPosition: "actionsPosition", actionsMode: "actionsMode", first: "first", rows: "rows", totalRecords: "totalRecords", sortField: "sortField", sortOrder: "sortOrder", globalFilterFields: "globalFilterFields", addButtonConfigs: "addButtonConfigs", scrollHeight: "scrollHeight", rowSelectable: "rowSelectable", rowStyleFn: "rowStyleFn", rowClassFn: "rowClassFn", disableRowCheckboxFn: "disableRowCheckboxFn", selection: "selection", paginator: "paginator", showRowSelectionCheckbox: "showRowSelectionCheckbox" }, outputs: { action: "action", pageChange: "pageChange", onAddNew: "onAddNew", rowSelect: "rowSelect", selectionChange: "selectionChange" }, viewQueries: [{ propertyName: "dt", first: true, predicate: ["dt"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<div class=\"flex flex-col h-screen\" style=\" height: 60vh;\">\r\n <div class=\"flex-1 border rounded-lg overflow-hidden flex flex-col\">\r\n\r\n <!-- PrimeNG Table -->\r\n <p-table #dt\r\n [value]=\"data_\"\r\n [columns]=\"columns\"\r\n [lazy]=\"true\"\r\n [paginator]=\"false\"\r\n [rows]=\"rows\"\r\n [first]=\"first\"\r\n [totalRecords]=\"totalRecords\"\r\n (onLazyLoad)=\"onLazyLoad($event)\"\r\n [globalFilterFields]=\"globalFilterFields\"\r\n [loading]=\"loading\"\r\n [scrollable]=\"true\"\r\n scrollHeight=\"flex\"\r\n [selectionMode]=\"showRowSelectionCheckbox ? 'multiple' : (rowSelectable ? 'single' : undefined)\"\r\n [(selection)]=\"_selection\"\r\n (onRowSelect)=\"onInternalSelectionChange($event)\"\r\n (onRowUnselect)=\"onInternalSelectionChange($event)\"\r\n (onHeaderCheckboxToggle)=\"onInternalSelectionChange($event)\"\r\n tableLayout=\"fixed\"\r\n [customSort]=\"false\"\r\n class=\"flex-1 overflow-auto\"\r\n >\r\n\r\n <!-- Empty message -->\r\n <ng-template pTemplate=\"emptymessage\">\r\n <tr>\r\n <td colspan=\"10\">\r\n <div class=\"flex flex-col items-center justify-center py-10 text-center w-full\">\r\n <i class=\"pi pi-inbox text-4xl text-gray-400 mb-4\"></i>\r\n <p class=\"text-gray-500 mb-4\">{{ 'NO_DATA_FOUND' | translate }}</p>\r\n\r\n <ng-container *ngFor=\"let btn of addButtonConfigs; trackBy: trackByIdx\">\r\n <lib-generic-button\r\n *ngIf=\"!btn.visible || btn.visible === true\"\r\n [icon]=\"btn.icon\"\r\n [label]=\"btn.label | translate\"\r\n [variant]=\"btn.variant\"\r\n [size]=\"btn.size\"\r\n [model]=\"btn.splitActions\"\r\n [permission]=\"btn.permission\"\r\n (clicked)=\"onAddNew.emit()\"\r\n class=\"mb-2\"\r\n ></lib-generic-button>\r\n </ng-container>\r\n </div>\r\n </td>\r\n </tr>\r\n </ng-template>\r\n\r\n <!-- Table header -->\r\n <ng-template pTemplate=\"header\" let-columns>\r\n <tr class=\"bg-gray-200 sticky top-0 z-10\">\r\n <th *ngIf=\"showRowSelectionCheckbox\" style=\"width: 2rem\">\r\n <p-tableHeaderCheckbox></p-tableHeaderCheckbox>\r\n </th>\r\n <th *ngIf=\"actions.length > 0 && actionsPosition === 'start'\" class=\"px-4 py-2 text-sm font-medium text-center sticky right-0\">\r\n {{ '*' | translate }}\r\n </th>\r\n <ng-container *ngFor=\"let col of columns; trackBy: trackByFn\">\r\n <th\r\n [pSortableColumn]=\"col.props.entityKey || col.key\"\r\n class=\"px-4 py-2 text-sm font-medium text-center\"\r\n [style.min-width]=\"col.props?.table?.props?.width || '150px'\"\r\n >\r\n {{ col.props?.label | translate }}\r\n <p-sortIcon [field]=\"col.props.entityKey || col.key\"></p-sortIcon>\r\n </th>\r\n </ng-container>\r\n\r\n <th *ngIf=\"actions.length > 0 && actionsPosition === 'end'\" class=\"px-4 py-2 text-sm font-medium text-center sticky left-0\">\r\n {{ '*' | translate }}\r\n </th>\r\n </tr>\r\n </ng-template>\r\n\r\n <!-- Table body -->\r\n <ng-template pTemplate=\"body\" let-rowData let-columns=\"columns\" let-i=\"rowIndex\">\r\n <tr class=\"even:bg-gray-50 hover:bg-gray-100 cursor-pointer\" (click)=\"rowSelect.emit(rowData)\">\r\n <td *ngIf=\"showRowSelectionCheckbox\" style=\"width: 2rem\">\r\n <p-tableCheckbox [value]=\"rowData\"></p-tableCheckbox>\r\n </td>\r\n <td *ngIf=\"actions.length > 0 && actionsPosition === 'start'\" class=\"border-t border-gray-200 px-4 py-2 text-center sticky right-0 bg-gray-50\">\r\n <ng-container\r\n *ngTemplateOutlet=\"actionsTemplate; context: {$implicit: rowData}\">\r\n </ng-container>\r\n\r\n </td>\r\n\r\n <td\r\n *ngFor=\"let col of rowData.rowFields; let colIndex = index; trackBy: trackByFn\"\r\n class=\"border-t border-gray-200 px-4 py-2 text-center text-sm text-gray-700\"\r\n [style.width]=\"col.props?.table?.props?.width\"\r\n >\r\n <formly-form\r\n [model]=\"rowData\"\r\n [form]=\"getForm(i, colIndex)\"\r\n [fields]=\"[col]\"\r\n [options]=\"options\"\r\n ></formly-form>\r\n </td>\r\n\r\n <td *ngIf=\"actions.length > 0 && actionsPosition === 'end'\" class=\"border-t border-gray-200 px-4 py-2 text-center sticky left-0\">\r\n <ng-container\r\n *ngTemplateOutlet=\"actionsTemplate; context: {$implicit: rowData}\">\r\n </ng-container>\r\n\r\n </td>\r\n </tr>\r\n\r\n </ng-template>\r\n\r\n\r\n </p-table>\r\n </div>\r\n</div>\r\n\r\n<ng-template #actionsTemplate let-rowData>\r\n <ng-container [ngSwitch]=\"actionsMode\">\r\n\r\n <ng-container *ngSwitchCase=\"'buttons'\">\r\n <ng-container *ngFor=\"let act of sortedActions\">\r\n <button\r\n *ngIf=\"act.icon || act.label\"\r\n pButton\r\n [icon]=\"act.icon || ''\"\r\n [label]=\"(act.label ?? '') | translate\"\r\n [class]=\"act.styleClass || ''\"\r\n class=\"p-button-sm mx-1\"\r\n (click)=\"onAction(act, rowData)\" ></button>\r\n </ng-container>\r\n </ng-container>\r\n\r\n <ng-container *ngSwitchCase=\"'menu'\">\r\n <app-action-menu [items]=\"getMenuItems(rowData) || []\"></app-action-menu>\r\n <!-- <p-menu #menu [model]=\"getMenuItems(rowData)\" [popup]=\"true\" appendTo=\"body\"></p-menu>\r\n <p-button\r\n outlined\r\n icon=\"pi pi-ellipsis-v\"\r\n class=\"p-button-text p-button-sm\"\r\n (onClick)=\"menu.toggle($event)\"\r\n ></p-button> -->\r\n </ng-container>\r\n\r\n </ng-container>\r\n</ng-template>\r\n\r\n", styles: [".custom-button-medium{font-size:1.1rem;width:2.5rem;height:2.5rem;line-height:2.5rem;padding:0}.custom-button-gray{color:#333;background-color:transparent;border:none}.custom-button-gray:hover{background-color:#eee;color:#000}.icon-delete{color:red!important}.icon-edit{color:#333}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i1.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i1.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "ngmodule", type: TableModule }, { kind: "component", type: i2$1.Table, selector: "p-table", inputs: ["frozenColumns", "frozenValue", "styleClass", "tableStyle", "tableStyleClass", "paginator", "pageLinks", "rowsPerPageOptions", "alwaysShowPaginator", "paginatorPosition", "paginatorStyleClass", "paginatorDropdownAppendTo", "paginatorDropdownScrollHeight", "currentPageReportTemplate", "showCurrentPageReport", "showJumpToPageDropdown", "showJumpToPageInput", "showFirstLastIcon", "showPageLinks", "defaultSortOrder", "sortMode", "resetPageOnSort", "selectionMode", "selectionPageOnly", "contextMenuSelection", "contextMenuSelectionMode", "dataKey", "metaKeySelection", "rowSelectable", "rowTrackBy", "lazy", "lazyLoadOnInit", "compareSelectionBy", "csvSeparator", "exportFilename", "filters", "globalFilterFields", "filterDelay", "filterLocale", "expandedRowKeys", "editingRowKeys", "rowExpandMode", "scrollable", "rowGroupMode", "scrollHeight", "virtualScroll", "virtualScrollItemSize", "virtualScrollOptions", "virtualScrollDelay", "frozenWidth", "contextMenu", "resizableColumns", "columnResizeMode", "reorderableColumns", "loading", "loadingIcon", "showLoader", "rowHover", "customSort", "showInitialSortBadge", "exportFunction", "exportHeader", "stateKey", "stateStorage", "editMode", "groupRowsBy", "size", "showGridlines", "stripedRows", "groupRowsByOrder", "responsiveLayout", "breakpoint", "paginatorLocale", "value", "columns", "first", "rows", "totalRecords", "sortField", "sortOrder", "multiSortMeta", "selection", "selectAll"], outputs: ["contextMenuSelectionChange", "selectAllChange", "selectionChange", "onRowSelect", "onRowUnselect", "onPage", "onSort", "onFilter", "onLazyLoad", "onRowExpand", "onRowCollapse", "onContextMenuSelect", "onColResize", "onColReorder", "onRowReorder", "onEditInit", "onEditComplete", "onEditCancel", "onHeaderCheckboxToggle", "sortFunction", "firstChange", "rowsChange", "onStateSave", "onStateRestore"] }, { kind: "directive", type: i3.PrimeTemplate, selector: "[pTemplate]", inputs: ["type", "pTemplate"] }, { kind: "directive", type: i2$1.SortableColumn, selector: "[pSortableColumn]", inputs: ["pSortableColumn", "pSortableColumnDisabled"] }, { kind: "component", type: i2$1.SortIcon, selector: "p-sortIcon", inputs: ["field"] }, { kind: "component", type: i2$1.TableCheckbox, selector: "p-tableCheckbox", inputs: ["value", "disabled", "required", "index", "inputId", "name", "ariaLabel"] }, { kind: "component", type: i2$1.TableHeaderCheckbox, selector: "p-tableHeaderCheckbox", inputs: ["disabled", "inputId", "name", "ariaLabel"] }, { kind: "ngmodule", type: ButtonModule }, { kind: "directive", type: i4.ButtonDirective, selector: "[pButton]", inputs: ["iconPos", "loadingIcon", "loading", "severity", "raised", "rounded", "text", "outlined", "size", "plain", "fluid", "label", "icon", "buttonProps"] }, { kind: "ngmodule", type: MenuModule }, { kind: "ngmodule", type: TranslateModule }, { kind: "component", type: FormlyForm, selector: "formly-form", inputs: ["form", "model", "fields", "options"], outputs: ["modelChange"] }, { kind: "component", type: GenericButton, selector: "lib-generic-button", inputs: ["model", "type", "icon", "label", "variant", "severity", "size", "iconPosition", "disabled", "loading", "ariaLabel", "extraClasses", "permission"], outputs: ["clicked", "itemClick"] }, { kind: "ngmodule", type: PaginatorModule }, { kind: "component", type: ActionMenuComponent, selector: "app-action-menu", inputs: ["items"] }, { kind: "pipe", type: i5.TranslatePipe, name: "translate" }] });
|
|
338
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.1.8", type: GenericTable, isStandalone: true, selector: "lib-generic-table", inputs: { data: "data", columns: "columns", loading: "loading", actions: "actions", actionsPosition: "actionsPosition", actionsMode: "actionsMode", first: "first", rows: "rows", totalRecords: "totalRecords", sortField: "sortField", sortOrder: "sortOrder", globalFilterFields: "globalFilterFields", addButtonConfigs: "addButtonConfigs", scrollHeight: "scrollHeight", rowSelectable: "rowSelectable", rowStyleFn: "rowStyleFn", rowClassFn: "rowClassFn", disableRowCheckboxFn: "disableRowCheckboxFn", selection: "selection", paginator: "paginator", showRowSelectionCheckbox: "showRowSelectionCheckbox" }, outputs: { action: "action", pageChange: "pageChange", onAddNew: "onAddNew", rowSelect: "rowSelect", selectionChange: "selectionChange" }, viewQueries: [{ propertyName: "dt", first: true, predicate: ["dt"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<div class=\"flex flex-col h-screen\" style=\" height: 60vh;\">\r\n <div class=\"flex-1 border rounded-lg overflow-hidden flex flex-col\">\r\n\r\n <!-- PrimeNG Table -->\r\n <p-table #dt\r\n [value]=\"data_\"\r\n [columns]=\"columns\"\r\n [lazy]=\"true\"\r\n [paginator]=\"false\"\r\n [rows]=\"rows\"\r\n [first]=\"first\"\r\n [totalRecords]=\"totalRecords\"\r\n (onLazyLoad)=\"onLazyLoad($event)\"\r\n [globalFilterFields]=\"globalFilterFields\"\r\n [loading]=\"loading\"\r\n [scrollable]=\"true\"\r\n scrollHeight=\"flex\"\r\n [selectionMode]=\"showRowSelectionCheckbox ? 'multiple' : (rowSelectable ? 'single' : undefined)\"\r\n [(selection)]=\"_selection\"\r\n (onRowSelect)=\"onInternalSelectionChange($event)\"\r\n (onRowUnselect)=\"onInternalSelectionChange($event)\"\r\n (onHeaderCheckboxToggle)=\"onInternalSelectionChange($event)\"\r\n tableLayout=\"fixed\"\r\n [customSort]=\"false\"\r\n class=\"flex-1 overflow-auto\"\r\n >\r\n\r\n <!-- Empty message -->\r\n <ng-template pTemplate=\"emptymessage\">\r\n <tr>\r\n <td colspan=\"10\">\r\n <div class=\"flex flex-col items-center justify-center py-10 text-center w-full\">\r\n <i class=\"pi pi-inbox text-4xl text-gray-400 mb-4\"></i>\r\n <p class=\"text-gray-500 mb-4\">{{ 'NO_DATA_FOUND' | translate }}</p>\r\n\r\n <ng-container *ngFor=\"let btn of addButtonConfigs; trackBy: trackByIdx\">\r\n <lib-generic-button\r\n *ngIf=\"!btn.visible || btn.visible === true\"\r\n [icon]=\"btn.icon\"\r\n [label]=\"btn.label | translate\"\r\n [variant]=\"btn.variant\"\r\n [size]=\"btn.size\"\r\n [model]=\"btn.splitActions\"\r\n [permission]=\"btn.permission\"\r\n (clicked)=\"onAddNew.emit()\"\r\n class=\"mb-2\"\r\n ></lib-generic-button>\r\n </ng-container>\r\n </div>\r\n </td>\r\n </tr>\r\n </ng-template>\r\n\r\n <!-- Table header -->\r\n <ng-template pTemplate=\"header\" let-columns>\r\n <tr class=\"bg-gray-200 sticky top-0 z-10\">\r\n <th *ngIf=\"showRowSelectionCheckbox\" style=\"width: 2rem\">\r\n <p-tableHeaderCheckbox></p-tableHeaderCheckbox>\r\n </th>\r\n <th *ngIf=\"actions.length > 0 && actionsPosition === 'start'\" class=\"px-4 py-2 text-sm font-medium text-center sticky right-0\">\r\n {{ '*' | translate }}\r\n </th>\r\n <ng-container *ngFor=\"let col of columns; trackBy: trackByFn\">\r\n <th\r\n [pSortableColumn]=\"col.props.entityKey || col.key\"\r\n class=\"px-4 py-2 text-sm font-medium text-center\"\r\n [style.min-width]=\"col.props?.table?.props?.width || '150px'\"\r\n >\r\n {{ col.props?.label | translate }}\r\n <p-sortIcon [field]=\"col.props.entityKey || col.key\"></p-sortIcon>\r\n </th>\r\n </ng-container>\r\n\r\n <th *ngIf=\"actions.length > 0 && actionsPosition === 'end'\" class=\"px-4 py-2 text-sm font-medium text-center sticky left-0\">\r\n {{ '*' | translate }}\r\n </th>\r\n </tr>\r\n </ng-template>\r\n\r\n <!-- Table body -->\r\n <ng-template pTemplate=\"body\" let-rowData let-columns=\"columns\" let-i=\"rowIndex\">\r\n <tr class=\"even:bg-gray-50 hover:bg-gray-100 cursor-pointer\"\r\n (click)=\"rowSelect.emit(rowData)\"\r\n [ngClass]=\"rowClassFn ? rowClassFn(rowData) : null\"\r\n [ngStyle]=\"rowStyleFn ? rowStyleFn(rowData) : null\">\r\n <td *ngIf=\"showRowSelectionCheckbox\" style=\"width: 2rem\">\r\n <p-tableCheckbox\r\n [value]=\"rowData\"\r\n [disabled]=\"disableRowCheckboxFn ? disableRowCheckboxFn(rowData) : false\"\r\n ></p-tableCheckbox>\r\n </td>\r\n <td *ngIf=\"actions.length > 0 && actionsPosition === 'start'\" class=\"border-t border-gray-200 px-4 py-2 text-center sticky right-0 bg-gray-50\">\r\n <ng-container\r\n *ngTemplateOutlet=\"actionsTemplate; context: {$implicit: rowData}\">\r\n </ng-container>\r\n\r\n </td>\r\n\r\n <td\r\n *ngFor=\"let col of rowData.rowFields; let colIndex = index; trackBy: trackByFn\"\r\n class=\"border-t border-gray-200 px-4 py-2 text-center text-sm text-gray-700\"\r\n [style.width]=\"col.props?.table?.props?.width\"\r\n >\r\n <formly-form\r\n [model]=\"rowData\"\r\n [form]=\"getForm(i, colIndex)\"\r\n [fields]=\"[col]\"\r\n [options]=\"options\"\r\n ></formly-form>\r\n </td>\r\n\r\n <td *ngIf=\"actions.length > 0 && actionsPosition === 'end'\" class=\"border-t border-gray-200 px-4 py-2 text-center sticky left-0\">\r\n <ng-container\r\n *ngTemplateOutlet=\"actionsTemplate; context: {$implicit: rowData}\">\r\n </ng-container>\r\n\r\n </td>\r\n </tr>\r\n\r\n </ng-template>\r\n\r\n\r\n </p-table>\r\n </div>\r\n</div>\r\n\r\n<ng-template #actionsTemplate let-rowData>\r\n <ng-container [ngSwitch]=\"actionsMode\">\r\n\r\n <ng-container *ngSwitchCase=\"'buttons'\">\r\n <ng-container *ngFor=\"let act of sortedActions\">\r\n <button\r\n *ngIf=\"act.icon || act.label\"\r\n pButton\r\n [icon]=\"act.icon || ''\"\r\n [label]=\"(act.label ?? '') | translate\"\r\n [class]=\"act.styleClass || ''\"\r\n class=\"p-button-sm mx-1\"\r\n (click)=\"onAction(act, rowData)\" ></button>\r\n </ng-container>\r\n </ng-container>\r\n\r\n <ng-container *ngSwitchCase=\"'menu'\">\r\n <app-action-menu [items]=\"getMenuItems(rowData) || []\"></app-action-menu>\r\n <!-- <p-menu #menu [model]=\"getMenuItems(rowData)\" [popup]=\"true\" appendTo=\"body\"></p-menu>\r\n <p-button\r\n outlined\r\n icon=\"pi pi-ellipsis-v\"\r\n class=\"p-button-text p-button-sm\"\r\n (onClick)=\"menu.toggle($event)\"\r\n ></p-button> -->\r\n </ng-container>\r\n\r\n </ng-container>\r\n</ng-template>\r\n\r\n", styles: [".custom-button-medium{font-size:1.1rem;width:2.5rem;height:2.5rem;line-height:2.5rem;padding:0}.custom-button-gray{color:#333;background-color:transparent;border:none}.custom-button-gray:hover{background-color:#eee;color:#000}.icon-delete{color:red!important}.icon-edit{color:#333}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "directive", type: i1.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i1.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "ngmodule", type: TableModule }, { kind: "component", type: i2$1.Table, selector: "p-table", inputs: ["frozenColumns", "frozenValue", "styleClass", "tableStyle", "tableStyleClass", "paginator", "pageLinks", "rowsPerPageOptions", "alwaysShowPaginator", "paginatorPosition", "paginatorStyleClass", "paginatorDropdownAppendTo", "paginatorDropdownScrollHeight", "currentPageReportTemplate", "showCurrentPageReport", "showJumpToPageDropdown", "showJumpToPageInput", "showFirstLastIcon", "showPageLinks", "defaultSortOrder", "sortMode", "resetPageOnSort", "selectionMode", "selectionPageOnly", "contextMenuSelection", "contextMenuSelectionMode", "dataKey", "metaKeySelection", "rowSelectable", "rowTrackBy", "lazy", "lazyLoadOnInit", "compareSelectionBy", "csvSeparator", "exportFilename", "filters", "globalFilterFields", "filterDelay", "filterLocale", "expandedRowKeys", "editingRowKeys", "rowExpandMode", "scrollable", "rowGroupMode", "scrollHeight", "virtualScroll", "virtualScrollItemSize", "virtualScrollOptions", "virtualScrollDelay", "frozenWidth", "contextMenu", "resizableColumns", "columnResizeMode", "reorderableColumns", "loading", "loadingIcon", "showLoader", "rowHover", "customSort", "showInitialSortBadge", "exportFunction", "exportHeader", "stateKey", "stateStorage", "editMode", "groupRowsBy", "size", "showGridlines", "stripedRows", "groupRowsByOrder", "responsiveLayout", "breakpoint", "paginatorLocale", "value", "columns", "first", "rows", "totalRecords", "sortField", "sortOrder", "multiSortMeta", "selection", "selectAll"], outputs: ["contextMenuSelectionChange", "selectAllChange", "selectionChange", "onRowSelect", "onRowUnselect", "onPage", "onSort", "onFilter", "onLazyLoad", "onRowExpand", "onRowCollapse", "onContextMenuSelect", "onColResize", "onColReorder", "onRowReorder", "onEditInit", "onEditComplete", "onEditCancel", "onHeaderCheckboxToggle", "sortFunction", "firstChange", "rowsChange", "onStateSave", "onStateRestore"] }, { kind: "directive", type: i3.PrimeTemplate, selector: "[pTemplate]", inputs: ["type", "pTemplate"] }, { kind: "directive", type: i2$1.SortableColumn, selector: "[pSortableColumn]", inputs: ["pSortableColumn", "pSortableColumnDisabled"] }, { kind: "component", type: i2$1.SortIcon, selector: "p-sortIcon", inputs: ["field"] }, { kind: "component", type: i2$1.TableCheckbox, selector: "p-tableCheckbox", inputs: ["value", "disabled", "required", "index", "inputId", "name", "ariaLabel"] }, { kind: "component", type: i2$1.TableHeaderCheckbox, selector: "p-tableHeaderCheckbox", inputs: ["disabled", "inputId", "name", "ariaLabel"] }, { kind: "ngmodule", type: ButtonModule }, { kind: "directive", type: i4.ButtonDirective, selector: "[pButton]", inputs: ["iconPos", "loadingIcon", "loading", "severity", "raised", "rounded", "text", "outlined", "size", "plain", "fluid", "label", "icon", "buttonProps"] }, { kind: "ngmodule", type: MenuModule }, { kind: "ngmodule", type: TranslateModule }, { kind: "component", type: FormlyForm, selector: "formly-form", inputs: ["form", "model", "fields", "options"], outputs: ["modelChange"] }, { kind: "component", type: GenericButton, selector: "lib-generic-button", inputs: ["model", "type", "icon", "label", "variant", "severity", "size", "iconPosition", "disabled", "loading", "ariaLabel", "extraClasses", "permission"], outputs: ["clicked", "itemClick"] }, { kind: "ngmodule", type: PaginatorModule }, { kind: "component", type: ActionMenuComponent, selector: "app-action-menu", inputs: ["items"] }, { kind: "pipe", type: i5.TranslatePipe, name: "translate" }] });
|
|
339
339
|
}
|
|
340
340
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.8", ngImport: i0, type: GenericTable, decorators: [{
|
|
341
341
|
type: Component,
|
|
342
|
-
args: [{ selector: 'lib-generic-table', imports: [CommonModule, TableModule, ButtonModule, MenuModule, NgForOf, TranslateModule, FormlyField, FormlyForm, NgIf, TranslatePipe, Menu, Button, GenericButton, PaginatorModule, ActionMenuComponent], template: "<div class=\"flex flex-col h-screen\" style=\" height: 60vh;\">\r\n <div class=\"flex-1 border rounded-lg overflow-hidden flex flex-col\">\r\n\r\n <!-- PrimeNG Table -->\r\n <p-table #dt\r\n [value]=\"data_\"\r\n [columns]=\"columns\"\r\n [lazy]=\"true\"\r\n [paginator]=\"false\"\r\n [rows]=\"rows\"\r\n [first]=\"first\"\r\n [totalRecords]=\"totalRecords\"\r\n (onLazyLoad)=\"onLazyLoad($event)\"\r\n [globalFilterFields]=\"globalFilterFields\"\r\n [loading]=\"loading\"\r\n [scrollable]=\"true\"\r\n scrollHeight=\"flex\"\r\n [selectionMode]=\"showRowSelectionCheckbox ? 'multiple' : (rowSelectable ? 'single' : undefined)\"\r\n [(selection)]=\"_selection\"\r\n (onRowSelect)=\"onInternalSelectionChange($event)\"\r\n (onRowUnselect)=\"onInternalSelectionChange($event)\"\r\n (onHeaderCheckboxToggle)=\"onInternalSelectionChange($event)\"\r\n tableLayout=\"fixed\"\r\n [customSort]=\"false\"\r\n class=\"flex-1 overflow-auto\"\r\n >\r\n\r\n <!-- Empty message -->\r\n <ng-template pTemplate=\"emptymessage\">\r\n <tr>\r\n <td colspan=\"10\">\r\n <div class=\"flex flex-col items-center justify-center py-10 text-center w-full\">\r\n <i class=\"pi pi-inbox text-4xl text-gray-400 mb-4\"></i>\r\n <p class=\"text-gray-500 mb-4\">{{ 'NO_DATA_FOUND' | translate }}</p>\r\n\r\n <ng-container *ngFor=\"let btn of addButtonConfigs; trackBy: trackByIdx\">\r\n <lib-generic-button\r\n *ngIf=\"!btn.visible || btn.visible === true\"\r\n [icon]=\"btn.icon\"\r\n [label]=\"btn.label | translate\"\r\n [variant]=\"btn.variant\"\r\n [size]=\"btn.size\"\r\n [model]=\"btn.splitActions\"\r\n [permission]=\"btn.permission\"\r\n (clicked)=\"onAddNew.emit()\"\r\n class=\"mb-2\"\r\n ></lib-generic-button>\r\n </ng-container>\r\n </div>\r\n </td>\r\n </tr>\r\n </ng-template>\r\n\r\n <!-- Table header -->\r\n <ng-template pTemplate=\"header\" let-columns>\r\n <tr class=\"bg-gray-200 sticky top-0 z-10\">\r\n <th *ngIf=\"showRowSelectionCheckbox\" style=\"width: 2rem\">\r\n <p-tableHeaderCheckbox></p-tableHeaderCheckbox>\r\n </th>\r\n <th *ngIf=\"actions.length > 0 && actionsPosition === 'start'\" class=\"px-4 py-2 text-sm font-medium text-center sticky right-0\">\r\n {{ '*' | translate }}\r\n </th>\r\n <ng-container *ngFor=\"let col of columns; trackBy: trackByFn\">\r\n <th\r\n [pSortableColumn]=\"col.props.entityKey || col.key\"\r\n class=\"px-4 py-2 text-sm font-medium text-center\"\r\n [style.min-width]=\"col.props?.table?.props?.width || '150px'\"\r\n >\r\n {{ col.props?.label | translate }}\r\n <p-sortIcon [field]=\"col.props.entityKey || col.key\"></p-sortIcon>\r\n </th>\r\n </ng-container>\r\n\r\n <th *ngIf=\"actions.length > 0 && actionsPosition === 'end'\" class=\"px-4 py-2 text-sm font-medium text-center sticky left-0\">\r\n {{ '*' | translate }}\r\n </th>\r\n </tr>\r\n </ng-template>\r\n\r\n <!-- Table body -->\r\n <ng-template pTemplate=\"body\" let-rowData let-columns=\"columns\" let-i=\"rowIndex\">\r\n <tr class=\"even:bg-gray-50 hover:bg-gray-100 cursor-pointer\"
|
|
342
|
+
args: [{ selector: 'lib-generic-table', imports: [CommonModule, TableModule, ButtonModule, MenuModule, NgForOf, TranslateModule, FormlyField, FormlyForm, NgIf, TranslatePipe, Menu, Button, GenericButton, PaginatorModule, ActionMenuComponent], template: "<div class=\"flex flex-col h-screen\" style=\" height: 60vh;\">\r\n <div class=\"flex-1 border rounded-lg overflow-hidden flex flex-col\">\r\n\r\n <!-- PrimeNG Table -->\r\n <p-table #dt\r\n [value]=\"data_\"\r\n [columns]=\"columns\"\r\n [lazy]=\"true\"\r\n [paginator]=\"false\"\r\n [rows]=\"rows\"\r\n [first]=\"first\"\r\n [totalRecords]=\"totalRecords\"\r\n (onLazyLoad)=\"onLazyLoad($event)\"\r\n [globalFilterFields]=\"globalFilterFields\"\r\n [loading]=\"loading\"\r\n [scrollable]=\"true\"\r\n scrollHeight=\"flex\"\r\n [selectionMode]=\"showRowSelectionCheckbox ? 'multiple' : (rowSelectable ? 'single' : undefined)\"\r\n [(selection)]=\"_selection\"\r\n (onRowSelect)=\"onInternalSelectionChange($event)\"\r\n (onRowUnselect)=\"onInternalSelectionChange($event)\"\r\n (onHeaderCheckboxToggle)=\"onInternalSelectionChange($event)\"\r\n tableLayout=\"fixed\"\r\n [customSort]=\"false\"\r\n class=\"flex-1 overflow-auto\"\r\n >\r\n\r\n <!-- Empty message -->\r\n <ng-template pTemplate=\"emptymessage\">\r\n <tr>\r\n <td colspan=\"10\">\r\n <div class=\"flex flex-col items-center justify-center py-10 text-center w-full\">\r\n <i class=\"pi pi-inbox text-4xl text-gray-400 mb-4\"></i>\r\n <p class=\"text-gray-500 mb-4\">{{ 'NO_DATA_FOUND' | translate }}</p>\r\n\r\n <ng-container *ngFor=\"let btn of addButtonConfigs; trackBy: trackByIdx\">\r\n <lib-generic-button\r\n *ngIf=\"!btn.visible || btn.visible === true\"\r\n [icon]=\"btn.icon\"\r\n [label]=\"btn.label | translate\"\r\n [variant]=\"btn.variant\"\r\n [size]=\"btn.size\"\r\n [model]=\"btn.splitActions\"\r\n [permission]=\"btn.permission\"\r\n (clicked)=\"onAddNew.emit()\"\r\n class=\"mb-2\"\r\n ></lib-generic-button>\r\n </ng-container>\r\n </div>\r\n </td>\r\n </tr>\r\n </ng-template>\r\n\r\n <!-- Table header -->\r\n <ng-template pTemplate=\"header\" let-columns>\r\n <tr class=\"bg-gray-200 sticky top-0 z-10\">\r\n <th *ngIf=\"showRowSelectionCheckbox\" style=\"width: 2rem\">\r\n <p-tableHeaderCheckbox></p-tableHeaderCheckbox>\r\n </th>\r\n <th *ngIf=\"actions.length > 0 && actionsPosition === 'start'\" class=\"px-4 py-2 text-sm font-medium text-center sticky right-0\">\r\n {{ '*' | translate }}\r\n </th>\r\n <ng-container *ngFor=\"let col of columns; trackBy: trackByFn\">\r\n <th\r\n [pSortableColumn]=\"col.props.entityKey || col.key\"\r\n class=\"px-4 py-2 text-sm font-medium text-center\"\r\n [style.min-width]=\"col.props?.table?.props?.width || '150px'\"\r\n >\r\n {{ col.props?.label | translate }}\r\n <p-sortIcon [field]=\"col.props.entityKey || col.key\"></p-sortIcon>\r\n </th>\r\n </ng-container>\r\n\r\n <th *ngIf=\"actions.length > 0 && actionsPosition === 'end'\" class=\"px-4 py-2 text-sm font-medium text-center sticky left-0\">\r\n {{ '*' | translate }}\r\n </th>\r\n </tr>\r\n </ng-template>\r\n\r\n <!-- Table body -->\r\n <ng-template pTemplate=\"body\" let-rowData let-columns=\"columns\" let-i=\"rowIndex\">\r\n <tr class=\"even:bg-gray-50 hover:bg-gray-100 cursor-pointer\"\r\n (click)=\"rowSelect.emit(rowData)\"\r\n [ngClass]=\"rowClassFn ? rowClassFn(rowData) : null\"\r\n [ngStyle]=\"rowStyleFn ? rowStyleFn(rowData) : null\">\r\n <td *ngIf=\"showRowSelectionCheckbox\" style=\"width: 2rem\">\r\n <p-tableCheckbox\r\n [value]=\"rowData\"\r\n [disabled]=\"disableRowCheckboxFn ? disableRowCheckboxFn(rowData) : false\"\r\n ></p-tableCheckbox>\r\n </td>\r\n <td *ngIf=\"actions.length > 0 && actionsPosition === 'start'\" class=\"border-t border-gray-200 px-4 py-2 text-center sticky right-0 bg-gray-50\">\r\n <ng-container\r\n *ngTemplateOutlet=\"actionsTemplate; context: {$implicit: rowData}\">\r\n </ng-container>\r\n\r\n </td>\r\n\r\n <td\r\n *ngFor=\"let col of rowData.rowFields; let colIndex = index; trackBy: trackByFn\"\r\n class=\"border-t border-gray-200 px-4 py-2 text-center text-sm text-gray-700\"\r\n [style.width]=\"col.props?.table?.props?.width\"\r\n >\r\n <formly-form\r\n [model]=\"rowData\"\r\n [form]=\"getForm(i, colIndex)\"\r\n [fields]=\"[col]\"\r\n [options]=\"options\"\r\n ></formly-form>\r\n </td>\r\n\r\n <td *ngIf=\"actions.length > 0 && actionsPosition === 'end'\" class=\"border-t border-gray-200 px-4 py-2 text-center sticky left-0\">\r\n <ng-container\r\n *ngTemplateOutlet=\"actionsTemplate; context: {$implicit: rowData}\">\r\n </ng-container>\r\n\r\n </td>\r\n </tr>\r\n\r\n </ng-template>\r\n\r\n\r\n </p-table>\r\n </div>\r\n</div>\r\n\r\n<ng-template #actionsTemplate let-rowData>\r\n <ng-container [ngSwitch]=\"actionsMode\">\r\n\r\n <ng-container *ngSwitchCase=\"'buttons'\">\r\n <ng-container *ngFor=\"let act of sortedActions\">\r\n <button\r\n *ngIf=\"act.icon || act.label\"\r\n pButton\r\n [icon]=\"act.icon || ''\"\r\n [label]=\"(act.label ?? '') | translate\"\r\n [class]=\"act.styleClass || ''\"\r\n class=\"p-button-sm mx-1\"\r\n (click)=\"onAction(act, rowData)\" ></button>\r\n </ng-container>\r\n </ng-container>\r\n\r\n <ng-container *ngSwitchCase=\"'menu'\">\r\n <app-action-menu [items]=\"getMenuItems(rowData) || []\"></app-action-menu>\r\n <!-- <p-menu #menu [model]=\"getMenuItems(rowData)\" [popup]=\"true\" appendTo=\"body\"></p-menu>\r\n <p-button\r\n outlined\r\n icon=\"pi pi-ellipsis-v\"\r\n class=\"p-button-text p-button-sm\"\r\n (onClick)=\"menu.toggle($event)\"\r\n ></p-button> -->\r\n </ng-container>\r\n\r\n </ng-container>\r\n</ng-template>\r\n\r\n", styles: [".custom-button-medium{font-size:1.1rem;width:2.5rem;height:2.5rem;line-height:2.5rem;padding:0}.custom-button-gray{color:#333;background-color:transparent;border:none}.custom-button-gray:hover{background-color:#eee;color:#000}.icon-delete{color:red!important}.icon-edit{color:#333}\n"] }]
|
|
343
343
|
}], propDecorators: { dt: [{
|
|
344
344
|
type: ViewChild,
|
|
345
345
|
args: ['dt']
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"elite.framework-ng.ui.core-generic-table.mjs","sources":["../tmp-esm2022/generic-table/lib/generic-table-module.js","../tmp-esm2022/generic-table/lib/action-menu.component.js","../tmp-esm2022/generic-table/lib/generic-table.js","../tmp-esm2022/generic-table/elite.framework-ng.ui.core-generic-table.js"],"sourcesContent":["import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport * as i0 from \"@angular/core\";\nexport class GenericTableModule {\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: GenericTableModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });\n static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"14.0.0\", version: \"20.1.8\", ngImport: i0, type: GenericTableModule, imports: [CommonModule] });\n static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: GenericTableModule, imports: [CommonModule] });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: GenericTableModule, decorators: [{\n type: NgModule,\n args: [{\n imports: [CommonModule],\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2VuZXJpYy10YWJsZS1tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL25nLnVpLmNvcmUvZ2VuZXJpYy10YWJsZS9zcmMvbGliL2dlbmVyaWMtdGFibGUtbW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDOztBQUsvQyxNQUFNLE9BQU8sa0JBQWtCO3VHQUFsQixrQkFBa0I7d0dBQWxCLGtCQUFrQixZQUZuQixZQUFZO3dHQUVYLGtCQUFrQixZQUZuQixZQUFZOzsyRkFFWCxrQkFBa0I7a0JBSDlCLFFBQVE7bUJBQUM7b0JBQ1IsT0FBTyxFQUFFLENBQUMsWUFBWSxDQUFDO2lCQUN4QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuXG5ATmdNb2R1bGUoe1xuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlXSxcbn0pXG5leHBvcnQgY2xhc3MgR2VuZXJpY1RhYmxlTW9kdWxlIHt9XG4iXX0=","import { CommonModule } from '@angular/common';\nimport { Component, Input, ViewChildren, QueryList } from '@angular/core';\nimport { ButtonModule } from 'primeng/button';\nimport { OverlayModule } from 'primeng/overlay';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@angular/common\";\nimport * as i2 from \"primeng/overlay\";\nexport class ActionMenuComponent {\n items = [];\n open = false;\n menuItems;\n menuPositionClass = 'right-0';\n toggle() {\n this.open = !this.open;\n // Optional: adjust position when opening\n // if (this.open) setTimeout(() => this.adjustMenuPosition());\n }\n adjustMenuPosition() {\n const menu = document.querySelector('.absolute.mt-2');\n if (!menu)\n return;\n const rect = menu.getBoundingClientRect();\n const viewportWidth = window.innerWidth;\n this.menuPositionClass = rect.right > viewportWidth ? 'left-0' : 'right-0';\n }\n onClick(item, event) {\n this.open = false;\n if (item.command) {\n item.command({ originalEvent: event, item });\n }\n }\n onOutsideClick(event) {\n const target = event.target;\n if (!target.closest('.inline-block')) {\n this.open = false;\n }\n }\n // ========================\n // Focus & Keyboard navigation\n // ========================\n focusFirst() {\n // Delay needed because overlay content is rendered asynchronously\n setTimeout(() => {\n this.menuItems.first?.nativeElement.focus();\n });\n }\n // -------------------\n // Keyboard on menu container\n // -------------------\n onMenuKeydown(event) {\n // Convert QueryList to array of HTMLButtonElement\n const items = this.menuItems.toArray().map(i => i.nativeElement);\n let index = items.indexOf(document.activeElement);\n if (index === -1)\n return;\n switch (event.key) {\n case 'ArrowDown':\n event.preventDefault();\n index = (index + 1) % items.length;\n items[index].focus();\n break;\n case 'ArrowUp':\n event.preventDefault();\n index = (index - 1 + items.length) % items.length;\n items[index].focus();\n break;\n case 'Enter':\n case ' ':\n event.preventDefault();\n items[index].click();\n break;\n case 'Escape':\n this.open = false;\n break;\n }\n }\n onTriggerKeydown(event) {\n // Open overlay via keyboard\n if (event.key === 'ArrowDown' || event.key === 'Enter' || event.key === ' ') {\n event.preventDefault();\n this.open = true;\n this.focusFirst();\n }\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: ActionMenuComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });\n static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"20.1.8\", type: ActionMenuComponent, isStandalone: true, selector: \"app-action-menu\", inputs: { items: \"items\" }, viewQueries: [{ propertyName: \"menuItems\", predicate: [\"menuItem\"], descendants: true }], ngImport: i0, template: \"<div class=\\\"inline-block relative\\\">\\r\\n <button type=\\\"button\\\"\\r\\n class=\\\"p-ripple p-button p-button-icon-only p-button-outlined p-component\\\"\\r\\n #trigger\\r\\n (click)=\\\"toggle()\\\">\\r\\n <span class=\\\"pi pi-ellipsis-v\\\"></span>\\r\\n </button>\\r\\n\\r\\n <p-overlay [(visible)]=\\\"open\\\" [appendTo]=\\\"'body'\\\" (onShow)=\\\"focusFirst()\\\">\\r\\n <div class=\\\"w-48 rounded-lg shadow-lg bg-white border border-gray-200\\\"\\r\\n tabindex=\\\"0\\\"\\r\\n (keydown)=\\\"onMenuKeydown($event)\\\">\\r\\n <button #menuItem\\r\\n *ngFor=\\\"let item of items\\\"\\r\\n (click)=\\\"onClick(item, $event)\\\"\\r\\n class=\\\"flex items-center w-full text-left px-4 py-2 text-sm hover:bg-gray-100 focus:bg-gray-100 focus:outline-none\\\">\\r\\n <i *ngIf=\\\"item.icon\\\" [class]=\\\"item.icon + ' ml-2 mr-2 text-gray-500'\\\"></i>\\r\\n <span>{{ item.label }}</span>\\r\\n </button>\\r\\n </div>\\r\\n </p-overlay>\\r\\n</div>\\r\\n\", dependencies: [{ kind: \"ngmodule\", type: CommonModule }, { kind: \"directive\", type: i1.NgForOf, selector: \"[ngFor][ngForOf]\", inputs: [\"ngForOf\", \"ngForTrackBy\", \"ngForTemplate\"] }, { kind: \"directive\", type: i1.NgIf, selector: \"[ngIf]\", inputs: [\"ngIf\", \"ngIfThen\", \"ngIfElse\"] }, { kind: \"ngmodule\", type: OverlayModule }, { kind: \"component\", type: i2.Overlay, selector: \"p-overlay\", inputs: [\"visible\", \"mode\", \"style\", \"styleClass\", \"contentStyle\", \"contentStyleClass\", \"target\", \"autoZIndex\", \"baseZIndex\", \"showTransitionOptions\", \"hideTransitionOptions\", \"listener\", \"responsive\", \"options\", \"appendTo\", \"hostAttrSelector\"], outputs: [\"visibleChange\", \"onBeforeShow\", \"onShow\", \"onBeforeHide\", \"onHide\", \"onAnimationStart\", \"onAnimationDone\"] }, { kind: \"ngmodule\", type: ButtonModule }] });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: ActionMenuComponent, decorators: [{\n type: Component,\n args: [{ selector: 'app-action-menu', imports: [CommonModule, OverlayModule, ButtonModule], template: \"<div class=\\\"inline-block relative\\\">\\r\\n <button type=\\\"button\\\"\\r\\n class=\\\"p-ripple p-button p-button-icon-only p-button-outlined p-component\\\"\\r\\n #trigger\\r\\n (click)=\\\"toggle()\\\">\\r\\n <span class=\\\"pi pi-ellipsis-v\\\"></span>\\r\\n </button>\\r\\n\\r\\n <p-overlay [(visible)]=\\\"open\\\" [appendTo]=\\\"'body'\\\" (onShow)=\\\"focusFirst()\\\">\\r\\n <div class=\\\"w-48 rounded-lg shadow-lg bg-white border border-gray-200\\\"\\r\\n tabindex=\\\"0\\\"\\r\\n (keydown)=\\\"onMenuKeydown($event)\\\">\\r\\n <button #menuItem\\r\\n *ngFor=\\\"let item of items\\\"\\r\\n (click)=\\\"onClick(item, $event)\\\"\\r\\n class=\\\"flex items-center w-full text-left px-4 py-2 text-sm hover:bg-gray-100 focus:bg-gray-100 focus:outline-none\\\">\\r\\n <i *ngIf=\\\"item.icon\\\" [class]=\\\"item.icon + ' ml-2 mr-2 text-gray-500'\\\"></i>\\r\\n <span>{{ item.label }}</span>\\r\\n </button>\\r\\n </div>\\r\\n </p-overlay>\\r\\n</div>\\r\\n\" }]\n }], propDecorators: { items: [{\n type: Input\n }], menuItems: [{\n type: ViewChildren,\n args: ['menuItem']\n }] } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWN0aW9uLW1lbnUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9uZy51aS5jb3JlL2dlbmVyaWMtdGFibGUvc3JjL2xpYi9hY3Rpb24tbWVudS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL25nLnVpLmNvcmUvZ2VuZXJpYy10YWJsZS9zcmMvbGliL2FjdGlvbi1tZW51LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxZQUFZLEVBQUUsU0FBUyxFQUFjLE1BQU0sZUFBZSxDQUFDO0FBRXRGLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM5QyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0saUJBQWlCLENBQUM7Ozs7QUFPaEQsTUFBTSxPQUFPLG1CQUFtQjtJQUNyQixLQUFLLEdBQWUsRUFBRSxDQUFDO0lBQ2hDLElBQUksR0FBRyxLQUFLLENBQUM7SUFFYSxTQUFTLENBQTRDO0lBRS9FLGlCQUFpQixHQUFHLFNBQVMsQ0FBQztJQUU5QixNQUFNO1FBQ0osSUFBSSxDQUFDLElBQUksR0FBRyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUM7UUFDdkIseUNBQXlDO1FBQ3pDLDhEQUE4RDtJQUNoRSxDQUFDO0lBRUQsa0JBQWtCO1FBQ2hCLE1BQU0sSUFBSSxHQUFHLFFBQVEsQ0FBQyxhQUFhLENBQUMsZ0JBQWdCLENBQWdCLENBQUM7UUFDckUsSUFBSSxDQUFDLElBQUk7WUFBRSxPQUFPO1FBRWxCLE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxxQkFBcUIsRUFBRSxDQUFDO1FBQzFDLE1BQU0sYUFBYSxHQUFHLE1BQU0sQ0FBQyxVQUFVLENBQUM7UUFFeEMsSUFBSSxDQUFDLGlCQUFpQixH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QTVGVSxtQkFBbUI7MkZBQW5CLG1CQUFtQixpTUNYaEMsbTlCQXNCQSwyQ0RiWSxZQUFZLCtQQUFFLGFBQWEsMmNBQUUsWUFBWTs7MkZBRXhDLG1CQUFtQjtrQkFML0IsU0FBUzsrQkFDRSxpQkFBaUIsV0FFbEIsQ0FBQyxZQUFZLEVBQUUsYUFBYSxFQUFFLFlBQVksQ0FBQzs4QkFHM0MsS0FBSztzQkFBYixLQUFLO2dCQUdvQixTQUFTO3NCQUFsQyxZQUFZO3VCQUFDLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCBWaWV3Q2hpbGRyZW4sIFF1ZXJ5TGlzdCwgRWxlbWVudFJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBNZW51SXRlbSB9IGZyb20gJ3ByaW1lbmcvYXBpJztcclxuaW1wb3J0IHsgQnV0dG9uTW9kdWxlIH0gZnJvbSAncHJpbWVuZy9idXR0b24nO1xyXG5pbXBvcnQgeyBPdmVybGF5TW9kdWxlIH0gZnJvbSAncHJpbWVuZy9vdmVybGF5JztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnYXBwLWFjdGlvbi1tZW51JyxcclxuICB0ZW1wbGF0ZVVybDogJy4vYWN0aW9uLW1lbnUuY29tcG9uZW50Lmh0bWwnLFxyXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIE92ZXJsYXlNb2R1bGUsIEJ1dHRvbk1vZHVsZV0sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBBY3Rpb25NZW51Q29tcG9uZW50IHtcclxuICBASW5wdXQoKSBpdGVtczogTWVudUl0ZW1bXSA9IFtdO1xyXG4gIG9wZW4gPSBmYWxzZTtcclxuXHJcbiAgQFZpZXdDaGlsZHJlbignbWVudUl0ZW0nKSBtZW51SXRlbXMhOiBRdWVyeUxpc3Q8RWxlbWVudFJlZjxIVE1MQnV0dG9uRWxlbWVudD4+O1xyXG5cclxuICBtZW51UG9zaXRpb25DbGFzcyA9ICdyaWdodC0wJztcclxuXHJcbiAgdG9nZ2xlKCkge1xyXG4gICAgdGhpcy5vcGVuID0gIXRoaXMub3BlbjtcclxuICAgIC8vIE9wdGlvbmFsOiBhZGp1c3QgcG9zaXRpb24gd2hlbiBvcGVuaW5nXHJcbiAgICAvLyBpZiAodGhpcy5vcGVuKSBzZXRUaW1lb3V0KCgpID0+IHRoaXMuYWRqdXN0TWVudVBvc2l0aW9uKCkpO1xyXG4gIH1cclxuXHJcbiAgYWRqdXN0TWVudVBvc2l0aW9uKCkge1xyXG4gICAgY29uc3QgbWVudSA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJy5hYnNvbHV0ZS5tdC0yJykgYXMgSFRNTEVsZW1lbnQ7XHJcbiAgICBpZiAoIW1lbnUpIHJldHVybjtcclxuXHJcbiAgICBjb25zdCByZWN0ID0gbWVudS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcclxuICAgIGNvbnN0IHZpZXdwb3J0V2lkdGggPSB3aW5kb3cuaW5uZXJXaWR0aDtcclxuXHJcbiAgICB0aGlzLm1lbnVQb3NpdGlvbkNsYXNzID0gcmVjdC5yaWdodCA+IHZpZXdwb3J0V2lkdGggPyAnbGVmdC0wJyA6ICdyaWdodC0wJztcclxuICB9XHJcblxyXG4gIG9uQ2xpY2soaXRlbTogTWVudUl0ZW0sIGV2ZW50OiBNb3VzZUV2ZW50KSB7XHJcbiAgICB0aGlzLm9wZW4gPSBmYWxzZTtcclxuICAgIGlmIChpdGVtLmNvbW1hbmQpIHtcclxuICAgICAgaXRlbS5jb21tYW5kKHsgb3JpZ2luYWxFdmVudDogZXZlbnQsIGl0ZW0gfSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBvbk91dHNpZGVDbGljayhldmVudDogTW91c2VFdmVudCkge1xyXG4gICAgY29uc3QgdGFyZ2V0ID0gZXZlbnQudGFyZ2V0IGFzIEhUTUxFbGVtZW50O1xyXG4gICAgaWYgKCF0YXJnZXQuY2xvc2VzdCgnLmlubGluZS1ibG9jaycpKSB7XHJcbiAgICAgIHRoaXMub3BlbiA9IGZhbHNlO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgIC8vID09PT09PT09PT09PT09PT09PT09PT09PVxyXG4gIC8vIEZvY3VzICYgS2V5Ym9hcmQgbmF2aWdhdGlvblxyXG4gIC8vID09PT09PT09PT09PT09PT09PT09PT09PVxyXG4gIGZvY3VzRmlyc3QoKSB7XHJcbiAgICAvLyBEZWxheSBuZWVkZWQgYmVjYXVzZSBvdmVybGF5IGNvbnRlbnQgaXMgcmVuZGVyZWQgYXN5bmNocm9ub3VzbHlcclxuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICB0aGlzLm1lbnVJdGVtcy5maXJzdD8ubmF0aXZlRWxlbWVudC5mb2N1cygpO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tXHJcbiAgLy8gS2V5Ym9hcmQgb24gbWVudSBjb250YWluZXJcclxuICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tXHJcbiBvbk1lbnVLZXlkb3duKGV2ZW50OiBLZXlib2FyZEV2ZW50KSB7XHJcbiAgLy8gQ29udmVydCBRdWVyeUxpc3QgdG8gYXJyYXkgb2YgSFRNTEJ1dHRvbkVsZW1lbnRcclxuICBjb25zdCBpdGVtczogSFRNTEJ1dHRvbkVsZW1lbnRbXSA9IHRoaXMubWVudUl0ZW1zLnRvQXJyYXkoKS5tYXAoaSA9PiBpLm5hdGl2ZUVsZW1lbnQgYXMgSFRNTEJ1dHRvbkVsZW1lbnQpO1xyXG5cclxuICBsZXQgaW5kZXggPSBpdGVtcy5pbmRleE9mKGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQgYXMgSFRNTEJ1dHRvbkVsZW1lbnQpO1xyXG4gIGlmIChpbmRleCA9PT0gLTEpIHJldHVybjtcclxuXHJcbiAgc3dpdGNoIChldmVudC5rZXkpIHtcclxuICAgIGNhc2UgJ0Fycm93RG93bic6XHJcbiAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XHJcbiAgICAgIGluZGV4ID0gKGluZGV4ICsgMSkgJSBpdGVtcy5sZW5ndGg7XHJcbiAgICAgIGl0ZW1zW2luZGV4XS5mb2N1cygpO1xyXG4gICAgICBicmVhaztcclxuXHJcbiAgICBjYXNlICdBcnJvd1VwJzpcclxuICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcclxuICAgICAgaW5kZXggPSAoaW5kZXggLSAxICsgaXRlbXMubGVuZ3RoKSAlIGl0ZW1zLmxlbmd0aDtcclxuICAgICAgaXRlbXNbaW5kZXhdLmZvY3VzKCk7XHJcbiAgICAgIGJyZWFrO1xyXG5cclxuICAgIGNhc2UgJ0VudGVyJzpcclxuICAgIGNhc2UgJyAnOlxyXG4gICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xyXG4gICAgICBpdGVtc1tpbmRleF0uY2xpY2soKTtcclxuICAgICAgYnJlYWs7XHJcblxyXG4gICAgY2FzZSAnRXNjYXBlJzpcclxuICAgICAgdGhpcy5vcGVuID0gZmFsc2U7XHJcbiAgICAgIGJyZWFrO1xyXG4gIH1cclxufVxyXG5cclxuXHJcblxyXG4gIG9uVHJpZ2dlcktleWRvd24oZXZlbnQ6IEtleWJvYXJkRXZlbnQpIHtcclxuICAgIC8vIE9wZW4gb3ZlcmxheSB2aWEga2V5Ym9hcmRcclxuICAgIGlmIChldmVudC5rZXkgPT09ICdBcnJvd0Rvd24nIHx8IGV2ZW50LmtleSA9PT0gJ0VudGVyJyB8fCBldmVudC5rZXkgPT09ICcgJykge1xyXG4gICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xyXG4gICAgICB0aGlzLm9wZW4gPSB0cnVlO1xyXG4gICAgICB0aGlzLmZvY3VzRmlyc3QoKTtcclxuICAgIH1cclxuICB9XHJcbn1cclxuIiwiPGRpdiBjbGFzcz1cImlubGluZS1ibG9jayByZWxhdGl2ZVwiPlxyXG4gIDxidXR0b24gdHlwZT1cImJ1dHRvblwiXHJcbiAgICAgICAgICBjbGFzcz1cInAtcmlwcGxlIHAtYnV0dG9uIHAtYnV0dG9uLWljb24tb25seSBwLWJ1dHRvbi1vdXRsaW5lZCBwLWNvbXBvbmVudFwiXHJcbiAgICAgICAgICAjdHJpZ2dlclxyXG4gICAgICAgICAgKGNsaWNrKT1cInRvZ2dsZSgpXCI+XHJcbiAgICA8c3BhbiBjbGFzcz1cInBpIHBpLWVsbGlwc2lzLXZcIj48L3NwYW4+XHJcbiAgPC9idXR0b24+XHJcblxyXG4gIDxwLW92ZXJsYXkgWyh2aXNpYmxlKV09XCJvcGVuXCIgW2FwcGVuZFRvXT1cIidib2R5J1wiIChvblNob3cpPVwiZm9jdXNGaXJzdCgpXCI+XHJcbiAgIDxkaXYgY2xhc3M9XCJ3LTQ4IHJvdW5kZWQtbGcgc2hhZG93LWxnIGJnLXdoaXRlIGJvcmRlciBib3JkZXItZ3JheS0yMDBcIlxyXG4gICAgICAgICB0YWJpbmRleD1cIjBcIlxyXG4gICAgICAgICAoa2V5ZG93bik9XCJvbk1lbnVLZXlkb3duKCRldmVudClcIj5cclxuICAgICAgPGJ1dHRvbiAjbWVudUl0ZW1cclxuICAgICAgICAgICAgICAqbmdGb3I9XCJsZXQgaXRlbSBvZiBpdGVtc1wiXHJcbiAgICAgICAgICAgICAgKGNsaWNrKT1cIm9uQ2xpY2soaXRlbSwgJGV2ZW50KVwiXHJcbiAgICAgICAgICAgICAgY2xhc3M9XCJmbGV4IGl0ZW1zLWNlbnRlciB3LWZ1bGwgdGV4dC1sZWZ0IHB4LTQgcHktMiB0ZXh0LXNtIGhvdmVyOmJnLWdyYXktMTAwIGZvY3VzOmJnLWdyYXktMTAwIGZvY3VzOm91dGxpbmUtbm9uZVwiPlxyXG4gICAgICAgIDxpICpuZ0lmPVwiaXRlbS5pY29uXCIgW2NsYXNzXT1cIml0ZW0uaWNvbiArICcgbWwtMiBtci0yIHRleHQtZ3JheS01MDAnXCI+PC9pPlxyXG4gICAgICAgIDxzcGFuPnt7IGl0ZW0ubGFiZWwgfX08L3NwYW4+XHJcbiAgICAgIDwvYnV0dG9uPlxyXG4gICAgPC9kaXY+XHJcbiAgPC9wLW92ZXJsYXk+XHJcbjwvZGl2PlxyXG4iXX0=","import { Component, Input, Output, EventEmitter, ViewChild, inject } from '@angular/core';\nimport { Table } from 'primeng/table';\nimport { CommonModule, NgForOf, NgIf } from '@angular/common';\nimport { TableModule } from 'primeng/table';\nimport { ButtonModule, Button } from 'primeng/button';\nimport { MenuModule, Menu } from 'primeng/menu';\nimport { TranslateModule, TranslatePipe, TranslateService } from '@ngx-translate/core';\nimport { FormlyField, FormlyForm } from '@ngx-formly/core';\nimport { FormGroup } from '@angular/forms';\nimport { cloneDeep } from 'lodash';\nimport { GenericButton } from '@elite.framework/ng.ui.core/generic-button';\nimport { PermissionsService } from '@elite.framework/ng.core/services';\nimport { PaginatorModule } from 'primeng/paginator';\nimport { ActionMenuComponent } from './action-menu.component';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@angular/common\";\nimport * as i2 from \"primeng/table\";\nimport * as i3 from \"primeng/api\";\nimport * as i4 from \"primeng/button\";\nimport * as i5 from \"@ngx-translate/core\";\nexport class GenericTable {\n translateService = inject(TranslateService);\n permissionsService = inject(PermissionsService);\n dt;\n data = [];\n data_ = [];\n columns = [];\n processedFields = [];\n columns_ = [];\n loading = false;\n actions = [];\n actionsPosition = 'end';\n actionsMode = 'buttons';\n first = 0;\n rows = 10;\n totalRecords = 0;\n sortField;\n sortOrder = 1;\n globalFilterFields = [];\n action = new EventEmitter();\n pageChange = new EventEmitter();\n // eslint-disable-next-line @angular-eslint/no-output-on-prefix\n onAddNew = new EventEmitter();\n addButtonConfigs = [];\n scrollHeight = '400px';\n // **جديد**: تمكين اختيار الصفوف\n /** فعّل اختيار الصفين single/multiple */\n rowSelectable = true;\n /** يحتفظ بالصف المحدد */\n //@Input() selection: T | T[] | null = null;\n // هذا سيكون مرتبطًا بـ [(selection)] في p-table\n _selection = null;\n //لتغيير لون صف معيّن\n rowStyleFn;\n // ✅ لتعيين كلاس CSS أو Tailwind على الصف\n rowClassFn;\n //آخر لتجميد / تعطيل checkbox الاختيار\n disableRowCheckboxFn;\n get selection() {\n return this._selection;\n }\n set selection(val) {\n this._selection = val;\n // لا تُصدر الحدث هنا، بل في onInternalSelectionChange فقط\n }\n trackByIdx(index, item) {\n return index;\n }\n /** يصدر الصف المحدد عند النقر */\n rowSelect = new EventEmitter();\n /** يصدر الصفوف المحددة عند التغيير (للربط الثنائي) */\n selectionChange = new EventEmitter();\n /** جديد: التحكم بظهور الـ paginator */\n paginator = true;\n form = new FormGroup({});\n options = {};\n // **جديد**: يتحكم بإظهار عمود اختيار الصفوف (checkboxes)\n /** يتحكم في إظهار عمود اختيار الصفوف المتعددة بواسطة checkboxes */\n showRowSelectionCheckbox = false;\n onInternalSelectionChange(event) {\n if ('data' in event) {\n // Row select/unselect (single أو multiple)\n if (Array.isArray(this._selection)) {\n this._selection = [...this._selection]; // تحديث نسخة المصفوفة عند متعدد\n }\n else {\n this._selection = event.data; // اختيار فردي\n }\n }\n else if ('checked' in event) {\n // Header checkbox toggle\n this._selection = event.checked ? [...this.data] : [];\n }\n this.selectionChange.emit(this._selection);\n // إذا ما عاد فيه أي تحديد، أصدر حدث خاص للتفريغ\n if (!this._selection || (Array.isArray(this._selection) && this._selection.length === 0)) {\n this.rowSelect.emit(undefined); // يرسل null عشان يخفي الأزرار بالأب\n }\n }\n customSort(event) {\n event.data?.sort((data1, data2) => {\n const value1 = this.resolveFieldData(data1, event.field ?? '');\n const value2 = this.resolveFieldData(data2, event.field ?? '');\n let result = 0;\n if (value1 == null && value2 != null)\n result = -1;\n else if (value1 != null && value2 == null)\n result = 1;\n else if (value1 == null && value2 == null)\n result = 0;\n else if (typeof value1 === 'string' && typeof value2 === 'string')\n result = value1.localeCompare(value2);\n else\n result = value1 < value2 ? -1 : value1 > value2 ? 1 : 0;\n return (event.order ?? 1) * result;\n });\n }\n resolveFieldData(data, field) {\n if (!field)\n return null;\n if (field.indexOf('.') === -1)\n return data[field];\n return field.split('.').reduce((obj, prop) => (obj ? obj[prop] : null), data);\n }\n // getOrderedColumns(): TableColumn[] {\n // return [...this.columns,\n // ...(this.showRowSelectionCheckbox ? [{ type: 'selection', order: -1 }] : []),\n // { type: 'operations', label: 'OPERATIONS', order: 999 }\n // ].sort((a, b) => (a.order ?? 0) - (b.order ?? 0));\n // }\n get sortedActions() {\n return this.actions\n .filter(action => (action.visible !== false) && // ✅ يخفي أي زر `visible = false`\n (!action.permissions?.length ||\n action.permissions.every(p => this.permissionsService.isGranted(p))))\n .sort((a, b) => (a.order ?? 0) - (b.order ?? 0));\n }\n get sortedActions2() {\n return this.actions\n .filter(action => !action.permissions?.length || // no permissions → allow\n action.permissions.every(p => this.permissionsService.isGranted(p)) // all granted\n )\n .sort((a, b) => (a.order ?? 0) - (b.order ?? 0));\n }\n onAction(act, row) {\n if (act.action) {\n act.action(row);\n }\n else {\n this.action.emit({ name: act.name, row });\n }\n }\n // cloneField(field: any): any {\n // if (field === null || typeof field !== 'object') {\n // return field;\n // }\n // if (Array.isArray(field)) {\n // // preserve `this` context\n // return field.map((item) => this.cloneField(item));\n // }\n // const cloned: any = {};\n // for (const key of Object.keys(field)) {\n // cloned[key] = this.cloneField(field[key]);\n // }\n // return cloned;\n // }\n // Use a map to store form groups for each row and column\n cellForms = new Map();\n forms = new FormGroup({}); // A main form for the table\n // Refactored getForm to return an existing form instance\n getForm(rowIndex, colIndex) {\n const key = `${rowIndex}_${colIndex}`;\n let form = this.cellForms.get(key);\n if (!form) {\n form = new FormGroup({});\n this.cellForms.set(key, form);\n }\n return form;\n }\n trackByFn(index, item) {\n return index; // or a unique identifier from your data\n }\n // This method is called whenever any @Input() property changes.\n ngOnChanges(changes) {\n // Check if the 'data' property has changed.\n if (changes['data']) {\n const currentData = changes['data'].currentValue;\n const previousData = changes['data'].previousValue;\n // For example, you can call a method to re-render or process the data.\n this.refreshData();\n }\n }\n onLazyLoad(event) {\n // Reinitialize forms on new data load\n // this.cellForms.clear();\n this.refreshData();\n this.pageChange.emit(event);\n }\n applyFilter(filters) {\n // if (field) {\n // this.dt.filter(global, field, 'contains');\n // } else {\n // this.dt.filterGlobal(global, 'contains');\n // }\n }\n refreshData() {\n this.data_ = this.data.map(rowData => {\n // Create a new array of fields for each row\n const rowFields = this.columns.map(col => {\n return cloneDeep(col);\n });\n // Attach the unique fields to the row data object\n return {\n ...rowData,\n rowFields: rowFields\n };\n });\n }\n getMenuItems(row) {\n return this.sortedActions.map(act => ({\n label: this.translateService.instant(act.label ?? ''),\n icon: act.icon,\n command: () => this.onAction(act, row),\n styleClass: act.styleClass\n }));\n }\n // **جديد**: يتم إطلاق هذا عند اختيار صف\n onRowSelect(event) {\n // debugger\n if (event.data) {\n this.rowSelect.emit(event.data);\n }\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: GenericTable, deps: [], target: i0.ɵɵFactoryTarget.Component });\n static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"20.1.8\", type: GenericTable, isStandalone: true, selector: \"lib-generic-table\", inputs: { data: \"data\", columns: \"columns\", loading: \"loading\", actions: \"actions\", actionsPosition: \"actionsPosition\", actionsMode: \"actionsMode\", first: \"first\", rows: \"rows\", totalRecords: \"totalRecords\", sortField: \"sortField\", sortOrder: \"sortOrder\", globalFilterFields: \"globalFilterFields\", addButtonConfigs: \"addButtonConfigs\", scrollHeight: \"scrollHeight\", rowSelectable: \"rowSelectable\", rowStyleFn: \"rowStyleFn\", rowClassFn: \"rowClassFn\", disableRowCheckboxFn: \"disableRowCheckboxFn\", selection: \"selection\", paginator: \"paginator\", showRowSelectionCheckbox: \"showRowSelectionCheckbox\" }, outputs: { action: \"action\", pageChange: \"pageChange\", onAddNew: \"onAddNew\", rowSelect: \"rowSelect\", selectionChange: \"selectionChange\" }, viewQueries: [{ propertyName: \"dt\", first: true, predicate: [\"dt\"], descendants: true }], usesOnChanges: true, ngImport: i0, template: \"<div class=\\\"flex flex-col h-screen\\\" style=\\\" height: 60vh;\\\">\\r\\n <div class=\\\"flex-1 border rounded-lg overflow-hidden flex flex-col\\\">\\r\\n\\r\\n <!-- PrimeNG Table -->\\r\\n <p-table #dt\\r\\n [value]=\\\"data_\\\"\\r\\n [columns]=\\\"columns\\\"\\r\\n [lazy]=\\\"true\\\"\\r\\n [paginator]=\\\"false\\\"\\r\\n [rows]=\\\"rows\\\"\\r\\n [first]=\\\"first\\\"\\r\\n [totalRecords]=\\\"totalRecords\\\"\\r\\n (onLazyLoad)=\\\"onLazyLoad($event)\\\"\\r\\n [globalFilterFields]=\\\"globalFilterFields\\\"\\r\\n [loading]=\\\"loading\\\"\\r\\n [scrollable]=\\\"true\\\"\\r\\n scrollHeight=\\\"flex\\\"\\r\\n [selectionMode]=\\\"showRowSelectionCheckbox ? 'multiple' : (rowSelectable ? 'single' : undefined)\\\"\\r\\n [(selection)]=\\\"_selection\\\"\\r\\n (onRowSelect)=\\\"onInternalSelectionChange($event)\\\"\\r\\n (onRowUnselect)=\\\"onInternalSelectionChange($event)\\\"\\r\\n (onHeaderCheckboxToggle)=\\\"onInternalSelectionChange($event)\\\"\\r\\n tableLayout=\\\"fixed\\\"\\r\\n [customSort]=\\\"false\\\"\\r\\n class=\\\"flex-1 overflow-auto\\\"\\r\\n >\\r\\n\\r\\n <!-- Empty message -->\\r\\n <ng-template pTemplate=\\\"emptymessage\\\">\\r\\n <tr>\\r\\n <td colspan=\\\"10\\\">\\r\\n <div class=\\\"flex flex-col items-center justify-center py-10 text-center w-full\\\">\\r\\n <i class=\\\"pi pi-inbox text-4xl text-gray-400 mb-4\\\"></i>\\r\\n <p class=\\\"text-gray-500 mb-4\\\">{{ 'NO_DATA_FOUND' | translate }}</p>\\r\\n\\r\\n <ng-container *ngFor=\\\"let btn of addButtonConfigs; trackBy: trackByIdx\\\">\\r\\n <lib-generic-button\\r\\n *ngIf=\\\"!btn.visible || btn.visible === true\\\"\\r\\n [icon]=\\\"btn.icon\\\"\\r\\n [label]=\\\"btn.label | translate\\\"\\r\\n [variant]=\\\"btn.variant\\\"\\r\\n [size]=\\\"btn.size\\\"\\r\\n [model]=\\\"btn.splitActions\\\"\\r\\n [permission]=\\\"btn.permission\\\"\\r\\n (clicked)=\\\"onAddNew.emit()\\\"\\r\\n class=\\\"mb-2\\\"\\r\\n ></lib-generic-button>\\r\\n </ng-container>\\r\\n </div>\\r\\n </td>\\r\\n </tr>\\r\\n </ng-template>\\r\\n\\r\\n <!-- Table header -->\\r\\n <ng-template pTemplate=\\\"header\\\" let-columns>\\r\\n <tr class=\\\"bg-gray-200 sticky top-0 z-10\\\">\\r\\n <th *ngIf=\\\"showRowSelectionCheckbox\\\" style=\\\"width: 2rem\\\">\\r\\n <p-tableHeaderCheckbox></p-tableHeaderCheckbox>\\r\\n </th>\\r\\n <th *ngIf=\\\"actions.length > 0 && actionsPosition === 'start'\\\" class=\\\"px-4 py-2 text-sm font-medium text-center sticky right-0\\\">\\r\\n {{ '*' | translate }}\\r\\n </th>\\r\\n <ng-container *ngFor=\\\"let col of columns; trackBy: trackByFn\\\">\\r\\n <th\\r\\n [pSortableColumn]=\\\"col.props.entityKey || col.key\\\"\\r\\n class=\\\"px-4 py-2 text-sm font-medium text-center\\\"\\r\\n [style.min-width]=\\\"col.props?.table?.props?.width || '150px'\\\"\\r\\n >\\r\\n {{ col.props?.label | translate }}\\r\\n <p-sortIcon [field]=\\\"col.props.entityKey || col.key\\\"></p-sortIcon>\\r\\n </th>\\r\\n </ng-container>\\r\\n\\r\\n <th *ngIf=\\\"actions.length > 0 && actionsPosition === 'end'\\\" class=\\\"px-4 py-2 text-sm font-medium text-center sticky left-0\\\">\\r\\n {{ '*' | translate }}\\r\\n </th>\\r\\n </tr>\\r\\n </ng-template>\\r\\n\\r\\n <!-- Table body -->\\r\\n <ng-template pTemplate=\\\"body\\\" let-rowData let-columns=\\\"columns\\\" let-i=\\\"rowIndex\\\">\\r\\n <tr class=\\\"even:bg-gray-50 hover:bg-gray-100 cursor-pointer\\\" (click)=\\\"rowSelect.emit(rowData)\\\">\\r\\n <td *ngIf=\\\"showRowSelectionCheckbox\\\" style=\\\"width: 2rem\\\">\\r\\n <p-tableCheckbox [value]=\\\"rowData\\\"></p-tableCheckbox>\\r\\n </td>\\r\\n <td *ngIf=\\\"actions.length > 0 && actionsPosition === 'start'\\\" class=\\\"border-t border-gray-200 px-4 py-2 text-center sticky right-0 bg-gray-50\\\">\\r\\n <ng-container\\r\\n *ngTemplateOutlet=\\\"actionsTemplate; context: {$implicit: rowData}\\\">\\r\\n </ng-container>\\r\\n\\r\\n </td>\\r\\n\\r\\n <td\\r\\n *ngFor=\\\"let col of rowData.rowFields; let colIndex = index; trackBy: trackByFn\\\"\\r\\n class=\\\"border-t border-gray-200 px-4 py-2 text-center text-sm text-gray-700\\\"\\r\\n [style.width]=\\\"col.props?.table?.props?.width\\\"\\r\\n >\\r\\n <formly-form\\r\\n [model]=\\\"rowData\\\"\\r\\n [form]=\\\"getForm(i, colIndex)\\\"\\r\\n [fields]=\\\"[col]\\\"\\r\\n [options]=\\\"options\\\"\\r\\n ></formly-form>\\r\\n </td>\\r\\n\\r\\n <td *ngIf=\\\"actions.length > 0 && actionsPosition === 'end'\\\" class=\\\"border-t border-gray-200 px-4 py-2 text-center sticky left-0\\\">\\r\\n <ng-container\\r\\n *ngTemplateOutlet=\\\"actionsTemplate; context: {$implicit: rowData}\\\">\\r\\n </ng-container>\\r\\n\\r\\n </td>\\r\\n </tr>\\r\\n\\r\\n </ng-template>\\r\\n\\r\\n\\r\\n </p-table>\\r\\n </div>\\r\\n</div>\\r\\n\\r\\n<ng-template #actionsTemplate let-rowData>\\r\\n <ng-container [ngSwitch]=\\\"actionsMode\\\">\\r\\n\\r\\n <ng-container *ngSwitchCase=\\\"'buttons'\\\">\\r\\n <ng-container *ngFor=\\\"let act of sortedActions\\\">\\r\\n <button\\r\\n *ngIf=\\\"act.icon || act.label\\\"\\r\\n pButton\\r\\n [icon]=\\\"act.icon || ''\\\"\\r\\n [label]=\\\"(act.label ?? '') | translate\\\"\\r\\n [class]=\\\"act.styleClass || ''\\\"\\r\\n class=\\\"p-button-sm mx-1\\\"\\r\\n (click)=\\\"onAction(act, rowData)\\\" ></button>\\r\\n </ng-container>\\r\\n </ng-container>\\r\\n\\r\\n <ng-container *ngSwitchCase=\\\"'menu'\\\">\\r\\n <app-action-menu [items]=\\\"getMenuItems(rowData) || []\\\"></app-action-menu>\\r\\n <!-- <p-menu #menu [model]=\\\"getMenuItems(rowData)\\\" [popup]=\\\"true\\\" appendTo=\\\"body\\\"></p-menu>\\r\\n <p-button\\r\\n outlined\\r\\n icon=\\\"pi pi-ellipsis-v\\\"\\r\\n class=\\\"p-button-text p-button-sm\\\"\\r\\n (onClick)=\\\"menu.toggle($event)\\\"\\r\\n ></p-button> -->\\r\\n </ng-container>\\r\\n\\r\\n </ng-container>\\r\\n</ng-template>\\r\\n\\r\\n\", styles: [\".custom-button-medium{font-size:1.1rem;width:2.5rem;height:2.5rem;line-height:2.5rem;padding:0}.custom-button-gray{color:#333;background-color:transparent;border:none}.custom-button-gray:hover{background-color:#eee;color:#000}.icon-delete{color:red!important}.icon-edit{color:#333}\\n\"], dependencies: [{ kind: \"ngmodule\", type: CommonModule }, { kind: \"directive\", type: i1.NgForOf, selector: \"[ngFor][ngForOf]\", inputs: [\"ngForOf\", \"ngForTrackBy\", \"ngForTemplate\"] }, { kind: \"directive\", type: i1.NgIf, selector: \"[ngIf]\", inputs: [\"ngIf\", \"ngIfThen\", \"ngIfElse\"] }, { kind: \"directive\", type: i1.NgTemplateOutlet, selector: \"[ngTemplateOutlet]\", inputs: [\"ngTemplateOutletContext\", \"ngTemplateOutlet\", \"ngTemplateOutletInjector\"] }, { kind: \"directive\", type: i1.NgSwitch, selector: \"[ngSwitch]\", inputs: [\"ngSwitch\"] }, { kind: \"directive\", type: i1.NgSwitchCase, selector: \"[ngSwitchCase]\", inputs: [\"ngSwitchCase\"] }, { kind: \"ngmodule\", type: TableModule }, { kind: \"component\", type: i2.Table, selector: \"p-table\", inputs: [\"frozenColumns\", \"frozenValue\", \"styleClass\", \"tableStyle\", \"tableStyleClass\", \"paginator\", \"pageLinks\", \"rowsPerPageOptions\", \"alwaysShowPaginator\", \"paginatorPosition\", \"paginatorStyleClass\", \"paginatorDropdownAppendTo\", \"paginatorDropdownScrollHeight\", \"currentPageReportTemplate\", \"showCurrentPageReport\", \"showJumpToPageDropdown\", \"showJumpToPageInput\", \"showFirstLastIcon\", \"showPageLinks\", \"defaultSortOrder\", \"sortMode\", \"resetPageOnSort\", \"selectionMode\", \"selectionPageOnly\", \"contextMenuSelection\", \"contextMenuSelectionMode\", \"dataKey\", \"metaKeySelection\", \"rowSelectable\", \"rowTrackBy\", \"lazy\", \"lazyLoadOnInit\", \"compareSelectionBy\", \"csvSeparator\", \"exportFilename\", \"filters\", \"globalFilterFields\", \"filterDelay\", \"filterLocale\", \"expandedRowKeys\", \"editingRowKeys\", \"rowExpandMode\", \"scrollable\", \"rowGroupMode\", \"scrollHeight\", \"virtualScroll\", \"virtualScrollItemSize\", \"virtualScrollOptions\", \"virtualScrollDelay\", \"frozenWidth\", \"contextMenu\", \"resizableColumns\", \"columnResizeMode\", \"reorderableColumns\", \"loading\", \"loadingIcon\", \"showLoader\", \"rowHover\", \"customSort\", \"showInitialSortBadge\", \"exportFunction\", \"exportHeader\", \"stateKey\", \"stateStorage\", \"editMode\", \"groupRowsBy\", \"size\", \"showGridlines\", \"stripedRows\", \"groupRowsByOrder\", \"responsiveLayout\", \"breakpoint\", \"paginatorLocale\", \"value\", \"columns\", \"first\", \"rows\", \"totalRecords\", \"sortField\", \"sortOrder\", \"multiSortMeta\", \"selection\", \"selectAll\"], outputs: [\"contextMenuSelectionChange\", \"selectAllChange\", \"selectionChange\", \"onRowSelect\", \"onRowUnselect\", \"onPage\", \"onSort\", \"onFilter\", \"onLazyLoad\", \"onRowExpand\", \"onRowCollapse\", \"onContextMenuSelect\", \"onColResize\", \"onColReorder\", \"onRowReorder\", \"onEditInit\", \"onEditComplete\", \"onEditCancel\", \"onHeaderCheckboxToggle\", \"sortFunction\", \"firstChange\", \"rowsChange\", \"onStateSave\", \"onStateRestore\"] }, { kind: \"directive\", type: i3.PrimeTemplate, selector: \"[pTemplate]\", inputs: [\"type\", \"pTemplate\"] }, { kind: \"directive\", type: i2.SortableColumn, selector: \"[pSortableColumn]\", inputs: [\"pSortableColumn\", \"pSortableColumnDisabled\"] }, { kind: \"component\", type: i2.SortIcon, selector: \"p-sortIcon\", inputs: [\"field\"] }, { kind: \"component\", type: i2.TableCheckbox, selector: \"p-tableCheckbox\", inputs: [\"value\", \"disabled\", \"required\", \"index\", \"inputId\", \"name\", \"ariaLabel\"] }, { kind: \"component\", type: i2.TableHeaderCheckbox, selector: \"p-tableHeaderCheckbox\", inputs: [\"disabled\", \"inputId\", \"name\", \"ariaLabel\"] }, { kind: \"ngmodule\", type: ButtonModule }, { kind: \"directive\", type: i4.ButtonDirective, selector: \"[pButton]\", inputs: [\"iconPos\", \"loadingIcon\", \"loading\", \"severity\", \"raised\", \"rounded\", \"text\", \"outlined\", \"size\", \"plain\", \"fluid\", \"label\", \"icon\", \"buttonProps\"] }, { kind: \"ngmodule\", type: MenuModule }, { kind: \"ngmodule\", type: TranslateModule }, { kind: \"component\", type: FormlyForm, selector: \"formly-form\", inputs: [\"form\", \"model\", \"fields\", \"options\"], outputs: [\"modelChange\"] }, { kind: \"component\", type: GenericButton, selector: \"lib-generic-button\", inputs: [\"model\", \"type\", \"icon\", \"label\", \"variant\", \"severity\", \"size\", \"iconPosition\", \"disabled\", \"loading\", \"ariaLabel\", \"extraClasses\", \"permission\"], outputs: [\"clicked\", \"itemClick\"] }, { kind: \"ngmodule\", type: PaginatorModule }, { kind: \"component\", type: ActionMenuComponent, selector: \"app-action-menu\", inputs: [\"items\"] }, { kind: \"pipe\", type: i5.TranslatePipe, name: \"translate\" }] });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: GenericTable, decorators: [{\n type: Component,\n args: [{ selector: 'lib-generic-table', imports: [CommonModule, TableModule, ButtonModule, MenuModule, NgForOf, TranslateModule, FormlyField, FormlyForm, NgIf, TranslatePipe, Menu, Button, GenericButton, PaginatorModule, ActionMenuComponent], template: \"<div class=\\\"flex flex-col h-screen\\\" style=\\\" height: 60vh;\\\">\\r\\n <div class=\\\"flex-1 border rounded-lg overflow-hidden flex flex-col\\\">\\r\\n\\r\\n <!-- PrimeNG Table -->\\r\\n <p-table #dt\\r\\n [value]=\\\"data_\\\"\\r\\n [columns]=\\\"columns\\\"\\r\\n [lazy]=\\\"true\\\"\\r\\n [paginator]=\\\"false\\\"\\r\\n [rows]=\\\"rows\\\"\\r\\n [first]=\\\"first\\\"\\r\\n [totalRecords]=\\\"totalRecords\\\"\\r\\n (onLazyLoad)=\\\"onLazyLoad($event)\\\"\\r\\n [globalFilterFields]=\\\"globalFilterFields\\\"\\r\\n [loading]=\\\"loading\\\"\\r\\n [scrollable]=\\\"true\\\"\\r\\n scrollHeight=\\\"flex\\\"\\r\\n [selectionMode]=\\\"showRowSelectionCheckbox ? 'multiple' : (rowSelectable ? 'single' : undefined)\\\"\\r\\n [(selection)]=\\\"_selection\\\"\\r\\n (onRowSelect)=\\\"onInternalSelectionChange($event)\\\"\\r\\n (onRowUnselect)=\\\"onInternalSelectionChange($event)\\\"\\r\\n (onHeaderCheckboxToggle)=\\\"onInternalSelectionChange($event)\\\"\\r\\n tableLayout=\\\"fixed\\\"\\r\\n [customSort]=\\\"false\\\"\\r\\n class=\\\"flex-1 overflow-auto\\\"\\r\\n >\\r\\n\\r\\n <!-- Empty message -->\\r\\n <ng-template pTemplate=\\\"emptymessage\\\">\\r\\n <tr>\\r\\n <td colspan=\\\"10\\\">\\r\\n <div class=\\\"flex flex-col items-center justify-center py-10 text-center w-full\\\">\\r\\n <i class=\\\"pi pi-inbox text-4xl text-gray-400 mb-4\\\"></i>\\r\\n <p class=\\\"text-gray-500 mb-4\\\">{{ 'NO_DATA_FOUND' | translate }}</p>\\r\\n\\r\\n <ng-container *ngFor=\\\"let btn of addButtonConfigs; trackBy: trackByIdx\\\">\\r\\n <lib-generic-button\\r\\n *ngIf=\\\"!btn.visible || btn.visible === true\\\"\\r\\n [icon]=\\\"btn.icon\\\"\\r\\n [label]=\\\"btn.label | translate\\\"\\r\\n [variant]=\\\"btn.variant\\\"\\r\\n [size]=\\\"btn.size\\\"\\r\\n [model]=\\\"btn.splitActions\\\"\\r\\n [permission]=\\\"btn.permission\\\"\\r\\n (clicked)=\\\"onAddNew.emit()\\\"\\r\\n class=\\\"mb-2\\\"\\r\\n ></lib-generic-button>\\r\\n </ng-container>\\r\\n </div>\\r\\n </td>\\r\\n </tr>\\r\\n </ng-template>\\r\\n\\r\\n <!-- Table header -->\\r\\n <ng-template pTemplate=\\\"header\\\" let-columns>\\r\\n <tr class=\\\"bg-gray-200 sticky top-0 z-10\\\">\\r\\n <th *ngIf=\\\"showRowSelectionCheckbox\\\" style=\\\"width: 2rem\\\">\\r\\n <p-tableHeaderCheckbox></p-tableHeaderCheckbox>\\r\\n </th>\\r\\n <th *ngIf=\\\"actions.length > 0 && actionsPosition === 'start'\\\" class=\\\"px-4 py-2 text-sm font-medium text-center sticky right-0\\\">\\r\\n {{ '*' | translate }}\\r\\n </th>\\r\\n <ng-container *ngFor=\\\"let col of columns; trackBy: trackByFn\\\">\\r\\n <th\\r\\n [pSortableColumn]=\\\"col.props.entityKey || col.key\\\"\\r\\n class=\\\"px-4 py-2 text-sm font-medium text-center\\\"\\r\\n [style.min-width]=\\\"col.props?.table?.props?.width || '150px'\\\"\\r\\n >\\r\\n {{ col.props?.label | translate }}\\r\\n <p-sortIcon [field]=\\\"col.props.entityKey || col.key\\\"></p-sortIcon>\\r\\n </th>\\r\\n </ng-container>\\r\\n\\r\\n <th *ngIf=\\\"actions.length > 0 && actionsPosition === 'end'\\\" class=\\\"px-4 py-2 text-sm font-medium text-center sticky left-0\\\">\\r\\n {{ '*' | translate }}\\r\\n </th>\\r\\n </tr>\\r\\n </ng-template>\\r\\n\\r\\n <!-- Table body -->\\r\\n <ng-template pTemplate=\\\"body\\\" let-rowData let-columns=\\\"columns\\\" let-i=\\\"rowIndex\\\">\\r\\n <tr class=\\\"even:bg-gray-50 hover:bg-gray-100 cursor-pointer\\\" (click)=\\\"rowSelect.emit(rowData)\\\">\\r\\n <td *ngIf=\\\"showRowSelectionCheckbox\\\" style=\\\"width: 2rem\\\">\\r\\n <p-tableCheckbox [value]=\\\"rowData\\\"></p-tableCheckbox>\\r\\n </td>\\r\\n <td *ngIf=\\\"actions.length > 0 && actionsPosition === 'start'\\\" class=\\\"border-t border-gray-200 px-4 py-2 text-center sticky right-0 bg-gray-50\\\">\\r\\n <ng-container\\r\\n *ngTemplateOutlet=\\\"actionsTemplate; context: {$implicit: rowData}\\\">\\r\\n </ng-container>\\r\\n\\r\\n </td>\\r\\n\\r\\n <td\\r\\n *ngFor=\\\"let col of rowData.rowFields; let colIndex = index; trackBy: trackByFn\\\"\\r\\n class=\\\"border-t border-gray-200 px-4 py-2 text-center text-sm text-gray-700\\\"\\r\\n [style.width]=\\\"col.props?.table?.props?.width\\\"\\r\\n >\\r\\n <formly-form\\r\\n [model]=\\\"rowData\\\"\\r\\n [form]=\\\"getForm(i, colIndex)\\\"\\r\\n [fields]=\\\"[col]\\\"\\r\\n [options]=\\\"options\\\"\\r\\n ></formly-form>\\r\\n </td>\\r\\n\\r\\n <td *ngIf=\\\"actions.length > 0 && actionsPosition === 'end'\\\" class=\\\"border-t border-gray-200 px-4 py-2 text-center sticky left-0\\\">\\r\\n <ng-container\\r\\n *ngTemplateOutlet=\\\"actionsTemplate; context: {$implicit: rowData}\\\">\\r\\n </ng-container>\\r\\n\\r\\n </td>\\r\\n </tr>\\r\\n\\r\\n </ng-template>\\r\\n\\r\\n\\r\\n </p-table>\\r\\n </div>\\r\\n</div>\\r\\n\\r\\n<ng-template #actionsTemplate let-rowData>\\r\\n <ng-container [ngSwitch]=\\\"actionsMode\\\">\\r\\n\\r\\n <ng-container *ngSwitchCase=\\\"'buttons'\\\">\\r\\n <ng-container *ngFor=\\\"let act of sortedActions\\\">\\r\\n <button\\r\\n *ngIf=\\\"act.icon || act.label\\\"\\r\\n pButton\\r\\n [icon]=\\\"act.icon || ''\\\"\\r\\n [label]=\\\"(act.label ?? '') | translate\\\"\\r\\n [class]=\\\"act.styleClass || ''\\\"\\r\\n class=\\\"p-button-sm mx-1\\\"\\r\\n (click)=\\\"onAction(act, rowData)\\\" ></button>\\r\\n </ng-container>\\r\\n </ng-container>\\r\\n\\r\\n <ng-container *ngSwitchCase=\\\"'menu'\\\">\\r\\n <app-action-menu [items]=\\\"getMenuItems(rowData) || []\\\"></app-action-menu>\\r\\n <!-- <p-menu #menu [model]=\\\"getMenuItems(rowData)\\\" [popup]=\\\"true\\\" appendTo=\\\"body\\\"></p-menu>\\r\\n <p-button\\r\\n outlined\\r\\n icon=\\\"pi pi-ellipsis-v\\\"\\r\\n class=\\\"p-button-text p-button-sm\\\"\\r\\n (onClick)=\\\"menu.toggle($event)\\\"\\r\\n ></p-button> -->\\r\\n </ng-container>\\r\\n\\r\\n </ng-container>\\r\\n</ng-template>\\r\\n\\r\\n\", styles: [\".custom-button-medium{font-size:1.1rem;width:2.5rem;height:2.5rem;line-height:2.5rem;padding:0}.custom-button-gray{color:#333;background-color:transparent;border:none}.custom-button-gray:hover{background-color:#eee;color:#000}.icon-delete{color:red!important}.icon-edit{color:#333}\\n\"] }]\n }], propDecorators: { dt: [{\n type: ViewChild,\n args: ['dt']\n }], data: [{\n type: Input\n }], columns: [{\n type: Input\n }], loading: [{\n type: Input\n }], actions: [{\n type: Input\n }], actionsPosition: [{\n type: Input\n }], actionsMode: [{\n type: Input\n }], first: [{\n type: Input\n }], rows: [{\n type: Input\n }], totalRecords: [{\n type: Input\n }], sortField: [{\n type: Input\n }], sortOrder: [{\n type: Input\n }], globalFilterFields: [{\n type: Input\n }], action: [{\n type: Output\n }], pageChange: [{\n type: Output\n }], onAddNew: [{\n type: Output\n }], addButtonConfigs: [{\n type: Input\n }], scrollHeight: [{\n type: Input\n }], rowSelectable: [{\n type: Input\n }], rowStyleFn: [{\n type: Input\n }], rowClassFn: [{\n type: Input\n }], disableRowCheckboxFn: [{\n type: Input\n }], selection: [{\n type: Input\n }], rowSelect: [{\n type: Output\n }], selectionChange: [{\n type: Output\n }], paginator: [{\n type: Input\n }], showRowSelectionCheckbox: [{\n type: Input\n }] } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2VuZXJpYy10YWJsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvbmcudWkuY29yZS9nZW5lcmljLXRhYmxlL3NyYy9saWIvZ2VuZXJpYy10YWJsZS50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvbmcudWkuY29yZS9nZW5lcmljLXRhYmxlL3NyYy9saWIvZ2VuZXJpYy10YWJsZS5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxZQUFZLEVBQUUsU0FBUyxFQUE2QixNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFckgsT0FBTyxFQUFFLEtBQUssRUFBMkUsTUFBTSxlQUFlLENBQUM7QUFDL0csT0FBTyxFQUFFLFlBQVksRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDOUQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM1QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3RELE9BQU8sRUFBRSxVQUFVLEVBQUUsSUFBSSxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQ2hELE9BQU8sRUFBRSxlQUFlLEVBQUUsYUFBYSxFQUFFLGdCQUFnQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDdkYsT0FBTyxFQUFFLFdBQVcsRUFBcUIsVUFBVSxFQUFxQixNQUFNLGtCQUFrQixDQUFDO0FBQ2pHLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUUzQyxPQUFPLEVBQUUsU0FBUyxFQUFXLE1BQU0sUUFBUSxDQUFDO0FBQzVDLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSw0Q0FBNEMsQ0FBQztBQUMzRSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUN2RSxPQUFPLEVBQUUsZUFBZSxFQUFF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Z0JBQ0csVUFBVTtzQkFBbkIsTUFBTTtnQkFHRyxRQUFRO3NCQUFqQixNQUFNO2dCQUNBLGdCQUFnQjtzQkFBeEIsS0FBSztnQkFDSyxZQUFZO3NCQUFwQixLQUFLO2dCQUlHLGFBQWE7c0JBQXJCLEtBQUs7Z0JBUUcsVUFBVTtzQkFBbEIsS0FBSztnQkFHRyxVQUFVO3NCQUFsQixLQUFLO2dCQUdHLG9CQUFvQjtzQkFBNUIsS0FBSztnQkFHRixTQUFTO3NCQURaLEtBQUs7Z0JBWUksU0FBUztzQkFBbEIsTUFBTTtnQkFHRyxlQUFlO3NCQUF4QixNQUFNO2dCQUlFLFNBQVM7c0JBQWpCLEtBQUs7Z0JBT0csd0JBQXdCO3NCQUFoQyxLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCwgT3V0cHV0LCBFdmVudEVtaXR0ZXIsIFZpZXdDaGlsZCwgIE9uQ2hhbmdlcywgU2ltcGxlQ2hhbmdlcywgaW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IE1lbnVJdGVtLCBTb3J0RXZlbnQgfSBmcm9tICdwcmltZW5nL2FwaSc7XHJcbmltcG9ydCB7IFRhYmxlLCBUYWJsZUhlYWRlckNoZWNrYm94VG9nZ2xlRXZlbnQsIFRhYmxlTGF6eUxvYWRFdmVudCwgVGFibGVSb3dTZWxlY3RFdmVudCB9IGZyb20gJ3ByaW1lbmcvdGFibGUnO1xyXG5pbXBvcnQgeyBDb21tb25Nb2R1bGUsIE5nRm9yT2YsIE5nSWYgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBUYWJsZU1vZHVsZSB9IGZyb20gJ3ByaW1lbmcvdGFibGUnO1xyXG5pbXBvcnQgeyBCdXR0b25Nb2R1bGUsIEJ1dHRvbiB9IGZyb20gJ3ByaW1lbmcvYnV0dG9uJztcclxuaW1wb3J0IHsgTWVudU1vZHVsZSwgTWVudSB9IGZyb20gJ3ByaW1lbmcvbWVudSc7XHJcbmltcG9ydCB7IFRyYW5zbGF0ZU1vZHVsZSwgVHJhbnNsYXRlUGlwZSwgVHJhbnNsYXRlU2VydmljZSB9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xyXG5pbXBvcnQgeyBGb3JtbHlGaWVsZCwgRm9ybWx5RmllbGRDb25maWcsIEZvcm1seUZvcm0sIEZvcm1seUZvcm1PcHRpb25zIH0gZnJvbSAnQG5neC1mb3JtbHkvY29yZSc7XHJcbmltcG9ydCB7IEZvcm1Hcm91cCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgQWN0aW9uRGVmLCBCdXR0b25Db25maWcgfSBmcm9tICdAZWxpdGUuZnJhbWV3b3JrL25nLmNvcmUvbW9kZWxzJztcclxuaW1wb3J0IHsgY2xvbmVEZWVwLCBmb3JFYWNoIH0gZnJvbSAnbG9kYXNoJztcclxuaW1wb3J0IHsgR2VuZXJpY0J1dHRvbiB9IGZyb20gJ0BlbGl0ZS5mcmFtZXdvcmsvbmcudWkuY29yZS9nZW5lcmljLWJ1dHRvbic7XHJcbmltcG9ydCB7IFBlcm1pc3Npb25zU2VydmljZSB9IGZyb20gJ0BlbGl0ZS5mcmFtZXdvcmsvbmcuY29yZS9zZXJ2aWNlcyc7XHJcbmltcG9ydCB7IFBhZ2luYXRvck1vZHVsZSB9IGZyb20gJ3ByaW1lbmcvcGFnaW5hdG9yJztcclxuaW1wb3J0IHsgQWN0aW9uTWVudUNvbXBvbmVudCB9IGZyb20gJy4vYWN0aW9uLW1lbnUuY29tcG9uZW50JztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnbGliLWdlbmVyaWMtdGFibGUnLFxyXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIFRhYmxlTW9kdWxlLCBCdXR0b25Nb2R1bGUsIE1lbnVNb2R1bGUsIE5nRm9yT2YsVHJhbnNsYXRlTW9kdWxlLEZvcm1seUZpZWxkLEZvcm1seUZvcm0sIE5nSWYsIFRyYW5zbGF0ZVBpcGUsIE1lbnUsIEJ1dHRvbixHZW5lcmljQnV0dG9uLFBhZ2luYXRvck1vZHVsZSxBY3Rpb25NZW51Q29tcG9uZW50XSxcclxuICB0ZW1wbGF0ZVVybDogJy4vZ2VuZXJpYy10YWJsZS5odG1sJyxcclxuICBzdHlsZVVybDogJy4vZ2VuZXJpYy10YWJsZS5jc3MnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBHZW5lcmljVGFibGU8VD4gIGltcGxlbWVudHMgT25DaGFuZ2Vze1xyXG5cclxuICB0cmFuc2xhdGVTZXJ2aWNlOlRyYW5zbGF0ZVNlcnZpY2UgPSBpbmplY3QoVHJhbnNsYXRlU2VydmljZSk7XHJcbiAgcGVybWlzc2lvbnNTZXJ2aWNlOlBlcm1pc3Npb25zU2VydmljZSA9IGluamVjdChQZXJtaXNzaW9uc1NlcnZpY2UpO1xyXG5cclxuQFZpZXdDaGlsZCgnZHQnKSBkdCE6IFRhYmxlO1xyXG5cclxuQElucHV0KCkgZGF0YTogYW55W10gPSBbXTtcclxuIGRhdGFfOiBhbnlbXSA9IFtdO1xyXG4gIEBJbnB1dCgpIGNvbHVtbnM6IEZvcm1seUZpZWxkQ29uZmlnW10gPSBbXTtcclxuICBwcm9jZXNzZWRGaWVsZHM6IGFueVtdID0gW107XHJcbiAgY29sdW1uc186IEZvcm1seUZpZWxkQ29uZmlnW10gPSBbXTtcclxuICBASW5wdXQoKSBsb2FkaW5nID0gZmFsc2U7XHJcbiAgQElucHV0KCkgYWN0aW9uczogQWN0aW9uRGVmPFQ+W10gPSBbXTtcclxuICBASW5wdXQoKSBhY3Rpb25zUG9zaXRpb246ICdzdGFydCcgfCAnZW5kJyA9ICdlbmQnO1xyXG4gIEBJbnB1dCgpIGFjdGlvbnNNb2RlOiAnYnV0dG9ucycgfCAnbWVudScgPSAnYnV0dG9ucyc7XHJcbiAgQElucHV0KCkgZmlyc3QgPSAwO1xyXG4gIEBJbnB1dCgpIHJvd3MgPSAxMDtcclxuICBASW5wdXQoKSB0b3RhbFJlY29yZHMgPSAwO1xyXG4gIEBJbnB1dCgpIHNvcnRGaWVsZD86IHN0cmluZztcclxuICBASW5wdXQoKSBzb3J0T3JkZXI6IDEgfCAtMSA9IDE7XHJcbiAgQElucHV0KCkgZ2xvYmFsRmlsdGVyRmllbGRzOiBzdHJpbmdbXSA9IFtdO1xyXG5cclxuICBAT3V0cHV0KCkgYWN0aW9uID0gbmV3IEV2ZW50RW1pdHRlcjx7IG5hbWU6IHN0cmluZzsgcm93OiBUIH0+KCk7XHJcbiAgQE91dHB1dCgpIHBhZ2VDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPFRhYmxlTGF6eUxvYWRFdmVudD4oKTtcclxuXHJcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1vdXRwdXQtb24tcHJlZml4XHJcbiAgQE91dHB1dCgpIG9uQWRkTmV3ID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XHJcbkBJbnB1dCgpIGFkZEJ1dHRvbkNvbmZpZ3M6IEJ1dHRvbkNvbmZpZ1tdID0gW107XHJcbiAgQElucHV0KCkgc2Nyb2xsSGVpZ2h0ID0gJzQwMHB4JztcclxuXHJcbiAvLyAqKtis2K/ZitivKio6INiq2YXZg9mK2YYg2KfYrtiq2YrYp9ixINin2YTYtdmB2YjZgVxyXG4gIC8qKiDZgdi52ZHZhCDYp9iu2KrZitin2LEg2KfZhNi12YHZitmGIHNpbmdsZS9tdWx0aXBsZSAqL1xyXG4gIEBJbnB1dCgpIHJvd1NlbGVjdGFibGUgPSB0cnVlO1xyXG4gIC8qKiDZitit2KrZgdi4INio2KfZhNi12YEg2KfZhNmF2K3Yr9ivICovXHJcbiAgLy9ASW5wdXQoKSBzZWxlY3Rpb246IFQgfCBUW10gfCBudWxsID0gbnVsbDtcclxuXHJcbiAgLy8g2YfYsNinINiz2YrZg9mI2YYg2YXYsdiq2KjYt9mL2Kcg2KjZgCBbKHNlbGVjdGlvbildINmB2YogcC10YWJsZVxyXG4gIF9zZWxlY3Rpb246IFQgfCBUW10gfCBudWxsID0gbnVsbDtcclxuXHJcbiAgLy/ZhNiq2LrZitmK2LEg2YTZiNmGINi12YEg2YXYudmK2ZHZhlxyXG4gIEBJbnB1dCgpIHJvd1N0eWxlRm4/OiAocm93OiBUKSA9PiBhbnk7XHJcblxyXG4gIC8vIOKchSDZhNiq2LnZitmK2YYg2YPZhNin2LMgQ1NTINij2YggVGFpbHdpbmQg2LnZhNmJINin2YTYtdmBXHJcbiAgQElucHV0KCkgcm93Q2xhc3NGbj86IChyb3c6IFQpID0+IHN0cmluZyB8IHN0cmluZ1tdIHwgU2V0PHN0cmluZz47XHJcblxyXG4gIC8v2KLYrtixINmE2KrYrNmF2YrYryAvINiq2LnYt9mK2YQgY2hlY2tib3gg2KfZhNin2K7YqtmK2KfYsVxyXG4gIEBJbnB1dCgpIGRpc2FibGVSb3dDaGVja2JveEZuPzogKHJvdzogVCkgPT4gYm9vbGVhbjtcclxuXHJcbiAgQElucHV0KClcclxuICBnZXQgc2VsZWN0aW9uKCk6IFQgfCBUW10gfCBudWxsIHtcclxuICAgICAgcmV0dXJuIHRoaXMuX3NlbGVjdGlvbjtcclxuICB9XHJcbiAgc2V0IHNlbGVjdGlvbih2YWw6IFQgfCBUW10gfCBudWxsKSB7XHJcbiAgICAgIHRoaXMuX3NlbGVjdGlvbiA9IHZhbDtcclxuICAgICAgLy8g2YTYpyDYqtmP2LXYr9ixINin2YTYrdiv2Ksg2YfZhtin2Iwg2KjZhCDZgdmKIG9uSW50ZXJuYWxTZWxlY3Rpb25DaGFuZ2Ug2YHZgti3XHJcbiAgfVxyXG4gdHJhY2tCeUlkeChpbmRleDogbnVtYmVyLCBpdGVtOiBhbnkpOiBudW1iZXIge1xyXG4gIHJldHVybiBpbmRleDtcclxuIH1cclxuICAvKiog2YrYtdiv2LEg2KfZhNi12YEg2KfZhNmF2K3Yr9ivINi52YbYryDYp9mE2YbZgtixICovXHJcbiAgQE91dHB1dCgpIHJvd1NlbGVjdCA9IG5ldyBFdmVudEVtaXR0ZXI8VD4oKTtcclxuXHJcbiAgICAgLyoqINmK2LXYr9ixINin2YTYtdmB2YjZgSDYp9mE2YXYrdiv2K/YqSDYudmG2K8g2KfZhNiq2LrZitmK2LEgKNmE2YTYsdio2Lcg2KfZhNir2YbYp9im2YopICovXHJcbiAgQE91dHB1dCgpIHNlbGVjdGlvbkNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8VCB8IFRbXSB8IG51bGw+KCk7XHJcblxyXG5cclxuICAgLyoqINis2K/ZitivOiDYp9mE2KrYrdmD2YUg2KjYuNmH2YjYsSDYp9mE2YAgcGFnaW5hdG9yICovXHJcbiAgQElucHV0KCkgcGFnaW5hdG9yID0gdHJ1ZTtcclxuZm9ybSA9IG5ldyBGb3JtR3JvdXAoe30pO1xyXG5vcHRpb25zOiBGb3JtbHlGb3JtT3B0aW9ucyA9IHt9O1xyXG5cclxuXHJcbiAgLy8gKirYrNiv2YrYryoqOiDZitiq2K3Zg9mFINio2KXYuNmH2KfYsSDYudmF2YjYryDYp9iu2KrZitin2LEg2KfZhNi12YHZiNmBIChjaGVja2JveGVzKVxyXG4gIC8qKiDZitiq2K3Zg9mFINmB2Yog2KXYuNmH2KfYsSDYudmF2YjYryDYp9iu2KrZitin2LEg2KfZhNi12YHZiNmBINin2YTZhdiq2LnYr9iv2Kkg2KjZiNin2LPYt9ipIGNoZWNrYm94ZXMgKi9cclxuICBASW5wdXQoKSBzaG93Um93U2VsZWN0aW9uQ2hlY2tib3ggPSBmYWxzZTtcclxuXHJcblxyXG4gIG9uSW50ZXJuYWxTZWxlY3Rpb25DaGFuZ2UoZXZlbnQ6IFRhYmxlUm93U2VsZWN0RXZlbnQ8VD5cclxuICAgIHwgVGFibGVIZWFkZXJDaGVja2JveFRvZ2dsZUV2ZW50KTogdm9pZCB7XHJcbiAgaWYgKCdkYXRhJyBpbiBldmVudCkge1xyXG4gICAgLy8gUm93IHNlbGVjdC91bnNlbGVjdCAoc2luZ2xlINij2YggbXVsdGlwbGUpXHJcbiAgICBpZiAoQXJyYXkuaXNBcnJheSh0aGlzLl9zZWxlY3Rpb24pKSB7XHJcbiAgICAgIHRoaXMuX3NlbGVjdGlvbiA9IFsuLi50aGlzLl9zZWxlY3Rpb25dOyAvLyDYqtit2K/ZitirINmG2LPYrtipINin2YTZhdi12YHZiNmB2Kkg2LnZhtivINmF2KrYudiv2K9cclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuX3NlbGVjdGlvbiA9IGV2ZW50LmRhdGEgYXMgVDsgLy8g2KfYrtiq2YrYp9ixINmB2LHYr9mKXHJcbiAgICB9XHJcbiAgfSBlbHNlIGlmICgnY2hlY2tlZCcgaW4gZXZlbnQpIHtcclxuICAgIC8vIEhlYWRlciBjaGVja2JveCB0b2dnbGVcclxuICAgIHRoaXMuX3NlbGVjdGlvbiA9IGV2ZW50LmNoZWNrZWQgPyBbLi4udGhpcy5kYXRhXSA6IFtdO1xyXG4gIH1cclxuXHJcbiAgdGhpcy5zZWxlY3Rpb25DaGFuZ2UuZW1pdCh0aGlzLl9zZWxlY3Rpb24pO1xyXG4gIC8vINil2LDYpyDZhdinINi52KfYryDZgdmK2Ycg2KPZiiDYqtit2K/Zitiv2Iwg2KPYtdiv2LEg2K3Yr9irINiu2KfYtSDZhNmE2KrZgdix2YrYulxyXG5pZiAoIXRoaXMuX3NlbGVjdGlvbiB8fCAoQXJyYXkuaXNBcnJheSh0aGlzLl9zZWxlY3Rpb24pICYmIHRoaXMuX3NlbGVjdGlvbi5sZW5ndGggPT09IDApKSB7XHJcbiAgdGhpcy5yb3dTZWxlY3QuZW1pdCh1bmRlZmluZWQpOyAvLyDZitix2LPZhCBudWxsINi52LTYp9mGINmK2K7ZgdmKINin2YTYo9iy2LHYp9ixINio2KfZhNij2KhcclxufVxyXG5cclxufVxyXG5cclxuXHJcblxyXG5jdXN0b21Tb3J0KGV2ZW50OiBTb3J0RXZlbnQpIHtcclxuICBldmVudC5kYXRhPy5zb3J0KChkYXRhMSwgZGF0YTIpID0+IHtcclxuICAgIGNvbnN0IHZhbHVlMSA9IHRoaXMucmVzb2x2ZUZpZWxkRGF0YShkYXRhMSwgZXZlbnQuZmllbGQgPz8gJycpO1xyXG4gICAgY29uc3QgdmFsdWUyID0gdGhpcy5yZXNvbHZlRmllbGREYXRhKGRhdGEyLCBldmVudC5maWVsZCA/PyAnJyk7XHJcblxyXG4gICAgbGV0IHJlc3VsdCA9IDA7XHJcbiAgICBpZiAodmFsdWUxID09IG51bGwgJiYgdmFsdWUyICE9IG51bGwpIHJlc3VsdCA9IC0xO1xyXG4gICAgZWxzZSBpZiAodmFsdWUxICE9IG51bGwgJiYgdmFsdWUyID09IG51bGwpIHJlc3VsdCA9IDE7XHJcbiAgICBlbHNlIGlmICh2YWx1ZTEgPT0gbnVsbCAmJiB2YWx1ZTIgPT0gbnVsbCkgcmVzdWx0ID0gMDtcclxuICAgIGVsc2UgaWYgKHR5cGVvZiB2YWx1ZTEgPT09ICdzdHJpbmcnICYmIHR5cGVvZiB2YWx1ZTIgPT09ICdzdHJpbmcnKVxyXG4gICAgICByZXN1bHQgPSB2YWx1ZTEubG9jYWxlQ29tcGFyZSh2YWx1ZTIpO1xyXG4gICAgZWxzZSByZXN1bHQgPSB2YWx1ZTEgPCB2YWx1ZTIgPyAtMSA6IHZhbHVlMSA+IHZhbHVlMiA/IDEgOiAwO1xyXG5cclxuICAgIHJldHVybiAoZXZlbnQub3JkZXIgPz8gMSkgKiByZXN1bHQ7XHJcbiAgfSk7XHJcbn1cclxucmVzb2x2ZUZpZWxkRGF0YShkYXRhOiBhbnksIGZpZWxkOiBzdHJpbmcpOiBhbnkge1xyXG4gIGlmICghZmllbGQpIHJldHVybiBudWxsO1xyXG4gIGlmIChmaWVsZC5pbmRleE9mKCcuJykgPT09IC0xKSByZXR1cm4gZGF0YVtmaWVsZF07XHJcbiAgcmV0dXJuIGZpZWxkLnNwbGl0KCcuJykucmVkdWNlKChvYmosIHByb3ApID0+IChvYmogPyBvYmpbcHJvcF0gOiBudWxsKSwgZGF0YSk7XHJcbn1cclxuXHJcbi8vIGdldE9yZGVyZWRDb2x1bW5zKCk6IFRhYmxlQ29sdW1uW10ge1xyXG4vLyAgIHJldHVybiBbLi4udGhpcy5jb2x1bW5zLFxyXG4vLyAgICAgLi4uKHRoaXMuc2hvd1Jvd1NlbGVjdGlvbkNoZWNrYm94ID8gW3sgdHlwZTogJ3NlbGVjdGlvbicsIG9yZGVyOiAtMSB9XSA6IFtdKSxcclxuLy8gICAgIHsgdHlwZTogJ29wZXJhdGlvbnMnLCBsYWJlbDogJ09QRVJBVElPTlMnLCBvcmRlcjogOTk5IH1cclxuLy8gICBdLnNvcnQoKGEsIGIpID0+IChhLm9yZGVyID8/IDApIC0gKGIub3JkZXIgPz8gMCkpO1xyXG4vLyB9XHJcblxyXG5nZXQgc29ydGVkQWN0aW9ucygpOiBBY3Rpb25EZWY8VD5bXSB7XHJcbiAgcmV0dXJuIHRoaXMuYWN0aW9uc1xyXG4gICAgLmZpbHRlcihhY3Rpb24gPT5cclxuICAgICAgKGFjdGlvbi52aXNpYmxlICE9PSBmYWxzZSkgJiYgLy8g4pyFINmK2K7ZgdmKINij2Yog2LLYsSBgdmlzaWJsZSA9IGZhbHNlYFxyXG4gICAgICAoXHJcbiAgICAgICAgIWFjdGlvbi5wZXJtaXNzaW9ucz8ubGVuZ3RoIHx8XHJcbiAgICAgICAgYWN0aW9uLnBlcm1pc3Npb25zLmV2ZXJ5KHAgPT4gdGhpcy5wZXJtaXNzaW9uc1NlcnZpY2UuaXNHcmFudGVkKHApKVxyXG4gICAgICApXHJcbiAgICApXHJcbiAgICAuc29ydCgoYSwgYikgPT4gKGEub3JkZXIgPz8gMCkgLSAoYi5vcmRlciA/PyAwKSk7XHJcbn1cclxuXHJcblxyXG5nZXQgc29ydGVkQWN0aW9uczIoKTogQWN0aW9uRGVmPFQ+W10ge1xyXG4gIHJldHVybiB0aGlzLmFjdGlvbnNcclxuICAgIC5maWx0ZXIoYWN0aW9uID0+XHJcbiAgICAgICFhY3Rpb24ucGVybWlzc2lvbnM/Lmxlbmd0aCB8fCAvLyBubyBwZXJtaXNzaW9ucyDihpIgYWxsb3dcclxuICAgICAgYWN0aW9uLnBlcm1pc3Npb25zLmV2ZXJ5KHAgPT4gdGhpcy5wZXJtaXNzaW9uc1NlcnZpY2UuaXNHcmFudGVkKHApKSAvLyBhbGwgZ3JhbnRlZFxyXG4gICAgKVxyXG4gICAgLnNvcnQoKGEsIGIpID0+IChhLm9yZGVyID8/IDApIC0gKGIub3JkZXIgPz8gMCkpO1xyXG59XHJcblxyXG5cclxuIG9uQWN0aW9uKGFjdDogQWN0aW9uRGVmPFQ+LCByb3c6IFQpIHtcclxuICAgIGlmIChhY3QuYWN0aW9uKSB7XHJcbiAgICAgIGFjdC5hY3Rpb24ocm93KTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuYWN0aW9uLmVtaXQoeyBuYW1lOiBhY3QubmFtZSwgcm93IH0pO1xyXG4gICAgfVxyXG4gIH1cclxuLy8gIGNsb25lRmllbGQoZmllbGQ6IGFueSk6IGFueSB7XHJcbi8vICAgaWYgKGZpZWxkID09PSBudWxsIHx8IHR5cGVvZiBmaWVsZCAhPT0gJ29iamVjdCcpIHtcclxuLy8gICAgIHJldHVybiBmaWVsZDtcclxuLy8gICB9XHJcblxyXG4vLyAgICBpZiAoQXJyYXkuaXNBcnJheShmaWVsZCkpIHtcclxuLy8gICAgIC8vIHByZXNlcnZlIGB0aGlzYCBjb250ZXh0XHJcbi8vICAgICByZXR1cm4gZmllbGQubWFwKChpdGVtKSA9PiB0aGlzLmNsb25lRmllbGQoaXRlbSkpO1xyXG4vLyAgIH1cclxuLy8gICBjb25zdCBjbG9uZWQ6IGFueSA9IHt9O1xyXG4vLyAgIGZvciAoY29uc3Qga2V5IG9mIE9iamVjdC5rZXlzKGZpZWxkKSkge1xyXG4vLyAgICAgY2xvbmVkW2tleV0gPSB0aGlzLmNsb25lRmllbGQoZmllbGRba2V5XSk7XHJcbi8vICAgfVxyXG5cclxuLy8gICByZXR1cm4gY2xvbmVkO1xyXG4vLyB9XHJcblxyXG4gLy8gVXNlIGEgbWFwIHRvIHN0b3JlIGZvcm0gZ3JvdXBzIGZvciBlYWNoIHJvdyBhbmQgY29sdW1uXHJcbiAgcHJpdmF0ZSBjZWxsRm9ybXM6IE1hcDxzdHJpbmcsIEZvcm1Hcm91cD4gPSBuZXcgTWFwKCk7XHJcbiAgZm9ybXM6IEZvcm1Hcm91cCA9IG5ldyBGb3JtR3JvdXAoe30pOyAvLyBBIG1haW4gZm9ybSBmb3IgdGhlIHRhYmxlXHJcblxyXG5cclxuICAvLyBSZWZhY3RvcmVkIGdldEZvcm0gdG8gcmV0dXJuIGFuIGV4aXN0aW5nIGZvcm0gaW5zdGFuY2VcclxuICBnZXRGb3JtKHJvd0luZGV4OiBudW1iZXIsIGNvbEluZGV4OiBudW1iZXIpOiBGb3JtR3JvdXAge1xyXG4gICAgY29uc3Qga2V5ID0gYCR7cm93SW5kZXh9XyR7Y29sSW5kZXh9YDtcclxuICAgIGxldCBmb3JtID0gdGhpcy5jZWxsRm9ybXMuZ2V0KGtleSk7XHJcblxyXG4gICAgaWYgKCFmb3JtKSB7XHJcbiAgICAgIGZvcm0gPSBuZXcgRm9ybUdyb3VwKHt9KTtcclxuICAgICAgdGhpcy5jZWxsRm9ybXMuc2V0KGtleSwgZm9ybSk7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gZm9ybTtcclxuICB9XHJcbnRyYWNrQnlGbihpbmRleDogbnVtYmVyLCBpdGVtOiBhbnkpIHtcclxuICByZXR1cm4gaW5kZXg7IC8vIG9yIGEgdW5pcXVlIGlkZW50aWZpZXIgZnJvbSB5b3VyIGRhdGFcclxufVxyXG4gLy8gVGhpcyBtZXRob2QgaXMgY2FsbGVkIHdoZW5ldmVyIGFueSBASW5wdXQoKSBwcm9wZXJ0eSBjaGFuZ2VzLlxyXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcclxuICAgIC8vIENoZWNrIGlmIHRoZSAnZGF0YScgcHJvcGVydHkgaGFzIGNoYW5nZWQuXHJcbiAgICBpZiAoY2hhbmdlc1snZGF0YSddKSB7XHJcbiAgICAgIGNvbnN0IGN1cnJlbnREYXRhID0gY2hhbmdlc1snZGF0YSddLmN1cnJlbnRWYWx1ZTtcclxuICAgICAgY29uc3QgcHJldmlvdXNEYXRhID0gY2hhbmdlc1snZGF0YSddLnByZXZpb3VzVmFsdWU7XHJcblxyXG5cclxuICAgICAgLy8gRm9yIGV4YW1wbGUsIHlvdSBjYW4gY2FsbCBhIG1ldGhvZCB0byByZS1yZW5kZXIgb3IgcHJvY2VzcyB0aGUgZGF0YS5cclxuICAgICAgdGhpcy5yZWZyZXNoRGF0YSgpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiBvbkxhenlMb2FkKGV2ZW50OiBUYWJsZUxhenlMb2FkRXZlbnQpOiB2b2lkIHtcclxuICAgIC8vIFJlaW5pdGlhbGl6ZSBmb3JtcyBvbiBuZXcgZGF0YSBsb2FkXHJcbiAgICAvLyB0aGlzLmNlbGxGb3Jtcy5jbGVhcigpO1xyXG4gIHRoaXMucmVmcmVzaERhdGEoKTtcclxuICAgIHRoaXMucGFnZUNoYW5nZS5lbWl0KGV2ZW50KTtcclxuICB9XHJcblxyXG5cclxuICBhcHBseUZpbHRlcihmaWx0ZXJzOiBhbnkpOiB2b2lkIHtcclxuICAgIC8vIGlmIChmaWVsZCkge1xyXG4gICAgLy8gICB0aGlzLmR0LmZpbHRlcihnbG9iYWwsIGZpZWxkLCAnY29udGFpbnMnKTtcclxuICAgIC8vIH0gZWxzZSB7XHJcbiAgICAvLyAgIHRoaXMuZHQuZmlsdGVyR2xvYmFsKGdsb2JhbCwgJ2NvbnRhaW5zJyk7XHJcbiAgICAvLyB9XHJcblxyXG4gIH1cclxuICByZWZyZXNoRGF0YSgpe1xyXG4gICAgIHRoaXMuZGF0YV8gPSB0aGlzLmRhdGEubWFwKHJvd0RhdGEgPT4ge1xyXG4gICAgLy8gQ3JlYXRlIGEgbmV3IGFycmF5IG9mIGZpZWxkcyBmb3IgZWFjaCByb3dcclxuICAgIGNvbnN0IHJvd0ZpZWxkcyA9IHRoaXMuY29sdW1ucy5tYXAoY29sID0+IHtcclxuICAgICAgcmV0dXJuIGNsb25lRGVlcChjb2wpO1xyXG4gICAgfSk7XHJcbiAgICAvLyBBdHRhY2ggdGhlIHVuaXF1ZSBmaWVsZHMgdG8gdGhlIHJvdyBkYXRhIG9iamVjdFxyXG4gICAgcmV0dXJuIHtcclxuICAgICAgLi4ucm93RGF0YSxcclxuICAgICAgcm93RmllbGRzOiByb3dGaWVsZHNcclxuICAgIH07XHJcbiAgfSk7XHJcbiAgfVxyXG5cclxuICBnZXRNZW51SXRlbXMocm93OiBUKTogTWVudUl0ZW1bXSB7XHJcbiAgICByZXR1cm4gdGhpcy5zb3J0ZWRBY3Rpb25zLm1hcChhY3QgPT4gKHtcclxuICAgICAgbGFiZWw6IHRoaXMudHJhbnNsYXRlU2VydmljZS5pbnN0YW50KCBhY3QubGFiZWwgPz8nJykgLFxyXG4gICAgICBpY29uOiBhY3QuaWNvbixcclxuICAgICAgY29tbWFuZDogKCkgPT4gdGhpcy5vbkFjdGlvbihhY3QsIHJvdyApLFxyXG4gICAgICBzdHlsZUNsYXNzOiBhY3Quc3R5bGVDbGFzc1xyXG4gICAgfSkpO1xyXG4gIH1cclxuXHJcbiAvLyAqKtis2K/ZitivKio6INmK2KrZhSDYpdi32YTYp9mCINmH2LDYpyDYudmG2K8g2KfYrtiq2YrYp9ixINi12YFcclxuICBvblJvd1NlbGVjdChldmVudDogVGFibGVSb3dTZWxlY3RFdmVudDxUPikge1xyXG4gICAgLy8gZGVidWdnZXJcclxuICAgIGlmIChldmVudC5kYXRhKSB7XHJcbiAgICAgIHRoaXMucm93U2VsZWN0LmVtaXQoZXZlbnQuZGF0YSBhcyBUKTtcclxuICAgIH1cclxuICB9XHJcblxyXG59XHJcbiIsIjxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtY29sIGgtc2NyZWVuXCIgc3R5bGU9XCIgICAgaGVpZ2h0OiA2MHZoO1wiPlxyXG4gIDxkaXYgY2xhc3M9XCJmbGV4LTEgYm9yZGVyIHJvdW5kZWQtbGcgb3ZlcmZsb3ctaGlkZGVuIGZsZXggZmxleC1jb2xcIj5cclxuXHJcbiAgICA8IS0tIFByaW1lTkcgVGFibGUgLS0+XHJcbiAgICA8cC10YWJsZSAjZHRcclxuICAgICAgW3ZhbHVlXT1cImRhdGFfXCJcclxuICAgICAgW2NvbHVtbnNdPVwiY29sdW1uc1wiXHJcbiAgICAgIFtsYXp5XT1cInRydWVcIlxyXG4gICAgICBbcGFnaW5hdG9yXT1cImZhbHNlXCJcclxuICAgICAgW3Jvd3NdPVwicm93c1wiXHJcbiAgICAgIFtmaXJzdF09XCJmaXJzdFwiXHJcbiAgICAgIFt0b3RhbFJlY29yZHNdPVwidG90YWxSZWNvcmRzXCJcclxuICAgICAgKG9uTGF6eUxvYWQpPVwib25MYXp5TG9hZCgkZXZlbnQpXCJcclxuICAgICAgW2dsb2JhbEZpbHRlckZpZWxkc109XCJnbG9iYWxGaWx0ZXJGaWVsZHNcIlxyXG4gICAgICBbbG9hZGluZ109XCJsb2FkaW5nXCJcclxuICAgICAgW3Njcm9sbGFibGVdPVwidHJ1ZVwiXHJcbiAgICAgIHNjcm9sbEhlaWdodD1cImZsZXhcIlxyXG4gICAgICBbc2VsZWN0aW9uTW9kZV09XCJzaG93Um93U2VsZWN0aW9uQ2hlY2tib3ggPyAnbXVsdGlwbGUnIDogKHJvd1NlbGVjdGFibGUgPyAnc2luZ2xlJyA6IHVuZGVmaW5lZClcIlxyXG4gICAgICBbKHNlbGVjdGlvbildPVwiX3NlbGVjdGlvblwiXHJcbiAgICAgIChvblJvd1NlbGVjdCk9XCJvbkludGVybmFsU2VsZWN0aW9uQ2hhbmdlKCRldmVudClcIlxyXG4gICAgICAob25Sb3dVbnNlbGVjdCk9XCJvbkludGVybmFsU2VsZWN0aW9uQ2hhbmdlKCRldmVudClcIlxyXG4gICAgICAob25IZWFkZXJDaGVja2JveFRvZ2dsZSk9XCJvbkludGVybmFsU2VsZWN0aW9uQ2hhbmdlKCRldmVudClcIlxyXG4gICAgICB0YWJsZUxheW91dD1cImZpeGVkXCJcclxuICAgICAgW2N1c3RvbVNvcnRdPVwiZmFsc2VcIlxyXG4gICAgICBjbGFzcz1cImZsZXgtMSBvdmVyZmxvdy1hdXRvXCJcclxuICAgID5cclxuXHJcbiAgICAgIDwhLS0gRW1wdHkgbWVzc2FnZSAtLT5cclxuICAgICAgPG5nLXRlbXBsYXRlIHBUZW1wbGF0ZT1cImVtcHR5bWVzc2FnZVwiPlxyXG4gICAgICAgIDx0cj5cclxuICAgICAgICAgIDx0ZCBjb2xzcGFuPVwiMTBcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZsZXggZmxleC1jb2wgaXRlbXMtY2VudGVyIGp1c3RpZnktY2VudGVyIHB5LTEwIHRleHQtY2VudGVyIHctZnVsbFwiPlxyXG4gICAgICAgICAgICAgIDxpIGNsYXNzPVwicGkgcGktaW5ib3ggdGV4dC00eGwgdGV4dC1ncmF5LTQwMCBtYi00XCI+PC9pPlxyXG4gICAgICAgICAgICAgIDxwIGNsYXNzPVwidGV4dC1ncmF5LTUwMCBtYi00XCI+e3sgJ05PX0RBVEFfRk9VTkQnIHwgdHJhbnNsYXRlIH19PC9wPlxyXG5cclxuICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBidG4gb2YgYWRkQnV0dG9uQ29uZmlnczsgdHJhY2tCeTogdHJhY2tCeUlkeFwiPlxyXG4gICAgICAgICAgICAgICAgPGxpYi1nZW5lcmljLWJ1dHRvblxyXG4gICAgICAgICAgICAgICAgICAqbmdJZj1cIiFidG4udmlzaWJsZSB8fCBidG4udmlzaWJsZSA9PT0gdHJ1ZVwiXHJcbiAgICAgICAgICAgICAgICAgIFtpY29uXT1cImJ0bi5pY29uXCJcclxuICAgICAgICAgICAgICAgICAgW2xhYmVsXT1cImJ0bi5sYWJlbCB8IHRyYW5zbGF0ZVwiXHJcbiAgICAgICAgICAgICAgICAgIFt2YXJpYW50XT1cImJ0bi52YXJpYW50XCJcclxuICAgICAgICAgICAgICAgICAgW3NpemVdPVwiYnRuLnNpemVcIlxyXG4gICAgICAgICAgICAgICAgICBbbW9kZWxdPVwiYnRuLnNwbGl0QWN0aW9uc1wiXHJcbiAgICAgICAgICAgICAgICAgIFtwZXJtaXNzaW9uXT1cImJ0bi5wZXJtaXNzaW9uXCJcclxuICAgICAgICAgICAgICAgICAgKGNsaWNrZWQpPVwib25BZGROZXcuZW1pdCgpXCJcclxuICAgICAgICAgICAgICAgICAgY2xhc3M9XCJtYi0yXCJcclxuICAgICAgICAgICAgICAgID48L2xpYi1nZW5lcmljLWJ1dHRvbj5cclxuICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L3RkPlxyXG4gICAgICAgIDwvdHI+XHJcbiAgICAgIDwvbmctdGVtcGxhdGU+XHJcblxyXG4gICAgICA8IS0tIFRhYmxlIGhlYWRlciAtLT5cclxuICAgICAgPG5nLXRlbXBsYXRlIHBUZW1wbGF0ZT1cImhlYWRlclwiIGxldC1jb2x1bW5zPlxyXG4gICAgICAgIDx0ciBjbGFzcz1cImJnLWdyYXktMjAwIHN0aWNreSB0b3AtMCB6LTEwXCI+XHJcbiAgICAgICAgICA8dGggKm5nSWY9XCJzaG93Um93U2VsZWN0aW9uQ2hlY2tib3hcIiBzdHlsZT1cIndpZHRoOiAycmVtXCI+XHJcbiAgICAgICAgICAgIDxwLXRhYmxlSGVhZGVyQ2hlY2tib3g+PC9wLXRhYmxlSGVhZGVyQ2hlY2tib3g+XHJcbiAgICAgICAgICA8L3RoPlxyXG4gPHRoICpuZ0lmPVwiYWN0aW9ucy5sZW5ndGggPiAwICYmIGFjdGlvbnNQb3NpdGlvbiA9PT0gJ3N0YXJ0J1wiIGNsYXNzPVwicHgtNCBweS0yIHRleHQtc20gZm9udC1tZWRpdW0gdGV4dC1jZW50ZXIgc3RpY2t5IHJpZ2h0LTBcIj5cclxuICAgICAgICAgICAge3sgJyonIHwgdHJhbnNsYXRlIH19XHJcbiAgICAgICAgICA8L3RoPlxyXG4gICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgY29sIG9mIGNvbHVtbnM7IHRyYWNrQnk6IHRyYWNrQnlGblwiPlxyXG4gICAgICAgICAgICA8dGhcclxuICAgICAgICAgICAgICBbcFNvcnRhYmxlQ29sdW1uXT1cImNvbC5wcm9wcy5lbnRpdHlLZXkgfHwgY29sLmtleVwiXHJcbiAgICAgICAgICAgICAgY2xhc3M9XCJweC00IHB5LTIgdGV4dC1zbSBmb250LW1lZGl1bSB0ZXh0LWNlbnRlclwiXHJcbiAgICAgICAgICAgICAgW3N0eWxlLm1pbi13aWR0aF09XCJjb2wucHJvcHM/LnRhYmxlPy5wcm9wcz8ud2lkdGggfHwgJzE1MHB4J1wiXHJcbiAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICB7eyBjb2wucHJvcHM/LmxhYmVsIHwgdHJhbnNsYXRlIH19XHJcbiAgICAgICAgICAgICAgPHAtc29ydEljb24gW2ZpZWxkXT1cImNvbC5wcm9wcy5lbnRpdHlLZXkgfHwgY29sLmtleVwiPjwvcC1zb3J0SWNvbj5cclxuICAgICAgICAgICAgPC90aD5cclxuICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG5cclxuICAgICAgICAgIDx0aCAqbmdJZj1cImFjdGlvbnMubGVuZ3RoID4gMCAmJiBhY3Rpb25zUG9zaXRpb24gPT09ICdlbmQnXCIgY2xhc3M9XCJweC00IHB5LTIgdGV4dC1zbSBmb250LW1lZGl1bSB0ZXh0LWNlbnRlciBzdGlja3kgbGVmdC0wXCI+XHJcbiAgICAgICAgICAgIHt7ICcqJyB8IHRyYW5zbGF0ZSB9fVxyXG4gICAgICAgICAgPC90aD5cclxuICAgICAgICA8L3RyPlxyXG4gICAgICA8L25nLXRlbXBsYXRlPlxyXG5cclxuICAgICAgPCEtLSBUYWJsZSBib2R5IC0tPlxyXG4gICAgICA8bmctdGVtcGxhdGUgcFRlbXBsYXRlPVwiYm9keVwiIGxldC1yb3dEYXRhIGxldC1jb2x1bW5zPVwiY29sdW1uc1wiIGxldC1pPVwicm93SW5kZXhcIj5cclxuICAgICAgICA8dHIgY2xhc3M9XCJldmVuOmJnLWdyYXktNTAgaG92ZXI6YmctZ3JheS0xMDAgY3Vyc29yLXBvaW50ZXJcIiAoY2xpY2spPVwicm93U2VsZWN0LmVtaXQocm93RGF0YSlcIj5cclxuICAgICAgICAgIDx0ZCAqbmdJZj1cInNob3dSb3dTZWxlY3Rpb25DaGVja2JveFwiIHN0eWxlPVwid2lkdGg6IDJyZW1cIj5cclxuICAgICAgICAgICAgPHAtdGFibGVDaGVja2JveCBbdmFsdWVdPVwicm93RGF0YVwiPjwvcC10YWJsZUNoZWNrYm94PlxyXG4gICAgICAgICAgPC90ZD5cclxuICAgICAgICAgIDx0ZCAqbmdJZj1cImFjdGlvbnMubGVuZ3RoID4gMCAmJiBhY3Rpb25zUG9zaXRpb24gPT09ICdzdGFydCdcIiBjbGFzcz1cImJvcmRlci10IGJvcmRlci1ncmF5LTIwMCBweC00IHB5LTIgdGV4dC1jZW50ZXIgc3RpY2t5IHJpZ2h0LTAgYmctZ3JheS01MFwiPlxyXG4gICAgICAgICAgICAgIDxuZy1jb250YWluZXJcclxuICAgICAgICAqbmdUZW1wbGF0ZU91dGxldD1cImFjdGlvbnNUZW1wbGF0ZTsgY29udGV4dDogeyRpbXBsaWNpdDogcm93RGF0YX1cIj5cclxuICAgIDwvbmctY29udGFpbmVyPlxyXG5cclxuICAgICAgICAgIDwvdGQ+XHJcblxyXG4gICAgICAgICAgPHRkXHJcbiAgICAgICAgICAgICpuZ0Zvcj1cImxldCBjb2wgb2Ygcm93RGF0YS5yb3dGaWVsZHM7IGxldCBjb2xJbmRleCA9IGluZGV4OyB0cmFja0J5OiB0cmFja0J5Rm5cIlxyXG4gICAgICAgICAgICBjbGFzcz1cImJvcmRlci10IGJvcmRlci1ncmF5LTIwMCBweC00IHB5LTIgdGV4dC1jZW50ZXIgdGV4dC1zbSB0ZXh0LWdyYXktNzAwXCJcclxuICAgICAgICAgICAgW3N0eWxlLndpZHRoXT1cImNvbC5wcm9wcz8udGFibGU/LnByb3BzPy53aWR0aFwiXHJcbiAgICAgICAgICA+XHJcbiAgICAgICAgICAgIDxmb3JtbHktZm9ybVxyXG4gICAgICAgICAgICAgIFttb2RlbF09XCJyb3dEYXRhXCJcclxuICAgICAgICAgICAgICBbZm9ybV09XCJnZXRGb3JtKGksIGNvbEluZGV4KVwiXHJcbiAgICAgICAgICAgICAgW2ZpZWxkc109XCJbY29sXVwiXHJcbiAgICAgICAgICAgICAgW29wdGlvbnNdPVwib3B0aW9uc1wiXHJcbiAgICAgICAgICAgID48L2Zvcm1seS1mb3JtPlxyXG4gICAgICAgICAgPC90ZD5cclxuXHJcbiAgICAgICAgICA8dGQgKm5nSWY9XCJhY3Rpb25zLmxlbmd0aCA+IDAgJiYgYWN0aW9uc1Bvc2l0aW9uID09PSAnZW5kJ1wiIGNsYXNzPVwiYm9yZGVyLXQgYm9yZGVyLWdyYXktMjAwIHB4LTQgcHktMiB0ZXh0LWNlbnRlciBzdGlja3kgbGVmdC0wXCI+XHJcbiAgICAgICAgICAgICA8bmctY29udGFpbmVyXHJcbiAgICAgICAgKm5nVGVtcGxhdGVPdXRsZXQ9XCJhY3Rpb25zVGVtcGxhdGU7IGNvbnRleHQ6IHskaW1wbGljaXQ6IHJvd0RhdGF9XCI+XHJcbiAgICA8L25nLWNvbnRhaW5lcj5cclxuXHJcbiAgICAgICAgICA8L3RkPlxyXG4gICAgICAgIDwvdHI+XHJcblxyXG4gICAgICA8L25nLXRlbXBsYXRlPlxyXG5cclxuXHJcbiAgICA8L3AtdGFibGU+XHJcbiAgPC9kaXY+XHJcbjwvZGl2PlxyXG5cclxuPG5nLXRlbXBsYXRlICNhY3Rpb25zVGVtcGxhdGUgbGV0LXJvd0RhdGE+XHJcbiAgICA8bmctY29udGFpbmVyIFtuZ1N3aXRjaF09XCJhY3Rpb25zTW9kZVwiPlxyXG5cclxuICAgICAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCInYnV0dG9ucydcIj5cclxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgYWN0IG9mIHNvcnRlZEFjdGlvbnNcIj5cclxuICAgICAgICAgICAgICAgIDxidXR0b25cclxuICAgICAgICAgICAgICAgICAgICAqbmdJZj1cImFjdC5pY29uIHx8IGFjdC5sYWJlbFwiXHJcbiAgICAgICAgICAgICAgICAgICAgcEJ1dHRvblxyXG4gICAgICAgICAgICAgICAgICAgIFtpY29uXT1cImFjdC5pY29uIHx8ICcnXCJcclxuICAgICAgICAgICAgICAgICAgICBbbGFiZWxdPVwiKGFjdC5sYWJlbCA/PyAnJykgfCB0cmFuc2xhdGVcIlxyXG4gICAgICAgICAgICAgICAgICAgIFtjbGFzc109XCJhY3Quc3R5bGVDbGFzcyB8fCAnJ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJwLWJ1dHRvbi1zbSBteC0xXCJcclxuICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwib25BY3Rpb24oYWN0LCByb3dEYXRhKVwiID48L2J1dHRvbj5cclxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgPC9uZy1jb250YWluZXI+XHJcblxyXG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nU3dpdGNoQ2FzZT1cIidtZW51J1wiPlxyXG4gICAgICAgICAgPGFwcC1hY3Rpb24tbWVudSBbaXRlbXNdPVwiZ2V0TWVudUl0ZW1zKHJvd0RhdGEpIHx8IFtdXCI+PC9hcHAtYWN0aW9uLW1lbnU+XHJcbiAgICAgICAgICAgIDwhLS0gPHAtbWVudSAjbWVudSBbbW9kZWxdPVwiZ2V0TWVudUl0ZW1zKHJvd0RhdGEpXCIgW3BvcHVwXT1cInRydWVcIiBhcHBlbmRUbz1cImJvZHlcIj48L3AtbWVudT5cclxuICAgICAgICAgICAgPHAtYnV0dG9uXHJcbiAgICAgICAgICAgICAgICBvdXRsaW5lZFxyXG4gICAgICAgICAgICAgICAgaWNvbj1cInBpIHBpLWVsbGlwc2lzLXZcIlxyXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJwLWJ1dHRvbi10ZXh0IHAtYnV0dG9uLXNtXCJcclxuICAgICAgICAgICAgICAgIChvbkNsaWNrKT1cIm1lbnUudG9nZ2xlKCRldmVudClcIlxyXG4gICAgICAgICAgICA+PC9wLWJ1dHRvbj4gLS0+XHJcbiAgICAgICAgPC9uZy1jb250YWluZXI+XHJcblxyXG4gICAgPC9uZy1jb250YWluZXI+XHJcbjwvbmctdGVtcGxhdGU+XHJcblxyXG4iXX0=","/**\n * Generated bundle index. Do not edit.\n */\nexport * from './index';\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWxpdGUuZnJhbWV3b3JrLW5nLnVpLmNvcmUtZ2VuZXJpYy10YWJsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYnMvbmcudWkuY29yZS9nZW5lcmljLXRhYmxlL3NyYy9lbGl0ZS5mcmFtZXdvcmstbmcudWkuY29yZS1nZW5lcmljLXRhYmxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsY0FBYyxTQUFTLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEdlbmVyYXRlZCBidW5kbGUgaW5kZXguIERvIG5vdCBlZGl0LlxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vaW5kZXgnO1xuIl19"],"names":["i2"],"mappings":";;;;;;;;;;;;;;;;;;;;;AAGO,MAAM,kBAAkB,CAAC;AAChC,IAAI,OAAO,IAAI,GAAG,EAAE,CAAC,kBAAkB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,kBAAkB,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,CAAC,eAAe,CAAC,QAAQ,EAAE,CAAC;AAC3K,IAAI,OAAO,IAAI,GAAG,EAAE,CAAC,mBAAmB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,kBAAkB,EAAE,OAAO,EAAE,CAAC,YAAY,CAAC,EAAE,CAAC;AACtJ,IAAI,OAAO,IAAI,GAAG,EAAE,CAAC,mBAAmB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,kBAAkB,EAAE,OAAO,EAAE,CAAC,YAAY,CAAC,EAAE,CAAC;AACtJ;AACA,EAAE,CAAC,wBAAwB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,kBAAkB,EAAE,UAAU,EAAE,CAAC;AAC5H,YAAY,IAAI,EAAE,QAAQ;AAC1B,YAAY,IAAI,EAAE,CAAC;AACnB,oBAAoB,OAAO,EAAE,CAAC,YAAY,CAAC;AAC3C,iBAAiB;AACjB,SAAS,CAAC,EAAE,CAAC;;ACNN,MAAM,mBAAmB,CAAC;AACjC,IAAI,KAAK,GAAG,EAAE;AACd,IAAI,IAAI,GAAG,KAAK;AAChB,IAAI,SAAS;AACb,IAAI,iBAAiB,GAAG,SAAS;AACjC,IAAI,MAAM,GAAG;AACb,QAAQ,IAAI,CAAC,IAAI,GAAG,CAAC,IAAI,CAAC,IAAI;AAC9B;AACA;AACA;AACA,IAAI,kBAAkB,GAAG;AACzB,QAAQ,MAAM,IAAI,GAAG,QAAQ,CAAC,aAAa,CAAC,gBAAgB,CAAC;AAC7D,QAAQ,IAAI,CAAC,IAAI;AACjB,YAAY;AACZ,QAAQ,MAAM,IAAI,GAAG,IAAI,CAAC,qBAAqB,EAAE;AACjD,QAAQ,MAAM,aAAa,GAAG,MAAM,CAAC,UAAU;AAC/C,QAAQ,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,KAAK,GAAG,aAAa,GAAG,QAAQ,GAAG,SAAS;AAClF;AACA,IAAI,OAAO,CAAC,IAAI,EAAE,KAAK,EAAE;AACzB,QAAQ,IAAI,CAAC,IAAI,GAAG,KAAK;AACzB,QAAQ,IAAI,IAAI,CAAC,OAAO,EAAE;AAC1B,YAAY,IAAI,CAAC,OAAO,CAAC,EAAE,aAAa,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;AACxD;AACA;AACA,IAAI,cAAc,CAAC,KAAK,EAAE;AAC1B,QAAQ,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM;AACnC,QAAQ,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,eAAe,CAAC,EAAE;AAC9C,YAAY,IAAI,CAAC,IAAI,GAAG,KAAK;AAC7B;AACA;AACA;AACA;AACA;AACA,IAAI,UAAU,GAAG;AACjB;AACA,QAAQ,UAAU,CAAC,MAAM;AACzB,YAAY,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,aAAa,CAAC,KAAK,EAAE;AACvD,SAAS,CAAC;AACV;AACA;AACA;AACA;AACA,IAAI,aAAa,CAAC,KAAK,EAAE;AACzB;AACA,QAAQ,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,aAAa,CAAC;AACxE,QAAQ,IAAI,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAC;AACzD,QAAQ,IAAI,KAAK,KAAK,CAAC,CAAC;AACxB,YAAY;AACZ,QAAQ,QAAQ,KAAK,CAAC,GAAG;AACzB,YAAY,KAAK,WAAW;AAC5B,gBAAgB,KAAK,CAAC,cAAc,EAAE;AACtC,gBAAgB,KAAK,GAAG,CAAC,KAAK,GAAG,CAAC,IAAI,KAAK,CAAC,MAAM;AAClD,gBAAgB,KAAK,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE;AACpC,gBAAgB;AAChB,YAAY,KAAK,SAAS;AAC1B,gBAAgB,KAAK,CAAC,cAAc,EAAE;AACtC,gBAAgB,KAAK,GAAG,CAAC,KAAK,GAAG,CAAC,GAAG,KAAK,CAAC,MAAM,IAAI,KAAK,CAAC,MAAM;AACjE,gBAAgB,KAAK,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE;AACpC,gBAAgB;AAChB,YAAY,KAAK,OAAO;AACxB,YAAY,KAAK,GAAG;AACpB,gBAAgB,KAAK,CAAC,cAAc,EAAE;AACtC,gBAAgB,KAAK,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE;AACpC,gBAAgB;AAChB,YAAY,KAAK,QAAQ;AACzB,gBAAgB,IAAI,CAAC,IAAI,GAAG,KAAK;AACjC,gBAAgB;AAChB;AACA;AACA,IAAI,gBAAgB,CAAC,KAAK,EAAE;AAC5B;AACA,QAAQ,IAAI,KAAK,CAAC,GAAG,KAAK,WAAW,IAAI,KAAK,CAAC,GAAG,KAAK,OAAO,IAAI,KAAK,CAAC,GAAG,KAAK,GAAG,EAAE;AACrF,YAAY,KAAK,CAAC,cAAc,EAAE;AAClC,YAAY,IAAI,CAAC,IAAI,GAAG,IAAI;AAC5B,YAAY,IAAI,CAAC,UAAU,EAAE;AAC7B;AACA;AACA,IAAI,OAAO,IAAI,GAAG,EAAE,CAAC,kBAAkB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,mBAAmB,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,CAAC,eAAe,CAAC,SAAS,EAAE,CAAC;AAC7K,IAAI,OAAO,IAAI,GAAG,EAAE,CAAC,oBAAoB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,mBAAmB,EAAE,YAAY,EAAE,IAAI,EAAE,QAAQ,EAAE,iBAAiB,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,WAAW,EAAE,CAAC,EAAE,YAAY,EAAE,WAAW,EAAE,SAAS,EAAE,CAAC,UAAU,CAAC,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,QAAQ,EAAE,m9BAAm9B,EAAE,YAAY,EAAE,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,YAAY,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,EAAE,CAAC,OAAO,EAAE,QAAQ,EAAE,kBAAkB,EAAE,MAAM,EAAE,CAAC,SAAS,EAAE,cAAc,EAAE,eAAe,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,EAAE,CAAC,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC,MAAM,EAAE,UAAU,EAAE,UAAU,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,aAAa,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,EAAE,CAAC,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,YAAY,EAAE,cAAc,EAAE,mBAAmB,EAAE,QAAQ,EAAE,YAAY,EAAE,YAAY,EAAE,uBAAuB,EAAE,uBAAuB,EAAE,UAAU,EAAE,YAAY,EAAE,SAAS,EAAE,UAAU,EAAE,kBAAkB,CAAC,EAAE,OAAO,EAAE,CAAC,eAAe,EAAE,cAAc,EAAE,QAAQ,EAAE,cAAc,EAAE,QAAQ,EAAE,kBAAkB,EAAE,iBAAiB,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,YAAY,EAAE,CAAC,EAAE,CAAC;AACliE;AACA,EAAE,CAAC,wBAAwB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,mBAAmB,EAAE,UAAU,EAAE,CAAC;AAC7H,YAAY,IAAI,EAAE,SAAS;AAC3B,YAAY,IAAI,EAAE,CAAC,EAAE,QAAQ,EAAE,iBAAiB,EAAE,OAAO,EAAE,CAAC,YAAY,EAAE,aAAa,EAAE,YAAY,CAAC,EAAE,QAAQ,EAAE,m9BAAm9B,EAAE;AACvkC,SAAS,CAAC,EAAE,cAAc,EAAE,EAAE,KAAK,EAAE,CAAC;AACtC,gBAAgB,IAAI,EAAE;AACtB,aAAa,CAAC,EAAE,SAAS,EAAE,CAAC;AAC5B,gBAAgB,IAAI,EAAE,YAAY;AAClC,gBAAgB,IAAI,EAAE,CAAC,UAAU;AACjC,aAAa,CAAC,EAAE,EAAE,CAAC;;AC3EZ,MAAM,YAAY,CAAC;AAC1B,IAAI,gBAAgB,GAAG,MAAM,CAAC,gBAAgB,CAAC;AAC/C,IAAI,kBAAkB,GAAG,MAAM,CAAC,kBAAkB,CAAC;AACnD,IAAI,EAAE;AACN,IAAI,IAAI,GAAG,EAAE;AACb,IAAI,KAAK,GAAG,EAAE;AACd,IAAI,OAAO,GAAG,EAAE;AAChB,IAAI,eAAe,GAAG,EAAE;AACxB,IAAI,QAAQ,GAAG,EAAE;AACjB,IAAI,OAAO,GAAG,KAAK;AACnB,IAAI,OAAO,GAAG,EAAE;AAChB,IAAI,eAAe,GAAG,KAAK;AAC3B,IAAI,WAAW,GAAG,SAAS;AAC3B,IAAI,KAAK,GAAG,CAAC;AACb,IAAI,IAAI,GAAG,EAAE;AACb,IAAI,YAAY,GAAG,CAAC;AACpB,IAAI,SAAS;AACb,IAAI,SAAS,GAAG,CAAC;AACjB,IAAI,kBAAkB,GAAG,EAAE;AAC3B,IAAI,MAAM,GAAG,IAAI,YAAY,EAAE;AAC/B,IAAI,UAAU,GAAG,IAAI,YAAY,EAAE;AACnC;AACA,IAAI,QAAQ,GAAG,IAAI,YAAY,EAAE;AACjC,IAAI,gBAAgB,GAAG,EAAE;AACzB,IAAI,YAAY,GAAG,OAAO;AAC1B;AACA;AACA,IAAI,aAAa,GAAG,IAAI;AACxB;AACA;AACA;AACA,IAAI,UAAU,GAAG,IAAI;AACrB;AACA,IAAI,UAAU;AACd;AACA,IAAI,UAAU;AACd;AACA,IAAI,oBAAoB;AACxB,IAAI,IAAI,SAAS,GAAG;AACpB,QAAQ,OAAO,IAAI,CAAC,UAAU;AAC9B;AACA,IAAI,IAAI,SAAS,CAAC,GAAG,EAAE;AACvB,QAAQ,IAAI,CAAC,UAAU,GAAG,GAAG;AAC7B;AACA;AACA,IAAI,UAAU,CAAC,KAAK,EAAE,IAAI,EAAE;AAC5B,QAAQ,OAAO,KAAK;AACpB;AACA;AACA,IAAI,SAAS,GAAG,IAAI,YAAY,EAAE;AAClC;AACA,IAAI,eAAe,GAAG,IAAI,YAAY,EAAE;AACxC;AACA,IAAI,SAAS,GAAG,IAAI;AACpB,IAAI,IAAI,GAAG,IAAI,SAAS,CAAC,EAAE,CAAC;AAC5B,IAAI,OAAO,GAAG,EAAE;AAChB;AACA;AACA,IAAI,wBAAwB,GAAG,KAAK;AACpC,IAAI,yBAAyB,CAAC,KAAK,EAAE;AACrC,QAAQ,IAAI,MAAM,IAAI,KAAK,EAAE;AAC7B;AACA,YAAY,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE;AAChD,gBAAgB,IAAI,CAAC,UAAU,GAAG,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC;AACvD;AACA,iBAAiB;AACjB,gBAAgB,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC,IAAI,CAAC;AAC7C;AACA;AACA,aAAa,IAAI,SAAS,IAAI,KAAK,EAAE;AACrC;AACA,YAAY,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC,OAAO,GAAG,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE;AACjE;AACA,QAAQ,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC;AAClD;AACA,QAAQ,IAAI,CAAC,IAAI,CAAC,UAAU,KAAK,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,IAAI,CAAC,UAAU,CAAC,MAAM,KAAK,CAAC,CAAC,EAAE;AAClG,YAAY,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;AAC3C;AACA;AACA,IAAI,UAAU,CAAC,KAAK,EAAE;AACtB,QAAQ,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,KAAK,EAAE,KAAK,KAAK;AAC3C,YAAY,MAAM,MAAM,GAAG,IAAI,CAAC,gBAAgB,CAAC,KAAK,EAAE,KAAK,CAAC,KAAK,IAAI,EAAE,CAAC;AAC1E,YAAY,MAAM,MAAM,GAAG,IAAI,CAAC,gBAAgB,CAAC,KAAK,EAAE,KAAK,CAAC,KAAK,IAAI,EAAE,CAAC;AAC1E,YAAY,IAAI,MAAM,GAAG,CAAC;AAC1B,YAAY,IAAI,MAAM,IAAI,IAAI,IAAI,MAAM,IAAI,IAAI;AAChD,gBAAgB,MAAM,GAAG,CAAC,CAAC;AAC3B,iBAAiB,IAAI,MAAM,IAAI,IAAI,IAAI,MAAM,IAAI,IAAI;AACrD,gBAAgB,MAAM,GAAG,CAAC;AAC1B,iBAAiB,IAAI,MAAM,IAAI,IAAI,IAAI,MAAM,IAAI,IAAI;AACrD,gBAAgB,MAAM,GAAG,CAAC;AAC1B,iBAAiB,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,OAAO,MAAM,KAAK,QAAQ;AAC7E,gBAAgB,MAAM,GAAG,MAAM,CAAC,aAAa,CAAC,MAAM,CAAC;AACrD;AACA,gBAAgB,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,CAAC,CAAC,GAAG,MAAM,GAAG,MAAM,GAAG,CAAC,GAAG,CAAC;AACvE,YAAY,OAAO,CAAC,KAAK,CAAC,KAAK,IAAI,CAAC,IAAI,MAAM;AAC9C,SAAS,CAAC;AACV;AACA,IAAI,gBAAgB,CAAC,IAAI,EAAE,KAAK,EAAE;AAClC,QAAQ,IAAI,CAAC,KAAK;AAClB,YAAY,OAAO,IAAI;AACvB,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;AACrC,YAAY,OAAO,IAAI,CAAC,KAAK,CAAC;AAC9B,QAAQ,OAAO,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,IAAI,MAAM,GAAG,GAAG,GAAG,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,EAAE,IAAI,CAAC;AACrF;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,IAAI,aAAa,GAAG;AACxB,QAAQ,OAAO,IAAI,CAAC;AACpB,aAAa,MAAM,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,OAAO,KAAK,KAAK;AACvD,aAAa,CAAC,MAAM,CAAC,WAAW,EAAE,MAAM;AACxC,gBAAgB,MAAM,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,IAAI,IAAI,CAAC,kBAAkB,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;AACpF,aAAa,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,KAAK,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC;AAC5D;AACA,IAAI,IAAI,cAAc,GAAG;AACzB,QAAQ,OAAO,IAAI,CAAC;AACpB,aAAa,MAAM,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE,MAAM;AACzD,YAAY,MAAM,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,IAAI,IAAI,CAAC,kBAAkB,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;AAC/E;AACA,aAAa,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,KAAK,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC;AAC5D;AACA,IAAI,QAAQ,CAAC,GAAG,EAAE,GAAG,EAAE;AACvB,QAAQ,IAAI,GAAG,CAAC,MAAM,EAAE;AACxB,YAAY,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC;AAC3B;AACA,aAAa;AACb,YAAY,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,GAAG,CAAC,IAAI,EAAE,GAAG,EAAE,CAAC;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,SAAS,GAAG,IAAI,GAAG,EAAE;AACzB,IAAI,KAAK,GAAG,IAAI,SAAS,CAAC,EAAE,CAAC,CAAC;AAC9B;AACA,IAAI,OAAO,CAAC,QAAQ,EAAE,QAAQ,EAAE;AAChC,QAAQ,MAAM,GAAG,GAAG,CAAC,EAAE,QAAQ,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC;AAC7C,QAAQ,IAAI,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC;AAC1C,QAAQ,IAAI,CAAC,IAAI,EAAE;AACnB,YAAY,IAAI,GAAG,IAAI,SAAS,CAAC,EAAE,CAAC;AACpC,YAAY,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC;AACzC;AACA,QAAQ,OAAO,IAAI;AACnB;AACA,IAAI,SAAS,CAAC,KAAK,EAAE,IAAI,EAAE;AAC3B,QAAQ,OAAO,KAAK,CAAC;AACrB;AACA;AACA,IAAI,WAAW,CAAC,OAAO,EAAE;AACzB;AACA,QAAQ,IAAI,OAAO,CAAC,MAAM,CAAC,EAAE;AAC7B,YAAY,MAAM,WAAW,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,YAAY;AAC5D,YAAY,MAAM,YAAY,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,aAAa;AAC9D;AACA,YAAY,IAAI,CAAC,WAAW,EAAE;AAC9B;AACA;AACA,IAAI,UAAU,CAAC,KAAK,EAAE;AACtB;AACA;AACA,QAAQ,IAAI,CAAC,WAAW,EAAE;AAC1B,QAAQ,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC;AACnC;AACA,IAAI,WAAW,CAAC,OAAO,EAAE;AACzB;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,WAAW,GAAG;AAClB,QAAQ,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,IAAI;AAC9C;AACA,YAAY,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,IAAI;AACtD,gBAAgB,OAAO,SAAS,CAAC,GAAG,CAAC;AACrC,aAAa,CAAC;AACd;AACA,YAAY,OAAO;AACnB,gBAAgB,GAAG,OAAO;AAC1B,gBAAgB,SAAS,EAAE;AAC3B,aAAa;AACb,SAAS,CAAC;AACV;AACA,IAAI,YAAY,CAAC,GAAG,EAAE;AACtB,QAAQ,OAAO,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,GAAG,KAAK;AAC9C,YAAY,KAAK,EAAE,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,IAAI,EAAE,CAAC;AACjE,YAAY,IAAI,EAAE,GAAG,CAAC,IAAI;AAC1B,YAAY,OAAO,EAAE,MAAM,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,GAAG,CAAC;AAClD,YAAY,UAAU,EAAE,GAAG,CAAC;AAC5B,SAAS,CAAC,CAAC;AACX;AACA;AACA,IAAI,WAAW,CAAC,KAAK,EAAE;AACvB;AACA,QAAQ,IAAI,KAAK,CAAC,IAAI,EAAE;AACxB,YAAY,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC;AAC3C;AACA;AACA,IAAI,OAAO,IAAI,GAAG,EAAE,CAAC,kBAAkB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,CAAC,eAAe,CAAC,SAAS,EAAE,CAAC;AACtK,IAAI,OAAO,IAAI,GAAG,EAAE,CAAC,oBAAoB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,YAAY,EAAE,YAAY,EAAE,IAAI,EAAE,QAAQ,EAAE,mBAAmB,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,SAAS,EAAE,eAAe,EAAE,iBAAiB,EAAE,WAAW,EAAE,aAAa,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,YAAY,EAAE,cAAc,EAAE,SAAS,EAAE,WAAW,EAAE,SAAS,EAAE,WAAW,EAAE,kBAAkB,EAAE,oBAAoB,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,YAAY,EAAE,cAAc,EAAE,aAAa,EAAE,eAAe,EAAE,UAAU,EAAE,YAAY,EAAE,UAAU,EAAE,YAAY,EAAE,oBAAoB,EAAE,sBAAsB,EAAE,SAAS,EAAE,WAAW,EAAE,SAAS,EAAE,WAAW,EAAE,wBAAwB,EAAE,0BAA0B,EAAE,EAAE,OAAO,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,UAAU,EAAE,YAAY,EAAE,QAAQ,EAAE,UAAU,EAAE,SAAS,EAAE,WAAW,EAAE,eAAe,EAAE,iBAAiB,EAAE,EAAE,WAAW,EAAE,CAAC,EAAE,YAAY,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,IAAI,CAAC,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC,EAAE,aAAa,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE,QAAQ,EAAE,ktMAAktM,EAAE,MAAM,EAAE,CAAC,6RAA6R,CAAC,EAAE,YAAY,EAAE,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,YAAY,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,EAAE,CAAC,OAAO,EAAE,QAAQ,EAAE,kBAAkB,EAAE,MAAM,EAAE,CAAC,SAAS,EAAE,cAAc,EAAE,eAAe,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,EAAE,CAAC,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC,MAAM,EAAE,UAAU,EAAE,UAAU,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,EAAE,CAAC,gBAAgB,EAAE,QAAQ,EAAE,oBAAoB,EAAE,MAAM,EAAE,CAAC,yBAAyB,EAAE,kBAAkB,EAAE,0BAA0B,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,EAAE,CAAC,QAAQ,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,EAAE,CAAC,UAAU,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,EAAE,CAAC,YAAY,EAAE,QAAQ,EAAE,gBAAgB,EAAE,MAAM,EAAE,CAAC,cAAc,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,WAAW,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAEA,IAAE,CAAC,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,EAAE,CAAC,eAAe,EAAE,aAAa,EAAE,YAAY,EAAE,YAAY,EAAE,iBAAiB,EAAE,WAAW,EAAE,WAAW,EAAE,oBAAoB,EAAE,qBAAqB,EAAE,mBAAmB,EAAE,qBAAqB,EAAE,2BAA2B,EAAE,+BAA+B,EAAE,2BAA2B,EAAE,uBAAuB,EAAE,wBAAwB,EAAE,qBAAqB,EAAE,mBAAmB,EAAE,eAAe,EAAE,kBAAkB,EAAE,UAAU,EAAE,iBAAiB,EAAE,eAAe,EAAE,mBAAmB,EAAE,sBAAsB,EAAE,0BAA0B,EAAE,SAAS,EAAE,kBAAkB,EAAE,eAAe,EAAE,YAAY,EAAE,MAAM,EAAE,gBAAgB,EAAE,oBAAoB,EAAE,cAAc,EAAE,gBAAgB,EAAE,SAAS,EAAE,oBAAoB,EAAE,aAAa,EAAE,cAAc,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,eAAe,EAAE,YAAY,EAAE,cAAc,EAAE,cAAc,EAAE,eAAe,EAAE,uBAAuB,EAAE,sBAAsB,EAAE,oBAAoB,EAAE,aAAa,EAAE,aAAa,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,oBAAoB,EAAE,SAAS,EAAE,aAAa,EAAE,YAAY,EAAE,UAAU,EAAE,YAAY,EAAE,sBAAsB,EAAE,gBAAgB,EAAE,cAAc,EAAE,UAAU,EAAE,cAAc,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,EAAE,eAAe,EAAE,aAAa,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,YAAY,EAAE,iBAAiB,EAAE,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,EAAE,cAAc,EAAE,WAAW,EAAE,WAAW,EAAE,eAAe,EAAE,WAAW,EAAE,WAAW,CAAC,EAAE,OAAO,EAAE,CAAC,4BAA4B,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,aAAa,EAAE,eAAe,EAAE,QAAQ,EAAE,QAAQ,EAAE,UAAU,EAAE,YAAY,EAAE,aAAa,EAAE,eAAe,EAAE,qBAAqB,EAAE,aAAa,EAAE,cAAc,EAAE,cAAc,EAAE,YAAY,EAAE,gBAAgB,EAAE,cAAc,EAAE,wBAAwB,EAAE,cAAc,EAAE,aAAa,EAAE,YAAY,EAAE,aAAa,EAAE,gBAAgB,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,EAAE,CAAC,aAAa,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,EAAE,CAAC,MAAM,EAAE,WAAW,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAEA,IAAE,CAAC,cAAc,EAAE,QAAQ,EAAE,mBAAmB,EAAE,MAAM,EAAE,CAAC,iBAAiB,EAAE,yBAAyB,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAEA,IAAE,CAAC,QAAQ,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,EAAE,CAAC,OAAO,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAEA,IAAE,CAAC,aAAa,EAAE,QAAQ,EAAE,iBAAiB,EAAE,MAAM,EAAE,CAAC,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAEA,IAAE,CAAC,mBAAmB,EAAE,QAAQ,EAAE,uBAAuB,EAAE,MAAM,EAAE,CAAC,UAAU,EAAE,SAAS,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,YAAY,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,EAAE,CAAC,eAAe,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,EAAE,CAAC,SAAS,EAAE,aAAa,EAAE,SAAS,EAAE,UAAU,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,aAAa,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,UAAU,EAAE,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,eAAe,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,UAAU,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,EAAE,CAAC,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,SAAS,CAAC,EAAE,OAAO,EAAE,CAAC,aAAa,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,aAAa,EAAE,QAAQ,EAAE,oBAAoB,EAAE,MAAM,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,EAAE,cAAc,EAAE,UAAU,EAAE,SAAS,EAAE,WAAW,EAAE,cAAc,EAAE,YAAY,CAAC,EAAE,OAAO,EAAE,CAAC,SAAS,EAAE,WAAW,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,eAAe,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,mBAAmB,EAAE,QAAQ,EAAE,iBAAiB,EAAE,MAAM,EAAE,CAAC,OAAO,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,CAAC,aAAa,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC,EAAE,CAAC;AACtmX;AACA,EAAE,CAAC,wBAAwB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,YAAY,EAAE,UAAU,EAAE,CAAC;AACtH,YAAY,IAAI,EAAE,SAAS;AAC3B,YAAY,IAAI,EAAE,CAAC,EAAE,QAAQ,EAAE,mBAAmB,EAAE,OAAO,EAAE,CAAC,YAAY,EAAE,WAAW,EAAE,YAAY,EAAE,UAAU,EAAE,OAAO,EAAE,eAAe,EAAE,WAAW,EAAE,UAAU,EAAE,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE,MAAM,EAAE,aAAa,EAAE,eAAe,EAAE,mBAAmB,CAAC,EAAE,QAAQ,EAAE,ktMAAktM,EAAE,MAAM,EAAE,CAAC,6RAA6R,CAAC,EAAE;AACtwN,SAAS,CAAC,EAAE,cAAc,EAAE,EAAE,EAAE,EAAE,CAAC;AACnC,gBAAgB,IAAI,EAAE,SAAS;AAC/B,gBAAgB,IAAI,EAAE,CAAC,IAAI;AAC3B,aAAa,CAAC,EAAE,IAAI,EAAE,CAAC;AACvB,gBAAgB,IAAI,EAAE;AACtB,aAAa,CAAC,EAAE,OAAO,EAAE,CAAC;AAC1B,gBAAgB,IAAI,EAAE;AACtB,aAAa,CAAC,EAAE,OAAO,EAAE,CAAC;AAC1B,gBAAgB,IAAI,EAAE;AACtB,aAAa,CAAC,EAAE,OAAO,EAAE,CAAC;AAC1B,gBAAgB,IAAI,EAAE;AACtB,aAAa,CAAC,EAAE,eAAe,EAAE,CAAC;AAClC,gBAAgB,IAAI,EAAE;AACtB,aAAa,CAAC,EAAE,WAAW,EAAE,CAAC;AAC9B,gBAAgB,IAAI,EAAE;AACtB,aAAa,CAAC,EAAE,KAAK,EAAE,CAAC;AACxB,gBAAgB,IAAI,EAAE;AACtB,aAAa,CAAC,EAAE,IAAI,EAAE,CAAC;AACvB,gBAAgB,IAAI,EAAE;AACtB,aAAa,CAAC,EAAE,YAAY,EAAE,CAAC;AAC/B,gBAAgB,IAAI,EAAE;AACtB,aAAa,CAAC,EAAE,SAAS,EAAE,CAAC;AAC5B,gBAAgB,IAAI,EAAE;AACtB,aAAa,CAAC,EAAE,SAAS,EAAE,CAAC;AAC5B,gBAAgB,IAAI,EAAE;AACtB,aAAa,CAAC,EAAE,kBAAkB,EAAE,CAAC;AACrC,gBAAgB,IAAI,EAAE;AACtB,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;AACzB,gBAAgB,IAAI,EAAE;AACtB,aAAa,CAAC,EAAE,UAAU,EAAE,CAAC;AAC7B,gBAAgB,IAAI,EAAE;AACtB,aAAa,CAAC,EAAE,QAAQ,EAAE,CAAC;AAC3B,gBAAgB,IAAI,EAAE;AACtB,aAAa,CAAC,EAAE,gBAAgB,EAAE,CAAC;AACnC,gBAAgB,IAAI,EAAE;AACtB,aAAa,CAAC,EAAE,YAAY,EAAE,CAAC;AAC/B,gBAAgB,IAAI,EAAE;AACtB,aAAa,CAAC,EAAE,aAAa,EAAE,CAAC;AAChC,gBAAgB,IAAI,EAAE;AACtB,aAAa,CAAC,EAAE,UAAU,EAAE,CAAC;AAC7B,gBAAgB,IAAI,EAAE;AACtB,aAAa,CAAC,EAAE,UAAU,EAAE,CAAC;AAC7B,gBAAgB,IAAI,EAAE;AACtB,aAAa,CAAC,EAAE,oBAAoB,EAAE,CAAC;AACvC,gBAAgB,IAAI,EAAE;AACtB,aAAa,CAAC,EAAE,SAAS,EAAE,CAAC;AAC5B,gBAAgB,IAAI,EAAE;AACtB,aAAa,CAAC,EAAE,SAAS,EAAE,CAAC;AAC5B,gBAAgB,IAAI,EAAE;AACtB,aAAa,CAAC,EAAE,eAAe,EAAE,CAAC;AAClC,gBAAgB,IAAI,EAAE;AACtB,aAAa,CAAC,EAAE,SAAS,EAAE,CAAC;AAC5B,gBAAgB,IAAI,EAAE;AACtB,aAAa,CAAC,EAAE,wBAAwB,EAAE,CAAC;AAC3C,gBAAgB,IAAI,EAAE;AACtB,aAAa,CAAC,EAAE,EAAE,CAAC;;ACtSnB;AACA;AACA;;;;"}
|
|
1
|
+
{"version":3,"file":"elite.framework-ng.ui.core-generic-table.mjs","sources":["../tmp-esm2022/generic-table/lib/generic-table-module.js","../tmp-esm2022/generic-table/lib/action-menu.component.js","../tmp-esm2022/generic-table/lib/generic-table.js","../tmp-esm2022/generic-table/elite.framework-ng.ui.core-generic-table.js"],"sourcesContent":["import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport * as i0 from \"@angular/core\";\nexport class GenericTableModule {\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: GenericTableModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });\n static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"14.0.0\", version: \"20.1.8\", ngImport: i0, type: GenericTableModule, imports: [CommonModule] });\n static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: GenericTableModule, imports: [CommonModule] });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: GenericTableModule, decorators: [{\n type: NgModule,\n args: [{\n imports: [CommonModule],\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2VuZXJpYy10YWJsZS1tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL25nLnVpLmNvcmUvZ2VuZXJpYy10YWJsZS9zcmMvbGliL2dlbmVyaWMtdGFibGUtbW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDOztBQUsvQyxNQUFNLE9BQU8sa0JBQWtCO3VHQUFsQixrQkFBa0I7d0dBQWxCLGtCQUFrQixZQUZuQixZQUFZO3dHQUVYLGtCQUFrQixZQUZuQixZQUFZOzsyRkFFWCxrQkFBa0I7a0JBSDlCLFFBQVE7bUJBQUM7b0JBQ1IsT0FBTyxFQUFFLENBQUMsWUFBWSxDQUFDO2lCQUN4QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuXG5ATmdNb2R1bGUoe1xuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlXSxcbn0pXG5leHBvcnQgY2xhc3MgR2VuZXJpY1RhYmxlTW9kdWxlIHt9XG4iXX0=","import { CommonModule } from '@angular/common';\nimport { Component, Input, ViewChildren, QueryList } from '@angular/core';\nimport { ButtonModule } from 'primeng/button';\nimport { OverlayModule } from 'primeng/overlay';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@angular/common\";\nimport * as i2 from \"primeng/overlay\";\nexport class ActionMenuComponent {\n items = [];\n open = false;\n menuItems;\n menuPositionClass = 'right-0';\n toggle() {\n this.open = !this.open;\n // Optional: adjust position when opening\n // if (this.open) setTimeout(() => this.adjustMenuPosition());\n }\n adjustMenuPosition() {\n const menu = document.querySelector('.absolute.mt-2');\n if (!menu)\n return;\n const rect = menu.getBoundingClientRect();\n const viewportWidth = window.innerWidth;\n this.menuPositionClass = rect.right > viewportWidth ? 'left-0' : 'right-0';\n }\n onClick(item, event) {\n this.open = false;\n if (item.command) {\n item.command({ originalEvent: event, item });\n }\n }\n onOutsideClick(event) {\n const target = event.target;\n if (!target.closest('.inline-block')) {\n this.open = false;\n }\n }\n // ========================\n // Focus & Keyboard navigation\n // ========================\n focusFirst() {\n // Delay needed because overlay content is rendered asynchronously\n setTimeout(() => {\n this.menuItems.first?.nativeElement.focus();\n });\n }\n // -------------------\n // Keyboard on menu container\n // -------------------\n onMenuKeydown(event) {\n // Convert QueryList to array of HTMLButtonElement\n const items = this.menuItems.toArray().map(i => i.nativeElement);\n let index = items.indexOf(document.activeElement);\n if (index === -1)\n return;\n switch (event.key) {\n case 'ArrowDown':\n event.preventDefault();\n index = (index + 1) % items.length;\n items[index].focus();\n break;\n case 'ArrowUp':\n event.preventDefault();\n index = (index - 1 + items.length) % items.length;\n items[index].focus();\n break;\n case 'Enter':\n case ' ':\n event.preventDefault();\n items[index].click();\n break;\n case 'Escape':\n this.open = false;\n break;\n }\n }\n onTriggerKeydown(event) {\n // Open overlay via keyboard\n if (event.key === 'ArrowDown' || event.key === 'Enter' || event.key === ' ') {\n event.preventDefault();\n this.open = true;\n this.focusFirst();\n }\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: ActionMenuComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });\n static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"20.1.8\", type: ActionMenuComponent, isStandalone: true, selector: \"app-action-menu\", inputs: { items: \"items\" }, viewQueries: [{ propertyName: \"menuItems\", predicate: [\"menuItem\"], descendants: true }], ngImport: i0, template: \"<div class=\\\"inline-block relative\\\">\\r\\n <button type=\\\"button\\\"\\r\\n class=\\\"p-ripple p-button p-button-icon-only p-button-outlined p-component\\\"\\r\\n #trigger\\r\\n (click)=\\\"toggle()\\\">\\r\\n <span class=\\\"pi pi-ellipsis-v\\\"></span>\\r\\n </button>\\r\\n\\r\\n <p-overlay [(visible)]=\\\"open\\\" [appendTo]=\\\"'body'\\\" (onShow)=\\\"focusFirst()\\\">\\r\\n <div class=\\\"w-48 rounded-lg shadow-lg bg-white border border-gray-200\\\"\\r\\n tabindex=\\\"0\\\"\\r\\n (keydown)=\\\"onMenuKeydown($event)\\\">\\r\\n <button #menuItem\\r\\n *ngFor=\\\"let item of items\\\"\\r\\n (click)=\\\"onClick(item, $event)\\\"\\r\\n class=\\\"flex items-center w-full text-left px-4 py-2 text-sm hover:bg-gray-100 focus:bg-gray-100 focus:outline-none\\\">\\r\\n <i *ngIf=\\\"item.icon\\\" [class]=\\\"item.icon + ' ml-2 mr-2 text-gray-500'\\\"></i>\\r\\n <span>{{ item.label }}</span>\\r\\n </button>\\r\\n </div>\\r\\n </p-overlay>\\r\\n</div>\\r\\n\", dependencies: [{ kind: \"ngmodule\", type: CommonModule }, { kind: \"directive\", type: i1.NgForOf, selector: \"[ngFor][ngForOf]\", inputs: [\"ngForOf\", \"ngForTrackBy\", \"ngForTemplate\"] }, { kind: \"directive\", type: i1.NgIf, selector: \"[ngIf]\", inputs: [\"ngIf\", \"ngIfThen\", \"ngIfElse\"] }, { kind: \"ngmodule\", type: OverlayModule }, { kind: \"component\", type: i2.Overlay, selector: \"p-overlay\", inputs: [\"visible\", \"mode\", \"style\", \"styleClass\", \"contentStyle\", \"contentStyleClass\", \"target\", \"autoZIndex\", \"baseZIndex\", \"showTransitionOptions\", \"hideTransitionOptions\", \"listener\", \"responsive\", \"options\", \"appendTo\", \"hostAttrSelector\"], outputs: [\"visibleChange\", \"onBeforeShow\", \"onShow\", \"onBeforeHide\", \"onHide\", \"onAnimationStart\", \"onAnimationDone\"] }, { kind: \"ngmodule\", type: ButtonModule }] });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: ActionMenuComponent, decorators: [{\n type: Component,\n args: [{ selector: 'app-action-menu', imports: [CommonModule, OverlayModule, ButtonModule], template: \"<div class=\\\"inline-block relative\\\">\\r\\n <button type=\\\"button\\\"\\r\\n class=\\\"p-ripple p-button p-button-icon-only p-button-outlined p-component\\\"\\r\\n #trigger\\r\\n (click)=\\\"toggle()\\\">\\r\\n <span class=\\\"pi pi-ellipsis-v\\\"></span>\\r\\n </button>\\r\\n\\r\\n <p-overlay [(visible)]=\\\"open\\\" [appendTo]=\\\"'body'\\\" (onShow)=\\\"focusFirst()\\\">\\r\\n <div class=\\\"w-48 rounded-lg shadow-lg bg-white border border-gray-200\\\"\\r\\n tabindex=\\\"0\\\"\\r\\n (keydown)=\\\"onMenuKeydown($event)\\\">\\r\\n <button #menuItem\\r\\n *ngFor=\\\"let item of items\\\"\\r\\n (click)=\\\"onClick(item, $event)\\\"\\r\\n class=\\\"flex items-center w-full text-left px-4 py-2 text-sm hover:bg-gray-100 focus:bg-gray-100 focus:outline-none\\\">\\r\\n <i *ngIf=\\\"item.icon\\\" [class]=\\\"item.icon + ' ml-2 mr-2 text-gray-500'\\\"></i>\\r\\n <span>{{ item.label }}</span>\\r\\n </button>\\r\\n </div>\\r\\n </p-overlay>\\r\\n</div>\\r\\n\" }]\n }], propDecorators: { items: [{\n type: Input\n }], menuItems: [{\n type: ViewChildren,\n args: ['menuItem']\n }] } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWN0aW9uLW1lbnUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9uZy51aS5jb3JlL2dlbmVyaWMtdGFibGUvc3JjL2xpYi9hY3Rpb24tbWVudS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL25nLnVpLmNvcmUvZ2VuZXJpYy10YWJsZS9zcmMvbGliL2FjdGlvbi1tZW51LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxZQUFZLEVBQUUsU0FBUyxFQUFjLE1BQU0sZUFBZSxDQUFDO0FBRXRGLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM5QyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0saUJBQWlCLENBQUM7Ozs7QUFPaEQsTUFBTSxPQUFPLG1CQUFtQjtJQUNyQixLQUFLLEdBQWUsRUFBRSxDQUFDO0lBQ2hDLElBQUksR0FBRyxLQUFLLENBQUM7SUFFYSxTQUFTLENBQTRDO0lBRS9FLGlCQUFpQixHQUFHLFNBQVMsQ0FBQztJQUU5QixNQUFNO1FBQ0osSUFBSSxDQUFDLElBQUksR0FBRyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUM7UUFDdkIseUNBQXlDO1FBQ3pDLDhEQUE4RDtJQUNoRSxDQUFDO0lBRUQsa0JBQWtCO1FBQ2hCLE1BQU0sSUFBSSxHQUFHLFFBQVEsQ0FBQyxhQUFhLENBQUMsZ0JBQWdCLENBQWdCLENBQUM7UUFDckUsSUFBSSxDQUFDLElBQUk7WUFBRSxPQUFPO1FBRWxCLE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxxQkFBcUIsRUFBRSxDQUFDO1FBQzFDLE1BQU0sYUFBYSxHQUFHLE1BQU0sQ0FBQyxVQUFVLENBQUM7UUFFeEMsSUFBSSxDQUFDLGlCQUFpQixH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QTVGVSxtQkFBbUI7MkZBQW5CLG1CQUFtQixpTUNYaEMsbTlCQXNCQSwyQ0RiWSxZQUFZLCtQQUFFLGFBQWEsMmNBQUUsWUFBWTs7MkZBRXhDLG1CQUFtQjtrQkFML0IsU0FBUzsrQkFDRSxpQkFBaUIsV0FFbEIsQ0FBQyxZQUFZLEVBQUUsYUFBYSxFQUFFLFlBQVksQ0FBQzs4QkFHM0MsS0FBSztzQkFBYixLQUFLO2dCQUdvQixTQUFTO3NCQUFsQyxZQUFZO3VCQUFDLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCBWaWV3Q2hpbGRyZW4sIFF1ZXJ5TGlzdCwgRWxlbWVudFJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBNZW51SXRlbSB9IGZyb20gJ3ByaW1lbmcvYXBpJztcclxuaW1wb3J0IHsgQnV0dG9uTW9kdWxlIH0gZnJvbSAncHJpbWVuZy9idXR0b24nO1xyXG5pbXBvcnQgeyBPdmVybGF5TW9kdWxlIH0gZnJvbSAncHJpbWVuZy9vdmVybGF5JztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnYXBwLWFjdGlvbi1tZW51JyxcclxuICB0ZW1wbGF0ZVVybDogJy4vYWN0aW9uLW1lbnUuY29tcG9uZW50Lmh0bWwnLFxyXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIE92ZXJsYXlNb2R1bGUsIEJ1dHRvbk1vZHVsZV0sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBBY3Rpb25NZW51Q29tcG9uZW50IHtcclxuICBASW5wdXQoKSBpdGVtczogTWVudUl0ZW1bXSA9IFtdO1xyXG4gIG9wZW4gPSBmYWxzZTtcclxuXHJcbiAgQFZpZXdDaGlsZHJlbignbWVudUl0ZW0nKSBtZW51SXRlbXMhOiBRdWVyeUxpc3Q8RWxlbWVudFJlZjxIVE1MQnV0dG9uRWxlbWVudD4+O1xyXG5cclxuICBtZW51UG9zaXRpb25DbGFzcyA9ICdyaWdodC0wJztcclxuXHJcbiAgdG9nZ2xlKCkge1xyXG4gICAgdGhpcy5vcGVuID0gIXRoaXMub3BlbjtcclxuICAgIC8vIE9wdGlvbmFsOiBhZGp1c3QgcG9zaXRpb24gd2hlbiBvcGVuaW5nXHJcbiAgICAvLyBpZiAodGhpcy5vcGVuKSBzZXRUaW1lb3V0KCgpID0+IHRoaXMuYWRqdXN0TWVudVBvc2l0aW9uKCkpO1xyXG4gIH1cclxuXHJcbiAgYWRqdXN0TWVudVBvc2l0aW9uKCkge1xyXG4gICAgY29uc3QgbWVudSA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJy5hYnNvbHV0ZS5tdC0yJykgYXMgSFRNTEVsZW1lbnQ7XHJcbiAgICBpZiAoIW1lbnUpIHJldHVybjtcclxuXHJcbiAgICBjb25zdCByZWN0ID0gbWVudS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcclxuICAgIGNvbnN0IHZpZXdwb3J0V2lkdGggPSB3aW5kb3cuaW5uZXJXaWR0aDtcclxuXHJcbiAgICB0aGlzLm1lbnVQb3NpdGlvbkNsYXNzID0gcmVjdC5yaWdodCA+IHZpZXdwb3J0V2lkdGggPyAnbGVmdC0wJyA6ICdyaWdodC0wJztcclxuICB9XHJcblxyXG4gIG9uQ2xpY2soaXRlbTogTWVudUl0ZW0sIGV2ZW50OiBNb3VzZUV2ZW50KSB7XHJcbiAgICB0aGlzLm9wZW4gPSBmYWxzZTtcclxuICAgIGlmIChpdGVtLmNvbW1hbmQpIHtcclxuICAgICAgaXRlbS5jb21tYW5kKHsgb3JpZ2luYWxFdmVudDogZXZlbnQsIGl0ZW0gfSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBvbk91dHNpZGVDbGljayhldmVudDogTW91c2VFdmVudCkge1xyXG4gICAgY29uc3QgdGFyZ2V0ID0gZXZlbnQudGFyZ2V0IGFzIEhUTUxFbGVtZW50O1xyXG4gICAgaWYgKCF0YXJnZXQuY2xvc2VzdCgnLmlubGluZS1ibG9jaycpKSB7XHJcbiAgICAgIHRoaXMub3BlbiA9IGZhbHNlO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgIC8vID09PT09PT09PT09PT09PT09PT09PT09PVxyXG4gIC8vIEZvY3VzICYgS2V5Ym9hcmQgbmF2aWdhdGlvblxyXG4gIC8vID09PT09PT09PT09PT09PT09PT09PT09PVxyXG4gIGZvY3VzRmlyc3QoKSB7XHJcbiAgICAvLyBEZWxheSBuZWVkZWQgYmVjYXVzZSBvdmVybGF5IGNvbnRlbnQgaXMgcmVuZGVyZWQgYXN5bmNocm9ub3VzbHlcclxuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICB0aGlzLm1lbnVJdGVtcy5maXJzdD8ubmF0aXZlRWxlbWVudC5mb2N1cygpO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tXHJcbiAgLy8gS2V5Ym9hcmQgb24gbWVudSBjb250YWluZXJcclxuICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tXHJcbiBvbk1lbnVLZXlkb3duKGV2ZW50OiBLZXlib2FyZEV2ZW50KSB7XHJcbiAgLy8gQ29udmVydCBRdWVyeUxpc3QgdG8gYXJyYXkgb2YgSFRNTEJ1dHRvbkVsZW1lbnRcclxuICBjb25zdCBpdGVtczogSFRNTEJ1dHRvbkVsZW1lbnRbXSA9IHRoaXMubWVudUl0ZW1zLnRvQXJyYXkoKS5tYXAoaSA9PiBpLm5hdGl2ZUVsZW1lbnQgYXMgSFRNTEJ1dHRvbkVsZW1lbnQpO1xyXG5cclxuICBsZXQgaW5kZXggPSBpdGVtcy5pbmRleE9mKGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQgYXMgSFRNTEJ1dHRvbkVsZW1lbnQpO1xyXG4gIGlmIChpbmRleCA9PT0gLTEpIHJldHVybjtcclxuXHJcbiAgc3dpdGNoIChldmVudC5rZXkpIHtcclxuICAgIGNhc2UgJ0Fycm93RG93bic6XHJcbiAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XHJcbiAgICAgIGluZGV4ID0gKGluZGV4ICsgMSkgJSBpdGVtcy5sZW5ndGg7XHJcbiAgICAgIGl0ZW1zW2luZGV4XS5mb2N1cygpO1xyXG4gICAgICBicmVhaztcclxuXHJcbiAgICBjYXNlICdBcnJvd1VwJzpcclxuICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcclxuICAgICAgaW5kZXggPSAoaW5kZXggLSAxICsgaXRlbXMubGVuZ3RoKSAlIGl0ZW1zLmxlbmd0aDtcclxuICAgICAgaXRlbXNbaW5kZXhdLmZvY3VzKCk7XHJcbiAgICAgIGJyZWFrO1xyXG5cclxuICAgIGNhc2UgJ0VudGVyJzpcclxuICAgIGNhc2UgJyAnOlxyXG4gICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xyXG4gICAgICBpdGVtc1tpbmRleF0uY2xpY2soKTtcclxuICAgICAgYnJlYWs7XHJcblxyXG4gICAgY2FzZSAnRXNjYXBlJzpcclxuICAgICAgdGhpcy5vcGVuID0gZmFsc2U7XHJcbiAgICAgIGJyZWFrO1xyXG4gIH1cclxufVxyXG5cclxuXHJcblxyXG4gIG9uVHJpZ2dlcktleWRvd24oZXZlbnQ6IEtleWJvYXJkRXZlbnQpIHtcclxuICAgIC8vIE9wZW4gb3ZlcmxheSB2aWEga2V5Ym9hcmRcclxuICAgIGlmIChldmVudC5rZXkgPT09ICdBcnJvd0Rvd24nIHx8IGV2ZW50LmtleSA9PT0gJ0VudGVyJyB8fCBldmVudC5rZXkgPT09ICcgJykge1xyXG4gICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xyXG4gICAgICB0aGlzLm9wZW4gPSB0cnVlO1xyXG4gICAgICB0aGlzLmZvY3VzRmlyc3QoKTtcclxuICAgIH1cclxuICB9XHJcbn1cclxuIiwiPGRpdiBjbGFzcz1cImlubGluZS1ibG9jayByZWxhdGl2ZVwiPlxyXG4gIDxidXR0b24gdHlwZT1cImJ1dHRvblwiXHJcbiAgICAgICAgICBjbGFzcz1cInAtcmlwcGxlIHAtYnV0dG9uIHAtYnV0dG9uLWljb24tb25seSBwLWJ1dHRvbi1vdXRsaW5lZCBwLWNvbXBvbmVudFwiXHJcbiAgICAgICAgICAjdHJpZ2dlclxyXG4gICAgICAgICAgKGNsaWNrKT1cInRvZ2dsZSgpXCI+XHJcbiAgICA8c3BhbiBjbGFzcz1cInBpIHBpLWVsbGlwc2lzLXZcIj48L3NwYW4+XHJcbiAgPC9idXR0b24+XHJcblxyXG4gIDxwLW92ZXJsYXkgWyh2aXNpYmxlKV09XCJvcGVuXCIgW2FwcGVuZFRvXT1cIidib2R5J1wiIChvblNob3cpPVwiZm9jdXNGaXJzdCgpXCI+XHJcbiAgIDxkaXYgY2xhc3M9XCJ3LTQ4IHJvdW5kZWQtbGcgc2hhZG93LWxnIGJnLXdoaXRlIGJvcmRlciBib3JkZXItZ3JheS0yMDBcIlxyXG4gICAgICAgICB0YWJpbmRleD1cIjBcIlxyXG4gICAgICAgICAoa2V5ZG93bik9XCJvbk1lbnVLZXlkb3duKCRldmVudClcIj5cclxuICAgICAgPGJ1dHRvbiAjbWVudUl0ZW1cclxuICAgICAgICAgICAgICAqbmdGb3I9XCJsZXQgaXRlbSBvZiBpdGVtc1wiXHJcbiAgICAgICAgICAgICAgKGNsaWNrKT1cIm9uQ2xpY2soaXRlbSwgJGV2ZW50KVwiXHJcbiAgICAgICAgICAgICAgY2xhc3M9XCJmbGV4IGl0ZW1zLWNlbnRlciB3LWZ1bGwgdGV4dC1sZWZ0IHB4LTQgcHktMiB0ZXh0LXNtIGhvdmVyOmJnLWdyYXktMTAwIGZvY3VzOmJnLWdyYXktMTAwIGZvY3VzOm91dGxpbmUtbm9uZVwiPlxyXG4gICAgICAgIDxpICpuZ0lmPVwiaXRlbS5pY29uXCIgW2NsYXNzXT1cIml0ZW0uaWNvbiArICcgbWwtMiBtci0yIHRleHQtZ3JheS01MDAnXCI+PC9pPlxyXG4gICAgICAgIDxzcGFuPnt7IGl0ZW0ubGFiZWwgfX08L3NwYW4+XHJcbiAgICAgIDwvYnV0dG9uPlxyXG4gICAgPC9kaXY+XHJcbiAgPC9wLW92ZXJsYXk+XHJcbjwvZGl2PlxyXG4iXX0=","import { Component, Input, Output, EventEmitter, ViewChild, inject } from '@angular/core';\nimport { Table } from 'primeng/table';\nimport { CommonModule, NgForOf, NgIf } from '@angular/common';\nimport { TableModule } from 'primeng/table';\nimport { ButtonModule, Button } from 'primeng/button';\nimport { MenuModule, Menu } from 'primeng/menu';\nimport { TranslateModule, TranslatePipe, TranslateService } from '@ngx-translate/core';\nimport { FormlyField, FormlyForm } from '@ngx-formly/core';\nimport { FormGroup } from '@angular/forms';\nimport { cloneDeep } from 'lodash';\nimport { GenericButton } from '@elite.framework/ng.ui.core/generic-button';\nimport { PermissionsService } from '@elite.framework/ng.core/services';\nimport { PaginatorModule } from 'primeng/paginator';\nimport { ActionMenuComponent } from './action-menu.component';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@angular/common\";\nimport * as i2 from \"primeng/table\";\nimport * as i3 from \"primeng/api\";\nimport * as i4 from \"primeng/button\";\nimport * as i5 from \"@ngx-translate/core\";\nexport class GenericTable {\n translateService = inject(TranslateService);\n permissionsService = inject(PermissionsService);\n dt;\n data = [];\n data_ = [];\n columns = [];\n processedFields = [];\n columns_ = [];\n loading = false;\n actions = [];\n actionsPosition = 'end';\n actionsMode = 'buttons';\n first = 0;\n rows = 10;\n totalRecords = 0;\n sortField;\n sortOrder = 1;\n globalFilterFields = [];\n action = new EventEmitter();\n pageChange = new EventEmitter();\n // eslint-disable-next-line @angular-eslint/no-output-on-prefix\n onAddNew = new EventEmitter();\n addButtonConfigs = [];\n scrollHeight = '400px';\n // **جديد**: تمكين اختيار الصفوف\n /** فعّل اختيار الصفين single/multiple */\n rowSelectable = true;\n /** يحتفظ بالصف المحدد */\n //@Input() selection: T | T[] | null = null;\n // هذا سيكون مرتبطًا بـ [(selection)] في p-table\n _selection = null;\n //لتغيير لون صف معيّن\n rowStyleFn;\n // ✅ لتعيين كلاس CSS أو Tailwind على الصف\n rowClassFn;\n //آخر لتجميد / تعطيل checkbox الاختيار\n disableRowCheckboxFn;\n get selection() {\n return this._selection;\n }\n set selection(val) {\n this._selection = val;\n // لا تُصدر الحدث هنا، بل في onInternalSelectionChange فقط\n }\n trackByIdx(index, item) {\n return index;\n }\n /** يصدر الصف المحدد عند النقر */\n rowSelect = new EventEmitter();\n /** يصدر الصفوف المحددة عند التغيير (للربط الثنائي) */\n selectionChange = new EventEmitter();\n /** جديد: التحكم بظهور الـ paginator */\n paginator = true;\n form = new FormGroup({});\n options = {};\n // **جديد**: يتحكم بإظهار عمود اختيار الصفوف (checkboxes)\n /** يتحكم في إظهار عمود اختيار الصفوف المتعددة بواسطة checkboxes */\n showRowSelectionCheckbox = false;\n onInternalSelectionChange(event) {\n if ('data' in event) {\n // Row select/unselect (single أو multiple)\n if (Array.isArray(this._selection)) {\n this._selection = [...this._selection]; // تحديث نسخة المصفوفة عند متعدد\n }\n else {\n this._selection = event.data; // اختيار فردي\n }\n }\n else if ('checked' in event) {\n // Header checkbox toggle\n this._selection = event.checked ? [...this.data] : [];\n }\n this.selectionChange.emit(this._selection);\n // إذا ما عاد فيه أي تحديد، أصدر حدث خاص للتفريغ\n if (!this._selection || (Array.isArray(this._selection) && this._selection.length === 0)) {\n this.rowSelect.emit(undefined); // يرسل null عشان يخفي الأزرار بالأب\n }\n }\n customSort(event) {\n event.data?.sort((data1, data2) => {\n const value1 = this.resolveFieldData(data1, event.field ?? '');\n const value2 = this.resolveFieldData(data2, event.field ?? '');\n let result = 0;\n if (value1 == null && value2 != null)\n result = -1;\n else if (value1 != null && value2 == null)\n result = 1;\n else if (value1 == null && value2 == null)\n result = 0;\n else if (typeof value1 === 'string' && typeof value2 === 'string')\n result = value1.localeCompare(value2);\n else\n result = value1 < value2 ? -1 : value1 > value2 ? 1 : 0;\n return (event.order ?? 1) * result;\n });\n }\n resolveFieldData(data, field) {\n if (!field)\n return null;\n if (field.indexOf('.') === -1)\n return data[field];\n return field.split('.').reduce((obj, prop) => (obj ? obj[prop] : null), data);\n }\n // getOrderedColumns(): TableColumn[] {\n // return [...this.columns,\n // ...(this.showRowSelectionCheckbox ? [{ type: 'selection', order: -1 }] : []),\n // { type: 'operations', label: 'OPERATIONS', order: 999 }\n // ].sort((a, b) => (a.order ?? 0) - (b.order ?? 0));\n // }\n get sortedActions() {\n return this.actions\n .filter(action => (action.visible !== false) && // ✅ يخفي أي زر `visible = false`\n (!action.permissions?.length ||\n action.permissions.every(p => this.permissionsService.isGranted(p))))\n .sort((a, b) => (a.order ?? 0) - (b.order ?? 0));\n }\n get sortedActions2() {\n return this.actions\n .filter(action => !action.permissions?.length || // no permissions → allow\n action.permissions.every(p => this.permissionsService.isGranted(p)) // all granted\n )\n .sort((a, b) => (a.order ?? 0) - (b.order ?? 0));\n }\n onAction(act, row) {\n if (act.action) {\n act.action(row);\n }\n else {\n this.action.emit({ name: act.name, row });\n }\n }\n // cloneField(field: any): any {\n // if (field === null || typeof field !== 'object') {\n // return field;\n // }\n // if (Array.isArray(field)) {\n // // preserve `this` context\n // return field.map((item) => this.cloneField(item));\n // }\n // const cloned: any = {};\n // for (const key of Object.keys(field)) {\n // cloned[key] = this.cloneField(field[key]);\n // }\n // return cloned;\n // }\n // Use a map to store form groups for each row and column\n cellForms = new Map();\n forms = new FormGroup({}); // A main form for the table\n // Refactored getForm to return an existing form instance\n getForm(rowIndex, colIndex) {\n const key = `${rowIndex}_${colIndex}`;\n let form = this.cellForms.get(key);\n if (!form) {\n form = new FormGroup({});\n this.cellForms.set(key, form);\n }\n return form;\n }\n trackByFn(index, item) {\n return index; // or a unique identifier from your data\n }\n // This method is called whenever any @Input() property changes.\n ngOnChanges(changes) {\n // Check if the 'data' property has changed.\n if (changes['data']) {\n const currentData = changes['data'].currentValue;\n const previousData = changes['data'].previousValue;\n // For example, you can call a method to re-render or process the data.\n this.refreshData();\n }\n }\n onLazyLoad(event) {\n // Reinitialize forms on new data load\n // this.cellForms.clear();\n this.refreshData();\n this.pageChange.emit(event);\n }\n applyFilter(filters) {\n // if (field) {\n // this.dt.filter(global, field, 'contains');\n // } else {\n // this.dt.filterGlobal(global, 'contains');\n // }\n }\n refreshData() {\n this.data_ = this.data.map(rowData => {\n // Create a new array of fields for each row\n const rowFields = this.columns.map(col => {\n return cloneDeep(col);\n });\n // Attach the unique fields to the row data object\n return {\n ...rowData,\n rowFields: rowFields\n };\n });\n }\n getMenuItems(row) {\n return this.sortedActions.map(act => ({\n label: this.translateService.instant(act.label ?? ''),\n icon: act.icon,\n command: () => this.onAction(act, row),\n styleClass: act.styleClass\n }));\n }\n // **جديد**: يتم إطلاق هذا عند اختيار صف\n onRowSelect(event) {\n // debugger\n if (event.data) {\n this.rowSelect.emit(event.data);\n }\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: GenericTable, deps: [], target: i0.ɵɵFactoryTarget.Component });\n static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"20.1.8\", type: GenericTable, isStandalone: true, selector: \"lib-generic-table\", inputs: { data: \"data\", columns: \"columns\", loading: \"loading\", actions: \"actions\", actionsPosition: \"actionsPosition\", actionsMode: \"actionsMode\", first: \"first\", rows: \"rows\", totalRecords: \"totalRecords\", sortField: \"sortField\", sortOrder: \"sortOrder\", globalFilterFields: \"globalFilterFields\", addButtonConfigs: \"addButtonConfigs\", scrollHeight: \"scrollHeight\", rowSelectable: \"rowSelectable\", rowStyleFn: \"rowStyleFn\", rowClassFn: \"rowClassFn\", disableRowCheckboxFn: \"disableRowCheckboxFn\", selection: \"selection\", paginator: \"paginator\", showRowSelectionCheckbox: \"showRowSelectionCheckbox\" }, outputs: { action: \"action\", pageChange: \"pageChange\", onAddNew: \"onAddNew\", rowSelect: \"rowSelect\", selectionChange: \"selectionChange\" }, viewQueries: [{ propertyName: \"dt\", first: true, predicate: [\"dt\"], descendants: true }], usesOnChanges: true, ngImport: i0, template: \"<div class=\\\"flex flex-col h-screen\\\" style=\\\" height: 60vh;\\\">\\r\\n <div class=\\\"flex-1 border rounded-lg overflow-hidden flex flex-col\\\">\\r\\n\\r\\n <!-- PrimeNG Table -->\\r\\n <p-table #dt\\r\\n [value]=\\\"data_\\\"\\r\\n [columns]=\\\"columns\\\"\\r\\n [lazy]=\\\"true\\\"\\r\\n [paginator]=\\\"false\\\"\\r\\n [rows]=\\\"rows\\\"\\r\\n [first]=\\\"first\\\"\\r\\n [totalRecords]=\\\"totalRecords\\\"\\r\\n (onLazyLoad)=\\\"onLazyLoad($event)\\\"\\r\\n [globalFilterFields]=\\\"globalFilterFields\\\"\\r\\n [loading]=\\\"loading\\\"\\r\\n [scrollable]=\\\"true\\\"\\r\\n scrollHeight=\\\"flex\\\"\\r\\n [selectionMode]=\\\"showRowSelectionCheckbox ? 'multiple' : (rowSelectable ? 'single' : undefined)\\\"\\r\\n [(selection)]=\\\"_selection\\\"\\r\\n (onRowSelect)=\\\"onInternalSelectionChange($event)\\\"\\r\\n (onRowUnselect)=\\\"onInternalSelectionChange($event)\\\"\\r\\n (onHeaderCheckboxToggle)=\\\"onInternalSelectionChange($event)\\\"\\r\\n tableLayout=\\\"fixed\\\"\\r\\n [customSort]=\\\"false\\\"\\r\\n class=\\\"flex-1 overflow-auto\\\"\\r\\n >\\r\\n\\r\\n <!-- Empty message -->\\r\\n <ng-template pTemplate=\\\"emptymessage\\\">\\r\\n <tr>\\r\\n <td colspan=\\\"10\\\">\\r\\n <div class=\\\"flex flex-col items-center justify-center py-10 text-center w-full\\\">\\r\\n <i class=\\\"pi pi-inbox text-4xl text-gray-400 mb-4\\\"></i>\\r\\n <p class=\\\"text-gray-500 mb-4\\\">{{ 'NO_DATA_FOUND' | translate }}</p>\\r\\n\\r\\n <ng-container *ngFor=\\\"let btn of addButtonConfigs; trackBy: trackByIdx\\\">\\r\\n <lib-generic-button\\r\\n *ngIf=\\\"!btn.visible || btn.visible === true\\\"\\r\\n [icon]=\\\"btn.icon\\\"\\r\\n [label]=\\\"btn.label | translate\\\"\\r\\n [variant]=\\\"btn.variant\\\"\\r\\n [size]=\\\"btn.size\\\"\\r\\n [model]=\\\"btn.splitActions\\\"\\r\\n [permission]=\\\"btn.permission\\\"\\r\\n (clicked)=\\\"onAddNew.emit()\\\"\\r\\n class=\\\"mb-2\\\"\\r\\n ></lib-generic-button>\\r\\n </ng-container>\\r\\n </div>\\r\\n </td>\\r\\n </tr>\\r\\n </ng-template>\\r\\n\\r\\n <!-- Table header -->\\r\\n <ng-template pTemplate=\\\"header\\\" let-columns>\\r\\n <tr class=\\\"bg-gray-200 sticky top-0 z-10\\\">\\r\\n <th *ngIf=\\\"showRowSelectionCheckbox\\\" style=\\\"width: 2rem\\\">\\r\\n <p-tableHeaderCheckbox></p-tableHeaderCheckbox>\\r\\n </th>\\r\\n <th *ngIf=\\\"actions.length > 0 && actionsPosition === 'start'\\\" class=\\\"px-4 py-2 text-sm font-medium text-center sticky right-0\\\">\\r\\n {{ '*' | translate }}\\r\\n </th>\\r\\n <ng-container *ngFor=\\\"let col of columns; trackBy: trackByFn\\\">\\r\\n <th\\r\\n [pSortableColumn]=\\\"col.props.entityKey || col.key\\\"\\r\\n class=\\\"px-4 py-2 text-sm font-medium text-center\\\"\\r\\n [style.min-width]=\\\"col.props?.table?.props?.width || '150px'\\\"\\r\\n >\\r\\n {{ col.props?.label | translate }}\\r\\n <p-sortIcon [field]=\\\"col.props.entityKey || col.key\\\"></p-sortIcon>\\r\\n </th>\\r\\n </ng-container>\\r\\n\\r\\n <th *ngIf=\\\"actions.length > 0 && actionsPosition === 'end'\\\" class=\\\"px-4 py-2 text-sm font-medium text-center sticky left-0\\\">\\r\\n {{ '*' | translate }}\\r\\n </th>\\r\\n </tr>\\r\\n </ng-template>\\r\\n\\r\\n <!-- Table body -->\\r\\n <ng-template pTemplate=\\\"body\\\" let-rowData let-columns=\\\"columns\\\" let-i=\\\"rowIndex\\\">\\r\\n <tr class=\\\"even:bg-gray-50 hover:bg-gray-100 cursor-pointer\\\"\\r\\n (click)=\\\"rowSelect.emit(rowData)\\\"\\r\\n [ngClass]=\\\"rowClassFn ? rowClassFn(rowData) : null\\\"\\r\\n [ngStyle]=\\\"rowStyleFn ? rowStyleFn(rowData) : null\\\">\\r\\n <td *ngIf=\\\"showRowSelectionCheckbox\\\" style=\\\"width: 2rem\\\">\\r\\n <p-tableCheckbox\\r\\n [value]=\\\"rowData\\\"\\r\\n [disabled]=\\\"disableRowCheckboxFn ? disableRowCheckboxFn(rowData) : false\\\"\\r\\n ></p-tableCheckbox>\\r\\n </td>\\r\\n <td *ngIf=\\\"actions.length > 0 && actionsPosition === 'start'\\\" class=\\\"border-t border-gray-200 px-4 py-2 text-center sticky right-0 bg-gray-50\\\">\\r\\n <ng-container\\r\\n *ngTemplateOutlet=\\\"actionsTemplate; context: {$implicit: rowData}\\\">\\r\\n </ng-container>\\r\\n\\r\\n </td>\\r\\n\\r\\n <td\\r\\n *ngFor=\\\"let col of rowData.rowFields; let colIndex = index; trackBy: trackByFn\\\"\\r\\n class=\\\"border-t border-gray-200 px-4 py-2 text-center text-sm text-gray-700\\\"\\r\\n [style.width]=\\\"col.props?.table?.props?.width\\\"\\r\\n >\\r\\n <formly-form\\r\\n [model]=\\\"rowData\\\"\\r\\n [form]=\\\"getForm(i, colIndex)\\\"\\r\\n [fields]=\\\"[col]\\\"\\r\\n [options]=\\\"options\\\"\\r\\n ></formly-form>\\r\\n </td>\\r\\n\\r\\n <td *ngIf=\\\"actions.length > 0 && actionsPosition === 'end'\\\" class=\\\"border-t border-gray-200 px-4 py-2 text-center sticky left-0\\\">\\r\\n <ng-container\\r\\n *ngTemplateOutlet=\\\"actionsTemplate; context: {$implicit: rowData}\\\">\\r\\n </ng-container>\\r\\n\\r\\n </td>\\r\\n </tr>\\r\\n\\r\\n </ng-template>\\r\\n\\r\\n\\r\\n </p-table>\\r\\n </div>\\r\\n</div>\\r\\n\\r\\n<ng-template #actionsTemplate let-rowData>\\r\\n <ng-container [ngSwitch]=\\\"actionsMode\\\">\\r\\n\\r\\n <ng-container *ngSwitchCase=\\\"'buttons'\\\">\\r\\n <ng-container *ngFor=\\\"let act of sortedActions\\\">\\r\\n <button\\r\\n *ngIf=\\\"act.icon || act.label\\\"\\r\\n pButton\\r\\n [icon]=\\\"act.icon || ''\\\"\\r\\n [label]=\\\"(act.label ?? '') | translate\\\"\\r\\n [class]=\\\"act.styleClass || ''\\\"\\r\\n class=\\\"p-button-sm mx-1\\\"\\r\\n (click)=\\\"onAction(act, rowData)\\\" ></button>\\r\\n </ng-container>\\r\\n </ng-container>\\r\\n\\r\\n <ng-container *ngSwitchCase=\\\"'menu'\\\">\\r\\n <app-action-menu [items]=\\\"getMenuItems(rowData) || []\\\"></app-action-menu>\\r\\n <!-- <p-menu #menu [model]=\\\"getMenuItems(rowData)\\\" [popup]=\\\"true\\\" appendTo=\\\"body\\\"></p-menu>\\r\\n <p-button\\r\\n outlined\\r\\n icon=\\\"pi pi-ellipsis-v\\\"\\r\\n class=\\\"p-button-text p-button-sm\\\"\\r\\n (onClick)=\\\"menu.toggle($event)\\\"\\r\\n ></p-button> -->\\r\\n </ng-container>\\r\\n\\r\\n </ng-container>\\r\\n</ng-template>\\r\\n\\r\\n\", styles: [\".custom-button-medium{font-size:1.1rem;width:2.5rem;height:2.5rem;line-height:2.5rem;padding:0}.custom-button-gray{color:#333;background-color:transparent;border:none}.custom-button-gray:hover{background-color:#eee;color:#000}.icon-delete{color:red!important}.icon-edit{color:#333}\\n\"], dependencies: [{ kind: \"ngmodule\", type: CommonModule }, { kind: \"directive\", type: i1.NgClass, selector: \"[ngClass]\", inputs: [\"class\", \"ngClass\"] }, { kind: \"directive\", type: i1.NgForOf, selector: \"[ngFor][ngForOf]\", inputs: [\"ngForOf\", \"ngForTrackBy\", \"ngForTemplate\"] }, { kind: \"directive\", type: i1.NgIf, selector: \"[ngIf]\", inputs: [\"ngIf\", \"ngIfThen\", \"ngIfElse\"] }, { kind: \"directive\", type: i1.NgTemplateOutlet, selector: \"[ngTemplateOutlet]\", inputs: [\"ngTemplateOutletContext\", \"ngTemplateOutlet\", \"ngTemplateOutletInjector\"] }, { kind: \"directive\", type: i1.NgStyle, selector: \"[ngStyle]\", inputs: [\"ngStyle\"] }, { kind: \"directive\", type: i1.NgSwitch, selector: \"[ngSwitch]\", inputs: [\"ngSwitch\"] }, { kind: \"directive\", type: i1.NgSwitchCase, selector: \"[ngSwitchCase]\", inputs: [\"ngSwitchCase\"] }, { kind: \"ngmodule\", type: TableModule }, { kind: \"component\", type: i2.Table, selector: \"p-table\", inputs: [\"frozenColumns\", \"frozenValue\", \"styleClass\", \"tableStyle\", \"tableStyleClass\", \"paginator\", \"pageLinks\", \"rowsPerPageOptions\", \"alwaysShowPaginator\", \"paginatorPosition\", \"paginatorStyleClass\", \"paginatorDropdownAppendTo\", \"paginatorDropdownScrollHeight\", \"currentPageReportTemplate\", \"showCurrentPageReport\", \"showJumpToPageDropdown\", \"showJumpToPageInput\", \"showFirstLastIcon\", \"showPageLinks\", \"defaultSortOrder\", \"sortMode\", \"resetPageOnSort\", \"selectionMode\", \"selectionPageOnly\", \"contextMenuSelection\", \"contextMenuSelectionMode\", \"dataKey\", \"metaKeySelection\", \"rowSelectable\", \"rowTrackBy\", \"lazy\", \"lazyLoadOnInit\", \"compareSelectionBy\", \"csvSeparator\", \"exportFilename\", \"filters\", \"globalFilterFields\", \"filterDelay\", \"filterLocale\", \"expandedRowKeys\", \"editingRowKeys\", \"rowExpandMode\", \"scrollable\", \"rowGroupMode\", \"scrollHeight\", \"virtualScroll\", \"virtualScrollItemSize\", \"virtualScrollOptions\", \"virtualScrollDelay\", \"frozenWidth\", \"contextMenu\", \"resizableColumns\", \"columnResizeMode\", \"reorderableColumns\", \"loading\", \"loadingIcon\", \"showLoader\", \"rowHover\", \"customSort\", \"showInitialSortBadge\", \"exportFunction\", \"exportHeader\", \"stateKey\", \"stateStorage\", \"editMode\", \"groupRowsBy\", \"size\", \"showGridlines\", \"stripedRows\", \"groupRowsByOrder\", \"responsiveLayout\", \"breakpoint\", \"paginatorLocale\", \"value\", \"columns\", \"first\", \"rows\", \"totalRecords\", \"sortField\", \"sortOrder\", \"multiSortMeta\", \"selection\", \"selectAll\"], outputs: [\"contextMenuSelectionChange\", \"selectAllChange\", \"selectionChange\", \"onRowSelect\", \"onRowUnselect\", \"onPage\", \"onSort\", \"onFilter\", \"onLazyLoad\", \"onRowExpand\", \"onRowCollapse\", \"onContextMenuSelect\", \"onColResize\", \"onColReorder\", \"onRowReorder\", \"onEditInit\", \"onEditComplete\", \"onEditCancel\", \"onHeaderCheckboxToggle\", \"sortFunction\", \"firstChange\", \"rowsChange\", \"onStateSave\", \"onStateRestore\"] }, { kind: \"directive\", type: i3.PrimeTemplate, selector: \"[pTemplate]\", inputs: [\"type\", \"pTemplate\"] }, { kind: \"directive\", type: i2.SortableColumn, selector: \"[pSortableColumn]\", inputs: [\"pSortableColumn\", \"pSortableColumnDisabled\"] }, { kind: \"component\", type: i2.SortIcon, selector: \"p-sortIcon\", inputs: [\"field\"] }, { kind: \"component\", type: i2.TableCheckbox, selector: \"p-tableCheckbox\", inputs: [\"value\", \"disabled\", \"required\", \"index\", \"inputId\", \"name\", \"ariaLabel\"] }, { kind: \"component\", type: i2.TableHeaderCheckbox, selector: \"p-tableHeaderCheckbox\", inputs: [\"disabled\", \"inputId\", \"name\", \"ariaLabel\"] }, { kind: \"ngmodule\", type: ButtonModule }, { kind: \"directive\", type: i4.ButtonDirective, selector: \"[pButton]\", inputs: [\"iconPos\", \"loadingIcon\", \"loading\", \"severity\", \"raised\", \"rounded\", \"text\", \"outlined\", \"size\", \"plain\", \"fluid\", \"label\", \"icon\", \"buttonProps\"] }, { kind: \"ngmodule\", type: MenuModule }, { kind: \"ngmodule\", type: TranslateModule }, { kind: \"component\", type: FormlyForm, selector: \"formly-form\", inputs: [\"form\", \"model\", \"fields\", \"options\"], outputs: [\"modelChange\"] }, { kind: \"component\", type: GenericButton, selector: \"lib-generic-button\", inputs: [\"model\", \"type\", \"icon\", \"label\", \"variant\", \"severity\", \"size\", \"iconPosition\", \"disabled\", \"loading\", \"ariaLabel\", \"extraClasses\", \"permission\"], outputs: [\"clicked\", \"itemClick\"] }, { kind: \"ngmodule\", type: PaginatorModule }, { kind: \"component\", type: ActionMenuComponent, selector: \"app-action-menu\", inputs: [\"items\"] }, { kind: \"pipe\", type: i5.TranslatePipe, name: \"translate\" }] });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: GenericTable, decorators: [{\n type: Component,\n args: [{ selector: 'lib-generic-table', imports: [CommonModule, TableModule, ButtonModule, MenuModule, NgForOf, TranslateModule, FormlyField, FormlyForm, NgIf, TranslatePipe, Menu, Button, GenericButton, PaginatorModule, ActionMenuComponent], template: \"<div class=\\\"flex flex-col h-screen\\\" style=\\\" height: 60vh;\\\">\\r\\n <div class=\\\"flex-1 border rounded-lg overflow-hidden flex flex-col\\\">\\r\\n\\r\\n <!-- PrimeNG Table -->\\r\\n <p-table #dt\\r\\n [value]=\\\"data_\\\"\\r\\n [columns]=\\\"columns\\\"\\r\\n [lazy]=\\\"true\\\"\\r\\n [paginator]=\\\"false\\\"\\r\\n [rows]=\\\"rows\\\"\\r\\n [first]=\\\"first\\\"\\r\\n [totalRecords]=\\\"totalRecords\\\"\\r\\n (onLazyLoad)=\\\"onLazyLoad($event)\\\"\\r\\n [globalFilterFields]=\\\"globalFilterFields\\\"\\r\\n [loading]=\\\"loading\\\"\\r\\n [scrollable]=\\\"true\\\"\\r\\n scrollHeight=\\\"flex\\\"\\r\\n [selectionMode]=\\\"showRowSelectionCheckbox ? 'multiple' : (rowSelectable ? 'single' : undefined)\\\"\\r\\n [(selection)]=\\\"_selection\\\"\\r\\n (onRowSelect)=\\\"onInternalSelectionChange($event)\\\"\\r\\n (onRowUnselect)=\\\"onInternalSelectionChange($event)\\\"\\r\\n (onHeaderCheckboxToggle)=\\\"onInternalSelectionChange($event)\\\"\\r\\n tableLayout=\\\"fixed\\\"\\r\\n [customSort]=\\\"false\\\"\\r\\n class=\\\"flex-1 overflow-auto\\\"\\r\\n >\\r\\n\\r\\n <!-- Empty message -->\\r\\n <ng-template pTemplate=\\\"emptymessage\\\">\\r\\n <tr>\\r\\n <td colspan=\\\"10\\\">\\r\\n <div class=\\\"flex flex-col items-center justify-center py-10 text-center w-full\\\">\\r\\n <i class=\\\"pi pi-inbox text-4xl text-gray-400 mb-4\\\"></i>\\r\\n <p class=\\\"text-gray-500 mb-4\\\">{{ 'NO_DATA_FOUND' | translate }}</p>\\r\\n\\r\\n <ng-container *ngFor=\\\"let btn of addButtonConfigs; trackBy: trackByIdx\\\">\\r\\n <lib-generic-button\\r\\n *ngIf=\\\"!btn.visible || btn.visible === true\\\"\\r\\n [icon]=\\\"btn.icon\\\"\\r\\n [label]=\\\"btn.label | translate\\\"\\r\\n [variant]=\\\"btn.variant\\\"\\r\\n [size]=\\\"btn.size\\\"\\r\\n [model]=\\\"btn.splitActions\\\"\\r\\n [permission]=\\\"btn.permission\\\"\\r\\n (clicked)=\\\"onAddNew.emit()\\\"\\r\\n class=\\\"mb-2\\\"\\r\\n ></lib-generic-button>\\r\\n </ng-container>\\r\\n </div>\\r\\n </td>\\r\\n </tr>\\r\\n </ng-template>\\r\\n\\r\\n <!-- Table header -->\\r\\n <ng-template pTemplate=\\\"header\\\" let-columns>\\r\\n <tr class=\\\"bg-gray-200 sticky top-0 z-10\\\">\\r\\n <th *ngIf=\\\"showRowSelectionCheckbox\\\" style=\\\"width: 2rem\\\">\\r\\n <p-tableHeaderCheckbox></p-tableHeaderCheckbox>\\r\\n </th>\\r\\n <th *ngIf=\\\"actions.length > 0 && actionsPosition === 'start'\\\" class=\\\"px-4 py-2 text-sm font-medium text-center sticky right-0\\\">\\r\\n {{ '*' | translate }}\\r\\n </th>\\r\\n <ng-container *ngFor=\\\"let col of columns; trackBy: trackByFn\\\">\\r\\n <th\\r\\n [pSortableColumn]=\\\"col.props.entityKey || col.key\\\"\\r\\n class=\\\"px-4 py-2 text-sm font-medium text-center\\\"\\r\\n [style.min-width]=\\\"col.props?.table?.props?.width || '150px'\\\"\\r\\n >\\r\\n {{ col.props?.label | translate }}\\r\\n <p-sortIcon [field]=\\\"col.props.entityKey || col.key\\\"></p-sortIcon>\\r\\n </th>\\r\\n </ng-container>\\r\\n\\r\\n <th *ngIf=\\\"actions.length > 0 && actionsPosition === 'end'\\\" class=\\\"px-4 py-2 text-sm font-medium text-center sticky left-0\\\">\\r\\n {{ '*' | translate }}\\r\\n </th>\\r\\n </tr>\\r\\n </ng-template>\\r\\n\\r\\n <!-- Table body -->\\r\\n <ng-template pTemplate=\\\"body\\\" let-rowData let-columns=\\\"columns\\\" let-i=\\\"rowIndex\\\">\\r\\n <tr class=\\\"even:bg-gray-50 hover:bg-gray-100 cursor-pointer\\\"\\r\\n (click)=\\\"rowSelect.emit(rowData)\\\"\\r\\n [ngClass]=\\\"rowClassFn ? rowClassFn(rowData) : null\\\"\\r\\n [ngStyle]=\\\"rowStyleFn ? rowStyleFn(rowData) : null\\\">\\r\\n <td *ngIf=\\\"showRowSelectionCheckbox\\\" style=\\\"width: 2rem\\\">\\r\\n <p-tableCheckbox\\r\\n [value]=\\\"rowData\\\"\\r\\n [disabled]=\\\"disableRowCheckboxFn ? disableRowCheckboxFn(rowData) : false\\\"\\r\\n ></p-tableCheckbox>\\r\\n </td>\\r\\n <td *ngIf=\\\"actions.length > 0 && actionsPosition === 'start'\\\" class=\\\"border-t border-gray-200 px-4 py-2 text-center sticky right-0 bg-gray-50\\\">\\r\\n <ng-container\\r\\n *ngTemplateOutlet=\\\"actionsTemplate; context: {$implicit: rowData}\\\">\\r\\n </ng-container>\\r\\n\\r\\n </td>\\r\\n\\r\\n <td\\r\\n *ngFor=\\\"let col of rowData.rowFields; let colIndex = index; trackBy: trackByFn\\\"\\r\\n class=\\\"border-t border-gray-200 px-4 py-2 text-center text-sm text-gray-700\\\"\\r\\n [style.width]=\\\"col.props?.table?.props?.width\\\"\\r\\n >\\r\\n <formly-form\\r\\n [model]=\\\"rowData\\\"\\r\\n [form]=\\\"getForm(i, colIndex)\\\"\\r\\n [fields]=\\\"[col]\\\"\\r\\n [options]=\\\"options\\\"\\r\\n ></formly-form>\\r\\n </td>\\r\\n\\r\\n <td *ngIf=\\\"actions.length > 0 && actionsPosition === 'end'\\\" class=\\\"border-t border-gray-200 px-4 py-2 text-center sticky left-0\\\">\\r\\n <ng-container\\r\\n *ngTemplateOutlet=\\\"actionsTemplate; context: {$implicit: rowData}\\\">\\r\\n </ng-container>\\r\\n\\r\\n </td>\\r\\n </tr>\\r\\n\\r\\n </ng-template>\\r\\n\\r\\n\\r\\n </p-table>\\r\\n </div>\\r\\n</div>\\r\\n\\r\\n<ng-template #actionsTemplate let-rowData>\\r\\n <ng-container [ngSwitch]=\\\"actionsMode\\\">\\r\\n\\r\\n <ng-container *ngSwitchCase=\\\"'buttons'\\\">\\r\\n <ng-container *ngFor=\\\"let act of sortedActions\\\">\\r\\n <button\\r\\n *ngIf=\\\"act.icon || act.label\\\"\\r\\n pButton\\r\\n [icon]=\\\"act.icon || ''\\\"\\r\\n [label]=\\\"(act.label ?? '') | translate\\\"\\r\\n [class]=\\\"act.styleClass || ''\\\"\\r\\n class=\\\"p-button-sm mx-1\\\"\\r\\n (click)=\\\"onAction(act, rowData)\\\" ></button>\\r\\n </ng-container>\\r\\n </ng-container>\\r\\n\\r\\n <ng-container *ngSwitchCase=\\\"'menu'\\\">\\r\\n <app-action-menu [items]=\\\"getMenuItems(rowData) || []\\\"></app-action-menu>\\r\\n <!-- <p-menu #menu [model]=\\\"getMenuItems(rowData)\\\" [popup]=\\\"true\\\" appendTo=\\\"body\\\"></p-menu>\\r\\n <p-button\\r\\n outlined\\r\\n icon=\\\"pi pi-ellipsis-v\\\"\\r\\n class=\\\"p-button-text p-button-sm\\\"\\r\\n (onClick)=\\\"menu.toggle($event)\\\"\\r\\n ></p-button> -->\\r\\n </ng-container>\\r\\n\\r\\n </ng-container>\\r\\n</ng-template>\\r\\n\\r\\n\", styles: [\".custom-button-medium{font-size:1.1rem;width:2.5rem;height:2.5rem;line-height:2.5rem;padding:0}.custom-button-gray{color:#333;background-color:transparent;border:none}.custom-button-gray:hover{background-color:#eee;color:#000}.icon-delete{color:red!important}.icon-edit{color:#333}\\n\"] }]\n }], propDecorators: { dt: [{\n type: ViewChild,\n args: ['dt']\n }], data: [{\n type: Input\n }], columns: [{\n type: Input\n }], loading: [{\n type: Input\n }], actions: [{\n type: Input\n }], actionsPosition: [{\n type: Input\n }], actionsMode: [{\n type: Input\n }], first: [{\n type: Input\n }], rows: [{\n type: Input\n }], totalRecords: [{\n type: Input\n }], sortField: [{\n type: Input\n }], sortOrder: [{\n type: Input\n }], globalFilterFields: [{\n type: Input\n }], action: [{\n type: Output\n }], pageChange: [{\n type: Output\n }], onAddNew: [{\n type: Output\n }], addButtonConfigs: [{\n type: Input\n }], scrollHeight: [{\n type: Input\n }], rowSelectable: [{\n type: Input\n }], rowStyleFn: [{\n type: Input\n }], rowClassFn: [{\n type: Input\n }], disableRowCheckboxFn: [{\n type: Input\n }], selection: [{\n type: Input\n }], rowSelect: [{\n type: Output\n }], selectionChange: [{\n type: Output\n }], paginator: [{\n type: Input\n }], showRowSelectionCheckbox: [{\n type: Input\n }] } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2VuZXJpYy10YWJsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvbmcudWkuY29yZS9nZW5lcmljLXRhYmxlL3NyYy9saWIvZ2VuZXJpYy10YWJsZS50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvbmcudWkuY29yZS9nZW5lcmljLXRhYmxlL3NyYy9saWIvZ2VuZXJpYy10YWJsZS5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxZQUFZLEVBQUUsU0FBUyxFQUE2QixNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFckgsT0FBTyxFQUFFLEtBQUssRUFBMkUsTUFBTSxlQUFlLENBQUM7QUFDL0csT0FBTyxFQUFFLFlBQVksRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDOUQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM1QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3RELE9BQU8sRUFBRSxVQUFVLEVBQUUsSUFBSSxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQ2hELE9BQU8sRUFBRSxlQUFlLEVBQUUsYUFBYSxFQUFFLGdCQUFnQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDdkYsT0FBTyxFQUFFLFdBQVcsRUFBcUIsVUFBVSxFQUFxQixNQUFNLGtCQUFrQixDQUFDO0FBQ2pHLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUUzQyxPQUFPLEVBQUUsU0FBUyxFQUFXLE1BQU0sUUFBUSxDQUFDO0FBQzVDLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSw0Q0FBNEMsQ0FBQztBQUMzRSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUN2RSxPQUFPLEVBQUUsZUFBZSxFQUFF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Z0JBQ0csVUFBVTtzQkFBbkIsTUFBTTtnQkFHRyxRQUFRO3NCQUFqQixNQUFNO2dCQUNBLGdCQUFnQjtzQkFBeEIsS0FBSztnQkFDSyxZQUFZO3NCQUFwQixLQUFLO2dCQUlHLGFBQWE7c0JBQXJCLEtBQUs7Z0JBUUcsVUFBVTtzQkFBbEIsS0FBSztnQkFHRyxVQUFVO3NCQUFsQixLQUFLO2dCQUdHLG9CQUFvQjtzQkFBNUIsS0FBSztnQkFHRixTQUFTO3NCQURaLEtBQUs7Z0JBWUksU0FBUztzQkFBbEIsTUFBTTtnQkFHRyxlQUFlO3NCQUF4QixNQUFNO2dCQUlFLFNBQVM7c0JBQWpCLEtBQUs7Z0JBT0csd0JBQXdCO3NCQUFoQyxLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCwgT3V0cHV0LCBFdmVudEVtaXR0ZXIsIFZpZXdDaGlsZCwgIE9uQ2hhbmdlcywgU2ltcGxlQ2hhbmdlcywgaW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IE1lbnVJdGVtLCBTb3J0RXZlbnQgfSBmcm9tICdwcmltZW5nL2FwaSc7XHJcbmltcG9ydCB7IFRhYmxlLCBUYWJsZUhlYWRlckNoZWNrYm94VG9nZ2xlRXZlbnQsIFRhYmxlTGF6eUxvYWRFdmVudCwgVGFibGVSb3dTZWxlY3RFdmVudCB9IGZyb20gJ3ByaW1lbmcvdGFibGUnO1xyXG5pbXBvcnQgeyBDb21tb25Nb2R1bGUsIE5nRm9yT2YsIE5nSWYgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBUYWJsZU1vZHVsZSB9IGZyb20gJ3ByaW1lbmcvdGFibGUnO1xyXG5pbXBvcnQgeyBCdXR0b25Nb2R1bGUsIEJ1dHRvbiB9IGZyb20gJ3ByaW1lbmcvYnV0dG9uJztcclxuaW1wb3J0IHsgTWVudU1vZHVsZSwgTWVudSB9IGZyb20gJ3ByaW1lbmcvbWVudSc7XHJcbmltcG9ydCB7IFRyYW5zbGF0ZU1vZHVsZSwgVHJhbnNsYXRlUGlwZSwgVHJhbnNsYXRlU2VydmljZSB9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xyXG5pbXBvcnQgeyBGb3JtbHlGaWVsZCwgRm9ybWx5RmllbGRDb25maWcsIEZvcm1seUZvcm0sIEZvcm1seUZvcm1PcHRpb25zIH0gZnJvbSAnQG5neC1mb3JtbHkvY29yZSc7XHJcbmltcG9ydCB7IEZvcm1Hcm91cCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgQWN0aW9uRGVmLCBCdXR0b25Db25maWcgfSBmcm9tICdAZWxpdGUuZnJhbWV3b3JrL25nLmNvcmUvbW9kZWxzJztcclxuaW1wb3J0IHsgY2xvbmVEZWVwLCBmb3JFYWNoIH0gZnJvbSAnbG9kYXNoJztcclxuaW1wb3J0IHsgR2VuZXJpY0J1dHRvbiB9IGZyb20gJ0BlbGl0ZS5mcmFtZXdvcmsvbmcudWkuY29yZS9nZW5lcmljLWJ1dHRvbic7XHJcbmltcG9ydCB7IFBlcm1pc3Npb25zU2VydmljZSB9IGZyb20gJ0BlbGl0ZS5mcmFtZXdvcmsvbmcuY29yZS9zZXJ2aWNlcyc7XHJcbmltcG9ydCB7IFBhZ2luYXRvck1vZHVsZSB9IGZyb20gJ3ByaW1lbmcvcGFnaW5hdG9yJztcclxuaW1wb3J0IHsgQWN0aW9uTWVudUNvbXBvbmVudCB9IGZyb20gJy4vYWN0aW9uLW1lbnUuY29tcG9uZW50JztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnbGliLWdlbmVyaWMtdGFibGUnLFxyXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIFRhYmxlTW9kdWxlLCBCdXR0b25Nb2R1bGUsIE1lbnVNb2R1bGUsIE5nRm9yT2YsVHJhbnNsYXRlTW9kdWxlLEZvcm1seUZpZWxkLEZvcm1seUZvcm0sIE5nSWYsIFRyYW5zbGF0ZVBpcGUsIE1lbnUsIEJ1dHRvbixHZW5lcmljQnV0dG9uLFBhZ2luYXRvck1vZHVsZSxBY3Rpb25NZW51Q29tcG9uZW50XSxcclxuICB0ZW1wbGF0ZVVybDogJy4vZ2VuZXJpYy10YWJsZS5odG1sJyxcclxuICBzdHlsZVVybDogJy4vZ2VuZXJpYy10YWJsZS5jc3MnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBHZW5lcmljVGFibGU8VD4gIGltcGxlbWVudHMgT25DaGFuZ2Vze1xyXG5cclxuICB0cmFuc2xhdGVTZXJ2aWNlOlRyYW5zbGF0ZVNlcnZpY2UgPSBpbmplY3QoVHJhbnNsYXRlU2VydmljZSk7XHJcbiAgcGVybWlzc2lvbnNTZXJ2aWNlOlBlcm1pc3Npb25zU2VydmljZSA9IGluamVjdChQZXJtaXNzaW9uc1NlcnZpY2UpO1xyXG5cclxuQFZpZXdDaGlsZCgnZHQnKSBkdCE6IFRhYmxlO1xyXG5cclxuQElucHV0KCkgZGF0YTogYW55W10gPSBbXTtcclxuIGRhdGFfOiBhbnlbXSA9IFtdO1xyXG4gIEBJbnB1dCgpIGNvbHVtbnM6IEZvcm1seUZpZWxkQ29uZmlnW10gPSBbXTtcclxuICBwcm9jZXNzZWRGaWVsZHM6IGFueVtdID0gW107XHJcbiAgY29sdW1uc186IEZvcm1seUZpZWxkQ29uZmlnW10gPSBbXTtcclxuICBASW5wdXQoKSBsb2FkaW5nID0gZmFsc2U7XHJcbiAgQElucHV0KCkgYWN0aW9uczogQWN0aW9uRGVmPFQ+W10gPSBbXTtcclxuICBASW5wdXQoKSBhY3Rpb25zUG9zaXRpb246ICdzdGFydCcgfCAnZW5kJyA9ICdlbmQnO1xyXG4gIEBJbnB1dCgpIGFjdGlvbnNNb2RlOiAnYnV0dG9ucycgfCAnbWVudScgPSAnYnV0dG9ucyc7XHJcbiAgQElucHV0KCkgZmlyc3QgPSAwO1xyXG4gIEBJbnB1dCgpIHJvd3MgPSAxMDtcclxuICBASW5wdXQoKSB0b3RhbFJlY29yZHMgPSAwO1xyXG4gIEBJbnB1dCgpIHNvcnRGaWVsZD86IHN0cmluZztcclxuICBASW5wdXQoKSBzb3J0T3JkZXI6IDEgfCAtMSA9IDE7XHJcbiAgQElucHV0KCkgZ2xvYmFsRmlsdGVyRmllbGRzOiBzdHJpbmdbXSA9IFtdO1xyXG5cclxuICBAT3V0cHV0KCkgYWN0aW9uID0gbmV3IEV2ZW50RW1pdHRlcjx7IG5hbWU6IHN0cmluZzsgcm93OiBUIH0+KCk7XHJcbiAgQE91dHB1dCgpIHBhZ2VDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPFRhYmxlTGF6eUxvYWRFdmVudD4oKTtcclxuXHJcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1vdXRwdXQtb24tcHJlZml4XHJcbiAgQE91dHB1dCgpIG9uQWRkTmV3ID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XHJcbkBJbnB1dCgpIGFkZEJ1dHRvbkNvbmZpZ3M6IEJ1dHRvbkNvbmZpZ1tdID0gW107XHJcbiAgQElucHV0KCkgc2Nyb2xsSGVpZ2h0ID0gJzQwMHB4JztcclxuXHJcbiAvLyAqKtis2K/ZitivKio6INiq2YXZg9mK2YYg2KfYrtiq2YrYp9ixINin2YTYtdmB2YjZgVxyXG4gIC8qKiDZgdi52ZHZhCDYp9iu2KrZitin2LEg2KfZhNi12YHZitmGIHNpbmdsZS9tdWx0aXBsZSAqL1xyXG4gIEBJbnB1dCgpIHJvd1NlbGVjdGFibGUgPSB0cnVlO1xyXG4gIC8qKiDZitit2KrZgdi4INio2KfZhNi12YEg2KfZhNmF2K3Yr9ivICovXHJcbiAgLy9ASW5wdXQoKSBzZWxlY3Rpb246IFQgfCBUW10gfCBudWxsID0gbnVsbDtcclxuXHJcbiAgLy8g2YfYsNinINiz2YrZg9mI2YYg2YXYsdiq2KjYt9mL2Kcg2KjZgCBbKHNlbGVjdGlvbildINmB2YogcC10YWJsZVxyXG4gIF9zZWxlY3Rpb246IFQgfCBUW10gfCBudWxsID0gbnVsbDtcclxuXHJcbiAgLy/ZhNiq2LrZitmK2LEg2YTZiNmGINi12YEg2YXYudmK2ZHZhlxyXG4gIEBJbnB1dCgpIHJvd1N0eWxlRm4/OiAocm93OiBUKSA9PiBhbnk7XHJcblxyXG4gIC8vIOKchSDZhNiq2LnZitmK2YYg2YPZhNin2LMgQ1NTINij2YggVGFpbHdpbmQg2LnZhNmJINin2YTYtdmBXHJcbiAgQElucHV0KCkgcm93Q2xhc3NGbj86IChyb3c6IFQpID0+IHN0cmluZyB8IHN0cmluZ1tdIHwgU2V0PHN0cmluZz47XHJcblxyXG4gIC8v2KLYrtixINmE2KrYrNmF2YrYryAvINiq2LnYt9mK2YQgY2hlY2tib3gg2KfZhNin2K7YqtmK2KfYsVxyXG4gIEBJbnB1dCgpIGRpc2FibGVSb3dDaGVja2JveEZuPzogKHJvdzogVCkgPT4gYm9vbGVhbjtcclxuXHJcbiAgQElucHV0KClcclxuICBnZXQgc2VsZWN0aW9uKCk6IFQgfCBUW10gfCBudWxsIHtcclxuICAgICAgcmV0dXJuIHRoaXMuX3NlbGVjdGlvbjtcclxuICB9XHJcbiAgc2V0IHNlbGVjdGlvbih2YWw6IFQgfCBUW10gfCBudWxsKSB7XHJcbiAgICAgIHRoaXMuX3NlbGVjdGlvbiA9IHZhbDtcclxuICAgICAgLy8g2YTYpyDYqtmP2LXYr9ixINin2YTYrdiv2Ksg2YfZhtin2Iwg2KjZhCDZgdmKIG9uSW50ZXJuYWxTZWxlY3Rpb25DaGFuZ2Ug2YHZgti3XHJcbiAgfVxyXG4gdHJhY2tCeUlkeChpbmRleDogbnVtYmVyLCBpdGVtOiBhbnkpOiBudW1iZXIge1xyXG4gIHJldHVybiBpbmRleDtcclxuIH1cclxuICAvKiog2YrYtdiv2LEg2KfZhNi12YEg2KfZhNmF2K3Yr9ivINi52YbYryDYp9mE2YbZgtixICovXHJcbiAgQE91dHB1dCgpIHJvd1NlbGVjdCA9IG5ldyBFdmVudEVtaXR0ZXI8VD4oKTtcclxuXHJcbiAgICAgLyoqINmK2LXYr9ixINin2YTYtdmB2YjZgSDYp9mE2YXYrdiv2K/YqSDYudmG2K8g2KfZhNiq2LrZitmK2LEgKNmE2YTYsdio2Lcg2KfZhNir2YbYp9im2YopICovXHJcbiAgQE91dHB1dCgpIHNlbGVjdGlvbkNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8VCB8IFRbXSB8IG51bGw+KCk7XHJcblxyXG5cclxuICAgLyoqINis2K/ZitivOiDYp9mE2KrYrdmD2YUg2KjYuNmH2YjYsSDYp9mE2YAgcGFnaW5hdG9yICovXHJcbiAgQElucHV0KCkgcGFnaW5hdG9yID0gdHJ1ZTtcclxuZm9ybSA9IG5ldyBGb3JtR3JvdXAoe30pO1xyXG5vcHRpb25zOiBGb3JtbHlGb3JtT3B0aW9ucyA9IHt9O1xyXG5cclxuXHJcbiAgLy8gKirYrNiv2YrYryoqOiDZitiq2K3Zg9mFINio2KXYuNmH2KfYsSDYudmF2YjYryDYp9iu2KrZitin2LEg2KfZhNi12YHZiNmBIChjaGVja2JveGVzKVxyXG4gIC8qKiDZitiq2K3Zg9mFINmB2Yog2KXYuNmH2KfYsSDYudmF2YjYryDYp9iu2KrZitin2LEg2KfZhNi12YHZiNmBINin2YTZhdiq2LnYr9iv2Kkg2KjZiNin2LPYt9ipIGNoZWNrYm94ZXMgKi9cclxuICBASW5wdXQoKSBzaG93Um93U2VsZWN0aW9uQ2hlY2tib3ggPSBmYWxzZTtcclxuXHJcblxyXG4gIG9uSW50ZXJuYWxTZWxlY3Rpb25DaGFuZ2UoZXZlbnQ6IFRhYmxlUm93U2VsZWN0RXZlbnQ8VD5cclxuICAgIHwgVGFibGVIZWFkZXJDaGVja2JveFRvZ2dsZUV2ZW50KTogdm9pZCB7XHJcbiAgaWYgKCdkYXRhJyBpbiBldmVudCkge1xyXG4gICAgLy8gUm93IHNlbGVjdC91bnNlbGVjdCAoc2luZ2xlINij2YggbXVsdGlwbGUpXHJcbiAgICBpZiAoQXJyYXkuaXNBcnJheSh0aGlzLl9zZWxlY3Rpb24pKSB7XHJcbiAgICAgIHRoaXMuX3NlbGVjdGlvbiA9IFsuLi50aGlzLl9zZWxlY3Rpb25dOyAvLyDYqtit2K/ZitirINmG2LPYrtipINin2YTZhdi12YHZiNmB2Kkg2LnZhtivINmF2KrYudiv2K9cclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuX3NlbGVjdGlvbiA9IGV2ZW50LmRhdGEgYXMgVDsgLy8g2KfYrtiq2YrYp9ixINmB2LHYr9mKXHJcbiAgICB9XHJcbiAgfSBlbHNlIGlmICgnY2hlY2tlZCcgaW4gZXZlbnQpIHtcclxuICAgIC8vIEhlYWRlciBjaGVja2JveCB0b2dnbGVcclxuICAgIHRoaXMuX3NlbGVjdGlvbiA9IGV2ZW50LmNoZWNrZWQgPyBbLi4udGhpcy5kYXRhXSA6IFtdO1xyXG4gIH1cclxuXHJcbiAgdGhpcy5zZWxlY3Rpb25DaGFuZ2UuZW1pdCh0aGlzLl9zZWxlY3Rpb24pO1xyXG4gIC8vINil2LDYpyDZhdinINi52KfYryDZgdmK2Ycg2KPZiiDYqtit2K/Zitiv2Iwg2KPYtdiv2LEg2K3Yr9irINiu2KfYtSDZhNmE2KrZgdix2YrYulxyXG5pZiAoIXRoaXMuX3NlbGVjdGlvbiB8fCAoQXJyYXkuaXNBcnJheSh0aGlzLl9zZWxlY3Rpb24pICYmIHRoaXMuX3NlbGVjdGlvbi5sZW5ndGggPT09IDApKSB7XHJcbiAgdGhpcy5yb3dTZWxlY3QuZW1pdCh1bmRlZmluZWQpOyAvLyDZitix2LPZhCBudWxsINi52LTYp9mGINmK2K7ZgdmKINin2YTYo9iy2LHYp9ixINio2KfZhNij2KhcclxufVxyXG5cclxufVxyXG5cclxuXHJcblxyXG5jdXN0b21Tb3J0KGV2ZW50OiBTb3J0RXZlbnQpIHtcclxuICBldmVudC5kYXRhPy5zb3J0KChkYXRhMSwgZGF0YTIpID0+IHtcclxuICAgIGNvbnN0IHZhbHVlMSA9IHRoaXMucmVzb2x2ZUZpZWxkRGF0YShkYXRhMSwgZXZlbnQuZmllbGQgPz8gJycpO1xyXG4gICAgY29uc3QgdmFsdWUyID0gdGhpcy5yZXNvbHZlRmllbGREYXRhKGRhdGEyLCBldmVudC5maWVsZCA/PyAnJyk7XHJcblxyXG4gICAgbGV0IHJlc3VsdCA9IDA7XHJcbiAgICBpZiAodmFsdWUxID09IG51bGwgJiYgdmFsdWUyICE9IG51bGwpIHJlc3VsdCA9IC0xO1xyXG4gICAgZWxzZSBpZiAodmFsdWUxICE9IG51bGwgJiYgdmFsdWUyID09IG51bGwpIHJlc3VsdCA9IDE7XHJcbiAgICBlbHNlIGlmICh2YWx1ZTEgPT0gbnVsbCAmJiB2YWx1ZTIgPT0gbnVsbCkgcmVzdWx0ID0gMDtcclxuICAgIGVsc2UgaWYgKHR5cGVvZiB2YWx1ZTEgPT09ICdzdHJpbmcnICYmIHR5cGVvZiB2YWx1ZTIgPT09ICdzdHJpbmcnKVxyXG4gICAgICByZXN1bHQgPSB2YWx1ZTEubG9jYWxlQ29tcGFyZSh2YWx1ZTIpO1xyXG4gICAgZWxzZSByZXN1bHQgPSB2YWx1ZTEgPCB2YWx1ZTIgPyAtMSA6IHZhbHVlMSA+IHZhbHVlMiA/IDEgOiAwO1xyXG5cclxuICAgIHJldHVybiAoZXZlbnQub3JkZXIgPz8gMSkgKiByZXN1bHQ7XHJcbiAgfSk7XHJcbn1cclxucmVzb2x2ZUZpZWxkRGF0YShkYXRhOiBhbnksIGZpZWxkOiBzdHJpbmcpOiBhbnkge1xyXG4gIGlmICghZmllbGQpIHJldHVybiBudWxsO1xyXG4gIGlmIChmaWVsZC5pbmRleE9mKCcuJykgPT09IC0xKSByZXR1cm4gZGF0YVtmaWVsZF07XHJcbiAgcmV0dXJuIGZpZWxkLnNwbGl0KCcuJykucmVkdWNlKChvYmosIHByb3ApID0+IChvYmogPyBvYmpbcHJvcF0gOiBudWxsKSwgZGF0YSk7XHJcbn1cclxuXHJcbi8vIGdldE9yZGVyZWRDb2x1bW5zKCk6IFRhYmxlQ29sdW1uW10ge1xyXG4vLyAgIHJldHVybiBbLi4udGhpcy5jb2x1bW5zLFxyXG4vLyAgICAgLi4uKHRoaXMuc2hvd1Jvd1NlbGVjdGlvbkNoZWNrYm94ID8gW3sgdHlwZTogJ3NlbGVjdGlvbicsIG9yZGVyOiAtMSB9XSA6IFtdKSxcclxuLy8gICAgIHsgdHlwZTogJ29wZXJhdGlvbnMnLCBsYWJlbDogJ09QRVJBVElPTlMnLCBvcmRlcjogOTk5IH1cclxuLy8gICBdLnNvcnQoKGEsIGIpID0+IChhLm9yZGVyID8/IDApIC0gKGIub3JkZXIgPz8gMCkpO1xyXG4vLyB9XHJcblxyXG5nZXQgc29ydGVkQWN0aW9ucygpOiBBY3Rpb25EZWY8VD5bXSB7XHJcbiAgcmV0dXJuIHRoaXMuYWN0aW9uc1xyXG4gICAgLmZpbHRlcihhY3Rpb24gPT5cclxuICAgICAgKGFjdGlvbi52aXNpYmxlICE9PSBmYWxzZSkgJiYgLy8g4pyFINmK2K7ZgdmKINij2Yog2LLYsSBgdmlzaWJsZSA9IGZhbHNlYFxyXG4gICAgICAoXHJcbiAgICAgICAgIWFjdGlvbi5wZXJtaXNzaW9ucz8ubGVuZ3RoIHx8XHJcbiAgICAgICAgYWN0aW9uLnBlcm1pc3Npb25zLmV2ZXJ5KHAgPT4gdGhpcy5wZXJtaXNzaW9uc1NlcnZpY2UuaXNHcmFudGVkKHApKVxyXG4gICAgICApXHJcbiAgICApXHJcbiAgICAuc29ydCgoYSwgYikgPT4gKGEub3JkZXIgPz8gMCkgLSAoYi5vcmRlciA/PyAwKSk7XHJcbn1cclxuXHJcblxyXG5nZXQgc29ydGVkQWN0aW9uczIoKTogQWN0aW9uRGVmPFQ+W10ge1xyXG4gIHJldHVybiB0aGlzLmFjdGlvbnNcclxuICAgIC5maWx0ZXIoYWN0aW9uID0+XHJcbiAgICAgICFhY3Rpb24ucGVybWlzc2lvbnM/Lmxlbmd0aCB8fCAvLyBubyBwZXJtaXNzaW9ucyDihpIgYWxsb3dcclxuICAgICAgYWN0aW9uLnBlcm1pc3Npb25zLmV2ZXJ5KHAgPT4gdGhpcy5wZXJtaXNzaW9uc1NlcnZpY2UuaXNHcmFudGVkKHApKSAvLyBhbGwgZ3JhbnRlZFxyXG4gICAgKVxyXG4gICAgLnNvcnQoKGEsIGIpID0+IChhLm9yZGVyID8/IDApIC0gKGIub3JkZXIgPz8gMCkpO1xyXG59XHJcblxyXG5cclxuIG9uQWN0aW9uKGFjdDogQWN0aW9uRGVmPFQ+LCByb3c6IFQpIHtcclxuICAgIGlmIChhY3QuYWN0aW9uKSB7XHJcbiAgICAgIGFjdC5hY3Rpb24ocm93KTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuYWN0aW9uLmVtaXQoeyBuYW1lOiBhY3QubmFtZSwgcm93IH0pO1xyXG4gICAgfVxyXG4gIH1cclxuLy8gIGNsb25lRmllbGQoZmllbGQ6IGFueSk6IGFueSB7XHJcbi8vICAgaWYgKGZpZWxkID09PSBudWxsIHx8IHR5cGVvZiBmaWVsZCAhPT0gJ29iamVjdCcpIHtcclxuLy8gICAgIHJldHVybiBmaWVsZDtcclxuLy8gICB9XHJcblxyXG4vLyAgICBpZiAoQXJyYXkuaXNBcnJheShmaWVsZCkpIHtcclxuLy8gICAgIC8vIHByZXNlcnZlIGB0aGlzYCBjb250ZXh0XHJcbi8vICAgICByZXR1cm4gZmllbGQubWFwKChpdGVtKSA9PiB0aGlzLmNsb25lRmllbGQoaXRlbSkpO1xyXG4vLyAgIH1cclxuLy8gICBjb25zdCBjbG9uZWQ6IGFueSA9IHt9O1xyXG4vLyAgIGZvciAoY29uc3Qga2V5IG9mIE9iamVjdC5rZXlzKGZpZWxkKSkge1xyXG4vLyAgICAgY2xvbmVkW2tleV0gPSB0aGlzLmNsb25lRmllbGQoZmllbGRba2V5XSk7XHJcbi8vICAgfVxyXG5cclxuLy8gICByZXR1cm4gY2xvbmVkO1xyXG4vLyB9XHJcblxyXG4gLy8gVXNlIGEgbWFwIHRvIHN0b3JlIGZvcm0gZ3JvdXBzIGZvciBlYWNoIHJvdyBhbmQgY29sdW1uXHJcbiAgcHJpdmF0ZSBjZWxsRm9ybXM6IE1hcDxzdHJpbmcsIEZvcm1Hcm91cD4gPSBuZXcgTWFwKCk7XHJcbiAgZm9ybXM6IEZvcm1Hcm91cCA9IG5ldyBGb3JtR3JvdXAoe30pOyAvLyBBIG1haW4gZm9ybSBmb3IgdGhlIHRhYmxlXHJcblxyXG5cclxuICAvLyBSZWZhY3RvcmVkIGdldEZvcm0gdG8gcmV0dXJuIGFuIGV4aXN0aW5nIGZvcm0gaW5zdGFuY2VcclxuICBnZXRGb3JtKHJvd0luZGV4OiBudW1iZXIsIGNvbEluZGV4OiBudW1iZXIpOiBGb3JtR3JvdXAge1xyXG4gICAgY29uc3Qga2V5ID0gYCR7cm93SW5kZXh9XyR7Y29sSW5kZXh9YDtcclxuICAgIGxldCBmb3JtID0gdGhpcy5jZWxsRm9ybXMuZ2V0KGtleSk7XHJcblxyXG4gICAgaWYgKCFmb3JtKSB7XHJcbiAgICAgIGZvcm0gPSBuZXcgRm9ybUdyb3VwKHt9KTtcclxuICAgICAgdGhpcy5jZWxsRm9ybXMuc2V0KGtleSwgZm9ybSk7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gZm9ybTtcclxuICB9XHJcbnRyYWNrQnlGbihpbmRleDogbnVtYmVyLCBpdGVtOiBhbnkpIHtcclxuICByZXR1cm4gaW5kZXg7IC8vIG9yIGEgdW5pcXVlIGlkZW50aWZpZXIgZnJvbSB5b3VyIGRhdGFcclxufVxyXG4gLy8gVGhpcyBtZXRob2QgaXMgY2FsbGVkIHdoZW5ldmVyIGFueSBASW5wdXQoKSBwcm9wZXJ0eSBjaGFuZ2VzLlxyXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcclxuICAgIC8vIENoZWNrIGlmIHRoZSAnZGF0YScgcHJvcGVydHkgaGFzIGNoYW5nZWQuXHJcbiAgICBpZiAoY2hhbmdlc1snZGF0YSddKSB7XHJcbiAgICAgIGNvbnN0IGN1cnJlbnREYXRhID0gY2hhbmdlc1snZGF0YSddLmN1cnJlbnRWYWx1ZTtcclxuICAgICAgY29uc3QgcHJldmlvdXNEYXRhID0gY2hhbmdlc1snZGF0YSddLnByZXZpb3VzVmFsdWU7XHJcblxyXG5cclxuICAgICAgLy8gRm9yIGV4YW1wbGUsIHlvdSBjYW4gY2FsbCBhIG1ldGhvZCB0byByZS1yZW5kZXIgb3IgcHJvY2VzcyB0aGUgZGF0YS5cclxuICAgICAgdGhpcy5yZWZyZXNoRGF0YSgpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiBvbkxhenlMb2FkKGV2ZW50OiBUYWJsZUxhenlMb2FkRXZlbnQpOiB2b2lkIHtcclxuICAgIC8vIFJlaW5pdGlhbGl6ZSBmb3JtcyBvbiBuZXcgZGF0YSBsb2FkXHJcbiAgICAvLyB0aGlzLmNlbGxGb3Jtcy5jbGVhcigpO1xyXG4gIHRoaXMucmVmcmVzaERhdGEoKTtcclxuICAgIHRoaXMucGFnZUNoYW5nZS5lbWl0KGV2ZW50KTtcclxuICB9XHJcblxyXG5cclxuICBhcHBseUZpbHRlcihmaWx0ZXJzOiBhbnkpOiB2b2lkIHtcclxuICAgIC8vIGlmIChmaWVsZCkge1xyXG4gICAgLy8gICB0aGlzLmR0LmZpbHRlcihnbG9iYWwsIGZpZWxkLCAnY29udGFpbnMnKTtcclxuICAgIC8vIH0gZWxzZSB7XHJcbiAgICAvLyAgIHRoaXMuZHQuZmlsdGVyR2xvYmFsKGdsb2JhbCwgJ2NvbnRhaW5zJyk7XHJcbiAgICAvLyB9XHJcblxyXG4gIH1cclxuICByZWZyZXNoRGF0YSgpe1xyXG4gICAgIHRoaXMuZGF0YV8gPSB0aGlzLmRhdGEubWFwKHJvd0RhdGEgPT4ge1xyXG4gICAgLy8gQ3JlYXRlIGEgbmV3IGFycmF5IG9mIGZpZWxkcyBmb3IgZWFjaCByb3dcclxuICAgIGNvbnN0IHJvd0ZpZWxkcyA9IHRoaXMuY29sdW1ucy5tYXAoY29sID0+IHtcclxuICAgICAgcmV0dXJuIGNsb25lRGVlcChjb2wpO1xyXG4gICAgfSk7XHJcbiAgICAvLyBBdHRhY2ggdGhlIHVuaXF1ZSBmaWVsZHMgdG8gdGhlIHJvdyBkYXRhIG9iamVjdFxyXG4gICAgcmV0dXJuIHtcclxuICAgICAgLi4ucm93RGF0YSxcclxuICAgICAgcm93RmllbGRzOiByb3dGaWVsZHNcclxuICAgIH07XHJcbiAgfSk7XHJcbiAgfVxyXG5cclxuICBnZXRNZW51SXRlbXMocm93OiBUKTogTWVudUl0ZW1bXSB7XHJcbiAgICByZXR1cm4gdGhpcy5zb3J0ZWRBY3Rpb25zLm1hcChhY3QgPT4gKHtcclxuICAgICAgbGFiZWw6IHRoaXMudHJhbnNsYXRlU2VydmljZS5pbnN0YW50KCBhY3QubGFiZWwgPz8nJykgLFxyXG4gICAgICBpY29uOiBhY3QuaWNvbixcclxuICAgICAgY29tbWFuZDogKCkgPT4gdGhpcy5vbkFjdGlvbihhY3QsIHJvdyApLFxyXG4gICAgICBzdHlsZUNsYXNzOiBhY3Quc3R5bGVDbGFzc1xyXG4gICAgfSkpO1xyXG4gIH1cclxuXHJcbiAvLyAqKtis2K/ZitivKio6INmK2KrZhSDYpdi32YTYp9mCINmH2LDYpyDYudmG2K8g2KfYrtiq2YrYp9ixINi12YFcclxuICBvblJvd1NlbGVjdChldmVudDogVGFibGVSb3dTZWxlY3RFdmVudDxUPikge1xyXG4gICAgLy8gZGVidWdnZXJcclxuICAgIGlmIChldmVudC5kYXRhKSB7XHJcbiAgICAgIHRoaXMucm93U2VsZWN0LmVtaXQoZXZlbnQuZGF0YSBhcyBUKTtcclxuICAgIH1cclxuICB9XHJcblxyXG59XHJcbiIsIjxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtY29sIGgtc2NyZWVuXCIgc3R5bGU9XCIgICAgaGVpZ2h0OiA2MHZoO1wiPlxyXG4gIDxkaXYgY2xhc3M9XCJmbGV4LTEgYm9yZGVyIHJvdW5kZWQtbGcgb3ZlcmZsb3ctaGlkZGVuIGZsZXggZmxleC1jb2xcIj5cclxuXHJcbiAgICA8IS0tIFByaW1lTkcgVGFibGUgLS0+XHJcbiAgICA8cC10YWJsZSAjZHRcclxuICAgICAgW3ZhbHVlXT1cImRhdGFfXCJcclxuICAgICAgW2NvbHVtbnNdPVwiY29sdW1uc1wiXHJcbiAgICAgIFtsYXp5XT1cInRydWVcIlxyXG4gICAgICBbcGFnaW5hdG9yXT1cImZhbHNlXCJcclxuICAgICAgW3Jvd3NdPVwicm93c1wiXHJcbiAgICAgIFtmaXJzdF09XCJmaXJzdFwiXHJcbiAgICAgIFt0b3RhbFJlY29yZHNdPVwidG90YWxSZWNvcmRzXCJcclxuICAgICAgKG9uTGF6eUxvYWQpPVwib25MYXp5TG9hZCgkZXZlbnQpXCJcclxuICAgICAgW2dsb2JhbEZpbHRlckZpZWxkc109XCJnbG9iYWxGaWx0ZXJGaWVsZHNcIlxyXG4gICAgICBbbG9hZGluZ109XCJsb2FkaW5nXCJcclxuICAgICAgW3Njcm9sbGFibGVdPVwidHJ1ZVwiXHJcbiAgICAgIHNjcm9sbEhlaWdodD1cImZsZXhcIlxyXG4gICAgICBbc2VsZWN0aW9uTW9kZV09XCJzaG93Um93U2VsZWN0aW9uQ2hlY2tib3ggPyAnbXVsdGlwbGUnIDogKHJvd1NlbGVjdGFibGUgPyAnc2luZ2xlJyA6IHVuZGVmaW5lZClcIlxyXG4gICAgICBbKHNlbGVjdGlvbildPVwiX3NlbGVjdGlvblwiXHJcbiAgICAgIChvblJvd1NlbGVjdCk9XCJvbkludGVybmFsU2VsZWN0aW9uQ2hhbmdlKCRldmVudClcIlxyXG4gICAgICAob25Sb3dVbnNlbGVjdCk9XCJvbkludGVybmFsU2VsZWN0aW9uQ2hhbmdlKCRldmVudClcIlxyXG4gICAgICAob25IZWFkZXJDaGVja2JveFRvZ2dsZSk9XCJvbkludGVybmFsU2VsZWN0aW9uQ2hhbmdlKCRldmVudClcIlxyXG4gICAgICB0YWJsZUxheW91dD1cImZpeGVkXCJcclxuICAgICAgW2N1c3RvbVNvcnRdPVwiZmFsc2VcIlxyXG4gICAgICBjbGFzcz1cImZsZXgtMSBvdmVyZmxvdy1hdXRvXCJcclxuICAgID5cclxuXHJcbiAgICAgIDwhLS0gRW1wdHkgbWVzc2FnZSAtLT5cclxuICAgICAgPG5nLXRlbXBsYXRlIHBUZW1wbGF0ZT1cImVtcHR5bWVzc2FnZVwiPlxyXG4gICAgICAgIDx0cj5cclxuICAgICAgICAgIDx0ZCBjb2xzcGFuPVwiMTBcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZsZXggZmxleC1jb2wgaXRlbXMtY2VudGVyIGp1c3RpZnktY2VudGVyIHB5LTEwIHRleHQtY2VudGVyIHctZnVsbFwiPlxyXG4gICAgICAgICAgICAgIDxpIGNsYXNzPVwicGkgcGktaW5ib3ggdGV4dC00eGwgdGV4dC1ncmF5LTQwMCBtYi00XCI+PC9pPlxyXG4gICAgICAgICAgICAgIDxwIGNsYXNzPVwidGV4dC1ncmF5LTUwMCBtYi00XCI+e3sgJ05PX0RBVEFfRk9VTkQnIHwgdHJhbnNsYXRlIH19PC9wPlxyXG5cclxuICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBidG4gb2YgYWRkQnV0dG9uQ29uZmlnczsgdHJhY2tCeTogdHJhY2tCeUlkeFwiPlxyXG4gICAgICAgICAgICAgICAgPGxpYi1nZW5lcmljLWJ1dHRvblxyXG4gICAgICAgICAgICAgICAgICAqbmdJZj1cIiFidG4udmlzaWJsZSB8fCBidG4udmlzaWJsZSA9PT0gdHJ1ZVwiXHJcbiAgICAgICAgICAgICAgICAgIFtpY29uXT1cImJ0bi5pY29uXCJcclxuICAgICAgICAgICAgICAgICAgW2xhYmVsXT1cImJ0bi5sYWJlbCB8IHRyYW5zbGF0ZVwiXHJcbiAgICAgICAgICAgICAgICAgIFt2YXJpYW50XT1cImJ0bi52YXJpYW50XCJcclxuICAgICAgICAgICAgICAgICAgW3NpemVdPVwiYnRuLnNpemVcIlxyXG4gICAgICAgICAgICAgICAgICBbbW9kZWxdPVwiYnRuLnNwbGl0QWN0aW9uc1wiXHJcbiAgICAgICAgICAgICAgICAgIFtwZXJtaXNzaW9uXT1cImJ0bi5wZXJtaXNzaW9uXCJcclxuICAgICAgICAgICAgICAgICAgKGNsaWNrZWQpPVwib25BZGROZXcuZW1pdCgpXCJcclxuICAgICAgICAgICAgICAgICAgY2xhc3M9XCJtYi0yXCJcclxuICAgICAgICAgICAgICAgID48L2xpYi1nZW5lcmljLWJ1dHRvbj5cclxuICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L3RkPlxyXG4gICAgICAgIDwvdHI+XHJcbiAgICAgIDwvbmctdGVtcGxhdGU+XHJcblxyXG4gICAgICA8IS0tIFRhYmxlIGhlYWRlciAtLT5cclxuICAgICAgPG5nLXRlbXBsYXRlIHBUZW1wbGF0ZT1cImhlYWRlclwiIGxldC1jb2x1bW5zPlxyXG4gICAgICAgIDx0ciBjbGFzcz1cImJnLWdyYXktMjAwIHN0aWNreSB0b3AtMCB6LTEwXCI+XHJcbiAgICAgICAgICA8dGggKm5nSWY9XCJzaG93Um93U2VsZWN0aW9uQ2hlY2tib3hcIiBzdHlsZT1cIndpZHRoOiAycmVtXCI+XHJcbiAgICAgICAgICAgIDxwLXRhYmxlSGVhZGVyQ2hlY2tib3g+PC9wLXRhYmxlSGVhZGVyQ2hlY2tib3g+XHJcbiAgICAgICAgICA8L3RoPlxyXG4gPHRoICpuZ0lmPVwiYWN0aW9ucy5sZW5ndGggPiAwICYmIGFjdGlvbnNQb3NpdGlvbiA9PT0gJ3N0YXJ0J1wiIGNsYXNzPVwicHgtNCBweS0yIHRleHQtc20gZm9udC1tZWRpdW0gdGV4dC1jZW50ZXIgc3RpY2t5IHJpZ2h0LTBcIj5cclxuICAgICAgICAgICAge3sgJyonIHwgdHJhbnNsYXRlIH19XHJcbiAgICAgICAgICA8L3RoPlxyXG4gICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgY29sIG9mIGNvbHVtbnM7IHRyYWNrQnk6IHRyYWNrQnlGblwiPlxyXG4gICAgICAgICAgICA8dGhcclxuICAgICAgICAgICAgICBbcFNvcnRhYmxlQ29sdW1uXT1cImNvbC5wcm9wcy5lbnRpdHlLZXkgfHwgY29sLmtleVwiXHJcbiAgICAgICAgICAgICAgY2xhc3M9XCJweC00IHB5LTIgdGV4dC1zbSBmb250LW1lZGl1bSB0ZXh0LWNlbnRlclwiXHJcbiAgICAgICAgICAgICAgW3N0eWxlLm1pbi13aWR0aF09XCJjb2wucHJvcHM/LnRhYmxlPy5wcm9wcz8ud2lkdGggfHwgJzE1MHB4J1wiXHJcbiAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICB7eyBjb2wucHJvcHM/LmxhYmVsIHwgdHJhbnNsYXRlIH19XHJcbiAgICAgICAgICAgICAgPHAtc29ydEljb24gW2ZpZWxkXT1cImNvbC5wcm9wcy5lbnRpdHlLZXkgfHwgY29sLmtleVwiPjwvcC1zb3J0SWNvbj5cclxuICAgICAgICAgICAgPC90aD5cclxuICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG5cclxuICAgICAgICAgIDx0aCAqbmdJZj1cImFjdGlvbnMubGVuZ3RoID4gMCAmJiBhY3Rpb25zUG9zaXRpb24gPT09ICdlbmQnXCIgY2xhc3M9XCJweC00IHB5LTIgdGV4dC1zbSBmb250LW1lZGl1bSB0ZXh0LWNlbnRlciBzdGlja3kgbGVmdC0wXCI+XHJcbiAgICAgICAgICAgIHt7ICcqJyB8IHRyYW5zbGF0ZSB9fVxyXG4gICAgICAgICAgPC90aD5cclxuICAgICAgICA8L3RyPlxyXG4gICAgICA8L25nLXRlbXBsYXRlPlxyXG5cclxuICAgICAgPCEtLSBUYWJsZSBib2R5IC0tPlxyXG4gICAgICA8bmctdGVtcGxhdGUgcFRlbXBsYXRlPVwiYm9keVwiIGxldC1yb3dEYXRhIGxldC1jb2x1bW5zPVwiY29sdW1uc1wiIGxldC1pPVwicm93SW5kZXhcIj5cclxuICAgICAgICA8dHIgY2xhc3M9XCJldmVuOmJnLWdyYXktNTAgaG92ZXI6YmctZ3JheS0xMDAgY3Vyc29yLXBvaW50ZXJcIlxyXG4gICAgICAgIChjbGljayk9XCJyb3dTZWxlY3QuZW1pdChyb3dEYXRhKVwiXHJcbiAgICAgICAgW25nQ2xhc3NdPVwicm93Q2xhc3NGbiA/IHJvd0NsYXNzRm4ocm93RGF0YSkgOiBudWxsXCJcclxuICAgICAgICBbbmdTdHlsZV09XCJyb3dTdHlsZUZuID8gcm93U3R5bGVGbihyb3dEYXRhKSA6IG51bGxcIj5cclxuICAgICAgICAgIDx0ZCAqbmdJZj1cInNob3dSb3dTZWxlY3Rpb25DaGVja2JveFwiIHN0eWxlPVwid2lkdGg6IDJyZW1cIj5cclxuICAgICAgICAgICAgPHAtdGFibGVDaGVja2JveFxyXG4gICAgICAgICAgICBbdmFsdWVdPVwicm93RGF0YVwiXHJcbiAgICAgICAgICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlUm93Q2hlY2tib3hGbiA/IGRpc2FibGVSb3dDaGVja2JveEZuKHJvd0RhdGEpIDogZmFsc2VcIlxyXG4gICAgICAgICAgICA+PC9wLXRhYmxlQ2hlY2tib3g+XHJcbiAgICAgICAgICA8L3RkPlxyXG4gICAgICAgICAgPHRkICpuZ0lmPVwiYWN0aW9ucy5sZW5ndGggPiAwICYmIGFjdGlvbnNQb3NpdGlvbiA9PT0gJ3N0YXJ0J1wiIGNsYXNzPVwiYm9yZGVyLXQgYm9yZGVyLWdyYXktMjAwIHB4LTQgcHktMiB0ZXh0LWNlbnRlciBzdGlja3kgcmlnaHQtMCBiZy1ncmF5LTUwXCI+XHJcbiAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lclxyXG4gICAgICAgICpuZ1RlbXBsYXRlT3V0bGV0PVwiYWN0aW9uc1RlbXBsYXRlOyBjb250ZXh0OiB7JGltcGxpY2l0OiByb3dEYXRhfVwiPlxyXG4gICAgPC9uZy1jb250YWluZXI+XHJcblxyXG4gICAgICAgICAgPC90ZD5cclxuXHJcbiAgICAgICAgICA8dGRcclxuICAgICAgICAgICAgKm5nRm9yPVwibGV0IGNvbCBvZiByb3dEYXRhLnJvd0ZpZWxkczsgbGV0IGNvbEluZGV4ID0gaW5kZXg7IHRyYWNrQnk6IHRyYWNrQnlGblwiXHJcbiAgICAgICAgICAgIGNsYXNzPVwiYm9yZGVyLXQgYm9yZGVyLWdyYXktMjAwIHB4LTQgcHktMiB0ZXh0LWNlbnRlciB0ZXh0LXNtIHRleHQtZ3JheS03MDBcIlxyXG4gICAgICAgICAgICBbc3R5bGUud2lkdGhdPVwiY29sLnByb3BzPy50YWJsZT8ucHJvcHM/LndpZHRoXCJcclxuICAgICAgICAgID5cclxuICAgICAgICAgICAgPGZvcm1seS1mb3JtXHJcbiAgICAgICAgICAgICAgW21vZGVsXT1cInJvd0RhdGFcIlxyXG4gICAgICAgICAgICAgIFtmb3JtXT1cImdldEZvcm0oaSwgY29sSW5kZXgpXCJcclxuICAgICAgICAgICAgICBbZmllbGRzXT1cIltjb2xdXCJcclxuICAgICAgICAgICAgICBbb3B0aW9uc109XCJvcHRpb25zXCJcclxuICAgICAgICAgICAgPjwvZm9ybWx5LWZvcm0+XHJcbiAgICAgICAgICA8L3RkPlxyXG5cclxuICAgICAgICAgIDx0ZCAqbmdJZj1cImFjdGlvbnMubGVuZ3RoID4gMCAmJiBhY3Rpb25zUG9zaXRpb24gPT09ICdlbmQnXCIgY2xhc3M9XCJib3JkZXItdCBib3JkZXItZ3JheS0yMDAgcHgtNCBweS0yIHRleHQtY2VudGVyIHN0aWNreSBsZWZ0LTBcIj5cclxuICAgICAgICAgICAgIDxuZy1jb250YWluZXJcclxuICAgICAgICAqbmdUZW1wbGF0ZU91dGxldD1cImFjdGlvbnNUZW1wbGF0ZTsgY29udGV4dDogeyRpbXBsaWNpdDogcm93RGF0YX1cIj5cclxuICAgIDwvbmctY29udGFpbmVyPlxyXG5cclxuICAgICAgICAgIDwvdGQ+XHJcbiAgICAgICAgPC90cj5cclxuXHJcbiAgICAgIDwvbmctdGVtcGxhdGU+XHJcblxyXG5cclxuICAgIDwvcC10YWJsZT5cclxuICA8L2Rpdj5cclxuPC9kaXY+XHJcblxyXG48bmctdGVtcGxhdGUgI2FjdGlvbnNUZW1wbGF0ZSBsZXQtcm93RGF0YT5cclxuICAgIDxuZy1jb250YWluZXIgW25nU3dpdGNoXT1cImFjdGlvbnNNb2RlXCI+XHJcblxyXG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nU3dpdGNoQ2FzZT1cIididXR0b25zJ1wiPlxyXG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBhY3Qgb2Ygc29ydGVkQWN0aW9uc1wiPlxyXG4gICAgICAgICAgICAgICAgPGJ1dHRvblxyXG4gICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiYWN0Lmljb24gfHwgYWN0LmxhYmVsXCJcclxuICAgICAgICAgICAgICAgICAgICBwQnV0dG9uXHJcbiAgICAgICAgICAgICAgICAgICAgW2ljb25dPVwiYWN0Lmljb24gfHwgJydcIlxyXG4gICAgICAgICAgICAgICAgICAgIFtsYWJlbF09XCIoYWN0LmxhYmVsID8/ICcnKSB8IHRyYW5zbGF0ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgW2NsYXNzXT1cImFjdC5zdHlsZUNsYXNzIHx8ICcnXCJcclxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInAtYnV0dG9uLXNtIG14LTFcIlxyXG4gICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJvbkFjdGlvbihhY3QsIHJvd0RhdGEpXCIgPjwvYnV0dG9uPlxyXG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuXHJcbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hDYXNlPVwiJ21lbnUnXCI+XHJcbiAgICAgICAgICA8YXBwLWFjdGlvbi1tZW51IFtpdGVtc109XCJnZXRNZW51SXRlbXMocm93RGF0YSkgfHwgW11cIj48L2FwcC1hY3Rpb24tbWVudT5cclxuICAgICAgICAgICAgPCEtLSA8cC1tZW51ICNtZW51IFttb2RlbF09XCJnZXRNZW51SXRlbXMocm93RGF0YSlcIiBbcG9wdXBdPVwidHJ1ZVwiIGFwcGVuZFRvPVwiYm9keVwiPjwvcC1tZW51PlxyXG4gICAgICAgICAgICA8cC1idXR0b25cclxuICAgICAgICAgICAgICAgIG91dGxpbmVkXHJcbiAgICAgICAgICAgICAgICBpY29uPVwicGkgcGktZWxsaXBzaXMtdlwiXHJcbiAgICAgICAgICAgICAgICBjbGFzcz1cInAtYnV0dG9uLXRleHQgcC1idXR0b24tc21cIlxyXG4gICAgICAgICAgICAgICAgKG9uQ2xpY2spPVwibWVudS50b2dnbGUoJGV2ZW50KVwiXHJcbiAgICAgICAgICAgID48L3AtYnV0dG9uPiAtLT5cclxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuXHJcbiAgICA8L25nLWNvbnRhaW5lcj5cclxuPC9uZy10ZW1wbGF0ZT5cclxuXHJcbiJdfQ==","/**\n * Generated bundle index. Do not edit.\n */\nexport * from './index';\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWxpdGUuZnJhbWV3b3JrLW5nLnVpLmNvcmUtZ2VuZXJpYy10YWJsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYnMvbmcudWkuY29yZS9nZW5lcmljLXRhYmxlL3NyYy9lbGl0ZS5mcmFtZXdvcmstbmcudWkuY29yZS1nZW5lcmljLXRhYmxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsY0FBYyxTQUFTLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEdlbmVyYXRlZCBidW5kbGUgaW5kZXguIERvIG5vdCBlZGl0LlxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vaW5kZXgnO1xuIl19"],"names":["i2"],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@elite.framework/ng.ui.core",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.88",
|
|
4
4
|
"peerDependencies": {
|
|
5
5
|
"@angular/common": "^20.1.0",
|
|
6
6
|
"@angular/core": "^20.1.0"
|
|
@@ -24,14 +24,14 @@
|
|
|
24
24
|
"types": "./base-crud/index.d.ts",
|
|
25
25
|
"default": "./fesm2022/elite.framework-ng.ui.core-base-crud.mjs"
|
|
26
26
|
},
|
|
27
|
-
"./breadcrumb": {
|
|
28
|
-
"types": "./breadcrumb/index.d.ts",
|
|
29
|
-
"default": "./fesm2022/elite.framework-ng.ui.core-breadcrumb.mjs"
|
|
30
|
-
},
|
|
31
27
|
"./checkbox": {
|
|
32
28
|
"types": "./checkbox/index.d.ts",
|
|
33
29
|
"default": "./fesm2022/elite.framework-ng.ui.core-checkbox.mjs"
|
|
34
30
|
},
|
|
31
|
+
"./breadcrumb": {
|
|
32
|
+
"types": "./breadcrumb/index.d.ts",
|
|
33
|
+
"default": "./fesm2022/elite.framework-ng.ui.core-breadcrumb.mjs"
|
|
34
|
+
},
|
|
35
35
|
"./collapsible": {
|
|
36
36
|
"types": "./collapsible/index.d.ts",
|
|
37
37
|
"default": "./fesm2022/elite.framework-ng.ui.core-collapsible.mjs"
|
|
@@ -80,14 +80,14 @@
|
|
|
80
80
|
"types": "./formly-avatar-image/index.d.ts",
|
|
81
81
|
"default": "./fesm2022/elite.framework-ng.ui.core-formly-avatar-image.mjs"
|
|
82
82
|
},
|
|
83
|
-
"./formly-avatar-label": {
|
|
84
|
-
"types": "./formly-avatar-label/index.d.ts",
|
|
85
|
-
"default": "./fesm2022/elite.framework-ng.ui.core-formly-avatar-label.mjs"
|
|
86
|
-
},
|
|
87
83
|
"./formly-button": {
|
|
88
84
|
"types": "./formly-button/index.d.ts",
|
|
89
85
|
"default": "./fesm2022/elite.framework-ng.ui.core-formly-button.mjs"
|
|
90
86
|
},
|
|
87
|
+
"./formly-avatar-label": {
|
|
88
|
+
"types": "./formly-avatar-label/index.d.ts",
|
|
89
|
+
"default": "./fesm2022/elite.framework-ng.ui.core-formly-avatar-label.mjs"
|
|
90
|
+
},
|
|
91
91
|
"./formly-button-selector": {
|
|
92
92
|
"types": "./formly-button-selector/index.d.ts",
|
|
93
93
|
"default": "./fesm2022/elite.framework-ng.ui.core-formly-button-selector.mjs"
|
|
@@ -120,14 +120,14 @@
|
|
|
120
120
|
"types": "./generic-autocomplete/index.d.ts",
|
|
121
121
|
"default": "./fesm2022/elite.framework-ng.ui.core-generic-autocomplete.mjs"
|
|
122
122
|
},
|
|
123
|
-
"./generic-card": {
|
|
124
|
-
"types": "./generic-card/index.d.ts",
|
|
125
|
-
"default": "./fesm2022/elite.framework-ng.ui.core-generic-card.mjs"
|
|
126
|
-
},
|
|
127
123
|
"./generic-button": {
|
|
128
124
|
"types": "./generic-button/index.d.ts",
|
|
129
125
|
"default": "./fesm2022/elite.framework-ng.ui.core-generic-button.mjs"
|
|
130
126
|
},
|
|
127
|
+
"./generic-card": {
|
|
128
|
+
"types": "./generic-card/index.d.ts",
|
|
129
|
+
"default": "./fesm2022/elite.framework-ng.ui.core-generic-card.mjs"
|
|
130
|
+
},
|
|
131
131
|
"./generic-crud-table": {
|
|
132
132
|
"types": "./generic-crud-table/index.d.ts",
|
|
133
133
|
"default": "./fesm2022/elite.framework-ng.ui.core-generic-crud-table.mjs"
|
|
@@ -200,14 +200,14 @@
|
|
|
200
200
|
"types": "./odata-query-builder/index.d.ts",
|
|
201
201
|
"default": "./fesm2022/elite.framework-ng.ui.core-odata-query-builder.mjs"
|
|
202
202
|
},
|
|
203
|
-
"./radio": {
|
|
204
|
-
"types": "./radio/index.d.ts",
|
|
205
|
-
"default": "./fesm2022/elite.framework-ng.ui.core-radio.mjs"
|
|
206
|
-
},
|
|
207
203
|
"./repeat": {
|
|
208
204
|
"types": "./repeat/index.d.ts",
|
|
209
205
|
"default": "./fesm2022/elite.framework-ng.ui.core-repeat.mjs"
|
|
210
206
|
},
|
|
207
|
+
"./radio": {
|
|
208
|
+
"types": "./radio/index.d.ts",
|
|
209
|
+
"default": "./fesm2022/elite.framework-ng.ui.core-radio.mjs"
|
|
210
|
+
},
|
|
211
211
|
"./select": {
|
|
212
212
|
"types": "./select/index.d.ts",
|
|
213
213
|
"default": "./fesm2022/elite.framework-ng.ui.core-select.mjs"
|