@elite.framework/ng.ui.core 2.0.6 → 2.0.31
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/column-settings-popover/index.d.ts +2 -2
- package/excel-import/index.d.ts +1 -1
- package/fesm2022/elite.framework-ng.ui.core-checkbox.mjs +3 -4
- package/fesm2022/elite.framework-ng.ui.core-checkbox.mjs.map +1 -1
- package/fesm2022/elite.framework-ng.ui.core-color-picker.mjs +3 -4
- package/fesm2022/elite.framework-ng.ui.core-color-picker.mjs.map +1 -1
- package/fesm2022/elite.framework-ng.ui.core-column-settings-popover.mjs +6 -6
- package/fesm2022/elite.framework-ng.ui.core-column-settings-popover.mjs.map +1 -1
- package/fesm2022/elite.framework-ng.ui.core-condition-editor.mjs +3 -4
- package/fesm2022/elite.framework-ng.ui.core-condition-editor.mjs.map +1 -1
- package/fesm2022/elite.framework-ng.ui.core-custom-switch.mjs +3 -4
- package/fesm2022/elite.framework-ng.ui.core-custom-switch.mjs.map +1 -1
- package/fesm2022/elite.framework-ng.ui.core-datepicker.mjs +3 -4
- package/fesm2022/elite.framework-ng.ui.core-datepicker.mjs.map +1 -1
- package/fesm2022/elite.framework-ng.ui.core-deactivation-reason.mjs +3 -4
- package/fesm2022/elite.framework-ng.ui.core-deactivation-reason.mjs.map +1 -1
- package/fesm2022/elite.framework-ng.ui.core-excel-import.mjs +5 -6
- package/fesm2022/elite.framework-ng.ui.core-excel-import.mjs.map +1 -1
- package/fesm2022/elite.framework-ng.ui.core-form-field.mjs +5 -5
- package/fesm2022/elite.framework-ng.ui.core-form-field.mjs.map +1 -1
- package/fesm2022/elite.framework-ng.ui.core-formly-avatar-label.mjs +3 -4
- package/fesm2022/elite.framework-ng.ui.core-formly-avatar-label.mjs.map +1 -1
- package/fesm2022/elite.framework-ng.ui.core-formly-button-selector.mjs +6 -6
- package/fesm2022/elite.framework-ng.ui.core-formly-button-selector.mjs.map +1 -1
- package/fesm2022/elite.framework-ng.ui.core-formly-button.mjs +3 -3
- package/fesm2022/elite.framework-ng.ui.core-formly-button.mjs.map +1 -1
- package/fesm2022/elite.framework-ng.ui.core-generic-autocomplete.mjs +3 -4
- package/fesm2022/elite.framework-ng.ui.core-generic-autocomplete.mjs.map +1 -1
- package/fesm2022/elite.framework-ng.ui.core-generic-button.mjs +3 -4
- package/fesm2022/elite.framework-ng.ui.core-generic-button.mjs.map +1 -1
- package/fesm2022/elite.framework-ng.ui.core-generic-card.mjs +3 -4
- package/fesm2022/elite.framework-ng.ui.core-generic-card.mjs.map +1 -1
- package/fesm2022/elite.framework-ng.ui.core-generic-crud-table.mjs +8 -9
- package/fesm2022/elite.framework-ng.ui.core-generic-crud-table.mjs.map +1 -1
- package/fesm2022/elite.framework-ng.ui.core-generic-dialog.mjs +5 -6
- package/fesm2022/elite.framework-ng.ui.core-generic-dialog.mjs.map +1 -1
- package/fesm2022/elite.framework-ng.ui.core-generic-report.mjs +8 -9
- package/fesm2022/elite.framework-ng.ui.core-generic-report.mjs.map +1 -1
- package/fesm2022/elite.framework-ng.ui.core-generic-search-advanced.mjs +29 -24
- package/fesm2022/elite.framework-ng.ui.core-generic-search-advanced.mjs.map +1 -1
- package/fesm2022/elite.framework-ng.ui.core-generic-search.mjs +5 -5
- package/fesm2022/elite.framework-ng.ui.core-generic-search.mjs.map +1 -1
- package/fesm2022/elite.framework-ng.ui.core-generic-selector.mjs +5 -6
- package/fesm2022/elite.framework-ng.ui.core-generic-selector.mjs.map +1 -1
- package/fesm2022/elite.framework-ng.ui.core-generic-table.mjs +5 -6
- package/fesm2022/elite.framework-ng.ui.core-generic-table.mjs.map +1 -1
- package/fesm2022/elite.framework-ng.ui.core-generic-view.mjs +3 -4
- package/fesm2022/elite.framework-ng.ui.core-generic-view.mjs.map +1 -1
- package/fesm2022/elite.framework-ng.ui.core-input-switch.mjs +3 -4
- package/fesm2022/elite.framework-ng.ui.core-input-switch.mjs.map +1 -1
- package/fesm2022/elite.framework-ng.ui.core-input.mjs +3 -4
- package/fesm2022/elite.framework-ng.ui.core-input.mjs.map +1 -1
- package/fesm2022/elite.framework-ng.ui.core-repeat.mjs +5 -6
- package/fesm2022/elite.framework-ng.ui.core-repeat.mjs.map +1 -1
- package/fesm2022/elite.framework-ng.ui.core-select.mjs +3 -4
- package/fesm2022/elite.framework-ng.ui.core-select.mjs.map +1 -1
- package/fesm2022/elite.framework-ng.ui.core-tag-type.mjs +7 -8
- package/fesm2022/elite.framework-ng.ui.core-tag-type.mjs.map +1 -1
- package/fesm2022/elite.framework-ng.ui.core-textarea.mjs +3 -4
- package/fesm2022/elite.framework-ng.ui.core-textarea.mjs.map +1 -1
- package/fesm2022/elite.framework-ng.ui.core-wrappers.mjs +9 -10
- package/fesm2022/elite.framework-ng.ui.core-wrappers.mjs.map +1 -1
- package/form-field/index.d.ts +2 -2
- package/formly-button-selector/index.d.ts +2 -2
- package/generic-crud-table/index.d.ts +2 -3
- package/generic-dialog/index.d.ts +2 -3
- package/generic-report/index.d.ts +2 -2
- package/generic-search/index.d.ts +2 -2
- package/generic-search-advanced/index.d.ts +4 -5
- package/generic-table/index.d.ts +2 -3
- package/package.json +17 -17
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"elite.framework-ng.ui.core-deactivation-reason.mjs","sources":["../tmp-esm2022/deactivation-reason/lib/deactivation-reason-module.js","../tmp-esm2022/deactivation-reason/lib/deactivation-reason.js","../tmp-esm2022/deactivation-reason/elite.framework-ng.ui.core-deactivation-reason.js"],"sourcesContent":["import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport * as i0 from \"@angular/core\";\nexport class DeactivationReasonModule {\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: DeactivationReasonModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });\n static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"14.0.0\", version: \"20.1.8\", ngImport: i0, type: DeactivationReasonModule, imports: [CommonModule] });\n static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: DeactivationReasonModule, imports: [CommonModule] });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: DeactivationReasonModule, decorators: [{\n type: NgModule,\n args: [{\n imports: [CommonModule],\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVhY3RpdmF0aW9uLXJlYXNvbi1tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL25nLnVpLmNvcmUvZGVhY3RpdmF0aW9uLXJlYXNvbi9zcmMvbGliL2RlYWN0aXZhdGlvbi1yZWFzb24tbW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDOztBQUsvQyxNQUFNLE9BQU8sd0JBQXdCO3VHQUF4Qix3QkFBd0I7d0dBQXhCLHdCQUF3QixZQUZ6QixZQUFZO3dHQUVYLHdCQUF3QixZQUZ6QixZQUFZOzsyRkFFWCx3QkFBd0I7a0JBSHBDLFFBQVE7bUJBQUM7b0JBQ1IsT0FBTyxFQUFFLENBQUMsWUFBWSxDQUFDO2lCQUN4QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuXG5ATmdNb2R1bGUoe1xuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlXSxcbn0pXG5leHBvcnQgY2xhc3MgRGVhY3RpdmF0aW9uUmVhc29uTW9kdWxlIHt9XG4iXX0=","import { CommonModule } from '@angular/common';\nimport { Component, inject } from '@angular/core';\nimport { FormGroup, FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { IdParserService } from '@elite.framework/ng.core/services';\nimport { FormlyForm } from '@ngx-formly/core';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { ButtonModule } from 'primeng/button';\nimport { DynamicDialogConfig, DynamicDialogRef } from 'primeng/dynamicdialog';\nimport { Subject, takeUntil } from 'rxjs';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"primeng/dynamicdialog\";\nimport * as i2 from \"@angular/forms\";\nimport * as i3 from \"primeng/button\";\nimport * as i4 from \"@ngx-translate/core\";\nexport class DeactivationReasonFormComponent {\n ref;\n config;\n form = new FormGroup({});\n model = {};\n fields;\n loading = false;\n errorMessage = null;\n destroy$ = new Subject();\n idField;\n idParser = inject(IdParserService);\n constructor(ref, config) {\n this.ref = ref;\n this.config = config;\n this.model = config.data?.model || {};\n this.idField = this.config.data.idField;\n this.fields = [\n {\n key: 'deactivationReason',\n type: 'textarea',\n props: {\n label: 'DeactivationReason',\n placeholder: 'DeactivationReason',\n rows: 5,\n required: true,\n },\n },\n ];\n }\n onSubmit() {\n if (this.form.invalid)\n return;\n // this.loading = true;\n // this.errorMessage = null;\n const service = this.config.data.service;\n const id = this.idParser.parseIds(this.model, this.idField);\n // const id = (this.model as any)[this.idField] ;\n this.model.isActive = false;\n const operation$ = service.update(id, this.model);\n operation$.pipe(takeUntil(this.destroy$)).subscribe({\n next: () => {\n this.ref.close(this.model); // نجاح العملية\n },\n error: (err) => {\n this.loading = false;\n // this.errorMessage = err.error?.message ||\n // err.message ||\n // 'حدث خطأ أثناء الحفظ. يرجى المحاولة مرة أخرى.';\n }\n });\n }\n ngOnDestroy() {\n this.destroy$.next();\n this.destroy$.complete();\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: DeactivationReasonFormComponent, deps: [{ token: i1.DynamicDialogRef }, { token: i1.DynamicDialogConfig }], target: i0.ɵɵFactoryTarget.Component });\n static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"20.1.8\", type: DeactivationReasonFormComponent, isStandalone: true, selector: \"app-deactivation-reason-form\", ngImport: i0, template: `\n <form [formGroup]=\"form\" (ngSubmit)=\"onSubmit()\" class=\"p-4 space-y-4\">\n <formly-form [form]=\"form\" [fields]=\"fields\" [model]=\"model\"></formly-form>\n\n\n <div class=\"bottom-0 left-0 right-0 bg-gray-200 border-t border-gray-400 px-4 py-3 flex justify-end gap-2\">\n\n <p-button\n [label]=\"( 'SAVE') | translate\"\n size=\"small\"\n [disabled]=\"form.invalid\"\n [type]=\"'submit'\">\n </p-button>\n\n <p-button\n [label]=\"'CANCEL' | translate \"\n severity=\"danger\"\n size=\"small\"\n (onClick)=\"ref.close(false)\">\n </p-button>\n\n </div>\n </form>\n `, isInline: true, dependencies: [{ kind: \"component\", type: FormlyForm, selector: \"formly-form\", inputs: [\"form\", \"model\", \"fields\", \"options\"], outputs: [\"modelChange\"] }, { kind: \"ngmodule\", type: CommonModule }, { kind: \"ngmodule\", type: ReactiveFormsModule }, { kind: \"directive\", type: i2.ɵNgNoValidate, selector: \"form:not([ngNoForm]):not([ngNativeValidate])\" }, { kind: \"directive\", type: i2.NgControlStatusGroup, selector: \"[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]\" }, { kind: \"directive\", type: i2.FormGroupDirective, selector: \"[formGroup]\", inputs: [\"formGroup\"], outputs: [\"ngSubmit\"], exportAs: [\"ngForm\"] }, { kind: \"ngmodule\", type: FormsModule }, { kind: \"ngmodule\", type: TranslateModule }, { kind: \"ngmodule\", type: ButtonModule }, { kind: \"component\", type: i3.Button, selector: \"p-button\", inputs: [\"type\", \"iconPos\", \"icon\", \"badge\", \"label\", \"disabled\", \"loading\", \"loadingIcon\", \"raised\", \"rounded\", \"text\", \"plain\", \"severity\", \"outlined\", \"link\", \"tabindex\", \"size\", \"variant\", \"style\", \"styleClass\", \"badgeClass\", \"badgeSeverity\", \"ariaLabel\", \"buttonProps\", \"autofocus\", \"fluid\"], outputs: [\"onClick\", \"onFocus\", \"onBlur\"] }, { kind: \"pipe\", type: i4.TranslatePipe, name: \"translate\" }] });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: DeactivationReasonFormComponent, decorators: [{\n type: Component,\n args: [{\n selector: 'app-deactivation-reason-form',\n template: `\n <form [formGroup]=\"form\" (ngSubmit)=\"onSubmit()\" class=\"p-4 space-y-4\">\n <formly-form [form]=\"form\" [fields]=\"fields\" [model]=\"model\"></formly-form>\n\n\n <div class=\"bottom-0 left-0 right-0 bg-gray-200 border-t border-gray-400 px-4 py-3 flex justify-end gap-2\">\n\n <p-button\n [label]=\"( 'SAVE') | translate\"\n size=\"small\"\n [disabled]=\"form.invalid\"\n [type]=\"'submit'\">\n </p-button>\n\n <p-button\n [label]=\"'CANCEL' | translate \"\n severity=\"danger\"\n size=\"small\"\n (onClick)=\"ref.close(false)\">\n </p-button>\n\n </div>\n </form>\n `,\n imports: [FormlyForm, CommonModule, ReactiveFormsModule, FormsModule, TranslateModule, ButtonModule]\n }]\n }], ctorParameters: () => [{ type: i1.DynamicDialogRef }, { type: i1.DynamicDialogConfig }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVhY3RpdmF0aW9uLXJlYXNvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvbmcudWkuY29yZS9kZWFjdGl2YXRpb24tcmVhc29uL3NyYy9saWIvZGVhY3RpdmF0aW9uLXJlYXNvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQXFCLE1BQU0sZUFBZSxDQUFDO0FBQ3JFLE9BQU8sRUFBRSxTQUFTLEVBQUUsV0FBVyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDN0UsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQ3BFLE9BQU8sRUFBcUIsVUFBVSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDakUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3RELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM5QyxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUM5RSxPQUFPLEVBQWMsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLE1BQU0sQ0FBQzs7Ozs7O0FBOEJ0RCxNQUFNLE9BQU8sK0JBQStCO0lBV2pDO0lBQ0E7SUFYVCxJQUFJLEdBQUcsSUFBSSxTQUFTLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDekIsS0FBSyxHQUFRLEVBQUUsQ0FBQztJQUNoQixNQUFNLENBQXNCO0lBQzVCLE9BQU8sR0FBRyxLQUFLLENBQUM7SUFDaEIsWUFBWSxHQUFrQixJQUFJLENBQUM7SUFDMUIsUUFBUSxHQUFHLElBQUksT0FBTyxFQUFRLENBQUM7SUFDaEMsT0FBTyxDQUFNO0lBQ2QsUUFBUSxHQUFFLE1BQU0sQ0FBQyxlQUFlLENBQUMsQ0FBQztJQUV6QyxZQUNTLEdBQXFCLEVBQ3JCLE1BQTJCO1FBRDNCLFFBQUcsR0FBSCxHQUFHLENBQWtCO1FBQ3JCLFdBQU0sR0FBTixNQUFNLENBQXFCO1FBRWxDLElBQUksQ0FBQyxLQUFLLEdBQUcsTUFBTSxDQUFDLElBQUksRUFBRSxLQUFLLElBQUksRUFBRSxDQUFDO1FBQ3RDLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDO1FBQ3hDLElBQUksQ0FBQyxNQUFNLEdBQUc7WUFDWjtnQkFDRSxHQUFHLEVBQUUsb0JBQW9CO2dCQUN6QixJQUFJLEVBQUUsVUFBVTtnQkFDaEIsS0FBSyxFQUFFO29CQUNMLEtBQUssRUFBRSxvQkFBb0I7b0JBQzNCLFdBQVcsRUFBRSxvQkFBb0I7b0JBQ2pDLElBQUksRUFBRSxDQUFDO29CQUNQLFFBQVEsRUFBRSxJQUFJO2lCQUNmO2FBQ0Y7U0FDRixDQUFDO0lBQ0osQ0FBQztJQUdELFFBQVE7UUFDSixJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTztZQUFFLE9BQU87UUFFOUIsdUJBQXVCO1FBQ3ZCLDRCQUE0QjtRQUU1QixNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUM7UUFDeEMsTUFBTSxFQUFFLEdBQUksSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDOUQsa0RBQWtEO1FBQ2xELElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxHQUFHLEtBQUssQ0FBQztRQUM1QixNQUFNLFVBQVUsR0FBcUIsT0FBTyxDQUFDLE1BQU0sQ0FBQyxFQUFFLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBRXBFLFVBQVUsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQztZQUNsRCxJQUFJLEVBQUUsR0FBRyxFQUFFO2dCQUNULElBQUksQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLGVBQWU7WUFDN0MsQ0FBQztZQUNELEtBQUssRUFBRSxDQUFDLEdBQUcsRUFBRSxFQUFFO2dCQUNiLElBQUksQ0FBQyxPQUFPLEdBQUcsS0FBSyxDQUFDO2dCQUNyQiw0Q0FBNEM7Z0JBQzVDLG9DQUFvQztnQkFDcEMscUVBQXFFO1lBQ3ZFLENBQUM7U0FDRixDQUFDLENBQUM7SUFDTCxDQUFDO0lBQ0QsV0FBVztRQUNYLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDckIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUMzQixDQUFDO3VHQTFEVSwrQkFBK0I7MkZBQS9CLCtCQUErQix3RkExQmhDOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQXVCVCw0REFDUSxVQUFVLGlJQUFDLFlBQVksOEJBQUMsbUJBQW1CLG9iQUFDLFdBQVcsOEJBQUMsZUFBZSw4QkFBQyxZQUFZOzsyRkFFbEYsK0JBQStCO2tCQTVCM0MsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsOEJBQThCO29CQUN4QyxRQUFRLEVBQUU7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBdUJUO29CQUNELE9BQU8sRUFBQyxDQUFDLFVBQVUsRUFBQyxZQUFZLEVBQUMsbUJBQW1CLEVBQUMsV0FBVyxFQUFDLGVBQWUsRUFBQyxZQUFZLENBQUM7aUJBQy9GIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IENvbXBvbmVudCwgaW5qZWN0LCBJbmplY3QsIE9uRGVzdHJveSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9ybUdyb3VwLCBGb3Jtc01vZHVsZSwgUmVhY3RpdmVGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IElkUGFyc2VyU2VydmljZSB9IGZyb20gJ0BlbGl0ZS5mcmFtZXdvcmsvbmcuY29yZS9zZXJ2aWNlcyc7XG5pbXBvcnQgeyBGb3JtbHlGaWVsZENvbmZpZywgRm9ybWx5Rm9ybSB9IGZyb20gJ0BuZ3gtZm9ybWx5L2NvcmUnO1xuaW1wb3J0IHsgVHJhbnNsYXRlTW9kdWxlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XG5pbXBvcnQgeyBCdXR0b25Nb2R1bGUgfSBmcm9tICdwcmltZW5nL2J1dHRvbic7XG5pbXBvcnQgeyBEeW5hbWljRGlhbG9nQ29uZmlnLCBEeW5hbWljRGlhbG9nUmVmIH0gZnJvbSAncHJpbWVuZy9keW5hbWljZGlhbG9nJztcbmltcG9ydCB7IE9ic2VydmFibGUsIFN1YmplY3QsIHRha2VVbnRpbCB9IGZyb20gJ3J4anMnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdhcHAtZGVhY3RpdmF0aW9uLXJlYXNvbi1mb3JtJyxcbiAgdGVtcGxhdGU6IGBcbiAgICA8Zm9ybSBbZm9ybUdyb3VwXT1cImZvcm1cIiAobmdTdWJtaXQpPVwib25TdWJtaXQoKVwiIGNsYXNzPVwicC00IHNwYWNlLXktNFwiPlxuICAgICAgPGZvcm1seS1mb3JtIFtmb3JtXT1cImZvcm1cIiBbZmllbGRzXT1cImZpZWxkc1wiIFttb2RlbF09XCJtb2RlbFwiPjwvZm9ybWx5LWZvcm0+XG5cblxuICAgICAgPGRpdiBjbGFzcz1cImJvdHRvbS0wIGxlZnQtMCByaWdodC0wIGJnLWdyYXktMjAwIGJvcmRlci10IGJvcmRlci1ncmF5LTQwMCBweC00IHB5LTMgZmxleCBqdXN0aWZ5LWVuZCBnYXAtMlwiPlxuXG4gICAgPHAtYnV0dG9uXG4gICAgICBbbGFiZWxdPVwiKCAnU0FWRScpIHwgdHJhbnNsYXRlXCJcbiAgICAgIHNpemU9XCJzbWFsbFwiXG4gICAgICAgW2Rpc2FibGVkXT1cImZvcm0uaW52YWxpZFwiXG4gICAgICBbdHlwZV09XCInc3VibWl0J1wiPlxuICAgIDwvcC1idXR0b24+XG5cbiAgICA8cC1idXR0b25cbiAgICAgIFtsYWJlbF09XCInQ0FOQ0VMJyB8IHRyYW5zbGF0ZSBcIlxuICAgICAgc2V2ZXJpdHk9XCJkYW5nZXJcIlxuICAgICAgc2l6ZT1cInNtYWxsXCJcbiAgICAgIChvbkNsaWNrKT1cInJlZi5jbG9zZShmYWxzZSlcIj5cbiAgICA8L3AtYnV0dG9uPlxuXG4gIDwvZGl2PlxuICAgIDwvZm9ybT5cbiAgYCxcbiAgaW1wb3J0czpbRm9ybWx5Rm9ybSxDb21tb25Nb2R1bGUsUmVhY3RpdmVGb3Jtc01vZHVsZSxGb3Jtc01vZHVsZSxUcmFuc2xhdGVNb2R1bGUsQnV0dG9uTW9kdWxlXVxufSlcbmV4cG9ydCBjbGFzcyBEZWFjdGl2YXRpb25SZWFzb25Gb3JtQ29tcG9uZW50IGltcGxlbWVudHMgT25EZXN0cm95IHtcbiAgZm9ybSA9IG5ldyBGb3JtR3JvdXAoe30pO1xuICBtb2RlbDogYW55ID0ge307XG4gIGZpZWxkczogRm9ybWx5RmllbGRDb25maWdbXTtcbiAgbG9hZGluZyA9IGZhbHNlO1xuICBlcnJvck1lc3NhZ2U6IHN0cmluZyB8IG51bGwgPSBudWxsO1xuICAgcHJpdmF0ZSBkZXN0cm95JCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG4gIHByaXZhdGUgaWRGaWVsZDogYW55O1xuIHByaXZhdGUgaWRQYXJzZXI9IGluamVjdChJZFBhcnNlclNlcnZpY2UpO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHB1YmxpYyByZWY6IER5bmFtaWNEaWFsb2dSZWYsXG4gICAgcHVibGljIGNvbmZpZzogRHluYW1pY0RpYWxvZ0NvbmZpZ1xuICApIHtcbiAgICB0aGlzLm1vZGVsID0gY29uZmlnLmRhdGE/Lm1vZGVsIHx8IHt9O1xuICAgIHRoaXMuaWRGaWVsZCA9IHRoaXMuY29uZmlnLmRhdGEuaWRGaWVsZDtcbiAgICB0aGlzLmZpZWxkcyA9IFtcbiAgICAgIHtcbiAgICAgICAga2V5OiAnZGVhY3RpdmF0aW9uUmVhc29uJyxcbiAgICAgICAgdHlwZTogJ3RleHRhcmVhJyxcbiAgICAgICAgcHJvcHM6IHtcbiAgICAgICAgICBsYWJlbDogJ0RlYWN0aXZhdGlvblJlYXNvbicsXG4gICAgICAgICAgcGxhY2Vob2xkZXI6ICdEZWFjdGl2YXRpb25SZWFzb24nLFxuICAgICAgICAgIHJvd3M6IDUsXG4gICAgICAgICAgcmVxdWlyZWQ6IHRydWUsXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgIF07XG4gIH1cblxuXG4gIG9uU3VibWl0KCkge1xuICAgICAgaWYgKHRoaXMuZm9ybS5pbnZhbGlkKSByZXR1cm47XG5cbiAgICAgIC8vIHRoaXMubG9hZGluZyA9IHRydWU7XG4gICAgICAvLyB0aGlzLmVycm9yTWVzc2FnZSA9IG51bGw7XG5cbiAgICAgIGNvbnN0IHNlcnZpY2UgPSB0aGlzLmNvbmZpZy5kYXRhLnNlcnZpY2U7XG4gICAgICAgY29uc3QgaWQgPSAgdGhpcy5pZFBhcnNlci5wYXJzZUlkcyh0aGlzLm1vZGVsLCB0aGlzLmlkRmllbGQpO1xuICAgICAgLy8gY29uc3QgaWQgPSAgKHRoaXMubW9kZWwgYXMgYW55KVt0aGlzLmlkRmllbGRdIDtcbiAgICAgIHRoaXMubW9kZWwuaXNBY3RpdmUgPSBmYWxzZTtcbiAgICAgIGNvbnN0IG9wZXJhdGlvbiQ6IE9ic2VydmFibGU8YW55PiA9ICBzZXJ2aWNlLnVwZGF0ZShpZCwgdGhpcy5tb2RlbCk7XG5cbiAgICAgIG9wZXJhdGlvbiQucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpLnN1YnNjcmliZSh7XG4gICAgICAgIG5leHQ6ICgpID0+IHtcbiAgICAgICAgICB0aGlzLnJlZi5jbG9zZSh0aGlzLm1vZGVsKTsgLy8g2YbYrNin2K0g2KfZhNi52YXZhNmK2KlcbiAgICAgICAgfSxcbiAgICAgICAgZXJyb3I6IChlcnIpID0+IHtcbiAgICAgICAgICB0aGlzLmxvYWRpbmcgPSBmYWxzZTtcbiAgICAgICAgICAvLyB0aGlzLmVycm9yTWVzc2FnZSA9IGVyci5lcnJvcj8ubWVzc2FnZSB8fFxuICAgICAgICAgIC8vICAgICAgICAgICAgICAgICAgICBlcnIubWVzc2FnZSB8fFxuICAgICAgICAgIC8vICAgICAgICAgICAgICAgICAgICAn2K3Yr9irINiu2LfYoyDYo9ir2YbYp9ihINin2YTYrdmB2LguINmK2LHYrNmJINin2YTZhdit2KfZiNmE2Kkg2YXYsdipINij2K7YsdmJLic7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH1cbiAgICBuZ09uRGVzdHJveSgpIHtcbiAgICB0aGlzLmRlc3Ryb3kkLm5leHQoKTtcbiAgICB0aGlzLmRlc3Ryb3kkLmNvbXBsZXRlKCk7XG4gIH1cbn1cbiJdfQ==","/**\n * Generated bundle index. Do not edit.\n */\nexport * from './index';\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWxpdGUuZnJhbWV3b3JrLW5nLnVpLmNvcmUtZGVhY3RpdmF0aW9uLXJlYXNvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYnMvbmcudWkuY29yZS9kZWFjdGl2YXRpb24tcmVhc29uL3NyYy9lbGl0ZS5mcmFtZXdvcmstbmcudWkuY29yZS1kZWFjdGl2YXRpb24tcmVhc29uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsY0FBYyxTQUFTLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEdlbmVyYXRlZCBidW5kbGUgaW5kZXguIERvIG5vdCBlZGl0LlxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vaW5kZXgnO1xuIl19"],"names":[],"mappings":";;;;;;;;;;;;;;AAGO,MAAM,wBAAwB,CAAC;AACtC,IAAI,OAAO,IAAI,GAAG,EAAE,CAAC,kBAAkB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,wBAAwB,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,CAAC,eAAe,CAAC,QAAQ,EAAE,CAAC;AACjL,IAAI,OAAO,IAAI,GAAG,EAAE,CAAC,mBAAmB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,wBAAwB,EAAE,OAAO,EAAE,CAAC,YAAY,CAAC,EAAE,CAAC;AAC5J,IAAI,OAAO,IAAI,GAAG,EAAE,CAAC,mBAAmB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,wBAAwB,EAAE,OAAO,EAAE,CAAC,YAAY,CAAC,EAAE,CAAC;AAC5J;AACA,EAAE,CAAC,wBAAwB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,wBAAwB,EAAE,UAAU,EAAE,CAAC;AAClI,YAAY,IAAI,EAAE,QAAQ;AAC1B,YAAY,IAAI,EAAE,CAAC;AACnB,oBAAoB,OAAO,EAAE,CAAC,YAAY,CAAC;AAC3C,iBAAiB;AACjB,SAAS,CAAC,EAAE,CAAC;;ACCN,MAAM,+BAA+B,CAAC;AAC7C,IAAI,GAAG;AACP,IAAI,MAAM;AACV,IAAI,IAAI,GAAG,IAAI,SAAS,CAAC,EAAE,CAAC;AAC5B,IAAI,KAAK,GAAG,EAAE;AACd,IAAI,MAAM;AACV,IAAI,OAAO,GAAG,KAAK;AACnB,IAAI,YAAY,GAAG,IAAI;AACvB,IAAI,QAAQ,GAAG,IAAI,OAAO,EAAE;AAC5B,IAAI,OAAO;AACX,IAAI,QAAQ,GAAG,MAAM,CAAC,eAAe,CAAC;AACtC,IAAI,WAAW,CAAC,GAAG,EAAE,MAAM,EAAE;AAC7B,QAAQ,IAAI,CAAC,GAAG,GAAG,GAAG;AACtB,QAAQ,IAAI,CAAC,MAAM,GAAG,MAAM;AAC5B,QAAQ,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC,IAAI,EAAE,KAAK,IAAI,EAAE;AAC7C,QAAQ,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO;AAC/C,QAAQ,IAAI,CAAC,MAAM,GAAG;AACtB,YAAY;AACZ,gBAAgB,GAAG,EAAE,oBAAoB;AACzC,gBAAgB,IAAI,EAAE,UAAU;AAChC,gBAAgB,KAAK,EAAE;AACvB,oBAAoB,KAAK,EAAE,oBAAoB;AAC/C,oBAAoB,WAAW,EAAE,oBAAoB;AACrD,oBAAoB,IAAI,EAAE,CAAC;AAC3B,oBAAoB,QAAQ,EAAE,IAAI;AAClC,iBAAiB;AACjB,aAAa;AACb,SAAS;AACT;AACA,IAAI,QAAQ,GAAG;AACf,QAAQ,IAAI,IAAI,CAAC,IAAI,CAAC,OAAO;AAC7B,YAAY;AACZ;AACA;AACA,QAAQ,MAAM,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO;AAChD,QAAQ,MAAM,EAAE,GAAG,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC;AACnE;AACA,QAAQ,IAAI,CAAC,KAAK,CAAC,QAAQ,GAAG,KAAK;AACnC,QAAQ,MAAM,UAAU,GAAG,OAAO,CAAC,MAAM,CAAC,EAAE,EAAE,IAAI,CAAC,KAAK,CAAC;AACzD,QAAQ,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC;AAC5D,YAAY,IAAI,EAAE,MAAM;AACxB,gBAAgB,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAC3C,aAAa;AACb,YAAY,KAAK,EAAE,CAAC,GAAG,KAAK;AAC5B,gBAAgB,IAAI,CAAC,OAAO,GAAG,KAAK;AACpC;AACA;AACA;AACA;AACA,SAAS,CAAC;AACV;AACA,IAAI,WAAW,GAAG;AAClB,QAAQ,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE;AAC5B,QAAQ,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE;AAChC;AACA,IAAI,OAAO,IAAI,GAAG,EAAE,CAAC,kBAAkB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,+BAA+B,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,EAAE,CAAC,gBAAgB,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,CAAC,mBAAmB,EAAE,CAAC,EAAE,MAAM,EAAE,EAAE,CAAC,eAAe,CAAC,SAAS,EAAE,CAAC;AAC1P,IAAI,OAAO,IAAI,GAAG,EAAE,CAAC,oBAAoB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,+BAA+B,EAAE,YAAY,EAAE,IAAI,EAAE,QAAQ,EAAE,8BAA8B,EAAE,QAAQ,EAAE,EAAE,EAAE,QAAQ,EAAE;AAClN;AACA;;;AAGA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,EAAE,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,YAAY,EAAE,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,UAAU,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,EAAE,CAAC,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,SAAS,CAAC,EAAE,OAAO,EAAE,CAAC,aAAa,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,YAAY,EAAE,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,mBAAmB,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,EAAE,CAAC,aAAa,EAAE,QAAQ,EAAE,8CAA8C,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,EAAE,CAAC,oBAAoB,EAAE,QAAQ,EAAE,0FAA0F,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,EAAE,CAAC,kBAAkB,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,EAAE,CAAC,WAAW,CAAC,EAAE,OAAO,EAAE,CAAC,UAAU,CAAC,EAAE,QAAQ,EAAE,CAAC,QAAQ,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,WAAW,EAAE,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,eAAe,EAAE,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,YAAY,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,EAAE,CAAC,MAAM,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,EAAE,CAAC,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,MAAM,EAAE,IAAI,EAAE,EAAE,CAAC,aAAa,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC,EAAE,CAAC;AACnvC;AACA,EAAE,CAAC,wBAAwB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,+BAA+B,EAAE,UAAU,EAAE,CAAC;AACzI,YAAY,IAAI,EAAE,SAAS;AAC3B,YAAY,IAAI,EAAE,CAAC;AACnB,oBAAoB,QAAQ,EAAE,8BAA8B;AAC5D,oBAAoB,QAAQ,EAAE;AAC9B;AACA;;;AAGA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,EAAE,CAAC;AACH,oBAAoB,OAAO,EAAE,CAAC,UAAU,EAAE,YAAY,EAAE,mBAAmB,EAAE,WAAW,EAAE,eAAe,EAAE,YAAY;AACvH,iBAAiB;AACjB,SAAS,CAAC,EAAE,cAAc,EAAE,MAAM,CAAC,EAAE,IAAI,EAAE,EAAE,CAAC,gBAAgB,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,CAAC,mBAAmB,EAAE,CAAC,EAAE,CAAC;;AC7HtG;AACA;AACA;;;;"}
|
|
1
|
+
{"version":3,"file":"elite.framework-ng.ui.core-deactivation-reason.mjs","sources":["../tmp-esm2022/deactivation-reason/lib/deactivation-reason-module.js","../tmp-esm2022/deactivation-reason/lib/deactivation-reason.js","../tmp-esm2022/deactivation-reason/elite.framework-ng.ui.core-deactivation-reason.js"],"sourcesContent":["import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport * as i0 from \"@angular/core\";\nexport class DeactivationReasonModule {\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: DeactivationReasonModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });\n static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"14.0.0\", version: \"20.1.8\", ngImport: i0, type: DeactivationReasonModule, imports: [CommonModule] });\n static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: DeactivationReasonModule, imports: [CommonModule] });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: DeactivationReasonModule, decorators: [{\n type: NgModule,\n args: [{\n imports: [CommonModule],\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVhY3RpdmF0aW9uLXJlYXNvbi1tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL25nLnVpLmNvcmUvZGVhY3RpdmF0aW9uLXJlYXNvbi9zcmMvbGliL2RlYWN0aXZhdGlvbi1yZWFzb24tbW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDOztBQUsvQyxNQUFNLE9BQU8sd0JBQXdCO3VHQUF4Qix3QkFBd0I7d0dBQXhCLHdCQUF3QixZQUZ6QixZQUFZO3dHQUVYLHdCQUF3QixZQUZ6QixZQUFZOzsyRkFFWCx3QkFBd0I7a0JBSHBDLFFBQVE7bUJBQUM7b0JBQ1IsT0FBTyxFQUFFLENBQUMsWUFBWSxDQUFDO2lCQUN4QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuXG5ATmdNb2R1bGUoe1xuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlXSxcbn0pXG5leHBvcnQgY2xhc3MgRGVhY3RpdmF0aW9uUmVhc29uTW9kdWxlIHt9XG4iXX0=","import { CommonModule } from '@angular/common';\nimport { Component, inject } from '@angular/core';\nimport { FormGroup, FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { IdParserService } from '@elite.framework/ng.core/services';\nimport { FormlyForm } from '@ngx-formly/core';\nimport { TranslatePipe } from '@elite.framework/ng.core/pipes';\nimport { ButtonModule } from 'primeng/button';\nimport { DynamicDialogConfig, DynamicDialogRef } from 'primeng/dynamicdialog';\nimport { Subject, takeUntil } from 'rxjs';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"primeng/dynamicdialog\";\nimport * as i2 from \"@angular/forms\";\nimport * as i3 from \"primeng/button\";\nexport class DeactivationReasonFormComponent {\n ref;\n config;\n form = new FormGroup({});\n model = {};\n fields;\n loading = false;\n errorMessage = null;\n destroy$ = new Subject();\n idField;\n idParser = inject(IdParserService);\n constructor(ref, config) {\n this.ref = ref;\n this.config = config;\n this.model = config.data?.model || {};\n this.idField = this.config.data.idField;\n this.fields = [\n {\n key: 'deactivationReason',\n type: 'textarea',\n props: {\n label: 'DeactivationReason',\n placeholder: 'DeactivationReason',\n rows: 5,\n required: true,\n },\n },\n ];\n }\n onSubmit() {\n if (this.form.invalid)\n return;\n // this.loading = true;\n // this.errorMessage = null;\n const service = this.config.data.service;\n const id = this.idParser.parseIds(this.model, this.idField);\n // const id = (this.model as any)[this.idField] ;\n this.model.isActive = false;\n const operation$ = service.update(id, this.model);\n operation$.pipe(takeUntil(this.destroy$)).subscribe({\n next: () => {\n this.ref.close(this.model); // نجاح العملية\n },\n error: (err) => {\n this.loading = false;\n // this.errorMessage = err.error?.message ||\n // err.message ||\n // 'حدث خطأ أثناء الحفظ. يرجى المحاولة مرة أخرى.';\n }\n });\n }\n ngOnDestroy() {\n this.destroy$.next();\n this.destroy$.complete();\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: DeactivationReasonFormComponent, deps: [{ token: i1.DynamicDialogRef }, { token: i1.DynamicDialogConfig }], target: i0.ɵɵFactoryTarget.Component });\n static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"20.1.8\", type: DeactivationReasonFormComponent, isStandalone: true, selector: \"app-deactivation-reason-form\", ngImport: i0, template: `\n <form [formGroup]=\"form\" (ngSubmit)=\"onSubmit()\" class=\"p-4 space-y-4\">\n <formly-form [form]=\"form\" [fields]=\"fields\" [model]=\"model\"></formly-form>\n\n\n <div class=\"bottom-0 left-0 right-0 bg-gray-200 border-t border-gray-400 px-4 py-3 flex justify-end gap-2\">\n\n <p-button\n [label]=\"( 'SAVE') | translate\"\n size=\"small\"\n [disabled]=\"form.invalid\"\n [type]=\"'submit'\">\n </p-button>\n\n <p-button\n [label]=\"'CANCEL' | translate \"\n severity=\"danger\"\n size=\"small\"\n (onClick)=\"ref.close(false)\">\n </p-button>\n\n </div>\n </form>\n `, isInline: true, dependencies: [{ kind: \"component\", type: FormlyForm, selector: \"formly-form\", inputs: [\"form\", \"model\", \"fields\", \"options\"], outputs: [\"modelChange\"] }, { kind: \"ngmodule\", type: CommonModule }, { kind: \"ngmodule\", type: ReactiveFormsModule }, { kind: \"directive\", type: i2.ɵNgNoValidate, selector: \"form:not([ngNoForm]):not([ngNativeValidate])\" }, { kind: \"directive\", type: i2.NgControlStatusGroup, selector: \"[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]\" }, { kind: \"directive\", type: i2.FormGroupDirective, selector: \"[formGroup]\", inputs: [\"formGroup\"], outputs: [\"ngSubmit\"], exportAs: [\"ngForm\"] }, { kind: \"ngmodule\", type: FormsModule }, { kind: \"ngmodule\", type: ButtonModule }, { kind: \"component\", type: i3.Button, selector: \"p-button\", inputs: [\"type\", \"iconPos\", \"icon\", \"badge\", \"label\", \"disabled\", \"loading\", \"loadingIcon\", \"raised\", \"rounded\", \"text\", \"plain\", \"severity\", \"outlined\", \"link\", \"tabindex\", \"size\", \"variant\", \"style\", \"styleClass\", \"badgeClass\", \"badgeSeverity\", \"ariaLabel\", \"buttonProps\", \"autofocus\", \"fluid\"], outputs: [\"onClick\", \"onFocus\", \"onBlur\"] }, { kind: \"pipe\", type: TranslatePipe, name: \"translate\" }] });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: DeactivationReasonFormComponent, decorators: [{\n type: Component,\n args: [{\n selector: 'app-deactivation-reason-form',\n template: `\n <form [formGroup]=\"form\" (ngSubmit)=\"onSubmit()\" class=\"p-4 space-y-4\">\n <formly-form [form]=\"form\" [fields]=\"fields\" [model]=\"model\"></formly-form>\n\n\n <div class=\"bottom-0 left-0 right-0 bg-gray-200 border-t border-gray-400 px-4 py-3 flex justify-end gap-2\">\n\n <p-button\n [label]=\"( 'SAVE') | translate\"\n size=\"small\"\n [disabled]=\"form.invalid\"\n [type]=\"'submit'\">\n </p-button>\n\n <p-button\n [label]=\"'CANCEL' | translate \"\n severity=\"danger\"\n size=\"small\"\n (onClick)=\"ref.close(false)\">\n </p-button>\n\n </div>\n </form>\n `,\n imports: [FormlyForm, CommonModule, ReactiveFormsModule, FormsModule, TranslatePipe, ButtonModule]\n }]\n }], ctorParameters: () => [{ type: i1.DynamicDialogRef }, { type: i1.DynamicDialogConfig }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVhY3RpdmF0aW9uLXJlYXNvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvbmcudWkuY29yZS9kZWFjdGl2YXRpb24tcmVhc29uL3NyYy9saWIvZGVhY3RpdmF0aW9uLXJlYXNvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQXFCLE1BQU0sZUFBZSxDQUFDO0FBQ3JFLE9BQU8sRUFBRSxTQUFTLEVBQUUsV0FBVyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDN0UsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQ3BFLE9BQU8sRUFBcUIsVUFBVSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDakUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQy9ELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM5QyxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUM5RSxPQUFPLEVBQWMsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLE1BQU0sQ0FBQzs7Ozs7QUE4QnRELE1BQU0sT0FBTywrQkFBK0I7SUFXakM7SUFDQTtJQVhULElBQUksR0FBRyxJQUFJLFNBQVMsQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUN6QixLQUFLLEdBQVEsRUFBRSxDQUFDO0lBQ2hCLE1BQU0sQ0FBc0I7SUFDNUIsT0FBTyxHQUFHLEtBQUssQ0FBQztJQUNoQixZQUFZLEdBQWtCLElBQUksQ0FBQztJQUMxQixRQUFRLEdBQUcsSUFBSSxPQUFPLEVBQVEsQ0FBQztJQUNoQyxPQUFPLENBQU07SUFDZCxRQUFRLEdBQUUsTUFBTSxDQUFDLGVBQWUsQ0FBQyxDQUFDO0lBRXpDLFlBQ1MsR0FBcUIsRUFDckIsTUFBMkI7UUFEM0IsUUFBRyxHQUFILEdBQUcsQ0FBa0I7UUFDckIsV0FBTSxHQUFOLE1BQU0sQ0FBcUI7UUFFbEMsSUFBSSxDQUFDLEtBQUssR0FBRyxNQUFNLENBQUMsSUFBSSxFQUFFLEtBQUssSUFBSSxFQUFFLENBQUM7UUFDdEMsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUM7UUFDeEMsSUFBSSxDQUFDLE1BQU0sR0FBRztZQUNaO2dCQUNFLEdBQUcsRUFBRSxvQkFBb0I7Z0JBQ3pCLElBQUksRUFBRSxVQUFVO2dCQUNoQixLQUFLLEVBQUU7b0JBQ0wsS0FBSyxFQUFFLG9CQUFvQjtvQkFDM0IsV0FBVyxFQUFFLG9CQUFvQjtvQkFDakMsSUFBSSxFQUFFLENBQUM7b0JBQ1AsUUFBUSxFQUFFLElBQUk7aUJBQ2Y7YUFDRjtTQUNGLENBQUM7SUFDSixDQUFDO0lBR0QsUUFBUTtRQUNKLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPO1lBQUUsT0FBTztRQUU5Qix1QkFBdUI7UUFDdkIsNEJBQTRCO1FBRTVCLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQztRQUN4QyxNQUFNLEVBQUUsR0FBSSxJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUM5RCxrREFBa0Q7UUFDbEQsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLEdBQUcsS0FBSyxDQUFDO1FBQzVCLE1BQU0sVUFBVSxHQUFxQixPQUFPLENBQUMsTUFBTSxDQUFDLEVBQUUsRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFFcEUsVUFBVSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDO1lBQ2xELElBQUksRUFBRSxHQUFHLEVBQUU7Z0JBQ1QsSUFBSSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsZUFBZTtZQUM3QyxDQUFDO1lBQ0QsS0FBSyxFQUFFLENBQUMsR0FBRyxFQUFFLEVBQUU7Z0JBQ2IsSUFBSSxDQUFDLE9BQU8sR0FBRyxLQUFLLENBQUM7Z0JBQ3JCLDRDQUE0QztnQkFDNUMsb0NBQW9DO2dCQUNwQyxxRUFBcUU7WUFDdkUsQ0FBQztTQUNGLENBQUMsQ0FBQztJQUNMLENBQUM7SUFDRCxXQUFXO1FBQ1gsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUNyQixJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQzNCLENBQUM7dUdBMURVLCtCQUErQjsyRkFBL0IsK0JBQStCLHdGQTFCaEM7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBdUJULDREQUNRLFVBQVUsaUlBQUMsWUFBWSw4QkFBQyxtQkFBbUIsb2JBQUMsV0FBVyw4QkFBZSxZQUFZLDZhQUExQixhQUFhOzsyRkFFbkUsK0JBQStCO2tCQTVCM0MsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsOEJBQThCO29CQUN4QyxRQUFRLEVBQUU7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBdUJUO29CQUNELE9BQU8sRUFBQyxDQUFDLFVBQVUsRUFBQyxZQUFZLEVBQUMsbUJBQW1CLEVBQUMsV0FBVyxFQUFDLGFBQWEsRUFBQyxZQUFZLENBQUM7aUJBQzdGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IENvbXBvbmVudCwgaW5qZWN0LCBJbmplY3QsIE9uRGVzdHJveSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9ybUdyb3VwLCBGb3Jtc01vZHVsZSwgUmVhY3RpdmVGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IElkUGFyc2VyU2VydmljZSB9IGZyb20gJ0BlbGl0ZS5mcmFtZXdvcmsvbmcuY29yZS9zZXJ2aWNlcyc7XG5pbXBvcnQgeyBGb3JtbHlGaWVsZENvbmZpZywgRm9ybWx5Rm9ybSB9IGZyb20gJ0BuZ3gtZm9ybWx5L2NvcmUnO1xuaW1wb3J0IHsgVHJhbnNsYXRlUGlwZSB9IGZyb20gJ0BlbGl0ZS5mcmFtZXdvcmsvbmcuY29yZS9waXBlcyc7XG5pbXBvcnQgeyBCdXR0b25Nb2R1bGUgfSBmcm9tICdwcmltZW5nL2J1dHRvbic7XG5pbXBvcnQgeyBEeW5hbWljRGlhbG9nQ29uZmlnLCBEeW5hbWljRGlhbG9nUmVmIH0gZnJvbSAncHJpbWVuZy9keW5hbWljZGlhbG9nJztcbmltcG9ydCB7IE9ic2VydmFibGUsIFN1YmplY3QsIHRha2VVbnRpbCB9IGZyb20gJ3J4anMnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdhcHAtZGVhY3RpdmF0aW9uLXJlYXNvbi1mb3JtJyxcbiAgdGVtcGxhdGU6IGBcbiAgICA8Zm9ybSBbZm9ybUdyb3VwXT1cImZvcm1cIiAobmdTdWJtaXQpPVwib25TdWJtaXQoKVwiIGNsYXNzPVwicC00IHNwYWNlLXktNFwiPlxuICAgICAgPGZvcm1seS1mb3JtIFtmb3JtXT1cImZvcm1cIiBbZmllbGRzXT1cImZpZWxkc1wiIFttb2RlbF09XCJtb2RlbFwiPjwvZm9ybWx5LWZvcm0+XG5cblxuICAgICAgPGRpdiBjbGFzcz1cImJvdHRvbS0wIGxlZnQtMCByaWdodC0wIGJnLWdyYXktMjAwIGJvcmRlci10IGJvcmRlci1ncmF5LTQwMCBweC00IHB5LTMgZmxleCBqdXN0aWZ5LWVuZCBnYXAtMlwiPlxuXG4gICAgPHAtYnV0dG9uXG4gICAgICBbbGFiZWxdPVwiKCAnU0FWRScpIHwgdHJhbnNsYXRlXCJcbiAgICAgIHNpemU9XCJzbWFsbFwiXG4gICAgICAgW2Rpc2FibGVkXT1cImZvcm0uaW52YWxpZFwiXG4gICAgICBbdHlwZV09XCInc3VibWl0J1wiPlxuICAgIDwvcC1idXR0b24+XG5cbiAgICA8cC1idXR0b25cbiAgICAgIFtsYWJlbF09XCInQ0FOQ0VMJyB8IHRyYW5zbGF0ZSBcIlxuICAgICAgc2V2ZXJpdHk9XCJkYW5nZXJcIlxuICAgICAgc2l6ZT1cInNtYWxsXCJcbiAgICAgIChvbkNsaWNrKT1cInJlZi5jbG9zZShmYWxzZSlcIj5cbiAgICA8L3AtYnV0dG9uPlxuXG4gIDwvZGl2PlxuICAgIDwvZm9ybT5cbiAgYCxcbiAgaW1wb3J0czpbRm9ybWx5Rm9ybSxDb21tb25Nb2R1bGUsUmVhY3RpdmVGb3Jtc01vZHVsZSxGb3Jtc01vZHVsZSxUcmFuc2xhdGVQaXBlLEJ1dHRvbk1vZHVsZV1cbn0pXG5leHBvcnQgY2xhc3MgRGVhY3RpdmF0aW9uUmVhc29uRm9ybUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uRGVzdHJveSB7XG4gIGZvcm0gPSBuZXcgRm9ybUdyb3VwKHt9KTtcbiAgbW9kZWw6IGFueSA9IHt9O1xuICBmaWVsZHM6IEZvcm1seUZpZWxkQ29uZmlnW107XG4gIGxvYWRpbmcgPSBmYWxzZTtcbiAgZXJyb3JNZXNzYWdlOiBzdHJpbmcgfCBudWxsID0gbnVsbDtcbiAgIHByaXZhdGUgZGVzdHJveSQgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuICBwcml2YXRlIGlkRmllbGQ6IGFueTtcbiBwcml2YXRlIGlkUGFyc2VyPSBpbmplY3QoSWRQYXJzZXJTZXJ2aWNlKTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwdWJsaWMgcmVmOiBEeW5hbWljRGlhbG9nUmVmLFxuICAgIHB1YmxpYyBjb25maWc6IER5bmFtaWNEaWFsb2dDb25maWdcbiAgKSB7XG4gICAgdGhpcy5tb2RlbCA9IGNvbmZpZy5kYXRhPy5tb2RlbCB8fCB7fTtcbiAgICB0aGlzLmlkRmllbGQgPSB0aGlzLmNvbmZpZy5kYXRhLmlkRmllbGQ7XG4gICAgdGhpcy5maWVsZHMgPSBbXG4gICAgICB7XG4gICAgICAgIGtleTogJ2RlYWN0aXZhdGlvblJlYXNvbicsXG4gICAgICAgIHR5cGU6ICd0ZXh0YXJlYScsXG4gICAgICAgIHByb3BzOiB7XG4gICAgICAgICAgbGFiZWw6ICdEZWFjdGl2YXRpb25SZWFzb24nLFxuICAgICAgICAgIHBsYWNlaG9sZGVyOiAnRGVhY3RpdmF0aW9uUmVhc29uJyxcbiAgICAgICAgICByb3dzOiA1LFxuICAgICAgICAgIHJlcXVpcmVkOiB0cnVlLFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICBdO1xuICB9XG5cblxuICBvblN1Ym1pdCgpIHtcbiAgICAgIGlmICh0aGlzLmZvcm0uaW52YWxpZCkgcmV0dXJuO1xuXG4gICAgICAvLyB0aGlzLmxvYWRpbmcgPSB0cnVlO1xuICAgICAgLy8gdGhpcy5lcnJvck1lc3NhZ2UgPSBudWxsO1xuXG4gICAgICBjb25zdCBzZXJ2aWNlID0gdGhpcy5jb25maWcuZGF0YS5zZXJ2aWNlO1xuICAgICAgIGNvbnN0IGlkID0gIHRoaXMuaWRQYXJzZXIucGFyc2VJZHModGhpcy5tb2RlbCwgdGhpcy5pZEZpZWxkKTtcbiAgICAgIC8vIGNvbnN0IGlkID0gICh0aGlzLm1vZGVsIGFzIGFueSlbdGhpcy5pZEZpZWxkXSA7XG4gICAgICB0aGlzLm1vZGVsLmlzQWN0aXZlID0gZmFsc2U7XG4gICAgICBjb25zdCBvcGVyYXRpb24kOiBPYnNlcnZhYmxlPGFueT4gPSAgc2VydmljZS51cGRhdGUoaWQsIHRoaXMubW9kZWwpO1xuXG4gICAgICBvcGVyYXRpb24kLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKS5zdWJzY3JpYmUoe1xuICAgICAgICBuZXh0OiAoKSA9PiB7XG4gICAgICAgICAgdGhpcy5yZWYuY2xvc2UodGhpcy5tb2RlbCk7IC8vINmG2KzYp9itINin2YTYudmF2YTZitipXG4gICAgICAgIH0sXG4gICAgICAgIGVycm9yOiAoZXJyKSA9PiB7XG4gICAgICAgICAgdGhpcy5sb2FkaW5nID0gZmFsc2U7XG4gICAgICAgICAgLy8gdGhpcy5lcnJvck1lc3NhZ2UgPSBlcnIuZXJyb3I/Lm1lc3NhZ2UgfHxcbiAgICAgICAgICAvLyAgICAgICAgICAgICAgICAgICAgZXJyLm1lc3NhZ2UgfHxcbiAgICAgICAgICAvLyAgICAgICAgICAgICAgICAgICAgJ9it2K/YqyDYrti32KMg2KPYq9mG2KfYoSDYp9mE2K3Zgdi4LiDZitix2KzZiSDYp9mE2YXYrdin2YjZhNipINmF2LHYqSDYo9iu2LHZiS4nO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9XG4gICAgbmdPbkRlc3Ryb3koKSB7XG4gICAgdGhpcy5kZXN0cm95JC5uZXh0KCk7XG4gICAgdGhpcy5kZXN0cm95JC5jb21wbGV0ZSgpO1xuICB9XG59XG4iXX0=","/**\n * Generated bundle index. Do not edit.\n */\nexport * from './index';\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWxpdGUuZnJhbWV3b3JrLW5nLnVpLmNvcmUtZGVhY3RpdmF0aW9uLXJlYXNvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYnMvbmcudWkuY29yZS9kZWFjdGl2YXRpb24tcmVhc29uL3NyYy9lbGl0ZS5mcmFtZXdvcmstbmcudWkuY29yZS1kZWFjdGl2YXRpb24tcmVhc29uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsY0FBYyxTQUFTLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEdlbmVyYXRlZCBidW5kbGUgaW5kZXguIERvIG5vdCBlZGl0LlxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vaW5kZXgnO1xuIl19"],"names":[],"mappings":"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"}
|
|
@@ -4,10 +4,9 @@ import * as i2 from '@angular/common';
|
|
|
4
4
|
import { CommonModule } from '@angular/common';
|
|
5
5
|
import * as i3 from '@angular/forms';
|
|
6
6
|
import { FormBuilder, Validators, ReactiveFormsModule, FormsModule } from '@angular/forms';
|
|
7
|
-
import { RestService, EnvironmentService } from '@elite.framework/ng.core/services';
|
|
7
|
+
import { RestService, LocalizationService, EnvironmentService } from '@elite.framework/ng.core/services';
|
|
8
8
|
import { FormlyForm } from '@ngx-formly/core';
|
|
9
|
-
import
|
|
10
|
-
import { TranslateService, TranslateModule } from '@ngx-translate/core';
|
|
9
|
+
import { TranslatePipe } from '@elite.framework/ng.core/pipes';
|
|
11
10
|
import * as i4 from 'primeng/button';
|
|
12
11
|
import { ButtonModule } from 'primeng/button';
|
|
13
12
|
import * as i1 from 'primeng/dynamicdialog';
|
|
@@ -48,7 +47,7 @@ class ExcelImportComponent {
|
|
|
48
47
|
destroy$ = new Subject();
|
|
49
48
|
restService = inject(RestService);
|
|
50
49
|
messageService = inject(MessageService);
|
|
51
|
-
translateService = inject(
|
|
50
|
+
translateService = inject(LocalizationService);
|
|
52
51
|
fb = inject(FormBuilder);
|
|
53
52
|
env = inject(EnvironmentService);
|
|
54
53
|
steps = [
|
|
@@ -413,7 +412,7 @@ class ExcelImportComponent {
|
|
|
413
412
|
</div>
|
|
414
413
|
</form>
|
|
415
414
|
</div>
|
|
416
|
-
`, isInline: true, dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i2.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i3.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i3.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i3.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "ngmodule", type: FormsModule }, { kind: "component", type: FormlyForm, selector: "formly-form", inputs: ["form", "model", "fields", "options"], outputs: ["modelChange"] }, { kind: "ngmodule", type:
|
|
415
|
+
`, isInline: true, dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i2.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i3.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i3.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i3.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "ngmodule", type: FormsModule }, { kind: "component", type: FormlyForm, selector: "formly-form", inputs: ["form", "model", "fields", "options"], outputs: ["modelChange"] }, { 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: "ngmodule", type: FileUploadModule }, { kind: "component", type: i5.FileUpload, selector: "p-fileupload, p-fileUpload", inputs: ["name", "url", "method", "multiple", "accept", "disabled", "auto", "withCredentials", "maxFileSize", "invalidFileSizeMessageSummary", "invalidFileSizeMessageDetail", "invalidFileTypeMessageSummary", "invalidFileTypeMessageDetail", "invalidFileLimitMessageDetail", "invalidFileLimitMessageSummary", "style", "styleClass", "previewWidth", "chooseLabel", "uploadLabel", "cancelLabel", "chooseIcon", "uploadIcon", "cancelIcon", "showUploadButton", "showCancelButton", "mode", "headers", "customUpload", "fileLimit", "uploadStyleClass", "cancelStyleClass", "removeStyleClass", "chooseStyleClass", "chooseButtonProps", "uploadButtonProps", "cancelButtonProps", "files"], outputs: ["onBeforeUpload", "onSend", "onUpload", "onError", "onClear", "onRemove", "onSelect", "onProgress", "uploadHandler", "onImageError", "onRemoveUploadedFile"] }, { kind: "ngmodule", type: StepsModule }, { kind: "component", type: i6.Steps, selector: "p-steps", inputs: ["activeIndex", "model", "readonly", "style", "styleClass", "exact"], outputs: ["activeIndexChange"] }, { kind: "ngmodule", type: ToastModule }, { kind: "component", type: i7.Toast, selector: "p-toast", inputs: ["key", "autoZIndex", "baseZIndex", "life", "styleClass", "position", "preventOpenDuplicates", "preventDuplicates", "showTransformOptions", "hideTransformOptions", "showTransitionOptions", "hideTransitionOptions", "breakpoints"], outputs: ["onClose"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }] });
|
|
417
416
|
}
|
|
418
417
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.8", ngImport: i0, type: ExcelImportComponent, decorators: [{
|
|
419
418
|
type: Component,
|
|
@@ -544,7 +543,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.8", ngImpor
|
|
|
544
543
|
ReactiveFormsModule,
|
|
545
544
|
FormsModule,
|
|
546
545
|
FormlyForm,
|
|
547
|
-
|
|
546
|
+
TranslatePipe,
|
|
548
547
|
ButtonModule,
|
|
549
548
|
FileUploadModule,
|
|
550
549
|
StepsModule,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"elite.framework-ng.ui.core-excel-import.mjs","sources":["../tmp-esm2022/excel-import/lib/excel-import-module.js","../tmp-esm2022/excel-import/lib/excel-import.js","../tmp-esm2022/excel-import/elite.framework-ng.ui.core-excel-import.js"],"sourcesContent":["import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport * as i0 from \"@angular/core\";\nexport class ExcelImportModule {\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: ExcelImportModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });\n static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"14.0.0\", version: \"20.1.8\", ngImport: i0, type: ExcelImportModule, imports: [CommonModule] });\n static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: ExcelImportModule, imports: [CommonModule] });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: ExcelImportModule, decorators: [{\n type: NgModule,\n args: [{\n imports: [CommonModule],\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXhjZWwtaW1wb3J0LW1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvbmcudWkuY29yZS9leGNlbC1pbXBvcnQvc3JjL2xpYi9leGNlbC1pbXBvcnQtbW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDOztBQUsvQyxNQUFNLE9BQU8saUJBQWlCO3VHQUFqQixpQkFBaUI7d0dBQWpCLGlCQUFpQixZQUZsQixZQUFZO3dHQUVYLGlCQUFpQixZQUZsQixZQUFZOzsyRkFFWCxpQkFBaUI7a0JBSDdCLFFBQVE7bUJBQUM7b0JBQ1IsT0FBTyxFQUFFLENBQUMsWUFBWSxDQUFDO2lCQUN4QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuXG5ATmdNb2R1bGUoe1xuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlXSxcbn0pXG5leHBvcnQgY2xhc3MgRXhjZWxJbXBvcnRNb2R1bGUge31cbiJdfQ==","import { CommonModule } from '@angular/common';\nimport { Component, inject, Input, Output, EventEmitter } from '@angular/core';\nimport { FormsModule, ReactiveFormsModule, FormBuilder, Validators } from '@angular/forms';\nimport { EnvironmentService, RestService } from '@elite.framework/ng.core/services';\nimport { FormlyForm } from '@ngx-formly/core';\nimport { TranslateModule, TranslateService } from '@ngx-translate/core';\nimport { ButtonModule } from 'primeng/button';\nimport { DynamicDialogConfig, DynamicDialogRef } from 'primeng/dynamicdialog';\nimport { Subject, takeUntil } from 'rxjs';\nimport { FileUploadModule } from 'primeng/fileupload';\nimport { StepsModule } from 'primeng/steps';\nimport { MessageService } from 'primeng/api';\nimport { ToastModule } from 'primeng/toast';\nimport { read, utils } from 'xlsx';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"primeng/dynamicdialog\";\nimport * as i2 from \"@angular/common\";\nimport * as i3 from \"@angular/forms\";\nimport * as i4 from \"primeng/button\";\nimport * as i5 from \"primeng/fileupload\";\nimport * as i6 from \"primeng/steps\";\nimport * as i7 from \"primeng/toast\";\nimport * as i8 from \"@ngx-translate/core\";\nexport class ExcelImportComponent {\n ref;\n dialogConfig;\n config;\n importComplete = new EventEmitter();\n importError = new EventEmitter();\n form;\n model = {};\n loading = false;\n uploadedFileName = null;\n uploadError = null;\n excelHeaders = [];\n destroy$ = new Subject();\n restService = inject(RestService);\n messageService = inject(MessageService);\n translateService = inject(TranslateService);\n fb = inject(FormBuilder);\n env = inject(EnvironmentService);\n steps = [\n { label: this.translateService.instant('uploadFile') },\n { label: this.translateService.instant('columnMapping') },\n { label: this.translateService.instant('review') },\n ];\n activeStep = 0;\n mappingFields = [];\n constructor(ref, dialogConfig) {\n this.ref = ref;\n this.dialogConfig = dialogConfig;\n this.form = this.fb.group({});\n // Initialize from dialog config if provided\n if (this.dialogConfig?.data?.config) {\n this.config = this.dialogConfig.data.config;\n }\n }\n ngOnInit() {\n if (!this.config) {\n throw new Error('ExcelImportConfig is required');\n }\n this.mappingFields = this.config.mappingFields.map(field => ({\n ...field,\n props: {\n ...field.props,\n options: []\n }\n }));\n this.steps = this.config.steps || this.steps;\n }\n nextStep() {\n if (this.activeStep < 2)\n this.activeStep++;\n }\n prevStep() {\n if (this.activeStep > 0)\n this.activeStep--;\n }\n canProceed() {\n switch (this.activeStep) {\n case 0:\n return !!this.uploadedFileName;\n case 1:\n return this.form.valid;\n case 2:\n return true;\n default:\n return false;\n }\n }\n getModelValue(field, model) {\n if (!field.key)\n return null;\n if (Array.isArray(field.key)) {\n // Walk through nested keys like ['address', 'street']\n return field.key.reduce((acc, k) => (acc ? acc[k] : undefined), model);\n }\n return model[field.key];\n }\n // Add this property to store the file content\n fileContent = null;\n // Update the onFileUpload method to store the file content\n onFileUpload(event) {\n this.uploadError = null;\n const file = event.files[0];\n if (!file) {\n this.uploadError = 'noFileSelected';\n return;\n }\n // Validate file type\n const validExtensions = ['.xlsx', '.xls', '.csv'];\n const fileExtension = file.name.toLowerCase().substring(file.name.lastIndexOf('.'));\n if (!validExtensions.includes(fileExtension)) {\n this.uploadError = 'invalidFileType';\n this.clearFileUpload(event);\n return;\n }\n this.uploadedFileName = file.name;\n const reader = new FileReader();\n reader.onload = (e) => {\n try {\n const arrayBuffer = e.target?.result;\n this.fileContent = arrayBuffer; // Store the file content\n const data = new Uint8Array(arrayBuffer);\n const workbook = read(data, { type: 'array' });\n if (workbook.SheetNames.length === 0) {\n this.uploadError = 'noSheetsFound';\n this.clearFileUpload(event);\n return;\n }\n const sheetName = workbook.SheetNames[0];\n const worksheet = workbook.Sheets[sheetName];\n const rows = utils.sheet_to_json(worksheet, { header: 1 });\n if (rows.length === 0) {\n this.uploadError = 'noDataFound';\n this.clearFileUpload(event);\n return;\n }\n this.excelHeaders = rows[0];\n // Update mapping fields with header options\n this.mappingFields.forEach(field => {\n if (field.props) {\n field.props.options = this.excelHeaders.map(h => ({\n value: h,\n label: h,\n }));\n }\n });\n // Initialize form with default values if not set\n this.initializeForm();\n }\n catch (error) {\n console.error('Error processing Excel file:', error);\n this.uploadError = 'fileProcessingError';\n this.clearFileUpload(event);\n }\n };\n reader.onerror = (error) => {\n console.error('File reading error:', error);\n this.uploadError = 'fileReadError';\n this.clearFileUpload(event);\n };\n reader.readAsArrayBuffer(file);\n }\n // Add this method to convert ArrayBuffer to base64\n arrayBufferToBase64(buffer) {\n const bytes = new Uint8Array(buffer);\n let binary = '';\n const len = bytes.byteLength;\n for (let i = 0; i < len; i++) {\n binary += String.fromCharCode(bytes[i]);\n }\n return window.btoa(binary);\n }\n // Add this method to get file extension\n getFileExtension(filename) {\n const index = filename.lastIndexOf('.');\n return index !== -1 ? filename.slice(index) : '';\n }\n // Updated onSubmit method\n onSubmit() {\n if (this.form.invalid || !this.uploadedFileName || !this.fileContent) {\n this.form.markAllAsTouched();\n if (!this.fileContent) {\n this.messageService.add({\n severity: 'error',\n summary: 'Error',\n detail: 'File content is missing. Please upload the file again.'\n });\n }\n return;\n }\n this.loading = true;\n // Convert file content to base64\n let fileBase64;\n try {\n if (this.fileContent instanceof ArrayBuffer) {\n fileBase64 = this.arrayBufferToBase64(this.fileContent);\n }\n else if (typeof this.fileContent === 'string') {\n // If it's already a string (base64), use it directly\n fileBase64 = this.fileContent;\n }\n else {\n throw new Error('Unsupported file content type');\n }\n }\n catch (error) {\n this.loading = false;\n console.error('Error converting file to base64:', error);\n this.messageService.add({\n severity: 'error',\n summary: 'Error',\n detail: 'Failed to process file content'\n });\n return;\n }\n const requestBody = {\n fileName: this.uploadedFileName,\n fileExtension: this.getFileExtension(this.uploadedFileName),\n fileContent: fileBase64,\n mappings: this.form.value,\n headers: this.excelHeaders,\n fileSize: this.fileContent instanceof ArrayBuffer ? this.fileContent.byteLength : 0\n };\n this.restService\n .request({\n method: 'POST',\n url: this.config.apiUrl,\n body: requestBody,\n headers: {\n 'Content-Type': 'application/json'\n }\n }, { apiName: this.config.apiName })\n .pipe(takeUntil(this.destroy$))\n .subscribe({\n next: (response) => {\n this.loading = false;\n this.messageService.add({\n severity: 'success',\n summary: 'Success',\n detail: 'File imported successfully'\n });\n this.importComplete.emit(response);\n this.ref.close(response);\n },\n error: (err) => {\n this.loading = false;\n console.error('Import error:', err);\n this.messageService.add({\n severity: 'error',\n summary: 'Error',\n detail: 'Failed to import file'\n });\n this.importError.emit(err);\n },\n });\n }\n // Update clearFileUpload to also clear file content\n clearFileUpload(event) {\n if (event.options && typeof event.options.clear === 'function') {\n event.options.clear();\n }\n this.uploadedFileName = null;\n this.fileContent = null;\n }\n initializeForm() {\n const formConfig = {};\n this.mappingFields.forEach(field => {\n if (field.key) {\n // Set default value to first header if available\n formConfig[field.key] = [this.excelHeaders[0] || '', Validators.required];\n }\n });\n this.form = this.fb.group(formConfig);\n }\n onCancel() {\n if (!this.loading) {\n this.ref.close(false);\n }\n }\n ngOnDestroy() {\n this.destroy$.next();\n this.destroy$.complete();\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: ExcelImportComponent, deps: [{ token: i1.DynamicDialogRef }, { token: i1.DynamicDialogConfig }], target: i0.ɵɵFactoryTarget.Component });\n static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"20.1.8\", type: ExcelImportComponent, isStandalone: true, selector: \"app-excel-import\", inputs: { config: \"config\" }, outputs: { importComplete: \"importComplete\", importError: \"importError\" }, providers: [MessageService], ngImport: i0, template: `\r\n <p-toast></p-toast>\r\n <div class=\"p-4 space-y-4\">\r\n <p-steps [model]=\"steps\" [(activeIndex)]=\"activeStep\" class=\"mb-4\"></p-steps>\r\n\r\n <form [formGroup]=\"form\" (ngSubmit)=\"onSubmit()\">\r\n <ng-container [ngSwitch]=\"activeStep\">\r\n <!-- Step 1: Upload File -->\r\n <div *ngSwitchCase=\"0\" class=\"p-4\">\r\n <!-- Download template link -->\r\n\r\n\r\n <!-- File upload -->\r\n <p-fileUpload\r\n name=\"excelFile\"\r\n mode=\"basic\"\r\n chooseIcon=\"pi pi-upload\"\r\n chooseLabel=\"{{ 'chooseFile' | translate }}\"\r\n (onSelect)=\"onFileUpload($event)\"\r\n [accept]=\"config.acceptedFileTypes || '.xls,.xlsx,.csv'\"\r\n [maxFileSize]=\"config.maxFileSize || 10000000\"\r\n [showUploadButton]=\"false\"\r\n [showCancelButton]=\"false\"\r\n >\r\n </p-fileUpload>\r\n\r\n <!-- Upload status -->\r\n <p *ngIf=\"uploadedFileName\" class=\"mt-2 text-green-600\">\r\n {{ uploadedFileName }}\r\n </p>\r\n <p *ngIf=\"uploadError\" class=\"mt-2 text-red-600\">\r\n {{ uploadError }}\r\n </p>\r\n </div>\r\n <p>\r\n <a\r\n [href]=\"env.getEnvironment().apis.default.url+config.templateUrl\"\r\n download\r\n class=\"text-blue-600 hover:underline flex items-center gap-1\"\r\n >\r\n <i class=\"pi pi-download\"></i>\r\n {{ 'downloadTemplate' | translate }}\r\n </a>\r\n </p>\r\n\r\n\r\n <!-- Step 2: Column Mapping -->\r\n <div *ngSwitchCase=\"1\" class=\"p-4\">\r\n <formly-form [form]=\"form\" [fields]=\"mappingFields\" [model]=\"model\"></formly-form>\r\n </div>\r\n\r\n <!-- Step 3: Review -->\r\n <div *ngSwitchCase=\"2\" class=\"p-4\">\r\n <p class=\"text-gray-700 mb-4\">\r\n {{ 'importReviewMessage' | translate }}\r\n </p>\r\n <div class=\"bg-gray-100 p-3 rounded\">\r\n <p><strong>{{ 'fileName' | translate }}:</strong> {{ uploadedFileName }}</p>\r\n <p><strong>{{ 'selectedMappings' | translate }}:</strong></p>\r\n <ul class=\"list-disc list-inside ml-4\">\r\n <li *ngFor=\"let field of mappingFields\">\r\n {{ field.props?.label }}: {{ getModelValue(field, model) }}\r\n </li>\r\n </ul>\r\n </div>\r\n </div>\r\n </ng-container>\r\n\r\n <!-- Footer Buttons -->\r\n <div class=\"flex justify-between mt-6 pt-4 border-t\">\r\n <div>\r\n <button\r\n pButton\r\n type=\"button\"\r\n [label]=\"'back' | translate\"\r\n icon=\"pi pi-arrow-left\"\r\n (click)=\"prevStep()\"\r\n [disabled]=\"activeStep === 0 || loading\"\r\n class=\"p-button-text\"\r\n ></button>\r\n </div>\r\n\r\n <div class=\"flex gap-2\">\r\n <button\r\n pButton\r\n type=\"button\"\r\n [label]=\"'next' | translate\"\r\n icon=\"pi pi-arrow-right\"\r\n iconPos=\"right\"\r\n (click)=\"nextStep()\"\r\n *ngIf=\"activeStep < 2\"\r\n [disabled]=\"!canProceed() || loading\"\r\n ></button>\r\n\r\n <button\r\n pButton\r\n type=\"submit\"\r\n [label]=\"loading ? ('uploading' | translate) : ('save' | translate)\"\r\n icon=\"pi pi-check\"\r\n *ngIf=\"activeStep === 2\"\r\n [disabled]=\"loading\"\r\n [loading]=\"loading\"\r\n class=\"p-button-primary\"\r\n ></button>\r\n\r\n <button\r\n pButton\r\n type=\"button\"\r\n [label]=\"'cancel' | translate\"\r\n severity=\"secondary\"\r\n (click)=\"onCancel()\"\r\n [disabled]=\"loading\"\r\n ></button>\r\n </div>\r\n </div>\r\n </form>\r\n </div>\r\n `, isInline: true, dependencies: [{ kind: \"ngmodule\", type: CommonModule }, { kind: \"directive\", type: i2.NgForOf, selector: \"[ngFor][ngForOf]\", inputs: [\"ngForOf\", \"ngForTrackBy\", \"ngForTemplate\"] }, { kind: \"directive\", type: i2.NgIf, selector: \"[ngIf]\", inputs: [\"ngIf\", \"ngIfThen\", \"ngIfElse\"] }, { kind: \"directive\", type: i2.NgSwitch, selector: \"[ngSwitch]\", inputs: [\"ngSwitch\"] }, { kind: \"directive\", type: i2.NgSwitchCase, selector: \"[ngSwitchCase]\", inputs: [\"ngSwitchCase\"] }, { kind: \"ngmodule\", type: ReactiveFormsModule }, { kind: \"directive\", type: i3.ɵNgNoValidate, selector: \"form:not([ngNoForm]):not([ngNativeValidate])\" }, { kind: \"directive\", type: i3.NgControlStatusGroup, selector: \"[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]\" }, { kind: \"directive\", type: i3.FormGroupDirective, selector: \"[formGroup]\", inputs: [\"formGroup\"], outputs: [\"ngSubmit\"], exportAs: [\"ngForm\"] }, { kind: \"ngmodule\", type: FormsModule }, { kind: \"component\", type: FormlyForm, selector: \"formly-form\", inputs: [\"form\", \"model\", \"fields\", \"options\"], outputs: [\"modelChange\"] }, { kind: \"ngmodule\", type: TranslateModule }, { 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: \"ngmodule\", type: FileUploadModule }, { kind: \"component\", type: i5.FileUpload, selector: \"p-fileupload, p-fileUpload\", inputs: [\"name\", \"url\", \"method\", \"multiple\", \"accept\", \"disabled\", \"auto\", \"withCredentials\", \"maxFileSize\", \"invalidFileSizeMessageSummary\", \"invalidFileSizeMessageDetail\", \"invalidFileTypeMessageSummary\", \"invalidFileTypeMessageDetail\", \"invalidFileLimitMessageDetail\", \"invalidFileLimitMessageSummary\", \"style\", \"styleClass\", \"previewWidth\", \"chooseLabel\", \"uploadLabel\", \"cancelLabel\", \"chooseIcon\", \"uploadIcon\", \"cancelIcon\", \"showUploadButton\", \"showCancelButton\", \"mode\", \"headers\", \"customUpload\", \"fileLimit\", \"uploadStyleClass\", \"cancelStyleClass\", \"removeStyleClass\", \"chooseStyleClass\", \"chooseButtonProps\", \"uploadButtonProps\", \"cancelButtonProps\", \"files\"], outputs: [\"onBeforeUpload\", \"onSend\", \"onUpload\", \"onError\", \"onClear\", \"onRemove\", \"onSelect\", \"onProgress\", \"uploadHandler\", \"onImageError\", \"onRemoveUploadedFile\"] }, { kind: \"ngmodule\", type: StepsModule }, { kind: \"component\", type: i6.Steps, selector: \"p-steps\", inputs: [\"activeIndex\", \"model\", \"readonly\", \"style\", \"styleClass\", \"exact\"], outputs: [\"activeIndexChange\"] }, { kind: \"ngmodule\", type: ToastModule }, { kind: \"component\", type: i7.Toast, selector: \"p-toast\", inputs: [\"key\", \"autoZIndex\", \"baseZIndex\", \"life\", \"styleClass\", \"position\", \"preventOpenDuplicates\", \"preventDuplicates\", \"showTransformOptions\", \"hideTransformOptions\", \"showTransitionOptions\", \"hideTransitionOptions\", \"breakpoints\"], outputs: [\"onClose\"] }, { kind: \"pipe\", type: i8.TranslatePipe, name: \"translate\" }] });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: ExcelImportComponent, decorators: [{\n type: Component,\n args: [{\n selector: 'app-excel-import',\n standalone: true,\n providers: [MessageService],\n template: `\r\n <p-toast></p-toast>\r\n <div class=\"p-4 space-y-4\">\r\n <p-steps [model]=\"steps\" [(activeIndex)]=\"activeStep\" class=\"mb-4\"></p-steps>\r\n\r\n <form [formGroup]=\"form\" (ngSubmit)=\"onSubmit()\">\r\n <ng-container [ngSwitch]=\"activeStep\">\r\n <!-- Step 1: Upload File -->\r\n <div *ngSwitchCase=\"0\" class=\"p-4\">\r\n <!-- Download template link -->\r\n\r\n\r\n <!-- File upload -->\r\n <p-fileUpload\r\n name=\"excelFile\"\r\n mode=\"basic\"\r\n chooseIcon=\"pi pi-upload\"\r\n chooseLabel=\"{{ 'chooseFile' | translate }}\"\r\n (onSelect)=\"onFileUpload($event)\"\r\n [accept]=\"config.acceptedFileTypes || '.xls,.xlsx,.csv'\"\r\n [maxFileSize]=\"config.maxFileSize || 10000000\"\r\n [showUploadButton]=\"false\"\r\n [showCancelButton]=\"false\"\r\n >\r\n </p-fileUpload>\r\n\r\n <!-- Upload status -->\r\n <p *ngIf=\"uploadedFileName\" class=\"mt-2 text-green-600\">\r\n {{ uploadedFileName }}\r\n </p>\r\n <p *ngIf=\"uploadError\" class=\"mt-2 text-red-600\">\r\n {{ uploadError }}\r\n </p>\r\n </div>\r\n <p>\r\n <a\r\n [href]=\"env.getEnvironment().apis.default.url+config.templateUrl\"\r\n download\r\n class=\"text-blue-600 hover:underline flex items-center gap-1\"\r\n >\r\n <i class=\"pi pi-download\"></i>\r\n {{ 'downloadTemplate' | translate }}\r\n </a>\r\n </p>\r\n\r\n\r\n <!-- Step 2: Column Mapping -->\r\n <div *ngSwitchCase=\"1\" class=\"p-4\">\r\n <formly-form [form]=\"form\" [fields]=\"mappingFields\" [model]=\"model\"></formly-form>\r\n </div>\r\n\r\n <!-- Step 3: Review -->\r\n <div *ngSwitchCase=\"2\" class=\"p-4\">\r\n <p class=\"text-gray-700 mb-4\">\r\n {{ 'importReviewMessage' | translate }}\r\n </p>\r\n <div class=\"bg-gray-100 p-3 rounded\">\r\n <p><strong>{{ 'fileName' | translate }}:</strong> {{ uploadedFileName }}</p>\r\n <p><strong>{{ 'selectedMappings' | translate }}:</strong></p>\r\n <ul class=\"list-disc list-inside ml-4\">\r\n <li *ngFor=\"let field of mappingFields\">\r\n {{ field.props?.label }}: {{ getModelValue(field, model) }}\r\n </li>\r\n </ul>\r\n </div>\r\n </div>\r\n </ng-container>\r\n\r\n <!-- Footer Buttons -->\r\n <div class=\"flex justify-between mt-6 pt-4 border-t\">\r\n <div>\r\n <button\r\n pButton\r\n type=\"button\"\r\n [label]=\"'back' | translate\"\r\n icon=\"pi pi-arrow-left\"\r\n (click)=\"prevStep()\"\r\n [disabled]=\"activeStep === 0 || loading\"\r\n class=\"p-button-text\"\r\n ></button>\r\n </div>\r\n\r\n <div class=\"flex gap-2\">\r\n <button\r\n pButton\r\n type=\"button\"\r\n [label]=\"'next' | translate\"\r\n icon=\"pi pi-arrow-right\"\r\n iconPos=\"right\"\r\n (click)=\"nextStep()\"\r\n *ngIf=\"activeStep < 2\"\r\n [disabled]=\"!canProceed() || loading\"\r\n ></button>\r\n\r\n <button\r\n pButton\r\n type=\"submit\"\r\n [label]=\"loading ? ('uploading' | translate) : ('save' | translate)\"\r\n icon=\"pi pi-check\"\r\n *ngIf=\"activeStep === 2\"\r\n [disabled]=\"loading\"\r\n [loading]=\"loading\"\r\n class=\"p-button-primary\"\r\n ></button>\r\n\r\n <button\r\n pButton\r\n type=\"button\"\r\n [label]=\"'cancel' | translate\"\r\n severity=\"secondary\"\r\n (click)=\"onCancel()\"\r\n [disabled]=\"loading\"\r\n ></button>\r\n </div>\r\n </div>\r\n </form>\r\n </div>\r\n `,\n imports: [\n CommonModule,\n ReactiveFormsModule,\n FormsModule,\n FormlyForm,\n TranslateModule,\n ButtonModule,\n FileUploadModule,\n StepsModule,\n ToastModule\n ],\n }]\n }], ctorParameters: () => [{ type: i1.DynamicDialogRef }, { type: i1.DynamicDialogConfig }], propDecorators: { config: [{\n type: Input\n }], importComplete: [{\n type: Output\n }], importError: [{\n type: Output\n }] } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXhjZWwtaW1wb3J0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9uZy51aS5jb3JlL2V4Y2VsLWltcG9ydC9zcmMvbGliL2V4Y2VsLWltcG9ydC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQWEsS0FBSyxFQUFFLE1BQU0sRUFBRSxZQUFZLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDMUYsT0FBTyxFQUFhLFdBQVcsRUFBRSxtQkFBbUIsRUFBRSxXQUFXLEVBQUUsVUFBVSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDdEcsT0FBTyxFQUFFLGtCQUFrQixFQUFFLFdBQVcsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQ3BGLE9BQU8sRUFBcUIsVUFBVSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDakUsT0FBTyxFQUFFLGVBQWUsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3hFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM5QyxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUM5RSxPQUFPLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMxQyxPQUFPLEVBQUUsZ0JBQWdCLEVBQW1CLE1BQU0sb0JBQW9CLENBQUM7QUFDdkUsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM1QyxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQzdDLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDNUMsT0FBTyxFQUFFLElBQUksRUFBRSxLQUFLLEVBQVksTUFBTSxNQUFNLENBQUM7Ozs7Ozs7Ozs7QUFrSjdD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VztzQkFBcEIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7IENvbXBvbmVudCwgaW5qZWN0LCBPbkRlc3Ryb3ksIElucHV0LCBPdXRwdXQsIEV2ZW50RW1pdHRlciB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBGb3JtR3JvdXAsIEZvcm1zTW9kdWxlLCBSZWFjdGl2ZUZvcm1zTW9kdWxlLCBGb3JtQnVpbGRlciwgVmFsaWRhdG9ycyB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgRW52aXJvbm1lbnRTZXJ2aWNlLCBSZXN0U2VydmljZSB9IGZyb20gJ0BlbGl0ZS5mcmFtZXdvcmsvbmcuY29yZS9zZXJ2aWNlcyc7XHJcbmltcG9ydCB7IEZvcm1seUZpZWxkQ29uZmlnLCBGb3JtbHlGb3JtIH0gZnJvbSAnQG5neC1mb3JtbHkvY29yZSc7XHJcbmltcG9ydCB7IFRyYW5zbGF0ZU1vZHVsZSwgVHJhbnNsYXRlU2VydmljZSB9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xyXG5pbXBvcnQgeyBCdXR0b25Nb2R1bGUgfSBmcm9tICdwcmltZW5nL2J1dHRvbic7XHJcbmltcG9ydCB7IER5bmFtaWNEaWFsb2dDb25maWcsIER5bmFtaWNEaWFsb2dSZWYgfSBmcm9tICdwcmltZW5nL2R5bmFtaWNkaWFsb2cnO1xyXG5pbXBvcnQgeyBTdWJqZWN0LCB0YWtlVW50aWwgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgRmlsZVVwbG9hZE1vZHVsZSwgRmlsZVVwbG9hZEV2ZW50IH0gZnJvbSAncHJpbWVuZy9maWxldXBsb2FkJztcclxuaW1wb3J0IHsgU3RlcHNNb2R1bGUgfSBmcm9tICdwcmltZW5nL3N0ZXBzJztcclxuaW1wb3J0IHsgTWVzc2FnZVNlcnZpY2UgfSBmcm9tICdwcmltZW5nL2FwaSc7XHJcbmltcG9ydCB7IFRvYXN0TW9kdWxlIH0gZnJvbSAncHJpbWVuZy90b2FzdCc7XHJcbmltcG9ydCB7IHJlYWQsIHV0aWxzLCBXb3JrQm9vayB9IGZyb20gJ3hsc3gnO1xyXG5cclxuZXhwb3J0IGludGVyZmFjZSBFeGNlbEltcG9ydENvbmZpZyB7XHJcbiAgdGVtcGxhdGVVcmw6IHN0cmluZztcclxuICBhcGlVcmw6IHN0cmluZztcclxuICBhcGlOYW1lOiBzdHJpbmc7XHJcbiAgbWFwcGluZ0ZpZWxkczogRm9ybWx5RmllbGRDb25maWdbXTtcclxuICBhY2NlcHRlZEZpbGVUeXBlcz86IHN0cmluZztcclxuICBtYXhGaWxlU2l6ZT86IG51bWJlcjtcclxuICBzdGVwcz86IHsgbGFiZWw6IHN0cmluZyB9W107XHJcbn1cclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnYXBwLWV4Y2VsLWltcG9ydCcsXHJcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcclxuICBwcm92aWRlcnM6W01lc3NhZ2VTZXJ2aWNlXSxcclxuICB0ZW1wbGF0ZTogYFxyXG4gICAgPHAtdG9hc3Q+PC9wLXRvYXN0PlxyXG4gICAgPGRpdiBjbGFzcz1cInAtNCBzcGFjZS15LTRcIj5cclxuICAgICAgPHAtc3RlcHMgW21vZGVsXT1cInN0ZXBzXCIgWyhhY3RpdmVJbmRleCldPVwiYWN0aXZlU3RlcFwiIGNsYXNzPVwibWItNFwiPjwvcC1zdGVwcz5cclxuXHJcbiAgICAgIDxmb3JtIFtmb3JtR3JvdXBdPVwiZm9ybVwiIChuZ1N1Ym1pdCk9XCJvblN1Ym1pdCgpXCI+XHJcbiAgICAgICAgPG5nLWNvbnRhaW5lciBbbmdTd2l0Y2hdPVwiYWN0aXZlU3RlcFwiPlxyXG4gICAgICAgICAgPCEtLSBTdGVwIDE6IFVwbG9hZCBGaWxlIC0tPlxyXG4gICAgICAgIDxkaXYgKm5nU3dpdGNoQ2FzZT1cIjBcIiBjbGFzcz1cInAtNFwiPlxyXG4gICAgICAgICAgPCEtLSBEb3dubG9hZCB0ZW1wbGF0ZSBsaW5rIC0tPlxyXG5cclxuXHJcbiAgICAgICAgICA8IS0tIEZpbGUgdXBsb2FkIC0tPlxyXG4gICAgICAgICAgPHAtZmlsZVVwbG9hZFxyXG4gICAgICAgICAgICBuYW1lPVwiZXhjZWxGaWxlXCJcclxuICAgICAgICAgICAgbW9kZT1cImJhc2ljXCJcclxuICAgICAgICAgICAgY2hvb3NlSWNvbj1cInBpIHBpLXVwbG9hZFwiXHJcbiAgICAgICAgICAgIGNob29zZUxhYmVsPVwie3sgJ2Nob29zZUZpbGUnIHwgdHJhbnNsYXRlIH19XCJcclxuICAgICAgICAgICAgKG9uU2VsZWN0KT1cIm9uRmlsZVVwbG9hZCgkZXZlbnQpXCJcclxuICAgICAgICAgICAgW2FjY2VwdF09XCJjb25maWcuYWNjZXB0ZWRGaWxlVHlwZXMgfHwgJy54bHMsLnhsc3gsLmNzdidcIlxyXG4gICAgICAgICAgICBbbWF4RmlsZVNpemVdPVwiY29uZmlnLm1heEZpbGVTaXplIHx8IDEwMDAwMDAwXCJcclxuICAgICAgICAgICAgW3Nob3dVcGxvYWRCdXR0b25dPVwiZmFsc2VcIlxyXG4gICAgICAgICAgICBbc2hvd0NhbmNlbEJ1dHRvbl09XCJmYWxzZVwiXHJcbiAgICAgICAgICA+XHJcbiAgICAgICAgICA8L3AtZmlsZVVwbG9hZD5cclxuXHJcbiAgICAgICAgICA8IS0tIFVwbG9hZCBzdGF0dXMgLS0+XHJcbiAgICAgICAgICA8cCAqbmdJZj1cInVwbG9hZGVkRmlsZU5hbWVcIiBjbGFzcz1cIm10LTIgdGV4dC1ncmVlbi02MDBcIj5cclxuICAgICAgICAgICAge3sgdXBsb2FkZWRGaWxlTmFtZSB9fVxyXG4gICAgICAgICAgPC9wPlxyXG4gICAgICAgICAgPHAgKm5nSWY9XCJ1cGxvYWRFcnJvclwiIGNsYXNzPVwibXQtMiB0ZXh0LXJlZC02MDBcIj5cclxuICAgICAgICAgICAge3sgdXBsb2FkRXJyb3IgfX1cclxuICAgICAgICAgIDwvcD5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8cD5cclxuICAgICAgICAgICAgPGFcclxuICAgICAgICAgICAgICBbaHJlZl09XCJlbnYuZ2V0RW52aXJvbm1lbnQoKS5hcGlzLmRlZmF1bHQudXJsK2NvbmZpZy50ZW1wbGF0ZVVybFwiXHJcbiAgICAgICAgICAgICAgZG93bmxvYWRcclxuICAgICAgICAgICAgICBjbGFzcz1cInRleHQtYmx1ZS02MDAgaG92ZXI6dW5kZXJsaW5lIGZsZXggaXRlbXMtY2VudGVyIGdhcC0xXCJcclxuICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgIDxpIGNsYXNzPVwicGkgcGktZG93bmxvYWRcIj48L2k+XHJcbiAgICAgICAgICAgICAge3sgJ2Rvd25sb2FkVGVtcGxhdGUnIHwgdHJhbnNsYXRlIH19XHJcbiAgICAgICAgICAgIDwvYT5cclxuICAgICAgICAgIDwvcD5cclxuXHJcblxyXG4gICAgICAgICAgPCEtLSBTdGVwIDI6IENvbHVtbiBNYXBwaW5nIC0tPlxyXG4gICAgICAgICAgPGRpdiAqbmdTd2l0Y2hDYXNlPVwiMVwiIGNsYXNzPVwicC00XCI+XHJcbiAgICAgICAgICAgIDxmb3JtbHktZm9ybSBbZm9ybV09XCJmb3JtXCIgW2ZpZWxkc109XCJtYXBwaW5nRmllbGRzXCIgW21vZGVsXT1cIm1vZGVsXCI+PC9mb3JtbHktZm9ybT5cclxuICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgIDwhLS0gU3RlcCAzOiBSZXZpZXcgLS0+XHJcbiAgICAgICAgICA8ZGl2ICpuZ1N3aXRjaENhc2U9XCIyXCIgY2xhc3M9XCJwLTRcIj5cclxuICAgICAgICAgICAgPHAgY2xhc3M9XCJ0ZXh0LWdyYXktNzAwIG1iLTRcIj5cclxuICAgICAgICAgICAgICB7eyAnaW1wb3J0UmV2aWV3TWVzc2FnZScgfCB0cmFuc2xhdGUgfX1cclxuICAgICAgICAgICAgPC9wPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYmctZ3JheS0xMDAgcC0zIHJvdW5kZWRcIj5cclxuICAgICAgICAgICAgICA8cD48c3Ryb25nPnt7ICdmaWxlTmFtZScgfCB0cmFuc2xhdGUgfX06PC9zdHJvbmc+IHt7IHVwbG9hZGVkRmlsZU5hbWUgfX08L3A+XHJcbiAgICAgICAgICAgICAgPHA+PHN0cm9uZz57eyAnc2VsZWN0ZWRNYXBwaW5ncycgfCB0cmFuc2xhdGUgfX06PC9zdHJvbmc+PC9wPlxyXG4gICAgICAgICAgICAgIDx1bCBjbGFzcz1cImxpc3QtZGlzYyBsaXN0LWluc2lkZSBtbC00XCI+XHJcbiAgICAgICAgICAgICAgICA8bGkgKm5nRm9yPVwibGV0IGZpZWxkIG9mIG1hcHBpbmdGaWVsZHNcIj5cclxuICAgICAgICAgICAgICAgICAge3sgZmllbGQucHJvcHM/LmxhYmVsIH19OiB7eyBnZXRNb2RlbFZhbHVlKGZpZWxkLCBtb2RlbCkgfX1cclxuICAgICAgICAgICAgICAgIDwvbGk+XHJcbiAgICAgICAgICAgICAgPC91bD5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuXHJcbiAgICAgICAgPCEtLSBGb290ZXIgQnV0dG9ucyAtLT5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleCBqdXN0aWZ5LWJldHdlZW4gbXQtNiBwdC00IGJvcmRlci10XCI+XHJcbiAgICAgICAgICA8ZGl2PlxyXG4gICAgICAgICAgICA8YnV0dG9uXHJcbiAgICAgICAgICAgICAgcEJ1dHRvblxyXG4gICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxyXG4gICAgICAgICAgICAgIFtsYWJlbF09XCInYmFjaycgfCB0cmFuc2xhdGVcIlxyXG4gICAgICAgICAgICAgIGljb249XCJwaSBwaS1hcnJvdy1sZWZ0XCJcclxuICAgICAgICAgICAgICAoY2xpY2spPVwicHJldlN0ZXAoKVwiXHJcbiAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cImFjdGl2ZVN0ZXAgPT09IDAgfHwgbG9hZGluZ1wiXHJcbiAgICAgICAgICAgICAgY2xhc3M9XCJwLWJ1dHRvbi10ZXh0XCJcclxuICAgICAgICAgICAgPjwvYnV0dG9uPlxyXG4gICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cImZsZXggZ2FwLTJcIj5cclxuICAgICAgICAgICAgPGJ1dHRvblxyXG4gICAgICAgICAgICAgIHBCdXR0b25cclxuICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcclxuICAgICAgICAgICAgICBbbGFiZWxdPVwiJ25leHQnIHwgdHJhbnNsYXRlXCJcclxuICAgICAgICAgICAgICBpY29uPVwicGkgcGktYXJyb3ctcmlnaHRcIlxyXG4gICAgICAgICAgICAgIGljb25Qb3M9XCJyaWdodFwiXHJcbiAgICAgICAgICAgICAgKGNsaWNrKT1cIm5leHRTdGVwKClcIlxyXG4gICAgICAgICAgICAgICpuZ0lmPVwiYWN0aXZlU3RlcCA8IDJcIlxyXG4gICAgICAgICAgICAgIFtkaXNhYmxlZF09XCIhY2FuUHJvY2VlZCgpIHx8IGxvYWRpbmdcIlxyXG4gICAgICAgICAgICA+PC9idXR0b24+XHJcblxyXG4gICAgICAgICAgICA8YnV0dG9uXHJcbiAgICAgICAgICAgICAgcEJ1dHRvblxyXG4gICAgICAgICAgICAgIHR5cGU9XCJzdWJtaXRcIlxyXG4gICAgICAgICAgICAgIFtsYWJlbF09XCJsb2FkaW5nID8gKCd1cGxvYWRpbmcnIHwgdHJhbnNsYXRlKSA6ICgnc2F2ZScgfCB0cmFuc2xhdGUpXCJcclxuICAgICAgICAgICAgICBpY29uPVwicGkgcGktY2hlY2tcIlxyXG4gICAgICAgICAgICAgICpuZ0lmPVwiYWN0aXZlU3RlcCA9PT0gMlwiXHJcbiAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cImxvYWRpbmdcIlxyXG4gICAgICAgICAgICAgIFtsb2FkaW5nXT1cImxvYWRpbmdcIlxyXG4gICAgICAgICAgICAgIGNsYXNzPVwicC1idXR0b24tcHJpbWFyeVwiXHJcbiAgICAgICAgICAgID48L2J1dHRvbj5cclxuXHJcbiAgICAgICAgICAgIDxidXR0b25cclxuICAgICAgICAgICAgICBwQnV0dG9uXHJcbiAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXHJcbiAgICAgICAgICAgICAgW2xhYmVsXT1cIidjYW5jZWwnIHwgdHJhbnNsYXRlXCJcclxuICAgICAgICAgICAgICBzZXZlcml0eT1cInNlY29uZGFyeVwiXHJcbiAgICAgICAgICAgICAgKGNsaWNrKT1cIm9uQ2FuY2VsKClcIlxyXG4gICAgICAgICAgICAgIFtkaXNhYmxlZF09XCJsb2FkaW5nXCJcclxuICAgICAgICAgICAgPjwvYnV0dG9uPlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvZm9ybT5cclxuICAgIDwvZGl2PlxyXG4gIGAsXHJcbiAgaW1wb3J0czogW1xyXG4gICAgQ29tbW9uTW9kdWxlLFxyXG4gICAgUmVhY3RpdmVGb3Jtc01vZHVsZSxcclxuICAgIEZvcm1zTW9kdWxlLFxyXG4gICAgRm9ybWx5Rm9ybSxcclxuICAgIFRyYW5zbGF0ZU1vZHVsZSxcclxuICAgIEJ1dHRvbk1vZHVsZSxcclxuICAgIEZpbGVVcGxvYWRNb2R1bGUsXHJcbiAgICBTdGVwc01vZHVsZSxcclxuICAgIFRvYXN0TW9kdWxlXHJcbiAgXSxcclxufSlcclxuZXhwb3J0IGNsYXNzIEV4Y2VsSW1wb3J0Q29tcG9uZW50IGltcGxlbWVudHMgT25EZXN0cm95IHtcclxuICBASW5wdXQoKSBjb25maWchOiBFeGNlbEltcG9ydENvbmZpZztcclxuICBAT3V0cHV0KCkgaW1wb3J0Q29tcGxldGUgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcclxuICBAT3V0cHV0KCkgaW1wb3J0RXJyb3IgPSBuZXcgRXZlbnRFbWl0dGVyPEVycm9yPigpO1xyXG5cclxuICBmb3JtOiBGb3JtR3JvdXA7XHJcbiAgbW9kZWw6IGFueSA9IHt9O1xyXG4gIGxvYWRpbmcgPSBmYWxzZTtcclxuICB1cGxvYWRlZEZpbGVOYW1lOiBzdHJpbmcgfCBudWxsID0gbnVsbDtcclxuICB1cGxvYWRFcnJvcjogc3RyaW5nIHwgbnVsbCA9IG51bGw7XHJcbiAgZXhjZWxIZWFkZXJzOiBzdHJpbmdbXSA9IFtdO1xyXG4gIHByaXZhdGUgZGVzdHJveSQgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xyXG4gIHByaXZhdGUgcmVzdFNlcnZpY2U6IFJlc3RTZXJ2aWNlID0gaW5qZWN0KFJlc3RTZXJ2aWNlKTtcclxuICBwcml2YXRlIG1lc3NhZ2VTZXJ2aWNlID0gaW5qZWN0KE1lc3NhZ2VTZXJ2aWNlKTtcclxuICBwcml2YXRlIHRyYW5zbGF0ZVNlcnZpY2UgPSBpbmplY3QoVHJhbnNsYXRlU2VydmljZSk7XHJcbiAgcHJpdmF0ZSBmYiA9IGluamVjdChGb3JtQnVpbGRlcik7XHJcbiAgcHVibGljIGVudiA9IGluamVjdChFbnZpcm9ubWVudFNlcnZpY2UpO1xyXG5cclxuICBzdGVwcyA9IFtcclxuICAgIHsgbGFiZWw6IHRoaXMudHJhbnNsYXRlU2VydmljZSAuaW5zdGFudCgndXBsb2FkRmlsZScpIH0sXHJcbiAgICB7IGxhYmVsOiB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UgLmluc3RhbnQoJ2NvbHVtbk1hcHBpbmcnKSB9LFxyXG4gICAgeyBsYWJlbDogdGhpcy50cmFuc2xhdGVTZXJ2aWNlIC5pbnN0YW50KCdyZXZpZXcnKSB9LFxyXG4gIF07XHJcblxyXG4gIGFjdGl2ZVN0ZXAgPSAwO1xyXG4gIG1hcHBpbmdGaWVsZHM6IEZvcm1seUZpZWxkQ29uZmlnW10gPSBbXTtcclxuXHJcbiAgY29uc3RydWN0b3IocHVibGljIHJlZjogRHluYW1pY0RpYWxvZ1JlZiwgcHVibGljIGRpYWxvZ0NvbmZpZzogRHluYW1pY0RpYWxvZ0NvbmZpZykge1xyXG4gICAgdGhpcy5mb3JtID0gdGhpcy5mYi5ncm91cCh7fSk7XHJcblxyXG4gICAgLy8gSW5pdGlhbGl6ZSBmcm9tIGRpYWxvZyBjb25maWcgaWYgcHJvdmlkZWRcclxuICAgIGlmICh0aGlzLmRpYWxvZ0NvbmZpZz8uZGF0YT8uY29uZmlnKSB7XHJcbiAgICAgIHRoaXMuY29uZmlnID0gdGhpcy5kaWFsb2dDb25maWcuZGF0YS5jb25maWc7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBuZ09uSW5pdCgpIHtcclxuICAgIGlmICghdGhpcy5jb25maWcpIHtcclxuICAgICAgdGhyb3cgbmV3IEVycm9yKCdFeGNlbEltcG9ydENvbmZpZyBpcyByZXF1aXJlZCcpO1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMubWFwcGluZ0ZpZWxkcyA9IHRoaXMuY29uZmlnLm1hcHBpbmdGaWVsZHMubWFwKGZpZWxkID0+ICh7XHJcbiAgICAgIC4uLmZpZWxkLFxyXG4gICAgICBwcm9wczoge1xyXG4gICAgICAgIC4uLmZpZWxkLnByb3BzLFxyXG4gICAgICAgIG9wdGlvbnM6IFtdXHJcbiAgICAgIH1cclxuICAgIH0pKTtcclxuXHJcbiAgICB0aGlzLnN0ZXBzID0gdGhpcy5jb25maWcuc3RlcHMgfHwgdGhpcy5zdGVwcztcclxuICB9XHJcblxyXG4gIG5leHRTdGVwKCkge1xyXG4gICAgaWYgKHRoaXMuYWN0aXZlU3RlcCA8IDIpIHRoaXMuYWN0aXZlU3RlcCsrO1xyXG4gIH1cclxuXHJcbiAgcHJldlN0ZXAoKSB7XHJcbiAgICBpZiAodGhpcy5hY3RpdmVTdGVwID4gMCkgdGhpcy5hY3RpdmVTdGVwLS07XHJcbiAgfVxyXG5cclxuICBjYW5Qcm9jZWVkKCk6IGJvb2xlYW4ge1xyXG4gICAgc3dpdGNoICh0aGlzLmFjdGl2ZVN0ZXApIHtcclxuICAgICAgY2FzZSAwOlxyXG4gICAgICAgIHJldHVybiAhIXRoaXMudXBsb2FkZWRGaWxlTmFtZTtcclxuICAgICAgY2FzZSAxOlxyXG4gICAgICAgIHJldHVybiB0aGlzLmZvcm0udmFsaWQ7XHJcbiAgICAgIGNhc2UgMjpcclxuICAgICAgICByZXR1cm4gdHJ1ZTtcclxuICAgICAgZGVmYXVsdDpcclxuICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICB9XHJcbiAgfVxyXG4gIGdldE1vZGVsVmFsdWUoZmllbGQ6IEZvcm1seUZpZWxkQ29uZmlnLCBtb2RlbDogYW55KTogYW55IHtcclxuICBpZiAoIWZpZWxkLmtleSkgcmV0dXJuIG51bGw7XHJcblxyXG4gIGlmIChBcnJheS5pc0FycmF5KGZpZWxkLmtleSkpIHtcclxuICAgIC8vIFdhbGsgdGhyb3VnaCBuZXN0ZWQga2V5cyBsaWtlIFsnYWRkcmVzcycsICdzdHJlZXQnXVxyXG4gICAgcmV0dXJuIGZpZWxkLmtleS5yZWR1Y2UoKGFjYywgaykgPT4gKGFjYyA/IGFjY1trXSA6IHVuZGVmaW5lZCksIG1vZGVsKTtcclxuICB9XHJcblxyXG4gIHJldHVybiBtb2RlbFtmaWVsZC5rZXldO1xyXG59XHJcblxyXG4gIC8vIEFkZCB0aGlzIHByb3BlcnR5IHRvIHN0b3JlIHRoZSBmaWxlIGNvbnRlbnRcclxucHJpdmF0ZSBmaWxlQ29udGVudDogc3RyaW5nIHwgQXJyYXlCdWZmZXIgfCBudWxsID0gbnVsbDtcclxuXHJcbi8vIFVwZGF0ZSB0aGUgb25GaWxlVXBsb2FkIG1ldGhvZCB0byBzdG9yZSB0aGUgZmlsZSBjb250ZW50XHJcbm9uRmlsZVVwbG9hZChldmVudDogYW55KSB7XHJcbiAgdGhpcy51cGxvYWRFcnJvciA9IG51bGw7XHJcbiAgY29uc3QgZmlsZTogRmlsZSA9IGV2ZW50LmZpbGVzWzBdO1xyXG5cclxuICBpZiAoIWZpbGUpIHtcclxuICAgIHRoaXMudXBsb2FkRXJyb3IgPSAnbm9GaWxlU2VsZWN0ZWQnO1xyXG4gICAgcmV0dXJuO1xyXG4gIH1cclxuXHJcbiAgLy8gVmFsaWRhdGUgZmlsZSB0eXBlXHJcbiAgY29uc3QgdmFsaWRFeHRlbnNpb25zID0gWycueGxzeCcsICcueGxzJywgJy5jc3YnXTtcclxuICBjb25zdCBmaWxlRXh0ZW5zaW9uID0gZmlsZS5uYW1lLnRvTG93ZXJDYXNlKCkuc3Vic3RyaW5nKGZpbGUubmFtZS5sYXN0SW5kZXhPZignLicpKTtcclxuXHJcbiAgaWYgKCF2YWxpZEV4dGVuc2lvbnMuaW5jbHVkZXMoZmlsZUV4dGVuc2lvbikpIHtcclxuICAgIHRoaXMudXBsb2FkRXJyb3IgPSAnaW52YWxpZEZpbGVUeXBlJztcclxuICAgIHRoaXMuY2xlYXJGaWxlVXBsb2FkKGV2ZW50KTtcclxuICAgIHJldHVybjtcclxuICB9XHJcblxyXG4gIHRoaXMudXBsb2FkZWRGaWxlTmFtZSA9IGZpbGUubmFtZTtcclxuXHJcbiAgY29uc3QgcmVhZGVyID0gbmV3IEZpbGVSZWFkZXIoKTtcclxuXHJcbiAgcmVhZGVyLm9ubG9hZCA9IChlOiBQcm9ncmVzc0V2ZW50PEZpbGVSZWFkZXI+KSA9PiB7XHJcbiAgICB0cnkge1xyXG4gICAgICBjb25zdCBhcnJheUJ1ZmZlciA9IGUudGFyZ2V0Py5yZXN1bHQgYXMgQXJyYXlCdWZmZXI7XHJcbiAgICAgIHRoaXMuZmlsZUNvbnRlbnQgPSBhcnJheUJ1ZmZlcjsgLy8gU3RvcmUgdGhlIGZpbGUgY29udGVudFxyXG4gICAgICBjb25zdCBkYXRhID0gbmV3IFVpbnQ4QXJyYXkoYXJyYXlCdWZmZXIpO1xyXG5cclxuICAgICAgY29uc3Qgd29ya2Jvb2s6IFdvcmtCb29rID0gcmVhZChkYXRhLCB7IHR5cGU6ICdhcnJheScgfSk7XHJcblxyXG4gICAgICBpZiAod29ya2Jvb2suU2hlZXROYW1lcy5sZW5ndGggPT09IDApIHtcclxuICAgICAgICB0aGlzLnVwbG9hZEVycm9yID0gJ25vU2hlZXRzRm91bmQnO1xyXG4gICAgICAgIHRoaXMuY2xlYXJGaWxlVXBsb2FkKGV2ZW50KTtcclxuICAgICAgICByZXR1cm47XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIGNvbnN0IHNoZWV0TmFtZSA9IHdvcmtib29rLlNoZWV0TmFtZXNbMF07XHJcbiAgICAgIGNvbnN0IHdvcmtzaGVldCA9IHdvcmtib29rLlNoZWV0c1tzaGVldE5hbWVdO1xyXG5cclxuICAgICAgY29uc3Qgcm93czogYW55W11bXSA9IHV0aWxzLnNoZWV0X3RvX2pzb24od29ya3NoZWV0LCB7IGhlYWRlcjogMSB9KTtcclxuXHJcbiAgICAgIGlmIChyb3dzLmxlbmd0aCA9PT0gMCkge1xyXG4gICAgICAgIHRoaXMudXBsb2FkRXJyb3IgPSAnbm9EYXRhRm91bmQnO1xyXG4gICAgICAgIHRoaXMuY2xlYXJGaWxlVXBsb2FkKGV2ZW50KTtcclxuICAgICAgICByZXR1cm47XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIHRoaXMuZXhjZWxIZWFkZXJzID0gcm93c1swXSBhcyBzdHJpbmdbXTtcclxuXHJcbiAgICAgIC8vIFVwZGF0ZSBtYXBwaW5nIGZpZWxkcyB3aXRoIGhlYWRlciBvcHRpb25zXHJcbiAgICAgIHRoaXMubWFwcGluZ0ZpZWxkcy5mb3JFYWNoKGZpZWxkID0+IHtcclxuICAgICAgICBpZiAoZmllbGQucHJvcHMpIHtcclxuICAgICAgICAgIGZpZWxkLnByb3BzLm9wdGlvbnMgPSB0aGlzLmV4Y2VsSGVhZGVycy5tYXAoaCA9PiAoe1xyXG4gICAgICAgICAgICB2YWx1ZTogaCxcclxuICAgICAgICAgICAgbGFiZWw6IGgsXHJcbiAgICAgICAgICB9KSk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuXHJcbiAgICAgIC8vIEluaXRpYWxpemUgZm9ybSB3aXRoIGRlZmF1bHQgdmFsdWVzIGlmIG5vdCBzZXRcclxuICAgICAgdGhpcy5pbml0aWFsaXplRm9ybSgpO1xyXG5cclxuICAgIH0gY2F0Y2ggKGVycm9yKSB7XHJcbiAgICAgIGNvbnNvbGUuZXJyb3IoJ0Vycm9yIHByb2Nlc3NpbmcgRXhjZWwgZmlsZTonLCBlcnJvcik7XHJcbiAgICAgIHRoaXMudXBsb2FkRXJyb3IgPSAnZmlsZVByb2Nlc3NpbmdFcnJvcic7XHJcbiAgICAgIHRoaXMuY2xlYXJGaWxlVXBsb2FkKGV2ZW50KTtcclxuICAgIH1cclxuICB9O1xyXG5cclxuICByZWFkZXIub25lcnJvciA9IChlcnJvcikgPT4ge1xyXG4gICAgY29uc29sZS5lcnJvcignRmlsZSByZWFkaW5nIGVycm9yOicsIGVycm9yKTtcclxuICAgIHRoaXMudXBsb2FkRXJyb3IgPSAnZmlsZVJlYWRFcnJvcic7XHJcbiAgICB0aGlzLmNsZWFyRmlsZVVwbG9hZChldmVudCk7XHJcbiAgfTtcclxuXHJcbiAgcmVhZGVyLnJlYWRBc0FycmF5QnVmZmVyKGZpbGUpO1xyXG59XHJcblxyXG4vLyBBZGQgdGhpcyBtZXRob2QgdG8gY29udmVydCBBcnJheUJ1ZmZlciB0byBiYXNlNjRcclxucHJpdmF0ZSBhcnJheUJ1ZmZlclRvQmFzZTY0KGJ1ZmZlcjogQXJyYXlCdWZmZXIpOiBzdHJpbmcge1xyXG4gIGNvbnN0IGJ5dGVzID0gbmV3IFVpbnQ4QXJyYXkoYnVmZmVyKTtcclxuICBsZXQgYmluYXJ5ID0gJyc7XHJcbiAgY29uc3QgbGVuID0gYnl0ZXMuYnl0ZUxlbmd0aDtcclxuXHJcbiAgZm9yIChsZXQgaSA9IDA7IGkgPCBsZW47IGkrKykge1xyXG4gICAgYmluYXJ5ICs9IFN0cmluZy5mcm9tQ2hhckNvZGUoYnl0ZXNbaV0pO1xyXG4gIH1cclxuXHJcbiAgcmV0dXJuIHdpbmRvdy5idG9hKGJpbmFyeSk7XHJcbn1cclxuXHJcbi8vIEFkZCB0aGlzIG1ldGhvZCB0byBnZXQgZmlsZSBleHRlbnNpb25cclxucHJpdmF0ZSBnZXRGaWxlRXh0ZW5zaW9uKGZpbGVuYW1lOiBzdHJpbmcpOiBzdHJpbmcge1xyXG4gIGNvbnN0IGluZGV4ID0gZmlsZW5hbWUubGFzdEluZGV4T2YoJy4nKTtcclxuICByZXR1cm4gaW5kZXggIT09IC0xID8gZmlsZW5hbWUuc2xpY2UoaW5kZXgpIDogJyc7XHJcbn1cclxuXHJcbi8vIFVwZGF0ZWQgb25TdWJtaXQgbWV0aG9kXHJcbm9uU3VibWl0KCkge1xyXG4gIGlmICh0aGlzLmZvcm0uaW52YWxpZCB8fCAhdGhpcy51cGxvYWRlZEZpbGVOYW1lIHx8ICF0aGlzLmZpbGVDb250ZW50KSB7XHJcbiAgICB0aGlzLmZvcm0ubWFya0FsbEFzVG91Y2hlZCgpO1xyXG5cclxuICAgIGlmICghdGhpcy5maWxlQ29udGVudCkge1xyXG4gICAgICB0aGlzLm1lc3NhZ2VTZXJ2aWNlLmFkZCh7XHJcbiAgICAgICAgc2V2ZXJpdHk6ICdlcnJvcicsXHJcbiAgICAgICAgc3VtbWFyeTogJ0Vycm9yJyxcclxuICAgICAgICBkZXRhaWw6ICdGaWxlIGNvbnRlbnQgaXMgbWlzc2luZy4gUGxlYXNlIHVwbG9hZCB0aGUgZmlsZSBhZ2Fpbi4nXHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybjtcclxuICB9XHJcblxyXG4gIHRoaXMubG9hZGluZyA9IHRydWU7XHJcblxyXG4gIC8vIENvbnZlcnQgZmlsZSBjb250ZW50IHRvIGJhc2U2NFxyXG4gIGxldCBmaWxlQmFzZTY0OiBzdHJpbmc7XHJcblxyXG4gIHRyeSB7XHJcbiAgICBpZiAodGhpcy5maWxlQ29udGVudCBpbnN0YW5jZW9mIEFycmF5QnVmZmVyKSB7XHJcbiAgICAgIGZpbGVCYXNlNjQgPSB0aGlzLmFycmF5QnVmZmVyVG9CYXNlNjQodGhpcy5maWxlQ29udGVudCk7XHJcbiAgICB9IGVsc2UgaWYgKHR5cGVvZiB0aGlzLmZpbGVDb250ZW50ID09PSAnc3RyaW5nJykge1xyXG4gICAgICAvLyBJZiBpdCdzIGFscmVhZHkgYSBzdHJpbmcgKGJhc2U2NCksIHVzZSBpdCBkaXJlY3RseVxyXG4gICAgICBmaWxlQmFzZTY0ID0gdGhpcy5maWxlQ29udGVudDtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRocm93IG5ldyBFcnJvcignVW5zdXBwb3J0ZWQgZmlsZSBjb250ZW50IHR5cGUnKTtcclxuICAgIH1cclxuICB9IGNhdGNoIChlcnJvcikge1xyXG4gICAgdGhpcy5sb2FkaW5nID0gZmFsc2U7XHJcbiAgICBjb25zb2xlLmVycm9yKCdFcnJvciBjb252ZXJ0aW5nIGZpbGUgdG8gYmFzZTY0OicsIGVycm9yKTtcclxuICAgIHRoaXMubWVzc2FnZVNlcnZpY2UuYWRkKHtcclxuICAgICAgc2V2ZXJpdHk6ICdlcnJvcicsXHJcbiAgICAgIHN1bW1hcnk6ICdFcnJvcicsXHJcbiAgICAgIGRldGFpbDogJ0ZhaWxlZCB0byBwcm9jZXNzIGZpbGUgY29udGVudCdcclxuICAgIH0pO1xyXG4gICAgcmV0dXJuO1xyXG4gIH1cclxuXHJcbiAgY29uc3QgcmVxdWVzdEJvZHkgPSB7XHJcbiAgICBmaWxlTmFtZTogdGhpcy51cGxvYWRlZEZpbGVOYW1lLFxyXG4gICAgZmlsZUV4dGVuc2lvbjogdGhpcy5nZXRGaWxlRXh0ZW5zaW9uKHRoaXMudXBsb2FkZWRGaWxlTmFtZSksXHJcbiAgICBmaWxlQ29udGVudDogZmlsZUJhc2U2NCxcclxuICAgIG1hcHBpbmdzOiB0aGlzLmZvcm0udmFsdWUsXHJcbiAgICBoZWFkZXJzOiB0aGlzLmV4Y2VsSGVhZGVycyxcclxuICAgIGZpbGVTaXplOiB0aGlzLmZpbGVDb250ZW50IGluc3RhbmNlb2YgQXJyYXlCdWZmZXIgPyB0aGlzLmZpbGVDb250ZW50LmJ5dGVMZW5ndGggOiAwXHJcbiAgfTtcclxuXHJcbiAgdGhpcy5yZXN0U2VydmljZVxyXG4gICAgLnJlcXVlc3Q8YW55LCBhbnk+KFxyXG4gICAgICB7XHJcbiAgICAgICAgbWV0aG9kOiAnUE9TVCcsXHJcbiAgICAgICAgdXJsOiB0aGlzLmNvbmZpZy5hcGlVcmwsXHJcbiAgICAgICAgYm9keTogcmVxdWVzdEJvZHksXHJcbiAgICAgICAgaGVhZGVyczoge1xyXG4gICAgICAgICAgJ0NvbnRlbnQtVHlwZSc6ICdhcHBsaWNhdGlvbi9qc29uJ1xyXG4gICAgICAgIH1cclxuICAgICAgfSxcclxuICAgICAgeyBhcGlOYW1lOiB0aGlzLmNvbmZpZy5hcGlOYW1lIH1cclxuICAgIClcclxuICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSlcclxuICAgIC5zdWJzY3JpYmUoe1xyXG4gICAgICBuZXh0OiAocmVzcG9uc2UpID0+IHtcclxuICAgICAgICB0aGlzLmxvYWRpbmcgPSBmYWxzZTtcclxuICAgICAgICB0aGlzLm1lc3NhZ2VTZXJ2aWNlLmFkZCh7XHJcbiAgICAgICAgICBzZXZlcml0eTogJ3N1Y2Nlc3MnLFxyXG4gICAgICAgICAgc3VtbWFyeTogJ1N1Y2Nlc3MnLFxyXG4gICAgICAgICAgZGV0YWlsOiAnRmlsZSBpbXBvcnRlZCBzdWNjZXNzZnVsbHknXHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgdGhpcy5pbXBvcnRDb21wbGV0ZS5lbWl0KHJlc3BvbnNlKTtcclxuICAgICAgICB0aGlzLnJlZi5jbG9zZShyZXNwb25zZSk7XHJcbiAgICAgIH0sXHJcbiAgICAgIGVycm9yOiAoZXJyKSA9PiB7XHJcbiAgICAgICAgdGhpcy5sb2FkaW5nID0gZmFsc2U7XHJcbiAgICAgICAgY29uc29sZS5lcnJvcignSW1wb3J0IGVycm9yOicsIGVycik7XHJcbiAgICAgICAgdGhpcy5tZXNzYWdlU2VydmljZS5hZGQoe1xyXG4gICAgICAgICAgc2V2ZXJpdHk6ICdlcnJvcicsXHJcbiAgICAgICAgICBzdW1tYXJ5OiAnRXJyb3InLFxyXG4gICAgICAgICAgZGV0YWlsOiAnRmFpbGVkIHRvIGltcG9ydCBmaWxlJ1xyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIHRoaXMuaW1wb3J0RXJyb3IuZW1pdChlcnIpO1xyXG4gICAgICB9LFxyXG4gICAgfSk7XHJcbn1cclxuXHJcbi8vIFVwZGF0ZSBjbGVhckZpbGVVcGxvYWQgdG8gYWxzbyBjbGVhciBmaWxlIGNvbnRlbnRcclxucHJpdmF0ZSBjbGVhckZpbGVVcGxvYWQoZXZlbnQ6IGFueSkge1xyXG4gIGlmIChldmVudC5vcHRpb25zICYmIHR5cGVvZiBldmVudC5vcHRpb25zLmNsZWFyID09PSAnZnVuY3Rpb24nKSB7XHJcbiAgICBldmVudC5vcHRpb25zLmNsZWFyKCk7XHJcbiAgfVxyXG4gIHRoaXMudXBsb2FkZWRGaWxlTmFtZSA9IG51bGw7XHJcbiAgdGhpcy5maWxlQ29udGVudCA9IG51bGw7XHJcbn1cclxuXHJcbiAgcHJpdmF0ZSBpbml0aWFsaXplRm9ybSgpIHtcclxuICAgIGNvbnN0IGZvcm1Db25maWc6IGFueSA9IHt9O1xyXG5cclxuICAgIHRoaXMubWFwcGluZ0ZpZWxkcy5mb3JFYWNoKGZpZWxkID0+IHtcclxuICAgICAgaWYgKGZpZWxkLmtleSkge1xyXG4gICAgICAgIC8vIFNldCBkZWZhdWx0IHZhbHVlIHRvIGZpcnN0IGhlYWRlciBpZiBhdmFpbGFibGVcclxuICAgICAgICBmb3JtQ29uZmlnW2ZpZWxkLmtleSBhcyBzdHJpbmddID0gW3RoaXMuZXhjZWxIZWFkZXJzWzBdIHx8ICcnLCBWYWxpZGF0b3JzLnJlcXVpcmVkXTtcclxuXHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG5cclxuICAgIHRoaXMuZm9ybSA9IHRoaXMuZmIuZ3JvdXAoZm9ybUNvbmZpZyk7XHJcbiAgfVxyXG5cclxuXHJcblxyXG5cclxuXHJcbiAgb25DYW5jZWwoKSB7XHJcbiAgICBpZiAoIXRoaXMubG9hZGluZykge1xyXG4gICAgICB0aGlzLnJlZi5jbG9zZShmYWxzZSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBuZ09uRGVzdHJveSgpIHtcclxuICAgIHRoaXMuZGVzdHJveSQubmV4dCgpO1xyXG4gICAgdGhpcy5kZXN0cm95JC5jb21wbGV0ZSgpO1xyXG4gIH1cclxufVxyXG4iXX0=","/**\n * Generated bundle index. Do not edit.\n */\nexport * from './index';\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWxpdGUuZnJhbWV3b3JrLW5nLnVpLmNvcmUtZXhjZWwtaW1wb3J0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGlicy9uZy51aS5jb3JlL2V4Y2VsLWltcG9ydC9zcmMvZWxpdGUuZnJhbWV3b3JrLW5nLnVpLmNvcmUtZXhjZWwtaW1wb3J0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsY0FBYyxTQUFTLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEdlbmVyYXRlZCBidW5kbGUgaW5kZXguIERvIG5vdCBlZGl0LlxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vaW5kZXgnO1xuIl19"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"elite.framework-ng.ui.core-excel-import.mjs","sources":["../tmp-esm2022/excel-import/lib/excel-import-module.js","../tmp-esm2022/excel-import/lib/excel-import.js","../tmp-esm2022/excel-import/elite.framework-ng.ui.core-excel-import.js"],"sourcesContent":["import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport * as i0 from \"@angular/core\";\nexport class ExcelImportModule {\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: ExcelImportModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });\n static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"14.0.0\", version: \"20.1.8\", ngImport: i0, type: ExcelImportModule, imports: [CommonModule] });\n static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: ExcelImportModule, imports: [CommonModule] });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: ExcelImportModule, decorators: [{\n type: NgModule,\n args: [{\n imports: [CommonModule],\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXhjZWwtaW1wb3J0LW1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvbmcudWkuY29yZS9leGNlbC1pbXBvcnQvc3JjL2xpYi9leGNlbC1pbXBvcnQtbW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDOztBQUsvQyxNQUFNLE9BQU8saUJBQWlCO3VHQUFqQixpQkFBaUI7d0dBQWpCLGlCQUFpQixZQUZsQixZQUFZO3dHQUVYLGlCQUFpQixZQUZsQixZQUFZOzsyRkFFWCxpQkFBaUI7a0JBSDdCLFFBQVE7bUJBQUM7b0JBQ1IsT0FBTyxFQUFFLENBQUMsWUFBWSxDQUFDO2lCQUN4QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuXG5ATmdNb2R1bGUoe1xuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlXSxcbn0pXG5leHBvcnQgY2xhc3MgRXhjZWxJbXBvcnRNb2R1bGUge31cbiJdfQ==","import { CommonModule } from '@angular/common';\nimport { Component, inject, Input, Output, EventEmitter } from '@angular/core';\nimport { FormsModule, ReactiveFormsModule, FormBuilder, Validators } from '@angular/forms';\nimport { EnvironmentService, LocalizationService, RestService } from '@elite.framework/ng.core/services';\nimport { FormlyForm } from '@ngx-formly/core';\nimport { TranslatePipe } from '@elite.framework/ng.core/pipes';\nimport { ButtonModule } from 'primeng/button';\nimport { DynamicDialogConfig, DynamicDialogRef } from 'primeng/dynamicdialog';\nimport { Subject, takeUntil } from 'rxjs';\nimport { FileUploadModule } from 'primeng/fileupload';\nimport { StepsModule } from 'primeng/steps';\nimport { MessageService } from 'primeng/api';\nimport { ToastModule } from 'primeng/toast';\nimport { read, utils } from 'xlsx';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"primeng/dynamicdialog\";\nimport * as i2 from \"@angular/common\";\nimport * as i3 from \"@angular/forms\";\nimport * as i4 from \"primeng/button\";\nimport * as i5 from \"primeng/fileupload\";\nimport * as i6 from \"primeng/steps\";\nimport * as i7 from \"primeng/toast\";\nexport class ExcelImportComponent {\n ref;\n dialogConfig;\n config;\n importComplete = new EventEmitter();\n importError = new EventEmitter();\n form;\n model = {};\n loading = false;\n uploadedFileName = null;\n uploadError = null;\n excelHeaders = [];\n destroy$ = new Subject();\n restService = inject(RestService);\n messageService = inject(MessageService);\n translateService = inject(LocalizationService);\n fb = inject(FormBuilder);\n env = inject(EnvironmentService);\n steps = [\n { label: this.translateService.instant('uploadFile') },\n { label: this.translateService.instant('columnMapping') },\n { label: this.translateService.instant('review') },\n ];\n activeStep = 0;\n mappingFields = [];\n constructor(ref, dialogConfig) {\n this.ref = ref;\n this.dialogConfig = dialogConfig;\n this.form = this.fb.group({});\n // Initialize from dialog config if provided\n if (this.dialogConfig?.data?.config) {\n this.config = this.dialogConfig.data.config;\n }\n }\n ngOnInit() {\n if (!this.config) {\n throw new Error('ExcelImportConfig is required');\n }\n this.mappingFields = this.config.mappingFields.map(field => ({\n ...field,\n props: {\n ...field.props,\n options: []\n }\n }));\n this.steps = this.config.steps || this.steps;\n }\n nextStep() {\n if (this.activeStep < 2)\n this.activeStep++;\n }\n prevStep() {\n if (this.activeStep > 0)\n this.activeStep--;\n }\n canProceed() {\n switch (this.activeStep) {\n case 0:\n return !!this.uploadedFileName;\n case 1:\n return this.form.valid;\n case 2:\n return true;\n default:\n return false;\n }\n }\n getModelValue(field, model) {\n if (!field.key)\n return null;\n if (Array.isArray(field.key)) {\n // Walk through nested keys like ['address', 'street']\n return field.key.reduce((acc, k) => (acc ? acc[k] : undefined), model);\n }\n return model[field.key];\n }\n // Add this property to store the file content\n fileContent = null;\n // Update the onFileUpload method to store the file content\n onFileUpload(event) {\n this.uploadError = null;\n const file = event.files[0];\n if (!file) {\n this.uploadError = 'noFileSelected';\n return;\n }\n // Validate file type\n const validExtensions = ['.xlsx', '.xls', '.csv'];\n const fileExtension = file.name.toLowerCase().substring(file.name.lastIndexOf('.'));\n if (!validExtensions.includes(fileExtension)) {\n this.uploadError = 'invalidFileType';\n this.clearFileUpload(event);\n return;\n }\n this.uploadedFileName = file.name;\n const reader = new FileReader();\n reader.onload = (e) => {\n try {\n const arrayBuffer = e.target?.result;\n this.fileContent = arrayBuffer; // Store the file content\n const data = new Uint8Array(arrayBuffer);\n const workbook = read(data, { type: 'array' });\n if (workbook.SheetNames.length === 0) {\n this.uploadError = 'noSheetsFound';\n this.clearFileUpload(event);\n return;\n }\n const sheetName = workbook.SheetNames[0];\n const worksheet = workbook.Sheets[sheetName];\n const rows = utils.sheet_to_json(worksheet, { header: 1 });\n if (rows.length === 0) {\n this.uploadError = 'noDataFound';\n this.clearFileUpload(event);\n return;\n }\n this.excelHeaders = rows[0];\n // Update mapping fields with header options\n this.mappingFields.forEach(field => {\n if (field.props) {\n field.props.options = this.excelHeaders.map(h => ({\n value: h,\n label: h,\n }));\n }\n });\n // Initialize form with default values if not set\n this.initializeForm();\n }\n catch (error) {\n console.error('Error processing Excel file:', error);\n this.uploadError = 'fileProcessingError';\n this.clearFileUpload(event);\n }\n };\n reader.onerror = (error) => {\n console.error('File reading error:', error);\n this.uploadError = 'fileReadError';\n this.clearFileUpload(event);\n };\n reader.readAsArrayBuffer(file);\n }\n // Add this method to convert ArrayBuffer to base64\n arrayBufferToBase64(buffer) {\n const bytes = new Uint8Array(buffer);\n let binary = '';\n const len = bytes.byteLength;\n for (let i = 0; i < len; i++) {\n binary += String.fromCharCode(bytes[i]);\n }\n return window.btoa(binary);\n }\n // Add this method to get file extension\n getFileExtension(filename) {\n const index = filename.lastIndexOf('.');\n return index !== -1 ? filename.slice(index) : '';\n }\n // Updated onSubmit method\n onSubmit() {\n if (this.form.invalid || !this.uploadedFileName || !this.fileContent) {\n this.form.markAllAsTouched();\n if (!this.fileContent) {\n this.messageService.add({\n severity: 'error',\n summary: 'Error',\n detail: 'File content is missing. Please upload the file again.'\n });\n }\n return;\n }\n this.loading = true;\n // Convert file content to base64\n let fileBase64;\n try {\n if (this.fileContent instanceof ArrayBuffer) {\n fileBase64 = this.arrayBufferToBase64(this.fileContent);\n }\n else if (typeof this.fileContent === 'string') {\n // If it's already a string (base64), use it directly\n fileBase64 = this.fileContent;\n }\n else {\n throw new Error('Unsupported file content type');\n }\n }\n catch (error) {\n this.loading = false;\n console.error('Error converting file to base64:', error);\n this.messageService.add({\n severity: 'error',\n summary: 'Error',\n detail: 'Failed to process file content'\n });\n return;\n }\n const requestBody = {\n fileName: this.uploadedFileName,\n fileExtension: this.getFileExtension(this.uploadedFileName),\n fileContent: fileBase64,\n mappings: this.form.value,\n headers: this.excelHeaders,\n fileSize: this.fileContent instanceof ArrayBuffer ? this.fileContent.byteLength : 0\n };\n this.restService\n .request({\n method: 'POST',\n url: this.config.apiUrl,\n body: requestBody,\n headers: {\n 'Content-Type': 'application/json'\n }\n }, { apiName: this.config.apiName })\n .pipe(takeUntil(this.destroy$))\n .subscribe({\n next: (response) => {\n this.loading = false;\n this.messageService.add({\n severity: 'success',\n summary: 'Success',\n detail: 'File imported successfully'\n });\n this.importComplete.emit(response);\n this.ref.close(response);\n },\n error: (err) => {\n this.loading = false;\n console.error('Import error:', err);\n this.messageService.add({\n severity: 'error',\n summary: 'Error',\n detail: 'Failed to import file'\n });\n this.importError.emit(err);\n },\n });\n }\n // Update clearFileUpload to also clear file content\n clearFileUpload(event) {\n if (event.options && typeof event.options.clear === 'function') {\n event.options.clear();\n }\n this.uploadedFileName = null;\n this.fileContent = null;\n }\n initializeForm() {\n const formConfig = {};\n this.mappingFields.forEach(field => {\n if (field.key) {\n // Set default value to first header if available\n formConfig[field.key] = [this.excelHeaders[0] || '', Validators.required];\n }\n });\n this.form = this.fb.group(formConfig);\n }\n onCancel() {\n if (!this.loading) {\n this.ref.close(false);\n }\n }\n ngOnDestroy() {\n this.destroy$.next();\n this.destroy$.complete();\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: ExcelImportComponent, deps: [{ token: i1.DynamicDialogRef }, { token: i1.DynamicDialogConfig }], target: i0.ɵɵFactoryTarget.Component });\n static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"20.1.8\", type: ExcelImportComponent, isStandalone: true, selector: \"app-excel-import\", inputs: { config: \"config\" }, outputs: { importComplete: \"importComplete\", importError: \"importError\" }, providers: [MessageService], ngImport: i0, template: `\r\n <p-toast></p-toast>\r\n <div class=\"p-4 space-y-4\">\r\n <p-steps [model]=\"steps\" [(activeIndex)]=\"activeStep\" class=\"mb-4\"></p-steps>\r\n\r\n <form [formGroup]=\"form\" (ngSubmit)=\"onSubmit()\">\r\n <ng-container [ngSwitch]=\"activeStep\">\r\n <!-- Step 1: Upload File -->\r\n <div *ngSwitchCase=\"0\" class=\"p-4\">\r\n <!-- Download template link -->\r\n\r\n\r\n <!-- File upload -->\r\n <p-fileUpload\r\n name=\"excelFile\"\r\n mode=\"basic\"\r\n chooseIcon=\"pi pi-upload\"\r\n chooseLabel=\"{{ 'chooseFile' | translate }}\"\r\n (onSelect)=\"onFileUpload($event)\"\r\n [accept]=\"config.acceptedFileTypes || '.xls,.xlsx,.csv'\"\r\n [maxFileSize]=\"config.maxFileSize || 10000000\"\r\n [showUploadButton]=\"false\"\r\n [showCancelButton]=\"false\"\r\n >\r\n </p-fileUpload>\r\n\r\n <!-- Upload status -->\r\n <p *ngIf=\"uploadedFileName\" class=\"mt-2 text-green-600\">\r\n {{ uploadedFileName }}\r\n </p>\r\n <p *ngIf=\"uploadError\" class=\"mt-2 text-red-600\">\r\n {{ uploadError }}\r\n </p>\r\n </div>\r\n <p>\r\n <a\r\n [href]=\"env.getEnvironment().apis.default.url+config.templateUrl\"\r\n download\r\n class=\"text-blue-600 hover:underline flex items-center gap-1\"\r\n >\r\n <i class=\"pi pi-download\"></i>\r\n {{ 'downloadTemplate' | translate }}\r\n </a>\r\n </p>\r\n\r\n\r\n <!-- Step 2: Column Mapping -->\r\n <div *ngSwitchCase=\"1\" class=\"p-4\">\r\n <formly-form [form]=\"form\" [fields]=\"mappingFields\" [model]=\"model\"></formly-form>\r\n </div>\r\n\r\n <!-- Step 3: Review -->\r\n <div *ngSwitchCase=\"2\" class=\"p-4\">\r\n <p class=\"text-gray-700 mb-4\">\r\n {{ 'importReviewMessage' | translate }}\r\n </p>\r\n <div class=\"bg-gray-100 p-3 rounded\">\r\n <p><strong>{{ 'fileName' | translate }}:</strong> {{ uploadedFileName }}</p>\r\n <p><strong>{{ 'selectedMappings' | translate }}:</strong></p>\r\n <ul class=\"list-disc list-inside ml-4\">\r\n <li *ngFor=\"let field of mappingFields\">\r\n {{ field.props?.label }}: {{ getModelValue(field, model) }}\r\n </li>\r\n </ul>\r\n </div>\r\n </div>\r\n </ng-container>\r\n\r\n <!-- Footer Buttons -->\r\n <div class=\"flex justify-between mt-6 pt-4 border-t\">\r\n <div>\r\n <button\r\n pButton\r\n type=\"button\"\r\n [label]=\"'back' | translate\"\r\n icon=\"pi pi-arrow-left\"\r\n (click)=\"prevStep()\"\r\n [disabled]=\"activeStep === 0 || loading\"\r\n class=\"p-button-text\"\r\n ></button>\r\n </div>\r\n\r\n <div class=\"flex gap-2\">\r\n <button\r\n pButton\r\n type=\"button\"\r\n [label]=\"'next' | translate\"\r\n icon=\"pi pi-arrow-right\"\r\n iconPos=\"right\"\r\n (click)=\"nextStep()\"\r\n *ngIf=\"activeStep < 2\"\r\n [disabled]=\"!canProceed() || loading\"\r\n ></button>\r\n\r\n <button\r\n pButton\r\n type=\"submit\"\r\n [label]=\"loading ? ('uploading' | translate) : ('save' | translate)\"\r\n icon=\"pi pi-check\"\r\n *ngIf=\"activeStep === 2\"\r\n [disabled]=\"loading\"\r\n [loading]=\"loading\"\r\n class=\"p-button-primary\"\r\n ></button>\r\n\r\n <button\r\n pButton\r\n type=\"button\"\r\n [label]=\"'cancel' | translate\"\r\n severity=\"secondary\"\r\n (click)=\"onCancel()\"\r\n [disabled]=\"loading\"\r\n ></button>\r\n </div>\r\n </div>\r\n </form>\r\n </div>\r\n `, isInline: true, dependencies: [{ kind: \"ngmodule\", type: CommonModule }, { kind: \"directive\", type: i2.NgForOf, selector: \"[ngFor][ngForOf]\", inputs: [\"ngForOf\", \"ngForTrackBy\", \"ngForTemplate\"] }, { kind: \"directive\", type: i2.NgIf, selector: \"[ngIf]\", inputs: [\"ngIf\", \"ngIfThen\", \"ngIfElse\"] }, { kind: \"directive\", type: i2.NgSwitch, selector: \"[ngSwitch]\", inputs: [\"ngSwitch\"] }, { kind: \"directive\", type: i2.NgSwitchCase, selector: \"[ngSwitchCase]\", inputs: [\"ngSwitchCase\"] }, { kind: \"ngmodule\", type: ReactiveFormsModule }, { kind: \"directive\", type: i3.ɵNgNoValidate, selector: \"form:not([ngNoForm]):not([ngNativeValidate])\" }, { kind: \"directive\", type: i3.NgControlStatusGroup, selector: \"[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]\" }, { kind: \"directive\", type: i3.FormGroupDirective, selector: \"[formGroup]\", inputs: [\"formGroup\"], outputs: [\"ngSubmit\"], exportAs: [\"ngForm\"] }, { kind: \"ngmodule\", type: FormsModule }, { kind: \"component\", type: FormlyForm, selector: \"formly-form\", inputs: [\"form\", \"model\", \"fields\", \"options\"], outputs: [\"modelChange\"] }, { 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: \"ngmodule\", type: FileUploadModule }, { kind: \"component\", type: i5.FileUpload, selector: \"p-fileupload, p-fileUpload\", inputs: [\"name\", \"url\", \"method\", \"multiple\", \"accept\", \"disabled\", \"auto\", \"withCredentials\", \"maxFileSize\", \"invalidFileSizeMessageSummary\", \"invalidFileSizeMessageDetail\", \"invalidFileTypeMessageSummary\", \"invalidFileTypeMessageDetail\", \"invalidFileLimitMessageDetail\", \"invalidFileLimitMessageSummary\", \"style\", \"styleClass\", \"previewWidth\", \"chooseLabel\", \"uploadLabel\", \"cancelLabel\", \"chooseIcon\", \"uploadIcon\", \"cancelIcon\", \"showUploadButton\", \"showCancelButton\", \"mode\", \"headers\", \"customUpload\", \"fileLimit\", \"uploadStyleClass\", \"cancelStyleClass\", \"removeStyleClass\", \"chooseStyleClass\", \"chooseButtonProps\", \"uploadButtonProps\", \"cancelButtonProps\", \"files\"], outputs: [\"onBeforeUpload\", \"onSend\", \"onUpload\", \"onError\", \"onClear\", \"onRemove\", \"onSelect\", \"onProgress\", \"uploadHandler\", \"onImageError\", \"onRemoveUploadedFile\"] }, { kind: \"ngmodule\", type: StepsModule }, { kind: \"component\", type: i6.Steps, selector: \"p-steps\", inputs: [\"activeIndex\", \"model\", \"readonly\", \"style\", \"styleClass\", \"exact\"], outputs: [\"activeIndexChange\"] }, { kind: \"ngmodule\", type: ToastModule }, { kind: \"component\", type: i7.Toast, selector: \"p-toast\", inputs: [\"key\", \"autoZIndex\", \"baseZIndex\", \"life\", \"styleClass\", \"position\", \"preventOpenDuplicates\", \"preventDuplicates\", \"showTransformOptions\", \"hideTransformOptions\", \"showTransitionOptions\", \"hideTransitionOptions\", \"breakpoints\"], outputs: [\"onClose\"] }, { kind: \"pipe\", type: TranslatePipe, name: \"translate\" }] });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: ExcelImportComponent, decorators: [{\n type: Component,\n args: [{\n selector: 'app-excel-import',\n standalone: true,\n providers: [MessageService],\n template: `\r\n <p-toast></p-toast>\r\n <div class=\"p-4 space-y-4\">\r\n <p-steps [model]=\"steps\" [(activeIndex)]=\"activeStep\" class=\"mb-4\"></p-steps>\r\n\r\n <form [formGroup]=\"form\" (ngSubmit)=\"onSubmit()\">\r\n <ng-container [ngSwitch]=\"activeStep\">\r\n <!-- Step 1: Upload File -->\r\n <div *ngSwitchCase=\"0\" class=\"p-4\">\r\n <!-- Download template link -->\r\n\r\n\r\n <!-- File upload -->\r\n <p-fileUpload\r\n name=\"excelFile\"\r\n mode=\"basic\"\r\n chooseIcon=\"pi pi-upload\"\r\n chooseLabel=\"{{ 'chooseFile' | translate }}\"\r\n (onSelect)=\"onFileUpload($event)\"\r\n [accept]=\"config.acceptedFileTypes || '.xls,.xlsx,.csv'\"\r\n [maxFileSize]=\"config.maxFileSize || 10000000\"\r\n [showUploadButton]=\"false\"\r\n [showCancelButton]=\"false\"\r\n >\r\n </p-fileUpload>\r\n\r\n <!-- Upload status -->\r\n <p *ngIf=\"uploadedFileName\" class=\"mt-2 text-green-600\">\r\n {{ uploadedFileName }}\r\n </p>\r\n <p *ngIf=\"uploadError\" class=\"mt-2 text-red-600\">\r\n {{ uploadError }}\r\n </p>\r\n </div>\r\n <p>\r\n <a\r\n [href]=\"env.getEnvironment().apis.default.url+config.templateUrl\"\r\n download\r\n class=\"text-blue-600 hover:underline flex items-center gap-1\"\r\n >\r\n <i class=\"pi pi-download\"></i>\r\n {{ 'downloadTemplate' | translate }}\r\n </a>\r\n </p>\r\n\r\n\r\n <!-- Step 2: Column Mapping -->\r\n <div *ngSwitchCase=\"1\" class=\"p-4\">\r\n <formly-form [form]=\"form\" [fields]=\"mappingFields\" [model]=\"model\"></formly-form>\r\n </div>\r\n\r\n <!-- Step 3: Review -->\r\n <div *ngSwitchCase=\"2\" class=\"p-4\">\r\n <p class=\"text-gray-700 mb-4\">\r\n {{ 'importReviewMessage' | translate }}\r\n </p>\r\n <div class=\"bg-gray-100 p-3 rounded\">\r\n <p><strong>{{ 'fileName' | translate }}:</strong> {{ uploadedFileName }}</p>\r\n <p><strong>{{ 'selectedMappings' | translate }}:</strong></p>\r\n <ul class=\"list-disc list-inside ml-4\">\r\n <li *ngFor=\"let field of mappingFields\">\r\n {{ field.props?.label }}: {{ getModelValue(field, model) }}\r\n </li>\r\n </ul>\r\n </div>\r\n </div>\r\n </ng-container>\r\n\r\n <!-- Footer Buttons -->\r\n <div class=\"flex justify-between mt-6 pt-4 border-t\">\r\n <div>\r\n <button\r\n pButton\r\n type=\"button\"\r\n [label]=\"'back' | translate\"\r\n icon=\"pi pi-arrow-left\"\r\n (click)=\"prevStep()\"\r\n [disabled]=\"activeStep === 0 || loading\"\r\n class=\"p-button-text\"\r\n ></button>\r\n </div>\r\n\r\n <div class=\"flex gap-2\">\r\n <button\r\n pButton\r\n type=\"button\"\r\n [label]=\"'next' | translate\"\r\n icon=\"pi pi-arrow-right\"\r\n iconPos=\"right\"\r\n (click)=\"nextStep()\"\r\n *ngIf=\"activeStep < 2\"\r\n [disabled]=\"!canProceed() || loading\"\r\n ></button>\r\n\r\n <button\r\n pButton\r\n type=\"submit\"\r\n [label]=\"loading ? ('uploading' | translate) : ('save' | translate)\"\r\n icon=\"pi pi-check\"\r\n *ngIf=\"activeStep === 2\"\r\n [disabled]=\"loading\"\r\n [loading]=\"loading\"\r\n class=\"p-button-primary\"\r\n ></button>\r\n\r\n <button\r\n pButton\r\n type=\"button\"\r\n [label]=\"'cancel' | translate\"\r\n severity=\"secondary\"\r\n (click)=\"onCancel()\"\r\n [disabled]=\"loading\"\r\n ></button>\r\n </div>\r\n </div>\r\n </form>\r\n </div>\r\n `,\n imports: [\n CommonModule,\n ReactiveFormsModule,\n FormsModule,\n FormlyForm,\n TranslatePipe,\n ButtonModule,\n FileUploadModule,\n StepsModule,\n ToastModule\n ],\n }]\n }], ctorParameters: () => [{ type: i1.DynamicDialogRef }, { type: i1.DynamicDialogConfig }], propDecorators: { config: [{\n type: Input\n }], importComplete: [{\n type: Output\n }], importError: [{\n type: Output\n }] } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXhjZWwtaW1wb3J0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9uZy51aS5jb3JlL2V4Y2VsLWltcG9ydC9zcmMvbGliL2V4Y2VsLWltcG9ydC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQWEsS0FBSyxFQUFFLE1BQU0sRUFBRSxZQUFZLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDMUYsT0FBTyxFQUFhLFdBQVcsRUFBRSxtQkFBbUIsRUFBRSxXQUFXLEVBQUUsVUFBVSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDdEcsT0FBTyxFQUFFLGtCQUFrQixFQUFFLG1CQUFtQixFQUFFLFdBQVcsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQ3pHLE9BQU8sRUFBcUIsVUFBVSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDakUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQy9ELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM5QyxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUM5RSxPQUFPLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMxQyxPQUFPLEVBQUUsZ0JBQWdCLEVBQW1CLE1BQU0sb0JBQW9CLENBQUM7QUFDdkUsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM1QyxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQzdDLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDNUMsT0FBTyxFQUFFLElBQUksRUFBRSxLQUFLLEVBQVksTUFBTSxNQUFNLENBQUM7Ozs7Ozs7OztBQWtKN0Ms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O3NCQUFwQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHsgQ29tcG9uZW50LCBpbmplY3QsIE9uRGVzdHJveSwgSW5wdXQsIE91dHB1dCwgRXZlbnRFbWl0dGVyIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEZvcm1Hcm91cCwgRm9ybXNNb2R1bGUsIFJlYWN0aXZlRm9ybXNNb2R1bGUsIEZvcm1CdWlsZGVyLCBWYWxpZGF0b3JzIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBFbnZpcm9ubWVudFNlcnZpY2UsIExvY2FsaXphdGlvblNlcnZpY2UsIFJlc3RTZXJ2aWNlIH0gZnJvbSAnQGVsaXRlLmZyYW1ld29yay9uZy5jb3JlL3NlcnZpY2VzJztcclxuaW1wb3J0IHsgRm9ybWx5RmllbGRDb25maWcsIEZvcm1seUZvcm0gfSBmcm9tICdAbmd4LWZvcm1seS9jb3JlJztcclxuaW1wb3J0IHsgVHJhbnNsYXRlUGlwZSB9IGZyb20gJ0BlbGl0ZS5mcmFtZXdvcmsvbmcuY29yZS9waXBlcyc7XHJcbmltcG9ydCB7IEJ1dHRvbk1vZHVsZSB9IGZyb20gJ3ByaW1lbmcvYnV0dG9uJztcclxuaW1wb3J0IHsgRHluYW1pY0RpYWxvZ0NvbmZpZywgRHluYW1pY0RpYWxvZ1JlZiB9IGZyb20gJ3ByaW1lbmcvZHluYW1pY2RpYWxvZyc7XHJcbmltcG9ydCB7IFN1YmplY3QsIHRha2VVbnRpbCB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBGaWxlVXBsb2FkTW9kdWxlLCBGaWxlVXBsb2FkRXZlbnQgfSBmcm9tICdwcmltZW5nL2ZpbGV1cGxvYWQnO1xyXG5pbXBvcnQgeyBTdGVwc01vZHVsZSB9IGZyb20gJ3ByaW1lbmcvc3RlcHMnO1xyXG5pbXBvcnQgeyBNZXNzYWdlU2VydmljZSB9IGZyb20gJ3ByaW1lbmcvYXBpJztcclxuaW1wb3J0IHsgVG9hc3RNb2R1bGUgfSBmcm9tICdwcmltZW5nL3RvYXN0JztcclxuaW1wb3J0IHsgcmVhZCwgdXRpbHMsIFdvcmtCb29rIH0gZnJvbSAneGxzeCc7XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIEV4Y2VsSW1wb3J0Q29uZmlnIHtcclxuICB0ZW1wbGF0ZVVybDogc3RyaW5nO1xyXG4gIGFwaVVybDogc3RyaW5nO1xyXG4gIGFwaU5hbWU6IHN0cmluZztcclxuICBtYXBwaW5nRmllbGRzOiBGb3JtbHlGaWVsZENvbmZpZ1tdO1xyXG4gIGFjY2VwdGVkRmlsZVR5cGVzPzogc3RyaW5nO1xyXG4gIG1heEZpbGVTaXplPzogbnVtYmVyO1xyXG4gIHN0ZXBzPzogeyBsYWJlbDogc3RyaW5nIH1bXTtcclxufVxyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdhcHAtZXhjZWwtaW1wb3J0JyxcclxuICBzdGFuZGFsb25lOiB0cnVlLFxyXG4gIHByb3ZpZGVyczpbTWVzc2FnZVNlcnZpY2VdLFxyXG4gIHRlbXBsYXRlOiBgXHJcbiAgICA8cC10b2FzdD48L3AtdG9hc3Q+XHJcbiAgICA8ZGl2IGNsYXNzPVwicC00IHNwYWNlLXktNFwiPlxyXG4gICAgICA8cC1zdGVwcyBbbW9kZWxdPVwic3RlcHNcIiBbKGFjdGl2ZUluZGV4KV09XCJhY3RpdmVTdGVwXCIgY2xhc3M9XCJtYi00XCI+PC9wLXN0ZXBzPlxyXG5cclxuICAgICAgPGZvcm0gW2Zvcm1Hcm91cF09XCJmb3JtXCIgKG5nU3VibWl0KT1cIm9uU3VibWl0KClcIj5cclxuICAgICAgICA8bmctY29udGFpbmVyIFtuZ1N3aXRjaF09XCJhY3RpdmVTdGVwXCI+XHJcbiAgICAgICAgICA8IS0tIFN0ZXAgMTogVXBsb2FkIEZpbGUgLS0+XHJcbiAgICAgICAgPGRpdiAqbmdTd2l0Y2hDYXNlPVwiMFwiIGNsYXNzPVwicC00XCI+XHJcbiAgICAgICAgICA8IS0tIERvd25sb2FkIHRlbXBsYXRlIGxpbmsgLS0+XHJcblxyXG5cclxuICAgICAgICAgIDwhLS0gRmlsZSB1cGxvYWQgLS0+XHJcbiAgICAgICAgICA8cC1maWxlVXBsb2FkXHJcbiAgICAgICAgICAgIG5hbWU9XCJleGNlbEZpbGVcIlxyXG4gICAgICAgICAgICBtb2RlPVwiYmFzaWNcIlxyXG4gICAgICAgICAgICBjaG9vc2VJY29uPVwicGkgcGktdXBsb2FkXCJcclxuICAgICAgICAgICAgY2hvb3NlTGFiZWw9XCJ7eyAnY2hvb3NlRmlsZScgfCB0cmFuc2xhdGUgfX1cIlxyXG4gICAgICAgICAgICAob25TZWxlY3QpPVwib25GaWxlVXBsb2FkKCRldmVudClcIlxyXG4gICAgICAgICAgICBbYWNjZXB0XT1cImNvbmZpZy5hY2NlcHRlZEZpbGVUeXBlcyB8fCAnLnhscywueGxzeCwuY3N2J1wiXHJcbiAgICAgICAgICAgIFttYXhGaWxlU2l6ZV09XCJjb25maWcubWF4RmlsZVNpemUgfHwgMTAwMDAwMDBcIlxyXG4gICAgICAgICAgICBbc2hvd1VwbG9hZEJ1dHRvbl09XCJmYWxzZVwiXHJcbiAgICAgICAgICAgIFtzaG93Q2FuY2VsQnV0dG9uXT1cImZhbHNlXCJcclxuICAgICAgICAgID5cclxuICAgICAgICAgIDwvcC1maWxlVXBsb2FkPlxyXG5cclxuICAgICAgICAgIDwhLS0gVXBsb2FkIHN0YXR1cyAtLT5cclxuICAgICAgICAgIDxwICpuZ0lmPVwidXBsb2FkZWRGaWxlTmFtZVwiIGNsYXNzPVwibXQtMiB0ZXh0LWdyZWVuLTYwMFwiPlxyXG4gICAgICAgICAgICB7eyB1cGxvYWRlZEZpbGVOYW1lIH19XHJcbiAgICAgICAgICA8L3A+XHJcbiAgICAgICAgICA8cCAqbmdJZj1cInVwbG9hZEVycm9yXCIgY2xhc3M9XCJtdC0yIHRleHQtcmVkLTYwMFwiPlxyXG4gICAgICAgICAgICB7eyB1cGxvYWRFcnJvciB9fVxyXG4gICAgICAgICAgPC9wPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxwPlxyXG4gICAgICAgICAgICA8YVxyXG4gICAgICAgICAgICAgIFtocmVmXT1cImVudi5nZXRFbnZpcm9ubWVudCgpLmFwaXMuZGVmYXVsdC51cmwrY29uZmlnLnRlbXBsYXRlVXJsXCJcclxuICAgICAgICAgICAgICBkb3dubG9hZFxyXG4gICAgICAgICAgICAgIGNsYXNzPVwidGV4dC1ibHVlLTYwMCBob3Zlcjp1bmRlcmxpbmUgZmxleCBpdGVtcy1jZW50ZXIgZ2FwLTFcIlxyXG4gICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgPGkgY2xhc3M9XCJwaSBwaS1kb3dubG9hZFwiPjwvaT5cclxuICAgICAgICAgICAgICB7eyAnZG93bmxvYWRUZW1wbGF0ZScgfCB0cmFuc2xhdGUgfX1cclxuICAgICAgICAgICAgPC9hPlxyXG4gICAgICAgICAgPC9wPlxyXG5cclxuXHJcbiAgICAgICAgICA8IS0tIFN0ZXAgMjogQ29sdW1uIE1hcHBpbmcgLS0+XHJcbiAgICAgICAgICA8ZGl2ICpuZ1N3aXRjaENhc2U9XCIxXCIgY2xhc3M9XCJwLTRcIj5cclxuICAgICAgICAgICAgPGZvcm1seS1mb3JtIFtmb3JtXT1cImZvcm1cIiBbZmllbGRzXT1cIm1hcHBpbmdGaWVsZHNcIiBbbW9kZWxdPVwibW9kZWxcIj48L2Zvcm1seS1mb3JtPlxyXG4gICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgPCEtLSBTdGVwIDM6IFJldmlldyAtLT5cclxuICAgICAgICAgIDxkaXYgKm5nU3dpdGNoQ2FzZT1cIjJcIiBjbGFzcz1cInAtNFwiPlxyXG4gICAgICAgICAgICA8cCBjbGFzcz1cInRleHQtZ3JheS03MDAgbWItNFwiPlxyXG4gICAgICAgICAgICAgIHt7ICdpbXBvcnRSZXZpZXdNZXNzYWdlJyB8IHRyYW5zbGF0ZSB9fVxyXG4gICAgICAgICAgICA8L3A+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJiZy1ncmF5LTEwMCBwLTMgcm91bmRlZFwiPlxyXG4gICAgICAgICAgICAgIDxwPjxzdHJvbmc+e3sgJ2ZpbGVOYW1lJyB8IHRyYW5zbGF0ZSB9fTo8L3N0cm9uZz4ge3sgdXBsb2FkZWRGaWxlTmFtZSB9fTwvcD5cclxuICAgICAgICAgICAgICA8cD48c3Ryb25nPnt7ICdzZWxlY3RlZE1hcHBpbmdzJyB8IHRyYW5zbGF0ZSB9fTo8L3N0cm9uZz48L3A+XHJcbiAgICAgICAgICAgICAgPHVsIGNsYXNzPVwibGlzdC1kaXNjIGxpc3QtaW5zaWRlIG1sLTRcIj5cclxuICAgICAgICAgICAgICAgIDxsaSAqbmdGb3I9XCJsZXQgZmllbGQgb2YgbWFwcGluZ0ZpZWxkc1wiPlxyXG4gICAgICAgICAgICAgICAgICB7eyBmaWVsZC5wcm9wcz8ubGFiZWwgfX06IHt7IGdldE1vZGVsVmFsdWUoZmllbGQsIG1vZGVsKSB9fVxyXG4gICAgICAgICAgICAgICAgPC9saT5cclxuICAgICAgICAgICAgICA8L3VsPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvbmctY29udGFpbmVyPlxyXG5cclxuICAgICAgICA8IS0tIEZvb3RlciBCdXR0b25zIC0tPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IGp1c3RpZnktYmV0d2VlbiBtdC02IHB0LTQgYm9yZGVyLXRcIj5cclxuICAgICAgICAgIDxkaXY+XHJcbiAgICAgICAgICAgIDxidXR0b25cclxuICAgICAgICAgICAgICBwQnV0dG9uXHJcbiAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXHJcbiAgICAgICAgICAgICAgW2xhYmVsXT1cIidiYWNrJyB8IHRyYW5zbGF0ZVwiXHJcbiAgICAgICAgICAgICAgaWNvbj1cInBpIHBpLWFycm93LWxlZnRcIlxyXG4gICAgICAgICAgICAgIChjbGljayk9XCJwcmV2U3RlcCgpXCJcclxuICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwiYWN0aXZlU3RlcCA9PT0gMCB8fCBsb2FkaW5nXCJcclxuICAgICAgICAgICAgICBjbGFzcz1cInAtYnV0dG9uLXRleHRcIlxyXG4gICAgICAgICAgICA+PC9idXR0b24+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleCBnYXAtMlwiPlxyXG4gICAgICAgICAgICA8YnV0dG9uXHJcbiAgICAgICAgICAgICAgcEJ1dHRvblxyXG4gICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxyXG4gICAgICAgICAgICAgIFtsYWJlbF09XCInbmV4dCcgfCB0cmFuc2xhdGVcIlxyXG4gICAgICAgICAgICAgIGljb249XCJwaSBwaS1hcnJvdy1yaWdodFwiXHJcbiAgICAgICAgICAgICAgaWNvblBvcz1cInJpZ2h0XCJcclxuICAgICAgICAgICAgICAoY2xpY2spPVwibmV4dFN0ZXAoKVwiXHJcbiAgICAgICAgICAgICAgKm5nSWY9XCJhY3RpdmVTdGVwIDwgMlwiXHJcbiAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cIiFjYW5Qcm9jZWVkKCkgfHwgbG9hZGluZ1wiXHJcbiAgICAgICAgICAgID48L2J1dHRvbj5cclxuXHJcbiAgICAgICAgICAgIDxidXR0b25cclxuICAgICAgICAgICAgICBwQnV0dG9uXHJcbiAgICAgICAgICAgICAgdHlwZT1cInN1Ym1pdFwiXHJcbiAgICAgICAgICAgICAgW2xhYmVsXT1cImxvYWRpbmcgPyAoJ3VwbG9hZGluZycgfCB0cmFuc2xhdGUpIDogKCdzYXZlJyB8IHRyYW5zbGF0ZSlcIlxyXG4gICAgICAgICAgICAgIGljb249XCJwaSBwaS1jaGVja1wiXHJcbiAgICAgICAgICAgICAgKm5nSWY9XCJhY3RpdmVTdGVwID09PSAyXCJcclxuICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwibG9hZGluZ1wiXHJcbiAgICAgICAgICAgICAgW2xvYWRpbmddPVwibG9hZGluZ1wiXHJcbiAgICAgICAgICAgICAgY2xhc3M9XCJwLWJ1dHRvbi1wcmltYXJ5XCJcclxuICAgICAgICAgICAgPjwvYnV0dG9uPlxyXG5cclxuICAgICAgICAgICAgPGJ1dHRvblxyXG4gICAgICAgICAgICAgIHBCdXR0b25cclxuICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcclxuICAgICAgICAgICAgICBbbGFiZWxdPVwiJ2NhbmNlbCcgfCB0cmFuc2xhdGVcIlxyXG4gICAgICAgICAgICAgIHNldmVyaXR5PVwic2Vjb25kYXJ5XCJcclxuICAgICAgICAgICAgICAoY2xpY2spPVwib25DYW5jZWwoKVwiXHJcbiAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cImxvYWRpbmdcIlxyXG4gICAgICAgICAgICA+PC9idXR0b24+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9mb3JtPlxyXG4gICAgPC9kaXY+XHJcbiAgYCxcclxuICBpbXBvcnRzOiBbXHJcbiAgICBDb21tb25Nb2R1bGUsXHJcbiAgICBSZWFjdGl2ZUZvcm1zTW9kdWxlLFxyXG4gICAgRm9ybXNNb2R1bGUsXHJcbiAgICBGb3JtbHlGb3JtLFxyXG4gICAgVHJhbnNsYXRlUGlwZSxcclxuICAgIEJ1dHRvbk1vZHVsZSxcclxuICAgIEZpbGVVcGxvYWRNb2R1bGUsXHJcbiAgICBTdGVwc01vZHVsZSxcclxuICAgIFRvYXN0TW9kdWxlXHJcbiAgXSxcclxufSlcclxuZXhwb3J0IGNsYXNzIEV4Y2VsSW1wb3J0Q29tcG9uZW50IGltcGxlbWVudHMgT25EZXN0cm95IHtcclxuICBASW5wdXQoKSBjb25maWchOiBFeGNlbEltcG9ydENvbmZpZztcclxuICBAT3V0cHV0KCkgaW1wb3J0Q29tcGxldGUgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcclxuICBAT3V0cHV0KCkgaW1wb3J0RXJyb3IgPSBuZXcgRXZlbnRFbWl0dGVyPEVycm9yPigpO1xyXG5cclxuICBmb3JtOiBGb3JtR3JvdXA7XHJcbiAgbW9kZWw6IGFueSA9IHt9O1xyXG4gIGxvYWRpbmcgPSBmYWxzZTtcclxuICB1cGxvYWRlZEZpbGVOYW1lOiBzdHJpbmcgfCBudWxsID0gbnVsbDtcclxuICB1cGxvYWRFcnJvcjogc3RyaW5nIHwgbnVsbCA9IG51bGw7XHJcbiAgZXhjZWxIZWFkZXJzOiBzdHJpbmdbXSA9IFtdO1xyXG4gIHByaXZhdGUgZGVzdHJveSQgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xyXG4gIHByaXZhdGUgcmVzdFNlcnZpY2U6IFJlc3RTZXJ2aWNlID0gaW5qZWN0KFJlc3RTZXJ2aWNlKTtcclxuICBwcml2YXRlIG1lc3NhZ2VTZXJ2aWNlID0gaW5qZWN0KE1lc3NhZ2VTZXJ2aWNlKTtcclxuICBwcml2YXRlIHRyYW5zbGF0ZVNlcnZpY2UgPSBpbmplY3QoTG9jYWxpemF0aW9uU2VydmljZSk7XHJcbiAgcHJpdmF0ZSBmYiA9IGluamVjdChGb3JtQnVpbGRlcik7XHJcbiAgcHVibGljIGVudiA9IGluamVjdChFbnZpcm9ubWVudFNlcnZpY2UpO1xyXG5cclxuICBzdGVwcyA9IFtcclxuICAgIHsgbGFiZWw6IHRoaXMudHJhbnNsYXRlU2VydmljZSAuaW5zdGFudCgndXBsb2FkRmlsZScpIH0sXHJcbiAgICB7IGxhYmVsOiB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UgLmluc3RhbnQoJ2NvbHVtbk1hcHBpbmcnKSB9LFxyXG4gICAgeyBsYWJlbDogdGhpcy50cmFuc2xhdGVTZXJ2aWNlIC5pbnN0YW50KCdyZXZpZXcnKSB9LFxyXG4gIF07XHJcblxyXG4gIGFjdGl2ZVN0ZXAgPSAwO1xyXG4gIG1hcHBpbmdGaWVsZHM6IEZvcm1seUZpZWxkQ29uZmlnW10gPSBbXTtcclxuXHJcbiAgY29uc3RydWN0b3IocHVibGljIHJlZjogRHluYW1pY0RpYWxvZ1JlZiwgcHVibGljIGRpYWxvZ0NvbmZpZzogRHluYW1pY0RpYWxvZ0NvbmZpZykge1xyXG4gICAgdGhpcy5mb3JtID0gdGhpcy5mYi5ncm91cCh7fSk7XHJcblxyXG4gICAgLy8gSW5pdGlhbGl6ZSBmcm9tIGRpYWxvZyBjb25maWcgaWYgcHJvdmlkZWRcclxuICAgIGlmICh0aGlzLmRpYWxvZ0NvbmZpZz8uZGF0YT8uY29uZmlnKSB7XHJcbiAgICAgIHRoaXMuY29uZmlnID0gdGhpcy5kaWFsb2dDb25maWcuZGF0YS5jb25maWc7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBuZ09uSW5pdCgpIHtcclxuICAgIGlmICghdGhpcy5jb25maWcpIHtcclxuICAgICAgdGhyb3cgbmV3IEVycm9yKCdFeGNlbEltcG9ydENvbmZpZyBpcyByZXF1aXJlZCcpO1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMubWFwcGluZ0ZpZWxkcyA9IHRoaXMuY29uZmlnLm1hcHBpbmdGaWVsZHMubWFwKGZpZWxkID0+ICh7XHJcbiAgICAgIC4uLmZpZWxkLFxyXG4gICAgICBwcm9wczoge1xyXG4gICAgICAgIC4uLmZpZWxkLnByb3BzLFxyXG4gICAgICAgIG9wdGlvbnM6IFtdXHJcbiAgICAgIH1cclxuICAgIH0pKTtcclxuXHJcbiAgICB0aGlzLnN0ZXBzID0gdGhpcy5jb25maWcuc3RlcHMgfHwgdGhpcy5zdGVwcztcclxuICB9XHJcblxyXG4gIG5leHRTdGVwKCkge1xyXG4gICAgaWYgKHRoaXMuYWN0aXZlU3RlcCA8IDIpIHRoaXMuYWN0aXZlU3RlcCsrO1xyXG4gIH1cclxuXHJcbiAgcHJldlN0ZXAoKSB7XHJcbiAgICBpZiAodGhpcy5hY3RpdmVTdGVwID4gMCkgdGhpcy5hY3RpdmVTdGVwLS07XHJcbiAgfVxyXG5cclxuICBjYW5Qcm9jZWVkKCk6IGJvb2xlYW4ge1xyXG4gICAgc3dpdGNoICh0aGlzLmFjdGl2ZVN0ZXApIHtcclxuICAgICAgY2FzZSAwOlxyXG4gICAgICAgIHJldHVybiAhIXRoaXMudXBsb2FkZWRGaWxlTmFtZTtcclxuICAgICAgY2FzZSAxOlxyXG4gICAgICAgIHJldHVybiB0aGlzLmZvcm0udmFsaWQ7XHJcbiAgICAgIGNhc2UgMjpcclxuICAgICAgICByZXR1cm4gdHJ1ZTtcclxuICAgICAgZGVmYXVsdDpcclxuICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICB9XHJcbiAgfVxyXG4gIGdldE1vZGVsVmFsdWUoZmllbGQ6IEZvcm1seUZpZWxkQ29uZmlnLCBtb2RlbDogYW55KTogYW55IHtcclxuICBpZiAoIWZpZWxkLmtleSkgcmV0dXJuIG51bGw7XHJcblxyXG4gIGlmIChBcnJheS5pc0FycmF5KGZpZWxkLmtleSkpIHtcclxuICAgIC8vIFdhbGsgdGhyb3VnaCBuZXN0ZWQga2V5cyBsaWtlIFsnYWRkcmVzcycsICdzdHJlZXQnXVxyXG4gICAgcmV0dXJuIGZpZWxkLmtleS5yZWR1Y2UoKGFjYywgaykgPT4gKGFjYyA/IGFjY1trXSA6IHVuZGVmaW5lZCksIG1vZGVsKTtcclxuICB9XHJcblxyXG4gIHJldHVybiBtb2RlbFtmaWVsZC5rZXldO1xyXG59XHJcblxyXG4gIC8vIEFkZCB0aGlzIHByb3BlcnR5IHRvIHN0b3JlIHRoZSBmaWxlIGNvbnRlbnRcclxucHJpdmF0ZSBmaWxlQ29udGVudDogc3RyaW5nIHwgQXJyYXlCdWZmZXIgfCBudWxsID0gbnVsbDtcclxuXHJcbi8vIFVwZGF0ZSB0aGUgb25GaWxlVXBsb2FkIG1ldGhvZCB0byBzdG9yZSB0aGUgZmlsZSBjb250ZW50XHJcbm9uRmlsZVVwbG9hZChldmVudDogYW55KSB7XHJcbiAgdGhpcy51cGxvYWRFcnJvciA9IG51bGw7XHJcbiAgY29uc3QgZmlsZTogRmlsZSA9IGV2ZW50LmZpbGVzWzBdO1xyXG5cclxuICBpZiAoIWZpbGUpIHtcclxuICAgIHRoaXMudXBsb2FkRXJyb3IgPSAnbm9GaWxlU2VsZWN0ZWQnO1xyXG4gICAgcmV0dXJuO1xyXG4gIH1cclxuXHJcbiAgLy8gVmFsaWRhdGUgZmlsZSB0eXBlXHJcbiAgY29uc3QgdmFsaWRFeHRlbnNpb25zID0gWycueGxzeCcsICcueGxzJywgJy5jc3YnXTtcclxuICBjb25zdCBmaWxlRXh0ZW5zaW9uID0gZmlsZS5uYW1lLnRvTG93ZXJDYXNlKCkuc3Vic3RyaW5nKGZpbGUubmFtZS5sYXN0SW5kZXhPZignLicpKTtcclxuXHJcbiAgaWYgKCF2YWxpZEV4dGVuc2lvbnMuaW5jbHVkZXMoZmlsZUV4dGVuc2lvbikpIHtcclxuICAgIHRoaXMudXBsb2FkRXJyb3IgPSAnaW52YWxpZEZpbGVUeXBlJztcclxuICAgIHRoaXMuY2xlYXJGaWxlVXBsb2FkKGV2ZW50KTtcclxuICAgIHJldHVybjtcclxuICB9XHJcblxyXG4gIHRoaXMudXBsb2FkZWRGaWxlTmFtZSA9IGZpbGUubmFtZTtcclxuXHJcbiAgY29uc3QgcmVhZGVyID0gbmV3IEZpbGVSZWFkZXIoKTtcclxuXHJcbiAgcmVhZGVyLm9ubG9hZCA9IChlOiBQcm9ncmVzc0V2ZW50PEZpbGVSZWFkZXI+KSA9PiB7XHJcbiAgICB0cnkge1xyXG4gICAgICBjb25zdCBhcnJheUJ1ZmZlciA9IGUudGFyZ2V0Py5yZXN1bHQgYXMgQXJyYXlCdWZmZXI7XHJcbiAgICAgIHRoaXMuZmlsZUNvbnRlbnQgPSBhcnJheUJ1ZmZlcjsgLy8gU3RvcmUgdGhlIGZpbGUgY29udGVudFxyXG4gICAgICBjb25zdCBkYXRhID0gbmV3IFVpbnQ4QXJyYXkoYXJyYXlCdWZmZXIpO1xyXG5cclxuICAgICAgY29uc3Qgd29ya2Jvb2s6IFdvcmtCb29rID0gcmVhZChkYXRhLCB7IHR5cGU6ICdhcnJheScgfSk7XHJcblxyXG4gICAgICBpZiAod29ya2Jvb2suU2hlZXROYW1lcy5sZW5ndGggPT09IDApIHtcclxuICAgICAgICB0aGlzLnVwbG9hZEVycm9yID0gJ25vU2hlZXRzRm91bmQnO1xyXG4gICAgICAgIHRoaXMuY2xlYXJGaWxlVXBsb2FkKGV2ZW50KTtcclxuICAgICAgICByZXR1cm47XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIGNvbnN0IHNoZWV0TmFtZSA9IHdvcmtib29rLlNoZWV0TmFtZXNbMF07XHJcbiAgICAgIGNvbnN0IHdvcmtzaGVldCA9IHdvcmtib29rLlNoZWV0c1tzaGVldE5hbWVdO1xyXG5cclxuICAgICAgY29uc3Qgcm93czogYW55W11bXSA9IHV0aWxzLnNoZWV0X3RvX2pzb24od29ya3NoZWV0LCB7IGhlYWRlcjogMSB9KTtcclxuXHJcbiAgICAgIGlmIChyb3dzLmxlbmd0aCA9PT0gMCkge1xyXG4gICAgICAgIHRoaXMudXBsb2FkRXJyb3IgPSAnbm9EYXRhRm91bmQnO1xyXG4gICAgICAgIHRoaXMuY2xlYXJGaWxlVXBsb2FkKGV2ZW50KTtcclxuICAgICAgICByZXR1cm47XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIHRoaXMuZXhjZWxIZWFkZXJzID0gcm93c1swXSBhcyBzdHJpbmdbXTtcclxuXHJcbiAgICAgIC8vIFVwZGF0ZSBtYXBwaW5nIGZpZWxkcyB3aXRoIGhlYWRlciBvcHRpb25zXHJcbiAgICAgIHRoaXMubWFwcGluZ0ZpZWxkcy5mb3JFYWNoKGZpZWxkID0+IHtcclxuICAgICAgICBpZiAoZmllbGQucHJvcHMpIHtcclxuICAgICAgICAgIGZpZWxkLnByb3BzLm9wdGlvbnMgPSB0aGlzLmV4Y2VsSGVhZGVycy5tYXAoaCA9PiAoe1xyXG4gICAgICAgICAgICB2YWx1ZTogaCxcclxuICAgICAgICAgICAgbGFiZWw6IGgsXHJcbiAgICAgICAgICB9KSk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuXHJcbiAgICAgIC8vIEluaXRpYWxpemUgZm9ybSB3aXRoIGRlZmF1bHQgdmFsdWVzIGlmIG5vdCBzZXRcclxuICAgICAgdGhpcy5pbml0aWFsaXplRm9ybSgpO1xyXG5cclxuICAgIH0gY2F0Y2ggKGVycm9yKSB7XHJcbiAgICAgIGNvbnNvbGUuZXJyb3IoJ0Vycm9yIHByb2Nlc3NpbmcgRXhjZWwgZmlsZTonLCBlcnJvcik7XHJcbiAgICAgIHRoaXMudXBsb2FkRXJyb3IgPSAnZmlsZVByb2Nlc3NpbmdFcnJvcic7XHJcbiAgICAgIHRoaXMuY2xlYXJGaWxlVXBsb2FkKGV2ZW50KTtcclxuICAgIH1cclxuICB9O1xyXG5cclxuICByZWFkZXIub25lcnJvciA9IChlcnJvcikgPT4ge1xyXG4gICAgY29uc29sZS5lcnJvcignRmlsZSByZWFkaW5nIGVycm9yOicsIGVycm9yKTtcclxuICAgIHRoaXMudXBsb2FkRXJyb3IgPSAnZmlsZVJlYWRFcnJvcic7XHJcbiAgICB0aGlzLmNsZWFyRmlsZVVwbG9hZChldmVudCk7XHJcbiAgfTtcclxuXHJcbiAgcmVhZGVyLnJlYWRBc0FycmF5QnVmZmVyKGZpbGUpO1xyXG59XHJcblxyXG4vLyBBZGQgdGhpcyBtZXRob2QgdG8gY29udmVydCBBcnJheUJ1ZmZlciB0byBiYXNlNjRcclxucHJpdmF0ZSBhcnJheUJ1ZmZlclRvQmFzZTY0KGJ1ZmZlcjogQXJyYXlCdWZmZXIpOiBzdHJpbmcge1xyXG4gIGNvbnN0IGJ5dGVzID0gbmV3IFVpbnQ4QXJyYXkoYnVmZmVyKTtcclxuICBsZXQgYmluYXJ5ID0gJyc7XHJcbiAgY29uc3QgbGVuID0gYnl0ZXMuYnl0ZUxlbmd0aDtcclxuXHJcbiAgZm9yIChsZXQgaSA9IDA7IGkgPCBsZW47IGkrKykge1xyXG4gICAgYmluYXJ5ICs9IFN0cmluZy5mcm9tQ2hhckNvZGUoYnl0ZXNbaV0pO1xyXG4gIH1cclxuXHJcbiAgcmV0dXJuIHdpbmRvdy5idG9hKGJpbmFyeSk7XHJcbn1cclxuXHJcbi8vIEFkZCB0aGlzIG1ldGhvZCB0byBnZXQgZmlsZSBleHRlbnNpb25cclxucHJpdmF0ZSBnZXRGaWxlRXh0ZW5zaW9uKGZpbGVuYW1lOiBzdHJpbmcpOiBzdHJpbmcge1xyXG4gIGNvbnN0IGluZGV4ID0gZmlsZW5hbWUubGFzdEluZGV4T2YoJy4nKTtcclxuICByZXR1cm4gaW5kZXggIT09IC0xID8gZmlsZW5hbWUuc2xpY2UoaW5kZXgpIDogJyc7XHJcbn1cclxuXHJcbi8vIFVwZGF0ZWQgb25TdWJtaXQgbWV0aG9kXHJcbm9uU3VibWl0KCkge1xyXG4gIGlmICh0aGlzLmZvcm0uaW52YWxpZCB8fCAhdGhpcy51cGxvYWRlZEZpbGVOYW1lIHx8ICF0aGlzLmZpbGVDb250ZW50KSB7XHJcbiAgICB0aGlzLmZvcm0ubWFya0FsbEFzVG91Y2hlZCgpO1xyXG5cclxuICAgIGlmICghdGhpcy5maWxlQ29udGVudCkge1xyXG4gICAgICB0aGlzLm1lc3NhZ2VTZXJ2aWNlLmFkZCh7XHJcbiAgICAgICAgc2V2ZXJpdHk6ICdlcnJvcicsXHJcbiAgICAgICAgc3VtbWFyeTogJ0Vycm9yJyxcclxuICAgICAgICBkZXRhaWw6ICdGaWxlIGNvbnRlbnQgaXMgbWlzc2luZy4gUGxlYXNlIHVwbG9hZCB0aGUgZmlsZSBhZ2Fpbi4nXHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybjtcclxuICB9XHJcblxyXG4gIHRoaXMubG9hZGluZyA9IHRydWU7XHJcblxyXG4gIC8vIENvbnZlcnQgZmlsZSBjb250ZW50IHRvIGJhc2U2NFxyXG4gIGxldCBmaWxlQmFzZTY0OiBzdHJpbmc7XHJcblxyXG4gIHRyeSB7XHJcbiAgICBpZiAodGhpcy5maWxlQ29udGVudCBpbnN0YW5jZW9mIEFycmF5QnVmZmVyKSB7XHJcbiAgICAgIGZpbGVCYXNlNjQgPSB0aGlzLmFycmF5QnVmZmVyVG9CYXNlNjQodGhpcy5maWxlQ29udGVudCk7XHJcbiAgICB9IGVsc2UgaWYgKHR5cGVvZiB0aGlzLmZpbGVDb250ZW50ID09PSAnc3RyaW5nJykge1xyXG4gICAgICAvLyBJZiBpdCdzIGFscmVhZHkgYSBzdHJpbmcgKGJhc2U2NCksIHVzZSBpdCBkaXJlY3RseVxyXG4gICAgICBmaWxlQmFzZTY0ID0gdGhpcy5maWxlQ29udGVudDtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRocm93IG5ldyBFcnJvcignVW5zdXBwb3J0ZWQgZmlsZSBjb250ZW50IHR5cGUnKTtcclxuICAgIH1cclxuICB9IGNhdGNoIChlcnJvcikge1xyXG4gICAgdGhpcy5sb2FkaW5nID0gZmFsc2U7XHJcbiAgICBjb25zb2xlLmVycm9yKCdFcnJvciBjb252ZXJ0aW5nIGZpbGUgdG8gYmFzZTY0OicsIGVycm9yKTtcclxuICAgIHRoaXMubWVzc2FnZVNlcnZpY2UuYWRkKHtcclxuICAgICAgc2V2ZXJpdHk6ICdlcnJvcicsXHJcbiAgICAgIHN1bW1hcnk6ICdFcnJvcicsXHJcbiAgICAgIGRldGFpbDogJ0ZhaWxlZCB0byBwcm9jZXNzIGZpbGUgY29udGVudCdcclxuICAgIH0pO1xyXG4gICAgcmV0dXJuO1xyXG4gIH1cclxuXHJcbiAgY29uc3QgcmVxdWVzdEJvZHkgPSB7XHJcbiAgICBmaWxlTmFtZTogdGhpcy51cGxvYWRlZEZpbGVOYW1lLFxyXG4gICAgZmlsZUV4dGVuc2lvbjogdGhpcy5nZXRGaWxlRXh0ZW5zaW9uKHRoaXMudXBsb2FkZWRGaWxlTmFtZSksXHJcbiAgICBmaWxlQ29udGVudDogZmlsZUJhc2U2NCxcclxuICAgIG1hcHBpbmdzOiB0aGlzLmZvcm0udmFsdWUsXHJcbiAgICBoZWFkZXJzOiB0aGlzLmV4Y2VsSGVhZGVycyxcclxuICAgIGZpbGVTaXplOiB0aGlzLmZpbGVDb250ZW50IGluc3RhbmNlb2YgQXJyYXlCdWZmZXIgPyB0aGlzLmZpbGVDb250ZW50LmJ5dGVMZW5ndGggOiAwXHJcbiAgfTtcclxuXHJcbiAgdGhpcy5yZXN0U2VydmljZVxyXG4gICAgLnJlcXVlc3Q8YW55LCBhbnk+KFxyXG4gICAgICB7XHJcbiAgICAgICAgbWV0aG9kOiAnUE9TVCcsXHJcbiAgICAgICAgdXJsOiB0aGlzLmNvbmZpZy5hcGlVcmwsXHJcbiAgICAgICAgYm9keTogcmVxdWVzdEJvZHksXHJcbiAgICAgICAgaGVhZGVyczoge1xyXG4gICAgICAgICAgJ0NvbnRlbnQtVHlwZSc6ICdhcHBsaWNhdGlvbi9qc29uJ1xyXG4gICAgICAgIH1cclxuICAgICAgfSxcclxuICAgICAgeyBhcGlOYW1lOiB0aGlzLmNvbmZpZy5hcGlOYW1lIH1cclxuICAgIClcclxuICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSlcclxuICAgIC5zdWJzY3JpYmUoe1xyXG4gICAgICBuZXh0OiAocmVzcG9uc2UpID0+IHtcclxuICAgICAgICB0aGlzLmxvYWRpbmcgPSBmYWxzZTtcclxuICAgICAgICB0aGlzLm1lc3NhZ2VTZXJ2aWNlLmFkZCh7XHJcbiAgICAgICAgICBzZXZlcml0eTogJ3N1Y2Nlc3MnLFxyXG4gICAgICAgICAgc3VtbWFyeTogJ1N1Y2Nlc3MnLFxyXG4gICAgICAgICAgZGV0YWlsOiAnRmlsZSBpbXBvcnRlZCBzdWNjZXNzZnVsbHknXHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgdGhpcy5pbXBvcnRDb21wbGV0ZS5lbWl0KHJlc3BvbnNlKTtcclxuICAgICAgICB0aGlzLnJlZi5jbG9zZShyZXNwb25zZSk7XHJcbiAgICAgIH0sXHJcbiAgICAgIGVycm9yOiAoZXJyKSA9PiB7XHJcbiAgICAgICAgdGhpcy5sb2FkaW5nID0gZmFsc2U7XHJcbiAgICAgICAgY29uc29sZS5lcnJvcignSW1wb3J0IGVycm9yOicsIGVycik7XHJcbiAgICAgICAgdGhpcy5tZXNzYWdlU2VydmljZS5hZGQoe1xyXG4gICAgICAgICAgc2V2ZXJpdHk6ICdlcnJvcicsXHJcbiAgICAgICAgICBzdW1tYXJ5OiAnRXJyb3InLFxyXG4gICAgICAgICAgZGV0YWlsOiAnRmFpbGVkIHRvIGltcG9ydCBmaWxlJ1xyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIHRoaXMuaW1wb3J0RXJyb3IuZW1pdChlcnIpO1xyXG4gICAgICB9LFxyXG4gICAgfSk7XHJcbn1cclxuXHJcbi8vIFVwZGF0ZSBjbGVhckZpbGVVcGxvYWQgdG8gYWxzbyBjbGVhciBmaWxlIGNvbnRlbnRcclxucHJpdmF0ZSBjbGVhckZpbGVVcGxvYWQoZXZlbnQ6IGFueSkge1xyXG4gIGlmIChldmVudC5vcHRpb25zICYmIHR5cGVvZiBldmVudC5vcHRpb25zLmNsZWFyID09PSAnZnVuY3Rpb24nKSB7XHJcbiAgICBldmVudC5vcHRpb25zLmNsZWFyKCk7XHJcbiAgfVxyXG4gIHRoaXMudXBsb2FkZWRGaWxlTmFtZSA9IG51bGw7XHJcbiAgdGhpcy5maWxlQ29udGVudCA9IG51bGw7XHJcbn1cclxuXHJcbiAgcHJpdmF0ZSBpbml0aWFsaXplRm9ybSgpIHtcclxuICAgIGNvbnN0IGZvcm1Db25maWc6IGFueSA9IHt9O1xyXG5cclxuICAgIHRoaXMubWFwcGluZ0ZpZWxkcy5mb3JFYWNoKGZpZWxkID0+IHtcclxuICAgICAgaWYgKGZpZWxkLmtleSkge1xyXG4gICAgICAgIC8vIFNldCBkZWZhdWx0IHZhbHVlIHRvIGZpcnN0IGhlYWRlciBpZiBhdmFpbGFibGVcclxuICAgICAgICBmb3JtQ29uZmlnW2ZpZWxkLmtleSBhcyBzdHJpbmddID0gW3RoaXMuZXhjZWxIZWFkZXJzWzBdIHx8ICcnLCBWYWxpZGF0b3JzLnJlcXVpcmVkXTtcclxuXHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG5cclxuICAgIHRoaXMuZm9ybSA9IHRoaXMuZmIuZ3JvdXAoZm9ybUNvbmZpZyk7XHJcbiAgfVxyXG5cclxuXHJcblxyXG5cclxuXHJcbiAgb25DYW5jZWwoKSB7XHJcbiAgICBpZiAoIXRoaXMubG9hZGluZykge1xyXG4gICAgICB0aGlzLnJlZi5jbG9zZShmYWxzZSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBuZ09uRGVzdHJveSgpIHtcclxuICAgIHRoaXMuZGVzdHJveSQubmV4dCgpO1xyXG4gICAgdGhpcy5kZXN0cm95JC5jb21wbGV0ZSgpO1xyXG4gIH1cclxufVxyXG4iXX0=","/**\n * Generated bundle index. Do not edit.\n */\nexport * from './index';\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWxpdGUuZnJhbWV3b3JrLW5nLnVpLmNvcmUtZXhjZWwtaW1wb3J0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGlicy9uZy51aS5jb3JlL2V4Y2VsLWltcG9ydC9zcmMvZWxpdGUuZnJhbWV3b3JrLW5nLnVpLmNvcmUtZXhjZWwtaW1wb3J0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsY0FBYyxTQUFTLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEdlbmVyYXRlZCBidW5kbGUgaW5kZXguIERvIG5vdCBlZGl0LlxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vaW5kZXgnO1xuIl19"],"names":[],"mappings":"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,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,oBAAoB,EAAE,UAAU,EAAE,CAAC;AAC9H,YAAY,IAAI,EAAE,SAAS;AAC3B,YAAY,IAAI,EAAE,CAAC;AACnB,oBAAoB,QAAQ,EAAE,kBAAkB;AAChD,oBAAoB,UAAU,EAAE,IAAI;AACpC,oBAAoB,SAAS,EAAE,CAAC,cAAc,CAAC;AAC/C,oBAAoB,QAAQ,EAAE,CAAC;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE,CAAC;AACH,oBAAoB,OAAO,EAAE;AAC7B,wBAAwB,YAAY;AACpC,wBAAwB,mBAAmB;AAC3C,wBAAwB,WAAW;AACnC,wBAAwB,UAAU;AAClC,wBAAwB,aAAa;AACrC,wBAAwB,YAAY;AACpC,wBAAwB,gBAAgB;AACxC,wBAAwB,WAAW;AACnC,wBAAwB;AACxB,qBAAqB;AACrB,iBAAiB;AACjB,SAAS,CAAC,EAAE,cAAc,EAAE,MAAM,CAAC,EAAE,IAAI,EAAE,EAAE,CAAC,gBAAgB,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,CAAC,mBAAmB,EAAE,CAAC,EAAE,cAAc,EAAE,EAAE,MAAM,EAAE,CAAC;AAChI,gBAAgB,IAAI,EAAE;AACtB,aAAa,CAAC,EAAE,cAAc,EAAE,CAAC;AACjC,gBAAgB,IAAI,EAAE;AACtB,aAAa,CAAC,EAAE,WAAW,EAAE,CAAC;AAC9B,gBAAgB,IAAI,EAAE;AACtB,aAAa,CAAC,EAAE,EAAE,CAAC;;ACliBnB;AACA;AACA;;;;"}
|
|
@@ -2,8 +2,8 @@ import * as i0 from '@angular/core';
|
|
|
2
2
|
import { Component, NgModule } from '@angular/core';
|
|
3
3
|
import * as i1 from '@ngx-formly/core';
|
|
4
4
|
import { FieldWrapper, FormlyModule } from '@ngx-formly/core';
|
|
5
|
-
import * as i2 from '@
|
|
6
|
-
import {
|
|
5
|
+
import * as i2 from '@elite.framework/ng.core/pipes';
|
|
6
|
+
import { TranslatePipe } from '@elite.framework/ng.core/pipes';
|
|
7
7
|
import { CommonModule } from '@angular/common';
|
|
8
8
|
import { ReactiveFormsModule } from '@angular/forms';
|
|
9
9
|
|
|
@@ -131,8 +131,8 @@ function withFormlyFormField() {
|
|
|
131
131
|
class FormlyFormFieldModule {
|
|
132
132
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.8", ngImport: i0, type: FormlyFormFieldModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
133
133
|
static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.1.8", ngImport: i0, type: FormlyFormFieldModule, declarations: [FormlyWrapperFormField,
|
|
134
|
-
FormlyWrapperFormFieldNo], imports: [CommonModule, ReactiveFormsModule, i1.FormlyModule,
|
|
135
|
-
static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.1.8", ngImport: i0, type: FormlyFormFieldModule, imports: [CommonModule, ReactiveFormsModule, FormlyModule.forChild(withFormlyFormField())
|
|
134
|
+
FormlyWrapperFormFieldNo], imports: [CommonModule, ReactiveFormsModule, i1.FormlyModule, TranslatePipe], exports: [FormlyWrapperFormField] });
|
|
135
|
+
static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.1.8", ngImport: i0, type: FormlyFormFieldModule, imports: [CommonModule, ReactiveFormsModule, FormlyModule.forChild(withFormlyFormField())] });
|
|
136
136
|
}
|
|
137
137
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.8", ngImport: i0, type: FormlyFormFieldModule, decorators: [{
|
|
138
138
|
type: NgModule,
|
|
@@ -142,7 +142,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.8", ngImpor
|
|
|
142
142
|
FormlyWrapperFormFieldNo,
|
|
143
143
|
// FormlyFormFieldWrapperComponent,
|
|
144
144
|
],
|
|
145
|
-
imports: [CommonModule, ReactiveFormsModule, FormlyModule.forChild(withFormlyFormField()),
|
|
145
|
+
imports: [CommonModule, ReactiveFormsModule, FormlyModule.forChild(withFormlyFormField()), TranslatePipe],
|
|
146
146
|
exports: [FormlyWrapperFormField]
|
|
147
147
|
}]
|
|
148
148
|
}] });
|