@elite.framework/ng.ui.core 1.0.61 → 1.0.62
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/fesm2022/elite.framework-ng.ui.core-base-crud.mjs +6 -0
- package/fesm2022/elite.framework-ng.ui.core-base-crud.mjs.map +1 -1
- package/fesm2022/elite.framework-ng.ui.core-generic-button.mjs +6 -2
- package/fesm2022/elite.framework-ng.ui.core-generic-button.mjs.map +1 -1
- package/fesm2022/elite.framework-ng.ui.core-generic-table.mjs +2 -2
- package/fesm2022/elite.framework-ng.ui.core-generic-table.mjs.map +1 -1
- package/generic-button/index.d.ts +1 -4
- package/package.json +21 -21
|
@@ -122,6 +122,12 @@ class BaseCrud {
|
|
|
122
122
|
this.router.navigate([mode], { relativeTo: this.route });
|
|
123
123
|
}
|
|
124
124
|
else {
|
|
125
|
+
const commands = [id, mode];
|
|
126
|
+
console.log('Commands:', commands);
|
|
127
|
+
console.log('Current route:', this.route.snapshot.pathFromRoot.map(r => r.routeConfig?.path));
|
|
128
|
+
const tree = this.router.createUrlTree(commands, { relativeTo: this.route });
|
|
129
|
+
console.log('URL Tree:', tree.toString());
|
|
130
|
+
// debugger
|
|
125
131
|
this.router.navigate([id, mode], { relativeTo: this.route });
|
|
126
132
|
}
|
|
127
133
|
break;
|
|
@@ -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 =\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/ICdkcmF3ZXInO1xyXG5cclxuICBpZiAobW9kZUNvbmZpZyA9PT0gJ2RpYWxvZycpIHtcclxuICAgIHRoaXMuZGlhbG9nVmlzaWJsZSA9IHZhbHVlO1xyXG4gIH0gZWxzZSBpZiAobW9kZUNvbmZpZyA9PT0gJ2RyYXdlcicpIHtcclxuICAgIHRoaXMuZHJhd2VyVmlzaWJsZSA9IHZhbHVlO1xyXG4gIH0gZWxzZSB7XHJcbiAgICAvLyByb3V0ZSBtb2RlIGRvZXMgbm90IHVzZSBkcmF3ZXIvZGlhbG9nXHJcbiAgfVxyXG59XHJcblxyXG5cclxuLy8gb25UYWJsZUFjdGlvbihldmVudDogeyBuYW1lOiBzdHJpbmc7IHJvdzogVCB8IG51bGwgfSk6IHZvaWQge1xyXG4vLyAgICAgc3dpdGNoIChldmVudC5uYW1lKSB7XHJcbi8vICAgICAgIGNhc2UgJ2FkZCc6ICAgIHRoaXMub3BlbkRyYXdlcihudWxsLGV2ZW50Lm5hbWUpOyAgICAgICAgICAgICBicmVhaztcclxuLy8gICAgICAgY2FzZSAndmlldyc6ICAgdGhpcy5vcGVuRHJhd2VyKGV2ZW50LnJvdyEsZXZlbnQubmFtZSk7ICBicmVhaztcclxuLy8gICAgICAgY2FzZSAnZWRpdCc6ICAgdGhpcy5vcGVuRHJhd2VyKGV2ZW50LnJvdyEsZXZlbnQubmFtZSk7ICBicmVhaztcclxuLy8gICAgICAgY2FzZSAnZGVsZXRlJzogdGhpcy5vbkRlbGV0ZShldmVudC5yb3chKTticmVhaztcclxuLy8gICAgICAgY2FzZSAnc3RhdGUnOiB0aGlzLm9wZW5EZWFjdGl2YXRpb25SZWFzb24oZXZlbnQucm93ISk7YnJlYWs7XHJcbi8vICAgICB9XHJcbi8vIH1cclxuXHJcbm9uVGFibGVBY3Rpb24oZXZlbnQ6IHsgbmFtZTogc3RyaW5nOyByb3c6IFQgfCBudWxsIH0pOiB2b2lkIHtcclxuICBzd2l0Y2ggKGV2ZW50Lm5hbWUpIHtcclxuICAgIGNhc2UgJ2FkZCc6XHJcbiAgICBjYXNlICdlZGl0JzpcclxuICAgIGNhc2UgJ3ZpZXcnOlxyXG4gICAgICB0aGlzLm9wZW5FZGl0b3IoZXZlbnQucm93LCBldmVudC5uYW1lKTtcclxuICAgICAgYnJlYWs7XHJcbiAgICBjYXNlICdkZWxldGUnOlxyXG4gICAgICB0aGlzLm9uRGVsZXRlKGV2ZW50LnJvdyEpO1xyXG4gICAgICBicmVhaztcclxuICAgIGNhc2UgJ3N0YXRlJzpcclxuICAgICAgdGhpcy5vcGVuRGVhY3RpdmF0aW9uUmVhc29uKGV2ZW50LnJvdyEpO1xyXG4gICAgICBicmVhaztcclxuICB9XHJcbn1cclxuXHJcblxyXG5wcm90ZWN0ZWQgb3BlbkRyYXdlcihpdGVtOiBUIHwgbnVsbCxtb2RlOnN0cmluZyk6IHZvaWQge1xyXG5cclxuICAgICAgdGhpcy5tb2RlID0gbW9kZTtcclxuXHJcbiAgICAgIC8vIHRoaXMuZHJhd2VyVmlzaWJsZSA9ICF0aGlzLmRyYXdlclZpc2libGU7XHJcblxyXG5cclxuICAgICAgaWYgKGl0ZW0gPT0gbnVsbCkge1xyXG5cclxuICAgICAgICB0aGlzLnNlbGVjdGVkSXRlbSA9IHRoaXMuZGVmYXVsdE1vZGVsIHx8IHt9O1xyXG4gICAgICB9XHJcbiAgICAgIGVsc2V7XHJcbiAgICAgICAgIHRoaXMuc2VsZWN0ZWRJdGVtID0gaXRlbTtcclxuICAgICAgfVxyXG5cclxuICAgICAgaWYobW9kZSA9PSAnZWRpdCcpe1xyXG4gICAgICAgIHRoaXMuZHJhd2VyVmlzaWJsZSA9IHRydWU7XHJcbiAgICAgICAgdGhpcy5pc0VkaXRNb2RlID0gdHJ1ZSA7XHJcbiAgICAgICAgdGhpcy5pc1ZpZXdNb2RlID0gZmFsc2UgO1xyXG4gICAgICAgIC8vIHRoaXMuaXNFZGl0TW9kZSA9IGl0ZW0gIT1udWxsIDtcclxuICAgICAgfVxyXG4gICAgICBpZihtb2RlID09ICdhZGQnKXtcclxuICAgICAgICAgdGhpcy5kcmF3ZXJWaXNpYmxlID0gdHJ1ZTtcclxuICAgICAgICB0aGlzLmlzVmlld01vZGUgPSBmYWxzZSA7XHJcbiAgICAgICAgdGhpcy5pc0VkaXRNb2RlID0gZmFsc2UgO1xyXG4gICAgICB9XHJcbiAgICAgIGlmKG1vZGUgPT0gJ3ZpZXcnKXtcclxuICAgICAgICAvLyB0aGlzLmRyYXdlclZpc2libGUgPSB0cnVlO1xyXG4gICAgICAgIHRoaXMuZGlhbG9nVmlzaWJsZSA9IHRydWU7XHJcblxyXG4gICAgICAgIHRoaXMuaXNWaWV3TW9kZSA9IHRydWUgO1xyXG4gICAgICAgIHRoaXMuaXNFZGl0TW9kZSA9IGZhbHNlIDtcclxuICAgICAgfVxyXG59XHJcblxyXG5cclxub3BlbkRlYWN0aXZhdGlvblJlYXNvbihtb2RlbDogYW55KSB7XHJcblxyXG4gIHRoaXMuc2VsZWN0ZWRJdGVtID0gbW9kZWw7XHJcbiAgaWYodGhpcy5zZWxlY3RlZEl0ZW0uaXNBY3RpdmUgPT0gdHJ1ZSl7XHJcblxyXG5cclxuICBjb25zdCByZWYgPSB0aGlzLmRpYWxvZ1NlcnZpY2Uub3BlbihEZWFjdGl2YXRpb25SZWFzb25Gb3JtQ29tcG9uZW50LCB7XHJcbiAgICBoZWFkZXI6ICfYp9mE2LPYqNioICjZgdmKINit2KfZhCDYqtmFINil2YrZgtin2YHZhyknLFxyXG4gICAgd2lkdGg6ICczMHZ3JyxcclxuICAgIGRhdGE6IHsgbW9kZWw6IHsgLi4ubW9kZWwgfSxcclxuICAgICAgICBmaWVsZHM6IHRoaXMuZm9ybUZpZWxkcyxcclxuICAgICAgICBzZXJ2aWNlOiB0aGlzLnNlcnZpY2UsXHJcbiAgICAgICAgaWRGaWVsZDogdGhpcy5pZEZpZWxkIH0sXHJcbiAgfSk7XHJcblxyXG4gIHJlZi5vbkNsb3NlLnN1YnNjcmliZSgocmVzdWx0KSA9PiB7XHJcbiAgICBpZiAocmVzdWx0KSB7XHJcbiAgICAgIHRoaXMuc2VsZWN0ZWRJdGVtLmlzQWN0aXZlID0gZmFsc2U7XHJcbiAgICAgIHRoaXMuc2VsZWN0ZWRJdGVtLmRlYWN0aXZhdGlvblJlYXNvbiA9IHJlc3VsdC5kZWFjdGl2YXRpb25SZWFzb247XHJcbiAgICAgIC8vIE9wdGlvbmFsbHk6IHNhdmUgbW9kZWwgdmlhIEFQSVxyXG4gICAgfVxyXG4gIH0pO1xyXG59XHJcbmVsc2V7XHJcbiAgIHRoaXMuc2VsZWN0ZWRJdGVtLmlzQWN0aXZlID0gdHJ1ZTtcclxuICAgdGhpcy5zZWxlY3RlZEl0ZW0uZGVhY3RpdmF0aW9uUmVhc29uID0gXCJcIjtcclxuICAgIGNvbnN0IGlkID0gICh0aGlzLnNlbGVjdGVkSXRlbSBhcyBhbnkpW3RoaXMuaWRGaWVsZF0gO1xyXG4gICAgdGhpcy5zZXJ2aWNlLnVwZGF0ZShpZCwgdGhpcy5zZWxlY3RlZEl0ZW0pLnN1YnNjcmliZSh7XHJcbiAgICAgICAgICAgbmV4dDogKCkgPT4ge2NvbnNvbGUubG9nKCcnKX0sXHJcbiAgICAgICAgICAgZXJyb3I6IChlcnI6YW55KSA9PiB7XHJcbiAgICAgICAgICAgICB0aGlzLmxvYWRpbmcgPSBmYWxzZTtcclxuXHJcbiAgICAgICAgICAgfVxyXG4gICAgICAgICB9KTtcclxufVxyXG59XHJcblxyXG5cclxuXHJcbiAgLy8gb25EZWxldGUoaXRlbTogYW55KTogdm9pZCB7XHJcbiAgLy8gICBpZiAoIWNvbmZpcm0oJ9mH2YQg2KrYsdmK2K8g2KfZhNit2LDZgSDZgdi52YTYp9mL2J8nKSkgcmV0dXJuO1xyXG4gIC8vICAgY29uc3QgaWQgPSAoaXRlbSBhcyBhbnkpW3RoaXMuaWRGaWVsZF07XHJcbiAgLy8gICB0aGlzLnNlcnZpY2UuZGVsZXRlKGlkKS5zdWJzY3JpYmUoKCkgPT4ge1xyXG4gIC8vICAgICB0aGlzLmxvYWRQYWdlKDAsIHRoaXMucm93cyk7XHJcbiAgLy8gICB9KTtcclxuICAvLyB9XHJcblxyXG5cclxub25EZWxldGUoaXRlbTogYW55KTogdm9pZCB7XHJcbiAgY29uc3QgaWQgPSBpdGVtW3RoaXMuaWRGaWVsZF07XHJcblxyXG4gIHRoaXMuc3dhbFNlcnZpY2UuY29uZmlybShcclxuICAgICfYqtij2YPZitivINin2YTYrdiw2YEnLFxyXG4gICAgJ9mH2YQg2KrYsdmK2K8g2K3YsNmBINmH2LDYpyDYp9mE2LPYrNmEINmB2LnZhNin2YvYnycsXHJcbiAgICAn2YbYudmF2Iwg2KfYrdiw2YEnLFxyXG4gICAgJ9il2YTYutin2KEnXHJcbiAgKS50aGVuKChyZXN1bHQpID0+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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"}
|
|
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 const commands = [id, mode];\n console.log('Commands:', commands);\n console.log('Current route:', this.route.snapshot.pathFromRoot.map(r => r.routeConfig?.path));\n const tree = this.router.createUrlTree(commands, { relativeTo: this.route });\n console.log('URL Tree:', tree.toString());\n // debugger\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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QVEsQ0FBQyxFQUFFLEtBQUs7aUJBQ2hDLENBQUM7Z0JBRUYscUNBQXFDO2dCQUNyQyxPQUFPLFdBQVcsQ0FBQyxVQUFVLENBQUMsQ0FBQztnQkFDL0IsT0FBTyxXQUFXLENBQUMsVUFBVSxDQUFDLENBQUM7Z0JBQy9CLE9BQU8sV0FBVyxDQUFDLGFBQWEsQ0FBQyxDQUFDO2dCQUVsQyxPQUFPLENBQUM7d0JBQ04sSUFBSSxFQUFFLEtBQUssQ0FBQyxJQUFJO3dCQUNoQixHQUFHLEVBQUUsS0FBSyxDQUFDLEdBQUcsRUFBRSxxQ0FBcUM7d0JBQ3JELEtBQUssRUFBRSxXQUFXO3dCQUNsQix5RUFBeUU7cUJBQzFFLENBQUMsQ0FBQztZQUNMLENBQUMsQ0FBQyxDQUFDO1FBQ0wsQ0FBQyxDQUFDO1FBRUYsT0FBTyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDM0MsQ0FBQzt1R0EvWXFCLFFBQVE7MkZBQVIsUUFBUTs7MkZBQVIsUUFBUTtrQkFEN0IsU0FBUyIsInNvdXJjZXNDb250ZW50IjpbIlxyXG5cclxuaW1wb3J0IHsgRGlyZWN0aXZlLCBpbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgRGlhbG9nU2VydmljZSwgRHluYW1pY0RpYWxvZ1JlZiB9IGZyb20gJ3ByaW1lbmcvZHluYW1pY2RpYWxvZyc7XHJcbmltcG9ydCB7IEZvcm1seUZpZWxkQ29uZmlnIH0gZnJvbSAnQG5neC1mb3JtbHkvY29yZSc7XHJcbmltcG9ydCB7IEFjdGl2YXRlZFJvdXRlLCBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xyXG5pbXBvcnQgeyBCYXNlU2VydmljZSwgU3dhbFNlcnZpY2UgfSBmcm9tICdAZWxpdGUuZnJhbWV3b3JrL25nLmNvcmUvc2VydmljZXMnO1xyXG5pbXBvcnQgeyBBY3Rpb25EZWYsIFBhZ2luYXRlZFJlc3VsdCB9IGZyb20gJ0BlbGl0ZS5mcmFtZXdvcmsvbmcuY29yZS9tb2RlbHMnO1xyXG5pbXBvcnQgeyBEZWFjdGl2YXRpb25SZWFzb25Gb3JtQ29tcG9uZW50IH0gZnJvbSAnQGVsaXRlLmZyYW1ld29yay9uZy51aS5jb3JlL2RlYWN0aXZhdGlvbi1yZWFzb24nO1xyXG5cclxuQERpcmVjdGl2ZSgpXHJcbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBCYXNlQ3J1ZDxULCBGID0gYW55PiAge1xyXG4gIGxpc3Q6IFRbXSAgICAgICAgICAgICAgID0gW107XHJcbiAgcGFnaW5hdG9yICAgICAgICA9IHRydWU7XHJcbiAgY2FuTG9hZCAgICAgICAgPSB0cnVlO1xyXG4gIGxvYWRpbmcgICAgICAgID0gZmFsc2U7XHJcbiAgZXJyb3JNc2cgICAgICAgID0gJyc7XHJcbiAgZmlyc3QgICAgICAgICAgID0gMDtcclxuICByb3dzICAgICAgICAgICAgPSAxMDtcclxuICB0b3RhbFJlY29yZHMgICAgPSAwO1xyXG4gIHNlYXJjaEdsb2JhbCAgICA9ICcnO1xyXG4gIHNvcnQ/OiBzdHJpbmc7XHJcbiAgcGFnZUZpbHRlcnM6IFBhcnRpYWw8Rj4gPSB7fTtcclxuICBjdXJyZW50RmlsdGVyczogUGFydGlhbDxGPiA9IHt9O1xyXG4gIG1vZGUgPScnO1xyXG4gIHNjcm9sbEhlaWdodCA9JzQwMHB4JztcclxuICBwcml2YXRlIHN3YWxTZXJ2aWNlID0gaW5qZWN0KFN3YWxTZXJ2aWNlKTtcclxuXHJcbiAgcHJvdGVjdGVkIGRpYWxvZ1JlZiE6IER5bmFtaWNEaWFsb2dSZWY7XHJcblxyXG5cclxuICAvLyBhYnN0cmFjdCBzZXJ2aWNlOiBDcnVkU2VydmljZTxULCBGPjtcclxuICBhYnN0cmFjdCBzZXJ2aWNlOiBCYXNlU2VydmljZTtcclxuICBhYnN0cmFjdCBkaWFsb2dTZXJ2aWNlOiBEaWFsb2dTZXJ2aWNlO1xyXG4gIC8vIGFic3RyYWN0IGRpYWxvZ0NvbXBvbmVudDogYW55O1xyXG4gIC8vIGFic3RyYWN0IGNvbHVtbnM6IENvbHVtbkRlZjxUPltdO1xyXG4gIGFic3RyYWN0IGFjdGlvbnM6IEFjdGlvbkRlZjxUPltdO1xyXG5cclxuICAvLyBmb3IgZ2VuZXJpYyBkaWFsb2c6XHJcbiAgYWJzdHJhY3QgZm9ybUZpZWxkczogRm9ybWx5RmllbGRDb25maWdbXTtcclxuICBhYnN0cmFjdCBpZEZpZWxkOiBrZXlvZiBUO1xyXG4gIGRpYWxvZ1Zpc2libGUgPSBmYWxzZTtcclxuICBkcmF3ZXJWaXNpYmxlID0gZmFsc2U7XHJcbiAgc2VsZWN0ZWRJdGVtOiBUIHwgYW55ID0gbnVsbDtcclxuICBkZWZhdWx0TW9kZWw6IFQgfCBhbnkgPSBudWxsO1xyXG4gIC8vIHNlbGVjdGVkSXRlbTogVCB8IGFueSA9IHt9O1xyXG4gIGlzVmlld01vZGUgPSBmYWxzZTtcclxuICBpc0VkaXRNb2RlID0gZmFsc2U7XHJcblxyXG5cclxuXHJcbiAgZGlzcGxheU1vZGU6XHJcbiAgfCAnZHJhd2VyJyB8ICdkaWFsb2cnIHwgJ3JvdXRlJ1xyXG4gIHwgUGFydGlhbDxSZWNvcmQ8J2FkZCcgfCAnZWRpdCcgfCAndmlldycsICdkcmF3ZXInIHwgJ2RpYWxvZycgfCAncm91dGUnPj5cclxuICA9ICdkcmF3ZXInO1xyXG5cclxuICBwdWJsaWMgcm91dGVyPSBpbmplY3QoUm91dGVyKTtcclxuICBwdWJsaWMgcm91dGUgPSBpbmplY3QoQWN0aXZhdGVkUm91dGUpO1xyXG5cclxubG9hZFBhZ2UocGFnZUluZGV4OiBudW1iZXIsIHBhZ2VTaXplOiBudW1iZXIpOiB2b2lkIHtcclxuICAgIGlmKHRoaXMuY2FuTG9hZCl7XHJcblxyXG5cclxuICAgIHRoaXMubG9hZGluZyA9IHRydWU7XHJcbiAgICBjb25zdCBmaWx0ZXJzOiBQYXJ0aWFsPEY+ID0ge1xyXG4gICAgICBtYXhSZXN1bHRDb3VudDpwYWdlU2l6ZSxcclxuICAgICAgc2tpcENvdW50OnBhZ2VJbmRleCxcclxuICAgICAgc29ydGluZzp0aGlzLnNvcnQsXHJcbiAgICAuLi50aGlzLmN1cnJlbnRGaWx0ZXJzLFxyXG4gICAgLi4udGhpcy5wYWdlRmlsdGVycyxcclxuICAgIC4uLih0aGlzLnNlYXJjaEdsb2JhbCA/IHsgZmlsdGVyOiB0aGlzLnNlYXJjaEdsb2JhbCB9IDoge30pLFxyXG4gICAgfTtcclxuICAgIC8vXHJcbiAgICB0aGlzLnNlcnZpY2UuZ2V0TGlzdChmaWx0ZXJzKVxyXG4gICAgICAuc3Vic2NyaWJlKHtcclxuICAgICAgICBuZXh0OiAocmVzOiBQYWdpbmF0ZWRSZXN1bHQ8VD4pID0+IHtcclxuICAgICAgICAgIC8vXHJcbiAgICAgICAgICB0aGlzLmxpc3QgICAgICAgICA9IHJlcy5pdGVtcztcclxuICAgICAgICAgIHRoaXMudG90YWxSZWNvcmRzID0gcmVzLnRvdGFsQ291bnQ7XHJcbiAgICAgICAgICB0aGlzLmxvYWRpbmcgICAgICA9IGZhbHNlO1xyXG4gICAgICAgIH0sXHJcbiAgICAgICAgZXJyb3I6IChlcnI6YW55KSA9PiB7XHJcbiAgICAgICAgICB0aGlzLmVycm9yTXNnICAgICA9IGVyci5lcnJvcj8ubWVzc2FnZSB8fCBlcnIubWVzc2FnZSB8fCAn2K7Yt9ijINmB2Yog2KfZhNiq2K3ZhdmK2YQnO1xyXG4gICAgICAgICAgdGhpcy5sb2FkaW5nICAgICAgPSBmYWxzZTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG59XHJcblxyXG5vblNlYXJjaChmaWx0ZXJzPzogYW55KTogdm9pZCB7XHJcbiAgLy9cclxuICBpZiAoZmlsdGVycyAmJiB0eXBlb2YgZmlsdGVycyA9PT0gJ29iamVjdCcgJiYgIUFycmF5LmlzQXJyYXkoZmlsdGVycykpIHtcclxuICAgIHRoaXMucGFnZUZpbHRlcnMgPSBmaWx0ZXJzO1xyXG4gIH0gZWxzZSB7XHJcbiAgICB0aGlzLnNlYXJjaEdsb2JhbCA9IGZpbHRlcnM7XHJcbiAgfVxyXG5cclxuICB0aGlzLmxvYWRQYWdlKDAsIDEwKTtcclxufVxyXG5cclxuXHJcblxyXG5cclxuXHJcblxyXG5cclxub25QYWdlQ2hhbmdlKGV2ZW50OiB7IGZpcnN0PzogbnVtYmVyOyByb3dzPzogbnVtYmVyOyBzb3J0Pzogc3RyaW5nOyBmaWx0ZXJzPzogUmVjb3JkPHN0cmluZywgYW55PiB9KTogdm9pZCB7XHJcbiAgLy8g2YHZgyDYp9mE2YXYqti62YrZkdix2KfYqiDZhdi5INmC2YrZhdipINin2YHYqtix2KfYttmK2Kkg2YTZgdmE2KfYqtixXHJcbiAgY29uc3Qge1xyXG4gICAgZmlyc3QgICA9IHRoaXMuZmlyc3QsXHJcbiAgICByb3dzICAgID0gdGhpcy5yb3dzLFxyXG4gICAgc29ydCAgICA9IHRoaXMuc29ydCxcclxuICAgIGZpbHRlcnMgPSB7fVxyXG4gIH0gPSBldmVudDtcclxuXHJcbiAgdGhpcy5maXJzdCA9IGZpcnN0O1xyXG4gIHRoaXMucm93cyAgPSByb3dzO1xyXG4gIHRoaXMuc29ydCAgPSBzb3J0O1xyXG5cclxuICAvLyBjb25zdCBwYWdlSW5kZXggPSBNYXRoLmZsb29yKGZpcnN0IC8gcm93cyk7XHJcbiAgY29uc3Qgc2tpcENvdW50ID0gZmlyc3Q7XHJcbiAgY29uc3QgcGFnZUluZGV4ID0gc2tpcENvdW50O1xyXG5cclxuICAvLyDYp9mE2YjYtdmI2YQg2YTZhNmB2YTYqtixINin2YTYudin2YUg2LnYqNixINin2YTYtdmK2LrYqSDYp9mE2YXYsdio2LnYqVxyXG4gIGNvbnN0IGdsb2JhbFZhbHVlID0gZmlsdGVyc1snZ2xvYmFsJ107XHJcbiAgdGhpcy5zZWFyY2hHbG9iYWwgPSB0eXBlb2YgZ2xvYmFsVmFsdWUgPT09ICdzdHJpbmcnID8gZ2xvYmFsVmFsdWUgOiAnJztcclxuXHJcbiAgLy8g2YHZhNiq2LHYqSDYrtin2LXYqSDYqNit2YLZhCDZiNin2K3Yr1xyXG4gIC8vIGNvbnN0IGZpZWxkRmlsdGVycyA9IHsgLi4uZmlsdGVycyB9O1xyXG4gIC8vIGRlbGV0ZSBmaWVsZEZpbHRlcnNbJ2dsb2JhbCddO1xyXG4gIC8vIHRoaXMuY3VycmVudEZpbHRlcnMgPSBmaWVsZEZpbHRlcnMgYXMgUGFydGlhbDxGPjtcclxuXHJcblxyXG5cclxuICB0aGlzLmxvYWRQYWdlKHBhZ2VJbmRleCwgcm93cyk7XHJcbn1cclxuXHJcblxyXG5wcm90ZWN0ZWQgb3BlbkVkaXRvcihpdGVtOiBUIHwgbnVsbCwgbW9kZTogJ2FkZCcgfCAnZWRpdCcgfCAndmlldycpOiB2b2lkIHtcclxuICB0aGlzLm1vZGUgPSBtb2RlO1xyXG4gIHRoaXMuc2VsZWN0ZWRJdGVtID0gaXRlbSA/PyB0aGlzLmRlZmF1bHRNb2RlbCA/PyB7fTtcclxuICB0aGlzLmlzRWRpdE1vZGUgPSBtb2RlID09PSAnZWRpdCc7XHJcbiAgdGhpcy5pc1ZpZXdNb2RlID0gbW9kZSA9PT0gJ3ZpZXcnO1xyXG5cclxuICAvLyByZXNvbHZlIGRpc3BsYXlNb2RlIChzdHJpbmcgb3IgbWFwKVxyXG4gIGNvbnN0IG1vZGVDb25maWcgPSB0eXBlb2YgdGhpcy5kaXNwbGF5TW9kZSA9PT0gJ3N0cmluZydcclxuICAgID8gdGhpcy5kaXNwbGF5TW9kZVxyXG4gICAgOiB0aGlzLmRpc3BsYXlNb2RlW21vZGVdID8/ICdkcmF3ZXInO1xyXG5cclxuICBzd2l0Y2ggKG1vZGVDb25maWcpIHtcclxuICAgIGNhc2UgJ2RyYXdlcic6XHJcbiAgICAgIHRoaXMuZHJhd2VyVmlzaWJsZSA9IHRydWU7XHJcbiAgICAgIGJyZWFrO1xyXG5cclxuICAgIGNhc2UgJ2RpYWxvZyc6XHJcbiAgICAgIHRoaXMuZGlhbG9nVmlzaWJsZSA9IHRydWU7XHJcbiAgICAgIGJyZWFrO1xyXG5cclxuICAgIGNhc2UgJ3JvdXRlJzpcclxuICAgICAge1xyXG5cclxuICAgICAgICBjb25zdCBpZCA9IGl0ZW0gPyAoaXRlbSBhcyBhbnkpW3RoaXMuaWRGaWVsZF0gOiAnbmV3JztcclxuICAgICAgaWYobW9kZSA9PT0gJ2FkZCcpe1xyXG4gICAgICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFttb2RlXSwgeyByZWxhdGl2ZVRvOiB0aGlzLnJvdXRlIH0pO1xyXG4gICAgICB9XHJcbiAgICAgIGVsc2V7XHJcbiAgICAgICAgY29uc3QgY29tbWFuZHMgPSBbaWQsIG1vZGVdO1xyXG4gICAgICAgIGNvbnNvbGUubG9nKCdDb21tYW5kczonLCBjb21tYW5kcyk7XHJcbiAgICAgICAgY29uc29sZS5sb2coJ0N1cnJlbnQgcm91dGU6JywgdGhpcy5yb3V0ZS5zbmFwc2hvdC5wYXRoRnJvbVJvb3QubWFwKHIgPT4gci5yb3V0ZUNvbmZpZz8ucGF0aCkpO1xyXG5cclxuICAgICAgICBjb25zdCB0cmVlID0gdGhpcy5yb3V0ZXIuY3JlYXRlVXJsVHJlZShjb21tYW5kcywgeyByZWxhdGl2ZVRvOiB0aGlzLnJvdXRlIH0pO1xyXG4gICAgICAgIGNvbnNvbGUubG9nKCdVUkwgVHJlZTonLCB0cmVlLnRvU3RyaW5nKCkpO1xyXG4gICAgICAgIC8vIGRlYnVnZ2VyXHJcbiAgICAgICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoW2lkLCBtb2RlXSwgeyByZWxhdGl2ZVRvOiB0aGlzLnJvdXRlIH0pO1xyXG4gICAgICB9XHJcbiAgICAgIGJyZWFrO1xyXG4gICAgICB9XHJcbiAgfVxyXG59XHJcblxyXG52aXNpYmxlQ2hhbmdlKHZhbHVlOiBib29sZWFuKSB7XHJcbiAgY29uc3QgbW9kZUNvbmZpZyA9IHR5cGVvZiB0aGlzLmRpc3BsYXlNb2RlID09PSAnc3RyaW5nJ1xyXG4gICAgPyB0aGlzLmRpc3BsYXlNb2RlXHJcbiAgICA6IHRoaXMuZGlzcGxheU1vZGVbdGhpcy5tb2RlIGFzICdhZGQnIHwgJ2VkaXQnIHwgJ3ZpZXcnXSA/PyAnZHJhd2VyJztcclxuXHJcbiAgaWYgKG1vZGVDb25maWcgPT09ICdkaWFsb2cnKSB7XHJcbiAgICB0aGlzLmRpYWxvZ1Zpc2libGUgPSB2YWx1ZTtcclxuICB9IGVsc2UgaWYgKG1vZGVDb25maWcgPT09ICdkcmF3ZXInKSB7XHJcbiAgICB0aGlzLmRyYXdlclZpc2libGUgPSB2YWx1ZTtcclxuICB9IGVsc2Uge1xyXG4gICAgLy8gcm91dGUgbW9kZSBkb2VzIG5vdCB1c2UgZHJhd2VyL2RpYWxvZ1xyXG4gIH1cclxufVxyXG5cclxuXHJcbi8vIG9uVGFibGVBY3Rpb24oZXZlbnQ6IHsgbmFtZTogc3RyaW5nOyByb3c6IFQgfCBudWxsIH0pOiB2b2lkIHtcclxuLy8gICAgIHN3aXRjaCAoZXZlbnQubmFtZSkge1xyXG4vLyAgICAgICBjYXNlICdhZGQnOiAgICB0aGlzLm9wZW5EcmF3ZXIobnVsbCxldmVudC5uYW1lKTsgICAgICAgICAgICAgYnJlYWs7XHJcbi8vICAgICAgIGNhc2UgJ3ZpZXcnOiAgIHRoaXMub3BlbkRyYXdlcihldmVudC5yb3chLGV2ZW50Lm5hbWUpOyAgYnJlYWs7XHJcbi8vICAgICAgIGNhc2UgJ2VkaXQnOiAgIHRoaXMub3BlbkRyYXdlcihldmVudC5yb3chLGV2ZW50Lm5hbWUpOyAgYnJlYWs7XHJcbi8vICAgICAgIGNhc2UgJ2RlbGV0ZSc6IHRoaXMub25EZWxldGUoZXZlbnQucm93ISk7YnJlYWs7XHJcbi8vICAgICAgIGNhc2UgJ3N0YXRlJzogdGhpcy5vcGVuRGVhY3RpdmF0aW9uUmVhc29uKGV2ZW50LnJvdyEpO2JyZWFrO1xyXG4vLyAgICAgfVxyXG4vLyB9XHJcblxyXG5vblRhYmxlQWN0aW9uKGV2ZW50OiB7IG5hbWU6IHN0cmluZzsgcm93OiBUIHwgbnVsbCB9KTogdm9pZCB7XHJcbiAgc3dpdGNoIChldmVudC5uYW1lKSB7XHJcbiAgICBjYXNlICdhZGQnOlxyXG4gICAgY2FzZSAnZWRpdCc6XHJcbiAgICBjYXNlICd2aWV3JzpcclxuICAgICAgdGhpcy5vcGVuRWRpdG9yKGV2ZW50LnJvdywgZXZlbnQubmFtZSk7XHJcbiAgICAgIGJyZWFrO1xyXG4gICAgY2FzZSAnZGVsZXRlJzpcclxuICAgICAgdGhpcy5vbkRlbGV0ZShldmVudC5yb3chKTtcclxuICAgICAgYnJlYWs7XHJcbiAgICBjYXNlICdzdGF0ZSc6XHJcbiAgICAgIHRoaXMub3BlbkRlYWN0aXZhdGlvblJlYXNvbihldmVudC5yb3chKTtcclxuICAgICAgYnJlYWs7XHJcbiAgfVxyXG59XHJcblxyXG5cclxucHJvdGVjdGVkIG9wZW5EcmF3ZXIoaXRlbTogVCB8IG51bGwsbW9kZTpzdHJpbmcpOiB2b2lkIHtcclxuXHJcbiAgICAgIHRoaXMubW9kZSA9IG1vZGU7XHJcblxyXG4gICAgICAvLyB0aGlzLmRyYXdlclZpc2libGUgPSAhdGhpcy5kcmF3ZXJWaXNpYmxlO1xyXG5cclxuXHJcbiAgICAgIGlmIChpdGVtID09IG51bGwpIHtcclxuXHJcbiAgICAgICAgdGhpcy5zZWxlY3RlZEl0ZW0gPSB0aGlzLmRlZmF1bHRNb2RlbCB8fCB7fTtcclxuICAgICAgfVxyXG4gICAgICBlbHNle1xyXG4gICAgICAgICB0aGlzLnNlbGVjdGVkSXRlbSA9IGl0ZW07XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIGlmKG1vZGUgPT0gJ2VkaXQnKXtcclxuICAgICAgICB0aGlzLmRyYXdlclZpc2libGUgPSB0cnVlO1xyXG4gICAgICAgIHRoaXMuaXNFZGl0TW9kZSA9IHRydWUgO1xyXG4gICAgICAgIHRoaXMuaXNWaWV3TW9kZSA9IGZhbHNlIDtcclxuICAgICAgICAvLyB0aGlzLmlzRWRpdE1vZGUgPSBpdGVtICE9bnVsbCA7XHJcbiAgICAgIH1cclxuICAgICAgaWYobW9kZSA9PSAnYWRkJyl7XHJcbiAgICAgICAgIHRoaXMuZHJhd2VyVmlzaWJsZSA9IHRydWU7XHJcbiAgICAgICAgdGhpcy5pc1ZpZXdNb2RlID0gZmFsc2UgO1xyXG4gICAgICAgIHRoaXMuaXNFZGl0TW9kZSA9IGZhbHNlIDtcclxuICAgICAgfVxyXG4gICAgICBpZihtb2RlID09ICd2aWV3Jyl7XHJcbiAgICAgICAgLy8gdGhpcy5kcmF3ZXJWaXNpYmxlID0gdHJ1ZTtcclxuICAgICAgICB0aGlzLmRpYWxvZ1Zpc2libGUgPSB0cnVlO1xyXG5cclxuICAgICAgICB0aGlzLmlzVmlld01vZGUgPSB0cnVlIDtcclxuICAgICAgICB0aGlzLmlzRWRpdE1vZGUgPSBmYWxzZSA7XHJcbiAgICAgIH1cclxufVxyXG5cclxuXHJcbm9wZW5EZWFjdGl2YXRpb25SZWFzb24obW9kZWw6IGFueSkge1xyXG5cclxuICB0aGlzLnNlbGVjdGVkSXRlbSA9IG1vZGVsO1xyXG4gIGlmKHRoaXMuc2VsZWN0ZWRJdGVtLmlzQWN0aXZlID09IHRydWUpe1xyXG5cclxuXHJcbiAgY29uc3QgcmVmID0gdGhpcy5kaWFsb2dTZXJ2aWNlLm9wZW4oRGVhY3RpdmF0aW9uUmVhc29uRm9ybUNvbXBvbmVudCwge1xyXG4gICAgaGVhZGVyOiAn2KfZhNiz2KjYqCAo2YHZiiDYrdin2YQg2KrZhSDYpdmK2YLYp9mB2YcpJyxcclxuICAgIHdpZHRoOiAnMzB2dycsXHJcbiAgICBkYXRhOiB7IG1vZGVsOiB7IC4uLm1vZGVsIH0sXHJcbiAgICAgICAgZmllbGRzOiB0aGlzLmZvcm1GaWVsZHMsXHJcbiAgICAgICAgc2VydmljZTogdGhpcy5zZXJ2aWNlLFxyXG4gICAgICAgIGlkRmllbGQ6IHRoaXMuaWRGaWVsZCB9LFxyXG4gIH0pO1xyXG5cclxuICByZWYub25DbG9zZS5zdWJzY3JpYmUoKHJlc3VsdCkgPT4ge1xyXG4gICAgaWYgKHJlc3VsdCkge1xyXG4gICAgICB0aGlzLnNlbGVjdGVkSXRlbS5pc0FjdGl2ZSA9IGZhbHNlO1xyXG4gICAgICB0aGlzLnNlbGVjdGVkSXRlbS5kZWFjdGl2YXRpb25SZWFzb24gPSByZXN1bHQuZGVhY3RpdmF0aW9uUmVhc29uO1xyXG4gICAgICAvLyBPcHRpb25hbGx5OiBzYXZlIG1vZGVsIHZpYSBBUElcclxuICAgIH1cclxuICB9KTtcclxufVxyXG5lbHNle1xyXG4gICB0aGlzLnNlbGVjdGVkSXRlbS5pc0FjdGl2ZSA9IHRydWU7XHJcbiAgIHRoaXMuc2VsZWN0ZWRJdGVtLmRlYWN0aXZhdGlvblJlYXNvbiA9IFwiXCI7XHJcbiAgICBjb25zdCBpZCA9ICAodGhpcy5zZWxlY3RlZEl0ZW0gYXMgYW55KVt0aGlzLmlkRmllbGRdIDtcclxuICAgIHRoaXMuc2VydmljZS51cGRhdGUoaWQsIHRoaXMuc2VsZWN0ZWRJdGVtKS5zdWJzY3JpYmUoe1xyXG4gICAgICAgICAgIG5leHQ6ICgpID0+IHtjb25zb2xlLmxvZygnJyl9LFxyXG4gICAgICAgICAgIGVycm9yOiAoZXJyOmFueSkgPT4ge1xyXG4gICAgICAgICAgICAgdGhpcy5sb2FkaW5nID0gZmFsc2U7XHJcblxyXG4gICAgICAgICAgIH1cclxuICAgICAgICAgfSk7XHJcbn1cclxufVxyXG5cclxuXHJcblxyXG4gIC8vIG9uRGVsZXRlKGl0ZW06IGFueSk6IHZvaWQge1xyXG4gIC8vICAgaWYgKCFjb25maXJtKCfZh9mEINiq2LHZitivINin2YTYrdiw2YEg2YHYudmE2KfZi9ifJykpIHJldHVybjtcclxuICAvLyAgIGNvbnN0IGlkID0gKGl0ZW0gYXMgYW55KVt0aGlzLmlkRmllbGRdO1xyXG4gIC8vICAgdGhpcy5zZXJ2aWNlLmRlbGV0ZShpZCkuc3Vic2NyaWJlKCgpID0+IHtcclxuICAvLyAgICAgdGhpcy5sb2FkUGFnZSgwLCB0aGlzLnJvd3MpO1xyXG4gIC8vICAgfSk7XHJcbiAgLy8gfVxyXG5cclxuXHJcbm9uRGVsZXRlKGl0ZW06IGFueSk6IHZvaWQge1xyXG4gIGNvbnN0IGlkID0gaXRlbVt0aGlzLmlkRmllbGRdO1xyXG5cclxuICB0aGlzLnN3YWxTZXJ2aWNlLmNvbmZpcm0oXHJcbiAgICAn2KrYo9mD2YrYryDYp9mE2K3YsNmBJyxcclxuICAgICfZh9mEINiq2LHZitivINit2LDZgSDZh9iw2Kcg2KfZhNiz2KzZhCDZgdi52YTYp9mL2J8nLFxyXG4gICAgJ9mG2LnZhdiMINin2K3YsNmBJyxcclxuICAgICfYpdmE2LrYp9ihJ1xyXG4gICkudGhlbigocmVzdWx0KSA9PiB7XHJcbiAgICBpZiAocmVzdWx0LmlzQ29uZmlybWVkKSB7XHJcbiAgICAgIHRoaXMuc2VydmljZS5kZWxldGUoaWQpLnN1YnNjcmliZSh7XHJcbiAgICAgICAgbmV4dDogKCkgPT4ge1xyXG4gICAgICAgICAgdGhpcy5sb2FkUGFnZSgwLCB0aGlzLnJvd3MpO1xyXG4gICAgICAgICAgdGhpcy5zd2FsU2VydmljZS5zdWNjZXNzKCfYqtmFINin2YTYrdiw2YEg2KjZhtis2KfYrScpO1xyXG4gICAgICAgIH0sXHJcbiAgICAgICAgZXJyb3I6IChlcnI6IGFueSkgPT4ge1xyXG4gICAgICAgICAgdGhpcy5sb2FkaW5nID0gZmFsc2U7XHJcblxyXG4gICAgICAgICAgLy8gY29uc3QgbXNnID1cclxuICAgICAgICAgIC8vICAgZXJyLmVycm9yPy50aXRsZSB8fFxyXG4gICAgICAgICAgLy8gICBlcnIubWVzc2FnZSB8fFxyXG4gICAgICAgICAgLy8gICAn2K3Yr9irINiu2LfYoyDYo9ir2YbYp9ihINin2YTYrdmB2LguINmK2LHYrNmJINin2YTZhdit2KfZiNmE2Kkg2YXYsdipINij2K7YsdmJLic7XHJcblxyXG4gICAgICAgICAgLy8gLy8gdGhpcy5lcnJvck1lc3NhZ2UgPSBtc2c7XHJcblxyXG4gICAgICAgICAgLy8gLy8g4p2MINix2LPYp9mE2Kkg2K7Yt9ijXHJcbiAgICAgICAgICAvLyB0aGlzLnN3YWxTZXJ2aWNlLmVycm9yKCfZgdi02YQg2KfZhNit2LDZgScsIG1zZyk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICAgIH1cclxuICB9KTtcclxufVxyXG5cclxuXHJcblxyXG5nZXQgY29sdW1ucygpOiBGb3JtbHlGaWVsZENvbmZpZ1tdIHtcclxuICAgIGNvbnN0IGZsYXR0ZW5GaWVsZHMgPSAoZmllbGRzOiBGb3JtbHlGaWVsZENvbmZpZ1tdKTogRm9ybWx5RmllbGRDb25maWdbXSA9PiB7XHJcbiAgICAgIHJldHVybiBmaWVsZHMuZmxhdE1hcChmaWVsZCA9PiB7XHJcbiAgICAgICAgLy8gQ2hlY2sgZm9yIG5lc3RlZCBncm91cC9wYW5lbFxyXG4gICAgICAgIGlmIChmaWVsZC5maWVsZEdyb3VwPy5sZW5ndGgpIHtcclxuICAgICAgICAgIHJldHVybiBmbGF0dGVuRmllbGRzKGZpZWxkLmZpZWxkR3JvdXApO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLy8gU2tpcCBmaWVsZHMgd2l0aCBubyBwcm9wcyBvciB0YWJsZS5oaWRkZW4gPT09IHRydWVcclxuICAgICAgICBpZiAoIWZpZWxkLnByb3BzIHx8IGZpZWxkLnByb3BzWyd0YWJsZSddPy5oaWRkZW4gPT09IHRydWUpIHtcclxuICAgICAgICAgIHJldHVybiBbXTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC8vIERldGVybWluZSB0aGUgY29sdW1uIHR5cGU6IHRhYmxlLnR5cGUgPiBmaWVsZC50eXBlID4gJ2xhYmVsLXR5cGUnXHJcbiAgICAgICAgLy8gY29uc3QgdGFibGVUeXBlID0gZmllbGQucHJvcHNbJ3RhYmxlJ10/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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"}
|
|
@@ -2,13 +2,13 @@ import * as i0 from '@angular/core';
|
|
|
2
2
|
import { NgModule, EventEmitter, Output, Input, ChangeDetectionStrategy, Component } from '@angular/core';
|
|
3
3
|
import * as i1 from '@angular/common';
|
|
4
4
|
import { CommonModule } from '@angular/common';
|
|
5
|
-
import * as i2 from 'primeng/button';
|
|
6
|
-
import { ButtonModule } from 'primeng/button';
|
|
7
5
|
import * as i3 from 'primeng/splitbutton';
|
|
8
6
|
import { SplitButtonModule } from 'primeng/splitbutton';
|
|
9
7
|
import { HasPermissionDirective } from '@elite.framework/ng.core/directives';
|
|
10
8
|
import * as i4 from '@ngx-translate/core';
|
|
11
9
|
import { TranslateModule } from '@ngx-translate/core';
|
|
10
|
+
import * as i2 from 'primeng/button';
|
|
11
|
+
import { ButtonModule } from 'primeng/button';
|
|
12
12
|
|
|
13
13
|
class GenericButtonModule {
|
|
14
14
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.8", ngImport: i0, type: GenericButtonModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
@@ -54,6 +54,8 @@ class GenericButton {
|
|
|
54
54
|
info: 'bg-teal-600 hover:bg-teal-700 focus:ring-teal-500 text-white',
|
|
55
55
|
warn: 'bg-yellow-500 hover:bg-yellow-600 focus:ring-yellow-400 text-white',
|
|
56
56
|
danger: 'bg-red-600 hover:bg-red-700 focus:ring-red-500 text-white',
|
|
57
|
+
help: 'bg-teal-600 hover:bg-teal-700 focus:ring-teal-500 text-white',
|
|
58
|
+
contrast: 'bg-teal-600 hover:bg-teal-700 focus:ring-teal-500 text-white',
|
|
57
59
|
};
|
|
58
60
|
// خريطة حدوده للـ outlined
|
|
59
61
|
outlinedMap = {
|
|
@@ -61,6 +63,8 @@ class GenericButton {
|
|
|
61
63
|
secondary: 'border border-gray-600 text-gray-600 hover:bg-gray-50 focus:ring-gray-500',
|
|
62
64
|
success: 'border border-green-600 text-green-600 hover:bg-green-50 focus:ring-green-500',
|
|
63
65
|
info: 'border border-teal-600 text-teal-600 hover:bg-teal-50 focus:ring-teal-500',
|
|
66
|
+
help: 'border border-teal-600 text-teal-600 hover:bg-teal-50 focus:ring-teal-500',
|
|
67
|
+
contrast: 'border border-teal-600 text-teal-600 hover:bg-teal-50 focus:ring-teal-500',
|
|
64
68
|
warn: 'border border-yellow-500 text-yellow-500 hover:bg-yellow-50 focus:ring-yellow-400',
|
|
65
69
|
danger: 'border border-red-600 text-red-600 hover:bg-red-50 focus:ring-red-500',
|
|
66
70
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"elite.framework-ng.ui.core-generic-button.mjs","sources":["../tmp-esm2022/generic-button/lib/generic-button-module.js","../tmp-esm2022/generic-button/lib/generic-button.js","../tmp-esm2022/generic-button/elite.framework-ng.ui.core-generic-button.js"],"sourcesContent":["import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport * as i0 from \"@angular/core\";\nexport class GenericButtonModule {\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: GenericButtonModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });\n static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"14.0.0\", version: \"20.1.8\", ngImport: i0, type: GenericButtonModule, imports: [CommonModule] });\n static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: GenericButtonModule, imports: [CommonModule] });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: GenericButtonModule, decorators: [{\n type: NgModule,\n args: [{\n imports: [CommonModule],\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2VuZXJpYy1idXR0b24tbW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9uZy51aS5jb3JlL2dlbmVyaWMtYnV0dG9uL3NyYy9saWIvZ2VuZXJpYy1idXR0b24tbW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDOztBQUsvQyxNQUFNLE9BQU8sbUJBQW1CO3VHQUFuQixtQkFBbUI7d0dBQW5CLG1CQUFtQixZQUZwQixZQUFZO3dHQUVYLG1CQUFtQixZQUZwQixZQUFZOzsyRkFFWCxtQkFBbUI7a0JBSC9CLFFBQVE7bUJBQUM7b0JBQ1IsT0FBTyxFQUFFLENBQUMsWUFBWSxDQUFDO2lCQUN4QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuXG5ATmdNb2R1bGUoe1xuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlXSxcbn0pXG5leHBvcnQgY2xhc3MgR2VuZXJpY0J1dHRvbk1vZHVsZSB7fVxuIl19","import { Component, Input, Output, EventEmitter, ChangeDetectionStrategy } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { ButtonModule } from 'primeng/button';\nimport { SplitButtonModule } from 'primeng/splitbutton';\nimport { HasPermissionDirective } from '@elite.framework/ng.core/directives';\nimport { TranslateModule } from '@ngx-translate/core';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@angular/common\";\nimport * as i2 from \"primeng/button\";\nimport * as i3 from \"primeng/splitbutton\";\nimport * as i4 from \"@ngx-translate/core\";\nexport class GenericButton {\n // permissionChecker = inject(PermissionCheckerService);\n // لو وُجدت هذه المصفوفة، نُستخدم splitButton\n model;\n type = 'button';\n icon = '';\n label = '';\n variant = 'raised';\n severity = 'primary';\n size = 'small';\n iconPosition = 'left';\n disabled = false;\n loading = false;\n ariaLabel;\n extraClasses = ''; // لأي Tailwind إضافي\n permission;\n clicked = new EventEmitter();\n itemClick = new EventEmitter();\n // خريطة أحجام\n sizeMap = {\n small: 'px-2 py-1 text-sm',\n normal: 'px-4 py-2 text-base',\n large: 'px-6 py-3 text-lg',\n };\n // خريطة ألوان للـ raised و rounded\n colorMap = {\n primary: 'bg-blue-600 hover:bg-blue-700 focus:ring-blue-500 text-white',\n secondary: 'bg-gray-600 hover:bg-gray-700 focus:ring-gray-500 text-white',\n success: 'bg-green-600 hover:bg-green-700 focus:ring-green-500 text-white',\n info: 'bg-teal-600 hover:bg-teal-700 focus:ring-teal-500 text-white',\n warn: 'bg-yellow-500 hover:bg-yellow-600 focus:ring-yellow-400 text-white',\n danger: 'bg-red-600 hover:bg-red-700 focus:ring-red-500 text-white',\n };\n // خريطة حدوده للـ outlined\n outlinedMap = {\n primary: 'border border-blue-600 text-blue-600 hover:bg-blue-50 focus:ring-blue-500',\n secondary: 'border border-gray-600 text-gray-600 hover:bg-gray-50 focus:ring-gray-500',\n success: 'border border-green-600 text-green-600 hover:bg-green-50 focus:ring-green-500',\n info: 'border border-teal-600 text-teal-600 hover:bg-teal-50 focus:ring-teal-500',\n warn: 'border border-yellow-500 text-yellow-500 hover:bg-yellow-50 focus:ring-yellow-400',\n danger: 'border border-red-600 text-red-600 hover:bg-red-50 focus:ring-red-500',\n };\n get twClasses() {\n const base = [\n 'inline-flex items-center justify-center font-medium',\n 'focus:outline-none focus:ring-2 focus:ring-offset-2 transition',\n this.sizeMap[this.size]\n ];\n // variant-specific\n if (this.variant === 'outlined') {\n base.push(this.outlinedMap[this.severity]);\n }\n else {\n base.push(this.colorMap[this.severity]);\n }\n if (this.variant === 'text') {\n base.push('bg-transparent hover:bg-gray-100 focus:ring-gray-200 text-gray-700');\n }\n if (this.variant === 'rounded') {\n base.push('rounded-full');\n }\n else {\n base.push('rounded-md');\n }\n if (this.disabled || this.loading) {\n base.push('opacity-50 cursor-not-allowed');\n }\n if (this.extraClasses) {\n base.push(this.extraClasses);\n }\n return base.join(' ');\n }\n onClick() {\n if (!this.disabled && !this.loading) {\n this.clicked.emit();\n }\n }\n onItemClick(evt) {\n this.itemClick.emit(evt);\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: GenericButton, deps: [], target: i0.ɵɵFactoryTarget.Component });\n static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"20.1.8\", type: GenericButton, isStandalone: true, selector: \"lib-generic-button\", inputs: { model: \"model\", type: \"type\", icon: \"icon\", label: \"label\", variant: \"variant\", severity: \"severity\", size: \"size\", iconPosition: \"iconPosition\", disabled: \"disabled\", loading: \"loading\", ariaLabel: \"ariaLabel\", extraClasses: \"extraClasses\", permission: \"permission\" }, outputs: { clicked: \"clicked\", itemClick: \"itemClick\" }, ngImport: i0, template: \"\\n\\n<ng-container *hasPermission=\\\"permission ? [permission] : []\\\">\\n <ng-container *ngIf=\\\"model && model?.length; else simpleBtn\\\">\\n <!-- Split Button -->\\n <!-- [class]=\\\"twClasses\\\" -->\\n <!-- [outlined]=\\\"outlined\\\" -->\\n <p-splitButton\\n [label]=\\\"label | translate\\\"\\n [icon]=\\\"loading ? 'pi pi-spin pi-spinner' : icon\\\"\\n [model]=\\\"model || []\\\"\\n [disabled]=\\\"disabled || loading\\\"\\n [severity]=\\\"severity || 'primary'\\\"\\n (onClick)=\\\"onClick()\\\"\\n (onItemClick)=\\\"onItemClick($event)\\\"\\n >\\n </p-splitButton>\\n </ng-container>\\n\\n <ng-template #simpleBtn>\\n <!-- \\u062D\\u0627\\u0644\\u0629 \\u0627\\u0644\\u0632\\u0631\\u0651 \\u0627\\u0644\\u0639\\u0627\\u062F\\u064A -->\\n <button\\n [attr.type]=\\\"type\\\"\\n pButton\\n [icon]=\\\"loading ? 'pi pi-spin pi-spinner' : icon\\\"\\n [label]=\\\"label | translate\\\"\\n [ngClass]=\\\"twClasses\\\"\\n [attr.aria-label]=\\\"(ariaLabel || label) | translate\\\"\\n [disabled]=\\\"disabled || loading\\\" (onClick)=\\\"onClick()\\\"\\n (click)=\\\"onClick()\\\"\\n >\\n\\n <!-- \\u0645\\u062D\\u062A\\u0648\\u0649 \\u0645\\u062E\\u0635\\u0651\\u0635 -->\\n <ng-content *ngIf=\\\"!label && !icon && !loading\\\"></ng-content>\\n </button>\\n </ng-template>\\n </ng-container>\\n\", dependencies: [{ kind: \"ngmodule\", type: CommonModule }, { kind: \"directive\", type: i1.NgClass, selector: \"[ngClass]\", inputs: [\"class\", \"ngClass\"] }, { kind: \"directive\", type: i1.NgIf, selector: \"[ngIf]\", inputs: [\"ngIf\", \"ngIfThen\", \"ngIfElse\"] }, { kind: \"ngmodule\", type: ButtonModule }, { kind: \"directive\", type: i2.ButtonDirective, selector: \"[pButton]\", inputs: [\"iconPos\", \"loadingIcon\", \"loading\", \"severity\", \"raised\", \"rounded\", \"text\", \"outlined\", \"size\", \"plain\", \"fluid\", \"label\", \"icon\", \"buttonProps\"] }, { kind: \"ngmodule\", type: SplitButtonModule }, { kind: \"component\", type: i3.SplitButton, selector: \"p-splitbutton, p-splitButton, p-split-button\", inputs: [\"model\", \"severity\", \"raised\", \"rounded\", \"text\", \"outlined\", \"size\", \"plain\", \"icon\", \"iconPos\", \"label\", \"tooltip\", \"tooltipOptions\", \"styleClass\", \"menuStyle\", \"menuStyleClass\", \"dropdownIcon\", \"appendTo\", \"dir\", \"expandAriaLabel\", \"showTransitionOptions\", \"hideTransitionOptions\", \"buttonProps\", \"menuButtonProps\", \"autofocus\", \"disabled\", \"tabindex\", \"menuButtonDisabled\", \"buttonDisabled\"], outputs: [\"onClick\", \"onMenuHide\", \"onMenuShow\", \"onDropdownClick\"] }, { kind: \"directive\", type: HasPermissionDirective, selector: \"[hasPermission]\", inputs: [\"hasPermission\"] }, { kind: \"ngmodule\", type: TranslateModule }, { kind: \"pipe\", type: i4.TranslatePipe, name: \"translate\" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: GenericButton, decorators: [{\n type: Component,\n args: [{ selector: 'lib-generic-button', standalone: true, imports: [CommonModule, ButtonModule, SplitButtonModule, HasPermissionDirective, TranslateModule], changeDetection: ChangeDetectionStrategy.OnPush, template: \"\\n\\n<ng-container *hasPermission=\\\"permission ? [permission] : []\\\">\\n <ng-container *ngIf=\\\"model && model?.length; else simpleBtn\\\">\\n <!-- Split Button -->\\n <!-- [class]=\\\"twClasses\\\" -->\\n <!-- [outlined]=\\\"outlined\\\" -->\\n <p-splitButton\\n [label]=\\\"label | translate\\\"\\n [icon]=\\\"loading ? 'pi pi-spin pi-spinner' : icon\\\"\\n [model]=\\\"model || []\\\"\\n [disabled]=\\\"disabled || loading\\\"\\n [severity]=\\\"severity || 'primary'\\\"\\n (onClick)=\\\"onClick()\\\"\\n (onItemClick)=\\\"onItemClick($event)\\\"\\n >\\n </p-splitButton>\\n </ng-container>\\n\\n <ng-template #simpleBtn>\\n <!-- \\u062D\\u0627\\u0644\\u0629 \\u0627\\u0644\\u0632\\u0631\\u0651 \\u0627\\u0644\\u0639\\u0627\\u062F\\u064A -->\\n <button\\n [attr.type]=\\\"type\\\"\\n pButton\\n [icon]=\\\"loading ? 'pi pi-spin pi-spinner' : icon\\\"\\n [label]=\\\"label | translate\\\"\\n [ngClass]=\\\"twClasses\\\"\\n [attr.aria-label]=\\\"(ariaLabel || label) | translate\\\"\\n [disabled]=\\\"disabled || loading\\\" (onClick)=\\\"onClick()\\\"\\n (click)=\\\"onClick()\\\"\\n >\\n\\n <!-- \\u0645\\u062D\\u062A\\u0648\\u0649 \\u0645\\u062E\\u0635\\u0651\\u0635 -->\\n <ng-content *ngIf=\\\"!label && !icon && !loading\\\"></ng-content>\\n </button>\\n </ng-template>\\n </ng-container>\\n\" }]\n }], propDecorators: { model: [{\n type: Input\n }], type: [{\n type: Input\n }], icon: [{\n type: Input\n }], label: [{\n type: Input\n }], variant: [{\n type: Input\n }], severity: [{\n type: Input\n }], size: [{\n type: Input\n }], iconPosition: [{\n type: Input\n }], disabled: [{\n type: Input\n }], loading: [{\n type: Input\n }], ariaLabel: [{\n type: Input\n }], extraClasses: [{\n type: Input\n }], permission: [{\n type: Input\n }], clicked: [{\n type: Output\n }], itemClick: [{\n type: Output\n }] } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2VuZXJpYy1idXR0b24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL25nLnVpLmNvcmUvZ2VuZXJpYy1idXR0b24vc3JjL2xpYi9nZW5lcmljLWJ1dHRvbi50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvbmcudWkuY29yZS9nZW5lcmljLWJ1dHRvbi9zcmMvbGliL2dlbmVyaWMtYnV0dG9uLmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLFlBQVksRUFBRSx1QkFBdUIsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNoRyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzlDLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBRXhELE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBQzdFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQzs7Ozs7O0FBY3RELE1BQU0sT0FBTyxhQUFhO0lBRXhCLHlEQUF5RDtJQUV6RCw2Q0FBNkM7SUFDcEMsS0FBSyxDQUFjO0lBRW5CLElBQUksR0FBa0MsUUFBUSxDQUFDO0lBQy9DLElBQUksR0FBRyxFQUFFLENBQUM7SUFDVixLQUFLLEdBQUcsRUFBRSxDQUFDO0lBQ1gsT0FBTyxHQUFrQixRQUFRLENBQUM7SUFDbEMsUUFBUSxHQUFtQixTQUFTLENBQUM7SUFDckMsSUFBSSxHQUFlLE9BQU8sQ0FBQztJQUMzQixZQUFZLEdBQWlCLE1BQU0sQ0FBQztJQUNwQyxRQUFRLEdBQUcsS0FBSyxDQUFDO0lBQ2pCLE9BQU8sR0FBRyxLQUFLLENBQUM7SUFDaEIsU0FBUyxDQUFVO0lBQ25CLFlBQVksR0FBRyxFQUFFLENBQUMsQ0FBRSxx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SSxXQUNOLENBQUUsWUFBWSxFQUFHLFlBQVksRUFBRSxpQkFBaUIsRUFBQyxzQkFBc0IsRUFBQyxlQUFlLENBQUMsbUJBQ2pGLHVCQUF1QixDQUFDLE1BQU07OEJBUXRDLEtBQUs7c0JBQWIsS0FBSztnQkFFRyxJQUFJO3NCQUFaLEtBQUs7Z0JBQ0csSUFBSTtzQkFBWixLQUFLO2dCQUNHLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxJQUFJO3NCQUFaLEtBQUs7Z0JBQ0csWUFBWTtzQkFBcEIsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLE9BQU87c0JBQWYsS0FBSztnQkFDRyxTQUFTO3NCQUFqQixLQUFLO2dCQUNHLFlBQVk7c0JBQXBCLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSztnQkFDSSxPQUFPO3NCQUFoQixNQUFNO2dCQUNHLFNBQVM7c0JBQWxCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCBPdXRwdXQsIEV2ZW50RW1pdHRlciwgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBCdXR0b25Nb2R1bGUgfSBmcm9tICdwcmltZW5nL2J1dHRvbic7XG5pbXBvcnQgeyBTcGxpdEJ1dHRvbk1vZHVsZSB9IGZyb20gJ3ByaW1lbmcvc3BsaXRidXR0b24nO1xuaW1wb3J0IHsgTWVudUl0ZW0gfSBmcm9tICdwcmltZW5nL2FwaSc7XG5pbXBvcnQgeyBIYXNQZXJtaXNzaW9uRGlyZWN0aXZlIH0gZnJvbSAnQGVsaXRlLmZyYW1ld29yay9uZy5jb3JlL2RpcmVjdGl2ZXMnO1xuaW1wb3J0IHsgVHJhbnNsYXRlTW9kdWxlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XG5cbnR5cGUgQnV0dG9uVmFyaWFudCA9ICd0ZXh0JyB8ICdvdXRsaW5lZCcgfCAncmFpc2VkJyB8ICdyb3VuZGVkJztcbnR5cGUgQnV0dG9uU2V2ZXJpdHkgPSAnc3VjY2VzcycgfCAnaW5mbycgfCAnd2FybicgfCAnZGFuZ2VyJyB8ICdwcmltYXJ5JyB8ICdzZWNvbmRhcnknIC8qIHwgJ2NvbnRyYXN0JyB8ICdoZWxwJyAqLyA7XG50eXBlIEJ1dHRvblNpemUgPSAnc21hbGwnIHwgJ25vcm1hbCcgfCAnbGFyZ2UnO1xudHlwZSBJY29uUG9zaXRpb24gPSAnbGVmdCcgfCAncmlnaHQnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdsaWItZ2VuZXJpYy1idXR0b24nLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICAgaW1wb3J0czogWyBDb21tb25Nb2R1bGUgLCBCdXR0b25Nb2R1bGUsIFNwbGl0QnV0dG9uTW9kdWxlLEhhc1Blcm1pc3Npb25EaXJlY3RpdmUsVHJhbnNsYXRlTW9kdWxlXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlVXJsOiAnLi9nZW5lcmljLWJ1dHRvbi5odG1sJyxcbn0pXG5leHBvcnQgY2xhc3MgR2VuZXJpY0J1dHRvbiB7XG5cbiAgLy8gIHBlcm1pc3Npb25DaGVja2VyID0gaW5qZWN0KFBlcm1pc3Npb25DaGVja2VyU2VydmljZSk7XG5cbiAgLy8g2YTZiCDZiNmP2KzYr9iqINmH2LDZhyDYp9mE2YXYtdmB2YjZgdip2Iwg2YbZj9iz2KrYrtiv2YUgc3BsaXRCdXR0b25cbiAgQElucHV0KCkgbW9kZWw/OiBNZW51SXRlbVtdO1xuXG4gIEBJbnB1dCgpIHR5cGU6ICdidXR0b24nIHwgJ3N1Ym1pdCcgfCAncmVzZXQnID0gJ2J1dHRvbic7XG4gIEBJbnB1dCgpIGljb24gPSAnJztcbiAgQElucHV0KCkgbGFiZWwgPSAnJztcbiAgQElucHV0KCkgdmFyaWFudDogQnV0dG9uVmFyaWFudCA9ICdyYWlzZWQnO1xuICBASW5wdXQoKSBzZXZlcml0eTogQnV0dG9uU2V2ZXJpdHkgPSAncHJpbWFyeSc7XG4gIEBJbnB1dCgpIHNpemU6IEJ1dHRvblNpemUgPSAnc21hbGwnO1xuICBASW5wdXQoKSBpY29uUG9zaXRpb246IEljb25Qb3NpdGlvbiA9ICdsZWZ0JztcbiAgQElucHV0KCkgZGlzYWJsZWQgPSBmYWxzZTtcbiAgQElucHV0KCkgbG9hZGluZyA9IGZhbHNlO1xuICBASW5wdXQoKSBhcmlhTGFiZWw/OiBzdHJpbmc7XG4gIEBJbnB1dCgpIGV4dHJhQ2xhc3NlcyA9ICcnOyAgLy8g2YTYo9mKIFRhaWx3aW5kINil2LbYp9mB2YpcbiAgQElucHV0KCkgcGVybWlzc2lvbj86IHN0cmluZztcbiAgQE91dHB1dCgpIGNsaWNrZWQgPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG4gIEBPdXRwdXQoKSBpdGVtQ2xpY2sgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcblxuXG4gIC8vINiu2LHZiti32Kkg2KPYrdis2KfZhVxuICBwcml2YXRlIHNpemVNYXA6IFJlY29yZDxCdXR0b25TaXplLHN0cmluZz4gPSB7XG4gICAgc21hbGw6ICdweC0yIHB5LTEgdGV4dC1zbScsXG4gICAgbm9ybWFsOiAncHgtNCBweS0yIHRleHQtYmFzZScsXG4gICAgbGFyZ2U6ICdweC02IHB5LTMgdGV4dC1sZycsXG4gIH07XG5cbiAgLy8g2K7YsdmK2LfYqSDYo9mE2YjYp9mGINmE2YTZgCByYWlzZWQg2Yggcm91bmRlZFxuICBwcml2YXRlIGNvbG9yTWFwOiBSZWNvcmQ8QnV0dG9uU2V2ZXJpdHksc3RyaW5nPiA9IHtcbiAgICBwcmltYXJ5OiAgICdiZy1ibHVlLTYwMCBob3ZlcjpiZy1ibHVlLTcwMCBmb2N1czpyaW5nLWJsdWUtNTAwIHRleHQtd2hpdGUnLFxuICAgIHNlY29uZGFyeTogJ2JnLWdyYXktNjAwIGhvdmVyOmJnLWdyYXktNzAwIGZvY3VzOnJpbmctZ3JheS01MDAgdGV4dC13aGl0ZScsXG4gICAgc3VjY2VzczogICAnYmctZ3JlZW4tNjAwIGhvdmVyOmJnLWdyZWVuLTcwMCBmb2N1czpyaW5nLWdyZWVuLTUwMCB0ZXh0LXdoaXRlJyxcbiAgICBpbmZvOiAgICAgICdiZy10ZWFsLTYwMCBob3ZlcjpiZy10ZWFsLTcwMCBmb2N1czpyaW5nLXRlYWwtNTAwIHRleHQtd2hpdGUnLFxuICAgIHdhcm46ICAgJ2JnLXllbGxvdy01MDAgaG92ZXI6YmcteWVsbG93LTYwMCBmb2N1czpyaW5nLXllbGxvdy00MDAgdGV4dC13aGl0ZScsXG4gICAgZGFuZ2VyOiAgICAnYmctcmVkLTYwMCBob3ZlcjpiZy1yZWQtNzAwIGZvY3VzOnJpbmctcmVkLTUwMCB0ZXh0LXdoaXRlJyxcbiAgfTtcblxuICAvLyDYrtix2YrYt9ipINit2K/ZiNiv2Ycg2YTZhNmAIG91dGxpbmVkXG4gIHByaXZhdGUgb3V0bGluZWRNYXA6IFJlY29yZDxCdXR0b25TZXZlcml0eSxzdHJpbmc+ID0ge1xuICAgIHByaW1hcnk6ICAgJ2JvcmRlciBib3JkZXItYmx1ZS02MDAgdGV4dC1ibHVlLTYwMCBob3ZlcjpiZy1ibHVlLTUwIGZvY3VzOnJpbmctYmx1ZS01MDAnLFxuICAgIHNlY29uZGFyeTogJ2JvcmRlciBib3JkZXItZ3JheS02MDAgdGV4dC1ncmF5LTYwMCBob3ZlcjpiZy1ncmF5LTUwIGZvY3VzOnJpbmctZ3JheS01MDAnLFxuICAgIHN1Y2Nlc3M6ICAgJ2JvcmRlciBib3JkZXItZ3JlZW4tNjAwIHRleHQtZ3JlZW4tNjAwIGhvdmVyOmJnLWdyZWVuLTUwIGZvY3VzOnJpbmctZ3JlZW4tNTAwJyxcbiAgICBpbmZvOiAgICAgICdib3JkZXIgYm9yZGVyLXRlYWwtNjAwIHRleHQtdGVhbC02MDAgaG92ZXI6YmctdGVhbC01MCBmb2N1czpyaW5nLXRlYWwtNTAwJyxcbiAgICB3YXJuOiAgICdib3JkZXIgYm9yZGVyLXllbGxvdy01MDAgdGV4dC15ZWxsb3ctNTAwIGhvdmVyOmJnLXllbGxvdy01MCBmb2N1czpyaW5nLXllbGxvdy00MDAnLFxuICAgIGRhbmdlcjogICAgJ2JvcmRlciBib3JkZXItcmVkLTYwMCB0ZXh0LXJlZC02MDAgaG92ZXI6YmctcmVkLTUwIGZvY3VzOnJpbmctcmVkLTUwMCcsXG4gIH07XG5cbiAgZ2V0IHR3Q2xhc3NlcygpOiBzdHJpbmcge1xuICAgIGNvbnN0IGJhc2UgPSBbXG4gICAgICAnaW5saW5lLWZsZXggaXRlbXMtY2VudGVyIGp1c3RpZnktY2VudGVyIGZvbnQtbWVkaXVtJyxcbiAgICAgICdmb2N1czpvdXRsaW5lLW5vbmUgZm9jdXM6cmluZy0yIGZvY3VzOnJpbmctb2Zmc2V0LTIgdHJhbnNpdGlvbicsXG4gICAgICB0aGlzLnNpemVNYXBbdGhpcy5zaXplXVxuICAgIF07XG4gICAgLy8gdmFyaWFudC1zcGVjaWZpY1xuICAgIGlmICh0aGlzLnZhcmlhbnQgPT09ICdvdXRsaW5lZCcpIHtcbiAgICAgIGJhc2UucHVzaCh0aGlzLm91dGxpbmVkTWFwW3RoaXMuc2V2ZXJpdHldKTtcbiAgICB9IGVsc2Uge1xuICAgICAgYmFzZS5wdXNoKHRoaXMuY29sb3JNYXBbdGhpcy5zZXZlcml0eV0pO1xuICAgIH1cbiAgICBpZiAodGhpcy52YXJpYW50ID09PSAndGV4dCcpIHtcbiAgICAgIGJhc2UucHVzaCgnYmctdHJhbnNwYXJlbnQgaG92ZXI6YmctZ3JheS0xMDAgZm9jdXM6cmluZy1ncmF5LTIwMCB0ZXh0LWdyYXktNzAwJyk7XG4gICAgfVxuICAgIGlmICh0aGlzLnZhcmlhbnQgPT09ICdyb3VuZGVkJykge1xuICAgICAgYmFzZS5wdXNoKCdyb3VuZGVkLWZ1bGwnKTtcbiAgICB9IGVsc2Uge1xuICAgICAgYmFzZS5wdXNoKCdyb3VuZGVkLW1kJyk7XG4gICAgfVxuICAgIGlmICh0aGlzLmRpc2FibGVkIHx8IHRoaXMubG9hZGluZykge1xuICAgICAgYmFzZS5wdXNoKCdvcGFjaXR5LTUwIGN1cnNvci1ub3QtYWxsb3dlZCcpO1xuICAgIH1cbiAgICBpZiAodGhpcy5leHRyYUNsYXNzZXMpIHtcbiAgICAgIGJhc2UucHVzaCh0aGlzLmV4dHJhQ2xhc3Nlcyk7XG4gICAgfVxuICAgIHJldHVybiBiYXNlLmpvaW4oJyAnKTtcbiAgfVxuXG4gIG9uQ2xpY2soKSB7XG4gICAgaWYgKCF0aGlzLmRpc2FibGVkICYmICF0aGlzLmxvYWRpbmcpIHtcbiAgICAgIHRoaXMuY2xpY2tlZC5lbWl0KCk7XG4gICAgfVxuICB9XG5cbiBvbkl0ZW1DbGljayhldnQ6IGFueSkge1xuICAgdGhpcy5pdGVtQ2xpY2suZW1pdChldnQpO1xuIH1cblxuXG59XG4iLCJcblxuPG5nLWNvbnRhaW5lciAqaGFzUGVybWlzc2lvbj1cInBlcm1pc3Npb24gPyBbcGVybWlzc2lvbl0gOiBbXVwiPlxuICA8bmctY29udGFpbmVyICpuZ0lmPVwibW9kZWwgJiYgbW9kZWw/Lmxlbmd0aDsgZWxzZSBzaW1wbGVCdG5cIj5cbiAgICAgICA8IS0tIFNwbGl0IEJ1dHRvbiAtLT5cbiAgICAgICAgPCEtLSBbY2xhc3NdPVwidHdDbGFzc2VzXCIgLS0+XG4gICAgICAgIDwhLS0gW291dGxpbmVkXT1cIm91dGxpbmVkXCIgLS0+XG4gICAgICA8cC1zcGxpdEJ1dHRvblxuICAgICAgICBbbGFiZWxdPVwibGFiZWwgIHwgdHJhbnNsYXRlXCJcbiAgICAgICAgW2ljb25dPVwibG9hZGluZyA/ICdwaSBwaS1zcGluIHBpLXNwaW5uZXInIDogaWNvblwiXG4gICAgICAgIFttb2RlbF09XCJtb2RlbCB8fCBbXVwiXG4gICAgICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZCB8fCBsb2FkaW5nXCJcbiAgICAgICAgW3NldmVyaXR5XT1cInNldmVyaXR5IHx8ICdwcmltYXJ5J1wiXG4gICAgICAgIChvbkNsaWNrKT1cIm9uQ2xpY2soKVwiXG4gICAgICAgICAgKG9uSXRlbUNsaWNrKT1cIm9uSXRlbUNsaWNrKCRldmVudClcIlxuICAgICAgICA+XG4gICAgICA8L3Atc3BsaXRCdXR0b24+XG4gIDwvbmctY29udGFpbmVyPlxuXG4gIDxuZy10ZW1wbGF0ZSAjc2ltcGxlQnRuPlxuICAgIDwhLS0g2K3Yp9mE2Kkg2KfZhNiy2LHZkSDYp9mE2LnYp9iv2YogLS0+XG4gICAgPGJ1dHRvblxuICAgICAgW2F0dHIudHlwZV09XCJ0eXBlXCJcbiAgICAgIHBCdXR0b25cbiAgICAgIFtpY29uXT1cImxvYWRpbmcgPyAncGkgcGktc3BpbiBwaS1zcGlubmVyJyA6IGljb25cIlxuICAgICAgW2xhYmVsXT1cImxhYmVsIHwgdHJhbnNsYXRlXCJcbiAgICAgIFtuZ0NsYXNzXT1cInR3Q2xhc3Nlc1wiXG4gICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cIihhcmlhTGFiZWwgfHwgbGFiZWwpIHwgdHJhbnNsYXRlXCJcbiAgICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZCB8fCBsb2FkaW5nXCIgKG9uQ2xpY2spPVwib25DbGljaygpXCJcbiAgICAgIChjbGljayk9XCJvbkNsaWNrKClcIlxuICAgID5cblxuICAgICAgPCEtLSDZhdit2KrZiNmJINmF2K7YtdmR2LUgLS0+XG4gICAgICA8bmctY29udGVudCAqbmdJZj1cIiFsYWJlbCAmJiAhaWNvbiAmJiAhbG9hZGluZ1wiPjwvbmctY29udGVudD5cbiAgICA8L2J1dHRvbj5cbiAgPC9uZy10ZW1wbGF0ZT5cbiAgPC9uZy1jb250YWluZXI+XG4iXX0=","/**\n * Generated bundle index. Do not edit.\n */\nexport * from './index';\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWxpdGUuZnJhbWV3b3JrLW5nLnVpLmNvcmUtZ2VuZXJpYy1idXR0b24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzL25nLnVpLmNvcmUvZ2VuZXJpYy1idXR0b24vc3JjL2VsaXRlLmZyYW1ld29yay1uZy51aS5jb3JlLWdlbmVyaWMtYnV0dG9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsY0FBYyxTQUFTLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEdlbmVyYXRlZCBidW5kbGUgaW5kZXguIERvIG5vdCBlZGl0LlxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vaW5kZXgnO1xuIl19"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"elite.framework-ng.ui.core-generic-button.mjs","sources":["../tmp-esm2022/generic-button/lib/generic-button-module.js","../tmp-esm2022/generic-button/lib/generic-button.js","../tmp-esm2022/generic-button/elite.framework-ng.ui.core-generic-button.js"],"sourcesContent":["import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport * as i0 from \"@angular/core\";\nexport class GenericButtonModule {\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: GenericButtonModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });\n static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"14.0.0\", version: \"20.1.8\", ngImport: i0, type: GenericButtonModule, imports: [CommonModule] });\n static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: GenericButtonModule, imports: [CommonModule] });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: GenericButtonModule, decorators: [{\n type: NgModule,\n args: [{\n imports: [CommonModule],\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2VuZXJpYy1idXR0b24tbW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9uZy51aS5jb3JlL2dlbmVyaWMtYnV0dG9uL3NyYy9saWIvZ2VuZXJpYy1idXR0b24tbW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDOztBQUsvQyxNQUFNLE9BQU8sbUJBQW1CO3VHQUFuQixtQkFBbUI7d0dBQW5CLG1CQUFtQixZQUZwQixZQUFZO3dHQUVYLG1CQUFtQixZQUZwQixZQUFZOzsyRkFFWCxtQkFBbUI7a0JBSC9CLFFBQVE7bUJBQUM7b0JBQ1IsT0FBTyxFQUFFLENBQUMsWUFBWSxDQUFDO2lCQUN4QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuXG5ATmdNb2R1bGUoe1xuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlXSxcbn0pXG5leHBvcnQgY2xhc3MgR2VuZXJpY0J1dHRvbk1vZHVsZSB7fVxuIl19","import { Component, Input, Output, EventEmitter, ChangeDetectionStrategy } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { SplitButtonModule } from 'primeng/splitbutton';\nimport { HasPermissionDirective } from '@elite.framework/ng.core/directives';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { ButtonModule } from 'primeng/button';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@angular/common\";\nimport * as i2 from \"primeng/button\";\nimport * as i3 from \"primeng/splitbutton\";\nimport * as i4 from \"@ngx-translate/core\";\nexport class GenericButton {\n // permissionChecker = inject(PermissionCheckerService);\n // لو وُجدت هذه المصفوفة، نُستخدم splitButton\n model;\n type = 'button';\n icon = '';\n label = '';\n variant = 'raised';\n severity = 'primary';\n size = 'small';\n iconPosition = 'left';\n disabled = false;\n loading = false;\n ariaLabel;\n extraClasses = ''; // لأي Tailwind إضافي\n permission;\n clicked = new EventEmitter();\n itemClick = new EventEmitter();\n // خريطة أحجام\n sizeMap = {\n small: 'px-2 py-1 text-sm',\n normal: 'px-4 py-2 text-base',\n large: 'px-6 py-3 text-lg',\n };\n // خريطة ألوان للـ raised و rounded\n colorMap = {\n primary: 'bg-blue-600 hover:bg-blue-700 focus:ring-blue-500 text-white',\n secondary: 'bg-gray-600 hover:bg-gray-700 focus:ring-gray-500 text-white',\n success: 'bg-green-600 hover:bg-green-700 focus:ring-green-500 text-white',\n info: 'bg-teal-600 hover:bg-teal-700 focus:ring-teal-500 text-white',\n warn: 'bg-yellow-500 hover:bg-yellow-600 focus:ring-yellow-400 text-white',\n danger: 'bg-red-600 hover:bg-red-700 focus:ring-red-500 text-white',\n help: 'bg-teal-600 hover:bg-teal-700 focus:ring-teal-500 text-white',\n contrast: 'bg-teal-600 hover:bg-teal-700 focus:ring-teal-500 text-white',\n };\n // خريطة حدوده للـ outlined\n outlinedMap = {\n primary: 'border border-blue-600 text-blue-600 hover:bg-blue-50 focus:ring-blue-500',\n secondary: 'border border-gray-600 text-gray-600 hover:bg-gray-50 focus:ring-gray-500',\n success: 'border border-green-600 text-green-600 hover:bg-green-50 focus:ring-green-500',\n info: 'border border-teal-600 text-teal-600 hover:bg-teal-50 focus:ring-teal-500',\n help: 'border border-teal-600 text-teal-600 hover:bg-teal-50 focus:ring-teal-500',\n contrast: 'border border-teal-600 text-teal-600 hover:bg-teal-50 focus:ring-teal-500',\n warn: 'border border-yellow-500 text-yellow-500 hover:bg-yellow-50 focus:ring-yellow-400',\n danger: 'border border-red-600 text-red-600 hover:bg-red-50 focus:ring-red-500',\n };\n get twClasses() {\n const base = [\n 'inline-flex items-center justify-center font-medium',\n 'focus:outline-none focus:ring-2 focus:ring-offset-2 transition',\n this.sizeMap[this.size]\n ];\n // variant-specific\n if (this.variant === 'outlined') {\n base.push(this.outlinedMap[this.severity]);\n }\n else {\n base.push(this.colorMap[this.severity]);\n }\n if (this.variant === 'text') {\n base.push('bg-transparent hover:bg-gray-100 focus:ring-gray-200 text-gray-700');\n }\n if (this.variant === 'rounded') {\n base.push('rounded-full');\n }\n else {\n base.push('rounded-md');\n }\n if (this.disabled || this.loading) {\n base.push('opacity-50 cursor-not-allowed');\n }\n if (this.extraClasses) {\n base.push(this.extraClasses);\n }\n return base.join(' ');\n }\n onClick() {\n if (!this.disabled && !this.loading) {\n this.clicked.emit();\n }\n }\n onItemClick(evt) {\n this.itemClick.emit(evt);\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: GenericButton, deps: [], target: i0.ɵɵFactoryTarget.Component });\n static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"20.1.8\", type: GenericButton, isStandalone: true, selector: \"lib-generic-button\", inputs: { model: \"model\", type: \"type\", icon: \"icon\", label: \"label\", variant: \"variant\", severity: \"severity\", size: \"size\", iconPosition: \"iconPosition\", disabled: \"disabled\", loading: \"loading\", ariaLabel: \"ariaLabel\", extraClasses: \"extraClasses\", permission: \"permission\" }, outputs: { clicked: \"clicked\", itemClick: \"itemClick\" }, ngImport: i0, template: \"\\n\\n<ng-container *hasPermission=\\\"permission ? [permission] : []\\\">\\n <ng-container *ngIf=\\\"model && model?.length; else simpleBtn\\\">\\n <!-- Split Button -->\\n <!-- [class]=\\\"twClasses\\\" -->\\n <!-- [outlined]=\\\"outlined\\\" -->\\n <p-splitButton\\n [label]=\\\"label | translate\\\"\\n [icon]=\\\"loading ? 'pi pi-spin pi-spinner' : icon\\\"\\n [model]=\\\"model || []\\\"\\n [disabled]=\\\"disabled || loading\\\"\\n [severity]=\\\"severity || 'primary'\\\"\\n (onClick)=\\\"onClick()\\\"\\n (onItemClick)=\\\"onItemClick($event)\\\"\\n >\\n </p-splitButton>\\n </ng-container>\\n\\n <ng-template #simpleBtn>\\n <!-- \\u062D\\u0627\\u0644\\u0629 \\u0627\\u0644\\u0632\\u0631\\u0651 \\u0627\\u0644\\u0639\\u0627\\u062F\\u064A -->\\n <button\\n [attr.type]=\\\"type\\\"\\n pButton\\n [icon]=\\\"loading ? 'pi pi-spin pi-spinner' : icon\\\"\\n [label]=\\\"label | translate\\\"\\n [ngClass]=\\\"twClasses\\\"\\n [attr.aria-label]=\\\"(ariaLabel || label) | translate\\\"\\n [disabled]=\\\"disabled || loading\\\" (onClick)=\\\"onClick()\\\"\\n (click)=\\\"onClick()\\\"\\n >\\n\\n <!-- \\u0645\\u062D\\u062A\\u0648\\u0649 \\u0645\\u062E\\u0635\\u0651\\u0635 -->\\n <ng-content *ngIf=\\\"!label && !icon && !loading\\\"></ng-content>\\n </button>\\n </ng-template>\\n </ng-container>\\n\", dependencies: [{ kind: \"ngmodule\", type: CommonModule }, { kind: \"directive\", type: i1.NgClass, selector: \"[ngClass]\", inputs: [\"class\", \"ngClass\"] }, { kind: \"directive\", type: i1.NgIf, selector: \"[ngIf]\", inputs: [\"ngIf\", \"ngIfThen\", \"ngIfElse\"] }, { kind: \"ngmodule\", type: ButtonModule }, { kind: \"directive\", type: i2.ButtonDirective, selector: \"[pButton]\", inputs: [\"iconPos\", \"loadingIcon\", \"loading\", \"severity\", \"raised\", \"rounded\", \"text\", \"outlined\", \"size\", \"plain\", \"fluid\", \"label\", \"icon\", \"buttonProps\"] }, { kind: \"ngmodule\", type: SplitButtonModule }, { kind: \"component\", type: i3.SplitButton, selector: \"p-splitbutton, p-splitButton, p-split-button\", inputs: [\"model\", \"severity\", \"raised\", \"rounded\", \"text\", \"outlined\", \"size\", \"plain\", \"icon\", \"iconPos\", \"label\", \"tooltip\", \"tooltipOptions\", \"styleClass\", \"menuStyle\", \"menuStyleClass\", \"dropdownIcon\", \"appendTo\", \"dir\", \"expandAriaLabel\", \"showTransitionOptions\", \"hideTransitionOptions\", \"buttonProps\", \"menuButtonProps\", \"autofocus\", \"disabled\", \"tabindex\", \"menuButtonDisabled\", \"buttonDisabled\"], outputs: [\"onClick\", \"onMenuHide\", \"onMenuShow\", \"onDropdownClick\"] }, { kind: \"directive\", type: HasPermissionDirective, selector: \"[hasPermission]\", inputs: [\"hasPermission\"] }, { kind: \"ngmodule\", type: TranslateModule }, { kind: \"pipe\", type: i4.TranslatePipe, name: \"translate\" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: GenericButton, decorators: [{\n type: Component,\n args: [{ selector: 'lib-generic-button', standalone: true, imports: [CommonModule, ButtonModule, SplitButtonModule, HasPermissionDirective, TranslateModule], changeDetection: ChangeDetectionStrategy.OnPush, template: \"\\n\\n<ng-container *hasPermission=\\\"permission ? [permission] : []\\\">\\n <ng-container *ngIf=\\\"model && model?.length; else simpleBtn\\\">\\n <!-- Split Button -->\\n <!-- [class]=\\\"twClasses\\\" -->\\n <!-- [outlined]=\\\"outlined\\\" -->\\n <p-splitButton\\n [label]=\\\"label | translate\\\"\\n [icon]=\\\"loading ? 'pi pi-spin pi-spinner' : icon\\\"\\n [model]=\\\"model || []\\\"\\n [disabled]=\\\"disabled || loading\\\"\\n [severity]=\\\"severity || 'primary'\\\"\\n (onClick)=\\\"onClick()\\\"\\n (onItemClick)=\\\"onItemClick($event)\\\"\\n >\\n </p-splitButton>\\n </ng-container>\\n\\n <ng-template #simpleBtn>\\n <!-- \\u062D\\u0627\\u0644\\u0629 \\u0627\\u0644\\u0632\\u0631\\u0651 \\u0627\\u0644\\u0639\\u0627\\u062F\\u064A -->\\n <button\\n [attr.type]=\\\"type\\\"\\n pButton\\n [icon]=\\\"loading ? 'pi pi-spin pi-spinner' : icon\\\"\\n [label]=\\\"label | translate\\\"\\n [ngClass]=\\\"twClasses\\\"\\n [attr.aria-label]=\\\"(ariaLabel || label) | translate\\\"\\n [disabled]=\\\"disabled || loading\\\" (onClick)=\\\"onClick()\\\"\\n (click)=\\\"onClick()\\\"\\n >\\n\\n <!-- \\u0645\\u062D\\u062A\\u0648\\u0649 \\u0645\\u062E\\u0635\\u0651\\u0635 -->\\n <ng-content *ngIf=\\\"!label && !icon && !loading\\\"></ng-content>\\n </button>\\n </ng-template>\\n </ng-container>\\n\" }]\n }], propDecorators: { model: [{\n type: Input\n }], type: [{\n type: Input\n }], icon: [{\n type: Input\n }], label: [{\n type: Input\n }], variant: [{\n type: Input\n }], severity: [{\n type: Input\n }], size: [{\n type: Input\n }], iconPosition: [{\n type: Input\n }], disabled: [{\n type: Input\n }], loading: [{\n type: Input\n }], ariaLabel: [{\n type: Input\n }], extraClasses: [{\n type: Input\n }], permission: [{\n type: Input\n }], clicked: [{\n type: Output\n }], itemClick: [{\n type: Output\n }] } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2VuZXJpYy1idXR0b24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL25nLnVpLmNvcmUvZ2VuZXJpYy1idXR0b24vc3JjL2xpYi9nZW5lcmljLWJ1dHRvbi50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvbmcudWkuY29yZS9nZW5lcmljLWJ1dHRvbi9zcmMvbGliL2dlbmVyaWMtYnV0dG9uLmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLFlBQVksRUFBRSx1QkFBdUIsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNoRyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFFeEQsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFDN0UsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBRXRELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7Ozs7O0FBVzlDLE1BQU0sT0FBTyxhQUFhO0lBRXhCLHlEQUF5RDtJQUV6RCw2Q0FBNkM7SUFDcEMsS0FBSyxDQUFjO0lBRW5CLElBQUksR0FBa0MsUUFBUSxDQUFDO0lBQy9DLElBQUksR0FBRyxFQUFFLENBQUM7SUFDVixLQUFLLEdBQUcsRUFBRSxDQUFDO0lBQ1gsT0FBTyxHQUFrQixRQUFRLENBQUM7SUFDbEMsUUFBUSxHQUFtQixTQUFTLENBQUM7SUFDckMsSUFBSSxHQUFlLE9BQU8sQ0FBQztJQUMzQixZQUFZLEdBQWlCLE1BQU0sQ0FBQztJQUNwQyxRQUFRLEdBQUcsS0FBSyxDQUFDO0lBQ2pCLE9BQU8sR0FBRyxLQUFLLENBQUM7SUFDaEIsU0FBUyxDQUFVO0lBQ25CLFlBQVksR0FBRyxFQUFFLENBQUMsQ0FBRSxx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RyxZQUFZLG9RQUFFLGlCQUFpQixpbUJBQUMsc0JBQXNCLHNGQUFDLGVBQWU7OzJGQUl0RixhQUFhO2tCQVB6QixTQUFTOytCQUNFLG9CQUFvQixjQUNsQixJQUFJLFdBQ04sQ0FBRSxZQUFZLEVBQUcsWUFBWSxFQUFFLGlCQUFpQixFQUFDLHNCQUFzQixFQUFDLGVBQWUsQ0FBQyxtQkFDakYsdUJBQXVCLENBQUMsTUFBTTs4QkFRdEMsS0FBSztzQkFBYixLQUFLO2dCQUVHLElBQUk7c0JBQVosS0FBSztnQkFDRyxJQUFJO3NCQUFaLEtBQUs7Z0JBQ0csS0FBSztzQkFBYixLQUFLO2dCQUNHLE9BQU87c0JBQWYsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLElBQUk7c0JBQVosS0FBSztnQkFDRyxZQUFZO3NCQUFwQixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csT0FBTztzQkFBZixLQUFLO2dCQUNHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ0csWUFBWTtzQkFBcEIsS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLO2dCQUNJLE9BQU87c0JBQWhCLE1BQU07Z0JBQ0csU0FBUztzQkFBbEIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIE91dHB1dCwgRXZlbnRFbWl0dGVyLCBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IFNwbGl0QnV0dG9uTW9kdWxlIH0gZnJvbSAncHJpbWVuZy9zcGxpdGJ1dHRvbic7XG5pbXBvcnQgeyBNZW51SXRlbSB9IGZyb20gJ3ByaW1lbmcvYXBpJztcbmltcG9ydCB7IEhhc1Blcm1pc3Npb25EaXJlY3RpdmUgfSBmcm9tICdAZWxpdGUuZnJhbWV3b3JrL25nLmNvcmUvZGlyZWN0aXZlcyc7XG5pbXBvcnQgeyBUcmFuc2xhdGVNb2R1bGUgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcbmltcG9ydCB7IEJ1dHRvblNldmVyaXR5LCBCdXR0b25TaXplLCBCdXR0b25WYXJpYW50LCBJY29uUG9zaXRpb24gfSBmcm9tICdAZWxpdGUuZnJhbWV3b3JrL25nLmNvcmUvbW9kZWxzJztcbmltcG9ydCB7IEJ1dHRvbk1vZHVsZSB9IGZyb20gJ3ByaW1lbmcvYnV0dG9uJztcblxuXG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2xpYi1nZW5lcmljLWJ1dHRvbicsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gICBpbXBvcnRzOiBbIENvbW1vbk1vZHVsZSAsIEJ1dHRvbk1vZHVsZSwgU3BsaXRCdXR0b25Nb2R1bGUsSGFzUGVybWlzc2lvbkRpcmVjdGl2ZSxUcmFuc2xhdGVNb2R1bGVdLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGVVcmw6ICcuL2dlbmVyaWMtYnV0dG9uLmh0bWwnLFxufSlcbmV4cG9ydCBjbGFzcyBHZW5lcmljQnV0dG9uIHtcblxuICAvLyAgcGVybWlzc2lvbkNoZWNrZXIgPSBpbmplY3QoUGVybWlzc2lvbkNoZWNrZXJTZXJ2aWNlKTtcblxuICAvLyDZhNmIINmI2Y/YrNiv2Kog2YfYsNmHINin2YTZhdi12YHZiNmB2KnYjCDZhtmP2LPYqtiu2K/ZhSBzcGxpdEJ1dHRvblxuICBASW5wdXQoKSBtb2RlbD86IE1lbnVJdGVtW107XG5cbiAgQElucHV0KCkgdHlwZTogJ2J1dHRvbicgfCAnc3VibWl0JyB8ICdyZXNldCcgPSAnYnV0dG9uJztcbiAgQElucHV0KCkgaWNvbiA9ICcnO1xuICBASW5wdXQoKSBsYWJlbCA9ICcnO1xuICBASW5wdXQoKSB2YXJpYW50OiBCdXR0b25WYXJpYW50ID0gJ3JhaXNlZCc7XG4gIEBJbnB1dCgpIHNldmVyaXR5OiBCdXR0b25TZXZlcml0eSA9ICdwcmltYXJ5JztcbiAgQElucHV0KCkgc2l6ZTogQnV0dG9uU2l6ZSA9ICdzbWFsbCc7XG4gIEBJbnB1dCgpIGljb25Qb3NpdGlvbjogSWNvblBvc2l0aW9uID0gJ2xlZnQnO1xuICBASW5wdXQoKSBkaXNhYmxlZCA9IGZhbHNlO1xuICBASW5wdXQoKSBsb2FkaW5nID0gZmFsc2U7XG4gIEBJbnB1dCgpIGFyaWFMYWJlbD86IHN0cmluZztcbiAgQElucHV0KCkgZXh0cmFDbGFzc2VzID0gJyc7ICAvLyDZhNij2YogVGFpbHdpbmQg2KXYttin2YHZilxuICBASW5wdXQoKSBwZXJtaXNzaW9uPzogc3RyaW5nO1xuICBAT3V0cHV0KCkgY2xpY2tlZCA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcbiAgQE91dHB1dCgpIGl0ZW1DbGljayA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuXG5cbiAgLy8g2K7YsdmK2LfYqSDYo9it2KzYp9mFXG4gIHByaXZhdGUgc2l6ZU1hcDogUmVjb3JkPEJ1dHRvblNpemUsc3RyaW5nPiA9IHtcbiAgICBzbWFsbDogJ3B4LTIgcHktMSB0ZXh0LXNtJyxcbiAgICBub3JtYWw6ICdweC00IHB5LTIgdGV4dC1iYXNlJyxcbiAgICBsYXJnZTogJ3B4LTYgcHktMyB0ZXh0LWxnJyxcbiAgfTtcblxuICAvLyDYrtix2YrYt9ipINij2YTZiNin2YYg2YTZhNmAIHJhaXNlZCDZiCByb3VuZGVkXG4gIHByaXZhdGUgY29sb3JNYXA6IFJlY29yZDxCdXR0b25TZXZlcml0eSxzdHJpbmc+ID0ge1xuICAgIHByaW1hcnk6ICAgJ2JnLWJsdWUtNjAwIGhvdmVyOmJnLWJsdWUtNzAwIGZvY3VzOnJpbmctYmx1ZS01MDAgdGV4dC13aGl0ZScsXG4gICAgc2Vjb25kYXJ5OiAnYmctZ3JheS02MDAgaG92ZXI6YmctZ3JheS03MDAgZm9jdXM6cmluZy1ncmF5LTUwMCB0ZXh0LXdoaXRlJyxcbiAgICBzdWNjZXNzOiAgICdiZy1ncmVlbi02MDAgaG92ZXI6YmctZ3JlZW4tNzAwIGZvY3VzOnJpbmctZ3JlZW4tNTAwIHRleHQtd2hpdGUnLFxuICAgIGluZm86ICAgICAgJ2JnLXRlYWwtNjAwIGhvdmVyOmJnLXRlYWwtNzAwIGZvY3VzOnJpbmctdGVhbC01MDAgdGV4dC13aGl0ZScsXG4gICAgd2FybjogICAnYmcteWVsbG93LTUwMCBob3ZlcjpiZy15ZWxsb3ctNjAwIGZvY3VzOnJpbmcteWVsbG93LTQwMCB0ZXh0LXdoaXRlJyxcbiAgICBkYW5nZXI6ICAgICdiZy1yZWQtNjAwIGhvdmVyOmJnLXJlZC03MDAgZm9jdXM6cmluZy1yZWQtNTAwIHRleHQtd2hpdGUnLFxuICAgIGhlbHA6ICAgICdiZy10ZWFsLTYwMCBob3ZlcjpiZy10ZWFsLTcwMCBmb2N1czpyaW5nLXRlYWwtNTAwIHRleHQtd2hpdGUnLFxuICAgIGNvbnRyYXN0OiAgICAnYmctdGVhbC02MDAgaG92ZXI6YmctdGVhbC03MDAgZm9jdXM6cmluZy10ZWFsLTUwMCB0ZXh0LXdoaXRlJyxcbiAgfTtcblxuICAvLyDYrtix2YrYt9ipINit2K/ZiNiv2Ycg2YTZhNmAIG91dGxpbmVkXG4gIHByaXZhdGUgb3V0bGluZWRNYXA6IFJlY29yZDxCdXR0b25TZXZlcml0eSxzdHJpbmc+ID0ge1xuICAgIHByaW1hcnk6ICAgJ2JvcmRlciBib3JkZXItYmx1ZS02MDAgdGV4dC1ibHVlLTYwMCBob3ZlcjpiZy1ibHVlLTUwIGZvY3VzOnJpbmctYmx1ZS01MDAnLFxuICAgIHNlY29uZGFyeTogJ2JvcmRlciBib3JkZXItZ3JheS02MDAgdGV4dC1ncmF5LTYwMCBob3ZlcjpiZy1ncmF5LTUwIGZvY3VzOnJpbmctZ3JheS01MDAnLFxuICAgIHN1Y2Nlc3M6ICAgJ2JvcmRlciBib3JkZXItZ3JlZW4tNjAwIHRleHQtZ3JlZW4tNjAwIGhvdmVyOmJnLWdyZWVuLTUwIGZvY3VzOnJpbmctZ3JlZW4tNTAwJyxcbiAgICBpbmZvOiAgICAgICdib3JkZXIgYm9yZGVyLXRlYWwtNjAwIHRleHQtdGVhbC02MDAgaG92ZXI6YmctdGVhbC01MCBmb2N1czpyaW5nLXRlYWwtNTAwJyxcbiAgICBoZWxwOiAgICAgICdib3JkZXIgYm9yZGVyLXRlYWwtNjAwIHRleHQtdGVhbC02MDAgaG92ZXI6YmctdGVhbC01MCBmb2N1czpyaW5nLXRlYWwtNTAwJyxcbiAgICBjb250cmFzdDogICAgICAnYm9yZGVyIGJvcmRlci10ZWFsLTYwMCB0ZXh0LXRlYWwtNjAwIGhvdmVyOmJnLXRlYWwtNTAgZm9jdXM6cmluZy10ZWFsLTUwMCcsXG4gICAgd2FybjogICAnYm9yZGVyIGJvcmRlci15ZWxsb3ctNTAwIHRleHQteWVsbG93LTUwMCBob3ZlcjpiZy15ZWxsb3ctNTAgZm9jdXM6cmluZy15ZWxsb3ctNDAwJyxcbiAgICBkYW5nZXI6ICAgICdib3JkZXIgYm9yZGVyLXJlZC02MDAgdGV4dC1yZWQtNjAwIGhvdmVyOmJnLXJlZC01MCBmb2N1czpyaW5nLXJlZC01MDAnLFxuICB9O1xuXG4gIGdldCB0d0NsYXNzZXMoKTogc3RyaW5nIHtcbiAgICBjb25zdCBiYXNlID0gW1xuICAgICAgJ2lubGluZS1mbGV4IGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNlbnRlciBmb250LW1lZGl1bScsXG4gICAgICAnZm9jdXM6b3V0bGluZS1ub25lIGZvY3VzOnJpbmctMiBmb2N1czpyaW5nLW9mZnNldC0yIHRyYW5zaXRpb24nLFxuICAgICAgdGhpcy5zaXplTWFwW3RoaXMuc2l6ZV1cbiAgICBdO1xuICAgIC8vIHZhcmlhbnQtc3BlY2lmaWNcbiAgICBpZiAodGhpcy52YXJpYW50ID09PSAnb3V0bGluZWQnKSB7XG4gICAgICBiYXNlLnB1c2godGhpcy5vdXRsaW5lZE1hcFt0aGlzLnNldmVyaXR5XSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGJhc2UucHVzaCh0aGlzLmNvbG9yTWFwW3RoaXMuc2V2ZXJpdHldKTtcbiAgICB9XG4gICAgaWYgKHRoaXMudmFyaWFudCA9PT0gJ3RleHQnKSB7XG4gICAgICBiYXNlLnB1c2goJ2JnLXRyYW5zcGFyZW50IGhvdmVyOmJnLWdyYXktMTAwIGZvY3VzOnJpbmctZ3JheS0yMDAgdGV4dC1ncmF5LTcwMCcpO1xuICAgIH1cbiAgICBpZiAodGhpcy52YXJpYW50ID09PSAncm91bmRlZCcpIHtcbiAgICAgIGJhc2UucHVzaCgncm91bmRlZC1mdWxsJyk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGJhc2UucHVzaCgncm91bmRlZC1tZCcpO1xuICAgIH1cbiAgICBpZiAodGhpcy5kaXNhYmxlZCB8fCB0aGlzLmxvYWRpbmcpIHtcbiAgICAgIGJhc2UucHVzaCgnb3BhY2l0eS01MCBjdXJzb3Itbm90LWFsbG93ZWQnKTtcbiAgICB9XG4gICAgaWYgKHRoaXMuZXh0cmFDbGFzc2VzKSB7XG4gICAgICBiYXNlLnB1c2godGhpcy5leHRyYUNsYXNzZXMpO1xuICAgIH1cbiAgICByZXR1cm4gYmFzZS5qb2luKCcgJyk7XG4gIH1cblxuICBvbkNsaWNrKCkge1xuICAgIGlmICghdGhpcy5kaXNhYmxlZCAmJiAhdGhpcy5sb2FkaW5nKSB7XG4gICAgICB0aGlzLmNsaWNrZWQuZW1pdCgpO1xuICAgIH1cbiAgfVxuXG4gb25JdGVtQ2xpY2soZXZ0OiBhbnkpIHtcbiAgIHRoaXMuaXRlbUNsaWNrLmVtaXQoZXZ0KTtcbiB9XG5cblxufVxuIiwiXG5cbjxuZy1jb250YWluZXIgKmhhc1Blcm1pc3Npb249XCJwZXJtaXNzaW9uID8gW3Blcm1pc3Npb25dIDogW11cIj5cbiAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIm1vZGVsICYmIG1vZGVsPy5sZW5ndGg7IGVsc2Ugc2ltcGxlQnRuXCI+XG4gICAgICAgPCEtLSBTcGxpdCBCdXR0b24gLS0+XG4gICAgICAgIDwhLS0gW2NsYXNzXT1cInR3Q2xhc3Nlc1wiIC0tPlxuICAgICAgICA8IS0tIFtvdXRsaW5lZF09XCJvdXRsaW5lZFwiIC0tPlxuICAgICAgPHAtc3BsaXRCdXR0b25cbiAgICAgICAgW2xhYmVsXT1cImxhYmVsICB8IHRyYW5zbGF0ZVwiXG4gICAgICAgIFtpY29uXT1cImxvYWRpbmcgPyAncGkgcGktc3BpbiBwaS1zcGlubmVyJyA6IGljb25cIlxuICAgICAgICBbbW9kZWxdPVwibW9kZWwgfHwgW11cIlxuICAgICAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWQgfHwgbG9hZGluZ1wiXG4gICAgICAgIFtzZXZlcml0eV09XCJzZXZlcml0eSB8fCAncHJpbWFyeSdcIlxuICAgICAgICAob25DbGljayk9XCJvbkNsaWNrKClcIlxuICAgICAgICAgIChvbkl0ZW1DbGljayk9XCJvbkl0ZW1DbGljaygkZXZlbnQpXCJcbiAgICAgICAgPlxuICAgICAgPC9wLXNwbGl0QnV0dG9uPlxuICA8L25nLWNvbnRhaW5lcj5cblxuICA8bmctdGVtcGxhdGUgI3NpbXBsZUJ0bj5cbiAgICA8IS0tINit2KfZhNipINin2YTYstix2ZEg2KfZhNi52KfYr9mKIC0tPlxuICAgIDxidXR0b25cbiAgICAgIFthdHRyLnR5cGVdPVwidHlwZVwiXG4gICAgICBwQnV0dG9uXG4gICAgICBbaWNvbl09XCJsb2FkaW5nID8gJ3BpIHBpLXNwaW4gcGktc3Bpbm5lcicgOiBpY29uXCJcbiAgICAgIFtsYWJlbF09XCJsYWJlbCB8IHRyYW5zbGF0ZVwiXG4gICAgICBbbmdDbGFzc109XCJ0d0NsYXNzZXNcIlxuICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCIoYXJpYUxhYmVsIHx8IGxhYmVsKSB8IHRyYW5zbGF0ZVwiXG4gICAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWQgfHwgbG9hZGluZ1wiIChvbkNsaWNrKT1cIm9uQ2xpY2soKVwiXG4gICAgICAoY2xpY2spPVwib25DbGljaygpXCJcbiAgICA+XG5cbiAgICAgIDwhLS0g2YXYrdiq2YjZiSDZhdiu2LXZkdi1IC0tPlxuICAgICAgPG5nLWNvbnRlbnQgKm5nSWY9XCIhbGFiZWwgJiYgIWljb24gJiYgIWxvYWRpbmdcIj48L25nLWNvbnRlbnQ+XG4gICAgPC9idXR0b24+XG4gIDwvbmctdGVtcGxhdGU+XG4gIDwvbmctY29udGFpbmVyPlxuIl19","/**\n * Generated bundle index. Do not edit.\n */\nexport * from './index';\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWxpdGUuZnJhbWV3b3JrLW5nLnVpLmNvcmUtZ2VuZXJpYy1idXR0b24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzL25nLnVpLmNvcmUvZ2VuZXJpYy1idXR0b24vc3JjL2VsaXRlLmZyYW1ld29yay1uZy51aS5jb3JlLWdlbmVyaWMtYnV0dG9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsY0FBYyxTQUFTLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEdlbmVyYXRlZCBidW5kbGUgaW5kZXguIERvIG5vdCBlZGl0LlxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vaW5kZXgnO1xuIl19"],"names":[],"mappings":"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"}
|
|
@@ -224,11 +224,11 @@ class GenericTable {
|
|
|
224
224
|
}
|
|
225
225
|
}
|
|
226
226
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.8", ngImport: i0, type: GenericTable, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
227
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.1.8", type: GenericTable, isStandalone: true, selector: "lib-generic-table", inputs: { data: "data", columns: "columns", loading: "loading", actions: "actions", actionsMode: "actionsMode", first: "first", rows: "rows", totalRecords: "totalRecords", sortField: "sortField", sortOrder: "sortOrder", globalFilterFields: "globalFilterFields", addButtonConfigs: "addButtonConfigs", scrollHeight: "scrollHeight", rowSelectable: "rowSelectable", selection: "selection", paginator: "paginator", showRowSelectionCheckbox: "showRowSelectionCheckbox" }, outputs: { action: "action", pageChange: "pageChange", onAddNew: "onAddNew", rowSelect: "rowSelect", selectionChange: "selectionChange" }, viewQueries: [{ propertyName: "dt", first: true, predicate: ["dt"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "\r\n<div class=\"flex-1 last:[&>td]:border-0 rounded-lg border border-surface w-full overflow-auto\">\r\n <p-table #dt\r\n [value]=\"data_\"\r\n [columns]=\"columns\"\r\n [lazy]=\"true\"\r\n [paginator]=\"paginator\"\r\n [rows]=\"rows\"\r\n [first]=\"first\"\r\n [totalRecords]=\"totalRecords\"\r\n [sortField]=\"sortField\"\r\n [sortOrder]=\"sortOrder\"\r\n (onLazyLoad)=\"onLazyLoad($event)\"\r\n [globalFilterFields]=\"globalFilterFields\"\r\n [loading]=\"loading\"\r\n [scrollable]=\"true\"\r\n [scrollHeight]=\"scrollHeight\"\r\n [selectionMode]=\"showRowSelectionCheckbox ? 'multiple' : (rowSelectable ? 'single' : undefined)\"\r\n [(selection)]=\"_selection\"\r\n (onRowSelect)=\"onInternalSelectionChange($event)\"\r\n (onRowUnselect)=\"onInternalSelectionChange($event)\"\r\n (onHeaderCheckboxToggle)=\"onInternalSelectionChange($event)\"\r\n tableLayout=\"fixed\"\r\n [customSort]=\"false\"\r\n (sortFunction)=\"customSort($event)\"\r\n >\r\n\r\n <ng-template pTemplate=\"emptymessage\">\r\n <tr>\r\n <td colspan=\"10\">\r\n <div class=\"flex flex-col items-center justify-center py-10 text-center w-full\">\r\n <i style=\"font-size: 2.5rem;\" class=\"pi pi-inbox text-4xl text-gray-400 mb-4\"></i>\r\n <p class=\"text-gray-500 mb-4\">{{ 'NO_DATA_FOUND' | translate }}</p>\r\n\r\n\r\n <ng-container *ngFor=\"let btn of addButtonConfigs; trackBy: trackByIdx\">\r\n @if (!btn.visible || ( btn.visible && btn.visible === true)) {\r\n <lib-generic-button\r\n [icon]=\"btn.icon\"\r\n [label]=\"btn.label | translate\"\r\n [variant]=\"btn.variant\"\r\n [size]=\"btn.size\"\r\n [model]=\"btn.splitActions\"\r\n [permission]=\"btn.permission\"\r\n (clicked)=\"onAddNew.emit()\"\r\n ></lib-generic-button>\r\n }\r\n </ng-container>\r\n </div>\r\n </td>\r\n </tr>\r\n\r\n </ng-template>\r\n\r\n <ng-template pTemplate=\"header\" let-columns>\r\n <tr>\r\n <th *ngIf=\"showRowSelectionCheckbox\" style=\"width: 2rem\">\r\n <p-tableHeaderCheckbox></p-tableHeaderCheckbox>\r\n </th>\r\n\r\n <ng-container *ngFor=\"let col of columns; trackBy: trackByFn\" >\r\n <th *ngIf=\"col.props?.table?.props?.width; else templateName\" [pSortableColumn]=\"col.key\"\r\n class=\"px-4 py-2 text-sm font-medium text-white text-center\"\r\n [style.min-width]=\"col.props?.table?.props?.width\">\r\n {{ col.props?.label | translate }}\r\n <p-sortIcon [field]=\"col.key\"></p-sortIcon>\r\n </th>\r\n\r\n <ng-template #templateName>\r\n <th style=\"min-width: 150px;\" class=\"px-4 py-2 text-sm font-medium text-white text-center\" [pSortableColumn]=\"col.key\">\r\n {{ col.props?.label | translate }}\r\n <p-sortIcon [field]=\"col.key\"></p-sortIcon>\r\n </th>\r\n </ng-template>\r\n</ng-container>\r\n\r\n\r\n <th *ngIf=\"actions.length > 0\" class=\"px-4 py-2 text-sm font-medium text-white text-center\">\r\n {{ 'OPERATIONS' | translate }}</th>\r\n </tr>\r\n </ng-template>\r\n\r\n <ng-template pTemplate=\"body\" let-rowData let-columns=\"columns\" let-i=\"rowIndex\">\r\n <tr class=\"even:bg-gray-50 hover:bg-gray-100\" (click)=\"rowSelect.emit(rowData)\">\r\n <td *ngIf=\"showRowSelectionCheckbox\" style=\"width: 2rem\">\r\n <p-tableCheckbox [value]=\"rowData\"></p-tableCheckbox>\r\n </td>\r\n <td *ngFor=\"let col of rowData.rowFields ; let colIndex = index;trackBy: trackByFn\"\r\n class=\"border-t border-gray-200 px-4 py-2 text-center text-sm text-gray-700\"\r\n [style.width]=\"col.props && col.props['table']\r\n && col.props['table']['props'] && col.props['table']['props']['width'] \"\r\n\r\n >\r\n\r\n<formly-form\r\n [model]=\"rowData\"\r\n [form]=\"getForm(i, colIndex)\"\r\n [fields]=\"[col]\"\r\n [options]=\"options\">\r\n </formly-form>\r\n </td>\r\n <td *ngIf=\"actions.length > 0\" class=\"border-t border-gray-200 px-4 py-2 text-center align-middle\">\r\n <ng-container [ngSwitch]=\"actionsMode\">\r\n <!-- Render buttons -->\r\n <ng-container *ngSwitchCase=\"'buttons'\">\r\n <ng-container *ngFor=\"let act of sortedActions\">\r\n <button\r\n *ngIf=\"act.icon || act.label\"\r\n pButton\r\n [icon]=\"act.icon || ''\"\r\n [label]=\"(act.label || '') | translate\"\r\n [class]=\"act.styleClass || ''\"\r\n class=\"p-button-sm mx-1\"\r\n (click)=\"onAction(act, rowData)\"\r\n ></button>\r\n </ng-container>\r\n </ng-container>\r\n\r\n <!-- Render menu -->\r\n <ng-container *ngSwitchCase=\"'menu'\">\r\n <p-menu #menu [model]=\"getMenuItems(rowData)\" [popup]=\"true\" appendTo=\"body\">\r\n <ng-template let-item pTemplate=\"item\">\r\n <div class=\"flex items-center gap-2 px-2 py-1\">\r\n <i [ngClass]=\"item.icon\" class=\"text-primary-600\" *ngIf=\"item.icon\"></i>\r\n <span class=\"font-medium\">{{ (item.label || '') | translate }}</span>\r\n\r\n <span *ngIf=\"item.badge\" class=\"ml-auto text-xs bg-red-500 text-white px-2 py-1 rounded\">\r\n {{ item.badge }}\r\n </span>\r\n\r\n <!-- <p-inputSwitch *ngIf=\"item.toggle\" [(ngModel)]=\"item.toggleValue\" class=\"ml-auto\" /> -->\r\n </div>\r\n </ng-template>\r\n </p-menu>\r\n\r\n <p-button\r\n outlined\r\n icon=\"pi pi-ellipsis-v\"\r\n class=\"p-button-text p-button-sm\"\r\n (onClick)=\"menu.toggle($event)\"\r\n ></p-button>\r\n </ng-container>\r\n </ng-container>\r\n\r\n </td>\r\n </tr>\r\n </ng-template>\r\n </p-table>\r\n\r\n</div>\r\n", styles: [".custom-button-medium{font-size:1.1rem;width:2.5rem;height:2.5rem;line-height:2.5rem;padding:0}.custom-button-gray{color:#333;background-color:transparent;border:none}.custom-button-gray:hover{background-color:#eee;color:#000}.icon-delete{color:red!important}.icon-edit{color:#333}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i1.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "ngmodule", type: TableModule }, { kind: "component", type: i2.Table, selector: "p-table", inputs: ["frozenColumns", "frozenValue", "styleClass", "tableStyle", "tableStyleClass", "paginator", "pageLinks", "rowsPerPageOptions", "alwaysShowPaginator", "paginatorPosition", "paginatorStyleClass", "paginatorDropdownAppendTo", "paginatorDropdownScrollHeight", "currentPageReportTemplate", "showCurrentPageReport", "showJumpToPageDropdown", "showJumpToPageInput", "showFirstLastIcon", "showPageLinks", "defaultSortOrder", "sortMode", "resetPageOnSort", "selectionMode", "selectionPageOnly", "contextMenuSelection", "contextMenuSelectionMode", "dataKey", "metaKeySelection", "rowSelectable", "rowTrackBy", "lazy", "lazyLoadOnInit", "compareSelectionBy", "csvSeparator", "exportFilename", "filters", "globalFilterFields", "filterDelay", "filterLocale", "expandedRowKeys", "editingRowKeys", "rowExpandMode", "scrollable", "rowGroupMode", "scrollHeight", "virtualScroll", "virtualScrollItemSize", "virtualScrollOptions", "virtualScrollDelay", "frozenWidth", "contextMenu", "resizableColumns", "columnResizeMode", "reorderableColumns", "loading", "loadingIcon", "showLoader", "rowHover", "customSort", "showInitialSortBadge", "exportFunction", "exportHeader", "stateKey", "stateStorage", "editMode", "groupRowsBy", "size", "showGridlines", "stripedRows", "groupRowsByOrder", "responsiveLayout", "breakpoint", "paginatorLocale", "value", "columns", "first", "rows", "totalRecords", "sortField", "sortOrder", "multiSortMeta", "selection", "selectAll"], outputs: ["contextMenuSelectionChange", "selectAllChange", "selectionChange", "onRowSelect", "onRowUnselect", "onPage", "onSort", "onFilter", "onLazyLoad", "onRowExpand", "onRowCollapse", "onContextMenuSelect", "onColResize", "onColReorder", "onRowReorder", "onEditInit", "onEditComplete", "onEditCancel", "onHeaderCheckboxToggle", "sortFunction", "firstChange", "rowsChange", "onStateSave", "onStateRestore"] }, { kind: "directive", type: i3.PrimeTemplate, selector: "[pTemplate]", inputs: ["type", "pTemplate"] }, { kind: "directive", type: i2.SortableColumn, selector: "[pSortableColumn]", inputs: ["pSortableColumn", "pSortableColumnDisabled"] }, { kind: "component", type: i2.SortIcon, selector: "p-sortIcon", inputs: ["field"] }, { kind: "component", type: i2.TableCheckbox, selector: "p-tableCheckbox", inputs: ["value", "disabled", "required", "index", "inputId", "name", "ariaLabel"] }, { kind: "component", type: i2.TableHeaderCheckbox, selector: "p-tableHeaderCheckbox", inputs: ["disabled", "inputId", "name", "ariaLabel"] }, { kind: "ngmodule", type: ButtonModule }, { kind: "directive", type: i4.ButtonDirective, selector: "[pButton]", inputs: ["iconPos", "loadingIcon", "loading", "severity", "raised", "rounded", "text", "outlined", "size", "plain", "fluid", "label", "icon", "buttonProps"] }, { kind: "component", type: i4.Button, selector: "p-button", inputs: ["type", "iconPos", "icon", "badge", "label", "disabled", "loading", "loadingIcon", "raised", "rounded", "text", "plain", "severity", "outlined", "link", "tabindex", "size", "variant", "style", "styleClass", "badgeClass", "badgeSeverity", "ariaLabel", "buttonProps", "autofocus", "fluid"], outputs: ["onClick", "onFocus", "onBlur"] }, { kind: "ngmodule", type: MenuModule }, { kind: "component", type: i5.Menu, selector: "p-menu", inputs: ["model", "popup", "style", "styleClass", "autoZIndex", "baseZIndex", "showTransitionOptions", "hideTransitionOptions", "ariaLabel", "ariaLabelledBy", "id", "tabindex", "appendTo"], outputs: ["onShow", "onHide", "onBlur", "onFocus"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "component", type: FormlyForm, selector: "formly-form", inputs: ["form", "model", "fields", "options"], outputs: ["modelChange"] }, { kind: "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: "pipe", type: i6.TranslatePipe, name: "translate" }] });
|
|
227
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.1.8", type: GenericTable, isStandalone: true, selector: "lib-generic-table", inputs: { data: "data", columns: "columns", loading: "loading", actions: "actions", actionsMode: "actionsMode", first: "first", rows: "rows", totalRecords: "totalRecords", sortField: "sortField", sortOrder: "sortOrder", globalFilterFields: "globalFilterFields", addButtonConfigs: "addButtonConfigs", scrollHeight: "scrollHeight", rowSelectable: "rowSelectable", selection: "selection", paginator: "paginator", showRowSelectionCheckbox: "showRowSelectionCheckbox" }, outputs: { action: "action", pageChange: "pageChange", onAddNew: "onAddNew", rowSelect: "rowSelect", selectionChange: "selectionChange" }, viewQueries: [{ propertyName: "dt", first: true, predicate: ["dt"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "\r\n<div class=\"flex-1 last:[&>td]:border-0 rounded-lg border border-surface w-full overflow-auto\">\r\n <p-table #dt\r\n [value]=\"data_\"\r\n [columns]=\"columns\"\r\n [lazy]=\"true\"\r\n [paginator]=\"paginator\"\r\n [rows]=\"rows\"\r\n [first]=\"first\"\r\n [totalRecords]=\"totalRecords\"\r\n [sortField]=\"sortField\"\r\n [sortOrder]=\"sortOrder\"\r\n (onLazyLoad)=\"onLazyLoad($event)\"\r\n [globalFilterFields]=\"globalFilterFields\"\r\n [loading]=\"loading\"\r\n [scrollable]=\"true\"\r\n [scrollHeight]=\"scrollHeight\"\r\n [selectionMode]=\"showRowSelectionCheckbox ? 'multiple' : (rowSelectable ? 'single' : undefined)\"\r\n [(selection)]=\"_selection\"\r\n (onRowSelect)=\"onInternalSelectionChange($event)\"\r\n (onRowUnselect)=\"onInternalSelectionChange($event)\"\r\n (onHeaderCheckboxToggle)=\"onInternalSelectionChange($event)\"\r\n tableLayout=\"fixed\"\r\n [customSort]=\"false\"\r\n (sortFunction)=\"customSort($event)\"\r\n >\r\n\r\n <ng-template pTemplate=\"emptymessage\">\r\n <tr>\r\n <td colspan=\"10\">\r\n <div class=\"flex flex-col items-center justify-center py-10 text-center w-full\">\r\n <i style=\"font-size: 2.5rem;\" class=\"pi pi-inbox text-4xl text-gray-400 mb-4\"></i>\r\n <p class=\"text-gray-500 mb-4\">{{ 'NO_DATA_FOUND' | translate }}</p>\r\n\r\n\r\n <ng-container *ngFor=\"let btn of addButtonConfigs; trackBy: trackByIdx\">\r\n @if (!btn.visible || ( btn.visible && btn.visible === true)) {\r\n <lib-generic-button\r\n [icon]=\"btn.icon\"\r\n [label]=\"btn.label | translate\"\r\n [variant]=\"btn.variant\"\r\n [size]=\"btn.size\"\r\n [model]=\"btn.splitActions\"\r\n [permission]=\"btn.permission\"\r\n (clicked)=\"onAddNew.emit()\"\r\n ></lib-generic-button>\r\n }\r\n </ng-container>\r\n </div>\r\n </td>\r\n </tr>\r\n\r\n </ng-template>\r\n\r\n <ng-template pTemplate=\"header\" let-columns>\r\n <tr>\r\n <th *ngIf=\"showRowSelectionCheckbox\" style=\"width: 2rem\">\r\n <p-tableHeaderCheckbox></p-tableHeaderCheckbox>\r\n </th>\r\n<th *ngIf=\"actions.length > 0\" class=\"px-4 py-2 text-sm font-medium text-white text-center\">\r\n {{ 'OPERATIONS' | translate }}\r\n </th>\r\n <ng-container *ngFor=\"let col of columns; trackBy: trackByFn\" >\r\n <th *ngIf=\"col.props?.table?.props?.width; else templateName\" [pSortableColumn]=\"col.key\"\r\n class=\"px-4 py-2 text-sm font-medium text-white text-center\"\r\n [style.min-width]=\"col.props?.table?.props?.width\">\r\n {{ col.props?.label | translate }}\r\n <p-sortIcon [field]=\"col.key\"></p-sortIcon>\r\n </th>\r\n\r\n <ng-template #templateName>\r\n <th style=\"min-width: 150px;\" class=\"px-4 py-2 text-sm font-medium text-white text-center\" [pSortableColumn]=\"col.key\">\r\n {{ col.props?.label | translate }}\r\n <p-sortIcon [field]=\"col.key\"></p-sortIcon>\r\n </th>\r\n </ng-template>\r\n</ng-container>\r\n\r\n\r\n\r\n </tr>\r\n </ng-template>\r\n\r\n <ng-template pTemplate=\"body\" let-rowData let-columns=\"columns\" let-i=\"rowIndex\">\r\n <tr class=\"even:bg-gray-50 hover:bg-gray-100\" (click)=\"rowSelect.emit(rowData)\">\r\n <td *ngIf=\"showRowSelectionCheckbox\" style=\"width: 2rem\">\r\n <p-tableCheckbox [value]=\"rowData\"></p-tableCheckbox>\r\n </td>\r\n <td *ngIf=\"actions.length > 0\" class=\"border-t border-gray-200 px-4 py-2 text-center align-middle\">\r\n <ng-container [ngSwitch]=\"actionsMode\">\r\n <!-- Render buttons -->\r\n <ng-container *ngSwitchCase=\"'buttons'\">\r\n <ng-container *ngFor=\"let act of sortedActions\">\r\n <button\r\n *ngIf=\"act.icon || act.label\"\r\n pButton\r\n [icon]=\"act.icon || ''\"\r\n [label]=\"(act.label || '') | translate\"\r\n [class]=\"act.styleClass || ''\"\r\n class=\"p-button-sm mx-1\"\r\n (click)=\"onAction(act, rowData)\"\r\n ></button>\r\n </ng-container>\r\n </ng-container>\r\n\r\n <!-- Render menu -->\r\n <ng-container *ngSwitchCase=\"'menu'\">\r\n <p-menu #menu [model]=\"getMenuItems(rowData)\" [popup]=\"true\" appendTo=\"body\">\r\n <ng-template let-item pTemplate=\"item\">\r\n <div class=\"flex items-center gap-2 px-2 py-1\">\r\n <i [ngClass]=\"item.icon\" class=\"text-primary-600\" *ngIf=\"item.icon\"></i>\r\n <span class=\"font-medium\">{{ (item.label || '') | translate }}</span>\r\n\r\n <span *ngIf=\"item.badge\" class=\"ml-auto text-xs bg-red-500 text-white px-2 py-1 rounded\">\r\n {{ item.badge }}\r\n </span>\r\n\r\n <!-- <p-inputSwitch *ngIf=\"item.toggle\" [(ngModel)]=\"item.toggleValue\" class=\"ml-auto\" /> -->\r\n </div>\r\n </ng-template>\r\n </p-menu>\r\n\r\n <p-button\r\n outlined\r\n icon=\"pi pi-ellipsis-v\"\r\n class=\"p-button-text p-button-sm\"\r\n (onClick)=\"menu.toggle($event)\"\r\n ></p-button>\r\n </ng-container>\r\n </ng-container>\r\n\r\n </td>\r\n <td *ngFor=\"let col of rowData.rowFields ; let colIndex = index;trackBy: trackByFn\"\r\n class=\"border-t border-gray-200 px-4 py-2 text-center text-sm text-gray-700\"\r\n [style.width]=\"col.props && col.props['table']\r\n && col.props['table']['props'] && col.props['table']['props']['width'] \"\r\n\r\n >\r\n\r\n<formly-form\r\n [model]=\"rowData\"\r\n [form]=\"getForm(i, colIndex)\"\r\n [fields]=\"[col]\"\r\n [options]=\"options\">\r\n </formly-form>\r\n </td>\r\n\r\n </tr>\r\n </ng-template>\r\n </p-table>\r\n\r\n</div>\r\n", styles: [".custom-button-medium{font-size:1.1rem;width:2.5rem;height:2.5rem;line-height:2.5rem;padding:0}.custom-button-gray{color:#333;background-color:transparent;border:none}.custom-button-gray:hover{background-color:#eee;color:#000}.icon-delete{color:red!important}.icon-edit{color:#333}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i1.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "ngmodule", type: TableModule }, { kind: "component", type: i2.Table, selector: "p-table", inputs: ["frozenColumns", "frozenValue", "styleClass", "tableStyle", "tableStyleClass", "paginator", "pageLinks", "rowsPerPageOptions", "alwaysShowPaginator", "paginatorPosition", "paginatorStyleClass", "paginatorDropdownAppendTo", "paginatorDropdownScrollHeight", "currentPageReportTemplate", "showCurrentPageReport", "showJumpToPageDropdown", "showJumpToPageInput", "showFirstLastIcon", "showPageLinks", "defaultSortOrder", "sortMode", "resetPageOnSort", "selectionMode", "selectionPageOnly", "contextMenuSelection", "contextMenuSelectionMode", "dataKey", "metaKeySelection", "rowSelectable", "rowTrackBy", "lazy", "lazyLoadOnInit", "compareSelectionBy", "csvSeparator", "exportFilename", "filters", "globalFilterFields", "filterDelay", "filterLocale", "expandedRowKeys", "editingRowKeys", "rowExpandMode", "scrollable", "rowGroupMode", "scrollHeight", "virtualScroll", "virtualScrollItemSize", "virtualScrollOptions", "virtualScrollDelay", "frozenWidth", "contextMenu", "resizableColumns", "columnResizeMode", "reorderableColumns", "loading", "loadingIcon", "showLoader", "rowHover", "customSort", "showInitialSortBadge", "exportFunction", "exportHeader", "stateKey", "stateStorage", "editMode", "groupRowsBy", "size", "showGridlines", "stripedRows", "groupRowsByOrder", "responsiveLayout", "breakpoint", "paginatorLocale", "value", "columns", "first", "rows", "totalRecords", "sortField", "sortOrder", "multiSortMeta", "selection", "selectAll"], outputs: ["contextMenuSelectionChange", "selectAllChange", "selectionChange", "onRowSelect", "onRowUnselect", "onPage", "onSort", "onFilter", "onLazyLoad", "onRowExpand", "onRowCollapse", "onContextMenuSelect", "onColResize", "onColReorder", "onRowReorder", "onEditInit", "onEditComplete", "onEditCancel", "onHeaderCheckboxToggle", "sortFunction", "firstChange", "rowsChange", "onStateSave", "onStateRestore"] }, { kind: "directive", type: i3.PrimeTemplate, selector: "[pTemplate]", inputs: ["type", "pTemplate"] }, { kind: "directive", type: i2.SortableColumn, selector: "[pSortableColumn]", inputs: ["pSortableColumn", "pSortableColumnDisabled"] }, { kind: "component", type: i2.SortIcon, selector: "p-sortIcon", inputs: ["field"] }, { kind: "component", type: i2.TableCheckbox, selector: "p-tableCheckbox", inputs: ["value", "disabled", "required", "index", "inputId", "name", "ariaLabel"] }, { kind: "component", type: i2.TableHeaderCheckbox, selector: "p-tableHeaderCheckbox", inputs: ["disabled", "inputId", "name", "ariaLabel"] }, { kind: "ngmodule", type: ButtonModule }, { kind: "directive", type: i4.ButtonDirective, selector: "[pButton]", inputs: ["iconPos", "loadingIcon", "loading", "severity", "raised", "rounded", "text", "outlined", "size", "plain", "fluid", "label", "icon", "buttonProps"] }, { kind: "component", type: i4.Button, selector: "p-button", inputs: ["type", "iconPos", "icon", "badge", "label", "disabled", "loading", "loadingIcon", "raised", "rounded", "text", "plain", "severity", "outlined", "link", "tabindex", "size", "variant", "style", "styleClass", "badgeClass", "badgeSeverity", "ariaLabel", "buttonProps", "autofocus", "fluid"], outputs: ["onClick", "onFocus", "onBlur"] }, { kind: "ngmodule", type: MenuModule }, { kind: "component", type: i5.Menu, selector: "p-menu", inputs: ["model", "popup", "style", "styleClass", "autoZIndex", "baseZIndex", "showTransitionOptions", "hideTransitionOptions", "ariaLabel", "ariaLabelledBy", "id", "tabindex", "appendTo"], outputs: ["onShow", "onHide", "onBlur", "onFocus"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "component", type: FormlyForm, selector: "formly-form", inputs: ["form", "model", "fields", "options"], outputs: ["modelChange"] }, { kind: "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: "pipe", type: i6.TranslatePipe, name: "translate" }] });
|
|
228
228
|
}
|
|
229
229
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.8", ngImport: i0, type: GenericTable, decorators: [{
|
|
230
230
|
type: Component,
|
|
231
|
-
args: [{ selector: 'lib-generic-table', imports: [CommonModule, TableModule, ButtonModule, MenuModule, NgForOf, TranslateModule, FormlyField, FormlyForm, NgIf, TranslatePipe, Menu, Button, GenericButton], template: "\r\n<div class=\"flex-1 last:[&>td]:border-0 rounded-lg border border-surface w-full overflow-auto\">\r\n <p-table #dt\r\n [value]=\"data_\"\r\n [columns]=\"columns\"\r\n [lazy]=\"true\"\r\n [paginator]=\"paginator\"\r\n [rows]=\"rows\"\r\n [first]=\"first\"\r\n [totalRecords]=\"totalRecords\"\r\n [sortField]=\"sortField\"\r\n [sortOrder]=\"sortOrder\"\r\n (onLazyLoad)=\"onLazyLoad($event)\"\r\n [globalFilterFields]=\"globalFilterFields\"\r\n [loading]=\"loading\"\r\n [scrollable]=\"true\"\r\n [scrollHeight]=\"scrollHeight\"\r\n [selectionMode]=\"showRowSelectionCheckbox ? 'multiple' : (rowSelectable ? 'single' : undefined)\"\r\n [(selection)]=\"_selection\"\r\n (onRowSelect)=\"onInternalSelectionChange($event)\"\r\n (onRowUnselect)=\"onInternalSelectionChange($event)\"\r\n (onHeaderCheckboxToggle)=\"onInternalSelectionChange($event)\"\r\n tableLayout=\"fixed\"\r\n [customSort]=\"false\"\r\n (sortFunction)=\"customSort($event)\"\r\n >\r\n\r\n <ng-template pTemplate=\"emptymessage\">\r\n <tr>\r\n <td colspan=\"10\">\r\n <div class=\"flex flex-col items-center justify-center py-10 text-center w-full\">\r\n <i style=\"font-size: 2.5rem;\" class=\"pi pi-inbox text-4xl text-gray-400 mb-4\"></i>\r\n <p class=\"text-gray-500 mb-4\">{{ 'NO_DATA_FOUND' | translate }}</p>\r\n\r\n\r\n <ng-container *ngFor=\"let btn of addButtonConfigs; trackBy: trackByIdx\">\r\n @if (!btn.visible || ( btn.visible && btn.visible === true)) {\r\n <lib-generic-button\r\n [icon]=\"btn.icon\"\r\n [label]=\"btn.label | translate\"\r\n [variant]=\"btn.variant\"\r\n [size]=\"btn.size\"\r\n [model]=\"btn.splitActions\"\r\n [permission]=\"btn.permission\"\r\n (clicked)=\"onAddNew.emit()\"\r\n ></lib-generic-button>\r\n }\r\n </ng-container>\r\n </div>\r\n </td>\r\n </tr>\r\n\r\n </ng-template>\r\n\r\n <ng-template pTemplate=\"header\" let-columns>\r\n <tr>\r\n <th *ngIf=\"showRowSelectionCheckbox\" style=\"width: 2rem\">\r\n <p-tableHeaderCheckbox></p-tableHeaderCheckbox>\r\n </th>\r\n\r\n <ng-container *ngFor=\"let col of columns; trackBy: trackByFn\" >\r\n <th *ngIf=\"col.props?.table?.props?.width; else templateName\" [pSortableColumn]=\"col.key\"\r\n class=\"px-4 py-2 text-sm font-medium text-white text-center\"\r\n [style.min-width]=\"col.props?.table?.props?.width\">\r\n {{ col.props?.label | translate }}\r\n <p-sortIcon [field]=\"col.key\"></p-sortIcon>\r\n </th>\r\n\r\n <ng-template #templateName>\r\n <th style=\"min-width: 150px;\" class=\"px-4 py-2 text-sm font-medium text-white text-center\" [pSortableColumn]=\"col.key\">\r\n {{ col.props?.label | translate }}\r\n <p-sortIcon [field]=\"col.key\"></p-sortIcon>\r\n </th>\r\n </ng-template>\r\n</ng-container>\r\n\r\n\r\n
|
|
231
|
+
args: [{ selector: 'lib-generic-table', imports: [CommonModule, TableModule, ButtonModule, MenuModule, NgForOf, TranslateModule, FormlyField, FormlyForm, NgIf, TranslatePipe, Menu, Button, GenericButton], template: "\r\n<div class=\"flex-1 last:[&>td]:border-0 rounded-lg border border-surface w-full overflow-auto\">\r\n <p-table #dt\r\n [value]=\"data_\"\r\n [columns]=\"columns\"\r\n [lazy]=\"true\"\r\n [paginator]=\"paginator\"\r\n [rows]=\"rows\"\r\n [first]=\"first\"\r\n [totalRecords]=\"totalRecords\"\r\n [sortField]=\"sortField\"\r\n [sortOrder]=\"sortOrder\"\r\n (onLazyLoad)=\"onLazyLoad($event)\"\r\n [globalFilterFields]=\"globalFilterFields\"\r\n [loading]=\"loading\"\r\n [scrollable]=\"true\"\r\n [scrollHeight]=\"scrollHeight\"\r\n [selectionMode]=\"showRowSelectionCheckbox ? 'multiple' : (rowSelectable ? 'single' : undefined)\"\r\n [(selection)]=\"_selection\"\r\n (onRowSelect)=\"onInternalSelectionChange($event)\"\r\n (onRowUnselect)=\"onInternalSelectionChange($event)\"\r\n (onHeaderCheckboxToggle)=\"onInternalSelectionChange($event)\"\r\n tableLayout=\"fixed\"\r\n [customSort]=\"false\"\r\n (sortFunction)=\"customSort($event)\"\r\n >\r\n\r\n <ng-template pTemplate=\"emptymessage\">\r\n <tr>\r\n <td colspan=\"10\">\r\n <div class=\"flex flex-col items-center justify-center py-10 text-center w-full\">\r\n <i style=\"font-size: 2.5rem;\" class=\"pi pi-inbox text-4xl text-gray-400 mb-4\"></i>\r\n <p class=\"text-gray-500 mb-4\">{{ 'NO_DATA_FOUND' | translate }}</p>\r\n\r\n\r\n <ng-container *ngFor=\"let btn of addButtonConfigs; trackBy: trackByIdx\">\r\n @if (!btn.visible || ( btn.visible && btn.visible === true)) {\r\n <lib-generic-button\r\n [icon]=\"btn.icon\"\r\n [label]=\"btn.label | translate\"\r\n [variant]=\"btn.variant\"\r\n [size]=\"btn.size\"\r\n [model]=\"btn.splitActions\"\r\n [permission]=\"btn.permission\"\r\n (clicked)=\"onAddNew.emit()\"\r\n ></lib-generic-button>\r\n }\r\n </ng-container>\r\n </div>\r\n </td>\r\n </tr>\r\n\r\n </ng-template>\r\n\r\n <ng-template pTemplate=\"header\" let-columns>\r\n <tr>\r\n <th *ngIf=\"showRowSelectionCheckbox\" style=\"width: 2rem\">\r\n <p-tableHeaderCheckbox></p-tableHeaderCheckbox>\r\n </th>\r\n<th *ngIf=\"actions.length > 0\" class=\"px-4 py-2 text-sm font-medium text-white text-center\">\r\n {{ 'OPERATIONS' | translate }}\r\n </th>\r\n <ng-container *ngFor=\"let col of columns; trackBy: trackByFn\" >\r\n <th *ngIf=\"col.props?.table?.props?.width; else templateName\" [pSortableColumn]=\"col.key\"\r\n class=\"px-4 py-2 text-sm font-medium text-white text-center\"\r\n [style.min-width]=\"col.props?.table?.props?.width\">\r\n {{ col.props?.label | translate }}\r\n <p-sortIcon [field]=\"col.key\"></p-sortIcon>\r\n </th>\r\n\r\n <ng-template #templateName>\r\n <th style=\"min-width: 150px;\" class=\"px-4 py-2 text-sm font-medium text-white text-center\" [pSortableColumn]=\"col.key\">\r\n {{ col.props?.label | translate }}\r\n <p-sortIcon [field]=\"col.key\"></p-sortIcon>\r\n </th>\r\n </ng-template>\r\n</ng-container>\r\n\r\n\r\n\r\n </tr>\r\n </ng-template>\r\n\r\n <ng-template pTemplate=\"body\" let-rowData let-columns=\"columns\" let-i=\"rowIndex\">\r\n <tr class=\"even:bg-gray-50 hover:bg-gray-100\" (click)=\"rowSelect.emit(rowData)\">\r\n <td *ngIf=\"showRowSelectionCheckbox\" style=\"width: 2rem\">\r\n <p-tableCheckbox [value]=\"rowData\"></p-tableCheckbox>\r\n </td>\r\n <td *ngIf=\"actions.length > 0\" class=\"border-t border-gray-200 px-4 py-2 text-center align-middle\">\r\n <ng-container [ngSwitch]=\"actionsMode\">\r\n <!-- Render buttons -->\r\n <ng-container *ngSwitchCase=\"'buttons'\">\r\n <ng-container *ngFor=\"let act of sortedActions\">\r\n <button\r\n *ngIf=\"act.icon || act.label\"\r\n pButton\r\n [icon]=\"act.icon || ''\"\r\n [label]=\"(act.label || '') | translate\"\r\n [class]=\"act.styleClass || ''\"\r\n class=\"p-button-sm mx-1\"\r\n (click)=\"onAction(act, rowData)\"\r\n ></button>\r\n </ng-container>\r\n </ng-container>\r\n\r\n <!-- Render menu -->\r\n <ng-container *ngSwitchCase=\"'menu'\">\r\n <p-menu #menu [model]=\"getMenuItems(rowData)\" [popup]=\"true\" appendTo=\"body\">\r\n <ng-template let-item pTemplate=\"item\">\r\n <div class=\"flex items-center gap-2 px-2 py-1\">\r\n <i [ngClass]=\"item.icon\" class=\"text-primary-600\" *ngIf=\"item.icon\"></i>\r\n <span class=\"font-medium\">{{ (item.label || '') | translate }}</span>\r\n\r\n <span *ngIf=\"item.badge\" class=\"ml-auto text-xs bg-red-500 text-white px-2 py-1 rounded\">\r\n {{ item.badge }}\r\n </span>\r\n\r\n <!-- <p-inputSwitch *ngIf=\"item.toggle\" [(ngModel)]=\"item.toggleValue\" class=\"ml-auto\" /> -->\r\n </div>\r\n </ng-template>\r\n </p-menu>\r\n\r\n <p-button\r\n outlined\r\n icon=\"pi pi-ellipsis-v\"\r\n class=\"p-button-text p-button-sm\"\r\n (onClick)=\"menu.toggle($event)\"\r\n ></p-button>\r\n </ng-container>\r\n </ng-container>\r\n\r\n </td>\r\n <td *ngFor=\"let col of rowData.rowFields ; let colIndex = index;trackBy: trackByFn\"\r\n class=\"border-t border-gray-200 px-4 py-2 text-center text-sm text-gray-700\"\r\n [style.width]=\"col.props && col.props['table']\r\n && col.props['table']['props'] && col.props['table']['props']['width'] \"\r\n\r\n >\r\n\r\n<formly-form\r\n [model]=\"rowData\"\r\n [form]=\"getForm(i, colIndex)\"\r\n [fields]=\"[col]\"\r\n [options]=\"options\">\r\n </formly-form>\r\n </td>\r\n\r\n </tr>\r\n </ng-template>\r\n </p-table>\r\n\r\n</div>\r\n", styles: [".custom-button-medium{font-size:1.1rem;width:2.5rem;height:2.5rem;line-height:2.5rem;padding:0}.custom-button-gray{color:#333;background-color:transparent;border:none}.custom-button-gray:hover{background-color:#eee;color:#000}.icon-delete{color:red!important}.icon-edit{color:#333}\n"] }]
|
|
232
232
|
}], propDecorators: { dt: [{
|
|
233
233
|
type: ViewChild,
|
|
234
234
|
args: ['dt']
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"elite.framework-ng.ui.core-generic-table.mjs","sources":["../tmp-esm2022/generic-table/lib/generic-table-module.js","../tmp-esm2022/generic-table/lib/generic-table.js","../tmp-esm2022/generic-table/elite.framework-ng.ui.core-generic-table.js"],"sourcesContent":["import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport * as i0 from \"@angular/core\";\nexport class GenericTableModule {\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: GenericTableModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });\n static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"14.0.0\", version: \"20.1.8\", ngImport: i0, type: GenericTableModule, imports: [CommonModule] });\n static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: GenericTableModule, imports: [CommonModule] });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: GenericTableModule, decorators: [{\n type: NgModule,\n args: [{\n imports: [CommonModule],\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2VuZXJpYy10YWJsZS1tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL25nLnVpLmNvcmUvZ2VuZXJpYy10YWJsZS9zcmMvbGliL2dlbmVyaWMtdGFibGUtbW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDOztBQUsvQyxNQUFNLE9BQU8sa0JBQWtCO3VHQUFsQixrQkFBa0I7d0dBQWxCLGtCQUFrQixZQUZuQixZQUFZO3dHQUVYLGtCQUFrQixZQUZuQixZQUFZOzsyRkFFWCxrQkFBa0I7a0JBSDlCLFFBQVE7bUJBQUM7b0JBQ1IsT0FBTyxFQUFFLENBQUMsWUFBWSxDQUFDO2lCQUN4QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuXG5ATmdNb2R1bGUoe1xuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlXSxcbn0pXG5leHBvcnQgY2xhc3MgR2VuZXJpY1RhYmxlTW9kdWxlIHt9XG4iXX0=","import { Component, Input, Output, EventEmitter, ViewChild, inject } from '@angular/core';\nimport { Table } from 'primeng/table';\nimport { CommonModule, NgForOf, NgIf } from '@angular/common';\nimport { TableModule } from 'primeng/table';\nimport { ButtonModule, Button } from 'primeng/button';\nimport { MenuModule, Menu } from 'primeng/menu';\nimport { TranslateModule, TranslatePipe } from '@ngx-translate/core';\nimport { FormlyField, FormlyForm } from '@ngx-formly/core';\nimport { FormGroup } from '@angular/forms';\nimport { cloneDeep } from 'lodash';\nimport { GenericButton } from '@elite.framework/ng.ui.core/generic-button';\nimport { PermissionsService } from '@elite.framework/ng.core/services';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@angular/common\";\nimport * as i2 from \"primeng/table\";\nimport * as i3 from \"primeng/api\";\nimport * as i4 from \"primeng/button\";\nimport * as i5 from \"primeng/menu\";\nimport * as i6 from \"@ngx-translate/core\";\nexport class GenericTable {\n permissionsService = inject(PermissionsService);\n dt;\n data = [];\n data_ = [];\n columns = [];\n processedFields = [];\n columns_ = [];\n loading = false;\n actions = [];\n actionsMode = 'buttons';\n first = 0;\n rows = 10;\n totalRecords = 0;\n sortField;\n sortOrder = 1;\n globalFilterFields = [];\n action = new EventEmitter();\n pageChange = new EventEmitter();\n // eslint-disable-next-line @angular-eslint/no-output-on-prefix\n onAddNew = new EventEmitter();\n addButtonConfigs = [];\n scrollHeight = '400px';\n // **جديد**: تمكين اختيار الصفوف\n /** فعّل اختيار الصفين single/multiple */\n rowSelectable = true;\n /** يحتفظ بالصف المحدد */\n //@Input() selection: T | T[] | null = null;\n // هذا سيكون مرتبطًا بـ [(selection)] في p-table\n _selection = null;\n get selection() {\n return this._selection;\n }\n set selection(val) {\n this._selection = val;\n // لا تُصدر الحدث هنا، بل في onInternalSelectionChange فقط\n }\n trackByIdx(index, item) {\n return index;\n }\n /** يصدر الصف المحدد عند النقر */\n rowSelect = new EventEmitter();\n /** يصدر الصفوف المحددة عند التغيير (للربط الثنائي) */\n selectionChange = new EventEmitter();\n /** جديد: التحكم بظهور الـ paginator */\n paginator = true;\n form = new FormGroup({});\n options = {};\n // **جديد**: يتحكم بإظهار عمود اختيار الصفوف (checkboxes)\n /** يتحكم في إظهار عمود اختيار الصفوف المتعددة بواسطة checkboxes */\n showRowSelectionCheckbox = false;\n onInternalSelectionChange(event) {\n if ('data' in event) {\n // Row select/unselect (single أو multiple)\n if (Array.isArray(this._selection)) {\n this._selection = [...this._selection]; // تحديث نسخة المصفوفة عند متعدد\n }\n else {\n this._selection = event.data; // اختيار فردي\n }\n }\n else if ('checked' in event) {\n // Header checkbox toggle\n this._selection = event.checked ? [...this.data] : [];\n }\n this.selectionChange.emit(this._selection);\n }\n customSort(event) {\n event.data?.sort((data1, data2) => {\n const value1 = this.resolveFieldData(data1, event.field ?? '');\n const value2 = this.resolveFieldData(data2, event.field ?? '');\n let result = 0;\n if (value1 == null && value2 != null)\n result = -1;\n else if (value1 != null && value2 == null)\n result = 1;\n else if (value1 == null && value2 == null)\n result = 0;\n else if (typeof value1 === 'string' && typeof value2 === 'string')\n result = value1.localeCompare(value2);\n else\n result = value1 < value2 ? -1 : value1 > value2 ? 1 : 0;\n return (event.order ?? 1) * result;\n });\n }\n resolveFieldData(data, field) {\n if (!field)\n return null;\n if (field.indexOf('.') === -1)\n return data[field];\n return field.split('.').reduce((obj, prop) => (obj ? obj[prop] : null), data);\n }\n // getOrderedColumns(): TableColumn[] {\n // return [...this.columns,\n // ...(this.showRowSelectionCheckbox ? [{ type: 'selection', order: -1 }] : []),\n // { type: 'operations', label: 'OPERATIONS', order: 999 }\n // ].sort((a, b) => (a.order ?? 0) - (b.order ?? 0));\n // }\n get sortedActions() {\n return this.actions\n .filter(action => !action.permissions?.length || // no permissions → allow\n action.permissions.every(p => this.permissionsService.isGranted(p)) // all granted\n )\n .sort((a, b) => (a.order ?? 0) - (b.order ?? 0));\n }\n onAction(act, row) {\n if (act.action) {\n act.action(row);\n }\n else {\n this.action.emit({ name: act.name, row });\n }\n }\n // cloneField(field: any): any {\n // if (field === null || typeof field !== 'object') {\n // return field;\n // }\n // if (Array.isArray(field)) {\n // // preserve `this` context\n // return field.map((item) => this.cloneField(item));\n // }\n // const cloned: any = {};\n // for (const key of Object.keys(field)) {\n // cloned[key] = this.cloneField(field[key]);\n // }\n // return cloned;\n // }\n // Use a map to store form groups for each row and column\n cellForms = new Map();\n forms = new FormGroup({}); // A main form for the table\n // Refactored getForm to return an existing form instance\n getForm(rowIndex, colIndex) {\n const key = `${rowIndex}_${colIndex}`;\n let form = this.cellForms.get(key);\n if (!form) {\n form = new FormGroup({});\n this.cellForms.set(key, form);\n }\n return form;\n }\n trackByFn(index, item) {\n return index; // or a unique identifier from your data\n }\n // This method is called whenever any @Input() property changes.\n ngOnChanges(changes) {\n // Check if the 'data' property has changed.\n if (changes['data']) {\n const currentData = changes['data'].currentValue;\n const previousData = changes['data'].previousValue;\n // For example, you can call a method to re-render or process the data.\n this.refreshData();\n }\n }\n onLazyLoad(event) {\n // Reinitialize forms on new data load\n // this.cellForms.clear();\n this.refreshData();\n this.pageChange.emit(event);\n }\n applyFilter(filters) {\n // if (field) {\n // this.dt.filter(global, field, 'contains');\n // } else {\n // this.dt.filterGlobal(global, 'contains');\n // }\n }\n refreshData() {\n this.data_ = this.data.map(rowData => {\n // Create a new array of fields for each row\n const rowFields = this.columns.map(col => {\n return cloneDeep(col);\n });\n // Attach the unique fields to the row data object\n return {\n ...rowData,\n rowFields: rowFields\n };\n });\n }\n getMenuItems(row) {\n return this.sortedActions.map(act => ({\n label: act.label,\n icon: act.icon,\n command: () => this.onAction(act, row),\n styleClass: act.styleClass\n }));\n }\n // **جديد**: يتم إطلاق هذا عند اختيار صف\n onRowSelect(event) {\n // debugger\n if (event.data) {\n this.rowSelect.emit(event.data);\n }\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: GenericTable, deps: [], target: i0.ɵɵFactoryTarget.Component });\n static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.1.8\", type: GenericTable, isStandalone: true, selector: \"lib-generic-table\", inputs: { data: \"data\", columns: \"columns\", loading: \"loading\", actions: \"actions\", actionsMode: \"actionsMode\", first: \"first\", rows: \"rows\", totalRecords: \"totalRecords\", sortField: \"sortField\", sortOrder: \"sortOrder\", globalFilterFields: \"globalFilterFields\", addButtonConfigs: \"addButtonConfigs\", scrollHeight: \"scrollHeight\", rowSelectable: \"rowSelectable\", selection: \"selection\", paginator: \"paginator\", showRowSelectionCheckbox: \"showRowSelectionCheckbox\" }, outputs: { action: \"action\", pageChange: \"pageChange\", onAddNew: \"onAddNew\", rowSelect: \"rowSelect\", selectionChange: \"selectionChange\" }, viewQueries: [{ propertyName: \"dt\", first: true, predicate: [\"dt\"], descendants: true }], usesOnChanges: true, ngImport: i0, template: \"\\r\\n<div class=\\\"flex-1 last:[&>td]:border-0 rounded-lg border border-surface w-full overflow-auto\\\">\\r\\n <p-table #dt\\r\\n [value]=\\\"data_\\\"\\r\\n [columns]=\\\"columns\\\"\\r\\n [lazy]=\\\"true\\\"\\r\\n [paginator]=\\\"paginator\\\"\\r\\n [rows]=\\\"rows\\\"\\r\\n [first]=\\\"first\\\"\\r\\n [totalRecords]=\\\"totalRecords\\\"\\r\\n [sortField]=\\\"sortField\\\"\\r\\n [sortOrder]=\\\"sortOrder\\\"\\r\\n (onLazyLoad)=\\\"onLazyLoad($event)\\\"\\r\\n [globalFilterFields]=\\\"globalFilterFields\\\"\\r\\n [loading]=\\\"loading\\\"\\r\\n [scrollable]=\\\"true\\\"\\r\\n [scrollHeight]=\\\"scrollHeight\\\"\\r\\n [selectionMode]=\\\"showRowSelectionCheckbox ? 'multiple' : (rowSelectable ? 'single' : undefined)\\\"\\r\\n [(selection)]=\\\"_selection\\\"\\r\\n (onRowSelect)=\\\"onInternalSelectionChange($event)\\\"\\r\\n (onRowUnselect)=\\\"onInternalSelectionChange($event)\\\"\\r\\n (onHeaderCheckboxToggle)=\\\"onInternalSelectionChange($event)\\\"\\r\\n tableLayout=\\\"fixed\\\"\\r\\n [customSort]=\\\"false\\\"\\r\\n (sortFunction)=\\\"customSort($event)\\\"\\r\\n >\\r\\n\\r\\n <ng-template pTemplate=\\\"emptymessage\\\">\\r\\n <tr>\\r\\n <td colspan=\\\"10\\\">\\r\\n <div class=\\\"flex flex-col items-center justify-center py-10 text-center w-full\\\">\\r\\n <i style=\\\"font-size: 2.5rem;\\\" class=\\\"pi pi-inbox text-4xl text-gray-400 mb-4\\\"></i>\\r\\n <p class=\\\"text-gray-500 mb-4\\\">{{ 'NO_DATA_FOUND' | translate }}</p>\\r\\n\\r\\n\\r\\n <ng-container *ngFor=\\\"let btn of addButtonConfigs; trackBy: trackByIdx\\\">\\r\\n @if (!btn.visible || ( btn.visible && btn.visible === true)) {\\r\\n <lib-generic-button\\r\\n [icon]=\\\"btn.icon\\\"\\r\\n [label]=\\\"btn.label | translate\\\"\\r\\n [variant]=\\\"btn.variant\\\"\\r\\n [size]=\\\"btn.size\\\"\\r\\n [model]=\\\"btn.splitActions\\\"\\r\\n [permission]=\\\"btn.permission\\\"\\r\\n (clicked)=\\\"onAddNew.emit()\\\"\\r\\n ></lib-generic-button>\\r\\n }\\r\\n </ng-container>\\r\\n </div>\\r\\n </td>\\r\\n </tr>\\r\\n\\r\\n </ng-template>\\r\\n\\r\\n <ng-template pTemplate=\\\"header\\\" let-columns>\\r\\n <tr>\\r\\n <th *ngIf=\\\"showRowSelectionCheckbox\\\" style=\\\"width: 2rem\\\">\\r\\n <p-tableHeaderCheckbox></p-tableHeaderCheckbox>\\r\\n </th>\\r\\n\\r\\n <ng-container *ngFor=\\\"let col of columns; trackBy: trackByFn\\\" >\\r\\n <th *ngIf=\\\"col.props?.table?.props?.width; else templateName\\\" [pSortableColumn]=\\\"col.key\\\"\\r\\n class=\\\"px-4 py-2 text-sm font-medium text-white text-center\\\"\\r\\n [style.min-width]=\\\"col.props?.table?.props?.width\\\">\\r\\n {{ col.props?.label | translate }}\\r\\n <p-sortIcon [field]=\\\"col.key\\\"></p-sortIcon>\\r\\n </th>\\r\\n\\r\\n <ng-template #templateName>\\r\\n <th style=\\\"min-width: 150px;\\\" class=\\\"px-4 py-2 text-sm font-medium text-white text-center\\\" [pSortableColumn]=\\\"col.key\\\">\\r\\n {{ col.props?.label | translate }}\\r\\n <p-sortIcon [field]=\\\"col.key\\\"></p-sortIcon>\\r\\n </th>\\r\\n </ng-template>\\r\\n</ng-container>\\r\\n\\r\\n\\r\\n <th *ngIf=\\\"actions.length > 0\\\" class=\\\"px-4 py-2 text-sm font-medium text-white text-center\\\">\\r\\n {{ 'OPERATIONS' | translate }}</th>\\r\\n </tr>\\r\\n </ng-template>\\r\\n\\r\\n <ng-template pTemplate=\\\"body\\\" let-rowData let-columns=\\\"columns\\\" let-i=\\\"rowIndex\\\">\\r\\n <tr class=\\\"even:bg-gray-50 hover:bg-gray-100\\\" (click)=\\\"rowSelect.emit(rowData)\\\">\\r\\n <td *ngIf=\\\"showRowSelectionCheckbox\\\" style=\\\"width: 2rem\\\">\\r\\n <p-tableCheckbox [value]=\\\"rowData\\\"></p-tableCheckbox>\\r\\n </td>\\r\\n <td *ngFor=\\\"let col of rowData.rowFields ; let colIndex = index;trackBy: trackByFn\\\"\\r\\n class=\\\"border-t border-gray-200 px-4 py-2 text-center text-sm text-gray-700\\\"\\r\\n [style.width]=\\\"col.props && col.props['table']\\r\\n && col.props['table']['props'] && col.props['table']['props']['width'] \\\"\\r\\n\\r\\n >\\r\\n\\r\\n<formly-form\\r\\n [model]=\\\"rowData\\\"\\r\\n [form]=\\\"getForm(i, colIndex)\\\"\\r\\n [fields]=\\\"[col]\\\"\\r\\n [options]=\\\"options\\\">\\r\\n </formly-form>\\r\\n </td>\\r\\n <td *ngIf=\\\"actions.length > 0\\\" class=\\\"border-t border-gray-200 px-4 py-2 text-center align-middle\\\">\\r\\n <ng-container [ngSwitch]=\\\"actionsMode\\\">\\r\\n <!-- Render buttons -->\\r\\n <ng-container *ngSwitchCase=\\\"'buttons'\\\">\\r\\n <ng-container *ngFor=\\\"let act of sortedActions\\\">\\r\\n <button\\r\\n *ngIf=\\\"act.icon || act.label\\\"\\r\\n pButton\\r\\n [icon]=\\\"act.icon || ''\\\"\\r\\n [label]=\\\"(act.label || '') | translate\\\"\\r\\n [class]=\\\"act.styleClass || ''\\\"\\r\\n class=\\\"p-button-sm mx-1\\\"\\r\\n (click)=\\\"onAction(act, rowData)\\\"\\r\\n ></button>\\r\\n </ng-container>\\r\\n </ng-container>\\r\\n\\r\\n <!-- Render menu -->\\r\\n <ng-container *ngSwitchCase=\\\"'menu'\\\">\\r\\n <p-menu #menu [model]=\\\"getMenuItems(rowData)\\\" [popup]=\\\"true\\\" appendTo=\\\"body\\\">\\r\\n <ng-template let-item pTemplate=\\\"item\\\">\\r\\n <div class=\\\"flex items-center gap-2 px-2 py-1\\\">\\r\\n <i [ngClass]=\\\"item.icon\\\" class=\\\"text-primary-600\\\" *ngIf=\\\"item.icon\\\"></i>\\r\\n <span class=\\\"font-medium\\\">{{ (item.label || '') | translate }}</span>\\r\\n\\r\\n <span *ngIf=\\\"item.badge\\\" class=\\\"ml-auto text-xs bg-red-500 text-white px-2 py-1 rounded\\\">\\r\\n {{ item.badge }}\\r\\n </span>\\r\\n\\r\\n <!-- <p-inputSwitch *ngIf=\\\"item.toggle\\\" [(ngModel)]=\\\"item.toggleValue\\\" class=\\\"ml-auto\\\" /> -->\\r\\n </div>\\r\\n </ng-template>\\r\\n </p-menu>\\r\\n\\r\\n <p-button\\r\\n outlined\\r\\n icon=\\\"pi pi-ellipsis-v\\\"\\r\\n class=\\\"p-button-text p-button-sm\\\"\\r\\n (onClick)=\\\"menu.toggle($event)\\\"\\r\\n ></p-button>\\r\\n </ng-container>\\r\\n </ng-container>\\r\\n\\r\\n </td>\\r\\n </tr>\\r\\n </ng-template>\\r\\n </p-table>\\r\\n\\r\\n</div>\\r\\n\", styles: [\".custom-button-medium{font-size:1.1rem;width:2.5rem;height:2.5rem;line-height:2.5rem;padding:0}.custom-button-gray{color:#333;background-color:transparent;border:none}.custom-button-gray:hover{background-color:#eee;color:#000}.icon-delete{color:red!important}.icon-edit{color:#333}\\n\"], dependencies: [{ kind: \"ngmodule\", type: CommonModule }, { kind: \"directive\", type: i1.NgClass, selector: \"[ngClass]\", inputs: [\"class\", \"ngClass\"] }, { kind: \"directive\", type: i1.NgForOf, selector: \"[ngFor][ngForOf]\", inputs: [\"ngForOf\", \"ngForTrackBy\", \"ngForTemplate\"] }, { kind: \"directive\", type: i1.NgIf, selector: \"[ngIf]\", inputs: [\"ngIf\", \"ngIfThen\", \"ngIfElse\"] }, { kind: \"directive\", type: i1.NgSwitch, selector: \"[ngSwitch]\", inputs: [\"ngSwitch\"] }, { kind: \"directive\", type: i1.NgSwitchCase, selector: \"[ngSwitchCase]\", inputs: [\"ngSwitchCase\"] }, { kind: \"ngmodule\", type: TableModule }, { kind: \"component\", type: i2.Table, selector: \"p-table\", inputs: [\"frozenColumns\", \"frozenValue\", \"styleClass\", \"tableStyle\", \"tableStyleClass\", \"paginator\", \"pageLinks\", \"rowsPerPageOptions\", \"alwaysShowPaginator\", \"paginatorPosition\", \"paginatorStyleClass\", \"paginatorDropdownAppendTo\", \"paginatorDropdownScrollHeight\", \"currentPageReportTemplate\", \"showCurrentPageReport\", \"showJumpToPageDropdown\", \"showJumpToPageInput\", \"showFirstLastIcon\", \"showPageLinks\", \"defaultSortOrder\", \"sortMode\", \"resetPageOnSort\", \"selectionMode\", \"selectionPageOnly\", \"contextMenuSelection\", \"contextMenuSelectionMode\", \"dataKey\", \"metaKeySelection\", \"rowSelectable\", \"rowTrackBy\", \"lazy\", \"lazyLoadOnInit\", \"compareSelectionBy\", \"csvSeparator\", \"exportFilename\", \"filters\", \"globalFilterFields\", \"filterDelay\", \"filterLocale\", \"expandedRowKeys\", \"editingRowKeys\", \"rowExpandMode\", \"scrollable\", \"rowGroupMode\", \"scrollHeight\", \"virtualScroll\", \"virtualScrollItemSize\", \"virtualScrollOptions\", \"virtualScrollDelay\", \"frozenWidth\", \"contextMenu\", \"resizableColumns\", \"columnResizeMode\", \"reorderableColumns\", \"loading\", \"loadingIcon\", \"showLoader\", \"rowHover\", \"customSort\", \"showInitialSortBadge\", \"exportFunction\", \"exportHeader\", \"stateKey\", \"stateStorage\", \"editMode\", \"groupRowsBy\", \"size\", \"showGridlines\", \"stripedRows\", \"groupRowsByOrder\", \"responsiveLayout\", \"breakpoint\", \"paginatorLocale\", \"value\", \"columns\", \"first\", \"rows\", \"totalRecords\", \"sortField\", \"sortOrder\", \"multiSortMeta\", \"selection\", \"selectAll\"], outputs: [\"contextMenuSelectionChange\", \"selectAllChange\", \"selectionChange\", \"onRowSelect\", \"onRowUnselect\", \"onPage\", \"onSort\", \"onFilter\", \"onLazyLoad\", \"onRowExpand\", \"onRowCollapse\", \"onContextMenuSelect\", \"onColResize\", \"onColReorder\", \"onRowReorder\", \"onEditInit\", \"onEditComplete\", \"onEditCancel\", \"onHeaderCheckboxToggle\", \"sortFunction\", \"firstChange\", \"rowsChange\", \"onStateSave\", \"onStateRestore\"] }, { kind: \"directive\", type: i3.PrimeTemplate, selector: \"[pTemplate]\", inputs: [\"type\", \"pTemplate\"] }, { kind: \"directive\", type: i2.SortableColumn, selector: \"[pSortableColumn]\", inputs: [\"pSortableColumn\", \"pSortableColumnDisabled\"] }, { kind: \"component\", type: i2.SortIcon, selector: \"p-sortIcon\", inputs: [\"field\"] }, { kind: \"component\", type: i2.TableCheckbox, selector: \"p-tableCheckbox\", inputs: [\"value\", \"disabled\", \"required\", \"index\", \"inputId\", \"name\", \"ariaLabel\"] }, { kind: \"component\", type: i2.TableHeaderCheckbox, selector: \"p-tableHeaderCheckbox\", inputs: [\"disabled\", \"inputId\", \"name\", \"ariaLabel\"] }, { kind: \"ngmodule\", type: ButtonModule }, { kind: \"directive\", type: i4.ButtonDirective, selector: \"[pButton]\", inputs: [\"iconPos\", \"loadingIcon\", \"loading\", \"severity\", \"raised\", \"rounded\", \"text\", \"outlined\", \"size\", \"plain\", \"fluid\", \"label\", \"icon\", \"buttonProps\"] }, { kind: \"component\", type: i4.Button, selector: \"p-button\", inputs: [\"type\", \"iconPos\", \"icon\", \"badge\", \"label\", \"disabled\", \"loading\", \"loadingIcon\", \"raised\", \"rounded\", \"text\", \"plain\", \"severity\", \"outlined\", \"link\", \"tabindex\", \"size\", \"variant\", \"style\", \"styleClass\", \"badgeClass\", \"badgeSeverity\", \"ariaLabel\", \"buttonProps\", \"autofocus\", \"fluid\"], outputs: [\"onClick\", \"onFocus\", \"onBlur\"] }, { kind: \"ngmodule\", type: MenuModule }, { kind: \"component\", type: i5.Menu, selector: \"p-menu\", inputs: [\"model\", \"popup\", \"style\", \"styleClass\", \"autoZIndex\", \"baseZIndex\", \"showTransitionOptions\", \"hideTransitionOptions\", \"ariaLabel\", \"ariaLabelledBy\", \"id\", \"tabindex\", \"appendTo\"], outputs: [\"onShow\", \"onHide\", \"onBlur\", \"onFocus\"] }, { kind: \"ngmodule\", type: TranslateModule }, { kind: \"component\", type: FormlyForm, selector: \"formly-form\", inputs: [\"form\", \"model\", \"fields\", \"options\"], outputs: [\"modelChange\"] }, { kind: \"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: \"pipe\", type: i6.TranslatePipe, name: \"translate\" }] });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: GenericTable, decorators: [{\n type: Component,\n args: [{ selector: 'lib-generic-table', imports: [CommonModule, TableModule, ButtonModule, MenuModule, NgForOf, TranslateModule, FormlyField, FormlyForm, NgIf, TranslatePipe, Menu, Button, GenericButton], template: \"\\r\\n<div class=\\\"flex-1 last:[&>td]:border-0 rounded-lg border border-surface w-full overflow-auto\\\">\\r\\n <p-table #dt\\r\\n [value]=\\\"data_\\\"\\r\\n [columns]=\\\"columns\\\"\\r\\n [lazy]=\\\"true\\\"\\r\\n [paginator]=\\\"paginator\\\"\\r\\n [rows]=\\\"rows\\\"\\r\\n [first]=\\\"first\\\"\\r\\n [totalRecords]=\\\"totalRecords\\\"\\r\\n [sortField]=\\\"sortField\\\"\\r\\n [sortOrder]=\\\"sortOrder\\\"\\r\\n (onLazyLoad)=\\\"onLazyLoad($event)\\\"\\r\\n [globalFilterFields]=\\\"globalFilterFields\\\"\\r\\n [loading]=\\\"loading\\\"\\r\\n [scrollable]=\\\"true\\\"\\r\\n [scrollHeight]=\\\"scrollHeight\\\"\\r\\n [selectionMode]=\\\"showRowSelectionCheckbox ? 'multiple' : (rowSelectable ? 'single' : undefined)\\\"\\r\\n [(selection)]=\\\"_selection\\\"\\r\\n (onRowSelect)=\\\"onInternalSelectionChange($event)\\\"\\r\\n (onRowUnselect)=\\\"onInternalSelectionChange($event)\\\"\\r\\n (onHeaderCheckboxToggle)=\\\"onInternalSelectionChange($event)\\\"\\r\\n tableLayout=\\\"fixed\\\"\\r\\n [customSort]=\\\"false\\\"\\r\\n (sortFunction)=\\\"customSort($event)\\\"\\r\\n >\\r\\n\\r\\n <ng-template pTemplate=\\\"emptymessage\\\">\\r\\n <tr>\\r\\n <td colspan=\\\"10\\\">\\r\\n <div class=\\\"flex flex-col items-center justify-center py-10 text-center w-full\\\">\\r\\n <i style=\\\"font-size: 2.5rem;\\\" class=\\\"pi pi-inbox text-4xl text-gray-400 mb-4\\\"></i>\\r\\n <p class=\\\"text-gray-500 mb-4\\\">{{ 'NO_DATA_FOUND' | translate }}</p>\\r\\n\\r\\n\\r\\n <ng-container *ngFor=\\\"let btn of addButtonConfigs; trackBy: trackByIdx\\\">\\r\\n @if (!btn.visible || ( btn.visible && btn.visible === true)) {\\r\\n <lib-generic-button\\r\\n [icon]=\\\"btn.icon\\\"\\r\\n [label]=\\\"btn.label | translate\\\"\\r\\n [variant]=\\\"btn.variant\\\"\\r\\n [size]=\\\"btn.size\\\"\\r\\n [model]=\\\"btn.splitActions\\\"\\r\\n [permission]=\\\"btn.permission\\\"\\r\\n (clicked)=\\\"onAddNew.emit()\\\"\\r\\n ></lib-generic-button>\\r\\n }\\r\\n </ng-container>\\r\\n </div>\\r\\n </td>\\r\\n </tr>\\r\\n\\r\\n </ng-template>\\r\\n\\r\\n <ng-template pTemplate=\\\"header\\\" let-columns>\\r\\n <tr>\\r\\n <th *ngIf=\\\"showRowSelectionCheckbox\\\" style=\\\"width: 2rem\\\">\\r\\n <p-tableHeaderCheckbox></p-tableHeaderCheckbox>\\r\\n </th>\\r\\n\\r\\n <ng-container *ngFor=\\\"let col of columns; trackBy: trackByFn\\\" >\\r\\n <th *ngIf=\\\"col.props?.table?.props?.width; else templateName\\\" [pSortableColumn]=\\\"col.key\\\"\\r\\n class=\\\"px-4 py-2 text-sm font-medium text-white text-center\\\"\\r\\n [style.min-width]=\\\"col.props?.table?.props?.width\\\">\\r\\n {{ col.props?.label | translate }}\\r\\n <p-sortIcon [field]=\\\"col.key\\\"></p-sortIcon>\\r\\n </th>\\r\\n\\r\\n <ng-template #templateName>\\r\\n <th style=\\\"min-width: 150px;\\\" class=\\\"px-4 py-2 text-sm font-medium text-white text-center\\\" [pSortableColumn]=\\\"col.key\\\">\\r\\n {{ col.props?.label | translate }}\\r\\n <p-sortIcon [field]=\\\"col.key\\\"></p-sortIcon>\\r\\n </th>\\r\\n </ng-template>\\r\\n</ng-container>\\r\\n\\r\\n\\r\\n <th *ngIf=\\\"actions.length > 0\\\" class=\\\"px-4 py-2 text-sm font-medium text-white text-center\\\">\\r\\n {{ 'OPERATIONS' | translate }}</th>\\r\\n </tr>\\r\\n </ng-template>\\r\\n\\r\\n <ng-template pTemplate=\\\"body\\\" let-rowData let-columns=\\\"columns\\\" let-i=\\\"rowIndex\\\">\\r\\n <tr class=\\\"even:bg-gray-50 hover:bg-gray-100\\\" (click)=\\\"rowSelect.emit(rowData)\\\">\\r\\n <td *ngIf=\\\"showRowSelectionCheckbox\\\" style=\\\"width: 2rem\\\">\\r\\n <p-tableCheckbox [value]=\\\"rowData\\\"></p-tableCheckbox>\\r\\n </td>\\r\\n <td *ngFor=\\\"let col of rowData.rowFields ; let colIndex = index;trackBy: trackByFn\\\"\\r\\n class=\\\"border-t border-gray-200 px-4 py-2 text-center text-sm text-gray-700\\\"\\r\\n [style.width]=\\\"col.props && col.props['table']\\r\\n && col.props['table']['props'] && col.props['table']['props']['width'] \\\"\\r\\n\\r\\n >\\r\\n\\r\\n<formly-form\\r\\n [model]=\\\"rowData\\\"\\r\\n [form]=\\\"getForm(i, colIndex)\\\"\\r\\n [fields]=\\\"[col]\\\"\\r\\n [options]=\\\"options\\\">\\r\\n </formly-form>\\r\\n </td>\\r\\n <td *ngIf=\\\"actions.length > 0\\\" class=\\\"border-t border-gray-200 px-4 py-2 text-center align-middle\\\">\\r\\n <ng-container [ngSwitch]=\\\"actionsMode\\\">\\r\\n <!-- Render buttons -->\\r\\n <ng-container *ngSwitchCase=\\\"'buttons'\\\">\\r\\n <ng-container *ngFor=\\\"let act of sortedActions\\\">\\r\\n <button\\r\\n *ngIf=\\\"act.icon || act.label\\\"\\r\\n pButton\\r\\n [icon]=\\\"act.icon || ''\\\"\\r\\n [label]=\\\"(act.label || '') | translate\\\"\\r\\n [class]=\\\"act.styleClass || ''\\\"\\r\\n class=\\\"p-button-sm mx-1\\\"\\r\\n (click)=\\\"onAction(act, rowData)\\\"\\r\\n ></button>\\r\\n </ng-container>\\r\\n </ng-container>\\r\\n\\r\\n <!-- Render menu -->\\r\\n <ng-container *ngSwitchCase=\\\"'menu'\\\">\\r\\n <p-menu #menu [model]=\\\"getMenuItems(rowData)\\\" [popup]=\\\"true\\\" appendTo=\\\"body\\\">\\r\\n <ng-template let-item pTemplate=\\\"item\\\">\\r\\n <div class=\\\"flex items-center gap-2 px-2 py-1\\\">\\r\\n <i [ngClass]=\\\"item.icon\\\" class=\\\"text-primary-600\\\" *ngIf=\\\"item.icon\\\"></i>\\r\\n <span class=\\\"font-medium\\\">{{ (item.label || '') | translate }}</span>\\r\\n\\r\\n <span *ngIf=\\\"item.badge\\\" class=\\\"ml-auto text-xs bg-red-500 text-white px-2 py-1 rounded\\\">\\r\\n {{ item.badge }}\\r\\n </span>\\r\\n\\r\\n <!-- <p-inputSwitch *ngIf=\\\"item.toggle\\\" [(ngModel)]=\\\"item.toggleValue\\\" class=\\\"ml-auto\\\" /> -->\\r\\n </div>\\r\\n </ng-template>\\r\\n </p-menu>\\r\\n\\r\\n <p-button\\r\\n outlined\\r\\n icon=\\\"pi pi-ellipsis-v\\\"\\r\\n class=\\\"p-button-text p-button-sm\\\"\\r\\n (onClick)=\\\"menu.toggle($event)\\\"\\r\\n ></p-button>\\r\\n </ng-container>\\r\\n </ng-container>\\r\\n\\r\\n </td>\\r\\n </tr>\\r\\n </ng-template>\\r\\n </p-table>\\r\\n\\r\\n</div>\\r\\n\", styles: [\".custom-button-medium{font-size:1.1rem;width:2.5rem;height:2.5rem;line-height:2.5rem;padding:0}.custom-button-gray{color:#333;background-color:transparent;border:none}.custom-button-gray:hover{background-color:#eee;color:#000}.icon-delete{color:red!important}.icon-edit{color:#333}\\n\"] }]\n }], propDecorators: { dt: [{\n type: ViewChild,\n args: ['dt']\n }], data: [{\n type: Input\n }], columns: [{\n type: Input\n }], loading: [{\n type: Input\n }], actions: [{\n type: Input\n }], actionsMode: [{\n type: Input\n }], first: [{\n type: Input\n }], rows: [{\n type: Input\n }], totalRecords: [{\n type: Input\n }], sortField: [{\n type: Input\n }], sortOrder: [{\n type: Input\n }], globalFilterFields: [{\n type: Input\n }], action: [{\n type: Output\n }], pageChange: [{\n type: Output\n }], onAddNew: [{\n type: Output\n }], addButtonConfigs: [{\n type: Input\n }], scrollHeight: [{\n type: Input\n }], rowSelectable: [{\n type: Input\n }], selection: [{\n type: Input\n }], rowSelect: [{\n type: Output\n }], selectionChange: [{\n type: Output\n }], paginator: [{\n type: Input\n }], showRowSelectionCheckbox: [{\n type: Input\n }] } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2VuZXJpYy10YWJsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvbmcudWkuY29yZS9nZW5lcmljLXRhYmxlL3NyYy9saWIvZ2VuZXJpYy10YWJsZS50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvbmcudWkuY29yZS9nZW5lcmljLXRhYmxlL3NyYy9saWIvZ2VuZXJpYy10YWJsZS5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxZQUFZLEVBQUUsU0FBUyxFQUE2QixNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFckgsT0FBTyxFQUFFLEtBQUssRUFBMkUsTUFBTSxlQUFlLENBQUM7QUFDL0csT0FBTyxFQUFFLFlBQVksRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDOUQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM1QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3RELE9BQU8sRUFBRSxVQUFVLEVBQUUsSUFBSSxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQ2hELE9BQU8sRUFBRSxlQUFlLEVBQUUsYUFBYSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDckUsT0FBTyxFQUFFLFdBQVcsRUFBcUIsVUFBVSxFQUFxQixNQUFNLGtCQUFrQixDQUFDO0FBQ2pHLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUUzQyxPQUFPLEVBQUUsU0FBUyxFQUFXLE1BQU0sUUFBUSxDQUFDO0FBQzVDLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSw0Q0FBNEMsQ0FBQztBQUMzRSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQzs7Ozs7Ozs7QUFRdkUsTUFBTSxPQUFPLFlBQVk7SUFFdkIsa0JB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UztzQkFEWixLQUFLO2dCQVlJLFNBQVM7c0JBQWxCLE1BQU07Z0JBR0csZUFBZTtzQkFBeEIsTUFBTTtnQkFJRSxTQUFTO3NCQUFqQixLQUFLO2dCQU9HLHdCQUF3QjtzQkFBaEMsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIE91dHB1dCwgRXZlbnRFbWl0dGVyLCBWaWV3Q2hpbGQsICBPbkNoYW5nZXMsIFNpbXBsZUNoYW5nZXMsIGluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBNZW51SXRlbSwgU29ydEV2ZW50IH0gZnJvbSAncHJpbWVuZy9hcGknO1xyXG5pbXBvcnQgeyBUYWJsZSwgVGFibGVIZWFkZXJDaGVja2JveFRvZ2dsZUV2ZW50LCBUYWJsZUxhenlMb2FkRXZlbnQsIFRhYmxlUm93U2VsZWN0RXZlbnQgfSBmcm9tICdwcmltZW5nL3RhYmxlJztcclxuaW1wb3J0IHsgQ29tbW9uTW9kdWxlLCBOZ0Zvck9mLCBOZ0lmIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHsgVGFibGVNb2R1bGUgfSBmcm9tICdwcmltZW5nL3RhYmxlJztcclxuaW1wb3J0IHsgQnV0dG9uTW9kdWxlLCBCdXR0b24gfSBmcm9tICdwcmltZW5nL2J1dHRvbic7XHJcbmltcG9ydCB7IE1lbnVNb2R1bGUsIE1lbnUgfSBmcm9tICdwcmltZW5nL21lbnUnO1xyXG5pbXBvcnQgeyBUcmFuc2xhdGVNb2R1bGUsIFRyYW5zbGF0ZVBpcGUgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcclxuaW1wb3J0IHsgRm9ybWx5RmllbGQsIEZvcm1seUZpZWxkQ29uZmlnLCBGb3JtbHlGb3JtLCBGb3JtbHlGb3JtT3B0aW9ucyB9IGZyb20gJ0BuZ3gtZm9ybWx5L2NvcmUnO1xyXG5pbXBvcnQgeyBGb3JtR3JvdXAgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IEFjdGlvbkRlZiwgQnV0dG9uQ29uZmlnIH0gZnJvbSAnQGVsaXRlLmZyYW1ld29yay9uZy5jb3JlL21vZGVscyc7XHJcbmltcG9ydCB7IGNsb25lRGVlcCwgZm9yRWFjaCB9IGZyb20gJ2xvZGFzaCc7XHJcbmltcG9ydCB7IEdlbmVyaWNCdXR0b24gfSBmcm9tICdAZWxpdGUuZnJhbWV3b3JrL25nLnVpLmNvcmUvZ2VuZXJpYy1idXR0b24nO1xyXG5pbXBvcnQgeyBQZXJtaXNzaW9uc1NlcnZpY2UgfSBmcm9tICdAZWxpdGUuZnJhbWV3b3JrL25nLmNvcmUvc2VydmljZXMnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdsaWItZ2VuZXJpYy10YWJsZScsXHJcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgVGFibGVNb2R1bGUsIEJ1dHRvbk1vZHVsZSwgTWVudU1vZHVsZSwgTmdGb3JPZixUcmFuc2xhdGVNb2R1bGUsRm9ybWx5RmllbGQsRm9ybWx5Rm9ybSwgTmdJZiwgVHJhbnNsYXRlUGlwZSwgTWVudSwgQnV0dG9uLEdlbmVyaWNCdXR0b25dLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9nZW5lcmljLXRhYmxlLmh0bWwnLFxyXG4gIHN0eWxlVXJsOiAnLi9nZW5lcmljLXRhYmxlLmNzcydcclxufSlcclxuZXhwb3J0IGNsYXNzIEdlbmVyaWNUYWJsZTxUPiAgaW1wbGVtZW50cyBPbkNoYW5nZXN7XHJcblxyXG4gIHBlcm1pc3Npb25zU2VydmljZTpQZXJtaXNzaW9uc1NlcnZpY2UgPSBpbmplY3QoUGVybWlzc2lvbnNTZXJ2aWNlKTtcclxuXHJcbkBWaWV3Q2hpbGQoJ2R0JykgZHQhOiBUYWJsZTtcclxuXHJcbkBJbnB1dCgpIGRhdGE6IGFueVtdID0gW107XHJcbiBkYXRhXzogYW55W10gPSBbXTtcclxuICBASW5wdXQoKSBjb2x1bW5zOiBGb3JtbHlGaWVsZENvbmZpZ1tdID0gW107XHJcbiAgcHJvY2Vzc2VkRmllbGRzOiBhbnlbXSA9IFtdO1xyXG4gIGNvbHVtbnNfOiBGb3JtbHlGaWVsZENvbmZpZ1tdID0gW107XHJcbiAgQElucHV0KCkgbG9hZGluZyA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpIGFjdGlvbnM6IEFjdGlvbkRlZjxUPltdID0gW107XHJcbiAgQElucHV0KCkgYWN0aW9uc01vZGU6ICdidXR0b25zJyB8ICdtZW51JyA9ICdidXR0b25zJztcclxuICBASW5wdXQoKSBmaXJzdCA9IDA7XHJcbiAgQElucHV0KCkgcm93cyA9IDEwO1xyXG4gIEBJbnB1dCgpIHRvdGFsUmVjb3JkcyA9IDA7XHJcbiAgQElucHV0KCkgc29ydEZpZWxkPzogc3RyaW5nO1xyXG4gIEBJbnB1dCgpIHNvcnRPcmRlcjogMSB8IC0xID0gMTtcclxuICBASW5wdXQoKSBnbG9iYWxGaWx0ZXJGaWVsZHM6IHN0cmluZ1tdID0gW107XHJcblxyXG4gIEBPdXRwdXQoKSBhY3Rpb24gPSBuZXcgRXZlbnRFbWl0dGVyPHsgbmFtZTogc3RyaW5nOyByb3c6IFQgfT4oKTtcclxuICBAT3V0cHV0KCkgcGFnZUNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8VGFibGVMYXp5TG9hZEV2ZW50PigpO1xyXG5cclxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLW91dHB1dC1vbi1wcmVmaXhcclxuICBAT3V0cHV0KCkgb25BZGROZXcgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcclxuQElucHV0KCkgYWRkQnV0dG9uQ29uZmlnczogQnV0dG9uQ29uZmlnW10gPSBbXTtcclxuICBASW5wdXQoKSBzY3JvbGxIZWlnaHQgPSAnNDAwcHgnO1xyXG5cclxuIC8vICoq2KzYr9mK2K8qKjog2KrZhdmD2YrZhiDYp9iu2KrZitin2LEg2KfZhNi12YHZiNmBXHJcbiAgLyoqINmB2LnZkdmEINin2K7YqtmK2KfYsSDYp9mE2LXZgdmK2YYgc2luZ2xlL211bHRpcGxlICovXHJcbiAgQElucHV0KCkgcm93U2VsZWN0YWJsZSA9IHRydWU7XHJcbiAgLyoqINmK2K3YqtmB2Lgg2KjYp9mE2LXZgSDYp9mE2YXYrdiv2K8gKi9cclxuICAvL0BJbnB1dCgpIHNlbGVjdGlvbjogVCB8IFRbXSB8IG51bGwgPSBudWxsO1xyXG5cclxuICAvLyDZh9iw2Kcg2LPZitmD2YjZhiDZhdix2KrYqNi32YvYpyDYqNmAIFsoc2VsZWN0aW9uKV0g2YHZiiBwLXRhYmxlXHJcbiAgX3NlbGVjdGlvbjogVCB8IFRbXSB8IG51bGwgPSBudWxsO1xyXG5cclxuXHJcbiAgQElucHV0KClcclxuICBnZXQgc2VsZWN0aW9uKCk6IFQgfCBUW10gfCBudWxsIHtcclxuICAgICAgcmV0dXJuIHRoaXMuX3NlbGVjdGlvbjtcclxuICB9XHJcbiAgc2V0IHNlbGVjdGlvbih2YWw6IFQgfCBUW10gfCBudWxsKSB7XHJcbiAgICAgIHRoaXMuX3NlbGVjdGlvbiA9IHZhbDtcclxuICAgICAgLy8g2YTYpyDYqtmP2LXYr9ixINin2YTYrdiv2Ksg2YfZhtin2Iwg2KjZhCDZgdmKIG9uSW50ZXJuYWxTZWxlY3Rpb25DaGFuZ2Ug2YHZgti3XHJcbiAgfVxyXG4gdHJhY2tCeUlkeChpbmRleDogbnVtYmVyLCBpdGVtOiBhbnkpOiBudW1iZXIge1xyXG4gIHJldHVybiBpbmRleDtcclxuIH1cclxuICAvKiog2YrYtdiv2LEg2KfZhNi12YEg2KfZhNmF2K3Yr9ivINi52YbYryDYp9mE2YbZgtixICovXHJcbiAgQE91dHB1dCgpIHJvd1NlbGVjdCA9IG5ldyBFdmVudEVtaXR0ZXI8VD4oKTtcclxuXHJcbiAgICAgLyoqINmK2LXYr9ixINin2YTYtdmB2YjZgSDYp9mE2YXYrdiv2K/YqSDYudmG2K8g2KfZhNiq2LrZitmK2LEgKNmE2YTYsdio2Lcg2KfZhNir2YbYp9im2YopICovXHJcbiAgQE91dHB1dCgpIHNlbGVjdGlvbkNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8VCB8IFRbXSB8IG51bGw+KCk7XHJcblxyXG5cclxuICAgLyoqINis2K/ZitivOiDYp9mE2KrYrdmD2YUg2KjYuNmH2YjYsSDYp9mE2YAgcGFnaW5hdG9yICovXHJcbiAgQElucHV0KCkgcGFnaW5hdG9yID0gdHJ1ZTtcclxuZm9ybSA9IG5ldyBGb3JtR3JvdXAoe30pO1xyXG5vcHRpb25zOiBGb3JtbHlGb3JtT3B0aW9ucyA9IHt9O1xyXG5cclxuXHJcbiAgLy8gKirYrNiv2YrYryoqOiDZitiq2K3Zg9mFINio2KXYuNmH2KfYsSDYudmF2YjYryDYp9iu2KrZitin2LEg2KfZhNi12YHZiNmBIChjaGVja2JveGVzKVxyXG4gIC8qKiDZitiq2K3Zg9mFINmB2Yog2KXYuNmH2KfYsSDYudmF2YjYryDYp9iu2KrZitin2LEg2KfZhNi12YHZiNmBINin2YTZhdiq2LnYr9iv2Kkg2KjZiNin2LPYt9ipIGNoZWNrYm94ZXMgKi9cclxuICBASW5wdXQoKSBzaG93Um93U2VsZWN0aW9uQ2hlY2tib3ggPSBmYWxzZTtcclxuXHJcblxyXG4gIG9uSW50ZXJuYWxTZWxlY3Rpb25DaGFuZ2UoZXZlbnQ6IFRhYmxlUm93U2VsZWN0RXZlbnQ8VD5cclxuICAgIHwgVGFibGVIZWFkZXJDaGVja2JveFRvZ2dsZUV2ZW50KTogdm9pZCB7XHJcbiAgaWYgKCdkYXRhJyBpbiBldmVudCkge1xyXG4gICAgLy8gUm93IHNlbGVjdC91bnNlbGVjdCAoc2luZ2xlINij2YggbXVsdGlwbGUpXHJcbiAgICBpZiAoQXJyYXkuaXNBcnJheSh0aGlzLl9zZWxlY3Rpb24pKSB7XHJcbiAgICAgIHRoaXMuX3NlbGVjdGlvbiA9IFsuLi50aGlzLl9zZWxlY3Rpb25dOyAvLyDYqtit2K/ZitirINmG2LPYrtipINin2YTZhdi12YHZiNmB2Kkg2LnZhtivINmF2KrYudiv2K9cclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuX3NlbGVjdGlvbiA9IGV2ZW50LmRhdGEgYXMgVDsgLy8g2KfYrtiq2YrYp9ixINmB2LHYr9mKXHJcbiAgICB9XHJcbiAgfSBlbHNlIGlmICgnY2hlY2tlZCcgaW4gZXZlbnQpIHtcclxuICAgIC8vIEhlYWRlciBjaGVja2JveCB0b2dnbGVcclxuICAgIHRoaXMuX3NlbGVjdGlvbiA9IGV2ZW50LmNoZWNrZWQgPyBbLi4udGhpcy5kYXRhXSA6IFtdO1xyXG4gIH1cclxuXHJcbiAgdGhpcy5zZWxlY3Rpb25DaGFuZ2UuZW1pdCh0aGlzLl9zZWxlY3Rpb24pO1xyXG59XHJcblxyXG5cclxuXHJcbmN1c3RvbVNvcnQoZXZlbnQ6IFNvcnRFdmVudCkge1xyXG4gIGV2ZW50LmRhdGE/LnNvcnQoKGRhdGExLCBkYXRhMikgPT4ge1xyXG4gICAgY29uc3QgdmFsdWUxID0gdGhpcy5yZXNvbHZlRmllbGREYXRhKGRhdGExLCBldmVudC5maWVsZCA/PyAnJyk7XHJcbiAgICBjb25zdCB2YWx1ZTIgPSB0aGlzLnJlc29sdmVGaWVsZERhdGEoZGF0YTIsIGV2ZW50LmZpZWxkID8/ICcnKTtcclxuXHJcbiAgICBsZXQgcmVzdWx0ID0gMDtcclxuICAgIGlmICh2YWx1ZTEgPT0gbnVsbCAmJiB2YWx1ZTIgIT0gbnVsbCkgcmVzdWx0ID0gLTE7XHJcbiAgICBlbHNlIGlmICh2YWx1ZTEgIT0gbnVsbCAmJiB2YWx1ZTIgPT0gbnVsbCkgcmVzdWx0ID0gMTtcclxuICAgIGVsc2UgaWYgKHZhbHVlMSA9PSBudWxsICYmIHZhbHVlMiA9PSBudWxsKSByZXN1bHQgPSAwO1xyXG4gICAgZWxzZSBpZiAodHlwZW9mIHZhbHVlMSA9PT0gJ3N0cmluZycgJiYgdHlwZW9mIHZhbHVlMiA9PT0gJ3N0cmluZycpXHJcbiAgICAgIHJlc3VsdCA9IHZhbHVlMS5sb2NhbGVDb21wYXJlKHZhbHVlMik7XHJcbiAgICBlbHNlIHJlc3VsdCA9IHZhbHVlMSA8IHZhbHVlMiA/IC0xIDogdmFsdWUxID4gdmFsdWUyID8gMSA6IDA7XHJcblxyXG4gICAgcmV0dXJuIChldmVudC5vcmRlciA/PyAxKSAqIHJlc3VsdDtcclxuICB9KTtcclxufVxyXG5yZXNvbHZlRmllbGREYXRhKGRhdGE6IGFueSwgZmllbGQ6IHN0cmluZyk6IGFueSB7XHJcbiAgaWYgKCFmaWVsZCkgcmV0dXJuIG51bGw7XHJcbiAgaWYgKGZpZWxkLmluZGV4T2YoJy4nKSA9PT0gLTEpIHJldHVybiBkYXRhW2ZpZWxkXTtcclxuICByZXR1cm4gZmllbGQuc3BsaXQoJy4nKS5yZWR1Y2UoKG9iaiwgcHJvcCkgPT4gKG9iaiA/IG9ialtwcm9wXSA6IG51bGwpLCBkYXRhKTtcclxufVxyXG5cclxuLy8gZ2V0T3JkZXJlZENvbHVtbnMoKTogVGFibGVDb2x1bW5bXSB7XHJcbi8vICAgcmV0dXJuIFsuLi50aGlzLmNvbHVtbnMsXHJcbi8vICAgICAuLi4odGhpcy5zaG93Um93U2VsZWN0aW9uQ2hlY2tib3ggPyBbeyB0eXBlOiAnc2VsZWN0aW9uJywgb3JkZXI6IC0xIH1dIDogW10pLFxyXG4vLyAgICAgeyB0eXBlOiAnb3BlcmF0aW9ucycsIGxhYmVsOiAnT1BFUkFUSU9OUycsIG9yZGVyOiA5OTkgfVxyXG4vLyAgIF0uc29ydCgoYSwgYikgPT4gKGEub3JkZXIgPz8gMCkgLSAoYi5vcmRlciA/PyAwKSk7XHJcbi8vIH1cclxuXHJcbmdldCBzb3J0ZWRBY3Rpb25zKCk6IEFjdGlvbkRlZjxUPltdIHtcclxuICByZXR1cm4gdGhpcy5hY3Rpb25zXHJcbiAgICAuZmlsdGVyKGFjdGlvbiA9PlxyXG4gICAgICAhYWN0aW9uLnBlcm1pc3Npb25zPy5sZW5ndGggfHwgLy8gbm8gcGVybWlzc2lvbnMg4oaSIGFsbG93XHJcbiAgICAgIGFjdGlvbi5wZXJtaXNzaW9ucy5ldmVyeShwID0+IHRoaXMucGVybWlzc2lvbnNTZXJ2aWNlLmlzR3JhbnRlZChwKSkgLy8gYWxsIGdyYW50ZWRcclxuICAgIClcclxuICAgIC5zb3J0KChhLCBiKSA9PiAoYS5vcmRlciA/PyAwKSAtIChiLm9yZGVyID8/IDApKTtcclxufVxyXG5cclxuXHJcbiBvbkFjdGlvbihhY3Q6IEFjdGlvbkRlZjxUPiwgcm93OiBUKSB7XHJcbiAgICBpZiAoYWN0LmFjdGlvbikge1xyXG4gICAgICBhY3QuYWN0aW9uKHJvdyk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLmFjdGlvbi5lbWl0KHsgbmFtZTogYWN0Lm5hbWUsIHJvdyB9KTtcclxuICAgIH1cclxuICB9XHJcbi8vICBjbG9uZUZpZWxkKGZpZWxkOiBhbnkpOiBhbnkge1xyXG4vLyAgIGlmIChmaWVsZCA9PT0gbnVsbCB8fCB0eXBlb2YgZmllbGQgIT09ICdvYmplY3QnKSB7XHJcbi8vICAgICByZXR1cm4gZmllbGQ7XHJcbi8vICAgfVxyXG5cclxuLy8gICAgaWYgKEFycmF5LmlzQXJyYXkoZmllbGQpKSB7XHJcbi8vICAgICAvLyBwcmVzZXJ2ZSBgdGhpc2AgY29udGV4dFxyXG4vLyAgICAgcmV0dXJuIGZpZWxkLm1hcCgoaXRlbSkgPT4gdGhpcy5jbG9uZUZpZWxkKGl0ZW0pKTtcclxuLy8gICB9XHJcbi8vICAgY29uc3QgY2xvbmVkOiBhbnkgPSB7fTtcclxuLy8gICBmb3IgKGNvbnN0IGtleSBvZiBPYmplY3Qua2V5cyhmaWVsZCkpIHtcclxuLy8gICAgIGNsb25lZFtrZXldID0gdGhpcy5jbG9uZUZpZWxkKGZpZWxkW2tleV0pO1xyXG4vLyAgIH1cclxuXHJcbi8vICAgcmV0dXJuIGNsb25lZDtcclxuLy8gfVxyXG5cclxuIC8vIFVzZSBhIG1hcCB0byBzdG9yZSBmb3JtIGdyb3VwcyBmb3IgZWFjaCByb3cgYW5kIGNvbHVtblxyXG4gIHByaXZhdGUgY2VsbEZvcm1zOiBNYXA8c3RyaW5nLCBGb3JtR3JvdXA+ID0gbmV3IE1hcCgpO1xyXG4gIGZvcm1zOiBGb3JtR3JvdXAgPSBuZXcgRm9ybUdyb3VwKHt9KTsgLy8gQSBtYWluIGZvcm0gZm9yIHRoZSB0YWJsZVxyXG5cclxuXHJcbiAgLy8gUmVmYWN0b3JlZCBnZXRGb3JtIHRvIHJldHVybiBhbiBleGlzdGluZyBmb3JtIGluc3RhbmNlXHJcbiAgZ2V0Rm9ybShyb3dJbmRleDogbnVtYmVyLCBjb2xJbmRleDogbnVtYmVyKTogRm9ybUdyb3VwIHtcclxuICAgIGNvbnN0IGtleSA9IGAke3Jvd0luZGV4fV8ke2NvbEluZGV4fWA7XHJcbiAgICBsZXQgZm9ybSA9IHRoaXMuY2VsbEZvcm1zLmdldChrZXkpO1xyXG5cclxuICAgIGlmICghZm9ybSkge1xyXG4gICAgICBmb3JtID0gbmV3IEZvcm1Hcm91cCh7fSk7XHJcbiAgICAgIHRoaXMuY2VsbEZvcm1zLnNldChrZXksIGZvcm0pO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIGZvcm07XHJcbiAgfVxyXG50cmFja0J5Rm4oaW5kZXg6IG51bWJlciwgaXRlbTogYW55KSB7XHJcbiAgcmV0dXJuIGluZGV4OyAvLyBvciBhIHVuaXF1ZSBpZGVudGlmaWVyIGZyb20geW91ciBkYXRhXHJcbn1cclxuIC8vIFRoaXMgbWV0aG9kIGlzIGNhbGxlZCB3aGVuZXZlciBhbnkgQElucHV0KCkgcHJvcGVydHkgY2hhbmdlcy5cclxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XHJcbiAgICAvLyBDaGVjayBpZiB0aGUgJ2RhdGEnIHByb3BlcnR5IGhhcyBjaGFuZ2VkLlxyXG4gICAgaWYgKGNoYW5nZXNbJ2RhdGEnXSkge1xyXG4gICAgICBjb25zdCBjdXJyZW50RGF0YSA9IGNoYW5nZXNbJ2RhdGEnXS5jdXJyZW50VmFsdWU7XHJcbiAgICAgIGNvbnN0IHByZXZpb3VzRGF0YSA9IGNoYW5nZXNbJ2RhdGEnXS5wcmV2aW91c1ZhbHVlO1xyXG5cclxuXHJcbiAgICAgIC8vIEZvciBleGFtcGxlLCB5b3UgY2FuIGNhbGwgYSBtZXRob2QgdG8gcmUtcmVuZGVyIG9yIHByb2Nlc3MgdGhlIGRhdGEuXHJcbiAgICAgIHRoaXMucmVmcmVzaERhdGEoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gb25MYXp5TG9hZChldmVudDogVGFibGVMYXp5TG9hZEV2ZW50KTogdm9pZCB7XHJcbiAgICAvLyBSZWluaXRpYWxpemUgZm9ybXMgb24gbmV3IGRhdGEgbG9hZFxyXG4gICAgLy8gdGhpcy5jZWxsRm9ybXMuY2xlYXIoKTtcclxuICB0aGlzLnJlZnJlc2hEYXRhKCk7XHJcbiAgICB0aGlzLnBhZ2VDaGFuZ2UuZW1pdChldmVudCk7XHJcbiAgfVxyXG5cclxuXHJcbiAgYXBwbHlGaWx0ZXIoZmlsdGVyczogYW55KTogdm9pZCB7XHJcbiAgICAvLyBpZiAoZmllbGQpIHtcclxuICAgIC8vICAgdGhpcy5kdC5maWx0ZXIoZ2xvYmFsLCBmaWVsZCwgJ2NvbnRhaW5zJyk7XHJcbiAgICAvLyB9IGVsc2Uge1xyXG4gICAgLy8gICB0aGlzLmR0LmZpbHRlckdsb2JhbChnbG9iYWwsICdjb250YWlucycpO1xyXG4gICAgLy8gfVxyXG5cclxuICB9XHJcbiAgcmVmcmVzaERhdGEoKXtcclxuICAgICB0aGlzLmRhdGFfID0gdGhpcy5kYXRhLm1hcChyb3dEYXRhID0+IHtcclxuICAgIC8vIENyZWF0ZSBhIG5ldyBhcnJheSBvZiBmaWVsZHMgZm9yIGVhY2ggcm93XHJcbiAgICBjb25zdCByb3dGaWVsZHMgPSB0aGlzLmNvbHVtbnMubWFwKGNvbCA9PiB7XHJcbiAgICAgIHJldHVybiBjbG9uZURlZXAoY29sKTtcclxuICAgIH0pO1xyXG4gICAgLy8gQXR0YWNoIHRoZSB1bmlxdWUgZmllbGRzIHRvIHRoZSByb3cgZGF0YSBvYmplY3RcclxuICAgIHJldHVybiB7XHJcbiAgICAgIC4uLnJvd0RhdGEsXHJcbiAgICAgIHJvd0ZpZWxkczogcm93RmllbGRzXHJcbiAgICB9O1xyXG4gIH0pO1xyXG4gIH1cclxuXHJcbiAgZ2V0TWVudUl0ZW1zKHJvdzogVCk6IE1lbnVJdGVtW10ge1xyXG4gICAgcmV0dXJuIHRoaXMuc29ydGVkQWN0aW9ucy5tYXAoYWN0ID0+ICh7XHJcbiAgICAgIGxhYmVsOiBhY3QubGFiZWwsXHJcbiAgICAgIGljb246IGFjdC5pY29uLFxyXG4gICAgICBjb21tYW5kOiAoKSA9PiB0aGlzLm9uQWN0aW9uKGFjdCwgcm93ICksXHJcbiAgICAgIHN0eWxlQ2xhc3M6IGFjdC5zdHlsZUNsYXNzXHJcbiAgICB9KSk7XHJcbiAgfVxyXG5cclxuIC8vICoq2KzYr9mK2K8qKjog2YrYqtmFINil2LfZhNin2YIg2YfYsNinINi52YbYryDYp9iu2KrZitin2LEg2LXZgVxyXG4gIG9uUm93U2VsZWN0KGV2ZW50OiBUYWJsZVJvd1NlbGVjdEV2ZW50PFQ+KSB7XHJcbiAgICAvLyBkZWJ1Z2dlclxyXG4gICAgaWYgKGV2ZW50LmRhdGEpIHtcclxuICAgICAgdGhpcy5yb3dTZWxlY3QuZW1pdChldmVudC5kYXRhIGFzIFQpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbn1cclxuIiwiXHJcbjxkaXYgY2xhc3M9XCJmbGV4LTEgbGFzdDpbJj50ZF06Ym9yZGVyLTAgcm91bmRlZC1sZyBib3JkZXIgYm9yZGVyLXN1cmZhY2Ugdy1mdWxsIG92ZXJmbG93LWF1dG9cIj5cclxuICA8cC10YWJsZSAjZHRcclxuICBbdmFsdWVdPVwiZGF0YV9cIlxyXG4gIFtjb2x1bW5zXT1cImNvbHVtbnNcIlxyXG4gIFtsYXp5XT1cInRydWVcIlxyXG4gIFtwYWdpbmF0b3JdPVwicGFnaW5hdG9yXCJcclxuICBbcm93c109XCJyb3dzXCJcclxuICBbZmlyc3RdPVwiZmlyc3RcIlxyXG4gICAgW3RvdGFsUmVjb3Jkc109XCJ0b3RhbFJlY29yZHNcIlxyXG4gICAgW3NvcnRGaWVsZF09XCJzb3J0RmllbGRcIlxyXG4gICAgW3NvcnRPcmRlcl09XCJzb3J0T3JkZXJcIlxyXG4gICAgKG9uTGF6eUxvYWQpPVwib25MYXp5TG9hZCgkZXZlbnQpXCJcclxuICAgIFtnbG9iYWxGaWx0ZXJGaWVsZHNdPVwiZ2xvYmFsRmlsdGVyRmllbGRzXCJcclxuICAgIFtsb2FkaW5nXT1cImxvYWRpbmdcIlxyXG4gICAgW3Njcm9sbGFibGVdPVwidHJ1ZVwiXHJcbiAgICBbc2Nyb2xsSGVpZ2h0XT1cInNjcm9sbEhlaWdodFwiXHJcbiAgICBbc2VsZWN0aW9uTW9kZV09XCJzaG93Um93U2VsZWN0aW9uQ2hlY2tib3ggPyAnbXVsdGlwbGUnIDogKHJvd1NlbGVjdGFibGUgPyAnc2luZ2xlJyA6IHVuZGVmaW5lZClcIlxyXG4gICAgWyhzZWxlY3Rpb24pXT1cIl9zZWxlY3Rpb25cIlxyXG4gICAgKG9uUm93U2VsZWN0KT1cIm9uSW50ZXJuYWxTZWxlY3Rpb25DaGFuZ2UoJGV2ZW50KVwiXHJcbiAgICAob25Sb3dVbnNlbGVjdCk9XCJvbkludGVybmFsU2VsZWN0aW9uQ2hhbmdlKCRldmVudClcIlxyXG4gICAgKG9uSGVhZGVyQ2hlY2tib3hUb2dnbGUpPVwib25JbnRlcm5hbFNlbGVjdGlvbkNoYW5nZSgkZXZlbnQpXCJcclxuICAgIHRhYmxlTGF5b3V0PVwiZml4ZWRcIlxyXG4gICAgW2N1c3RvbVNvcnRdPVwiZmFsc2VcIlxyXG4gICAgKHNvcnRGdW5jdGlvbik9XCJjdXN0b21Tb3J0KCRldmVudClcIlxyXG4gICAgPlxyXG5cclxuICAgICA8bmctdGVtcGxhdGUgcFRlbXBsYXRlPVwiZW1wdHltZXNzYWdlXCI+XHJcbiAgICAgIDx0cj5cclxuICAgICAgICA8dGQgY29sc3Bhbj1cIjEwXCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwiZmxleCBmbGV4LWNvbCBpdGVtcy1jZW50ZXIganVzdGlmeS1jZW50ZXIgcHktMTAgdGV4dC1jZW50ZXIgdy1mdWxsXCI+XHJcbiAgICAgIDxpIHN0eWxlPVwiZm9udC1zaXplOiAyLjVyZW07XCIgY2xhc3M9XCJwaSBwaS1pbmJveCB0ZXh0LTR4bCB0ZXh0LWdyYXktNDAwIG1iLTRcIj48L2k+XHJcbiAgICAgIDxwIGNsYXNzPVwidGV4dC1ncmF5LTUwMCBtYi00XCI+e3sgJ05PX0RBVEFfRk9VTkQnIHwgdHJhbnNsYXRlIH19PC9wPlxyXG5cclxuXHJcbiAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGJ0biBvZiBhZGRCdXR0b25Db25maWdzOyB0cmFja0J5OiB0cmFja0J5SWR4XCI+XHJcbiAgICAgICAgQGlmICghYnRuLnZpc2libGUgfHwgKCBidG4udmlzaWJsZSAmJiAgYnRuLnZpc2libGUgPT09IHRydWUpKSB7XHJcbiAgICAgIDxsaWItZ2VuZXJpYy1idXR0b25cclxuICAgICAgICBbaWNvbl09XCJidG4uaWNvblwiXHJcbiAgICAgICAgW2xhYmVsXT1cImJ0bi5sYWJlbCB8IHRyYW5zbGF0ZVwiXHJcbiAgICAgICAgW3ZhcmlhbnRdPVwiYnRuLnZhcmlhbnRcIlxyXG4gICAgICAgIFtzaXplXT1cImJ0bi5zaXplXCJcclxuICAgICAgICBbbW9kZWxdPVwiYnRuLnNwbGl0QWN0aW9uc1wiXHJcbiAgICAgICAgW3Blcm1pc3Npb25dPVwiYnRuLnBlcm1pc3Npb25cIlxyXG4gICAgICAgIChjbGlja2VkKT1cIm9uQWRkTmV3LmVtaXQoKVwiXHJcbiAgICAgID48L2xpYi1nZW5lcmljLWJ1dHRvbj5cclxuICAgICAgICB9XHJcbiAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgIDwvZGl2PlxyXG4gICAgICAgIDwvdGQ+XHJcbiAgICAgIDwvdHI+XHJcblxyXG4gIDwvbmctdGVtcGxhdGU+XHJcblxyXG4gICAgPG5nLXRlbXBsYXRlIHBUZW1wbGF0ZT1cImhlYWRlclwiIGxldC1jb2x1bW5zPlxyXG4gICAgICA8dHI+XHJcbiAgICAgICAgICA8dGggKm5nSWY9XCJzaG93Um93U2VsZWN0aW9uQ2hlY2tib3hcIiBzdHlsZT1cIndpZHRoOiAycmVtXCI+XHJcbiAgICAgICAgPHAtdGFibGVIZWFkZXJDaGVja2JveD48L3AtdGFibGVIZWFkZXJDaGVja2JveD5cclxuICAgICAgPC90aD5cclxuXHJcbiAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBjb2wgb2YgY29sdW1uczsgdHJhY2tCeTogdHJhY2tCeUZuXCIgPlxyXG4gIDx0aCAqbmdJZj1cImNvbC5wcm9wcz8udGFibGU/LnByb3BzPy53aWR0aDsgZWxzZSB0ZW1wbGF0ZU5hbWVcIiBbcFNvcnRhYmxlQ29sdW1uXT1cImNvbC5rZXlcIlxyXG4gICAgICBjbGFzcz1cInB4LTQgcHktMiB0ZXh0LXNtIGZvbnQtbWVkaXVtIHRleHQtd2hpdGUgdGV4dC1jZW50ZXJcIlxyXG4gICAgICBbc3R5bGUubWluLXdpZHRoXT1cImNvbC5wcm9wcz8udGFibGU/LnByb3BzPy53aWR0aFwiPlxyXG4gICAge3sgY29sLnByb3BzPy5sYWJlbCB8IHRyYW5zbGF0ZSB9fVxyXG4gICAgPHAtc29ydEljb24gW2ZpZWxkXT1cImNvbC5rZXlcIj48L3Atc29ydEljb24+XHJcbiAgPC90aD5cclxuXHJcbiAgPG5nLXRlbXBsYXRlICN0ZW1wbGF0ZU5hbWU+XHJcbiAgICA8dGggc3R5bGU9XCJtaW4td2lkdGg6IDE1MHB4O1wiIGNsYXNzPVwicHgtNCBweS0yIHRleHQtc20gZm9udC1tZWRpdW0gdGV4dC13aGl0ZSB0ZXh0LWNlbnRlclwiIFtwU29ydGFibGVDb2x1bW5dPVwiY29sLmtleVwiPlxyXG4gICAgICB7eyBjb2wucHJvcHM/LmxhYmVsIHwgdHJhbnNsYXRlIH19XHJcbiAgICAgIDxwLXNvcnRJY29uIFtmaWVsZF09XCJjb2wua2V5XCI+PC9wLXNvcnRJY29uPlxyXG4gICAgPC90aD5cclxuICA8L25nLXRlbXBsYXRlPlxyXG48L25nLWNvbnRhaW5lcj5cclxuXHJcblxyXG4gICAgICAgIDx0aCAqbmdJZj1cImFjdGlvbnMubGVuZ3RoID4gMFwiIGNsYXNzPVwicHgtNCBweS0yIHRleHQtc20gZm9udC1tZWRpdW0gdGV4dC13aGl0ZSB0ZXh0LWNlbnRlclwiPlxyXG4gICAgICAgICAgIHt7ICdPUEVSQVRJT05TJyB8IHRyYW5zbGF0ZSB9fTwvdGg+XHJcbiAgICAgIDwvdHI+XHJcbiAgICA8L25nLXRlbXBsYXRlPlxyXG5cclxuICAgIDxuZy10ZW1wbGF0ZSBwVGVtcGxhdGU9XCJib2R5XCIgbGV0LXJvd0RhdGEgbGV0LWNvbHVtbnM9XCJjb2x1bW5zXCIgbGV0LWk9XCJyb3dJbmRleFwiPlxyXG4gICAgICA8dHIgY2xhc3M9XCJldmVuOmJnLWdyYXktNTAgaG92ZXI6YmctZ3JheS0xMDBcIiAoY2xpY2spPVwicm93U2VsZWN0LmVtaXQocm93RGF0YSlcIj5cclxuICAgICAgICA8dGQgKm5nSWY9XCJzaG93Um93U2VsZWN0aW9uQ2hlY2tib3hcIiBzdHlsZT1cIndpZHRoOiAycmVtXCI+XHJcbiAgICAgICAgPHAtdGFibGVDaGVja2JveCBbdmFsdWVdPVwicm93RGF0YVwiPjwvcC10YWJsZUNoZWNrYm94PlxyXG4gICAgICA8L3RkPlxyXG4gICAgICAgIDx0ZCAqbmdGb3I9XCJsZXQgY29sIG9mIHJvd0RhdGEucm93RmllbGRzIDsgbGV0IGNvbEluZGV4ID0gaW5kZXg7dHJhY2tCeTogdHJhY2tCeUZuXCJcclxuICAgIGNsYXNzPVwiYm9yZGVyLXQgYm9yZGVyLWdyYXktMjAwIHB4LTQgcHktMiB0ZXh0LWNlbnRlciB0ZXh0LXNtIHRleHQtZ3JheS03MDBcIlxyXG4gICAgIFtzdHlsZS53aWR0aF09XCJjb2wucHJvcHMgJiYgY29sLnByb3BzWyd0YWJsZSddXHJcbiAgICAgJiYgY29sLnByb3BzWyd0YWJsZSddWydwcm9wcyddICYmIGNvbC5wcm9wc1sndGFibGUnXVsncHJvcHMnXVsnd2lkdGgnXSBcIlxyXG5cclxuICAgICA+XHJcblxyXG48Zm9ybWx5LWZvcm1cclxuICAgICAgW21vZGVsXT1cInJvd0RhdGFcIlxyXG4gICAgICBbZm9ybV09XCJnZXRGb3JtKGksIGNvbEluZGV4KVwiXHJcbiAgICAgICBbZmllbGRzXT1cIltjb2xdXCJcclxuICAgICAgW29wdGlvbnNdPVwib3B0aW9uc1wiPlxyXG4gICAgPC9mb3JtbHktZm9ybT5cclxuICAgICAgICA8L3RkPlxyXG4gICAgICAgIDx0ZCAqbmdJZj1cImFjdGlvbnMubGVuZ3RoID4gMFwiIGNsYXNzPVwiYm9yZGVyLXQgYm9yZGVyLWdyYXktMjAwIHB4LTQgcHktMiB0ZXh0LWNlbnRlciBhbGlnbi1taWRkbGVcIj5cclxuICAgICAgICAgIDxuZy1jb250YWluZXIgW25nU3dpdGNoXT1cImFjdGlvbnNNb2RlXCI+XHJcbiAgICAgICAgICAgICAgICAgIDwhLS0gUmVuZGVyIGJ1dHRvbnMgLS0+XHJcbiAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nU3dpdGNoQ2FzZT1cIididXR0b25zJ1wiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGFjdCBvZiBzb3J0ZWRBY3Rpb25zXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiYWN0Lmljb24gfHwgYWN0LmxhYmVsXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgcEJ1dHRvblxyXG4gICAgICAgICAgICAgICAgICAgICAgICBbaWNvbl09XCJhY3QuaWNvbiB8fCAnJ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtsYWJlbF09XCIoYWN0LmxhYmVsICB8fCAnJykgfCB0cmFuc2xhdGVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBbY2xhc3NdPVwiYWN0LnN0eWxlQ2xhc3MgfHwgJydcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInAtYnV0dG9uLXNtIG14LTFcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwib25BY3Rpb24oYWN0LCByb3dEYXRhKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICA+PC9idXR0b24+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG5cclxuICAgICAgICAgICAgICAgICAgPCEtLSBSZW5kZXIgbWVudSAtLT5cclxuICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hDYXNlPVwiJ21lbnUnXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgIDxwLW1lbnUgI21lbnUgW21vZGVsXT1cImdldE1lbnVJdGVtcyhyb3dEYXRhKVwiIFtwb3B1cF09XCJ0cnVlXCIgYXBwZW5kVG89XCJib2R5XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlIGxldC1pdGVtIHBUZW1wbGF0ZT1cIml0ZW1cIj5cclxuICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IGl0ZW1zLWNlbnRlciBnYXAtMiBweC0yIHB5LTFcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGkgW25nQ2xhc3NdPVwiaXRlbS5pY29uXCIgY2xhc3M9XCJ0ZXh0LXByaW1hcnktNjAwXCIgKm5nSWY9XCJpdGVtLmljb25cIj48L2k+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZm9udC1tZWRpdW1cIj57eyAoaXRlbS5sYWJlbCAgfHwgJycpIHwgdHJhbnNsYXRlIH19PC9zcGFuPlxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gKm5nSWY9XCJpdGVtLmJhZGdlXCIgY2xhc3M9XCJtbC1hdXRvIHRleHQteHMgYmctcmVkLTUwMCB0ZXh0LXdoaXRlIHB4LTIgcHktMSByb3VuZGVkXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAge3sgaXRlbS5iYWRnZSB9fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8IS0tIDxwLWlucHV0U3dpdGNoICpuZ0lmPVwiaXRlbS50b2dnbGVcIiBbKG5nTW9kZWwpXT1cIml0ZW0udG9nZ2xlVmFsdWVcIiBjbGFzcz1cIm1sLWF1dG9cIiAvPiAtLT5cclxuICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICAgICAgICAgICAgICAgIDwvcC1tZW51PlxyXG5cclxuICAgICAgICAgICAgICAgICAgICA8cC1idXR0b25cclxuICAgICAgICAgICAgICAgICAgICBvdXRsaW5lZFxyXG4gICAgICAgICAgICAgICAgICAgICAgaWNvbj1cInBpIHBpLWVsbGlwc2lzLXZcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJwLWJ1dHRvbi10ZXh0IHAtYnV0dG9uLXNtXCJcclxuICAgICAgICAgICAgICAgICAgICAgIChvbkNsaWNrKT1cIm1lbnUudG9nZ2xlKCRldmVudClcIlxyXG4gICAgICAgICAgICAgICAgICAgID48L3AtYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG5cclxuICAgICAgICA8L3RkPlxyXG4gICAgICA8L3RyPlxyXG4gICAgPC9uZy10ZW1wbGF0ZT5cclxuICA8L3AtdGFibGU+XHJcblxyXG48L2Rpdj5cclxuIl19","/**\n * Generated bundle index. Do not edit.\n */\nexport * from './index';\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWxpdGUuZnJhbWV3b3JrLW5nLnVpLmNvcmUtZ2VuZXJpYy10YWJsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYnMvbmcudWkuY29yZS9nZW5lcmljLXRhYmxlL3NyYy9lbGl0ZS5mcmFtZXdvcmstbmcudWkuY29yZS1nZW5lcmljLXRhYmxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsY0FBYyxTQUFTLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEdlbmVyYXRlZCBidW5kbGUgaW5kZXguIERvIG5vdCBlZGl0LlxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vaW5kZXgnO1xuIl19"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;AAGO,MAAM,kBAAkB,CAAC;AAChC,IAAI,OAAO,IAAI,GAAG,EAAE,CAAC,kBAAkB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,kBAAkB,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,CAAC,eAAe,CAAC,QAAQ,EAAE,CAAC;AAC3K,IAAI,OAAO,IAAI,GAAG,EAAE,CAAC,mBAAmB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,kBAAkB,EAAE,OAAO,EAAE,CAAC,YAAY,CAAC,EAAE,CAAC;AACtJ,IAAI,OAAO,IAAI,GAAG,EAAE,CAAC,mBAAmB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,kBAAkB,EAAE,OAAO,EAAE,CAAC,YAAY,CAAC,EAAE,CAAC;AACtJ;AACA,EAAE,CAAC,wBAAwB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,kBAAkB,EAAE,UAAU,EAAE,CAAC;AAC5H,YAAY,IAAI,EAAE,QAAQ;AAC1B,YAAY,IAAI,EAAE,CAAC;AACnB,oBAAoB,OAAO,EAAE,CAAC,YAAY,CAAC;AAC3C,iBAAiB;AACjB,SAAS,CAAC,EAAE,CAAC;;ACMN,MAAM,YAAY,CAAC;AAC1B,IAAI,kBAAkB,GAAG,MAAM,CAAC,kBAAkB,CAAC;AACnD,IAAI,EAAE;AACN,IAAI,IAAI,GAAG,EAAE;AACb,IAAI,KAAK,GAAG,EAAE;AACd,IAAI,OAAO,GAAG,EAAE;AAChB,IAAI,eAAe,GAAG,EAAE;AACxB,IAAI,QAAQ,GAAG,EAAE;AACjB,IAAI,OAAO,GAAG,KAAK;AACnB,IAAI,OAAO,GAAG,EAAE;AAChB,IAAI,WAAW,GAAG,SAAS;AAC3B,IAAI,KAAK,GAAG,CAAC;AACb,IAAI,IAAI,GAAG,EAAE;AACb,IAAI,YAAY,GAAG,CAAC;AACpB,IAAI,SAAS;AACb,IAAI,SAAS,GAAG,CAAC;AACjB,IAAI,kBAAkB,GAAG,EAAE;AAC3B,IAAI,MAAM,GAAG,IAAI,YAAY,EAAE;AAC/B,IAAI,UAAU,GAAG,IAAI,YAAY,EAAE;AACnC;AACA,IAAI,QAAQ,GAAG,IAAI,YAAY,EAAE;AACjC,IAAI,gBAAgB,GAAG,EAAE;AACzB,IAAI,YAAY,GAAG,OAAO;AAC1B;AACA;AACA,IAAI,aAAa,GAAG,IAAI;AACxB;AACA;AACA;AACA,IAAI,UAAU,GAAG,IAAI;AACrB,IAAI,IAAI,SAAS,GAAG;AACpB,QAAQ,OAAO,IAAI,CAAC,UAAU;AAC9B;AACA,IAAI,IAAI,SAAS,CAAC,GAAG,EAAE;AACvB,QAAQ,IAAI,CAAC,UAAU,GAAG,GAAG;AAC7B;AACA;AACA,IAAI,UAAU,CAAC,KAAK,EAAE,IAAI,EAAE;AAC5B,QAAQ,OAAO,KAAK;AACpB;AACA;AACA,IAAI,SAAS,GAAG,IAAI,YAAY,EAAE;AAClC;AACA,IAAI,eAAe,GAAG,IAAI,YAAY,EAAE;AACxC;AACA,IAAI,SAAS,GAAG,IAAI;AACpB,IAAI,IAAI,GAAG,IAAI,SAAS,CAAC,EAAE,CAAC;AAC5B,IAAI,OAAO,GAAG,EAAE;AAChB;AACA;AACA,IAAI,wBAAwB,GAAG,KAAK;AACpC,IAAI,yBAAyB,CAAC,KAAK,EAAE;AACrC,QAAQ,IAAI,MAAM,IAAI,KAAK,EAAE;AAC7B;AACA,YAAY,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE;AAChD,gBAAgB,IAAI,CAAC,UAAU,GAAG,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC;AACvD;AACA,iBAAiB;AACjB,gBAAgB,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC,IAAI,CAAC;AAC7C;AACA;AACA,aAAa,IAAI,SAAS,IAAI,KAAK,EAAE;AACrC;AACA,YAAY,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC,OAAO,GAAG,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE;AACjE;AACA,QAAQ,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC;AAClD;AACA,IAAI,UAAU,CAAC,KAAK,EAAE;AACtB,QAAQ,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,KAAK,EAAE,KAAK,KAAK;AAC3C,YAAY,MAAM,MAAM,GAAG,IAAI,CAAC,gBAAgB,CAAC,KAAK,EAAE,KAAK,CAAC,KAAK,IAAI,EAAE,CAAC;AAC1E,YAAY,MAAM,MAAM,GAAG,IAAI,CAAC,gBAAgB,CAAC,KAAK,EAAE,KAAK,CAAC,KAAK,IAAI,EAAE,CAAC;AAC1E,YAAY,IAAI,MAAM,GAAG,CAAC;AAC1B,YAAY,IAAI,MAAM,IAAI,IAAI,IAAI,MAAM,IAAI,IAAI;AAChD,gBAAgB,MAAM,GAAG,CAAC,CAAC;AAC3B,iBAAiB,IAAI,MAAM,IAAI,IAAI,IAAI,MAAM,IAAI,IAAI;AACrD,gBAAgB,MAAM,GAAG,CAAC;AAC1B,iBAAiB,IAAI,MAAM,IAAI,IAAI,IAAI,MAAM,IAAI,IAAI;AACrD,gBAAgB,MAAM,GAAG,CAAC;AAC1B,iBAAiB,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,OAAO,MAAM,KAAK,QAAQ;AAC7E,gBAAgB,MAAM,GAAG,MAAM,CAAC,aAAa,CAAC,MAAM,CAAC;AACrD;AACA,gBAAgB,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,CAAC,CAAC,GAAG,MAAM,GAAG,MAAM,GAAG,CAAC,GAAG,CAAC;AACvE,YAAY,OAAO,CAAC,KAAK,CAAC,KAAK,IAAI,CAAC,IAAI,MAAM;AAC9C,SAAS,CAAC;AACV;AACA,IAAI,gBAAgB,CAAC,IAAI,EAAE,KAAK,EAAE;AAClC,QAAQ,IAAI,CAAC,KAAK;AAClB,YAAY,OAAO,IAAI;AACvB,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;AACrC,YAAY,OAAO,IAAI,CAAC,KAAK,CAAC;AAC9B,QAAQ,OAAO,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,IAAI,MAAM,GAAG,GAAG,GAAG,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,EAAE,IAAI,CAAC;AACrF;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,IAAI,aAAa,GAAG;AACxB,QAAQ,OAAO,IAAI,CAAC;AACpB,aAAa,MAAM,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE,MAAM;AACzD,YAAY,MAAM,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,IAAI,IAAI,CAAC,kBAAkB,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;AAC/E;AACA,aAAa,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,KAAK,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC;AAC5D;AACA,IAAI,QAAQ,CAAC,GAAG,EAAE,GAAG,EAAE;AACvB,QAAQ,IAAI,GAAG,CAAC,MAAM,EAAE;AACxB,YAAY,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC;AAC3B;AACA,aAAa;AACb,YAAY,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,GAAG,CAAC,IAAI,EAAE,GAAG,EAAE,CAAC;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,SAAS,GAAG,IAAI,GAAG,EAAE;AACzB,IAAI,KAAK,GAAG,IAAI,SAAS,CAAC,EAAE,CAAC,CAAC;AAC9B;AACA,IAAI,OAAO,CAAC,QAAQ,EAAE,QAAQ,EAAE;AAChC,QAAQ,MAAM,GAAG,GAAG,CAAC,EAAE,QAAQ,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC;AAC7C,QAAQ,IAAI,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC;AAC1C,QAAQ,IAAI,CAAC,IAAI,EAAE;AACnB,YAAY,IAAI,GAAG,IAAI,SAAS,CAAC,EAAE,CAAC;AACpC,YAAY,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC;AACzC;AACA,QAAQ,OAAO,IAAI;AACnB;AACA,IAAI,SAAS,CAAC,KAAK,EAAE,IAAI,EAAE;AAC3B,QAAQ,OAAO,KAAK,CAAC;AACrB;AACA;AACA,IAAI,WAAW,CAAC,OAAO,EAAE;AACzB;AACA,QAAQ,IAAI,OAAO,CAAC,MAAM,CAAC,EAAE;AAC7B,YAAY,MAAM,WAAW,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,YAAY;AAC5D,YAAY,MAAM,YAAY,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,aAAa;AAC9D;AACA,YAAY,IAAI,CAAC,WAAW,EAAE;AAC9B;AACA;AACA,IAAI,UAAU,CAAC,KAAK,EAAE;AACtB;AACA;AACA,QAAQ,IAAI,CAAC,WAAW,EAAE;AAC1B,QAAQ,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC;AACnC;AACA,IAAI,WAAW,CAAC,OAAO,EAAE;AACzB;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,WAAW,GAAG;AAClB,QAAQ,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,IAAI;AAC9C;AACA,YAAY,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,IAAI;AACtD,gBAAgB,OAAO,SAAS,CAAC,GAAG,CAAC;AACrC,aAAa,CAAC;AACd;AACA,YAAY,OAAO;AACnB,gBAAgB,GAAG,OAAO;AAC1B,gBAAgB,SAAS,EAAE;AAC3B,aAAa;AACb,SAAS,CAAC;AACV;AACA,IAAI,YAAY,CAAC,GAAG,EAAE;AACtB,QAAQ,OAAO,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,GAAG,KAAK;AAC9C,YAAY,KAAK,EAAE,GAAG,CAAC,KAAK;AAC5B,YAAY,IAAI,EAAE,GAAG,CAAC,IAAI;AAC1B,YAAY,OAAO,EAAE,MAAM,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,GAAG,CAAC;AAClD,YAAY,UAAU,EAAE,GAAG,CAAC;AAC5B,SAAS,CAAC,CAAC;AACX;AACA;AACA,IAAI,WAAW,CAAC,KAAK,EAAE;AACvB;AACA,QAAQ,IAAI,KAAK,CAAC,IAAI,EAAE;AACxB,YAAY,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC;AAC3C;AACA;AACA,IAAI,OAAO,IAAI,GAAG,EAAE,CAAC,kBAAkB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,CAAC,eAAe,CAAC,SAAS,EAAE,CAAC;AACtK,IAAI,OAAO,IAAI,GAAG,EAAE,CAAC,oBAAoB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,YAAY,EAAE,YAAY,EAAE,IAAI,EAAE,QAAQ,EAAE,mBAAmB,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,aAAa,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,YAAY,EAAE,cAAc,EAAE,SAAS,EAAE,WAAW,EAAE,SAAS,EAAE,WAAW,EAAE,kBAAkB,EAAE,oBAAoB,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,YAAY,EAAE,cAAc,EAAE,aAAa,EAAE,eAAe,EAAE,SAAS,EAAE,WAAW,EAAE,SAAS,EAAE,WAAW,EAAE,wBAAwB,EAAE,0BAA0B,EAAE,EAAE,OAAO,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,UAAU,EAAE,YAAY,EAAE,QAAQ,EAAE,UAAU,EAAE,SAAS,EAAE,WAAW,EAAE,eAAe,EAAE,iBAAiB,EAAE,EAAE,WAAW,EAAE,CAAC,EAAE,YAAY,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,IAAI,CAAC,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC,EAAE,aAAa,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE,QAAQ,EAAE,qsMAAqsM,EAAE,MAAM,EAAE,CAAC,6RAA6R,CAAC,EAAE,YAAY,EAAE,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,YAAY,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,EAAE,CAAC,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,EAAE,CAAC,OAAO,EAAE,SAAS,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,EAAE,CAAC,OAAO,EAAE,QAAQ,EAAE,kBAAkB,EAAE,MAAM,EAAE,CAAC,SAAS,EAAE,cAAc,EAAE,eAAe,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,EAAE,CAAC,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC,MAAM,EAAE,UAAU,EAAE,UAAU,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,EAAE,CAAC,QAAQ,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,EAAE,CAAC,UAAU,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,EAAE,CAAC,YAAY,EAAE,QAAQ,EAAE,gBAAgB,EAAE,MAAM,EAAE,CAAC,cAAc,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,WAAW,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,EAAE,CAAC,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,EAAE,CAAC,eAAe,EAAE,aAAa,EAAE,YAAY,EAAE,YAAY,EAAE,iBAAiB,EAAE,WAAW,EAAE,WAAW,EAAE,oBAAoB,EAAE,qBAAqB,EAAE,mBAAmB,EAAE,qBAAqB,EAAE,2BAA2B,EAAE,+BAA+B,EAAE,2BAA2B,EAAE,uBAAuB,EAAE,wBAAwB,EAAE,qBAAqB,EAAE,mBAAmB,EAAE,eAAe,EAAE,kBAAkB,EAAE,UAAU,EAAE,iBAAiB,EAAE,eAAe,EAAE,mBAAmB,EAAE,sBAAsB,EAAE,0BAA0B,EAAE,SAAS,EAAE,kBAAkB,EAAE,eAAe,EAAE,YAAY,EAAE,MAAM,EAAE,gBAAgB,EAAE,oBAAoB,EAAE,cAAc,EAAE,gBAAgB,EAAE,SAAS,EAAE,oBAAoB,EAAE,aAAa,EAAE,cAAc,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,eAAe,EAAE,YAAY,EAAE,cAAc,EAAE,cAAc,EAAE,eAAe,EAAE,uBAAuB,EAAE,sBAAsB,EAAE,oBAAoB,EAAE,aAAa,EAAE,aAAa,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,oBAAoB,EAAE,SAAS,EAAE,aAAa,EAAE,YAAY,EAAE,UAAU,EAAE,YAAY,EAAE,sBAAsB,EAAE,gBAAgB,EAAE,cAAc,EAAE,UAAU,EAAE,cAAc,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,EAAE,eAAe,EAAE,aAAa,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,YAAY,EAAE,iBAAiB,EAAE,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,EAAE,cAAc,EAAE,WAAW,EAAE,WAAW,EAAE,eAAe,EAAE,WAAW,EAAE,WAAW,CAAC,EAAE,OAAO,EAAE,CAAC,4BAA4B,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,aAAa,EAAE,eAAe,EAAE,QAAQ,EAAE,QAAQ,EAAE,UAAU,EAAE,YAAY,EAAE,aAAa,EAAE,eAAe,EAAE,qBAAqB,EAAE,aAAa,EAAE,cAAc,EAAE,cAAc,EAAE,YAAY,EAAE,gBAAgB,EAAE,cAAc,EAAE,wBAAwB,EAAE,cAAc,EAAE,aAAa,EAAE,YAAY,EAAE,aAAa,EAAE,gBAAgB,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,EAAE,CAAC,aAAa,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,EAAE,CAAC,MAAM,EAAE,WAAW,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,EAAE,CAAC,cAAc,EAAE,QAAQ,EAAE,mBAAmB,EAAE,MAAM,EAAE,CAAC,iBAAiB,EAAE,yBAAyB,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,EAAE,CAAC,QAAQ,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,EAAE,CAAC,OAAO,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,EAAE,CAAC,aAAa,EAAE,QAAQ,EAAE,iBAAiB,EAAE,MAAM,EAAE,CAAC,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,EAAE,CAAC,mBAAmB,EAAE,QAAQ,EAAE,uBAAuB,EAAE,MAAM,EAAE,CAAC,UAAU,EAAE,SAAS,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,YAAY,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,EAAE,CAAC,eAAe,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,EAAE,CAAC,SAAS,EAAE,aAAa,EAAE,SAAS,EAAE,UAAU,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,aAAa,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,EAAE,CAAC,MAAM,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,EAAE,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,aAAa,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,eAAe,EAAE,WAAW,EAAE,aAAa,EAAE,WAAW,EAAE,OAAO,CAAC,EAAE,OAAO,EAAE,CAAC,SAAS,EAAE,SAAS,EAAE,QAAQ,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,UAAU,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,EAAE,CAAC,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,YAAY,EAAE,uBAAuB,EAAE,uBAAuB,EAAE,WAAW,EAAE,gBAAgB,EAAE,IAAI,EAAE,UAAU,EAAE,UAAU,CAAC,EAAE,OAAO,EAAE,CAAC,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,SAAS,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,eAAe,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,UAAU,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,EAAE,CAAC,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,SAAS,CAAC,EAAE,OAAO,EAAE,CAAC,aAAa,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,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,MAAM,EAAE,IAAI,EAAE,EAAE,CAAC,aAAa,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC,EAAE,CAAC;AAC17X;AACA,EAAE,CAAC,wBAAwB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,YAAY,EAAE,UAAU,EAAE,CAAC;AACtH,YAAY,IAAI,EAAE,SAAS;AAC3B,YAAY,IAAI,EAAE,CAAC,EAAE,QAAQ,EAAE,mBAAmB,EAAE,OAAO,EAAE,CAAC,YAAY,EAAE,WAAW,EAAE,YAAY,EAAE,UAAU,EAAE,OAAO,EAAE,eAAe,EAAE,WAAW,EAAE,UAAU,EAAE,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE,MAAM,EAAE,aAAa,CAAC,EAAE,QAAQ,EAAE,qsMAAqsM,EAAE,MAAM,EAAE,CAAC,6RAA6R,CAAC,EAAE;AACntN,SAAS,CAAC,EAAE,cAAc,EAAE,EAAE,EAAE,EAAE,CAAC;AACnC,gBAAgB,IAAI,EAAE,SAAS;AAC/B,gBAAgB,IAAI,EAAE,CAAC,IAAI;AAC3B,aAAa,CAAC,EAAE,IAAI,EAAE,CAAC;AACvB,gBAAgB,IAAI,EAAE;AACtB,aAAa,CAAC,EAAE,OAAO,EAAE,CAAC;AAC1B,gBAAgB,IAAI,EAAE;AACtB,aAAa,CAAC,EAAE,OAAO,EAAE,CAAC;AAC1B,gBAAgB,IAAI,EAAE;AACtB,aAAa,CAAC,EAAE,OAAO,EAAE,CAAC;AAC1B,gBAAgB,IAAI,EAAE;AACtB,aAAa,CAAC,EAAE,WAAW,EAAE,CAAC;AAC9B,gBAAgB,IAAI,EAAE;AACtB,aAAa,CAAC,EAAE,KAAK,EAAE,CAAC;AACxB,gBAAgB,IAAI,EAAE;AACtB,aAAa,CAAC,EAAE,IAAI,EAAE,CAAC;AACvB,gBAAgB,IAAI,EAAE;AACtB,aAAa,CAAC,EAAE,YAAY,EAAE,CAAC;AAC/B,gBAAgB,IAAI,EAAE;AACtB,aAAa,CAAC,EAAE,SAAS,EAAE,CAAC;AAC5B,gBAAgB,IAAI,EAAE;AACtB,aAAa,CAAC,EAAE,SAAS,EAAE,CAAC;AAC5B,gBAAgB,IAAI,EAAE;AACtB,aAAa,CAAC,EAAE,kBAAkB,EAAE,CAAC;AACrC,gBAAgB,IAAI,EAAE;AACtB,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;AACzB,gBAAgB,IAAI,EAAE;AACtB,aAAa,CAAC,EAAE,UAAU,EAAE,CAAC;AAC7B,gBAAgB,IAAI,EAAE;AACtB,aAAa,CAAC,EAAE,QAAQ,EAAE,CAAC;AAC3B,gBAAgB,IAAI,EAAE;AACtB,aAAa,CAAC,EAAE,gBAAgB,EAAE,CAAC;AACnC,gBAAgB,IAAI,EAAE;AACtB,aAAa,CAAC,EAAE,YAAY,EAAE,CAAC;AAC/B,gBAAgB,IAAI,EAAE;AACtB,aAAa,CAAC,EAAE,aAAa,EAAE,CAAC;AAChC,gBAAgB,IAAI,EAAE;AACtB,aAAa,CAAC,EAAE,SAAS,EAAE,CAAC;AAC5B,gBAAgB,IAAI,EAAE;AACtB,aAAa,CAAC,EAAE,SAAS,EAAE,CAAC;AAC5B,gBAAgB,IAAI,EAAE;AACtB,aAAa,CAAC,EAAE,eAAe,EAAE,CAAC;AAClC,gBAAgB,IAAI,EAAE;AACtB,aAAa,CAAC,EAAE,SAAS,EAAE,CAAC;AAC5B,gBAAgB,IAAI,EAAE;AACtB,aAAa,CAAC,EAAE,wBAAwB,EAAE,CAAC;AAC3C,gBAAgB,IAAI,EAAE;AACtB,aAAa,CAAC,EAAE,EAAE,CAAC;;AC1QnB;AACA;AACA;;;;"}
|
|
1
|
+
{"version":3,"file":"elite.framework-ng.ui.core-generic-table.mjs","sources":["../tmp-esm2022/generic-table/lib/generic-table-module.js","../tmp-esm2022/generic-table/lib/generic-table.js","../tmp-esm2022/generic-table/elite.framework-ng.ui.core-generic-table.js"],"sourcesContent":["import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport * as i0 from \"@angular/core\";\nexport class GenericTableModule {\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: GenericTableModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });\n static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"14.0.0\", version: \"20.1.8\", ngImport: i0, type: GenericTableModule, imports: [CommonModule] });\n static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: GenericTableModule, imports: [CommonModule] });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: GenericTableModule, decorators: [{\n type: NgModule,\n args: [{\n imports: [CommonModule],\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2VuZXJpYy10YWJsZS1tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL25nLnVpLmNvcmUvZ2VuZXJpYy10YWJsZS9zcmMvbGliL2dlbmVyaWMtdGFibGUtbW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDOztBQUsvQyxNQUFNLE9BQU8sa0JBQWtCO3VHQUFsQixrQkFBa0I7d0dBQWxCLGtCQUFrQixZQUZuQixZQUFZO3dHQUVYLGtCQUFrQixZQUZuQixZQUFZOzsyRkFFWCxrQkFBa0I7a0JBSDlCLFFBQVE7bUJBQUM7b0JBQ1IsT0FBTyxFQUFFLENBQUMsWUFBWSxDQUFDO2lCQUN4QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuXG5ATmdNb2R1bGUoe1xuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlXSxcbn0pXG5leHBvcnQgY2xhc3MgR2VuZXJpY1RhYmxlTW9kdWxlIHt9XG4iXX0=","import { Component, Input, Output, EventEmitter, ViewChild, inject } from '@angular/core';\nimport { Table } from 'primeng/table';\nimport { CommonModule, NgForOf, NgIf } from '@angular/common';\nimport { TableModule } from 'primeng/table';\nimport { ButtonModule, Button } from 'primeng/button';\nimport { MenuModule, Menu } from 'primeng/menu';\nimport { TranslateModule, TranslatePipe } from '@ngx-translate/core';\nimport { FormlyField, FormlyForm } from '@ngx-formly/core';\nimport { FormGroup } from '@angular/forms';\nimport { cloneDeep } from 'lodash';\nimport { GenericButton } from '@elite.framework/ng.ui.core/generic-button';\nimport { PermissionsService } from '@elite.framework/ng.core/services';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@angular/common\";\nimport * as i2 from \"primeng/table\";\nimport * as i3 from \"primeng/api\";\nimport * as i4 from \"primeng/button\";\nimport * as i5 from \"primeng/menu\";\nimport * as i6 from \"@ngx-translate/core\";\nexport class GenericTable {\n permissionsService = inject(PermissionsService);\n dt;\n data = [];\n data_ = [];\n columns = [];\n processedFields = [];\n columns_ = [];\n loading = false;\n actions = [];\n actionsMode = 'buttons';\n first = 0;\n rows = 10;\n totalRecords = 0;\n sortField;\n sortOrder = 1;\n globalFilterFields = [];\n action = new EventEmitter();\n pageChange = new EventEmitter();\n // eslint-disable-next-line @angular-eslint/no-output-on-prefix\n onAddNew = new EventEmitter();\n addButtonConfigs = [];\n scrollHeight = '400px';\n // **جديد**: تمكين اختيار الصفوف\n /** فعّل اختيار الصفين single/multiple */\n rowSelectable = true;\n /** يحتفظ بالصف المحدد */\n //@Input() selection: T | T[] | null = null;\n // هذا سيكون مرتبطًا بـ [(selection)] في p-table\n _selection = null;\n get selection() {\n return this._selection;\n }\n set selection(val) {\n this._selection = val;\n // لا تُصدر الحدث هنا، بل في onInternalSelectionChange فقط\n }\n trackByIdx(index, item) {\n return index;\n }\n /** يصدر الصف المحدد عند النقر */\n rowSelect = new EventEmitter();\n /** يصدر الصفوف المحددة عند التغيير (للربط الثنائي) */\n selectionChange = new EventEmitter();\n /** جديد: التحكم بظهور الـ paginator */\n paginator = true;\n form = new FormGroup({});\n options = {};\n // **جديد**: يتحكم بإظهار عمود اختيار الصفوف (checkboxes)\n /** يتحكم في إظهار عمود اختيار الصفوف المتعددة بواسطة checkboxes */\n showRowSelectionCheckbox = false;\n onInternalSelectionChange(event) {\n if ('data' in event) {\n // Row select/unselect (single أو multiple)\n if (Array.isArray(this._selection)) {\n this._selection = [...this._selection]; // تحديث نسخة المصفوفة عند متعدد\n }\n else {\n this._selection = event.data; // اختيار فردي\n }\n }\n else if ('checked' in event) {\n // Header checkbox toggle\n this._selection = event.checked ? [...this.data] : [];\n }\n this.selectionChange.emit(this._selection);\n }\n customSort(event) {\n event.data?.sort((data1, data2) => {\n const value1 = this.resolveFieldData(data1, event.field ?? '');\n const value2 = this.resolveFieldData(data2, event.field ?? '');\n let result = 0;\n if (value1 == null && value2 != null)\n result = -1;\n else if (value1 != null && value2 == null)\n result = 1;\n else if (value1 == null && value2 == null)\n result = 0;\n else if (typeof value1 === 'string' && typeof value2 === 'string')\n result = value1.localeCompare(value2);\n else\n result = value1 < value2 ? -1 : value1 > value2 ? 1 : 0;\n return (event.order ?? 1) * result;\n });\n }\n resolveFieldData(data, field) {\n if (!field)\n return null;\n if (field.indexOf('.') === -1)\n return data[field];\n return field.split('.').reduce((obj, prop) => (obj ? obj[prop] : null), data);\n }\n // getOrderedColumns(): TableColumn[] {\n // return [...this.columns,\n // ...(this.showRowSelectionCheckbox ? [{ type: 'selection', order: -1 }] : []),\n // { type: 'operations', label: 'OPERATIONS', order: 999 }\n // ].sort((a, b) => (a.order ?? 0) - (b.order ?? 0));\n // }\n get sortedActions() {\n return this.actions\n .filter(action => !action.permissions?.length || // no permissions → allow\n action.permissions.every(p => this.permissionsService.isGranted(p)) // all granted\n )\n .sort((a, b) => (a.order ?? 0) - (b.order ?? 0));\n }\n onAction(act, row) {\n if (act.action) {\n act.action(row);\n }\n else {\n this.action.emit({ name: act.name, row });\n }\n }\n // cloneField(field: any): any {\n // if (field === null || typeof field !== 'object') {\n // return field;\n // }\n // if (Array.isArray(field)) {\n // // preserve `this` context\n // return field.map((item) => this.cloneField(item));\n // }\n // const cloned: any = {};\n // for (const key of Object.keys(field)) {\n // cloned[key] = this.cloneField(field[key]);\n // }\n // return cloned;\n // }\n // Use a map to store form groups for each row and column\n cellForms = new Map();\n forms = new FormGroup({}); // A main form for the table\n // Refactored getForm to return an existing form instance\n getForm(rowIndex, colIndex) {\n const key = `${rowIndex}_${colIndex}`;\n let form = this.cellForms.get(key);\n if (!form) {\n form = new FormGroup({});\n this.cellForms.set(key, form);\n }\n return form;\n }\n trackByFn(index, item) {\n return index; // or a unique identifier from your data\n }\n // This method is called whenever any @Input() property changes.\n ngOnChanges(changes) {\n // Check if the 'data' property has changed.\n if (changes['data']) {\n const currentData = changes['data'].currentValue;\n const previousData = changes['data'].previousValue;\n // For example, you can call a method to re-render or process the data.\n this.refreshData();\n }\n }\n onLazyLoad(event) {\n // Reinitialize forms on new data load\n // this.cellForms.clear();\n this.refreshData();\n this.pageChange.emit(event);\n }\n applyFilter(filters) {\n // if (field) {\n // this.dt.filter(global, field, 'contains');\n // } else {\n // this.dt.filterGlobal(global, 'contains');\n // }\n }\n refreshData() {\n this.data_ = this.data.map(rowData => {\n // Create a new array of fields for each row\n const rowFields = this.columns.map(col => {\n return cloneDeep(col);\n });\n // Attach the unique fields to the row data object\n return {\n ...rowData,\n rowFields: rowFields\n };\n });\n }\n getMenuItems(row) {\n return this.sortedActions.map(act => ({\n label: act.label,\n icon: act.icon,\n command: () => this.onAction(act, row),\n styleClass: act.styleClass\n }));\n }\n // **جديد**: يتم إطلاق هذا عند اختيار صف\n onRowSelect(event) {\n // debugger\n if (event.data) {\n this.rowSelect.emit(event.data);\n }\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: GenericTable, deps: [], target: i0.ɵɵFactoryTarget.Component });\n static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.1.8\", type: GenericTable, isStandalone: true, selector: \"lib-generic-table\", inputs: { data: \"data\", columns: \"columns\", loading: \"loading\", actions: \"actions\", actionsMode: \"actionsMode\", first: \"first\", rows: \"rows\", totalRecords: \"totalRecords\", sortField: \"sortField\", sortOrder: \"sortOrder\", globalFilterFields: \"globalFilterFields\", addButtonConfigs: \"addButtonConfigs\", scrollHeight: \"scrollHeight\", rowSelectable: \"rowSelectable\", selection: \"selection\", paginator: \"paginator\", showRowSelectionCheckbox: \"showRowSelectionCheckbox\" }, outputs: { action: \"action\", pageChange: \"pageChange\", onAddNew: \"onAddNew\", rowSelect: \"rowSelect\", selectionChange: \"selectionChange\" }, viewQueries: [{ propertyName: \"dt\", first: true, predicate: [\"dt\"], descendants: true }], usesOnChanges: true, ngImport: i0, template: \"\\r\\n<div class=\\\"flex-1 last:[&>td]:border-0 rounded-lg border border-surface w-full overflow-auto\\\">\\r\\n <p-table #dt\\r\\n [value]=\\\"data_\\\"\\r\\n [columns]=\\\"columns\\\"\\r\\n [lazy]=\\\"true\\\"\\r\\n [paginator]=\\\"paginator\\\"\\r\\n [rows]=\\\"rows\\\"\\r\\n [first]=\\\"first\\\"\\r\\n [totalRecords]=\\\"totalRecords\\\"\\r\\n [sortField]=\\\"sortField\\\"\\r\\n [sortOrder]=\\\"sortOrder\\\"\\r\\n (onLazyLoad)=\\\"onLazyLoad($event)\\\"\\r\\n [globalFilterFields]=\\\"globalFilterFields\\\"\\r\\n [loading]=\\\"loading\\\"\\r\\n [scrollable]=\\\"true\\\"\\r\\n [scrollHeight]=\\\"scrollHeight\\\"\\r\\n [selectionMode]=\\\"showRowSelectionCheckbox ? 'multiple' : (rowSelectable ? 'single' : undefined)\\\"\\r\\n [(selection)]=\\\"_selection\\\"\\r\\n (onRowSelect)=\\\"onInternalSelectionChange($event)\\\"\\r\\n (onRowUnselect)=\\\"onInternalSelectionChange($event)\\\"\\r\\n (onHeaderCheckboxToggle)=\\\"onInternalSelectionChange($event)\\\"\\r\\n tableLayout=\\\"fixed\\\"\\r\\n [customSort]=\\\"false\\\"\\r\\n (sortFunction)=\\\"customSort($event)\\\"\\r\\n >\\r\\n\\r\\n <ng-template pTemplate=\\\"emptymessage\\\">\\r\\n <tr>\\r\\n <td colspan=\\\"10\\\">\\r\\n <div class=\\\"flex flex-col items-center justify-center py-10 text-center w-full\\\">\\r\\n <i style=\\\"font-size: 2.5rem;\\\" class=\\\"pi pi-inbox text-4xl text-gray-400 mb-4\\\"></i>\\r\\n <p class=\\\"text-gray-500 mb-4\\\">{{ 'NO_DATA_FOUND' | translate }}</p>\\r\\n\\r\\n\\r\\n <ng-container *ngFor=\\\"let btn of addButtonConfigs; trackBy: trackByIdx\\\">\\r\\n @if (!btn.visible || ( btn.visible && btn.visible === true)) {\\r\\n <lib-generic-button\\r\\n [icon]=\\\"btn.icon\\\"\\r\\n [label]=\\\"btn.label | translate\\\"\\r\\n [variant]=\\\"btn.variant\\\"\\r\\n [size]=\\\"btn.size\\\"\\r\\n [model]=\\\"btn.splitActions\\\"\\r\\n [permission]=\\\"btn.permission\\\"\\r\\n (clicked)=\\\"onAddNew.emit()\\\"\\r\\n ></lib-generic-button>\\r\\n }\\r\\n </ng-container>\\r\\n </div>\\r\\n </td>\\r\\n </tr>\\r\\n\\r\\n </ng-template>\\r\\n\\r\\n <ng-template pTemplate=\\\"header\\\" let-columns>\\r\\n <tr>\\r\\n <th *ngIf=\\\"showRowSelectionCheckbox\\\" style=\\\"width: 2rem\\\">\\r\\n <p-tableHeaderCheckbox></p-tableHeaderCheckbox>\\r\\n </th>\\r\\n<th *ngIf=\\\"actions.length > 0\\\" class=\\\"px-4 py-2 text-sm font-medium text-white text-center\\\">\\r\\n {{ 'OPERATIONS' | translate }}\\r\\n </th>\\r\\n <ng-container *ngFor=\\\"let col of columns; trackBy: trackByFn\\\" >\\r\\n <th *ngIf=\\\"col.props?.table?.props?.width; else templateName\\\" [pSortableColumn]=\\\"col.key\\\"\\r\\n class=\\\"px-4 py-2 text-sm font-medium text-white text-center\\\"\\r\\n [style.min-width]=\\\"col.props?.table?.props?.width\\\">\\r\\n {{ col.props?.label | translate }}\\r\\n <p-sortIcon [field]=\\\"col.key\\\"></p-sortIcon>\\r\\n </th>\\r\\n\\r\\n <ng-template #templateName>\\r\\n <th style=\\\"min-width: 150px;\\\" class=\\\"px-4 py-2 text-sm font-medium text-white text-center\\\" [pSortableColumn]=\\\"col.key\\\">\\r\\n {{ col.props?.label | translate }}\\r\\n <p-sortIcon [field]=\\\"col.key\\\"></p-sortIcon>\\r\\n </th>\\r\\n </ng-template>\\r\\n</ng-container>\\r\\n\\r\\n\\r\\n\\r\\n </tr>\\r\\n </ng-template>\\r\\n\\r\\n <ng-template pTemplate=\\\"body\\\" let-rowData let-columns=\\\"columns\\\" let-i=\\\"rowIndex\\\">\\r\\n <tr class=\\\"even:bg-gray-50 hover:bg-gray-100\\\" (click)=\\\"rowSelect.emit(rowData)\\\">\\r\\n <td *ngIf=\\\"showRowSelectionCheckbox\\\" style=\\\"width: 2rem\\\">\\r\\n <p-tableCheckbox [value]=\\\"rowData\\\"></p-tableCheckbox>\\r\\n </td>\\r\\n <td *ngIf=\\\"actions.length > 0\\\" class=\\\"border-t border-gray-200 px-4 py-2 text-center align-middle\\\">\\r\\n <ng-container [ngSwitch]=\\\"actionsMode\\\">\\r\\n <!-- Render buttons -->\\r\\n <ng-container *ngSwitchCase=\\\"'buttons'\\\">\\r\\n <ng-container *ngFor=\\\"let act of sortedActions\\\">\\r\\n <button\\r\\n *ngIf=\\\"act.icon || act.label\\\"\\r\\n pButton\\r\\n [icon]=\\\"act.icon || ''\\\"\\r\\n [label]=\\\"(act.label || '') | translate\\\"\\r\\n [class]=\\\"act.styleClass || ''\\\"\\r\\n class=\\\"p-button-sm mx-1\\\"\\r\\n (click)=\\\"onAction(act, rowData)\\\"\\r\\n ></button>\\r\\n </ng-container>\\r\\n </ng-container>\\r\\n\\r\\n <!-- Render menu -->\\r\\n <ng-container *ngSwitchCase=\\\"'menu'\\\">\\r\\n <p-menu #menu [model]=\\\"getMenuItems(rowData)\\\" [popup]=\\\"true\\\" appendTo=\\\"body\\\">\\r\\n <ng-template let-item pTemplate=\\\"item\\\">\\r\\n <div class=\\\"flex items-center gap-2 px-2 py-1\\\">\\r\\n <i [ngClass]=\\\"item.icon\\\" class=\\\"text-primary-600\\\" *ngIf=\\\"item.icon\\\"></i>\\r\\n <span class=\\\"font-medium\\\">{{ (item.label || '') | translate }}</span>\\r\\n\\r\\n <span *ngIf=\\\"item.badge\\\" class=\\\"ml-auto text-xs bg-red-500 text-white px-2 py-1 rounded\\\">\\r\\n {{ item.badge }}\\r\\n </span>\\r\\n\\r\\n <!-- <p-inputSwitch *ngIf=\\\"item.toggle\\\" [(ngModel)]=\\\"item.toggleValue\\\" class=\\\"ml-auto\\\" /> -->\\r\\n </div>\\r\\n </ng-template>\\r\\n </p-menu>\\r\\n\\r\\n <p-button\\r\\n outlined\\r\\n icon=\\\"pi pi-ellipsis-v\\\"\\r\\n class=\\\"p-button-text p-button-sm\\\"\\r\\n (onClick)=\\\"menu.toggle($event)\\\"\\r\\n ></p-button>\\r\\n </ng-container>\\r\\n </ng-container>\\r\\n\\r\\n </td>\\r\\n <td *ngFor=\\\"let col of rowData.rowFields ; let colIndex = index;trackBy: trackByFn\\\"\\r\\n class=\\\"border-t border-gray-200 px-4 py-2 text-center text-sm text-gray-700\\\"\\r\\n [style.width]=\\\"col.props && col.props['table']\\r\\n && col.props['table']['props'] && col.props['table']['props']['width'] \\\"\\r\\n\\r\\n >\\r\\n\\r\\n<formly-form\\r\\n [model]=\\\"rowData\\\"\\r\\n [form]=\\\"getForm(i, colIndex)\\\"\\r\\n [fields]=\\\"[col]\\\"\\r\\n [options]=\\\"options\\\">\\r\\n </formly-form>\\r\\n </td>\\r\\n\\r\\n </tr>\\r\\n </ng-template>\\r\\n </p-table>\\r\\n\\r\\n</div>\\r\\n\", styles: [\".custom-button-medium{font-size:1.1rem;width:2.5rem;height:2.5rem;line-height:2.5rem;padding:0}.custom-button-gray{color:#333;background-color:transparent;border:none}.custom-button-gray:hover{background-color:#eee;color:#000}.icon-delete{color:red!important}.icon-edit{color:#333}\\n\"], dependencies: [{ kind: \"ngmodule\", type: CommonModule }, { kind: \"directive\", type: i1.NgClass, selector: \"[ngClass]\", inputs: [\"class\", \"ngClass\"] }, { kind: \"directive\", type: i1.NgForOf, selector: \"[ngFor][ngForOf]\", inputs: [\"ngForOf\", \"ngForTrackBy\", \"ngForTemplate\"] }, { kind: \"directive\", type: i1.NgIf, selector: \"[ngIf]\", inputs: [\"ngIf\", \"ngIfThen\", \"ngIfElse\"] }, { kind: \"directive\", type: i1.NgSwitch, selector: \"[ngSwitch]\", inputs: [\"ngSwitch\"] }, { kind: \"directive\", type: i1.NgSwitchCase, selector: \"[ngSwitchCase]\", inputs: [\"ngSwitchCase\"] }, { kind: \"ngmodule\", type: TableModule }, { kind: \"component\", type: i2.Table, selector: \"p-table\", inputs: [\"frozenColumns\", \"frozenValue\", \"styleClass\", \"tableStyle\", \"tableStyleClass\", \"paginator\", \"pageLinks\", \"rowsPerPageOptions\", \"alwaysShowPaginator\", \"paginatorPosition\", \"paginatorStyleClass\", \"paginatorDropdownAppendTo\", \"paginatorDropdownScrollHeight\", \"currentPageReportTemplate\", \"showCurrentPageReport\", \"showJumpToPageDropdown\", \"showJumpToPageInput\", \"showFirstLastIcon\", \"showPageLinks\", \"defaultSortOrder\", \"sortMode\", \"resetPageOnSort\", \"selectionMode\", \"selectionPageOnly\", \"contextMenuSelection\", \"contextMenuSelectionMode\", \"dataKey\", \"metaKeySelection\", \"rowSelectable\", \"rowTrackBy\", \"lazy\", \"lazyLoadOnInit\", \"compareSelectionBy\", \"csvSeparator\", \"exportFilename\", \"filters\", \"globalFilterFields\", \"filterDelay\", \"filterLocale\", \"expandedRowKeys\", \"editingRowKeys\", \"rowExpandMode\", \"scrollable\", \"rowGroupMode\", \"scrollHeight\", \"virtualScroll\", \"virtualScrollItemSize\", \"virtualScrollOptions\", \"virtualScrollDelay\", \"frozenWidth\", \"contextMenu\", \"resizableColumns\", \"columnResizeMode\", \"reorderableColumns\", \"loading\", \"loadingIcon\", \"showLoader\", \"rowHover\", \"customSort\", \"showInitialSortBadge\", \"exportFunction\", \"exportHeader\", \"stateKey\", \"stateStorage\", \"editMode\", \"groupRowsBy\", \"size\", \"showGridlines\", \"stripedRows\", \"groupRowsByOrder\", \"responsiveLayout\", \"breakpoint\", \"paginatorLocale\", \"value\", \"columns\", \"first\", \"rows\", \"totalRecords\", \"sortField\", \"sortOrder\", \"multiSortMeta\", \"selection\", \"selectAll\"], outputs: [\"contextMenuSelectionChange\", \"selectAllChange\", \"selectionChange\", \"onRowSelect\", \"onRowUnselect\", \"onPage\", \"onSort\", \"onFilter\", \"onLazyLoad\", \"onRowExpand\", \"onRowCollapse\", \"onContextMenuSelect\", \"onColResize\", \"onColReorder\", \"onRowReorder\", \"onEditInit\", \"onEditComplete\", \"onEditCancel\", \"onHeaderCheckboxToggle\", \"sortFunction\", \"firstChange\", \"rowsChange\", \"onStateSave\", \"onStateRestore\"] }, { kind: \"directive\", type: i3.PrimeTemplate, selector: \"[pTemplate]\", inputs: [\"type\", \"pTemplate\"] }, { kind: \"directive\", type: i2.SortableColumn, selector: \"[pSortableColumn]\", inputs: [\"pSortableColumn\", \"pSortableColumnDisabled\"] }, { kind: \"component\", type: i2.SortIcon, selector: \"p-sortIcon\", inputs: [\"field\"] }, { kind: \"component\", type: i2.TableCheckbox, selector: \"p-tableCheckbox\", inputs: [\"value\", \"disabled\", \"required\", \"index\", \"inputId\", \"name\", \"ariaLabel\"] }, { kind: \"component\", type: i2.TableHeaderCheckbox, selector: \"p-tableHeaderCheckbox\", inputs: [\"disabled\", \"inputId\", \"name\", \"ariaLabel\"] }, { kind: \"ngmodule\", type: ButtonModule }, { kind: \"directive\", type: i4.ButtonDirective, selector: \"[pButton]\", inputs: [\"iconPos\", \"loadingIcon\", \"loading\", \"severity\", \"raised\", \"rounded\", \"text\", \"outlined\", \"size\", \"plain\", \"fluid\", \"label\", \"icon\", \"buttonProps\"] }, { kind: \"component\", type: i4.Button, selector: \"p-button\", inputs: [\"type\", \"iconPos\", \"icon\", \"badge\", \"label\", \"disabled\", \"loading\", \"loadingIcon\", \"raised\", \"rounded\", \"text\", \"plain\", \"severity\", \"outlined\", \"link\", \"tabindex\", \"size\", \"variant\", \"style\", \"styleClass\", \"badgeClass\", \"badgeSeverity\", \"ariaLabel\", \"buttonProps\", \"autofocus\", \"fluid\"], outputs: [\"onClick\", \"onFocus\", \"onBlur\"] }, { kind: \"ngmodule\", type: MenuModule }, { kind: \"component\", type: i5.Menu, selector: \"p-menu\", inputs: [\"model\", \"popup\", \"style\", \"styleClass\", \"autoZIndex\", \"baseZIndex\", \"showTransitionOptions\", \"hideTransitionOptions\", \"ariaLabel\", \"ariaLabelledBy\", \"id\", \"tabindex\", \"appendTo\"], outputs: [\"onShow\", \"onHide\", \"onBlur\", \"onFocus\"] }, { kind: \"ngmodule\", type: TranslateModule }, { kind: \"component\", type: FormlyForm, selector: \"formly-form\", inputs: [\"form\", \"model\", \"fields\", \"options\"], outputs: [\"modelChange\"] }, { kind: \"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: \"pipe\", type: i6.TranslatePipe, name: \"translate\" }] });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: GenericTable, decorators: [{\n type: Component,\n args: [{ selector: 'lib-generic-table', imports: [CommonModule, TableModule, ButtonModule, MenuModule, NgForOf, TranslateModule, FormlyField, FormlyForm, NgIf, TranslatePipe, Menu, Button, GenericButton], template: \"\\r\\n<div class=\\\"flex-1 last:[&>td]:border-0 rounded-lg border border-surface w-full overflow-auto\\\">\\r\\n <p-table #dt\\r\\n [value]=\\\"data_\\\"\\r\\n [columns]=\\\"columns\\\"\\r\\n [lazy]=\\\"true\\\"\\r\\n [paginator]=\\\"paginator\\\"\\r\\n [rows]=\\\"rows\\\"\\r\\n [first]=\\\"first\\\"\\r\\n [totalRecords]=\\\"totalRecords\\\"\\r\\n [sortField]=\\\"sortField\\\"\\r\\n [sortOrder]=\\\"sortOrder\\\"\\r\\n (onLazyLoad)=\\\"onLazyLoad($event)\\\"\\r\\n [globalFilterFields]=\\\"globalFilterFields\\\"\\r\\n [loading]=\\\"loading\\\"\\r\\n [scrollable]=\\\"true\\\"\\r\\n [scrollHeight]=\\\"scrollHeight\\\"\\r\\n [selectionMode]=\\\"showRowSelectionCheckbox ? 'multiple' : (rowSelectable ? 'single' : undefined)\\\"\\r\\n [(selection)]=\\\"_selection\\\"\\r\\n (onRowSelect)=\\\"onInternalSelectionChange($event)\\\"\\r\\n (onRowUnselect)=\\\"onInternalSelectionChange($event)\\\"\\r\\n (onHeaderCheckboxToggle)=\\\"onInternalSelectionChange($event)\\\"\\r\\n tableLayout=\\\"fixed\\\"\\r\\n [customSort]=\\\"false\\\"\\r\\n (sortFunction)=\\\"customSort($event)\\\"\\r\\n >\\r\\n\\r\\n <ng-template pTemplate=\\\"emptymessage\\\">\\r\\n <tr>\\r\\n <td colspan=\\\"10\\\">\\r\\n <div class=\\\"flex flex-col items-center justify-center py-10 text-center w-full\\\">\\r\\n <i style=\\\"font-size: 2.5rem;\\\" class=\\\"pi pi-inbox text-4xl text-gray-400 mb-4\\\"></i>\\r\\n <p class=\\\"text-gray-500 mb-4\\\">{{ 'NO_DATA_FOUND' | translate }}</p>\\r\\n\\r\\n\\r\\n <ng-container *ngFor=\\\"let btn of addButtonConfigs; trackBy: trackByIdx\\\">\\r\\n @if (!btn.visible || ( btn.visible && btn.visible === true)) {\\r\\n <lib-generic-button\\r\\n [icon]=\\\"btn.icon\\\"\\r\\n [label]=\\\"btn.label | translate\\\"\\r\\n [variant]=\\\"btn.variant\\\"\\r\\n [size]=\\\"btn.size\\\"\\r\\n [model]=\\\"btn.splitActions\\\"\\r\\n [permission]=\\\"btn.permission\\\"\\r\\n (clicked)=\\\"onAddNew.emit()\\\"\\r\\n ></lib-generic-button>\\r\\n }\\r\\n </ng-container>\\r\\n </div>\\r\\n </td>\\r\\n </tr>\\r\\n\\r\\n </ng-template>\\r\\n\\r\\n <ng-template pTemplate=\\\"header\\\" let-columns>\\r\\n <tr>\\r\\n <th *ngIf=\\\"showRowSelectionCheckbox\\\" style=\\\"width: 2rem\\\">\\r\\n <p-tableHeaderCheckbox></p-tableHeaderCheckbox>\\r\\n </th>\\r\\n<th *ngIf=\\\"actions.length > 0\\\" class=\\\"px-4 py-2 text-sm font-medium text-white text-center\\\">\\r\\n {{ 'OPERATIONS' | translate }}\\r\\n </th>\\r\\n <ng-container *ngFor=\\\"let col of columns; trackBy: trackByFn\\\" >\\r\\n <th *ngIf=\\\"col.props?.table?.props?.width; else templateName\\\" [pSortableColumn]=\\\"col.key\\\"\\r\\n class=\\\"px-4 py-2 text-sm font-medium text-white text-center\\\"\\r\\n [style.min-width]=\\\"col.props?.table?.props?.width\\\">\\r\\n {{ col.props?.label | translate }}\\r\\n <p-sortIcon [field]=\\\"col.key\\\"></p-sortIcon>\\r\\n </th>\\r\\n\\r\\n <ng-template #templateName>\\r\\n <th style=\\\"min-width: 150px;\\\" class=\\\"px-4 py-2 text-sm font-medium text-white text-center\\\" [pSortableColumn]=\\\"col.key\\\">\\r\\n {{ col.props?.label | translate }}\\r\\n <p-sortIcon [field]=\\\"col.key\\\"></p-sortIcon>\\r\\n </th>\\r\\n </ng-template>\\r\\n</ng-container>\\r\\n\\r\\n\\r\\n\\r\\n </tr>\\r\\n </ng-template>\\r\\n\\r\\n <ng-template pTemplate=\\\"body\\\" let-rowData let-columns=\\\"columns\\\" let-i=\\\"rowIndex\\\">\\r\\n <tr class=\\\"even:bg-gray-50 hover:bg-gray-100\\\" (click)=\\\"rowSelect.emit(rowData)\\\">\\r\\n <td *ngIf=\\\"showRowSelectionCheckbox\\\" style=\\\"width: 2rem\\\">\\r\\n <p-tableCheckbox [value]=\\\"rowData\\\"></p-tableCheckbox>\\r\\n </td>\\r\\n <td *ngIf=\\\"actions.length > 0\\\" class=\\\"border-t border-gray-200 px-4 py-2 text-center align-middle\\\">\\r\\n <ng-container [ngSwitch]=\\\"actionsMode\\\">\\r\\n <!-- Render buttons -->\\r\\n <ng-container *ngSwitchCase=\\\"'buttons'\\\">\\r\\n <ng-container *ngFor=\\\"let act of sortedActions\\\">\\r\\n <button\\r\\n *ngIf=\\\"act.icon || act.label\\\"\\r\\n pButton\\r\\n [icon]=\\\"act.icon || ''\\\"\\r\\n [label]=\\\"(act.label || '') | translate\\\"\\r\\n [class]=\\\"act.styleClass || ''\\\"\\r\\n class=\\\"p-button-sm mx-1\\\"\\r\\n (click)=\\\"onAction(act, rowData)\\\"\\r\\n ></button>\\r\\n </ng-container>\\r\\n </ng-container>\\r\\n\\r\\n <!-- Render menu -->\\r\\n <ng-container *ngSwitchCase=\\\"'menu'\\\">\\r\\n <p-menu #menu [model]=\\\"getMenuItems(rowData)\\\" [popup]=\\\"true\\\" appendTo=\\\"body\\\">\\r\\n <ng-template let-item pTemplate=\\\"item\\\">\\r\\n <div class=\\\"flex items-center gap-2 px-2 py-1\\\">\\r\\n <i [ngClass]=\\\"item.icon\\\" class=\\\"text-primary-600\\\" *ngIf=\\\"item.icon\\\"></i>\\r\\n <span class=\\\"font-medium\\\">{{ (item.label || '') | translate }}</span>\\r\\n\\r\\n <span *ngIf=\\\"item.badge\\\" class=\\\"ml-auto text-xs bg-red-500 text-white px-2 py-1 rounded\\\">\\r\\n {{ item.badge }}\\r\\n </span>\\r\\n\\r\\n <!-- <p-inputSwitch *ngIf=\\\"item.toggle\\\" [(ngModel)]=\\\"item.toggleValue\\\" class=\\\"ml-auto\\\" /> -->\\r\\n </div>\\r\\n </ng-template>\\r\\n </p-menu>\\r\\n\\r\\n <p-button\\r\\n outlined\\r\\n icon=\\\"pi pi-ellipsis-v\\\"\\r\\n class=\\\"p-button-text p-button-sm\\\"\\r\\n (onClick)=\\\"menu.toggle($event)\\\"\\r\\n ></p-button>\\r\\n </ng-container>\\r\\n </ng-container>\\r\\n\\r\\n </td>\\r\\n <td *ngFor=\\\"let col of rowData.rowFields ; let colIndex = index;trackBy: trackByFn\\\"\\r\\n class=\\\"border-t border-gray-200 px-4 py-2 text-center text-sm text-gray-700\\\"\\r\\n [style.width]=\\\"col.props && col.props['table']\\r\\n && col.props['table']['props'] && col.props['table']['props']['width'] \\\"\\r\\n\\r\\n >\\r\\n\\r\\n<formly-form\\r\\n [model]=\\\"rowData\\\"\\r\\n [form]=\\\"getForm(i, colIndex)\\\"\\r\\n [fields]=\\\"[col]\\\"\\r\\n [options]=\\\"options\\\">\\r\\n </formly-form>\\r\\n </td>\\r\\n\\r\\n </tr>\\r\\n </ng-template>\\r\\n </p-table>\\r\\n\\r\\n</div>\\r\\n\", styles: [\".custom-button-medium{font-size:1.1rem;width:2.5rem;height:2.5rem;line-height:2.5rem;padding:0}.custom-button-gray{color:#333;background-color:transparent;border:none}.custom-button-gray:hover{background-color:#eee;color:#000}.icon-delete{color:red!important}.icon-edit{color:#333}\\n\"] }]\n }], propDecorators: { dt: [{\n type: ViewChild,\n args: ['dt']\n }], data: [{\n type: Input\n }], columns: [{\n type: Input\n }], loading: [{\n type: Input\n }], actions: [{\n type: Input\n }], actionsMode: [{\n type: Input\n }], first: [{\n type: Input\n }], rows: [{\n type: Input\n }], totalRecords: [{\n type: Input\n }], sortField: [{\n type: Input\n }], sortOrder: [{\n type: Input\n }], globalFilterFields: [{\n type: Input\n }], action: [{\n type: Output\n }], pageChange: [{\n type: Output\n }], onAddNew: [{\n type: Output\n }], addButtonConfigs: [{\n type: Input\n }], scrollHeight: [{\n type: Input\n }], rowSelectable: [{\n type: Input\n }], selection: [{\n type: Input\n }], rowSelect: [{\n type: Output\n }], selectionChange: [{\n type: Output\n }], paginator: [{\n type: Input\n }], showRowSelectionCheckbox: [{\n type: Input\n }] } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2VuZXJpYy10YWJsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvbmcudWkuY29yZS9nZW5lcmljLXRhYmxlL3NyYy9saWIvZ2VuZXJpYy10YWJsZS50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvbmcudWkuY29yZS9nZW5lcmljLXRhYmxlL3NyYy9saWIvZ2VuZXJpYy10YWJsZS5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxZQUFZLEVBQUUsU0FBUyxFQUE2QixNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFckgsT0FBTyxFQUFFLEtBQUssRUFBMkUsTUFBTSxlQUFlLENBQUM7QUFDL0csT0FBTyxFQUFFLFlBQVksRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDOUQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM1QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3RELE9BQU8sRUFBRSxVQUFVLEVBQUUsSUFBSSxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQ2hELE9BQU8sRUFBRSxlQUFlLEVBQUUsYUFBYSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDckUsT0FBTyxFQUFFLFdBQVcsRUFBcUIsVUFBVSxFQUFxQixNQUFNLGtCQUFrQixDQUFDO0FBQ2pHLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUUzQyxPQUFPLEVBQUUsU0FBUyxFQUFXLE1BQU0sUUFBUSxDQUFDO0FBQzVDLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSw0Q0FBNEMsQ0FBQztBQUMzRSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQzs7Ozs7Ozs7QUFRdkUsTUFBTSxPQUFPLFlBQVk7SUFFdkIsa0JB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UztzQkFEWixLQUFLO2dCQVlJLFNBQVM7c0JBQWxCLE1BQU07Z0JBR0csZUFBZTtzQkFBeEIsTUFBTTtnQkFJRSxTQUFTO3NCQUFqQixLQUFLO2dCQU9HLHdCQUF3QjtzQkFBaEMsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIE91dHB1dCwgRXZlbnRFbWl0dGVyLCBWaWV3Q2hpbGQsICBPbkNoYW5nZXMsIFNpbXBsZUNoYW5nZXMsIGluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBNZW51SXRlbSwgU29ydEV2ZW50IH0gZnJvbSAncHJpbWVuZy9hcGknO1xyXG5pbXBvcnQgeyBUYWJsZSwgVGFibGVIZWFkZXJDaGVja2JveFRvZ2dsZUV2ZW50LCBUYWJsZUxhenlMb2FkRXZlbnQsIFRhYmxlUm93U2VsZWN0RXZlbnQgfSBmcm9tICdwcmltZW5nL3RhYmxlJztcclxuaW1wb3J0IHsgQ29tbW9uTW9kdWxlLCBOZ0Zvck9mLCBOZ0lmIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHsgVGFibGVNb2R1bGUgfSBmcm9tICdwcmltZW5nL3RhYmxlJztcclxuaW1wb3J0IHsgQnV0dG9uTW9kdWxlLCBCdXR0b24gfSBmcm9tICdwcmltZW5nL2J1dHRvbic7XHJcbmltcG9ydCB7IE1lbnVNb2R1bGUsIE1lbnUgfSBmcm9tICdwcmltZW5nL21lbnUnO1xyXG5pbXBvcnQgeyBUcmFuc2xhdGVNb2R1bGUsIFRyYW5zbGF0ZVBpcGUgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcclxuaW1wb3J0IHsgRm9ybWx5RmllbGQsIEZvcm1seUZpZWxkQ29uZmlnLCBGb3JtbHlGb3JtLCBGb3JtbHlGb3JtT3B0aW9ucyB9IGZyb20gJ0BuZ3gtZm9ybWx5L2NvcmUnO1xyXG5pbXBvcnQgeyBGb3JtR3JvdXAgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IEFjdGlvbkRlZiwgQnV0dG9uQ29uZmlnIH0gZnJvbSAnQGVsaXRlLmZyYW1ld29yay9uZy5jb3JlL21vZGVscyc7XHJcbmltcG9ydCB7IGNsb25lRGVlcCwgZm9yRWFjaCB9IGZyb20gJ2xvZGFzaCc7XHJcbmltcG9ydCB7IEdlbmVyaWNCdXR0b24gfSBmcm9tICdAZWxpdGUuZnJhbWV3b3JrL25nLnVpLmNvcmUvZ2VuZXJpYy1idXR0b24nO1xyXG5pbXBvcnQgeyBQZXJtaXNzaW9uc1NlcnZpY2UgfSBmcm9tICdAZWxpdGUuZnJhbWV3b3JrL25nLmNvcmUvc2VydmljZXMnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdsaWItZ2VuZXJpYy10YWJsZScsXHJcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgVGFibGVNb2R1bGUsIEJ1dHRvbk1vZHVsZSwgTWVudU1vZHVsZSwgTmdGb3JPZixUcmFuc2xhdGVNb2R1bGUsRm9ybWx5RmllbGQsRm9ybWx5Rm9ybSwgTmdJZiwgVHJhbnNsYXRlUGlwZSwgTWVudSwgQnV0dG9uLEdlbmVyaWNCdXR0b25dLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9nZW5lcmljLXRhYmxlLmh0bWwnLFxyXG4gIHN0eWxlVXJsOiAnLi9nZW5lcmljLXRhYmxlLmNzcydcclxufSlcclxuZXhwb3J0IGNsYXNzIEdlbmVyaWNUYWJsZTxUPiAgaW1wbGVtZW50cyBPbkNoYW5nZXN7XHJcblxyXG4gIHBlcm1pc3Npb25zU2VydmljZTpQZXJtaXNzaW9uc1NlcnZpY2UgPSBpbmplY3QoUGVybWlzc2lvbnNTZXJ2aWNlKTtcclxuXHJcbkBWaWV3Q2hpbGQoJ2R0JykgZHQhOiBUYWJsZTtcclxuXHJcbkBJbnB1dCgpIGRhdGE6IGFueVtdID0gW107XHJcbiBkYXRhXzogYW55W10gPSBbXTtcclxuICBASW5wdXQoKSBjb2x1bW5zOiBGb3JtbHlGaWVsZENvbmZpZ1tdID0gW107XHJcbiAgcHJvY2Vzc2VkRmllbGRzOiBhbnlbXSA9IFtdO1xyXG4gIGNvbHVtbnNfOiBGb3JtbHlGaWVsZENvbmZpZ1tdID0gW107XHJcbiAgQElucHV0KCkgbG9hZGluZyA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpIGFjdGlvbnM6IEFjdGlvbkRlZjxUPltdID0gW107XHJcbiAgQElucHV0KCkgYWN0aW9uc01vZGU6ICdidXR0b25zJyB8ICdtZW51JyA9ICdidXR0b25zJztcclxuICBASW5wdXQoKSBmaXJzdCA9IDA7XHJcbiAgQElucHV0KCkgcm93cyA9IDEwO1xyXG4gIEBJbnB1dCgpIHRvdGFsUmVjb3JkcyA9IDA7XHJcbiAgQElucHV0KCkgc29ydEZpZWxkPzogc3RyaW5nO1xyXG4gIEBJbnB1dCgpIHNvcnRPcmRlcjogMSB8IC0xID0gMTtcclxuICBASW5wdXQoKSBnbG9iYWxGaWx0ZXJGaWVsZHM6IHN0cmluZ1tdID0gW107XHJcblxyXG4gIEBPdXRwdXQoKSBhY3Rpb24gPSBuZXcgRXZlbnRFbWl0dGVyPHsgbmFtZTogc3RyaW5nOyByb3c6IFQgfT4oKTtcclxuICBAT3V0cHV0KCkgcGFnZUNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8VGFibGVMYXp5TG9hZEV2ZW50PigpO1xyXG5cclxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLW91dHB1dC1vbi1wcmVmaXhcclxuICBAT3V0cHV0KCkgb25BZGROZXcgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcclxuQElucHV0KCkgYWRkQnV0dG9uQ29uZmlnczogQnV0dG9uQ29uZmlnW10gPSBbXTtcclxuICBASW5wdXQoKSBzY3JvbGxIZWlnaHQgPSAnNDAwcHgnO1xyXG5cclxuIC8vICoq2KzYr9mK2K8qKjog2KrZhdmD2YrZhiDYp9iu2KrZitin2LEg2KfZhNi12YHZiNmBXHJcbiAgLyoqINmB2LnZkdmEINin2K7YqtmK2KfYsSDYp9mE2LXZgdmK2YYgc2luZ2xlL211bHRpcGxlICovXHJcbiAgQElucHV0KCkgcm93U2VsZWN0YWJsZSA9IHRydWU7XHJcbiAgLyoqINmK2K3YqtmB2Lgg2KjYp9mE2LXZgSDYp9mE2YXYrdiv2K8gKi9cclxuICAvL0BJbnB1dCgpIHNlbGVjdGlvbjogVCB8IFRbXSB8IG51bGwgPSBudWxsO1xyXG5cclxuICAvLyDZh9iw2Kcg2LPZitmD2YjZhiDZhdix2KrYqNi32YvYpyDYqNmAIFsoc2VsZWN0aW9uKV0g2YHZiiBwLXRhYmxlXHJcbiAgX3NlbGVjdGlvbjogVCB8IFRbXSB8IG51bGwgPSBudWxsO1xyXG5cclxuXHJcbiAgQElucHV0KClcclxuICBnZXQgc2VsZWN0aW9uKCk6IFQgfCBUW10gfCBudWxsIHtcclxuICAgICAgcmV0dXJuIHRoaXMuX3NlbGVjdGlvbjtcclxuICB9XHJcbiAgc2V0IHNlbGVjdGlvbih2YWw6IFQgfCBUW10gfCBudWxsKSB7XHJcbiAgICAgIHRoaXMuX3NlbGVjdGlvbiA9IHZhbDtcclxuICAgICAgLy8g2YTYpyDYqtmP2LXYr9ixINin2YTYrdiv2Ksg2YfZhtin2Iwg2KjZhCDZgdmKIG9uSW50ZXJuYWxTZWxlY3Rpb25DaGFuZ2Ug2YHZgti3XHJcbiAgfVxyXG4gdHJhY2tCeUlkeChpbmRleDogbnVtYmVyLCBpdGVtOiBhbnkpOiBudW1iZXIge1xyXG4gIHJldHVybiBpbmRleDtcclxuIH1cclxuICAvKiog2YrYtdiv2LEg2KfZhNi12YEg2KfZhNmF2K3Yr9ivINi52YbYryDYp9mE2YbZgtixICovXHJcbiAgQE91dHB1dCgpIHJvd1NlbGVjdCA9IG5ldyBFdmVudEVtaXR0ZXI8VD4oKTtcclxuXHJcbiAgICAgLyoqINmK2LXYr9ixINin2YTYtdmB2YjZgSDYp9mE2YXYrdiv2K/YqSDYudmG2K8g2KfZhNiq2LrZitmK2LEgKNmE2YTYsdio2Lcg2KfZhNir2YbYp9im2YopICovXHJcbiAgQE91dHB1dCgpIHNlbGVjdGlvbkNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8VCB8IFRbXSB8IG51bGw+KCk7XHJcblxyXG5cclxuICAgLyoqINis2K/ZitivOiDYp9mE2KrYrdmD2YUg2KjYuNmH2YjYsSDYp9mE2YAgcGFnaW5hdG9yICovXHJcbiAgQElucHV0KCkgcGFnaW5hdG9yID0gdHJ1ZTtcclxuZm9ybSA9IG5ldyBGb3JtR3JvdXAoe30pO1xyXG5vcHRpb25zOiBGb3JtbHlGb3JtT3B0aW9ucyA9IHt9O1xyXG5cclxuXHJcbiAgLy8gKirYrNiv2YrYryoqOiDZitiq2K3Zg9mFINio2KXYuNmH2KfYsSDYudmF2YjYryDYp9iu2KrZitin2LEg2KfZhNi12YHZiNmBIChjaGVja2JveGVzKVxyXG4gIC8qKiDZitiq2K3Zg9mFINmB2Yog2KXYuNmH2KfYsSDYudmF2YjYryDYp9iu2KrZitin2LEg2KfZhNi12YHZiNmBINin2YTZhdiq2LnYr9iv2Kkg2KjZiNin2LPYt9ipIGNoZWNrYm94ZXMgKi9cclxuICBASW5wdXQoKSBzaG93Um93U2VsZWN0aW9uQ2hlY2tib3ggPSBmYWxzZTtcclxuXHJcblxyXG4gIG9uSW50ZXJuYWxTZWxlY3Rpb25DaGFuZ2UoZXZlbnQ6IFRhYmxlUm93U2VsZWN0RXZlbnQ8VD5cclxuICAgIHwgVGFibGVIZWFkZXJDaGVja2JveFRvZ2dsZUV2ZW50KTogdm9pZCB7XHJcbiAgaWYgKCdkYXRhJyBpbiBldmVudCkge1xyXG4gICAgLy8gUm93IHNlbGVjdC91bnNlbGVjdCAoc2luZ2xlINij2YggbXVsdGlwbGUpXHJcbiAgICBpZiAoQXJyYXkuaXNBcnJheSh0aGlzLl9zZWxlY3Rpb24pKSB7XHJcbiAgICAgIHRoaXMuX3NlbGVjdGlvbiA9IFsuLi50aGlzLl9zZWxlY3Rpb25dOyAvLyDYqtit2K/ZitirINmG2LPYrtipINin2YTZhdi12YHZiNmB2Kkg2LnZhtivINmF2KrYudiv2K9cclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuX3NlbGVjdGlvbiA9IGV2ZW50LmRhdGEgYXMgVDsgLy8g2KfYrtiq2YrYp9ixINmB2LHYr9mKXHJcbiAgICB9XHJcbiAgfSBlbHNlIGlmICgnY2hlY2tlZCcgaW4gZXZlbnQpIHtcclxuICAgIC8vIEhlYWRlciBjaGVja2JveCB0b2dnbGVcclxuICAgIHRoaXMuX3NlbGVjdGlvbiA9IGV2ZW50LmNoZWNrZWQgPyBbLi4udGhpcy5kYXRhXSA6IFtdO1xyXG4gIH1cclxuXHJcbiAgdGhpcy5zZWxlY3Rpb25DaGFuZ2UuZW1pdCh0aGlzLl9zZWxlY3Rpb24pO1xyXG59XHJcblxyXG5cclxuXHJcbmN1c3RvbVNvcnQoZXZlbnQ6IFNvcnRFdmVudCkge1xyXG4gIGV2ZW50LmRhdGE/LnNvcnQoKGRhdGExLCBkYXRhMikgPT4ge1xyXG4gICAgY29uc3QgdmFsdWUxID0gdGhpcy5yZXNvbHZlRmllbGREYXRhKGRhdGExLCBldmVudC5maWVsZCA/PyAnJyk7XHJcbiAgICBjb25zdCB2YWx1ZTIgPSB0aGlzLnJlc29sdmVGaWVsZERhdGEoZGF0YTIsIGV2ZW50LmZpZWxkID8/ICcnKTtcclxuXHJcbiAgICBsZXQgcmVzdWx0ID0gMDtcclxuICAgIGlmICh2YWx1ZTEgPT0gbnVsbCAmJiB2YWx1ZTIgIT0gbnVsbCkgcmVzdWx0ID0gLTE7XHJcbiAgICBlbHNlIGlmICh2YWx1ZTEgIT0gbnVsbCAmJiB2YWx1ZTIgPT0gbnVsbCkgcmVzdWx0ID0gMTtcclxuICAgIGVsc2UgaWYgKHZhbHVlMSA9PSBudWxsICYmIHZhbHVlMiA9PSBudWxsKSByZXN1bHQgPSAwO1xyXG4gICAgZWxzZSBpZiAodHlwZW9mIHZhbHVlMSA9PT0gJ3N0cmluZycgJiYgdHlwZW9mIHZhbHVlMiA9PT0gJ3N0cmluZycpXHJcbiAgICAgIHJlc3VsdCA9IHZhbHVlMS5sb2NhbGVDb21wYXJlKHZhbHVlMik7XHJcbiAgICBlbHNlIHJlc3VsdCA9IHZhbHVlMSA8IHZhbHVlMiA/IC0xIDogdmFsdWUxID4gdmFsdWUyID8gMSA6IDA7XHJcblxyXG4gICAgcmV0dXJuIChldmVudC5vcmRlciA/PyAxKSAqIHJlc3VsdDtcclxuICB9KTtcclxufVxyXG5yZXNvbHZlRmllbGREYXRhKGRhdGE6IGFueSwgZmllbGQ6IHN0cmluZyk6IGFueSB7XHJcbiAgaWYgKCFmaWVsZCkgcmV0dXJuIG51bGw7XHJcbiAgaWYgKGZpZWxkLmluZGV4T2YoJy4nKSA9PT0gLTEpIHJldHVybiBkYXRhW2ZpZWxkXTtcclxuICByZXR1cm4gZmllbGQuc3BsaXQoJy4nKS5yZWR1Y2UoKG9iaiwgcHJvcCkgPT4gKG9iaiA/IG9ialtwcm9wXSA6IG51bGwpLCBkYXRhKTtcclxufVxyXG5cclxuLy8gZ2V0T3JkZXJlZENvbHVtbnMoKTogVGFibGVDb2x1bW5bXSB7XHJcbi8vICAgcmV0dXJuIFsuLi50aGlzLmNvbHVtbnMsXHJcbi8vICAgICAuLi4odGhpcy5zaG93Um93U2VsZWN0aW9uQ2hlY2tib3ggPyBbeyB0eXBlOiAnc2VsZWN0aW9uJywgb3JkZXI6IC0xIH1dIDogW10pLFxyXG4vLyAgICAgeyB0eXBlOiAnb3BlcmF0aW9ucycsIGxhYmVsOiAnT1BFUkFUSU9OUycsIG9yZGVyOiA5OTkgfVxyXG4vLyAgIF0uc29ydCgoYSwgYikgPT4gKGEub3JkZXIgPz8gMCkgLSAoYi5vcmRlciA/PyAwKSk7XHJcbi8vIH1cclxuXHJcbmdldCBzb3J0ZWRBY3Rpb25zKCk6IEFjdGlvbkRlZjxUPltdIHtcclxuICByZXR1cm4gdGhpcy5hY3Rpb25zXHJcbiAgICAuZmlsdGVyKGFjdGlvbiA9PlxyXG4gICAgICAhYWN0aW9uLnBlcm1pc3Npb25zPy5sZW5ndGggfHwgLy8gbm8gcGVybWlzc2lvbnMg4oaSIGFsbG93XHJcbiAgICAgIGFjdGlvbi5wZXJtaXNzaW9ucy5ldmVyeShwID0+IHRoaXMucGVybWlzc2lvbnNTZXJ2aWNlLmlzR3JhbnRlZChwKSkgLy8gYWxsIGdyYW50ZWRcclxuICAgIClcclxuICAgIC5zb3J0KChhLCBiKSA9PiAoYS5vcmRlciA/PyAwKSAtIChiLm9yZGVyID8/IDApKTtcclxufVxyXG5cclxuXHJcbiBvbkFjdGlvbihhY3Q6IEFjdGlvbkRlZjxUPiwgcm93OiBUKSB7XHJcbiAgICBpZiAoYWN0LmFjdGlvbikge1xyXG4gICAgICBhY3QuYWN0aW9uKHJvdyk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLmFjdGlvbi5lbWl0KHsgbmFtZTogYWN0Lm5hbWUsIHJvdyB9KTtcclxuICAgIH1cclxuICB9XHJcbi8vICBjbG9uZUZpZWxkKGZpZWxkOiBhbnkpOiBhbnkge1xyXG4vLyAgIGlmIChmaWVsZCA9PT0gbnVsbCB8fCB0eXBlb2YgZmllbGQgIT09ICdvYmplY3QnKSB7XHJcbi8vICAgICByZXR1cm4gZmllbGQ7XHJcbi8vICAgfVxyXG5cclxuLy8gICAgaWYgKEFycmF5LmlzQXJyYXkoZmllbGQpKSB7XHJcbi8vICAgICAvLyBwcmVzZXJ2ZSBgdGhpc2AgY29udGV4dFxyXG4vLyAgICAgcmV0dXJuIGZpZWxkLm1hcCgoaXRlbSkgPT4gdGhpcy5jbG9uZUZpZWxkKGl0ZW0pKTtcclxuLy8gICB9XHJcbi8vICAgY29uc3QgY2xvbmVkOiBhbnkgPSB7fTtcclxuLy8gICBmb3IgKGNvbnN0IGtleSBvZiBPYmplY3Qua2V5cyhmaWVsZCkpIHtcclxuLy8gICAgIGNsb25lZFtrZXldID0gdGhpcy5jbG9uZUZpZWxkKGZpZWxkW2tleV0pO1xyXG4vLyAgIH1cclxuXHJcbi8vICAgcmV0dXJuIGNsb25lZDtcclxuLy8gfVxyXG5cclxuIC8vIFVzZSBhIG1hcCB0byBzdG9yZSBmb3JtIGdyb3VwcyBmb3IgZWFjaCByb3cgYW5kIGNvbHVtblxyXG4gIHByaXZhdGUgY2VsbEZvcm1zOiBNYXA8c3RyaW5nLCBGb3JtR3JvdXA+ID0gbmV3IE1hcCgpO1xyXG4gIGZvcm1zOiBGb3JtR3JvdXAgPSBuZXcgRm9ybUdyb3VwKHt9KTsgLy8gQSBtYWluIGZvcm0gZm9yIHRoZSB0YWJsZVxyXG5cclxuXHJcbiAgLy8gUmVmYWN0b3JlZCBnZXRGb3JtIHRvIHJldHVybiBhbiBleGlzdGluZyBmb3JtIGluc3RhbmNlXHJcbiAgZ2V0Rm9ybShyb3dJbmRleDogbnVtYmVyLCBjb2xJbmRleDogbnVtYmVyKTogRm9ybUdyb3VwIHtcclxuICAgIGNvbnN0IGtleSA9IGAke3Jvd0luZGV4fV8ke2NvbEluZGV4fWA7XHJcbiAgICBsZXQgZm9ybSA9IHRoaXMuY2VsbEZvcm1zLmdldChrZXkpO1xyXG5cclxuICAgIGlmICghZm9ybSkge1xyXG4gICAgICBmb3JtID0gbmV3IEZvcm1Hcm91cCh7fSk7XHJcbiAgICAgIHRoaXMuY2VsbEZvcm1zLnNldChrZXksIGZvcm0pO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIGZvcm07XHJcbiAgfVxyXG50cmFja0J5Rm4oaW5kZXg6IG51bWJlciwgaXRlbTogYW55KSB7XHJcbiAgcmV0dXJuIGluZGV4OyAvLyBvciBhIHVuaXF1ZSBpZGVudGlmaWVyIGZyb20geW91ciBkYXRhXHJcbn1cclxuIC8vIFRoaXMgbWV0aG9kIGlzIGNhbGxlZCB3aGVuZXZlciBhbnkgQElucHV0KCkgcHJvcGVydHkgY2hhbmdlcy5cclxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XHJcbiAgICAvLyBDaGVjayBpZiB0aGUgJ2RhdGEnIHByb3BlcnR5IGhhcyBjaGFuZ2VkLlxyXG4gICAgaWYgKGNoYW5nZXNbJ2RhdGEnXSkge1xyXG4gICAgICBjb25zdCBjdXJyZW50RGF0YSA9IGNoYW5nZXNbJ2RhdGEnXS5jdXJyZW50VmFsdWU7XHJcbiAgICAgIGNvbnN0IHByZXZpb3VzRGF0YSA9IGNoYW5nZXNbJ2RhdGEnXS5wcmV2aW91c1ZhbHVlO1xyXG5cclxuXHJcbiAgICAgIC8vIEZvciBleGFtcGxlLCB5b3UgY2FuIGNhbGwgYSBtZXRob2QgdG8gcmUtcmVuZGVyIG9yIHByb2Nlc3MgdGhlIGRhdGEuXHJcbiAgICAgIHRoaXMucmVmcmVzaERhdGEoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gb25MYXp5TG9hZChldmVudDogVGFibGVMYXp5TG9hZEV2ZW50KTogdm9pZCB7XHJcbiAgICAvLyBSZWluaXRpYWxpemUgZm9ybXMgb24gbmV3IGRhdGEgbG9hZFxyXG4gICAgLy8gdGhpcy5jZWxsRm9ybXMuY2xlYXIoKTtcclxuICB0aGlzLnJlZnJlc2hEYXRhKCk7XHJcbiAgICB0aGlzLnBhZ2VDaGFuZ2UuZW1pdChldmVudCk7XHJcbiAgfVxyXG5cclxuXHJcbiAgYXBwbHlGaWx0ZXIoZmlsdGVyczogYW55KTogdm9pZCB7XHJcbiAgICAvLyBpZiAoZmllbGQpIHtcclxuICAgIC8vICAgdGhpcy5kdC5maWx0ZXIoZ2xvYmFsLCBmaWVsZCwgJ2NvbnRhaW5zJyk7XHJcbiAgICAvLyB9IGVsc2Uge1xyXG4gICAgLy8gICB0aGlzLmR0LmZpbHRlckdsb2JhbChnbG9iYWwsICdjb250YWlucycpO1xyXG4gICAgLy8gfVxyXG5cclxuICB9XHJcbiAgcmVmcmVzaERhdGEoKXtcclxuICAgICB0aGlzLmRhdGFfID0gdGhpcy5kYXRhLm1hcChyb3dEYXRhID0+IHtcclxuICAgIC8vIENyZWF0ZSBhIG5ldyBhcnJheSBvZiBmaWVsZHMgZm9yIGVhY2ggcm93XHJcbiAgICBjb25zdCByb3dGaWVsZHMgPSB0aGlzLmNvbHVtbnMubWFwKGNvbCA9PiB7XHJcbiAgICAgIHJldHVybiBjbG9uZURlZXAoY29sKTtcclxuICAgIH0pO1xyXG4gICAgLy8gQXR0YWNoIHRoZSB1bmlxdWUgZmllbGRzIHRvIHRoZSByb3cgZGF0YSBvYmplY3RcclxuICAgIHJldHVybiB7XHJcbiAgICAgIC4uLnJvd0RhdGEsXHJcbiAgICAgIHJvd0ZpZWxkczogcm93RmllbGRzXHJcbiAgICB9O1xyXG4gIH0pO1xyXG4gIH1cclxuXHJcbiAgZ2V0TWVudUl0ZW1zKHJvdzogVCk6IE1lbnVJdGVtW10ge1xyXG4gICAgcmV0dXJuIHRoaXMuc29ydGVkQWN0aW9ucy5tYXAoYWN0ID0+ICh7XHJcbiAgICAgIGxhYmVsOiBhY3QubGFiZWwsXHJcbiAgICAgIGljb246IGFjdC5pY29uLFxyXG4gICAgICBjb21tYW5kOiAoKSA9PiB0aGlzLm9uQWN0aW9uKGFjdCwgcm93ICksXHJcbiAgICAgIHN0eWxlQ2xhc3M6IGFjdC5zdHlsZUNsYXNzXHJcbiAgICB9KSk7XHJcbiAgfVxyXG5cclxuIC8vICoq2KzYr9mK2K8qKjog2YrYqtmFINil2LfZhNin2YIg2YfYsNinINi52YbYryDYp9iu2KrZitin2LEg2LXZgVxyXG4gIG9uUm93U2VsZWN0KGV2ZW50OiBUYWJsZVJvd1NlbGVjdEV2ZW50PFQ+KSB7XHJcbiAgICAvLyBkZWJ1Z2dlclxyXG4gICAgaWYgKGV2ZW50LmRhdGEpIHtcclxuICAgICAgdGhpcy5yb3dTZWxlY3QuZW1pdChldmVudC5kYXRhIGFzIFQpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbn1cclxuIiwiXHJcbjxkaXYgY2xhc3M9XCJmbGV4LTEgbGFzdDpbJj50ZF06Ym9yZGVyLTAgcm91bmRlZC1sZyBib3JkZXIgYm9yZGVyLXN1cmZhY2Ugdy1mdWxsIG92ZXJmbG93LWF1dG9cIj5cclxuICA8cC10YWJsZSAjZHRcclxuICBbdmFsdWVdPVwiZGF0YV9cIlxyXG4gIFtjb2x1bW5zXT1cImNvbHVtbnNcIlxyXG4gIFtsYXp5XT1cInRydWVcIlxyXG4gIFtwYWdpbmF0b3JdPVwicGFnaW5hdG9yXCJcclxuICBbcm93c109XCJyb3dzXCJcclxuICBbZmlyc3RdPVwiZmlyc3RcIlxyXG4gICAgW3RvdGFsUmVjb3Jkc109XCJ0b3RhbFJlY29yZHNcIlxyXG4gICAgW3NvcnRGaWVsZF09XCJzb3J0RmllbGRcIlxyXG4gICAgW3NvcnRPcmRlcl09XCJzb3J0T3JkZXJcIlxyXG4gICAgKG9uTGF6eUxvYWQpPVwib25MYXp5TG9hZCgkZXZlbnQpXCJcclxuICAgIFtnbG9iYWxGaWx0ZXJGaWVsZHNdPVwiZ2xvYmFsRmlsdGVyRmllbGRzXCJcclxuICAgIFtsb2FkaW5nXT1cImxvYWRpbmdcIlxyXG4gICAgW3Njcm9sbGFibGVdPVwidHJ1ZVwiXHJcbiAgICBbc2Nyb2xsSGVpZ2h0XT1cInNjcm9sbEhlaWdodFwiXHJcbiAgICBbc2VsZWN0aW9uTW9kZV09XCJzaG93Um93U2VsZWN0aW9uQ2hlY2tib3ggPyAnbXVsdGlwbGUnIDogKHJvd1NlbGVjdGFibGUgPyAnc2luZ2xlJyA6IHVuZGVmaW5lZClcIlxyXG4gICAgWyhzZWxlY3Rpb24pXT1cIl9zZWxlY3Rpb25cIlxyXG4gICAgKG9uUm93U2VsZWN0KT1cIm9uSW50ZXJuYWxTZWxlY3Rpb25DaGFuZ2UoJGV2ZW50KVwiXHJcbiAgICAob25Sb3dVbnNlbGVjdCk9XCJvbkludGVybmFsU2VsZWN0aW9uQ2hhbmdlKCRldmVudClcIlxyXG4gICAgKG9uSGVhZGVyQ2hlY2tib3hUb2dnbGUpPVwib25JbnRlcm5hbFNlbGVjdGlvbkNoYW5nZSgkZXZlbnQpXCJcclxuICAgIHRhYmxlTGF5b3V0PVwiZml4ZWRcIlxyXG4gICAgW2N1c3RvbVNvcnRdPVwiZmFsc2VcIlxyXG4gICAgKHNvcnRGdW5jdGlvbik9XCJjdXN0b21Tb3J0KCRldmVudClcIlxyXG4gICAgPlxyXG5cclxuICAgICA8bmctdGVtcGxhdGUgcFRlbXBsYXRlPVwiZW1wdHltZXNzYWdlXCI+XHJcbiAgICAgIDx0cj5cclxuICAgICAgICA8dGQgY29sc3Bhbj1cIjEwXCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwiZmxleCBmbGV4LWNvbCBpdGVtcy1jZW50ZXIganVzdGlmeS1jZW50ZXIgcHktMTAgdGV4dC1jZW50ZXIgdy1mdWxsXCI+XHJcbiAgICAgIDxpIHN0eWxlPVwiZm9udC1zaXplOiAyLjVyZW07XCIgY2xhc3M9XCJwaSBwaS1pbmJveCB0ZXh0LTR4bCB0ZXh0LWdyYXktNDAwIG1iLTRcIj48L2k+XHJcbiAgICAgIDxwIGNsYXNzPVwidGV4dC1ncmF5LTUwMCBtYi00XCI+e3sgJ05PX0RBVEFfRk9VTkQnIHwgdHJhbnNsYXRlIH19PC9wPlxyXG5cclxuXHJcbiAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGJ0biBvZiBhZGRCdXR0b25Db25maWdzOyB0cmFja0J5OiB0cmFja0J5SWR4XCI+XHJcbiAgICAgICAgQGlmICghYnRuLnZpc2libGUgfHwgKCBidG4udmlzaWJsZSAmJiAgYnRuLnZpc2libGUgPT09IHRydWUpKSB7XHJcbiAgICAgIDxsaWItZ2VuZXJpYy1idXR0b25cclxuICAgICAgICBbaWNvbl09XCJidG4uaWNvblwiXHJcbiAgICAgICAgW2xhYmVsXT1cImJ0bi5sYWJlbCB8IHRyYW5zbGF0ZVwiXHJcbiAgICAgICAgW3ZhcmlhbnRdPVwiYnRuLnZhcmlhbnRcIlxyXG4gICAgICAgIFtzaXplXT1cImJ0bi5zaXplXCJcclxuICAgICAgICBbbW9kZWxdPVwiYnRuLnNwbGl0QWN0aW9uc1wiXHJcbiAgICAgICAgW3Blcm1pc3Npb25dPVwiYnRuLnBlcm1pc3Npb25cIlxyXG4gICAgICAgIChjbGlja2VkKT1cIm9uQWRkTmV3LmVtaXQoKVwiXHJcbiAgICAgID48L2xpYi1nZW5lcmljLWJ1dHRvbj5cclxuICAgICAgICB9XHJcbiAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgIDwvZGl2PlxyXG4gICAgICAgIDwvdGQ+XHJcbiAgICAgIDwvdHI+XHJcblxyXG4gIDwvbmctdGVtcGxhdGU+XHJcblxyXG4gICAgPG5nLXRlbXBsYXRlIHBUZW1wbGF0ZT1cImhlYWRlclwiIGxldC1jb2x1bW5zPlxyXG4gICAgICA8dHI+XHJcbiAgICAgICAgICA8dGggKm5nSWY9XCJzaG93Um93U2VsZWN0aW9uQ2hlY2tib3hcIiBzdHlsZT1cIndpZHRoOiAycmVtXCI+XHJcbiAgICAgICAgPHAtdGFibGVIZWFkZXJDaGVja2JveD48L3AtdGFibGVIZWFkZXJDaGVja2JveD5cclxuICAgICAgPC90aD5cclxuPHRoICpuZ0lmPVwiYWN0aW9ucy5sZW5ndGggPiAwXCIgY2xhc3M9XCJweC00IHB5LTIgdGV4dC1zbSBmb250LW1lZGl1bSB0ZXh0LXdoaXRlIHRleHQtY2VudGVyXCI+XHJcbiAgICAgICAgICAge3sgJ09QRVJBVElPTlMnIHwgdHJhbnNsYXRlIH19XHJcbiAgICAgICAgICA8L3RoPlxyXG4gICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgY29sIG9mIGNvbHVtbnM7IHRyYWNrQnk6IHRyYWNrQnlGblwiID5cclxuICA8dGggKm5nSWY9XCJjb2wucHJvcHM/LnRhYmxlPy5wcm9wcz8ud2lkdGg7IGVsc2UgdGVtcGxhdGVOYW1lXCIgW3BTb3J0YWJsZUNvbHVtbl09XCJjb2wua2V5XCJcclxuICAgICAgY2xhc3M9XCJweC00IHB5LTIgdGV4dC1zbSBmb250LW1lZGl1bSB0ZXh0LXdoaXRlIHRleHQtY2VudGVyXCJcclxuICAgICAgW3N0eWxlLm1pbi13aWR0aF09XCJjb2wucHJvcHM/LnRhYmxlPy5wcm9wcz8ud2lkdGhcIj5cclxuICAgIHt7IGNvbC5wcm9wcz8ubGFiZWwgfCB0cmFuc2xhdGUgfX1cclxuICAgIDxwLXNvcnRJY29uIFtmaWVsZF09XCJjb2wua2V5XCI+PC9wLXNvcnRJY29uPlxyXG4gIDwvdGg+XHJcblxyXG4gIDxuZy10ZW1wbGF0ZSAjdGVtcGxhdGVOYW1lPlxyXG4gICAgPHRoIHN0eWxlPVwibWluLXdpZHRoOiAxNTBweDtcIiBjbGFzcz1cInB4LTQgcHktMiB0ZXh0LXNtIGZvbnQtbWVkaXVtIHRleHQtd2hpdGUgdGV4dC1jZW50ZXJcIiBbcFNvcnRhYmxlQ29sdW1uXT1cImNvbC5rZXlcIj5cclxuICAgICAge3sgY29sLnByb3BzPy5sYWJlbCB8IHRyYW5zbGF0ZSB9fVxyXG4gICAgICA8cC1zb3J0SWNvbiBbZmllbGRdPVwiY29sLmtleVwiPjwvcC1zb3J0SWNvbj5cclxuICAgIDwvdGg+XHJcbiAgPC9uZy10ZW1wbGF0ZT5cclxuPC9uZy1jb250YWluZXI+XHJcblxyXG5cclxuXHJcbiAgICAgIDwvdHI+XHJcbiAgICA8L25nLXRlbXBsYXRlPlxyXG5cclxuICAgIDxuZy10ZW1wbGF0ZSBwVGVtcGxhdGU9XCJib2R5XCIgbGV0LXJvd0RhdGEgbGV0LWNvbHVtbnM9XCJjb2x1bW5zXCIgbGV0LWk9XCJyb3dJbmRleFwiPlxyXG4gICAgICA8dHIgY2xhc3M9XCJldmVuOmJnLWdyYXktNTAgaG92ZXI6YmctZ3JheS0xMDBcIiAoY2xpY2spPVwicm93U2VsZWN0LmVtaXQocm93RGF0YSlcIj5cclxuICAgICAgICA8dGQgKm5nSWY9XCJzaG93Um93U2VsZWN0aW9uQ2hlY2tib3hcIiBzdHlsZT1cIndpZHRoOiAycmVtXCI+XHJcbiAgICAgICAgPHAtdGFibGVDaGVja2JveCBbdmFsdWVdPVwicm93RGF0YVwiPjwvcC10YWJsZUNoZWNrYm94PlxyXG4gICAgICA8L3RkPlxyXG4gICAgICA8dGQgKm5nSWY9XCJhY3Rpb25zLmxlbmd0aCA+IDBcIiBjbGFzcz1cImJvcmRlci10IGJvcmRlci1ncmF5LTIwMCBweC00IHB5LTIgdGV4dC1jZW50ZXIgYWxpZ24tbWlkZGxlXCI+XHJcbiAgICAgICAgICA8bmctY29udGFpbmVyIFtuZ1N3aXRjaF09XCJhY3Rpb25zTW9kZVwiPlxyXG4gICAgICAgICAgICAgICAgICA8IS0tIFJlbmRlciBidXR0b25zIC0tPlxyXG4gICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCInYnV0dG9ucydcIj5cclxuICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBhY3Qgb2Ygc29ydGVkQWN0aW9uc1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cImFjdC5pY29uIHx8IGFjdC5sYWJlbFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHBCdXR0b25cclxuICAgICAgICAgICAgICAgICAgICAgICAgW2ljb25dPVwiYWN0Lmljb24gfHwgJydcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBbbGFiZWxdPVwiKGFjdC5sYWJlbCAgfHwgJycpIHwgdHJhbnNsYXRlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgW2NsYXNzXT1cImFjdC5zdHlsZUNsYXNzIHx8ICcnXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJwLWJ1dHRvbi1zbSBteC0xXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIm9uQWN0aW9uKGFjdCwgcm93RGF0YSlcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgPjwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuXHJcbiAgICAgICAgICAgICAgICAgIDwhLS0gUmVuZGVyIG1lbnUgLS0+XHJcbiAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nU3dpdGNoQ2FzZT1cIidtZW51J1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICA8cC1tZW51ICNtZW51IFttb2RlbF09XCJnZXRNZW51SXRlbXMocm93RGF0YSlcIiBbcG9wdXBdPVwidHJ1ZVwiIGFwcGVuZFRvPVwiYm9keVwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSBsZXQtaXRlbSBwVGVtcGxhdGU9XCJpdGVtXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleCBpdGVtcy1jZW50ZXIgZ2FwLTIgcHgtMiBweS0xXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxpIFtuZ0NsYXNzXT1cIml0ZW0uaWNvblwiIGNsYXNzPVwidGV4dC1wcmltYXJ5LTYwMFwiICpuZ0lmPVwiaXRlbS5pY29uXCI+PC9pPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImZvbnQtbWVkaXVtXCI+e3sgKGl0ZW0ubGFiZWwgIHx8ICcnKSB8IHRyYW5zbGF0ZSB9fTwvc3Bhbj5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuICpuZ0lmPVwiaXRlbS5iYWRnZVwiIGNsYXNzPVwibWwtYXV0byB0ZXh0LXhzIGJnLXJlZC01MDAgdGV4dC13aGl0ZSBweC0yIHB5LTEgcm91bmRlZFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHt7IGl0ZW0uYmFkZ2UgfX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPCEtLSA8cC1pbnB1dFN3aXRjaCAqbmdJZj1cIml0ZW0udG9nZ2xlXCIgWyhuZ01vZGVsKV09XCJpdGVtLnRvZ2dsZVZhbHVlXCIgY2xhc3M9XCJtbC1hdXRvXCIgLz4gLS0+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgICAgICAgICAgICAgICA8L3AtbWVudT5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgPHAtYnV0dG9uXHJcbiAgICAgICAgICAgICAgICAgICAgb3V0bGluZWRcclxuICAgICAgICAgICAgICAgICAgICAgIGljb249XCJwaSBwaS1lbGxpcHNpcy12XCJcclxuICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwicC1idXR0b24tdGV4dCBwLWJ1dHRvbi1zbVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAob25DbGljayk9XCJtZW51LnRvZ2dsZSgkZXZlbnQpXCJcclxuICAgICAgICAgICAgICAgICAgICA+PC9wLWJ1dHRvbj5cclxuICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuXHJcbiAgICAgICAgPC90ZD5cclxuICAgICAgICA8dGQgKm5nRm9yPVwibGV0IGNvbCBvZiByb3dEYXRhLnJvd0ZpZWxkcyA7IGxldCBjb2xJbmRleCA9IGluZGV4O3RyYWNrQnk6IHRyYWNrQnlGblwiXHJcbiAgICBjbGFzcz1cImJvcmRlci10IGJvcmRlci1ncmF5LTIwMCBweC00IHB5LTIgdGV4dC1jZW50ZXIgdGV4dC1zbSB0ZXh0LWdyYXktNzAwXCJcclxuICAgICBbc3R5bGUud2lkdGhdPVwiY29sLnByb3BzICYmIGNvbC5wcm9wc1sndGFibGUnXVxyXG4gICAgICYmIGNvbC5wcm9wc1sndGFibGUnXVsncHJvcHMnXSAmJiBjb2wucHJvcHNbJ3RhYmxlJ11bJ3Byb3BzJ11bJ3dpZHRoJ10gXCJcclxuXHJcbiAgICAgPlxyXG5cclxuPGZvcm1seS1mb3JtXHJcbiAgICAgIFttb2RlbF09XCJyb3dEYXRhXCJcclxuICAgICAgW2Zvcm1dPVwiZ2V0Rm9ybShpLCBjb2xJbmRleClcIlxyXG4gICAgICAgW2ZpZWxkc109XCJbY29sXVwiXHJcbiAgICAgIFtvcHRpb25zXT1cIm9wdGlvbnNcIj5cclxuICAgIDwvZm9ybWx5LWZvcm0+XHJcbiAgICAgICAgPC90ZD5cclxuXHJcbiAgICAgIDwvdHI+XHJcbiAgICA8L25nLXRlbXBsYXRlPlxyXG4gIDwvcC10YWJsZT5cclxuXHJcbjwvZGl2PlxyXG4iXX0=","/**\n * Generated bundle index. Do not edit.\n */\nexport * from './index';\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWxpdGUuZnJhbWV3b3JrLW5nLnVpLmNvcmUtZ2VuZXJpYy10YWJsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYnMvbmcudWkuY29yZS9nZW5lcmljLXRhYmxlL3NyYy9lbGl0ZS5mcmFtZXdvcmstbmcudWkuY29yZS1nZW5lcmljLXRhYmxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsY0FBYyxTQUFTLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEdlbmVyYXRlZCBidW5kbGUgaW5kZXguIERvIG5vdCBlZGl0LlxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vaW5kZXgnO1xuIl19"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;AAGO,MAAM,kBAAkB,CAAC;AAChC,IAAI,OAAO,IAAI,GAAG,EAAE,CAAC,kBAAkB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,kBAAkB,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,CAAC,eAAe,CAAC,QAAQ,EAAE,CAAC;AAC3K,IAAI,OAAO,IAAI,GAAG,EAAE,CAAC,mBAAmB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,kBAAkB,EAAE,OAAO,EAAE,CAAC,YAAY,CAAC,EAAE,CAAC;AACtJ,IAAI,OAAO,IAAI,GAAG,EAAE,CAAC,mBAAmB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,kBAAkB,EAAE,OAAO,EAAE,CAAC,YAAY,CAAC,EAAE,CAAC;AACtJ;AACA,EAAE,CAAC,wBAAwB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,kBAAkB,EAAE,UAAU,EAAE,CAAC;AAC5H,YAAY,IAAI,EAAE,QAAQ;AAC1B,YAAY,IAAI,EAAE,CAAC;AACnB,oBAAoB,OAAO,EAAE,CAAC,YAAY,CAAC;AAC3C,iBAAiB;AACjB,SAAS,CAAC,EAAE,CAAC;;ACMN,MAAM,YAAY,CAAC;AAC1B,IAAI,kBAAkB,GAAG,MAAM,CAAC,kBAAkB,CAAC;AACnD,IAAI,EAAE;AACN,IAAI,IAAI,GAAG,EAAE;AACb,IAAI,KAAK,GAAG,EAAE;AACd,IAAI,OAAO,GAAG,EAAE;AAChB,IAAI,eAAe,GAAG,EAAE;AACxB,IAAI,QAAQ,GAAG,EAAE;AACjB,IAAI,OAAO,GAAG,KAAK;AACnB,IAAI,OAAO,GAAG,EAAE;AAChB,IAAI,WAAW,GAAG,SAAS;AAC3B,IAAI,KAAK,GAAG,CAAC;AACb,IAAI,IAAI,GAAG,EAAE;AACb,IAAI,YAAY,GAAG,CAAC;AACpB,IAAI,SAAS;AACb,IAAI,SAAS,GAAG,CAAC;AACjB,IAAI,kBAAkB,GAAG,EAAE;AAC3B,IAAI,MAAM,GAAG,IAAI,YAAY,EAAE;AAC/B,IAAI,UAAU,GAAG,IAAI,YAAY,EAAE;AACnC;AACA,IAAI,QAAQ,GAAG,IAAI,YAAY,EAAE;AACjC,IAAI,gBAAgB,GAAG,EAAE;AACzB,IAAI,YAAY,GAAG,OAAO;AAC1B;AACA;AACA,IAAI,aAAa,GAAG,IAAI;AACxB;AACA;AACA;AACA,IAAI,UAAU,GAAG,IAAI;AACrB,IAAI,IAAI,SAAS,GAAG;AACpB,QAAQ,OAAO,IAAI,CAAC,UAAU;AAC9B;AACA,IAAI,IAAI,SAAS,CAAC,GAAG,EAAE;AACvB,QAAQ,IAAI,CAAC,UAAU,GAAG,GAAG;AAC7B;AACA;AACA,IAAI,UAAU,CAAC,KAAK,EAAE,IAAI,EAAE;AAC5B,QAAQ,OAAO,KAAK;AACpB;AACA;AACA,IAAI,SAAS,GAAG,IAAI,YAAY,EAAE;AAClC;AACA,IAAI,eAAe,GAAG,IAAI,YAAY,EAAE;AACxC;AACA,IAAI,SAAS,GAAG,IAAI;AACpB,IAAI,IAAI,GAAG,IAAI,SAAS,CAAC,EAAE,CAAC;AAC5B,IAAI,OAAO,GAAG,EAAE;AAChB;AACA;AACA,IAAI,wBAAwB,GAAG,KAAK;AACpC,IAAI,yBAAyB,CAAC,KAAK,EAAE;AACrC,QAAQ,IAAI,MAAM,IAAI,KAAK,EAAE;AAC7B;AACA,YAAY,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE;AAChD,gBAAgB,IAAI,CAAC,UAAU,GAAG,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC;AACvD;AACA,iBAAiB;AACjB,gBAAgB,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC,IAAI,CAAC;AAC7C;AACA;AACA,aAAa,IAAI,SAAS,IAAI,KAAK,EAAE;AACrC;AACA,YAAY,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC,OAAO,GAAG,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE;AACjE;AACA,QAAQ,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC;AAClD;AACA,IAAI,UAAU,CAAC,KAAK,EAAE;AACtB,QAAQ,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,KAAK,EAAE,KAAK,KAAK;AAC3C,YAAY,MAAM,MAAM,GAAG,IAAI,CAAC,gBAAgB,CAAC,KAAK,EAAE,KAAK,CAAC,KAAK,IAAI,EAAE,CAAC;AAC1E,YAAY,MAAM,MAAM,GAAG,IAAI,CAAC,gBAAgB,CAAC,KAAK,EAAE,KAAK,CAAC,KAAK,IAAI,EAAE,CAAC;AAC1E,YAAY,IAAI,MAAM,GAAG,CAAC;AAC1B,YAAY,IAAI,MAAM,IAAI,IAAI,IAAI,MAAM,IAAI,IAAI;AAChD,gBAAgB,MAAM,GAAG,CAAC,CAAC;AAC3B,iBAAiB,IAAI,MAAM,IAAI,IAAI,IAAI,MAAM,IAAI,IAAI;AACrD,gBAAgB,MAAM,GAAG,CAAC;AAC1B,iBAAiB,IAAI,MAAM,IAAI,IAAI,IAAI,MAAM,IAAI,IAAI;AACrD,gBAAgB,MAAM,GAAG,CAAC;AAC1B,iBAAiB,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,OAAO,MAAM,KAAK,QAAQ;AAC7E,gBAAgB,MAAM,GAAG,MAAM,CAAC,aAAa,CAAC,MAAM,CAAC;AACrD;AACA,gBAAgB,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,CAAC,CAAC,GAAG,MAAM,GAAG,MAAM,GAAG,CAAC,GAAG,CAAC;AACvE,YAAY,OAAO,CAAC,KAAK,CAAC,KAAK,IAAI,CAAC,IAAI,MAAM;AAC9C,SAAS,CAAC;AACV;AACA,IAAI,gBAAgB,CAAC,IAAI,EAAE,KAAK,EAAE;AAClC,QAAQ,IAAI,CAAC,KAAK;AAClB,YAAY,OAAO,IAAI;AACvB,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;AACrC,YAAY,OAAO,IAAI,CAAC,KAAK,CAAC;AAC9B,QAAQ,OAAO,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,IAAI,MAAM,GAAG,GAAG,GAAG,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,EAAE,IAAI,CAAC;AACrF;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,IAAI,aAAa,GAAG;AACxB,QAAQ,OAAO,IAAI,CAAC;AACpB,aAAa,MAAM,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE,MAAM;AACzD,YAAY,MAAM,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,IAAI,IAAI,CAAC,kBAAkB,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;AAC/E;AACA,aAAa,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,KAAK,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC;AAC5D;AACA,IAAI,QAAQ,CAAC,GAAG,EAAE,GAAG,EAAE;AACvB,QAAQ,IAAI,GAAG,CAAC,MAAM,EAAE;AACxB,YAAY,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC;AAC3B;AACA,aAAa;AACb,YAAY,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,GAAG,CAAC,IAAI,EAAE,GAAG,EAAE,CAAC;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,SAAS,GAAG,IAAI,GAAG,EAAE;AACzB,IAAI,KAAK,GAAG,IAAI,SAAS,CAAC,EAAE,CAAC,CAAC;AAC9B;AACA,IAAI,OAAO,CAAC,QAAQ,EAAE,QAAQ,EAAE;AAChC,QAAQ,MAAM,GAAG,GAAG,CAAC,EAAE,QAAQ,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC;AAC7C,QAAQ,IAAI,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC;AAC1C,QAAQ,IAAI,CAAC,IAAI,EAAE;AACnB,YAAY,IAAI,GAAG,IAAI,SAAS,CAAC,EAAE,CAAC;AACpC,YAAY,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC;AACzC;AACA,QAAQ,OAAO,IAAI;AACnB;AACA,IAAI,SAAS,CAAC,KAAK,EAAE,IAAI,EAAE;AAC3B,QAAQ,OAAO,KAAK,CAAC;AACrB;AACA;AACA,IAAI,WAAW,CAAC,OAAO,EAAE;AACzB;AACA,QAAQ,IAAI,OAAO,CAAC,MAAM,CAAC,EAAE;AAC7B,YAAY,MAAM,WAAW,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,YAAY;AAC5D,YAAY,MAAM,YAAY,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,aAAa;AAC9D;AACA,YAAY,IAAI,CAAC,WAAW,EAAE;AAC9B;AACA;AACA,IAAI,UAAU,CAAC,KAAK,EAAE;AACtB;AACA;AACA,QAAQ,IAAI,CAAC,WAAW,EAAE;AAC1B,QAAQ,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC;AACnC;AACA,IAAI,WAAW,CAAC,OAAO,EAAE;AACzB;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,WAAW,GAAG;AAClB,QAAQ,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,IAAI;AAC9C;AACA,YAAY,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,IAAI;AACtD,gBAAgB,OAAO,SAAS,CAAC,GAAG,CAAC;AACrC,aAAa,CAAC;AACd;AACA,YAAY,OAAO;AACnB,gBAAgB,GAAG,OAAO;AAC1B,gBAAgB,SAAS,EAAE;AAC3B,aAAa;AACb,SAAS,CAAC;AACV;AACA,IAAI,YAAY,CAAC,GAAG,EAAE;AACtB,QAAQ,OAAO,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,GAAG,KAAK;AAC9C,YAAY,KAAK,EAAE,GAAG,CAAC,KAAK;AAC5B,YAAY,IAAI,EAAE,GAAG,CAAC,IAAI;AAC1B,YAAY,OAAO,EAAE,MAAM,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,GAAG,CAAC;AAClD,YAAY,UAAU,EAAE,GAAG,CAAC;AAC5B,SAAS,CAAC,CAAC;AACX;AACA;AACA,IAAI,WAAW,CAAC,KAAK,EAAE;AACvB;AACA,QAAQ,IAAI,KAAK,CAAC,IAAI,EAAE;AACxB,YAAY,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC;AAC3C;AACA;AACA,IAAI,OAAO,IAAI,GAAG,EAAE,CAAC,kBAAkB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,CAAC,eAAe,CAAC,SAAS,EAAE,CAAC;AACtK,IAAI,OAAO,IAAI,GAAG,EAAE,CAAC,oBAAoB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,YAAY,EAAE,YAAY,EAAE,IAAI,EAAE,QAAQ,EAAE,mBAAmB,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,aAAa,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,YAAY,EAAE,cAAc,EAAE,SAAS,EAAE,WAAW,EAAE,SAAS,EAAE,WAAW,EAAE,kBAAkB,EAAE,oBAAoB,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,YAAY,EAAE,cAAc,EAAE,aAAa,EAAE,eAAe,EAAE,SAAS,EAAE,WAAW,EAAE,SAAS,EAAE,WAAW,EAAE,wBAAwB,EAAE,0BAA0B,EAAE,EAAE,OAAO,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,UAAU,EAAE,YAAY,EAAE,QAAQ,EAAE,UAAU,EAAE,SAAS,EAAE,WAAW,EAAE,eAAe,EAAE,iBAAiB,EAAE,EAAE,WAAW,EAAE,CAAC,EAAE,YAAY,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,IAAI,CAAC,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC,EAAE,aAAa,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE,QAAQ,EAAE,6sMAA6sM,EAAE,MAAM,EAAE,CAAC,6RAA6R,CAAC,EAAE,YAAY,EAAE,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,YAAY,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,EAAE,CAAC,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,EAAE,CAAC,OAAO,EAAE,SAAS,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,EAAE,CAAC,OAAO,EAAE,QAAQ,EAAE,kBAAkB,EAAE,MAAM,EAAE,CAAC,SAAS,EAAE,cAAc,EAAE,eAAe,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,EAAE,CAAC,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC,MAAM,EAAE,UAAU,EAAE,UAAU,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,EAAE,CAAC,QAAQ,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,EAAE,CAAC,UAAU,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,EAAE,CAAC,YAAY,EAAE,QAAQ,EAAE,gBAAgB,EAAE,MAAM,EAAE,CAAC,cAAc,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,WAAW,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,EAAE,CAAC,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,EAAE,CAAC,eAAe,EAAE,aAAa,EAAE,YAAY,EAAE,YAAY,EAAE,iBAAiB,EAAE,WAAW,EAAE,WAAW,EAAE,oBAAoB,EAAE,qBAAqB,EAAE,mBAAmB,EAAE,qBAAqB,EAAE,2BAA2B,EAAE,+BAA+B,EAAE,2BAA2B,EAAE,uBAAuB,EAAE,wBAAwB,EAAE,qBAAqB,EAAE,mBAAmB,EAAE,eAAe,EAAE,kBAAkB,EAAE,UAAU,EAAE,iBAAiB,EAAE,eAAe,EAAE,mBAAmB,EAAE,sBAAsB,EAAE,0BAA0B,EAAE,SAAS,EAAE,kBAAkB,EAAE,eAAe,EAAE,YAAY,EAAE,MAAM,EAAE,gBAAgB,EAAE,oBAAoB,EAAE,cAAc,EAAE,gBAAgB,EAAE,SAAS,EAAE,oBAAoB,EAAE,aAAa,EAAE,cAAc,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,eAAe,EAAE,YAAY,EAAE,cAAc,EAAE,cAAc,EAAE,eAAe,EAAE,uBAAuB,EAAE,sBAAsB,EAAE,oBAAoB,EAAE,aAAa,EAAE,aAAa,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,oBAAoB,EAAE,SAAS,EAAE,aAAa,EAAE,YAAY,EAAE,UAAU,EAAE,YAAY,EAAE,sBAAsB,EAAE,gBAAgB,EAAE,cAAc,EAAE,UAAU,EAAE,cAAc,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,EAAE,eAAe,EAAE,aAAa,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,YAAY,EAAE,iBAAiB,EAAE,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,EAAE,cAAc,EAAE,WAAW,EAAE,WAAW,EAAE,eAAe,EAAE,WAAW,EAAE,WAAW,CAAC,EAAE,OAAO,EAAE,CAAC,4BAA4B,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,aAAa,EAAE,eAAe,EAAE,QAAQ,EAAE,QAAQ,EAAE,UAAU,EAAE,YAAY,EAAE,aAAa,EAAE,eAAe,EAAE,qBAAqB,EAAE,aAAa,EAAE,cAAc,EAAE,cAAc,EAAE,YAAY,EAAE,gBAAgB,EAAE,cAAc,EAAE,wBAAwB,EAAE,cAAc,EAAE,aAAa,EAAE,YAAY,EAAE,aAAa,EAAE,gBAAgB,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,EAAE,CAAC,aAAa,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,EAAE,CAAC,MAAM,EAAE,WAAW,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,EAAE,CAAC,cAAc,EAAE,QAAQ,EAAE,mBAAmB,EAAE,MAAM,EAAE,CAAC,iBAAiB,EAAE,yBAAyB,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,EAAE,CAAC,QAAQ,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,EAAE,CAAC,OAAO,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,EAAE,CAAC,aAAa,EAAE,QAAQ,EAAE,iBAAiB,EAAE,MAAM,EAAE,CAAC,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,EAAE,CAAC,mBAAmB,EAAE,QAAQ,EAAE,uBAAuB,EAAE,MAAM,EAAE,CAAC,UAAU,EAAE,SAAS,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,YAAY,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,EAAE,CAAC,eAAe,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,EAAE,CAAC,SAAS,EAAE,aAAa,EAAE,SAAS,EAAE,UAAU,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,aAAa,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,EAAE,CAAC,MAAM,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,EAAE,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,aAAa,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,eAAe,EAAE,WAAW,EAAE,aAAa,EAAE,WAAW,EAAE,OAAO,CAAC,EAAE,OAAO,EAAE,CAAC,SAAS,EAAE,SAAS,EAAE,QAAQ,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,UAAU,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,EAAE,CAAC,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,YAAY,EAAE,uBAAuB,EAAE,uBAAuB,EAAE,WAAW,EAAE,gBAAgB,EAAE,IAAI,EAAE,UAAU,EAAE,UAAU,CAAC,EAAE,OAAO,EAAE,CAAC,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,SAAS,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,eAAe,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,UAAU,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,EAAE,CAAC,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,SAAS,CAAC,EAAE,OAAO,EAAE,CAAC,aAAa,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,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,MAAM,EAAE,IAAI,EAAE,EAAE,CAAC,aAAa,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC,EAAE,CAAC;AACl8X;AACA,EAAE,CAAC,wBAAwB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,YAAY,EAAE,UAAU,EAAE,CAAC;AACtH,YAAY,IAAI,EAAE,SAAS;AAC3B,YAAY,IAAI,EAAE,CAAC,EAAE,QAAQ,EAAE,mBAAmB,EAAE,OAAO,EAAE,CAAC,YAAY,EAAE,WAAW,EAAE,YAAY,EAAE,UAAU,EAAE,OAAO,EAAE,eAAe,EAAE,WAAW,EAAE,UAAU,EAAE,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE,MAAM,EAAE,aAAa,CAAC,EAAE,QAAQ,EAAE,6sMAA6sM,EAAE,MAAM,EAAE,CAAC,6RAA6R,CAAC,EAAE;AAC3tN,SAAS,CAAC,EAAE,cAAc,EAAE,EAAE,EAAE,EAAE,CAAC;AACnC,gBAAgB,IAAI,EAAE,SAAS;AAC/B,gBAAgB,IAAI,EAAE,CAAC,IAAI;AAC3B,aAAa,CAAC,EAAE,IAAI,EAAE,CAAC;AACvB,gBAAgB,IAAI,EAAE;AACtB,aAAa,CAAC,EAAE,OAAO,EAAE,CAAC;AAC1B,gBAAgB,IAAI,EAAE;AACtB,aAAa,CAAC,EAAE,OAAO,EAAE,CAAC;AAC1B,gBAAgB,IAAI,EAAE;AACtB,aAAa,CAAC,EAAE,OAAO,EAAE,CAAC;AAC1B,gBAAgB,IAAI,EAAE;AACtB,aAAa,CAAC,EAAE,WAAW,EAAE,CAAC;AAC9B,gBAAgB,IAAI,EAAE;AACtB,aAAa,CAAC,EAAE,KAAK,EAAE,CAAC;AACxB,gBAAgB,IAAI,EAAE;AACtB,aAAa,CAAC,EAAE,IAAI,EAAE,CAAC;AACvB,gBAAgB,IAAI,EAAE;AACtB,aAAa,CAAC,EAAE,YAAY,EAAE,CAAC;AAC/B,gBAAgB,IAAI,EAAE;AACtB,aAAa,CAAC,EAAE,SAAS,EAAE,CAAC;AAC5B,gBAAgB,IAAI,EAAE;AACtB,aAAa,CAAC,EAAE,SAAS,EAAE,CAAC;AAC5B,gBAAgB,IAAI,EAAE;AACtB,aAAa,CAAC,EAAE,kBAAkB,EAAE,CAAC;AACrC,gBAAgB,IAAI,EAAE;AACtB,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;AACzB,gBAAgB,IAAI,EAAE;AACtB,aAAa,CAAC,EAAE,UAAU,EAAE,CAAC;AAC7B,gBAAgB,IAAI,EAAE;AACtB,aAAa,CAAC,EAAE,QAAQ,EAAE,CAAC;AAC3B,gBAAgB,IAAI,EAAE;AACtB,aAAa,CAAC,EAAE,gBAAgB,EAAE,CAAC;AACnC,gBAAgB,IAAI,EAAE;AACtB,aAAa,CAAC,EAAE,YAAY,EAAE,CAAC;AAC/B,gBAAgB,IAAI,EAAE;AACtB,aAAa,CAAC,EAAE,aAAa,EAAE,CAAC;AAChC,gBAAgB,IAAI,EAAE;AACtB,aAAa,CAAC,EAAE,SAAS,EAAE,CAAC;AAC5B,gBAAgB,IAAI,EAAE;AACtB,aAAa,CAAC,EAAE,SAAS,EAAE,CAAC;AAC5B,gBAAgB,IAAI,EAAE;AACtB,aAAa,CAAC,EAAE,eAAe,EAAE,CAAC;AAClC,gBAAgB,IAAI,EAAE;AACtB,aAAa,CAAC,EAAE,SAAS,EAAE,CAAC;AAC5B,gBAAgB,IAAI,EAAE;AACtB,aAAa,CAAC,EAAE,wBAAwB,EAAE,CAAC;AAC3C,gBAAgB,IAAI,EAAE;AACtB,aAAa,CAAC,EAAE,EAAE,CAAC;;AC1QnB;AACA;AACA;;;;"}
|
|
@@ -2,6 +2,7 @@ import * as i0 from '@angular/core';
|
|
|
2
2
|
import { EventEmitter } from '@angular/core';
|
|
3
3
|
import * as i1 from '@angular/common';
|
|
4
4
|
import { MenuItem } from 'primeng/api';
|
|
5
|
+
import { ButtonVariant, ButtonSeverity, ButtonSize, IconPosition } from '@elite.framework/ng.core/models';
|
|
5
6
|
|
|
6
7
|
declare class GenericButtonModule {
|
|
7
8
|
static ɵfac: i0.ɵɵFactoryDeclaration<GenericButtonModule, never>;
|
|
@@ -9,10 +10,6 @@ declare class GenericButtonModule {
|
|
|
9
10
|
static ɵinj: i0.ɵɵInjectorDeclaration<GenericButtonModule>;
|
|
10
11
|
}
|
|
11
12
|
|
|
12
|
-
type ButtonVariant = 'text' | 'outlined' | 'raised' | 'rounded';
|
|
13
|
-
type ButtonSeverity = 'success' | 'info' | 'warn' | 'danger' | 'primary' | 'secondary';
|
|
14
|
-
type ButtonSize = 'small' | 'normal' | 'large';
|
|
15
|
-
type IconPosition = 'left' | 'right';
|
|
16
13
|
declare class GenericButton {
|
|
17
14
|
model?: MenuItem[];
|
|
18
15
|
type: 'button' | 'submit' | 'reset';
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@elite.framework/ng.ui.core",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.62",
|
|
4
4
|
"peerDependencies": {
|
|
5
5
|
"@angular/common": "^20.1.0",
|
|
6
6
|
"@angular/core": "^20.1.0"
|
|
@@ -20,14 +20,14 @@
|
|
|
20
20
|
"types": "./attachments/index.d.ts",
|
|
21
21
|
"default": "./fesm2022/elite.framework-ng.ui.core-attachments.mjs"
|
|
22
22
|
},
|
|
23
|
-
"./base-crud": {
|
|
24
|
-
"types": "./base-crud/index.d.ts",
|
|
25
|
-
"default": "./fesm2022/elite.framework-ng.ui.core-base-crud.mjs"
|
|
26
|
-
},
|
|
27
23
|
"./breadcrumb": {
|
|
28
24
|
"types": "./breadcrumb/index.d.ts",
|
|
29
25
|
"default": "./fesm2022/elite.framework-ng.ui.core-breadcrumb.mjs"
|
|
30
26
|
},
|
|
27
|
+
"./base-crud": {
|
|
28
|
+
"types": "./base-crud/index.d.ts",
|
|
29
|
+
"default": "./fesm2022/elite.framework-ng.ui.core-base-crud.mjs"
|
|
30
|
+
},
|
|
31
31
|
"./checkbox": {
|
|
32
32
|
"types": "./checkbox/index.d.ts",
|
|
33
33
|
"default": "./fesm2022/elite.framework-ng.ui.core-checkbox.mjs"
|
|
@@ -48,14 +48,14 @@
|
|
|
48
48
|
"types": "./condition-editor/index.d.ts",
|
|
49
49
|
"default": "./fesm2022/elite.framework-ng.ui.core-condition-editor.mjs"
|
|
50
50
|
},
|
|
51
|
-
"./custom-switch": {
|
|
52
|
-
"types": "./custom-switch/index.d.ts",
|
|
53
|
-
"default": "./fesm2022/elite.framework-ng.ui.core-custom-switch.mjs"
|
|
54
|
-
},
|
|
55
51
|
"./datepicker": {
|
|
56
52
|
"types": "./datepicker/index.d.ts",
|
|
57
53
|
"default": "./fesm2022/elite.framework-ng.ui.core-datepicker.mjs"
|
|
58
54
|
},
|
|
55
|
+
"./custom-switch": {
|
|
56
|
+
"types": "./custom-switch/index.d.ts",
|
|
57
|
+
"default": "./fesm2022/elite.framework-ng.ui.core-custom-switch.mjs"
|
|
58
|
+
},
|
|
59
59
|
"./deactivation-reason": {
|
|
60
60
|
"types": "./deactivation-reason/index.d.ts",
|
|
61
61
|
"default": "./fesm2022/elite.framework-ng.ui.core-deactivation-reason.mjs"
|
|
@@ -96,14 +96,14 @@
|
|
|
96
96
|
"types": "./formly-presets/index.d.ts",
|
|
97
97
|
"default": "./fesm2022/elite.framework-ng.ui.core-formly-presets.mjs"
|
|
98
98
|
},
|
|
99
|
-
"./formly-split-button": {
|
|
100
|
-
"types": "./formly-split-button/index.d.ts",
|
|
101
|
-
"default": "./fesm2022/elite.framework-ng.ui.core-formly-split-button.mjs"
|
|
102
|
-
},
|
|
103
99
|
"./formly-ui": {
|
|
104
100
|
"types": "./formly-ui/index.d.ts",
|
|
105
101
|
"default": "./fesm2022/elite.framework-ng.ui.core-formly-ui.mjs"
|
|
106
102
|
},
|
|
103
|
+
"./formly-split-button": {
|
|
104
|
+
"types": "./formly-split-button/index.d.ts",
|
|
105
|
+
"default": "./fesm2022/elite.framework-ng.ui.core-formly-split-button.mjs"
|
|
106
|
+
},
|
|
107
107
|
"./formly-ui-all": {
|
|
108
108
|
"types": "./formly-ui-all/index.d.ts",
|
|
109
109
|
"default": "./fesm2022/elite.framework-ng.ui.core-formly-ui-all.mjs"
|
|
@@ -144,14 +144,14 @@
|
|
|
144
144
|
"types": "./generic-loadingspinner/index.d.ts",
|
|
145
145
|
"default": "./fesm2022/elite.framework-ng.ui.core-generic-loadingspinner.mjs"
|
|
146
146
|
},
|
|
147
|
-
"./generic-search": {
|
|
148
|
-
"types": "./generic-search/index.d.ts",
|
|
149
|
-
"default": "./fesm2022/elite.framework-ng.ui.core-generic-search.mjs"
|
|
150
|
-
},
|
|
151
147
|
"./generic-search-advanced": {
|
|
152
148
|
"types": "./generic-search-advanced/index.d.ts",
|
|
153
149
|
"default": "./fesm2022/elite.framework-ng.ui.core-generic-search-advanced.mjs"
|
|
154
150
|
},
|
|
151
|
+
"./generic-search": {
|
|
152
|
+
"types": "./generic-search/index.d.ts",
|
|
153
|
+
"default": "./fesm2022/elite.framework-ng.ui.core-generic-search.mjs"
|
|
154
|
+
},
|
|
155
155
|
"./generic-table": {
|
|
156
156
|
"types": "./generic-table/index.d.ts",
|
|
157
157
|
"default": "./fesm2022/elite.framework-ng.ui.core-generic-table.mjs"
|
|
@@ -196,14 +196,14 @@
|
|
|
196
196
|
"types": "./repeat/index.d.ts",
|
|
197
197
|
"default": "./fesm2022/elite.framework-ng.ui.core-repeat.mjs"
|
|
198
198
|
},
|
|
199
|
-
"./select": {
|
|
200
|
-
"types": "./select/index.d.ts",
|
|
201
|
-
"default": "./fesm2022/elite.framework-ng.ui.core-select.mjs"
|
|
202
|
-
},
|
|
203
199
|
"./sidebar-cards": {
|
|
204
200
|
"types": "./sidebar-cards/index.d.ts",
|
|
205
201
|
"default": "./fesm2022/elite.framework-ng.ui.core-sidebar-cards.mjs"
|
|
206
202
|
},
|
|
203
|
+
"./select": {
|
|
204
|
+
"types": "./select/index.d.ts",
|
|
205
|
+
"default": "./fesm2022/elite.framework-ng.ui.core-select.mjs"
|
|
206
|
+
},
|
|
207
207
|
"./sidebar-toggles": {
|
|
208
208
|
"types": "./sidebar-toggles/index.d.ts",
|
|
209
209
|
"default": "./fesm2022/elite.framework-ng.ui.core-sidebar-toggles.mjs"
|