@ilhombek/base-form 0.0.3 → 0.0.4
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.
|
@@ -54,11 +54,11 @@ class TextInputComponent {
|
|
|
54
54
|
this.onTouched();
|
|
55
55
|
}
|
|
56
56
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: TextInputComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
57
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.18", type: TextInputComponent, isStandalone: true, selector: "base-form-text-input", inputs: { label: { classPropertyName: "label", publicName: "label", isSignal: true, isRequired: false, transformFunction: null }, icon: { classPropertyName: "icon", publicName: "icon", 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 } }, outputs: { onChangeEmit: "onChangeEmit" }, providers: [VALUE_ACCESSOR_PROVIDER$7], ngImport: i0, template: "<div class=\"flex flex-col gap-1\">\n @if(label()) {\n <label class=\"text-sm font-medium text-gray-700\">{{ label() }}</label>\n }\n <span class=\"w-full\" [ngClass]=\"{'p-input-icon-left': icon()}\">\n @if (icon()) {\n <i class=\"pi pi-search\" [ngClass]=\"{'absolute top-[12px]': icon()}\"></i>\n }\n <input pInputText type=\"text\"\n class=\"p-inputtext w-full\"\n [ngClass]=\"{\n '!pl-[40px]': icon(),\n 'ng-invalid ng-dirty': required() && !value,\n }\"\n [placeholder]=\"placeholder()\"\n [disabled]=\"disabled\"\n [value]=\"value\"\n (input)=\"handleInput($event)\" />\n </span>\n</div>\n", styles: [":host{display:block;flex:1 1 auto;min-width:0}.p-inputtext{border-radius:.5rem;border:1px solid #e5e7eb}.p-inputtext:focus{box-shadow:0 0 0 2px #3b82f680;border-color:#3b82f6}.p-input-icon-left>i:first-of-type{left:1rem}.p-input-icon-left{position:relative}\n"], dependencies: [{ kind: "ngmodule", type: InputTextModule }, { kind: "directive", type: i1.InputText, selector: "[pInputText]", inputs: ["variant", "fluid", "pSize"] }, { kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
57
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.18", type: TextInputComponent, isStandalone: true, selector: "base-form-text-input", inputs: { label: { classPropertyName: "label", publicName: "label", isSignal: true, isRequired: false, transformFunction: null }, icon: { classPropertyName: "icon", publicName: "icon", 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 } }, outputs: { onChangeEmit: "onChangeEmit" }, providers: [VALUE_ACCESSOR_PROVIDER$7], 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 <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 <input pInputText type=\"text\"\r\n class=\"p-inputtext w-full\"\r\n [ngClass]=\"{\r\n '!pl-[40px]': icon(),\r\n 'ng-invalid ng-dirty': required() && !value,\r\n }\"\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", styles: [":host{display:block;flex:1 1 auto;min-width:0}.p-inputtext{border-radius:.5rem;border:1px solid #e5e7eb}.p-inputtext:focus{box-shadow:0 0 0 2px #3b82f680;border-color:#3b82f6}.p-input-icon-left>i:first-of-type{left:1rem}.p-input-icon-left{position:relative}\n"], dependencies: [{ kind: "ngmodule", type: InputTextModule }, { kind: "directive", type: i1.InputText, selector: "[pInputText]", inputs: ["variant", "fluid", "pSize"] }, { kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
58
58
|
}
|
|
59
59
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: TextInputComponent, decorators: [{
|
|
60
60
|
type: Component,
|
|
61
|
-
args: [{ selector: 'base-form-text-input', imports: [InputTextModule, CommonModule], providers: [VALUE_ACCESSOR_PROVIDER$7], changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"flex flex-col gap-1\">\n @if(label()) {\n <label class=\"text-sm font-medium text-gray-700\">{{ label() }}</label>\n }\n <span class=\"w-full\" [ngClass]=\"{'p-input-icon-left': icon()}\">\n @if (icon()) {\n <i class=\"pi pi-search\" [ngClass]=\"{'absolute top-[12px]': icon()}\"></i>\n }\n <input pInputText type=\"text\"\n class=\"p-inputtext w-full\"\n [ngClass]=\"{\n '!pl-[40px]': icon(),\n 'ng-invalid ng-dirty': required() && !value,\n }\"\n [placeholder]=\"placeholder()\"\n [disabled]=\"disabled\"\n [value]=\"value\"\n (input)=\"handleInput($event)\" />\n </span>\n</div>\n", styles: [":host{display:block;flex:1 1 auto;min-width:0}.p-inputtext{border-radius:.5rem;border:1px solid #e5e7eb}.p-inputtext:focus{box-shadow:0 0 0 2px #3b82f680;border-color:#3b82f6}.p-input-icon-left>i:first-of-type{left:1rem}.p-input-icon-left{position:relative}\n"] }]
|
|
61
|
+
args: [{ selector: 'base-form-text-input', imports: [InputTextModule, CommonModule], providers: [VALUE_ACCESSOR_PROVIDER$7], changeDetection: ChangeDetectionStrategy.OnPush, 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 <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 <input pInputText type=\"text\"\r\n class=\"p-inputtext w-full\"\r\n [ngClass]=\"{\r\n '!pl-[40px]': icon(),\r\n 'ng-invalid ng-dirty': required() && !value,\r\n }\"\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", styles: [":host{display:block;flex:1 1 auto;min-width:0}.p-inputtext{border-radius:.5rem;border:1px solid #e5e7eb}.p-inputtext:focus{box-shadow:0 0 0 2px #3b82f680;border-color:#3b82f6}.p-input-icon-left>i:first-of-type{left:1rem}.p-input-icon-left{position:relative}\n"] }]
|
|
62
62
|
}] });
|
|
63
63
|
|
|
64
64
|
var OptionTypeEnum;
|
|
@@ -120,11 +120,11 @@ class SelectInputComponent {
|
|
|
120
120
|
this.onTouched();
|
|
121
121
|
}
|
|
122
122
|
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\">\n @if (label()) {\n <label class=\"text-sm font-medium text-gray-700\">{{ label() }}</label>\n }\n <p-select [options]=\"(asyncOptionsPipe$() | async) || []\"\n [optionLabel]=\"optionLabel()\"\n [optionValue]=\"optionValue()\"\n [ngModel]=\"value\"\n [loading]=\"loading\"\n [placeholder]=\"placeholder()\"\n [disabled]=\"disabled\"\n appendTo=\"body\"\n (onChange)=\"handleChange($event)\"\n [ngClass]=\"{'ng-invalid': required() && !value}\"\n ></p-select>\n</div>\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 });
|
|
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 });
|
|
124
124
|
}
|
|
125
125
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: SelectInputComponent, decorators: [{
|
|
126
126
|
type: Component,
|
|
127
|
-
args: [{ selector: 'base-form-select-input', imports: [SelectModule, FormsModule, CommonModule], providers: [VALUE_ACCESSOR_PROVIDER$6], changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"flex flex-col gap-1\">\n @if (label()) {\n <label class=\"text-sm font-medium text-gray-700\">{{ label() }}</label>\n }\n <p-select [options]=\"(asyncOptionsPipe$() | async) || []\"\n [optionLabel]=\"optionLabel()\"\n [optionValue]=\"optionValue()\"\n [ngModel]=\"value\"\n [loading]=\"loading\"\n [placeholder]=\"placeholder()\"\n [disabled]=\"disabled\"\n appendTo=\"body\"\n (onChange)=\"handleChange($event)\"\n [ngClass]=\"{'ng-invalid': required() && !value}\"\n ></p-select>\n</div>\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"] }]
|
|
127
|
+
args: [{ selector: 'base-form-select-input', imports: [SelectModule, FormsModule, CommonModule], providers: [VALUE_ACCESSOR_PROVIDER$6], changeDetection: ChangeDetectionStrategy.OnPush, 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"] }]
|
|
128
128
|
}] });
|
|
129
129
|
|
|
130
130
|
const VALUE_ACCESSOR_PROVIDER$5 = {
|
|
@@ -169,11 +169,11 @@ class DatepickerComponent {
|
|
|
169
169
|
this.onTouched();
|
|
170
170
|
}
|
|
171
171
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: DatepickerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
172
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.18", type: DatepickerComponent, isStandalone: true, selector: "base-form-datepicker", inputs: { label: { classPropertyName: "label", publicName: "label", isSignal: true, isRequired: false, transformFunction: null }, required: { classPropertyName: "required", publicName: "required", isSignal: true, isRequired: false, transformFunction: null }, view: { classPropertyName: "view", publicName: "view", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { onChangeEmit: "onChangeEmit" }, providers: [VALUE_ACCESSOR_PROVIDER$5], ngImport: i0, template: "<div class=\"flex flex-col gap-1\">\n @if (label()) {\n <label class=\"text-sm font-medium text-gray-700\">{{ label() }}</label>\n }\n <p-datepicker [iconDisplay]=\"'input'\"\n [ngClass]=\"{'ng-invalid ng-dirty': required() && !value}\"\n [showIcon]=\"true\"\n [view]=\"view()\"\n [ngModel]=\"value\"\n [dateFormat]=\"view() === 'year' ? 'yy' : view() === 'month' ? 'mm' : 'dd-mm-yy'\"\n (onSelect)=\"handleChange($event)\"\n appendTo=\"body\"\n inputId=\"icondisplay\" />\n</div>\n\n", styles: [":host{display:block}::ng-deep .p-datepicker{width:100%}\n"], dependencies: [{ kind: "ngmodule", type: DatePickerModule }, { kind: "component", type: i1$2.DatePicker, selector: "p-datePicker, p-datepicker, p-date-picker", inputs: ["iconDisplay", "style", "styleClass", "inputStyle", "inputId", "name", "inputStyleClass", "placeholder", "ariaLabelledBy", "ariaLabel", "iconAriaLabel", "disabled", "dateFormat", "multipleSeparator", "rangeSeparator", "inline", "showOtherMonths", "selectOtherMonths", "showIcon", "fluid", "icon", "appendTo", "readonlyInput", "shortYearCutoff", "monthNavigator", "yearNavigator", "hourFormat", "timeOnly", "stepHour", "stepMinute", "stepSecond", "showSeconds", "required", "showOnFocus", "showWeek", "startWeekFromFirstDayOfYear", "showClear", "dataType", "selectionMode", "maxDateCount", "showButtonBar", "todayButtonStyleClass", "clearButtonStyleClass", "autofocus", "autoZIndex", "baseZIndex", "panelStyleClass", "panelStyle", "keepInvalid", "hideOnDateTimeSelect", "touchUI", "timeSeparator", "focusTrap", "showTransitionOptions", "hideTransitionOptions", "tabindex", "variant", "size", "minDate", "maxDate", "disabledDates", "disabledDays", "yearRange", "showTime", "responsiveOptions", "numberOfMonths", "firstDayOfWeek", "locale", "view", "defaultDate"], outputs: ["onFocus", "onBlur", "onClose", "onSelect", "onClear", "onInput", "onTodayClick", "onClearClick", "onMonthChange", "onYearChange", "onClickOutside", "onShow"] }, { kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { 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 });
|
|
172
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.18", type: DatepickerComponent, isStandalone: true, selector: "base-form-datepicker", inputs: { label: { classPropertyName: "label", publicName: "label", isSignal: true, isRequired: false, transformFunction: null }, required: { classPropertyName: "required", publicName: "required", isSignal: true, isRequired: false, transformFunction: null }, view: { classPropertyName: "view", publicName: "view", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { onChangeEmit: "onChangeEmit" }, providers: [VALUE_ACCESSOR_PROVIDER$5], 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-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", styles: [":host{display:block}::ng-deep .p-datepicker{width:100%}\n"], dependencies: [{ kind: "ngmodule", type: DatePickerModule }, { kind: "component", type: i1$2.DatePicker, selector: "p-datePicker, p-datepicker, p-date-picker", inputs: ["iconDisplay", "style", "styleClass", "inputStyle", "inputId", "name", "inputStyleClass", "placeholder", "ariaLabelledBy", "ariaLabel", "iconAriaLabel", "disabled", "dateFormat", "multipleSeparator", "rangeSeparator", "inline", "showOtherMonths", "selectOtherMonths", "showIcon", "fluid", "icon", "appendTo", "readonlyInput", "shortYearCutoff", "monthNavigator", "yearNavigator", "hourFormat", "timeOnly", "stepHour", "stepMinute", "stepSecond", "showSeconds", "required", "showOnFocus", "showWeek", "startWeekFromFirstDayOfYear", "showClear", "dataType", "selectionMode", "maxDateCount", "showButtonBar", "todayButtonStyleClass", "clearButtonStyleClass", "autofocus", "autoZIndex", "baseZIndex", "panelStyleClass", "panelStyle", "keepInvalid", "hideOnDateTimeSelect", "touchUI", "timeSeparator", "focusTrap", "showTransitionOptions", "hideTransitionOptions", "tabindex", "variant", "size", "minDate", "maxDate", "disabledDates", "disabledDays", "yearRange", "showTime", "responsiveOptions", "numberOfMonths", "firstDayOfWeek", "locale", "view", "defaultDate"], outputs: ["onFocus", "onBlur", "onClose", "onSelect", "onClear", "onInput", "onTodayClick", "onClearClick", "onMonthChange", "onYearChange", "onClickOutside", "onShow"] }, { kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { 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 });
|
|
173
173
|
}
|
|
174
174
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: DatepickerComponent, decorators: [{
|
|
175
175
|
type: Component,
|
|
176
|
-
args: [{ selector: 'base-form-datepicker', imports: [DatePickerModule, CommonModule, FormsModule], providers: [VALUE_ACCESSOR_PROVIDER$5], changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"flex flex-col gap-1\">\n @if (label()) {\n <label class=\"text-sm font-medium text-gray-700\">{{ label() }}</label>\n }\n <p-datepicker [iconDisplay]=\"'input'\"\n [ngClass]=\"{'ng-invalid ng-dirty': required() && !value}\"\n [showIcon]=\"true\"\n [view]=\"view()\"\n [ngModel]=\"value\"\n [dateFormat]=\"view() === 'year' ? 'yy' : view() === 'month' ? 'mm' : 'dd-mm-yy'\"\n (onSelect)=\"handleChange($event)\"\n appendTo=\"body\"\n inputId=\"icondisplay\" />\n</div>\n\n", styles: [":host{display:block}::ng-deep .p-datepicker{width:100%}\n"] }]
|
|
176
|
+
args: [{ selector: 'base-form-datepicker', imports: [DatePickerModule, CommonModule, FormsModule], providers: [VALUE_ACCESSOR_PROVIDER$5], changeDetection: ChangeDetectionStrategy.OnPush, 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-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", styles: [":host{display:block}::ng-deep .p-datepicker{width:100%}\n"] }]
|
|
177
177
|
}] });
|
|
178
178
|
|
|
179
179
|
const VALUE_ACCESSOR_PROVIDER$4 = {
|
|
@@ -211,11 +211,11 @@ class PasswordInputComponent {
|
|
|
211
211
|
this.onTouched();
|
|
212
212
|
}
|
|
213
213
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: PasswordInputComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
214
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.18", type: PasswordInputComponent, isStandalone: true, selector: "base-form-password-input", inputs: { label: { classPropertyName: "label", publicName: "label", isSignal: true, isRequired: false, transformFunction: null }, icon: { classPropertyName: "icon", publicName: "icon", 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 } }, outputs: { onChangeEmit: "onChangeEmit" }, providers: [VALUE_ACCESSOR_PROVIDER$4], ngImport: i0, template: "<div class=\"flex flex-col gap-1\">\n @if(label()) {\n <label class=\"text-sm font-medium text-gray-700\">{{ label() }}</label>\n }\n <span class=\"w-full\" [ngClass]=\"{'p-input-icon-left': icon()}\">\n @if (icon()) {\n <i class=\"pi pi-search\" [ngClass]=\"{'absolute top-[12px]': icon()}\"></i>\n }\n <p-password id=\"password\"\n [feedback]=\"false\"\n showClear=\"true\"\n (input)=\"handleInput($event)\"\n [ngClass]=\"{'!pl-[40px]': icon(), 'ng-invalid ng-dirty': required() && !value}\"\n [placeholder]=\"placeholder()\"\n [disabled]=\"disabled\"\n class=\" w-full\" />\n </span>\n</div>\n", styles: [":host{display:block;flex:1 1 auto;min-width:0}.p-inputtext{border-radius:.5rem;border:1px solid #e5e7eb}.p-inputtext:focus{box-shadow:0 0 0 2px #3b82f680;border-color:#3b82f6}.p-input-icon-left>i:first-of-type{left:1rem}.p-input-icon-left{position:relative}\n"], dependencies: [{ kind: "ngmodule", type: PasswordModule }, { kind: "component", type: i1$3.Password, selector: "p-password", inputs: ["ariaLabel", "fluid", "ariaLabelledBy", "label", "disabled", "promptLabel", "mediumRegex", "strongRegex", "weakLabel", "mediumLabel", "maxLength", "strongLabel", "inputId", "feedback", "appendTo", "toggleMask", "size", "inputStyleClass", "styleClass", "style", "inputStyle", "showTransitionOptions", "hideTransitionOptions", "autocomplete", "placeholder", "showClear", "autofocus", "variant", "tabindex"], outputs: ["onFocus", "onBlur", "onClear"] }, { kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
214
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.18", type: PasswordInputComponent, isStandalone: true, selector: "base-form-password-input", inputs: { label: { classPropertyName: "label", publicName: "label", isSignal: true, isRequired: false, transformFunction: null }, icon: { classPropertyName: "icon", publicName: "icon", 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 } }, outputs: { onChangeEmit: "onChangeEmit" }, providers: [VALUE_ACCESSOR_PROVIDER$4], 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 <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", styles: [":host{display:block;flex:1 1 auto;min-width:0}.p-inputtext{border-radius:.5rem;border:1px solid #e5e7eb}.p-inputtext:focus{box-shadow:0 0 0 2px #3b82f680;border-color:#3b82f6}.p-input-icon-left>i:first-of-type{left:1rem}.p-input-icon-left{position:relative}\n"], dependencies: [{ kind: "ngmodule", type: PasswordModule }, { kind: "component", type: i1$3.Password, selector: "p-password", inputs: ["ariaLabel", "fluid", "ariaLabelledBy", "label", "disabled", "promptLabel", "mediumRegex", "strongRegex", "weakLabel", "mediumLabel", "maxLength", "strongLabel", "inputId", "feedback", "appendTo", "toggleMask", "size", "inputStyleClass", "styleClass", "style", "inputStyle", "showTransitionOptions", "hideTransitionOptions", "autocomplete", "placeholder", "showClear", "autofocus", "variant", "tabindex"], outputs: ["onFocus", "onBlur", "onClear"] }, { kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
215
215
|
}
|
|
216
216
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: PasswordInputComponent, decorators: [{
|
|
217
217
|
type: Component,
|
|
218
|
-
args: [{ selector: 'base-form-password-input', imports: [PasswordModule, CommonModule], providers: [VALUE_ACCESSOR_PROVIDER$4], changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"flex flex-col gap-1\">\n @if(label()) {\n <label class=\"text-sm font-medium text-gray-700\">{{ label() }}</label>\n }\n <span class=\"w-full\" [ngClass]=\"{'p-input-icon-left': icon()}\">\n @if (icon()) {\n <i class=\"pi pi-search\" [ngClass]=\"{'absolute top-[12px]': icon()}\"></i>\n }\n <p-password id=\"password\"\n [feedback]=\"false\"\n showClear=\"true\"\n (input)=\"handleInput($event)\"\n [ngClass]=\"{'!pl-[40px]': icon(), 'ng-invalid ng-dirty': required() && !value}\"\n [placeholder]=\"placeholder()\"\n [disabled]=\"disabled\"\n class=\" w-full\" />\n </span>\n</div>\n", styles: [":host{display:block;flex:1 1 auto;min-width:0}.p-inputtext{border-radius:.5rem;border:1px solid #e5e7eb}.p-inputtext:focus{box-shadow:0 0 0 2px #3b82f680;border-color:#3b82f6}.p-input-icon-left>i:first-of-type{left:1rem}.p-input-icon-left{position:relative}\n"] }]
|
|
218
|
+
args: [{ selector: 'base-form-password-input', imports: [PasswordModule, CommonModule], providers: [VALUE_ACCESSOR_PROVIDER$4], changeDetection: ChangeDetectionStrategy.OnPush, 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 <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", styles: [":host{display:block;flex:1 1 auto;min-width:0}.p-inputtext{border-radius:.5rem;border:1px solid #e5e7eb}.p-inputtext:focus{box-shadow:0 0 0 2px #3b82f680;border-color:#3b82f6}.p-input-icon-left>i:first-of-type{left:1rem}.p-input-icon-left{position:relative}\n"] }]
|
|
219
219
|
}] });
|
|
220
220
|
|
|
221
221
|
const VALUE_ACCESSOR_PROVIDER$3 = {
|
|
@@ -254,11 +254,11 @@ class NumberInputComponent {
|
|
|
254
254
|
this.onTouched();
|
|
255
255
|
}
|
|
256
256
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: NumberInputComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
257
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.18", type: NumberInputComponent, isStandalone: true, selector: "base-form-number-input", inputs: { label: { classPropertyName: "label", publicName: "label", isSignal: true, isRequired: false, transformFunction: null }, placeholder: { classPropertyName: "placeholder", publicName: "placeholder", isSignal: true, isRequired: false, transformFunction: null }, min: { classPropertyName: "min", publicName: "min", isSignal: true, isRequired: false, transformFunction: null }, max: { classPropertyName: "max", publicName: "max", isSignal: true, isRequired: false, transformFunction: null }, required: { classPropertyName: "required", publicName: "required", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { onChangeEmit: "onChangeEmit" }, providers: [VALUE_ACCESSOR_PROVIDER$3], ngImport: i0, template: "<div class=\"flex flex-col gap-1\">\n @if(label()) {\n <label class=\"text-sm font-medium text-gray-700\">{{ label() }}</label>\n }\n <p-inputNumber [min]=\"min()\"\n [max]=\"max()\"\n [ngModel]=\"value\"\n [fluid]=\"true\"\n [placeholder]=\"placeholder()\"\n (onInput)=\"handleInput($event)\"\n [showButtons]=\"true\"\n class=\"p-inputnumber w-full\" [ngClass]=\"{'ng-invalid ng-dirty': required() && !value}\">\n </p-inputNumber>\n</div>\n", styles: [":host{display:block}.p-inputnumber{border-radius:.5rem}::ng-deep .p-inputtext:enabled:focus{box-shadow:0 0 0 2px #3b82f680;border-color:#3b82f6}\n"], dependencies: [{ kind: "ngmodule", type: InputNumberModule }, { kind: "component", type: i1$4.InputNumber, selector: "p-inputNumber, p-inputnumber, p-input-number", inputs: ["showButtons", "format", "buttonLayout", "inputId", "styleClass", "style", "placeholder", "size", "maxlength", "tabindex", "title", "ariaLabelledBy", "ariaDescribedBy", "ariaLabel", "ariaRequired", "name", "required", "autocomplete", "min", "max", "incrementButtonClass", "decrementButtonClass", "incrementButtonIcon", "decrementButtonIcon", "readonly", "step", "allowEmpty", "locale", "localeMatcher", "mode", "currency", "currencyDisplay", "useGrouping", "variant", "minFractionDigits", "maxFractionDigits", "prefix", "suffix", "inputStyle", "inputStyleClass", "showClear", "autofocus", "disabled", "fluid"], outputs: ["onInput", "onFocus", "onBlur", "onKeyDown", "onClear"] }, { kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { 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 });
|
|
257
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.18", type: NumberInputComponent, isStandalone: true, selector: "base-form-number-input", inputs: { label: { classPropertyName: "label", publicName: "label", isSignal: true, isRequired: false, transformFunction: null }, placeholder: { classPropertyName: "placeholder", publicName: "placeholder", isSignal: true, isRequired: false, transformFunction: null }, min: { classPropertyName: "min", publicName: "min", isSignal: true, isRequired: false, transformFunction: null }, max: { classPropertyName: "max", publicName: "max", isSignal: true, isRequired: false, transformFunction: null }, required: { classPropertyName: "required", publicName: "required", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { onChangeEmit: "onChangeEmit" }, providers: [VALUE_ACCESSOR_PROVIDER$3], 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-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", styles: [":host{display:block}.p-inputnumber{border-radius:.5rem}::ng-deep .p-inputtext:enabled:focus{box-shadow:0 0 0 2px #3b82f680;border-color:#3b82f6}\n"], dependencies: [{ kind: "ngmodule", type: InputNumberModule }, { kind: "component", type: i1$4.InputNumber, selector: "p-inputNumber, p-inputnumber, p-input-number", inputs: ["showButtons", "format", "buttonLayout", "inputId", "styleClass", "style", "placeholder", "size", "maxlength", "tabindex", "title", "ariaLabelledBy", "ariaDescribedBy", "ariaLabel", "ariaRequired", "name", "required", "autocomplete", "min", "max", "incrementButtonClass", "decrementButtonClass", "incrementButtonIcon", "decrementButtonIcon", "readonly", "step", "allowEmpty", "locale", "localeMatcher", "mode", "currency", "currencyDisplay", "useGrouping", "variant", "minFractionDigits", "maxFractionDigits", "prefix", "suffix", "inputStyle", "inputStyleClass", "showClear", "autofocus", "disabled", "fluid"], outputs: ["onInput", "onFocus", "onBlur", "onKeyDown", "onClear"] }, { kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { 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 });
|
|
258
258
|
}
|
|
259
259
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: NumberInputComponent, decorators: [{
|
|
260
260
|
type: Component,
|
|
261
|
-
args: [{ selector: 'base-form-number-input', imports: [InputNumberModule, CommonModule, FormsModule], providers: [VALUE_ACCESSOR_PROVIDER$3], changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"flex flex-col gap-1\">\n @if(label()) {\n <label class=\"text-sm font-medium text-gray-700\">{{ label() }}</label>\n }\n <p-inputNumber [min]=\"min()\"\n [max]=\"max()\"\n [ngModel]=\"value\"\n [fluid]=\"true\"\n [placeholder]=\"placeholder()\"\n (onInput)=\"handleInput($event)\"\n [showButtons]=\"true\"\n class=\"p-inputnumber w-full\" [ngClass]=\"{'ng-invalid ng-dirty': required() && !value}\">\n </p-inputNumber>\n</div>\n", styles: [":host{display:block}.p-inputnumber{border-radius:.5rem}::ng-deep .p-inputtext:enabled:focus{box-shadow:0 0 0 2px #3b82f680;border-color:#3b82f6}\n"] }]
|
|
261
|
+
args: [{ selector: 'base-form-number-input', imports: [InputNumberModule, CommonModule, FormsModule], providers: [VALUE_ACCESSOR_PROVIDER$3], changeDetection: ChangeDetectionStrategy.OnPush, 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-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", styles: [":host{display:block}.p-inputnumber{border-radius:.5rem}::ng-deep .p-inputtext:enabled:focus{box-shadow:0 0 0 2px #3b82f680;border-color:#3b82f6}\n"] }]
|
|
262
262
|
}] });
|
|
263
263
|
|
|
264
264
|
var QuestionTypeEnum;
|
|
@@ -316,11 +316,11 @@ class TimePickerComponent {
|
|
|
316
316
|
this.onTouched();
|
|
317
317
|
}
|
|
318
318
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: TimePickerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
319
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.18", type: TimePickerComponent, isStandalone: true, selector: "base-form-time-picker", inputs: { label: { classPropertyName: "label", publicName: "label", isSignal: true, isRequired: false, transformFunction: null }, hourFormat: { classPropertyName: "hourFormat", publicName: "hourFormat", isSignal: true, isRequired: false, transformFunction: null }, required: { classPropertyName: "required", publicName: "required", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { onChangeEmit: "onChangeEmit" }, providers: [VALUE_ACCESSOR_PROVIDER$2], ngImport: i0, template: "<div class=\"flex flex-col gap-1\">\n @if (label()) {\n <label class=\"text-sm font-medium text-gray-700\">{{ label() }}</label>\n }\n <p-datepicker [iconDisplay]=\"'input'\"\n [ngClass]=\"{'ng-invalid ng-dirty': required() && !value}\"\n [showIcon]=\"true\"\n (onSelect)=\"handleChange($event)\"\n appendTo=\"body\"\n [ngModel]=\"value\"\n [timeOnly]=\"true\"\n [hourFormat]=\"hourFormat()\"\n inputId=\"icondisplay\" />\n</div>\n\n", styles: [":host{display:block}\n"], dependencies: [{ kind: "ngmodule", type: DatePickerModule }, { kind: "component", type: i1$2.DatePicker, selector: "p-datePicker, p-datepicker, p-date-picker", inputs: ["iconDisplay", "style", "styleClass", "inputStyle", "inputId", "name", "inputStyleClass", "placeholder", "ariaLabelledBy", "ariaLabel", "iconAriaLabel", "disabled", "dateFormat", "multipleSeparator", "rangeSeparator", "inline", "showOtherMonths", "selectOtherMonths", "showIcon", "fluid", "icon", "appendTo", "readonlyInput", "shortYearCutoff", "monthNavigator", "yearNavigator", "hourFormat", "timeOnly", "stepHour", "stepMinute", "stepSecond", "showSeconds", "required", "showOnFocus", "showWeek", "startWeekFromFirstDayOfYear", "showClear", "dataType", "selectionMode", "maxDateCount", "showButtonBar", "todayButtonStyleClass", "clearButtonStyleClass", "autofocus", "autoZIndex", "baseZIndex", "panelStyleClass", "panelStyle", "keepInvalid", "hideOnDateTimeSelect", "touchUI", "timeSeparator", "focusTrap", "showTransitionOptions", "hideTransitionOptions", "tabindex", "variant", "size", "minDate", "maxDate", "disabledDates", "disabledDays", "yearRange", "showTime", "responsiveOptions", "numberOfMonths", "firstDayOfWeek", "locale", "view", "defaultDate"], outputs: ["onFocus", "onBlur", "onClose", "onSelect", "onClear", "onInput", "onTodayClick", "onClearClick", "onMonthChange", "onYearChange", "onClickOutside", "onShow"] }, { kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { 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 });
|
|
319
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.18", type: TimePickerComponent, isStandalone: true, selector: "base-form-time-picker", inputs: { label: { classPropertyName: "label", publicName: "label", isSignal: true, isRequired: false, transformFunction: null }, hourFormat: { classPropertyName: "hourFormat", publicName: "hourFormat", isSignal: true, isRequired: false, transformFunction: null }, required: { classPropertyName: "required", publicName: "required", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { onChangeEmit: "onChangeEmit" }, providers: [VALUE_ACCESSOR_PROVIDER$2], 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-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", styles: [":host{display:block}\n"], dependencies: [{ kind: "ngmodule", type: DatePickerModule }, { kind: "component", type: i1$2.DatePicker, selector: "p-datePicker, p-datepicker, p-date-picker", inputs: ["iconDisplay", "style", "styleClass", "inputStyle", "inputId", "name", "inputStyleClass", "placeholder", "ariaLabelledBy", "ariaLabel", "iconAriaLabel", "disabled", "dateFormat", "multipleSeparator", "rangeSeparator", "inline", "showOtherMonths", "selectOtherMonths", "showIcon", "fluid", "icon", "appendTo", "readonlyInput", "shortYearCutoff", "monthNavigator", "yearNavigator", "hourFormat", "timeOnly", "stepHour", "stepMinute", "stepSecond", "showSeconds", "required", "showOnFocus", "showWeek", "startWeekFromFirstDayOfYear", "showClear", "dataType", "selectionMode", "maxDateCount", "showButtonBar", "todayButtonStyleClass", "clearButtonStyleClass", "autofocus", "autoZIndex", "baseZIndex", "panelStyleClass", "panelStyle", "keepInvalid", "hideOnDateTimeSelect", "touchUI", "timeSeparator", "focusTrap", "showTransitionOptions", "hideTransitionOptions", "tabindex", "variant", "size", "minDate", "maxDate", "disabledDates", "disabledDays", "yearRange", "showTime", "responsiveOptions", "numberOfMonths", "firstDayOfWeek", "locale", "view", "defaultDate"], outputs: ["onFocus", "onBlur", "onClose", "onSelect", "onClear", "onInput", "onTodayClick", "onClearClick", "onMonthChange", "onYearChange", "onClickOutside", "onShow"] }, { kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { 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 });
|
|
320
320
|
}
|
|
321
321
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: TimePickerComponent, decorators: [{
|
|
322
322
|
type: Component,
|
|
323
|
-
args: [{ selector: 'base-form-time-picker', imports: [DatePickerModule, CommonModule, FormsModule], providers: [VALUE_ACCESSOR_PROVIDER$2], changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"flex flex-col gap-1\">\n @if (label()) {\n <label class=\"text-sm font-medium text-gray-700\">{{ label() }}</label>\n }\n <p-datepicker [iconDisplay]=\"'input'\"\n [ngClass]=\"{'ng-invalid ng-dirty': required() && !value}\"\n [showIcon]=\"true\"\n (onSelect)=\"handleChange($event)\"\n appendTo=\"body\"\n [ngModel]=\"value\"\n [timeOnly]=\"true\"\n [hourFormat]=\"hourFormat()\"\n inputId=\"icondisplay\" />\n</div>\n\n", styles: [":host{display:block}\n"] }]
|
|
323
|
+
args: [{ selector: 'base-form-time-picker', imports: [DatePickerModule, CommonModule, FormsModule], providers: [VALUE_ACCESSOR_PROVIDER$2], changeDetection: ChangeDetectionStrategy.OnPush, 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-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", styles: [":host{display:block}\n"] }]
|
|
324
324
|
}] });
|
|
325
325
|
|
|
326
326
|
const VALUE_ACCESSOR_PROVIDER$1 = {
|
|
@@ -357,11 +357,11 @@ class TextareaInputComponent {
|
|
|
357
357
|
this.onTouched();
|
|
358
358
|
}
|
|
359
359
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: TextareaInputComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
360
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.18", type: TextareaInputComponent, isStandalone: true, selector: "base-form-textarea-input", inputs: { label: { classPropertyName: "label", publicName: "label", 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 } }, outputs: { onChangeEmit: "onChangeEmit" }, providers: [VALUE_ACCESSOR_PROVIDER$1], ngImport: i0, template: "<div class=\"flex flex-col gap-1\">\n @if(label()) {\n <label class=\"text-sm font-medium text-gray-700\">{{ label() }}</label>\n }\n <span class=\"w-full\">\n <textarea pInputTextarea rows=\"3\" class=\"p-inputtext w-full\" [placeholder]=\"placeholder()\" [disabled]=\"disabled\"\n [ngClass]=\"{'ng-invalid ng-dirty': required() && !value}\"\n [value]=\"value\" (input)=\"handleInput($event)\"></textarea>\n </span>\n</div>\n", styles: [":host{display:block}.p-inputtext{border-radius:.5rem;border:1px solid #e5e7eb}.p-inputtext:focus{box-shadow:0 0 0 2px #3b82f680;border-color:#3b82f6}.p-input-icon-left>i:first-of-type{left:1rem}.p-input-icon-left{position:relative}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
360
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.18", type: TextareaInputComponent, isStandalone: true, selector: "base-form-textarea-input", inputs: { label: { classPropertyName: "label", publicName: "label", 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 } }, outputs: { onChangeEmit: "onChangeEmit" }, providers: [VALUE_ACCESSOR_PROVIDER$1], 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 <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", styles: [":host{display:block}.p-inputtext{border-radius:.5rem;border:1px solid #e5e7eb}.p-inputtext:focus{box-shadow:0 0 0 2px #3b82f680;border-color:#3b82f6}.p-input-icon-left>i:first-of-type{left:1rem}.p-input-icon-left{position:relative}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
361
361
|
}
|
|
362
362
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: TextareaInputComponent, decorators: [{
|
|
363
363
|
type: Component,
|
|
364
|
-
args: [{ selector: 'base-form-textarea-input', imports: [CommonModule], providers: [VALUE_ACCESSOR_PROVIDER$1], changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"flex flex-col gap-1\">\n @if(label()) {\n <label class=\"text-sm font-medium text-gray-700\">{{ label() }}</label>\n }\n <span class=\"w-full\">\n <textarea pInputTextarea rows=\"3\" class=\"p-inputtext w-full\" [placeholder]=\"placeholder()\" [disabled]=\"disabled\"\n [ngClass]=\"{'ng-invalid ng-dirty': required() && !value}\"\n [value]=\"value\" (input)=\"handleInput($event)\"></textarea>\n </span>\n</div>\n", styles: [":host{display:block}.p-inputtext{border-radius:.5rem;border:1px solid #e5e7eb}.p-inputtext:focus{box-shadow:0 0 0 2px #3b82f680;border-color:#3b82f6}.p-input-icon-left>i:first-of-type{left:1rem}.p-input-icon-left{position:relative}\n"] }]
|
|
364
|
+
args: [{ selector: 'base-form-textarea-input', imports: [CommonModule], providers: [VALUE_ACCESSOR_PROVIDER$1], changeDetection: ChangeDetectionStrategy.OnPush, 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 <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", styles: [":host{display:block}.p-inputtext{border-radius:.5rem;border:1px solid #e5e7eb}.p-inputtext:focus{box-shadow:0 0 0 2px #3b82f680;border-color:#3b82f6}.p-input-icon-left>i:first-of-type{left:1rem}.p-input-icon-left{position:relative}\n"] }]
|
|
365
365
|
}] });
|
|
366
366
|
|
|
367
367
|
const VALUE_ACCESSOR_PROVIDER = {
|
|
@@ -417,11 +417,11 @@ class MultiSelectComponent {
|
|
|
417
417
|
this.onTouched();
|
|
418
418
|
}
|
|
419
419
|
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\">\n @if (label()) {\n <label class=\"text-sm font-medium text-gray-700\">{{ label() }}</label>\n }\n <p-multiselect [options]=\"(asyncOptionsPipe$() | async) || []\"\n [optionLabel]=\"optionLabel()\"\n [optionValue]=\"optionValue()\"\n [placeholder]=\"placeholder()\"\n [ngModel]=\"value\"\n (onChange)=\"handleChange($event)\"\n [disabled]=\"disabled\"\n [loading]=\"loading\"\n appendTo=\"body\"\n [ngClass]=\"{'ng-invalid ng-dirty': required() && !value?.length}\"\n />\n</div>\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 });
|
|
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 });
|
|
421
421
|
}
|
|
422
422
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: MultiSelectComponent, decorators: [{
|
|
423
423
|
type: Component,
|
|
424
|
-
args: [{ selector: 'base-form-multi-select', imports: [MultiSelectModule, CommonModule, FormsModule], providers: [VALUE_ACCESSOR_PROVIDER], changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"flex flex-col gap-1\">\n @if (label()) {\n <label class=\"text-sm font-medium text-gray-700\">{{ label() }}</label>\n }\n <p-multiselect [options]=\"(asyncOptionsPipe$() | async) || []\"\n [optionLabel]=\"optionLabel()\"\n [optionValue]=\"optionValue()\"\n [placeholder]=\"placeholder()\"\n [ngModel]=\"value\"\n (onChange)=\"handleChange($event)\"\n [disabled]=\"disabled\"\n [loading]=\"loading\"\n appendTo=\"body\"\n [ngClass]=\"{'ng-invalid ng-dirty': required() && !value?.length}\"\n />\n</div>\n", styles: [":host{display:block}\n"] }]
|
|
424
|
+
args: [{ selector: 'base-form-multi-select', imports: [MultiSelectModule, CommonModule, FormsModule], providers: [VALUE_ACCESSOR_PROVIDER], changeDetection: ChangeDetectionStrategy.OnPush, 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"] }]
|
|
425
425
|
}] });
|
|
426
426
|
|
|
427
427
|
class DynamicFormFieldComponent {
|
|
@@ -434,7 +434,7 @@ class DynamicFormFieldComponent {
|
|
|
434
434
|
return this.form().controls[this.question().key].valid;
|
|
435
435
|
}
|
|
436
436
|
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()\">\n <label class=\"text-sm font-medium text-gray-700\" [attr.for]=\"question().key\">\n {{ question().label }} @if(question().required) {<span class=\"text-red-500\">*</span>}\n </label>\n <div>\n @switch (question().controlType) {\n @case (QuestionTypeEnum.TextInput) {\n @if (question().type === QuestionFieldTypeEnum.Number) {\n <base-form-number-input [formControlName]=\"question().key\"\n [id]=\"question().key\"\n [required]=\"question().required\"\n [placeholder]=\"question().placeholder\"/>\n } @else if(question().type === QuestionFieldTypeEnum.Password) {\n <base-form-password-input [formControlName]=\"question().key\"\n [id]=\"question().key\"\n [required]=\"question().required\"\n [placeholder]=\"question().placeholder\"\n />\n } @else {\n <base-form-text-input [formControlName]=\"question().key\"\n [id]=\"question().key\"\n [required]=\"question().required\"\n [placeholder]=\"question().placeholder\"/>\n }\n }\n @case (QuestionTypeEnum.SelectInput) {\n <base-form-select-input [options]=\"$any(question()).options\"\n [formControlName]=\"question().key\"\n [required]=\"question().required\"\n [optionLabel]=\"$any(question()).optionLabel\"\n [optionValue]=\"$any(question()).optionValue\"\n [optionType]=\"$any(question()).optionType\"\n [asyncOptionType]=\"$any(question()).asyncOptionType\"\n [placeholder]=\"question().placeholder\"\n [normalizeValue]=\"$any(question()).normalizeValue\"\n />\n }\n @case (QuestionTypeEnum.MultiSelect) {\n <base-form-multi-select [options]=\"$any(question()).options\"\n [formControlName]=\"question().key\"\n [optionLabel]=\"$any(question()).optionLabel\"\n [optionValue]=\"$any(question()).optionValue\"\n [normalizeValue]=\"$any(question()).normalizeValue\"\n [optionType]=\"$any(question()).optionType\"\n [asyncOptionType]=\"$any(question()).asyncOptionType\"\n [required]=\"question().required\"\n [placeholder]=\"question().placeholder\"/>\n }\n @case (QuestionTypeEnum.DatePicker) {\n <base-form-datepicker [formControlName]=\"question().key\"\n [required]=\"question().required\"\n [view]=\"$any(question()).view\"\n />\n }\n @case (QuestionTypeEnum.TextArea) {\n <base-form-textarea-input [formControlName]=\"question().key\"\n [required]=\"question().required\"/>\n }\n @case (QuestionTypeEnum.TimePicker) {\n <base-form-time-picker [formControlName]=\"question().key\"\n [required]=\"question().required\"\n [hourFormat]=\"$any(question()).hourFormat\"\n />\n }\n }\n </div>\n</div>\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 });
|
|
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 });
|
|
438
438
|
}
|
|
439
439
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: DynamicFormFieldComponent, decorators: [{
|
|
440
440
|
type: Component,
|
|
@@ -448,49 +448,49 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.18", ngImpo
|
|
|
448
448
|
TextareaInputComponent,
|
|
449
449
|
MultiSelectComponent,
|
|
450
450
|
PasswordInputComponent
|
|
451
|
-
], changeDetection: ChangeDetectionStrategy.OnPush, template: "<div [formGroup]=\"form()\">\n <label class=\"text-sm font-medium text-gray-700\" [attr.for]=\"question().key\">\n {{ question().label }} @if(question().required) {<span class=\"text-red-500\">*</span>}\n </label>\n <div>\n @switch (question().controlType) {\n @case (QuestionTypeEnum.TextInput) {\n @if (question().type === QuestionFieldTypeEnum.Number) {\n <base-form-number-input [formControlName]=\"question().key\"\n [id]=\"question().key\"\n [required]=\"question().required\"\n [placeholder]=\"question().placeholder\"/>\n } @else if(question().type === QuestionFieldTypeEnum.Password) {\n <base-form-password-input [formControlName]=\"question().key\"\n [id]=\"question().key\"\n [required]=\"question().required\"\n [placeholder]=\"question().placeholder\"\n />\n } @else {\n <base-form-text-input [formControlName]=\"question().key\"\n [id]=\"question().key\"\n [required]=\"question().required\"\n [placeholder]=\"question().placeholder\"/>\n }\n }\n @case (QuestionTypeEnum.SelectInput) {\n <base-form-select-input [options]=\"$any(question()).options\"\n [formControlName]=\"question().key\"\n [required]=\"question().required\"\n [optionLabel]=\"$any(question()).optionLabel\"\n [optionValue]=\"$any(question()).optionValue\"\n [optionType]=\"$any(question()).optionType\"\n [asyncOptionType]=\"$any(question()).asyncOptionType\"\n [placeholder]=\"question().placeholder\"\n [normalizeValue]=\"$any(question()).normalizeValue\"\n />\n }\n @case (QuestionTypeEnum.MultiSelect) {\n <base-form-multi-select [options]=\"$any(question()).options\"\n [formControlName]=\"question().key\"\n [optionLabel]=\"$any(question()).optionLabel\"\n [optionValue]=\"$any(question()).optionValue\"\n [normalizeValue]=\"$any(question()).normalizeValue\"\n [optionType]=\"$any(question()).optionType\"\n [asyncOptionType]=\"$any(question()).asyncOptionType\"\n [required]=\"question().required\"\n [placeholder]=\"question().placeholder\"/>\n }\n @case (QuestionTypeEnum.DatePicker) {\n <base-form-datepicker [formControlName]=\"question().key\"\n [required]=\"question().required\"\n [view]=\"$any(question()).view\"\n />\n }\n @case (QuestionTypeEnum.TextArea) {\n <base-form-textarea-input [formControlName]=\"question().key\"\n [required]=\"question().required\"/>\n }\n @case (QuestionTypeEnum.TimePicker) {\n <base-form-time-picker [formControlName]=\"question().key\"\n [required]=\"question().required\"\n [hourFormat]=\"$any(question()).hourFormat\"\n />\n }\n }\n </div>\n</div>\n", styles: [":host{display:block}\n"] }]
|
|
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"] }]
|
|
452
452
|
}] });
|
|
453
453
|
|
|
454
454
|
class DynamicFormComponent {
|
|
455
455
|
formContainer = input([]);
|
|
456
456
|
form = input.required();
|
|
457
457
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: DynamicFormComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
458
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.18", type: DynamicFormComponent, isStandalone: true, selector: "
|
|
459
|
-
<form [formGroup]="form()">
|
|
460
|
-
<div class="space-y-2 w-full">
|
|
461
|
-
@for (container of formContainer(); track container) {
|
|
462
|
-
<div class="grid gap-4 w-full" [ngStyle]="{'grid-template-columns': 'repeat(' + container.containers.length + ', minmax(0, 1fr))'}">
|
|
463
|
-
@for (question of container.containers; track question) {
|
|
464
|
-
<base-form-dynamic-form-field [question]="question" [form]="form()" />
|
|
465
|
-
}
|
|
466
|
-
</div>
|
|
467
|
-
}
|
|
468
|
-
</div>
|
|
469
|
-
</form>
|
|
458
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.18", type: DynamicFormComponent, isStandalone: true, selector: "base-form-dynamic-form", inputs: { formContainer: { classPropertyName: "formContainer", publicName: "formContainer", isSignal: true, isRequired: false, transformFunction: null }, form: { classPropertyName: "form", publicName: "form", isSignal: true, isRequired: true, transformFunction: null } }, ngImport: i0, template: `
|
|
459
|
+
<form [formGroup]="form()">
|
|
460
|
+
<div class="space-y-2 w-full">
|
|
461
|
+
@for (container of formContainer(); track container) {
|
|
462
|
+
<div class="grid gap-4 w-full" [ngStyle]="{'grid-template-columns': 'repeat(' + container.containers.length + ', minmax(0, 1fr))'}">
|
|
463
|
+
@for (question of container.containers; track question) {
|
|
464
|
+
<base-form-dynamic-form-field [question]="question" [form]="form()" />
|
|
465
|
+
}
|
|
466
|
+
</div>
|
|
467
|
+
}
|
|
468
|
+
</div>
|
|
469
|
+
</form>
|
|
470
470
|
`, isInline: true, dependencies: [{ kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i3.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i3.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i3.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "component", type: DynamicFormFieldComponent, selector: "base-form-dynamic-form-field", inputs: ["question", "form"] }, { kind: "ngmodule", type: ButtonModule }, { kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
471
471
|
}
|
|
472
472
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.18", ngImport: i0, type: DynamicFormComponent, decorators: [{
|
|
473
473
|
type: Component,
|
|
474
474
|
args: [{
|
|
475
|
-
selector: '
|
|
475
|
+
selector: 'base-form-dynamic-form',
|
|
476
476
|
imports: [
|
|
477
477
|
ReactiveFormsModule,
|
|
478
478
|
DynamicFormFieldComponent,
|
|
479
479
|
ButtonModule,
|
|
480
480
|
CommonModule,
|
|
481
481
|
],
|
|
482
|
-
template: `
|
|
483
|
-
<form [formGroup]="form()">
|
|
484
|
-
<div class="space-y-2 w-full">
|
|
485
|
-
@for (container of formContainer(); track container) {
|
|
486
|
-
<div class="grid gap-4 w-full" [ngStyle]="{'grid-template-columns': 'repeat(' + container.containers.length + ', minmax(0, 1fr))'}">
|
|
487
|
-
@for (question of container.containers; track question) {
|
|
488
|
-
<base-form-dynamic-form-field [question]="question" [form]="form()" />
|
|
489
|
-
}
|
|
490
|
-
</div>
|
|
491
|
-
}
|
|
492
|
-
</div>
|
|
493
|
-
</form>
|
|
482
|
+
template: `
|
|
483
|
+
<form [formGroup]="form()">
|
|
484
|
+
<div class="space-y-2 w-full">
|
|
485
|
+
@for (container of formContainer(); track container) {
|
|
486
|
+
<div class="grid gap-4 w-full" [ngStyle]="{'grid-template-columns': 'repeat(' + container.containers.length + ', minmax(0, 1fr))'}">
|
|
487
|
+
@for (question of container.containers; track question) {
|
|
488
|
+
<base-form-dynamic-form-field [question]="question" [form]="form()" />
|
|
489
|
+
}
|
|
490
|
+
</div>
|
|
491
|
+
}
|
|
492
|
+
</div>
|
|
493
|
+
</form>
|
|
494
494
|
`,
|
|
495
495
|
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
496
496
|
}]
|
|
@@ -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';\nimport { ChangeDetectionStrategy, Component, forwardRef, input, output } from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { InputTextModule } from 'primeng/inputtext';\n\nconst VALUE_ACCESSOR_PROVIDER = {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => TextInputComponent),\n multi: true\n}\n\n@Component({\n selector: 'base-form-text-input',\n imports: [InputTextModule, CommonModule],\n templateUrl: './text-input.component.html',\n styleUrl: './text-input.component.scss',\n providers: [VALUE_ACCESSOR_PROVIDER],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class TextInputComponent implements ControlValueAccessor {\n label = input()\n icon = input()\n placeholder = input('')\n onChangeEmit = output<string>()\n required = input()\n\n value: string = '';\n disabled = false;\n\n onChange = (value: any) => {};\n onTouched = () => {};\n\n writeValue(value: any): void {\n this.value = value || '';\n }\n\n registerOnChange(fn: any): void {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: any): void {\n this.onTouched = fn;\n }\n\n setDisabledState(isDisabled: boolean): void {\n this.disabled = isDisabled;\n }\n\n handleInput(event: any): void {\n const value = event.target.value;\n this.value = value;\n this.onChange(value);\n this.onChangeEmit.emit(value)\n this.onTouched();\n }\n}\n","<div class=\"flex flex-col gap-1\">\n @if(label()) {\n <label class=\"text-sm font-medium text-gray-700\">{{ label() }}</label>\n }\n <span class=\"w-full\" [ngClass]=\"{'p-input-icon-left': icon()}\">\n @if (icon()) {\n <i class=\"pi pi-search\" [ngClass]=\"{'absolute top-[12px]': icon()}\"></i>\n }\n <input pInputText type=\"text\"\n class=\"p-inputtext w-full\"\n [ngClass]=\"{\n '!pl-[40px]': icon(),\n 'ng-invalid ng-dirty': required() && !value,\n }\"\n [placeholder]=\"placeholder()\"\n [disabled]=\"disabled\"\n [value]=\"value\"\n (input)=\"handleInput($event)\" />\n </span>\n</div>\n","export enum OptionTypeEnum {\r\n EAGER = 'eager',\r\n ASYNC = 'async'\r\n}\r\n","import { CommonModule } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, computed, forwardRef, input, output } from '@angular/core';\nimport { ControlValueAccessor, FormsModule, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { SelectModule } from 'primeng/select';\nimport { OptionTypeEnum } from '../../core/enums/option-type.enum';\nimport { of } from 'rxjs';\nimport { AsyncOptionEnum } from '../../core/enums/async-option.enum';\n\nconst VALUE_ACCESSOR_PROVIDER = {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => SelectInputComponent),\n multi: true\n }\n\n@Component({\n selector: 'base-form-select-input',\n imports: [SelectModule, FormsModule, CommonModule],\n templateUrl: './select-input.component.html',\n styleUrl: './select-input.component.scss',\n providers: [VALUE_ACCESSOR_PROVIDER],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class SelectInputComponent implements ControlValueAccessor{\n label = input();\n options = input();\n optionLabel = input('label');\n optionValue = input('value');\n normalizeValue = input<Function>()\n placeholder = input('');\n onChangeEmit = output<any>()\n required = input()\n optionType = input<OptionTypeEnum>(OptionTypeEnum.EAGER)\n asyncOptionType = input<AsyncOptionEnum>()\n\n loading = false;\n\n // private _asyncOptionService = inject(AsyncOptionsService)\n // private _messageService = inject(ToastService)\n private _options: any[] = [];\n\n asyncOptionsPipe$ = computed(() => of([]))\n\n value: any;\n disabled = false;\n\n // Callbacks\n onChange = (value: any) => {};\n onTouched = () => {};\n\n writeValue(value: any): void {\n this.value = value;\n }\n\n registerOnChange(fn: any): void {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: any): void {\n this.onTouched = fn;\n }\n\n setDisabledState(isDisabled: boolean): void {\n this.disabled = isDisabled;\n }\n\n handleChange(event: any) {\n this.value = event.value;\n const _normalizeValueFc = this.normalizeValue()\n\n if(_normalizeValueFc instanceof Function) {\n const normalizedValue = _normalizeValueFc(this.value)\n this.onChange(normalizedValue);\n this.onChangeEmit.emit(normalizedValue)\n } else {\n this.onChange(this.value)\n this.onChangeEmit.emit(this.value)\n }\n\n this.onTouched();\n }\n}\n","<div class=\"flex flex-col gap-1\">\n @if (label()) {\n <label class=\"text-sm font-medium text-gray-700\">{{ label() }}</label>\n }\n <p-select [options]=\"(asyncOptionsPipe$() | async) || []\"\n [optionLabel]=\"optionLabel()\"\n [optionValue]=\"optionValue()\"\n [ngModel]=\"value\"\n [loading]=\"loading\"\n [placeholder]=\"placeholder()\"\n [disabled]=\"disabled\"\n appendTo=\"body\"\n (onChange)=\"handleChange($event)\"\n [ngClass]=\"{'ng-invalid': required() && !value}\"\n ></p-select>\n</div>\n","import { CommonModule } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, forwardRef, input, output } from '@angular/core';\nimport { ControlValueAccessor, FormsModule, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { DatePickerModule, DatePickerTypeView } from 'primeng/datepicker';\n\nconst VALUE_ACCESSOR_PROVIDER = {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => DatepickerComponent),\n multi: true\n}\n\n@Component({\n selector: 'base-form-datepicker',\n imports: [DatePickerModule, CommonModule, FormsModule],\n templateUrl: './datepicker.component.html',\n styleUrl: './datepicker.component.scss',\n providers: [VALUE_ACCESSOR_PROVIDER],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class DatepickerComponent implements ControlValueAccessor{\n label = input();\n onChangeEmit = output<any>()\n required = input()\n view = input<DatePickerTypeView>(\"date\")\n value: any;\n disabled = false;\n\n // Callbacks\n onChange = (value: any) => {};\n onTouched = () => {};\n\n writeValue(value: any): void {\n if(this.view() === 'year') {\n this.value = new Date(value, 0, 1);\n } else {\n this.value = value\n }\n }\n\n registerOnChange(fn: any): void {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: any): void {\n this.onTouched = fn;\n }\n\n setDisabledState(isDisabled: boolean): void {\n this.disabled = isDisabled;\n }\n\n handleChange(event: any) {\n const date = new Date(event)\n const dates = [date.getDay(), date.getMonth(), date.getFullYear()];\n const formatedValue = this.view() === 'year' ? dates[2] : this.view() === 'month' ? dates[1] : dates.join('-')\n\n this.value = event;\n\n this.onChange(formatedValue);\n this.onChangeEmit.emit(this.value)\n this.onTouched();\n }\n}\n","<div class=\"flex flex-col gap-1\">\n @if (label()) {\n <label class=\"text-sm font-medium text-gray-700\">{{ label() }}</label>\n }\n <p-datepicker [iconDisplay]=\"'input'\"\n [ngClass]=\"{'ng-invalid ng-dirty': required() && !value}\"\n [showIcon]=\"true\"\n [view]=\"view()\"\n [ngModel]=\"value\"\n [dateFormat]=\"view() === 'year' ? 'yy' : view() === 'month' ? 'mm' : 'dd-mm-yy'\"\n (onSelect)=\"handleChange($event)\"\n appendTo=\"body\"\n inputId=\"icondisplay\" />\n</div>\n\n","import { CommonModule } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, forwardRef, input, output } from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { PasswordModule } from 'primeng/password';\n\nconst VALUE_ACCESSOR_PROVIDER = {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => PasswordInputComponent),\n multi: true\n}\n\n@Component({\n selector: 'base-form-password-input',\n imports: [PasswordModule, CommonModule],\n templateUrl: './password-input.component.html',\n styleUrl: './password-input.component.scss',\n providers: [VALUE_ACCESSOR_PROVIDER],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class PasswordInputComponent implements ControlValueAccessor{\n label = input()\n icon = input()\n placeholder = input('')\n onChangeEmit = output<string>()\n required = input()\n\n value: string = '';\n disabled = false;\n\n onChange = (value: any) => {};\n onTouched = () => {};\n\n writeValue(value: any): void {\n this.value = value || '';\n }\n\n registerOnChange(fn: any): void {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: any): void {\n this.onTouched = fn;\n }\n\n setDisabledState(isDisabled: boolean): void {\n this.disabled = isDisabled;\n }\n\n handleInput(event: any): void {\n const value = event.target.value;\n this.value = value;\n this.onChange(value);\n this.onChangeEmit.emit(value)\n this.onTouched();\n }\n}\n","<div class=\"flex flex-col gap-1\">\n @if(label()) {\n <label class=\"text-sm font-medium text-gray-700\">{{ label() }}</label>\n }\n <span class=\"w-full\" [ngClass]=\"{'p-input-icon-left': icon()}\">\n @if (icon()) {\n <i class=\"pi pi-search\" [ngClass]=\"{'absolute top-[12px]': icon()}\"></i>\n }\n <p-password id=\"password\"\n [feedback]=\"false\"\n showClear=\"true\"\n (input)=\"handleInput($event)\"\n [ngClass]=\"{'!pl-[40px]': icon(), 'ng-invalid ng-dirty': required() && !value}\"\n [placeholder]=\"placeholder()\"\n [disabled]=\"disabled\"\n class=\" w-full\" />\n </span>\n</div>\n","import { CommonModule } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, forwardRef, input, output } from '@angular/core';\nimport { FormsModule, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { InputNumberInputEvent, InputNumberModule } from \"primeng/inputnumber\";\n\nconst VALUE_ACCESSOR_PROVIDER = {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => NumberInputComponent),\n multi: true\n}\n\n@Component({\n selector: 'base-form-number-input',\n imports: [InputNumberModule, CommonModule, FormsModule],\n templateUrl: './number-input.component.html',\n styleUrl: './number-input.component.scss',\n providers: [VALUE_ACCESSOR_PROVIDER],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class NumberInputComponent {\n label = input()\n placeholder = input('')\n min = input(0)\n max = input()\n required = input()\n\n onChangeEmit = output<any>()\n\n value!: any;\n disabled = false;\n\n onChange = (value: any) => {};\n onTouched = () => {};\n\n writeValue(value: any): void {\n this.value = value || '';\n this.onChange(this.value)\n }\n\n registerOnChange(fn: any): void {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: any): void {\n this.onTouched = fn;\n }\n\n setDisabledState(isDisabled: boolean): void {\n this.disabled = isDisabled;\n }\n\n handleInput({value}: InputNumberInputEvent): void {\n this.value = value;\n this.onChange(value);\n this.onChangeEmit.emit(value)\n this.onTouched();\n }\n}\n","<div class=\"flex flex-col gap-1\">\n @if(label()) {\n <label class=\"text-sm font-medium text-gray-700\">{{ label() }}</label>\n }\n <p-inputNumber [min]=\"min()\"\n [max]=\"max()\"\n [ngModel]=\"value\"\n [fluid]=\"true\"\n [placeholder]=\"placeholder()\"\n (onInput)=\"handleInput($event)\"\n [showButtons]=\"true\"\n class=\"p-inputnumber w-full\" [ngClass]=\"{'ng-invalid ng-dirty': required() && !value}\">\n </p-inputNumber>\n</div>\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';\nimport { ChangeDetectionStrategy, Component, forwardRef, input, output } from '@angular/core';\nimport { ControlValueAccessor, FormsModule, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { DatePickerModule } from \"primeng/datepicker\";\n\nconst VALUE_ACCESSOR_PROVIDER = {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => TimePickerComponent),\n multi: true\n}\n\n@Component({\n selector: 'base-form-time-picker',\n imports: [DatePickerModule, CommonModule, FormsModule],\n templateUrl: './time-picker.component.html',\n styleUrl: './time-picker.component.scss',\n providers: [VALUE_ACCESSOR_PROVIDER],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class TimePickerComponent implements ControlValueAccessor{\n label = input();\n hourFormat = input<string>('24')\n onChangeEmit = output<any>()\n required = input()\n\n value: any;\n disabled = false;\n\n // Callbacks\n onChange = (value: any) => {};\n onTouched = () => {};\n\n writeValue(value: any): void {\n if(value) {\n const [h, m] = value.split(\":\").map(Number);\n this.value = new Date(1970, 0, 1, h, m);\n }\n }\n\n registerOnChange(fn: any): void {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: any): void {\n this.onTouched = fn;\n }\n\n setDisabledState(isDisabled: boolean): void {\n this.disabled = isDisabled;\n }\n\n handleChange(event: any) {\n const date = new Date(event)\n const dates = [date.getMinutes(), date.getHours()];\n this.value = event;\n this.onChange(`${dates[1]}:${dates[0]}`);\n this.onChangeEmit.emit(this.value)\n this.onTouched();\n }\n}\n","<div class=\"flex flex-col gap-1\">\n @if (label()) {\n <label class=\"text-sm font-medium text-gray-700\">{{ label() }}</label>\n }\n <p-datepicker [iconDisplay]=\"'input'\"\n [ngClass]=\"{'ng-invalid ng-dirty': required() && !value}\"\n [showIcon]=\"true\"\n (onSelect)=\"handleChange($event)\"\n appendTo=\"body\"\n [ngModel]=\"value\"\n [timeOnly]=\"true\"\n [hourFormat]=\"hourFormat()\"\n inputId=\"icondisplay\" />\n</div>\n\n","import { CommonModule } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, forwardRef, input, output } from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\n\nconst VALUE_ACCESSOR_PROVIDER = {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => TextareaInputComponent),\n multi: true\n}\n\n@Component({\n selector: 'base-form-textarea-input',\n imports: [CommonModule],\n templateUrl: './textarea-input.component.html',\n styleUrl: './textarea-input.component.scss',\n providers: [VALUE_ACCESSOR_PROVIDER],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class TextareaInputComponent implements ControlValueAccessor{\n label = input()\n placeholder = input('')\n required = input()\n onChangeEmit = output<string>()\n\n value: string = '';\n disabled = false;\n\n onChange = (value: any) => {};\n onTouched = () => {};\n\n writeValue(value: any): void {\n this.value = value || '';\n }\n\n registerOnChange(fn: any): void {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: any): void {\n this.onTouched = fn;\n }\n\n setDisabledState(isDisabled: boolean): void {\n this.disabled = isDisabled;\n }\n\n handleInput(event: any): void {\n const value = event.target.value;\n this.value = value;\n this.onChange(value);\n this.onChangeEmit.emit(value)\n this.onTouched();\n }\n}\n","<div class=\"flex flex-col gap-1\">\n @if(label()) {\n <label class=\"text-sm font-medium text-gray-700\">{{ label() }}</label>\n }\n <span class=\"w-full\">\n <textarea pInputTextarea rows=\"3\" class=\"p-inputtext w-full\" [placeholder]=\"placeholder()\" [disabled]=\"disabled\"\n [ngClass]=\"{'ng-invalid ng-dirty': required() && !value}\"\n [value]=\"value\" (input)=\"handleInput($event)\"></textarea>\n </span>\n</div>\n","import { CommonModule } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, computed, forwardRef, input, output } from '@angular/core';\nimport { ControlValueAccessor, FormsModule, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { MultiSelectModule } from 'primeng/multiselect';\nimport { OptionTypeEnum } from '../../core/enums/option-type.enum';\nimport { AsyncOptionEnum } from '../../core/enums/async-option.enum';\nimport { of } from 'rxjs';\n\nconst VALUE_ACCESSOR_PROVIDER = {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => MultiSelectComponent),\n multi: true\n}\n\n@Component({\n selector: 'base-form-multi-select',\n imports: [MultiSelectModule, CommonModule, FormsModule],\n templateUrl: './multi-select.component.html',\n styleUrl: './multi-select.component.scss',\n providers: [VALUE_ACCESSOR_PROVIDER],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class MultiSelectComponent implements ControlValueAccessor {\n label = input<string>();\n options = input.required<any[]>();\n optionLabel = input('label');\n optionValue = input('value');\n normalizeValue = input<Function>()\n placeholder = input('');\n onChangeEmit = output<any>()\n required = input()\n optionType = input<OptionTypeEnum>()\n asyncOptionType = input<AsyncOptionEnum>()\n\n value: any[] = [];\n disabled = false;\n loading = false\n // private _asyncOptionService = inject(AsyncOptionsService)\n // private _messageService = inject(ToastService)\n private _options: any[] = [];\n\n asyncOptionsPipe$ = computed(() => of([]))\n\n // Callbacks\n onChange = (value: any) => { };\n onTouched = () => { };\n\n writeValue(value: any): void {\n this.value = value?.map((opt: any) => opt[this.optionValue()])\n }\n\n registerOnChange(fn: any): void {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: any): void {\n this.onTouched = fn;\n }\n\n setDisabledState(isDisabled: boolean): void {\n this.disabled = isDisabled;\n }\n\n handleChange(event: any) {\n this.value = event.value;\n const _normalizeValueFc = this.normalizeValue()\n\n if (_normalizeValueFc instanceof Function) {\n const normalizedValue = _normalizeValueFc(this.value, this._options)\n this.onChange(normalizedValue);\n this.onChangeEmit.emit(normalizedValue)\n } else {\n this.onChange(this.value)\n this.onChangeEmit.emit(this.value)\n }\n\n this.onTouched();\n }\n}\n","<div class=\"flex flex-col gap-1\">\n @if (label()) {\n <label class=\"text-sm font-medium text-gray-700\">{{ label() }}</label>\n }\n <p-multiselect [options]=\"(asyncOptionsPipe$() | async) || []\"\n [optionLabel]=\"optionLabel()\"\n [optionValue]=\"optionValue()\"\n [placeholder]=\"placeholder()\"\n [ngModel]=\"value\"\n (onChange)=\"handleChange($event)\"\n [disabled]=\"disabled\"\n [loading]=\"loading\"\n appendTo=\"body\"\n [ngClass]=\"{'ng-invalid ng-dirty': required() && !value?.length}\"\n />\n</div>\n","import { ChangeDetectionStrategy, Component, CUSTOM_ELEMENTS_SCHEMA, input, NO_ERRORS_SCHEMA } from '@angular/core';\nimport { FormGroup, ReactiveFormsModule } from '@angular/forms';\nimport { TextInputComponent } from \"../text-input/text-input.component\";\nimport { SelectInputComponent } from \"../select-input/select-input.component\";\nimport { DatepickerComponent } from '../datepicker/datepicker.component';\nimport { PasswordInputComponent } from '../password-input/password-input.component';\nimport { NumberInputComponent } from '../text-input-number/number-input.component';\nimport { QuestionFieldTypeEnum, QuestionTypeEnum } from '../../core/enums/question-type.enum';\nimport { TimePickerComponent } from '../time-picker/time-picker.component';\nimport { TextareaInputComponent } from '../textarea-input/textarea-input.component';\nimport { MultiSelectComponent } from '../multi-select/multi-select.component';\nimport { QuestionBaseType } from '../../core/models/question-base';\nimport { OptionTypeEnum } from '../../core/enums/option-type.enum';\n\n@Component({\n selector: 'base-form-dynamic-form-field',\n imports: [\n TextInputComponent,\n ReactiveFormsModule,\n NumberInputComponent,\n DatepickerComponent,\n TimePickerComponent,\n SelectInputComponent,\n TextareaInputComponent,\n MultiSelectComponent,\n PasswordInputComponent\n ],\n templateUrl: './dynamic-form-field.component.html',\n styleUrl: './dynamic-form-field.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class DynamicFormFieldComponent {\n readonly question = input.required<QuestionBaseType>();\n readonly form = input.required<FormGroup>();\n readonly QuestionTypeEnum = QuestionTypeEnum;\n readonly QuestionFieldTypeEnum = QuestionFieldTypeEnum\n readonly OptionTypeEnum = OptionTypeEnum\n\n get isValid() {\n return this.form().controls[this.question().key].valid;\n }\n}\n","<div [formGroup]=\"form()\">\n <label class=\"text-sm font-medium text-gray-700\" [attr.for]=\"question().key\">\n {{ question().label }} @if(question().required) {<span class=\"text-red-500\">*</span>}\n </label>\n <div>\n @switch (question().controlType) {\n @case (QuestionTypeEnum.TextInput) {\n @if (question().type === QuestionFieldTypeEnum.Number) {\n <base-form-number-input [formControlName]=\"question().key\"\n [id]=\"question().key\"\n [required]=\"question().required\"\n [placeholder]=\"question().placeholder\"/>\n } @else if(question().type === QuestionFieldTypeEnum.Password) {\n <base-form-password-input [formControlName]=\"question().key\"\n [id]=\"question().key\"\n [required]=\"question().required\"\n [placeholder]=\"question().placeholder\"\n />\n } @else {\n <base-form-text-input [formControlName]=\"question().key\"\n [id]=\"question().key\"\n [required]=\"question().required\"\n [placeholder]=\"question().placeholder\"/>\n }\n }\n @case (QuestionTypeEnum.SelectInput) {\n <base-form-select-input [options]=\"$any(question()).options\"\n [formControlName]=\"question().key\"\n [required]=\"question().required\"\n [optionLabel]=\"$any(question()).optionLabel\"\n [optionValue]=\"$any(question()).optionValue\"\n [optionType]=\"$any(question()).optionType\"\n [asyncOptionType]=\"$any(question()).asyncOptionType\"\n [placeholder]=\"question().placeholder\"\n [normalizeValue]=\"$any(question()).normalizeValue\"\n />\n }\n @case (QuestionTypeEnum.MultiSelect) {\n <base-form-multi-select [options]=\"$any(question()).options\"\n [formControlName]=\"question().key\"\n [optionLabel]=\"$any(question()).optionLabel\"\n [optionValue]=\"$any(question()).optionValue\"\n [normalizeValue]=\"$any(question()).normalizeValue\"\n [optionType]=\"$any(question()).optionType\"\n [asyncOptionType]=\"$any(question()).asyncOptionType\"\n [required]=\"question().required\"\n [placeholder]=\"question().placeholder\"/>\n }\n @case (QuestionTypeEnum.DatePicker) {\n <base-form-datepicker [formControlName]=\"question().key\"\n [required]=\"question().required\"\n [view]=\"$any(question()).view\"\n />\n }\n @case (QuestionTypeEnum.TextArea) {\n <base-form-textarea-input [formControlName]=\"question().key\"\n [required]=\"question().required\"/>\n }\n @case (QuestionTypeEnum.TimePicker) {\n <base-form-time-picker [formControlName]=\"question().key\"\n [required]=\"question().required\"\n [hourFormat]=\"$any(question()).hourFormat\"\n />\n }\n }\n </div>\n</div>\n","import { ChangeDetectionStrategy, Component, input } from '@angular/core';\nimport { FormGroup, ReactiveFormsModule } from '@angular/forms';\nimport { DynamicFormFieldComponent } from './dynamic-form-field/dynamic-form-field.component';\nimport { ButtonModule } from 'primeng/button';\nimport { CommonModule } from '@angular/common';\nimport { FormContainer } from '../core/models/question-base';\n\n@Component({\n selector: 'school-dynamic-form',\n imports: [\n ReactiveFormsModule,\n DynamicFormFieldComponent,\n ButtonModule,\n CommonModule,\n ],\n template: `\n <form [formGroup]=\"form()\">\n <div class=\"space-y-2 w-full\">\n @for (container of formContainer(); track container) {\n <div class=\"grid gap-4 w-full\" [ngStyle]=\"{'grid-template-columns': 'repeat(' + container.containers.length + ', minmax(0, 1fr))'}\">\n @for (question of container.containers; track question) {\n <base-form-dynamic-form-field [question]=\"question\" [form]=\"form()\" />\n }\n </div>\n }\n </div>\n </form>\n `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class DynamicFormComponent {\n readonly formContainer = input<FormContainer[]>([]);\n readonly form = input.required<FormGroup>();\n}\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":"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"}
|
|
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=\"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 <input pInputText type=\"text\"\r\n class=\"p-inputtext w-full\"\r\n [ngClass]=\"{\r\n '!pl-[40px]': icon(),\r\n 'ng-invalid ng-dirty': required() && !value,\r\n }\"\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,ivBAoBA,EAAA,MAAA,EAAA,CAAA,qQAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EDPY,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,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,ivBAAA,EAAA,MAAA,EAAA,CAAA,qQAAA,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;;;;"}
|
|
@@ -5,5 +5,5 @@ export declare class DynamicFormComponent {
|
|
|
5
5
|
readonly formContainer: import("@angular/core").InputSignal<FormContainer[]>;
|
|
6
6
|
readonly form: import("@angular/core").InputSignal<FormGroup<any>>;
|
|
7
7
|
static ɵfac: i0.ɵɵFactoryDeclaration<DynamicFormComponent, never>;
|
|
8
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<DynamicFormComponent, "
|
|
8
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<DynamicFormComponent, "base-form-dynamic-form", never, { "formContainer": { "alias": "formContainer"; "required": false; "isSignal": true; }; "form": { "alias": "form"; "required": true; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
9
9
|
}
|