@elite.framework/ng.ui.core 1.0.15 → 1.0.17
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/fesm2022/elite.framework-ng.ui.core-generic-table.mjs +10 -6
- package/fesm2022/elite.framework-ng.ui.core-generic-table.mjs.map +1 -1
- package/fesm2022/elite.framework-ng.ui.core-label-type.mjs +14 -9
- package/fesm2022/elite.framework-ng.ui.core-label-type.mjs.map +1 -1
- package/generic-table/index.d.ts +5 -2
- package/label-type/index.d.ts +1 -0
- package/package.json +25 -25
|
@@ -120,6 +120,10 @@ class GenericTable {
|
|
|
120
120
|
this.action.emit({ name: act.name, row });
|
|
121
121
|
}
|
|
122
122
|
}
|
|
123
|
+
clonedCols = [];
|
|
124
|
+
ngOnInit() {
|
|
125
|
+
this.clonedCols = this.columns.map(col => [this.cloneField(col)]);
|
|
126
|
+
}
|
|
123
127
|
cloneField(field) {
|
|
124
128
|
if (field === null || typeof field !== 'object') {
|
|
125
129
|
return field;
|
|
@@ -134,13 +138,13 @@ class GenericTable {
|
|
|
134
138
|
}
|
|
135
139
|
return cloned;
|
|
136
140
|
}
|
|
141
|
+
cellForms = {};
|
|
137
142
|
getForm(rowIndex, colIndex) {
|
|
138
|
-
const cellForms = {};
|
|
139
143
|
const key = `${rowIndex}_${colIndex}`;
|
|
140
|
-
if (!cellForms[key]) {
|
|
141
|
-
cellForms[key] = new FormGroup({});
|
|
144
|
+
if (!this.cellForms[key]) {
|
|
145
|
+
this.cellForms[key] = new FormGroup({});
|
|
142
146
|
}
|
|
143
|
-
return cellForms[key];
|
|
147
|
+
return this.cellForms[key];
|
|
144
148
|
}
|
|
145
149
|
onLazyLoad(event) {
|
|
146
150
|
this.columns_ = this.columns;
|
|
@@ -171,11 +175,11 @@ class GenericTable {
|
|
|
171
175
|
}
|
|
172
176
|
}
|
|
173
177
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.8", ngImport: i0, type: GenericTable, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
174
|
-
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 }], 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 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 columns_ ; let colIndex = index\"\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 </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" }] });
|
|
178
|
+
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 }], 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 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 columns_ ; let colIndex = index\"\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<formly-form\r\n [model]=\"rowData\"\r\n [form]=\"getForm(i, colIndex)\"\r\n [fields]=\"clonedCols[colIndex]\"\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" }] });
|
|
175
179
|
}
|
|
176
180
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.8", ngImport: i0, type: GenericTable, decorators: [{
|
|
177
181
|
type: Component,
|
|
178
|
-
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 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 columns_ ; let colIndex = index\"\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
|
|
182
|
+
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 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 columns_ ; let colIndex = index\"\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<formly-form\r\n [model]=\"rowData\"\r\n [form]=\"getForm(i, colIndex)\"\r\n [fields]=\"clonedCols[colIndex]\"\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"] }]
|
|
179
183
|
}], propDecorators: { dt: [{
|
|
180
184
|
type: ViewChild,
|
|
181
185
|
args: ['dt']
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"elite.framework-ng.ui.core-generic-table.mjs","sources":["../tmp-esm2022/generic-table/lib/generic-table-module.js","../tmp-esm2022/generic-table/lib/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 * 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 columns = [];\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) {\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 = {};\n for (const key of Object.keys(field)) {\n cloned[key] = this.cloneField(field[key]);\n }\n return cloned;\n }\n getForm(rowIndex, colIndex) {\n const cellForms = {};\n const key = `${rowIndex}_${colIndex}`;\n if (!cellForms[key]) {\n cellForms[key] = new FormGroup({});\n }\n return cellForms[key];\n }\n onLazyLoad(event) {\n this.columns_ = this.columns;\n // // debugger\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 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 console.log('GenericTable.onRowSelect:', event.data);\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 }], 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 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 columns_ ; let colIndex = index\\\"\\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 </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 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 columns_ ; let colIndex = index\\\"\\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 </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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2VuZXJpYy10YWJsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvbmcudWkuY29yZS9nZW5lcmljLXRhYmxlL3NyYy9saWIvZ2VuZXJpYy10YWJsZS50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvbmcudWkuY29yZS9nZW5lcmljLXRhYmxlL3NyYy9saWIvZ2VuZXJpYy10YWJsZS5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxZQUFZLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRWxGLE9BQU8sRUFBRSxLQUFLLEVBQTJFLE1BQU0sZUFBZSxDQUFDO0FBQy9HLE9BQU8sRUFBRSxZQUFZLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzlELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDNUMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN0RCxPQUFPLEVBQUUsVUFBVSxFQUFFLElBQUksRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUNoRCxPQUFPLEVBQUUsZUFBZSxFQUFFLGFBQWEsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3JFLE9BQU8sRUFBRSxXQUFXLEVBQXFCLFVBQVUsRUFBcUIsTUFBTSxrQkFBa0IsQ0FBQztBQUNqRyxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7Ozs7Ozs7O0FBUzNDLE1BQU0sT0FBTyxZQUFZO0lBQ1IsRUFBRSxDQUFTO0lBRWpCLElBQUksR0FBUSxFQUFFLENBQUM7SUFDZixPQUFPLEdBQXdCLEVBQUUsQ0FBQztJQUMzQyxRQUFRLEdBQXdCLEVBQUUsQ0FBQztJQUMxQixPQUFPLEdBQUcsS0FBSyxDQUFDO0lBQ2hCLE9BQU8sR0FBbUIsRUFBRSxDQUFDO0lB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eEIsU0FBUzsrQkFDRSxtQkFBbUIsV0FDcEIsQ0FBQyxZQUFZLEVBQUUsV0FBVyxFQUFFLFlBQVksRUFBRSxVQUFVLEVBQUUsT0FBTyxFQUFDLGVBQWUsRUFBQyxXQUFXLEVBQUMsVUFBVSxFQUFFLElBQUksRUFBRSxhQUFhLEVBQUUsSUFBSSxFQUFFLE1BQU0sQ0FBQzs4QkFLbEksRUFBRTtzQkFBbEIsU0FBUzt1QkFBQyxJQUFJO2dCQUVKLElBQUk7c0JBQVosS0FBSztnQkFDRyxPQUFPO3NCQUFmLEtBQUs7Z0JBRUcsT0FBTztzQkFBZixLQUFLO2dCQUNHLE9BQU87c0JBQWYsS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLO2dCQUNHLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxJQUFJO3NCQUFaLEtBQUs7Z0JBQ0csWUFBWTtzQkFBcEIsS0FBSztnQkFDRyxTQUFTO3NCQUFqQixLQUFLO2dCQUNHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ0csa0JBQWtCO3NCQUExQixLQUFLO2dCQUVJLE1BQU07c0JBQWYsTUFBTTtnQkFDRyxVQUFVO3NCQUFuQixNQUFNO2dCQUdHLFFBQVE7c0JBQWpCLE1BQU07Z0JBRUUsWUFBWTtzQkFBcEIsS0FBSztnQkFJRyxhQUFhO3NCQUFyQixLQUFLO2dCQUNDLGFBQWE7c0JBQXJCLEtBQUs7Z0JBU0EsU0FBUztzQkFEWixLQUFLO2dCQVVJLFNBQVM7c0JBQWxCLE1BQU07Z0JBR0csZUFBZTtzQkFBeEIsTUFBTTtnQkFJRSxTQUFTO3NCQUFqQixLQUFLO2dCQU9HLHdCQUF3QjtzQkFBaEMsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIE91dHB1dCwgRXZlbnRFbWl0dGVyLCBWaWV3Q2hpbGQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgTWVudUl0ZW0sIFNvcnRFdmVudCB9IGZyb20gJ3ByaW1lbmcvYXBpJztcclxuaW1wb3J0IHsgVGFibGUsIFRhYmxlSGVhZGVyQ2hlY2tib3hUb2dnbGVFdmVudCwgVGFibGVMYXp5TG9hZEV2ZW50LCBUYWJsZVJvd1NlbGVjdEV2ZW50IH0gZnJvbSAncHJpbWVuZy90YWJsZSc7XHJcbmltcG9ydCB7IENvbW1vbk1vZHVsZSwgTmdGb3JPZiwgTmdJZiB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7IFRhYmxlTW9kdWxlIH0gZnJvbSAncHJpbWVuZy90YWJsZSc7XHJcbmltcG9ydCB7IEJ1dHRvbk1vZHVsZSwgQnV0dG9uIH0gZnJvbSAncHJpbWVuZy9idXR0b24nO1xyXG5pbXBvcnQgeyBNZW51TW9kdWxlLCBNZW51IH0gZnJvbSAncHJpbWVuZy9tZW51JztcclxuaW1wb3J0IHsgVHJhbnNsYXRlTW9kdWxlLCBUcmFuc2xhdGVQaXBlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XHJcbmltcG9ydCB7IEZvcm1seUZpZWxkLCBGb3JtbHlGaWVsZENvbmZpZywgRm9ybWx5Rm9ybSwgRm9ybWx5Rm9ybU9wdGlvbnMgfSBmcm9tICdAbmd4LWZvcm1seS9jb3JlJztcclxuaW1wb3J0IHsgRm9ybUdyb3VwIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBBY3Rpb25EZWYgfSBmcm9tICdAZWxpdGUuZnJhbWV3b3JrL25nLmNvcmUvbW9kZWxzJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnbGliLWdlbmVyaWMtdGFibGUnLFxyXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIFRhYmxlTW9kdWxlLCBCdXR0b25Nb2R1bGUsIE1lbnVNb2R1bGUsIE5nRm9yT2YsVHJhbnNsYXRlTW9kdWxlLEZvcm1seUZpZWxkLEZvcm1seUZvcm0sIE5nSWYsIFRyYW5zbGF0ZVBpcGUsIE1lbnUsIEJ1dHRvbl0sXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2dlbmVyaWMtdGFibGUuaHRtbCcsXHJcbiAgc3R5bGVVcmw6ICcuL2dlbmVyaWMtdGFibGUuY3NzJ1xyXG59KVxyXG5leHBvcnQgY2xhc3MgR2VuZXJpY1RhYmxlPFQ+IHtcclxuQFZpZXdDaGlsZCgnZHQnKSBkdCE6IFRhYmxlO1xyXG5cclxuICBASW5wdXQoKSBkYXRhOiBUW10gPSBbXTtcclxuICBASW5wdXQoKSBjb2x1bW5zOiBGb3JtbHlGaWVsZENvbmZpZ1tdID0gW107XHJcbiAgY29sdW1uc186IEZvcm1seUZpZWxkQ29uZmlnW10gPSBbXTtcclxuICBASW5wdXQoKSBsb2FkaW5nID0gZmFsc2U7XHJcbiAgQElucHV0KCkgYWN0aW9uczogQWN0aW9uRGVmPFQ+W10gPSBbXTtcclxuICBASW5wdXQoKSBhY3Rpb25zTW9kZTogJ2J1dHRvbnMnIHwgJ21lbnUnID0gJ2J1dHRvbnMnO1xyXG4gIEBJbnB1dCgpIGZpcnN0ID0gMDtcclxuICBASW5wdXQoKSByb3dzID0gMTA7XHJcbiAgQElucHV0KCkgdG90YWxSZWNvcmRzID0gMDtcclxuICBASW5wdXQoKSBzb3J0RmllbGQ/OiBzdHJpbmc7XHJcbiAgQElucHV0KCkgc29ydE9yZGVyOiAxIHwgLTEgPSAxO1xyXG4gIEBJbnB1dCgpIGdsb2JhbEZpbHRlckZpZWxkczogc3RyaW5nW10gPSBbXTtcclxuXHJcbiAgQE91dHB1dCgpIGFjdGlvbiA9IG5ldyBFdmVudEVtaXR0ZXI8eyBuYW1lOiBzdHJpbmc7IHJvdzogVCB9PigpO1xyXG4gIEBPdXRwdXQoKSBwYWdlQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxUYWJsZUxhenlMb2FkRXZlbnQ+KCk7XHJcblxyXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8tb3V0cHV0LW9uLXByZWZpeFxyXG4gIEBPdXRwdXQoKSBvbkFkZE5ldyA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xyXG5cclxuICBASW5wdXQoKSBzY3JvbGxIZWlnaHQgPSAnNDAwcHgnO1xyXG5cclxuIC8vICoq2KzYr9mK2K8qKjog2KrZhdmD2YrZhiDYp9iu2KrZitin2LEg2KfZhNi12YHZiNmBXHJcbiAgLyoqINmB2LnZkdmEINin2K7YqtmK2KfYsSDYp9mE2LXZgdmK2YYgc2luZ2xlL211bHRpcGxlICovXHJcbiAgQElucHV0KCkgcm93U2VsZWN0YWJsZSA9IHRydWU7XHJcbkBJbnB1dCgpIHNob3dBZGRCdXR0b24gPSB0cnVlO1xyXG4gIC8qKiDZitit2KrZgdi4INio2KfZhNi12YEg2KfZhNmF2K3Yr9ivICovXHJcbiAgLy9ASW5wdXQoKSBzZWxlY3Rpb246IFQgfCBUW10gfCBudWxsID0gbnVsbDtcclxuXHJcbiAgLy8g2YfYsNinINiz2YrZg9mI2YYg2YXYsdiq2KjYt9mL2Kcg2KjZgCBbKHNlbGVjdGlvbildINmB2YogcC10YWJsZVxyXG4gIF9zZWxlY3Rpb246IFQgfCBUW10gfCBudWxsID0gbnVsbDtcclxuXHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgZ2V0IHNlbGVjdGlvbigpOiBUIHwgVFtdIHwgbnVsbCB7XHJcbiAgICAgIHJldHVybiB0aGlzLl9zZWxlY3Rpb247XHJcbiAgfVxyXG4gIHNldCBzZWxlY3Rpb24odmFsOiBUIHwgVFtdIHwgbnVsbCkge1xyXG4gICAgICB0aGlzLl9zZWxlY3Rpb24gPSB2YWw7XHJcbiAgICAgIC8vINmE2Kcg2KrZj9i12K/YsSDYp9mE2K3Yr9irINmH2YbYp9iMINio2YQg2YHZiiBvbkludGVybmFsU2VsZWN0aW9uQ2hhbmdlINmB2YLYt1xyXG4gIH1cclxuXHJcbiAgLyoqINmK2LXYr9ixINin2YTYtdmBINin2YTZhdit2K/YryDYudmG2K8g2KfZhNmG2YLYsSAqL1xyXG4gIEBPdXRwdXQoKSByb3dTZWxlY3QgPSBuZXcgRXZlbnRFbWl0dGVyPFQ+KCk7XHJcblxyXG4gICAgIC8qKiDZiti12K/YsSDYp9mE2LXZgdmI2YEg2KfZhNmF2K3Yr9iv2Kkg2LnZhtivINin2YTYqti62YrZitixICjZhNmE2LHYqNi3INin2YTYq9mG2KfYptmKKSAqL1xyXG4gIEBPdXRwdXQoKSBzZWxlY3Rpb25DaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPFQgfCBUW10gfCBudWxsPigpO1xyXG5cclxuXHJcbiAgIC8qKiDYrNiv2YrYrzog2KfZhNiq2K3Zg9mFINio2LjZh9mI2LEg2KfZhNmAIHBhZ2luYXRvciAqL1xyXG4gIEBJbnB1dCgpIHBhZ2luYXRvciA9IHRydWU7XHJcbmZvcm0gPSBuZXcgRm9ybUdyb3VwKHt9KTtcclxub3B0aW9uczogRm9ybWx5Rm9ybU9wdGlvbnMgPSB7fTtcclxuXHJcblxyXG4gIC8vICoq2KzYr9mK2K8qKjog2YrYqtit2YPZhSDYqNil2LjZh9in2LEg2LnZhdmI2K8g2KfYrtiq2YrYp9ixINin2YTYtdmB2YjZgSAoY2hlY2tib3hlcylcclxuICAvKiog2YrYqtit2YPZhSDZgdmKINil2LjZh9in2LEg2LnZhdmI2K8g2KfYrtiq2YrYp9ixINin2YTYtdmB2YjZgSDYp9mE2YXYqti52K/Yr9ipINio2YjYp9iz2LfYqSBjaGVja2JveGVzICovXHJcbiAgQElucHV0KCkgc2hvd1Jvd1NlbGVjdGlvbkNoZWNrYm94ID0gZmFsc2U7XHJcblxyXG5cclxuICBvbkludGVybmFsU2VsZWN0aW9uQ2hhbmdlKGV2ZW50OiBUYWJsZVJvd1NlbGVjdEV2ZW50PFQ+XHJcbiAgICB8IFRhYmxlSGVhZGVyQ2hlY2tib3hUb2dnbGVFdmVudCk6IHZvaWQge1xyXG4gIGlmICgnZGF0YScgaW4gZXZlbnQpIHtcclxuICAgIC8vIFJvdyBzZWxlY3QvdW5zZWxlY3QgKHNpbmdsZSDYo9mIIG11bHRpcGxlKVxyXG4gICAgaWYgKEFycmF5LmlzQXJyYXkodGhpcy5fc2VsZWN0aW9uKSkge1xyXG4gICAgICB0aGlzLl9zZWxlY3Rpb24gPSBbLi4udGhpcy5fc2VsZWN0aW9uXTsgLy8g2KrYrdiv2YrYqyDZhtiz2K7YqSDYp9mE2YXYtdmB2YjZgdipINi52YbYryDZhdiq2LnYr9ivXHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLl9zZWxlY3Rpb24gPSBldmVudC5kYXRhIGFzIFQ7IC8vINin2K7YqtmK2KfYsSDZgdix2K/ZilxyXG4gICAgfVxyXG4gIH0gZWxzZSBpZiAoJ2NoZWNrZWQnIGluIGV2ZW50KSB7XHJcbiAgICAvLyBIZWFkZXIgY2hlY2tib3ggdG9nZ2xlXHJcbiAgICB0aGlzLl9zZWxlY3Rpb24gPSBldmVudC5jaGVja2VkID8gWy4uLnRoaXMuZGF0YV0gOiBbXTtcclxuICB9XHJcblxyXG4gIHRoaXMuc2VsZWN0aW9uQ2hhbmdlLmVtaXQodGhpcy5fc2VsZWN0aW9uKTtcclxufVxyXG5cclxuXHJcblxyXG5jdXN0b21Tb3J0KGV2ZW50OiBTb3J0RXZlbnQpIHtcclxuICBldmVudC5kYXRhPy5zb3J0KChkYXRhMSwgZGF0YTIpID0+IHtcclxuICAgIGNvbnN0IHZhbHVlMSA9IHRoaXMucmVzb2x2ZUZpZWxkRGF0YShkYXRhMSwgZXZlbnQuZmllbGQgPz8gJycpO1xyXG4gICAgY29uc3QgdmFsdWUyID0gdGhpcy5yZXNvbHZlRmllbGREYXRhKGRhdGEyLCBldmVudC5maWVsZCA/PyAnJyk7XHJcblxyXG4gICAgbGV0IHJlc3VsdCA9IDA7XHJcbiAgICBpZiAodmFsdWUxID09IG51bGwgJiYgdmFsdWUyICE9IG51bGwpIHJlc3VsdCA9IC0xO1xyXG4gICAgZWxzZSBpZiAodmFsdWUxICE9IG51bGwgJiYgdmFsdWUyID09IG51bGwpIHJlc3VsdCA9IDE7XHJcbiAgICBlbHNlIGlmICh2YWx1ZTEgPT0gbnVsbCAmJiB2YWx1ZTIgPT0gbnVsbCkgcmVzdWx0ID0gMDtcclxuICAgIGVsc2UgaWYgKHR5cGVvZiB2YWx1ZTEgPT09ICdzdHJpbmcnICYmIHR5cGVvZiB2YWx1ZTIgPT09ICdzdHJpbmcnKVxyXG4gICAgICByZXN1bHQgPSB2YWx1ZTEubG9jYWxlQ29tcGFyZSh2YWx1ZTIpO1xyXG4gICAgZWxzZSByZXN1bHQgPSB2YWx1ZTEgPCB2YWx1ZTIgPyAtMSA6IHZhbHVlMSA+IHZhbHVlMiA/IDEgOiAwO1xyXG5cclxuICAgIHJldHVybiAoZXZlbnQub3JkZXIgPz8gMSkgKiByZXN1bHQ7XHJcbiAgfSk7XHJcbn1cclxucmVzb2x2ZUZpZWxkRGF0YShkYXRhOiBhbnksIGZpZWxkOiBzdHJpbmcpOiBhbnkge1xyXG4gIGlmICghZmllbGQpIHJldHVybiBudWxsO1xyXG4gIGlmIChmaWVsZC5pbmRleE9mKCcuJykgPT09IC0xKSByZXR1cm4gZGF0YVtmaWVsZF07XHJcbiAgcmV0dXJuIGZpZWxkLnNwbGl0KCcuJykucmVkdWNlKChvYmosIHByb3ApID0+IChvYmogPyBvYmpbcHJvcF0gOiBudWxsKSwgZGF0YSk7XHJcbn1cclxuXHJcbiBvbkFjdGlvbihhY3Q6IEFjdGlvbkRlZjxUPiwgcm93OiBUKSB7XHJcbiAgICBpZiAoYWN0LmFjdGlvbikge1xyXG4gICAgICBhY3QuYWN0aW9uKHJvdyk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLmFjdGlvbi5lbWl0KHsgbmFtZTogYWN0Lm5hbWUsIHJvdyB9KTtcclxuICAgIH1cclxuICB9XHJcbiBjbG9uZUZpZWxkKGZpZWxkOiBhbnkpOiBhbnkge1xyXG4gIGlmIChmaWVsZCA9PT0gbnVsbCB8fCB0eXBlb2YgZmllbGQgIT09ICdvYmplY3QnKSB7XHJcbiAgICByZXR1cm4gZmllbGQ7XHJcbiAgfVxyXG5cclxuICAgaWYgKEFycmF5LmlzQXJyYXkoZmllbGQpKSB7XHJcbiAgICAvLyBwcmVzZXJ2ZSBgdGhpc2AgY29udGV4dFxyXG4gICAgcmV0dXJuIGZpZWxkLm1hcCgoaXRlbSkgPT4gdGhpcy5jbG9uZUZpZWxkKGl0ZW0pKTtcclxuICB9XHJcbiAgY29uc3QgY2xvbmVkOiBhbnkgPSB7fTtcclxuICBmb3IgKGNvbnN0IGtleSBvZiBPYmplY3Qua2V5cyhmaWVsZCkpIHtcclxuICAgIGNsb25lZFtrZXldID0gdGhpcy5jbG9uZUZpZWxkKGZpZWxkW2tleV0pO1xyXG4gIH1cclxuXHJcbiAgcmV0dXJuIGNsb25lZDtcclxufVxyXG5cclxuICBnZXRGb3JtKHJvd0luZGV4OiBudW1iZXIsIGNvbEluZGV4OiBudW1iZXIpOiBGb3JtR3JvdXAge1xyXG4gICBjb25zdCAgY2VsbEZvcm1zOiB7IFtrZXk6IHN0cmluZ106IEZvcm1Hcm91cCB9ID0ge307XHJcbiAgICBjb25zdCBrZXkgPSBgJHtyb3dJbmRleH1fJHtjb2xJbmRleH1gO1xyXG4gICAgaWYgKCFjZWxsRm9ybXNba2V5XSkge1xyXG4gICAgICBjZWxsRm9ybXNba2V5XSA9IG5ldyBGb3JtR3JvdXAoe30pO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIGNlbGxGb3Jtc1trZXldO1xyXG4gIH1cclxuXHJcbiBvbkxhenlMb2FkKGV2ZW50OiBUYWJsZUxhenlMb2FkRXZlbnQpOiB2b2lkIHtcclxuICB0aGlzLmNvbHVtbnNfID0gdGhpcy5jb2x1bW5zO1xyXG4gIC8vIC8vIGRlYnVnZ2VyXHJcbiAgICB0aGlzLnBhZ2VDaGFuZ2UuZW1pdChldmVudCk7XHJcbiAgfVxyXG5cclxuXHJcbiAgYXBwbHlGaWx0ZXIoZmlsdGVyczogYW55KTogdm9pZCB7XHJcbiAgICAvLyBpZiAoZmllbGQpIHtcclxuICAgIC8vICAgdGhpcy5kdC5maWx0ZXIoZ2xvYmFsLCBmaWVsZCwgJ2NvbnRhaW5zJyk7XHJcbiAgICAvLyB9IGVsc2Uge1xyXG4gICAgLy8gICB0aGlzLmR0LmZpbHRlckdsb2JhbChnbG9iYWwsICdjb250YWlucycpO1xyXG4gICAgLy8gfVxyXG5cclxuICB9XHJcblxyXG4gIGdldE1lbnVJdGVtcyhyb3c6IFQpOiBNZW51SXRlbVtdIHtcclxuICAgIHJldHVybiB0aGlzLmFjdGlvbnMubWFwKGFjdCA9PiAoe1xyXG4gICAgICBsYWJlbDogYWN0LmxhYmVsLFxyXG4gICAgICBpY29uOiBhY3QuaWNvbixcclxuICAgICAgY29tbWFuZDogKCkgPT4gdGhpcy5vbkFjdGlvbihhY3QsIHJvdyApLFxyXG4gICAgICBzdHlsZUNsYXNzOiBhY3Quc3R5bGVDbGFzc1xyXG4gICAgfSkpO1xyXG4gIH1cclxuXHJcbiAvLyAqKtis2K/ZitivKio6INmK2KrZhSDYpdi32YTYp9mCINmH2LDYpyDYudmG2K8g2KfYrtiq2YrYp9ixINi12YFcclxuICBvblJvd1NlbGVjdChldmVudDogVGFibGVSb3dTZWxlY3RFdmVudDxUPikge1xyXG4gICAgLy8gZGVidWdnZXJcclxuICAgICBjb25zb2xlLmxvZygnR2VuZXJpY1RhYmxlLm9uUm93U2VsZWN0OicsIGV2ZW50LmRhdGEpO1xyXG4gICAgaWYgKGV2ZW50LmRhdGEpIHtcclxuICAgICAgdGhpcy5yb3dTZWxlY3QuZW1pdChldmVudC5kYXRhIGFzIFQpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbn1cclxuIiwiXHJcbjxkaXYgY2xhc3M9XCJmbGV4LTEgbGFzdDpbJj50ZF06Ym9yZGVyLTAgcm91bmRlZC1sZyBib3JkZXIgYm9yZGVyLXN1cmZhY2Ugdy1mdWxsIG92ZXJmbG93LWF1dG9cIj5cclxuICA8cC10YWJsZSAjZHRcclxuICBbdmFsdWVdPVwiZGF0YVwiXHJcbiAgW2NvbHVtbnNdPVwiY29sdW1uc1wiXHJcbiAgW2xhenldPVwidHJ1ZVwiXHJcbiAgW3BhZ2luYXRvcl09XCJwYWdpbmF0b3JcIlxyXG4gIFtyb3dzXT1cInJvd3NcIlxyXG4gIFtmaXJzdF09XCJmaXJzdFwiXHJcbiAgICBbdG90YWxSZWNvcmRzXT1cInRvdGFsUmVjb3Jkc1wiXHJcbiAgICBbc29ydEZpZWxkXT1cInNvcnRGaWVsZFwiXHJcbiAgICBbc29ydE9yZGVyXT1cInNvcnRPcmRlclwiIChvbkxhenlMb2FkKT1cIm9uTGF6eUxvYWQoJGV2ZW50KVwiXHJcbiAgICBbZ2xvYmFsRmlsdGVyRmllbGRzXT1cImdsb2JhbEZpbHRlckZpZWxkc1wiXHJcbiAgICBbbG9hZGluZ109XCJsb2FkaW5nXCJcclxuICAgIFtzY3JvbGxhYmxlXT1cInRydWVcIlxyXG4gICAgW3Njcm9sbEhlaWdodF09XCJzY3JvbGxIZWlnaHRcIlxyXG4gICAgW3NlbGVjdGlvbk1vZGVdPVwic2hvd1Jvd1NlbGVjdGlvbkNoZWNrYm94ID8gJ211bHRpcGxlJyA6IChyb3dTZWxlY3RhYmxlID8gJ3NpbmdsZScgOiB1bmRlZmluZWQpXCJcclxuICAgIFsoc2VsZWN0aW9uKV09XCJfc2VsZWN0aW9uXCJcclxuICAgIChvblJvd1NlbGVjdCk9XCJvbkludGVybmFsU2VsZWN0aW9uQ2hhbmdlKCRldmVudClcIlxyXG4gICAgKG9uUm93VW5zZWxlY3QpPVwib25JbnRlcm5hbFNlbGVjdGlvbkNoYW5nZSgkZXZlbnQpXCJcclxuICAgIChvbkhlYWRlckNoZWNrYm94VG9nZ2xlKT1cIm9uSW50ZXJuYWxTZWxlY3Rpb25DaGFuZ2UoJGV2ZW50KVwiXHJcbiAgICB0YWJsZUxheW91dD1cImZpeGVkXCJcclxuICAgIFtjdXN0b21Tb3J0XT1cImZhbHNlXCJcclxuICAgIChzb3J0RnVuY3Rpb24pPVwiY3VzdG9tU29ydCgkZXZlbnQpXCJcclxuICAgID5cclxuXHJcbiAgICAgPG5nLXRlbXBsYXRlIHBUZW1wbGF0ZT1cImVtcHR5bWVzc2FnZVwiPlxyXG4gICAgICA8dHI+XHJcbiAgICAgICAgPHRkIGNvbHNwYW49XCIxMFwiPlxyXG4gICAgPGRpdiBjbGFzcz1cImZsZXggZmxleC1jb2wgaXRlbXMtY2VudGVyIGp1c3RpZnktY2VudGVyIHB5LTEwIHRleHQtY2VudGVyIHctZnVsbFwiPlxyXG4gICAgICA8aSBzdHlsZT1cImZvbnQtc2l6ZTogMi41cmVtO1wiIGNsYXNzPVwicGkgcGktaW5ib3ggdGV4dC00eGwgdGV4dC1ncmF5LTQwMCBtYi00XCI+PC9pPlxyXG4gICAgICA8cCBjbGFzcz1cInRleHQtZ3JheS01MDAgbWItNFwiPnt7ICdOT19EQVRBX0ZPVU5EJyB8IHRyYW5zbGF0ZSB9fTwvcD5cclxuXHJcbiAgICAgIEBpZiAoc2hvd0FkZEJ1dHRvbikge1xyXG5cclxuXHJcbiAgICAgIDxidXR0b25cclxuICAgICAgICBwQnV0dG9uXHJcbiAgICAgICAgdHlwZT1cImJ1dHRvblwiXHJcbiAgICAgICAgc2V2ZXJpdHk9XCJzZWNvbmRhcnlcIlxyXG4gICAgICAgIGljb249XCJwaSBwaS1wbHVzXCJcclxuICAgICAgICBsYWJlbD1cInt7ICdBRERfTkVXJyB8IHRyYW5zbGF0ZSB9fVwiXHJcbiAgICAgICAgY2xhc3M9XCJwLWJ1dHRvbi1yb3VuZGVkXCJcclxuICAgICAgICAoY2xpY2spPVwib25BZGROZXcuZW1pdCgpXCJcclxuICAgICAgPjwvYnV0dG9uPlxyXG4gICAgICB9XHJcbiAgICA8L2Rpdj5cclxuICAgICAgICA8L3RkPlxyXG4gICAgICA8L3RyPlxyXG5cclxuICA8L25nLXRlbXBsYXRlPlxyXG4gIDwhLS0gPG5nLXRlbXBsYXRlIHBUZW1wbGF0ZT1cImVtcHR5bWVzc2FnZVwiPlxyXG4gIDxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtY29sIGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNlbnRlciBweS0yMCB3LWZ1bGxcIj5cclxuICAgIDxpIGNsYXNzPVwicGkgcGktdXNlcnMgdGV4dC02eGwgdGV4dC1ncmF5LTQwMCBtYi02XCI+PC9pPlxyXG4gICAgPGJ1dHRvblxyXG4gICAgICBwQnV0dG9uXHJcbiAgICAgIHR5cGU9XCJidXR0b25cIlxyXG4gICAgICBsYWJlbD1cItil2LbYp9mB2Kkg2YbZiNi5INis2K/ZitivXCJcclxuICAgICAgaWNvbj1cInBpIHBpLXBsdXNcIlxyXG4gICAgICBpY29uUG9zPVwicmlnaHRcIlxyXG4gICAgICBjbGFzcz1cInAtYnV0dG9uLXJvdW5kZWQgcC1idXR0b24tb3V0bGluZWQgcC1idXR0b24tc2Vjb25kYXJ5IHRleHQtc21cIlxyXG4gICAgICAoY2xpY2spPVwib25BZGROZXcoKVwiXHJcbiAgICA+PC9idXR0b24+XHJcbiAgPC9kaXY+XHJcbjwvbmctdGVtcGxhdGU+IC0tPlxyXG5cclxuICAgIDxuZy10ZW1wbGF0ZSBwVGVtcGxhdGU9XCJoZWFkZXJcIiBsZXQtY29sdW1ucz5cclxuICAgICAgPHRyPlxyXG4gICAgICAgICAgPHRoICpuZ0lmPVwic2hvd1Jvd1NlbGVjdGlvbkNoZWNrYm94XCIgc3R5bGU9XCJ3aWR0aDogMnJlbVwiPlxyXG4gICAgICAgIDxwLXRhYmxlSGVhZGVyQ2hlY2tib3g+PC9wLXRhYmxlSGVhZGVyQ2hlY2tib3g+XHJcbiAgICAgIDwvdGg+XHJcbiAgICAgICAgPCEtLSA8dGggc3R5bGU9XCJ3aWR0aDogMXJlbVwiPlxyXG4gICAgICAgICAgPHAtdGFibGVIZWFkZXJDaGVja2JveCAvPlxyXG4gICAgICAgIDwvdGg+IC0tPlxyXG5cclxuICAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGNvbCBvZiBjb2x1bW5zXCIgPlxyXG4gIDx0aCAqbmdJZj1cImNvbC5wcm9wcz8udGFibGU/LnByb3BzPy53aWR0aDsgZWxzZSB0ZW1wbGF0ZU5hbWVcIiBbcFNvcnRhYmxlQ29sdW1uXT1cImNvbC5rZXlcIlxyXG4gICAgICBjbGFzcz1cInB4LTQgcHktMiB0ZXh0LXNtIGZvbnQtbWVkaXVtIHRleHQtd2hpdGUgdGV4dC1jZW50ZXJcIlxyXG4gICAgICBbc3R5bGUubWluLXdpZHRoXT1cImNvbC5wcm9wcz8udGFibGU/LnByb3BzPy53aWR0aFwiPlxyXG4gICAge3sgY29sLnByb3BzPy5sYWJlbCB8IHRyYW5zbGF0ZSB9fVxyXG4gICAgPHAtc29ydEljb24gW2ZpZWxkXT1cImNvbC5rZXlcIj48L3Atc29ydEljb24+XHJcbiAgPC90aD5cclxuXHJcbiAgPG5nLXRlbXBsYXRlICN0ZW1wbGF0ZU5hbWU+XHJcbiAgICA8dGggY2xhc3M9XCJweC00IHB5LTIgdGV4dC1zbSBmb250LW1lZGl1bSB0ZXh0LXdoaXRlIHRleHQtY2VudGVyXCI+XHJcbiAgICAgIHt7IGNvbC5wcm9wcz8ubGFiZWwgfCB0cmFuc2xhdGUgfX1cclxuICAgICAgPHAtc29ydEljb24gW2ZpZWxkXT1cImNvbC5rZXlcIj48L3Atc29ydEljb24+XHJcbiAgICA8L3RoPlxyXG4gIDwvbmctdGVtcGxhdGU+XHJcbjwvbmctY29udGFpbmVyPlxyXG5cclxuXHJcbiAgICAgICAgPHRoIGNsYXNzPVwicHgtNCBweS0yIHRleHQtc20gZm9udC1tZWRpdW0gdGV4dC13aGl0ZSB0ZXh0LWNlbnRlclwiPiB7eyAnT1BFUkFUSU9OUycgfCB0cmFuc2xhdGUgfX08L3RoPlxyXG4gICAgICA8L3RyPlxyXG4gICAgPC9uZy10ZW1wbGF0ZT5cclxuXHJcbiAgICA8bmctdGVtcGxhdGUgcFRlbXBsYXRlPVwiYm9keVwiIGxldC1yb3dEYXRhIGxldC1jb2x1bW5zPVwiY29sdW1uc1wiIGxldC1pPVwicm93SW5kZXhcIj5cclxuICAgICAgPHRyIGNsYXNzPVwiZXZlbjpiZy1ncmF5LTUwIGhvdmVyOmJnLWdyYXktMTAwXCIgKGNsaWNrKT1cInJvd1NlbGVjdC5lbWl0KHJvd0RhdGEpXCI+XHJcbiAgICAgICAgPCEtLSA8dGQgc3R5bGU9XCJ3aWR0aDogMXJlbVwiPlxyXG4gICAgICAgICAgPHAtdGFibGVDaGVja2JveCBbdmFsdWVdPVwicm93RGF0YVwiIC8+XHJcbiAgICAgICAgPC90ZD4gLS0+XHJcbiAgICAgICAgPHRkICpuZ0lmPVwic2hvd1Jvd1NlbGVjdGlvbkNoZWNrYm94XCIgc3R5bGU9XCJ3aWR0aDogMnJlbVwiPlxyXG4gICAgICAgIDxwLXRhYmxlQ2hlY2tib3ggW3ZhbHVlXT1cInJvd0RhdGFcIj48L3AtdGFibGVDaGVja2JveD5cclxuICAgICAgPC90ZD5cclxuICAgICAgICA8dGQgKm5nRm9yPVwibGV0IGNvbCBvZiBjb2x1bW5zXyA7IGxldCBjb2xJbmRleCA9IGluZGV4XCJcclxuICAgIGNsYXNzPVwiYm9yZGVyLXQgYm9yZGVyLWdyYXktMjAwIHB4LTQgcHktMiB0ZXh0LWNlbnRlciB0ZXh0LXNtIHRleHQtZ3JheS03MDBcIlxyXG4gICAgIFtzdHlsZS53aWR0aF09XCJjb2wucHJvcHMgJiYgY29sLnByb3BzWyd0YWJsZSddXHJcbiAgICAgJiYgY29sLnByb3BzWyd0YWJsZSddWydwcm9wcyddICYmIGNvbC5wcm9wc1sndGFibGUnXVsncHJvcHMnXVsnd2lkdGgnXSBcIlxyXG5cclxuICAgICA+XHJcblxyXG5cclxuIDwhLS0g2KXYsNinINin2YTYudmF2YjYryDZgtin2KjZhCDZhNmE2YbZgtixIC0tPlxyXG5cclxuICAgICAgPGZvcm1seS1mb3JtXHJcbiAgICAgIFttb2RlbF09XCJyb3dEYXRhXCJcclxuICAgICAgW2Zvcm1dPVwiZ2V0Rm9ybShpLCBjb2xJbmRleClcIlxyXG4gICAgICBbZmllbGRzXT1cIltjbG9uZUZpZWxkKGNvbCldXCJcclxuICAgICAgW29wdGlvbnNdPVwib3B0aW9uc1wiPlxyXG4gICAgPC9mb3JtbHktZm9ybT5cclxuXHJcbiAgICAgICAgPC90ZD5cclxuICAgICAgICA8dGQgY2xhc3M9XCJib3JkZXItdCBib3JkZXItZ3JheS0yMDAgcHgtNCBweS0yIHRleHQtY2VudGVyIGFsaWduLW1pZGRsZVwiPlxyXG4gICAgICAgICAgPG5nLWNvbnRhaW5lciBbbmdTd2l0Y2hdPVwiYWN0aW9uc01vZGVcIj5cclxuICAgICAgICAgICAgICAgICAgPCEtLSBSZW5kZXIgYnV0dG9ucyAtLT5cclxuICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hDYXNlPVwiJ2J1dHRvbnMnXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgYWN0IG9mIGFjdGlvbnNcIj5cclxuICAgICAgICAgICAgICAgICAgICAgIDxidXR0b25cclxuICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJhY3QuaWNvbiB8fCBhY3QubGFiZWxcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBwQnV0dG9uXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtpY29uXT1cImFjdC5pY29uIHx8ICcnXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgW2xhYmVsXT1cIihhY3QubGFiZWwgIHx8ICcnKSB8IHRyYW5zbGF0ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtjbGFzc109XCJhY3Quc3R5bGVDbGFzcyB8fCAnJ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwicC1idXR0b24tc20gbXgtMVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJvbkFjdGlvbihhY3QsIHJvd0RhdGEpXCJcclxuICAgICAgICAgICAgICAgICAgICAgID48L2J1dHRvbj5cclxuICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+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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"}
|
|
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 * 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 columns = [];\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 clonedCols = [];\n ngOnInit() {\n this.clonedCols = this.columns.map(col => [this.cloneField(col)]);\n }\n cloneField(field) {\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 = {};\n for (const key of Object.keys(field)) {\n cloned[key] = this.cloneField(field[key]);\n }\n return cloned;\n }\n cellForms = {};\n getForm(rowIndex, colIndex) {\n const key = `${rowIndex}_${colIndex}`;\n if (!this.cellForms[key]) {\n this.cellForms[key] = new FormGroup({});\n }\n return this.cellForms[key];\n }\n onLazyLoad(event) {\n this.columns_ = this.columns;\n // // debugger\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 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 console.log('GenericTable.onRowSelect:', event.data);\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 }], 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 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 columns_ ; let colIndex = index\\\"\\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<formly-form\\r\\n [model]=\\\"rowData\\\"\\r\\n [form]=\\\"getForm(i, colIndex)\\\"\\r\\n [fields]=\\\"clonedCols[colIndex]\\\"\\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 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 columns_ ; let colIndex = index\\\"\\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<formly-form\\r\\n [model]=\\\"rowData\\\"\\r\\n [form]=\\\"getForm(i, colIndex)\\\"\\r\\n [fields]=\\\"clonedCols[colIndex]\\\"\\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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2VuZXJpYy10YWJsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvbmcudWkuY29yZS9nZW5lcmljLXRhYmxlL3NyYy9saWIvZ2VuZXJpYy10YWJsZS50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvbmcudWkuY29yZS9nZW5lcmljLXRhYmxlL3NyYy9saWIvZ2VuZXJpYy10YWJsZS5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxZQUFZLEVBQUUsU0FBUyxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBRTFGLE9BQU8sRUFBRSxLQUFLLEVBQTJFLE1BQU0sZUFBZSxDQUFDO0FBQy9HLE9BQU8sRUFBRSxZQUFZLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzlELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDNUMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN0RCxPQUFPLEVBQUUsVUFBVSxFQUFFLElBQUksRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUNoRCxPQUFPLEVBQUUsZUFBZSxFQUFFLGFBQWEsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3JFLE9BQU8sRUFBRSxXQUFXLEVBQXFCLFVBQVUsRUFBcUIsTUFBTSxrQkFBa0IsQ0FBQztBQUNqRyxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7Ozs7Ozs7O0FBUzNDLE1BQU0sT0FBTyxZQUFZO0lBQ1IsRUFBRSxDQUFTO0lBRWpCLElBQUksR0FBUSxFQUFFLENBQUM7SUFDZixPQUFPLEdBQXdCLEVBQUUsQ0FBQztJQUMzQyxRQUFRLEdBQXdCLEVBQUUsQ0FBQztJQUMxQixPQUFPLEdBQUcsS0FBSyxDQUFDO0lBQ2hCLE9BQU8sR0FBbUIsRUFBRSxDQUFDO0lBQzdCLFdBQVcsR0FBdUIsU0FBUyxDQUFDO0lBQzVDLEtBQUssR0FBRyxDQUFDLENBQUM7SUFDVixJQUFJLEdBQUcsRUFBRSxDQUFDO0lBQ1YsWUFBWSxHQUFHLENBQUMsQ0FBQztJQUNqQixTQUFTLENBQVU7SUFDbkIsU0FBUyxHQUFXLENBQUMsQ0FBQztJQUN0QixrQkFBa0IsR0FBYSxFQUFFLENBQUM7SUFFakMsTUFBTSxHQUFHLElBQUksWUFBWSxFQUE0QixDQUFDO0lBQ3RELFVBQVUsR0FBRyxJQUFJLFlBQVksRUFBc0IsQ0FBQztJQUU5RCwrREFBK0Q7SUFDckQsUUFBUSxHQUFHLElBQUksWUFBWSxFQUFPLENBQUM7SUFFcEMsWUFBWSxHQUFHLE9BQU8sQ0FBQztJQUVqQyxnQ0FBZ0M7SUFDL0IseUNBQXlDO0lBQ2hDLGFBQWEsR0FBRyxJQUFJLENBQUM7SUFDdkIsYUFBYSxHQUFHLElBQUksQ0FBQztJQUM1Qix5QkFBeUI7SUFDekIsNENBQTRDO0lBRTVDLGdEQUFnRDtJQUNoRCxVQUFVLEdBQW1CLElBQUksQ0FBQztJQUdsQyxJQUNJLFNBQVM7UUFDVCxPQUFPLElBQUksQ0FBQyxVQUFVLENBQUM7SUFDM0IsQ0FBQztJQUNELElBQUksU0FBUyxDQUFDLEdBQW1CO1FBQzdCLElBQUksQ0FBQyxVQUFVLEdBQUcsR0FBRyxDQUFDO1FBQ3RCLDBEQUEwRDtJQUM5RCxDQUFDO0lBRUQsaUNBQWlDO0lBQ3ZCLFNBQVMsR0FBRyxJQUFJLFlBQVksRUFBSyxDQUFDO0lBRXpDLHNEQUFzRDtJQUMvQyxlQUFlLEdBQUcsSUFBSSxZQUFZLEVBQWtCLENBQUM7SUFHOUQsdUNBQXVDO0lBQy9CLFNBQVMsR0FBRyxJQUFJLENBQUM7SUFDNUIsSUFBSSxHQUFHLElBQUksU0FBUyxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQ3pCLE9BQU8sR0FBc0IsRUFBRSxDQUFDO0lBRzlCLHlEQUF5RDtJQUN6RCxtRUFBbUU7SUFDMUQsd0JBQXdCLEdBQUcsS0FBSyxDQUFDO0lBRzFDLHlCQUF5QixDQUFDLEtBQ1E7UUFDbEMsSUFBSSxNQUFNLElBQUksS0FBSyxFQUFFLENBQUM7WUFDcEIsMkNBQTJDO1lBQzNDLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLEVBQUUsQ0FBQztnQkFDbkMsSUFBSSxDQUFDLFVBQVUsR0FBRyxDQUFDLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsZ0NBQWdDO1lBQzFFLENBQUM7aUJBQU0sQ0FBQztnQkFDTixJQUFJLENBQUMsVUFBVSxHQUFHLEtBQUssQ0FBQyxJQUFTLENBQUMsQ0FBQyxjQUFjO1lBQ25ELENBQUM7UUFDSCxDQUFDO2FBQU0sSUFBSSxTQUFTLElBQUksS0FBSyxFQUFFLENBQUM7WUFDOUIseUJBQXlCO1lBQ3pCLElBQUksQ0FBQyxVQUFVLEdBQUcsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO1FBQ3hELENBQUM7UUFFRCxJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDN0MsQ0FBQztJQUlELFVBQVUsQ0FBQyxLQUFnQjtRQUN6QixLQUFLLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDLEtBQUssRUFBRSxLQUFLLEVBQUUsRUFBRTtZQUNoQyxNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxLQUFLLElBQUksRUFBRSxDQUFDLENBQUM7WUFDL0QsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsS0FBSyxJQUFJLEVBQUUsQ0FBQyxDQUFDO1lBRS9ELElBQUksTUFBTSxHQUFHLENBQUMsQ0FBQztZQUNmLElBQUksTUFBTSxJQUFJLElBQUksSUFBSSxNQUFNLElBQUksSUFBSTtnQkFBRSxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUM7aUJBQzdDLElBQUksTUFBTSxJQUFJLElBQUksSUFBSSxNQUFNLElBQUksSUFBSTtnQkFBRSxNQUFNLEdBQUcsQ0FBQyxDQUFDO2lCQUNqRCxJQUFJLE1BQU0sSUFBSSxJQUFJLElBQUksTUFBTSxJQUFJLElBQUk7Z0JBQUUsTUFBTSxHQUFHLENBQUMsQ0FBQztpQkFDakQsSUFBSSxPQUFPLE1BQU0sS0FBSyxRQUFRLElBQUksT0FBTyxNQUFNLEtBQUssUUFBUTtnQkFDL0QsTUFBTSxHQUFHLE1BQU0sQ0FBQyxhQUFhLENBQUMsTUFBTSxDQUFDLENBQUM7O2dCQUNuQyxNQUFNLEdBQUcsTUFBTSxHQUFHLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBRTdELE9BQU8sQ0FBQyxLQUFLLENBQUMsS0FBSyxJQUFJLENBQUMsQ0FBQyxHQUFHLE1BQU0sQ0FBQztRQUNyQyxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFDRCxnQkFBZ0IsQ0FBQyxJQUFTLEVBQUUsS0FBYTtRQUN2QyxJQUFJLENBQUMsS0FBSztZQUFFLE9BQU8sSUFBSSxDQUFDO1FBQ3hCLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUM7WUFBRSxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNsRCxPQUFPLEtBQUssQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsR0FBRyxFQUFFLElBQUksRUFBRSxFQUFFLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDaEYsQ0FBQztJQUVBLFFBQVEsQ0FBQyxHQUFpQixFQUFFLEdBQU07UUFDL0IsSUFBSSxHQUFHLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDZixHQUFHLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ2xCLENBQUM7YUFBTSxDQUFDO1lBQ04sSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsRUFBRSxJQUFJLEVBQUUsR0FBRyxDQUFDLElBQUksRUFBRSxHQUFHLEVBQUUsQ0FBQyxDQUFDO1FBQzVDLENBQUM7SUFDSCxDQUFDO0lBQ0QsVUFBVSxHQUFZLEVBQUUsQ0FBQztJQUN6QixRQUFRO1FBQ1IsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDcEUsQ0FBQztJQUNBLFVBQVUsQ0FBQyxLQUFVO1FBQ3BCLElBQUksS0FBSyxLQUFLLElBQUksSUFBSSxPQUFPLEtBQUssS0FBSyxRQUFRLEVBQUUsQ0FBQztZQUNoRCxPQUFPLEtBQUssQ0FBQztRQUNmLENBQUM7UUFFQSxJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQztZQUMxQiwwQkFBMEI7WUFDMUIsT0FBTyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7UUFDcEQsQ0FBQztRQUNELE1BQU0sTUFBTSxHQUFRLEVBQUUsQ0FBQztRQUN2QixLQUFLLE1BQU0sR0FBRyxJQUFJLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQztZQUNyQyxNQUFNLENBQUMsR0FBRyxDQUFDLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztRQUM1QyxDQUFDO1FBRUQsT0FBTyxNQUFNLENBQUM7SUFDaEIsQ0FBQztJQUVRLFNBQVMsR0FBaUMsRUFBRSxDQUFDO0lBRXRELE9BQU8sQ0FBQyxRQUFnQixFQUFFLFFBQWdCO1FBQ3hDLE1BQU0sR0FBRyxHQUFHLEdBQUcsUUFBUSxJQUFJLFFBQVEsRUFBRSxDQUFDO1FBQ3RDLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUM7WUFDekIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsR0FBRyxJQUFJLFNBQVMsQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUMxQyxDQUFDO1FBQ0QsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQzdCLENBQUM7SUFFQSxVQUFVLENBQUMsS0FBeUI7UUFDbkMsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDO1FBQzdCLGNBQWM7UUFDWixJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUM5QixDQUFDO0lBR0QsV0FBVyxDQUFDLE9BQVk7UUFDdEIsZUFBZTtRQUNmLCtDQUErQztRQUMvQyxXQUFXO1FBQ1gsOENBQThDO1FBQzlDLElBQUk7SUFFTixDQUFDO0lBRUQsWUFBWSxDQUFDLEdBQU07UUFDakIsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUM7WUFDOUIsS0FBSyxFQUFFLEdBQUcsQ0FBQyxLQUFLO1lBQ2hCLElBQUksRUFBRSxHQUFHLENBQUMsSUFBSTtZQUNkLE9BQU8sRUFBRSxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsRUFBRSxHQUFHLENBQUU7WUFDdkMsVUFBVSxFQUFFLEdBQUcsQ0FBQyxVQUFVO1NBQzNCLENBQUMsQ0FBQyxDQUFDO0lBQ04sQ0FBQztJQUVGLHdDQUF3QztJQUN2QyxXQUFXLENBQUMsS0FBNkI7UUFDdkMsV0FBVztRQUNWLE9BQU8sQ0FBQyxHQUFHLENBQUMsMkJBQTJCLEVBQUUsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3RELElBQUksS0FBSyxDQUFDLElBQUksRUFBRSxDQUFDO1lBQ2YsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQVMsQ0FBQyxDQUFDO1FBQ3ZDLENBQUM7SUFDSCxDQUFDO3VHQTdLVSxZQUFZOzJGQUFaLFlBQVksOHZCQ2xCekIsKzVOQWdMQSxvVkRsS1ksWUFBWSx5aEJBQUUsV0FBVyxnaEZBQUUsWUFBWSx1cEJBQUUsVUFBVSwwVUFBVSxlQUFlLCtCQUFhLFVBQVU7OzJGQUlsRyxZQUFZO2tCQU54QixTQUFTOytCQUNFLG1CQUFtQixXQUNwQixDQUFDLFlBQVksRUFBRSxXQUFXLEVBQUUsWUFBWSxFQUFFLFVBQVUsRUFBRSxPQUFPLEVBQUMsZUFBZSxFQUFDLFdBQVcsRUFBQyxVQUFVLEVBQUUsSUFBSSxFQUFFLGFBQWEsRUFBRSxJQUFJLEVBQUUsTUFBTSxDQUFDOzhCQUtsSSxFQUFFO3NCQUFsQixTQUFTO3VCQUFDLElBQUk7Z0JBRUosSUFBSTtzQkFBWixLQUFLO2dCQUNHLE9BQU87c0JBQWYsS0FBSztnQkFFRyxPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csT0FBTztzQkFBZixLQUFLO2dCQUNHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBQ0csS0FBSztzQkFBYixLQUFLO2dCQUNHLElBQUk7c0JBQVosS0FBSztnQkFDRyxZQUFZO3NCQUFwQixLQUFLO2dCQUNHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSztnQkFDRyxrQkFBa0I7c0JBQTFCLEtBQUs7Z0JBRUksTUFBTTtzQkFBZixNQUFNO2dCQUNHLFVBQVU7c0JBQW5CLE1BQU07Z0JBR0csUUFBUTtzQkFBakIsTUFBTTtnQkFFRSxZQUFZO3NCQUFwQixLQUFLO2dCQUlHLGFBQWE7c0JBQXJCLEtBQUs7Z0JBQ0MsYUFBYTtzQkFBckIsS0FBSztnQkFTQSxTQUFTO3NCQURaLEtBQUs7Z0JBVUksU0FBUztzQkFBbEIsTUFBTTtnQkFHRyxlQUFlO3NCQUF4QixNQUFNO2dCQUlFLFNBQVM7c0JBQWpCLEtBQUs7Z0JBT0csd0JBQXdCO3NCQUFoQyxLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCwgT3V0cHV0LCBFdmVudEVtaXR0ZXIsIFZpZXdDaGlsZCwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IE1lbnVJdGVtLCBTb3J0RXZlbnQgfSBmcm9tICdwcmltZW5nL2FwaSc7XHJcbmltcG9ydCB7IFRhYmxlLCBUYWJsZUhlYWRlckNoZWNrYm94VG9nZ2xlRXZlbnQsIFRhYmxlTGF6eUxvYWRFdmVudCwgVGFibGVSb3dTZWxlY3RFdmVudCB9IGZyb20gJ3ByaW1lbmcvdGFibGUnO1xyXG5pbXBvcnQgeyBDb21tb25Nb2R1bGUsIE5nRm9yT2YsIE5nSWYgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBUYWJsZU1vZHVsZSB9IGZyb20gJ3ByaW1lbmcvdGFibGUnO1xyXG5pbXBvcnQgeyBCdXR0b25Nb2R1bGUsIEJ1dHRvbiB9IGZyb20gJ3ByaW1lbmcvYnV0dG9uJztcclxuaW1wb3J0IHsgTWVudU1vZHVsZSwgTWVudSB9IGZyb20gJ3ByaW1lbmcvbWVudSc7XHJcbmltcG9ydCB7IFRyYW5zbGF0ZU1vZHVsZSwgVHJhbnNsYXRlUGlwZSB9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xyXG5pbXBvcnQgeyBGb3JtbHlGaWVsZCwgRm9ybWx5RmllbGRDb25maWcsIEZvcm1seUZvcm0sIEZvcm1seUZvcm1PcHRpb25zIH0gZnJvbSAnQG5neC1mb3JtbHkvY29yZSc7XHJcbmltcG9ydCB7IEZvcm1Hcm91cCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgQWN0aW9uRGVmIH0gZnJvbSAnQGVsaXRlLmZyYW1ld29yay9uZy5jb3JlL21vZGVscyc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2xpYi1nZW5lcmljLXRhYmxlJyxcclxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBUYWJsZU1vZHVsZSwgQnV0dG9uTW9kdWxlLCBNZW51TW9kdWxlLCBOZ0Zvck9mLFRyYW5zbGF0ZU1vZHVsZSxGb3JtbHlGaWVsZCxGb3JtbHlGb3JtLCBOZ0lmLCBUcmFuc2xhdGVQaXBlLCBNZW51LCBCdXR0b25dLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9nZW5lcmljLXRhYmxlLmh0bWwnLFxyXG4gIHN0eWxlVXJsOiAnLi9nZW5lcmljLXRhYmxlLmNzcydcclxufSlcclxuZXhwb3J0IGNsYXNzIEdlbmVyaWNUYWJsZTxUPiBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcbkBWaWV3Q2hpbGQoJ2R0JykgZHQhOiBUYWJsZTtcclxuXHJcbiAgQElucHV0KCkgZGF0YTogVFtdID0gW107XHJcbiAgQElucHV0KCkgY29sdW1uczogRm9ybWx5RmllbGRDb25maWdbXSA9IFtdO1xyXG4gIGNvbHVtbnNfOiBGb3JtbHlGaWVsZENvbmZpZ1tdID0gW107XHJcbiAgQElucHV0KCkgbG9hZGluZyA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpIGFjdGlvbnM6IEFjdGlvbkRlZjxUPltdID0gW107XHJcbiAgQElucHV0KCkgYWN0aW9uc01vZGU6ICdidXR0b25zJyB8ICdtZW51JyA9ICdidXR0b25zJztcclxuICBASW5wdXQoKSBmaXJzdCA9IDA7XHJcbiAgQElucHV0KCkgcm93cyA9IDEwO1xyXG4gIEBJbnB1dCgpIHRvdGFsUmVjb3JkcyA9IDA7XHJcbiAgQElucHV0KCkgc29ydEZpZWxkPzogc3RyaW5nO1xyXG4gIEBJbnB1dCgpIHNvcnRPcmRlcjogMSB8IC0xID0gMTtcclxuICBASW5wdXQoKSBnbG9iYWxGaWx0ZXJGaWVsZHM6IHN0cmluZ1tdID0gW107XHJcblxyXG4gIEBPdXRwdXQoKSBhY3Rpb24gPSBuZXcgRXZlbnRFbWl0dGVyPHsgbmFtZTogc3RyaW5nOyByb3c6IFQgfT4oKTtcclxuICBAT3V0cHV0KCkgcGFnZUNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8VGFibGVMYXp5TG9hZEV2ZW50PigpO1xyXG5cclxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLW91dHB1dC1vbi1wcmVmaXhcclxuICBAT3V0cHV0KCkgb25BZGROZXcgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcclxuXHJcbiAgQElucHV0KCkgc2Nyb2xsSGVpZ2h0ID0gJzQwMHB4JztcclxuXHJcbiAvLyAqKtis2K/ZitivKio6INiq2YXZg9mK2YYg2KfYrtiq2YrYp9ixINin2YTYtdmB2YjZgVxyXG4gIC8qKiDZgdi52ZHZhCDYp9iu2KrZitin2LEg2KfZhNi12YHZitmGIHNpbmdsZS9tdWx0aXBsZSAqL1xyXG4gIEBJbnB1dCgpIHJvd1NlbGVjdGFibGUgPSB0cnVlO1xyXG5ASW5wdXQoKSBzaG93QWRkQnV0dG9uID0gdHJ1ZTtcclxuICAvKiog2YrYrdiq2YHYuCDYqNin2YTYtdmBINin2YTZhdit2K/YryAqL1xyXG4gIC8vQElucHV0KCkgc2VsZWN0aW9uOiBUIHwgVFtdIHwgbnVsbCA9IG51bGw7XHJcblxyXG4gIC8vINmH2LDYpyDYs9mK2YPZiNmGINmF2LHYqtio2LfZi9inINio2YAgWyhzZWxlY3Rpb24pXSDZgdmKIHAtdGFibGVcclxuICBfc2VsZWN0aW9uOiBUIHwgVFtdIHwgbnVsbCA9IG51bGw7XHJcblxyXG5cclxuICBASW5wdXQoKVxyXG4gIGdldCBzZWxlY3Rpb24oKTogVCB8IFRbXSB8IG51bGwge1xyXG4gICAgICByZXR1cm4gdGhpcy5fc2VsZWN0aW9uO1xyXG4gIH1cclxuICBzZXQgc2VsZWN0aW9uKHZhbDogVCB8IFRbXSB8IG51bGwpIHtcclxuICAgICAgdGhpcy5fc2VsZWN0aW9uID0gdmFsO1xyXG4gICAgICAvLyDZhNinINiq2Y/Ytdiv2LEg2KfZhNit2K/YqyDZh9mG2KfYjCDYqNmEINmB2Yogb25JbnRlcm5hbFNlbGVjdGlvbkNoYW5nZSDZgdmC2LdcclxuICB9XHJcblxyXG4gIC8qKiDZiti12K/YsSDYp9mE2LXZgSDYp9mE2YXYrdiv2K8g2LnZhtivINin2YTZhtmC2LEgKi9cclxuICBAT3V0cHV0KCkgcm93U2VsZWN0ID0gbmV3IEV2ZW50RW1pdHRlcjxUPigpO1xyXG5cclxuICAgICAvKiog2YrYtdiv2LEg2KfZhNi12YHZiNmBINin2YTZhdit2K/Yr9ipINi52YbYryDYp9mE2KrYutmK2YrYsSAo2YTZhNix2KjYtyDYp9mE2KvZhtin2KbZiikgKi9cclxuICBAT3V0cHV0KCkgc2VsZWN0aW9uQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxUIHwgVFtdIHwgbnVsbD4oKTtcclxuXHJcblxyXG4gICAvKiog2KzYr9mK2K86INin2YTYqtit2YPZhSDYqNi42YfZiNixINin2YTZgCBwYWdpbmF0b3IgKi9cclxuICBASW5wdXQoKSBwYWdpbmF0b3IgPSB0cnVlO1xyXG5mb3JtID0gbmV3IEZvcm1Hcm91cCh7fSk7XHJcbm9wdGlvbnM6IEZvcm1seUZvcm1PcHRpb25zID0ge307XHJcblxyXG5cclxuICAvLyAqKtis2K/ZitivKio6INmK2KrYrdmD2YUg2KjYpdi42YfYp9ixINi52YXZiNivINin2K7YqtmK2KfYsSDYp9mE2LXZgdmI2YEgKGNoZWNrYm94ZXMpXHJcbiAgLyoqINmK2KrYrdmD2YUg2YHZiiDYpdi42YfYp9ixINi52YXZiNivINin2K7YqtmK2KfYsSDYp9mE2LXZgdmI2YEg2KfZhNmF2KrYudiv2K/YqSDYqNmI2KfYs9i32KkgY2hlY2tib3hlcyAqL1xyXG4gIEBJbnB1dCgpIHNob3dSb3dTZWxlY3Rpb25DaGVja2JveCA9IGZhbHNlO1xyXG5cclxuXHJcbiAgb25JbnRlcm5hbFNlbGVjdGlvbkNoYW5nZShldmVudDogVGFibGVSb3dTZWxlY3RFdmVudDxUPlxyXG4gICAgfCBUYWJsZUhlYWRlckNoZWNrYm94VG9nZ2xlRXZlbnQpOiB2b2lkIHtcclxuICBpZiAoJ2RhdGEnIGluIGV2ZW50KSB7XHJcbiAgICAvLyBSb3cgc2VsZWN0L3Vuc2VsZWN0IChzaW5nbGUg2KPZiCBtdWx0aXBsZSlcclxuICAgIGlmIChBcnJheS5pc0FycmF5KHRoaXMuX3NlbGVjdGlvbikpIHtcclxuICAgICAgdGhpcy5fc2VsZWN0aW9uID0gWy4uLnRoaXMuX3NlbGVjdGlvbl07IC8vINiq2K3Yr9mK2Ksg2YbYs9iu2Kkg2KfZhNmF2LXZgdmI2YHYqSDYudmG2K8g2YXYqti52K/Yr1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5fc2VsZWN0aW9uID0gZXZlbnQuZGF0YSBhcyBUOyAvLyDYp9iu2KrZitin2LEg2YHYsdiv2YpcclxuICAgIH1cclxuICB9IGVsc2UgaWYgKCdjaGVja2VkJyBpbiBldmVudCkge1xyXG4gICAgLy8gSGVhZGVyIGNoZWNrYm94IHRvZ2dsZVxyXG4gICAgdGhpcy5fc2VsZWN0aW9uID0gZXZlbnQuY2hlY2tlZCA/IFsuLi50aGlzLmRhdGFdIDogW107XHJcbiAgfVxyXG5cclxuICB0aGlzLnNlbGVjdGlvbkNoYW5nZS5lbWl0KHRoaXMuX3NlbGVjdGlvbik7XHJcbn1cclxuXHJcblxyXG5cclxuY3VzdG9tU29ydChldmVudDogU29ydEV2ZW50KSB7XHJcbiAgZXZlbnQuZGF0YT8uc29ydCgoZGF0YTEsIGRhdGEyKSA9PiB7XHJcbiAgICBjb25zdCB2YWx1ZTEgPSB0aGlzLnJlc29sdmVGaWVsZERhdGEoZGF0YTEsIGV2ZW50LmZpZWxkID8/ICcnKTtcclxuICAgIGNvbnN0IHZhbHVlMiA9IHRoaXMucmVzb2x2ZUZpZWxkRGF0YShkYXRhMiwgZXZlbnQuZmllbGQgPz8gJycpO1xyXG5cclxuICAgIGxldCByZXN1bHQgPSAwO1xyXG4gICAgaWYgKHZhbHVlMSA9PSBudWxsICYmIHZhbHVlMiAhPSBudWxsKSByZXN1bHQgPSAtMTtcclxuICAgIGVsc2UgaWYgKHZhbHVlMSAhPSBudWxsICYmIHZhbHVlMiA9PSBudWxsKSByZXN1bHQgPSAxO1xyXG4gICAgZWxzZSBpZiAodmFsdWUxID09IG51bGwgJiYgdmFsdWUyID09IG51bGwpIHJlc3VsdCA9IDA7XHJcbiAgICBlbHNlIGlmICh0eXBlb2YgdmFsdWUxID09PSAnc3RyaW5nJyAmJiB0eXBlb2YgdmFsdWUyID09PSAnc3RyaW5nJylcclxuICAgICAgcmVzdWx0ID0gdmFsdWUxLmxvY2FsZUNvbXBhcmUodmFsdWUyKTtcclxuICAgIGVsc2UgcmVzdWx0ID0gdmFsdWUxIDwgdmFsdWUyID8gLTEgOiB2YWx1ZTEgPiB2YWx1ZTIgPyAxIDogMDtcclxuXHJcbiAgICByZXR1cm4gKGV2ZW50Lm9yZGVyID8/IDEpICogcmVzdWx0O1xyXG4gIH0pO1xyXG59XHJcbnJlc29sdmVGaWVsZERhdGEoZGF0YTogYW55LCBmaWVsZDogc3RyaW5nKTogYW55IHtcclxuICBpZiAoIWZpZWxkKSByZXR1cm4gbnVsbDtcclxuICBpZiAoZmllbGQuaW5kZXhPZignLicpID09PSAtMSkgcmV0dXJuIGRhdGFbZmllbGRdO1xyXG4gIHJldHVybiBmaWVsZC5zcGxpdCgnLicpLnJlZHVjZSgob2JqLCBwcm9wKSA9PiAob2JqID8gb2JqW3Byb3BdIDogbnVsbCksIGRhdGEpO1xyXG59XHJcblxyXG4gb25BY3Rpb24oYWN0OiBBY3Rpb25EZWY8VD4sIHJvdzogVCkge1xyXG4gICAgaWYgKGFjdC5hY3Rpb24pIHtcclxuICAgICAgYWN0LmFjdGlvbihyb3cpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5hY3Rpb24uZW1pdCh7IG5hbWU6IGFjdC5uYW1lLCByb3cgfSk7XHJcbiAgICB9XHJcbiAgfVxyXG4gIGNsb25lZENvbHM6IGFueVtdW10gPSBbXTtcclxuICBuZ09uSW5pdCgpIHtcclxuICB0aGlzLmNsb25lZENvbHMgPSB0aGlzLmNvbHVtbnMubWFwKGNvbCA9PiBbdGhpcy5jbG9uZUZpZWxkKGNvbCldKTtcclxufVxyXG4gY2xvbmVGaWVsZChmaWVsZDogYW55KTogYW55IHtcclxuICBpZiAoZmllbGQgPT09IG51bGwgfHwgdHlwZW9mIGZpZWxkICE9PSAnb2JqZWN0Jykge1xyXG4gICAgcmV0dXJuIGZpZWxkO1xyXG4gIH1cclxuXHJcbiAgIGlmIChBcnJheS5pc0FycmF5KGZpZWxkKSkge1xyXG4gICAgLy8gcHJlc2VydmUgYHRoaXNgIGNvbnRleHRcclxuICAgIHJldHVybiBmaWVsZC5tYXAoKGl0ZW0pID0+IHRoaXMuY2xvbmVGaWVsZChpdGVtKSk7XHJcbiAgfVxyXG4gIGNvbnN0IGNsb25lZDogYW55ID0ge307XHJcbiAgZm9yIChjb25zdCBrZXkgb2YgT2JqZWN0LmtleXMoZmllbGQpKSB7XHJcbiAgICBjbG9uZWRba2V5XSA9IHRoaXMuY2xvbmVGaWVsZChmaWVsZFtrZXldKTtcclxuICB9XHJcblxyXG4gIHJldHVybiBjbG9uZWQ7XHJcbn1cclxuXHJcbiBwcml2YXRlIGNlbGxGb3JtczogeyBba2V5OiBzdHJpbmddOiBGb3JtR3JvdXAgfSA9IHt9O1xyXG5cclxuZ2V0Rm9ybShyb3dJbmRleDogbnVtYmVyLCBjb2xJbmRleDogbnVtYmVyKTogRm9ybUdyb3VwIHtcclxuICBjb25zdCBrZXkgPSBgJHtyb3dJbmRleH1fJHtjb2xJbmRleH1gO1xyXG4gIGlmICghdGhpcy5jZWxsRm9ybXNba2V5XSkge1xyXG4gICAgdGhpcy5jZWxsRm9ybXNba2V5XSA9IG5ldyBGb3JtR3JvdXAoe30pO1xyXG4gIH1cclxuICByZXR1cm4gdGhpcy5jZWxsRm9ybXNba2V5XTtcclxufVxyXG5cclxuIG9uTGF6eUxvYWQoZXZlbnQ6IFRhYmxlTGF6eUxvYWRFdmVudCk6IHZvaWQge1xyXG4gIHRoaXMuY29sdW1uc18gPSB0aGlzLmNvbHVtbnM7XHJcbiAgLy8gLy8gZGVidWdnZXJcclxuICAgIHRoaXMucGFnZUNoYW5nZS5lbWl0KGV2ZW50KTtcclxuICB9XHJcblxyXG5cclxuICBhcHBseUZpbHRlcihmaWx0ZXJzOiBhbnkpOiB2b2lkIHtcclxuICAgIC8vIGlmIChmaWVsZCkge1xyXG4gICAgLy8gICB0aGlzLmR0LmZpbHRlcihnbG9iYWwsIGZpZWxkLCAnY29udGFpbnMnKTtcclxuICAgIC8vIH0gZWxzZSB7XHJcbiAgICAvLyAgIHRoaXMuZHQuZmlsdGVyR2xvYmFsKGdsb2JhbCwgJ2NvbnRhaW5zJyk7XHJcbiAgICAvLyB9XHJcblxyXG4gIH1cclxuXHJcbiAgZ2V0TWVudUl0ZW1zKHJvdzogVCk6IE1lbnVJdGVtW10ge1xyXG4gICAgcmV0dXJuIHRoaXMuYWN0aW9ucy5tYXAoYWN0ID0+ICh7XHJcbiAgICAgIGxhYmVsOiBhY3QubGFiZWwsXHJcbiAgICAgIGljb246IGFjdC5pY29uLFxyXG4gICAgICBjb21tYW5kOiAoKSA9PiB0aGlzLm9uQWN0aW9uKGFjdCwgcm93ICksXHJcbiAgICAgIHN0eWxlQ2xhc3M6IGFjdC5zdHlsZUNsYXNzXHJcbiAgICB9KSk7XHJcbiAgfVxyXG5cclxuIC8vICoq2KzYr9mK2K8qKjog2YrYqtmFINil2LfZhNin2YIg2YfYsNinINi52YbYryDYp9iu2KrZitin2LEg2LXZgVxyXG4gIG9uUm93U2VsZWN0KGV2ZW50OiBUYWJsZVJvd1NlbGVjdEV2ZW50PFQ+KSB7XHJcbiAgICAvLyBkZWJ1Z2dlclxyXG4gICAgIGNvbnNvbGUubG9nKCdHZW5lcmljVGFibGUub25Sb3dTZWxlY3Q6JywgZXZlbnQuZGF0YSk7XHJcbiAgICBpZiAoZXZlbnQuZGF0YSkge1xyXG4gICAgICB0aGlzLnJvd1NlbGVjdC5lbWl0KGV2ZW50LmRhdGEgYXMgVCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxufVxyXG4iLCJcclxuPGRpdiBjbGFzcz1cImZsZXgtMSBsYXN0OlsmPnRkXTpib3JkZXItMCByb3VuZGVkLWxnIGJvcmRlciBib3JkZXItc3VyZmFjZSB3LWZ1bGwgb3ZlcmZsb3ctYXV0b1wiPlxyXG4gIDxwLXRhYmxlICNkdFxyXG4gIFt2YWx1ZV09XCJkYXRhXCJcclxuICBbY29sdW1uc109XCJjb2x1bW5zXCJcclxuICBbbGF6eV09XCJ0cnVlXCJcclxuICBbcGFnaW5hdG9yXT1cInBhZ2luYXRvclwiXHJcbiAgW3Jvd3NdPVwicm93c1wiXHJcbiAgW2ZpcnN0XT1cImZpcnN0XCJcclxuICAgIFt0b3RhbFJlY29yZHNdPVwidG90YWxSZWNvcmRzXCJcclxuICAgIFtzb3J0RmllbGRdPVwic29ydEZpZWxkXCJcclxuICAgIFtzb3J0T3JkZXJdPVwic29ydE9yZGVyXCIgKG9uTGF6eUxvYWQpPVwib25MYXp5TG9hZCgkZXZlbnQpXCJcclxuICAgIFtnbG9iYWxGaWx0ZXJGaWVsZHNdPVwiZ2xvYmFsRmlsdGVyRmllbGRzXCJcclxuICAgIFtsb2FkaW5nXT1cImxvYWRpbmdcIlxyXG4gICAgW3Njcm9sbGFibGVdPVwidHJ1ZVwiXHJcbiAgICBbc2Nyb2xsSGVpZ2h0XT1cInNjcm9sbEhlaWdodFwiXHJcbiAgICBbc2VsZWN0aW9uTW9kZV09XCJzaG93Um93U2VsZWN0aW9uQ2hlY2tib3ggPyAnbXVsdGlwbGUnIDogKHJvd1NlbGVjdGFibGUgPyAnc2luZ2xlJyA6IHVuZGVmaW5lZClcIlxyXG4gICAgWyhzZWxlY3Rpb24pXT1cIl9zZWxlY3Rpb25cIlxyXG4gICAgKG9uUm93U2VsZWN0KT1cIm9uSW50ZXJuYWxTZWxlY3Rpb25DaGFuZ2UoJGV2ZW50KVwiXHJcbiAgICAob25Sb3dVbnNlbGVjdCk9XCJvbkludGVybmFsU2VsZWN0aW9uQ2hhbmdlKCRldmVudClcIlxyXG4gICAgKG9uSGVhZGVyQ2hlY2tib3hUb2dnbGUpPVwib25JbnRlcm5hbFNlbGVjdGlvbkNoYW5nZSgkZXZlbnQpXCJcclxuICAgIHRhYmxlTGF5b3V0PVwiZml4ZWRcIlxyXG4gICAgW2N1c3RvbVNvcnRdPVwiZmFsc2VcIlxyXG4gICAgKHNvcnRGdW5jdGlvbik9XCJjdXN0b21Tb3J0KCRldmVudClcIlxyXG4gICAgPlxyXG5cclxuICAgICA8bmctdGVtcGxhdGUgcFRlbXBsYXRlPVwiZW1wdHltZXNzYWdlXCI+XHJcbiAgICAgIDx0cj5cclxuICAgICAgICA8dGQgY29sc3Bhbj1cIjEwXCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwiZmxleCBmbGV4LWNvbCBpdGVtcy1jZW50ZXIganVzdGlmeS1jZW50ZXIgcHktMTAgdGV4dC1jZW50ZXIgdy1mdWxsXCI+XHJcbiAgICAgIDxpIHN0eWxlPVwiZm9udC1zaXplOiAyLjVyZW07XCIgY2xhc3M9XCJwaSBwaS1pbmJveCB0ZXh0LTR4bCB0ZXh0LWdyYXktNDAwIG1iLTRcIj48L2k+XHJcbiAgICAgIDxwIGNsYXNzPVwidGV4dC1ncmF5LTUwMCBtYi00XCI+e3sgJ05PX0RBVEFfRk9VTkQnIHwgdHJhbnNsYXRlIH19PC9wPlxyXG5cclxuICAgICAgQGlmIChzaG93QWRkQnV0dG9uKSB7XHJcblxyXG5cclxuICAgICAgPGJ1dHRvblxyXG4gICAgICAgIHBCdXR0b25cclxuICAgICAgICB0eXBlPVwiYnV0dG9uXCJcclxuICAgICAgICBzZXZlcml0eT1cInNlY29uZGFyeVwiXHJcbiAgICAgICAgaWNvbj1cInBpIHBpLXBsdXNcIlxyXG4gICAgICAgIGxhYmVsPVwie3sgJ0FERF9ORVcnIHwgdHJhbnNsYXRlIH19XCJcclxuICAgICAgICBjbGFzcz1cInAtYnV0dG9uLXJvdW5kZWRcIlxyXG4gICAgICAgIChjbGljayk9XCJvbkFkZE5ldy5lbWl0KClcIlxyXG4gICAgICA+PC9idXR0b24+XHJcbiAgICAgIH1cclxuICAgIDwvZGl2PlxyXG4gICAgICAgIDwvdGQ+XHJcbiAgICAgIDwvdHI+XHJcblxyXG4gIDwvbmctdGVtcGxhdGU+XHJcbiAgPCEtLSA8bmctdGVtcGxhdGUgcFRlbXBsYXRlPVwiZW1wdHltZXNzYWdlXCI+XHJcbiAgPGRpdiBjbGFzcz1cImZsZXggZmxleC1jb2wgaXRlbXMtY2VudGVyIGp1c3RpZnktY2VudGVyIHB5LTIwIHctZnVsbFwiPlxyXG4gICAgPGkgY2xhc3M9XCJwaSBwaS11c2VycyB0ZXh0LTZ4bCB0ZXh0LWdyYXktNDAwIG1iLTZcIj48L2k+XHJcbiAgICA8YnV0dG9uXHJcbiAgICAgIHBCdXR0b25cclxuICAgICAgdHlwZT1cImJ1dHRvblwiXHJcbiAgICAgIGxhYmVsPVwi2KXYttin2YHYqSDZhtmI2Lkg2KzYr9mK2K9cIlxyXG4gICAgICBpY29uPVwicGkgcGktcGx1c1wiXHJcbiAgICAgIGljb25Qb3M9XCJyaWdodFwiXHJcbiAgICAgIGNsYXNzPVwicC1idXR0b24tcm91bmRlZCBwLWJ1dHRvbi1vdXRsaW5lZCBwLWJ1dHRvbi1zZWNvbmRhcnkgdGV4dC1zbVwiXHJcbiAgICAgIChjbGljayk9XCJvbkFkZE5ldygpXCJcclxuICAgID48L2J1dHRvbj5cclxuICA8L2Rpdj5cclxuPC9uZy10ZW1wbGF0ZT4gLS0+XHJcblxyXG4gICAgPG5nLXRlbXBsYXRlIHBUZW1wbGF0ZT1cImhlYWRlclwiIGxldC1jb2x1bW5zPlxyXG4gICAgICA8dHI+XHJcbiAgICAgICAgICA8dGggKm5nSWY9XCJzaG93Um93U2VsZWN0aW9uQ2hlY2tib3hcIiBzdHlsZT1cIndpZHRoOiAycmVtXCI+XHJcbiAgICAgICAgPHAtdGFibGVIZWFkZXJDaGVja2JveD48L3AtdGFibGVIZWFkZXJDaGVja2JveD5cclxuICAgICAgPC90aD5cclxuICAgICAgICA8IS0tIDx0aCBzdHlsZT1cIndpZHRoOiAxcmVtXCI+XHJcbiAgICAgICAgICA8cC10YWJsZUhlYWRlckNoZWNrYm94IC8+XHJcbiAgICAgICAgPC90aD4gLS0+XHJcblxyXG4gICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgY29sIG9mIGNvbHVtbnNcIiA+XHJcbiAgPHRoICpuZ0lmPVwiY29sLnByb3BzPy50YWJsZT8ucHJvcHM/LndpZHRoOyBlbHNlIHRlbXBsYXRlTmFtZVwiIFtwU29ydGFibGVDb2x1bW5dPVwiY29sLmtleVwiXHJcbiAgICAgIGNsYXNzPVwicHgtNCBweS0yIHRleHQtc20gZm9udC1tZWRpdW0gdGV4dC13aGl0ZSB0ZXh0LWNlbnRlclwiXHJcbiAgICAgIFtzdHlsZS5taW4td2lkdGhdPVwiY29sLnByb3BzPy50YWJsZT8ucHJvcHM/LndpZHRoXCI+XHJcbiAgICB7eyBjb2wucHJvcHM/LmxhYmVsIHwgdHJhbnNsYXRlIH19XHJcbiAgICA8cC1zb3J0SWNvbiBbZmllbGRdPVwiY29sLmtleVwiPjwvcC1zb3J0SWNvbj5cclxuICA8L3RoPlxyXG5cclxuICA8bmctdGVtcGxhdGUgI3RlbXBsYXRlTmFtZT5cclxuICAgIDx0aCBjbGFzcz1cInB4LTQgcHktMiB0ZXh0LXNtIGZvbnQtbWVkaXVtIHRleHQtd2hpdGUgdGV4dC1jZW50ZXJcIj5cclxuICAgICAge3sgY29sLnByb3BzPy5sYWJlbCB8IHRyYW5zbGF0ZSB9fVxyXG4gICAgICA8cC1zb3J0SWNvbiBbZmllbGRdPVwiY29sLmtleVwiPjwvcC1zb3J0SWNvbj5cclxuICAgIDwvdGg+XHJcbiAgPC9uZy10ZW1wbGF0ZT5cclxuPC9uZy1jb250YWluZXI+XHJcblxyXG5cclxuICAgICAgICA8dGggY2xhc3M9XCJweC00IHB5LTIgdGV4dC1zbSBmb250LW1lZGl1bSB0ZXh0LXdoaXRlIHRleHQtY2VudGVyXCI+IHt7ICdPUEVSQVRJT05TJyB8IHRyYW5zbGF0ZSB9fTwvdGg+XHJcbiAgICAgIDwvdHI+XHJcbiAgICA8L25nLXRlbXBsYXRlPlxyXG5cclxuICAgIDxuZy10ZW1wbGF0ZSBwVGVtcGxhdGU9XCJib2R5XCIgbGV0LXJvd0RhdGEgbGV0LWNvbHVtbnM9XCJjb2x1bW5zXCIgbGV0LWk9XCJyb3dJbmRleFwiPlxyXG4gICAgICA8dHIgY2xhc3M9XCJldmVuOmJnLWdyYXktNTAgaG92ZXI6YmctZ3JheS0xMDBcIiAoY2xpY2spPVwicm93U2VsZWN0LmVtaXQocm93RGF0YSlcIj5cclxuICAgICAgICA8IS0tIDx0ZCBzdHlsZT1cIndpZHRoOiAxcmVtXCI+XHJcbiAgICAgICAgICA8cC10YWJsZUNoZWNrYm94IFt2YWx1ZV09XCJyb3dEYXRhXCIgLz5cclxuICAgICAgICA8L3RkPiAtLT5cclxuICAgICAgICA8dGQgKm5nSWY9XCJzaG93Um93U2VsZWN0aW9uQ2hlY2tib3hcIiBzdHlsZT1cIndpZHRoOiAycmVtXCI+XHJcbiAgICAgICAgPHAtdGFibGVDaGVja2JveCBbdmFsdWVdPVwicm93RGF0YVwiPjwvcC10YWJsZUNoZWNrYm94PlxyXG4gICAgICA8L3RkPlxyXG4gICAgICAgIDx0ZCAqbmdGb3I9XCJsZXQgY29sIG9mIGNvbHVtbnNfIDsgbGV0IGNvbEluZGV4ID0gaW5kZXhcIlxyXG4gICAgY2xhc3M9XCJib3JkZXItdCBib3JkZXItZ3JheS0yMDAgcHgtNCBweS0yIHRleHQtY2VudGVyIHRleHQtc20gdGV4dC1ncmF5LTcwMFwiXHJcbiAgICAgW3N0eWxlLndpZHRoXT1cImNvbC5wcm9wcyAmJiBjb2wucHJvcHNbJ3RhYmxlJ11cclxuICAgICAmJiBjb2wucHJvcHNbJ3RhYmxlJ11bJ3Byb3BzJ10gJiYgY29sLnByb3BzWyd0YWJsZSddWydwcm9wcyddWyd3aWR0aCddIFwiXHJcblxyXG4gICAgID5cclxuXHJcblxyXG4gPCEtLSDYpdiw2Kcg2KfZhNi52YXZiNivINmC2KfYqNmEINmE2YTZhtmC2LEgLS0+XHJcblxyXG4gICAgICA8IS0tIDxmb3JtbHktZm9ybVxyXG4gICAgICBbbW9kZWxdPVwicm93RGF0YVwiXHJcbiAgICAgIFtmb3JtXT1cImdldEZvcm0oaSwgY29sSW5kZXgpXCJcclxuICAgICAgW2ZpZWxkc109XCJbY2xvbmVGaWVsZChjb2wpXVwiXHJcbiAgICAgIFtvcHRpb25zXT1cIm9wdGlvbnNcIj5cclxuICAgIDwvZm9ybWx5LWZvcm0+IC0tPlxyXG48Zm9ybWx5LWZvcm1cclxuICAgICAgW21vZGVsXT1cInJvd0RhdGFcIlxyXG4gICAgICBbZm9ybV09XCJnZXRGb3JtKGksIGNvbEluZGV4KVwiXHJcbiAgICAgIFtmaWVsZHNdPVwiY2xvbmVkQ29sc1tjb2xJbmRleF1cIlxyXG4gICAgICBbb3B0aW9uc109XCJvcHRpb25zXCI+XHJcbiAgICA8L2Zvcm1seS1mb3JtPlxyXG4gICAgICAgIDwvdGQ+XHJcbiAgICAgICAgPHRkIGNsYXNzPVwiYm9yZGVyLXQgYm9yZGVyLWdyYXktMjAwIHB4LTQgcHktMiB0ZXh0LWNlbnRlciBhbGlnbi1taWRkbGVcIj5cclxuICAgICAgICAgIDxuZy1jb250YWluZXIgW25nU3dpdGNoXT1cImFjdGlvbnNNb2RlXCI+XHJcbiAgICAgICAgICAgICAgICAgIDwhLS0gUmVuZGVyIGJ1dHRvbnMgLS0+XHJcbiAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nU3dpdGNoQ2FzZT1cIididXR0b25zJ1wiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGFjdCBvZiBhY3Rpb25zXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiYWN0Lmljb24gfHwgYWN0LmxhYmVsXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgcEJ1dHRvblxyXG4gICAgICAgICAgICAgICAgICAgICAgICBbaWNvbl09XCJhY3QuaWNvbiB8fCAnJ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtsYWJlbF09XCIoYWN0LmxhYmVsICB8fCAnJykgfCB0cmFuc2xhdGVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBbY2xhc3NdPVwiYWN0LnN0eWxlQ2xhc3MgfHwgJydcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInAtYnV0dG9uLXNtIG14LTFcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwib25BY3Rpb24oYWN0LCByb3dEYXRhKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICA+PC9idXR0b24+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG5cclxuICAgICAgICAgICAgICAgICAgPCEtLSBSZW5kZXIgbWVudSAtLT5cclxuICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hDYXNlPVwiJ21lbnUnXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgIDxwLW1lbnUgI21lbnUgW21vZGVsXT1cImdldE1lbnVJdGVtcyhyb3dEYXRhKVwiIFtwb3B1cF09XCJ0cnVlXCIgYXBwZW5kVG89XCJib2R5XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlIGxldC1pdGVtIHBUZW1wbGF0ZT1cIml0ZW1cIj5cclxuICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IGl0ZW1zLWNlbnRlciBnYXAtMiBweC0yIHB5LTFcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGkgW25nQ2xhc3NdPVwiaXRlbS5pY29uXCIgY2xhc3M9XCJ0ZXh0LXByaW1hcnktNjAwXCIgKm5nSWY9XCJpdGVtLmljb25cIj48L2k+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZm9udC1tZWRpdW1cIj57eyAoaXRlbS5sYWJlbCAgfHwgJycpIHwgdHJhbnNsYXRlIH19PC9zcGFuPlxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gKm5nSWY9XCJpdGVtLmJhZGdlXCIgY2xhc3M9XCJtbC1hdXRvIHRleHQteHMgYmctcmVkLTUwMCB0ZXh0LXdoaXRlIHB4LTIgcHktMSByb3VuZGVkXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAge3sgaXRlbS5iYWRnZSB9fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8IS0tIDxwLWlucHV0U3dpdGNoICpuZ0lmPVwiaXRlbS50b2dnbGVcIiBbKG5nTW9kZWwpXT1cIml0ZW0udG9nZ2xlVmFsdWVcIiBjbGFzcz1cIm1sLWF1dG9cIiAvPiAtLT5cclxuICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICAgICAgICAgICAgICAgIDwvcC1tZW51PlxyXG5cclxuICAgICAgICAgICAgICAgICAgICA8cC1idXR0b25cclxuICAgICAgICAgICAgICAgICAgICBvdXRsaW5lZFxyXG4gICAgICAgICAgICAgICAgICAgICAgaWNvbj1cInBpIHBpLWVsbGlwc2lzLXZcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJwLWJ1dHRvbi10ZXh0IHAtYnV0dG9uLXNtXCJcclxuICAgICAgICAgICAgICAgICAgICAgIChvbkNsaWNrKT1cIm1lbnUudG9nZ2xlKCRldmVudClcIlxyXG4gICAgICAgICAgICAgICAgICAgID48L3AtYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG5cclxuICAgICAgICA8L3RkPlxyXG4gICAgICA8L3RyPlxyXG4gICAgPC9uZy10ZW1wbGF0ZT5cclxuICA8L3AtdGFibGU+XHJcblxyXG48L2Rpdj5cclxuIl19","/**\n * Generated bundle index. Do not edit.\n */\nexport * from './index';\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWxpdGUuZnJhbWV3b3JrLW5nLnVpLmNvcmUtZ2VuZXJpYy10YWJsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYnMvbmcudWkuY29yZS9nZW5lcmljLXRhYmxlL3NyYy9lbGl0ZS5mcmFtZXdvcmstbmcudWkuY29yZS1nZW5lcmljLXRhYmxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsY0FBYyxTQUFTLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEdlbmVyYXRlZCBidW5kbGUgaW5kZXguIERvIG5vdCBlZGl0LlxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vaW5kZXgnO1xuIl19"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAGO,MAAM,kBAAkB,CAAC;AAChC,IAAI,OAAO,IAAI,GAAG,EAAE,CAAC,kBAAkB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,kBAAkB,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,CAAC,eAAe,CAAC,QAAQ,EAAE,CAAC;AAC3K,IAAI,OAAO,IAAI,GAAG,EAAE,CAAC,mBAAmB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,kBAAkB,EAAE,OAAO,EAAE,CAAC,YAAY,CAAC,EAAE,CAAC;AACtJ,IAAI,OAAO,IAAI,GAAG,EAAE,CAAC,mBAAmB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,kBAAkB,EAAE,OAAO,EAAE,CAAC,YAAY,CAAC,EAAE,CAAC;AACtJ;AACA,EAAE,CAAC,wBAAwB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,kBAAkB,EAAE,UAAU,EAAE,CAAC;AAC5H,YAAY,IAAI,EAAE,QAAQ;AAC1B,YAAY,IAAI,EAAE,CAAC;AACnB,oBAAoB,OAAO,EAAE,CAAC,YAAY,CAAC;AAC3C,iBAAiB;AACjB,SAAS,CAAC,EAAE,CAAC;;ACGN,MAAM,YAAY,CAAC;AAC1B,IAAI,EAAE;AACN,IAAI,IAAI,GAAG,EAAE;AACb,IAAI,OAAO,GAAG,EAAE;AAChB,IAAI,QAAQ,GAAG,EAAE;AACjB,IAAI,OAAO,GAAG,KAAK;AACnB,IAAI,OAAO,GAAG,EAAE;AAChB,IAAI,WAAW,GAAG,SAAS;AAC3B,IAAI,KAAK,GAAG,CAAC;AACb,IAAI,IAAI,GAAG,EAAE;AACb,IAAI,YAAY,GAAG,CAAC;AACpB,IAAI,SAAS;AACb,IAAI,SAAS,GAAG,CAAC;AACjB,IAAI,kBAAkB,GAAG,EAAE;AAC3B,IAAI,MAAM,GAAG,IAAI,YAAY,EAAE;AAC/B,IAAI,UAAU,GAAG,IAAI,YAAY,EAAE;AACnC;AACA,IAAI,QAAQ,GAAG,IAAI,YAAY,EAAE;AACjC,IAAI,YAAY,GAAG,OAAO;AAC1B;AACA;AACA,IAAI,aAAa,GAAG,IAAI;AACxB,IAAI,aAAa,GAAG,IAAI;AACxB;AACA;AACA;AACA,IAAI,UAAU,GAAG,IAAI;AACrB,IAAI,IAAI,SAAS,GAAG;AACpB,QAAQ,OAAO,IAAI,CAAC,UAAU;AAC9B;AACA,IAAI,IAAI,SAAS,CAAC,GAAG,EAAE;AACvB,QAAQ,IAAI,CAAC,UAAU,GAAG,GAAG;AAC7B;AACA;AACA;AACA,IAAI,SAAS,GAAG,IAAI,YAAY,EAAE;AAClC;AACA,IAAI,eAAe,GAAG,IAAI,YAAY,EAAE;AACxC;AACA,IAAI,SAAS,GAAG,IAAI;AACpB,IAAI,IAAI,GAAG,IAAI,SAAS,CAAC,EAAE,CAAC;AAC5B,IAAI,OAAO,GAAG,EAAE;AAChB;AACA;AACA,IAAI,wBAAwB,GAAG,KAAK;AACpC,IAAI,yBAAyB,CAAC,KAAK,EAAE;AACrC,QAAQ,IAAI,MAAM,IAAI,KAAK,EAAE;AAC7B;AACA,YAAY,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE;AAChD,gBAAgB,IAAI,CAAC,UAAU,GAAG,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC;AACvD;AACA,iBAAiB;AACjB,gBAAgB,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC,IAAI,CAAC;AAC7C;AACA;AACA,aAAa,IAAI,SAAS,IAAI,KAAK,EAAE;AACrC;AACA,YAAY,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC,OAAO,GAAG,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE;AACjE;AACA,QAAQ,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC;AAClD;AACA,IAAI,UAAU,CAAC,KAAK,EAAE;AACtB,QAAQ,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,KAAK,EAAE,KAAK,KAAK;AAC3C,YAAY,MAAM,MAAM,GAAG,IAAI,CAAC,gBAAgB,CAAC,KAAK,EAAE,KAAK,CAAC,KAAK,IAAI,EAAE,CAAC;AAC1E,YAAY,MAAM,MAAM,GAAG,IAAI,CAAC,gBAAgB,CAAC,KAAK,EAAE,KAAK,CAAC,KAAK,IAAI,EAAE,CAAC;AAC1E,YAAY,IAAI,MAAM,GAAG,CAAC;AAC1B,YAAY,IAAI,MAAM,IAAI,IAAI,IAAI,MAAM,IAAI,IAAI;AAChD,gBAAgB,MAAM,GAAG,CAAC,CAAC;AAC3B,iBAAiB,IAAI,MAAM,IAAI,IAAI,IAAI,MAAM,IAAI,IAAI;AACrD,gBAAgB,MAAM,GAAG,CAAC;AAC1B,iBAAiB,IAAI,MAAM,IAAI,IAAI,IAAI,MAAM,IAAI,IAAI;AACrD,gBAAgB,MAAM,GAAG,CAAC;AAC1B,iBAAiB,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,OAAO,MAAM,KAAK,QAAQ;AAC7E,gBAAgB,MAAM,GAAG,MAAM,CAAC,aAAa,CAAC,MAAM,CAAC;AACrD;AACA,gBAAgB,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,CAAC,CAAC,GAAG,MAAM,GAAG,MAAM,GAAG,CAAC,GAAG,CAAC;AACvE,YAAY,OAAO,CAAC,KAAK,CAAC,KAAK,IAAI,CAAC,IAAI,MAAM;AAC9C,SAAS,CAAC;AACV;AACA,IAAI,gBAAgB,CAAC,IAAI,EAAE,KAAK,EAAE;AAClC,QAAQ,IAAI,CAAC,KAAK;AAClB,YAAY,OAAO,IAAI;AACvB,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;AACrC,YAAY,OAAO,IAAI,CAAC,KAAK,CAAC;AAC9B,QAAQ,OAAO,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,IAAI,MAAM,GAAG,GAAG,GAAG,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,EAAE,IAAI,CAAC;AACrF;AACA,IAAI,QAAQ,CAAC,GAAG,EAAE,GAAG,EAAE;AACvB,QAAQ,IAAI,GAAG,CAAC,MAAM,EAAE;AACxB,YAAY,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC;AAC3B;AACA,aAAa;AACb,YAAY,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,GAAG,CAAC,IAAI,EAAE,GAAG,EAAE,CAAC;AACrD;AACA;AACA,IAAI,UAAU,GAAG,EAAE;AACnB,IAAI,QAAQ,GAAG;AACf,QAAQ,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC;AACzE;AACA,IAAI,UAAU,CAAC,KAAK,EAAE;AACtB,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;AACzD,YAAY,OAAO,KAAK;AACxB;AACA,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;AAClC;AACA,YAAY,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;AAC7D;AACA,QAAQ,MAAM,MAAM,GAAG,EAAE;AACzB,QAAQ,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE;AAC9C,YAAY,MAAM,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;AACrD;AACA,QAAQ,OAAO,MAAM;AACrB;AACA,IAAI,SAAS,GAAG,EAAE;AAClB,IAAI,OAAO,CAAC,QAAQ,EAAE,QAAQ,EAAE;AAChC,QAAQ,MAAM,GAAG,GAAG,CAAC,EAAE,QAAQ,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC;AAC7C,QAAQ,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE;AAClC,YAAY,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,IAAI,SAAS,CAAC,EAAE,CAAC;AACnD;AACA,QAAQ,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC;AAClC;AACA,IAAI,UAAU,CAAC,KAAK,EAAE;AACtB,QAAQ,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,OAAO;AACpC;AACA,QAAQ,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC;AACnC;AACA,IAAI,WAAW,CAAC,OAAO,EAAE;AACzB;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,YAAY,CAAC,GAAG,EAAE;AACtB,QAAQ,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,KAAK;AACxC,YAAY,KAAK,EAAE,GAAG,CAAC,KAAK;AAC5B,YAAY,IAAI,EAAE,GAAG,CAAC,IAAI;AAC1B,YAAY,OAAO,EAAE,MAAM,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,GAAG,CAAC;AAClD,YAAY,UAAU,EAAE,GAAG,CAAC;AAC5B,SAAS,CAAC,CAAC;AACX;AACA;AACA,IAAI,WAAW,CAAC,KAAK,EAAE;AACvB;AACA,QAAQ,OAAO,CAAC,GAAG,CAAC,2BAA2B,EAAE,KAAK,CAAC,IAAI,CAAC;AAC5D,QAAQ,IAAI,KAAK,CAAC,IAAI,EAAE;AACxB,YAAY,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC;AAC3C;AACA;AACA,IAAI,OAAO,IAAI,GAAG,EAAE,CAAC,kBAAkB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,CAAC,eAAe,CAAC,SAAS,EAAE,CAAC;AACtK,IAAI,OAAO,IAAI,GAAG,EAAE,CAAC,oBAAoB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,YAAY,EAAE,YAAY,EAAE,IAAI,EAAE,QAAQ,EAAE,mBAAmB,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,aAAa,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,YAAY,EAAE,cAAc,EAAE,SAAS,EAAE,WAAW,EAAE,SAAS,EAAE,WAAW,EAAE,kBAAkB,EAAE,oBAAoB,EAAE,YAAY,EAAE,cAAc,EAAE,aAAa,EAAE,eAAe,EAAE,aAAa,EAAE,eAAe,EAAE,SAAS,EAAE,WAAW,EAAE,SAAS,EAAE,WAAW,EAAE,wBAAwB,EAAE,0BAA0B,EAAE,EAAE,OAAO,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,UAAU,EAAE,YAAY,EAAE,QAAQ,EAAE,UAAU,EAAE,SAAS,EAAE,WAAW,EAAE,eAAe,EAAE,iBAAiB,EAAE,EAAE,WAAW,EAAE,CAAC,EAAE,YAAY,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,IAAI,CAAC,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,QAAQ,EAAE,+5NAA+5N,EAAE,MAAM,EAAE,CAAC,6RAA6R,CAAC,EAAE,YAAY,EAAE,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,YAAY,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,EAAE,CAAC,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,EAAE,CAAC,OAAO,EAAE,SAAS,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,EAAE,CAAC,OAAO,EAAE,QAAQ,EAAE,kBAAkB,EAAE,MAAM,EAAE,CAAC,SAAS,EAAE,cAAc,EAAE,eAAe,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,EAAE,CAAC,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC,MAAM,EAAE,UAAU,EAAE,UAAU,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,EAAE,CAAC,QAAQ,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,EAAE,CAAC,UAAU,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,EAAE,CAAC,YAAY,EAAE,QAAQ,EAAE,gBAAgB,EAAE,MAAM,EAAE,CAAC,cAAc,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,WAAW,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,EAAE,CAAC,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,EAAE,CAAC,eAAe,EAAE,aAAa,EAAE,YAAY,EAAE,YAAY,EAAE,iBAAiB,EAAE,WAAW,EAAE,WAAW,EAAE,oBAAoB,EAAE,qBAAqB,EAAE,mBAAmB,EAAE,qBAAqB,EAAE,2BAA2B,EAAE,+BAA+B,EAAE,2BAA2B,EAAE,uBAAuB,EAAE,wBAAwB,EAAE,qBAAqB,EAAE,mBAAmB,EAAE,eAAe,EAAE,kBAAkB,EAAE,UAAU,EAAE,iBAAiB,EAAE,eAAe,EAAE,mBAAmB,EAAE,sBAAsB,EAAE,0BAA0B,EAAE,SAAS,EAAE,kBAAkB,EAAE,eAAe,EAAE,YAAY,EAAE,MAAM,EAAE,gBAAgB,EAAE,oBAAoB,EAAE,cAAc,EAAE,gBAAgB,EAAE,SAAS,EAAE,oBAAoB,EAAE,aAAa,EAAE,cAAc,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,eAAe,EAAE,YAAY,EAAE,cAAc,EAAE,cAAc,EAAE,eAAe,EAAE,uBAAuB,EAAE,sBAAsB,EAAE,oBAAoB,EAAE,aAAa,EAAE,aAAa,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,oBAAoB,EAAE,SAAS,EAAE,aAAa,EAAE,YAAY,EAAE,UAAU,EAAE,YAAY,EAAE,sBAAsB,EAAE,gBAAgB,EAAE,cAAc,EAAE,UAAU,EAAE,cAAc,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,EAAE,eAAe,EAAE,aAAa,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,YAAY,EAAE,iBAAiB,EAAE,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,EAAE,cAAc,EAAE,WAAW,EAAE,WAAW,EAAE,eAAe,EAAE,WAAW,EAAE,WAAW,CAAC,EAAE,OAAO,EAAE,CAAC,4BAA4B,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,aAAa,EAAE,eAAe,EAAE,QAAQ,EAAE,QAAQ,EAAE,UAAU,EAAE,YAAY,EAAE,aAAa,EAAE,eAAe,EAAE,qBAAqB,EAAE,aAAa,EAAE,cAAc,EAAE,cAAc,EAAE,YAAY,EAAE,gBAAgB,EAAE,cAAc,EAAE,wBAAwB,EAAE,cAAc,EAAE,aAAa,EAAE,YAAY,EAAE,aAAa,EAAE,gBAAgB,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,EAAE,CAAC,aAAa,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,EAAE,CAAC,MAAM,EAAE,WAAW,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,EAAE,CAAC,cAAc,EAAE,QAAQ,EAAE,mBAAmB,EAAE,MAAM,EAAE,CAAC,iBAAiB,EAAE,yBAAyB,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,EAAE,CAAC,QAAQ,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,EAAE,CAAC,OAAO,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,EAAE,CAAC,aAAa,EAAE,QAAQ,EAAE,iBAAiB,EAAE,MAAM,EAAE,CAAC,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,EAAE,CAAC,mBAAmB,EAAE,QAAQ,EAAE,uBAAuB,EAAE,MAAM,EAAE,CAAC,UAAU,EAAE,SAAS,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,YAAY,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,EAAE,CAAC,eAAe,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,EAAE,CAAC,SAAS,EAAE,aAAa,EAAE,SAAS,EAAE,UAAU,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,aAAa,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,EAAE,CAAC,MAAM,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,EAAE,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,aAAa,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,eAAe,EAAE,WAAW,EAAE,aAAa,EAAE,WAAW,EAAE,OAAO,CAAC,EAAE,OAAO,EAAE,CAAC,SAAS,EAAE,SAAS,EAAE,QAAQ,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,UAAU,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,EAAE,CAAC,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,YAAY,EAAE,uBAAuB,EAAE,uBAAuB,EAAE,WAAW,EAAE,gBAAgB,EAAE,IAAI,EAAE,UAAU,EAAE,UAAU,CAAC,EAAE,OAAO,EAAE,CAAC,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,SAAS,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,eAAe,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,UAAU,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,EAAE,CAAC,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,SAAS,CAAC,EAAE,OAAO,EAAE,CAAC,aAAa,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,CAAC,aAAa,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC,EAAE,CAAC;AAC72Y;AACA,EAAE,CAAC,wBAAwB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,YAAY,EAAE,UAAU,EAAE,CAAC;AACtH,YAAY,IAAI,EAAE,SAAS;AAC3B,YAAY,IAAI,EAAE,CAAC,EAAE,QAAQ,EAAE,mBAAmB,EAAE,OAAO,EAAE,CAAC,YAAY,EAAE,WAAW,EAAE,YAAY,EAAE,UAAU,EAAE,OAAO,EAAE,eAAe,EAAE,WAAW,EAAE,UAAU,EAAE,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE,MAAM,CAAC,EAAE,QAAQ,EAAE,+5NAA+5N,EAAE,MAAM,EAAE,CAAC,6RAA6R,CAAC,EAAE;AAC95O,SAAS,CAAC,EAAE,cAAc,EAAE,EAAE,EAAE,EAAE,CAAC;AACnC,gBAAgB,IAAI,EAAE,SAAS;AAC/B,gBAAgB,IAAI,EAAE,CAAC,IAAI;AAC3B,aAAa,CAAC,EAAE,IAAI,EAAE,CAAC;AACvB,gBAAgB,IAAI,EAAE;AACtB,aAAa,CAAC,EAAE,OAAO,EAAE,CAAC;AAC1B,gBAAgB,IAAI,EAAE;AACtB,aAAa,CAAC,EAAE,OAAO,EAAE,CAAC;AAC1B,gBAAgB,IAAI,EAAE;AACtB,aAAa,CAAC,EAAE,OAAO,EAAE,CAAC;AAC1B,gBAAgB,IAAI,EAAE;AACtB,aAAa,CAAC,EAAE,WAAW,EAAE,CAAC;AAC9B,gBAAgB,IAAI,EAAE;AACtB,aAAa,CAAC,EAAE,KAAK,EAAE,CAAC;AACxB,gBAAgB,IAAI,EAAE;AACtB,aAAa,CAAC,EAAE,IAAI,EAAE,CAAC;AACvB,gBAAgB,IAAI,EAAE;AACtB,aAAa,CAAC,EAAE,YAAY,EAAE,CAAC;AAC/B,gBAAgB,IAAI,EAAE;AACtB,aAAa,CAAC,EAAE,SAAS,EAAE,CAAC;AAC5B,gBAAgB,IAAI,EAAE;AACtB,aAAa,CAAC,EAAE,SAAS,EAAE,CAAC;AAC5B,gBAAgB,IAAI,EAAE;AACtB,aAAa,CAAC,EAAE,kBAAkB,EAAE,CAAC;AACrC,gBAAgB,IAAI,EAAE;AACtB,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;AACzB,gBAAgB,IAAI,EAAE;AACtB,aAAa,CAAC,EAAE,UAAU,EAAE,CAAC;AAC7B,gBAAgB,IAAI,EAAE;AACtB,aAAa,CAAC,EAAE,QAAQ,EAAE,CAAC;AAC3B,gBAAgB,IAAI,EAAE;AACtB,aAAa,CAAC,EAAE,YAAY,EAAE,CAAC;AAC/B,gBAAgB,IAAI,EAAE;AACtB,aAAa,CAAC,EAAE,aAAa,EAAE,CAAC;AAChC,gBAAgB,IAAI,EAAE;AACtB,aAAa,CAAC,EAAE,aAAa,EAAE,CAAC;AAChC,gBAAgB,IAAI,EAAE;AACtB,aAAa,CAAC,EAAE,SAAS,EAAE,CAAC;AAC5B,gBAAgB,IAAI,EAAE;AACtB,aAAa,CAAC,EAAE,SAAS,EAAE,CAAC;AAC5B,gBAAgB,IAAI,EAAE;AACtB,aAAa,CAAC,EAAE,eAAe,EAAE,CAAC;AAClC,gBAAgB,IAAI,EAAE;AACtB,aAAa,CAAC,EAAE,SAAS,EAAE,CAAC;AAC5B,gBAAgB,IAAI,EAAE;AACtB,aAAa,CAAC,EAAE,wBAAwB,EAAE,CAAC;AAC3C,gBAAgB,IAAI,EAAE;AACtB,aAAa,CAAC,EAAE,EAAE,CAAC;;ACzNnB;AACA;AACA;;;;"}
|
|
@@ -56,19 +56,24 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.8", ngImpor
|
|
|
56
56
|
}] });
|
|
57
57
|
|
|
58
58
|
class ClickableLabelTypeComponent extends FieldType {
|
|
59
|
+
hovering = false;
|
|
59
60
|
onCellLeave(col, row, event) {
|
|
60
|
-
event.stopPropagation();
|
|
61
|
-
event.preventDefault();
|
|
61
|
+
event.stopPropagation(); // يمنع اختيار الصف
|
|
62
62
|
col.onCellMouseLeave?.(row, event); // <--- استدعاء الدالة المخصصة للمغادرة
|
|
63
63
|
}
|
|
64
64
|
onCellHover(col, row, event) {
|
|
65
|
+
if (this.hovering)
|
|
66
|
+
return; // prevent re-entry
|
|
67
|
+
this.hovering = true;
|
|
65
68
|
event.stopPropagation();
|
|
66
|
-
|
|
67
|
-
col.onCellMouseEnter?.(row, event);
|
|
69
|
+
// call external callback if exists
|
|
70
|
+
col.onCellMouseEnter?.(row, event);
|
|
71
|
+
setTimeout(() => {
|
|
72
|
+
this.hovering = false;
|
|
73
|
+
}, 0); // release after current cycle
|
|
68
74
|
}
|
|
69
75
|
handleCellClick(col, model, event) {
|
|
70
76
|
event.stopPropagation();
|
|
71
|
-
event.preventDefault();
|
|
72
77
|
if (col?.clickAction && typeof col.clickAction === 'function') {
|
|
73
78
|
col.clickAction(model, event);
|
|
74
79
|
}
|
|
@@ -81,10 +86,10 @@ class ClickableLabelTypeComponent extends FieldType {
|
|
|
81
86
|
}
|
|
82
87
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.8", ngImport: i0, type: ClickableLabelTypeComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
|
|
83
88
|
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.1.8", type: ClickableLabelTypeComponent, isStandalone: true, selector: "formly-clickable-label-type", usesInheritance: true, ngImport: i0, template: `
|
|
84
|
-
|
|
89
|
+
<!-- (mouseenter)="props['hoverable'] && onCellHover(props, model, $event)" -->
|
|
85
90
|
<a class="cursor-pointer hover:underline hover:text-blue-600 font-bold"
|
|
86
91
|
(click)="handleCellClick(props,model, $event)"
|
|
87
|
-
|
|
92
|
+
(mouseenter)="props['hoverable'] && onCellHover(props, model, $event)"
|
|
88
93
|
(mouseleave)="props['hoverable'] && onCellLeave(props, model, $event)"
|
|
89
94
|
>
|
|
90
95
|
@if(props['formatter']){
|
|
@@ -105,10 +110,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.8", ngImpor
|
|
|
105
110
|
standalone: true,
|
|
106
111
|
imports: [CommonModule],
|
|
107
112
|
template: `
|
|
108
|
-
|
|
113
|
+
<!-- (mouseenter)="props['hoverable'] && onCellHover(props, model, $event)" -->
|
|
109
114
|
<a class="cursor-pointer hover:underline hover:text-blue-600 font-bold"
|
|
110
115
|
(click)="handleCellClick(props,model, $event)"
|
|
111
|
-
|
|
116
|
+
(mouseenter)="props['hoverable'] && onCellHover(props, model, $event)"
|
|
112
117
|
(mouseleave)="props['hoverable'] && onCellLeave(props, model, $event)"
|
|
113
118
|
>
|
|
114
119
|
@if(props['formatter']){
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"elite.framework-ng.ui.core-label-type.mjs","sources":["../tmp-esm2022/label-type/lib/label-type-module.js","../tmp-esm2022/label-type/lib/label-type.js","../tmp-esm2022/label-type/lib/clickable-label-type.js","../tmp-esm2022/label-type/elite.framework-ng.ui.core-label-type.js"],"sourcesContent":["import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport * as i0 from \"@angular/core\";\nexport class LabelTypeModule {\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: LabelTypeModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });\n static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"14.0.0\", version: \"20.1.8\", ngImport: i0, type: LabelTypeModule, imports: [CommonModule] });\n static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: LabelTypeModule, imports: [CommonModule] });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: LabelTypeModule, decorators: [{\n type: NgModule,\n args: [{\n imports: [CommonModule],\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGFiZWwtdHlwZS1tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL25nLnVpLmNvcmUvbGFiZWwtdHlwZS9zcmMvbGliL2xhYmVsLXR5cGUtbW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDOztBQUsvQyxNQUFNLE9BQU8sZUFBZTt1R0FBZixlQUFlO3dHQUFmLGVBQWUsWUFGaEIsWUFBWTt3R0FFWCxlQUFlLFlBRmhCLFlBQVk7OzJGQUVYLGVBQWU7a0JBSDNCLFFBQVE7bUJBQUM7b0JBQ1IsT0FBTyxFQUFFLENBQUMsWUFBWSxDQUFDO2lCQUN4QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuXG5ATmdNb2R1bGUoe1xuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlXSxcbn0pXG5leHBvcnQgY2xhc3MgTGFiZWxUeXBlTW9kdWxlIHt9XG4iXX0=","import { Component } from '@angular/core';\nimport { FieldType } from '@ngx-formly/core';\nimport * as i0 from \"@angular/core\";\nexport class LabelTypeComponent extends FieldType {\n get displayValue() {\n const key = this.key;\n const val = this.model?.[key];\n const row = this.model ?? {};\n // تحقق من أن formatter دالة قبل الاستدعاء\n const formatter = this.props['formatter'];\n if (formatter && typeof formatter === 'function') {\n try {\n return formatter(row, val);\n }\n catch (e) {\n console.warn('Formatter error:', e);\n return val ?? '--';\n }\n }\n return val ?? '--';\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: LabelTypeComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });\n static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"20.1.8\", type: LabelTypeComponent, isStandalone: true, selector: \"formly-label-type\", usesInheritance: true, ngImport: i0, template: `\n <div [class]=\"to['className'] || 'text-gray-700 font-bold'\">\n <span [innerHTML]=\"displayValue\" ></span>\n <!-- <span {}></span> -->\n </div>\n `, isInline: true });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: LabelTypeComponent, decorators: [{\n type: Component,\n args: [{\n selector: 'formly-label-type',\n standalone: true,\n template: `\n <div [class]=\"to['className'] || 'text-gray-700 font-bold'\">\n <span [innerHTML]=\"displayValue\" ></span>\n <!-- <span {}></span> -->\n </div>\n `,\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGFiZWwtdHlwZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvbmcudWkuY29yZS9sYWJlbC10eXBlL3NyYy9saWIvbGFiZWwtdHlwZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzFDLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQzs7QUFZN0MsTUFBTSxPQUFPLGtCQUFtQixTQUFRLFNBQVM7SUFDakQsSUFBSSxZQUFZO1FBQ2QsTUFBTSxHQUFHLEdBQUcsSUFBSSxDQUFDLEdBQWEsQ0FBQztRQUMvQixNQUFNLEdBQUcsR0FBRyxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUU7UUFDL0IsTUFBTSxHQUFHLEdBQUcsSUFBSSxDQUFDLEtBQUssSUFBSSxFQUFFLENBQUM7UUFFN0IsMENBQTBDO1FBQzFDLE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDMUMsSUFBSSxTQUFTLElBQUksT0FBTyxTQUFTLEtBQUssVUFBVSxFQUFFLENBQUM7WUFFakQsSUFBSSxDQUFDO2dCQUNILE9BQU8sU0FBUyxDQUFDLEdBQUcsRUFBRSxHQUFHLENBQUMsQ0FBQztZQUM3QixDQUFDO1lBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQztnQkFDWCxPQUFPLENBQUMsSUFBSSxDQUFDLGtCQUFrQixFQUFFLENBQUMsQ0FBQyxDQUFDO2dCQUNwQyxPQUFPLEdBQUcsSUFBSSxJQUFJLENBQUM7WUFDckIsQ0FBQztRQUNILENBQUM7UUFJRCxPQUFPLEdBQUcsSUFBSSxJQUFJLENBQUM7SUFDckIsQ0FBQzt1R0FyQlksa0JBQWtCOzJGQUFsQixrQkFBa0Isb0dBUG5COzs7OztHQUtUOzsyRkFFVSxrQkFBa0I7a0JBVjlCLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLG1CQUFtQjtvQkFDN0IsVUFBVSxFQUFFLElBQUk7b0JBQ2hCLFFBQVEsRUFBRTs7Ozs7R0FLVDtpQkFDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRmllbGRUeXBlIH0gZnJvbSAnQG5neC1mb3JtbHkvY29yZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2Zvcm1seS1sYWJlbC10eXBlJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgdGVtcGxhdGU6IGBcbiAgICA8ZGl2IFtjbGFzc109XCJ0b1snY2xhc3NOYW1lJ10gfHwgJ3RleHQtZ3JheS03MDAgZm9udC1ib2xkJ1wiPlxuICAgICAgPHNwYW4gW2lubmVySFRNTF09XCJkaXNwbGF5VmFsdWVcIiA+PC9zcGFuPlxuICAgICAgIDwhLS0gPHNwYW4ge30+PC9zcGFuPiAtLT5cbiAgICA8L2Rpdj5cbiAgYCxcbn0pXG5leHBvcnQgY2xhc3MgTGFiZWxUeXBlQ29tcG9uZW50IGV4dGVuZHMgRmllbGRUeXBlIHtcbmdldCBkaXNwbGF5VmFsdWUoKTogYW55IHtcbiAgY29uc3Qga2V5ID0gdGhpcy5rZXkgYXMgc3RyaW5nO1xuICBjb25zdCB2YWwgPSB0aGlzLm1vZGVsPy5ba2V5XSA7XG4gIGNvbnN0IHJvdyA9IHRoaXMubW9kZWwgPz8ge307XG5cbiAgLy8g2KrYrdmC2YIg2YXZhiDYo9mGIGZvcm1hdHRlciDYr9in2YTYqSDZgtio2YQg2KfZhNin2LPYqtiv2LnYp9ihXG4gIGNvbnN0IGZvcm1hdHRlciA9IHRoaXMucHJvcHNbJ2Zvcm1hdHRlciddO1xuICBpZiAoZm9ybWF0dGVyICYmIHR5cGVvZiBmb3JtYXR0ZXIgPT09ICdmdW5jdGlvbicpIHtcblxuICAgIHRyeSB7XG4gICAgICByZXR1cm4gZm9ybWF0dGVyKHJvdywgdmFsKTtcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICBjb25zb2xlLndhcm4oJ0Zvcm1hdHRlciBlcnJvcjonLCBlKTtcbiAgICAgIHJldHVybiB2YWwgPz8gJy0tJztcbiAgICB9XG4gIH1cblxuXG5cbiAgcmV0dXJuIHZhbCA/PyAnLS0nO1xufVxuXG5cblxufVxuIl19","import { CommonModule } from '@angular/common';\nimport { Component } from '@angular/core';\nimport { FieldType } from '@ngx-formly/core';\nimport * as i0 from \"@angular/core\";\nexport class ClickableLabelTypeComponent extends FieldType {\n onCellLeave(col, row, event) {\n event.stopPropagation();\n event.preventDefault();\n col.onCellMouseLeave?.(row, event); // <--- استدعاء الدالة المخصصة للمغادرة\n }\n onCellHover(col, row, event) {\n event.stopPropagation();\n event.preventDefault();\n col.onCellMouseEnter?.(row, event); // <--- استدعاء الدالة المخصصة للتحويم\n }\n handleCellClick(col, model, event) {\n event.stopPropagation();\n event.preventDefault();\n if (col?.clickAction && typeof col.clickAction === 'function') {\n col.clickAction(model, event);\n }\n // col?.clickAction?.(model, event);\n }\n getCellValue(col, model) {\n const field = this.key;\n const pipeFn = this.props['pipe'];\n return pipeFn ? pipeFn(model[field]) : model[field];\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: ClickableLabelTypeComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });\n static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.1.8\", type: ClickableLabelTypeComponent, isStandalone: true, selector: \"formly-clickable-label-type\", usesInheritance: true, ngImport: i0, template: `\r\n\r\n<a class=\"cursor-pointer hover:underline hover:text-blue-600 font-bold\"\r\n (click)=\"handleCellClick(props,model, $event)\"\r\n (mouseenter)=\"props['hoverable'] && onCellHover(props, model, $event)\"\r\n (mouseleave)=\"props['hoverable'] && onCellLeave(props, model, $event)\"\r\n >\r\n @if(props['formatter']){\r\n <span [innerHTML]=\"props['formatter'](model)\"></span>\r\n }\r\n @else{\r\n {{ getCellValue(props, model) }}\r\n }\r\n\r\n\r\n </a>\r\n `, isInline: true, dependencies: [{ kind: \"ngmodule\", type: CommonModule }] });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: ClickableLabelTypeComponent, decorators: [{\n type: Component,\n args: [{\n selector: 'formly-clickable-label-type',\n standalone: true,\n imports: [CommonModule],\n template: `\r\n\r\n<a class=\"cursor-pointer hover:underline hover:text-blue-600 font-bold\"\r\n (click)=\"handleCellClick(props,model, $event)\"\r\n (mouseenter)=\"props['hoverable'] && onCellHover(props, model, $event)\"\r\n (mouseleave)=\"props['hoverable'] && onCellLeave(props, model, $event)\"\r\n >\r\n @if(props['formatter']){\r\n <span [innerHTML]=\"props['formatter'](model)\"></span>\r\n }\r\n @else{\r\n {{ getCellValue(props, model) }}\r\n }\r\n\r\n\r\n </a>\r\n `,\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xpY2thYmxlLWxhYmVsLXR5cGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL25nLnVpLmNvcmUvbGFiZWwtdHlwZS9zcmMvbGliL2NsaWNrYWJsZS1sYWJlbC10eXBlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzFDLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQzs7QUF3QjdDLE1BQU0sT0FBTywyQkFBNEIsU0FBUSxTQUFTO0lBQ3RELFdBQVcsQ0FBQyxHQUFRLEVBQUUsR0FBUSxFQUFFLEtBQWlCO1FBQ2xELEtBQUssQ0FBQyxlQUFlLEVBQUUsQ0FBQztRQUN6QixLQUFLLENBQUMsY0FBYyxFQUFFLENBQUM7UUFDckIsR0FBRyxDQUFDLGdCQUFnQixFQUFFLENBQUMsR0FBRyxFQUFFLEtBQUssQ0FBQyxDQUFDLENBQUMsdUNBQXVDO0lBQzlFLENBQUM7SUFDQSxXQUFXLENBQUMsR0FBUSxFQUFFLEdBQVEsRUFBRSxLQUFpQjtRQUNuRCxLQUFLLENBQUMsZUFBZSxFQUFFLENBQUM7UUFDdEIsS0FBSyxDQUFDLGNBQWMsRUFBRSxDQUFDO1FBQ3JCLEdBQUcsQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDLEdBQUcsRUFBRSxLQUFLLENBQUMsQ0FBQyxDQUFDLHNDQUFzQztJQUM3RSxDQUFDO0lBRUQsZUFBZSxDQUFDLEdBQVEsRUFBRSxLQUFVLEVBQUUsS0FBaUI7UUFDcEQsS0FBSyxDQUFDLGVBQWUsRUFBRSxDQUFDO1FBQzFCLEtBQUssQ0FBQyxjQUFjLEVBQUUsQ0FBQztRQUNuQixJQUFJLEdBQUcsRUFBRSxXQUFXLElBQUksT0FBTyxHQUFHLENBQUMsV0FBVyxLQUFLLFVBQVUsRUFBRSxDQUFDO1lBQ2xFLEdBQUcsQ0FBQyxXQUFXLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBQ2hDLENBQUM7UUFDQyxvQ0FBb0M7SUFDdEMsQ0FBQztJQUVILFlBQVksQ0FBQyxHQUFRLEVBQUUsS0FBVTtRQUMvQixNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsR0FBYyxDQUFDO1FBQ2xDLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFrQyxDQUFDO1FBQ25FLE9BQU8sTUFBTSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUN0RCxDQUFDO3VHQXpCWSwyQkFBMkI7MkZBQTNCLDJCQUEyQiw4R0FsQjVCOzs7Ozs7Ozs7Ozs7Ozs7O0dBZ0JULDJEQWpCUyxZQUFZOzsyRkFtQlgsMkJBQTJCO2tCQXRCdkMsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsNkJBQTZCO29CQUN2QyxVQUFVLEVBQUUsSUFBSTtvQkFDaEIsT0FBTyxFQUFFLENBQUMsWUFBWSxDQUFDO29CQUN2QixRQUFRLEVBQUU7Ozs7Ozs7Ozs7Ozs7Ozs7R0FnQlQ7aUJBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJcclxuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHsgQ29tcG9uZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEZpZWxkVHlwZSB9IGZyb20gJ0BuZ3gtZm9ybWx5L2NvcmUnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdmb3JtbHktY2xpY2thYmxlLWxhYmVsLXR5cGUnLFxyXG4gIHN0YW5kYWxvbmU6IHRydWUsXHJcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZV0sXHJcbiAgdGVtcGxhdGU6IGBcclxuXHJcbjxhICBjbGFzcz1cImN1cnNvci1wb2ludGVyIGhvdmVyOnVuZGVybGluZSBob3Zlcjp0ZXh0LWJsdWUtNjAwIGZvbnQtYm9sZFwiXHJcbiAgICAgICAgICAgIChjbGljayk9XCJoYW5kbGVDZWxsQ2xpY2socHJvcHMsbW9kZWwsICRldmVudClcIlxyXG4gICAgICAgICAgICAobW91c2VlbnRlcik9XCJwcm9wc1snaG92ZXJhYmxlJ10gJiYgb25DZWxsSG92ZXIocHJvcHMsIG1vZGVsLCAkZXZlbnQpXCJcclxuICAgICAgICAgICAgKG1vdXNlbGVhdmUpPVwicHJvcHNbJ2hvdmVyYWJsZSddICYmIG9uQ2VsbExlYXZlKHByb3BzLCBtb2RlbCwgJGV2ZW50KVwiXHJcbiAgICAgICAgICA+XHJcbiAgICAgICAgICBAaWYocHJvcHNbJ2Zvcm1hdHRlciddKXtcclxuICAgICAgICAgICA8c3BhbiAgW2lubmVySFRNTF09XCJwcm9wc1snZm9ybWF0dGVyJ10obW9kZWwpXCI+PC9zcGFuPlxyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgQGVsc2V7XHJcbiAge3sgZ2V0Q2VsbFZhbHVlKHByb3BzLCBtb2RlbCkgfX1cclxuICAgICAgICAgIH1cclxuXHJcblxyXG4gICAgICAgIDwvYT5cclxuICBgLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgQ2xpY2thYmxlTGFiZWxUeXBlQ29tcG9uZW50IGV4dGVuZHMgRmllbGRUeXBlIHtcclxuICAgIG9uQ2VsbExlYXZlKGNvbDogYW55LCByb3c6IGFueSwgZXZlbnQ6IE1vdXNlRXZlbnQpIHsgLy8gPC0tLSDYqti52K/ZitmEINmH2YbYp1xyXG4gICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcclxuICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xyXG4gICAgY29sLm9uQ2VsbE1vdXNlTGVhdmU/Lihyb3csIGV2ZW50KTsgLy8gPC0tLSDYp9iz2KrYr9i52KfYoSDYp9mE2K/Yp9mE2Kkg2KfZhNmF2K7Ytdi12Kkg2YTZhNmF2LrYp9iv2LHYqVxyXG4gfVxyXG4gIG9uQ2VsbEhvdmVyKGNvbDogYW55LCByb3c6IGFueSwgZXZlbnQ6IE1vdXNlRXZlbnQpIHsgLy8gPC0tLSDYqti52K/ZitmEINmH2YbYp1xyXG5ldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcclxuICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xyXG4gICAgY29sLm9uQ2VsbE1vdXNlRW50ZXI/Lihyb3csIGV2ZW50KTsgLy8gPC0tLSDYp9iz2KrYr9i52KfYoSDYp9mE2K/Yp9mE2Kkg2KfZhNmF2K7Ytdi12Kkg2YTZhNiq2K3ZiNmK2YVcclxuIH1cclxuXHJcbiBoYW5kbGVDZWxsQ2xpY2soY29sOiBhbnksIG1vZGVsOiBhbnksIGV2ZW50OiBNb3VzZUV2ZW50KSB7XHJcbiAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcclxuICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xyXG4gICAgICBpZiAoY29sPy5jbGlja0FjdGlvbiAmJiB0eXBlb2YgY29sLmNsaWNrQWN0aW9uID09PSAnZnVuY3Rpb24nKSB7XHJcbiAgICBjb2wuY2xpY2tBY3Rpb24obW9kZWwsIGV2ZW50KTtcclxuICB9XHJcbiAgICAvLyBjb2w/LmNsaWNrQWN0aW9uPy4obW9kZWwsIGV2ZW50KTtcclxuICB9XHJcblxyXG5nZXRDZWxsVmFsdWUoY29sOiBhbnksIG1vZGVsOiBhbnkpIHtcclxuICBjb25zdCBmaWVsZCA9IHRoaXMua2V5ICBhcyBzdHJpbmc7XHJcbiAgY29uc3QgcGlwZUZuID0gdGhpcy5wcm9wc1sncGlwZSddIGFzICgodjogYW55KSA9PiBhbnkpIHwgdW5kZWZpbmVkO1xyXG4gIHJldHVybiBwaXBlRm4gPyBwaXBlRm4obW9kZWxbZmllbGRdKSA6IG1vZGVsW2ZpZWxkXTtcclxufVxyXG59XHJcbiJdfQ==","/**\n * Generated bundle index. Do not edit.\n */\nexport * from './index';\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWxpdGUuZnJhbWV3b3JrLW5nLnVpLmNvcmUtbGFiZWwtdHlwZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYnMvbmcudWkuY29yZS9sYWJlbC10eXBlL3NyYy9lbGl0ZS5mcmFtZXdvcmstbmcudWkuY29yZS1sYWJlbC10eXBlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsY0FBYyxTQUFTLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEdlbmVyYXRlZCBidW5kbGUgaW5kZXguIERvIG5vdCBlZGl0LlxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vaW5kZXgnO1xuIl19"],"names":[],"mappings":";;;;;AAGO,MAAM,eAAe,CAAC;AAC7B,IAAI,OAAO,IAAI,GAAG,EAAE,CAAC,kBAAkB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,eAAe,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,CAAC,eAAe,CAAC,QAAQ,EAAE,CAAC;AACxK,IAAI,OAAO,IAAI,GAAG,EAAE,CAAC,mBAAmB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,eAAe,EAAE,OAAO,EAAE,CAAC,YAAY,CAAC,EAAE,CAAC;AACnJ,IAAI,OAAO,IAAI,GAAG,EAAE,CAAC,mBAAmB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,eAAe,EAAE,OAAO,EAAE,CAAC,YAAY,CAAC,EAAE,CAAC;AACnJ;AACA,EAAE,CAAC,wBAAwB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,eAAe,EAAE,UAAU,EAAE,CAAC;AACzH,YAAY,IAAI,EAAE,QAAQ;AAC1B,YAAY,IAAI,EAAE,CAAC;AACnB,oBAAoB,OAAO,EAAE,CAAC,YAAY,CAAC;AAC3C,iBAAiB;AACjB,SAAS,CAAC,EAAE,CAAC;;ACVN,MAAM,kBAAkB,SAAS,SAAS,CAAC;AAClD,IAAI,IAAI,YAAY,GAAG;AACvB,QAAQ,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG;AAC5B,QAAQ,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,GAAG,GAAG,CAAC;AACrC,QAAQ,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,IAAI,EAAE;AACpC;AACA,QAAQ,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC;AACjD,QAAQ,IAAI,SAAS,IAAI,OAAO,SAAS,KAAK,UAAU,EAAE;AAC1D,YAAY,IAAI;AAChB,gBAAgB,OAAO,SAAS,CAAC,GAAG,EAAE,GAAG,CAAC;AAC1C;AACA,YAAY,OAAO,CAAC,EAAE;AACtB,gBAAgB,OAAO,CAAC,IAAI,CAAC,kBAAkB,EAAE,CAAC,CAAC;AACnD,gBAAgB,OAAO,GAAG,IAAI,IAAI;AAClC;AACA;AACA,QAAQ,OAAO,GAAG,IAAI,IAAI;AAC1B;AACA,IAAI,OAAO,IAAI,GAAG,EAAE,CAAC,kBAAkB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,kBAAkB,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,CAAC,eAAe,CAAC,SAAS,EAAE,CAAC;AAC9K,IAAI,OAAO,IAAI,GAAG,EAAE,CAAC,oBAAoB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,kBAAkB,EAAE,YAAY,EAAE,IAAI,EAAE,QAAQ,EAAE,mBAAmB,EAAE,eAAe,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE,QAAQ,EAAE;AACjN;AACA;AACA;AACA;AACA,EAAE,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;AACtB;AACA,EAAE,CAAC,wBAAwB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,kBAAkB,EAAE,UAAU,EAAE,CAAC;AAC5H,YAAY,IAAI,EAAE,SAAS;AAC3B,YAAY,IAAI,EAAE,CAAC;AACnB,oBAAoB,QAAQ,EAAE,mBAAmB;AACjD,oBAAoB,UAAU,EAAE,IAAI;AACpC,oBAAoB,QAAQ,EAAE;AAC9B;AACA;AACA;AACA;AACA,EAAE,CAAC;AACH,iBAAiB;AACjB,SAAS,CAAC,EAAE,CAAC;;ACrCN,MAAM,2BAA2B,SAAS,SAAS,CAAC;AAC3D,IAAI,WAAW,CAAC,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE;AACjC,QAAQ,KAAK,CAAC,eAAe,EAAE;AAC/B,QAAQ,KAAK,CAAC,cAAc,EAAE;AAC9B,QAAQ,GAAG,CAAC,gBAAgB,GAAG,GAAG,EAAE,KAAK,CAAC,CAAC;AAC3C;AACA,IAAI,WAAW,CAAC,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE;AACjC,QAAQ,KAAK,CAAC,eAAe,EAAE;AAC/B,QAAQ,KAAK,CAAC,cAAc,EAAE;AAC9B,QAAQ,GAAG,CAAC,gBAAgB,GAAG,GAAG,EAAE,KAAK,CAAC,CAAC;AAC3C;AACA,IAAI,eAAe,CAAC,GAAG,EAAE,KAAK,EAAE,KAAK,EAAE;AACvC,QAAQ,KAAK,CAAC,eAAe,EAAE;AAC/B,QAAQ,KAAK,CAAC,cAAc,EAAE;AAC9B,QAAQ,IAAI,GAAG,EAAE,WAAW,IAAI,OAAO,GAAG,CAAC,WAAW,KAAK,UAAU,EAAE;AACvE,YAAY,GAAG,CAAC,WAAW,CAAC,KAAK,EAAE,KAAK,CAAC;AACzC;AACA;AACA;AACA,IAAI,YAAY,CAAC,GAAG,EAAE,KAAK,EAAE;AAC7B,QAAQ,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG;AAC9B,QAAQ,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC;AACzC,QAAQ,OAAO,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC;AAC3D;AACA,IAAI,OAAO,IAAI,GAAG,EAAE,CAAC,kBAAkB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,2BAA2B,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,CAAC,eAAe,CAAC,SAAS,EAAE,CAAC;AACvL,IAAI,OAAO,IAAI,GAAG,EAAE,CAAC,oBAAoB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,2BAA2B,EAAE,YAAY,EAAE,IAAI,EAAE,QAAQ,EAAE,6BAA6B,EAAE,eAAe,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE,QAAQ,EAAE,CAAC;AACrO;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,YAAY,EAAE,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,YAAY,EAAE,CAAC,EAAE,CAAC;AAChF;AACA,EAAE,CAAC,wBAAwB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,2BAA2B,EAAE,UAAU,EAAE,CAAC;AACrI,YAAY,IAAI,EAAE,SAAS;AAC3B,YAAY,IAAI,EAAE,CAAC;AACnB,oBAAoB,QAAQ,EAAE,6BAA6B;AAC3D,oBAAoB,UAAU,EAAE,IAAI;AACpC,oBAAoB,OAAO,EAAE,CAAC,YAAY,CAAC;AAC3C,oBAAoB,QAAQ,EAAE,CAAC;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE,CAAC;AACH,iBAAiB;AACjB,SAAS,CAAC,EAAE,CAAC;;ACvEb;AACA;AACA;;;;"}
|
|
1
|
+
{"version":3,"file":"elite.framework-ng.ui.core-label-type.mjs","sources":["../tmp-esm2022/label-type/lib/label-type-module.js","../tmp-esm2022/label-type/lib/label-type.js","../tmp-esm2022/label-type/lib/clickable-label-type.js","../tmp-esm2022/label-type/elite.framework-ng.ui.core-label-type.js"],"sourcesContent":["import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport * as i0 from \"@angular/core\";\nexport class LabelTypeModule {\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: LabelTypeModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });\n static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"14.0.0\", version: \"20.1.8\", ngImport: i0, type: LabelTypeModule, imports: [CommonModule] });\n static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: LabelTypeModule, imports: [CommonModule] });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: LabelTypeModule, decorators: [{\n type: NgModule,\n args: [{\n imports: [CommonModule],\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGFiZWwtdHlwZS1tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL25nLnVpLmNvcmUvbGFiZWwtdHlwZS9zcmMvbGliL2xhYmVsLXR5cGUtbW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDOztBQUsvQyxNQUFNLE9BQU8sZUFBZTt1R0FBZixlQUFlO3dHQUFmLGVBQWUsWUFGaEIsWUFBWTt3R0FFWCxlQUFlLFlBRmhCLFlBQVk7OzJGQUVYLGVBQWU7a0JBSDNCLFFBQVE7bUJBQUM7b0JBQ1IsT0FBTyxFQUFFLENBQUMsWUFBWSxDQUFDO2lCQUN4QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuXG5ATmdNb2R1bGUoe1xuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlXSxcbn0pXG5leHBvcnQgY2xhc3MgTGFiZWxUeXBlTW9kdWxlIHt9XG4iXX0=","import { Component } from '@angular/core';\nimport { FieldType } from '@ngx-formly/core';\nimport * as i0 from \"@angular/core\";\nexport class LabelTypeComponent extends FieldType {\n get displayValue() {\n const key = this.key;\n const val = this.model?.[key];\n const row = this.model ?? {};\n // تحقق من أن formatter دالة قبل الاستدعاء\n const formatter = this.props['formatter'];\n if (formatter && typeof formatter === 'function') {\n try {\n return formatter(row, val);\n }\n catch (e) {\n console.warn('Formatter error:', e);\n return val ?? '--';\n }\n }\n return val ?? '--';\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: LabelTypeComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });\n static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"20.1.8\", type: LabelTypeComponent, isStandalone: true, selector: \"formly-label-type\", usesInheritance: true, ngImport: i0, template: `\n <div [class]=\"to['className'] || 'text-gray-700 font-bold'\">\n <span [innerHTML]=\"displayValue\" ></span>\n <!-- <span {}></span> -->\n </div>\n `, isInline: true });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: LabelTypeComponent, decorators: [{\n type: Component,\n args: [{\n selector: 'formly-label-type',\n standalone: true,\n template: `\n <div [class]=\"to['className'] || 'text-gray-700 font-bold'\">\n <span [innerHTML]=\"displayValue\" ></span>\n <!-- <span {}></span> -->\n </div>\n `,\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGFiZWwtdHlwZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvbmcudWkuY29yZS9sYWJlbC10eXBlL3NyYy9saWIvbGFiZWwtdHlwZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzFDLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQzs7QUFZN0MsTUFBTSxPQUFPLGtCQUFtQixTQUFRLFNBQVM7SUFDakQsSUFBSSxZQUFZO1FBQ2QsTUFBTSxHQUFHLEdBQUcsSUFBSSxDQUFDLEdBQWEsQ0FBQztRQUMvQixNQUFNLEdBQUcsR0FBRyxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUU7UUFDL0IsTUFBTSxHQUFHLEdBQUcsSUFBSSxDQUFDLEtBQUssSUFBSSxFQUFFLENBQUM7UUFFN0IsMENBQTBDO1FBQzFDLE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDMUMsSUFBSSxTQUFTLElBQUksT0FBTyxTQUFTLEtBQUssVUFBVSxFQUFFLENBQUM7WUFFakQsSUFBSSxDQUFDO2dCQUNILE9BQU8sU0FBUyxDQUFDLEdBQUcsRUFBRSxHQUFHLENBQUMsQ0FBQztZQUM3QixDQUFDO1lBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQztnQkFDWCxPQUFPLENBQUMsSUFBSSxDQUFDLGtCQUFrQixFQUFFLENBQUMsQ0FBQyxDQUFDO2dCQUNwQyxPQUFPLEdBQUcsSUFBSSxJQUFJLENBQUM7WUFDckIsQ0FBQztRQUNILENBQUM7UUFJRCxPQUFPLEdBQUcsSUFBSSxJQUFJLENBQUM7SUFDckIsQ0FBQzt1R0FyQlksa0JBQWtCOzJGQUFsQixrQkFBa0Isb0dBUG5COzs7OztHQUtUOzsyRkFFVSxrQkFBa0I7a0JBVjlCLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLG1CQUFtQjtvQkFDN0IsVUFBVSxFQUFFLElBQUk7b0JBQ2hCLFFBQVEsRUFBRTs7Ozs7R0FLVDtpQkFDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRmllbGRUeXBlIH0gZnJvbSAnQG5neC1mb3JtbHkvY29yZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2Zvcm1seS1sYWJlbC10eXBlJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgdGVtcGxhdGU6IGBcbiAgICA8ZGl2IFtjbGFzc109XCJ0b1snY2xhc3NOYW1lJ10gfHwgJ3RleHQtZ3JheS03MDAgZm9udC1ib2xkJ1wiPlxuICAgICAgPHNwYW4gW2lubmVySFRNTF09XCJkaXNwbGF5VmFsdWVcIiA+PC9zcGFuPlxuICAgICAgIDwhLS0gPHNwYW4ge30+PC9zcGFuPiAtLT5cbiAgICA8L2Rpdj5cbiAgYCxcbn0pXG5leHBvcnQgY2xhc3MgTGFiZWxUeXBlQ29tcG9uZW50IGV4dGVuZHMgRmllbGRUeXBlIHtcbmdldCBkaXNwbGF5VmFsdWUoKTogYW55IHtcbiAgY29uc3Qga2V5ID0gdGhpcy5rZXkgYXMgc3RyaW5nO1xuICBjb25zdCB2YWwgPSB0aGlzLm1vZGVsPy5ba2V5XSA7XG4gIGNvbnN0IHJvdyA9IHRoaXMubW9kZWwgPz8ge307XG5cbiAgLy8g2KrYrdmC2YIg2YXZhiDYo9mGIGZvcm1hdHRlciDYr9in2YTYqSDZgtio2YQg2KfZhNin2LPYqtiv2LnYp9ihXG4gIGNvbnN0IGZvcm1hdHRlciA9IHRoaXMucHJvcHNbJ2Zvcm1hdHRlciddO1xuICBpZiAoZm9ybWF0dGVyICYmIHR5cGVvZiBmb3JtYXR0ZXIgPT09ICdmdW5jdGlvbicpIHtcblxuICAgIHRyeSB7XG4gICAgICByZXR1cm4gZm9ybWF0dGVyKHJvdywgdmFsKTtcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICBjb25zb2xlLndhcm4oJ0Zvcm1hdHRlciBlcnJvcjonLCBlKTtcbiAgICAgIHJldHVybiB2YWwgPz8gJy0tJztcbiAgICB9XG4gIH1cblxuXG5cbiAgcmV0dXJuIHZhbCA/PyAnLS0nO1xufVxuXG5cblxufVxuIl19","import { CommonModule } from '@angular/common';\nimport { Component } from '@angular/core';\nimport { FieldType } from '@ngx-formly/core';\nimport * as i0 from \"@angular/core\";\nexport class ClickableLabelTypeComponent extends FieldType {\n hovering = false;\n onCellLeave(col, row, event) {\n event.stopPropagation(); // يمنع اختيار الصف\n col.onCellMouseLeave?.(row, event); // <--- استدعاء الدالة المخصصة للمغادرة\n }\n onCellHover(col, row, event) {\n if (this.hovering)\n return; // prevent re-entry\n this.hovering = true;\n event.stopPropagation();\n // call external callback if exists\n col.onCellMouseEnter?.(row, event);\n setTimeout(() => {\n this.hovering = false;\n }, 0); // release after current cycle\n }\n handleCellClick(col, model, event) {\n event.stopPropagation();\n if (col?.clickAction && typeof col.clickAction === 'function') {\n col.clickAction(model, event);\n }\n // col?.clickAction?.(model, event);\n }\n getCellValue(col, model) {\n const field = this.key;\n const pipeFn = this.props['pipe'];\n return pipeFn ? pipeFn(model[field]) : model[field];\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: ClickableLabelTypeComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });\n static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.1.8\", type: ClickableLabelTypeComponent, isStandalone: true, selector: \"formly-clickable-label-type\", usesInheritance: true, ngImport: i0, template: `\r\n<!-- (mouseenter)=\"props['hoverable'] && onCellHover(props, model, $event)\" -->\r\n<a class=\"cursor-pointer hover:underline hover:text-blue-600 font-bold\"\r\n (click)=\"handleCellClick(props,model, $event)\"\r\n(mouseenter)=\"props['hoverable'] && onCellHover(props, model, $event)\"\r\n (mouseleave)=\"props['hoverable'] && onCellLeave(props, model, $event)\"\r\n >\r\n @if(props['formatter']){\r\n <span [innerHTML]=\"props['formatter'](model)\"></span>\r\n }\r\n @else{\r\n {{ getCellValue(props, model) }}\r\n }\r\n\r\n\r\n </a>\r\n `, isInline: true, dependencies: [{ kind: \"ngmodule\", type: CommonModule }] });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: ClickableLabelTypeComponent, decorators: [{\n type: Component,\n args: [{\n selector: 'formly-clickable-label-type',\n standalone: true,\n imports: [CommonModule],\n template: `\r\n<!-- (mouseenter)=\"props['hoverable'] && onCellHover(props, model, $event)\" -->\r\n<a class=\"cursor-pointer hover:underline hover:text-blue-600 font-bold\"\r\n (click)=\"handleCellClick(props,model, $event)\"\r\n(mouseenter)=\"props['hoverable'] && onCellHover(props, model, $event)\"\r\n (mouseleave)=\"props['hoverable'] && onCellLeave(props, model, $event)\"\r\n >\r\n @if(props['formatter']){\r\n <span [innerHTML]=\"props['formatter'](model)\"></span>\r\n }\r\n @else{\r\n {{ getCellValue(props, model) }}\r\n }\r\n\r\n\r\n </a>\r\n `,\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xpY2thYmxlLWxhYmVsLXR5cGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL25nLnVpLmNvcmUvbGFiZWwtdHlwZS9zcmMvbGliL2NsaWNrYWJsZS1sYWJlbC10eXBlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzFDLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQzs7QUF3QjdDLE1BQU0sT0FBTywyQkFBNEIsU0FBUSxTQUFTO0lBQ3hELFFBQVEsR0FBRyxLQUFLLENBQUM7SUFFZixXQUFXLENBQUMsR0FBUSxFQUFFLEdBQVEsRUFBRSxLQUFpQjtRQUNqRCxLQUFLLENBQUMsZUFBZSxFQUFFLENBQUMsQ0FBQyxtQkFBbUI7UUFDNUMsR0FBRyxDQUFDLGdCQUFnQixFQUFFLENBQUMsR0FBRyxFQUFFLEtBQUssQ0FBQyxDQUFDLENBQUMsdUNBQXVDO0lBRTlFLENBQUM7SUFDQSxXQUFXLENBQUMsR0FBUSxFQUFFLEdBQVEsRUFBRSxLQUFpQjtRQUNqRCxJQUFJLElBQUksQ0FBQyxRQUFRO1lBQUUsT0FBTyxDQUFDLG1CQUFtQjtRQUM5QyxJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQztRQUVyQixLQUFLLENBQUMsZUFBZSxFQUFFLENBQUM7UUFFeEIsbUNBQW1DO1FBQ25DLEdBQUcsQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDLEdBQUcsRUFBRSxLQUFLLENBQUMsQ0FBQztRQUVuQyxVQUFVLENBQUMsR0FBRyxFQUFFO1lBQ2QsSUFBSSxDQUFDLFFBQVEsR0FBRyxLQUFLLENBQUM7UUFDeEIsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsOEJBQThCO0lBQ3ZDLENBQUM7SUFFQSxlQUFlLENBQUMsR0FBUSxFQUFFLEtBQVUsRUFBRSxLQUFpQjtRQUNwRCxLQUFLLENBQUMsZUFBZSxFQUFFLENBQUM7UUFDdEIsSUFBSSxHQUFHLEVBQUUsV0FBVyxJQUFJLE9BQU8sR0FBRyxDQUFDLFdBQVcsS0FBSyxVQUFVLEVBQUUsQ0FBQztZQUNsRSxHQUFHLENBQUMsV0FBVyxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQztRQUNoQyxDQUFDO1FBQ0Msb0NBQW9DO0lBQ3RDLENBQUM7SUFFSCxZQUFZLENBQUMsR0FBUSxFQUFFLEtBQVU7UUFDL0IsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLEdBQWMsQ0FBQztRQUNsQyxNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBa0MsQ0FBQztRQUNuRSxPQUFPLE1BQU0sQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDdEQsQ0FBQzt1R0FsQ1ksMkJBQTJCOzJGQUEzQiwyQkFBMkIsOEdBbEI1Qjs7Ozs7Ozs7Ozs7Ozs7OztHQWdCVCwyREFqQlMsWUFBWTs7MkZBbUJYLDJCQUEyQjtrQkF0QnZDLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLDZCQUE2QjtvQkFDdkMsVUFBVSxFQUFFLElBQUk7b0JBQ2hCLE9BQU8sRUFBRSxDQUFDLFlBQVksQ0FBQztvQkFDdkIsUUFBUSxFQUFFOzs7Ozs7Ozs7Ozs7Ozs7O0dBZ0JUO2lCQUNGIiwic291cmNlc0NvbnRlbnQiOlsiXHJcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7IENvbXBvbmVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBGaWVsZFR5cGUgfSBmcm9tICdAbmd4LWZvcm1seS9jb3JlJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnZm9ybWx5LWNsaWNrYWJsZS1sYWJlbC10eXBlJyxcclxuICBzdGFuZGFsb25lOiB0cnVlLFxyXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGVdLFxyXG4gIHRlbXBsYXRlOiBgXHJcbjwhLS0gKG1vdXNlZW50ZXIpPVwicHJvcHNbJ2hvdmVyYWJsZSddICYmIG9uQ2VsbEhvdmVyKHByb3BzLCBtb2RlbCwgJGV2ZW50KVwiIC0tPlxyXG48YSAgY2xhc3M9XCJjdXJzb3ItcG9pbnRlciBob3Zlcjp1bmRlcmxpbmUgaG92ZXI6dGV4dC1ibHVlLTYwMCBmb250LWJvbGRcIlxyXG4gICAgICAgICAgICAoY2xpY2spPVwiaGFuZGxlQ2VsbENsaWNrKHByb3BzLG1vZGVsLCAkZXZlbnQpXCJcclxuKG1vdXNlZW50ZXIpPVwicHJvcHNbJ2hvdmVyYWJsZSddICYmIG9uQ2VsbEhvdmVyKHByb3BzLCBtb2RlbCwgJGV2ZW50KVwiXHJcbiAgICAgICAgICAgIChtb3VzZWxlYXZlKT1cInByb3BzWydob3ZlcmFibGUnXSAmJiBvbkNlbGxMZWF2ZShwcm9wcywgbW9kZWwsICRldmVudClcIlxyXG4gICAgICAgICAgPlxyXG4gICAgICAgICAgQGlmKHByb3BzWydmb3JtYXR0ZXInXSl7XHJcbiAgICAgICAgICAgPHNwYW4gIFtpbm5lckhUTUxdPVwicHJvcHNbJ2Zvcm1hdHRlciddKG1vZGVsKVwiPjwvc3Bhbj5cclxuICAgICAgICAgIH1cclxuICAgICAgICAgIEBlbHNle1xyXG4gIHt7IGdldENlbGxWYWx1ZShwcm9wcywgbW9kZWwpIH19XHJcbiAgICAgICAgICB9XHJcblxyXG5cclxuICAgICAgICA8L2E+XHJcbiAgYCxcclxufSlcclxuZXhwb3J0IGNsYXNzIENsaWNrYWJsZUxhYmVsVHlwZUNvbXBvbmVudCBleHRlbmRzIEZpZWxkVHlwZSB7XHJcbiAgaG92ZXJpbmcgPSBmYWxzZTtcclxuXHJcbiAgICBvbkNlbGxMZWF2ZShjb2w6IGFueSwgcm93OiBhbnksIGV2ZW50OiBNb3VzZUV2ZW50KSB7IC8vIDwtLS0g2KrYudiv2YrZhCDZh9mG2KdcclxuICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpOyAvLyDZitmF2YbYuSDYp9iu2KrZitin2LEg2KfZhNi12YFcclxuICAgIGNvbC5vbkNlbGxNb3VzZUxlYXZlPy4ocm93LCBldmVudCk7IC8vIDwtLS0g2KfYs9iq2K/Yudin2KEg2KfZhNiv2KfZhNipINin2YTZhdiu2LXYtdipINmE2YTZhdi62KfYr9ix2KlcclxuXHJcbiB9XHJcbiAgb25DZWxsSG92ZXIoY29sOiBhbnksIHJvdzogYW55LCBldmVudDogTW91c2VFdmVudCkge1xyXG4gIGlmICh0aGlzLmhvdmVyaW5nKSByZXR1cm47IC8vIHByZXZlbnQgcmUtZW50cnlcclxuICB0aGlzLmhvdmVyaW5nID0gdHJ1ZTtcclxuXHJcbiAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XHJcblxyXG4gIC8vIGNhbGwgZXh0ZXJuYWwgY2FsbGJhY2sgaWYgZXhpc3RzXHJcbiAgY29sLm9uQ2VsbE1vdXNlRW50ZXI/Lihyb3csIGV2ZW50KTtcclxuXHJcbiAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICB0aGlzLmhvdmVyaW5nID0gZmFsc2U7XHJcbiAgfSwgMCk7IC8vIHJlbGVhc2UgYWZ0ZXIgY3VycmVudCBjeWNsZVxyXG59XHJcblxyXG4gaGFuZGxlQ2VsbENsaWNrKGNvbDogYW55LCBtb2RlbDogYW55LCBldmVudDogTW91c2VFdmVudCkge1xyXG4gICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XHJcbiAgICAgIGlmIChjb2w/LmNsaWNrQWN0aW9uICYmIHR5cGVvZiBjb2wuY2xpY2tBY3Rpb24gPT09ICdmdW5jdGlvbicpIHtcclxuICAgIGNvbC5jbGlja0FjdGlvbihtb2RlbCwgZXZlbnQpO1xyXG4gIH1cclxuICAgIC8vIGNvbD8uY2xpY2tBY3Rpb24/Lihtb2RlbCwgZXZlbnQpO1xyXG4gIH1cclxuXHJcbmdldENlbGxWYWx1ZShjb2w6IGFueSwgbW9kZWw6IGFueSkge1xyXG4gIGNvbnN0IGZpZWxkID0gdGhpcy5rZXkgIGFzIHN0cmluZztcclxuICBjb25zdCBwaXBlRm4gPSB0aGlzLnByb3BzWydwaXBlJ10gYXMgKCh2OiBhbnkpID0+IGFueSkgfCB1bmRlZmluZWQ7XHJcbiAgcmV0dXJuIHBpcGVGbiA/IHBpcGVGbihtb2RlbFtmaWVsZF0pIDogbW9kZWxbZmllbGRdO1xyXG59XHJcbn1cclxuIl19","/**\n * Generated bundle index. Do not edit.\n */\nexport * from './index';\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWxpdGUuZnJhbWV3b3JrLW5nLnVpLmNvcmUtbGFiZWwtdHlwZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYnMvbmcudWkuY29yZS9sYWJlbC10eXBlL3NyYy9lbGl0ZS5mcmFtZXdvcmstbmcudWkuY29yZS1sYWJlbC10eXBlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsY0FBYyxTQUFTLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEdlbmVyYXRlZCBidW5kbGUgaW5kZXguIERvIG5vdCBlZGl0LlxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vaW5kZXgnO1xuIl19"],"names":[],"mappings":"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"}
|
package/generic-table/index.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import * as i0 from '@angular/core';
|
|
2
|
-
import { EventEmitter } from '@angular/core';
|
|
2
|
+
import { OnInit, EventEmitter } from '@angular/core';
|
|
3
3
|
import * as i1 from '@angular/common';
|
|
4
4
|
import { SortEvent, MenuItem } from 'primeng/api';
|
|
5
5
|
import { Table, TableLazyLoadEvent, TableRowSelectEvent, TableHeaderCheckboxToggleEvent } from 'primeng/table';
|
|
@@ -13,7 +13,7 @@ declare class GenericTableModule {
|
|
|
13
13
|
static ɵinj: i0.ɵɵInjectorDeclaration<GenericTableModule>;
|
|
14
14
|
}
|
|
15
15
|
|
|
16
|
-
declare class GenericTable<T> {
|
|
16
|
+
declare class GenericTable<T> implements OnInit {
|
|
17
17
|
dt: Table;
|
|
18
18
|
data: T[];
|
|
19
19
|
columns: FormlyFieldConfig[];
|
|
@@ -55,7 +55,10 @@ declare class GenericTable<T> {
|
|
|
55
55
|
customSort(event: SortEvent): void;
|
|
56
56
|
resolveFieldData(data: any, field: string): any;
|
|
57
57
|
onAction(act: ActionDef<T>, row: T): void;
|
|
58
|
+
clonedCols: any[][];
|
|
59
|
+
ngOnInit(): void;
|
|
58
60
|
cloneField(field: any): any;
|
|
61
|
+
private cellForms;
|
|
59
62
|
getForm(rowIndex: number, colIndex: number): FormGroup;
|
|
60
63
|
onLazyLoad(event: TableLazyLoadEvent): void;
|
|
61
64
|
applyFilter(filters: any): void;
|
package/label-type/index.d.ts
CHANGED
|
@@ -15,6 +15,7 @@ declare class LabelTypeComponent extends FieldType {
|
|
|
15
15
|
}
|
|
16
16
|
|
|
17
17
|
declare class ClickableLabelTypeComponent extends FieldType {
|
|
18
|
+
hovering: boolean;
|
|
18
19
|
onCellLeave(col: any, row: any, event: MouseEvent): void;
|
|
19
20
|
onCellHover(col: any, row: any, event: MouseEvent): void;
|
|
20
21
|
handleCellClick(col: any, model: any, event: MouseEvent): void;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@elite.framework/ng.ui.core",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.17",
|
|
4
4
|
"peerDependencies": {
|
|
5
5
|
"@angular/common": "^20.1.0",
|
|
6
6
|
"@angular/core": "^20.1.0"
|
|
@@ -24,14 +24,14 @@
|
|
|
24
24
|
"types": "./base-crud/index.d.ts",
|
|
25
25
|
"default": "./fesm2022/elite.framework-ng.ui.core-base-crud.mjs"
|
|
26
26
|
},
|
|
27
|
-
"./checkbox": {
|
|
28
|
-
"types": "./checkbox/index.d.ts",
|
|
29
|
-
"default": "./fesm2022/elite.framework-ng.ui.core-checkbox.mjs"
|
|
30
|
-
},
|
|
31
27
|
"./breadcrumb": {
|
|
32
28
|
"types": "./breadcrumb/index.d.ts",
|
|
33
29
|
"default": "./fesm2022/elite.framework-ng.ui.core-breadcrumb.mjs"
|
|
34
30
|
},
|
|
31
|
+
"./checkbox": {
|
|
32
|
+
"types": "./checkbox/index.d.ts",
|
|
33
|
+
"default": "./fesm2022/elite.framework-ng.ui.core-checkbox.mjs"
|
|
34
|
+
},
|
|
35
35
|
"./color-picker": {
|
|
36
36
|
"types": "./color-picker/index.d.ts",
|
|
37
37
|
"default": "./fesm2022/elite.framework-ng.ui.core-color-picker.mjs"
|
|
@@ -52,14 +52,14 @@
|
|
|
52
52
|
"types": "./datepicker/index.d.ts",
|
|
53
53
|
"default": "./fesm2022/elite.framework-ng.ui.core-datepicker.mjs"
|
|
54
54
|
},
|
|
55
|
-
"./deactivation-reason": {
|
|
56
|
-
"types": "./deactivation-reason/index.d.ts",
|
|
57
|
-
"default": "./fesm2022/elite.framework-ng.ui.core-deactivation-reason.mjs"
|
|
58
|
-
},
|
|
59
55
|
"./excel-import": {
|
|
60
56
|
"types": "./excel-import/index.d.ts",
|
|
61
57
|
"default": "./fesm2022/elite.framework-ng.ui.core-excel-import.mjs"
|
|
62
58
|
},
|
|
59
|
+
"./deactivation-reason": {
|
|
60
|
+
"types": "./deactivation-reason/index.d.ts",
|
|
61
|
+
"default": "./fesm2022/elite.framework-ng.ui.core-deactivation-reason.mjs"
|
|
62
|
+
},
|
|
63
63
|
"./form-button": {
|
|
64
64
|
"types": "./form-button/index.d.ts",
|
|
65
65
|
"default": "./fesm2022/elite.framework-ng.ui.core-form-button.mjs"
|
|
@@ -80,14 +80,14 @@
|
|
|
80
80
|
"types": "./formly-avatar-label/index.d.ts",
|
|
81
81
|
"default": "./fesm2022/elite.framework-ng.ui.core-formly-avatar-label.mjs"
|
|
82
82
|
},
|
|
83
|
-
"./formly-button": {
|
|
84
|
-
"types": "./formly-button/index.d.ts",
|
|
85
|
-
"default": "./fesm2022/elite.framework-ng.ui.core-formly-button.mjs"
|
|
86
|
-
},
|
|
87
83
|
"./formly-button-selector": {
|
|
88
84
|
"types": "./formly-button-selector/index.d.ts",
|
|
89
85
|
"default": "./fesm2022/elite.framework-ng.ui.core-formly-button-selector.mjs"
|
|
90
86
|
},
|
|
87
|
+
"./formly-button": {
|
|
88
|
+
"types": "./formly-button/index.d.ts",
|
|
89
|
+
"default": "./fesm2022/elite.framework-ng.ui.core-formly-button.mjs"
|
|
90
|
+
},
|
|
91
91
|
"./formly-presets": {
|
|
92
92
|
"types": "./formly-presets/index.d.ts",
|
|
93
93
|
"default": "./fesm2022/elite.framework-ng.ui.core-formly-presets.mjs"
|
|
@@ -112,14 +112,14 @@
|
|
|
112
112
|
"types": "./generic-autocomplete/index.d.ts",
|
|
113
113
|
"default": "./fesm2022/elite.framework-ng.ui.core-generic-autocomplete.mjs"
|
|
114
114
|
},
|
|
115
|
-
"./generic-button": {
|
|
116
|
-
"types": "./generic-button/index.d.ts",
|
|
117
|
-
"default": "./fesm2022/elite.framework-ng.ui.core-generic-button.mjs"
|
|
118
|
-
},
|
|
119
115
|
"./generic-card": {
|
|
120
116
|
"types": "./generic-card/index.d.ts",
|
|
121
117
|
"default": "./fesm2022/elite.framework-ng.ui.core-generic-card.mjs"
|
|
122
118
|
},
|
|
119
|
+
"./generic-button": {
|
|
120
|
+
"types": "./generic-button/index.d.ts",
|
|
121
|
+
"default": "./fesm2022/elite.framework-ng.ui.core-generic-button.mjs"
|
|
122
|
+
},
|
|
123
123
|
"./generic-crud-table": {
|
|
124
124
|
"types": "./generic-crud-table/index.d.ts",
|
|
125
125
|
"default": "./fesm2022/elite.framework-ng.ui.core-generic-crud-table.mjs"
|
|
@@ -176,14 +176,14 @@
|
|
|
176
176
|
"types": "./odata-query-builder/index.d.ts",
|
|
177
177
|
"default": "./fesm2022/elite.framework-ng.ui.core-odata-query-builder.mjs"
|
|
178
178
|
},
|
|
179
|
-
"./repeat": {
|
|
180
|
-
"types": "./repeat/index.d.ts",
|
|
181
|
-
"default": "./fesm2022/elite.framework-ng.ui.core-repeat.mjs"
|
|
182
|
-
},
|
|
183
179
|
"./radio": {
|
|
184
180
|
"types": "./radio/index.d.ts",
|
|
185
181
|
"default": "./fesm2022/elite.framework-ng.ui.core-radio.mjs"
|
|
186
182
|
},
|
|
183
|
+
"./repeat": {
|
|
184
|
+
"types": "./repeat/index.d.ts",
|
|
185
|
+
"default": "./fesm2022/elite.framework-ng.ui.core-repeat.mjs"
|
|
186
|
+
},
|
|
187
187
|
"./select": {
|
|
188
188
|
"types": "./select/index.d.ts",
|
|
189
189
|
"default": "./fesm2022/elite.framework-ng.ui.core-select.mjs"
|
|
@@ -204,14 +204,14 @@
|
|
|
204
204
|
"types": "./tag-type/index.d.ts",
|
|
205
205
|
"default": "./fesm2022/elite.framework-ng.ui.core-tag-type.mjs"
|
|
206
206
|
},
|
|
207
|
-
"./text-editor": {
|
|
208
|
-
"types": "./text-editor/index.d.ts",
|
|
209
|
-
"default": "./fesm2022/elite.framework-ng.ui.core-text-editor.mjs"
|
|
210
|
-
},
|
|
211
207
|
"./textarea": {
|
|
212
208
|
"types": "./textarea/index.d.ts",
|
|
213
209
|
"default": "./fesm2022/elite.framework-ng.ui.core-textarea.mjs"
|
|
214
210
|
},
|
|
211
|
+
"./text-editor": {
|
|
212
|
+
"types": "./text-editor/index.d.ts",
|
|
213
|
+
"default": "./fesm2022/elite.framework-ng.ui.core-text-editor.mjs"
|
|
214
|
+
},
|
|
215
215
|
"./ui-button": {
|
|
216
216
|
"types": "./ui-button/index.d.ts",
|
|
217
217
|
"default": "./fesm2022/elite.framework-ng.ui.core-ui-button.mjs"
|