@elite.framework/ng.ui.core 0.0.1
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/README.md +3 -0
- package/attachments/README.md +3 -0
- package/attachments/index.d.ts +38 -0
- package/base-crud/README.md +3 -0
- package/base-crud/index.d.ts +68 -0
- package/breadcrumb/README.md +3 -0
- package/breadcrumb/index.d.ts +17 -0
- package/checkbox/README.md +3 -0
- package/checkbox/index.d.ts +33 -0
- package/color-picker/README.md +3 -0
- package/color-picker/index.d.ts +16 -0
- package/column-settings-popover/README.md +3 -0
- package/column-settings-popover/index.d.ts +46 -0
- package/condition-editor/README.md +3 -0
- package/condition-editor/index.d.ts +80 -0
- package/custom-switch/README.md +3 -0
- package/custom-switch/index.d.ts +19 -0
- package/datepicker/README.md +3 -0
- package/datepicker/index.d.ts +23 -0
- package/deactivation-reason/README.md +3 -0
- package/deactivation-reason/index.d.ts +31 -0
- package/fesm2022/elite.framework-ng.ui.core-attachments.mjs +217 -0
- package/fesm2022/elite.framework-ng.ui.core-attachments.mjs.map +1 -0
- package/fesm2022/elite.framework-ng.ui.core-base-crud.mjs +312 -0
- package/fesm2022/elite.framework-ng.ui.core-base-crud.mjs.map +1 -0
- package/fesm2022/elite.framework-ng.ui.core-breadcrumb.mjs +144 -0
- package/fesm2022/elite.framework-ng.ui.core-breadcrumb.mjs.map +1 -0
- package/fesm2022/elite.framework-ng.ui.core-checkbox.mjs +130 -0
- package/fesm2022/elite.framework-ng.ui.core-checkbox.mjs.map +1 -0
- package/fesm2022/elite.framework-ng.ui.core-color-picker.mjs +88 -0
- package/fesm2022/elite.framework-ng.ui.core-color-picker.mjs.map +1 -0
- package/fesm2022/elite.framework-ng.ui.core-column-settings-popover.mjs +184 -0
- package/fesm2022/elite.framework-ng.ui.core-column-settings-popover.mjs.map +1 -0
- package/fesm2022/elite.framework-ng.ui.core-condition-editor.mjs +782 -0
- package/fesm2022/elite.framework-ng.ui.core-condition-editor.mjs.map +1 -0
- package/fesm2022/elite.framework-ng.ui.core-custom-switch.mjs +122 -0
- package/fesm2022/elite.framework-ng.ui.core-custom-switch.mjs.map +1 -0
- package/fesm2022/elite.framework-ng.ui.core-datepicker.mjs +206 -0
- package/fesm2022/elite.framework-ng.ui.core-datepicker.mjs.map +1 -0
- package/fesm2022/elite.framework-ng.ui.core-deactivation-reason.mjs +142 -0
- package/fesm2022/elite.framework-ng.ui.core-deactivation-reason.mjs.map +1 -0
- package/fesm2022/elite.framework-ng.ui.core-form-button.mjs +62 -0
- package/fesm2022/elite.framework-ng.ui.core-form-button.mjs.map +1 -0
- package/fesm2022/elite.framework-ng.ui.core-form-field.mjs +155 -0
- package/fesm2022/elite.framework-ng.ui.core-form-field.mjs.map +1 -0
- package/fesm2022/elite.framework-ng.ui.core-form-template.mjs +37 -0
- package/fesm2022/elite.framework-ng.ui.core-form-template.mjs.map +1 -0
- package/fesm2022/elite.framework-ng.ui.core-formly-avatar-image.mjs +112 -0
- package/fesm2022/elite.framework-ng.ui.core-formly-avatar-image.mjs.map +1 -0
- package/fesm2022/elite.framework-ng.ui.core-formly-avatar-label.mjs +90 -0
- package/fesm2022/elite.framework-ng.ui.core-formly-avatar-label.mjs.map +1 -0
- package/fesm2022/elite.framework-ng.ui.core-formly-button-selector.mjs +179 -0
- package/fesm2022/elite.framework-ng.ui.core-formly-button-selector.mjs.map +1 -0
- package/fesm2022/elite.framework-ng.ui.core-formly-button.mjs +74 -0
- package/fesm2022/elite.framework-ng.ui.core-formly-button.mjs.map +1 -0
- package/fesm2022/elite.framework-ng.ui.core-formly-presets.mjs +201 -0
- package/fesm2022/elite.framework-ng.ui.core-formly-presets.mjs.map +1 -0
- package/fesm2022/elite.framework-ng.ui.core-formly-split-button.mjs +62 -0
- package/fesm2022/elite.framework-ng.ui.core-formly-split-button.mjs.map +1 -0
- package/fesm2022/elite.framework-ng.ui.core-formly-ui.mjs +416 -0
- package/fesm2022/elite.framework-ng.ui.core-formly-ui.mjs.map +1 -0
- package/fesm2022/elite.framework-ng.ui.core-formly-username-with-domain.mjs +88 -0
- package/fesm2022/elite.framework-ng.ui.core-formly-username-with-domain.mjs.map +1 -0
- package/fesm2022/elite.framework-ng.ui.core-generic-autocomplete.mjs +175 -0
- package/fesm2022/elite.framework-ng.ui.core-generic-autocomplete.mjs.map +1 -0
- package/fesm2022/elite.framework-ng.ui.core-generic-button.mjs +145 -0
- package/fesm2022/elite.framework-ng.ui.core-generic-button.mjs.map +1 -0
- package/fesm2022/elite.framework-ng.ui.core-generic-card.mjs +219 -0
- package/fesm2022/elite.framework-ng.ui.core-generic-card.mjs.map +1 -0
- package/fesm2022/elite.framework-ng.ui.core-generic-crud-table.mjs +398 -0
- package/fesm2022/elite.framework-ng.ui.core-generic-crud-table.mjs.map +1 -0
- package/fesm2022/elite.framework-ng.ui.core-generic-errormessage.mjs +35 -0
- package/fesm2022/elite.framework-ng.ui.core-generic-errormessage.mjs.map +1 -0
- package/fesm2022/elite.framework-ng.ui.core-generic-formly-fields.mjs +65 -0
- package/fesm2022/elite.framework-ng.ui.core-generic-formly-fields.mjs.map +1 -0
- package/fesm2022/elite.framework-ng.ui.core-generic-loadingspinner.mjs +35 -0
- package/fesm2022/elite.framework-ng.ui.core-generic-loadingspinner.mjs.map +1 -0
- package/fesm2022/elite.framework-ng.ui.core-generic-search.mjs +98 -0
- package/fesm2022/elite.framework-ng.ui.core-generic-search.mjs.map +1 -0
- package/fesm2022/elite.framework-ng.ui.core-generic-selector.mjs +441 -0
- package/fesm2022/elite.framework-ng.ui.core-generic-selector.mjs.map +1 -0
- package/fesm2022/elite.framework-ng.ui.core-generic-table.mjs +226 -0
- package/fesm2022/elite.framework-ng.ui.core-generic-table.mjs.map +1 -0
- package/fesm2022/elite.framework-ng.ui.core-header-wrapper.mjs +31 -0
- package/fesm2022/elite.framework-ng.ui.core-header-wrapper.mjs.map +1 -0
- package/fesm2022/elite.framework-ng.ui.core-icon-picker.mjs +207 -0
- package/fesm2022/elite.framework-ng.ui.core-icon-picker.mjs.map +1 -0
- package/fesm2022/elite.framework-ng.ui.core-input-switch.mjs +106 -0
- package/fesm2022/elite.framework-ng.ui.core-input-switch.mjs.map +1 -0
- package/fesm2022/elite.framework-ng.ui.core-input-with-icon.mjs +67 -0
- package/fesm2022/elite.framework-ng.ui.core-input-with-icon.mjs.map +1 -0
- package/fesm2022/elite.framework-ng.ui.core-input.mjs +201 -0
- package/fesm2022/elite.framework-ng.ui.core-input.mjs.map +1 -0
- package/fesm2022/elite.framework-ng.ui.core-label-type.mjs +125 -0
- package/fesm2022/elite.framework-ng.ui.core-label-type.mjs.map +1 -0
- package/fesm2022/elite.framework-ng.ui.core-odata-query-builder.mjs +308 -0
- package/fesm2022/elite.framework-ng.ui.core-odata-query-builder.mjs.map +1 -0
- package/fesm2022/elite.framework-ng.ui.core-radio.mjs +118 -0
- package/fesm2022/elite.framework-ng.ui.core-radio.mjs.map +1 -0
- package/fesm2022/elite.framework-ng.ui.core-repeat.mjs +147 -0
- package/fesm2022/elite.framework-ng.ui.core-repeat.mjs.map +1 -0
- package/fesm2022/elite.framework-ng.ui.core-select.mjs +180 -0
- package/fesm2022/elite.framework-ng.ui.core-select.mjs.map +1 -0
- package/fesm2022/elite.framework-ng.ui.core-sidebar-cards.mjs +52 -0
- package/fesm2022/elite.framework-ng.ui.core-sidebar-cards.mjs.map +1 -0
- package/fesm2022/elite.framework-ng.ui.core-sidebar-toggles.mjs +53 -0
- package/fesm2022/elite.framework-ng.ui.core-sidebar-toggles.mjs.map +1 -0
- package/fesm2022/elite.framework-ng.ui.core-tabs.mjs +57 -0
- package/fesm2022/elite.framework-ng.ui.core-tabs.mjs.map +1 -0
- package/fesm2022/elite.framework-ng.ui.core-tag-type.mjs +204 -0
- package/fesm2022/elite.framework-ng.ui.core-tag-type.mjs.map +1 -0
- package/fesm2022/elite.framework-ng.ui.core-text-editor.mjs +56 -0
- package/fesm2022/elite.framework-ng.ui.core-text-editor.mjs.map +1 -0
- package/fesm2022/elite.framework-ng.ui.core-textarea.mjs +95 -0
- package/fesm2022/elite.framework-ng.ui.core-textarea.mjs.map +1 -0
- package/fesm2022/elite.framework-ng.ui.core-ui-button.mjs +101 -0
- package/fesm2022/elite.framework-ng.ui.core-ui-button.mjs.map +1 -0
- package/fesm2022/elite.framework-ng.ui.core-wrappers.mjs +186 -0
- package/fesm2022/elite.framework-ng.ui.core-wrappers.mjs.map +1 -0
- package/fesm2022/elite.framework-ng.ui.core.mjs +18 -0
- package/fesm2022/elite.framework-ng.ui.core.mjs.map +1 -0
- package/form-button/README.md +3 -0
- package/form-button/index.d.ts +17 -0
- package/form-field/README.md +3 -0
- package/form-field/index.d.ts +30 -0
- package/form-template/README.md +3 -0
- package/form-template/index.d.ts +16 -0
- package/formly-avatar-image/README.md +3 -0
- package/formly-avatar-image/index.d.ts +18 -0
- package/formly-avatar-label/README.md +3 -0
- package/formly-avatar-label/index.d.ts +36 -0
- package/formly-button/README.md +3 -0
- package/formly-button/index.d.ts +20 -0
- package/formly-button-selector/README.md +3 -0
- package/formly-button-selector/index.d.ts +35 -0
- package/formly-presets/README.md +3 -0
- package/formly-presets/index.d.ts +37 -0
- package/formly-split-button/README.md +3 -0
- package/formly-split-button/index.d.ts +23 -0
- package/formly-ui/README.md +3 -0
- package/formly-ui/index.d.ts +42 -0
- package/formly-username-with-domain/README.md +3 -0
- package/formly-username-with-domain/index.d.ts +19 -0
- package/generic-autocomplete/README.md +3 -0
- package/generic-autocomplete/index.d.ts +41 -0
- package/generic-button/README.md +3 -0
- package/generic-button/index.d.ts +42 -0
- package/generic-card/README.md +3 -0
- package/generic-card/index.d.ts +93 -0
- package/generic-crud-table/README.md +3 -0
- package/generic-crud-table/index.d.ts +129 -0
- package/generic-errormessage/README.md +3 -0
- package/generic-errormessage/index.d.ts +17 -0
- package/generic-formly-fields/README.md +3 -0
- package/generic-formly-fields/index.d.ts +26 -0
- package/generic-loadingspinner/README.md +3 -0
- package/generic-loadingspinner/index.d.ts +16 -0
- package/generic-search/README.md +3 -0
- package/generic-search/index.d.ts +36 -0
- package/generic-selector/README.md +3 -0
- package/generic-selector/index.d.ts +73 -0
- package/generic-table/README.md +3 -0
- package/generic-table/index.d.ts +66 -0
- package/header-wrapper/README.md +3 -0
- package/header-wrapper/index.d.ts +15 -0
- package/icon-picker/README.md +3 -0
- package/icon-picker/index.d.ts +30 -0
- package/index.d.ts +8 -0
- package/input/README.md +3 -0
- package/input/index.d.ts +42 -0
- package/input-switch/README.md +3 -0
- package/input-switch/index.d.ts +16 -0
- package/input-with-icon/README.md +3 -0
- package/input-with-icon/index.d.ts +17 -0
- package/label-type/README.md +3 -0
- package/label-type/index.d.ts +26 -0
- package/odata-query-builder/README.md +3 -0
- package/odata-query-builder/index.d.ts +87 -0
- package/package.json +219 -0
- package/radio/README.md +3 -0
- package/radio/index.d.ts +38 -0
- package/repeat/README.md +3 -0
- package/repeat/index.d.ts +24 -0
- package/select/README.md +3 -0
- package/select/index.d.ts +42 -0
- package/sidebar-cards/README.md +3 -0
- package/sidebar-cards/index.d.ts +25 -0
- package/sidebar-toggles/README.md +3 -0
- package/sidebar-toggles/index.d.ts +25 -0
- package/tabs/README.md +3 -0
- package/tabs/index.d.ts +17 -0
- package/tag-type/README.md +3 -0
- package/tag-type/index.d.ts +34 -0
- package/text-editor/README.md +3 -0
- package/text-editor/index.d.ts +16 -0
- package/textarea/README.md +3 -0
- package/textarea/index.d.ts +36 -0
- package/ui-button/README.md +3 -0
- package/ui-button/index.d.ts +33 -0
- package/wrappers/README.md +3 -0
- package/wrappers/index.d.ts +31 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"elite.framework-ng.ui.core-condition-editor.mjs","sources":["../tmp-esm2022/condition-editor/lib/condition-editor-module.js","../tmp-esm2022/condition-editor/lib/suggestions.js","../tmp-esm2022/condition-editor/lib/condition-editor-type.js","../tmp-esm2022/condition-editor/elite.framework-ng.ui.core-condition-editor.js"],"sourcesContent":["import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport * as i0 from \"@angular/core\";\nexport class ConditionEditorModule {\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: ConditionEditorModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });\n static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"14.0.0\", version: \"20.1.8\", ngImport: i0, type: ConditionEditorModule, imports: [CommonModule] });\n static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: ConditionEditorModule, imports: [CommonModule] });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: ConditionEditorModule, decorators: [{\n type: NgModule,\n args: [{\n imports: [CommonModule],\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZGl0aW9uLWVkaXRvci1tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL25nLnVpLmNvcmUvY29uZGl0aW9uLWVkaXRvci9zcmMvbGliL2NvbmRpdGlvbi1lZGl0b3ItbW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDOztBQUsvQyxNQUFNLE9BQU8scUJBQXFCO3VHQUFyQixxQkFBcUI7d0dBQXJCLHFCQUFxQixZQUZ0QixZQUFZO3dHQUVYLHFCQUFxQixZQUZ0QixZQUFZOzsyRkFFWCxxQkFBcUI7a0JBSGpDLFFBQVE7bUJBQUM7b0JBQ1IsT0FBTyxFQUFFLENBQUMsWUFBWSxDQUFDO2lCQUN4QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuXG5ATmdNb2R1bGUoe1xuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlXSxcbn0pXG5leHBvcnQgY2xhc3MgQ29uZGl0aW9uRWRpdG9yTW9kdWxlIHt9XG4iXX0=","export const suggestions = [\n {\n label: \"عدد دقائق التأخير\",\n value: \"AttendanceDelayMinutes\",\n kind: \"Field\",\n detail: \"عدد دقائق التأخير\",\n documentation: \"**AttendanceDelayMinutes**\\nعدد الدقائق التي تأخر بها الموظف عن بدء الورديّة.\"\n },\n {\n label: \"دقائق الانصراف المبكر\",\n value: \"EarlyLeaveMinutes\",\n kind: \"Field\",\n detail: \"دقائق الانصراف المبكر\",\n documentation: \"**EarlyLeaveMinutes**\\nعدد الدقائق التي سجل بها الموظف انسحابًا مبكرًا عن الورديّة.\"\n },\n {\n label: \"سعر الساعة\",\n value: \"HourlyRate\",\n kind: \"Field\",\n detail: \"سعر الساعة\",\n documentation: \"**HourlyRate**\\nتكلفة الساعة المستخرجة من الراتب الأساسي وساعات العمل المتوقعة.\"\n },\n {\n label: \"قيمة اليوم المتوقعة\",\n value: \"ScheduledDayValue\",\n kind: \"Field\",\n detail: \"قيمة اليوم المتوقعة\",\n documentation: \"**ScheduledDayValue**\\nقيمة اليوم المحسوبة بناءً على السعر بالساعة وساعات الورديّة المتوقعة.\"\n },\n {\n label: \"قيمة اليوم الفعلية\",\n value: \"ActualDayValue\",\n kind: \"Field\",\n detail: \"قيمة اليوم الفعلية\",\n documentation: \"**ActualDayValue**\\nقيمة اليوم المحسوبة بناءً على السعر بالساعة وساعات العمل الفعليّة.\"\n },\n {\n label: \"عدد أيام العمل\",\n value: \"WorkingDays\",\n kind: \"Field\",\n detail: \"عدد أيام العمل\",\n documentation: \"**WorkingDays**\\nعدد الأيام في دفتر الحضور.\"\n },\n {\n label: \"الراتب الأساسي\",\n value: \"BasicSalary\",\n kind: \"Field\",\n detail: \"بند الراتب الأساسي\",\n documentation: \"**BasicSalary**\\n بند الراتب الأساسي.\"\n },\n // Employee fields\n {\n label: \"رمز الموظف\",\n value: \"Employee.Code\",\n kind: \"Field\",\n detail: \"رمز الموظف\",\n documentation: \"**Employee.Code**\\nالرمز الفريد المعطى للموظف في النظام.\"\n },\n {\n label: \"الاسم الكامل\",\n value: \"Employee.FullName\",\n kind: \"Field\",\n detail: \"الاسم الكامل للموظف\",\n documentation: \"**Employee.FullName**\\nالاسم الأول واسم العائلة للموظف.\"\n },\n {\n label: \"نوع الموظف\",\n value: \"Employee.Type\",\n kind: \"Field\",\n detail: \"نوع الموظف\",\n documentation: \"**Employee.Type**\\nنوع الموظف (دوام كامل، مؤقت، الخ).\"\n },\n // Shift fields\n {\n label: \"اسم الورديّة\",\n value: \"Shift.Name\",\n kind: \"Field\",\n detail: \"اسم الورديّة\",\n documentation: \"**Shift.Name**\\nالاسم المعطى للورديّة (صباحية، مسائية).\"\n },\n {\n label: \"بداية الورديّة\",\n value: \"Shift.StartTime\",\n kind: \"Field\",\n detail: \"بداية الورديّة\",\n documentation: \"**Shift.StartTime**\\nوقت بدء الورديّة.\"\n },\n {\n label: \"نهاية الورديّة\",\n value: \"Shift.EndTime\",\n kind: \"Field\",\n detail: \"نهاية الورديّة\",\n documentation: \"**Shift.EndTime**\\nوقت نهاية الورديّة.\"\n },\n {\n label: \"رمز نوع الورديّة\",\n value: \"Shift.TypeKey\",\n kind: \"Field\",\n detail: \"رمز نوع الورديّة\",\n documentation: \"**Shift.TypeKey**\\nالمفتاح البرمجي لنوع الورديّة.\"\n },\n // AttendanceSheet fields\n {\n label: \"من تاريخ\",\n value: \"Sheet.DateFrom\",\n kind: \"Field\",\n detail: \"تاريخ بداية الدفتر\",\n documentation: \"**Sheet.DateFrom**\\nأول يوم في دفتر الحضور (اليوم الأول للشهر).\"\n },\n {\n label: \"إلى تاريخ\",\n value: \"Sheet.DateTo\",\n kind: \"Field\",\n detail: \"تاريخ نهاية الدفتر\",\n documentation: \"**Sheet.DateTo**\\nآخر يوم في دفتر الحضور (اليوم الأخير للشهر).\"\n },\n {\n label: \"عدد أيام الحضور\",\n value: \"Sheet.PresentDays\",\n kind: \"Field\",\n detail: \"عدد أيام الحضور\",\n documentation: \"**Sheet.PresentDays**\\nعدد الأيام التي سجل فيها الموظف دخول وخروج.\"\n },\n // AttendanceDay fields\n {\n label: \"تاريخ اليوم\",\n value: \"Day.Date\",\n kind: \"Field\",\n detail: \"تاريخ يوم الحضور\",\n documentation: \"**Day.Date**\\nالتاريخ الفعلي ليوم الحضور.\"\n },\n {\n label: \"تسجيل دخول\",\n value: \"Day.SignIn\",\n kind: \"Field\",\n detail: \"وقت تسجيل دخول الموظف\",\n documentation: \"**Day.SignIn**\\nالطابع الزمني لتسجيل دخول الموظف.\"\n },\n {\n label: \"تسجيل خروج\",\n value: \"Day.SignOut\",\n kind: \"Field\",\n detail: \"وقت تسجيل خروج الموظف\",\n documentation: \"**Day.SignOut**\\nالطابع الزمني لتسجيل خروج الموظف.\"\n },\n // LeavePolicy fields\n {\n label: \"اسم سياسة الإجازة\",\n value: \"LeavePolicy.Name\",\n kind: \"Field\",\n detail: \"اسم سياسة الإجازة\",\n documentation: \"**LeavePolicy.Name**\\nالاسم المعطى لسياسة الإجازة.\"\n },\n {\n label: \"رمز الحالة\",\n value: \"LeavePolicy.StatusKey\",\n kind: \"Field\",\n detail: \"رمز حالة السياسة\",\n documentation: \"**LeavePolicy.StatusKey**\\nالمفتاح البرمجي لحالة سياسة الإجازة.\"\n },\n {\n label: \"حالة السياسة\",\n value: \"LeavePolicy.Status\",\n kind: \"Field\",\n detail: \"حالة السياسة\",\n documentation: \"**LeavePolicy.Status**\\nالوصف الكامل لحالة سياسة الإجازة.\"\n },\n // Leave fields\n {\n label: \"بداية الإجازة\",\n value: \"Leave.DateStart\",\n kind: \"Field\",\n detail: \"بداية الإجازة\",\n documentation: \"**Leave.DateStart**\\nاليوم الأول للإجازة.\"\n },\n {\n label: \"نهاية الإجازة\",\n value: \"Leave.DateEnd\",\n kind: \"Field\",\n detail: \"نهاية الإجازة\",\n documentation: \"**Leave.DateEnd**\\nاليوم الأخير للإجازة.\"\n },\n // SalaryTemplate fields\n // {\n // label: \"بنود الأرباح\",\n // value: \"template.Earnings\",\n // kind: \"Field\",\n // detail: \"قائمة بنود الأرباح\",\n // documentation: \"**SalaryTemplate.Earnings**\\nقائمة العناصر التي تمثل مستحقات (أرباح) القالب.\"\n // },\n // {\n // label: \"بنود الاستقطاعات\",\n // value: \"template.Deductions\",\n // kind: \"Field\",\n // detail: \"قائمة بنود الاستقطاعات\",\n // documentation: \"**SalaryTemplate.Deductions**\\nقائمة العناصر التي تمثل استقطاعات القالب.\"\n // },\n // // SalaryTemplateItem fields\n // {\n // label: \"المبلغ الثابت للبند\",\n // value: \"item.Amount\",\n // kind: \"Field\",\n // detail: \"المبلغ الثابت للبند\",\n // documentation: \"**SalaryTemplateItem.Amount**\\nالقيمة الثابتة المخصصة لهذا البند.\"\n // },\n // {\n // label: \"صيغة البند\",\n // value: \"item.Formula\",\n // kind: \"Field\",\n // detail: \"الصيغة الحسابية للبند\",\n // documentation: \"**SalaryTemplateItem.Formula**\\nالصيغة البرمجية لتعريف قيمة البند عند SalaryValueType = Formula.\"\n // },\n { label: '(Leave) Total Leaves Taken', value: 'GetLeaveTaken(leaveId)', detail: 'إجمالي الإجازات المأخوذة' },\n { label: '(Leave) Total Leaves Taken Before', value: 'GetLeaveTakenBefore(leaveId)', detail: 'إجمالي الإجازات المأخوذة قبل' },\n { label: '(Leave) Total Leaves After', value: 'GetLeaveTakenAfter(leaveId)', detail: 'إجمالي الإجازات المأخوذة بعد' },\n { label: '(Leave) Leaves Credit Before', value: 'GetLeaveCreditBefore(leaveId)', detail: 'رصيد الإجازات قبل' },\n { label: '(Leave) Leaves Credit After', value: 'GetLeaveCreditAfter(leaveId)', detail: 'رصيد الإجازات بعد' },\n { label: 'عدد مرات تحقق القاعدة', value: 'GetFlagCount(ruleId)', detail: 'عدد مرات تحقق القاعدة خلال الفترة' },\n { label: 'إجمالي قيمة القاعدة', value: 'GetFlagValue(ruleId)', detail: 'القيمة الإجمالية للقاعدة' },\n { label: 'أكبر من', value: '>', detail: 'القيمة الأولى أكبر من الثانية' },\n { label: 'أكبر من أو يساوي', value: '>=', detail: 'القيمة الأولى أكبر من أو تساوي الثانية' },\n { label: 'أصغر من', value: '<', detail: 'القيمة الأولى أصغر من الثانية' },\n { label: 'أصغر من أو يساوي', value: '<=', detail: 'القيمة الأولى أصغر من أو تساوي الثانية' },\n { label: 'يساوي', value: '==', detail: 'القيمتان متساويتان' },\n { label: 'لا يساوي', value: '!=', detail: 'القيمتان غير متساويتان' },\n { label: 'و (AND)', value: '&&', detail: 'تتحقق إذا كان الشرطان صحيحين' },\n { label: 'أو (OR)', value: '||', detail: 'تتحقق إذا كان أحد الشرطين صحيحاً' },\n { label: 'صحيح', value: 'true', detail: 'القيمة صحيحة' },\n { label: 'خطأ', value: 'false', detail: 'القيمة خاطئة' }\n];\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3VnZ2VzdGlvbnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL25nLnVpLmNvcmUvY29uZGl0aW9uLWVkaXRvci9zcmMvbGliL3N1Z2dlc3Rpb25zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQVVBLE1BQU0sQ0FBQyxNQUFNLFdBQVcsR0FBaUI7SUFDdkM7UUFDRSxLQUFLLEVBQUUsbUJBQW1CO1FBQzFCLEtBQUssRUFBRSx3QkFBd0I7UUFDL0IsSUFBSSxFQUFFLE9BQU87UUFDYixNQUFNLEVBQUUsbUJBQW1CO1FBQzNCLGFBQWEsRUFBRSwrRUFBK0U7S0FDL0Y7SUFDRDtRQUNFLEtBQUssRUFBRSx1QkFBdUI7UUFDOUIsS0FBSyxFQUFFLG1CQUFtQjtRQUMxQixJQUFJLEVBQUUsT0FBTztRQUNiLE1BQU0sRUFBRSx1QkFBdUI7UUFDL0IsYUFBYSxFQUFFLHFGQUFxRjtLQUNyRztJQUNEO1FBQ0UsS0FBSyxFQUFFLFlBQVk7UUFDbkIsS0FBSyxFQUFFLFlBQVk7UUFDbkIsSUFBSSxFQUFFLE9BQU87UUFDYixNQUFNLEVBQUUsWUFBWTtRQUNwQixhQUFhLEVBQUUsaUZBQWlGO0tBQ2pHO0lBQ0Q7UUFDRSxLQUFLLEVBQUUscUJBQXFCO1FBQzVCLEtBQUssRUFBRSxtQkFBbUI7UUFDMUIsSUFBSSxFQUFFLE9BQU87UUFDYixNQUFNLEVBQUUscUJBQXFCO1FBQzdCLGFBQWEsRUFBRSw4RkFBOEY7S0FDOUc7SUFDRDtRQUNFLEtBQUssRUFBRSxvQkFBb0I7UUFDM0IsS0FBSyxFQUFFLGdCQUFnQjtRQUN2QixJQUFJLEVBQUUsT0FBTztRQUNiLE1BQU0sRUFBRSxvQkFBb0I7UUFDNUIsYUFBYSxFQUFFLHdGQUF3RjtLQUN4RztJQUNEO1FBQ0UsS0FBSyxFQUFFLGdCQUFnQjtRQUN2QixLQUFLLEVBQUUsYUFBYTtRQUNwQixJQUFJLEVBQUUsT0FBTztRQUNiLE1BQU0sRUFBRSxnQkFBZ0I7UUFDeEIsYUFB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LE1BQU0sRUFBRSxvQkFBb0IsRUFBRTtJQUM3RCxFQUFFLEtBQUssRUFBRSxVQUFVLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUUsd0JBQXdCLEVBQUU7SUFDcEUsRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFLDhCQUE4QixFQUFFO0lBQ3pFLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxrQ0FBa0MsRUFBRTtJQUM3RSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsY0FBYyxFQUFFO0lBQ3hELEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFFLE1BQU0sRUFBRSxjQUFjLEVBQUU7Q0FDekQsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBpbnRlcmZhY2UgU3VnZ2VzdGlvbiB7XHJcbiAgaWQ/OiBudW1iZXI7XHJcbiAgbmFtZT86IHN0cmluZztcclxuICBsYWJlbDogc3RyaW5nO1xyXG4gIHZhbHVlOiBzdHJpbmc7XHJcbiAgZGV0YWlsPzogc3RyaW5nO1xyXG4gICBkb2N1bWVudGF0aW9uPzogc3RyaW5nO1xyXG4gIGtpbmQ/OiBzdHJpbmc7XHJcbiAgY2F0ZWdvcnk/OiBzdHJpbmc7XHJcbn1cclxuZXhwb3J0IGNvbnN0IHN1Z2dlc3Rpb25zOiBTdWdnZXN0aW9uW10gPSBbXHJcbiAge1xyXG4gICAgbGFiZWw6IFwi2LnYr9ivINiv2YLYp9im2YIg2KfZhNiq2KPYrtmK2LFcIixcclxuICAgIHZhbHVlOiBcIkF0dGVuZGFuY2VEZWxheU1pbnV0ZXNcIixcclxuICAgIGtpbmQ6IFwiRmllbGRcIixcclxuICAgIGRldGFpbDogXCLYudiv2K8g2K/Zgtin2KbZgiDYp9mE2KrYo9iu2YrYsVwiLFxyXG4gICAgZG9jdW1lbnRhdGlvbjogXCIqKkF0dGVuZGFuY2VEZWxheU1pbnV0ZXMqKlxcbti52K/YryDYp9mE2K/Zgtin2KbZgiDYp9mE2KrZiiDYqtij2K7YsSDYqNmH2Kcg2KfZhNmF2YjYuNmBINi52YYg2KjYr9ihINin2YTZiNix2K/ZitmR2KkuXCJcclxuICB9LFxyXG4gIHtcclxuICAgIGxhYmVsOiBcItiv2YLYp9im2YIg2KfZhNin2YbYtdix2KfZgSDYp9mE2YXYqNmD2LFcIixcclxuICAgIHZhbHVlOiBcIkVhcmx5TGVhdmVNaW51dGVzXCIsXHJcbiAgICBraW5kOiBcIkZpZWxkXCIsXHJcbiAgICBkZXRhaWw6IFwi2K/Zgtin2KbZgiDYp9mE2KfZhti12LHYp9mBINin2YTZhdio2YPYsVwiLFxyXG4gICAgZG9jdW1lbnRhdGlvbjogXCIqKkVhcmx5TGVhdmVNaW51dGVzKipcXG7Yudiv2K8g2KfZhNiv2YLYp9im2YIg2KfZhNiq2Yog2LPYrNmEINio2YfYpyDYp9mE2YXZiNi42YEg2KfZhtiz2K3Yp9io2YvYpyDZhdio2YPYsdmL2Kcg2LnZhiDYp9mE2YjYsdiv2YrZkdipLlwiXHJcbiAgfSxcclxuICB7XHJcbiAgICBsYWJlbDogXCLYs9i52LEg2KfZhNiz2KfYudipXCIsXHJcbiAgICB2YWx1ZTogXCJIb3VybHlSYXRlXCIsXHJcbiAgICBraW5kOiBcIkZpZWxkXCIsXHJcbiAgICBkZXRhaWw6IFwi2LPYudixINin2YTYs9in2LnYqVwiLFxyXG4gICAgZG9jdW1lbnRhdGlvbjogXCIqKkhvdXJseVJhdGUqKlxcbtiq2YPZhNmB2Kkg2KfZhNiz2KfYudipINin2YTZhdiz2KrYrtix2KzYqSDZhdmGINin2YTYsdin2KrYqCDYp9mE2KPYs9in2LPZiiDZiNiz2KfYudin2Kog2KfZhNi52YXZhCDYp9mE2YXYqtmI2YLYudipLlwiXHJcbiAgfSxcclxuICB7XHJcbiAgICBsYWJlbDogXCLZgtmK2YXYqSDYp9mE2YrZiNmFINin2YTZhdiq2YjZgti52KlcIixcclxuICAgIHZhbHVlOiBcIlNjaGVkdWxlZERheVZhbHVlXCIsXHJcbiAgICBraW5kOiBcIkZpZWxkXCIsXHJcbiAgICBkZXRhaWw6IFwi2YLZitmF2Kkg2KfZhNmK2YjZhSDYp9mE2YXYqtmI2YLYudipXCIsXHJcbiAgICBkb2N1bWVudGF0aW9uOiBcIioqU2NoZWR1bGVkRGF5VmFsdWUqKlxcbtmC2YrZhdipINin2YTZitmI2YUg2KfZhNmF2K3Ys9mI2KjYqSDYqNmG2KfYodmLINi52YTZiSDYp9mE2LPYudixINio2KfZhNiz2KfYudipINmI2LPYp9i52KfYqiDYp9mE2YjYsdiv2YrZkdipINin2YTZhdiq2YjZgti52KkuXCJcclxuICB9LFxyXG4gIHtcclxuICAgIGxhYmVsOiBcItmC2YrZhdipINin2YTZitmI2YUg2KfZhNmB2LnZhNmK2KlcIixcclxuICAgIHZhbHVlOiBcIkFjdHVhbERheVZhbHVlXCIsXHJcbiAgICBraW5kOiBcIkZpZWxkXCIsXHJcbiAgICBkZXRhaWw6IFwi2YLZitmF2Kkg2KfZhNmK2YjZhSDYp9mE2YHYudmE2YrYqVwiLFxyXG4gICAgZG9jdW1lbnRhdGlvbjogXCIqKkFjdHVhbERheVZhbHVlKipcXG7ZgtmK2YXYqSDYp9mE2YrZiNmFINin2YTZhdit2LPZiNio2Kkg2KjZhtin2KHZiyDYudmE2Ykg2KfZhNiz2LnYsSDYqNin2YTYs9in2LnYqSDZiNiz2KfYudin2Kog2KfZhNi52YXZhCDYp9mE2YHYudmE2YrZkdipLlwiXHJcbiAgfSxcclxuICB7XHJcbiAgICBsYWJlbDogXCLYudiv2K8g2KPZitin2YUg2KfZhNi52YXZhFwiLFxyXG4gICAgdmFsdWU6IFwiV29ya2luZ0RheXNcIixcclxuICAgIGtpbmQ6IFwiRmllbGRcIixcclxuICAgIGRldGFpbDogXCLYudiv2K8g2KPZitin2YUg2KfZhNi52YXZhFwiLFxyXG4gICAgZG9jdW1lbnRhdGlvbjogXCIqKldvcmtpbmdEYXlzKipcXG7Yudiv2K8g2KfZhNij2YrYp9mFINmB2Yog2K/Zgdiq2LEg2KfZhNit2LbZiNixLlwiXHJcbiAgfSxcclxuIHtcclxuICAgIGxhYmVsOiBcItin2YTYsdin2KrYqCDYp9mE2KPYs9in2LPZilwiLFxyXG4gICAgdmFsdWU6IFwiQmFzaWNTYWxhcnlcIixcclxuICAgIGtpbmQ6IFwiRmllbGRcIixcclxuICAgIGRldGFpbDogXCLYqNmG2K8g2KfZhNix2KfYqtioINin2YTYo9iz2KfYs9mKXCIsXHJcbiAgICBkb2N1bWVudGF0aW9uOiBcIioqQmFzaWNTYWxhcnkqKlxcbiDYqNmG2K8g2KfZhNix2KfYqtioINin2YTYo9iz2KfYs9mKLlwiXHJcbiAgfSxcclxuICAvLyBFbXBsb3llZSBmaWVsZHNcclxuICB7XHJcbiAgICBsYWJlbDogXCLYsdmF2LIg2KfZhNmF2YjYuNmBXCIsXHJcbiAgICB2YWx1ZTogXCJFbXBsb3llZS5Db2RlXCIsXHJcbiAgICBraW5kOiBcIkZpZWxkXCIsXHJcbiAgICBkZXRhaWw6IFwi2LHZhdiyINin2YTZhdmI2LjZgVwiLFxyXG4gICAgZG9jdW1lbnRhdGlvbjogXCIqKkVtcGxveWVlLkNvZGUqKlxcbtin2YTYsdmF2LIg2KfZhNmB2LHZitivINin2YTZhdi52LfZiSDZhNmE2YXZiNi42YEg2YHZiiDYp9mE2YbYuNin2YUuXCJcclxuICB9LFxyXG4gIHtcclxuICAgIGxhYmVsOiBcItin2YTYp9iz2YUg2KfZhNmD2KfZhdmEXCIsXHJcbiAgICB2YWx1ZTogXCJFbXBsb3llZS5GdWxsTmFtZVwiLFxyXG4gICAga2luZDogXCJGaWVsZFwiLFxyXG4gICAgZGV0YWlsOiBcItin2YTYp9iz2YUg2KfZhNmD2KfZhdmEINmE2YTZhdmI2LjZgVwiLFxyXG4gICAgZG9jdW1lbnRhdGlvbjogXCIqKkVtcGxveWVlLkZ1bGxOYW1lKipcXG7Yp9mE2KfYs9mFINin2YTYo9mI2YQg2YjYp9iz2YUg2KfZhNi52KfYptmE2Kkg2YTZhNmF2YjYuNmBLlwiXHJcbiAgfSxcclxuICB7XHJcbiAgICBsYWJlbDogXCLZhtmI2Lkg2KfZhNmF2YjYuNmBXCIsXHJcbiAgICB2YWx1ZTogXCJFbXBsb3llZS5UeXBlXCIsXHJcbiAgICBraW5kOiBcIkZpZWxkXCIsXHJcbiAgICBkZXRhaWw6IFwi2YbZiNi5INin2YTZhdmI2LjZgVwiLFxyXG4gICAgZG9jdW1lbnRhdGlvbjogXCIqKkVtcGxveWVlLlR5cGUqKlxcbtmG2YjYuSDYp9mE2YXZiNi42YEgKNiv2YjYp9mFINmD2KfZhdmE2Iwg2YXYpNmC2KrYjCDYp9mE2K4pLlwiXHJcbiAgfSxcclxuXHJcbiAgLy8gU2hpZnQgZmllbGRzXHJcbiAge1xyXG4gICAgbGFiZWw6IFwi2KfYs9mFINin2YTZiNix2K/ZitmR2KlcIixcclxuICAgIHZhbHVlOiBcIlNoaWZ0Lk5hbWVcIixcclxuICAgIGtpbmQ6IFwiRmllbGRcIixcclxuICAgIGRldGFpbDogXCLYp9iz2YUg2KfZhNmI2LHYr9mK2ZHYqVwiLFxyXG4gICAgZG9jdW1lbnRhdGlvbjogXCIqKlNoaWZ0Lk5hbWUqKlxcbtin2YTYp9iz2YUg2KfZhNmF2LnYt9mJINmE2YTZiNix2K/ZitmR2KkgKNi12KjYp9it2YrYqdiMINmF2LPYp9im2YrYqSkuXCJcclxuICB9LFxyXG4gIHtcclxuICAgIGxhYmVsOiBcItio2K/Yp9mK2Kkg2KfZhNmI2LHYr9mK2ZHYqVwiLFxyXG4gICAgdmFsdWU6IFwiU2hpZnQuU3RhcnRUaW1lXCIsXHJcbiAgICBraW5kOiBcIkZpZWxkXCIsXHJcbiAgICBkZXRhaWw6IFwi2KjYr9in2YrYqSDYp9mE2YjYsdiv2YrZkdipXCIsXHJcbiAgICBkb2N1bWVudGF0aW9uOiBcIioqU2hpZnQuU3RhcnRUaW1lKipcXG7ZiNmC2Kog2KjYr9ihINin2YTZiNix2K/ZitmR2KkuXCJcclxuICB9LFxyXG4gIHtcclxuICAgIGxhYmVsOiBcItmG2YfYp9mK2Kkg2KfZhNmI2LHYr9mK2ZHYqVwiLFxyXG4gICAgdmFsdWU6IFwiU2hpZnQuRW5kVGltZVwiLFxyXG4gICAga2luZDogXCJGaWVsZFwiLFxyXG4gICAgZGV0YWlsOiBcItmG2YfYp9mK2Kkg2KfZhNmI2LHYr9mK2ZHYqVwiLFxyXG4gICAgZG9jdW1lbnRhdGlvbjogXCIqKlNoaWZ0LkVuZFRpbWUqKlxcbtmI2YLYqiDZhtmH2KfZitipINin2YTZiNix2K/ZitmR2KkuXCJcclxuICB9LFxyXG4gIHtcclxuICAgIGxhYmVsOiBcItix2YXYsiDZhtmI2Lkg2KfZhNmI2LHYr9mK2ZHYqVwiLFxyXG4gICAgdmFsdWU6IFwiU2hpZnQuVHlwZUtleVwiLFxyXG4gICAga2luZDogXCJGaWVsZFwiLFxyXG4gICAgZGV0YWlsOiBcItix2YXYsiDZhtmI2Lkg2KfZhNmI2LHYr9mK2ZHYqVwiLFxyXG4gICAgZG9jdW1lbnRhdGlvbjogXCIqKlNoaWZ0LlR5cGVLZXkqKlxcbtin2YTZhdmB2KrYp9itINin2YTYqNix2YXYrNmKINmE2YbZiNi5INin2YTZiNix2K/ZitmR2KkuXCJcclxuICB9LFxyXG5cclxuICAvLyBBdHRlbmRhbmNlU2hlZXQgZmllbGRzXHJcbiAge1xyXG4gICAgbGFiZWw6IFwi2YXZhiDYqtin2LHZitiuXCIsXHJcbiAgICB2YWx1ZTogXCJTaGVldC5EYXRlRnJvbVwiLFxyXG4gICAga2luZDogXCJGaWVsZFwiLFxyXG4gICAgZGV0YWlsOiBcItiq2KfYsdmK2K4g2KjYr9in2YrYqSDYp9mE2K/Zgdiq2LFcIixcclxuICAgIGRvY3VtZW50YXRpb246IFwiKipTaGVldC5EYXRlRnJvbSoqXFxu2KPZiNmEINmK2YjZhSDZgdmKINiv2YHYqtixINin2YTYrdi22YjYsSAo2KfZhNmK2YjZhSDYp9mE2KPZiNmEINmE2YTYtNmH2LEpLlwiXHJcbiAgfSxcclxuICB7XHJcbiAgICBsYWJlbDogXCLYpdmE2Ykg2KrYp9ix2YrYrlwiLFxyXG4gICAgdmFsdWU6IFwiU2hlZXQuRGF0ZVRvXCIsXHJcbiAgICBraW5kOiBcIkZpZWxkXCIsXHJcbiAgICBkZXRhaWw6IFwi2KrYp9ix2YrYriDZhtmH2KfZitipINin2YTYr9mB2KrYsVwiLFxyXG4gICAgZG9jdW1lbnRhdGlvbjogXCIqKlNoZWV0LkRhdGVUbyoqXFxu2KLYrtixINmK2YjZhSDZgdmKINiv2YHYqtixINin2YTYrdi22YjYsSAo2KfZhNmK2YjZhSDYp9mE2KPYrtmK2LEg2YTZhNi02YfYsSkuXCJcclxuICB9LFxyXG4gIHtcclxuICAgIGxhYmVsOiBcIti52K/YryDYo9mK2KfZhSDYp9mE2K3YttmI2LFcIixcclxuICAgIHZhbHVlOiBcIlNoZWV0LlByZXNlbnREYXlzXCIsXHJcbiAgICBraW5kOiBcIkZpZWxkXCIsXHJcbiAgICBkZXRhaWw6IFwi2LnYr9ivINij2YrYp9mFINin2YTYrdi22YjYsVwiLFxyXG4gICAgZG9jdW1lbnRhdGlvbjogXCIqKlNoZWV0LlByZXNlbnREYXlzKipcXG7Yudiv2K8g2KfZhNij2YrYp9mFINin2YTYqtmKINiz2KzZhCDZgdmK2YfYpyDYp9mE2YXZiNi42YEg2K/YrtmI2YQg2YjYrtix2YjYrC5cIlxyXG4gIH0sXHJcblxyXG4gIC8vIEF0dGVuZGFuY2VEYXkgZmllbGRzXHJcbiAge1xyXG4gICAgbGFiZWw6IFwi2KrYp9ix2YrYriDYp9mE2YrZiNmFXCIsXHJcbiAgICB2YWx1ZTogXCJEYXkuRGF0ZVwiLFxyXG4gICAga2luZDogXCJGaWVsZFwiLFxyXG4gICAgZGV0YWlsOiBcItiq2KfYsdmK2K4g2YrZiNmFINin2YTYrdi22YjYsVwiLFxyXG4gICAgZG9jdW1lbnRhdGlvbjogXCIqKkRheS5EYXRlKipcXG7Yp9mE2KrYp9ix2YrYriDYp9mE2YHYudmE2Yog2YTZitmI2YUg2KfZhNit2LbZiNixLlwiXHJcbiAgfSxcclxuICB7XHJcbiAgICBsYWJlbDogXCLYqtiz2KzZitmEINiv2K7ZiNmEXCIsXHJcbiAgICB2YWx1ZTogXCJEYXkuU2lnbkluXCIsXHJcbiAgICBraW5kOiBcIkZpZWxkXCIsXHJcbiAgICBkZXRhaWw6IFwi2YjZgtiqINiq2LPYrNmK2YQg2K/YrtmI2YQg2KfZhNmF2YjYuNmBXCIsXHJcbiAgICBkb2N1bWVudGF0aW9uOiBcIioqRGF5LlNpZ25JbioqXFxu2KfZhNi32KfYqNi5INin2YTYstmF2YbZiiDZhNiq2LPYrNmK2YQg2K/YrtmI2YQg2KfZhNmF2YjYuNmBLlwiXHJcbiAgfSxcclxuICB7XHJcbiAgICBsYWJlbDogXCLYqtiz2KzZitmEINiu2LHZiNisXCIsXHJcbiAgICB2YWx1ZTogXCJEYXkuU2lnbk91dFwiLFxyXG4gICAga2luZDogXCJGaWVsZFwiLFxyXG4gICAgZGV0YWlsOiBcItmI2YLYqiDYqtiz2KzZitmEINiu2LHZiNisINin2YTZhdmI2LjZgVwiLFxyXG4gICAgZG9jdW1lbnRhdGlvbjogXCIqKkRheS5TaWduT3V0KipcXG7Yp9mE2LfYp9io2Lkg2KfZhNiy2YXZhtmKINmE2KrYs9is2YrZhCDYrtix2YjYrCDYp9mE2YXZiNi42YEuXCJcclxuICB9LFxyXG5cclxuICAvLyBMZWF2ZVBvbGljeSBmaWVsZHNcclxuICB7XHJcbiAgICBsYWJlbDogXCLYp9iz2YUg2LPZitin2LPYqSDYp9mE2KXYrNin2LLYqVwiLFxyXG4gICAgdmFsdWU6IFwiTGVhdmVQb2xpY3kuTmFtZVwiLFxyXG4gICAga2luZDogXCJGaWVsZFwiLFxyXG4gICAgZGV0YWlsOiBcItin2LPZhSDYs9mK2KfYs9ipINin2YTYpdis2KfYstipXCIsXHJcbiAgICBkb2N1bWVudGF0aW9uOiBcIioqTGVhdmVQb2xpY3kuTmFtZSoqXFxu2KfZhNin2LPZhSDYp9mE2YXYudi32Ykg2YTYs9mK2KfYs9ipINin2YTYpdis2KfYstipLlwiXHJcbiAgfSxcclxuICB7XHJcbiAgICBsYWJlbDogXCLYsdmF2LIg2KfZhNit2KfZhNipXCIsXHJcbiAgICB2YWx1ZTogXCJMZWF2ZVBvbGljeS5TdGF0dXNLZXlcIixcclxuICAgIGtpbmQ6IFwiRmllbGRcIixcclxuICAgIGRldGFpbDogXCLYsdmF2LIg2K3Yp9mE2Kkg2KfZhNiz2YrYp9iz2KlcIixcclxuICAgIGRvY3VtZW50YXRpb246IFwiKipMZWF2ZVBvbGljeS5TdGF0dXNLZXkqKlxcbtin2YTZhdmB2KrYp9itINin2YTYqNix2YXYrNmKINmE2K3Yp9mE2Kkg2LPZitin2LPYqSDYp9mE2KXYrNin2LLYqS5cIlxyXG4gIH0sXHJcbiAge1xyXG4gICAgbGFiZWw6IFwi2K3Yp9mE2Kkg2KfZhNiz2YrYp9iz2KlcIixcclxuICAgIHZhbHVlOiBcIkxlYXZlUG9saWN5LlN0YXR1c1wiLFxyXG4gICAga2luZDogXCJGaWVsZFwiLFxyXG4gICAgZGV0YWlsOiBcItit2KfZhNipINin2YTYs9mK2KfYs9ipXCIsXHJcbiAgICBkb2N1bWVudGF0aW9uOiBcIioqTGVhdmVQb2xpY3kuU3RhdHVzKipcXG7Yp9mE2YjYtdmBINin2YTZg9in2YXZhCDZhNit2KfZhNipINiz2YrYp9iz2Kkg2KfZhNil2KzYp9iy2KkuXCJcclxuICB9LFxyXG5cclxuICAvLyBMZWF2ZSBmaWVsZHNcclxuICB7XHJcbiAgICBsYWJlbDogXCLYqNiv2KfZitipINin2YTYpdis2KfYstipXCIsXHJcbiAgICB2YWx1ZTogXCJMZWF2ZS5EYXRlU3RhcnRcIixcclxuICAgIGtpbmQ6IFwiRmllbGRcIixcclxuICAgIGRldGFpbDogXCLYqNiv2KfZitipINin2YTYpdis2KfYstipXCIsXHJcbiAgICBkb2N1bWVudGF0aW9uOiBcIioqTGVhdmUuRGF0ZVN0YXJ0KipcXG7Yp9mE2YrZiNmFINin2YTYo9mI2YQg2YTZhNil2KzYp9iy2KkuXCJcclxuICB9LFxyXG4gIHtcclxuICAgIGxhYmVsOiBcItmG2YfYp9mK2Kkg2KfZhNil2KzYp9iy2KlcIixcclxuICAgIHZhbHVlOiBcIkxlYXZlLkRhdGVFbmRcIixcclxuICAgIGtpbmQ6IFwiRmllbGRcIixcclxuICAgIGRldGFpbDogXCLZhtmH2KfZitipINin2YTYpdis2KfYstipXCIsXHJcbiAgICBkb2N1bWVudGF0aW9uOiBcIioqTGVhdmUuRGF0ZUVuZCoqXFxu2KfZhNmK2YjZhSDYp9mE2KPYrtmK2LEg2YTZhNil2KzYp9iy2KkuXCJcclxuICB9LFxyXG5cclxuICAvLyBTYWxhcnlUZW1wbGF0ZSBmaWVsZHNcclxuICAvLyB7XHJcbiAgLy8gICBsYWJlbDogXCLYqNmG2YjYryDYp9mE2KPYsdio2KfYrVwiLFxyXG4gIC8vICAgdmFsdWU6IFwidGVtcGxhdGUuRWFybmluZ3NcIixcclxuICAvLyAgIGtpbmQ6IFwiRmllbGRcIixcclxuICAvLyAgIGRldGFpbDogXCLZgtin2KbZhdipINio2YbZiNivINin2YTYo9ix2KjYp9itXCIsXHJcbiAgLy8gICBkb2N1bWVudGF0aW9uOiBcIioqU2FsYXJ5VGVtcGxhdGUuRWFybmluZ3MqKlxcbtmC2KfYptmF2Kkg2KfZhNi52YbYp9i12LEg2KfZhNiq2Yog2KrZhdir2YQg2YXYs9iq2K3Zgtin2KogKNij2LHYqNin2K0pINin2YTZgtin2YTYqC5cIlxyXG4gIC8vIH0sXHJcbiAgLy8ge1xyXG4gIC8vICAgbGFiZWw6IFwi2KjZhtmI2K8g2KfZhNin2LPYqtmC2LfYp9i52KfYqlwiLFxyXG4gIC8vICAgdmFsdWU6IFwidGVtcGxhdGUuRGVkdWN0aW9uc1wiLFxyXG4gIC8vICAga2luZDogXCJGaWVsZFwiLFxyXG4gIC8vICAgZGV0YWlsOiBcItmC2KfYptmF2Kkg2KjZhtmI2K8g2KfZhNin2LPYqtmC2LfYp9i52KfYqlwiLFxyXG4gIC8vICAgZG9jdW1lbnRhdGlvbjogXCIqKlNhbGFyeVRlbXBsYXRlLkRlZHVjdGlvbnMqKlxcbtmC2KfYptmF2Kkg2KfZhNi52YbYp9i12LEg2KfZhNiq2Yog2KrZhdir2YQg2KfYs9iq2YLYt9in2LnYp9iqINin2YTZgtin2YTYqC5cIlxyXG4gIC8vIH0sXHJcblxyXG4gIC8vIC8vIFNhbGFyeVRlbXBsYXRlSXRlbSBmaWVsZHNcclxuICAvLyB7XHJcbiAgLy8gICBsYWJlbDogXCLYp9mE2YXYqNmE2Log2KfZhNir2KfYqNiqINmE2YTYqNmG2K9cIixcclxuICAvLyAgIHZhbHVlOiBcIml0ZW0uQW1vdW50XCIsXHJcbiAgLy8gICBraW5kOiBcIkZpZWxkXCIsXHJcbiAgLy8gICBkZXRhaWw6IFwi2KfZhNmF2KjZhNi6INin2YTYq9in2KjYqiDZhNmE2KjZhtivXCIsXHJcbiAgLy8gICBkb2N1bWVudGF0aW9uOiBcIioqU2FsYXJ5VGVtcGxhdGVJdGVtLkFtb3VudCoqXFxu2KfZhNmC2YrZhdipINin2YTYq9in2KjYqtipINin2YTZhdiu2LXYtdipINmE2YfYsNinINin2YTYqNmG2K8uXCJcclxuICAvLyB9LFxyXG4gIC8vIHtcclxuICAvLyAgIGxhYmVsOiBcIti12YrYutipINin2YTYqNmG2K9cIixcclxuICAvLyAgIHZhbHVlOiBcIml0ZW0uRm9ybXVsYVwiLFxyXG4gIC8vICAga2luZDogXCJGaWVsZFwiLFxyXG4gIC8vICAgZGV0YWlsOiBcItin2YTYtdmK2LrYqSDYp9mE2K3Ys9in2KjZitipINmE2YTYqNmG2K9cIixcclxuICAvLyAgIGRvY3VtZW50YXRpb246IFwiKipTYWxhcnlUZW1wbGF0ZUl0ZW0uRm9ybXVsYSoqXFxu2KfZhNi12YrYutipINin2YTYqNix2YXYrNmK2Kkg2YTYqti52LHZitmBINmC2YrZhdipINin2YTYqNmG2K8g2LnZhtivIFNhbGFyeVZhbHVlVHlwZSA9IEZvcm11bGEuXCJcclxuICAvLyB9LFxyXG5cclxuIHsgbGFiZWw6ICcoTGVhdmUpIFRvdGFsIExlYXZlcyBUYWtlbicsIHZhbHVlOiAnR2V0TGVhdmVUYWtlbihsZWF2ZUlkKScsIGRldGFpbDogJ9il2KzZhdin2YTZiiDYp9mE2KXYrNin2LLYp9iqINin2YTZhdij2K7ZiNiw2KknIH0sXHJcbiAgeyBsYWJlbDogJyhMZWF2ZSkgVG90YWwgTGVhdmVzIFRha2VuIEJlZm9yZScsIHZhbHVlOiAnR2V0TGVhdmVUYWtlbkJlZm9yZShsZWF2ZUlkKScsIGRldGFpbDogJ9il2KzZhdin2YTZiiDYp9mE2KXYrNin2LLYp9iqINin2YTZhdij2K7ZiNiw2Kkg2YLYqNmEJyB9LFxyXG4gIHsgbGFiZWw6ICcoTGVhdmUpIFRvdGFsIExlYXZlcyBBZnRlcicsIHZhbHVlOiAnR2V0TGVhdmVUYWtlbkFmdGVyKGxlYXZlSWQpJywgZGV0YWlsOiAn2KXYrNmF2KfZhNmKINin2YTYpdis2KfYstin2Kog2KfZhNmF2KPYrtmI2LDYqSDYqNi52K8nIH0sXHJcbiAgeyBsYWJlbDogJyhMZWF2ZSkgTGVhdmVzIENyZWRpdCBCZWZvcmUnLCB2YWx1ZTogJ0dldExlYXZlQ3JlZGl0QmVmb3JlKGxlYXZlSWQpJywgZGV0YWlsOiAn2LHYtdmK2K8g2KfZhNil2KzYp9iy2KfYqiDZgtio2YQnIH0sXHJcbiAgeyBsYWJlbDogJyhMZWF2ZSkgTGVhdmVzIENyZWRpdCBBZnRlcicsIHZhbHVlOiAnR2V0TGVhdmVDcmVkaXRBZnRlcihsZWF2ZUlkKScsIGRldGFpbDogJ9ix2LXZitivINin2YTYpdis2KfYstin2Kog2KjYudivJyB9LFxyXG5cclxuXHJcblxyXG4gICAgeyBsYWJlbDogJ9i52K/YryDZhdix2KfYqiDYqtit2YLZgiDYp9mE2YLYp9i52K/YqScsIHZhbHVlOiAnR2V0RmxhZ0NvdW50KHJ1bGVJZCknLCBkZXRhaWw6ICfYudiv2K8g2YXYsdin2Kog2KrYrdmC2YIg2KfZhNmC2KfYudiv2Kkg2K7ZhNin2YQg2KfZhNmB2KrYsdipJyB9LFxyXG4gICAgeyBsYWJlbDogJ9il2KzZhdin2YTZiiDZgtmK2YXYqSDYp9mE2YLYp9i52K/YqScsIHZhbHVlOiAnR2V0RmxhZ1ZhbHVlKHJ1bGVJZCknLCBkZXRhaWw6ICfYp9mE2YLZitmF2Kkg2KfZhNil2KzZhdin2YTZitipINmE2YTZgtin2LnYr9ipJyB9LFxyXG4gICAgeyBsYWJlbDogJ9ij2YPYqNixINmF2YYnLCB2YWx1ZTogJz4nLCBkZXRhaWw6ICfYp9mE2YLZitmF2Kkg2KfZhNij2YjZhNmJINij2YPYqNixINmF2YYg2KfZhNir2KfZhtmK2KknIH0sXHJcbiAgICB7IGxhYmVsOiAn2KPZg9io2LEg2YXZhiDYo9mIINmK2LPYp9mI2YonLCB2YWx1ZTogJz49JywgZGV0YWlsOiAn2KfZhNmC2YrZhdipINin2YTYo9mI2YTZiSDYo9mD2KjYsSDZhdmGINij2Ygg2KrYs9in2YjZiiDYp9mE2KvYp9mG2YrYqScgfSxcclxuICAgIHsgbGFiZWw6ICfYo9i12LrYsSDZhdmGJywgdmFsdWU6ICc8JywgZGV0YWlsOiAn2KfZhNmC2YrZhdipINin2YTYo9mI2YTZiSDYo9i12LrYsSDZhdmGINin2YTYq9in2YbZitipJyB9LFxyXG4gICAgeyBsYWJlbDogJ9ij2LXYutixINmF2YYg2KPZiCDZitiz2KfZiNmKJywgdmFsdWU6ICc8PScsIGRldGFpbDogJ9in2YTZgtmK2YXYqSDYp9mE2KPZiNmE2Ykg2KPYtdi62LEg2YXZhiDYo9mIINiq2LPYp9mI2Yog2KfZhNir2KfZhtmK2KknIH0sXHJcbiAgICB7IGxhYmVsOiAn2YrYs9in2YjZiicsIHZhbHVlOiAnPT0nLCBkZXRhaWw6ICfYp9mE2YLZitmF2KrYp9mGINmF2KrYs9in2YjZitiq2KfZhicgfSxcclxuICAgIHsgbGFiZWw6ICfZhNinINmK2LPYp9mI2YonLCB2YWx1ZTogJyE9JywgZGV0YWlsOiAn2KfZhNmC2YrZhdiq2KfZhiDYutmK2LEg2YXYqtiz2KfZiNmK2KrYp9mGJyB9LFxyXG4gICAgeyBsYWJlbDogJ9mIIChBTkQpJywgdmFsdWU6ICcmJicsIGRldGFpbDogJ9iq2KrYrdmC2YIg2KXYsNinINmD2KfZhiDYp9mE2LTYsdi32KfZhiDYtdit2YrYrdmK2YYnIH0sXHJcbiAgICB7IGxhYmVsOiAn2KPZiCAoT1IpJywgdmFsdWU6ICd8fCcsIGRldGFpbDogJ9iq2KrYrdmC2YIg2KXYsNinINmD2KfZhiDYo9it2K8g2KfZhNi02LHYt9mK2YYg2LXYrdmK2K3Yp9mLJyB9LFxyXG4gICAgeyBsYWJlbDogJ9i12K3ZititJywgdmFsdWU6ICd0cnVlJywgZGV0YWlsOiAn2KfZhNmC2YrZhdipINi12K3Zitit2KknIH0sXHJcbiAgICB7IGxhYmVsOiAn2K7Yt9ijJywgdmFsdWU6ICdmYWxzZScsIGRldGFpbDogJ9in2YTZgtmK2YXYqSDYrtin2LfYptipJyB9XHJcbiAgXTtcclxuIl19","import { Chip } from 'primeng/chip';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { ChangeDetectorRef, Component, ViewChild } from '@angular/core';\nimport { FieldType } from '@ngx-formly/core';\nimport { CommonModule } from '@angular/common';\nimport { FormsModule } from '@angular/forms';\nimport { AutoCompleteModule } from 'primeng/autocomplete';\nimport { ButtonModule } from 'primeng/button';\nimport { InputTextModule } from 'primeng/inputtext';\nimport { DialogModule } from 'primeng/dialog';\nimport { Popover, PopoverModule } from 'primeng/popover';\nimport { suggestions } from './suggestions';\nimport { finalize, firstValueFrom } from 'rxjs';\nimport { BaseService } from '@elite.framework/ng.core/services';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@elite.framework/ng.core/services\";\nimport * as i2 from \"@angular/common\";\nimport * as i3 from \"@angular/forms\";\nimport * as i4 from \"primeng/autocomplete\";\nimport * as i5 from \"primeng/api\";\nimport * as i6 from \"primeng/button\";\nimport * as i7 from \"primeng/inputtext\";\nimport * as i8 from \"primeng/dialog\";\nimport * as i9 from \"@ngx-translate/core\";\nexport class ConditionExpressionBuilderType extends FieldType {\n svc;\n cdr;\n // @ViewChild('paramOverlay') paramOverlay!: OverlayPanel;\n autoComp;\n op;\n tokens = [];\n selectedSuggestion;\n customValue = '';\n filteredSuggestions = [];\n // Dialog state\n displayDialog = false;\n dialogSelectedRule = null;\n pendingSuggestion = null;\n filteredRuleSuggestions = [];\n suggestions = suggestions;\n loading = false;\n api;\n dialogMode = '';\n displayMode = 'full';\n editDialogTitle = 'Edit Expression';\n displayEditDialog = false;\n /**\n *\n */\n valueChangeSubscription;\n constructor(svc, cdr) {\n super();\n this.svc = svc;\n this.cdr = cdr;\n }\n ngOnInit() {\n this.api = this.svc;\n const to = this.props;\n this.api.apiName = to['serviceName'];\n this.displayMode = to['displayMode'] ?? 'full';\n this.initTokens();\n this.valueChangeSubscription = this.formControl.valueChanges\n .subscribe(() => {\n this.initTokens();\n });\n }\n ngOnDestroy() {\n if (this.valueChangeSubscription) {\n this.valueChangeSubscription.unsubscribe();\n }\n }\n initTokens() {\n const existing = this.formControl.value || '';\n if (existing) {\n const tokens = existing.split(' ').filter((x) => x);\n Promise.all(tokens.map(async (v) => ({\n value: v,\n label: await this.getLabelForValue(v)\n }))).then(resolvedTokens => {\n this.tokens = resolvedTokens;\n this.cdr.detectChanges(); // <-- Trigger UI update\n });\n }\n else {\n this.tokens = [];\n }\n }\n openDialogForTableMode() {\n // You can reuse your dialog logic here\n this.displayDialog = true;\n this.dialogMode = 'rule'; // or 'leave', depending on your case\n }\n parseParameterizedToken(value) {\n const match = value.match(/^(\\w+)\\(([^)]+)\\)$/);\n if (match) {\n return { base: match[1], param: match[2] };\n }\n return null;\n }\n async getLabelForValue(value) {\n const paramToken = this.parseParameterizedToken(value);\n if (paramToken) {\n let paramLabel = paramToken.param;\n // Find matching base suggestion early (optional)\n const baseSuggestion = this.suggestions.find(s => s.value === `${paramToken.base}(ruleId)` ||\n s.value === `${paramToken.base}(leaveId)` ||\n s.value === paramToken.base);\n if (value.includes('(ruleId)') || paramToken.base.toLowerCase().includes('flag')) {\n this.api.apiName = this.props['ruleServiceName'];\n try {\n const res = await firstValueFrom(this.api.get(paramToken.param).pipe());\n // Assuming API returns { items: [...] } or array directly\n // const matchedRule = (res.items ?? res ?? []).find((r: any) => r.id == Number(paramToken.param));\n const matchedRule = res;\n if (matchedRule)\n paramLabel = matchedRule.label || matchedRule.name || paramLabel;\n }\n catch {\n // ignore errors, fallback to param value\n }\n }\n if (value.includes('(leaveId)') || paramToken.base.toLowerCase().includes('leave')) {\n this.api.apiName = this.props['leaveServiceName'];\n try {\n const res = await firstValueFrom(this.api.getList(paramToken.param).pipe());\n const matchedLeave = res;\n if (matchedLeave)\n paramLabel = matchedLeave.label || matchedLeave.name || paramLabel;\n }\n catch {\n // ignore errors\n }\n }\n if (baseSuggestion) {\n const baseLabel = baseSuggestion.label\n .replace(/\\(ruleId\\)/g, '')\n .replace(/\\(leaveId\\)/g, '')\n .trim();\n return `${baseLabel} (${paramLabel})`;\n }\n }\n // fallback exact match in suggestions\n const exact = this.suggestions.find(s => s.value === value);\n if (exact)\n return exact.label;\n return value;\n }\n filterSuggestions(event) {\n const query = event.query.toLowerCase();\n this.filteredSuggestions = this.suggestions.filter(s => {\n const paramToken = this.parseParameterizedToken(s.value);\n const baseValue = paramToken ? paramToken.base : s.value;\n return (s.label.toLowerCase().includes(query) ||\n baseValue.toLowerCase().includes(query) ||\n s.value.toLowerCase().includes(query));\n });\n }\n search(event) {\n this.api.apiName = this.dialogMode === 'rule'\n ? this.props['ruleServiceName'] // existing rules service\n : this.props['leaveServiceName']; // new leave service\n const q = event.query?.toString().toLowerCase() || '';\n const lf = this.props['labelField'] || 'name';\n const fixedFilters = this.props['fixedFilters'] || {};\n this.loading = true;\n this.filteredRuleSuggestions = [];\n const searchParams = {\n [lf]: q,\n ...fixedFilters,\n };\n this.api.getList(searchParams)\n .pipe(finalize(() => (this.loading = false)))\n .subscribe({\n next: (res) => {\n this.filteredRuleSuggestions = res.items ?? res ?? [];\n setTimeout(() => this.autoComp?.show(), 0);\n },\n error: () => {\n this.filteredRuleSuggestions = [];\n },\n });\n }\n onSuggestionRule(event) {\n const suggestion = event.value;\n if (!suggestion)\n return;\n this.dialogSelectedRule = suggestion;\n }\n async onSuggestionSelected(event) {\n const suggestion = event.value;\n if (!suggestion)\n return;\n if (suggestion.value.includes('(ruleId)') || suggestion.value.includes('(leaveId)')) {\n this.pendingSuggestion = suggestion;\n this.dialogSelectedRule = null;\n this.displayDialog = true;\n // Detect mode: rule or leave\n this.dialogMode = suggestion.value.includes('(ruleId)') ? 'rule' : 'leave';\n }\n else {\n this.tokens.push({\n value: suggestion.value,\n label: await this.getLabelForValue(suggestion.value)\n });\n this.updateExpression();\n }\n this.selectedSuggestion = '';\n }\n async confirmDialog() {\n if (!this.pendingSuggestion || !this.dialogSelectedRule)\n return;\n const paramValue = this.dialogSelectedRule.id\n || this.dialogSelectedRule.value\n || this.dialogSelectedRule.label;\n const placeholder = this.dialogMode === 'rule' ? '(ruleId)' : '(leaveId)';\n const newValue = this.pendingSuggestion.value.replace(placeholder, `(${paramValue})`);\n this.tokens.push({\n value: newValue,\n label: await this.getLabelForValue(newValue)\n });\n this.updateExpression();\n this.closeDialog();\n }\n cancelDialog() {\n this.closeDialog();\n }\n closeDialog() {\n this.displayDialog = false;\n this.dialogSelectedRule = null;\n this.pendingSuggestion = null;\n }\n async addCustomToken() {\n if (!this.customValue.trim())\n return;\n const val = this.customValue.trim();\n this.tokens.push({\n value: val,\n label: await this.getLabelForValue(val)\n });\n this.updateExpression();\n this.customValue = '';\n }\n removeToken(index) {\n this.tokens.splice(index, 1);\n this.updateExpression();\n }\n updateExpression() {\n const expression = this.tokens.map(t => t.value).join(' ');\n this.formControl.setValue(expression);\n if (this.to['expressionChange']) {\n this.to['expressionChange'].emit(expression);\n }\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: ConditionExpressionBuilderType, deps: [{ token: i1.BaseService }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });\n static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.1.8\", type: ConditionExpressionBuilderType, isStandalone: true, selector: \"condition-expression-builder\", providers: [BaseService], viewQueries: [{ propertyName: \"autoComp\", first: true, predicate: [\"autoComp\"], descendants: true }, { propertyName: \"op\", first: true, predicate: [\"op\"], descendants: true }], usesInheritance: true, ngImport: i0, template: `\r\n <div class=\"flex flex-col gap-3\">\r\n\r\n <!-- TABLE MODE -->\r\n @if (displayMode === 'table') {\r\n<div class=\"flex gap-2\">\r\n <div class=\"flex flex-wrap flex-1 gap-1\">\r\n <div class=\"border rounded-md p-2 bg-gray-50 flex flex-wrap gap-2 min-h-[40px] items-center\">\r\n\r\n\r\n @for (token of tokens; track $index) {\r\n <span class=\"px-2 py-1 rounded bg-blue-100 text-blue-800 flex items-center gap-1\">\r\n {{ token.label | translate }}\r\n </span>\r\n}\r\n</div>\r\n </div>\r\n <button type=\"button\" pButton icon=\"pi pi-pencil\" label=\"\"\r\n class=\"p-button-sm\"\r\n (click)=\"displayEditDialog = true\"></button>\r\n </div>\r\n\r\n <!-- Dialog with full editor inside -->\r\n <p-dialog [(visible)]=\"displayEditDialog\" [modal]=\"false\" [style]=\"{width: '700px'}\">\r\n\r\n <ng-template pTemplate=\"header\">\r\n {{ editDialogTitle | translate }}\r\n </ng-template>\r\n\r\n<div class=\"p-4 space-y-4\">\r\n <ng-container *ngTemplateOutlet=\"fullEditorTpl\"></ng-container>\r\n</div>\r\n\r\n </p-dialog>\r\n }\r\n @else{\r\n <ng-container *ngTemplateOutlet=\"fullEditorTpl\"></ng-container>\r\n }\r\n\r\n\r\n <!-- FULL MODE -->\r\n <ng-template #fullEditorTpl>\r\n <!-- Your existing full UI layout here -->\r\n <div class=\"flex flex-col gap-3\">\r\n\r\n <!-- Expression preview -->\r\n <div class=\"border rounded-md p-2 bg-gray-50 flex flex-wrap gap-2 min-h-[40px] items-center\">\r\n @for (token of tokens; track $index) {\r\n <span class=\"px-2 py-1 rounded bg-blue-100 text-blue-800 flex items-center gap-1\">\r\n {{ token.label | translate }}\r\n <button type=\"button\" pButton icon=\"pi pi-times\"\r\n class=\"p-button-rounded p-button-text p-button-sm\"\r\n (click)=\"removeToken($index)\">\r\n </button>\r\n </span>\r\n}\r\n </div>\r\n\r\n <!-- Autocomplete for suggestions -->\r\n <p-autoComplete\r\n [(ngModel)]=\"selectedSuggestion\"\r\n field=\"label\"\r\n [suggestions]=\"filteredSuggestions\"\r\n (completeMethod)=\"filterSuggestions($event)\"\r\n (onSelect)=\"onSuggestionSelected($event)\"\r\n placeholder=\"اكتب للبحث عن الحقول أو العمليات أو الدوال...\"\r\n [forceSelection]=\"false\"\r\n [dropdown]=\"true\"\r\n dropdownMode=\"current\"\r\n appendTo=\"body\"\r\n class=\"w-full\"\r\n >\r\n <ng-template let-suggestion pTemplate=\"item\">\r\n <div>\r\n <strong>{{ suggestion.label | translate}}</strong>\r\n <small class=\"block text-gray-500\">{{ suggestion.detail| translate }}</small>\r\n </div>\r\n </ng-template>\r\n </p-autoComplete>\r\n\r\n <!-- Add custom value -->\r\n <div class=\"flex gap-2\">\r\n <input pInputText type=\"text\" [(ngModel)]=\"customValue\" placeholder=\"أدخل قيمة ثابتة...\" class=\"flex-1\">\r\n <button pButton label=\"إضافة\" icon=\"pi pi-plus\" (click)=\"addCustomToken()\" class=\"p-button-sm\" type=\"button\"></button>\r\n </div>\r\n\r\n <!-- Parameter input dialog -->\r\n <p-dialog [(visible)]=\"displayDialog\" [modal]=\"false\" [closable]=\"false\" [style]=\"{width: '400px'}\">\r\n <ng-template pTemplate=\"header\">\r\n {{ (dialogMode === 'rule' ? 'اختر القاعدة' : 'اختر الإجازة') | translate }}\r\n </ng-template>\r\n\r\n <div class=\"p-4 space-y-4\">\r\n <p-autoComplete\r\n #autoComp\r\n [(ngModel)]=\"dialogSelectedRule\"\r\n field=\"name\"\r\n optionLabel=\"name\"\r\n [suggestions]=\"filteredRuleSuggestions\"\r\n (completeMethod)=\"search($event)\"\r\n (onSelect)=\"onSuggestionRule($event)\"\r\n placeholder=\"{{ dialogMode === 'rule' ? 'ابحث عن قاعدة' : 'ابحث عن إجازة' }}\"\r\n [forceSelection]=\"true\"\r\n [dropdown]=\"true\"\r\n dropdownMode=\"current\"\r\n appendTo=\"body\"\r\n class=\"w-full rounded-none\"\r\n >\r\n <ng-template let-suggestion pTemplate=\"item\">\r\n <div>\r\n <strong>{{ suggestion.name | translate}}</strong>\r\n <small class=\"block text-gray-500\">{{ suggestion.description | translate}}</small>\r\n </div>\r\n </ng-template>\r\n </p-autoComplete>\r\n </div>\r\n\r\n <p-footer class=\"flex justify-end gap-2\">\r\n <button type=\"button\" pButton label=\"إلغاء\" icon=\"pi pi-times\" class=\"p-button-text\" severity=\"danger\" (click)=\"cancelDialog()\"></button>\r\n <button type=\"button\" pButton label=\"موافق\" icon=\"pi pi-check\" (click)=\"confirmDialog()\" [disabled]=\"!dialogSelectedRule\"></button>\r\n </p-footer>\r\n </p-dialog>\r\n </div>\r\n </ng-template>\r\n </div>\r\n `, isInline: true, dependencies: [{ kind: \"ngmodule\", type: CommonModule }, { kind: \"directive\", type: i2.NgTemplateOutlet, selector: \"[ngTemplateOutlet]\", inputs: [\"ngTemplateOutletContext\", \"ngTemplateOutlet\", \"ngTemplateOutletInjector\"] }, { kind: \"ngmodule\", type: FormsModule }, { kind: \"directive\", type: i3.DefaultValueAccessor, selector: \"input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]\" }, { kind: \"directive\", type: i3.NgControlStatus, selector: \"[formControlName],[ngModel],[formControl]\" }, { kind: \"directive\", type: i3.NgModel, selector: \"[ngModel]:not([formControlName]):not([formControl])\", inputs: [\"name\", \"disabled\", \"ngModel\", \"ngModelOptions\"], outputs: [\"ngModelChange\"], exportAs: [\"ngModel\"] }, { kind: \"ngmodule\", type: AutoCompleteModule }, { kind: \"component\", type: i4.AutoComplete, selector: \"p-autoComplete, p-autocomplete, p-auto-complete\", inputs: [\"minLength\", \"minQueryLength\", \"delay\", \"panelStyle\", \"styleClass\", \"panelStyleClass\", \"inputStyle\", \"inputId\", \"inputStyleClass\", \"placeholder\", \"readonly\", \"scrollHeight\", \"lazy\", \"virtualScroll\", \"virtualScrollItemSize\", \"virtualScrollOptions\", \"autoHighlight\", \"forceSelection\", \"type\", \"autoZIndex\", \"baseZIndex\", \"ariaLabel\", \"dropdownAriaLabel\", \"ariaLabelledBy\", \"dropdownIcon\", \"unique\", \"group\", \"completeOnFocus\", \"showClear\", \"dropdown\", \"showEmptyMessage\", \"dropdownMode\", \"multiple\", \"tabindex\", \"dataKey\", \"emptyMessage\", \"showTransitionOptions\", \"hideTransitionOptions\", \"autofocus\", \"autocomplete\", \"optionGroupChildren\", \"optionGroupLabel\", \"overlayOptions\", \"suggestions\", \"optionLabel\", \"optionValue\", \"id\", \"searchMessage\", \"emptySelectionMessage\", \"selectionMessage\", \"autoOptionFocus\", \"selectOnFocus\", \"searchLocale\", \"optionDisabled\", \"focusOnHover\", \"typeahead\", \"appendTo\"], outputs: [\"completeMethod\", \"onSelect\", \"onUnselect\", \"onFocus\", \"onBlur\", \"onDropdownClick\", \"onClear\", \"onKeyUp\", \"onShow\", \"onHide\", \"onLazyLoad\"] }, { kind: \"component\", type: i5.Footer, selector: \"p-footer\" }, { kind: \"directive\", type: i5.PrimeTemplate, selector: \"[pTemplate]\", inputs: [\"type\", \"pTemplate\"] }, { kind: \"ngmodule\", type: ButtonModule }, { kind: \"directive\", type: i6.ButtonDirective, selector: \"[pButton]\", inputs: [\"iconPos\", \"loadingIcon\", \"loading\", \"severity\", \"raised\", \"rounded\", \"text\", \"outlined\", \"size\", \"plain\", \"fluid\", \"label\", \"icon\", \"buttonProps\"] }, { kind: \"ngmodule\", type: InputTextModule }, { kind: \"directive\", type: i7.InputText, selector: \"[pInputText]\", inputs: [\"pSize\", \"variant\", \"fluid\", \"invalid\"] }, { kind: \"ngmodule\", type: DialogModule }, { kind: \"component\", type: i8.Dialog, selector: \"p-dialog\", inputs: [\"header\", \"draggable\", \"resizable\", \"contentStyle\", \"contentStyleClass\", \"modal\", \"closeOnEscape\", \"dismissableMask\", \"rtl\", \"closable\", \"breakpoints\", \"styleClass\", \"maskStyleClass\", \"maskStyle\", \"showHeader\", \"blockScroll\", \"autoZIndex\", \"baseZIndex\", \"minX\", \"minY\", \"focusOnShow\", \"maximizable\", \"keepInViewport\", \"focusTrap\", \"transitionOptions\", \"closeIcon\", \"closeAriaLabel\", \"closeTabindex\", \"minimizeIcon\", \"maximizeIcon\", \"closeButtonProps\", \"maximizeButtonProps\", \"visible\", \"style\", \"position\", \"role\", \"appendTo\", \"content\", \"contentTemplate\", \"footerTemplate\", \"closeIconTemplate\", \"maximizeIconTemplate\", \"minimizeIconTemplate\", \"headlessTemplate\"], outputs: [\"onShow\", \"onHide\", \"visibleChange\", \"onResizeInit\", \"onResizeEnd\", \"onDragEnd\", \"onMaximize\"] }, { kind: \"ngmodule\", type: PopoverModule }, { kind: \"ngmodule\", type: TranslateModule }, { kind: \"pipe\", type: i9.TranslatePipe, name: \"translate\" }] });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: ConditionExpressionBuilderType, decorators: [{\n type: Component,\n args: [{\n selector: 'condition-expression-builder',\n standalone: true,\n imports: [\n CommonModule,\n FormsModule,\n AutoCompleteModule,\n Chip,\n ButtonModule,\n InputTextModule,\n DialogModule,\n PopoverModule,\n TranslateModule\n ],\n providers: [BaseService],\n template: `\r\n <div class=\"flex flex-col gap-3\">\r\n\r\n <!-- TABLE MODE -->\r\n @if (displayMode === 'table') {\r\n<div class=\"flex gap-2\">\r\n <div class=\"flex flex-wrap flex-1 gap-1\">\r\n <div class=\"border rounded-md p-2 bg-gray-50 flex flex-wrap gap-2 min-h-[40px] items-center\">\r\n\r\n\r\n @for (token of tokens; track $index) {\r\n <span class=\"px-2 py-1 rounded bg-blue-100 text-blue-800 flex items-center gap-1\">\r\n {{ token.label | translate }}\r\n </span>\r\n}\r\n</div>\r\n </div>\r\n <button type=\"button\" pButton icon=\"pi pi-pencil\" label=\"\"\r\n class=\"p-button-sm\"\r\n (click)=\"displayEditDialog = true\"></button>\r\n </div>\r\n\r\n <!-- Dialog with full editor inside -->\r\n <p-dialog [(visible)]=\"displayEditDialog\" [modal]=\"false\" [style]=\"{width: '700px'}\">\r\n\r\n <ng-template pTemplate=\"header\">\r\n {{ editDialogTitle | translate }}\r\n </ng-template>\r\n\r\n<div class=\"p-4 space-y-4\">\r\n <ng-container *ngTemplateOutlet=\"fullEditorTpl\"></ng-container>\r\n</div>\r\n\r\n </p-dialog>\r\n }\r\n @else{\r\n <ng-container *ngTemplateOutlet=\"fullEditorTpl\"></ng-container>\r\n }\r\n\r\n\r\n <!-- FULL MODE -->\r\n <ng-template #fullEditorTpl>\r\n <!-- Your existing full UI layout here -->\r\n <div class=\"flex flex-col gap-3\">\r\n\r\n <!-- Expression preview -->\r\n <div class=\"border rounded-md p-2 bg-gray-50 flex flex-wrap gap-2 min-h-[40px] items-center\">\r\n @for (token of tokens; track $index) {\r\n <span class=\"px-2 py-1 rounded bg-blue-100 text-blue-800 flex items-center gap-1\">\r\n {{ token.label | translate }}\r\n <button type=\"button\" pButton icon=\"pi pi-times\"\r\n class=\"p-button-rounded p-button-text p-button-sm\"\r\n (click)=\"removeToken($index)\">\r\n </button>\r\n </span>\r\n}\r\n </div>\r\n\r\n <!-- Autocomplete for suggestions -->\r\n <p-autoComplete\r\n [(ngModel)]=\"selectedSuggestion\"\r\n field=\"label\"\r\n [suggestions]=\"filteredSuggestions\"\r\n (completeMethod)=\"filterSuggestions($event)\"\r\n (onSelect)=\"onSuggestionSelected($event)\"\r\n placeholder=\"اكتب للبحث عن الحقول أو العمليات أو الدوال...\"\r\n [forceSelection]=\"false\"\r\n [dropdown]=\"true\"\r\n dropdownMode=\"current\"\r\n appendTo=\"body\"\r\n class=\"w-full\"\r\n >\r\n <ng-template let-suggestion pTemplate=\"item\">\r\n <div>\r\n <strong>{{ suggestion.label | translate}}</strong>\r\n <small class=\"block text-gray-500\">{{ suggestion.detail| translate }}</small>\r\n </div>\r\n </ng-template>\r\n </p-autoComplete>\r\n\r\n <!-- Add custom value -->\r\n <div class=\"flex gap-2\">\r\n <input pInputText type=\"text\" [(ngModel)]=\"customValue\" placeholder=\"أدخل قيمة ثابتة...\" class=\"flex-1\">\r\n <button pButton label=\"إضافة\" icon=\"pi pi-plus\" (click)=\"addCustomToken()\" class=\"p-button-sm\" type=\"button\"></button>\r\n </div>\r\n\r\n <!-- Parameter input dialog -->\r\n <p-dialog [(visible)]=\"displayDialog\" [modal]=\"false\" [closable]=\"false\" [style]=\"{width: '400px'}\">\r\n <ng-template pTemplate=\"header\">\r\n {{ (dialogMode === 'rule' ? 'اختر القاعدة' : 'اختر الإجازة') | translate }}\r\n </ng-template>\r\n\r\n <div class=\"p-4 space-y-4\">\r\n <p-autoComplete\r\n #autoComp\r\n [(ngModel)]=\"dialogSelectedRule\"\r\n field=\"name\"\r\n optionLabel=\"name\"\r\n [suggestions]=\"filteredRuleSuggestions\"\r\n (completeMethod)=\"search($event)\"\r\n (onSelect)=\"onSuggestionRule($event)\"\r\n placeholder=\"{{ dialogMode === 'rule' ? 'ابحث عن قاعدة' : 'ابحث عن إجازة' }}\"\r\n [forceSelection]=\"true\"\r\n [dropdown]=\"true\"\r\n dropdownMode=\"current\"\r\n appendTo=\"body\"\r\n class=\"w-full rounded-none\"\r\n >\r\n <ng-template let-suggestion pTemplate=\"item\">\r\n <div>\r\n <strong>{{ suggestion.name | translate}}</strong>\r\n <small class=\"block text-gray-500\">{{ suggestion.description | translate}}</small>\r\n </div>\r\n </ng-template>\r\n </p-autoComplete>\r\n </div>\r\n\r\n <p-footer class=\"flex justify-end gap-2\">\r\n <button type=\"button\" pButton label=\"إلغاء\" icon=\"pi pi-times\" class=\"p-button-text\" severity=\"danger\" (click)=\"cancelDialog()\"></button>\r\n <button type=\"button\" pButton label=\"موافق\" icon=\"pi pi-check\" (click)=\"confirmDialog()\" [disabled]=\"!dialogSelectedRule\"></button>\r\n </p-footer>\r\n </p-dialog>\r\n </div>\r\n </ng-template>\r\n </div>\r\n `\n }]\n }], ctorParameters: () => [{ type: i1.BaseService }, { type: i0.ChangeDetectorRef }], propDecorators: { autoComp: [{\n type: ViewChild,\n args: ['autoComp']\n }], op: [{\n type: ViewChild,\n args: ['op']\n }] } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZGl0aW9uLWVkaXRvci10eXBlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9uZy51aS5jb3JlL2NvbmRpdGlvbi1lZGl0b3Ivc3JjL2xpYi9jb25kaXRpb24tZWRpdG9yLXR5cGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLElBQUksRUFBQyxNQUFNLGNBQWMsQ0FBQztBQUNuQyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDdEQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDeEUsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQzdDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDN0MsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDMUQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzlDLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNwRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDOUMsT0FBTyxFQUFFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUN6RCxPQUFPLEVBQWMsV0FBVyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3hELE9BQU8sRUFBRSxRQUFRLEVBQUUsY0FBYyxFQUFnQixNQUFNLE1BQU0sQ0FBQztBQUM5RCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sbUNBQW1DLENBQUM7Ozs7Ozs7Ozs7O0FBa0poRSxNQUFNLE9BQU8sOEJBQStCLFNBQVEsU0FBUztJQTRCekM7SUFBeUI7SUEzQjNDLDJEQUEyRDtJQUNoQyxR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OUkxQyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSw4QkFBOEI7b0JBQ3hDLFVBQVUsRUFBRSxJQUFJO29CQUNoQixPQUFPLEVBQUU7d0JBQ1AsWUFBWTt3QkFDWixXQUFXO3dCQUNYLGtCQUFrQjt3QkFDbEIsSUFBSTt3QkFDSixZQUFZO3dCQUNaLGVBQWU7d0JBQ2YsWUFBWTt3QkFDWixhQUFhO3dCQUNiLGVBQWU7cUJBQ2hCO29CQUNBLFNBQVMsRUFBRSxDQUFDLFdBQVcsQ0FBQztvQkFDekIsUUFBUSxFQUFFOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQTZIVDtpQkFDRjtnSEFHNEIsUUFBUTtzQkFBOUIsU0FBUzt1QkFBQyxVQUFVO2dCQUNKLEVBQUU7c0JBQWxCLFNBQVM7dUJBQUMsSUFBSSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoaXB9IGZyb20gJ3ByaW1lbmcvY2hpcCc7XHJcbmltcG9ydCB7IFRyYW5zbGF0ZU1vZHVsZSB9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xyXG5pbXBvcnQgeyBDaGFuZ2VEZXRlY3RvclJlZiwgQ29tcG9uZW50LCBWaWV3Q2hpbGQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgRmllbGRUeXBlIH0gZnJvbSAnQG5neC1mb3JtbHkvY29yZSc7XHJcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7IEZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBBdXRvQ29tcGxldGVNb2R1bGUgfSBmcm9tICdwcmltZW5nL2F1dG9jb21wbGV0ZSc7XHJcbmltcG9ydCB7IEJ1dHRvbk1vZHVsZSB9IGZyb20gJ3ByaW1lbmcvYnV0dG9uJztcclxuaW1wb3J0IHsgSW5wdXRUZXh0TW9kdWxlIH0gZnJvbSAncHJpbWVuZy9pbnB1dHRleHQnO1xyXG5pbXBvcnQgeyBEaWFsb2dNb2R1bGUgfSBmcm9tICdwcmltZW5nL2RpYWxvZyc7XHJcbmltcG9ydCB7IFBvcG92ZXIsIFBvcG92ZXJNb2R1bGUgfSBmcm9tICdwcmltZW5nL3BvcG92ZXInO1xyXG5pbXBvcnQgeyBTdWdnZXN0aW9uLCBzdWdnZXN0aW9ucyB9IGZyb20gJy4vc3VnZ2VzdGlvbnMnO1xyXG5pbXBvcnQgeyBmaW5hbGl6ZSwgZmlyc3RWYWx1ZUZyb20sIFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBCYXNlU2VydmljZSB9IGZyb20gJ0BlbGl0ZS5mcmFtZXdvcmsvbmcuY29yZS9zZXJ2aWNlcyc7XHJcblxyXG5cclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnY29uZGl0aW9uLWV4cHJlc3Npb24tYnVpbGRlcicsXHJcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcclxuICBpbXBvcnRzOiBbXHJcbiAgICBDb21tb25Nb2R1bGUsXHJcbiAgICBGb3Jtc01vZHVsZSxcclxuICAgIEF1dG9Db21wbGV0ZU1vZHVsZSxcclxuICAgIENoaXAsXHJcbiAgICBCdXR0b25Nb2R1bGUsXHJcbiAgICBJbnB1dFRleHRNb2R1bGUsXHJcbiAgICBEaWFsb2dNb2R1bGUsXHJcbiAgICBQb3BvdmVyTW9kdWxlLFxyXG4gICAgVHJhbnNsYXRlTW9kdWxlXHJcbiAgXSxcclxuICAgcHJvdmlkZXJzOiBbQmFzZVNlcnZpY2VdLFxyXG4gIHRlbXBsYXRlOiBgXHJcbiAgICA8ZGl2IGNsYXNzPVwiZmxleCBmbGV4LWNvbCBnYXAtM1wiPlxyXG5cclxuICAgPCEtLSBUQUJMRSBNT0RFIC0tPlxyXG4gICAgQGlmIChkaXNwbGF5TW9kZSA9PT0gJ3RhYmxlJykge1xyXG48ZGl2IGNsYXNzPVwiZmxleCAgZ2FwLTJcIj5cclxuICAgICAgPGRpdiBjbGFzcz1cImZsZXggZmxleC13cmFwIGZsZXgtMSBnYXAtMVwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJib3JkZXIgcm91bmRlZC1tZCBwLTIgYmctZ3JheS01MCBmbGV4IGZsZXgtd3JhcCBnYXAtMiBtaW4taC1bNDBweF0gaXRlbXMtY2VudGVyXCI+XHJcblxyXG5cclxuICAgICAgIEBmb3IgKHRva2VuIG9mIHRva2VuczsgdHJhY2sgJGluZGV4KSB7XHJcbiAgPHNwYW4gY2xhc3M9XCJweC0yIHB5LTEgcm91bmRlZCBiZy1ibHVlLTEwMCB0ZXh0LWJsdWUtODAwIGZsZXggaXRlbXMtY2VudGVyIGdhcC0xXCI+XHJcbiAgICB7eyB0b2tlbi5sYWJlbCB8IHRyYW5zbGF0ZSB9fVxyXG4gIDwvc3Bhbj5cclxufVxyXG48L2Rpdj5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIHBCdXR0b24gaWNvbj1cInBpIHBpLXBlbmNpbFwiIGxhYmVsPVwiXCJcclxuICAgICAgICAgICAgICBjbGFzcz1cInAtYnV0dG9uLXNtXCJcclxuICAgICAgICAgICAgICAoY2xpY2spPVwiZGlzcGxheUVkaXREaWFsb2cgPSB0cnVlXCI+PC9idXR0b24+XHJcbiAgICA8L2Rpdj5cclxuXHJcbiAgICA8IS0tIERpYWxvZyB3aXRoIGZ1bGwgZWRpdG9yIGluc2lkZSAtLT5cclxuICAgIDxwLWRpYWxvZyBbKHZpc2libGUpXT1cImRpc3BsYXlFZGl0RGlhbG9nXCIgW21vZGFsXT1cImZhbHNlXCIgW3N0eWxlXT1cInt3aWR0aDogJzcwMHB4J31cIj5cclxuXHJcbiAgICAgIDxuZy10ZW1wbGF0ZSBwVGVtcGxhdGU9XCJoZWFkZXJcIj5cclxuICAgICAgICB7eyBlZGl0RGlhbG9nVGl0bGUgfCB0cmFuc2xhdGUgfX1cclxuICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuXHJcbjxkaXYgY2xhc3M9XCJwLTQgc3BhY2UteS00XCI+XHJcbiAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiZnVsbEVkaXRvclRwbFwiPjwvbmctY29udGFpbmVyPlxyXG48L2Rpdj5cclxuXHJcbiAgICA8L3AtZGlhbG9nPlxyXG4gICAgfVxyXG4gICAgQGVsc2V7XHJcbiAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJmdWxsRWRpdG9yVHBsXCI+PC9uZy1jb250YWluZXI+XHJcbiAgICB9XHJcblxyXG5cclxuICA8IS0tIEZVTEwgTU9ERSAtLT5cclxuICA8bmctdGVtcGxhdGUgI2Z1bGxFZGl0b3JUcGw+XHJcbiAgICA8IS0tIFlvdXIgZXhpc3RpbmcgZnVsbCBVSSBsYXlvdXQgaGVyZSAtLT5cclxuICAgIDxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtY29sIGdhcC0zXCI+XHJcblxyXG4gICAgICA8IS0tIEV4cHJlc3Npb24gcHJldmlldyAtLT5cclxuICAgICAgPGRpdiBjbGFzcz1cImJvcmRlciByb3VuZGVkLW1kIHAtMiBiZy1ncmF5LTUwIGZsZXggZmxleC13cmFwIGdhcC0yIG1pbi1oLVs0MHB4XSBpdGVtcy1jZW50ZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgQGZvciAodG9rZW4gb2YgdG9rZW5zOyB0cmFjayAkaW5kZXgpIHtcclxuICA8c3BhbiBjbGFzcz1cInB4LTIgcHktMSByb3VuZGVkIGJnLWJsdWUtMTAwIHRleHQtYmx1ZS04MDAgZmxleCBpdGVtcy1jZW50ZXIgZ2FwLTFcIj5cclxuICAgIHt7IHRva2VuLmxhYmVsIHwgdHJhbnNsYXRlIH19XHJcbiAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBwQnV0dG9uIGljb249XCJwaSBwaS10aW1lc1wiXHJcbiAgICAgIGNsYXNzPVwicC1idXR0b24tcm91bmRlZCBwLWJ1dHRvbi10ZXh0IHAtYnV0dG9uLXNtXCJcclxuICAgICAgKGNsaWNrKT1cInJlbW92ZVRva2VuKCRpbmRleClcIj5cclxuICAgIDwvYnV0dG9uPlxyXG4gIDwvc3Bhbj5cclxufVxyXG4gICAgICA8L2Rpdj5cclxuXHJcbiAgICAgIDwhLS0gQXV0b2NvbXBsZXRlIGZvciBzdWdnZXN0aW9ucyAtLT5cclxuICAgICAgPHAtYXV0b0NvbXBsZXRlXHJcbiAgICAgICAgWyhuZ01vZGVsKV09XCJzZWxlY3RlZFN1Z2dlc3Rpb25cIlxyXG4gICAgICAgIGZpZWxkPVwibGFiZWxcIlxyXG4gICAgICAgIFtzdWdnZXN0aW9uc109XCJmaWx0ZXJlZFN1Z2dlc3Rpb25zXCJcclxuICAgICAgICAoY29tcGxldGVNZXRob2QpPVwiZmlsdGVyU3VnZ2VzdGlvbnMoJGV2ZW50KVwiXHJcbiAgICAgICAgKG9uU2VsZWN0KT1cIm9uU3VnZ2VzdGlvblNlbGVjdGVkKCRldmVudClcIlxyXG4gICAgICAgIHBsYWNlaG9sZGVyPVwi2KfZg9iq2Kgg2YTZhNio2K3YqyDYudmGINin2YTYrdmC2YjZhCDYo9mIINin2YTYudmF2YTZitin2Kog2KPZiCDYp9mE2K/ZiNin2YQuLi5cIlxyXG4gICAgICAgIFtmb3JjZVNlbGVjdGlvbl09XCJmYWxzZVwiXHJcbiAgICAgICAgW2Ryb3Bkb3duXT1cInRydWVcIlxyXG4gICAgICAgIGRyb3Bkb3duTW9kZT1cImN1cnJlbnRcIlxyXG4gICAgICAgIGFwcGVuZFRvPVwiYm9keVwiXHJcbiAgICAgICAgY2xhc3M9XCJ3LWZ1bGxcIlxyXG4gICAgICA+XHJcbiAgICAgICAgPG5nLXRlbXBsYXRlIGxldC1zdWdnZXN0aW9uIHBUZW1wbGF0ZT1cIml0ZW1cIj5cclxuICAgICAgICAgIDxkaXY+XHJcbiAgICAgICAgICAgIDxzdHJvbmc+e3sgc3VnZ2VzdGlvbi5sYWJlbCB8IHRyYW5zbGF0ZX19PC9zdHJvbmc+XHJcbiAgICAgICAgICAgIDxzbWFsbCBjbGFzcz1cImJsb2NrIHRleHQtZ3JheS01MDBcIj57eyBzdWdnZXN0aW9uLmRldGFpbHwgdHJhbnNsYXRlIH19PC9zbWFsbD5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICAgIDwvcC1hdXRvQ29tcGxldGU+XHJcblxyXG4gICAgICA8IS0tIEFkZCBjdXN0b20gdmFsdWUgLS0+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IGdhcC0yXCI+XHJcbiAgICAgICAgPGlucHV0IHBJbnB1dFRleHQgdHlwZT1cInRleHRcIiBbKG5nTW9kZWwpXT1cImN1c3RvbVZhbHVlXCIgcGxhY2Vob2xkZXI9XCLYo9iv2K7ZhCDZgtmK2YXYqSDYq9in2KjYqtipLi4uXCIgY2xhc3M9XCJmbGV4LTFcIj5cclxuICAgICAgICA8YnV0dG9uIHBCdXR0b24gbGFiZWw9XCLYpdi22KfZgdipXCIgaWNvbj1cInBpIHBpLXBsdXNcIiAoY2xpY2spPVwiYWRkQ3VzdG9tVG9rZW4oKVwiIGNsYXNzPVwicC1idXR0b24tc21cIiB0eXBlPVwiYnV0dG9uXCI+PC9idXR0b24+XHJcbiAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgPCEtLSBQYXJhbWV0ZXIgaW5wdXQgZGlhbG9nIC0tPlxyXG4gICAgICA8cC1kaWFsb2cgWyh2aXNpYmxlKV09XCJkaXNwbGF5RGlhbG9nXCIgW21vZGFsXT1cImZhbHNlXCIgW2Nsb3NhYmxlXT1cImZhbHNlXCIgW3N0eWxlXT1cInt3aWR0aDogJzQwMHB4J31cIj5cclxuICAgICAgICA8bmctdGVtcGxhdGUgcFRlbXBsYXRlPVwiaGVhZGVyXCI+XHJcbiAgICAgICAgICB7eyAoZGlhbG9nTW9kZSA9PT0gJ3J1bGUnID8gJ9in2K7YqtixINin2YTZgtin2LnYr9ipJyA6ICfYp9iu2KrYsSDYp9mE2KXYrNin2LLYqScpIHwgdHJhbnNsYXRlIH19XHJcbiAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuXHJcbiAgICAgICAgPGRpdiBjbGFzcz1cInAtNCBzcGFjZS15LTRcIj5cclxuICAgICAgICAgIDxwLWF1dG9Db21wbGV0ZVxyXG4gICAgICAgICAgICAjYXV0b0NvbXBcclxuICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJkaWFsb2dTZWxlY3RlZFJ1bGVcIlxyXG4gICAgICAgICAgICBmaWVsZD1cIm5hbWVcIlxyXG4gICAgICAgICAgICBvcHRpb25MYWJlbD1cIm5hbWVcIlxyXG4gICAgICAgICAgICBbc3VnZ2VzdGlvbnNdPVwiZmlsdGVyZWRSdWxlU3VnZ2VzdGlvbnNcIlxyXG4gICAgICAgICAgICAoY29tcGxldGVNZXRob2QpPVwic2VhcmNoKCRldmVudClcIlxyXG4gICAgICAgICAgICAob25TZWxlY3QpPVwib25TdWdnZXN0aW9uUnVsZSgkZXZlbnQpXCJcclxuICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCJ7eyBkaWFsb2dNb2RlID09PSAncnVsZScgPyAn2KfYqNit2Ksg2LnZhiDZgtin2LnYr9ipJyA6ICfYp9io2K3YqyDYudmGINil2KzYp9iy2KknIH19XCJcclxuICAgICAgICAgICAgW2ZvcmNlU2VsZWN0aW9uXT1cInRydWVcIlxyXG4gICAgICAgICAgICBbZHJvcGRvd25dPVwidHJ1ZVwiXHJcbiAgICAgICAgICAgIGRyb3Bkb3duTW9kZT1cImN1cnJlbnRcIlxyXG4gICAgICAgICAgICBhcHBlbmRUbz1cImJvZHlcIlxyXG4gICAgICAgICAgICBjbGFzcz1cInctZnVsbCByb3VuZGVkLW5vbmVcIlxyXG4gICAgICAgICAgPlxyXG4gICAgICAgICAgICA8bmctdGVtcGxhdGUgbGV0LXN1Z2dlc3Rpb24gcFRlbXBsYXRlPVwiaXRlbVwiPlxyXG4gICAgICAgICAgICAgIDxkaXY+XHJcbiAgICAgICAgICAgICAgICA8c3Ryb25nPnt7IHN1Z2dlc3Rpb24ubmFtZSB8IHRyYW5zbGF0ZX19PC9zdHJvbmc+XHJcbiAgICAgICAgICAgICAgICA8c21hbGwgY2xhc3M9XCJibG9jayB0ZXh0LWdyYXktNTAwXCI+e3sgc3VnZ2VzdGlvbi5kZXNjcmlwdGlvbiB8IHRyYW5zbGF0ZX19PC9zbWFsbD5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgICAgIDwvcC1hdXRvQ29tcGxldGU+XHJcbiAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgIDxwLWZvb3RlciBjbGFzcz1cImZsZXgganVzdGlmeS1lbmQgZ2FwLTJcIj5cclxuICAgICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIHBCdXR0b24gbGFiZWw9XCLYpdmE2LrYp9ihXCIgaWNvbj1cInBpIHBpLXRpbWVzXCIgY2xhc3M9XCJwLWJ1dHRvbi10ZXh0XCIgc2V2ZXJpdHk9XCJkYW5nZXJcIiAoY2xpY2spPVwiY2FuY2VsRGlhbG9nKClcIj48L2J1dHRvbj5cclxuICAgICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIHBCdXR0b24gbGFiZWw9XCLZhdmI2KfZgdmCXCIgaWNvbj1cInBpIHBpLWNoZWNrXCIgKGNsaWNrKT1cImNvbmZpcm1EaWFsb2coKVwiIFtkaXNhYmxlZF09XCIhZGlhbG9nU2VsZWN0ZWRSdWxlXCI+PC9idXR0b24+XHJcbiAgICAgICAgPC9wLWZvb3Rlcj5cclxuICAgICAgPC9wLWRpYWxvZz5cclxuICAgIDwvZGl2PlxyXG4gIDwvbmctdGVtcGxhdGU+XHJcbiAgICA8L2Rpdj5cclxuICBgXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBDb25kaXRpb25FeHByZXNzaW9uQnVpbGRlclR5cGUgZXh0ZW5kcyBGaWVsZFR5cGUge1xyXG4gIC8vICBAVmlld0NoaWxkKCdwYXJhbU92ZXJsYXknKSBwYXJhbU92ZXJsYXkhOiBPdmVybGF5UGFuZWw7XHJcbiAgICAgIEBWaWV3Q2hpbGQoJ2F1dG9Db21wJykgYXV0b0NvbXAhOiBhbnk7XHJcbiAgICAgIEBWaWV3Q2hpbGQoJ29wJykgb3AhOiBQb3BvdmVyO1xyXG4gIHRva2VuczogeyBsYWJlbDogc3RyaW5nLCB2YWx1ZTogc3RyaW5nIH1bXSA9IFtdO1xyXG4gIHNlbGVjdGVkU3VnZ2VzdGlvbjogYW55O1xyXG4gIGN1c3RvbVZhbHVlID0gJyc7XHJcbiAgZmlsdGVyZWRTdWdnZXN0aW9uczogU3VnZ2VzdGlvbltdID0gW107XHJcblxyXG4gIC8vIERpYWxvZyBzdGF0ZVxyXG4gIGRpc3BsYXlEaWFsb2cgPSBmYWxzZTtcclxuICBkaWFsb2dTZWxlY3RlZFJ1bGU6IFN1Z2dlc3Rpb24gfCBhbnkgPSBudWxsO1xyXG4gIHBlbmRpbmdTdWdnZXN0aW9uOiBTdWdnZXN0aW9uIHwgYW55ID0gbnVsbDtcclxuICBmaWx0ZXJlZFJ1bGVTdWdnZXN0aW9uczogU3VnZ2VzdGlvbltdID0gW107XHJcblxyXG4gIHN1Z2dlc3Rpb25zID0gc3VnZ2VzdGlvbnM7XHJcbiAgbG9hZGluZyA9IGZhbHNlO1xyXG5hcGk6IEJhc2VTZXJ2aWNlfGFueTtcclxuICBkaWFsb2dNb2RlID0gJyc7XHJcblxyXG4gIGRpc3BsYXlNb2RlOiAndGFibGUnIHwgJ2Z1bGwnID0gJ2Z1bGwnO1xyXG4gZWRpdERpYWxvZ1RpdGxlID0gJ0VkaXQgRXhwcmVzc2lvbic7XHJcblxyXG5kaXNwbGF5RWRpdERpYWxvZyA9IGZhbHNlO1xyXG4vKipcclxuICpcclxuICovXHJcbnByaXZhdGUgdmFsdWVDaGFuZ2VTdWJzY3JpcHRpb24hOiBTdWJzY3JpcHRpb247XHJcbmNvbnN0cnVjdG9yKHByaXZhdGUgc3ZjOiBCYXNlU2VydmljZSxwcml2YXRlIGNkcjogQ2hhbmdlRGV0ZWN0b3JSZWYpIHtcclxuICBzdXBlcigpO1xyXG5cclxufVxyXG4gbmdPbkluaXQoKSB7XHJcbiAgIHRoaXMuYXBpID0gdGhpcy5zdmM7XHJcbiAgIGNvbnN0IHRvID0gdGhpcy5wcm9wcztcclxuICAgdGhpcy5hcGkuYXBpTmFtZSA9IHRvWydzZXJ2aWNlTmFtZSddO1xyXG5cclxuICAgdGhpcy5kaXNwbGF5TW9kZSA9IHRvWydkaXNwbGF5TW9kZSddID8/ICdmdWxsJztcclxuXHJcbiAgdGhpcy5pbml0VG9rZW5zKCk7XHJcblxyXG4gICB0aGlzLnZhbHVlQ2hhbmdlU3Vic2NyaXB0aW9uID0gdGhpcy5mb3JtQ29udHJvbC52YWx1ZUNoYW5nZXNcclxuICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XHJcbiAgICAgIHRoaXMuaW5pdFRva2VucygpO1xyXG5cclxuICAgICAgfSk7XHJcbn1cclxuXHJcbiBuZ09uRGVzdHJveSgpIHtcclxuICAgIGlmICh0aGlzLnZhbHVlQ2hhbmdlU3Vic2NyaXB0aW9uKSB7XHJcbiAgICAgIHRoaXMudmFsdWVDaGFuZ2VTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcclxuICAgIH1cclxuICB9XHJcbiAgaW5pdFRva2Vucygpe1xyXG4gICAgY29uc3QgZXhpc3RpbmcgPSB0aGlzLmZvcm1Db250cm9sLnZhbHVlIHx8ICcnO1xyXG4gIGlmIChleGlzdGluZykge1xyXG4gICAgY29uc3QgdG9rZW5zID0gZXhpc3Rpbmcuc3BsaXQoJyAnKS5maWx0ZXIoKHg6IGFueSkgPT4geCk7XHJcbiAgICBQcm9taXNlLmFsbChcclxuICAgICAgdG9rZW5zLm1hcChhc3luYyAodjogc3RyaW5nKSA9PiAoe1xyXG4gICAgICAgIHZhbHVlOiB2LFxyXG4gICAgICAgIGxhYmVsOiBhd2FpdCB0aGlzLmdldExhYmVsRm9yVmFsdWUodilcclxuICAgICAgfSkpXHJcbiAgICApLnRoZW4ocmVzb2x2ZWRUb2tlbnMgPT4ge1xyXG4gICAgICB0aGlzLnRva2VucyA9IHJlc29sdmVkVG9rZW5zO1xyXG4gICAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7ICAvLyA8LS0gVHJpZ2dlciBVSSB1cGRhdGVcclxuICAgIH0pO1xyXG4gIH0gZWxzZSB7XHJcbiAgICB0aGlzLnRva2VucyA9IFtdO1xyXG4gIH1cclxuICB9XHJcbm9wZW5EaWFsb2dGb3JUYWJsZU1vZGUoKSB7XHJcbiAgLy8gWW91IGNhbiByZXVzZSB5b3VyIGRpYWxvZyBsb2dpYyBoZXJlXHJcbiAgdGhpcy5kaXNwbGF5RGlhbG9nID0gdHJ1ZTtcclxuICB0aGlzLmRpYWxvZ01vZGUgPSAncnVsZSc7IC8vIG9yICdsZWF2ZScsIGRlcGVuZGluZyBvbiB5b3VyIGNhc2VcclxufVxyXG4gIHBhcnNlUGFyYW1ldGVyaXplZFRva2VuKHZhbHVlOiBzdHJpbmcpOiB7IGJhc2U6IHN0cmluZzsgcGFyYW06IHN0cmluZyB9IHwgbnVsbCB7XHJcbiAgICBjb25zdCBtYXRjaCA9IHZhbHVlLm1hdGNoKC9eKFxcdyspXFwoKFteKV0rKVxcKSQvKTtcclxuICAgIGlmIChtYXRjaCkge1xyXG4gICAgICByZXR1cm4geyBiYXNlOiBtYXRjaFsxXSwgcGFyYW06IG1hdGNoWzJdIH07XHJcbiAgICB9XHJcbiAgICByZXR1cm4gbnVsbDtcclxuICB9XHJcblxyXG5cclxuXHJcbmFzeW5jIGdldExhYmVsRm9yVmFsdWUodmFsdWU6IHN0cmluZyk6IFByb21pc2U8c3RyaW5nPiB7XHJcbiAgY29uc3QgcGFyYW1Ub2tlbiA9IHRoaXMucGFyc2VQYXJhbWV0ZXJpemVkVG9rZW4odmFsdWUpO1xyXG5cclxuICBpZiAocGFyYW1Ub2tlbikge1xyXG4gICAgbGV0IHBhcmFtTGFiZWwgPSBwYXJhbVRva2VuLnBhcmFtO1xyXG5cclxuICAgIC8vIEZpbmQgbWF0Y2hpbmcgYmFzZSBzdWdnZXN0aW9uIGVhcmx5IChvcHRpb25hbClcclxuICAgIGNvbnN0IGJhc2VTdWdnZXN0aW9uID0gdGhpcy5zdWdnZXN0aW9ucy5maW5kKFxyXG4gICAgICBzID0+XHJcbiAgICAgICAgcy52YWx1ZSA9PT0gYCR7cGFyYW1Ub2tlbi5iYXNlfShydWxlSWQpYCB8fFxyXG4gICAgICAgIHMudmFsdWUgPT09IGAke3BhcmFtVG9rZW4uYmFzZX0obGVhdmVJZClgIHx8XHJcbiAgICAgICAgcy52YWx1ZSA9PT0gcGFyYW1Ub2tlbi5iYXNlXHJcbiAgICApO1xyXG5cclxuICAgIGlmICh2YWx1ZS5pbmNsdWRlcygnKHJ1bGVJZCknKSB8fCBwYXJhbVRva2VuLmJhc2UudG9Mb3dlckNhc2UoKS5pbmNsdWRlcygnZmxhZycpKSB7XHJcbiAgICAgIHRoaXMuYXBpLmFwaU5hbWUgPSB0aGlzLnByb3BzWydydWxlU2VydmljZU5hbWUnXTtcclxuICAgICAgdHJ5IHtcclxuICAgICAgICBjb25zdCByZXM6IGFueSA9IGF3YWl0IGZpcnN0VmFsdWVGcm9tKFxyXG4gICAgICAgICAgdGhpcy5hcGkuZ2V0KCBwYXJhbVRva2VuLnBhcmFtKS5waXBlKClcclxuICAgICAgICApO1xyXG4gICAgICAgIC8vIEFzc3VtaW5nIEFQSSByZXR1cm5zIHsgaXRlbXM6IFsuLi5dIH0gb3IgYXJyYXkgZGlyZWN0bHlcclxuICAgICAgICAvLyBjb25zdCBtYXRjaGVkUnVsZSA9IChyZXMuaXRlbXMgPz8gcmVzID8/IFtdKS5maW5kKChyOiBhbnkpID0+IHIuaWQgPT0gTnVtYmVyKHBhcmFtVG9rZW4ucGFyYW0pKTtcclxuICAgICAgICBjb25zdCBtYXRjaGVkUnVsZSA9IHJlcztcclxuICAgICAgICBpZiAobWF0Y2hlZFJ1bGUpIHBhcmFtTGFiZWwgPSBtYXRjaGVkUnVsZS5sYWJlbCB8fCBtYXRjaGVkUnVsZS5uYW1lIHx8IHBhcmFtTGFiZWw7XHJcbiAgICAgIH0gY2F0Y2gge1xyXG4gICAgICAgIC8vIGlnbm9yZSBlcnJvcnMsIGZhbGxiYWNrIHRvIHBhcmFtIHZhbHVlXHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBpZiAodmFsdWUuaW5jbHVkZXMoJyhsZWF2ZUlkKScpIHx8IHBhcmFtVG9rZW4uYmFzZS50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKCdsZWF2ZScpKSB7XHJcbiAgICAgIHRoaXMuYXBpLmFwaU5hbWUgPSB0aGlzLnByb3BzWydsZWF2ZVNlcnZpY2VOYW1lJ107XHJcbiAgICAgIHRyeSB7XHJcbiAgICAgICAgY29uc3QgcmVzOiBhbnkgPSBhd2FpdCBmaXJzdFZhbHVlRnJvbShcclxuICAgICAgICAgIHRoaXMuYXBpLmdldExpc3QocGFyYW1Ub2tlbi5wYXJhbSApLnBpcGUoKVxyXG4gICAgICAgICk7XHJcbiAgICAgICAgY29uc3QgbWF0Y2hlZExlYXZlID0gcmVzO1xyXG4gICAgICAgIGlmIChtYXRjaGVkTGVhdmUpIHBhcmFtTGFiZWwgPSBtYXRjaGVkTGVhdmUubGFiZWwgfHwgbWF0Y2hlZExlYXZlLm5hbWUgfHwgcGFyYW1MYWJlbDtcclxuICAgICAgfSBjYXRjaCB7XHJcbiAgICAgICAgLy8gaWdub3JlIGVycm9yc1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKGJhc2VTdWdnZXN0aW9uKSB7XHJcbiAgICAgIGNvbnN0IGJhc2VMYWJlbCA9IGJhc2VTdWdnZXN0aW9uLmxhYmVsXHJcbiAgICAgICAgLnJlcGxhY2UoL1xcKHJ1bGVJZFxcKS9nLCAnJylcclxuICAgICAgICAucmVwbGFjZSgvXFwobGVhdmVJZFxcKS9nLCAnJylcclxuICAgICAgICAudHJpbSgpO1xyXG4gICAgICByZXR1cm4gYCR7YmFzZUxhYmVsfSAoJHtwYXJhbUxhYmVsfSlgO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLy8gZmFsbGJhY2sgZXhhY3QgbWF0Y2ggaW4gc3VnZ2VzdGlvbnNcclxuICBjb25zdCBleGFjdCA9IHRoaXMuc3VnZ2VzdGlvbnMuZmluZChzID0+IHMudmFsdWUgPT09IHZhbHVlKTtcclxuICBpZiAoZXhhY3QpIHJldHVybiBleGFjdC5sYWJlbDtcclxuXHJcbiAgcmV0dXJuIHZhbHVlO1xyXG59XHJcblxyXG5cclxuXHJcbiAgZmlsdGVyU3VnZ2VzdGlvbnMoZXZlbnQ6IGFueSkge1xyXG4gICAgY29uc3QgcXVlcnkgPSBldmVudC5xdWVyeS50b0xvd2VyQ2FzZSgpO1xyXG4gICAgdGhpcy5maWx0ZXJlZFN1Z2dlc3Rpb25zID0gdGhpcy5zdWdnZXN0aW9ucy5maWx0ZXIocyA9PiB7XHJcbiAgICAgIGNvbnN0IHBhcmFtVG9rZW4gPSB0aGlzLnBhcnNlUGFyYW1ldGVyaXplZFRva2VuKHMudmFsdWUpO1xyXG4gICAgICBjb25zdCBiYXNlVmFsdWUgPSBwYXJhbVRva2VuID8gcGFyYW1Ub2tlbi5iYXNlIDogcy52YWx1ZTtcclxuICAgICAgcmV0dXJuIChcclxuICAgICAgICBzLmxhYmVsLnRvTG93ZXJDYXNlKCkuaW5jbHVkZXMocXVlcnkpIHx8XHJcbiAgICAgICAgYmFzZVZhbHVlLnRvTG93ZXJDYXNlKCkuaW5jbHVkZXMocXVlcnkpIHx8XHJcbiAgICAgICAgcy52YWx1ZS50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKHF1ZXJ5KVxyXG4gICAgICApO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICAgc2VhcmNoKGV2ZW50OiB7IHF1ZXJ5OiBzdHJpbmcgfSkge1xyXG4gIHRoaXMuYXBpLmFwaU5hbWUgPSB0aGlzLmRpYWxvZ01vZGUgPT09ICdydWxlJ1xyXG4gICAgPyB0aGlzLnByb3BzWydydWxlU2VydmljZU5hbWUnXSAgLy8gZXhpc3RpbmcgcnVsZXMgc2VydmljZVxyXG4gICAgOiB0aGlzLnByb3BzWydsZWF2ZVNlcnZpY2VOYW1lJ107IC8vIG5ldyBsZWF2ZSBzZXJ2aWNlXHJcblxyXG4gIGNvbnN0IHEgPSBldmVudC5xdWVyeT8udG9TdHJpbmcoKS50b0xvd2VyQ2FzZSgpIHx8ICcnO1xyXG4gIGNvbnN0IGxmID0gdGhpcy5wcm9wc1snbGFiZWxGaWVsZCddIHx8ICduYW1lJztcclxuICBjb25zdCBmaXhlZEZpbHRlcnMgPSB0aGlzLnByb3BzWydmaXhlZEZpbHRlcnMnXSB8fCB7fTtcclxuXHJcbiAgdGhpcy5sb2FkaW5nID0gdHJ1ZTtcclxuICB0aGlzLmZpbHRlcmVkUnVsZVN1Z2dlc3Rpb25zID0gW107XHJcblxyXG4gIGNvbnN0IHNlYXJjaFBhcmFtcyA9IHtcclxuICAgIFtsZl06IHEsXHJcbiAgICAuLi5maXhlZEZpbHRlcnMsXHJcbiAgfTtcclxuXHJcbiAgdGhpcy5hcGkuZ2V0TGlzdChzZWFyY2hQYXJhbXMpXHJcbiAgICAucGlwZShmaW5hbGl6ZSgoKSA9PiAodGhpcy5sb2FkaW5nID0gZmFsc2UpKSlcclxuICAgIC5zdWJzY3JpYmUoe1xyXG4gICAgICBuZXh0OiAocmVzOiBhbnkpID0+IHtcclxuICAgICAgICB0aGlzLmZpbHRlcmVkUnVsZVN1Z2dlc3Rpb25zID0gcmVzLml0ZW1zID8/IHJlcyA/PyBbXTtcclxuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHRoaXMuYXV0b0NvbXA/LnNob3coKSwgMCk7XHJcbiAgICAgIH0sXHJcbiAgICAgIGVycm9yOiAoKSA9PiB7XHJcbiAgICAgICAgdGhpcy5maWx0ZXJlZFJ1bGVTdWdnZXN0aW9ucyA9IFtdO1xyXG4gICAgICB9LFxyXG4gICAgfSk7XHJcbn1cclxuXHJcblxyXG4gIG9uU3VnZ2VzdGlvblJ1bGUoZXZlbnQ6IGFueSkge1xyXG4gICAgY29uc3Qgc3VnZ2VzdGlvbjogU3VnZ2VzdGlvbiA9IGV2ZW50LnZhbHVlO1xyXG4gICAgaWYgKCFzdWdnZXN0aW9uKSByZXR1cm47XHJcbiAgICB0aGlzLmRpYWxvZ1NlbGVjdGVkUnVsZSA9IHN1Z2dlc3Rpb247XHJcbiAgfVxyXG4gYXN5bmMgb25TdWdnZXN0aW9uU2VsZWN0ZWQoZXZlbnQ6IGFueSkge1xyXG4gIGNvbnN0IHN1Z2dlc3Rpb246IFN1Z2dlc3Rpb24gPSBldmVudC52YWx1ZTtcclxuICBpZiAoIXN1Z2dlc3Rpb24pIHJldHVybjtcclxuXHJcbiAgaWYgKHN1Z2dlc3Rpb24udmFsdWUuaW5jbHVkZXMoJyhydWxlSWQpJykgfHwgc3VnZ2VzdGlvbi52YWx1ZS5pbmNsdWRlcygnKGxlYXZlSWQpJykpIHtcclxuICAgIHRoaXMucGVuZGluZ1N1Z2dlc3Rpb24gPSBzdWdnZXN0aW9uO1xyXG4gICAgdGhpcy5kaWFsb2dTZWxlY3RlZFJ1bGUgPSBudWxsO1xyXG4gICAgdGhpcy5kaXNwbGF5RGlhbG9nID0gdHJ1ZTtcclxuXHJcbiAgICAvLyBEZXRlY3QgbW9kZTogcnVsZSBvciBsZWF2ZVxyXG4gICAgdGhpcy5kaWFsb2dNb2RlID0gc3VnZ2VzdGlvbi52YWx1ZS5pbmNsdWRlcygnKHJ1bGVJZCknKSA/ICdydWxlJyA6ICdsZWF2ZSc7XHJcbiAgfSBlbHNlIHtcclxuICAgIHRoaXMudG9rZW5zLnB1c2goe1xyXG4gICAgICB2YWx1ZTogc3VnZ2VzdGlvbi52YWx1ZSxcclxuICAgICAgbGFiZWw6IGF3YWl0IHRoaXMuZ2V0TGFiZWxGb3JWYWx1ZShzdWdnZXN0aW9uLnZhbHVlKVxyXG4gICAgfSk7XHJcbiAgICB0aGlzLnVwZGF0ZUV4cHJlc3Npb24oKTtcclxuICB9XHJcbiAgdGhpcy5zZWxlY3RlZFN1Z2dlc3Rpb24gPSAnJztcclxufVxyXG5cclxuXHJcblxyXG4gIGFzeW5jIGNvbmZpcm1EaWFsb2coKSB7XHJcbiAgaWYgKCF0aGlzLnBlbmRpbmdTdWdnZXN0aW9uIHx8ICF0aGlzLmRpYWxvZ1NlbGVjdGVkUnVsZSkgcmV0dXJuO1xyXG5cclxuICBjb25zdCBwYXJhbVZhbHVlID0gdGhpcy5kaWFsb2dTZWxlY3RlZFJ1bGUuaWRcclxuICAgIHx8IHRoaXMuZGlhbG9nU2VsZWN0ZWRSdWxlLnZhbHVlXHJcbiAgICB8fCB0aGlzLmRpYWxvZ1NlbGVjdGVkUnVsZS5sYWJlbDtcclxuXHJcbiAgY29uc3QgcGxhY2Vob2xkZXIgPSB0aGlzLmRpYWxvZ01vZGUgPT09ICdydWxlJyA/ICcocnVsZUlkKScgOiAnKGxlYXZlSWQpJztcclxuICBjb25zdCBuZXdWYWx1ZSA9IHRoaXMucGVuZGluZ1N1Z2dlc3Rpb24udmFsdWUucmVwbGFjZShwbGFjZWhvbGRlciwgYCgke3BhcmFtVmFsdWV9KWApO1xyXG5cclxuICB0aGlzLnRva2Vucy5wdXNoKHtcclxuICAgIHZhbHVlOiBuZXdWYWx1ZSxcclxuICAgIGxhYmVsOiBhd2FpdCB0aGlzLmdldExhYmVsRm9yVmFsdWUobmV3VmFsdWUpXHJcbiAgfSk7XHJcblxyXG4gIHRoaXMudXBkYXRlRXhwcmVzc2lvbigpO1xyXG4gIHRoaXMuY2xvc2VEaWFsb2coKTtcclxufVxyXG5cclxuXHJcbiAgY2FuY2VsRGlhbG9nKCkge1xyXG4gICAgdGhpcy5jbG9zZURpYWxvZygpO1xyXG4gIH1cclxuXHJcbiAgY2xvc2VEaWFsb2coKSB7XHJcbiAgICB0aGlzLmRpc3BsYXlEaWFsb2cgPSBmYWxzZTtcclxuICAgIHRoaXMuZGlhbG9nU2VsZWN0ZWRSdWxlID0gbnVsbDtcclxuICAgIHRoaXMucGVuZGluZ1N1Z2dlc3Rpb24gPSBudWxsO1xyXG4gIH1cclxuXHJcbiAgYXN5bmMgYWRkQ3VzdG9tVG9rZW4oKSB7XHJcbiAgICBpZiAoIXRoaXMuY3VzdG9tVmFsdWUudHJpbSgpKSByZXR1cm47XHJcbiAgICBjb25zdCB2YWwgPSB0aGlzLmN1c3RvbVZhbHVlLnRyaW0oKTtcclxuICAgIHRoaXMudG9rZW5zLnB1c2goe1xyXG4gICAgICB2YWx1ZTogdmFsLFxyXG4gICAgICBsYWJlbDogYXdhaXQgdGhpcy5nZXRMYWJlbEZvclZhbHVlKHZhbClcclxuICAgIH0pO1xyXG4gICAgdGhpcy51cGRhdGVFeHByZXNzaW9uKCk7XHJcbiAgICB0aGlzLmN1c3RvbVZhbHVlID0gJyc7XHJcbiAgfVxyXG5cclxuICByZW1vdmVUb2tlbihpbmRleDogbnVtYmVyKSB7XHJcbiAgICB0aGlzLnRva2Vucy5zcGxpY2UoaW5kZXgsIDEpO1xyXG4gICAgdGhpcy51cGRhdGVFeHByZXNzaW9uKCk7XHJcbiAgfVxyXG5cclxuICB1cGRhdGVFeHByZXNzaW9uKCkge1xyXG4gICAgY29uc3QgZXhwcmVzc2lvbiA9IHRoaXMudG9rZW5zLm1hcCh0ID0+IHQudmFsdWUpLmpvaW4oJyAnKTtcclxuICAgIHRoaXMuZm9ybUNvbnRyb2wuc2V0VmFsdWUoZXhwcmVzc2lvbik7XHJcbiAgICBpZiAodGhpcy50b1snZXhwcmVzc2lvbkNoYW5nZSddKSB7XHJcbiAgICAgIHRoaXMudG9bJ2V4cHJlc3Npb25DaGFuZ2UnXS5lbWl0KGV4cHJlc3Npb24pO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG4iXX0=","/**\n * Generated bundle index. Do not edit.\n */\nexport * from './index';\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWxpdGUuZnJhbWV3b3JrLW5nLnVpLmNvcmUtY29uZGl0aW9uLWVkaXRvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYnMvbmcudWkuY29yZS9jb25kaXRpb24tZWRpdG9yL3NyYy9lbGl0ZS5mcmFtZXdvcmstbmcudWkuY29yZS1jb25kaXRpb24tZWRpdG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsY0FBYyxTQUFTLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEdlbmVyYXRlZCBidW5kbGUgaW5kZXguIERvIG5vdCBlZGl0LlxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vaW5kZXgnO1xuIl19"],"names":[],"mappings":"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,EAAE,WAAW,EAAE,CAAC,EAAE,YAAY,EAAE,UAAU,EAAE,KAAK,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,UAAU,CAAC,EAAE,WAAW,EAAE,IAAI,EAAE,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,IAAI,CAAC,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC,EAAE,eAAe,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE,QAAQ,EAAE,CAAC;AACpb;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,YAAY,EAAE,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,YAAY,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,EAAE,CAAC,gBAAgB,EAAE,QAAQ,EAAE,oBAAoB,EAAE,MAAM,EAAE,CAAC,yBAAyB,EAAE,kBAAkB,EAAE,0BAA0B,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,WAAW,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,EAAE,CAAC,oBAAoB,EAAE,QAAQ,EAAE,8MAA8M,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,EAAE,CAAC,eAAe,EAAE,QAAQ,EAAE,2CAA2C,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,EAAE,CAAC,OAAO,EAAE,QAAQ,EAAE,qDAAqD,EAAE,MAAM,EAAE,CAAC,MAAM,EAAE,UAAU,EAAE,SAAS,EAAE,gBAAgB,CAAC,EAAE,OAAO,EAAE,CAAC,eAAe,CAAC,EAAE,QAAQ,EAAE,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,kBAAkB,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,EAAE,CAAC,YAAY,EAAE,QAAQ,EAAE,iDAAiD,EAAE,MAAM,EAAE,CAAC,WAAW,EAAE,gBAAgB,EAAE,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,iBAAiB,EAAE,YAAY,EAAE,SAAS,EAAE,iBAAiB,EAAE,aAAa,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,EAAE,eAAe,EAAE,uBAAuB,EAAE,sBAAsB,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,EAAE,YAAY,EAAE,YAAY,EAAE,WAAW,EAAE,mBAAmB,EAAE,gBAAgB,EAAE,cAAc,EAAE,QAAQ,EAAE,OAAO,EAAE,iBAAiB,EAAE,WAAW,EAAE,UAAU,EAAE,kBAAkB,EAAE,cAAc,EAAE,UAAU,EAAE,UAAU,EAAE,SAAS,EAAE,cAAc,EAAE,uBAAuB,EAAE,uBAAuB,EAAE,WAAW,EAAE,cAAc,EAAE,qBAAqB,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,aAAa,EAAE,aAAa,EAAE,aAAa,EAAE,IAAI,EAAE,eAAe,EAAE,uBAAuB,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,eAAe,EAAE,cAAc,EAAE,gBAAgB,EAAE,cAAc,EAAE,WAAW,EAAE,UAAU,CAAC,EAAE,OAAO,EAAE,CAAC,gBAAgB,EAAE,UAAU,EAAE,YAAY,EAAE,SAAS,EAAE,QAAQ,EAAE,iBAAiB,EAAE,SAAS,EAAE,SAAS,EAAE,QAAQ,EAAE,QAAQ,EAAE,YAAY,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,EAAE,CAAC,MAAM,EAAE,QAAQ,EAAE,UAAU,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,EAAE,CAAC,aAAa,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,EAAE,CAAC,MAAM,EAAE,WAAW,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,YAAY,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,EAAE,CAAC,eAAe,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,EAAE,CAAC,SAAS,EAAE,aAAa,EAAE,SAAS,EAAE,UAAU,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,aAAa,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,eAAe,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,EAAE,CAAC,SAAS,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,EAAE,CAAC,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,SAAS,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,YAAY,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,EAAE,CAAC,MAAM,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,EAAE,CAAC,QAAQ,EAAE,WAAW,EAAE,WAAW,EAAE,cAAc,EAAE,mBAAmB,EAAE,OAAO,EAAE,eAAe,EAAE,iBAAiB,EAAE,KAAK,EAAE,UAAU,EAAE,aAAa,EAAE,YAAY,EAAE,gBAAgB,EAAE,WAAW,EAAE,YAAY,EAAE,aAAa,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,EAAE,MAAM,EAAE,aAAa,EAAE,aAAa,EAAE,gBAAgB,EAAE,WAAW,EAAE,mBAAmB,EAAE,WAAW,EAAE,gBAAgB,EAAE,eAAe,EAAE,cAAc,EAAE,cAAc,EAAE,kBAAkB,EAAE,qBAAqB,EAAE,SAAS,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,EAAE,UAAU,EAAE,SAAS,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,sBAAsB,EAAE,sBAAsB,EAAE,kBAAkB,CAAC,EAAE,OAAO,EAAE,CAAC,QAAQ,EAAE,QAAQ,EAAE,eAAe,EAAE,cAAc,EAAE,aAAa,EAAE,WAAW,EAAE,YAAY,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,aAAa,EAAE,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,eAAe,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,CAAC,aAAa,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC,EAAE,CAAC;AACnpH;AACA,EAAE,CAAC,wBAAwB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,8BAA8B,EAAE,UAAU,EAAE,CAAC;AACxI,YAAY,IAAI,EAAE,SAAS;AAC3B,YAAY,IAAI,EAAE,CAAC;AACnB,oBAAoB,QAAQ,EAAE,8BAA8B;AAC5D,oBAAoB,UAAU,EAAE,IAAI;AACpC,oBAAoB,OAAO,EAAE;AAC7B,wBAAwB,YAAY;AACpC,wBAAwB,WAAW;AACnC,wBAAwB,kBAAkB;AAC1C,wBAAwB,IAAI;AAC5B,wBAAwB,YAAY;AACpC,wBAAwB,eAAe;AACvC,wBAAwB,YAAY;AACpC,wBAAwB,aAAa;AACrC,wBAAwB;AACxB,qBAAqB;AACrB,oBAAoB,SAAS,EAAE,CAAC,WAAW,CAAC;AAC5C,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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;AACF,iBAAiB;AACjB,SAAS,CAAC,EAAE,cAAc,EAAE,MAAM,CAAC,EAAE,IAAI,EAAE,EAAE,CAAC,WAAW,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,CAAC,iBAAiB,EAAE,CAAC,EAAE,cAAc,EAAE,EAAE,QAAQ,EAAE,CAAC;AAC3H,gBAAgB,IAAI,EAAE,SAAS;AAC/B,gBAAgB,IAAI,EAAE,CAAC,UAAU;AACjC,aAAa,CAAC,EAAE,EAAE,EAAE,CAAC;AACrB,gBAAgB,IAAI,EAAE,SAAS;AAC/B,gBAAgB,IAAI,EAAE,CAAC,IAAI;AAC3B,aAAa,CAAC,EAAE,EAAE,CAAC;;ACnhBnB;AACA;AACA;;;;"}
|
|
@@ -0,0 +1,122 @@
|
|
|
1
|
+
import * as i0 from '@angular/core';
|
|
2
|
+
import { NgModule, ChangeDetectionStrategy, Component } from '@angular/core';
|
|
3
|
+
import * as i1 from '@angular/common';
|
|
4
|
+
import { CommonModule } from '@angular/common';
|
|
5
|
+
import * as i2 from '@angular/forms';
|
|
6
|
+
import { ReactiveFormsModule, FormsModule } from '@angular/forms';
|
|
7
|
+
import { FieldType } from '@ngx-formly/core';
|
|
8
|
+
import * as i4 from '@ngx-translate/core';
|
|
9
|
+
import { TranslateModule } from '@ngx-translate/core';
|
|
10
|
+
import { ToggleSwitch } from 'primeng/toggleswitch';
|
|
11
|
+
import * as i3 from 'primeng/tooltip';
|
|
12
|
+
import { TooltipModule, Tooltip } from 'primeng/tooltip';
|
|
13
|
+
|
|
14
|
+
class CustomSwitchModule {
|
|
15
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.8", ngImport: i0, type: CustomSwitchModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
16
|
+
static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.1.8", ngImport: i0, type: CustomSwitchModule, imports: [CommonModule] });
|
|
17
|
+
static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.1.8", ngImport: i0, type: CustomSwitchModule, imports: [CommonModule] });
|
|
18
|
+
}
|
|
19
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.8", ngImport: i0, type: CustomSwitchModule, decorators: [{
|
|
20
|
+
type: NgModule,
|
|
21
|
+
args: [{
|
|
22
|
+
imports: [CommonModule],
|
|
23
|
+
}]
|
|
24
|
+
}] });
|
|
25
|
+
|
|
26
|
+
class CustomSwitchFieldComponent extends FieldType {
|
|
27
|
+
updateModel(value) {
|
|
28
|
+
this.formControl.setValue(value);
|
|
29
|
+
// التحويل الآمن للمفتاح
|
|
30
|
+
const key = Array.isArray(this.key) ? this.key.join('.') : this.key;
|
|
31
|
+
if (this.model && key) {
|
|
32
|
+
this.model[key] = value ? 1 : 2;
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
ngAfterViewInit() {
|
|
36
|
+
const key = Array.isArray(this.key) ? this.key.join('.') : this.key;
|
|
37
|
+
if (!key)
|
|
38
|
+
return;
|
|
39
|
+
if (this.model[key] === undefined) {
|
|
40
|
+
this.model[key] = 1;
|
|
41
|
+
this.formControl.setValue(true);
|
|
42
|
+
}
|
|
43
|
+
else if (this.model[key] === 1) {
|
|
44
|
+
this.formControl.setValue(true);
|
|
45
|
+
}
|
|
46
|
+
else if (this.model[key] === 2) {
|
|
47
|
+
this.formControl.setValue(false);
|
|
48
|
+
}
|
|
49
|
+
// ✅ تأكد أن الموديل دائماً رقم 1 أو 2
|
|
50
|
+
this.model[key] = this.formControl.value ? 1 : 2;
|
|
51
|
+
}
|
|
52
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.8", ngImport: i0, type: CustomSwitchFieldComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
|
|
53
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.1.8", type: CustomSwitchFieldComponent, isStandalone: true, selector: "formly-field-custom-switch", usesInheritance: true, ngImport: i0, template: `
|
|
54
|
+
<div class="flex items-center justify-between rtl:flex-row-reverse w-full px-2 py-1"
|
|
55
|
+
style=" border-radius: var(--p-inputtext-border-radius);">
|
|
56
|
+
|
|
57
|
+
|
|
58
|
+
<label [for]="id" class="font-bold text-lg text-gray-800">
|
|
59
|
+
{{ (to.label ?? '') | translate }}
|
|
60
|
+
|
|
61
|
+
<span *ngIf="to.required" class="text-red-500">*</span>
|
|
62
|
+
</label>
|
|
63
|
+
|
|
64
|
+
<!-- التبديل نفسه -->
|
|
65
|
+
<p-toggleSwitch
|
|
66
|
+
[formControl]="formControl"
|
|
67
|
+
[inputId]="id"
|
|
68
|
+
[pTooltip]="field.props['tooltip']"
|
|
69
|
+
[styleClass]="''"
|
|
70
|
+
(onChange)="updateModel($event.checked)"
|
|
71
|
+
></p-toggleSwitch>
|
|
72
|
+
|
|
73
|
+
</div>
|
|
74
|
+
|
|
75
|
+
`, isInline: true, dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "ngmodule", type: FormsModule }, { kind: "component", type: ToggleSwitch, selector: "p-toggleswitch, p-toggleSwitch, p-toggle-switch", inputs: ["styleClass", "tabindex", "inputId", "readonly", "trueValue", "falseValue", "ariaLabel", "size", "ariaLabelledBy", "autofocus"], outputs: ["onChange"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "ngmodule", type: TooltipModule }, { kind: "directive", type: i3.Tooltip, selector: "[pTooltip]", inputs: ["tooltipPosition", "tooltipEvent", "positionStyle", "tooltipStyleClass", "tooltipZIndex", "escape", "showDelay", "hideDelay", "life", "positionTop", "positionLeft", "autoHide", "fitContent", "hideOnEscape", "pTooltip", "tooltipDisabled", "tooltipOptions", "appendTo"] }, { kind: "pipe", type: i4.TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
76
|
+
}
|
|
77
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.8", ngImport: i0, type: CustomSwitchFieldComponent, decorators: [{
|
|
78
|
+
type: Component,
|
|
79
|
+
args: [{
|
|
80
|
+
selector: 'formly-field-custom-switch',
|
|
81
|
+
standalone: true,
|
|
82
|
+
imports: [CommonModule,
|
|
83
|
+
ReactiveFormsModule,
|
|
84
|
+
FormsModule,
|
|
85
|
+
ToggleSwitch,
|
|
86
|
+
TranslateModule,
|
|
87
|
+
TooltipModule,
|
|
88
|
+
Tooltip
|
|
89
|
+
],
|
|
90
|
+
template: `
|
|
91
|
+
<div class="flex items-center justify-between rtl:flex-row-reverse w-full px-2 py-1"
|
|
92
|
+
style=" border-radius: var(--p-inputtext-border-radius);">
|
|
93
|
+
|
|
94
|
+
|
|
95
|
+
<label [for]="id" class="font-bold text-lg text-gray-800">
|
|
96
|
+
{{ (to.label ?? '') | translate }}
|
|
97
|
+
|
|
98
|
+
<span *ngIf="to.required" class="text-red-500">*</span>
|
|
99
|
+
</label>
|
|
100
|
+
|
|
101
|
+
<!-- التبديل نفسه -->
|
|
102
|
+
<p-toggleSwitch
|
|
103
|
+
[formControl]="formControl"
|
|
104
|
+
[inputId]="id"
|
|
105
|
+
[pTooltip]="field.props['tooltip']"
|
|
106
|
+
[styleClass]="''"
|
|
107
|
+
(onChange)="updateModel($event.checked)"
|
|
108
|
+
></p-toggleSwitch>
|
|
109
|
+
|
|
110
|
+
</div>
|
|
111
|
+
|
|
112
|
+
`,
|
|
113
|
+
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
114
|
+
}]
|
|
115
|
+
}] });
|
|
116
|
+
|
|
117
|
+
/**
|
|
118
|
+
* Generated bundle index. Do not edit.
|
|
119
|
+
*/
|
|
120
|
+
|
|
121
|
+
export { CustomSwitchFieldComponent, CustomSwitchModule };
|
|
122
|
+
//# sourceMappingURL=elite.framework-ng.ui.core-custom-switch.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"elite.framework-ng.ui.core-custom-switch.mjs","sources":["../tmp-esm2022/custom-switch/lib/custom-switch-module.js","../tmp-esm2022/custom-switch/lib/custom-switch.js","../tmp-esm2022/custom-switch/elite.framework-ng.ui.core-custom-switch.js"],"sourcesContent":["import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport * as i0 from \"@angular/core\";\nexport class CustomSwitchModule {\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: CustomSwitchModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });\n static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"14.0.0\", version: \"20.1.8\", ngImport: i0, type: CustomSwitchModule, imports: [CommonModule] });\n static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: CustomSwitchModule, imports: [CommonModule] });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: CustomSwitchModule, decorators: [{\n type: NgModule,\n args: [{\n imports: [CommonModule],\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3VzdG9tLXN3aXRjaC1tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL25nLnVpLmNvcmUvY3VzdG9tLXN3aXRjaC9zcmMvbGliL2N1c3RvbS1zd2l0Y2gtbW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDOztBQUsvQyxNQUFNLE9BQU8sa0JBQWtCO3VHQUFsQixrQkFBa0I7d0dBQWxCLGtCQUFrQixZQUZuQixZQUFZO3dHQUVYLGtCQUFrQixZQUZuQixZQUFZOzsyRkFFWCxrQkFBa0I7a0JBSDlCLFFBQVE7bUJBQUM7b0JBQ1IsT0FBTyxFQUFFLENBQUMsWUFBWSxDQUFDO2lCQUN4QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuXG5ATmdNb2R1bGUoe1xuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlXSxcbn0pXG5leHBvcnQgY2xhc3MgQ3VzdG9tU3dpdGNoTW9kdWxlIHt9XG4iXX0=","import { CommonModule } from '@angular/common';\nimport { ChangeDetectionStrategy, Component } from '@angular/core';\nimport { ReactiveFormsModule, FormsModule } from '@angular/forms';\nimport { FieldType } from '@ngx-formly/core';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { ToggleSwitch } from 'primeng/toggleswitch';\nimport { TooltipModule, Tooltip } from 'primeng/tooltip';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@angular/common\";\nimport * as i2 from \"@angular/forms\";\nimport * as i3 from \"primeng/tooltip\";\nimport * as i4 from \"@ngx-translate/core\";\nexport class CustomSwitchFieldComponent extends FieldType {\n updateModel(value) {\n this.formControl.setValue(value);\n // التحويل الآمن للمفتاح\n const key = Array.isArray(this.key) ? this.key.join('.') : this.key;\n if (this.model && key) {\n this.model[key] = value ? 1 : 2;\n }\n }\n ngAfterViewInit() {\n const key = Array.isArray(this.key) ? this.key.join('.') : this.key;\n if (!key)\n return;\n if (this.model[key] === undefined) {\n this.model[key] = 1;\n this.formControl.setValue(true);\n }\n else if (this.model[key] === 1) {\n this.formControl.setValue(true);\n }\n else if (this.model[key] === 2) {\n this.formControl.setValue(false);\n }\n // ✅ تأكد أن الموديل دائماً رقم 1 أو 2\n this.model[key] = this.formControl.value ? 1 : 2;\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: CustomSwitchFieldComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });\n static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"20.1.8\", type: CustomSwitchFieldComponent, isStandalone: true, selector: \"formly-field-custom-switch\", usesInheritance: true, ngImport: i0, template: `\r\n <div class=\"flex items-center justify-between rtl:flex-row-reverse w-full px-2 py-1\"\r\n style=\" border-radius: var(--p-inputtext-border-radius);\">\r\n\r\n\r\n <label [for]=\"id\" class=\"font-bold text-lg text-gray-800\">\r\n {{ (to.label ?? '') | translate }}\r\n\r\n <span *ngIf=\"to.required\" class=\"text-red-500\">*</span>\r\n </label>\r\n\r\n <!-- التبديل نفسه -->\r\n <p-toggleSwitch\r\n [formControl]=\"formControl\"\r\n [inputId]=\"id\"\r\n [pTooltip]=\"field.props['tooltip']\"\r\n [styleClass]=\"''\"\r\n (onChange)=\"updateModel($event.checked)\"\r\n ></p-toggleSwitch>\r\n\r\n </div>\r\n\r\n `, isInline: true, dependencies: [{ kind: \"ngmodule\", type: CommonModule }, { kind: \"directive\", type: i1.NgIf, selector: \"[ngIf]\", inputs: [\"ngIf\", \"ngIfThen\", \"ngIfElse\"] }, { kind: \"ngmodule\", type: ReactiveFormsModule }, { kind: \"directive\", type: i2.NgControlStatus, selector: \"[formControlName],[ngModel],[formControl]\" }, { kind: \"directive\", type: i2.FormControlDirective, selector: \"[formControl]\", inputs: [\"formControl\", \"disabled\", \"ngModel\"], outputs: [\"ngModelChange\"], exportAs: [\"ngForm\"] }, { kind: \"ngmodule\", type: FormsModule }, { kind: \"component\", type: ToggleSwitch, selector: \"p-toggleswitch, p-toggleSwitch, p-toggle-switch\", inputs: [\"styleClass\", \"tabindex\", \"inputId\", \"readonly\", \"trueValue\", \"falseValue\", \"ariaLabel\", \"size\", \"ariaLabelledBy\", \"autofocus\"], outputs: [\"onChange\"] }, { kind: \"ngmodule\", type: TranslateModule }, { kind: \"ngmodule\", type: TooltipModule }, { kind: \"directive\", type: i3.Tooltip, selector: \"[pTooltip]\", inputs: [\"tooltipPosition\", \"tooltipEvent\", \"positionStyle\", \"tooltipStyleClass\", \"tooltipZIndex\", \"escape\", \"showDelay\", \"hideDelay\", \"life\", \"positionTop\", \"positionLeft\", \"autoHide\", \"fitContent\", \"hideOnEscape\", \"pTooltip\", \"tooltipDisabled\", \"tooltipOptions\", \"appendTo\"] }, { kind: \"pipe\", type: i4.TranslatePipe, name: \"translate\" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: CustomSwitchFieldComponent, decorators: [{\n type: Component,\n args: [{\n selector: 'formly-field-custom-switch',\n standalone: true,\n imports: [CommonModule,\n ReactiveFormsModule,\n FormsModule,\n ToggleSwitch,\n TranslateModule,\n TooltipModule,\n Tooltip\n ],\n template: `\r\n <div class=\"flex items-center justify-between rtl:flex-row-reverse w-full px-2 py-1\"\r\n style=\" border-radius: var(--p-inputtext-border-radius);\">\r\n\r\n\r\n <label [for]=\"id\" class=\"font-bold text-lg text-gray-800\">\r\n {{ (to.label ?? '') | translate }}\r\n\r\n <span *ngIf=\"to.required\" class=\"text-red-500\">*</span>\r\n </label>\r\n\r\n <!-- التبديل نفسه -->\r\n <p-toggleSwitch\r\n [formControl]=\"formControl\"\r\n [inputId]=\"id\"\r\n [pTooltip]=\"field.props['tooltip']\"\r\n [styleClass]=\"''\"\r\n (onChange)=\"updateModel($event.checked)\"\r\n ></p-toggleSwitch>\r\n\r\n </div>\r\n\r\n `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3VzdG9tLXN3aXRjaC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvbmcudWkuY29yZS9jdXN0b20tc3dpdGNoL3NyYy9saWIvY3VzdG9tLXN3aXRjaC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFpQix1QkFBdUIsRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbEYsT0FBTyxFQUFFLG1CQUFtQixFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxTQUFTLEVBQXFDLE1BQU0sa0JBQWtCLENBQUM7QUFDaEYsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3RELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUNwRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE9BQU8sRUFBRSxNQUFNLGlCQUFpQixDQUFDOzs7Ozs7QUFzQ3pELE1BQU0sT0FBTywwQkFBNkIsU0FBUSxTQUEwQjtJQUUxRSxXQUFXLENBQUMsS0FBYztRQUN4QixJQUFJLENBQUMsV0FBVyxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUVqQyx3QkFBd0I7UUFDeEIsTUFBTSxHQUFHLEdBQUcsS0FBSyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDO1FBRXBFLElBQUksSUFBSSxDQUFDLEtBQUssSUFBSSxHQUFHLEVBQUUsQ0FBQztZQUN0QixJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDbEMsQ0FBQztJQUNILENBQUM7SUFFRixlQUFlO1FBQ2QsTUFBTSxHQUFHLEdBQUcsS0FBSyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDO1FBRXBFLElBQUksQ0FBQyxHQUFHO1lBQUUsT0FBTztRQUVqQixJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLEtBQUssU0FBUyxFQUFFLENBQUM7WUFDbEMsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDcEIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDbEMsQ0FBQzthQUNJLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQztZQUMvQixJQUFJLENBQUMsV0FBVyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNsQyxDQUFDO2FBQ0ksSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDO1lBQy9CLElBQUksQ0FBQyxXQUFXLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ25DLENBQUM7UUFFRCxzQ0FBc0M7UUFDdEMsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDbkQsQ0FBQzt1R0EvQlksMEJBQTBCOzJGQUExQiwwQkFBMEIsNkdBekIzQjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQXNCVCwyREE5QlMsWUFBWSxrSUFDbkIsbUJBQW1CLHlUQUNuQixXQUFXLCtCQUNWLFlBQVksNFBBQ1osZUFBZSw4QkFDZixhQUFhOzsyRkE0Qk4sMEJBQTBCO2tCQXBDdEMsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsNEJBQTRCO29CQUNwQyxVQUFVLEVBQUUsSUFBSTtvQkFDbEIsT0FBTyxFQUFFLENBQUMsWUFBWTt3QkFDbkIsbUJBQW1CO3dCQUNuQixXQUFXO3dCQUNWLFlBQVk7d0JBQ1osZUFBZTt3QkFDZixhQUFhO3dCQUNiLE9BQU87cUJBQ1o7b0JBQ0MsUUFBUSxFQUFFOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBc0JUO29CQUNELGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNO2lCQUNoRCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7IEFmdGVyVmlld0luaXQsIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgUmVhY3RpdmVGb3Jtc01vZHVsZSwgRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IEZpZWxkVHlwZSwgRmllbGRUeXBlQ29uZmlnLCBGb3JtbHlBdHRyaWJ1dGVzIH0gZnJvbSAnQG5neC1mb3JtbHkvY29yZSc7XHJcbmltcG9ydCB7IFRyYW5zbGF0ZU1vZHVsZSB9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xyXG5pbXBvcnQgeyBUb2dnbGVTd2l0Y2ggfSBmcm9tICdwcmltZW5nL3RvZ2dsZXN3aXRjaCc7XHJcbmltcG9ydCB7IFRvb2x0aXBNb2R1bGUsIFRvb2x0aXAgfSBmcm9tICdwcmltZW5nL3Rvb2x0aXAnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdmb3JtbHktZmllbGQtY3VzdG9tLXN3aXRjaCcsXHJcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxyXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsXHJcbiAgICAgUmVhY3RpdmVGb3Jtc01vZHVsZSxcclxuICAgICBGb3Jtc01vZHVsZSxcclxuICAgICAgVG9nZ2xlU3dpdGNoLFxyXG4gICAgICBUcmFuc2xhdGVNb2R1bGUsXHJcbiAgICAgIFRvb2x0aXBNb2R1bGUsXHJcbiAgICAgIFRvb2x0aXBcclxuXSxcclxuICB0ZW1wbGF0ZTogYFxyXG4gPGRpdiBjbGFzcz1cImZsZXggaXRlbXMtY2VudGVyIGp1c3RpZnktYmV0d2VlbiBydGw6ZmxleC1yb3ctcmV2ZXJzZSB3LWZ1bGwgcHgtMiBweS0xXCJcclxuICAgc3R5bGU9XCIgICAgYm9yZGVyLXJhZGl1czogdmFyKC0tcC1pbnB1dHRleHQtYm9yZGVyLXJhZGl1cyk7XCI+XHJcblxyXG5cclxuICAgICAgPGxhYmVsIFtmb3JdPVwiaWRcIiBjbGFzcz1cImZvbnQtYm9sZCB0ZXh0LWxnIHRleHQtZ3JheS04MDBcIj5cclxuICAgICAge3sgKHRvLmxhYmVsID8/ICcnKSB8IHRyYW5zbGF0ZSB9fVxyXG5cclxuICAgICAgPHNwYW4gKm5nSWY9XCJ0by5yZXF1aXJlZFwiIGNsYXNzPVwidGV4dC1yZWQtNTAwXCI+Kjwvc3Bhbj5cclxuICAgIDwvbGFiZWw+XHJcblxyXG4gICAgICA8IS0tINin2YTYqtio2K/ZitmEINmG2YHYs9mHIC0tPlxyXG4gICAgICA8cC10b2dnbGVTd2l0Y2hcclxuICAgICAgICBbZm9ybUNvbnRyb2xdPVwiZm9ybUNvbnRyb2xcIlxyXG4gICAgICAgIFtpbnB1dElkXT1cImlkXCJcclxuICAgICAgICAgW3BUb29sdGlwXT1cImZpZWxkLnByb3BzWyd0b29sdGlwJ11cIlxyXG4gICAgICAgICBbc3R5bGVDbGFzc109XCInJ1wiXHJcbiAgICAgICAgKG9uQ2hhbmdlKT1cInVwZGF0ZU1vZGVsKCRldmVudC5jaGVja2VkKVwiXHJcbiAgICAgID48L3AtdG9nZ2xlU3dpdGNoPlxyXG5cclxuICAgIDwvZGl2PlxyXG5cclxuICBgLFxyXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgQ3VzdG9tU3dpdGNoRmllbGRDb21wb25lbnQgICBleHRlbmRzIEZpZWxkVHlwZTxGaWVsZFR5cGVDb25maWc+ICBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQge1xyXG5cclxuICB1cGRhdGVNb2RlbCh2YWx1ZTogYm9vbGVhbikge1xyXG4gICAgdGhpcy5mb3JtQ29udHJvbC5zZXRWYWx1ZSh2YWx1ZSk7XHJcblxyXG4gICAgLy8g2KfZhNiq2K3ZiNmK2YQg2KfZhNii2YXZhiDZhNmE2YXZgdiq2KfYrVxyXG4gICAgY29uc3Qga2V5ID0gQXJyYXkuaXNBcnJheSh0aGlzLmtleSkgPyB0aGlzLmtleS5qb2luKCcuJykgOiB0aGlzLmtleTtcclxuXHJcbiAgICBpZiAodGhpcy5tb2RlbCAmJiBrZXkpIHtcclxuICAgICAgdGhpcy5tb2RlbFtrZXldID0gdmFsdWUgPyAxIDogMjtcclxuICAgIH1cclxuICB9XHJcblxyXG4gbmdBZnRlclZpZXdJbml0KCkge1xyXG4gIGNvbnN0IGtleSA9IEFycmF5LmlzQXJyYXkodGhpcy5rZXkpID8gdGhpcy5rZXkuam9pbignLicpIDogdGhpcy5rZXk7XHJcblxyXG4gIGlmICgha2V5KSByZXR1cm47XHJcblxyXG4gIGlmICh0aGlzLm1vZGVsW2tleV0gPT09IHVuZGVmaW5lZCkge1xyXG4gICAgdGhpcy5tb2RlbFtrZXldID0gMTtcclxuICAgIHRoaXMuZm9ybUNvbnRyb2wuc2V0VmFsdWUodHJ1ZSk7XHJcbiAgfVxyXG4gIGVsc2UgaWYgKHRoaXMubW9kZWxba2V5XSA9PT0gMSkge1xyXG4gICAgdGhpcy5mb3JtQ29udHJvbC5zZXRWYWx1ZSh0cnVlKTtcclxuICB9XHJcbiAgZWxzZSBpZiAodGhpcy5tb2RlbFtrZXldID09PSAyKSB7XHJcbiAgICB0aGlzLmZvcm1Db250cm9sLnNldFZhbHVlKGZhbHNlKTtcclxuICB9XHJcblxyXG4gIC8vIOKchSDYqtij2YPYryDYo9mGINin2YTZhdmI2K/ZitmEINiv2KfYptmF2KfZiyDYsdmC2YUgMSDYo9mIIDJcclxuICB0aGlzLm1vZGVsW2tleV0gPSB0aGlzLmZvcm1Db250cm9sLnZhbHVlID8gMSA6IDI7XHJcbn1cclxuXHJcbn1cclxuIl19","/**\n * Generated bundle index. Do not edit.\n */\nexport * from './index';\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWxpdGUuZnJhbWV3b3JrLW5nLnVpLmNvcmUtY3VzdG9tLXN3aXRjaC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYnMvbmcudWkuY29yZS9jdXN0b20tc3dpdGNoL3NyYy9lbGl0ZS5mcmFtZXdvcmstbmcudWkuY29yZS1jdXN0b20tc3dpdGNoLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsY0FBYyxTQUFTLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEdlbmVyYXRlZCBidW5kbGUgaW5kZXguIERvIG5vdCBlZGl0LlxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vaW5kZXgnO1xuIl19"],"names":[],"mappings":"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"}
|