@elite.framework/ng.ui.core 1.0.69 → 1.0.71

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- {"version":3,"file":"elite.framework-ng.ui.core-generic-dialog.mjs","sources":["../tmp-esm2022/generic-dialog/lib/generic-dialog-module.js","../tmp-esm2022/generic-dialog/lib/generic-dialog.js","../tmp-esm2022/generic-dialog/elite.framework-ng.ui.core-generic-dialog.js"],"sourcesContent":["import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport * as i0 from \"@angular/core\";\nexport class GenericDialogModule {\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: GenericDialogModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });\n static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"14.0.0\", version: \"20.1.8\", ngImport: i0, type: GenericDialogModule, imports: [CommonModule] });\n static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: GenericDialogModule, imports: [CommonModule] });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: GenericDialogModule, decorators: [{\n type: NgModule,\n args: [{\n imports: [CommonModule],\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2VuZXJpYy1kaWFsb2ctbW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9uZy51aS5jb3JlL2dlbmVyaWMtZGlhbG9nL3NyYy9saWIvZ2VuZXJpYy1kaWFsb2ctbW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDOztBQUsvQyxNQUFNLE9BQU8sbUJBQW1CO3VHQUFuQixtQkFBbUI7d0dBQW5CLG1CQUFtQixZQUZwQixZQUFZO3dHQUVYLG1CQUFtQixZQUZwQixZQUFZOzsyRkFFWCxtQkFBbUI7a0JBSC9CLFFBQVE7bUJBQUM7b0JBQ1IsT0FBTyxFQUFFLENBQUMsWUFBWSxDQUFDO2lCQUN4QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuXG5ATmdNb2R1bGUoe1xuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlXSxcbn0pXG5leHBvcnQgY2xhc3MgR2VuZXJpY0RpYWxvZ01vZHVsZSB7fVxuIl19","import { Component, EventEmitter, Input, Output, inject, } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { ButtonModule } from 'primeng/button';\nimport { FormsModule, ReactiveFormsModule, UntypedFormGroup, } from '@angular/forms';\nimport { FormlyForm, } from '@ngx-formly/core';\nimport { MessageService } from 'primeng/api';\nimport { DrawerModule, Drawer } from 'primeng/drawer';\nimport { TranslateService, TranslateModule } from '@ngx-translate/core';\nimport { BaseService, SwalService } from '@elite.framework/ng.core/services';\nimport { DialogModule } from 'primeng/dialog';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@angular/common\";\nimport * as i2 from \"primeng/button\";\nimport * as i3 from \"primeng/api\";\nimport * as i4 from \"@angular/forms\";\nimport * as i5 from \"primeng/drawer\";\nimport * as i6 from \"primeng/dialog\";\nimport * as i7 from \"@ngx-translate/core\";\nexport class GenericDialogComponent {\n // الخدمات المحقونة\n translate = inject(TranslateService);\n swalService = inject(SwalService);\n // الحالة الداخلية للفورم\n form = new UntypedFormGroup({});\n options = {};\n formFields_ = [];\n model_ = {};\n // المدخلات (Inputs)\n service = inject(BaseService);\n formFields = [];\n model;\n apiName = '';\n idField = 'id';\n dialogMaxWidth = '40rem'; // أقصى عرض للدايلوج\n displayMode = 'drawer';\n mode = 'full'; // وضع العرض\n forceState = null; // إجبار حالة معينة\n drawerVisible = false; // ظهور الـ drawer\n dialogVisible = false; // ظهور الـ dialog\n isViewMode = false; // وضع المشاهدة فقط\n isEditMode = false; // وضع التعديل\n useConfirmOnSave = false; // استخدام تأكيد عند الحفظ\n loading = false; // حالة التحميل\n errorMsg = ''; // رسالة خطأ مختصرة\n errorMessage = ''; // رسالة خطأ تفصيلية\n beforeSaveTransform; // ⚡ دوال مخصصة قبل الحفظ\n // المدخلات المحسوبة\n get hideTable() {\n return ((this.mode === 'form-only' ||\n (this.forceState && this.mode !== 'table-only')) ??\n false);\n }\n get autoShowForm() {\n return this.mode === 'form-only' && !!this.forceState;\n }\n // المخرجات (Outputs)\n action = new EventEmitter();\n afterSave = new EventEmitter();\n afterDelete = new EventEmitter();\n beforeSave = new EventEmitter();\n beforeDelete = new EventEmitter();\n formCancel = new EventEmitter();\n formInit = new EventEmitter();\n dataLoaded = new EventEmitter();\n selectionChange = new EventEmitter();\n error = new EventEmitter();\n visibleChange = new EventEmitter();\n ngOnInit() {\n if (this.apiName && this.apiName != '') {\n this.service.apiName = this.apiName;\n }\n // Auto-show form when in form-only mode with forceState\n this.formFields_ = this.formFields;\n if (this.autoShowForm) {\n this.initializeFormState();\n }\n }\n ngOnChanges(changes) { }\n // Helper method to open form programmatically\n openForm(mode, model) {\n this.forceState = mode;\n this.formFields_ = this.formFields;\n if (model) {\n this.model = model;\n }\n else {\n this.model = {};\n }\n switch (mode) {\n case 'create':\n this.isEditMode = false;\n this.isViewMode = false;\n this.model = {};\n break;\n case 'edit':\n this.isEditMode = true;\n this.isViewMode = false;\n break;\n case 'view':\n this.isEditMode = false;\n this.isViewMode = true;\n break;\n }\n const modeConfig = typeof this.displayMode === 'string'\n ? this.displayMode\n : this.displayMode[mode] ?? 'drawer';\n // Trigger form opening based on displayMode\n if (modeConfig === 'drawer') {\n this.drawerVisible = true;\n }\n else if (modeConfig === 'dialog') {\n this.dialogVisible = true;\n }\n }\n // Method to close form programmatically\n closeForm() {\n this.drawerVisible = false;\n this.dialogVisible = false;\n this.forceState = null;\n }\n initializeFormState() {\n if (this.forceState && this.mode === 'form-only') {\n this.formFields_ = this.formFields;\n switch (this.forceState) {\n case 'create':\n this.isEditMode = false;\n this.isViewMode = false;\n this.model = {};\n break;\n case 'edit':\n this.isEditMode = true;\n this.isViewMode = false;\n break;\n case 'view':\n this.isEditMode = false;\n this.isViewMode = true;\n break;\n }\n // Auto-show the form\n const modeConfig = typeof this.displayMode === 'string'\n ? this.displayMode\n : this.displayMode[this.forceState] ?? 'drawer';\n // Trigger form opening based on displayMode\n if (modeConfig === 'drawer') {\n this.drawerVisible = true;\n }\n else if (modeConfig === 'dialog') {\n this.dialogVisible = true;\n }\n }\n }\n onSubmit() {\n if (this.form.invalid)\n return;\n const save = () => {\n this.loading = true;\n this.errorMessage = null;\n const id = this.isEditMode ? this.model[this.idField] : null;\n // Emit beforeSave event\n const beforeSaveData = {\n record: { ...this.model },\n isEdit: this.isEditMode,\n };\n this.beforeSave.emit(beforeSaveData);\n // Allow parent to modify data before save\n let recordToSave = this.beforeSaveTransform\n ? this.beforeSaveTransform(beforeSaveData.record, this.isEditMode)\n : beforeSaveData.record;\n const operation$ = this.isEditMode\n ? this.service.update(id, recordToSave)\n : this.service.create(recordToSave);\n operation$.subscribe({\n next: (response) => {\n this.loading = false;\n // ✅ رسالة نجاح\n this.swalService.success(this.isEditMode ? 'تم التعديل بنجاح' : 'تم الحفظ بنجاح');\n // Emit afterSave event\n this.afterSave.emit({\n record: recordToSave,\n isEdit: this.isEditMode,\n response: response,\n });\n this.visibleChange.emit(false);\n this.closeForm();\n if (this.mode != 'form-only') {\n }\n },\n error: (error) => {\n // ❌ ما نعرض رسالة خطأ هنا لأن الـ interceptor يتكفل فيها\n this.loading = false;\n this.error.emit({ error: error, context: 'save' });\n },\n });\n };\n if (this.useConfirmOnSave) {\n this.swalService\n .confirm(this.isEditMode ? 'تأكيد التعديل' : 'تأكيد الحفظ', this.isEditMode\n ? 'هل تريد حفظ التعديلات على هذا السجل؟'\n : 'هل تريد حفظ هذا السجل؟', 'نعم', 'إلغاء')\n .then((result) => {\n if (result.isConfirmed) {\n save();\n }\n });\n }\n else {\n save();\n }\n }\n /** New cancel method for form-only mode */\n onCancel() {\n this.visibleChange.emit(false);\n // Emit cancel event for parent component to handle navigation\n this.action.emit({ name: 'cancel', row: null });\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: GenericDialogComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });\n static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.1.8\", type: GenericDialogComponent, isStandalone: true, selector: \"app-generic-dialog\", inputs: { form: \"form\", service: \"service\", formFields: \"formFields\", model: \"model\", apiName: \"apiName\", idField: \"idField\", dialogMaxWidth: \"dialogMaxWidth\", displayMode: \"displayMode\", mode: \"mode\", forceState: \"forceState\", drawerVisible: \"drawerVisible\", dialogVisible: \"dialogVisible\", isViewMode: \"isViewMode\", isEditMode: \"isEditMode\", useConfirmOnSave: \"useConfirmOnSave\", loading: \"loading\", errorMsg: \"errorMsg\", errorMessage: \"errorMessage\", beforeSaveTransform: \"beforeSaveTransform\", hideTable: \"hideTable\", autoShowForm: \"autoShowForm\" }, outputs: { action: \"action\", afterSave: \"afterSave\", afterDelete: \"afterDelete\", beforeSave: \"beforeSave\", beforeDelete: \"beforeDelete\", formCancel: \"formCancel\", formInit: \"formInit\", dataLoaded: \"dataLoaded\", selectionChange: \"selectionChange\", error: \"error\", visibleChange: \"visibleChange\" }, providers: [MessageService], usesOnChanges: true, ngImport: i0, template: \"<!-- Drawer -->\\r\\n@if (((typeof displayMode === 'string' ? displayMode : isEditMode ?\\r\\ndisplayMode['edit'] : isViewMode === false ? displayMode['add'] :\\r\\ndisplayMode['view']) === 'drawer') && (drawerVisible || (autoShowForm &&\\r\\ndisplayMode === 'drawer'))) {\\r\\n<p-drawer\\r\\n [(visible)]=\\\"drawerVisible\\\"\\r\\n [closable]=\\\"true\\\"\\r\\n [dismissible]=\\\"false\\\"\\r\\n [closeOnEscape]=\\\"true\\\"\\r\\n (visibleChange)=\\\"visibleChange.emit($event)\\\"\\r\\n [styleClass]=\\\"mode === 'form-only' && forceState === 'view' ? '!w-full md:!w-80 lg:!w-[40rem] !h-full' : '!w-full md:!w-80 lg:!w-[40rem]'\\\"\\r\\n [modal]=\\\"mode !== 'form-only'\\\"\\r\\n [blockScroll]=\\\"mode !== 'form-only'\\\"\\r\\n>\\r\\n <ng-template pTemplate=\\\"header\\\">\\r\\n <span class=\\\"font-bold text-lg\\\">\\r\\n {{ isEditMode ? ('UPDATE' | translate): isViewMode === false ? ('ADD' |\\r\\n translate): ('VIEW' | translate) }}\\r\\n </span>\\r\\n </ng-template>\\r\\n <!-- (ngSubmit)=\\\"onSubmit()\\\" -->\\r\\n <form *ngIf=\\\"form\\\" [formGroup]=\\\"form\\\" class=\\\"p-4\\\">\\r\\n <formly-form\\r\\n [form]=\\\"form\\\"\\r\\n [fields]=\\\"formFields_\\\"\\r\\n [model]=\\\"model\\\"\\r\\n [options]=\\\"options\\\"\\r\\n ></formly-form>\\r\\n </form>\\r\\n\\r\\n <ng-template pTemplate=\\\"footer\\\" *ngIf=\\\"!isViewMode\\\">\\r\\n <div class=\\\"flex justify-end gap-2\\\">\\r\\n <button\\r\\n pButton\\r\\n [label]=\\\"isEditMode ? ('UPDATE' | translate) : ('SAVE' | translate)\\\"\\r\\n type=\\\"button\\\"\\r\\n (click)=\\\"onSubmit()\\\"\\r\\n [disabled]=\\\"loading || form.invalid\\\"\\r\\n [loading]=\\\"loading\\\"\\r\\n ></button>\\r\\n <button\\r\\n pButton\\r\\n label=\\\"{{ 'CANCEL' | translate }}\\\"\\r\\n severity=\\\"danger\\\"\\r\\n (click)=\\\"visibleChange.emit(false);closeForm();\\\"\\r\\n ></button>\\r\\n </div>\\r\\n </ng-template>\\r\\n</p-drawer>\\r\\n}\\r\\n<!-- Dialog -->\\r\\n@if (((typeof displayMode === 'string' ? displayMode : isEditMode ?\\r\\ndisplayMode['edit'] : isViewMode === false ? displayMode['add'] :\\r\\ndisplayMode['view']) === 'dialog') && (dialogVisible || (autoShowForm &&\\r\\ndisplayMode === 'dialog'))) {\\r\\n<p-dialog\\r\\n [(visible)]=\\\"dialogVisible\\\"\\r\\n [closeOnEscape]=\\\"true\\\"\\r\\n (visibleChange)=\\\"visibleChange.emit($event)\\\"\\r\\n [header]=\\\"isEditMode ? ('UPDATE' | translate) : isViewMode === false ? ('ADD'| translate) : ('VIEW'| translate)\\\"\\r\\n [modal]=\\\"mode !== 'form-only'\\\"\\r\\n [style]=\\\"mode === 'form-only' && forceState === 'view' ? { width: '100vw', height: '100vh', maxWidth: 'none' } : { width: '95vw', maxWidth: dialogMaxWidth }\\\"\\r\\n [closable]=\\\"mode !== 'form-only'\\\"\\r\\n [dismissableMask]=\\\"mode !== 'form-only'\\\"\\r\\n>\\r\\n <!-- [breakpoints]=\\\"{ '1200px': '50vw', '768px': '70vw', '560px': '95vw' }\\\" -->\\r\\n <div class=\\\"relative\\\">\\r\\n <div\\r\\n *ngIf=\\\"isViewMode\\\"\\r\\n class=\\\"absolute inset-0 z-10 bg-white/50 pointer-events-auto rounded-md\\\"\\r\\n ></div>\\r\\n <form *ngIf=\\\"form\\\" [formGroup]=\\\"form\\\" class=\\\"p-4\\\">\\r\\n <formly-form\\r\\n [form]=\\\"form\\\"\\r\\n [fields]=\\\"formFields_\\\"\\r\\n [model]=\\\"model\\\"\\r\\n [options]=\\\"options\\\"\\r\\n ></formly-form>\\r\\n </form>\\r\\n </div>\\r\\n\\r\\n <ng-template pTemplate=\\\"footer\\\">\\r\\n <div class=\\\"flex justify-end gap-2\\\">\\r\\n <button\\r\\n *ngIf=\\\"!isViewMode\\\"\\r\\n pButton\\r\\n [label]=\\\"isEditMode ? ('UPDATE' | translate) : ('SAVE' | translate)\\\"\\r\\n type=\\\"button\\\"\\r\\n [disabled]=\\\"loading || form.invalid\\\"\\r\\n [loading]=\\\"loading\\\"\\r\\n (click)=\\\"onSubmit()\\\"\\r\\n ></button>\\r\\n <button\\r\\n pButton\\r\\n label=\\\"{{ isViewMode ? ('CLOSE' | translate) : ('CANCEL' | translate) }}\\\"\\r\\n severity=\\\"secondary\\\"\\r\\n (click)=\\\"visibleChange.emit(false);closeForm();\\\"\\r\\n ></button>\\r\\n </div>\\r\\n </ng-template>\\r\\n</p-dialog>\\r\\n}\\r\\n\\r\\n<!-- Inline Form for form-only mode -->\\r\\n@if (mode === 'form-only' && displayMode === 'inline'){\\r\\n<div class=\\\"w-full\\\">\\r\\n <form *ngIf=\\\"form\\\" [formGroup]=\\\"form\\\">\\r\\n <formly-form\\r\\n [form]=\\\"form\\\"\\r\\n [fields]=\\\"formFields_\\\"\\r\\n [model]=\\\"model\\\"\\r\\n [options]=\\\"options\\\"\\r\\n ></formly-form>\\r\\n </form>\\r\\n</div>\\r\\n}\\r\\n\", styles: [\"\"], dependencies: [{ kind: \"ngmodule\", type: CommonModule }, { 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: \"directive\", type: i3.PrimeTemplate, selector: \"[pTemplate]\", inputs: [\"type\", \"pTemplate\"] }, { kind: \"component\", type: FormlyForm, selector: \"formly-form\", inputs: [\"form\", \"model\", \"fields\", \"options\"], outputs: [\"modelChange\"] }, { kind: \"ngmodule\", type: FormsModule }, { kind: \"directive\", type: i4.ɵNgNoValidate, selector: \"form:not([ngNoForm]):not([ngNativeValidate])\" }, { kind: \"directive\", type: i4.NgControlStatusGroup, selector: \"[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]\" }, { kind: \"ngmodule\", type: ReactiveFormsModule }, { kind: \"directive\", type: i4.FormGroupDirective, selector: \"[formGroup]\", inputs: [\"formGroup\"], outputs: [\"ngSubmit\"], exportAs: [\"ngForm\"] }, { kind: \"ngmodule\", type: DrawerModule }, { kind: \"component\", type: i5.Drawer, selector: \"p-drawer\", inputs: [\"appendTo\", \"blockScroll\", \"style\", \"styleClass\", \"ariaCloseLabel\", \"autoZIndex\", \"baseZIndex\", \"modal\", \"closeButtonProps\", \"dismissible\", \"showCloseIcon\", \"closeOnEscape\", \"transitionOptions\", \"visible\", \"position\", \"fullScreen\", \"header\", \"maskStyle\", \"closable\"], outputs: [\"onShow\", \"onHide\", \"visibleChange\"] }, { kind: \"ngmodule\", type: TranslateModule }, { kind: \"ngmodule\", type: DialogModule }, { kind: \"component\", type: i6.Dialog, selector: \"p-dialog\", inputs: [\"header\", \"draggable\", \"resizable\", \"contentStyle\", \"contentStyleClass\", \"modal\", \"closeOnEscape\", \"dismissableMask\", \"rtl\", \"closable\", \"breakpoints\", \"styleClass\", \"maskStyleClass\", \"maskStyle\", \"showHeader\", \"blockScroll\", \"autoZIndex\", \"baseZIndex\", \"minX\", \"minY\", \"focusOnShow\", \"maximizable\", \"keepInViewport\", \"focusTrap\", \"transitionOptions\", \"closeIcon\", \"closeAriaLabel\", \"closeTabindex\", \"minimizeIcon\", \"maximizeIcon\", \"closeButtonProps\", \"maximizeButtonProps\", \"visible\", \"style\", \"position\", \"role\", \"appendTo\", \"content\", \"contentTemplate\", \"footerTemplate\", \"closeIconTemplate\", \"maximizeIconTemplate\", \"minimizeIconTemplate\", \"headlessTemplate\"], outputs: [\"onShow\", \"onHide\", \"visibleChange\", \"onResizeInit\", \"onResizeEnd\", \"onDragEnd\", \"onMaximize\"] }, { kind: \"pipe\", type: i7.TranslatePipe, name: \"translate\" }] });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: GenericDialogComponent, decorators: [{\n type: Component,\n args: [{ standalone: true, selector: 'app-generic-dialog', imports: [\n CommonModule,\n ButtonModule,\n FormlyForm,\n FormsModule,\n ReactiveFormsModule,\n DrawerModule,\n TranslateModule,\n Drawer,\n DialogModule,\n ], providers: [MessageService], template: \"<!-- Drawer -->\\r\\n@if (((typeof displayMode === 'string' ? displayMode : isEditMode ?\\r\\ndisplayMode['edit'] : isViewMode === false ? displayMode['add'] :\\r\\ndisplayMode['view']) === 'drawer') && (drawerVisible || (autoShowForm &&\\r\\ndisplayMode === 'drawer'))) {\\r\\n<p-drawer\\r\\n [(visible)]=\\\"drawerVisible\\\"\\r\\n [closable]=\\\"true\\\"\\r\\n [dismissible]=\\\"false\\\"\\r\\n [closeOnEscape]=\\\"true\\\"\\r\\n (visibleChange)=\\\"visibleChange.emit($event)\\\"\\r\\n [styleClass]=\\\"mode === 'form-only' && forceState === 'view' ? '!w-full md:!w-80 lg:!w-[40rem] !h-full' : '!w-full md:!w-80 lg:!w-[40rem]'\\\"\\r\\n [modal]=\\\"mode !== 'form-only'\\\"\\r\\n [blockScroll]=\\\"mode !== 'form-only'\\\"\\r\\n>\\r\\n <ng-template pTemplate=\\\"header\\\">\\r\\n <span class=\\\"font-bold text-lg\\\">\\r\\n {{ isEditMode ? ('UPDATE' | translate): isViewMode === false ? ('ADD' |\\r\\n translate): ('VIEW' | translate) }}\\r\\n </span>\\r\\n </ng-template>\\r\\n <!-- (ngSubmit)=\\\"onSubmit()\\\" -->\\r\\n <form *ngIf=\\\"form\\\" [formGroup]=\\\"form\\\" class=\\\"p-4\\\">\\r\\n <formly-form\\r\\n [form]=\\\"form\\\"\\r\\n [fields]=\\\"formFields_\\\"\\r\\n [model]=\\\"model\\\"\\r\\n [options]=\\\"options\\\"\\r\\n ></formly-form>\\r\\n </form>\\r\\n\\r\\n <ng-template pTemplate=\\\"footer\\\" *ngIf=\\\"!isViewMode\\\">\\r\\n <div class=\\\"flex justify-end gap-2\\\">\\r\\n <button\\r\\n pButton\\r\\n [label]=\\\"isEditMode ? ('UPDATE' | translate) : ('SAVE' | translate)\\\"\\r\\n type=\\\"button\\\"\\r\\n (click)=\\\"onSubmit()\\\"\\r\\n [disabled]=\\\"loading || form.invalid\\\"\\r\\n [loading]=\\\"loading\\\"\\r\\n ></button>\\r\\n <button\\r\\n pButton\\r\\n label=\\\"{{ 'CANCEL' | translate }}\\\"\\r\\n severity=\\\"danger\\\"\\r\\n (click)=\\\"visibleChange.emit(false);closeForm();\\\"\\r\\n ></button>\\r\\n </div>\\r\\n </ng-template>\\r\\n</p-drawer>\\r\\n}\\r\\n<!-- Dialog -->\\r\\n@if (((typeof displayMode === 'string' ? displayMode : isEditMode ?\\r\\ndisplayMode['edit'] : isViewMode === false ? displayMode['add'] :\\r\\ndisplayMode['view']) === 'dialog') && (dialogVisible || (autoShowForm &&\\r\\ndisplayMode === 'dialog'))) {\\r\\n<p-dialog\\r\\n [(visible)]=\\\"dialogVisible\\\"\\r\\n [closeOnEscape]=\\\"true\\\"\\r\\n (visibleChange)=\\\"visibleChange.emit($event)\\\"\\r\\n [header]=\\\"isEditMode ? ('UPDATE' | translate) : isViewMode === false ? ('ADD'| translate) : ('VIEW'| translate)\\\"\\r\\n [modal]=\\\"mode !== 'form-only'\\\"\\r\\n [style]=\\\"mode === 'form-only' && forceState === 'view' ? { width: '100vw', height: '100vh', maxWidth: 'none' } : { width: '95vw', maxWidth: dialogMaxWidth }\\\"\\r\\n [closable]=\\\"mode !== 'form-only'\\\"\\r\\n [dismissableMask]=\\\"mode !== 'form-only'\\\"\\r\\n>\\r\\n <!-- [breakpoints]=\\\"{ '1200px': '50vw', '768px': '70vw', '560px': '95vw' }\\\" -->\\r\\n <div class=\\\"relative\\\">\\r\\n <div\\r\\n *ngIf=\\\"isViewMode\\\"\\r\\n class=\\\"absolute inset-0 z-10 bg-white/50 pointer-events-auto rounded-md\\\"\\r\\n ></div>\\r\\n <form *ngIf=\\\"form\\\" [formGroup]=\\\"form\\\" class=\\\"p-4\\\">\\r\\n <formly-form\\r\\n [form]=\\\"form\\\"\\r\\n [fields]=\\\"formFields_\\\"\\r\\n [model]=\\\"model\\\"\\r\\n [options]=\\\"options\\\"\\r\\n ></formly-form>\\r\\n </form>\\r\\n </div>\\r\\n\\r\\n <ng-template pTemplate=\\\"footer\\\">\\r\\n <div class=\\\"flex justify-end gap-2\\\">\\r\\n <button\\r\\n *ngIf=\\\"!isViewMode\\\"\\r\\n pButton\\r\\n [label]=\\\"isEditMode ? ('UPDATE' | translate) : ('SAVE' | translate)\\\"\\r\\n type=\\\"button\\\"\\r\\n [disabled]=\\\"loading || form.invalid\\\"\\r\\n [loading]=\\\"loading\\\"\\r\\n (click)=\\\"onSubmit()\\\"\\r\\n ></button>\\r\\n <button\\r\\n pButton\\r\\n label=\\\"{{ isViewMode ? ('CLOSE' | translate) : ('CANCEL' | translate) }}\\\"\\r\\n severity=\\\"secondary\\\"\\r\\n (click)=\\\"visibleChange.emit(false);closeForm();\\\"\\r\\n ></button>\\r\\n </div>\\r\\n </ng-template>\\r\\n</p-dialog>\\r\\n}\\r\\n\\r\\n<!-- Inline Form for form-only mode -->\\r\\n@if (mode === 'form-only' && displayMode === 'inline'){\\r\\n<div class=\\\"w-full\\\">\\r\\n <form *ngIf=\\\"form\\\" [formGroup]=\\\"form\\\">\\r\\n <formly-form\\r\\n [form]=\\\"form\\\"\\r\\n [fields]=\\\"formFields_\\\"\\r\\n [model]=\\\"model\\\"\\r\\n [options]=\\\"options\\\"\\r\\n ></formly-form>\\r\\n </form>\\r\\n</div>\\r\\n}\\r\\n\" }]\n }], propDecorators: { form: [{\n type: Input\n }], service: [{\n type: Input\n }], formFields: [{\n type: Input\n }], model: [{\n type: Input\n }], apiName: [{\n type: Input\n }], idField: [{\n type: Input\n }], dialogMaxWidth: [{\n type: Input\n }], displayMode: [{\n type: Input\n }], mode: [{\n type: Input\n }], forceState: [{\n type: Input\n }], drawerVisible: [{\n type: Input\n }], dialogVisible: [{\n type: Input\n }], isViewMode: [{\n type: Input\n }], isEditMode: [{\n type: Input\n }], useConfirmOnSave: [{\n type: Input\n }], loading: [{\n type: Input\n }], errorMsg: [{\n type: Input\n }], errorMessage: [{\n type: Input\n }], beforeSaveTransform: [{\n type: Input\n }], hideTable: [{\n type: Input\n }], autoShowForm: [{\n type: Input\n }], action: [{\n type: Output\n }], afterSave: [{\n type: Output\n }], afterDelete: [{\n type: Output\n }], beforeSave: [{\n type: Output\n }], beforeDelete: [{\n type: Output\n }], formCancel: [{\n type: Output\n }], formInit: [{\n type: Output\n }], dataLoaded: [{\n type: Output\n }], selectionChange: [{\n type: Output\n }], error: [{\n type: Output\n }], visibleChange: [{\n type: Output\n }] } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2VuZXJpYy1kaWFsb2cuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL25nLnVpLmNvcmUvZ2VuZXJpYy1kaWFsb2cvc3JjL2xpYi9nZW5lcmljLWRpYWxvZy50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvbmcudWkuY29yZS9nZW5lcmljLWRpYWxvZy9zcmMvbGliL2dlbmVyaWMtZGlhbG9nLmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFNBQVMsRUFDVCxZQUFZLEVBQ1osS0FBSyxFQUVMLE1BQU0sRUFHTixNQUFNLEdBQ1AsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM5QyxPQUFPLEVBQ0wsV0FBVyxFQUNYLG1CQUFtQixFQUNuQixnQkFBZ0IsR0FDakIsTUFBTSxnQkFBZ0IsQ0FBQztBQUN4QixPQUFPLEVBRUwsVUFBVSxHQUVYLE1BQU0sa0JBQWtCLENBQUM7QUFDMUIsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUM3QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3RELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxlQUFlLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN4RSxPQUFPLEVBQUUsV0FBVyxFQUFFLFdBQVcsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQzdFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7Ozs7Ozs7O0FBb0I5QyxNQUFNLE9BQU8sc0JBQXNCO0lBQ2pDLG1CQUFtQjtJQUNuQixTQUFTLEdBQXFCLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO0lBQy9DLFdBQVcsR0FBRyxNQUFNLENBQUMsV0FBVyxDQUFDLENBQUM7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c0JBQWYsS0FBSztnQkFDRyxPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csY0FBYztzQkFBdEIsS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLO2dCQVdHLElBQUk7c0JBQVosS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLO2dCQUNHLGFBQWE7c0JBQXJCLEtBQUs7Z0JBQ0csYUFBYTtzQkFBckIsS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLO2dCQUNHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0csZ0JBQWdCO3NCQUF4QixLQUFLO2dCQUNHLE9BQU87c0JBQWYsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLFlBQVk7c0JBQXBCLEtBQUs7Z0JBQ0csbUJBQW1CO3NCQUEzQixLQUFLO2dCQUdPLFNBQVM7c0JBQXJCLEtBQUs7Z0JBUU8sWUFBWTtzQkFBeEIsS0FBSztnQkFLSSxNQUFNO3NCQUFmLE1BQU07Z0JBQ0csU0FBUztzQkFBbEIsTUFBTTtnQkFLRyxXQUFXO3NCQUFwQixNQUFNO2dCQUNHLFVBQVU7c0JBQW5CLE1BQU07Z0JBQ0csWUFBWTtzQkFBckIsTUFBTTtnQkFDRyxVQUFVO3NCQUFuQixNQUFNO2dCQUNHLFFBQVE7c0JBQWpCLE1BQU07Z0JBSUcsVUFBVTtzQkFBbkIsTUFBTTtnQkFDRyxlQUFlO3NCQUF4QixNQUFNO2dCQUlHLEtBQUs7c0JBQWQsTUFBTTtnQkFDRyxhQUFhO3NCQUF0QixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuICBDb21wb25lbnQsXHJcbiAgRXZlbnRFbWl0dGVyLFxyXG4gIElucHV0LFxyXG4gIE9uSW5pdCxcclxuICBPdXRwdXQsXHJcbiAgT25DaGFuZ2VzLFxyXG4gIFNpbXBsZUNoYW5nZXMsXHJcbiAgaW5qZWN0LFxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBCdXR0b25Nb2R1bGUgfSBmcm9tICdwcmltZW5nL2J1dHRvbic7XHJcbmltcG9ydCB7XHJcbiAgRm9ybXNNb2R1bGUsXHJcbiAgUmVhY3RpdmVGb3Jtc01vZHVsZSxcclxuICBVbnR5cGVkRm9ybUdyb3VwLFxyXG59IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHtcclxuICBGb3JtbHlGaWVsZENvbmZpZyxcclxuICBGb3JtbHlGb3JtLFxyXG4gIEZvcm1seUZvcm1PcHRpb25zLFxyXG59IGZyb20gJ0BuZ3gtZm9ybWx5L2NvcmUnO1xyXG5pbXBvcnQgeyBNZXNzYWdlU2VydmljZSB9IGZyb20gJ3ByaW1lbmcvYXBpJztcclxuaW1wb3J0IHsgRHJhd2VyTW9kdWxlLCBEcmF3ZXIgfSBmcm9tICdwcmltZW5nL2RyYXdlcic7XHJcbmltcG9ydCB7IFRyYW5zbGF0ZVNlcnZpY2UsIFRyYW5zbGF0ZU1vZHVsZSB9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xyXG5pbXBvcnQgeyBCYXNlU2VydmljZSwgU3dhbFNlcnZpY2UgfSBmcm9tICdAZWxpdGUuZnJhbWV3b3JrL25nLmNvcmUvc2VydmljZXMnO1xyXG5pbXBvcnQgeyBEaWFsb2dNb2R1bGUgfSBmcm9tICdwcmltZW5nL2RpYWxvZyc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzdGFuZGFsb25lOiB0cnVlLFxyXG4gIHNlbGVjdG9yOiAnYXBwLWdlbmVyaWMtZGlhbG9nJyxcclxuICBpbXBvcnRzOiBbXHJcbiAgICBDb21tb25Nb2R1bGUsXHJcbiAgICBCdXR0b25Nb2R1bGUsXHJcbiAgICBGb3JtbHlGb3JtLFxyXG4gICAgRm9ybXNNb2R1bGUsXHJcbiAgICBSZWFjdGl2ZUZvcm1zTW9kdWxlLFxyXG4gICAgRHJhd2VyTW9kdWxlLFxyXG4gICAgVHJhbnNsYXRlTW9kdWxlLFxyXG4gICAgRHJhd2VyLFxyXG4gICAgRGlhbG9nTW9kdWxlLFxyXG4gIF0sXHJcbiAgcHJvdmlkZXJzOiBbTWVzc2FnZVNlcnZpY2VdLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9nZW5lcmljLWRpYWxvZy5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9nZW5lcmljLWRpYWxvZy5jc3MnXSxcclxufSlcclxuZXhwb3J0IGNsYXNzIEdlbmVyaWNEaWFsb2dDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uQ2hhbmdlcyB7XHJcbiAgLy8g2KfZhNiu2K/Zhdin2Kog2KfZhNmF2K3ZgtmI2YbYqVxyXG4gIHRyYW5zbGF0ZTogVHJhbnNsYXRlU2VydmljZSA9IGluamVjdChUcmFuc2xhdGVTZXJ2aWNlKTtcclxuICBwcml2YXRlIHN3YWxTZXJ2aWNlID0gaW5qZWN0KFN3YWxTZXJ2aWNlKTtcclxuXHJcbiAgLy8g2KfZhNit2KfZhNipINin2YTYr9in2K7ZhNmK2Kkg2YTZhNmB2YjYsdmFXHJcbiAgQElucHV0KCkgZm9ybSA9IG5ldyBVbnR5cGVkRm9ybUdyb3VwKHt9KTtcclxuICBvcHRpb25zOiBGb3JtbHlGb3JtT3B0aW9ucyA9IHt9O1xyXG4gIGZvcm1GaWVsZHNfOiBGb3JtbHlGaWVsZENvbmZpZ1tdID0gW107XHJcbiAgbW9kZWxfOiBhbnkgPSB7fTtcclxuXHJcbiAgLy8g2KfZhNmF2K/YrtmE2KfYqiAoSW5wdXRzKVxyXG4gIEBJbnB1dCgpIHNlcnZpY2U6IEJhc2VTZXJ2aWNlID0gaW5qZWN0KEJhc2VTZXJ2aWNlKTtcclxuICBASW5wdXQoKSBmb3JtRmllbGRzOiBGb3JtbHlGaWVsZENvbmZpZ1tdID0gW107XHJcbiAgQElucHV0KCkgbW9kZWw6IGFueTtcclxuICBASW5wdXQoKSBhcGlOYW1lID0gJyc7XHJcbiAgQElucHV0KCkgaWRGaWVsZCA9ICdpZCc7XHJcbiAgQElucHV0KCkgZGlhbG9nTWF4V2lkdGggPSAnNDByZW0nOyAvLyDYo9mC2LXZiSDYudix2LYg2YTZhNiv2KfZitmE2YjYrFxyXG4gIEBJbnB1dCgpIGRpc3BsYXlNb2RlOlxyXG4gICAgfCAnZHJhd2VyJ1xyXG4gICAgfCAnZGlhbG9nJ1xyXG4gICAgfCAncm91dGUnXHJcbiAgICB8ICdpbmxpbmUnXHJcbiAgICB8IFBhcnRpYWw8XHJcbiAgICAgIFJlY29yZDxcclxuICAgICAgICAnYWRkJyB8ICdlZGl0JyB8ICd2aWV3JyxcclxuICAgICAgICAnZHJhd2VyJyB8ICdkaWFsb2cnIHwgJ3JvdXRlJyB8ICdpbmxpbmUnXHJcbiAgICAgID5cclxuICAgID4gPSAnZHJhd2VyJztcclxuICBASW5wdXQoKSBtb2RlOiAnZnVsbCcgfCAnZm9ybS1vbmx5JyB8ICd0YWJsZS1vbmx5JyB8ICdkZXRhaWwnID0gJ2Z1bGwnOyAvLyDZiNi22Lkg2KfZhNi52LHYtlxyXG4gIEBJbnB1dCgpIGZvcmNlU3RhdGU6ICdjcmVhdGUnIHwgJ2VkaXQnIHwgJ3ZpZXcnIHwgbnVsbCA9IG51bGw7IC8vINil2KzYqNin2LEg2K3Yp9mE2Kkg2YXYudmK2YbYqVxyXG4gIEBJbnB1dCgpIGRyYXdlclZpc2libGUgPSBmYWxzZTsgLy8g2LjZh9mI2LEg2KfZhNmAIGRyYXdlclxyXG4gIEBJbnB1dCgpIGRpYWxvZ1Zpc2libGUgPSBmYWxzZTsgLy8g2LjZh9mI2LEg2KfZhNmAIGRpYWxvZ1xyXG4gIEBJbnB1dCgpIGlzVmlld01vZGUgPSBmYWxzZTsgLy8g2YjYtti5INin2YTZhdi02KfZh9iv2Kkg2YHZgti3XHJcbiAgQElucHV0KCkgaXNFZGl0TW9kZSA9IGZhbHNlOyAvLyDZiNi22Lkg2KfZhNiq2LnYr9mK2YRcclxuICBASW5wdXQoKSB1c2VDb25maXJtT25TYXZlID0gZmFsc2U7IC8vINin2LPYqtiu2K/Yp9mFINiq2KPZg9mK2K8g2LnZhtivINin2YTYrdmB2LhcclxuICBASW5wdXQoKSBsb2FkaW5nID0gZmFsc2U7IC8vINit2KfZhNipINin2YTYqtit2YXZitmEXHJcbiAgQElucHV0KCkgZXJyb3JNc2cgPSAnJzsgLy8g2LHYs9in2YTYqSDYrti32KMg2YXYrtiq2LXYsdipXHJcbiAgQElucHV0KCkgZXJyb3JNZXNzYWdlOiBzdHJpbmcgfCBhbnkgPSAnJzsgLy8g2LHYs9in2YTYqSDYrti32KMg2KrZgdi12YrZhNmK2KlcclxuICBASW5wdXQoKSBiZWZvcmVTYXZlVHJhbnNmb3JtPzogKHJlY29yZDogYW55LCBpc0VkaXQ6IGJvb2xlYW4pID0+IGFueTsgLy8g4pqhINiv2YjYp9mEINmF2K7Ytdi12Kkg2YLYqNmEINin2YTYrdmB2LhcclxuXHJcbiAgLy8g2KfZhNmF2K/YrtmE2KfYqiDYp9mE2YXYrdiz2YjYqNipXHJcbiAgQElucHV0KCkgZ2V0IGhpZGVUYWJsZSgpOiBib29sZWFuIHtcclxuICAgIHJldHVybiAoXHJcbiAgICAgICh0aGlzLm1vZGUgPT09ICdmb3JtLW9ubHknIHx8XHJcbiAgICAgICAgKHRoaXMuZm9yY2VTdGF0ZSAmJiB0aGlzLm1vZGUgIT09ICd0YWJsZS1vbmx5JykpID8/XHJcbiAgICAgIGZhbHNlXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgQElucHV0KCkgZ2V0IGF1dG9TaG93Rm9ybSgpOiBib29sZWFuIHtcclxuICAgIHJldHVybiB0aGlzLm1vZGUgPT09ICdmb3JtLW9ubHknICYmICEhdGhpcy5mb3JjZVN0YXRlO1xyXG4gIH1cclxuXHJcbiAgLy8g2KfZhNmF2K7Ysdis2KfYqiAoT3V0cHV0cylcclxuICBAT3V0cHV0KCkgYWN0aW9uID0gbmV3IEV2ZW50RW1pdHRlcjx7IG5hbWU6IHN0cmluZzsgcm93OiBhbnkgfT4oKTtcclxuICBAT3V0cHV0KCkgYWZ0ZXJTYXZlID0gbmV3IEV2ZW50RW1pdHRlcjx7XHJcbiAgICByZWNvcmQ6IGFueTtcclxuICAgIGlzRWRpdDogYm9vbGVhbjtcclxuICAgIHJlc3BvbnNlPzogYW55O1xyXG4gIH0+KCk7XHJcbiAgQE91dHB1dCgpIGFmdGVyRGVsZXRlID0gbmV3IEV2ZW50RW1pdHRlcjx7IHJlY29yZDogYW55OyByZXNwb25zZT86IGFueSB9PigpO1xyXG4gIEBPdXRwdXQoKSBiZWZvcmVTYXZlID0gbmV3IEV2ZW50RW1pdHRlcjx7IHJlY29yZDogYW55OyBpc0VkaXQ6IGJvb2xlYW4gfT4oKTtcclxuICBAT3V0cHV0KCkgYmVmb3JlRGVsZXRlID0gbmV3IEV2ZW50RW1pdHRlcjx7IHJlY29yZDogYW55IH0+KCk7XHJcbiAgQE91dHB1dCgpIGZvcm1DYW5jZWwgPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XHJcbiAgQE91dHB1dCgpIGZvcm1Jbml0ID0gbmV3IEV2ZW50RW1pdHRlcjx7XHJcbiAgICBmb3JtOiBVbnR5cGVkRm9ybUdyb3VwO1xyXG4gICAgbW9kZWw6IGFueTtcclxuICB9PigpO1xyXG4gIEBPdXRwdXQoKSBkYXRhTG9hZGVkID0gbmV3IEV2ZW50RW1pdHRlcjx7IGRhdGE6IGFueVtdOyB0b3RhbDogbnVtYmVyIH0+KCk7XHJcbiAgQE91dHB1dCgpIHNlbGVjdGlvbkNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8e1xyXG4gICAgc2VsZWN0ZWQ6IGFueVtdO1xyXG4gICAgc2VsZWN0ZWRDb3VudDogbnVtYmVyO1xyXG4gIH0+KCk7XHJcbiAgQE91dHB1dCgpIGVycm9yID0gbmV3IEV2ZW50RW1pdHRlcjx7IGVycm9yOiBhbnk7IGNvbnRleHQ6IHN0cmluZyB9PigpO1xyXG4gIEBPdXRwdXQoKSB2aXNpYmxlQ2hhbmdlOiBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4gPSBuZXcgRXZlbnRFbWl0dGVyPGJvb2xlYW4+KCk7XHJcblxyXG4gIG5nT25Jbml0KCkge1xyXG4gICAgaWYgKHRoaXMuYXBpTmFtZSAmJiB0aGlzLmFwaU5hbWUgIT0gJycpIHtcclxuICAgICAgdGhpcy5zZXJ2aWNlLmFwaU5hbWUgPSB0aGlzLmFwaU5hbWU7XHJcbiAgICB9XHJcbiAgICAvLyBBdXRvLXNob3cgZm9ybSB3aGVuIGluIGZvcm0tb25seSBtb2RlIHdpdGggZm9yY2VTdGF0ZVxyXG4gICAgdGhpcy5mb3JtRmllbGRzXyA9IHRoaXMuZm9ybUZpZWxkcztcclxuICAgIGlmICh0aGlzLmF1dG9TaG93Rm9ybSkge1xyXG4gICAgICB0aGlzLmluaXRpYWxpemVGb3JtU3RhdGUoKTtcclxuICAgIH1cclxuICB9XHJcbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcykgeyB9XHJcbiAgLy8gSGVscGVyIG1ldGhvZCB0byBvcGVuIGZvcm0gcHJvZ3JhbW1hdGljYWxseVxyXG4gIG9wZW5Gb3JtKG1vZGU6ICdjcmVhdGUnIHwgJ2VkaXQnIHwgJ3ZpZXcnLCBtb2RlbD86IGFueSkge1xyXG4gICAgdGhpcy5mb3JjZVN0YXRlID0gbW9kZTtcclxuICAgIHRoaXMuZm9ybUZpZWxkc18gPSB0aGlzLmZvcm1GaWVsZHM7XHJcbiAgICBpZiAobW9kZWwpIHtcclxuICAgICAgdGhpcy5tb2RlbCA9IG1vZGVsO1xyXG4gICAgfVxyXG4gICAgZWxzZXtcclxuICAgICAgdGhpcy5tb2RlbCA9IHt9O1xyXG4gICAgfVxyXG5cclxuXHJcbiAgICAgc3dpdGNoIChtb2RlKSB7XHJcbiAgICAgICAgY2FzZSAnY3JlYXRlJzpcclxuICAgICAgICAgIHRoaXMuaXNFZGl0TW9kZSA9IGZhbHNlO1xyXG4gICAgICAgICAgdGhpcy5pc1ZpZXdNb2RlID0gZmFsc2U7XHJcbiAgICAgICAgICB0aGlzLm1vZGVsID0ge307XHJcbiAgICAgICAgICBicmVhaztcclxuICAgICAgICBjYXNlICdlZGl0JzpcclxuICAgICAgICAgIHRoaXMuaXNFZGl0TW9kZSA9IHRydWU7XHJcbiAgICAgICAgICB0aGlzLmlzVmlld01vZGUgPSBmYWxzZTtcclxuICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIGNhc2UgJ3ZpZXcnOlxyXG4gICAgICAgICAgdGhpcy5pc0VkaXRNb2RlID0gZmFsc2U7XHJcbiAgICAgICAgICB0aGlzLmlzVmlld01vZGUgPSB0cnVlO1xyXG4gICAgICAgICAgYnJlYWs7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgICBjb25zdCBtb2RlQ29uZmlnID0gdHlwZW9mIHRoaXMuZGlzcGxheU1vZGUgPT09ICdzdHJpbmcnXHJcbiAgICA/IHRoaXMuZGlzcGxheU1vZGVcclxuICAgIDogKHRoaXMuZGlzcGxheU1vZGUgYXMgYW55KVttb2RlXSA/PyAnZHJhd2VyJztcclxuXHJcbiAgICAvLyBUcmlnZ2VyIGZvcm0gb3BlbmluZyBiYXNlZCBvbiBkaXNwbGF5TW9kZVxyXG4gICAgaWYgKG1vZGVDb25maWcgPT09ICdkcmF3ZXInKSB7XHJcbiAgICAgIHRoaXMuZHJhd2VyVmlzaWJsZSA9IHRydWU7XHJcbiAgICB9IGVsc2UgaWYgKG1vZGVDb25maWcgPT09ICdkaWFsb2cnKSB7XHJcbiAgICAgIHRoaXMuZGlhbG9nVmlzaWJsZSA9IHRydWU7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuXHJcbiAgLy8gTWV0aG9kIHRvIGNsb3NlIGZvcm0gcHJvZ3JhbW1hdGljYWxseVxyXG4gIGNsb3NlRm9ybSgpIHtcclxuICAgIHRoaXMuZHJhd2VyVmlzaWJsZSA9IGZhbHNlO1xyXG4gICAgdGhpcy5kaWFsb2dWaXNpYmxlID0gZmFsc2U7XHJcbiAgICB0aGlzLmZvcmNlU3RhdGUgPSBudWxsO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBpbml0aWFsaXplRm9ybVN0YXRlKCkge1xyXG4gICAgaWYgKHRoaXMuZm9yY2VTdGF0ZSAmJiB0aGlzLm1vZGUgPT09ICdmb3JtLW9ubHknKSB7XHJcbiAgICAgIHRoaXMuZm9ybUZpZWxkc18gPSB0aGlzLmZvcm1GaWVsZHM7XHJcbiAgICAgIHN3aXRjaCAodGhpcy5mb3JjZVN0YXRlKSB7XHJcbiAgICAgICAgY2FzZSAnY3JlYXRlJzpcclxuICAgICAgICAgIHRoaXMuaXNFZGl0TW9kZSA9IGZhbHNlO1xyXG4gICAgICAgICAgdGhpcy5pc1ZpZXdNb2RlID0gZmFsc2U7XHJcbiAgICAgICAgICB0aGlzLm1vZGVsID0ge307XHJcbiAgICAgICAgICBicmVhaztcclxuICAgICAgICBjYXNlICdlZGl0JzpcclxuICAgICAgICAgIHRoaXMuaXNFZGl0TW9kZSA9IHRydWU7XHJcbiAgICAgICAgICB0aGlzLmlzVmlld01vZGUgPSBmYWxzZTtcclxuICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIGNhc2UgJ3ZpZXcnOlxyXG4gICAgICAgICAgdGhpcy5pc0VkaXRNb2RlID0gZmFsc2U7XHJcbiAgICAgICAgICB0aGlzLmlzVmlld01vZGUgPSB0cnVlO1xyXG4gICAgICAgICAgYnJlYWs7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIC8vIEF1dG8tc2hvdyB0aGUgZm9ybVxyXG4gICAgICAgY29uc3QgbW9kZUNvbmZpZyA9IHR5cGVvZiB0aGlzLmRpc3BsYXlNb2RlID09PSAnc3RyaW5nJ1xyXG4gICAgPyB0aGlzLmRpc3BsYXlNb2RlXHJcbiAgICA6ICh0aGlzLmRpc3BsYXlNb2RlIGFzIGFueSlbdGhpcy5mb3JjZVN0YXRlXSA/PyAnZHJhd2VyJztcclxuXHJcbiAgICAvLyBUcmlnZ2VyIGZvcm0gb3BlbmluZyBiYXNlZCBvbiBkaXNwbGF5TW9kZVxyXG4gICAgaWYgKG1vZGVDb25maWcgPT09ICdkcmF3ZXInKSB7XHJcbiAgICAgIHRoaXMuZHJhd2VyVmlzaWJsZSA9IHRydWU7XHJcbiAgICB9IGVsc2UgaWYgKG1vZGVDb25maWcgPT09ICdkaWFsb2cnKSB7XHJcbiAgICAgIHRoaXMuZGlhbG9nVmlzaWJsZSA9IHRydWU7XHJcbiAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBvblN1Ym1pdCgpIHtcclxuICAgIGlmICh0aGlzLmZvcm0uaW52YWxpZCkgcmV0dXJuO1xyXG5cclxuICAgIGNvbnN0IHNhdmUgPSAoKSA9PiB7XHJcbiAgICAgIHRoaXMubG9hZGluZyA9IHRydWU7XHJcbiAgICAgIHRoaXMuZXJyb3JNZXNzYWdlID0gbnVsbDtcclxuXHJcbiAgICAgIGNvbnN0IGlkID0gdGhpcy5pc0VkaXRNb2RlID8gKHRoaXMubW9kZWwgYXMgYW55KVt0aGlzLmlkRmllbGRdIDogbnVsbDtcclxuXHJcbiAgICAgIC8vIEVtaXQgYmVmb3JlU2F2ZSBldmVudFxyXG4gICAgICBjb25zdCBiZWZvcmVTYXZlRGF0YSA9IHtcclxuICAgICAgICByZWNvcmQ6IHsgLi4udGhpcy5tb2RlbCB9LFxyXG4gICAgICAgIGlzRWRpdDogdGhpcy5pc0VkaXRNb2RlLFxyXG4gICAgICB9O1xyXG4gICAgICB0aGlzLmJlZm9yZVNhdmUuZW1pdChiZWZvcmVTYXZlRGF0YSk7XHJcblxyXG4gICAgICAvLyBBbGxvdyBwYXJlbnQgdG8gbW9kaWZ5IGRhdGEgYmVmb3JlIHNhdmVcclxuICAgICAgbGV0IHJlY29yZFRvU2F2ZSA9IHRoaXMuYmVmb3JlU2F2ZVRyYW5zZm9ybVxyXG4gICAgICAgID8gdGhpcy5iZWZvcmVTYXZlVHJhbnNmb3JtKGJlZm9yZVNhdmVEYXRhLnJlY29yZCwgdGhpcy5pc0VkaXRNb2RlKVxyXG4gICAgICAgIDogYmVmb3JlU2F2ZURhdGEucmVjb3JkO1xyXG5cclxuICAgICAgY29uc3Qgb3BlcmF0aW9uJCA9IHRoaXMuaXNFZGl0TW9kZVxyXG4gICAgICAgID8gdGhpcy5zZXJ2aWNlLnVwZGF0ZShpZCwgcmVjb3JkVG9TYXZlKVxyXG4gICAgICAgIDogdGhpcy5zZXJ2aWNlLmNyZWF0ZShyZWNvcmRUb1NhdmUpO1xyXG5cclxuICAgICAgb3BlcmF0aW9uJC5zdWJzY3JpYmUoe1xyXG4gICAgICAgIG5leHQ6IChyZXNwb25zZTogYW55KSA9PiB7XHJcbiAgICAgICAgICB0aGlzLmxvYWRpbmcgPSBmYWxzZTtcclxuXHJcbiAgICAgICAgICAvLyDinIUg2LHYs9in2YTYqSDZhtis2KfYrVxyXG4gICAgICAgICAgdGhpcy5zd2FsU2VydmljZS5zdWNjZXNzKFxyXG4gICAgICAgICAgICB0aGlzLmlzRWRpdE1vZGUgPyAn2KrZhSDYp9mE2KrYudiv2YrZhCDYqNmG2KzYp9itJyA6ICfYqtmFINin2YTYrdmB2Lgg2KjZhtis2KfYrSdcclxuICAgICAgICAgICk7XHJcblxyXG4gICAgICAgICAgLy8gRW1pdCBhZnRlclNhdmUgZXZlbnRcclxuICAgICAgICAgIHRoaXMuYWZ0ZXJTYXZlLmVtaXQoe1xyXG4gICAgICAgICAgICByZWNvcmQ6IHJlY29yZFRvU2F2ZSxcclxuICAgICAgICAgICAgaXNFZGl0OiB0aGlzLmlzRWRpdE1vZGUsXHJcbiAgICAgICAgICAgIHJlc3BvbnNlOiByZXNwb25zZSxcclxuICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgdGhpcy52aXNpYmxlQ2hhbmdlLmVtaXQoZmFsc2UpO1xyXG4gICAgICAgICAgdGhpcy5jbG9zZUZvcm0oKTtcclxuICAgICAgICAgIGlmICh0aGlzLm1vZGUgIT0gJ2Zvcm0tb25seScpIHtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9LFxyXG4gICAgICAgIGVycm9yOiAoZXJyb3I6IGFueSkgPT4ge1xyXG4gICAgICAgICAgLy8g4p2MINmF2Kcg2YbYudix2LYg2LHYs9in2YTYqSDYrti32KMg2YfZhtinINmE2KPZhiDYp9mE2YAgaW50ZXJjZXB0b3Ig2YrYqtmD2YHZhCDZgdmK2YfYp1xyXG4gICAgICAgICAgdGhpcy5sb2FkaW5nID0gZmFsc2U7XHJcbiAgICAgICAgICB0aGlzLmVycm9yLmVtaXQoeyBlcnJvcjogZXJyb3IsIGNvbnRleHQ6ICdzYXZlJyB9KTtcclxuICAgICAgICB9LFxyXG4gICAgICB9KTtcclxuICAgIH07XHJcblxyXG4gICAgaWYgKHRoaXMudXNlQ29uZmlybU9uU2F2ZSkge1xyXG4gICAgICB0aGlzLnN3YWxTZXJ2aWNlXHJcbiAgICAgICAgLmNvbmZpcm0oXHJcbiAgICAgICAgICB0aGlzLmlzRWRpdE1vZGUgPyAn2KrYo9mD2YrYryDYp9mE2KrYudiv2YrZhCcgOiAn2KrYo9mD2YrYryDYp9mE2K3Zgdi4JyxcclxuICAgICAgICAgIHRoaXMuaXNFZGl0TW9kZVxyXG4gICAgICAgICAgICA/ICfZh9mEINiq2LHZitivINit2YHYuCDYp9mE2KrYudiv2YrZhNin2Kog2LnZhNmJINmH2LDYpyDYp9mE2LPYrNmE2J8nXHJcbiAgICAgICAgICAgIDogJ9mH2YQg2KrYsdmK2K8g2K3Zgdi4INmH2LDYpyDYp9mE2LPYrNmE2J8nLFxyXG4gICAgICAgICAgJ9mG2LnZhScsXHJcbiAgICAgICAgICAn2KXZhNi62KfYoSdcclxuICAgICAgICApXHJcbiAgICAgICAgLnRoZW4oKHJlc3VsdCkgPT4ge1xyXG4gICAgICAgICAgaWYgKHJlc3VsdC5pc0NvbmZpcm1lZCkge1xyXG4gICAgICAgICAgICBzYXZlKCk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBzYXZlKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvKiogTmV3IGNhbmNlbCBtZXRob2QgZm9yIGZvcm0tb25seSBtb2RlICovXHJcbiAgb25DYW5jZWwoKSB7XHJcbiAgICB0aGlzLnZpc2libGVDaGFuZ2UuZW1pdChmYWxzZSk7XHJcbiAgICAvLyBFbWl0IGNhbmNlbCBldmVudCBmb3IgcGFyZW50IGNvbXBvbmVudCB0byBoYW5kbGUgbmF2aWdhdGlvblxyXG4gICAgdGhpcy5hY3Rpb24uZW1pdCh7IG5hbWU6ICdjYW5jZWwnLCByb3c6IG51bGwhIH0pO1xyXG4gIH1cclxufVxyXG4iLCI8IS0tIERyYXdlciAtLT5cclxuQGlmICgoKHR5cGVvZiBkaXNwbGF5TW9kZSA9PT0gJ3N0cmluZycgPyBkaXNwbGF5TW9kZSA6IGlzRWRpdE1vZGUgP1xyXG5kaXNwbGF5TW9kZVsnZWRpdCddIDogaXNWaWV3TW9kZSA9PT0gZmFsc2UgPyBkaXNwbGF5TW9kZVsnYWRkJ10gOlxyXG5kaXNwbGF5TW9kZVsndmlldyddKSA9PT0gJ2RyYXdlcicpICYmIChkcmF3ZXJWaXNpYmxlIHx8IChhdXRvU2hvd0Zvcm0gJiZcclxuZGlzcGxheU1vZGUgPT09ICdkcmF3ZXInKSkpIHtcclxuPHAtZHJhd2VyXHJcbiAgWyh2aXNpYmxlKV09XCJkcmF3ZXJWaXNpYmxlXCJcclxuICBbY2xvc2FibGVdPVwidHJ1ZVwiXHJcbiAgW2Rpc21pc3NpYmxlXT1cImZhbHNlXCJcclxuICBbY2xvc2VPbkVzY2FwZV09XCJ0cnVlXCJcclxuICAodmlzaWJsZUNoYW5nZSk9XCJ2aXNpYmxlQ2hhbmdlLmVtaXQoJGV2ZW50KVwiXHJcbiAgW3N0eWxlQ2xhc3NdPVwibW9kZSA9PT0gJ2Zvcm0tb25seScgJiYgZm9yY2VTdGF0ZSA9PT0gJ3ZpZXcnID8gJyF3LWZ1bGwgbWQ6IXctODAgbGc6IXctWzQwcmVtXSAhaC1mdWxsJyA6ICchdy1mdWxsIG1kOiF3LTgwIGxnOiF3LVs0MHJlbV0nXCJcclxuICBbbW9kYWxdPVwibW9kZSAhPT0gJ2Zvcm0tb25seSdcIlxyXG4gIFtibG9ja1Njcm9sbF09XCJtb2RlICE9PSAnZm9ybS1vbmx5J1wiXHJcbj5cclxuICA8bmctdGVtcGxhdGUgcFRlbXBsYXRlPVwiaGVhZGVyXCI+XHJcbiAgICA8c3BhbiBjbGFzcz1cImZvbnQtYm9sZCB0ZXh0LWxnXCI+XHJcbiAgICAgIHt7IGlzRWRpdE1vZGUgPyAoJ1VQREFURScgfCB0cmFuc2xhdGUpOiBpc1ZpZXdNb2RlID09PSBmYWxzZSA/ICgnQUREJyB8XHJcbiAgICAgIHRyYW5zbGF0ZSk6ICgnVklFVycgfCB0cmFuc2xhdGUpIH19XHJcbiAgICA8L3NwYW4+XHJcbiAgPC9uZy10ZW1wbGF0ZT5cclxuICA8IS0tIChuZ1N1Ym1pdCk9XCJvblN1Ym1pdCgpXCIgLS0+XHJcbiAgPGZvcm0gKm5nSWY9XCJmb3JtXCIgW2Zvcm1Hcm91cF09XCJmb3JtXCIgY2xhc3M9XCJwLTRcIj5cclxuICAgIDxmb3JtbHktZm9ybVxyXG4gICAgICBbZm9ybV09XCJmb3JtXCJcclxuICAgICAgW2ZpZWxkc109XCJmb3JtRmllbGRzX1wiXHJcbiAgICAgIFttb2RlbF09XCJtb2RlbFwiXHJcbiAgICAgIFtvcHRpb25zXT1cIm9wdGlvbnNcIlxyXG4gICAgPjwvZm9ybWx5LWZvcm0+XHJcbiAgPC9mb3JtPlxyXG5cclxuICA8bmctdGVtcGxhdGUgcFRlbXBsYXRlPVwiZm9vdGVyXCIgKm5nSWY9XCIhaXNWaWV3TW9kZVwiPlxyXG4gICAgPGRpdiBjbGFzcz1cImZsZXgganVzdGlmeS1lbmQgZ2FwLTJcIj5cclxuICAgICAgPGJ1dHRvblxyXG4gICAgICAgIHBCdXR0b25cclxuICAgICAgICBbbGFiZWxdPVwiaXNFZGl0TW9kZSA/ICgnVVBEQVRFJyB8IHRyYW5zbGF0ZSkgOiAoJ1NBVkUnIHwgdHJhbnNsYXRlKVwiXHJcbiAgICAgICAgdHlwZT1cImJ1dHRvblwiXHJcbiAgICAgICAgKGNsaWNrKT1cIm9uU3VibWl0KClcIlxyXG4gICAgICAgIFtkaXNhYmxlZF09XCJsb2FkaW5nIHx8IGZvcm0uaW52YWxpZFwiXHJcbiAgICAgICAgW2xvYWRpbmddPVwibG9hZGluZ1wiXHJcbiAgICAgID48L2J1dHRvbj5cclxuICAgICAgPGJ1dHRvblxyXG4gICAgICAgIHBCdXR0b25cclxuICAgICAgICBsYWJlbD1cInt7ICdDQU5DRUwnIHwgdHJhbnNsYXRlIH19XCJcclxuICAgICAgICBzZXZlcml0eT1cImRhbmdlclwiXHJcbiAgICAgICAgKGNsaWNrKT1cInZpc2libGVDaGFuZ2UuZW1pdChmYWxzZSk7Y2xvc2VGb3JtKCk7XCJcclxuICAgICAgPjwvYnV0dG9uPlxyXG4gICAgPC9kaXY+XHJcbiAgPC9uZy10ZW1wbGF0ZT5cclxuPC9wLWRyYXdlcj5cclxufVxyXG48IS0tIERpYWxvZyAtLT5cclxuQGlmICgoKHR5cGVvZiBkaXNwbGF5TW9kZSA9PT0gJ3N0cmluZycgPyBkaXNwbGF5TW9kZSA6IGlzRWRpdE1vZGUgP1xyXG5kaXNwbGF5TW9kZVsnZWRpdCddIDogaXNWaWV3TW9kZSA9PT0gZmFsc2UgPyBkaXNwbGF5TW9kZVsnYWRkJ10gOlxyXG5kaXNwbGF5TW9kZVsndmlldyddKSA9PT0gJ2RpYWxvZycpICYmIChkaWFsb2dWaXNpYmxlIHx8IChhdXRvU2hvd0Zvcm0gJiZcclxuZGlzcGxheU1vZGUgPT09ICdkaWFsb2cnKSkpIHtcclxuPHAtZGlhbG9nXHJcbiAgWyh2aXNpYmxlKV09XCJkaWFsb2dWaXNpYmxlXCJcclxuICBbY2xvc2VPbkVzY2FwZV09XCJ0cnVlXCJcclxuICAodmlzaWJsZUNoYW5nZSk9XCJ2aXNpYmxlQ2hhbmdlLmVtaXQoJGV2ZW50KVwiXHJcbiAgW2hlYWRlcl09XCJpc0VkaXRNb2RlID8gKCdVUERBVEUnIHwgdHJhbnNsYXRlKSA6IGlzVmlld01vZGUgPT09IGZhbHNlID8gKCdBREQnfCB0cmFuc2xhdGUpIDogKCdWSUVXJ3wgdHJhbnNsYXRlKVwiXHJcbiAgW21vZGFsXT1cIm1vZGUgIT09ICdmb3JtLW9ubHknXCJcclxuICBbc3R5bGVdPVwibW9kZSA9PT0gJ2Zvcm0tb25seScgJiYgZm9yY2VTdGF0ZSA9PT0gJ3ZpZXcnID8geyB3aWR0aDogJzEwMHZ3JywgaGVpZ2h0OiAnMTAwdmgnLCBtYXhXaWR0aDogJ25vbmUnIH0gOiB7IHdpZHRoOiAnOTV2dycsIG1heFdpZHRoOiBkaWFsb2dNYXhXaWR0aCB9XCJcclxuICBbY2xvc2FibGVdPVwibW9kZSAhPT0gJ2Zvcm0tb25seSdcIlxyXG4gIFtkaXNtaXNzYWJsZU1hc2tdPVwibW9kZSAhPT0gJ2Zvcm0tb25seSdcIlxyXG4+XHJcbiAgPCEtLSBbYnJlYWtwb2ludHNdPVwieyAnMTIwMHB4JzogJzUwdncnLCAnNzY4cHgnOiAnNzB2dycsICc1NjBweCc6ICc5NXZ3JyB9XCIgLS0+XHJcbiAgPGRpdiBjbGFzcz1cInJlbGF0aXZlXCI+XHJcbiAgICA8ZGl2XHJcbiAgICAgICpuZ0lmPVwiaXNWaWV3TW9kZVwiXHJcbiAgICAgIGNsYXNzPVwiYWJzb2x1dGUgaW5zZXQtMCB6LTEwIGJnLXdoaXRlLzUwIHBvaW50ZXItZXZlbnRzLWF1dG8gcm91bmRlZC1tZFwiXHJcbiAgICA+PC9kaXY+XHJcbiAgICA8Zm9ybSAqbmdJZj1cImZvcm1cIiBbZm9ybUdyb3VwXT1cImZvcm1cIiBjbGFzcz1cInAtNFwiPlxyXG4gICAgICA8Zm9ybWx5LWZvcm1cclxuICAgICAgICBbZm9ybV09XCJmb3JtXCJcclxuICAgICAgICBbZmllbGRzXT1cImZvcm1GaWVsZHNfXCJcclxuICAgICAgICBbbW9kZWxdPVwibW9kZWxcIlxyXG4gICAgICAgIFtvcHRpb25zXT1cIm9wdGlvbnNcIlxyXG4gICAgICA+PC9mb3JtbHktZm9ybT5cclxuICAgIDwvZm9ybT5cclxuICA8L2Rpdj5cclxuXHJcbiAgPG5nLXRlbXBsYXRlIHBUZW1wbGF0ZT1cImZvb3RlclwiPlxyXG4gICAgPGRpdiBjbGFzcz1cImZsZXgganVzdGlmeS1lbmQgZ2FwLTJcIj5cclxuICAgICAgPGJ1dHRvblxyXG4gICAgICAgICpuZ0lmPVwiIWlzVmlld01vZGVcIlxyXG4gICAgICAgIHBCdXR0b25cclxuICAgICAgICBbbGFiZWxdPVwiaXNFZGl0TW9kZSA/ICgnVVBEQVRFJyB8IHRyYW5zbGF0ZSkgOiAoJ1NBVkUnIHwgdHJhbnNsYXRlKVwiXHJcbiAgICAgICAgdHlwZT1cImJ1dHRvblwiXHJcbiAgICAgICAgW2Rpc2FibGVkXT1cImxvYWRpbmcgfHwgZm9ybS5pbnZhbGlkXCJcclxuICAgICAgICBbbG9hZGluZ109XCJsb2FkaW5nXCJcclxuICAgICAgICAoY2xpY2spPVwib25TdWJtaXQoKVwiXHJcbiAgICAgID48L2J1dHRvbj5cclxuICAgICAgPGJ1dHRvblxyXG4gICAgICAgIHBCdXR0b25cclxuICAgICAgICBsYWJlbD1cInt7IGlzVmlld01vZGUgPyAoJ0NMT1NFJyB8IHRyYW5zbGF0ZSkgOiAoJ0NBTkNFTCcgfCB0cmFuc2xhdGUpIH19XCJcclxuICAgICAgICBzZXZlcml0eT1cInNlY29uZGFyeVwiXHJcbiAgICAgICAgKGNsaWNrKT1cInZpc2libGVDaGFuZ2UuZW1pdChmYWxzZSk7Y2xvc2VGb3JtKCk7XCJcclxuICAgICAgPjwvYnV0dG9uPlxyXG4gICAgPC9kaXY+XHJcbiAgPC9uZy10ZW1wbGF0ZT5cclxuPC9wLWRpYWxvZz5cclxufVxyXG5cclxuPCEtLSBJbmxpbmUgRm9ybSBmb3IgZm9ybS1vbmx5IG1vZGUgLS0+XHJcbkBpZiAobW9kZSA9PT0gJ2Zvcm0tb25seScgJiYgZGlzcGxheU1vZGUgPT09ICdpbmxpbmUnKXtcclxuPGRpdiBjbGFzcz1cInctZnVsbFwiPlxyXG4gIDxmb3JtICpuZ0lmPVwiZm9ybVwiIFtmb3JtR3JvdXBdPVwiZm9ybVwiPlxyXG4gICAgPGZvcm1seS1mb3JtXHJcbiAgICAgIFtmb3JtXT1cImZvcm1cIlxyXG4gICAgICBbZmllbGRzXT1cImZvcm1GaWVsZHNfXCJcclxuICAgICAgW21vZGVsXT1cIm1vZGVsXCJcclxuICAgICAgW29wdGlvbnNdPVwib3B0aW9uc1wiXHJcbiAgICA+PC9mb3JtbHktZm9ybT5cclxuICA8L2Zvcm0+XHJcbjwvZGl2PlxyXG59XHJcbiJdfQ==","/**\n * Generated bundle index. Do not edit.\n */\nexport * from './index';\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWxpdGUuZnJhbWV3b3JrLW5nLnVpLmNvcmUtZ2VuZXJpYy1kaWFsb2cuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzL25nLnVpLmNvcmUvZ2VuZXJpYy1kaWFsb2cvc3JjL2VsaXRlLmZyYW1ld29yay1uZy51aS5jb3JlLWdlbmVyaWMtZGlhbG9nLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsY0FBYyxTQUFTLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEdlbmVyYXRlZCBidW5kbGUgaW5kZXguIERvIG5vdCBlZGl0LlxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vaW5kZXgnO1xuIl19"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"elite.framework-ng.ui.core-generic-dialog.mjs","sources":["../tmp-esm2022/generic-dialog/lib/generic-dialog-module.js","../tmp-esm2022/generic-dialog/lib/generic-dialog.js","../tmp-esm2022/generic-dialog/elite.framework-ng.ui.core-generic-dialog.js"],"sourcesContent":["import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport * as i0 from \"@angular/core\";\nexport class GenericDialogModule {\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: GenericDialogModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });\n static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"14.0.0\", version: \"20.1.8\", ngImport: i0, type: GenericDialogModule, imports: [CommonModule] });\n static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: GenericDialogModule, imports: [CommonModule] });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: GenericDialogModule, decorators: [{\n type: NgModule,\n args: [{\n imports: [CommonModule],\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2VuZXJpYy1kaWFsb2ctbW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9uZy51aS5jb3JlL2dlbmVyaWMtZGlhbG9nL3NyYy9saWIvZ2VuZXJpYy1kaWFsb2ctbW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDOztBQUsvQyxNQUFNLE9BQU8sbUJBQW1CO3VHQUFuQixtQkFBbUI7d0dBQW5CLG1CQUFtQixZQUZwQixZQUFZO3dHQUVYLG1CQUFtQixZQUZwQixZQUFZOzsyRkFFWCxtQkFBbUI7a0JBSC9CLFFBQVE7bUJBQUM7b0JBQ1IsT0FBTyxFQUFFLENBQUMsWUFBWSxDQUFDO2lCQUN4QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuXG5ATmdNb2R1bGUoe1xuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlXSxcbn0pXG5leHBvcnQgY2xhc3MgR2VuZXJpY0RpYWxvZ01vZHVsZSB7fVxuIl19","import { Component, EventEmitter, Input, Output, inject, } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { ButtonModule } from 'primeng/button';\nimport { FormsModule, ReactiveFormsModule, UntypedFormGroup, } from '@angular/forms';\nimport { FormlyForm, } from '@ngx-formly/core';\nimport { MessageService } from 'primeng/api';\nimport { DrawerModule, Drawer } from 'primeng/drawer';\nimport { TranslateService, TranslateModule } from '@ngx-translate/core';\nimport { BaseService, IdParserService, SwalService } from '@elite.framework/ng.core/services';\nimport { DialogModule } from 'primeng/dialog';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@angular/common\";\nimport * as i2 from \"primeng/button\";\nimport * as i3 from \"primeng/api\";\nimport * as i4 from \"@angular/forms\";\nimport * as i5 from \"primeng/drawer\";\nimport * as i6 from \"primeng/dialog\";\nimport * as i7 from \"@ngx-translate/core\";\nexport class GenericDialogComponent {\n idParser = inject(IdParserService);\n // الخدمات المحقونة\n translate = inject(TranslateService);\n swalService = inject(SwalService);\n // الحالة الداخلية للفورم\n form = new UntypedFormGroup({});\n options = {};\n formFields_ = [];\n model_ = {};\n // المدخلات (Inputs)\n service = inject(BaseService);\n formFields = [];\n model;\n apiName = '';\n idField = 'id';\n dialogMaxWidth = '40rem'; // أقصى عرض للدايلوج\n displayMode = 'drawer';\n mode = 'full'; // وضع العرض\n forceState = null; // إجبار حالة معينة\n drawerVisible = false; // ظهور الـ drawer\n dialogVisible = false; // ظهور الـ dialog\n isViewMode = false; // وضع المشاهدة فقط\n isEditMode = false; // وضع التعديل\n useConfirmOnSave = false; // استخدام تأكيد عند الحفظ\n loading = false; // حالة التحميل\n errorMsg = ''; // رسالة خطأ مختصرة\n errorMessage = ''; // رسالة خطأ تفصيلية\n beforeSaveTransform; // ⚡ دوال مخصصة قبل الحفظ\n // المدخلات المحسوبة\n get hideTable() {\n return ((this.mode === 'form-only' ||\n (this.forceState && this.mode !== 'table-only')) ??\n false);\n }\n get autoShowForm() {\n return this.mode === 'form-only' && !!this.forceState;\n }\n // المخرجات (Outputs)\n action = new EventEmitter();\n afterSave = new EventEmitter();\n afterDelete = new EventEmitter();\n beforeSave = new EventEmitter();\n beforeDelete = new EventEmitter();\n formCancel = new EventEmitter();\n formInit = new EventEmitter();\n dataLoaded = new EventEmitter();\n selectionChange = new EventEmitter();\n error = new EventEmitter();\n visibleChange = new EventEmitter();\n ngOnInit() {\n if (this.apiName && this.apiName != '') {\n this.service.apiName = this.apiName;\n }\n // Auto-show form when in form-only mode with forceState\n this.formFields_ = this.formFields;\n if (this.autoShowForm) {\n this.initializeFormState();\n }\n }\n ngOnChanges(changes) { }\n // Helper method to open form programmatically\n openForm(mode, model) {\n this.forceState = mode;\n this.formFields_ = this.formFields;\n if (model) {\n this.model = model;\n }\n else {\n this.model = {};\n }\n switch (mode) {\n case 'create':\n this.isEditMode = false;\n this.isViewMode = false;\n this.model = {};\n break;\n case 'edit':\n this.isEditMode = true;\n this.isViewMode = false;\n break;\n case 'view':\n this.isEditMode = false;\n this.isViewMode = true;\n break;\n }\n const modeConfig = typeof this.displayMode === 'string'\n ? this.displayMode\n : this.displayMode[mode] ?? 'drawer';\n // Trigger form opening based on displayMode\n if (modeConfig === 'drawer') {\n this.drawerVisible = true;\n }\n else if (modeConfig === 'dialog') {\n this.dialogVisible = true;\n }\n }\n // Method to close form programmatically\n closeForm() {\n this.drawerVisible = false;\n this.dialogVisible = false;\n this.forceState = null;\n }\n initializeFormState() {\n if (this.forceState && this.mode === 'form-only') {\n this.formFields_ = this.formFields;\n switch (this.forceState) {\n case 'create':\n this.isEditMode = false;\n this.isViewMode = false;\n this.model = {};\n break;\n case 'edit':\n this.isEditMode = true;\n this.isViewMode = false;\n break;\n case 'view':\n this.isEditMode = false;\n this.isViewMode = true;\n break;\n }\n // Auto-show the form\n const modeConfig = typeof this.displayMode === 'string'\n ? this.displayMode\n : this.displayMode[this.forceState] ?? 'drawer';\n // Trigger form opening based on displayMode\n if (modeConfig === 'drawer') {\n this.drawerVisible = true;\n }\n else if (modeConfig === 'dialog') {\n this.dialogVisible = true;\n }\n }\n }\n onSubmit() {\n if (this.form.invalid)\n return;\n const save = () => {\n this.loading = true;\n this.errorMessage = null;\n // const id = this.isEditMode ? (this.model as any)[this.idField] : null;\n const id = this.isEditMode\n ? this.idParser.parseIds(this.model, this.idField)\n : null;\n // Emit beforeSave event\n const beforeSaveData = {\n record: { ...this.model },\n isEdit: this.isEditMode,\n };\n this.beforeSave.emit(beforeSaveData);\n // Allow parent to modify data before save\n let recordToSave = this.beforeSaveTransform\n ? this.beforeSaveTransform(beforeSaveData.record, this.isEditMode)\n : beforeSaveData.record;\n const operation$ = this.isEditMode\n ? this.service.update(id, recordToSave)\n : this.service.create(recordToSave);\n operation$.subscribe({\n next: (response) => {\n this.loading = false;\n // ✅ رسالة نجاح\n this.swalService.success(this.isEditMode ? 'تم التعديل بنجاح' : 'تم الحفظ بنجاح');\n // Emit afterSave event\n this.afterSave.emit({\n record: recordToSave,\n isEdit: this.isEditMode,\n response: response,\n });\n this.visibleChange.emit(false);\n this.closeForm();\n if (this.mode != 'form-only') {\n }\n },\n error: (error) => {\n // ❌ ما نعرض رسالة خطأ هنا لأن الـ interceptor يتكفل فيها\n this.loading = false;\n this.error.emit({ error: error, context: 'save' });\n },\n });\n };\n if (this.useConfirmOnSave) {\n this.swalService\n .confirm(this.isEditMode ? 'تأكيد التعديل' : 'تأكيد الحفظ', this.isEditMode\n ? 'هل تريد حفظ التعديلات على هذا السجل؟'\n : 'هل تريد حفظ هذا السجل؟', 'نعم', 'إلغاء')\n .then((result) => {\n if (result.isConfirmed) {\n save();\n }\n });\n }\n else {\n save();\n }\n }\n /** New cancel method for form-only mode */\n onCancel() {\n this.visibleChange.emit(false);\n // Emit cancel event for parent component to handle navigation\n this.action.emit({ name: 'cancel', row: null });\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: GenericDialogComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });\n static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.1.8\", type: GenericDialogComponent, isStandalone: true, selector: \"app-generic-dialog\", inputs: { form: \"form\", service: \"service\", formFields: \"formFields\", model: \"model\", apiName: \"apiName\", idField: \"idField\", dialogMaxWidth: \"dialogMaxWidth\", displayMode: \"displayMode\", mode: \"mode\", forceState: \"forceState\", drawerVisible: \"drawerVisible\", dialogVisible: \"dialogVisible\", isViewMode: \"isViewMode\", isEditMode: \"isEditMode\", useConfirmOnSave: \"useConfirmOnSave\", loading: \"loading\", errorMsg: \"errorMsg\", errorMessage: \"errorMessage\", beforeSaveTransform: \"beforeSaveTransform\", hideTable: \"hideTable\", autoShowForm: \"autoShowForm\" }, outputs: { action: \"action\", afterSave: \"afterSave\", afterDelete: \"afterDelete\", beforeSave: \"beforeSave\", beforeDelete: \"beforeDelete\", formCancel: \"formCancel\", formInit: \"formInit\", dataLoaded: \"dataLoaded\", selectionChange: \"selectionChange\", error: \"error\", visibleChange: \"visibleChange\" }, providers: [MessageService], usesOnChanges: true, ngImport: i0, template: \"<!-- Drawer -->\\r\\n@if (((typeof displayMode === 'string' ? displayMode : isEditMode ?\\r\\ndisplayMode['edit'] : isViewMode === false ? displayMode['add'] :\\r\\ndisplayMode['view']) === 'drawer') && (drawerVisible || (autoShowForm &&\\r\\ndisplayMode === 'drawer'))) {\\r\\n<p-drawer\\r\\n [(visible)]=\\\"drawerVisible\\\"\\r\\n [closable]=\\\"true\\\"\\r\\n [dismissible]=\\\"false\\\"\\r\\n [closeOnEscape]=\\\"true\\\"\\r\\n (visibleChange)=\\\"visibleChange.emit($event)\\\"\\r\\n [styleClass]=\\\"mode === 'form-only' && forceState === 'view' ? '!w-full md:!w-80 lg:!w-[40rem] !h-full' : '!w-full md:!w-80 lg:!w-[40rem]'\\\"\\r\\n [modal]=\\\"mode !== 'form-only'\\\"\\r\\n [blockScroll]=\\\"mode !== 'form-only'\\\"\\r\\n>\\r\\n <ng-template pTemplate=\\\"header\\\">\\r\\n <span class=\\\"font-bold text-lg\\\">\\r\\n {{ isEditMode ? ('UPDATE' | translate): isViewMode === false ? ('ADD' |\\r\\n translate): ('VIEW' | translate) }}\\r\\n </span>\\r\\n </ng-template>\\r\\n <!-- (ngSubmit)=\\\"onSubmit()\\\" -->\\r\\n <form *ngIf=\\\"form\\\" [formGroup]=\\\"form\\\" class=\\\"p-4\\\">\\r\\n <formly-form\\r\\n [form]=\\\"form\\\"\\r\\n [fields]=\\\"formFields_\\\"\\r\\n [model]=\\\"model\\\"\\r\\n [options]=\\\"options\\\"\\r\\n ></formly-form>\\r\\n </form>\\r\\n\\r\\n <ng-template pTemplate=\\\"footer\\\" *ngIf=\\\"!isViewMode\\\">\\r\\n <div class=\\\"flex justify-end gap-2\\\">\\r\\n <button\\r\\n pButton\\r\\n [label]=\\\"isEditMode ? ('UPDATE' | translate) : ('SAVE' | translate)\\\"\\r\\n type=\\\"button\\\"\\r\\n (click)=\\\"onSubmit()\\\"\\r\\n [disabled]=\\\"loading || form.invalid\\\"\\r\\n [loading]=\\\"loading\\\"\\r\\n ></button>\\r\\n <button\\r\\n pButton\\r\\n label=\\\"{{ 'CANCEL' | translate }}\\\"\\r\\n severity=\\\"danger\\\"\\r\\n (click)=\\\"visibleChange.emit(false);closeForm();\\\"\\r\\n ></button>\\r\\n </div>\\r\\n </ng-template>\\r\\n</p-drawer>\\r\\n}\\r\\n<!-- Dialog -->\\r\\n@if (((typeof displayMode === 'string' ? displayMode : isEditMode ?\\r\\ndisplayMode['edit'] : isViewMode === false ? displayMode['add'] :\\r\\ndisplayMode['view']) === 'dialog') && (dialogVisible || (autoShowForm &&\\r\\ndisplayMode === 'dialog'))) {\\r\\n<p-dialog\\r\\n [(visible)]=\\\"dialogVisible\\\"\\r\\n [closeOnEscape]=\\\"true\\\"\\r\\n (visibleChange)=\\\"visibleChange.emit($event)\\\"\\r\\n [header]=\\\"isEditMode ? ('UPDATE' | translate) : isViewMode === false ? ('ADD'| translate) : ('VIEW'| translate)\\\"\\r\\n [modal]=\\\"mode !== 'form-only'\\\"\\r\\n [style]=\\\"mode === 'form-only' && forceState === 'view' ? { width: '100vw', height: '100vh', maxWidth: 'none' } : { width: '95vw', maxWidth: dialogMaxWidth }\\\"\\r\\n [closable]=\\\"mode !== 'form-only'\\\"\\r\\n [dismissableMask]=\\\"mode !== 'form-only'\\\"\\r\\n>\\r\\n <!-- [breakpoints]=\\\"{ '1200px': '50vw', '768px': '70vw', '560px': '95vw' }\\\" -->\\r\\n <div class=\\\"relative\\\">\\r\\n <div\\r\\n *ngIf=\\\"isViewMode\\\"\\r\\n class=\\\"absolute inset-0 z-10 bg-white/50 pointer-events-auto rounded-md\\\"\\r\\n ></div>\\r\\n <form *ngIf=\\\"form\\\" [formGroup]=\\\"form\\\" class=\\\"p-4\\\">\\r\\n <formly-form\\r\\n [form]=\\\"form\\\"\\r\\n [fields]=\\\"formFields_\\\"\\r\\n [model]=\\\"model\\\"\\r\\n [options]=\\\"options\\\"\\r\\n ></formly-form>\\r\\n </form>\\r\\n </div>\\r\\n\\r\\n <ng-template pTemplate=\\\"footer\\\">\\r\\n <div class=\\\"flex justify-end gap-2\\\">\\r\\n <button\\r\\n *ngIf=\\\"!isViewMode\\\"\\r\\n pButton\\r\\n [label]=\\\"isEditMode ? ('UPDATE' | translate) : ('SAVE' | translate)\\\"\\r\\n type=\\\"button\\\"\\r\\n [disabled]=\\\"loading || form.invalid\\\"\\r\\n [loading]=\\\"loading\\\"\\r\\n (click)=\\\"onSubmit()\\\"\\r\\n ></button>\\r\\n <button\\r\\n pButton\\r\\n label=\\\"{{ isViewMode ? ('CLOSE' | translate) : ('CANCEL' | translate) }}\\\"\\r\\n severity=\\\"secondary\\\"\\r\\n (click)=\\\"visibleChange.emit(false);closeForm();\\\"\\r\\n ></button>\\r\\n </div>\\r\\n </ng-template>\\r\\n</p-dialog>\\r\\n}\\r\\n\\r\\n<!-- Inline Form for form-only mode -->\\r\\n@if (mode === 'form-only' && displayMode === 'inline'){\\r\\n<div class=\\\"w-full\\\">\\r\\n <form *ngIf=\\\"form\\\" [formGroup]=\\\"form\\\">\\r\\n <formly-form\\r\\n [form]=\\\"form\\\"\\r\\n [fields]=\\\"formFields_\\\"\\r\\n [model]=\\\"model\\\"\\r\\n [options]=\\\"options\\\"\\r\\n ></formly-form>\\r\\n </form>\\r\\n</div>\\r\\n}\\r\\n\", styles: [\"\"], dependencies: [{ kind: \"ngmodule\", type: CommonModule }, { 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: \"directive\", type: i3.PrimeTemplate, selector: \"[pTemplate]\", inputs: [\"type\", \"pTemplate\"] }, { kind: \"component\", type: FormlyForm, selector: \"formly-form\", inputs: [\"form\", \"model\", \"fields\", \"options\"], outputs: [\"modelChange\"] }, { kind: \"ngmodule\", type: FormsModule }, { kind: \"directive\", type: i4.ɵNgNoValidate, selector: \"form:not([ngNoForm]):not([ngNativeValidate])\" }, { kind: \"directive\", type: i4.NgControlStatusGroup, selector: \"[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]\" }, { kind: \"ngmodule\", type: ReactiveFormsModule }, { kind: \"directive\", type: i4.FormGroupDirective, selector: \"[formGroup]\", inputs: [\"formGroup\"], outputs: [\"ngSubmit\"], exportAs: [\"ngForm\"] }, { kind: \"ngmodule\", type: DrawerModule }, { kind: \"component\", type: i5.Drawer, selector: \"p-drawer\", inputs: [\"appendTo\", \"blockScroll\", \"style\", \"styleClass\", \"ariaCloseLabel\", \"autoZIndex\", \"baseZIndex\", \"modal\", \"closeButtonProps\", \"dismissible\", \"showCloseIcon\", \"closeOnEscape\", \"transitionOptions\", \"visible\", \"position\", \"fullScreen\", \"header\", \"maskStyle\", \"closable\"], outputs: [\"onShow\", \"onHide\", \"visibleChange\"] }, { kind: \"ngmodule\", type: TranslateModule }, { kind: \"ngmodule\", type: DialogModule }, { kind: \"component\", type: i6.Dialog, selector: \"p-dialog\", inputs: [\"header\", \"draggable\", \"resizable\", \"contentStyle\", \"contentStyleClass\", \"modal\", \"closeOnEscape\", \"dismissableMask\", \"rtl\", \"closable\", \"breakpoints\", \"styleClass\", \"maskStyleClass\", \"maskStyle\", \"showHeader\", \"blockScroll\", \"autoZIndex\", \"baseZIndex\", \"minX\", \"minY\", \"focusOnShow\", \"maximizable\", \"keepInViewport\", \"focusTrap\", \"transitionOptions\", \"closeIcon\", \"closeAriaLabel\", \"closeTabindex\", \"minimizeIcon\", \"maximizeIcon\", \"closeButtonProps\", \"maximizeButtonProps\", \"visible\", \"style\", \"position\", \"role\", \"appendTo\", \"content\", \"contentTemplate\", \"footerTemplate\", \"closeIconTemplate\", \"maximizeIconTemplate\", \"minimizeIconTemplate\", \"headlessTemplate\"], outputs: [\"onShow\", \"onHide\", \"visibleChange\", \"onResizeInit\", \"onResizeEnd\", \"onDragEnd\", \"onMaximize\"] }, { kind: \"pipe\", type: i7.TranslatePipe, name: \"translate\" }] });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: GenericDialogComponent, decorators: [{\n type: Component,\n args: [{ standalone: true, selector: 'app-generic-dialog', imports: [\n CommonModule,\n ButtonModule,\n FormlyForm,\n FormsModule,\n ReactiveFormsModule,\n DrawerModule,\n TranslateModule,\n Drawer,\n DialogModule,\n ], providers: [MessageService], template: \"<!-- Drawer -->\\r\\n@if (((typeof displayMode === 'string' ? displayMode : isEditMode ?\\r\\ndisplayMode['edit'] : isViewMode === false ? displayMode['add'] :\\r\\ndisplayMode['view']) === 'drawer') && (drawerVisible || (autoShowForm &&\\r\\ndisplayMode === 'drawer'))) {\\r\\n<p-drawer\\r\\n [(visible)]=\\\"drawerVisible\\\"\\r\\n [closable]=\\\"true\\\"\\r\\n [dismissible]=\\\"false\\\"\\r\\n [closeOnEscape]=\\\"true\\\"\\r\\n (visibleChange)=\\\"visibleChange.emit($event)\\\"\\r\\n [styleClass]=\\\"mode === 'form-only' && forceState === 'view' ? '!w-full md:!w-80 lg:!w-[40rem] !h-full' : '!w-full md:!w-80 lg:!w-[40rem]'\\\"\\r\\n [modal]=\\\"mode !== 'form-only'\\\"\\r\\n [blockScroll]=\\\"mode !== 'form-only'\\\"\\r\\n>\\r\\n <ng-template pTemplate=\\\"header\\\">\\r\\n <span class=\\\"font-bold text-lg\\\">\\r\\n {{ isEditMode ? ('UPDATE' | translate): isViewMode === false ? ('ADD' |\\r\\n translate): ('VIEW' | translate) }}\\r\\n </span>\\r\\n </ng-template>\\r\\n <!-- (ngSubmit)=\\\"onSubmit()\\\" -->\\r\\n <form *ngIf=\\\"form\\\" [formGroup]=\\\"form\\\" class=\\\"p-4\\\">\\r\\n <formly-form\\r\\n [form]=\\\"form\\\"\\r\\n [fields]=\\\"formFields_\\\"\\r\\n [model]=\\\"model\\\"\\r\\n [options]=\\\"options\\\"\\r\\n ></formly-form>\\r\\n </form>\\r\\n\\r\\n <ng-template pTemplate=\\\"footer\\\" *ngIf=\\\"!isViewMode\\\">\\r\\n <div class=\\\"flex justify-end gap-2\\\">\\r\\n <button\\r\\n pButton\\r\\n [label]=\\\"isEditMode ? ('UPDATE' | translate) : ('SAVE' | translate)\\\"\\r\\n type=\\\"button\\\"\\r\\n (click)=\\\"onSubmit()\\\"\\r\\n [disabled]=\\\"loading || form.invalid\\\"\\r\\n [loading]=\\\"loading\\\"\\r\\n ></button>\\r\\n <button\\r\\n pButton\\r\\n label=\\\"{{ 'CANCEL' | translate }}\\\"\\r\\n severity=\\\"danger\\\"\\r\\n (click)=\\\"visibleChange.emit(false);closeForm();\\\"\\r\\n ></button>\\r\\n </div>\\r\\n </ng-template>\\r\\n</p-drawer>\\r\\n}\\r\\n<!-- Dialog -->\\r\\n@if (((typeof displayMode === 'string' ? displayMode : isEditMode ?\\r\\ndisplayMode['edit'] : isViewMode === false ? displayMode['add'] :\\r\\ndisplayMode['view']) === 'dialog') && (dialogVisible || (autoShowForm &&\\r\\ndisplayMode === 'dialog'))) {\\r\\n<p-dialog\\r\\n [(visible)]=\\\"dialogVisible\\\"\\r\\n [closeOnEscape]=\\\"true\\\"\\r\\n (visibleChange)=\\\"visibleChange.emit($event)\\\"\\r\\n [header]=\\\"isEditMode ? ('UPDATE' | translate) : isViewMode === false ? ('ADD'| translate) : ('VIEW'| translate)\\\"\\r\\n [modal]=\\\"mode !== 'form-only'\\\"\\r\\n [style]=\\\"mode === 'form-only' && forceState === 'view' ? { width: '100vw', height: '100vh', maxWidth: 'none' } : { width: '95vw', maxWidth: dialogMaxWidth }\\\"\\r\\n [closable]=\\\"mode !== 'form-only'\\\"\\r\\n [dismissableMask]=\\\"mode !== 'form-only'\\\"\\r\\n>\\r\\n <!-- [breakpoints]=\\\"{ '1200px': '50vw', '768px': '70vw', '560px': '95vw' }\\\" -->\\r\\n <div class=\\\"relative\\\">\\r\\n <div\\r\\n *ngIf=\\\"isViewMode\\\"\\r\\n class=\\\"absolute inset-0 z-10 bg-white/50 pointer-events-auto rounded-md\\\"\\r\\n ></div>\\r\\n <form *ngIf=\\\"form\\\" [formGroup]=\\\"form\\\" class=\\\"p-4\\\">\\r\\n <formly-form\\r\\n [form]=\\\"form\\\"\\r\\n [fields]=\\\"formFields_\\\"\\r\\n [model]=\\\"model\\\"\\r\\n [options]=\\\"options\\\"\\r\\n ></formly-form>\\r\\n </form>\\r\\n </div>\\r\\n\\r\\n <ng-template pTemplate=\\\"footer\\\">\\r\\n <div class=\\\"flex justify-end gap-2\\\">\\r\\n <button\\r\\n *ngIf=\\\"!isViewMode\\\"\\r\\n pButton\\r\\n [label]=\\\"isEditMode ? ('UPDATE' | translate) : ('SAVE' | translate)\\\"\\r\\n type=\\\"button\\\"\\r\\n [disabled]=\\\"loading || form.invalid\\\"\\r\\n [loading]=\\\"loading\\\"\\r\\n (click)=\\\"onSubmit()\\\"\\r\\n ></button>\\r\\n <button\\r\\n pButton\\r\\n label=\\\"{{ isViewMode ? ('CLOSE' | translate) : ('CANCEL' | translate) }}\\\"\\r\\n severity=\\\"secondary\\\"\\r\\n (click)=\\\"visibleChange.emit(false);closeForm();\\\"\\r\\n ></button>\\r\\n </div>\\r\\n </ng-template>\\r\\n</p-dialog>\\r\\n}\\r\\n\\r\\n<!-- Inline Form for form-only mode -->\\r\\n@if (mode === 'form-only' && displayMode === 'inline'){\\r\\n<div class=\\\"w-full\\\">\\r\\n <form *ngIf=\\\"form\\\" [formGroup]=\\\"form\\\">\\r\\n <formly-form\\r\\n [form]=\\\"form\\\"\\r\\n [fields]=\\\"formFields_\\\"\\r\\n [model]=\\\"model\\\"\\r\\n [options]=\\\"options\\\"\\r\\n ></formly-form>\\r\\n </form>\\r\\n</div>\\r\\n}\\r\\n\" }]\n }], propDecorators: { form: [{\n type: Input\n }], service: [{\n type: Input\n }], formFields: [{\n type: Input\n }], model: [{\n type: Input\n }], apiName: [{\n type: Input\n }], idField: [{\n type: Input\n }], dialogMaxWidth: [{\n type: Input\n }], displayMode: [{\n type: Input\n }], mode: [{\n type: Input\n }], forceState: [{\n type: Input\n }], drawerVisible: [{\n type: Input\n }], dialogVisible: [{\n type: Input\n }], isViewMode: [{\n type: Input\n }], isEditMode: [{\n type: Input\n }], useConfirmOnSave: [{\n type: Input\n }], loading: [{\n type: Input\n }], errorMsg: [{\n type: Input\n }], errorMessage: [{\n type: Input\n }], beforeSaveTransform: [{\n type: Input\n }], hideTable: [{\n type: Input\n }], autoShowForm: [{\n type: Input\n }], action: [{\n type: Output\n }], afterSave: [{\n type: Output\n }], afterDelete: [{\n type: Output\n }], beforeSave: [{\n type: Output\n }], beforeDelete: [{\n type: Output\n }], formCancel: [{\n type: Output\n }], formInit: [{\n type: Output\n }], dataLoaded: [{\n type: Output\n }], selectionChange: [{\n type: Output\n }], error: [{\n type: Output\n }], visibleChange: [{\n type: Output\n }] } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2VuZXJpYy1kaWFsb2cuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL25nLnVpLmNvcmUvZ2VuZXJpYy1kaWFsb2cvc3JjL2xpYi9nZW5lcmljLWRpYWxvZy50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvbmcudWkuY29yZS9nZW5lcmljLWRpYWxvZy9zcmMvbGliL2dlbmVyaWMtZGlhbG9nLmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFNBQVMsRUFDVCxZQUFZLEVBQ1osS0FBSyxFQUVMLE1BQU0sRUFHTixNQUFNLEdBQ1AsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM5QyxPQUFPLEVBQ0wsV0FBVyxFQUNYLG1CQUFtQixFQUNuQixnQkFBZ0IsR0FDakIsTUFBTSxnQkFBZ0IsQ0FBQztBQUN4QixPQUFPLEVBRUwsVUFBVSxHQUVYLE1BQU0sa0JBQWtCLENBQUM7QUFDMUIsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUM3QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3RELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxlQUFlLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN4RSxPQUFPLEVBQUUsV0FBVyxFQUFFLGVBQWUsRUFBRSxXQUFXLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUM5RixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7Ozs7Ozs7OztBQW9COUMsTUFBTSxPQUFPLHNCQUFzQjtJQUN6QixRQUFRLEdBQUUsTUFBTSxDQUFDLGVBQWUsQ0FBQyxDQUFDO0lBQzFDLG1CQUFtQjtJQUNuQixTQUFTLEdBQXFCLE1BQU0sQ0FBQyxnQkFBZ0Is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bEIsSUFBSTtzQkFBWixLQUFLO2dCQU1HLE9BQU87c0JBQWYsS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLO2dCQUNHLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csT0FBTztzQkFBZixLQUFLO2dCQUNHLGNBQWM7c0JBQXRCLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFXRyxJQUFJO3NCQUFaLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSztnQkFDRyxhQUFhO3NCQUFyQixLQUFLO2dCQUNHLGFBQWE7c0JBQXJCLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLO2dCQUNHLGdCQUFnQjtzQkFBeEIsS0FBSztnQkFDRyxPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxZQUFZO3NCQUFwQixLQUFLO2dCQUNHLG1CQUFtQjtzQkFBM0IsS0FBSztnQkFHTyxTQUFTO3NCQUFyQixLQUFLO2dCQVFPLFlBQVk7c0JBQXhCLEtBQUs7Z0JBS0ksTUFBTTtzQkFBZixNQUFNO2dCQUNHLFNBQVM7c0JBQWxCLE1BQU07Z0JBS0csV0FBVztzQkFBcEIsTUFBTTtnQkFDRyxVQUFVO3NCQUFuQixNQUFNO2dCQUNHLFlBQVk7c0JBQXJCLE1BQU07Z0JBQ0csVUFBVTtzQkFBbkIsTUFBTTtnQkFDRyxRQUFRO3NCQUFqQixNQUFNO2dCQUlHLFVBQVU7c0JBQW5CLE1BQU07Z0JBQ0csZUFBZTtzQkFBeEIsTUFBTTtnQkFJRyxLQUFLO3NCQUFkLE1BQU07Z0JBQ0csYUFBYTtzQkFBdEIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgQ29tcG9uZW50LFxyXG4gIEV2ZW50RW1pdHRlcixcclxuICBJbnB1dCxcclxuICBPbkluaXQsXHJcbiAgT3V0cHV0LFxyXG4gIE9uQ2hhbmdlcyxcclxuICBTaW1wbGVDaGFuZ2VzLFxyXG4gIGluamVjdCxcclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHsgQnV0dG9uTW9kdWxlIH0gZnJvbSAncHJpbWVuZy9idXR0b24nO1xyXG5pbXBvcnQge1xyXG4gIEZvcm1zTW9kdWxlLFxyXG4gIFJlYWN0aXZlRm9ybXNNb2R1bGUsXHJcbiAgVW50eXBlZEZvcm1Hcm91cCxcclxufSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7XHJcbiAgRm9ybWx5RmllbGRDb25maWcsXHJcbiAgRm9ybWx5Rm9ybSxcclxuICBGb3JtbHlGb3JtT3B0aW9ucyxcclxufSBmcm9tICdAbmd4LWZvcm1seS9jb3JlJztcclxuaW1wb3J0IHsgTWVzc2FnZVNlcnZpY2UgfSBmcm9tICdwcmltZW5nL2FwaSc7XHJcbmltcG9ydCB7IERyYXdlck1vZHVsZSwgRHJhd2VyIH0gZnJvbSAncHJpbWVuZy9kcmF3ZXInO1xyXG5pbXBvcnQgeyBUcmFuc2xhdGVTZXJ2aWNlLCBUcmFuc2xhdGVNb2R1bGUgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcclxuaW1wb3J0IHsgQmFzZVNlcnZpY2UsIElkUGFyc2VyU2VydmljZSwgU3dhbFNlcnZpY2UgfSBmcm9tICdAZWxpdGUuZnJhbWV3b3JrL25nLmNvcmUvc2VydmljZXMnO1xyXG5pbXBvcnQgeyBEaWFsb2dNb2R1bGUgfSBmcm9tICdwcmltZW5nL2RpYWxvZyc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzdGFuZGFsb25lOiB0cnVlLFxyXG4gIHNlbGVjdG9yOiAnYXBwLWdlbmVyaWMtZGlhbG9nJyxcclxuICBpbXBvcnRzOiBbXHJcbiAgICBDb21tb25Nb2R1bGUsXHJcbiAgICBCdXR0b25Nb2R1bGUsXHJcbiAgICBGb3JtbHlGb3JtLFxyXG4gICAgRm9ybXNNb2R1bGUsXHJcbiAgICBSZWFjdGl2ZUZvcm1zTW9kdWxlLFxyXG4gICAgRHJhd2VyTW9kdWxlLFxyXG4gICAgVHJhbnNsYXRlTW9kdWxlLFxyXG4gICAgRHJhd2VyLFxyXG4gICAgRGlhbG9nTW9kdWxlLFxyXG4gIF0sXHJcbiAgcHJvdmlkZXJzOiBbTWVzc2FnZVNlcnZpY2VdLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9nZW5lcmljLWRpYWxvZy5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9nZW5lcmljLWRpYWxvZy5jc3MnXSxcclxufSlcclxuZXhwb3J0IGNsYXNzIEdlbmVyaWNEaWFsb2dDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uQ2hhbmdlcyB7XHJcbiAgcHJpdmF0ZSBpZFBhcnNlcj0gaW5qZWN0KElkUGFyc2VyU2VydmljZSk7XHJcbiAgLy8g2KfZhNiu2K/Zhdin2Kog2KfZhNmF2K3ZgtmI2YbYqVxyXG4gIHRyYW5zbGF0ZTogVHJhbnNsYXRlU2VydmljZSA9IGluamVjdChUcmFuc2xhdGVTZXJ2aWNlKTtcclxuICBwcml2YXRlIHN3YWxTZXJ2aWNlID0gaW5qZWN0KFN3YWxTZXJ2aWNlKTtcclxuXHJcbiAgLy8g2KfZhNit2KfZhNipINin2YTYr9in2K7ZhNmK2Kkg2YTZhNmB2YjYsdmFXHJcbiAgQElucHV0KCkgZm9ybSA9IG5ldyBVbnR5cGVkRm9ybUdyb3VwKHt9KTtcclxuICBvcHRpb25zOiBGb3JtbHlGb3JtT3B0aW9ucyA9IHt9O1xyXG4gIGZvcm1GaWVsZHNfOiBGb3JtbHlGaWVsZENvbmZpZ1tdID0gW107XHJcbiAgbW9kZWxfOiBhbnkgPSB7fTtcclxuXHJcbiAgLy8g2KfZhNmF2K/YrtmE2KfYqiAoSW5wdXRzKVxyXG4gIEBJbnB1dCgpIHNlcnZpY2U6IEJhc2VTZXJ2aWNlID0gaW5qZWN0KEJhc2VTZXJ2aWNlKTtcclxuICBASW5wdXQoKSBmb3JtRmllbGRzOiBGb3JtbHlGaWVsZENvbmZpZ1tdID0gW107XHJcbiAgQElucHV0KCkgbW9kZWw6IGFueTtcclxuICBASW5wdXQoKSBhcGlOYW1lID0gJyc7XHJcbiAgQElucHV0KCkgaWRGaWVsZCA9ICdpZCc7XHJcbiAgQElucHV0KCkgZGlhbG9nTWF4V2lkdGggPSAnNDByZW0nOyAvLyDYo9mC2LXZiSDYudix2LYg2YTZhNiv2KfZitmE2YjYrFxyXG4gIEBJbnB1dCgpIGRpc3BsYXlNb2RlOlxyXG4gICAgfCAnZHJhd2VyJ1xyXG4gICAgfCAnZGlhbG9nJ1xyXG4gICAgfCAncm91dGUnXHJcbiAgICB8ICdpbmxpbmUnXHJcbiAgICB8IFBhcnRpYWw8XHJcbiAgICAgIFJlY29yZDxcclxuICAgICAgICAnYWRkJyB8ICdlZGl0JyB8ICd2aWV3JyxcclxuICAgICAgICAnZHJhd2VyJyB8ICdkaWFsb2cnIHwgJ3JvdXRlJyB8ICdpbmxpbmUnXHJcbiAgICAgID5cclxuICAgID4gPSAnZHJhd2VyJztcclxuICBASW5wdXQoKSBtb2RlOiAnZnVsbCcgfCAnZm9ybS1vbmx5JyB8ICd0YWJsZS1vbmx5JyB8ICdkZXRhaWwnID0gJ2Z1bGwnOyAvLyDZiNi22Lkg2KfZhNi52LHYtlxyXG4gIEBJbnB1dCgpIGZvcmNlU3RhdGU6ICdjcmVhdGUnIHwgJ2VkaXQnIHwgJ3ZpZXcnIHwgbnVsbCA9IG51bGw7IC8vINil2KzYqNin2LEg2K3Yp9mE2Kkg2YXYudmK2YbYqVxyXG4gIEBJbnB1dCgpIGRyYXdlclZpc2libGUgPSBmYWxzZTsgLy8g2LjZh9mI2LEg2KfZhNmAIGRyYXdlclxyXG4gIEBJbnB1dCgpIGRpYWxvZ1Zpc2libGUgPSBmYWxzZTsgLy8g2LjZh9mI2LEg2KfZhNmAIGRpYWxvZ1xyXG4gIEBJbnB1dCgpIGlzVmlld01vZGUgPSBmYWxzZTsgLy8g2YjYtti5INin2YTZhdi02KfZh9iv2Kkg2YHZgti3XHJcbiAgQElucHV0KCkgaXNFZGl0TW9kZSA9IGZhbHNlOyAvLyDZiNi22Lkg2KfZhNiq2LnYr9mK2YRcclxuICBASW5wdXQoKSB1c2VDb25maXJtT25TYXZlID0gZmFsc2U7IC8vINin2LPYqtiu2K/Yp9mFINiq2KPZg9mK2K8g2LnZhtivINin2YTYrdmB2LhcclxuICBASW5wdXQoKSBsb2FkaW5nID0gZmFsc2U7IC8vINit2KfZhNipINin2YTYqtit2YXZitmEXHJcbiAgQElucHV0KCkgZXJyb3JNc2cgPSAnJzsgLy8g2LHYs9in2YTYqSDYrti32KMg2YXYrtiq2LXYsdipXHJcbiAgQElucHV0KCkgZXJyb3JNZXNzYWdlOiBzdHJpbmcgfCBhbnkgPSAnJzsgLy8g2LHYs9in2YTYqSDYrti32KMg2KrZgdi12YrZhNmK2KlcclxuICBASW5wdXQoKSBiZWZvcmVTYXZlVHJhbnNmb3JtPzogKHJlY29yZDogYW55LCBpc0VkaXQ6IGJvb2xlYW4pID0+IGFueTsgLy8g4pqhINiv2YjYp9mEINmF2K7Ytdi12Kkg2YLYqNmEINin2YTYrdmB2LhcclxuXHJcbiAgLy8g2KfZhNmF2K/YrtmE2KfYqiDYp9mE2YXYrdiz2YjYqNipXHJcbiAgQElucHV0KCkgZ2V0IGhpZGVUYWJsZSgpOiBib29sZWFuIHtcclxuICAgIHJldHVybiAoXHJcbiAgICAgICh0aGlzLm1vZGUgPT09ICdmb3JtLW9ubHknIHx8XHJcbiAgICAgICAgKHRoaXMuZm9yY2VTdGF0ZSAmJiB0aGlzLm1vZGUgIT09ICd0YWJsZS1vbmx5JykpID8/XHJcbiAgICAgIGZhbHNlXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgQElucHV0KCkgZ2V0IGF1dG9TaG93Rm9ybSgpOiBib29sZWFuIHtcclxuICAgIHJldHVybiB0aGlzLm1vZGUgPT09ICdmb3JtLW9ubHknICYmICEhdGhpcy5mb3JjZVN0YXRlO1xyXG4gIH1cclxuXHJcbiAgLy8g2KfZhNmF2K7Ysdis2KfYqiAoT3V0cHV0cylcclxuICBAT3V0cHV0KCkgYWN0aW9uID0gbmV3IEV2ZW50RW1pdHRlcjx7IG5hbWU6IHN0cmluZzsgcm93OiBhbnkgfT4oKTtcclxuICBAT3V0cHV0KCkgYWZ0ZXJTYXZlID0gbmV3IEV2ZW50RW1pdHRlcjx7XHJcbiAgICByZWNvcmQ6IGFueTtcclxuICAgIGlzRWRpdDogYm9vbGVhbjtcclxuICAgIHJlc3BvbnNlPzogYW55O1xyXG4gIH0+KCk7XHJcbiAgQE91dHB1dCgpIGFmdGVyRGVsZXRlID0gbmV3IEV2ZW50RW1pdHRlcjx7IHJlY29yZDogYW55OyByZXNwb25zZT86IGFueSB9PigpO1xyXG4gIEBPdXRwdXQoKSBiZWZvcmVTYXZlID0gbmV3IEV2ZW50RW1pdHRlcjx7IHJlY29yZDogYW55OyBpc0VkaXQ6IGJvb2xlYW4gfT4oKTtcclxuICBAT3V0cHV0KCkgYmVmb3JlRGVsZXRlID0gbmV3IEV2ZW50RW1pdHRlcjx7IHJlY29yZDogYW55IH0+KCk7XHJcbiAgQE91dHB1dCgpIGZvcm1DYW5jZWwgPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XHJcbiAgQE91dHB1dCgpIGZvcm1Jbml0ID0gbmV3IEV2ZW50RW1pdHRlcjx7XHJcbiAgICBmb3JtOiBVbnR5cGVkRm9ybUdyb3VwO1xyXG4gICAgbW9kZWw6IGFueTtcclxuICB9PigpO1xyXG4gIEBPdXRwdXQoKSBkYXRhTG9hZGVkID0gbmV3IEV2ZW50RW1pdHRlcjx7IGRhdGE6IGFueVtdOyB0b3RhbDogbnVtYmVyIH0+KCk7XHJcbiAgQE91dHB1dCgpIHNlbGVjdGlvbkNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8e1xyXG4gICAgc2VsZWN0ZWQ6IGFueVtdO1xyXG4gICAgc2VsZWN0ZWRDb3VudDogbnVtYmVyO1xyXG4gIH0+KCk7XHJcbiAgQE91dHB1dCgpIGVycm9yID0gbmV3IEV2ZW50RW1pdHRlcjx7IGVycm9yOiBhbnk7IGNvbnRleHQ6IHN0cmluZyB9PigpO1xyXG4gIEBPdXRwdXQoKSB2aXNpYmxlQ2hhbmdlOiBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4gPSBuZXcgRXZlbnRFbWl0dGVyPGJvb2xlYW4+KCk7XHJcblxyXG4gIG5nT25Jbml0KCkge1xyXG4gICAgaWYgKHRoaXMuYXBpTmFtZSAmJiB0aGlzLmFwaU5hbWUgIT0gJycpIHtcclxuICAgICAgdGhpcy5zZXJ2aWNlLmFwaU5hbWUgPSB0aGlzLmFwaU5hbWU7XHJcbiAgICB9XHJcbiAgICAvLyBBdXRvLXNob3cgZm9ybSB3aGVuIGluIGZvcm0tb25seSBtb2RlIHdpdGggZm9yY2VTdGF0ZVxyXG4gICAgdGhpcy5mb3JtRmllbGRzXyA9IHRoaXMuZm9ybUZpZWxkcztcclxuICAgIGlmICh0aGlzLmF1dG9TaG93Rm9ybSkge1xyXG4gICAgICB0aGlzLmluaXRpYWxpemVGb3JtU3RhdGUoKTtcclxuICAgIH1cclxuICB9XHJcbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcykgeyB9XHJcbiAgLy8gSGVscGVyIG1ldGhvZCB0byBvcGVuIGZvcm0gcHJvZ3JhbW1hdGljYWxseVxyXG4gIG9wZW5Gb3JtKG1vZGU6ICdjcmVhdGUnIHwgJ2VkaXQnIHwgJ3ZpZXcnLCBtb2RlbD86IGFueSkge1xyXG4gICAgdGhpcy5mb3JjZVN0YXRlID0gbW9kZTtcclxuICAgIHRoaXMuZm9ybUZpZWxkc18gPSB0aGlzLmZvcm1GaWVsZHM7XHJcbiAgICBpZiAobW9kZWwpIHtcclxuICAgICAgdGhpcy5tb2RlbCA9IG1vZGVsO1xyXG4gICAgfVxyXG4gICAgZWxzZXtcclxuICAgICAgdGhpcy5tb2RlbCA9IHt9O1xyXG4gICAgfVxyXG5cclxuXHJcbiAgICAgc3dpdGNoIChtb2RlKSB7XHJcbiAgICAgICAgY2FzZSAnY3JlYXRlJzpcclxuICAgICAgICAgIHRoaXMuaXNFZGl0TW9kZSA9IGZhbHNlO1xyXG4gICAgICAgICAgdGhpcy5pc1ZpZXdNb2RlID0gZmFsc2U7XHJcbiAgICAgICAgICB0aGlzLm1vZGVsID0ge307XHJcbiAgICAgICAgICBicmVhaztcclxuICAgICAgICBjYXNlICdlZGl0JzpcclxuICAgICAgICAgIHRoaXMuaXNFZGl0TW9kZSA9IHRydWU7XHJcbiAgICAgICAgICB0aGlzLmlzVmlld01vZGUgPSBmYWxzZTtcclxuICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIGNhc2UgJ3ZpZXcnOlxyXG4gICAgICAgICAgdGhpcy5pc0VkaXRNb2RlID0gZmFsc2U7XHJcbiAgICAgICAgICB0aGlzLmlzVmlld01vZGUgPSB0cnVlO1xyXG4gICAgICAgICAgYnJlYWs7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgICBjb25zdCBtb2RlQ29uZmlnID0gdHlwZW9mIHRoaXMuZGlzcGxheU1vZGUgPT09ICdzdHJpbmcnXHJcbiAgICA/IHRoaXMuZGlzcGxheU1vZGVcclxuICAgIDogKHRoaXMuZGlzcGxheU1vZGUgYXMgYW55KVttb2RlXSA/PyAnZHJhd2VyJztcclxuXHJcbiAgICAvLyBUcmlnZ2VyIGZvcm0gb3BlbmluZyBiYXNlZCBvbiBkaXNwbGF5TW9kZVxyXG4gICAgaWYgKG1vZGVDb25maWcgPT09ICdkcmF3ZXInKSB7XHJcbiAgICAgIHRoaXMuZHJhd2VyVmlzaWJsZSA9IHRydWU7XHJcbiAgICB9IGVsc2UgaWYgKG1vZGVDb25maWcgPT09ICdkaWFsb2cnKSB7XHJcbiAgICAgIHRoaXMuZGlhbG9nVmlzaWJsZSA9IHRydWU7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuXHJcbiAgLy8gTWV0aG9kIHRvIGNsb3NlIGZvcm0gcHJvZ3JhbW1hdGljYWxseVxyXG4gIGNsb3NlRm9ybSgpIHtcclxuICAgIHRoaXMuZHJhd2VyVmlzaWJsZSA9IGZhbHNlO1xyXG4gICAgdGhpcy5kaWFsb2dWaXNpYmxlID0gZmFsc2U7XHJcbiAgICB0aGlzLmZvcmNlU3RhdGUgPSBudWxsO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBpbml0aWFsaXplRm9ybVN0YXRlKCkge1xyXG4gICAgaWYgKHRoaXMuZm9yY2VTdGF0ZSAmJiB0aGlzLm1vZGUgPT09ICdmb3JtLW9ubHknKSB7XHJcbiAgICAgIHRoaXMuZm9ybUZpZWxkc18gPSB0aGlzLmZvcm1GaWVsZHM7XHJcbiAgICAgIHN3aXRjaCAodGhpcy5mb3JjZVN0YXRlKSB7XHJcbiAgICAgICAgY2FzZSAnY3JlYXRlJzpcclxuICAgICAgICAgIHRoaXMuaXNFZGl0TW9kZSA9IGZhbHNlO1xyXG4gICAgICAgICAgdGhpcy5pc1ZpZXdNb2RlID0gZmFsc2U7XHJcbiAgICAgICAgICB0aGlzLm1vZGVsID0ge307XHJcbiAgICAgICAgICBicmVhaztcclxuICAgICAgICBjYXNlICdlZGl0JzpcclxuICAgICAgICAgIHRoaXMuaXNFZGl0TW9kZSA9IHRydWU7XHJcbiAgICAgICAgICB0aGlzLmlzVmlld01vZGUgPSBmYWxzZTtcclxuICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIGNhc2UgJ3ZpZXcnOlxyXG4gICAgICAgICAgdGhpcy5pc0VkaXRNb2RlID0gZmFsc2U7XHJcbiAgICAgICAgICB0aGlzLmlzVmlld01vZGUgPSB0cnVlO1xyXG4gICAgICAgICAgYnJlYWs7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIC8vIEF1dG8tc2hvdyB0aGUgZm9ybVxyXG4gICAgICAgY29uc3QgbW9kZUNvbmZpZyA9IHR5cGVvZiB0aGlzLmRpc3BsYXlNb2RlID09PSAnc3RyaW5nJ1xyXG4gICAgPyB0aGlzLmRpc3BsYXlNb2RlXHJcbiAgICA6ICh0aGlzLmRpc3BsYXlNb2RlIGFzIGFueSlbdGhpcy5mb3JjZVN0YXRlXSA/PyAnZHJhd2VyJztcclxuXHJcbiAgICAvLyBUcmlnZ2VyIGZvcm0gb3BlbmluZyBiYXNlZCBvbiBkaXNwbGF5TW9kZVxyXG4gICAgaWYgKG1vZGVDb25maWcgPT09ICdkcmF3ZXInKSB7XHJcbiAgICAgIHRoaXMuZHJhd2VyVmlzaWJsZSA9IHRydWU7XHJcbiAgICB9IGVsc2UgaWYgKG1vZGVDb25maWcgPT09ICdkaWFsb2cnKSB7XHJcbiAgICAgIHRoaXMuZGlhbG9nVmlzaWJsZSA9IHRydWU7XHJcbiAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBvblN1Ym1pdCgpIHtcclxuICAgIGlmICh0aGlzLmZvcm0uaW52YWxpZCkgcmV0dXJuO1xyXG5cclxuICAgIGNvbnN0IHNhdmUgPSAoKSA9PiB7XHJcbiAgICAgIHRoaXMubG9hZGluZyA9IHRydWU7XHJcbiAgICAgIHRoaXMuZXJyb3JNZXNzYWdlID0gbnVsbDtcclxuXHJcbiAgICAgIC8vIGNvbnN0IGlkID0gdGhpcy5pc0VkaXRNb2RlID8gKHRoaXMubW9kZWwgYXMgYW55KVt0aGlzLmlkRmllbGRdIDogbnVsbDtcclxuICAgICAgY29uc3QgaWQgPSB0aGlzLmlzRWRpdE1vZGVcclxuICAgICAgPyB0aGlzLmlkUGFyc2VyLnBhcnNlSWRzKHRoaXMubW9kZWwsIHRoaXMuaWRGaWVsZClcclxuICAgICAgOiBudWxsO1xyXG5cclxuICAgICAgLy8gRW1pdCBiZWZvcmVTYXZlIGV2ZW50XHJcbiAgICAgIGNvbnN0IGJlZm9yZVNhdmVEYXRhID0ge1xyXG4gICAgICAgIHJlY29yZDogeyAuLi50aGlzLm1vZGVsIH0sXHJcbiAgICAgICAgaXNFZGl0OiB0aGlzLmlzRWRpdE1vZGUsXHJcbiAgICAgIH07XHJcbiAgICAgIHRoaXMuYmVmb3JlU2F2ZS5lbWl0KGJlZm9yZVNhdmVEYXRhKTtcclxuXHJcbiAgICAgIC8vIEFsbG93IHBhcmVudCB0byBtb2RpZnkgZGF0YSBiZWZvcmUgc2F2ZVxyXG4gICAgICBsZXQgcmVjb3JkVG9TYXZlID0gdGhpcy5iZWZvcmVTYXZlVHJhbnNmb3JtXHJcbiAgICAgICAgPyB0aGlzLmJlZm9yZVNhdmVUcmFuc2Zvcm0oYmVmb3JlU2F2ZURhdGEucmVjb3JkLCB0aGlzLmlzRWRpdE1vZGUpXHJcbiAgICAgICAgOiBiZWZvcmVTYXZlRGF0YS5yZWNvcmQ7XHJcblxyXG4gICAgICBjb25zdCBvcGVyYXRpb24kID0gdGhpcy5pc0VkaXRNb2RlXHJcbiAgICAgICAgPyB0aGlzLnNlcnZpY2UudXBkYXRlKGlkLCByZWNvcmRUb1NhdmUpXHJcbiAgICAgICAgOiB0aGlzLnNlcnZpY2UuY3JlYXRlKHJlY29yZFRvU2F2ZSk7XHJcblxyXG4gICAgICBvcGVyYXRpb24kLnN1YnNjcmliZSh7XHJcbiAgICAgICAgbmV4dDogKHJlc3BvbnNlOiBhbnkpID0+IHtcclxuICAgICAgICAgIHRoaXMubG9hZGluZyA9IGZhbHNlO1xyXG5cclxuICAgICAgICAgIC8vIOKchSDYsdiz2KfZhNipINmG2KzYp9itXHJcbiAgICAgICAgICB0aGlzLnN3YWxTZXJ2aWNlLnN1Y2Nlc3MoXHJcbiAgICAgICAgICAgIHRoaXMuaXNFZGl0TW9kZSA/ICfYqtmFINin2YTYqti52K/ZitmEINio2YbYrNin2K0nIDogJ9iq2YUg2KfZhNit2YHYuCDYqNmG2KzYp9itJ1xyXG4gICAgICAgICAgKTtcclxuXHJcbiAgICAgICAgICAvLyBFbWl0IGFmdGVyU2F2ZSBldmVudFxyXG4gICAgICAgICAgdGhpcy5hZnRlclNhdmUuZW1pdCh7XHJcbiAgICAgICAgICAgIHJlY29yZDogcmVjb3JkVG9TYXZlLFxyXG4gICAgICAgICAgICBpc0VkaXQ6IHRoaXMuaXNFZGl0TW9kZSxcclxuICAgICAgICAgICAgcmVzcG9uc2U6IHJlc3BvbnNlLFxyXG4gICAgICAgICAgfSk7XHJcbiAgICAgICAgICB0aGlzLnZpc2libGVDaGFuZ2UuZW1pdChmYWxzZSk7XHJcbiAgICAgICAgICB0aGlzLmNsb3NlRm9ybSgpO1xyXG4gICAgICAgICAgaWYgKHRoaXMubW9kZSAhPSAnZm9ybS1vbmx5Jykge1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgZXJyb3I6IChlcnJvcjogYW55KSA9PiB7XHJcbiAgICAgICAgICAvLyDinYwg2YXYpyDZhti52LHYtiDYsdiz2KfZhNipINiu2LfYoyDZh9mG2Kcg2YTYo9mGINin2YTZgCBpbnRlcmNlcHRvciDZitiq2YPZgdmEINmB2YrZh9inXHJcbiAgICAgICAgICB0aGlzLmxvYWRpbmcgPSBmYWxzZTtcclxuICAgICAgICAgIHRoaXMuZXJyb3IuZW1pdCh7IGVycm9yOiBlcnJvciwgY29udGV4dDogJ3NhdmUnIH0pO1xyXG4gICAgICAgIH0sXHJcbiAgICAgIH0pO1xyXG4gICAgfTtcclxuXHJcbiAgICBpZiAodGhpcy51c2VDb25maXJtT25TYXZlKSB7XHJcbiAgICAgIHRoaXMuc3dhbFNlcnZpY2VcclxuICAgICAgICAuY29uZmlybShcclxuICAgICAgICAgIHRoaXMuaXNFZGl0TW9kZSA/ICfYqtij2YPZitivINin2YTYqti52K/ZitmEJyA6ICfYqtij2YPZitivINin2YTYrdmB2LgnLFxyXG4gICAgICAgICAgdGhpcy5pc0VkaXRNb2RlXHJcbiAgICAgICAgICAgID8gJ9mH2YQg2KrYsdmK2K8g2K3Zgdi4INin2YTYqti52K/ZitmE2KfYqiDYudmE2Ykg2YfYsNinINin2YTYs9is2YTYnydcclxuICAgICAgICAgICAgOiAn2YfZhCDYqtix2YrYryDYrdmB2Lgg2YfYsNinINin2YTYs9is2YTYnycsXHJcbiAgICAgICAgICAn2YbYudmFJyxcclxuICAgICAgICAgICfYpdmE2LrYp9ihJ1xyXG4gICAgICAgIClcclxuICAgICAgICAudGhlbigocmVzdWx0KSA9PiB7XHJcbiAgICAgICAgICBpZiAocmVzdWx0LmlzQ29uZmlybWVkKSB7XHJcbiAgICAgICAgICAgIHNhdmUoKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHNhdmUoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8qKiBOZXcgY2FuY2VsIG1ldGhvZCBmb3IgZm9ybS1vbmx5IG1vZGUgKi9cclxuICBvbkNhbmNlbCgpIHtcclxuICAgIHRoaXMudmlzaWJsZUNoYW5nZS5lbWl0KGZhbHNlKTtcclxuICAgIC8vIEVtaXQgY2FuY2VsIGV2ZW50IGZvciBwYXJlbnQgY29tcG9uZW50IHRvIGhhbmRsZSBuYXZpZ2F0aW9uXHJcbiAgICB0aGlzLmFjdGlvbi5lbWl0KHsgbmFtZTogJ2NhbmNlbCcsIHJvdzogbnVsbCEgfSk7XHJcbiAgfVxyXG59XHJcbiIsIjwhLS0gRHJhd2VyIC0tPlxyXG5AaWYgKCgodHlwZW9mIGRpc3BsYXlNb2RlID09PSAnc3RyaW5nJyA/IGRpc3BsYXlNb2RlIDogaXNFZGl0TW9kZSA/XHJcbmRpc3BsYXlNb2RlWydlZGl0J10gOiBpc1ZpZXdNb2RlID09PSBmYWxzZSA/IGRpc3BsYXlNb2RlWydhZGQnXSA6XHJcbmRpc3BsYXlNb2RlWyd2aWV3J10pID09PSAnZHJhd2VyJykgJiYgKGRyYXdlclZpc2libGUgfHwgKGF1dG9TaG93Rm9ybSAmJlxyXG5kaXNwbGF5TW9kZSA9PT0gJ2RyYXdlcicpKSkge1xyXG48cC1kcmF3ZXJcclxuICBbKHZpc2libGUpXT1cImRyYXdlclZpc2libGVcIlxyXG4gIFtjbG9zYWJsZV09XCJ0cnVlXCJcclxuICBbZGlzbWlzc2libGVdPVwiZmFsc2VcIlxyXG4gIFtjbG9zZU9uRXNjYXBlXT1cInRydWVcIlxyXG4gICh2aXNpYmxlQ2hhbmdlKT1cInZpc2libGVDaGFuZ2UuZW1pdCgkZXZlbnQpXCJcclxuICBbc3R5bGVDbGFzc109XCJtb2RlID09PSAnZm9ybS1vbmx5JyAmJiBmb3JjZVN0YXRlID09PSAndmlldycgPyAnIXctZnVsbCBtZDohdy04MCBsZzohdy1bNDByZW1dICFoLWZ1bGwnIDogJyF3LWZ1bGwgbWQ6IXctODAgbGc6IXctWzQwcmVtXSdcIlxyXG4gIFttb2RhbF09XCJtb2RlICE9PSAnZm9ybS1vbmx5J1wiXHJcbiAgW2Jsb2NrU2Nyb2xsXT1cIm1vZGUgIT09ICdmb3JtLW9ubHknXCJcclxuPlxyXG4gIDxuZy10ZW1wbGF0ZSBwVGVtcGxhdGU9XCJoZWFkZXJcIj5cclxuICAgIDxzcGFuIGNsYXNzPVwiZm9udC1ib2xkIHRleHQtbGdcIj5cclxuICAgICAge3sgaXNFZGl0TW9kZSA/ICgnVVBEQVRFJyB8IHRyYW5zbGF0ZSk6IGlzVmlld01vZGUgPT09IGZhbHNlID8gKCdBREQnIHxcclxuICAgICAgdHJhbnNsYXRlKTogKCdWSUVXJyB8IHRyYW5zbGF0ZSkgfX1cclxuICAgIDwvc3Bhbj5cclxuICA8L25nLXRlbXBsYXRlPlxyXG4gIDwhLS0gKG5nU3VibWl0KT1cIm9uU3VibWl0KClcIiAtLT5cclxuICA8Zm9ybSAqbmdJZj1cImZvcm1cIiBbZm9ybUdyb3VwXT1cImZvcm1cIiBjbGFzcz1cInAtNFwiPlxyXG4gICAgPGZvcm1seS1mb3JtXHJcbiAgICAgIFtmb3JtXT1cImZvcm1cIlxyXG4gICAgICBbZmllbGRzXT1cImZvcm1GaWVsZHNfXCJcclxuICAgICAgW21vZGVsXT1cIm1vZGVsXCJcclxuICAgICAgW29wdGlvbnNdPVwib3B0aW9uc1wiXHJcbiAgICA+PC9mb3JtbHktZm9ybT5cclxuICA8L2Zvcm0+XHJcblxyXG4gIDxuZy10ZW1wbGF0ZSBwVGVtcGxhdGU9XCJmb290ZXJcIiAqbmdJZj1cIiFpc1ZpZXdNb2RlXCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwiZmxleCBqdXN0aWZ5LWVuZCBnYXAtMlwiPlxyXG4gICAgICA8YnV0dG9uXHJcbiAgICAgICAgcEJ1dHRvblxyXG4gICAgICAgIFtsYWJlbF09XCJpc0VkaXRNb2RlID8gKCdVUERBVEUnIHwgdHJhbnNsYXRlKSA6ICgnU0FWRScgfCB0cmFuc2xhdGUpXCJcclxuICAgICAgICB0eXBlPVwiYnV0dG9uXCJcclxuICAgICAgICAoY2xpY2spPVwib25TdWJtaXQoKVwiXHJcbiAgICAgICAgW2Rpc2FibGVkXT1cImxvYWRpbmcgfHwgZm9ybS5pbnZhbGlkXCJcclxuICAgICAgICBbbG9hZGluZ109XCJsb2FkaW5nXCJcclxuICAgICAgPjwvYnV0dG9uPlxyXG4gICAgICA8YnV0dG9uXHJcbiAgICAgICAgcEJ1dHRvblxyXG4gICAgICAgIGxhYmVsPVwie3sgJ0NBTkNFTCcgfCB0cmFuc2xhdGUgfX1cIlxyXG4gICAgICAgIHNldmVyaXR5PVwiZGFuZ2VyXCJcclxuICAgICAgICAoY2xpY2spPVwidmlzaWJsZUNoYW5nZS5lbWl0KGZhbHNlKTtjbG9zZUZvcm0oKTtcIlxyXG4gICAgICA+PC9idXR0b24+XHJcbiAgICA8L2Rpdj5cclxuICA8L25nLXRlbXBsYXRlPlxyXG48L3AtZHJhd2VyPlxyXG59XHJcbjwhLS0gRGlhbG9nIC0tPlxyXG5AaWYgKCgodHlwZW9mIGRpc3BsYXlNb2RlID09PSAnc3RyaW5nJyA/IGRpc3BsYXlNb2RlIDogaXNFZGl0TW9kZSA/XHJcbmRpc3BsYXlNb2RlWydlZGl0J10gOiBpc1ZpZXdNb2RlID09PSBmYWxzZSA/IGRpc3BsYXlNb2RlWydhZGQnXSA6XHJcbmRpc3BsYXlNb2RlWyd2aWV3J10pID09PSAnZGlhbG9nJykgJiYgKGRpYWxvZ1Zpc2libGUgfHwgKGF1dG9TaG93Rm9ybSAmJlxyXG5kaXNwbGF5TW9kZSA9PT0gJ2RpYWxvZycpKSkge1xyXG48cC1kaWFsb2dcclxuICBbKHZpc2libGUpXT1cImRpYWxvZ1Zpc2libGVcIlxyXG4gIFtjbG9zZU9uRXNjYXBlXT1cInRydWVcIlxyXG4gICh2aXNpYmxlQ2hhbmdlKT1cInZpc2libGVDaGFuZ2UuZW1pdCgkZXZlbnQpXCJcclxuICBbaGVhZGVyXT1cImlzRWRpdE1vZGUgPyAoJ1VQREFURScgfCB0cmFuc2xhdGUpIDogaXNWaWV3TW9kZSA9PT0gZmFsc2UgPyAoJ0FERCd8IHRyYW5zbGF0ZSkgOiAoJ1ZJRVcnfCB0cmFuc2xhdGUpXCJcclxuICBbbW9kYWxdPVwibW9kZSAhPT0gJ2Zvcm0tb25seSdcIlxyXG4gIFtzdHlsZV09XCJtb2RlID09PSAnZm9ybS1vbmx5JyAmJiBmb3JjZVN0YXRlID09PSAndmlldycgPyB7IHdpZHRoOiAnMTAwdncnLCBoZWlnaHQ6ICcxMDB2aCcsIG1heFdpZHRoOiAnbm9uZScgfSA6IHsgd2lkdGg6ICc5NXZ3JywgbWF4V2lkdGg6IGRpYWxvZ01heFdpZHRoIH1cIlxyXG4gIFtjbG9zYWJsZV09XCJtb2RlICE9PSAnZm9ybS1vbmx5J1wiXHJcbiAgW2Rpc21pc3NhYmxlTWFza109XCJtb2RlICE9PSAnZm9ybS1vbmx5J1wiXHJcbj5cclxuICA8IS0tIFticmVha3BvaW50c109XCJ7ICcxMjAwcHgnOiAnNTB2dycsICc3NjhweCc6ICc3MHZ3JywgJzU2MHB4JzogJzk1dncnIH1cIiAtLT5cclxuICA8ZGl2IGNsYXNzPVwicmVsYXRpdmVcIj5cclxuICAgIDxkaXZcclxuICAgICAgKm5nSWY9XCJpc1ZpZXdNb2RlXCJcclxuICAgICAgY2xhc3M9XCJhYnNvbHV0ZSBpbnNldC0wIHotMTAgYmctd2hpdGUvNTAgcG9pbnRlci1ldmVudHMtYXV0byByb3VuZGVkLW1kXCJcclxuICAgID48L2Rpdj5cclxuICAgIDxmb3JtICpuZ0lmPVwiZm9ybVwiIFtmb3JtR3JvdXBdPVwiZm9ybVwiIGNsYXNzPVwicC00XCI+XHJcbiAgICAgIDxmb3JtbHktZm9ybVxyXG4gICAgICAgIFtmb3JtXT1cImZvcm1cIlxyXG4gICAgICAgIFtmaWVsZHNdPVwiZm9ybUZpZWxkc19cIlxyXG4gICAgICAgIFttb2RlbF09XCJtb2RlbFwiXHJcbiAgICAgICAgW29wdGlvbnNdPVwib3B0aW9uc1wiXHJcbiAgICAgID48L2Zvcm1seS1mb3JtPlxyXG4gICAgPC9mb3JtPlxyXG4gIDwvZGl2PlxyXG5cclxuICA8bmctdGVtcGxhdGUgcFRlbXBsYXRlPVwiZm9vdGVyXCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwiZmxleCBqdXN0aWZ5LWVuZCBnYXAtMlwiPlxyXG4gICAgICA8YnV0dG9uXHJcbiAgICAgICAgKm5nSWY9XCIhaXNWaWV3TW9kZVwiXHJcbiAgICAgICAgcEJ1dHRvblxyXG4gICAgICAgIFtsYWJlbF09XCJpc0VkaXRNb2RlID8gKCdVUERBVEUnIHwgdHJhbnNsYXRlKSA6ICgnU0FWRScgfCB0cmFuc2xhdGUpXCJcclxuICAgICAgICB0eXBlPVwiYnV0dG9uXCJcclxuICAgICAgICBbZGlzYWJsZWRdPVwibG9hZGluZyB8fCBmb3JtLmludmFsaWRcIlxyXG4gICAgICAgIFtsb2FkaW5nXT1cImxvYWRpbmdcIlxyXG4gICAgICAgIChjbGljayk9XCJvblN1Ym1pdCgpXCJcclxuICAgICAgPjwvYnV0dG9uPlxyXG4gICAgICA8YnV0dG9uXHJcbiAgICAgICAgcEJ1dHRvblxyXG4gICAgICAgIGxhYmVsPVwie3sgaXNWaWV3TW9kZSA/ICgnQ0xPU0UnIHwgdHJhbnNsYXRlKSA6ICgnQ0FOQ0VMJyB8IHRyYW5zbGF0ZSkgfX1cIlxyXG4gICAgICAgIHNldmVyaXR5PVwic2Vjb25kYXJ5XCJcclxuICAgICAgICAoY2xpY2spPVwidmlzaWJsZUNoYW5nZS5lbWl0KGZhbHNlKTtjbG9zZUZvcm0oKTtcIlxyXG4gICAgICA+PC9idXR0b24+XHJcbiAgICA8L2Rpdj5cclxuICA8L25nLXRlbXBsYXRlPlxyXG48L3AtZGlhbG9nPlxyXG59XHJcblxyXG48IS0tIElubGluZSBGb3JtIGZvciBmb3JtLW9ubHkgbW9kZSAtLT5cclxuQGlmIChtb2RlID09PSAnZm9ybS1vbmx5JyAmJiBkaXNwbGF5TW9kZSA9PT0gJ2lubGluZScpe1xyXG48ZGl2IGNsYXNzPVwidy1mdWxsXCI+XHJcbiAgPGZvcm0gKm5nSWY9XCJmb3JtXCIgW2Zvcm1Hcm91cF09XCJmb3JtXCI+XHJcbiAgICA8Zm9ybWx5LWZvcm1cclxuICAgICAgW2Zvcm1dPVwiZm9ybVwiXHJcbiAgICAgIFtmaWVsZHNdPVwiZm9ybUZpZWxkc19cIlxyXG4gICAgICBbbW9kZWxdPVwibW9kZWxcIlxyXG4gICAgICBbb3B0aW9uc109XCJvcHRpb25zXCJcclxuICAgID48L2Zvcm1seS1mb3JtPlxyXG4gIDwvZm9ybT5cclxuPC9kaXY+XHJcbn1cclxuIl19","/**\n * Generated bundle index. Do not edit.\n */\nexport * from './index';\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWxpdGUuZnJhbWV3b3JrLW5nLnVpLmNvcmUtZ2VuZXJpYy1kaWFsb2cuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzL25nLnVpLmNvcmUvZ2VuZXJpYy1kaWFsb2cvc3JjL2VsaXRlLmZyYW1ld29yay1uZy51aS5jb3JlLWdlbmVyaWMtZGlhbG9nLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsY0FBYyxTQUFTLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEdlbmVyYXRlZCBidW5kbGUgaW5kZXguIERvIG5vdCBlZGl0LlxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vaW5kZXgnO1xuIl19"],"names":[],"mappings":"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"}
@@ -303,6 +303,20 @@ class GenericSelectorTypeComponent extends FieldType {
303
303
  }
304
304
  return fixedFilters || {};
305
305
  }
306
+ getFilters() {
307
+ let filters = this.to['filters'];
308
+ if (typeof filters === 'function') {
309
+ filters = filters(this.model);
310
+ }
311
+ if (!filters)
312
+ return [];
313
+ // If it's an object, return its keys
314
+ if (!Array.isArray(filters)) {
315
+ return Object.keys(filters);
316
+ }
317
+ // Already an array
318
+ return filters;
319
+ }
306
320
  onArrowDown(event) {
307
321
  event.preventDefault();
308
322
  // this.autoComp.show();
@@ -335,6 +349,7 @@ class GenericSelectorTypeComponent extends FieldType {
335
349
  const q = event.query?.toString().toLowerCase() || '';
336
350
  const lf = this.optionLabel;
337
351
  const fixedFilters = this.getFixedFilters();
352
+ const filters = this.getFilters();
338
353
  if (this.to['offline']) {
339
354
  this.options_ = this.to['offlineDataFn']
340
355
  ? this.to['offlineDataFn'](q)
@@ -345,9 +360,14 @@ class GenericSelectorTypeComponent extends FieldType {
345
360
  this.loading = true;
346
361
  this.options_ = [];
347
362
  const searchParams = {
348
- [lf]: q,
349
- ...fixedFilters,
363
+ ...fixedFilters
350
364
  };
365
+ // Add query to main label
366
+ searchParams[lf] = q;
367
+ // Set all filter keys to the search query
368
+ Object.keys(filters).forEach(key => {
369
+ searchParams[key] = q;
370
+ });
351
371
  // ✅ استخدام listEndpoint إذا كان موجودًا، وإلا العودة إلى الافتراضي
352
372
  let listEndpoint = this.props.listEndpoint;
353
373
  if (typeof listEndpoint === 'function') {