@elite.framework/ng.ui.core 1.0.49 → 1.0.50

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.
@@ -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/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 { Component, Input, Output, EventEmitter, ViewChild } 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 } from '@ngx-translate/core';\nimport { FormlyField, FormlyForm } from '@ngx-formly/core';\nimport { FormGroup } from '@angular/forms';\nimport { cloneDeep } from 'lodash';\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 \"primeng/menu\";\nimport * as i6 from \"@ngx-translate/core\";\nexport class GenericTable {\n dt;\n data = [];\n data_ = [];\n columns = [];\n processedFields = [];\n columns_ = [];\n loading = false;\n actions = [];\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 scrollHeight = '400px';\n // **جديد**: تمكين اختيار الصفوف\n /** فعّل اختيار الصفين single/multiple */\n rowSelectable = true;\n showAddButton = true;\n /** يحتفظ بالصف المحدد */\n //@Input() selection: T | T[] | null = null;\n // هذا سيكون مرتبطًا بـ [(selection)] في p-table\n _selection = null;\n get selection() {\n return this._selection;\n }\n set selection(val) {\n this._selection = val;\n // لا تُصدر الحدث هنا، بل في onInternalSelectionChange فقط\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 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 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.actions.map(act => ({\n label: 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: \"17.0.0\", version: \"20.1.8\", type: GenericTable, isStandalone: true, selector: \"lib-generic-table\", inputs: { data: \"data\", columns: \"columns\", loading: \"loading\", actions: \"actions\", actionsMode: \"actionsMode\", first: \"first\", rows: \"rows\", totalRecords: \"totalRecords\", sortField: \"sortField\", sortOrder: \"sortOrder\", globalFilterFields: \"globalFilterFields\", scrollHeight: \"scrollHeight\", rowSelectable: \"rowSelectable\", showAddButton: \"showAddButton\", 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: \"\\r\\n<div class=\\\"flex-1 last:[&>td]:border-0 rounded-lg border border-surface w-full overflow-auto\\\">\\r\\n <p-table #dt\\r\\n [value]=\\\"data_\\\"\\r\\n [columns]=\\\"columns\\\"\\r\\n [lazy]=\\\"true\\\"\\r\\n [paginator]=\\\"paginator\\\"\\r\\n [rows]=\\\"rows\\\"\\r\\n [first]=\\\"first\\\"\\r\\n [totalRecords]=\\\"totalRecords\\\"\\r\\n [sortField]=\\\"sortField\\\"\\r\\n [sortOrder]=\\\"sortOrder\\\" (onLazyLoad)=\\\"onLazyLoad($event)\\\"\\r\\n [globalFilterFields]=\\\"globalFilterFields\\\"\\r\\n [loading]=\\\"loading\\\"\\r\\n [scrollable]=\\\"true\\\"\\r\\n [scrollHeight]=\\\"scrollHeight\\\"\\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 (sortFunction)=\\\"customSort($event)\\\"\\r\\n >\\r\\n\\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 style=\\\"font-size: 2.5rem;\\\" 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 @if (showAddButton) {\\r\\n\\r\\n\\r\\n <button\\r\\n pButton\\r\\n type=\\\"button\\\"\\r\\n severity=\\\"secondary\\\"\\r\\n icon=\\\"pi pi-plus\\\"\\r\\n label=\\\"{{ 'ADD_NEW' | translate }}\\\"\\r\\n class=\\\"p-button-rounded\\\"\\r\\n (click)=\\\"onAddNew.emit()\\\"\\r\\n ></button>\\r\\n }\\r\\n </div>\\r\\n </td>\\r\\n </tr>\\r\\n\\r\\n </ng-template>\\r\\n <!-- <ng-template pTemplate=\\\"emptymessage\\\">\\r\\n <div class=\\\"flex flex-col items-center justify-center py-20 w-full\\\">\\r\\n <i class=\\\"pi pi-users text-6xl text-gray-400 mb-6\\\"></i>\\r\\n <button\\r\\n pButton\\r\\n type=\\\"button\\\"\\r\\n label=\\\"\\u0625\\u0636\\u0627\\u0641\\u0629 \\u0646\\u0648\\u0639 \\u062C\\u062F\\u064A\\u062F\\\"\\r\\n icon=\\\"pi pi-plus\\\"\\r\\n iconPos=\\\"right\\\"\\r\\n class=\\\"p-button-rounded p-button-outlined p-button-secondary text-sm\\\"\\r\\n (click)=\\\"onAddNew()\\\"\\r\\n ></button>\\r\\n </div>\\r\\n</ng-template> -->\\r\\n\\r\\n <ng-template pTemplate=\\\"header\\\" let-columns>\\r\\n <tr>\\r\\n <th *ngIf=\\\"showRowSelectionCheckbox\\\" style=\\\"width: 2rem\\\">\\r\\n <p-tableHeaderCheckbox></p-tableHeaderCheckbox>\\r\\n </th>\\r\\n <!-- <th style=\\\"width: 1rem\\\">\\r\\n <p-tableHeaderCheckbox />\\r\\n </th> -->\\r\\n\\r\\n <ng-container *ngFor=\\\"let col of columns\\\" >\\r\\n <th *ngIf=\\\"col.props?.table?.props?.width; else templateName\\\" [pSortableColumn]=\\\"col.key\\\"\\r\\n class=\\\"px-4 py-2 text-sm font-medium text-white text-center\\\"\\r\\n [style.min-width]=\\\"col.props?.table?.props?.width\\\">\\r\\n {{ col.props?.label | translate }}\\r\\n <p-sortIcon [field]=\\\"col.key\\\"></p-sortIcon>\\r\\n </th>\\r\\n\\r\\n <ng-template #templateName>\\r\\n <th style=\\\"min-width: 150px;\\\" class=\\\"px-4 py-2 text-sm font-medium text-white text-center\\\">\\r\\n {{ col.props?.label | translate }}\\r\\n <p-sortIcon [field]=\\\"col.key\\\"></p-sortIcon>\\r\\n </th>\\r\\n </ng-template>\\r\\n</ng-container>\\r\\n\\r\\n\\r\\n <th class=\\\"px-4 py-2 text-sm font-medium text-white text-center\\\"> {{ 'OPERATIONS' | translate }}</th>\\r\\n </tr>\\r\\n </ng-template>\\r\\n\\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\\\" (click)=\\\"rowSelect.emit(rowData)\\\">\\r\\n <!-- <td style=\\\"width: 1rem\\\">\\r\\n <p-tableCheckbox [value]=\\\"rowData\\\" />\\r\\n </td> -->\\r\\n <td *ngIf=\\\"showRowSelectionCheckbox\\\" style=\\\"width: 2rem\\\">\\r\\n <p-tableCheckbox [value]=\\\"rowData\\\"></p-tableCheckbox>\\r\\n </td>\\r\\n <td *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 && col.props['table']\\r\\n && col.props['table']['props'] && col.props['table']['props']['width'] \\\"\\r\\n\\r\\n >\\r\\n\\r\\n\\r\\n <!-- \\u0625\\u0630\\u0627 \\u0627\\u0644\\u0639\\u0645\\u0648\\u062F \\u0642\\u0627\\u0628\\u0644 \\u0644\\u0644\\u0646\\u0642\\u0631 -->\\r\\n\\r\\n <!-- <formly-form\\r\\n [model]=\\\"rowData\\\"\\r\\n [form]=\\\"getForm(i, colIndex)\\\"\\r\\n [fields]=\\\"[cloneField(col)]\\\"\\r\\n [options]=\\\"options\\\">\\r\\n </formly-form> -->\\r\\n\\r\\n <!-- [fields]=\\\"clonedCols[colIndex]\\\" -->\\r\\n <!-- [fields]=\\\"[col.clonedField]\\\" -->\\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 <td class=\\\"border-t border-gray-200 px-4 py-2 text-center align-middle\\\">\\r\\n <ng-container [ngSwitch]=\\\"actionsMode\\\">\\r\\n <!-- Render buttons -->\\r\\n <ng-container *ngSwitchCase=\\\"'buttons'\\\">\\r\\n <ng-container *ngFor=\\\"let act of actions\\\">\\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)\\\"\\r\\n ></button>\\r\\n </ng-container>\\r\\n </ng-container>\\r\\n\\r\\n <!-- Render menu -->\\r\\n <ng-container *ngSwitchCase=\\\"'menu'\\\">\\r\\n <p-menu #menu [model]=\\\"getMenuItems(rowData)\\\" [popup]=\\\"true\\\" appendTo=\\\"body\\\">\\r\\n <ng-template let-item pTemplate=\\\"item\\\">\\r\\n <div class=\\\"flex items-center gap-2 px-2 py-1\\\">\\r\\n <i [ngClass]=\\\"item.icon\\\" class=\\\"text-primary-600\\\" *ngIf=\\\"item.icon\\\"></i>\\r\\n <span class=\\\"font-medium\\\">{{ (item.label || '') | translate }}</span>\\r\\n\\r\\n <span *ngIf=\\\"item.badge\\\" class=\\\"ml-auto text-xs bg-red-500 text-white px-2 py-1 rounded\\\">\\r\\n {{ item.badge }}\\r\\n </span>\\r\\n\\r\\n <!-- <p-inputSwitch *ngIf=\\\"item.toggle\\\" [(ngModel)]=\\\"item.toggleValue\\\" class=\\\"ml-auto\\\" /> -->\\r\\n </div>\\r\\n </ng-template>\\r\\n </p-menu>\\r\\n\\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 </ng-container>\\r\\n\\r\\n </td>\\r\\n </tr>\\r\\n </ng-template>\\r\\n </p-table>\\r\\n\\r\\n</div>\\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.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: \"component\", type: i4.Button, selector: \"p-button\", inputs: [\"type\", \"iconPos\", \"icon\", \"badge\", \"label\", \"disabled\", \"loading\", \"loadingIcon\", \"raised\", \"rounded\", \"text\", \"plain\", \"severity\", \"outlined\", \"link\", \"tabindex\", \"size\", \"variant\", \"style\", \"styleClass\", \"badgeClass\", \"badgeSeverity\", \"ariaLabel\", \"buttonProps\", \"autofocus\", \"fluid\"], outputs: [\"onClick\", \"onFocus\", \"onBlur\"] }, { kind: \"ngmodule\", type: MenuModule }, { kind: \"component\", type: i5.Menu, selector: \"p-menu\", inputs: [\"model\", \"popup\", \"style\", \"styleClass\", \"autoZIndex\", \"baseZIndex\", \"showTransitionOptions\", \"hideTransitionOptions\", \"ariaLabel\", \"ariaLabelledBy\", \"id\", \"tabindex\", \"appendTo\"], outputs: [\"onShow\", \"onHide\", \"onBlur\", \"onFocus\"] }, { kind: \"ngmodule\", type: TranslateModule }, { kind: \"component\", type: FormlyForm, selector: \"formly-form\", inputs: [\"form\", \"model\", \"fields\", \"options\"], outputs: [\"modelChange\"] }, { kind: \"pipe\", type: i6.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], template: \"\\r\\n<div class=\\\"flex-1 last:[&>td]:border-0 rounded-lg border border-surface w-full overflow-auto\\\">\\r\\n <p-table #dt\\r\\n [value]=\\\"data_\\\"\\r\\n [columns]=\\\"columns\\\"\\r\\n [lazy]=\\\"true\\\"\\r\\n [paginator]=\\\"paginator\\\"\\r\\n [rows]=\\\"rows\\\"\\r\\n [first]=\\\"first\\\"\\r\\n [totalRecords]=\\\"totalRecords\\\"\\r\\n [sortField]=\\\"sortField\\\"\\r\\n [sortOrder]=\\\"sortOrder\\\" (onLazyLoad)=\\\"onLazyLoad($event)\\\"\\r\\n [globalFilterFields]=\\\"globalFilterFields\\\"\\r\\n [loading]=\\\"loading\\\"\\r\\n [scrollable]=\\\"true\\\"\\r\\n [scrollHeight]=\\\"scrollHeight\\\"\\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 (sortFunction)=\\\"customSort($event)\\\"\\r\\n >\\r\\n\\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 style=\\\"font-size: 2.5rem;\\\" 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 @if (showAddButton) {\\r\\n\\r\\n\\r\\n <button\\r\\n pButton\\r\\n type=\\\"button\\\"\\r\\n severity=\\\"secondary\\\"\\r\\n icon=\\\"pi pi-plus\\\"\\r\\n label=\\\"{{ 'ADD_NEW' | translate }}\\\"\\r\\n class=\\\"p-button-rounded\\\"\\r\\n (click)=\\\"onAddNew.emit()\\\"\\r\\n ></button>\\r\\n }\\r\\n </div>\\r\\n </td>\\r\\n </tr>\\r\\n\\r\\n </ng-template>\\r\\n <!-- <ng-template pTemplate=\\\"emptymessage\\\">\\r\\n <div class=\\\"flex flex-col items-center justify-center py-20 w-full\\\">\\r\\n <i class=\\\"pi pi-users text-6xl text-gray-400 mb-6\\\"></i>\\r\\n <button\\r\\n pButton\\r\\n type=\\\"button\\\"\\r\\n label=\\\"\\u0625\\u0636\\u0627\\u0641\\u0629 \\u0646\\u0648\\u0639 \\u062C\\u062F\\u064A\\u062F\\\"\\r\\n icon=\\\"pi pi-plus\\\"\\r\\n iconPos=\\\"right\\\"\\r\\n class=\\\"p-button-rounded p-button-outlined p-button-secondary text-sm\\\"\\r\\n (click)=\\\"onAddNew()\\\"\\r\\n ></button>\\r\\n </div>\\r\\n</ng-template> -->\\r\\n\\r\\n <ng-template pTemplate=\\\"header\\\" let-columns>\\r\\n <tr>\\r\\n <th *ngIf=\\\"showRowSelectionCheckbox\\\" style=\\\"width: 2rem\\\">\\r\\n <p-tableHeaderCheckbox></p-tableHeaderCheckbox>\\r\\n </th>\\r\\n <!-- <th style=\\\"width: 1rem\\\">\\r\\n <p-tableHeaderCheckbox />\\r\\n </th> -->\\r\\n\\r\\n <ng-container *ngFor=\\\"let col of columns\\\" >\\r\\n <th *ngIf=\\\"col.props?.table?.props?.width; else templateName\\\" [pSortableColumn]=\\\"col.key\\\"\\r\\n class=\\\"px-4 py-2 text-sm font-medium text-white text-center\\\"\\r\\n [style.min-width]=\\\"col.props?.table?.props?.width\\\">\\r\\n {{ col.props?.label | translate }}\\r\\n <p-sortIcon [field]=\\\"col.key\\\"></p-sortIcon>\\r\\n </th>\\r\\n\\r\\n <ng-template #templateName>\\r\\n <th style=\\\"min-width: 150px;\\\" class=\\\"px-4 py-2 text-sm font-medium text-white text-center\\\">\\r\\n {{ col.props?.label | translate }}\\r\\n <p-sortIcon [field]=\\\"col.key\\\"></p-sortIcon>\\r\\n </th>\\r\\n </ng-template>\\r\\n</ng-container>\\r\\n\\r\\n\\r\\n <th class=\\\"px-4 py-2 text-sm font-medium text-white text-center\\\"> {{ 'OPERATIONS' | translate }}</th>\\r\\n </tr>\\r\\n </ng-template>\\r\\n\\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\\\" (click)=\\\"rowSelect.emit(rowData)\\\">\\r\\n <!-- <td style=\\\"width: 1rem\\\">\\r\\n <p-tableCheckbox [value]=\\\"rowData\\\" />\\r\\n </td> -->\\r\\n <td *ngIf=\\\"showRowSelectionCheckbox\\\" style=\\\"width: 2rem\\\">\\r\\n <p-tableCheckbox [value]=\\\"rowData\\\"></p-tableCheckbox>\\r\\n </td>\\r\\n <td *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 && col.props['table']\\r\\n && col.props['table']['props'] && col.props['table']['props']['width'] \\\"\\r\\n\\r\\n >\\r\\n\\r\\n\\r\\n <!-- \\u0625\\u0630\\u0627 \\u0627\\u0644\\u0639\\u0645\\u0648\\u062F \\u0642\\u0627\\u0628\\u0644 \\u0644\\u0644\\u0646\\u0642\\u0631 -->\\r\\n\\r\\n <!-- <formly-form\\r\\n [model]=\\\"rowData\\\"\\r\\n [form]=\\\"getForm(i, colIndex)\\\"\\r\\n [fields]=\\\"[cloneField(col)]\\\"\\r\\n [options]=\\\"options\\\">\\r\\n </formly-form> -->\\r\\n\\r\\n <!-- [fields]=\\\"clonedCols[colIndex]\\\" -->\\r\\n <!-- [fields]=\\\"[col.clonedField]\\\" -->\\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 <td class=\\\"border-t border-gray-200 px-4 py-2 text-center align-middle\\\">\\r\\n <ng-container [ngSwitch]=\\\"actionsMode\\\">\\r\\n <!-- Render buttons -->\\r\\n <ng-container *ngSwitchCase=\\\"'buttons'\\\">\\r\\n <ng-container *ngFor=\\\"let act of actions\\\">\\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)\\\"\\r\\n ></button>\\r\\n </ng-container>\\r\\n </ng-container>\\r\\n\\r\\n <!-- Render menu -->\\r\\n <ng-container *ngSwitchCase=\\\"'menu'\\\">\\r\\n <p-menu #menu [model]=\\\"getMenuItems(rowData)\\\" [popup]=\\\"true\\\" appendTo=\\\"body\\\">\\r\\n <ng-template let-item pTemplate=\\\"item\\\">\\r\\n <div class=\\\"flex items-center gap-2 px-2 py-1\\\">\\r\\n <i [ngClass]=\\\"item.icon\\\" class=\\\"text-primary-600\\\" *ngIf=\\\"item.icon\\\"></i>\\r\\n <span class=\\\"font-medium\\\">{{ (item.label || '') | translate }}</span>\\r\\n\\r\\n <span *ngIf=\\\"item.badge\\\" class=\\\"ml-auto text-xs bg-red-500 text-white px-2 py-1 rounded\\\">\\r\\n {{ item.badge }}\\r\\n </span>\\r\\n\\r\\n <!-- <p-inputSwitch *ngIf=\\\"item.toggle\\\" [(ngModel)]=\\\"item.toggleValue\\\" class=\\\"ml-auto\\\" /> -->\\r\\n </div>\\r\\n </ng-template>\\r\\n </p-menu>\\r\\n\\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 </ng-container>\\r\\n\\r\\n </td>\\r\\n </tr>\\r\\n </ng-template>\\r\\n </p-table>\\r\\n\\r\\n</div>\\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 }], 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 }], scrollHeight: [{\n type: Input\n }], rowSelectable: [{\n type: Input\n }], showAddButton: [{\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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2VuZXJpYy10YWJsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvbmcudWkuY29yZS9nZW5lcmljLXRhYmxlL3NyYy9saWIvZ2VuZXJpYy10YWJsZS50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvbmcudWkuY29yZS9nZW5lcmljLXRhYmxlL3NyYy9saWIvZ2VuZXJpYy10YWJsZS5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxZQUFZLEVBQUUsU0FBUyxFQUE2QixNQUFNLGVBQWUsQ0FBQztBQUU3RyxPQUFPLEVBQUUsS0FBSyxFQUEyRSxNQUFNLGVBQWUsQ0FBQztBQUMvRyxPQUFPLEVBQUUsWUFBWSxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUM5RCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzVDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDdEQsT0FBTyxFQUFFLFVBQVUsRUFBRSxJQUFJLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDaEQsT0FBTyxFQUFFLGVBQWUsRUFBRSxhQUFhLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNyRSxPQUFPLEVBQUUsV0FBVyxFQUFxQixVQUFVLEVBQXFCLE1BQU0sa0JBQWtCLENBQUM7QUFDakcsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRTNDLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxRQUFRLENBQUM7Ozs7Ozs7O0FBUW5DLE1BQU0sT0FBTyxZQUFZO0lBR1IsRUFBRSxDQUFTO0lBRW5CLElBQUksR0FBVSxFQUFFLENBQUM7SUFDekIsS0FBSyxHQUFVLEVBQUUsQ0FBQztJQUNSLE9BQU8sR0FBd0IsRUFBRSxDQUFDO0lBQzNDLGVBQWUsR0FB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QVM7c0JBQWpCLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSztnQkFDRyxrQkFBa0I7c0JBQTFCLEtBQUs7Z0JBRUksTUFBTTtzQkFBZixNQUFNO2dCQUNHLFVBQVU7c0JBQW5CLE1BQU07Z0JBR0csUUFBUTtzQkFBakIsTUFBTTtnQkFFRSxZQUFZO3NCQUFwQixLQUFLO2dCQUlHLGFBQWE7c0JBQXJCLEtBQUs7Z0JBQ0MsYUFBYTtzQkFBckIsS0FBSztnQkFTQSxTQUFTO3NCQURaLEtBQUs7Z0JBVUksU0FBUztzQkFBbEIsTUFBTTtnQkFHRyxlQUFlO3NCQUF4QixNQUFNO2dCQUlFLFNBQVM7c0JBQWpCLEtBQUs7Z0JBT0csd0JBQXdCO3NCQUFoQyxLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCwgT3V0cHV0LCBFdmVudEVtaXR0ZXIsIFZpZXdDaGlsZCwgIE9uQ2hhbmdlcywgU2ltcGxlQ2hhbmdlcyB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBNZW51SXRlbSwgU29ydEV2ZW50IH0gZnJvbSAncHJpbWVuZy9hcGknO1xyXG5pbXBvcnQgeyBUYWJsZSwgVGFibGVIZWFkZXJDaGVja2JveFRvZ2dsZUV2ZW50LCBUYWJsZUxhenlMb2FkRXZlbnQsIFRhYmxlUm93U2VsZWN0RXZlbnQgfSBmcm9tICdwcmltZW5nL3RhYmxlJztcclxuaW1wb3J0IHsgQ29tbW9uTW9kdWxlLCBOZ0Zvck9mLCBOZ0lmIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHsgVGFibGVNb2R1bGUgfSBmcm9tICdwcmltZW5nL3RhYmxlJztcclxuaW1wb3J0IHsgQnV0dG9uTW9kdWxlLCBCdXR0b24gfSBmcm9tICdwcmltZW5nL2J1dHRvbic7XHJcbmltcG9ydCB7IE1lbnVNb2R1bGUsIE1lbnUgfSBmcm9tICdwcmltZW5nL21lbnUnO1xyXG5pbXBvcnQgeyBUcmFuc2xhdGVNb2R1bGUsIFRyYW5zbGF0ZVBpcGUgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcclxuaW1wb3J0IHsgRm9ybWx5RmllbGQsIEZvcm1seUZpZWxkQ29uZmlnLCBGb3JtbHlGb3JtLCBGb3JtbHlGb3JtT3B0aW9ucyB9IGZyb20gJ0BuZ3gtZm9ybWx5L2NvcmUnO1xyXG5pbXBvcnQgeyBGb3JtR3JvdXAgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IEFjdGlvbkRlZiB9IGZyb20gJ0BlbGl0ZS5mcmFtZXdvcmsvbmcuY29yZS9tb2RlbHMnO1xyXG5pbXBvcnQgeyBjbG9uZURlZXAgfSBmcm9tICdsb2Rhc2gnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdsaWItZ2VuZXJpYy10YWJsZScsXHJcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgVGFibGVNb2R1bGUsIEJ1dHRvbk1vZHVsZSwgTWVudU1vZHVsZSwgTmdGb3JPZixUcmFuc2xhdGVNb2R1bGUsRm9ybWx5RmllbGQsRm9ybWx5Rm9ybSwgTmdJZiwgVHJhbnNsYXRlUGlwZSwgTWVudSwgQnV0dG9uXSxcclxuICB0ZW1wbGF0ZVVybDogJy4vZ2VuZXJpYy10YWJsZS5odG1sJyxcclxuICBzdHlsZVVybDogJy4vZ2VuZXJpYy10YWJsZS5jc3MnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBHZW5lcmljVGFibGU8VD4gIGltcGxlbWVudHMgT25DaGFuZ2Vze1xyXG5cclxuXHJcbkBWaWV3Q2hpbGQoJ2R0JykgZHQhOiBUYWJsZTtcclxuXHJcbkBJbnB1dCgpIGRhdGE6IGFueVtdID0gW107XHJcbiBkYXRhXzogYW55W10gPSBbXTtcclxuICBASW5wdXQoKSBjb2x1bW5zOiBGb3JtbHlGaWVsZENvbmZpZ1tdID0gW107XHJcbiAgcHJvY2Vzc2VkRmllbGRzOiBhbnlbXSA9IFtdO1xyXG4gIGNvbHVtbnNfOiBGb3JtbHlGaWVsZENvbmZpZ1tdID0gW107XHJcbiAgQElucHV0KCkgbG9hZGluZyA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpIGFjdGlvbnM6IEFjdGlvbkRlZjxUPltdID0gW107XHJcbiAgQElucHV0KCkgYWN0aW9uc01vZGU6ICdidXR0b25zJyB8ICdtZW51JyA9ICdidXR0b25zJztcclxuICBASW5wdXQoKSBmaXJzdCA9IDA7XHJcbiAgQElucHV0KCkgcm93cyA9IDEwO1xyXG4gIEBJbnB1dCgpIHRvdGFsUmVjb3JkcyA9IDA7XHJcbiAgQElucHV0KCkgc29ydEZpZWxkPzogc3RyaW5nO1xyXG4gIEBJbnB1dCgpIHNvcnRPcmRlcjogMSB8IC0xID0gMTtcclxuICBASW5wdXQoKSBnbG9iYWxGaWx0ZXJGaWVsZHM6IHN0cmluZ1tdID0gW107XHJcblxyXG4gIEBPdXRwdXQoKSBhY3Rpb24gPSBuZXcgRXZlbnRFbWl0dGVyPHsgbmFtZTogc3RyaW5nOyByb3c6IFQgfT4oKTtcclxuICBAT3V0cHV0KCkgcGFnZUNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8VGFibGVMYXp5TG9hZEV2ZW50PigpO1xyXG5cclxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLW91dHB1dC1vbi1wcmVmaXhcclxuICBAT3V0cHV0KCkgb25BZGROZXcgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcclxuXHJcbiAgQElucHV0KCkgc2Nyb2xsSGVpZ2h0ID0gJzQwMHB4JztcclxuXHJcbiAvLyAqKtis2K/ZitivKio6INiq2YXZg9mK2YYg2KfYrtiq2YrYp9ixINin2YTYtdmB2YjZgVxyXG4gIC8qKiDZgdi52ZHZhCDYp9iu2KrZitin2LEg2KfZhNi12YHZitmGIHNpbmdsZS9tdWx0aXBsZSAqL1xyXG4gIEBJbnB1dCgpIHJvd1NlbGVjdGFibGUgPSB0cnVlO1xyXG5ASW5wdXQoKSBzaG93QWRkQnV0dG9uID0gdHJ1ZTtcclxuICAvKiog2YrYrdiq2YHYuCDYqNin2YTYtdmBINin2YTZhdit2K/YryAqL1xyXG4gIC8vQElucHV0KCkgc2VsZWN0aW9uOiBUIHwgVFtdIHwgbnVsbCA9IG51bGw7XHJcblxyXG4gIC8vINmH2LDYpyDYs9mK2YPZiNmGINmF2LHYqtio2LfZi9inINio2YAgWyhzZWxlY3Rpb24pXSDZgdmKIHAtdGFibGVcclxuICBfc2VsZWN0aW9uOiBUIHwgVFtdIHwgbnVsbCA9IG51bGw7XHJcblxyXG5cclxuICBASW5wdXQoKVxyXG4gIGdldCBzZWxlY3Rpb24oKTogVCB8IFRbXSB8IG51bGwge1xyXG4gICAgICByZXR1cm4gdGhpcy5fc2VsZWN0aW9uO1xyXG4gIH1cclxuICBzZXQgc2VsZWN0aW9uKHZhbDogVCB8IFRbXSB8IG51bGwpIHtcclxuICAgICAgdGhpcy5fc2VsZWN0aW9uID0gdmFsO1xyXG4gICAgICAvLyDZhNinINiq2Y/Ytdiv2LEg2KfZhNit2K/YqyDZh9mG2KfYjCDYqNmEINmB2Yogb25JbnRlcm5hbFNlbGVjdGlvbkNoYW5nZSDZgdmC2LdcclxuICB9XHJcblxyXG4gIC8qKiDZiti12K/YsSDYp9mE2LXZgSDYp9mE2YXYrdiv2K8g2LnZhtivINin2YTZhtmC2LEgKi9cclxuICBAT3V0cHV0KCkgcm93U2VsZWN0ID0gbmV3IEV2ZW50RW1pdHRlcjxUPigpO1xyXG5cclxuICAgICAvKiog2YrYtdiv2LEg2KfZhNi12YHZiNmBINin2YTZhdit2K/Yr9ipINi52YbYryDYp9mE2KrYutmK2YrYsSAo2YTZhNix2KjYtyDYp9mE2KvZhtin2KbZiikgKi9cclxuICBAT3V0cHV0KCkgc2VsZWN0aW9uQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxUIHwgVFtdIHwgbnVsbD4oKTtcclxuXHJcblxyXG4gICAvKiog2KzYr9mK2K86INin2YTYqtit2YPZhSDYqNi42YfZiNixINin2YTZgCBwYWdpbmF0b3IgKi9cclxuICBASW5wdXQoKSBwYWdpbmF0b3IgPSB0cnVlO1xyXG5mb3JtID0gbmV3IEZvcm1Hcm91cCh7fSk7XHJcbm9wdGlvbnM6IEZvcm1seUZvcm1PcHRpb25zID0ge307XHJcblxyXG5cclxuICAvLyAqKtis2K/ZitivKio6INmK2KrYrdmD2YUg2KjYpdi42YfYp9ixINi52YXZiNivINin2K7YqtmK2KfYsSDYp9mE2LXZgdmI2YEgKGNoZWNrYm94ZXMpXHJcbiAgLyoqINmK2KrYrdmD2YUg2YHZiiDYpdi42YfYp9ixINi52YXZiNivINin2K7YqtmK2KfYsSDYp9mE2LXZgdmI2YEg2KfZhNmF2KrYudiv2K/YqSDYqNmI2KfYs9i32KkgY2hlY2tib3hlcyAqL1xyXG4gIEBJbnB1dCgpIHNob3dSb3dTZWxlY3Rpb25DaGVja2JveCA9IGZhbHNlO1xyXG5cclxuXHJcbiAgb25JbnRlcm5hbFNlbGVjdGlvbkNoYW5nZShldmVudDogVGFibGVSb3dTZWxlY3RFdmVudDxUPlxyXG4gICAgfCBUYWJsZUhlYWRlckNoZWNrYm94VG9nZ2xlRXZlbnQpOiB2b2lkIHtcclxuICBpZiAoJ2RhdGEnIGluIGV2ZW50KSB7XHJcbiAgICAvLyBSb3cgc2VsZWN0L3Vuc2VsZWN0IChzaW5nbGUg2KPZiCBtdWx0aXBsZSlcclxuICAgIGlmIChBcnJheS5pc0FycmF5KHRoaXMuX3NlbGVjdGlvbikpIHtcclxuICAgICAgdGhpcy5fc2VsZWN0aW9uID0gWy4uLnRoaXMuX3NlbGVjdGlvbl07IC8vINiq2K3Yr9mK2Ksg2YbYs9iu2Kkg2KfZhNmF2LXZgdmI2YHYqSDYudmG2K8g2YXYqti52K/Yr1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5fc2VsZWN0aW9uID0gZXZlbnQuZGF0YSBhcyBUOyAvLyDYp9iu2KrZitin2LEg2YHYsdiv2YpcclxuICAgIH1cclxuICB9IGVsc2UgaWYgKCdjaGVja2VkJyBpbiBldmVudCkge1xyXG4gICAgLy8gSGVhZGVyIGNoZWNrYm94IHRvZ2dsZVxyXG4gICAgdGhpcy5fc2VsZWN0aW9uID0gZXZlbnQuY2hlY2tlZCA/IFsuLi50aGlzLmRhdGFdIDogW107XHJcbiAgfVxyXG5cclxuICB0aGlzLnNlbGVjdGlvbkNoYW5nZS5lbWl0KHRoaXMuX3NlbGVjdGlvbik7XHJcbn1cclxuXHJcblxyXG5cclxuY3VzdG9tU29ydChldmVudDogU29ydEV2ZW50KSB7XHJcbiAgZXZlbnQuZGF0YT8uc29ydCgoZGF0YTEsIGRhdGEyKSA9PiB7XHJcbiAgICBjb25zdCB2YWx1ZTEgPSB0aGlzLnJlc29sdmVGaWVsZERhdGEoZGF0YTEsIGV2ZW50LmZpZWxkID8/ICcnKTtcclxuICAgIGNvbnN0IHZhbHVlMiA9IHRoaXMucmVzb2x2ZUZpZWxkRGF0YShkYXRhMiwgZXZlbnQuZmllbGQgPz8gJycpO1xyXG5cclxuICAgIGxldCByZXN1bHQgPSAwO1xyXG4gICAgaWYgKHZhbHVlMSA9PSBudWxsICYmIHZhbHVlMiAhPSBudWxsKSByZXN1bHQgPSAtMTtcclxuICAgIGVsc2UgaWYgKHZhbHVlMSAhPSBudWxsICYmIHZhbHVlMiA9PSBudWxsKSByZXN1bHQgPSAxO1xyXG4gICAgZWxzZSBpZiAodmFsdWUxID09IG51bGwgJiYgdmFsdWUyID09IG51bGwpIHJlc3VsdCA9IDA7XHJcbiAgICBlbHNlIGlmICh0eXBlb2YgdmFsdWUxID09PSAnc3RyaW5nJyAmJiB0eXBlb2YgdmFsdWUyID09PSAnc3RyaW5nJylcclxuICAgICAgcmVzdWx0ID0gdmFsdWUxLmxvY2FsZUNvbXBhcmUodmFsdWUyKTtcclxuICAgIGVsc2UgcmVzdWx0ID0gdmFsdWUxIDwgdmFsdWUyID8gLTEgOiB2YWx1ZTEgPiB2YWx1ZTIgPyAxIDogMDtcclxuXHJcbiAgICByZXR1cm4gKGV2ZW50Lm9yZGVyID8/IDEpICogcmVzdWx0O1xyXG4gIH0pO1xyXG59XHJcbnJlc29sdmVGaWVsZERhdGEoZGF0YTogYW55LCBmaWVsZDogc3RyaW5nKTogYW55IHtcclxuICBpZiAoIWZpZWxkKSByZXR1cm4gbnVsbDtcclxuICBpZiAoZmllbGQuaW5kZXhPZignLicpID09PSAtMSkgcmV0dXJuIGRhdGFbZmllbGRdO1xyXG4gIHJldHVybiBmaWVsZC5zcGxpdCgnLicpLnJlZHVjZSgob2JqLCBwcm9wKSA9PiAob2JqID8gb2JqW3Byb3BdIDogbnVsbCksIGRhdGEpO1xyXG59XHJcblxyXG4gb25BY3Rpb24oYWN0OiBBY3Rpb25EZWY8VD4sIHJvdzogVCkge1xyXG4gICAgaWYgKGFjdC5hY3Rpb24pIHtcclxuICAgICAgYWN0LmFjdGlvbihyb3cpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5hY3Rpb24uZW1pdCh7IG5hbWU6IGFjdC5uYW1lLCByb3cgfSk7XHJcbiAgICB9XHJcbiAgfVxyXG4vLyAgY2xvbmVGaWVsZChmaWVsZDogYW55KTogYW55IHtcclxuLy8gICBpZiAoZmllbGQgPT09IG51bGwgfHwgdHlwZW9mIGZpZWxkICE9PSAnb2JqZWN0Jykge1xyXG4vLyAgICAgcmV0dXJuIGZpZWxkO1xyXG4vLyAgIH1cclxuXHJcbi8vICAgIGlmIChBcnJheS5pc0FycmF5KGZpZWxkKSkge1xyXG4vLyAgICAgLy8gcHJlc2VydmUgYHRoaXNgIGNvbnRleHRcclxuLy8gICAgIHJldHVybiBmaWVsZC5tYXAoKGl0ZW0pID0+IHRoaXMuY2xvbmVGaWVsZChpdGVtKSk7XHJcbi8vICAgfVxyXG4vLyAgIGNvbnN0IGNsb25lZDogYW55ID0ge307XHJcbi8vICAgZm9yIChjb25zdCBrZXkgb2YgT2JqZWN0LmtleXMoZmllbGQpKSB7XHJcbi8vICAgICBjbG9uZWRba2V5XSA9IHRoaXMuY2xvbmVGaWVsZChmaWVsZFtrZXldKTtcclxuLy8gICB9XHJcblxyXG4vLyAgIHJldHVybiBjbG9uZWQ7XHJcbi8vIH1cclxuXHJcbiAvLyBVc2UgYSBtYXAgdG8gc3RvcmUgZm9ybSBncm91cHMgZm9yIGVhY2ggcm93IGFuZCBjb2x1bW5cclxuICBwcml2YXRlIGNlbGxGb3JtczogTWFwPHN0cmluZywgRm9ybUdyb3VwPiA9IG5ldyBNYXAoKTtcclxuICBmb3JtczogRm9ybUdyb3VwID0gbmV3IEZvcm1Hcm91cCh7fSk7IC8vIEEgbWFpbiBmb3JtIGZvciB0aGUgdGFibGVcclxuXHJcblxyXG4gIC8vIFJlZmFjdG9yZWQgZ2V0Rm9ybSB0byByZXR1cm4gYW4gZXhpc3RpbmcgZm9ybSBpbnN0YW5jZVxyXG4gIGdldEZvcm0ocm93SW5kZXg6IG51bWJlciwgY29sSW5kZXg6IG51bWJlcik6IEZvcm1Hcm91cCB7XHJcbiAgICBjb25zdCBrZXkgPSBgJHtyb3dJbmRleH1fJHtjb2xJbmRleH1gO1xyXG4gICAgbGV0IGZvcm0gPSB0aGlzLmNlbGxGb3Jtcy5nZXQoa2V5KTtcclxuXHJcbiAgICBpZiAoIWZvcm0pIHtcclxuICAgICAgZm9ybSA9IG5ldyBGb3JtR3JvdXAoe30pO1xyXG4gICAgICB0aGlzLmNlbGxGb3Jtcy5zZXQoa2V5LCBmb3JtKTtcclxuICAgIH1cclxuICAgIHJldHVybiBmb3JtO1xyXG4gIH1cclxudHJhY2tCeUZuKGluZGV4OiBudW1iZXIsIGl0ZW06IGFueSkge1xyXG4gIHJldHVybiBpbmRleDsgLy8gb3IgYSB1bmlxdWUgaWRlbnRpZmllciBmcm9tIHlvdXIgZGF0YVxyXG59XHJcbiAvLyBUaGlzIG1ldGhvZCBpcyBjYWxsZWQgd2hlbmV2ZXIgYW55IEBJbnB1dCgpIHByb3BlcnR5IGNoYW5nZXMuXHJcbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xyXG4gICAgLy8gQ2hlY2sgaWYgdGhlICdkYXRhJyBwcm9wZXJ0eSBoYXMgY2hhbmdlZC5cclxuICAgIGlmIChjaGFuZ2VzWydkYXRhJ10pIHtcclxuICAgICAgY29uc3QgY3VycmVudERhdGEgPSBjaGFuZ2VzWydkYXRhJ10uY3VycmVudFZhbHVlO1xyXG4gICAgICBjb25zdCBwcmV2aW91c0RhdGEgPSBjaGFuZ2VzWydkYXRhJ10ucHJldmlvdXNWYWx1ZTtcclxuXHJcblxyXG4gICAgICAvLyBGb3IgZXhhbXBsZSwgeW91IGNhbiBjYWxsIGEgbWV0aG9kIHRvIHJlLXJlbmRlciBvciBwcm9jZXNzIHRoZSBkYXRhLlxyXG4gICAgICB0aGlzLnJlZnJlc2hEYXRhKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuIG9uTGF6eUxvYWQoZXZlbnQ6IFRhYmxlTGF6eUxvYWRFdmVudCk6IHZvaWQge1xyXG4gICAgLy8gUmVpbml0aWFsaXplIGZvcm1zIG9uIG5ldyBkYXRhIGxvYWRcclxuICAgIC8vIHRoaXMuY2VsbEZvcm1zLmNsZWFyKCk7XHJcbiAgdGhpcy5yZWZyZXNoRGF0YSgpO1xyXG4gICAgdGhpcy5wYWdlQ2hhbmdlLmVtaXQoZXZlbnQpO1xyXG4gIH1cclxuXHJcblxyXG4gIGFwcGx5RmlsdGVyKGZpbHRlcnM6IGFueSk6IHZvaWQge1xyXG4gICAgLy8gaWYgKGZpZWxkKSB7XHJcbiAgICAvLyAgIHRoaXMuZHQuZmlsdGVyKGdsb2JhbCwgZmllbGQsICdjb250YWlucycpO1xyXG4gICAgLy8gfSBlbHNlIHtcclxuICAgIC8vICAgdGhpcy5kdC5maWx0ZXJHbG9iYWwoZ2xvYmFsLCAnY29udGFpbnMnKTtcclxuICAgIC8vIH1cclxuXHJcbiAgfVxyXG4gIHJlZnJlc2hEYXRhKCl7XHJcbiAgICAgdGhpcy5kYXRhXyA9IHRoaXMuZGF0YS5tYXAocm93RGF0YSA9PiB7XHJcbiAgICAvLyBDcmVhdGUgYSBuZXcgYXJyYXkgb2YgZmllbGRzIGZvciBlYWNoIHJvd1xyXG4gICAgY29uc3Qgcm93RmllbGRzID0gdGhpcy5jb2x1bW5zLm1hcChjb2wgPT4ge1xyXG4gICAgICByZXR1cm4gY2xvbmVEZWVwKGNvbCk7XHJcbiAgICB9KTtcclxuICAgIC8vIEF0dGFjaCB0aGUgdW5pcXVlIGZpZWxkcyB0byB0aGUgcm93IGRhdGEgb2JqZWN0XHJcbiAgICByZXR1cm4ge1xyXG4gICAgICAuLi5yb3dEYXRhLFxyXG4gICAgICByb3dGaWVsZHM6IHJvd0ZpZWxkc1xyXG4gICAgfTtcclxuICB9KTtcclxuICB9XHJcblxyXG4gIGdldE1lbnVJdGVtcyhyb3c6IFQpOiBNZW51SXRlbVtdIHtcclxuICAgIHJldHVybiB0aGlzLmFjdGlvbnMubWFwKGFjdCA9PiAoe1xyXG4gICAgICBsYWJlbDogYWN0LmxhYmVsLFxyXG4gICAgICBpY29uOiBhY3QuaWNvbixcclxuICAgICAgY29tbWFuZDogKCkgPT4gdGhpcy5vbkFjdGlvbihhY3QsIHJvdyApLFxyXG4gICAgICBzdHlsZUNsYXNzOiBhY3Quc3R5bGVDbGFzc1xyXG4gICAgfSkpO1xyXG4gIH1cclxuXHJcbiAvLyAqKtis2K/ZitivKio6INmK2KrZhSDYpdi32YTYp9mCINmH2LDYpyDYudmG2K8g2KfYrtiq2YrYp9ixINi12YFcclxuICBvblJvd1NlbGVjdChldmVudDogVGFibGVSb3dTZWxlY3RFdmVudDxUPikge1xyXG4gICAgLy8gZGVidWdnZXJcclxuICAgIGlmIChldmVudC5kYXRhKSB7XHJcbiAgICAgIHRoaXMucm93U2VsZWN0LmVtaXQoZXZlbnQuZGF0YSBhcyBUKTtcclxuICAgIH1cclxuICB9XHJcblxyXG59XHJcbiIsIlxyXG48ZGl2IGNsYXNzPVwiZmxleC0xIGxhc3Q6WyY+dGRdOmJvcmRlci0wIHJvdW5kZWQtbGcgYm9yZGVyIGJvcmRlci1zdXJmYWNlIHctZnVsbCBvdmVyZmxvdy1hdXRvXCI+XHJcbiAgPHAtdGFibGUgI2R0XHJcbiAgW3ZhbHVlXT1cImRhdGFfXCJcclxuICBbY29sdW1uc109XCJjb2x1bW5zXCJcclxuICBbbGF6eV09XCJ0cnVlXCJcclxuICBbcGFnaW5hdG9yXT1cInBhZ2luYXRvclwiXHJcbiAgW3Jvd3NdPVwicm93c1wiXHJcbiAgW2ZpcnN0XT1cImZpcnN0XCJcclxuICAgIFt0b3RhbFJlY29yZHNdPVwidG90YWxSZWNvcmRzXCJcclxuICAgIFtzb3J0RmllbGRdPVwic29ydEZpZWxkXCJcclxuICAgIFtzb3J0T3JkZXJdPVwic29ydE9yZGVyXCIgKG9uTGF6eUxvYWQpPVwib25MYXp5TG9hZCgkZXZlbnQpXCJcclxuICAgIFtnbG9iYWxGaWx0ZXJGaWVsZHNdPVwiZ2xvYmFsRmlsdGVyRmllbGRzXCJcclxuICAgIFtsb2FkaW5nXT1cImxvYWRpbmdcIlxyXG4gICAgW3Njcm9sbGFibGVdPVwidHJ1ZVwiXHJcbiAgICBbc2Nyb2xsSGVpZ2h0XT1cInNjcm9sbEhlaWdodFwiXHJcbiAgICBbc2VsZWN0aW9uTW9kZV09XCJzaG93Um93U2VsZWN0aW9uQ2hlY2tib3ggPyAnbXVsdGlwbGUnIDogKHJvd1NlbGVjdGFibGUgPyAnc2luZ2xlJyA6IHVuZGVmaW5lZClcIlxyXG4gICAgWyhzZWxlY3Rpb24pXT1cIl9zZWxlY3Rpb25cIlxyXG4gICAgKG9uUm93U2VsZWN0KT1cIm9uSW50ZXJuYWxTZWxlY3Rpb25DaGFuZ2UoJGV2ZW50KVwiXHJcbiAgICAob25Sb3dVbnNlbGVjdCk9XCJvbkludGVybmFsU2VsZWN0aW9uQ2hhbmdlKCRldmVudClcIlxyXG4gICAgKG9uSGVhZGVyQ2hlY2tib3hUb2dnbGUpPVwib25JbnRlcm5hbFNlbGVjdGlvbkNoYW5nZSgkZXZlbnQpXCJcclxuICAgIHRhYmxlTGF5b3V0PVwiZml4ZWRcIlxyXG4gICAgW2N1c3RvbVNvcnRdPVwiZmFsc2VcIlxyXG4gICAgKHNvcnRGdW5jdGlvbik9XCJjdXN0b21Tb3J0KCRldmVudClcIlxyXG4gICAgPlxyXG5cclxuICAgICA8bmctdGVtcGxhdGUgcFRlbXBsYXRlPVwiZW1wdHltZXNzYWdlXCI+XHJcbiAgICAgIDx0cj5cclxuICAgICAgICA8dGQgY29sc3Bhbj1cIjEwXCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwiZmxleCBmbGV4LWNvbCBpdGVtcy1jZW50ZXIganVzdGlmeS1jZW50ZXIgcHktMTAgdGV4dC1jZW50ZXIgdy1mdWxsXCI+XHJcbiAgICAgIDxpIHN0eWxlPVwiZm9udC1zaXplOiAyLjVyZW07XCIgY2xhc3M9XCJwaSBwaS1pbmJveCB0ZXh0LTR4bCB0ZXh0LWdyYXktNDAwIG1iLTRcIj48L2k+XHJcbiAgICAgIDxwIGNsYXNzPVwidGV4dC1ncmF5LTUwMCBtYi00XCI+e3sgJ05PX0RBVEFfRk9VTkQnIHwgdHJhbnNsYXRlIH19PC9wPlxyXG5cclxuICAgICAgQGlmIChzaG93QWRkQnV0dG9uKSB7XHJcblxyXG5cclxuICAgICAgPGJ1dHRvblxyXG4gICAgICAgIHBCdXR0b25cclxuICAgICAgICB0eXBlPVwiYnV0dG9uXCJcclxuICAgICAgICBzZXZlcml0eT1cInNlY29uZGFyeVwiXHJcbiAgICAgICAgaWNvbj1cInBpIHBpLXBsdXNcIlxyXG4gICAgICAgIGxhYmVsPVwie3sgJ0FERF9ORVcnIHwgdHJhbnNsYXRlIH19XCJcclxuICAgICAgICBjbGFzcz1cInAtYnV0dG9uLXJvdW5kZWRcIlxyXG4gICAgICAgIChjbGljayk9XCJvbkFkZE5ldy5lbWl0KClcIlxyXG4gICAgICA+PC9idXR0b24+XHJcbiAgICAgIH1cclxuICAgIDwvZGl2PlxyXG4gICAgICAgIDwvdGQ+XHJcbiAgICAgIDwvdHI+XHJcblxyXG4gIDwvbmctdGVtcGxhdGU+XHJcbiAgPCEtLSA8bmctdGVtcGxhdGUgcFRlbXBsYXRlPVwiZW1wdHltZXNzYWdlXCI+XHJcbiAgPGRpdiBjbGFzcz1cImZsZXggZmxleC1jb2wgaXRlbXMtY2VudGVyIGp1c3RpZnktY2VudGVyIHB5LTIwIHctZnVsbFwiPlxyXG4gICAgPGkgY2xhc3M9XCJwaSBwaS11c2VycyB0ZXh0LTZ4bCB0ZXh0LWdyYXktNDAwIG1iLTZcIj48L2k+XHJcbiAgICA8YnV0dG9uXHJcbiAgICAgIHBCdXR0b25cclxuICAgICAgdHlwZT1cImJ1dHRvblwiXHJcbiAgICAgIGxhYmVsPVwi2KXYttin2YHYqSDZhtmI2Lkg2KzYr9mK2K9cIlxyXG4gICAgICBpY29uPVwicGkgcGktcGx1c1wiXHJcbiAgICAgIGljb25Qb3M9XCJyaWdodFwiXHJcbiAgICAgIGNsYXNzPVwicC1idXR0b24tcm91bmRlZCBwLWJ1dHRvbi1vdXRsaW5lZCBwLWJ1dHRvbi1zZWNvbmRhcnkgdGV4dC1zbVwiXHJcbiAgICAgIChjbGljayk9XCJvbkFkZE5ldygpXCJcclxuICAgID48L2J1dHRvbj5cclxuICA8L2Rpdj5cclxuPC9uZy10ZW1wbGF0ZT4gLS0+XHJcblxyXG4gICAgPG5nLXRlbXBsYXRlIHBUZW1wbGF0ZT1cImhlYWRlclwiIGxldC1jb2x1bW5zPlxyXG4gICAgICA8dHI+XHJcbiAgICAgICAgICA8dGggKm5nSWY9XCJzaG93Um93U2VsZWN0aW9uQ2hlY2tib3hcIiBzdHlsZT1cIndpZHRoOiAycmVtXCI+XHJcbiAgICAgICAgPHAtdGFibGVIZWFkZXJDaGVja2JveD48L3AtdGFibGVIZWFkZXJDaGVja2JveD5cclxuICAgICAgPC90aD5cclxuICAgICAgICA8IS0tIDx0aCBzdHlsZT1cIndpZHRoOiAxcmVtXCI+XHJcbiAgICAgICAgICA8cC10YWJsZUhlYWRlckNoZWNrYm94IC8+XHJcbiAgICAgICAgPC90aD4gLS0+XHJcblxyXG4gICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgY29sIG9mIGNvbHVtbnNcIiA+XHJcbiAgPHRoICpuZ0lmPVwiY29sLnByb3BzPy50YWJsZT8ucHJvcHM/LndpZHRoOyBlbHNlIHRlbXBsYXRlTmFtZVwiIFtwU29ydGFibGVDb2x1bW5dPVwiY29sLmtleVwiXHJcbiAgICAgIGNsYXNzPVwicHgtNCBweS0yIHRleHQtc20gZm9udC1tZWRpdW0gdGV4dC13aGl0ZSB0ZXh0LWNlbnRlclwiXHJcbiAgICAgIFtzdHlsZS5taW4td2lkdGhdPVwiY29sLnByb3BzPy50YWJsZT8ucHJvcHM/LndpZHRoXCI+XHJcbiAgICB7eyBjb2wucHJvcHM/LmxhYmVsIHwgdHJhbnNsYXRlIH19XHJcbiAgICA8cC1zb3J0SWNvbiBbZmllbGRdPVwiY29sLmtleVwiPjwvcC1zb3J0SWNvbj5cclxuICA8L3RoPlxyXG5cclxuICA8bmctdGVtcGxhdGUgI3RlbXBsYXRlTmFtZT5cclxuICAgIDx0aCBzdHlsZT1cIm1pbi13aWR0aDogMTUwcHg7XCIgY2xhc3M9XCJweC00IHB5LTIgdGV4dC1zbSBmb250LW1lZGl1bSB0ZXh0LXdoaXRlIHRleHQtY2VudGVyXCI+XHJcbiAgICAgIHt7IGNvbC5wcm9wcz8ubGFiZWwgfCB0cmFuc2xhdGUgfX1cclxuICAgICAgPHAtc29ydEljb24gW2ZpZWxkXT1cImNvbC5rZXlcIj48L3Atc29ydEljb24+XHJcbiAgICA8L3RoPlxyXG4gIDwvbmctdGVtcGxhdGU+XHJcbjwvbmctY29udGFpbmVyPlxyXG5cclxuXHJcbiAgICAgICAgPHRoIGNsYXNzPVwicHgtNCBweS0yIHRleHQtc20gZm9udC1tZWRpdW0gdGV4dC13aGl0ZSB0ZXh0LWNlbnRlclwiPiB7eyAnT1BFUkFUSU9OUycgfCB0cmFuc2xhdGUgfX08L3RoPlxyXG4gICAgICA8L3RyPlxyXG4gICAgPC9uZy10ZW1wbGF0ZT5cclxuXHJcbiAgICA8bmctdGVtcGxhdGUgcFRlbXBsYXRlPVwiYm9keVwiIGxldC1yb3dEYXRhIGxldC1jb2x1bW5zPVwiY29sdW1uc1wiIGxldC1pPVwicm93SW5kZXhcIj5cclxuICAgICAgPHRyIGNsYXNzPVwiZXZlbjpiZy1ncmF5LTUwIGhvdmVyOmJnLWdyYXktMTAwXCIgKGNsaWNrKT1cInJvd1NlbGVjdC5lbWl0KHJvd0RhdGEpXCI+XHJcbiAgICAgICAgPCEtLSA8dGQgc3R5bGU9XCJ3aWR0aDogMXJlbVwiPlxyXG4gICAgICAgICAgPHAtdGFibGVDaGVja2JveCBbdmFsdWVdPVwicm93RGF0YVwiIC8+XHJcbiAgICAgICAgPC90ZD4gLS0+XHJcbiAgICAgICAgPHRkICpuZ0lmPVwic2hvd1Jvd1NlbGVjdGlvbkNoZWNrYm94XCIgc3R5bGU9XCJ3aWR0aDogMnJlbVwiPlxyXG4gICAgICAgIDxwLXRhYmxlQ2hlY2tib3ggW3ZhbHVlXT1cInJvd0RhdGFcIj48L3AtdGFibGVDaGVja2JveD5cclxuICAgICAgPC90ZD5cclxuICAgICAgICA8dGQgKm5nRm9yPVwibGV0IGNvbCBvZiByb3dEYXRhLnJvd0ZpZWxkcyA7IGxldCBjb2xJbmRleCA9IGluZGV4O3RyYWNrQnk6IHRyYWNrQnlGblwiXHJcbiAgICBjbGFzcz1cImJvcmRlci10IGJvcmRlci1ncmF5LTIwMCBweC00IHB5LTIgdGV4dC1jZW50ZXIgdGV4dC1zbSB0ZXh0LWdyYXktNzAwXCJcclxuICAgICBbc3R5bGUud2lkdGhdPVwiY29sLnByb3BzICYmIGNvbC5wcm9wc1sndGFibGUnXVxyXG4gICAgICYmIGNvbC5wcm9wc1sndGFibGUnXVsncHJvcHMnXSAmJiBjb2wucHJvcHNbJ3RhYmxlJ11bJ3Byb3BzJ11bJ3dpZHRoJ10gXCJcclxuXHJcbiAgICAgPlxyXG5cclxuXHJcbiA8IS0tINil2LDYpyDYp9mE2LnZhdmI2K8g2YLYp9io2YQg2YTZhNmG2YLYsSAtLT5cclxuXHJcbiAgICAgIDwhLS0gPGZvcm1seS1mb3JtXHJcbiAgICAgIFttb2RlbF09XCJyb3dEYXRhXCJcclxuICAgICAgW2Zvcm1dPVwiZ2V0Rm9ybShpLCBjb2xJbmRleClcIlxyXG4gICAgICBbZmllbGRzXT1cIltjbG9uZUZpZWxkKGNvbCldXCJcclxuICAgICAgW29wdGlvbnNdPVwib3B0aW9uc1wiPlxyXG4gICAgPC9mb3JtbHktZm9ybT4gLS0+XHJcblxyXG4gICAgPCEtLSBbZmllbGRzXT1cImNsb25lZENvbHNbY29sSW5kZXhdXCIgIC0tPlxyXG4gICAgIDwhLS0gW2ZpZWxkc109XCJbY29sLmNsb25lZEZpZWxkXVwiIC0tPlxyXG48Zm9ybWx5LWZvcm1cclxuICAgICAgW21vZGVsXT1cInJvd0RhdGFcIlxyXG4gICAgICBbZm9ybV09XCJnZXRGb3JtKGksIGNvbEluZGV4KVwiXHJcbiAgICAgICBbZmllbGRzXT1cIltjb2xdXCJcclxuICAgICAgW29wdGlvbnNdPVwib3B0aW9uc1wiPlxyXG4gICAgPC9mb3JtbHktZm9ybT5cclxuICAgICAgICA8L3RkPlxyXG4gICAgICAgIDx0ZCBjbGFzcz1cImJvcmRlci10IGJvcmRlci1ncmF5LTIwMCBweC00IHB5LTIgdGV4dC1jZW50ZXIgYWxpZ24tbWlkZGxlXCI+XHJcbiAgICAgICAgICA8bmctY29udGFpbmVyIFtuZ1N3aXRjaF09XCJhY3Rpb25zTW9kZVwiPlxyXG4gICAgICAgICAgICAgICAgICA8IS0tIFJlbmRlciBidXR0b25zIC0tPlxyXG4gICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCInYnV0dG9ucydcIj5cclxuICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBhY3Qgb2YgYWN0aW9uc1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cImFjdC5pY29uIHx8IGFjdC5sYWJlbFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHBCdXR0b25cclxuICAgICAgICAgICAgICAgICAgICAgICAgW2ljb25dPVwiYWN0Lmljb24gfHwgJydcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBbbGFiZWxdPVwiKGFjdC5sYWJlbCAgfHwgJycpIHwgdHJhbnNsYXRlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgW2NsYXNzXT1cImFjdC5zdHlsZUNsYXNzIHx8ICcnXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJwLWJ1dHRvbi1zbSBteC0xXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIm9uQWN0aW9uKGFjdCwgcm93RGF0YSlcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgPjwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuXHJcbiAgICAgICAgICAgICAgICAgIDwhLS0gUmVuZGVyIG1lbnUgLS0+XHJcbiAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nU3dpdGNoQ2FzZT1cIidtZW51J1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICA8cC1tZW51ICNtZW51IFttb2RlbF09XCJnZXRNZW51SXRlbXMocm93RGF0YSlcIiBbcG9wdXBdPVwidHJ1ZVwiIGFwcGVuZFRvPVwiYm9keVwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSBsZXQtaXRlbSBwVGVtcGxhdGU9XCJpdGVtXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleCBpdGVtcy1jZW50ZXIgZ2FwLTIgcHgtMiBweS0xXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxpIFtuZ0NsYXNzXT1cIml0ZW0uaWNvblwiIGNsYXNzPVwidGV4dC1wcmltYXJ5LTYwMFwiICpuZ0lmPVwiaXRlbS5pY29uXCI+PC9pPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImZvbnQtbWVkaXVtXCI+e3sgKGl0ZW0ubGFiZWwgIHx8ICcnKSB8IHRyYW5zbGF0ZSB9fTwvc3Bhbj5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuICpuZ0lmPVwiaXRlbS5iYWRnZVwiIGNsYXNzPVwibWwtYXV0byB0ZXh0LXhzIGJnLXJlZC01MDAgdGV4dC13aGl0ZSBweC0yIHB5LTEgcm91bmRlZFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHt7IGl0ZW0uYmFkZ2UgfX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPCEtLSA8cC1pbnB1dFN3aXRjaCAqbmdJZj1cIml0ZW0udG9nZ2xlXCIgWyhuZ01vZGVsKV09XCJpdGVtLnRvZ2dsZVZhbHVlXCIgY2xhc3M9XCJtbC1hdXRvXCIgLz4gLS0+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgICAgICAgICAgICAgICA8L3AtbWVudT5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgPHAtYnV0dG9uXHJcbiAgICAgICAgICAgICAgICAgICAgb3V0bGluZWRcclxuICAgICAgICAgICAgICAgICAgICAgIGljb249XCJwaSBwaS1lbGxpcHNpcy12XCJcclxuICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwicC1idXR0b24tdGV4dCBwLWJ1dHRvbi1zbVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAob25DbGljayk9XCJtZW51LnRvZ2dsZSgkZXZlbnQpXCJcclxuICAgICAgICAgICAgICAgICAgICA+PC9wLWJ1dHRvbj5cclxuICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuXHJcbiAgICAgICAgPC90ZD5cclxuICAgICAgPC90cj5cclxuICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgPC9wLXRhYmxlPlxyXG5cclxuPC9kaXY+XHJcbiJdfQ==","/**\n * Generated bundle index. Do not edit.\n */\nexport * from './index';\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWxpdGUuZnJhbWV3b3JrLW5nLnVpLmNvcmUtZ2VuZXJpYy10YWJsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYnMvbmcudWkuY29yZS9nZW5lcmljLXRhYmxlL3NyYy9lbGl0ZS5mcmFtZXdvcmstbmcudWkuY29yZS1nZW5lcmljLXRhYmxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsY0FBYyxTQUFTLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEdlbmVyYXRlZCBidW5kbGUgaW5kZXguIERvIG5vdCBlZGl0LlxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vaW5kZXgnO1xuIl19"],"names":[],"mappings":"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"}
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/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 { 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 } from '@ngx-translate/core';\nimport { FormlyField, FormlyForm } from '@ngx-formly/core';\nimport { FormGroup } from '@angular/forms';\nimport { cloneDeep } from 'lodash';\n// import { NgxPermissionsModule } from 'ngx-permissions';\nimport { NgxPermissionsService } from 'ngx-permissions';\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 \"primeng/menu\";\nimport * as i6 from \"@ngx-translate/core\";\nexport class GenericTable {\n permissionsService = inject(NgxPermissionsService);\n dt;\n data = [];\n data_ = [];\n columns = [];\n processedFields = [];\n columns_ = [];\n loading = false;\n actions = [];\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 scrollHeight = '400px';\n // **جديد**: تمكين اختيار الصفوف\n /** فعّل اختيار الصفين single/multiple */\n rowSelectable = true;\n showAddButton = true;\n /** يحتفظ بالصف المحدد */\n //@Input() selection: T | T[] | null = null;\n // هذا سيكون مرتبطًا بـ [(selection)] في p-table\n _selection = null;\n get selection() {\n return this._selection;\n }\n set selection(val) {\n this._selection = val;\n // لا تُصدر الحدث هنا، بل في onInternalSelectionChange فقط\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 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.permissions?.length || // no permissions → allow\n action.permissions.every(p => this.permissionsService.hasPermission(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: 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: \"17.0.0\", version: \"20.1.8\", type: GenericTable, isStandalone: true, selector: \"lib-generic-table\", inputs: { data: \"data\", columns: \"columns\", loading: \"loading\", actions: \"actions\", actionsMode: \"actionsMode\", first: \"first\", rows: \"rows\", totalRecords: \"totalRecords\", sortField: \"sortField\", sortOrder: \"sortOrder\", globalFilterFields: \"globalFilterFields\", scrollHeight: \"scrollHeight\", rowSelectable: \"rowSelectable\", showAddButton: \"showAddButton\", 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: \"\\r\\n<div class=\\\"flex-1 last:[&>td]:border-0 rounded-lg border border-surface w-full overflow-auto\\\">\\r\\n <p-table #dt\\r\\n [value]=\\\"data_\\\"\\r\\n [columns]=\\\"columns\\\"\\r\\n [lazy]=\\\"true\\\"\\r\\n [paginator]=\\\"paginator\\\"\\r\\n [rows]=\\\"rows\\\"\\r\\n [first]=\\\"first\\\"\\r\\n [totalRecords]=\\\"totalRecords\\\"\\r\\n [sortField]=\\\"sortField\\\"\\r\\n [sortOrder]=\\\"sortOrder\\\" (onLazyLoad)=\\\"onLazyLoad($event)\\\"\\r\\n [globalFilterFields]=\\\"globalFilterFields\\\"\\r\\n [loading]=\\\"loading\\\"\\r\\n [scrollable]=\\\"true\\\"\\r\\n [scrollHeight]=\\\"scrollHeight\\\"\\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 (sortFunction)=\\\"customSort($event)\\\"\\r\\n >\\r\\n\\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 style=\\\"font-size: 2.5rem;\\\" 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 @if (showAddButton) {\\r\\n\\r\\n\\r\\n <button\\r\\n pButton\\r\\n type=\\\"button\\\"\\r\\n severity=\\\"secondary\\\"\\r\\n icon=\\\"pi pi-plus\\\"\\r\\n label=\\\"{{ 'ADD_NEW' | translate }}\\\"\\r\\n class=\\\"p-button-rounded\\\"\\r\\n (click)=\\\"onAddNew.emit()\\\"\\r\\n ></button>\\r\\n }\\r\\n </div>\\r\\n </td>\\r\\n </tr>\\r\\n\\r\\n </ng-template>\\r\\n\\r\\n <ng-template pTemplate=\\\"header\\\" let-columns>\\r\\n <tr>\\r\\n <th *ngIf=\\\"showRowSelectionCheckbox\\\" style=\\\"width: 2rem\\\">\\r\\n <p-tableHeaderCheckbox></p-tableHeaderCheckbox>\\r\\n </th>\\r\\n\\r\\n <ng-container *ngFor=\\\"let col of columns\\\" >\\r\\n <th *ngIf=\\\"col.props?.table?.props?.width; else templateName\\\" [pSortableColumn]=\\\"col.key\\\"\\r\\n class=\\\"px-4 py-2 text-sm font-medium text-white text-center\\\"\\r\\n [style.min-width]=\\\"col.props?.table?.props?.width\\\">\\r\\n {{ col.props?.label | translate }}\\r\\n <p-sortIcon [field]=\\\"col.key\\\"></p-sortIcon>\\r\\n </th>\\r\\n\\r\\n <ng-template #templateName>\\r\\n <th style=\\\"min-width: 150px;\\\" class=\\\"px-4 py-2 text-sm font-medium text-white text-center\\\" [pSortableColumn]=\\\"col.key\\\">\\r\\n {{ col.props?.label | translate }}\\r\\n <p-sortIcon [field]=\\\"col.key\\\"></p-sortIcon>\\r\\n </th>\\r\\n </ng-template>\\r\\n</ng-container>\\r\\n\\r\\n\\r\\n <th class=\\\"px-4 py-2 text-sm font-medium text-white text-center\\\"> {{ 'OPERATIONS' | translate }}</th>\\r\\n </tr>\\r\\n </ng-template>\\r\\n\\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\\\" (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 *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 && col.props['table']\\r\\n && col.props['table']['props'] && col.props['table']['props']['width'] \\\"\\r\\n\\r\\n >\\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 <td class=\\\"border-t border-gray-200 px-4 py-2 text-center align-middle\\\">\\r\\n <ng-container [ngSwitch]=\\\"actionsMode\\\">\\r\\n <!-- Render buttons -->\\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)\\\"\\r\\n ></button>\\r\\n </ng-container>\\r\\n </ng-container>\\r\\n\\r\\n <!-- Render menu -->\\r\\n <ng-container *ngSwitchCase=\\\"'menu'\\\">\\r\\n <p-menu #menu [model]=\\\"getMenuItems(rowData)\\\" [popup]=\\\"true\\\" appendTo=\\\"body\\\">\\r\\n <ng-template let-item pTemplate=\\\"item\\\">\\r\\n <div class=\\\"flex items-center gap-2 px-2 py-1\\\">\\r\\n <i [ngClass]=\\\"item.icon\\\" class=\\\"text-primary-600\\\" *ngIf=\\\"item.icon\\\"></i>\\r\\n <span class=\\\"font-medium\\\">{{ (item.label || '') | translate }}</span>\\r\\n\\r\\n <span *ngIf=\\\"item.badge\\\" class=\\\"ml-auto text-xs bg-red-500 text-white px-2 py-1 rounded\\\">\\r\\n {{ item.badge }}\\r\\n </span>\\r\\n\\r\\n <!-- <p-inputSwitch *ngIf=\\\"item.toggle\\\" [(ngModel)]=\\\"item.toggleValue\\\" class=\\\"ml-auto\\\" /> -->\\r\\n </div>\\r\\n </ng-template>\\r\\n </p-menu>\\r\\n\\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 </ng-container>\\r\\n\\r\\n </td>\\r\\n </tr>\\r\\n </ng-template>\\r\\n </p-table>\\r\\n\\r\\n</div>\\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.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: \"component\", type: i4.Button, selector: \"p-button\", inputs: [\"type\", \"iconPos\", \"icon\", \"badge\", \"label\", \"disabled\", \"loading\", \"loadingIcon\", \"raised\", \"rounded\", \"text\", \"plain\", \"severity\", \"outlined\", \"link\", \"tabindex\", \"size\", \"variant\", \"style\", \"styleClass\", \"badgeClass\", \"badgeSeverity\", \"ariaLabel\", \"buttonProps\", \"autofocus\", \"fluid\"], outputs: [\"onClick\", \"onFocus\", \"onBlur\"] }, { kind: \"ngmodule\", type: MenuModule }, { kind: \"component\", type: i5.Menu, selector: \"p-menu\", inputs: [\"model\", \"popup\", \"style\", \"styleClass\", \"autoZIndex\", \"baseZIndex\", \"showTransitionOptions\", \"hideTransitionOptions\", \"ariaLabel\", \"ariaLabelledBy\", \"id\", \"tabindex\", \"appendTo\"], outputs: [\"onShow\", \"onHide\", \"onBlur\", \"onFocus\"] }, { kind: \"ngmodule\", type: TranslateModule }, { kind: \"component\", type: FormlyForm, selector: \"formly-form\", inputs: [\"form\", \"model\", \"fields\", \"options\"], outputs: [\"modelChange\"] }, { kind: \"pipe\", type: i6.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], template: \"\\r\\n<div class=\\\"flex-1 last:[&>td]:border-0 rounded-lg border border-surface w-full overflow-auto\\\">\\r\\n <p-table #dt\\r\\n [value]=\\\"data_\\\"\\r\\n [columns]=\\\"columns\\\"\\r\\n [lazy]=\\\"true\\\"\\r\\n [paginator]=\\\"paginator\\\"\\r\\n [rows]=\\\"rows\\\"\\r\\n [first]=\\\"first\\\"\\r\\n [totalRecords]=\\\"totalRecords\\\"\\r\\n [sortField]=\\\"sortField\\\"\\r\\n [sortOrder]=\\\"sortOrder\\\" (onLazyLoad)=\\\"onLazyLoad($event)\\\"\\r\\n [globalFilterFields]=\\\"globalFilterFields\\\"\\r\\n [loading]=\\\"loading\\\"\\r\\n [scrollable]=\\\"true\\\"\\r\\n [scrollHeight]=\\\"scrollHeight\\\"\\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 (sortFunction)=\\\"customSort($event)\\\"\\r\\n >\\r\\n\\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 style=\\\"font-size: 2.5rem;\\\" 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 @if (showAddButton) {\\r\\n\\r\\n\\r\\n <button\\r\\n pButton\\r\\n type=\\\"button\\\"\\r\\n severity=\\\"secondary\\\"\\r\\n icon=\\\"pi pi-plus\\\"\\r\\n label=\\\"{{ 'ADD_NEW' | translate }}\\\"\\r\\n class=\\\"p-button-rounded\\\"\\r\\n (click)=\\\"onAddNew.emit()\\\"\\r\\n ></button>\\r\\n }\\r\\n </div>\\r\\n </td>\\r\\n </tr>\\r\\n\\r\\n </ng-template>\\r\\n\\r\\n <ng-template pTemplate=\\\"header\\\" let-columns>\\r\\n <tr>\\r\\n <th *ngIf=\\\"showRowSelectionCheckbox\\\" style=\\\"width: 2rem\\\">\\r\\n <p-tableHeaderCheckbox></p-tableHeaderCheckbox>\\r\\n </th>\\r\\n\\r\\n <ng-container *ngFor=\\\"let col of columns\\\" >\\r\\n <th *ngIf=\\\"col.props?.table?.props?.width; else templateName\\\" [pSortableColumn]=\\\"col.key\\\"\\r\\n class=\\\"px-4 py-2 text-sm font-medium text-white text-center\\\"\\r\\n [style.min-width]=\\\"col.props?.table?.props?.width\\\">\\r\\n {{ col.props?.label | translate }}\\r\\n <p-sortIcon [field]=\\\"col.key\\\"></p-sortIcon>\\r\\n </th>\\r\\n\\r\\n <ng-template #templateName>\\r\\n <th style=\\\"min-width: 150px;\\\" class=\\\"px-4 py-2 text-sm font-medium text-white text-center\\\" [pSortableColumn]=\\\"col.key\\\">\\r\\n {{ col.props?.label | translate }}\\r\\n <p-sortIcon [field]=\\\"col.key\\\"></p-sortIcon>\\r\\n </th>\\r\\n </ng-template>\\r\\n</ng-container>\\r\\n\\r\\n\\r\\n <th class=\\\"px-4 py-2 text-sm font-medium text-white text-center\\\"> {{ 'OPERATIONS' | translate }}</th>\\r\\n </tr>\\r\\n </ng-template>\\r\\n\\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\\\" (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 *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 && col.props['table']\\r\\n && col.props['table']['props'] && col.props['table']['props']['width'] \\\"\\r\\n\\r\\n >\\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 <td class=\\\"border-t border-gray-200 px-4 py-2 text-center align-middle\\\">\\r\\n <ng-container [ngSwitch]=\\\"actionsMode\\\">\\r\\n <!-- Render buttons -->\\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)\\\"\\r\\n ></button>\\r\\n </ng-container>\\r\\n </ng-container>\\r\\n\\r\\n <!-- Render menu -->\\r\\n <ng-container *ngSwitchCase=\\\"'menu'\\\">\\r\\n <p-menu #menu [model]=\\\"getMenuItems(rowData)\\\" [popup]=\\\"true\\\" appendTo=\\\"body\\\">\\r\\n <ng-template let-item pTemplate=\\\"item\\\">\\r\\n <div class=\\\"flex items-center gap-2 px-2 py-1\\\">\\r\\n <i [ngClass]=\\\"item.icon\\\" class=\\\"text-primary-600\\\" *ngIf=\\\"item.icon\\\"></i>\\r\\n <span class=\\\"font-medium\\\">{{ (item.label || '') | translate }}</span>\\r\\n\\r\\n <span *ngIf=\\\"item.badge\\\" class=\\\"ml-auto text-xs bg-red-500 text-white px-2 py-1 rounded\\\">\\r\\n {{ item.badge }}\\r\\n </span>\\r\\n\\r\\n <!-- <p-inputSwitch *ngIf=\\\"item.toggle\\\" [(ngModel)]=\\\"item.toggleValue\\\" class=\\\"ml-auto\\\" /> -->\\r\\n </div>\\r\\n </ng-template>\\r\\n </p-menu>\\r\\n\\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 </ng-container>\\r\\n\\r\\n </td>\\r\\n </tr>\\r\\n </ng-template>\\r\\n </p-table>\\r\\n\\r\\n</div>\\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 }], 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 }], scrollHeight: [{\n type: Input\n }], rowSelectable: [{\n type: Input\n }], showAddButton: [{\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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2VuZXJpYy10YWJsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvbmcudWkuY29yZS9nZW5lcmljLXRhYmxlL3NyYy9saWIvZ2VuZXJpYy10YWJsZS50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvbmcudWkuY29yZS9nZW5lcmljLXRhYmxlL3NyYy9saWIvZ2VuZXJpYy10YWJsZS5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxZQUFZLEVBQUUsU0FBUyxFQUE2QixNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFckgsT0FBTyxFQUFFLEtBQUssRUFBMkUsTUFBTSxlQUFlLENBQUM7QUFDL0csT0FBTyxFQUFFLFlBQVksRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDOUQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM1QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3RELE9BQU8sRUFBRSxVQUFVLEVBQUUsSUFBSSxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQ2hELE9BQU8sRUFBRSxlQUFlLEVBQUUsYUFBYSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDckUsT0FBTyxFQUFFLFdBQVcsRUFBcUIsVUFBVSxFQUFxQixNQUFNLGtCQUFrQixDQUFDO0FBQ2pHLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUUzQyxPQUFPLEVBQUUsU0FBUyxFQUFXLE1BQU0sUUFBUSxDQUFDO0FBQzVDLDBEQUEwRDtBQUMxRCxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQzs7Ozs7Ozs7QUFReEQsTUFBTSxPQUFPLFlBQVk7SUFFdkIsa0JBQWtCLEdBQXlCLE1BQU0sQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDO0lBRTFELEVBQUUsQ0FBUztJQUVuQixJQUFJLEdBQVUsRUFBRSxDQUFDO0lBQ3pCLEtBQUssR0FBVSxFQUFFLENBQUM7SUFDUixPQUFPLEdBQXdCLEVBQUUsQ0FBQztJQUMzQyxlQUFlLEdBQVUsRUFBRSxDQUFDO0lBQzVCLFFBQVEsR0FBd0IsRUFBRSxDQUFDO0lBQzFCLE9BQU8sR0FBRyxLQUFLLENBQUM7SUFDaEIsT0FBTyxHQUFtQixFQUFFLENBQUM7SUFDN0IsV0FBVyxHQUF1QixTQUFTLENBQUM7SUFDNUMsS0FBSyxHQUFHLENBQUMsQ0FBQztJQUNWLElBQUksR0FBRyxFQUFFLENBQUM7SUFDVixZQUFZLEdBQUcsQ0FBQyxDQUFDO0lBQ2pCLFNBQVMsQ0FBVTtJQUNuQixTQUFTLEdBQVcsQ0FBQyxDQUFDO0lBQ3RCLGtCQUFrQixHQUFhLEVBQUUsQ0FBQztJQUVqQyxNQUFNLEdBQUcsSUFBSSxZQUFZLEVBQTRCLENBQUM7SUFDdEQsVUFBVSxHQUFHLElBQUksWUFBWSxFQUFzQixDQUFDO0lBRTlELCtEQUErRDtJQUNyRCxRQUFRLEdBQUcsSUFBSSxZQUFZLEVBQU8sQ0FBQztJQUVwQyxZQUFZLEdBQUcsT0FBTyxDQUFDO0lBRWpDLGdDQUFnQztJQUMvQix5Q0FBeUM7SUFDaEMsYUFBYSxHQUFHLElBQUksQ0FBQztJQUN2QixhQUFhLEdBQUcsSUFBSSxDQUFDO0lBQzVCLHlCQUF5QjtJQUN6Qiw0Q0FBNEM7SUFFNUMsZ0RBQWdEO0lBQ2hELFVBQVUsR0FBbUIsSUFBSSxDQUFDO0lBR2xDLElBQ0ksU0FBUztRQUNULE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQztJQUMzQixDQUFDO0lBQ0QsSUFBSSxTQUFTLENBQUMsR0FBbUI7UUFDN0IsSUFBSSxDQUFDLFVBQVUsR0FBRyxHQUFHLENBQUM7UUFDdEIsMERBQTBEO0lBQzlELENBQUM7SUFFRCxpQ0FBaUM7SUFDdkIsU0FBUyxHQUFHLElBQUksWUFBWSxFQUFLLENBQUM7SUFFekMsc0RBQXNEO0lBQy9DLGVBQWUsR0FBRyxJQUFJLFlBQVksRUFBa0IsQ0FBQztJQUc5RCx1Q0FBdUM7SUFDL0IsU0FBUyxHQUFHLElBQUksQ0FBQztJQUM1QixJQUFJLEdBQUcsSUFBSSxTQUFTLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDekIsT0FBTyxHQUFzQixFQUFFLENBQUM7SUFHOUIseURBQXlEO0lBQ3pELG1FQUFtRTtJQUMxRCx3QkFBd0IsR0FBRyxLQUFLLENBQUM7SUFHMUMseUJBQXlCLENBQUMsS0FDUTtRQUNsQyxJQUFJLE1BQU0sSUFBSSxLQUFLLEVBQUUsQ0FBQztZQUNwQiwyQ0FBMkM7WUFDM0MsSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUFDO2dCQUNuQyxJQUFJLENBQUMsVUFBVSxHQUFHLENBQUMsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxnQ0FBZ0M7WUFDMUUsQ0FBQztpQkFBTSxDQUFDO2dCQUNOLElBQUksQ0FBQyxVQUFVLEdBQUcsS0FBSyxDQUFDLElBQVMsQ0FBQyxDQUFDLGNBQWM7WUFDbkQsQ0FBQztRQUNILENBQUM7YUFBTSxJQUFJLFNBQVMsSUFBSSxLQUFLLEVBQUUsQ0FBQztZQUM5Qix5QkFBeUI7WUFDekIsSUFBSSxDQUFDLFVBQVUsR0FBRyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7UUFDeEQsQ0FBQztRQUVELElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUM3QyxDQUFDO0lBSUQsVUFBVSxDQUFDLEtBQWdCO1FBQ3pCLEtBQUssQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUMsS0FBSyxFQUFFLEtBQUssRUFBRSxFQUFFO1lBQ2hDLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLEtBQUssSUFBSSxFQUFFLENBQUMsQ0FBQztZQUMvRCxNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxLQUFLLElBQUksRUFBRSxDQUFDLENBQUM7WUFFL0QsSUFBSSxNQUFNLEdBQUcsQ0FBQyxDQUFDO1lBQ2YsSUFBSSxNQUFNLElBQUksSUFBSSxJQUFJLE1BQU0sSUFBSSxJQUFJO2dCQUFFLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQztpQkFDN0MsSUFBSSxNQUFNLElBQUksSUFBSSxJQUFJLE1BQU0sSUFBSSxJQUFJO2dCQUFFLE1BQU0sR0FBRyxDQUFDLENBQUM7aUJBQ2pELElBQUksTUFBTSxJQUFJLElBQUksSUFBSSxNQUFNLElBQUksSUFBSTtnQkFBRSxNQUFNLEdBQUcsQ0FBQyxDQUFDO2lCQUNqRCxJQUFJLE9BQU8sTUFBTSxLQUFLLFFBQVEsSUFBSSxPQUFPLE1BQU0sS0FBSyxRQUFRO2dCQUMvRCxNQUFNLEdBQUcsTUFBTSxDQUFDLGFBQWEsQ0FBQyxNQUFNLENBQUMsQ0FBQzs7Z0JBQ25DLE1BQU0sR0FBRyxNQUFNLEdBQUcsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFFN0QsT0FBTyxDQUFDLEtBQUssQ0FBQyxLQUFLLElBQUksQ0FBQyxDQUFDLEdBQUcsTUFBTSxDQUFDO1FBQ3JDLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUNELGdCQUFnQixDQUFDLElBQVMsRUFBRSxLQUFhO1FBQ3ZDLElBQUksQ0FBQyxLQUFLO1lBQUUsT0FBTyxJQUFJLENBQUM7UUFDeEIsSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUFFLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ2xELE9BQU8sS0FBSyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxHQUFHLEVBQUUsSUFBSSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsRUFBRSxJQUFJLENBQUMsQ0FBQztJQUNoRixDQUFDO0lBRUQsdUNBQXVDO0lBQ3ZDLDZCQUE2QjtJQUM3QixvRkFBb0Y7SUFDcEYsOERBQThEO0lBQzlELHVEQUF1RDtJQUN2RCxJQUFJO0lBRUosSUFBSSxhQUFhO1FBQ2YsT0FBTyxJQUFJLENBQUMsT0FBTzthQUNoQixNQUFNLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FDZixDQUFDLE1BQU0sQ0FBQyxXQUFXLEVBQUUsTUFBTSxJQUFJLHlCQUF5QjtZQUN4RCxNQUFNLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxjQUFjO1NBQ3ZGO2FBQ0EsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxJQUFJLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEtBQUssSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ3JELENBQUM7SUFHQSxRQUFRLENBQUMsR0FBaUIsRUFBRSxHQUFNO1FBQy9CLElBQUksR0FBRyxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQ2YsR0FBRyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUNsQixDQUFDO2FBQU0sQ0FBQztZQUNOLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEVBQUUsSUFBSSxFQUFFLEdBQUcsQ0FBQyxJQUFJLEVBQUUsR0FBRyxFQUFFLENBQUMsQ0FBQztRQUM1QyxDQUFDO0lBQ0gsQ0FBQztJQUNILGlDQUFpQztJQUNqQyx1REFBdUQ7SUFDdkQsb0JBQW9CO0lBQ3BCLE1BQU07SUFFTixpQ0FBaUM7SUFDakMsaUNBQWlDO0lBQ2pDLHlEQUF5RDtJQUN6RCxNQUFNO0lBQ04sNEJBQTRCO0lBQzVCLDRDQUE0QztJQUM1QyxpREFBaUQ7SUFDakQsTUFBTTtJQUVOLG1CQUFtQjtJQUNuQixJQUFJO0lBRUgseURBQXlEO0lBQ2hELFNBQVMsR0FBMkIsSUFBSSxHQUFHLEVBQUUsQ0FBQztJQUN0RCxLQUFLLEdBQWMsSUFBSSxTQUFTLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyw0QkFBNEI7SUFHbEUseURBQXlEO0lBQ3pELE9BQU8sQ0FBQyxRQUFnQixFQUFFLFFBQWdCO1FBQ3hDLE1BQU0sR0FBRyxHQUFHLEdBQUcsUUFBUSxJQUFJLFFBQVEsRUFBRSxDQUFDO1FBQ3RDLElBQUksSUFBSSxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBRW5DLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUNWLElBQUksR0FBRyxJQUFJLFNBQVMsQ0FBQyxFQUFFLENBQUMsQ0FBQztZQUN6QixJQUFJLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDaEMsQ0FBQztRQUNELE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUNILFNBQVMsQ0FBQyxLQUFhLEVBQUUsSUFBUztRQUNoQyxPQUFPLEtBQUssQ0FBQyxDQUFDLHdDQUF3QztJQUN4RCxDQUFDO0lBQ0EsZ0VBQWdFO0lBQy9ELFdBQVcsQ0FBQyxPQUFzQjtRQUNoQyw0Q0FBNEM7UUFDNUMsSUFBSSxPQUFPLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQztZQUNwQixNQUFNLFdBQVcsR0FBRyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUMsWUFBWSxDQUFDO1lBQ2pELE1BQU0sWUFBWSxHQUFHLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQyxhQUFhLENBQUM7WUFHbkQsdUVBQXVFO1lBQ3ZFLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUNyQixDQUFDO0lBQ0gsQ0FBQztJQUVGLFVBQVUsQ0FBQyxLQUF5QjtRQUNqQyxzQ0FBc0M7UUFDdEMsMEJBQTBCO1FBQzVCLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUNqQixJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUM5QixDQUFDO0lBR0QsV0FBVyxDQUFDLE9BQVk7UUFDdEIsZUFBZTtRQUNmLCtDQUErQztRQUMvQyxXQUFXO1FBQ1gsOENBQThDO1FBQzlDLElBQUk7SUFFTixDQUFDO0lBQ0QsV0FBVztRQUNSLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLEVBQUU7WUFDdEMsNENBQTRDO1lBQzVDLE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxFQUFFO2dCQUN2QyxPQUFPLFNBQVMsQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUN4QixDQUFDLENBQUMsQ0FBQztZQUNILGtEQUFrRDtZQUNsRCxPQUFPO2dCQUNMLEdBQUcsT0FBTztnQkFDVixTQUFTLEVBQUUsU0FBUzthQUNyQixDQUFDO1FBQ0osQ0FBQyxDQUFDLENBQUM7SUFDSCxDQUFDO0lBRUQsWUFBWSxDQUFDLEdBQU07UUFDakIsT0FBTyxJQUFJLENBQUMsYUFBYSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUM7WUFDcEMsS0FBSyxFQUFFLEdBQUcsQ0FBQyxLQUFLO1lBQ2hCLElBQUksRUFBRSxHQUFHLENBQUMsSUFBSTtZQUNkLE9BQU8sRUFBRSxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsRUFBRSxHQUFHLENBQUU7WUFDdkMsVUFBVSxFQUFFLEdBQUcsQ0FBQyxVQUFVO1NBQzNCLENBQUMsQ0FBQyxDQUFDO0lBQ04sQ0FBQztJQUVGLHdDQUF3QztJQUN2QyxXQUFXLENBQUMsS0FBNkI7UUFDdkMsV0FBVztRQUNYLElBQUksS0FBSyxDQUFDLElBQUksRUFBRSxDQUFDO1lBQ2YsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQVMsQ0FBQyxDQUFDO1FBQ3ZDLENBQUM7SUFDSCxDQUFDO3VHQWxPVSxZQUFZOzJGQUFaLFlBQVksbXhCQ3JCekIsczVMQW1KQSxvVkRsSVksWUFBWSx5aEJBQUUsV0FBVyxnaEZBQUUsWUFBWSx1cEJBQUUsVUFBVSwwVUFBVSxlQUFlLCtCQUFhLFVBQVU7OzJGQUlsRyxZQUFZO2tCQU54QixTQUFTOytCQUNFLG1CQUFtQixXQUNwQixDQUFDLFlBQVksRUFBRSxXQUFXLEVBQUUsWUFBWSxFQUFFLFVBQVUsRUFBRSxPQUFPLEVBQUMsZUFBZSxFQUFDLFdBQVcsRUFBQyxVQUFVLEVBQUUsSUFBSSxFQUFFLGFBQWEsRUFBRSxJQUFJLEVBQUUsTUFBTSxDQUFDOzhCQVFsSSxFQUFFO3NCQUFsQixTQUFTO3VCQUFDLElBQUk7Z0JBRU4sSUFBSTtzQkFBWixLQUFLO2dCQUVLLE9BQU87c0JBQWYsS0FBSztnQkFHRyxPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csT0FBTztzQkFBZixLQUFLO2dCQUNHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBQ0csS0FBSztzQkFBYixLQUFLO2dCQUNHLElBQUk7c0JBQVosS0FBSztnQkFDRyxZQUFZO3NCQUFwQixLQUFLO2dCQUNHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSztnQkFDRyxrQkFBa0I7c0JBQTFCLEtBQUs7Z0JBRUksTUFBTTtzQkFBZixNQUFNO2dCQUNHLFVBQVU7c0JBQW5CLE1BQU07Z0JBR0csUUFBUTtzQkFBakIsTUFBTTtnQkFFRSxZQUFZO3NCQUFwQixLQUFLO2dCQUlHLGFBQWE7c0JBQXJCLEtBQUs7Z0JBQ0MsYUFBYTtzQkFBckIsS0FBSztnQkFTQSxTQUFTO3NCQURaLEtBQUs7Z0JBVUksU0FBUztzQkFBbEIsTUFBTTtnQkFHRyxlQUFlO3NCQUF4QixNQUFNO2dCQUlFLFNBQVM7c0JBQWpCLEtBQUs7Z0JBT0csd0JBQXdCO3NCQUFoQyxLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCwgT3V0cHV0LCBFdmVudEVtaXR0ZXIsIFZpZXdDaGlsZCwgIE9uQ2hhbmdlcywgU2ltcGxlQ2hhbmdlcywgaW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IE1lbnVJdGVtLCBTb3J0RXZlbnQgfSBmcm9tICdwcmltZW5nL2FwaSc7XHJcbmltcG9ydCB7IFRhYmxlLCBUYWJsZUhlYWRlckNoZWNrYm94VG9nZ2xlRXZlbnQsIFRhYmxlTGF6eUxvYWRFdmVudCwgVGFibGVSb3dTZWxlY3RFdmVudCB9IGZyb20gJ3ByaW1lbmcvdGFibGUnO1xyXG5pbXBvcnQgeyBDb21tb25Nb2R1bGUsIE5nRm9yT2YsIE5nSWYgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBUYWJsZU1vZHVsZSB9IGZyb20gJ3ByaW1lbmcvdGFibGUnO1xyXG5pbXBvcnQgeyBCdXR0b25Nb2R1bGUsIEJ1dHRvbiB9IGZyb20gJ3ByaW1lbmcvYnV0dG9uJztcclxuaW1wb3J0IHsgTWVudU1vZHVsZSwgTWVudSB9IGZyb20gJ3ByaW1lbmcvbWVudSc7XHJcbmltcG9ydCB7IFRyYW5zbGF0ZU1vZHVsZSwgVHJhbnNsYXRlUGlwZSB9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xyXG5pbXBvcnQgeyBGb3JtbHlGaWVsZCwgRm9ybWx5RmllbGRDb25maWcsIEZvcm1seUZvcm0sIEZvcm1seUZvcm1PcHRpb25zIH0gZnJvbSAnQG5neC1mb3JtbHkvY29yZSc7XHJcbmltcG9ydCB7IEZvcm1Hcm91cCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgQWN0aW9uRGVmIH0gZnJvbSAnQGVsaXRlLmZyYW1ld29yay9uZy5jb3JlL21vZGVscyc7XHJcbmltcG9ydCB7IGNsb25lRGVlcCwgZm9yRWFjaCB9IGZyb20gJ2xvZGFzaCc7XHJcbi8vIGltcG9ydCB7IE5neFBlcm1pc3Npb25zTW9kdWxlIH0gZnJvbSAnbmd4LXBlcm1pc3Npb25zJztcclxuaW1wb3J0IHsgTmd4UGVybWlzc2lvbnNTZXJ2aWNlIH0gZnJvbSAnbmd4LXBlcm1pc3Npb25zJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnbGliLWdlbmVyaWMtdGFibGUnLFxyXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIFRhYmxlTW9kdWxlLCBCdXR0b25Nb2R1bGUsIE1lbnVNb2R1bGUsIE5nRm9yT2YsVHJhbnNsYXRlTW9kdWxlLEZvcm1seUZpZWxkLEZvcm1seUZvcm0sIE5nSWYsIFRyYW5zbGF0ZVBpcGUsIE1lbnUsIEJ1dHRvbl0sXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2dlbmVyaWMtdGFibGUuaHRtbCcsXHJcbiAgc3R5bGVVcmw6ICcuL2dlbmVyaWMtdGFibGUuY3NzJ1xyXG59KVxyXG5leHBvcnQgY2xhc3MgR2VuZXJpY1RhYmxlPFQ+ICBpbXBsZW1lbnRzIE9uQ2hhbmdlc3tcclxuXHJcbiAgcGVybWlzc2lvbnNTZXJ2aWNlOk5neFBlcm1pc3Npb25zU2VydmljZSA9IGluamVjdChOZ3hQZXJtaXNzaW9uc1NlcnZpY2UpO1xyXG5cclxuQFZpZXdDaGlsZCgnZHQnKSBkdCE6IFRhYmxlO1xyXG5cclxuQElucHV0KCkgZGF0YTogYW55W10gPSBbXTtcclxuIGRhdGFfOiBhbnlbXSA9IFtdO1xyXG4gIEBJbnB1dCgpIGNvbHVtbnM6IEZvcm1seUZpZWxkQ29uZmlnW10gPSBbXTtcclxuICBwcm9jZXNzZWRGaWVsZHM6IGFueVtdID0gW107XHJcbiAgY29sdW1uc186IEZvcm1seUZpZWxkQ29uZmlnW10gPSBbXTtcclxuICBASW5wdXQoKSBsb2FkaW5nID0gZmFsc2U7XHJcbiAgQElucHV0KCkgYWN0aW9uczogQWN0aW9uRGVmPFQ+W10gPSBbXTtcclxuICBASW5wdXQoKSBhY3Rpb25zTW9kZTogJ2J1dHRvbnMnIHwgJ21lbnUnID0gJ2J1dHRvbnMnO1xyXG4gIEBJbnB1dCgpIGZpcnN0ID0gMDtcclxuICBASW5wdXQoKSByb3dzID0gMTA7XHJcbiAgQElucHV0KCkgdG90YWxSZWNvcmRzID0gMDtcclxuICBASW5wdXQoKSBzb3J0RmllbGQ/OiBzdHJpbmc7XHJcbiAgQElucHV0KCkgc29ydE9yZGVyOiAxIHwgLTEgPSAxO1xyXG4gIEBJbnB1dCgpIGdsb2JhbEZpbHRlckZpZWxkczogc3RyaW5nW10gPSBbXTtcclxuXHJcbiAgQE91dHB1dCgpIGFjdGlvbiA9IG5ldyBFdmVudEVtaXR0ZXI8eyBuYW1lOiBzdHJpbmc7IHJvdzogVCB9PigpO1xyXG4gIEBPdXRwdXQoKSBwYWdlQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxUYWJsZUxhenlMb2FkRXZlbnQ+KCk7XHJcblxyXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8tb3V0cHV0LW9uLXByZWZpeFxyXG4gIEBPdXRwdXQoKSBvbkFkZE5ldyA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xyXG5cclxuICBASW5wdXQoKSBzY3JvbGxIZWlnaHQgPSAnNDAwcHgnO1xyXG5cclxuIC8vICoq2KzYr9mK2K8qKjog2KrZhdmD2YrZhiDYp9iu2KrZitin2LEg2KfZhNi12YHZiNmBXHJcbiAgLyoqINmB2LnZkdmEINin2K7YqtmK2KfYsSDYp9mE2LXZgdmK2YYgc2luZ2xlL211bHRpcGxlICovXHJcbiAgQElucHV0KCkgcm93U2VsZWN0YWJsZSA9IHRydWU7XHJcbkBJbnB1dCgpIHNob3dBZGRCdXR0b24gPSB0cnVlO1xyXG4gIC8qKiDZitit2KrZgdi4INio2KfZhNi12YEg2KfZhNmF2K3Yr9ivICovXHJcbiAgLy9ASW5wdXQoKSBzZWxlY3Rpb246IFQgfCBUW10gfCBudWxsID0gbnVsbDtcclxuXHJcbiAgLy8g2YfYsNinINiz2YrZg9mI2YYg2YXYsdiq2KjYt9mL2Kcg2KjZgCBbKHNlbGVjdGlvbildINmB2YogcC10YWJsZVxyXG4gIF9zZWxlY3Rpb246IFQgfCBUW10gfCBudWxsID0gbnVsbDtcclxuXHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgZ2V0IHNlbGVjdGlvbigpOiBUIHwgVFtdIHwgbnVsbCB7XHJcbiAgICAgIHJldHVybiB0aGlzLl9zZWxlY3Rpb247XHJcbiAgfVxyXG4gIHNldCBzZWxlY3Rpb24odmFsOiBUIHwgVFtdIHwgbnVsbCkge1xyXG4gICAgICB0aGlzLl9zZWxlY3Rpb24gPSB2YWw7XHJcbiAgICAgIC8vINmE2Kcg2KrZj9i12K/YsSDYp9mE2K3Yr9irINmH2YbYp9iMINio2YQg2YHZiiBvbkludGVybmFsU2VsZWN0aW9uQ2hhbmdlINmB2YLYt1xyXG4gIH1cclxuXHJcbiAgLyoqINmK2LXYr9ixINin2YTYtdmBINin2YTZhdit2K/YryDYudmG2K8g2KfZhNmG2YLYsSAqL1xyXG4gIEBPdXRwdXQoKSByb3dTZWxlY3QgPSBuZXcgRXZlbnRFbWl0dGVyPFQ+KCk7XHJcblxyXG4gICAgIC8qKiDZiti12K/YsSDYp9mE2LXZgdmI2YEg2KfZhNmF2K3Yr9iv2Kkg2LnZhtivINin2YTYqti62YrZitixICjZhNmE2LHYqNi3INin2YTYq9mG2KfYptmKKSAqL1xyXG4gIEBPdXRwdXQoKSBzZWxlY3Rpb25DaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPFQgfCBUW10gfCBudWxsPigpO1xyXG5cclxuXHJcbiAgIC8qKiDYrNiv2YrYrzog2KfZhNiq2K3Zg9mFINio2LjZh9mI2LEg2KfZhNmAIHBhZ2luYXRvciAqL1xyXG4gIEBJbnB1dCgpIHBhZ2luYXRvciA9IHRydWU7XHJcbmZvcm0gPSBuZXcgRm9ybUdyb3VwKHt9KTtcclxub3B0aW9uczogRm9ybWx5Rm9ybU9wdGlvbnMgPSB7fTtcclxuXHJcblxyXG4gIC8vICoq2KzYr9mK2K8qKjog2YrYqtit2YPZhSDYqNil2LjZh9in2LEg2LnZhdmI2K8g2KfYrtiq2YrYp9ixINin2YTYtdmB2YjZgSAoY2hlY2tib3hlcylcclxuICAvKiog2YrYqtit2YPZhSDZgdmKINil2LjZh9in2LEg2LnZhdmI2K8g2KfYrtiq2YrYp9ixINin2YTYtdmB2YjZgSDYp9mE2YXYqti52K/Yr9ipINio2YjYp9iz2LfYqSBjaGVja2JveGVzICovXHJcbiAgQElucHV0KCkgc2hvd1Jvd1NlbGVjdGlvbkNoZWNrYm94ID0gZmFsc2U7XHJcblxyXG5cclxuICBvbkludGVybmFsU2VsZWN0aW9uQ2hhbmdlKGV2ZW50OiBUYWJsZVJvd1NlbGVjdEV2ZW50PFQ+XHJcbiAgICB8IFRhYmxlSGVhZGVyQ2hlY2tib3hUb2dnbGVFdmVudCk6IHZvaWQge1xyXG4gIGlmICgnZGF0YScgaW4gZXZlbnQpIHtcclxuICAgIC8vIFJvdyBzZWxlY3QvdW5zZWxlY3QgKHNpbmdsZSDYo9mIIG11bHRpcGxlKVxyXG4gICAgaWYgKEFycmF5LmlzQXJyYXkodGhpcy5fc2VsZWN0aW9uKSkge1xyXG4gICAgICB0aGlzLl9zZWxlY3Rpb24gPSBbLi4udGhpcy5fc2VsZWN0aW9uXTsgLy8g2KrYrdiv2YrYqyDZhtiz2K7YqSDYp9mE2YXYtdmB2YjZgdipINi52YbYryDZhdiq2LnYr9ivXHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLl9zZWxlY3Rpb24gPSBldmVudC5kYXRhIGFzIFQ7IC8vINin2K7YqtmK2KfYsSDZgdix2K/ZilxyXG4gICAgfVxyXG4gIH0gZWxzZSBpZiAoJ2NoZWNrZWQnIGluIGV2ZW50KSB7XHJcbiAgICAvLyBIZWFkZXIgY2hlY2tib3ggdG9nZ2xlXHJcbiAgICB0aGlzLl9zZWxlY3Rpb24gPSBldmVudC5jaGVja2VkID8gWy4uLnRoaXMuZGF0YV0gOiBbXTtcclxuICB9XHJcblxyXG4gIHRoaXMuc2VsZWN0aW9uQ2hhbmdlLmVtaXQodGhpcy5fc2VsZWN0aW9uKTtcclxufVxyXG5cclxuXHJcblxyXG5jdXN0b21Tb3J0KGV2ZW50OiBTb3J0RXZlbnQpIHtcclxuICBldmVudC5kYXRhPy5zb3J0KChkYXRhMSwgZGF0YTIpID0+IHtcclxuICAgIGNvbnN0IHZhbHVlMSA9IHRoaXMucmVzb2x2ZUZpZWxkRGF0YShkYXRhMSwgZXZlbnQuZmllbGQgPz8gJycpO1xyXG4gICAgY29uc3QgdmFsdWUyID0gdGhpcy5yZXNvbHZlRmllbGREYXRhKGRhdGEyLCBldmVudC5maWVsZCA/PyAnJyk7XHJcblxyXG4gICAgbGV0IHJlc3VsdCA9IDA7XHJcbiAgICBpZiAodmFsdWUxID09IG51bGwgJiYgdmFsdWUyICE9IG51bGwpIHJlc3VsdCA9IC0xO1xyXG4gICAgZWxzZSBpZiAodmFsdWUxICE9IG51bGwgJiYgdmFsdWUyID09IG51bGwpIHJlc3VsdCA9IDE7XHJcbiAgICBlbHNlIGlmICh2YWx1ZTEgPT0gbnVsbCAmJiB2YWx1ZTIgPT0gbnVsbCkgcmVzdWx0ID0gMDtcclxuICAgIGVsc2UgaWYgKHR5cGVvZiB2YWx1ZTEgPT09ICdzdHJpbmcnICYmIHR5cGVvZiB2YWx1ZTIgPT09ICdzdHJpbmcnKVxyXG4gICAgICByZXN1bHQgPSB2YWx1ZTEubG9jYWxlQ29tcGFyZSh2YWx1ZTIpO1xyXG4gICAgZWxzZSByZXN1bHQgPSB2YWx1ZTEgPCB2YWx1ZTIgPyAtMSA6IHZhbHVlMSA+IHZhbHVlMiA/IDEgOiAwO1xyXG5cclxuICAgIHJldHVybiAoZXZlbnQub3JkZXIgPz8gMSkgKiByZXN1bHQ7XHJcbiAgfSk7XHJcbn1cclxucmVzb2x2ZUZpZWxkRGF0YShkYXRhOiBhbnksIGZpZWxkOiBzdHJpbmcpOiBhbnkge1xyXG4gIGlmICghZmllbGQpIHJldHVybiBudWxsO1xyXG4gIGlmIChmaWVsZC5pbmRleE9mKCcuJykgPT09IC0xKSByZXR1cm4gZGF0YVtmaWVsZF07XHJcbiAgcmV0dXJuIGZpZWxkLnNwbGl0KCcuJykucmVkdWNlKChvYmosIHByb3ApID0+IChvYmogPyBvYmpbcHJvcF0gOiBudWxsKSwgZGF0YSk7XHJcbn1cclxuXHJcbi8vIGdldE9yZGVyZWRDb2x1bW5zKCk6IFRhYmxlQ29sdW1uW10ge1xyXG4vLyAgIHJldHVybiBbLi4udGhpcy5jb2x1bW5zLFxyXG4vLyAgICAgLi4uKHRoaXMuc2hvd1Jvd1NlbGVjdGlvbkNoZWNrYm94ID8gW3sgdHlwZTogJ3NlbGVjdGlvbicsIG9yZGVyOiAtMSB9XSA6IFtdKSxcclxuLy8gICAgIHsgdHlwZTogJ29wZXJhdGlvbnMnLCBsYWJlbDogJ09QRVJBVElPTlMnLCBvcmRlcjogOTk5IH1cclxuLy8gICBdLnNvcnQoKGEsIGIpID0+IChhLm9yZGVyID8/IDApIC0gKGIub3JkZXIgPz8gMCkpO1xyXG4vLyB9XHJcblxyXG5nZXQgc29ydGVkQWN0aW9ucygpOiBBY3Rpb25EZWY8VD5bXSB7XHJcbiAgcmV0dXJuIHRoaXMuYWN0aW9uc1xyXG4gICAgLmZpbHRlcihhY3Rpb24gPT5cclxuICAgICAgIWFjdGlvbi5wZXJtaXNzaW9ucz8ubGVuZ3RoIHx8IC8vIG5vIHBlcm1pc3Npb25zIOKGkiBhbGxvd1xyXG4gICAgICBhY3Rpb24ucGVybWlzc2lvbnMuZXZlcnkocCA9PiB0aGlzLnBlcm1pc3Npb25zU2VydmljZS5oYXNQZXJtaXNzaW9uKHApKSAvLyBhbGwgZ3JhbnRlZFxyXG4gICAgKVxyXG4gICAgLnNvcnQoKGEsIGIpID0+IChhLm9yZGVyID8/IDApIC0gKGIub3JkZXIgPz8gMCkpO1xyXG59XHJcblxyXG5cclxuIG9uQWN0aW9uKGFjdDogQWN0aW9uRGVmPFQ+LCByb3c6IFQpIHtcclxuICAgIGlmIChhY3QuYWN0aW9uKSB7XHJcbiAgICAgIGFjdC5hY3Rpb24ocm93KTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuYWN0aW9uLmVtaXQoeyBuYW1lOiBhY3QubmFtZSwgcm93IH0pO1xyXG4gICAgfVxyXG4gIH1cclxuLy8gIGNsb25lRmllbGQoZmllbGQ6IGFueSk6IGFueSB7XHJcbi8vICAgaWYgKGZpZWxkID09PSBudWxsIHx8IHR5cGVvZiBmaWVsZCAhPT0gJ29iamVjdCcpIHtcclxuLy8gICAgIHJldHVybiBmaWVsZDtcclxuLy8gICB9XHJcblxyXG4vLyAgICBpZiAoQXJyYXkuaXNBcnJheShmaWVsZCkpIHtcclxuLy8gICAgIC8vIHByZXNlcnZlIGB0aGlzYCBjb250ZXh0XHJcbi8vICAgICByZXR1cm4gZmllbGQubWFwKChpdGVtKSA9PiB0aGlzLmNsb25lRmllbGQoaXRlbSkpO1xyXG4vLyAgIH1cclxuLy8gICBjb25zdCBjbG9uZWQ6IGFueSA9IHt9O1xyXG4vLyAgIGZvciAoY29uc3Qga2V5IG9mIE9iamVjdC5rZXlzKGZpZWxkKSkge1xyXG4vLyAgICAgY2xvbmVkW2tleV0gPSB0aGlzLmNsb25lRmllbGQoZmllbGRba2V5XSk7XHJcbi8vICAgfVxyXG5cclxuLy8gICByZXR1cm4gY2xvbmVkO1xyXG4vLyB9XHJcblxyXG4gLy8gVXNlIGEgbWFwIHRvIHN0b3JlIGZvcm0gZ3JvdXBzIGZvciBlYWNoIHJvdyBhbmQgY29sdW1uXHJcbiAgcHJpdmF0ZSBjZWxsRm9ybXM6IE1hcDxzdHJpbmcsIEZvcm1Hcm91cD4gPSBuZXcgTWFwKCk7XHJcbiAgZm9ybXM6IEZvcm1Hcm91cCA9IG5ldyBGb3JtR3JvdXAoe30pOyAvLyBBIG1haW4gZm9ybSBmb3IgdGhlIHRhYmxlXHJcblxyXG5cclxuICAvLyBSZWZhY3RvcmVkIGdldEZvcm0gdG8gcmV0dXJuIGFuIGV4aXN0aW5nIGZvcm0gaW5zdGFuY2VcclxuICBnZXRGb3JtKHJvd0luZGV4OiBudW1iZXIsIGNvbEluZGV4OiBudW1iZXIpOiBGb3JtR3JvdXAge1xyXG4gICAgY29uc3Qga2V5ID0gYCR7cm93SW5kZXh9XyR7Y29sSW5kZXh9YDtcclxuICAgIGxldCBmb3JtID0gdGhpcy5jZWxsRm9ybXMuZ2V0KGtleSk7XHJcblxyXG4gICAgaWYgKCFmb3JtKSB7XHJcbiAgICAgIGZvcm0gPSBuZXcgRm9ybUdyb3VwKHt9KTtcclxuICAgICAgdGhpcy5jZWxsRm9ybXMuc2V0KGtleSwgZm9ybSk7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gZm9ybTtcclxuICB9XHJcbnRyYWNrQnlGbihpbmRleDogbnVtYmVyLCBpdGVtOiBhbnkpIHtcclxuICByZXR1cm4gaW5kZXg7IC8vIG9yIGEgdW5pcXVlIGlkZW50aWZpZXIgZnJvbSB5b3VyIGRhdGFcclxufVxyXG4gLy8gVGhpcyBtZXRob2QgaXMgY2FsbGVkIHdoZW5ldmVyIGFueSBASW5wdXQoKSBwcm9wZXJ0eSBjaGFuZ2VzLlxyXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcclxuICAgIC8vIENoZWNrIGlmIHRoZSAnZGF0YScgcHJvcGVydHkgaGFzIGNoYW5nZWQuXHJcbiAgICBpZiAoY2hhbmdlc1snZGF0YSddKSB7XHJcbiAgICAgIGNvbnN0IGN1cnJlbnREYXRhID0gY2hhbmdlc1snZGF0YSddLmN1cnJlbnRWYWx1ZTtcclxuICAgICAgY29uc3QgcHJldmlvdXNEYXRhID0gY2hhbmdlc1snZGF0YSddLnByZXZpb3VzVmFsdWU7XHJcblxyXG5cclxuICAgICAgLy8gRm9yIGV4YW1wbGUsIHlvdSBjYW4gY2FsbCBhIG1ldGhvZCB0byByZS1yZW5kZXIgb3IgcHJvY2VzcyB0aGUgZGF0YS5cclxuICAgICAgdGhpcy5yZWZyZXNoRGF0YSgpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiBvbkxhenlMb2FkKGV2ZW50OiBUYWJsZUxhenlMb2FkRXZlbnQpOiB2b2lkIHtcclxuICAgIC8vIFJlaW5pdGlhbGl6ZSBmb3JtcyBvbiBuZXcgZGF0YSBsb2FkXHJcbiAgICAvLyB0aGlzLmNlbGxGb3Jtcy5jbGVhcigpO1xyXG4gIHRoaXMucmVmcmVzaERhdGEoKTtcclxuICAgIHRoaXMucGFnZUNoYW5nZS5lbWl0KGV2ZW50KTtcclxuICB9XHJcblxyXG5cclxuICBhcHBseUZpbHRlcihmaWx0ZXJzOiBhbnkpOiB2b2lkIHtcclxuICAgIC8vIGlmIChmaWVsZCkge1xyXG4gICAgLy8gICB0aGlzLmR0LmZpbHRlcihnbG9iYWwsIGZpZWxkLCAnY29udGFpbnMnKTtcclxuICAgIC8vIH0gZWxzZSB7XHJcbiAgICAvLyAgIHRoaXMuZHQuZmlsdGVyR2xvYmFsKGdsb2JhbCwgJ2NvbnRhaW5zJyk7XHJcbiAgICAvLyB9XHJcblxyXG4gIH1cclxuICByZWZyZXNoRGF0YSgpe1xyXG4gICAgIHRoaXMuZGF0YV8gPSB0aGlzLmRhdGEubWFwKHJvd0RhdGEgPT4ge1xyXG4gICAgLy8gQ3JlYXRlIGEgbmV3IGFycmF5IG9mIGZpZWxkcyBmb3IgZWFjaCByb3dcclxuICAgIGNvbnN0IHJvd0ZpZWxkcyA9IHRoaXMuY29sdW1ucy5tYXAoY29sID0+IHtcclxuICAgICAgcmV0dXJuIGNsb25lRGVlcChjb2wpO1xyXG4gICAgfSk7XHJcbiAgICAvLyBBdHRhY2ggdGhlIHVuaXF1ZSBmaWVsZHMgdG8gdGhlIHJvdyBkYXRhIG9iamVjdFxyXG4gICAgcmV0dXJuIHtcclxuICAgICAgLi4ucm93RGF0YSxcclxuICAgICAgcm93RmllbGRzOiByb3dGaWVsZHNcclxuICAgIH07XHJcbiAgfSk7XHJcbiAgfVxyXG5cclxuICBnZXRNZW51SXRlbXMocm93OiBUKTogTWVudUl0ZW1bXSB7XHJcbiAgICByZXR1cm4gdGhpcy5zb3J0ZWRBY3Rpb25zLm1hcChhY3QgPT4gKHtcclxuICAgICAgbGFiZWw6IGFjdC5sYWJlbCxcclxuICAgICAgaWNvbjogYWN0Lmljb24sXHJcbiAgICAgIGNvbW1hbmQ6ICgpID0+IHRoaXMub25BY3Rpb24oYWN0LCByb3cgKSxcclxuICAgICAgc3R5bGVDbGFzczogYWN0LnN0eWxlQ2xhc3NcclxuICAgIH0pKTtcclxuICB9XHJcblxyXG4gLy8gKirYrNiv2YrYryoqOiDZitiq2YUg2KXYt9mE2KfZgiDZh9iw2Kcg2LnZhtivINin2K7YqtmK2KfYsSDYtdmBXHJcbiAgb25Sb3dTZWxlY3QoZXZlbnQ6IFRhYmxlUm93U2VsZWN0RXZlbnQ8VD4pIHtcclxuICAgIC8vIGRlYnVnZ2VyXHJcbiAgICBpZiAoZXZlbnQuZGF0YSkge1xyXG4gICAgICB0aGlzLnJvd1NlbGVjdC5lbWl0KGV2ZW50LmRhdGEgYXMgVCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxufVxyXG4iLCJcclxuPGRpdiBjbGFzcz1cImZsZXgtMSBsYXN0OlsmPnRkXTpib3JkZXItMCByb3VuZGVkLWxnIGJvcmRlciBib3JkZXItc3VyZmFjZSB3LWZ1bGwgb3ZlcmZsb3ctYXV0b1wiPlxyXG4gIDxwLXRhYmxlICNkdFxyXG4gIFt2YWx1ZV09XCJkYXRhX1wiXHJcbiAgW2NvbHVtbnNdPVwiY29sdW1uc1wiXHJcbiAgW2xhenldPVwidHJ1ZVwiXHJcbiAgW3BhZ2luYXRvcl09XCJwYWdpbmF0b3JcIlxyXG4gIFtyb3dzXT1cInJvd3NcIlxyXG4gIFtmaXJzdF09XCJmaXJzdFwiXHJcbiAgICBbdG90YWxSZWNvcmRzXT1cInRvdGFsUmVjb3Jkc1wiXHJcbiAgICBbc29ydEZpZWxkXT1cInNvcnRGaWVsZFwiXHJcbiAgICBbc29ydE9yZGVyXT1cInNvcnRPcmRlclwiIChvbkxhenlMb2FkKT1cIm9uTGF6eUxvYWQoJGV2ZW50KVwiXHJcbiAgICBbZ2xvYmFsRmlsdGVyRmllbGRzXT1cImdsb2JhbEZpbHRlckZpZWxkc1wiXHJcbiAgICBbbG9hZGluZ109XCJsb2FkaW5nXCJcclxuICAgIFtzY3JvbGxhYmxlXT1cInRydWVcIlxyXG4gICAgW3Njcm9sbEhlaWdodF09XCJzY3JvbGxIZWlnaHRcIlxyXG4gICAgW3NlbGVjdGlvbk1vZGVdPVwic2hvd1Jvd1NlbGVjdGlvbkNoZWNrYm94ID8gJ211bHRpcGxlJyA6IChyb3dTZWxlY3RhYmxlID8gJ3NpbmdsZScgOiB1bmRlZmluZWQpXCJcclxuICAgIFsoc2VsZWN0aW9uKV09XCJfc2VsZWN0aW9uXCJcclxuICAgIChvblJvd1NlbGVjdCk9XCJvbkludGVybmFsU2VsZWN0aW9uQ2hhbmdlKCRldmVudClcIlxyXG4gICAgKG9uUm93VW5zZWxlY3QpPVwib25JbnRlcm5hbFNlbGVjdGlvbkNoYW5nZSgkZXZlbnQpXCJcclxuICAgIChvbkhlYWRlckNoZWNrYm94VG9nZ2xlKT1cIm9uSW50ZXJuYWxTZWxlY3Rpb25DaGFuZ2UoJGV2ZW50KVwiXHJcbiAgICB0YWJsZUxheW91dD1cImZpeGVkXCJcclxuICAgIFtjdXN0b21Tb3J0XT1cImZhbHNlXCJcclxuICAgIChzb3J0RnVuY3Rpb24pPVwiY3VzdG9tU29ydCgkZXZlbnQpXCJcclxuICAgID5cclxuXHJcbiAgICAgPG5nLXRlbXBsYXRlIHBUZW1wbGF0ZT1cImVtcHR5bWVzc2FnZVwiPlxyXG4gICAgICA8dHI+XHJcbiAgICAgICAgPHRkIGNvbHNwYW49XCIxMFwiPlxyXG4gICAgPGRpdiBjbGFzcz1cImZsZXggZmxleC1jb2wgaXRlbXMtY2VudGVyIGp1c3RpZnktY2VudGVyIHB5LTEwIHRleHQtY2VudGVyIHctZnVsbFwiPlxyXG4gICAgICA8aSBzdHlsZT1cImZvbnQtc2l6ZTogMi41cmVtO1wiIGNsYXNzPVwicGkgcGktaW5ib3ggdGV4dC00eGwgdGV4dC1ncmF5LTQwMCBtYi00XCI+PC9pPlxyXG4gICAgICA8cCBjbGFzcz1cInRleHQtZ3JheS01MDAgbWItNFwiPnt7ICdOT19EQVRBX0ZPVU5EJyB8IHRyYW5zbGF0ZSB9fTwvcD5cclxuXHJcbiAgICAgIEBpZiAoc2hvd0FkZEJ1dHRvbikge1xyXG5cclxuXHJcbiAgICAgIDxidXR0b25cclxuICAgICAgICBwQnV0dG9uXHJcbiAgICAgICAgdHlwZT1cImJ1dHRvblwiXHJcbiAgICAgICAgc2V2ZXJpdHk9XCJzZWNvbmRhcnlcIlxyXG4gICAgICAgIGljb249XCJwaSBwaS1wbHVzXCJcclxuICAgICAgICBsYWJlbD1cInt7ICdBRERfTkVXJyB8IHRyYW5zbGF0ZSB9fVwiXHJcbiAgICAgICAgY2xhc3M9XCJwLWJ1dHRvbi1yb3VuZGVkXCJcclxuICAgICAgICAoY2xpY2spPVwib25BZGROZXcuZW1pdCgpXCJcclxuICAgICAgPjwvYnV0dG9uPlxyXG4gICAgICB9XHJcbiAgICA8L2Rpdj5cclxuICAgICAgICA8L3RkPlxyXG4gICAgICA8L3RyPlxyXG5cclxuICA8L25nLXRlbXBsYXRlPlxyXG5cclxuICAgIDxuZy10ZW1wbGF0ZSBwVGVtcGxhdGU9XCJoZWFkZXJcIiBsZXQtY29sdW1ucz5cclxuICAgICAgPHRyPlxyXG4gICAgICAgICAgPHRoICpuZ0lmPVwic2hvd1Jvd1NlbGVjdGlvbkNoZWNrYm94XCIgc3R5bGU9XCJ3aWR0aDogMnJlbVwiPlxyXG4gICAgICAgIDxwLXRhYmxlSGVhZGVyQ2hlY2tib3g+PC9wLXRhYmxlSGVhZGVyQ2hlY2tib3g+XHJcbiAgICAgIDwvdGg+XHJcblxyXG4gICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgY29sIG9mIGNvbHVtbnNcIiA+XHJcbiAgPHRoICpuZ0lmPVwiY29sLnByb3BzPy50YWJsZT8ucHJvcHM/LndpZHRoOyBlbHNlIHRlbXBsYXRlTmFtZVwiIFtwU29ydGFibGVDb2x1bW5dPVwiY29sLmtleVwiXHJcbiAgICAgIGNsYXNzPVwicHgtNCBweS0yIHRleHQtc20gZm9udC1tZWRpdW0gdGV4dC13aGl0ZSB0ZXh0LWNlbnRlclwiXHJcbiAgICAgIFtzdHlsZS5taW4td2lkdGhdPVwiY29sLnByb3BzPy50YWJsZT8ucHJvcHM/LndpZHRoXCI+XHJcbiAgICB7eyBjb2wucHJvcHM/LmxhYmVsIHwgdHJhbnNsYXRlIH19XHJcbiAgICA8cC1zb3J0SWNvbiBbZmllbGRdPVwiY29sLmtleVwiPjwvcC1zb3J0SWNvbj5cclxuICA8L3RoPlxyXG5cclxuICA8bmctdGVtcGxhdGUgI3RlbXBsYXRlTmFtZT5cclxuICAgIDx0aCBzdHlsZT1cIm1pbi13aWR0aDogMTUwcHg7XCIgY2xhc3M9XCJweC00IHB5LTIgdGV4dC1zbSBmb250LW1lZGl1bSB0ZXh0LXdoaXRlIHRleHQtY2VudGVyXCIgW3BTb3J0YWJsZUNvbHVtbl09XCJjb2wua2V5XCI+XHJcbiAgICAgIHt7IGNvbC5wcm9wcz8ubGFiZWwgfCB0cmFuc2xhdGUgfX1cclxuICAgICAgPHAtc29ydEljb24gW2ZpZWxkXT1cImNvbC5rZXlcIj48L3Atc29ydEljb24+XHJcbiAgICA8L3RoPlxyXG4gIDwvbmctdGVtcGxhdGU+XHJcbjwvbmctY29udGFpbmVyPlxyXG5cclxuXHJcbiAgICAgICAgPHRoIGNsYXNzPVwicHgtNCBweS0yIHRleHQtc20gZm9udC1tZWRpdW0gdGV4dC13aGl0ZSB0ZXh0LWNlbnRlclwiPiB7eyAnT1BFUkFUSU9OUycgfCB0cmFuc2xhdGUgfX08L3RoPlxyXG4gICAgICA8L3RyPlxyXG4gICAgPC9uZy10ZW1wbGF0ZT5cclxuXHJcbiAgICA8bmctdGVtcGxhdGUgcFRlbXBsYXRlPVwiYm9keVwiIGxldC1yb3dEYXRhIGxldC1jb2x1bW5zPVwiY29sdW1uc1wiIGxldC1pPVwicm93SW5kZXhcIj5cclxuICAgICAgPHRyIGNsYXNzPVwiZXZlbjpiZy1ncmF5LTUwIGhvdmVyOmJnLWdyYXktMTAwXCIgKGNsaWNrKT1cInJvd1NlbGVjdC5lbWl0KHJvd0RhdGEpXCI+XHJcbiAgICAgICAgPHRkICpuZ0lmPVwic2hvd1Jvd1NlbGVjdGlvbkNoZWNrYm94XCIgc3R5bGU9XCJ3aWR0aDogMnJlbVwiPlxyXG4gICAgICAgIDxwLXRhYmxlQ2hlY2tib3ggW3ZhbHVlXT1cInJvd0RhdGFcIj48L3AtdGFibGVDaGVja2JveD5cclxuICAgICAgPC90ZD5cclxuICAgICAgICA8dGQgKm5nRm9yPVwibGV0IGNvbCBvZiByb3dEYXRhLnJvd0ZpZWxkcyA7IGxldCBjb2xJbmRleCA9IGluZGV4O3RyYWNrQnk6IHRyYWNrQnlGblwiXHJcbiAgICBjbGFzcz1cImJvcmRlci10IGJvcmRlci1ncmF5LTIwMCBweC00IHB5LTIgdGV4dC1jZW50ZXIgdGV4dC1zbSB0ZXh0LWdyYXktNzAwXCJcclxuICAgICBbc3R5bGUud2lkdGhdPVwiY29sLnByb3BzICYmIGNvbC5wcm9wc1sndGFibGUnXVxyXG4gICAgICYmIGNvbC5wcm9wc1sndGFibGUnXVsncHJvcHMnXSAmJiBjb2wucHJvcHNbJ3RhYmxlJ11bJ3Byb3BzJ11bJ3dpZHRoJ10gXCJcclxuXHJcbiAgICAgPlxyXG5cclxuPGZvcm1seS1mb3JtXHJcbiAgICAgIFttb2RlbF09XCJyb3dEYXRhXCJcclxuICAgICAgW2Zvcm1dPVwiZ2V0Rm9ybShpLCBjb2xJbmRleClcIlxyXG4gICAgICAgW2ZpZWxkc109XCJbY29sXVwiXHJcbiAgICAgIFtvcHRpb25zXT1cIm9wdGlvbnNcIj5cclxuICAgIDwvZm9ybWx5LWZvcm0+XHJcbiAgICAgICAgPC90ZD5cclxuICAgICAgICA8dGQgY2xhc3M9XCJib3JkZXItdCBib3JkZXItZ3JheS0yMDAgcHgtNCBweS0yIHRleHQtY2VudGVyIGFsaWduLW1pZGRsZVwiPlxyXG4gICAgICAgICAgPG5nLWNvbnRhaW5lciBbbmdTd2l0Y2hdPVwiYWN0aW9uc01vZGVcIj5cclxuICAgICAgICAgICAgICAgICAgPCEtLSBSZW5kZXIgYnV0dG9ucyAtLT5cclxuICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hDYXNlPVwiJ2J1dHRvbnMnXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgYWN0IG9mIHNvcnRlZEFjdGlvbnNcIj5cclxuICAgICAgICAgICAgICAgICAgICAgIDxidXR0b25cclxuICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJhY3QuaWNvbiB8fCBhY3QubGFiZWxcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBwQnV0dG9uXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtpY29uXT1cImFjdC5pY29uIHx8ICcnXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgW2xhYmVsXT1cIihhY3QubGFiZWwgIHx8ICcnKSB8IHRyYW5zbGF0ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtjbGFzc109XCJhY3Quc3R5bGVDbGFzcyB8fCAnJ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwicC1idXR0b24tc20gbXgtMVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJvbkFjdGlvbihhY3QsIHJvd0RhdGEpXCJcclxuICAgICAgICAgICAgICAgICAgICAgID48L2J1dHRvbj5cclxuICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcblxyXG4gICAgICAgICAgICAgICAgICA8IS0tIFJlbmRlciBtZW51IC0tPlxyXG4gICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCInbWVudSdcIj5cclxuICAgICAgICAgICAgICAgICAgICAgPHAtbWVudSAjbWVudSBbbW9kZWxdPVwiZ2V0TWVudUl0ZW1zKHJvd0RhdGEpXCIgW3BvcHVwXT1cInRydWVcIiBhcHBlbmRUbz1cImJvZHlcIj5cclxuICAgICAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgbGV0LWl0ZW0gcFRlbXBsYXRlPVwiaXRlbVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZsZXggaXRlbXMtY2VudGVyIGdhcC0yIHB4LTIgcHktMVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8aSBbbmdDbGFzc109XCJpdGVtLmljb25cIiBjbGFzcz1cInRleHQtcHJpbWFyeS02MDBcIiAqbmdJZj1cIml0ZW0uaWNvblwiPjwvaT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJmb250LW1lZGl1bVwiPnt7IChpdGVtLmxhYmVsICB8fCAnJykgfCB0cmFuc2xhdGUgfX08L3NwYW4+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiAqbmdJZj1cIml0ZW0uYmFkZ2VcIiBjbGFzcz1cIm1sLWF1dG8gdGV4dC14cyBiZy1yZWQtNTAwIHRleHQtd2hpdGUgcHgtMiBweS0xIHJvdW5kZWRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICB7eyBpdGVtLmJhZGdlIH19XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwhLS0gPHAtaW5wdXRTd2l0Y2ggKm5nSWY9XCJpdGVtLnRvZ2dsZVwiIFsobmdNb2RlbCldPVwiaXRlbS50b2dnbGVWYWx1ZVwiIGNsYXNzPVwibWwtYXV0b1wiIC8+IC0tPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgICAgICAgICAgICAgPC9wLW1lbnU+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIDxwLWJ1dHRvblxyXG4gICAgICAgICAgICAgICAgICAgIG91dGxpbmVkXHJcbiAgICAgICAgICAgICAgICAgICAgICBpY29uPVwicGkgcGktZWxsaXBzaXMtdlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInAtYnV0dG9uLXRleHQgcC1idXR0b24tc21cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgKG9uQ2xpY2spPVwibWVudS50b2dnbGUoJGV2ZW50KVwiXHJcbiAgICAgICAgICAgICAgICAgICAgPjwvcC1idXR0b24+XHJcbiAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcblxyXG4gICAgICAgIDwvdGQ+XHJcbiAgICAgIDwvdHI+XHJcbiAgICA8L25nLXRlbXBsYXRlPlxyXG4gIDwvcC10YWJsZT5cclxuXHJcbjwvZGl2PlxyXG4iXX0=","/**\n * Generated bundle index. Do not edit.\n */\nexport * from './index';\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWxpdGUuZnJhbWV3b3JrLW5nLnVpLmNvcmUtZ2VuZXJpYy10YWJsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYnMvbmcudWkuY29yZS9nZW5lcmljLXRhYmxlL3NyYy9lbGl0ZS5mcmFtZXdvcmstbmcudWkuY29yZS1nZW5lcmljLXRhYmxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsY0FBYyxTQUFTLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEdlbmVyYXRlZCBidW5kbGUgaW5kZXguIERvIG5vdCBlZGl0LlxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vaW5kZXgnO1xuIl19"],"names":[],"mappings":"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"}
@@ -2,8 +2,10 @@ import * as i0 from '@angular/core';
2
2
  import { NgModule, EventEmitter, Output, Input, Component } from '@angular/core';
3
3
  import * as i3 from '@angular/common';
4
4
  import { CommonModule } from '@angular/common';
5
- import * as i4 from '@ngx-translate/core';
5
+ import * as i5 from '@ngx-translate/core';
6
6
  import { TranslateModule } from '@ngx-translate/core';
7
+ import * as i4 from 'ngx-permissions';
8
+ import { NgxPermissionsModule } from 'ngx-permissions';
7
9
  import * as i2 from 'primeng/button';
8
10
  import { ButtonModule } from 'primeng/button';
9
11
  import * as i1 from 'primeng/splitbutton';
@@ -30,7 +32,7 @@ class UiButtonComponent {
30
32
  <ng-container [ngSwitch]="config?.type">
31
33
 
32
34
  <!-- Normal Button -->
33
- <p-button *ngSwitchCase="'button'"
35
+ <p-button [ngxPermissionsOnly]="config && config.permission ? [config.permission]: []" *ngSwitchCase="'button'"
34
36
  [label]="(config?.label ?? '') | translate"
35
37
  [icon]="config?.loading ? 'pi pi-spin pi-spinner' : config?.icon"
36
38
  [outlined]="config?.outlined"
@@ -41,7 +43,7 @@ class UiButtonComponent {
41
43
  </p-button>
42
44
 
43
45
  <!-- Split Button -->
44
- <p-splitButton *ngSwitchCase="'split'"
46
+ <p-splitButton [ngxPermissionsOnly]="config && config.permission ? [config.permission]: []" *ngSwitchCase="'split'"
45
47
  [label]="(config?.label ?? '') | translate"
46
48
  [icon]="config?.loading ? 'pi pi-spin pi-spinner' : config?.icon"
47
49
  [model]="config?.items || []"
@@ -53,18 +55,18 @@ class UiButtonComponent {
53
55
  </p-splitButton>
54
56
 
55
57
  </ng-container>
56
- `, isInline: true, dependencies: [{ kind: "ngmodule", type: SplitButtonModule }, { kind: "component", type: i1.SplitButton, selector: "p-splitbutton, p-splitButton, p-split-button", inputs: ["model", "severity", "raised", "rounded", "text", "outlined", "size", "plain", "icon", "iconPos", "label", "tooltip", "tooltipOptions", "styleClass", "menuStyle", "menuStyleClass", "dropdownIcon", "appendTo", "dir", "expandAriaLabel", "showTransitionOptions", "hideTransitionOptions", "buttonProps", "menuButtonProps", "autofocus", "disabled", "tabindex", "menuButtonDisabled", "buttonDisabled"], outputs: ["onClick", "onMenuHide", "onMenuShow", "onDropdownClick"] }, { kind: "ngmodule", type: ButtonModule }, { kind: "component", type: i2.Button, selector: "p-button", inputs: ["type", "iconPos", "icon", "badge", "label", "disabled", "loading", "loadingIcon", "raised", "rounded", "text", "plain", "severity", "outlined", "link", "tabindex", "size", "variant", "style", "styleClass", "badgeClass", "badgeSeverity", "ariaLabel", "buttonProps", "autofocus", "fluid"], outputs: ["onClick", "onFocus", "onBlur"] }, { kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i3.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i3.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i4.TranslatePipe, name: "translate" }] });
58
+ `, isInline: true, dependencies: [{ kind: "ngmodule", type: SplitButtonModule }, { kind: "component", type: i1.SplitButton, selector: "p-splitbutton, p-splitButton, p-split-button", inputs: ["model", "severity", "raised", "rounded", "text", "outlined", "size", "plain", "icon", "iconPos", "label", "tooltip", "tooltipOptions", "styleClass", "menuStyle", "menuStyleClass", "dropdownIcon", "appendTo", "dir", "expandAriaLabel", "showTransitionOptions", "hideTransitionOptions", "buttonProps", "menuButtonProps", "autofocus", "disabled", "tabindex", "menuButtonDisabled", "buttonDisabled"], outputs: ["onClick", "onMenuHide", "onMenuShow", "onDropdownClick"] }, { kind: "ngmodule", type: ButtonModule }, { kind: "component", type: i2.Button, selector: "p-button", inputs: ["type", "iconPos", "icon", "badge", "label", "disabled", "loading", "loadingIcon", "raised", "rounded", "text", "plain", "severity", "outlined", "link", "tabindex", "size", "variant", "style", "styleClass", "badgeClass", "badgeSeverity", "ariaLabel", "buttonProps", "autofocus", "fluid"], outputs: ["onClick", "onFocus", "onBlur"] }, { kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i3.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i3.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "ngmodule", type: NgxPermissionsModule }, { kind: "directive", type: i4.NgxPermissionsDirective, selector: "[ngxPermissionsOnly],[ngxPermissionsExcept]", inputs: ["ngxPermissionsOnly", "ngxPermissionsOnlyThen", "ngxPermissionsOnlyElse", "ngxPermissionsExcept", "ngxPermissionsExceptElse", "ngxPermissionsExceptThen", "ngxPermissionsThen", "ngxPermissionsElse", "ngxPermissionsOnlyAuthorisedStrategy", "ngxPermissionsOnlyUnauthorisedStrategy", "ngxPermissionsExceptUnauthorisedStrategy", "ngxPermissionsExceptAuthorisedStrategy", "ngxPermissionsUnauthorisedStrategy", "ngxPermissionsAuthorisedStrategy"], outputs: ["permissionsAuthorized", "permissionsUnauthorized"] }, { kind: "pipe", type: i5.TranslatePipe, name: "translate" }] });
57
59
  }
58
60
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.8", ngImport: i0, type: UiButtonComponent, decorators: [{
59
61
  type: Component,
60
62
  args: [{
61
63
  selector: 'ui-button',
62
- imports: [SplitButtonModule, ButtonModule, CommonModule, TranslateModule],
64
+ imports: [SplitButtonModule, ButtonModule, CommonModule, TranslateModule, NgxPermissionsModule],
63
65
  template: `
64
66
  <ng-container [ngSwitch]="config?.type">
65
67
 
66
68
  <!-- Normal Button -->
67
- <p-button *ngSwitchCase="'button'"
69
+ <p-button [ngxPermissionsOnly]="config && config.permission ? [config.permission]: []" *ngSwitchCase="'button'"
68
70
  [label]="(config?.label ?? '') | translate"
69
71
  [icon]="config?.loading ? 'pi pi-spin pi-spinner' : config?.icon"
70
72
  [outlined]="config?.outlined"
@@ -75,7 +77,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.8", ngImpor
75
77
  </p-button>
76
78
 
77
79
  <!-- Split Button -->
78
- <p-splitButton *ngSwitchCase="'split'"
80
+ <p-splitButton [ngxPermissionsOnly]="config && config.permission ? [config.permission]: []" *ngSwitchCase="'split'"
79
81
  [label]="(config?.label ?? '') | translate"
80
82
  [icon]="config?.loading ? 'pi pi-spin pi-spinner' : config?.icon"
81
83
  [model]="config?.items || []"
@@ -1 +1 @@
1
- {"version":3,"file":"elite.framework-ng.ui.core-ui-button.mjs","sources":["../tmp-esm2022/ui-button/lib/ui-button-module.js","../tmp-esm2022/ui-button/lib/ui-button.component.js","../tmp-esm2022/ui-button/elite.framework-ng.ui.core-ui-button.js"],"sourcesContent":["import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport * as i0 from \"@angular/core\";\nexport class UiButtonModule {\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: UiButtonModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });\n static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"14.0.0\", version: \"20.1.8\", ngImport: i0, type: UiButtonModule, imports: [CommonModule] });\n static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: UiButtonModule, imports: [CommonModule] });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: UiButtonModule, decorators: [{\n type: NgModule,\n args: [{\n imports: [CommonModule],\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidWktYnV0dG9uLW1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvbmcudWkuY29yZS91aS1idXR0b24vc3JjL2xpYi91aS1idXR0b24tbW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDOztBQUsvQyxNQUFNLE9BQU8sY0FBYzt1R0FBZCxjQUFjO3dHQUFkLGNBQWMsWUFGZixZQUFZO3dHQUVYLGNBQWMsWUFGZixZQUFZOzsyRkFFWCxjQUFjO2tCQUgxQixRQUFRO21CQUFDO29CQUNSLE9BQU8sRUFBRSxDQUFDLFlBQVksQ0FBQztpQkFDeEIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcblxuQE5nTW9kdWxlKHtcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZV0sXG59KVxuZXhwb3J0IGNsYXNzIFVpQnV0dG9uTW9kdWxlIHt9XG4iXX0=","import { CommonModule } from '@angular/common';\nimport { Component, EventEmitter, Input, Output } from '@angular/core';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { ButtonModule } from 'primeng/button';\nimport { SplitButtonModule } from 'primeng/splitbutton';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"primeng/splitbutton\";\nimport * as i2 from \"primeng/button\";\nimport * as i3 from \"@angular/common\";\nimport * as i4 from \"@ngx-translate/core\";\nexport class UiButtonComponent {\n config;\n // eslint-disable-next-line @angular-eslint/no-output-on-prefix\n onClick = new EventEmitter();\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: UiButtonComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });\n static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"20.1.8\", type: UiButtonComponent, isStandalone: true, selector: \"ui-button\", inputs: { config: \"config\" }, outputs: { onClick: \"onClick\" }, ngImport: i0, template: `\r\n <ng-container [ngSwitch]=\"config?.type\">\r\n\r\n <!-- Normal Button -->\r\n <p-button *ngSwitchCase=\"'button'\"\r\n [label]=\"(config?.label ?? '') | translate\"\r\n [icon]=\"config?.loading ? 'pi pi-spin pi-spinner' : config?.icon\"\r\n [outlined]=\"config?.outlined\"\r\n [severity]=\"config?.severity || 'primary'\"\r\n [disabled]=\"config?.disabled\"\r\n [class]=\"config?.styleClass\"\r\n (onClick)=\"onClick.emit()\">\r\n </p-button>\r\n\r\n <!-- Split Button -->\r\n <p-splitButton *ngSwitchCase=\"'split'\"\r\n [label]=\"(config?.label ?? '') | translate\"\r\n [icon]=\"config?.loading ? 'pi pi-spin pi-spinner' : config?.icon\"\r\n [model]=\"config?.items || []\"\r\n [disabled]=\"config?.disabled\"\r\n [class]=\"config?.styleClass\"\r\n [outlined]=\"config?.outlined\"\r\n [severity]=\"config?.severity || 'primary'\"\r\n (onClick)=\"onClick.emit()\">\r\n </p-splitButton>\r\n\r\n </ng-container>\r\n `, isInline: true, dependencies: [{ kind: \"ngmodule\", type: SplitButtonModule }, { kind: \"component\", type: i1.SplitButton, selector: \"p-splitbutton, p-splitButton, p-split-button\", inputs: [\"model\", \"severity\", \"raised\", \"rounded\", \"text\", \"outlined\", \"size\", \"plain\", \"icon\", \"iconPos\", \"label\", \"tooltip\", \"tooltipOptions\", \"styleClass\", \"menuStyle\", \"menuStyleClass\", \"dropdownIcon\", \"appendTo\", \"dir\", \"expandAriaLabel\", \"showTransitionOptions\", \"hideTransitionOptions\", \"buttonProps\", \"menuButtonProps\", \"autofocus\", \"disabled\", \"tabindex\", \"menuButtonDisabled\", \"buttonDisabled\"], outputs: [\"onClick\", \"onMenuHide\", \"onMenuShow\", \"onDropdownClick\"] }, { kind: \"ngmodule\", type: ButtonModule }, { kind: \"component\", type: i2.Button, selector: \"p-button\", inputs: [\"type\", \"iconPos\", \"icon\", \"badge\", \"label\", \"disabled\", \"loading\", \"loadingIcon\", \"raised\", \"rounded\", \"text\", \"plain\", \"severity\", \"outlined\", \"link\", \"tabindex\", \"size\", \"variant\", \"style\", \"styleClass\", \"badgeClass\", \"badgeSeverity\", \"ariaLabel\", \"buttonProps\", \"autofocus\", \"fluid\"], outputs: [\"onClick\", \"onFocus\", \"onBlur\"] }, { kind: \"ngmodule\", type: CommonModule }, { kind: \"directive\", type: i3.NgSwitch, selector: \"[ngSwitch]\", inputs: [\"ngSwitch\"] }, { kind: \"directive\", type: i3.NgSwitchCase, selector: \"[ngSwitchCase]\", inputs: [\"ngSwitchCase\"] }, { kind: \"ngmodule\", type: TranslateModule }, { kind: \"pipe\", type: i4.TranslatePipe, name: \"translate\" }] });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: UiButtonComponent, decorators: [{\n type: Component,\n args: [{\n selector: 'ui-button',\n imports: [SplitButtonModule, ButtonModule, CommonModule, TranslateModule],\n template: `\r\n <ng-container [ngSwitch]=\"config?.type\">\r\n\r\n <!-- Normal Button -->\r\n <p-button *ngSwitchCase=\"'button'\"\r\n [label]=\"(config?.label ?? '') | translate\"\r\n [icon]=\"config?.loading ? 'pi pi-spin pi-spinner' : config?.icon\"\r\n [outlined]=\"config?.outlined\"\r\n [severity]=\"config?.severity || 'primary'\"\r\n [disabled]=\"config?.disabled\"\r\n [class]=\"config?.styleClass\"\r\n (onClick)=\"onClick.emit()\">\r\n </p-button>\r\n\r\n <!-- Split Button -->\r\n <p-splitButton *ngSwitchCase=\"'split'\"\r\n [label]=\"(config?.label ?? '') | translate\"\r\n [icon]=\"config?.loading ? 'pi pi-spin pi-spinner' : config?.icon\"\r\n [model]=\"config?.items || []\"\r\n [disabled]=\"config?.disabled\"\r\n [class]=\"config?.styleClass\"\r\n [outlined]=\"config?.outlined\"\r\n [severity]=\"config?.severity || 'primary'\"\r\n (onClick)=\"onClick.emit()\">\r\n </p-splitButton>\r\n\r\n </ng-container>\r\n `\n }]\n }], propDecorators: { config: [{\n type: Input\n }], onClick: [{\n type: Output\n }] } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidWktYnV0dG9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvbmcudWkuY29yZS91aS1idXR0b24vc3JjL2xpYi91aS1idXR0b24uY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUV0RCxPQUFPLEVBQUUsWUFBWSxFQUFrQixNQUFNLGdCQUFnQixDQUFDO0FBQzlELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHFCQUFxQixDQUFDOzs7Ozs7QUFnRHhELE1BQU0sT0FBTyxpQkFBaUI7SUFDbkIsTUFBTSxDQUFrQjtJQUNqQywrREFBK0Q7SUFDckQsT0FBTyxHQUFHLElBQUksWUFBWSxFQUFRLENBQUM7dUdBSGxDLGlCQUFpQjsyRkFBakIsaUJBQWlCLG9JQTdCbEI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQTJCVCwyREE1QlEsaUJBQWlCLGdtQkFBQyxZQUFZLGliQUFDLFlBQVksME5BQUMsZUFBZTs7MkZBOEJ6RCxpQkFBaUI7a0JBaEM3QixTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxXQUFXO29CQUNyQixPQUFPLEVBQUMsQ0FBQyxpQkFBaUIsRUFBQyxZQUFZLEVBQUMsWUFBWSxFQUFDLGVBQWUsQ0FBQztvQkFDckUsUUFBUSxFQUFFOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0EyQlQ7aUJBQ0Y7OEJBRVUsTUFBTTtzQkFBZCxLQUFLO2dCQUVJLE9BQU87c0JBQWhCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBUcmFuc2xhdGVNb2R1bGUgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcclxuaW1wb3J0IHsgTWVudUl0ZW0gfSBmcm9tICdwcmltZW5nL2FwaSc7XHJcbmltcG9ydCB7IEJ1dHRvbk1vZHVsZSwgQnV0dG9uU2V2ZXJpdHkgfSBmcm9tICdwcmltZW5nL2J1dHRvbic7XHJcbmltcG9ydCB7IFNwbGl0QnV0dG9uTW9kdWxlIH0gZnJvbSAncHJpbWVuZy9zcGxpdGJ1dHRvbic7XHJcblxyXG5leHBvcnQgdHlwZSBVaUJ1dHRvblR5cGUgPSAnYnV0dG9uJyB8ICdzcGxpdCc7XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIFVpQnV0dG9uQ29uZmlnIHtcclxuICB0eXBlOiBVaUJ1dHRvblR5cGU7ICAgICAgICAgICAgLy8gJ2J1dHRvbicgfCAnc3BsaXQnXHJcbiAgbGFiZWw/OiBzdHJpbmc7ICAgICAgICAgICAgICAgIC8vIEJ1dHRvbiBsYWJlbFxyXG4gIGljb24/OiBzdHJpbmc7ICAgICAgICAgICAgICAgICAvLyBJY29uXHJcbiAgc2V2ZXJpdHk/OiBCdXR0b25TZXZlcml0eTtcclxuICBvdXRsaW5lZD86IGJvb2xlYW47ICAgICAgICAgICAgLy8gcC1idXR0b24gb3V0bGluZWRcclxuICBpdGVtcz86IE1lbnVJdGVtW107ICAgICAgICAgICAgLy8gU3BsaXQgYnV0dG9uIGl0ZW1zXHJcbiAgbG9hZGluZz86IGJvb2xlYW47ICAgICAgICAgICAgIC8vIFNob3cgc3Bpbm5lclxyXG4gIGRpc2FibGVkPzogYm9vbGVhbjsgICAgICAgICAgICAvLyBEaXNhYmxlIHN0YXRlXHJcbiAgc3R5bGVDbGFzcz86IHN0cmluZzsgICAgICAgICAgIC8vIEV4dHJhIGNsYXNzZXNcclxufVxyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICd1aS1idXR0b24nLFxyXG4gIGltcG9ydHM6W1NwbGl0QnV0dG9uTW9kdWxlLEJ1dHRvbk1vZHVsZSxDb21tb25Nb2R1bGUsVHJhbnNsYXRlTW9kdWxlXSxcclxuICB0ZW1wbGF0ZTogYFxyXG4gICAgPG5nLWNvbnRhaW5lciBbbmdTd2l0Y2hdPVwiY29uZmlnPy50eXBlXCI+XHJcblxyXG4gICAgICA8IS0tIE5vcm1hbCBCdXR0b24gLS0+XHJcbiAgICAgIDxwLWJ1dHRvbiAqbmdTd2l0Y2hDYXNlPVwiJ2J1dHRvbidcIlxyXG4gICAgICAgIFtsYWJlbF09XCIoY29uZmlnPy5sYWJlbCA/PyAnJykgfCB0cmFuc2xhdGVcIlxyXG4gICAgICAgIFtpY29uXT1cImNvbmZpZz8ubG9hZGluZyA/ICdwaSBwaS1zcGluIHBpLXNwaW5uZXInIDogY29uZmlnPy5pY29uXCJcclxuICAgICAgICBbb3V0bGluZWRdPVwiY29uZmlnPy5vdXRsaW5lZFwiXHJcbiAgICAgICAgW3NldmVyaXR5XT1cImNvbmZpZz8uc2V2ZXJpdHkgfHwgJ3ByaW1hcnknXCJcclxuICAgICAgICBbZGlzYWJsZWRdPVwiY29uZmlnPy5kaXNhYmxlZFwiXHJcbiAgICAgICAgW2NsYXNzXT1cImNvbmZpZz8uc3R5bGVDbGFzc1wiXHJcbiAgICAgICAgKG9uQ2xpY2spPVwib25DbGljay5lbWl0KClcIj5cclxuICAgICAgPC9wLWJ1dHRvbj5cclxuXHJcbiAgICAgIDwhLS0gU3BsaXQgQnV0dG9uIC0tPlxyXG4gICAgICA8cC1zcGxpdEJ1dHRvbiAqbmdTd2l0Y2hDYXNlPVwiJ3NwbGl0J1wiXHJcbiAgICAgICAgW2xhYmVsXT1cIihjb25maWc/LmxhYmVsID8/ICcnKSB8IHRyYW5zbGF0ZVwiXHJcbiAgICAgICAgW2ljb25dPVwiY29uZmlnPy5sb2FkaW5nID8gJ3BpIHBpLXNwaW4gcGktc3Bpbm5lcicgOiBjb25maWc/Lmljb25cIlxyXG4gICAgICAgIFttb2RlbF09XCJjb25maWc/Lml0ZW1zIHx8IFtdXCJcclxuICAgICAgICBbZGlzYWJsZWRdPVwiY29uZmlnPy5kaXNhYmxlZFwiXHJcbiAgICAgICAgW2NsYXNzXT1cImNvbmZpZz8uc3R5bGVDbGFzc1wiXHJcbiAgICAgICAgIFtvdXRsaW5lZF09XCJjb25maWc/Lm91dGxpbmVkXCJcclxuICAgICAgICBbc2V2ZXJpdHldPVwiY29uZmlnPy5zZXZlcml0eSB8fCAncHJpbWFyeSdcIlxyXG4gICAgICAgIChvbkNsaWNrKT1cIm9uQ2xpY2suZW1pdCgpXCI+XHJcbiAgICAgIDwvcC1zcGxpdEJ1dHRvbj5cclxuXHJcbiAgICA8L25nLWNvbnRhaW5lcj5cclxuICBgXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBVaUJ1dHRvbkNvbXBvbmVudCB7XHJcbiAgQElucHV0KCkgY29uZmlnITogVWlCdXR0b25Db25maWc7XHJcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1vdXRwdXQtb24tcHJlZml4XHJcbiAgQE91dHB1dCgpIG9uQ2xpY2sgPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XHJcbn1cclxuIl19","/**\n * Generated bundle index. Do not edit.\n */\nexport * from './index';\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWxpdGUuZnJhbWV3b3JrLW5nLnVpLmNvcmUtdWktYnV0dG9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGlicy9uZy51aS5jb3JlL3VpLWJ1dHRvbi9zcmMvZWxpdGUuZnJhbWV3b3JrLW5nLnVpLmNvcmUtdWktYnV0dG9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsY0FBYyxTQUFTLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEdlbmVyYXRlZCBidW5kbGUgaW5kZXguIERvIG5vdCBlZGl0LlxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vaW5kZXgnO1xuIl19"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"elite.framework-ng.ui.core-ui-button.mjs","sources":["../tmp-esm2022/ui-button/lib/ui-button-module.js","../tmp-esm2022/ui-button/lib/ui-button.component.js","../tmp-esm2022/ui-button/elite.framework-ng.ui.core-ui-button.js"],"sourcesContent":["import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport * as i0 from \"@angular/core\";\nexport class UiButtonModule {\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: UiButtonModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });\n static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"14.0.0\", version: \"20.1.8\", ngImport: i0, type: UiButtonModule, imports: [CommonModule] });\n static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: UiButtonModule, imports: [CommonModule] });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: UiButtonModule, decorators: [{\n type: NgModule,\n args: [{\n imports: [CommonModule],\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidWktYnV0dG9uLW1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvbmcudWkuY29yZS91aS1idXR0b24vc3JjL2xpYi91aS1idXR0b24tbW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDOztBQUsvQyxNQUFNLE9BQU8sY0FBYzt1R0FBZCxjQUFjO3dHQUFkLGNBQWMsWUFGZixZQUFZO3dHQUVYLGNBQWMsWUFGZixZQUFZOzsyRkFFWCxjQUFjO2tCQUgxQixRQUFRO21CQUFDO29CQUNSLE9BQU8sRUFBRSxDQUFDLFlBQVksQ0FBQztpQkFDeEIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcblxuQE5nTW9kdWxlKHtcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZV0sXG59KVxuZXhwb3J0IGNsYXNzIFVpQnV0dG9uTW9kdWxlIHt9XG4iXX0=","import { CommonModule } from '@angular/common';\nimport { Component, EventEmitter, Input, Output } from '@angular/core';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { NgxPermissionsModule } from 'ngx-permissions';\nimport { ButtonModule } from 'primeng/button';\nimport { SplitButtonModule } from 'primeng/splitbutton';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"primeng/splitbutton\";\nimport * as i2 from \"primeng/button\";\nimport * as i3 from \"@angular/common\";\nimport * as i4 from \"ngx-permissions\";\nimport * as i5 from \"@ngx-translate/core\";\nexport class UiButtonComponent {\n config;\n // eslint-disable-next-line @angular-eslint/no-output-on-prefix\n onClick = new EventEmitter();\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: UiButtonComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });\n static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"20.1.8\", type: UiButtonComponent, isStandalone: true, selector: \"ui-button\", inputs: { config: \"config\" }, outputs: { onClick: \"onClick\" }, ngImport: i0, template: `\r\n <ng-container [ngSwitch]=\"config?.type\">\r\n\r\n <!-- Normal Button -->\r\n <p-button [ngxPermissionsOnly]=\"config && config.permission ? [config.permission]: []\" *ngSwitchCase=\"'button'\"\r\n [label]=\"(config?.label ?? '') | translate\"\r\n [icon]=\"config?.loading ? 'pi pi-spin pi-spinner' : config?.icon\"\r\n [outlined]=\"config?.outlined\"\r\n [severity]=\"config?.severity || 'primary'\"\r\n [disabled]=\"config?.disabled\"\r\n [class]=\"config?.styleClass\"\r\n (onClick)=\"onClick.emit()\">\r\n </p-button>\r\n\r\n <!-- Split Button -->\r\n <p-splitButton [ngxPermissionsOnly]=\"config && config.permission ? [config.permission]: []\" *ngSwitchCase=\"'split'\"\r\n [label]=\"(config?.label ?? '') | translate\"\r\n [icon]=\"config?.loading ? 'pi pi-spin pi-spinner' : config?.icon\"\r\n [model]=\"config?.items || []\"\r\n [disabled]=\"config?.disabled\"\r\n [class]=\"config?.styleClass\"\r\n [outlined]=\"config?.outlined\"\r\n [severity]=\"config?.severity || 'primary'\"\r\n (onClick)=\"onClick.emit()\">\r\n </p-splitButton>\r\n\r\n </ng-container>\r\n `, isInline: true, dependencies: [{ kind: \"ngmodule\", type: SplitButtonModule }, { kind: \"component\", type: i1.SplitButton, selector: \"p-splitbutton, p-splitButton, p-split-button\", inputs: [\"model\", \"severity\", \"raised\", \"rounded\", \"text\", \"outlined\", \"size\", \"plain\", \"icon\", \"iconPos\", \"label\", \"tooltip\", \"tooltipOptions\", \"styleClass\", \"menuStyle\", \"menuStyleClass\", \"dropdownIcon\", \"appendTo\", \"dir\", \"expandAriaLabel\", \"showTransitionOptions\", \"hideTransitionOptions\", \"buttonProps\", \"menuButtonProps\", \"autofocus\", \"disabled\", \"tabindex\", \"menuButtonDisabled\", \"buttonDisabled\"], outputs: [\"onClick\", \"onMenuHide\", \"onMenuShow\", \"onDropdownClick\"] }, { kind: \"ngmodule\", type: ButtonModule }, { kind: \"component\", type: i2.Button, selector: \"p-button\", inputs: [\"type\", \"iconPos\", \"icon\", \"badge\", \"label\", \"disabled\", \"loading\", \"loadingIcon\", \"raised\", \"rounded\", \"text\", \"plain\", \"severity\", \"outlined\", \"link\", \"tabindex\", \"size\", \"variant\", \"style\", \"styleClass\", \"badgeClass\", \"badgeSeverity\", \"ariaLabel\", \"buttonProps\", \"autofocus\", \"fluid\"], outputs: [\"onClick\", \"onFocus\", \"onBlur\"] }, { kind: \"ngmodule\", type: CommonModule }, { kind: \"directive\", type: i3.NgSwitch, selector: \"[ngSwitch]\", inputs: [\"ngSwitch\"] }, { kind: \"directive\", type: i3.NgSwitchCase, selector: \"[ngSwitchCase]\", inputs: [\"ngSwitchCase\"] }, { kind: \"ngmodule\", type: TranslateModule }, { kind: \"ngmodule\", type: NgxPermissionsModule }, { kind: \"directive\", type: i4.NgxPermissionsDirective, selector: \"[ngxPermissionsOnly],[ngxPermissionsExcept]\", inputs: [\"ngxPermissionsOnly\", \"ngxPermissionsOnlyThen\", \"ngxPermissionsOnlyElse\", \"ngxPermissionsExcept\", \"ngxPermissionsExceptElse\", \"ngxPermissionsExceptThen\", \"ngxPermissionsThen\", \"ngxPermissionsElse\", \"ngxPermissionsOnlyAuthorisedStrategy\", \"ngxPermissionsOnlyUnauthorisedStrategy\", \"ngxPermissionsExceptUnauthorisedStrategy\", \"ngxPermissionsExceptAuthorisedStrategy\", \"ngxPermissionsUnauthorisedStrategy\", \"ngxPermissionsAuthorisedStrategy\"], outputs: [\"permissionsAuthorized\", \"permissionsUnauthorized\"] }, { kind: \"pipe\", type: i5.TranslatePipe, name: \"translate\" }] });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: UiButtonComponent, decorators: [{\n type: Component,\n args: [{\n selector: 'ui-button',\n imports: [SplitButtonModule, ButtonModule, CommonModule, TranslateModule, NgxPermissionsModule],\n template: `\r\n <ng-container [ngSwitch]=\"config?.type\">\r\n\r\n <!-- Normal Button -->\r\n <p-button [ngxPermissionsOnly]=\"config && config.permission ? [config.permission]: []\" *ngSwitchCase=\"'button'\"\r\n [label]=\"(config?.label ?? '') | translate\"\r\n [icon]=\"config?.loading ? 'pi pi-spin pi-spinner' : config?.icon\"\r\n [outlined]=\"config?.outlined\"\r\n [severity]=\"config?.severity || 'primary'\"\r\n [disabled]=\"config?.disabled\"\r\n [class]=\"config?.styleClass\"\r\n (onClick)=\"onClick.emit()\">\r\n </p-button>\r\n\r\n <!-- Split Button -->\r\n <p-splitButton [ngxPermissionsOnly]=\"config && config.permission ? [config.permission]: []\" *ngSwitchCase=\"'split'\"\r\n [label]=\"(config?.label ?? '') | translate\"\r\n [icon]=\"config?.loading ? 'pi pi-spin pi-spinner' : config?.icon\"\r\n [model]=\"config?.items || []\"\r\n [disabled]=\"config?.disabled\"\r\n [class]=\"config?.styleClass\"\r\n [outlined]=\"config?.outlined\"\r\n [severity]=\"config?.severity || 'primary'\"\r\n (onClick)=\"onClick.emit()\">\r\n </p-splitButton>\r\n\r\n </ng-container>\r\n `\n }]\n }], propDecorators: { config: [{\n type: Input\n }], onClick: [{\n type: Output\n }] } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidWktYnV0dG9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvbmcudWkuY29yZS91aS1idXR0b24vc3JjL2xpYi91aS1idXR0b24uY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN0RCxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUV2RCxPQUFPLEVBQUUsWUFBWSxFQUFrQixNQUFNLGdCQUFnQixDQUFDO0FBQzlELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHFCQUFxQixDQUFDOzs7Ozs7O0FBaUR4RCxNQUFNLE9BQU8saUJBQWlCO0lBQ25CLE1BQU0sQ0FBa0I7SUFDakMsK0RBQStEO0lBQ3JELE9BQU8sR0FBRyxJQUFJLFlBQVksRUFBUSxDQUFDO3VHQUhsQyxpQkFBaUI7MkZBQWpCLGlCQUFpQixvSUE3QmxCOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0EyQlQsMkRBNUJRLGlCQUFpQixnbUJBQUMsWUFBWSxpYkFBQyxZQUFZLDBOQUFDLGVBQWUsOEJBQUMsb0JBQW9COzsyRkE4QjlFLGlCQUFpQjtrQkFoQzdCLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLFdBQVc7b0JBQ3JCLE9BQU8sRUFBQyxDQUFDLGlCQUFpQixFQUFDLFlBQVksRUFBQyxZQUFZLEVBQUMsZUFBZSxFQUFDLG9CQUFvQixDQUFDO29CQUMxRixRQUFRLEVBQUU7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQTJCVDtpQkFDRjs4QkFFVSxNQUFNO3NCQUFkLEtBQUs7Z0JBRUksT0FBTztzQkFBaEIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IFRyYW5zbGF0ZU1vZHVsZSB9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xyXG5pbXBvcnQgeyBOZ3hQZXJtaXNzaW9uc01vZHVsZSB9IGZyb20gJ25neC1wZXJtaXNzaW9ucyc7XHJcbmltcG9ydCB7IE1lbnVJdGVtIH0gZnJvbSAncHJpbWVuZy9hcGknO1xyXG5pbXBvcnQgeyBCdXR0b25Nb2R1bGUsIEJ1dHRvblNldmVyaXR5IH0gZnJvbSAncHJpbWVuZy9idXR0b24nO1xyXG5pbXBvcnQgeyBTcGxpdEJ1dHRvbk1vZHVsZSB9IGZyb20gJ3ByaW1lbmcvc3BsaXRidXR0b24nO1xyXG5cclxuZXhwb3J0IHR5cGUgVWlCdXR0b25UeXBlID0gJ2J1dHRvbicgfCAnc3BsaXQnO1xyXG5cclxuZXhwb3J0IGludGVyZmFjZSBVaUJ1dHRvbkNvbmZpZyB7XHJcbiAgdHlwZTogVWlCdXR0b25UeXBlOyAgICAgICAgICAgIC8vICdidXR0b24nIHwgJ3NwbGl0J1xyXG4gIGxhYmVsPzogc3RyaW5nOyAgICAgICAgICAgICAgICAvLyBCdXR0b24gbGFiZWxcclxuICBpY29uPzogc3RyaW5nOyAgICAgICAgICAgICAgICAgLy8gSWNvblxyXG4gIHNldmVyaXR5PzogQnV0dG9uU2V2ZXJpdHk7XHJcbiAgb3V0bGluZWQ/OiBib29sZWFuOyAgICAgICAgICAgIC8vIHAtYnV0dG9uIG91dGxpbmVkXHJcbiAgaXRlbXM/OiBNZW51SXRlbVtdOyAgICAgICAgICAgIC8vIFNwbGl0IGJ1dHRvbiBpdGVtc1xyXG4gIGxvYWRpbmc/OiBib29sZWFuOyAgICAgICAgICAgICAvLyBTaG93IHNwaW5uZXJcclxuICBkaXNhYmxlZD86IGJvb2xlYW47ICAgICAgICAgICAgLy8gRGlzYWJsZSBzdGF0ZVxyXG4gIHN0eWxlQ2xhc3M/OiBzdHJpbmc7XHJcbiAgcGVybWlzc2lvbj86IHN0cmluZzsgICAgICAgICAvLyBFeHRyYSBjbGFzc2VzXHJcbn1cclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAndWktYnV0dG9uJyxcclxuICBpbXBvcnRzOltTcGxpdEJ1dHRvbk1vZHVsZSxCdXR0b25Nb2R1bGUsQ29tbW9uTW9kdWxlLFRyYW5zbGF0ZU1vZHVsZSxOZ3hQZXJtaXNzaW9uc01vZHVsZV0sXHJcbiAgdGVtcGxhdGU6IGBcclxuICAgIDxuZy1jb250YWluZXIgW25nU3dpdGNoXT1cImNvbmZpZz8udHlwZVwiPlxyXG5cclxuICAgICAgPCEtLSBOb3JtYWwgQnV0dG9uIC0tPlxyXG4gICAgICA8cC1idXR0b24gW25neFBlcm1pc3Npb25zT25seV09XCJjb25maWcgJiYgY29uZmlnLnBlcm1pc3Npb24gPyBbY29uZmlnLnBlcm1pc3Npb25dOiBbXVwiICpuZ1N3aXRjaENhc2U9XCInYnV0dG9uJ1wiXHJcbiAgICAgICAgW2xhYmVsXT1cIihjb25maWc/LmxhYmVsID8/ICcnKSB8IHRyYW5zbGF0ZVwiXHJcbiAgICAgICAgW2ljb25dPVwiY29uZmlnPy5sb2FkaW5nID8gJ3BpIHBpLXNwaW4gcGktc3Bpbm5lcicgOiBjb25maWc/Lmljb25cIlxyXG4gICAgICAgIFtvdXRsaW5lZF09XCJjb25maWc/Lm91dGxpbmVkXCJcclxuICAgICAgICBbc2V2ZXJpdHldPVwiY29uZmlnPy5zZXZlcml0eSB8fCAncHJpbWFyeSdcIlxyXG4gICAgICAgIFtkaXNhYmxlZF09XCJjb25maWc/LmRpc2FibGVkXCJcclxuICAgICAgICBbY2xhc3NdPVwiY29uZmlnPy5zdHlsZUNsYXNzXCJcclxuICAgICAgICAob25DbGljayk9XCJvbkNsaWNrLmVtaXQoKVwiPlxyXG4gICAgICA8L3AtYnV0dG9uPlxyXG5cclxuICAgICAgPCEtLSBTcGxpdCBCdXR0b24gLS0+XHJcbiAgICAgIDxwLXNwbGl0QnV0dG9uIFtuZ3hQZXJtaXNzaW9uc09ubHldPVwiY29uZmlnICYmIGNvbmZpZy5wZXJtaXNzaW9uID8gW2NvbmZpZy5wZXJtaXNzaW9uXTogW11cIiAqbmdTd2l0Y2hDYXNlPVwiJ3NwbGl0J1wiXHJcbiAgICAgICAgW2xhYmVsXT1cIihjb25maWc/LmxhYmVsID8/ICcnKSB8IHRyYW5zbGF0ZVwiXHJcbiAgICAgICAgW2ljb25dPVwiY29uZmlnPy5sb2FkaW5nID8gJ3BpIHBpLXNwaW4gcGktc3Bpbm5lcicgOiBjb25maWc/Lmljb25cIlxyXG4gICAgICAgIFttb2RlbF09XCJjb25maWc/Lml0ZW1zIHx8IFtdXCJcclxuICAgICAgICBbZGlzYWJsZWRdPVwiY29uZmlnPy5kaXNhYmxlZFwiXHJcbiAgICAgICAgW2NsYXNzXT1cImNvbmZpZz8uc3R5bGVDbGFzc1wiXHJcbiAgICAgICAgIFtvdXRsaW5lZF09XCJjb25maWc/Lm91dGxpbmVkXCJcclxuICAgICAgICBbc2V2ZXJpdHldPVwiY29uZmlnPy5zZXZlcml0eSB8fCAncHJpbWFyeSdcIlxyXG4gICAgICAgIChvbkNsaWNrKT1cIm9uQ2xpY2suZW1pdCgpXCI+XHJcbiAgICAgIDwvcC1zcGxpdEJ1dHRvbj5cclxuXHJcbiAgICA8L25nLWNvbnRhaW5lcj5cclxuICBgXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBVaUJ1dHRvbkNvbXBvbmVudCB7XHJcbiAgQElucHV0KCkgY29uZmlnITogVWlCdXR0b25Db25maWc7XHJcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1vdXRwdXQtb24tcHJlZml4XHJcbiAgQE91dHB1dCgpIG9uQ2xpY2sgPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XHJcbn1cclxuIl19","/**\n * Generated bundle index. Do not edit.\n */\nexport * from './index';\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWxpdGUuZnJhbWV3b3JrLW5nLnVpLmNvcmUtdWktYnV0dG9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGlicy9uZy51aS5jb3JlL3VpLWJ1dHRvbi9zcmMvZWxpdGUuZnJhbWV3b3JrLW5nLnVpLmNvcmUtdWktYnV0dG9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsY0FBYyxTQUFTLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEdlbmVyYXRlZCBidW5kbGUgaW5kZXguIERvIG5vdCBlZGl0LlxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vaW5kZXgnO1xuIl19"],"names":[],"mappings":"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"}
@@ -2,6 +2,7 @@ import * as i0 from '@angular/core';
2
2
  import { EventEmitter } from '@angular/core';
3
3
  import * as i1 from '@angular/common';
4
4
  import { MenuItem } from 'primeng/api';
5
+ import { NgxPermissionsService } from 'ngx-permissions';
5
6
 
6
7
  declare class GenericButtonModule {
7
8
  static ɵfac: i0.ɵɵFactoryDeclaration<GenericButtonModule, never>;
@@ -14,6 +15,7 @@ type ButtonSeverity = 'primary' | 'secondary' | 'success' | 'info' | 'warning' |
14
15
  type ButtonSize = 'small' | 'normal' | 'large';
15
16
  type IconPosition = 'left' | 'right';
16
17
  declare class GenericButton {
18
+ permissionsService: NgxPermissionsService;
17
19
  model?: MenuItem[];
18
20
  type: 'button' | 'submit' | 'reset';
19
21
  icon: string;
@@ -15,7 +15,7 @@ declare class GenericSearchModule {
15
15
  declare class GenericSearch implements OnInit {
16
16
  overlay: Popover;
17
17
  translate: TranslateService;
18
- placeholder: string;
18
+ drawerVisible: boolean;
19
19
  /**
20
20
  * List of fields to search by
21
21
  * Example: [{ label: 'Name', value: 'name' }, { label: 'Email', value: 'email' }]
@@ -30,7 +30,7 @@ declare class GenericSearch implements OnInit {
30
30
  onSubmit(): void;
31
31
  onReset(): void;
32
32
  static ɵfac: i0.ɵɵFactoryDeclaration<GenericSearch, never>;
33
- static ɵcmp: i0.ɵɵComponentDeclaration<GenericSearch, "lib-generic-search", never, { "placeholder": { "alias": "placeholder"; "required": false; }; "model": { "alias": "model"; "required": false; }; "fields": { "alias": "fields"; "required": false; }; }, { "search": "search"; }, never, never, true, never>;
33
+ static ɵcmp: i0.ɵɵComponentDeclaration<GenericSearch, "lib-generic-search", never, { "model": { "alias": "model"; "required": false; }; "fields": { "alias": "fields"; "required": false; }; }, { "search": "search"; }, never, never, true, never>;
34
34
  }
35
35
 
36
36
  export { GenericSearch, GenericSearchModule };