@updevs/components 1.0.0-alpha.22 → 1.0.0-alpha.24

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.
@@ -23,8 +23,8 @@ export class DynamicFieldComponent extends BaseComponent {
23
23
  this.field = input.required();
24
24
  this.layout = input.required();
25
25
  this.validationStatusDescriptions = [];
26
- this.errorsHelper = inject(ErrorsHelper);
27
26
  this.textService = inject(TextService);
27
+ this.errorsHelper = inject(ErrorsHelper);
28
28
  }
29
29
  get formControl() {
30
30
  return this.formGroup().controls[this.field().name];
@@ -108,15 +108,15 @@ export class DynamicFieldComponent extends BaseComponent {
108
108
  this.wrapperClasses = ColumnSizeHelper.getSizeClasses(this.field().colSize);
109
109
  }
110
110
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: DynamicFieldComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
111
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.1.0", type: DynamicFieldComponent, selector: "upd-dynamic-field", inputs: { formGroup: { classPropertyName: "formGroup", publicName: "formGroup", isSignal: true, isRequired: true, transformFunction: null }, field: { classPropertyName: "field", publicName: "field", isSignal: true, isRequired: true, transformFunction: null }, layout: { classPropertyName: "layout", publicName: "layout", isSignal: true, isRequired: true, transformFunction: null } }, outputs: { submitForm: "submitForm" }, host: { properties: { "class": "this.wrapperClasses" } }, usesInheritance: true, ngImport: i0, template: "@switch (field().type) {\n @case (DynamicFieldType.Input) {\n <upd-input [name]=\"field().name\" [label]=\"field().label\" [placeholder]=\"field().placeholder\" [hint]=\"field().hint\"\n [hintAsTooltip]=\"field().hintAsTooltip || false\" [validationStatus]=\"validationStatus\"\n [validationStatusDescriptions]=\"validationStatusDescriptions\" [layout]=\"layout()\" [isDisabled]=\"field().isDisabled || false\"\n [type]=\"inputField.inputType || 'text'\" [labelColSize]=\"field().labelColSize\" [value]=\"formControl.value\"\n (valueChange)=\"formControl.setValue($event)\" (blurred)=\"onBlur()\" (keyUpEnter)=\"onInputEnter()\"></upd-input>\n }\n @case (DynamicFieldType.Checkbox) {\n <upd-checkbox [name]=\"field().name\" [label]=\"field().label\" [hint]=\"field().hint\" [hintAsTooltip]=\"field().hintAsTooltip || false\"\n [validationStatus]=\"validationStatus\" [validationStatusDescriptions]=\"validationStatusDescriptions\" [value]=\"true\"\n [isDisabled]=\"field().isDisabled || false\" [isChecked]=\"formControl.value\" [isInline]=\"checkboxField.isInline || false\"\n [isSwitch]=\"checkboxField.isSwitch || false\" (changed)=\"formControl.setValue($event)\"></upd-checkbox>\n }\n @case (DynamicFieldType.CheckboxGroup) {\n @if (!!field().label) {\n <label class=\"form-label\">{{ getText(field().label) }}</label>\n }\n\n @for (option of checkboxGroupOptionsKeys; track option) {\n <upd-checkbox [name]=\"field().name\" [label]=\"getOptionDescription(option, 'checkbox')\" [hint]=\"field().hint\"\n [hintAsTooltip]=\"field().hintAsTooltip || false\" [validationStatus]=\"validationStatus\"\n [validationStatusDescriptions]=\"validationStatusDescriptions\" [value]=\"option\" [isDisabled]=\"field().isDisabled || false\"\n [isChecked]=\"formControl.value\" [isInline]=\"checkboxField.isInline || false\" [isSwitch]=\"checkboxField.isSwitch || false\"\n (changed)=\"formControl.setValue(option)\"></upd-checkbox>\n }\n }\n @case (DynamicFieldType.Radio) {\n <upd-radio [name]=\"field().name\" [label]=\"field().label\" [hint]=\"field().hint\" [hintAsTooltip]=\"field().hintAsTooltip || false\"\n [validationStatus]=\"validationStatus\" [validationStatusDescriptions]=\"validationStatusDescriptions\" [value]=\"true\"\n [isChecked]=\"formControl.value\" [isDisabled]=\"field().isDisabled || false\" [isInline]=\"radioField.isInline || false\"\n (selected)=\"formControl.setValue($event)\">\n </upd-radio>\n }\n @case (DynamicFieldType.RadioGroup) {\n @if (!!field().label) {\n <label class=\"form-label\">{{ getText(field().label) }}</label>\n }\n\n @for (option of radioGroupOptionsKeys; track option) {\n <upd-radio [name]=\"field().name\" [label]=\"getOptionDescription(option, 'radio')\" [hint]=\"field().hint\"\n [hintAsTooltip]=\"field().hintAsTooltip || false\" [validationStatus]=\"validationStatus\"\n [validationStatusDescriptions]=\"validationStatusDescriptions\" [value]=\"option\" [isDisabled]=\"field().isDisabled || false\"\n [isChecked]=\"formControl.value\" [isInline]=\"checkboxField.isInline || false\"\n (selected)=\"formControl.setValue(option)\"></upd-radio>\n }\n }\n @case (DynamicFieldType.Select) {\n <upd-select [name]=\"field().name\" [label]=\"field().label\" [hint]=\"field().hint\" [hintAsTooltip]=\"field().hintAsTooltip || false\"\n [validationStatus]=\"validationStatus\" [validationStatusDescriptions]=\"validationStatusDescriptions\"\n [useSystemStyle]=\"singleSelectField.useSystemStyle || false\" [isDisabled]=\"field().isDisabled || false\"\n [items]=\"selectField.items\" [layout]=\"layout()\" [labelColSize]=\"field().labelColSize\" [store]=\"selectField.store!\"\n [observable]=\"selectField.observable\" [itemKey]=\"selectField.itemKey\" [itemValue]=\"selectField.itemValue\"\n [dropdownMaxHeight]=\"selectField.dropdownMaxHeight || SelectDefaults.dropdownMaxHeight\"\n [typeaheadDebounce]=\"selectField.typeaheadDebounce || SelectDefaults.typeaheadDebounce\"\n [shouldAutoSearch]=\"selectField.shouldAutoSearch || SelectDefaults.shouldAutoSearch\"\n [shouldCloseOnOutsideClick]=\"selectField.shouldCloseOnOutsideClick || SelectDefaults.shouldCloseOnOutsideClick\"\n (selectedItem)=\"formControl.setValue($event?.value)\"></upd-select>\n }\n @case (DynamicFieldType.SelectMultiple) {\n <upd-select-multiple [name]=\"field().name\" [label]=\"field().label\" [hint]=\"field().hint\"\n [hintAsTooltip]=\"field().hintAsTooltip || false\" [validationStatus]=\"validationStatus\"\n [validationStatusDescriptions]=\"validationStatusDescriptions\" [isDisabled]=\"field().isDisabled || false\"\n [items]=\"selectField.items\" [layout]=\"layout()\" [labelColSize]=\"field().labelColSize\" [store]=\"selectField.store!\"\n [observable]=\"selectField.observable\" [itemKey]=\"selectField.itemKey\" [itemValue]=\"selectField.itemValue\"\n [dropdownMaxHeight]=\"selectField.dropdownMaxHeight || SelectDefaults.dropdownMaxHeight\"\n [typeaheadDebounce]=\"selectField.typeaheadDebounce || SelectDefaults.typeaheadDebounce\"\n [shouldAutoSearch]=\"selectField.shouldAutoSearch || SelectDefaults.shouldAutoSearch\"\n [shouldCloseOnOutsideClick]=\"selectField.shouldCloseOnOutsideClick || SelectDefaults.shouldCloseOnOutsideClick\"\n (selectedIds)=\"formControl.setValue($event)\"></upd-select-multiple>\n }\n @case (DynamicFieldType.Label) {\n <label class=\"form-label\">{{ getText(field().label) }}</label>\n }\n @case (DynamicFieldType.TextArea) {\n <upd-textarea [name]=\"field().name\" [label]=\"field().label\" [placeholder]=\"field().placeholder\" [hint]=\"field().hint\"\n [hintAsTooltip]=\"field().hintAsTooltip || false\" [validationStatus]=\"validationStatus\"\n [validationStatusDescriptions]=\"validationStatusDescriptions\" [isDisabled]=\"field().isDisabled || false\"\n [value]=\"formControl.value\" [customClasses]=\"textareaField.customClasses\" [wrapperClasses]=\"textareaField.wrapperClasses\"\n [maxLength]=\"textareaField.maxLength\" [rows]=\"textareaField.rows\"\n [displayCharactersCount]=\"textareaField.displayCharactersCount || false\"></upd-textarea>\n }\n @case (DynamicFieldType.FileUpload) {\n <upd-file-upload [name]=\"field().name\" [label]=\"field().label\" [hint]=\"field().hint\" [isDisabled]=\"field().isDisabled || false\"\n [hintAsTooltip]=\"field().hintAsTooltip || false\" [validationStatus]=\"validationStatus\" [fileName]=\"fileNameControl?.value\"\n [validationStatusDescriptions]=\"validationStatusDescriptions\" [allowFilesDrop]=\"fileUploadField.allowFilesDrop || false\"\n [title]=\"fileUploadField.title\" [labelColSize]=\"field().labelColSize\" [minFileSize]=\"fileUploadField.minFileSize\"\n [isMultiple]=\"fileUploadField.isMultiple || false\" [allowedExtensions]=\"fileUploadField.allowedExtensions || '*'\"\n [maxFileSize]=\"fileUploadField.maxFileSize\" [layout]=\"layout()\" (fileChanged)=\"handleFileSelected($event)\"></upd-file-upload>\n }\n}\n", styles: [""], dependencies: [{ kind: "component", type: i1.InputComponent, selector: "upd-input", inputs: ["type", "mask", "maskConfig", "value", "size", "customClasses", "wrapperClasses", "maxLength", "isPlainText", "isReadOnly", "isLoading", "isRound", "isFlush", "isInputGroupFlat", "isPrependButton", "isAppendButton", "isFloating", "loaderPosition", "prependIconModel", "appendIconModel", "isValidationStatusLight", "layout"], outputs: ["valueChange", "blurred", "keyDown", "keyDownEsc", "keyUpEnter"] }, { kind: "component", type: i2.CheckboxComponent, selector: "upd-checkbox", inputs: ["wrapperClasses", "value", "customClasses", "isChecked", "isInline", "isSwitch", "isIndeterminate"], outputs: ["changed", "isCheckedChange", "isIndeterminateChange"] }, { kind: "component", type: i3.RadioComponent, selector: "upd-radio", inputs: ["wrapperClasses", "value", "customClasses", "isChecked", "isInline"], outputs: ["selected"] }, { kind: "component", type: i4.SelectComponent, selector: "upd-select", inputs: ["useSystemStyle", "shouldShowClearButton", "isCompact", "selected"], outputs: ["selectedItem"] }, { kind: "component", type: i4.SelectMultipleComponent, selector: "upd-select-multiple", outputs: ["selectedItems", "selectedIds"] }, { kind: "component", type: i5.TextareaComponent, selector: "upd-textarea", inputs: ["value", "customClasses", "wrapperClasses", "maxLength", "rows", "displayCharactersCount"], outputs: ["valueChange"] }, { kind: "component", type: i6.FileUploadComponent, selector: "upd-file-upload", inputs: ["fileName", "title", "allowFilesDrop", "isMultiple", "allowedExtensions", "minFileSize", "maxFileSize", "layout"], outputs: ["fileChanged"] }] }); }
111
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.1.0", type: DynamicFieldComponent, selector: "upd-dynamic-field", inputs: { formGroup: { classPropertyName: "formGroup", publicName: "formGroup", isSignal: true, isRequired: true, transformFunction: null }, field: { classPropertyName: "field", publicName: "field", isSignal: true, isRequired: true, transformFunction: null }, layout: { classPropertyName: "layout", publicName: "layout", isSignal: true, isRequired: true, transformFunction: null } }, outputs: { submitForm: "submitForm" }, host: { properties: { "class": "this.wrapperClasses" } }, usesInheritance: true, ngImport: i0, template: "@switch (field().type) {\n @case (DynamicFieldType.Input) {\n <upd-input [name]=\"field().name\" [label]=\"field().label\" [placeholder]=\"field().placeholder\" [hint]=\"field().hint\"\n [hintAsTooltip]=\"field().hintAsTooltip || false\" [validationStatus]=\"validationStatus\"\n [validationStatusDescriptions]=\"validationStatusDescriptions\" [layout]=\"layout()\" [isDisabled]=\"field().isDisabled || false\"\n [type]=\"inputField.inputType || 'text'\" [labelColSize]=\"field().labelColSize\" [value]=\"formControl.value\"\n (valueChange)=\"formControl.setValue($event)\" (blurred)=\"onBlur()\" (keyUpEnter)=\"onInputEnter()\">\n @if (!!inputField.prefix) {\n <ng-template updInputPrepend>\n {{ textService.getText(inputField.prefix) }}\n </ng-template>\n }\n\n @if (!!inputField.suffix) {\n <ng-template updInputAppend>\n {{ textService.getText(inputField.suffix) }}\n </ng-template>\n }\n </upd-input>\n }\n @case (DynamicFieldType.Checkbox) {\n <upd-checkbox [name]=\"field().name\" [label]=\"field().label\" [hint]=\"field().hint\" [hintAsTooltip]=\"field().hintAsTooltip || false\"\n [validationStatus]=\"validationStatus\" [validationStatusDescriptions]=\"validationStatusDescriptions\" [value]=\"true\"\n [isDisabled]=\"field().isDisabled || false\" [isChecked]=\"formControl.value\" [isInline]=\"checkboxField.isInline || false\"\n [isSwitch]=\"checkboxField.isSwitch || false\" (changed)=\"formControl.setValue($event)\"></upd-checkbox>\n }\n @case (DynamicFieldType.CheckboxGroup) {\n @if (!!field().label) {\n <label class=\"form-label\">{{ getText(field().label) }}</label>\n }\n\n @for (option of checkboxGroupOptionsKeys; track option) {\n <upd-checkbox [name]=\"field().name\" [label]=\"getOptionDescription(option, 'checkbox')\" [hint]=\"field().hint\"\n [hintAsTooltip]=\"field().hintAsTooltip || false\" [validationStatus]=\"validationStatus\"\n [validationStatusDescriptions]=\"validationStatusDescriptions\" [value]=\"option\" [isDisabled]=\"field().isDisabled || false\"\n [isChecked]=\"formControl.value\" [isInline]=\"checkboxField.isInline || false\" [isSwitch]=\"checkboxField.isSwitch || false\"\n (changed)=\"formControl.setValue(option)\"></upd-checkbox>\n }\n }\n @case (DynamicFieldType.Radio) {\n <upd-radio [name]=\"field().name\" [label]=\"field().label\" [hint]=\"field().hint\" [hintAsTooltip]=\"field().hintAsTooltip || false\"\n [validationStatus]=\"validationStatus\" [validationStatusDescriptions]=\"validationStatusDescriptions\" [value]=\"true\"\n [isChecked]=\"formControl.value\" [isDisabled]=\"field().isDisabled || false\" [isInline]=\"radioField.isInline || false\"\n (selected)=\"formControl.setValue($event)\">\n </upd-radio>\n }\n @case (DynamicFieldType.RadioGroup) {\n @if (!!field().label) {\n <label class=\"form-label\">{{ getText(field().label) }}</label>\n }\n\n @for (option of radioGroupOptionsKeys; track option) {\n <upd-radio [name]=\"field().name\" [label]=\"getOptionDescription(option, 'radio')\" [hint]=\"field().hint\"\n [hintAsTooltip]=\"field().hintAsTooltip || false\" [validationStatus]=\"validationStatus\"\n [validationStatusDescriptions]=\"validationStatusDescriptions\" [value]=\"option\" [isDisabled]=\"field().isDisabled || false\"\n [isChecked]=\"formControl.value\" [isInline]=\"checkboxField.isInline || false\"\n (selected)=\"formControl.setValue(option)\"></upd-radio>\n }\n }\n @case (DynamicFieldType.Select) {\n <upd-select [name]=\"field().name\" [label]=\"field().label\" [hint]=\"field().hint\" [hintAsTooltip]=\"field().hintAsTooltip || false\"\n [validationStatus]=\"validationStatus\" [validationStatusDescriptions]=\"validationStatusDescriptions\"\n [useSystemStyle]=\"singleSelectField.useSystemStyle || false\" [isDisabled]=\"field().isDisabled || false\"\n [items]=\"selectField.items\" [layout]=\"layout()\" [labelColSize]=\"field().labelColSize\" [store]=\"selectField.store!\"\n [observable]=\"selectField.observable\" [itemKey]=\"selectField.itemKey\" [itemValue]=\"selectField.itemValue\"\n [dropdownMaxHeight]=\"selectField.dropdownMaxHeight || SelectDefaults.dropdownMaxHeight\"\n [typeaheadDebounce]=\"selectField.typeaheadDebounce || SelectDefaults.typeaheadDebounce\"\n [shouldAutoSearch]=\"selectField.shouldAutoSearch || SelectDefaults.shouldAutoSearch\"\n [shouldCloseOnOutsideClick]=\"selectField.shouldCloseOnOutsideClick || SelectDefaults.shouldCloseOnOutsideClick\"\n (selectedItem)=\"formControl.setValue($event?.value)\"></upd-select>\n }\n @case (DynamicFieldType.SelectMultiple) {\n <upd-select-multiple [name]=\"field().name\" [label]=\"field().label\" [hint]=\"field().hint\"\n [hintAsTooltip]=\"field().hintAsTooltip || false\" [validationStatus]=\"validationStatus\"\n [validationStatusDescriptions]=\"validationStatusDescriptions\" [isDisabled]=\"field().isDisabled || false\"\n [items]=\"selectField.items\" [layout]=\"layout()\" [labelColSize]=\"field().labelColSize\" [store]=\"selectField.store!\"\n [observable]=\"selectField.observable\" [itemKey]=\"selectField.itemKey\" [itemValue]=\"selectField.itemValue\"\n [dropdownMaxHeight]=\"selectField.dropdownMaxHeight || SelectDefaults.dropdownMaxHeight\"\n [typeaheadDebounce]=\"selectField.typeaheadDebounce || SelectDefaults.typeaheadDebounce\"\n [shouldAutoSearch]=\"selectField.shouldAutoSearch || SelectDefaults.shouldAutoSearch\"\n [shouldCloseOnOutsideClick]=\"selectField.shouldCloseOnOutsideClick || SelectDefaults.shouldCloseOnOutsideClick\"\n (selectedIds)=\"formControl.setValue($event)\"></upd-select-multiple>\n }\n @case (DynamicFieldType.Label) {\n <label class=\"form-label\">{{ getText(field().label) }}</label>\n }\n @case (DynamicFieldType.TextArea) {\n <upd-textarea [name]=\"field().name\" [label]=\"field().label\" [placeholder]=\"field().placeholder\" [hint]=\"field().hint\"\n [hintAsTooltip]=\"field().hintAsTooltip || false\" [validationStatus]=\"validationStatus\"\n [validationStatusDescriptions]=\"validationStatusDescriptions\" [isDisabled]=\"field().isDisabled || false\"\n [value]=\"formControl.value\" [customClasses]=\"textareaField.customClasses\" [wrapperClasses]=\"textareaField.wrapperClasses\"\n [maxLength]=\"textareaField.maxLength\" [rows]=\"textareaField.rows\"\n [displayCharactersCount]=\"textareaField.displayCharactersCount || false\"></upd-textarea>\n }\n @case (DynamicFieldType.FileUpload) {\n <upd-file-upload [name]=\"field().name\" [label]=\"field().label\" [hint]=\"field().hint\" [isDisabled]=\"field().isDisabled || false\"\n [hintAsTooltip]=\"field().hintAsTooltip || false\" [validationStatus]=\"validationStatus\" [fileName]=\"fileNameControl?.value\"\n [validationStatusDescriptions]=\"validationStatusDescriptions\" [allowFilesDrop]=\"fileUploadField.allowFilesDrop || false\"\n [title]=\"fileUploadField.title\" [labelColSize]=\"field().labelColSize\" [minFileSize]=\"fileUploadField.minFileSize\"\n [isMultiple]=\"fileUploadField.isMultiple || false\" [allowedExtensions]=\"fileUploadField.allowedExtensions || '*'\"\n [maxFileSize]=\"fileUploadField.maxFileSize\" [layout]=\"layout()\" (fileChanged)=\"handleFileSelected($event)\"></upd-file-upload>\n }\n}\n", styles: [""], dependencies: [{ kind: "component", type: i1.InputComponent, selector: "upd-input", inputs: ["type", "mask", "maskConfig", "value", "size", "customClasses", "wrapperClasses", "maxLength", "isPlainText", "isReadOnly", "isLoading", "isRound", "isFlush", "isInputGroupFlat", "isPrependButton", "isAppendButton", "isFloating", "loaderPosition", "prependIconModel", "appendIconModel", "isValidationStatusLight", "layout"], outputs: ["valueChange", "blurred", "keyDown", "keyDownEsc", "keyUpEnter"] }, { kind: "directive", type: i1.InputAppendDirective, selector: "ng-template[updInputAppend]" }, { kind: "directive", type: i1.InputPrependDirective, selector: "ng-template[updInputPrepend]" }, { kind: "component", type: i2.CheckboxComponent, selector: "upd-checkbox", inputs: ["wrapperClasses", "value", "customClasses", "isChecked", "isInline", "isSwitch", "isIndeterminate"], outputs: ["changed", "isCheckedChange", "isIndeterminateChange"] }, { kind: "component", type: i3.RadioComponent, selector: "upd-radio", inputs: ["wrapperClasses", "value", "customClasses", "isChecked", "isInline"], outputs: ["selected"] }, { kind: "component", type: i4.SelectComponent, selector: "upd-select", inputs: ["useSystemStyle", "shouldShowClearButton", "isCompact", "selected"], outputs: ["selectedItem"] }, { kind: "component", type: i4.SelectMultipleComponent, selector: "upd-select-multiple", outputs: ["selectedItems", "selectedIds"] }, { kind: "component", type: i5.TextareaComponent, selector: "upd-textarea", inputs: ["value", "customClasses", "wrapperClasses", "maxLength", "rows", "displayCharactersCount"], outputs: ["valueChange"] }, { kind: "component", type: i6.FileUploadComponent, selector: "upd-file-upload", inputs: ["fileName", "title", "allowFilesDrop", "isMultiple", "allowedExtensions", "minFileSize", "maxFileSize", "layout"], outputs: ["fileChanged"] }] }); }
112
112
  }
113
113
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: DynamicFieldComponent, decorators: [{
114
114
  type: Component,
115
- args: [{ selector: 'upd-dynamic-field', template: "@switch (field().type) {\n @case (DynamicFieldType.Input) {\n <upd-input [name]=\"field().name\" [label]=\"field().label\" [placeholder]=\"field().placeholder\" [hint]=\"field().hint\"\n [hintAsTooltip]=\"field().hintAsTooltip || false\" [validationStatus]=\"validationStatus\"\n [validationStatusDescriptions]=\"validationStatusDescriptions\" [layout]=\"layout()\" [isDisabled]=\"field().isDisabled || false\"\n [type]=\"inputField.inputType || 'text'\" [labelColSize]=\"field().labelColSize\" [value]=\"formControl.value\"\n (valueChange)=\"formControl.setValue($event)\" (blurred)=\"onBlur()\" (keyUpEnter)=\"onInputEnter()\"></upd-input>\n }\n @case (DynamicFieldType.Checkbox) {\n <upd-checkbox [name]=\"field().name\" [label]=\"field().label\" [hint]=\"field().hint\" [hintAsTooltip]=\"field().hintAsTooltip || false\"\n [validationStatus]=\"validationStatus\" [validationStatusDescriptions]=\"validationStatusDescriptions\" [value]=\"true\"\n [isDisabled]=\"field().isDisabled || false\" [isChecked]=\"formControl.value\" [isInline]=\"checkboxField.isInline || false\"\n [isSwitch]=\"checkboxField.isSwitch || false\" (changed)=\"formControl.setValue($event)\"></upd-checkbox>\n }\n @case (DynamicFieldType.CheckboxGroup) {\n @if (!!field().label) {\n <label class=\"form-label\">{{ getText(field().label) }}</label>\n }\n\n @for (option of checkboxGroupOptionsKeys; track option) {\n <upd-checkbox [name]=\"field().name\" [label]=\"getOptionDescription(option, 'checkbox')\" [hint]=\"field().hint\"\n [hintAsTooltip]=\"field().hintAsTooltip || false\" [validationStatus]=\"validationStatus\"\n [validationStatusDescriptions]=\"validationStatusDescriptions\" [value]=\"option\" [isDisabled]=\"field().isDisabled || false\"\n [isChecked]=\"formControl.value\" [isInline]=\"checkboxField.isInline || false\" [isSwitch]=\"checkboxField.isSwitch || false\"\n (changed)=\"formControl.setValue(option)\"></upd-checkbox>\n }\n }\n @case (DynamicFieldType.Radio) {\n <upd-radio [name]=\"field().name\" [label]=\"field().label\" [hint]=\"field().hint\" [hintAsTooltip]=\"field().hintAsTooltip || false\"\n [validationStatus]=\"validationStatus\" [validationStatusDescriptions]=\"validationStatusDescriptions\" [value]=\"true\"\n [isChecked]=\"formControl.value\" [isDisabled]=\"field().isDisabled || false\" [isInline]=\"radioField.isInline || false\"\n (selected)=\"formControl.setValue($event)\">\n </upd-radio>\n }\n @case (DynamicFieldType.RadioGroup) {\n @if (!!field().label) {\n <label class=\"form-label\">{{ getText(field().label) }}</label>\n }\n\n @for (option of radioGroupOptionsKeys; track option) {\n <upd-radio [name]=\"field().name\" [label]=\"getOptionDescription(option, 'radio')\" [hint]=\"field().hint\"\n [hintAsTooltip]=\"field().hintAsTooltip || false\" [validationStatus]=\"validationStatus\"\n [validationStatusDescriptions]=\"validationStatusDescriptions\" [value]=\"option\" [isDisabled]=\"field().isDisabled || false\"\n [isChecked]=\"formControl.value\" [isInline]=\"checkboxField.isInline || false\"\n (selected)=\"formControl.setValue(option)\"></upd-radio>\n }\n }\n @case (DynamicFieldType.Select) {\n <upd-select [name]=\"field().name\" [label]=\"field().label\" [hint]=\"field().hint\" [hintAsTooltip]=\"field().hintAsTooltip || false\"\n [validationStatus]=\"validationStatus\" [validationStatusDescriptions]=\"validationStatusDescriptions\"\n [useSystemStyle]=\"singleSelectField.useSystemStyle || false\" [isDisabled]=\"field().isDisabled || false\"\n [items]=\"selectField.items\" [layout]=\"layout()\" [labelColSize]=\"field().labelColSize\" [store]=\"selectField.store!\"\n [observable]=\"selectField.observable\" [itemKey]=\"selectField.itemKey\" [itemValue]=\"selectField.itemValue\"\n [dropdownMaxHeight]=\"selectField.dropdownMaxHeight || SelectDefaults.dropdownMaxHeight\"\n [typeaheadDebounce]=\"selectField.typeaheadDebounce || SelectDefaults.typeaheadDebounce\"\n [shouldAutoSearch]=\"selectField.shouldAutoSearch || SelectDefaults.shouldAutoSearch\"\n [shouldCloseOnOutsideClick]=\"selectField.shouldCloseOnOutsideClick || SelectDefaults.shouldCloseOnOutsideClick\"\n (selectedItem)=\"formControl.setValue($event?.value)\"></upd-select>\n }\n @case (DynamicFieldType.SelectMultiple) {\n <upd-select-multiple [name]=\"field().name\" [label]=\"field().label\" [hint]=\"field().hint\"\n [hintAsTooltip]=\"field().hintAsTooltip || false\" [validationStatus]=\"validationStatus\"\n [validationStatusDescriptions]=\"validationStatusDescriptions\" [isDisabled]=\"field().isDisabled || false\"\n [items]=\"selectField.items\" [layout]=\"layout()\" [labelColSize]=\"field().labelColSize\" [store]=\"selectField.store!\"\n [observable]=\"selectField.observable\" [itemKey]=\"selectField.itemKey\" [itemValue]=\"selectField.itemValue\"\n [dropdownMaxHeight]=\"selectField.dropdownMaxHeight || SelectDefaults.dropdownMaxHeight\"\n [typeaheadDebounce]=\"selectField.typeaheadDebounce || SelectDefaults.typeaheadDebounce\"\n [shouldAutoSearch]=\"selectField.shouldAutoSearch || SelectDefaults.shouldAutoSearch\"\n [shouldCloseOnOutsideClick]=\"selectField.shouldCloseOnOutsideClick || SelectDefaults.shouldCloseOnOutsideClick\"\n (selectedIds)=\"formControl.setValue($event)\"></upd-select-multiple>\n }\n @case (DynamicFieldType.Label) {\n <label class=\"form-label\">{{ getText(field().label) }}</label>\n }\n @case (DynamicFieldType.TextArea) {\n <upd-textarea [name]=\"field().name\" [label]=\"field().label\" [placeholder]=\"field().placeholder\" [hint]=\"field().hint\"\n [hintAsTooltip]=\"field().hintAsTooltip || false\" [validationStatus]=\"validationStatus\"\n [validationStatusDescriptions]=\"validationStatusDescriptions\" [isDisabled]=\"field().isDisabled || false\"\n [value]=\"formControl.value\" [customClasses]=\"textareaField.customClasses\" [wrapperClasses]=\"textareaField.wrapperClasses\"\n [maxLength]=\"textareaField.maxLength\" [rows]=\"textareaField.rows\"\n [displayCharactersCount]=\"textareaField.displayCharactersCount || false\"></upd-textarea>\n }\n @case (DynamicFieldType.FileUpload) {\n <upd-file-upload [name]=\"field().name\" [label]=\"field().label\" [hint]=\"field().hint\" [isDisabled]=\"field().isDisabled || false\"\n [hintAsTooltip]=\"field().hintAsTooltip || false\" [validationStatus]=\"validationStatus\" [fileName]=\"fileNameControl?.value\"\n [validationStatusDescriptions]=\"validationStatusDescriptions\" [allowFilesDrop]=\"fileUploadField.allowFilesDrop || false\"\n [title]=\"fileUploadField.title\" [labelColSize]=\"field().labelColSize\" [minFileSize]=\"fileUploadField.minFileSize\"\n [isMultiple]=\"fileUploadField.isMultiple || false\" [allowedExtensions]=\"fileUploadField.allowedExtensions || '*'\"\n [maxFileSize]=\"fileUploadField.maxFileSize\" [layout]=\"layout()\" (fileChanged)=\"handleFileSelected($event)\"></upd-file-upload>\n }\n}\n" }]
115
+ args: [{ selector: 'upd-dynamic-field', template: "@switch (field().type) {\n @case (DynamicFieldType.Input) {\n <upd-input [name]=\"field().name\" [label]=\"field().label\" [placeholder]=\"field().placeholder\" [hint]=\"field().hint\"\n [hintAsTooltip]=\"field().hintAsTooltip || false\" [validationStatus]=\"validationStatus\"\n [validationStatusDescriptions]=\"validationStatusDescriptions\" [layout]=\"layout()\" [isDisabled]=\"field().isDisabled || false\"\n [type]=\"inputField.inputType || 'text'\" [labelColSize]=\"field().labelColSize\" [value]=\"formControl.value\"\n (valueChange)=\"formControl.setValue($event)\" (blurred)=\"onBlur()\" (keyUpEnter)=\"onInputEnter()\">\n @if (!!inputField.prefix) {\n <ng-template updInputPrepend>\n {{ textService.getText(inputField.prefix) }}\n </ng-template>\n }\n\n @if (!!inputField.suffix) {\n <ng-template updInputAppend>\n {{ textService.getText(inputField.suffix) }}\n </ng-template>\n }\n </upd-input>\n }\n @case (DynamicFieldType.Checkbox) {\n <upd-checkbox [name]=\"field().name\" [label]=\"field().label\" [hint]=\"field().hint\" [hintAsTooltip]=\"field().hintAsTooltip || false\"\n [validationStatus]=\"validationStatus\" [validationStatusDescriptions]=\"validationStatusDescriptions\" [value]=\"true\"\n [isDisabled]=\"field().isDisabled || false\" [isChecked]=\"formControl.value\" [isInline]=\"checkboxField.isInline || false\"\n [isSwitch]=\"checkboxField.isSwitch || false\" (changed)=\"formControl.setValue($event)\"></upd-checkbox>\n }\n @case (DynamicFieldType.CheckboxGroup) {\n @if (!!field().label) {\n <label class=\"form-label\">{{ getText(field().label) }}</label>\n }\n\n @for (option of checkboxGroupOptionsKeys; track option) {\n <upd-checkbox [name]=\"field().name\" [label]=\"getOptionDescription(option, 'checkbox')\" [hint]=\"field().hint\"\n [hintAsTooltip]=\"field().hintAsTooltip || false\" [validationStatus]=\"validationStatus\"\n [validationStatusDescriptions]=\"validationStatusDescriptions\" [value]=\"option\" [isDisabled]=\"field().isDisabled || false\"\n [isChecked]=\"formControl.value\" [isInline]=\"checkboxField.isInline || false\" [isSwitch]=\"checkboxField.isSwitch || false\"\n (changed)=\"formControl.setValue(option)\"></upd-checkbox>\n }\n }\n @case (DynamicFieldType.Radio) {\n <upd-radio [name]=\"field().name\" [label]=\"field().label\" [hint]=\"field().hint\" [hintAsTooltip]=\"field().hintAsTooltip || false\"\n [validationStatus]=\"validationStatus\" [validationStatusDescriptions]=\"validationStatusDescriptions\" [value]=\"true\"\n [isChecked]=\"formControl.value\" [isDisabled]=\"field().isDisabled || false\" [isInline]=\"radioField.isInline || false\"\n (selected)=\"formControl.setValue($event)\">\n </upd-radio>\n }\n @case (DynamicFieldType.RadioGroup) {\n @if (!!field().label) {\n <label class=\"form-label\">{{ getText(field().label) }}</label>\n }\n\n @for (option of radioGroupOptionsKeys; track option) {\n <upd-radio [name]=\"field().name\" [label]=\"getOptionDescription(option, 'radio')\" [hint]=\"field().hint\"\n [hintAsTooltip]=\"field().hintAsTooltip || false\" [validationStatus]=\"validationStatus\"\n [validationStatusDescriptions]=\"validationStatusDescriptions\" [value]=\"option\" [isDisabled]=\"field().isDisabled || false\"\n [isChecked]=\"formControl.value\" [isInline]=\"checkboxField.isInline || false\"\n (selected)=\"formControl.setValue(option)\"></upd-radio>\n }\n }\n @case (DynamicFieldType.Select) {\n <upd-select [name]=\"field().name\" [label]=\"field().label\" [hint]=\"field().hint\" [hintAsTooltip]=\"field().hintAsTooltip || false\"\n [validationStatus]=\"validationStatus\" [validationStatusDescriptions]=\"validationStatusDescriptions\"\n [useSystemStyle]=\"singleSelectField.useSystemStyle || false\" [isDisabled]=\"field().isDisabled || false\"\n [items]=\"selectField.items\" [layout]=\"layout()\" [labelColSize]=\"field().labelColSize\" [store]=\"selectField.store!\"\n [observable]=\"selectField.observable\" [itemKey]=\"selectField.itemKey\" [itemValue]=\"selectField.itemValue\"\n [dropdownMaxHeight]=\"selectField.dropdownMaxHeight || SelectDefaults.dropdownMaxHeight\"\n [typeaheadDebounce]=\"selectField.typeaheadDebounce || SelectDefaults.typeaheadDebounce\"\n [shouldAutoSearch]=\"selectField.shouldAutoSearch || SelectDefaults.shouldAutoSearch\"\n [shouldCloseOnOutsideClick]=\"selectField.shouldCloseOnOutsideClick || SelectDefaults.shouldCloseOnOutsideClick\"\n (selectedItem)=\"formControl.setValue($event?.value)\"></upd-select>\n }\n @case (DynamicFieldType.SelectMultiple) {\n <upd-select-multiple [name]=\"field().name\" [label]=\"field().label\" [hint]=\"field().hint\"\n [hintAsTooltip]=\"field().hintAsTooltip || false\" [validationStatus]=\"validationStatus\"\n [validationStatusDescriptions]=\"validationStatusDescriptions\" [isDisabled]=\"field().isDisabled || false\"\n [items]=\"selectField.items\" [layout]=\"layout()\" [labelColSize]=\"field().labelColSize\" [store]=\"selectField.store!\"\n [observable]=\"selectField.observable\" [itemKey]=\"selectField.itemKey\" [itemValue]=\"selectField.itemValue\"\n [dropdownMaxHeight]=\"selectField.dropdownMaxHeight || SelectDefaults.dropdownMaxHeight\"\n [typeaheadDebounce]=\"selectField.typeaheadDebounce || SelectDefaults.typeaheadDebounce\"\n [shouldAutoSearch]=\"selectField.shouldAutoSearch || SelectDefaults.shouldAutoSearch\"\n [shouldCloseOnOutsideClick]=\"selectField.shouldCloseOnOutsideClick || SelectDefaults.shouldCloseOnOutsideClick\"\n (selectedIds)=\"formControl.setValue($event)\"></upd-select-multiple>\n }\n @case (DynamicFieldType.Label) {\n <label class=\"form-label\">{{ getText(field().label) }}</label>\n }\n @case (DynamicFieldType.TextArea) {\n <upd-textarea [name]=\"field().name\" [label]=\"field().label\" [placeholder]=\"field().placeholder\" [hint]=\"field().hint\"\n [hintAsTooltip]=\"field().hintAsTooltip || false\" [validationStatus]=\"validationStatus\"\n [validationStatusDescriptions]=\"validationStatusDescriptions\" [isDisabled]=\"field().isDisabled || false\"\n [value]=\"formControl.value\" [customClasses]=\"textareaField.customClasses\" [wrapperClasses]=\"textareaField.wrapperClasses\"\n [maxLength]=\"textareaField.maxLength\" [rows]=\"textareaField.rows\"\n [displayCharactersCount]=\"textareaField.displayCharactersCount || false\"></upd-textarea>\n }\n @case (DynamicFieldType.FileUpload) {\n <upd-file-upload [name]=\"field().name\" [label]=\"field().label\" [hint]=\"field().hint\" [isDisabled]=\"field().isDisabled || false\"\n [hintAsTooltip]=\"field().hintAsTooltip || false\" [validationStatus]=\"validationStatus\" [fileName]=\"fileNameControl?.value\"\n [validationStatusDescriptions]=\"validationStatusDescriptions\" [allowFilesDrop]=\"fileUploadField.allowFilesDrop || false\"\n [title]=\"fileUploadField.title\" [labelColSize]=\"field().labelColSize\" [minFileSize]=\"fileUploadField.minFileSize\"\n [isMultiple]=\"fileUploadField.isMultiple || false\" [allowedExtensions]=\"fileUploadField.allowedExtensions || '*'\"\n [maxFileSize]=\"fileUploadField.maxFileSize\" [layout]=\"layout()\" (fileChanged)=\"handleFileSelected($event)\"></upd-file-upload>\n }\n}\n" }]
116
116
  }], propDecorators: { wrapperClasses: [{
117
117
  type: HostBinding,
118
118
  args: ['class']
119
119
  }], submitForm: [{
120
120
  type: Output
121
121
  }] } });
122
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHluYW1pYy1maWVsZC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvZm9ybS9zcmMvY29tcG9uZW50cy9keW5hbWljLWZpZWxkL2R5bmFtaWMtZmllbGQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL2Zvcm0vc3JjL2NvbXBvbmVudHMvZHluYW1pYy1maWVsZC9keW5hbWljLWZpZWxkLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQVUsV0FBVyxFQUFFLE1BQU0sRUFBZSxLQUFLLEVBQUUsTUFBTSxFQUFFLFlBQVksRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUVqSCxPQUFPLEVBQWEsV0FBVyxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBRXJELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUNuRCxPQUFPLEVBQUUsZ0JBQWdCLEVBQWdELE1BQU0sb0JBQW9CLENBQUM7QUFDcEcsT0FBTyxFQUFFLFFBQVEsSUFBSSxjQUFjLEVBQUUsTUFBTSx5Q0FBeUMsQ0FBQztBQUtyRixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDekQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sdUNBQXVDLENBQUM7Ozs7Ozs7O0FBZXpFLE1BQU0sT0FBTyxxQkFBc0IsU0FBUSxhQUFhO0lBTHhEOztRQU0wQixtQkFBYyxHQUFHLEVBQUUsQ0FBQztRQUV2QixlQUFVLEdBQUcsSUFBSSxZQUFZLEVBQVEsQ0FBQztRQUV6RCxxQkFBZ0IsR0FBRyxnQkFBZ0IsQ0FBQztRQUNwQyxtQkFBYyxHQUFHLGNBQWMsQ0FBQztRQUVoQyxjQUFTLEdBQTJCLEtBQUssQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUNyRCxVQUFLLEdBQW1DLEtBQUssQ0FBQyxR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QkFBbUI7UUFDdkIsSUFBSSxDQUFDLGNBQWMsR0FBRyxnQkFBZ0IsQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ2hGLENBQUM7OEdBeEdRLHFCQUFxQjtrR0FBckIscUJBQXFCLGlqQkMzQmxDLDY2T0EyRkE7OzJGRGhFYSxxQkFBcUI7a0JBTGpDLFNBQVM7K0JBQ0ksbUJBQW1COzhCQUtQLGNBQWM7c0JBQW5DLFdBQVc7dUJBQUMsT0FBTztnQkFFRCxVQUFVO3NCQUE1QixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQsIEhvc3RCaW5kaW5nLCBpbmplY3QsIElucHV0U2lnbmFsLCBpbnB1dCwgT3V0cHV0LCBFdmVudEVtaXR0ZXIgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZvcm1Hcm91cCwgRm9ybUNvbnRyb2wgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBUZXh0TW9kZWwsIFRleHRTZXJ2aWNlIH0gZnJvbSAnQHVwZGV2cy9zZGsnO1xuaW1wb3J0IHsgT3B0aW9uYWxUeXBlIH0gZnJvbSAnQHVwZGV2cy9zZGsvdHlwZXMnO1xuaW1wb3J0IHsgQmFzZUNvbXBvbmVudCB9IGZyb20gJ0B1cGRldnMvc2RrL2xheW91dCc7XG5pbXBvcnQgeyBDb2x1bW5TaXplSGVscGVyLCBIb3Jpem9udGFsVmVydGljYWxUeXBlLCBWYWxpZGF0aW9uU3RhdHVzVHlwZSB9IGZyb20gJ0B1cGRldnMvY29tcG9uZW50cyc7XG5pbXBvcnQgeyBEZWZhdWx0cyBhcyBTZWxlY3REZWZhdWx0cyB9IGZyb20gJ0B1cGRldnMvY29tcG9uZW50cy9mb3JtLWNvbnRyb2xzL3NlbGVjdCc7XG5pbXBvcnQgeyBGaWxlVXBsb2FkQ2hhbmdlZEV2ZW50IH0gZnJvbSAnQHVwZGV2cy9jb21wb25lbnRzL2Zvcm0tY29udHJvbHMvZmlsZS11cGxvYWQnO1xuXG5pbXBvcnQgeyBGaWxlVXBsb2FkRmllbGRNb2RlbCB9IGZyb20gJy4uLy4uL21vZGVscy9maWxlLXVwbG9hZC1maWVsZC5tb2RlbCc7XG5pbXBvcnQgeyBJbnB1dEZpZWxkTW9kZWwgfSBmcm9tICcuLi8uLi9tb2RlbHMvaW5wdXQtZmllbGQubW9kZWwnO1xuaW1wb3J0IHsgRXJyb3JzSGVscGVyIH0gZnJvbSAnLi4vLi4vdG9vbHMvZXJyb3JzLWhlbHBlcic7XG5pbXBvcnQgeyBEeW5hbWljRmllbGRUeXBlIH0gZnJvbSAnLi4vLi4vbW9kZWxzL2VudW1zL2R5bmFtaWMtZmllbGQudHlwZSc7XG5pbXBvcnQgeyBEeW5hbWljRmllbGRNb2RlbCB9IGZyb20gJy4uLy4uL21vZGVscy9keW5hbWljLWZpZWxkLm1vZGVsJztcbmltcG9ydCB7IENoZWNrYm94RmllbGRNb2RlbCB9IGZyb20gJy4uLy4uL21vZGVscy9jaGVja2JveC1maWVsZC5tb2RlbCc7XG5pbXBvcnQgeyBSYWRpb0ZpZWxkTW9kZWwgfSBmcm9tICcuLi8uLi9tb2RlbHMvcmFkaW8tZmllbGQubW9kZWwnO1xuaW1wb3J0IHsgU2VsZWN0RmllbGRNb2RlbCB9IGZyb20gJy4uLy4uL21vZGVscy9zZWxlY3QtZmllbGQubW9kZWwnO1xuaW1wb3J0IHsgU2luZ2xlU2VsZWN0RmllbGRNb2RlbCB9IGZyb20gJy4uLy4uL21vZGVscy9zaW5nbGUtc2VsZWN0LWZpZWxkLm1vZGVsJztcbmltcG9ydCB7IENoZWNrYm94R3JvdXBGaWVsZE1vZGVsIH0gZnJvbSAnLi4vLi4vbW9kZWxzL2NoZWNrYm94LWdyb3VwLWZpZWxkLm1vZGVsJztcbmltcG9ydCB7IFJhZGlvR3JvdXBGaWVsZE1vZGVsIH0gZnJvbSAnLi4vLi4vbW9kZWxzL3JhZGlvLWdyb3VwLWZpZWxkLm1vZGVsJztcbmltcG9ydCB7IFRleHRhcmVhRmllbGRNb2RlbCB9IGZyb20gJy4uLy4uL21vZGVscy90ZXh0YXJlYS1maWVsZC5tb2RlbCc7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAndXBkLWR5bmFtaWMtZmllbGQnLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9keW5hbWljLWZpZWxkLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybDogJy4vZHluYW1pYy1maWVsZC5jb21wb25lbnQuc2Nzcydcbn0pXG5leHBvcnQgY2xhc3MgRHluYW1pY0ZpZWxkQ29tcG9uZW50IGV4dGVuZHMgQmFzZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gICAgQEhvc3RCaW5kaW5nKCdjbGFzcycpIHdyYXBwZXJDbGFzc2VzID0gJyc7XG5cbiAgICBAT3V0cHV0KCkgcmVhZG9ubHkgc3VibWl0Rm9ybSA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcblxuICAgIER5bmFtaWNGaWVsZFR5cGUgPSBEeW5hbWljRmllbGRUeXBlO1xuICAgIFNlbGVjdERlZmF1bHRzID0gU2VsZWN0RGVmYXVsdHM7XG5cbiAgICBmb3JtR3JvdXA6IElucHV0U2lnbmFsPEZvcm1Hcm91cD4gPSBpbnB1dC5yZXF1aXJlZCgpO1xuICAgIGZpZWxkOiBJbnB1dFNpZ25hbDxEeW5hbWljRmllbGRNb2RlbD4gPSBpbnB1dC5yZXF1aXJlZCgpO1xuICAgIGxheW91dDogSW5wdXRTaWduYWw8SG9yaXpvbnRhbFZlcnRpY2FsVHlwZT4gPSBpbnB1dC5yZXF1aXJlZCgpO1xuICAgIHZhbGlkYXRpb25TdGF0dXM/OiBWYWxpZGF0aW9uU3RhdHVzVHlwZTtcbiAgICB2YWxpZGF0aW9uU3RhdHVzRGVzY3JpcHRpb25zOiBUZXh0TW9kZWxbXSA9IFtdO1xuICAgIGdldCBmb3JtQ29udHJvbCgpOiBGb3JtQ29udHJvbCB7XG4gICAgICAgIHJldHVybiB0aGlzLmZvcm1Hcm91cCgpLmNvbnRyb2xzW3RoaXMuZmllbGQoKS5uYW1lXSBhcyBGb3JtQ29udHJvbDtcbiAgICB9XG4gICAgZ2V0IGlucHV0RmllbGQoKTogSW5wdXRGaWVsZE1vZGVsIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZmllbGQoKSBhcyBJbnB1dEZpZWxkTW9kZWw7XG4gICAgfVxuICAgIGdldCBjaGVja2JveEZpZWxkKCk6IENoZWNrYm94RmllbGRNb2RlbCB7XG4gICAgICAgIHJldHVybiB0aGlzLmZpZWxkKCkgYXMgQ2hlY2tib3hGaWVsZE1vZGVsO1xuICAgIH1cbiAgICBnZXQgY2hlY2tib3hHcm91cEZpZWxkKCk6IENoZWNrYm94R3JvdXBGaWVsZE1vZGVsIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZmllbGQoKSBhcyBDaGVja2JveEdyb3VwRmllbGRNb2RlbDtcbiAgICB9XG4gICAgZ2V0IHJhZGlvRmllbGQoKTogQ2hlY2tib3hGaWVsZE1vZGVsIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZmllbGQoKSBhcyBSYWRpb0ZpZWxkTW9kZWw7XG4gICAgfVxuICAgIGdldCByYWRpb0dyb3VwRmllbGQoKTogUmFkaW9Hcm91cEZpZWxkTW9kZWwge1xuICAgICAgICByZXR1cm4gdGhpcy5maWVsZCgpIGFzIFJhZGlvR3JvdXBGaWVsZE1vZGVsO1xuICAgIH1cbiAgICBnZXQgc2VsZWN0RmllbGQoKTogU2VsZWN0RmllbGRNb2RlbCB7XG4gICAgICAgIHJldHVybiB0aGlzLmZpZWxkKCkgYXMgU2VsZWN0RmllbGRNb2RlbDtcbiAgICB9XG4gICAgZ2V0IHNpbmdsZVNlbGVjdEZpZWxkKCk6IFNpbmdsZVNlbGVjdEZpZWxkTW9kZWwge1xuICAgICAgICByZXR1cm4gdGhpcy5maWVsZCgpIGFzIFNpbmdsZVNlbGVjdEZpZWxkTW9kZWw7XG4gICAgfVxuICAgIGdldCB0ZXh0YXJlYUZpZWxkKCk6IFRleHRhcmVhRmllbGRNb2RlbCB7XG4gICAgICAgIHJldHVybiB0aGlzLmZpZWxkKCkgYXMgVGV4dGFyZWFGaWVsZE1vZGVsO1xuICAgIH1cbiAgICBnZXQgZmlsZVVwbG9hZEZpZWxkKCk6IEZpbGVVcGxvYWRGaWVsZE1vZGVsIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZmllbGQoKSBhcyBGaWxlVXBsb2FkRmllbGRNb2RlbDtcbiAgICB9XG4gICAgZ2V0IGNoZWNrYm94R3JvdXBPcHRpb25zS2V5cygpOiBzdHJpbmdbXSB7XG4gICAgICAgIHJldHVybiBPYmplY3Qua2V5cyh0aGlzLmNoZWNrYm94R3JvdXBGaWVsZC5vcHRpb25zKTtcbiAgICB9XG4gICAgZ2V0IHJhZGlvR3JvdXBPcHRpb25zS2V5cygpOiBzdHJpbmdbXSB7XG4gICAgICAgIHJldHVybiBPYmplY3Qua2V5cyh0aGlzLnJhZGlvR3JvdXBGaWVsZC5vcHRpb25zKTtcbiAgICB9XG4gICAgZ2V0IGZpbGVOYW1lQ29udHJvbCgpOiBPcHRpb25hbFR5cGU8Rm9ybUNvbnRyb2w+IHtcbiAgICAgICAgcmV0dXJuICEhdGhpcy5maWxlVXBsb2FkRmllbGQuZmlsZU5hbWVGb3JtUHJvcGVydHlcbiAgICAgICAgICAgID8gdGhpcy5mb3JtR3JvdXAoKS5jb250cm9sc1t0aGlzLmZpbGVVcGxvYWRGaWVsZC5maWxlTmFtZUZvcm1Qcm9wZXJ0eV0gYXMgRm9ybUNvbnRyb2xcbiAgICAgICAgICAgIDogdW5kZWZpbmVkO1xuICAgIH1cblxuICAgIHByaXZhdGUgcmVhZG9ubHkgZXJyb3JzSGVscGVyID0gaW5qZWN0KEVycm9yc0hlbHBlcik7XG4gICAgcHJpdmF0ZSByZWFkb25seSB0ZXh0U2VydmljZSA9IGluamVjdChUZXh0U2VydmljZSk7XG5cbiAgICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAgICAgY29uc3Qgc3RhdHVzU3ViID0gdGhpcy5mb3JtQ29udHJvbC5zdGF0dXNDaGFuZ2VzLnN1YnNjcmliZShzdGF0dXMgPT4ge1xuICAgICAgICAgICAgaWYgKHN0YXR1cyA9PT0gJ0lOVkFMSUQnKSB7XG4gICAgICAgICAgICAgICAgdGhpcy52YWxpZGF0aW9uU3RhdHVzRGVzY3JpcHRpb25zID0gdGhpcy5lcnJvcnNIZWxwZXIuZ2V0TWVzc2FnZXModGhpcy5mb3JtQ29udHJvbClcbiAgICAgICAgICAgICAgICAgICAgLm1hcCh0ID0+ICh7IHRleHQ6IHQsIGlzVHJhbnNsYXRlZDogdHJ1ZSB9KSk7XG4gICAgICAgICAgICAgICAgdGhpcy52YWxpZGF0aW9uU3RhdHVzID0gJ2ludmFsaWQnO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICB0aGlzLnZhbGlkYXRpb25TdGF0dXNEZXNjcmlwdGlvbnMgPSBbXTtcbiAgICAgICAgICAgICAgICB0aGlzLnZhbGlkYXRpb25TdGF0dXMgPSB0aGlzLmZpZWxkKCkuc2hvd1ZhbGlkU3RhdHVzID8gJ3ZhbGlkJyA6IHVuZGVmaW5lZDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG5cbiAgICAgICAgdGhpcy5zZXR1cFdyYXBwZXJDbGFzc2VzKCk7XG4gICAgICAgIHRoaXMuYWRkU3Vic2NyaXB0aW9ucyhzdGF0dXNTdWIpO1xuICAgIH1cblxuICAgIG9uQmx1cigpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuZmllbGQoKS5zaG91bGRWYWxpZGF0ZU9uQmx1cikge1xuICAgICAgICAgICAgdGhpcy5mb3JtQ29udHJvbC51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBnZXRUZXh0KHRleHRNb2RlbD86IFRleHRNb2RlbCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiB0aGlzLnRleHRTZXJ2aWNlLmdldFRleHQodGV4dE1vZGVsKTtcbiAgICB9XG5cbiAgICBnZXRPcHRpb25EZXNjcmlwdGlvbihrZXk6IHN0cmluZywgdHlwZTogJ2NoZWNrYm94JyB8ICdyYWRpbycpOiBPcHRpb25hbFR5cGU8VGV4dE1vZGVsPiB7XG4gICAgICAgIHJldHVybiB0eXBlID09PSAnY2hlY2tib3gnID8gdGhpcy5jaGVja2JveEdyb3VwRmllbGQub3B0aW9uc1trZXldIDogdGhpcy5yYWRpb0dyb3VwRmllbGQub3B0aW9uc1trZXldO1xuICAgIH1cblxuICAgIGhhbmRsZUZpbGVTZWxlY3RlZChldmVudD86IEZpbGVVcGxvYWRDaGFuZ2VkRXZlbnQpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5mb3JtQ29udHJvbC5zZXRWYWx1ZSghIXRoaXMuZmlsZVVwbG9hZEZpZWxkLnNhdmVBc0RhdGFVcmwgPyBldmVudD8uZGF0YVVybCA6IGV2ZW50Py5maWxlKTtcblxuICAgICAgICBpZiAoISF0aGlzLmZpbGVVcGxvYWRGaWVsZC5maWxlTmFtZUZvcm1Qcm9wZXJ0eSkge1xuICAgICAgICAgICAgdGhpcy5maWxlTmFtZUNvbnRyb2whLnNldFZhbHVlKGV2ZW50Py5maWxlLm5hbWUpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgb25JbnB1dEVudGVyKCk6IHZvaWQge1xuICAgICAgICBpZiAoISF0aGlzLmlucHV0RmllbGQuc2hvdWxkU3VibWl0T25FbnRlcikge1xuICAgICAgICAgICAgdGhpcy5zdWJtaXRGb3JtLm5leHQoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgc2V0dXBXcmFwcGVyQ2xhc3NlcygpOiB2b2lkIHtcbiAgICAgICAgdGhpcy53cmFwcGVyQ2xhc3NlcyA9IENvbHVtblNpemVIZWxwZXIuZ2V0U2l6ZUNsYXNzZXModGhpcy5maWVsZCgpLmNvbFNpemUpO1xuICAgIH1cbn1cbiIsIkBzd2l0Y2ggKGZpZWxkKCkudHlwZSkge1xuICAgIEBjYXNlIChEeW5hbWljRmllbGRUeXBlLklucHV0KSB7XG4gICAgICAgIDx1cGQtaW5wdXQgW25hbWVdPVwiZmllbGQoKS5uYW1lXCIgW2xhYmVsXT1cImZpZWxkKCkubGFiZWxcIiBbcGxhY2Vob2xkZXJdPVwiZmllbGQoKS5wbGFjZWhvbGRlclwiIFtoaW50XT1cImZpZWxkKCkuaGludFwiXG4gICAgICAgICAgICBbaGludEFzVG9vbHRpcF09XCJmaWVsZCgpLmhpbnRBc1Rvb2x0aXAgfHwgZmFsc2VcIiBbdmFsaWRhdGlvblN0YXR1c109XCJ2YWxpZGF0aW9uU3RhdHVzXCJcbiAgICAgICAgICAgIFt2YWxpZGF0aW9uU3RhdHVzRGVzY3JpcHRpb25zXT1cInZhbGlkYXRpb25TdGF0dXNEZXNjcmlwdGlvbnNcIiBbbGF5b3V0XT1cImxheW91dCgpXCIgW2lzRGlzYWJsZWRdPVwiZmllbGQoKS5pc0Rpc2FibGVkIHx8IGZhbHNlXCJcbiAgICAgICAgICAgIFt0eXBlXT1cImlucHV0RmllbGQuaW5wdXRUeXBlIHx8ICd0ZXh0J1wiIFtsYWJlbENvbFNpemVdPVwiZmllbGQoKS5sYWJlbENvbFNpemVcIiBbdmFsdWVdPVwiZm9ybUNvbnRyb2wudmFsdWVcIlxuICAgICAgICAgICAgKHZhbHVlQ2hhbmdlKT1cImZvcm1Db250cm9sLnNldFZhbHVlKCRldmVudClcIiAoYmx1cnJlZCk9XCJvbkJsdXIoKVwiIChrZXlVcEVudGVyKT1cIm9uSW5wdXRFbnRlcigpXCI+PC91cGQtaW5wdXQ+XG4gICAgfVxuICAgIEBjYXNlIChEeW5hbWljRmllbGRUeXBlLkNoZWNrYm94KSB7XG4gICAgICAgIDx1cGQtY2hlY2tib3ggW25hbWVdPVwiZmllbGQoKS5uYW1lXCIgW2xhYmVsXT1cImZpZWxkKCkubGFiZWxcIiBbaGludF09XCJmaWVsZCgpLmhpbnRcIiBbaGludEFzVG9vbHRpcF09XCJmaWVsZCgpLmhpbnRBc1Rvb2x0aXAgfHwgZmFsc2VcIlxuICAgICAgICAgICAgW3ZhbGlkYXRpb25TdGF0dXNdPVwidmFsaWRhdGlvblN0YXR1c1wiIFt2YWxpZGF0aW9uU3RhdHVzRGVzY3JpcHRpb25zXT1cInZhbGlkYXRpb25TdGF0dXNEZXNjcmlwdGlvbnNcIiBbdmFsdWVdPVwidHJ1ZVwiXG4gICAgICAgICAgICBbaXNEaXNhYmxlZF09XCJmaWVsZCgpLmlzRGlzYWJsZWQgfHwgZmFsc2VcIiBbaXNDaGVja2VkXT1cImZvcm1Db250cm9sLnZhbHVlXCIgW2lzSW5saW5lXT1cImNoZWNrYm94RmllbGQuaXNJbmxpbmUgfHwgZmFsc2VcIlxuICAgICAgICAgICAgW2lzU3dpdGNoXT1cImNoZWNrYm94RmllbGQuaXNTd2l0Y2ggfHwgZmFsc2VcIiAoY2hhbmdlZCk9XCJmb3JtQ29udHJvbC5zZXRWYWx1ZSgkZXZlbnQpXCI+PC91cGQtY2hlY2tib3g+XG4gICAgfVxuICAgIEBjYXNlIChEeW5hbWljRmllbGRUeXBlLkNoZWNrYm94R3JvdXApIHtcbiAgICAgICAgQGlmICghIWZpZWxkKCkubGFiZWwpIHtcbiAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImZvcm0tbGFiZWxcIj57eyBnZXRUZXh0KGZpZWxkKCkubGFiZWwpIH19PC9sYWJlbD5cbiAgICAgICAgfVxuXG4gICAgICAgIEBmb3IgKG9wdGlvbiBvZiBjaGVja2JveEdyb3VwT3B0aW9uc0tleXM7IHRyYWNrIG9wdGlvbikge1xuICAgICAgICAgICAgPHVwZC1jaGVja2JveCBbbmFtZV09XCJmaWVsZCgpLm5hbWVcIiBbbGFiZWxdPVwiZ2V0T3B0aW9uRGVzY3JpcHRpb24ob3B0aW9uLCAnY2hlY2tib3gnKVwiIFtoaW50XT1cImZpZWxkKCkuaGludFwiXG4gICAgICAgICAgICAgICAgW2hpbnRBc1Rvb2x0aXBdPVwiZmllbGQoKS5oaW50QXNUb29sdGlwIHx8IGZhbHNlXCIgW3ZhbGlkYXRpb25TdGF0dXNdPVwidmFsaWRhdGlvblN0YXR1c1wiXG4gICAgICAgICAgICAgICAgW3ZhbGlkYXRpb25TdGF0dXNEZXNjcmlwdGlvbnNdPVwidmFsaWRhdGlvblN0YXR1c0Rlc2NyaXB0aW9uc1wiIFt2YWx1ZV09XCJvcHRpb25cIiBbaXNEaXNhYmxlZF09XCJmaWVsZCgpLmlzRGlzYWJsZWQgfHwgZmFsc2VcIlxuICAgICAgICAgICAgICAgIFtpc0NoZWNrZWRdPVwiZm9ybUNvbnRyb2wudmFsdWVcIiBbaXNJbmxpbmVdPVwiY2hlY2tib3hGaWVsZC5pc0lubGluZSB8fCBmYWxzZVwiIFtpc1N3aXRjaF09XCJjaGVja2JveEZpZWxkLmlzU3dpdGNoIHx8IGZhbHNlXCJcbiAgICAgICAgICAgICAgICAoY2hhbmdlZCk9XCJmb3JtQ29udHJvbC5zZXRWYWx1ZShvcHRpb24pXCI+PC91cGQtY2hlY2tib3g+XG4gICAgICAgIH1cbiAgICB9XG4gICAgQGNhc2UgKER5bmFtaWNGaWVsZFR5cGUuUmFkaW8pIHtcbiAgICAgICAgPHVwZC1yYWRpbyBbbmFtZV09XCJmaWVsZCgpLm5hbWVcIiBbbGFiZWxdPVwiZmllbGQoKS5sYWJlbFwiIFtoaW50XT1cImZpZWxkKCkuaGludFwiIFtoaW50QXNUb29sdGlwXT1cImZpZWxkKCkuaGludEFzVG9vbHRpcCB8fCBmYWxzZVwiXG4gICAgICAgICAgICBbdmFsaWRhdGlvblN0YXR1c109XCJ2YWxpZGF0aW9uU3RhdHVzXCIgW3ZhbGlkYXRpb25TdGF0dXNEZXNjcmlwdGlvbnNdPVwidmFsaWRhdGlvblN0YXR1c0Rlc2NyaXB0aW9uc1wiIFt2YWx1ZV09XCJ0cnVlXCJcbiAgICAgICAgICAgIFtpc0NoZWNrZWRdPVwiZm9ybUNvbnRyb2wudmFsdWVcIiBbaXNEaXNhYmxlZF09XCJmaWVsZCgpLmlzRGlzYWJsZWQgfHwgZmFsc2VcIiBbaXNJbmxpbmVdPVwicmFkaW9GaWVsZC5pc0lubGluZSB8fCBmYWxzZVwiXG4gICAgICAgICAgICAoc2VsZWN0ZWQpPVwiZm9ybUNvbnRyb2wuc2V0VmFsdWUoJGV2ZW50KVwiPlxuICAgICAgICA8L3VwZC1yYWRpbz5cbiAgICB9XG4gICAgQGNhc2UgKER5bmFtaWNGaWVsZFR5cGUuUmFkaW9Hcm91cCkge1xuICAgICAgICBAaWYgKCEhZmllbGQoKS5sYWJlbCkge1xuICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwiZm9ybS1sYWJlbFwiPnt7IGdldFRleHQoZmllbGQoKS5sYWJlbCkgfX08L2xhYmVsPlxuICAgICAgICB9XG5cbiAgICAgICAgQGZvciAob3B0aW9uIG9mIHJhZGlvR3JvdXBPcHRpb25zS2V5czsgdHJhY2sgb3B0aW9uKSB7XG4gICAgICAgICAgICA8dXBkLXJhZGlvIFtuYW1lXT1cImZpZWxkKCkubmFtZVwiIFtsYWJlbF09XCJnZXRPcHRpb25EZXNjcmlwdGlvbihvcHRpb24sICdyYWRpbycpXCIgW2hpbnRdPVwiZmllbGQoKS5oaW50XCJcbiAgICAgICAgICAgICAgICBbaGludEFzVG9vbHRpcF09XCJmaWVsZCgpLmhpbnRBc1Rvb2x0aXAgfHwgZmFsc2VcIiBbdmFsaWRhdGlvblN0YXR1c109XCJ2YWxpZGF0aW9uU3RhdHVzXCJcbiAgICAgICAgICAgICAgICBbdmFsaWRhdGlvblN0YXR1c0Rlc2NyaXB0aW9uc109XCJ2YWxpZGF0aW9uU3RhdHVzRGVzY3JpcHRpb25zXCIgW3ZhbHVlXT1cIm9wdGlvblwiIFtpc0Rpc2FibGVkXT1cImZpZWxkKCkuaXNEaXNhYmxlZCB8fCBmYWxzZVwiXG4gICAgICAgICAgICAgICAgW2lzQ2hlY2tlZF09XCJmb3JtQ29udHJvbC52YWx1ZVwiIFtpc0lubGluZV09XCJjaGVja2JveEZpZWxkLmlzSW5saW5lIHx8IGZhbHNlXCJcbiAgICAgICAgICAgICAgICAoc2VsZWN0ZWQpPVwiZm9ybUNvbnRyb2wuc2V0VmFsdWUob3B0aW9uKVwiPjwvdXBkLXJhZGlvPlxuICAgICAgICB9XG4gICAgfVxuICAgIEBjYXNlIChEeW5hbWljRmllbGRUeXBlLlNlbGVjdCkge1xuICAgICAgICA8dXBkLXNlbGVjdCBbbmFtZV09XCJmaWVsZCgpLm5hbWVcIiBbbGFiZWxdPVwiZmllbGQoKS5sYWJlbFwiIFtoaW50XT1cImZpZWxkKCkuaGludFwiIFtoaW50QXNUb29sdGlwXT1cImZpZWxkKCkuaGludEFzVG9vbHRpcCB8fCBmYWxzZVwiXG4gICAgICAgICAgICBbdmFsaWRhdGlvblN0YXR1c109XCJ2YWxpZGF0aW9uU3RhdHVzXCIgW3ZhbGlkYXRpb25TdGF0dXNEZXNjcmlwdGlvbnNdPVwidmFsaWRhdGlvblN0YXR1c0Rlc2NyaXB0aW9uc1wiXG4gICAgICAgICAgICBbdXNlU3lzdGVtU3R5bGVdPVwic2luZ2xlU2VsZWN0RmllbGQudXNlU3lzdGVtU3R5bGUgfHwgZmFsc2VcIiBbaXNEaXNhYmxlZF09XCJmaWVsZCgpLmlzRGlzYWJsZWQgfHwgZmFsc2VcIlxuICAgICAgICAgICAgW2l0ZW1zXT1cInNlbGVjdEZpZWxkLml0ZW1zXCIgW2xheW91dF09XCJsYXlvdXQoKVwiIFtsYWJlbENvbFNpemVdPVwiZmllbGQoKS5sYWJlbENvbFNpemVcIiBbc3RvcmVdPVwic2VsZWN0RmllbGQuc3RvcmUhXCJcbiAgICAgICAgICAgIFtvYnNlcnZhYmxlXT1cInNlbGVjdEZpZWxkLm9ic2VydmFibGVcIiBbaXRlbUtleV09XCJzZWxlY3RGaWVsZC5pdGVtS2V5XCIgW2l0ZW1WYWx1ZV09XCJzZWxlY3RGaWVsZC5pdGVtVmFsdWVcIlxuICAgICAgICAgICAgW2Ryb3Bkb3duTWF4SGVpZ2h0XT1cInNlbGVjdEZpZWxkLmRyb3Bkb3duTWF4SGVpZ2h0IHx8IFNlbGVjdERlZmF1bHRzLmRyb3Bkb3duTWF4SGVpZ2h0XCJcbiAgICAgICAgICAgIFt0eXBlYWhlYWREZWJvdW5jZV09XCJzZWxlY3RGaWVsZC50eXBlYWhlYWREZWJvdW5jZSB8fCBTZWxlY3REZWZhdWx0cy50eXBlYWhlYWREZWJvdW5jZVwiXG4gICAgICAgICAgICBbc2hvdWxkQXV0b1NlYXJjaF09XCJzZWxlY3RGaWVsZC5zaG91bGRBdXRvU2VhcmNoIHx8IFNlbGVjdERlZmF1bHRzLnNob3VsZEF1dG9TZWFyY2hcIlxuICAgICAgICAgICAgW3Nob3VsZENsb3NlT25PdXRzaWRlQ2xpY2tdPVwic2VsZWN0RmllbGQuc2hvdWxkQ2xvc2VPbk91dHNpZGVDbGljayB8fCBTZWxlY3REZWZhdWx0cy5zaG91bGRDbG9zZU9uT3V0c2lkZUNsaWNrXCJcbiAgICAgICAgICAgIChzZWxlY3RlZEl0ZW0pPVwiZm9ybUNvbnRyb2wuc2V0VmFsdWUoJGV2ZW50Py52YWx1ZSlcIj48L3VwZC1zZWxlY3Q+XG4gICAgfVxuICAgIEBjYXNlIChEeW5hbWljRmllbGRUeXBlLlNlbGVjdE11bHRpcGxlKSB7XG4gICAgICAgIDx1cGQtc2VsZWN0LW11bHRpcGxlIFtuYW1lXT1cImZpZWxkKCkubmFtZVwiIFtsYWJlbF09XCJmaWVsZCgpLmxhYmVsXCIgW2hpbnRdPVwiZmllbGQoKS5oaW50XCJcbiAgICAgICAgICAgIFtoaW50QXNUb29sdGlwXT1cImZpZWxkKCkuaGludEFzVG9vbHRpcCB8fCBmYWxzZVwiIFt2YWxpZGF0aW9uU3RhdHVzXT1cInZhbGlkYXRpb25TdGF0dXNcIlxuICAgICAgICAgICAgW3ZhbGlkYXRpb25TdGF0dXNEZXNjcmlwdGlvbnNdPVwidmFsaWRhdGlvblN0YXR1c0Rlc2NyaXB0aW9uc1wiIFtpc0Rpc2FibGVkXT1cImZpZWxkKCkuaXNEaXNhYmxlZCB8fCBmYWxzZVwiXG4gICAgICAgICAgICBbaXRlbXNdPVwic2VsZWN0RmllbGQuaXRlbXNcIiBbbGF5b3V0XT1cImxheW91dCgpXCIgW2xhYmVsQ29sU2l6ZV09XCJmaWVsZCgpLmxhYmVsQ29sU2l6ZVwiIFtzdG9yZV09XCJzZWxlY3RGaWVsZC5zdG9yZSFcIlxuICAgICAgICAgICAgW29ic2VydmFibGVdPVwic2VsZWN0RmllbGQub2JzZXJ2YWJsZVwiIFtpdGVtS2V5XT1cInNlbGVjdEZpZWxkLml0ZW1LZXlcIiBbaXRlbVZhbHVlXT1cInNlbGVjdEZpZWxkLml0ZW1WYWx1ZVwiXG4gICAgICAgICAgICBbZHJvcGRvd25NYXhIZWlnaHRdPVwic2VsZWN0RmllbGQuZHJvcGRvd25NYXhIZWlnaHQgfHwgU2VsZWN0RGVmYXVsdHMuZHJvcGRvd25NYXhIZWlnaHRcIlxuICAgICAgICAgICAgW3R5cGVhaGVhZERlYm91bmNlXT1cInNlbGVjdEZpZWxkLnR5cGVhaGVhZERlYm91bmNlIHx8IFNlbGVjdERlZmF1bHRzLnR5cGVhaGVhZERlYm91bmNlXCJcbiAgICAgICAgICAgIFtzaG91bGRBdXRvU2VhcmNoXT1cInNlbGVjdEZpZWxkLnNob3VsZEF1dG9TZWFyY2ggfHwgU2VsZWN0RGVmYXVsdHMuc2hvdWxkQXV0b1NlYXJjaFwiXG4gICAgICAgICAgICBbc2hvdWxkQ2xvc2VPbk91dHNpZGVDbGlja109XCJzZWxlY3RGaWVsZC5zaG91bGRDbG9zZU9uT3V0c2lkZUNsaWNrIHx8IFNlbGVjdERlZmF1bHRzLnNob3VsZENsb3NlT25PdXRzaWRlQ2xpY2tcIlxuICAgICAgICAgICAgKHNlbGVjdGVkSWRzKT1cImZvcm1Db250cm9sLnNldFZhbHVlKCRldmVudClcIj48L3VwZC1zZWxlY3QtbXVsdGlwbGU+XG4gICAgfVxuICAgIEBjYXNlIChEeW5hbWljRmllbGRUeXBlLkxhYmVsKSB7XG4gICAgICAgIDxsYWJlbCBjbGFzcz1cImZvcm0tbGFiZWxcIj57eyBnZXRUZXh0KGZpZWxkKCkubGFiZWwpIH19PC9sYWJlbD5cbiAgICB9XG4gICAgQGNhc2UgKER5bmFtaWNGaWVsZFR5cGUuVGV4dEFyZWEpIHtcbiAgICAgICAgPHVwZC10ZXh0YXJlYSBbbmFtZV09XCJmaWVsZCgpLm5hbWVcIiBbbGFiZWxdPVwiZmllbGQoKS5sYWJlbFwiIFtwbGFjZWhvbGRlcl09XCJmaWVsZCgpLnBsYWNlaG9sZGVyXCIgW2hpbnRdPVwiZmllbGQoKS5oaW50XCJcbiAgICAgICAgICAgIFtoaW50QXNUb29sdGlwXT1cImZpZWxkKCkuaGludEFzVG9vbHRpcCB8fCBmYWxzZVwiIFt2YWxpZGF0aW9uU3RhdHVzXT1cInZhbGlkYXRpb25TdGF0dXNcIlxuICAgICAgICAgICAgW3ZhbGlkYXRpb25TdGF0dXNEZXNjcmlwdGlvbnNdPVwidmFsaWRhdGlvblN0YXR1c0Rlc2NyaXB0aW9uc1wiIFtpc0Rpc2FibGVkXT1cImZpZWxkKCkuaXNEaXNhYmxlZCB8fCBmYWxzZVwiXG4gICAgICAgICAgICBbdmFsdWVdPVwiZm9ybUNvbnRyb2wudmFsdWVcIiBbY3VzdG9tQ2xhc3Nlc109XCJ0ZXh0YXJlYUZpZWxkLmN1c3RvbUNsYXNzZXNcIiBbd3JhcHBlckNsYXNzZXNdPVwidGV4dGFyZWFGaWVsZC53cmFwcGVyQ2xhc3Nlc1wiXG4gICAgICAgICAgICBbbWF4TGVuZ3RoXT1cInRleHRhcmVhRmllbGQubWF4TGVuZ3RoXCIgW3Jvd3NdPVwidGV4dGFyZWFGaWVsZC5yb3dzXCJcbiAgICAgICAgICAgIFtkaXNwbGF5Q2hhcmFjdGVyc0NvdW50XT1cInRleHRhcmVhRmllbGQuZGlzcGxheUNoYXJhY3RlcnNDb3VudCB8fCBmYWxzZVwiPjwvdXBkLXRleHRhcmVhPlxuICAgIH1cbiAgICBAY2FzZSAoRHluYW1pY0ZpZWxkVHlwZS5GaWxlVXBsb2FkKSB7XG4gICAgICAgIDx1cGQtZmlsZS11cGxvYWQgW25hbWVdPVwiZmllbGQoKS5uYW1lXCIgW2xhYmVsXT1cImZpZWxkKCkubGFiZWxcIiBbaGludF09XCJmaWVsZCgpLmhpbnRcIiBbaXNEaXNhYmxlZF09XCJmaWVsZCgpLmlzRGlzYWJsZWQgfHwgZmFsc2VcIlxuICAgICAgICAgICAgW2hpbnRBc1Rvb2x0aXBdPVwiZmllbGQoKS5oaW50QXNUb29sdGlwIHx8IGZhbHNlXCIgW3ZhbGlkYXRpb25TdGF0dXNdPVwidmFsaWRhdGlvblN0YXR1c1wiIFtmaWxlTmFtZV09XCJmaWxlTmFtZUNvbnRyb2w/LnZhbHVlXCJcbiAgICAgICAgICAgIFt2YWxpZGF0aW9uU3RhdHVzRGVzY3JpcHRpb25zXT1cInZhbGlkYXRpb25TdGF0dXNEZXNjcmlwdGlvbnNcIiBbYWxsb3dGaWxlc0Ryb3BdPVwiZmlsZVVwbG9hZEZpZWxkLmFsbG93RmlsZXNEcm9wIHx8IGZhbHNlXCJcbiAgICAgICAgICAgIFt0aXRsZV09XCJmaWxlVXBsb2FkRmllbGQudGl0bGVcIiBbbGFiZWxDb2xTaXplXT1cImZpZWxkKCkubGFiZWxDb2xTaXplXCIgW21pbkZpbGVTaXplXT1cImZpbGVVcGxvYWRGaWVsZC5taW5GaWxlU2l6ZVwiXG4gICAgICAgICAgICBbaXNNdWx0aXBsZV09XCJmaWxlVXBsb2FkRmllbGQuaXNNdWx0aXBsZSB8fCBmYWxzZVwiIFthbGxvd2VkRXh0ZW5zaW9uc109XCJmaWxlVXBsb2FkRmllbGQuYWxsb3dlZEV4dGVuc2lvbnMgfHwgJyonXCJcbiAgICAgICAgICAgIFttYXhGaWxlU2l6ZV09XCJmaWxlVXBsb2FkRmllbGQubWF4RmlsZVNpemVcIiBbbGF5b3V0XT1cImxheW91dCgpXCIgKGZpbGVDaGFuZ2VkKT1cImhhbmRsZUZpbGVTZWxlY3RlZCgkZXZlbnQpXCI+PC91cGQtZmlsZS11cGxvYWQ+XG4gICAgfVxufVxuIl19
122
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHluYW1pYy1maWVsZC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvZm9ybS9zcmMvY29tcG9uZW50cy9keW5hbWljLWZpZWxkL2R5bmFtaWMtZmllbGQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL2Zvcm0vc3JjL2NvbXBvbmVudHMvZHluYW1pYy1maWVsZC9keW5hbWljLWZpZWxkLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQVUsV0FBVyxFQUFFLE1BQU0sRUFBZSxLQUFLLEVBQUUsTUFBTSxFQUFFLFlBQVksRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUVqSCxPQUFPLEVBQWEsV0FBVyxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBRXJELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUNuRCxPQUFPLEVBQUUsZ0JBQWdCLEVBQWdELE1BQU0sb0JBQW9CLENBQUM7QUFDcEcsT0FBTyxFQUFFLFFBQVEsSUFBSSxjQUFjLEVBQUUsTUFBTSx5Q0FBeUMsQ0FBQztBQUtyRixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDekQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sdUNBQXVDLENBQUM7Ozs7Ozs7O0FBZXpFLE1BQU0sT0FBTyxxQkFBc0IsU0FBUSxhQUFhO0lBTHhEOztRQU0wQixtQkFBYyxHQUFHLEVBQUUsQ0FBQztRQUV2QixlQUFVLEdBQUcsSUFBSSxZQUFZLEVBQVEsQ0FBQztRQUV6RCxxQkFBZ0IsR0FBRyxnQkFBZ0IsQ0FBQztRQUNwQyxtQkFBYyxHQUFHLGNBQWMsQ0FBQztRQUVoQyxjQUFTLEdBQTJCLEtBQUssQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUNyRCxVQUFLLEdBQW1DLEtBQUssQ0FBQyxR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QkFBbUI7UUFDdkIsSUFBSSxDQUFDLGNBQWMsR0FBRyxnQkFBZ0IsQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ2hGLENBQUM7OEdBekdRLHFCQUFxQjtrR0FBckIscUJBQXFCLGlqQkMzQmxDLDAwUEF1R0E7OzJGRDVFYSxxQkFBcUI7a0JBTGpDLFNBQVM7K0JBQ0ksbUJBQW1COzhCQUtQLGNBQWM7c0JBQW5DLFdBQVc7dUJBQUMsT0FBTztnQkFFRCxVQUFVO3NCQUE1QixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQsIEhvc3RCaW5kaW5nLCBpbmplY3QsIElucHV0U2lnbmFsLCBpbnB1dCwgT3V0cHV0LCBFdmVudEVtaXR0ZXIgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZvcm1Hcm91cCwgRm9ybUNvbnRyb2wgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBUZXh0TW9kZWwsIFRleHRTZXJ2aWNlIH0gZnJvbSAnQHVwZGV2cy9zZGsnO1xuaW1wb3J0IHsgT3B0aW9uYWxUeXBlIH0gZnJvbSAnQHVwZGV2cy9zZGsvdHlwZXMnO1xuaW1wb3J0IHsgQmFzZUNvbXBvbmVudCB9IGZyb20gJ0B1cGRldnMvc2RrL2xheW91dCc7XG5pbXBvcnQgeyBDb2x1bW5TaXplSGVscGVyLCBIb3Jpem9udGFsVmVydGljYWxUeXBlLCBWYWxpZGF0aW9uU3RhdHVzVHlwZSB9IGZyb20gJ0B1cGRldnMvY29tcG9uZW50cyc7XG5pbXBvcnQgeyBEZWZhdWx0cyBhcyBTZWxlY3REZWZhdWx0cyB9IGZyb20gJ0B1cGRldnMvY29tcG9uZW50cy9mb3JtLWNvbnRyb2xzL3NlbGVjdCc7XG5pbXBvcnQgeyBGaWxlVXBsb2FkQ2hhbmdlZEV2ZW50IH0gZnJvbSAnQHVwZGV2cy9jb21wb25lbnRzL2Zvcm0tY29udHJvbHMvZmlsZS11cGxvYWQnO1xuXG5pbXBvcnQgeyBGaWxlVXBsb2FkRmllbGRNb2RlbCB9IGZyb20gJy4uLy4uL21vZGVscy9maWxlLXVwbG9hZC1maWVsZC5tb2RlbCc7XG5pbXBvcnQgeyBJbnB1dEZpZWxkTW9kZWwgfSBmcm9tICcuLi8uLi9tb2RlbHMvaW5wdXQtZmllbGQubW9kZWwnO1xuaW1wb3J0IHsgRXJyb3JzSGVscGVyIH0gZnJvbSAnLi4vLi4vdG9vbHMvZXJyb3JzLWhlbHBlcic7XG5pbXBvcnQgeyBEeW5hbWljRmllbGRUeXBlIH0gZnJvbSAnLi4vLi4vbW9kZWxzL2VudW1zL2R5bmFtaWMtZmllbGQudHlwZSc7XG5pbXBvcnQgeyBEeW5hbWljRmllbGRNb2RlbCB9IGZyb20gJy4uLy4uL21vZGVscy9keW5hbWljLWZpZWxkLm1vZGVsJztcbmltcG9ydCB7IENoZWNrYm94RmllbGRNb2RlbCB9IGZyb20gJy4uLy4uL21vZGVscy9jaGVja2JveC1maWVsZC5tb2RlbCc7XG5pbXBvcnQgeyBSYWRpb0ZpZWxkTW9kZWwgfSBmcm9tICcuLi8uLi9tb2RlbHMvcmFkaW8tZmllbGQubW9kZWwnO1xuaW1wb3J0IHsgU2VsZWN0RmllbGRNb2RlbCB9IGZyb20gJy4uLy4uL21vZGVscy9zZWxlY3QtZmllbGQubW9kZWwnO1xuaW1wb3J0IHsgU2luZ2xlU2VsZWN0RmllbGRNb2RlbCB9IGZyb20gJy4uLy4uL21vZGVscy9zaW5nbGUtc2VsZWN0LWZpZWxkLm1vZGVsJztcbmltcG9ydCB7IENoZWNrYm94R3JvdXBGaWVsZE1vZGVsIH0gZnJvbSAnLi4vLi4vbW9kZWxzL2NoZWNrYm94LWdyb3VwLWZpZWxkLm1vZGVsJztcbmltcG9ydCB7IFJhZGlvR3JvdXBGaWVsZE1vZGVsIH0gZnJvbSAnLi4vLi4vbW9kZWxzL3JhZGlvLWdyb3VwLWZpZWxkLm1vZGVsJztcbmltcG9ydCB7IFRleHRhcmVhRmllbGRNb2RlbCB9IGZyb20gJy4uLy4uL21vZGVscy90ZXh0YXJlYS1maWVsZC5tb2RlbCc7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAndXBkLWR5bmFtaWMtZmllbGQnLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9keW5hbWljLWZpZWxkLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybDogJy4vZHluYW1pYy1maWVsZC5jb21wb25lbnQuc2Nzcydcbn0pXG5leHBvcnQgY2xhc3MgRHluYW1pY0ZpZWxkQ29tcG9uZW50IGV4dGVuZHMgQmFzZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gICAgQEhvc3RCaW5kaW5nKCdjbGFzcycpIHdyYXBwZXJDbGFzc2VzID0gJyc7XG5cbiAgICBAT3V0cHV0KCkgcmVhZG9ubHkgc3VibWl0Rm9ybSA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcblxuICAgIER5bmFtaWNGaWVsZFR5cGUgPSBEeW5hbWljRmllbGRUeXBlO1xuICAgIFNlbGVjdERlZmF1bHRzID0gU2VsZWN0RGVmYXVsdHM7XG5cbiAgICBmb3JtR3JvdXA6IElucHV0U2lnbmFsPEZvcm1Hcm91cD4gPSBpbnB1dC5yZXF1aXJlZCgpO1xuICAgIGZpZWxkOiBJbnB1dFNpZ25hbDxEeW5hbWljRmllbGRNb2RlbD4gPSBpbnB1dC5yZXF1aXJlZCgpO1xuICAgIGxheW91dDogSW5wdXRTaWduYWw8SG9yaXpvbnRhbFZlcnRpY2FsVHlwZT4gPSBpbnB1dC5yZXF1aXJlZCgpO1xuICAgIHZhbGlkYXRpb25TdGF0dXM/OiBWYWxpZGF0aW9uU3RhdHVzVHlwZTtcbiAgICB2YWxpZGF0aW9uU3RhdHVzRGVzY3JpcHRpb25zOiBUZXh0TW9kZWxbXSA9IFtdO1xuICAgIGdldCBmb3JtQ29udHJvbCgpOiBGb3JtQ29udHJvbCB7XG4gICAgICAgIHJldHVybiB0aGlzLmZvcm1Hcm91cCgpLmNvbnRyb2xzW3RoaXMuZmllbGQoKS5uYW1lXSBhcyBGb3JtQ29udHJvbDtcbiAgICB9XG4gICAgZ2V0IGlucHV0RmllbGQoKTogSW5wdXRGaWVsZE1vZGVsIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZmllbGQoKSBhcyBJbnB1dEZpZWxkTW9kZWw7XG4gICAgfVxuICAgIGdldCBjaGVja2JveEZpZWxkKCk6IENoZWNrYm94RmllbGRNb2RlbCB7XG4gICAgICAgIHJldHVybiB0aGlzLmZpZWxkKCkgYXMgQ2hlY2tib3hGaWVsZE1vZGVsO1xuICAgIH1cbiAgICBnZXQgY2hlY2tib3hHcm91cEZpZWxkKCk6IENoZWNrYm94R3JvdXBGaWVsZE1vZGVsIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZmllbGQoKSBhcyBDaGVja2JveEdyb3VwRmllbGRNb2RlbDtcbiAgICB9XG4gICAgZ2V0IHJhZGlvRmllbGQoKTogQ2hlY2tib3hGaWVsZE1vZGVsIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZmllbGQoKSBhcyBSYWRpb0ZpZWxkTW9kZWw7XG4gICAgfVxuICAgIGdldCByYWRpb0dyb3VwRmllbGQoKTogUmFkaW9Hcm91cEZpZWxkTW9kZWwge1xuICAgICAgICByZXR1cm4gdGhpcy5maWVsZCgpIGFzIFJhZGlvR3JvdXBGaWVsZE1vZGVsO1xuICAgIH1cbiAgICBnZXQgc2VsZWN0RmllbGQoKTogU2VsZWN0RmllbGRNb2RlbCB7XG4gICAgICAgIHJldHVybiB0aGlzLmZpZWxkKCkgYXMgU2VsZWN0RmllbGRNb2RlbDtcbiAgICB9XG4gICAgZ2V0IHNpbmdsZVNlbGVjdEZpZWxkKCk6IFNpbmdsZVNlbGVjdEZpZWxkTW9kZWwge1xuICAgICAgICByZXR1cm4gdGhpcy5maWVsZCgpIGFzIFNpbmdsZVNlbGVjdEZpZWxkTW9kZWw7XG4gICAgfVxuICAgIGdldCB0ZXh0YXJlYUZpZWxkKCk6IFRleHRhcmVhRmllbGRNb2RlbCB7XG4gICAgICAgIHJldHVybiB0aGlzLmZpZWxkKCkgYXMgVGV4dGFyZWFGaWVsZE1vZGVsO1xuICAgIH1cbiAgICBnZXQgZmlsZVVwbG9hZEZpZWxkKCk6IEZpbGVVcGxvYWRGaWVsZE1vZGVsIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZmllbGQoKSBhcyBGaWxlVXBsb2FkRmllbGRNb2RlbDtcbiAgICB9XG4gICAgZ2V0IGNoZWNrYm94R3JvdXBPcHRpb25zS2V5cygpOiBzdHJpbmdbXSB7XG4gICAgICAgIHJldHVybiBPYmplY3Qua2V5cyh0aGlzLmNoZWNrYm94R3JvdXBGaWVsZC5vcHRpb25zKTtcbiAgICB9XG4gICAgZ2V0IHJhZGlvR3JvdXBPcHRpb25zS2V5cygpOiBzdHJpbmdbXSB7XG4gICAgICAgIHJldHVybiBPYmplY3Qua2V5cyh0aGlzLnJhZGlvR3JvdXBGaWVsZC5vcHRpb25zKTtcbiAgICB9XG4gICAgZ2V0IGZpbGVOYW1lQ29udHJvbCgpOiBPcHRpb25hbFR5cGU8Rm9ybUNvbnRyb2w+IHtcbiAgICAgICAgcmV0dXJuICEhdGhpcy5maWxlVXBsb2FkRmllbGQuZmlsZU5hbWVGb3JtUHJvcGVydHlcbiAgICAgICAgICAgID8gdGhpcy5mb3JtR3JvdXAoKS5jb250cm9sc1t0aGlzLmZpbGVVcGxvYWRGaWVsZC5maWxlTmFtZUZvcm1Qcm9wZXJ0eV0gYXMgRm9ybUNvbnRyb2xcbiAgICAgICAgICAgIDogdW5kZWZpbmVkO1xuICAgIH1cblxuICAgIHJlYWRvbmx5IHRleHRTZXJ2aWNlID0gaW5qZWN0KFRleHRTZXJ2aWNlKTtcblxuICAgIHByaXZhdGUgcmVhZG9ubHkgZXJyb3JzSGVscGVyID0gaW5qZWN0KEVycm9yc0hlbHBlcik7XG5cbiAgICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAgICAgY29uc3Qgc3RhdHVzU3ViID0gdGhpcy5mb3JtQ29udHJvbC5zdGF0dXNDaGFuZ2VzLnN1YnNjcmliZShzdGF0dXMgPT4ge1xuICAgICAgICAgICAgaWYgKHN0YXR1cyA9PT0gJ0lOVkFMSUQnKSB7XG4gICAgICAgICAgICAgICAgdGhpcy52YWxpZGF0aW9uU3RhdHVzRGVzY3JpcHRpb25zID0gdGhpcy5lcnJvcnNIZWxwZXIuZ2V0TWVzc2FnZXModGhpcy5mb3JtQ29udHJvbClcbiAgICAgICAgICAgICAgICAgICAgLm1hcCh0ID0+ICh7IHRleHQ6IHQsIGlzVHJhbnNsYXRlZDogdHJ1ZSB9KSk7XG4gICAgICAgICAgICAgICAgdGhpcy52YWxpZGF0aW9uU3RhdHVzID0gJ2ludmFsaWQnO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICB0aGlzLnZhbGlkYXRpb25TdGF0dXNEZXNjcmlwdGlvbnMgPSBbXTtcbiAgICAgICAgICAgICAgICB0aGlzLnZhbGlkYXRpb25TdGF0dXMgPSB0aGlzLmZpZWxkKCkuc2hvd1ZhbGlkU3RhdHVzID8gJ3ZhbGlkJyA6IHVuZGVmaW5lZDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG5cbiAgICAgICAgdGhpcy5zZXR1cFdyYXBwZXJDbGFzc2VzKCk7XG4gICAgICAgIHRoaXMuYWRkU3Vic2NyaXB0aW9ucyhzdGF0dXNTdWIpO1xuICAgIH1cblxuICAgIG9uQmx1cigpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuZmllbGQoKS5zaG91bGRWYWxpZGF0ZU9uQmx1cikge1xuICAgICAgICAgICAgdGhpcy5mb3JtQ29udHJvbC51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBnZXRUZXh0KHRleHRNb2RlbD86IFRleHRNb2RlbCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiB0aGlzLnRleHRTZXJ2aWNlLmdldFRleHQodGV4dE1vZGVsKTtcbiAgICB9XG5cbiAgICBnZXRPcHRpb25EZXNjcmlwdGlvbihrZXk6IHN0cmluZywgdHlwZTogJ2NoZWNrYm94JyB8ICdyYWRpbycpOiBPcHRpb25hbFR5cGU8VGV4dE1vZGVsPiB7XG4gICAgICAgIHJldHVybiB0eXBlID09PSAnY2hlY2tib3gnID8gdGhpcy5jaGVja2JveEdyb3VwRmllbGQub3B0aW9uc1trZXldIDogdGhpcy5yYWRpb0dyb3VwRmllbGQub3B0aW9uc1trZXldO1xuICAgIH1cblxuICAgIGhhbmRsZUZpbGVTZWxlY3RlZChldmVudD86IEZpbGVVcGxvYWRDaGFuZ2VkRXZlbnQpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5mb3JtQ29udHJvbC5zZXRWYWx1ZSghIXRoaXMuZmlsZVVwbG9hZEZpZWxkLnNhdmVBc0RhdGFVcmwgPyBldmVudD8uZGF0YVVybCA6IGV2ZW50Py5maWxlKTtcblxuICAgICAgICBpZiAoISF0aGlzLmZpbGVVcGxvYWRGaWVsZC5maWxlTmFtZUZvcm1Qcm9wZXJ0eSkge1xuICAgICAgICAgICAgdGhpcy5maWxlTmFtZUNvbnRyb2whLnNldFZhbHVlKGV2ZW50Py5maWxlLm5hbWUpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgb25JbnB1dEVudGVyKCk6IHZvaWQge1xuICAgICAgICBpZiAoISF0aGlzLmlucHV0RmllbGQuc2hvdWxkU3VibWl0T25FbnRlcikge1xuICAgICAgICAgICAgdGhpcy5zdWJtaXRGb3JtLm5leHQoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgc2V0dXBXcmFwcGVyQ2xhc3NlcygpOiB2b2lkIHtcbiAgICAgICAgdGhpcy53cmFwcGVyQ2xhc3NlcyA9IENvbHVtblNpemVIZWxwZXIuZ2V0U2l6ZUNsYXNzZXModGhpcy5maWVsZCgpLmNvbFNpemUpO1xuICAgIH1cbn1cbiIsIkBzd2l0Y2ggKGZpZWxkKCkudHlwZSkge1xuICAgIEBjYXNlIChEeW5hbWljRmllbGRUeXBlLklucHV0KSB7XG4gICAgICAgIDx1cGQtaW5wdXQgW25hbWVdPVwiZmllbGQoKS5uYW1lXCIgW2xhYmVsXT1cImZpZWxkKCkubGFiZWxcIiBbcGxhY2Vob2xkZXJdPVwiZmllbGQoKS5wbGFjZWhvbGRlclwiIFtoaW50XT1cImZpZWxkKCkuaGludFwiXG4gICAgICAgICAgICBbaGludEFzVG9vbHRpcF09XCJmaWVsZCgpLmhpbnRBc1Rvb2x0aXAgfHwgZmFsc2VcIiBbdmFsaWRhdGlvblN0YXR1c109XCJ2YWxpZGF0aW9uU3RhdHVzXCJcbiAgICAgICAgICAgIFt2YWxpZGF0aW9uU3RhdHVzRGVzY3JpcHRpb25zXT1cInZhbGlkYXRpb25TdGF0dXNEZXNjcmlwdGlvbnNcIiBbbGF5b3V0XT1cImxheW91dCgpXCIgW2lzRGlzYWJsZWRdPVwiZmllbGQoKS5pc0Rpc2FibGVkIHx8IGZhbHNlXCJcbiAgICAgICAgICAgIFt0eXBlXT1cImlucHV0RmllbGQuaW5wdXRUeXBlIHx8ICd0ZXh0J1wiIFtsYWJlbENvbFNpemVdPVwiZmllbGQoKS5sYWJlbENvbFNpemVcIiBbdmFsdWVdPVwiZm9ybUNvbnRyb2wudmFsdWVcIlxuICAgICAgICAgICAgKHZhbHVlQ2hhbmdlKT1cImZvcm1Db250cm9sLnNldFZhbHVlKCRldmVudClcIiAoYmx1cnJlZCk9XCJvbkJsdXIoKVwiIChrZXlVcEVudGVyKT1cIm9uSW5wdXRFbnRlcigpXCI+XG4gICAgICAgICAgICBAaWYgKCEhaW5wdXRGaWVsZC5wcmVmaXgpIHtcbiAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgdXBkSW5wdXRQcmVwZW5kPlxuICAgICAgICAgICAgICAgICAgICB7eyB0ZXh0U2VydmljZS5nZXRUZXh0KGlucHV0RmllbGQucHJlZml4KSB9fVxuICAgICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIEBpZiAoISFpbnB1dEZpZWxkLnN1ZmZpeCkge1xuICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSB1cGRJbnB1dEFwcGVuZD5cbiAgICAgICAgICAgICAgICAgICAge3sgdGV4dFNlcnZpY2UuZ2V0VGV4dChpbnB1dEZpZWxkLnN1ZmZpeCkgfX1cbiAgICAgICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICAgICAgfVxuICAgICAgICA8L3VwZC1pbnB1dD5cbiAgICB9XG4gICAgQGNhc2UgKER5bmFtaWNGaWVsZFR5cGUuQ2hlY2tib3gpIHtcbiAgICAgICAgPHVwZC1jaGVja2JveCBbbmFtZV09XCJmaWVsZCgpLm5hbWVcIiBbbGFiZWxdPVwiZmllbGQoKS5sYWJlbFwiIFtoaW50XT1cImZpZWxkKCkuaGludFwiIFtoaW50QXNUb29sdGlwXT1cImZpZWxkKCkuaGludEFzVG9vbHRpcCB8fCBmYWxzZVwiXG4gICAgICAgICAgICBbdmFsaWRhdGlvblN0YXR1c109XCJ2YWxpZGF0aW9uU3RhdHVzXCIgW3ZhbGlkYXRpb25TdGF0dXNEZXNjcmlwdGlvbnNdPVwidmFsaWRhdGlvblN0YXR1c0Rlc2NyaXB0aW9uc1wiIFt2YWx1ZV09XCJ0cnVlXCJcbiAgICAgICAgICAgIFtpc0Rpc2FibGVkXT1cImZpZWxkKCkuaXNEaXNhYmxlZCB8fCBmYWxzZVwiIFtpc0NoZWNrZWRdPVwiZm9ybUNvbnRyb2wudmFsdWVcIiBbaXNJbmxpbmVdPVwiY2hlY2tib3hGaWVsZC5pc0lubGluZSB8fCBmYWxzZVwiXG4gICAgICAgICAgICBbaXNTd2l0Y2hdPVwiY2hlY2tib3hGaWVsZC5pc1N3aXRjaCB8fCBmYWxzZVwiIChjaGFuZ2VkKT1cImZvcm1Db250cm9sLnNldFZhbHVlKCRldmVudClcIj48L3VwZC1jaGVja2JveD5cbiAgICB9XG4gICAgQGNhc2UgKER5bmFtaWNGaWVsZFR5cGUuQ2hlY2tib3hHcm91cCkge1xuICAgICAgICBAaWYgKCEhZmllbGQoKS5sYWJlbCkge1xuICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwiZm9ybS1sYWJlbFwiPnt7IGdldFRleHQoZmllbGQoKS5sYWJlbCkgfX08L2xhYmVsPlxuICAgICAgICB9XG5cbiAgICAgICAgQGZvciAob3B0aW9uIG9mIGNoZWNrYm94R3JvdXBPcHRpb25zS2V5czsgdHJhY2sgb3B0aW9uKSB7XG4gICAgICAgICAgICA8dXBkLWNoZWNrYm94IFtuYW1lXT1cImZpZWxkKCkubmFtZVwiIFtsYWJlbF09XCJnZXRPcHRpb25EZXNjcmlwdGlvbihvcHRpb24sICdjaGVja2JveCcpXCIgW2hpbnRdPVwiZmllbGQoKS5oaW50XCJcbiAgICAgICAgICAgICAgICBbaGludEFzVG9vbHRpcF09XCJmaWVsZCgpLmhpbnRBc1Rvb2x0aXAgfHwgZmFsc2VcIiBbdmFsaWRhdGlvblN0YXR1c109XCJ2YWxpZGF0aW9uU3RhdHVzXCJcbiAgICAgICAgICAgICAgICBbdmFsaWRhdGlvblN0YXR1c0Rlc2NyaXB0aW9uc109XCJ2YWxpZGF0aW9uU3RhdHVzRGVzY3JpcHRpb25zXCIgW3ZhbHVlXT1cIm9wdGlvblwiIFtpc0Rpc2FibGVkXT1cImZpZWxkKCkuaXNEaXNhYmxlZCB8fCBmYWxzZVwiXG4gICAgICAgICAgICAgICAgW2lzQ2hlY2tlZF09XCJmb3JtQ29udHJvbC52YWx1ZVwiIFtpc0lubGluZV09XCJjaGVja2JveEZpZWxkLmlzSW5saW5lIHx8IGZhbHNlXCIgW2lzU3dpdGNoXT1cImNoZWNrYm94RmllbGQuaXNTd2l0Y2ggfHwgZmFsc2VcIlxuICAgICAgICAgICAgICAgIChjaGFuZ2VkKT1cImZvcm1Db250cm9sLnNldFZhbHVlKG9wdGlvbilcIj48L3VwZC1jaGVja2JveD5cbiAgICAgICAgfVxuICAgIH1cbiAgICBAY2FzZSAoRHluYW1pY0ZpZWxkVHlwZS5SYWRpbykge1xuICAgICAgICA8dXBkLXJhZGlvIFtuYW1lXT1cImZpZWxkKCkubmFtZVwiIFtsYWJlbF09XCJmaWVsZCgpLmxhYmVsXCIgW2hpbnRdPVwiZmllbGQoKS5oaW50XCIgW2hpbnRBc1Rvb2x0aXBdPVwiZmllbGQoKS5oaW50QXNUb29sdGlwIHx8IGZhbHNlXCJcbiAgICAgICAgICAgIFt2YWxpZGF0aW9uU3RhdHVzXT1cInZhbGlkYXRpb25TdGF0dXNcIiBbdmFsaWRhdGlvblN0YXR1c0Rlc2NyaXB0aW9uc109XCJ2YWxpZGF0aW9uU3RhdHVzRGVzY3JpcHRpb25zXCIgW3ZhbHVlXT1cInRydWVcIlxuICAgICAgICAgICAgW2lzQ2hlY2tlZF09XCJmb3JtQ29udHJvbC52YWx1ZVwiIFtpc0Rpc2FibGVkXT1cImZpZWxkKCkuaXNEaXNhYmxlZCB8fCBmYWxzZVwiIFtpc0lubGluZV09XCJyYWRpb0ZpZWxkLmlzSW5saW5lIHx8IGZhbHNlXCJcbiAgICAgICAgICAgIChzZWxlY3RlZCk9XCJmb3JtQ29udHJvbC5zZXRWYWx1ZSgkZXZlbnQpXCI+XG4gICAgICAgIDwvdXBkLXJhZGlvPlxuICAgIH1cbiAgICBAY2FzZSAoRHluYW1pY0ZpZWxkVHlwZS5SYWRpb0dyb3VwKSB7XG4gICAgICAgIEBpZiAoISFmaWVsZCgpLmxhYmVsKSB7XG4gICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJmb3JtLWxhYmVsXCI+e3sgZ2V0VGV4dChmaWVsZCgpLmxhYmVsKSB9fTwvbGFiZWw+XG4gICAgICAgIH1cblxuICAgICAgICBAZm9yIChvcHRpb24gb2YgcmFkaW9Hcm91cE9wdGlvbnNLZXlzOyB0cmFjayBvcHRpb24pIHtcbiAgICAgICAgICAgIDx1cGQtcmFkaW8gW25hbWVdPVwiZmllbGQoKS5uYW1lXCIgW2xhYmVsXT1cImdldE9wdGlvbkRlc2NyaXB0aW9uKG9wdGlvbiwgJ3JhZGlvJylcIiBbaGludF09XCJmaWVsZCgpLmhpbnRcIlxuICAgICAgICAgICAgICAgIFtoaW50QXNUb29sdGlwXT1cImZpZWxkKCkuaGludEFzVG9vbHRpcCB8fCBmYWxzZVwiIFt2YWxpZGF0aW9uU3RhdHVzXT1cInZhbGlkYXRpb25TdGF0dXNcIlxuICAgICAgICAgICAgICAgIFt2YWxpZGF0aW9uU3RhdHVzRGVzY3JpcHRpb25zXT1cInZhbGlkYXRpb25TdGF0dXNEZXNjcmlwdGlvbnNcIiBbdmFsdWVdPVwib3B0aW9uXCIgW2lzRGlzYWJsZWRdPVwiZmllbGQoKS5pc0Rpc2FibGVkIHx8IGZhbHNlXCJcbiAgICAgICAgICAgICAgICBbaXNDaGVja2VkXT1cImZvcm1Db250cm9sLnZhbHVlXCIgW2lzSW5saW5lXT1cImNoZWNrYm94RmllbGQuaXNJbmxpbmUgfHwgZmFsc2VcIlxuICAgICAgICAgICAgICAgIChzZWxlY3RlZCk9XCJmb3JtQ29udHJvbC5zZXRWYWx1ZShvcHRpb24pXCI+PC91cGQtcmFkaW8+XG4gICAgICAgIH1cbiAgICB9XG4gICAgQGNhc2UgKER5bmFtaWNGaWVsZFR5cGUuU2VsZWN0KSB7XG4gICAgICAgIDx1cGQtc2VsZWN0IFtuYW1lXT1cImZpZWxkKCkubmFtZVwiIFtsYWJlbF09XCJmaWVsZCgpLmxhYmVsXCIgW2hpbnRdPVwiZmllbGQoKS5oaW50XCIgW2hpbnRBc1Rvb2x0aXBdPVwiZmllbGQoKS5oaW50QXNUb29sdGlwIHx8IGZhbHNlXCJcbiAgICAgICAgICAgIFt2YWxpZGF0aW9uU3RhdHVzXT1cInZhbGlkYXRpb25TdGF0dXNcIiBbdmFsaWRhdGlvblN0YXR1c0Rlc2NyaXB0aW9uc109XCJ2YWxpZGF0aW9uU3RhdHVzRGVzY3JpcHRpb25zXCJcbiAgICAgICAgICAgIFt1c2VTeXN0ZW1TdHlsZV09XCJzaW5nbGVTZWxlY3RGaWVsZC51c2VTeXN0ZW1TdHlsZSB8fCBmYWxzZVwiIFtpc0Rpc2FibGVkXT1cImZpZWxkKCkuaXNEaXNhYmxlZCB8fCBmYWxzZVwiXG4gICAgICAgICAgICBbaXRlbXNdPVwic2VsZWN0RmllbGQuaXRlbXNcIiBbbGF5b3V0XT1cImxheW91dCgpXCIgW2xhYmVsQ29sU2l6ZV09XCJmaWVsZCgpLmxhYmVsQ29sU2l6ZVwiIFtzdG9yZV09XCJzZWxlY3RGaWVsZC5zdG9yZSFcIlxuICAgICAgICAgICAgW29ic2VydmFibGVdPVwic2VsZWN0RmllbGQub2JzZXJ2YWJsZVwiIFtpdGVtS2V5XT1cInNlbGVjdEZpZWxkLml0ZW1LZXlcIiBbaXRlbVZhbHVlXT1cInNlbGVjdEZpZWxkLml0ZW1WYWx1ZVwiXG4gICAgICAgICAgICBbZHJvcGRvd25NYXhIZWlnaHRdPVwic2VsZWN0RmllbGQuZHJvcGRvd25NYXhIZWlnaHQgfHwgU2VsZWN0RGVmYXVsdHMuZHJvcGRvd25NYXhIZWlnaHRcIlxuICAgICAgICAgICAgW3R5cGVhaGVhZERlYm91bmNlXT1cInNlbGVjdEZpZWxkLnR5cGVhaGVhZERlYm91bmNlIHx8IFNlbGVjdERlZmF1bHRzLnR5cGVhaGVhZERlYm91bmNlXCJcbiAgICAgICAgICAgIFtzaG91bGRBdXRvU2VhcmNoXT1cInNlbGVjdEZpZWxkLnNob3VsZEF1dG9TZWFyY2ggfHwgU2VsZWN0RGVmYXVsdHMuc2hvdWxkQXV0b1NlYXJjaFwiXG4gICAgICAgICAgICBbc2hvdWxkQ2xvc2VPbk91dHNpZGVDbGlja109XCJzZWxlY3RGaWVsZC5zaG91bGRDbG9zZU9uT3V0c2lkZUNsaWNrIHx8IFNlbGVjdERlZmF1bHRzLnNob3VsZENsb3NlT25PdXRzaWRlQ2xpY2tcIlxuICAgICAgICAgICAgKHNlbGVjdGVkSXRlbSk9XCJmb3JtQ29udHJvbC5zZXRWYWx1ZSgkZXZlbnQ/LnZhbHVlKVwiPjwvdXBkLXNlbGVjdD5cbiAgICB9XG4gICAgQGNhc2UgKER5bmFtaWNGaWVsZFR5cGUuU2VsZWN0TXVsdGlwbGUpIHtcbiAgICAgICAgPHVwZC1zZWxlY3QtbXVsdGlwbGUgW25hbWVdPVwiZmllbGQoKS5uYW1lXCIgW2xhYmVsXT1cImZpZWxkKCkubGFiZWxcIiBbaGludF09XCJmaWVsZCgpLmhpbnRcIlxuICAgICAgICAgICAgW2hpbnRBc1Rvb2x0aXBdPVwiZmllbGQoKS5oaW50QXNUb29sdGlwIHx8IGZhbHNlXCIgW3ZhbGlkYXRpb25TdGF0dXNdPVwidmFsaWRhdGlvblN0YXR1c1wiXG4gICAgICAgICAgICBbdmFsaWRhdGlvblN0YXR1c0Rlc2NyaXB0aW9uc109XCJ2YWxpZGF0aW9uU3RhdHVzRGVzY3JpcHRpb25zXCIgW2lzRGlzYWJsZWRdPVwiZmllbGQoKS5pc0Rpc2FibGVkIHx8IGZhbHNlXCJcbiAgICAgICAgICAgIFtpdGVtc109XCJzZWxlY3RGaWVsZC5pdGVtc1wiIFtsYXlvdXRdPVwibGF5b3V0KClcIiBbbGFiZWxDb2xTaXplXT1cImZpZWxkKCkubGFiZWxDb2xTaXplXCIgW3N0b3JlXT1cInNlbGVjdEZpZWxkLnN0b3JlIVwiXG4gICAgICAgICAgICBbb2JzZXJ2YWJsZV09XCJzZWxlY3RGaWVsZC5vYnNlcnZhYmxlXCIgW2l0ZW1LZXldPVwic2VsZWN0RmllbGQuaXRlbUtleVwiIFtpdGVtVmFsdWVdPVwic2VsZWN0RmllbGQuaXRlbVZhbHVlXCJcbiAgICAgICAgICAgIFtkcm9wZG93bk1heEhlaWdodF09XCJzZWxlY3RGaWVsZC5kcm9wZG93bk1heEhlaWdodCB8fCBTZWxlY3REZWZhdWx0cy5kcm9wZG93bk1heEhlaWdodFwiXG4gICAgICAgICAgICBbdHlwZWFoZWFkRGVib3VuY2VdPVwic2VsZWN0RmllbGQudHlwZWFoZWFkRGVib3VuY2UgfHwgU2VsZWN0RGVmYXVsdHMudHlwZWFoZWFkRGVib3VuY2VcIlxuICAgICAgICAgICAgW3Nob3VsZEF1dG9TZWFyY2hdPVwic2VsZWN0RmllbGQuc2hvdWxkQXV0b1NlYXJjaCB8fCBTZWxlY3REZWZhdWx0cy5zaG91bGRBdXRvU2VhcmNoXCJcbiAgICAgICAgICAgIFtzaG91bGRDbG9zZU9uT3V0c2lkZUNsaWNrXT1cInNlbGVjdEZpZWxkLnNob3VsZENsb3NlT25PdXRzaWRlQ2xpY2sgfHwgU2VsZWN0RGVmYXVsdHMuc2hvdWxkQ2xvc2VPbk91dHNpZGVDbGlja1wiXG4gICAgICAgICAgICAoc2VsZWN0ZWRJZHMpPVwiZm9ybUNvbnRyb2wuc2V0VmFsdWUoJGV2ZW50KVwiPjwvdXBkLXNlbGVjdC1tdWx0aXBsZT5cbiAgICB9XG4gICAgQGNhc2UgKER5bmFtaWNGaWVsZFR5cGUuTGFiZWwpIHtcbiAgICAgICAgPGxhYmVsIGNsYXNzPVwiZm9ybS1sYWJlbFwiPnt7IGdldFRleHQoZmllbGQoKS5sYWJlbCkgfX08L2xhYmVsPlxuICAgIH1cbiAgICBAY2FzZSAoRHluYW1pY0ZpZWxkVHlwZS5UZXh0QXJlYSkge1xuICAgICAgICA8dXBkLXRleHRhcmVhIFtuYW1lXT1cImZpZWxkKCkubmFtZVwiIFtsYWJlbF09XCJmaWVsZCgpLmxhYmVsXCIgW3BsYWNlaG9sZGVyXT1cImZpZWxkKCkucGxhY2Vob2xkZXJcIiBbaGludF09XCJmaWVsZCgpLmhpbnRcIlxuICAgICAgICAgICAgW2hpbnRBc1Rvb2x0aXBdPVwiZmllbGQoKS5oaW50QXNUb29sdGlwIHx8IGZhbHNlXCIgW3ZhbGlkYXRpb25TdGF0dXNdPVwidmFsaWRhdGlvblN0YXR1c1wiXG4gICAgICAgICAgICBbdmFsaWRhdGlvblN0YXR1c0Rlc2NyaXB0aW9uc109XCJ2YWxpZGF0aW9uU3RhdHVzRGVzY3JpcHRpb25zXCIgW2lzRGlzYWJsZWRdPVwiZmllbGQoKS5pc0Rpc2FibGVkIHx8IGZhbHNlXCJcbiAgICAgICAgICAgIFt2YWx1ZV09XCJmb3JtQ29udHJvbC52YWx1ZVwiIFtjdXN0b21DbGFzc2VzXT1cInRleHRhcmVhRmllbGQuY3VzdG9tQ2xhc3Nlc1wiIFt3cmFwcGVyQ2xhc3Nlc109XCJ0ZXh0YXJlYUZpZWxkLndyYXBwZXJDbGFzc2VzXCJcbiAgICAgICAgICAgIFttYXhMZW5ndGhdPVwidGV4dGFyZWFGaWVsZC5tYXhMZW5ndGhcIiBbcm93c109XCJ0ZXh0YXJlYUZpZWxkLnJvd3NcIlxuICAgICAgICAgICAgW2Rpc3BsYXlDaGFyYWN0ZXJzQ291bnRdPVwidGV4dGFyZWFGaWVsZC5kaXNwbGF5Q2hhcmFjdGVyc0NvdW50IHx8IGZhbHNlXCI+PC91cGQtdGV4dGFyZWE+XG4gICAgfVxuICAgIEBjYXNlIChEeW5hbWljRmllbGRUeXBlLkZpbGVVcGxvYWQpIHtcbiAgICAgICAgPHVwZC1maWxlLXVwbG9hZCBbbmFtZV09XCJmaWVsZCgpLm5hbWVcIiBbbGFiZWxdPVwiZmllbGQoKS5sYWJlbFwiIFtoaW50XT1cImZpZWxkKCkuaGludFwiIFtpc0Rpc2FibGVkXT1cImZpZWxkKCkuaXNEaXNhYmxlZCB8fCBmYWxzZVwiXG4gICAgICAgICAgICBbaGludEFzVG9vbHRpcF09XCJmaWVsZCgpLmhpbnRBc1Rvb2x0aXAgfHwgZmFsc2VcIiBbdmFsaWRhdGlvblN0YXR1c109XCJ2YWxpZGF0aW9uU3RhdHVzXCIgW2ZpbGVOYW1lXT1cImZpbGVOYW1lQ29udHJvbD8udmFsdWVcIlxuICAgICAgICAgICAgW3ZhbGlkYXRpb25TdGF0dXNEZXNjcmlwdGlvbnNdPVwidmFsaWRhdGlvblN0YXR1c0Rlc2NyaXB0aW9uc1wiIFthbGxvd0ZpbGVzRHJvcF09XCJmaWxlVXBsb2FkRmllbGQuYWxsb3dGaWxlc0Ryb3AgfHwgZmFsc2VcIlxuICAgICAgICAgICAgW3RpdGxlXT1cImZpbGVVcGxvYWRGaWVsZC50aXRsZVwiIFtsYWJlbENvbFNpemVdPVwiZmllbGQoKS5sYWJlbENvbFNpemVcIiBbbWluRmlsZVNpemVdPVwiZmlsZVVwbG9hZEZpZWxkLm1pbkZpbGVTaXplXCJcbiAgICAgICAgICAgIFtpc011bHRpcGxlXT1cImZpbGVVcGxvYWRGaWVsZC5pc011bHRpcGxlIHx8IGZhbHNlXCIgW2FsbG93ZWRFeHRlbnNpb25zXT1cImZpbGVVcGxvYWRGaWVsZC5hbGxvd2VkRXh0ZW5zaW9ucyB8fCAnKidcIlxuICAgICAgICAgICAgW21heEZpbGVTaXplXT1cImZpbGVVcGxvYWRGaWVsZC5tYXhGaWxlU2l6ZVwiIFtsYXlvdXRdPVwibGF5b3V0KClcIiAoZmlsZUNoYW5nZWQpPVwiaGFuZGxlRmlsZVNlbGVjdGVkKCRldmVudClcIj48L3VwZC1maWxlLXVwbG9hZD5cbiAgICB9XG59XG4iXX0=
@@ -107,11 +107,11 @@ export class FormComponent extends BaseComponent {
107
107
  });
108
108
  }
109
109
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: FormComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
110
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.1.0", type: FormComponent, selector: "upd-form", inputs: { rows: { classPropertyName: "rows", publicName: "rows", isSignal: true, isRequired: true, transformFunction: null }, layout: { classPropertyName: "layout", publicName: "layout", isSignal: true, isRequired: false, transformFunction: null }, title: { classPropertyName: "title", publicName: "title", isSignal: true, isRequired: false, transformFunction: null }, hasActionsSection: { classPropertyName: "hasActionsSection", publicName: "hasActionsSection", isSignal: true, isRequired: false, transformFunction: null }, isCard: { classPropertyName: "isCard", publicName: "isCard", isSignal: true, isRequired: false, transformFunction: null }, isDisabled: { classPropertyName: "isDisabled", publicName: "isDisabled", isSignal: true, isRequired: false, transformFunction: null }, isLoading: { classPropertyName: "isLoading", publicName: "isLoading", isSignal: true, isRequired: false, transformFunction: null }, isSaving: { classPropertyName: "isSaving", publicName: "isSaving", isSignal: true, isRequired: false, transformFunction: null }, formData: { classPropertyName: "formData", publicName: "formData", isSignal: true, isRequired: false, transformFunction: null }, formGroup: { classPropertyName: "formGroup", publicName: "formGroup", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { initialized: "initialized", dataLoaded: "dataLoaded", submitted: "submitted", formData: "formDataChange", formGroup: "formGroupChange" }, usesInheritance: true, ngImport: i0, template: "<ng-container *transloco=\"let t; prefix: 'UpDevs.Form'\">\n <div [class.card]=\"isCard()\">\n @if (!!titleText) {\n <div [class.card-header]=\"isCard()\">\n <h3 [class.card-title]=\"isCard()\">{{ titleText }}</h3>\n </div>\n }\n <div [class.card-body]=\"isCard()\">\n @for (row of rows(); track row; let isFirst = $first) {\n <div class=\"row\" [class.mt-4]=\"!isFirst\">\n @for (field of row.fields; track field.name) {\n <upd-dynamic-field [layout]=\"layout()\" [field]=\"field\" [formGroup]=\"formGroup()\" (submitForm)=\"submit()\">\n </upd-dynamic-field>\n }\n </div>\n }\n </div>\n\n @if (hasActionsSection()) {\n <div [class.card-footer]=\"isCard()\" [class.mt-4]=\"!isCard()\">\n <upd-button colorStyle=\"primary\" (clicked)=\"submit()\">\n {{ t('Submit') }}\n </upd-button>\n </div>\n }\n </div>\n</ng-container>\n", styles: [""], dependencies: [{ kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "component", type: i2.ButtonComponent, selector: "upd-button", inputs: ["model", "text", "brandColorStyle", "customClasses", "isOutline", "isGhost", "isSquare", "isPill", "isIcon", "isLoading", "isList", "isFloating", "isAction", "isNavigationLink", "isLink", "shouldIgnoreBtnClass", "iconModel", "iconPosition", "isDisabled", "isActive", "badgeConfig", "colorStyle", "size", "title"], outputs: ["clicked"] }, { kind: "directive", type: i3.TranslocoDirective, selector: "[transloco]", inputs: ["transloco", "translocoParams", "translocoScope", "translocoRead", "translocoPrefix", "translocoLang", "translocoLoadingTpl"] }, { kind: "component", type: i4.DynamicFieldComponent, selector: "upd-dynamic-field", inputs: ["formGroup", "field", "layout"], outputs: ["submitForm"] }] }); }
110
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.1.0", type: FormComponent, selector: "upd-form", inputs: { rows: { classPropertyName: "rows", publicName: "rows", isSignal: true, isRequired: true, transformFunction: null }, layout: { classPropertyName: "layout", publicName: "layout", isSignal: true, isRequired: false, transformFunction: null }, title: { classPropertyName: "title", publicName: "title", isSignal: true, isRequired: false, transformFunction: null }, hasActionsSection: { classPropertyName: "hasActionsSection", publicName: "hasActionsSection", isSignal: true, isRequired: false, transformFunction: null }, isCard: { classPropertyName: "isCard", publicName: "isCard", isSignal: true, isRequired: false, transformFunction: null }, isDisabled: { classPropertyName: "isDisabled", publicName: "isDisabled", isSignal: true, isRequired: false, transformFunction: null }, isLoading: { classPropertyName: "isLoading", publicName: "isLoading", isSignal: true, isRequired: false, transformFunction: null }, isSaving: { classPropertyName: "isSaving", publicName: "isSaving", isSignal: true, isRequired: false, transformFunction: null }, formData: { classPropertyName: "formData", publicName: "formData", isSignal: true, isRequired: false, transformFunction: null }, formGroup: { classPropertyName: "formGroup", publicName: "formGroup", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { initialized: "initialized", dataLoaded: "dataLoaded", submitted: "submitted", formData: "formDataChange", formGroup: "formGroupChange" }, usesInheritance: true, ngImport: i0, template: "<ng-container *transloco=\"let t; prefix: 'UpDevs.Form'\">\n <div [class.card]=\"isCard()\">\n @if (!!titleText) {\n <div [class.card-header]=\"isCard()\">\n <h3 [class.card-title]=\"isCard()\">{{ titleText }}</h3>\n </div>\n }\n <div [class.card-body]=\"isCard()\">\n @for (row of rows(); track row; let isFirst = $first) {\n <div class=\"row\" [class.mt-4]=\"!isFirst\">\n @if (!!row.title) {\n <div class=\"card-title\">{{ textService.getText(row.title) }}</div>\n }\n\n @for (field of row.fields; track field.name) {\n <upd-dynamic-field [layout]=\"layout()\" [field]=\"field\" [formGroup]=\"formGroup()\" (submitForm)=\"submit()\">\n </upd-dynamic-field>\n }\n </div>\n }\n </div>\n\n @if (hasActionsSection()) {\n <div [class.card-footer]=\"isCard()\" [class.mt-4]=\"!isCard()\">\n <upd-button colorStyle=\"primary\" (clicked)=\"submit()\">\n {{ t('Submit') }}\n </upd-button>\n </div>\n }\n </div>\n</ng-container>\n", styles: [""], dependencies: [{ kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "component", type: i2.ButtonComponent, selector: "upd-button", inputs: ["model", "text", "brandColorStyle", "customClasses", "isOutline", "isGhost", "isSquare", "isPill", "isIcon", "isLoading", "isList", "isFloating", "isAction", "isNavigationLink", "isLink", "shouldIgnoreBtnClass", "iconModel", "iconPosition", "isDisabled", "isActive", "badgeConfig", "colorStyle", "size", "title"], outputs: ["clicked"] }, { kind: "directive", type: i3.TranslocoDirective, selector: "[transloco]", inputs: ["transloco", "translocoParams", "translocoScope", "translocoRead", "translocoPrefix", "translocoLang", "translocoLoadingTpl"] }, { kind: "component", type: i4.DynamicFieldComponent, selector: "upd-dynamic-field", inputs: ["formGroup", "field", "layout"], outputs: ["submitForm"] }] }); }
111
111
  }
112
112
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: FormComponent, decorators: [{
113
113
  type: Component,
114
- args: [{ selector: 'upd-form', template: "<ng-container *transloco=\"let t; prefix: 'UpDevs.Form'\">\n <div [class.card]=\"isCard()\">\n @if (!!titleText) {\n <div [class.card-header]=\"isCard()\">\n <h3 [class.card-title]=\"isCard()\">{{ titleText }}</h3>\n </div>\n }\n <div [class.card-body]=\"isCard()\">\n @for (row of rows(); track row; let isFirst = $first) {\n <div class=\"row\" [class.mt-4]=\"!isFirst\">\n @for (field of row.fields; track field.name) {\n <upd-dynamic-field [layout]=\"layout()\" [field]=\"field\" [formGroup]=\"formGroup()\" (submitForm)=\"submit()\">\n </upd-dynamic-field>\n }\n </div>\n }\n </div>\n\n @if (hasActionsSection()) {\n <div [class.card-footer]=\"isCard()\" [class.mt-4]=\"!isCard()\">\n <upd-button colorStyle=\"primary\" (clicked)=\"submit()\">\n {{ t('Submit') }}\n </upd-button>\n </div>\n }\n </div>\n</ng-container>\n" }]
114
+ args: [{ selector: 'upd-form', template: "<ng-container *transloco=\"let t; prefix: 'UpDevs.Form'\">\n <div [class.card]=\"isCard()\">\n @if (!!titleText) {\n <div [class.card-header]=\"isCard()\">\n <h3 [class.card-title]=\"isCard()\">{{ titleText }}</h3>\n </div>\n }\n <div [class.card-body]=\"isCard()\">\n @for (row of rows(); track row; let isFirst = $first) {\n <div class=\"row\" [class.mt-4]=\"!isFirst\">\n @if (!!row.title) {\n <div class=\"card-title\">{{ textService.getText(row.title) }}</div>\n }\n\n @for (field of row.fields; track field.name) {\n <upd-dynamic-field [layout]=\"layout()\" [field]=\"field\" [formGroup]=\"formGroup()\" (submitForm)=\"submit()\">\n </upd-dynamic-field>\n }\n </div>\n }\n </div>\n\n @if (hasActionsSection()) {\n <div [class.card-footer]=\"isCard()\" [class.mt-4]=\"!isCard()\">\n <upd-button colorStyle=\"primary\" (clicked)=\"submit()\">\n {{ t('Submit') }}\n </upd-button>\n </div>\n }\n </div>\n</ng-container>\n" }]
115
115
  }], ctorParameters: () => [], propDecorators: { initialized: [{
116
116
  type: Output
117
117
  }], dataLoaded: [{
@@ -119,4 +119,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.0", ngImpor
119
119
  }], submitted: [{
120
120
  type: Output
121
121
  }] } });
122
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvZm9ybS9zcmMvZm9ybS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvZm9ybS9zcmMvZm9ybS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxZQUFZLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBZSxLQUFLLEVBQVUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25ILE9BQU8sRUFBRSxXQUFXLEVBQUUsU0FBUyxFQUFlLFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRWpGLE9BQU8sRUFBYSxXQUFXLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDckQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBR25ELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLG1DQUFtQyxDQUFDOzs7Ozs7QUFTckUsTUFBTSxPQUFPLGFBQWlCLFNBQVEsYUFBYTtJQTRDL0MsSUFBSSxTQUFTO1FBQ1QsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQztJQUNsRCxDQUFDO0lBSUQ7UUFDSSxLQUFLLEVBQUUsQ0FBQztRQWxETyxnQkFBVyxHQUFHLElBQUksWUFBWSxFQUFRLENBQUM7UUFDdkMsZUFBVSxHQUFHLElBQUksWUFBWSxFQUFLLENBQUMsQ0FBQyxvQkFBb0I7UUFDeEQsY0FBUyxHQUFHLElBQUksWUFBWSxFQUFLLENBQUM7UUFFckQ7O1dBRUc7UUFDSCxTQUFJLEdBQWdDLEtBQUssQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUNyRDs7V0FFRztRQUNILFdBQU0sR0FBd0MsS0FBSyxDQUF5QixVQUFVLENBQUMsQ0FBQztRQUN4Rjs7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QUM7UUFDTCxDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7OEdBMUhRLGFBQWE7a0dBQWIsYUFBYSx1L0NDaEIxQiw4bENBMkJBOzsyRkRYYSxhQUFhO2tCQUx6QixTQUFTOytCQUNJLFVBQVU7d0RBS0QsV0FBVztzQkFBN0IsTUFBTTtnQkFDWSxVQUFVO3NCQUE1QixNQUFNO2dCQUNZLFNBQVM7c0JBQTNCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIGVmZmVjdCwgRXZlbnRFbWl0dGVyLCBpbmplY3QsIGlucHV0LCBJbnB1dFNpZ25hbCwgbW9kZWwsIE9uSW5pdCwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3JtQ29udHJvbCwgRm9ybUdyb3VwLCBWYWxpZGF0b3JGbiwgVmFsaWRhdG9ycyB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IEhvcml6b250YWxWZXJ0aWNhbFR5cGUgfSBmcm9tICdAdXBkZXZzL2NvbXBvbmVudHMnO1xuaW1wb3J0IHsgVGV4dE1vZGVsLCBUZXh0U2VydmljZSB9IGZyb20gJ0B1cGRldnMvc2RrJztcbmltcG9ydCB7IEJhc2VDb21wb25lbnQgfSBmcm9tICdAdXBkZXZzL3Nkay9sYXlvdXQnO1xuaW1wb3J0IHsgT3B0aW9uYWxUeXBlIH0gZnJvbSAnQHVwZGV2cy9zZGsvdHlwZXMnO1xuXG5pbXBvcnQgeyBEeW5hbWljRmllbGRUeXBlIH0gZnJvbSAnLi9tb2RlbHMvZW51bXMvZHluYW1pYy1maWVsZC50eXBlJztcbmltcG9ydCB7IEZpbGVVcGxvYWRGaWVsZE1vZGVsIH0gZnJvbSAnLi9tb2RlbHMvZmlsZS11cGxvYWQtZmllbGQubW9kZWwnO1xuaW1wb3J0IHsgRm9ybVJvd01vZGVsIH0gZnJvbSAnLi9tb2RlbHMvZm9ybS1yb3cubW9kZWwnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ3VwZC1mb3JtJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vZm9ybS5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmw6ICcuL2Zvcm0uY29tcG9uZW50LnNjc3MnXG59KVxuZXhwb3J0IGNsYXNzIEZvcm1Db21wb25lbnQ8VD4gZXh0ZW5kcyBCYXNlQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgICBAT3V0cHV0KCkgcmVhZG9ubHkgaW5pdGlhbGl6ZWQgPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG4gICAgQE91dHB1dCgpIHJlYWRvbmx5IGRhdGFMb2FkZWQgPSBuZXcgRXZlbnRFbWl0dGVyPFQ+KCk7IC8vIFRPRE86IGltcGxlbWVudGFyXG4gICAgQE91dHB1dCgpIHJlYWRvbmx5IHN1Ym1pdHRlZCA9IG5ldyBFdmVudEVtaXR0ZXI8VD4oKTtcblxuICAgIC8qKlxuICAgICAqIFJvd3MgdG8gZ2VuZXJhdGUgdGhlIGZvcm0uXG4gICAgICovXG4gICAgcm93czogSW5wdXRTaWduYWw8Rm9ybVJvd01vZGVsW10+ID0gaW5wdXQucmVxdWlyZWQoKTtcbiAgICAvKipcbiAgICAgKiBGb3JtJ3MgbGF5b3V0LlxuICAgICAqL1xuICAgIGxheW91dDogSW5wdXRTaWduYWw8SG9yaXpvbnRhbFZlcnRpY2FsVHlwZT4gPSBpbnB1dDxIb3Jpem9udGFsVmVydGljYWxUeXBlPigndmVydGljYWwnKTtcbiAgICAvKipcbiAgICAgKiBUaXRsZSBvZiB0aGUgZm9ybS5cbiAgICAgKiBPcHRpb25hbC5cbiAgICAgKi9cbiAgICB0aXRsZTogSW5wdXRTaWduYWw8T3B0aW9uYWxUeXBlPFRleHRNb2RlbD4+ID0gaW5wdXQ8T3B0aW9uYWxUeXBlPFRleHRNb2RlbD4+KHVuZGVmaW5lZCk7XG4gICAgLyoqXG4gICAgICogV2hldGhlciB0aGUgYWN0aW9ucyBzZWN0aW9uIHdpbGwgYmUgZGlzcGxheWVkLlxuICAgICAqL1xuICAgIGhhc0FjdGlvbnNTZWN0aW9uID0gaW5wdXQodHJ1ZSk7XG4gICAgLyoqXG4gICAgICogV2hldGhlciB0aGUgZm9ybSBpcyBjb250YWluZWQgaW4gYSBjYXJkLlxuICAgICAqIElmIHRydWUsIGl0J2xsIGRpc3BsYXkgYSBjYXJkIGFzIGEgZm9ybSB3cmFwcGVyLlxuICAgICAqL1xuICAgIGlzQ2FyZCA9IGlucHV0KGZhbHNlKTtcbiAgICAvKipcbiAgICAgKiBXaGV0aGVyIHRoZSBmb3JtIGlzIGluIHJlYWQgb25seSBtb2RlLCB3aGljaCBtZWFucyBubyBmaWVsZHMgY2FuIGJlIGVkaXRlZC5cbiAgICAgKi9cbiAgICBpc0Rpc2FibGVkID0gaW5wdXQoZmFsc2UsIHsgdHJhbnNmb3JtOiAodmFsOiBib29sZWFuIHwgc3RyaW5nKSA9PiB0eXBlb2YgdmFsID09PSAnc3RyaW5nJyA/IHZhbCA9PT0gJycgOiB2YWwgfSk7XG4gICAgLyoqXG4gICAgICogV2hldGhlciB0aGUgZm9ybSBpcyBsb2FkaW5nLlxuICAgICAqL1xuICAgIGlzTG9hZGluZyA9IGlucHV0KGZhbHNlKTsgLy8gVE9ETzogaW1wbGVtZW50YXJcbiAgICAvKipcbiAgICAgKiBXaGV0aGVyIHRoZSBmb3JtIGlzIHNhdmluZy5cbiAgICAgKi9cbiAgICBpc1NhdmluZyA9IGlucHV0KGZhbHNlKTsgLy8gVE9ETzogaW1wbGVtZW50YXJcbiAgICAvKipcbiAgICAgKiBDdXJyZW50IGZvcm0gZGF0YS5cbiAgICAgKi9cbiAgICBmb3JtRGF0YSA9IG1vZGVsKHt9IGFzIFQpO1xuICAgIGZvcm1Hcm91cCA9IG1vZGVsKG5ldyBGb3JtR3JvdXAoe30pKTtcbiAgICBnZXQgdGl0bGVUZXh0KCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiB0aGlzLnRleHRTZXJ2aWNlLmdldFRleHQodGhpcy50aXRsZSgpKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHJlYWRvbmx5IHRleHRTZXJ2aWNlID0gaW5qZWN0KFRleHRTZXJ2aWNlKTtcblxuICAgIGNvbnN0cnVjdG9yKCkge1xuICAgICAgICBzdXBlcigpO1xuXG4gICAgICAgIGVmZmVjdCgoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLnJvd3MoKTtcbiAgICAgICAgICAgIHRoaXMuc2V0dXBGb3JtR3JvdXAoKTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuc2V0dXBGb3JtR3JvdXAoKTtcbiAgICAgICAgdGhpcy5pbml0aWFsaXplZC5lbWl0KCk7XG5cbiAgICAgICAgY29uc3QgdmFsdWVDaGFuZ2VzU3ViID0gdGhpcy5mb3JtR3JvdXAoKS52YWx1ZUNoYW5nZXMuc3Vic2NyaWJlKCgpID0+IHRoaXMuZm9ybURhdGEuc2V0KHRoaXMuZm9ybUdyb3VwKCkuZ2V0UmF3VmFsdWUoKSBhcyBUKSk7XG5cbiAgICAgICAgdGhpcy5hZGRTdWJzY3JpcHRpb25zKHZhbHVlQ2hhbmdlc1N1Yik7XG4gICAgfVxuXG4gICAgc3VibWl0KCk6IHZvaWQge1xuICAgICAgICB0aGlzLmZvcm1Hcm91cCgpLm1hcmtBbGxBc1RvdWNoZWQoKTtcbiAgICAgICAgdGhpcy5mb3JtR3JvdXAoKS51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KCk7XG4gICAgICAgIE9iamVjdC52YWx1ZXModGhpcy5mb3JtR3JvdXAoKS5jb250cm9scykuZm9yRWFjaChjb250cm9sID0+IChjb250cm9sIGFzIEZvcm1Db250cm9sKS51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KCkpO1xuXG4gICAgICAgIGlmICh0aGlzLmZvcm1Hcm91cCgpLnZhbGlkKSB7XG4gICAgICAgICAgICB0aGlzLnN1Ym1pdHRlZC5lbWl0KHRoaXMuZm9ybUdyb3VwKCkudmFsdWUgYXMgVCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIHNldHVwRm9ybUdyb3VwKCk6IHZvaWQge1xuICAgICAgICBjb25zdCBhbGxGaWVsZHMgPSB0aGlzLnJvd3MoKS5tYXAociA9PiByLmZpZWxkcykucmVkdWNlKChhY2MsIGZpZWxkcykgPT4gYWNjLmNvbmNhdChmaWVsZHMpLCBbXSk7XG5cbiAgICAgICAgYWxsRmllbGRzLmZvckVhY2goZmllbGQgPT4ge1xuICAgICAgICAgICAgY29uc3QgdmFsaWRhdG9yczogVmFsaWRhdG9yRm5bXSA9IGZpZWxkLnZhbGlkYXRvcnMgfHwgW107XG5cbiAgICAgICAgICAgIGlmIChmaWVsZC5pc1JlcXVpcmVkICYmICF2YWxpZGF0b3JzLmluY2x1ZGVzKFZhbGlkYXRvcnMucmVxdWlyZWQpKSB7XG4gICAgICAgICAgICAgICAgdmFsaWRhdG9ycy5wdXNoKFZhbGlkYXRvcnMucmVxdWlyZWQpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAvLyBUT0RPOiBoYW5kbGUgZXh0cmEgY2FzZXMsIHdoZW4gcmVhZHkuIERhdGVSYW5nZSwgRGF0ZVRpbWVSYW5nZSwgVGltZVJhbmdlLCBldGMuXG4gICAgICAgICAgICBzd2l0Y2ggKGZpZWxkLnR5cGUpIHtcbiAgICAgICAgICAgICAgICBjYXNlIER5bmFtaWNGaWVsZFR5cGUuRmlsZVVwbG9hZDpcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5mb3JtR3JvdXAoKS5hZGRDb250cm9sKFxuICAgICAgICAgICAgICAgICAgICAgICAgZmllbGQubmFtZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIG5ldyBGb3JtQ29udHJvbCh7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWU6IGZpZWxkLmluaXRWYWx1ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaXNhYmxlZDogZmllbGQuaXNEaXNhYmxlZCB8fCB0aGlzLmlzRGlzYWJsZWQoKVxuICAgICAgICAgICAgICAgICAgICAgICAgfSwgeyB2YWxpZGF0b3JzOiB2YWxpZGF0b3JzIH0pXG4gICAgICAgICAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgICAgICAgICAgY29uc3QgZmlsZU5hbWVGb3JtUHJvcCA9IChmaWVsZCBhcyBGaWxlVXBsb2FkRmllbGRNb2RlbCkuZmlsZU5hbWVGb3JtUHJvcGVydHk7XG5cbiAgICAgICAgICAgICAgICAgICAgaWYgKCEhZmlsZU5hbWVGb3JtUHJvcCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5mb3JtR3JvdXAoKS5hZGRDb250cm9sKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbGVOYW1lRm9ybVByb3AsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3IEZvcm1Db250cm9sKHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWU6IGZpZWxkLmluaXRWYWx1ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ6IGZpZWxkLmlzRGlzYWJsZWQgfHwgdGhpcy5pc0Rpc2FibGVkKClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LCB7IHZhbGlkYXRvcnM6IHZhbGlkYXRvcnMgfSlcbiAgICAgICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgICAgICB0aGlzLmZvcm1Hcm91cCgpLmFkZENvbnRyb2woXG4gICAgICAgICAgICAgICAgICAgICAgICBmaWVsZC5uYW1lLFxuICAgICAgICAgICAgICAgICAgICAgICAgbmV3IEZvcm1Db250cm9sKHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZTogZmllbGQuaW5pdFZhbHVlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpc2FibGVkOiBmaWVsZC5pc0Rpc2FibGVkIHx8IHRoaXMuaXNEaXNhYmxlZCgpXG4gICAgICAgICAgICAgICAgICAgICAgICB9LCB7IHZhbGlkYXRvcnM6IHZhbGlkYXRvcnMgfSlcbiAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxufVxuIiwiPG5nLWNvbnRhaW5lciAqdHJhbnNsb2NvPVwibGV0IHQ7IHByZWZpeDogJ1VwRGV2cy5Gb3JtJ1wiPlxuICAgIDxkaXYgW2NsYXNzLmNhcmRdPVwiaXNDYXJkKClcIj5cbiAgICAgICAgQGlmICghIXRpdGxlVGV4dCkge1xuICAgICAgICAgICAgPGRpdiBbY2xhc3MuY2FyZC1oZWFkZXJdPVwiaXNDYXJkKClcIj5cbiAgICAgICAgICAgICAgICA8aDMgW2NsYXNzLmNhcmQtdGl0bGVdPVwiaXNDYXJkKClcIj57eyB0aXRsZVRleHQgfX08L2gzPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIH1cbiAgICAgICAgPGRpdiBbY2xhc3MuY2FyZC1ib2R5XT1cImlzQ2FyZCgpXCI+XG4gICAgICAgICAgICBAZm9yIChyb3cgb2Ygcm93cygpOyB0cmFjayByb3c7IGxldCBpc0ZpcnN0ID0gJGZpcnN0KSB7XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJvd1wiIFtjbGFzcy5tdC00XT1cIiFpc0ZpcnN0XCI+XG4gICAgICAgICAgICAgICAgICAgIEBmb3IgKGZpZWxkIG9mIHJvdy5maWVsZHM7IHRyYWNrIGZpZWxkLm5hbWUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIDx1cGQtZHluYW1pYy1maWVsZCBbbGF5b3V0XT1cImxheW91dCgpXCIgW2ZpZWxkXT1cImZpZWxkXCIgW2Zvcm1Hcm91cF09XCJmb3JtR3JvdXAoKVwiIChzdWJtaXRGb3JtKT1cInN1Ym1pdCgpXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L3VwZC1keW5hbWljLWZpZWxkPlxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICB9XG4gICAgICAgIDwvZGl2PlxuXG4gICAgICAgIEBpZiAoaGFzQWN0aW9uc1NlY3Rpb24oKSkge1xuICAgICAgICAgICAgPGRpdiBbY2xhc3MuY2FyZC1mb290ZXJdPVwiaXNDYXJkKClcIiBbY2xhc3MubXQtNF09XCIhaXNDYXJkKClcIj5cbiAgICAgICAgICAgICAgICA8dXBkLWJ1dHRvbiBjb2xvclN0eWxlPVwicHJpbWFyeVwiIChjbGlja2VkKT1cInN1Ym1pdCgpXCI+XG4gICAgICAgICAgICAgICAgICAgIHt7IHQoJ1N1Ym1pdCcpIH19XG4gICAgICAgICAgICAgICAgPC91cGQtYnV0dG9uPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIH1cbiAgICA8L2Rpdj5cbjwvbmctY29udGFpbmVyPlxuIl19
122
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvZm9ybS9zcmMvZm9ybS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvZm9ybS9zcmMvZm9ybS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxZQUFZLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBZSxLQUFLLEVBQVUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25ILE9BQU8sRUFBRSxXQUFXLEVBQUUsU0FBUyxFQUFlLFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRWpGLE9BQU8sRUFBYSxXQUFXLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDckQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBR25ELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLG1DQUFtQyxDQUFDOzs7Ozs7QUFTckUsTUFBTSxPQUFPLGFBQWlCLFNBQVEsYUFBYTtJQTRDL0MsSUFBSSxTQUFTO1FBQ1QsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQztJQUNsRCxDQUFDO0lBSUQ7UUFDSSxLQUFLLEVBQUUsQ0FBQztRQWxETyxnQkFBVyxHQUFHLElBQUksWUFBWSxFQUFRLENBQUM7UUFDdkMsZUFBVSxHQUFHLElBQUksWUFBWSxFQUFLLENBQUMsQ0FBQyxvQkFBb0I7UUFDeEQsY0FBUyxHQUFHLElBQUksWUFBWSxFQUFLLENBQUM7UUFFckQ7O1dBRUc7UUFDSCxTQUFJLEdBQWdDLEtBQUssQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUNyRDs7V0FFRztRQUNILFdBQU0sR0FBd0MsS0FBSyxDQUF5QixVQUFVLENBQUMsQ0FBQztRQUN4Rjs7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QUM7UUFDTCxDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7OEdBMUhRLGFBQWE7a0dBQWIsYUFBYSx1L0NDaEIxQiw4dkNBK0JBOzsyRkRmYSxhQUFhO2tCQUx6QixTQUFTOytCQUNJLFVBQVU7d0RBS0QsV0FBVztzQkFBN0IsTUFBTTtnQkFDWSxVQUFVO3NCQUE1QixNQUFNO2dCQUNZLFNBQVM7c0JBQTNCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIGVmZmVjdCwgRXZlbnRFbWl0dGVyLCBpbmplY3QsIGlucHV0LCBJbnB1dFNpZ25hbCwgbW9kZWwsIE9uSW5pdCwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3JtQ29udHJvbCwgRm9ybUdyb3VwLCBWYWxpZGF0b3JGbiwgVmFsaWRhdG9ycyB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IEhvcml6b250YWxWZXJ0aWNhbFR5cGUgfSBmcm9tICdAdXBkZXZzL2NvbXBvbmVudHMnO1xuaW1wb3J0IHsgVGV4dE1vZGVsLCBUZXh0U2VydmljZSB9IGZyb20gJ0B1cGRldnMvc2RrJztcbmltcG9ydCB7IEJhc2VDb21wb25lbnQgfSBmcm9tICdAdXBkZXZzL3Nkay9sYXlvdXQnO1xuaW1wb3J0IHsgT3B0aW9uYWxUeXBlIH0gZnJvbSAnQHVwZGV2cy9zZGsvdHlwZXMnO1xuXG5pbXBvcnQgeyBEeW5hbWljRmllbGRUeXBlIH0gZnJvbSAnLi9tb2RlbHMvZW51bXMvZHluYW1pYy1maWVsZC50eXBlJztcbmltcG9ydCB7IEZpbGVVcGxvYWRGaWVsZE1vZGVsIH0gZnJvbSAnLi9tb2RlbHMvZmlsZS11cGxvYWQtZmllbGQubW9kZWwnO1xuaW1wb3J0IHsgRm9ybVJvd01vZGVsIH0gZnJvbSAnLi9tb2RlbHMvZm9ybS1yb3cubW9kZWwnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ3VwZC1mb3JtJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vZm9ybS5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmw6ICcuL2Zvcm0uY29tcG9uZW50LnNjc3MnXG59KVxuZXhwb3J0IGNsYXNzIEZvcm1Db21wb25lbnQ8VD4gZXh0ZW5kcyBCYXNlQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgICBAT3V0cHV0KCkgcmVhZG9ubHkgaW5pdGlhbGl6ZWQgPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG4gICAgQE91dHB1dCgpIHJlYWRvbmx5IGRhdGFMb2FkZWQgPSBuZXcgRXZlbnRFbWl0dGVyPFQ+KCk7IC8vIFRPRE86IGltcGxlbWVudGFyXG4gICAgQE91dHB1dCgpIHJlYWRvbmx5IHN1Ym1pdHRlZCA9IG5ldyBFdmVudEVtaXR0ZXI8VD4oKTtcblxuICAgIC8qKlxuICAgICAqIFJvd3MgdG8gZ2VuZXJhdGUgdGhlIGZvcm0uXG4gICAgICovXG4gICAgcm93czogSW5wdXRTaWduYWw8Rm9ybVJvd01vZGVsW10+ID0gaW5wdXQucmVxdWlyZWQoKTtcbiAgICAvKipcbiAgICAgKiBGb3JtJ3MgbGF5b3V0LlxuICAgICAqL1xuICAgIGxheW91dDogSW5wdXRTaWduYWw8SG9yaXpvbnRhbFZlcnRpY2FsVHlwZT4gPSBpbnB1dDxIb3Jpem9udGFsVmVydGljYWxUeXBlPigndmVydGljYWwnKTtcbiAgICAvKipcbiAgICAgKiBUaXRsZSBvZiB0aGUgZm9ybS5cbiAgICAgKiBPcHRpb25hbC5cbiAgICAgKi9cbiAgICB0aXRsZTogSW5wdXRTaWduYWw8T3B0aW9uYWxUeXBlPFRleHRNb2RlbD4+ID0gaW5wdXQ8T3B0aW9uYWxUeXBlPFRleHRNb2RlbD4+KHVuZGVmaW5lZCk7XG4gICAgLyoqXG4gICAgICogV2hldGhlciB0aGUgYWN0aW9ucyBzZWN0aW9uIHdpbGwgYmUgZGlzcGxheWVkLlxuICAgICAqL1xuICAgIGhhc0FjdGlvbnNTZWN0aW9uID0gaW5wdXQodHJ1ZSk7XG4gICAgLyoqXG4gICAgICogV2hldGhlciB0aGUgZm9ybSBpcyBjb250YWluZWQgaW4gYSBjYXJkLlxuICAgICAqIElmIHRydWUsIGl0J2xsIGRpc3BsYXkgYSBjYXJkIGFzIGEgZm9ybSB3cmFwcGVyLlxuICAgICAqL1xuICAgIGlzQ2FyZCA9IGlucHV0KGZhbHNlKTtcbiAgICAvKipcbiAgICAgKiBXaGV0aGVyIHRoZSBmb3JtIGlzIGluIHJlYWQgb25seSBtb2RlLCB3aGljaCBtZWFucyBubyBmaWVsZHMgY2FuIGJlIGVkaXRlZC5cbiAgICAgKi9cbiAgICBpc0Rpc2FibGVkID0gaW5wdXQoZmFsc2UsIHsgdHJhbnNmb3JtOiAodmFsOiBib29sZWFuIHwgc3RyaW5nKSA9PiB0eXBlb2YgdmFsID09PSAnc3RyaW5nJyA/IHZhbCA9PT0gJycgOiB2YWwgfSk7XG4gICAgLyoqXG4gICAgICogV2hldGhlciB0aGUgZm9ybSBpcyBsb2FkaW5nLlxuICAgICAqL1xuICAgIGlzTG9hZGluZyA9IGlucHV0KGZhbHNlKTsgLy8gVE9ETzogaW1wbGVtZW50YXJcbiAgICAvKipcbiAgICAgKiBXaGV0aGVyIHRoZSBmb3JtIGlzIHNhdmluZy5cbiAgICAgKi9cbiAgICBpc1NhdmluZyA9IGlucHV0KGZhbHNlKTsgLy8gVE9ETzogaW1wbGVtZW50YXJcbiAgICAvKipcbiAgICAgKiBDdXJyZW50IGZvcm0gZGF0YS5cbiAgICAgKi9cbiAgICBmb3JtRGF0YSA9IG1vZGVsKHt9IGFzIFQpO1xuICAgIGZvcm1Hcm91cCA9IG1vZGVsKG5ldyBGb3JtR3JvdXAoe30pKTtcbiAgICBnZXQgdGl0bGVUZXh0KCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiB0aGlzLnRleHRTZXJ2aWNlLmdldFRleHQodGhpcy50aXRsZSgpKTtcbiAgICB9XG5cbiAgICByZWFkb25seSB0ZXh0U2VydmljZSA9IGluamVjdChUZXh0U2VydmljZSk7XG5cbiAgICBjb25zdHJ1Y3RvcigpIHtcbiAgICAgICAgc3VwZXIoKTtcblxuICAgICAgICBlZmZlY3QoKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5yb3dzKCk7XG4gICAgICAgICAgICB0aGlzLnNldHVwRm9ybUdyb3VwKCk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIG5nT25Jbml0KCk6IHZvaWQge1xuICAgICAgICB0aGlzLnNldHVwRm9ybUdyb3VwKCk7XG4gICAgICAgIHRoaXMuaW5pdGlhbGl6ZWQuZW1pdCgpO1xuXG4gICAgICAgIGNvbnN0IHZhbHVlQ2hhbmdlc1N1YiA9IHRoaXMuZm9ybUdyb3VwKCkudmFsdWVDaGFuZ2VzLnN1YnNjcmliZSgoKSA9PiB0aGlzLmZvcm1EYXRhLnNldCh0aGlzLmZvcm1Hcm91cCgpLmdldFJhd1ZhbHVlKCkgYXMgVCkpO1xuXG4gICAgICAgIHRoaXMuYWRkU3Vic2NyaXB0aW9ucyh2YWx1ZUNoYW5nZXNTdWIpO1xuICAgIH1cblxuICAgIHN1Ym1pdCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5mb3JtR3JvdXAoKS5tYXJrQWxsQXNUb3VjaGVkKCk7XG4gICAgICAgIHRoaXMuZm9ybUdyb3VwKCkudXBkYXRlVmFsdWVBbmRWYWxpZGl0eSgpO1xuICAgICAgICBPYmplY3QudmFsdWVzKHRoaXMuZm9ybUdyb3VwKCkuY29udHJvbHMpLmZvckVhY2goY29udHJvbCA9PiAoY29udHJvbCBhcyBGb3JtQ29udHJvbCkudXBkYXRlVmFsdWVBbmRWYWxpZGl0eSgpKTtcblxuICAgICAgICBpZiAodGhpcy5mb3JtR3JvdXAoKS52YWxpZCkge1xuICAgICAgICAgICAgdGhpcy5zdWJtaXR0ZWQuZW1pdCh0aGlzLmZvcm1Hcm91cCgpLnZhbHVlIGFzIFQpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBzZXR1cEZvcm1Hcm91cCgpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgYWxsRmllbGRzID0gdGhpcy5yb3dzKCkubWFwKHIgPT4gci5maWVsZHMpLnJlZHVjZSgoYWNjLCBmaWVsZHMpID0+IGFjYy5jb25jYXQoZmllbGRzKSwgW10pO1xuXG4gICAgICAgIGFsbEZpZWxkcy5mb3JFYWNoKGZpZWxkID0+IHtcbiAgICAgICAgICAgIGNvbnN0IHZhbGlkYXRvcnM6IFZhbGlkYXRvckZuW10gPSBmaWVsZC52YWxpZGF0b3JzIHx8IFtdO1xuXG4gICAgICAgICAgICBpZiAoZmllbGQuaXNSZXF1aXJlZCAmJiAhdmFsaWRhdG9ycy5pbmNsdWRlcyhWYWxpZGF0b3JzLnJlcXVpcmVkKSkge1xuICAgICAgICAgICAgICAgIHZhbGlkYXRvcnMucHVzaChWYWxpZGF0b3JzLnJlcXVpcmVkKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLy8gVE9ETzogaGFuZGxlIGV4dHJhIGNhc2VzLCB3aGVuIHJlYWR5LiBEYXRlUmFuZ2UsIERhdGVUaW1lUmFuZ2UsIFRpbWVSYW5nZSwgZXRjLlxuICAgICAgICAgICAgc3dpdGNoIChmaWVsZC50eXBlKSB7XG4gICAgICAgICAgICAgICAgY2FzZSBEeW5hbWljRmllbGRUeXBlLkZpbGVVcGxvYWQ6XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZm9ybUdyb3VwKCkuYWRkQ29udHJvbChcbiAgICAgICAgICAgICAgICAgICAgICAgIGZpZWxkLm5hbWUsXG4gICAgICAgICAgICAgICAgICAgICAgICBuZXcgRm9ybUNvbnRyb2woe1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlOiBmaWVsZC5pbml0VmFsdWUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ6IGZpZWxkLmlzRGlzYWJsZWQgfHwgdGhpcy5pc0Rpc2FibGVkKClcbiAgICAgICAgICAgICAgICAgICAgICAgIH0sIHsgdmFsaWRhdG9yczogdmFsaWRhdG9ycyB9KVxuICAgICAgICAgICAgICAgICAgICApO1xuXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGZpbGVOYW1lRm9ybVByb3AgPSAoZmllbGQgYXMgRmlsZVVwbG9hZEZpZWxkTW9kZWwpLmZpbGVOYW1lRm9ybVByb3BlcnR5O1xuXG4gICAgICAgICAgICAgICAgICAgIGlmICghIWZpbGVOYW1lRm9ybVByb3ApIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuZm9ybUdyb3VwKCkuYWRkQ29udHJvbChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaWxlTmFtZUZvcm1Qcm9wLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ldyBGb3JtQ29udHJvbCh7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlOiBmaWVsZC5pbml0VmFsdWUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpc2FibGVkOiBmaWVsZC5pc0Rpc2FibGVkIHx8IHRoaXMuaXNEaXNhYmxlZCgpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwgeyB2YWxpZGF0b3JzOiB2YWxpZGF0b3JzIH0pXG4gICAgICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5mb3JtR3JvdXAoKS5hZGRDb250cm9sKFxuICAgICAgICAgICAgICAgICAgICAgICAgZmllbGQubmFtZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIG5ldyBGb3JtQ29udHJvbCh7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWU6IGZpZWxkLmluaXRWYWx1ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaXNhYmxlZDogZmllbGQuaXNEaXNhYmxlZCB8fCB0aGlzLmlzRGlzYWJsZWQoKVxuICAgICAgICAgICAgICAgICAgICAgICAgfSwgeyB2YWxpZGF0b3JzOiB2YWxpZGF0b3JzIH0pXG4gICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cbn1cbiIsIjxuZy1jb250YWluZXIgKnRyYW5zbG9jbz1cImxldCB0OyBwcmVmaXg6ICdVcERldnMuRm9ybSdcIj5cbiAgICA8ZGl2IFtjbGFzcy5jYXJkXT1cImlzQ2FyZCgpXCI+XG4gICAgICAgIEBpZiAoISF0aXRsZVRleHQpIHtcbiAgICAgICAgICAgIDxkaXYgW2NsYXNzLmNhcmQtaGVhZGVyXT1cImlzQ2FyZCgpXCI+XG4gICAgICAgICAgICAgICAgPGgzIFtjbGFzcy5jYXJkLXRpdGxlXT1cImlzQ2FyZCgpXCI+e3sgdGl0bGVUZXh0IH19PC9oMz5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICB9XG4gICAgICAgIDxkaXYgW2NsYXNzLmNhcmQtYm9keV09XCJpc0NhcmQoKVwiPlxuICAgICAgICAgICAgQGZvciAocm93IG9mIHJvd3MoKTsgdHJhY2sgcm93OyBsZXQgaXNGaXJzdCA9ICRmaXJzdCkge1xuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3dcIiBbY2xhc3MubXQtNF09XCIhaXNGaXJzdFwiPlxuICAgICAgICAgICAgICAgICAgICBAaWYgKCEhcm93LnRpdGxlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2FyZC10aXRsZVwiPnt7IHRleHRTZXJ2aWNlLmdldFRleHQocm93LnRpdGxlKSB9fTwvZGl2PlxuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgQGZvciAoZmllbGQgb2Ygcm93LmZpZWxkczsgdHJhY2sgZmllbGQubmFtZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgPHVwZC1keW5hbWljLWZpZWxkIFtsYXlvdXRdPVwibGF5b3V0KClcIiBbZmllbGRdPVwiZmllbGRcIiBbZm9ybUdyb3VwXT1cImZvcm1Hcm91cCgpXCIgKHN1Ym1pdEZvcm0pPVwic3VibWl0KClcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvdXBkLWR5bmFtaWMtZmllbGQ+XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIH1cbiAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgQGlmIChoYXNBY3Rpb25zU2VjdGlvbigpKSB7XG4gICAgICAgICAgICA8ZGl2IFtjbGFzcy5jYXJkLWZvb3Rlcl09XCJpc0NhcmQoKVwiIFtjbGFzcy5tdC00XT1cIiFpc0NhcmQoKVwiPlxuICAgICAgICAgICAgICAgIDx1cGQtYnV0dG9uIGNvbG9yU3R5bGU9XCJwcmltYXJ5XCIgKGNsaWNrZWQpPVwic3VibWl0KClcIj5cbiAgICAgICAgICAgICAgICAgICAge3sgdCgnU3VibWl0JykgfX1cbiAgICAgICAgICAgICAgICA8L3VwZC1idXR0b24+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgfVxuICAgIDwvZGl2PlxuPC9uZy1jb250YWluZXI+XG4iXX0=
@@ -1,2 +1,2 @@
1
1
  export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1yb3cubW9kZWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvZm9ybS9zcmMvbW9kZWxzL2Zvcm0tcm93Lm1vZGVsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBSZXF1aXJlZFBlcm1pc3Npb25zTW9kZWwgfSBmcm9tICdAdXBkZXZzL3Nkay9zZWN1cml0eSc7XG5cbmltcG9ydCB7IER5bmFtaWNGaWVsZE1vZGVsIH0gZnJvbSAnLi9keW5hbWljLWZpZWxkLm1vZGVsJztcblxuZXhwb3J0IGludGVyZmFjZSBGb3JtUm93TW9kZWwge1xuICAgIGZpZWxkczogRHluYW1pY0ZpZWxkTW9kZWxbXTtcbiAgICBpc0NvbXBhY3Q/OiBib29sZWFuO1xuICAgIGlzSGlkZGVuPzogYm9vbGVhbjtcbiAgICByZXF1aXJlZFBlcm1pc3Npb25zPzogUmVxdWlyZWRQZXJtaXNzaW9uc01vZGVsO1xufVxuIl19
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1yb3cubW9kZWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvZm9ybS9zcmMvbW9kZWxzL2Zvcm0tcm93Lm1vZGVsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBUZXh0TW9kZWwgfSBmcm9tICdAdXBkZXZzL3Nkayc7XG5pbXBvcnQgeyBSZXF1aXJlZFBlcm1pc3Npb25zTW9kZWwgfSBmcm9tICdAdXBkZXZzL3Nkay9zZWN1cml0eSc7XG5cbmltcG9ydCB7IER5bmFtaWNGaWVsZE1vZGVsIH0gZnJvbSAnLi9keW5hbWljLWZpZWxkLm1vZGVsJztcblxuZXhwb3J0IGludGVyZmFjZSBGb3JtUm93TW9kZWwge1xuICAgIGZpZWxkczogRHluYW1pY0ZpZWxkTW9kZWxbXTtcbiAgICBpc0NvbXBhY3Q/OiBib29sZWFuO1xuICAgIGlzSGlkZGVuPzogYm9vbGVhbjtcbiAgICByZXF1aXJlZFBlcm1pc3Npb25zPzogUmVxdWlyZWRQZXJtaXNzaW9uc01vZGVsO1xuICAgIHRpdGxlPzogVGV4dE1vZGVsO1xufVxuIl19
@@ -1,2 +1,2 @@
1
1
  export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQtZmllbGQubW9kZWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvZm9ybS9zcmMvbW9kZWxzL2lucHV0LWZpZWxkLm1vZGVsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbnB1dFR5cGUgfSBmcm9tICdAdXBkZXZzL2NvbXBvbmVudHMvZm9ybS1jb250cm9scy9pbnB1dCc7XG5cbmltcG9ydCB7IER5bmFtaWNGaWVsZE1vZGVsIH0gZnJvbSAnLi9keW5hbWljLWZpZWxkLm1vZGVsJztcblxuZXhwb3J0IGludGVyZmFjZSBJbnB1dEZpZWxkTW9kZWwgZXh0ZW5kcyBEeW5hbWljRmllbGRNb2RlbCB7XG4gICAgaW5wdXRUeXBlPzogSW5wdXRUeXBlO1xuICAgIHNob3VsZFN1Ym1pdE9uRW50ZXI/OiBib29sZWFuO1xufVxuIl19
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQtZmllbGQubW9kZWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvZm9ybS9zcmMvbW9kZWxzL2lucHV0LWZpZWxkLm1vZGVsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbnB1dFR5cGUgfSBmcm9tICdAdXBkZXZzL2NvbXBvbmVudHMvZm9ybS1jb250cm9scy9pbnB1dCc7XG5pbXBvcnQgeyBUZXh0TW9kZWwgfSBmcm9tICdAdXBkZXZzL3Nkayc7XG5cbmltcG9ydCB7IER5bmFtaWNGaWVsZE1vZGVsIH0gZnJvbSAnLi9keW5hbWljLWZpZWxkLm1vZGVsJztcblxuZXhwb3J0IGludGVyZmFjZSBJbnB1dEZpZWxkTW9kZWwgZXh0ZW5kcyBEeW5hbWljRmllbGRNb2RlbCB7XG4gICAgaW5wdXRUeXBlPzogSW5wdXRUeXBlO1xuICAgIHNob3VsZFN1Ym1pdE9uRW50ZXI/OiBib29sZWFuO1xuICAgIHByZWZpeD86IFRleHRNb2RlbDtcbiAgICBzdWZmaXg/OiBUZXh0TW9kZWw7XG59XG4iXX0=
@@ -1,6 +1,7 @@
1
1
  import { NgModule } from '@angular/core';
2
2
  import { CommonModule } from '@angular/common';
3
3
  import { ReactiveFormsModule } from '@angular/forms';
4
+ import { UpdSdkModule } from '@updevs/sdk';
4
5
  import { UpdButtonModule } from '@updevs/components/button';
5
6
  import { UpdInputModule } from '@updevs/components/form-controls/input';
6
7
  import { UpdCheckboxModule } from '@updevs/components/form-controls/checkbox';
@@ -34,7 +35,8 @@ export class UpdFormModule {
34
35
  UpdDatePickerModule,
35
36
  UpdSelectModule,
36
37
  UpdTextareaModule,
37
- UpdFileUploadModule], exports: [FormComponent] }); }
38
+ UpdFileUploadModule,
39
+ UpdSdkModule], exports: [FormComponent] }); }
38
40
  static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: UpdFormModule, providers: [
39
41
  ErrorsHelper
40
42
  ], imports: [CommonModule,
@@ -46,7 +48,8 @@ export class UpdFormModule {
46
48
  UpdDatePickerModule,
47
49
  UpdSelectModule,
48
50
  UpdTextareaModule,
49
- UpdFileUploadModule] }); }
51
+ UpdFileUploadModule,
52
+ UpdSdkModule] }); }
50
53
  }
51
54
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: UpdFormModule, decorators: [{
52
55
  type: NgModule,
@@ -62,7 +65,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.0", ngImpor
62
65
  UpdDatePickerModule,
63
66
  UpdSelectModule,
64
67
  UpdTextareaModule,
65
- UpdFileUploadModule
68
+ UpdFileUploadModule,
69
+ UpdSdkModule
66
70
  ],
67
71
  declarations: [
68
72
  FormComponent,
@@ -76,4 +80,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.0", ngImpor
76
80
  ]
77
81
  }]
78
82
  }], ctorParameters: () => [{ type: i1.TranslocoService }] });
79
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXBkLWZvcm0ubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL2Zvcm0vc3JjL3VwZC1mb3JtLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNyRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDNUQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHdDQUF3QyxDQUFDO0FBQ3hFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDJDQUEyQyxDQUFDO0FBQzlFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQztBQUN4RSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSw4Q0FBOEMsQ0FBQztBQUNuRixPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0seUNBQXlDLENBQUM7QUFDMUUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sMkNBQTJDLENBQUM7QUFDOUUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sOENBQThDLENBQUM7QUFDbkYsT0FBTyxFQUFFLGtCQUFrQixFQUFFLGdCQUFnQixFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFFMUUsT0FBTyxLQUFLLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUM1QyxPQUFPLEtBQUssRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQzVDLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUNqRCxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxvREFBb0QsQ0FBQztBQUMzRixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7OztBQTJCckQsTUFBTSxPQUFPLGFBQWE7SUFDdEIsWUFBWSxnQkFBa0M7UUFDMUMsZ0JBQWdCLENBQUMsY0FBYyxDQUFDLEVBQUUsRUFBRSxJQUFJLENBQUMsQ0FBQztRQUMxQyxnQkFBZ0IsQ0FBQyxjQUFjLENBQUMsRUFBRSxFQUFFLElBQUksQ0FBQyxDQUFDO0lBQzlDLENBQUM7OEdBSlEsYUFBYTsrR0FBYixhQUFhLGlCQVZsQixhQUFhO1lBQ2IscUJBQXFCLGFBZHJCLFlBQVk7WUFDWixtQkFBbUI7WUFDbkIsZUFBZTtZQUNmLGtCQUFrQjtZQUNsQixjQUFjO1lBQ2QsaUJBQWlCO1lBQ2pCLGNBQWM7WUFDZCxtQkFBbUI7WUFDbkIsZUFBZTtZQUNmLGlCQUFpQjtZQUNqQixtQkFBbUIsYUFPbkIsYUFBYTsrR0FNUixhQUFhLGFBSlg7WUFDUCxZQUFZO1NBQ2YsWUFyQkcsWUFBWTtZQUNaLG1CQUFtQjtZQUNuQixlQUFlO1lBRWYsY0FBYztZQUNkLGlCQUFpQjtZQUNqQixjQUFjO1lBQ2QsbUJBQW1CO1lBQ25CLGVBQWU7WUFDZixpQkFBaUI7WUFDakIsbUJBQW1COzsyRkFhZCxhQUFhO2tCQXpCekIsUUFBUTttQkFBQztvQkFDTixPQUFPLEVBQUU7d0JBQ0wsWUFBWTt3QkFDWixtQkFBbUI7d0JBQ25CLGVBQWU7d0JBQ2Ysa0JBQWtCO3dCQUNsQixjQUFjO3dCQUNkLGlCQUFpQjt3QkFDakIsY0FBYzt3QkFDZCxtQkFBbUI7d0JBQ25CLGVBQWU7d0JBQ2YsaUJBQWlCO3dCQUNqQixtQkFBbUI7cUJBQ3RCO29CQUNELFlBQVksRUFBRTt3QkFDVixhQUFhO3dCQUNiLHFCQUFxQjtxQkFDeEI7b0JBQ0QsT0FBTyxFQUFFO3dCQUNMLGFBQWE7cUJBQ2hCO29CQUNELFNBQVMsRUFBRTt3QkFDUCxZQUFZO3FCQUNmO2lCQUNKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBSZWFjdGl2ZUZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgVXBkQnV0dG9uTW9kdWxlIH0gZnJvbSAnQHVwZGV2cy9jb21wb25lbnRzL2J1dHRvbic7XG5pbXBvcnQgeyBVcGRJbnB1dE1vZHVsZSB9IGZyb20gJ0B1cGRldnMvY29tcG9uZW50cy9mb3JtLWNvbnRyb2xzL2lucHV0JztcbmltcG9ydCB7IFVwZENoZWNrYm94TW9kdWxlIH0gZnJvbSAnQHVwZGV2cy9jb21wb25lbnRzL2Zvcm0tY29udHJvbHMvY2hlY2tib3gnO1xuaW1wb3J0IHsgVXBkUmFkaW9Nb2R1bGUgfSBmcm9tICdAdXBkZXZzL2NvbXBvbmVudHMvZm9ybS1jb250cm9scy9yYWRpbyc7XG5pbXBvcnQgeyBVcGREYXRlUGlja2VyTW9kdWxlIH0gZnJvbSAnQHVwZGV2cy9jb21wb25lbnRzL2Zvcm0tY29udHJvbHMvZGF0ZS1waWNrZXInO1xuaW1wb3J0IHsgVXBkU2VsZWN0TW9kdWxlIH0gZnJvbSAnQHVwZGV2cy9jb21wb25lbnRzL2Zvcm0tY29udHJvbHMvc2VsZWN0JztcbmltcG9ydCB7IFVwZFRleHRhcmVhTW9kdWxlIH0gZnJvbSAnQHVwZGV2cy9jb21wb25lbnRzL2Zvcm0tY29udHJvbHMvdGV4dGFyZWEnO1xuaW1wb3J0IHsgVXBkRmlsZVVwbG9hZE1vZHVsZSB9IGZyb20gJ0B1cGRldnMvY29tcG9uZW50cy9mb3JtLWNvbnRyb2xzL2ZpbGUtdXBsb2FkJztcbmltcG9ydCB7IFRyYW5zbG9jb0RpcmVjdGl2ZSwgVHJhbnNsb2NvU2VydmljZSB9IGZyb20gJ0Bqc3ZlcnNlL3RyYW5zbG9jbyc7XG5cbmltcG9ydCAqIGFzIGVuIGZyb20gJy4vYXNzZXRzL2kxOG4vZW4uanNvbic7XG5pbXBvcnQgKiBhcyBwdCBmcm9tICcuL2Fzc2V0cy9pMThuL3B0Lmpzb24nO1xuaW1wb3J0IHsgRm9ybUNvbXBvbmVudCB9IGZyb20gJy4vZm9ybS5jb21wb25lbnQnO1xuaW1wb3J0IHsgRHluYW1pY0ZpZWxkQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2R5bmFtaWMtZmllbGQvZHluYW1pYy1maWVsZC5jb21wb25lbnQnO1xuaW1wb3J0IHsgRXJyb3JzSGVscGVyIH0gZnJvbSAnLi90b29scy9lcnJvcnMtaGVscGVyJztcblxuQE5nTW9kdWxlKHtcbiAgICBpbXBvcnRzOiBbXG4gICAgICAgIENvbW1vbk1vZHVsZSxcbiAgICAgICAgUmVhY3RpdmVGb3Jtc01vZHVsZSxcbiAgICAgICAgVXBkQnV0dG9uTW9kdWxlLFxuICAgICAgICBUcmFuc2xvY29EaXJlY3RpdmUsXG4gICAgICAgIFVwZElucHV0TW9kdWxlLFxuICAgICAgICBVcGRDaGVja2JveE1vZHVsZSxcbiAgICAgICAgVXBkUmFkaW9Nb2R1bGUsXG4gICAgICAgIFVwZERhdGVQaWNrZXJNb2R1bGUsXG4gICAgICAgIFVwZFNlbGVjdE1vZHVsZSxcbiAgICAgICAgVXBkVGV4dGFyZWFNb2R1bGUsXG4gICAgICAgIFVwZEZpbGVVcGxvYWRNb2R1bGVcbiAgICBdLFxuICAgIGRlY2xhcmF0aW9uczogW1xuICAgICAgICBGb3JtQ29tcG9uZW50LFxuICAgICAgICBEeW5hbWljRmllbGRDb21wb25lbnRcbiAgICBdLFxuICAgIGV4cG9ydHM6IFtcbiAgICAgICAgRm9ybUNvbXBvbmVudFxuICAgIF0sXG4gICAgcHJvdmlkZXJzOiBbXG4gICAgICAgIEVycm9yc0hlbHBlclxuICAgIF1cbn0pXG5leHBvcnQgY2xhc3MgVXBkRm9ybU1vZHVsZSB7XG4gICAgY29uc3RydWN0b3IodHJhbnNsb2NvU2VydmljZTogVHJhbnNsb2NvU2VydmljZSkge1xuICAgICAgICB0cmFuc2xvY29TZXJ2aWNlLnNldFRyYW5zbGF0aW9uKGVuLCAnZW4nKTtcbiAgICAgICAgdHJhbnNsb2NvU2VydmljZS5zZXRUcmFuc2xhdGlvbihwdCwgJ3B0Jyk7XG4gICAgfVxufVxuIl19
83
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXBkLWZvcm0ubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL2Zvcm0vc3JjL3VwZC1mb3JtLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNyRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUM1RCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sd0NBQXdDLENBQUM7QUFDeEUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sMkNBQTJDLENBQUM7QUFDOUUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHdDQUF3QyxDQUFDO0FBQ3hFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLDhDQUE4QyxDQUFDO0FBQ25GLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSx5Q0FBeUMsQ0FBQztBQUMxRSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSwyQ0FBMkMsQ0FBQztBQUM5RSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSw4Q0FBOEMsQ0FBQztBQUNuRixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUUxRSxPQUFPLEtBQUssRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQzVDLE9BQU8sS0FBSyxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDNUMsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ2pELE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLG9EQUFvRCxDQUFDO0FBQzNGLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQzs7O0FBNEJyRCxNQUFNLE9BQU8sYUFBYTtJQUN0QixZQUFZLGdCQUFrQztRQUMxQyxnQkFBZ0IsQ0FBQyxjQUFjLENBQUMsRUFBRSxFQUFFLElBQUksQ0FBQyxDQUFDO1FBQzFDLGdCQUFnQixDQUFDLGNBQWMsQ0FBQyxFQUFFLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDOUMsQ0FBQzs4R0FKUSxhQUFhOytHQUFiLGFBQWEsaUJBVmxCLGFBQWE7WUFDYixxQkFBcUIsYUFmckIsWUFBWTtZQUNaLG1CQUFtQjtZQUNuQixlQUFlO1lBQ2Ysa0JBQWtCO1lBQ2xCLGNBQWM7WUFDZCxpQkFBaUI7WUFDakIsY0FBYztZQUNkLG1CQUFtQjtZQUNuQixlQUFlO1lBQ2YsaUJBQWlCO1lBQ2pCLG1CQUFtQjtZQUNuQixZQUFZLGFBT1osYUFBYTsrR0FNUixhQUFhLGFBSlg7WUFDUCxZQUFZO1NBQ2YsWUF0QkcsWUFBWTtZQUNaLG1CQUFtQjtZQUNuQixlQUFlO1lBRWYsY0FBYztZQUNkLGlCQUFpQjtZQUNqQixjQUFjO1lBQ2QsbUJBQW1CO1lBQ25CLGVBQWU7WUFDZixpQkFBaUI7WUFDakIsbUJBQW1CO1lBQ25CLFlBQVk7OzJGQWFQLGFBQWE7a0JBMUJ6QixRQUFRO21CQUFDO29CQUNOLE9BQU8sRUFBRTt3QkFDTCxZQUFZO3dCQUNaLG1CQUFtQjt3QkFDbkIsZUFBZTt3QkFDZixrQkFBa0I7d0JBQ2xCLGNBQWM7d0JBQ2QsaUJBQWlCO3dCQUNqQixjQUFjO3dCQUNkLG1CQUFtQjt3QkFDbkIsZUFBZTt3QkFDZixpQkFBaUI7d0JBQ2pCLG1CQUFtQjt3QkFDbkIsWUFBWTtxQkFDZjtvQkFDRCxZQUFZLEVBQUU7d0JBQ1YsYUFBYTt3QkFDYixxQkFBcUI7cUJBQ3hCO29CQUNELE9BQU8sRUFBRTt3QkFDTCxhQUFhO3FCQUNoQjtvQkFDRCxTQUFTLEVBQUU7d0JBQ1AsWUFBWTtxQkFDZjtpQkFDSiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgUmVhY3RpdmVGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IFVwZFNka01vZHVsZSB9IGZyb20gJ0B1cGRldnMvc2RrJztcbmltcG9ydCB7IFVwZEJ1dHRvbk1vZHVsZSB9IGZyb20gJ0B1cGRldnMvY29tcG9uZW50cy9idXR0b24nO1xuaW1wb3J0IHsgVXBkSW5wdXRNb2R1bGUgfSBmcm9tICdAdXBkZXZzL2NvbXBvbmVudHMvZm9ybS1jb250cm9scy9pbnB1dCc7XG5pbXBvcnQgeyBVcGRDaGVja2JveE1vZHVsZSB9IGZyb20gJ0B1cGRldnMvY29tcG9uZW50cy9mb3JtLWNvbnRyb2xzL2NoZWNrYm94JztcbmltcG9ydCB7IFVwZFJhZGlvTW9kdWxlIH0gZnJvbSAnQHVwZGV2cy9jb21wb25lbnRzL2Zvcm0tY29udHJvbHMvcmFkaW8nO1xuaW1wb3J0IHsgVXBkRGF0ZVBpY2tlck1vZHVsZSB9IGZyb20gJ0B1cGRldnMvY29tcG9uZW50cy9mb3JtLWNvbnRyb2xzL2RhdGUtcGlja2VyJztcbmltcG9ydCB7IFVwZFNlbGVjdE1vZHVsZSB9IGZyb20gJ0B1cGRldnMvY29tcG9uZW50cy9mb3JtLWNvbnRyb2xzL3NlbGVjdCc7XG5pbXBvcnQgeyBVcGRUZXh0YXJlYU1vZHVsZSB9IGZyb20gJ0B1cGRldnMvY29tcG9uZW50cy9mb3JtLWNvbnRyb2xzL3RleHRhcmVhJztcbmltcG9ydCB7IFVwZEZpbGVVcGxvYWRNb2R1bGUgfSBmcm9tICdAdXBkZXZzL2NvbXBvbmVudHMvZm9ybS1jb250cm9scy9maWxlLXVwbG9hZCc7XG5pbXBvcnQgeyBUcmFuc2xvY29EaXJlY3RpdmUsIFRyYW5zbG9jb1NlcnZpY2UgfSBmcm9tICdAanN2ZXJzZS90cmFuc2xvY28nO1xuXG5pbXBvcnQgKiBhcyBlbiBmcm9tICcuL2Fzc2V0cy9pMThuL2VuLmpzb24nO1xuaW1wb3J0ICogYXMgcHQgZnJvbSAnLi9hc3NldHMvaTE4bi9wdC5qc29uJztcbmltcG9ydCB7IEZvcm1Db21wb25lbnQgfSBmcm9tICcuL2Zvcm0uY29tcG9uZW50JztcbmltcG9ydCB7IER5bmFtaWNGaWVsZENvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9keW5hbWljLWZpZWxkL2R5bmFtaWMtZmllbGQuY29tcG9uZW50JztcbmltcG9ydCB7IEVycm9yc0hlbHBlciB9IGZyb20gJy4vdG9vbHMvZXJyb3JzLWhlbHBlcic7XG5cbkBOZ01vZHVsZSh7XG4gICAgaW1wb3J0czogW1xuICAgICAgICBDb21tb25Nb2R1bGUsXG4gICAgICAgIFJlYWN0aXZlRm9ybXNNb2R1bGUsXG4gICAgICAgIFVwZEJ1dHRvbk1vZHVsZSxcbiAgICAgICAgVHJhbnNsb2NvRGlyZWN0aXZlLFxuICAgICAgICBVcGRJbnB1dE1vZHVsZSxcbiAgICAgICAgVXBkQ2hlY2tib3hNb2R1bGUsXG4gICAgICAgIFVwZFJhZGlvTW9kdWxlLFxuICAgICAgICBVcGREYXRlUGlja2VyTW9kdWxlLFxuICAgICAgICBVcGRTZWxlY3RNb2R1bGUsXG4gICAgICAgIFVwZFRleHRhcmVhTW9kdWxlLFxuICAgICAgICBVcGRGaWxlVXBsb2FkTW9kdWxlLFxuICAgICAgICBVcGRTZGtNb2R1bGVcbiAgICBdLFxuICAgIGRlY2xhcmF0aW9uczogW1xuICAgICAgICBGb3JtQ29tcG9uZW50LFxuICAgICAgICBEeW5hbWljRmllbGRDb21wb25lbnRcbiAgICBdLFxuICAgIGV4cG9ydHM6IFtcbiAgICAgICAgRm9ybUNvbXBvbmVudFxuICAgIF0sXG4gICAgcHJvdmlkZXJzOiBbXG4gICAgICAgIEVycm9yc0hlbHBlclxuICAgIF1cbn0pXG5leHBvcnQgY2xhc3MgVXBkRm9ybU1vZHVsZSB7XG4gICAgY29uc3RydWN0b3IodHJhbnNsb2NvU2VydmljZTogVHJhbnNsb2NvU2VydmljZSkge1xuICAgICAgICB0cmFuc2xvY29TZXJ2aWNlLnNldFRyYW5zbGF0aW9uKGVuLCAnZW4nKTtcbiAgICAgICAgdHJhbnNsb2NvU2VydmljZS5zZXRUcmFuc2xhdGlvbihwdCwgJ3B0Jyk7XG4gICAgfVxufVxuIl19
@@ -3,10 +3,10 @@ export class ColumnSizeHelper {
3
3
  if (!colSize) {
4
4
  return `col-${defaultIfEmpty || 12}`;
5
5
  }
6
- return this.getClasses(`col-${colSize.default}`, `col-md-${colSize.medium || colSize.default}`, `col-sm-${(colSize.small || 12)}`);
6
+ return this.getClasses(`col-${colSize.default}`, `col-lg-${colSize.default}`, `col-md-${colSize.medium || colSize.default}`, `col-sm-${(colSize.small || 12)}`);
7
7
  }
8
8
  static getClasses(...classes) {
9
9
  return classes.join(' ').trim();
10
10
  }
11
11
  }
12
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sdW1uLXNpemUuaGVscGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL3NyYy9saWIvdG9vbHMvY29sdW1uLXNpemUuaGVscGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE1BQU0sT0FBTyxnQkFBZ0I7SUFDekIsTUFBTSxDQUFDLGNBQWMsQ0FBQyxPQUF1QixFQUFFLGNBQXVCO1FBQ2xFLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztZQUNYLE9BQU8sT0FBTyxjQUFjLElBQUksRUFBRSxFQUFFLENBQUM7UUFDekMsQ0FBQztRQUVELE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FDbEIsT0FBTyxPQUFPLENBQUMsT0FBTyxFQUFFLEVBQ3hCLFVBQVUsT0FBTyxDQUFDLE1BQU0sSUFBSSxPQUFPLENBQUMsT0FBTyxFQUFFLEVBQzdDLFVBQVUsQ0FBQyxPQUFPLENBQUMsS0FBSyxJQUFJLEVBQUUsQ0FBQyxFQUFFLENBQ3BDLENBQUM7SUFDTixDQUFDO0lBRUQsTUFBTSxDQUFDLFVBQVUsQ0FBQyxHQUFHLE9BQWlCO1FBQ2xDLE9BQU8sT0FBTyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUNwQyxDQUFDO0NBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBSb3dDb2x1bW5TaXplIH0gZnJvbSAnLi4vbW9kZWxzL3Jvdy1jb2x1bW4tc2l6ZSc7XG5cbmV4cG9ydCBjbGFzcyBDb2x1bW5TaXplSGVscGVyIHtcbiAgICBzdGF0aWMgZ2V0U2l6ZUNsYXNzZXMoY29sU2l6ZT86IFJvd0NvbHVtblNpemUsIGRlZmF1bHRJZkVtcHR5PzogbnVtYmVyKTogc3RyaW5nIHtcbiAgICAgICAgaWYgKCFjb2xTaXplKSB7XG4gICAgICAgICAgICByZXR1cm4gYGNvbC0ke2RlZmF1bHRJZkVtcHR5IHx8IDEyfWA7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gdGhpcy5nZXRDbGFzc2VzKFxuICAgICAgICAgICAgYGNvbC0ke2NvbFNpemUuZGVmYXVsdH1gLFxuICAgICAgICAgICAgYGNvbC1tZC0ke2NvbFNpemUubWVkaXVtIHx8IGNvbFNpemUuZGVmYXVsdH1gLFxuICAgICAgICAgICAgYGNvbC1zbS0keyhjb2xTaXplLnNtYWxsIHx8IDEyKX1gXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgc3RhdGljIGdldENsYXNzZXMoLi4uY2xhc3Nlczogc3RyaW5nW10pOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gY2xhc3Nlcy5qb2luKCcgJykudHJpbSgpO1xuICAgIH1cbn1cbiJdfQ==
12
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sdW1uLXNpemUuaGVscGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL3NyYy9saWIvdG9vbHMvY29sdW1uLXNpemUuaGVscGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE1BQU0sT0FBTyxnQkFBZ0I7SUFDekIsTUFBTSxDQUFDLGNBQWMsQ0FBQyxPQUF1QixFQUFFLGNBQXVCO1FBQ2xFLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztZQUNYLE9BQU8sT0FBTyxjQUFjLElBQUksRUFBRSxFQUFFLENBQUM7UUFDekMsQ0FBQztRQUVELE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FDbEIsT0FBTyxPQUFPLENBQUMsT0FBTyxFQUFFLEVBQ3hCLFVBQVUsT0FBTyxDQUFDLE9BQU8sRUFBRSxFQUMzQixVQUFVLE9BQU8sQ0FBQyxNQUFNLElBQUksT0FBTyxDQUFDLE9BQU8sRUFBRSxFQUM3QyxVQUFVLENBQUMsT0FBTyxDQUFDLEtBQUssSUFBSSxFQUFFLENBQUMsRUFBRSxDQUNwQyxDQUFDO0lBQ04sQ0FBQztJQUVELE1BQU0sQ0FBQyxVQUFVLENBQUMsR0FBRyxPQUFpQjtRQUNsQyxPQUFPLE9BQU8sQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDcEMsQ0FBQztDQUNKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUm93Q29sdW1uU2l6ZSB9IGZyb20gJy4uL21vZGVscy9yb3ctY29sdW1uLXNpemUnO1xuXG5leHBvcnQgY2xhc3MgQ29sdW1uU2l6ZUhlbHBlciB7XG4gICAgc3RhdGljIGdldFNpemVDbGFzc2VzKGNvbFNpemU/OiBSb3dDb2x1bW5TaXplLCBkZWZhdWx0SWZFbXB0eT86IG51bWJlcik6IHN0cmluZyB7XG4gICAgICAgIGlmICghY29sU2l6ZSkge1xuICAgICAgICAgICAgcmV0dXJuIGBjb2wtJHtkZWZhdWx0SWZFbXB0eSB8fCAxMn1gO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHRoaXMuZ2V0Q2xhc3NlcyhcbiAgICAgICAgICAgIGBjb2wtJHtjb2xTaXplLmRlZmF1bHR9YCxcbiAgICAgICAgICAgIGBjb2wtbGctJHtjb2xTaXplLmRlZmF1bHR9YCxcbiAgICAgICAgICAgIGBjb2wtbWQtJHtjb2xTaXplLm1lZGl1bSB8fCBjb2xTaXplLmRlZmF1bHR9YCxcbiAgICAgICAgICAgIGBjb2wtc20tJHsoY29sU2l6ZS5zbWFsbCB8fCAxMil9YFxuICAgICAgICApO1xuICAgIH1cblxuICAgIHN0YXRpYyBnZXRDbGFzc2VzKC4uLmNsYXNzZXM6IHN0cmluZ1tdKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIGNsYXNzZXMuam9pbignICcpLnRyaW0oKTtcbiAgICB9XG59XG4iXX0=
@@ -2,7 +2,7 @@ import * as i0 from '@angular/core';
2
2
  import { inject, Injectable, EventEmitter, input, Component, HostBinding, Output, model, effect, NgModule } from '@angular/core';
3
3
  import * as i1$1 from '@angular/forms';
4
4
  import { FormGroup, Validators, FormControl, ReactiveFormsModule } from '@angular/forms';
5
- import { TextService } from '@updevs/sdk';
5
+ import { TextService, UpdSdkModule } from '@updevs/sdk';
6
6
  import { BaseComponent } from '@updevs/sdk/layout';
7
7
  import * as i2$1 from '@updevs/components/button';
8
8
  import { UpdButtonModule } from '@updevs/components/button';
@@ -100,8 +100,8 @@ class DynamicFieldComponent extends BaseComponent {
100
100
  this.field = input.required();
101
101
  this.layout = input.required();
102
102
  this.validationStatusDescriptions = [];
103
- this.errorsHelper = inject(ErrorsHelper);
104
103
  this.textService = inject(TextService);
104
+ this.errorsHelper = inject(ErrorsHelper);
105
105
  }
106
106
  get formControl() {
107
107
  return this.formGroup().controls[this.field().name];
@@ -185,11 +185,11 @@ class DynamicFieldComponent extends BaseComponent {
185
185
  this.wrapperClasses = ColumnSizeHelper.getSizeClasses(this.field().colSize);
186
186
  }
187
187
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: DynamicFieldComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
188
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.1.0", type: DynamicFieldComponent, selector: "upd-dynamic-field", inputs: { formGroup: { classPropertyName: "formGroup", publicName: "formGroup", isSignal: true, isRequired: true, transformFunction: null }, field: { classPropertyName: "field", publicName: "field", isSignal: true, isRequired: true, transformFunction: null }, layout: { classPropertyName: "layout", publicName: "layout", isSignal: true, isRequired: true, transformFunction: null } }, outputs: { submitForm: "submitForm" }, host: { properties: { "class": "this.wrapperClasses" } }, usesInheritance: true, ngImport: i0, template: "@switch (field().type) {\n @case (DynamicFieldType.Input) {\n <upd-input [name]=\"field().name\" [label]=\"field().label\" [placeholder]=\"field().placeholder\" [hint]=\"field().hint\"\n [hintAsTooltip]=\"field().hintAsTooltip || false\" [validationStatus]=\"validationStatus\"\n [validationStatusDescriptions]=\"validationStatusDescriptions\" [layout]=\"layout()\" [isDisabled]=\"field().isDisabled || false\"\n [type]=\"inputField.inputType || 'text'\" [labelColSize]=\"field().labelColSize\" [value]=\"formControl.value\"\n (valueChange)=\"formControl.setValue($event)\" (blurred)=\"onBlur()\" (keyUpEnter)=\"onInputEnter()\"></upd-input>\n }\n @case (DynamicFieldType.Checkbox) {\n <upd-checkbox [name]=\"field().name\" [label]=\"field().label\" [hint]=\"field().hint\" [hintAsTooltip]=\"field().hintAsTooltip || false\"\n [validationStatus]=\"validationStatus\" [validationStatusDescriptions]=\"validationStatusDescriptions\" [value]=\"true\"\n [isDisabled]=\"field().isDisabled || false\" [isChecked]=\"formControl.value\" [isInline]=\"checkboxField.isInline || false\"\n [isSwitch]=\"checkboxField.isSwitch || false\" (changed)=\"formControl.setValue($event)\"></upd-checkbox>\n }\n @case (DynamicFieldType.CheckboxGroup) {\n @if (!!field().label) {\n <label class=\"form-label\">{{ getText(field().label) }}</label>\n }\n\n @for (option of checkboxGroupOptionsKeys; track option) {\n <upd-checkbox [name]=\"field().name\" [label]=\"getOptionDescription(option, 'checkbox')\" [hint]=\"field().hint\"\n [hintAsTooltip]=\"field().hintAsTooltip || false\" [validationStatus]=\"validationStatus\"\n [validationStatusDescriptions]=\"validationStatusDescriptions\" [value]=\"option\" [isDisabled]=\"field().isDisabled || false\"\n [isChecked]=\"formControl.value\" [isInline]=\"checkboxField.isInline || false\" [isSwitch]=\"checkboxField.isSwitch || false\"\n (changed)=\"formControl.setValue(option)\"></upd-checkbox>\n }\n }\n @case (DynamicFieldType.Radio) {\n <upd-radio [name]=\"field().name\" [label]=\"field().label\" [hint]=\"field().hint\" [hintAsTooltip]=\"field().hintAsTooltip || false\"\n [validationStatus]=\"validationStatus\" [validationStatusDescriptions]=\"validationStatusDescriptions\" [value]=\"true\"\n [isChecked]=\"formControl.value\" [isDisabled]=\"field().isDisabled || false\" [isInline]=\"radioField.isInline || false\"\n (selected)=\"formControl.setValue($event)\">\n </upd-radio>\n }\n @case (DynamicFieldType.RadioGroup) {\n @if (!!field().label) {\n <label class=\"form-label\">{{ getText(field().label) }}</label>\n }\n\n @for (option of radioGroupOptionsKeys; track option) {\n <upd-radio [name]=\"field().name\" [label]=\"getOptionDescription(option, 'radio')\" [hint]=\"field().hint\"\n [hintAsTooltip]=\"field().hintAsTooltip || false\" [validationStatus]=\"validationStatus\"\n [validationStatusDescriptions]=\"validationStatusDescriptions\" [value]=\"option\" [isDisabled]=\"field().isDisabled || false\"\n [isChecked]=\"formControl.value\" [isInline]=\"checkboxField.isInline || false\"\n (selected)=\"formControl.setValue(option)\"></upd-radio>\n }\n }\n @case (DynamicFieldType.Select) {\n <upd-select [name]=\"field().name\" [label]=\"field().label\" [hint]=\"field().hint\" [hintAsTooltip]=\"field().hintAsTooltip || false\"\n [validationStatus]=\"validationStatus\" [validationStatusDescriptions]=\"validationStatusDescriptions\"\n [useSystemStyle]=\"singleSelectField.useSystemStyle || false\" [isDisabled]=\"field().isDisabled || false\"\n [items]=\"selectField.items\" [layout]=\"layout()\" [labelColSize]=\"field().labelColSize\" [store]=\"selectField.store!\"\n [observable]=\"selectField.observable\" [itemKey]=\"selectField.itemKey\" [itemValue]=\"selectField.itemValue\"\n [dropdownMaxHeight]=\"selectField.dropdownMaxHeight || SelectDefaults.dropdownMaxHeight\"\n [typeaheadDebounce]=\"selectField.typeaheadDebounce || SelectDefaults.typeaheadDebounce\"\n [shouldAutoSearch]=\"selectField.shouldAutoSearch || SelectDefaults.shouldAutoSearch\"\n [shouldCloseOnOutsideClick]=\"selectField.shouldCloseOnOutsideClick || SelectDefaults.shouldCloseOnOutsideClick\"\n (selectedItem)=\"formControl.setValue($event?.value)\"></upd-select>\n }\n @case (DynamicFieldType.SelectMultiple) {\n <upd-select-multiple [name]=\"field().name\" [label]=\"field().label\" [hint]=\"field().hint\"\n [hintAsTooltip]=\"field().hintAsTooltip || false\" [validationStatus]=\"validationStatus\"\n [validationStatusDescriptions]=\"validationStatusDescriptions\" [isDisabled]=\"field().isDisabled || false\"\n [items]=\"selectField.items\" [layout]=\"layout()\" [labelColSize]=\"field().labelColSize\" [store]=\"selectField.store!\"\n [observable]=\"selectField.observable\" [itemKey]=\"selectField.itemKey\" [itemValue]=\"selectField.itemValue\"\n [dropdownMaxHeight]=\"selectField.dropdownMaxHeight || SelectDefaults.dropdownMaxHeight\"\n [typeaheadDebounce]=\"selectField.typeaheadDebounce || SelectDefaults.typeaheadDebounce\"\n [shouldAutoSearch]=\"selectField.shouldAutoSearch || SelectDefaults.shouldAutoSearch\"\n [shouldCloseOnOutsideClick]=\"selectField.shouldCloseOnOutsideClick || SelectDefaults.shouldCloseOnOutsideClick\"\n (selectedIds)=\"formControl.setValue($event)\"></upd-select-multiple>\n }\n @case (DynamicFieldType.Label) {\n <label class=\"form-label\">{{ getText(field().label) }}</label>\n }\n @case (DynamicFieldType.TextArea) {\n <upd-textarea [name]=\"field().name\" [label]=\"field().label\" [placeholder]=\"field().placeholder\" [hint]=\"field().hint\"\n [hintAsTooltip]=\"field().hintAsTooltip || false\" [validationStatus]=\"validationStatus\"\n [validationStatusDescriptions]=\"validationStatusDescriptions\" [isDisabled]=\"field().isDisabled || false\"\n [value]=\"formControl.value\" [customClasses]=\"textareaField.customClasses\" [wrapperClasses]=\"textareaField.wrapperClasses\"\n [maxLength]=\"textareaField.maxLength\" [rows]=\"textareaField.rows\"\n [displayCharactersCount]=\"textareaField.displayCharactersCount || false\"></upd-textarea>\n }\n @case (DynamicFieldType.FileUpload) {\n <upd-file-upload [name]=\"field().name\" [label]=\"field().label\" [hint]=\"field().hint\" [isDisabled]=\"field().isDisabled || false\"\n [hintAsTooltip]=\"field().hintAsTooltip || false\" [validationStatus]=\"validationStatus\" [fileName]=\"fileNameControl?.value\"\n [validationStatusDescriptions]=\"validationStatusDescriptions\" [allowFilesDrop]=\"fileUploadField.allowFilesDrop || false\"\n [title]=\"fileUploadField.title\" [labelColSize]=\"field().labelColSize\" [minFileSize]=\"fileUploadField.minFileSize\"\n [isMultiple]=\"fileUploadField.isMultiple || false\" [allowedExtensions]=\"fileUploadField.allowedExtensions || '*'\"\n [maxFileSize]=\"fileUploadField.maxFileSize\" [layout]=\"layout()\" (fileChanged)=\"handleFileSelected($event)\"></upd-file-upload>\n }\n}\n", styles: [""], dependencies: [{ kind: "component", type: i1.InputComponent, selector: "upd-input", inputs: ["type", "mask", "maskConfig", "value", "size", "customClasses", "wrapperClasses", "maxLength", "isPlainText", "isReadOnly", "isLoading", "isRound", "isFlush", "isInputGroupFlat", "isPrependButton", "isAppendButton", "isFloating", "loaderPosition", "prependIconModel", "appendIconModel", "isValidationStatusLight", "layout"], outputs: ["valueChange", "blurred", "keyDown", "keyDownEsc", "keyUpEnter"] }, { kind: "component", type: i2.CheckboxComponent, selector: "upd-checkbox", inputs: ["wrapperClasses", "value", "customClasses", "isChecked", "isInline", "isSwitch", "isIndeterminate"], outputs: ["changed", "isCheckedChange", "isIndeterminateChange"] }, { kind: "component", type: i3.RadioComponent, selector: "upd-radio", inputs: ["wrapperClasses", "value", "customClasses", "isChecked", "isInline"], outputs: ["selected"] }, { kind: "component", type: i4.SelectComponent, selector: "upd-select", inputs: ["useSystemStyle", "shouldShowClearButton", "isCompact", "selected"], outputs: ["selectedItem"] }, { kind: "component", type: i4.SelectMultipleComponent, selector: "upd-select-multiple", outputs: ["selectedItems", "selectedIds"] }, { kind: "component", type: i5.TextareaComponent, selector: "upd-textarea", inputs: ["value", "customClasses", "wrapperClasses", "maxLength", "rows", "displayCharactersCount"], outputs: ["valueChange"] }, { kind: "component", type: i6.FileUploadComponent, selector: "upd-file-upload", inputs: ["fileName", "title", "allowFilesDrop", "isMultiple", "allowedExtensions", "minFileSize", "maxFileSize", "layout"], outputs: ["fileChanged"] }] }); }
188
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.1.0", type: DynamicFieldComponent, selector: "upd-dynamic-field", inputs: { formGroup: { classPropertyName: "formGroup", publicName: "formGroup", isSignal: true, isRequired: true, transformFunction: null }, field: { classPropertyName: "field", publicName: "field", isSignal: true, isRequired: true, transformFunction: null }, layout: { classPropertyName: "layout", publicName: "layout", isSignal: true, isRequired: true, transformFunction: null } }, outputs: { submitForm: "submitForm" }, host: { properties: { "class": "this.wrapperClasses" } }, usesInheritance: true, ngImport: i0, template: "@switch (field().type) {\n @case (DynamicFieldType.Input) {\n <upd-input [name]=\"field().name\" [label]=\"field().label\" [placeholder]=\"field().placeholder\" [hint]=\"field().hint\"\n [hintAsTooltip]=\"field().hintAsTooltip || false\" [validationStatus]=\"validationStatus\"\n [validationStatusDescriptions]=\"validationStatusDescriptions\" [layout]=\"layout()\" [isDisabled]=\"field().isDisabled || false\"\n [type]=\"inputField.inputType || 'text'\" [labelColSize]=\"field().labelColSize\" [value]=\"formControl.value\"\n (valueChange)=\"formControl.setValue($event)\" (blurred)=\"onBlur()\" (keyUpEnter)=\"onInputEnter()\">\n @if (!!inputField.prefix) {\n <ng-template updInputPrepend>\n {{ textService.getText(inputField.prefix) }}\n </ng-template>\n }\n\n @if (!!inputField.suffix) {\n <ng-template updInputAppend>\n {{ textService.getText(inputField.suffix) }}\n </ng-template>\n }\n </upd-input>\n }\n @case (DynamicFieldType.Checkbox) {\n <upd-checkbox [name]=\"field().name\" [label]=\"field().label\" [hint]=\"field().hint\" [hintAsTooltip]=\"field().hintAsTooltip || false\"\n [validationStatus]=\"validationStatus\" [validationStatusDescriptions]=\"validationStatusDescriptions\" [value]=\"true\"\n [isDisabled]=\"field().isDisabled || false\" [isChecked]=\"formControl.value\" [isInline]=\"checkboxField.isInline || false\"\n [isSwitch]=\"checkboxField.isSwitch || false\" (changed)=\"formControl.setValue($event)\"></upd-checkbox>\n }\n @case (DynamicFieldType.CheckboxGroup) {\n @if (!!field().label) {\n <label class=\"form-label\">{{ getText(field().label) }}</label>\n }\n\n @for (option of checkboxGroupOptionsKeys; track option) {\n <upd-checkbox [name]=\"field().name\" [label]=\"getOptionDescription(option, 'checkbox')\" [hint]=\"field().hint\"\n [hintAsTooltip]=\"field().hintAsTooltip || false\" [validationStatus]=\"validationStatus\"\n [validationStatusDescriptions]=\"validationStatusDescriptions\" [value]=\"option\" [isDisabled]=\"field().isDisabled || false\"\n [isChecked]=\"formControl.value\" [isInline]=\"checkboxField.isInline || false\" [isSwitch]=\"checkboxField.isSwitch || false\"\n (changed)=\"formControl.setValue(option)\"></upd-checkbox>\n }\n }\n @case (DynamicFieldType.Radio) {\n <upd-radio [name]=\"field().name\" [label]=\"field().label\" [hint]=\"field().hint\" [hintAsTooltip]=\"field().hintAsTooltip || false\"\n [validationStatus]=\"validationStatus\" [validationStatusDescriptions]=\"validationStatusDescriptions\" [value]=\"true\"\n [isChecked]=\"formControl.value\" [isDisabled]=\"field().isDisabled || false\" [isInline]=\"radioField.isInline || false\"\n (selected)=\"formControl.setValue($event)\">\n </upd-radio>\n }\n @case (DynamicFieldType.RadioGroup) {\n @if (!!field().label) {\n <label class=\"form-label\">{{ getText(field().label) }}</label>\n }\n\n @for (option of radioGroupOptionsKeys; track option) {\n <upd-radio [name]=\"field().name\" [label]=\"getOptionDescription(option, 'radio')\" [hint]=\"field().hint\"\n [hintAsTooltip]=\"field().hintAsTooltip || false\" [validationStatus]=\"validationStatus\"\n [validationStatusDescriptions]=\"validationStatusDescriptions\" [value]=\"option\" [isDisabled]=\"field().isDisabled || false\"\n [isChecked]=\"formControl.value\" [isInline]=\"checkboxField.isInline || false\"\n (selected)=\"formControl.setValue(option)\"></upd-radio>\n }\n }\n @case (DynamicFieldType.Select) {\n <upd-select [name]=\"field().name\" [label]=\"field().label\" [hint]=\"field().hint\" [hintAsTooltip]=\"field().hintAsTooltip || false\"\n [validationStatus]=\"validationStatus\" [validationStatusDescriptions]=\"validationStatusDescriptions\"\n [useSystemStyle]=\"singleSelectField.useSystemStyle || false\" [isDisabled]=\"field().isDisabled || false\"\n [items]=\"selectField.items\" [layout]=\"layout()\" [labelColSize]=\"field().labelColSize\" [store]=\"selectField.store!\"\n [observable]=\"selectField.observable\" [itemKey]=\"selectField.itemKey\" [itemValue]=\"selectField.itemValue\"\n [dropdownMaxHeight]=\"selectField.dropdownMaxHeight || SelectDefaults.dropdownMaxHeight\"\n [typeaheadDebounce]=\"selectField.typeaheadDebounce || SelectDefaults.typeaheadDebounce\"\n [shouldAutoSearch]=\"selectField.shouldAutoSearch || SelectDefaults.shouldAutoSearch\"\n [shouldCloseOnOutsideClick]=\"selectField.shouldCloseOnOutsideClick || SelectDefaults.shouldCloseOnOutsideClick\"\n (selectedItem)=\"formControl.setValue($event?.value)\"></upd-select>\n }\n @case (DynamicFieldType.SelectMultiple) {\n <upd-select-multiple [name]=\"field().name\" [label]=\"field().label\" [hint]=\"field().hint\"\n [hintAsTooltip]=\"field().hintAsTooltip || false\" [validationStatus]=\"validationStatus\"\n [validationStatusDescriptions]=\"validationStatusDescriptions\" [isDisabled]=\"field().isDisabled || false\"\n [items]=\"selectField.items\" [layout]=\"layout()\" [labelColSize]=\"field().labelColSize\" [store]=\"selectField.store!\"\n [observable]=\"selectField.observable\" [itemKey]=\"selectField.itemKey\" [itemValue]=\"selectField.itemValue\"\n [dropdownMaxHeight]=\"selectField.dropdownMaxHeight || SelectDefaults.dropdownMaxHeight\"\n [typeaheadDebounce]=\"selectField.typeaheadDebounce || SelectDefaults.typeaheadDebounce\"\n [shouldAutoSearch]=\"selectField.shouldAutoSearch || SelectDefaults.shouldAutoSearch\"\n [shouldCloseOnOutsideClick]=\"selectField.shouldCloseOnOutsideClick || SelectDefaults.shouldCloseOnOutsideClick\"\n (selectedIds)=\"formControl.setValue($event)\"></upd-select-multiple>\n }\n @case (DynamicFieldType.Label) {\n <label class=\"form-label\">{{ getText(field().label) }}</label>\n }\n @case (DynamicFieldType.TextArea) {\n <upd-textarea [name]=\"field().name\" [label]=\"field().label\" [placeholder]=\"field().placeholder\" [hint]=\"field().hint\"\n [hintAsTooltip]=\"field().hintAsTooltip || false\" [validationStatus]=\"validationStatus\"\n [validationStatusDescriptions]=\"validationStatusDescriptions\" [isDisabled]=\"field().isDisabled || false\"\n [value]=\"formControl.value\" [customClasses]=\"textareaField.customClasses\" [wrapperClasses]=\"textareaField.wrapperClasses\"\n [maxLength]=\"textareaField.maxLength\" [rows]=\"textareaField.rows\"\n [displayCharactersCount]=\"textareaField.displayCharactersCount || false\"></upd-textarea>\n }\n @case (DynamicFieldType.FileUpload) {\n <upd-file-upload [name]=\"field().name\" [label]=\"field().label\" [hint]=\"field().hint\" [isDisabled]=\"field().isDisabled || false\"\n [hintAsTooltip]=\"field().hintAsTooltip || false\" [validationStatus]=\"validationStatus\" [fileName]=\"fileNameControl?.value\"\n [validationStatusDescriptions]=\"validationStatusDescriptions\" [allowFilesDrop]=\"fileUploadField.allowFilesDrop || false\"\n [title]=\"fileUploadField.title\" [labelColSize]=\"field().labelColSize\" [minFileSize]=\"fileUploadField.minFileSize\"\n [isMultiple]=\"fileUploadField.isMultiple || false\" [allowedExtensions]=\"fileUploadField.allowedExtensions || '*'\"\n [maxFileSize]=\"fileUploadField.maxFileSize\" [layout]=\"layout()\" (fileChanged)=\"handleFileSelected($event)\"></upd-file-upload>\n }\n}\n", styles: [""], dependencies: [{ kind: "component", type: i1.InputComponent, selector: "upd-input", inputs: ["type", "mask", "maskConfig", "value", "size", "customClasses", "wrapperClasses", "maxLength", "isPlainText", "isReadOnly", "isLoading", "isRound", "isFlush", "isInputGroupFlat", "isPrependButton", "isAppendButton", "isFloating", "loaderPosition", "prependIconModel", "appendIconModel", "isValidationStatusLight", "layout"], outputs: ["valueChange", "blurred", "keyDown", "keyDownEsc", "keyUpEnter"] }, { kind: "directive", type: i1.InputAppendDirective, selector: "ng-template[updInputAppend]" }, { kind: "directive", type: i1.InputPrependDirective, selector: "ng-template[updInputPrepend]" }, { kind: "component", type: i2.CheckboxComponent, selector: "upd-checkbox", inputs: ["wrapperClasses", "value", "customClasses", "isChecked", "isInline", "isSwitch", "isIndeterminate"], outputs: ["changed", "isCheckedChange", "isIndeterminateChange"] }, { kind: "component", type: i3.RadioComponent, selector: "upd-radio", inputs: ["wrapperClasses", "value", "customClasses", "isChecked", "isInline"], outputs: ["selected"] }, { kind: "component", type: i4.SelectComponent, selector: "upd-select", inputs: ["useSystemStyle", "shouldShowClearButton", "isCompact", "selected"], outputs: ["selectedItem"] }, { kind: "component", type: i4.SelectMultipleComponent, selector: "upd-select-multiple", outputs: ["selectedItems", "selectedIds"] }, { kind: "component", type: i5.TextareaComponent, selector: "upd-textarea", inputs: ["value", "customClasses", "wrapperClasses", "maxLength", "rows", "displayCharactersCount"], outputs: ["valueChange"] }, { kind: "component", type: i6.FileUploadComponent, selector: "upd-file-upload", inputs: ["fileName", "title", "allowFilesDrop", "isMultiple", "allowedExtensions", "minFileSize", "maxFileSize", "layout"], outputs: ["fileChanged"] }] }); }
189
189
  }
190
190
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: DynamicFieldComponent, decorators: [{
191
191
  type: Component,
192
- args: [{ selector: 'upd-dynamic-field', template: "@switch (field().type) {\n @case (DynamicFieldType.Input) {\n <upd-input [name]=\"field().name\" [label]=\"field().label\" [placeholder]=\"field().placeholder\" [hint]=\"field().hint\"\n [hintAsTooltip]=\"field().hintAsTooltip || false\" [validationStatus]=\"validationStatus\"\n [validationStatusDescriptions]=\"validationStatusDescriptions\" [layout]=\"layout()\" [isDisabled]=\"field().isDisabled || false\"\n [type]=\"inputField.inputType || 'text'\" [labelColSize]=\"field().labelColSize\" [value]=\"formControl.value\"\n (valueChange)=\"formControl.setValue($event)\" (blurred)=\"onBlur()\" (keyUpEnter)=\"onInputEnter()\"></upd-input>\n }\n @case (DynamicFieldType.Checkbox) {\n <upd-checkbox [name]=\"field().name\" [label]=\"field().label\" [hint]=\"field().hint\" [hintAsTooltip]=\"field().hintAsTooltip || false\"\n [validationStatus]=\"validationStatus\" [validationStatusDescriptions]=\"validationStatusDescriptions\" [value]=\"true\"\n [isDisabled]=\"field().isDisabled || false\" [isChecked]=\"formControl.value\" [isInline]=\"checkboxField.isInline || false\"\n [isSwitch]=\"checkboxField.isSwitch || false\" (changed)=\"formControl.setValue($event)\"></upd-checkbox>\n }\n @case (DynamicFieldType.CheckboxGroup) {\n @if (!!field().label) {\n <label class=\"form-label\">{{ getText(field().label) }}</label>\n }\n\n @for (option of checkboxGroupOptionsKeys; track option) {\n <upd-checkbox [name]=\"field().name\" [label]=\"getOptionDescription(option, 'checkbox')\" [hint]=\"field().hint\"\n [hintAsTooltip]=\"field().hintAsTooltip || false\" [validationStatus]=\"validationStatus\"\n [validationStatusDescriptions]=\"validationStatusDescriptions\" [value]=\"option\" [isDisabled]=\"field().isDisabled || false\"\n [isChecked]=\"formControl.value\" [isInline]=\"checkboxField.isInline || false\" [isSwitch]=\"checkboxField.isSwitch || false\"\n (changed)=\"formControl.setValue(option)\"></upd-checkbox>\n }\n }\n @case (DynamicFieldType.Radio) {\n <upd-radio [name]=\"field().name\" [label]=\"field().label\" [hint]=\"field().hint\" [hintAsTooltip]=\"field().hintAsTooltip || false\"\n [validationStatus]=\"validationStatus\" [validationStatusDescriptions]=\"validationStatusDescriptions\" [value]=\"true\"\n [isChecked]=\"formControl.value\" [isDisabled]=\"field().isDisabled || false\" [isInline]=\"radioField.isInline || false\"\n (selected)=\"formControl.setValue($event)\">\n </upd-radio>\n }\n @case (DynamicFieldType.RadioGroup) {\n @if (!!field().label) {\n <label class=\"form-label\">{{ getText(field().label) }}</label>\n }\n\n @for (option of radioGroupOptionsKeys; track option) {\n <upd-radio [name]=\"field().name\" [label]=\"getOptionDescription(option, 'radio')\" [hint]=\"field().hint\"\n [hintAsTooltip]=\"field().hintAsTooltip || false\" [validationStatus]=\"validationStatus\"\n [validationStatusDescriptions]=\"validationStatusDescriptions\" [value]=\"option\" [isDisabled]=\"field().isDisabled || false\"\n [isChecked]=\"formControl.value\" [isInline]=\"checkboxField.isInline || false\"\n (selected)=\"formControl.setValue(option)\"></upd-radio>\n }\n }\n @case (DynamicFieldType.Select) {\n <upd-select [name]=\"field().name\" [label]=\"field().label\" [hint]=\"field().hint\" [hintAsTooltip]=\"field().hintAsTooltip || false\"\n [validationStatus]=\"validationStatus\" [validationStatusDescriptions]=\"validationStatusDescriptions\"\n [useSystemStyle]=\"singleSelectField.useSystemStyle || false\" [isDisabled]=\"field().isDisabled || false\"\n [items]=\"selectField.items\" [layout]=\"layout()\" [labelColSize]=\"field().labelColSize\" [store]=\"selectField.store!\"\n [observable]=\"selectField.observable\" [itemKey]=\"selectField.itemKey\" [itemValue]=\"selectField.itemValue\"\n [dropdownMaxHeight]=\"selectField.dropdownMaxHeight || SelectDefaults.dropdownMaxHeight\"\n [typeaheadDebounce]=\"selectField.typeaheadDebounce || SelectDefaults.typeaheadDebounce\"\n [shouldAutoSearch]=\"selectField.shouldAutoSearch || SelectDefaults.shouldAutoSearch\"\n [shouldCloseOnOutsideClick]=\"selectField.shouldCloseOnOutsideClick || SelectDefaults.shouldCloseOnOutsideClick\"\n (selectedItem)=\"formControl.setValue($event?.value)\"></upd-select>\n }\n @case (DynamicFieldType.SelectMultiple) {\n <upd-select-multiple [name]=\"field().name\" [label]=\"field().label\" [hint]=\"field().hint\"\n [hintAsTooltip]=\"field().hintAsTooltip || false\" [validationStatus]=\"validationStatus\"\n [validationStatusDescriptions]=\"validationStatusDescriptions\" [isDisabled]=\"field().isDisabled || false\"\n [items]=\"selectField.items\" [layout]=\"layout()\" [labelColSize]=\"field().labelColSize\" [store]=\"selectField.store!\"\n [observable]=\"selectField.observable\" [itemKey]=\"selectField.itemKey\" [itemValue]=\"selectField.itemValue\"\n [dropdownMaxHeight]=\"selectField.dropdownMaxHeight || SelectDefaults.dropdownMaxHeight\"\n [typeaheadDebounce]=\"selectField.typeaheadDebounce || SelectDefaults.typeaheadDebounce\"\n [shouldAutoSearch]=\"selectField.shouldAutoSearch || SelectDefaults.shouldAutoSearch\"\n [shouldCloseOnOutsideClick]=\"selectField.shouldCloseOnOutsideClick || SelectDefaults.shouldCloseOnOutsideClick\"\n (selectedIds)=\"formControl.setValue($event)\"></upd-select-multiple>\n }\n @case (DynamicFieldType.Label) {\n <label class=\"form-label\">{{ getText(field().label) }}</label>\n }\n @case (DynamicFieldType.TextArea) {\n <upd-textarea [name]=\"field().name\" [label]=\"field().label\" [placeholder]=\"field().placeholder\" [hint]=\"field().hint\"\n [hintAsTooltip]=\"field().hintAsTooltip || false\" [validationStatus]=\"validationStatus\"\n [validationStatusDescriptions]=\"validationStatusDescriptions\" [isDisabled]=\"field().isDisabled || false\"\n [value]=\"formControl.value\" [customClasses]=\"textareaField.customClasses\" [wrapperClasses]=\"textareaField.wrapperClasses\"\n [maxLength]=\"textareaField.maxLength\" [rows]=\"textareaField.rows\"\n [displayCharactersCount]=\"textareaField.displayCharactersCount || false\"></upd-textarea>\n }\n @case (DynamicFieldType.FileUpload) {\n <upd-file-upload [name]=\"field().name\" [label]=\"field().label\" [hint]=\"field().hint\" [isDisabled]=\"field().isDisabled || false\"\n [hintAsTooltip]=\"field().hintAsTooltip || false\" [validationStatus]=\"validationStatus\" [fileName]=\"fileNameControl?.value\"\n [validationStatusDescriptions]=\"validationStatusDescriptions\" [allowFilesDrop]=\"fileUploadField.allowFilesDrop || false\"\n [title]=\"fileUploadField.title\" [labelColSize]=\"field().labelColSize\" [minFileSize]=\"fileUploadField.minFileSize\"\n [isMultiple]=\"fileUploadField.isMultiple || false\" [allowedExtensions]=\"fileUploadField.allowedExtensions || '*'\"\n [maxFileSize]=\"fileUploadField.maxFileSize\" [layout]=\"layout()\" (fileChanged)=\"handleFileSelected($event)\"></upd-file-upload>\n }\n}\n" }]
192
+ args: [{ selector: 'upd-dynamic-field', template: "@switch (field().type) {\n @case (DynamicFieldType.Input) {\n <upd-input [name]=\"field().name\" [label]=\"field().label\" [placeholder]=\"field().placeholder\" [hint]=\"field().hint\"\n [hintAsTooltip]=\"field().hintAsTooltip || false\" [validationStatus]=\"validationStatus\"\n [validationStatusDescriptions]=\"validationStatusDescriptions\" [layout]=\"layout()\" [isDisabled]=\"field().isDisabled || false\"\n [type]=\"inputField.inputType || 'text'\" [labelColSize]=\"field().labelColSize\" [value]=\"formControl.value\"\n (valueChange)=\"formControl.setValue($event)\" (blurred)=\"onBlur()\" (keyUpEnter)=\"onInputEnter()\">\n @if (!!inputField.prefix) {\n <ng-template updInputPrepend>\n {{ textService.getText(inputField.prefix) }}\n </ng-template>\n }\n\n @if (!!inputField.suffix) {\n <ng-template updInputAppend>\n {{ textService.getText(inputField.suffix) }}\n </ng-template>\n }\n </upd-input>\n }\n @case (DynamicFieldType.Checkbox) {\n <upd-checkbox [name]=\"field().name\" [label]=\"field().label\" [hint]=\"field().hint\" [hintAsTooltip]=\"field().hintAsTooltip || false\"\n [validationStatus]=\"validationStatus\" [validationStatusDescriptions]=\"validationStatusDescriptions\" [value]=\"true\"\n [isDisabled]=\"field().isDisabled || false\" [isChecked]=\"formControl.value\" [isInline]=\"checkboxField.isInline || false\"\n [isSwitch]=\"checkboxField.isSwitch || false\" (changed)=\"formControl.setValue($event)\"></upd-checkbox>\n }\n @case (DynamicFieldType.CheckboxGroup) {\n @if (!!field().label) {\n <label class=\"form-label\">{{ getText(field().label) }}</label>\n }\n\n @for (option of checkboxGroupOptionsKeys; track option) {\n <upd-checkbox [name]=\"field().name\" [label]=\"getOptionDescription(option, 'checkbox')\" [hint]=\"field().hint\"\n [hintAsTooltip]=\"field().hintAsTooltip || false\" [validationStatus]=\"validationStatus\"\n [validationStatusDescriptions]=\"validationStatusDescriptions\" [value]=\"option\" [isDisabled]=\"field().isDisabled || false\"\n [isChecked]=\"formControl.value\" [isInline]=\"checkboxField.isInline || false\" [isSwitch]=\"checkboxField.isSwitch || false\"\n (changed)=\"formControl.setValue(option)\"></upd-checkbox>\n }\n }\n @case (DynamicFieldType.Radio) {\n <upd-radio [name]=\"field().name\" [label]=\"field().label\" [hint]=\"field().hint\" [hintAsTooltip]=\"field().hintAsTooltip || false\"\n [validationStatus]=\"validationStatus\" [validationStatusDescriptions]=\"validationStatusDescriptions\" [value]=\"true\"\n [isChecked]=\"formControl.value\" [isDisabled]=\"field().isDisabled || false\" [isInline]=\"radioField.isInline || false\"\n (selected)=\"formControl.setValue($event)\">\n </upd-radio>\n }\n @case (DynamicFieldType.RadioGroup) {\n @if (!!field().label) {\n <label class=\"form-label\">{{ getText(field().label) }}</label>\n }\n\n @for (option of radioGroupOptionsKeys; track option) {\n <upd-radio [name]=\"field().name\" [label]=\"getOptionDescription(option, 'radio')\" [hint]=\"field().hint\"\n [hintAsTooltip]=\"field().hintAsTooltip || false\" [validationStatus]=\"validationStatus\"\n [validationStatusDescriptions]=\"validationStatusDescriptions\" [value]=\"option\" [isDisabled]=\"field().isDisabled || false\"\n [isChecked]=\"formControl.value\" [isInline]=\"checkboxField.isInline || false\"\n (selected)=\"formControl.setValue(option)\"></upd-radio>\n }\n }\n @case (DynamicFieldType.Select) {\n <upd-select [name]=\"field().name\" [label]=\"field().label\" [hint]=\"field().hint\" [hintAsTooltip]=\"field().hintAsTooltip || false\"\n [validationStatus]=\"validationStatus\" [validationStatusDescriptions]=\"validationStatusDescriptions\"\n [useSystemStyle]=\"singleSelectField.useSystemStyle || false\" [isDisabled]=\"field().isDisabled || false\"\n [items]=\"selectField.items\" [layout]=\"layout()\" [labelColSize]=\"field().labelColSize\" [store]=\"selectField.store!\"\n [observable]=\"selectField.observable\" [itemKey]=\"selectField.itemKey\" [itemValue]=\"selectField.itemValue\"\n [dropdownMaxHeight]=\"selectField.dropdownMaxHeight || SelectDefaults.dropdownMaxHeight\"\n [typeaheadDebounce]=\"selectField.typeaheadDebounce || SelectDefaults.typeaheadDebounce\"\n [shouldAutoSearch]=\"selectField.shouldAutoSearch || SelectDefaults.shouldAutoSearch\"\n [shouldCloseOnOutsideClick]=\"selectField.shouldCloseOnOutsideClick || SelectDefaults.shouldCloseOnOutsideClick\"\n (selectedItem)=\"formControl.setValue($event?.value)\"></upd-select>\n }\n @case (DynamicFieldType.SelectMultiple) {\n <upd-select-multiple [name]=\"field().name\" [label]=\"field().label\" [hint]=\"field().hint\"\n [hintAsTooltip]=\"field().hintAsTooltip || false\" [validationStatus]=\"validationStatus\"\n [validationStatusDescriptions]=\"validationStatusDescriptions\" [isDisabled]=\"field().isDisabled || false\"\n [items]=\"selectField.items\" [layout]=\"layout()\" [labelColSize]=\"field().labelColSize\" [store]=\"selectField.store!\"\n [observable]=\"selectField.observable\" [itemKey]=\"selectField.itemKey\" [itemValue]=\"selectField.itemValue\"\n [dropdownMaxHeight]=\"selectField.dropdownMaxHeight || SelectDefaults.dropdownMaxHeight\"\n [typeaheadDebounce]=\"selectField.typeaheadDebounce || SelectDefaults.typeaheadDebounce\"\n [shouldAutoSearch]=\"selectField.shouldAutoSearch || SelectDefaults.shouldAutoSearch\"\n [shouldCloseOnOutsideClick]=\"selectField.shouldCloseOnOutsideClick || SelectDefaults.shouldCloseOnOutsideClick\"\n (selectedIds)=\"formControl.setValue($event)\"></upd-select-multiple>\n }\n @case (DynamicFieldType.Label) {\n <label class=\"form-label\">{{ getText(field().label) }}</label>\n }\n @case (DynamicFieldType.TextArea) {\n <upd-textarea [name]=\"field().name\" [label]=\"field().label\" [placeholder]=\"field().placeholder\" [hint]=\"field().hint\"\n [hintAsTooltip]=\"field().hintAsTooltip || false\" [validationStatus]=\"validationStatus\"\n [validationStatusDescriptions]=\"validationStatusDescriptions\" [isDisabled]=\"field().isDisabled || false\"\n [value]=\"formControl.value\" [customClasses]=\"textareaField.customClasses\" [wrapperClasses]=\"textareaField.wrapperClasses\"\n [maxLength]=\"textareaField.maxLength\" [rows]=\"textareaField.rows\"\n [displayCharactersCount]=\"textareaField.displayCharactersCount || false\"></upd-textarea>\n }\n @case (DynamicFieldType.FileUpload) {\n <upd-file-upload [name]=\"field().name\" [label]=\"field().label\" [hint]=\"field().hint\" [isDisabled]=\"field().isDisabled || false\"\n [hintAsTooltip]=\"field().hintAsTooltip || false\" [validationStatus]=\"validationStatus\" [fileName]=\"fileNameControl?.value\"\n [validationStatusDescriptions]=\"validationStatusDescriptions\" [allowFilesDrop]=\"fileUploadField.allowFilesDrop || false\"\n [title]=\"fileUploadField.title\" [labelColSize]=\"field().labelColSize\" [minFileSize]=\"fileUploadField.minFileSize\"\n [isMultiple]=\"fileUploadField.isMultiple || false\" [allowedExtensions]=\"fileUploadField.allowedExtensions || '*'\"\n [maxFileSize]=\"fileUploadField.maxFileSize\" [layout]=\"layout()\" (fileChanged)=\"handleFileSelected($event)\"></upd-file-upload>\n }\n}\n" }]
193
193
  }], propDecorators: { wrapperClasses: [{
194
194
  type: HostBinding,
195
195
  args: ['class']
@@ -296,11 +296,11 @@ class FormComponent extends BaseComponent {
296
296
  });
297
297
  }
298
298
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: FormComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
299
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.1.0", type: FormComponent, selector: "upd-form", inputs: { rows: { classPropertyName: "rows", publicName: "rows", isSignal: true, isRequired: true, transformFunction: null }, layout: { classPropertyName: "layout", publicName: "layout", isSignal: true, isRequired: false, transformFunction: null }, title: { classPropertyName: "title", publicName: "title", isSignal: true, isRequired: false, transformFunction: null }, hasActionsSection: { classPropertyName: "hasActionsSection", publicName: "hasActionsSection", isSignal: true, isRequired: false, transformFunction: null }, isCard: { classPropertyName: "isCard", publicName: "isCard", isSignal: true, isRequired: false, transformFunction: null }, isDisabled: { classPropertyName: "isDisabled", publicName: "isDisabled", isSignal: true, isRequired: false, transformFunction: null }, isLoading: { classPropertyName: "isLoading", publicName: "isLoading", isSignal: true, isRequired: false, transformFunction: null }, isSaving: { classPropertyName: "isSaving", publicName: "isSaving", isSignal: true, isRequired: false, transformFunction: null }, formData: { classPropertyName: "formData", publicName: "formData", isSignal: true, isRequired: false, transformFunction: null }, formGroup: { classPropertyName: "formGroup", publicName: "formGroup", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { initialized: "initialized", dataLoaded: "dataLoaded", submitted: "submitted", formData: "formDataChange", formGroup: "formGroupChange" }, usesInheritance: true, ngImport: i0, template: "<ng-container *transloco=\"let t; prefix: 'UpDevs.Form'\">\n <div [class.card]=\"isCard()\">\n @if (!!titleText) {\n <div [class.card-header]=\"isCard()\">\n <h3 [class.card-title]=\"isCard()\">{{ titleText }}</h3>\n </div>\n }\n <div [class.card-body]=\"isCard()\">\n @for (row of rows(); track row; let isFirst = $first) {\n <div class=\"row\" [class.mt-4]=\"!isFirst\">\n @for (field of row.fields; track field.name) {\n <upd-dynamic-field [layout]=\"layout()\" [field]=\"field\" [formGroup]=\"formGroup()\" (submitForm)=\"submit()\">\n </upd-dynamic-field>\n }\n </div>\n }\n </div>\n\n @if (hasActionsSection()) {\n <div [class.card-footer]=\"isCard()\" [class.mt-4]=\"!isCard()\">\n <upd-button colorStyle=\"primary\" (clicked)=\"submit()\">\n {{ t('Submit') }}\n </upd-button>\n </div>\n }\n </div>\n</ng-container>\n", styles: [""], dependencies: [{ kind: "directive", type: i1$1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1$1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "component", type: i2$1.ButtonComponent, selector: "upd-button", inputs: ["model", "text", "brandColorStyle", "customClasses", "isOutline", "isGhost", "isSquare", "isPill", "isIcon", "isLoading", "isList", "isFloating", "isAction", "isNavigationLink", "isLink", "shouldIgnoreBtnClass", "iconModel", "iconPosition", "isDisabled", "isActive", "badgeConfig", "colorStyle", "size", "title"], outputs: ["clicked"] }, { kind: "directive", type: i1$2.TranslocoDirective, selector: "[transloco]", inputs: ["transloco", "translocoParams", "translocoScope", "translocoRead", "translocoPrefix", "translocoLang", "translocoLoadingTpl"] }, { kind: "component", type: DynamicFieldComponent, selector: "upd-dynamic-field", inputs: ["formGroup", "field", "layout"], outputs: ["submitForm"] }] }); }
299
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.1.0", type: FormComponent, selector: "upd-form", inputs: { rows: { classPropertyName: "rows", publicName: "rows", isSignal: true, isRequired: true, transformFunction: null }, layout: { classPropertyName: "layout", publicName: "layout", isSignal: true, isRequired: false, transformFunction: null }, title: { classPropertyName: "title", publicName: "title", isSignal: true, isRequired: false, transformFunction: null }, hasActionsSection: { classPropertyName: "hasActionsSection", publicName: "hasActionsSection", isSignal: true, isRequired: false, transformFunction: null }, isCard: { classPropertyName: "isCard", publicName: "isCard", isSignal: true, isRequired: false, transformFunction: null }, isDisabled: { classPropertyName: "isDisabled", publicName: "isDisabled", isSignal: true, isRequired: false, transformFunction: null }, isLoading: { classPropertyName: "isLoading", publicName: "isLoading", isSignal: true, isRequired: false, transformFunction: null }, isSaving: { classPropertyName: "isSaving", publicName: "isSaving", isSignal: true, isRequired: false, transformFunction: null }, formData: { classPropertyName: "formData", publicName: "formData", isSignal: true, isRequired: false, transformFunction: null }, formGroup: { classPropertyName: "formGroup", publicName: "formGroup", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { initialized: "initialized", dataLoaded: "dataLoaded", submitted: "submitted", formData: "formDataChange", formGroup: "formGroupChange" }, usesInheritance: true, ngImport: i0, template: "<ng-container *transloco=\"let t; prefix: 'UpDevs.Form'\">\n <div [class.card]=\"isCard()\">\n @if (!!titleText) {\n <div [class.card-header]=\"isCard()\">\n <h3 [class.card-title]=\"isCard()\">{{ titleText }}</h3>\n </div>\n }\n <div [class.card-body]=\"isCard()\">\n @for (row of rows(); track row; let isFirst = $first) {\n <div class=\"row\" [class.mt-4]=\"!isFirst\">\n @if (!!row.title) {\n <div class=\"card-title\">{{ textService.getText(row.title) }}</div>\n }\n\n @for (field of row.fields; track field.name) {\n <upd-dynamic-field [layout]=\"layout()\" [field]=\"field\" [formGroup]=\"formGroup()\" (submitForm)=\"submit()\">\n </upd-dynamic-field>\n }\n </div>\n }\n </div>\n\n @if (hasActionsSection()) {\n <div [class.card-footer]=\"isCard()\" [class.mt-4]=\"!isCard()\">\n <upd-button colorStyle=\"primary\" (clicked)=\"submit()\">\n {{ t('Submit') }}\n </upd-button>\n </div>\n }\n </div>\n</ng-container>\n", styles: [""], dependencies: [{ kind: "directive", type: i1$1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1$1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "component", type: i2$1.ButtonComponent, selector: "upd-button", inputs: ["model", "text", "brandColorStyle", "customClasses", "isOutline", "isGhost", "isSquare", "isPill", "isIcon", "isLoading", "isList", "isFloating", "isAction", "isNavigationLink", "isLink", "shouldIgnoreBtnClass", "iconModel", "iconPosition", "isDisabled", "isActive", "badgeConfig", "colorStyle", "size", "title"], outputs: ["clicked"] }, { kind: "directive", type: i1$2.TranslocoDirective, selector: "[transloco]", inputs: ["transloco", "translocoParams", "translocoScope", "translocoRead", "translocoPrefix", "translocoLang", "translocoLoadingTpl"] }, { kind: "component", type: DynamicFieldComponent, selector: "upd-dynamic-field", inputs: ["formGroup", "field", "layout"], outputs: ["submitForm"] }] }); }
300
300
  }
301
301
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: FormComponent, decorators: [{
302
302
  type: Component,
303
- args: [{ selector: 'upd-form', template: "<ng-container *transloco=\"let t; prefix: 'UpDevs.Form'\">\n <div [class.card]=\"isCard()\">\n @if (!!titleText) {\n <div [class.card-header]=\"isCard()\">\n <h3 [class.card-title]=\"isCard()\">{{ titleText }}</h3>\n </div>\n }\n <div [class.card-body]=\"isCard()\">\n @for (row of rows(); track row; let isFirst = $first) {\n <div class=\"row\" [class.mt-4]=\"!isFirst\">\n @for (field of row.fields; track field.name) {\n <upd-dynamic-field [layout]=\"layout()\" [field]=\"field\" [formGroup]=\"formGroup()\" (submitForm)=\"submit()\">\n </upd-dynamic-field>\n }\n </div>\n }\n </div>\n\n @if (hasActionsSection()) {\n <div [class.card-footer]=\"isCard()\" [class.mt-4]=\"!isCard()\">\n <upd-button colorStyle=\"primary\" (clicked)=\"submit()\">\n {{ t('Submit') }}\n </upd-button>\n </div>\n }\n </div>\n</ng-container>\n" }]
303
+ args: [{ selector: 'upd-form', template: "<ng-container *transloco=\"let t; prefix: 'UpDevs.Form'\">\n <div [class.card]=\"isCard()\">\n @if (!!titleText) {\n <div [class.card-header]=\"isCard()\">\n <h3 [class.card-title]=\"isCard()\">{{ titleText }}</h3>\n </div>\n }\n <div [class.card-body]=\"isCard()\">\n @for (row of rows(); track row; let isFirst = $first) {\n <div class=\"row\" [class.mt-4]=\"!isFirst\">\n @if (!!row.title) {\n <div class=\"card-title\">{{ textService.getText(row.title) }}</div>\n }\n\n @for (field of row.fields; track field.name) {\n <upd-dynamic-field [layout]=\"layout()\" [field]=\"field\" [formGroup]=\"formGroup()\" (submitForm)=\"submit()\">\n </upd-dynamic-field>\n }\n </div>\n }\n </div>\n\n @if (hasActionsSection()) {\n <div [class.card-footer]=\"isCard()\" [class.mt-4]=\"!isCard()\">\n <upd-button colorStyle=\"primary\" (clicked)=\"submit()\">\n {{ t('Submit') }}\n </upd-button>\n </div>\n }\n </div>\n</ng-container>\n" }]
304
304
  }], ctorParameters: () => [], propDecorators: { initialized: [{
305
305
  type: Output
306
306
  }], dataLoaded: [{
@@ -376,7 +376,8 @@ class UpdFormModule {
376
376
  UpdDatePickerModule,
377
377
  UpdSelectModule,
378
378
  UpdTextareaModule,
379
- UpdFileUploadModule], exports: [FormComponent] }); }
379
+ UpdFileUploadModule,
380
+ UpdSdkModule], exports: [FormComponent] }); }
380
381
  static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: UpdFormModule, providers: [
381
382
  ErrorsHelper
382
383
  ], imports: [CommonModule,
@@ -388,7 +389,8 @@ class UpdFormModule {
388
389
  UpdDatePickerModule,
389
390
  UpdSelectModule,
390
391
  UpdTextareaModule,
391
- UpdFileUploadModule] }); }
392
+ UpdFileUploadModule,
393
+ UpdSdkModule] }); }
392
394
  }
393
395
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: UpdFormModule, decorators: [{
394
396
  type: NgModule,
@@ -404,7 +406,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.0", ngImpor
404
406
  UpdDatePickerModule,
405
407
  UpdSelectModule,
406
408
  UpdTextareaModule,
407
- UpdFileUploadModule
409
+ UpdFileUploadModule,
410
+ UpdSdkModule
408
411
  ],
409
412
  declarations: [
410
413
  FormComponent,
@@ -1 +1 @@
1
- {"version":3,"file":"updevs-components-form.mjs","sources":["../../../../libs/components/form/src/models/enums/dynamic-field.type.ts","../../../../libs/components/form/src/tools/errors-helper.ts","../../../../libs/components/form/src/components/dynamic-field/dynamic-field.component.ts","../../../../libs/components/form/src/components/dynamic-field/dynamic-field.component.html","../../../../libs/components/form/src/form.component.ts","../../../../libs/components/form/src/form.component.html","../../../../libs/components/form/src/upd-form.module.ts","../../../../libs/components/form/src/updevs-components-form.ts"],"sourcesContent":["export enum DynamicFieldType {\n Input = 1,\n Select = 2,\n SelectMultiple = 3,\n Label = 4,\n Checkbox = 5,\n CheckboxGroup = 6,\n Radio = 7,\n RadioGroup = 8,\n TextArea = 9,\n FileUpload = 10\n}\n","import { Injectable, inject } from '@angular/core';\nimport { AbstractControl } from '@angular/forms';\nimport { TextService } from '@updevs/sdk';\nimport { DictionaryType, OptionalType } from '@updevs/sdk/types';\nimport { HashMap } from '@jsverse/transloco';\n\nimport { ValidatorConfig } from '../models/validator-config';\n\n@Injectable()\nexport class ErrorsHelper {\n private errors: DictionaryType<ValidatorConfig> = {\n 'required': { text: 'UpDevs.Form.ErrorMessages.Required' },\n 'requiredTrue': { text: 'UpDevs.Form.ErrorMessages.RequiredTrue' },\n 'generic': { text: 'UpDevs.Form.ErrorMessages.Generic' },\n 'email': { text: 'UpDevs.Form.ErrorMessages.Email' },\n 'max': { text: 'UpDevs.Form.ErrorMessages.Max', defaultErrorParamToShow: 'max' },\n 'min': { text: 'UpDevs.Form.ErrorMessages.Min', defaultErrorParamToShow: 'min' },\n 'maxlength': { text: 'UpDevs.Form.ErrorMessages.MaxLength', defaultErrorParamToShow: 'requiredLength' },\n 'minlength': { text: 'UpDevs.Form.ErrorMessages.MinLength', defaultErrorParamToShow: 'requiredLength' }\n };\n private readonly textService = inject(TextService);\n\n getMessages(control: AbstractControl, customConfig?: DictionaryType<ValidatorConfig>): string[] {\n if (!control.errors) {\n return [];\n }\n\n const errorMessages: string[] = [];\n const genericText = this.textService.getText({ text: this.errors['generic']!.text, isTranslated: false });\n const combinedErrorMessagesList: DictionaryType<ValidatorConfig> = Object.assign({}, this.errors, customConfig || {});\n const controlErrorKeys = Object.keys(control.errors);\n\n controlErrorKeys.forEach(key => {\n const customError = !!control.errors ? control.errors[key] : undefined;\n\n if (!!customError?.errorText) {\n errorMessages.push(this.textService.getText(customError.errorText));\n } else if (key in combinedErrorMessagesList) {\n const config = combinedErrorMessagesList[key]!;\n let params: OptionalType<HashMap>;\n\n if (config.showLength) {\n params = { value: control.value?.length || 0 };\n }\n\n if (!!config.defaultErrorParamToShow) {\n params = { value: control.errors![key][config.defaultErrorParamToShow] };\n }\n\n errorMessages.push(this.textService.getText({ text: config.text, isTranslated: false }, params));\n }\n });\n\n if (controlErrorKeys.length > 0 && errorMessages.length < 1) {\n errorMessages.push(genericText);\n }\n\n return errorMessages;\n }\n}\n","import { Component, OnInit, HostBinding, inject, InputSignal, input, Output, EventEmitter } from '@angular/core';\nimport { FormGroup, FormControl } from '@angular/forms';\nimport { TextModel, TextService } from '@updevs/sdk';\nimport { OptionalType } from '@updevs/sdk/types';\nimport { BaseComponent } from '@updevs/sdk/layout';\nimport { ColumnSizeHelper, HorizontalVerticalType, ValidationStatusType } from '@updevs/components';\nimport { Defaults as SelectDefaults } from '@updevs/components/form-controls/select';\nimport { FileUploadChangedEvent } from '@updevs/components/form-controls/file-upload';\n\nimport { FileUploadFieldModel } from '../../models/file-upload-field.model';\nimport { InputFieldModel } from '../../models/input-field.model';\nimport { ErrorsHelper } from '../../tools/errors-helper';\nimport { DynamicFieldType } from '../../models/enums/dynamic-field.type';\nimport { DynamicFieldModel } from '../../models/dynamic-field.model';\nimport { CheckboxFieldModel } from '../../models/checkbox-field.model';\nimport { RadioFieldModel } from '../../models/radio-field.model';\nimport { SelectFieldModel } from '../../models/select-field.model';\nimport { SingleSelectFieldModel } from '../../models/single-select-field.model';\nimport { CheckboxGroupFieldModel } from '../../models/checkbox-group-field.model';\nimport { RadioGroupFieldModel } from '../../models/radio-group-field.model';\nimport { TextareaFieldModel } from '../../models/textarea-field.model';\n\n@Component({\n selector: 'upd-dynamic-field',\n templateUrl: './dynamic-field.component.html',\n styleUrl: './dynamic-field.component.scss'\n})\nexport class DynamicFieldComponent extends BaseComponent implements OnInit {\n @HostBinding('class') wrapperClasses = '';\n\n @Output() readonly submitForm = new EventEmitter<void>();\n\n DynamicFieldType = DynamicFieldType;\n SelectDefaults = SelectDefaults;\n\n formGroup: InputSignal<FormGroup> = input.required();\n field: InputSignal<DynamicFieldModel> = input.required();\n layout: InputSignal<HorizontalVerticalType> = input.required();\n validationStatus?: ValidationStatusType;\n validationStatusDescriptions: TextModel[] = [];\n get formControl(): FormControl {\n return this.formGroup().controls[this.field().name] as FormControl;\n }\n get inputField(): InputFieldModel {\n return this.field() as InputFieldModel;\n }\n get checkboxField(): CheckboxFieldModel {\n return this.field() as CheckboxFieldModel;\n }\n get checkboxGroupField(): CheckboxGroupFieldModel {\n return this.field() as CheckboxGroupFieldModel;\n }\n get radioField(): CheckboxFieldModel {\n return this.field() as RadioFieldModel;\n }\n get radioGroupField(): RadioGroupFieldModel {\n return this.field() as RadioGroupFieldModel;\n }\n get selectField(): SelectFieldModel {\n return this.field() as SelectFieldModel;\n }\n get singleSelectField(): SingleSelectFieldModel {\n return this.field() as SingleSelectFieldModel;\n }\n get textareaField(): TextareaFieldModel {\n return this.field() as TextareaFieldModel;\n }\n get fileUploadField(): FileUploadFieldModel {\n return this.field() as FileUploadFieldModel;\n }\n get checkboxGroupOptionsKeys(): string[] {\n return Object.keys(this.checkboxGroupField.options);\n }\n get radioGroupOptionsKeys(): string[] {\n return Object.keys(this.radioGroupField.options);\n }\n get fileNameControl(): OptionalType<FormControl> {\n return !!this.fileUploadField.fileNameFormProperty\n ? this.formGroup().controls[this.fileUploadField.fileNameFormProperty] as FormControl\n : undefined;\n }\n\n private readonly errorsHelper = inject(ErrorsHelper);\n private readonly textService = inject(TextService);\n\n ngOnInit(): void {\n const statusSub = this.formControl.statusChanges.subscribe(status => {\n if (status === 'INVALID') {\n this.validationStatusDescriptions = this.errorsHelper.getMessages(this.formControl)\n .map(t => ({ text: t, isTranslated: true }));\n this.validationStatus = 'invalid';\n } else {\n this.validationStatusDescriptions = [];\n this.validationStatus = this.field().showValidStatus ? 'valid' : undefined;\n }\n });\n\n this.setupWrapperClasses();\n this.addSubscriptions(statusSub);\n }\n\n onBlur(): void {\n if (this.field().shouldValidateOnBlur) {\n this.formControl.updateValueAndValidity();\n }\n }\n\n getText(textModel?: TextModel): string {\n return this.textService.getText(textModel);\n }\n\n getOptionDescription(key: string, type: 'checkbox' | 'radio'): OptionalType<TextModel> {\n return type === 'checkbox' ? this.checkboxGroupField.options[key] : this.radioGroupField.options[key];\n }\n\n handleFileSelected(event?: FileUploadChangedEvent): void {\n this.formControl.setValue(!!this.fileUploadField.saveAsDataUrl ? event?.dataUrl : event?.file);\n\n if (!!this.fileUploadField.fileNameFormProperty) {\n this.fileNameControl!.setValue(event?.file.name);\n }\n }\n\n onInputEnter(): void {\n if (!!this.inputField.shouldSubmitOnEnter) {\n this.submitForm.next();\n }\n }\n\n private setupWrapperClasses(): void {\n this.wrapperClasses = ColumnSizeHelper.getSizeClasses(this.field().colSize);\n }\n}\n","@switch (field().type) {\n @case (DynamicFieldType.Input) {\n <upd-input [name]=\"field().name\" [label]=\"field().label\" [placeholder]=\"field().placeholder\" [hint]=\"field().hint\"\n [hintAsTooltip]=\"field().hintAsTooltip || false\" [validationStatus]=\"validationStatus\"\n [validationStatusDescriptions]=\"validationStatusDescriptions\" [layout]=\"layout()\" [isDisabled]=\"field().isDisabled || false\"\n [type]=\"inputField.inputType || 'text'\" [labelColSize]=\"field().labelColSize\" [value]=\"formControl.value\"\n (valueChange)=\"formControl.setValue($event)\" (blurred)=\"onBlur()\" (keyUpEnter)=\"onInputEnter()\"></upd-input>\n }\n @case (DynamicFieldType.Checkbox) {\n <upd-checkbox [name]=\"field().name\" [label]=\"field().label\" [hint]=\"field().hint\" [hintAsTooltip]=\"field().hintAsTooltip || false\"\n [validationStatus]=\"validationStatus\" [validationStatusDescriptions]=\"validationStatusDescriptions\" [value]=\"true\"\n [isDisabled]=\"field().isDisabled || false\" [isChecked]=\"formControl.value\" [isInline]=\"checkboxField.isInline || false\"\n [isSwitch]=\"checkboxField.isSwitch || false\" (changed)=\"formControl.setValue($event)\"></upd-checkbox>\n }\n @case (DynamicFieldType.CheckboxGroup) {\n @if (!!field().label) {\n <label class=\"form-label\">{{ getText(field().label) }}</label>\n }\n\n @for (option of checkboxGroupOptionsKeys; track option) {\n <upd-checkbox [name]=\"field().name\" [label]=\"getOptionDescription(option, 'checkbox')\" [hint]=\"field().hint\"\n [hintAsTooltip]=\"field().hintAsTooltip || false\" [validationStatus]=\"validationStatus\"\n [validationStatusDescriptions]=\"validationStatusDescriptions\" [value]=\"option\" [isDisabled]=\"field().isDisabled || false\"\n [isChecked]=\"formControl.value\" [isInline]=\"checkboxField.isInline || false\" [isSwitch]=\"checkboxField.isSwitch || false\"\n (changed)=\"formControl.setValue(option)\"></upd-checkbox>\n }\n }\n @case (DynamicFieldType.Radio) {\n <upd-radio [name]=\"field().name\" [label]=\"field().label\" [hint]=\"field().hint\" [hintAsTooltip]=\"field().hintAsTooltip || false\"\n [validationStatus]=\"validationStatus\" [validationStatusDescriptions]=\"validationStatusDescriptions\" [value]=\"true\"\n [isChecked]=\"formControl.value\" [isDisabled]=\"field().isDisabled || false\" [isInline]=\"radioField.isInline || false\"\n (selected)=\"formControl.setValue($event)\">\n </upd-radio>\n }\n @case (DynamicFieldType.RadioGroup) {\n @if (!!field().label) {\n <label class=\"form-label\">{{ getText(field().label) }}</label>\n }\n\n @for (option of radioGroupOptionsKeys; track option) {\n <upd-radio [name]=\"field().name\" [label]=\"getOptionDescription(option, 'radio')\" [hint]=\"field().hint\"\n [hintAsTooltip]=\"field().hintAsTooltip || false\" [validationStatus]=\"validationStatus\"\n [validationStatusDescriptions]=\"validationStatusDescriptions\" [value]=\"option\" [isDisabled]=\"field().isDisabled || false\"\n [isChecked]=\"formControl.value\" [isInline]=\"checkboxField.isInline || false\"\n (selected)=\"formControl.setValue(option)\"></upd-radio>\n }\n }\n @case (DynamicFieldType.Select) {\n <upd-select [name]=\"field().name\" [label]=\"field().label\" [hint]=\"field().hint\" [hintAsTooltip]=\"field().hintAsTooltip || false\"\n [validationStatus]=\"validationStatus\" [validationStatusDescriptions]=\"validationStatusDescriptions\"\n [useSystemStyle]=\"singleSelectField.useSystemStyle || false\" [isDisabled]=\"field().isDisabled || false\"\n [items]=\"selectField.items\" [layout]=\"layout()\" [labelColSize]=\"field().labelColSize\" [store]=\"selectField.store!\"\n [observable]=\"selectField.observable\" [itemKey]=\"selectField.itemKey\" [itemValue]=\"selectField.itemValue\"\n [dropdownMaxHeight]=\"selectField.dropdownMaxHeight || SelectDefaults.dropdownMaxHeight\"\n [typeaheadDebounce]=\"selectField.typeaheadDebounce || SelectDefaults.typeaheadDebounce\"\n [shouldAutoSearch]=\"selectField.shouldAutoSearch || SelectDefaults.shouldAutoSearch\"\n [shouldCloseOnOutsideClick]=\"selectField.shouldCloseOnOutsideClick || SelectDefaults.shouldCloseOnOutsideClick\"\n (selectedItem)=\"formControl.setValue($event?.value)\"></upd-select>\n }\n @case (DynamicFieldType.SelectMultiple) {\n <upd-select-multiple [name]=\"field().name\" [label]=\"field().label\" [hint]=\"field().hint\"\n [hintAsTooltip]=\"field().hintAsTooltip || false\" [validationStatus]=\"validationStatus\"\n [validationStatusDescriptions]=\"validationStatusDescriptions\" [isDisabled]=\"field().isDisabled || false\"\n [items]=\"selectField.items\" [layout]=\"layout()\" [labelColSize]=\"field().labelColSize\" [store]=\"selectField.store!\"\n [observable]=\"selectField.observable\" [itemKey]=\"selectField.itemKey\" [itemValue]=\"selectField.itemValue\"\n [dropdownMaxHeight]=\"selectField.dropdownMaxHeight || SelectDefaults.dropdownMaxHeight\"\n [typeaheadDebounce]=\"selectField.typeaheadDebounce || SelectDefaults.typeaheadDebounce\"\n [shouldAutoSearch]=\"selectField.shouldAutoSearch || SelectDefaults.shouldAutoSearch\"\n [shouldCloseOnOutsideClick]=\"selectField.shouldCloseOnOutsideClick || SelectDefaults.shouldCloseOnOutsideClick\"\n (selectedIds)=\"formControl.setValue($event)\"></upd-select-multiple>\n }\n @case (DynamicFieldType.Label) {\n <label class=\"form-label\">{{ getText(field().label) }}</label>\n }\n @case (DynamicFieldType.TextArea) {\n <upd-textarea [name]=\"field().name\" [label]=\"field().label\" [placeholder]=\"field().placeholder\" [hint]=\"field().hint\"\n [hintAsTooltip]=\"field().hintAsTooltip || false\" [validationStatus]=\"validationStatus\"\n [validationStatusDescriptions]=\"validationStatusDescriptions\" [isDisabled]=\"field().isDisabled || false\"\n [value]=\"formControl.value\" [customClasses]=\"textareaField.customClasses\" [wrapperClasses]=\"textareaField.wrapperClasses\"\n [maxLength]=\"textareaField.maxLength\" [rows]=\"textareaField.rows\"\n [displayCharactersCount]=\"textareaField.displayCharactersCount || false\"></upd-textarea>\n }\n @case (DynamicFieldType.FileUpload) {\n <upd-file-upload [name]=\"field().name\" [label]=\"field().label\" [hint]=\"field().hint\" [isDisabled]=\"field().isDisabled || false\"\n [hintAsTooltip]=\"field().hintAsTooltip || false\" [validationStatus]=\"validationStatus\" [fileName]=\"fileNameControl?.value\"\n [validationStatusDescriptions]=\"validationStatusDescriptions\" [allowFilesDrop]=\"fileUploadField.allowFilesDrop || false\"\n [title]=\"fileUploadField.title\" [labelColSize]=\"field().labelColSize\" [minFileSize]=\"fileUploadField.minFileSize\"\n [isMultiple]=\"fileUploadField.isMultiple || false\" [allowedExtensions]=\"fileUploadField.allowedExtensions || '*'\"\n [maxFileSize]=\"fileUploadField.maxFileSize\" [layout]=\"layout()\" (fileChanged)=\"handleFileSelected($event)\"></upd-file-upload>\n }\n}\n","import { Component, effect, EventEmitter, inject, input, InputSignal, model, OnInit, Output } from '@angular/core';\nimport { FormControl, FormGroup, ValidatorFn, Validators } from '@angular/forms';\nimport { HorizontalVerticalType } from '@updevs/components';\nimport { TextModel, TextService } from '@updevs/sdk';\nimport { BaseComponent } from '@updevs/sdk/layout';\nimport { OptionalType } from '@updevs/sdk/types';\n\nimport { DynamicFieldType } from './models/enums/dynamic-field.type';\nimport { FileUploadFieldModel } from './models/file-upload-field.model';\nimport { FormRowModel } from './models/form-row.model';\n\n@Component({\n selector: 'upd-form',\n templateUrl: './form.component.html',\n styleUrl: './form.component.scss'\n})\nexport class FormComponent<T> extends BaseComponent implements OnInit {\n @Output() readonly initialized = new EventEmitter<void>();\n @Output() readonly dataLoaded = new EventEmitter<T>(); // TODO: implementar\n @Output() readonly submitted = new EventEmitter<T>();\n\n /**\n * Rows to generate the form.\n */\n rows: InputSignal<FormRowModel[]> = input.required();\n /**\n * Form's layout.\n */\n layout: InputSignal<HorizontalVerticalType> = input<HorizontalVerticalType>('vertical');\n /**\n * Title of the form.\n * Optional.\n */\n title: InputSignal<OptionalType<TextModel>> = input<OptionalType<TextModel>>(undefined);\n /**\n * Whether the actions section will be displayed.\n */\n hasActionsSection = input(true);\n /**\n * Whether the form is contained in a card.\n * If true, it'll display a card as a form wrapper.\n */\n isCard = input(false);\n /**\n * Whether the form is in read only mode, which means no fields can be edited.\n */\n isDisabled = input(false, { transform: (val: boolean | string) => typeof val === 'string' ? val === '' : val });\n /**\n * Whether the form is loading.\n */\n isLoading = input(false); // TODO: implementar\n /**\n * Whether the form is saving.\n */\n isSaving = input(false); // TODO: implementar\n /**\n * Current form data.\n */\n formData = model({} as T);\n formGroup = model(new FormGroup({}));\n get titleText(): string {\n return this.textService.getText(this.title());\n }\n\n private readonly textService = inject(TextService);\n\n constructor() {\n super();\n\n effect(() => {\n this.rows();\n this.setupFormGroup();\n });\n }\n\n ngOnInit(): void {\n this.setupFormGroup();\n this.initialized.emit();\n\n const valueChangesSub = this.formGroup().valueChanges.subscribe(() => this.formData.set(this.formGroup().getRawValue() as T));\n\n this.addSubscriptions(valueChangesSub);\n }\n\n submit(): void {\n this.formGroup().markAllAsTouched();\n this.formGroup().updateValueAndValidity();\n Object.values(this.formGroup().controls).forEach(control => (control as FormControl).updateValueAndValidity());\n\n if (this.formGroup().valid) {\n this.submitted.emit(this.formGroup().value as T);\n }\n }\n\n private setupFormGroup(): void {\n const allFields = this.rows().map(r => r.fields).reduce((acc, fields) => acc.concat(fields), []);\n\n allFields.forEach(field => {\n const validators: ValidatorFn[] = field.validators || [];\n\n if (field.isRequired && !validators.includes(Validators.required)) {\n validators.push(Validators.required);\n }\n\n // TODO: handle extra cases, when ready. DateRange, DateTimeRange, TimeRange, etc.\n switch (field.type) {\n case DynamicFieldType.FileUpload:\n this.formGroup().addControl(\n field.name,\n new FormControl({\n value: field.initValue,\n disabled: field.isDisabled || this.isDisabled()\n }, { validators: validators })\n );\n\n const fileNameFormProp = (field as FileUploadFieldModel).fileNameFormProperty;\n\n if (!!fileNameFormProp) {\n this.formGroup().addControl(\n fileNameFormProp,\n new FormControl({\n value: field.initValue,\n disabled: field.isDisabled || this.isDisabled()\n }, { validators: validators })\n );\n }\n\n break;\n default:\n this.formGroup().addControl(\n field.name,\n new FormControl({\n value: field.initValue,\n disabled: field.isDisabled || this.isDisabled()\n }, { validators: validators })\n );\n }\n });\n }\n}\n","<ng-container *transloco=\"let t; prefix: 'UpDevs.Form'\">\n <div [class.card]=\"isCard()\">\n @if (!!titleText) {\n <div [class.card-header]=\"isCard()\">\n <h3 [class.card-title]=\"isCard()\">{{ titleText }}</h3>\n </div>\n }\n <div [class.card-body]=\"isCard()\">\n @for (row of rows(); track row; let isFirst = $first) {\n <div class=\"row\" [class.mt-4]=\"!isFirst\">\n @for (field of row.fields; track field.name) {\n <upd-dynamic-field [layout]=\"layout()\" [field]=\"field\" [formGroup]=\"formGroup()\" (submitForm)=\"submit()\">\n </upd-dynamic-field>\n }\n </div>\n }\n </div>\n\n @if (hasActionsSection()) {\n <div [class.card-footer]=\"isCard()\" [class.mt-4]=\"!isCard()\">\n <upd-button colorStyle=\"primary\" (clicked)=\"submit()\">\n {{ t('Submit') }}\n </upd-button>\n </div>\n }\n </div>\n</ng-container>\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { ReactiveFormsModule } from '@angular/forms';\nimport { UpdButtonModule } from '@updevs/components/button';\nimport { UpdInputModule } from '@updevs/components/form-controls/input';\nimport { UpdCheckboxModule } from '@updevs/components/form-controls/checkbox';\nimport { UpdRadioModule } from '@updevs/components/form-controls/radio';\nimport { UpdDatePickerModule } from '@updevs/components/form-controls/date-picker';\nimport { UpdSelectModule } from '@updevs/components/form-controls/select';\nimport { UpdTextareaModule } from '@updevs/components/form-controls/textarea';\nimport { UpdFileUploadModule } from '@updevs/components/form-controls/file-upload';\nimport { TranslocoDirective, TranslocoService } from '@jsverse/transloco';\n\nimport * as en from './assets/i18n/en.json';\nimport * as pt from './assets/i18n/pt.json';\nimport { FormComponent } from './form.component';\nimport { DynamicFieldComponent } from './components/dynamic-field/dynamic-field.component';\nimport { ErrorsHelper } from './tools/errors-helper';\n\n@NgModule({\n imports: [\n CommonModule,\n ReactiveFormsModule,\n UpdButtonModule,\n TranslocoDirective,\n UpdInputModule,\n UpdCheckboxModule,\n UpdRadioModule,\n UpdDatePickerModule,\n UpdSelectModule,\n UpdTextareaModule,\n UpdFileUploadModule\n ],\n declarations: [\n FormComponent,\n DynamicFieldComponent\n ],\n exports: [\n FormComponent\n ],\n providers: [\n ErrorsHelper\n ]\n})\nexport class UpdFormModule {\n constructor(translocoService: TranslocoService) {\n translocoService.setTranslation(en, 'en');\n translocoService.setTranslation(pt, 'pt');\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["SelectDefaults","i1","i2","i3","i4.DynamicFieldComponent","en","pt"],"mappings":"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"}
1
+ {"version":3,"file":"updevs-components-form.mjs","sources":["../../../../libs/components/form/src/models/enums/dynamic-field.type.ts","../../../../libs/components/form/src/tools/errors-helper.ts","../../../../libs/components/form/src/components/dynamic-field/dynamic-field.component.ts","../../../../libs/components/form/src/components/dynamic-field/dynamic-field.component.html","../../../../libs/components/form/src/form.component.ts","../../../../libs/components/form/src/form.component.html","../../../../libs/components/form/src/upd-form.module.ts","../../../../libs/components/form/src/updevs-components-form.ts"],"sourcesContent":["export enum DynamicFieldType {\n Input = 1,\n Select = 2,\n SelectMultiple = 3,\n Label = 4,\n Checkbox = 5,\n CheckboxGroup = 6,\n Radio = 7,\n RadioGroup = 8,\n TextArea = 9,\n FileUpload = 10\n}\n","import { Injectable, inject } from '@angular/core';\nimport { AbstractControl } from '@angular/forms';\nimport { TextService } from '@updevs/sdk';\nimport { DictionaryType, OptionalType } from '@updevs/sdk/types';\nimport { HashMap } from '@jsverse/transloco';\n\nimport { ValidatorConfig } from '../models/validator-config';\n\n@Injectable()\nexport class ErrorsHelper {\n private errors: DictionaryType<ValidatorConfig> = {\n 'required': { text: 'UpDevs.Form.ErrorMessages.Required' },\n 'requiredTrue': { text: 'UpDevs.Form.ErrorMessages.RequiredTrue' },\n 'generic': { text: 'UpDevs.Form.ErrorMessages.Generic' },\n 'email': { text: 'UpDevs.Form.ErrorMessages.Email' },\n 'max': { text: 'UpDevs.Form.ErrorMessages.Max', defaultErrorParamToShow: 'max' },\n 'min': { text: 'UpDevs.Form.ErrorMessages.Min', defaultErrorParamToShow: 'min' },\n 'maxlength': { text: 'UpDevs.Form.ErrorMessages.MaxLength', defaultErrorParamToShow: 'requiredLength' },\n 'minlength': { text: 'UpDevs.Form.ErrorMessages.MinLength', defaultErrorParamToShow: 'requiredLength' }\n };\n private readonly textService = inject(TextService);\n\n getMessages(control: AbstractControl, customConfig?: DictionaryType<ValidatorConfig>): string[] {\n if (!control.errors) {\n return [];\n }\n\n const errorMessages: string[] = [];\n const genericText = this.textService.getText({ text: this.errors['generic']!.text, isTranslated: false });\n const combinedErrorMessagesList: DictionaryType<ValidatorConfig> = Object.assign({}, this.errors, customConfig || {});\n const controlErrorKeys = Object.keys(control.errors);\n\n controlErrorKeys.forEach(key => {\n const customError = !!control.errors ? control.errors[key] : undefined;\n\n if (!!customError?.errorText) {\n errorMessages.push(this.textService.getText(customError.errorText));\n } else if (key in combinedErrorMessagesList) {\n const config = combinedErrorMessagesList[key]!;\n let params: OptionalType<HashMap>;\n\n if (config.showLength) {\n params = { value: control.value?.length || 0 };\n }\n\n if (!!config.defaultErrorParamToShow) {\n params = { value: control.errors![key][config.defaultErrorParamToShow] };\n }\n\n errorMessages.push(this.textService.getText({ text: config.text, isTranslated: false }, params));\n }\n });\n\n if (controlErrorKeys.length > 0 && errorMessages.length < 1) {\n errorMessages.push(genericText);\n }\n\n return errorMessages;\n }\n}\n","import { Component, OnInit, HostBinding, inject, InputSignal, input, Output, EventEmitter } from '@angular/core';\nimport { FormGroup, FormControl } from '@angular/forms';\nimport { TextModel, TextService } from '@updevs/sdk';\nimport { OptionalType } from '@updevs/sdk/types';\nimport { BaseComponent } from '@updevs/sdk/layout';\nimport { ColumnSizeHelper, HorizontalVerticalType, ValidationStatusType } from '@updevs/components';\nimport { Defaults as SelectDefaults } from '@updevs/components/form-controls/select';\nimport { FileUploadChangedEvent } from '@updevs/components/form-controls/file-upload';\n\nimport { FileUploadFieldModel } from '../../models/file-upload-field.model';\nimport { InputFieldModel } from '../../models/input-field.model';\nimport { ErrorsHelper } from '../../tools/errors-helper';\nimport { DynamicFieldType } from '../../models/enums/dynamic-field.type';\nimport { DynamicFieldModel } from '../../models/dynamic-field.model';\nimport { CheckboxFieldModel } from '../../models/checkbox-field.model';\nimport { RadioFieldModel } from '../../models/radio-field.model';\nimport { SelectFieldModel } from '../../models/select-field.model';\nimport { SingleSelectFieldModel } from '../../models/single-select-field.model';\nimport { CheckboxGroupFieldModel } from '../../models/checkbox-group-field.model';\nimport { RadioGroupFieldModel } from '../../models/radio-group-field.model';\nimport { TextareaFieldModel } from '../../models/textarea-field.model';\n\n@Component({\n selector: 'upd-dynamic-field',\n templateUrl: './dynamic-field.component.html',\n styleUrl: './dynamic-field.component.scss'\n})\nexport class DynamicFieldComponent extends BaseComponent implements OnInit {\n @HostBinding('class') wrapperClasses = '';\n\n @Output() readonly submitForm = new EventEmitter<void>();\n\n DynamicFieldType = DynamicFieldType;\n SelectDefaults = SelectDefaults;\n\n formGroup: InputSignal<FormGroup> = input.required();\n field: InputSignal<DynamicFieldModel> = input.required();\n layout: InputSignal<HorizontalVerticalType> = input.required();\n validationStatus?: ValidationStatusType;\n validationStatusDescriptions: TextModel[] = [];\n get formControl(): FormControl {\n return this.formGroup().controls[this.field().name] as FormControl;\n }\n get inputField(): InputFieldModel {\n return this.field() as InputFieldModel;\n }\n get checkboxField(): CheckboxFieldModel {\n return this.field() as CheckboxFieldModel;\n }\n get checkboxGroupField(): CheckboxGroupFieldModel {\n return this.field() as CheckboxGroupFieldModel;\n }\n get radioField(): CheckboxFieldModel {\n return this.field() as RadioFieldModel;\n }\n get radioGroupField(): RadioGroupFieldModel {\n return this.field() as RadioGroupFieldModel;\n }\n get selectField(): SelectFieldModel {\n return this.field() as SelectFieldModel;\n }\n get singleSelectField(): SingleSelectFieldModel {\n return this.field() as SingleSelectFieldModel;\n }\n get textareaField(): TextareaFieldModel {\n return this.field() as TextareaFieldModel;\n }\n get fileUploadField(): FileUploadFieldModel {\n return this.field() as FileUploadFieldModel;\n }\n get checkboxGroupOptionsKeys(): string[] {\n return Object.keys(this.checkboxGroupField.options);\n }\n get radioGroupOptionsKeys(): string[] {\n return Object.keys(this.radioGroupField.options);\n }\n get fileNameControl(): OptionalType<FormControl> {\n return !!this.fileUploadField.fileNameFormProperty\n ? this.formGroup().controls[this.fileUploadField.fileNameFormProperty] as FormControl\n : undefined;\n }\n\n readonly textService = inject(TextService);\n\n private readonly errorsHelper = inject(ErrorsHelper);\n\n ngOnInit(): void {\n const statusSub = this.formControl.statusChanges.subscribe(status => {\n if (status === 'INVALID') {\n this.validationStatusDescriptions = this.errorsHelper.getMessages(this.formControl)\n .map(t => ({ text: t, isTranslated: true }));\n this.validationStatus = 'invalid';\n } else {\n this.validationStatusDescriptions = [];\n this.validationStatus = this.field().showValidStatus ? 'valid' : undefined;\n }\n });\n\n this.setupWrapperClasses();\n this.addSubscriptions(statusSub);\n }\n\n onBlur(): void {\n if (this.field().shouldValidateOnBlur) {\n this.formControl.updateValueAndValidity();\n }\n }\n\n getText(textModel?: TextModel): string {\n return this.textService.getText(textModel);\n }\n\n getOptionDescription(key: string, type: 'checkbox' | 'radio'): OptionalType<TextModel> {\n return type === 'checkbox' ? this.checkboxGroupField.options[key] : this.radioGroupField.options[key];\n }\n\n handleFileSelected(event?: FileUploadChangedEvent): void {\n this.formControl.setValue(!!this.fileUploadField.saveAsDataUrl ? event?.dataUrl : event?.file);\n\n if (!!this.fileUploadField.fileNameFormProperty) {\n this.fileNameControl!.setValue(event?.file.name);\n }\n }\n\n onInputEnter(): void {\n if (!!this.inputField.shouldSubmitOnEnter) {\n this.submitForm.next();\n }\n }\n\n private setupWrapperClasses(): void {\n this.wrapperClasses = ColumnSizeHelper.getSizeClasses(this.field().colSize);\n }\n}\n","@switch (field().type) {\n @case (DynamicFieldType.Input) {\n <upd-input [name]=\"field().name\" [label]=\"field().label\" [placeholder]=\"field().placeholder\" [hint]=\"field().hint\"\n [hintAsTooltip]=\"field().hintAsTooltip || false\" [validationStatus]=\"validationStatus\"\n [validationStatusDescriptions]=\"validationStatusDescriptions\" [layout]=\"layout()\" [isDisabled]=\"field().isDisabled || false\"\n [type]=\"inputField.inputType || 'text'\" [labelColSize]=\"field().labelColSize\" [value]=\"formControl.value\"\n (valueChange)=\"formControl.setValue($event)\" (blurred)=\"onBlur()\" (keyUpEnter)=\"onInputEnter()\">\n @if (!!inputField.prefix) {\n <ng-template updInputPrepend>\n {{ textService.getText(inputField.prefix) }}\n </ng-template>\n }\n\n @if (!!inputField.suffix) {\n <ng-template updInputAppend>\n {{ textService.getText(inputField.suffix) }}\n </ng-template>\n }\n </upd-input>\n }\n @case (DynamicFieldType.Checkbox) {\n <upd-checkbox [name]=\"field().name\" [label]=\"field().label\" [hint]=\"field().hint\" [hintAsTooltip]=\"field().hintAsTooltip || false\"\n [validationStatus]=\"validationStatus\" [validationStatusDescriptions]=\"validationStatusDescriptions\" [value]=\"true\"\n [isDisabled]=\"field().isDisabled || false\" [isChecked]=\"formControl.value\" [isInline]=\"checkboxField.isInline || false\"\n [isSwitch]=\"checkboxField.isSwitch || false\" (changed)=\"formControl.setValue($event)\"></upd-checkbox>\n }\n @case (DynamicFieldType.CheckboxGroup) {\n @if (!!field().label) {\n <label class=\"form-label\">{{ getText(field().label) }}</label>\n }\n\n @for (option of checkboxGroupOptionsKeys; track option) {\n <upd-checkbox [name]=\"field().name\" [label]=\"getOptionDescription(option, 'checkbox')\" [hint]=\"field().hint\"\n [hintAsTooltip]=\"field().hintAsTooltip || false\" [validationStatus]=\"validationStatus\"\n [validationStatusDescriptions]=\"validationStatusDescriptions\" [value]=\"option\" [isDisabled]=\"field().isDisabled || false\"\n [isChecked]=\"formControl.value\" [isInline]=\"checkboxField.isInline || false\" [isSwitch]=\"checkboxField.isSwitch || false\"\n (changed)=\"formControl.setValue(option)\"></upd-checkbox>\n }\n }\n @case (DynamicFieldType.Radio) {\n <upd-radio [name]=\"field().name\" [label]=\"field().label\" [hint]=\"field().hint\" [hintAsTooltip]=\"field().hintAsTooltip || false\"\n [validationStatus]=\"validationStatus\" [validationStatusDescriptions]=\"validationStatusDescriptions\" [value]=\"true\"\n [isChecked]=\"formControl.value\" [isDisabled]=\"field().isDisabled || false\" [isInline]=\"radioField.isInline || false\"\n (selected)=\"formControl.setValue($event)\">\n </upd-radio>\n }\n @case (DynamicFieldType.RadioGroup) {\n @if (!!field().label) {\n <label class=\"form-label\">{{ getText(field().label) }}</label>\n }\n\n @for (option of radioGroupOptionsKeys; track option) {\n <upd-radio [name]=\"field().name\" [label]=\"getOptionDescription(option, 'radio')\" [hint]=\"field().hint\"\n [hintAsTooltip]=\"field().hintAsTooltip || false\" [validationStatus]=\"validationStatus\"\n [validationStatusDescriptions]=\"validationStatusDescriptions\" [value]=\"option\" [isDisabled]=\"field().isDisabled || false\"\n [isChecked]=\"formControl.value\" [isInline]=\"checkboxField.isInline || false\"\n (selected)=\"formControl.setValue(option)\"></upd-radio>\n }\n }\n @case (DynamicFieldType.Select) {\n <upd-select [name]=\"field().name\" [label]=\"field().label\" [hint]=\"field().hint\" [hintAsTooltip]=\"field().hintAsTooltip || false\"\n [validationStatus]=\"validationStatus\" [validationStatusDescriptions]=\"validationStatusDescriptions\"\n [useSystemStyle]=\"singleSelectField.useSystemStyle || false\" [isDisabled]=\"field().isDisabled || false\"\n [items]=\"selectField.items\" [layout]=\"layout()\" [labelColSize]=\"field().labelColSize\" [store]=\"selectField.store!\"\n [observable]=\"selectField.observable\" [itemKey]=\"selectField.itemKey\" [itemValue]=\"selectField.itemValue\"\n [dropdownMaxHeight]=\"selectField.dropdownMaxHeight || SelectDefaults.dropdownMaxHeight\"\n [typeaheadDebounce]=\"selectField.typeaheadDebounce || SelectDefaults.typeaheadDebounce\"\n [shouldAutoSearch]=\"selectField.shouldAutoSearch || SelectDefaults.shouldAutoSearch\"\n [shouldCloseOnOutsideClick]=\"selectField.shouldCloseOnOutsideClick || SelectDefaults.shouldCloseOnOutsideClick\"\n (selectedItem)=\"formControl.setValue($event?.value)\"></upd-select>\n }\n @case (DynamicFieldType.SelectMultiple) {\n <upd-select-multiple [name]=\"field().name\" [label]=\"field().label\" [hint]=\"field().hint\"\n [hintAsTooltip]=\"field().hintAsTooltip || false\" [validationStatus]=\"validationStatus\"\n [validationStatusDescriptions]=\"validationStatusDescriptions\" [isDisabled]=\"field().isDisabled || false\"\n [items]=\"selectField.items\" [layout]=\"layout()\" [labelColSize]=\"field().labelColSize\" [store]=\"selectField.store!\"\n [observable]=\"selectField.observable\" [itemKey]=\"selectField.itemKey\" [itemValue]=\"selectField.itemValue\"\n [dropdownMaxHeight]=\"selectField.dropdownMaxHeight || SelectDefaults.dropdownMaxHeight\"\n [typeaheadDebounce]=\"selectField.typeaheadDebounce || SelectDefaults.typeaheadDebounce\"\n [shouldAutoSearch]=\"selectField.shouldAutoSearch || SelectDefaults.shouldAutoSearch\"\n [shouldCloseOnOutsideClick]=\"selectField.shouldCloseOnOutsideClick || SelectDefaults.shouldCloseOnOutsideClick\"\n (selectedIds)=\"formControl.setValue($event)\"></upd-select-multiple>\n }\n @case (DynamicFieldType.Label) {\n <label class=\"form-label\">{{ getText(field().label) }}</label>\n }\n @case (DynamicFieldType.TextArea) {\n <upd-textarea [name]=\"field().name\" [label]=\"field().label\" [placeholder]=\"field().placeholder\" [hint]=\"field().hint\"\n [hintAsTooltip]=\"field().hintAsTooltip || false\" [validationStatus]=\"validationStatus\"\n [validationStatusDescriptions]=\"validationStatusDescriptions\" [isDisabled]=\"field().isDisabled || false\"\n [value]=\"formControl.value\" [customClasses]=\"textareaField.customClasses\" [wrapperClasses]=\"textareaField.wrapperClasses\"\n [maxLength]=\"textareaField.maxLength\" [rows]=\"textareaField.rows\"\n [displayCharactersCount]=\"textareaField.displayCharactersCount || false\"></upd-textarea>\n }\n @case (DynamicFieldType.FileUpload) {\n <upd-file-upload [name]=\"field().name\" [label]=\"field().label\" [hint]=\"field().hint\" [isDisabled]=\"field().isDisabled || false\"\n [hintAsTooltip]=\"field().hintAsTooltip || false\" [validationStatus]=\"validationStatus\" [fileName]=\"fileNameControl?.value\"\n [validationStatusDescriptions]=\"validationStatusDescriptions\" [allowFilesDrop]=\"fileUploadField.allowFilesDrop || false\"\n [title]=\"fileUploadField.title\" [labelColSize]=\"field().labelColSize\" [minFileSize]=\"fileUploadField.minFileSize\"\n [isMultiple]=\"fileUploadField.isMultiple || false\" [allowedExtensions]=\"fileUploadField.allowedExtensions || '*'\"\n [maxFileSize]=\"fileUploadField.maxFileSize\" [layout]=\"layout()\" (fileChanged)=\"handleFileSelected($event)\"></upd-file-upload>\n }\n}\n","import { Component, effect, EventEmitter, inject, input, InputSignal, model, OnInit, Output } from '@angular/core';\nimport { FormControl, FormGroup, ValidatorFn, Validators } from '@angular/forms';\nimport { HorizontalVerticalType } from '@updevs/components';\nimport { TextModel, TextService } from '@updevs/sdk';\nimport { BaseComponent } from '@updevs/sdk/layout';\nimport { OptionalType } from '@updevs/sdk/types';\n\nimport { DynamicFieldType } from './models/enums/dynamic-field.type';\nimport { FileUploadFieldModel } from './models/file-upload-field.model';\nimport { FormRowModel } from './models/form-row.model';\n\n@Component({\n selector: 'upd-form',\n templateUrl: './form.component.html',\n styleUrl: './form.component.scss'\n})\nexport class FormComponent<T> extends BaseComponent implements OnInit {\n @Output() readonly initialized = new EventEmitter<void>();\n @Output() readonly dataLoaded = new EventEmitter<T>(); // TODO: implementar\n @Output() readonly submitted = new EventEmitter<T>();\n\n /**\n * Rows to generate the form.\n */\n rows: InputSignal<FormRowModel[]> = input.required();\n /**\n * Form's layout.\n */\n layout: InputSignal<HorizontalVerticalType> = input<HorizontalVerticalType>('vertical');\n /**\n * Title of the form.\n * Optional.\n */\n title: InputSignal<OptionalType<TextModel>> = input<OptionalType<TextModel>>(undefined);\n /**\n * Whether the actions section will be displayed.\n */\n hasActionsSection = input(true);\n /**\n * Whether the form is contained in a card.\n * If true, it'll display a card as a form wrapper.\n */\n isCard = input(false);\n /**\n * Whether the form is in read only mode, which means no fields can be edited.\n */\n isDisabled = input(false, { transform: (val: boolean | string) => typeof val === 'string' ? val === '' : val });\n /**\n * Whether the form is loading.\n */\n isLoading = input(false); // TODO: implementar\n /**\n * Whether the form is saving.\n */\n isSaving = input(false); // TODO: implementar\n /**\n * Current form data.\n */\n formData = model({} as T);\n formGroup = model(new FormGroup({}));\n get titleText(): string {\n return this.textService.getText(this.title());\n }\n\n readonly textService = inject(TextService);\n\n constructor() {\n super();\n\n effect(() => {\n this.rows();\n this.setupFormGroup();\n });\n }\n\n ngOnInit(): void {\n this.setupFormGroup();\n this.initialized.emit();\n\n const valueChangesSub = this.formGroup().valueChanges.subscribe(() => this.formData.set(this.formGroup().getRawValue() as T));\n\n this.addSubscriptions(valueChangesSub);\n }\n\n submit(): void {\n this.formGroup().markAllAsTouched();\n this.formGroup().updateValueAndValidity();\n Object.values(this.formGroup().controls).forEach(control => (control as FormControl).updateValueAndValidity());\n\n if (this.formGroup().valid) {\n this.submitted.emit(this.formGroup().value as T);\n }\n }\n\n private setupFormGroup(): void {\n const allFields = this.rows().map(r => r.fields).reduce((acc, fields) => acc.concat(fields), []);\n\n allFields.forEach(field => {\n const validators: ValidatorFn[] = field.validators || [];\n\n if (field.isRequired && !validators.includes(Validators.required)) {\n validators.push(Validators.required);\n }\n\n // TODO: handle extra cases, when ready. DateRange, DateTimeRange, TimeRange, etc.\n switch (field.type) {\n case DynamicFieldType.FileUpload:\n this.formGroup().addControl(\n field.name,\n new FormControl({\n value: field.initValue,\n disabled: field.isDisabled || this.isDisabled()\n }, { validators: validators })\n );\n\n const fileNameFormProp = (field as FileUploadFieldModel).fileNameFormProperty;\n\n if (!!fileNameFormProp) {\n this.formGroup().addControl(\n fileNameFormProp,\n new FormControl({\n value: field.initValue,\n disabled: field.isDisabled || this.isDisabled()\n }, { validators: validators })\n );\n }\n\n break;\n default:\n this.formGroup().addControl(\n field.name,\n new FormControl({\n value: field.initValue,\n disabled: field.isDisabled || this.isDisabled()\n }, { validators: validators })\n );\n }\n });\n }\n}\n","<ng-container *transloco=\"let t; prefix: 'UpDevs.Form'\">\n <div [class.card]=\"isCard()\">\n @if (!!titleText) {\n <div [class.card-header]=\"isCard()\">\n <h3 [class.card-title]=\"isCard()\">{{ titleText }}</h3>\n </div>\n }\n <div [class.card-body]=\"isCard()\">\n @for (row of rows(); track row; let isFirst = $first) {\n <div class=\"row\" [class.mt-4]=\"!isFirst\">\n @if (!!row.title) {\n <div class=\"card-title\">{{ textService.getText(row.title) }}</div>\n }\n\n @for (field of row.fields; track field.name) {\n <upd-dynamic-field [layout]=\"layout()\" [field]=\"field\" [formGroup]=\"formGroup()\" (submitForm)=\"submit()\">\n </upd-dynamic-field>\n }\n </div>\n }\n </div>\n\n @if (hasActionsSection()) {\n <div [class.card-footer]=\"isCard()\" [class.mt-4]=\"!isCard()\">\n <upd-button colorStyle=\"primary\" (clicked)=\"submit()\">\n {{ t('Submit') }}\n </upd-button>\n </div>\n }\n </div>\n</ng-container>\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { ReactiveFormsModule } from '@angular/forms';\nimport { UpdSdkModule } from '@updevs/sdk';\nimport { UpdButtonModule } from '@updevs/components/button';\nimport { UpdInputModule } from '@updevs/components/form-controls/input';\nimport { UpdCheckboxModule } from '@updevs/components/form-controls/checkbox';\nimport { UpdRadioModule } from '@updevs/components/form-controls/radio';\nimport { UpdDatePickerModule } from '@updevs/components/form-controls/date-picker';\nimport { UpdSelectModule } from '@updevs/components/form-controls/select';\nimport { UpdTextareaModule } from '@updevs/components/form-controls/textarea';\nimport { UpdFileUploadModule } from '@updevs/components/form-controls/file-upload';\nimport { TranslocoDirective, TranslocoService } from '@jsverse/transloco';\n\nimport * as en from './assets/i18n/en.json';\nimport * as pt from './assets/i18n/pt.json';\nimport { FormComponent } from './form.component';\nimport { DynamicFieldComponent } from './components/dynamic-field/dynamic-field.component';\nimport { ErrorsHelper } from './tools/errors-helper';\n\n@NgModule({\n imports: [\n CommonModule,\n ReactiveFormsModule,\n UpdButtonModule,\n TranslocoDirective,\n UpdInputModule,\n UpdCheckboxModule,\n UpdRadioModule,\n UpdDatePickerModule,\n UpdSelectModule,\n UpdTextareaModule,\n UpdFileUploadModule,\n UpdSdkModule\n ],\n declarations: [\n FormComponent,\n DynamicFieldComponent\n ],\n exports: [\n FormComponent\n ],\n providers: [\n ErrorsHelper\n ]\n})\nexport class UpdFormModule {\n constructor(translocoService: TranslocoService) {\n translocoService.setTranslation(en, 'en');\n translocoService.setTranslation(pt, 'pt');\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["SelectDefaults","i1","i2","i3","i4.DynamicFieldComponent","en","pt"],"mappings":"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"}
@@ -6,7 +6,7 @@ class ColumnSizeHelper {
6
6
  if (!colSize) {
7
7
  return `col-${defaultIfEmpty || 12}`;
8
8
  }
9
- return this.getClasses(`col-${colSize.default}`, `col-md-${colSize.medium || colSize.default}`, `col-sm-${(colSize.small || 12)}`);
9
+ return this.getClasses(`col-${colSize.default}`, `col-lg-${colSize.default}`, `col-md-${colSize.medium || colSize.default}`, `col-sm-${(colSize.small || 12)}`);
10
10
  }
11
11
  static getClasses(...classes) {
12
12
  return classes.join(' ').trim();
@@ -1 +1 @@
1
- {"version":3,"file":"updevs-components.mjs","sources":["../../../../libs/components/src/lib/tools/column-size.helper.ts","../../../../libs/components/src/lib/upd-components.module.ts","../../../../libs/components/src/updevs-components.ts"],"sourcesContent":["import { RowColumnSize } from '../models/row-column-size';\n\nexport class ColumnSizeHelper {\n static getSizeClasses(colSize?: RowColumnSize, defaultIfEmpty?: number): string {\n if (!colSize) {\n return `col-${defaultIfEmpty || 12}`;\n }\n\n return this.getClasses(\n `col-${colSize.default}`,\n `col-md-${colSize.medium || colSize.default}`,\n `col-sm-${(colSize.small || 12)}`\n );\n }\n\n static getClasses(...classes: string[]): string {\n return classes.join(' ').trim();\n }\n}\n","import { NgModule } from '@angular/core';\n\n@NgModule({\n imports: []\n})\nexport class UpdComponentsModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;MAEa,gBAAgB,CAAA;AACzB,IAAA,OAAO,cAAc,CAAC,OAAuB,EAAE,cAAuB,EAAA;QAClE,IAAI,CAAC,OAAO,EAAE;AACV,YAAA,OAAO,CAAO,IAAA,EAAA,cAAc,IAAI,EAAE,EAAE,CAAC;SACxC;AAED,QAAA,OAAO,IAAI,CAAC,UAAU,CAClB,CAAO,IAAA,EAAA,OAAO,CAAC,OAAO,CAAE,CAAA,EACxB,CAAU,OAAA,EAAA,OAAO,CAAC,MAAM,IAAI,OAAO,CAAC,OAAO,CAAA,CAAE,EAC7C,CAAA,OAAA,GAAW,OAAO,CAAC,KAAK,IAAI,EAAE,EAAC,CAAE,CACpC,CAAC;KACL;AAED,IAAA,OAAO,UAAU,CAAC,GAAG,OAAiB,EAAA;QAClC,OAAO,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;KACnC;AACJ;;MCbY,mBAAmB,CAAA;8GAAnB,mBAAmB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA,EAAA;+GAAnB,mBAAmB,EAAA,CAAA,CAAA,EAAA;+GAAnB,mBAAmB,EAAA,CAAA,CAAA,EAAA;;2FAAnB,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAH/B,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACN,oBAAA,OAAO,EAAE,EAAE;AACd,iBAAA,CAAA;;;ACJD;;AAEG;;;;"}
1
+ {"version":3,"file":"updevs-components.mjs","sources":["../../../../libs/components/src/lib/tools/column-size.helper.ts","../../../../libs/components/src/lib/upd-components.module.ts","../../../../libs/components/src/updevs-components.ts"],"sourcesContent":["import { RowColumnSize } from '../models/row-column-size';\n\nexport class ColumnSizeHelper {\n static getSizeClasses(colSize?: RowColumnSize, defaultIfEmpty?: number): string {\n if (!colSize) {\n return `col-${defaultIfEmpty || 12}`;\n }\n\n return this.getClasses(\n `col-${colSize.default}`,\n `col-lg-${colSize.default}`,\n `col-md-${colSize.medium || colSize.default}`,\n `col-sm-${(colSize.small || 12)}`\n );\n }\n\n static getClasses(...classes: string[]): string {\n return classes.join(' ').trim();\n }\n}\n","import { NgModule } from '@angular/core';\n\n@NgModule({\n imports: []\n})\nexport class UpdComponentsModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;MAEa,gBAAgB,CAAA;AACzB,IAAA,OAAO,cAAc,CAAC,OAAuB,EAAE,cAAuB,EAAA;QAClE,IAAI,CAAC,OAAO,EAAE;AACV,YAAA,OAAO,CAAO,IAAA,EAAA,cAAc,IAAI,EAAE,EAAE,CAAC;SACxC;AAED,QAAA,OAAO,IAAI,CAAC,UAAU,CAClB,CAAA,IAAA,EAAO,OAAO,CAAC,OAAO,CAAE,CAAA,EACxB,UAAU,OAAO,CAAC,OAAO,CAAA,CAAE,EAC3B,CAAU,OAAA,EAAA,OAAO,CAAC,MAAM,IAAI,OAAO,CAAC,OAAO,CAAA,CAAE,EAC7C,CAAU,OAAA,GAAC,OAAO,CAAC,KAAK,IAAI,EAAE,EAAC,CAAE,CACpC,CAAC;KACL;AAED,IAAA,OAAO,UAAU,CAAC,GAAG,OAAiB,EAAA;QAClC,OAAO,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;KACnC;AACJ;;MCdY,mBAAmB,CAAA;8GAAnB,mBAAmB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA,EAAA;+GAAnB,mBAAmB,EAAA,CAAA,CAAA,EAAA;+GAAnB,mBAAmB,EAAA,CAAA,CAAA,EAAA;;2FAAnB,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAH/B,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACN,oBAAA,OAAO,EAAE,EAAE;AACd,iBAAA,CAAA;;;ACJD;;AAEG;;;;"}
@@ -1,6 +1,6 @@
1
1
  import { OnInit, InputSignal, EventEmitter } from '@angular/core';
2
2
  import { FormGroup, FormControl } from '@angular/forms';
3
- import { TextModel } from '@updevs/sdk';
3
+ import { TextModel, TextService } from '@updevs/sdk';
4
4
  import { OptionalType } from '@updevs/sdk/types';
5
5
  import { BaseComponent } from '@updevs/sdk/layout';
6
6
  import { HorizontalVerticalType, ValidationStatusType } from '@updevs/components';
@@ -40,8 +40,8 @@ export declare class DynamicFieldComponent extends BaseComponent implements OnIn
40
40
  get checkboxGroupOptionsKeys(): string[];
41
41
  get radioGroupOptionsKeys(): string[];
42
42
  get fileNameControl(): OptionalType<FormControl>;
43
+ readonly textService: TextService;
43
44
  private readonly errorsHelper;
44
- private readonly textService;
45
45
  ngOnInit(): void;
46
46
  onBlur(): void;
47
47
  getText(textModel?: TextModel): string;
@@ -1,7 +1,7 @@
1
1
  import { EventEmitter, InputSignal, OnInit } from '@angular/core';
2
2
  import { FormGroup } from '@angular/forms';
3
3
  import { HorizontalVerticalType } from '@updevs/components';
4
- import { TextModel } from '@updevs/sdk';
4
+ import { TextModel, TextService } from '@updevs/sdk';
5
5
  import { BaseComponent } from '@updevs/sdk/layout';
6
6
  import { OptionalType } from '@updevs/sdk/types';
7
7
  import { FormRowModel } from './models/form-row.model';
@@ -50,7 +50,7 @@ export declare class FormComponent<T> extends BaseComponent implements OnInit {
50
50
  formData: import("@angular/core").ModelSignal<T>;
51
51
  formGroup: import("@angular/core").ModelSignal<FormGroup<{}>>;
52
52
  get titleText(): string;
53
- private readonly textService;
53
+ readonly textService: TextService;
54
54
  constructor();
55
55
  ngOnInit(): void;
56
56
  submit(): void;
@@ -1,3 +1,4 @@
1
+ import { TextModel } from '@updevs/sdk';
1
2
  import { RequiredPermissionsModel } from '@updevs/sdk/security';
2
3
  import { DynamicFieldModel } from './dynamic-field.model';
3
4
  export interface FormRowModel {
@@ -5,4 +6,5 @@ export interface FormRowModel {
5
6
  isCompact?: boolean;
6
7
  isHidden?: boolean;
7
8
  requiredPermissions?: RequiredPermissionsModel;
9
+ title?: TextModel;
8
10
  }
@@ -1,6 +1,9 @@
1
1
  import { InputType } from '@updevs/components/form-controls/input';
2
+ import { TextModel } from '@updevs/sdk';
2
3
  import { DynamicFieldModel } from './dynamic-field.model';
3
4
  export interface InputFieldModel extends DynamicFieldModel {
4
5
  inputType?: InputType;
5
6
  shouldSubmitOnEnter?: boolean;
7
+ prefix?: TextModel;
8
+ suffix?: TextModel;
6
9
  }
@@ -13,9 +13,10 @@ import * as i10 from "@updevs/components/form-controls/date-picker";
13
13
  import * as i11 from "@updevs/components/form-controls/select";
14
14
  import * as i12 from "@updevs/components/form-controls/textarea";
15
15
  import * as i13 from "@updevs/components/form-controls/file-upload";
16
+ import * as i14 from "@updevs/sdk";
16
17
  export declare class UpdFormModule {
17
18
  constructor(translocoService: TranslocoService);
18
19
  static ɵfac: i0.ɵɵFactoryDeclaration<UpdFormModule, never>;
19
- static ɵmod: i0.ɵɵNgModuleDeclaration<UpdFormModule, [typeof i1.FormComponent, typeof i2.DynamicFieldComponent], [typeof i3.CommonModule, typeof i4.ReactiveFormsModule, typeof i5.UpdButtonModule, typeof i6.TranslocoDirective, typeof i7.UpdInputModule, typeof i8.UpdCheckboxModule, typeof i9.UpdRadioModule, typeof i10.UpdDatePickerModule, typeof i11.UpdSelectModule, typeof i12.UpdTextareaModule, typeof i13.UpdFileUploadModule], [typeof i1.FormComponent]>;
20
+ static ɵmod: i0.ɵɵNgModuleDeclaration<UpdFormModule, [typeof i1.FormComponent, typeof i2.DynamicFieldComponent], [typeof i3.CommonModule, typeof i4.ReactiveFormsModule, typeof i5.UpdButtonModule, typeof i6.TranslocoDirective, typeof i7.UpdInputModule, typeof i8.UpdCheckboxModule, typeof i9.UpdRadioModule, typeof i10.UpdDatePickerModule, typeof i11.UpdSelectModule, typeof i12.UpdTextareaModule, typeof i13.UpdFileUploadModule, typeof i14.UpdSdkModule], [typeof i1.FormComponent]>;
20
21
  static ɵinj: i0.ɵɵInjectorDeclaration<UpdFormModule>;
21
22
  }
package/package.json CHANGED
@@ -1,13 +1,13 @@
1
1
  {
2
2
  "name": "@updevs/components",
3
- "version": "1.0.0-alpha.22",
3
+ "version": "1.0.0-alpha.24",
4
4
  "peerDependencies": {
5
5
  "@angular/common": "^18.0.1",
6
6
  "@angular/core": "^18.0.1",
7
7
  "@jsverse/transloco": "^7.4.2",
8
8
  "@jsverse/transloco-messageformat": "^7.0.1",
9
9
  "@updevs/icons": "^1.0.9",
10
- "@updevs/sdk": "^1.0.0-alpha.27"
10
+ "@updevs/sdk": "^1.0.0-alpha.28"
11
11
  },
12
12
  "dependencies": {
13
13
  "tslib": "^2.3.0"
@@ -34,11 +34,17 @@
34
34
  "esm": "./esm2022/badge/updevs-components-badge.mjs",
35
35
  "default": "./fesm2022/updevs-components-badge.mjs"
36
36
  },
37
- "./card": {
38
- "types": "./card/index.d.ts",
39
- "esm2022": "./esm2022/card/updevs-components-card.mjs",
40
- "esm": "./esm2022/card/updevs-components-card.mjs",
41
- "default": "./fesm2022/updevs-components-card.mjs"
37
+ "./button": {
38
+ "types": "./button/index.d.ts",
39
+ "esm2022": "./esm2022/button/updevs-components-button.mjs",
40
+ "esm": "./esm2022/button/updevs-components-button.mjs",
41
+ "default": "./fesm2022/updevs-components-button.mjs"
42
+ },
43
+ "./drag-and-drop": {
44
+ "types": "./drag-and-drop/index.d.ts",
45
+ "esm2022": "./esm2022/drag-and-drop/updevs-components-drag-and-drop.mjs",
46
+ "esm": "./esm2022/drag-and-drop/updevs-components-drag-and-drop.mjs",
47
+ "default": "./fesm2022/updevs-components-drag-and-drop.mjs"
42
48
  },
43
49
  "./calendar": {
44
50
  "types": "./calendar/index.d.ts",
@@ -46,23 +52,17 @@
46
52
  "esm": "./esm2022/calendar/updevs-components-calendar.mjs",
47
53
  "default": "./fesm2022/updevs-components-calendar.mjs"
48
54
  },
49
- "./button": {
50
- "types": "./button/index.d.ts",
51
- "esm2022": "./esm2022/button/updevs-components-button.mjs",
52
- "esm": "./esm2022/button/updevs-components-button.mjs",
53
- "default": "./fesm2022/updevs-components-button.mjs"
54
- },
55
55
  "./dropdown": {
56
56
  "types": "./dropdown/index.d.ts",
57
57
  "esm2022": "./esm2022/dropdown/updevs-components-dropdown.mjs",
58
58
  "esm": "./esm2022/dropdown/updevs-components-dropdown.mjs",
59
59
  "default": "./fesm2022/updevs-components-dropdown.mjs"
60
60
  },
61
- "./drag-and-drop": {
62
- "types": "./drag-and-drop/index.d.ts",
63
- "esm2022": "./esm2022/drag-and-drop/updevs-components-drag-and-drop.mjs",
64
- "esm": "./esm2022/drag-and-drop/updevs-components-drag-and-drop.mjs",
65
- "default": "./fesm2022/updevs-components-drag-and-drop.mjs"
61
+ "./card": {
62
+ "types": "./card/index.d.ts",
63
+ "esm2022": "./esm2022/card/updevs-components-card.mjs",
64
+ "esm": "./esm2022/card/updevs-components-card.mjs",
65
+ "default": "./fesm2022/updevs-components-card.mjs"
66
66
  },
67
67
  "./form": {
68
68
  "types": "./form/index.d.ts",
@@ -94,18 +94,18 @@
94
94
  "esm": "./esm2022/modal/updevs-components-modal.mjs",
95
95
  "default": "./fesm2022/updevs-components-modal.mjs"
96
96
  },
97
- "./popover": {
98
- "types": "./popover/index.d.ts",
99
- "esm2022": "./esm2022/popover/updevs-components-popover.mjs",
100
- "esm": "./esm2022/popover/updevs-components-popover.mjs",
101
- "default": "./fesm2022/updevs-components-popover.mjs"
102
- },
103
97
  "./paginator": {
104
98
  "types": "./paginator/index.d.ts",
105
99
  "esm2022": "./esm2022/paginator/updevs-components-paginator.mjs",
106
100
  "esm": "./esm2022/paginator/updevs-components-paginator.mjs",
107
101
  "default": "./fesm2022/updevs-components-paginator.mjs"
108
102
  },
103
+ "./popover": {
104
+ "types": "./popover/index.d.ts",
105
+ "esm2022": "./esm2022/popover/updevs-components-popover.mjs",
106
+ "esm": "./esm2022/popover/updevs-components-popover.mjs",
107
+ "default": "./fesm2022/updevs-components-popover.mjs"
108
+ },
109
109
  "./table": {
110
110
  "types": "./table/index.d.ts",
111
111
  "esm2022": "./esm2022/table/updevs-components-table.mjs",