@elite.framework/ng.ui.core 2.0.34 → 2.0.35
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.
|
@@ -344,6 +344,7 @@ class GenericCrudTableComponent {
|
|
|
344
344
|
paginator = true;
|
|
345
345
|
service = inject(BaseService);
|
|
346
346
|
apiName = '';
|
|
347
|
+
moduleName = '';
|
|
347
348
|
idField = 'id';
|
|
348
349
|
showRowSelectionCheckbox = false;
|
|
349
350
|
showAddButton = true;
|
|
@@ -444,10 +445,10 @@ class GenericCrudTableComponent {
|
|
|
444
445
|
router = inject(Router);
|
|
445
446
|
currentId;
|
|
446
447
|
ngOnInit() {
|
|
447
|
-
if (this.
|
|
448
|
-
this.service.
|
|
448
|
+
if (this.moduleName) {
|
|
449
|
+
this.service.moduleName = this.moduleName;
|
|
449
450
|
}
|
|
450
|
-
if (this.apiName) {
|
|
451
|
+
if (this.apiName && this.apiName != '') {
|
|
451
452
|
this.service.apiName = this.apiName;
|
|
452
453
|
}
|
|
453
454
|
if (this.tabs.length == 0) {
|
|
@@ -597,7 +598,7 @@ class GenericCrudTableComponent {
|
|
|
597
598
|
});
|
|
598
599
|
}
|
|
599
600
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.8", ngImport: i0, type: GenericCrudTableComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
600
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.1.8", type: GenericCrudTableComponent, isStandalone: true, selector: "app-generic-crud-table", inputs: { data: "data", formFields: "formFields", columns: "columns", dialogMaxWidth: "dialogMaxWidth", isViewMode: "isViewMode", displayMode: "displayMode", useConfirmOnSave: "useConfirmOnSave", isEditMode: "isEditMode", drawerVisible: "drawerVisible", dialogVisible: "dialogVisible", model: "model", loading: "loading", errorMsg: "errorMsg", errorMessage: "errorMessage", actions: "actions", actionsMode: "actionsMode", beforeSaveTransform: "beforeSaveTransform", filters: "filters", filterModel: "filterModel", showSearch: "showSearch", first: "first", rows: "rows", totalRecords: "totalRecords", rowSelectable: "rowSelectable", scrollHeight: "scrollHeight", paginator: "paginator", service: "service", apiName: "apiName", idField: "idField", showRowSelectionCheckbox: "showRowSelectionCheckbox", showAddButton: "showAddButton", addPermissionName: "addPermissionName", addButtonConfigs: "addButtonConfigs", createEditActions: "createEditActions", supportSubPage: "supportSubPage", tabs: "tabs", bulkActionButtons: "bulkActionButtons", singleActionButtons: "singleActionButtons", breadcrumb: "breadcrumb", mode: "mode", forceState: "forceState", hideTable: "hideTable", autoShowForm: "autoShowForm", rowStyleFn: "rowStyleFn", rowClassFn: "rowClassFn", disableRowCheckboxFn: "disableRowCheckboxFn" }, outputs: { action: "action", bulkAction: "bulkAction", singleAction: "singleAction", afterSave: "afterSave", afterDelete: "afterDelete", beforeSave: "beforeSave", beforeDelete: "beforeDelete", formCancel: "formCancel", formInit: "formInit", dataLoaded: "dataLoaded", selectionChange: "selectionChange", error: "error", search: "search", pageChange: "pageChange", onSearch: "onSearch", visibleChange: "visibleChange", rowSelect: "rowSelect" }, viewQueries: [{ propertyName: "genericTable", first: true, predicate: ["genericTable"], descendants: true }, { propertyName: "dialog", first: true, predicate: ["dialog"], descendants: true }], ngImport: i0, template: "<div\r\n [class]=\"mode !== 'form-only' && mode !== 'detail' ? tableClass : ''\"\r\n>\r\n <app-generic-crud-header\r\n [mode]=\"mode\"\r\n [breadcrumb]=\"breadcrumb_\"\r\n [isSingleItemSelected]=\"isSingleItemSelected\"\r\n [selectedItems]=\"_selectedRows\"\r\n [singleActionButtons]=\"singleActionButtons\"\r\n [bulkActionButtons]=\"bulkActionButtons\"\r\n [addButtonConfigs]=\"addButtonConfigs\"\r\n [apiName]=\"service.apiName\"\r\n [filters]=\"filters\"\r\n [filterModel]=\"filterModel\"\r\n [showSearch]=\"showSearch\"\r\n (singleItemAction)=\"onSingleItemAction($event)\"\r\n (bulkAction)=\"onInternalBulkAction($event)\"\r\n (action)=\"action.emit($event)\"\r\n (search)=\"resetPage($event);applySearch($event);\"\r\n (resetSearch)=\"resetPage($event);applySearch('');\"\r\n (paginateChange)=\"onHeaderPaginateChange($event)\"\r\n [first]=\"first\"\r\n [rows]=\"rows\"\r\n [totalRecords]=\"totalRecords\"\r\n/>\r\n\r\n @if (!hideTable) {\r\n <lib-generic-table\r\n [data]=\"data\"\r\n [columns]=\"columns\"\r\n [paginator]=\"paginator\"\r\n [loading]=\"loading\"\r\n [actions]=\"actions\"\r\n [actionsMode]=\"actionsMode\"\r\n [first]=\"first\"\r\n [rows]=\"rows\"\r\n [totalRecords]=\"totalRecords\"\r\n [sortField]=\"sortField\"\r\n [sortOrder]=\"sortOrder\"\r\n [addButtonConfigs]=\"addButtonConfigs\"\r\n [globalFilterFields]=\"globalFilterFields\"\r\n [scrollHeight]=\"scrollHeight\"\r\n [showRowSelectionCheckbox]=\"showRowSelectionCheckbox\"\r\n (action)=\"action.emit($event)\"\r\n (onAddNew)=\"action.emit({ name: 'add', row: null! })\"\r\n (pageChange)=\"onLazyLoad($event)\"\r\n [rowSelectable]=\"rowSelectable\"\r\n (rowSelect)=\"onRowClick($event)\"\r\n [(selection)]=\"_selectedRows\"\r\n #genericTable\r\n ></lib-generic-table>\r\n\r\n }\r\n\r\n <app-generic-dialog\r\n #dialog\r\n [service]=\"service\"\r\n [apiName]=\"service.apiName\"\r\n [formFields]=\"formFields\"\r\n [model]=\"model\"\r\n [apiName]=\"apiName\"\r\n [idField]=\"idField\"\r\n [dialogMaxWidth]=\"dialogMaxWidth\"\r\n [displayMode]=\"displayMode\"\r\n [mode]=\"mode\"\r\n [forceState]=\"forceState\"\r\n [drawerVisible]=\"drawerVisible\"\r\n [dialogVisible]=\"dialogVisible\"\r\n [isViewMode]=\"isViewMode\"\r\n [isEditMode]=\"isEditMode\"\r\n [useConfirmOnSave]=\"useConfirmOnSave\"\r\n [loading]=\"loading\"\r\n [errorMsg]=\"errorMsg\"\r\n [errorMessage]=\"errorMessage\"\r\n [beforeSaveTransform]=\"beforeSaveTransform\"\r\n (action)=\"action.emit($event)\"\r\n (afterSave)=\"afterSave.emit($event);onSubmit();\"\r\n (afterDelete)=\"afterDelete.emit($event)\"\r\n (beforeSave)=\"beforeSave.emit($event)\"\r\n (beforeDelete)=\"beforeDelete.emit($event)\"\r\n (formCancel)=\"formCancel.emit()\"\r\n (formInit)=\"formInit.emit($event)\"\r\n (dataLoaded)=\"dataLoaded.emit($event)\"\r\n (selectionChange)=\"selectionChange.emit($event)\"\r\n (error)=\"error.emit($event)\"\r\n (visibleChange)=\"visibleChange.emit($event)\"\r\n >\r\n </app-generic-dialog>\r\n\r\n <app-detail-view\r\n [displayMode]=\"displayMode\"\r\n [mode]=\"mode\"\r\n [title]=\"breadcrumb_?.[0]?.label || 'Detail'\"\r\n [service]=\"service\"\r\n [apiName]=\"service.apiName\"\r\n [apiName]=\"apiName\"\r\n [idField]=\"idField\"\r\n [actions]=\"actions\"\r\n [formFields]=\"formFields\"\r\n [model]=\"model\"\r\n [tabs]=\"tabs\"\r\n [loading]=\"loading\"\r\n [breadcrumb]=\"breadcrumb_\"\r\n [createEditActions]=\"createEditActions\"\r\n (action)=\"action.emit($event)\"\r\n >\r\n </app-detail-view>\r\n\r\n</div>\r\n", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: TableModule }, { kind: "ngmodule", type: ButtonModule }, { kind: "component", type: GenericTable, selector: "lib-generic-table", inputs: ["data", "columns", "loading", "actions", "actionsPosition", "actionsMode", "first", "rows", "totalRecords", "sortField", "sortOrder", "globalFilterFields", "addButtonConfigs", "scrollHeight", "rowSelectable", "rowStyleFn", "rowClassFn", "disableRowCheckboxFn", "selection", "paginator", "showRowSelectionCheckbox"], outputs: ["action", "pageChange", "onAddNew", "rowSelect", "selectionChange"] }, { kind: "ngmodule", type: ToolbarModule }, { kind: "ngmodule", type: DividerModule }, { kind: "ngmodule", type: IconFieldModule }, { kind: "ngmodule", type: DrawerModule }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "ngmodule", type: FormsModule }, { kind: "ngmodule", type: MessageModule }, { kind: "ngmodule", type: DialogModule }, { kind: "component", type: GenericDialogComponent, selector: "app-generic-dialog", inputs: ["form", "service", "formFields", "model", "apiName", "moduleName", "idField", "dialogMaxWidth", "displayMode", "mode", "forceState", "drawerVisible", "dialogVisible", "isViewMode", "isEditMode", "useConfirmOnSave", "loading", "errorMsg", "errorMessage", "beforeSaveTransform", "hideTable", "autoShowForm"], outputs: ["action", "afterSave", "afterDelete", "beforeSave", "beforeDelete", "formCancel", "formInit", "dataLoaded", "selectionChange", "error", "visibleChange"] }, { kind: "component", type: GenericCrudHeaderComponent, selector: "app-generic-crud-header", inputs: ["mode", "breadcrumb", "isSingleItemSelected", "selectedItems", "singleActionButtons", "bulkActionButtons", "addButtonConfigs", "filters", "filterModel", "showSearch", "first", "rows", "totalRecords", "apiName", "actions"], outputs: ["singleItemAction", "bulkAction", "search", "resetSearch", "action", "paginateChange"] }, { kind: "component", type: GenericViewComponent, selector: "app-detail-view", inputs: ["title", "actions", "createEditActions", "tabs", "viewMode", "breadcrumb", "service", "formFields", "apiName", "idField", "standaloneMode", "isViewMode", "isCreateMode", "isEditMode", "model", "displayMode", "mode", "loading"], outputs: ["action", "afterDelete"] }] });
|
|
601
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.1.8", type: GenericCrudTableComponent, isStandalone: true, selector: "app-generic-crud-table", inputs: { data: "data", formFields: "formFields", columns: "columns", dialogMaxWidth: "dialogMaxWidth", isViewMode: "isViewMode", displayMode: "displayMode", useConfirmOnSave: "useConfirmOnSave", isEditMode: "isEditMode", drawerVisible: "drawerVisible", dialogVisible: "dialogVisible", model: "model", loading: "loading", errorMsg: "errorMsg", errorMessage: "errorMessage", actions: "actions", actionsMode: "actionsMode", beforeSaveTransform: "beforeSaveTransform", filters: "filters", filterModel: "filterModel", showSearch: "showSearch", first: "first", rows: "rows", totalRecords: "totalRecords", rowSelectable: "rowSelectable", scrollHeight: "scrollHeight", paginator: "paginator", service: "service", apiName: "apiName", moduleName: "moduleName", idField: "idField", showRowSelectionCheckbox: "showRowSelectionCheckbox", showAddButton: "showAddButton", addPermissionName: "addPermissionName", addButtonConfigs: "addButtonConfigs", createEditActions: "createEditActions", supportSubPage: "supportSubPage", tabs: "tabs", bulkActionButtons: "bulkActionButtons", singleActionButtons: "singleActionButtons", breadcrumb: "breadcrumb", mode: "mode", forceState: "forceState", hideTable: "hideTable", autoShowForm: "autoShowForm", rowStyleFn: "rowStyleFn", rowClassFn: "rowClassFn", disableRowCheckboxFn: "disableRowCheckboxFn" }, outputs: { action: "action", bulkAction: "bulkAction", singleAction: "singleAction", afterSave: "afterSave", afterDelete: "afterDelete", beforeSave: "beforeSave", beforeDelete: "beforeDelete", formCancel: "formCancel", formInit: "formInit", dataLoaded: "dataLoaded", selectionChange: "selectionChange", error: "error", search: "search", pageChange: "pageChange", onSearch: "onSearch", visibleChange: "visibleChange", rowSelect: "rowSelect" }, viewQueries: [{ propertyName: "genericTable", first: true, predicate: ["genericTable"], descendants: true }, { propertyName: "dialog", first: true, predicate: ["dialog"], descendants: true }], ngImport: i0, template: "<div\r\n [class]=\"mode !== 'form-only' && mode !== 'detail' ? tableClass : ''\"\r\n>\r\n <app-generic-crud-header\r\n [mode]=\"mode\"\r\n [breadcrumb]=\"breadcrumb_\"\r\n [isSingleItemSelected]=\"isSingleItemSelected\"\r\n [selectedItems]=\"_selectedRows\"\r\n [singleActionButtons]=\"singleActionButtons\"\r\n [bulkActionButtons]=\"bulkActionButtons\"\r\n [addButtonConfigs]=\"addButtonConfigs\"\r\n [apiName]=\"service.apiName\"\r\n [filters]=\"filters\"\r\n [filterModel]=\"filterModel\"\r\n [showSearch]=\"showSearch\"\r\n (singleItemAction)=\"onSingleItemAction($event)\"\r\n (bulkAction)=\"onInternalBulkAction($event)\"\r\n (action)=\"action.emit($event)\"\r\n (search)=\"resetPage($event);applySearch($event);\"\r\n (resetSearch)=\"resetPage($event);applySearch('');\"\r\n (paginateChange)=\"onHeaderPaginateChange($event)\"\r\n [first]=\"first\"\r\n [rows]=\"rows\"\r\n [totalRecords]=\"totalRecords\"\r\n/>\r\n\r\n @if (!hideTable) {\r\n <lib-generic-table\r\n [data]=\"data\"\r\n [columns]=\"columns\"\r\n [paginator]=\"paginator\"\r\n [loading]=\"loading\"\r\n [actions]=\"actions\"\r\n [actionsMode]=\"actionsMode\"\r\n [first]=\"first\"\r\n [rows]=\"rows\"\r\n [totalRecords]=\"totalRecords\"\r\n [sortField]=\"sortField\"\r\n [sortOrder]=\"sortOrder\"\r\n [addButtonConfigs]=\"addButtonConfigs\"\r\n [globalFilterFields]=\"globalFilterFields\"\r\n [scrollHeight]=\"scrollHeight\"\r\n [showRowSelectionCheckbox]=\"showRowSelectionCheckbox\"\r\n (action)=\"action.emit($event)\"\r\n (onAddNew)=\"action.emit({ name: 'add', row: null! })\"\r\n (pageChange)=\"onLazyLoad($event)\"\r\n [rowSelectable]=\"rowSelectable\"\r\n (rowSelect)=\"onRowClick($event)\"\r\n [(selection)]=\"_selectedRows\"\r\n #genericTable\r\n ></lib-generic-table>\r\n\r\n }\r\n\r\n <app-generic-dialog\r\n #dialog\r\n [service]=\"service\"\r\n [apiName]=\"service.apiName\"\r\n [formFields]=\"formFields\"\r\n [model]=\"model\"\r\n [apiName]=\"apiName\"\r\n [idField]=\"idField\"\r\n [dialogMaxWidth]=\"dialogMaxWidth\"\r\n [displayMode]=\"displayMode\"\r\n [mode]=\"mode\"\r\n [forceState]=\"forceState\"\r\n [drawerVisible]=\"drawerVisible\"\r\n [dialogVisible]=\"dialogVisible\"\r\n [isViewMode]=\"isViewMode\"\r\n [isEditMode]=\"isEditMode\"\r\n [useConfirmOnSave]=\"useConfirmOnSave\"\r\n [loading]=\"loading\"\r\n [errorMsg]=\"errorMsg\"\r\n [errorMessage]=\"errorMessage\"\r\n [beforeSaveTransform]=\"beforeSaveTransform\"\r\n (action)=\"action.emit($event)\"\r\n (afterSave)=\"afterSave.emit($event);onSubmit();\"\r\n (afterDelete)=\"afterDelete.emit($event)\"\r\n (beforeSave)=\"beforeSave.emit($event)\"\r\n (beforeDelete)=\"beforeDelete.emit($event)\"\r\n (formCancel)=\"formCancel.emit()\"\r\n (formInit)=\"formInit.emit($event)\"\r\n (dataLoaded)=\"dataLoaded.emit($event)\"\r\n (selectionChange)=\"selectionChange.emit($event)\"\r\n (error)=\"error.emit($event)\"\r\n (visibleChange)=\"visibleChange.emit($event)\"\r\n >\r\n </app-generic-dialog>\r\n\r\n <app-detail-view\r\n [displayMode]=\"displayMode\"\r\n [mode]=\"mode\"\r\n [title]=\"breadcrumb_?.[0]?.label || 'Detail'\"\r\n [service]=\"service\"\r\n [apiName]=\"service.apiName\"\r\n [apiName]=\"apiName\"\r\n [idField]=\"idField\"\r\n [actions]=\"actions\"\r\n [formFields]=\"formFields\"\r\n [model]=\"model\"\r\n [tabs]=\"tabs\"\r\n [loading]=\"loading\"\r\n [breadcrumb]=\"breadcrumb_\"\r\n [createEditActions]=\"createEditActions\"\r\n (action)=\"action.emit($event)\"\r\n >\r\n </app-detail-view>\r\n\r\n</div>\r\n", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: TableModule }, { kind: "ngmodule", type: ButtonModule }, { kind: "component", type: GenericTable, selector: "lib-generic-table", inputs: ["data", "columns", "loading", "actions", "actionsPosition", "actionsMode", "first", "rows", "totalRecords", "sortField", "sortOrder", "globalFilterFields", "addButtonConfigs", "scrollHeight", "rowSelectable", "rowStyleFn", "rowClassFn", "disableRowCheckboxFn", "selection", "paginator", "showRowSelectionCheckbox"], outputs: ["action", "pageChange", "onAddNew", "rowSelect", "selectionChange"] }, { kind: "ngmodule", type: ToolbarModule }, { kind: "ngmodule", type: DividerModule }, { kind: "ngmodule", type: IconFieldModule }, { kind: "ngmodule", type: DrawerModule }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "ngmodule", type: FormsModule }, { kind: "ngmodule", type: MessageModule }, { kind: "ngmodule", type: DialogModule }, { kind: "component", type: GenericDialogComponent, selector: "app-generic-dialog", inputs: ["form", "service", "formFields", "model", "apiName", "moduleName", "idField", "dialogMaxWidth", "displayMode", "mode", "forceState", "drawerVisible", "dialogVisible", "isViewMode", "isEditMode", "useConfirmOnSave", "loading", "errorMsg", "errorMessage", "beforeSaveTransform", "hideTable", "autoShowForm"], outputs: ["action", "afterSave", "afterDelete", "beforeSave", "beforeDelete", "formCancel", "formInit", "dataLoaded", "selectionChange", "error", "visibleChange"] }, { kind: "component", type: GenericCrudHeaderComponent, selector: "app-generic-crud-header", inputs: ["mode", "breadcrumb", "isSingleItemSelected", "selectedItems", "singleActionButtons", "bulkActionButtons", "addButtonConfigs", "filters", "filterModel", "showSearch", "first", "rows", "totalRecords", "apiName", "actions"], outputs: ["singleItemAction", "bulkAction", "search", "resetSearch", "action", "paginateChange"] }, { kind: "component", type: GenericViewComponent, selector: "app-detail-view", inputs: ["title", "actions", "createEditActions", "tabs", "viewMode", "breadcrumb", "service", "formFields", "apiName", "idField", "standaloneMode", "isViewMode", "isCreateMode", "isEditMode", "model", "displayMode", "mode", "loading"], outputs: ["action", "afterDelete"] }] });
|
|
601
602
|
}
|
|
602
603
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.8", ngImport: i0, type: GenericCrudTableComponent, decorators: [{
|
|
603
604
|
type: Component,
|
|
@@ -717,6 +718,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.8", ngImpor
|
|
|
717
718
|
type: Input
|
|
718
719
|
}], apiName: [{
|
|
719
720
|
type: Input
|
|
721
|
+
}], moduleName: [{
|
|
722
|
+
type: Input
|
|
720
723
|
}], idField: [{
|
|
721
724
|
type: Input
|
|
722
725
|
}], showRowSelectionCheckbox: [{
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"elite.framework-ng.ui.core-generic-crud-table.mjs","sources":["../tmp-esm2022/generic-crud-table/lib/generic-crud-table-module.js","../tmp-esm2022/generic-crud-table/lib/generic-crud-header.js","../tmp-esm2022/generic-crud-table/lib/generic-crud-table.js","../tmp-esm2022/generic-crud-table/elite.framework-ng.ui.core-generic-crud-table.js"],"sourcesContent":["import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { GenericButtonModule } from '@elite.framework/ng.ui.core/generic-button';\nimport * as i0 from \"@angular/core\";\nexport class GenericCrudTableModule {\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: GenericCrudTableModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });\n static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"14.0.0\", version: \"20.1.8\", ngImport: i0, type: GenericCrudTableModule, imports: [CommonModule, GenericButtonModule] });\n static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: GenericCrudTableModule, imports: [CommonModule, GenericButtonModule] });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: GenericCrudTableModule, decorators: [{\n type: NgModule,\n args: [{\n imports: [CommonModule, GenericButtonModule],\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2VuZXJpYy1jcnVkLXRhYmxlLW1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvbmcudWkuY29yZS9nZW5lcmljLWNydWQtdGFibGUvc3JjL2xpYi9nZW5lcmljLWNydWQtdGFibGUtbW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLDRDQUE0QyxDQUFDOztBQUtqRixNQUFNLE9BQU8sc0JBQXNCO3VHQUF0QixzQkFBc0I7d0dBQXRCLHNCQUFzQixZQUZ2QixZQUFZLEVBQUMsbUJBQW1CO3dHQUUvQixzQkFBc0IsWUFGdkIsWUFBWSxFQUFDLG1CQUFtQjs7MkZBRS9CLHNCQUFzQjtrQkFIbEMsUUFBUTttQkFBQztvQkFDUixPQUFPLEVBQUUsQ0FBQyxZQUFZLEVBQUMsbUJBQW1CLENBQUM7aUJBQzVDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBHZW5lcmljQnV0dG9uTW9kdWxlIH0gZnJvbSAnQGVsaXRlLmZyYW1ld29yay9uZy51aS5jb3JlL2dlbmVyaWMtYnV0dG9uJztcblxuQE5nTW9kdWxlKHtcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSxHZW5lcmljQnV0dG9uTW9kdWxlXSxcbn0pXG5leHBvcnQgY2xhc3MgR2VuZXJpY0NydWRUYWJsZU1vZHVsZSB7fVxuIl19","import { Component, EventEmitter, inject, Input, Output } from '@angular/core';\nimport { GenericButton } from '@elite.framework/ng.ui.core/generic-button';\nimport { TranslatePipe } from '@elite.framework/ng.core/pipes';\nimport { CommonModule } from '@angular/common';\nimport { ButtonModule } from 'primeng/button';\nimport { DividerModule } from 'primeng/divider';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { TooltipModule } from 'primeng/tooltip';\nimport { Menu } from 'primeng/menu';\nimport { DialogService } from 'primeng/dynamicdialog';\nimport { BreadcrumbComponent } from '@elite.framework/ng.ui.core/breadcrumb';\nimport { GenericSearchAdvanced } from '@elite.framework/ng.ui.core/generic-search-advanced';\nimport { GenericReportComponent } from '@elite.framework/ng.ui.core/generic-report';\nimport { LocalizationService } from '@elite.framework/ng.core/services';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"primeng/button\";\nimport * as i2 from \"primeng/divider\";\nimport * as i3 from \"primeng/tooltip\";\nexport class GenericCrudHeaderComponent {\n translate = inject(LocalizationService);\n dialogService = inject(DialogService);\n // 🟢 Inputs\n mode = 'full';\n breadcrumb;\n isSingleItemSelected = false;\n selectedItems = [];\n singleActionButtons = [];\n bulkActionButtons = [];\n addButtonConfigs = [];\n filters;\n filterModel = {};\n showSearch = true;\n first = 0; // Add input for current 'first' index\n rows = 10; // Add input for current 'rows' per page\n totalRecords = 0; // Add input for total records\n apiName = '';\n actions = [\n {\n label: this.translate.instant('REPORT'),\n icon: 'pi pi-file-export',\n command: (e) => {\n this.openReportDialog();\n }\n }\n ];\n // 🟢 Outputs\n singleItemAction = new EventEmitter();\n bulkAction = new EventEmitter();\n search = new EventEmitter();\n resetSearch = new EventEmitter();\n action = new EventEmitter();\n paginateChange = new EventEmitter(); // NEW OUTPUT\n // 🟢 Helpers\n trackByIdx = (index) => index;\n // 🟢 Actions\n onSingleItemAction(btn) {\n this.singleItemAction.emit(btn);\n }\n onInternalBulkAction(btn) {\n this.bulkAction.emit(btn);\n }\n paginationChange(value) {\n this.rows = value.top;\n }\n applySearch(value) {\n this.search.emit(value);\n }\n reset() {\n this.resetSearch.emit();\n }\n // Go to previous page\n // 🟢 Actions (Keep or adapt your existing pagination logic)\n totalPages() {\n if (this.totalRecords === 0 || this.rows === 0)\n return 0;\n return Math.ceil(this.totalRecords / this.rows);\n }\n pageInput = null;\n showPageMenu = false;\n // Get current page number (1-based)\n get currentPage() {\n return Math.floor(this.first / this.rows) + 1;\n }\n // Go to specific page from menu\n goToPageMenu() {\n if (this.pageInput && this.pageInput >= 1 && this.pageInput <= this.totalPages()) {\n const newFirst = (this.pageInput - 1) * this.rows;\n this.paginateChange.emit({ first: newFirst, rows: this.rows });\n this.pageInput = null;\n this.showPageMenu = false; // Close menu after navigation\n }\n }\n // Go to specific page (original method)\n goToPage() {\n this.goToPageMenu(); // Reuse the same logic\n }\n // Go to first page\n goFirst() {\n this.paginateChange.emit({ first: 0, rows: this.rows }); // EMIT EVENT\n }\n // Go to last page\n goLast() {\n const maxFirst = Math.max(0, (this.totalPages() - 1) * this.rows);\n this.paginateChange.emit({ first: maxFirst, rows: this.rows }); // EMIT EVENT\n }\n // Go to previous page\n goPrev() {\n const newFirst = Math.max(this.first - this.rows, 0);\n this.paginateChange.emit({ first: newFirst, rows: this.rows }); // EMIT EVENT\n }\n // Go to next page\n goNext() {\n const maxFirst = Math.max(0, (this.totalPages() - 1) * this.rows);\n const newFirst = Math.min(this.first + this.rows, maxFirst);\n this.paginateChange.emit({ first: newFirst, rows: this.rows }); // EMIT EVENT\n }\n // Check first/last page\n isFirstPage() {\n return this.first === 0;\n }\n isLastPage() {\n return this.first + this.rows >= this.totalRecords;\n }\n // Detect RTL direction\n get isRTL() {\n return document.documentElement.dir === 'rtl' ||\n document.body.dir === 'rtl' ||\n // this.translateService?.currentLang === 'ar' || // if using translation\n false; // default to LTR\n }\n /**\n * Handles button click in a unified way.\n * - If btn.action is defined, execute it.\n * - Otherwise, emit event with actionName or default 'add'.\n */\n async handleButtonClick(btn) {\n try {\n if (btn.action) {\n // Execute the provided action\n await btn.action(null); // You can pass row or context here\n }\n else {\n // Fallback to emitting event\n this.action.emit({\n name: btn.actionName ?? 'add',\n row: null, // provide row if available\n });\n }\n }\n catch (err) {\n console.error('Button action error', err);\n }\n }\n openReportDialog() {\n const ref = this.dialogService.open(GenericReportComponent, {\n header: this.translate.instant('REPORT'),\n showHeader: false,\n width: '90%',\n height: 'auto',\n modal: true,\n focusOnShow: false,\n data: {\n apiName: this.apiName,\n filterFields: this.filters,\n filterModel: { /* status: 'Active' */},\n defaultFileName: this.translate.instant('REPORT') + ' ' + this.translate.instant(this.breadcrumb?.length ? this.breadcrumb[this.breadcrumb.length - 1].label ?? '' : '')\n }\n });\n ref.onClose.subscribe((exportConfig) => {\n if (exportConfig) {\n console.log('Export configuration:', exportConfig);\n // Handle the export - call your API service here\n this.handleExport(exportConfig);\n }\n });\n }\n handleExport(config) {\n // Your export logic here\n // if (config.exportType === 'EXCEL') {\n // this.exportToExcel(config);\n // } else if (config.exportType === 'PDF') {\n // this.exportToPdf(config);\n // }\n // etc.\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: GenericCrudHeaderComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });\n static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.1.8\", type: GenericCrudHeaderComponent, isStandalone: true, selector: \"app-generic-crud-header\", inputs: { mode: \"mode\", breadcrumb: \"breadcrumb\", isSingleItemSelected: \"isSingleItemSelected\", selectedItems: \"selectedItems\", singleActionButtons: \"singleActionButtons\", bulkActionButtons: \"bulkActionButtons\", addButtonConfigs: \"addButtonConfigs\", filters: \"filters\", filterModel: \"filterModel\", showSearch: \"showSearch\", first: \"first\", rows: \"rows\", totalRecords: \"totalRecords\", apiName: \"apiName\", actions: \"actions\" }, outputs: { singleItemAction: \"singleItemAction\", bulkAction: \"bulkAction\", search: \"search\", resetSearch: \"resetSearch\", action: \"action\", paginateChange: \"paginateChange\" }, providers: [DialogService], ngImport: i0, template: \"@if (mode !== 'form-only' && mode !== 'detail') {\\r\\n<div class=\\\"flex items-start gap-2 justify-between\\\">\\r\\n <div>\\r\\n <app-breadcrumb\\r\\n class=\\\"xs:block hidden\\\"\\r\\n [breadcrumb]=\\\"breadcrumb\\\"\\r\\n ></app-breadcrumb>\\r\\n </div>\\r\\n\\r\\n <div class=\\\"flex items-center gap-2 justify-end flex-wrap\\\">\\r\\n @if (mode === 'full') {\\r\\n <!-- \\u0623\\u0632\\u0631\\u0627\\u0631 \\u0627\\u0644\\u0639\\u0646\\u0627\\u0635\\u0631 \\u0627\\u0644\\u0645\\u0641\\u0631\\u062F\\u0629 -->\\r\\n @if (isSingleItemSelected) {\\r\\n @for (btn of singleActionButtons; track trackByIdx($index)) {\\r\\n @if (!btn.visible || (btn.visible && btn.visible === true)) {\\r\\n <lib-generic-button\\r\\n [icon]=\\\"btn.icon\\\"\\r\\n [label]=\\\"btn.label | translate\\\"\\r\\n [variant]=\\\"btn.variant\\\"\\r\\n [size]=\\\"btn.size\\\"\\r\\n [severity]=\\\"btn.severity\\\"\\r\\n [model]=\\\"btn.splitActions\\\"\\r\\n [permission]=\\\"btn.permission\\\"\\r\\n (clicked)=\\\"onSingleItemAction(btn)\\\"\\r\\n ></lib-generic-button>\\r\\n }\\r\\n }\\r\\n }\\r\\n\\r\\n <!-- \\u0623\\u0632\\u0631\\u0627\\u0631 \\u0645\\u062A\\u0639\\u062F\\u062F\\u0629 \\u0627\\u0644\\u0639\\u0646\\u0627\\u0635\\u0631 -->\\r\\n @if (selectedItems.length > 0) {\\r\\n @for (btn of bulkActionButtons; track trackByIdx($index)) {\\r\\n @if (!btn.visible || (btn.visible && btn.visible === true)) {\\r\\n <lib-generic-button\\r\\n [icon]=\\\"btn.icon\\\"\\r\\n [label]=\\\"btn.label | translate\\\"\\r\\n [variant]=\\\"btn.variant\\\"\\r\\n [size]=\\\"btn.size\\\"\\r\\n [severity]=\\\"btn.severity\\\"\\r\\n [model]=\\\"btn.splitActions\\\"\\r\\n [permission]=\\\"btn.permission\\\"\\r\\n (clicked)=\\\"onInternalBulkAction(btn)\\\"\\r\\n ></lib-generic-button>\\r\\n }\\r\\n }\\r\\n }\\r\\n\\r\\n <!-- \\u0623\\u0632\\u0631\\u0627\\u0631 \\u0627\\u0644\\u0625\\u0636\\u0627\\u0641\\u0629 -->\\r\\n @for (btn of addButtonConfigs; track trackByIdx($index)) {\\r\\n @if (!btn.visible || (btn.visible && btn.visible === true)) {\\r\\n <lib-generic-button\\r\\n [icon]=\\\"btn.icon\\\"\\r\\n [label]=\\\"btn.label | translate\\\"\\r\\n [variant]=\\\"btn.variant\\\"\\r\\n [size]=\\\"btn.size\\\"\\r\\n [severity]=\\\"btn.severity\\\"\\r\\n [model]=\\\"btn.splitActions\\\"\\r\\n [permission]=\\\"btn.permission\\\"\\r\\n (clicked)=\\\"handleButtonClick(btn)\\\"\\r\\n ></lib-generic-button>\\r\\n }\\r\\n }\\r\\n }\\r\\n </div>\\r\\n</div>\\r\\n}\\r\\n\\r\\n@if (mode !== 'form-only' && mode !== 'detail') {\\r\\n<div class=\\\"mt-2 mb-4 flex items-center justify-between\\\">\\r\\n <!-- \\u0627\\u0644\\u0628\\u062D\\u062B -->\\r\\n @if (showSearch && filters) {\\r\\n <lib-generic-search-advanced\\r\\n [model]=\\\"filterModel\\\"\\r\\n [fields]=\\\"filters\\\"\\r\\n (search)=\\\"applySearch($event)\\\"\\r\\n (paginationChange)=\\\"paginationChange($event)\\\"\\r\\n >\\r\\n</lib-generic-search-advanced>\\r\\n } @else {\\r\\n <div></div>\\r\\n }\\r\\n\\r\\n <!-- \\u0623\\u062F\\u0648\\u0627\\u062A \\u0625\\u0636\\u0627\\u0641\\u064A\\u0629 -->\\r\\n <div class=\\\"flex items-center gap-3 rtl:space-x-reverse\\\">\\r\\n <!-- Refresh Button -->\\r\\n <p-button\\r\\n icon=\\\"pi pi-refresh\\\"\\r\\n outlined\\r\\n severity=\\\"secondary\\\"\\r\\n class=\\\"hidden xs:block\\\"\\r\\n (onClick)=\\\"reset()\\\"\\r\\n />\\r\\n\\r\\n <p-divider layout=\\\"vertical\\\" class=\\\"m-0 p-0 hidden xs:block\\\" />\\r\\n\\r\\n\\r\\n <p-button (click)=\\\"menu.toggle($event)\\\" class=\\\"xs:block\\\" severity=\\\"secondary\\\" outlined icon=\\\"pi pi-ellipsis-v\\\"/>\\r\\n <p-menu #menu [model]=\\\"actions\\\" [popup]=\\\"true\\\" />\\r\\n <!-- Pagination Controls -->\\r\\n <div class=\\\"flex items-center gap-1 rtl:space-x-reverse\\\">\\r\\n <!-- First Page Button -->\\r\\n <p-button\\r\\n [icon]=\\\"isRTL ? 'pi pi-angle-double-right' : 'pi pi-angle-double-left'\\\"\\r\\n outlined\\r\\n severity=\\\"secondary\\\"\\r\\n class=\\\"hidden xs:block\\\"\\r\\n (click)=\\\"goFirst()\\\"\\r\\n [disabled]=\\\"isFirstPage()\\\"\\r\\n ></p-button>\\r\\n\\r\\n <!-- Previous Page Button -->\\r\\n <p-button\\r\\n [icon]=\\\"isRTL ? 'pi pi-chevron-right' : 'pi pi-chevron-left'\\\"\\r\\n outlined\\r\\n severity=\\\"secondary\\\"\\r\\n class=\\\"xs:block\\\"\\r\\n (click)=\\\"goPrev()\\\"\\r\\n [disabled]=\\\"isFirstPage()\\\"\\r\\n ></p-button>\\r\\n\\r\\n\\r\\n <!-- Current Page Display with Dropdown -->\\r\\n <div class=\\\"relative\\\">\\r\\n\\r\\n <p-button\\r\\n [label]=\\\"currentPage + ' / ' + totalPages()\\\"\\r\\n outlined\\r\\n severity=\\\"secondary\\\"\\r\\n class=\\\"hidden xs:block\\\"\\r\\n (click)=\\\"showPageMenu = !showPageMenu\\\"\\r\\n pTooltip=\\\"{{totalRecords}}\\\"\\r\\n tooltipPosition=\\\"top\\\"\\r\\n />\\r\\n\\r\\n\\r\\n </div>\\r\\n <!-- Next Page Button -->\\r\\n <p-button\\r\\n [icon]=\\\"isRTL ? 'pi pi-chevron-left' : 'pi pi-chevron-right'\\\"\\r\\n outlined\\r\\n severity=\\\"secondary\\\"\\r\\n class=\\\"xs:block\\\"\\r\\n (click)=\\\"goNext()\\\"\\r\\n [disabled]=\\\"isLastPage()\\\"\\r\\n ></p-button>\\r\\n\\r\\n <!-- Last Page Button -->\\r\\n <p-button\\r\\n [icon]=\\\"isRTL ? 'pi pi-angle-double-left' : 'pi pi-angle-double-right'\\\"\\r\\n outlined\\r\\n severity=\\\"secondary\\\"\\r\\n class=\\\"hidden xs:block\\\"\\r\\n (click)=\\\"goLast()\\\"\\r\\n [disabled]=\\\"isLastPage()\\\"\\r\\n ></p-button>\\r\\n </div>\\r\\n </div>\\r\\n</div>\\r\\n}\\r\\n\", dependencies: [{ kind: \"component\", type: GenericButton, selector: \"lib-generic-button\", inputs: [\"model\", \"type\", \"icon\", \"label\", \"variant\", \"severity\", \"size\", \"iconPosition\", \"disabled\", \"loading\", \"ariaLabel\", \"extraClasses\", \"permission\"], outputs: [\"clicked\", \"itemClick\"] }, { kind: \"component\", type: BreadcrumbComponent, selector: \"app-breadcrumb\", inputs: [\"breadcrumb\"] }, { kind: \"ngmodule\", type: CommonModule }, { kind: \"ngmodule\", type: ButtonModule }, { kind: \"component\", type: i1.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: DividerModule }, { kind: \"component\", type: i2.Divider, selector: \"p-divider\", inputs: [\"styleClass\", \"layout\", \"type\", \"align\"] }, { kind: \"ngmodule\", type: FormsModule }, { kind: \"ngmodule\", type: ReactiveFormsModule }, { kind: \"ngmodule\", type: TooltipModule }, { kind: \"directive\", type: i3.Tooltip, selector: \"[pTooltip]\", inputs: [\"tooltipPosition\", \"tooltipEvent\", \"positionStyle\", \"tooltipStyleClass\", \"tooltipZIndex\", \"escape\", \"showDelay\", \"hideDelay\", \"life\", \"positionTop\", \"positionLeft\", \"autoHide\", \"fitContent\", \"hideOnEscape\", \"pTooltip\", \"tooltipDisabled\", \"tooltipOptions\", \"appendTo\"] }, { kind: \"component\", type: Menu, selector: \"p-menu\", inputs: [\"model\", \"popup\", \"style\", \"styleClass\", \"autoZIndex\", \"baseZIndex\", \"showTransitionOptions\", \"hideTransitionOptions\", \"ariaLabel\", \"ariaLabelledBy\", \"id\", \"tabindex\", \"appendTo\"], outputs: [\"onShow\", \"onHide\", \"onBlur\", \"onFocus\"] }, { kind: \"component\", type: GenericSearchAdvanced, selector: \"lib-generic-search-advanced\", inputs: [\"model\", \"fields\", \"enableSelect\", \"enableGroup\", \"odataConfig\"], outputs: [\"search\", \"paginationChange\", \"odataSearch\"] }, { kind: \"pipe\", type: TranslatePipe, name: \"translate\" }] });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: GenericCrudHeaderComponent, decorators: [{\n type: Component,\n args: [{ selector: 'app-generic-crud-header', standalone: true, imports: [\n GenericButton,\n TranslatePipe,\n BreadcrumbComponent,\n CommonModule,\n ButtonModule,\n DividerModule,\n FormsModule,\n ReactiveFormsModule,\n TooltipModule,\n Menu,\n GenericSearchAdvanced\n ], providers: [DialogService], template: \"@if (mode !== 'form-only' && mode !== 'detail') {\\r\\n<div class=\\\"flex items-start gap-2 justify-between\\\">\\r\\n <div>\\r\\n <app-breadcrumb\\r\\n class=\\\"xs:block hidden\\\"\\r\\n [breadcrumb]=\\\"breadcrumb\\\"\\r\\n ></app-breadcrumb>\\r\\n </div>\\r\\n\\r\\n <div class=\\\"flex items-center gap-2 justify-end flex-wrap\\\">\\r\\n @if (mode === 'full') {\\r\\n <!-- \\u0623\\u0632\\u0631\\u0627\\u0631 \\u0627\\u0644\\u0639\\u0646\\u0627\\u0635\\u0631 \\u0627\\u0644\\u0645\\u0641\\u0631\\u062F\\u0629 -->\\r\\n @if (isSingleItemSelected) {\\r\\n @for (btn of singleActionButtons; track trackByIdx($index)) {\\r\\n @if (!btn.visible || (btn.visible && btn.visible === true)) {\\r\\n <lib-generic-button\\r\\n [icon]=\\\"btn.icon\\\"\\r\\n [label]=\\\"btn.label | translate\\\"\\r\\n [variant]=\\\"btn.variant\\\"\\r\\n [size]=\\\"btn.size\\\"\\r\\n [severity]=\\\"btn.severity\\\"\\r\\n [model]=\\\"btn.splitActions\\\"\\r\\n [permission]=\\\"btn.permission\\\"\\r\\n (clicked)=\\\"onSingleItemAction(btn)\\\"\\r\\n ></lib-generic-button>\\r\\n }\\r\\n }\\r\\n }\\r\\n\\r\\n <!-- \\u0623\\u0632\\u0631\\u0627\\u0631 \\u0645\\u062A\\u0639\\u062F\\u062F\\u0629 \\u0627\\u0644\\u0639\\u0646\\u0627\\u0635\\u0631 -->\\r\\n @if (selectedItems.length > 0) {\\r\\n @for (btn of bulkActionButtons; track trackByIdx($index)) {\\r\\n @if (!btn.visible || (btn.visible && btn.visible === true)) {\\r\\n <lib-generic-button\\r\\n [icon]=\\\"btn.icon\\\"\\r\\n [label]=\\\"btn.label | translate\\\"\\r\\n [variant]=\\\"btn.variant\\\"\\r\\n [size]=\\\"btn.size\\\"\\r\\n [severity]=\\\"btn.severity\\\"\\r\\n [model]=\\\"btn.splitActions\\\"\\r\\n [permission]=\\\"btn.permission\\\"\\r\\n (clicked)=\\\"onInternalBulkAction(btn)\\\"\\r\\n ></lib-generic-button>\\r\\n }\\r\\n }\\r\\n }\\r\\n\\r\\n <!-- \\u0623\\u0632\\u0631\\u0627\\u0631 \\u0627\\u0644\\u0625\\u0636\\u0627\\u0641\\u0629 -->\\r\\n @for (btn of addButtonConfigs; track trackByIdx($index)) {\\r\\n @if (!btn.visible || (btn.visible && btn.visible === true)) {\\r\\n <lib-generic-button\\r\\n [icon]=\\\"btn.icon\\\"\\r\\n [label]=\\\"btn.label | translate\\\"\\r\\n [variant]=\\\"btn.variant\\\"\\r\\n [size]=\\\"btn.size\\\"\\r\\n [severity]=\\\"btn.severity\\\"\\r\\n [model]=\\\"btn.splitActions\\\"\\r\\n [permission]=\\\"btn.permission\\\"\\r\\n (clicked)=\\\"handleButtonClick(btn)\\\"\\r\\n ></lib-generic-button>\\r\\n }\\r\\n }\\r\\n }\\r\\n </div>\\r\\n</div>\\r\\n}\\r\\n\\r\\n@if (mode !== 'form-only' && mode !== 'detail') {\\r\\n<div class=\\\"mt-2 mb-4 flex items-center justify-between\\\">\\r\\n <!-- \\u0627\\u0644\\u0628\\u062D\\u062B -->\\r\\n @if (showSearch && filters) {\\r\\n <lib-generic-search-advanced\\r\\n [model]=\\\"filterModel\\\"\\r\\n [fields]=\\\"filters\\\"\\r\\n (search)=\\\"applySearch($event)\\\"\\r\\n (paginationChange)=\\\"paginationChange($event)\\\"\\r\\n >\\r\\n</lib-generic-search-advanced>\\r\\n } @else {\\r\\n <div></div>\\r\\n }\\r\\n\\r\\n <!-- \\u0623\\u062F\\u0648\\u0627\\u062A \\u0625\\u0636\\u0627\\u0641\\u064A\\u0629 -->\\r\\n <div class=\\\"flex items-center gap-3 rtl:space-x-reverse\\\">\\r\\n <!-- Refresh Button -->\\r\\n <p-button\\r\\n icon=\\\"pi pi-refresh\\\"\\r\\n outlined\\r\\n severity=\\\"secondary\\\"\\r\\n class=\\\"hidden xs:block\\\"\\r\\n (onClick)=\\\"reset()\\\"\\r\\n />\\r\\n\\r\\n <p-divider layout=\\\"vertical\\\" class=\\\"m-0 p-0 hidden xs:block\\\" />\\r\\n\\r\\n\\r\\n <p-button (click)=\\\"menu.toggle($event)\\\" class=\\\"xs:block\\\" severity=\\\"secondary\\\" outlined icon=\\\"pi pi-ellipsis-v\\\"/>\\r\\n <p-menu #menu [model]=\\\"actions\\\" [popup]=\\\"true\\\" />\\r\\n <!-- Pagination Controls -->\\r\\n <div class=\\\"flex items-center gap-1 rtl:space-x-reverse\\\">\\r\\n <!-- First Page Button -->\\r\\n <p-button\\r\\n [icon]=\\\"isRTL ? 'pi pi-angle-double-right' : 'pi pi-angle-double-left'\\\"\\r\\n outlined\\r\\n severity=\\\"secondary\\\"\\r\\n class=\\\"hidden xs:block\\\"\\r\\n (click)=\\\"goFirst()\\\"\\r\\n [disabled]=\\\"isFirstPage()\\\"\\r\\n ></p-button>\\r\\n\\r\\n <!-- Previous Page Button -->\\r\\n <p-button\\r\\n [icon]=\\\"isRTL ? 'pi pi-chevron-right' : 'pi pi-chevron-left'\\\"\\r\\n outlined\\r\\n severity=\\\"secondary\\\"\\r\\n class=\\\"xs:block\\\"\\r\\n (click)=\\\"goPrev()\\\"\\r\\n [disabled]=\\\"isFirstPage()\\\"\\r\\n ></p-button>\\r\\n\\r\\n\\r\\n <!-- Current Page Display with Dropdown -->\\r\\n <div class=\\\"relative\\\">\\r\\n\\r\\n <p-button\\r\\n [label]=\\\"currentPage + ' / ' + totalPages()\\\"\\r\\n outlined\\r\\n severity=\\\"secondary\\\"\\r\\n class=\\\"hidden xs:block\\\"\\r\\n (click)=\\\"showPageMenu = !showPageMenu\\\"\\r\\n pTooltip=\\\"{{totalRecords}}\\\"\\r\\n tooltipPosition=\\\"top\\\"\\r\\n />\\r\\n\\r\\n\\r\\n </div>\\r\\n <!-- Next Page Button -->\\r\\n <p-button\\r\\n [icon]=\\\"isRTL ? 'pi pi-chevron-left' : 'pi pi-chevron-right'\\\"\\r\\n outlined\\r\\n severity=\\\"secondary\\\"\\r\\n class=\\\"xs:block\\\"\\r\\n (click)=\\\"goNext()\\\"\\r\\n [disabled]=\\\"isLastPage()\\\"\\r\\n ></p-button>\\r\\n\\r\\n <!-- Last Page Button -->\\r\\n <p-button\\r\\n [icon]=\\\"isRTL ? 'pi pi-angle-double-left' : 'pi pi-angle-double-right'\\\"\\r\\n outlined\\r\\n severity=\\\"secondary\\\"\\r\\n class=\\\"hidden xs:block\\\"\\r\\n (click)=\\\"goLast()\\\"\\r\\n [disabled]=\\\"isLastPage()\\\"\\r\\n ></p-button>\\r\\n </div>\\r\\n </div>\\r\\n</div>\\r\\n}\\r\\n\" }]\n }], propDecorators: { mode: [{\n type: Input\n }], breadcrumb: [{\n type: Input\n }], isSingleItemSelected: [{\n type: Input\n }], selectedItems: [{\n type: Input\n }], singleActionButtons: [{\n type: Input\n }], bulkActionButtons: [{\n type: Input\n }], addButtonConfigs: [{\n type: Input\n }], filters: [{\n type: Input\n }], filterModel: [{\n type: Input\n }], showSearch: [{\n type: Input\n }], first: [{\n type: Input\n }], rows: [{\n type: Input\n }], totalRecords: [{\n type: Input\n }], apiName: [{\n type: Input\n }], actions: [{\n type: Input\n }], singleItemAction: [{\n type: Output\n }], bulkAction: [{\n type: Output\n }], search: [{\n type: Output\n }], resetSearch: [{\n type: Output\n }], action: [{\n type: Output\n }], paginateChange: [{\n type: Output\n }] } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2VuZXJpYy1jcnVkLWhlYWRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvbmcudWkuY29yZS9nZW5lcmljLWNydWQtdGFibGUvc3JjL2xpYi9nZW5lcmljLWNydWQtaGVhZGVyLnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9uZy51aS5jb3JlL2dlbmVyaWMtY3J1ZC10YWJsZS9zcmMvbGliL2dlbmVyaWMtY3J1ZC1oZWFkZXIuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUcvRSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sNENBQTRDLENBQUM7QUFDM0UsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQy9ELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDOUMsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ2hELE9BQU8sRUFBRSxXQUFXLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNsRSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDaEQsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUNwQyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDdEQsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sd0NBQXdDLENBQUM7QUFDN0UsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0scURBQXFELENBQUM7QUFDNUYsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sNENBQTRDLENBQUM7QUFDcEYsT0FBTyxFQUFFLG1C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O3dCQUNiLFdBQVc7d0JBQ1gsbUJBQW1CO3dCQUNuQixhQUFhO3dCQUNiLElBQUk7d0JBQ0oscUJBQXFCO3FCQUN0QixhQUVXLENBQUMsYUFBYSxDQUFDOzhCQVFsQixJQUFJO3NCQUFaLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSztnQkFDRyxvQkFBb0I7c0JBQTVCLEtBQUs7Z0JBQ0csYUFBYTtzQkFBckIsS0FBSztnQkFDRyxtQkFBbUI7c0JBQTNCLEtBQUs7Z0JBQ0csaUJBQWlCO3NCQUF6QixLQUFLO2dCQUNHLGdCQUFnQjtzQkFBeEIsS0FBSztnQkFDRyxPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLO2dCQUNJLEtBQUs7c0JBQWIsS0FBSztnQkFDRSxJQUFJO3NCQUFaLEtBQUs7Z0JBQ0csWUFBWTtzQkFBcEIsS0FBSztnQkFDRyxPQUFPO3NCQUFmLEtBQUs7Z0JBQ0ksT0FBTztzQkFBZixLQUFLO2dCQVlHLGdCQUFnQjtzQkFBekIsTUFBTTtnQkFDRyxVQUFVO3NCQUFuQixNQUFNO2dCQUNHLE1BQU07c0JBQWYsTUFBTTtnQkFDRyxXQUFXO3NCQUFwQixNQUFNO2dCQUNHLE1BQU07c0JBQWYsTUFBTTtnQkFDRSxjQUFjO3NCQUF2QixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIGluamVjdCwgSW5wdXQsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBNZW51SXRlbSB9IGZyb20gJ3ByaW1lbmcvYXBpJztcclxuaW1wb3J0IHsgQnV0dG9uQ29uZmlnIH0gZnJvbSAnQGVsaXRlLmZyYW1ld29yay9uZy5jb3JlL21vZGVscyc7XHJcbmltcG9ydCB7IEdlbmVyaWNCdXR0b24gfSBmcm9tICdAZWxpdGUuZnJhbWV3b3JrL25nLnVpLmNvcmUvZ2VuZXJpYy1idXR0b24nO1xyXG5pbXBvcnQgeyBUcmFuc2xhdGVQaXBlIH0gZnJvbSAnQGVsaXRlLmZyYW1ld29yay9uZy5jb3JlL3BpcGVzJztcclxuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHsgQnV0dG9uTW9kdWxlIH0gZnJvbSAncHJpbWVuZy9idXR0b24nO1xyXG5pbXBvcnQgeyBEaXZpZGVyTW9kdWxlIH0gZnJvbSAncHJpbWVuZy9kaXZpZGVyJztcclxuaW1wb3J0IHsgRm9ybXNNb2R1bGUsIFJlYWN0aXZlRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IFRvb2x0aXBNb2R1bGUgfSBmcm9tICdwcmltZW5nL3Rvb2x0aXAnO1xyXG5pbXBvcnQgeyBNZW51IH0gZnJvbSAncHJpbWVuZy9tZW51JztcclxuaW1wb3J0IHsgRGlhbG9nU2VydmljZSB9IGZyb20gJ3ByaW1lbmcvZHluYW1pY2RpYWxvZyc7XHJcbmltcG9ydCB7IEJyZWFkY3J1bWJDb21wb25lbnQgfSBmcm9tICdAZWxpdGUuZnJhbWV3b3JrL25nLnVpLmNvcmUvYnJlYWRjcnVtYic7XHJcbmltcG9ydCB7IEdlbmVyaWNTZWFyY2hBZHZhbmNlZCB9IGZyb20gJ0BlbGl0ZS5mcmFtZXdvcmsvbmcudWkuY29yZS9nZW5lcmljLXNlYXJjaC1hZHZhbmNlZCc7XHJcbmltcG9ydCB7IEdlbmVyaWNSZXBvcnRDb21wb25lbnQgfSBmcm9tICdAZWxpdGUuZnJhbWV3b3JrL25nLnVpLmNvcmUvZ2VuZXJpYy1yZXBvcnQnO1xyXG5pbXBvcnQgeyBMb2NhbGl6YXRpb25TZXJ2aWNlIH0gZnJvbSAnQGVsaXRlLmZyYW1ld29yay9uZy5jb3JlL3NlcnZpY2VzJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnYXBwLWdlbmVyaWMtY3J1ZC1oZWFkZXInLFxyXG4gIHN0YW5kYWxvbmU6IHRydWUsXHJcbiAgaW1wb3J0czogW1xyXG4gICAgR2VuZXJpY0J1dHRvbixcclxuICAgIFRyYW5zbGF0ZVBpcGUsXHJcbiAgICBCcmVhZGNydW1iQ29tcG9uZW50LFxyXG4gICAgQ29tbW9uTW9kdWxlLFxyXG4gICAgQnV0dG9uTW9kdWxlLFxyXG4gICAgRGl2aWRlck1vZHVsZSxcclxuICAgIEZvcm1zTW9kdWxlLFxyXG4gICAgUmVhY3RpdmVGb3Jtc01vZHVsZSxcclxuICAgIFRvb2x0aXBNb2R1bGUsXHJcbiAgICBNZW51LFxyXG4gICAgR2VuZXJpY1NlYXJjaEFkdmFuY2VkXHJcbiAgXSxcclxuICB0ZW1wbGF0ZVVybDogJy4vZ2VuZXJpYy1jcnVkLWhlYWRlci5odG1sJyxcclxuICAgcHJvdmlkZXJzOiBbRGlhbG9nU2VydmljZV0sXHJcblxyXG59KVxyXG5leHBvcnQgY2xhc3MgR2VuZXJpY0NydWRIZWFkZXJDb21wb25lbnQge1xyXG5cclxuICB0cmFuc2xhdGUgID0gaW5qZWN0KExvY2FsaXphdGlvblNlcnZpY2UpO1xyXG4gIGRpYWxvZ1NlcnZpY2UgID0gaW5qZWN0KERpYWxvZ1NlcnZpY2UpO1xyXG4gIC8vIPCfn6IgSW5wdXRzXHJcbiAgQElucHV0KCkgbW9kZTogJ2Z1bGwnIHwgJ2Zvcm0tb25seScgfCAndGFibGUtb25seScgfCAnZGV0YWlsJyA9ICdmdWxsJztcclxuICBASW5wdXQoKSBicmVhZGNydW1iOiBNZW51SXRlbVtdIHwgdW5kZWZpbmVkO1xyXG4gIEBJbnB1dCgpIGlzU2luZ2xlSXRlbVNlbGVjdGVkID0gZmFsc2U7XHJcbiAgQElucHV0KCkgc2VsZWN0ZWRJdGVtczogYW55W10gPSBbXTtcclxuICBASW5wdXQoKSBzaW5nbGVBY3Rpb25CdXR0b25zOiBCdXR0b25Db25maWdbXSA9IFtdO1xyXG4gIEBJbnB1dCgpIGJ1bGtBY3Rpb25CdXR0b25zOiBCdXR0b25Db25maWdbXSA9IFtdO1xyXG4gIEBJbnB1dCgpIGFkZEJ1dHRvbkNvbmZpZ3M6IEJ1dHRvbkNvbmZpZ1tdID0gW107XHJcbiAgQElucHV0KCkgZmlsdGVyczogYW55O1xyXG4gIEBJbnB1dCgpIGZpbHRlck1vZGVsOiBhbnkgPSB7fTtcclxuICBASW5wdXQoKSBzaG93U2VhcmNoID0gdHJ1ZTtcclxuICAgQElucHV0KCkgZmlyc3QgPSAwOyAvLyBBZGQgaW5wdXQgZm9yIGN1cnJlbnQgJ2ZpcnN0JyBpbmRleFxyXG4gIEBJbnB1dCgpIHJvd3MgPSAxMDsgLy8gQWRkIGlucHV0IGZvciBjdXJyZW50ICdyb3dzJyBwZXIgcGFnZVxyXG4gIEBJbnB1dCgpIHRvdGFsUmVjb3JkcyA9IDA7IC8vIEFkZCBpbnB1dCBmb3IgdG90YWwgcmVjb3Jkc1xyXG4gIEBJbnB1dCgpIGFwaU5hbWU6IHN0cmluZyA9ICcnO1xyXG4gICBASW5wdXQoKSBhY3Rpb25zOk1lbnVJdGVtW10gPSBbXHJcbiAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgbGFiZWw6IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoJ1JFUE9SVCcpLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBpY29uOiAncGkgcGktZmlsZS1leHBvcnQnLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBjb21tYW5kOihlOmFueSk9PntcclxuICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLm9wZW5SZXBvcnREaWFsb2coKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICBdO1xyXG5cclxuXHJcbiAgLy8g8J+foiBPdXRwdXRzXHJcbiAgQE91dHB1dCgpIHNpbmdsZUl0ZW1BY3Rpb24gPSBuZXcgRXZlbnRFbWl0dGVyPEJ1dHRvbkNvbmZpZz4oKTtcclxuICBAT3V0cHV0KCkgYnVsa0FjdGlvbiA9IG5ldyBFdmVudEVtaXR0ZXI8QnV0dG9uQ29uZmlnPigpO1xyXG4gIEBPdXRwdXQoKSBzZWFyY2ggPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcclxuICBAT3V0cHV0KCkgcmVzZXRTZWFyY2ggPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XHJcbiAgQE91dHB1dCgpIGFjdGlvbiA9IG5ldyBFdmVudEVtaXR0ZXI8eyBuYW1lOiBzdHJpbmc7IHJvdzogYW55IH0+KCk7XHJcbiBAT3V0cHV0KCkgcGFnaW5hdGVDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPHsgZmlyc3Q6IG51bWJlcjsgcm93czogbnVtYmVyIH0+KCk7IC8vIE5FVyBPVVRQVVRcclxuXHJcblxyXG5cclxuXHJcbiAgLy8g8J+foiBIZWxwZXJzXHJcbiAgdHJhY2tCeUlkeCA9IChpbmRleDogbnVtYmVyKSA9PiBpbmRleDtcclxuXHJcbiAgLy8g8J+foiBBY3Rpb25zXHJcbiAgb25TaW5nbGVJdGVtQWN0aW9uKGJ0bjogQnV0dG9uQ29uZmlnKSB7XHJcbiAgICB0aGlzLnNpbmdsZUl0ZW1BY3Rpb24uZW1pdChidG4pO1xyXG4gIH1cclxuICBvbkludGVybmFsQnVsa0FjdGlvbihidG46IEJ1dHRvbkNvbmZpZykge1xyXG4gICAgdGhpcy5idWxrQWN0aW9uLmVtaXQoYnRuKTtcclxuICB9XHJcbnBhZ2luYXRpb25DaGFuZ2UodmFsdWU6IGFueSkge1xyXG4gICAgdGhpcy5yb3dzID0gdmFsdWUudG9wO1xyXG4gIH1cclxuICBhcHBseVNlYXJjaCh2YWx1ZTogYW55KSB7XHJcbiAgICB0aGlzLnNlYXJjaC5lbWl0KHZhbHVlKTtcclxuICB9XHJcbiAgcmVzZXQoKSB7XHJcbiAgICB0aGlzLnJlc2V0U2VhcmNoLmVtaXQoKTtcclxuICB9XHJcblxyXG5cclxuICAgIC8vIEdvIHRvIHByZXZpb3VzIHBhZ2VcclxuICAvLyDwn5+iIEFjdGlvbnMgKEtlZXAgb3IgYWRhcHQgeW91ciBleGlzdGluZyBwYWdpbmF0aW9uIGxvZ2ljKVxyXG4gIHRvdGFsUGFnZXMoKTogbnVtYmVyIHtcclxuICAgIGlmICh0aGlzLnRvdGFsUmVjb3JkcyA9PT0gMCB8fCB0aGlzLnJvd3MgPT09IDApIHJldHVybiAwO1xyXG4gICAgcmV0dXJuIE1hdGguY2VpbCh0aGlzLnRvdGFsUmVjb3JkcyAvIHRoaXMucm93cyk7XHJcbiAgfVxyXG4gcGFnZUlucHV0OiBudW1iZXIgfCBudWxsID0gbnVsbDtcclxuICBzaG93UGFnZU1lbnU6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgLy8gR2V0IGN1cnJlbnQgcGFnZSBudW1iZXIgKDEtYmFzZWQpXHJcbiAgZ2V0IGN1cnJlbnRQYWdlKCk6IG51bWJlciB7XHJcbiAgICByZXR1cm4gTWF0aC5mbG9vcih0aGlzLmZpcnN0IC8gdGhpcy5yb3dzKSArIDE7XHJcbiAgfVxyXG5cclxuICAvLyBHbyB0byBzcGVjaWZpYyBwYWdlIGZyb20gbWVudVxyXG4gIGdvVG9QYWdlTWVudSgpIHtcclxuICAgIGlmICh0aGlzLnBhZ2VJbnB1dCAmJiB0aGlzLnBhZ2VJbnB1dCA+PSAxICYmIHRoaXMucGFnZUlucHV0IDw9IHRoaXMudG90YWxQYWdlcygpKSB7XHJcbiAgICAgIGNvbnN0IG5ld0ZpcnN0ID0gKHRoaXMucGFnZUlucHV0IC0gMSkgKiB0aGlzLnJvd3M7XHJcbiAgICAgIHRoaXMucGFnaW5hdGVDaGFuZ2UuZW1pdCh7IGZpcnN0OiBuZXdGaXJzdCwgcm93czogdGhpcy5yb3dzIH0pO1xyXG4gICAgICB0aGlzLnBhZ2VJbnB1dCA9IG51bGw7XHJcbiAgICAgIHRoaXMuc2hvd1BhZ2VNZW51ID0gZmFsc2U7IC8vIENsb3NlIG1lbnUgYWZ0ZXIgbmF2aWdhdGlvblxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLy8gR28gdG8gc3BlY2lmaWMgcGFnZSAob3JpZ2luYWwgbWV0aG9kKVxyXG4gIGdvVG9QYWdlKCkge1xyXG4gICAgdGhpcy5nb1RvUGFnZU1lbnUoKTsgLy8gUmV1c2UgdGhlIHNhbWUgbG9naWNcclxuICB9XHJcblxyXG4gIC8vIEdvIHRvIGZpcnN0IHBhZ2VcclxuZ29GaXJzdCgpIHtcclxuICB0aGlzLnBhZ2luYXRlQ2hhbmdlLmVtaXQoeyBmaXJzdDogMCwgcm93czogdGhpcy5yb3dzIH0pOyAvLyBFTUlUIEVWRU5UXHJcbn1cclxuXHJcbi8vIEdvIHRvIGxhc3QgcGFnZVxyXG5nb0xhc3QoKSB7XHJcbiAgY29uc3QgbWF4Rmlyc3QgPSBNYXRoLm1heCgwLCAodGhpcy50b3RhbFBhZ2VzKCkgLSAxKSAqIHRoaXMucm93cyk7XHJcbiAgdGhpcy5wYWdpbmF0ZUNoYW5nZS5lbWl0KHsgZmlyc3Q6IG1heEZpcnN0LCByb3dzOiB0aGlzLnJvd3MgfSk7IC8vIEVNSVQgRVZFTlRcclxufVxyXG5cclxuICAvLyBHbyB0byBwcmV2aW91cyBwYWdlXHJcbiAgZ29QcmV2KCkge1xyXG4gICAgY29uc3QgbmV3Rmlyc3QgPSBNYXRoLm1heCh0aGlzLmZpcnN0IC0gdGhpcy5yb3dzLCAwKTtcclxuICAgIHRoaXMucGFnaW5hdGVDaGFuZ2UuZW1pdCh7IGZpcnN0OiBuZXdGaXJzdCwgcm93czogdGhpcy5yb3dzIH0pOyAvLyBFTUlUIEVWRU5UXHJcbiAgfVxyXG5cclxuICAvLyBHbyB0byBuZXh0IHBhZ2VcclxuICBnb05leHQoKSB7XHJcbiAgICBjb25zdCBtYXhGaXJzdCA9IE1hdGgubWF4KDAsICh0aGlzLnRvdGFsUGFnZXMoKSAtIDEpICogdGhpcy5yb3dzKTtcclxuICAgIGNvbnN0IG5ld0ZpcnN0ID0gTWF0aC5taW4odGhpcy5maXJzdCArIHRoaXMucm93cywgbWF4Rmlyc3QpO1xyXG4gICAgdGhpcy5wYWdpbmF0ZUNoYW5nZS5lbWl0KHsgZmlyc3Q6IG5ld0ZpcnN0LCByb3dzOiB0aGlzLnJvd3MgfSk7IC8vIEVNSVQgRVZFTlRcclxuICB9XHJcblxyXG4gIC8vIENoZWNrIGZpcnN0L2xhc3QgcGFnZVxyXG4gIGlzRmlyc3RQYWdlKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuZmlyc3QgPT09IDA7XHJcbiAgfVxyXG5cclxuICBpc0xhc3RQYWdlKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuZmlyc3QgKyB0aGlzLnJvd3MgPj0gdGhpcy50b3RhbFJlY29yZHM7XHJcbiAgfVxyXG5cclxuXHJcbiAgLy8gRGV0ZWN0IFJUTCBkaXJlY3Rpb25cclxuICBnZXQgaXNSVEwoKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmRpciA9PT0gJ3J0bCcgfHxcclxuICAgICAgICAgICBkb2N1bWVudC5ib2R5LmRpciA9PT0gJ3J0bCcgfHxcclxuICAgICAgICAgIC8vICB0aGlzLnRyYW5zbGF0ZVNlcnZpY2U/LmN1cnJlbnRMYW5nID09PSAnYXInIHx8IC8vIGlmIHVzaW5nIHRyYW5zbGF0aW9uXHJcbiAgICAgICAgICAgZmFsc2U7IC8vIGRlZmF1bHQgdG8gTFRSXHJcbiAgfVxyXG4gICAvKipcclxuICAgKiBIYW5kbGVzIGJ1dHRvbiBjbGljayBpbiBhIHVuaWZpZWQgd2F5LlxyXG4gICAqIC0gSWYgYnRuLmFjdGlvbiBpcyBkZWZpbmVkLCBleGVjdXRlIGl0LlxyXG4gICAqIC0gT3RoZXJ3aXNlLCBlbWl0IGV2ZW50IHdpdGggYWN0aW9uTmFtZSBvciBkZWZhdWx0ICdhZGQnLlxyXG4gICAqL1xyXG4gIGFzeW5jIGhhbmRsZUJ1dHRvbkNsaWNrKGJ0bjogQnV0dG9uQ29uZmlnKSB7XHJcbiAgICB0cnkge1xyXG4gICAgICBpZiAoYnRuLmFjdGlvbikge1xyXG4gICAgICAgIC8vIEV4ZWN1dGUgdGhlIHByb3ZpZGVkIGFjdGlvblxyXG4gICAgICAgIGF3YWl0IGJ0bi5hY3Rpb24obnVsbCk7IC8vIFlvdSBjYW4gcGFzcyByb3cgb3IgY29udGV4dCBoZXJlXHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgLy8gRmFsbGJhY2sgdG8gZW1pdHRpbmcgZXZlbnRcclxuICAgICAgICB0aGlzLmFjdGlvbi5lbWl0KHtcclxuICAgICAgICAgIG5hbWU6IGJ0bi5hY3Rpb25OYW1lID8/ICdhZGQnLFxyXG4gICAgICAgICAgcm93OiBudWxsISwgLy8gcHJvdmlkZSByb3cgaWYgYXZhaWxhYmxlXHJcbiAgICAgICAgfSk7XHJcbiAgICAgIH1cclxuICAgIH0gY2F0Y2ggKGVycikge1xyXG4gICAgICBjb25zb2xlLmVycm9yKCdCdXR0b24gYWN0aW9uIGVycm9yJywgZXJyKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIG9wZW5SZXBvcnREaWFsb2coKSB7XHJcbiAgICAgIGNvbnN0IHJlZiA9IHRoaXMuZGlhbG9nU2VydmljZS5vcGVuKEdlbmVyaWNSZXBvcnRDb21wb25lbnQsIHtcclxuICAgICAgICBoZWFkZXI6IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoJ1JFUE9SVCcpLFxyXG4gICAgICAgIHNob3dIZWFkZXI6ZmFsc2UsXHJcbiAgICAgICAgd2lkdGg6ICc5MCUnLFxyXG4gICAgICAgIGhlaWdodDogJ2F1dG8nLFxyXG4gICAgICAgIG1vZGFsOiB0cnVlLFxyXG4gICAgICAgIGZvY3VzT25TaG93OmZhbHNlLFxyXG4gICAgICAgIGRhdGE6IHtcclxuICAgICAgICAgIGFwaU5hbWU6dGhpcy5hcGlOYW1lLFxyXG4gICAgICAgICAgZmlsdGVyRmllbGRzOiB0aGlzLmZpbHRlcnMsXHJcbiAgICAgICAgICBmaWx0ZXJNb2RlbDogeyAvKiBzdGF0dXM6ICdBY3RpdmUnICAqL30sXHJcbiAgICAgICAgZGVmYXVsdEZpbGVOYW1lOnRoaXMudHJhbnNsYXRlLmluc3RhbnQoJ1JFUE9SVCcpICsgJyAnICsgdGhpcy50cmFuc2xhdGUuaW5zdGFudCh0aGlzLmJyZWFkY3J1bWI/Lmxlbmd0aCA/IHRoaXMuYnJlYWRjcnVtYlt0aGlzLmJyZWFkY3J1bWIubGVuZ3RoIC0gMV0ubGFiZWwgPz8nJzogJycpXHJcblxyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcblxyXG4gICAgICByZWYub25DbG9zZS5zdWJzY3JpYmUoKGV4cG9ydENvbmZpZzogYW55KSA9PiB7XHJcbiAgICAgICAgaWYgKGV4cG9ydENvbmZpZykge1xyXG4gICAgICAgICAgY29uc29sZS5sb2coJ0V4cG9ydCBjb25maWd1cmF0aW9uOicsIGV4cG9ydENvbmZpZyk7XHJcbiAgICAgICAgICAvLyBIYW5kbGUgdGhlIGV4cG9ydCAtIGNhbGwgeW91ciBBUEkgc2VydmljZSBoZXJlXHJcbiAgICAgICAgICB0aGlzLmhhbmRsZUV4cG9ydChleHBvcnRDb25maWcpO1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBoYW5kbGVFeHBvcnQoY29uZmlnOiBhbnkpIHtcclxuICAgICAgLy8gWW91ciBleHBvcnQgbG9naWMgaGVyZVxyXG4gICAgICAvLyBpZiAoY29uZmlnLmV4cG9ydFR5cGUgPT09ICdFWENFTCcpIHtcclxuICAgICAgLy8gICB0aGlzLmV4cG9ydFRvRXhjZWwoY29uZmlnKTtcclxuICAgICAgLy8gfSBlbHNlIGlmIChjb25maWcuZXhwb3J0VHlwZSA9PT0gJ1BERicpIHtcclxuICAgICAgLy8gICB0aGlzLmV4cG9ydFRvUGRmKGNvbmZpZyk7XHJcbiAgICAgIC8vIH1cclxuICAgICAgLy8gZXRjLlxyXG4gICAgfVxyXG5cclxufVxyXG4iLCJAaWYgKG1vZGUgIT09ICdmb3JtLW9ubHknICYmIG1vZGUgIT09ICdkZXRhaWwnKSB7XHJcbjxkaXYgY2xhc3M9XCJmbGV4IGl0ZW1zLXN0YXJ0IGdhcC0yIGp1c3RpZnktYmV0d2VlblwiPlxyXG4gIDxkaXY+XHJcbiAgICA8YXBwLWJyZWFkY3J1bWJcclxuICAgICAgY2xhc3M9XCJ4czpibG9jayBoaWRkZW5cIlxyXG4gICAgICBbYnJlYWRjcnVtYl09XCJicmVhZGNydW1iXCJcclxuICAgID48L2FwcC1icmVhZGNydW1iPlxyXG4gIDwvZGl2PlxyXG5cclxuICA8ZGl2IGNsYXNzPVwiZmxleCBpdGVtcy1jZW50ZXIgZ2FwLTIganVzdGlmeS1lbmQgZmxleC13cmFwXCI+XHJcbiAgICBAaWYgKG1vZGUgPT09ICdmdWxsJykge1xyXG4gICAgICA8IS0tINij2LLYsdin2LEg2KfZhNi52YbYp9i12LEg2KfZhNmF2YHYsdiv2KkgLS0+XHJcbiAgICAgIEBpZiAoaXNTaW5nbGVJdGVtU2VsZWN0ZWQpIHtcclxuICAgICAgICBAZm9yIChidG4gb2Ygc2luZ2xlQWN0aW9uQnV0dG9uczsgdHJhY2sgdHJhY2tCeUlkeCgkaW5kZXgpKSB7XHJcbiAgICAgICAgICBAaWYgKCFidG4udmlzaWJsZSB8fCAoYnRuLnZpc2libGUgJiYgYnRuLnZpc2libGUgPT09IHRydWUpKSB7XHJcbiAgICAgICAgICAgIDxsaWItZ2VuZXJpYy1idXR0b25cclxuICAgICAgICAgICAgICBbaWNvbl09XCJidG4uaWNvblwiXHJcbiAgICAgICAgICAgICAgW2xhYmVsXT1cImJ0bi5sYWJlbCB8IHRyYW5zbGF0ZVwiXHJcbiAgICAgICAgICAgICAgW3ZhcmlhbnRdPVwiYnRuLnZhcmlhbnRcIlxyXG4gICAgICAgICAgICAgIFtzaXplXT1cImJ0bi5zaXplXCJcclxuICAgICAgICAgICAgICBbc2V2ZXJpdHldPVwiYnRuLnNldmVyaXR5XCJcclxuICAgICAgICAgICAgICBbbW9kZWxdPVwiYnRuLnNwbGl0QWN0aW9uc1wiXHJcbiAgICAgICAgICAgICAgW3Blcm1pc3Npb25dPVwiYnRuLnBlcm1pc3Npb25cIlxyXG4gICAgICAgICAgICAgIChjbGlja2VkKT1cIm9uU2luZ2xlSXRlbUFjdGlvbihidG4pXCJcclxuICAgICAgICAgICAgPjwvbGliLWdlbmVyaWMtYnV0dG9uPlxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG5cclxuICAgICAgPCEtLSDYo9iy2LHYp9ixINmF2KrYudiv2K/YqSDYp9mE2LnZhtin2LXYsSAtLT5cclxuICAgICAgQGlmIChzZWxlY3RlZEl0ZW1zLmxlbmd0aCA+IDApIHtcclxuICAgICAgICBAZm9yIChidG4gb2YgYnVsa0FjdGlvbkJ1dHRvbnM7IHRyYWNrIHRyYWNrQnlJZHgoJGluZGV4KSkge1xyXG4gICAgICAgICAgQGlmICghYnRuLnZpc2libGUgfHwgKGJ0bi52aXNpYmxlICYmIGJ0bi52aXNpYmxlID09PSB0cnVlKSkge1xyXG4gICAgICAgICAgICA8bGliLWdlbmVyaWMtYnV0dG9uXHJcbiAgICAgICAgICAgICAgW2ljb25dPVwiYnRuLmljb25cIlxyXG4gICAgICAgICAgICAgIFtsYWJlbF09XCJidG4ubGFiZWwgfCB0cmFuc2xhdGVcIlxyXG4gICAgICAgICAgICAgIFt2YXJpYW50XT1cImJ0bi52YXJpYW50XCJcclxuICAgICAgICAgICAgICBbc2l6ZV09XCJidG4uc2l6ZVwiXHJcbiAgICAgICAgICAgICAgW3NldmVyaXR5XT1cImJ0bi5zZXZlcml0eVwiXHJcbiAgICAgICAgICAgICAgW21vZGVsXT1cImJ0bi5zcGxpdEFjdGlvbnNcIlxyXG4gICAgICAgICAgICAgIFtwZXJtaXNzaW9uXT1cImJ0bi5wZXJtaXNzaW9uXCJcclxuICAgICAgICAgICAgICAoY2xpY2tlZCk9XCJvbkludGVybmFsQnVsa0FjdGlvbihidG4pXCJcclxuICAgICAgICAgICAgPjwvbGliLWdlbmVyaWMtYnV0dG9uPlxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG5cclxuICAgICAgPCEtLSDYo9iy2LHYp9ixINin2YTYpdi22KfZgdipIC0tPlxyXG4gICAgICBAZm9yIChidG4gb2YgYWRkQnV0dG9uQ29uZmlnczsgdHJhY2sgdHJhY2tCeUlkeCgkaW5kZXgpKSB7XHJcbiAgICAgICAgQGlmICghYnRuLnZpc2libGUgfHwgKGJ0bi52aXNpYmxlICYmIGJ0bi52aXNpYmxlID09PSB0cnVlKSkge1xyXG4gICAgICAgICAgPGxpYi1nZW5lcmljLWJ1dHRvblxyXG4gICAgICAgICAgICBbaWNvbl09XCJidG4uaWNvblwiXHJcbiAgICAgICAgICAgIFtsYWJlbF09XCJidG4ubGFiZWwgfCB0cmFuc2xhdGVcIlxyXG4gICAgICAgICAgICBbdmFyaWFudF09XCJidG4udmFyaWFudFwiXHJcbiAgICAgICAgICAgIFtzaXplXT1cImJ0bi5zaXplXCJcclxuICAgICAgICAgICAgW3NldmVyaXR5XT1cImJ0bi5zZXZlcml0eVwiXHJcbiAgICAgICAgICAgIFttb2RlbF09XCJidG4uc3BsaXRBY3Rpb25zXCJcclxuICAgICAgICAgICAgW3Blcm1pc3Npb25dPVwiYnRuLnBlcm1pc3Npb25cIlxyXG4gICAgICAgICAgICAoY2xpY2tlZCk9XCJoYW5kbGVCdXR0b25DbGljayhidG4pXCJcclxuICAgICAgICAgID48L2xpYi1nZW5lcmljLWJ1dHRvbj5cclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICA8L2Rpdj5cclxuPC9kaXY+XHJcbn1cclxuXHJcbkBpZiAobW9kZSAhPT0gJ2Zvcm0tb25seScgJiYgbW9kZSAhPT0gJ2RldGFpbCcpIHtcclxuPGRpdiBjbGFzcz1cIm10LTIgbWItNCBmbGV4IGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWJldHdlZW5cIj5cclxuICA8IS0tINin2YTYqNit2KsgLS0+XHJcbiAgQGlmIChzaG93U2VhcmNoICYmIGZpbHRlcnMpIHtcclxuICAgIDxsaWItZ2VuZXJpYy1zZWFyY2gtYWR2YW5jZWRcclxuICAgIFttb2RlbF09XCJmaWx0ZXJNb2RlbFwiXHJcbiAgW2ZpZWxkc109XCJmaWx0ZXJzXCJcclxuICAoc2VhcmNoKT1cImFwcGx5U2VhcmNoKCRldmVudClcIlxyXG4gIChwYWdpbmF0aW9uQ2hhbmdlKT1cInBhZ2luYXRpb25DaGFuZ2UoJGV2ZW50KVwiXHJcbiAgPlxyXG48L2xpYi1nZW5lcmljLXNlYXJjaC1hZHZhbmNlZD5cclxuICB9IEBlbHNlIHtcclxuICAgIDxkaXY+PC9kaXY+XHJcbiAgfVxyXG5cclxuICA8IS0tINij2K/ZiNin2Kog2KXYttin2YHZitipIC0tPlxyXG4gIDxkaXYgY2xhc3M9XCJmbGV4IGl0ZW1zLWNlbnRlciBnYXAtMyBydGw6c3BhY2UteC1yZXZlcnNlXCI+XHJcbiAgICA8IS0tIFJlZnJlc2ggQnV0dG9uIC0tPlxyXG4gICAgPHAtYnV0dG9uXHJcbiAgICAgIGljb249XCJwaSBwaS1yZWZyZXNoXCJcclxuICAgICAgb3V0bGluZWRcclxuICAgICAgc2V2ZXJpdHk9XCJzZWNvbmRhcnlcIlxyXG4gICAgICBjbGFzcz1cImhpZGRlbiB4czpibG9ja1wiXHJcbiAgICAgIChvbkNsaWNrKT1cInJlc2V0KClcIlxyXG4gICAgLz5cclxuXHJcbiAgICA8cC1kaXZpZGVyIGxheW91dD1cInZlcnRpY2FsXCIgY2xhc3M9XCJtLTAgcC0wIGhpZGRlbiB4czpibG9ja1wiIC8+XHJcblxyXG5cclxuICAgIDxwLWJ1dHRvbiAoY2xpY2spPVwibWVudS50b2dnbGUoJGV2ZW50KVwiICBjbGFzcz1cInhzOmJsb2NrXCIgIHNldmVyaXR5PVwic2Vjb25kYXJ5XCIgb3V0bGluZWQgaWNvbj1cInBpIHBpLWVsbGlwc2lzLXZcIi8+XHJcbiAgICA8cC1tZW51ICNtZW51IFttb2RlbF09XCJhY3Rpb25zXCIgW3BvcHVwXT1cInRydWVcIiAvPlxyXG4gICAgPCEtLSBQYWdpbmF0aW9uIENvbnRyb2xzIC0tPlxyXG4gICAgPGRpdiBjbGFzcz1cImZsZXggaXRlbXMtY2VudGVyIGdhcC0xIHJ0bDpzcGFjZS14LXJldmVyc2VcIj5cclxuICAgICAgPCEtLSBGaXJzdCBQYWdlIEJ1dHRvbiAtLT5cclxuICAgICAgPHAtYnV0dG9uXHJcbiAgICAgICAgW2ljb25dPVwiaXNSVEwgPyAncGkgcGktYW5nbGUtZG91YmxlLXJpZ2h0JyA6ICdwaSBwaS1hbmdsZS1kb3VibGUtbGVmdCdcIlxyXG4gICAgICAgIG91dGxpbmVkXHJcbiAgICAgICAgc2V2ZXJpdHk9XCJzZWNvbmRhcnlcIlxyXG4gICAgICAgIGNsYXNzPVwiaGlkZGVuIHhzOmJsb2NrXCJcclxuICAgICAgICAoY2xpY2spPVwiZ29GaXJzdCgpXCJcclxuICAgICAgICBbZGlzYWJsZWRdPVwiaXNGaXJzdFBhZ2UoKVwiXHJcbiAgICAgID48L3AtYnV0dG9uPlxyXG5cclxuICAgICAgPCEtLSBQcmV2aW91cyBQYWdlIEJ1dHRvbiAtLT5cclxuICAgICAgPHAtYnV0dG9uXHJcbiAgICAgICAgW2ljb25dPVwiaXNSVEwgPyAncGkgcGktY2hldnJvbi1yaWdodCcgOiAncGkgcGktY2hldnJvbi1sZWZ0J1wiXHJcbiAgICAgICAgb3V0bGluZWRcclxuICAgICAgICBzZXZlcml0eT1cInNlY29uZGFyeVwiXHJcbiAgICAgICAgY2xhc3M9XCJ4czpibG9ja1wiXHJcbiAgICAgICAgKGNsaWNrKT1cImdvUHJldigpXCJcclxuICAgICAgICBbZGlzYWJsZWRdPVwiaXNGaXJzdFBhZ2UoKVwiXHJcbiAgICAgID48L3AtYnV0dG9uPlxyXG5cclxuXHJcbiAgICAgICA8IS0tIEN1cnJlbnQgUGFnZSBEaXNwbGF5IHdpdGggRHJvcGRvd24gLS0+XHJcbiAgPGRpdiBjbGFzcz1cInJlbGF0aXZlXCI+XHJcblxyXG4gICAgPHAtYnV0dG9uXHJcbiAgICAgIFtsYWJlbF09XCJjdXJyZW50UGFnZSArICcgLyAnICsgdG90YWxQYWdlcygpXCJcclxuICAgICAgb3V0bGluZWRcclxuICAgICAgc2V2ZXJpdHk9XCJzZWNvbmRhcnlcIlxyXG4gICAgICBjbGFzcz1cImhpZGRlbiB4czpibG9ja1wiXHJcbiAgICAgIChjbGljayk9XCJzaG93UGFnZU1lbnUgPSAhc2hvd1BhZ2VNZW51XCJcclxuICAgICAgICBwVG9vbHRpcD1cInt7dG90YWxSZWNvcmRzfX1cIlxyXG4gICAgICB0b29sdGlwUG9zaXRpb249XCJ0b3BcIlxyXG4gICAgLz5cclxuXHJcblxyXG4gIDwvZGl2PlxyXG4gICAgICA8IS0tIE5leHQgUGFnZSBCdXR0b24gLS0+XHJcbiAgICAgIDxwLWJ1dHRvblxyXG4gICAgICAgIFtpY29uXT1cImlzUlRMID8gJ3BpIHBpLWNoZXZyb24tbGVmdCcgOiAncGkgcGktY2hldnJvbi1yaWdodCdcIlxyXG4gICAgICAgIG91dGxpbmVkXHJcbiAgICAgICAgc2V2ZXJpdHk9XCJzZWNvbmRhcnlcIlxyXG4gICAgICAgIGNsYXNzPVwieHM6YmxvY2tcIlxyXG4gICAgICAgIChjbGljayk9XCJnb05leHQoKVwiXHJcbiAgICAgICAgW2Rpc2FibGVkXT1cImlzTGFzdFBhZ2UoKVwiXHJcbiAgICAgID48L3AtYnV0dG9uPlxyXG5cclxuICAgICAgPCEtLSBMYXN0IFBhZ2UgQnV0dG9uIC0tPlxyXG4gICAgICA8cC1idXR0b25cclxuICAgICAgICBbaWNvbl09XCJpc1JUTCA/ICdwaSBwaS1hbmdsZS1kb3VibGUtbGVmdCcgOiAncGkgcGktYW5nbGUtZG91YmxlLXJpZ2h0J1wiXHJcbiAgICAgICAgb3V0bGluZWRcclxuICAgICAgICBzZXZlcml0eT1cInNlY29uZGFyeVwiXHJcbiAgICAgICAgY2xhc3M9XCJoaWRkZW4geHM6YmxvY2tcIlxyXG4gICAgICAgIChjbGljayk9XCJnb0xhc3QoKVwiXHJcbiAgICAgICAgW2Rpc2FibGVkXT1cImlzTGFzdFBhZ2UoKVwiXHJcbiAgICAgID48L3AtYnV0dG9uPlxyXG4gICAgPC9kaXY+XHJcbiAgPC9kaXY+XHJcbjwvZGl2PlxyXG59XHJcbiJdfQ==","/* eslint-disable @angular-eslint/no-output-on-prefix */\n/* eslint-disable @angular-eslint/no-output-native */\nimport { DividerModule } from 'primeng/divider';\nimport { Component, Input, Output, EventEmitter, ViewChild, inject } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { MessageModule } from 'primeng/message';\nimport { ButtonModule } from 'primeng/button';\nimport { TableModule } from 'primeng/table';\nimport { ToolbarModule } from 'primeng/toolbar';\nimport { TranslatePipe } from '@elite.framework/ng.core/pipes';\nimport { IconFieldModule } from 'primeng/iconfield';\nimport { DrawerModule } from 'primeng/drawer';\nimport { DialogModule } from 'primeng/dialog';\nimport { FormsModule, ReactiveFormsModule, UntypedFormGroup } from '@angular/forms';\nimport { BaseService, LocalizationService } from '@elite.framework/ng.core/services';\nimport { SwalService } from '@elite.framework/ng.core/services';\nimport { GenericCrudHeaderComponent } from './generic-crud-header';\nimport { ActivatedRoute, Router } from '@angular/router';\nimport { GenericTable } from '@elite.framework/ng.ui.core/generic-table';\nimport { GenericDialogComponent } from '@elite.framework/ng.ui.core/generic-dialog';\nimport { GenericViewComponent } from '@elite.framework/ng.ui.core/generic-view';\nimport { QueryBuilderService } from '@elite.framework/ng.ui.core/generic-search-advanced';\nimport * as i0 from \"@angular/core\";\n/**\n * مكون جدول CRUD عام يمكن إعادة استخدامه\n * يدعم العمليات الأساسية: إنشاء، قراءة، تحديث، حذف\n * مع إمكانية التخصيص عبر عدة أوضاع وعرض\n */\nexport class GenericCrudTableComponent {\n genericTable;\n dialog;\n translate = inject(LocalizationService);\n swalService = inject(SwalService);\n queryBuilder = inject(QueryBuilderService);\n home = { icon: 'pi pi-home', routerLink: '/' };\n data = [];\n formFields_ = []; // <-- هنا\n formFields = []; // <-- هنا\n columns = []; // <-- هنا\n dialogMaxWidth = '40rem'; // unset , fit-content\n isViewMode = false;\n displayMode = 'drawer';\n useConfirmOnSave = false;\n isEditMode = false;\n drawerVisible = false;\n dialogVisible = false;\n form = new UntypedFormGroup({});\n model;\n model_ = {};\n loading = false;\n errorMsg = '';\n errorMessage = '';\n options = {};\n actions = [];\n /** تحدد طريقة العرض: 'buttons' أو 'menu' */\n actionsMode = 'buttons';\n action = new EventEmitter();\n bulkAction = new EventEmitter();\n singleAction = new EventEmitter();\n beforeSaveTransform; // ⚡ دوال مخصصة قبل الحفظ\n afterSave = new EventEmitter();\n afterDelete = new EventEmitter();\n beforeSave = new EventEmitter();\n beforeDelete = new EventEmitter();\n formCancel = new EventEmitter();\n formInit = new EventEmitter();\n dataLoaded = new EventEmitter();\n selectionChange = new EventEmitter();\n error = new EventEmitter();\n // البحث\n // Search\n filters;\n filterModel = {};\n search = new EventEmitter();\n /** للتحكم بإظهار/إخفاء قسم البحث */\n showSearch = true;\n /** Pagination Inputs */\n first = 0;\n rows = 10;\n totalRecords = 0;\n pageChange = new EventEmitter();\n onSearch = new EventEmitter();\n visibleChange = new EventEmitter();\n ;\n // @Output() visibleChange = new EventEmitter<boolean>();\n /** لجعل الجدول قابل لاختيار الصفوف (افتراضي false) */\n rowSelectable = false;\n /** حدث يخرج الصف المحدّد */\n rowSelect = new EventEmitter();\n selection = null;\n // الفرز\n sortField;\n sortOrder = 1;\n scrollHeight = '400px';\n paginator = true;\n service = inject(BaseService);\n apiName = '';\n idField = 'id';\n showRowSelectionCheckbox = false;\n showAddButton = true;\n addPermissionName;\n addButtonConfigs = [\n {\n icon: 'pi pi-plus',\n label: 'ADD',\n variant: 'raised',\n severity: 'primary',\n size: 'small',\n actionName: 'add',\n visible: this.showAddButton,\n permission: this.addPermissionName,\n },\n ];\n createEditActions = [\n {\n icon: 'pi pi-check',\n label: 'SAVE',\n variant: 'raised',\n severity: 'primary',\n size: 'small',\n actionName: 'save',\n type: 'submit',\n splitActions: [\n {\n label: this.translate.instant('SAVE_AND_ADD'),\n icon: 'pi pi-save',\n actionName: 'saveAndAdd'\n }\n ]\n },\n {\n icon: 'pi pi-times',\n label: 'CANCEL',\n variant: 'raised',\n severity: 'danger',\n size: 'small',\n actionName: 'cancel',\n type: 'button',\n },\n ];\n supportSubPage = true;\n tabs = [];\n bulkActionButtons = [];\n singleActionButtons = [];\n _selectedRows = [];\n get isSingleItemSelected() {\n return this._selectedRows.length === 1;\n }\n get isMultipleItemSelected() {\n return this._selectedRows.length > 1;\n }\n get selectedItems() {\n return this._selectedRows;\n }\n breadcrumb;\n get breadcrumb_() {\n return this.breadcrumb?.map(v => ({\n ...v,\n label: this.translate.instant(v.label ?? '')\n }));\n }\n get rtl() {\n try {\n return document?.documentElement?.dir === 'rtl';\n }\n catch (error) {\n return true;\n }\n }\n /**\n * Modes to control what parts of the component are visible\n * - 'full': Table + CRUD operations (default)\n * - 'form-only': Only show form (for create/edit/view)\n * - 'table-only': Only show table (read-only mode)\n */\n mode = 'full';\n /** Force the component to show specific state */\n forceState = null;\n /** Hide table completely when in form-only mode */\n get hideTable() {\n return (this.mode === 'form-only' || this.mode === 'detail' || (this.forceState && this.mode !== 'table-only')) ?? false;\n }\n /** Auto-show form when in form-only mode with forceState */\n get autoShowForm() {\n return this.mode === 'form-only' && !!this.forceState;\n }\n //لتغيير لون صف معيّن\n rowStyleFn;\n // ✅ لتعيين كلاس CSS أو Tailwind على الصف\n rowClassFn;\n //آخر لتجميد / تعطيل checkbox الاختيار\n disableRowCheckboxFn;\n tableClass = 'h-full flex-1 flex flex-col overflow-hidden border border-surface rounded-2xl xs:rounded-2xl p-4 bg-white';\n route = inject(ActivatedRoute);\n router = inject(Router);\n currentId;\n ngOnInit() {\n if (this.apiName && this.apiName != '') {\n this.service.apiName = this.apiName;\n }\n if (this.apiName) {\n this.service.apiName = this.apiName;\n }\n if (this.tabs.length == 0) {\n this.formFields_ = this.formFields;\n this.tabs.push({ header: 'التفاصيل', icon: 'pi pi-info-circle', fields: this.formFields_, model: this.model });\n }\n if (this.supportSubPage) {\n this.route.paramMap.subscribe(params => {\n const id = params.get(this.idField);\n if (id && id !== 'new' && id !== 'create' && id !== 'add') {\n this.currentId = id;\n this.mode = 'detail';\n this.loadDetail(id);\n }\n else if (id == 'new' || id == 'create' || id == 'add') {\n this.mode = 'detail';\n }\n else {\n this.currentId = undefined;\n }\n });\n }\n }\n // 3. Handle Header's Paginate Change Event\n onHeaderPaginateChange(event) {\n this.first = event.first; // Update the 'first' index\n this.rows = event.rows;\n const lazyLoadEvent = {\n first: this.first,\n rows: this.rows,\n // You'd typically include current sorting and filtering state here\n sortField: this.sortField,\n sortOrder: 1,\n filters: this.filters,\n globalFilter: null, // or your current global filter value\n };\n this.onLazyLoad(lazyLoadEvent);\n }\n loadDetail(id) {\n this.service.get(id).subscribe({\n next: res => {\n this.model = res;\n }\n });\n }\n // Helper method to open form programmatically\n openForm(mode, model) {\n this.dialog.openForm(mode, model);\n }\n // private destroy$ = new Subject<void>();\n /** الآن يتلقّى pagination + sort في حدث واحد */\n onLazyLoad(event) {\n // this.model_= this.model ?? {};\n this.model = this.model ?? {};\n this.formFields_ = this.formFields;\n const first = event.first ?? this.first;\n const rows = event.rows ?? this.rows;\n const sortField = typeof event.sortField === 'string'\n ? event.sortField\n : this.sortField;\n const sortOrder = event.sortOrder === -1 ? -1 : 1;\n const filters = {};\n if (event.filters) {\n Object.entries(event.filters).forEach(([field, meta]) => {\n const value = meta.value;\n if (value != null && value !== '') {\n filters[field] = value;\n }\n });\n }\n var queryString = '';\n // Default query\n if (!filters['query']) {\n // Use the new QueryBuilderService methods\n const odataParams = this.queryBuilder.buildODataFromQueryModel(this.filterModel, this.formFields_);\n // this.odataSearch.emit(odataParams);\n // Generate query string using the unified method\n queryString = this.queryBuilder.toODataQueryString(odataParams);\n // console.log('OData Query String:', queryString);\n }\n this.first = first;\n this.rows = rows;\n this.sortField = sortField;\n this.sortOrder = sortOrder;\n const dir = sortOrder === 1 ? 'asc' : 'desc';\n const sort = sortField ? `${sortField} ${dir}` : undefined;\n // this.pageChange.emit({ first, rows ,sort, filters });\n this.applySearch({\n filter: this.model['filter'],\n query: queryString,\n sorting: sort,\n skipCount: first,\n maxResultCount: rows,\n });\n // يبني النص وإرساله\n }\n /** تصيير البيانات حسب الصفحة */\n get pagedData() {\n // return this.data ? this.data.slice(this.first, this.first + this.rows) : [];\n return this.data;\n }\n get globalFilterFields() {\n return this.columns.map(c => String(c.key));\n }\n /** أرسل إلى الأب لأتمتة شكل البحث إذا يحتاج */\n // from generic-crud-table.component.ts\n /** بدّل applySearch لتبث pageChange مباشرةً */\n resetPage(filters) {\n // this.genericTable.applyFilter(global);\n this.first = 0;\n this.rows = 10;\n }\n /** بدّل applySearch لتبث pageChange مباشرةً */\n applySearch(filters) {\n // this.genericTable.applyFilter(global);\n this.onSearch.emit(filters);\n }\n /** دالة تنفّذ عند النقر على صف */\n onRowClick(row) {\n if (this.rowSelectable) {\n this.rowSelect.emit(row);\n }\n }\n onSubmit() {\n if (this.mode != 'form-only') {\n this.applySearch('');\n }\n }\n trackByIdx(index, item) {\n return index;\n }\n onSingleItemAction(btn) {\n if (!this.isSingleItemSelected)\n return;\n const selectedItem = this._selectedRows[0];\n this.singleAction.emit({\n name: btn.actionName ?? 'singleAction',\n item: selectedItem\n });\n }\n onInternalBulkAction(btn) {\n if (!this.isMultipleItemSelected)\n return;\n this.bulkAction.emit({\n name: btn.actionName ?? 'bulkAction',\n items: [...this._selectedRows] // نرسل نسخة من المصفوفة\n });\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: GenericCrudTableComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });\n static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.1.8\", type: GenericCrudTableComponent, isStandalone: true, selector: \"app-generic-crud-table\", inputs: { data: \"data\", formFields: \"formFields\", columns: \"columns\", dialogMaxWidth: \"dialogMaxWidth\", isViewMode: \"isViewMode\", displayMode: \"displayMode\", useConfirmOnSave: \"useConfirmOnSave\", isEditMode: \"isEditMode\", drawerVisible: \"drawerVisible\", dialogVisible: \"dialogVisible\", model: \"model\", loading: \"loading\", errorMsg: \"errorMsg\", errorMessage: \"errorMessage\", actions: \"actions\", actionsMode: \"actionsMode\", beforeSaveTransform: \"beforeSaveTransform\", filters: \"filters\", filterModel: \"filterModel\", showSearch: \"showSearch\", first: \"first\", rows: \"rows\", totalRecords: \"totalRecords\", rowSelectable: \"rowSelectable\", scrollHeight: \"scrollHeight\", paginator: \"paginator\", service: \"service\", apiName: \"apiName\", idField: \"idField\", showRowSelectionCheckbox: \"showRowSelectionCheckbox\", showAddButton: \"showAddButton\", addPermissionName: \"addPermissionName\", addButtonConfigs: \"addButtonConfigs\", createEditActions: \"createEditActions\", supportSubPage: \"supportSubPage\", tabs: \"tabs\", bulkActionButtons: \"bulkActionButtons\", singleActionButtons: \"singleActionButtons\", breadcrumb: \"breadcrumb\", mode: \"mode\", forceState: \"forceState\", hideTable: \"hideTable\", autoShowForm: \"autoShowForm\", rowStyleFn: \"rowStyleFn\", rowClassFn: \"rowClassFn\", disableRowCheckboxFn: \"disableRowCheckboxFn\" }, outputs: { action: \"action\", bulkAction: \"bulkAction\", singleAction: \"singleAction\", afterSave: \"afterSave\", afterDelete: \"afterDelete\", beforeSave: \"beforeSave\", beforeDelete: \"beforeDelete\", formCancel: \"formCancel\", formInit: \"formInit\", dataLoaded: \"dataLoaded\", selectionChange: \"selectionChange\", error: \"error\", search: \"search\", pageChange: \"pageChange\", onSearch: \"onSearch\", visibleChange: \"visibleChange\", rowSelect: \"rowSelect\" }, viewQueries: [{ propertyName: \"genericTable\", first: true, predicate: [\"genericTable\"], descendants: true }, { propertyName: \"dialog\", first: true, predicate: [\"dialog\"], descendants: true }], ngImport: i0, template: \"<div\\r\\n [class]=\\\"mode !== 'form-only' && mode !== 'detail' ? tableClass : ''\\\"\\r\\n>\\r\\n <app-generic-crud-header\\r\\n [mode]=\\\"mode\\\"\\r\\n [breadcrumb]=\\\"breadcrumb_\\\"\\r\\n [isSingleItemSelected]=\\\"isSingleItemSelected\\\"\\r\\n [selectedItems]=\\\"_selectedRows\\\"\\r\\n [singleActionButtons]=\\\"singleActionButtons\\\"\\r\\n [bulkActionButtons]=\\\"bulkActionButtons\\\"\\r\\n [addButtonConfigs]=\\\"addButtonConfigs\\\"\\r\\n [apiName]=\\\"service.apiName\\\"\\r\\n [filters]=\\\"filters\\\"\\r\\n [filterModel]=\\\"filterModel\\\"\\r\\n [showSearch]=\\\"showSearch\\\"\\r\\n (singleItemAction)=\\\"onSingleItemAction($event)\\\"\\r\\n (bulkAction)=\\\"onInternalBulkAction($event)\\\"\\r\\n (action)=\\\"action.emit($event)\\\"\\r\\n (search)=\\\"resetPage($event);applySearch($event);\\\"\\r\\n (resetSearch)=\\\"resetPage($event);applySearch('');\\\"\\r\\n (paginateChange)=\\\"onHeaderPaginateChange($event)\\\"\\r\\n [first]=\\\"first\\\"\\r\\n [rows]=\\\"rows\\\"\\r\\n [totalRecords]=\\\"totalRecords\\\"\\r\\n/>\\r\\n\\r\\n @if (!hideTable) {\\r\\n <lib-generic-table\\r\\n [data]=\\\"data\\\"\\r\\n [columns]=\\\"columns\\\"\\r\\n [paginator]=\\\"paginator\\\"\\r\\n [loading]=\\\"loading\\\"\\r\\n [actions]=\\\"actions\\\"\\r\\n [actionsMode]=\\\"actionsMode\\\"\\r\\n [first]=\\\"first\\\"\\r\\n [rows]=\\\"rows\\\"\\r\\n [totalRecords]=\\\"totalRecords\\\"\\r\\n [sortField]=\\\"sortField\\\"\\r\\n [sortOrder]=\\\"sortOrder\\\"\\r\\n [addButtonConfigs]=\\\"addButtonConfigs\\\"\\r\\n [globalFilterFields]=\\\"globalFilterFields\\\"\\r\\n [scrollHeight]=\\\"scrollHeight\\\"\\r\\n [showRowSelectionCheckbox]=\\\"showRowSelectionCheckbox\\\"\\r\\n (action)=\\\"action.emit($event)\\\"\\r\\n (onAddNew)=\\\"action.emit({ name: 'add', row: null! })\\\"\\r\\n (pageChange)=\\\"onLazyLoad($event)\\\"\\r\\n [rowSelectable]=\\\"rowSelectable\\\"\\r\\n (rowSelect)=\\\"onRowClick($event)\\\"\\r\\n [(selection)]=\\\"_selectedRows\\\"\\r\\n #genericTable\\r\\n ></lib-generic-table>\\r\\n\\r\\n }\\r\\n\\r\\n <app-generic-dialog\\r\\n #dialog\\r\\n [service]=\\\"service\\\"\\r\\n [apiName]=\\\"service.apiName\\\"\\r\\n [formFields]=\\\"formFields\\\"\\r\\n [model]=\\\"model\\\"\\r\\n [apiName]=\\\"apiName\\\"\\r\\n [idField]=\\\"idField\\\"\\r\\n [dialogMaxWidth]=\\\"dialogMaxWidth\\\"\\r\\n [displayMode]=\\\"displayMode\\\"\\r\\n [mode]=\\\"mode\\\"\\r\\n [forceState]=\\\"forceState\\\"\\r\\n [drawerVisible]=\\\"drawerVisible\\\"\\r\\n [dialogVisible]=\\\"dialogVisible\\\"\\r\\n [isViewMode]=\\\"isViewMode\\\"\\r\\n [isEditMode]=\\\"isEditMode\\\"\\r\\n [useConfirmOnSave]=\\\"useConfirmOnSave\\\"\\r\\n [loading]=\\\"loading\\\"\\r\\n [errorMsg]=\\\"errorMsg\\\"\\r\\n [errorMessage]=\\\"errorMessage\\\"\\r\\n [beforeSaveTransform]=\\\"beforeSaveTransform\\\"\\r\\n (action)=\\\"action.emit($event)\\\"\\r\\n (afterSave)=\\\"afterSave.emit($event);onSubmit();\\\"\\r\\n (afterDelete)=\\\"afterDelete.emit($event)\\\"\\r\\n (beforeSave)=\\\"beforeSave.emit($event)\\\"\\r\\n (beforeDelete)=\\\"beforeDelete.emit($event)\\\"\\r\\n (formCancel)=\\\"formCancel.emit()\\\"\\r\\n (formInit)=\\\"formInit.emit($event)\\\"\\r\\n (dataLoaded)=\\\"dataLoaded.emit($event)\\\"\\r\\n (selectionChange)=\\\"selectionChange.emit($event)\\\"\\r\\n (error)=\\\"error.emit($event)\\\"\\r\\n (visibleChange)=\\\"visibleChange.emit($event)\\\"\\r\\n >\\r\\n </app-generic-dialog>\\r\\n\\r\\n <app-detail-view\\r\\n [displayMode]=\\\"displayMode\\\"\\r\\n [mode]=\\\"mode\\\"\\r\\n [title]=\\\"breadcrumb_?.[0]?.label || 'Detail'\\\"\\r\\n [service]=\\\"service\\\"\\r\\n [apiName]=\\\"service.apiName\\\"\\r\\n [apiName]=\\\"apiName\\\"\\r\\n [idField]=\\\"idField\\\"\\r\\n [actions]=\\\"actions\\\"\\r\\n [formFields]=\\\"formFields\\\"\\r\\n [model]=\\\"model\\\"\\r\\n [tabs]=\\\"tabs\\\"\\r\\n [loading]=\\\"loading\\\"\\r\\n [breadcrumb]=\\\"breadcrumb_\\\"\\r\\n [createEditActions]=\\\"createEditActions\\\"\\r\\n (action)=\\\"action.emit($event)\\\"\\r\\n >\\r\\n </app-detail-view>\\r\\n\\r\\n</div>\\r\\n\", dependencies: [{ kind: \"ngmodule\", type: CommonModule }, { kind: \"ngmodule\", type: TableModule }, { kind: \"ngmodule\", type: ButtonModule }, { kind: \"component\", type: GenericTable, selector: \"lib-generic-table\", inputs: [\"data\", \"columns\", \"loading\", \"actions\", \"actionsPosition\", \"actionsMode\", \"first\", \"rows\", \"totalRecords\", \"sortField\", \"sortOrder\", \"globalFilterFields\", \"addButtonConfigs\", \"scrollHeight\", \"rowSelectable\", \"rowStyleFn\", \"rowClassFn\", \"disableRowCheckboxFn\", \"selection\", \"paginator\", \"showRowSelectionCheckbox\"], outputs: [\"action\", \"pageChange\", \"onAddNew\", \"rowSelect\", \"selectionChange\"] }, { kind: \"ngmodule\", type: ToolbarModule }, { kind: \"ngmodule\", type: DividerModule }, { kind: \"ngmodule\", type: IconFieldModule }, { kind: \"ngmodule\", type: DrawerModule }, { kind: \"ngmodule\", type: ReactiveFormsModule }, { kind: \"ngmodule\", type: FormsModule }, { kind: \"ngmodule\", type: MessageModule }, { kind: \"ngmodule\", type: DialogModule }, { kind: \"component\", type: GenericDialogComponent, selector: \"app-generic-dialog\", inputs: [\"form\", \"service\", \"formFields\", \"model\", \"apiName\", \"moduleName\", \"idField\", \"dialogMaxWidth\", \"displayMode\", \"mode\", \"forceState\", \"drawerVisible\", \"dialogVisible\", \"isViewMode\", \"isEditMode\", \"useConfirmOnSave\", \"loading\", \"errorMsg\", \"errorMessage\", \"beforeSaveTransform\", \"hideTable\", \"autoShowForm\"], outputs: [\"action\", \"afterSave\", \"afterDelete\", \"beforeSave\", \"beforeDelete\", \"formCancel\", \"formInit\", \"dataLoaded\", \"selectionChange\", \"error\", \"visibleChange\"] }, { kind: \"component\", type: GenericCrudHeaderComponent, selector: \"app-generic-crud-header\", inputs: [\"mode\", \"breadcrumb\", \"isSingleItemSelected\", \"selectedItems\", \"singleActionButtons\", \"bulkActionButtons\", \"addButtonConfigs\", \"filters\", \"filterModel\", \"showSearch\", \"first\", \"rows\", \"totalRecords\", \"apiName\", \"actions\"], outputs: [\"singleItemAction\", \"bulkAction\", \"search\", \"resetSearch\", \"action\", \"paginateChange\"] }, { kind: \"component\", type: GenericViewComponent, selector: \"app-detail-view\", inputs: [\"title\", \"actions\", \"createEditActions\", \"tabs\", \"viewMode\", \"breadcrumb\", \"service\", \"formFields\", \"apiName\", \"idField\", \"standaloneMode\", \"isViewMode\", \"isCreateMode\", \"isEditMode\", \"model\", \"displayMode\", \"mode\", \"loading\"], outputs: [\"action\", \"afterDelete\"] }] });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: GenericCrudTableComponent, decorators: [{\n type: Component,\n args: [{ selector: 'app-generic-crud-table', standalone: true, imports: [\n CommonModule,\n TableModule,\n ButtonModule,\n GenericTable,\n ToolbarModule,\n TranslatePipe,\n DividerModule,\n IconFieldModule,\n DrawerModule,\n ReactiveFormsModule,\n FormsModule,\n MessageModule,\n DialogModule,\n GenericDialogComponent,\n GenericCrudHeaderComponent,\n GenericViewComponent\n ], host: {\n class: ''\n }, template: \"<div\\r\\n [class]=\\\"mode !== 'form-only' && mode !== 'detail' ? tableClass : ''\\\"\\r\\n>\\r\\n <app-generic-crud-header\\r\\n [mode]=\\\"mode\\\"\\r\\n [breadcrumb]=\\\"breadcrumb_\\\"\\r\\n [isSingleItemSelected]=\\\"isSingleItemSelected\\\"\\r\\n [selectedItems]=\\\"_selectedRows\\\"\\r\\n [singleActionButtons]=\\\"singleActionButtons\\\"\\r\\n [bulkActionButtons]=\\\"bulkActionButtons\\\"\\r\\n [addButtonConfigs]=\\\"addButtonConfigs\\\"\\r\\n [apiName]=\\\"service.apiName\\\"\\r\\n [filters]=\\\"filters\\\"\\r\\n [filterModel]=\\\"filterModel\\\"\\r\\n [showSearch]=\\\"showSearch\\\"\\r\\n (singleItemAction)=\\\"onSingleItemAction($event)\\\"\\r\\n (bulkAction)=\\\"onInternalBulkAction($event)\\\"\\r\\n (action)=\\\"action.emit($event)\\\"\\r\\n (search)=\\\"resetPage($event);applySearch($event);\\\"\\r\\n (resetSearch)=\\\"resetPage($event);applySearch('');\\\"\\r\\n (paginateChange)=\\\"onHeaderPaginateChange($event)\\\"\\r\\n [first]=\\\"first\\\"\\r\\n [rows]=\\\"rows\\\"\\r\\n [totalRecords]=\\\"totalRecords\\\"\\r\\n/>\\r\\n\\r\\n @if (!hideTable) {\\r\\n <lib-generic-table\\r\\n [data]=\\\"data\\\"\\r\\n [columns]=\\\"columns\\\"\\r\\n [paginator]=\\\"paginator\\\"\\r\\n [loading]=\\\"loading\\\"\\r\\n [actions]=\\\"actions\\\"\\r\\n [actionsMode]=\\\"actionsMode\\\"\\r\\n [first]=\\\"first\\\"\\r\\n [rows]=\\\"rows\\\"\\r\\n [totalRecords]=\\\"totalRecords\\\"\\r\\n [sortField]=\\\"sortField\\\"\\r\\n [sortOrder]=\\\"sortOrder\\\"\\r\\n [addButtonConfigs]=\\\"addButtonConfigs\\\"\\r\\n [globalFilterFields]=\\\"globalFilterFields\\\"\\r\\n [scrollHeight]=\\\"scrollHeight\\\"\\r\\n [showRowSelectionCheckbox]=\\\"showRowSelectionCheckbox\\\"\\r\\n (action)=\\\"action.emit($event)\\\"\\r\\n (onAddNew)=\\\"action.emit({ name: 'add', row: null! })\\\"\\r\\n (pageChange)=\\\"onLazyLoad($event)\\\"\\r\\n [rowSelectable]=\\\"rowSelectable\\\"\\r\\n (rowSelect)=\\\"onRowClick($event)\\\"\\r\\n [(selection)]=\\\"_selectedRows\\\"\\r\\n #genericTable\\r\\n ></lib-generic-table>\\r\\n\\r\\n }\\r\\n\\r\\n <app-generic-dialog\\r\\n #dialog\\r\\n [service]=\\\"service\\\"\\r\\n [apiName]=\\\"service.apiName\\\"\\r\\n [formFields]=\\\"formFields\\\"\\r\\n [model]=\\\"model\\\"\\r\\n [apiName]=\\\"apiName\\\"\\r\\n [idField]=\\\"idField\\\"\\r\\n [dialogMaxWidth]=\\\"dialogMaxWidth\\\"\\r\\n [displayMode]=\\\"displayMode\\\"\\r\\n [mode]=\\\"mode\\\"\\r\\n [forceState]=\\\"forceState\\\"\\r\\n [drawerVisible]=\\\"drawerVisible\\\"\\r\\n [dialogVisible]=\\\"dialogVisible\\\"\\r\\n [isViewMode]=\\\"isViewMode\\\"\\r\\n [isEditMode]=\\\"isEditMode\\\"\\r\\n [useConfirmOnSave]=\\\"useConfirmOnSave\\\"\\r\\n [loading]=\\\"loading\\\"\\r\\n [errorMsg]=\\\"errorMsg\\\"\\r\\n [errorMessage]=\\\"errorMessage\\\"\\r\\n [beforeSaveTransform]=\\\"beforeSaveTransform\\\"\\r\\n (action)=\\\"action.emit($event)\\\"\\r\\n (afterSave)=\\\"afterSave.emit($event);onSubmit();\\\"\\r\\n (afterDelete)=\\\"afterDelete.emit($event)\\\"\\r\\n (beforeSave)=\\\"beforeSave.emit($event)\\\"\\r\\n (beforeDelete)=\\\"beforeDelete.emit($event)\\\"\\r\\n (formCancel)=\\\"formCancel.emit()\\\"\\r\\n (formInit)=\\\"formInit.emit($event)\\\"\\r\\n (dataLoaded)=\\\"dataLoaded.emit($event)\\\"\\r\\n (selectionChange)=\\\"selectionChange.emit($event)\\\"\\r\\n (error)=\\\"error.emit($event)\\\"\\r\\n (visibleChange)=\\\"visibleChange.emit($event)\\\"\\r\\n >\\r\\n </app-generic-dialog>\\r\\n\\r\\n <app-detail-view\\r\\n [displayMode]=\\\"displayMode\\\"\\r\\n [mode]=\\\"mode\\\"\\r\\n [title]=\\\"breadcrumb_?.[0]?.label || 'Detail'\\\"\\r\\n [service]=\\\"service\\\"\\r\\n [apiName]=\\\"service.apiName\\\"\\r\\n [apiName]=\\\"apiName\\\"\\r\\n [idField]=\\\"idField\\\"\\r\\n [actions]=\\\"actions\\\"\\r\\n [formFields]=\\\"formFields\\\"\\r\\n [model]=\\\"model\\\"\\r\\n [tabs]=\\\"tabs\\\"\\r\\n [loading]=\\\"loading\\\"\\r\\n [breadcrumb]=\\\"breadcrumb_\\\"\\r\\n [createEditActions]=\\\"createEditActions\\\"\\r\\n (action)=\\\"action.emit($event)\\\"\\r\\n >\\r\\n </app-detail-view>\\r\\n\\r\\n</div>\\r\\n\" }]\n }], propDecorators: { genericTable: [{\n type: ViewChild,\n args: ['genericTable']\n }], dialog: [{\n type: ViewChild,\n args: ['dialog']\n }], data: [{\n type: Input\n }], formFields: [{\n type: Input\n }], columns: [{\n type: Input\n }], dialogMaxWidth: [{\n type: Input\n }], isViewMode: [{\n type: Input\n }], displayMode: [{\n type: Input\n }], useConfirmOnSave: [{\n type: Input\n }], isEditMode: [{\n type: Input\n }], drawerVisible: [{\n type: Input\n }], dialogVisible: [{\n type: Input\n }], model: [{\n type: Input\n }], loading: [{\n type: Input\n }], errorMsg: [{\n type: Input\n }], errorMessage: [{\n type: Input\n }], actions: [{\n type: Input\n }], actionsMode: [{\n type: Input\n }], action: [{\n type: Output\n }], bulkAction: [{\n type: Output\n }], singleAction: [{\n type: Output\n }], beforeSaveTransform: [{\n type: Input\n }], afterSave: [{\n type: Output\n }], afterDelete: [{\n type: Output\n }], beforeSave: [{\n type: Output\n }], beforeDelete: [{\n type: Output\n }], formCancel: [{\n type: Output\n }], formInit: [{\n type: Output\n }], dataLoaded: [{\n type: Output\n }], selectionChange: [{\n type: Output\n }], error: [{\n type: Output\n }], filters: [{\n type: Input\n }], filterModel: [{\n type: Input\n }], search: [{\n type: Output\n }], showSearch: [{\n type: Input\n }], first: [{\n type: Input\n }], rows: [{\n type: Input\n }], totalRecords: [{\n type: Input\n }], pageChange: [{\n type: Output\n }], onSearch: [{\n type: Output\n }], visibleChange: [{\n type: Output\n }], rowSelectable: [{\n type: Input\n }], rowSelect: [{\n type: Output\n }], scrollHeight: [{\n type: Input\n }], paginator: [{\n type: Input\n }], service: [{\n type: Input\n }], apiName: [{\n type: Input\n }], idField: [{\n type: Input\n }], showRowSelectionCheckbox: [{\n type: Input\n }], showAddButton: [{\n type: Input\n }], addPermissionName: [{\n type: Input\n }], addButtonConfigs: [{\n type: Input\n }], createEditActions: [{\n type: Input\n }], supportSubPage: [{\n type: Input\n }], tabs: [{\n type: Input\n }], bulkActionButtons: [{\n type: Input\n }], singleActionButtons: [{\n type: Input\n }], breadcrumb: [{\n type: Input\n }], mode: [{\n type: Input\n }], forceState: [{\n type: Input\n }], hideTable: [{\n type: Input\n }], autoShowForm: [{\n type: Input\n }], rowStyleFn: [{\n type: Input\n }], rowClassFn: [{\n type: Input\n }], disableRowCheckboxFn: [{\n type: Input\n }] } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2VuZXJpYy1jcnVkLXRhYmxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9uZy51aS5jb3JlL2dlbmVyaWMtY3J1ZC10YWJsZS9zcmMvbGliL2dlbmVyaWMtY3J1ZC10YWJsZS50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvbmcudWkuY29yZS9nZW5lcmljLWNydWQtdGFibGUvc3JjL2xpYi9nZW5lcmljLWNydWQtdGFibGUuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSx3REFBd0Q7QUFDeEQscURBQXFEO0FBQ3JELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNoRCxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsWUFBWSxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFDbEcsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNoRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFOUMsT0FBTyxFQUFFLFdBQVcsRUFBc0IsTUFBTyxlQUFlLENBQUM7QUFDakUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFRLGlCQUFpQixDQUFDO0FBQ2xELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUUvRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFFcEQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzlDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM5QyxPQUFPLEVBQUUsV0FBVyxFQUFFLG1CQUFtQixFQUFFLGdCQUFnQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDcEYsT0FBTyxFQUFFLFdBQVcs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QUFLO2dCQUNHLE9BQU87c0JBQWYsS0FBSztnQkFDRyxPQUFPO3NCQUFmLEtBQUs7Z0JBRUksd0JBQXdCO3NCQUFoQyxLQUFLO2dCQUVJLGFBQWE7c0JBQXJCLEtBQUs7Z0JBRUMsaUJBQWlCO3NCQUF6QixLQUFLO2dCQUVLLGdCQUFnQjtzQkFBeEIsS0FBSztnQkFhRSxpQkFBaUI7c0JBQXpCLEtBQUs7Z0JBNEJHLGNBQWM7c0JBQXRCLEtBQUs7Z0JBRUcsSUFBSTtzQkFBWixLQUFLO2dCQUNJLGlCQUFpQjtzQkFBekIsS0FBSztnQkFDRyxtQkFBbUI7c0JBQTNCLEtBQUs7Z0JBb0JDLFVBQVU7c0JBQWxCLEtBQUs7Z0JBdUJLLElBQUk7c0JBQVosS0FBSztnQkFHRyxVQUFVO3NCQUFsQixLQUFLO2dCQUdPLFNBQVM7c0JBQXJCLEtBQUs7Z0JBS08sWUFBWTtzQkFBeEIsS0FBSztnQkFJRyxVQUFVO3NCQUFsQixLQUFLO2dCQUdHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBR0csb0JBQW9CO3NCQUE1QixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgQGFuZ3VsYXItZXNsaW50L25vLW91dHB1dC1vbi1wcmVmaXggKi9cclxuLyogZXNsaW50LWRpc2FibGUgQGFuZ3VsYXItZXNsaW50L25vLW91dHB1dC1uYXRpdmUgKi9cclxuaW1wb3J0IHsgRGl2aWRlck1vZHVsZSB9IGZyb20gJ3ByaW1lbmcvZGl2aWRlcic7XHJcbmltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIE91dHB1dCwgRXZlbnRFbWl0dGVyLCBWaWV3Q2hpbGQsIGluamVjdCwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7IE1lc3NhZ2VNb2R1bGUgfSBmcm9tICdwcmltZW5nL21lc3NhZ2UnO1xyXG5pbXBvcnQgeyBCdXR0b25Nb2R1bGUgfSBmcm9tICdwcmltZW5nL2J1dHRvbic7XHJcbmltcG9ydCB7IFBhZ2luYXRvclN0YXRlIH0gZnJvbSAncHJpbWVuZy9wYWdpbmF0b3InO1xyXG5pbXBvcnQgeyBUYWJsZU1vZHVsZSxUYWJsZUxhenlMb2FkRXZlbnQgIH0gIGZyb20gJ3ByaW1lbmcvdGFibGUnO1xyXG5pbXBvcnQgeyBUb29sYmFyTW9kdWxlIH0gICBmcm9tICdwcmltZW5nL3Rvb2xiYXInO1xyXG5pbXBvcnQgeyBUcmFuc2xhdGVQaXBlIH0gZnJvbSAnQGVsaXRlLmZyYW1ld29yay9uZy5jb3JlL3BpcGVzJztcclxuaW1wb3J0IHsgRm9ybWx5RmllbGRDb25maWcsIEZvcm1seUZvcm1PcHRpb25zIH0gZnJvbSAnQG5neC1mb3JtbHkvY29yZSc7XHJcbmltcG9ydCB7IEljb25GaWVsZE1vZHVsZSB9IGZyb20gJ3ByaW1lbmcvaWNvbmZpZWxkJztcclxuaW1wb3J0IHsgTWVudUl0ZW0gfSBmcm9tICdwcmltZW5nL2FwaSc7XHJcbmltcG9ydCB7IERyYXdlck1vZHVsZSB9IGZyb20gJ3ByaW1lbmcvZHJhd2VyJztcclxuaW1wb3J0IHsgRGlhbG9nTW9kdWxlIH0gZnJvbSAncHJpbWVuZy9kaWFsb2cnO1xyXG5pbXBvcnQgeyBGb3Jtc01vZHVsZSwgUmVhY3RpdmVGb3Jtc01vZHVsZSwgVW50eXBlZEZvcm1Hcm91cCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgQmFzZVNlcnZpY2UsIExvY2FsaXphdGlvblNlcnZpY2UgfSBmcm9tICdAZWxpdGUuZnJhbWV3b3JrL25nLmNvcmUvc2VydmljZXMnO1xyXG5pbXBvcnQgeyBCdXR0b25Db25maWcgfSBmcm9tICdAZWxpdGUuZnJhbWV3b3JrL25nLmNvcmUvbW9kZWxzJztcclxuaW1wb3J0IHsgU3dhbFNlcnZpY2UgfSBmcm9tICdAZWxpdGUuZnJhbWV3b3JrL25nLmNvcmUvc2VydmljZXMnO1xyXG5pbXBvcnQgeyBBY3Rpb25EZWYgfSBmcm9tICdAZWxpdGUuZnJhbWV3b3JrL25nLmNvcmUvbW9kZWxzJztcclxuaW1wb3J0IHsgR2VuZXJpY0NydWRIZWFkZXJDb21wb25lbnQgfSBmcm9tICcuL2dlbmVyaWMtY3J1ZC1oZWFkZXInO1xyXG5pbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZSwgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcclxuaW1wb3J0IHsgR2VuZXJpY1RhYmxlIH0gZnJvbSAnQGVsaXRlLmZyYW1ld29yay9uZy51aS5jb3JlL2dlbmVyaWMtdGFibGUnO1xyXG5pbXBvcnQgeyBHZW5lcmljRGlhbG9nQ29tcG9uZW50IH0gZnJvbSAnQGVsaXRlLmZyYW1ld29yay9uZy51aS5jb3JlL2dlbmVyaWMtZGlhbG9nJztcclxuaW1wb3J0IHsgRGV0YWlsVGFiLCBHZW5lcmljVmlld0NvbXBvbmVudCB9IGZyb20gJ0BlbGl0ZS5mcmFtZXdvcmsvbmcudWkuY29yZS9nZW5lcmljLXZpZXcnO1xyXG5pbXBvcnQgeyBRdWVyeUJ1aWxkZXJTZXJ2aWNlIH0gZnJvbSAnQGVsaXRlLmZyYW1ld29yay9uZy51aS5jb3JlL2dlbmVyaWMtc2VhcmNoLWFkdmFuY2VkJztcclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgUGFnZUNoYW5nZVBheWxvYWQgZXh0ZW5kcyBQYWdpbmF0b3JTdGF0ZSB7XHJcbnNvcnQ/OiBzdHJpbmc7XHJcbmZpbHRlcnM/OiBSZWNvcmQ8c3RyaW5nLCBhbnk+O1xyXG59XHJcblxyXG5leHBvcnQgdHlwZSBBY3Rpb25zTW9kZSA9ICdidXR0b25zJyB8ICdtZW51JztcclxuXHJcbi8qKlxyXG4gKiDZhdmD2YjZhiDYrNiv2YjZhCBDUlVEINi52KfZhSDZitmF2YPZhiDYpdi52KfYr9ipINin2LPYqtiu2K/Yp9mF2YdcclxuICog2YrYr9i52YUg2KfZhNi52YXZhNmK2KfYqiDYp9mE2KPYs9in2LPZitipOiDYpdmG2LTYp9ih2Iwg2YLYsdin2KHYqdiMINiq2K3Yr9mK2KvYjCDYrdiw2YFcclxuICog2YXYuSDYpdmF2YPYp9mG2YrYqSDYp9mE2KrYrti12YrYtSDYudio2LEg2LnYr9ipINij2YjYttin2Lkg2YjYudix2LZcclxuICovXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnYXBwLWdlbmVyaWMtY3J1ZC10YWJsZScsXHJcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcclxuICBpbXBvcnRzOiBbXHJcbiAgICBDb21tb25Nb2R1bGUsXHJcbiAgICBUYWJsZU1vZHVsZSxcclxuICAgIEJ1dHRvbk1vZHVsZSxcclxuICAgIEdlbmVyaWNUYWJsZSxcclxuICAgIFRvb2xiYXJNb2R1bGUsXHJcbiAgICBUcmFuc2xhdGVQaXBlLFxyXG4gICAgRGl2aWRlck1vZHVsZSxcclxuICAgIEljb25GaWVsZE1vZHVsZSxcclxuICAgIERyYXdlck1vZHVsZSxcclxuICAgIFJlYWN0aXZlRm9ybXNNb2R1bGUsXHJcbiAgICBGb3Jtc01vZHVsZSxcclxuICAgIE1lc3NhZ2VNb2R1bGUsXHJcbiAgICBEaWFsb2dNb2R1bGUsXHJcbiAgICBHZW5lcmljRGlhbG9nQ29tcG9uZW50LFxyXG4gICAgR2VuZXJpY0NydWRIZWFkZXJDb21wb25lbnQsXHJcbiAgICBHZW5lcmljVmlld0NvbXBvbmVudFxyXG5dLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9nZW5lcmljLWNydWQtdGFibGUuaHRtbCcsXHJcbiAgIGhvc3Q6IHtcclxuICAgICAgICBjbGFzczogJydcclxuICAgIH0sXHJcbn0pXHJcblxyXG5leHBvcnQgY2xhc3MgR2VuZXJpY0NydWRUYWJsZUNvbXBvbmVudDxUPiBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcbiBAVmlld0NoaWxkKCdnZW5lcmljVGFibGUnKSBnZW5lcmljVGFibGUhOiBHZW5lcmljVGFibGU8VD47XHJcbiBAVmlld0NoaWxkKCdkaWFsb2cnKSBkaWFsb2chOiBHZW5lcmljRGlhbG9nQ29tcG9uZW50O1xyXG4gdHJhbnNsYXRlOkxvY2FsaXphdGlvblNlcnZpY2UgPSBpbmplY3QoTG9jYWxpemF0aW9uU2VydmljZSk7XHJcbiBwcml2YXRlIHN3YWxTZXJ2aWNlID0gaW5qZWN0KFN3YWxTZXJ2aWNlKTtcclxuICBwcml2YXRlIHF1ZXJ5QnVpbGRlciA9IGluamVjdChRdWVyeUJ1aWxkZXJTZXJ2aWNlKTtcclxuXHJcbiAgICBob21lOiBNZW51SXRlbSB8IHVuZGVmaW5lZCA9IHsgaWNvbjogJ3BpIHBpLWhvbWUnLCByb3V0ZXJMaW5rOiAnLycgfTtcclxuICBASW5wdXQoKSBkYXRhOiBUW10gPSBbXTtcclxuICAgZm9ybUZpZWxkc186IEZvcm1seUZpZWxkQ29uZmlnW10gPSBbXTsgIC8vIDwtLSDZh9mG2KdcclxuICBASW5wdXQoKSBmb3JtRmllbGRzOiBGb3JtbHlGaWVsZENvbmZpZ1tdID0gW107ICAvLyA8LS0g2YfZhtinXHJcbiAgQElucHV0KCkgY29sdW1uczogRm9ybWx5RmllbGRDb25maWdbXSA9IFtdOyAgLy8gPC0tINmH2YbYp1xyXG4gIEBJbnB1dCgpIGRpYWxvZ01heFdpZHRoID0gJzQwcmVtJzsgLy8gdW5zZXQgLCBmaXQtY29udGVudFxyXG4gIEBJbnB1dCgpIGlzVmlld01vZGUgPSBmYWxzZTtcclxuICAgIEBJbnB1dCgpIGRpc3BsYXlNb2RlOlxyXG4gICAgfCAnZHJhd2VyJyB8ICdkaWFsb2cnIHwgJ3JvdXRlJyB8ICdpbmxpbmUnXHJcbiAgICB8IFBhcnRpYWw8UmVjb3JkPCdhZGQnIHwgJ2VkaXQnIHwgJ3ZpZXcnLCAnZHJhd2VyJyB8ICdkaWFsb2cnIHwgJ3JvdXRlJyB8ICdpbmxpbmUnPj5cclxuICAgID0gJ2RyYXdlcic7XHJcbiAgQElucHV0KCkgdXNlQ29uZmlybU9uU2F2ZSA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpIGlzRWRpdE1vZGUgPSBmYWxzZTtcclxuICBASW5wdXQoKSBkcmF3ZXJWaXNpYmxlID0gZmFsc2U7XHJcbiAgQElucHV0KCkgZGlhbG9nVmlzaWJsZSA9IGZhbHNlO1xyXG4gICBmb3JtID0gbmV3IFVudHlwZWRGb3JtR3JvdXAoe30pO1xyXG4gQElucHV0KCkgbW9kZWw6IGFueTtcclxuICBtb2RlbF86IGFueSA9IHt9O1xyXG4gIEBJbnB1dCgpIGxvYWRpbmcgPSBmYWxzZTtcclxuICBASW5wdXQoKSBlcnJvck1zZyA9ICcnO1xyXG4gIEBJbnB1dCgpIGVycm9yTWVzc2FnZTogc3RyaW5nfGFueSA9ICcnO1xyXG5cclxub3B0aW9uczogRm9ybWx5Rm9ybU9wdGlvbnMgPSB7fTtcclxuXHJcbiAgQElucHV0KCkgYWN0aW9uczogQWN0aW9uRGVmPFQ+W10gPSBbXTtcclxuICAgIC8qKiDYqtit2K/YryDYt9ix2YrZgtipINin2YTYudix2LY6ICdidXR0b25zJyDYo9mIICdtZW51JyAqL1xyXG4gIEBJbnB1dCgpIGFjdGlvbnNNb2RlOiBBY3Rpb25zTW9kZSA9ICdidXR0b25zJztcclxuICBAT3V0cHV0KCkgYWN0aW9uID0gbmV3IEV2ZW50RW1pdHRlcjx7IG5hbWU6IHN0cmluZzsgcm93OiBUIH0+KCk7XHJcbiAgQE91dHB1dCgpIGJ1bGtBY3Rpb24gPSBuZXcgRXZlbnRFbWl0dGVyPHsgbmFtZTogc3RyaW5nOyBpdGVtczogVFtdIH0+KCk7XHJcbiAgQE91dHB1dCgpIHNpbmdsZUFjdGlvbiA9IG5ldyBFdmVudEVtaXR0ZXI8eyBuYW1lOiBzdHJpbmc7IGl0ZW06IFQgfT4oKTtcclxuICBASW5wdXQoKSBiZWZvcmVTYXZlVHJhbnNmb3JtPzogKHJlY29yZDogYW55LCBpc0VkaXQ6IGJvb2xlYW4pID0+IGFueTsgLy8g4pqhINiv2YjYp9mEINmF2K7Ytdi12Kkg2YLYqNmEINin2YTYrdmB2LhcclxuXHJcblxyXG4gICBAT3V0cHV0KCkgYWZ0ZXJTYXZlID0gbmV3IEV2ZW50RW1pdHRlcjx7IHJlY29yZDogVDsgaXNFZGl0OiBib29sZWFuOyByZXNwb25zZT86IGFueSB9PigpO1xyXG4gIEBPdXRwdXQoKSBhZnRlckRlbGV0ZSA9IG5ldyBFdmVudEVtaXR0ZXI8eyByZWNvcmQ6IFQ7IHJlc3BvbnNlPzogYW55IH0+KCk7XHJcbiAgQE91dHB1dCgpIGJlZm9yZVNhdmUgPSBuZXcgRXZlbnRFbWl0dGVyPHsgcmVjb3JkOiBUOyBpc0VkaXQ6IGJvb2xlYW4gfT4oKTtcclxuICBAT3V0cHV0KCkgYmVmb3JlRGVsZXRlID0gbmV3IEV2ZW50RW1pdHRlcjx7IHJlY29yZDogVCB9PigpO1xyXG4gIEBPdXRwdXQoKSBmb3JtQ2FuY2VsID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xyXG4gIEBPdXRwdXQoKSBmb3JtSW5pdCA9IG5ldyBFdmVudEVtaXR0ZXI8eyBmb3JtOiBVbnR5cGVkRm9ybUdyb3VwOyBtb2RlbDogYW55IH0+KCk7XHJcbiAgQE91dHB1dCgpIGRhdGFMb2FkZWQgPSBuZXcgRXZlbnRFbWl0dGVyPHsgZGF0YTogVFtdOyB0b3RhbDogbnVtYmVyIH0+KCk7XHJcbiAgQE91dHB1dCgpIHNlbGVjdGlvbkNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8eyBzZWxlY3RlZDogVFtdOyBzZWxlY3RlZENvdW50OiBudW1iZXIgfT4oKTtcclxuICBAT3V0cHV0KCkgZXJyb3IgPSBuZXcgRXZlbnRFbWl0dGVyPHsgZXJyb3I6IGFueTsgY29udGV4dDogc3RyaW5nIH0+KCk7XHJcblxyXG4gIC8vINin2YTYqNit2KtcclxuLy8gU2VhcmNoXHJcbiAgQElucHV0KCkgZmlsdGVyczogYW55O1xyXG4gICBASW5wdXQoKSBmaWx0ZXJNb2RlbDogYW55ID0ge307XHJcbiAgQE91dHB1dCgpIHNlYXJjaCA9IG5ldyBFdmVudEVtaXR0ZXI8eyBmaWVsZDogc3RyaW5nOyBnbG9iYWw6IHN0cmluZyB9PigpO1xyXG5cclxuLyoqINmE2YTYqtit2YPZhSDYqNil2LjZh9in2LEv2KXYrtmB2KfYoSDZgtiz2YUg2KfZhNio2K3YqyAqL1xyXG4gIEBJbnB1dCgpIHNob3dTZWFyY2ggPSB0cnVlO1xyXG5cclxuICAvKiogUGFnaW5hdGlvbiBJbnB1dHMgKi9cclxuICBASW5wdXQoKSBmaXJzdCA9IDA7XHJcbiAgQElucHV0KCkgcm93cyA9IDEwO1xyXG4gIEBJbnB1dCgpIHRvdGFsUmVjb3JkcyA9IDA7XHJcbiAgQE91dHB1dCgpIHBhZ2VDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPFBhZ2VDaGFuZ2VQYXlsb2FkPigpO1xyXG4gIEBPdXRwdXQoKSBvblNlYXJjaCA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xyXG5cclxuQE91dHB1dCgpIHZpc2libGVDaGFuZ2U6IEV2ZW50RW1pdHRlcjxib29sZWFuPiA9IG5ldyBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4oKTs7XHJcbi8vIEBPdXRwdXQoKSB2aXNpYmxlQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxib29sZWFuPigpO1xyXG4gICAvKiog2YTYrNi52YQg2KfZhNis2K/ZiNmEINmC2KfYqNmEINmE2KfYrtiq2YrYp9ixINin2YTYtdmB2YjZgSAo2KfZgdiq2LHYp9i22YogZmFsc2UpICovXHJcbiAgQElucHV0KCkgcm93U2VsZWN0YWJsZSA9IGZhbHNlO1xyXG4gIC8qKiDYrdiv2Ksg2YrYrtix2Kwg2KfZhNi12YEg2KfZhNmF2K3Yr9mR2K8gKi9cclxuICBAT3V0cHV0KCkgcm93U2VsZWN0ID0gbmV3IEV2ZW50RW1pdHRlcjxUPigpO1xyXG5cclxuICBzZWxlY3Rpb246IFQgfCBudWxsID0gbnVsbDtcclxuXHJcbiAvLyDYp9mE2YHYsdiyXHJcbiAgc29ydEZpZWxkPzogc3RyaW5nO1xyXG4gIHNvcnRPcmRlcjogMSB8IC0xID0gMTtcclxuXHJcbkBJbnB1dCgpIHNjcm9sbEhlaWdodCA9ICc0MDBweCc7XHJcblxyXG4gQElucHV0KCkgcGFnaW5hdG9yID0gdHJ1ZTtcclxuXHJcbkBJbnB1dCgpIHNlcnZpY2U6IEJhc2VTZXJ2aWNlID0gaW5qZWN0KEJhc2VTZXJ2aWNlKTtcclxuQElucHV0KCkgYXBpTmFtZSA9ICcnO1xyXG5ASW5wdXQoKSBpZEZpZWxkID0gJ2lkJztcclxuXHJcbiBASW5wdXQoKSBzaG93Um93U2VsZWN0aW9uQ2hlY2tib3ggPSBmYWxzZTtcclxuXHJcbiAgQElucHV0KCkgc2hvd0FkZEJ1dHRvbiA9IHRydWU7XHJcblxyXG5ASW5wdXQoKSBhZGRQZXJtaXNzaW9uTmFtZT86c3RyaW5nO1xyXG5cclxuICBASW5wdXQoKSBhZGRCdXR0b25Db25maWdzOiBCdXR0b25Db25maWdbXSA9IFtcclxuICB7XHJcbiAgICBpY29uOiAncGkgcGktcGx1cycsXHJcbiAgICBsYWJlbDogJ0FERCcsXHJcbiAgICB2YXJpYW50OiAncmFpc2VkJyxcclxuICAgIHNldmVyaXR5OiAncHJpbWFyeScsXHJcbiAgICBzaXplOiAnc21hbGwnLFxyXG4gICAgYWN0aW9uTmFtZTogJ2FkZCcsXHJcbiAgICB2aXNpYmxlOiB0aGlzLnNob3dBZGRCdXR0b24sXHJcbiAgICBwZXJtaXNzaW9uOiB0aGlzLmFkZFBlcm1pc3Npb25OYW1lLFxyXG4gIH0sXHJcbl07XHJcblxyXG4gQElucHV0KCkgY3JlYXRlRWRpdEFjdGlvbnM6IEJ1dHRvbkNvbmZpZ1tdID0gW1xyXG4gIHtcclxuICAgIGljb246ICdwaSBwaS1jaGVjaycsXHJcbiAgICBsYWJlbDogJ1NBVkUnLFxyXG4gICAgdmFyaWFudDogJ3JhaXNlZCcsXHJcbiAgICBzZXZlcml0eTogJ3ByaW1hcnknLFxyXG4gICAgc2l6ZTogJ3NtYWxsJyxcclxuICAgIGFjdGlvbk5hbWU6ICdzYXZlJyxcclxuICAgIHR5cGU6ICdzdWJtaXQnLFxyXG4gICAgc3BsaXRBY3Rpb25zOiBbXHJcbiAgICAge1xyXG4gICAgICBsYWJlbDogdGhpcy50cmFuc2xhdGUuaW5zdGFudCgnU0FWRV9BTkRfQUREJyksXHJcbiAgICAgIGljb246ICdwaSBwaS1zYXZlJyxcclxuICAgICAgIGFjdGlvbk5hbWU6ICdzYXZlQW5kQWRkJ1xyXG4gICAgfVxyXG4gIF1cclxuICB9LFxyXG4gICB7XHJcbiAgICBpY29uOiAncGkgcGktdGltZXMnLFxyXG4gICAgbGFiZWw6ICdDQU5DRUwnLFxyXG4gICAgdmFyaWFudDogJ3JhaXNlZCcsXHJcbiAgICBzZXZlcml0eTogJ2RhbmdlcicsXHJcbiAgICBzaXplOiAnc21hbGwnLFxyXG4gICAgYWN0aW9uTmFtZTogJ2NhbmNlbCcsXHJcbiAgICB0eXBlOiAnYnV0dG9uJyxcclxuICB9LFxyXG5dO1xyXG5cclxuIEBJbnB1dCgpIHN1cHBvcnRTdWJQYWdlOiBib29sZWFuID0gdHJ1ZTtcclxuXHJcbiBASW5wdXQoKSB0YWJzOiBEZXRhaWxUYWJbXSA9IFtdO1xyXG4gIEBJbnB1dCgpIGJ1bGtBY3Rpb25CdXR0b25zOiBCdXR0b25Db25maWdbXSA9IFtdO1xyXG4gIEBJbnB1dCgpIHNpbmdsZUFjdGlvbkJ1dHRvbnM6IEJ1dHRvbkNvbmZpZ1tdID0gW107XHJcblxyXG4gX3NlbGVjdGVkUm93czogVFtdID0gW107XHJcblxyXG5nZXQgaXNTaW5nbGVJdGVtU2VsZWN0ZWQoKTogYm9vbGVhbiB7XHJcbiAgcmV0dXJuIHRoaXMuX3NlbGVjdGVkUm93cy5sZW5ndGggPT09IDE7XHJcbn1cclxuXHJcbmdldCBpc011bHRpcGxlSXRlbVNlbGVjdGVkKCk6IGJvb2xlYW4ge1xyXG4gIHJldHVybiB0aGlzLl9zZWxlY3RlZFJvd3MubGVuZ3RoID4gMTtcclxufVxyXG5cclxuZ2V0IHNlbGVjdGVkSXRlbXMoKTogVFtdIHtcclxuICByZXR1cm4gdGhpcy5fc2VsZWN0ZWRSb3dzO1xyXG59XHJcblxyXG5cclxuXHJcblxyXG5cclxuQElucHV0KCkgYnJlYWRjcnVtYjogTWVudUl0ZW1bXSB8IHVuZGVmaW5lZDtcclxuXHJcblxyXG5nZXQgYnJlYWRjcnVtYl8oKTogTWVudUl0ZW1bXSB8IHVuZGVmaW5lZCB7XHJcbiAgcmV0dXJuIHRoaXMuYnJlYWRjcnVtYj8ubWFwKHYgPT4gKHtcclxuICAgIC4uLnYsXHJcbiAgICBsYWJlbDogdGhpcy50cmFuc2xhdGUuaW5zdGFudCh2LmxhYmVsID8/ICcnKVxyXG4gIH0pKTtcclxufVxyXG5nZXQgcnRsKCk6IGJvb2xlYW4ge1xyXG4gIHRyeSB7XHJcbiAgICByZXR1cm4gZG9jdW1lbnQ/LmRvY3VtZW50RWxlbWVudD8uZGlyID09PSAncnRsJztcclxuICB9IGNhdGNoIChlcnJvcikge1xyXG4gICAgcmV0dXJuIHRydWU7XHJcbiAgfVxyXG59XHJcblxyXG4gLyoqXHJcbiAgICogTW9kZXMgdG8gY29udHJvbCB3aGF0IHBhcnRzIG9mIHRoZSBjb21wb25lbnQgYXJlIHZpc2libGVcclxuICAgKiAtICdmdWxsJzogVGFibGUgKyBDUlVEIG9wZXJhdGlvbnMgKGRlZmF1bHQpXHJcbiAgICogLSAnZm9ybS1vbmx5JzogT25seSBzaG93IGZvcm0gKGZvciBjcmVhdGUvZWRpdC92aWV3KVxyXG4gICAqIC0gJ3RhYmxlLW9ubHknOiBPbmx5IHNob3cgdGFibGUgKHJlYWQtb25seSBtb2RlKVxyXG4gICAqL1xyXG4gIEBJbnB1dCgpIG1vZGU6ICdmdWxsJyB8ICdmb3JtLW9ubHknIHwgJ3RhYmxlLW9ubHknIHwgJ2RldGFpbCcgPSAnZnVsbCc7XHJcblxyXG4gIC8qKiBGb3JjZSB0aGUgY29tcG9uZW50IHRvIHNob3cgc3BlY2lmaWMgc3RhdGUgKi9cclxuICBASW5wdXQoKSBmb3JjZVN0YXRlOiAnY3JlYXRlJyB8ICdlZGl0JyB8ICd2aWV3JyB8IG51bGwgPSBudWxsO1xyXG5cclxuICAvKiogSGlkZSB0YWJsZSBjb21wbGV0ZWx5IHdoZW4gaW4gZm9ybS1vbmx5IG1vZGUgKi9cclxuICBASW5wdXQoKSBnZXQgaGlkZVRhYmxlKCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuICh0aGlzLm1vZGUgPT09ICdmb3JtLW9ubHknIHx8IHRoaXMubW9kZSA9PT0gJ2RldGFpbCcgfHwgKHRoaXMuZm9yY2VTdGF0ZSAmJiB0aGlzLm1vZGUgIT09ICd0YWJsZS1vbmx5JykgKT8/IGZhbHNlO1xyXG4gIH1cclxuXHJcbiAgLyoqIEF1dG8tc2hvdyBmb3JtIHdoZW4gaW4gZm9ybS1vbmx5IG1vZGUgd2l0aCBmb3JjZVN0YXRlICovXHJcbiAgQElucHV0KCkgZ2V0IGF1dG9TaG93Rm9ybSgpOiBib29sZWFuIHtcclxuICAgIHJldHVybiB0aGlzLm1vZGUgPT09ICdmb3JtLW9ubHknICYmICEhdGhpcy5mb3JjZVN0YXRlO1xyXG4gIH1cclxuLy/ZhNiq2LrZitmK2LEg2YTZiNmGINi12YEg2YXYudmK2ZHZhlxyXG4gIEBJbnB1dCgpIHJvd1N0eWxlRm4/OiAocm93OiBUKSA9PiBhbnk7XHJcblxyXG4gIC8vIOKchSDZhNiq2LnZitmK2YYg2YPZhNin2LMgQ1NTINij2YggVGFpbHdpbmQg2LnZhNmJINin2YTYtdmBXHJcbiAgQElucHV0KCkgcm93Q2xhc3NGbj86IChyb3c6IFQpID0+IHN0cmluZyB8IHN0cmluZ1tdIHwgU2V0PHN0cmluZz47XHJcblxyXG4gIC8v2KLYrtixINmE2KrYrNmF2YrYryAvINiq2LnYt9mK2YQgY2hlY2tib3gg2KfZhNin2K7YqtmK2KfYsVxyXG4gIEBJbnB1dCgpIGRpc2FibGVSb3dDaGVja2JveEZuPzogKHJvdzogVCkgPT4gYm9vbGVhbjtcclxuIHRhYmxlQ2xhc3MgPSAnaC1mdWxsIGZsZXgtMSBmbGV4IGZsZXgtY29sIG92ZXJmbG93LWhpZGRlbiBib3JkZXIgYm9yZGVyLXN1cmZhY2Ugcm91bmRlZC0yeGwgeHM6cm91bmRlZC0yeGwgcC00IGJnLXdoaXRlJztcclxuXHJcbiBwcml2YXRlIHJvdXRlID0gaW5qZWN0KEFjdGl2YXRlZFJvdXRlKTtcclxucHJpdmF0ZSByb3V0ZXIgPSBpbmplY3QoUm91dGVyKTtcclxuY3VycmVudElkPzogc3RyaW5nIHwgbnVtYmVyO1xyXG5cclxuICBuZ09uSW5pdCgpIHtcclxuICAgIGlmKHRoaXMuYXBpTmFtZSAmJiB0aGlzLmFwaU5hbWUgIT0gJycpe1xyXG4gICAgICB0aGlzLnNlcnZpY2UuYXBpTmFtZSA9IHRoaXMuYXBpTmFtZSA7XHJcbiAgICB9XHJcbiAgICAgaWYgKHRoaXMuYXBpTmFtZSkge1xyXG4gICAgdGhpcy5zZXJ2aWNlLmFwaU5hbWUgPSB0aGlzLmFwaU5hbWU7XHJcbiAgfVxyXG5cclxuICBpZih0aGlzLnRhYnMubGVuZ3RoID09IDApe1xyXG4gICAgdGhpcy5mb3JtRmllbGRzXyA9IHRoaXMuZm9ybUZpZWxkcztcclxuICAgIHRoaXMudGFicy5wdXNoKHsgaGVhZGVyOiAn2KfZhNiq2YHYp9i12YrZhCcsaWNvbjoncGkgcGktaW5mby1jaXJjbGUnLCBmaWVsZHM6IHRoaXMuZm9ybUZpZWxkc18sIG1vZGVsOiB0aGlzLm1vZGVsIH0pO1xyXG4gIH1cclxuIGlmICh0aGlzLnN1cHBvcnRTdWJQYWdlKSB7XHJcbiAgdGhpcy5yb3V0ZS5wYXJhbU1hcC5zdWJzY3JpYmUocGFyYW1zID0+IHtcclxuICAgIGNvbnN0IGlkID0gcGFyYW1zLmdldCh0aGlzLmlkRmllbGQpO1xyXG4gICAgaWYgKGlkICYmIGlkICE9PSAnbmV3JyAmJiBpZCAhPT0gJ2NyZWF0ZScgJiYgaWQgIT09ICdhZGQnKSB7XHJcbiAgICAgIHRoaXMuY3VycmVudElkID0gaWQ7XHJcbiAgICAgIHRoaXMubW9kZSA9ICdkZXRhaWwnO1xyXG4gICAgICB0aGlzLmxvYWREZXRhaWwoaWQpO1xyXG4gICAgfSBlbHNlIGlmIChpZCA9PSAnbmV3JyB8fCBpZCA9PSAnY3JlYXRlJyB8fCBpZCA9PSAnYWRkJykge1xyXG4gICAgICB0aGlzLm1vZGUgPSAnZGV0YWlsJztcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuY3VycmVudElkID0gdW5kZWZpbmVkO1xyXG4gICAgfVxyXG4gIH0pO1xyXG59XHJcbiAgfVxyXG5cclxuICAgLy8gMy4gSGFuZGxlIEhlYWRlcidzIFBhZ2luYXRlIENoYW5nZSBFdmVudFxyXG4gIG9uSGVhZGVyUGFnaW5hdGVDaGFuZ2UoZXZlbnQ6IHsgZmlyc3Q6IG51bWJlcjsgcm93czogbnVtYmVyIH0pIHtcclxuICAgIHRoaXMuZmlyc3QgPSBldmVudC5maXJzdDsgLy8gVXBkYXRlIHRoZSAnZmlyc3QnIGluZGV4XHJcbiAgICB0aGlzLnJvd3MgPSBldmVudC5yb3dzO1xyXG5cclxuXHJcbiAgICAgICBjb25zdCBsYXp5TG9hZEV2ZW50OiBUYWJsZUxhenlMb2FkRXZlbnQgPSB7XHJcbiAgICAgICAgZmlyc3Q6IHRoaXMuZmlyc3QsXHJcbiAgICAgICAgcm93czogdGhpcy5yb3dzLFxyXG4gICAgICAgIC8vIFlvdSdkIHR5cGljYWxseSBpbmNsdWRlIGN1cnJlbnQgc29ydGluZyBhbmQgZmlsdGVyaW5nIHN0YXRlIGhlcmVcclxuICAgICAgICBzb3J0RmllbGQ6IHRoaXMuc29ydEZpZWxkLFxyXG4gICAgICAgIHNvcnRPcmRlcjogMSxcclxuICAgICAgICBmaWx0ZXJzOiB0aGlzLmZpbHRlcnMgLFxyXG4gICAgICAgIGdsb2JhbEZpbHRlcjogbnVsbCwgLy8gb3IgeW91ciBjdXJyZW50IGdsb2JhbCBmaWx0ZXIgdmFsdWVcclxuICAgIH07XHJcbiAgICB0aGlzLm9uTGF6eUxvYWQobGF6eUxvYWRFdmVudCk7XHJcbiAgfVxyXG4gIGxvYWREZXRhaWwoaWQ6IHN0cmluZyB8IG51bWJlcikge1xyXG4gIHRoaXMuc2VydmljZS5nZXQoaWQgYXMgYW55KS5zdWJzY3JpYmUoe1xyXG4gICAgbmV4dDogcmVzID0+IHtcclxuICAgICAgdGhpcy5tb2RlbCA9IHJlcztcclxuICAgIH1cclxuICB9KTtcclxufVxyXG5cclxuLy8gSGVscGVyIG1ldGhvZCB0byBvcGVuIGZvcm0gcHJvZ3JhbW1hdGljYWxseVxyXG5vcGVuRm9ybShtb2RlOiAnY3JlYXRlJyB8ICdlZGl0JyB8ICd2aWV3JywgbW9kZWw/OiBhbnkpIHtcclxuICB0aGlzLmRpYWxvZy5vcGVuRm9ybShtb2RlLG1vZGVsKTtcclxufVxyXG5cclxuXHJcbi8vICBwcml2YXRlIGRlc3Ryb3kkID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcclxuIC8qKiDYp9mE2KLZhiDZitiq2YTZgtmR2YkgcGFnaW5hdGlvbiArIHNvcnQg2YHZiiDYrdiv2Ksg2YjYp9it2K8gKi9cclxub25MYXp5TG9hZChldmVudDogVGFibGVMYXp5TG9hZEV2ZW50KSB7XHJcbiAgLy8gdGhpcy5tb2RlbF89IHRoaXMubW9kZWwgPz8ge307XHJcblxyXG4gIHRoaXMubW9kZWw9IHRoaXMubW9kZWwgPz8ge307XHJcblxyXG4gIHRoaXMuZm9ybUZpZWxkc18gPSB0aGlzLmZvcm1GaWVsZHM7XHJcbiAgY29uc3QgZmlyc3QgICAgID0gZXZlbnQuZmlyc3QgID8/IHRoaXMuZmlyc3Q7XHJcbiAgY29uc3Qgcm93cyAgICAgID0gZXZlbnQucm93cyAgID8/IHRoaXMucm93cztcclxuICBjb25zdCBzb3J0RmllbGQgPSB0eXBlb2YgZXZlbnQuc29ydEZpZWxkID09PSAnc3RyaW5nJ1xyXG4gICAgICAgICAgICAgICAgICAgID8gZXZlbnQuc29ydEZpZWxkXHJcbiAgICAgICAgICAgICAgICAgICAgOiB0aGlzLnNvcnRGaWVsZDtcclxuICBjb25zdCBzb3J0T3JkZXIgPSBldmVudC5zb3J0T3JkZXIgPT09IC0xID8gLTEgOiAxO1xyXG5cclxuXHJcbiAgY29uc3QgZmlsdGVyczogUmVjb3JkPHN0cmluZywgYW55PiA9IHt9O1xyXG4gICAgaWYgKGV2ZW50LmZpbHRlcnMpIHtcclxuICAgICAgT2JqZWN0LmVudHJpZXMoZXZlbnQuZmlsdGVycykuZm9yRWFjaCgoW2ZpZWxkLCBtZXRhXSkgPT4ge1xyXG4gICAgICAgIGNvbnN0IHZhbHVlID0gKG1ldGEgYXMgYW55KS52YWx1ZTtcclxuICAgICAgICBpZiAodmFsdWUgIT0gbnVsbCAmJiB2YWx1ZSAhPT0gJycpIHtcclxuICAgICAgICAgIGZpbHRlcnNbZmllbGRdID0gdmFsdWU7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICB2YXIgcXVlcnlTdHJpbmcgPSAnJztcclxuICAgIC8vIERlZmF1bHQgcXVlcnlcclxuICBpZighZmlsdGVyc1sncXVlcnknXSl7XHJcbiAgICAgICAvLyBVc2UgdGhlIG5ldyBRdWVyeUJ1aWxkZXJTZXJ2aWNlIG1ldGhvZHNcclxuICAgIGNvbnN0IG9kYXRhUGFyYW1zID0gdGhpcy5xdWVyeUJ1aWxkZXIuYnVpbGRPRGF0YUZyb21RdWVyeU1vZGVsKHRoaXMuZmlsdGVyTW9kZWwsIHRoaXMuZm9ybUZpZWxkc18pO1xyXG4gICAgLy8gdGhpcy5vZGF0YVNlYXJjaC5lbWl0KG9kYXRhUGFyYW1zKTtcclxuXHJcbiAgICAvLyBHZW5lcmF0ZSBxdWVyeSBzdHJpbmcgdXNpbmcgdGhlIHVuaWZpZWQgbWV0aG9kXHJcbiAgICAgcXVlcnlTdHJpbmcgPSB0aGlzLnF1ZXJ5QnVpbGRlci50b09EYXRhUXVlcnlTdHJpbmcob2RhdGFQYXJhbXMpO1xyXG4gICAgLy8gY29uc29sZS5sb2coJ09EYXRhIFF1ZXJ5IFN0cmluZzonLCBxdWVyeVN0cmluZyk7XHJcblxyXG5cclxuICB9XHJcblxyXG4gIHRoaXMuZmlyc3QgICAgID0gZmlyc3Q7XHJcbiAgdGhpcy5yb3dzICAgICAgPSByb3dzO1xyXG4gIHRoaXMuc29ydEZpZWxkID0gc29ydEZpZWxkO1xyXG4gIHRoaXMuc29ydE9yZGVyID0gc29ydE9yZGVyIGFzIDF8IC0xO1xyXG5jb25zdCBkaXIgPSBzb3J0T3JkZXIgPT09IDEgPyAnYXNjJyA6ICdkZXNjJztcclxuIGNvbnN0IHNvcnQgPSBzb3J0RmllbGQgPyBgJHtzb3J0RmllbGR9ICR7ZGlyfWAgOiB1bmRlZmluZWQ7XHJcblxyXG4gIC8vIHRoaXMucGFnZUNoYW5nZS5lbWl0KHsgZmlyc3QsIHJvd3MgLHNvcnQsIGZpbHRlcnMgfSk7XHJcbiAgIHRoaXMuYXBwbHlTZWFyY2goXHJcbiAgICAgIHtcclxuICAgICAgICBmaWx0ZXI6dGhpcy5tb2RlbFsnZmlsdGVyJ10sXHJcbiAgICAgICAgcXVlcnk6cXVlcnlTdHJpbmcsXHJcbiAgICAgICAgc29ydGluZzpzb3J0LFxyXG4gICAgICAgIHNraXBDb3VudDpmaXJzdCxcclxuICAgICAgICBtYXhSZXN1bHRDb3VudDpyb3dzLFxyXG5cclxuICAgIH1cclxuICApO1xyXG5cclxuXHJcbiAgLy8g2YrYqNmG2Yog2KfZhNmG2LUg2YjYpdix2LPYp9mE2YdcclxuXHJcbn1cclxuXHJcblxyXG4gIC8qKiDYqti12YrZitixINin2YTYqNmK2KfZhtin2Kog2K3Ys9ioINin2YTYtdmB2K3YqSAqL1xyXG4gIGdldCBwYWdlZERhdGEoKTogVFtdIHtcclxuICAgIC8vIHJldHVybiB0aGlzLmRhdGEgPyB0aGlzLmRhdGEuc2xpY2UodGhpcy5maXJzdCwgdGhpcy5maXJzdCArIHRoaXMucm93cykgOiBbXTtcclxuXHJcbiAgICByZXR1cm4gdGhpcy5kYXRhO1xyXG4gIH1cclxuXHJcblxyXG5cclxuZ2V0IGdsb2JhbEZpbHRlckZpZWxkcygpOiBzdHJpbmdbXSB7XHJcbiAgcmV0dXJuIHRoaXMuY29sdW1ucy5tYXAoYyA9PiBTdHJpbmcoYy5rZXkpKTtcclxufVxyXG5cclxuXHJcblxyXG5cclxuXHJcbiAgLyoqINij2LHYs9mEINil2YTZiSDYp9mE2KPYqCDZhNij2KrZhdiq2Kkg2LTZg9mEINin2YTYqNit2Ksg2KXYsNinINmK2K3Yqtin2KwgKi9cclxuLy8gZnJvbSBnZW5lcmljLWNydWQtdGFibGUuY29tcG9uZW50LnRzXHJcbi8qKiDYqNiv2ZHZhCBhcHBseVNlYXJjaCDZhNiq2KjYqyBwYWdlQ2hhbmdlINmF2KjYp9i02LHYqdmLICovXHJcbnJlc2V0UGFnZShmaWx0ZXJzOiBhbnkpIHtcclxuICAgIC8vIHRoaXMuZ2VuZXJpY1RhYmxlLmFwcGx5RmlsdGVyKGdsb2JhbCk7XHJcbiAgICB0aGlzLmZpcnN0ID0gMDtcclxuICAgIHRoaXMucm93cyA9IDEwO1xyXG4gIH1cclxuLyoqINio2K/ZkdmEIGFwcGx5U2VhcmNoINmE2KrYqNirIHBhZ2VDaGFuZ2Ug2YXYqNin2LTYsdip2YsgKi9cclxuIGFwcGx5U2VhcmNoKGZpbHRlcnM6IGFueSkge1xyXG4gICAgLy8gdGhpcy5nZW5lcmljVGFibGUuYXBwbHlGaWx0ZXIoZ2xvYmFsKTtcclxuICAgICAgdGhpcy5vblNlYXJjaC5lbWl0KGZpbHRlcnMpO1xyXG4gIH1cclxuXHJcblxyXG4gLyoqINiv2KfZhNipINiq2YbZgdmR2LAg2LnZhtivINin2YTZhtmC2LEg2LnZhNmJINi12YEgKi9cclxuICBvblJvd0NsaWNrKHJvdzogVCkge1xyXG4gICAgaWYgKHRoaXMucm93U2VsZWN0YWJsZSkge1xyXG4gICAgICB0aGlzLnJvd1NlbGVjdC5lbWl0KHJvdyk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuXHJcblxyXG5vblN1Ym1pdCgpIHtcclxuIGlmICh0aGlzLm1vZGUgIT0gJ2Zvcm0tb25seScpIHtcclxuXHJcbiAgICAgICAgICB0aGlzLmFwcGx5U2VhcmNoKCcnKTtcclxuICAgICAgICB9XHJcbn1cclxuXHJcbiAgICAgdHJhY2tCeUlkeChpbmRleDogbnVtYmVyLCBpdGVtOiBhbnkpOiBudW1iZXIge1xyXG4gIHJldHVybiBpbmRleDtcclxuIH1cclxuXHJcbm9uU2luZ2xlSXRlbUFjdGlvbihidG46IEJ1dHRvbkNvbmZpZyk6IHZvaWQge1xyXG4gIGlmICghdGhpcy5pc1NpbmdsZUl0ZW1TZWxlY3RlZCkgcmV0dXJuO1xyXG5cclxuICBjb25zdCBzZWxlY3RlZEl0ZW0gPSB0aGlzLl9zZWxlY3RlZFJvd3NbMF07XHJcbiAgdGhpcy5zaW5nbGVBY3Rpb24uZW1pdCh7XHJcbiAgICBuYW1lOiBidG4uYWN0aW9uTmFtZSA/PyAnc2luZ2xlQWN0aW9uJyxcclxuICAgIGl0ZW06IHNlbGVjdGVkSXRlbVxyXG4gIH0pO1xyXG59XHJcblxyXG5vbkludGVybmFsQnVsa0FjdGlvbihidG46IEJ1dHRvbkNvbmZpZyk6IHZvaWQge1xyXG4gIGlmICghdGhpcy5pc011bHRpcGxlSXRlbVNlbGVjdGVkKSByZXR1cm47XHJcblxyXG4gIHRoaXMuYnVsa0FjdGlvbi5lbWl0KHtcclxuICAgIG5hbWU6IGJ0bi5hY3Rpb25OYW1lID8/ICdidWxrQWN0aW9uJyxcclxuICAgIGl0ZW1zOiBbLi4udGhpcy5fc2VsZWN0ZWRSb3dzXSAgLy8g2YbYsdiz2YQg2YbYs9iu2Kkg2YXZhiDYp9mE2YXYtdmB2YjZgdipXHJcbiAgfSk7XHJcbn1cclxuXHJcblxyXG59XHJcbiIsIjxkaXZcclxuICBbY2xhc3NdPVwibW9kZSAhPT0gJ2Zvcm0tb25seScgJiYgbW9kZSAhPT0gJ2RldGFpbCcgID8gdGFibGVDbGFzcyA6ICcnXCJcclxuPlxyXG4gPGFwcC1nZW5lcmljLWNydWQtaGVhZGVyXHJcbiAgW21vZGVdPVwibW9kZVwiXHJcbiAgW2JyZWFkY3J1bWJdPVwiYnJlYWRjcnVtYl9cIlxyXG4gIFtpc1NpbmdsZUl0ZW1TZWxlY3RlZF09XCJpc1NpbmdsZUl0ZW1TZWxlY3RlZFwiXHJcbiAgW3NlbGVjdGVkSXRlbXNdPVwiX3NlbGVjdGVkUm93c1wiXHJcbiAgW3NpbmdsZUFjdGlvbkJ1dHRvbnNdPVwic2luZ2xlQWN0aW9uQnV0dG9uc1wiXHJcbiAgW2J1bGtBY3Rpb25CdXR0b25zXT1cImJ1bGtBY3Rpb25CdXR0b25zXCJcclxuICBbYWRkQnV0dG9uQ29uZmlnc109XCJhZGRCdXR0b25Db25maWdzXCJcclxuICBbYXBpTmFtZV09XCJzZXJ2aWNlLmFwaU5hbWVcIlxyXG4gIFtmaWx0ZXJzXT1cImZpbHRlcnNcIlxyXG4gIFtmaWx0ZXJNb2RlbF09XCJmaWx0ZXJNb2RlbFwiXHJcbiAgW3Nob3dTZWFyY2hdPVwic2hvd1NlYXJjaFwiXHJcbiAgKHNpbmdsZUl0ZW1BY3Rpb24pPVwib25TaW5nbGVJdGVtQWN0aW9uKCRldmVudClcIlxyXG4gIChidWxrQWN0aW9uKT1cIm9uSW50ZXJuYWxCdWxrQWN0aW9uKCRldmVudClcIlxyXG4gIChhY3Rpb24pPVwiYWN0aW9uLmVtaXQoJGV2ZW50KVwiXHJcbiAgKHNlYXJjaCk9XCJyZXNldFBhZ2UoJGV2ZW50KTthcHBseVNlYXJjaCgkZXZlbnQpO1wiXHJcbiAgKHJlc2V0U2VhcmNoKT1cInJlc2V0UGFnZSgkZXZlbnQpO2FwcGx5U2VhcmNoKCcnKTtcIlxyXG4gIChwYWdpbmF0ZUNoYW5nZSk9XCJvbkhlYWRlclBhZ2luYXRlQ2hhbmdlKCRldmVudClcIlxyXG4gIFtmaXJzdF09XCJmaXJzdFwiXHJcbiAgW3Jvd3NdPVwicm93c1wiXHJcbiAgW3RvdGFsUmVjb3Jkc109XCJ0b3RhbFJlY29yZHNcIlxyXG4vPlxyXG5cclxuICAgQGlmICghaGlkZVRhYmxlKSB7XHJcbiAgPGxpYi1nZW5lcmljLXRhYmxlXHJcbiAgICBbZGF0YV09XCJkYXRhXCJcclxuICAgIFtjb2x1bW5zXT1cImNvbHVtbnNcIlxyXG4gICAgW3BhZ2luYXRvcl09XCJwYWdpbmF0b3JcIlxyXG4gICAgW2xvYWRpbmddPVwibG9hZGluZ1wiXHJcbiAgICBbYWN0aW9uc109XCJhY3Rpb25zXCJcclxuICAgIFthY3Rpb25zTW9kZV09XCJhY3Rpb25zTW9kZVwiXHJcbiAgICBbZmlyc3RdPVwiZmlyc3RcIlxyXG4gICAgW3Jvd3NdPVwicm93c1wiXHJcbiAgICBbdG90YWxSZWNvcmRzXT1cInRvdGFsUmVjb3Jkc1wiXHJcbiAgICBbc29ydEZpZWxkXT1cInNvcnRGaWVsZFwiXHJcbiAgICBbc29ydE9yZGVyXT1cInNvcnRPcmRlclwiXHJcbiAgICBbYWRkQnV0dG9uQ29uZmlnc109XCJhZGRCdXR0b25Db25maWdzXCJcclxuICAgIFtnbG9iYWxGaWx0ZXJGaWVsZHNdPVwiZ2xvYmFsRmlsdGVyRmllbGRzXCJcclxuICAgIFtzY3JvbGxIZWlnaHRdPVwic2Nyb2xsSGVpZ2h0XCJcclxuICAgIFtzaG93Um93U2VsZWN0aW9uQ2hlY2tib3hdPVwic2hvd1Jvd1NlbGVjdGlvbkNoZWNrYm94XCJcclxuICAgIChhY3Rpb24pPVwiYWN0aW9uLmVtaXQoJGV2ZW50KVwiXHJcbiAgICAob25BZGROZXcpPVwiYWN0aW9uLmVtaXQoeyBuYW1lOiAnYWRkJywgcm93OiBudWxsISB9KVwiXHJcbiAgICAocGFnZUNoYW5nZSk9XCJvbkxhenlMb2FkKCRldmVudClcIlxyXG4gICAgW3Jvd1NlbGVjdGFibGVdPVwicm93U2VsZWN0YWJsZVwiXHJcbiAgICAocm93U2VsZWN0KT1cIm9uUm93Q2xpY2soJGV2ZW50KVwiXHJcbiAgICBbKHNlbGVjdGlvbildPVwiX3NlbGVjdGVkUm93c1wiXHJcbiAgICAjZ2VuZXJpY1RhYmxlXHJcbiAgPjwvbGliLWdlbmVyaWMtdGFibGU+XHJcblxyXG4gIH1cclxuXHJcbiAgPGFwcC1nZW5lcmljLWRpYWxvZ1xyXG4gICAgI2RpYWxvZ1xyXG4gICAgIFtzZXJ2aWNlXT1cInNlcnZpY2VcIlxyXG4gICBbYXBpTmFtZV09XCJzZXJ2aWNlLmFwaU5hbWVcIlxyXG4gICAgW2Zvcm1GaWVsZHNdPVwiZm9ybUZpZWxkc1wiXHJcbiAgICBbbW9kZWxdPVwibW9kZWxcIlxyXG4gICAgW2FwaU5hbWVdPVwiYXBpTmFtZVwiXHJcbiAgICBbaWRGaWVsZF09XCJpZEZpZWxkXCJcclxuICAgIFtkaWFsb2dNYXhXaWR0aF09XCJkaWFsb2dNYXhXaWR0aFwiXHJcbiAgICBbZGlzcGxheU1vZGVdPVwiZGlzcGxheU1vZGVcIlxyXG4gICAgW21vZGVdPVwibW9kZVwiXHJcbiAgICBbZm9yY2VTdGF0ZV09XCJmb3JjZVN0YXRlXCJcclxuICAgIFtkcmF3ZXJWaXNpYmxlXT1cImRyYXdlclZpc2libGVcIlxyXG4gICAgW2RpYWxvZ1Zpc2libGVdPVwiZGlhbG9nVmlzaWJsZVwiXHJcbiAgICBbaXNWaWV3TW9kZV09XCJpc1ZpZXdNb2RlXCJcclxuICAgIFtpc0VkaXRNb2RlXT1cImlzRWRpdE1vZGVcIlxyXG4gICAgW3VzZUNvbmZpcm1PblNhdmVdPVwidXNlQ29uZmlybU9uU2F2ZVwiXHJcbiAgICBbbG9hZGluZ109XCJsb2FkaW5nXCJcclxuICAgIFtlcnJvck1zZ109XCJlcnJvck1zZ1wiXHJcbiAgICBbZXJyb3JNZXNzYWdlXT1cImVycm9yTWVzc2FnZVwiXHJcbiAgICBbYmVmb3JlU2F2ZVRyYW5zZm9ybV09XCJiZWZvcmVTYXZlVHJhbnNmb3JtXCJcclxuICAgIChhY3Rpb24pPVwiYWN0aW9uLmVtaXQoJGV2ZW50KVwiXHJcbiAgICAoYWZ0ZXJTYXZlKT1cImFmdGVyU2F2ZS5lbWl0KCRldmVudCk7b25TdWJtaXQoKTtcIlxyXG4gICAgKGFmdGVyRGVsZXRlKT1cImFmdGVyRGVsZXRlLmVtaXQoJGV2ZW50KVwiXHJcbiAgICAoYmVmb3JlU2F2ZSk9XCJiZWZvcmVTYXZlLmVtaXQoJGV2ZW50KVwiXHJcbiAgICAoYmVmb3JlRGVsZXRlKT1cImJlZm9yZURlbGV0ZS5lbWl0KCRldmVudClcIlxyXG4gICAgKGZvcm1DYW5jZWwpPVwiZm9ybUNhbmNlbC5lbWl0KClcIlxyXG4gICAgKGZvcm1Jbml0KT1cImZvcm1Jbml0LmVtaXQoJGV2ZW50KVwiXHJcbiAgICAoZGF0YUxvYWRlZCk9XCJkYXRhTG9hZGVkLmVtaXQoJGV2ZW50KVwiXHJcbiAgICAoc2VsZWN0aW9uQ2hhbmdlKT1cInNlbGVjdGlvbkNoYW5nZS5lbWl0KCRldmVudClcIlxyXG4gICAgKGVycm9yKT1cImVycm9yLmVtaXQoJGV2ZW50KVwiXHJcbiAgICAodmlzaWJsZUNoYW5nZSk9XCJ2aXNpYmxlQ2hhbmdlLmVtaXQoJGV2ZW50KVwiXHJcbiAgPlxyXG4gIDwvYXBwLWdlbmVyaWMtZGlhbG9nPlxyXG5cclxuICAgPGFwcC1kZXRhaWwtdmlld1xyXG4gICAgW2Rpc3BsYXlNb2RlXT1cImRpc3BsYXlNb2RlXCJcclxuICAgIFttb2RlXT1cIm1vZGVcIlxyXG4gICAgW3RpdGxlXT1cImJyZWFkY3J1bWJfPy5bMF0/LmxhYmVsIHx8ICdEZXRhaWwnXCJcclxuICAgICBbc2VydmljZV09XCJzZXJ2aWNlXCJcclxuICAgW2FwaU5hbWVdPVwic2VydmljZS5hcGlOYW1lXCJcclxuICAgIFthcGlOYW1lXT1cImFwaU5hbWVcIlxyXG4gICAgW2lkRmllbGRdPVwiaWRGaWVsZFwiXHJcbiAgICBbYWN0aW9uc109XCJhY3Rpb25zXCJcclxuICAgIFtmb3JtRmllbGRzXT1cImZvcm1GaWVsZHNcIlxyXG4gICAgW21vZGVsXT1cIm1vZGVsXCJcclxuICAgIFt0YWJzXT1cInRhYnNcIlxyXG4gICAgW2xvYWRpbmddPVwibG9hZGluZ1wiXHJcbiAgICBbYnJlYWRjcnVtYl09XCJicmVhZGNydW1iX1wiXHJcbiAgICBbY3JlYXRlRWRpdEFjdGlvbnNdPVwiY3JlYXRlRWRpdEFjdGlvbnNcIlxyXG4gICAgIChhY3Rpb24pPVwiYWN0aW9uLmVtaXQoJGV2ZW50KVwiXHJcbiAgICA+XHJcbiAgPC9hcHAtZGV0YWlsLXZpZXc+XHJcblxyXG48L2Rpdj5cclxuIl19","/**\n * Generated bundle index. Do not edit.\n */\nexport * from './index';\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWxpdGUuZnJhbWV3b3JrLW5nLnVpLmNvcmUtZ2VuZXJpYy1jcnVkLXRhYmxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGlicy9uZy51aS5jb3JlL2dlbmVyaWMtY3J1ZC10YWJsZS9zcmMvZWxpdGUuZnJhbWV3b3JrLW5nLnVpLmNvcmUtZ2VuZXJpYy1jcnVkLXRhYmxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsY0FBYyxTQUFTLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEdlbmVyYXRlZCBidW5kbGUgaW5kZXguIERvIG5vdCBlZGl0LlxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vaW5kZXgnO1xuIl19"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"elite.framework-ng.ui.core-generic-crud-table.mjs","sources":["../tmp-esm2022/generic-crud-table/lib/generic-crud-table-module.js","../tmp-esm2022/generic-crud-table/lib/generic-crud-header.js","../tmp-esm2022/generic-crud-table/lib/generic-crud-table.js","../tmp-esm2022/generic-crud-table/elite.framework-ng.ui.core-generic-crud-table.js"],"sourcesContent":["import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { GenericButtonModule } from '@elite.framework/ng.ui.core/generic-button';\nimport * as i0 from \"@angular/core\";\nexport class GenericCrudTableModule {\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: GenericCrudTableModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });\n static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"14.0.0\", version: \"20.1.8\", ngImport: i0, type: GenericCrudTableModule, imports: [CommonModule, GenericButtonModule] });\n static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: GenericCrudTableModule, imports: [CommonModule, GenericButtonModule] });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: GenericCrudTableModule, decorators: [{\n type: NgModule,\n args: [{\n imports: [CommonModule, GenericButtonModule],\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2VuZXJpYy1jcnVkLXRhYmxlLW1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvbmcudWkuY29yZS9nZW5lcmljLWNydWQtdGFibGUvc3JjL2xpYi9nZW5lcmljLWNydWQtdGFibGUtbW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLDRDQUE0QyxDQUFDOztBQUtqRixNQUFNLE9BQU8sc0JBQXNCO3VHQUF0QixzQkFBc0I7d0dBQXRCLHNCQUFzQixZQUZ2QixZQUFZLEVBQUMsbUJBQW1CO3dHQUUvQixzQkFBc0IsWUFGdkIsWUFBWSxFQUFDLG1CQUFtQjs7MkZBRS9CLHNCQUFzQjtrQkFIbEMsUUFBUTttQkFBQztvQkFDUixPQUFPLEVBQUUsQ0FBQyxZQUFZLEVBQUMsbUJBQW1CLENBQUM7aUJBQzVDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBHZW5lcmljQnV0dG9uTW9kdWxlIH0gZnJvbSAnQGVsaXRlLmZyYW1ld29yay9uZy51aS5jb3JlL2dlbmVyaWMtYnV0dG9uJztcblxuQE5nTW9kdWxlKHtcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSxHZW5lcmljQnV0dG9uTW9kdWxlXSxcbn0pXG5leHBvcnQgY2xhc3MgR2VuZXJpY0NydWRUYWJsZU1vZHVsZSB7fVxuIl19","import { Component, EventEmitter, inject, Input, Output } from '@angular/core';\nimport { GenericButton } from '@elite.framework/ng.ui.core/generic-button';\nimport { TranslatePipe } from '@elite.framework/ng.core/pipes';\nimport { CommonModule } from '@angular/common';\nimport { ButtonModule } from 'primeng/button';\nimport { DividerModule } from 'primeng/divider';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { TooltipModule } from 'primeng/tooltip';\nimport { Menu } from 'primeng/menu';\nimport { DialogService } from 'primeng/dynamicdialog';\nimport { BreadcrumbComponent } from '@elite.framework/ng.ui.core/breadcrumb';\nimport { GenericSearchAdvanced } from '@elite.framework/ng.ui.core/generic-search-advanced';\nimport { GenericReportComponent } from '@elite.framework/ng.ui.core/generic-report';\nimport { LocalizationService } from '@elite.framework/ng.core/services';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"primeng/button\";\nimport * as i2 from \"primeng/divider\";\nimport * as i3 from \"primeng/tooltip\";\nexport class GenericCrudHeaderComponent {\n translate = inject(LocalizationService);\n dialogService = inject(DialogService);\n // 🟢 Inputs\n mode = 'full';\n breadcrumb;\n isSingleItemSelected = false;\n selectedItems = [];\n singleActionButtons = [];\n bulkActionButtons = [];\n addButtonConfigs = [];\n filters;\n filterModel = {};\n showSearch = true;\n first = 0; // Add input for current 'first' index\n rows = 10; // Add input for current 'rows' per page\n totalRecords = 0; // Add input for total records\n apiName = '';\n actions = [\n {\n label: this.translate.instant('REPORT'),\n icon: 'pi pi-file-export',\n command: (e) => {\n this.openReportDialog();\n }\n }\n ];\n // 🟢 Outputs\n singleItemAction = new EventEmitter();\n bulkAction = new EventEmitter();\n search = new EventEmitter();\n resetSearch = new EventEmitter();\n action = new EventEmitter();\n paginateChange = new EventEmitter(); // NEW OUTPUT\n // 🟢 Helpers\n trackByIdx = (index) => index;\n // 🟢 Actions\n onSingleItemAction(btn) {\n this.singleItemAction.emit(btn);\n }\n onInternalBulkAction(btn) {\n this.bulkAction.emit(btn);\n }\n paginationChange(value) {\n this.rows = value.top;\n }\n applySearch(value) {\n this.search.emit(value);\n }\n reset() {\n this.resetSearch.emit();\n }\n // Go to previous page\n // 🟢 Actions (Keep or adapt your existing pagination logic)\n totalPages() {\n if (this.totalRecords === 0 || this.rows === 0)\n return 0;\n return Math.ceil(this.totalRecords / this.rows);\n }\n pageInput = null;\n showPageMenu = false;\n // Get current page number (1-based)\n get currentPage() {\n return Math.floor(this.first / this.rows) + 1;\n }\n // Go to specific page from menu\n goToPageMenu() {\n if (this.pageInput && this.pageInput >= 1 && this.pageInput <= this.totalPages()) {\n const newFirst = (this.pageInput - 1) * this.rows;\n this.paginateChange.emit({ first: newFirst, rows: this.rows });\n this.pageInput = null;\n this.showPageMenu = false; // Close menu after navigation\n }\n }\n // Go to specific page (original method)\n goToPage() {\n this.goToPageMenu(); // Reuse the same logic\n }\n // Go to first page\n goFirst() {\n this.paginateChange.emit({ first: 0, rows: this.rows }); // EMIT EVENT\n }\n // Go to last page\n goLast() {\n const maxFirst = Math.max(0, (this.totalPages() - 1) * this.rows);\n this.paginateChange.emit({ first: maxFirst, rows: this.rows }); // EMIT EVENT\n }\n // Go to previous page\n goPrev() {\n const newFirst = Math.max(this.first - this.rows, 0);\n this.paginateChange.emit({ first: newFirst, rows: this.rows }); // EMIT EVENT\n }\n // Go to next page\n goNext() {\n const maxFirst = Math.max(0, (this.totalPages() - 1) * this.rows);\n const newFirst = Math.min(this.first + this.rows, maxFirst);\n this.paginateChange.emit({ first: newFirst, rows: this.rows }); // EMIT EVENT\n }\n // Check first/last page\n isFirstPage() {\n return this.first === 0;\n }\n isLastPage() {\n return this.first + this.rows >= this.totalRecords;\n }\n // Detect RTL direction\n get isRTL() {\n return document.documentElement.dir === 'rtl' ||\n document.body.dir === 'rtl' ||\n // this.translateService?.currentLang === 'ar' || // if using translation\n false; // default to LTR\n }\n /**\n * Handles button click in a unified way.\n * - If btn.action is defined, execute it.\n * - Otherwise, emit event with actionName or default 'add'.\n */\n async handleButtonClick(btn) {\n try {\n if (btn.action) {\n // Execute the provided action\n await btn.action(null); // You can pass row or context here\n }\n else {\n // Fallback to emitting event\n this.action.emit({\n name: btn.actionName ?? 'add',\n row: null, // provide row if available\n });\n }\n }\n catch (err) {\n console.error('Button action error', err);\n }\n }\n openReportDialog() {\n const ref = this.dialogService.open(GenericReportComponent, {\n header: this.translate.instant('REPORT'),\n showHeader: false,\n width: '90%',\n height: 'auto',\n modal: true,\n focusOnShow: false,\n data: {\n apiName: this.apiName,\n filterFields: this.filters,\n filterModel: { /* status: 'Active' */},\n defaultFileName: this.translate.instant('REPORT') + ' ' + this.translate.instant(this.breadcrumb?.length ? this.breadcrumb[this.breadcrumb.length - 1].label ?? '' : '')\n }\n });\n ref.onClose.subscribe((exportConfig) => {\n if (exportConfig) {\n console.log('Export configuration:', exportConfig);\n // Handle the export - call your API service here\n this.handleExport(exportConfig);\n }\n });\n }\n handleExport(config) {\n // Your export logic here\n // if (config.exportType === 'EXCEL') {\n // this.exportToExcel(config);\n // } else if (config.exportType === 'PDF') {\n // this.exportToPdf(config);\n // }\n // etc.\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: GenericCrudHeaderComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });\n static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.1.8\", type: GenericCrudHeaderComponent, isStandalone: true, selector: \"app-generic-crud-header\", inputs: { mode: \"mode\", breadcrumb: \"breadcrumb\", isSingleItemSelected: \"isSingleItemSelected\", selectedItems: \"selectedItems\", singleActionButtons: \"singleActionButtons\", bulkActionButtons: \"bulkActionButtons\", addButtonConfigs: \"addButtonConfigs\", filters: \"filters\", filterModel: \"filterModel\", showSearch: \"showSearch\", first: \"first\", rows: \"rows\", totalRecords: \"totalRecords\", apiName: \"apiName\", actions: \"actions\" }, outputs: { singleItemAction: \"singleItemAction\", bulkAction: \"bulkAction\", search: \"search\", resetSearch: \"resetSearch\", action: \"action\", paginateChange: \"paginateChange\" }, providers: [DialogService], ngImport: i0, template: \"@if (mode !== 'form-only' && mode !== 'detail') {\\r\\n<div class=\\\"flex items-start gap-2 justify-between\\\">\\r\\n <div>\\r\\n <app-breadcrumb\\r\\n class=\\\"xs:block hidden\\\"\\r\\n [breadcrumb]=\\\"breadcrumb\\\"\\r\\n ></app-breadcrumb>\\r\\n </div>\\r\\n\\r\\n <div class=\\\"flex items-center gap-2 justify-end flex-wrap\\\">\\r\\n @if (mode === 'full') {\\r\\n <!-- \\u0623\\u0632\\u0631\\u0627\\u0631 \\u0627\\u0644\\u0639\\u0646\\u0627\\u0635\\u0631 \\u0627\\u0644\\u0645\\u0641\\u0631\\u062F\\u0629 -->\\r\\n @if (isSingleItemSelected) {\\r\\n @for (btn of singleActionButtons; track trackByIdx($index)) {\\r\\n @if (!btn.visible || (btn.visible && btn.visible === true)) {\\r\\n <lib-generic-button\\r\\n [icon]=\\\"btn.icon\\\"\\r\\n [label]=\\\"btn.label | translate\\\"\\r\\n [variant]=\\\"btn.variant\\\"\\r\\n [size]=\\\"btn.size\\\"\\r\\n [severity]=\\\"btn.severity\\\"\\r\\n [model]=\\\"btn.splitActions\\\"\\r\\n [permission]=\\\"btn.permission\\\"\\r\\n (clicked)=\\\"onSingleItemAction(btn)\\\"\\r\\n ></lib-generic-button>\\r\\n }\\r\\n }\\r\\n }\\r\\n\\r\\n <!-- \\u0623\\u0632\\u0631\\u0627\\u0631 \\u0645\\u062A\\u0639\\u062F\\u062F\\u0629 \\u0627\\u0644\\u0639\\u0646\\u0627\\u0635\\u0631 -->\\r\\n @if (selectedItems.length > 0) {\\r\\n @for (btn of bulkActionButtons; track trackByIdx($index)) {\\r\\n @if (!btn.visible || (btn.visible && btn.visible === true)) {\\r\\n <lib-generic-button\\r\\n [icon]=\\\"btn.icon\\\"\\r\\n [label]=\\\"btn.label | translate\\\"\\r\\n [variant]=\\\"btn.variant\\\"\\r\\n [size]=\\\"btn.size\\\"\\r\\n [severity]=\\\"btn.severity\\\"\\r\\n [model]=\\\"btn.splitActions\\\"\\r\\n [permission]=\\\"btn.permission\\\"\\r\\n (clicked)=\\\"onInternalBulkAction(btn)\\\"\\r\\n ></lib-generic-button>\\r\\n }\\r\\n }\\r\\n }\\r\\n\\r\\n <!-- \\u0623\\u0632\\u0631\\u0627\\u0631 \\u0627\\u0644\\u0625\\u0636\\u0627\\u0641\\u0629 -->\\r\\n @for (btn of addButtonConfigs; track trackByIdx($index)) {\\r\\n @if (!btn.visible || (btn.visible && btn.visible === true)) {\\r\\n <lib-generic-button\\r\\n [icon]=\\\"btn.icon\\\"\\r\\n [label]=\\\"btn.label | translate\\\"\\r\\n [variant]=\\\"btn.variant\\\"\\r\\n [size]=\\\"btn.size\\\"\\r\\n [severity]=\\\"btn.severity\\\"\\r\\n [model]=\\\"btn.splitActions\\\"\\r\\n [permission]=\\\"btn.permission\\\"\\r\\n (clicked)=\\\"handleButtonClick(btn)\\\"\\r\\n ></lib-generic-button>\\r\\n }\\r\\n }\\r\\n }\\r\\n </div>\\r\\n</div>\\r\\n}\\r\\n\\r\\n@if (mode !== 'form-only' && mode !== 'detail') {\\r\\n<div class=\\\"mt-2 mb-4 flex items-center justify-between\\\">\\r\\n <!-- \\u0627\\u0644\\u0628\\u062D\\u062B -->\\r\\n @if (showSearch && filters) {\\r\\n <lib-generic-search-advanced\\r\\n [model]=\\\"filterModel\\\"\\r\\n [fields]=\\\"filters\\\"\\r\\n (search)=\\\"applySearch($event)\\\"\\r\\n (paginationChange)=\\\"paginationChange($event)\\\"\\r\\n >\\r\\n</lib-generic-search-advanced>\\r\\n } @else {\\r\\n <div></div>\\r\\n }\\r\\n\\r\\n <!-- \\u0623\\u062F\\u0648\\u0627\\u062A \\u0625\\u0636\\u0627\\u0641\\u064A\\u0629 -->\\r\\n <div class=\\\"flex items-center gap-3 rtl:space-x-reverse\\\">\\r\\n <!-- Refresh Button -->\\r\\n <p-button\\r\\n icon=\\\"pi pi-refresh\\\"\\r\\n outlined\\r\\n severity=\\\"secondary\\\"\\r\\n class=\\\"hidden xs:block\\\"\\r\\n (onClick)=\\\"reset()\\\"\\r\\n />\\r\\n\\r\\n <p-divider layout=\\\"vertical\\\" class=\\\"m-0 p-0 hidden xs:block\\\" />\\r\\n\\r\\n\\r\\n <p-button (click)=\\\"menu.toggle($event)\\\" class=\\\"xs:block\\\" severity=\\\"secondary\\\" outlined icon=\\\"pi pi-ellipsis-v\\\"/>\\r\\n <p-menu #menu [model]=\\\"actions\\\" [popup]=\\\"true\\\" />\\r\\n <!-- Pagination Controls -->\\r\\n <div class=\\\"flex items-center gap-1 rtl:space-x-reverse\\\">\\r\\n <!-- First Page Button -->\\r\\n <p-button\\r\\n [icon]=\\\"isRTL ? 'pi pi-angle-double-right' : 'pi pi-angle-double-left'\\\"\\r\\n outlined\\r\\n severity=\\\"secondary\\\"\\r\\n class=\\\"hidden xs:block\\\"\\r\\n (click)=\\\"goFirst()\\\"\\r\\n [disabled]=\\\"isFirstPage()\\\"\\r\\n ></p-button>\\r\\n\\r\\n <!-- Previous Page Button -->\\r\\n <p-button\\r\\n [icon]=\\\"isRTL ? 'pi pi-chevron-right' : 'pi pi-chevron-left'\\\"\\r\\n outlined\\r\\n severity=\\\"secondary\\\"\\r\\n class=\\\"xs:block\\\"\\r\\n (click)=\\\"goPrev()\\\"\\r\\n [disabled]=\\\"isFirstPage()\\\"\\r\\n ></p-button>\\r\\n\\r\\n\\r\\n <!-- Current Page Display with Dropdown -->\\r\\n <div class=\\\"relative\\\">\\r\\n\\r\\n <p-button\\r\\n [label]=\\\"currentPage + ' / ' + totalPages()\\\"\\r\\n outlined\\r\\n severity=\\\"secondary\\\"\\r\\n class=\\\"hidden xs:block\\\"\\r\\n (click)=\\\"showPageMenu = !showPageMenu\\\"\\r\\n pTooltip=\\\"{{totalRecords}}\\\"\\r\\n tooltipPosition=\\\"top\\\"\\r\\n />\\r\\n\\r\\n\\r\\n </div>\\r\\n <!-- Next Page Button -->\\r\\n <p-button\\r\\n [icon]=\\\"isRTL ? 'pi pi-chevron-left' : 'pi pi-chevron-right'\\\"\\r\\n outlined\\r\\n severity=\\\"secondary\\\"\\r\\n class=\\\"xs:block\\\"\\r\\n (click)=\\\"goNext()\\\"\\r\\n [disabled]=\\\"isLastPage()\\\"\\r\\n ></p-button>\\r\\n\\r\\n <!-- Last Page Button -->\\r\\n <p-button\\r\\n [icon]=\\\"isRTL ? 'pi pi-angle-double-left' : 'pi pi-angle-double-right'\\\"\\r\\n outlined\\r\\n severity=\\\"secondary\\\"\\r\\n class=\\\"hidden xs:block\\\"\\r\\n (click)=\\\"goLast()\\\"\\r\\n [disabled]=\\\"isLastPage()\\\"\\r\\n ></p-button>\\r\\n </div>\\r\\n </div>\\r\\n</div>\\r\\n}\\r\\n\", dependencies: [{ kind: \"component\", type: GenericButton, selector: \"lib-generic-button\", inputs: [\"model\", \"type\", \"icon\", \"label\", \"variant\", \"severity\", \"size\", \"iconPosition\", \"disabled\", \"loading\", \"ariaLabel\", \"extraClasses\", \"permission\"], outputs: [\"clicked\", \"itemClick\"] }, { kind: \"component\", type: BreadcrumbComponent, selector: \"app-breadcrumb\", inputs: [\"breadcrumb\"] }, { kind: \"ngmodule\", type: CommonModule }, { kind: \"ngmodule\", type: ButtonModule }, { kind: \"component\", type: i1.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: DividerModule }, { kind: \"component\", type: i2.Divider, selector: \"p-divider\", inputs: [\"styleClass\", \"layout\", \"type\", \"align\"] }, { kind: \"ngmodule\", type: FormsModule }, { kind: \"ngmodule\", type: ReactiveFormsModule }, { kind: \"ngmodule\", type: TooltipModule }, { kind: \"directive\", type: i3.Tooltip, selector: \"[pTooltip]\", inputs: [\"tooltipPosition\", \"tooltipEvent\", \"positionStyle\", \"tooltipStyleClass\", \"tooltipZIndex\", \"escape\", \"showDelay\", \"hideDelay\", \"life\", \"positionTop\", \"positionLeft\", \"autoHide\", \"fitContent\", \"hideOnEscape\", \"pTooltip\", \"tooltipDisabled\", \"tooltipOptions\", \"appendTo\"] }, { kind: \"component\", type: Menu, selector: \"p-menu\", inputs: [\"model\", \"popup\", \"style\", \"styleClass\", \"autoZIndex\", \"baseZIndex\", \"showTransitionOptions\", \"hideTransitionOptions\", \"ariaLabel\", \"ariaLabelledBy\", \"id\", \"tabindex\", \"appendTo\"], outputs: [\"onShow\", \"onHide\", \"onBlur\", \"onFocus\"] }, { kind: \"component\", type: GenericSearchAdvanced, selector: \"lib-generic-search-advanced\", inputs: [\"model\", \"fields\", \"enableSelect\", \"enableGroup\", \"odataConfig\"], outputs: [\"search\", \"paginationChange\", \"odataSearch\"] }, { kind: \"pipe\", type: TranslatePipe, name: \"translate\" }] });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: GenericCrudHeaderComponent, decorators: [{\n type: Component,\n args: [{ selector: 'app-generic-crud-header', standalone: true, imports: [\n GenericButton,\n TranslatePipe,\n BreadcrumbComponent,\n CommonModule,\n ButtonModule,\n DividerModule,\n FormsModule,\n ReactiveFormsModule,\n TooltipModule,\n Menu,\n GenericSearchAdvanced\n ], providers: [DialogService], template: \"@if (mode !== 'form-only' && mode !== 'detail') {\\r\\n<div class=\\\"flex items-start gap-2 justify-between\\\">\\r\\n <div>\\r\\n <app-breadcrumb\\r\\n class=\\\"xs:block hidden\\\"\\r\\n [breadcrumb]=\\\"breadcrumb\\\"\\r\\n ></app-breadcrumb>\\r\\n </div>\\r\\n\\r\\n <div class=\\\"flex items-center gap-2 justify-end flex-wrap\\\">\\r\\n @if (mode === 'full') {\\r\\n <!-- \\u0623\\u0632\\u0631\\u0627\\u0631 \\u0627\\u0644\\u0639\\u0646\\u0627\\u0635\\u0631 \\u0627\\u0644\\u0645\\u0641\\u0631\\u062F\\u0629 -->\\r\\n @if (isSingleItemSelected) {\\r\\n @for (btn of singleActionButtons; track trackByIdx($index)) {\\r\\n @if (!btn.visible || (btn.visible && btn.visible === true)) {\\r\\n <lib-generic-button\\r\\n [icon]=\\\"btn.icon\\\"\\r\\n [label]=\\\"btn.label | translate\\\"\\r\\n [variant]=\\\"btn.variant\\\"\\r\\n [size]=\\\"btn.size\\\"\\r\\n [severity]=\\\"btn.severity\\\"\\r\\n [model]=\\\"btn.splitActions\\\"\\r\\n [permission]=\\\"btn.permission\\\"\\r\\n (clicked)=\\\"onSingleItemAction(btn)\\\"\\r\\n ></lib-generic-button>\\r\\n }\\r\\n }\\r\\n }\\r\\n\\r\\n <!-- \\u0623\\u0632\\u0631\\u0627\\u0631 \\u0645\\u062A\\u0639\\u062F\\u062F\\u0629 \\u0627\\u0644\\u0639\\u0646\\u0627\\u0635\\u0631 -->\\r\\n @if (selectedItems.length > 0) {\\r\\n @for (btn of bulkActionButtons; track trackByIdx($index)) {\\r\\n @if (!btn.visible || (btn.visible && btn.visible === true)) {\\r\\n <lib-generic-button\\r\\n [icon]=\\\"btn.icon\\\"\\r\\n [label]=\\\"btn.label | translate\\\"\\r\\n [variant]=\\\"btn.variant\\\"\\r\\n [size]=\\\"btn.size\\\"\\r\\n [severity]=\\\"btn.severity\\\"\\r\\n [model]=\\\"btn.splitActions\\\"\\r\\n [permission]=\\\"btn.permission\\\"\\r\\n (clicked)=\\\"onInternalBulkAction(btn)\\\"\\r\\n ></lib-generic-button>\\r\\n }\\r\\n }\\r\\n }\\r\\n\\r\\n <!-- \\u0623\\u0632\\u0631\\u0627\\u0631 \\u0627\\u0644\\u0625\\u0636\\u0627\\u0641\\u0629 -->\\r\\n @for (btn of addButtonConfigs; track trackByIdx($index)) {\\r\\n @if (!btn.visible || (btn.visible && btn.visible === true)) {\\r\\n <lib-generic-button\\r\\n [icon]=\\\"btn.icon\\\"\\r\\n [label]=\\\"btn.label | translate\\\"\\r\\n [variant]=\\\"btn.variant\\\"\\r\\n [size]=\\\"btn.size\\\"\\r\\n [severity]=\\\"btn.severity\\\"\\r\\n [model]=\\\"btn.splitActions\\\"\\r\\n [permission]=\\\"btn.permission\\\"\\r\\n (clicked)=\\\"handleButtonClick(btn)\\\"\\r\\n ></lib-generic-button>\\r\\n }\\r\\n }\\r\\n }\\r\\n </div>\\r\\n</div>\\r\\n}\\r\\n\\r\\n@if (mode !== 'form-only' && mode !== 'detail') {\\r\\n<div class=\\\"mt-2 mb-4 flex items-center justify-between\\\">\\r\\n <!-- \\u0627\\u0644\\u0628\\u062D\\u062B -->\\r\\n @if (showSearch && filters) {\\r\\n <lib-generic-search-advanced\\r\\n [model]=\\\"filterModel\\\"\\r\\n [fields]=\\\"filters\\\"\\r\\n (search)=\\\"applySearch($event)\\\"\\r\\n (paginationChange)=\\\"paginationChange($event)\\\"\\r\\n >\\r\\n</lib-generic-search-advanced>\\r\\n } @else {\\r\\n <div></div>\\r\\n }\\r\\n\\r\\n <!-- \\u0623\\u062F\\u0648\\u0627\\u062A \\u0625\\u0636\\u0627\\u0641\\u064A\\u0629 -->\\r\\n <div class=\\\"flex items-center gap-3 rtl:space-x-reverse\\\">\\r\\n <!-- Refresh Button -->\\r\\n <p-button\\r\\n icon=\\\"pi pi-refresh\\\"\\r\\n outlined\\r\\n severity=\\\"secondary\\\"\\r\\n class=\\\"hidden xs:block\\\"\\r\\n (onClick)=\\\"reset()\\\"\\r\\n />\\r\\n\\r\\n <p-divider layout=\\\"vertical\\\" class=\\\"m-0 p-0 hidden xs:block\\\" />\\r\\n\\r\\n\\r\\n <p-button (click)=\\\"menu.toggle($event)\\\" class=\\\"xs:block\\\" severity=\\\"secondary\\\" outlined icon=\\\"pi pi-ellipsis-v\\\"/>\\r\\n <p-menu #menu [model]=\\\"actions\\\" [popup]=\\\"true\\\" />\\r\\n <!-- Pagination Controls -->\\r\\n <div class=\\\"flex items-center gap-1 rtl:space-x-reverse\\\">\\r\\n <!-- First Page Button -->\\r\\n <p-button\\r\\n [icon]=\\\"isRTL ? 'pi pi-angle-double-right' : 'pi pi-angle-double-left'\\\"\\r\\n outlined\\r\\n severity=\\\"secondary\\\"\\r\\n class=\\\"hidden xs:block\\\"\\r\\n (click)=\\\"goFirst()\\\"\\r\\n [disabled]=\\\"isFirstPage()\\\"\\r\\n ></p-button>\\r\\n\\r\\n <!-- Previous Page Button -->\\r\\n <p-button\\r\\n [icon]=\\\"isRTL ? 'pi pi-chevron-right' : 'pi pi-chevron-left'\\\"\\r\\n outlined\\r\\n severity=\\\"secondary\\\"\\r\\n class=\\\"xs:block\\\"\\r\\n (click)=\\\"goPrev()\\\"\\r\\n [disabled]=\\\"isFirstPage()\\\"\\r\\n ></p-button>\\r\\n\\r\\n\\r\\n <!-- Current Page Display with Dropdown -->\\r\\n <div class=\\\"relative\\\">\\r\\n\\r\\n <p-button\\r\\n [label]=\\\"currentPage + ' / ' + totalPages()\\\"\\r\\n outlined\\r\\n severity=\\\"secondary\\\"\\r\\n class=\\\"hidden xs:block\\\"\\r\\n (click)=\\\"showPageMenu = !showPageMenu\\\"\\r\\n pTooltip=\\\"{{totalRecords}}\\\"\\r\\n tooltipPosition=\\\"top\\\"\\r\\n />\\r\\n\\r\\n\\r\\n </div>\\r\\n <!-- Next Page Button -->\\r\\n <p-button\\r\\n [icon]=\\\"isRTL ? 'pi pi-chevron-left' : 'pi pi-chevron-right'\\\"\\r\\n outlined\\r\\n severity=\\\"secondary\\\"\\r\\n class=\\\"xs:block\\\"\\r\\n (click)=\\\"goNext()\\\"\\r\\n [disabled]=\\\"isLastPage()\\\"\\r\\n ></p-button>\\r\\n\\r\\n <!-- Last Page Button -->\\r\\n <p-button\\r\\n [icon]=\\\"isRTL ? 'pi pi-angle-double-left' : 'pi pi-angle-double-right'\\\"\\r\\n outlined\\r\\n severity=\\\"secondary\\\"\\r\\n class=\\\"hidden xs:block\\\"\\r\\n (click)=\\\"goLast()\\\"\\r\\n [disabled]=\\\"isLastPage()\\\"\\r\\n ></p-button>\\r\\n </div>\\r\\n </div>\\r\\n</div>\\r\\n}\\r\\n\" }]\n }], propDecorators: { mode: [{\n type: Input\n }], breadcrumb: [{\n type: Input\n }], isSingleItemSelected: [{\n type: Input\n }], selectedItems: [{\n type: Input\n }], singleActionButtons: [{\n type: Input\n }], bulkActionButtons: [{\n type: Input\n }], addButtonConfigs: [{\n type: Input\n }], filters: [{\n type: Input\n }], filterModel: [{\n type: Input\n }], showSearch: [{\n type: Input\n }], first: [{\n type: Input\n }], rows: [{\n type: Input\n }], totalRecords: [{\n type: Input\n }], apiName: [{\n type: Input\n }], actions: [{\n type: Input\n }], singleItemAction: [{\n type: Output\n }], bulkAction: [{\n type: Output\n }], search: [{\n type: Output\n }], resetSearch: [{\n type: Output\n }], action: [{\n type: Output\n }], paginateChange: [{\n type: Output\n }] } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2VuZXJpYy1jcnVkLWhlYWRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvbmcudWkuY29yZS9nZW5lcmljLWNydWQtdGFibGUvc3JjL2xpYi9nZW5lcmljLWNydWQtaGVhZGVyLnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9uZy51aS5jb3JlL2dlbmVyaWMtY3J1ZC10YWJsZS9zcmMvbGliL2dlbmVyaWMtY3J1ZC1oZWFkZXIuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUcvRSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sNENBQTRDLENBQUM7QUFDM0UsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQy9ELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDOUMsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ2hELE9BQU8sRUFBRSxXQUFXLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNsRSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDaEQsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUNwQyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDdEQsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sd0NBQXdDLENBQUM7QUFDN0UsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0scURBQXFELENBQUM7QUFDNUYsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sNENBQTRDLENBQUM7QUFDcEYsT0FBTyxFQUFFLG1C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O3dCQUNiLFdBQVc7d0JBQ1gsbUJBQW1CO3dCQUNuQixhQUFhO3dCQUNiLElBQUk7d0JBQ0oscUJBQXFCO3FCQUN0QixhQUVXLENBQUMsYUFBYSxDQUFDOzhCQVFsQixJQUFJO3NCQUFaLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSztnQkFDRyxvQkFBb0I7c0JBQTVCLEtBQUs7Z0JBQ0csYUFBYTtzQkFBckIsS0FBSztnQkFDRyxtQkFBbUI7c0JBQTNCLEtBQUs7Z0JBQ0csaUJBQWlCO3NCQUF6QixLQUFLO2dCQUNHLGdCQUFnQjtzQkFBeEIsS0FBSztnQkFDRyxPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLO2dCQUNJLEtBQUs7c0JBQWIsS0FBSztnQkFDRSxJQUFJO3NCQUFaLEtBQUs7Z0JBQ0csWUFBWTtzQkFBcEIsS0FBSztnQkFDRyxPQUFPO3NCQUFmLEtBQUs7Z0JBQ0ksT0FBTztzQkFBZixLQUFLO2dCQVlHLGdCQUFnQjtzQkFBekIsTUFBTTtnQkFDRyxVQUFVO3NCQUFuQixNQUFNO2dCQUNHLE1BQU07c0JBQWYsTUFBTTtnQkFDRyxXQUFXO3NCQUFwQixNQUFNO2dCQUNHLE1BQU07c0JBQWYsTUFBTTtnQkFDRSxjQUFjO3NCQUF2QixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIGluamVjdCwgSW5wdXQsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBNZW51SXRlbSB9IGZyb20gJ3ByaW1lbmcvYXBpJztcclxuaW1wb3J0IHsgQnV0dG9uQ29uZmlnIH0gZnJvbSAnQGVsaXRlLmZyYW1ld29yay9uZy5jb3JlL21vZGVscyc7XHJcbmltcG9ydCB7IEdlbmVyaWNCdXR0b24gfSBmcm9tICdAZWxpdGUuZnJhbWV3b3JrL25nLnVpLmNvcmUvZ2VuZXJpYy1idXR0b24nO1xyXG5pbXBvcnQgeyBUcmFuc2xhdGVQaXBlIH0gZnJvbSAnQGVsaXRlLmZyYW1ld29yay9uZy5jb3JlL3BpcGVzJztcclxuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHsgQnV0dG9uTW9kdWxlIH0gZnJvbSAncHJpbWVuZy9idXR0b24nO1xyXG5pbXBvcnQgeyBEaXZpZGVyTW9kdWxlIH0gZnJvbSAncHJpbWVuZy9kaXZpZGVyJztcclxuaW1wb3J0IHsgRm9ybXNNb2R1bGUsIFJlYWN0aXZlRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IFRvb2x0aXBNb2R1bGUgfSBmcm9tICdwcmltZW5nL3Rvb2x0aXAnO1xyXG5pbXBvcnQgeyBNZW51IH0gZnJvbSAncHJpbWVuZy9tZW51JztcclxuaW1wb3J0IHsgRGlhbG9nU2VydmljZSB9IGZyb20gJ3ByaW1lbmcvZHluYW1pY2RpYWxvZyc7XHJcbmltcG9ydCB7IEJyZWFkY3J1bWJDb21wb25lbnQgfSBmcm9tICdAZWxpdGUuZnJhbWV3b3JrL25nLnVpLmNvcmUvYnJlYWRjcnVtYic7XHJcbmltcG9ydCB7IEdlbmVyaWNTZWFyY2hBZHZhbmNlZCB9IGZyb20gJ0BlbGl0ZS5mcmFtZXdvcmsvbmcudWkuY29yZS9nZW5lcmljLXNlYXJjaC1hZHZhbmNlZCc7XHJcbmltcG9ydCB7IEdlbmVyaWNSZXBvcnRDb21wb25lbnQgfSBmcm9tICdAZWxpdGUuZnJhbWV3b3JrL25nLnVpLmNvcmUvZ2VuZXJpYy1yZXBvcnQnO1xyXG5pbXBvcnQgeyBMb2NhbGl6YXRpb25TZXJ2aWNlIH0gZnJvbSAnQGVsaXRlLmZyYW1ld29yay9uZy5jb3JlL3NlcnZpY2VzJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnYXBwLWdlbmVyaWMtY3J1ZC1oZWFkZXInLFxyXG4gIHN0YW5kYWxvbmU6IHRydWUsXHJcbiAgaW1wb3J0czogW1xyXG4gICAgR2VuZXJpY0J1dHRvbixcclxuICAgIFRyYW5zbGF0ZVBpcGUsXHJcbiAgICBCcmVhZGNydW1iQ29tcG9uZW50LFxyXG4gICAgQ29tbW9uTW9kdWxlLFxyXG4gICAgQnV0dG9uTW9kdWxlLFxyXG4gICAgRGl2aWRlck1vZHVsZSxcclxuICAgIEZvcm1zTW9kdWxlLFxyXG4gICAgUmVhY3RpdmVGb3Jtc01vZHVsZSxcclxuICAgIFRvb2x0aXBNb2R1bGUsXHJcbiAgICBNZW51LFxyXG4gICAgR2VuZXJpY1NlYXJjaEFkdmFuY2VkXHJcbiAgXSxcclxuICB0ZW1wbGF0ZVVybDogJy4vZ2VuZXJpYy1jcnVkLWhlYWRlci5odG1sJyxcclxuICAgcHJvdmlkZXJzOiBbRGlhbG9nU2VydmljZV0sXHJcblxyXG59KVxyXG5leHBvcnQgY2xhc3MgR2VuZXJpY0NydWRIZWFkZXJDb21wb25lbnQge1xyXG5cclxuICB0cmFuc2xhdGUgID0gaW5qZWN0KExvY2FsaXphdGlvblNlcnZpY2UpO1xyXG4gIGRpYWxvZ1NlcnZpY2UgID0gaW5qZWN0KERpYWxvZ1NlcnZpY2UpO1xyXG4gIC8vIPCfn6IgSW5wdXRzXHJcbiAgQElucHV0KCkgbW9kZTogJ2Z1bGwnIHwgJ2Zvcm0tb25seScgfCAndGFibGUtb25seScgfCAnZGV0YWlsJyA9ICdmdWxsJztcclxuICBASW5wdXQoKSBicmVhZGNydW1iOiBNZW51SXRlbVtdIHwgdW5kZWZpbmVkO1xyXG4gIEBJbnB1dCgpIGlzU2luZ2xlSXRlbVNlbGVjdGVkID0gZmFsc2U7XHJcbiAgQElucHV0KCkgc2VsZWN0ZWRJdGVtczogYW55W10gPSBbXTtcclxuICBASW5wdXQoKSBzaW5nbGVBY3Rpb25CdXR0b25zOiBCdXR0b25Db25maWdbXSA9IFtdO1xyXG4gIEBJbnB1dCgpIGJ1bGtBY3Rpb25CdXR0b25zOiBCdXR0b25Db25maWdbXSA9IFtdO1xyXG4gIEBJbnB1dCgpIGFkZEJ1dHRvbkNvbmZpZ3M6IEJ1dHRvbkNvbmZpZ1tdID0gW107XHJcbiAgQElucHV0KCkgZmlsdGVyczogYW55O1xyXG4gIEBJbnB1dCgpIGZpbHRlck1vZGVsOiBhbnkgPSB7fTtcclxuICBASW5wdXQoKSBzaG93U2VhcmNoID0gdHJ1ZTtcclxuICAgQElucHV0KCkgZmlyc3QgPSAwOyAvLyBBZGQgaW5wdXQgZm9yIGN1cnJlbnQgJ2ZpcnN0JyBpbmRleFxyXG4gIEBJbnB1dCgpIHJvd3MgPSAxMDsgLy8gQWRkIGlucHV0IGZvciBjdXJyZW50ICdyb3dzJyBwZXIgcGFnZVxyXG4gIEBJbnB1dCgpIHRvdGFsUmVjb3JkcyA9IDA7IC8vIEFkZCBpbnB1dCBmb3IgdG90YWwgcmVjb3Jkc1xyXG4gIEBJbnB1dCgpIGFwaU5hbWU6IHN0cmluZyA9ICcnO1xyXG4gICBASW5wdXQoKSBhY3Rpb25zOk1lbnVJdGVtW10gPSBbXHJcbiAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgbGFiZWw6IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoJ1JFUE9SVCcpLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBpY29uOiAncGkgcGktZmlsZS1leHBvcnQnLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBjb21tYW5kOihlOmFueSk9PntcclxuICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLm9wZW5SZXBvcnREaWFsb2coKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICBdO1xyXG5cclxuXHJcbiAgLy8g8J+foiBPdXRwdXRzXHJcbiAgQE91dHB1dCgpIHNpbmdsZUl0ZW1BY3Rpb24gPSBuZXcgRXZlbnRFbWl0dGVyPEJ1dHRvbkNvbmZpZz4oKTtcclxuICBAT3V0cHV0KCkgYnVsa0FjdGlvbiA9IG5ldyBFdmVudEVtaXR0ZXI8QnV0dG9uQ29uZmlnPigpO1xyXG4gIEBPdXRwdXQoKSBzZWFyY2ggPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcclxuICBAT3V0cHV0KCkgcmVzZXRTZWFyY2ggPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XHJcbiAgQE91dHB1dCgpIGFjdGlvbiA9IG5ldyBFdmVudEVtaXR0ZXI8eyBuYW1lOiBzdHJpbmc7IHJvdzogYW55IH0+KCk7XHJcbiBAT3V0cHV0KCkgcGFnaW5hdGVDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPHsgZmlyc3Q6IG51bWJlcjsgcm93czogbnVtYmVyIH0+KCk7IC8vIE5FVyBPVVRQVVRcclxuXHJcblxyXG5cclxuXHJcbiAgLy8g8J+foiBIZWxwZXJzXHJcbiAgdHJhY2tCeUlkeCA9IChpbmRleDogbnVtYmVyKSA9PiBpbmRleDtcclxuXHJcbiAgLy8g8J+foiBBY3Rpb25zXHJcbiAgb25TaW5nbGVJdGVtQWN0aW9uKGJ0bjogQnV0dG9uQ29uZmlnKSB7XHJcbiAgICB0aGlzLnNpbmdsZUl0ZW1BY3Rpb24uZW1pdChidG4pO1xyXG4gIH1cclxuICBvbkludGVybmFsQnVsa0FjdGlvbihidG46IEJ1dHRvbkNvbmZpZykge1xyXG4gICAgdGhpcy5idWxrQWN0aW9uLmVtaXQoYnRuKTtcclxuICB9XHJcbnBhZ2luYXRpb25DaGFuZ2UodmFsdWU6IGFueSkge1xyXG4gICAgdGhpcy5yb3dzID0gdmFsdWUudG9wO1xyXG4gIH1cclxuICBhcHBseVNlYXJjaCh2YWx1ZTogYW55KSB7XHJcbiAgICB0aGlzLnNlYXJjaC5lbWl0KHZhbHVlKTtcclxuICB9XHJcbiAgcmVzZXQoKSB7XHJcbiAgICB0aGlzLnJlc2V0U2VhcmNoLmVtaXQoKTtcclxuICB9XHJcblxyXG5cclxuICAgIC8vIEdvIHRvIHByZXZpb3VzIHBhZ2VcclxuICAvLyDwn5+iIEFjdGlvbnMgKEtlZXAgb3IgYWRhcHQgeW91ciBleGlzdGluZyBwYWdpbmF0aW9uIGxvZ2ljKVxyXG4gIHRvdGFsUGFnZXMoKTogbnVtYmVyIHtcclxuICAgIGlmICh0aGlzLnRvdGFsUmVjb3JkcyA9PT0gMCB8fCB0aGlzLnJvd3MgPT09IDApIHJldHVybiAwO1xyXG4gICAgcmV0dXJuIE1hdGguY2VpbCh0aGlzLnRvdGFsUmVjb3JkcyAvIHRoaXMucm93cyk7XHJcbiAgfVxyXG4gcGFnZUlucHV0OiBudW1iZXIgfCBudWxsID0gbnVsbDtcclxuICBzaG93UGFnZU1lbnU6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgLy8gR2V0IGN1cnJlbnQgcGFnZSBudW1iZXIgKDEtYmFzZWQpXHJcbiAgZ2V0IGN1cnJlbnRQYWdlKCk6IG51bWJlciB7XHJcbiAgICByZXR1cm4gTWF0aC5mbG9vcih0aGlzLmZpcnN0IC8gdGhpcy5yb3dzKSArIDE7XHJcbiAgfVxyXG5cclxuICAvLyBHbyB0byBzcGVjaWZpYyBwYWdlIGZyb20gbWVudVxyXG4gIGdvVG9QYWdlTWVudSgpIHtcclxuICAgIGlmICh0aGlzLnBhZ2VJbnB1dCAmJiB0aGlzLnBhZ2VJbnB1dCA+PSAxICYmIHRoaXMucGFnZUlucHV0IDw9IHRoaXMudG90YWxQYWdlcygpKSB7XHJcbiAgICAgIGNvbnN0IG5ld0ZpcnN0ID0gKHRoaXMucGFnZUlucHV0IC0gMSkgKiB0aGlzLnJvd3M7XHJcbiAgICAgIHRoaXMucGFnaW5hdGVDaGFuZ2UuZW1pdCh7IGZpcnN0OiBuZXdGaXJzdCwgcm93czogdGhpcy5yb3dzIH0pO1xyXG4gICAgICB0aGlzLnBhZ2VJbnB1dCA9IG51bGw7XHJcbiAgICAgIHRoaXMuc2hvd1BhZ2VNZW51ID0gZmFsc2U7IC8vIENsb3NlIG1lbnUgYWZ0ZXIgbmF2aWdhdGlvblxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLy8gR28gdG8gc3BlY2lmaWMgcGFnZSAob3JpZ2luYWwgbWV0aG9kKVxyXG4gIGdvVG9QYWdlKCkge1xyXG4gICAgdGhpcy5nb1RvUGFnZU1lbnUoKTsgLy8gUmV1c2UgdGhlIHNhbWUgbG9naWNcclxuICB9XHJcblxyXG4gIC8vIEdvIHRvIGZpcnN0IHBhZ2VcclxuZ29GaXJzdCgpIHtcclxuICB0aGlzLnBhZ2luYXRlQ2hhbmdlLmVtaXQoeyBmaXJzdDogMCwgcm93czogdGhpcy5yb3dzIH0pOyAvLyBFTUlUIEVWRU5UXHJcbn1cclxuXHJcbi8vIEdvIHRvIGxhc3QgcGFnZVxyXG5nb0xhc3QoKSB7XHJcbiAgY29uc3QgbWF4Rmlyc3QgPSBNYXRoLm1heCgwLCAodGhpcy50b3RhbFBhZ2VzKCkgLSAxKSAqIHRoaXMucm93cyk7XHJcbiAgdGhpcy5wYWdpbmF0ZUNoYW5nZS5lbWl0KHsgZmlyc3Q6IG1heEZpcnN0LCByb3dzOiB0aGlzLnJvd3MgfSk7IC8vIEVNSVQgRVZFTlRcclxufVxyXG5cclxuICAvLyBHbyB0byBwcmV2aW91cyBwYWdlXHJcbiAgZ29QcmV2KCkge1xyXG4gICAgY29uc3QgbmV3Rmlyc3QgPSBNYXRoLm1heCh0aGlzLmZpcnN0IC0gdGhpcy5yb3dzLCAwKTtcclxuICAgIHRoaXMucGFnaW5hdGVDaGFuZ2UuZW1pdCh7IGZpcnN0OiBuZXdGaXJzdCwgcm93czogdGhpcy5yb3dzIH0pOyAvLyBFTUlUIEVWRU5UXHJcbiAgfVxyXG5cclxuICAvLyBHbyB0byBuZXh0IHBhZ2VcclxuICBnb05leHQoKSB7XHJcbiAgICBjb25zdCBtYXhGaXJzdCA9IE1hdGgubWF4KDAsICh0aGlzLnRvdGFsUGFnZXMoKSAtIDEpICogdGhpcy5yb3dzKTtcclxuICAgIGNvbnN0IG5ld0ZpcnN0ID0gTWF0aC5taW4odGhpcy5maXJzdCArIHRoaXMucm93cywgbWF4Rmlyc3QpO1xyXG4gICAgdGhpcy5wYWdpbmF0ZUNoYW5nZS5lbWl0KHsgZmlyc3Q6IG5ld0ZpcnN0LCByb3dzOiB0aGlzLnJvd3MgfSk7IC8vIEVNSVQgRVZFTlRcclxuICB9XHJcblxyXG4gIC8vIENoZWNrIGZpcnN0L2xhc3QgcGFnZVxyXG4gIGlzRmlyc3RQYWdlKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuZmlyc3QgPT09IDA7XHJcbiAgfVxyXG5cclxuICBpc0xhc3RQYWdlKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuZmlyc3QgKyB0aGlzLnJvd3MgPj0gdGhpcy50b3RhbFJlY29yZHM7XHJcbiAgfVxyXG5cclxuXHJcbiAgLy8gRGV0ZWN0IFJUTCBkaXJlY3Rpb25cclxuICBnZXQgaXNSVEwoKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmRpciA9PT0gJ3J0bCcgfHxcclxuICAgICAgICAgICBkb2N1bWVudC5ib2R5LmRpciA9PT0gJ3J0bCcgfHxcclxuICAgICAgICAgIC8vICB0aGlzLnRyYW5zbGF0ZVNlcnZpY2U/LmN1cnJlbnRMYW5nID09PSAnYXInIHx8IC8vIGlmIHVzaW5nIHRyYW5zbGF0aW9uXHJcbiAgICAgICAgICAgZmFsc2U7IC8vIGRlZmF1bHQgdG8gTFRSXHJcbiAgfVxyXG4gICAvKipcclxuICAgKiBIYW5kbGVzIGJ1dHRvbiBjbGljayBpbiBhIHVuaWZpZWQgd2F5LlxyXG4gICAqIC0gSWYgYnRuLmFjdGlvbiBpcyBkZWZpbmVkLCBleGVjdXRlIGl0LlxyXG4gICAqIC0gT3RoZXJ3aXNlLCBlbWl0IGV2ZW50IHdpdGggYWN0aW9uTmFtZSBvciBkZWZhdWx0ICdhZGQnLlxyXG4gICAqL1xyXG4gIGFzeW5jIGhhbmRsZUJ1dHRvbkNsaWNrKGJ0bjogQnV0dG9uQ29uZmlnKSB7XHJcbiAgICB0cnkge1xyXG4gICAgICBpZiAoYnRuLmFjdGlvbikge1xyXG4gICAgICAgIC8vIEV4ZWN1dGUgdGhlIHByb3ZpZGVkIGFjdGlvblxyXG4gICAgICAgIGF3YWl0IGJ0bi5hY3Rpb24obnVsbCk7IC8vIFlvdSBjYW4gcGFzcyByb3cgb3IgY29udGV4dCBoZXJlXHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgLy8gRmFsbGJhY2sgdG8gZW1pdHRpbmcgZXZlbnRcclxuICAgICAgICB0aGlzLmFjdGlvbi5lbWl0KHtcclxuICAgICAgICAgIG5hbWU6IGJ0bi5hY3Rpb25OYW1lID8/ICdhZGQnLFxyXG4gICAgICAgICAgcm93OiBudWxsISwgLy8gcHJvdmlkZSByb3cgaWYgYXZhaWxhYmxlXHJcbiAgICAgICAgfSk7XHJcbiAgICAgIH1cclxuICAgIH0gY2F0Y2ggKGVycikge1xyXG4gICAgICBjb25zb2xlLmVycm9yKCdCdXR0b24gYWN0aW9uIGVycm9yJywgZXJyKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIG9wZW5SZXBvcnREaWFsb2coKSB7XHJcbiAgICAgIGNvbnN0IHJlZiA9IHRoaXMuZGlhbG9nU2VydmljZS5vcGVuKEdlbmVyaWNSZXBvcnRDb21wb25lbnQsIHtcclxuICAgICAgICBoZWFkZXI6IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoJ1JFUE9SVCcpLFxyXG4gICAgICAgIHNob3dIZWFkZXI6ZmFsc2UsXHJcbiAgICAgICAgd2lkdGg6ICc5MCUnLFxyXG4gICAgICAgIGhlaWdodDogJ2F1dG8nLFxyXG4gICAgICAgIG1vZGFsOiB0cnVlLFxyXG4gICAgICAgIGZvY3VzT25TaG93OmZhbHNlLFxyXG4gICAgICAgIGRhdGE6IHtcclxuICAgICAgICAgIGFwaU5hbWU6dGhpcy5hcGlOYW1lLFxyXG4gICAgICAgICAgZmlsdGVyRmllbGRzOiB0aGlzLmZpbHRlcnMsXHJcbiAgICAgICAgICBmaWx0ZXJNb2RlbDogeyAvKiBzdGF0dXM6ICdBY3RpdmUnICAqL30sXHJcbiAgICAgICAgZGVmYXVsdEZpbGVOYW1lOnRoaXMudHJhbnNsYXRlLmluc3RhbnQoJ1JFUE9SVCcpICsgJyAnICsgdGhpcy50cmFuc2xhdGUuaW5zdGFudCh0aGlzLmJyZWFkY3J1bWI/Lmxlbmd0aCA/IHRoaXMuYnJlYWRjcnVtYlt0aGlzLmJyZWFkY3J1bWIubGVuZ3RoIC0gMV0ubGFiZWwgPz8nJzogJycpXHJcblxyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcblxyXG4gICAgICByZWYub25DbG9zZS5zdWJzY3JpYmUoKGV4cG9ydENvbmZpZzogYW55KSA9PiB7XHJcbiAgICAgICAgaWYgKGV4cG9ydENvbmZpZykge1xyXG4gICAgICAgICAgY29uc29sZS5sb2coJ0V4cG9ydCBjb25maWd1cmF0aW9uOicsIGV4cG9ydENvbmZpZyk7XHJcbiAgICAgICAgICAvLyBIYW5kbGUgdGhlIGV4cG9ydCAtIGNhbGwgeW91ciBBUEkgc2VydmljZSBoZXJlXHJcbiAgICAgICAgICB0aGlzLmhhbmRsZUV4cG9ydChleHBvcnRDb25maWcpO1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBoYW5kbGVFeHBvcnQoY29uZmlnOiBhbnkpIHtcclxuICAgICAgLy8gWW91ciBleHBvcnQgbG9naWMgaGVyZVxyXG4gICAgICAvLyBpZiAoY29uZmlnLmV4cG9ydFR5cGUgPT09ICdFWENFTCcpIHtcclxuICAgICAgLy8gICB0aGlzLmV4cG9ydFRvRXhjZWwoY29uZmlnKTtcclxuICAgICAgLy8gfSBlbHNlIGlmIChjb25maWcuZXhwb3J0VHlwZSA9PT0gJ1BERicpIHtcclxuICAgICAgLy8gICB0aGlzLmV4cG9ydFRvUGRmKGNvbmZpZyk7XHJcbiAgICAgIC8vIH1cclxuICAgICAgLy8gZXRjLlxyXG4gICAgfVxyXG5cclxufVxyXG4iLCJAaWYgKG1vZGUgIT09ICdmb3JtLW9ubHknICYmIG1vZGUgIT09ICdkZXRhaWwnKSB7XHJcbjxkaXYgY2xhc3M9XCJmbGV4IGl0ZW1zLXN0YXJ0IGdhcC0yIGp1c3RpZnktYmV0d2VlblwiPlxyXG4gIDxkaXY+XHJcbiAgICA8YXBwLWJyZWFkY3J1bWJcclxuICAgICAgY2xhc3M9XCJ4czpibG9jayBoaWRkZW5cIlxyXG4gICAgICBbYnJlYWRjcnVtYl09XCJicmVhZGNydW1iXCJcclxuICAgID48L2FwcC1icmVhZGNydW1iPlxyXG4gIDwvZGl2PlxyXG5cclxuICA8ZGl2IGNsYXNzPVwiZmxleCBpdGVtcy1jZW50ZXIgZ2FwLTIganVzdGlmeS1lbmQgZmxleC13cmFwXCI+XHJcbiAgICBAaWYgKG1vZGUgPT09ICdmdWxsJykge1xyXG4gICAgICA8IS0tINij2LLYsdin2LEg2KfZhNi52YbYp9i12LEg2KfZhNmF2YHYsdiv2KkgLS0+XHJcbiAgICAgIEBpZiAoaXNTaW5nbGVJdGVtU2VsZWN0ZWQpIHtcclxuICAgICAgICBAZm9yIChidG4gb2Ygc2luZ2xlQWN0aW9uQnV0dG9uczsgdHJhY2sgdHJhY2tCeUlkeCgkaW5kZXgpKSB7XHJcbiAgICAgICAgICBAaWYgKCFidG4udmlzaWJsZSB8fCAoYnRuLnZpc2libGUgJiYgYnRuLnZpc2libGUgPT09IHRydWUpKSB7XHJcbiAgICAgICAgICAgIDxsaWItZ2VuZXJpYy1idXR0b25cclxuICAgICAgICAgICAgICBbaWNvbl09XCJidG4uaWNvblwiXHJcbiAgICAgICAgICAgICAgW2xhYmVsXT1cImJ0bi5sYWJlbCB8IHRyYW5zbGF0ZVwiXHJcbiAgICAgICAgICAgICAgW3ZhcmlhbnRdPVwiYnRuLnZhcmlhbnRcIlxyXG4gICAgICAgICAgICAgIFtzaXplXT1cImJ0bi5zaXplXCJcclxuICAgICAgICAgICAgICBbc2V2ZXJpdHldPVwiYnRuLnNldmVyaXR5XCJcclxuICAgICAgICAgICAgICBbbW9kZWxdPVwiYnRuLnNwbGl0QWN0aW9uc1wiXHJcbiAgICAgICAgICAgICAgW3Blcm1pc3Npb25dPVwiYnRuLnBlcm1pc3Npb25cIlxyXG4gICAgICAgICAgICAgIChjbGlja2VkKT1cIm9uU2luZ2xlSXRlbUFjdGlvbihidG4pXCJcclxuICAgICAgICAgICAgPjwvbGliLWdlbmVyaWMtYnV0dG9uPlxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG5cclxuICAgICAgPCEtLSDYo9iy2LHYp9ixINmF2KrYudiv2K/YqSDYp9mE2LnZhtin2LXYsSAtLT5cclxuICAgICAgQGlmIChzZWxlY3RlZEl0ZW1zLmxlbmd0aCA+IDApIHtcclxuICAgICAgICBAZm9yIChidG4gb2YgYnVsa0FjdGlvbkJ1dHRvbnM7IHRyYWNrIHRyYWNrQnlJZHgoJGluZGV4KSkge1xyXG4gICAgICAgICAgQGlmICghYnRuLnZpc2libGUgfHwgKGJ0bi52aXNpYmxlICYmIGJ0bi52aXNpYmxlID09PSB0cnVlKSkge1xyXG4gICAgICAgICAgICA8bGliLWdlbmVyaWMtYnV0dG9uXHJcbiAgICAgICAgICAgICAgW2ljb25dPVwiYnRuLmljb25cIlxyXG4gICAgICAgICAgICAgIFtsYWJlbF09XCJidG4ubGFiZWwgfCB0cmFuc2xhdGVcIlxyXG4gICAgICAgICAgICAgIFt2YXJpYW50XT1cImJ0bi52YXJpYW50XCJcclxuICAgICAgICAgICAgICBbc2l6ZV09XCJidG4uc2l6ZVwiXHJcbiAgICAgICAgICAgICAgW3NldmVyaXR5XT1cImJ0bi5zZXZlcml0eVwiXHJcbiAgICAgICAgICAgICAgW21vZGVsXT1cImJ0bi5zcGxpdEFjdGlvbnNcIlxyXG4gICAgICAgICAgICAgIFtwZXJtaXNzaW9uXT1cImJ0bi5wZXJtaXNzaW9uXCJcclxuICAgICAgICAgICAgICAoY2xpY2tlZCk9XCJvbkludGVybmFsQnVsa0FjdGlvbihidG4pXCJcclxuICAgICAgICAgICAgPjwvbGliLWdlbmVyaWMtYnV0dG9uPlxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG5cclxuICAgICAgPCEtLSDYo9iy2LHYp9ixINin2YTYpdi22KfZgdipIC0tPlxyXG4gICAgICBAZm9yIChidG4gb2YgYWRkQnV0dG9uQ29uZmlnczsgdHJhY2sgdHJhY2tCeUlkeCgkaW5kZXgpKSB7XHJcbiAgICAgICAgQGlmICghYnRuLnZpc2libGUgfHwgKGJ0bi52aXNpYmxlICYmIGJ0bi52aXNpYmxlID09PSB0cnVlKSkge1xyXG4gICAgICAgICAgPGxpYi1nZW5lcmljLWJ1dHRvblxyXG4gICAgICAgICAgICBbaWNvbl09XCJidG4uaWNvblwiXHJcbiAgICAgICAgICAgIFtsYWJlbF09XCJidG4ubGFiZWwgfCB0cmFuc2xhdGVcIlxyXG4gICAgICAgICAgICBbdmFyaWFudF09XCJidG4udmFyaWFudFwiXHJcbiAgICAgICAgICAgIFtzaXplXT1cImJ0bi5zaXplXCJcclxuICAgICAgICAgICAgW3NldmVyaXR5XT1cImJ0bi5zZXZlcml0eVwiXHJcbiAgICAgICAgICAgIFttb2RlbF09XCJidG4uc3BsaXRBY3Rpb25zXCJcclxuICAgICAgICAgICAgW3Blcm1pc3Npb25dPVwiYnRuLnBlcm1pc3Npb25cIlxyXG4gICAgICAgICAgICAoY2xpY2tlZCk9XCJoYW5kbGVCdXR0b25DbGljayhidG4pXCJcclxuICAgICAgICAgID48L2xpYi1nZW5lcmljLWJ1dHRvbj5cclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICA8L2Rpdj5cclxuPC9kaXY+XHJcbn1cclxuXHJcbkBpZiAobW9kZSAhPT0gJ2Zvcm0tb25seScgJiYgbW9kZSAhPT0gJ2RldGFpbCcpIHtcclxuPGRpdiBjbGFzcz1cIm10LTIgbWItNCBmbGV4IGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWJldHdlZW5cIj5cclxuICA8IS0tINin2YTYqNit2KsgLS0+XHJcbiAgQGlmIChzaG93U2VhcmNoICYmIGZpbHRlcnMpIHtcclxuICAgIDxsaWItZ2VuZXJpYy1zZWFyY2gtYWR2YW5jZWRcclxuICAgIFttb2RlbF09XCJmaWx0ZXJNb2RlbFwiXHJcbiAgW2ZpZWxkc109XCJmaWx0ZXJzXCJcclxuICAoc2VhcmNoKT1cImFwcGx5U2VhcmNoKCRldmVudClcIlxyXG4gIChwYWdpbmF0aW9uQ2hhbmdlKT1cInBhZ2luYXRpb25DaGFuZ2UoJGV2ZW50KVwiXHJcbiAgPlxyXG48L2xpYi1nZW5lcmljLXNlYXJjaC1hZHZhbmNlZD5cclxuICB9IEBlbHNlIHtcclxuICAgIDxkaXY+PC9kaXY+XHJcbiAgfVxyXG5cclxuICA8IS0tINij2K/ZiNin2Kog2KXYttin2YHZitipIC0tPlxyXG4gIDxkaXYgY2xhc3M9XCJmbGV4IGl0ZW1zLWNlbnRlciBnYXAtMyBydGw6c3BhY2UteC1yZXZlcnNlXCI+XHJcbiAgICA8IS0tIFJlZnJlc2ggQnV0dG9uIC0tPlxyXG4gICAgPHAtYnV0dG9uXHJcbiAgICAgIGljb249XCJwaSBwaS1yZWZyZXNoXCJcclxuICAgICAgb3V0bGluZWRcclxuICAgICAgc2V2ZXJpdHk9XCJzZWNvbmRhcnlcIlxyXG4gICAgICBjbGFzcz1cImhpZGRlbiB4czpibG9ja1wiXHJcbiAgICAgIChvbkNsaWNrKT1cInJlc2V0KClcIlxyXG4gICAgLz5cclxuXHJcbiAgICA8cC1kaXZpZGVyIGxheW91dD1cInZlcnRpY2FsXCIgY2xhc3M9XCJtLTAgcC0wIGhpZGRlbiB4czpibG9ja1wiIC8+XHJcblxyXG5cclxuICAgIDxwLWJ1dHRvbiAoY2xpY2spPVwibWVudS50b2dnbGUoJGV2ZW50KVwiICBjbGFzcz1cInhzOmJsb2NrXCIgIHNldmVyaXR5PVwic2Vjb25kYXJ5XCIgb3V0bGluZWQgaWNvbj1cInBpIHBpLWVsbGlwc2lzLXZcIi8+XHJcbiAgICA8cC1tZW51ICNtZW51IFttb2RlbF09XCJhY3Rpb25zXCIgW3BvcHVwXT1cInRydWVcIiAvPlxyXG4gICAgPCEtLSBQYWdpbmF0aW9uIENvbnRyb2xzIC0tPlxyXG4gICAgPGRpdiBjbGFzcz1cImZsZXggaXRlbXMtY2VudGVyIGdhcC0xIHJ0bDpzcGFjZS14LXJldmVyc2VcIj5cclxuICAgICAgPCEtLSBGaXJzdCBQYWdlIEJ1dHRvbiAtLT5cclxuICAgICAgPHAtYnV0dG9uXHJcbiAgICAgICAgW2ljb25dPVwiaXNSVEwgPyAncGkgcGktYW5nbGUtZG91YmxlLXJpZ2h0JyA6ICdwaSBwaS1hbmdsZS1kb3VibGUtbGVmdCdcIlxyXG4gICAgICAgIG91dGxpbmVkXHJcbiAgICAgICAgc2V2ZXJpdHk9XCJzZWNvbmRhcnlcIlxyXG4gICAgICAgIGNsYXNzPVwiaGlkZGVuIHhzOmJsb2NrXCJcclxuICAgICAgICAoY2xpY2spPVwiZ29GaXJzdCgpXCJcclxuICAgICAgICBbZGlzYWJsZWRdPVwiaXNGaXJzdFBhZ2UoKVwiXHJcbiAgICAgID48L3AtYnV0dG9uPlxyXG5cclxuICAgICAgPCEtLSBQcmV2aW91cyBQYWdlIEJ1dHRvbiAtLT5cclxuICAgICAgPHAtYnV0dG9uXHJcbiAgICAgICAgW2ljb25dPVwiaXNSVEwgPyAncGkgcGktY2hldnJvbi1yaWdodCcgOiAncGkgcGktY2hldnJvbi1sZWZ0J1wiXHJcbiAgICAgICAgb3V0bGluZWRcclxuICAgICAgICBzZXZlcml0eT1cInNlY29uZGFyeVwiXHJcbiAgICAgICAgY2xhc3M9XCJ4czpibG9ja1wiXHJcbiAgICAgICAgKGNsaWNrKT1cImdvUHJldigpXCJcclxuICAgICAgICBbZGlzYWJsZWRdPVwiaXNGaXJzdFBhZ2UoKVwiXHJcbiAgICAgID48L3AtYnV0dG9uPlxyXG5cclxuXHJcbiAgICAgICA8IS0tIEN1cnJlbnQgUGFnZSBEaXNwbGF5IHdpdGggRHJvcGRvd24gLS0+XHJcbiAgPGRpdiBjbGFzcz1cInJlbGF0aXZlXCI+XHJcblxyXG4gICAgPHAtYnV0dG9uXHJcbiAgICAgIFtsYWJlbF09XCJjdXJyZW50UGFnZSArICcgLyAnICsgdG90YWxQYWdlcygpXCJcclxuICAgICAgb3V0bGluZWRcclxuICAgICAgc2V2ZXJpdHk9XCJzZWNvbmRhcnlcIlxyXG4gICAgICBjbGFzcz1cImhpZGRlbiB4czpibG9ja1wiXHJcbiAgICAgIChjbGljayk9XCJzaG93UGFnZU1lbnUgPSAhc2hvd1BhZ2VNZW51XCJcclxuICAgICAgICBwVG9vbHRpcD1cInt7dG90YWxSZWNvcmRzfX1cIlxyXG4gICAgICB0b29sdGlwUG9zaXRpb249XCJ0b3BcIlxyXG4gICAgLz5cclxuXHJcblxyXG4gIDwvZGl2PlxyXG4gICAgICA8IS0tIE5leHQgUGFnZSBCdXR0b24gLS0+XHJcbiAgICAgIDxwLWJ1dHRvblxyXG4gICAgICAgIFtpY29uXT1cImlzUlRMID8gJ3BpIHBpLWNoZXZyb24tbGVmdCcgOiAncGkgcGktY2hldnJvbi1yaWdodCdcIlxyXG4gICAgICAgIG91dGxpbmVkXHJcbiAgICAgICAgc2V2ZXJpdHk9XCJzZWNvbmRhcnlcIlxyXG4gICAgICAgIGNsYXNzPVwieHM6YmxvY2tcIlxyXG4gICAgICAgIChjbGljayk9XCJnb05leHQoKVwiXHJcbiAgICAgICAgW2Rpc2FibGVkXT1cImlzTGFzdFBhZ2UoKVwiXHJcbiAgICAgID48L3AtYnV0dG9uPlxyXG5cclxuICAgICAgPCEtLSBMYXN0IFBhZ2UgQnV0dG9uIC0tPlxyXG4gICAgICA8cC1idXR0b25cclxuICAgICAgICBbaWNvbl09XCJpc1JUTCA/ICdwaSBwaS1hbmdsZS1kb3VibGUtbGVmdCcgOiAncGkgcGktYW5nbGUtZG91YmxlLXJpZ2h0J1wiXHJcbiAgICAgICAgb3V0bGluZWRcclxuICAgICAgICBzZXZlcml0eT1cInNlY29uZGFyeVwiXHJcbiAgICAgICAgY2xhc3M9XCJoaWRkZW4geHM6YmxvY2tcIlxyXG4gICAgICAgIChjbGljayk9XCJnb0xhc3QoKVwiXHJcbiAgICAgICAgW2Rpc2FibGVkXT1cImlzTGFzdFBhZ2UoKVwiXHJcbiAgICAgID48L3AtYnV0dG9uPlxyXG4gICAgPC9kaXY+XHJcbiAgPC9kaXY+XHJcbjwvZGl2PlxyXG59XHJcbiJdfQ==","/* eslint-disable @angular-eslint/no-output-on-prefix */\n/* eslint-disable @angular-eslint/no-output-native */\nimport { DividerModule } from 'primeng/divider';\nimport { Component, Input, Output, EventEmitter, ViewChild, inject } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { MessageModule } from 'primeng/message';\nimport { ButtonModule } from 'primeng/button';\nimport { TableModule } from 'primeng/table';\nimport { ToolbarModule } from 'primeng/toolbar';\nimport { TranslatePipe } from '@elite.framework/ng.core/pipes';\nimport { IconFieldModule } from 'primeng/iconfield';\nimport { DrawerModule } from 'primeng/drawer';\nimport { DialogModule } from 'primeng/dialog';\nimport { FormsModule, ReactiveFormsModule, UntypedFormGroup } from '@angular/forms';\nimport { BaseService, LocalizationService } from '@elite.framework/ng.core/services';\nimport { SwalService } from '@elite.framework/ng.core/services';\nimport { GenericCrudHeaderComponent } from './generic-crud-header';\nimport { ActivatedRoute, Router } from '@angular/router';\nimport { GenericTable } from '@elite.framework/ng.ui.core/generic-table';\nimport { GenericDialogComponent } from '@elite.framework/ng.ui.core/generic-dialog';\nimport { GenericViewComponent } from '@elite.framework/ng.ui.core/generic-view';\nimport { QueryBuilderService } from '@elite.framework/ng.ui.core/generic-search-advanced';\nimport * as i0 from \"@angular/core\";\n/**\n * مكون جدول CRUD عام يمكن إعادة استخدامه\n * يدعم العمليات الأساسية: إنشاء، قراءة، تحديث، حذف\n * مع إمكانية التخصيص عبر عدة أوضاع وعرض\n */\nexport class GenericCrudTableComponent {\n genericTable;\n dialog;\n translate = inject(LocalizationService);\n swalService = inject(SwalService);\n queryBuilder = inject(QueryBuilderService);\n home = { icon: 'pi pi-home', routerLink: '/' };\n data = [];\n formFields_ = []; // <-- هنا\n formFields = []; // <-- هنا\n columns = []; // <-- هنا\n dialogMaxWidth = '40rem'; // unset , fit-content\n isViewMode = false;\n displayMode = 'drawer';\n useConfirmOnSave = false;\n isEditMode = false;\n drawerVisible = false;\n dialogVisible = false;\n form = new UntypedFormGroup({});\n model;\n model_ = {};\n loading = false;\n errorMsg = '';\n errorMessage = '';\n options = {};\n actions = [];\n /** تحدد طريقة العرض: 'buttons' أو 'menu' */\n actionsMode = 'buttons';\n action = new EventEmitter();\n bulkAction = new EventEmitter();\n singleAction = new EventEmitter();\n beforeSaveTransform; // ⚡ دوال مخصصة قبل الحفظ\n afterSave = new EventEmitter();\n afterDelete = new EventEmitter();\n beforeSave = new EventEmitter();\n beforeDelete = new EventEmitter();\n formCancel = new EventEmitter();\n formInit = new EventEmitter();\n dataLoaded = new EventEmitter();\n selectionChange = new EventEmitter();\n error = new EventEmitter();\n // البحث\n // Search\n filters;\n filterModel = {};\n search = new EventEmitter();\n /** للتحكم بإظهار/إخفاء قسم البحث */\n showSearch = true;\n /** Pagination Inputs */\n first = 0;\n rows = 10;\n totalRecords = 0;\n pageChange = new EventEmitter();\n onSearch = new EventEmitter();\n visibleChange = new EventEmitter();\n ;\n // @Output() visibleChange = new EventEmitter<boolean>();\n /** لجعل الجدول قابل لاختيار الصفوف (افتراضي false) */\n rowSelectable = false;\n /** حدث يخرج الصف المحدّد */\n rowSelect = new EventEmitter();\n selection = null;\n // الفرز\n sortField;\n sortOrder = 1;\n scrollHeight = '400px';\n paginator = true;\n service = inject(BaseService);\n apiName = '';\n moduleName = '';\n idField = 'id';\n showRowSelectionCheckbox = false;\n showAddButton = true;\n addPermissionName;\n addButtonConfigs = [\n {\n icon: 'pi pi-plus',\n label: 'ADD',\n variant: 'raised',\n severity: 'primary',\n size: 'small',\n actionName: 'add',\n visible: this.showAddButton,\n permission: this.addPermissionName,\n },\n ];\n createEditActions = [\n {\n icon: 'pi pi-check',\n label: 'SAVE',\n variant: 'raised',\n severity: 'primary',\n size: 'small',\n actionName: 'save',\n type: 'submit',\n splitActions: [\n {\n label: this.translate.instant('SAVE_AND_ADD'),\n icon: 'pi pi-save',\n actionName: 'saveAndAdd'\n }\n ]\n },\n {\n icon: 'pi pi-times',\n label: 'CANCEL',\n variant: 'raised',\n severity: 'danger',\n size: 'small',\n actionName: 'cancel',\n type: 'button',\n },\n ];\n supportSubPage = true;\n tabs = [];\n bulkActionButtons = [];\n singleActionButtons = [];\n _selectedRows = [];\n get isSingleItemSelected() {\n return this._selectedRows.length === 1;\n }\n get isMultipleItemSelected() {\n return this._selectedRows.length > 1;\n }\n get selectedItems() {\n return this._selectedRows;\n }\n breadcrumb;\n get breadcrumb_() {\n return this.breadcrumb?.map(v => ({\n ...v,\n label: this.translate.instant(v.label ?? '')\n }));\n }\n get rtl() {\n try {\n return document?.documentElement?.dir === 'rtl';\n }\n catch (error) {\n return true;\n }\n }\n /**\n * Modes to control what parts of the component are visible\n * - 'full': Table + CRUD operations (default)\n * - 'form-only': Only show form (for create/edit/view)\n * - 'table-only': Only show table (read-only mode)\n */\n mode = 'full';\n /** Force the component to show specific state */\n forceState = null;\n /** Hide table completely when in form-only mode */\n get hideTable() {\n return (this.mode === 'form-only' || this.mode === 'detail' || (this.forceState && this.mode !== 'table-only')) ?? false;\n }\n /** Auto-show form when in form-only mode with forceState */\n get autoShowForm() {\n return this.mode === 'form-only' && !!this.forceState;\n }\n //لتغيير لون صف معيّن\n rowStyleFn;\n // ✅ لتعيين كلاس CSS أو Tailwind على الصف\n rowClassFn;\n //آخر لتجميد / تعطيل checkbox الاختيار\n disableRowCheckboxFn;\n tableClass = 'h-full flex-1 flex flex-col overflow-hidden border border-surface rounded-2xl xs:rounded-2xl p-4 bg-white';\n route = inject(ActivatedRoute);\n router = inject(Router);\n currentId;\n ngOnInit() {\n if (this.moduleName) {\n this.service.moduleName = this.moduleName;\n }\n if (this.apiName && this.apiName != '') {\n this.service.apiName = this.apiName;\n }\n if (this.tabs.length == 0) {\n this.formFields_ = this.formFields;\n this.tabs.push({ header: 'التفاصيل', icon: 'pi pi-info-circle', fields: this.formFields_, model: this.model });\n }\n if (this.supportSubPage) {\n this.route.paramMap.subscribe(params => {\n const id = params.get(this.idField);\n if (id && id !== 'new' && id !== 'create' && id !== 'add') {\n this.currentId = id;\n this.mode = 'detail';\n this.loadDetail(id);\n }\n else if (id == 'new' || id == 'create' || id == 'add') {\n this.mode = 'detail';\n }\n else {\n this.currentId = undefined;\n }\n });\n }\n }\n // 3. Handle Header's Paginate Change Event\n onHeaderPaginateChange(event) {\n this.first = event.first; // Update the 'first' index\n this.rows = event.rows;\n const lazyLoadEvent = {\n first: this.first,\n rows: this.rows,\n // You'd typically include current sorting and filtering state here\n sortField: this.sortField,\n sortOrder: 1,\n filters: this.filters,\n globalFilter: null, // or your current global filter value\n };\n this.onLazyLoad(lazyLoadEvent);\n }\n loadDetail(id) {\n this.service.get(id).subscribe({\n next: res => {\n this.model = res;\n }\n });\n }\n // Helper method to open form programmatically\n openForm(mode, model) {\n this.dialog.openForm(mode, model);\n }\n // private destroy$ = new Subject<void>();\n /** الآن يتلقّى pagination + sort في حدث واحد */\n onLazyLoad(event) {\n // this.model_= this.model ?? {};\n this.model = this.model ?? {};\n this.formFields_ = this.formFields;\n const first = event.first ?? this.first;\n const rows = event.rows ?? this.rows;\n const sortField = typeof event.sortField === 'string'\n ? event.sortField\n : this.sortField;\n const sortOrder = event.sortOrder === -1 ? -1 : 1;\n const filters = {};\n if (event.filters) {\n Object.entries(event.filters).forEach(([field, meta]) => {\n const value = meta.value;\n if (value != null && value !== '') {\n filters[field] = value;\n }\n });\n }\n var queryString = '';\n // Default query\n if (!filters['query']) {\n // Use the new QueryBuilderService methods\n const odataParams = this.queryBuilder.buildODataFromQueryModel(this.filterModel, this.formFields_);\n // this.odataSearch.emit(odataParams);\n // Generate query string using the unified method\n queryString = this.queryBuilder.toODataQueryString(odataParams);\n // console.log('OData Query String:', queryString);\n }\n this.first = first;\n this.rows = rows;\n this.sortField = sortField;\n this.sortOrder = sortOrder;\n const dir = sortOrder === 1 ? 'asc' : 'desc';\n const sort = sortField ? `${sortField} ${dir}` : undefined;\n // this.pageChange.emit({ first, rows ,sort, filters });\n this.applySearch({\n filter: this.model['filter'],\n query: queryString,\n sorting: sort,\n skipCount: first,\n maxResultCount: rows,\n });\n // يبني النص وإرساله\n }\n /** تصيير البيانات حسب الصفحة */\n get pagedData() {\n // return this.data ? this.data.slice(this.first, this.first + this.rows) : [];\n return this.data;\n }\n get globalFilterFields() {\n return this.columns.map(c => String(c.key));\n }\n /** أرسل إلى الأب لأتمتة شكل البحث إذا يحتاج */\n // from generic-crud-table.component.ts\n /** بدّل applySearch لتبث pageChange مباشرةً */\n resetPage(filters) {\n // this.genericTable.applyFilter(global);\n this.first = 0;\n this.rows = 10;\n }\n /** بدّل applySearch لتبث pageChange مباشرةً */\n applySearch(filters) {\n // this.genericTable.applyFilter(global);\n this.onSearch.emit(filters);\n }\n /** دالة تنفّذ عند النقر على صف */\n onRowClick(row) {\n if (this.rowSelectable) {\n this.rowSelect.emit(row);\n }\n }\n onSubmit() {\n if (this.mode != 'form-only') {\n this.applySearch('');\n }\n }\n trackByIdx(index, item) {\n return index;\n }\n onSingleItemAction(btn) {\n if (!this.isSingleItemSelected)\n return;\n const selectedItem = this._selectedRows[0];\n this.singleAction.emit({\n name: btn.actionName ?? 'singleAction',\n item: selectedItem\n });\n }\n onInternalBulkAction(btn) {\n if (!this.isMultipleItemSelected)\n return;\n this.bulkAction.emit({\n name: btn.actionName ?? 'bulkAction',\n items: [...this._selectedRows] // نرسل نسخة من المصفوفة\n });\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: GenericCrudTableComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });\n static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.1.8\", type: GenericCrudTableComponent, isStandalone: true, selector: \"app-generic-crud-table\", inputs: { data: \"data\", formFields: \"formFields\", columns: \"columns\", dialogMaxWidth: \"dialogMaxWidth\", isViewMode: \"isViewMode\", displayMode: \"displayMode\", useConfirmOnSave: \"useConfirmOnSave\", isEditMode: \"isEditMode\", drawerVisible: \"drawerVisible\", dialogVisible: \"dialogVisible\", model: \"model\", loading: \"loading\", errorMsg: \"errorMsg\", errorMessage: \"errorMessage\", actions: \"actions\", actionsMode: \"actionsMode\", beforeSaveTransform: \"beforeSaveTransform\", filters: \"filters\", filterModel: \"filterModel\", showSearch: \"showSearch\", first: \"first\", rows: \"rows\", totalRecords: \"totalRecords\", rowSelectable: \"rowSelectable\", scrollHeight: \"scrollHeight\", paginator: \"paginator\", service: \"service\", apiName: \"apiName\", moduleName: \"moduleName\", idField: \"idField\", showRowSelectionCheckbox: \"showRowSelectionCheckbox\", showAddButton: \"showAddButton\", addPermissionName: \"addPermissionName\", addButtonConfigs: \"addButtonConfigs\", createEditActions: \"createEditActions\", supportSubPage: \"supportSubPage\", tabs: \"tabs\", bulkActionButtons: \"bulkActionButtons\", singleActionButtons: \"singleActionButtons\", breadcrumb: \"breadcrumb\", mode: \"mode\", forceState: \"forceState\", hideTable: \"hideTable\", autoShowForm: \"autoShowForm\", rowStyleFn: \"rowStyleFn\", rowClassFn: \"rowClassFn\", disableRowCheckboxFn: \"disableRowCheckboxFn\" }, outputs: { action: \"action\", bulkAction: \"bulkAction\", singleAction: \"singleAction\", afterSave: \"afterSave\", afterDelete: \"afterDelete\", beforeSave: \"beforeSave\", beforeDelete: \"beforeDelete\", formCancel: \"formCancel\", formInit: \"formInit\", dataLoaded: \"dataLoaded\", selectionChange: \"selectionChange\", error: \"error\", search: \"search\", pageChange: \"pageChange\", onSearch: \"onSearch\", visibleChange: \"visibleChange\", rowSelect: \"rowSelect\" }, viewQueries: [{ propertyName: \"genericTable\", first: true, predicate: [\"genericTable\"], descendants: true }, { propertyName: \"dialog\", first: true, predicate: [\"dialog\"], descendants: true }], ngImport: i0, template: \"<div\\r\\n [class]=\\\"mode !== 'form-only' && mode !== 'detail' ? tableClass : ''\\\"\\r\\n>\\r\\n <app-generic-crud-header\\r\\n [mode]=\\\"mode\\\"\\r\\n [breadcrumb]=\\\"breadcrumb_\\\"\\r\\n [isSingleItemSelected]=\\\"isSingleItemSelected\\\"\\r\\n [selectedItems]=\\\"_selectedRows\\\"\\r\\n [singleActionButtons]=\\\"singleActionButtons\\\"\\r\\n [bulkActionButtons]=\\\"bulkActionButtons\\\"\\r\\n [addButtonConfigs]=\\\"addButtonConfigs\\\"\\r\\n [apiName]=\\\"service.apiName\\\"\\r\\n [filters]=\\\"filters\\\"\\r\\n [filterModel]=\\\"filterModel\\\"\\r\\n [showSearch]=\\\"showSearch\\\"\\r\\n (singleItemAction)=\\\"onSingleItemAction($event)\\\"\\r\\n (bulkAction)=\\\"onInternalBulkAction($event)\\\"\\r\\n (action)=\\\"action.emit($event)\\\"\\r\\n (search)=\\\"resetPage($event);applySearch($event);\\\"\\r\\n (resetSearch)=\\\"resetPage($event);applySearch('');\\\"\\r\\n (paginateChange)=\\\"onHeaderPaginateChange($event)\\\"\\r\\n [first]=\\\"first\\\"\\r\\n [rows]=\\\"rows\\\"\\r\\n [totalRecords]=\\\"totalRecords\\\"\\r\\n/>\\r\\n\\r\\n @if (!hideTable) {\\r\\n <lib-generic-table\\r\\n [data]=\\\"data\\\"\\r\\n [columns]=\\\"columns\\\"\\r\\n [paginator]=\\\"paginator\\\"\\r\\n [loading]=\\\"loading\\\"\\r\\n [actions]=\\\"actions\\\"\\r\\n [actionsMode]=\\\"actionsMode\\\"\\r\\n [first]=\\\"first\\\"\\r\\n [rows]=\\\"rows\\\"\\r\\n [totalRecords]=\\\"totalRecords\\\"\\r\\n [sortField]=\\\"sortField\\\"\\r\\n [sortOrder]=\\\"sortOrder\\\"\\r\\n [addButtonConfigs]=\\\"addButtonConfigs\\\"\\r\\n [globalFilterFields]=\\\"globalFilterFields\\\"\\r\\n [scrollHeight]=\\\"scrollHeight\\\"\\r\\n [showRowSelectionCheckbox]=\\\"showRowSelectionCheckbox\\\"\\r\\n (action)=\\\"action.emit($event)\\\"\\r\\n (onAddNew)=\\\"action.emit({ name: 'add', row: null! })\\\"\\r\\n (pageChange)=\\\"onLazyLoad($event)\\\"\\r\\n [rowSelectable]=\\\"rowSelectable\\\"\\r\\n (rowSelect)=\\\"onRowClick($event)\\\"\\r\\n [(selection)]=\\\"_selectedRows\\\"\\r\\n #genericTable\\r\\n ></lib-generic-table>\\r\\n\\r\\n }\\r\\n\\r\\n <app-generic-dialog\\r\\n #dialog\\r\\n [service]=\\\"service\\\"\\r\\n [apiName]=\\\"service.apiName\\\"\\r\\n [formFields]=\\\"formFields\\\"\\r\\n [model]=\\\"model\\\"\\r\\n [apiName]=\\\"apiName\\\"\\r\\n [idField]=\\\"idField\\\"\\r\\n [dialogMaxWidth]=\\\"dialogMaxWidth\\\"\\r\\n [displayMode]=\\\"displayMode\\\"\\r\\n [mode]=\\\"mode\\\"\\r\\n [forceState]=\\\"forceState\\\"\\r\\n [drawerVisible]=\\\"drawerVisible\\\"\\r\\n [dialogVisible]=\\\"dialogVisible\\\"\\r\\n [isViewMode]=\\\"isViewMode\\\"\\r\\n [isEditMode]=\\\"isEditMode\\\"\\r\\n [useConfirmOnSave]=\\\"useConfirmOnSave\\\"\\r\\n [loading]=\\\"loading\\\"\\r\\n [errorMsg]=\\\"errorMsg\\\"\\r\\n [errorMessage]=\\\"errorMessage\\\"\\r\\n [beforeSaveTransform]=\\\"beforeSaveTransform\\\"\\r\\n (action)=\\\"action.emit($event)\\\"\\r\\n (afterSave)=\\\"afterSave.emit($event);onSubmit();\\\"\\r\\n (afterDelete)=\\\"afterDelete.emit($event)\\\"\\r\\n (beforeSave)=\\\"beforeSave.emit($event)\\\"\\r\\n (beforeDelete)=\\\"beforeDelete.emit($event)\\\"\\r\\n (formCancel)=\\\"formCancel.emit()\\\"\\r\\n (formInit)=\\\"formInit.emit($event)\\\"\\r\\n (dataLoaded)=\\\"dataLoaded.emit($event)\\\"\\r\\n (selectionChange)=\\\"selectionChange.emit($event)\\\"\\r\\n (error)=\\\"error.emit($event)\\\"\\r\\n (visibleChange)=\\\"visibleChange.emit($event)\\\"\\r\\n >\\r\\n </app-generic-dialog>\\r\\n\\r\\n <app-detail-view\\r\\n [displayMode]=\\\"displayMode\\\"\\r\\n [mode]=\\\"mode\\\"\\r\\n [title]=\\\"breadcrumb_?.[0]?.label || 'Detail'\\\"\\r\\n [service]=\\\"service\\\"\\r\\n [apiName]=\\\"service.apiName\\\"\\r\\n [apiName]=\\\"apiName\\\"\\r\\n [idField]=\\\"idField\\\"\\r\\n [actions]=\\\"actions\\\"\\r\\n [formFields]=\\\"formFields\\\"\\r\\n [model]=\\\"model\\\"\\r\\n [tabs]=\\\"tabs\\\"\\r\\n [loading]=\\\"loading\\\"\\r\\n [breadcrumb]=\\\"breadcrumb_\\\"\\r\\n [createEditActions]=\\\"createEditActions\\\"\\r\\n (action)=\\\"action.emit($event)\\\"\\r\\n >\\r\\n </app-detail-view>\\r\\n\\r\\n</div>\\r\\n\", dependencies: [{ kind: \"ngmodule\", type: CommonModule }, { kind: \"ngmodule\", type: TableModule }, { kind: \"ngmodule\", type: ButtonModule }, { kind: \"component\", type: GenericTable, selector: \"lib-generic-table\", inputs: [\"data\", \"columns\", \"loading\", \"actions\", \"actionsPosition\", \"actionsMode\", \"first\", \"rows\", \"totalRecords\", \"sortField\", \"sortOrder\", \"globalFilterFields\", \"addButtonConfigs\", \"scrollHeight\", \"rowSelectable\", \"rowStyleFn\", \"rowClassFn\", \"disableRowCheckboxFn\", \"selection\", \"paginator\", \"showRowSelectionCheckbox\"], outputs: [\"action\", \"pageChange\", \"onAddNew\", \"rowSelect\", \"selectionChange\"] }, { kind: \"ngmodule\", type: ToolbarModule }, { kind: \"ngmodule\", type: DividerModule }, { kind: \"ngmodule\", type: IconFieldModule }, { kind: \"ngmodule\", type: DrawerModule }, { kind: \"ngmodule\", type: ReactiveFormsModule }, { kind: \"ngmodule\", type: FormsModule }, { kind: \"ngmodule\", type: MessageModule }, { kind: \"ngmodule\", type: DialogModule }, { kind: \"component\", type: GenericDialogComponent, selector: \"app-generic-dialog\", inputs: [\"form\", \"service\", \"formFields\", \"model\", \"apiName\", \"moduleName\", \"idField\", \"dialogMaxWidth\", \"displayMode\", \"mode\", \"forceState\", \"drawerVisible\", \"dialogVisible\", \"isViewMode\", \"isEditMode\", \"useConfirmOnSave\", \"loading\", \"errorMsg\", \"errorMessage\", \"beforeSaveTransform\", \"hideTable\", \"autoShowForm\"], outputs: [\"action\", \"afterSave\", \"afterDelete\", \"beforeSave\", \"beforeDelete\", \"formCancel\", \"formInit\", \"dataLoaded\", \"selectionChange\", \"error\", \"visibleChange\"] }, { kind: \"component\", type: GenericCrudHeaderComponent, selector: \"app-generic-crud-header\", inputs: [\"mode\", \"breadcrumb\", \"isSingleItemSelected\", \"selectedItems\", \"singleActionButtons\", \"bulkActionButtons\", \"addButtonConfigs\", \"filters\", \"filterModel\", \"showSearch\", \"first\", \"rows\", \"totalRecords\", \"apiName\", \"actions\"], outputs: [\"singleItemAction\", \"bulkAction\", \"search\", \"resetSearch\", \"action\", \"paginateChange\"] }, { kind: \"component\", type: GenericViewComponent, selector: \"app-detail-view\", inputs: [\"title\", \"actions\", \"createEditActions\", \"tabs\", \"viewMode\", \"breadcrumb\", \"service\", \"formFields\", \"apiName\", \"idField\", \"standaloneMode\", \"isViewMode\", \"isCreateMode\", \"isEditMode\", \"model\", \"displayMode\", \"mode\", \"loading\"], outputs: [\"action\", \"afterDelete\"] }] });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: GenericCrudTableComponent, decorators: [{\n type: Component,\n args: [{ selector: 'app-generic-crud-table', standalone: true, imports: [\n CommonModule,\n TableModule,\n ButtonModule,\n GenericTable,\n ToolbarModule,\n TranslatePipe,\n DividerModule,\n IconFieldModule,\n DrawerModule,\n ReactiveFormsModule,\n FormsModule,\n MessageModule,\n DialogModule,\n GenericDialogComponent,\n GenericCrudHeaderComponent,\n GenericViewComponent\n ], host: {\n class: ''\n }, template: \"<div\\r\\n [class]=\\\"mode !== 'form-only' && mode !== 'detail' ? tableClass : ''\\\"\\r\\n>\\r\\n <app-generic-crud-header\\r\\n [mode]=\\\"mode\\\"\\r\\n [breadcrumb]=\\\"breadcrumb_\\\"\\r\\n [isSingleItemSelected]=\\\"isSingleItemSelected\\\"\\r\\n [selectedItems]=\\\"_selectedRows\\\"\\r\\n [singleActionButtons]=\\\"singleActionButtons\\\"\\r\\n [bulkActionButtons]=\\\"bulkActionButtons\\\"\\r\\n [addButtonConfigs]=\\\"addButtonConfigs\\\"\\r\\n [apiName]=\\\"service.apiName\\\"\\r\\n [filters]=\\\"filters\\\"\\r\\n [filterModel]=\\\"filterModel\\\"\\r\\n [showSearch]=\\\"showSearch\\\"\\r\\n (singleItemAction)=\\\"onSingleItemAction($event)\\\"\\r\\n (bulkAction)=\\\"onInternalBulkAction($event)\\\"\\r\\n (action)=\\\"action.emit($event)\\\"\\r\\n (search)=\\\"resetPage($event);applySearch($event);\\\"\\r\\n (resetSearch)=\\\"resetPage($event);applySearch('');\\\"\\r\\n (paginateChange)=\\\"onHeaderPaginateChange($event)\\\"\\r\\n [first]=\\\"first\\\"\\r\\n [rows]=\\\"rows\\\"\\r\\n [totalRecords]=\\\"totalRecords\\\"\\r\\n/>\\r\\n\\r\\n @if (!hideTable) {\\r\\n <lib-generic-table\\r\\n [data]=\\\"data\\\"\\r\\n [columns]=\\\"columns\\\"\\r\\n [paginator]=\\\"paginator\\\"\\r\\n [loading]=\\\"loading\\\"\\r\\n [actions]=\\\"actions\\\"\\r\\n [actionsMode]=\\\"actionsMode\\\"\\r\\n [first]=\\\"first\\\"\\r\\n [rows]=\\\"rows\\\"\\r\\n [totalRecords]=\\\"totalRecords\\\"\\r\\n [sortField]=\\\"sortField\\\"\\r\\n [sortOrder]=\\\"sortOrder\\\"\\r\\n [addButtonConfigs]=\\\"addButtonConfigs\\\"\\r\\n [globalFilterFields]=\\\"globalFilterFields\\\"\\r\\n [scrollHeight]=\\\"scrollHeight\\\"\\r\\n [showRowSelectionCheckbox]=\\\"showRowSelectionCheckbox\\\"\\r\\n (action)=\\\"action.emit($event)\\\"\\r\\n (onAddNew)=\\\"action.emit({ name: 'add', row: null! })\\\"\\r\\n (pageChange)=\\\"onLazyLoad($event)\\\"\\r\\n [rowSelectable]=\\\"rowSelectable\\\"\\r\\n (rowSelect)=\\\"onRowClick($event)\\\"\\r\\n [(selection)]=\\\"_selectedRows\\\"\\r\\n #genericTable\\r\\n ></lib-generic-table>\\r\\n\\r\\n }\\r\\n\\r\\n <app-generic-dialog\\r\\n #dialog\\r\\n [service]=\\\"service\\\"\\r\\n [apiName]=\\\"service.apiName\\\"\\r\\n [formFields]=\\\"formFields\\\"\\r\\n [model]=\\\"model\\\"\\r\\n [apiName]=\\\"apiName\\\"\\r\\n [idField]=\\\"idField\\\"\\r\\n [dialogMaxWidth]=\\\"dialogMaxWidth\\\"\\r\\n [displayMode]=\\\"displayMode\\\"\\r\\n [mode]=\\\"mode\\\"\\r\\n [forceState]=\\\"forceState\\\"\\r\\n [drawerVisible]=\\\"drawerVisible\\\"\\r\\n [dialogVisible]=\\\"dialogVisible\\\"\\r\\n [isViewMode]=\\\"isViewMode\\\"\\r\\n [isEditMode]=\\\"isEditMode\\\"\\r\\n [useConfirmOnSave]=\\\"useConfirmOnSave\\\"\\r\\n [loading]=\\\"loading\\\"\\r\\n [errorMsg]=\\\"errorMsg\\\"\\r\\n [errorMessage]=\\\"errorMessage\\\"\\r\\n [beforeSaveTransform]=\\\"beforeSaveTransform\\\"\\r\\n (action)=\\\"action.emit($event)\\\"\\r\\n (afterSave)=\\\"afterSave.emit($event);onSubmit();\\\"\\r\\n (afterDelete)=\\\"afterDelete.emit($event)\\\"\\r\\n (beforeSave)=\\\"beforeSave.emit($event)\\\"\\r\\n (beforeDelete)=\\\"beforeDelete.emit($event)\\\"\\r\\n (formCancel)=\\\"formCancel.emit()\\\"\\r\\n (formInit)=\\\"formInit.emit($event)\\\"\\r\\n (dataLoaded)=\\\"dataLoaded.emit($event)\\\"\\r\\n (selectionChange)=\\\"selectionChange.emit($event)\\\"\\r\\n (error)=\\\"error.emit($event)\\\"\\r\\n (visibleChange)=\\\"visibleChange.emit($event)\\\"\\r\\n >\\r\\n </app-generic-dialog>\\r\\n\\r\\n <app-detail-view\\r\\n [displayMode]=\\\"displayMode\\\"\\r\\n [mode]=\\\"mode\\\"\\r\\n [title]=\\\"breadcrumb_?.[0]?.label || 'Detail'\\\"\\r\\n [service]=\\\"service\\\"\\r\\n [apiName]=\\\"service.apiName\\\"\\r\\n [apiName]=\\\"apiName\\\"\\r\\n [idField]=\\\"idField\\\"\\r\\n [actions]=\\\"actions\\\"\\r\\n [formFields]=\\\"formFields\\\"\\r\\n [model]=\\\"model\\\"\\r\\n [tabs]=\\\"tabs\\\"\\r\\n [loading]=\\\"loading\\\"\\r\\n [breadcrumb]=\\\"breadcrumb_\\\"\\r\\n [createEditActions]=\\\"createEditActions\\\"\\r\\n (action)=\\\"action.emit($event)\\\"\\r\\n >\\r\\n </app-detail-view>\\r\\n\\r\\n</div>\\r\\n\" }]\n }], propDecorators: { genericTable: [{\n type: ViewChild,\n args: ['genericTable']\n }], dialog: [{\n type: ViewChild,\n args: ['dialog']\n }], data: [{\n type: Input\n }], formFields: [{\n type: Input\n }], columns: [{\n type: Input\n }], dialogMaxWidth: [{\n type: Input\n }], isViewMode: [{\n type: Input\n }], displayMode: [{\n type: Input\n }], useConfirmOnSave: [{\n type: Input\n }], isEditMode: [{\n type: Input\n }], drawerVisible: [{\n type: Input\n }], dialogVisible: [{\n type: Input\n }], model: [{\n type: Input\n }], loading: [{\n type: Input\n }], errorMsg: [{\n type: Input\n }], errorMessage: [{\n type: Input\n }], actions: [{\n type: Input\n }], actionsMode: [{\n type: Input\n }], action: [{\n type: Output\n }], bulkAction: [{\n type: Output\n }], singleAction: [{\n type: Output\n }], beforeSaveTransform: [{\n type: Input\n }], afterSave: [{\n type: Output\n }], afterDelete: [{\n type: Output\n }], beforeSave: [{\n type: Output\n }], beforeDelete: [{\n type: Output\n }], formCancel: [{\n type: Output\n }], formInit: [{\n type: Output\n }], dataLoaded: [{\n type: Output\n }], selectionChange: [{\n type: Output\n }], error: [{\n type: Output\n }], filters: [{\n type: Input\n }], filterModel: [{\n type: Input\n }], search: [{\n type: Output\n }], showSearch: [{\n type: Input\n }], first: [{\n type: Input\n }], rows: [{\n type: Input\n }], totalRecords: [{\n type: Input\n }], pageChange: [{\n type: Output\n }], onSearch: [{\n type: Output\n }], visibleChange: [{\n type: Output\n }], rowSelectable: [{\n type: Input\n }], rowSelect: [{\n type: Output\n }], scrollHeight: [{\n type: Input\n }], paginator: [{\n type: Input\n }], service: [{\n type: Input\n }], apiName: [{\n type: Input\n }], moduleName: [{\n type: Input\n }], idField: [{\n type: Input\n }], showRowSelectionCheckbox: [{\n type: Input\n }], showAddButton: [{\n type: Input\n }], addPermissionName: [{\n type: Input\n }], addButtonConfigs: [{\n type: Input\n }], createEditActions: [{\n type: Input\n }], supportSubPage: [{\n type: Input\n }], tabs: [{\n type: Input\n }], bulkActionButtons: [{\n type: Input\n }], singleActionButtons: [{\n type: Input\n }], breadcrumb: [{\n type: Input\n }], mode: [{\n type: Input\n }], forceState: [{\n type: Input\n }], hideTable: [{\n type: Input\n }], autoShowForm: [{\n type: Input\n }], rowStyleFn: [{\n type: Input\n }], rowClassFn: [{\n type: Input\n }], disableRowCheckboxFn: [{\n type: Input\n }] } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2VuZXJpYy1jcnVkLXRhYmxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9uZy51aS5jb3JlL2dlbmVyaWMtY3J1ZC10YWJsZS9zcmMvbGliL2dlbmVyaWMtY3J1ZC10YWJsZS50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvbmcudWkuY29yZS9nZW5lcmljLWNydWQtdGFibGUvc3JjL2xpYi9nZW5lcmljLWNydWQtdGFibGUuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSx3REFBd0Q7QUFDeEQscURBQXFEO0FBQ3JELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNoRCxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsWUFBWSxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFDbEcsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNoRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFOUMsT0FBTyxFQUFFLFdBQVcsRUFBc0IsTUFBTyxlQUFlLENBQUM7QUFDakUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFRLGlCQUFpQixDQUFDO0FBQ2xELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUUvRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFFcEQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzlDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM5QyxPQUFPLEVBQUUsV0FBVyxFQUFFLG1CQUFtQixFQUFFLGdCQUFnQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDcEYsT0FBTyxFQUFFLFdBQVcs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akIsS0FBSztnQkFFRSxPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csT0FBTztzQkFBZixLQUFLO2dCQUNHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0csT0FBTztzQkFBZixLQUFLO2dCQUVJLHdCQUF3QjtzQkFBaEMsS0FBSztnQkFFSSxhQUFhO3NCQUFyQixLQUFLO2dCQUVDLGlCQUFpQjtzQkFBekIsS0FBSztnQkFFSyxnQkFBZ0I7c0JBQXhCLEtBQUs7Z0JBYUUsaUJBQWlCO3NCQUF6QixLQUFLO2dCQTRCRyxjQUFjO3NCQUF0QixLQUFLO2dCQUVHLElBQUk7c0JBQVosS0FBSztnQkFDSSxpQkFBaUI7c0JBQXpCLEtBQUs7Z0JBQ0csbUJBQW1CO3NCQUEzQixLQUFLO2dCQW9CQyxVQUFVO3NCQUFsQixLQUFLO2dCQXVCSyxJQUFJO3NCQUFaLEtBQUs7Z0JBR0csVUFBVTtzQkFBbEIsS0FBSztnQkFHTyxTQUFTO3NCQUFyQixLQUFLO2dCQUtPLFlBQVk7c0JBQXhCLEtBQUs7Z0JBSUcsVUFBVTtzQkFBbEIsS0FBSztnQkFHRyxVQUFVO3NCQUFsQixLQUFLO2dCQUdHLG9CQUFvQjtzQkFBNUIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlIEBhbmd1bGFyLWVzbGludC9uby1vdXRwdXQtb24tcHJlZml4ICovXHJcbi8qIGVzbGludC1kaXNhYmxlIEBhbmd1bGFyLWVzbGludC9uby1vdXRwdXQtbmF0aXZlICovXHJcbmltcG9ydCB7IERpdmlkZXJNb2R1bGUgfSBmcm9tICdwcmltZW5nL2RpdmlkZXInO1xyXG5pbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCBPdXRwdXQsIEV2ZW50RW1pdHRlciwgVmlld0NoaWxkLCBpbmplY3QsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBNZXNzYWdlTW9kdWxlIH0gZnJvbSAncHJpbWVuZy9tZXNzYWdlJztcclxuaW1wb3J0IHsgQnV0dG9uTW9kdWxlIH0gZnJvbSAncHJpbWVuZy9idXR0b24nO1xyXG5pbXBvcnQgeyBQYWdpbmF0b3JTdGF0ZSB9IGZyb20gJ3ByaW1lbmcvcGFnaW5hdG9yJztcclxuaW1wb3J0IHsgVGFibGVNb2R1bGUsVGFibGVMYXp5TG9hZEV2ZW50ICB9ICBmcm9tICdwcmltZW5nL3RhYmxlJztcclxuaW1wb3J0IHsgVG9vbGJhck1vZHVsZSB9ICAgZnJvbSAncHJpbWVuZy90b29sYmFyJztcclxuaW1wb3J0IHsgVHJhbnNsYXRlUGlwZSB9IGZyb20gJ0BlbGl0ZS5mcmFtZXdvcmsvbmcuY29yZS9waXBlcyc7XHJcbmltcG9ydCB7IEZvcm1seUZpZWxkQ29uZmlnLCBGb3JtbHlGb3JtT3B0aW9ucyB9IGZyb20gJ0BuZ3gtZm9ybWx5L2NvcmUnO1xyXG5pbXBvcnQgeyBJY29uRmllbGRNb2R1bGUgfSBmcm9tICdwcmltZW5nL2ljb25maWVsZCc7XHJcbmltcG9ydCB7IE1lbnVJdGVtIH0gZnJvbSAncHJpbWVuZy9hcGknO1xyXG5pbXBvcnQgeyBEcmF3ZXJNb2R1bGUgfSBmcm9tICdwcmltZW5nL2RyYXdlcic7XHJcbmltcG9ydCB7IERpYWxvZ01vZHVsZSB9IGZyb20gJ3ByaW1lbmcvZGlhbG9nJztcclxuaW1wb3J0IHsgRm9ybXNNb2R1bGUsIFJlYWN0aXZlRm9ybXNNb2R1bGUsIFVudHlwZWRGb3JtR3JvdXAgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IEJhc2VTZXJ2aWNlLCBMb2NhbGl6YXRpb25TZXJ2aWNlIH0gZnJvbSAnQGVsaXRlLmZyYW1ld29yay9uZy5jb3JlL3NlcnZpY2VzJztcclxuaW1wb3J0IHsgQnV0dG9uQ29uZmlnIH0gZnJvbSAnQGVsaXRlLmZyYW1ld29yay9uZy5jb3JlL21vZGVscyc7XHJcbmltcG9ydCB7IFN3YWxTZXJ2aWNlIH0gZnJvbSAnQGVsaXRlLmZyYW1ld29yay9uZy5jb3JlL3NlcnZpY2VzJztcclxuaW1wb3J0IHsgQWN0aW9uRGVmIH0gZnJvbSAnQGVsaXRlLmZyYW1ld29yay9uZy5jb3JlL21vZGVscyc7XHJcbmltcG9ydCB7IEdlbmVyaWNDcnVkSGVhZGVyQ29tcG9uZW50IH0gZnJvbSAnLi9nZW5lcmljLWNydWQtaGVhZGVyJztcclxuaW1wb3J0IHsgQWN0aXZhdGVkUm91dGUsIFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XHJcbmltcG9ydCB7IEdlbmVyaWNUYWJsZSB9IGZyb20gJ0BlbGl0ZS5mcmFtZXdvcmsvbmcudWkuY29yZS9nZW5lcmljLXRhYmxlJztcclxuaW1wb3J0IHsgR2VuZXJpY0RpYWxvZ0NvbXBvbmVudCB9IGZyb20gJ0BlbGl0ZS5mcmFtZXdvcmsvbmcudWkuY29yZS9nZW5lcmljLWRpYWxvZyc7XHJcbmltcG9ydCB7IERldGFpbFRhYiwgR2VuZXJpY1ZpZXdDb21wb25lbnQgfSBmcm9tICdAZWxpdGUuZnJhbWV3b3JrL25nLnVpLmNvcmUvZ2VuZXJpYy12aWV3JztcclxuaW1wb3J0IHsgUXVlcnlCdWlsZGVyU2VydmljZSB9IGZyb20gJ0BlbGl0ZS5mcmFtZXdvcmsvbmcudWkuY29yZS9nZW5lcmljLXNlYXJjaC1hZHZhbmNlZCc7XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIFBhZ2VDaGFuZ2VQYXlsb2FkIGV4dGVuZHMgUGFnaW5hdG9yU3RhdGUge1xyXG5zb3J0Pzogc3RyaW5nO1xyXG5maWx0ZXJzPzogUmVjb3JkPHN0cmluZywgYW55PjtcclxufVxyXG5cclxuZXhwb3J0IHR5cGUgQWN0aW9uc01vZGUgPSAnYnV0dG9ucycgfCAnbWVudSc7XHJcblxyXG4vKipcclxuICog2YXZg9mI2YYg2KzYr9mI2YQgQ1JVRCDYudin2YUg2YrZhdmD2YYg2KXYudin2K/YqSDYp9iz2KrYrtiv2KfZhdmHXHJcbiAqINmK2K/YudmFINin2YTYudmF2YTZitin2Kog2KfZhNij2LPYp9iz2YrYqTog2KXZhti02KfYodiMINmC2LHYp9ih2KnYjCDYqtit2K/Zitir2Iwg2K3YsNmBXHJcbiAqINmF2Lkg2KXZhdmD2KfZhtmK2Kkg2KfZhNiq2K7YtdmK2LUg2LnYqNixINi52K/YqSDYo9mI2LbYp9i5INmI2LnYsdi2XHJcbiAqL1xyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2FwcC1nZW5lcmljLWNydWQtdGFibGUnLFxyXG4gIHN0YW5kYWxvbmU6IHRydWUsXHJcbiAgaW1wb3J0czogW1xyXG4gICAgQ29tbW9uTW9kdWxlLFxyXG4gICAgVGFibGVNb2R1bGUsXHJcbiAgICBCdXR0b25Nb2R1bGUsXHJcbiAgICBHZW5lcmljVGFibGUsXHJcbiAgICBUb29sYmFyTW9kdWxlLFxyXG4gICAgVHJhbnNsYXRlUGlwZSxcclxuICAgIERpdmlkZXJNb2R1bGUsXHJcbiAgICBJY29uRmllbGRNb2R1bGUsXHJcbiAgICBEcmF3ZXJNb2R1bGUsXHJcbiAgICBSZWFjdGl2ZUZvcm1zTW9kdWxlLFxyXG4gICAgRm9ybXNNb2R1bGUsXHJcbiAgICBNZXNzYWdlTW9kdWxlLFxyXG4gICAgRGlhbG9nTW9kdWxlLFxyXG4gICAgR2VuZXJpY0RpYWxvZ0NvbXBvbmVudCxcclxuICAgIEdlbmVyaWNDcnVkSGVhZGVyQ29tcG9uZW50LFxyXG4gICAgR2VuZXJpY1ZpZXdDb21wb25lbnRcclxuXSxcclxuICB0ZW1wbGF0ZVVybDogJy4vZ2VuZXJpYy1jcnVkLXRhYmxlLmh0bWwnLFxyXG4gICBob3N0OiB7XHJcbiAgICAgICAgY2xhc3M6ICcnXHJcbiAgICB9LFxyXG59KVxyXG5cclxuZXhwb3J0IGNsYXNzIEdlbmVyaWNDcnVkVGFibGVDb21wb25lbnQ8VD4gaW1wbGVtZW50cyBPbkluaXQge1xyXG4gQFZpZXdDaGlsZCgnZ2VuZXJpY1RhYmxlJykgZ2VuZXJpY1RhYmxlITogR2VuZXJpY1RhYmxlPFQ+O1xyXG4gQFZpZXdDaGlsZCgnZGlhbG9nJykgZGlhbG9nITogR2VuZXJpY0RpYWxvZ0NvbXBvbmVudDtcclxuIHRyYW5zbGF0ZTpMb2NhbGl6YXRpb25TZXJ2aWNlID0gaW5qZWN0KExvY2FsaXphdGlvblNlcnZpY2UpO1xyXG4gcHJpdmF0ZSBzd2FsU2VydmljZSA9IGluamVjdChTd2FsU2VydmljZSk7XHJcbiAgcHJpdmF0ZSBxdWVyeUJ1aWxkZXIgPSBpbmplY3QoUXVlcnlCdWlsZGVyU2VydmljZSk7XHJcblxyXG4gICAgaG9tZTogTWVudUl0ZW0gfCB1bmRlZmluZWQgPSB7IGljb246ICdwaSBwaS1ob21lJywgcm91dGVyTGluazogJy8nIH07XHJcbiAgQElucHV0KCkgZGF0YTogVFtdID0gW107XHJcbiAgIGZvcm1GaWVsZHNfOiBGb3JtbHlGaWVsZENvbmZpZ1tdID0gW107ICAvLyA8LS0g2YfZhtinXHJcbiAgQElucHV0KCkgZm9ybUZpZWxkczogRm9ybWx5RmllbGRDb25maWdbXSA9IFtdOyAgLy8gPC0tINmH2YbYp1xyXG4gIEBJbnB1dCgpIGNvbHVtbnM6IEZvcm1seUZpZWxkQ29uZmlnW10gPSBbXTsgIC8vIDwtLSDZh9mG2KdcclxuICBASW5wdXQoKSBkaWFsb2dNYXhXaWR0aCA9ICc0MHJlbSc7IC8vIHVuc2V0ICwgZml0LWNvbnRlbnRcclxuICBASW5wdXQoKSBpc1ZpZXdNb2RlID0gZmFsc2U7XHJcbiAgICBASW5wdXQoKSBkaXNwbGF5TW9kZTpcclxuICAgIHwgJ2RyYXdlcicgfCAnZGlhbG9nJyB8ICdyb3V0ZScgfCAnaW5saW5lJ1xyXG4gICAgfCBQYXJ0aWFsPFJlY29yZDwnYWRkJyB8ICdlZGl0JyB8ICd2aWV3JywgJ2RyYXdlcicgfCAnZGlhbG9nJyB8ICdyb3V0ZScgfCAnaW5saW5lJz4+XHJcbiAgICA9ICdkcmF3ZXInO1xyXG4gIEBJbnB1dCgpIHVzZUNvbmZpcm1PblNhdmUgPSBmYWxzZTtcclxuICBASW5wdXQoKSBpc0VkaXRNb2RlID0gZmFsc2U7XHJcbiAgQElucHV0KCkgZHJhd2VyVmlzaWJsZSA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpIGRpYWxvZ1Zpc2libGUgPSBmYWxzZTtcclxuICAgZm9ybSA9IG5ldyBVbnR5cGVkRm9ybUdyb3VwKHt9KTtcclxuIEBJbnB1dCgpIG1vZGVsOiBhbnk7XHJcbiAgbW9kZWxfOiBhbnkgPSB7fTtcclxuICBASW5wdXQoKSBsb2FkaW5nID0gZmFsc2U7XHJcbiAgQElucHV0KCkgZXJyb3JNc2cgPSAnJztcclxuICBASW5wdXQoKSBlcnJvck1lc3NhZ2U6IHN0cmluZ3xhbnkgPSAnJztcclxuXHJcbm9wdGlvbnM6IEZvcm1seUZvcm1PcHRpb25zID0ge307XHJcblxyXG4gIEBJbnB1dCgpIGFjdGlvbnM6IEFjdGlvbkRlZjxUPltdID0gW107XHJcbiAgICAvKiog2KrYrdiv2K8g2LfYsdmK2YLYqSDYp9mE2LnYsdi2OiAnYnV0dG9ucycg2KPZiCAnbWVudScgKi9cclxuICBASW5wdXQoKSBhY3Rpb25zTW9kZTogQWN0aW9uc01vZGUgPSAnYnV0dG9ucyc7XHJcbiAgQE91dHB1dCgpIGFjdGlvbiA9IG5ldyBFdmVudEVtaXR0ZXI8eyBuYW1lOiBzdHJpbmc7IHJvdzogVCB9PigpO1xyXG4gIEBPdXRwdXQoKSBidWxrQWN0aW9uID0gbmV3IEV2ZW50RW1pdHRlcjx7IG5hbWU6IHN0cmluZzsgaXRlbXM6IFRbXSB9PigpO1xyXG4gIEBPdXRwdXQoKSBzaW5nbGVBY3Rpb24gPSBuZXcgRXZlbnRFbWl0dGVyPHsgbmFtZTogc3RyaW5nOyBpdGVtOiBUIH0+KCk7XHJcbiAgQElucHV0KCkgYmVmb3JlU2F2ZVRyYW5zZm9ybT86IChyZWNvcmQ6IGFueSwgaXNFZGl0OiBib29sZWFuKSA9PiBhbnk7IC8vIOKaoSDYr9mI2KfZhCDZhdiu2LXYtdipINmC2KjZhCDYp9mE2K3Zgdi4XHJcblxyXG5cclxuICAgQE91dHB1dCgpIGFmdGVyU2F2ZSA9IG5ldyBFdmVudEVtaXR0ZXI8eyByZWNvcmQ6IFQ7IGlzRWRpdDogYm9vbGVhbjsgcmVzcG9uc2U/OiBhbnkgfT4oKTtcclxuICBAT3V0cHV0KCkgYWZ0ZXJEZWxldGUgPSBuZXcgRXZlbnRFbWl0dGVyPHsgcmVjb3JkOiBUOyByZXNwb25zZT86IGFueSB9PigpO1xyXG4gIEBPdXRwdXQoKSBiZWZvcmVTYXZlID0gbmV3IEV2ZW50RW1pdHRlcjx7IHJlY29yZDogVDsgaXNFZGl0OiBib29sZWFuIH0+KCk7XHJcbiAgQE91dHB1dCgpIGJlZm9yZURlbGV0ZSA9IG5ldyBFdmVudEVtaXR0ZXI8eyByZWNvcmQ6IFQgfT4oKTtcclxuICBAT3V0cHV0KCkgZm9ybUNhbmNlbCA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcclxuICBAT3V0cHV0KCkgZm9ybUluaXQgPSBuZXcgRXZlbnRFbWl0dGVyPHsgZm9ybTogVW50eXBlZEZvcm1Hcm91cDsgbW9kZWw6IGFueSB9PigpO1xyXG4gIEBPdXRwdXQoKSBkYXRhTG9hZGVkID0gbmV3IEV2ZW50RW1pdHRlcjx7IGRhdGE6IFRbXTsgdG90YWw6IG51bWJlciB9PigpO1xyXG4gIEBPdXRwdXQoKSBzZWxlY3Rpb25DaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPHsgc2VsZWN0ZWQ6IFRbXTsgc2VsZWN0ZWRDb3VudDogbnVtYmVyIH0+KCk7XHJcbiAgQE91dHB1dCgpIGVycm9yID0gbmV3IEV2ZW50RW1pdHRlcjx7IGVycm9yOiBhbnk7IGNvbnRleHQ6IHN0cmluZyB9PigpO1xyXG5cclxuICAvLyDYp9mE2KjYrdirXHJcbi8vIFNlYXJjaFxyXG4gIEBJbnB1dCgpIGZpbHRlcnM6IGFueTtcclxuICAgQElucHV0KCkgZmlsdGVyTW9kZWw6IGFueSA9IHt9O1xyXG4gIEBPdXRwdXQoKSBzZWFyY2ggPSBuZXcgRXZlbnRFbWl0dGVyPHsgZmllbGQ6IHN0cmluZzsgZ2xvYmFsOiBzdHJpbmcgfT4oKTtcclxuXHJcbi8qKiDZhNmE2KrYrdmD2YUg2KjYpdi42YfYp9ixL9il2K7Zgdin2KEg2YLYs9mFINin2YTYqNit2KsgKi9cclxuICBASW5wdXQoKSBzaG93U2VhcmNoID0gdHJ1ZTtcclxuXHJcbiAgLyoqIFBhZ2luYXRpb24gSW5wdXRzICovXHJcbiAgQElucHV0KCkgZmlyc3QgPSAwO1xyXG4gIEBJbnB1dCgpIHJvd3MgPSAxMDtcclxuICBASW5wdXQoKSB0b3RhbFJlY29yZHMgPSAwO1xyXG4gIEBPdXRwdXQoKSBwYWdlQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxQYWdlQ2hhbmdlUGF5bG9hZD4oKTtcclxuICBAT3V0cHV0KCkgb25TZWFyY2ggPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcclxuXHJcbkBPdXRwdXQoKSB2aXNpYmxlQ2hhbmdlOiBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4gPSBuZXcgRXZlbnRFbWl0dGVyPGJvb2xlYW4+KCk7O1xyXG4vLyBAT3V0cHV0KCkgdmlzaWJsZUNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4oKTtcclxuICAgLyoqINmE2KzYudmEINin2YTYrNiv2YjZhCDZgtin2KjZhCDZhNin2K7YqtmK2KfYsSDYp9mE2LXZgdmI2YEgKNin2YHYqtix2KfYttmKIGZhbHNlKSAqL1xyXG4gIEBJbnB1dCgpIHJvd1NlbGVjdGFibGUgPSBmYWxzZTtcclxuICAvKiog2K3Yr9irINmK2K7YsdisINin2YTYtdmBINin2YTZhdit2K/ZkdivICovXHJcbiAgQE91dHB1dCgpIHJvd1NlbGVjdCA9IG5ldyBFdmVudEVtaXR0ZXI8VD4oKTtcclxuXHJcbiAgc2VsZWN0aW9uOiBUIHwgbnVsbCA9IG51bGw7XHJcblxyXG4gLy8g2KfZhNmB2LHYslxyXG4gIHNvcnRGaWVsZD86IHN0cmluZztcclxuICBzb3J0T3JkZXI6IDEgfCAtMSA9IDE7XHJcblxyXG5ASW5wdXQoKSBzY3JvbGxIZWlnaHQgPSAnNDAwcHgnO1xyXG5cclxuIEBJbnB1dCgpIHBhZ2luYXRvciA9IHRydWU7XHJcblxyXG5ASW5wdXQoKSBzZXJ2aWNlOiBCYXNlU2VydmljZSA9IGluamVjdChCYXNlU2VydmljZSk7XHJcbkBJbnB1dCgpIGFwaU5hbWUgPSAnJztcclxuQElucHV0KCkgbW9kdWxlTmFtZSA9ICcnO1xyXG5ASW5wdXQoKSBpZEZpZWxkID0gJ2lkJztcclxuXHJcbiBASW5wdXQoKSBzaG93Um93U2VsZWN0aW9uQ2hlY2tib3ggPSBmYWxzZTtcclxuXHJcbiAgQElucHV0KCkgc2hvd0FkZEJ1dHRvbiA9IHRydWU7XHJcblxyXG5ASW5wdXQoKSBhZGRQZXJtaXNzaW9uTmFtZT86c3RyaW5nO1xyXG5cclxuICBASW5wdXQoKSBhZGRCdXR0b25Db25maWdzOiBCdXR0b25Db25maWdbXSA9IFtcclxuICB7XHJcbiAgICBpY29uOiAncGkgcGktcGx1cycsXHJcbiAgICBsYWJlbDogJ0FERCcsXHJcbiAgICB2YXJpYW50OiAncmFpc2VkJyxcclxuICAgIHNldmVyaXR5OiAncHJpbWFyeScsXHJcbiAgICBzaXplOiAnc21hbGwnLFxyXG4gICAgYWN0aW9uTmFtZTogJ2FkZCcsXHJcbiAgICB2aXNpYmxlOiB0aGlzLnNob3dBZGRCdXR0b24sXHJcbiAgICBwZXJtaXNzaW9uOiB0aGlzLmFkZFBlcm1pc3Npb25OYW1lLFxyXG4gIH0sXHJcbl07XHJcblxyXG4gQElucHV0KCkgY3JlYXRlRWRpdEFjdGlvbnM6IEJ1dHRvbkNvbmZpZ1tdID0gW1xyXG4gIHtcclxuICAgIGljb246ICdwaSBwaS1jaGVjaycsXHJcbiAgICBsYWJlbDogJ1NBVkUnLFxyXG4gICAgdmFyaWFudDogJ3JhaXNlZCcsXHJcbiAgICBzZXZlcml0eTogJ3ByaW1hcnknLFxyXG4gICAgc2l6ZTogJ3NtYWxsJyxcclxuICAgIGFjdGlvbk5hbWU6ICdzYXZlJyxcclxuICAgIHR5cGU6ICdzdWJtaXQnLFxyXG4gICAgc3BsaXRBY3Rpb25zOiBbXHJcbiAgICAge1xyXG4gICAgICBsYWJlbDogdGhpcy50cmFuc2xhdGUuaW5zdGFudCgnU0FWRV9BTkRfQUREJyksXHJcbiAgICAgIGljb246ICdwaSBwaS1zYXZlJyxcclxuICAgICAgIGFjdGlvbk5hbWU6ICdzYXZlQW5kQWRkJ1xyXG4gICAgfVxyXG4gIF1cclxuICB9LFxyXG4gICB7XHJcbiAgICBpY29uOiAncGkgcGktdGltZXMnLFxyXG4gICAgbGFiZWw6ICdDQU5DRUwnLFxyXG4gICAgdmFyaWFudDogJ3JhaXNlZCcsXHJcbiAgICBzZXZlcml0eTogJ2RhbmdlcicsXHJcbiAgICBzaXplOiAnc21hbGwnLFxyXG4gICAgYWN0aW9uTmFtZTogJ2NhbmNlbCcsXHJcbiAgICB0eXBlOiAnYnV0dG9uJyxcclxuICB9LFxyXG5dO1xyXG5cclxuIEBJbnB1dCgpIHN1cHBvcnRTdWJQYWdlOiBib29sZWFuID0gdHJ1ZTtcclxuXHJcbiBASW5wdXQoKSB0YWJzOiBEZXRhaWxUYWJbXSA9IFtdO1xyXG4gIEBJbnB1dCgpIGJ1bGtBY3Rpb25CdXR0b25zOiBCdXR0b25Db25maWdbXSA9IFtdO1xyXG4gIEBJbnB1dCgpIHNpbmdsZUFjdGlvbkJ1dHRvbnM6IEJ1dHRvbkNvbmZpZ1tdID0gW107XHJcblxyXG4gX3NlbGVjdGVkUm93czogVFtdID0gW107XHJcblxyXG5nZXQgaXNTaW5nbGVJdGVtU2VsZWN0ZWQoKTogYm9vbGVhbiB7XHJcbiAgcmV0dXJuIHRoaXMuX3NlbGVjdGVkUm93cy5sZW5ndGggPT09IDE7XHJcbn1cclxuXHJcbmdldCBpc011bHRpcGxlSXRlbVNlbGVjdGVkKCk6IGJvb2xlYW4ge1xyXG4gIHJldHVybiB0aGlzLl9zZWxlY3RlZFJvd3MubGVuZ3RoID4gMTtcclxufVxyXG5cclxuZ2V0IHNlbGVjdGVkSXRlbXMoKTogVFtdIHtcclxuICByZXR1cm4gdGhpcy5fc2VsZWN0ZWRSb3dzO1xyXG59XHJcblxyXG5cclxuXHJcblxyXG5cclxuQElucHV0KCkgYnJlYWRjcnVtYjogTWVudUl0ZW1bXSB8IHVuZGVmaW5lZDtcclxuXHJcblxyXG5nZXQgYnJlYWRjcnVtYl8oKTogTWVudUl0ZW1bXSB8IHVuZGVmaW5lZCB7XHJcbiAgcmV0dXJuIHRoaXMuYnJlYWRjcnVtYj8ubWFwKHYgPT4gKHtcclxuICAgIC4uLnYsXHJcbiAgICBsYWJlbDogdGhpcy50cmFuc2xhdGUuaW5zdGFudCh2LmxhYmVsID8/ICcnKVxyXG4gIH0pKTtcclxufVxyXG5nZXQgcnRsKCk6IGJvb2xlYW4ge1xyXG4gIHRyeSB7XHJcbiAgICByZXR1cm4gZG9jdW1lbnQ/LmRvY3VtZW50RWxlbWVudD8uZGlyID09PSAncnRsJztcclxuICB9IGNhdGNoIChlcnJvcikge1xyXG4gICAgcmV0dXJuIHRydWU7XHJcbiAgfVxyXG59XHJcblxyXG4gLyoqXHJcbiAgICogTW9kZXMgdG8gY29udHJvbCB3aGF0IHBhcnRzIG9mIHRoZSBjb21wb25lbnQgYXJlIHZpc2libGVcclxuICAgKiAtICdmdWxsJzogVGFibGUgKyBDUlVEIG9wZXJhdGlvbnMgKGRlZmF1bHQpXHJcbiAgICogLSAnZm9ybS1vbmx5JzogT25seSBzaG93IGZvcm0gKGZvciBjcmVhdGUvZWRpdC92aWV3KVxyXG4gICAqIC0gJ3RhYmxlLW9ubHknOiBPbmx5IHNob3cgdGFibGUgKHJlYWQtb25seSBtb2RlKVxyXG4gICAqL1xyXG4gIEBJbnB1dCgpIG1vZGU6ICdmdWxsJyB8ICdmb3JtLW9ubHknIHwgJ3RhYmxlLW9ubHknIHwgJ2RldGFpbCcgPSAnZnVsbCc7XHJcblxyXG4gIC8qKiBGb3JjZSB0aGUgY29tcG9uZW50IHRvIHNob3cgc3BlY2lmaWMgc3RhdGUgKi9cclxuICBASW5wdXQoKSBmb3JjZVN0YXRlOiAnY3JlYXRlJyB8ICdlZGl0JyB8ICd2aWV3JyB8IG51bGwgPSBudWxsO1xyXG5cclxuICAvKiogSGlkZSB0YWJsZSBjb21wbGV0ZWx5IHdoZW4gaW4gZm9ybS1vbmx5IG1vZGUgKi9cclxuICBASW5wdXQoKSBnZXQgaGlkZVRhYmxlKCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuICh0aGlzLm1vZGUgPT09ICdmb3JtLW9ubHknIHx8IHRoaXMubW9kZSA9PT0gJ2RldGFpbCcgfHwgKHRoaXMuZm9yY2VTdGF0ZSAmJiB0aGlzLm1vZGUgIT09ICd0YWJsZS1vbmx5JykgKT8/IGZhbHNlO1xyXG4gIH1cclxuXHJcbiAgLyoqIEF1dG8tc2hvdyBmb3JtIHdoZW4gaW4gZm9ybS1vbmx5IG1vZGUgd2l0aCBmb3JjZVN0YXRlICovXHJcbiAgQElucHV0KCkgZ2V0IGF1dG9TaG93Rm9ybSgpOiBib29sZWFuIHtcclxuICAgIHJldHVybiB0aGlzLm1vZGUgPT09ICdmb3JtLW9ubHknICYmICEhdGhpcy5mb3JjZVN0YXRlO1xyXG4gIH1cclxuLy/ZhNiq2LrZitmK2LEg2YTZiNmGINi12YEg2YXYudmK2ZHZhlxyXG4gIEBJbnB1dCgpIHJvd1N0eWxlRm4/OiAocm93OiBUKSA9PiBhbnk7XHJcblxyXG4gIC8vIOKchSDZhNiq2LnZitmK2YYg2YPZhNin2LMgQ1NTINij2YggVGFpbHdpbmQg2LnZhNmJINin2YTYtdmBXHJcbiAgQElucHV0KCkgcm93Q2xhc3NGbj86IChyb3c6IFQpID0+IHN0cmluZyB8IHN0cmluZ1tdIHwgU2V0PHN0cmluZz47XHJcblxyXG4gIC8v2KLYrtixINmE2KrYrNmF2YrYryAvINiq2LnYt9mK2YQgY2hlY2tib3gg2KfZhNin2K7YqtmK2KfYsVxyXG4gIEBJbnB1dCgpIGRpc2FibGVSb3dDaGVja2JveEZuPzogKHJvdzogVCkgPT4gYm9vbGVhbjtcclxuIHRhYmxlQ2xhc3MgPSAnaC1mdWxsIGZsZXgtMSBmbGV4IGZsZXgtY29sIG92ZXJmbG93LWhpZGRlbiBib3JkZXIgYm9yZGVyLXN1cmZhY2Ugcm91bmRlZC0yeGwgeHM6cm91bmRlZC0yeGwgcC00IGJnLXdoaXRlJztcclxuXHJcbiBwcml2YXRlIHJvdXRlID0gaW5qZWN0KEFjdGl2YXRlZFJvdXRlKTtcclxucHJpdmF0ZSByb3V0ZXIgPSBpbmplY3QoUm91dGVyKTtcclxuY3VycmVudElkPzogc3RyaW5nIHwgbnVtYmVyO1xyXG5cclxuICBuZ09uSW5pdCgpIHtcclxuICAgICBpZiAodGhpcy5tb2R1bGVOYW1lKSB7XHJcbiAgICB0aGlzLnNlcnZpY2UubW9kdWxlTmFtZSA9IHRoaXMubW9kdWxlTmFtZTtcclxuICB9XHJcblxyXG4gICAgaWYodGhpcy5hcGlOYW1lICYmIHRoaXMuYXBpTmFtZSAhPSAnJyl7XHJcbiAgICAgIHRoaXMuc2VydmljZS5hcGlOYW1lID0gdGhpcy5hcGlOYW1lIDtcclxuICAgIH1cclxuXHJcbiAgaWYodGhpcy50YWJzLmxlbmd0aCA9PSAwKXtcclxuICAgIHRoaXMuZm9ybUZpZWxkc18gPSB0aGlzLmZvcm1GaWVsZHM7XHJcbiAgICB0aGlzLnRhYnMucHVzaCh7IGhlYWRlcjogJ9in2YTYqtmB2KfYtdmK2YQnLGljb246J3BpIHBpLWluZm8tY2lyY2xlJywgZmllbGRzOiB0aGlzLmZvcm1GaWVsZHNfLCBtb2RlbDogdGhpcy5tb2RlbCB9KTtcclxuICB9XHJcbiBpZiAodGhpcy5zdXBwb3J0U3ViUGFnZSkge1xyXG4gIHRoaXMucm91dGUucGFyYW1NYXAuc3Vic2NyaWJlKHBhcmFtcyA9PiB7XHJcbiAgICBjb25zdCBpZCA9IHBhcmFtcy5nZXQodGhpcy5pZEZpZWxkKTtcclxuICAgIGlmIChpZCAmJiBpZCAhPT0gJ25ldycgJiYgaWQgIT09ICdjcmVhdGUnICYmIGlkICE9PSAnYWRkJykge1xyXG4gICAgICB0aGlzLmN1cnJlbnRJZCA9IGlkO1xyXG4gICAgICB0aGlzLm1vZGUgPSAnZGV0YWlsJztcclxuICAgICAgdGhpcy5sb2FkRGV0YWlsKGlkKTtcclxuICAgIH0gZWxzZSBpZiAoaWQgPT0gJ25ldycgfHwgaWQgPT0gJ2NyZWF0ZScgfHwgaWQgPT0gJ2FkZCcpIHtcclxuICAgICAgdGhpcy5tb2RlID0gJ2RldGFpbCc7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLmN1cnJlbnRJZCA9IHVuZGVmaW5lZDtcclxuICAgIH1cclxuICB9KTtcclxufVxyXG4gIH1cclxuXHJcbiAgIC8vIDMuIEhhbmRsZSBIZWFkZXIncyBQYWdpbmF0ZSBDaGFuZ2UgRXZlbnRcclxuICBvbkhlYWRlclBhZ2luYXRlQ2hhbmdlKGV2ZW50OiB7IGZpcnN0OiBudW1iZXI7IHJvd3M6IG51bWJlciB9KSB7XHJcbiAgICB0aGlzLmZpcnN0ID0gZXZlbnQuZmlyc3Q7IC8vIFVwZGF0ZSB0aGUgJ2ZpcnN0JyBpbmRleFxyXG4gICAgdGhpcy5yb3dzID0gZXZlbnQucm93cztcclxuXHJcblxyXG4gICAgICAgY29uc3QgbGF6eUxvYWRFdmVudDogVGFibGVMYXp5TG9hZEV2ZW50ID0ge1xyXG4gICAgICAgIGZpcnN0OiB0aGlzLmZpcnN0LFxyXG4gICAgICAgIHJvd3M6IHRoaXMucm93cyxcclxuICAgICAgICAvLyBZb3UnZCB0eXBpY2FsbHkgaW5jbHVkZSBjdXJyZW50IHNvcnRpbmcgYW5kIGZpbHRlcmluZyBzdGF0ZSBoZXJlXHJcbiAgICAgICAgc29ydEZpZWxkOiB0aGlzLnNvcnRGaWVsZCxcclxuICAgICAgICBzb3J0T3JkZXI6IDEsXHJcbiAgICAgICAgZmlsdGVyczogdGhpcy5maWx0ZXJzICxcclxuICAgICAgICBnbG9iYWxGaWx0ZXI6IG51bGwsIC8vIG9yIHlvdXIgY3VycmVudCBnbG9iYWwgZmlsdGVyIHZhbHVlXHJcbiAgICB9O1xyXG4gICAgdGhpcy5vbkxhenlMb2FkKGxhenlMb2FkRXZlbnQpO1xyXG4gIH1cclxuICBsb2FkRGV0YWlsKGlkOiBzdHJpbmcgfCBudW1iZXIpIHtcclxuICB0aGlzLnNlcnZpY2UuZ2V0KGlkIGFzIGFueSkuc3Vic2NyaWJlKHtcclxuICAgIG5leHQ6IHJlcyA9PiB7XHJcbiAgICAgIHRoaXMubW9kZWwgPSByZXM7XHJcbiAgICB9XHJcbiAgfSk7XHJcbn1cclxuXHJcbi8vIEhlbHBlciBtZXRob2QgdG8gb3BlbiBmb3JtIHByb2dyYW1tYXRpY2FsbHlcclxub3BlbkZvcm0obW9kZTogJ2NyZWF0ZScgfCAnZWRpdCcgfCAndmlldycsIG1vZGVsPzogYW55KSB7XHJcbiAgdGhpcy5kaWFsb2cub3BlbkZvcm0obW9kZSxtb2RlbCk7XHJcbn1cclxuXHJcblxyXG4vLyAgcHJpdmF0ZSBkZXN0cm95JCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XHJcbiAvKiog2KfZhNii2YYg2YrYqtmE2YLZkdmJIHBhZ2luYXRpb24gKyBzb3J0INmB2Yog2K3Yr9irINmI2KfYrdivICovXHJcbm9uTGF6eUxvYWQoZXZlbnQ6IFRhYmxlTGF6eUxvYWRFdmVudCkge1xyXG4gIC8vIHRoaXMubW9kZWxfPSB0aGlzLm1vZGVsID8/IHt9O1xyXG5cclxuICB0aGlzLm1vZGVsPSB0aGlzLm1vZGVsID8/IHt9O1xyXG5cclxuICB0aGlzLmZvcm1GaWVsZHNfID0gdGhpcy5mb3JtRmllbGRzO1xyXG4gIGNvbnN0IGZpcnN0ICAgICA9IGV2ZW50LmZpcnN0ICA/PyB0aGlzLmZpcnN0O1xyXG4gIGNvbnN0IHJvd3MgICAgICA9IGV2ZW50LnJvd3MgICA/PyB0aGlzLnJvd3M7XHJcbiAgY29uc3Qgc29ydEZpZWxkID0gdHlwZW9mIGV2ZW50LnNvcnRGaWVsZCA9PT0gJ3N0cmluZydcclxuICAgICAgICAgICAgICAgICAgICA/IGV2ZW50LnNvcnRGaWVsZFxyXG4gICAgICAgICAgICAgICAgICAgIDogdGhpcy5zb3J0RmllbGQ7XHJcbiAgY29uc3Qgc29ydE9yZGVyID0gZXZlbnQuc29ydE9yZGVyID09PSAtMSA/IC0xIDogMTtcclxuXHJcblxyXG4gIGNvbnN0IGZpbHRlcnM6IFJlY29yZDxzdHJpbmcsIGFueT4gPSB7fTtcclxuICAgIGlmIChldmVudC5maWx0ZXJzKSB7XHJcbiAgICAgIE9iamVjdC5lbnRyaWVzKGV2ZW50LmZpbHRlcnMpLmZvckVhY2goKFtmaWVsZCwgbWV0YV0pID0+IHtcclxuICAgICAgICBjb25zdCB2YWx1ZSA9IChtZXRhIGFzIGFueSkudmFsdWU7XHJcbiAgICAgICAgaWYgKHZhbHVlICE9IG51bGwgJiYgdmFsdWUgIT09ICcnKSB7XHJcbiAgICAgICAgICBmaWx0ZXJzW2ZpZWxkXSA9IHZhbHVlO1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgdmFyIHF1ZXJ5U3RyaW5nID0gJyc7XHJcbiAgICAvLyBEZWZhdWx0IHF1ZXJ5XHJcbiAgaWYoIWZpbHRlcnNbJ3F1ZXJ5J10pe1xyXG4gICAgICAgLy8gVXNlIHRoZSBuZXcgUXVlcnlCdWlsZGVyU2VydmljZSBtZXRob2RzXHJcbiAgICBjb25zdCBvZGF0YVBhcmFtcyA9IHRoaXMucXVlcnlCdWlsZGVyLmJ1aWxkT0RhdGFGcm9tUXVlcnlNb2RlbCh0aGlzLmZpbHRlck1vZGVsLCB0aGlzLmZvcm1GaWVsZHNfKTtcclxuICAgIC8vIHRoaXMub2RhdGFTZWFyY2guZW1pdChvZGF0YVBhcmFtcyk7XHJcblxyXG4gICAgLy8gR2VuZXJhdGUgcXVlcnkgc3RyaW5nIHVzaW5nIHRoZSB1bmlmaWVkIG1ldGhvZFxyXG4gICAgIHF1ZXJ5U3RyaW5nID0gdGhpcy5xdWVyeUJ1aWxkZXIudG9PRGF0YVF1ZXJ5U3RyaW5nKG9kYXRhUGFyYW1zKTtcclxuICAgIC8vIGNvbnNvbGUubG9nKCdPRGF0YSBRdWVyeSBTdHJpbmc6JywgcXVlcnlTdHJpbmcpO1xyXG5cclxuXHJcbiAgfVxyXG5cclxuICB0aGlzLmZpcnN0ICAgICA9IGZpcnN0O1xyXG4gIHRoaXMucm93cyAgICAgID0gcm93cztcclxuICB0aGlzLnNvcnRGaWVsZCA9IHNvcnRGaWVsZDtcclxuICB0aGlzLnNvcnRPcmRlciA9IHNvcnRPcmRlciBhcyAxfCAtMTtcclxuY29uc3QgZGlyID0gc29ydE9yZGVyID09PSAxID8gJ2FzYycgOiAnZGVzYyc7XHJcbiBjb25zdCBzb3J0ID0gc29ydEZpZWxkID8gYCR7c29ydEZpZWxkfSAke2Rpcn1gIDogdW5kZWZpbmVkO1xyXG5cclxuICAvLyB0aGlzLnBhZ2VDaGFuZ2UuZW1pdCh7IGZpcnN0LCByb3dzICxzb3J0LCBmaWx0ZXJzIH0pO1xyXG4gICB0aGlzLmFwcGx5U2VhcmNoKFxyXG4gICAgICB7XHJcbiAgICAgICAgZmlsdGVyOnRoaXMubW9kZWxbJ2ZpbHRlciddLFxyXG4gICAgICAgIHF1ZXJ5OnF1ZXJ5U3RyaW5nLFxyXG4gICAgICAgIHNvcnRpbmc6c29ydCxcclxuICAgICAgICBza2lwQ291bnQ6Zmlyc3QsXHJcbiAgICAgICAgbWF4UmVzdWx0Q291bnQ6cm93cyxcclxuXHJcbiAgICB9XHJcbiAgKTtcclxuXHJcblxyXG4gIC8vINmK2KjZhtmKINin2YTZhti1INmI2KXYsdiz2KfZhNmHXHJcblxyXG59XHJcblxyXG5cclxuICAvKiog2KrYtdmK2YrYsSDYp9mE2KjZitin2YbYp9iqINit2LPYqCDYp9mE2LXZgdit2KkgKi9cclxuICBnZXQgcGFnZWREYXRhKCk6IFRbXSB7XHJcbiAgICAvLyByZXR1cm4gdGhpcy5kYXRhID8gdGhpcy5kYXRhLnNsaWNlKHRoaXMuZmlyc3QsIHRoaXMuZmlyc3QgKyB0aGlzLnJvd3MpIDogW107XHJcblxyXG4gICAgcmV0dXJuIHRoaXMuZGF0YTtcclxuICB9XHJcblxyXG5cclxuXHJcbmdldCBnbG9iYWxGaWx0ZXJGaWVsZHMoKTogc3RyaW5nW10ge1xyXG4gIHJldHVybiB0aGlzLmNvbHVtbnMubWFwKGMgPT4gU3RyaW5nKGMua2V5KSk7XHJcbn1cclxuXHJcblxyXG5cclxuXHJcblxyXG4gIC8qKiDYo9ix2LPZhCDYpdmE2Ykg2KfZhNij2Kgg2YTYo9iq2YXYqtipINi02YPZhCDYp9mE2KjYrdirINil2LDYpyDZitit2KrYp9isICovXHJcbi8vIGZyb20gZ2VuZXJpYy1jcnVkLXRhYmxlLmNvbXBvbmVudC50c1xyXG4vKiog2KjYr9mR2YQgYXBwbHlTZWFyY2gg2YTYqtio2KsgcGFnZUNoYW5nZSDZhdio2KfYtNix2KnZiyAqL1xyXG5yZXNldFBhZ2UoZmlsdGVyczogYW55KSB7XHJcbiAgICAvLyB0aGlzLmdlbmVyaWNUYWJsZS5hcHBseUZpbHRlcihnbG9iYWwpO1xyXG4gICAgdGhpcy5maXJzdCA9IDA7XHJcbiAgICB0aGlzLnJvd3MgPSAxMDtcclxuICB9XHJcbi8qKiDYqNiv2ZHZhCBhcHBseVNlYXJjaCDZhNiq2KjYqyBwYWdlQ2hhbmdlINmF2KjYp9i02LHYqdmLICovXHJcbiBhcHBseVNlYXJjaChmaWx0ZXJzOiBhbnkpIHtcclxuICAgIC8vIHRoaXMuZ2VuZXJpY1RhYmxlLmFwcGx5RmlsdGVyKGdsb2JhbCk7XHJcbiAgICAgIHRoaXMub25TZWFyY2guZW1pdChmaWx0ZXJzKTtcclxuICB9XHJcblxyXG5cclxuIC8qKiDYr9in2YTYqSDYqtmG2YHZkdiwINi52YbYryDYp9mE2YbZgtixINi52YTZiSDYtdmBICovXHJcbiAgb25Sb3dDbGljayhyb3c6IFQpIHtcclxuICAgIGlmICh0aGlzLnJvd1NlbGVjdGFibGUpIHtcclxuICAgICAgdGhpcy5yb3dTZWxlY3QuZW1pdChyb3cpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcblxyXG5cclxub25TdWJtaXQoKSB7XHJcbiBpZiAodGhpcy5tb2RlICE9ICdmb3JtLW9ubHknKSB7XHJcblxyXG4gICAgICAgICAgdGhpcy5hcHBseVNlYXJjaCgnJyk7XHJcbiAgICAgICAgfVxyXG59XHJcblxyXG4gICAgIHRyYWNrQnlJZHgoaW5kZXg6IG51bWJlciwgaXRlbTogYW55KTogbnVtYmVyIHtcclxuICByZXR1cm4gaW5kZXg7XHJcbiB9XHJcblxyXG5vblNpbmdsZUl0ZW1BY3Rpb24oYnRuOiBCdXR0b25Db25maWcpOiB2b2lkIHtcclxuICBpZiAoIXRoaXMuaXNTaW5nbGVJdGVtU2VsZWN0ZWQpIHJldHVybjtcclxuXHJcbiAgY29uc3Qgc2VsZWN0ZWRJdGVtID0gdGhpcy5fc2VsZWN0ZWRSb3dzWzBdO1xyXG4gIHRoaXMuc2luZ2xlQWN0aW9uLmVtaXQoe1xyXG4gICAgbmFtZTogYnRuLmFjdGlvbk5hbWUgPz8gJ3NpbmdsZUFjdGlvbicsXHJcbiAgICBpdGVtOiBzZWxlY3RlZEl0ZW1cclxuICB9KTtcclxufVxyXG5cclxub25JbnRlcm5hbEJ1bGtBY3Rpb24oYnRuOiBCdXR0b25Db25maWcpOiB2b2lkIHtcclxuICBpZiAoIXRoaXMuaXNNdWx0aXBsZUl0ZW1TZWxlY3RlZCkgcmV0dXJuO1xyXG5cclxuICB0aGlzLmJ1bGtBY3Rpb24uZW1pdCh7XHJcbiAgICBuYW1lOiBidG4uYWN0aW9uTmFtZSA/PyAnYnVsa0FjdGlvbicsXHJcbiAgICBpdGVtczogWy4uLnRoaXMuX3NlbGVjdGVkUm93c10gIC8vINmG2LHYs9mEINmG2LPYrtipINmF2YYg2KfZhNmF2LXZgdmI2YHYqVxyXG4gIH0pO1xyXG59XHJcblxyXG5cclxufVxyXG4iLCI8ZGl2XHJcbiAgW2NsYXNzXT1cIm1vZGUgIT09ICdmb3JtLW9ubHknICYmIG1vZGUgIT09ICdkZXRhaWwnICA/IHRhYmxlQ2xhc3MgOiAnJ1wiXHJcbj5cclxuIDxhcHAtZ2VuZXJpYy1jcnVkLWhlYWRlclxyXG4gIFttb2RlXT1cIm1vZGVcIlxyXG4gIFticmVhZGNydW1iXT1cImJyZWFkY3J1bWJfXCJcclxuICBbaXNTaW5nbGVJdGVtU2VsZWN0ZWRdPVwiaXNTaW5nbGVJdGVtU2VsZWN0ZWRcIlxyXG4gIFtzZWxlY3RlZEl0ZW1zXT1cIl9zZWxlY3RlZFJvd3NcIlxyXG4gIFtzaW5nbGVBY3Rpb25CdXR0b25zXT1cInNpbmdsZUFjdGlvbkJ1dHRvbnNcIlxyXG4gIFtidWxrQWN0aW9uQnV0dG9uc109XCJidWxrQWN0aW9uQnV0dG9uc1wiXHJcbiAgW2FkZEJ1dHRvbkNvbmZpZ3NdPVwiYWRkQnV0dG9uQ29uZmlnc1wiXHJcbiAgW2FwaU5hbWVdPVwic2VydmljZS5hcGlOYW1lXCJcclxuICBbZmlsdGVyc109XCJmaWx0ZXJzXCJcclxuICBbZmlsdGVyTW9kZWxdPVwiZmlsdGVyTW9kZWxcIlxyXG4gIFtzaG93U2VhcmNoXT1cInNob3dTZWFyY2hcIlxyXG4gIChzaW5nbGVJdGVtQWN0aW9uKT1cIm9uU2luZ2xlSXRlbUFjdGlvbigkZXZlbnQpXCJcclxuICAoYnVsa0FjdGlvbik9XCJvbkludGVybmFsQnVsa0FjdGlvbigkZXZlbnQpXCJcclxuICAoYWN0aW9uKT1cImFjdGlvbi5lbWl0KCRldmVudClcIlxyXG4gIChzZWFyY2gpPVwicmVzZXRQYWdlKCRldmVudCk7YXBwbHlTZWFyY2goJGV2ZW50KTtcIlxyXG4gIChyZXNldFNlYXJjaCk9XCJyZXNldFBhZ2UoJGV2ZW50KTthcHBseVNlYXJjaCgnJyk7XCJcclxuICAocGFnaW5hdGVDaGFuZ2UpPVwib25IZWFkZXJQYWdpbmF0ZUNoYW5nZSgkZXZlbnQpXCJcclxuICBbZmlyc3RdPVwiZmlyc3RcIlxyXG4gIFtyb3dzXT1cInJvd3NcIlxyXG4gIFt0b3RhbFJlY29yZHNdPVwidG90YWxSZWNvcmRzXCJcclxuLz5cclxuXHJcbiAgIEBpZiAoIWhpZGVUYWJsZSkge1xyXG4gIDxsaWItZ2VuZXJpYy10YWJsZVxyXG4gICAgW2RhdGFdPVwiZGF0YVwiXHJcbiAgICBbY29sdW1uc109XCJjb2x1bW5zXCJcclxuICAgIFtwYWdpbmF0b3JdPVwicGFnaW5hdG9yXCJcclxuICAgIFtsb2FkaW5nXT1cImxvYWRpbmdcIlxyXG4gICAgW2FjdGlvbnNdPVwiYWN0aW9uc1wiXHJcbiAgICBbYWN0aW9uc01vZGVdPVwiYWN0aW9uc01vZGVcIlxyXG4gICAgW2ZpcnN0XT1cImZpcnN0XCJcclxuICAgIFtyb3dzXT1cInJvd3NcIlxyXG4gICAgW3RvdGFsUmVjb3Jkc109XCJ0b3RhbFJlY29yZHNcIlxyXG4gICAgW3NvcnRGaWVsZF09XCJzb3J0RmllbGRcIlxyXG4gICAgW3NvcnRPcmRlcl09XCJzb3J0T3JkZXJcIlxyXG4gICAgW2FkZEJ1dHRvbkNvbmZpZ3NdPVwiYWRkQnV0dG9uQ29uZmlnc1wiXHJcbiAgICBbZ2xvYmFsRmlsdGVyRmllbGRzXT1cImdsb2JhbEZpbHRlckZpZWxkc1wiXHJcbiAgICBbc2Nyb2xsSGVpZ2h0XT1cInNjcm9sbEhlaWdodFwiXHJcbiAgICBbc2hvd1Jvd1NlbGVjdGlvbkNoZWNrYm94XT1cInNob3dSb3dTZWxlY3Rpb25DaGVja2JveFwiXHJcbiAgICAoYWN0aW9uKT1cImFjdGlvbi5lbWl0KCRldmVudClcIlxyXG4gICAgKG9uQWRkTmV3KT1cImFjdGlvbi5lbWl0KHsgbmFtZTogJ2FkZCcsIHJvdzogbnVsbCEgfSlcIlxyXG4gICAgKHBhZ2VDaGFuZ2UpPVwib25MYXp5TG9hZCgkZXZlbnQpXCJcclxuICAgIFtyb3dTZWxlY3RhYmxlXT1cInJvd1NlbGVjdGFibGVcIlxyXG4gICAgKHJvd1NlbGVjdCk9XCJvblJvd0NsaWNrKCRldmVudClcIlxyXG4gICAgWyhzZWxlY3Rpb24pXT1cIl9zZWxlY3RlZFJvd3NcIlxyXG4gICAgI2dlbmVyaWNUYWJsZVxyXG4gID48L2xpYi1nZW5lcmljLXRhYmxlPlxyXG5cclxuICB9XHJcblxyXG4gIDxhcHAtZ2VuZXJpYy1kaWFsb2dcclxuICAgICNkaWFsb2dcclxuICAgICBbc2VydmljZV09XCJzZXJ2aWNlXCJcclxuICAgW2FwaU5hbWVdPVwic2VydmljZS5hcGlOYW1lXCJcclxuICAgIFtmb3JtRmllbGRzXT1cImZvcm1GaWVsZHNcIlxyXG4gICAgW21vZGVsXT1cIm1vZGVsXCJcclxuICAgIFthcGlOYW1lXT1cImFwaU5hbWVcIlxyXG4gICAgW2lkRmllbGRdPVwiaWRGaWVsZFwiXHJcbiAgICBbZGlhbG9nTWF4V2lkdGhdPVwiZGlhbG9nTWF4V2lkdGhcIlxyXG4gICAgW2Rpc3BsYXlNb2RlXT1cImRpc3BsYXlNb2RlXCJcclxuICAgIFttb2RlXT1cIm1vZGVcIlxyXG4gICAgW2ZvcmNlU3RhdGVdPVwiZm9yY2VTdGF0ZVwiXHJcbiAgICBbZHJhd2VyVmlzaWJsZV09XCJkcmF3ZXJWaXNpYmxlXCJcclxuICAgIFtkaWFsb2dWaXNpYmxlXT1cImRpYWxvZ1Zpc2libGVcIlxyXG4gICAgW2lzVmlld01vZGVdPVwiaXNWaWV3TW9kZVwiXHJcbiAgICBbaXNFZGl0TW9kZV09XCJpc0VkaXRNb2RlXCJcclxuICAgIFt1c2VDb25maXJtT25TYXZlXT1cInVzZUNvbmZpcm1PblNhdmVcIlxyXG4gICAgW2xvYWRpbmddPVwibG9hZGluZ1wiXHJcbiAgICBbZXJyb3JNc2ddPVwiZXJyb3JNc2dcIlxyXG4gICAgW2Vycm9yTWVzc2FnZV09XCJlcnJvck1lc3NhZ2VcIlxyXG4gICAgW2JlZm9yZVNhdmVUcmFuc2Zvcm1dPVwiYmVmb3JlU2F2ZVRyYW5zZm9ybVwiXHJcbiAgICAoYWN0aW9uKT1cImFjdGlvbi5lbWl0KCRldmVudClcIlxyXG4gICAgKGFmdGVyU2F2ZSk9XCJhZnRlclNhdmUuZW1pdCgkZXZlbnQpO29uU3VibWl0KCk7XCJcclxuICAgIChhZnRlckRlbGV0ZSk9XCJhZnRlckRlbGV0ZS5lbWl0KCRldmVudClcIlxyXG4gICAgKGJlZm9yZVNhdmUpPVwiYmVmb3JlU2F2ZS5lbWl0KCRldmVudClcIlxyXG4gICAgKGJlZm9yZURlbGV0ZSk9XCJiZWZvcmVEZWxldGUuZW1pdCgkZXZlbnQpXCJcclxuICAgIChmb3JtQ2FuY2VsKT1cImZvcm1DYW5jZWwuZW1pdCgpXCJcclxuICAgIChmb3JtSW5pdCk9XCJmb3JtSW5pdC5lbWl0KCRldmVudClcIlxyXG4gICAgKGRhdGFMb2FkZWQpPVwiZGF0YUxvYWRlZC5lbWl0KCRldmVudClcIlxyXG4gICAgKHNlbGVjdGlvbkNoYW5nZSk9XCJzZWxlY3Rpb25DaGFuZ2UuZW1pdCgkZXZlbnQpXCJcclxuICAgIChlcnJvcik9XCJlcnJvci5lbWl0KCRldmVudClcIlxyXG4gICAgKHZpc2libGVDaGFuZ2UpPVwidmlzaWJsZUNoYW5nZS5lbWl0KCRldmVudClcIlxyXG4gID5cclxuICA8L2FwcC1nZW5lcmljLWRpYWxvZz5cclxuXHJcbiAgIDxhcHAtZGV0YWlsLXZpZXdcclxuICAgIFtkaXNwbGF5TW9kZV09XCJkaXNwbGF5TW9kZVwiXHJcbiAgICBbbW9kZV09XCJtb2RlXCJcclxuICAgIFt0aXRsZV09XCJicmVhZGNydW1iXz8uWzBdPy5sYWJlbCB8fCAnRGV0YWlsJ1wiXHJcbiAgICAgW3NlcnZpY2VdPVwic2VydmljZVwiXHJcbiAgIFthcGlOYW1lXT1cInNlcnZpY2UuYXBpTmFtZVwiXHJcbiAgICBbYXBpTmFtZV09XCJhcGlOYW1lXCJcclxuICAgIFtpZEZpZWxkXT1cImlkRmllbGRcIlxyXG4gICAgW2FjdGlvbnNdPVwiYWN0aW9uc1wiXHJcbiAgICBbZm9ybUZpZWxkc109XCJmb3JtRmllbGRzXCJcclxuICAgIFttb2RlbF09XCJtb2RlbFwiXHJcbiAgICBbdGFic109XCJ0YWJzXCJcclxuICAgIFtsb2FkaW5nXT1cImxvYWRpbmdcIlxyXG4gICAgW2JyZWFkY3J1bWJdPVwiYnJlYWRjcnVtYl9cIlxyXG4gICAgW2NyZWF0ZUVkaXRBY3Rpb25zXT1cImNyZWF0ZUVkaXRBY3Rpb25zXCJcclxuICAgICAoYWN0aW9uKT1cImFjdGlvbi5lbWl0KCRldmVudClcIlxyXG4gICAgPlxyXG4gIDwvYXBwLWRldGFpbC12aWV3PlxyXG5cclxuPC9kaXY+XHJcbiJdfQ==","/**\n * Generated bundle index. Do not edit.\n */\nexport * from './index';\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWxpdGUuZnJhbWV3b3JrLW5nLnVpLmNvcmUtZ2VuZXJpYy1jcnVkLXRhYmxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGlicy9uZy51aS5jb3JlL2dlbmVyaWMtY3J1ZC10YWJsZS9zcmMvZWxpdGUuZnJhbWV3b3JrLW5nLnVpLmNvcmUtZ2VuZXJpYy1jcnVkLXRhYmxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsY0FBYyxTQUFTLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEdlbmVyYXRlZCBidW5kbGUgaW5kZXguIERvIG5vdCBlZGl0LlxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vaW5kZXgnO1xuIl19"],"names":[],"mappings":"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"}
|
|
@@ -129,6 +129,7 @@ declare class GenericCrudTableComponent<T> implements OnInit {
|
|
|
129
129
|
paginator: boolean;
|
|
130
130
|
service: BaseService;
|
|
131
131
|
apiName: string;
|
|
132
|
+
moduleName: string;
|
|
132
133
|
idField: string;
|
|
133
134
|
showRowSelectionCheckbox: boolean;
|
|
134
135
|
showAddButton: boolean;
|
|
@@ -190,7 +191,7 @@ declare class GenericCrudTableComponent<T> implements OnInit {
|
|
|
190
191
|
onSingleItemAction(btn: ButtonConfig): void;
|
|
191
192
|
onInternalBulkAction(btn: ButtonConfig): void;
|
|
192
193
|
static ɵfac: i0.ɵɵFactoryDeclaration<GenericCrudTableComponent<any>, never>;
|
|
193
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<GenericCrudTableComponent<any>, "app-generic-crud-table", never, { "data": { "alias": "data"; "required": false; }; "formFields": { "alias": "formFields"; "required": false; }; "columns": { "alias": "columns"; "required": false; }; "dialogMaxWidth": { "alias": "dialogMaxWidth"; "required": false; }; "isViewMode": { "alias": "isViewMode"; "required": false; }; "displayMode": { "alias": "displayMode"; "required": false; }; "useConfirmOnSave": { "alias": "useConfirmOnSave"; "required": false; }; "isEditMode": { "alias": "isEditMode"; "required": false; }; "drawerVisible": { "alias": "drawerVisible"; "required": false; }; "dialogVisible": { "alias": "dialogVisible"; "required": false; }; "model": { "alias": "model"; "required": false; }; "loading": { "alias": "loading"; "required": false; }; "errorMsg": { "alias": "errorMsg"; "required": false; }; "errorMessage": { "alias": "errorMessage"; "required": false; }; "actions": { "alias": "actions"; "required": false; }; "actionsMode": { "alias": "actionsMode"; "required": false; }; "beforeSaveTransform": { "alias": "beforeSaveTransform"; "required": false; }; "filters": { "alias": "filters"; "required": false; }; "filterModel": { "alias": "filterModel"; "required": false; }; "showSearch": { "alias": "showSearch"; "required": false; }; "first": { "alias": "first"; "required": false; }; "rows": { "alias": "rows"; "required": false; }; "totalRecords": { "alias": "totalRecords"; "required": false; }; "rowSelectable": { "alias": "rowSelectable"; "required": false; }; "scrollHeight": { "alias": "scrollHeight"; "required": false; }; "paginator": { "alias": "paginator"; "required": false; }; "service": { "alias": "service"; "required": false; }; "apiName": { "alias": "apiName"; "required": false; }; "idField": { "alias": "idField"; "required": false; }; "showRowSelectionCheckbox": { "alias": "showRowSelectionCheckbox"; "required": false; }; "showAddButton": { "alias": "showAddButton"; "required": false; }; "addPermissionName": { "alias": "addPermissionName"; "required": false; }; "addButtonConfigs": { "alias": "addButtonConfigs"; "required": false; }; "createEditActions": { "alias": "createEditActions"; "required": false; }; "supportSubPage": { "alias": "supportSubPage"; "required": false; }; "tabs": { "alias": "tabs"; "required": false; }; "bulkActionButtons": { "alias": "bulkActionButtons"; "required": false; }; "singleActionButtons": { "alias": "singleActionButtons"; "required": false; }; "breadcrumb": { "alias": "breadcrumb"; "required": false; }; "mode": { "alias": "mode"; "required": false; }; "forceState": { "alias": "forceState"; "required": false; }; "hideTable": { "alias": "hideTable"; "required": false; }; "autoShowForm": { "alias": "autoShowForm"; "required": false; }; "rowStyleFn": { "alias": "rowStyleFn"; "required": false; }; "rowClassFn": { "alias": "rowClassFn"; "required": false; }; "disableRowCheckboxFn": { "alias": "disableRowCheckboxFn"; "required": false; }; }, { "action": "action"; "bulkAction": "bulkAction"; "singleAction": "singleAction"; "afterSave": "afterSave"; "afterDelete": "afterDelete"; "beforeSave": "beforeSave"; "beforeDelete": "beforeDelete"; "formCancel": "formCancel"; "formInit": "formInit"; "dataLoaded": "dataLoaded"; "selectionChange": "selectionChange"; "error": "error"; "search": "search"; "pageChange": "pageChange"; "onSearch": "onSearch"; "visibleChange": "visibleChange"; "rowSelect": "rowSelect"; }, never, never, true, never>;
|
|
194
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<GenericCrudTableComponent<any>, "app-generic-crud-table", never, { "data": { "alias": "data"; "required": false; }; "formFields": { "alias": "formFields"; "required": false; }; "columns": { "alias": "columns"; "required": false; }; "dialogMaxWidth": { "alias": "dialogMaxWidth"; "required": false; }; "isViewMode": { "alias": "isViewMode"; "required": false; }; "displayMode": { "alias": "displayMode"; "required": false; }; "useConfirmOnSave": { "alias": "useConfirmOnSave"; "required": false; }; "isEditMode": { "alias": "isEditMode"; "required": false; }; "drawerVisible": { "alias": "drawerVisible"; "required": false; }; "dialogVisible": { "alias": "dialogVisible"; "required": false; }; "model": { "alias": "model"; "required": false; }; "loading": { "alias": "loading"; "required": false; }; "errorMsg": { "alias": "errorMsg"; "required": false; }; "errorMessage": { "alias": "errorMessage"; "required": false; }; "actions": { "alias": "actions"; "required": false; }; "actionsMode": { "alias": "actionsMode"; "required": false; }; "beforeSaveTransform": { "alias": "beforeSaveTransform"; "required": false; }; "filters": { "alias": "filters"; "required": false; }; "filterModel": { "alias": "filterModel"; "required": false; }; "showSearch": { "alias": "showSearch"; "required": false; }; "first": { "alias": "first"; "required": false; }; "rows": { "alias": "rows"; "required": false; }; "totalRecords": { "alias": "totalRecords"; "required": false; }; "rowSelectable": { "alias": "rowSelectable"; "required": false; }; "scrollHeight": { "alias": "scrollHeight"; "required": false; }; "paginator": { "alias": "paginator"; "required": false; }; "service": { "alias": "service"; "required": false; }; "apiName": { "alias": "apiName"; "required": false; }; "moduleName": { "alias": "moduleName"; "required": false; }; "idField": { "alias": "idField"; "required": false; }; "showRowSelectionCheckbox": { "alias": "showRowSelectionCheckbox"; "required": false; }; "showAddButton": { "alias": "showAddButton"; "required": false; }; "addPermissionName": { "alias": "addPermissionName"; "required": false; }; "addButtonConfigs": { "alias": "addButtonConfigs"; "required": false; }; "createEditActions": { "alias": "createEditActions"; "required": false; }; "supportSubPage": { "alias": "supportSubPage"; "required": false; }; "tabs": { "alias": "tabs"; "required": false; }; "bulkActionButtons": { "alias": "bulkActionButtons"; "required": false; }; "singleActionButtons": { "alias": "singleActionButtons"; "required": false; }; "breadcrumb": { "alias": "breadcrumb"; "required": false; }; "mode": { "alias": "mode"; "required": false; }; "forceState": { "alias": "forceState"; "required": false; }; "hideTable": { "alias": "hideTable"; "required": false; }; "autoShowForm": { "alias": "autoShowForm"; "required": false; }; "rowStyleFn": { "alias": "rowStyleFn"; "required": false; }; "rowClassFn": { "alias": "rowClassFn"; "required": false; }; "disableRowCheckboxFn": { "alias": "disableRowCheckboxFn"; "required": false; }; }, { "action": "action"; "bulkAction": "bulkAction"; "singleAction": "singleAction"; "afterSave": "afterSave"; "afterDelete": "afterDelete"; "beforeSave": "beforeSave"; "beforeDelete": "beforeDelete"; "formCancel": "formCancel"; "formInit": "formInit"; "dataLoaded": "dataLoaded"; "selectionChange": "selectionChange"; "error": "error"; "search": "search"; "pageChange": "pageChange"; "onSearch": "onSearch"; "visibleChange": "visibleChange"; "rowSelect": "rowSelect"; }, never, never, true, never>;
|
|
194
195
|
}
|
|
195
196
|
|
|
196
197
|
export { GenericCrudTableComponent, GenericCrudTableModule };
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@elite.framework/ng.ui.core",
|
|
3
|
-
"version": "2.0.
|
|
3
|
+
"version": "2.0.35",
|
|
4
4
|
"peerDependencies": {
|
|
5
5
|
"@angular/common": "^20.1.0",
|
|
6
6
|
"@angular/core": "^20.1.0"
|
|
@@ -20,10 +20,6 @@
|
|
|
20
20
|
"types": "./attachments/index.d.ts",
|
|
21
21
|
"default": "./fesm2022/elite.framework-ng.ui.core-attachments.mjs"
|
|
22
22
|
},
|
|
23
|
-
"./breadcrumb": {
|
|
24
|
-
"types": "./breadcrumb/index.d.ts",
|
|
25
|
-
"default": "./fesm2022/elite.framework-ng.ui.core-breadcrumb.mjs"
|
|
26
|
-
},
|
|
27
23
|
"./base-crud": {
|
|
28
24
|
"types": "./base-crud/index.d.ts",
|
|
29
25
|
"default": "./fesm2022/elite.framework-ng.ui.core-base-crud.mjs"
|
|
@@ -32,6 +28,10 @@
|
|
|
32
28
|
"types": "./checkbox/index.d.ts",
|
|
33
29
|
"default": "./fesm2022/elite.framework-ng.ui.core-checkbox.mjs"
|
|
34
30
|
},
|
|
31
|
+
"./breadcrumb": {
|
|
32
|
+
"types": "./breadcrumb/index.d.ts",
|
|
33
|
+
"default": "./fesm2022/elite.framework-ng.ui.core-breadcrumb.mjs"
|
|
34
|
+
},
|
|
35
35
|
"./collapsible": {
|
|
36
36
|
"types": "./collapsible/index.d.ts",
|
|
37
37
|
"default": "./fesm2022/elite.framework-ng.ui.core-collapsible.mjs"
|
|
@@ -44,10 +44,6 @@
|
|
|
44
44
|
"types": "./column-settings-popover/index.d.ts",
|
|
45
45
|
"default": "./fesm2022/elite.framework-ng.ui.core-column-settings-popover.mjs"
|
|
46
46
|
},
|
|
47
|
-
"./condition-editor": {
|
|
48
|
-
"types": "./condition-editor/index.d.ts",
|
|
49
|
-
"default": "./fesm2022/elite.framework-ng.ui.core-condition-editor.mjs"
|
|
50
|
-
},
|
|
51
47
|
"./custom-switch": {
|
|
52
48
|
"types": "./custom-switch/index.d.ts",
|
|
53
49
|
"default": "./fesm2022/elite.framework-ng.ui.core-custom-switch.mjs"
|
|
@@ -56,26 +52,30 @@
|
|
|
56
52
|
"types": "./datepicker/index.d.ts",
|
|
57
53
|
"default": "./fesm2022/elite.framework-ng.ui.core-datepicker.mjs"
|
|
58
54
|
},
|
|
59
|
-
"./
|
|
60
|
-
"types": "./
|
|
61
|
-
"default": "./fesm2022/elite.framework-ng.ui.core-
|
|
55
|
+
"./condition-editor": {
|
|
56
|
+
"types": "./condition-editor/index.d.ts",
|
|
57
|
+
"default": "./fesm2022/elite.framework-ng.ui.core-condition-editor.mjs"
|
|
62
58
|
},
|
|
63
59
|
"./deactivation-reason": {
|
|
64
60
|
"types": "./deactivation-reason/index.d.ts",
|
|
65
61
|
"default": "./fesm2022/elite.framework-ng.ui.core-deactivation-reason.mjs"
|
|
66
62
|
},
|
|
63
|
+
"./excel-import": {
|
|
64
|
+
"types": "./excel-import/index.d.ts",
|
|
65
|
+
"default": "./fesm2022/elite.framework-ng.ui.core-excel-import.mjs"
|
|
66
|
+
},
|
|
67
67
|
"./form-button": {
|
|
68
68
|
"types": "./form-button/index.d.ts",
|
|
69
69
|
"default": "./fesm2022/elite.framework-ng.ui.core-form-button.mjs"
|
|
70
70
|
},
|
|
71
|
-
"./form-template": {
|
|
72
|
-
"types": "./form-template/index.d.ts",
|
|
73
|
-
"default": "./fesm2022/elite.framework-ng.ui.core-form-template.mjs"
|
|
74
|
-
},
|
|
75
71
|
"./form-field": {
|
|
76
72
|
"types": "./form-field/index.d.ts",
|
|
77
73
|
"default": "./fesm2022/elite.framework-ng.ui.core-form-field.mjs"
|
|
78
74
|
},
|
|
75
|
+
"./form-template": {
|
|
76
|
+
"types": "./form-template/index.d.ts",
|
|
77
|
+
"default": "./fesm2022/elite.framework-ng.ui.core-form-template.mjs"
|
|
78
|
+
},
|
|
79
79
|
"./formly-avatar-image": {
|
|
80
80
|
"types": "./formly-avatar-image/index.d.ts",
|
|
81
81
|
"default": "./fesm2022/elite.framework-ng.ui.core-formly-avatar-image.mjs"
|
|
@@ -108,26 +108,26 @@
|
|
|
108
108
|
"types": "./formly-ui-all/index.d.ts",
|
|
109
109
|
"default": "./fesm2022/elite.framework-ng.ui.core-formly-ui-all.mjs"
|
|
110
110
|
},
|
|
111
|
-
"./generic-assets": {
|
|
112
|
-
"types": "./generic-assets/index.d.ts",
|
|
113
|
-
"default": "./fesm2022/elite.framework-ng.ui.core-generic-assets.mjs"
|
|
114
|
-
},
|
|
115
111
|
"./formly-username-with-domain": {
|
|
116
112
|
"types": "./formly-username-with-domain/index.d.ts",
|
|
117
113
|
"default": "./fesm2022/elite.framework-ng.ui.core-formly-username-with-domain.mjs"
|
|
118
114
|
},
|
|
115
|
+
"./generic-assets": {
|
|
116
|
+
"types": "./generic-assets/index.d.ts",
|
|
117
|
+
"default": "./fesm2022/elite.framework-ng.ui.core-generic-assets.mjs"
|
|
118
|
+
},
|
|
119
119
|
"./generic-autocomplete": {
|
|
120
120
|
"types": "./generic-autocomplete/index.d.ts",
|
|
121
121
|
"default": "./fesm2022/elite.framework-ng.ui.core-generic-autocomplete.mjs"
|
|
122
122
|
},
|
|
123
|
-
"./generic-card": {
|
|
124
|
-
"types": "./generic-card/index.d.ts",
|
|
125
|
-
"default": "./fesm2022/elite.framework-ng.ui.core-generic-card.mjs"
|
|
126
|
-
},
|
|
127
123
|
"./generic-button": {
|
|
128
124
|
"types": "./generic-button/index.d.ts",
|
|
129
125
|
"default": "./fesm2022/elite.framework-ng.ui.core-generic-button.mjs"
|
|
130
126
|
},
|
|
127
|
+
"./generic-card": {
|
|
128
|
+
"types": "./generic-card/index.d.ts",
|
|
129
|
+
"default": "./fesm2022/elite.framework-ng.ui.core-generic-card.mjs"
|
|
130
|
+
},
|
|
131
131
|
"./generic-crud-table": {
|
|
132
132
|
"types": "./generic-crud-table/index.d.ts",
|
|
133
133
|
"default": "./fesm2022/elite.framework-ng.ui.core-generic-crud-table.mjs"
|
|
@@ -136,13 +136,17 @@
|
|
|
136
136
|
"types": "./generic-dialog/index.d.ts",
|
|
137
137
|
"default": "./fesm2022/elite.framework-ng.ui.core-generic-dialog.mjs"
|
|
138
138
|
},
|
|
139
|
+
"./generic-errormessage": {
|
|
140
|
+
"types": "./generic-errormessage/index.d.ts",
|
|
141
|
+
"default": "./fesm2022/elite.framework-ng.ui.core-generic-errormessage.mjs"
|
|
142
|
+
},
|
|
139
143
|
"./generic-formly-fields": {
|
|
140
144
|
"types": "./generic-formly-fields/index.d.ts",
|
|
141
145
|
"default": "./fesm2022/elite.framework-ng.ui.core-generic-formly-fields.mjs"
|
|
142
146
|
},
|
|
143
|
-
"./generic-
|
|
144
|
-
"types": "./generic-
|
|
145
|
-
"default": "./fesm2022/elite.framework-ng.ui.core-generic-
|
|
147
|
+
"./generic-report": {
|
|
148
|
+
"types": "./generic-report/index.d.ts",
|
|
149
|
+
"default": "./fesm2022/elite.framework-ng.ui.core-generic-report.mjs"
|
|
146
150
|
},
|
|
147
151
|
"./generic-loadingspinner": {
|
|
148
152
|
"types": "./generic-loadingspinner/index.d.ts",
|
|
@@ -152,10 +156,6 @@
|
|
|
152
156
|
"types": "./generic-search/index.d.ts",
|
|
153
157
|
"default": "./fesm2022/elite.framework-ng.ui.core-generic-search.mjs"
|
|
154
158
|
},
|
|
155
|
-
"./generic-report": {
|
|
156
|
-
"types": "./generic-report/index.d.ts",
|
|
157
|
-
"default": "./fesm2022/elite.framework-ng.ui.core-generic-report.mjs"
|
|
158
|
-
},
|
|
159
159
|
"./generic-search-advanced": {
|
|
160
160
|
"types": "./generic-search-advanced/index.d.ts",
|
|
161
161
|
"default": "./fesm2022/elite.framework-ng.ui.core-generic-search-advanced.mjs"
|
|
@@ -228,14 +228,14 @@
|
|
|
228
228
|
"types": "./tag-type/index.d.ts",
|
|
229
229
|
"default": "./fesm2022/elite.framework-ng.ui.core-tag-type.mjs"
|
|
230
230
|
},
|
|
231
|
-
"./textarea": {
|
|
232
|
-
"types": "./textarea/index.d.ts",
|
|
233
|
-
"default": "./fesm2022/elite.framework-ng.ui.core-textarea.mjs"
|
|
234
|
-
},
|
|
235
231
|
"./text-editor": {
|
|
236
232
|
"types": "./text-editor/index.d.ts",
|
|
237
233
|
"default": "./fesm2022/elite.framework-ng.ui.core-text-editor.mjs"
|
|
238
234
|
},
|
|
235
|
+
"./textarea": {
|
|
236
|
+
"types": "./textarea/index.d.ts",
|
|
237
|
+
"default": "./fesm2022/elite.framework-ng.ui.core-textarea.mjs"
|
|
238
|
+
},
|
|
239
239
|
"./wrappers": {
|
|
240
240
|
"types": "./wrappers/index.d.ts",
|
|
241
241
|
"default": "./fesm2022/elite.framework-ng.ui.core-wrappers.mjs"
|