@ilhombek/base-form 0.0.8 → 0.0.9

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.
@@ -8,7 +8,7 @@ import * as i1 from 'primeng/inputtext';
8
8
  import { InputTextModule } from 'primeng/inputtext';
9
9
  import * as i1$1 from 'primeng/select';
10
10
  import { SelectModule } from 'primeng/select';
11
- import { of, debounceTime } from 'rxjs';
11
+ import { of, tap, finalize, catchError, throwError, debounceTime } from 'rxjs';
12
12
  import * as i1$2 from 'primeng/datepicker';
13
13
  import { DatePickerModule } from 'primeng/datepicker';
14
14
  import * as i1$3 from 'primeng/password';
@@ -67,6 +67,19 @@ var OptionTypeEnum;
67
67
  OptionTypeEnum["ASYNC"] = "async";
68
68
  })(OptionTypeEnum || (OptionTypeEnum = {}));
69
69
 
70
+ function handleAsyncOption() {
71
+ if (this.optionType() === OptionTypeEnum.EAGER) {
72
+ this._options = this.options();
73
+ return of(this.options());
74
+ }
75
+ this.loading = true;
76
+ return this.asyncOptionObs$()
77
+ .pipe(tap((data) => this._options = data), finalize(() => this.loading = false), catchError((err) => {
78
+ this._messageService.error(`Failed fetching async ${this.label()} options`);
79
+ return throwError(() => err);
80
+ }));
81
+ }
82
+
70
83
  const VALUE_ACCESSOR_PROVIDER$6 = {
71
84
  provide: NG_VALUE_ACCESSOR,
72
85
  useExisting: forwardRef(() => SelectInputComponent),
@@ -82,12 +95,12 @@ class SelectInputComponent {
82
95
  onChangeEmit = output();
83
96
  required = input();
84
97
  optionType = input(OptionTypeEnum.EAGER);
85
- asyncOptionType = input();
98
+ asyncOptionObs$ = input();
86
99
  loading = false;
87
100
  // private _asyncOptionService = inject(AsyncOptionsService)
88
101
  // private _messageService = inject(ToastService)
89
102
  _options = [];
90
- asyncOptionsPipe$ = computed(() => of([]));
103
+ asyncOptionsPipe$ = computed(handleAsyncOption.bind(this));
91
104
  value;
92
105
  disabled = false;
93
106
  // Callbacks
@@ -120,7 +133,7 @@ class SelectInputComponent {
120
133
  this.onTouched();
121
134
  }
122
135
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: SelectInputComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
123
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.18", type: SelectInputComponent, isStandalone: true, selector: "base-form-select-input", inputs: { label: { classPropertyName: "label", publicName: "label", isSignal: true, isRequired: false, transformFunction: null }, options: { classPropertyName: "options", publicName: "options", isSignal: true, isRequired: false, transformFunction: null }, optionLabel: { classPropertyName: "optionLabel", publicName: "optionLabel", isSignal: true, isRequired: false, transformFunction: null }, optionValue: { classPropertyName: "optionValue", publicName: "optionValue", isSignal: true, isRequired: false, transformFunction: null }, normalizeValue: { classPropertyName: "normalizeValue", publicName: "normalizeValue", isSignal: true, isRequired: false, transformFunction: null }, placeholder: { classPropertyName: "placeholder", publicName: "placeholder", isSignal: true, isRequired: false, transformFunction: null }, required: { classPropertyName: "required", publicName: "required", isSignal: true, isRequired: false, transformFunction: null }, optionType: { classPropertyName: "optionType", publicName: "optionType", isSignal: true, isRequired: false, transformFunction: null }, asyncOptionType: { classPropertyName: "asyncOptionType", publicName: "asyncOptionType", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { onChangeEmit: "onChangeEmit" }, providers: [VALUE_ACCESSOR_PROVIDER$6], ngImport: i0, template: "<div class=\"flex flex-col gap-1\">\r\n @if (label()) {\r\n <label class=\"text-sm font-medium text-gray-700\">{{ label() }}</label>\r\n }\r\n <p-select [options]=\"(asyncOptionsPipe$() | async) || []\"\r\n [optionLabel]=\"optionLabel()\"\r\n [optionValue]=\"optionValue()\"\r\n [ngModel]=\"value\"\r\n [loading]=\"loading\"\r\n [placeholder]=\"placeholder()\"\r\n [disabled]=\"disabled\"\r\n appendTo=\"body\"\r\n (onChange)=\"handleChange($event)\"\r\n [ngClass]=\"{'ng-invalid': required() && !value}\"\r\n ></p-select>\r\n</div>\r\n", styles: [":host{display:block}.p-dropdown{border-radius:.5rem;border:1px solid #e5e7eb}.p-dropdown:not(.p-disabled):hover{border-color:#3b82f6}.p-dropdown:not(.p-disabled).p-focus{box-shadow:0 0 0 2px #3b82f680;border-color:#3b82f6}\n"], dependencies: [{ kind: "ngmodule", type: SelectModule }, { kind: "component", type: i1$1.Select, selector: "p-select", inputs: ["id", "scrollHeight", "filter", "name", "style", "panelStyle", "styleClass", "panelStyleClass", "readonly", "required", "editable", "appendTo", "tabindex", "placeholder", "loadingIcon", "filterPlaceholder", "filterLocale", "variant", "inputId", "dataKey", "filterBy", "filterFields", "autofocus", "resetFilterOnHide", "checkmark", "dropdownIcon", "loading", "optionLabel", "optionValue", "optionDisabled", "optionGroupLabel", "optionGroupChildren", "autoDisplayFirst", "group", "showClear", "emptyFilterMessage", "emptyMessage", "lazy", "virtualScroll", "virtualScrollItemSize", "virtualScrollOptions", "size", "overlayOptions", "ariaFilterLabel", "ariaLabel", "ariaLabelledBy", "filterMatchMode", "maxlength", "tooltip", "tooltipPosition", "tooltipPositionStyle", "tooltipStyleClass", "focusOnHover", "selectOnFocus", "autoOptionFocus", "autofocusFilter", "fluid", "disabled", "itemSize", "autoZIndex", "baseZIndex", "showTransitionOptions", "hideTransitionOptions", "filterValue", "options"], outputs: ["onChange", "onFilter", "onFocus", "onBlur", "onClick", "onShow", "onHide", "onClear", "onLazyLoad"] }, { kind: "ngmodule", type: FormsModule }, { 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: CommonModule }, { kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
136
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.18", type: SelectInputComponent, isStandalone: true, selector: "base-form-select-input", inputs: { label: { classPropertyName: "label", publicName: "label", isSignal: true, isRequired: false, transformFunction: null }, options: { classPropertyName: "options", publicName: "options", isSignal: true, isRequired: false, transformFunction: null }, optionLabel: { classPropertyName: "optionLabel", publicName: "optionLabel", isSignal: true, isRequired: false, transformFunction: null }, optionValue: { classPropertyName: "optionValue", publicName: "optionValue", isSignal: true, isRequired: false, transformFunction: null }, normalizeValue: { classPropertyName: "normalizeValue", publicName: "normalizeValue", isSignal: true, isRequired: false, transformFunction: null }, placeholder: { classPropertyName: "placeholder", publicName: "placeholder", isSignal: true, isRequired: false, transformFunction: null }, required: { classPropertyName: "required", publicName: "required", isSignal: true, isRequired: false, transformFunction: null }, optionType: { classPropertyName: "optionType", publicName: "optionType", isSignal: true, isRequired: false, transformFunction: null }, asyncOptionObs$: { classPropertyName: "asyncOptionObs$", publicName: "asyncOptionObs$", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { onChangeEmit: "onChangeEmit" }, providers: [VALUE_ACCESSOR_PROVIDER$6], ngImport: i0, template: "<div class=\"flex flex-col gap-1\">\r\n @if (label()) {\r\n <label class=\"text-sm font-medium text-gray-700\">{{ label() }}</label>\r\n }\r\n <p-select [options]=\"(asyncOptionsPipe$() | async) || []\"\r\n [optionLabel]=\"optionLabel()\"\r\n [optionValue]=\"optionValue()\"\r\n [ngModel]=\"value\"\r\n [loading]=\"loading\"\r\n [placeholder]=\"placeholder()\"\r\n [disabled]=\"disabled\"\r\n appendTo=\"body\"\r\n (onChange)=\"handleChange($event)\"\r\n [ngClass]=\"{'ng-invalid': required() && !value}\"\r\n ></p-select>\r\n</div>\r\n", styles: [":host{display:block}.p-dropdown{border-radius:.5rem;border:1px solid #e5e7eb}.p-dropdown:not(.p-disabled):hover{border-color:#3b82f6}.p-dropdown:not(.p-disabled).p-focus{box-shadow:0 0 0 2px #3b82f680;border-color:#3b82f6}\n"], dependencies: [{ kind: "ngmodule", type: SelectModule }, { kind: "component", type: i1$1.Select, selector: "p-select", inputs: ["id", "scrollHeight", "filter", "name", "style", "panelStyle", "styleClass", "panelStyleClass", "readonly", "required", "editable", "appendTo", "tabindex", "placeholder", "loadingIcon", "filterPlaceholder", "filterLocale", "variant", "inputId", "dataKey", "filterBy", "filterFields", "autofocus", "resetFilterOnHide", "checkmark", "dropdownIcon", "loading", "optionLabel", "optionValue", "optionDisabled", "optionGroupLabel", "optionGroupChildren", "autoDisplayFirst", "group", "showClear", "emptyFilterMessage", "emptyMessage", "lazy", "virtualScroll", "virtualScrollItemSize", "virtualScrollOptions", "size", "overlayOptions", "ariaFilterLabel", "ariaLabel", "ariaLabelledBy", "filterMatchMode", "maxlength", "tooltip", "tooltipPosition", "tooltipPositionStyle", "tooltipStyleClass", "focusOnHover", "selectOnFocus", "autoOptionFocus", "autofocusFilter", "fluid", "disabled", "itemSize", "autoZIndex", "baseZIndex", "showTransitionOptions", "hideTransitionOptions", "filterValue", "options"], outputs: ["onChange", "onFilter", "onFocus", "onBlur", "onClick", "onShow", "onHide", "onClear", "onLazyLoad"] }, { kind: "ngmodule", type: FormsModule }, { 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: CommonModule }, { kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
124
137
  }
125
138
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: SelectInputComponent, decorators: [{
126
139
  type: Component,
@@ -379,14 +392,14 @@ class MultiSelectComponent {
379
392
  onChangeEmit = output();
380
393
  required = input();
381
394
  optionType = input();
382
- asyncOptionType = input();
395
+ asyncOptionObs$ = input();
383
396
  value = [];
384
397
  disabled = false;
385
398
  loading = false;
386
399
  // private _asyncOptionService = inject(AsyncOptionsService)
387
400
  // private _messageService = inject(ToastService)
388
401
  _options = [];
389
- asyncOptionsPipe$ = computed(() => of([]));
402
+ asyncOptionsPipe$ = computed(handleAsyncOption.bind(this));
390
403
  // Callbacks
391
404
  onChange = (value) => { };
392
405
  onTouched = () => { };
@@ -417,7 +430,7 @@ class MultiSelectComponent {
417
430
  this.onTouched();
418
431
  }
419
432
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: MultiSelectComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
420
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.18", type: MultiSelectComponent, isStandalone: true, selector: "base-form-multi-select", inputs: { label: { classPropertyName: "label", publicName: "label", isSignal: true, isRequired: false, transformFunction: null }, options: { classPropertyName: "options", publicName: "options", isSignal: true, isRequired: true, transformFunction: null }, optionLabel: { classPropertyName: "optionLabel", publicName: "optionLabel", isSignal: true, isRequired: false, transformFunction: null }, optionValue: { classPropertyName: "optionValue", publicName: "optionValue", isSignal: true, isRequired: false, transformFunction: null }, normalizeValue: { classPropertyName: "normalizeValue", publicName: "normalizeValue", isSignal: true, isRequired: false, transformFunction: null }, placeholder: { classPropertyName: "placeholder", publicName: "placeholder", isSignal: true, isRequired: false, transformFunction: null }, required: { classPropertyName: "required", publicName: "required", isSignal: true, isRequired: false, transformFunction: null }, optionType: { classPropertyName: "optionType", publicName: "optionType", isSignal: true, isRequired: false, transformFunction: null }, asyncOptionType: { classPropertyName: "asyncOptionType", publicName: "asyncOptionType", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { onChangeEmit: "onChangeEmit" }, providers: [VALUE_ACCESSOR_PROVIDER], ngImport: i0, template: "<div class=\"flex flex-col gap-1\">\r\n @if (label()) {\r\n <label class=\"text-sm font-medium text-gray-700\">{{ label() }}</label>\r\n }\r\n <p-multiselect [options]=\"(asyncOptionsPipe$() | async) || []\"\r\n [optionLabel]=\"optionLabel()\"\r\n [optionValue]=\"optionValue()\"\r\n [placeholder]=\"placeholder()\"\r\n [ngModel]=\"value\"\r\n (onChange)=\"handleChange($event)\"\r\n [disabled]=\"disabled\"\r\n [loading]=\"loading\"\r\n appendTo=\"body\"\r\n [ngClass]=\"{'ng-invalid ng-dirty': required() && !value?.length}\"\r\n />\r\n</div>\r\n", styles: [":host{display:block}\n"], dependencies: [{ kind: "ngmodule", type: MultiSelectModule }, { kind: "component", type: i1$5.MultiSelect, selector: "p-multiSelect, p-multiselect, p-multi-select", inputs: ["id", "ariaLabel", "style", "styleClass", "panelStyle", "panelStyleClass", "inputId", "disabled", "fluid", "readonly", "group", "filter", "filterPlaceHolder", "filterLocale", "overlayVisible", "tabindex", "variant", "appendTo", "dataKey", "name", "ariaLabelledBy", "displaySelectedLabel", "maxSelectedLabels", "selectionLimit", "selectedItemsLabel", "showToggleAll", "emptyFilterMessage", "emptyMessage", "resetFilterOnHide", "dropdownIcon", "chipIcon", "optionLabel", "optionValue", "optionDisabled", "optionGroupLabel", "optionGroupChildren", "showHeader", "filterBy", "scrollHeight", "lazy", "virtualScroll", "loading", "virtualScrollItemSize", "loadingIcon", "virtualScrollOptions", "overlayOptions", "ariaFilterLabel", "filterMatchMode", "tooltip", "tooltipPosition", "tooltipPositionStyle", "tooltipStyleClass", "autofocusFilter", "display", "autocomplete", "size", "showClear", "autofocus", "autoZIndex", "baseZIndex", "showTransitionOptions", "hideTransitionOptions", "defaultLabel", "placeholder", "options", "filterValue", "itemSize", "selectAll", "focusOnHover", "filterFields", "selectOnFocus", "autoOptionFocus", "highlightOnSelect"], outputs: ["onChange", "onFilter", "onFocus", "onBlur", "onClick", "onClear", "onPanelShow", "onPanelHide", "onLazyLoad", "onRemove", "onSelectAllChange"] }, { kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }, { kind: "ngmodule", type: FormsModule }, { 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"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
433
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.18", type: MultiSelectComponent, isStandalone: true, selector: "base-form-multi-select", inputs: { label: { classPropertyName: "label", publicName: "label", isSignal: true, isRequired: false, transformFunction: null }, options: { classPropertyName: "options", publicName: "options", isSignal: true, isRequired: true, transformFunction: null }, optionLabel: { classPropertyName: "optionLabel", publicName: "optionLabel", isSignal: true, isRequired: false, transformFunction: null }, optionValue: { classPropertyName: "optionValue", publicName: "optionValue", isSignal: true, isRequired: false, transformFunction: null }, normalizeValue: { classPropertyName: "normalizeValue", publicName: "normalizeValue", isSignal: true, isRequired: false, transformFunction: null }, placeholder: { classPropertyName: "placeholder", publicName: "placeholder", isSignal: true, isRequired: false, transformFunction: null }, required: { classPropertyName: "required", publicName: "required", isSignal: true, isRequired: false, transformFunction: null }, optionType: { classPropertyName: "optionType", publicName: "optionType", isSignal: true, isRequired: false, transformFunction: null }, asyncOptionObs$: { classPropertyName: "asyncOptionObs$", publicName: "asyncOptionObs$", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { onChangeEmit: "onChangeEmit" }, providers: [VALUE_ACCESSOR_PROVIDER], ngImport: i0, template: "<div class=\"flex flex-col gap-1\">\r\n @if (label()) {\r\n <label class=\"text-sm font-medium text-gray-700\">{{ label() }}</label>\r\n }\r\n <p-multiselect [options]=\"(asyncOptionsPipe$() | async) || []\"\r\n [optionLabel]=\"optionLabel()\"\r\n [optionValue]=\"optionValue()\"\r\n [placeholder]=\"placeholder()\"\r\n [ngModel]=\"value\"\r\n (onChange)=\"handleChange($event)\"\r\n [disabled]=\"disabled\"\r\n [loading]=\"loading\"\r\n appendTo=\"body\"\r\n [ngClass]=\"{'ng-invalid ng-dirty': required() && !value?.length}\"\r\n />\r\n</div>\r\n", styles: [":host{display:block}\n"], dependencies: [{ kind: "ngmodule", type: MultiSelectModule }, { kind: "component", type: i1$5.MultiSelect, selector: "p-multiSelect, p-multiselect, p-multi-select", inputs: ["id", "ariaLabel", "style", "styleClass", "panelStyle", "panelStyleClass", "inputId", "disabled", "fluid", "readonly", "group", "filter", "filterPlaceHolder", "filterLocale", "overlayVisible", "tabindex", "variant", "appendTo", "dataKey", "name", "ariaLabelledBy", "displaySelectedLabel", "maxSelectedLabels", "selectionLimit", "selectedItemsLabel", "showToggleAll", "emptyFilterMessage", "emptyMessage", "resetFilterOnHide", "dropdownIcon", "chipIcon", "optionLabel", "optionValue", "optionDisabled", "optionGroupLabel", "optionGroupChildren", "showHeader", "filterBy", "scrollHeight", "lazy", "virtualScroll", "loading", "virtualScrollItemSize", "loadingIcon", "virtualScrollOptions", "overlayOptions", "ariaFilterLabel", "filterMatchMode", "tooltip", "tooltipPosition", "tooltipPositionStyle", "tooltipStyleClass", "autofocusFilter", "display", "autocomplete", "size", "showClear", "autofocus", "autoZIndex", "baseZIndex", "showTransitionOptions", "hideTransitionOptions", "defaultLabel", "placeholder", "options", "filterValue", "itemSize", "selectAll", "focusOnHover", "filterFields", "selectOnFocus", "autoOptionFocus", "highlightOnSelect"], outputs: ["onChange", "onFilter", "onFocus", "onBlur", "onClick", "onClear", "onPanelShow", "onPanelHide", "onLazyLoad", "onRemove", "onSelectAllChange"] }, { kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }, { kind: "ngmodule", type: FormsModule }, { 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"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
421
434
  }
422
435
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: MultiSelectComponent, decorators: [{
423
436
  type: Component,
@@ -434,7 +447,7 @@ class DynamicFormFieldComponent {
434
447
  return this.form().controls[this.question().key].valid;
435
448
  }
436
449
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: DynamicFormFieldComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
437
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.18", type: DynamicFormFieldComponent, isStandalone: true, selector: "base-form-dynamic-form-field", inputs: { question: { classPropertyName: "question", publicName: "question", isSignal: true, isRequired: true, transformFunction: null }, form: { classPropertyName: "form", publicName: "form", isSignal: true, isRequired: true, transformFunction: null } }, ngImport: i0, template: "<div [formGroup]=\"form()\">\r\n <label class=\"text-sm font-medium text-gray-700\" [attr.for]=\"question().key\">\r\n {{ question().label }} @if(question().required) {<span class=\"text-red-500\">*</span>}\r\n </label>\r\n <div>\r\n @switch (question().controlType) {\r\n @case (QuestionTypeEnum.TextInput) {\r\n @if (question().type === QuestionFieldTypeEnum.Number) {\r\n <base-form-number-input [formControlName]=\"question().key\"\r\n [id]=\"question().key\"\r\n [required]=\"question().required\"\r\n [placeholder]=\"question().placeholder\"/>\r\n } @else if(question().type === QuestionFieldTypeEnum.Password) {\r\n <base-form-password-input [formControlName]=\"question().key\"\r\n [id]=\"question().key\"\r\n [required]=\"question().required\"\r\n [placeholder]=\"question().placeholder\"\r\n />\r\n } @else {\r\n <base-form-text-input [formControlName]=\"question().key\"\r\n [id]=\"question().key\"\r\n [required]=\"question().required\"\r\n [placeholder]=\"question().placeholder\"/>\r\n }\r\n }\r\n @case (QuestionTypeEnum.SelectInput) {\r\n <base-form-select-input [options]=\"$any(question()).options\"\r\n [formControlName]=\"question().key\"\r\n [required]=\"question().required\"\r\n [optionLabel]=\"$any(question()).optionLabel\"\r\n [optionValue]=\"$any(question()).optionValue\"\r\n [optionType]=\"$any(question()).optionType\"\r\n [asyncOptionType]=\"$any(question()).asyncOptionType\"\r\n [placeholder]=\"question().placeholder\"\r\n [normalizeValue]=\"$any(question()).normalizeValue\"\r\n />\r\n }\r\n @case (QuestionTypeEnum.MultiSelect) {\r\n <base-form-multi-select [options]=\"$any(question()).options\"\r\n [formControlName]=\"question().key\"\r\n [optionLabel]=\"$any(question()).optionLabel\"\r\n [optionValue]=\"$any(question()).optionValue\"\r\n [normalizeValue]=\"$any(question()).normalizeValue\"\r\n [optionType]=\"$any(question()).optionType\"\r\n [asyncOptionType]=\"$any(question()).asyncOptionType\"\r\n [required]=\"question().required\"\r\n [placeholder]=\"question().placeholder\"/>\r\n }\r\n @case (QuestionTypeEnum.DatePicker) {\r\n <base-form-datepicker [formControlName]=\"question().key\"\r\n [required]=\"question().required\"\r\n [view]=\"$any(question()).view\"\r\n />\r\n }\r\n @case (QuestionTypeEnum.TextArea) {\r\n <base-form-textarea-input [formControlName]=\"question().key\"\r\n [required]=\"question().required\"/>\r\n }\r\n @case (QuestionTypeEnum.TimePicker) {\r\n <base-form-time-picker [formControlName]=\"question().key\"\r\n [required]=\"question().required\"\r\n [hourFormat]=\"$any(question()).hourFormat\"\r\n />\r\n }\r\n }\r\n </div>\r\n</div>\r\n", styles: [":host{display:block}\n"], dependencies: [{ kind: "component", type: TextInputComponent, selector: "base-form-text-input", inputs: ["label", "icon", "placeholder", "required"], outputs: ["onChangeEmit"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i3.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i3.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i3.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: NumberInputComponent, selector: "base-form-number-input", inputs: ["label", "placeholder", "min", "max", "required"], outputs: ["onChangeEmit"] }, { kind: "component", type: DatepickerComponent, selector: "base-form-datepicker", inputs: ["label", "required", "view"], outputs: ["onChangeEmit"] }, { kind: "component", type: TimePickerComponent, selector: "base-form-time-picker", inputs: ["label", "hourFormat", "required"], outputs: ["onChangeEmit"] }, { kind: "component", type: SelectInputComponent, selector: "base-form-select-input", inputs: ["label", "options", "optionLabel", "optionValue", "normalizeValue", "placeholder", "required", "optionType", "asyncOptionType"], outputs: ["onChangeEmit"] }, { kind: "component", type: TextareaInputComponent, selector: "base-form-textarea-input", inputs: ["label", "placeholder", "required"], outputs: ["onChangeEmit"] }, { kind: "component", type: MultiSelectComponent, selector: "base-form-multi-select", inputs: ["label", "options", "optionLabel", "optionValue", "normalizeValue", "placeholder", "required", "optionType", "asyncOptionType"], outputs: ["onChangeEmit"] }, { kind: "component", type: PasswordInputComponent, selector: "base-form-password-input", inputs: ["label", "icon", "placeholder", "required"], outputs: ["onChangeEmit"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
450
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.18", type: DynamicFormFieldComponent, isStandalone: true, selector: "base-form-dynamic-form-field", inputs: { question: { classPropertyName: "question", publicName: "question", isSignal: true, isRequired: true, transformFunction: null }, form: { classPropertyName: "form", publicName: "form", isSignal: true, isRequired: true, transformFunction: null } }, ngImport: i0, template: "<div [formGroup]=\"form()\">\r\n <label class=\"text-sm font-medium text-gray-700\" [attr.for]=\"question().key\">\r\n {{ question().label }} @if(question().required) {<span class=\"text-red-500\">*</span>}\r\n </label>\r\n <div>\r\n @switch (question().controlType) {\r\n @case (QuestionTypeEnum.TextInput) {\r\n @if (question().type === QuestionFieldTypeEnum.Number) {\r\n <base-form-number-input [formControlName]=\"question().key\"\r\n [id]=\"question().key\"\r\n [required]=\"question().required\"\r\n [placeholder]=\"question().placeholder\"/>\r\n } @else if(question().type === QuestionFieldTypeEnum.Password) {\r\n <base-form-password-input [formControlName]=\"question().key\"\r\n [id]=\"question().key\"\r\n [required]=\"question().required\"\r\n [placeholder]=\"question().placeholder\"\r\n />\r\n } @else {\r\n <base-form-text-input [formControlName]=\"question().key\"\r\n [id]=\"question().key\"\r\n [required]=\"question().required\"\r\n [placeholder]=\"question().placeholder\"/>\r\n }\r\n }\r\n @case (QuestionTypeEnum.SelectInput) {\r\n <base-form-select-input [options]=\"$any(question()).options\"\r\n [formControlName]=\"question().key\"\r\n [required]=\"question().required\"\r\n [optionLabel]=\"$any(question()).optionLabel\"\r\n [optionValue]=\"$any(question()).optionValue\"\r\n [optionType]=\"$any(question()).optionType\"\r\n [asyncOptionObs$]=\"$any(question()).asyncOptionObs$\"\r\n [placeholder]=\"question().placeholder\"\r\n [normalizeValue]=\"$any(question()).normalizeValue\"\r\n />\r\n }\r\n @case (QuestionTypeEnum.MultiSelect) {\r\n <base-form-multi-select [options]=\"$any(question()).options\"\r\n [formControlName]=\"question().key\"\r\n [optionLabel]=\"$any(question()).optionLabel\"\r\n [optionValue]=\"$any(question()).optionValue\"\r\n [normalizeValue]=\"$any(question()).normalizeValue\"\r\n [optionType]=\"$any(question()).optionType\"\r\n [asyncOptionObs$]=\"$any(question()).asyncOptionObs$\"\r\n [required]=\"question().required\"\r\n [placeholder]=\"question().placeholder\"/>\r\n }\r\n @case (QuestionTypeEnum.DatePicker) {\r\n <base-form-datepicker [formControlName]=\"question().key\"\r\n [required]=\"question().required\"\r\n [view]=\"$any(question()).view\"\r\n />\r\n }\r\n @case (QuestionTypeEnum.TextArea) {\r\n <base-form-textarea-input [formControlName]=\"question().key\"\r\n [required]=\"question().required\"/>\r\n }\r\n @case (QuestionTypeEnum.TimePicker) {\r\n <base-form-time-picker [formControlName]=\"question().key\"\r\n [required]=\"question().required\"\r\n [hourFormat]=\"$any(question()).hourFormat\"\r\n />\r\n }\r\n }\r\n </div>\r\n</div>\r\n", styles: [":host{display:block}\n"], dependencies: [{ kind: "component", type: TextInputComponent, selector: "base-form-text-input", inputs: ["label", "icon", "placeholder", "required"], outputs: ["onChangeEmit"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i3.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i3.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i3.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: NumberInputComponent, selector: "base-form-number-input", inputs: ["label", "placeholder", "min", "max", "required"], outputs: ["onChangeEmit"] }, { kind: "component", type: DatepickerComponent, selector: "base-form-datepicker", inputs: ["label", "required", "view"], outputs: ["onChangeEmit"] }, { kind: "component", type: TimePickerComponent, selector: "base-form-time-picker", inputs: ["label", "hourFormat", "required"], outputs: ["onChangeEmit"] }, { kind: "component", type: SelectInputComponent, selector: "base-form-select-input", inputs: ["label", "options", "optionLabel", "optionValue", "normalizeValue", "placeholder", "required", "optionType", "asyncOptionObs$"], outputs: ["onChangeEmit"] }, { kind: "component", type: TextareaInputComponent, selector: "base-form-textarea-input", inputs: ["label", "placeholder", "required"], outputs: ["onChangeEmit"] }, { kind: "component", type: MultiSelectComponent, selector: "base-form-multi-select", inputs: ["label", "options", "optionLabel", "optionValue", "normalizeValue", "placeholder", "required", "optionType", "asyncOptionObs$"], outputs: ["onChangeEmit"] }, { kind: "component", type: PasswordInputComponent, selector: "base-form-password-input", inputs: ["label", "icon", "placeholder", "required"], outputs: ["onChangeEmit"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
438
451
  }
439
452
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: DynamicFormFieldComponent, decorators: [{
440
453
  type: Component,
@@ -448,7 +461,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.18", ngImpo
448
461
  TextareaInputComponent,
449
462
  MultiSelectComponent,
450
463
  PasswordInputComponent
451
- ], changeDetection: ChangeDetectionStrategy.OnPush, template: "<div [formGroup]=\"form()\">\r\n <label class=\"text-sm font-medium text-gray-700\" [attr.for]=\"question().key\">\r\n {{ question().label }} @if(question().required) {<span class=\"text-red-500\">*</span>}\r\n </label>\r\n <div>\r\n @switch (question().controlType) {\r\n @case (QuestionTypeEnum.TextInput) {\r\n @if (question().type === QuestionFieldTypeEnum.Number) {\r\n <base-form-number-input [formControlName]=\"question().key\"\r\n [id]=\"question().key\"\r\n [required]=\"question().required\"\r\n [placeholder]=\"question().placeholder\"/>\r\n } @else if(question().type === QuestionFieldTypeEnum.Password) {\r\n <base-form-password-input [formControlName]=\"question().key\"\r\n [id]=\"question().key\"\r\n [required]=\"question().required\"\r\n [placeholder]=\"question().placeholder\"\r\n />\r\n } @else {\r\n <base-form-text-input [formControlName]=\"question().key\"\r\n [id]=\"question().key\"\r\n [required]=\"question().required\"\r\n [placeholder]=\"question().placeholder\"/>\r\n }\r\n }\r\n @case (QuestionTypeEnum.SelectInput) {\r\n <base-form-select-input [options]=\"$any(question()).options\"\r\n [formControlName]=\"question().key\"\r\n [required]=\"question().required\"\r\n [optionLabel]=\"$any(question()).optionLabel\"\r\n [optionValue]=\"$any(question()).optionValue\"\r\n [optionType]=\"$any(question()).optionType\"\r\n [asyncOptionType]=\"$any(question()).asyncOptionType\"\r\n [placeholder]=\"question().placeholder\"\r\n [normalizeValue]=\"$any(question()).normalizeValue\"\r\n />\r\n }\r\n @case (QuestionTypeEnum.MultiSelect) {\r\n <base-form-multi-select [options]=\"$any(question()).options\"\r\n [formControlName]=\"question().key\"\r\n [optionLabel]=\"$any(question()).optionLabel\"\r\n [optionValue]=\"$any(question()).optionValue\"\r\n [normalizeValue]=\"$any(question()).normalizeValue\"\r\n [optionType]=\"$any(question()).optionType\"\r\n [asyncOptionType]=\"$any(question()).asyncOptionType\"\r\n [required]=\"question().required\"\r\n [placeholder]=\"question().placeholder\"/>\r\n }\r\n @case (QuestionTypeEnum.DatePicker) {\r\n <base-form-datepicker [formControlName]=\"question().key\"\r\n [required]=\"question().required\"\r\n [view]=\"$any(question()).view\"\r\n />\r\n }\r\n @case (QuestionTypeEnum.TextArea) {\r\n <base-form-textarea-input [formControlName]=\"question().key\"\r\n [required]=\"question().required\"/>\r\n }\r\n @case (QuestionTypeEnum.TimePicker) {\r\n <base-form-time-picker [formControlName]=\"question().key\"\r\n [required]=\"question().required\"\r\n [hourFormat]=\"$any(question()).hourFormat\"\r\n />\r\n }\r\n }\r\n </div>\r\n</div>\r\n", styles: [":host{display:block}\n"] }]
464
+ ], changeDetection: ChangeDetectionStrategy.OnPush, template: "<div [formGroup]=\"form()\">\r\n <label class=\"text-sm font-medium text-gray-700\" [attr.for]=\"question().key\">\r\n {{ question().label }} @if(question().required) {<span class=\"text-red-500\">*</span>}\r\n </label>\r\n <div>\r\n @switch (question().controlType) {\r\n @case (QuestionTypeEnum.TextInput) {\r\n @if (question().type === QuestionFieldTypeEnum.Number) {\r\n <base-form-number-input [formControlName]=\"question().key\"\r\n [id]=\"question().key\"\r\n [required]=\"question().required\"\r\n [placeholder]=\"question().placeholder\"/>\r\n } @else if(question().type === QuestionFieldTypeEnum.Password) {\r\n <base-form-password-input [formControlName]=\"question().key\"\r\n [id]=\"question().key\"\r\n [required]=\"question().required\"\r\n [placeholder]=\"question().placeholder\"\r\n />\r\n } @else {\r\n <base-form-text-input [formControlName]=\"question().key\"\r\n [id]=\"question().key\"\r\n [required]=\"question().required\"\r\n [placeholder]=\"question().placeholder\"/>\r\n }\r\n }\r\n @case (QuestionTypeEnum.SelectInput) {\r\n <base-form-select-input [options]=\"$any(question()).options\"\r\n [formControlName]=\"question().key\"\r\n [required]=\"question().required\"\r\n [optionLabel]=\"$any(question()).optionLabel\"\r\n [optionValue]=\"$any(question()).optionValue\"\r\n [optionType]=\"$any(question()).optionType\"\r\n [asyncOptionObs$]=\"$any(question()).asyncOptionObs$\"\r\n [placeholder]=\"question().placeholder\"\r\n [normalizeValue]=\"$any(question()).normalizeValue\"\r\n />\r\n }\r\n @case (QuestionTypeEnum.MultiSelect) {\r\n <base-form-multi-select [options]=\"$any(question()).options\"\r\n [formControlName]=\"question().key\"\r\n [optionLabel]=\"$any(question()).optionLabel\"\r\n [optionValue]=\"$any(question()).optionValue\"\r\n [normalizeValue]=\"$any(question()).normalizeValue\"\r\n [optionType]=\"$any(question()).optionType\"\r\n [asyncOptionObs$]=\"$any(question()).asyncOptionObs$\"\r\n [required]=\"question().required\"\r\n [placeholder]=\"question().placeholder\"/>\r\n }\r\n @case (QuestionTypeEnum.DatePicker) {\r\n <base-form-datepicker [formControlName]=\"question().key\"\r\n [required]=\"question().required\"\r\n [view]=\"$any(question()).view\"\r\n />\r\n }\r\n @case (QuestionTypeEnum.TextArea) {\r\n <base-form-textarea-input [formControlName]=\"question().key\"\r\n [required]=\"question().required\"/>\r\n }\r\n @case (QuestionTypeEnum.TimePicker) {\r\n <base-form-time-picker [formControlName]=\"question().key\"\r\n [required]=\"question().required\"\r\n [hourFormat]=\"$any(question()).hourFormat\"\r\n />\r\n }\r\n }\r\n </div>\r\n</div>\r\n", styles: [":host{display:block}\n"] }]
452
465
  }] });
453
466
 
454
467
  class DynamicFormComponent {
@@ -539,7 +552,7 @@ class QuestionMultiSelect extends QuestionBase {
539
552
  optionValue;
540
553
  options;
541
554
  optionType;
542
- asyncOptionType;
555
+ asyncOptionObs$;
543
556
  normalizeValue;
544
557
  constructor(options) {
545
558
  super(options);
@@ -549,7 +562,7 @@ class QuestionMultiSelect extends QuestionBase {
549
562
  this.options = options.options;
550
563
  this.optionType = options.optionType || OptionTypeEnum.EAGER;
551
564
  if (this.optionType === OptionTypeEnum.ASYNC) {
552
- this.asyncOptionType = options.asyncOptionType;
565
+ this.asyncOptionObs$ = options.asyncOptionObs$;
553
566
  }
554
567
  this.normalizeValue = options.normalizeValue;
555
568
  }
@@ -565,7 +578,7 @@ class QuestionSelectInput extends QuestionBase {
565
578
  optionValue;
566
579
  options;
567
580
  optionType;
568
- asyncOptionType;
581
+ asyncOptionObs$;
569
582
  normalizeValue;
570
583
  constructor(options) {
571
584
  super(options);
@@ -574,7 +587,7 @@ class QuestionSelectInput extends QuestionBase {
574
587
  this.options = options.options;
575
588
  this.optionType = options.optionType || OptionTypeEnum.EAGER;
576
589
  if (this.optionType === OptionTypeEnum.ASYNC) {
577
- this.asyncOptionType = options.asyncOptionType;
590
+ this.asyncOptionObs$ = options.asyncOptionObs$;
578
591
  }
579
592
  this.normalizeValue = options.normalizeValue;
580
593
  }
@@ -1 +1 @@
1
- {"version":3,"file":"ilhombek-base-form.mjs","sources":["../../../projects/base-form/src/lib/components/text-input/text-input.component.ts","../../../projects/base-form/src/lib/components/text-input/text-input.component.html","../../../projects/base-form/src/lib/core/enums/option-type.enum.ts","../../../projects/base-form/src/lib/components/select-input/select-input.component.ts","../../../projects/base-form/src/lib/components/select-input/select-input.component.html","../../../projects/base-form/src/lib/components/datepicker/datepicker.component.ts","../../../projects/base-form/src/lib/components/datepicker/datepicker.component.html","../../../projects/base-form/src/lib/components/password-input/password-input.component.ts","../../../projects/base-form/src/lib/components/password-input/password-input.component.html","../../../projects/base-form/src/lib/components/text-input-number/number-input.component.ts","../../../projects/base-form/src/lib/components/text-input-number/number-input.component.html","../../../projects/base-form/src/lib/core/enums/question-type.enum.ts","../../../projects/base-form/src/lib/components/time-picker/time-picker.component.ts","../../../projects/base-form/src/lib/components/time-picker/time-picker.component.html","../../../projects/base-form/src/lib/components/textarea-input/textarea-input.component.ts","../../../projects/base-form/src/lib/components/textarea-input/textarea-input.component.html","../../../projects/base-form/src/lib/components/multi-select/multi-select.component.ts","../../../projects/base-form/src/lib/components/multi-select/multi-select.component.html","../../../projects/base-form/src/lib/components/dynamic-form-field/dynamic-form-field.component.ts","../../../projects/base-form/src/lib/components/dynamic-form-field/dynamic-form-field.component.html","../../../projects/base-form/src/lib/components/dynamic-form.component.ts","../../../projects/base-form/src/lib/core/dynamic-form/question-base.ts","../../../projects/base-form/src/lib/core/dynamic-form/question-datepicker.ts","../../../projects/base-form/src/lib/core/dynamic-form/question-multi-select.ts","../../../projects/base-form/src/lib/core/dynamic-form/question-password-input.ts","../../../projects/base-form/src/lib/core/dynamic-form/question-select-input.ts","../../../projects/base-form/src/lib/core/dynamic-form/question-text-input.ts","../../../projects/base-form/src/lib/core/dynamic-form/question-textarea.ts","../../../projects/base-form/src/lib/core/dynamic-form/question-time-picker.ts","../../../projects/base-form/src/lib/core/enums/async-option.enum.ts","../../../projects/base-form/src/lib/services/question-control.service.ts","../../../projects/base-form/src/public-api.ts","../../../projects/base-form/src/ilhombek-base-form.ts"],"sourcesContent":["import { CommonModule } from '@angular/common';\r\nimport { ChangeDetectionStrategy, Component, forwardRef, input, output } from '@angular/core';\r\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\r\nimport { InputTextModule } from 'primeng/inputtext';\r\n\r\nconst VALUE_ACCESSOR_PROVIDER = {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => TextInputComponent),\r\n multi: true\r\n}\r\n\r\n@Component({\r\n selector: 'base-form-text-input',\r\n imports: [InputTextModule, CommonModule],\r\n templateUrl: './text-input.component.html',\r\n styleUrl: './text-input.component.scss',\r\n providers: [VALUE_ACCESSOR_PROVIDER],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class TextInputComponent implements ControlValueAccessor {\r\n label = input()\r\n icon = input()\r\n placeholder = input('')\r\n onChangeEmit = output<string>()\r\n required = input()\r\n\r\n value: string = '';\r\n disabled = false;\r\n\r\n onChange = (value: any) => {};\r\n onTouched = () => {};\r\n\r\n writeValue(value: any): void {\r\n this.value = value || '';\r\n }\r\n\r\n registerOnChange(fn: any): void {\r\n this.onChange = fn;\r\n }\r\n\r\n registerOnTouched(fn: any): void {\r\n this.onTouched = fn;\r\n }\r\n\r\n setDisabledState(isDisabled: boolean): void {\r\n this.disabled = isDisabled;\r\n }\r\n\r\n handleInput(event: any): void {\r\n const value = event.target.value;\r\n this.value = value;\r\n this.onChange(value);\r\n this.onChangeEmit.emit(value)\r\n this.onTouched();\r\n }\r\n}\r\n","<div class=\"container\">\r\n @if(label()) {\r\n <label class=\"label\">{{ label() }}</label>\r\n }\r\n <span style=\"width: 100%;\" [ngClass]=\"{'p-input-icon-left': icon()}\">\r\n @if (icon()) {\r\n <i class=\"pi pi-search\" [ngStyle]=\"icon() ? { position: 'absolute', top: '12px' } : null\"\r\n></i>\r\n }\r\n <input pInputText type=\"text\"\r\n class=\"p-inputtext\"\r\n [class.has-icon]=\"icon()\"\r\n [class.invalid]=\"required() && !value\"\r\n [placeholder]=\"placeholder()\"\r\n [disabled]=\"disabled\"\r\n [value]=\"value\"\r\n (input)=\"handleInput($event)\" />\r\n </span>\r\n</div>\r\n","export enum OptionTypeEnum {\r\n EAGER = 'eager',\r\n ASYNC = 'async'\r\n}\r\n","import { CommonModule } from '@angular/common';\r\nimport { ChangeDetectionStrategy, Component, computed, forwardRef, input, output } from '@angular/core';\r\nimport { ControlValueAccessor, FormsModule, NG_VALUE_ACCESSOR } from '@angular/forms';\r\nimport { SelectModule } from 'primeng/select';\r\nimport { OptionTypeEnum } from '../../core/enums/option-type.enum';\r\nimport { of } from 'rxjs';\r\nimport { AsyncOptionEnum } from '../../core/enums/async-option.enum';\r\n\r\nconst VALUE_ACCESSOR_PROVIDER = {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => SelectInputComponent),\r\n multi: true\r\n }\r\n\r\n@Component({\r\n selector: 'base-form-select-input',\r\n imports: [SelectModule, FormsModule, CommonModule],\r\n templateUrl: './select-input.component.html',\r\n styleUrl: './select-input.component.scss',\r\n providers: [VALUE_ACCESSOR_PROVIDER],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class SelectInputComponent implements ControlValueAccessor{\r\n label = input();\r\n options = input();\r\n optionLabel = input('label');\r\n optionValue = input('value');\r\n normalizeValue = input<Function>()\r\n placeholder = input('');\r\n onChangeEmit = output<any>()\r\n required = input()\r\n optionType = input<OptionTypeEnum>(OptionTypeEnum.EAGER)\r\n asyncOptionType = input<AsyncOptionEnum>()\r\n\r\n loading = false;\r\n\r\n // private _asyncOptionService = inject(AsyncOptionsService)\r\n // private _messageService = inject(ToastService)\r\n private _options: any[] = [];\r\n\r\n asyncOptionsPipe$ = computed(() => of([]))\r\n\r\n value: any;\r\n disabled = false;\r\n\r\n // Callbacks\r\n onChange = (value: any) => {};\r\n onTouched = () => {};\r\n\r\n writeValue(value: any): void {\r\n this.value = value;\r\n }\r\n\r\n registerOnChange(fn: any): void {\r\n this.onChange = fn;\r\n }\r\n\r\n registerOnTouched(fn: any): void {\r\n this.onTouched = fn;\r\n }\r\n\r\n setDisabledState(isDisabled: boolean): void {\r\n this.disabled = isDisabled;\r\n }\r\n\r\n handleChange(event: any) {\r\n this.value = event.value;\r\n const _normalizeValueFc = this.normalizeValue()\r\n\r\n if(_normalizeValueFc instanceof Function) {\r\n const normalizedValue = _normalizeValueFc(this.value)\r\n this.onChange(normalizedValue);\r\n this.onChangeEmit.emit(normalizedValue)\r\n } else {\r\n this.onChange(this.value)\r\n this.onChangeEmit.emit(this.value)\r\n }\r\n\r\n this.onTouched();\r\n }\r\n}\r\n","<div class=\"flex flex-col gap-1\">\r\n @if (label()) {\r\n <label class=\"text-sm font-medium text-gray-700\">{{ label() }}</label>\r\n }\r\n <p-select [options]=\"(asyncOptionsPipe$() | async) || []\"\r\n [optionLabel]=\"optionLabel()\"\r\n [optionValue]=\"optionValue()\"\r\n [ngModel]=\"value\"\r\n [loading]=\"loading\"\r\n [placeholder]=\"placeholder()\"\r\n [disabled]=\"disabled\"\r\n appendTo=\"body\"\r\n (onChange)=\"handleChange($event)\"\r\n [ngClass]=\"{'ng-invalid': required() && !value}\"\r\n ></p-select>\r\n</div>\r\n","import { CommonModule } from '@angular/common';\r\nimport { ChangeDetectionStrategy, Component, forwardRef, input, output } from '@angular/core';\r\nimport { ControlValueAccessor, FormsModule, NG_VALUE_ACCESSOR } from '@angular/forms';\r\nimport { DatePickerModule, DatePickerTypeView } from 'primeng/datepicker';\r\n\r\nconst VALUE_ACCESSOR_PROVIDER = {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => DatepickerComponent),\r\n multi: true\r\n}\r\n\r\n@Component({\r\n selector: 'base-form-datepicker',\r\n imports: [DatePickerModule, CommonModule, FormsModule],\r\n templateUrl: './datepicker.component.html',\r\n styleUrl: './datepicker.component.scss',\r\n providers: [VALUE_ACCESSOR_PROVIDER],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class DatepickerComponent implements ControlValueAccessor{\r\n label = input();\r\n onChangeEmit = output<any>()\r\n required = input()\r\n view = input<DatePickerTypeView>(\"date\")\r\n value: any;\r\n disabled = false;\r\n\r\n // Callbacks\r\n onChange = (value: any) => {};\r\n onTouched = () => {};\r\n\r\n writeValue(value: any): void {\r\n if(this.view() === 'year') {\r\n this.value = new Date(value, 0, 1);\r\n } else {\r\n this.value = value\r\n }\r\n }\r\n\r\n registerOnChange(fn: any): void {\r\n this.onChange = fn;\r\n }\r\n\r\n registerOnTouched(fn: any): void {\r\n this.onTouched = fn;\r\n }\r\n\r\n setDisabledState(isDisabled: boolean): void {\r\n this.disabled = isDisabled;\r\n }\r\n\r\n handleChange(event: any) {\r\n const date = new Date(event)\r\n const dates = [date.getDay(), date.getMonth(), date.getFullYear()];\r\n const formatedValue = this.view() === 'year' ? dates[2] : this.view() === 'month' ? dates[1] : dates.join('-')\r\n\r\n this.value = event;\r\n\r\n this.onChange(formatedValue);\r\n this.onChangeEmit.emit(this.value)\r\n this.onTouched();\r\n }\r\n}\r\n","<div class=\"flex flex-col gap-1\">\r\n @if (label()) {\r\n <label class=\"text-sm font-medium text-gray-700\">{{ label() }}</label>\r\n }\r\n <p-datepicker [iconDisplay]=\"'input'\"\r\n [ngClass]=\"{'ng-invalid ng-dirty': required() && !value}\"\r\n [showIcon]=\"true\"\r\n [view]=\"view()\"\r\n [ngModel]=\"value\"\r\n [dateFormat]=\"view() === 'year' ? 'yy' : view() === 'month' ? 'mm' : 'dd-mm-yy'\"\r\n (onSelect)=\"handleChange($event)\"\r\n appendTo=\"body\"\r\n inputId=\"icondisplay\" />\r\n</div>\r\n\r\n","import { CommonModule } from '@angular/common';\r\nimport { ChangeDetectionStrategy, Component, forwardRef, input, output } from '@angular/core';\r\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\r\nimport { PasswordModule } from 'primeng/password';\r\n\r\nconst VALUE_ACCESSOR_PROVIDER = {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => PasswordInputComponent),\r\n multi: true\r\n}\r\n\r\n@Component({\r\n selector: 'base-form-password-input',\r\n imports: [PasswordModule, CommonModule],\r\n templateUrl: './password-input.component.html',\r\n styleUrl: './password-input.component.scss',\r\n providers: [VALUE_ACCESSOR_PROVIDER],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class PasswordInputComponent implements ControlValueAccessor{\r\n label = input()\r\n icon = input()\r\n placeholder = input('')\r\n onChangeEmit = output<string>()\r\n required = input()\r\n\r\n value: string = '';\r\n disabled = false;\r\n\r\n onChange = (value: any) => {};\r\n onTouched = () => {};\r\n\r\n writeValue(value: any): void {\r\n this.value = value || '';\r\n }\r\n\r\n registerOnChange(fn: any): void {\r\n this.onChange = fn;\r\n }\r\n\r\n registerOnTouched(fn: any): void {\r\n this.onTouched = fn;\r\n }\r\n\r\n setDisabledState(isDisabled: boolean): void {\r\n this.disabled = isDisabled;\r\n }\r\n\r\n handleInput(event: any): void {\r\n const value = event.target.value;\r\n this.value = value;\r\n this.onChange(value);\r\n this.onChangeEmit.emit(value)\r\n this.onTouched();\r\n }\r\n}\r\n","<div class=\"flex flex-col gap-1\">\r\n @if(label()) {\r\n <label class=\"text-sm font-medium text-gray-700\">{{ label() }}</label>\r\n }\r\n <span class=\"w-full\" [ngClass]=\"{'p-input-icon-left': icon()}\">\r\n @if (icon()) {\r\n <i class=\"pi pi-search\" [ngClass]=\"{'absolute top-[12px]': icon()}\"></i>\r\n }\r\n <p-password id=\"password\"\r\n [feedback]=\"false\"\r\n showClear=\"true\"\r\n (input)=\"handleInput($event)\"\r\n [ngClass]=\"{'!pl-[40px]': icon(), 'ng-invalid ng-dirty': required() && !value}\"\r\n [placeholder]=\"placeholder()\"\r\n [disabled]=\"disabled\"\r\n class=\" w-full\" />\r\n </span>\r\n</div>\r\n","import { CommonModule } from '@angular/common';\r\nimport { ChangeDetectionStrategy, Component, forwardRef, input, output } from '@angular/core';\r\nimport { FormsModule, NG_VALUE_ACCESSOR } from '@angular/forms';\r\nimport { InputNumberInputEvent, InputNumberModule } from \"primeng/inputnumber\";\r\n\r\nconst VALUE_ACCESSOR_PROVIDER = {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => NumberInputComponent),\r\n multi: true\r\n}\r\n\r\n@Component({\r\n selector: 'base-form-number-input',\r\n imports: [InputNumberModule, CommonModule, FormsModule],\r\n templateUrl: './number-input.component.html',\r\n styleUrl: './number-input.component.scss',\r\n providers: [VALUE_ACCESSOR_PROVIDER],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class NumberInputComponent {\r\n label = input()\r\n placeholder = input('')\r\n min = input(0)\r\n max = input()\r\n required = input()\r\n\r\n onChangeEmit = output<any>()\r\n\r\n value!: any;\r\n disabled = false;\r\n\r\n onChange = (value: any) => {};\r\n onTouched = () => {};\r\n\r\n writeValue(value: any): void {\r\n this.value = value || '';\r\n this.onChange(this.value)\r\n }\r\n\r\n registerOnChange(fn: any): void {\r\n this.onChange = fn;\r\n }\r\n\r\n registerOnTouched(fn: any): void {\r\n this.onTouched = fn;\r\n }\r\n\r\n setDisabledState(isDisabled: boolean): void {\r\n this.disabled = isDisabled;\r\n }\r\n\r\n handleInput({value}: InputNumberInputEvent): void {\r\n this.value = value;\r\n this.onChange(value);\r\n this.onChangeEmit.emit(value)\r\n this.onTouched();\r\n }\r\n}\r\n","<div class=\"flex flex-col gap-1\">\r\n @if(label()) {\r\n <label class=\"text-sm font-medium text-gray-700\">{{ label() }}</label>\r\n }\r\n <p-inputNumber [min]=\"min()\"\r\n [max]=\"max()\"\r\n [ngModel]=\"value\"\r\n [fluid]=\"true\"\r\n [placeholder]=\"placeholder()\"\r\n (onInput)=\"handleInput($event)\"\r\n [showButtons]=\"true\"\r\n class=\"p-inputnumber w-full\" [ngClass]=\"{'ng-invalid ng-dirty': required() && !value}\">\r\n </p-inputNumber>\r\n</div>\r\n","export enum QuestionTypeEnum {\r\n TextInput = 'textInput',\r\n SelectInput = 'selectInput',\r\n DatePicker = 'datePicker',\r\n TextArea = 'textArea',\r\n TimePicker = 'timePicker',\r\n MultiSelect = 'multiSelect'\r\n}\r\n\r\nexport enum QuestionFieldTypeEnum {\r\n Number = 'number',\r\n Email = 'email',\r\n Password = 'password'\r\n}\r\n","import { CommonModule } from '@angular/common';\r\nimport { ChangeDetectionStrategy, Component, forwardRef, input, output } from '@angular/core';\r\nimport { ControlValueAccessor, FormsModule, NG_VALUE_ACCESSOR } from '@angular/forms';\r\nimport { DatePickerModule } from \"primeng/datepicker\";\r\n\r\nconst VALUE_ACCESSOR_PROVIDER = {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => TimePickerComponent),\r\n multi: true\r\n}\r\n\r\n@Component({\r\n selector: 'base-form-time-picker',\r\n imports: [DatePickerModule, CommonModule, FormsModule],\r\n templateUrl: './time-picker.component.html',\r\n styleUrl: './time-picker.component.scss',\r\n providers: [VALUE_ACCESSOR_PROVIDER],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class TimePickerComponent implements ControlValueAccessor{\r\n label = input();\r\n hourFormat = input<string>('24')\r\n onChangeEmit = output<any>()\r\n required = input()\r\n\r\n value: any;\r\n disabled = false;\r\n\r\n // Callbacks\r\n onChange = (value: any) => {};\r\n onTouched = () => {};\r\n\r\n writeValue(value: any): void {\r\n if(value) {\r\n const [h, m] = value.split(\":\").map(Number);\r\n this.value = new Date(1970, 0, 1, h, m);\r\n }\r\n }\r\n\r\n registerOnChange(fn: any): void {\r\n this.onChange = fn;\r\n }\r\n\r\n registerOnTouched(fn: any): void {\r\n this.onTouched = fn;\r\n }\r\n\r\n setDisabledState(isDisabled: boolean): void {\r\n this.disabled = isDisabled;\r\n }\r\n\r\n handleChange(event: any) {\r\n const date = new Date(event)\r\n const dates = [date.getMinutes(), date.getHours()];\r\n this.value = event;\r\n this.onChange(`${dates[1]}:${dates[0]}`);\r\n this.onChangeEmit.emit(this.value)\r\n this.onTouched();\r\n }\r\n}\r\n","<div class=\"flex flex-col gap-1\">\r\n @if (label()) {\r\n <label class=\"text-sm font-medium text-gray-700\">{{ label() }}</label>\r\n }\r\n <p-datepicker [iconDisplay]=\"'input'\"\r\n [ngClass]=\"{'ng-invalid ng-dirty': required() && !value}\"\r\n [showIcon]=\"true\"\r\n (onSelect)=\"handleChange($event)\"\r\n appendTo=\"body\"\r\n [ngModel]=\"value\"\r\n [timeOnly]=\"true\"\r\n [hourFormat]=\"hourFormat()\"\r\n inputId=\"icondisplay\" />\r\n</div>\r\n\r\n","import { CommonModule } from '@angular/common';\r\nimport { ChangeDetectionStrategy, Component, forwardRef, input, output } from '@angular/core';\r\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\r\n\r\nconst VALUE_ACCESSOR_PROVIDER = {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => TextareaInputComponent),\r\n multi: true\r\n}\r\n\r\n@Component({\r\n selector: 'base-form-textarea-input',\r\n imports: [CommonModule],\r\n templateUrl: './textarea-input.component.html',\r\n styleUrl: './textarea-input.component.scss',\r\n providers: [VALUE_ACCESSOR_PROVIDER],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class TextareaInputComponent implements ControlValueAccessor{\r\n label = input()\r\n placeholder = input('')\r\n required = input()\r\n onChangeEmit = output<string>()\r\n\r\n value: string = '';\r\n disabled = false;\r\n\r\n onChange = (value: any) => {};\r\n onTouched = () => {};\r\n\r\n writeValue(value: any): void {\r\n this.value = value || '';\r\n }\r\n\r\n registerOnChange(fn: any): void {\r\n this.onChange = fn;\r\n }\r\n\r\n registerOnTouched(fn: any): void {\r\n this.onTouched = fn;\r\n }\r\n\r\n setDisabledState(isDisabled: boolean): void {\r\n this.disabled = isDisabled;\r\n }\r\n\r\n handleInput(event: any): void {\r\n const value = event.target.value;\r\n this.value = value;\r\n this.onChange(value);\r\n this.onChangeEmit.emit(value)\r\n this.onTouched();\r\n }\r\n}\r\n","<div class=\"flex flex-col gap-1\">\r\n @if(label()) {\r\n <label class=\"text-sm font-medium text-gray-700\">{{ label() }}</label>\r\n }\r\n <span class=\"w-full\">\r\n <textarea pInputTextarea rows=\"3\" class=\"p-inputtext w-full\" [placeholder]=\"placeholder()\" [disabled]=\"disabled\"\r\n [ngClass]=\"{'ng-invalid ng-dirty': required() && !value}\"\r\n [value]=\"value\" (input)=\"handleInput($event)\"></textarea>\r\n </span>\r\n</div>\r\n","import { CommonModule } from '@angular/common';\r\nimport { ChangeDetectionStrategy, Component, computed, forwardRef, input, output } from '@angular/core';\r\nimport { ControlValueAccessor, FormsModule, NG_VALUE_ACCESSOR } from '@angular/forms';\r\nimport { MultiSelectModule } from 'primeng/multiselect';\r\nimport { OptionTypeEnum } from '../../core/enums/option-type.enum';\r\nimport { AsyncOptionEnum } from '../../core/enums/async-option.enum';\r\nimport { of } from 'rxjs';\r\n\r\nconst VALUE_ACCESSOR_PROVIDER = {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => MultiSelectComponent),\r\n multi: true\r\n}\r\n\r\n@Component({\r\n selector: 'base-form-multi-select',\r\n imports: [MultiSelectModule, CommonModule, FormsModule],\r\n templateUrl: './multi-select.component.html',\r\n styleUrl: './multi-select.component.scss',\r\n providers: [VALUE_ACCESSOR_PROVIDER],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class MultiSelectComponent implements ControlValueAccessor {\r\n label = input<string>();\r\n options = input.required<any[]>();\r\n optionLabel = input('label');\r\n optionValue = input('value');\r\n normalizeValue = input<Function>()\r\n placeholder = input('');\r\n onChangeEmit = output<any>()\r\n required = input()\r\n optionType = input<OptionTypeEnum>()\r\n asyncOptionType = input<AsyncOptionEnum>()\r\n\r\n value: any[] = [];\r\n disabled = false;\r\n loading = false\r\n // private _asyncOptionService = inject(AsyncOptionsService)\r\n // private _messageService = inject(ToastService)\r\n private _options: any[] = [];\r\n\r\n asyncOptionsPipe$ = computed(() => of([]))\r\n\r\n // Callbacks\r\n onChange = (value: any) => { };\r\n onTouched = () => { };\r\n\r\n writeValue(value: any): void {\r\n this.value = value?.map((opt: any) => opt[this.optionValue()])\r\n }\r\n\r\n registerOnChange(fn: any): void {\r\n this.onChange = fn;\r\n }\r\n\r\n registerOnTouched(fn: any): void {\r\n this.onTouched = fn;\r\n }\r\n\r\n setDisabledState(isDisabled: boolean): void {\r\n this.disabled = isDisabled;\r\n }\r\n\r\n handleChange(event: any) {\r\n this.value = event.value;\r\n const _normalizeValueFc = this.normalizeValue()\r\n\r\n if (_normalizeValueFc instanceof Function) {\r\n const normalizedValue = _normalizeValueFc(this.value, this._options)\r\n this.onChange(normalizedValue);\r\n this.onChangeEmit.emit(normalizedValue)\r\n } else {\r\n this.onChange(this.value)\r\n this.onChangeEmit.emit(this.value)\r\n }\r\n\r\n this.onTouched();\r\n }\r\n}\r\n","<div class=\"flex flex-col gap-1\">\r\n @if (label()) {\r\n <label class=\"text-sm font-medium text-gray-700\">{{ label() }}</label>\r\n }\r\n <p-multiselect [options]=\"(asyncOptionsPipe$() | async) || []\"\r\n [optionLabel]=\"optionLabel()\"\r\n [optionValue]=\"optionValue()\"\r\n [placeholder]=\"placeholder()\"\r\n [ngModel]=\"value\"\r\n (onChange)=\"handleChange($event)\"\r\n [disabled]=\"disabled\"\r\n [loading]=\"loading\"\r\n appendTo=\"body\"\r\n [ngClass]=\"{'ng-invalid ng-dirty': required() && !value?.length}\"\r\n />\r\n</div>\r\n","import { ChangeDetectionStrategy, Component, CUSTOM_ELEMENTS_SCHEMA, input, NO_ERRORS_SCHEMA } from '@angular/core';\r\nimport { FormGroup, ReactiveFormsModule } from '@angular/forms';\r\nimport { TextInputComponent } from \"../text-input/text-input.component\";\r\nimport { SelectInputComponent } from \"../select-input/select-input.component\";\r\nimport { DatepickerComponent } from '../datepicker/datepicker.component';\r\nimport { PasswordInputComponent } from '../password-input/password-input.component';\r\nimport { NumberInputComponent } from '../text-input-number/number-input.component';\r\nimport { QuestionFieldTypeEnum, QuestionTypeEnum } from '../../core/enums/question-type.enum';\r\nimport { TimePickerComponent } from '../time-picker/time-picker.component';\r\nimport { TextareaInputComponent } from '../textarea-input/textarea-input.component';\r\nimport { MultiSelectComponent } from '../multi-select/multi-select.component';\r\nimport { QuestionBaseType } from '../../core/models/question-base';\r\nimport { OptionTypeEnum } from '../../core/enums/option-type.enum';\r\n\r\n@Component({\r\n selector: 'base-form-dynamic-form-field',\r\n imports: [\r\n TextInputComponent,\r\n ReactiveFormsModule,\r\n NumberInputComponent,\r\n DatepickerComponent,\r\n TimePickerComponent,\r\n SelectInputComponent,\r\n TextareaInputComponent,\r\n MultiSelectComponent,\r\n PasswordInputComponent\r\n ],\r\n templateUrl: './dynamic-form-field.component.html',\r\n styleUrl: './dynamic-form-field.component.scss',\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class DynamicFormFieldComponent {\r\n readonly question = input.required<QuestionBaseType>();\r\n readonly form = input.required<FormGroup>();\r\n readonly QuestionTypeEnum = QuestionTypeEnum;\r\n readonly QuestionFieldTypeEnum = QuestionFieldTypeEnum\r\n readonly OptionTypeEnum = OptionTypeEnum\r\n\r\n get isValid() {\r\n return this.form().controls[this.question().key].valid;\r\n }\r\n}\r\n","<div [formGroup]=\"form()\">\r\n <label class=\"text-sm font-medium text-gray-700\" [attr.for]=\"question().key\">\r\n {{ question().label }} @if(question().required) {<span class=\"text-red-500\">*</span>}\r\n </label>\r\n <div>\r\n @switch (question().controlType) {\r\n @case (QuestionTypeEnum.TextInput) {\r\n @if (question().type === QuestionFieldTypeEnum.Number) {\r\n <base-form-number-input [formControlName]=\"question().key\"\r\n [id]=\"question().key\"\r\n [required]=\"question().required\"\r\n [placeholder]=\"question().placeholder\"/>\r\n } @else if(question().type === QuestionFieldTypeEnum.Password) {\r\n <base-form-password-input [formControlName]=\"question().key\"\r\n [id]=\"question().key\"\r\n [required]=\"question().required\"\r\n [placeholder]=\"question().placeholder\"\r\n />\r\n } @else {\r\n <base-form-text-input [formControlName]=\"question().key\"\r\n [id]=\"question().key\"\r\n [required]=\"question().required\"\r\n [placeholder]=\"question().placeholder\"/>\r\n }\r\n }\r\n @case (QuestionTypeEnum.SelectInput) {\r\n <base-form-select-input [options]=\"$any(question()).options\"\r\n [formControlName]=\"question().key\"\r\n [required]=\"question().required\"\r\n [optionLabel]=\"$any(question()).optionLabel\"\r\n [optionValue]=\"$any(question()).optionValue\"\r\n [optionType]=\"$any(question()).optionType\"\r\n [asyncOptionType]=\"$any(question()).asyncOptionType\"\r\n [placeholder]=\"question().placeholder\"\r\n [normalizeValue]=\"$any(question()).normalizeValue\"\r\n />\r\n }\r\n @case (QuestionTypeEnum.MultiSelect) {\r\n <base-form-multi-select [options]=\"$any(question()).options\"\r\n [formControlName]=\"question().key\"\r\n [optionLabel]=\"$any(question()).optionLabel\"\r\n [optionValue]=\"$any(question()).optionValue\"\r\n [normalizeValue]=\"$any(question()).normalizeValue\"\r\n [optionType]=\"$any(question()).optionType\"\r\n [asyncOptionType]=\"$any(question()).asyncOptionType\"\r\n [required]=\"question().required\"\r\n [placeholder]=\"question().placeholder\"/>\r\n }\r\n @case (QuestionTypeEnum.DatePicker) {\r\n <base-form-datepicker [formControlName]=\"question().key\"\r\n [required]=\"question().required\"\r\n [view]=\"$any(question()).view\"\r\n />\r\n }\r\n @case (QuestionTypeEnum.TextArea) {\r\n <base-form-textarea-input [formControlName]=\"question().key\"\r\n [required]=\"question().required\"/>\r\n }\r\n @case (QuestionTypeEnum.TimePicker) {\r\n <base-form-time-picker [formControlName]=\"question().key\"\r\n [required]=\"question().required\"\r\n [hourFormat]=\"$any(question()).hourFormat\"\r\n />\r\n }\r\n }\r\n </div>\r\n</div>\r\n","import { ChangeDetectionStrategy, Component, input } from '@angular/core';\r\nimport { FormGroup, ReactiveFormsModule } from '@angular/forms';\r\nimport { DynamicFormFieldComponent } from './dynamic-form-field/dynamic-form-field.component';\r\nimport { ButtonModule } from 'primeng/button';\r\nimport { CommonModule } from '@angular/common';\r\nimport { FormContainer } from '../core/models/question-base';\r\n\r\n@Component({\r\n selector: 'base-form-dynamic-form',\r\n imports: [\r\n ReactiveFormsModule,\r\n DynamicFormFieldComponent,\r\n ButtonModule,\r\n CommonModule,\r\n ],\r\n template: `\r\n <form [formGroup]=\"form()\">\r\n <div class=\"space-y-2 w-full\">\r\n @for (container of formContainer(); track container) {\r\n <div class=\"grid gap-4 w-full\" [ngStyle]=\"{'grid-template-columns': 'repeat(' + container.containers.length + ', minmax(0, 1fr))'}\">\r\n @for (question of container.containers; track question) {\r\n <base-form-dynamic-form-field [question]=\"question\" [form]=\"form()\" />\r\n }\r\n </div>\r\n }\r\n </div>\r\n </form>\r\n `,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class DynamicFormComponent {\r\n readonly formContainer = input<FormContainer[]>([]);\r\n readonly form = input.required<FormGroup>();\r\n}\r\n","import { ValidatorFn } from \"@angular/forms\";\r\nimport { QuestionFieldTypeEnum, QuestionTypeEnum } from \".././enums/question-type.enum\";\r\nimport { QuestionOptionsModel } from \"../models/question-base\";\r\n\r\nexport class QuestionBase {\r\n value: any;\r\n key: string;\r\n label: string;\r\n required: boolean;\r\n order: number;\r\n controlType: QuestionTypeEnum;\r\n type: QuestionFieldTypeEnum;\r\n validators: ValidatorFn[];\r\n placeholder: string;\r\n nonNullable: boolean;\r\n onValueChange?: (value: any, questions?: QuestionBase[]) => void;\r\n\r\n constructor(\r\n options: QuestionOptionsModel,\r\n ) {\r\n this.value = options.value;\r\n this.key = options.key || '';\r\n this.label = options.label || '';\r\n this.required = !!options.required;\r\n this.order = options.order === undefined ? 1 : options.order;\r\n this.controlType = (options.controlType || '') as QuestionTypeEnum;\r\n this.type = (options.type || '') as QuestionFieldTypeEnum;\r\n this.nonNullable = options.nonNullable || true;\r\n this.validators = options.validators || [];\r\n this.placeholder = options.placeholder || ''\r\n this.onValueChange = options.onValueChange\r\n }\r\n}\r\n","import { DatePickerTypeView } from \"primeng/datepicker\";\r\nimport { QuestionTypeEnum } from \".././enums/question-type.enum\";\r\nimport { QuestionBase } from \"./question-base\";\r\nimport { QuestionOptionsModel } from \"../models/question-base\";\r\n\r\nexport class QuestionDatePicker extends QuestionBase {\r\n override controlType = QuestionTypeEnum.DatePicker;\r\n view?: DatePickerTypeView\r\n\r\n constructor(options: QuestionOptionsModel & {view?: DatePickerTypeView}) {\r\n super(options)\r\n this.view = options.view || 'date'\r\n }\r\n}\r\n","import { AsyncOptionEnum } from '../enums/async-option.enum';\r\nimport { OptionTypeEnum } from '../enums/option-type.enum';\r\nimport { QuestionTypeEnum } from '../enums/question-type.enum';\r\nimport { QuestionBase } from './question-base';\r\nimport { SelectInputOptions } from './question-select-input';\r\n\r\nexport class QuestionMultiSelect extends QuestionBase {\r\n override controlType = QuestionTypeEnum.MultiSelect;\r\n loading: boolean;\r\n optionLabel: string;\r\n optionValue: string;\r\n options: any[];\r\n optionType?: OptionTypeEnum;\r\n asyncOptionType?: AsyncOptionEnum;\r\n normalizeValue?: (value: any, options?: any[]) => any\r\n\r\n constructor(options: SelectInputOptions) {\r\n super(options)\r\n this.loading = options.loading || false;\r\n this.optionLabel = options.optionLabel || 'label'\r\n this.optionValue = options.optionValue || 'value'\r\n this.options = options.options\r\n this.optionType = options.optionType || OptionTypeEnum.EAGER\r\n if(this.optionType === OptionTypeEnum.ASYNC) {\r\n this.asyncOptionType = options.asyncOptionType\r\n }\r\n this.normalizeValue = options.normalizeValue\r\n }\r\n}\r\n","import { QuestionTypeEnum } from '../enums/question-type.enum';\r\nimport {QuestionBase} from './question-base';\r\n\r\nexport class QuestionPasswordInput extends QuestionBase {\r\n override controlType = QuestionTypeEnum.TextInput;\r\n}\r\n","import { AsyncOptionEnum } from \"../enums/async-option.enum\";\r\nimport { OptionTypeEnum } from \"../enums/option-type.enum\";\r\nimport { QuestionTypeEnum } from \"../enums/question-type.enum\";\r\nimport { QuestionOptionsModel } from \"../models/question-base\";\r\nimport { QuestionBase } from \"./question-base\";\r\n\r\ninterface SelectInputOptionsAsync extends SelectInputOptionsBase {\r\n optionType: OptionTypeEnum.ASYNC;\r\n asyncOptionType: AsyncOptionEnum;\r\n}\r\n\r\ninterface SelectInputOptionsEager extends SelectInputOptionsBase {\r\n optionType?: OptionTypeEnum.EAGER;\r\n asyncOptionType?: never;\r\n}\r\n\r\ninterface SelectInputOptionsBase extends QuestionOptionsModel{\r\n loading?: boolean;\r\n optionLabel?: string;\r\n optionValue?: string;\r\n options?: any,\r\n optionType?: OptionTypeEnum;\r\n asyncOptionType?: any;\r\n normalizeValue?: (options: any, value: any) => any\r\n}\r\n\r\nexport type SelectInputOptions = SelectInputOptionsAsync | SelectInputOptionsEager;\r\n\r\nexport class QuestionSelectInput extends QuestionBase {\r\n override controlType = QuestionTypeEnum.SelectInput;\r\n optionLabel: string;\r\n optionValue: string;\r\n options: any[];\r\n optionType?: OptionTypeEnum;\r\n asyncOptionType?: AsyncOptionEnum;\r\n normalizeValue?: <T = any>(value: any, options?: any) => T\r\n\r\n constructor(options: SelectInputOptions) {\r\n super(options)\r\n this.optionLabel = options.optionLabel || 'label'\r\n this.optionValue = options.optionValue || 'value'\r\n this.options = options.options\r\n this.optionType = options.optionType || OptionTypeEnum.EAGER\r\n if(this.optionType === OptionTypeEnum.ASYNC) {\r\n this.asyncOptionType = options.asyncOptionType\r\n }\r\n this.normalizeValue = options.normalizeValue\r\n }\r\n}\r\n","import { QuestionTypeEnum } from '../enums/question-type.enum';\r\nimport {QuestionBase} from './question-base';\r\n\r\nexport class QuestionTextInput extends QuestionBase{\r\n override controlType = QuestionTypeEnum.TextInput;\r\n}\r\n","import { QuestionTypeEnum } from '../enums/question-type.enum';\r\nimport {QuestionBase} from './question-base';\r\n\r\nexport class QuestionTextArea extends QuestionBase {\r\n override controlType = QuestionTypeEnum.TextArea;\r\n}\r\n","import { QuestionOptionsModel } from \"../../core/models/question-base\";\r\nimport { QuestionTypeEnum } from \"../enums/question-type.enum\";\r\nimport { QuestionBase } from \"./question-base\";\r\n\r\ninterface TimePickerOptions extends QuestionOptionsModel{\r\n hourFormat?: string\r\n}\r\n\r\nexport class QuestionTimePicker extends QuestionBase {\r\n override controlType = QuestionTypeEnum.TimePicker;\r\n hourFormat!: string\r\n\r\n constructor(options: TimePickerOptions) {\r\n super(options)\r\n this.hourFormat = options.hourFormat || '24'\r\n }\r\n}\r\n","export enum AsyncOptionEnum {\r\n SUBJECTS = 'subjects',\r\n FACILITIES = 'facilities',\r\n ROOM_TYPES = 'room_types',\r\n ROOMS = 'rooms',\r\n BUILDINGS = 'buildings',\r\n TEACHERS = 'teachers',\r\n CLASS_TYPES = 'class_types'\r\n}\r\n","import {Injectable} from '@angular/core';\r\nimport {AbstractControl, FormControl, FormGroup, Validators} from '@angular/forms';\r\nimport { debounceTime } from 'rxjs';\r\nimport { FormContainer } from '../core/models/question-base';\r\nimport { QuestionBase } from '../core/dynamic-form/question-base';\r\n\r\n@Injectable()\r\nexport class QuestionControlService {\r\n\r\n toFormGroup(containers: FormContainer[]): FormGroup {\r\n const questions = this._getQuestionsFromContainer(containers);\r\n\r\n const group: Record<string, AbstractControl> = {};\r\n questions.forEach((question) => {\r\n const control = new FormControl(question.value || null, {nonNullable: question.nonNullable})\r\n\r\n if(question.required) {\r\n control.addValidators(Validators.required)\r\n }\r\n\r\n if(question.validators.length) {\r\n control.addValidators(question.validators)\r\n }\r\n\r\n group[question.key] = control\r\n });\r\n\r\n questions.forEach(question => {\r\n group[question.key].valueChanges\r\n .pipe(\r\n debounceTime(250)\r\n )\r\n .subscribe((value) => {\r\n if(question.onValueChange instanceof Function) {\r\n question.onValueChange(value, questions)\r\n }\r\n })\r\n })\r\n return new FormGroup(group);\r\n }\r\n\r\n private _getQuestionsFromContainer(containers: FormContainer[]) {\r\n return containers.reduce((prev: QuestionBase[], curr: FormContainer) => {\r\n prev.push(...curr.containers)\r\n return prev\r\n }, [])\r\n }\r\n}\r\n","/*\r\n * Public API Surface of base-form\r\n */\r\n\r\nexport * from './lib/components/dynamic-form.component';\r\nexport * from './lib/components/datepicker/datepicker.component';\r\nexport * from './lib/components/dynamic-form-field/dynamic-form-field.component';\r\nexport * from './lib/components/multi-select/multi-select.component';\r\nexport * from './lib/components/password-input/password-input.component';\r\nexport * from './lib/components/select-input/select-input.component';\r\nexport * from './lib/components/text-input/text-input.component';\r\nexport * from './lib/components/text-input-number/number-input.component';\r\nexport * from './lib/components/textarea-input/textarea-input.component';\r\nexport * from './lib/components/time-picker/time-picker.component';\r\nexport * from './lib/core/dynamic-form/question-base';\r\nexport * from './lib/core/dynamic-form/question-datepicker';\r\nexport * from './lib/core/dynamic-form/question-multi-select';\r\nexport * from './lib/core/dynamic-form/question-password-input';\r\nexport * from './lib/core/dynamic-form/question-select-input';\r\nexport * from './lib/core/dynamic-form/question-text-input';\r\nexport * from './lib/core/dynamic-form/question-textarea';\r\nexport * from './lib/core/dynamic-form/question-time-picker';\r\nexport * from './lib/core/enums/question-type.enum';\r\nexport * from './lib/core/enums/option-type.enum';\r\nexport * from './lib/core/enums/async-option.enum';\r\nexport * from './lib/core/models/question-base';\r\nexport * from './lib/services/question-control.service';\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["VALUE_ACCESSOR_PROVIDER","i1","i2","i3"],"mappings":";;;;;;;;;;;;;;;;;;;;;AAKA,MAAMA,yBAAuB,GAAG;AAC9B,IAAA,OAAO,EAAE,iBAAiB;AAC1B,IAAA,WAAW,EAAE,UAAU,CAAC,MAAM,kBAAkB,CAAC;AACjD,IAAA,KAAK,EAAE;CACR;MAUY,kBAAkB,CAAA;IAC7B,KAAK,GAAG,KAAK,EAAE;IACf,IAAI,GAAG,KAAK,EAAE;AACd,IAAA,WAAW,GAAG,KAAK,CAAC,EAAE,CAAC;IACvB,YAAY,GAAG,MAAM,EAAU;IAC/B,QAAQ,GAAG,KAAK,EAAE;IAElB,KAAK,GAAW,EAAE;IAClB,QAAQ,GAAG,KAAK;AAEhB,IAAA,QAAQ,GAAG,CAAC,KAAU,KAAI,GAAG;AAC7B,IAAA,SAAS,GAAG,MAAK,GAAG;AAEpB,IAAA,UAAU,CAAC,KAAU,EAAA;AACnB,QAAA,IAAI,CAAC,KAAK,GAAG,KAAK,IAAI,EAAE;;AAG1B,IAAA,gBAAgB,CAAC,EAAO,EAAA;AACtB,QAAA,IAAI,CAAC,QAAQ,GAAG,EAAE;;AAGpB,IAAA,iBAAiB,CAAC,EAAO,EAAA;AACvB,QAAA,IAAI,CAAC,SAAS,GAAG,EAAE;;AAGrB,IAAA,gBAAgB,CAAC,UAAmB,EAAA;AAClC,QAAA,IAAI,CAAC,QAAQ,GAAG,UAAU;;AAG5B,IAAA,WAAW,CAAC,KAAU,EAAA;AACpB,QAAA,MAAM,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,KAAK;AAChC,QAAA,IAAI,CAAC,KAAK,GAAG,KAAK;AAClB,QAAA,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC;AACpB,QAAA,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC;QAC7B,IAAI,CAAC,SAAS,EAAE;;wGAlCP,kBAAkB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;4FAAlB,kBAAkB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,sBAAA,EAAA,MAAA,EAAA,EAAA,KAAA,EAAA,EAAA,iBAAA,EAAA,OAAA,EAAA,UAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,IAAA,EAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,WAAA,EAAA,EAAA,iBAAA,EAAA,aAAA,EAAA,UAAA,EAAA,aAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,QAAA,EAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,OAAA,EAAA,EAAA,YAAA,EAAA,cAAA,EAAA,EAAA,SAAA,EAHlB,CAACA,yBAAuB,CAAC,0BChBtC,qrBAmBA,EAAA,MAAA,EAAA,CAAA,4eAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EDNY,eAAe,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,SAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,OAAA,EAAA,OAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAE,YAAY,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,SAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA;;4FAM5B,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBAR9B,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,sBAAsB,EACvB,OAAA,EAAA,CAAC,eAAe,EAAE,YAAY,CAAC,EAG7B,SAAA,EAAA,CAACA,yBAAuB,CAAC,EACnB,eAAA,EAAA,uBAAuB,CAAC,MAAM,EAAA,QAAA,EAAA,qrBAAA,EAAA,MAAA,EAAA,CAAA,4eAAA,CAAA,EAAA;;;IEjBrC;AAAZ,CAAA,UAAY,cAAc,EAAA;AACxB,IAAA,cAAA,CAAA,OAAA,CAAA,GAAA,OAAe;AACf,IAAA,cAAA,CAAA,OAAA,CAAA,GAAA,OAAe;AACjB,CAAC,EAHW,cAAc,KAAd,cAAc,GAGzB,EAAA,CAAA,CAAA;;ACKD,MAAMA,yBAAuB,GAAG;AAC1B,IAAA,OAAO,EAAE,iBAAiB;AAC1B,IAAA,WAAW,EAAE,UAAU,CAAC,MAAM,oBAAoB,CAAC;AACnD,IAAA,KAAK,EAAE;CACR;MAUQ,oBAAoB,CAAA;IAC9B,KAAK,GAAG,KAAK,EAAE;IACf,OAAO,GAAG,KAAK,EAAE;AACjB,IAAA,WAAW,GAAG,KAAK,CAAC,OAAO,CAAC;AAC5B,IAAA,WAAW,GAAG,KAAK,CAAC,OAAO,CAAC;IAC5B,cAAc,GAAG,KAAK,EAAY;AAClC,IAAA,WAAW,GAAG,KAAK,CAAC,EAAE,CAAC;IACvB,YAAY,GAAG,MAAM,EAAO;IAC5B,QAAQ,GAAG,KAAK,EAAE;AAClB,IAAA,UAAU,GAAG,KAAK,CAAiB,cAAc,CAAC,KAAK,CAAC;IACxD,eAAe,GAAG,KAAK,EAAmB;IAE1C,OAAO,GAAG,KAAK;;;IAIP,QAAQ,GAAU,EAAE;IAE7B,iBAAiB,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC;AAEzC,IAAA,KAAK;IACL,QAAQ,GAAG,KAAK;;AAGjB,IAAA,QAAQ,GAAG,CAAC,KAAU,KAAI,GAAG;AAC7B,IAAA,SAAS,GAAG,MAAK,GAAG;AAEpB,IAAA,UAAU,CAAC,KAAU,EAAA;AACnB,QAAA,IAAI,CAAC,KAAK,GAAG,KAAK;;AAGpB,IAAA,gBAAgB,CAAC,EAAO,EAAA;AACtB,QAAA,IAAI,CAAC,QAAQ,GAAG,EAAE;;AAGpB,IAAA,iBAAiB,CAAC,EAAO,EAAA;AACvB,QAAA,IAAI,CAAC,SAAS,GAAG,EAAE;;AAGrB,IAAA,gBAAgB,CAAC,UAAmB,EAAA;AAClC,QAAA,IAAI,CAAC,QAAQ,GAAG,UAAU;;AAG5B,IAAA,YAAY,CAAC,KAAU,EAAA;AACrB,QAAA,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK;AACxB,QAAA,MAAM,iBAAiB,GAAG,IAAI,CAAC,cAAc,EAAE;AAE/C,QAAA,IAAG,iBAAiB,YAAY,QAAQ,EAAE;YACxC,MAAM,eAAe,GAAG,iBAAiB,CAAC,IAAI,CAAC,KAAK,CAAC;AACrD,YAAA,IAAI,CAAC,QAAQ,CAAC,eAAe,CAAC;AAC9B,YAAA,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,eAAe,CAAC;;aAClC;AACL,YAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC;YACzB,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC;;QAGpC,IAAI,CAAC,SAAS,EAAE;;wGAxDP,oBAAoB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;4FAApB,oBAAoB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,wBAAA,EAAA,MAAA,EAAA,EAAA,KAAA,EAAA,EAAA,iBAAA,EAAA,OAAA,EAAA,UAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,OAAA,EAAA,EAAA,iBAAA,EAAA,SAAA,EAAA,UAAA,EAAA,SAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,WAAA,EAAA,EAAA,iBAAA,EAAA,aAAA,EAAA,UAAA,EAAA,aAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,WAAA,EAAA,EAAA,iBAAA,EAAA,aAAA,EAAA,UAAA,EAAA,aAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,cAAA,EAAA,EAAA,iBAAA,EAAA,gBAAA,EAAA,UAAA,EAAA,gBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,WAAA,EAAA,EAAA,iBAAA,EAAA,aAAA,EAAA,UAAA,EAAA,aAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,QAAA,EAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,iBAAA,EAAA,YAAA,EAAA,UAAA,EAAA,YAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,eAAA,EAAA,EAAA,iBAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,iBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,OAAA,EAAA,EAAA,YAAA,EAAA,cAAA,EAAA,EAAA,SAAA,EAHpB,CAACA,yBAAuB,CAAC,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECnBtC,ooBAgBA,EAAA,MAAA,EAAA,CAAA,kOAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EDAY,YAAY,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,IAAA,CAAA,MAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,IAAA,EAAA,cAAA,EAAA,QAAA,EAAA,MAAA,EAAA,OAAA,EAAA,YAAA,EAAA,YAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,aAAA,EAAA,aAAA,EAAA,mBAAA,EAAA,cAAA,EAAA,SAAA,EAAA,SAAA,EAAA,SAAA,EAAA,UAAA,EAAA,cAAA,EAAA,WAAA,EAAA,mBAAA,EAAA,WAAA,EAAA,cAAA,EAAA,SAAA,EAAA,aAAA,EAAA,aAAA,EAAA,gBAAA,EAAA,kBAAA,EAAA,qBAAA,EAAA,kBAAA,EAAA,OAAA,EAAA,WAAA,EAAA,oBAAA,EAAA,cAAA,EAAA,MAAA,EAAA,eAAA,EAAA,uBAAA,EAAA,sBAAA,EAAA,MAAA,EAAA,gBAAA,EAAA,iBAAA,EAAA,WAAA,EAAA,gBAAA,EAAA,iBAAA,EAAA,WAAA,EAAA,SAAA,EAAA,iBAAA,EAAA,sBAAA,EAAA,mBAAA,EAAA,cAAA,EAAA,eAAA,EAAA,iBAAA,EAAA,iBAAA,EAAA,OAAA,EAAA,UAAA,EAAA,UAAA,EAAA,YAAA,EAAA,YAAA,EAAA,uBAAA,EAAA,uBAAA,EAAA,aAAA,EAAA,SAAA,CAAA,EAAA,OAAA,EAAA,CAAA,UAAA,EAAA,UAAA,EAAA,SAAA,EAAA,QAAA,EAAA,SAAA,EAAA,QAAA,EAAA,QAAA,EAAA,SAAA,EAAA,YAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAE,WAAW,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,qDAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,SAAA,EAAA,gBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAE,YAAY,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,SAAA,EAAA,IAAA,EAAA,OAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA;;4FAMtC,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBARhC,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,wBAAwB,EACzB,OAAA,EAAA,CAAC,YAAY,EAAE,WAAW,EAAE,YAAY,CAAC,EAAA,SAAA,EAGvC,CAACH,yBAAuB,CAAC,EACnB,eAAA,EAAA,uBAAuB,CAAC,MAAM,EAAA,QAAA,EAAA,ooBAAA,EAAA,MAAA,EAAA,CAAA,kOAAA,CAAA,EAAA;;;AEfjD,MAAMA,yBAAuB,GAAG;AAC9B,IAAA,OAAO,EAAE,iBAAiB;AAC1B,IAAA,WAAW,EAAE,UAAU,CAAC,MAAM,mBAAmB,CAAC;AAClD,IAAA,KAAK,EAAE;CACR;MAUY,mBAAmB,CAAA;IAC9B,KAAK,GAAG,KAAK,EAAE;IACf,YAAY,GAAG,MAAM,EAAO;IAC5B,QAAQ,GAAG,KAAK,EAAE;AAClB,IAAA,IAAI,GAAG,KAAK,CAAqB,MAAM,CAAC;AACxC,IAAA,KAAK;IACL,QAAQ,GAAG,KAAK;;AAGhB,IAAA,QAAQ,GAAG,CAAC,KAAU,KAAI,GAAG;AAC7B,IAAA,SAAS,GAAG,MAAK,GAAG;AAEpB,IAAA,UAAU,CAAC,KAAU,EAAA;AACnB,QAAA,IAAG,IAAI,CAAC,IAAI,EAAE,KAAK,MAAM,EAAE;AACzB,YAAA,IAAI,CAAC,KAAK,GAAG,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC;;aAC7B;AACL,YAAA,IAAI,CAAC,KAAK,GAAG,KAAK;;;AAItB,IAAA,gBAAgB,CAAC,EAAO,EAAA;AACtB,QAAA,IAAI,CAAC,QAAQ,GAAG,EAAE;;AAGpB,IAAA,iBAAiB,CAAC,EAAO,EAAA;AACvB,QAAA,IAAI,CAAC,SAAS,GAAG,EAAE;;AAGrB,IAAA,gBAAgB,CAAC,UAAmB,EAAA;AAClC,QAAA,IAAI,CAAC,QAAQ,GAAG,UAAU;;AAG5B,IAAA,YAAY,CAAC,KAAU,EAAA;AACrB,QAAA,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,KAAK,CAAC;AAC5B,QAAA,MAAM,KAAK,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,IAAI,CAAC,QAAQ,EAAE,EAAE,IAAI,CAAC,WAAW,EAAE,CAAC;AAClE,QAAA,MAAM,aAAa,GAAG,IAAI,CAAC,IAAI,EAAE,KAAK,MAAM,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,IAAI,EAAE,KAAK,OAAO,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC;AAE9G,QAAA,IAAI,CAAC,KAAK,GAAG,KAAK;AAElB,QAAA,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC;QAC5B,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC;QAClC,IAAI,CAAC,SAAS,EAAE;;wGAzCP,mBAAmB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;4FAAnB,mBAAmB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,sBAAA,EAAA,MAAA,EAAA,EAAA,KAAA,EAAA,EAAA,iBAAA,EAAA,OAAA,EAAA,UAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,QAAA,EAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,IAAA,EAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,OAAA,EAAA,EAAA,YAAA,EAAA,cAAA,EAAA,EAAA,SAAA,EAHnB,CAACA,yBAAuB,CAAC,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EChBtC,koBAeA,EAAA,MAAA,EAAA,CAAA,2DAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EDFY,gBAAgB,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,IAAA,CAAA,UAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,MAAA,EAAA,CAAA,aAAA,EAAA,OAAA,EAAA,YAAA,EAAA,YAAA,EAAA,SAAA,EAAA,MAAA,EAAA,iBAAA,EAAA,aAAA,EAAA,gBAAA,EAAA,WAAA,EAAA,eAAA,EAAA,UAAA,EAAA,YAAA,EAAA,mBAAA,EAAA,gBAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,mBAAA,EAAA,UAAA,EAAA,OAAA,EAAA,MAAA,EAAA,UAAA,EAAA,eAAA,EAAA,iBAAA,EAAA,gBAAA,EAAA,eAAA,EAAA,YAAA,EAAA,UAAA,EAAA,UAAA,EAAA,YAAA,EAAA,YAAA,EAAA,aAAA,EAAA,UAAA,EAAA,aAAA,EAAA,UAAA,EAAA,6BAAA,EAAA,WAAA,EAAA,UAAA,EAAA,eAAA,EAAA,cAAA,EAAA,eAAA,EAAA,uBAAA,EAAA,uBAAA,EAAA,WAAA,EAAA,YAAA,EAAA,YAAA,EAAA,iBAAA,EAAA,YAAA,EAAA,aAAA,EAAA,sBAAA,EAAA,SAAA,EAAA,eAAA,EAAA,WAAA,EAAA,uBAAA,EAAA,uBAAA,EAAA,UAAA,EAAA,SAAA,EAAA,MAAA,EAAA,SAAA,EAAA,SAAA,EAAA,eAAA,EAAA,cAAA,EAAA,WAAA,EAAA,UAAA,EAAA,mBAAA,EAAA,gBAAA,EAAA,gBAAA,EAAA,QAAA,EAAA,MAAA,EAAA,aAAA,CAAA,EAAA,OAAA,EAAA,CAAA,SAAA,EAAA,QAAA,EAAA,SAAA,EAAA,UAAA,EAAA,SAAA,EAAA,SAAA,EAAA,cAAA,EAAA,cAAA,EAAA,eAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAE,YAAY,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAE,WAAW,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,qDAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,SAAA,EAAA,gBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA;;4FAM1C,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAR/B,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,sBAAsB,EACvB,OAAA,EAAA,CAAC,gBAAgB,EAAE,YAAY,EAAE,WAAW,CAAC,EAAA,SAAA,EAG3C,CAACD,yBAAuB,CAAC,EACnB,eAAA,EAAA,uBAAuB,CAAC,MAAM,EAAA,QAAA,EAAA,koBAAA,EAAA,MAAA,EAAA,CAAA,2DAAA,CAAA,EAAA;;;AEZjD,MAAMA,yBAAuB,GAAG;AAC9B,IAAA,OAAO,EAAE,iBAAiB;AAC1B,IAAA,WAAW,EAAE,UAAU,CAAC,MAAM,sBAAsB,CAAC;AACrD,IAAA,KAAK,EAAE;CACR;MAUY,sBAAsB,CAAA;IACjC,KAAK,GAAG,KAAK,EAAE;IACf,IAAI,GAAG,KAAK,EAAE;AACd,IAAA,WAAW,GAAG,KAAK,CAAC,EAAE,CAAC;IACvB,YAAY,GAAG,MAAM,EAAU;IAC/B,QAAQ,GAAG,KAAK,EAAE;IAElB,KAAK,GAAW,EAAE;IAClB,QAAQ,GAAG,KAAK;AAEhB,IAAA,QAAQ,GAAG,CAAC,KAAU,KAAI,GAAG;AAC7B,IAAA,SAAS,GAAG,MAAK,GAAG;AAEpB,IAAA,UAAU,CAAC,KAAU,EAAA;AACnB,QAAA,IAAI,CAAC,KAAK,GAAG,KAAK,IAAI,EAAE;;AAG1B,IAAA,gBAAgB,CAAC,EAAO,EAAA;AACtB,QAAA,IAAI,CAAC,QAAQ,GAAG,EAAE;;AAGpB,IAAA,iBAAiB,CAAC,EAAO,EAAA;AACvB,QAAA,IAAI,CAAC,SAAS,GAAG,EAAE;;AAGrB,IAAA,gBAAgB,CAAC,UAAmB,EAAA;AAClC,QAAA,IAAI,CAAC,QAAQ,GAAG,UAAU;;AAG5B,IAAA,WAAW,CAAC,KAAU,EAAA;AACpB,QAAA,MAAM,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,KAAK;AAChC,QAAA,IAAI,CAAC,KAAK,GAAG,KAAK;AAClB,QAAA,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC;AACpB,QAAA,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC;QAC7B,IAAI,CAAC,SAAS,EAAE;;wGAlCP,sBAAsB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;4FAAtB,sBAAsB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,0BAAA,EAAA,MAAA,EAAA,EAAA,KAAA,EAAA,EAAA,iBAAA,EAAA,OAAA,EAAA,UAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,IAAA,EAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,WAAA,EAAA,EAAA,iBAAA,EAAA,aAAA,EAAA,UAAA,EAAA,aAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,QAAA,EAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,OAAA,EAAA,EAAA,YAAA,EAAA,cAAA,EAAA,EAAA,SAAA,EAHtB,CAACA,yBAAuB,CAAC,0BChBtC,qvBAkBA,EAAA,MAAA,EAAA,CAAA,qQAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EDLY,cAAc,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,IAAA,CAAA,QAAA,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,CAAA,WAAA,EAAA,OAAA,EAAA,gBAAA,EAAA,OAAA,EAAA,UAAA,EAAA,aAAA,EAAA,aAAA,EAAA,aAAA,EAAA,WAAA,EAAA,aAAA,EAAA,WAAA,EAAA,aAAA,EAAA,SAAA,EAAA,UAAA,EAAA,UAAA,EAAA,YAAA,EAAA,MAAA,EAAA,iBAAA,EAAA,YAAA,EAAA,OAAA,EAAA,YAAA,EAAA,uBAAA,EAAA,uBAAA,EAAA,cAAA,EAAA,aAAA,EAAA,WAAA,EAAA,WAAA,EAAA,SAAA,EAAA,UAAA,CAAA,EAAA,OAAA,EAAA,CAAA,SAAA,EAAA,QAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAE,YAAY,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA;;4FAM3B,sBAAsB,EAAA,UAAA,EAAA,CAAA;kBARlC,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,0BAA0B,EAC3B,OAAA,EAAA,CAAC,cAAc,EAAE,YAAY,CAAC,EAG5B,SAAA,EAAA,CAACD,yBAAuB,CAAC,EACnB,eAAA,EAAA,uBAAuB,CAAC,MAAM,EAAA,QAAA,EAAA,qvBAAA,EAAA,MAAA,EAAA,CAAA,qQAAA,CAAA,EAAA;;;AEZjD,MAAMA,yBAAuB,GAAG;AAC9B,IAAA,OAAO,EAAE,iBAAiB;AAC1B,IAAA,WAAW,EAAE,UAAU,CAAC,MAAM,oBAAoB,CAAC;AACnD,IAAA,KAAK,EAAE;CACR;MAUY,oBAAoB,CAAA;IAC/B,KAAK,GAAG,KAAK,EAAE;AACf,IAAA,WAAW,GAAG,KAAK,CAAC,EAAE,CAAC;AACvB,IAAA,GAAG,GAAG,KAAK,CAAC,CAAC,CAAC;IACd,GAAG,GAAG,KAAK,EAAE;IACb,QAAQ,GAAG,KAAK,EAAE;IAElB,YAAY,GAAG,MAAM,EAAO;AAE5B,IAAA,KAAK;IACL,QAAQ,GAAG,KAAK;AAEhB,IAAA,QAAQ,GAAG,CAAC,KAAU,KAAI,GAAG;AAC7B,IAAA,SAAS,GAAG,MAAK,GAAG;AAEpB,IAAA,UAAU,CAAC,KAAU,EAAA;AACnB,QAAA,IAAI,CAAC,KAAK,GAAG,KAAK,IAAI,EAAE;AACxB,QAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC;;AAG3B,IAAA,gBAAgB,CAAC,EAAO,EAAA;AACtB,QAAA,IAAI,CAAC,QAAQ,GAAG,EAAE;;AAGpB,IAAA,iBAAiB,CAAC,EAAO,EAAA;AACvB,QAAA,IAAI,CAAC,SAAS,GAAG,EAAE;;AAGrB,IAAA,gBAAgB,CAAC,UAAmB,EAAA;AAClC,QAAA,IAAI,CAAC,QAAQ,GAAG,UAAU;;IAG5B,WAAW,CAAC,EAAC,KAAK,EAAwB,EAAA;AACxC,QAAA,IAAI,CAAC,KAAK,GAAG,KAAK;AAClB,QAAA,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC;AACpB,QAAA,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC;QAC7B,IAAI,CAAC,SAAS,EAAE;;wGApCP,oBAAoB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;4FAApB,oBAAoB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,wBAAA,EAAA,MAAA,EAAA,EAAA,KAAA,EAAA,EAAA,iBAAA,EAAA,OAAA,EAAA,UAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,WAAA,EAAA,EAAA,iBAAA,EAAA,aAAA,EAAA,UAAA,EAAA,aAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,GAAA,EAAA,EAAA,iBAAA,EAAA,KAAA,EAAA,UAAA,EAAA,KAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,GAAA,EAAA,EAAA,iBAAA,EAAA,KAAA,EAAA,UAAA,EAAA,KAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,QAAA,EAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,OAAA,EAAA,EAAA,YAAA,EAAA,cAAA,EAAA,EAAA,SAAA,EAHpB,CAACA,yBAAuB,CAAC,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EChBtC,8lBAcA,EAAA,MAAA,EAAA,CAAA,oJAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EDDY,iBAAiB,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,IAAA,CAAA,WAAA,EAAA,QAAA,EAAA,8CAAA,EAAA,MAAA,EAAA,CAAA,aAAA,EAAA,QAAA,EAAA,cAAA,EAAA,SAAA,EAAA,YAAA,EAAA,OAAA,EAAA,aAAA,EAAA,MAAA,EAAA,WAAA,EAAA,UAAA,EAAA,OAAA,EAAA,gBAAA,EAAA,iBAAA,EAAA,WAAA,EAAA,cAAA,EAAA,MAAA,EAAA,UAAA,EAAA,cAAA,EAAA,KAAA,EAAA,KAAA,EAAA,sBAAA,EAAA,sBAAA,EAAA,qBAAA,EAAA,qBAAA,EAAA,UAAA,EAAA,MAAA,EAAA,YAAA,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,UAAA,EAAA,iBAAA,EAAA,aAAA,EAAA,SAAA,EAAA,mBAAA,EAAA,mBAAA,EAAA,QAAA,EAAA,QAAA,EAAA,YAAA,EAAA,iBAAA,EAAA,WAAA,EAAA,WAAA,EAAA,UAAA,EAAA,OAAA,CAAA,EAAA,OAAA,EAAA,CAAA,SAAA,EAAA,SAAA,EAAA,QAAA,EAAA,WAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAE,YAAY,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAE,WAAW,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,qDAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,SAAA,EAAA,gBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA;;4FAM3C,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBARhC,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,wBAAwB,EACzB,OAAA,EAAA,CAAC,iBAAiB,EAAE,YAAY,EAAE,WAAW,CAAC,EAAA,SAAA,EAG5C,CAACD,yBAAuB,CAAC,EACnB,eAAA,EAAA,uBAAuB,CAAC,MAAM,EAAA,QAAA,EAAA,8lBAAA,EAAA,MAAA,EAAA,CAAA,oJAAA,CAAA,EAAA;;;IEjBrC;AAAZ,CAAA,UAAY,gBAAgB,EAAA;AAC1B,IAAA,gBAAA,CAAA,WAAA,CAAA,GAAA,WAAuB;AACvB,IAAA,gBAAA,CAAA,aAAA,CAAA,GAAA,aAA2B;AAC3B,IAAA,gBAAA,CAAA,YAAA,CAAA,GAAA,YAAyB;AACzB,IAAA,gBAAA,CAAA,UAAA,CAAA,GAAA,UAAqB;AACrB,IAAA,gBAAA,CAAA,YAAA,CAAA,GAAA,YAAyB;AACzB,IAAA,gBAAA,CAAA,aAAA,CAAA,GAAA,aAA2B;AAC7B,CAAC,EAPW,gBAAgB,KAAhB,gBAAgB,GAO3B,EAAA,CAAA,CAAA;IAEW;AAAZ,CAAA,UAAY,qBAAqB,EAAA;AAC/B,IAAA,qBAAA,CAAA,QAAA,CAAA,GAAA,QAAiB;AACjB,IAAA,qBAAA,CAAA,OAAA,CAAA,GAAA,OAAe;AACf,IAAA,qBAAA,CAAA,UAAA,CAAA,GAAA,UAAqB;AACvB,CAAC,EAJW,qBAAqB,KAArB,qBAAqB,GAIhC,EAAA,CAAA,CAAA;;ACRD,MAAMA,yBAAuB,GAAG;AAC9B,IAAA,OAAO,EAAE,iBAAiB;AAC1B,IAAA,WAAW,EAAE,UAAU,CAAC,MAAM,mBAAmB,CAAC;AAClD,IAAA,KAAK,EAAE;CACR;MAUY,mBAAmB,CAAA;IAC9B,KAAK,GAAG,KAAK,EAAE;AACf,IAAA,UAAU,GAAG,KAAK,CAAS,IAAI,CAAC;IAChC,YAAY,GAAG,MAAM,EAAO;IAC5B,QAAQ,GAAG,KAAK,EAAE;AAElB,IAAA,KAAK;IACL,QAAQ,GAAG,KAAK;;AAGhB,IAAA,QAAQ,GAAG,CAAC,KAAU,KAAI,GAAG;AAC7B,IAAA,SAAS,GAAG,MAAK,GAAG;AAEpB,IAAA,UAAU,CAAC,KAAU,EAAA;QACnB,IAAG,KAAK,EAAE;AACR,YAAA,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC;AAC3C,YAAA,IAAI,CAAC,KAAK,GAAG,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;;;AAI3C,IAAA,gBAAgB,CAAC,EAAO,EAAA;AACtB,QAAA,IAAI,CAAC,QAAQ,GAAG,EAAE;;AAGpB,IAAA,iBAAiB,CAAC,EAAO,EAAA;AACvB,QAAA,IAAI,CAAC,SAAS,GAAG,EAAE;;AAGrB,IAAA,gBAAgB,CAAC,UAAmB,EAAA;AAClC,QAAA,IAAI,CAAC,QAAQ,GAAG,UAAU;;AAG5B,IAAA,YAAY,CAAC,KAAU,EAAA;AACrB,QAAA,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,KAAK,CAAC;AAC5B,QAAA,MAAM,KAAK,GAAG,CAAC,IAAI,CAAC,UAAU,EAAE,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC;AAClD,QAAA,IAAI,CAAC,KAAK,GAAG,KAAK;AAClB,QAAA,IAAI,CAAC,QAAQ,CAAC,CAAA,EAAG,KAAK,CAAC,CAAC,CAAC,CAAA,CAAA,EAAI,KAAK,CAAC,CAAC,CAAC,CAAA,CAAE,CAAC;QACxC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC;QAClC,IAAI,CAAC,SAAS,EAAE;;wGAtCP,mBAAmB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;4FAAnB,mBAAmB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,uBAAA,EAAA,MAAA,EAAA,EAAA,KAAA,EAAA,EAAA,iBAAA,EAAA,OAAA,EAAA,UAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,iBAAA,EAAA,YAAA,EAAA,UAAA,EAAA,YAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,QAAA,EAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,OAAA,EAAA,EAAA,YAAA,EAAA,cAAA,EAAA,EAAA,SAAA,EAHnB,CAACA,yBAAuB,CAAC,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EChBtC,+kBAeA,EAAA,MAAA,EAAA,CAAA,wBAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EDFY,gBAAgB,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,IAAA,CAAA,UAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,MAAA,EAAA,CAAA,aAAA,EAAA,OAAA,EAAA,YAAA,EAAA,YAAA,EAAA,SAAA,EAAA,MAAA,EAAA,iBAAA,EAAA,aAAA,EAAA,gBAAA,EAAA,WAAA,EAAA,eAAA,EAAA,UAAA,EAAA,YAAA,EAAA,mBAAA,EAAA,gBAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,mBAAA,EAAA,UAAA,EAAA,OAAA,EAAA,MAAA,EAAA,UAAA,EAAA,eAAA,EAAA,iBAAA,EAAA,gBAAA,EAAA,eAAA,EAAA,YAAA,EAAA,UAAA,EAAA,UAAA,EAAA,YAAA,EAAA,YAAA,EAAA,aAAA,EAAA,UAAA,EAAA,aAAA,EAAA,UAAA,EAAA,6BAAA,EAAA,WAAA,EAAA,UAAA,EAAA,eAAA,EAAA,cAAA,EAAA,eAAA,EAAA,uBAAA,EAAA,uBAAA,EAAA,WAAA,EAAA,YAAA,EAAA,YAAA,EAAA,iBAAA,EAAA,YAAA,EAAA,aAAA,EAAA,sBAAA,EAAA,SAAA,EAAA,eAAA,EAAA,WAAA,EAAA,uBAAA,EAAA,uBAAA,EAAA,UAAA,EAAA,SAAA,EAAA,MAAA,EAAA,SAAA,EAAA,SAAA,EAAA,eAAA,EAAA,cAAA,EAAA,WAAA,EAAA,UAAA,EAAA,mBAAA,EAAA,gBAAA,EAAA,gBAAA,EAAA,QAAA,EAAA,MAAA,EAAA,aAAA,CAAA,EAAA,OAAA,EAAA,CAAA,SAAA,EAAA,QAAA,EAAA,SAAA,EAAA,UAAA,EAAA,SAAA,EAAA,SAAA,EAAA,cAAA,EAAA,cAAA,EAAA,eAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAE,YAAY,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAE,WAAW,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,qDAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,SAAA,EAAA,gBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA;;4FAM1C,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAR/B,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,uBAAuB,EACxB,OAAA,EAAA,CAAC,gBAAgB,EAAE,YAAY,EAAE,WAAW,CAAC,EAAA,SAAA,EAG3C,CAACD,yBAAuB,CAAC,EACnB,eAAA,EAAA,uBAAuB,CAAC,MAAM,EAAA,QAAA,EAAA,+kBAAA,EAAA,MAAA,EAAA,CAAA,wBAAA,CAAA,EAAA;;;AEbjD,MAAMA,yBAAuB,GAAG;AAC9B,IAAA,OAAO,EAAE,iBAAiB;AAC1B,IAAA,WAAW,EAAE,UAAU,CAAC,MAAM,sBAAsB,CAAC;AACrD,IAAA,KAAK,EAAE;CACR;MAUY,sBAAsB,CAAA;IACjC,KAAK,GAAG,KAAK,EAAE;AACf,IAAA,WAAW,GAAG,KAAK,CAAC,EAAE,CAAC;IACvB,QAAQ,GAAG,KAAK,EAAE;IAClB,YAAY,GAAG,MAAM,EAAU;IAE/B,KAAK,GAAW,EAAE;IAClB,QAAQ,GAAG,KAAK;AAEhB,IAAA,QAAQ,GAAG,CAAC,KAAU,KAAI,GAAG;AAC7B,IAAA,SAAS,GAAG,MAAK,GAAG;AAEpB,IAAA,UAAU,CAAC,KAAU,EAAA;AACnB,QAAA,IAAI,CAAC,KAAK,GAAG,KAAK,IAAI,EAAE;;AAG1B,IAAA,gBAAgB,CAAC,EAAO,EAAA;AACtB,QAAA,IAAI,CAAC,QAAQ,GAAG,EAAE;;AAGpB,IAAA,iBAAiB,CAAC,EAAO,EAAA;AACvB,QAAA,IAAI,CAAC,SAAS,GAAG,EAAE;;AAGrB,IAAA,gBAAgB,CAAC,UAAmB,EAAA;AAClC,QAAA,IAAI,CAAC,QAAQ,GAAG,UAAU;;AAG5B,IAAA,WAAW,CAAC,KAAU,EAAA;AACpB,QAAA,MAAM,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,KAAK;AAChC,QAAA,IAAI,CAAC,KAAK,GAAG,KAAK;AAClB,QAAA,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC;AACpB,QAAA,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC;QAC7B,IAAI,CAAC,SAAS,EAAE;;wGAjCP,sBAAsB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAAtB,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,sBAAsB,igBAHtB,CAACA,yBAAuB,CAAC,ECftC,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,kdAUA,kSDEY,YAAY,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA;;4FAMX,sBAAsB,EAAA,UAAA,EAAA,CAAA;kBARlC,SAAS;+BACE,0BAA0B,EAAA,OAAA,EAC3B,CAAC,YAAY,CAAC,EAAA,SAAA,EAGZ,CAACD,yBAAuB,CAAC,EAAA,eAAA,EACnB,uBAAuB,CAAC,MAAM,EAAA,QAAA,EAAA,kdAAA,EAAA,MAAA,EAAA,CAAA,2OAAA,CAAA,EAAA;;;AERjD,MAAM,uBAAuB,GAAG;AAC9B,IAAA,OAAO,EAAE,iBAAiB;AAC1B,IAAA,WAAW,EAAE,UAAU,CAAC,MAAM,oBAAoB,CAAC;AACnD,IAAA,KAAK,EAAE;CACR;MAUY,oBAAoB,CAAA;IAC/B,KAAK,GAAG,KAAK,EAAU;AACvB,IAAA,OAAO,GAAG,KAAK,CAAC,QAAQ,EAAS;AACjC,IAAA,WAAW,GAAG,KAAK,CAAC,OAAO,CAAC;AAC5B,IAAA,WAAW,GAAG,KAAK,CAAC,OAAO,CAAC;IAC5B,cAAc,GAAG,KAAK,EAAY;AAClC,IAAA,WAAW,GAAG,KAAK,CAAC,EAAE,CAAC;IACvB,YAAY,GAAG,MAAM,EAAO;IAC5B,QAAQ,GAAG,KAAK,EAAE;IAClB,UAAU,GAAG,KAAK,EAAkB;IACpC,eAAe,GAAG,KAAK,EAAmB;IAE1C,KAAK,GAAU,EAAE;IACjB,QAAQ,GAAG,KAAK;IAChB,OAAO,GAAG,KAAK;;;IAGP,QAAQ,GAAU,EAAE;IAE5B,iBAAiB,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC;;AAG1C,IAAA,QAAQ,GAAG,CAAC,KAAU,KAAI,GAAI;AAC9B,IAAA,SAAS,GAAG,MAAK,GAAI;AAErB,IAAA,UAAU,CAAC,KAAU,EAAA;QACnB,IAAI,CAAC,KAAK,GAAG,KAAK,EAAE,GAAG,CAAC,CAAC,GAAQ,KAAK,GAAG,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC;;AAGhE,IAAA,gBAAgB,CAAC,EAAO,EAAA;AACtB,QAAA,IAAI,CAAC,QAAQ,GAAG,EAAE;;AAGpB,IAAA,iBAAiB,CAAC,EAAO,EAAA;AACvB,QAAA,IAAI,CAAC,SAAS,GAAG,EAAE;;AAGrB,IAAA,gBAAgB,CAAC,UAAmB,EAAA;AAClC,QAAA,IAAI,CAAC,QAAQ,GAAG,UAAU;;AAG5B,IAAA,YAAY,CAAC,KAAU,EAAA;AACrB,QAAA,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK;AACxB,QAAA,MAAM,iBAAiB,GAAG,IAAI,CAAC,cAAc,EAAE;AAE/C,QAAA,IAAI,iBAAiB,YAAY,QAAQ,EAAE;AACzC,YAAA,MAAM,eAAe,GAAG,iBAAiB,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,QAAQ,CAAC;AACpE,YAAA,IAAI,CAAC,QAAQ,CAAC,eAAe,CAAC;AAC9B,YAAA,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,eAAe,CAAC;;aAClC;AACL,YAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC;YACzB,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC;;QAGpC,IAAI,CAAC,SAAS,EAAE;;wGAtDP,oBAAoB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;4FAApB,oBAAoB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,wBAAA,EAAA,MAAA,EAAA,EAAA,KAAA,EAAA,EAAA,iBAAA,EAAA,OAAA,EAAA,UAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,OAAA,EAAA,EAAA,iBAAA,EAAA,SAAA,EAAA,UAAA,EAAA,SAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,WAAA,EAAA,EAAA,iBAAA,EAAA,aAAA,EAAA,UAAA,EAAA,aAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,WAAA,EAAA,EAAA,iBAAA,EAAA,aAAA,EAAA,UAAA,EAAA,aAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,cAAA,EAAA,EAAA,iBAAA,EAAA,gBAAA,EAAA,UAAA,EAAA,gBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,WAAA,EAAA,EAAA,iBAAA,EAAA,aAAA,EAAA,UAAA,EAAA,aAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,QAAA,EAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,iBAAA,EAAA,YAAA,EAAA,UAAA,EAAA,YAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,eAAA,EAAA,EAAA,iBAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,iBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,OAAA,EAAA,EAAA,YAAA,EAAA,cAAA,EAAA,EAAA,SAAA,EAHpB,CAAC,uBAAuB,CAAC,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECnBtC,4sBAgBA,EAAA,MAAA,EAAA,CAAA,wBAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EDAY,iBAAiB,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,IAAA,CAAA,WAAA,EAAA,QAAA,EAAA,8CAAA,EAAA,MAAA,EAAA,CAAA,IAAA,EAAA,WAAA,EAAA,OAAA,EAAA,YAAA,EAAA,YAAA,EAAA,iBAAA,EAAA,SAAA,EAAA,UAAA,EAAA,OAAA,EAAA,UAAA,EAAA,OAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,UAAA,EAAA,SAAA,EAAA,UAAA,EAAA,SAAA,EAAA,MAAA,EAAA,gBAAA,EAAA,sBAAA,EAAA,mBAAA,EAAA,gBAAA,EAAA,oBAAA,EAAA,eAAA,EAAA,oBAAA,EAAA,cAAA,EAAA,mBAAA,EAAA,cAAA,EAAA,UAAA,EAAA,aAAA,EAAA,aAAA,EAAA,gBAAA,EAAA,kBAAA,EAAA,qBAAA,EAAA,YAAA,EAAA,UAAA,EAAA,cAAA,EAAA,MAAA,EAAA,eAAA,EAAA,SAAA,EAAA,uBAAA,EAAA,aAAA,EAAA,sBAAA,EAAA,gBAAA,EAAA,iBAAA,EAAA,iBAAA,EAAA,SAAA,EAAA,iBAAA,EAAA,sBAAA,EAAA,mBAAA,EAAA,iBAAA,EAAA,SAAA,EAAA,cAAA,EAAA,MAAA,EAAA,WAAA,EAAA,WAAA,EAAA,YAAA,EAAA,YAAA,EAAA,uBAAA,EAAA,uBAAA,EAAA,cAAA,EAAA,aAAA,EAAA,SAAA,EAAA,aAAA,EAAA,UAAA,EAAA,WAAA,EAAA,cAAA,EAAA,cAAA,EAAA,eAAA,EAAA,iBAAA,EAAA,mBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,UAAA,EAAA,UAAA,EAAA,SAAA,EAAA,QAAA,EAAA,SAAA,EAAA,SAAA,EAAA,aAAA,EAAA,aAAA,EAAA,YAAA,EAAA,UAAA,EAAA,mBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAE,YAAY,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,EAAA,CAAA,SAAA,EAAA,IAAA,EAAA,OAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAE,WAAW,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,qDAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,SAAA,EAAA,gBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA;;4FAM3C,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBARhC,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,wBAAwB,EACzB,OAAA,EAAA,CAAC,iBAAiB,EAAE,YAAY,EAAE,WAAW,CAAC,EAAA,SAAA,EAG5C,CAAC,uBAAuB,CAAC,EACnB,eAAA,EAAA,uBAAuB,CAAC,MAAM,EAAA,QAAA,EAAA,4sBAAA,EAAA,MAAA,EAAA,CAAA,wBAAA,CAAA,EAAA;;;MEWpC,yBAAyB,CAAA;AAC3B,IAAA,QAAQ,GAAG,KAAK,CAAC,QAAQ,EAAoB;AAC7C,IAAA,IAAI,GAAG,KAAK,CAAC,QAAQ,EAAa;IAClC,gBAAgB,GAAG,gBAAgB;IACnC,qBAAqB,GAAG,qBAAqB;IAC7C,cAAc,GAAG,cAAc;AAExC,IAAA,IAAI,OAAO,GAAA;AACT,QAAA,OAAO,IAAI,CAAC,IAAI,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,GAAG,CAAC,CAAC,KAAK;;wGAR7C,yBAAyB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAAzB,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,yBAAyB,wVC/BtC,2pHAmEA,EAAA,MAAA,EAAA,CAAA,wBAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EDlDI,kBAAkB,EAClB,QAAA,EAAA,sBAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,MAAA,EAAA,aAAA,EAAA,UAAA,CAAA,EAAA,OAAA,EAAA,CAAA,cAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,mBAAmB,izBACnB,oBAAoB,EAAA,QAAA,EAAA,wBAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,aAAA,EAAA,KAAA,EAAA,KAAA,EAAA,UAAA,CAAA,EAAA,OAAA,EAAA,CAAA,cAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EACpB,mBAAmB,EACnB,QAAA,EAAA,sBAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,UAAA,EAAA,MAAA,CAAA,EAAA,OAAA,EAAA,CAAA,cAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,mBAAmB,0IACnB,oBAAoB,EAAA,QAAA,EAAA,wBAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,EAAA,aAAA,EAAA,aAAA,EAAA,gBAAA,EAAA,aAAA,EAAA,UAAA,EAAA,YAAA,EAAA,iBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,cAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EACpB,sBAAsB,EACtB,QAAA,EAAA,0BAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,aAAA,EAAA,UAAA,CAAA,EAAA,OAAA,EAAA,CAAA,cAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,oBAAoB,wOACpB,sBAAsB,EAAA,QAAA,EAAA,0BAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,MAAA,EAAA,aAAA,EAAA,UAAA,CAAA,EAAA,OAAA,EAAA,CAAA,cAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA;;4FAMb,yBAAyB,EAAA,UAAA,EAAA,CAAA;kBAjBrC,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,8BAA8B,EAC/B,OAAA,EAAA;wBACP,kBAAkB;wBAClB,mBAAmB;wBACnB,oBAAoB;wBACpB,mBAAmB;wBACnB,mBAAmB;wBACnB,oBAAoB;wBACpB,sBAAsB;wBACtB,oBAAoB;wBACpB;qBACD,EAGgB,eAAA,EAAA,uBAAuB,CAAC,MAAM,EAAA,QAAA,EAAA,2pHAAA,EAAA,MAAA,EAAA,CAAA,wBAAA,CAAA,EAAA;;;MECpC,oBAAoB,CAAA;AACtB,IAAA,aAAa,GAAG,KAAK,CAAkB,EAAE,CAAC;AAC1C,IAAA,IAAI,GAAG,KAAK,CAAC,QAAQ,EAAa;wGAFhC,oBAAoB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAApB,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,oBAAoB,EAfrB,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,wBAAA,EAAA,MAAA,EAAA,EAAA,aAAA,EAAA,EAAA,iBAAA,EAAA,eAAA,EAAA,UAAA,EAAA,eAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,IAAA,EAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,CAAA;;;;;;;;;;;;AAYT,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAjBC,mBAAmB,EACnB,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,aAAA,EAAA,QAAA,EAAA,8CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,0FAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,WAAA,CAAA,EAAA,OAAA,EAAA,CAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,yBAAyB,EACzB,QAAA,EAAA,8BAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,MAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,YAAY,8BACZ,YAAY,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,SAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA;;4FAiBH,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBAvBhC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,wBAAwB;AAClC,oBAAA,OAAO,EAAE;wBACP,mBAAmB;wBACnB,yBAAyB;wBACzB,YAAY;wBACZ,YAAY;AACb,qBAAA;AACD,oBAAA,QAAQ,EAAE,CAAA;;;;;;;;;;;;AAYT,EAAA,CAAA;oBACD,eAAe,EAAE,uBAAuB,CAAC,MAAM;AAChD,iBAAA;;;MCzBY,YAAY,CAAA;AACvB,IAAA,KAAK;AACL,IAAA,GAAG;AACH,IAAA,KAAK;AACL,IAAA,QAAQ;AACR,IAAA,KAAK;AACL,IAAA,WAAW;AACX,IAAA,IAAI;AACJ,IAAA,UAAU;AACV,IAAA,WAAW;AACX,IAAA,WAAW;AACX,IAAA,aAAa;AAEb,IAAA,WAAA,CACE,OAA6B,EAAA;AAE7B,QAAA,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC,KAAK;QAC1B,IAAI,CAAC,GAAG,GAAG,OAAO,CAAC,GAAG,IAAI,EAAE;QAC5B,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC,KAAK,IAAI,EAAE;QAChC,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC,OAAO,CAAC,QAAQ;AAClC,QAAA,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC,KAAK,KAAK,SAAS,GAAG,CAAC,GAAG,OAAO,CAAC,KAAK;QAC5D,IAAI,CAAC,WAAW,IAAI,OAAO,CAAC,WAAW,IAAI,EAAE,CAAqB;QAClE,IAAI,CAAC,IAAI,IAAI,OAAO,CAAC,IAAI,IAAI,EAAE,CAA0B;QACzD,IAAI,CAAC,WAAW,GAAG,OAAO,CAAC,WAAW,IAAI,IAAI;QAC9C,IAAI,CAAC,UAAU,GAAG,OAAO,CAAC,UAAU,IAAI,EAAE;QAC1C,IAAI,CAAC,WAAW,GAAG,OAAO,CAAC,WAAW,IAAI,EAAE;AAC5C,QAAA,IAAI,CAAC,aAAa,GAAG,OAAO,CAAC,aAAa;;AAE7C;;AC3BK,MAAO,kBAAmB,SAAQ,YAAY,CAAA;AACzC,IAAA,WAAW,GAAG,gBAAgB,CAAC,UAAU;AAClD,IAAA,IAAI;AAEJ,IAAA,WAAA,CAAY,OAA2D,EAAA;QACrE,KAAK,CAAC,OAAO,CAAC;QACd,IAAI,CAAC,IAAI,GAAG,OAAO,CAAC,IAAI,IAAI,MAAM;;AAErC;;ACPK,MAAO,mBAAoB,SAAQ,YAAY,CAAA;AAC1C,IAAA,WAAW,GAAG,gBAAgB,CAAC,WAAW;AACnD,IAAA,OAAO;AACP,IAAA,WAAW;AACX,IAAA,WAAW;AACX,IAAA,OAAO;AACP,IAAA,UAAU;AACV,IAAA,eAAe;AACf,IAAA,cAAc;AAEd,IAAA,WAAA,CAAY,OAA2B,EAAA;QACnC,KAAK,CAAC,OAAO,CAAC;QACd,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,IAAI,KAAK;QACvC,IAAI,CAAC,WAAW,GAAG,OAAO,CAAC,WAAW,IAAI,OAAO;QACjD,IAAI,CAAC,WAAW,GAAG,OAAO,CAAC,WAAW,IAAI,OAAO;AACjD,QAAA,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO;QAC9B,IAAI,CAAC,UAAU,GAAG,OAAO,CAAC,UAAU,IAAI,cAAc,CAAC,KAAK;QAC5D,IAAG,IAAI,CAAC,UAAU,KAAK,cAAc,CAAC,KAAK,EAAE;AAC3C,YAAA,IAAI,CAAC,eAAe,GAAG,OAAO,CAAC,eAAe;;AAEhD,QAAA,IAAI,CAAC,cAAc,GAAG,OAAO,CAAC,cAAc;;AAEjD;;ACzBK,MAAO,qBAAsB,SAAQ,YAAY,CAAA;AAC5C,IAAA,WAAW,GAAG,gBAAgB,CAAC,SAAS;AAClD;;ACuBK,MAAO,mBAAoB,SAAQ,YAAY,CAAA;AAC1C,IAAA,WAAW,GAAG,gBAAgB,CAAC,WAAW;AACnD,IAAA,WAAW;AACX,IAAA,WAAW;AACX,IAAA,OAAO;AACP,IAAA,UAAU;AACV,IAAA,eAAe;AACf,IAAA,cAAc;AAEd,IAAA,WAAA,CAAY,OAA2B,EAAA;QACrC,KAAK,CAAC,OAAO,CAAC;QACd,IAAI,CAAC,WAAW,GAAG,OAAO,CAAC,WAAW,IAAI,OAAO;QACjD,IAAI,CAAC,WAAW,GAAG,OAAO,CAAC,WAAW,IAAI,OAAO;AACjD,QAAA,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO;QAC9B,IAAI,CAAC,UAAU,GAAG,OAAO,CAAC,UAAU,IAAI,cAAc,CAAC,KAAK;QAC5D,IAAG,IAAI,CAAC,UAAU,KAAK,cAAc,CAAC,KAAK,EAAE;AAC3C,YAAA,IAAI,CAAC,eAAe,GAAG,OAAO,CAAC,eAAe;;AAEhD,QAAA,IAAI,CAAC,cAAc,GAAG,OAAO,CAAC,cAAc;;AAE/C;;AC7CK,MAAO,iBAAkB,SAAQ,YAAY,CAAA;AACxC,IAAA,WAAW,GAAG,gBAAgB,CAAC,SAAS;AAClD;;ACFK,MAAO,gBAAiB,SAAQ,YAAY,CAAA;AACvC,IAAA,WAAW,GAAG,gBAAgB,CAAC,QAAQ;AACjD;;ACGK,MAAO,kBAAmB,SAAQ,YAAY,CAAA;AACzC,IAAA,WAAW,GAAG,gBAAgB,CAAC,UAAU;AAClD,IAAA,UAAU;AAEV,IAAA,WAAA,CAAY,OAA0B,EAAA;QACpC,KAAK,CAAC,OAAO,CAAC;QACd,IAAI,CAAC,UAAU,GAAG,OAAO,CAAC,UAAU,IAAI,IAAI;;AAE/C;;IChBW;AAAZ,CAAA,UAAY,eAAe,EAAA;AACzB,IAAA,eAAA,CAAA,UAAA,CAAA,GAAA,UAAqB;AACrB,IAAA,eAAA,CAAA,YAAA,CAAA,GAAA,YAAyB;AACzB,IAAA,eAAA,CAAA,YAAA,CAAA,GAAA,YAAyB;AACzB,IAAA,eAAA,CAAA,OAAA,CAAA,GAAA,OAAe;AACf,IAAA,eAAA,CAAA,WAAA,CAAA,GAAA,WAAuB;AACvB,IAAA,eAAA,CAAA,UAAA,CAAA,GAAA,UAAqB;AACrB,IAAA,eAAA,CAAA,aAAA,CAAA,GAAA,aAA2B;AAC7B,CAAC,EARW,eAAe,KAAf,eAAe,GAQ1B,EAAA,CAAA,CAAA;;MCDY,sBAAsB,CAAA;AAEjC,IAAA,WAAW,CAAC,UAA2B,EAAA;QACrC,MAAM,SAAS,GAAG,IAAI,CAAC,0BAA0B,CAAC,UAAU,CAAC;QAE7D,MAAM,KAAK,GAAoC,EAAE;AACjD,QAAA,SAAS,CAAC,OAAO,CAAC,CAAC,QAAQ,KAAI;AAC7B,YAAA,MAAM,OAAO,GAAG,IAAI,WAAW,CAAC,QAAQ,CAAC,KAAK,IAAI,IAAI,EAAE,EAAC,WAAW,EAAE,QAAQ,CAAC,WAAW,EAAC,CAAC;AAE5F,YAAA,IAAG,QAAQ,CAAC,QAAQ,EAAE;AACpB,gBAAA,OAAO,CAAC,aAAa,CAAC,UAAU,CAAC,QAAQ,CAAC;;AAG5C,YAAA,IAAG,QAAQ,CAAC,UAAU,CAAC,MAAM,EAAE;AAC7B,gBAAA,OAAO,CAAC,aAAa,CAAC,QAAQ,CAAC,UAAU,CAAC;;AAG5C,YAAA,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,OAAO;AAC/B,SAAC,CAAC;AAEF,QAAA,SAAS,CAAC,OAAO,CAAC,QAAQ,IAAG;AAC3B,YAAA,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;AACZ,iBAAA,IAAI,CACJ,YAAY,CAAC,GAAG,CAAC;AAEjB,iBAAA,SAAS,CAAC,CAAC,KAAK,KAAI;AAChB,gBAAA,IAAG,QAAQ,CAAC,aAAa,YAAY,QAAQ,EAAE;AAC5C,oBAAA,QAAQ,CAAC,aAAa,CAAC,KAAK,EAAE,SAAS,CAAC;;AAEhD,aAAC,CAAC;AACX,SAAC,CAAC;AACF,QAAA,OAAO,IAAI,SAAS,CAAC,KAAK,CAAC;;AAGrB,IAAA,0BAA0B,CAAC,UAA2B,EAAA;QAC5D,OAAO,UAAU,CAAC,MAAM,CAAC,CAAC,IAAoB,EAAE,IAAmB,KAAI;YACrE,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC;AAC7B,YAAA,OAAO,IAAI;SACZ,EAAE,EAAE,CAAC;;wGAtCG,sBAAsB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA;4GAAtB,sBAAsB,EAAA,CAAA;;4FAAtB,sBAAsB,EAAA,UAAA,EAAA,CAAA;kBADlC;;;ACND;;AAEG;;ACFH;;AAEG;;;;"}
1
+ {"version":3,"file":"ilhombek-base-form.mjs","sources":["../../../projects/base-form/src/lib/components/text-input/text-input.component.ts","../../../projects/base-form/src/lib/components/text-input/text-input.component.html","../../../projects/base-form/src/lib/core/enums/option-type.enum.ts","../../../projects/base-form/src/lib/utils/index.ts","../../../projects/base-form/src/lib/components/select-input/select-input.component.ts","../../../projects/base-form/src/lib/components/select-input/select-input.component.html","../../../projects/base-form/src/lib/components/datepicker/datepicker.component.ts","../../../projects/base-form/src/lib/components/datepicker/datepicker.component.html","../../../projects/base-form/src/lib/components/password-input/password-input.component.ts","../../../projects/base-form/src/lib/components/password-input/password-input.component.html","../../../projects/base-form/src/lib/components/text-input-number/number-input.component.ts","../../../projects/base-form/src/lib/components/text-input-number/number-input.component.html","../../../projects/base-form/src/lib/core/enums/question-type.enum.ts","../../../projects/base-form/src/lib/components/time-picker/time-picker.component.ts","../../../projects/base-form/src/lib/components/time-picker/time-picker.component.html","../../../projects/base-form/src/lib/components/textarea-input/textarea-input.component.ts","../../../projects/base-form/src/lib/components/textarea-input/textarea-input.component.html","../../../projects/base-form/src/lib/components/multi-select/multi-select.component.ts","../../../projects/base-form/src/lib/components/multi-select/multi-select.component.html","../../../projects/base-form/src/lib/components/dynamic-form-field/dynamic-form-field.component.ts","../../../projects/base-form/src/lib/components/dynamic-form-field/dynamic-form-field.component.html","../../../projects/base-form/src/lib/components/dynamic-form.component.ts","../../../projects/base-form/src/lib/core/dynamic-form/question-base.ts","../../../projects/base-form/src/lib/core/dynamic-form/question-datepicker.ts","../../../projects/base-form/src/lib/core/dynamic-form/question-multi-select.ts","../../../projects/base-form/src/lib/core/dynamic-form/question-password-input.ts","../../../projects/base-form/src/lib/core/dynamic-form/question-select-input.ts","../../../projects/base-form/src/lib/core/dynamic-form/question-text-input.ts","../../../projects/base-form/src/lib/core/dynamic-form/question-textarea.ts","../../../projects/base-form/src/lib/core/dynamic-form/question-time-picker.ts","../../../projects/base-form/src/lib/core/enums/async-option.enum.ts","../../../projects/base-form/src/lib/services/question-control.service.ts","../../../projects/base-form/src/public-api.ts","../../../projects/base-form/src/ilhombek-base-form.ts"],"sourcesContent":["import { CommonModule } from '@angular/common';\r\nimport { ChangeDetectionStrategy, Component, forwardRef, input, output } from '@angular/core';\r\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\r\nimport { InputTextModule } from 'primeng/inputtext';\r\n\r\nconst VALUE_ACCESSOR_PROVIDER = {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => TextInputComponent),\r\n multi: true\r\n}\r\n\r\n@Component({\r\n selector: 'base-form-text-input',\r\n imports: [InputTextModule, CommonModule],\r\n templateUrl: './text-input.component.html',\r\n styleUrl: './text-input.component.scss',\r\n providers: [VALUE_ACCESSOR_PROVIDER],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class TextInputComponent implements ControlValueAccessor {\r\n label = input()\r\n icon = input()\r\n placeholder = input('')\r\n onChangeEmit = output<string>()\r\n required = input()\r\n\r\n value: string = '';\r\n disabled = false;\r\n\r\n onChange = (value: any) => {};\r\n onTouched = () => {};\r\n\r\n writeValue(value: any): void {\r\n this.value = value || '';\r\n }\r\n\r\n registerOnChange(fn: any): void {\r\n this.onChange = fn;\r\n }\r\n\r\n registerOnTouched(fn: any): void {\r\n this.onTouched = fn;\r\n }\r\n\r\n setDisabledState(isDisabled: boolean): void {\r\n this.disabled = isDisabled;\r\n }\r\n\r\n handleInput(event: any): void {\r\n const value = event.target.value;\r\n this.value = value;\r\n this.onChange(value);\r\n this.onChangeEmit.emit(value)\r\n this.onTouched();\r\n }\r\n}\r\n","<div class=\"container\">\r\n @if(label()) {\r\n <label class=\"label\">{{ label() }}</label>\r\n }\r\n <span style=\"width: 100%;\" [ngClass]=\"{'p-input-icon-left': icon()}\">\r\n @if (icon()) {\r\n <i class=\"pi pi-search\" [ngStyle]=\"icon() ? { position: 'absolute', top: '12px' } : null\"\r\n></i>\r\n }\r\n <input pInputText type=\"text\"\r\n class=\"p-inputtext\"\r\n [class.has-icon]=\"icon()\"\r\n [class.invalid]=\"required() && !value\"\r\n [placeholder]=\"placeholder()\"\r\n [disabled]=\"disabled\"\r\n [value]=\"value\"\r\n (input)=\"handleInput($event)\" />\r\n </span>\r\n</div>\r\n","export enum OptionTypeEnum {\r\n EAGER = 'eager',\r\n ASYNC = 'async'\r\n}\r\n","import { catchError, finalize, of, tap, throwError } from \"rxjs\";\r\nimport { OptionTypeEnum } from \"../core/enums/option-type.enum\";\r\n\r\nexport function handleAsyncOption(this: any) {\r\n if (this.optionType() === OptionTypeEnum.EAGER) {\r\n this._options = this.options();\r\n return of(this.options())\r\n }\r\n\r\n this.loading = true;\r\n return this.asyncOptionObs$()\r\n .pipe(\r\n tap((data) => this._options = data),\r\n finalize(() => this.loading = false),\r\n catchError((err) => {\r\n this._messageService.error(`Failed fetching async ${this.label()} options`)\r\n return throwError(() => err)\r\n })\r\n )\r\n}\r\n","import { CommonModule } from '@angular/common';\r\nimport { ChangeDetectionStrategy, Component, computed, forwardRef, input, output } from '@angular/core';\r\nimport { ControlValueAccessor, FormsModule, NG_VALUE_ACCESSOR } from '@angular/forms';\r\nimport { SelectModule } from 'primeng/select';\r\nimport { OptionTypeEnum } from '../../core/enums/option-type.enum';\r\nimport { Observable, of } from 'rxjs';\r\nimport { AsyncOptionEnum } from '../../core/enums/async-option.enum';\r\nimport { handleAsyncOption } from '../../utils';\r\n\r\nconst VALUE_ACCESSOR_PROVIDER = {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => SelectInputComponent),\r\n multi: true\r\n }\r\n\r\n@Component({\r\n selector: 'base-form-select-input',\r\n imports: [SelectModule, FormsModule, CommonModule],\r\n templateUrl: './select-input.component.html',\r\n styleUrl: './select-input.component.scss',\r\n providers: [VALUE_ACCESSOR_PROVIDER],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class SelectInputComponent implements ControlValueAccessor{\r\n label = input();\r\n options = input();\r\n optionLabel = input('label');\r\n optionValue = input('value');\r\n normalizeValue = input<Function>()\r\n placeholder = input('');\r\n onChangeEmit = output<any>()\r\n required = input()\r\n optionType = input<OptionTypeEnum>(OptionTypeEnum.EAGER)\r\n asyncOptionObs$ = input<Observable<any>>()\r\n\r\n loading = false;\r\n\r\n // private _asyncOptionService = inject(AsyncOptionsService)\r\n // private _messageService = inject(ToastService)\r\n private _options: any[] = [];\r\n\r\n asyncOptionsPipe$ = computed(handleAsyncOption.bind(this))\r\n\r\n value: any;\r\n disabled = false;\r\n\r\n // Callbacks\r\n onChange = (value: any) => {};\r\n onTouched = () => {};\r\n\r\n writeValue(value: any): void {\r\n this.value = value;\r\n }\r\n\r\n registerOnChange(fn: any): void {\r\n this.onChange = fn;\r\n }\r\n\r\n registerOnTouched(fn: any): void {\r\n this.onTouched = fn;\r\n }\r\n\r\n setDisabledState(isDisabled: boolean): void {\r\n this.disabled = isDisabled;\r\n }\r\n\r\n handleChange(event: any) {\r\n this.value = event.value;\r\n const _normalizeValueFc = this.normalizeValue()\r\n\r\n if(_normalizeValueFc instanceof Function) {\r\n const normalizedValue = _normalizeValueFc(this.value)\r\n this.onChange(normalizedValue);\r\n this.onChangeEmit.emit(normalizedValue)\r\n } else {\r\n this.onChange(this.value)\r\n this.onChangeEmit.emit(this.value)\r\n }\r\n\r\n this.onTouched();\r\n }\r\n}\r\n","<div class=\"flex flex-col gap-1\">\r\n @if (label()) {\r\n <label class=\"text-sm font-medium text-gray-700\">{{ label() }}</label>\r\n }\r\n <p-select [options]=\"(asyncOptionsPipe$() | async) || []\"\r\n [optionLabel]=\"optionLabel()\"\r\n [optionValue]=\"optionValue()\"\r\n [ngModel]=\"value\"\r\n [loading]=\"loading\"\r\n [placeholder]=\"placeholder()\"\r\n [disabled]=\"disabled\"\r\n appendTo=\"body\"\r\n (onChange)=\"handleChange($event)\"\r\n [ngClass]=\"{'ng-invalid': required() && !value}\"\r\n ></p-select>\r\n</div>\r\n","import { CommonModule } from '@angular/common';\r\nimport { ChangeDetectionStrategy, Component, forwardRef, input, output } from '@angular/core';\r\nimport { ControlValueAccessor, FormsModule, NG_VALUE_ACCESSOR } from '@angular/forms';\r\nimport { DatePickerModule, DatePickerTypeView } from 'primeng/datepicker';\r\n\r\nconst VALUE_ACCESSOR_PROVIDER = {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => DatepickerComponent),\r\n multi: true\r\n}\r\n\r\n@Component({\r\n selector: 'base-form-datepicker',\r\n imports: [DatePickerModule, CommonModule, FormsModule],\r\n templateUrl: './datepicker.component.html',\r\n styleUrl: './datepicker.component.scss',\r\n providers: [VALUE_ACCESSOR_PROVIDER],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class DatepickerComponent implements ControlValueAccessor{\r\n label = input();\r\n onChangeEmit = output<any>()\r\n required = input()\r\n view = input<DatePickerTypeView>(\"date\")\r\n value: any;\r\n disabled = false;\r\n\r\n // Callbacks\r\n onChange = (value: any) => {};\r\n onTouched = () => {};\r\n\r\n writeValue(value: any): void {\r\n if(this.view() === 'year') {\r\n this.value = new Date(value, 0, 1);\r\n } else {\r\n this.value = value\r\n }\r\n }\r\n\r\n registerOnChange(fn: any): void {\r\n this.onChange = fn;\r\n }\r\n\r\n registerOnTouched(fn: any): void {\r\n this.onTouched = fn;\r\n }\r\n\r\n setDisabledState(isDisabled: boolean): void {\r\n this.disabled = isDisabled;\r\n }\r\n\r\n handleChange(event: any) {\r\n const date = new Date(event)\r\n const dates = [date.getDay(), date.getMonth(), date.getFullYear()];\r\n const formatedValue = this.view() === 'year' ? dates[2] : this.view() === 'month' ? dates[1] : dates.join('-')\r\n\r\n this.value = event;\r\n\r\n this.onChange(formatedValue);\r\n this.onChangeEmit.emit(this.value)\r\n this.onTouched();\r\n }\r\n}\r\n","<div class=\"flex flex-col gap-1\">\r\n @if (label()) {\r\n <label class=\"text-sm font-medium text-gray-700\">{{ label() }}</label>\r\n }\r\n <p-datepicker [iconDisplay]=\"'input'\"\r\n [ngClass]=\"{'ng-invalid ng-dirty': required() && !value}\"\r\n [showIcon]=\"true\"\r\n [view]=\"view()\"\r\n [ngModel]=\"value\"\r\n [dateFormat]=\"view() === 'year' ? 'yy' : view() === 'month' ? 'mm' : 'dd-mm-yy'\"\r\n (onSelect)=\"handleChange($event)\"\r\n appendTo=\"body\"\r\n inputId=\"icondisplay\" />\r\n</div>\r\n\r\n","import { CommonModule } from '@angular/common';\r\nimport { ChangeDetectionStrategy, Component, forwardRef, input, output } from '@angular/core';\r\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\r\nimport { PasswordModule } from 'primeng/password';\r\n\r\nconst VALUE_ACCESSOR_PROVIDER = {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => PasswordInputComponent),\r\n multi: true\r\n}\r\n\r\n@Component({\r\n selector: 'base-form-password-input',\r\n imports: [PasswordModule, CommonModule],\r\n templateUrl: './password-input.component.html',\r\n styleUrl: './password-input.component.scss',\r\n providers: [VALUE_ACCESSOR_PROVIDER],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class PasswordInputComponent implements ControlValueAccessor{\r\n label = input()\r\n icon = input()\r\n placeholder = input('')\r\n onChangeEmit = output<string>()\r\n required = input()\r\n\r\n value: string = '';\r\n disabled = false;\r\n\r\n onChange = (value: any) => {};\r\n onTouched = () => {};\r\n\r\n writeValue(value: any): void {\r\n this.value = value || '';\r\n }\r\n\r\n registerOnChange(fn: any): void {\r\n this.onChange = fn;\r\n }\r\n\r\n registerOnTouched(fn: any): void {\r\n this.onTouched = fn;\r\n }\r\n\r\n setDisabledState(isDisabled: boolean): void {\r\n this.disabled = isDisabled;\r\n }\r\n\r\n handleInput(event: any): void {\r\n const value = event.target.value;\r\n this.value = value;\r\n this.onChange(value);\r\n this.onChangeEmit.emit(value)\r\n this.onTouched();\r\n }\r\n}\r\n","<div class=\"flex flex-col gap-1\">\r\n @if(label()) {\r\n <label class=\"text-sm font-medium text-gray-700\">{{ label() }}</label>\r\n }\r\n <span class=\"w-full\" [ngClass]=\"{'p-input-icon-left': icon()}\">\r\n @if (icon()) {\r\n <i class=\"pi pi-search\" [ngClass]=\"{'absolute top-[12px]': icon()}\"></i>\r\n }\r\n <p-password id=\"password\"\r\n [feedback]=\"false\"\r\n showClear=\"true\"\r\n (input)=\"handleInput($event)\"\r\n [ngClass]=\"{'!pl-[40px]': icon(), 'ng-invalid ng-dirty': required() && !value}\"\r\n [placeholder]=\"placeholder()\"\r\n [disabled]=\"disabled\"\r\n class=\" w-full\" />\r\n </span>\r\n</div>\r\n","import { CommonModule } from '@angular/common';\r\nimport { ChangeDetectionStrategy, Component, forwardRef, input, output } from '@angular/core';\r\nimport { FormsModule, NG_VALUE_ACCESSOR } from '@angular/forms';\r\nimport { InputNumberInputEvent, InputNumberModule } from \"primeng/inputnumber\";\r\n\r\nconst VALUE_ACCESSOR_PROVIDER = {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => NumberInputComponent),\r\n multi: true\r\n}\r\n\r\n@Component({\r\n selector: 'base-form-number-input',\r\n imports: [InputNumberModule, CommonModule, FormsModule],\r\n templateUrl: './number-input.component.html',\r\n styleUrl: './number-input.component.scss',\r\n providers: [VALUE_ACCESSOR_PROVIDER],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class NumberInputComponent {\r\n label = input()\r\n placeholder = input('')\r\n min = input(0)\r\n max = input()\r\n required = input()\r\n\r\n onChangeEmit = output<any>()\r\n\r\n value!: any;\r\n disabled = false;\r\n\r\n onChange = (value: any) => {};\r\n onTouched = () => {};\r\n\r\n writeValue(value: any): void {\r\n this.value = value || '';\r\n this.onChange(this.value)\r\n }\r\n\r\n registerOnChange(fn: any): void {\r\n this.onChange = fn;\r\n }\r\n\r\n registerOnTouched(fn: any): void {\r\n this.onTouched = fn;\r\n }\r\n\r\n setDisabledState(isDisabled: boolean): void {\r\n this.disabled = isDisabled;\r\n }\r\n\r\n handleInput({value}: InputNumberInputEvent): void {\r\n this.value = value;\r\n this.onChange(value);\r\n this.onChangeEmit.emit(value)\r\n this.onTouched();\r\n }\r\n}\r\n","<div class=\"flex flex-col gap-1\">\r\n @if(label()) {\r\n <label class=\"text-sm font-medium text-gray-700\">{{ label() }}</label>\r\n }\r\n <p-inputNumber [min]=\"min()\"\r\n [max]=\"max()\"\r\n [ngModel]=\"value\"\r\n [fluid]=\"true\"\r\n [placeholder]=\"placeholder()\"\r\n (onInput)=\"handleInput($event)\"\r\n [showButtons]=\"true\"\r\n class=\"p-inputnumber w-full\" [ngClass]=\"{'ng-invalid ng-dirty': required() && !value}\">\r\n </p-inputNumber>\r\n</div>\r\n","export enum QuestionTypeEnum {\r\n TextInput = 'textInput',\r\n SelectInput = 'selectInput',\r\n DatePicker = 'datePicker',\r\n TextArea = 'textArea',\r\n TimePicker = 'timePicker',\r\n MultiSelect = 'multiSelect'\r\n}\r\n\r\nexport enum QuestionFieldTypeEnum {\r\n Number = 'number',\r\n Email = 'email',\r\n Password = 'password'\r\n}\r\n","import { CommonModule } from '@angular/common';\r\nimport { ChangeDetectionStrategy, Component, forwardRef, input, output } from '@angular/core';\r\nimport { ControlValueAccessor, FormsModule, NG_VALUE_ACCESSOR } from '@angular/forms';\r\nimport { DatePickerModule } from \"primeng/datepicker\";\r\n\r\nconst VALUE_ACCESSOR_PROVIDER = {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => TimePickerComponent),\r\n multi: true\r\n}\r\n\r\n@Component({\r\n selector: 'base-form-time-picker',\r\n imports: [DatePickerModule, CommonModule, FormsModule],\r\n templateUrl: './time-picker.component.html',\r\n styleUrl: './time-picker.component.scss',\r\n providers: [VALUE_ACCESSOR_PROVIDER],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class TimePickerComponent implements ControlValueAccessor{\r\n label = input();\r\n hourFormat = input<string>('24')\r\n onChangeEmit = output<any>()\r\n required = input()\r\n\r\n value: any;\r\n disabled = false;\r\n\r\n // Callbacks\r\n onChange = (value: any) => {};\r\n onTouched = () => {};\r\n\r\n writeValue(value: any): void {\r\n if(value) {\r\n const [h, m] = value.split(\":\").map(Number);\r\n this.value = new Date(1970, 0, 1, h, m);\r\n }\r\n }\r\n\r\n registerOnChange(fn: any): void {\r\n this.onChange = fn;\r\n }\r\n\r\n registerOnTouched(fn: any): void {\r\n this.onTouched = fn;\r\n }\r\n\r\n setDisabledState(isDisabled: boolean): void {\r\n this.disabled = isDisabled;\r\n }\r\n\r\n handleChange(event: any) {\r\n const date = new Date(event)\r\n const dates = [date.getMinutes(), date.getHours()];\r\n this.value = event;\r\n this.onChange(`${dates[1]}:${dates[0]}`);\r\n this.onChangeEmit.emit(this.value)\r\n this.onTouched();\r\n }\r\n}\r\n","<div class=\"flex flex-col gap-1\">\r\n @if (label()) {\r\n <label class=\"text-sm font-medium text-gray-700\">{{ label() }}</label>\r\n }\r\n <p-datepicker [iconDisplay]=\"'input'\"\r\n [ngClass]=\"{'ng-invalid ng-dirty': required() && !value}\"\r\n [showIcon]=\"true\"\r\n (onSelect)=\"handleChange($event)\"\r\n appendTo=\"body\"\r\n [ngModel]=\"value\"\r\n [timeOnly]=\"true\"\r\n [hourFormat]=\"hourFormat()\"\r\n inputId=\"icondisplay\" />\r\n</div>\r\n\r\n","import { CommonModule } from '@angular/common';\r\nimport { ChangeDetectionStrategy, Component, forwardRef, input, output } from '@angular/core';\r\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\r\n\r\nconst VALUE_ACCESSOR_PROVIDER = {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => TextareaInputComponent),\r\n multi: true\r\n}\r\n\r\n@Component({\r\n selector: 'base-form-textarea-input',\r\n imports: [CommonModule],\r\n templateUrl: './textarea-input.component.html',\r\n styleUrl: './textarea-input.component.scss',\r\n providers: [VALUE_ACCESSOR_PROVIDER],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class TextareaInputComponent implements ControlValueAccessor{\r\n label = input()\r\n placeholder = input('')\r\n required = input()\r\n onChangeEmit = output<string>()\r\n\r\n value: string = '';\r\n disabled = false;\r\n\r\n onChange = (value: any) => {};\r\n onTouched = () => {};\r\n\r\n writeValue(value: any): void {\r\n this.value = value || '';\r\n }\r\n\r\n registerOnChange(fn: any): void {\r\n this.onChange = fn;\r\n }\r\n\r\n registerOnTouched(fn: any): void {\r\n this.onTouched = fn;\r\n }\r\n\r\n setDisabledState(isDisabled: boolean): void {\r\n this.disabled = isDisabled;\r\n }\r\n\r\n handleInput(event: any): void {\r\n const value = event.target.value;\r\n this.value = value;\r\n this.onChange(value);\r\n this.onChangeEmit.emit(value)\r\n this.onTouched();\r\n }\r\n}\r\n","<div class=\"flex flex-col gap-1\">\r\n @if(label()) {\r\n <label class=\"text-sm font-medium text-gray-700\">{{ label() }}</label>\r\n }\r\n <span class=\"w-full\">\r\n <textarea pInputTextarea rows=\"3\" class=\"p-inputtext w-full\" [placeholder]=\"placeholder()\" [disabled]=\"disabled\"\r\n [ngClass]=\"{'ng-invalid ng-dirty': required() && !value}\"\r\n [value]=\"value\" (input)=\"handleInput($event)\"></textarea>\r\n </span>\r\n</div>\r\n","import { CommonModule } from '@angular/common';\r\nimport { ChangeDetectionStrategy, Component, computed, forwardRef, input, output } from '@angular/core';\r\nimport { ControlValueAccessor, FormsModule, NG_VALUE_ACCESSOR } from '@angular/forms';\r\nimport { MultiSelectModule } from 'primeng/multiselect';\r\nimport { OptionTypeEnum } from '../../core/enums/option-type.enum';\r\nimport { AsyncOptionEnum } from '../../core/enums/async-option.enum';\r\nimport { Observable, of } from 'rxjs';\r\nimport { handleAsyncOption } from '../../utils';\r\n\r\nconst VALUE_ACCESSOR_PROVIDER = {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => MultiSelectComponent),\r\n multi: true\r\n}\r\n\r\n@Component({\r\n selector: 'base-form-multi-select',\r\n imports: [MultiSelectModule, CommonModule, FormsModule],\r\n templateUrl: './multi-select.component.html',\r\n styleUrl: './multi-select.component.scss',\r\n providers: [VALUE_ACCESSOR_PROVIDER],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class MultiSelectComponent implements ControlValueAccessor {\r\n label = input<string>();\r\n options = input.required<any[]>();\r\n optionLabel = input('label');\r\n optionValue = input('value');\r\n normalizeValue = input<Function>()\r\n placeholder = input('');\r\n onChangeEmit = output<any>()\r\n required = input()\r\n optionType = input<OptionTypeEnum>()\r\n asyncOptionObs$ = input<Observable<any>>()\r\n\r\n value: any[] = [];\r\n disabled = false;\r\n loading = false\r\n // private _asyncOptionService = inject(AsyncOptionsService)\r\n // private _messageService = inject(ToastService)\r\n private _options: any[] = [];\r\n\r\n asyncOptionsPipe$ = computed(handleAsyncOption.bind(this))\r\n\r\n // Callbacks\r\n onChange = (value: any) => { };\r\n onTouched = () => { };\r\n\r\n writeValue(value: any): void {\r\n this.value = value?.map((opt: any) => opt[this.optionValue()])\r\n }\r\n\r\n registerOnChange(fn: any): void {\r\n this.onChange = fn;\r\n }\r\n\r\n registerOnTouched(fn: any): void {\r\n this.onTouched = fn;\r\n }\r\n\r\n setDisabledState(isDisabled: boolean): void {\r\n this.disabled = isDisabled;\r\n }\r\n\r\n handleChange(event: any) {\r\n this.value = event.value;\r\n const _normalizeValueFc = this.normalizeValue()\r\n\r\n if (_normalizeValueFc instanceof Function) {\r\n const normalizedValue = _normalizeValueFc(this.value, this._options)\r\n this.onChange(normalizedValue);\r\n this.onChangeEmit.emit(normalizedValue)\r\n } else {\r\n this.onChange(this.value)\r\n this.onChangeEmit.emit(this.value)\r\n }\r\n\r\n this.onTouched();\r\n }\r\n}\r\n","<div class=\"flex flex-col gap-1\">\r\n @if (label()) {\r\n <label class=\"text-sm font-medium text-gray-700\">{{ label() }}</label>\r\n }\r\n <p-multiselect [options]=\"(asyncOptionsPipe$() | async) || []\"\r\n [optionLabel]=\"optionLabel()\"\r\n [optionValue]=\"optionValue()\"\r\n [placeholder]=\"placeholder()\"\r\n [ngModel]=\"value\"\r\n (onChange)=\"handleChange($event)\"\r\n [disabled]=\"disabled\"\r\n [loading]=\"loading\"\r\n appendTo=\"body\"\r\n [ngClass]=\"{'ng-invalid ng-dirty': required() && !value?.length}\"\r\n />\r\n</div>\r\n","import { ChangeDetectionStrategy, Component, CUSTOM_ELEMENTS_SCHEMA, input, NO_ERRORS_SCHEMA } from '@angular/core';\r\nimport { FormGroup, ReactiveFormsModule } from '@angular/forms';\r\nimport { TextInputComponent } from \"../text-input/text-input.component\";\r\nimport { SelectInputComponent } from \"../select-input/select-input.component\";\r\nimport { DatepickerComponent } from '../datepicker/datepicker.component';\r\nimport { PasswordInputComponent } from '../password-input/password-input.component';\r\nimport { NumberInputComponent } from '../text-input-number/number-input.component';\r\nimport { QuestionFieldTypeEnum, QuestionTypeEnum } from '../../core/enums/question-type.enum';\r\nimport { TimePickerComponent } from '../time-picker/time-picker.component';\r\nimport { TextareaInputComponent } from '../textarea-input/textarea-input.component';\r\nimport { MultiSelectComponent } from '../multi-select/multi-select.component';\r\nimport { QuestionBaseType } from '../../core/models/question-base';\r\nimport { OptionTypeEnum } from '../../core/enums/option-type.enum';\r\n\r\n@Component({\r\n selector: 'base-form-dynamic-form-field',\r\n imports: [\r\n TextInputComponent,\r\n ReactiveFormsModule,\r\n NumberInputComponent,\r\n DatepickerComponent,\r\n TimePickerComponent,\r\n SelectInputComponent,\r\n TextareaInputComponent,\r\n MultiSelectComponent,\r\n PasswordInputComponent\r\n ],\r\n templateUrl: './dynamic-form-field.component.html',\r\n styleUrl: './dynamic-form-field.component.scss',\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class DynamicFormFieldComponent {\r\n readonly question = input.required<QuestionBaseType>();\r\n readonly form = input.required<FormGroup>();\r\n readonly QuestionTypeEnum = QuestionTypeEnum;\r\n readonly QuestionFieldTypeEnum = QuestionFieldTypeEnum\r\n readonly OptionTypeEnum = OptionTypeEnum\r\n\r\n get isValid() {\r\n return this.form().controls[this.question().key].valid;\r\n }\r\n}\r\n","<div [formGroup]=\"form()\">\r\n <label class=\"text-sm font-medium text-gray-700\" [attr.for]=\"question().key\">\r\n {{ question().label }} @if(question().required) {<span class=\"text-red-500\">*</span>}\r\n </label>\r\n <div>\r\n @switch (question().controlType) {\r\n @case (QuestionTypeEnum.TextInput) {\r\n @if (question().type === QuestionFieldTypeEnum.Number) {\r\n <base-form-number-input [formControlName]=\"question().key\"\r\n [id]=\"question().key\"\r\n [required]=\"question().required\"\r\n [placeholder]=\"question().placeholder\"/>\r\n } @else if(question().type === QuestionFieldTypeEnum.Password) {\r\n <base-form-password-input [formControlName]=\"question().key\"\r\n [id]=\"question().key\"\r\n [required]=\"question().required\"\r\n [placeholder]=\"question().placeholder\"\r\n />\r\n } @else {\r\n <base-form-text-input [formControlName]=\"question().key\"\r\n [id]=\"question().key\"\r\n [required]=\"question().required\"\r\n [placeholder]=\"question().placeholder\"/>\r\n }\r\n }\r\n @case (QuestionTypeEnum.SelectInput) {\r\n <base-form-select-input [options]=\"$any(question()).options\"\r\n [formControlName]=\"question().key\"\r\n [required]=\"question().required\"\r\n [optionLabel]=\"$any(question()).optionLabel\"\r\n [optionValue]=\"$any(question()).optionValue\"\r\n [optionType]=\"$any(question()).optionType\"\r\n [asyncOptionObs$]=\"$any(question()).asyncOptionObs$\"\r\n [placeholder]=\"question().placeholder\"\r\n [normalizeValue]=\"$any(question()).normalizeValue\"\r\n />\r\n }\r\n @case (QuestionTypeEnum.MultiSelect) {\r\n <base-form-multi-select [options]=\"$any(question()).options\"\r\n [formControlName]=\"question().key\"\r\n [optionLabel]=\"$any(question()).optionLabel\"\r\n [optionValue]=\"$any(question()).optionValue\"\r\n [normalizeValue]=\"$any(question()).normalizeValue\"\r\n [optionType]=\"$any(question()).optionType\"\r\n [asyncOptionObs$]=\"$any(question()).asyncOptionObs$\"\r\n [required]=\"question().required\"\r\n [placeholder]=\"question().placeholder\"/>\r\n }\r\n @case (QuestionTypeEnum.DatePicker) {\r\n <base-form-datepicker [formControlName]=\"question().key\"\r\n [required]=\"question().required\"\r\n [view]=\"$any(question()).view\"\r\n />\r\n }\r\n @case (QuestionTypeEnum.TextArea) {\r\n <base-form-textarea-input [formControlName]=\"question().key\"\r\n [required]=\"question().required\"/>\r\n }\r\n @case (QuestionTypeEnum.TimePicker) {\r\n <base-form-time-picker [formControlName]=\"question().key\"\r\n [required]=\"question().required\"\r\n [hourFormat]=\"$any(question()).hourFormat\"\r\n />\r\n }\r\n }\r\n </div>\r\n</div>\r\n","import { ChangeDetectionStrategy, Component, input } from '@angular/core';\r\nimport { FormGroup, ReactiveFormsModule } from '@angular/forms';\r\nimport { DynamicFormFieldComponent } from './dynamic-form-field/dynamic-form-field.component';\r\nimport { ButtonModule } from 'primeng/button';\r\nimport { CommonModule } from '@angular/common';\r\nimport { FormContainer } from '../core/models/question-base';\r\n\r\n@Component({\r\n selector: 'base-form-dynamic-form',\r\n imports: [\r\n ReactiveFormsModule,\r\n DynamicFormFieldComponent,\r\n ButtonModule,\r\n CommonModule,\r\n ],\r\n template: `\r\n <form [formGroup]=\"form()\">\r\n <div class=\"space-y-2 w-full\">\r\n @for (container of formContainer(); track container) {\r\n <div class=\"grid gap-4 w-full\" [ngStyle]=\"{'grid-template-columns': 'repeat(' + container.containers.length + ', minmax(0, 1fr))'}\">\r\n @for (question of container.containers; track question) {\r\n <base-form-dynamic-form-field [question]=\"question\" [form]=\"form()\" />\r\n }\r\n </div>\r\n }\r\n </div>\r\n </form>\r\n `,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class DynamicFormComponent {\r\n readonly formContainer = input<FormContainer[]>([]);\r\n readonly form = input.required<FormGroup>();\r\n}\r\n","import { ValidatorFn } from \"@angular/forms\";\r\nimport { QuestionFieldTypeEnum, QuestionTypeEnum } from \".././enums/question-type.enum\";\r\nimport { QuestionOptionsModel } from \"../models/question-base\";\r\n\r\nexport class QuestionBase {\r\n value: any;\r\n key: string;\r\n label: string;\r\n required: boolean;\r\n order: number;\r\n controlType: QuestionTypeEnum;\r\n type: QuestionFieldTypeEnum;\r\n validators: ValidatorFn[];\r\n placeholder: string;\r\n nonNullable: boolean;\r\n onValueChange?: (value: any, questions?: QuestionBase[]) => void;\r\n\r\n constructor(\r\n options: QuestionOptionsModel,\r\n ) {\r\n this.value = options.value;\r\n this.key = options.key || '';\r\n this.label = options.label || '';\r\n this.required = !!options.required;\r\n this.order = options.order === undefined ? 1 : options.order;\r\n this.controlType = (options.controlType || '') as QuestionTypeEnum;\r\n this.type = (options.type || '') as QuestionFieldTypeEnum;\r\n this.nonNullable = options.nonNullable || true;\r\n this.validators = options.validators || [];\r\n this.placeholder = options.placeholder || ''\r\n this.onValueChange = options.onValueChange\r\n }\r\n}\r\n","import { DatePickerTypeView } from \"primeng/datepicker\";\r\nimport { QuestionTypeEnum } from \".././enums/question-type.enum\";\r\nimport { QuestionBase } from \"./question-base\";\r\nimport { QuestionOptionsModel } from \"../models/question-base\";\r\n\r\nexport class QuestionDatePicker extends QuestionBase {\r\n override controlType = QuestionTypeEnum.DatePicker;\r\n view?: DatePickerTypeView\r\n\r\n constructor(options: QuestionOptionsModel & {view?: DatePickerTypeView}) {\r\n super(options)\r\n this.view = options.view || 'date'\r\n }\r\n}\r\n","import { Observable } from 'rxjs';\r\nimport { OptionTypeEnum } from '../enums/option-type.enum';\r\nimport { QuestionTypeEnum } from '../enums/question-type.enum';\r\nimport { QuestionBase } from './question-base';\r\nimport { SelectInputOptions } from './question-select-input';\r\n\r\nexport class QuestionMultiSelect extends QuestionBase {\r\n override controlType = QuestionTypeEnum.MultiSelect;\r\n loading: boolean;\r\n optionLabel: string;\r\n optionValue: string;\r\n options: any[];\r\n optionType?: OptionTypeEnum;\r\n asyncOptionObs$?: Observable<any>;\r\n normalizeValue?: (value: any, options?: any[]) => any\r\n\r\n constructor(options: SelectInputOptions) {\r\n super(options)\r\n this.loading = options.loading || false;\r\n this.optionLabel = options.optionLabel || 'label'\r\n this.optionValue = options.optionValue || 'value'\r\n this.options = options.options\r\n this.optionType = options.optionType || OptionTypeEnum.EAGER\r\n if(this.optionType === OptionTypeEnum.ASYNC) {\r\n this.asyncOptionObs$ = options.asyncOptionObs$\r\n }\r\n this.normalizeValue = options.normalizeValue\r\n }\r\n}\r\n","import { QuestionTypeEnum } from '../enums/question-type.enum';\r\nimport {QuestionBase} from './question-base';\r\n\r\nexport class QuestionPasswordInput extends QuestionBase {\r\n override controlType = QuestionTypeEnum.TextInput;\r\n}\r\n","import { Observable } from \"rxjs\";\r\nimport { AsyncOptionEnum } from \"../enums/async-option.enum\";\r\nimport { OptionTypeEnum } from \"../enums/option-type.enum\";\r\nimport { QuestionTypeEnum } from \"../enums/question-type.enum\";\r\nimport { QuestionOptionsModel } from \"../models/question-base\";\r\nimport { QuestionBase } from \"./question-base\";\r\n\r\ninterface SelectInputOptionsAsync extends SelectInputOptionsBase {\r\n optionType: OptionTypeEnum.ASYNC;\r\n asyncOptionObs$: Observable<any>;\r\n}\r\n\r\ninterface SelectInputOptionsEager extends SelectInputOptionsBase {\r\n optionType?: OptionTypeEnum.EAGER;\r\n asyncOptionObs$?: never;\r\n}\r\n\r\ninterface SelectInputOptionsBase extends QuestionOptionsModel{\r\n loading?: boolean;\r\n optionLabel?: string;\r\n optionValue?: string;\r\n options?: any,\r\n optionType?: OptionTypeEnum;\r\n asyncOptionObs$?: Observable<any>;\r\n normalizeValue?: (options: any, value: any) => any\r\n}\r\n\r\nexport type SelectInputOptions = SelectInputOptionsAsync | SelectInputOptionsEager;\r\n\r\nexport class QuestionSelectInput extends QuestionBase {\r\n override controlType = QuestionTypeEnum.SelectInput;\r\n optionLabel: string;\r\n optionValue: string;\r\n options: any[];\r\n optionType?: OptionTypeEnum;\r\n asyncOptionObs$?: Observable<any>;\r\n normalizeValue?: <T = any>(value: any, options?: any) => T\r\n\r\n constructor(options: SelectInputOptions) {\r\n super(options)\r\n this.optionLabel = options.optionLabel || 'label'\r\n this.optionValue = options.optionValue || 'value'\r\n this.options = options.options\r\n this.optionType = options.optionType || OptionTypeEnum.EAGER\r\n if(this.optionType === OptionTypeEnum.ASYNC) {\r\n this.asyncOptionObs$ = options.asyncOptionObs$\r\n }\r\n this.normalizeValue = options.normalizeValue\r\n }\r\n}\r\n","import { QuestionTypeEnum } from '../enums/question-type.enum';\r\nimport {QuestionBase} from './question-base';\r\n\r\nexport class QuestionTextInput extends QuestionBase{\r\n override controlType = QuestionTypeEnum.TextInput;\r\n}\r\n","import { QuestionTypeEnum } from '../enums/question-type.enum';\r\nimport {QuestionBase} from './question-base';\r\n\r\nexport class QuestionTextArea extends QuestionBase {\r\n override controlType = QuestionTypeEnum.TextArea;\r\n}\r\n","import { QuestionOptionsModel } from \"../../core/models/question-base\";\r\nimport { QuestionTypeEnum } from \"../enums/question-type.enum\";\r\nimport { QuestionBase } from \"./question-base\";\r\n\r\ninterface TimePickerOptions extends QuestionOptionsModel{\r\n hourFormat?: string\r\n}\r\n\r\nexport class QuestionTimePicker extends QuestionBase {\r\n override controlType = QuestionTypeEnum.TimePicker;\r\n hourFormat!: string\r\n\r\n constructor(options: TimePickerOptions) {\r\n super(options)\r\n this.hourFormat = options.hourFormat || '24'\r\n }\r\n}\r\n","export enum AsyncOptionEnum {\r\n SUBJECTS = 'subjects',\r\n FACILITIES = 'facilities',\r\n ROOM_TYPES = 'room_types',\r\n ROOMS = 'rooms',\r\n BUILDINGS = 'buildings',\r\n TEACHERS = 'teachers',\r\n CLASS_TYPES = 'class_types'\r\n}\r\n","import {Injectable} from '@angular/core';\r\nimport {AbstractControl, FormControl, FormGroup, Validators} from '@angular/forms';\r\nimport { debounceTime } from 'rxjs';\r\nimport { FormContainer } from '../core/models/question-base';\r\nimport { QuestionBase } from '../core/dynamic-form/question-base';\r\n\r\n@Injectable()\r\nexport class QuestionControlService {\r\n\r\n toFormGroup(containers: FormContainer[]): FormGroup {\r\n const questions = this._getQuestionsFromContainer(containers);\r\n\r\n const group: Record<string, AbstractControl> = {};\r\n questions.forEach((question) => {\r\n const control = new FormControl(question.value || null, {nonNullable: question.nonNullable})\r\n\r\n if(question.required) {\r\n control.addValidators(Validators.required)\r\n }\r\n\r\n if(question.validators.length) {\r\n control.addValidators(question.validators)\r\n }\r\n\r\n group[question.key] = control\r\n });\r\n\r\n questions.forEach(question => {\r\n group[question.key].valueChanges\r\n .pipe(\r\n debounceTime(250)\r\n )\r\n .subscribe((value) => {\r\n if(question.onValueChange instanceof Function) {\r\n question.onValueChange(value, questions)\r\n }\r\n })\r\n })\r\n return new FormGroup(group);\r\n }\r\n\r\n private _getQuestionsFromContainer(containers: FormContainer[]) {\r\n return containers.reduce((prev: QuestionBase[], curr: FormContainer) => {\r\n prev.push(...curr.containers)\r\n return prev\r\n }, [])\r\n }\r\n}\r\n","/*\r\n * Public API Surface of base-form\r\n */\r\n\r\nexport * from './lib/components/dynamic-form.component';\r\nexport * from './lib/components/datepicker/datepicker.component';\r\nexport * from './lib/components/dynamic-form-field/dynamic-form-field.component';\r\nexport * from './lib/components/multi-select/multi-select.component';\r\nexport * from './lib/components/password-input/password-input.component';\r\nexport * from './lib/components/select-input/select-input.component';\r\nexport * from './lib/components/text-input/text-input.component';\r\nexport * from './lib/components/text-input-number/number-input.component';\r\nexport * from './lib/components/textarea-input/textarea-input.component';\r\nexport * from './lib/components/time-picker/time-picker.component';\r\nexport * from './lib/core/dynamic-form/question-base';\r\nexport * from './lib/core/dynamic-form/question-datepicker';\r\nexport * from './lib/core/dynamic-form/question-multi-select';\r\nexport * from './lib/core/dynamic-form/question-password-input';\r\nexport * from './lib/core/dynamic-form/question-select-input';\r\nexport * from './lib/core/dynamic-form/question-text-input';\r\nexport * from './lib/core/dynamic-form/question-textarea';\r\nexport * from './lib/core/dynamic-form/question-time-picker';\r\nexport * from './lib/core/enums/question-type.enum';\r\nexport * from './lib/core/enums/option-type.enum';\r\nexport * from './lib/core/enums/async-option.enum';\r\nexport * from './lib/core/models/question-base';\r\nexport * from './lib/services/question-control.service';\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["VALUE_ACCESSOR_PROVIDER","i1","i2","i3"],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  import { ControlValueAccessor } from '@angular/forms';
2
2
  import { OptionTypeEnum } from '../../core/enums/option-type.enum';
3
- import { AsyncOptionEnum } from '../../core/enums/async-option.enum';
3
+ import { Observable } from 'rxjs';
4
4
  import * as i0 from "@angular/core";
5
5
  export declare class MultiSelectComponent implements ControlValueAccessor {
6
6
  label: import("@angular/core").InputSignal<string | undefined>;
@@ -12,12 +12,12 @@ export declare class MultiSelectComponent implements ControlValueAccessor {
12
12
  onChangeEmit: import("@angular/core").OutputEmitterRef<any>;
13
13
  required: import("@angular/core").InputSignal<unknown>;
14
14
  optionType: import("@angular/core").InputSignal<OptionTypeEnum | undefined>;
15
- asyncOptionType: import("@angular/core").InputSignal<AsyncOptionEnum | undefined>;
15
+ asyncOptionObs$: import("@angular/core").InputSignal<Observable<any> | undefined>;
16
16
  value: any[];
17
17
  disabled: boolean;
18
18
  loading: boolean;
19
19
  private _options;
20
- asyncOptionsPipe$: import("@angular/core").Signal<import("rxjs").Observable<never[]>>;
20
+ asyncOptionsPipe$: import("@angular/core").Signal<any>;
21
21
  onChange: (value: any) => void;
22
22
  onTouched: () => void;
23
23
  writeValue(value: any): void;
@@ -26,5 +26,5 @@ export declare class MultiSelectComponent implements ControlValueAccessor {
26
26
  setDisabledState(isDisabled: boolean): void;
27
27
  handleChange(event: any): void;
28
28
  static ɵfac: i0.ɵɵFactoryDeclaration<MultiSelectComponent, never>;
29
- static ɵcmp: i0.ɵɵComponentDeclaration<MultiSelectComponent, "base-form-multi-select", never, { "label": { "alias": "label"; "required": false; "isSignal": true; }; "options": { "alias": "options"; "required": true; "isSignal": true; }; "optionLabel": { "alias": "optionLabel"; "required": false; "isSignal": true; }; "optionValue": { "alias": "optionValue"; "required": false; "isSignal": true; }; "normalizeValue": { "alias": "normalizeValue"; "required": false; "isSignal": true; }; "placeholder": { "alias": "placeholder"; "required": false; "isSignal": true; }; "required": { "alias": "required"; "required": false; "isSignal": true; }; "optionType": { "alias": "optionType"; "required": false; "isSignal": true; }; "asyncOptionType": { "alias": "asyncOptionType"; "required": false; "isSignal": true; }; }, { "onChangeEmit": "onChangeEmit"; }, never, never, true, never>;
29
+ static ɵcmp: i0.ɵɵComponentDeclaration<MultiSelectComponent, "base-form-multi-select", never, { "label": { "alias": "label"; "required": false; "isSignal": true; }; "options": { "alias": "options"; "required": true; "isSignal": true; }; "optionLabel": { "alias": "optionLabel"; "required": false; "isSignal": true; }; "optionValue": { "alias": "optionValue"; "required": false; "isSignal": true; }; "normalizeValue": { "alias": "normalizeValue"; "required": false; "isSignal": true; }; "placeholder": { "alias": "placeholder"; "required": false; "isSignal": true; }; "required": { "alias": "required"; "required": false; "isSignal": true; }; "optionType": { "alias": "optionType"; "required": false; "isSignal": true; }; "asyncOptionObs$": { "alias": "asyncOptionObs$"; "required": false; "isSignal": true; }; }, { "onChangeEmit": "onChangeEmit"; }, never, never, true, never>;
30
30
  }
@@ -1,6 +1,6 @@
1
1
  import { ControlValueAccessor } from '@angular/forms';
2
2
  import { OptionTypeEnum } from '../../core/enums/option-type.enum';
3
- import { AsyncOptionEnum } from '../../core/enums/async-option.enum';
3
+ import { Observable } from 'rxjs';
4
4
  import * as i0 from "@angular/core";
5
5
  export declare class SelectInputComponent implements ControlValueAccessor {
6
6
  label: import("@angular/core").InputSignal<unknown>;
@@ -12,10 +12,10 @@ export declare class SelectInputComponent implements ControlValueAccessor {
12
12
  onChangeEmit: import("@angular/core").OutputEmitterRef<any>;
13
13
  required: import("@angular/core").InputSignal<unknown>;
14
14
  optionType: import("@angular/core").InputSignal<OptionTypeEnum>;
15
- asyncOptionType: import("@angular/core").InputSignal<AsyncOptionEnum | undefined>;
15
+ asyncOptionObs$: import("@angular/core").InputSignal<Observable<any> | undefined>;
16
16
  loading: boolean;
17
17
  private _options;
18
- asyncOptionsPipe$: import("@angular/core").Signal<import("rxjs").Observable<never[]>>;
18
+ asyncOptionsPipe$: import("@angular/core").Signal<any>;
19
19
  value: any;
20
20
  disabled: boolean;
21
21
  onChange: (value: any) => void;
@@ -26,5 +26,5 @@ export declare class SelectInputComponent implements ControlValueAccessor {
26
26
  setDisabledState(isDisabled: boolean): void;
27
27
  handleChange(event: any): void;
28
28
  static ɵfac: i0.ɵɵFactoryDeclaration<SelectInputComponent, never>;
29
- static ɵcmp: i0.ɵɵComponentDeclaration<SelectInputComponent, "base-form-select-input", never, { "label": { "alias": "label"; "required": false; "isSignal": true; }; "options": { "alias": "options"; "required": false; "isSignal": true; }; "optionLabel": { "alias": "optionLabel"; "required": false; "isSignal": true; }; "optionValue": { "alias": "optionValue"; "required": false; "isSignal": true; }; "normalizeValue": { "alias": "normalizeValue"; "required": false; "isSignal": true; }; "placeholder": { "alias": "placeholder"; "required": false; "isSignal": true; }; "required": { "alias": "required"; "required": false; "isSignal": true; }; "optionType": { "alias": "optionType"; "required": false; "isSignal": true; }; "asyncOptionType": { "alias": "asyncOptionType"; "required": false; "isSignal": true; }; }, { "onChangeEmit": "onChangeEmit"; }, never, never, true, never>;
29
+ static ɵcmp: i0.ɵɵComponentDeclaration<SelectInputComponent, "base-form-select-input", never, { "label": { "alias": "label"; "required": false; "isSignal": true; }; "options": { "alias": "options"; "required": false; "isSignal": true; }; "optionLabel": { "alias": "optionLabel"; "required": false; "isSignal": true; }; "optionValue": { "alias": "optionValue"; "required": false; "isSignal": true; }; "normalizeValue": { "alias": "normalizeValue"; "required": false; "isSignal": true; }; "placeholder": { "alias": "placeholder"; "required": false; "isSignal": true; }; "required": { "alias": "required"; "required": false; "isSignal": true; }; "optionType": { "alias": "optionType"; "required": false; "isSignal": true; }; "asyncOptionObs$": { "alias": "asyncOptionObs$"; "required": false; "isSignal": true; }; }, { "onChangeEmit": "onChangeEmit"; }, never, never, true, never>;
30
30
  }
@@ -1,4 +1,4 @@
1
- import { AsyncOptionEnum } from '../enums/async-option.enum';
1
+ import { Observable } from 'rxjs';
2
2
  import { OptionTypeEnum } from '../enums/option-type.enum';
3
3
  import { QuestionTypeEnum } from '../enums/question-type.enum';
4
4
  import { QuestionBase } from './question-base';
@@ -10,7 +10,7 @@ export declare class QuestionMultiSelect extends QuestionBase {
10
10
  optionValue: string;
11
11
  options: any[];
12
12
  optionType?: OptionTypeEnum;
13
- asyncOptionType?: AsyncOptionEnum;
13
+ asyncOptionObs$?: Observable<any>;
14
14
  normalizeValue?: (value: any, options?: any[]) => any;
15
15
  constructor(options: SelectInputOptions);
16
16
  }
@@ -1,15 +1,15 @@
1
- import { AsyncOptionEnum } from "../enums/async-option.enum";
1
+ import { Observable } from "rxjs";
2
2
  import { OptionTypeEnum } from "../enums/option-type.enum";
3
3
  import { QuestionTypeEnum } from "../enums/question-type.enum";
4
4
  import { QuestionOptionsModel } from "../models/question-base";
5
5
  import { QuestionBase } from "./question-base";
6
6
  interface SelectInputOptionsAsync extends SelectInputOptionsBase {
7
7
  optionType: OptionTypeEnum.ASYNC;
8
- asyncOptionType: AsyncOptionEnum;
8
+ asyncOptionObs$: Observable<any>;
9
9
  }
10
10
  interface SelectInputOptionsEager extends SelectInputOptionsBase {
11
11
  optionType?: OptionTypeEnum.EAGER;
12
- asyncOptionType?: never;
12
+ asyncOptionObs$?: never;
13
13
  }
14
14
  interface SelectInputOptionsBase extends QuestionOptionsModel {
15
15
  loading?: boolean;
@@ -17,7 +17,7 @@ interface SelectInputOptionsBase extends QuestionOptionsModel {
17
17
  optionValue?: string;
18
18
  options?: any;
19
19
  optionType?: OptionTypeEnum;
20
- asyncOptionType?: any;
20
+ asyncOptionObs$?: Observable<any>;
21
21
  normalizeValue?: (options: any, value: any) => any;
22
22
  }
23
23
  export type SelectInputOptions = SelectInputOptionsAsync | SelectInputOptionsEager;
@@ -27,7 +27,7 @@ export declare class QuestionSelectInput extends QuestionBase {
27
27
  optionValue: string;
28
28
  options: any[];
29
29
  optionType?: OptionTypeEnum;
30
- asyncOptionType?: AsyncOptionEnum;
30
+ asyncOptionObs$?: Observable<any>;
31
31
  normalizeValue?: <T = any>(value: any, options?: any) => T;
32
32
  constructor(options: SelectInputOptions);
33
33
  }
@@ -0,0 +1 @@
1
+ export declare function handleAsyncOption(this: any): any;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ilhombek/base-form",
3
- "version": "0.0.8",
3
+ "version": "0.0.9",
4
4
  "peerDependencies": {
5
5
  "@angular/common": "^19.2.0",
6
6
  "@angular/core": "^19.2.0"