@elite.framework/ng.ui.core 1.0.44 → 1.0.46

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.
@@ -242,12 +242,13 @@ class BaseCrud {
242
242
  },
243
243
  error: (err) => {
244
244
  this.loading = false;
245
- const msg = err.error?.title ||
246
- err.message ||
247
- 'حدث خطأ أثناء الحفظ. يرجى المحاولة مرة أخرى.';
248
- // this.errorMessage = msg;
249
- // رسالة خطأ
250
- this.swalService.error('فشل الحذف', msg);
245
+ // const msg =
246
+ // err.error?.title ||
247
+ // err.message ||
248
+ // 'حدث خطأ أثناء الحفظ. يرجى المحاولة مرة أخرى.';
249
+ // // this.errorMessage = msg;
250
+ // // ❌ رسالة خطأ
251
+ // this.swalService.error('فشل الحذف', msg);
251
252
  }
252
253
  });
253
254
  }
@@ -1 +1 @@
1
- {"version":3,"file":"elite.framework-ng.ui.core-base-crud.mjs","sources":["../tmp-esm2022/base-crud/lib/base-crud-module.js","../tmp-esm2022/base-crud/lib/base-crud.js","../tmp-esm2022/base-crud/elite.framework-ng.ui.core-base-crud.js"],"sourcesContent":["import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport * as i0 from \"@angular/core\";\nexport class BaseCrudModule {\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: BaseCrudModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });\n static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"14.0.0\", version: \"20.1.8\", ngImport: i0, type: BaseCrudModule, imports: [CommonModule] });\n static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: BaseCrudModule, imports: [CommonModule] });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: BaseCrudModule, decorators: [{\n type: NgModule,\n args: [{\n imports: [CommonModule],\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS1jcnVkLW1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvbmcudWkuY29yZS9iYXNlLWNydWQvc3JjL2xpYi9iYXNlLWNydWQtbW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDOztBQUsvQyxNQUFNLE9BQU8sY0FBYzt1R0FBZCxjQUFjO3dHQUFkLGNBQWMsWUFGZixZQUFZO3dHQUVYLGNBQWMsWUFGZixZQUFZOzsyRkFFWCxjQUFjO2tCQUgxQixRQUFRO21CQUFDO29CQUNSLE9BQU8sRUFBRSxDQUFDLFlBQVksQ0FBQztpQkFDeEIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcblxuQE5nTW9kdWxlKHtcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZV0sXG59KVxuZXhwb3J0IGNsYXNzIEJhc2VDcnVkTW9kdWxlIHt9XG4iXX0=","import { Directive, inject } from '@angular/core';\nimport { ActivatedRoute, Router } from '@angular/router';\nimport { SwalService } from '@elite.framework/ng.core/services';\nimport { DeactivationReasonFormComponent } from '@elite.framework/ng.ui.core/deactivation-reason';\nimport * as i0 from \"@angular/core\";\nexport class BaseCrud {\n list = [];\n paginator = true;\n canLoad = true;\n loading = false;\n errorMsg = '';\n first = 0;\n rows = 10;\n totalRecords = 0;\n searchGlobal = '';\n sort;\n pageFilters = {};\n currentFilters = {};\n mode = '';\n scrollHeight = '400px';\n swalService = inject(SwalService);\n dialogRef;\n dialogVisible = false;\n drawerVisible = false;\n selectedItem = null;\n defaultModel = null;\n // selectedItem: T | any = {};\n isViewMode = false;\n isEditMode = false;\n displayMode = 'drawer';\n router = inject(Router);\n route = inject(ActivatedRoute);\n loadPage(pageIndex, pageSize) {\n if (this.canLoad) {\n this.loading = true;\n const filters = {\n maxResultCount: pageSize,\n skipCount: pageIndex,\n sorting: this.sort,\n ...this.currentFilters,\n ...this.pageFilters,\n ...(this.searchGlobal ? { filter: this.searchGlobal } : {}),\n };\n //\n this.service.getList(filters)\n .subscribe({\n next: (res) => {\n //\n this.list = res.items;\n this.totalRecords = res.totalCount;\n this.loading = false;\n },\n error: (err) => {\n this.errorMsg = err.error?.message || err.message || 'خطأ في التحميل';\n this.loading = false;\n }\n });\n }\n }\n onSearch(filters) {\n //\n if (filters && typeof filters === 'object' && !Array.isArray(filters)) {\n this.pageFilters = filters;\n }\n else {\n this.searchGlobal = filters;\n }\n this.loadPage(0, 10);\n }\n onPageChange(event) {\n // فك المتغيّرات مع قيمة افتراضية لفلاتر\n const { first = this.first, rows = this.rows, sort = this.sort, filters = {} } = event;\n this.first = first;\n this.rows = rows;\n this.sort = sort;\n // const pageIndex = Math.floor(first / rows);\n const skipCount = first;\n const pageIndex = skipCount;\n // الوصول للفلتر العام عبر الصيغة المربعة\n const globalValue = filters['global'];\n this.searchGlobal = typeof globalValue === 'string' ? globalValue : '';\n // فلترة خاصة بحقل واحد\n // const fieldFilters = { ...filters };\n // delete fieldFilters['global'];\n // this.currentFilters = fieldFilters as Partial<F>;\n this.loadPage(pageIndex, rows);\n }\n openEditor(item, mode) {\n this.mode = mode;\n this.selectedItem = item ?? this.defaultModel ?? {};\n this.isEditMode = mode === 'edit';\n this.isViewMode = mode === 'view';\n // resolve displayMode (string or map)\n const modeConfig = typeof this.displayMode === 'string'\n ? this.displayMode\n : this.displayMode[mode] ?? 'drawer';\n switch (modeConfig) {\n case 'drawer':\n this.drawerVisible = true;\n break;\n case 'dialog':\n this.dialogVisible = true;\n break;\n case 'route':\n {\n const id = item ? item[this.idField] : 'new';\n if (mode === 'add') {\n this.router.navigate([mode], { relativeTo: this.route });\n }\n else {\n this.router.navigate([id, mode], { relativeTo: this.route });\n }\n break;\n }\n }\n }\n visibleChange(value) {\n const modeConfig = typeof this.displayMode === 'string'\n ? this.displayMode\n : this.displayMode[this.mode] ?? 'drawer';\n if (modeConfig === 'dialog') {\n this.dialogVisible = value;\n }\n else if (modeConfig === 'drawer') {\n this.drawerVisible = value;\n }\n else {\n // route mode does not use drawer/dialog\n }\n }\n // onTableAction(event: { name: string; row: T | null }): void {\n // switch (event.name) {\n // case 'add': this.openDrawer(null,event.name); break;\n // case 'view': this.openDrawer(event.row!,event.name); break;\n // case 'edit': this.openDrawer(event.row!,event.name); break;\n // case 'delete': this.onDelete(event.row!);break;\n // case 'state': this.openDeactivationReason(event.row!);break;\n // }\n // }\n onTableAction(event) {\n switch (event.name) {\n case 'add':\n case 'edit':\n case 'view':\n this.openEditor(event.row, event.name);\n break;\n case 'delete':\n this.onDelete(event.row);\n break;\n case 'state':\n this.openDeactivationReason(event.row);\n break;\n }\n }\n openDrawer(item, mode) {\n this.mode = mode;\n // this.drawerVisible = !this.drawerVisible;\n if (item == null) {\n this.selectedItem = this.defaultModel || {};\n }\n else {\n this.selectedItem = item;\n }\n if (mode == 'edit') {\n this.drawerVisible = true;\n this.isEditMode = true;\n this.isViewMode = false;\n // this.isEditMode = item !=null ;\n }\n if (mode == 'add') {\n this.drawerVisible = true;\n this.isViewMode = false;\n this.isEditMode = false;\n }\n if (mode == 'view') {\n // this.drawerVisible = true;\n this.dialogVisible = true;\n this.isViewMode = true;\n this.isEditMode = false;\n }\n }\n openDeactivationReason(model) {\n this.selectedItem = model;\n if (this.selectedItem.isActive == true) {\n const ref = this.dialogService.open(DeactivationReasonFormComponent, {\n header: 'السبب (في حال تم إيقافه)',\n width: '30vw',\n data: { model: { ...model },\n fields: this.formFields,\n service: this.service,\n idField: this.idField },\n });\n ref.onClose.subscribe((result) => {\n if (result) {\n this.selectedItem.isActive = false;\n this.selectedItem.deactivationReason = result.deactivationReason;\n // Optionally: save model via API\n }\n });\n }\n else {\n this.selectedItem.isActive = true;\n this.selectedItem.deactivationReason = \"\";\n const id = this.selectedItem[this.idField];\n this.service.update(id, this.selectedItem).subscribe({\n next: () => { console.log(''); },\n error: (err) => {\n this.loading = false;\n }\n });\n }\n }\n // onDelete(item: any): void {\n // if (!confirm('هل تريد الحذف فعلاً؟')) return;\n // const id = (item as any)[this.idField];\n // this.service.delete(id).subscribe(() => {\n // this.loadPage(0, this.rows);\n // });\n // }\n onDelete(item) {\n const id = item[this.idField];\n this.swalService.confirm('تأكيد الحذف', 'هل تريد حذف هذا السجل فعلاً؟', 'نعم، احذف', 'إلغاء').then((result) => {\n if (result.isConfirmed) {\n this.service.delete(id).subscribe({\n next: () => {\n this.loadPage(0, this.rows);\n this.swalService.success('تم الحذف بنجاح');\n },\n error: (err) => {\n this.loading = false;\n const msg = err.error?.title ||\n err.message ||\n 'حدث خطأ أثناء الحفظ. يرجى المحاولة مرة أخرى.';\n // this.errorMessage = msg;\n // ❌ رسالة خطأ\n this.swalService.error('فشل الحذف', msg);\n }\n });\n }\n });\n }\n get columns() {\n const flattenFields = (fields) => {\n return fields.flatMap(field => {\n // Check for nested group/panel\n if (field.fieldGroup?.length) {\n return flattenFields(field.fieldGroup);\n }\n // Skip fields with no props or table.hidden === true\n if (!field.props || field.props['table']?.hidden === true) {\n return [];\n }\n // Determine the column type: table.type > field.type > 'label-type'\n // const tableType = field.props['table']?.type || field.type || 'label-type';\n const tableType = field.props['table']?.type || 'label-type';\n //\n return [{\n type: tableType,\n key: field['key'], // always set key for table rendering\n props: {\n ...field.props, // base props\n ...field.props['table']?.props // table-specific overrides\n },\n expressions: field.props['table']?.expressions\n }];\n });\n };\n return flattenFields(this.formFields);\n }\n get filters() {\n const flattenForFilter = (fields) => {\n return fields.flatMap(field => {\n if (field.fieldGroup?.length) {\n // Recursively handle nested panels/groups\n return flattenForFilter(field.fieldGroup);\n }\n // Skip fields with no props or filter.hidden === true\n if (!field.props || field.props['filter']?.hidden === true) {\n return [];\n }\n // Merge base props with filter overrides\n const mergedProps = {\n ...field.props,\n ...field.props['filter']?.props,\n };\n // Remove disabled and required props\n delete mergedProps['disabled'];\n delete mergedProps['required'];\n delete mergedProps['loadDefault'];\n return [{\n type: field.type,\n key: field.key, // always set key for table rendering\n props: mergedProps,\n // expressions: field.props['filter']?.expressions // uncomment if needed\n }];\n });\n };\n return flattenForFilter(this.formFields);\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: BaseCrud, deps: [], target: i0.ɵɵFactoryTarget.Directive });\n static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"20.1.8\", type: BaseCrud, isStandalone: true, ngImport: i0 });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: BaseCrud, decorators: [{\n type: Directive\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS1jcnVkLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9uZy51aS5jb3JlL2Jhc2UtY3J1ZC9zcmMvbGliL2Jhc2UtY3J1ZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUdsRCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3pELE9BQU8sRUFBZSxXQUFXLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUU3RSxPQUFPLEVBQUUsK0JBQStCLEVBQUUsTUFBTSxpREFBaUQsQ0FBQzs7QUFHbEcsTUFBTSxPQUFnQixRQUFRO0lBQzVCLElBQUksR0FBc0IsRUFBRSxDQUFDO0lBQzdCLFNBQVMsR0FBVSxJQUFJLENBQUM7SUFDeEIsT0FBTyxHQUFVLElBQUksQ0FBQztJQUN0QixPQUFPLEdBQVUsS0FBSyxDQUFDO0lBQ3ZCLFFBQVEsR0FBVSxFQUFFLENBQUM7SUFDckIsS0FBSyxHQUFhLENBQUMsQ0FBQztJQUNwQixJQUFJLEdBQWMsRUFBRSxDQUFDO0lBQ3JCLFlBQVksR0FBTSxDQUFDLENBQUM7SUFDcEIsWUFBWSxHQUFNLEVBQUUsQ0FBQztJQUNyQixJQUFJLENBQVU7SUFDZCxXQUFXLEdBQWUsRUFBRSxDQUFDO0lBQzdCLGNBQWMsR0FBZSxFQUFFLENBQUM7SUFDaEMsSUFBSSxHQUFFLEVBQUUsQ0FBQztJQUNULFlBQVksR0FBRSxPQUFPLENBQUM7SUFDZCxXQUFXLEdBQUcsTUFBTSxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBRWhDLFNBQVMsQ0FBb0I7SUFhdkMsYUFBYSxHQUFHLEtBQUssQ0FBQztJQUN0QixhQUFhLEdBQUcsS0FBSyxDQUFDO0lBQ3RCLFlBQVksR0FBWSxJQUFJLENBQUM7SUFDN0IsWUFBWSxHQUFZLElBQUksQ0FBQztJQUM3Qiw4QkFBOEI7SUFDOUIs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SSxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQzNDLENBQUM7dUdBMVlxQixRQUFROzJGQUFSLFFBQVE7OzJGQUFSLFFBQVE7a0JBRDdCLFNBQVMiLCJzb3VyY2VzQ29udGVudCI6WyJcclxuXHJcbmltcG9ydCB7IERpcmVjdGl2ZSwgaW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IERpYWxvZ1NlcnZpY2UsIER5bmFtaWNEaWFsb2dSZWYgfSBmcm9tICdwcmltZW5nL2R5bmFtaWNkaWFsb2cnO1xyXG5pbXBvcnQgeyBGb3JtbHlGaWVsZENvbmZpZyB9IGZyb20gJ0BuZ3gtZm9ybWx5L2NvcmUnO1xyXG5pbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZSwgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcclxuaW1wb3J0IHsgQmFzZVNlcnZpY2UsIFN3YWxTZXJ2aWNlIH0gZnJvbSAnQGVsaXRlLmZyYW1ld29yay9uZy5jb3JlL3NlcnZpY2VzJztcclxuaW1wb3J0IHsgQWN0aW9uRGVmLCBQYWdpbmF0ZWRSZXN1bHQgfSBmcm9tICdAZWxpdGUuZnJhbWV3b3JrL25nLmNvcmUvbW9kZWxzJztcclxuaW1wb3J0IHsgRGVhY3RpdmF0aW9uUmVhc29uRm9ybUNvbXBvbmVudCB9IGZyb20gJ0BlbGl0ZS5mcmFtZXdvcmsvbmcudWkuY29yZS9kZWFjdGl2YXRpb24tcmVhc29uJztcclxuXHJcbkBEaXJlY3RpdmUoKVxyXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgQmFzZUNydWQ8VCwgRiA9IGFueT4gIHtcclxuICBsaXN0OiBUW10gICAgICAgICAgICAgICA9IFtdO1xyXG4gIHBhZ2luYXRvciAgICAgICAgPSB0cnVlO1xyXG4gIGNhbkxvYWQgICAgICAgID0gdHJ1ZTtcclxuICBsb2FkaW5nICAgICAgICA9IGZhbHNlO1xyXG4gIGVycm9yTXNnICAgICAgICA9ICcnO1xyXG4gIGZpcnN0ICAgICAgICAgICA9IDA7XHJcbiAgcm93cyAgICAgICAgICAgID0gMTA7XHJcbiAgdG90YWxSZWNvcmRzICAgID0gMDtcclxuICBzZWFyY2hHbG9iYWwgICAgPSAnJztcclxuICBzb3J0Pzogc3RyaW5nO1xyXG4gIHBhZ2VGaWx0ZXJzOiBQYXJ0aWFsPEY+ID0ge307XHJcbiAgY3VycmVudEZpbHRlcnM6IFBhcnRpYWw8Rj4gPSB7fTtcclxuICBtb2RlID0nJztcclxuICBzY3JvbGxIZWlnaHQgPSc0MDBweCc7XHJcbiAgcHJpdmF0ZSBzd2FsU2VydmljZSA9IGluamVjdChTd2FsU2VydmljZSk7XHJcblxyXG4gIHByb3RlY3RlZCBkaWFsb2dSZWYhOiBEeW5hbWljRGlhbG9nUmVmO1xyXG5cclxuXHJcbiAgLy8gYWJzdHJhY3Qgc2VydmljZTogQ3J1ZFNlcnZpY2U8VCwgRj47XHJcbiAgYWJzdHJhY3Qgc2VydmljZTogQmFzZVNlcnZpY2U7XHJcbiAgYWJzdHJhY3QgZGlhbG9nU2VydmljZTogRGlhbG9nU2VydmljZTtcclxuICAvLyBhYnN0cmFjdCBkaWFsb2dDb21wb25lbnQ6IGFueTtcclxuICAvLyBhYnN0cmFjdCBjb2x1bW5zOiBDb2x1bW5EZWY8VD5bXTtcclxuICBhYnN0cmFjdCBhY3Rpb25zOiBBY3Rpb25EZWY8VD5bXTtcclxuXHJcbiAgLy8gZm9yIGdlbmVyaWMgZGlhbG9nOlxyXG4gIGFic3RyYWN0IGZvcm1GaWVsZHM6IEZvcm1seUZpZWxkQ29uZmlnW107XHJcbiAgYWJzdHJhY3QgaWRGaWVsZDoga2V5b2YgVDtcclxuICBkaWFsb2dWaXNpYmxlID0gZmFsc2U7XHJcbiAgZHJhd2VyVmlzaWJsZSA9IGZhbHNlO1xyXG4gIHNlbGVjdGVkSXRlbTogVCB8IGFueSA9IG51bGw7XHJcbiAgZGVmYXVsdE1vZGVsOiBUIHwgYW55ID0gbnVsbDtcclxuICAvLyBzZWxlY3RlZEl0ZW06IFQgfCBhbnkgPSB7fTtcclxuICBpc1ZpZXdNb2RlID0gZmFsc2U7XHJcbiAgaXNFZGl0TW9kZSA9IGZhbHNlO1xyXG5cclxuXHJcblxyXG4gIGRpc3BsYXlNb2RlOlxyXG4gIHwgJ2RyYXdlcicgfCAnZGlhbG9nJyB8ICdyb3V0ZSdcclxuICB8IFBhcnRpYWw8UmVjb3JkPCdhZGQnIHwgJ2VkaXQnIHwgJ3ZpZXcnLCAnZHJhd2VyJyB8ICdkaWFsb2cnIHwgJ3JvdXRlJz4+XHJcbiAgPSAnZHJhd2VyJztcclxuXHJcbiAgcHVibGljIHJvdXRlcj0gaW5qZWN0KFJvdXRlcik7XHJcbiAgcHVibGljIHJvdXRlID0gaW5qZWN0KEFjdGl2YXRlZFJvdXRlKTtcclxuXHJcbmxvYWRQYWdlKHBhZ2VJbmRleDogbnVtYmVyLCBwYWdlU2l6ZTogbnVtYmVyKTogdm9pZCB7XHJcbiAgICBpZih0aGlzLmNhbkxvYWQpe1xyXG5cclxuXHJcbiAgICB0aGlzLmxvYWRpbmcgPSB0cnVlO1xyXG4gICAgY29uc3QgZmlsdGVyczogUGFydGlhbDxGPiA9IHtcclxuICAgICAgbWF4UmVzdWx0Q291bnQ6cGFnZVNpemUsXHJcbiAgICAgIHNraXBDb3VudDpwYWdlSW5kZXgsXHJcbiAgICAgIHNvcnRpbmc6dGhpcy5zb3J0LFxyXG4gICAgLi4udGhpcy5jdXJyZW50RmlsdGVycyxcclxuICAgIC4uLnRoaXMucGFnZUZpbHRlcnMsXHJcbiAgICAuLi4odGhpcy5zZWFyY2hHbG9iYWwgPyB7IGZpbHRlcjogdGhpcy5zZWFyY2hHbG9iYWwgfSA6IHt9KSxcclxuICAgIH07XHJcbiAgICAvL1xyXG4gICAgdGhpcy5zZXJ2aWNlLmdldExpc3QoZmlsdGVycylcclxuICAgICAgLnN1YnNjcmliZSh7XHJcbiAgICAgICAgbmV4dDogKHJlczogUGFnaW5hdGVkUmVzdWx0PFQ+KSA9PiB7XHJcbiAgICAgICAgICAvL1xyXG4gICAgICAgICAgdGhpcy5saXN0ICAgICAgICAgPSByZXMuaXRlbXM7XHJcbiAgICAgICAgICB0aGlzLnRvdGFsUmVjb3JkcyA9IHJlcy50b3RhbENvdW50O1xyXG4gICAgICAgICAgdGhpcy5sb2FkaW5nICAgICAgPSBmYWxzZTtcclxuICAgICAgICB9LFxyXG4gICAgICAgIGVycm9yOiAoZXJyOmFueSkgPT4ge1xyXG4gICAgICAgICAgdGhpcy5lcnJvck1zZyAgICAgPSBlcnIuZXJyb3I/Lm1lc3NhZ2UgfHwgZXJyLm1lc3NhZ2UgfHwgJ9iu2LfYoyDZgdmKINin2YTYqtit2YXZitmEJztcclxuICAgICAgICAgIHRoaXMubG9hZGluZyAgICAgID0gZmFsc2U7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICAgIH1cclxufVxyXG5cclxub25TZWFyY2goZmlsdGVycz86IGFueSk6IHZvaWQge1xyXG4gIC8vXHJcbiAgaWYgKGZpbHRlcnMgJiYgdHlwZW9mIGZpbHRlcnMgPT09ICdvYmplY3QnICYmICFBcnJheS5pc0FycmF5KGZpbHRlcnMpKSB7XHJcbiAgICB0aGlzLnBhZ2VGaWx0ZXJzID0gZmlsdGVycztcclxuICB9IGVsc2Uge1xyXG4gICAgdGhpcy5zZWFyY2hHbG9iYWwgPSBmaWx0ZXJzO1xyXG4gIH1cclxuXHJcbiAgdGhpcy5sb2FkUGFnZSgwLCAxMCk7XHJcbn1cclxuXHJcblxyXG5cclxuXHJcblxyXG5cclxuXHJcbm9uUGFnZUNoYW5nZShldmVudDogeyBmaXJzdD86IG51bWJlcjsgcm93cz86IG51bWJlcjsgc29ydD86IHN0cmluZzsgZmlsdGVycz86IFJlY29yZDxzdHJpbmcsIGFueT4gfSk6IHZvaWQge1xyXG4gIC8vINmB2YMg2KfZhNmF2KrYutmK2ZHYsdin2Kog2YXYuSDZgtmK2YXYqSDYp9mB2KrYsdin2LbZitipINmE2YHZhNin2KrYsVxyXG4gIGNvbnN0IHtcclxuICAgIGZpcnN0ICAgPSB0aGlzLmZpcnN0LFxyXG4gICAgcm93cyAgICA9IHRoaXMucm93cyxcclxuICAgIHNvcnQgICAgPSB0aGlzLnNvcnQsXHJcbiAgICBmaWx0ZXJzID0ge31cclxuICB9ID0gZXZlbnQ7XHJcblxyXG4gIHRoaXMuZmlyc3QgPSBmaXJzdDtcclxuICB0aGlzLnJvd3MgID0gcm93cztcclxuICB0aGlzLnNvcnQgID0gc29ydDtcclxuXHJcbiAgLy8gY29uc3QgcGFnZUluZGV4ID0gTWF0aC5mbG9vcihmaXJzdCAvIHJvd3MpO1xyXG4gIGNvbnN0IHNraXBDb3VudCA9IGZpcnN0O1xyXG4gIGNvbnN0IHBhZ2VJbmRleCA9IHNraXBDb3VudDtcclxuXHJcbiAgLy8g2KfZhNmI2LXZiNmEINmE2YTZgdmE2KrYsSDYp9mE2LnYp9mFINi52KjYsSDYp9mE2LXZiti62Kkg2KfZhNmF2LHYqNi52KlcclxuICBjb25zdCBnbG9iYWxWYWx1ZSA9IGZpbHRlcnNbJ2dsb2JhbCddO1xyXG4gIHRoaXMuc2VhcmNoR2xvYmFsID0gdHlwZW9mIGdsb2JhbFZhbHVlID09PSAnc3RyaW5nJyA/IGdsb2JhbFZhbHVlIDogJyc7XHJcblxyXG4gIC8vINmB2YTYqtix2Kkg2K7Yp9i12Kkg2KjYrdmC2YQg2YjYp9it2K9cclxuICAvLyBjb25zdCBmaWVsZEZpbHRlcnMgPSB7IC4uLmZpbHRlcnMgfTtcclxuICAvLyBkZWxldGUgZmllbGRGaWx0ZXJzWydnbG9iYWwnXTtcclxuICAvLyB0aGlzLmN1cnJlbnRGaWx0ZXJzID0gZmllbGRGaWx0ZXJzIGFzIFBhcnRpYWw8Rj47XHJcblxyXG5cclxuXHJcbiAgdGhpcy5sb2FkUGFnZShwYWdlSW5kZXgsIHJvd3MpO1xyXG59XHJcblxyXG5cclxucHJvdGVjdGVkIG9wZW5FZGl0b3IoaXRlbTogVCB8IG51bGwsIG1vZGU6ICdhZGQnIHwgJ2VkaXQnIHwgJ3ZpZXcnKTogdm9pZCB7XHJcbiAgdGhpcy5tb2RlID0gbW9kZTtcclxuICB0aGlzLnNlbGVjdGVkSXRlbSA9IGl0ZW0gPz8gdGhpcy5kZWZhdWx0TW9kZWwgPz8ge307XHJcbiAgdGhpcy5pc0VkaXRNb2RlID0gbW9kZSA9PT0gJ2VkaXQnO1xyXG4gIHRoaXMuaXNWaWV3TW9kZSA9IG1vZGUgPT09ICd2aWV3JztcclxuXHJcbiAgLy8gcmVzb2x2ZSBkaXNwbGF5TW9kZSAoc3RyaW5nIG9yIG1hcClcclxuICBjb25zdCBtb2RlQ29uZmlnID0gdHlwZW9mIHRoaXMuZGlzcGxheU1vZGUgPT09ICdzdHJpbmcnXHJcbiAgICA/IHRoaXMuZGlzcGxheU1vZGVcclxuICAgIDogdGhpcy5kaXNwbGF5TW9kZVttb2RlXSA/PyAnZHJhd2VyJztcclxuXHJcbiAgc3dpdGNoIChtb2RlQ29uZmlnKSB7XHJcbiAgICBjYXNlICdkcmF3ZXInOlxyXG4gICAgICB0aGlzLmRyYXdlclZpc2libGUgPSB0cnVlO1xyXG4gICAgICBicmVhaztcclxuXHJcbiAgICBjYXNlICdkaWFsb2cnOlxyXG4gICAgICB0aGlzLmRpYWxvZ1Zpc2libGUgPSB0cnVlO1xyXG4gICAgICBicmVhaztcclxuXHJcbiAgICBjYXNlICdyb3V0ZSc6XHJcbiAgICAgIHtcclxuICAgICAgICBjb25zdCBpZCA9IGl0ZW0gPyAoaXRlbSBhcyBhbnkpW3RoaXMuaWRGaWVsZF0gOiAnbmV3JztcclxuICAgICAgaWYobW9kZSA9PT0gJ2FkZCcpe1xyXG4gICAgICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFttb2RlXSwgeyByZWxhdGl2ZVRvOiB0aGlzLnJvdXRlIH0pO1xyXG4gICAgICB9XHJcbiAgICAgIGVsc2V7XHJcbiAgICAgICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoW2lkLCBtb2RlXSwgeyByZWxhdGl2ZVRvOiB0aGlzLnJvdXRlIH0pO1xyXG4gICAgICB9XHJcbiAgICAgIGJyZWFrO1xyXG4gICAgICB9XHJcbiAgfVxyXG59XHJcblxyXG52aXNpYmxlQ2hhbmdlKHZhbHVlOiBib29sZWFuKSB7XHJcbiAgY29uc3QgbW9kZUNvbmZpZyA9IHR5cGVvZiB0aGlzLmRpc3BsYXlNb2RlID09PSAnc3RyaW5nJ1xyXG4gICAgPyB0aGlzLmRpc3BsYXlNb2RlXHJcbiAgICA6IHRoaXMuZGlzcGxheU1vZGVbdGhpcy5tb2RlIGFzICdhZGQnIHwgJ2VkaXQnIHwgJ3ZpZXcnXSA/PyAnZHJhd2VyJztcclxuXHJcbiAgaWYgKG1vZGVDb25maWcgPT09ICdkaWFsb2cnKSB7XHJcbiAgICB0aGlzLmRpYWxvZ1Zpc2libGUgPSB2YWx1ZTtcclxuICB9IGVsc2UgaWYgKG1vZGVDb25maWcgPT09ICdkcmF3ZXInKSB7XHJcbiAgICB0aGlzLmRyYXdlclZpc2libGUgPSB2YWx1ZTtcclxuICB9IGVsc2Uge1xyXG4gICAgLy8gcm91dGUgbW9kZSBkb2VzIG5vdCB1c2UgZHJhd2VyL2RpYWxvZ1xyXG4gIH1cclxufVxyXG5cclxuXHJcbi8vIG9uVGFibGVBY3Rpb24oZXZlbnQ6IHsgbmFtZTogc3RyaW5nOyByb3c6IFQgfCBudWxsIH0pOiB2b2lkIHtcclxuLy8gICAgIHN3aXRjaCAoZXZlbnQubmFtZSkge1xyXG4vLyAgICAgICBjYXNlICdhZGQnOiAgICB0aGlzLm9wZW5EcmF3ZXIobnVsbCxldmVudC5uYW1lKTsgICAgICAgICAgICAgYnJlYWs7XHJcbi8vICAgICAgIGNhc2UgJ3ZpZXcnOiAgIHRoaXMub3BlbkRyYXdlcihldmVudC5yb3chLGV2ZW50Lm5hbWUpOyAgYnJlYWs7XHJcbi8vICAgICAgIGNhc2UgJ2VkaXQnOiAgIHRoaXMub3BlbkRyYXdlcihldmVudC5yb3chLGV2ZW50Lm5hbWUpOyAgYnJlYWs7XHJcbi8vICAgICAgIGNhc2UgJ2RlbGV0ZSc6IHRoaXMub25EZWxldGUoZXZlbnQucm93ISk7YnJlYWs7XHJcbi8vICAgICAgIGNhc2UgJ3N0YXRlJzogdGhpcy5vcGVuRGVhY3RpdmF0aW9uUmVhc29uKGV2ZW50LnJvdyEpO2JyZWFrO1xyXG4vLyAgICAgfVxyXG4vLyB9XHJcblxyXG5vblRhYmxlQWN0aW9uKGV2ZW50OiB7IG5hbWU6IHN0cmluZzsgcm93OiBUIHwgbnVsbCB9KTogdm9pZCB7XHJcbiAgc3dpdGNoIChldmVudC5uYW1lKSB7XHJcbiAgICBjYXNlICdhZGQnOlxyXG4gICAgY2FzZSAnZWRpdCc6XHJcbiAgICBjYXNlICd2aWV3JzpcclxuICAgICAgdGhpcy5vcGVuRWRpdG9yKGV2ZW50LnJvdywgZXZlbnQubmFtZSk7XHJcbiAgICAgIGJyZWFrO1xyXG4gICAgY2FzZSAnZGVsZXRlJzpcclxuICAgICAgdGhpcy5vbkRlbGV0ZShldmVudC5yb3chKTtcclxuICAgICAgYnJlYWs7XHJcbiAgICBjYXNlICdzdGF0ZSc6XHJcbiAgICAgIHRoaXMub3BlbkRlYWN0aXZhdGlvblJlYXNvbihldmVudC5yb3chKTtcclxuICAgICAgYnJlYWs7XHJcbiAgfVxyXG59XHJcblxyXG5cclxucHJvdGVjdGVkIG9wZW5EcmF3ZXIoaXRlbTogVCB8IG51bGwsbW9kZTpzdHJpbmcpOiB2b2lkIHtcclxuXHJcbiAgICAgIHRoaXMubW9kZSA9IG1vZGU7XHJcblxyXG4gICAgICAvLyB0aGlzLmRyYXdlclZpc2libGUgPSAhdGhpcy5kcmF3ZXJWaXNpYmxlO1xyXG5cclxuXHJcbiAgICAgIGlmIChpdGVtID09IG51bGwpIHtcclxuXHJcbiAgICAgICAgdGhpcy5zZWxlY3RlZEl0ZW0gPSB0aGlzLmRlZmF1bHRNb2RlbCB8fCB7fTtcclxuICAgICAgfVxyXG4gICAgICBlbHNle1xyXG4gICAgICAgICB0aGlzLnNlbGVjdGVkSXRlbSA9IGl0ZW07XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIGlmKG1vZGUgPT0gJ2VkaXQnKXtcclxuICAgICAgICB0aGlzLmRyYXdlclZpc2libGUgPSB0cnVlO1xyXG4gICAgICAgIHRoaXMuaXNFZGl0TW9kZSA9IHRydWUgO1xyXG4gICAgICAgIHRoaXMuaXNWaWV3TW9kZSA9IGZhbHNlIDtcclxuICAgICAgICAvLyB0aGlzLmlzRWRpdE1vZGUgPSBpdGVtICE9bnVsbCA7XHJcbiAgICAgIH1cclxuICAgICAgaWYobW9kZSA9PSAnYWRkJyl7XHJcbiAgICAgICAgIHRoaXMuZHJhd2VyVmlzaWJsZSA9IHRydWU7XHJcbiAgICAgICAgdGhpcy5pc1ZpZXdNb2RlID0gZmFsc2UgO1xyXG4gICAgICAgIHRoaXMuaXNFZGl0TW9kZSA9IGZhbHNlIDtcclxuICAgICAgfVxyXG4gICAgICBpZihtb2RlID09ICd2aWV3Jyl7XHJcbiAgICAgICAgLy8gdGhpcy5kcmF3ZXJWaXNpYmxlID0gdHJ1ZTtcclxuICAgICAgICB0aGlzLmRpYWxvZ1Zpc2libGUgPSB0cnVlO1xyXG5cclxuICAgICAgICB0aGlzLmlzVmlld01vZGUgPSB0cnVlIDtcclxuICAgICAgICB0aGlzLmlzRWRpdE1vZGUgPSBmYWxzZSA7XHJcbiAgICAgIH1cclxufVxyXG5cclxuXHJcbm9wZW5EZWFjdGl2YXRpb25SZWFzb24obW9kZWw6IGFueSkge1xyXG5cclxuICB0aGlzLnNlbGVjdGVkSXRlbSA9IG1vZGVsO1xyXG4gIGlmKHRoaXMuc2VsZWN0ZWRJdGVtLmlzQWN0aXZlID09IHRydWUpe1xyXG5cclxuXHJcbiAgY29uc3QgcmVmID0gdGhpcy5kaWFsb2dTZXJ2aWNlLm9wZW4oRGVhY3RpdmF0aW9uUmVhc29uRm9ybUNvbXBvbmVudCwge1xyXG4gICAgaGVhZGVyOiAn2KfZhNiz2KjYqCAo2YHZiiDYrdin2YQg2KrZhSDYpdmK2YLYp9mB2YcpJyxcclxuICAgIHdpZHRoOiAnMzB2dycsXHJcbiAgICBkYXRhOiB7IG1vZGVsOiB7IC4uLm1vZGVsIH0sXHJcbiAgICAgICAgZmllbGRzOiB0aGlzLmZvcm1GaWVsZHMsXHJcbiAgICAgICAgc2VydmljZTogdGhpcy5zZXJ2aWNlLFxyXG4gICAgICAgIGlkRmllbGQ6IHRoaXMuaWRGaWVsZCB9LFxyXG4gIH0pO1xyXG5cclxuICByZWYub25DbG9zZS5zdWJzY3JpYmUoKHJlc3VsdCkgPT4ge1xyXG4gICAgaWYgKHJlc3VsdCkge1xyXG4gICAgICB0aGlzLnNlbGVjdGVkSXRlbS5pc0FjdGl2ZSA9IGZhbHNlO1xyXG4gICAgICB0aGlzLnNlbGVjdGVkSXRlbS5kZWFjdGl2YXRpb25SZWFzb24gPSByZXN1bHQuZGVhY3RpdmF0aW9uUmVhc29uO1xyXG4gICAgICAvLyBPcHRpb25hbGx5OiBzYXZlIG1vZGVsIHZpYSBBUElcclxuICAgIH1cclxuICB9KTtcclxufVxyXG5lbHNle1xyXG4gICB0aGlzLnNlbGVjdGVkSXRlbS5pc0FjdGl2ZSA9IHRydWU7XHJcbiAgIHRoaXMuc2VsZWN0ZWRJdGVtLmRlYWN0aXZhdGlvblJlYXNvbiA9IFwiXCI7XHJcbiAgICBjb25zdCBpZCA9ICAodGhpcy5zZWxlY3RlZEl0ZW0gYXMgYW55KVt0aGlzLmlkRmllbGRdIDtcclxuICAgIHRoaXMuc2VydmljZS51cGRhdGUoaWQsIHRoaXMuc2VsZWN0ZWRJdGVtKS5zdWJzY3JpYmUoe1xyXG4gICAgICAgICAgIG5leHQ6ICgpID0+IHtjb25zb2xlLmxvZygnJyl9LFxyXG4gICAgICAgICAgIGVycm9yOiAoZXJyOmFueSkgPT4ge1xyXG4gICAgICAgICAgICAgdGhpcy5sb2FkaW5nID0gZmFsc2U7XHJcblxyXG4gICAgICAgICAgIH1cclxuICAgICAgICAgfSk7XHJcbn1cclxufVxyXG5cclxuXHJcblxyXG5cclxuXHJcblxyXG4gIC8vIG9uRGVsZXRlKGl0ZW06IGFueSk6IHZvaWQge1xyXG4gIC8vICAgaWYgKCFjb25maXJtKCfZh9mEINiq2LHZitivINin2YTYrdiw2YEg2YHYudmE2KfZi9ifJykpIHJldHVybjtcclxuICAvLyAgIGNvbnN0IGlkID0gKGl0ZW0gYXMgYW55KVt0aGlzLmlkRmllbGRdO1xyXG4gIC8vICAgdGhpcy5zZXJ2aWNlLmRlbGV0ZShpZCkuc3Vic2NyaWJlKCgpID0+IHtcclxuICAvLyAgICAgdGhpcy5sb2FkUGFnZSgwLCB0aGlzLnJvd3MpO1xyXG4gIC8vICAgfSk7XHJcbiAgLy8gfVxyXG5cclxuXHJcbm9uRGVsZXRlKGl0ZW06IGFueSk6IHZvaWQge1xyXG4gIGNvbnN0IGlkID0gaXRlbVt0aGlzLmlkRmllbGRdO1xyXG5cclxuICB0aGlzLnN3YWxTZXJ2aWNlLmNvbmZpcm0oXHJcbiAgICAn2KrYo9mD2YrYryDYp9mE2K3YsNmBJyxcclxuICAgICfZh9mEINiq2LHZitivINit2LDZgSDZh9iw2Kcg2KfZhNiz2KzZhCDZgdi52YTYp9mL2J8nLFxyXG4gICAgJ9mG2LnZhdiMINin2K3YsNmBJyxcclxuICAgICfYpdmE2LrYp9ihJ1xyXG4gICkudGhlbigocmVzdWx0KSA9PiB7XHJcbiAgICBpZiAocmVzdWx0LmlzQ29uZmlybWVkKSB7XHJcbiAgICAgIHRoaXMuc2VydmljZS5kZWxldGUoaWQpLnN1YnNjcmliZSh7XHJcbiAgICAgICAgbmV4dDogKCkgPT4ge1xyXG4gICAgICAgICAgdGhpcy5sb2FkUGFnZSgwLCB0aGlzLnJvd3MpO1xyXG4gICAgICAgICAgdGhpcy5zd2FsU2VydmljZS5zdWNjZXNzKCfYqtmFINin2YTYrdiw2YEg2KjZhtis2KfYrScpO1xyXG4gICAgICAgIH0sXHJcbiAgICAgICAgZXJyb3I6IChlcnI6IGFueSkgPT4ge1xyXG4gICAgICAgICAgdGhpcy5sb2FkaW5nID0gZmFsc2U7XHJcblxyXG4gICAgICAgICAgY29uc3QgbXNnID1cclxuICAgICAgICAgICAgZXJyLmVycm9yPy50aXRsZSB8fFxyXG4gICAgICAgICAgICBlcnIubWVzc2FnZSB8fFxyXG4gICAgICAgICAgICAn2K3Yr9irINiu2LfYoyDYo9ir2YbYp9ihINin2YTYrdmB2LguINmK2LHYrNmJINin2YTZhdit2KfZiNmE2Kkg2YXYsdipINij2K7YsdmJLic7XHJcblxyXG4gICAgICAgICAgLy8gdGhpcy5lcnJvck1lc3NhZ2UgPSBtc2c7XHJcblxyXG4gICAgICAgICAgLy8g4p2MINix2LPYp9mE2Kkg2K7Yt9ijXHJcbiAgICAgICAgICB0aGlzLnN3YWxTZXJ2aWNlLmVycm9yKCfZgdi02YQg2KfZhNit2LDZgScsIG1zZyk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICAgIH1cclxuICB9KTtcclxufVxyXG5cclxuXHJcblxyXG5nZXQgY29sdW1ucygpOiBGb3JtbHlGaWVsZENvbmZpZ1tdIHtcclxuICAgIGNvbnN0IGZsYXR0ZW5GaWVsZHMgPSAoZmllbGRzOiBGb3JtbHlGaWVsZENvbmZpZ1tdKTogRm9ybWx5RmllbGRDb25maWdbXSA9PiB7XHJcbiAgICAgIHJldHVybiBmaWVsZHMuZmxhdE1hcChmaWVsZCA9PiB7XHJcbiAgICAgICAgLy8gQ2hlY2sgZm9yIG5lc3RlZCBncm91cC9wYW5lbFxyXG4gICAgICAgIGlmIChmaWVsZC5maWVsZEdyb3VwPy5sZW5ndGgpIHtcclxuICAgICAgICAgIHJldHVybiBmbGF0dGVuRmllbGRzKGZpZWxkLmZpZWxkR3JvdXApO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLy8gU2tpcCBmaWVsZHMgd2l0aCBubyBwcm9wcyBvciB0YWJsZS5oaWRkZW4gPT09IHRydWVcclxuICAgICAgICBpZiAoIWZpZWxkLnByb3BzIHx8IGZpZWxkLnByb3BzWyd0YWJsZSddPy5oaWRkZW4gPT09IHRydWUpIHtcclxuICAgICAgICAgIHJldHVybiBbXTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC8vIERldGVybWluZSB0aGUgY29sdW1uIHR5cGU6IHRhYmxlLnR5cGUgPiBmaWVsZC50eXBlID4gJ2xhYmVsLXR5cGUnXHJcbiAgICAgICAgLy8gY29uc3QgdGFibGVUeXBlID0gZmllbGQucHJvcHNbJ3RhYmxlJ10/LnR5cGUgfHwgZmllbGQudHlwZSB8fCAnbGFiZWwtdHlwZSc7XHJcbiAgICAgICAgY29uc3QgdGFibGVUeXBlID0gZmllbGQucHJvcHNbJ3RhYmxlJ10/LnR5cGUgfHwgICdsYWJlbC10eXBlJztcclxuXHJcbiAgICAgICAgLy9cclxuXHJcbiAgICAgICAgcmV0dXJuIFt7XHJcbiAgICAgICAgICB0eXBlOiB0YWJsZVR5cGUsXHJcbiAgICAgICAgICBrZXk6IGZpZWxkWydrZXknXSwgLy8gYWx3YXlzIHNldCBrZXkgZm9yIHRhYmxlIHJlbmRlcmluZ1xyXG4gICAgICAgICAgcHJvcHM6IHtcclxuICAgICAgICAgICAgLi4uZmllbGQucHJvcHMsICAgICAgICAgIC8vIGJhc2UgcHJvcHNcclxuICAgICAgICAgICAgLi4uZmllbGQucHJvcHNbJ3RhYmxlJ10/LnByb3BzIC8vIHRhYmxlLXNwZWNpZmljIG92ZXJyaWRlc1xyXG4gICAgICAgICAgfSxcclxuICAgICAgICAgIGV4cHJlc3Npb25zOiBmaWVsZC5wcm9wc1sndGFibGUnXT8uZXhwcmVzc2lvbnNcclxuICAgICAgICB9XTtcclxuICAgICAgfSk7XHJcbiAgICB9O1xyXG5cclxuICAgIHJldHVybiBmbGF0dGVuRmllbGRzKHRoaXMuZm9ybUZpZWxkcyk7XHJcbn1cclxuXHJcblxyXG5nZXQgZmlsdGVycygpOiBGb3JtbHlGaWVsZENvbmZpZ1tdIHtcclxuICBjb25zdCBmbGF0dGVuRm9yRmlsdGVyID0gKGZpZWxkczogRm9ybWx5RmllbGRDb25maWdbXSk6IEZvcm1seUZpZWxkQ29uZmlnW10gPT4ge1xyXG4gICAgcmV0dXJuIGZpZWxkcy5mbGF0TWFwKGZpZWxkID0+IHtcclxuICAgICAgaWYgKGZpZWxkLmZpZWxkR3JvdXA/Lmxlbmd0aCkge1xyXG4gICAgICAgIC8vIFJlY3Vyc2l2ZWx5IGhhbmRsZSBuZXN0ZWQgcGFuZWxzL2dyb3Vwc1xyXG4gICAgICAgIHJldHVybiBmbGF0dGVuRm9yRmlsdGVyKGZpZWxkLmZpZWxkR3JvdXApO1xyXG4gICAgICB9XHJcblxyXG4gICAgICAvLyBTa2lwIGZpZWxkcyB3aXRoIG5vIHByb3BzIG9yIGZpbHRlci5oaWRkZW4gPT09IHRydWVcclxuICAgICAgaWYgKCFmaWVsZC5wcm9wcyB8fCBmaWVsZC5wcm9wc1snZmlsdGVyJ10/LmhpZGRlbiA9PT0gdHJ1ZSkge1xyXG4gICAgICAgIHJldHVybiBbXTtcclxuICAgICAgfVxyXG5cclxuICAgICAgLy8gTWVyZ2UgYmFzZSBwcm9wcyB3aXRoIGZpbHRlciBvdmVycmlkZXNcclxuICAgICAgY29uc3QgbWVyZ2VkUHJvcHMgPSB7XHJcbiAgICAgICAgLi4uZmllbGQucHJvcHMsXHJcbiAgICAgICAgLi4uZmllbGQucHJvcHNbJ2ZpbHRlciddPy5wcm9wcyxcclxuICAgICAgfTtcclxuXHJcbiAgICAgIC8vIFJlbW92ZSBkaXNhYmxlZCBhbmQgcmVxdWlyZWQgcHJvcHNcclxuICAgICAgZGVsZXRlIG1lcmdlZFByb3BzWydkaXNhYmxlZCddO1xyXG4gICAgICBkZWxldGUgbWVyZ2VkUHJvcHNbJ3JlcXVpcmVkJ107XHJcbiAgICAgIGRlbGV0ZSBtZXJnZWRQcm9wc1snbG9hZERlZmF1bHQnXTtcclxuXHJcbiAgICAgIHJldHVybiBbe1xyXG4gICAgICAgIHR5cGU6IGZpZWxkLnR5cGUsXHJcbiAgICAgICAga2V5OiBmaWVsZC5rZXksIC8vIGFsd2F5cyBzZXQga2V5IGZvciB0YWJsZSByZW5kZXJpbmdcclxuICAgICAgICBwcm9wczogbWVyZ2VkUHJvcHMsXHJcbiAgICAgICAgLy8gZXhwcmVzc2lvbnM6IGZpZWxkLnByb3BzWydmaWx0ZXInXT8uZXhwcmVzc2lvbnMgLy8gdW5jb21tZW50IGlmIG5lZWRlZFxyXG4gICAgICB9XTtcclxuICAgIH0pO1xyXG4gIH07XHJcblxyXG4gIHJldHVybiBmbGF0dGVuRm9yRmlsdGVyKHRoaXMuZm9ybUZpZWxkcyk7XHJcbn1cclxuXHJcblxyXG59XHJcbiJdfQ==","/**\n * Generated bundle index. Do not edit.\n */\nexport * from './index';\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWxpdGUuZnJhbWV3b3JrLW5nLnVpLmNvcmUtYmFzZS1jcnVkLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGlicy9uZy51aS5jb3JlL2Jhc2UtY3J1ZC9zcmMvZWxpdGUuZnJhbWV3b3JrLW5nLnVpLmNvcmUtYmFzZS1jcnVkLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsY0FBYyxTQUFTLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEdlbmVyYXRlZCBidW5kbGUgaW5kZXguIERvIG5vdCBlZGl0LlxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vaW5kZXgnO1xuIl19"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"elite.framework-ng.ui.core-base-crud.mjs","sources":["../tmp-esm2022/base-crud/lib/base-crud-module.js","../tmp-esm2022/base-crud/lib/base-crud.js","../tmp-esm2022/base-crud/elite.framework-ng.ui.core-base-crud.js"],"sourcesContent":["import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport * as i0 from \"@angular/core\";\nexport class BaseCrudModule {\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: BaseCrudModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });\n static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"14.0.0\", version: \"20.1.8\", ngImport: i0, type: BaseCrudModule, imports: [CommonModule] });\n static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: BaseCrudModule, imports: [CommonModule] });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: BaseCrudModule, decorators: [{\n type: NgModule,\n args: [{\n imports: [CommonModule],\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS1jcnVkLW1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvbmcudWkuY29yZS9iYXNlLWNydWQvc3JjL2xpYi9iYXNlLWNydWQtbW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDOztBQUsvQyxNQUFNLE9BQU8sY0FBYzt1R0FBZCxjQUFjO3dHQUFkLGNBQWMsWUFGZixZQUFZO3dHQUVYLGNBQWMsWUFGZixZQUFZOzsyRkFFWCxjQUFjO2tCQUgxQixRQUFRO21CQUFDO29CQUNSLE9BQU8sRUFBRSxDQUFDLFlBQVksQ0FBQztpQkFDeEIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcblxuQE5nTW9kdWxlKHtcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZV0sXG59KVxuZXhwb3J0IGNsYXNzIEJhc2VDcnVkTW9kdWxlIHt9XG4iXX0=","import { Directive, inject } from '@angular/core';\nimport { ActivatedRoute, Router } from '@angular/router';\nimport { SwalService } from '@elite.framework/ng.core/services';\nimport { DeactivationReasonFormComponent } from '@elite.framework/ng.ui.core/deactivation-reason';\nimport * as i0 from \"@angular/core\";\nexport class BaseCrud {\n list = [];\n paginator = true;\n canLoad = true;\n loading = false;\n errorMsg = '';\n first = 0;\n rows = 10;\n totalRecords = 0;\n searchGlobal = '';\n sort;\n pageFilters = {};\n currentFilters = {};\n mode = '';\n scrollHeight = '400px';\n swalService = inject(SwalService);\n dialogRef;\n dialogVisible = false;\n drawerVisible = false;\n selectedItem = null;\n defaultModel = null;\n // selectedItem: T | any = {};\n isViewMode = false;\n isEditMode = false;\n displayMode = 'drawer';\n router = inject(Router);\n route = inject(ActivatedRoute);\n loadPage(pageIndex, pageSize) {\n if (this.canLoad) {\n this.loading = true;\n const filters = {\n maxResultCount: pageSize,\n skipCount: pageIndex,\n sorting: this.sort,\n ...this.currentFilters,\n ...this.pageFilters,\n ...(this.searchGlobal ? { filter: this.searchGlobal } : {}),\n };\n //\n this.service.getList(filters)\n .subscribe({\n next: (res) => {\n //\n this.list = res.items;\n this.totalRecords = res.totalCount;\n this.loading = false;\n },\n error: (err) => {\n this.errorMsg = err.error?.message || err.message || 'خطأ في التحميل';\n this.loading = false;\n }\n });\n }\n }\n onSearch(filters) {\n //\n if (filters && typeof filters === 'object' && !Array.isArray(filters)) {\n this.pageFilters = filters;\n }\n else {\n this.searchGlobal = filters;\n }\n this.loadPage(0, 10);\n }\n onPageChange(event) {\n // فك المتغيّرات مع قيمة افتراضية لفلاتر\n const { first = this.first, rows = this.rows, sort = this.sort, filters = {} } = event;\n this.first = first;\n this.rows = rows;\n this.sort = sort;\n // const pageIndex = Math.floor(first / rows);\n const skipCount = first;\n const pageIndex = skipCount;\n // الوصول للفلتر العام عبر الصيغة المربعة\n const globalValue = filters['global'];\n this.searchGlobal = typeof globalValue === 'string' ? globalValue : '';\n // فلترة خاصة بحقل واحد\n // const fieldFilters = { ...filters };\n // delete fieldFilters['global'];\n // this.currentFilters = fieldFilters as Partial<F>;\n this.loadPage(pageIndex, rows);\n }\n openEditor(item, mode) {\n this.mode = mode;\n this.selectedItem = item ?? this.defaultModel ?? {};\n this.isEditMode = mode === 'edit';\n this.isViewMode = mode === 'view';\n // resolve displayMode (string or map)\n const modeConfig = typeof this.displayMode === 'string'\n ? this.displayMode\n : this.displayMode[mode] ?? 'drawer';\n switch (modeConfig) {\n case 'drawer':\n this.drawerVisible = true;\n break;\n case 'dialog':\n this.dialogVisible = true;\n break;\n case 'route':\n {\n const id = item ? item[this.idField] : 'new';\n if (mode === 'add') {\n this.router.navigate([mode], { relativeTo: this.route });\n }\n else {\n this.router.navigate([id, mode], { relativeTo: this.route });\n }\n break;\n }\n }\n }\n visibleChange(value) {\n const modeConfig = typeof this.displayMode === 'string'\n ? this.displayMode\n : this.displayMode[this.mode] ?? 'drawer';\n if (modeConfig === 'dialog') {\n this.dialogVisible = value;\n }\n else if (modeConfig === 'drawer') {\n this.drawerVisible = value;\n }\n else {\n // route mode does not use drawer/dialog\n }\n }\n // onTableAction(event: { name: string; row: T | null }): void {\n // switch (event.name) {\n // case 'add': this.openDrawer(null,event.name); break;\n // case 'view': this.openDrawer(event.row!,event.name); break;\n // case 'edit': this.openDrawer(event.row!,event.name); break;\n // case 'delete': this.onDelete(event.row!);break;\n // case 'state': this.openDeactivationReason(event.row!);break;\n // }\n // }\n onTableAction(event) {\n switch (event.name) {\n case 'add':\n case 'edit':\n case 'view':\n this.openEditor(event.row, event.name);\n break;\n case 'delete':\n this.onDelete(event.row);\n break;\n case 'state':\n this.openDeactivationReason(event.row);\n break;\n }\n }\n openDrawer(item, mode) {\n this.mode = mode;\n // this.drawerVisible = !this.drawerVisible;\n if (item == null) {\n this.selectedItem = this.defaultModel || {};\n }\n else {\n this.selectedItem = item;\n }\n if (mode == 'edit') {\n this.drawerVisible = true;\n this.isEditMode = true;\n this.isViewMode = false;\n // this.isEditMode = item !=null ;\n }\n if (mode == 'add') {\n this.drawerVisible = true;\n this.isViewMode = false;\n this.isEditMode = false;\n }\n if (mode == 'view') {\n // this.drawerVisible = true;\n this.dialogVisible = true;\n this.isViewMode = true;\n this.isEditMode = false;\n }\n }\n openDeactivationReason(model) {\n this.selectedItem = model;\n if (this.selectedItem.isActive == true) {\n const ref = this.dialogService.open(DeactivationReasonFormComponent, {\n header: 'السبب (في حال تم إيقافه)',\n width: '30vw',\n data: { model: { ...model },\n fields: this.formFields,\n service: this.service,\n idField: this.idField },\n });\n ref.onClose.subscribe((result) => {\n if (result) {\n this.selectedItem.isActive = false;\n this.selectedItem.deactivationReason = result.deactivationReason;\n // Optionally: save model via API\n }\n });\n }\n else {\n this.selectedItem.isActive = true;\n this.selectedItem.deactivationReason = \"\";\n const id = this.selectedItem[this.idField];\n this.service.update(id, this.selectedItem).subscribe({\n next: () => { console.log(''); },\n error: (err) => {\n this.loading = false;\n }\n });\n }\n }\n // onDelete(item: any): void {\n // if (!confirm('هل تريد الحذف فعلاً؟')) return;\n // const id = (item as any)[this.idField];\n // this.service.delete(id).subscribe(() => {\n // this.loadPage(0, this.rows);\n // });\n // }\n onDelete(item) {\n const id = item[this.idField];\n this.swalService.confirm('تأكيد الحذف', 'هل تريد حذف هذا السجل فعلاً؟', 'نعم، احذف', 'إلغاء').then((result) => {\n if (result.isConfirmed) {\n this.service.delete(id).subscribe({\n next: () => {\n this.loadPage(0, this.rows);\n this.swalService.success('تم الحذف بنجاح');\n },\n error: (err) => {\n this.loading = false;\n // const msg =\n // err.error?.title ||\n // err.message ||\n // 'حدث خطأ أثناء الحفظ. يرجى المحاولة مرة أخرى.';\n // // this.errorMessage = msg;\n // // ❌ رسالة خطأ\n // this.swalService.error('فشل الحذف', msg);\n }\n });\n }\n });\n }\n get columns() {\n const flattenFields = (fields) => {\n return fields.flatMap(field => {\n // Check for nested group/panel\n if (field.fieldGroup?.length) {\n return flattenFields(field.fieldGroup);\n }\n // Skip fields with no props or table.hidden === true\n if (!field.props || field.props['table']?.hidden === true) {\n return [];\n }\n // Determine the column type: table.type > field.type > 'label-type'\n // const tableType = field.props['table']?.type || field.type || 'label-type';\n const tableType = field.props['table']?.type || 'label-type';\n //\n return [{\n type: tableType,\n key: field['key'], // always set key for table rendering\n props: {\n ...field.props, // base props\n ...field.props['table']?.props // table-specific overrides\n },\n expressions: field.props['table']?.expressions\n }];\n });\n };\n return flattenFields(this.formFields);\n }\n get filters() {\n const flattenForFilter = (fields) => {\n return fields.flatMap(field => {\n if (field.fieldGroup?.length) {\n // Recursively handle nested panels/groups\n return flattenForFilter(field.fieldGroup);\n }\n // Skip fields with no props or filter.hidden === true\n if (!field.props || field.props['filter']?.hidden === true) {\n return [];\n }\n // Merge base props with filter overrides\n const mergedProps = {\n ...field.props,\n ...field.props['filter']?.props,\n };\n // Remove disabled and required props\n delete mergedProps['disabled'];\n delete mergedProps['required'];\n delete mergedProps['loadDefault'];\n return [{\n type: field.type,\n key: field.key, // always set key for table rendering\n props: mergedProps,\n // expressions: field.props['filter']?.expressions // uncomment if needed\n }];\n });\n };\n return flattenForFilter(this.formFields);\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: BaseCrud, deps: [], target: i0.ɵɵFactoryTarget.Directive });\n static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"20.1.8\", type: BaseCrud, isStandalone: true, ngImport: i0 });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: BaseCrud, decorators: [{\n type: Directive\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS1jcnVkLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9uZy51aS5jb3JlL2Jhc2UtY3J1ZC9zcmMvbGliL2Jhc2UtY3J1ZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUdsRCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3pELE9BQU8sRUFBZSxXQUFXLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUU3RSxPQUFPLEVBQUUsK0JBQStCLEVBQUUsTUFBTSxpREFBaUQsQ0FBQzs7QUFHbEcsTUFBTSxPQUFnQixRQUFRO0lBQzVCLElBQUksR0FBc0IsRUFBRSxDQUFDO0lBQzdCLFNBQVMsR0FBVSxJQUFJLENBQUM7SUFDeEIsT0FBTyxHQUFVLElBQUksQ0FBQztJQUN0QixPQUFPLEdBQVUsS0FBSyxDQUFDO0lBQ3ZCLFFBQVEsR0FBVSxFQUFFLENBQUM7SUFDckIsS0FBSyxHQUFhLENBQUMsQ0FBQztJQUNwQixJQUFJLEdBQWMsRUFBRSxDQUFDO0lBQ3JCLFlBQVksR0FBTSxDQUFDLENBQUM7SUFDcEIsWUFBWSxHQUFNLEVBQUUsQ0FBQztJQUNyQixJQUFJLENBQVU7SUFDZCxXQUFXLEdBQWUsRUFBRSxDQUFDO0lBQzdCLGNBQWMsR0FBZSxFQUFFLENBQUM7SUFDaEMsSUFBSSxHQUFFLEVBQUUsQ0FBQztJQUNULFlBQVksR0FBRSxPQUFPLENBQUM7SUFDZCxXQUFXLEdBQUcsTUFBTSxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBRWhDLFNBQVMsQ0FBb0I7SUFhdkMsYUFBYSxHQUFHLEtBQUssQ0FBQztJQUN0QixhQUFhLEdBQUcsS0FBSyxDQUFDO0lBQ3RCLFlBQVksR0FBWSxJQUFJLENBQUM7SUFDN0IsWUFBWSxHQUFZLElBQUksQ0FBQztJQUM3Qiw4QkFBOEI7SUFDOUIs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UyIsInNvdXJjZXNDb250ZW50IjpbIlxyXG5cclxuaW1wb3J0IHsgRGlyZWN0aXZlLCBpbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgRGlhbG9nU2VydmljZSwgRHluYW1pY0RpYWxvZ1JlZiB9IGZyb20gJ3ByaW1lbmcvZHluYW1pY2RpYWxvZyc7XHJcbmltcG9ydCB7IEZvcm1seUZpZWxkQ29uZmlnIH0gZnJvbSAnQG5neC1mb3JtbHkvY29yZSc7XHJcbmltcG9ydCB7IEFjdGl2YXRlZFJvdXRlLCBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xyXG5pbXBvcnQgeyBCYXNlU2VydmljZSwgU3dhbFNlcnZpY2UgfSBmcm9tICdAZWxpdGUuZnJhbWV3b3JrL25nLmNvcmUvc2VydmljZXMnO1xyXG5pbXBvcnQgeyBBY3Rpb25EZWYsIFBhZ2luYXRlZFJlc3VsdCB9IGZyb20gJ0BlbGl0ZS5mcmFtZXdvcmsvbmcuY29yZS9tb2RlbHMnO1xyXG5pbXBvcnQgeyBEZWFjdGl2YXRpb25SZWFzb25Gb3JtQ29tcG9uZW50IH0gZnJvbSAnQGVsaXRlLmZyYW1ld29yay9uZy51aS5jb3JlL2RlYWN0aXZhdGlvbi1yZWFzb24nO1xyXG5cclxuQERpcmVjdGl2ZSgpXHJcbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBCYXNlQ3J1ZDxULCBGID0gYW55PiAge1xyXG4gIGxpc3Q6IFRbXSAgICAgICAgICAgICAgID0gW107XHJcbiAgcGFnaW5hdG9yICAgICAgICA9IHRydWU7XHJcbiAgY2FuTG9hZCAgICAgICAgPSB0cnVlO1xyXG4gIGxvYWRpbmcgICAgICAgID0gZmFsc2U7XHJcbiAgZXJyb3JNc2cgICAgICAgID0gJyc7XHJcbiAgZmlyc3QgICAgICAgICAgID0gMDtcclxuICByb3dzICAgICAgICAgICAgPSAxMDtcclxuICB0b3RhbFJlY29yZHMgICAgPSAwO1xyXG4gIHNlYXJjaEdsb2JhbCAgICA9ICcnO1xyXG4gIHNvcnQ/OiBzdHJpbmc7XHJcbiAgcGFnZUZpbHRlcnM6IFBhcnRpYWw8Rj4gPSB7fTtcclxuICBjdXJyZW50RmlsdGVyczogUGFydGlhbDxGPiA9IHt9O1xyXG4gIG1vZGUgPScnO1xyXG4gIHNjcm9sbEhlaWdodCA9JzQwMHB4JztcclxuICBwcml2YXRlIHN3YWxTZXJ2aWNlID0gaW5qZWN0KFN3YWxTZXJ2aWNlKTtcclxuXHJcbiAgcHJvdGVjdGVkIGRpYWxvZ1JlZiE6IER5bmFtaWNEaWFsb2dSZWY7XHJcblxyXG5cclxuICAvLyBhYnN0cmFjdCBzZXJ2aWNlOiBDcnVkU2VydmljZTxULCBGPjtcclxuICBhYnN0cmFjdCBzZXJ2aWNlOiBCYXNlU2VydmljZTtcclxuICBhYnN0cmFjdCBkaWFsb2dTZXJ2aWNlOiBEaWFsb2dTZXJ2aWNlO1xyXG4gIC8vIGFic3RyYWN0IGRpYWxvZ0NvbXBvbmVudDogYW55O1xyXG4gIC8vIGFic3RyYWN0IGNvbHVtbnM6IENvbHVtbkRlZjxUPltdO1xyXG4gIGFic3RyYWN0IGFjdGlvbnM6IEFjdGlvbkRlZjxUPltdO1xyXG5cclxuICAvLyBmb3IgZ2VuZXJpYyBkaWFsb2c6XHJcbiAgYWJzdHJhY3QgZm9ybUZpZWxkczogRm9ybWx5RmllbGRDb25maWdbXTtcclxuICBhYnN0cmFjdCBpZEZpZWxkOiBrZXlvZiBUO1xyXG4gIGRpYWxvZ1Zpc2libGUgPSBmYWxzZTtcclxuICBkcmF3ZXJWaXNpYmxlID0gZmFsc2U7XHJcbiAgc2VsZWN0ZWRJdGVtOiBUIHwgYW55ID0gbnVsbDtcclxuICBkZWZhdWx0TW9kZWw6IFQgfCBhbnkgPSBudWxsO1xyXG4gIC8vIHNlbGVjdGVkSXRlbTogVCB8IGFueSA9IHt9O1xyXG4gIGlzVmlld01vZGUgPSBmYWxzZTtcclxuICBpc0VkaXRNb2RlID0gZmFsc2U7XHJcblxyXG5cclxuXHJcbiAgZGlzcGxheU1vZGU6XHJcbiAgfCAnZHJhd2VyJyB8ICdkaWFsb2cnIHwgJ3JvdXRlJ1xyXG4gIHwgUGFydGlhbDxSZWNvcmQ8J2FkZCcgfCAnZWRpdCcgfCAndmlldycsICdkcmF3ZXInIHwgJ2RpYWxvZycgfCAncm91dGUnPj5cclxuICA9ICdkcmF3ZXInO1xyXG5cclxuICBwdWJsaWMgcm91dGVyPSBpbmplY3QoUm91dGVyKTtcclxuICBwdWJsaWMgcm91dGUgPSBpbmplY3QoQWN0aXZhdGVkUm91dGUpO1xyXG5cclxubG9hZFBhZ2UocGFnZUluZGV4OiBudW1iZXIsIHBhZ2VTaXplOiBudW1iZXIpOiB2b2lkIHtcclxuICAgIGlmKHRoaXMuY2FuTG9hZCl7XHJcblxyXG5cclxuICAgIHRoaXMubG9hZGluZyA9IHRydWU7XHJcbiAgICBjb25zdCBmaWx0ZXJzOiBQYXJ0aWFsPEY+ID0ge1xyXG4gICAgICBtYXhSZXN1bHRDb3VudDpwYWdlU2l6ZSxcclxuICAgICAgc2tpcENvdW50OnBhZ2VJbmRleCxcclxuICAgICAgc29ydGluZzp0aGlzLnNvcnQsXHJcbiAgICAuLi50aGlzLmN1cnJlbnRGaWx0ZXJzLFxyXG4gICAgLi4udGhpcy5wYWdlRmlsdGVycyxcclxuICAgIC4uLih0aGlzLnNlYXJjaEdsb2JhbCA/IHsgZmlsdGVyOiB0aGlzLnNlYXJjaEdsb2JhbCB9IDoge30pLFxyXG4gICAgfTtcclxuICAgIC8vXHJcbiAgICB0aGlzLnNlcnZpY2UuZ2V0TGlzdChmaWx0ZXJzKVxyXG4gICAgICAuc3Vic2NyaWJlKHtcclxuICAgICAgICBuZXh0OiAocmVzOiBQYWdpbmF0ZWRSZXN1bHQ8VD4pID0+IHtcclxuICAgICAgICAgIC8vXHJcbiAgICAgICAgICB0aGlzLmxpc3QgICAgICAgICA9IHJlcy5pdGVtcztcclxuICAgICAgICAgIHRoaXMudG90YWxSZWNvcmRzID0gcmVzLnRvdGFsQ291bnQ7XHJcbiAgICAgICAgICB0aGlzLmxvYWRpbmcgICAgICA9IGZhbHNlO1xyXG4gICAgICAgIH0sXHJcbiAgICAgICAgZXJyb3I6IChlcnI6YW55KSA9PiB7XHJcbiAgICAgICAgICB0aGlzLmVycm9yTXNnICAgICA9IGVyci5lcnJvcj8ubWVzc2FnZSB8fCBlcnIubWVzc2FnZSB8fCAn2K7Yt9ijINmB2Yog2KfZhNiq2K3ZhdmK2YQnO1xyXG4gICAgICAgICAgdGhpcy5sb2FkaW5nICAgICAgPSBmYWxzZTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG59XHJcblxyXG5vblNlYXJjaChmaWx0ZXJzPzogYW55KTogdm9pZCB7XHJcbiAgLy9cclxuICBpZiAoZmlsdGVycyAmJiB0eXBlb2YgZmlsdGVycyA9PT0gJ29iamVjdCcgJiYgIUFycmF5LmlzQXJyYXkoZmlsdGVycykpIHtcclxuICAgIHRoaXMucGFnZUZpbHRlcnMgPSBmaWx0ZXJzO1xyXG4gIH0gZWxzZSB7XHJcbiAgICB0aGlzLnNlYXJjaEdsb2JhbCA9IGZpbHRlcnM7XHJcbiAgfVxyXG5cclxuICB0aGlzLmxvYWRQYWdlKDAsIDEwKTtcclxufVxyXG5cclxuXHJcblxyXG5cclxuXHJcblxyXG5cclxub25QYWdlQ2hhbmdlKGV2ZW50OiB7IGZpcnN0PzogbnVtYmVyOyByb3dzPzogbnVtYmVyOyBzb3J0Pzogc3RyaW5nOyBmaWx0ZXJzPzogUmVjb3JkPHN0cmluZywgYW55PiB9KTogdm9pZCB7XHJcbiAgLy8g2YHZgyDYp9mE2YXYqti62YrZkdix2KfYqiDZhdi5INmC2YrZhdipINin2YHYqtix2KfYttmK2Kkg2YTZgdmE2KfYqtixXHJcbiAgY29uc3Qge1xyXG4gICAgZmlyc3QgICA9IHRoaXMuZmlyc3QsXHJcbiAgICByb3dzICAgID0gdGhpcy5yb3dzLFxyXG4gICAgc29ydCAgICA9IHRoaXMuc29ydCxcclxuICAgIGZpbHRlcnMgPSB7fVxyXG4gIH0gPSBldmVudDtcclxuXHJcbiAgdGhpcy5maXJzdCA9IGZpcnN0O1xyXG4gIHRoaXMucm93cyAgPSByb3dzO1xyXG4gIHRoaXMuc29ydCAgPSBzb3J0O1xyXG5cclxuICAvLyBjb25zdCBwYWdlSW5kZXggPSBNYXRoLmZsb29yKGZpcnN0IC8gcm93cyk7XHJcbiAgY29uc3Qgc2tpcENvdW50ID0gZmlyc3Q7XHJcbiAgY29uc3QgcGFnZUluZGV4ID0gc2tpcENvdW50O1xyXG5cclxuICAvLyDYp9mE2YjYtdmI2YQg2YTZhNmB2YTYqtixINin2YTYudin2YUg2LnYqNixINin2YTYtdmK2LrYqSDYp9mE2YXYsdio2LnYqVxyXG4gIGNvbnN0IGdsb2JhbFZhbHVlID0gZmlsdGVyc1snZ2xvYmFsJ107XHJcbiAgdGhpcy5zZWFyY2hHbG9iYWwgPSB0eXBlb2YgZ2xvYmFsVmFsdWUgPT09ICdzdHJpbmcnID8gZ2xvYmFsVmFsdWUgOiAnJztcclxuXHJcbiAgLy8g2YHZhNiq2LHYqSDYrtin2LXYqSDYqNit2YLZhCDZiNin2K3Yr1xyXG4gIC8vIGNvbnN0IGZpZWxkRmlsdGVycyA9IHsgLi4uZmlsdGVycyB9O1xyXG4gIC8vIGRlbGV0ZSBmaWVsZEZpbHRlcnNbJ2dsb2JhbCddO1xyXG4gIC8vIHRoaXMuY3VycmVudEZpbHRlcnMgPSBmaWVsZEZpbHRlcnMgYXMgUGFydGlhbDxGPjtcclxuXHJcblxyXG5cclxuICB0aGlzLmxvYWRQYWdlKHBhZ2VJbmRleCwgcm93cyk7XHJcbn1cclxuXHJcblxyXG5wcm90ZWN0ZWQgb3BlbkVkaXRvcihpdGVtOiBUIHwgbnVsbCwgbW9kZTogJ2FkZCcgfCAnZWRpdCcgfCAndmlldycpOiB2b2lkIHtcclxuICB0aGlzLm1vZGUgPSBtb2RlO1xyXG4gIHRoaXMuc2VsZWN0ZWRJdGVtID0gaXRlbSA/PyB0aGlzLmRlZmF1bHRNb2RlbCA/PyB7fTtcclxuICB0aGlzLmlzRWRpdE1vZGUgPSBtb2RlID09PSAnZWRpdCc7XHJcbiAgdGhpcy5pc1ZpZXdNb2RlID0gbW9kZSA9PT0gJ3ZpZXcnO1xyXG5cclxuICAvLyByZXNvbHZlIGRpc3BsYXlNb2RlIChzdHJpbmcgb3IgbWFwKVxyXG4gIGNvbnN0IG1vZGVDb25maWcgPSB0eXBlb2YgdGhpcy5kaXNwbGF5TW9kZSA9PT0gJ3N0cmluZydcclxuICAgID8gdGhpcy5kaXNwbGF5TW9kZVxyXG4gICAgOiB0aGlzLmRpc3BsYXlNb2RlW21vZGVdID8/ICdkcmF3ZXInO1xyXG5cclxuICBzd2l0Y2ggKG1vZGVDb25maWcpIHtcclxuICAgIGNhc2UgJ2RyYXdlcic6XHJcbiAgICAgIHRoaXMuZHJhd2VyVmlzaWJsZSA9IHRydWU7XHJcbiAgICAgIGJyZWFrO1xyXG5cclxuICAgIGNhc2UgJ2RpYWxvZyc6XHJcbiAgICAgIHRoaXMuZGlhbG9nVmlzaWJsZSA9IHRydWU7XHJcbiAgICAgIGJyZWFrO1xyXG5cclxuICAgIGNhc2UgJ3JvdXRlJzpcclxuICAgICAge1xyXG4gICAgICAgIGNvbnN0IGlkID0gaXRlbSA/IChpdGVtIGFzIGFueSlbdGhpcy5pZEZpZWxkXSA6ICduZXcnO1xyXG4gICAgICBpZihtb2RlID09PSAnYWRkJyl7XHJcbiAgICAgICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoW21vZGVdLCB7IHJlbGF0aXZlVG86IHRoaXMucm91dGUgfSk7XHJcbiAgICAgIH1cclxuICAgICAgZWxzZXtcclxuICAgICAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbaWQsIG1vZGVdLCB7IHJlbGF0aXZlVG86IHRoaXMucm91dGUgfSk7XHJcbiAgICAgIH1cclxuICAgICAgYnJlYWs7XHJcbiAgICAgIH1cclxuICB9XHJcbn1cclxuXHJcbnZpc2libGVDaGFuZ2UodmFsdWU6IGJvb2xlYW4pIHtcclxuICBjb25zdCBtb2RlQ29uZmlnID0gdHlwZW9mIHRoaXMuZGlzcGxheU1vZGUgPT09ICdzdHJpbmcnXHJcbiAgICA/IHRoaXMuZGlzcGxheU1vZGVcclxuICAgIDogdGhpcy5kaXNwbGF5TW9kZVt0aGlzLm1vZGUgYXMgJ2FkZCcgfCAnZWRpdCcgfCAndmlldyddID8/ICdkcmF3ZXInO1xyXG5cclxuICBpZiAobW9kZUNvbmZpZyA9PT0gJ2RpYWxvZycpIHtcclxuICAgIHRoaXMuZGlhbG9nVmlzaWJsZSA9IHZhbHVlO1xyXG4gIH0gZWxzZSBpZiAobW9kZUNvbmZpZyA9PT0gJ2RyYXdlcicpIHtcclxuICAgIHRoaXMuZHJhd2VyVmlzaWJsZSA9IHZhbHVlO1xyXG4gIH0gZWxzZSB7XHJcbiAgICAvLyByb3V0ZSBtb2RlIGRvZXMgbm90IHVzZSBkcmF3ZXIvZGlhbG9nXHJcbiAgfVxyXG59XHJcblxyXG5cclxuLy8gb25UYWJsZUFjdGlvbihldmVudDogeyBuYW1lOiBzdHJpbmc7IHJvdzogVCB8IG51bGwgfSk6IHZvaWQge1xyXG4vLyAgICAgc3dpdGNoIChldmVudC5uYW1lKSB7XHJcbi8vICAgICAgIGNhc2UgJ2FkZCc6ICAgIHRoaXMub3BlbkRyYXdlcihudWxsLGV2ZW50Lm5hbWUpOyAgICAgICAgICAgICBicmVhaztcclxuLy8gICAgICAgY2FzZSAndmlldyc6ICAgdGhpcy5vcGVuRHJhd2VyKGV2ZW50LnJvdyEsZXZlbnQubmFtZSk7ICBicmVhaztcclxuLy8gICAgICAgY2FzZSAnZWRpdCc6ICAgdGhpcy5vcGVuRHJhd2VyKGV2ZW50LnJvdyEsZXZlbnQubmFtZSk7ICBicmVhaztcclxuLy8gICAgICAgY2FzZSAnZGVsZXRlJzogdGhpcy5vbkRlbGV0ZShldmVudC5yb3chKTticmVhaztcclxuLy8gICAgICAgY2FzZSAnc3RhdGUnOiB0aGlzLm9wZW5EZWFjdGl2YXRpb25SZWFzb24oZXZlbnQucm93ISk7YnJlYWs7XHJcbi8vICAgICB9XHJcbi8vIH1cclxuXHJcbm9uVGFibGVBY3Rpb24oZXZlbnQ6IHsgbmFtZTogc3RyaW5nOyByb3c6IFQgfCBudWxsIH0pOiB2b2lkIHtcclxuICBzd2l0Y2ggKGV2ZW50Lm5hbWUpIHtcclxuICAgIGNhc2UgJ2FkZCc6XHJcbiAgICBjYXNlICdlZGl0JzpcclxuICAgIGNhc2UgJ3ZpZXcnOlxyXG4gICAgICB0aGlzLm9wZW5FZGl0b3IoZXZlbnQucm93LCBldmVudC5uYW1lKTtcclxuICAgICAgYnJlYWs7XHJcbiAgICBjYXNlICdkZWxldGUnOlxyXG4gICAgICB0aGlzLm9uRGVsZXRlKGV2ZW50LnJvdyEpO1xyXG4gICAgICBicmVhaztcclxuICAgIGNhc2UgJ3N0YXRlJzpcclxuICAgICAgdGhpcy5vcGVuRGVhY3RpdmF0aW9uUmVhc29uKGV2ZW50LnJvdyEpO1xyXG4gICAgICBicmVhaztcclxuICB9XHJcbn1cclxuXHJcblxyXG5wcm90ZWN0ZWQgb3BlbkRyYXdlcihpdGVtOiBUIHwgbnVsbCxtb2RlOnN0cmluZyk6IHZvaWQge1xyXG5cclxuICAgICAgdGhpcy5tb2RlID0gbW9kZTtcclxuXHJcbiAgICAgIC8vIHRoaXMuZHJhd2VyVmlzaWJsZSA9ICF0aGlzLmRyYXdlclZpc2libGU7XHJcblxyXG5cclxuICAgICAgaWYgKGl0ZW0gPT0gbnVsbCkge1xyXG5cclxuICAgICAgICB0aGlzLnNlbGVjdGVkSXRlbSA9IHRoaXMuZGVmYXVsdE1vZGVsIHx8IHt9O1xyXG4gICAgICB9XHJcbiAgICAgIGVsc2V7XHJcbiAgICAgICAgIHRoaXMuc2VsZWN0ZWRJdGVtID0gaXRlbTtcclxuICAgICAgfVxyXG5cclxuICAgICAgaWYobW9kZSA9PSAnZWRpdCcpe1xyXG4gICAgICAgIHRoaXMuZHJhd2VyVmlzaWJsZSA9IHRydWU7XHJcbiAgICAgICAgdGhpcy5pc0VkaXRNb2RlID0gdHJ1ZSA7XHJcbiAgICAgICAgdGhpcy5pc1ZpZXdNb2RlID0gZmFsc2UgO1xyXG4gICAgICAgIC8vIHRoaXMuaXNFZGl0TW9kZSA9IGl0ZW0gIT1udWxsIDtcclxuICAgICAgfVxyXG4gICAgICBpZihtb2RlID09ICdhZGQnKXtcclxuICAgICAgICAgdGhpcy5kcmF3ZXJWaXNpYmxlID0gdHJ1ZTtcclxuICAgICAgICB0aGlzLmlzVmlld01vZGUgPSBmYWxzZSA7XHJcbiAgICAgICAgdGhpcy5pc0VkaXRNb2RlID0gZmFsc2UgO1xyXG4gICAgICB9XHJcbiAgICAgIGlmKG1vZGUgPT0gJ3ZpZXcnKXtcclxuICAgICAgICAvLyB0aGlzLmRyYXdlclZpc2libGUgPSB0cnVlO1xyXG4gICAgICAgIHRoaXMuZGlhbG9nVmlzaWJsZSA9IHRydWU7XHJcblxyXG4gICAgICAgIHRoaXMuaXNWaWV3TW9kZSA9IHRydWUgO1xyXG4gICAgICAgIHRoaXMuaXNFZGl0TW9kZSA9IGZhbHNlIDtcclxuICAgICAgfVxyXG59XHJcblxyXG5cclxub3BlbkRlYWN0aXZhdGlvblJlYXNvbihtb2RlbDogYW55KSB7XHJcblxyXG4gIHRoaXMuc2VsZWN0ZWRJdGVtID0gbW9kZWw7XHJcbiAgaWYodGhpcy5zZWxlY3RlZEl0ZW0uaXNBY3RpdmUgPT0gdHJ1ZSl7XHJcblxyXG5cclxuICBjb25zdCByZWYgPSB0aGlzLmRpYWxvZ1NlcnZpY2Uub3BlbihEZWFjdGl2YXRpb25SZWFzb25Gb3JtQ29tcG9uZW50LCB7XHJcbiAgICBoZWFkZXI6ICfYp9mE2LPYqNioICjZgdmKINit2KfZhCDYqtmFINil2YrZgtin2YHZhyknLFxyXG4gICAgd2lkdGg6ICczMHZ3JyxcclxuICAgIGRhdGE6IHsgbW9kZWw6IHsgLi4ubW9kZWwgfSxcclxuICAgICAgICBmaWVsZHM6IHRoaXMuZm9ybUZpZWxkcyxcclxuICAgICAgICBzZXJ2aWNlOiB0aGlzLnNlcnZpY2UsXHJcbiAgICAgICAgaWRGaWVsZDogdGhpcy5pZEZpZWxkIH0sXHJcbiAgfSk7XHJcblxyXG4gIHJlZi5vbkNsb3NlLnN1YnNjcmliZSgocmVzdWx0KSA9PiB7XHJcbiAgICBpZiAocmVzdWx0KSB7XHJcbiAgICAgIHRoaXMuc2VsZWN0ZWRJdGVtLmlzQWN0aXZlID0gZmFsc2U7XHJcbiAgICAgIHRoaXMuc2VsZWN0ZWRJdGVtLmRlYWN0aXZhdGlvblJlYXNvbiA9IHJlc3VsdC5kZWFjdGl2YXRpb25SZWFzb247XHJcbiAgICAgIC8vIE9wdGlvbmFsbHk6IHNhdmUgbW9kZWwgdmlhIEFQSVxyXG4gICAgfVxyXG4gIH0pO1xyXG59XHJcbmVsc2V7XHJcbiAgIHRoaXMuc2VsZWN0ZWRJdGVtLmlzQWN0aXZlID0gdHJ1ZTtcclxuICAgdGhpcy5zZWxlY3RlZEl0ZW0uZGVhY3RpdmF0aW9uUmVhc29uID0gXCJcIjtcclxuICAgIGNvbnN0IGlkID0gICh0aGlzLnNlbGVjdGVkSXRlbSBhcyBhbnkpW3RoaXMuaWRGaWVsZF0gO1xyXG4gICAgdGhpcy5zZXJ2aWNlLnVwZGF0ZShpZCwgdGhpcy5zZWxlY3RlZEl0ZW0pLnN1YnNjcmliZSh7XHJcbiAgICAgICAgICAgbmV4dDogKCkgPT4ge2NvbnNvbGUubG9nKCcnKX0sXHJcbiAgICAgICAgICAgZXJyb3I6IChlcnI6YW55KSA9PiB7XHJcbiAgICAgICAgICAgICB0aGlzLmxvYWRpbmcgPSBmYWxzZTtcclxuXHJcbiAgICAgICAgICAgfVxyXG4gICAgICAgICB9KTtcclxufVxyXG59XHJcblxyXG5cclxuXHJcblxyXG5cclxuXHJcbiAgLy8gb25EZWxldGUoaXRlbTogYW55KTogdm9pZCB7XHJcbiAgLy8gICBpZiAoIWNvbmZpcm0oJ9mH2YQg2KrYsdmK2K8g2KfZhNit2LDZgSDZgdi52YTYp9mL2J8nKSkgcmV0dXJuO1xyXG4gIC8vICAgY29uc3QgaWQgPSAoaXRlbSBhcyBhbnkpW3RoaXMuaWRGaWVsZF07XHJcbiAgLy8gICB0aGlzLnNlcnZpY2UuZGVsZXRlKGlkKS5zdWJzY3JpYmUoKCkgPT4ge1xyXG4gIC8vICAgICB0aGlzLmxvYWRQYWdlKDAsIHRoaXMucm93cyk7XHJcbiAgLy8gICB9KTtcclxuICAvLyB9XHJcblxyXG5cclxub25EZWxldGUoaXRlbTogYW55KTogdm9pZCB7XHJcbiAgY29uc3QgaWQgPSBpdGVtW3RoaXMuaWRGaWVsZF07XHJcblxyXG4gIHRoaXMuc3dhbFNlcnZpY2UuY29uZmlybShcclxuICAgICfYqtij2YPZitivINin2YTYrdiw2YEnLFxyXG4gICAgJ9mH2YQg2KrYsdmK2K8g2K3YsNmBINmH2LDYpyDYp9mE2LPYrNmEINmB2LnZhNin2YvYnycsXHJcbiAgICAn2YbYudmF2Iwg2KfYrdiw2YEnLFxyXG4gICAgJ9il2YTYutin2KEnXHJcbiAgKS50aGVuKChyZXN1bHQpID0+IHtcclxuICAgIGlmIChyZXN1bHQuaXNDb25maXJtZWQpIHtcclxuICAgICAgdGhpcy5zZXJ2aWNlLmRlbGV0ZShpZCkuc3Vic2NyaWJlKHtcclxuICAgICAgICBuZXh0OiAoKSA9PiB7XHJcbiAgICAgICAgICB0aGlzLmxvYWRQYWdlKDAsIHRoaXMucm93cyk7XHJcbiAgICAgICAgICB0aGlzLnN3YWxTZXJ2aWNlLnN1Y2Nlc3MoJ9iq2YUg2KfZhNit2LDZgSDYqNmG2KzYp9itJyk7XHJcbiAgICAgICAgfSxcclxuICAgICAgICBlcnJvcjogKGVycjogYW55KSA9PiB7XHJcbiAgICAgICAgICB0aGlzLmxvYWRpbmcgPSBmYWxzZTtcclxuXHJcbiAgICAgICAgICAvLyBjb25zdCBtc2cgPVxyXG4gICAgICAgICAgLy8gICBlcnIuZXJyb3I/LnRpdGxlIHx8XHJcbiAgICAgICAgICAvLyAgIGVyci5tZXNzYWdlIHx8XHJcbiAgICAgICAgICAvLyAgICfYrdiv2Ksg2K7Yt9ijINij2KvZhtin2KEg2KfZhNit2YHYuC4g2YrYsdis2Ykg2KfZhNmF2K3Yp9mI2YTYqSDZhdix2Kkg2KPYrtix2YkuJztcclxuXHJcbiAgICAgICAgICAvLyAvLyB0aGlzLmVycm9yTWVzc2FnZSA9IG1zZztcclxuXHJcbiAgICAgICAgICAvLyAvLyDinYwg2LHYs9in2YTYqSDYrti32KNcclxuICAgICAgICAgIC8vIHRoaXMuc3dhbFNlcnZpY2UuZXJyb3IoJ9mB2LTZhCDYp9mE2K3YsNmBJywgbXNnKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gIH0pO1xyXG59XHJcblxyXG5cclxuXHJcbmdldCBjb2x1bW5zKCk6IEZvcm1seUZpZWxkQ29uZmlnW10ge1xyXG4gICAgY29uc3QgZmxhdHRlbkZpZWxkcyA9IChmaWVsZHM6IEZvcm1seUZpZWxkQ29uZmlnW10pOiBGb3JtbHlGaWVsZENvbmZpZ1tdID0+IHtcclxuICAgICAgcmV0dXJuIGZpZWxkcy5mbGF0TWFwKGZpZWxkID0+IHtcclxuICAgICAgICAvLyBDaGVjayBmb3IgbmVzdGVkIGdyb3VwL3BhbmVsXHJcbiAgICAgICAgaWYgKGZpZWxkLmZpZWxkR3JvdXA/Lmxlbmd0aCkge1xyXG4gICAgICAgICAgcmV0dXJuIGZsYXR0ZW5GaWVsZHMoZmllbGQuZmllbGRHcm91cCk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAvLyBTa2lwIGZpZWxkcyB3aXRoIG5vIHByb3BzIG9yIHRhYmxlLmhpZGRlbiA9PT0gdHJ1ZVxyXG4gICAgICAgIGlmICghZmllbGQucHJvcHMgfHwgZmllbGQucHJvcHNbJ3RhYmxlJ10/LmhpZGRlbiA9PT0gdHJ1ZSkge1xyXG4gICAgICAgICAgcmV0dXJuIFtdO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLy8gRGV0ZXJtaW5lIHRoZSBjb2x1bW4gdHlwZTogdGFibGUudHlwZSA+IGZpZWxkLnR5cGUgPiAnbGFiZWwtdHlwZSdcclxuICAgICAgICAvLyBjb25zdCB0YWJsZVR5cGUgPSBmaWVsZC5wcm9wc1sndGFibGUnXT8udHlwZSB8fCBmaWVsZC50eXBlIHx8ICdsYWJlbC10eXBlJztcclxuICAgICAgICBjb25zdCB0YWJsZVR5cGUgPSBmaWVsZC5wcm9wc1sndGFibGUnXT8udHlwZSB8fCAgJ2xhYmVsLXR5cGUnO1xyXG5cclxuICAgICAgICAvL1xyXG5cclxuICAgICAgICByZXR1cm4gW3tcclxuICAgICAgICAgIHR5cGU6IHRhYmxlVHlwZSxcclxuICAgICAgICAgIGtleTogZmllbGRbJ2tleSddLCAvLyBhbHdheXMgc2V0IGtleSBmb3IgdGFibGUgcmVuZGVyaW5nXHJcbiAgICAgICAgICBwcm9wczoge1xyXG4gICAgICAgICAgICAuLi5maWVsZC5wcm9wcywgICAgICAgICAgLy8gYmFzZSBwcm9wc1xyXG4gICAgICAgICAgICAuLi5maWVsZC5wcm9wc1sndGFibGUnXT8ucHJvcHMgLy8gdGFibGUtc3BlY2lmaWMgb3ZlcnJpZGVzXHJcbiAgICAgICAgICB9LFxyXG4gICAgICAgICAgZXhwcmVzc2lvbnM6IGZpZWxkLnByb3BzWyd0YWJsZSddPy5leHByZXNzaW9uc1xyXG4gICAgICAgIH1dO1xyXG4gICAgICB9KTtcclxuICAgIH07XHJcblxyXG4gICAgcmV0dXJuIGZsYXR0ZW5GaWVsZHModGhpcy5mb3JtRmllbGRzKTtcclxufVxyXG5cclxuXHJcbmdldCBmaWx0ZXJzKCk6IEZvcm1seUZpZWxkQ29uZmlnW10ge1xyXG4gIGNvbnN0IGZsYXR0ZW5Gb3JGaWx0ZXIgPSAoZmllbGRzOiBGb3JtbHlGaWVsZENvbmZpZ1tdKTogRm9ybWx5RmllbGRDb25maWdbXSA9PiB7XHJcbiAgICByZXR1cm4gZmllbGRzLmZsYXRNYXAoZmllbGQgPT4ge1xyXG4gICAgICBpZiAoZmllbGQuZmllbGRHcm91cD8ubGVuZ3RoKSB7XHJcbiAgICAgICAgLy8gUmVjdXJzaXZlbHkgaGFuZGxlIG5lc3RlZCBwYW5lbHMvZ3JvdXBzXHJcbiAgICAgICAgcmV0dXJuIGZsYXR0ZW5Gb3JGaWx0ZXIoZmllbGQuZmllbGRHcm91cCk7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIC8vIFNraXAgZmllbGRzIHdpdGggbm8gcHJvcHMgb3IgZmlsdGVyLmhpZGRlbiA9PT0gdHJ1ZVxyXG4gICAgICBpZiAoIWZpZWxkLnByb3BzIHx8IGZpZWxkLnByb3BzWydmaWx0ZXInXT8uaGlkZGVuID09PSB0cnVlKSB7XHJcbiAgICAgICAgcmV0dXJuIFtdO1xyXG4gICAgICB9XHJcblxyXG4gICAgICAvLyBNZXJnZSBiYXNlIHByb3BzIHdpdGggZmlsdGVyIG92ZXJyaWRlc1xyXG4gICAgICBjb25zdCBtZXJnZWRQcm9wcyA9IHtcclxuICAgICAgICAuLi5maWVsZC5wcm9wcyxcclxuICAgICAgICAuLi5maWVsZC5wcm9wc1snZmlsdGVyJ10/LnByb3BzLFxyXG4gICAgICB9O1xyXG5cclxuICAgICAgLy8gUmVtb3ZlIGRpc2FibGVkIGFuZCByZXF1aXJlZCBwcm9wc1xyXG4gICAgICBkZWxldGUgbWVyZ2VkUHJvcHNbJ2Rpc2FibGVkJ107XHJcbiAgICAgIGRlbGV0ZSBtZXJnZWRQcm9wc1sncmVxdWlyZWQnXTtcclxuICAgICAgZGVsZXRlIG1lcmdlZFByb3BzWydsb2FkRGVmYXVsdCddO1xyXG5cclxuICAgICAgcmV0dXJuIFt7XHJcbiAgICAgICAgdHlwZTogZmllbGQudHlwZSxcclxuICAgICAgICBrZXk6IGZpZWxkLmtleSwgLy8gYWx3YXlzIHNldCBrZXkgZm9yIHRhYmxlIHJlbmRlcmluZ1xyXG4gICAgICAgIHByb3BzOiBtZXJnZWRQcm9wcyxcclxuICAgICAgICAvLyBleHByZXNzaW9uczogZmllbGQucHJvcHNbJ2ZpbHRlciddPy5leHByZXNzaW9ucyAvLyB1bmNvbW1lbnQgaWYgbmVlZGVkXHJcbiAgICAgIH1dO1xyXG4gICAgfSk7XHJcbiAgfTtcclxuXHJcbiAgcmV0dXJuIGZsYXR0ZW5Gb3JGaWx0ZXIodGhpcy5mb3JtRmllbGRzKTtcclxufVxyXG5cclxuXHJcbn1cclxuIl19","/**\n * Generated bundle index. Do not edit.\n */\nexport * from './index';\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWxpdGUuZnJhbWV3b3JrLW5nLnVpLmNvcmUtYmFzZS1jcnVkLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGlicy9uZy51aS5jb3JlL2Jhc2UtY3J1ZC9zcmMvZWxpdGUuZnJhbWV3b3JrLW5nLnVpLmNvcmUtYmFzZS1jcnVkLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsY0FBYyxTQUFTLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEdlbmVyYXRlZCBidW5kbGUgaW5kZXguIERvIG5vdCBlZGl0LlxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vaW5kZXgnO1xuIl19"],"names":[],"mappings":"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"}
@@ -30,9 +30,7 @@ class FormlyFieldCheckbox extends FieldType {
30
30
 
31
31
  <div class="flex gap-2 items-center ltr:justify-end rtl:justify-start rtl:flex-row-reverse w-full px-2 py-1" style=" border-radius: var(--p-inputtext-border-radius);">
32
32
  <!-- text-lg -->
33
- <label [for]="id" class="font-bold text-gray-800 ltr:mr-2 rtl:ml-2 whitespace-nowrap">
34
- {{ (to.label ?? '') | translate }}
35
- </label>
33
+
36
34
  <p-checkbox
37
35
  [binary]="true"
38
36
  [formControl]="formControl"
@@ -40,6 +38,9 @@ class FormlyFieldCheckbox extends FieldType {
40
38
  [inputId]="id"
41
39
 
42
40
  />
41
+ <label [for]="id" class="font-bold text-gray-800 ltr:mr-2 rtl:ml-2 whitespace-nowrap">
42
+ {{ (to.label ?? '') | translate }}
43
+ </label>
43
44
  </div>
44
45
  `, isInline: true, dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "ngmodule", type: DatePickerModule }, { kind: "ngmodule", type: FormlyFormFieldModule }, { kind: "directive", type: FormlyAttributes, selector: "[formlyAttributes]", inputs: ["formlyAttributes", "id"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "ngmodule", type: CheckboxModule }, { kind: "component", type: i2.Checkbox, selector: "p-checkbox, p-checkBox, p-check-box", inputs: ["value", "binary", "ariaLabelledBy", "ariaLabel", "tabindex", "inputId", "inputStyle", "styleClass", "inputClass", "indeterminate", "formControl", "checkboxIcon", "readonly", "autofocus", "trueValue", "falseValue", "variant", "size"], outputs: ["onChange", "onFocus", "onBlur"] }, { kind: "pipe", type: i3.TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
45
46
  }
@@ -62,9 +63,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.8", ngImpor
62
63
 
63
64
  <div class="flex gap-2 items-center ltr:justify-end rtl:justify-start rtl:flex-row-reverse w-full px-2 py-1" style=" border-radius: var(--p-inputtext-border-radius);">
64
65
  <!-- text-lg -->
65
- <label [for]="id" class="font-bold text-gray-800 ltr:mr-2 rtl:ml-2 whitespace-nowrap">
66
- {{ (to.label ?? '') | translate }}
67
- </label>
66
+
68
67
  <p-checkbox
69
68
  [binary]="true"
70
69
  [formControl]="formControl"
@@ -72,6 +71,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.8", ngImpor
72
71
  [inputId]="id"
73
72
 
74
73
  />
74
+ <label [for]="id" class="font-bold text-gray-800 ltr:mr-2 rtl:ml-2 whitespace-nowrap">
75
+ {{ (to.label ?? '') | translate }}
76
+ </label>
75
77
  </div>
76
78
  `,
77
79
  changeDetection: ChangeDetectionStrategy.OnPush,
@@ -1 +1 @@
1
- {"version":3,"file":"elite.framework-ng.ui.core-checkbox.mjs","sources":["../tmp-esm2022/checkbox/lib/checkbox.type.js","../tmp-esm2022/checkbox/lib/checkbox.config.js","../tmp-esm2022/checkbox/lib/checkbox.module.js","../tmp-esm2022/checkbox/elite.framework-ng.ui.core-checkbox.js"],"sourcesContent":["import { Component, ChangeDetectionStrategy } from '@angular/core';\nimport { FieldType, FormlyAttributes } from '@ngx-formly/core';\n// import { FormlyFieldProps as CheckboxProps, FormlyFormFieldModule } from '@elite.framework/ng.core/form-field';\nimport { FormlyFormFieldModule } from '@elite.framework/ng.ui.core/form-field';\nimport { CommonModule } from '@angular/common';\nimport { ReactiveFormsModule } from '@angular/forms';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { DatePickerModule } from 'primeng/datepicker';\nimport { CheckboxModule } from 'primeng/checkbox';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@angular/forms\";\nimport * as i2 from \"primeng/checkbox\";\nimport * as i3 from \"@ngx-translate/core\";\nexport class FormlyFieldCheckbox extends FieldType {\n defaultOptions = { props: { hideLabel: true } };\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: FormlyFieldCheckbox, deps: null, target: i0.ɵɵFactoryTarget.Component });\n static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"20.1.8\", type: FormlyFieldCheckbox, isStandalone: true, selector: \"formly-field-primeng-checkbox\", usesInheritance: true, ngImport: i0, template: `\n <!-- <div class=\"p-field-checkbox flex items-center gap-1\">\n\n <p-checkbox\n [binary]=\"true\"\n [formControl]=\"formControl\"\n [formlyAttributes]=\"field\"\n [inputId]=\"id\"\n\n />\n <label [for]=\"id\" class=\"ml-2\">{{ (props['label'] ?? '') | translate}}</label>\n </div> -->\n\n <div class=\"flex gap-2 items-center ltr:justify-end rtl:justify-start rtl:flex-row-reverse w-full px-2 py-1\" style=\" border-radius: var(--p-inputtext-border-radius);\">\n<!-- text-lg -->\n <label [for]=\"id\" class=\"font-bold text-gray-800 ltr:mr-2 rtl:ml-2 whitespace-nowrap\">\n {{ (to.label ?? '') | translate }}\n </label>\n <p-checkbox\n [binary]=\"true\"\n [formControl]=\"formControl\"\n [formlyAttributes]=\"field\"\n [inputId]=\"id\"\n\n />\n</div>\n `, isInline: true, dependencies: [{ kind: \"ngmodule\", type: CommonModule }, { kind: \"ngmodule\", type: ReactiveFormsModule }, { kind: \"directive\", type: i1.NgControlStatus, selector: \"[formControlName],[ngModel],[formControl]\" }, { kind: \"directive\", type: i1.FormControlDirective, selector: \"[formControl]\", inputs: [\"formControl\", \"disabled\", \"ngModel\"], outputs: [\"ngModelChange\"], exportAs: [\"ngForm\"] }, { kind: \"ngmodule\", type: DatePickerModule }, { kind: \"ngmodule\", type: FormlyFormFieldModule }, { kind: \"directive\", type: FormlyAttributes, selector: \"[formlyAttributes]\", inputs: [\"formlyAttributes\", \"id\"] }, { kind: \"ngmodule\", type: TranslateModule }, { kind: \"ngmodule\", type: CheckboxModule }, { kind: \"component\", type: i2.Checkbox, selector: \"p-checkbox, p-checkBox, p-check-box\", inputs: [\"value\", \"binary\", \"ariaLabelledBy\", \"ariaLabel\", \"tabindex\", \"inputId\", \"inputStyle\", \"styleClass\", \"inputClass\", \"indeterminate\", \"formControl\", \"checkboxIcon\", \"readonly\", \"autofocus\", \"trueValue\", \"falseValue\", \"variant\", \"size\"], outputs: [\"onChange\", \"onFocus\", \"onBlur\"] }, { kind: \"pipe\", type: i3.TranslatePipe, name: \"translate\" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: FormlyFieldCheckbox, decorators: [{\n type: Component,\n args: [{\n selector: 'formly-field-primeng-checkbox',\n template: `\n <!-- <div class=\"p-field-checkbox flex items-center gap-1\">\n\n <p-checkbox\n [binary]=\"true\"\n [formControl]=\"formControl\"\n [formlyAttributes]=\"field\"\n [inputId]=\"id\"\n\n />\n <label [for]=\"id\" class=\"ml-2\">{{ (props['label'] ?? '') | translate}}</label>\n </div> -->\n\n <div class=\"flex gap-2 items-center ltr:justify-end rtl:justify-start rtl:flex-row-reverse w-full px-2 py-1\" style=\" border-radius: var(--p-inputtext-border-radius);\">\n<!-- text-lg -->\n <label [for]=\"id\" class=\"font-bold text-gray-800 ltr:mr-2 rtl:ml-2 whitespace-nowrap\">\n {{ (to.label ?? '') | translate }}\n </label>\n <p-checkbox\n [binary]=\"true\"\n [formControl]=\"formControl\"\n [formlyAttributes]=\"field\"\n [inputId]=\"id\"\n\n />\n</div>\n `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true,\n imports: [CommonModule, ReactiveFormsModule, DatePickerModule, FormlyFormFieldModule, FormlyAttributes, TranslateModule, CheckboxModule]\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hlY2tib3gudHlwZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvbmcudWkuY29yZS9jaGVja2JveC9zcmMvbGliL2NoZWNrYm94LnR5cGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSx1QkFBdUIsRUFBUSxNQUFNLGVBQWUsQ0FBQztBQUN6RSxPQUFPLEVBQUUsU0FBUyxFQUFtQixnQkFBZ0IsRUFBcUIsTUFBTSxrQkFBa0IsQ0FBQztBQUNuRyxtSEFBbUg7QUFDbkgsT0FBTyxFQUFvQyxxQkFBcUIsRUFBRyxNQUFNLHdDQUF3QyxDQUFDO0FBQ2xILE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNyRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDdEQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDdEQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGtCQUFrQixDQUFDOzs7OztBQXVDbEQsTUFBTSxPQUFPLG1CQUFvQixTQUFRLFNBQXlDO0lBQ3ZFLGNBQWMsR0FBRyxFQUFFLEtBQUssRUFBRSxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQUUsRUFBRSxDQUFDO3VHQUQ5QyxtQkFBbUI7MkZBQW5CLG1CQUFtQixnSEEvQnBCOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQTBCVCwyREFHUyxZQUFZLDhCQUFDLG1CQUFtQix5VEFBQyxnQkFBZ0IsOEJBQUMscUJBQXFCLCtCQUFDLGdCQUFnQixrR0FBQyxlQUFlLDhCQUFDLGNBQWM7OzJGQUV0SCxtQkFBbUI7a0JBakMvQixTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSwrQkFBK0I7b0JBQ3pDLFFBQVEsRUFBRTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0EwQlQ7b0JBQ0QsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07b0JBQy9DLFVBQVUsRUFBQyxJQUFJO29CQUNmLE9BQU8sRUFBQyxDQUFFLFlBQVksRUFBQyxtQkFBbUIsRUFBQyxnQkFBZ0IsRUFBQyxxQkFBcUIsRUFBQyxnQkFBZ0IsRUFBQyxlQUFlLEVBQUMsY0FBYyxDQUFDO2lCQUNuSSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIFR5cGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZpZWxkVHlwZSwgRmllbGRUeXBlQ29uZmlnLCBGb3JtbHlBdHRyaWJ1dGVzLCBGb3JtbHlGaWVsZENvbmZpZyB9IGZyb20gJ0BuZ3gtZm9ybWx5L2NvcmUnO1xuLy8gaW1wb3J0IHsgRm9ybWx5RmllbGRQcm9wcyBhcyBDaGVja2JveFByb3BzLCBGb3JtbHlGb3JtRmllbGRNb2R1bGUgIH0gZnJvbSAnQGVsaXRlLmZyYW1ld29yay9uZy5jb3JlL2Zvcm0tZmllbGQnO1xuaW1wb3J0IHsgRm9ybWx5RmllbGRQcm9wcyBhcyBDaGVja2JveFByb3BzLEZvcm1seUZvcm1GaWVsZE1vZHVsZSAgfSBmcm9tICdAZWxpdGUuZnJhbWV3b3JrL25nLnVpLmNvcmUvZm9ybS1maWVsZCc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgUmVhY3RpdmVGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IFRyYW5zbGF0ZU1vZHVsZSB9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xuaW1wb3J0IHsgRGF0ZVBpY2tlck1vZHVsZSB9IGZyb20gJ3ByaW1lbmcvZGF0ZXBpY2tlcic7XG5pbXBvcnQgeyBDaGVja2JveE1vZHVsZSB9IGZyb20gJ3ByaW1lbmcvY2hlY2tib3gnO1xuXG5leHBvcnQgaW50ZXJmYWNlIEZvcm1seUNoZWNrYm94RmllbGRDb25maWcgZXh0ZW5kcyBGb3JtbHlGaWVsZENvbmZpZzxDaGVja2JveFByb3BzPiB7XG4gIHR5cGU6ICdjaGVja2JveCcgfCBUeXBlPEZvcm1seUZpZWxkQ2hlY2tib3g+O1xufVxuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdmb3JtbHktZmllbGQtcHJpbWVuZy1jaGVja2JveCcsXG4gIHRlbXBsYXRlOiBgXG4gICAgPCEtLSA8ZGl2IGNsYXNzPVwicC1maWVsZC1jaGVja2JveCBmbGV4IGl0ZW1zLWNlbnRlciBnYXAtMVwiPlxuXG4gICAgIDxwLWNoZWNrYm94XG4gICAgICAgIFtiaW5hcnldPVwidHJ1ZVwiXG4gICAgICAgIFtmb3JtQ29udHJvbF09XCJmb3JtQ29udHJvbFwiXG4gICAgICAgIFtmb3JtbHlBdHRyaWJ1dGVzXT1cImZpZWxkXCJcbiAgICAgICAgW2lucHV0SWRdPVwiaWRcIlxuXG4gICAgICAvPlxuICAgICAgPGxhYmVsIFtmb3JdPVwiaWRcIiBjbGFzcz1cIm1sLTJcIj57eyAocHJvcHNbJ2xhYmVsJ10gPz8gJycpIHwgdHJhbnNsYXRlfX08L2xhYmVsPlxuICAgIDwvZGl2PiAtLT5cblxuICAgIDxkaXYgY2xhc3M9XCJmbGV4IGdhcC0yIGl0ZW1zLWNlbnRlciBsdHI6anVzdGlmeS1lbmQgcnRsOmp1c3RpZnktc3RhcnQgcnRsOmZsZXgtcm93LXJldmVyc2Ugdy1mdWxsIHB4LTIgcHktMVwiIHN0eWxlPVwiICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLXAtaW5wdXR0ZXh0LWJvcmRlci1yYWRpdXMpO1wiPlxuPCEtLSB0ZXh0LWxnIC0tPlxuICAgICA8bGFiZWwgW2Zvcl09XCJpZFwiIGNsYXNzPVwiZm9udC1ib2xkICB0ZXh0LWdyYXktODAwIGx0cjptci0yIHJ0bDptbC0yIHdoaXRlc3BhY2Utbm93cmFwXCI+XG4gICAge3sgKHRvLmxhYmVsID8/ICcnKSB8IHRyYW5zbGF0ZSB9fVxuICA8L2xhYmVsPlxuICA8cC1jaGVja2JveFxuICAgICAgICBbYmluYXJ5XT1cInRydWVcIlxuICAgICAgICBbZm9ybUNvbnRyb2xdPVwiZm9ybUNvbnRyb2xcIlxuICAgICAgICBbZm9ybWx5QXR0cmlidXRlc109XCJmaWVsZFwiXG4gICAgICAgIFtpbnB1dElkXT1cImlkXCJcblxuICAgICAgLz5cbjwvZGl2PlxuICBgLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgc3RhbmRhbG9uZTp0cnVlLFxuICBpbXBvcnRzOlsgQ29tbW9uTW9kdWxlLFJlYWN0aXZlRm9ybXNNb2R1bGUsRGF0ZVBpY2tlck1vZHVsZSxGb3JtbHlGb3JtRmllbGRNb2R1bGUsRm9ybWx5QXR0cmlidXRlcyxUcmFuc2xhdGVNb2R1bGUsQ2hlY2tib3hNb2R1bGVdXG59KVxuZXhwb3J0IGNsYXNzIEZvcm1seUZpZWxkQ2hlY2tib3ggZXh0ZW5kcyBGaWVsZFR5cGU8RmllbGRUeXBlQ29uZmlnPENoZWNrYm94UHJvcHM+PiB7XG4gIG92ZXJyaWRlIGRlZmF1bHRPcHRpb25zID0geyBwcm9wczogeyBoaWRlTGFiZWw6IHRydWUgfSB9O1xufVxuIl19","import { FormlyFieldCheckbox } from './checkbox.type';\nexport function withFormlyFieldCheckbox() {\n return {\n types: [\n {\n name: 'checkbox',\n component: FormlyFieldCheckbox,\n wrappers: ['form-field'],\n },\n {\n name: 'boolean',\n extends: 'checkbox',\n },\n ],\n };\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hlY2tib3guY29uZmlnLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9uZy51aS5jb3JlL2NoZWNrYm94L3NyYy9saWIvY2hlY2tib3guY29uZmlnLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRXRELE1BQU0sVUFBVSx1QkFBdUI7SUFDckMsT0FBTztRQUNMLEtBQUssRUFBRTtZQUNMO2dCQUNFLElBQUksRUFBRSxVQUFVO2dCQUNoQixTQUFTLEVBQUUsbUJBQW1CO2dCQUM5QixRQUFRLEVBQUUsQ0FBQyxZQUFZLENBQUM7YUFDekI7WUFDRDtnQkFDRSxJQUFJLEVBQUUsU0FBUztnQkFDZixPQUFPLEVBQUUsVUFBVTthQUNwQjtTQUNGO0tBQ0YsQ0FBQztBQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb25maWdPcHRpb24gfSBmcm9tICdAbmd4LWZvcm1seS9jb3JlJztcbmltcG9ydCB7IEZvcm1seUZpZWxkQ2hlY2tib3ggfSBmcm9tICcuL2NoZWNrYm94LnR5cGUnO1xuXG5leHBvcnQgZnVuY3Rpb24gd2l0aEZvcm1seUZpZWxkQ2hlY2tib3goKTogQ29uZmlnT3B0aW9uIHtcbiAgcmV0dXJuIHtcbiAgICB0eXBlczogW1xuICAgICAge1xuICAgICAgICBuYW1lOiAnY2hlY2tib3gnLFxuICAgICAgICBjb21wb25lbnQ6IEZvcm1seUZpZWxkQ2hlY2tib3gsXG4gICAgICAgIHdyYXBwZXJzOiBbJ2Zvcm0tZmllbGQnXSxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIG5hbWU6ICdib29sZWFuJyxcbiAgICAgICAgZXh0ZW5kczogJ2NoZWNrYm94JyxcbiAgICAgIH0sXG4gICAgXSxcbiAgfTtcbn1cbiJdfQ==","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormlyModule } from '@ngx-formly/core';\nimport { ReactiveFormsModule } from '@angular/forms';\nimport { CheckboxModule } from 'primeng/checkbox';\nimport { withFormlyFieldCheckbox } from './checkbox.config';\nimport { FormlyFormFieldModule } from '@elite.framework/ng.ui.core/form-field';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@ngx-formly/core\";\nexport class FormlyCheckboxModule {\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: FormlyCheckboxModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });\n static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"14.0.0\", version: \"20.1.8\", ngImport: i0, type: FormlyCheckboxModule, imports: [CommonModule,\n ReactiveFormsModule,\n CheckboxModule,\n FormlyFormFieldModule, i1.FormlyModule] });\n static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: FormlyCheckboxModule, imports: [CommonModule,\n ReactiveFormsModule,\n CheckboxModule,\n FormlyFormFieldModule,\n FormlyModule.forChild(withFormlyFieldCheckbox())] });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: FormlyCheckboxModule, decorators: [{\n type: NgModule,\n args: [{\n // declarations: [FormlyFieldCheckbox],\n imports: [\n CommonModule,\n ReactiveFormsModule,\n CheckboxModule,\n FormlyFormFieldModule,\n FormlyModule.forChild(withFormlyFieldCheckbox()),\n ],\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hlY2tib3gubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9uZy51aS5jb3JlL2NoZWNrYm94L3NyYy9saWIvY2hlY2tib3gubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRyxZQUFZLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUNqRCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNyRCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFHbEQsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDNUQsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sd0NBQXdDLENBQUM7OztBQVkvRSxNQUFNLE9BQU8sb0JBQW9CO3VHQUFwQixvQkFBb0I7d0dBQXBCLG9CQUFvQixZQVA3QixZQUFZO1lBQ1osbUJBQW1CO1lBQ25CLGNBQWM7WUFDZCxxQkFBcUI7d0dBSVosb0JBQW9CLFlBUDdCLFlBQVk7WUFDWixtQkFBbUI7WUFDbkIsY0FBYztZQUNkLHFCQUFxQjtZQUNyQixZQUFZLENBQUMsUUFBUSxDQUFDLHVCQUF1QixFQUFFLENBQUM7OzJGQUd2QyxvQkFBb0I7a0JBVmhDLFFBQVE7bUJBQUM7b0JBQ1IsdUNBQXVDO29CQUN2QyxPQUFPLEVBQUU7d0JBQ1AsWUFBWTt3QkFDWixtQkFBbUI7d0JBQ25CLGNBQWM7d0JBQ2QscUJBQXFCO3dCQUNyQixZQUFZLENBQUMsUUFBUSxDQUFDLHVCQUF1QixFQUFFLENBQUM7cUJBQ2pEO2lCQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyAgRm9ybWx5TW9kdWxlIH0gZnJvbSAnQG5neC1mb3JtbHkvY29yZSc7XG5pbXBvcnQgeyBSZWFjdGl2ZUZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgQ2hlY2tib3hNb2R1bGUgfSBmcm9tICdwcmltZW5nL2NoZWNrYm94JztcblxuaW1wb3J0IHsgRm9ybWx5RmllbGRDaGVja2JveCB9IGZyb20gJy4vY2hlY2tib3gudHlwZSc7XG5pbXBvcnQgeyB3aXRoRm9ybWx5RmllbGRDaGVja2JveCB9IGZyb20gJy4vY2hlY2tib3guY29uZmlnJztcbmltcG9ydCB7IEZvcm1seUZvcm1GaWVsZE1vZHVsZSB9IGZyb20gJ0BlbGl0ZS5mcmFtZXdvcmsvbmcudWkuY29yZS9mb3JtLWZpZWxkJztcblxuQE5nTW9kdWxlKHtcbiAgLy8gZGVjbGFyYXRpb25zOiBbRm9ybWx5RmllbGRDaGVja2JveF0sXG4gIGltcG9ydHM6IFtcbiAgICBDb21tb25Nb2R1bGUsXG4gICAgUmVhY3RpdmVGb3Jtc01vZHVsZSxcbiAgICBDaGVja2JveE1vZHVsZSxcbiAgICBGb3JtbHlGb3JtRmllbGRNb2R1bGUsXG4gICAgRm9ybWx5TW9kdWxlLmZvckNoaWxkKHdpdGhGb3JtbHlGaWVsZENoZWNrYm94KCkpLFxuICBdLFxufSlcbmV4cG9ydCBjbGFzcyBGb3JtbHlDaGVja2JveE1vZHVsZSB7fVxuIl19","/**\n * Generated bundle index. Do not edit.\n */\nexport * from './index';\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWxpdGUuZnJhbWV3b3JrLW5nLnVpLmNvcmUtY2hlY2tib3guanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzL25nLnVpLmNvcmUvY2hlY2tib3gvc3JjL2VsaXRlLmZyYW1ld29yay1uZy51aS5jb3JlLWNoZWNrYm94LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsY0FBYyxTQUFTLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEdlbmVyYXRlZCBidW5kbGUgaW5kZXguIERvIG5vdCBlZGl0LlxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vaW5kZXgnO1xuIl19"],"names":["i1"],"mappings":"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"}
1
+ {"version":3,"file":"elite.framework-ng.ui.core-checkbox.mjs","sources":["../tmp-esm2022/checkbox/lib/checkbox.type.js","../tmp-esm2022/checkbox/lib/checkbox.config.js","../tmp-esm2022/checkbox/lib/checkbox.module.js","../tmp-esm2022/checkbox/elite.framework-ng.ui.core-checkbox.js"],"sourcesContent":["import { Component, ChangeDetectionStrategy } from '@angular/core';\nimport { FieldType, FormlyAttributes } from '@ngx-formly/core';\n// import { FormlyFieldProps as CheckboxProps, FormlyFormFieldModule } from '@elite.framework/ng.core/form-field';\nimport { FormlyFormFieldModule } from '@elite.framework/ng.ui.core/form-field';\nimport { CommonModule } from '@angular/common';\nimport { ReactiveFormsModule } from '@angular/forms';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { DatePickerModule } from 'primeng/datepicker';\nimport { CheckboxModule } from 'primeng/checkbox';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@angular/forms\";\nimport * as i2 from \"primeng/checkbox\";\nimport * as i3 from \"@ngx-translate/core\";\nexport class FormlyFieldCheckbox extends FieldType {\n defaultOptions = { props: { hideLabel: true } };\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: FormlyFieldCheckbox, deps: null, target: i0.ɵɵFactoryTarget.Component });\n static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"20.1.8\", type: FormlyFieldCheckbox, isStandalone: true, selector: \"formly-field-primeng-checkbox\", usesInheritance: true, ngImport: i0, template: `\n <!-- <div class=\"p-field-checkbox flex items-center gap-1\">\n\n <p-checkbox\n [binary]=\"true\"\n [formControl]=\"formControl\"\n [formlyAttributes]=\"field\"\n [inputId]=\"id\"\n\n />\n <label [for]=\"id\" class=\"ml-2\">{{ (props['label'] ?? '') | translate}}</label>\n </div> -->\n\n <div class=\"flex gap-2 items-center ltr:justify-end rtl:justify-start rtl:flex-row-reverse w-full px-2 py-1\" style=\" border-radius: var(--p-inputtext-border-radius);\">\n<!-- text-lg -->\n\n <p-checkbox\n [binary]=\"true\"\n [formControl]=\"formControl\"\n [formlyAttributes]=\"field\"\n [inputId]=\"id\"\n\n />\n <label [for]=\"id\" class=\"font-bold text-gray-800 ltr:mr-2 rtl:ml-2 whitespace-nowrap\">\n {{ (to.label ?? '') | translate }}\n </label>\n</div>\n `, isInline: true, dependencies: [{ kind: \"ngmodule\", type: CommonModule }, { kind: \"ngmodule\", type: ReactiveFormsModule }, { kind: \"directive\", type: i1.NgControlStatus, selector: \"[formControlName],[ngModel],[formControl]\" }, { kind: \"directive\", type: i1.FormControlDirective, selector: \"[formControl]\", inputs: [\"formControl\", \"disabled\", \"ngModel\"], outputs: [\"ngModelChange\"], exportAs: [\"ngForm\"] }, { kind: \"ngmodule\", type: DatePickerModule }, { kind: \"ngmodule\", type: FormlyFormFieldModule }, { kind: \"directive\", type: FormlyAttributes, selector: \"[formlyAttributes]\", inputs: [\"formlyAttributes\", \"id\"] }, { kind: \"ngmodule\", type: TranslateModule }, { kind: \"ngmodule\", type: CheckboxModule }, { kind: \"component\", type: i2.Checkbox, selector: \"p-checkbox, p-checkBox, p-check-box\", inputs: [\"value\", \"binary\", \"ariaLabelledBy\", \"ariaLabel\", \"tabindex\", \"inputId\", \"inputStyle\", \"styleClass\", \"inputClass\", \"indeterminate\", \"formControl\", \"checkboxIcon\", \"readonly\", \"autofocus\", \"trueValue\", \"falseValue\", \"variant\", \"size\"], outputs: [\"onChange\", \"onFocus\", \"onBlur\"] }, { kind: \"pipe\", type: i3.TranslatePipe, name: \"translate\" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: FormlyFieldCheckbox, decorators: [{\n type: Component,\n args: [{\n selector: 'formly-field-primeng-checkbox',\n template: `\n <!-- <div class=\"p-field-checkbox flex items-center gap-1\">\n\n <p-checkbox\n [binary]=\"true\"\n [formControl]=\"formControl\"\n [formlyAttributes]=\"field\"\n [inputId]=\"id\"\n\n />\n <label [for]=\"id\" class=\"ml-2\">{{ (props['label'] ?? '') | translate}}</label>\n </div> -->\n\n <div class=\"flex gap-2 items-center ltr:justify-end rtl:justify-start rtl:flex-row-reverse w-full px-2 py-1\" style=\" border-radius: var(--p-inputtext-border-radius);\">\n<!-- text-lg -->\n\n <p-checkbox\n [binary]=\"true\"\n [formControl]=\"formControl\"\n [formlyAttributes]=\"field\"\n [inputId]=\"id\"\n\n />\n <label [for]=\"id\" class=\"font-bold text-gray-800 ltr:mr-2 rtl:ml-2 whitespace-nowrap\">\n {{ (to.label ?? '') | translate }}\n </label>\n</div>\n `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true,\n imports: [CommonModule, ReactiveFormsModule, DatePickerModule, FormlyFormFieldModule, FormlyAttributes, TranslateModule, CheckboxModule]\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hlY2tib3gudHlwZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvbmcudWkuY29yZS9jaGVja2JveC9zcmMvbGliL2NoZWNrYm94LnR5cGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSx1QkFBdUIsRUFBUSxNQUFNLGVBQWUsQ0FBQztBQUN6RSxPQUFPLEVBQUUsU0FBUyxFQUFtQixnQkFBZ0IsRUFBcUIsTUFBTSxrQkFBa0IsQ0FBQztBQUNuRyxtSEFBbUg7QUFDbkgsT0FBTyxFQUFvQyxxQkFBcUIsRUFBRyxNQUFNLHdDQUF3QyxDQUFDO0FBQ2xILE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNyRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDdEQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDdEQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGtCQUFrQixDQUFDOzs7OztBQXdDbEQsTUFBTSxPQUFPLG1CQUFvQixTQUFRLFNBQXlDO0lBQ3ZFLGNBQWMsR0FBRyxFQUFFLEtBQUssRUFBRSxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQUUsRUFBRSxDQUFDO3VHQUQ5QyxtQkFBbUI7MkZBQW5CLG1CQUFtQixnSEFoQ3BCOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0EyQlQsMkRBR1MsWUFBWSw4QkFBQyxtQkFBbUIseVRBQUMsZ0JBQWdCLDhCQUFDLHFCQUFxQiwrQkFBQyxnQkFBZ0Isa0dBQUMsZUFBZSw4QkFBQyxjQUFjOzsyRkFFdEgsbUJBQW1CO2tCQWxDL0IsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsK0JBQStCO29CQUN6QyxRQUFRLEVBQUU7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQTJCVDtvQkFDRCxlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTtvQkFDL0MsVUFBVSxFQUFDLElBQUk7b0JBQ2YsT0FBTyxFQUFDLENBQUUsWUFBWSxFQUFDLG1CQUFtQixFQUFDLGdCQUFnQixFQUFDLHFCQUFxQixFQUFDLGdCQUFnQixFQUFDLGVBQWUsRUFBQyxjQUFjLENBQUM7aUJBQ25JIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgVHlwZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRmllbGRUeXBlLCBGaWVsZFR5cGVDb25maWcsIEZvcm1seUF0dHJpYnV0ZXMsIEZvcm1seUZpZWxkQ29uZmlnIH0gZnJvbSAnQG5neC1mb3JtbHkvY29yZSc7XG4vLyBpbXBvcnQgeyBGb3JtbHlGaWVsZFByb3BzIGFzIENoZWNrYm94UHJvcHMsIEZvcm1seUZvcm1GaWVsZE1vZHVsZSAgfSBmcm9tICdAZWxpdGUuZnJhbWV3b3JrL25nLmNvcmUvZm9ybS1maWVsZCc7XG5pbXBvcnQgeyBGb3JtbHlGaWVsZFByb3BzIGFzIENoZWNrYm94UHJvcHMsRm9ybWx5Rm9ybUZpZWxkTW9kdWxlICB9IGZyb20gJ0BlbGl0ZS5mcmFtZXdvcmsvbmcudWkuY29yZS9mb3JtLWZpZWxkJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBSZWFjdGl2ZUZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgVHJhbnNsYXRlTW9kdWxlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XG5pbXBvcnQgeyBEYXRlUGlja2VyTW9kdWxlIH0gZnJvbSAncHJpbWVuZy9kYXRlcGlja2VyJztcbmltcG9ydCB7IENoZWNrYm94TW9kdWxlIH0gZnJvbSAncHJpbWVuZy9jaGVja2JveCc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgRm9ybWx5Q2hlY2tib3hGaWVsZENvbmZpZyBleHRlbmRzIEZvcm1seUZpZWxkQ29uZmlnPENoZWNrYm94UHJvcHM+IHtcbiAgdHlwZTogJ2NoZWNrYm94JyB8IFR5cGU8Rm9ybWx5RmllbGRDaGVja2JveD47XG59XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2Zvcm1seS1maWVsZC1wcmltZW5nLWNoZWNrYm94JyxcbiAgdGVtcGxhdGU6IGBcbiAgICA8IS0tIDxkaXYgY2xhc3M9XCJwLWZpZWxkLWNoZWNrYm94IGZsZXggaXRlbXMtY2VudGVyIGdhcC0xXCI+XG5cbiAgICAgPHAtY2hlY2tib3hcbiAgICAgICAgW2JpbmFyeV09XCJ0cnVlXCJcbiAgICAgICAgW2Zvcm1Db250cm9sXT1cImZvcm1Db250cm9sXCJcbiAgICAgICAgW2Zvcm1seUF0dHJpYnV0ZXNdPVwiZmllbGRcIlxuICAgICAgICBbaW5wdXRJZF09XCJpZFwiXG5cbiAgICAgIC8+XG4gICAgICA8bGFiZWwgW2Zvcl09XCJpZFwiIGNsYXNzPVwibWwtMlwiPnt7IChwcm9wc1snbGFiZWwnXSA/PyAnJykgfCB0cmFuc2xhdGV9fTwvbGFiZWw+XG4gICAgPC9kaXY+IC0tPlxuXG4gICAgPGRpdiBjbGFzcz1cImZsZXggZ2FwLTIgaXRlbXMtY2VudGVyIGx0cjpqdXN0aWZ5LWVuZCBydGw6anVzdGlmeS1zdGFydCBydGw6ZmxleC1yb3ctcmV2ZXJzZSB3LWZ1bGwgcHgtMiBweS0xXCIgc3R5bGU9XCIgICAgYm9yZGVyLXJhZGl1czogdmFyKC0tcC1pbnB1dHRleHQtYm9yZGVyLXJhZGl1cyk7XCI+XG48IS0tIHRleHQtbGcgLS0+XG5cbiAgPHAtY2hlY2tib3hcbiAgICAgICAgW2JpbmFyeV09XCJ0cnVlXCJcbiAgICAgICAgW2Zvcm1Db250cm9sXT1cImZvcm1Db250cm9sXCJcbiAgICAgICAgW2Zvcm1seUF0dHJpYnV0ZXNdPVwiZmllbGRcIlxuICAgICAgICBbaW5wdXRJZF09XCJpZFwiXG5cbiAgICAgIC8+XG4gICAgICAgPGxhYmVsIFtmb3JdPVwiaWRcIiBjbGFzcz1cImZvbnQtYm9sZCAgdGV4dC1ncmF5LTgwMCBsdHI6bXItMiBydGw6bWwtMiB3aGl0ZXNwYWNlLW5vd3JhcFwiPlxuICAgIHt7ICh0by5sYWJlbCA/PyAnJykgfCB0cmFuc2xhdGUgfX1cbiAgPC9sYWJlbD5cbjwvZGl2PlxuICBgLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgc3RhbmRhbG9uZTp0cnVlLFxuICBpbXBvcnRzOlsgQ29tbW9uTW9kdWxlLFJlYWN0aXZlRm9ybXNNb2R1bGUsRGF0ZVBpY2tlck1vZHVsZSxGb3JtbHlGb3JtRmllbGRNb2R1bGUsRm9ybWx5QXR0cmlidXRlcyxUcmFuc2xhdGVNb2R1bGUsQ2hlY2tib3hNb2R1bGVdXG59KVxuZXhwb3J0IGNsYXNzIEZvcm1seUZpZWxkQ2hlY2tib3ggZXh0ZW5kcyBGaWVsZFR5cGU8RmllbGRUeXBlQ29uZmlnPENoZWNrYm94UHJvcHM+PiB7XG4gIG92ZXJyaWRlIGRlZmF1bHRPcHRpb25zID0geyBwcm9wczogeyBoaWRlTGFiZWw6IHRydWUgfSB9O1xufVxuIl19","import { FormlyFieldCheckbox } from './checkbox.type';\nexport function withFormlyFieldCheckbox() {\n return {\n types: [\n {\n name: 'checkbox',\n component: FormlyFieldCheckbox,\n wrappers: ['form-field'],\n },\n {\n name: 'boolean',\n extends: 'checkbox',\n },\n ],\n };\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hlY2tib3guY29uZmlnLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9uZy51aS5jb3JlL2NoZWNrYm94L3NyYy9saWIvY2hlY2tib3guY29uZmlnLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRXRELE1BQU0sVUFBVSx1QkFBdUI7SUFDckMsT0FBTztRQUNMLEtBQUssRUFBRTtZQUNMO2dCQUNFLElBQUksRUFBRSxVQUFVO2dCQUNoQixTQUFTLEVBQUUsbUJBQW1CO2dCQUM5QixRQUFRLEVBQUUsQ0FBQyxZQUFZLENBQUM7YUFDekI7WUFDRDtnQkFDRSxJQUFJLEVBQUUsU0FBUztnQkFDZixPQUFPLEVBQUUsVUFBVTthQUNwQjtTQUNGO0tBQ0YsQ0FBQztBQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb25maWdPcHRpb24gfSBmcm9tICdAbmd4LWZvcm1seS9jb3JlJztcbmltcG9ydCB7IEZvcm1seUZpZWxkQ2hlY2tib3ggfSBmcm9tICcuL2NoZWNrYm94LnR5cGUnO1xuXG5leHBvcnQgZnVuY3Rpb24gd2l0aEZvcm1seUZpZWxkQ2hlY2tib3goKTogQ29uZmlnT3B0aW9uIHtcbiAgcmV0dXJuIHtcbiAgICB0eXBlczogW1xuICAgICAge1xuICAgICAgICBuYW1lOiAnY2hlY2tib3gnLFxuICAgICAgICBjb21wb25lbnQ6IEZvcm1seUZpZWxkQ2hlY2tib3gsXG4gICAgICAgIHdyYXBwZXJzOiBbJ2Zvcm0tZmllbGQnXSxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIG5hbWU6ICdib29sZWFuJyxcbiAgICAgICAgZXh0ZW5kczogJ2NoZWNrYm94JyxcbiAgICAgIH0sXG4gICAgXSxcbiAgfTtcbn1cbiJdfQ==","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormlyModule } from '@ngx-formly/core';\nimport { ReactiveFormsModule } from '@angular/forms';\nimport { CheckboxModule } from 'primeng/checkbox';\nimport { withFormlyFieldCheckbox } from './checkbox.config';\nimport { FormlyFormFieldModule } from '@elite.framework/ng.ui.core/form-field';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@ngx-formly/core\";\nexport class FormlyCheckboxModule {\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: FormlyCheckboxModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });\n static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"14.0.0\", version: \"20.1.8\", ngImport: i0, type: FormlyCheckboxModule, imports: [CommonModule,\n ReactiveFormsModule,\n CheckboxModule,\n FormlyFormFieldModule, i1.FormlyModule] });\n static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: FormlyCheckboxModule, imports: [CommonModule,\n ReactiveFormsModule,\n CheckboxModule,\n FormlyFormFieldModule,\n FormlyModule.forChild(withFormlyFieldCheckbox())] });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: FormlyCheckboxModule, decorators: [{\n type: NgModule,\n args: [{\n // declarations: [FormlyFieldCheckbox],\n imports: [\n CommonModule,\n ReactiveFormsModule,\n CheckboxModule,\n FormlyFormFieldModule,\n FormlyModule.forChild(withFormlyFieldCheckbox()),\n ],\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hlY2tib3gubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9uZy51aS5jb3JlL2NoZWNrYm94L3NyYy9saWIvY2hlY2tib3gubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRyxZQUFZLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUNqRCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNyRCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFHbEQsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDNUQsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sd0NBQXdDLENBQUM7OztBQVkvRSxNQUFNLE9BQU8sb0JBQW9CO3VHQUFwQixvQkFBb0I7d0dBQXBCLG9CQUFvQixZQVA3QixZQUFZO1lBQ1osbUJBQW1CO1lBQ25CLGNBQWM7WUFDZCxxQkFBcUI7d0dBSVosb0JBQW9CLFlBUDdCLFlBQVk7WUFDWixtQkFBbUI7WUFDbkIsY0FBYztZQUNkLHFCQUFxQjtZQUNyQixZQUFZLENBQUMsUUFBUSxDQUFDLHVCQUF1QixFQUFFLENBQUM7OzJGQUd2QyxvQkFBb0I7a0JBVmhDLFFBQVE7bUJBQUM7b0JBQ1IsdUNBQXVDO29CQUN2QyxPQUFPLEVBQUU7d0JBQ1AsWUFBWTt3QkFDWixtQkFBbUI7d0JBQ25CLGNBQWM7d0JBQ2QscUJBQXFCO3dCQUNyQixZQUFZLENBQUMsUUFBUSxDQUFDLHVCQUF1QixFQUFFLENBQUM7cUJBQ2pEO2lCQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyAgRm9ybWx5TW9kdWxlIH0gZnJvbSAnQG5neC1mb3JtbHkvY29yZSc7XG5pbXBvcnQgeyBSZWFjdGl2ZUZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgQ2hlY2tib3hNb2R1bGUgfSBmcm9tICdwcmltZW5nL2NoZWNrYm94JztcblxuaW1wb3J0IHsgRm9ybWx5RmllbGRDaGVja2JveCB9IGZyb20gJy4vY2hlY2tib3gudHlwZSc7XG5pbXBvcnQgeyB3aXRoRm9ybWx5RmllbGRDaGVja2JveCB9IGZyb20gJy4vY2hlY2tib3guY29uZmlnJztcbmltcG9ydCB7IEZvcm1seUZvcm1GaWVsZE1vZHVsZSB9IGZyb20gJ0BlbGl0ZS5mcmFtZXdvcmsvbmcudWkuY29yZS9mb3JtLWZpZWxkJztcblxuQE5nTW9kdWxlKHtcbiAgLy8gZGVjbGFyYXRpb25zOiBbRm9ybWx5RmllbGRDaGVja2JveF0sXG4gIGltcG9ydHM6IFtcbiAgICBDb21tb25Nb2R1bGUsXG4gICAgUmVhY3RpdmVGb3Jtc01vZHVsZSxcbiAgICBDaGVja2JveE1vZHVsZSxcbiAgICBGb3JtbHlGb3JtRmllbGRNb2R1bGUsXG4gICAgRm9ybWx5TW9kdWxlLmZvckNoaWxkKHdpdGhGb3JtbHlGaWVsZENoZWNrYm94KCkpLFxuICBdLFxufSlcbmV4cG9ydCBjbGFzcyBGb3JtbHlDaGVja2JveE1vZHVsZSB7fVxuIl19","/**\n * Generated bundle index. Do not edit.\n */\nexport * from './index';\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWxpdGUuZnJhbWV3b3JrLW5nLnVpLmNvcmUtY2hlY2tib3guanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzL25nLnVpLmNvcmUvY2hlY2tib3gvc3JjL2VsaXRlLmZyYW1ld29yay1uZy51aS5jb3JlLWNoZWNrYm94LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsY0FBYyxTQUFTLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEdlbmVyYXRlZCBidW5kbGUgaW5kZXguIERvIG5vdCBlZGl0LlxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vaW5kZXgnO1xuIl19"],"names":["i1"],"mappings":"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"}
@@ -66,9 +66,9 @@ class DeactivationReasonFormComponent {
66
66
  },
67
67
  error: (err) => {
68
68
  this.loading = false;
69
- this.errorMessage = err.error?.message ||
70
- err.message ||
71
- 'حدث خطأ أثناء الحفظ. يرجى المحاولة مرة أخرى.';
69
+ // this.errorMessage = err.error?.message ||
70
+ // err.message ||
71
+ // 'حدث خطأ أثناء الحفظ. يرجى المحاولة مرة أخرى.';
72
72
  }
73
73
  });
74
74
  }
@@ -1 +1 @@
1
- {"version":3,"file":"elite.framework-ng.ui.core-deactivation-reason.mjs","sources":["../tmp-esm2022/deactivation-reason/lib/deactivation-reason-module.js","../tmp-esm2022/deactivation-reason/lib/deactivation-reason.js","../tmp-esm2022/deactivation-reason/elite.framework-ng.ui.core-deactivation-reason.js"],"sourcesContent":["import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport * as i0 from \"@angular/core\";\nexport class DeactivationReasonModule {\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: DeactivationReasonModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });\n static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"14.0.0\", version: \"20.1.8\", ngImport: i0, type: DeactivationReasonModule, imports: [CommonModule] });\n static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: DeactivationReasonModule, imports: [CommonModule] });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: DeactivationReasonModule, decorators: [{\n type: NgModule,\n args: [{\n imports: [CommonModule],\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVhY3RpdmF0aW9uLXJlYXNvbi1tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL25nLnVpLmNvcmUvZGVhY3RpdmF0aW9uLXJlYXNvbi9zcmMvbGliL2RlYWN0aXZhdGlvbi1yZWFzb24tbW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDOztBQUsvQyxNQUFNLE9BQU8sd0JBQXdCO3VHQUF4Qix3QkFBd0I7d0dBQXhCLHdCQUF3QixZQUZ6QixZQUFZO3dHQUVYLHdCQUF3QixZQUZ6QixZQUFZOzsyRkFFWCx3QkFBd0I7a0JBSHBDLFFBQVE7bUJBQUM7b0JBQ1IsT0FBTyxFQUFFLENBQUMsWUFBWSxDQUFDO2lCQUN4QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuXG5ATmdNb2R1bGUoe1xuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlXSxcbn0pXG5leHBvcnQgY2xhc3MgRGVhY3RpdmF0aW9uUmVhc29uTW9kdWxlIHt9XG4iXX0=","import { CommonModule } from '@angular/common';\nimport { Component } from '@angular/core';\nimport { FormGroup, FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { FormlyForm } from '@ngx-formly/core';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { ButtonModule } from 'primeng/button';\nimport { DynamicDialogConfig, DynamicDialogRef } from 'primeng/dynamicdialog';\nimport { Subject, takeUntil } from 'rxjs';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"primeng/dynamicdialog\";\nimport * as i2 from \"@angular/forms\";\nimport * as i3 from \"primeng/button\";\nimport * as i4 from \"@ngx-translate/core\";\nexport class DeactivationReasonFormComponent {\n ref;\n config;\n form = new FormGroup({});\n model = {};\n fields;\n loading = false;\n errorMessage = null;\n destroy$ = new Subject();\n idField;\n constructor(ref, config) {\n this.ref = ref;\n this.config = config;\n this.model = config.data?.model || {};\n this.idField = this.config.data.idField;\n this.fields = [\n {\n key: 'deactivationReason',\n type: 'textarea',\n props: {\n label: 'DeactivationReason',\n placeholder: 'DeactivationReason',\n rows: 5,\n required: true,\n },\n },\n ];\n }\n onSubmit() {\n if (this.form.invalid)\n return;\n // this.loading = true;\n // this.errorMessage = null;\n const service = this.config.data.service;\n const id = this.model[this.idField];\n this.model.isActive = false;\n const operation$ = service.update(id, this.model);\n operation$.pipe(takeUntil(this.destroy$)).subscribe({\n next: () => {\n this.ref.close(this.model); // نجاح العملية\n },\n error: (err) => {\n this.loading = false;\n this.errorMessage = err.error?.message ||\n err.message ||\n 'حدث خطأ أثناء الحفظ. يرجى المحاولة مرة أخرى.';\n }\n });\n }\n ngOnDestroy() {\n this.destroy$.next();\n this.destroy$.complete();\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: DeactivationReasonFormComponent, deps: [{ token: i1.DynamicDialogRef }, { token: i1.DynamicDialogConfig }], target: i0.ɵɵFactoryTarget.Component });\n static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"20.1.8\", type: DeactivationReasonFormComponent, isStandalone: true, selector: \"app-deactivation-reason-form\", ngImport: i0, template: `\n <form [formGroup]=\"form\" (ngSubmit)=\"onSubmit()\" class=\"p-4 space-y-4\">\n <formly-form [form]=\"form\" [fields]=\"fields\" [model]=\"model\"></formly-form>\n\n\n <div class=\"bottom-0 left-0 right-0 bg-gray-200 border-t border-gray-400 px-4 py-3 flex justify-end gap-2\">\n\n <p-button\n [label]=\"( 'SAVE') | translate\"\n size=\"small\"\n [disabled]=\"form.invalid\"\n [type]=\"'submit'\">\n </p-button>\n\n <p-button\n [label]=\"'CANCEL' | translate \"\n severity=\"danger\"\n size=\"small\"\n (onClick)=\"ref.close(false)\">\n </p-button>\n\n </div>\n </form>\n `, isInline: true, dependencies: [{ kind: \"component\", type: FormlyForm, selector: \"formly-form\", inputs: [\"form\", \"model\", \"fields\", \"options\"], outputs: [\"modelChange\"] }, { kind: \"ngmodule\", type: CommonModule }, { kind: \"ngmodule\", type: ReactiveFormsModule }, { kind: \"directive\", type: i2.ɵNgNoValidate, selector: \"form:not([ngNoForm]):not([ngNativeValidate])\" }, { kind: \"directive\", type: i2.NgControlStatusGroup, selector: \"[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]\" }, { kind: \"directive\", type: i2.FormGroupDirective, selector: \"[formGroup]\", inputs: [\"formGroup\"], outputs: [\"ngSubmit\"], exportAs: [\"ngForm\"] }, { kind: \"ngmodule\", type: FormsModule }, { kind: \"ngmodule\", type: TranslateModule }, { kind: \"ngmodule\", type: ButtonModule }, { kind: \"component\", type: i3.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: \"pipe\", type: i4.TranslatePipe, name: \"translate\" }] });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: DeactivationReasonFormComponent, decorators: [{\n type: Component,\n args: [{\n selector: 'app-deactivation-reason-form',\n template: `\n <form [formGroup]=\"form\" (ngSubmit)=\"onSubmit()\" class=\"p-4 space-y-4\">\n <formly-form [form]=\"form\" [fields]=\"fields\" [model]=\"model\"></formly-form>\n\n\n <div class=\"bottom-0 left-0 right-0 bg-gray-200 border-t border-gray-400 px-4 py-3 flex justify-end gap-2\">\n\n <p-button\n [label]=\"( 'SAVE') | translate\"\n size=\"small\"\n [disabled]=\"form.invalid\"\n [type]=\"'submit'\">\n </p-button>\n\n <p-button\n [label]=\"'CANCEL' | translate \"\n severity=\"danger\"\n size=\"small\"\n (onClick)=\"ref.close(false)\">\n </p-button>\n\n </div>\n </form>\n `,\n imports: [FormlyForm, CommonModule, ReactiveFormsModule, FormsModule, TranslateModule, ButtonModule]\n }]\n }], ctorParameters: () => [{ type: i1.DynamicDialogRef }, { type: i1.DynamicDialogConfig }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVhY3RpdmF0aW9uLXJlYXNvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvbmcudWkuY29yZS9kZWFjdGl2YXRpb24tcmVhc29uL3NyYy9saWIvZGVhY3RpdmF0aW9uLXJlYXNvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFNBQVMsRUFBcUIsTUFBTSxlQUFlLENBQUM7QUFDN0QsT0FBTyxFQUFFLFNBQVMsRUFBRSxXQUFXLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM3RSxPQUFPLEVBQXFCLFVBQVUsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ2pFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN0RCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDOUMsT0FBTyxFQUFFLG1CQUFtQixFQUFFLGdCQUFnQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDOUUsT0FBTyxFQUFjLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxNQUFNLENBQUM7Ozs7OztBQThCdEQsTUFBTSxPQUFPLCtCQUErQjtJQVNqQztJQUNBO0lBVFQsSUFBSSxHQUFHLElBQUksU0FBUyxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQ3pCLEtBQUssR0FBUSxFQUFFLENBQUM7SUFDaEIsTUFBTSxDQUFzQjtJQUM1QixPQUFPLEdBQUcsS0FBSyxDQUFDO0lBQ2hCLFlBQVksR0FBa0IsSUFBSSxDQUFDO0lBQzFCLFFBQVEsR0FBRyxJQUFJLE9BQU8sRUFBUSxDQUFDO0lBQ2hDLE9BQU8sQ0FBWTtJQUMzQixZQUNTLEdBQXFCLEVBQ3JCLE1BQTJCO1FBRDNCLFFBQUcsR0FBSCxHQUFHLENBQWtCO1FBQ3JCLFdBQU0sR0FBTixNQUFNLENBQXFCO1FBRWxDLElBQUksQ0FBQyxLQUFLLEdBQUcsTUFBTSxDQUFDLElBQUksRUFBRSxLQUFLLElBQUksRUFBRSxDQUFDO1FBQ3RDLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDO1FBQ3hDLElBQUksQ0FBQyxNQUFNLEdBQUc7WUFDWjtnQkFDRSxHQUFHLEVBQUUsb0JBQW9CO2dCQUN6QixJQUFJLEVBQUUsVUFBVTtnQkFDaEIsS0FBSyxFQUFFO29CQUNMLEtBQUssRUFBRSxvQkFBb0I7b0JBQzNCLFdBQVcsRUFBRSxvQkFBb0I7b0JBQ2pDLElBQUksRUFBRSxDQUFDO29CQUNQLFFBQVEsRUFBRSxJQUFJO2lCQUNmO2FBQ0Y7U0FDRixDQUFDO0lBQ0osQ0FBQztJQUdELFFBQVE7UUFDSixJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTztZQUFFLE9BQU87UUFFOUIsdUJBQXVCO1FBQ3ZCLDRCQUE0QjtRQUU1QixNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUM7UUFDekMsTUFBTSxFQUFFLEdBQUssSUFBSSxDQUFDLEtBQWEsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUU7UUFDL0MsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLEdBQUcsS0FBSyxDQUFDO1FBQzVCLE1BQU0sVUFBVSxHQUFxQixPQUFPLENBQUMsTUFBTSxDQUFDLEVBQUUsRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFFcEUsVUFBVSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDO1lBQ2xELElBQUksRUFBRSxHQUFHLEVBQUU7Z0JBQ1QsSUFBSSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsZUFBZTtZQUM3QyxDQUFDO1lBQ0QsS0FBSyxFQUFFLENBQUMsR0FBRyxFQUFFLEVBQUU7Z0JBQ2IsSUFBSSxDQUFDLE9BQU8sR0FBRyxLQUFLLENBQUM7Z0JBQ3JCLElBQUksQ0FBQyxZQUFZLEdBQUcsR0FBRyxDQUFDLEtBQUssRUFBRSxPQUFPO29CQUNuQixHQUFHLENBQUMsT0FBTztvQkFDWCw4Q0FBOEMsQ0FBQztZQUNwRSxDQUFDO1NBQ0YsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUNELFdBQVc7UUFDWCxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxDQUFDO1FBQ3JCLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDM0IsQ0FBQzt1R0F2RFUsK0JBQStCOzJGQUEvQiwrQkFBK0Isd0ZBMUJoQzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0F1QlQsNERBQ1EsVUFBVSxpSUFBQyxZQUFZLDhCQUFDLG1CQUFtQixvYkFBQyxXQUFXLDhCQUFDLGVBQWUsOEJBQUMsWUFBWTs7MkZBRWxGLCtCQUErQjtrQkE1QjNDLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLDhCQUE4QjtvQkFDeEMsUUFBUSxFQUFFOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQXVCVDtvQkFDRCxPQUFPLEVBQUMsQ0FBQyxVQUFVLEVBQUMsWUFBWSxFQUFDLG1CQUFtQixFQUFDLFdBQVcsRUFBQyxlQUFlLEVBQUMsWUFBWSxDQUFDO2lCQUMvRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBDb21wb25lbnQsIEluamVjdCwgT25EZXN0cm95IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3JtR3JvdXAsIEZvcm1zTW9kdWxlLCBSZWFjdGl2ZUZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgRm9ybWx5RmllbGRDb25maWcsIEZvcm1seUZvcm0gfSBmcm9tICdAbmd4LWZvcm1seS9jb3JlJztcbmltcG9ydCB7IFRyYW5zbGF0ZU1vZHVsZSB9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xuaW1wb3J0IHsgQnV0dG9uTW9kdWxlIH0gZnJvbSAncHJpbWVuZy9idXR0b24nO1xuaW1wb3J0IHsgRHluYW1pY0RpYWxvZ0NvbmZpZywgRHluYW1pY0RpYWxvZ1JlZiB9IGZyb20gJ3ByaW1lbmcvZHluYW1pY2RpYWxvZyc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBTdWJqZWN0LCB0YWtlVW50aWwgfSBmcm9tICdyeGpzJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYXBwLWRlYWN0aXZhdGlvbi1yZWFzb24tZm9ybScsXG4gIHRlbXBsYXRlOiBgXG4gICAgPGZvcm0gW2Zvcm1Hcm91cF09XCJmb3JtXCIgKG5nU3VibWl0KT1cIm9uU3VibWl0KClcIiBjbGFzcz1cInAtNCBzcGFjZS15LTRcIj5cbiAgICAgIDxmb3JtbHktZm9ybSBbZm9ybV09XCJmb3JtXCIgW2ZpZWxkc109XCJmaWVsZHNcIiBbbW9kZWxdPVwibW9kZWxcIj48L2Zvcm1seS1mb3JtPlxuXG5cbiAgICAgIDxkaXYgY2xhc3M9XCJib3R0b20tMCBsZWZ0LTAgcmlnaHQtMCBiZy1ncmF5LTIwMCBib3JkZXItdCBib3JkZXItZ3JheS00MDAgcHgtNCBweS0zIGZsZXgganVzdGlmeS1lbmQgZ2FwLTJcIj5cblxuICAgIDxwLWJ1dHRvblxuICAgICAgW2xhYmVsXT1cIiggJ1NBVkUnKSB8IHRyYW5zbGF0ZVwiXG4gICAgICBzaXplPVwic21hbGxcIlxuICAgICAgIFtkaXNhYmxlZF09XCJmb3JtLmludmFsaWRcIlxuICAgICAgW3R5cGVdPVwiJ3N1Ym1pdCdcIj5cbiAgICA8L3AtYnV0dG9uPlxuXG4gICAgPHAtYnV0dG9uXG4gICAgICBbbGFiZWxdPVwiJ0NBTkNFTCcgfCB0cmFuc2xhdGUgXCJcbiAgICAgIHNldmVyaXR5PVwiZGFuZ2VyXCJcbiAgICAgIHNpemU9XCJzbWFsbFwiXG4gICAgICAob25DbGljayk9XCJyZWYuY2xvc2UoZmFsc2UpXCI+XG4gICAgPC9wLWJ1dHRvbj5cblxuICA8L2Rpdj5cbiAgICA8L2Zvcm0+XG4gIGAsXG4gIGltcG9ydHM6W0Zvcm1seUZvcm0sQ29tbW9uTW9kdWxlLFJlYWN0aXZlRm9ybXNNb2R1bGUsRm9ybXNNb2R1bGUsVHJhbnNsYXRlTW9kdWxlLEJ1dHRvbk1vZHVsZV1cbn0pXG5leHBvcnQgY2xhc3MgRGVhY3RpdmF0aW9uUmVhc29uRm9ybUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uRGVzdHJveSB7XG4gIGZvcm0gPSBuZXcgRm9ybUdyb3VwKHt9KTtcbiAgbW9kZWw6IGFueSA9IHt9O1xuICBmaWVsZHM6IEZvcm1seUZpZWxkQ29uZmlnW107XG4gIGxvYWRpbmcgPSBmYWxzZTtcbiAgZXJyb3JNZXNzYWdlOiBzdHJpbmcgfCBudWxsID0gbnVsbDtcbiAgIHByaXZhdGUgZGVzdHJveSQgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuICBwcml2YXRlIGlkRmllbGQ6IGtleW9mIGFueTtcbiAgY29uc3RydWN0b3IoXG4gICAgcHVibGljIHJlZjogRHluYW1pY0RpYWxvZ1JlZixcbiAgICBwdWJsaWMgY29uZmlnOiBEeW5hbWljRGlhbG9nQ29uZmlnXG4gICkge1xuICAgIHRoaXMubW9kZWwgPSBjb25maWcuZGF0YT8ubW9kZWwgfHwge307XG4gICAgdGhpcy5pZEZpZWxkID0gdGhpcy5jb25maWcuZGF0YS5pZEZpZWxkO1xuICAgIHRoaXMuZmllbGRzID0gW1xuICAgICAge1xuICAgICAgICBrZXk6ICdkZWFjdGl2YXRpb25SZWFzb24nLFxuICAgICAgICB0eXBlOiAndGV4dGFyZWEnLFxuICAgICAgICBwcm9wczoge1xuICAgICAgICAgIGxhYmVsOiAnRGVhY3RpdmF0aW9uUmVhc29uJyxcbiAgICAgICAgICBwbGFjZWhvbGRlcjogJ0RlYWN0aXZhdGlvblJlYXNvbicsXG4gICAgICAgICAgcm93czogNSxcbiAgICAgICAgICByZXF1aXJlZDogdHJ1ZSxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgXTtcbiAgfVxuXG5cbiAgb25TdWJtaXQoKSB7XG4gICAgICBpZiAodGhpcy5mb3JtLmludmFsaWQpIHJldHVybjtcblxuICAgICAgLy8gdGhpcy5sb2FkaW5nID0gdHJ1ZTtcbiAgICAgIC8vIHRoaXMuZXJyb3JNZXNzYWdlID0gbnVsbDtcblxuICAgICAgY29uc3Qgc2VydmljZSA9IHRoaXMuY29uZmlnLmRhdGEuc2VydmljZTtcbiAgICAgIGNvbnN0IGlkID0gICh0aGlzLm1vZGVsIGFzIGFueSlbdGhpcy5pZEZpZWxkXSA7XG4gICAgICB0aGlzLm1vZGVsLmlzQWN0aXZlID0gZmFsc2U7XG4gICAgICBjb25zdCBvcGVyYXRpb24kOiBPYnNlcnZhYmxlPGFueT4gPSAgc2VydmljZS51cGRhdGUoaWQsIHRoaXMubW9kZWwpO1xuXG4gICAgICBvcGVyYXRpb24kLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKS5zdWJzY3JpYmUoe1xuICAgICAgICBuZXh0OiAoKSA9PiB7XG4gICAgICAgICAgdGhpcy5yZWYuY2xvc2UodGhpcy5tb2RlbCk7IC8vINmG2KzYp9itINin2YTYudmF2YTZitipXG4gICAgICAgIH0sXG4gICAgICAgIGVycm9yOiAoZXJyKSA9PiB7XG4gICAgICAgICAgdGhpcy5sb2FkaW5nID0gZmFsc2U7XG4gICAgICAgICAgdGhpcy5lcnJvck1lc3NhZ2UgPSBlcnIuZXJyb3I/Lm1lc3NhZ2UgfHxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXJyLm1lc3NhZ2UgfHxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ9it2K/YqyDYrti32KMg2KPYq9mG2KfYoSDYp9mE2K3Zgdi4LiDZitix2KzZiSDYp9mE2YXYrdin2YjZhNipINmF2LHYqSDYo9iu2LHZiS4nO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9XG4gICAgbmdPbkRlc3Ryb3koKSB7XG4gICAgdGhpcy5kZXN0cm95JC5uZXh0KCk7XG4gICAgdGhpcy5kZXN0cm95JC5jb21wbGV0ZSgpO1xuICB9XG59XG4iXX0=","/**\n * Generated bundle index. Do not edit.\n */\nexport * from './index';\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWxpdGUuZnJhbWV3b3JrLW5nLnVpLmNvcmUtZGVhY3RpdmF0aW9uLXJlYXNvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYnMvbmcudWkuY29yZS9kZWFjdGl2YXRpb24tcmVhc29uL3NyYy9lbGl0ZS5mcmFtZXdvcmstbmcudWkuY29yZS1kZWFjdGl2YXRpb24tcmVhc29uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsY0FBYyxTQUFTLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEdlbmVyYXRlZCBidW5kbGUgaW5kZXguIERvIG5vdCBlZGl0LlxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vaW5kZXgnO1xuIl19"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"elite.framework-ng.ui.core-deactivation-reason.mjs","sources":["../tmp-esm2022/deactivation-reason/lib/deactivation-reason-module.js","../tmp-esm2022/deactivation-reason/lib/deactivation-reason.js","../tmp-esm2022/deactivation-reason/elite.framework-ng.ui.core-deactivation-reason.js"],"sourcesContent":["import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport * as i0 from \"@angular/core\";\nexport class DeactivationReasonModule {\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: DeactivationReasonModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });\n static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"14.0.0\", version: \"20.1.8\", ngImport: i0, type: DeactivationReasonModule, imports: [CommonModule] });\n static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: DeactivationReasonModule, imports: [CommonModule] });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: DeactivationReasonModule, decorators: [{\n type: NgModule,\n args: [{\n imports: [CommonModule],\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVhY3RpdmF0aW9uLXJlYXNvbi1tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL25nLnVpLmNvcmUvZGVhY3RpdmF0aW9uLXJlYXNvbi9zcmMvbGliL2RlYWN0aXZhdGlvbi1yZWFzb24tbW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDOztBQUsvQyxNQUFNLE9BQU8sd0JBQXdCO3VHQUF4Qix3QkFBd0I7d0dBQXhCLHdCQUF3QixZQUZ6QixZQUFZO3dHQUVYLHdCQUF3QixZQUZ6QixZQUFZOzsyRkFFWCx3QkFBd0I7a0JBSHBDLFFBQVE7bUJBQUM7b0JBQ1IsT0FBTyxFQUFFLENBQUMsWUFBWSxDQUFDO2lCQUN4QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuXG5ATmdNb2R1bGUoe1xuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlXSxcbn0pXG5leHBvcnQgY2xhc3MgRGVhY3RpdmF0aW9uUmVhc29uTW9kdWxlIHt9XG4iXX0=","import { CommonModule } from '@angular/common';\nimport { Component } from '@angular/core';\nimport { FormGroup, FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { FormlyForm } from '@ngx-formly/core';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { ButtonModule } from 'primeng/button';\nimport { DynamicDialogConfig, DynamicDialogRef } from 'primeng/dynamicdialog';\nimport { Subject, takeUntil } from 'rxjs';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"primeng/dynamicdialog\";\nimport * as i2 from \"@angular/forms\";\nimport * as i3 from \"primeng/button\";\nimport * as i4 from \"@ngx-translate/core\";\nexport class DeactivationReasonFormComponent {\n ref;\n config;\n form = new FormGroup({});\n model = {};\n fields;\n loading = false;\n errorMessage = null;\n destroy$ = new Subject();\n idField;\n constructor(ref, config) {\n this.ref = ref;\n this.config = config;\n this.model = config.data?.model || {};\n this.idField = this.config.data.idField;\n this.fields = [\n {\n key: 'deactivationReason',\n type: 'textarea',\n props: {\n label: 'DeactivationReason',\n placeholder: 'DeactivationReason',\n rows: 5,\n required: true,\n },\n },\n ];\n }\n onSubmit() {\n if (this.form.invalid)\n return;\n // this.loading = true;\n // this.errorMessage = null;\n const service = this.config.data.service;\n const id = this.model[this.idField];\n this.model.isActive = false;\n const operation$ = service.update(id, this.model);\n operation$.pipe(takeUntil(this.destroy$)).subscribe({\n next: () => {\n this.ref.close(this.model); // نجاح العملية\n },\n error: (err) => {\n this.loading = false;\n // this.errorMessage = err.error?.message ||\n // err.message ||\n // 'حدث خطأ أثناء الحفظ. يرجى المحاولة مرة أخرى.';\n }\n });\n }\n ngOnDestroy() {\n this.destroy$.next();\n this.destroy$.complete();\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: DeactivationReasonFormComponent, deps: [{ token: i1.DynamicDialogRef }, { token: i1.DynamicDialogConfig }], target: i0.ɵɵFactoryTarget.Component });\n static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"20.1.8\", type: DeactivationReasonFormComponent, isStandalone: true, selector: \"app-deactivation-reason-form\", ngImport: i0, template: `\n <form [formGroup]=\"form\" (ngSubmit)=\"onSubmit()\" class=\"p-4 space-y-4\">\n <formly-form [form]=\"form\" [fields]=\"fields\" [model]=\"model\"></formly-form>\n\n\n <div class=\"bottom-0 left-0 right-0 bg-gray-200 border-t border-gray-400 px-4 py-3 flex justify-end gap-2\">\n\n <p-button\n [label]=\"( 'SAVE') | translate\"\n size=\"small\"\n [disabled]=\"form.invalid\"\n [type]=\"'submit'\">\n </p-button>\n\n <p-button\n [label]=\"'CANCEL' | translate \"\n severity=\"danger\"\n size=\"small\"\n (onClick)=\"ref.close(false)\">\n </p-button>\n\n </div>\n </form>\n `, isInline: true, dependencies: [{ kind: \"component\", type: FormlyForm, selector: \"formly-form\", inputs: [\"form\", \"model\", \"fields\", \"options\"], outputs: [\"modelChange\"] }, { kind: \"ngmodule\", type: CommonModule }, { kind: \"ngmodule\", type: ReactiveFormsModule }, { kind: \"directive\", type: i2.ɵNgNoValidate, selector: \"form:not([ngNoForm]):not([ngNativeValidate])\" }, { kind: \"directive\", type: i2.NgControlStatusGroup, selector: \"[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]\" }, { kind: \"directive\", type: i2.FormGroupDirective, selector: \"[formGroup]\", inputs: [\"formGroup\"], outputs: [\"ngSubmit\"], exportAs: [\"ngForm\"] }, { kind: \"ngmodule\", type: FormsModule }, { kind: \"ngmodule\", type: TranslateModule }, { kind: \"ngmodule\", type: ButtonModule }, { kind: \"component\", type: i3.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: \"pipe\", type: i4.TranslatePipe, name: \"translate\" }] });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: DeactivationReasonFormComponent, decorators: [{\n type: Component,\n args: [{\n selector: 'app-deactivation-reason-form',\n template: `\n <form [formGroup]=\"form\" (ngSubmit)=\"onSubmit()\" class=\"p-4 space-y-4\">\n <formly-form [form]=\"form\" [fields]=\"fields\" [model]=\"model\"></formly-form>\n\n\n <div class=\"bottom-0 left-0 right-0 bg-gray-200 border-t border-gray-400 px-4 py-3 flex justify-end gap-2\">\n\n <p-button\n [label]=\"( 'SAVE') | translate\"\n size=\"small\"\n [disabled]=\"form.invalid\"\n [type]=\"'submit'\">\n </p-button>\n\n <p-button\n [label]=\"'CANCEL' | translate \"\n severity=\"danger\"\n size=\"small\"\n (onClick)=\"ref.close(false)\">\n </p-button>\n\n </div>\n </form>\n `,\n imports: [FormlyForm, CommonModule, ReactiveFormsModule, FormsModule, TranslateModule, ButtonModule]\n }]\n }], ctorParameters: () => [{ type: i1.DynamicDialogRef }, { type: i1.DynamicDialogConfig }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVhY3RpdmF0aW9uLXJlYXNvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvbmcudWkuY29yZS9kZWFjdGl2YXRpb24tcmVhc29uL3NyYy9saWIvZGVhY3RpdmF0aW9uLXJlYXNvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFNBQVMsRUFBcUIsTUFBTSxlQUFlLENBQUM7QUFDN0QsT0FBTyxFQUFFLFNBQVMsRUFBRSxXQUFXLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM3RSxPQUFPLEVBQXFCLFVBQVUsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ2pFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN0RCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDOUMsT0FBTyxFQUFFLG1CQUFtQixFQUFFLGdCQUFnQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDOUUsT0FBTyxFQUFjLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxNQUFNLENBQUM7Ozs7OztBQThCdEQsTUFBTSxPQUFPLCtCQUErQjtJQVNqQztJQUNBO0lBVFQsSUFBSSxHQUFHLElBQUksU0FBUyxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQ3pCLEtBQUssR0FBUSxFQUFFLENBQUM7SUFDaEIsTUFBTSxDQUFzQjtJQUM1QixPQUFPLEdBQUcsS0FBSyxDQUFDO0lBQ2hCLFlBQVksR0FBa0IsSUFBSSxDQUFDO0lBQzFCLFFBQVEsR0FBRyxJQUFJLE9BQU8sRUFBUSxDQUFDO0lBQ2hDLE9BQU8sQ0FBWTtJQUMzQixZQUNTLEdBQXFCLEVBQ3JCLE1BQTJCO1FBRDNCLFFBQUcsR0FBSCxHQUFHLENBQWtCO1FBQ3JCLFdBQU0sR0FBTixNQUFNLENBQXFCO1FBRWxDLElBQUksQ0FBQyxLQUFLLEdBQUcsTUFBTSxDQUFDLElBQUksRUFBRSxLQUFLLElBQUksRUFBRSxDQUFDO1FBQ3RDLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDO1FBQ3hDLElBQUksQ0FBQyxNQUFNLEdBQUc7WUFDWjtnQkFDRSxHQUFHLEVBQUUsb0JBQW9CO2dCQUN6QixJQUFJLEVBQUUsVUFBVTtnQkFDaEIsS0FBSyxFQUFFO29CQUNMLEtBQUssRUFBRSxvQkFBb0I7b0JBQzNCLFdBQVcsRUFBRSxvQkFBb0I7b0JBQ2pDLElBQUksRUFBRSxDQUFDO29CQUNQLFFBQVEsRUFBRSxJQUFJO2lCQUNmO2FBQ0Y7U0FDRixDQUFDO0lBQ0osQ0FBQztJQUdELFFBQVE7UUFDSixJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTztZQUFFLE9BQU87UUFFOUIsdUJBQXVCO1FBQ3ZCLDRCQUE0QjtRQUU1QixNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUM7UUFDekMsTUFBTSxFQUFFLEdBQUssSUFBSSxDQUFDLEtBQWEsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUU7UUFDL0MsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLEdBQUcsS0FBSyxDQUFDO1FBQzVCLE1BQU0sVUFBVSxHQUFxQixPQUFPLENBQUMsTUFBTSxDQUFDLEVBQUUsRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFFcEUsVUFBVSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDO1lBQ2xELElBQUksRUFBRSxHQUFHLEVBQUU7Z0JBQ1QsSUFBSSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsZUFBZTtZQUM3QyxDQUFDO1lBQ0QsS0FBSyxFQUFFLENBQUMsR0FBRyxFQUFFLEVBQUU7Z0JBQ2IsSUFBSSxDQUFDLE9BQU8sR0FBRyxLQUFLLENBQUM7Z0JBQ3JCLDRDQUE0QztnQkFDNUMsb0NBQW9DO2dCQUNwQyxxRUFBcUU7WUFDdkUsQ0FBQztTQUNGLENBQUMsQ0FBQztJQUNMLENBQUM7SUFDRCxXQUFXO1FBQ1gsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUNyQixJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQzNCLENBQUM7dUdBdkRVLCtCQUErQjsyRkFBL0IsK0JBQStCLHdGQTFCaEM7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBdUJULDREQUNRLFVBQVUsaUlBQUMsWUFBWSw4QkFBQyxtQkFBbUIsb2JBQUMsV0FBVyw4QkFBQyxlQUFlLDhCQUFDLFlBQVk7OzJGQUVsRiwrQkFBK0I7a0JBNUIzQyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSw4QkFBOEI7b0JBQ3hDLFFBQVEsRUFBRTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0F1QlQ7b0JBQ0QsT0FBTyxFQUFDLENBQUMsVUFBVSxFQUFDLFlBQVksRUFBQyxtQkFBbUIsRUFBQyxXQUFXLEVBQUMsZUFBZSxFQUFDLFlBQVksQ0FBQztpQkFDL0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgQ29tcG9uZW50LCBJbmplY3QsIE9uRGVzdHJveSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9ybUdyb3VwLCBGb3Jtc01vZHVsZSwgUmVhY3RpdmVGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IEZvcm1seUZpZWxkQ29uZmlnLCBGb3JtbHlGb3JtIH0gZnJvbSAnQG5neC1mb3JtbHkvY29yZSc7XG5pbXBvcnQgeyBUcmFuc2xhdGVNb2R1bGUgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcbmltcG9ydCB7IEJ1dHRvbk1vZHVsZSB9IGZyb20gJ3ByaW1lbmcvYnV0dG9uJztcbmltcG9ydCB7IER5bmFtaWNEaWFsb2dDb25maWcsIER5bmFtaWNEaWFsb2dSZWYgfSBmcm9tICdwcmltZW5nL2R5bmFtaWNkaWFsb2cnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgU3ViamVjdCwgdGFrZVVudGlsIH0gZnJvbSAncnhqcyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2FwcC1kZWFjdGl2YXRpb24tcmVhc29uLWZvcm0nLFxuICB0ZW1wbGF0ZTogYFxuICAgIDxmb3JtIFtmb3JtR3JvdXBdPVwiZm9ybVwiIChuZ1N1Ym1pdCk9XCJvblN1Ym1pdCgpXCIgY2xhc3M9XCJwLTQgc3BhY2UteS00XCI+XG4gICAgICA8Zm9ybWx5LWZvcm0gW2Zvcm1dPVwiZm9ybVwiIFtmaWVsZHNdPVwiZmllbGRzXCIgW21vZGVsXT1cIm1vZGVsXCI+PC9mb3JtbHktZm9ybT5cblxuXG4gICAgICA8ZGl2IGNsYXNzPVwiYm90dG9tLTAgbGVmdC0wIHJpZ2h0LTAgYmctZ3JheS0yMDAgYm9yZGVyLXQgYm9yZGVyLWdyYXktNDAwIHB4LTQgcHktMyBmbGV4IGp1c3RpZnktZW5kIGdhcC0yXCI+XG5cbiAgICA8cC1idXR0b25cbiAgICAgIFtsYWJlbF09XCIoICdTQVZFJykgfCB0cmFuc2xhdGVcIlxuICAgICAgc2l6ZT1cInNtYWxsXCJcbiAgICAgICBbZGlzYWJsZWRdPVwiZm9ybS5pbnZhbGlkXCJcbiAgICAgIFt0eXBlXT1cIidzdWJtaXQnXCI+XG4gICAgPC9wLWJ1dHRvbj5cblxuICAgIDxwLWJ1dHRvblxuICAgICAgW2xhYmVsXT1cIidDQU5DRUwnIHwgdHJhbnNsYXRlIFwiXG4gICAgICBzZXZlcml0eT1cImRhbmdlclwiXG4gICAgICBzaXplPVwic21hbGxcIlxuICAgICAgKG9uQ2xpY2spPVwicmVmLmNsb3NlKGZhbHNlKVwiPlxuICAgIDwvcC1idXR0b24+XG5cbiAgPC9kaXY+XG4gICAgPC9mb3JtPlxuICBgLFxuICBpbXBvcnRzOltGb3JtbHlGb3JtLENvbW1vbk1vZHVsZSxSZWFjdGl2ZUZvcm1zTW9kdWxlLEZvcm1zTW9kdWxlLFRyYW5zbGF0ZU1vZHVsZSxCdXR0b25Nb2R1bGVdXG59KVxuZXhwb3J0IGNsYXNzIERlYWN0aXZhdGlvblJlYXNvbkZvcm1Db21wb25lbnQgaW1wbGVtZW50cyBPbkRlc3Ryb3kge1xuICBmb3JtID0gbmV3IEZvcm1Hcm91cCh7fSk7XG4gIG1vZGVsOiBhbnkgPSB7fTtcbiAgZmllbGRzOiBGb3JtbHlGaWVsZENvbmZpZ1tdO1xuICBsb2FkaW5nID0gZmFsc2U7XG4gIGVycm9yTWVzc2FnZTogc3RyaW5nIHwgbnVsbCA9IG51bGw7XG4gICBwcml2YXRlIGRlc3Ryb3kkID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcbiAgcHJpdmF0ZSBpZEZpZWxkOiBrZXlvZiBhbnk7XG4gIGNvbnN0cnVjdG9yKFxuICAgIHB1YmxpYyByZWY6IER5bmFtaWNEaWFsb2dSZWYsXG4gICAgcHVibGljIGNvbmZpZzogRHluYW1pY0RpYWxvZ0NvbmZpZ1xuICApIHtcbiAgICB0aGlzLm1vZGVsID0gY29uZmlnLmRhdGE/Lm1vZGVsIHx8IHt9O1xuICAgIHRoaXMuaWRGaWVsZCA9IHRoaXMuY29uZmlnLmRhdGEuaWRGaWVsZDtcbiAgICB0aGlzLmZpZWxkcyA9IFtcbiAgICAgIHtcbiAgICAgICAga2V5OiAnZGVhY3RpdmF0aW9uUmVhc29uJyxcbiAgICAgICAgdHlwZTogJ3RleHRhcmVhJyxcbiAgICAgICAgcHJvcHM6IHtcbiAgICAgICAgICBsYWJlbDogJ0RlYWN0aXZhdGlvblJlYXNvbicsXG4gICAgICAgICAgcGxhY2Vob2xkZXI6ICdEZWFjdGl2YXRpb25SZWFzb24nLFxuICAgICAgICAgIHJvd3M6IDUsXG4gICAgICAgICAgcmVxdWlyZWQ6IHRydWUsXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgIF07XG4gIH1cblxuXG4gIG9uU3VibWl0KCkge1xuICAgICAgaWYgKHRoaXMuZm9ybS5pbnZhbGlkKSByZXR1cm47XG5cbiAgICAgIC8vIHRoaXMubG9hZGluZyA9IHRydWU7XG4gICAgICAvLyB0aGlzLmVycm9yTWVzc2FnZSA9IG51bGw7XG5cbiAgICAgIGNvbnN0IHNlcnZpY2UgPSB0aGlzLmNvbmZpZy5kYXRhLnNlcnZpY2U7XG4gICAgICBjb25zdCBpZCA9ICAodGhpcy5tb2RlbCBhcyBhbnkpW3RoaXMuaWRGaWVsZF0gO1xuICAgICAgdGhpcy5tb2RlbC5pc0FjdGl2ZSA9IGZhbHNlO1xuICAgICAgY29uc3Qgb3BlcmF0aW9uJDogT2JzZXJ2YWJsZTxhbnk+ID0gIHNlcnZpY2UudXBkYXRlKGlkLCB0aGlzLm1vZGVsKTtcblxuICAgICAgb3BlcmF0aW9uJC5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSkuc3Vic2NyaWJlKHtcbiAgICAgICAgbmV4dDogKCkgPT4ge1xuICAgICAgICAgIHRoaXMucmVmLmNsb3NlKHRoaXMubW9kZWwpOyAvLyDZhtis2KfYrSDYp9mE2LnZhdmE2YrYqVxuICAgICAgICB9LFxuICAgICAgICBlcnJvcjogKGVycikgPT4ge1xuICAgICAgICAgIHRoaXMubG9hZGluZyA9IGZhbHNlO1xuICAgICAgICAgIC8vIHRoaXMuZXJyb3JNZXNzYWdlID0gZXJyLmVycm9yPy5tZXNzYWdlIHx8XG4gICAgICAgICAgLy8gICAgICAgICAgICAgICAgICAgIGVyci5tZXNzYWdlIHx8XG4gICAgICAgICAgLy8gICAgICAgICAgICAgICAgICAgICfYrdiv2Ksg2K7Yt9ijINij2KvZhtin2KEg2KfZhNit2YHYuC4g2YrYsdis2Ykg2KfZhNmF2K3Yp9mI2YTYqSDZhdix2Kkg2KPYrtix2YkuJztcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfVxuICAgIG5nT25EZXN0cm95KCkge1xuICAgIHRoaXMuZGVzdHJveSQubmV4dCgpO1xuICAgIHRoaXMuZGVzdHJveSQuY29tcGxldGUoKTtcbiAgfVxufVxuIl19","/**\n * Generated bundle index. Do not edit.\n */\nexport * from './index';\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWxpdGUuZnJhbWV3b3JrLW5nLnVpLmNvcmUtZGVhY3RpdmF0aW9uLXJlYXNvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYnMvbmcudWkuY29yZS9kZWFjdGl2YXRpb24tcmVhc29uL3NyYy9lbGl0ZS5mcmFtZXdvcmstbmcudWkuY29yZS1kZWFjdGl2YXRpb24tcmVhc29uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsY0FBYyxTQUFTLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEdlbmVyYXRlZCBidW5kbGUgaW5kZXguIERvIG5vdCBlZGl0LlxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vaW5kZXgnO1xuIl19"],"names":[],"mappings":"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"}
@@ -186,37 +186,9 @@ class GenericCrudTableComponent {
186
186
  }
187
187
  }
188
188
  beforeSave = (record) => record;
189
- // onSubmit() {
190
- // if (this.form.invalid) return;
191
- // this.loading = true;
192
- // this.errorMessage = null;
193
- // const service = this.service /* as CrudService<T> */;
194
- // const id = this.isEditMode ? (this.model as any)[this.idField] : null;
195
- // const recordToSave = this.beforeSave({ ...this.model });
196
- // const operation$: Observable<any> = this.isEditMode
197
- // ? service.update(id, recordToSave)
198
- // : service.create(recordToSave);
199
- // // operation$.pipe(takeUntil(this.destroy$)).subscribe({
200
- // operation$.subscribe({
201
- // next: () => {
202
- // // this.ref.close(true); // نجاح العملية
203
- // this.visibleChange.emit(false)
204
- // // this.pageChange.emit({ first, rows ,sort, filters });
205
- // this.applySearch('');
206
- // // this.me
207
- // },
208
- // error: (err:any) => {
209
- // this.loading = false;
210
- // this.errorMessage = err.error?.title ||
211
- // err.message ||
212
- // 'حدث خطأ أثناء الحفظ. يرجى المحاولة مرة أخرى.';
213
- // }
214
- // });
215
- // }
216
189
  onSubmit() {
217
190
  if (this.form.invalid)
218
191
  return;
219
- // ✅ أول شيء نطلب تأكيد من المستخدم
220
192
  this.swalService.confirm(this.isEditMode ? 'تأكيد التعديل' : 'تأكيد الحفظ', this.isEditMode
221
193
  ? 'هل تريد حفظ التعديلات على هذا السجل؟'
222
194
  : 'هل تريد حفظ هذا السجل؟', 'نعم', 'إلغاء').then((result) => {
@@ -224,12 +196,11 @@ class GenericCrudTableComponent {
224
196
  return;
225
197
  this.loading = true;
226
198
  this.errorMessage = null;
227
- const service = this.service;
228
199
  const id = this.isEditMode ? this.model[this.idField] : null;
229
200
  const recordToSave = this.beforeSave({ ...this.model });
230
201
  const operation$ = this.isEditMode
231
- ? service.update(id, recordToSave)
232
- : service.create(recordToSave);
202
+ ? this.service.update(id, recordToSave)
203
+ : this.service.create(recordToSave);
233
204
  operation$.subscribe({
234
205
  next: () => {
235
206
  this.loading = false;
@@ -238,18 +209,56 @@ class GenericCrudTableComponent {
238
209
  this.visibleChange.emit(false);
239
210
  this.applySearch('');
240
211
  },
241
- error: (err) => {
212
+ error: () => {
213
+ // ❌ ما نعرض رسالة خطأ هنا لأن الـ interceptor يتكفل فيها
242
214
  this.loading = false;
243
- const msg = err.error?.title ||
244
- err.message ||
245
- 'حدث خطأ أثناء الحفظ. يرجى المحاولة مرة أخرى.';
246
- this.errorMessage = msg;
247
- // ❌ رسالة خطأ
248
- this.swalService.error('فشل الحفظ', msg);
249
215
  }
250
216
  });
251
217
  });
252
218
  }
219
+ // onSubmit() {
220
+ // if (this.form.invalid) return;
221
+ // // ✅ أول شيء نطلب تأكيد من المستخدم
222
+ // this.swalService.confirm(
223
+ // this.isEditMode ? 'تأكيد التعديل' : 'تأكيد الحفظ',
224
+ // this.isEditMode
225
+ // ? 'هل تريد حفظ التعديلات على هذا السجل؟'
226
+ // : 'هل تريد حفظ هذا السجل؟',
227
+ // 'نعم',
228
+ // 'إلغاء'
229
+ // ).then((result) => {
230
+ // if (!result.isConfirmed) return;
231
+ // this.loading = true;
232
+ // this.errorMessage = null;
233
+ // const service = this.service;
234
+ // const id = this.isEditMode ? (this.model as any)[this.idField] : null;
235
+ // const recordToSave = this.beforeSave({ ...this.model });
236
+ // const operation$: Observable<any> = this.isEditMode
237
+ // ? service.update(id, recordToSave)
238
+ // : service.create(recordToSave);
239
+ // operation$.subscribe({
240
+ // next: () => {
241
+ // this.loading = false;
242
+ // // ✅ رسالة نجاح
243
+ // this.swalService.success(
244
+ // this.isEditMode ? 'تم التعديل بنجاح' : 'تم الحفظ بنجاح'
245
+ // );
246
+ // this.visibleChange.emit(false);
247
+ // this.applySearch('');
248
+ // },
249
+ // error: (err: any) => {
250
+ // this.loading = false;
251
+ // const msg =
252
+ // err.error?.title ||
253
+ // err.message ||
254
+ // 'حدث خطأ أثناء الحفظ. يرجى المحاولة مرة أخرى.';
255
+ // this.errorMessage = msg;
256
+ // // ❌ رسالة خطأ
257
+ // this.swalService.error('فشل الحفظ', msg);
258
+ // }
259
+ // });
260
+ // });
261
+ // }
253
262
  trackByIdx(index, item) {
254
263
  return index;
255
264
  }
@@ -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-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 { DividerModule } from 'primeng/divider';\n// src/app/shared/generic-crud-table/generic-crud-table.component.ts\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 { TranslateModule, TranslateService } from '@ngx-translate/core';\nimport { FormlyForm } from '@ngx-formly/core';\nimport { IconFieldModule } from 'primeng/iconfield';\nimport { DrawerModule } from 'primeng/drawer';\nimport { DialogModule } from 'primeng/dialog';\nimport { FormsModule, ReactiveFormsModule, UntypedFormGroup } from '@angular/forms';\nimport { SwalService } from '@elite.framework/ng.core/services';\nimport { BreadcrumbComponent } from '@elite.framework/ng.ui.core/breadcrumb';\nimport { GenericButton } from '@elite.framework/ng.ui.core/generic-button';\nimport { GenericTable } from '@elite.framework/ng.ui.core/generic-table';\nimport { GenericSearch } from '@elite.framework/ng.ui.core/generic-search';\nimport { UiButtonComponent } from '@elite.framework/ng.ui.core/ui-button';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@angular/common\";\nimport * as i2 from \"primeng/api\";\nimport * as i3 from \"primeng/button\";\nimport * as i4 from \"primeng/divider\";\nimport * as i5 from \"primeng/drawer\";\nimport * as i6 from \"@angular/forms\";\nimport * as i7 from \"primeng/dialog\";\nimport * as i8 from \"@ngx-translate/core\";\nexport class GenericCrudTableComponent {\n genericTable;\n translate = inject(TranslateService);\n swalService = inject(SwalService);\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 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 // البحث\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 viewHeaderTitle = 'عرض التفاصيل';\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;\n idField = 'id';\n showRowSelectionCheckbox = false;\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 /** للتحكم بإظهار زر الإضافة */\n showAddButton = true;\n splitActions = [];\n /** الأيقونة الافتراضية لزر الإضافة */\n addButtonIcon = 'pi pi-plus';\n /** النص الافتراضي لزر الإضافة */\n addButtonLabel = 'ADD';\n /** تتحكّم بموقع زر الإضافة: 'top' أو 'bottom' */\n addButtonPosition = 'top';\n addButtonConfigs = [];\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 // 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 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 // يبني النص وإرساله\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 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 beforeSave = (record) => record;\n // onSubmit() {\n // if (this.form.invalid) return;\n // this.loading = true;\n // this.errorMessage = null;\n // const service = this.service /* as CrudService<T> */;\n // const id = this.isEditMode ? (this.model as any)[this.idField] : null;\n // const recordToSave = this.beforeSave({ ...this.model });\n // const operation$: Observable<any> = this.isEditMode\n // ? service.update(id, recordToSave)\n // : service.create(recordToSave);\n // // operation$.pipe(takeUntil(this.destroy$)).subscribe({\n // operation$.subscribe({\n // next: () => {\n // // this.ref.close(true); // نجاح العملية\n // this.visibleChange.emit(false)\n // // this.pageChange.emit({ first, rows ,sort, filters });\n // this.applySearch('');\n // // this.me\n // },\n // error: (err:any) => {\n // this.loading = false;\n // this.errorMessage = err.error?.title ||\n // err.message ||\n // 'حدث خطأ أثناء الحفظ. يرجى المحاولة مرة أخرى.';\n // }\n // });\n // }\n onSubmit() {\n if (this.form.invalid)\n return;\n // ✅ أول شيء نطلب تأكيد من المستخدم\n this.swalService.confirm(this.isEditMode ? 'تأكيد التعديل' : 'تأكيد الحفظ', this.isEditMode\n ? 'هل تريد حفظ التعديلات على هذا السجل؟'\n : 'هل تريد حفظ هذا السجل؟', 'نعم', 'إلغاء').then((result) => {\n if (!result.isConfirmed)\n return;\n this.loading = true;\n this.errorMessage = null;\n const service = this.service;\n const id = this.isEditMode ? this.model[this.idField] : null;\n const recordToSave = this.beforeSave({ ...this.model });\n const operation$ = this.isEditMode\n ? service.update(id, recordToSave)\n : service.create(recordToSave);\n operation$.subscribe({\n next: () => {\n this.loading = false;\n // ✅ رسالة نجاح\n this.swalService.success(this.isEditMode ? 'تم التعديل بنجاح' : 'تم الحفظ بنجاح');\n this.visibleChange.emit(false);\n this.applySearch('');\n },\n error: (err) => {\n this.loading = false;\n const msg = err.error?.title ||\n err.message ||\n 'حدث خطأ أثناء الحفظ. يرجى المحاولة مرة أخرى.';\n this.errorMessage = msg;\n // ❌ رسالة خطأ\n this.swalService.error('فشل الحفظ', msg);\n }\n });\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\", isEditMode: \"isEditMode\", drawerVisible: \"drawerVisible\", dialogVisible: \"dialogVisible\", model: \"model\", loading: \"loading\", errorMsg: \"errorMsg\", errorMessage: \"errorMessage\", actions: \"actions\", actionsMode: \"actionsMode\", filters: \"filters\", filterModel: \"filterModel\", showSearch: \"showSearch\", first: \"first\", rows: \"rows\", totalRecords: \"totalRecords\", rowSelectable: \"rowSelectable\", scrollHeight: \"scrollHeight\", paginator: \"paginator\", service: \"service\", idField: \"idField\", showRowSelectionCheckbox: \"showRowSelectionCheckbox\", bulkActionButtons: \"bulkActionButtons\", singleActionButtons: \"singleActionButtons\", showAddButton: \"showAddButton\", splitActions: \"splitActions\", addButtonIcon: \"addButtonIcon\", addButtonLabel: \"addButtonLabel\", addButtonPosition: \"addButtonPosition\", addButtonConfigs: \"addButtonConfigs\", breadcrumb: \"breadcrumb\", beforeSave: \"beforeSave\" }, outputs: { action: \"action\", bulkAction: \"bulkAction\", singleAction: \"singleAction\", search: \"search\", pageChange: \"pageChange\", onSearch: \"onSearch\", visibleChange: \"visibleChange\", rowSelect: \"rowSelect\" }, host: { classAttribute: \"h-full flex-1 flex flex-col overflow-hidden border border-surface rounded-2xl xs:rounded-2xl p-4 bg-white\" }, viewQueries: [{ propertyName: \"genericTable\", first: true, predicate: [\"genericTable\"], descendants: true }], ngImport: i0, template: \"\\r\\n <div class=\\\"flex items-start gap-2 justify-between\\\">\\r\\n <div>\\r\\n <!-- <div class=\\\"text-2xl leading-8 font-medium bg-slate-800 p-4 rounded-md\\\">\\r\\n <p-breadcrumb\\r\\n [model]=\\\"breadcrumb_\\\"\\r\\n [home]=\\\"home\\\"\\r\\n styleClass=\\\"custom-breadcrumb\\\"\\r\\n ></p-breadcrumb>\\r\\n </div> -->\\r\\n\\r\\n<app-breadcrumb class=\\\"xs:block hidden\\\" [breadcrumb]=\\\"breadcrumb_\\\"></app-breadcrumb>\\r\\n\\r\\n </div>\\r\\n\\r\\n<div class=\\\"flex items-center gap-2 justify-end flex-wrap\\\">\\r\\n <ng-container *ngIf=\\\"isSingleItemSelected\\\">\\r\\n <ng-container *ngFor=\\\"let btn of singleActionButtons; trackBy: trackByIdx\\\">\\r\\n <lib-generic-button\\r\\n\\r\\n [icon]=\\\"btn.icon\\\"\\r\\n[label]=\\\"btn.label | translate\\\"\\r\\n[variant]=\\\"btn.variant\\\"\\r\\n [size]=\\\"btn.size\\\"\\r\\n [permission]=\\\"btn.permission\\\"\\r\\n (clicked)=\\\"onSingleItemAction(btn)\\\"\\r\\n ></lib-generic-button>\\r\\n</ng-container>\\r\\n </ng-container>\\r\\n\\r\\n <ng-container *ngIf=\\\"selectedItems.length > 0\\\">\\r\\n <ng-container *ngFor=\\\"let btn of bulkActionButtons; trackBy: trackByIdx\\\">\\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 [permission]=\\\"btn.permission\\\"\\r\\n (clicked)=\\\"onInternalBulkAction(btn)\\\"\\r\\n ></lib-generic-button>\\r\\n </ng-container>\\r\\n </ng-container>\\r\\n\\r\\n <ng-container *ngFor=\\\"let btn of addButtonConfigs; trackBy: trackByIdx\\\">\\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 [permission]=\\\"btn.permission\\\"\\r\\n (clicked)=\\\" this.action.emit({ name: btn.actionName ?? 'add', row: null! });\\\"\\r\\n ></lib-generic-button>\\r\\n </ng-container>\\r\\n\\r\\n\\r\\n\\r\\n @if ((showAddButton || splitActions.length > 0)&& addButtonConfigs.length === 0) {\\r\\n\\r\\n @if (showAddButton && splitActions.length === 0) {\\r\\n\\r\\n <!-- <p-button\\r\\n icon=\\\"pi pi-circle-fill text-green-500\\\" *ngIf=\\\"showAddButton && addButtonConfigs.length === 0\\\"\\r\\n [label]=\\\"(addButtonLabel | translate)\\r\\n \\\"(onClick)=\\\"action.emit({ name: 'add', row: null! })\\\"\\r\\n outlined severity=\\\"secondary\\\" /> -->\\r\\n\\r\\n <ui-button\\r\\n [config]=\\\"{\\r\\n type: 'button',\\r\\n label: addButtonLabel| translate,\\r\\n icon: 'pi pi-plus',\\r\\n severity: 'primary',\\r\\n outlined: false,\\r\\n styleClass:''\\r\\n }\\\"\\r\\n (onClick)=\\\"action.emit({ name: 'add', row: null! })\\\">\\r\\n </ui-button>\\r\\n }\\r\\n @else {\\r\\n <!-- Split Button -->\\r\\n <ui-button\\r\\n [config]=\\\"{\\r\\n type: 'split',\\r\\n label: addButtonLabel| translate,\\r\\n icon: 'pi pi-plus',\\r\\n severity: 'primary',\\r\\n loading: false,\\r\\n outlined: false,\\r\\n items: splitActions\\r\\n }\\\"\\r\\n (onClick)=\\\"action.emit({ name: 'add', row: null! })\\\">\\r\\n </ui-button>\\r\\n }\\r\\n\\r\\n\\r\\n }\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n </div>\\r\\n </div>\\r\\n <div class=\\\"mt-2 mb-4 flex items-center justify-between\\\">\\r\\n\\r\\n <ng-container *ngIf=\\\"showSearch && filters; else emptySearch\\\">\\r\\n <lib-generic-search\\r\\n [model]=\\\"filterModel\\\"\\r\\n [fields]=\\\"filters\\\"\\r\\n (search)=\\\"applySearch($event)\\\"\\r\\n (reset)=\\\"applySearch('')\\\"\\r\\n ></lib-generic-search>\\r\\n </ng-container>\\r\\n\\r\\n <ng-template #emptySearch>\\r\\n <!-- Render a dummy div to preserve expected DOM shape -->\\r\\n <!-- <div class=\\\"min-h-[2.5rem] w-[12rem]\\\"></div> -->\\r\\n </ng-template>\\r\\n <!-- style=\\\"direction: ltr;\\\" -->\\r\\n <div class=\\\"flex items-center gap-3\\\">\\r\\n\\r\\n <p-button icon=\\\"pi pi-refresh\\\" outlined severity=\\\"secondary\\\" (onClick)=\\\"applySearch('')\\\" />\\r\\n <p-divider layout=\\\"vertical\\\" class=\\\"m-0 p-0 xs:block hidden\\\" />\\r\\n <p-button icon=\\\"pi pi-sort\\\" outlined severity=\\\"secondary\\\" class=\\\"xs:block hidden\\\" />\\r\\n <p-button label=\\\"1 of 15\\\" outlined severity=\\\"secondary\\\" class=\\\"xs:block hidden\\\" />\\r\\n <p-button icon=\\\"pi pi-chevron-right\\\" outlined severity=\\\"secondary\\\" class=\\\"xs:block hidden\\\" />\\r\\n <p-button icon=\\\"pi pi-chevron-left\\\" outlined severity=\\\"secondary\\\" class=\\\"xs:block hidden\\\" />\\r\\n </div>\\r\\n </div>\\r\\n\\r\\n\\r\\n\\r\\n<lib-generic-table\\r\\n [showAddButton]=\\\"showAddButton\\\"\\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 [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\\r\\n<!-- Drawer -->\\r\\n<p-drawer\\r\\n *ngIf=\\\"(typeof displayMode === 'string' ? displayMode : isEditMode ? displayMode['edit'] : isViewMode === false ? displayMode['add'] : displayMode['view'] ) === 'drawer' && drawerVisible\\\"\\r\\n [(visible)]=\\\"drawerVisible\\\"\\r\\n [closable]=\\\"true\\\"\\r\\n [dismissible]=\\\"false\\\"\\r\\n [closeOnEscape]=\\\"true\\\"\\r\\n (visibleChange)=\\\"visibleChange.emit($event)\\\"\\r\\n styleClass=\\\"!w-full md:!w-80 lg:!w-[40rem]\\\">\\r\\n\\r\\n <ng-template pTemplate=\\\"header\\\">\\r\\n <span class=\\\"font-bold text-lg\\\">\\r\\n {{ isEditMode ? '\\u062A\\u0639\\u062F\\u064A\\u0644' : isViewMode === false ? '\\u0625\\u0636\\u0627\\u0641\\u0629' : '\\u0639\\u0631\\u0636' }}\\r\\n </span>\\r\\n </ng-template>\\r\\n<!-- (ngSubmit)=\\\"onSubmit()\\\" -->\\r\\n <form *ngIf=\\\"form\\\" [formGroup]=\\\"form\\\" class=\\\"p-4\\\">\\r\\n <formly-form [form]=\\\"form\\\" [fields]=\\\"formFields_\\\" [model]=\\\"model\\\" [options]=\\\"options\\\"></formly-form>\\r\\n </form>\\r\\n\\r\\n <ng-template pTemplate=\\\"footer\\\" *ngIf=\\\"!isViewMode\\\">\\r\\n <div class=\\\"flex justify-end gap-2\\\">\\r\\n <button\\r\\n pButton\\r\\n [label]=\\\"isEditMode ? ('UPDATE' | translate) : ('SAVE' | translate)\\\"\\r\\n type=\\\"button\\\"\\r\\n (click)=\\\"onSubmit()\\\"\\r\\n [disabled]=\\\"loading || form.invalid\\\"\\r\\n [loading]=\\\"loading\\\">\\r\\n </button>\\r\\n <button\\r\\n pButton\\r\\n label=\\\"{{ 'CANCEL' | translate }}\\\"\\r\\n severity=\\\"danger\\\"\\r\\n (click)=\\\"visibleChange.emit(false)\\\">\\r\\n </button>\\r\\n </div>\\r\\n </ng-template>\\r\\n</p-drawer>\\r\\n\\r\\n<!-- Dialog -->\\r\\n<p-dialog\\r\\n *ngIf=\\\"(typeof displayMode === 'string' ? displayMode : isEditMode ? displayMode['edit'] : isViewMode === false ? displayMode['add'] : displayMode['view'] ) === 'dialog' && dialogVisible\\\"\\r\\n [(visible)]=\\\"dialogVisible\\\"\\r\\n [modal]=\\\"true\\\"\\r\\n [closable]=\\\"true\\\"\\r\\n [dismissableMask]=\\\"true\\\"\\r\\n [closeOnEscape]=\\\"true\\\"\\r\\n (visibleChange)=\\\"visibleChange.emit($event)\\\"\\r\\n [style]=\\\"{ width: '95vw', maxWidth: dialogMaxWidth }\\\"\\r\\n [header]=\\\"isEditMode ? '\\u062A\\u0639\\u062F\\u064A\\u0644' : isViewMode === false ? '\\u0625\\u0636\\u0627\\u0641\\u0629' : viewHeaderTitle\\\">\\r\\n<!-- [breakpoints]=\\\"{ '1200px': '50vw', '768px': '70vw', '560px': '95vw' }\\\" -->\\r\\n <div class=\\\"relative\\\">\\r\\n <div *ngIf=\\\"isViewMode\\\" class=\\\"absolute inset-0 z-10 bg-white/50 pointer-events-auto rounded-md\\\"></div>\\r\\n <form *ngIf=\\\"form\\\" [formGroup]=\\\"form\\\" class=\\\"p-4\\\">\\r\\n <formly-form [form]=\\\"form\\\" [fields]=\\\"formFields_\\\" [model]=\\\"model\\\" [options]=\\\"options\\\"></formly-form>\\r\\n </form>\\r\\n </div>\\r\\n\\r\\n <ng-template pTemplate=\\\"footer\\\">\\r\\n <div class=\\\"flex justify-end gap-2\\\">\\r\\n <button *ngIf=\\\"!isViewMode\\\"\\r\\n pButton\\r\\n [label]=\\\"isEditMode ? ('UPDATE' | translate) : ('SAVE' | translate)\\\"\\r\\n type=\\\"button\\\"\\r\\n [disabled]=\\\"loading || form.invalid\\\"\\r\\n [loading]=\\\"loading\\\"\\r\\n (click)=\\\"onSubmit()\\\">\\r\\n </button>\\r\\n <button\\r\\n pButton\\r\\n label=\\\"{{ isViewMode ? ('CLOSE' | translate) : ('CANCEL' | translate) }}\\\"\\r\\n severity=\\\"secondary\\\"\\r\\n (click)=\\\"visibleChange.emit(false)\\\">\\r\\n </button>\\r\\n </div>\\r\\n </ng-template>\\r\\n</p-dialog>\\r\\n\\r\\n\\r\\n\\r\\n\", dependencies: [{ kind: \"ngmodule\", type: CommonModule }, { kind: \"directive\", type: i1.NgForOf, selector: \"[ngFor][ngForOf]\", inputs: [\"ngForOf\", \"ngForTrackBy\", \"ngForTemplate\"] }, { kind: \"directive\", type: i1.NgIf, selector: \"[ngIf]\", inputs: [\"ngIf\", \"ngIfThen\", \"ngIfElse\"] }, { kind: \"ngmodule\", type: TableModule }, { kind: \"directive\", type: i2.PrimeTemplate, selector: \"[pTemplate]\", inputs: [\"type\", \"pTemplate\"] }, { kind: \"component\", type: GenericButton, selector: \"lib-generic-button\", inputs: [\"model\", \"type\", \"icon\", \"label\", \"variant\", \"severity\", \"size\", \"iconPosition\", \"disabled\", \"loading\", \"ariaLabel\", \"extraClasses\", \"permission\"], outputs: [\"clicked\", \"itemClick\"] }, { kind: \"ngmodule\", type: ButtonModule }, { kind: \"directive\", type: i3.ButtonDirective, selector: \"[pButton]\", inputs: [\"iconPos\", \"loadingIcon\", \"loading\", \"severity\", \"raised\", \"rounded\", \"text\", \"outlined\", \"size\", \"plain\", \"fluid\", \"label\", \"icon\", \"buttonProps\"] }, { kind: \"component\", type: i3.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: \"component\", type: GenericSearch, selector: \"lib-generic-search\", inputs: [\"placeholder\", \"model\", \"fields\"], outputs: [\"search\"] }, { kind: \"component\", type: GenericTable, selector: \"lib-generic-table\", inputs: [\"data\", \"columns\", \"loading\", \"actions\", \"actionsMode\", \"first\", \"rows\", \"totalRecords\", \"sortField\", \"sortOrder\", \"globalFilterFields\", \"scrollHeight\", \"rowSelectable\", \"showAddButton\", \"selection\", \"paginator\", \"showRowSelectionCheckbox\"], outputs: [\"action\", \"pageChange\", \"onAddNew\", \"rowSelect\", \"selectionChange\"] }, { kind: \"ngmodule\", type: ToolbarModule }, { kind: \"ngmodule\", type: TranslateModule }, { kind: \"ngmodule\", type: DividerModule }, { kind: \"component\", type: i4.Divider, selector: \"p-divider\", inputs: [\"styleClass\", \"layout\", \"type\", \"align\"] }, { kind: \"ngmodule\", type: IconFieldModule }, { kind: \"ngmodule\", type: DrawerModule }, { kind: \"component\", type: i5.Drawer, selector: \"p-drawer\", inputs: [\"appendTo\", \"blockScroll\", \"style\", \"styleClass\", \"ariaCloseLabel\", \"autoZIndex\", \"baseZIndex\", \"modal\", \"closeButtonProps\", \"dismissible\", \"showCloseIcon\", \"closeOnEscape\", \"transitionOptions\", \"visible\", \"position\", \"fullScreen\", \"header\", \"maskStyle\", \"closable\"], outputs: [\"onShow\", \"onHide\", \"visibleChange\"] }, { kind: \"component\", type: FormlyForm, selector: \"formly-form\", inputs: [\"form\", \"model\", \"fields\", \"options\"], outputs: [\"modelChange\"] }, { kind: \"ngmodule\", type: ReactiveFormsModule }, { kind: \"directive\", type: i6.ɵNgNoValidate, selector: \"form:not([ngNoForm]):not([ngNativeValidate])\" }, { kind: \"directive\", type: i6.NgControlStatusGroup, selector: \"[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]\" }, { kind: \"directive\", type: i6.FormGroupDirective, selector: \"[formGroup]\", inputs: [\"formGroup\"], outputs: [\"ngSubmit\"], exportAs: [\"ngForm\"] }, { kind: \"ngmodule\", type: FormsModule }, { kind: \"ngmodule\", type: MessageModule }, { kind: \"component\", type: BreadcrumbComponent, selector: \"app-breadcrumb\", inputs: [\"breadcrumb\"] }, { kind: \"ngmodule\", type: DialogModule }, { kind: \"component\", type: i7.Dialog, selector: \"p-dialog\", inputs: [\"header\", \"draggable\", \"resizable\", \"contentStyle\", \"contentStyleClass\", \"modal\", \"closeOnEscape\", \"dismissableMask\", \"rtl\", \"closable\", \"breakpoints\", \"styleClass\", \"maskStyleClass\", \"maskStyle\", \"showHeader\", \"blockScroll\", \"autoZIndex\", \"baseZIndex\", \"minX\", \"minY\", \"focusOnShow\", \"maximizable\", \"keepInViewport\", \"focusTrap\", \"transitionOptions\", \"closeIcon\", \"closeAriaLabel\", \"closeTabindex\", \"minimizeIcon\", \"maximizeIcon\", \"closeButtonProps\", \"maximizeButtonProps\", \"visible\", \"style\", \"position\", \"role\", \"appendTo\", \"content\", \"contentTemplate\", \"footerTemplate\", \"closeIconTemplate\", \"maximizeIconTemplate\", \"minimizeIconTemplate\", \"headlessTemplate\"], outputs: [\"onShow\", \"onHide\", \"visibleChange\", \"onResizeInit\", \"onResizeEnd\", \"onDragEnd\", \"onMaximize\"] }, { kind: \"component\", type: UiButtonComponent, selector: \"ui-button\", inputs: [\"config\"], outputs: [\"onClick\"] }, { kind: \"pipe\", type: i8.TranslatePipe, name: \"translate\" }] });\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 GenericButton,\n ButtonModule,\n GenericSearch,\n GenericTable,\n ToolbarModule,\n TranslateModule,\n DividerModule,\n IconFieldModule,\n DrawerModule,\n FormlyForm,\n ReactiveFormsModule,\n FormsModule,\n MessageModule,\n BreadcrumbComponent,\n DialogModule,\n UiButtonComponent\n ], host: {\n class: 'h-full flex-1 flex flex-col overflow-hidden border border-surface rounded-2xl xs:rounded-2xl p-4 bg-white'\n }, template: \"\\r\\n <div class=\\\"flex items-start gap-2 justify-between\\\">\\r\\n <div>\\r\\n <!-- <div class=\\\"text-2xl leading-8 font-medium bg-slate-800 p-4 rounded-md\\\">\\r\\n <p-breadcrumb\\r\\n [model]=\\\"breadcrumb_\\\"\\r\\n [home]=\\\"home\\\"\\r\\n styleClass=\\\"custom-breadcrumb\\\"\\r\\n ></p-breadcrumb>\\r\\n </div> -->\\r\\n\\r\\n<app-breadcrumb class=\\\"xs:block hidden\\\" [breadcrumb]=\\\"breadcrumb_\\\"></app-breadcrumb>\\r\\n\\r\\n </div>\\r\\n\\r\\n<div class=\\\"flex items-center gap-2 justify-end flex-wrap\\\">\\r\\n <ng-container *ngIf=\\\"isSingleItemSelected\\\">\\r\\n <ng-container *ngFor=\\\"let btn of singleActionButtons; trackBy: trackByIdx\\\">\\r\\n <lib-generic-button\\r\\n\\r\\n [icon]=\\\"btn.icon\\\"\\r\\n[label]=\\\"btn.label | translate\\\"\\r\\n[variant]=\\\"btn.variant\\\"\\r\\n [size]=\\\"btn.size\\\"\\r\\n [permission]=\\\"btn.permission\\\"\\r\\n (clicked)=\\\"onSingleItemAction(btn)\\\"\\r\\n ></lib-generic-button>\\r\\n</ng-container>\\r\\n </ng-container>\\r\\n\\r\\n <ng-container *ngIf=\\\"selectedItems.length > 0\\\">\\r\\n <ng-container *ngFor=\\\"let btn of bulkActionButtons; trackBy: trackByIdx\\\">\\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 [permission]=\\\"btn.permission\\\"\\r\\n (clicked)=\\\"onInternalBulkAction(btn)\\\"\\r\\n ></lib-generic-button>\\r\\n </ng-container>\\r\\n </ng-container>\\r\\n\\r\\n <ng-container *ngFor=\\\"let btn of addButtonConfigs; trackBy: trackByIdx\\\">\\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 [permission]=\\\"btn.permission\\\"\\r\\n (clicked)=\\\" this.action.emit({ name: btn.actionName ?? 'add', row: null! });\\\"\\r\\n ></lib-generic-button>\\r\\n </ng-container>\\r\\n\\r\\n\\r\\n\\r\\n @if ((showAddButton || splitActions.length > 0)&& addButtonConfigs.length === 0) {\\r\\n\\r\\n @if (showAddButton && splitActions.length === 0) {\\r\\n\\r\\n <!-- <p-button\\r\\n icon=\\\"pi pi-circle-fill text-green-500\\\" *ngIf=\\\"showAddButton && addButtonConfigs.length === 0\\\"\\r\\n [label]=\\\"(addButtonLabel | translate)\\r\\n \\\"(onClick)=\\\"action.emit({ name: 'add', row: null! })\\\"\\r\\n outlined severity=\\\"secondary\\\" /> -->\\r\\n\\r\\n <ui-button\\r\\n [config]=\\\"{\\r\\n type: 'button',\\r\\n label: addButtonLabel| translate,\\r\\n icon: 'pi pi-plus',\\r\\n severity: 'primary',\\r\\n outlined: false,\\r\\n styleClass:''\\r\\n }\\\"\\r\\n (onClick)=\\\"action.emit({ name: 'add', row: null! })\\\">\\r\\n </ui-button>\\r\\n }\\r\\n @else {\\r\\n <!-- Split Button -->\\r\\n <ui-button\\r\\n [config]=\\\"{\\r\\n type: 'split',\\r\\n label: addButtonLabel| translate,\\r\\n icon: 'pi pi-plus',\\r\\n severity: 'primary',\\r\\n loading: false,\\r\\n outlined: false,\\r\\n items: splitActions\\r\\n }\\\"\\r\\n (onClick)=\\\"action.emit({ name: 'add', row: null! })\\\">\\r\\n </ui-button>\\r\\n }\\r\\n\\r\\n\\r\\n }\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n </div>\\r\\n </div>\\r\\n <div class=\\\"mt-2 mb-4 flex items-center justify-between\\\">\\r\\n\\r\\n <ng-container *ngIf=\\\"showSearch && filters; else emptySearch\\\">\\r\\n <lib-generic-search\\r\\n [model]=\\\"filterModel\\\"\\r\\n [fields]=\\\"filters\\\"\\r\\n (search)=\\\"applySearch($event)\\\"\\r\\n (reset)=\\\"applySearch('')\\\"\\r\\n ></lib-generic-search>\\r\\n </ng-container>\\r\\n\\r\\n <ng-template #emptySearch>\\r\\n <!-- Render a dummy div to preserve expected DOM shape -->\\r\\n <!-- <div class=\\\"min-h-[2.5rem] w-[12rem]\\\"></div> -->\\r\\n </ng-template>\\r\\n <!-- style=\\\"direction: ltr;\\\" -->\\r\\n <div class=\\\"flex items-center gap-3\\\">\\r\\n\\r\\n <p-button icon=\\\"pi pi-refresh\\\" outlined severity=\\\"secondary\\\" (onClick)=\\\"applySearch('')\\\" />\\r\\n <p-divider layout=\\\"vertical\\\" class=\\\"m-0 p-0 xs:block hidden\\\" />\\r\\n <p-button icon=\\\"pi pi-sort\\\" outlined severity=\\\"secondary\\\" class=\\\"xs:block hidden\\\" />\\r\\n <p-button label=\\\"1 of 15\\\" outlined severity=\\\"secondary\\\" class=\\\"xs:block hidden\\\" />\\r\\n <p-button icon=\\\"pi pi-chevron-right\\\" outlined severity=\\\"secondary\\\" class=\\\"xs:block hidden\\\" />\\r\\n <p-button icon=\\\"pi pi-chevron-left\\\" outlined severity=\\\"secondary\\\" class=\\\"xs:block hidden\\\" />\\r\\n </div>\\r\\n </div>\\r\\n\\r\\n\\r\\n\\r\\n<lib-generic-table\\r\\n [showAddButton]=\\\"showAddButton\\\"\\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 [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\\r\\n<!-- Drawer -->\\r\\n<p-drawer\\r\\n *ngIf=\\\"(typeof displayMode === 'string' ? displayMode : isEditMode ? displayMode['edit'] : isViewMode === false ? displayMode['add'] : displayMode['view'] ) === 'drawer' && drawerVisible\\\"\\r\\n [(visible)]=\\\"drawerVisible\\\"\\r\\n [closable]=\\\"true\\\"\\r\\n [dismissible]=\\\"false\\\"\\r\\n [closeOnEscape]=\\\"true\\\"\\r\\n (visibleChange)=\\\"visibleChange.emit($event)\\\"\\r\\n styleClass=\\\"!w-full md:!w-80 lg:!w-[40rem]\\\">\\r\\n\\r\\n <ng-template pTemplate=\\\"header\\\">\\r\\n <span class=\\\"font-bold text-lg\\\">\\r\\n {{ isEditMode ? '\\u062A\\u0639\\u062F\\u064A\\u0644' : isViewMode === false ? '\\u0625\\u0636\\u0627\\u0641\\u0629' : '\\u0639\\u0631\\u0636' }}\\r\\n </span>\\r\\n </ng-template>\\r\\n<!-- (ngSubmit)=\\\"onSubmit()\\\" -->\\r\\n <form *ngIf=\\\"form\\\" [formGroup]=\\\"form\\\" class=\\\"p-4\\\">\\r\\n <formly-form [form]=\\\"form\\\" [fields]=\\\"formFields_\\\" [model]=\\\"model\\\" [options]=\\\"options\\\"></formly-form>\\r\\n </form>\\r\\n\\r\\n <ng-template pTemplate=\\\"footer\\\" *ngIf=\\\"!isViewMode\\\">\\r\\n <div class=\\\"flex justify-end gap-2\\\">\\r\\n <button\\r\\n pButton\\r\\n [label]=\\\"isEditMode ? ('UPDATE' | translate) : ('SAVE' | translate)\\\"\\r\\n type=\\\"button\\\"\\r\\n (click)=\\\"onSubmit()\\\"\\r\\n [disabled]=\\\"loading || form.invalid\\\"\\r\\n [loading]=\\\"loading\\\">\\r\\n </button>\\r\\n <button\\r\\n pButton\\r\\n label=\\\"{{ 'CANCEL' | translate }}\\\"\\r\\n severity=\\\"danger\\\"\\r\\n (click)=\\\"visibleChange.emit(false)\\\">\\r\\n </button>\\r\\n </div>\\r\\n </ng-template>\\r\\n</p-drawer>\\r\\n\\r\\n<!-- Dialog -->\\r\\n<p-dialog\\r\\n *ngIf=\\\"(typeof displayMode === 'string' ? displayMode : isEditMode ? displayMode['edit'] : isViewMode === false ? displayMode['add'] : displayMode['view'] ) === 'dialog' && dialogVisible\\\"\\r\\n [(visible)]=\\\"dialogVisible\\\"\\r\\n [modal]=\\\"true\\\"\\r\\n [closable]=\\\"true\\\"\\r\\n [dismissableMask]=\\\"true\\\"\\r\\n [closeOnEscape]=\\\"true\\\"\\r\\n (visibleChange)=\\\"visibleChange.emit($event)\\\"\\r\\n [style]=\\\"{ width: '95vw', maxWidth: dialogMaxWidth }\\\"\\r\\n [header]=\\\"isEditMode ? '\\u062A\\u0639\\u062F\\u064A\\u0644' : isViewMode === false ? '\\u0625\\u0636\\u0627\\u0641\\u0629' : viewHeaderTitle\\\">\\r\\n<!-- [breakpoints]=\\\"{ '1200px': '50vw', '768px': '70vw', '560px': '95vw' }\\\" -->\\r\\n <div class=\\\"relative\\\">\\r\\n <div *ngIf=\\\"isViewMode\\\" class=\\\"absolute inset-0 z-10 bg-white/50 pointer-events-auto rounded-md\\\"></div>\\r\\n <form *ngIf=\\\"form\\\" [formGroup]=\\\"form\\\" class=\\\"p-4\\\">\\r\\n <formly-form [form]=\\\"form\\\" [fields]=\\\"formFields_\\\" [model]=\\\"model\\\" [options]=\\\"options\\\"></formly-form>\\r\\n </form>\\r\\n </div>\\r\\n\\r\\n <ng-template pTemplate=\\\"footer\\\">\\r\\n <div class=\\\"flex justify-end gap-2\\\">\\r\\n <button *ngIf=\\\"!isViewMode\\\"\\r\\n pButton\\r\\n [label]=\\\"isEditMode ? ('UPDATE' | translate) : ('SAVE' | translate)\\\"\\r\\n type=\\\"button\\\"\\r\\n [disabled]=\\\"loading || form.invalid\\\"\\r\\n [loading]=\\\"loading\\\"\\r\\n (click)=\\\"onSubmit()\\\">\\r\\n </button>\\r\\n <button\\r\\n pButton\\r\\n label=\\\"{{ isViewMode ? ('CLOSE' | translate) : ('CANCEL' | translate) }}\\\"\\r\\n severity=\\\"secondary\\\"\\r\\n (click)=\\\"visibleChange.emit(false)\\\">\\r\\n </button>\\r\\n </div>\\r\\n </ng-template>\\r\\n</p-dialog>\\r\\n\\r\\n\\r\\n\\r\\n\" }]\n }], propDecorators: { genericTable: [{\n type: ViewChild,\n args: ['genericTable']\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 }], 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 }], 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 }], idField: [{\n type: Input\n }], showRowSelectionCheckbox: [{\n type: Input\n }], bulkActionButtons: [{\n type: Input\n }], singleActionButtons: [{\n type: Input\n }], showAddButton: [{\n type: Input\n }], splitActions: [{\n type: Input\n }], addButtonIcon: [{\n type: Input\n }], addButtonLabel: [{\n type: Input\n }], addButtonPosition: [{\n type: Input\n }], addButtonConfigs: [{\n type: Input\n }], breadcrumb: [{\n type: Input\n }], beforeSave: [{\n type: Input\n }] } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2VuZXJpYy1jcnVkLXRhYmxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9uZy51aS5jb3JlL2dlbmVyaWMtY3J1ZC10YWJsZS9zcmMvbGliL2dlbmVyaWMtY3J1ZC10YWJsZS50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvbmcudWkuY29yZS9nZW5lcmljLWNydWQtdGFibGUvc3JjL2xpYi9nZW5lcmljLWNydWQtdGFibGUuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFHQSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDaEQsb0VBQW9FO0FBQ3BFLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxZQUFZLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBaUIsTUFBTSxlQUFlLENBQUM7QUFDekcsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNoRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFOUMsT0FBTyxFQUFFLFdBQVcsRUFBc0IsTUFBTyxlQUFlLENBQUM7QUFDakUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFRLGlCQUFpQixDQUFDO0FBQ2xELE9BQU8sRUFBRSxlQUFlLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN4RSxPQUFPLEVBQXFCLFVBQVUsRUFBcUIsTUFBTSxrQkFBa0IsQ0FBQztBQUNwRixPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFFcEQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzlDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM5QyxPQUFPLEVBQUUsV0FBVyxFQUFFLG1CQUFtQixFQUFFLGdCQUFn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O3NCQUFsQixNQUFNO2dCQVFBLFlBQVk7c0JBQXBCLEtBQUs7Z0JBRUksU0FBUztzQkFBakIsS0FBSztnQkFFRSxPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csT0FBTztzQkFBZixLQUFLO2dCQUVJLHdCQUF3QjtzQkFBaEMsS0FBSztnQkFFSSxpQkFBaUI7c0JBQXpCLEtBQUs7Z0JBQ0csbUJBQW1CO3NCQUEzQixLQUFLO2dCQW1CQyxhQUFhO3NCQUFyQixLQUFLO2dCQUNHLFlBQVk7c0JBQXBCLEtBQUs7Z0JBRUcsYUFBYTtzQkFBckIsS0FBSztnQkFFRyxjQUFjO3NCQUF0QixLQUFLO2dCQUVHLGlCQUFpQjtzQkFBekIsS0FBSztnQkFFSSxnQkFBZ0I7c0JBQXhCLEtBQUs7Z0JBRUUsVUFBVTtzQkFBbEIsS0FBSztnQkEwRk0sVUFBVTtzQkFBbEIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlIEBhbmd1bGFyLWVzbGludC9uby1vdXRwdXQtb24tcHJlZml4ICovXHJcbi8qIGVzbGludC1kaXNhYmxlIEBhbmd1bGFyLWVzbGludC9uby1vdXRwdXQtbmF0aXZlICovXHJcbmltcG9ydCB7IEJyZWFkY3J1bWIgfSBmcm9tICdwcmltZW5nL2JyZWFkY3J1bWInO1xyXG5pbXBvcnQgeyBEaXZpZGVyTW9kdWxlIH0gZnJvbSAncHJpbWVuZy9kaXZpZGVyJztcclxuLy8gc3JjL2FwcC9zaGFyZWQvZ2VuZXJpYy1jcnVkLXRhYmxlL2dlbmVyaWMtY3J1ZC10YWJsZS5jb21wb25lbnQudHNcclxuaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCwgT3V0cHV0LCBFdmVudEVtaXR0ZXIsIFZpZXdDaGlsZCwgaW5qZWN0LCBTaW1wbGVDaGFuZ2VzIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7IE1lc3NhZ2VNb2R1bGUgfSBmcm9tICdwcmltZW5nL21lc3NhZ2UnO1xyXG5pbXBvcnQgeyBCdXR0b25Nb2R1bGUgfSBmcm9tICdwcmltZW5nL2J1dHRvbic7XHJcbmltcG9ydCB7IFBhZ2luYXRvclN0YXRlIH0gZnJvbSAncHJpbWVuZy9wYWdpbmF0b3InO1xyXG5pbXBvcnQgeyBUYWJsZU1vZHVsZSxUYWJsZUxhenlMb2FkRXZlbnQgIH0gIGZyb20gJ3ByaW1lbmcvdGFibGUnO1xyXG5pbXBvcnQgeyBUb29sYmFyTW9kdWxlIH0gICBmcm9tICdwcmltZW5nL3Rvb2xiYXInO1xyXG5pbXBvcnQgeyBUcmFuc2xhdGVNb2R1bGUsIFRyYW5zbGF0ZVNlcnZpY2UgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcclxuaW1wb3J0IHsgRm9ybWx5RmllbGRDb25maWcsIEZvcm1seUZvcm0sIEZvcm1seUZvcm1PcHRpb25zIH0gZnJvbSAnQG5neC1mb3JtbHkvY29yZSc7XHJcbmltcG9ydCB7IEljb25GaWVsZE1vZHVsZSB9IGZyb20gJ3ByaW1lbmcvaWNvbmZpZWxkJztcclxuaW1wb3J0IHsgTWVudUl0ZW0gfSBmcm9tICdwcmltZW5nL2FwaSc7XHJcbmltcG9ydCB7IERyYXdlck1vZHVsZSB9IGZyb20gJ3ByaW1lbmcvZHJhd2VyJztcclxuaW1wb3J0IHsgRGlhbG9nTW9kdWxlIH0gZnJvbSAncHJpbWVuZy9kaWFsb2cnO1xyXG5pbXBvcnQgeyBGb3Jtc01vZHVsZSwgUmVhY3RpdmVGb3Jtc01vZHVsZSwgVW50eXBlZEZvcm1Hcm91cCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IEJhc2VTZXJ2aWNlIH0gZnJvbSAnQGVsaXRlLmZyYW1ld29yay9uZy5jb3JlL3NlcnZpY2VzJztcclxuaW1wb3J0IHsgQnV0dG9uQ29uZmlnIH0gZnJvbSAnQGVsaXRlLmZyYW1ld29yay9uZy5jb3JlL21vZGVscyc7XHJcbmltcG9ydCB7IFN3YWxTZXJ2aWNlIH0gZnJvbSAnQGVsaXRlLmZyYW1ld29yay9uZy5jb3JlL3NlcnZpY2VzJztcclxuaW1wb3J0IHsgQWN0aW9uRGVmIH0gZnJvbSAnQGVsaXRlLmZyYW1ld29yay9uZy5jb3JlL21vZGVscyc7XHJcbmltcG9ydCB7IEJyZWFkY3J1bWJDb21wb25lbnQgfSBmcm9tICdAZWxpdGUuZnJhbWV3b3JrL25nLnVpLmNvcmUvYnJlYWRjcnVtYic7XHJcbmltcG9ydCB7IEdlbmVyaWNCdXR0b24gfSBmcm9tICdAZWxpdGUuZnJhbWV3b3JrL25nLnVpLmNvcmUvZ2VuZXJpYy1idXR0b24nO1xyXG5pbXBvcnQgeyBHZW5lcmljVGFibGUgfSBmcm9tICdAZWxpdGUuZnJhbWV3b3JrL25nLnVpLmNvcmUvZ2VuZXJpYy10YWJsZSc7XHJcbmltcG9ydCB7IEdlbmVyaWNTZWFyY2ggfSBmcm9tICdAZWxpdGUuZnJhbWV3b3JrL25nLnVpLmNvcmUvZ2VuZXJpYy1zZWFyY2gnO1xyXG5pbXBvcnQgeyBVaUJ1dHRvbkNvbXBvbmVudCB9IGZyb20gJ0BlbGl0ZS5mcmFtZXdvcmsvbmcudWkuY29yZS91aS1idXR0b24nO1xyXG5cclxuZXhwb3J0IGludGVyZmFjZSBQYWdlQ2hhbmdlUGF5bG9hZCBleHRlbmRzIFBhZ2luYXRvclN0YXRlIHtcclxuc29ydD86IHN0cmluZztcclxuZmlsdGVycz86IFJlY29yZDxzdHJpbmcsIGFueT47XHJcbn1cclxuXHJcbmV4cG9ydCB0eXBlIEFjdGlvbnNNb2RlID0gJ2J1dHRvbnMnIHwgJ21lbnUnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdhcHAtZ2VuZXJpYy1jcnVkLXRhYmxlJyxcclxuICBzdGFuZGFsb25lOiB0cnVlLFxyXG4gIGltcG9ydHM6IFtcclxuICAgIENvbW1vbk1vZHVsZSxcclxuICAgIFRhYmxlTW9kdWxlLFxyXG4gICAgR2VuZXJpY0J1dHRvbixcclxuICAgIEJ1dHRvbk1vZHVsZSxcclxuICAgIEdlbmVyaWNTZWFyY2gsXHJcbiAgICBHZW5lcmljVGFibGUsXHJcbiAgICBUb29sYmFyTW9kdWxlLFxyXG4gICAgVHJhbnNsYXRlTW9kdWxlLFxyXG4gICAgRGl2aWRlck1vZHVsZSxcclxuICAgIEljb25GaWVsZE1vZHVsZSxcclxuICAgIERyYXdlck1vZHVsZSxcclxuICAgIEZvcm1seUZvcm0sXHJcbiAgICBSZWFjdGl2ZUZvcm1zTW9kdWxlLFxyXG4gICAgRm9ybXNNb2R1bGUsXHJcbiAgICBNZXNzYWdlTW9kdWxlLFxyXG4gICAgQnJlYWRjcnVtYkNvbXBvbmVudCxcclxuICAgIERpYWxvZ01vZHVsZSxcclxuICAgIFVpQnV0dG9uQ29tcG9uZW50XHJcbl0sXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2dlbmVyaWMtY3J1ZC10YWJsZS5odG1sJyxcclxuICAgaG9zdDoge1xyXG4gICAgICAgIGNsYXNzOiAnaC1mdWxsIGZsZXgtMSBmbGV4IGZsZXgtY29sIG92ZXJmbG93LWhpZGRlbiBib3JkZXIgYm9yZGVyLXN1cmZhY2Ugcm91bmRlZC0yeGwgeHM6cm91bmRlZC0yeGwgcC00IGJnLXdoaXRlJ1xyXG4gICAgfSxcclxufSlcclxuXHJcbmV4cG9ydCBjbGFzcyBHZW5lcmljQ3J1ZFRhYmxlQ29tcG9uZW50PFQ+IHtcclxuIEBWaWV3Q2hpbGQoJ2dlbmVyaWNUYWJsZScpIGdlbmVyaWNUYWJsZSE6IEdlbmVyaWNUYWJsZTxUPjtcclxuIHRyYW5zbGF0ZTpUcmFuc2xhdGVTZXJ2aWNlID0gaW5qZWN0KFRyYW5zbGF0ZVNlcnZpY2UpO1xyXG4gcHJpdmF0ZSBzd2FsU2VydmljZSA9IGluamVjdChTd2FsU2VydmljZSk7XHJcblxyXG4gICAgaG9tZTogTWVudUl0ZW0gfCB1bmRlZmluZWQgPSB7IGljb246ICdwaSBwaS1ob21lJywgcm91dGVyTGluazogJy8nIH07XHJcbiAgQElucHV0KCkgZGF0YTogVFtdID0gW107XHJcbiAgIGZvcm1GaWVsZHNfOiBGb3JtbHlGaWVsZENvbmZpZ1tdID0gW107ICAvLyA8LS0g2YfZhtinXHJcbiAgQElucHV0KCkgZm9ybUZpZWxkczogRm9ybWx5RmllbGRDb25maWdbXSA9IFtdOyAgLy8gPC0tINmH2YbYp1xyXG4gIEBJbnB1dCgpIGNvbHVtbnM6IEZvcm1seUZpZWxkQ29uZmlnW10gPSBbXTsgIC8vIDwtLSDZh9mG2KdcclxuICBASW5wdXQoKSBkaWFsb2dNYXhXaWR0aCA9ICc0MHJlbSc7IC8vIHVuc2V0ICwgZml0LWNvbnRlbnRcclxuICBASW5wdXQoKSBpc1ZpZXdNb2RlID0gZmFsc2U7XHJcbiAgQElucHV0KCkgZGlzcGxheU1vZGU6XHJcbiAgfCAnZHJhd2VyJyB8ICdkaWFsb2cnIHwgJ3JvdXRlJ1xyXG4gIHwgUGFydGlhbDxSZWNvcmQ8J2FkZCcgfCAnZWRpdCcgfCAndmlldycsICdkcmF3ZXInIHwgJ2RpYWxvZycgfCAncm91dGUnPj5cclxuICA9ICdkcmF3ZXInO1xyXG4gIEBJbnB1dCgpIGlzRWRpdE1vZGUgPSBmYWxzZTtcclxuICBASW5wdXQoKSBkcmF3ZXJWaXNpYmxlID0gZmFsc2U7XHJcbiAgQElucHV0KCkgZGlhbG9nVmlzaWJsZSA9IGZhbHNlO1xyXG4gICBmb3JtID0gbmV3IFVudHlwZWRGb3JtR3JvdXAoe30pO1xyXG4gQElucHV0KCkgbW9kZWw6IGFueTtcclxuICBtb2RlbF86IGFueSA9IHt9O1xyXG4gIEBJbnB1dCgpIGxvYWRpbmcgPSBmYWxzZTtcclxuICBASW5wdXQoKSBlcnJvck1zZyA9ICcnO1xyXG4gIEBJbnB1dCgpIGVycm9yTWVzc2FnZTogc3RyaW5nfGFueSA9ICcnO1xyXG5cclxub3B0aW9uczogRm9ybWx5Rm9ybU9wdGlvbnMgPSB7fTtcclxuXHJcbiAgQElucHV0KCkgYWN0aW9uczogQWN0aW9uRGVmPFQ+W10gPSBbXTtcclxuICAgIC8qKiDYqtit2K/YryDYt9ix2YrZgtipINin2YTYudix2LY6ICdidXR0b25zJyDYo9mIICdtZW51JyAqL1xyXG4gIEBJbnB1dCgpIGFjdGlvbnNNb2RlOiBBY3Rpb25zTW9kZSA9ICdidXR0b25zJztcclxuICBAT3V0cHV0KCkgYWN0aW9uID0gbmV3IEV2ZW50RW1pdHRlcjx7IG5hbWU6IHN0cmluZzsgcm93OiBUIH0+KCk7XHJcbiAgQE91dHB1dCgpIGJ1bGtBY3Rpb24gPSBuZXcgRXZlbnRFbWl0dGVyPHsgbmFtZTogc3RyaW5nOyBpdGVtczogVFtdIH0+KCk7XHJcbiAgQE91dHB1dCgpIHNpbmdsZUFjdGlvbiA9IG5ldyBFdmVudEVtaXR0ZXI8eyBuYW1lOiBzdHJpbmc7IGl0ZW06IFQgfT4oKTtcclxuXHJcbiAgLy8g2KfZhNio2K3Yq1xyXG4vLyBTZWFyY2hcclxuICBASW5wdXQoKSBmaWx0ZXJzOiBhbnk7XHJcbiAgIEBJbnB1dCgpIGZpbHRlck1vZGVsOiBhbnkgPSB7fTtcclxuICBAT3V0cHV0KCkgc2VhcmNoID0gbmV3IEV2ZW50RW1pdHRlcjx7IGZpZWxkOiBzdHJpbmc7IGdsb2JhbDogc3RyaW5nIH0+KCk7XHJcblxyXG4vKiog2YTZhNiq2K3Zg9mFINio2KXYuNmH2KfYsS/Ypdiu2YHYp9ihINmC2LPZhSDYp9mE2KjYrdirICovXHJcbiAgQElucHV0KCkgc2hvd1NlYXJjaCA9IHRydWU7XHJcblxyXG4gIC8qKiBQYWdpbmF0aW9uIElucHV0cyAqL1xyXG4gIEBJbnB1dCgpIGZpcnN0ID0gMDtcclxuICBASW5wdXQoKSByb3dzID0gMTA7XHJcbiAgQElucHV0KCkgdG90YWxSZWNvcmRzID0gMDtcclxuICBAT3V0cHV0KCkgcGFnZUNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8UGFnZUNoYW5nZVBheWxvYWQ+KCk7XHJcbiAgQE91dHB1dCgpIG9uU2VhcmNoID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XHJcblxyXG5AT3V0cHV0KCkgdmlzaWJsZUNoYW5nZTogRXZlbnRFbWl0dGVyPGJvb2xlYW4+ID0gbmV3IEV2ZW50RW1pdHRlcjxib29sZWFuPigpOztcclxuLy8gQE91dHB1dCgpIHZpc2libGVDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPGJvb2xlYW4+KCk7XHJcbnZpZXdIZWFkZXJUaXRsZSA9ICfYudix2LYg2KfZhNiq2YHYp9i12YrZhCc7XHJcbiAgIC8qKiDZhNis2LnZhCDYp9mE2KzYr9mI2YQg2YLYp9io2YQg2YTYp9iu2KrZitin2LEg2KfZhNi12YHZiNmBICjYp9mB2KrYsdin2LbZiiBmYWxzZSkgKi9cclxuICBASW5wdXQoKSByb3dTZWxlY3RhYmxlID0gZmFsc2U7XHJcbiAgLyoqINit2K/YqyDZitiu2LHYrCDYp9mE2LXZgSDYp9mE2YXYrdiv2ZHYryAqL1xyXG4gIEBPdXRwdXQoKSByb3dTZWxlY3QgPSBuZXcgRXZlbnRFbWl0dGVyPFQ+KCk7XHJcblxyXG4gIHNlbGVjdGlvbjogVCB8IG51bGwgPSBudWxsO1xyXG5cclxuIC8vINin2YTZgdix2LJcclxuICBzb3J0RmllbGQ/OiBzdHJpbmc7XHJcbiAgc29ydE9yZGVyOiAxIHwgLTEgPSAxO1xyXG5cclxuQElucHV0KCkgc2Nyb2xsSGVpZ2h0ID0gJzQwMHB4JztcclxuXHJcbiBASW5wdXQoKSBwYWdpbmF0b3IgPSB0cnVlO1xyXG5cclxuQElucHV0KCkgc2VydmljZTogQmFzZVNlcnZpY2V8YW55O1xyXG5ASW5wdXQoKSBpZEZpZWxkID0gJ2lkJztcclxuXHJcbiBASW5wdXQoKSBzaG93Um93U2VsZWN0aW9uQ2hlY2tib3ggPSBmYWxzZTtcclxuXHJcbiAgQElucHV0KCkgYnVsa0FjdGlvbkJ1dHRvbnM6IEJ1dHRvbkNvbmZpZ1tdID0gW107XHJcbiAgQElucHV0KCkgc2luZ2xlQWN0aW9uQnV0dG9uczogQnV0dG9uQ29uZmlnW10gPSBbXTtcclxuXHJcbiBfc2VsZWN0ZWRSb3dzOiBUW10gPSBbXTtcclxuXHJcbmdldCBpc1NpbmdsZUl0ZW1TZWxlY3RlZCgpOiBib29sZWFuIHtcclxuICByZXR1cm4gdGhpcy5fc2VsZWN0ZWRSb3dzLmxlbmd0aCA9PT0gMTtcclxufVxyXG5cclxuZ2V0IGlzTXVsdGlwbGVJdGVtU2VsZWN0ZWQoKTogYm9vbGVhbiB7XHJcbiAgcmV0dXJuIHRoaXMuX3NlbGVjdGVkUm93cy5sZW5ndGggPiAxO1xyXG59XHJcblxyXG5nZXQgc2VsZWN0ZWRJdGVtcygpOiBUW10ge1xyXG4gIHJldHVybiB0aGlzLl9zZWxlY3RlZFJvd3M7XHJcbn1cclxuXHJcblxyXG5cclxuLyoqINmE2YTYqtit2YPZhSDYqNil2LjZh9in2LEg2LLYsSDYp9mE2KXYttin2YHYqSAqL1xyXG5ASW5wdXQoKSBzaG93QWRkQnV0dG9uID0gdHJ1ZTtcclxuQElucHV0KCkgc3BsaXRBY3Rpb25zOiBNZW51SXRlbVtdID0gW107XHJcbi8qKiDYp9mE2KPZitmC2YjZhtipINin2YTYp9mB2KrYsdin2LbZitipINmE2LLYsSDYp9mE2KXYttin2YHYqSAqL1xyXG5ASW5wdXQoKSBhZGRCdXR0b25JY29uID0gJ3BpIHBpLXBsdXMnO1xyXG4vKiog2KfZhNmG2LUg2KfZhNin2YHYqtix2KfYttmKINmE2LLYsSDYp9mE2KXYttin2YHYqSAqL1xyXG5ASW5wdXQoKSBhZGRCdXR0b25MYWJlbCA9ICdBREQnO1xyXG4gIC8qKiDYqtiq2K3Zg9mR2YUg2KjZhdmI2YLYuSDYstixINin2YTYpdi22KfZgdipOiAndG9wJyDYo9mIICdib3R0b20nICovXHJcbkBJbnB1dCgpIGFkZEJ1dHRvblBvc2l0aW9uOiAndG9wJyB8ICdib3R0b20nID0gJ3RvcCc7XHJcblxyXG4gQElucHV0KCkgYWRkQnV0dG9uQ29uZmlnczogQnV0dG9uQ29uZmlnW10gPSBbXTtcclxuXHJcbkBJbnB1dCgpIGJyZWFkY3J1bWI6IE1lbnVJdGVtW10gfCB1bmRlZmluZWQ7XHJcblxyXG5cclxuZ2V0IGJyZWFkY3J1bWJfKCk6IE1lbnVJdGVtW10gfCB1bmRlZmluZWQge1xyXG4gIHJldHVybiB0aGlzLmJyZWFkY3J1bWI/Lm1hcCh2ID0+ICh7XHJcbiAgICAuLi52LFxyXG4gICAgbGFiZWw6IHRoaXMudHJhbnNsYXRlLmluc3RhbnQodi5sYWJlbCA/PyAnJylcclxuICB9KSk7XHJcbn1cclxuZ2V0IHJ0bCgpOiBib29sZWFuIHtcclxuICB0cnkge1xyXG4gICAgcmV0dXJuIGRvY3VtZW50Py5kb2N1bWVudEVsZW1lbnQ/LmRpciA9PT0gJ3J0bCc7XHJcbiAgfSBjYXRjaCAoZXJyb3IpIHtcclxuICAgIHJldHVybiB0cnVlO1xyXG4gIH1cclxufVxyXG4vLyAgcHJpdmF0ZSBkZXN0cm95JCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XHJcbiAvKiog2KfZhNii2YYg2YrYqtmE2YLZkdmJIHBhZ2luYXRpb24gKyBzb3J0INmB2Yog2K3Yr9irINmI2KfYrdivICovXHJcbm9uTGF6eUxvYWQoZXZlbnQ6IFRhYmxlTGF6eUxvYWRFdmVudCkge1xyXG4gIC8vIHRoaXMubW9kZWxfPSB0aGlzLm1vZGVsID8/IHt9O1xyXG4gIHRoaXMubW9kZWw9IHRoaXMubW9kZWwgPz8ge307XHJcblxyXG4gIHRoaXMuZm9ybUZpZWxkc18gPSB0aGlzLmZvcm1GaWVsZHM7XHJcbiAgY29uc3QgZmlyc3QgICAgID0gZXZlbnQuZmlyc3QgID8/IHRoaXMuZmlyc3Q7XHJcbiAgY29uc3Qgcm93cyAgICAgID0gZXZlbnQucm93cyAgID8/IHRoaXMucm93cztcclxuICBjb25zdCBzb3J0RmllbGQgPSB0eXBlb2YgZXZlbnQuc29ydEZpZWxkID09PSAnc3RyaW5nJ1xyXG4gICAgICAgICAgICAgICAgICAgID8gZXZlbnQuc29ydEZpZWxkXHJcbiAgICAgICAgICAgICAgICAgICAgOiB0aGlzLnNvcnRGaWVsZDtcclxuICBjb25zdCBzb3J0T3JkZXIgPSBldmVudC5zb3J0T3JkZXIgPT09IC0xID8gLTEgOiAxO1xyXG5cclxuXHJcbiAgY29uc3QgZmlsdGVyczogUmVjb3JkPHN0cmluZywgYW55PiA9IHt9O1xyXG4gICAgaWYgKGV2ZW50LmZpbHRlcnMpIHtcclxuICAgICAgT2JqZWN0LmVudHJpZXMoZXZlbnQuZmlsdGVycykuZm9yRWFjaCgoW2ZpZWxkLCBtZXRhXSkgPT4ge1xyXG4gICAgICAgIGNvbnN0IHZhbHVlID0gKG1ldGEgYXMgYW55KS52YWx1ZTtcclxuICAgICAgICBpZiAodmFsdWUgIT0gbnVsbCAmJiB2YWx1ZSAhPT0gJycpIHtcclxuICAgICAgICAgIGZpbHRlcnNbZmllbGRdID0gdmFsdWU7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgdGhpcy5maXJzdCAgICAgPSBmaXJzdDtcclxuICB0aGlzLnJvd3MgICAgICA9IHJvd3M7XHJcbiAgdGhpcy5zb3J0RmllbGQgPSBzb3J0RmllbGQ7XHJcbiAgdGhpcy5zb3J0T3JkZXIgPSBzb3J0T3JkZXIgYXMgMXwgLTE7XHJcbmNvbnN0IGRpciA9IHNvcnRPcmRlciA9PT0gMSA/ICdhc2MnIDogJ2Rlc2MnO1xyXG4gY29uc3Qgc29ydCA9IHNvcnRGaWVsZCA/IGAke3NvcnRGaWVsZH0gJHtkaXJ9YCA6IHVuZGVmaW5lZDtcclxuXHJcbiAgdGhpcy5wYWdlQ2hhbmdlLmVtaXQoeyBmaXJzdCwgcm93cyAsc29ydCwgZmlsdGVycyB9KTtcclxuXHJcbiAgLy8g2YrYqNmG2Yog2KfZhNmG2LUg2YjYpdix2LPYp9mE2YdcclxuXHJcbn1cclxuXHJcblxyXG4gIC8qKiDYqti12YrZitixINin2YTYqNmK2KfZhtin2Kog2K3Ys9ioINin2YTYtdmB2K3YqSAqL1xyXG4gIGdldCBwYWdlZERhdGEoKTogVFtdIHtcclxuICAgIC8vIHJldHVybiB0aGlzLmRhdGEgPyB0aGlzLmRhdGEuc2xpY2UodGhpcy5maXJzdCwgdGhpcy5maXJzdCArIHRoaXMucm93cykgOiBbXTtcclxuXHJcbiAgICByZXR1cm4gdGhpcy5kYXRhO1xyXG4gIH1cclxuXHJcblxyXG5cclxuZ2V0IGdsb2JhbEZpbHRlckZpZWxkcygpOiBzdHJpbmdbXSB7XHJcbiAgcmV0dXJuIHRoaXMuY29sdW1ucy5tYXAoYyA9PiBTdHJpbmcoYy5rZXkpKTtcclxufVxyXG5cclxuXHJcblxyXG5cclxuXHJcbiAgLyoqINij2LHYs9mEINil2YTZiSDYp9mE2KPYqCDZhNij2KrZhdiq2Kkg2LTZg9mEINin2YTYqNit2Ksg2KXYsNinINmK2K3Yqtin2KwgKi9cclxuLy8gZnJvbSBnZW5lcmljLWNydWQtdGFibGUuY29tcG9uZW50LnRzXHJcblxyXG4vKiog2KjYr9mR2YQgYXBwbHlTZWFyY2gg2YTYqtio2KsgcGFnZUNoYW5nZSDZhdio2KfYtNix2KnZiyAqL1xyXG4gYXBwbHlTZWFyY2goZmlsdGVyczogYW55KSB7XHJcbiAgICAvLyB0aGlzLmdlbmVyaWNUYWJsZS5hcHBseUZpbHRlcihnbG9iYWwpO1xyXG4gICAgICB0aGlzLm9uU2VhcmNoLmVtaXQoZmlsdGVycyk7XHJcbiAgfVxyXG5cclxuXHJcbiAvKiog2K/Yp9mE2Kkg2KrZhtmB2ZHYsCDYudmG2K8g2KfZhNmG2YLYsSDYudmE2Ykg2LXZgSAqL1xyXG4gIG9uUm93Q2xpY2socm93OiBUKSB7XHJcbiAgICBpZiAodGhpcy5yb3dTZWxlY3RhYmxlKSB7XHJcbiAgICAgIHRoaXMucm93U2VsZWN0LmVtaXQocm93KTtcclxuICAgIH1cclxuICB9XHJcblxyXG5cclxuICAgQElucHV0KCkgYmVmb3JlU2F2ZTogKHJlY29yZDogVCkgPT4gVCA9IChyZWNvcmQpID0+IHJlY29yZDtcclxuXHJcbiAgLy8gb25TdWJtaXQoKSB7XHJcbiAgLy8gICAgIGlmICh0aGlzLmZvcm0uaW52YWxpZCkgcmV0dXJuO1xyXG5cclxuICAvLyAgICAgdGhpcy5sb2FkaW5nID0gdHJ1ZTtcclxuICAvLyAgICAgdGhpcy5lcnJvck1lc3NhZ2UgPSBudWxsO1xyXG5cclxuICAvLyAgICAgY29uc3Qgc2VydmljZSA9IHRoaXMuc2VydmljZSAvKiBhcyBDcnVkU2VydmljZTxUPiAqLztcclxuICAvLyAgICAgY29uc3QgaWQgPSB0aGlzLmlzRWRpdE1vZGUgPyAodGhpcy5tb2RlbCBhcyBhbnkpW3RoaXMuaWRGaWVsZF0gOiBudWxsO1xyXG5cclxuICAvLyAgICAgY29uc3QgcmVjb3JkVG9TYXZlID0gdGhpcy5iZWZvcmVTYXZlKHsgLi4udGhpcy5tb2RlbCB9KTtcclxuXHJcblxyXG4gIC8vICAgICBjb25zdCBvcGVyYXRpb24kOiBPYnNlcnZhYmxlPGFueT4gPSB0aGlzLmlzRWRpdE1vZGVcclxuICAvLyAgICAgICA/IHNlcnZpY2UudXBkYXRlKGlkLCByZWNvcmRUb1NhdmUpXHJcbiAgLy8gICAgICAgOiBzZXJ2aWNlLmNyZWF0ZShyZWNvcmRUb1NhdmUpO1xyXG5cclxuICAvLyAgICAgLy8gb3BlcmF0aW9uJC5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSkuc3Vic2NyaWJlKHtcclxuICAvLyAgICAgb3BlcmF0aW9uJC5zdWJzY3JpYmUoe1xyXG4gIC8vICAgICAgIG5leHQ6ICgpID0+IHtcclxuICAvLyAgICAgICAgIC8vIHRoaXMucmVmLmNsb3NlKHRydWUpOyAvLyDZhtis2KfYrSDYp9mE2LnZhdmE2YrYqVxyXG4gIC8vICAgICAgICAgdGhpcy52aXNpYmxlQ2hhbmdlLmVtaXQoZmFsc2UpXHJcbiAgLy8gICAgICAgICAgIC8vIHRoaXMucGFnZUNoYW5nZS5lbWl0KHsgZmlyc3QsIHJvd3MgLHNvcnQsIGZpbHRlcnMgfSk7XHJcbiAgLy8gICAgICAgICAgIHRoaXMuYXBwbHlTZWFyY2goJycpO1xyXG4gIC8vICAgICAgICAgLy8gdGhpcy5tZVxyXG4gIC8vICAgICAgIH0sXHJcbiAgLy8gICAgICAgZXJyb3I6IChlcnI6YW55KSA9PiB7XHJcbiAgLy8gICAgICAgICB0aGlzLmxvYWRpbmcgPSBmYWxzZTtcclxuXHJcbiAgLy8gICAgICAgICB0aGlzLmVycm9yTWVzc2FnZSA9IGVyci5lcnJvcj8udGl0bGUgfHxcclxuICAvLyAgICAgICAgICAgICAgICAgICAgICAgICAgICBlcnIubWVzc2FnZSB8fFxyXG4gIC8vICAgICAgICAgICAgICAgICAgICAgICAgICAgICfYrdiv2Ksg2K7Yt9ijINij2KvZhtin2KEg2KfZhNit2YHYuC4g2YrYsdis2Ykg2KfZhNmF2K3Yp9mI2YTYqSDZhdix2Kkg2KPYrtix2YkuJztcclxuICAvLyAgICAgICB9XHJcbiAgLy8gICAgIH0pO1xyXG4gIC8vICAgfVxyXG5cclxuICBvblN1Ym1pdCgpIHtcclxuICBpZiAodGhpcy5mb3JtLmludmFsaWQpIHJldHVybjtcclxuXHJcbiAgLy8g4pyFINij2YjZhCDYtNmK2KEg2YbYt9mE2Kgg2KrYo9mD2YrYryDZhdmGINin2YTZhdiz2KrYrtiv2YVcclxuICB0aGlzLnN3YWxTZXJ2aWNlLmNvbmZpcm0oXHJcbiAgICB0aGlzLmlzRWRpdE1vZGUgPyAn2KrYo9mD2YrYryDYp9mE2KrYudiv2YrZhCcgOiAn2KrYo9mD2YrYryDYp9mE2K3Zgdi4JyxcclxuICAgIHRoaXMuaXNFZGl0TW9kZVxyXG4gICAgICA/ICfZh9mEINiq2LHZitivINit2YHYuCDYp9mE2KrYudiv2YrZhNin2Kog2LnZhNmJINmH2LDYpyDYp9mE2LPYrNmE2J8nXHJcbiAgICAgIDogJ9mH2YQg2KrYsdmK2K8g2K3Zgdi4INmH2LDYpyDYp9mE2LPYrNmE2J8nLFxyXG4gICAgJ9mG2LnZhScsXHJcbiAgICAn2KXZhNi62KfYoSdcclxuICApLnRoZW4oKHJlc3VsdCkgPT4ge1xyXG4gICAgaWYgKCFyZXN1bHQuaXNDb25maXJtZWQpIHJldHVybjtcclxuXHJcbiAgICB0aGlzLmxvYWRpbmcgPSB0cnVlO1xyXG4gICAgdGhpcy5lcnJvck1lc3NhZ2UgPSBudWxsO1xyXG5cclxuICAgIGNvbnN0IHNlcnZpY2UgPSB0aGlzLnNlcnZpY2U7XHJcbiAgICBjb25zdCBpZCA9IHRoaXMuaXNFZGl0TW9kZSA/ICh0aGlzLm1vZGVsIGFzIGFueSlbdGhpcy5pZEZpZWxkXSA6IG51bGw7XHJcblxyXG4gICAgY29uc3QgcmVjb3JkVG9TYXZlID0gdGhpcy5iZWZvcmVTYXZlKHsgLi4udGhpcy5tb2RlbCB9KTtcclxuXHJcbiAgICBjb25zdCBvcGVyYXRpb24kOiBPYnNlcnZhYmxlPGFueT4gPSB0aGlzLmlzRWRpdE1vZGVcclxuICAgICAgPyBzZXJ2aWNlLnVwZGF0ZShpZCwgcmVjb3JkVG9TYXZlKVxyXG4gICAgICA6IHNlcnZpY2UuY3JlYXRlKHJlY29yZFRvU2F2ZSk7XHJcblxyXG4gICAgb3BlcmF0aW9uJC5zdWJzY3JpYmUoe1xyXG4gICAgICBuZXh0OiAoKSA9PiB7XHJcbiAgICAgICAgdGhpcy5sb2FkaW5nID0gZmFsc2U7XHJcblxyXG4gICAgICAgIC8vIOKchSDYsdiz2KfZhNipINmG2KzYp9itXHJcbiAgICAgICAgdGhpcy5zd2FsU2VydmljZS5zdWNjZXNzKFxyXG4gICAgICAgICAgdGhpcy5pc0VkaXRNb2RlID8gJ9iq2YUg2KfZhNiq2LnYr9mK2YQg2KjZhtis2KfYrScgOiAn2KrZhSDYp9mE2K3Zgdi4INio2YbYrNin2K0nXHJcbiAgICAgICAgKTtcclxuXHJcbiAgICAgICAgdGhpcy52aXNpYmxlQ2hhbmdlLmVtaXQoZmFsc2UpO1xyXG4gICAgICAgIHRoaXMuYXBwbHlTZWFyY2goJycpO1xyXG4gICAgICB9LFxyXG4gICAgICBlcnJvcjogKGVycjogYW55KSA9PiB7XHJcbiAgICAgICAgdGhpcy5sb2FkaW5nID0gZmFsc2U7XHJcblxyXG4gICAgICAgIGNvbnN0IG1zZyA9XHJcbiAgICAgICAgICBlcnIuZXJyb3I/LnRpdGxlIHx8XHJcbiAgICAgICAgICBlcnIubWVzc2FnZSB8fFxyXG4gICAgICAgICAgJ9it2K/YqyDYrti32KMg2KPYq9mG2KfYoSDYp9mE2K3Zgdi4LiDZitix2KzZiSDYp9mE2YXYrdin2YjZhNipINmF2LHYqSDYo9iu2LHZiS4nO1xyXG5cclxuICAgICAgICB0aGlzLmVycm9yTWVzc2FnZSA9IG1zZztcclxuXHJcbiAgICAgICAgLy8g4p2MINix2LPYp9mE2Kkg2K7Yt9ijXHJcbiAgICAgICAgdGhpcy5zd2FsU2VydmljZS5lcnJvcign2YHYtNmEINin2YTYrdmB2LgnLCBtc2cpO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICB9KTtcclxufVxyXG5cclxuXHJcbiAgICAgdHJhY2tCeUlkeChpbmRleDogbnVtYmVyLCBpdGVtOiBhbnkpOiBudW1iZXIge1xyXG4gIHJldHVybiBpbmRleDtcclxuIH1cclxuXHJcbm9uU2luZ2xlSXRlbUFjdGlvbihidG46IEJ1dHRvbkNvbmZpZyk6IHZvaWQge1xyXG4gIGlmICghdGhpcy5pc1NpbmdsZUl0ZW1TZWxlY3RlZCkgcmV0dXJuO1xyXG5cclxuICBjb25zdCBzZWxlY3RlZEl0ZW0gPSB0aGlzLl9zZWxlY3RlZFJvd3NbMF07XHJcbiAgdGhpcy5zaW5nbGVBY3Rpb24uZW1pdCh7XHJcbiAgICBuYW1lOiBidG4uYWN0aW9uTmFtZSA/PyAnc2luZ2xlQWN0aW9uJyxcclxuICAgIGl0ZW06IHNlbGVjdGVkSXRlbVxyXG4gIH0pO1xyXG59XHJcblxyXG5vbkludGVybmFsQnVsa0FjdGlvbihidG46IEJ1dHRvbkNvbmZpZyk6IHZvaWQge1xyXG4gIGlmICghdGhpcy5pc011bHRpcGxlSXRlbVNlbGVjdGVkKSByZXR1cm47XHJcblxyXG4gIHRoaXMuYnVsa0FjdGlvbi5lbWl0KHtcclxuICAgIG5hbWU6IGJ0bi5hY3Rpb25OYW1lID8/ICdidWxrQWN0aW9uJyxcclxuICAgIGl0ZW1zOiBbLi4udGhpcy5fc2VsZWN0ZWRSb3dzXSAgLy8g2YbYsdiz2YQg2YbYs9iu2Kkg2YXZhiDYp9mE2YXYtdmB2YjZgdipXHJcbiAgfSk7XHJcbn1cclxuXHJcblxyXG59XHJcbiIsIlxyXG4gPGRpdiBjbGFzcz1cImZsZXggaXRlbXMtc3RhcnQgZ2FwLTIganVzdGlmeS1iZXR3ZWVuXCI+XHJcbiAgICAgICAgICAgIDxkaXY+XHJcbiAgICAgICAgICAgICAgIDwhLS0gPGRpdiBjbGFzcz1cInRleHQtMnhsIGxlYWRpbmctOCBmb250LW1lZGl1bSBiZy1zbGF0ZS04MDAgcC00IHJvdW5kZWQtbWRcIj5cclxuICAgICAgICAgICAgPHAtYnJlYWRjcnVtYlxyXG4gICAgICAgICAgICAgIFttb2RlbF09XCJicmVhZGNydW1iX1wiXHJcbiAgICAgICAgICAgICAgW2hvbWVdPVwiaG9tZVwiXHJcbiAgICAgICAgICAgICAgc3R5bGVDbGFzcz1cImN1c3RvbS1icmVhZGNydW1iXCJcclxuICAgICAgICAgICAgPjwvcC1icmVhZGNydW1iPlxyXG4gICAgICAgICAgPC9kaXY+IC0tPlxyXG5cclxuPGFwcC1icmVhZGNydW1iIGNsYXNzPVwieHM6YmxvY2sgaGlkZGVuXCIgW2JyZWFkY3J1bWJdPVwiYnJlYWRjcnVtYl9cIj48L2FwcC1icmVhZGNydW1iPlxyXG5cclxuICAgICAgICAgICAgPC9kaXY+XHJcblxyXG48ZGl2IGNsYXNzPVwiZmxleCBpdGVtcy1jZW50ZXIgZ2FwLTIganVzdGlmeS1lbmQgZmxleC13cmFwXCI+XHJcbiAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiaXNTaW5nbGVJdGVtU2VsZWN0ZWRcIj5cclxuIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGJ0biBvZiBzaW5nbGVBY3Rpb25CdXR0b25zOyB0cmFja0J5OiB0cmFja0J5SWR4XCI+XHJcbiA8bGliLWdlbmVyaWMtYnV0dG9uXHJcblxyXG4gIFtpY29uXT1cImJ0bi5pY29uXCJcclxuW2xhYmVsXT1cImJ0bi5sYWJlbCB8IHRyYW5zbGF0ZVwiXHJcblt2YXJpYW50XT1cImJ0bi52YXJpYW50XCJcclxuIFtzaXplXT1cImJ0bi5zaXplXCJcclxuIFtwZXJtaXNzaW9uXT1cImJ0bi5wZXJtaXNzaW9uXCJcclxuIChjbGlja2VkKT1cIm9uU2luZ2xlSXRlbUFjdGlvbihidG4pXCJcclxuID48L2xpYi1nZW5lcmljLWJ1dHRvbj5cclxuPC9uZy1jb250YWluZXI+XHJcbiA8L25nLWNvbnRhaW5lcj5cclxuXHJcbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwic2VsZWN0ZWRJdGVtcy5sZW5ndGggPiAwXCI+XHJcbiAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGJ0biBvZiBidWxrQWN0aW9uQnV0dG9uczsgdHJhY2tCeTogdHJhY2tCeUlkeFwiPlxyXG4gICAgICAgIDxsaWItZ2VuZXJpYy1idXR0b25cclxuICAgICAgICAgIFtpY29uXT1cImJ0bi5pY29uXCJcclxuICAgICAgICAgIFtsYWJlbF09XCJidG4ubGFiZWwgfCB0cmFuc2xhdGVcIlxyXG4gICAgICAgICAgW3ZhcmlhbnRdPVwiYnRuLnZhcmlhbnRcIlxyXG4gICAgICAgICAgW3NpemVdPVwiYnRuLnNpemVcIlxyXG4gICAgICAgICAgW3Blcm1pc3Npb25dPVwiYnRuLnBlcm1pc3Npb25cIlxyXG4gICAgICAgICAgKGNsaWNrZWQpPVwib25JbnRlcm5hbEJ1bGtBY3Rpb24oYnRuKVwiXHJcbiAgICAgICAgPjwvbGliLWdlbmVyaWMtYnV0dG9uPlxyXG4gICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgIDwvbmctY29udGFpbmVyPlxyXG5cclxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgYnRuIG9mIGFkZEJ1dHRvbkNvbmZpZ3M7IHRyYWNrQnk6IHRyYWNrQnlJZHhcIj5cclxuICAgICAgPGxpYi1nZW5lcmljLWJ1dHRvblxyXG4gICAgICAgIFtpY29uXT1cImJ0bi5pY29uXCJcclxuICAgICAgICBbbGFiZWxdPVwiYnRuLmxhYmVsIHwgdHJhbnNsYXRlXCJcclxuICAgICAgICBbdmFyaWFudF09XCJidG4udmFyaWFudFwiXHJcbiAgICAgICAgW3NpemVdPVwiYnRuLnNpemVcIlxyXG4gICAgICAgIFtwZXJtaXNzaW9uXT1cImJ0bi5wZXJtaXNzaW9uXCJcclxuICAgICAgICAoY2xpY2tlZCk9XCIgdGhpcy5hY3Rpb24uZW1pdCh7IG5hbWU6IGJ0bi5hY3Rpb25OYW1lID8/ICdhZGQnLCByb3c6IG51bGwhIH0pO1wiXHJcbiAgICAgID48L2xpYi1nZW5lcmljLWJ1dHRvbj5cclxuICAgIDwvbmctY29udGFpbmVyPlxyXG5cclxuXHJcblxyXG4gICAgICAgICAgICBAaWYgKChzaG93QWRkQnV0dG9uIHx8IHNwbGl0QWN0aW9ucy5sZW5ndGggPiAwKSYmIGFkZEJ1dHRvbkNvbmZpZ3MubGVuZ3RoID09PSAwKSB7XHJcblxyXG4gICAgICAgICAgICAgIEBpZiAoc2hvd0FkZEJ1dHRvbiAmJiBzcGxpdEFjdGlvbnMubGVuZ3RoICA9PT0gMCkge1xyXG5cclxuICAgICAgICAgICAgICAgICA8IS0tIDxwLWJ1dHRvblxyXG4gICAgICAgICAgICBpY29uPVwicGkgcGktY2lyY2xlLWZpbGwgdGV4dC1ncmVlbi01MDBcIiAqbmdJZj1cInNob3dBZGRCdXR0b24gJiYgYWRkQnV0dG9uQ29uZmlncy5sZW5ndGggPT09IDBcIlxyXG4gICAgICAgICAgICBbbGFiZWxdPVwiKGFkZEJ1dHRvbkxhYmVsIHwgdHJhbnNsYXRlKVxyXG4gICAgICAgICAgICBcIihvbkNsaWNrKT1cImFjdGlvbi5lbWl0KHsgbmFtZTogJ2FkZCcsIHJvdzogbnVsbCEgfSlcIlxyXG4gICAgICAgICAgICBvdXRsaW5lZCBzZXZlcml0eT1cInNlY29uZGFyeVwiIC8+IC0tPlxyXG5cclxuICAgICAgICAgICAgICAgIDx1aS1idXR0b25cclxuICAgICAgICAgICAgICAgICAgW2NvbmZpZ109XCJ7XHJcbiAgICAgICAgICAgICAgICAgICAgdHlwZTogJ2J1dHRvbicsXHJcbiAgICAgICAgICAgICAgICAgICAgbGFiZWw6IGFkZEJ1dHRvbkxhYmVsfCB0cmFuc2xhdGUsXHJcbiAgICAgICAgICAgICAgICAgICAgaWNvbjogJ3BpIHBpLXBsdXMnLFxyXG4gICAgICAgICAgICAgICAgICAgIHNldmVyaXR5OiAncHJpbWFyeScsXHJcbiAgICAgICAgICAgICAgICAgICAgb3V0bGluZWQ6IGZhbHNlLFxyXG4gICAgICAgICAgICAgICAgICAgIHN0eWxlQ2xhc3M6JydcclxuICAgICAgICAgICAgICAgICAgfVwiXHJcbiAgICAgICAgICAgICAgICAgIChvbkNsaWNrKT1cImFjdGlvbi5lbWl0KHsgbmFtZTogJ2FkZCcsIHJvdzogbnVsbCEgfSlcIj5cclxuICAgICAgICAgICAgICAgIDwvdWktYnV0dG9uPlxyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICBAZWxzZSB7XHJcbiAgICAgICAgICAgICAgIDwhLS0gU3BsaXQgQnV0dG9uIC0tPlxyXG4gICAgICAgICAgICAgICAgICA8dWktYnV0dG9uXHJcbiAgICAgICAgICAgICAgICAgICAgW2NvbmZpZ109XCJ7XHJcbiAgICAgICAgICAgICAgICAgICAgICB0eXBlOiAnc3BsaXQnLFxyXG4gICAgICAgICAgICAgICAgICAgICAgbGFiZWw6IGFkZEJ1dHRvbkxhYmVsfCB0cmFuc2xhdGUsXHJcbiAgICAgICAgICAgICAgICAgICAgICBpY29uOiAncGkgcGktcGx1cycsXHJcbiAgICAgICAgICAgICAgICAgICAgICBzZXZlcml0eTogJ3ByaW1hcnknLFxyXG4gICAgICAgICAgICAgICAgICAgICAgbG9hZGluZzogZmFsc2UsXHJcbiAgICAgICAgICAgICAgICAgICAgICBvdXRsaW5lZDogZmFsc2UsXHJcbiAgICAgICAgICAgICAgICAgICAgICBpdGVtczogc3BsaXRBY3Rpb25zXHJcbiAgICAgICAgICAgICAgICAgICAgfVwiXHJcbiAgICAgICAgICAgICAgICAgICAgKG9uQ2xpY2spPVwiYWN0aW9uLmVtaXQoeyBuYW1lOiAnYWRkJywgcm93OiBudWxsISB9KVwiPlxyXG4gICAgICAgICAgICAgICAgICA8L3VpLWJ1dHRvbj5cclxuICAgICAgICAgICAgICB9XHJcblxyXG5cclxuICAgICAgICAgICAgfVxyXG5cclxuXHJcblxyXG5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cIm10LTIgbWItNCBmbGV4IGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWJldHdlZW5cIj5cclxuXHJcbiAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwic2hvd1NlYXJjaCAmJiBmaWx0ZXJzOyBlbHNlIGVtcHR5U2VhcmNoXCI+XHJcbiAgICAgICAgICAgPGxpYi1nZW5lcmljLXNlYXJjaFxyXG4gICAgICAgICAgICAgICAgW21vZGVsXT1cImZpbHRlck1vZGVsXCJcclxuICAgICAgICAgICAgICAgIFtmaWVsZHNdPVwiZmlsdGVyc1wiXHJcbiAgICAgICAgICAgICAgICAoc2VhcmNoKT1cImFwcGx5U2VhcmNoKCRldmVudClcIlxyXG4gICAgICAgICAgICAgICAgKHJlc2V0KT1cImFwcGx5U2VhcmNoKCcnKVwiXHJcbiAgICAgICAgICAgICAgPjwvbGliLWdlbmVyaWMtc2VhcmNoPlxyXG4gICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcblxyXG4gICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjZW1wdHlTZWFyY2g+XHJcbiAgICA8IS0tIFJlbmRlciBhIGR1bW15IGRpdiB0byBwcmVzZXJ2ZSBleHBlY3RlZCBET00gc2hhcGUgLS0+XHJcbiAgICA8IS0tIDxkaXYgY2xhc3M9XCJtaW4taC1bMi41cmVtXSB3LVsxMnJlbV1cIj48L2Rpdj4gLS0+XHJcbiAgPC9uZy10ZW1wbGF0ZT5cclxuICAgIDwhLS0gc3R5bGU9XCJkaXJlY3Rpb246IGx0cjtcIiAtLT5cclxuICAgICAgICAgICAgPGRpdiAgY2xhc3M9XCJmbGV4IGl0ZW1zLWNlbnRlciBnYXAtM1wiPlxyXG5cclxuICAgICAgICAgICAgICA8cC1idXR0b24gaWNvbj1cInBpIHBpLXJlZnJlc2hcIiBvdXRsaW5lZCBzZXZlcml0eT1cInNlY29uZGFyeVwiIChvbkNsaWNrKT1cImFwcGx5U2VhcmNoKCcnKVwiIC8+XHJcbiAgICAgICAgICAgICAgPHAtZGl2aWRlciBsYXlvdXQ9XCJ2ZXJ0aWNhbFwiICBjbGFzcz1cIm0tMCBwLTAgeHM6YmxvY2sgaGlkZGVuXCIgLz5cclxuICAgICAgICAgICAgICA8cC1idXR0b24gaWNvbj1cInBpIHBpLXNvcnRcIiBvdXRsaW5lZCBzZXZlcml0eT1cInNlY29uZGFyeVwiIGNsYXNzPVwieHM6YmxvY2sgaGlkZGVuXCIgLz5cclxuICAgICAgICAgICAgICAgIDxwLWJ1dHRvbiBsYWJlbD1cIjEgb2YgMTVcIiBvdXRsaW5lZCBzZXZlcml0eT1cInNlY29uZGFyeVwiIGNsYXNzPVwieHM6YmxvY2sgaGlkZGVuXCIgIC8+XHJcbiAgICAgICAgICAgICAgICA8cC1idXR0b24gaWNvbj1cInBpIHBpLWNoZXZyb24tcmlnaHRcIiBvdXRsaW5lZCBzZXZlcml0eT1cInNlY29uZGFyeVwiIGNsYXNzPVwieHM6YmxvY2sgaGlkZGVuXCIgIC8+XHJcbiAgICAgICAgICAgICAgICA8cC1idXR0b24gaWNvbj1cInBpIHBpLWNoZXZyb24tbGVmdFwiIG91dGxpbmVkIHNldmVyaXR5PVwic2Vjb25kYXJ5XCIgY2xhc3M9XCJ4czpibG9jayBoaWRkZW5cIiAvPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuXHJcblxyXG5cclxuPGxpYi1nZW5lcmljLXRhYmxlXHJcbiAgW3Nob3dBZGRCdXR0b25dPVwic2hvd0FkZEJ1dHRvblwiXHJcbiAgW2RhdGFdPVwiZGF0YVwiXHJcbiAgW2NvbHVtbnNdPVwiY29sdW1uc1wiXHJcbiAgW3BhZ2luYXRvcl09XCJwYWdpbmF0b3JcIlxyXG4gIFtsb2FkaW5nXT1cImxvYWRpbmdcIlxyXG4gIFthY3Rpb25zXT1cImFjdGlvbnNcIlxyXG4gIFthY3Rpb25zTW9kZV09XCJhY3Rpb25zTW9kZVwiXHJcbiAgW2ZpcnN0XT1cImZpcnN0XCJcclxuICBbcm93c109XCJyb3dzXCJcclxuICBbdG90YWxSZWNvcmRzXT1cInRvdGFsUmVjb3Jkc1wiXHJcbiAgW3NvcnRGaWVsZF09XCJzb3J0RmllbGRcIlxyXG4gIFtzb3J0T3JkZXJdPVwic29ydE9yZGVyXCJcclxuICBbZ2xvYmFsRmlsdGVyRmllbGRzXT1cImdsb2JhbEZpbHRlckZpZWxkc1wiXHJcbiAgW3Njcm9sbEhlaWdodF09XCJzY3JvbGxIZWlnaHRcIlxyXG4gIFtzaG93Um93U2VsZWN0aW9uQ2hlY2tib3hdPVwic2hvd1Jvd1NlbGVjdGlvbkNoZWNrYm94XCJcclxuICAoYWN0aW9uKT1cImFjdGlvbi5lbWl0KCRldmVudClcIlxyXG4gIChvbkFkZE5ldyk9XCJhY3Rpb24uZW1pdCh7IG5hbWU6ICdhZGQnLCByb3c6IG51bGwhIH0pXCJcclxuICAocGFnZUNoYW5nZSk9XCJvbkxhenlMb2FkKCRldmVudClcIlxyXG4gIFtyb3dTZWxlY3RhYmxlXT1cInJvd1NlbGVjdGFibGVcIlxyXG4gIChyb3dTZWxlY3QpPVwib25Sb3dDbGljaygkZXZlbnQpXCJcclxuICBbKHNlbGVjdGlvbildPVwiX3NlbGVjdGVkUm93c1wiXHJcbiAgI2dlbmVyaWNUYWJsZVxyXG4+PC9saWItZ2VuZXJpYy10YWJsZT5cclxuXHJcblxyXG5cclxuXHJcbjwhLS0gRHJhd2VyIC0tPlxyXG48cC1kcmF3ZXJcclxuICAqbmdJZj1cIih0eXBlb2YgZGlzcGxheU1vZGUgPT09ICdzdHJpbmcnID8gZGlzcGxheU1vZGUgOiBpc0VkaXRNb2RlID8gZGlzcGxheU1vZGVbJ2VkaXQnXSA6IGlzVmlld01vZGUgPT09IGZhbHNlID8gZGlzcGxheU1vZGVbJ2FkZCddIDogZGlzcGxheU1vZGVbJ3ZpZXcnXSAgKSA9PT0gJ2RyYXdlcicgJiYgZHJhd2VyVmlzaWJsZVwiXHJcbiAgWyh2aXNpYmxlKV09XCJkcmF3ZXJWaXNpYmxlXCJcclxuICBbY2xvc2FibGVdPVwidHJ1ZVwiXHJcbiAgW2Rpc21pc3NpYmxlXT1cImZhbHNlXCJcclxuICBbY2xvc2VPbkVzY2FwZV09XCJ0cnVlXCJcclxuICAodmlzaWJsZUNoYW5nZSk9XCJ2aXNpYmxlQ2hhbmdlLmVtaXQoJGV2ZW50KVwiXHJcbiAgc3R5bGVDbGFzcz1cIiF3LWZ1bGwgbWQ6IXctODAgbGc6IXctWzQwcmVtXVwiPlxyXG5cclxuICA8bmctdGVtcGxhdGUgcFRlbXBsYXRlPVwiaGVhZGVyXCI+XHJcbiAgICA8c3BhbiBjbGFzcz1cImZvbnQtYm9sZCB0ZXh0LWxnXCI+XHJcbiAgICAgIHt7IGlzRWRpdE1vZGUgPyAn2KrYudiv2YrZhCcgOiBpc1ZpZXdNb2RlID09PSBmYWxzZSA/ICfYpdi22KfZgdipJyA6ICfYudix2LYnIH19XHJcbiAgICA8L3NwYW4+XHJcbiAgPC9uZy10ZW1wbGF0ZT5cclxuPCEtLSAobmdTdWJtaXQpPVwib25TdWJtaXQoKVwiIC0tPlxyXG4gIDxmb3JtICpuZ0lmPVwiZm9ybVwiIFtmb3JtR3JvdXBdPVwiZm9ybVwiICBjbGFzcz1cInAtNFwiPlxyXG4gICAgPGZvcm1seS1mb3JtIFtmb3JtXT1cImZvcm1cIiBbZmllbGRzXT1cImZvcm1GaWVsZHNfXCIgW21vZGVsXT1cIm1vZGVsXCIgW29wdGlvbnNdPVwib3B0aW9uc1wiPjwvZm9ybWx5LWZvcm0+XHJcbiAgPC9mb3JtPlxyXG5cclxuICA8bmctdGVtcGxhdGUgcFRlbXBsYXRlPVwiZm9vdGVyXCIgKm5nSWY9XCIhaXNWaWV3TW9kZVwiPlxyXG4gICAgPGRpdiBjbGFzcz1cImZsZXgganVzdGlmeS1lbmQgZ2FwLTJcIj5cclxuICAgICAgPGJ1dHRvblxyXG4gICAgICAgIHBCdXR0b25cclxuICAgICAgICBbbGFiZWxdPVwiaXNFZGl0TW9kZSA/ICgnVVBEQVRFJyB8IHRyYW5zbGF0ZSkgOiAoJ1NBVkUnIHwgdHJhbnNsYXRlKVwiXHJcbiAgICAgICAgdHlwZT1cImJ1dHRvblwiXHJcbiAgICAgICAgKGNsaWNrKT1cIm9uU3VibWl0KClcIlxyXG4gICAgICAgIFtkaXNhYmxlZF09XCJsb2FkaW5nIHx8IGZvcm0uaW52YWxpZFwiXHJcbiAgICAgICAgW2xvYWRpbmddPVwibG9hZGluZ1wiPlxyXG4gICAgICA8L2J1dHRvbj5cclxuICAgICAgPGJ1dHRvblxyXG4gICAgICAgIHBCdXR0b25cclxuICAgICAgICBsYWJlbD1cInt7ICdDQU5DRUwnIHwgdHJhbnNsYXRlIH19XCJcclxuICAgICAgICBzZXZlcml0eT1cImRhbmdlclwiXHJcbiAgICAgICAgKGNsaWNrKT1cInZpc2libGVDaGFuZ2UuZW1pdChmYWxzZSlcIj5cclxuICAgICAgPC9idXR0b24+XHJcbiAgICA8L2Rpdj5cclxuICA8L25nLXRlbXBsYXRlPlxyXG48L3AtZHJhd2VyPlxyXG5cclxuPCEtLSBEaWFsb2cgLS0+XHJcbjxwLWRpYWxvZ1xyXG4gICpuZ0lmPVwiKHR5cGVvZiBkaXNwbGF5TW9kZSA9PT0gJ3N0cmluZycgPyBkaXNwbGF5TW9kZSA6IGlzRWRpdE1vZGUgPyBkaXNwbGF5TW9kZVsnZWRpdCddIDogaXNWaWV3TW9kZSA9PT0gZmFsc2UgPyBkaXNwbGF5TW9kZVsnYWRkJ10gOiBkaXNwbGF5TW9kZVsndmlldyddICApID09PSAnZGlhbG9nJyAmJiBkaWFsb2dWaXNpYmxlXCJcclxuICBbKHZpc2libGUpXT1cImRpYWxvZ1Zpc2libGVcIlxyXG4gIFttb2RhbF09XCJ0cnVlXCJcclxuICBbY2xvc2FibGVdPVwidHJ1ZVwiXHJcbiAgW2Rpc21pc3NhYmxlTWFza109XCJ0cnVlXCJcclxuICBbY2xvc2VPbkVzY2FwZV09XCJ0cnVlXCJcclxuICAodmlzaWJsZUNoYW5nZSk9XCJ2aXNpYmxlQ2hhbmdlLmVtaXQoJGV2ZW50KVwiXHJcbiAgW3N0eWxlXT1cInsgd2lkdGg6ICc5NXZ3JywgbWF4V2lkdGg6IGRpYWxvZ01heFdpZHRoIH1cIlxyXG4gIFtoZWFkZXJdPVwiaXNFZGl0TW9kZSA/ICfYqti52K/ZitmEJyA6IGlzVmlld01vZGUgPT09IGZhbHNlID8gJ9il2LbYp9mB2KknIDogdmlld0hlYWRlclRpdGxlXCI+XHJcbjwhLS0gW2JyZWFrcG9pbnRzXT1cInsgJzEyMDBweCc6ICc1MHZ3JywgJzc2OHB4JzogJzcwdncnLCAnNTYwcHgnOiAnOTV2dycgfVwiIC0tPlxyXG4gIDxkaXYgY2xhc3M9XCJyZWxhdGl2ZVwiPlxyXG4gICAgPGRpdiAqbmdJZj1cImlzVmlld01vZGVcIiBjbGFzcz1cImFic29sdXRlIGluc2V0LTAgei0xMCBiZy13aGl0ZS81MCBwb2ludGVyLWV2ZW50cy1hdXRvIHJvdW5kZWQtbWRcIj48L2Rpdj5cclxuICAgIDxmb3JtICpuZ0lmPVwiZm9ybVwiIFtmb3JtR3JvdXBdPVwiZm9ybVwiIGNsYXNzPVwicC00XCI+XHJcbiAgICAgIDxmb3JtbHktZm9ybSBbZm9ybV09XCJmb3JtXCIgW2ZpZWxkc109XCJmb3JtRmllbGRzX1wiIFttb2RlbF09XCJtb2RlbFwiIFtvcHRpb25zXT1cIm9wdGlvbnNcIj48L2Zvcm1seS1mb3JtPlxyXG4gICAgPC9mb3JtPlxyXG4gIDwvZGl2PlxyXG5cclxuICA8bmctdGVtcGxhdGUgcFRlbXBsYXRlPVwiZm9vdGVyXCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwiZmxleCBqdXN0aWZ5LWVuZCBnYXAtMlwiPlxyXG4gICAgICA8YnV0dG9uICpuZ0lmPVwiIWlzVmlld01vZGVcIlxyXG4gICAgICAgIHBCdXR0b25cclxuICAgICAgICBbbGFiZWxdPVwiaXNFZGl0TW9kZSA/ICgnVVBEQVRFJyB8IHRyYW5zbGF0ZSkgOiAoJ1NBVkUnIHwgdHJhbnNsYXRlKVwiXHJcbiAgICAgICAgdHlwZT1cImJ1dHRvblwiXHJcbiAgICAgICAgW2Rpc2FibGVkXT1cImxvYWRpbmcgfHwgZm9ybS5pbnZhbGlkXCJcclxuICAgICAgICBbbG9hZGluZ109XCJsb2FkaW5nXCJcclxuICAgICAgICAoY2xpY2spPVwib25TdWJtaXQoKVwiPlxyXG4gICAgICA8L2J1dHRvbj5cclxuICAgICAgPGJ1dHRvblxyXG4gICAgICAgIHBCdXR0b25cclxuICAgICAgICBsYWJlbD1cInt7IGlzVmlld01vZGUgPyAoJ0NMT1NFJyB8IHRyYW5zbGF0ZSkgOiAoJ0NBTkNFTCcgfCB0cmFuc2xhdGUpIH19XCJcclxuICAgICAgICBzZXZlcml0eT1cInNlY29uZGFyeVwiXHJcbiAgICAgICAgKGNsaWNrKT1cInZpc2libGVDaGFuZ2UuZW1pdChmYWxzZSlcIj5cclxuICAgICAgPC9idXR0b24+XHJcbiAgICA8L2Rpdj5cclxuICA8L25nLXRlbXBsYXRlPlxyXG48L3AtZGlhbG9nPlxyXG5cclxuXHJcblxyXG4iXX0=","/**\n * Generated bundle index. Do not edit.\n */\nexport * from './index';\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWxpdGUuZnJhbWV3b3JrLW5nLnVpLmNvcmUtZ2VuZXJpYy1jcnVkLXRhYmxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGlicy9uZy51aS5jb3JlL2dlbmVyaWMtY3J1ZC10YWJsZS9zcmMvZWxpdGUuZnJhbWV3b3JrLW5nLnVpLmNvcmUtZ2VuZXJpYy1jcnVkLXRhYmxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsY0FBYyxTQUFTLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEdlbmVyYXRlZCBidW5kbGUgaW5kZXguIERvIG5vdCBlZGl0LlxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vaW5kZXgnO1xuIl19"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAIO,MAAM,sBAAsB,CAAC;AACpC,IAAI,OAAO,IAAI,GAAG,EAAE,CAAC,kBAAkB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,sBAAsB,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,CAAC,eAAe,CAAC,QAAQ,EAAE,CAAC;AAC/K,IAAI,OAAO,IAAI,GAAG,EAAE,CAAC,mBAAmB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,sBAAsB,EAAE,OAAO,EAAE,CAAC,YAAY,EAAE,mBAAmB,CAAC,EAAE,CAAC;AAC/K,IAAI,OAAO,IAAI,GAAG,EAAE,CAAC,mBAAmB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,sBAAsB,EAAE,OAAO,EAAE,CAAC,YAAY,EAAE,mBAAmB,CAAC,EAAE,CAAC;AAC/K;AACA,EAAE,CAAC,wBAAwB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,sBAAsB,EAAE,UAAU,EAAE,CAAC;AAChI,YAAY,IAAI,EAAE,QAAQ;AAC1B,YAAY,IAAI,EAAE,CAAC;AACnB,oBAAoB,OAAO,EAAE,CAAC,YAAY,EAAE,mBAAmB,CAAC;AAChE,iBAAiB;AACjB,SAAS,CAAC,EAAE,CAAC;;ACeN,MAAM,yBAAyB,CAAC;AACvC,IAAI,YAAY;AAChB,IAAI,SAAS,GAAG,MAAM,CAAC,gBAAgB,CAAC;AACxC,IAAI,WAAW,GAAG,MAAM,CAAC,WAAW,CAAC;AACrC,IAAI,IAAI,GAAG,EAAE,IAAI,EAAE,YAAY,EAAE,UAAU,EAAE,GAAG,EAAE;AAClD,IAAI,IAAI,GAAG,EAAE;AACb,IAAI,WAAW,GAAG,EAAE,CAAC;AACrB,IAAI,UAAU,GAAG,EAAE,CAAC;AACpB,IAAI,OAAO,GAAG,EAAE,CAAC;AACjB,IAAI,cAAc,GAAG,OAAO,CAAC;AAC7B,IAAI,UAAU,GAAG,KAAK;AACtB,IAAI,WAAW,GAAG,QAAQ;AAC1B,IAAI,UAAU,GAAG,KAAK;AACtB,IAAI,aAAa,GAAG,KAAK;AACzB,IAAI,aAAa,GAAG,KAAK;AACzB,IAAI,IAAI,GAAG,IAAI,gBAAgB,CAAC,EAAE,CAAC;AACnC,IAAI,KAAK;AACT,IAAI,MAAM,GAAG,EAAE;AACf,IAAI,OAAO,GAAG,KAAK;AACnB,IAAI,QAAQ,GAAG,EAAE;AACjB,IAAI,YAAY,GAAG,EAAE;AACrB,IAAI,OAAO,GAAG,EAAE;AAChB,IAAI,OAAO,GAAG,EAAE;AAChB;AACA,IAAI,WAAW,GAAG,SAAS;AAC3B,IAAI,MAAM,GAAG,IAAI,YAAY,EAAE;AAC/B,IAAI,UAAU,GAAG,IAAI,YAAY,EAAE;AACnC,IAAI,YAAY,GAAG,IAAI,YAAY,EAAE;AACrC;AACA;AACA,IAAI,OAAO;AACX,IAAI,WAAW,GAAG,EAAE;AACpB,IAAI,MAAM,GAAG,IAAI,YAAY,EAAE;AAC/B;AACA,IAAI,UAAU,GAAG,IAAI;AACrB;AACA,IAAI,KAAK,GAAG,CAAC;AACb,IAAI,IAAI,GAAG,EAAE;AACb,IAAI,YAAY,GAAG,CAAC;AACpB,IAAI,UAAU,GAAG,IAAI,YAAY,EAAE;AACnC,IAAI,QAAQ,GAAG,IAAI,YAAY,EAAE;AACjC,IAAI,aAAa,GAAG,IAAI,YAAY,EAAE;AACtC;AACA;AACA,IAAI,eAAe,GAAG,cAAc;AACpC;AACA,IAAI,aAAa,GAAG,KAAK;AACzB;AACA,IAAI,SAAS,GAAG,IAAI,YAAY,EAAE;AAClC,IAAI,SAAS,GAAG,IAAI;AACpB;AACA,IAAI,SAAS;AACb,IAAI,SAAS,GAAG,CAAC;AACjB,IAAI,YAAY,GAAG,OAAO;AAC1B,IAAI,SAAS,GAAG,IAAI;AACpB,IAAI,OAAO;AACX,IAAI,OAAO,GAAG,IAAI;AAClB,IAAI,wBAAwB,GAAG,KAAK;AACpC,IAAI,iBAAiB,GAAG,EAAE;AAC1B,IAAI,mBAAmB,GAAG,EAAE;AAC5B,IAAI,aAAa,GAAG,EAAE;AACtB,IAAI,IAAI,oBAAoB,GAAG;AAC/B,QAAQ,OAAO,IAAI,CAAC,aAAa,CAAC,MAAM,KAAK,CAAC;AAC9C;AACA,IAAI,IAAI,sBAAsB,GAAG;AACjC,QAAQ,OAAO,IAAI,CAAC,aAAa,CAAC,MAAM,GAAG,CAAC;AAC5C;AACA,IAAI,IAAI,aAAa,GAAG;AACxB,QAAQ,OAAO,IAAI,CAAC,aAAa;AACjC;AACA;AACA,IAAI,aAAa,GAAG,IAAI;AACxB,IAAI,YAAY,GAAG,EAAE;AACrB;AACA,IAAI,aAAa,GAAG,YAAY;AAChC;AACA,IAAI,cAAc,GAAG,KAAK;AAC1B;AACA,IAAI,iBAAiB,GAAG,KAAK;AAC7B,IAAI,gBAAgB,GAAG,EAAE;AACzB,IAAI,UAAU;AACd,IAAI,IAAI,WAAW,GAAG;AACtB,QAAQ,OAAO,IAAI,CAAC,UAAU,EAAE,GAAG,CAAC,CAAC,KAAK;AAC1C,YAAY,GAAG,CAAC;AAChB,YAAY,KAAK,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,IAAI,EAAE;AACvD,SAAS,CAAC,CAAC;AACX;AACA,IAAI,IAAI,GAAG,GAAG;AACd,QAAQ,IAAI;AACZ,YAAY,OAAO,QAAQ,EAAE,eAAe,EAAE,GAAG,KAAK,KAAK;AAC3D;AACA,QAAQ,OAAO,KAAK,EAAE;AACtB,YAAY,OAAO,IAAI;AACvB;AACA;AACA;AACA;AACA,IAAI,UAAU,CAAC,KAAK,EAAE;AACtB;AACA,QAAQ,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,IAAI,EAAE;AACrC,QAAQ,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,UAAU;AAC1C,QAAQ,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK;AAC/C,QAAQ,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI;AAC5C,QAAQ,MAAM,SAAS,GAAG,OAAO,KAAK,CAAC,SAAS,KAAK;AACrD,cAAc,KAAK,CAAC;AACpB,cAAc,IAAI,CAAC,SAAS;AAC5B,QAAQ,MAAM,SAAS,GAAG,KAAK,CAAC,SAAS,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC;AACzD,QAAQ,MAAM,OAAO,GAAG,EAAE;AAC1B,QAAQ,IAAI,KAAK,CAAC,OAAO,EAAE;AAC3B,YAAY,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK;AACrE,gBAAgB,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK;AACxC,gBAAgB,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,KAAK,EAAE,EAAE;AACnD,oBAAoB,OAAO,CAAC,KAAK,CAAC,GAAG,KAAK;AAC1C;AACA,aAAa,CAAC;AACd;AACA,QAAQ,IAAI,CAAC,KAAK,GAAG,KAAK;AAC1B,QAAQ,IAAI,CAAC,IAAI,GAAG,IAAI;AACxB,QAAQ,IAAI,CAAC,SAAS,GAAG,SAAS;AAClC,QAAQ,IAAI,CAAC,SAAS,GAAG,SAAS;AAClC,QAAQ,MAAM,GAAG,GAAG,SAAS,KAAK,CAAC,GAAG,KAAK,GAAG,MAAM;AACpD,QAAQ,MAAM,IAAI,GAAG,SAAS,GAAG,CAAC,EAAE,SAAS,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,GAAG,SAAS;AAClE,QAAQ,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;AAC5D;AACA;AACA;AACA,IAAI,IAAI,SAAS,GAAG;AACpB;AACA,QAAQ,OAAO,IAAI,CAAC,IAAI;AACxB;AACA,IAAI,IAAI,kBAAkB,GAAG;AAC7B,QAAQ,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;AACnD;AACA;AACA;AACA;AACA,IAAI,WAAW,CAAC,OAAO,EAAE;AACzB;AACA,QAAQ,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC;AACnC;AACA;AACA,IAAI,UAAU,CAAC,GAAG,EAAE;AACpB,QAAQ,IAAI,IAAI,CAAC,aAAa,EAAE;AAChC,YAAY,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC;AACpC;AACA;AACA,IAAI,UAAU,GAAG,CAAC,MAAM,KAAK,MAAM;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,QAAQ,GAAG;AACf,QAAQ,IAAI,IAAI,CAAC,IAAI,CAAC,OAAO;AAC7B,YAAY;AACZ;AACA,QAAQ,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,GAAG,eAAe,GAAG,aAAa,EAAE,IAAI,CAAC;AACzF,cAAc;AACd,cAAc,wBAAwB,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,KAAK;AACzE,YAAY,IAAI,CAAC,MAAM,CAAC,WAAW;AACnC,gBAAgB;AAChB,YAAY,IAAI,CAAC,OAAO,GAAG,IAAI;AAC/B,YAAY,IAAI,CAAC,YAAY,GAAG,IAAI;AACpC,YAAY,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO;AACxC,YAAY,MAAM,EAAE,GAAG,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,IAAI;AACxE,YAAY,MAAM,YAAY,GAAG,IAAI,CAAC,UAAU,CAAC,EAAE,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC;AACnE,YAAY,MAAM,UAAU,GAAG,IAAI,CAAC;AACpC,kBAAkB,OAAO,CAAC,MAAM,CAAC,EAAE,EAAE,YAAY;AACjD,kBAAkB,OAAO,CAAC,MAAM,CAAC,YAAY,CAAC;AAC9C,YAAY,UAAU,CAAC,SAAS,CAAC;AACjC,gBAAgB,IAAI,EAAE,MAAM;AAC5B,oBAAoB,IAAI,CAAC,OAAO,GAAG,KAAK;AACxC;AACA,oBAAoB,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,GAAG,kBAAkB,GAAG,gBAAgB,CAAC;AACrG,oBAAoB,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC;AAClD,oBAAoB,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC;AACxC,iBAAiB;AACjB,gBAAgB,KAAK,EAAE,CAAC,GAAG,KAAK;AAChC,oBAAoB,IAAI,CAAC,OAAO,GAAG,KAAK;AACxC,oBAAoB,MAAM,GAAG,GAAG,GAAG,CAAC,KAAK,EAAE,KAAK;AAChD,wBAAwB,GAAG,CAAC,OAAO;AACnC,wBAAwB,8CAA8C;AACtE,oBAAoB,IAAI,CAAC,YAAY,GAAG,GAAG;AAC3C;AACA,oBAAoB,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,WAAW,EAAE,GAAG,CAAC;AAC5D;AACA,aAAa,CAAC;AACd,SAAS,CAAC;AACV;AACA,IAAI,UAAU,CAAC,KAAK,EAAE,IAAI,EAAE;AAC5B,QAAQ,OAAO,KAAK;AACpB;AACA,IAAI,kBAAkB,CAAC,GAAG,EAAE;AAC5B,QAAQ,IAAI,CAAC,IAAI,CAAC,oBAAoB;AACtC,YAAY;AACZ,QAAQ,MAAM,YAAY,GAAG,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC;AAClD,QAAQ,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC;AAC/B,YAAY,IAAI,EAAE,GAAG,CAAC,UAAU,IAAI,cAAc;AAClD,YAAY,IAAI,EAAE;AAClB,SAAS,CAAC;AACV;AACA,IAAI,oBAAoB,CAAC,GAAG,EAAE;AAC9B,QAAQ,IAAI,CAAC,IAAI,CAAC,sBAAsB;AACxC,YAAY;AACZ,QAAQ,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;AAC7B,YAAY,IAAI,EAAE,GAAG,CAAC,UAAU,IAAI,YAAY;AAChD,YAAY,KAAK,EAAE,CAAC,GAAG,IAAI,CAAC,aAAa,CAAC;AAC1C,SAAS,CAAC;AACV;AACA,IAAI,OAAO,IAAI,GAAG,EAAE,CAAC,kBAAkB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,yBAAyB,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,CAAC,eAAe,CAAC,SAAS,EAAE,CAAC;AACnL,IAAI,OAAO,IAAI,GAAG,EAAE,CAAC,oBAAoB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,yBAAyB,EAAE,YAAY,EAAE,IAAI,EAAE,QAAQ,EAAE,wBAAwB,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,YAAY,EAAE,OAAO,EAAE,SAAS,EAAE,cAAc,EAAE,gBAAgB,EAAE,UAAU,EAAE,YAAY,EAAE,WAAW,EAAE,aAAa,EAAE,UAAU,EAAE,YAAY,EAAE,aAAa,EAAE,eAAe,EAAE,aAAa,EAAE,eAAe,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,UAAU,EAAE,YAAY,EAAE,cAAc,EAAE,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,aAAa,EAAE,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,aAAa,EAAE,UAAU,EAAE,YAAY,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,YAAY,EAAE,cAAc,EAAE,aAAa,EAAE,eAAe,EAAE,YAAY,EAAE,cAAc,EAAE,SAAS,EAAE,WAAW,EAAE,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,SAAS,EAAE,wBAAwB,EAAE,0BAA0B,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,qBAAqB,EAAE,aAAa,EAAE,eAAe,EAAE,YAAY,EAAE,cAAc,EAAE,aAAa,EAAE,eAAe,EAAE,cAAc,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,UAAU,EAAE,YAAY,EAAE,UAAU,EAAE,YAAY,EAAE,EAAE,OAAO,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,UAAU,EAAE,YAAY,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,EAAE,QAAQ,EAAE,UAAU,EAAE,YAAY,EAAE,QAAQ,EAAE,UAAU,EAAE,aAAa,EAAE,eAAe,EAAE,SAAS,EAAE,WAAW,EAAE,EAAE,IAAI,EAAE,EAAE,cAAc,EAAE,2GAA2G,EAAE,EAAE,WAAW,EAAE,CAAC,EAAE,YAAY,EAAE,cAAc,EAAE,KAAK,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,cAAc,CAAC,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,QAAQ,EAAE,yiSAAyiS,EAAE,YAAY,EAAE,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,YAAY,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,EAAE,CAAC,OAAO,EAAE,QAAQ,EAAE,kBAAkB,EAAE,MAAM,EAAE,CAAC,SAAS,EAAE,cAAc,EAAE,eAAe,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,EAAE,CAAC,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC,MAAM,EAAE,UAAU,EAAE,UAAU,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,WAAW,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,EAAE,CAAC,aAAa,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,EAAE,CAAC,MAAM,EAAE,WAAW,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,aAAa,EAAE,QAAQ,EAAE,oBAAoB,EAAE,MAAM,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,EAAE,cAAc,EAAE,UAAU,EAAE,SAAS,EAAE,WAAW,EAAE,cAAc,EAAE,YAAY,CAAC,EAAE,OAAO,EAAE,CAAC,SAAS,EAAE,WAAW,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,YAAY,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,EAAE,CAAC,eAAe,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,EAAE,CAAC,SAAS,EAAE,aAAa,EAAE,SAAS,EAAE,UAAU,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,aAAa,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,EAAE,CAAC,MAAM,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,EAAE,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,aAAa,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,eAAe,EAAE,WAAW,EAAE,aAAa,EAAE,WAAW,EAAE,OAAO,CAAC,EAAE,OAAO,EAAE,CAAC,SAAS,EAAE,SAAS,EAAE,QAAQ,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,aAAa,EAAE,QAAQ,EAAE,oBAAoB,EAAE,MAAM,EAAE,CAAC,aAAa,EAAE,OAAO,EAAE,QAAQ,CAAC,EAAE,OAAO,EAAE,CAAC,QAAQ,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,YAAY,EAAE,QAAQ,EAAE,mBAAmB,EAAE,MAAM,EAAE,CAAC,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,aAAa,EAAE,OAAO,EAAE,MAAM,EAAE,cAAc,EAAE,WAAW,EAAE,WAAW,EAAE,oBAAoB,EAAE,cAAc,EAAE,eAAe,EAAE,eAAe,EAAE,WAAW,EAAE,WAAW,EAAE,0BAA0B,CAAC,EAAE,OAAO,EAAE,CAAC,QAAQ,EAAE,YAAY,EAAE,UAAU,EAAE,WAAW,EAAE,iBAAiB,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,aAAa,EAAE,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,eAAe,EAAE,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,aAAa,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,EAAE,CAAC,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,EAAE,CAAC,YAAY,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,eAAe,EAAE,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,YAAY,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,EAAE,CAAC,MAAM,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,EAAE,CAAC,UAAU,EAAE,aAAa,EAAE,OAAO,EAAE,YAAY,EAAE,gBAAgB,EAAE,YAAY,EAAE,YAAY,EAAE,OAAO,EAAE,kBAAkB,EAAE,aAAa,EAAE,eAAe,EAAE,eAAe,EAAE,mBAAmB,EAAE,SAAS,EAAE,UAAU,EAAE,YAAY,EAAE,QAAQ,EAAE,WAAW,EAAE,UAAU,CAAC,EAAE,OAAO,EAAE,CAAC,QAAQ,EAAE,QAAQ,EAAE,eAAe,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,UAAU,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,EAAE,CAAC,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,SAAS,CAAC,EAAE,OAAO,EAAE,CAAC,aAAa,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,mBAAmB,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,EAAE,CAAC,aAAa,EAAE,QAAQ,EAAE,8CAA8C,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,EAAE,CAAC,oBAAoB,EAAE,QAAQ,EAAE,0FAA0F,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,EAAE,CAAC,kBAAkB,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,EAAE,CAAC,WAAW,CAAC,EAAE,OAAO,EAAE,CAAC,UAAU,CAAC,EAAE,QAAQ,EAAE,CAAC,QAAQ,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,WAAW,EAAE,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,aAAa,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,mBAAmB,EAAE,QAAQ,EAAE,gBAAgB,EAAE,MAAM,EAAE,CAAC,YAAY,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,YAAY,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,EAAE,CAAC,MAAM,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,EAAE,CAAC,QAAQ,EAAE,WAAW,EAAE,WAAW,EAAE,cAAc,EAAE,mBAAmB,EAAE,OAAO,EAAE,eAAe,EAAE,iBAAiB,EAAE,KAAK,EAAE,UAAU,EAAE,aAAa,EAAE,YAAY,EAAE,gBAAgB,EAAE,WAAW,EAAE,YAAY,EAAE,aAAa,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,EAAE,MAAM,EAAE,aAAa,EAAE,aAAa,EAAE,gBAAgB,EAAE,WAAW,EAAE,mBAAmB,EAAE,WAAW,EAAE,gBAAgB,EAAE,eAAe,EAAE,cAAc,EAAE,cAAc,EAAE,kBAAkB,EAAE,qBAAqB,EAAE,SAAS,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,EAAE,UAAU,EAAE,SAAS,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,sBAAsB,EAAE,sBAAsB,EAAE,kBAAkB,CAAC,EAAE,OAAO,EAAE,CAAC,QAAQ,EAAE,QAAQ,EAAE,eAAe,EAAE,cAAc,EAAE,aAAa,EAAE,WAAW,EAAE,YAAY,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,iBAAiB,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,OAAO,EAAE,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,CAAC,aAAa,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC,EAAE,CAAC;AACpke;AACA,EAAE,CAAC,wBAAwB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,yBAAyB,EAAE,UAAU,EAAE,CAAC;AACnI,YAAY,IAAI,EAAE,SAAS;AAC3B,YAAY,IAAI,EAAE,CAAC,EAAE,QAAQ,EAAE,wBAAwB,EAAE,UAAU,EAAE,IAAI,EAAE,OAAO,EAAE;AACpF,wBAAwB,YAAY;AACpC,wBAAwB,WAAW;AACnC,wBAAwB,aAAa;AACrC,wBAAwB,YAAY;AACpC,wBAAwB,aAAa;AACrC,wBAAwB,YAAY;AACpC,wBAAwB,aAAa;AACrC,wBAAwB,eAAe;AACvC,wBAAwB,aAAa;AACrC,wBAAwB,eAAe;AACvC,wBAAwB,YAAY;AACpC,wBAAwB,UAAU;AAClC,wBAAwB,mBAAmB;AAC3C,wBAAwB,WAAW;AACnC,wBAAwB,aAAa;AACrC,wBAAwB,mBAAmB;AAC3C,wBAAwB,YAAY;AACpC,wBAAwB;AACxB,qBAAqB,EAAE,IAAI,EAAE;AAC7B,wBAAwB,KAAK,EAAE;AAC/B,qBAAqB,EAAE,QAAQ,EAAE,yiSAAyiS,EAAE;AAC5kS,SAAS,CAAC,EAAE,cAAc,EAAE,EAAE,YAAY,EAAE,CAAC;AAC7C,gBAAgB,IAAI,EAAE,SAAS;AAC/B,gBAAgB,IAAI,EAAE,CAAC,cAAc;AACrC,aAAa,CAAC,EAAE,IAAI,EAAE,CAAC;AACvB,gBAAgB,IAAI,EAAE;AACtB,aAAa,CAAC,EAAE,UAAU,EAAE,CAAC;AAC7B,gBAAgB,IAAI,EAAE;AACtB,aAAa,CAAC,EAAE,OAAO,EAAE,CAAC;AAC1B,gBAAgB,IAAI,EAAE;AACtB,aAAa,CAAC,EAAE,cAAc,EAAE,CAAC;AACjC,gBAAgB,IAAI,EAAE;AACtB,aAAa,CAAC,EAAE,UAAU,EAAE,CAAC;AAC7B,gBAAgB,IAAI,EAAE;AACtB,aAAa,CAAC,EAAE,WAAW,EAAE,CAAC;AAC9B,gBAAgB,IAAI,EAAE;AACtB,aAAa,CAAC,EAAE,UAAU,EAAE,CAAC;AAC7B,gBAAgB,IAAI,EAAE;AACtB,aAAa,CAAC,EAAE,aAAa,EAAE,CAAC;AAChC,gBAAgB,IAAI,EAAE;AACtB,aAAa,CAAC,EAAE,aAAa,EAAE,CAAC;AAChC,gBAAgB,IAAI,EAAE;AACtB,aAAa,CAAC,EAAE,KAAK,EAAE,CAAC;AACxB,gBAAgB,IAAI,EAAE;AACtB,aAAa,CAAC,EAAE,OAAO,EAAE,CAAC;AAC1B,gBAAgB,IAAI,EAAE;AACtB,aAAa,CAAC,EAAE,QAAQ,EAAE,CAAC;AAC3B,gBAAgB,IAAI,EAAE;AACtB,aAAa,CAAC,EAAE,YAAY,EAAE,CAAC;AAC/B,gBAAgB,IAAI,EAAE;AACtB,aAAa,CAAC,EAAE,OAAO,EAAE,CAAC;AAC1B,gBAAgB,IAAI,EAAE;AACtB,aAAa,CAAC,EAAE,WAAW,EAAE,CAAC;AAC9B,gBAAgB,IAAI,EAAE;AACtB,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;AACzB,gBAAgB,IAAI,EAAE;AACtB,aAAa,CAAC,EAAE,UAAU,EAAE,CAAC;AAC7B,gBAAgB,IAAI,EAAE;AACtB,aAAa,CAAC,EAAE,YAAY,EAAE,CAAC;AAC/B,gBAAgB,IAAI,EAAE;AACtB,aAAa,CAAC,EAAE,OAAO,EAAE,CAAC;AAC1B,gBAAgB,IAAI,EAAE;AACtB,aAAa,CAAC,EAAE,WAAW,EAAE,CAAC;AAC9B,gBAAgB,IAAI,EAAE;AACtB,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;AACzB,gBAAgB,IAAI,EAAE;AACtB,aAAa,CAAC,EAAE,UAAU,EAAE,CAAC;AAC7B,gBAAgB,IAAI,EAAE;AACtB,aAAa,CAAC,EAAE,KAAK,EAAE,CAAC;AACxB,gBAAgB,IAAI,EAAE;AACtB,aAAa,CAAC,EAAE,IAAI,EAAE,CAAC;AACvB,gBAAgB,IAAI,EAAE;AACtB,aAAa,CAAC,EAAE,YAAY,EAAE,CAAC;AAC/B,gBAAgB,IAAI,EAAE;AACtB,aAAa,CAAC,EAAE,UAAU,EAAE,CAAC;AAC7B,gBAAgB,IAAI,EAAE;AACtB,aAAa,CAAC,EAAE,QAAQ,EAAE,CAAC;AAC3B,gBAAgB,IAAI,EAAE;AACtB,aAAa,CAAC,EAAE,aAAa,EAAE,CAAC;AAChC,gBAAgB,IAAI,EAAE;AACtB,aAAa,CAAC,EAAE,aAAa,EAAE,CAAC;AAChC,gBAAgB,IAAI,EAAE;AACtB,aAAa,CAAC,EAAE,SAAS,EAAE,CAAC;AAC5B,gBAAgB,IAAI,EAAE;AACtB,aAAa,CAAC,EAAE,YAAY,EAAE,CAAC;AAC/B,gBAAgB,IAAI,EAAE;AACtB,aAAa,CAAC,EAAE,SAAS,EAAE,CAAC;AAC5B,gBAAgB,IAAI,EAAE;AACtB,aAAa,CAAC,EAAE,OAAO,EAAE,CAAC;AAC1B,gBAAgB,IAAI,EAAE;AACtB,aAAa,CAAC,EAAE,OAAO,EAAE,CAAC;AAC1B,gBAAgB,IAAI,EAAE;AACtB,aAAa,CAAC,EAAE,wBAAwB,EAAE,CAAC;AAC3C,gBAAgB,IAAI,EAAE;AACtB,aAAa,CAAC,EAAE,iBAAiB,EAAE,CAAC;AACpC,gBAAgB,IAAI,EAAE;AACtB,aAAa,CAAC,EAAE,mBAAmB,EAAE,CAAC;AACtC,gBAAgB,IAAI,EAAE;AACtB,aAAa,CAAC,EAAE,aAAa,EAAE,CAAC;AAChC,gBAAgB,IAAI,EAAE;AACtB,aAAa,CAAC,EAAE,YAAY,EAAE,CAAC;AAC/B,gBAAgB,IAAI,EAAE;AACtB,aAAa,CAAC,EAAE,aAAa,EAAE,CAAC;AAChC,gBAAgB,IAAI,EAAE;AACtB,aAAa,CAAC,EAAE,cAAc,EAAE,CAAC;AACjC,gBAAgB,IAAI,EAAE;AACtB,aAAa,CAAC,EAAE,iBAAiB,EAAE,CAAC;AACpC,gBAAgB,IAAI,EAAE;AACtB,aAAa,CAAC,EAAE,gBAAgB,EAAE,CAAC;AACnC,gBAAgB,IAAI,EAAE;AACtB,aAAa,CAAC,EAAE,UAAU,EAAE,CAAC;AAC7B,gBAAgB,IAAI,EAAE;AACtB,aAAa,CAAC,EAAE,UAAU,EAAE,CAAC;AAC7B,gBAAgB,IAAI,EAAE;AACtB,aAAa,CAAC,EAAE,EAAE,CAAC;;AC5XnB;AACA;AACA;;;;"}
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-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 { DividerModule } from 'primeng/divider';\n// src/app/shared/generic-crud-table/generic-crud-table.component.ts\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 { TranslateModule, TranslateService } from '@ngx-translate/core';\nimport { FormlyForm } from '@ngx-formly/core';\nimport { IconFieldModule } from 'primeng/iconfield';\nimport { DrawerModule } from 'primeng/drawer';\nimport { DialogModule } from 'primeng/dialog';\nimport { FormsModule, ReactiveFormsModule, UntypedFormGroup } from '@angular/forms';\nimport { SwalService } from '@elite.framework/ng.core/services';\nimport { BreadcrumbComponent } from '@elite.framework/ng.ui.core/breadcrumb';\nimport { GenericButton } from '@elite.framework/ng.ui.core/generic-button';\nimport { GenericTable } from '@elite.framework/ng.ui.core/generic-table';\nimport { GenericSearch } from '@elite.framework/ng.ui.core/generic-search';\nimport { UiButtonComponent } from '@elite.framework/ng.ui.core/ui-button';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@angular/common\";\nimport * as i2 from \"primeng/api\";\nimport * as i3 from \"primeng/button\";\nimport * as i4 from \"primeng/divider\";\nimport * as i5 from \"primeng/drawer\";\nimport * as i6 from \"@angular/forms\";\nimport * as i7 from \"primeng/dialog\";\nimport * as i8 from \"@ngx-translate/core\";\nexport class GenericCrudTableComponent {\n genericTable;\n translate = inject(TranslateService);\n swalService = inject(SwalService);\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 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 // البحث\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 viewHeaderTitle = 'عرض التفاصيل';\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;\n idField = 'id';\n showRowSelectionCheckbox = false;\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 /** للتحكم بإظهار زر الإضافة */\n showAddButton = true;\n splitActions = [];\n /** الأيقونة الافتراضية لزر الإضافة */\n addButtonIcon = 'pi pi-plus';\n /** النص الافتراضي لزر الإضافة */\n addButtonLabel = 'ADD';\n /** تتحكّم بموقع زر الإضافة: 'top' أو 'bottom' */\n addButtonPosition = 'top';\n addButtonConfigs = [];\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 // 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 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 // يبني النص وإرساله\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 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 beforeSave = (record) => record;\n onSubmit() {\n if (this.form.invalid)\n return;\n this.swalService.confirm(this.isEditMode ? 'تأكيد التعديل' : 'تأكيد الحفظ', this.isEditMode\n ? 'هل تريد حفظ التعديلات على هذا السجل؟'\n : 'هل تريد حفظ هذا السجل؟', 'نعم', 'إلغاء').then((result) => {\n if (!result.isConfirmed)\n return;\n this.loading = true;\n this.errorMessage = null;\n const id = this.isEditMode ? this.model[this.idField] : null;\n const recordToSave = this.beforeSave({ ...this.model });\n const operation$ = this.isEditMode\n ? this.service.update(id, recordToSave)\n : this.service.create(recordToSave);\n operation$.subscribe({\n next: () => {\n this.loading = false;\n // ✅ رسالة نجاح\n this.swalService.success(this.isEditMode ? 'تم التعديل بنجاح' : 'تم الحفظ بنجاح');\n this.visibleChange.emit(false);\n this.applySearch('');\n },\n error: () => {\n // ❌ ما نعرض رسالة خطأ هنا لأن الـ interceptor يتكفل فيها\n this.loading = false;\n }\n });\n });\n }\n // onSubmit() {\n // if (this.form.invalid) return;\n // // ✅ أول شيء نطلب تأكيد من المستخدم\n // this.swalService.confirm(\n // this.isEditMode ? 'تأكيد التعديل' : 'تأكيد الحفظ',\n // this.isEditMode\n // ? 'هل تريد حفظ التعديلات على هذا السجل؟'\n // : 'هل تريد حفظ هذا السجل؟',\n // 'نعم',\n // 'إلغاء'\n // ).then((result) => {\n // if (!result.isConfirmed) return;\n // this.loading = true;\n // this.errorMessage = null;\n // const service = this.service;\n // const id = this.isEditMode ? (this.model as any)[this.idField] : null;\n // const recordToSave = this.beforeSave({ ...this.model });\n // const operation$: Observable<any> = this.isEditMode\n // ? service.update(id, recordToSave)\n // : service.create(recordToSave);\n // operation$.subscribe({\n // next: () => {\n // this.loading = false;\n // // ✅ رسالة نجاح\n // this.swalService.success(\n // this.isEditMode ? 'تم التعديل بنجاح' : 'تم الحفظ بنجاح'\n // );\n // this.visibleChange.emit(false);\n // this.applySearch('');\n // },\n // error: (err: any) => {\n // this.loading = false;\n // const msg =\n // err.error?.title ||\n // err.message ||\n // 'حدث خطأ أثناء الحفظ. يرجى المحاولة مرة أخرى.';\n // this.errorMessage = msg;\n // // ❌ رسالة خطأ\n // this.swalService.error('فشل الحفظ', msg);\n // }\n // });\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\", isEditMode: \"isEditMode\", drawerVisible: \"drawerVisible\", dialogVisible: \"dialogVisible\", model: \"model\", loading: \"loading\", errorMsg: \"errorMsg\", errorMessage: \"errorMessage\", actions: \"actions\", actionsMode: \"actionsMode\", filters: \"filters\", filterModel: \"filterModel\", showSearch: \"showSearch\", first: \"first\", rows: \"rows\", totalRecords: \"totalRecords\", rowSelectable: \"rowSelectable\", scrollHeight: \"scrollHeight\", paginator: \"paginator\", service: \"service\", idField: \"idField\", showRowSelectionCheckbox: \"showRowSelectionCheckbox\", bulkActionButtons: \"bulkActionButtons\", singleActionButtons: \"singleActionButtons\", showAddButton: \"showAddButton\", splitActions: \"splitActions\", addButtonIcon: \"addButtonIcon\", addButtonLabel: \"addButtonLabel\", addButtonPosition: \"addButtonPosition\", addButtonConfigs: \"addButtonConfigs\", breadcrumb: \"breadcrumb\", beforeSave: \"beforeSave\" }, outputs: { action: \"action\", bulkAction: \"bulkAction\", singleAction: \"singleAction\", search: \"search\", pageChange: \"pageChange\", onSearch: \"onSearch\", visibleChange: \"visibleChange\", rowSelect: \"rowSelect\" }, host: { classAttribute: \"h-full flex-1 flex flex-col overflow-hidden border border-surface rounded-2xl xs:rounded-2xl p-4 bg-white\" }, viewQueries: [{ propertyName: \"genericTable\", first: true, predicate: [\"genericTable\"], descendants: true }], ngImport: i0, template: \"\\r\\n <div class=\\\"flex items-start gap-2 justify-between\\\">\\r\\n <div>\\r\\n <!-- <div class=\\\"text-2xl leading-8 font-medium bg-slate-800 p-4 rounded-md\\\">\\r\\n <p-breadcrumb\\r\\n [model]=\\\"breadcrumb_\\\"\\r\\n [home]=\\\"home\\\"\\r\\n styleClass=\\\"custom-breadcrumb\\\"\\r\\n ></p-breadcrumb>\\r\\n </div> -->\\r\\n\\r\\n<app-breadcrumb class=\\\"xs:block hidden\\\" [breadcrumb]=\\\"breadcrumb_\\\"></app-breadcrumb>\\r\\n\\r\\n </div>\\r\\n\\r\\n<div class=\\\"flex items-center gap-2 justify-end flex-wrap\\\">\\r\\n <ng-container *ngIf=\\\"isSingleItemSelected\\\">\\r\\n <ng-container *ngFor=\\\"let btn of singleActionButtons; trackBy: trackByIdx\\\">\\r\\n <lib-generic-button\\r\\n\\r\\n [icon]=\\\"btn.icon\\\"\\r\\n[label]=\\\"btn.label | translate\\\"\\r\\n[variant]=\\\"btn.variant\\\"\\r\\n [size]=\\\"btn.size\\\"\\r\\n [permission]=\\\"btn.permission\\\"\\r\\n (clicked)=\\\"onSingleItemAction(btn)\\\"\\r\\n ></lib-generic-button>\\r\\n</ng-container>\\r\\n </ng-container>\\r\\n\\r\\n <ng-container *ngIf=\\\"selectedItems.length > 0\\\">\\r\\n <ng-container *ngFor=\\\"let btn of bulkActionButtons; trackBy: trackByIdx\\\">\\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 [permission]=\\\"btn.permission\\\"\\r\\n (clicked)=\\\"onInternalBulkAction(btn)\\\"\\r\\n ></lib-generic-button>\\r\\n </ng-container>\\r\\n </ng-container>\\r\\n\\r\\n <ng-container *ngFor=\\\"let btn of addButtonConfigs; trackBy: trackByIdx\\\">\\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 [permission]=\\\"btn.permission\\\"\\r\\n (clicked)=\\\" this.action.emit({ name: btn.actionName ?? 'add', row: null! });\\\"\\r\\n ></lib-generic-button>\\r\\n </ng-container>\\r\\n\\r\\n\\r\\n\\r\\n @if ((showAddButton || splitActions.length > 0)&& addButtonConfigs.length === 0) {\\r\\n\\r\\n @if (showAddButton && splitActions.length === 0) {\\r\\n\\r\\n <!-- <p-button\\r\\n icon=\\\"pi pi-circle-fill text-green-500\\\" *ngIf=\\\"showAddButton && addButtonConfigs.length === 0\\\"\\r\\n [label]=\\\"(addButtonLabel | translate)\\r\\n \\\"(onClick)=\\\"action.emit({ name: 'add', row: null! })\\\"\\r\\n outlined severity=\\\"secondary\\\" /> -->\\r\\n\\r\\n <ui-button\\r\\n [config]=\\\"{\\r\\n type: 'button',\\r\\n label: addButtonLabel| translate,\\r\\n icon: 'pi pi-plus',\\r\\n severity: 'primary',\\r\\n outlined: false,\\r\\n styleClass:''\\r\\n }\\\"\\r\\n (onClick)=\\\"action.emit({ name: 'add', row: null! })\\\">\\r\\n </ui-button>\\r\\n }\\r\\n @else {\\r\\n <!-- Split Button -->\\r\\n <ui-button\\r\\n [config]=\\\"{\\r\\n type: 'split',\\r\\n label: addButtonLabel| translate,\\r\\n icon: 'pi pi-plus',\\r\\n severity: 'primary',\\r\\n loading: false,\\r\\n outlined: false,\\r\\n items: splitActions\\r\\n }\\\"\\r\\n (onClick)=\\\"action.emit({ name: 'add', row: null! })\\\">\\r\\n </ui-button>\\r\\n }\\r\\n\\r\\n\\r\\n }\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n </div>\\r\\n </div>\\r\\n <div class=\\\"mt-2 mb-4 flex items-center justify-between\\\">\\r\\n\\r\\n <ng-container *ngIf=\\\"showSearch && filters; else emptySearch\\\">\\r\\n <lib-generic-search\\r\\n [model]=\\\"filterModel\\\"\\r\\n [fields]=\\\"filters\\\"\\r\\n (search)=\\\"applySearch($event)\\\"\\r\\n (reset)=\\\"applySearch('')\\\"\\r\\n ></lib-generic-search>\\r\\n </ng-container>\\r\\n\\r\\n <ng-template #emptySearch>\\r\\n <!-- Render a dummy div to preserve expected DOM shape -->\\r\\n <!-- <div class=\\\"min-h-[2.5rem] w-[12rem]\\\"></div> -->\\r\\n </ng-template>\\r\\n <!-- style=\\\"direction: ltr;\\\" -->\\r\\n <div class=\\\"flex items-center gap-3\\\">\\r\\n\\r\\n <p-button icon=\\\"pi pi-refresh\\\" outlined severity=\\\"secondary\\\" (onClick)=\\\"applySearch('')\\\" />\\r\\n <p-divider layout=\\\"vertical\\\" class=\\\"m-0 p-0 xs:block hidden\\\" />\\r\\n <p-button icon=\\\"pi pi-sort\\\" outlined severity=\\\"secondary\\\" class=\\\"xs:block hidden\\\" />\\r\\n <p-button label=\\\"1 of 15\\\" outlined severity=\\\"secondary\\\" class=\\\"xs:block hidden\\\" />\\r\\n <p-button icon=\\\"pi pi-chevron-right\\\" outlined severity=\\\"secondary\\\" class=\\\"xs:block hidden\\\" />\\r\\n <p-button icon=\\\"pi pi-chevron-left\\\" outlined severity=\\\"secondary\\\" class=\\\"xs:block hidden\\\" />\\r\\n </div>\\r\\n </div>\\r\\n\\r\\n\\r\\n\\r\\n<lib-generic-table\\r\\n [showAddButton]=\\\"showAddButton\\\"\\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 [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\\r\\n<!-- Drawer -->\\r\\n<p-drawer\\r\\n *ngIf=\\\"(typeof displayMode === 'string' ? displayMode : isEditMode ? displayMode['edit'] : isViewMode === false ? displayMode['add'] : displayMode['view'] ) === 'drawer' && drawerVisible\\\"\\r\\n [(visible)]=\\\"drawerVisible\\\"\\r\\n [closable]=\\\"true\\\"\\r\\n [dismissible]=\\\"false\\\"\\r\\n [closeOnEscape]=\\\"true\\\"\\r\\n (visibleChange)=\\\"visibleChange.emit($event)\\\"\\r\\n styleClass=\\\"!w-full md:!w-80 lg:!w-[40rem]\\\">\\r\\n\\r\\n <ng-template pTemplate=\\\"header\\\">\\r\\n <span class=\\\"font-bold text-lg\\\">\\r\\n {{ isEditMode ? '\\u062A\\u0639\\u062F\\u064A\\u0644' : isViewMode === false ? '\\u0625\\u0636\\u0627\\u0641\\u0629' : '\\u0639\\u0631\\u0636' }}\\r\\n </span>\\r\\n </ng-template>\\r\\n<!-- (ngSubmit)=\\\"onSubmit()\\\" -->\\r\\n <form *ngIf=\\\"form\\\" [formGroup]=\\\"form\\\" class=\\\"p-4\\\">\\r\\n <formly-form [form]=\\\"form\\\" [fields]=\\\"formFields_\\\" [model]=\\\"model\\\" [options]=\\\"options\\\"></formly-form>\\r\\n </form>\\r\\n\\r\\n <ng-template pTemplate=\\\"footer\\\" *ngIf=\\\"!isViewMode\\\">\\r\\n <div class=\\\"flex justify-end gap-2\\\">\\r\\n <button\\r\\n pButton\\r\\n [label]=\\\"isEditMode ? ('UPDATE' | translate) : ('SAVE' | translate)\\\"\\r\\n type=\\\"button\\\"\\r\\n (click)=\\\"onSubmit()\\\"\\r\\n [disabled]=\\\"loading || form.invalid\\\"\\r\\n [loading]=\\\"loading\\\">\\r\\n </button>\\r\\n <button\\r\\n pButton\\r\\n label=\\\"{{ 'CANCEL' | translate }}\\\"\\r\\n severity=\\\"danger\\\"\\r\\n (click)=\\\"visibleChange.emit(false)\\\">\\r\\n </button>\\r\\n </div>\\r\\n </ng-template>\\r\\n</p-drawer>\\r\\n\\r\\n<!-- Dialog -->\\r\\n<p-dialog\\r\\n *ngIf=\\\"(typeof displayMode === 'string' ? displayMode : isEditMode ? displayMode['edit'] : isViewMode === false ? displayMode['add'] : displayMode['view'] ) === 'dialog' && dialogVisible\\\"\\r\\n [(visible)]=\\\"dialogVisible\\\"\\r\\n [modal]=\\\"true\\\"\\r\\n [closable]=\\\"true\\\"\\r\\n [dismissableMask]=\\\"true\\\"\\r\\n [closeOnEscape]=\\\"true\\\"\\r\\n (visibleChange)=\\\"visibleChange.emit($event)\\\"\\r\\n [style]=\\\"{ width: '95vw', maxWidth: dialogMaxWidth }\\\"\\r\\n [header]=\\\"isEditMode ? '\\u062A\\u0639\\u062F\\u064A\\u0644' : isViewMode === false ? '\\u0625\\u0636\\u0627\\u0641\\u0629' : viewHeaderTitle\\\">\\r\\n<!-- [breakpoints]=\\\"{ '1200px': '50vw', '768px': '70vw', '560px': '95vw' }\\\" -->\\r\\n <div class=\\\"relative\\\">\\r\\n <div *ngIf=\\\"isViewMode\\\" class=\\\"absolute inset-0 z-10 bg-white/50 pointer-events-auto rounded-md\\\"></div>\\r\\n <form *ngIf=\\\"form\\\" [formGroup]=\\\"form\\\" class=\\\"p-4\\\">\\r\\n <formly-form [form]=\\\"form\\\" [fields]=\\\"formFields_\\\" [model]=\\\"model\\\" [options]=\\\"options\\\"></formly-form>\\r\\n </form>\\r\\n </div>\\r\\n\\r\\n <ng-template pTemplate=\\\"footer\\\">\\r\\n <div class=\\\"flex justify-end gap-2\\\">\\r\\n <button *ngIf=\\\"!isViewMode\\\"\\r\\n pButton\\r\\n [label]=\\\"isEditMode ? ('UPDATE' | translate) : ('SAVE' | translate)\\\"\\r\\n type=\\\"button\\\"\\r\\n [disabled]=\\\"loading || form.invalid\\\"\\r\\n [loading]=\\\"loading\\\"\\r\\n (click)=\\\"onSubmit()\\\">\\r\\n </button>\\r\\n <button\\r\\n pButton\\r\\n label=\\\"{{ isViewMode ? ('CLOSE' | translate) : ('CANCEL' | translate) }}\\\"\\r\\n severity=\\\"secondary\\\"\\r\\n (click)=\\\"visibleChange.emit(false)\\\">\\r\\n </button>\\r\\n </div>\\r\\n </ng-template>\\r\\n</p-dialog>\\r\\n\\r\\n\\r\\n\\r\\n\", dependencies: [{ kind: \"ngmodule\", type: CommonModule }, { kind: \"directive\", type: i1.NgForOf, selector: \"[ngFor][ngForOf]\", inputs: [\"ngForOf\", \"ngForTrackBy\", \"ngForTemplate\"] }, { kind: \"directive\", type: i1.NgIf, selector: \"[ngIf]\", inputs: [\"ngIf\", \"ngIfThen\", \"ngIfElse\"] }, { kind: \"ngmodule\", type: TableModule }, { kind: \"directive\", type: i2.PrimeTemplate, selector: \"[pTemplate]\", inputs: [\"type\", \"pTemplate\"] }, { kind: \"component\", type: GenericButton, selector: \"lib-generic-button\", inputs: [\"model\", \"type\", \"icon\", \"label\", \"variant\", \"severity\", \"size\", \"iconPosition\", \"disabled\", \"loading\", \"ariaLabel\", \"extraClasses\", \"permission\"], outputs: [\"clicked\", \"itemClick\"] }, { kind: \"ngmodule\", type: ButtonModule }, { kind: \"directive\", type: i3.ButtonDirective, selector: \"[pButton]\", inputs: [\"iconPos\", \"loadingIcon\", \"loading\", \"severity\", \"raised\", \"rounded\", \"text\", \"outlined\", \"size\", \"plain\", \"fluid\", \"label\", \"icon\", \"buttonProps\"] }, { kind: \"component\", type: i3.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: \"component\", type: GenericSearch, selector: \"lib-generic-search\", inputs: [\"placeholder\", \"model\", \"fields\"], outputs: [\"search\"] }, { kind: \"component\", type: GenericTable, selector: \"lib-generic-table\", inputs: [\"data\", \"columns\", \"loading\", \"actions\", \"actionsMode\", \"first\", \"rows\", \"totalRecords\", \"sortField\", \"sortOrder\", \"globalFilterFields\", \"scrollHeight\", \"rowSelectable\", \"showAddButton\", \"selection\", \"paginator\", \"showRowSelectionCheckbox\"], outputs: [\"action\", \"pageChange\", \"onAddNew\", \"rowSelect\", \"selectionChange\"] }, { kind: \"ngmodule\", type: ToolbarModule }, { kind: \"ngmodule\", type: TranslateModule }, { kind: \"ngmodule\", type: DividerModule }, { kind: \"component\", type: i4.Divider, selector: \"p-divider\", inputs: [\"styleClass\", \"layout\", \"type\", \"align\"] }, { kind: \"ngmodule\", type: IconFieldModule }, { kind: \"ngmodule\", type: DrawerModule }, { kind: \"component\", type: i5.Drawer, selector: \"p-drawer\", inputs: [\"appendTo\", \"blockScroll\", \"style\", \"styleClass\", \"ariaCloseLabel\", \"autoZIndex\", \"baseZIndex\", \"modal\", \"closeButtonProps\", \"dismissible\", \"showCloseIcon\", \"closeOnEscape\", \"transitionOptions\", \"visible\", \"position\", \"fullScreen\", \"header\", \"maskStyle\", \"closable\"], outputs: [\"onShow\", \"onHide\", \"visibleChange\"] }, { kind: \"component\", type: FormlyForm, selector: \"formly-form\", inputs: [\"form\", \"model\", \"fields\", \"options\"], outputs: [\"modelChange\"] }, { kind: \"ngmodule\", type: ReactiveFormsModule }, { kind: \"directive\", type: i6.ɵNgNoValidate, selector: \"form:not([ngNoForm]):not([ngNativeValidate])\" }, { kind: \"directive\", type: i6.NgControlStatusGroup, selector: \"[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]\" }, { kind: \"directive\", type: i6.FormGroupDirective, selector: \"[formGroup]\", inputs: [\"formGroup\"], outputs: [\"ngSubmit\"], exportAs: [\"ngForm\"] }, { kind: \"ngmodule\", type: FormsModule }, { kind: \"ngmodule\", type: MessageModule }, { kind: \"component\", type: BreadcrumbComponent, selector: \"app-breadcrumb\", inputs: [\"breadcrumb\"] }, { kind: \"ngmodule\", type: DialogModule }, { kind: \"component\", type: i7.Dialog, selector: \"p-dialog\", inputs: [\"header\", \"draggable\", \"resizable\", \"contentStyle\", \"contentStyleClass\", \"modal\", \"closeOnEscape\", \"dismissableMask\", \"rtl\", \"closable\", \"breakpoints\", \"styleClass\", \"maskStyleClass\", \"maskStyle\", \"showHeader\", \"blockScroll\", \"autoZIndex\", \"baseZIndex\", \"minX\", \"minY\", \"focusOnShow\", \"maximizable\", \"keepInViewport\", \"focusTrap\", \"transitionOptions\", \"closeIcon\", \"closeAriaLabel\", \"closeTabindex\", \"minimizeIcon\", \"maximizeIcon\", \"closeButtonProps\", \"maximizeButtonProps\", \"visible\", \"style\", \"position\", \"role\", \"appendTo\", \"content\", \"contentTemplate\", \"footerTemplate\", \"closeIconTemplate\", \"maximizeIconTemplate\", \"minimizeIconTemplate\", \"headlessTemplate\"], outputs: [\"onShow\", \"onHide\", \"visibleChange\", \"onResizeInit\", \"onResizeEnd\", \"onDragEnd\", \"onMaximize\"] }, { kind: \"component\", type: UiButtonComponent, selector: \"ui-button\", inputs: [\"config\"], outputs: [\"onClick\"] }, { kind: \"pipe\", type: i8.TranslatePipe, name: \"translate\" }] });\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 GenericButton,\n ButtonModule,\n GenericSearch,\n GenericTable,\n ToolbarModule,\n TranslateModule,\n DividerModule,\n IconFieldModule,\n DrawerModule,\n FormlyForm,\n ReactiveFormsModule,\n FormsModule,\n MessageModule,\n BreadcrumbComponent,\n DialogModule,\n UiButtonComponent\n ], host: {\n class: 'h-full flex-1 flex flex-col overflow-hidden border border-surface rounded-2xl xs:rounded-2xl p-4 bg-white'\n }, template: \"\\r\\n <div class=\\\"flex items-start gap-2 justify-between\\\">\\r\\n <div>\\r\\n <!-- <div class=\\\"text-2xl leading-8 font-medium bg-slate-800 p-4 rounded-md\\\">\\r\\n <p-breadcrumb\\r\\n [model]=\\\"breadcrumb_\\\"\\r\\n [home]=\\\"home\\\"\\r\\n styleClass=\\\"custom-breadcrumb\\\"\\r\\n ></p-breadcrumb>\\r\\n </div> -->\\r\\n\\r\\n<app-breadcrumb class=\\\"xs:block hidden\\\" [breadcrumb]=\\\"breadcrumb_\\\"></app-breadcrumb>\\r\\n\\r\\n </div>\\r\\n\\r\\n<div class=\\\"flex items-center gap-2 justify-end flex-wrap\\\">\\r\\n <ng-container *ngIf=\\\"isSingleItemSelected\\\">\\r\\n <ng-container *ngFor=\\\"let btn of singleActionButtons; trackBy: trackByIdx\\\">\\r\\n <lib-generic-button\\r\\n\\r\\n [icon]=\\\"btn.icon\\\"\\r\\n[label]=\\\"btn.label | translate\\\"\\r\\n[variant]=\\\"btn.variant\\\"\\r\\n [size]=\\\"btn.size\\\"\\r\\n [permission]=\\\"btn.permission\\\"\\r\\n (clicked)=\\\"onSingleItemAction(btn)\\\"\\r\\n ></lib-generic-button>\\r\\n</ng-container>\\r\\n </ng-container>\\r\\n\\r\\n <ng-container *ngIf=\\\"selectedItems.length > 0\\\">\\r\\n <ng-container *ngFor=\\\"let btn of bulkActionButtons; trackBy: trackByIdx\\\">\\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 [permission]=\\\"btn.permission\\\"\\r\\n (clicked)=\\\"onInternalBulkAction(btn)\\\"\\r\\n ></lib-generic-button>\\r\\n </ng-container>\\r\\n </ng-container>\\r\\n\\r\\n <ng-container *ngFor=\\\"let btn of addButtonConfigs; trackBy: trackByIdx\\\">\\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 [permission]=\\\"btn.permission\\\"\\r\\n (clicked)=\\\" this.action.emit({ name: btn.actionName ?? 'add', row: null! });\\\"\\r\\n ></lib-generic-button>\\r\\n </ng-container>\\r\\n\\r\\n\\r\\n\\r\\n @if ((showAddButton || splitActions.length > 0)&& addButtonConfigs.length === 0) {\\r\\n\\r\\n @if (showAddButton && splitActions.length === 0) {\\r\\n\\r\\n <!-- <p-button\\r\\n icon=\\\"pi pi-circle-fill text-green-500\\\" *ngIf=\\\"showAddButton && addButtonConfigs.length === 0\\\"\\r\\n [label]=\\\"(addButtonLabel | translate)\\r\\n \\\"(onClick)=\\\"action.emit({ name: 'add', row: null! })\\\"\\r\\n outlined severity=\\\"secondary\\\" /> -->\\r\\n\\r\\n <ui-button\\r\\n [config]=\\\"{\\r\\n type: 'button',\\r\\n label: addButtonLabel| translate,\\r\\n icon: 'pi pi-plus',\\r\\n severity: 'primary',\\r\\n outlined: false,\\r\\n styleClass:''\\r\\n }\\\"\\r\\n (onClick)=\\\"action.emit({ name: 'add', row: null! })\\\">\\r\\n </ui-button>\\r\\n }\\r\\n @else {\\r\\n <!-- Split Button -->\\r\\n <ui-button\\r\\n [config]=\\\"{\\r\\n type: 'split',\\r\\n label: addButtonLabel| translate,\\r\\n icon: 'pi pi-plus',\\r\\n severity: 'primary',\\r\\n loading: false,\\r\\n outlined: false,\\r\\n items: splitActions\\r\\n }\\\"\\r\\n (onClick)=\\\"action.emit({ name: 'add', row: null! })\\\">\\r\\n </ui-button>\\r\\n }\\r\\n\\r\\n\\r\\n }\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n </div>\\r\\n </div>\\r\\n <div class=\\\"mt-2 mb-4 flex items-center justify-between\\\">\\r\\n\\r\\n <ng-container *ngIf=\\\"showSearch && filters; else emptySearch\\\">\\r\\n <lib-generic-search\\r\\n [model]=\\\"filterModel\\\"\\r\\n [fields]=\\\"filters\\\"\\r\\n (search)=\\\"applySearch($event)\\\"\\r\\n (reset)=\\\"applySearch('')\\\"\\r\\n ></lib-generic-search>\\r\\n </ng-container>\\r\\n\\r\\n <ng-template #emptySearch>\\r\\n <!-- Render a dummy div to preserve expected DOM shape -->\\r\\n <!-- <div class=\\\"min-h-[2.5rem] w-[12rem]\\\"></div> -->\\r\\n </ng-template>\\r\\n <!-- style=\\\"direction: ltr;\\\" -->\\r\\n <div class=\\\"flex items-center gap-3\\\">\\r\\n\\r\\n <p-button icon=\\\"pi pi-refresh\\\" outlined severity=\\\"secondary\\\" (onClick)=\\\"applySearch('')\\\" />\\r\\n <p-divider layout=\\\"vertical\\\" class=\\\"m-0 p-0 xs:block hidden\\\" />\\r\\n <p-button icon=\\\"pi pi-sort\\\" outlined severity=\\\"secondary\\\" class=\\\"xs:block hidden\\\" />\\r\\n <p-button label=\\\"1 of 15\\\" outlined severity=\\\"secondary\\\" class=\\\"xs:block hidden\\\" />\\r\\n <p-button icon=\\\"pi pi-chevron-right\\\" outlined severity=\\\"secondary\\\" class=\\\"xs:block hidden\\\" />\\r\\n <p-button icon=\\\"pi pi-chevron-left\\\" outlined severity=\\\"secondary\\\" class=\\\"xs:block hidden\\\" />\\r\\n </div>\\r\\n </div>\\r\\n\\r\\n\\r\\n\\r\\n<lib-generic-table\\r\\n [showAddButton]=\\\"showAddButton\\\"\\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 [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\\r\\n<!-- Drawer -->\\r\\n<p-drawer\\r\\n *ngIf=\\\"(typeof displayMode === 'string' ? displayMode : isEditMode ? displayMode['edit'] : isViewMode === false ? displayMode['add'] : displayMode['view'] ) === 'drawer' && drawerVisible\\\"\\r\\n [(visible)]=\\\"drawerVisible\\\"\\r\\n [closable]=\\\"true\\\"\\r\\n [dismissible]=\\\"false\\\"\\r\\n [closeOnEscape]=\\\"true\\\"\\r\\n (visibleChange)=\\\"visibleChange.emit($event)\\\"\\r\\n styleClass=\\\"!w-full md:!w-80 lg:!w-[40rem]\\\">\\r\\n\\r\\n <ng-template pTemplate=\\\"header\\\">\\r\\n <span class=\\\"font-bold text-lg\\\">\\r\\n {{ isEditMode ? '\\u062A\\u0639\\u062F\\u064A\\u0644' : isViewMode === false ? '\\u0625\\u0636\\u0627\\u0641\\u0629' : '\\u0639\\u0631\\u0636' }}\\r\\n </span>\\r\\n </ng-template>\\r\\n<!-- (ngSubmit)=\\\"onSubmit()\\\" -->\\r\\n <form *ngIf=\\\"form\\\" [formGroup]=\\\"form\\\" class=\\\"p-4\\\">\\r\\n <formly-form [form]=\\\"form\\\" [fields]=\\\"formFields_\\\" [model]=\\\"model\\\" [options]=\\\"options\\\"></formly-form>\\r\\n </form>\\r\\n\\r\\n <ng-template pTemplate=\\\"footer\\\" *ngIf=\\\"!isViewMode\\\">\\r\\n <div class=\\\"flex justify-end gap-2\\\">\\r\\n <button\\r\\n pButton\\r\\n [label]=\\\"isEditMode ? ('UPDATE' | translate) : ('SAVE' | translate)\\\"\\r\\n type=\\\"button\\\"\\r\\n (click)=\\\"onSubmit()\\\"\\r\\n [disabled]=\\\"loading || form.invalid\\\"\\r\\n [loading]=\\\"loading\\\">\\r\\n </button>\\r\\n <button\\r\\n pButton\\r\\n label=\\\"{{ 'CANCEL' | translate }}\\\"\\r\\n severity=\\\"danger\\\"\\r\\n (click)=\\\"visibleChange.emit(false)\\\">\\r\\n </button>\\r\\n </div>\\r\\n </ng-template>\\r\\n</p-drawer>\\r\\n\\r\\n<!-- Dialog -->\\r\\n<p-dialog\\r\\n *ngIf=\\\"(typeof displayMode === 'string' ? displayMode : isEditMode ? displayMode['edit'] : isViewMode === false ? displayMode['add'] : displayMode['view'] ) === 'dialog' && dialogVisible\\\"\\r\\n [(visible)]=\\\"dialogVisible\\\"\\r\\n [modal]=\\\"true\\\"\\r\\n [closable]=\\\"true\\\"\\r\\n [dismissableMask]=\\\"true\\\"\\r\\n [closeOnEscape]=\\\"true\\\"\\r\\n (visibleChange)=\\\"visibleChange.emit($event)\\\"\\r\\n [style]=\\\"{ width: '95vw', maxWidth: dialogMaxWidth }\\\"\\r\\n [header]=\\\"isEditMode ? '\\u062A\\u0639\\u062F\\u064A\\u0644' : isViewMode === false ? '\\u0625\\u0636\\u0627\\u0641\\u0629' : viewHeaderTitle\\\">\\r\\n<!-- [breakpoints]=\\\"{ '1200px': '50vw', '768px': '70vw', '560px': '95vw' }\\\" -->\\r\\n <div class=\\\"relative\\\">\\r\\n <div *ngIf=\\\"isViewMode\\\" class=\\\"absolute inset-0 z-10 bg-white/50 pointer-events-auto rounded-md\\\"></div>\\r\\n <form *ngIf=\\\"form\\\" [formGroup]=\\\"form\\\" class=\\\"p-4\\\">\\r\\n <formly-form [form]=\\\"form\\\" [fields]=\\\"formFields_\\\" [model]=\\\"model\\\" [options]=\\\"options\\\"></formly-form>\\r\\n </form>\\r\\n </div>\\r\\n\\r\\n <ng-template pTemplate=\\\"footer\\\">\\r\\n <div class=\\\"flex justify-end gap-2\\\">\\r\\n <button *ngIf=\\\"!isViewMode\\\"\\r\\n pButton\\r\\n [label]=\\\"isEditMode ? ('UPDATE' | translate) : ('SAVE' | translate)\\\"\\r\\n type=\\\"button\\\"\\r\\n [disabled]=\\\"loading || form.invalid\\\"\\r\\n [loading]=\\\"loading\\\"\\r\\n (click)=\\\"onSubmit()\\\">\\r\\n </button>\\r\\n <button\\r\\n pButton\\r\\n label=\\\"{{ isViewMode ? ('CLOSE' | translate) : ('CANCEL' | translate) }}\\\"\\r\\n severity=\\\"secondary\\\"\\r\\n (click)=\\\"visibleChange.emit(false)\\\">\\r\\n </button>\\r\\n </div>\\r\\n </ng-template>\\r\\n</p-dialog>\\r\\n\\r\\n\\r\\n\\r\\n\" }]\n }], propDecorators: { genericTable: [{\n type: ViewChild,\n args: ['genericTable']\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 }], 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 }], 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 }], idField: [{\n type: Input\n }], showRowSelectionCheckbox: [{\n type: Input\n }], bulkActionButtons: [{\n type: Input\n }], singleActionButtons: [{\n type: Input\n }], showAddButton: [{\n type: Input\n }], splitActions: [{\n type: Input\n }], addButtonIcon: [{\n type: Input\n }], addButtonLabel: [{\n type: Input\n }], addButtonPosition: [{\n type: Input\n }], addButtonConfigs: [{\n type: Input\n }], breadcrumb: [{\n type: Input\n }], beforeSave: [{\n type: Input\n }] } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2VuZXJpYy1jcnVkLXRhYmxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9uZy51aS5jb3JlL2dlbmVyaWMtY3J1ZC10YWJsZS9zcmMvbGliL2dlbmVyaWMtY3J1ZC10YWJsZS50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvbmcudWkuY29yZS9nZW5lcmljLWNydWQtdGFibGUvc3JjL2xpYi9nZW5lcmljLWNydWQtdGFibGUuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFHQSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDaEQsb0VBQW9FO0FBQ3BFLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxZQUFZLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBaUIsTUFBTSxlQUFlLENBQUM7QUFDekcsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNoRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFOUMsT0FBTyxFQUFFLFdBQVcsRUFBc0IsTUFBTyxlQUFlLENBQUM7QUFDakUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFRLGlCQUFpQixDQUFDO0FBQ2xELE9BQU8sRUFBRSxlQUFlLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN4RSxPQUFPLEVBQXFCLFVBQVUsRUFBcUIsTUFBTSxrQkFBa0IsQ0FBQztBQUNwRixPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFFcEQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzlDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM5QyxPQUFPLEVBQUUsV0FBVyxFQUFFLG1CQUFtQixFQUFFLGdCQUFn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LEtBQUs7Z0JBRUksU0FBUztzQkFBakIsS0FBSztnQkFFRSxPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csT0FBTztzQkFBZixLQUFLO2dCQUVJLHdCQUF3QjtzQkFBaEMsS0FBSztnQkFFSSxpQkFBaUI7c0JBQXpCLEtBQUs7Z0JBQ0csbUJBQW1CO3NCQUEzQixLQUFLO2dCQW1CQyxhQUFhO3NCQUFyQixLQUFLO2dCQUNHLFlBQVk7c0JBQXBCLEtBQUs7Z0JBRUcsYUFBYTtzQkFBckIsS0FBSztnQkFFRyxjQUFjO3NCQUF0QixLQUFLO2dCQUVHLGlCQUFpQjtzQkFBekIsS0FBSztnQkFFSSxnQkFBZ0I7c0JBQXhCLEtBQUs7Z0JBRUUsVUFBVTtzQkFBbEIsS0FBSztnQkEwRk0sVUFBVTtzQkFBbEIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlIEBhbmd1bGFyLWVzbGludC9uby1vdXRwdXQtb24tcHJlZml4ICovXHJcbi8qIGVzbGludC1kaXNhYmxlIEBhbmd1bGFyLWVzbGludC9uby1vdXRwdXQtbmF0aXZlICovXHJcbmltcG9ydCB7IEJyZWFkY3J1bWIgfSBmcm9tICdwcmltZW5nL2JyZWFkY3J1bWInO1xyXG5pbXBvcnQgeyBEaXZpZGVyTW9kdWxlIH0gZnJvbSAncHJpbWVuZy9kaXZpZGVyJztcclxuLy8gc3JjL2FwcC9zaGFyZWQvZ2VuZXJpYy1jcnVkLXRhYmxlL2dlbmVyaWMtY3J1ZC10YWJsZS5jb21wb25lbnQudHNcclxuaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCwgT3V0cHV0LCBFdmVudEVtaXR0ZXIsIFZpZXdDaGlsZCwgaW5qZWN0LCBTaW1wbGVDaGFuZ2VzIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7IE1lc3NhZ2VNb2R1bGUgfSBmcm9tICdwcmltZW5nL21lc3NhZ2UnO1xyXG5pbXBvcnQgeyBCdXR0b25Nb2R1bGUgfSBmcm9tICdwcmltZW5nL2J1dHRvbic7XHJcbmltcG9ydCB7IFBhZ2luYXRvclN0YXRlIH0gZnJvbSAncHJpbWVuZy9wYWdpbmF0b3InO1xyXG5pbXBvcnQgeyBUYWJsZU1vZHVsZSxUYWJsZUxhenlMb2FkRXZlbnQgIH0gIGZyb20gJ3ByaW1lbmcvdGFibGUnO1xyXG5pbXBvcnQgeyBUb29sYmFyTW9kdWxlIH0gICBmcm9tICdwcmltZW5nL3Rvb2xiYXInO1xyXG5pbXBvcnQgeyBUcmFuc2xhdGVNb2R1bGUsIFRyYW5zbGF0ZVNlcnZpY2UgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcclxuaW1wb3J0IHsgRm9ybWx5RmllbGRDb25maWcsIEZvcm1seUZvcm0sIEZvcm1seUZvcm1PcHRpb25zIH0gZnJvbSAnQG5neC1mb3JtbHkvY29yZSc7XHJcbmltcG9ydCB7IEljb25GaWVsZE1vZHVsZSB9IGZyb20gJ3ByaW1lbmcvaWNvbmZpZWxkJztcclxuaW1wb3J0IHsgTWVudUl0ZW0gfSBmcm9tICdwcmltZW5nL2FwaSc7XHJcbmltcG9ydCB7IERyYXdlck1vZHVsZSB9IGZyb20gJ3ByaW1lbmcvZHJhd2VyJztcclxuaW1wb3J0IHsgRGlhbG9nTW9kdWxlIH0gZnJvbSAncHJpbWVuZy9kaWFsb2cnO1xyXG5pbXBvcnQgeyBGb3Jtc01vZHVsZSwgUmVhY3RpdmVGb3Jtc01vZHVsZSwgVW50eXBlZEZvcm1Hcm91cCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IEJhc2VTZXJ2aWNlIH0gZnJvbSAnQGVsaXRlLmZyYW1ld29yay9uZy5jb3JlL3NlcnZpY2VzJztcclxuaW1wb3J0IHsgQnV0dG9uQ29uZmlnIH0gZnJvbSAnQGVsaXRlLmZyYW1ld29yay9uZy5jb3JlL21vZGVscyc7XHJcbmltcG9ydCB7IFN3YWxTZXJ2aWNlIH0gZnJvbSAnQGVsaXRlLmZyYW1ld29yay9uZy5jb3JlL3NlcnZpY2VzJztcclxuaW1wb3J0IHsgQWN0aW9uRGVmIH0gZnJvbSAnQGVsaXRlLmZyYW1ld29yay9uZy5jb3JlL21vZGVscyc7XHJcbmltcG9ydCB7IEJyZWFkY3J1bWJDb21wb25lbnQgfSBmcm9tICdAZWxpdGUuZnJhbWV3b3JrL25nLnVpLmNvcmUvYnJlYWRjcnVtYic7XHJcbmltcG9ydCB7IEdlbmVyaWNCdXR0b24gfSBmcm9tICdAZWxpdGUuZnJhbWV3b3JrL25nLnVpLmNvcmUvZ2VuZXJpYy1idXR0b24nO1xyXG5pbXBvcnQgeyBHZW5lcmljVGFibGUgfSBmcm9tICdAZWxpdGUuZnJhbWV3b3JrL25nLnVpLmNvcmUvZ2VuZXJpYy10YWJsZSc7XHJcbmltcG9ydCB7IEdlbmVyaWNTZWFyY2ggfSBmcm9tICdAZWxpdGUuZnJhbWV3b3JrL25nLnVpLmNvcmUvZ2VuZXJpYy1zZWFyY2gnO1xyXG5pbXBvcnQgeyBVaUJ1dHRvbkNvbXBvbmVudCB9IGZyb20gJ0BlbGl0ZS5mcmFtZXdvcmsvbmcudWkuY29yZS91aS1idXR0b24nO1xyXG5cclxuZXhwb3J0IGludGVyZmFjZSBQYWdlQ2hhbmdlUGF5bG9hZCBleHRlbmRzIFBhZ2luYXRvclN0YXRlIHtcclxuc29ydD86IHN0cmluZztcclxuZmlsdGVycz86IFJlY29yZDxzdHJpbmcsIGFueT47XHJcbn1cclxuXHJcbmV4cG9ydCB0eXBlIEFjdGlvbnNNb2RlID0gJ2J1dHRvbnMnIHwgJ21lbnUnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdhcHAtZ2VuZXJpYy1jcnVkLXRhYmxlJyxcclxuICBzdGFuZGFsb25lOiB0cnVlLFxyXG4gIGltcG9ydHM6IFtcclxuICAgIENvbW1vbk1vZHVsZSxcclxuICAgIFRhYmxlTW9kdWxlLFxyXG4gICAgR2VuZXJpY0J1dHRvbixcclxuICAgIEJ1dHRvbk1vZHVsZSxcclxuICAgIEdlbmVyaWNTZWFyY2gsXHJcbiAgICBHZW5lcmljVGFibGUsXHJcbiAgICBUb29sYmFyTW9kdWxlLFxyXG4gICAgVHJhbnNsYXRlTW9kdWxlLFxyXG4gICAgRGl2aWRlck1vZHVsZSxcclxuICAgIEljb25GaWVsZE1vZHVsZSxcclxuICAgIERyYXdlck1vZHVsZSxcclxuICAgIEZvcm1seUZvcm0sXHJcbiAgICBSZWFjdGl2ZUZvcm1zTW9kdWxlLFxyXG4gICAgRm9ybXNNb2R1bGUsXHJcbiAgICBNZXNzYWdlTW9kdWxlLFxyXG4gICAgQnJlYWRjcnVtYkNvbXBvbmVudCxcclxuICAgIERpYWxvZ01vZHVsZSxcclxuICAgIFVpQnV0dG9uQ29tcG9uZW50XHJcbl0sXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2dlbmVyaWMtY3J1ZC10YWJsZS5odG1sJyxcclxuICAgaG9zdDoge1xyXG4gICAgICAgIGNsYXNzOiAnaC1mdWxsIGZsZXgtMSBmbGV4IGZsZXgtY29sIG92ZXJmbG93LWhpZGRlbiBib3JkZXIgYm9yZGVyLXN1cmZhY2Ugcm91bmRlZC0yeGwgeHM6cm91bmRlZC0yeGwgcC00IGJnLXdoaXRlJ1xyXG4gICAgfSxcclxufSlcclxuXHJcbmV4cG9ydCBjbGFzcyBHZW5lcmljQ3J1ZFRhYmxlQ29tcG9uZW50PFQ+IHtcclxuIEBWaWV3Q2hpbGQoJ2dlbmVyaWNUYWJsZScpIGdlbmVyaWNUYWJsZSE6IEdlbmVyaWNUYWJsZTxUPjtcclxuIHRyYW5zbGF0ZTpUcmFuc2xhdGVTZXJ2aWNlID0gaW5qZWN0KFRyYW5zbGF0ZVNlcnZpY2UpO1xyXG4gcHJpdmF0ZSBzd2FsU2VydmljZSA9IGluamVjdChTd2FsU2VydmljZSk7XHJcblxyXG4gICAgaG9tZTogTWVudUl0ZW0gfCB1bmRlZmluZWQgPSB7IGljb246ICdwaSBwaS1ob21lJywgcm91dGVyTGluazogJy8nIH07XHJcbiAgQElucHV0KCkgZGF0YTogVFtdID0gW107XHJcbiAgIGZvcm1GaWVsZHNfOiBGb3JtbHlGaWVsZENvbmZpZ1tdID0gW107ICAvLyA8LS0g2YfZhtinXHJcbiAgQElucHV0KCkgZm9ybUZpZWxkczogRm9ybWx5RmllbGRDb25maWdbXSA9IFtdOyAgLy8gPC0tINmH2YbYp1xyXG4gIEBJbnB1dCgpIGNvbHVtbnM6IEZvcm1seUZpZWxkQ29uZmlnW10gPSBbXTsgIC8vIDwtLSDZh9mG2KdcclxuICBASW5wdXQoKSBkaWFsb2dNYXhXaWR0aCA9ICc0MHJlbSc7IC8vIHVuc2V0ICwgZml0LWNvbnRlbnRcclxuICBASW5wdXQoKSBpc1ZpZXdNb2RlID0gZmFsc2U7XHJcbiAgQElucHV0KCkgZGlzcGxheU1vZGU6XHJcbiAgfCAnZHJhd2VyJyB8ICdkaWFsb2cnIHwgJ3JvdXRlJ1xyXG4gIHwgUGFydGlhbDxSZWNvcmQ8J2FkZCcgfCAnZWRpdCcgfCAndmlldycsICdkcmF3ZXInIHwgJ2RpYWxvZycgfCAncm91dGUnPj5cclxuICA9ICdkcmF3ZXInO1xyXG4gIEBJbnB1dCgpIGlzRWRpdE1vZGUgPSBmYWxzZTtcclxuICBASW5wdXQoKSBkcmF3ZXJWaXNpYmxlID0gZmFsc2U7XHJcbiAgQElucHV0KCkgZGlhbG9nVmlzaWJsZSA9IGZhbHNlO1xyXG4gICBmb3JtID0gbmV3IFVudHlwZWRGb3JtR3JvdXAoe30pO1xyXG4gQElucHV0KCkgbW9kZWw6IGFueTtcclxuICBtb2RlbF86IGFueSA9IHt9O1xyXG4gIEBJbnB1dCgpIGxvYWRpbmcgPSBmYWxzZTtcclxuICBASW5wdXQoKSBlcnJvck1zZyA9ICcnO1xyXG4gIEBJbnB1dCgpIGVycm9yTWVzc2FnZTogc3RyaW5nfGFueSA9ICcnO1xyXG5cclxub3B0aW9uczogRm9ybWx5Rm9ybU9wdGlvbnMgPSB7fTtcclxuXHJcbiAgQElucHV0KCkgYWN0aW9uczogQWN0aW9uRGVmPFQ+W10gPSBbXTtcclxuICAgIC8qKiDYqtit2K/YryDYt9ix2YrZgtipINin2YTYudix2LY6ICdidXR0b25zJyDYo9mIICdtZW51JyAqL1xyXG4gIEBJbnB1dCgpIGFjdGlvbnNNb2RlOiBBY3Rpb25zTW9kZSA9ICdidXR0b25zJztcclxuICBAT3V0cHV0KCkgYWN0aW9uID0gbmV3IEV2ZW50RW1pdHRlcjx7IG5hbWU6IHN0cmluZzsgcm93OiBUIH0+KCk7XHJcbiAgQE91dHB1dCgpIGJ1bGtBY3Rpb24gPSBuZXcgRXZlbnRFbWl0dGVyPHsgbmFtZTogc3RyaW5nOyBpdGVtczogVFtdIH0+KCk7XHJcbiAgQE91dHB1dCgpIHNpbmdsZUFjdGlvbiA9IG5ldyBFdmVudEVtaXR0ZXI8eyBuYW1lOiBzdHJpbmc7IGl0ZW06IFQgfT4oKTtcclxuXHJcbiAgLy8g2KfZhNio2K3Yq1xyXG4vLyBTZWFyY2hcclxuICBASW5wdXQoKSBmaWx0ZXJzOiBhbnk7XHJcbiAgIEBJbnB1dCgpIGZpbHRlck1vZGVsOiBhbnkgPSB7fTtcclxuICBAT3V0cHV0KCkgc2VhcmNoID0gbmV3IEV2ZW50RW1pdHRlcjx7IGZpZWxkOiBzdHJpbmc7IGdsb2JhbDogc3RyaW5nIH0+KCk7XHJcblxyXG4vKiog2YTZhNiq2K3Zg9mFINio2KXYuNmH2KfYsS/Ypdiu2YHYp9ihINmC2LPZhSDYp9mE2KjYrdirICovXHJcbiAgQElucHV0KCkgc2hvd1NlYXJjaCA9IHRydWU7XHJcblxyXG4gIC8qKiBQYWdpbmF0aW9uIElucHV0cyAqL1xyXG4gIEBJbnB1dCgpIGZpcnN0ID0gMDtcclxuICBASW5wdXQoKSByb3dzID0gMTA7XHJcbiAgQElucHV0KCkgdG90YWxSZWNvcmRzID0gMDtcclxuICBAT3V0cHV0KCkgcGFnZUNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8UGFnZUNoYW5nZVBheWxvYWQ+KCk7XHJcbiAgQE91dHB1dCgpIG9uU2VhcmNoID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XHJcblxyXG5AT3V0cHV0KCkgdmlzaWJsZUNoYW5nZTogRXZlbnRFbWl0dGVyPGJvb2xlYW4+ID0gbmV3IEV2ZW50RW1pdHRlcjxib29sZWFuPigpOztcclxuLy8gQE91dHB1dCgpIHZpc2libGVDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPGJvb2xlYW4+KCk7XHJcbnZpZXdIZWFkZXJUaXRsZSA9ICfYudix2LYg2KfZhNiq2YHYp9i12YrZhCc7XHJcbiAgIC8qKiDZhNis2LnZhCDYp9mE2KzYr9mI2YQg2YLYp9io2YQg2YTYp9iu2KrZitin2LEg2KfZhNi12YHZiNmBICjYp9mB2KrYsdin2LbZiiBmYWxzZSkgKi9cclxuICBASW5wdXQoKSByb3dTZWxlY3RhYmxlID0gZmFsc2U7XHJcbiAgLyoqINit2K/YqyDZitiu2LHYrCDYp9mE2LXZgSDYp9mE2YXYrdiv2ZHYryAqL1xyXG4gIEBPdXRwdXQoKSByb3dTZWxlY3QgPSBuZXcgRXZlbnRFbWl0dGVyPFQ+KCk7XHJcblxyXG4gIHNlbGVjdGlvbjogVCB8IG51bGwgPSBudWxsO1xyXG5cclxuIC8vINin2YTZgdix2LJcclxuICBzb3J0RmllbGQ/OiBzdHJpbmc7XHJcbiAgc29ydE9yZGVyOiAxIHwgLTEgPSAxO1xyXG5cclxuQElucHV0KCkgc2Nyb2xsSGVpZ2h0ID0gJzQwMHB4JztcclxuXHJcbiBASW5wdXQoKSBwYWdpbmF0b3IgPSB0cnVlO1xyXG5cclxuQElucHV0KCkgc2VydmljZTogQmFzZVNlcnZpY2V8YW55O1xyXG5ASW5wdXQoKSBpZEZpZWxkID0gJ2lkJztcclxuXHJcbiBASW5wdXQoKSBzaG93Um93U2VsZWN0aW9uQ2hlY2tib3ggPSBmYWxzZTtcclxuXHJcbiAgQElucHV0KCkgYnVsa0FjdGlvbkJ1dHRvbnM6IEJ1dHRvbkNvbmZpZ1tdID0gW107XHJcbiAgQElucHV0KCkgc2luZ2xlQWN0aW9uQnV0dG9uczogQnV0dG9uQ29uZmlnW10gPSBbXTtcclxuXHJcbiBfc2VsZWN0ZWRSb3dzOiBUW10gPSBbXTtcclxuXHJcbmdldCBpc1NpbmdsZUl0ZW1TZWxlY3RlZCgpOiBib29sZWFuIHtcclxuICByZXR1cm4gdGhpcy5fc2VsZWN0ZWRSb3dzLmxlbmd0aCA9PT0gMTtcclxufVxyXG5cclxuZ2V0IGlzTXVsdGlwbGVJdGVtU2VsZWN0ZWQoKTogYm9vbGVhbiB7XHJcbiAgcmV0dXJuIHRoaXMuX3NlbGVjdGVkUm93cy5sZW5ndGggPiAxO1xyXG59XHJcblxyXG5nZXQgc2VsZWN0ZWRJdGVtcygpOiBUW10ge1xyXG4gIHJldHVybiB0aGlzLl9zZWxlY3RlZFJvd3M7XHJcbn1cclxuXHJcblxyXG5cclxuLyoqINmE2YTYqtit2YPZhSDYqNil2LjZh9in2LEg2LLYsSDYp9mE2KXYttin2YHYqSAqL1xyXG5ASW5wdXQoKSBzaG93QWRkQnV0dG9uID0gdHJ1ZTtcclxuQElucHV0KCkgc3BsaXRBY3Rpb25zOiBNZW51SXRlbVtdID0gW107XHJcbi8qKiDYp9mE2KPZitmC2YjZhtipINin2YTYp9mB2KrYsdin2LbZitipINmE2LLYsSDYp9mE2KXYttin2YHYqSAqL1xyXG5ASW5wdXQoKSBhZGRCdXR0b25JY29uID0gJ3BpIHBpLXBsdXMnO1xyXG4vKiog2KfZhNmG2LUg2KfZhNin2YHYqtix2KfYttmKINmE2LLYsSDYp9mE2KXYttin2YHYqSAqL1xyXG5ASW5wdXQoKSBhZGRCdXR0b25MYWJlbCA9ICdBREQnO1xyXG4gIC8qKiDYqtiq2K3Zg9mR2YUg2KjZhdmI2YLYuSDYstixINin2YTYpdi22KfZgdipOiAndG9wJyDYo9mIICdib3R0b20nICovXHJcbkBJbnB1dCgpIGFkZEJ1dHRvblBvc2l0aW9uOiAndG9wJyB8ICdib3R0b20nID0gJ3RvcCc7XHJcblxyXG4gQElucHV0KCkgYWRkQnV0dG9uQ29uZmlnczogQnV0dG9uQ29uZmlnW10gPSBbXTtcclxuXHJcbkBJbnB1dCgpIGJyZWFkY3J1bWI6IE1lbnVJdGVtW10gfCB1bmRlZmluZWQ7XHJcblxyXG5cclxuZ2V0IGJyZWFkY3J1bWJfKCk6IE1lbnVJdGVtW10gfCB1bmRlZmluZWQge1xyXG4gIHJldHVybiB0aGlzLmJyZWFkY3J1bWI/Lm1hcCh2ID0+ICh7XHJcbiAgICAuLi52LFxyXG4gICAgbGFiZWw6IHRoaXMudHJhbnNsYXRlLmluc3RhbnQodi5sYWJlbCA/PyAnJylcclxuICB9KSk7XHJcbn1cclxuZ2V0IHJ0bCgpOiBib29sZWFuIHtcclxuICB0cnkge1xyXG4gICAgcmV0dXJuIGRvY3VtZW50Py5kb2N1bWVudEVsZW1lbnQ/LmRpciA9PT0gJ3J0bCc7XHJcbiAgfSBjYXRjaCAoZXJyb3IpIHtcclxuICAgIHJldHVybiB0cnVlO1xyXG4gIH1cclxufVxyXG4vLyAgcHJpdmF0ZSBkZXN0cm95JCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XHJcbiAvKiog2KfZhNii2YYg2YrYqtmE2YLZkdmJIHBhZ2luYXRpb24gKyBzb3J0INmB2Yog2K3Yr9irINmI2KfYrdivICovXHJcbm9uTGF6eUxvYWQoZXZlbnQ6IFRhYmxlTGF6eUxvYWRFdmVudCkge1xyXG4gIC8vIHRoaXMubW9kZWxfPSB0aGlzLm1vZGVsID8/IHt9O1xyXG4gIHRoaXMubW9kZWw9IHRoaXMubW9kZWwgPz8ge307XHJcblxyXG4gIHRoaXMuZm9ybUZpZWxkc18gPSB0aGlzLmZvcm1GaWVsZHM7XHJcbiAgY29uc3QgZmlyc3QgICAgID0gZXZlbnQuZmlyc3QgID8/IHRoaXMuZmlyc3Q7XHJcbiAgY29uc3Qgcm93cyAgICAgID0gZXZlbnQucm93cyAgID8/IHRoaXMucm93cztcclxuICBjb25zdCBzb3J0RmllbGQgPSB0eXBlb2YgZXZlbnQuc29ydEZpZWxkID09PSAnc3RyaW5nJ1xyXG4gICAgICAgICAgICAgICAgICAgID8gZXZlbnQuc29ydEZpZWxkXHJcbiAgICAgICAgICAgICAgICAgICAgOiB0aGlzLnNvcnRGaWVsZDtcclxuICBjb25zdCBzb3J0T3JkZXIgPSBldmVudC5zb3J0T3JkZXIgPT09IC0xID8gLTEgOiAxO1xyXG5cclxuXHJcbiAgY29uc3QgZmlsdGVyczogUmVjb3JkPHN0cmluZywgYW55PiA9IHt9O1xyXG4gICAgaWYgKGV2ZW50LmZpbHRlcnMpIHtcclxuICAgICAgT2JqZWN0LmVudHJpZXMoZXZlbnQuZmlsdGVycykuZm9yRWFjaCgoW2ZpZWxkLCBtZXRhXSkgPT4ge1xyXG4gICAgICAgIGNvbnN0IHZhbHVlID0gKG1ldGEgYXMgYW55KS52YWx1ZTtcclxuICAgICAgICBpZiAodmFsdWUgIT0gbnVsbCAmJiB2YWx1ZSAhPT0gJycpIHtcclxuICAgICAgICAgIGZpbHRlcnNbZmllbGRdID0gdmFsdWU7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgdGhpcy5maXJzdCAgICAgPSBmaXJzdDtcclxuICB0aGlzLnJvd3MgICAgICA9IHJvd3M7XHJcbiAgdGhpcy5zb3J0RmllbGQgPSBzb3J0RmllbGQ7XHJcbiAgdGhpcy5zb3J0T3JkZXIgPSBzb3J0T3JkZXIgYXMgMXwgLTE7XHJcbmNvbnN0IGRpciA9IHNvcnRPcmRlciA9PT0gMSA/ICdhc2MnIDogJ2Rlc2MnO1xyXG4gY29uc3Qgc29ydCA9IHNvcnRGaWVsZCA/IGAke3NvcnRGaWVsZH0gJHtkaXJ9YCA6IHVuZGVmaW5lZDtcclxuXHJcbiAgdGhpcy5wYWdlQ2hhbmdlLmVtaXQoeyBmaXJzdCwgcm93cyAsc29ydCwgZmlsdGVycyB9KTtcclxuXHJcbiAgLy8g2YrYqNmG2Yog2KfZhNmG2LUg2YjYpdix2LPYp9mE2YdcclxuXHJcbn1cclxuXHJcblxyXG4gIC8qKiDYqti12YrZitixINin2YTYqNmK2KfZhtin2Kog2K3Ys9ioINin2YTYtdmB2K3YqSAqL1xyXG4gIGdldCBwYWdlZERhdGEoKTogVFtdIHtcclxuICAgIC8vIHJldHVybiB0aGlzLmRhdGEgPyB0aGlzLmRhdGEuc2xpY2UodGhpcy5maXJzdCwgdGhpcy5maXJzdCArIHRoaXMucm93cykgOiBbXTtcclxuXHJcbiAgICByZXR1cm4gdGhpcy5kYXRhO1xyXG4gIH1cclxuXHJcblxyXG5cclxuZ2V0IGdsb2JhbEZpbHRlckZpZWxkcygpOiBzdHJpbmdbXSB7XHJcbiAgcmV0dXJuIHRoaXMuY29sdW1ucy5tYXAoYyA9PiBTdHJpbmcoYy5rZXkpKTtcclxufVxyXG5cclxuXHJcblxyXG5cclxuXHJcbiAgLyoqINij2LHYs9mEINil2YTZiSDYp9mE2KPYqCDZhNij2KrZhdiq2Kkg2LTZg9mEINin2YTYqNit2Ksg2KXYsNinINmK2K3Yqtin2KwgKi9cclxuLy8gZnJvbSBnZW5lcmljLWNydWQtdGFibGUuY29tcG9uZW50LnRzXHJcblxyXG4vKiog2KjYr9mR2YQgYXBwbHlTZWFyY2gg2YTYqtio2KsgcGFnZUNoYW5nZSDZhdio2KfYtNix2KnZiyAqL1xyXG4gYXBwbHlTZWFyY2goZmlsdGVyczogYW55KSB7XHJcbiAgICAvLyB0aGlzLmdlbmVyaWNUYWJsZS5hcHBseUZpbHRlcihnbG9iYWwpO1xyXG4gICAgICB0aGlzLm9uU2VhcmNoLmVtaXQoZmlsdGVycyk7XHJcbiAgfVxyXG5cclxuXHJcbiAvKiog2K/Yp9mE2Kkg2KrZhtmB2ZHYsCDYudmG2K8g2KfZhNmG2YLYsSDYudmE2Ykg2LXZgSAqL1xyXG4gIG9uUm93Q2xpY2socm93OiBUKSB7XHJcbiAgICBpZiAodGhpcy5yb3dTZWxlY3RhYmxlKSB7XHJcbiAgICAgIHRoaXMucm93U2VsZWN0LmVtaXQocm93KTtcclxuICAgIH1cclxuICB9XHJcblxyXG5cclxuICAgQElucHV0KCkgYmVmb3JlU2F2ZTogKHJlY29yZDogVCkgPT4gVCA9IChyZWNvcmQpID0+IHJlY29yZDtcclxuXHJcbm9uU3VibWl0KCkge1xyXG4gIGlmICh0aGlzLmZvcm0uaW52YWxpZCkgcmV0dXJuO1xyXG5cclxuICB0aGlzLnN3YWxTZXJ2aWNlLmNvbmZpcm0oXHJcbiAgICB0aGlzLmlzRWRpdE1vZGUgPyAn2KrYo9mD2YrYryDYp9mE2KrYudiv2YrZhCcgOiAn2KrYo9mD2YrYryDYp9mE2K3Zgdi4JyxcclxuICAgIHRoaXMuaXNFZGl0TW9kZVxyXG4gICAgICA/ICfZh9mEINiq2LHZitivINit2YHYuCDYp9mE2KrYudiv2YrZhNin2Kog2LnZhNmJINmH2LDYpyDYp9mE2LPYrNmE2J8nXHJcbiAgICAgIDogJ9mH2YQg2KrYsdmK2K8g2K3Zgdi4INmH2LDYpyDYp9mE2LPYrNmE2J8nLFxyXG4gICAgJ9mG2LnZhScsXHJcbiAgICAn2KXZhNi62KfYoSdcclxuICApLnRoZW4oKHJlc3VsdCkgPT4ge1xyXG4gICAgaWYgKCFyZXN1bHQuaXNDb25maXJtZWQpIHJldHVybjtcclxuXHJcbiAgICB0aGlzLmxvYWRpbmcgPSB0cnVlO1xyXG4gICAgdGhpcy5lcnJvck1lc3NhZ2UgPSBudWxsO1xyXG5cclxuICAgIGNvbnN0IGlkID0gdGhpcy5pc0VkaXRNb2RlID8gKHRoaXMubW9kZWwgYXMgYW55KVt0aGlzLmlkRmllbGRdIDogbnVsbDtcclxuICAgIGNvbnN0IHJlY29yZFRvU2F2ZSA9IHRoaXMuYmVmb3JlU2F2ZSh7IC4uLnRoaXMubW9kZWwgfSk7XHJcblxyXG4gICAgY29uc3Qgb3BlcmF0aW9uJCA9IHRoaXMuaXNFZGl0TW9kZVxyXG4gICAgICA/IHRoaXMuc2VydmljZS51cGRhdGUoaWQsIHJlY29yZFRvU2F2ZSlcclxuICAgICAgOiB0aGlzLnNlcnZpY2UuY3JlYXRlKHJlY29yZFRvU2F2ZSk7XHJcblxyXG4gICAgb3BlcmF0aW9uJC5zdWJzY3JpYmUoe1xyXG4gICAgICBuZXh0OiAoKSA9PiB7XHJcbiAgICAgICAgdGhpcy5sb2FkaW5nID0gZmFsc2U7XHJcblxyXG4gICAgICAgIC8vIOKchSDYsdiz2KfZhNipINmG2KzYp9itXHJcbiAgICAgICAgdGhpcy5zd2FsU2VydmljZS5zdWNjZXNzKFxyXG4gICAgICAgICAgdGhpcy5pc0VkaXRNb2RlID8gJ9iq2YUg2KfZhNiq2LnYr9mK2YQg2KjZhtis2KfYrScgOiAn2KrZhSDYp9mE2K3Zgdi4INio2YbYrNin2K0nXHJcbiAgICAgICAgKTtcclxuXHJcbiAgICAgICAgdGhpcy52aXNpYmxlQ2hhbmdlLmVtaXQoZmFsc2UpO1xyXG4gICAgICAgIHRoaXMuYXBwbHlTZWFyY2goJycpO1xyXG4gICAgICB9LFxyXG4gICAgICBlcnJvcjogKCkgPT4ge1xyXG4gICAgICAgIC8vIOKdjCDZhdinINmG2LnYsdi2INix2LPYp9mE2Kkg2K7Yt9ijINmH2YbYpyDZhNij2YYg2KfZhNmAIGludGVyY2VwdG9yINmK2KrZg9mB2YQg2YHZitmH2KdcclxuICAgICAgICB0aGlzLmxvYWRpbmcgPSBmYWxzZTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgfSk7XHJcbn1cclxuXHJcblxyXG4vLyAgIG9uU3VibWl0KCkge1xyXG4vLyAgIGlmICh0aGlzLmZvcm0uaW52YWxpZCkgcmV0dXJuO1xyXG5cclxuLy8gICAvLyDinIUg2KPZiNmEINi02YrYoSDZhti32YTYqCDYqtij2YPZitivINmF2YYg2KfZhNmF2LPYqtiu2K/ZhVxyXG4vLyAgIHRoaXMuc3dhbFNlcnZpY2UuY29uZmlybShcclxuLy8gICAgIHRoaXMuaXNFZGl0TW9kZSA/ICfYqtij2YPZitivINin2YTYqti52K/ZitmEJyA6ICfYqtij2YPZitivINin2YTYrdmB2LgnLFxyXG4vLyAgICAgdGhpcy5pc0VkaXRNb2RlXHJcbi8vICAgICAgID8gJ9mH2YQg2KrYsdmK2K8g2K3Zgdi4INin2YTYqti52K/ZitmE2KfYqiDYudmE2Ykg2YfYsNinINin2YTYs9is2YTYnydcclxuLy8gICAgICAgOiAn2YfZhCDYqtix2YrYryDYrdmB2Lgg2YfYsNinINin2YTYs9is2YTYnycsXHJcbi8vICAgICAn2YbYudmFJyxcclxuLy8gICAgICfYpdmE2LrYp9ihJ1xyXG4vLyAgICkudGhlbigocmVzdWx0KSA9PiB7XHJcbi8vICAgICBpZiAoIXJlc3VsdC5pc0NvbmZpcm1lZCkgcmV0dXJuO1xyXG5cclxuLy8gICAgIHRoaXMubG9hZGluZyA9IHRydWU7XHJcbi8vICAgICB0aGlzLmVycm9yTWVzc2FnZSA9IG51bGw7XHJcblxyXG4vLyAgICAgY29uc3Qgc2VydmljZSA9IHRoaXMuc2VydmljZTtcclxuLy8gICAgIGNvbnN0IGlkID0gdGhpcy5pc0VkaXRNb2RlID8gKHRoaXMubW9kZWwgYXMgYW55KVt0aGlzLmlkRmllbGRdIDogbnVsbDtcclxuXHJcbi8vICAgICBjb25zdCByZWNvcmRUb1NhdmUgPSB0aGlzLmJlZm9yZVNhdmUoeyAuLi50aGlzLm1vZGVsIH0pO1xyXG5cclxuLy8gICAgIGNvbnN0IG9wZXJhdGlvbiQ6IE9ic2VydmFibGU8YW55PiA9IHRoaXMuaXNFZGl0TW9kZVxyXG4vLyAgICAgICA/IHNlcnZpY2UudXBkYXRlKGlkLCByZWNvcmRUb1NhdmUpXHJcbi8vICAgICAgIDogc2VydmljZS5jcmVhdGUocmVjb3JkVG9TYXZlKTtcclxuXHJcbi8vICAgICBvcGVyYXRpb24kLnN1YnNjcmliZSh7XHJcbi8vICAgICAgIG5leHQ6ICgpID0+IHtcclxuLy8gICAgICAgICB0aGlzLmxvYWRpbmcgPSBmYWxzZTtcclxuXHJcbi8vICAgICAgICAgLy8g4pyFINix2LPYp9mE2Kkg2YbYrNin2K1cclxuLy8gICAgICAgICB0aGlzLnN3YWxTZXJ2aWNlLnN1Y2Nlc3MoXHJcbi8vICAgICAgICAgICB0aGlzLmlzRWRpdE1vZGUgPyAn2KrZhSDYp9mE2KrYudiv2YrZhCDYqNmG2KzYp9itJyA6ICfYqtmFINin2YTYrdmB2Lgg2KjZhtis2KfYrSdcclxuLy8gICAgICAgICApO1xyXG5cclxuLy8gICAgICAgICB0aGlzLnZpc2libGVDaGFuZ2UuZW1pdChmYWxzZSk7XHJcbi8vICAgICAgICAgdGhpcy5hcHBseVNlYXJjaCgnJyk7XHJcbi8vICAgICAgIH0sXHJcbi8vICAgICAgIGVycm9yOiAoZXJyOiBhbnkpID0+IHtcclxuLy8gICAgICAgICB0aGlzLmxvYWRpbmcgPSBmYWxzZTtcclxuXHJcbi8vICAgICAgICAgY29uc3QgbXNnID1cclxuLy8gICAgICAgICAgIGVyci5lcnJvcj8udGl0bGUgfHxcclxuLy8gICAgICAgICAgIGVyci5tZXNzYWdlIHx8XHJcbi8vICAgICAgICAgICAn2K3Yr9irINiu2LfYoyDYo9ir2YbYp9ihINin2YTYrdmB2LguINmK2LHYrNmJINin2YTZhdit2KfZiNmE2Kkg2YXYsdipINij2K7YsdmJLic7XHJcblxyXG4vLyAgICAgICAgIHRoaXMuZXJyb3JNZXNzYWdlID0gbXNnO1xyXG5cclxuLy8gICAgICAgICAvLyDinYwg2LHYs9in2YTYqSDYrti32KNcclxuLy8gICAgICAgICB0aGlzLnN3YWxTZXJ2aWNlLmVycm9yKCfZgdi02YQg2KfZhNit2YHYuCcsIG1zZyk7XHJcbi8vICAgICAgIH1cclxuLy8gICAgIH0pO1xyXG4vLyAgIH0pO1xyXG4vLyB9XHJcblxyXG5cclxuICAgICB0cmFja0J5SWR4KGluZGV4OiBudW1iZXIsIGl0ZW06IGFueSk6IG51bWJlciB7XHJcbiAgcmV0dXJuIGluZGV4O1xyXG4gfVxyXG5cclxub25TaW5nbGVJdGVtQWN0aW9uKGJ0bjogQnV0dG9uQ29uZmlnKTogdm9pZCB7XHJcbiAgaWYgKCF0aGlzLmlzU2luZ2xlSXRlbVNlbGVjdGVkKSByZXR1cm47XHJcblxyXG4gIGNvbnN0IHNlbGVjdGVkSXRlbSA9IHRoaXMuX3NlbGVjdGVkUm93c1swXTtcclxuICB0aGlzLnNpbmdsZUFjdGlvbi5lbWl0KHtcclxuICAgIG5hbWU6IGJ0bi5hY3Rpb25OYW1lID8/ICdzaW5nbGVBY3Rpb24nLFxyXG4gICAgaXRlbTogc2VsZWN0ZWRJdGVtXHJcbiAgfSk7XHJcbn1cclxuXHJcbm9uSW50ZXJuYWxCdWxrQWN0aW9uKGJ0bjogQnV0dG9uQ29uZmlnKTogdm9pZCB7XHJcbiAgaWYgKCF0aGlzLmlzTXVsdGlwbGVJdGVtU2VsZWN0ZWQpIHJldHVybjtcclxuXHJcbiAgdGhpcy5idWxrQWN0aW9uLmVtaXQoe1xyXG4gICAgbmFtZTogYnRuLmFjdGlvbk5hbWUgPz8gJ2J1bGtBY3Rpb24nLFxyXG4gICAgaXRlbXM6IFsuLi50aGlzLl9zZWxlY3RlZFJvd3NdICAvLyDZhtix2LPZhCDZhtiz2K7YqSDZhdmGINin2YTZhdi12YHZiNmB2KlcclxuICB9KTtcclxufVxyXG5cclxuXHJcbn1cclxuIiwiXHJcbiA8ZGl2IGNsYXNzPVwiZmxleCBpdGVtcy1zdGFydCBnYXAtMiBqdXN0aWZ5LWJldHdlZW5cIj5cclxuICAgICAgICAgICAgPGRpdj5cclxuICAgICAgICAgICAgICAgPCEtLSA8ZGl2IGNsYXNzPVwidGV4dC0yeGwgbGVhZGluZy04IGZvbnQtbWVkaXVtIGJnLXNsYXRlLTgwMCBwLTQgcm91bmRlZC1tZFwiPlxyXG4gICAgICAgICAgICA8cC1icmVhZGNydW1iXHJcbiAgICAgICAgICAgICAgW21vZGVsXT1cImJyZWFkY3J1bWJfXCJcclxuICAgICAgICAgICAgICBbaG9tZV09XCJob21lXCJcclxuICAgICAgICAgICAgICBzdHlsZUNsYXNzPVwiY3VzdG9tLWJyZWFkY3J1bWJcIlxyXG4gICAgICAgICAgICA+PC9wLWJyZWFkY3J1bWI+XHJcbiAgICAgICAgICA8L2Rpdj4gLS0+XHJcblxyXG48YXBwLWJyZWFkY3J1bWIgY2xhc3M9XCJ4czpibG9jayBoaWRkZW5cIiBbYnJlYWRjcnVtYl09XCJicmVhZGNydW1iX1wiPjwvYXBwLWJyZWFkY3J1bWI+XHJcblxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuXHJcbjxkaXYgY2xhc3M9XCJmbGV4IGl0ZW1zLWNlbnRlciBnYXAtMiBqdXN0aWZ5LWVuZCBmbGV4LXdyYXBcIj5cclxuICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJpc1NpbmdsZUl0ZW1TZWxlY3RlZFwiPlxyXG4gPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgYnRuIG9mIHNpbmdsZUFjdGlvbkJ1dHRvbnM7IHRyYWNrQnk6IHRyYWNrQnlJZHhcIj5cclxuIDxsaWItZ2VuZXJpYy1idXR0b25cclxuXHJcbiAgW2ljb25dPVwiYnRuLmljb25cIlxyXG5bbGFiZWxdPVwiYnRuLmxhYmVsIHwgdHJhbnNsYXRlXCJcclxuW3ZhcmlhbnRdPVwiYnRuLnZhcmlhbnRcIlxyXG4gW3NpemVdPVwiYnRuLnNpemVcIlxyXG4gW3Blcm1pc3Npb25dPVwiYnRuLnBlcm1pc3Npb25cIlxyXG4gKGNsaWNrZWQpPVwib25TaW5nbGVJdGVtQWN0aW9uKGJ0bilcIlxyXG4gPjwvbGliLWdlbmVyaWMtYnV0dG9uPlxyXG48L25nLWNvbnRhaW5lcj5cclxuIDwvbmctY29udGFpbmVyPlxyXG5cclxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJzZWxlY3RlZEl0ZW1zLmxlbmd0aCA+IDBcIj5cclxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgYnRuIG9mIGJ1bGtBY3Rpb25CdXR0b25zOyB0cmFja0J5OiB0cmFja0J5SWR4XCI+XHJcbiAgICAgICAgPGxpYi1nZW5lcmljLWJ1dHRvblxyXG4gICAgICAgICAgW2ljb25dPVwiYnRuLmljb25cIlxyXG4gICAgICAgICAgW2xhYmVsXT1cImJ0bi5sYWJlbCB8IHRyYW5zbGF0ZVwiXHJcbiAgICAgICAgICBbdmFyaWFudF09XCJidG4udmFyaWFudFwiXHJcbiAgICAgICAgICBbc2l6ZV09XCJidG4uc2l6ZVwiXHJcbiAgICAgICAgICBbcGVybWlzc2lvbl09XCJidG4ucGVybWlzc2lvblwiXHJcbiAgICAgICAgICAoY2xpY2tlZCk9XCJvbkludGVybmFsQnVsa0FjdGlvbihidG4pXCJcclxuICAgICAgICA+PC9saWItZ2VuZXJpYy1idXR0b24+XHJcbiAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgPC9uZy1jb250YWluZXI+XHJcblxyXG4gICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBidG4gb2YgYWRkQnV0dG9uQ29uZmlnczsgdHJhY2tCeTogdHJhY2tCeUlkeFwiPlxyXG4gICAgICA8bGliLWdlbmVyaWMtYnV0dG9uXHJcbiAgICAgICAgW2ljb25dPVwiYnRuLmljb25cIlxyXG4gICAgICAgIFtsYWJlbF09XCJidG4ubGFiZWwgfCB0cmFuc2xhdGVcIlxyXG4gICAgICAgIFt2YXJpYW50XT1cImJ0bi52YXJpYW50XCJcclxuICAgICAgICBbc2l6ZV09XCJidG4uc2l6ZVwiXHJcbiAgICAgICAgW3Blcm1pc3Npb25dPVwiYnRuLnBlcm1pc3Npb25cIlxyXG4gICAgICAgIChjbGlja2VkKT1cIiB0aGlzLmFjdGlvbi5lbWl0KHsgbmFtZTogYnRuLmFjdGlvbk5hbWUgPz8gJ2FkZCcsIHJvdzogbnVsbCEgfSk7XCJcclxuICAgICAgPjwvbGliLWdlbmVyaWMtYnV0dG9uPlxyXG4gICAgPC9uZy1jb250YWluZXI+XHJcblxyXG5cclxuXHJcbiAgICAgICAgICAgIEBpZiAoKHNob3dBZGRCdXR0b24gfHwgc3BsaXRBY3Rpb25zLmxlbmd0aCA+IDApJiYgYWRkQnV0dG9uQ29uZmlncy5sZW5ndGggPT09IDApIHtcclxuXHJcbiAgICAgICAgICAgICAgQGlmIChzaG93QWRkQnV0dG9uICYmIHNwbGl0QWN0aW9ucy5sZW5ndGggID09PSAwKSB7XHJcblxyXG4gICAgICAgICAgICAgICAgIDwhLS0gPHAtYnV0dG9uXHJcbiAgICAgICAgICAgIGljb249XCJwaSBwaS1jaXJjbGUtZmlsbCB0ZXh0LWdyZWVuLTUwMFwiICpuZ0lmPVwic2hvd0FkZEJ1dHRvbiAmJiBhZGRCdXR0b25Db25maWdzLmxlbmd0aCA9PT0gMFwiXHJcbiAgICAgICAgICAgIFtsYWJlbF09XCIoYWRkQnV0dG9uTGFiZWwgfCB0cmFuc2xhdGUpXHJcbiAgICAgICAgICAgIFwiKG9uQ2xpY2spPVwiYWN0aW9uLmVtaXQoeyBuYW1lOiAnYWRkJywgcm93OiBudWxsISB9KVwiXHJcbiAgICAgICAgICAgIG91dGxpbmVkIHNldmVyaXR5PVwic2Vjb25kYXJ5XCIgLz4gLS0+XHJcblxyXG4gICAgICAgICAgICAgICAgPHVpLWJ1dHRvblxyXG4gICAgICAgICAgICAgICAgICBbY29uZmlnXT1cIntcclxuICAgICAgICAgICAgICAgICAgICB0eXBlOiAnYnV0dG9uJyxcclxuICAgICAgICAgICAgICAgICAgICBsYWJlbDogYWRkQnV0dG9uTGFiZWx8IHRyYW5zbGF0ZSxcclxuICAgICAgICAgICAgICAgICAgICBpY29uOiAncGkgcGktcGx1cycsXHJcbiAgICAgICAgICAgICAgICAgICAgc2V2ZXJpdHk6ICdwcmltYXJ5JyxcclxuICAgICAgICAgICAgICAgICAgICBvdXRsaW5lZDogZmFsc2UsXHJcbiAgICAgICAgICAgICAgICAgICAgc3R5bGVDbGFzczonJ1xyXG4gICAgICAgICAgICAgICAgICB9XCJcclxuICAgICAgICAgICAgICAgICAgKG9uQ2xpY2spPVwiYWN0aW9uLmVtaXQoeyBuYW1lOiAnYWRkJywgcm93OiBudWxsISB9KVwiPlxyXG4gICAgICAgICAgICAgICAgPC91aS1idXR0b24+XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgIEBlbHNlIHtcclxuICAgICAgICAgICAgICAgPCEtLSBTcGxpdCBCdXR0b24gLS0+XHJcbiAgICAgICAgICAgICAgICAgIDx1aS1idXR0b25cclxuICAgICAgICAgICAgICAgICAgICBbY29uZmlnXT1cIntcclxuICAgICAgICAgICAgICAgICAgICAgIHR5cGU6ICdzcGxpdCcsXHJcbiAgICAgICAgICAgICAgICAgICAgICBsYWJlbDogYWRkQnV0dG9uTGFiZWx8IHRyYW5zbGF0ZSxcclxuICAgICAgICAgICAgICAgICAgICAgIGljb246ICdwaSBwaS1wbHVzJyxcclxuICAgICAgICAgICAgICAgICAgICAgIHNldmVyaXR5OiAncHJpbWFyeScsXHJcbiAgICAgICAgICAgICAgICAgICAgICBsb2FkaW5nOiBmYWxzZSxcclxuICAgICAgICAgICAgICAgICAgICAgIG91dGxpbmVkOiBmYWxzZSxcclxuICAgICAgICAgICAgICAgICAgICAgIGl0ZW1zOiBzcGxpdEFjdGlvbnNcclxuICAgICAgICAgICAgICAgICAgICB9XCJcclxuICAgICAgICAgICAgICAgICAgICAob25DbGljayk9XCJhY3Rpb24uZW1pdCh7IG5hbWU6ICdhZGQnLCByb3c6IG51bGwhIH0pXCI+XHJcbiAgICAgICAgICAgICAgICAgIDwvdWktYnV0dG9uPlxyXG4gICAgICAgICAgICAgIH1cclxuXHJcblxyXG4gICAgICAgICAgICB9XHJcblxyXG5cclxuXHJcblxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwibXQtMiBtYi00IGZsZXggaXRlbXMtY2VudGVyIGp1c3RpZnktYmV0d2VlblwiPlxyXG5cclxuICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJzaG93U2VhcmNoICYmIGZpbHRlcnM7IGVsc2UgZW1wdHlTZWFyY2hcIj5cclxuICAgICAgICAgICA8bGliLWdlbmVyaWMtc2VhcmNoXHJcbiAgICAgICAgICAgICAgICBbbW9kZWxdPVwiZmlsdGVyTW9kZWxcIlxyXG4gICAgICAgICAgICAgICAgW2ZpZWxkc109XCJmaWx0ZXJzXCJcclxuICAgICAgICAgICAgICAgIChzZWFyY2gpPVwiYXBwbHlTZWFyY2goJGV2ZW50KVwiXHJcbiAgICAgICAgICAgICAgICAocmVzZXQpPVwiYXBwbHlTZWFyY2goJycpXCJcclxuICAgICAgICAgICAgICA+PC9saWItZ2VuZXJpYy1zZWFyY2g+XHJcbiAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuXHJcbiAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlICNlbXB0eVNlYXJjaD5cclxuICAgIDwhLS0gUmVuZGVyIGEgZHVtbXkgZGl2IHRvIHByZXNlcnZlIGV4cGVjdGVkIERPTSBzaGFwZSAtLT5cclxuICAgIDwhLS0gPGRpdiBjbGFzcz1cIm1pbi1oLVsyLjVyZW1dIHctWzEycmVtXVwiPjwvZGl2PiAtLT5cclxuICA8L25nLXRlbXBsYXRlPlxyXG4gICAgPCEtLSBzdHlsZT1cImRpcmVjdGlvbjogbHRyO1wiIC0tPlxyXG4gICAgICAgICAgICA8ZGl2ICBjbGFzcz1cImZsZXggaXRlbXMtY2VudGVyIGdhcC0zXCI+XHJcblxyXG4gICAgICAgICAgICAgIDxwLWJ1dHRvbiBpY29uPVwicGkgcGktcmVmcmVzaFwiIG91dGxpbmVkIHNldmVyaXR5PVwic2Vjb25kYXJ5XCIgKG9uQ2xpY2spPVwiYXBwbHlTZWFyY2goJycpXCIgLz5cclxuICAgICAgICAgICAgICA8cC1kaXZpZGVyIGxheW91dD1cInZlcnRpY2FsXCIgIGNsYXNzPVwibS0wIHAtMCB4czpibG9jayBoaWRkZW5cIiAvPlxyXG4gICAgICAgICAgICAgIDxwLWJ1dHRvbiBpY29uPVwicGkgcGktc29ydFwiIG91dGxpbmVkIHNldmVyaXR5PVwic2Vjb25kYXJ5XCIgY2xhc3M9XCJ4czpibG9jayBoaWRkZW5cIiAvPlxyXG4gICAgICAgICAgICAgICAgPHAtYnV0dG9uIGxhYmVsPVwiMSBvZiAxNVwiIG91dGxpbmVkIHNldmVyaXR5PVwic2Vjb25kYXJ5XCIgY2xhc3M9XCJ4czpibG9jayBoaWRkZW5cIiAgLz5cclxuICAgICAgICAgICAgICAgIDxwLWJ1dHRvbiBpY29uPVwicGkgcGktY2hldnJvbi1yaWdodFwiIG91dGxpbmVkIHNldmVyaXR5PVwic2Vjb25kYXJ5XCIgY2xhc3M9XCJ4czpibG9jayBoaWRkZW5cIiAgLz5cclxuICAgICAgICAgICAgICAgIDxwLWJ1dHRvbiBpY29uPVwicGkgcGktY2hldnJvbi1sZWZ0XCIgb3V0bGluZWQgc2V2ZXJpdHk9XCJzZWNvbmRhcnlcIiBjbGFzcz1cInhzOmJsb2NrIGhpZGRlblwiIC8+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG5cclxuXHJcblxyXG48bGliLWdlbmVyaWMtdGFibGVcclxuICBbc2hvd0FkZEJ1dHRvbl09XCJzaG93QWRkQnV0dG9uXCJcclxuICBbZGF0YV09XCJkYXRhXCJcclxuICBbY29sdW1uc109XCJjb2x1bW5zXCJcclxuICBbcGFnaW5hdG9yXT1cInBhZ2luYXRvclwiXHJcbiAgW2xvYWRpbmddPVwibG9hZGluZ1wiXHJcbiAgW2FjdGlvbnNdPVwiYWN0aW9uc1wiXHJcbiAgW2FjdGlvbnNNb2RlXT1cImFjdGlvbnNNb2RlXCJcclxuICBbZmlyc3RdPVwiZmlyc3RcIlxyXG4gIFtyb3dzXT1cInJvd3NcIlxyXG4gIFt0b3RhbFJlY29yZHNdPVwidG90YWxSZWNvcmRzXCJcclxuICBbc29ydEZpZWxkXT1cInNvcnRGaWVsZFwiXHJcbiAgW3NvcnRPcmRlcl09XCJzb3J0T3JkZXJcIlxyXG4gIFtnbG9iYWxGaWx0ZXJGaWVsZHNdPVwiZ2xvYmFsRmlsdGVyRmllbGRzXCJcclxuICBbc2Nyb2xsSGVpZ2h0XT1cInNjcm9sbEhlaWdodFwiXHJcbiAgW3Nob3dSb3dTZWxlY3Rpb25DaGVja2JveF09XCJzaG93Um93U2VsZWN0aW9uQ2hlY2tib3hcIlxyXG4gIChhY3Rpb24pPVwiYWN0aW9uLmVtaXQoJGV2ZW50KVwiXHJcbiAgKG9uQWRkTmV3KT1cImFjdGlvbi5lbWl0KHsgbmFtZTogJ2FkZCcsIHJvdzogbnVsbCEgfSlcIlxyXG4gIChwYWdlQ2hhbmdlKT1cIm9uTGF6eUxvYWQoJGV2ZW50KVwiXHJcbiAgW3Jvd1NlbGVjdGFibGVdPVwicm93U2VsZWN0YWJsZVwiXHJcbiAgKHJvd1NlbGVjdCk9XCJvblJvd0NsaWNrKCRldmVudClcIlxyXG4gIFsoc2VsZWN0aW9uKV09XCJfc2VsZWN0ZWRSb3dzXCJcclxuICAjZ2VuZXJpY1RhYmxlXHJcbj48L2xpYi1nZW5lcmljLXRhYmxlPlxyXG5cclxuXHJcblxyXG5cclxuPCEtLSBEcmF3ZXIgLS0+XHJcbjxwLWRyYXdlclxyXG4gICpuZ0lmPVwiKHR5cGVvZiBkaXNwbGF5TW9kZSA9PT0gJ3N0cmluZycgPyBkaXNwbGF5TW9kZSA6IGlzRWRpdE1vZGUgPyBkaXNwbGF5TW9kZVsnZWRpdCddIDogaXNWaWV3TW9kZSA9PT0gZmFsc2UgPyBkaXNwbGF5TW9kZVsnYWRkJ10gOiBkaXNwbGF5TW9kZVsndmlldyddICApID09PSAnZHJhd2VyJyAmJiBkcmF3ZXJWaXNpYmxlXCJcclxuICBbKHZpc2libGUpXT1cImRyYXdlclZpc2libGVcIlxyXG4gIFtjbG9zYWJsZV09XCJ0cnVlXCJcclxuICBbZGlzbWlzc2libGVdPVwiZmFsc2VcIlxyXG4gIFtjbG9zZU9uRXNjYXBlXT1cInRydWVcIlxyXG4gICh2aXNpYmxlQ2hhbmdlKT1cInZpc2libGVDaGFuZ2UuZW1pdCgkZXZlbnQpXCJcclxuICBzdHlsZUNsYXNzPVwiIXctZnVsbCBtZDohdy04MCBsZzohdy1bNDByZW1dXCI+XHJcblxyXG4gIDxuZy10ZW1wbGF0ZSBwVGVtcGxhdGU9XCJoZWFkZXJcIj5cclxuICAgIDxzcGFuIGNsYXNzPVwiZm9udC1ib2xkIHRleHQtbGdcIj5cclxuICAgICAge3sgaXNFZGl0TW9kZSA/ICfYqti52K/ZitmEJyA6IGlzVmlld01vZGUgPT09IGZhbHNlID8gJ9il2LbYp9mB2KknIDogJ9i52LHYticgfX1cclxuICAgIDwvc3Bhbj5cclxuICA8L25nLXRlbXBsYXRlPlxyXG48IS0tIChuZ1N1Ym1pdCk9XCJvblN1Ym1pdCgpXCIgLS0+XHJcbiAgPGZvcm0gKm5nSWY9XCJmb3JtXCIgW2Zvcm1Hcm91cF09XCJmb3JtXCIgIGNsYXNzPVwicC00XCI+XHJcbiAgICA8Zm9ybWx5LWZvcm0gW2Zvcm1dPVwiZm9ybVwiIFtmaWVsZHNdPVwiZm9ybUZpZWxkc19cIiBbbW9kZWxdPVwibW9kZWxcIiBbb3B0aW9uc109XCJvcHRpb25zXCI+PC9mb3JtbHktZm9ybT5cclxuICA8L2Zvcm0+XHJcblxyXG4gIDxuZy10ZW1wbGF0ZSBwVGVtcGxhdGU9XCJmb290ZXJcIiAqbmdJZj1cIiFpc1ZpZXdNb2RlXCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwiZmxleCBqdXN0aWZ5LWVuZCBnYXAtMlwiPlxyXG4gICAgICA8YnV0dG9uXHJcbiAgICAgICAgcEJ1dHRvblxyXG4gICAgICAgIFtsYWJlbF09XCJpc0VkaXRNb2RlID8gKCdVUERBVEUnIHwgdHJhbnNsYXRlKSA6ICgnU0FWRScgfCB0cmFuc2xhdGUpXCJcclxuICAgICAgICB0eXBlPVwiYnV0dG9uXCJcclxuICAgICAgICAoY2xpY2spPVwib25TdWJtaXQoKVwiXHJcbiAgICAgICAgW2Rpc2FibGVkXT1cImxvYWRpbmcgfHwgZm9ybS5pbnZhbGlkXCJcclxuICAgICAgICBbbG9hZGluZ109XCJsb2FkaW5nXCI+XHJcbiAgICAgIDwvYnV0dG9uPlxyXG4gICAgICA8YnV0dG9uXHJcbiAgICAgICAgcEJ1dHRvblxyXG4gICAgICAgIGxhYmVsPVwie3sgJ0NBTkNFTCcgfCB0cmFuc2xhdGUgfX1cIlxyXG4gICAgICAgIHNldmVyaXR5PVwiZGFuZ2VyXCJcclxuICAgICAgICAoY2xpY2spPVwidmlzaWJsZUNoYW5nZS5lbWl0KGZhbHNlKVwiPlxyXG4gICAgICA8L2J1dHRvbj5cclxuICAgIDwvZGl2PlxyXG4gIDwvbmctdGVtcGxhdGU+XHJcbjwvcC1kcmF3ZXI+XHJcblxyXG48IS0tIERpYWxvZyAtLT5cclxuPHAtZGlhbG9nXHJcbiAgKm5nSWY9XCIodHlwZW9mIGRpc3BsYXlNb2RlID09PSAnc3RyaW5nJyA/IGRpc3BsYXlNb2RlIDogaXNFZGl0TW9kZSA/IGRpc3BsYXlNb2RlWydlZGl0J10gOiBpc1ZpZXdNb2RlID09PSBmYWxzZSA/IGRpc3BsYXlNb2RlWydhZGQnXSA6IGRpc3BsYXlNb2RlWyd2aWV3J10gICkgPT09ICdkaWFsb2cnICYmIGRpYWxvZ1Zpc2libGVcIlxyXG4gIFsodmlzaWJsZSldPVwiZGlhbG9nVmlzaWJsZVwiXHJcbiAgW21vZGFsXT1cInRydWVcIlxyXG4gIFtjbG9zYWJsZV09XCJ0cnVlXCJcclxuICBbZGlzbWlzc2FibGVNYXNrXT1cInRydWVcIlxyXG4gIFtjbG9zZU9uRXNjYXBlXT1cInRydWVcIlxyXG4gICh2aXNpYmxlQ2hhbmdlKT1cInZpc2libGVDaGFuZ2UuZW1pdCgkZXZlbnQpXCJcclxuICBbc3R5bGVdPVwieyB3aWR0aDogJzk1dncnLCBtYXhXaWR0aDogZGlhbG9nTWF4V2lkdGggfVwiXHJcbiAgW2hlYWRlcl09XCJpc0VkaXRNb2RlID8gJ9iq2LnYr9mK2YQnIDogaXNWaWV3TW9kZSA9PT0gZmFsc2UgPyAn2KXYttin2YHYqScgOiB2aWV3SGVhZGVyVGl0bGVcIj5cclxuPCEtLSBbYnJlYWtwb2ludHNdPVwieyAnMTIwMHB4JzogJzUwdncnLCAnNzY4cHgnOiAnNzB2dycsICc1NjBweCc6ICc5NXZ3JyB9XCIgLS0+XHJcbiAgPGRpdiBjbGFzcz1cInJlbGF0aXZlXCI+XHJcbiAgICA8ZGl2ICpuZ0lmPVwiaXNWaWV3TW9kZVwiIGNsYXNzPVwiYWJzb2x1dGUgaW5zZXQtMCB6LTEwIGJnLXdoaXRlLzUwIHBvaW50ZXItZXZlbnRzLWF1dG8gcm91bmRlZC1tZFwiPjwvZGl2PlxyXG4gICAgPGZvcm0gKm5nSWY9XCJmb3JtXCIgW2Zvcm1Hcm91cF09XCJmb3JtXCIgY2xhc3M9XCJwLTRcIj5cclxuICAgICAgPGZvcm1seS1mb3JtIFtmb3JtXT1cImZvcm1cIiBbZmllbGRzXT1cImZvcm1GaWVsZHNfXCIgW21vZGVsXT1cIm1vZGVsXCIgW29wdGlvbnNdPVwib3B0aW9uc1wiPjwvZm9ybWx5LWZvcm0+XHJcbiAgICA8L2Zvcm0+XHJcbiAgPC9kaXY+XHJcblxyXG4gIDxuZy10ZW1wbGF0ZSBwVGVtcGxhdGU9XCJmb290ZXJcIj5cclxuICAgIDxkaXYgY2xhc3M9XCJmbGV4IGp1c3RpZnktZW5kIGdhcC0yXCI+XHJcbiAgICAgIDxidXR0b24gKm5nSWY9XCIhaXNWaWV3TW9kZVwiXHJcbiAgICAgICAgcEJ1dHRvblxyXG4gICAgICAgIFtsYWJlbF09XCJpc0VkaXRNb2RlID8gKCdVUERBVEUnIHwgdHJhbnNsYXRlKSA6ICgnU0FWRScgfCB0cmFuc2xhdGUpXCJcclxuICAgICAgICB0eXBlPVwiYnV0dG9uXCJcclxuICAgICAgICBbZGlzYWJsZWRdPVwibG9hZGluZyB8fCBmb3JtLmludmFsaWRcIlxyXG4gICAgICAgIFtsb2FkaW5nXT1cImxvYWRpbmdcIlxyXG4gICAgICAgIChjbGljayk9XCJvblN1Ym1pdCgpXCI+XHJcbiAgICAgIDwvYnV0dG9uPlxyXG4gICAgICA8YnV0dG9uXHJcbiAgICAgICAgcEJ1dHRvblxyXG4gICAgICAgIGxhYmVsPVwie3sgaXNWaWV3TW9kZSA/ICgnQ0xPU0UnIHwgdHJhbnNsYXRlKSA6ICgnQ0FOQ0VMJyB8IHRyYW5zbGF0ZSkgfX1cIlxyXG4gICAgICAgIHNldmVyaXR5PVwic2Vjb25kYXJ5XCJcclxuICAgICAgICAoY2xpY2spPVwidmlzaWJsZUNoYW5nZS5lbWl0KGZhbHNlKVwiPlxyXG4gICAgICA8L2J1dHRvbj5cclxuICAgIDwvZGl2PlxyXG4gIDwvbmctdGVtcGxhdGU+XHJcbjwvcC1kaWFsb2c+XHJcblxyXG5cclxuXHJcbiJdfQ==","/**\n * Generated bundle index. Do not edit.\n */\nexport * from './index';\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWxpdGUuZnJhbWV3b3JrLW5nLnVpLmNvcmUtZ2VuZXJpYy1jcnVkLXRhYmxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGlicy9uZy51aS5jb3JlL2dlbmVyaWMtY3J1ZC10YWJsZS9zcmMvZWxpdGUuZnJhbWV3b3JrLW5nLnVpLmNvcmUtZ2VuZXJpYy1jcnVkLXRhYmxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsY0FBYyxTQUFTLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEdlbmVyYXRlZCBidW5kbGUgaW5kZXguIERvIG5vdCBlZGl0LlxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vaW5kZXgnO1xuIl19"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@elite.framework/ng.ui.core",
3
- "version": "1.0.44",
3
+ "version": "1.0.46",
4
4
  "peerDependencies": {
5
5
  "@angular/common": "^20.1.0",
6
6
  "@angular/core": "^20.1.0"