@eui/components 15.2.2-snapshot-1677676754363 → 15.2.2

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.
@@ -511,7 +511,7 @@ class UxFormControlComponent {
511
511
  useExisting: forwardRef((() => UxFormControlComponent)),
512
512
  multi: true,
513
513
  },
514
- ], viewQueries: [{ propertyName: "radioElement", first: true, predicate: ["radioElement"], descendants: true }, { propertyName: "inputRef", first: true, predicate: ["inputRef"], descendants: true }, { propertyName: "formControlRef", first: true, predicate: ["formControlRef"], descendants: true, read: ElementRef }], usesOnChanges: true, ngImport: i0, template: "<ng-container *ngIf=\"isInputText && !isReadOnly\">\n <span attr.data-e2e=\"{{ e2eAttr }}-tf-rw\">\n <input\n #inputRef\n #formControlRef\n id=\"{{ generatedId }}\"\n type=\"text\"\n [(ngModel)]=\"inputValue\"\n class=\"ux-form-control {{ inputStyleClass }}\"\n (change)=\"onChange($event)\"\n (keyup)=\"onChange($event)\"\n (blur)=\"onTouched($event)\"\n (focus)=\"onFocus($event)\"\n placeholder=\"{{ placeholderLabel }}\"\n [uxMaxlength]=\"maxlength\"\n (validityChange)=\"OnMaxLengthValidityChange($event)\"\n [isShowMaxlengthCounter]=\"isShowMaxlengthCounter\"\n [disabled]=\"isDisabled\"\n [tabindex]=\"tabindex\"\n [attr.aria-invalid]=\"ariaInvalid\"\n [attr.aria-required]=\"isRequired\" />\n </span>\n</ng-container>\n\n<ng-container *ngIf=\"isTextarea && !isReadOnly\">\n <span attr.data-e2e=\"{{ e2eAttr }}-ta-rw\">\n <textarea\n #formControlRef\n id=\"{{ generatedId }}\"\n class=\"ux-form-control {{ inputStyleClass }}\"\n [(ngModel)]=\"inputValue\"\n (change)=\"onChange($event)\"\n (keyup)=\"onChange($event)\"\n (blur)=\"onTouched($event)\"\n (focus)=\"onFocus($event)\"\n placeholder=\"{{ placeholderLabel }}\"\n [uxMaxlength]=\"maxlength\"\n (validityChange)=\"OnMaxLengthValidityChange($event)\"\n [isShowMaxlengthCounter]=\"isShowMaxlengthCounter\"\n [attr.rows]=\"rows\"\n [minRows]=\"minRows\"\n [disabled]=\"isDisabled\"\n [tabindex]=\"tabindex\"\n [attr.aria-invalid]=\"ariaInvalid\"\n [attr.aria-required]=\"isRequired\"\n [uxAutoResize]=\"isTextareaAutoresize\">\n </textarea>\n </span>\n</ng-container>\n\n<ng-container *ngIf=\"isSelect && !isReadOnly\">\n <select\n #formControlRef\n id=\"{{ generatedId }}\"\n class=\"ux-form-control ux-form-control__custom-select {{ inputStyleClass }}\"\n [(ngModel)]=\"inputValue\"\n (change)=\"onChange($event)\"\n (keyup)=\"onChange($event)\"\n (blur)=\"onTouched($event)\"\n (focus)=\"onFocus($event)\"\n [disabled]=\"isDisabled\"\n [tabindex]=\"tabindex\"\n [attr.aria-invalid]=\"ariaInvalid\"\n [attr.aria-required]=\"isRequired\"\n attr.data-e2e=\"{{ e2eAttr }}-sel-rw\">\n <ng-container *ngIf=\"selectOptions\">\n <option *ngIf=\"!selectNoBlankLine\" [value]=\"'' || null\" class=\"ux-u-color-grey\">{{ placeholderLabel }}</option>\n <ng-template [ngIf]=\"isSelectHasOptions\">\n <ng-template ngFor let-item [ngForOf]=\"selectOptions\">\n <optgroup *ngIf=\"item.options\" label=\"{{ item.value }}\" class=\"ux-u-font-regular\">\n <option\n *ngFor=\"let opt of item.options\"\n [value]=\"opt[selectKeyName]\"\n [selected]=\"inputValue === opt[selectKeyName]\">\n {{ opt[selectValueName] }}\n </option>\n </optgroup>\n <option *ngIf=\"!item.options\" [value]=\"item[selectKeyName]\" [selected]=\"inputValue === item[selectKeyName]\">\n {{ item[selectValueName] }}\n </option>\n </ng-template>\n </ng-template>\n\n <ng-template [ngIf]=\"!isSelectHasOptions\">\n <option *ngFor=\"let opt of selectOptions\" [value]=\"opt[selectKeyName]\" [selected]=\"inputValue === opt[selectKeyName]\">\n {{ opt[selectValueName] }}\n </option>\n </ng-template>\n </ng-container>\n <ng-content *ngIf=\"!selectOptions\"></ng-content>\n </select>\n</ng-container>\n\n<ng-container *ngIf=\"isReadOnly && isSelect\">\n <!-- <input type=\"text\" role=\"combobox\" [attr.aria-readonly]=\"true\" readonly=\"readonly\" id=\"{{generatedId}}\" class=\"ux-form-control__read-only {{inputStyleClass}}\" [value]=\"selectValue\" [tabindex]=\"tabindex\" /> -->\n <div\n id=\"{{ generatedId }}\"\n class=\"ux-form-group--read-only {{ inputStyleClass }}\"\n [tabindex]=\"tabindex\"\n attr.data-e2e=\"{{ e2eAttr }}-sel-ro\">\n {{ selectValue === '' || !selectValue ? emptyValueTextOnReadOnly : selectValue }}\n </div>\n</ng-container>\n\n<ng-container *ngIf=\"isCheckbox && !isReadOnly\">\n <input\n #formControlRef\n id=\"{{ generatedId }}\"\n type=\"checkbox\"\n class=\"ux-input__checkbox {{ styleClass }}\"\n [(ngModel)]=\"inputValue\"\n (click)=\"onChange($event)\"\n (blur)=\"onTouched($event)\"\n (focus)=\"onFocus($event)\"\n [disabled]=\"isDisabled\"\n [tabindex]=\"tabindex\"\n [attr.aria-invalid]=\"ariaInvalid\"\n [attr.aria-required]=\"isRequired\"\n attr.data-e2e=\"{{ e2eAttr }}-cb-rw\" />\n <label for=\"{{ generatedId }}\" *ngIf=\"checkboxLabel\">{{ checkboxLabel }}</label>\n <label for=\"{{ generatedId }}\" role=\"presentation\" *ngIf=\"!checkboxLabel\">&nbsp;</label>\n</ng-container>\n\n<ng-container *ngIf=\"isCheckbox && isReadOnly\">\n <input\n #formControlRef\n id=\"{{ generatedId }}\"\n class=\"ux-input__checkbox {{ styleClass }}\"\n type=\"checkbox\"\n [checked]=\"inputValue\"\n onclick=\"return false;\"\n [tabindex]=\"tabindex\"\n readonly=\"readonly\"\n aria-readonly=\"true\"\n attr.data-e2e=\"{{ e2eAttr }}-cb-ro\" />\n <label for=\"{{ generatedId }}\" *ngIf=\"checkboxLabel\">{{ checkboxLabel }}</label>\n <label for=\"{{ generatedId }}\" role=\"presentation\" *ngIf=\"!checkboxLabel\">&nbsp;</label>\n</ng-container>\n\n<ng-container *ngIf=\"isRadio && !isReadOnly\">\n <input\n #radioElement\n #formControlRef\n id=\"{{ generatedId }}\"\n class=\"ux-input__radio {{ styleClass }}\"\n type=\"radio\"\n [checked]=\"checked\"\n [name]=\"formControlName + groupId\"\n [value]=\"formControlValue\"\n (click)=\"onChange($event)\"\n (blur)=\"onTouched($event)\"\n (focus)=\"onFocus($event)\"\n [disabled]=\"isDisabled\"\n [tabindex]=\"tabindex\"\n [attr.aria-invalid]=\"ariaInvalid\"\n [attr.aria-required]=\"isRequired\"\n attr.data-e2e=\"{{ e2eAttr }}-ra-rw\" />\n <label for=\"{{ generatedId }}\" class=\"radio-label\">{{ radioLabel || '&nbsp;' }}</label>\n</ng-container>\n\n<ng-container *ngIf=\"isRadio && isReadOnly && isRadioOptionChecked\">\n <div\n *ngIf=\"radioLabel\"\n id=\"{{ generatedId }}\"\n class=\"ux-form-group--read-only {{ inputStyleClass }}\"\n [tabindex]=\"tabindex\"\n attr.data-e2e=\"{{ e2eAttr }}-ro\">\n {{ radioLabel }}\n </div>\n <div\n *ngIf=\"!radioLabel\"\n id=\"{{ generatedId }}\"\n class=\"ux-form-group--read-only {{ inputStyleClass }}\"\n [tabindex]=\"tabindex\"\n attr.data-e2e=\"{{ e2eAttr }}-ro\">\n {{ inputValue }}\n </div>\n</ng-container>\n\n<ng-container *ngIf=\"isReadOnly && !isCheckbox && !isNumber && !isSelect && !isRadio && !isTextarea\">\n <div\n id=\"{{ generatedId }}\"\n class=\"ux-form-group--read-only {{ inputStyleClass }}\"\n [tabindex]=\"tabindex\"\n attr.data-e2e=\"{{ e2eAttr }}-ro\">\n {{ inputValue === '' || !inputValue ? emptyValueTextOnReadOnly : inputValue }}\n </div>\n</ng-container>\n\n<ng-container *ngIf=\"isNumber\">\n <div\n *ngIf=\"isReadOnly\"\n id=\"{{ generatedId }}\"\n class=\"ux-form-group--read-only {{ inputStyleClass }}\"\n [tabindex]=\"tabindex\"\n attr.data-e2e=\"{{ e2eAttr }}-sel-ro\">\n {{ inputRef.value === '' || !inputRef.value ? emptyValueTextOnReadOnly : inputRef.value }}\n </div>\n <span [hidden]=\"isReadOnly\" attr.data-e2e=\"{{ e2eAttr }}-num-rw\">\n <input\n #inputRef\n #formControlRef\n id=\"{{ generatedId }}\"\n type=\"text\"\n [uxCleave]=\"cleaveOptions\"\n [readOnly]=\"isReadOnly\"\n [(ngModel)]=\"inputValue\"\n [isModelNumber]=\"true\"\n class=\"ux-form-control {{ inputStyleClass }}\"\n (change)=\"onChange($event)\"\n (keyup)=\"onChange($event)\"\n (blur)=\"onTouched($event)\"\n (focus)=\"onFocus($event)\"\n placeholder=\"{{ placeholderLabel }}\"\n [disabled]=\"isDisabled\"\n [uxMaxlength]=\"maxlength\"\n (validityChange)=\"OnMaxLengthValidityChange($event)\"\n [isShowMaxlengthCounter]=\"isShowMaxlengthCounter\"\n [tabindex]=\"tabindex\"\n [attr.aria-invalid]=\"ariaInvalid\"\n [attr.aria-required]=\"isRequired\" />\n </span>\n</ng-container>\n\n<ng-container *ngIf=\"isTextarea && isReadOnly\">\n <div\n id=\"{{ generatedId }}\"\n class=\"ux-form-group--read-only {{ inputStyleClass }}\"\n [tabindex]=\"tabindex\"\n attr.data-e2e=\"{{ e2eAttr }}-ro\">\n <pre>{{ inputValue === '' || !inputValue ? emptyValueTextOnReadOnly : inputValue }}</pre>\n </div>\n</ng-container>\n\n<ng-container *ngIf=\"!isFieldValid && !hasFormGroupParent\">\n <ux-control-feedback\n *ngIf=\"validationErrorMessage\"\n typeClass=\"{{ validationErrorType ? validationErrorType : 'danger' }}\"\n attr.data-e2e=\"{{ e2eAttr }}\">\n {{\n validationErrorMessage && $any(validationErrorMessage).id\n ? ($any(validationErrorMessage).id | translate : $any(validationErrorMessage).params)\n : validationErrorMessage\n }}\n </ux-control-feedback>\n</ng-container>\n\n<ng-container *ngIf=\"!isMaxLengthValid\">\n <ux-control-feedback *ngIf=\"maxLengthValidationErrorMessage\" typeClass=\"danger\" attr.data-e2e=\"{{ e2eAttr }}\">\n {{ maxLengthValidationErrorMessage }}\n </ux-control-feedback>\n</ng-container>\n", styles: ["input.ux-form-control,select.ux-form-control,textarea.ux-form-control{border:1px solid var(--eui-base-color-grey-20);border-radius:var(--eui-base-border-radius);color:var(--eui-base-color-grey-100);font-size:var(--eui-base-font-size);font-style:normal;font-weight:400;height:calc(var(--eui-base-spacing-2xl) + 2px);padding:var(--eui-base-spacing-xs) var(--eui-base-spacing-s);transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out}input.ux-form-control:focus,select.ux-form-control:focus,textarea.ux-form-control:focus{border:1px solid var(--eui-base-color-primary-75);box-shadow:var(--eui-base-shadow-1)}input::-ms-clear{display:none}.ux-clearable-input-wrapper{align-items:center;background-color:var(--eui-base-color-white);color:var(--eui-base-color-grey-35);cursor:pointer;display:flex;font-size:var(--eui-base-font-size-m);-webkit-user-select:none;user-select:none}.ux-clearable-input-wrapper:before{position:absolute;right:var(--eui-base-spacing-s)}.ux-clearable-input-wrapper:hover{color:var(--eui-base-color-grey-100)}@keyframes borderscale{50%{box-shadow:0 0 0 2px var(--eui-base-color-primary-110)}}select.ux-form-control:not([readonly]){-webkit-appearance:none;appearance:none;background-color:var(--eui-base-color-white);background-image:url('data:image/svg+xml;utf8,<svg viewBox=\"0 0 4 5\" fill=\"black\" xmlns=\"http://www.w3.org/2000/svg\" name=\"arrow-up-down\" aria-label=\"Close menu\" role=\"img\"><path d=\"M2 0L0 2h4zm0 5L0 3h4z\"/></svg>');background-position:calc(100% - var(--eui-base-spacing-s)) center;background-repeat:no-repeat;background-size:var(--eui-base-spacing-xs);padding-right:var(--eui-base-spacing-xl)}:host{width:100%}.ux-form-control{background-clip:padding-box;background-color:var(--eui-base-color-white);border-radius:var(--eui-border-radius-base);display:block;line-height:var(--eui-base-line-height);transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out;width:100%}.ux-form-control:disabled,.ux-form-control[readonly]{background-color:var(--eui-base-color-grey-5)!important;color:var(--eui-base-color-grey-80)!important}.ux-form-control.custom-select,.ux-form-control.ux-form-control__custom-select{padding-right:var(--eui-base-spacing-2xl);text-overflow:ellipsis}select.ux-form-control[multiple],select.ux-form-control[size]{height:calc(var(--eui-base-spacing-2xl) + var(--eui-base-spacing-m) + 2px)!important;padding-right:0}select.ux-form-control:not([size]),select.ux-form-control[size=\"1\"],select.ux-form-control:not([multiple]){height:calc(var(--eui-base-spacing-2xl) + 2px)}textarea.ux-form-control{height:auto}.ux-input__checkbox:not(.cdk-visually-hidden){-webkit-appearance:inherit;appearance:inherit;cursor:pointer;display:inline-flex;flex-shrink:0;height:calc(var(--eui-base-spacing-m) + var(--eui-base-spacing-2xs));margin-right:var(--eui-base-spacing-s);position:relative;transition:all .25s ease;vertical-align:top;width:calc(var(--eui-base-spacing-m) + var(--eui-base-spacing-2xs));accent-color:var(--eui-base-color-white);background:var(--eui-base-color-white);border:2px solid var(--eui-base-color-grey-20)}.ux-input__checkbox:not(.cdk-visually-hidden)+label{display:inline-flex;cursor:pointer;margin-right:var(--eui-base-spacing-m);white-space:inherit}.ux-input__checkbox:not(.cdk-visually-hidden):checked{background:var(--eui-base-color-primary-100);opacity:1}.ux-input__checkbox:not(.cdk-visually-hidden):checked:before{height:1rem;width:1rem;content:url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'%3E%3Ctitle%3ECheckmark%3C/title%3E%3Cpath fill='none' stroke='%23fff' stroke-linecap='round' stroke-linejoin='round' stroke-width='64' d='M416 128L192 384l-96-96'/%3E%3C/svg%3E\");height:calc(var(--eui-base-spacing-m) + var(--eui-base-spacing-2xs));width:calc(var(--eui-base-spacing-m) + var(--eui-base-spacing-2xs))}.ux-input__checkbox:not(.cdk-visually-hidden):disabled:not([readonly]){background:var(--eui-base-color-grey-15);opacity:.25;pointer-events:none;-webkit-user-select:none;user-select:none}.ux-input__checkbox:not(.cdk-visually-hidden):disabled:not([readonly]):checked:before{height:1rem;width:1rem;content:url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'%3E%3Ctitle%3ECheckmark%3C/title%3E%3Cpath fill='none' stroke='%23004494' stroke-linecap='round' stroke-linejoin='round' stroke-width='64' d='M416 128L192 384l-96-96'/%3E%3C/svg%3E\")}.ux-input__checkbox:not(.cdk-visually-hidden):disabled:not([readonly])+label{pointer-events:none}.ux-input__checkbox:not(.cdk-visually-hidden)[readonly]{background:var(--eui-base-color-grey-35);opacity:.5;pointer-events:none;-webkit-user-select:none;user-select:none}.ux-input__checkbox:not(.cdk-visually-hidden)[readonly]:checked:before{height:1rem;width:1rem;content:url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'%3E%3Ctitle%3ECheckmark%3C/title%3E%3Cpath fill='none' stroke='%23004494' stroke-linecap='round' stroke-linejoin='round' stroke-width='64' d='M416 128L192 384l-96-96'/%3E%3C/svg%3E\")}.ux-input__checkbox:not(.cdk-visually-hidden)[readonly]+label{pointer-events:none}.ux-input__checkbox:not(.cdk-visually-hidden):active,.ux-input__checkbox:not(.cdk-visually-hidden):focus{box-shadow:var(--eui-base-shadow-3);outline:2px solid var(--eui-base-color-accessible-focus);outline-offset:0;-moz-outline-radius:var(--eui-base-border-radius);transition:outline .15s ease-in-out,border .15s ease-in-out}.ux-input__radio:not(.cdk-visually-hidden){-webkit-appearance:inherit;appearance:inherit;align-items:center;border-radius:50%;cursor:pointer;display:inline-flex;flex-shrink:0;height:calc(var(--eui-base-spacing-m) + var(--eui-base-spacing-2xs));margin-right:var(--eui-base-spacing-s);position:relative;vertical-align:bottom;transition:all .25s ease;width:calc(var(--eui-base-spacing-m) + var(--eui-base-spacing-2xs));accent-color:var(--eui-base-color-white);background:var(--eui-base-color-white);border:2px solid var(--eui-base-color-grey-20)}.ux-input__radio:not(.cdk-visually-hidden)+label{display:inline-flex;cursor:pointer;margin-right:var(--eui-base-spacing-m);white-space:inherit}.ux-input__radio:not(.cdk-visually-hidden):checked{background:var(--eui-base-color-white)}.ux-input__radio:not(.cdk-visually-hidden):checked:before{height:1rem;width:1rem;content:url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'%3E%3Ctitle%3EEllipse%3C/title%3E%3Cpath fill='%23004494' stroke='%23004494' d='M256 464c-114.69 0-208-93.31-208-208S141.31 48 256 48s208 93.31 208 208-93.31 208-208 208z'/%3E%3C/svg%3E\")}.ux-input__radio:not(.cdk-visually-hidden):disabled:not([readonly]){background:var(--eui-base-color-grey-15);opacity:.25;pointer-events:none;-webkit-user-select:none;user-select:none}.ux-input__radio:not(.cdk-visually-hidden):disabled:not([readonly]):checked:before{height:1rem;width:1rem;content:url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'%3E%3Ctitle%3EEllipse%3C/title%3E%3Cpath fill='%23004494' stroke='%23004494' d='M256 464c-114.69 0-208-93.31-208-208S141.31 48 256 48s208 93.31 208 208-93.31 208-208 208z'/%3E%3C/svg%3E\")}.ux-input__radio:not(.cdk-visually-hidden):disabled:not([readonly])+label{pointer-events:none}.ux-input__radio:not(.cdk-visually-hidden)[readonly]{display:none;opacity:.5;pointer-events:none;-webkit-user-select:none;user-select:none}.ux-input__radio:not(.cdk-visually-hidden)[readonly]:checked{display:inline-flex}.ux-input__radio:not(.cdk-visually-hidden)[readonly]:checked:before{background:var(--eui-base-color-grey-25);border-radius:50%;height:1rem;width:1rem;content:url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'%3E%3Ctitle%3EEllipse%3C/title%3E%3Cpath fill='%23004494' stroke='%23004494' d='M256 464c-114.69 0-208-93.31-208-208S141.31 48 256 48s208 93.31 208 208-93.31 208-208 208z'/%3E%3C/svg%3E\")}.ux-input__radio:not(.cdk-visually-hidden).eui-input-radio--invalid:not(:disabled):not([readonly]),.ux-input__radio:not(.cdk-visually-hidden).eui-input-radio--danger:not(:disabled):not([readonly]){border:2px solid var(--eui-base-color-danger-100)}.ux-input__radio:not(.cdk-visually-hidden).eui-input-radio--invalid:not(:disabled):not([readonly]):checked:before,.ux-input__radio:not(.cdk-visually-hidden).eui-input-radio--danger:not(:disabled):not([readonly]):checked:before{height:1rem;width:1rem;content:url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'%3E%3Ctitle%3EEllipse%3C/title%3E%3Cpath fill='%23da2131' stroke='%23da2131' d='M256 464c-114.69 0-208-93.31-208-208S141.31 48 256 48s208 93.31 208 208-93.31 208-208 208z'/%3E%3C/svg%3E\")}.ux-input__radio:not(.cdk-visually-hidden):active,.ux-input__radio:not(.cdk-visually-hidden):focus{box-shadow:var(--eui-base-shadow-3);outline:2px solid var(--eui-base-color-accessible-focus);outline-offset:0;-moz-outline-radius:var(--eui-base-border-radius);transition:outline .15s ease-in-out,border .15s ease-in-out}\n"], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.UxControlFeedbackComponent, selector: "ux-control-feedback", inputs: ["styleClass", "typeClass", "e2eAttr"] }, { kind: "directive", type: i3.NgSelectOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i3.ɵNgSelectMultipleOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i3.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i3.CheckboxControlValueAccessor, selector: "input[type=checkbox][formControlName],input[type=checkbox][formControl],input[type=checkbox][ngModel]" }, { kind: "directive", type: i3.SelectControlValueAccessor, selector: "select:not([multiple])[formControlName],select:not([multiple])[formControl],select:not([multiple])[ngModel]", inputs: ["compareWith"] }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i4.UxMaxlengthDirective, selector: "input[type=\"text\"][uxMaxlength], input[type=\"password\"][uxMaxlength], textarea[uxMaxlength]", inputs: ["uxMaxlength", "isShowMaxlengthCounter"], outputs: ["validityChange"] }, { kind: "directive", type: i4.UxAutoResizeDirective, selector: "textarea[uxAutoResize]", inputs: ["uxAutoResize", "minRows"] }, { kind: "directive", type: i4.UxCleaveDirective, selector: "[uxCleave]", inputs: ["uxCleave", "readOnly", "isModelNumber"] }, { kind: "pipe", type: i5.TranslatePipe, name: "translate" }], encapsulation: i0.ViewEncapsulation.None });
514
+ ], viewQueries: [{ propertyName: "radioElement", first: true, predicate: ["radioElement"], descendants: true }, { propertyName: "inputRef", first: true, predicate: ["inputRef"], descendants: true }, { propertyName: "formControlRef", first: true, predicate: ["formControlRef"], descendants: true, read: ElementRef }], usesOnChanges: true, ngImport: i0, template: "<ng-container *ngIf=\"isInputText && !isReadOnly\">\n <span attr.data-e2e=\"{{ e2eAttr }}-tf-rw\">\n <input\n #inputRef\n #formControlRef\n id=\"{{ generatedId }}\"\n type=\"text\"\n [(ngModel)]=\"inputValue\"\n class=\"ux-form-control {{ inputStyleClass }}\"\n (change)=\"onChange($event)\"\n (keyup)=\"onChange($event)\"\n (blur)=\"onTouched($event)\"\n (focus)=\"onFocus($event)\"\n placeholder=\"{{ placeholderLabel }}\"\n [uxMaxlength]=\"maxlength\"\n (validityChange)=\"OnMaxLengthValidityChange($event)\"\n [isShowMaxlengthCounter]=\"isShowMaxlengthCounter\"\n [disabled]=\"isDisabled\"\n [tabindex]=\"tabindex\"\n [attr.aria-invalid]=\"ariaInvalid\"\n [attr.aria-required]=\"isRequired\" />\n </span>\n</ng-container>\n\n<ng-container *ngIf=\"isTextarea && !isReadOnly\">\n <span attr.data-e2e=\"{{ e2eAttr }}-ta-rw\">\n <textarea\n #formControlRef\n id=\"{{ generatedId }}\"\n class=\"ux-form-control {{ inputStyleClass }}\"\n [(ngModel)]=\"inputValue\"\n (change)=\"onChange($event)\"\n (keyup)=\"onChange($event)\"\n (blur)=\"onTouched($event)\"\n (focus)=\"onFocus($event)\"\n placeholder=\"{{ placeholderLabel }}\"\n [uxMaxlength]=\"maxlength\"\n (validityChange)=\"OnMaxLengthValidityChange($event)\"\n [isShowMaxlengthCounter]=\"isShowMaxlengthCounter\"\n [attr.rows]=\"rows\"\n [minRows]=\"minRows\"\n [disabled]=\"isDisabled\"\n [tabindex]=\"tabindex\"\n [attr.aria-invalid]=\"ariaInvalid\"\n [attr.aria-required]=\"isRequired\"\n [uxAutoResize]=\"isTextareaAutoresize\">\n </textarea>\n </span>\n</ng-container>\n\n<ng-container *ngIf=\"isSelect && !isReadOnly\">\n <select\n #formControlRef\n id=\"{{ generatedId }}\"\n class=\"ux-form-control ux-form-control__custom-select {{ inputStyleClass }}\"\n [(ngModel)]=\"inputValue\"\n (change)=\"onChange($event)\"\n (keyup)=\"onChange($event)\"\n (blur)=\"onTouched($event)\"\n (focus)=\"onFocus($event)\"\n [disabled]=\"isDisabled\"\n [tabindex]=\"tabindex\"\n [attr.aria-invalid]=\"ariaInvalid\"\n [attr.aria-required]=\"isRequired\"\n attr.data-e2e=\"{{ e2eAttr }}-sel-rw\">\n <ng-container *ngIf=\"selectOptions\">\n <option *ngIf=\"!selectNoBlankLine\" [value]=\"'' || null\" class=\"ux-u-color-grey\">{{ placeholderLabel }}</option>\n <ng-template [ngIf]=\"isSelectHasOptions\">\n <ng-template ngFor let-item [ngForOf]=\"selectOptions\">\n <optgroup *ngIf=\"item.options\" label=\"{{ item.value }}\" class=\"ux-u-font-regular\">\n <option\n *ngFor=\"let opt of item.options\"\n [value]=\"opt[selectKeyName]\"\n [selected]=\"inputValue === opt[selectKeyName]\">\n {{ opt[selectValueName] }}\n </option>\n </optgroup>\n <option *ngIf=\"!item.options\" [value]=\"item[selectKeyName]\" [selected]=\"inputValue === item[selectKeyName]\">\n {{ item[selectValueName] }}\n </option>\n </ng-template>\n </ng-template>\n\n <ng-template [ngIf]=\"!isSelectHasOptions\">\n <option *ngFor=\"let opt of selectOptions\" [value]=\"opt[selectKeyName]\" [selected]=\"inputValue === opt[selectKeyName]\">\n {{ opt[selectValueName] }}\n </option>\n </ng-template>\n </ng-container>\n <ng-content *ngIf=\"!selectOptions\"></ng-content>\n </select>\n</ng-container>\n\n<ng-container *ngIf=\"isReadOnly && isSelect\">\n <!-- <input type=\"text\" role=\"combobox\" [attr.aria-readonly]=\"true\" readonly=\"readonly\" id=\"{{generatedId}}\" class=\"ux-form-control__read-only {{inputStyleClass}}\" [value]=\"selectValue\" [tabindex]=\"tabindex\" /> -->\n <div\n id=\"{{ generatedId }}\"\n class=\"ux-form-group--read-only {{ inputStyleClass }}\"\n [tabindex]=\"tabindex\"\n attr.data-e2e=\"{{ e2eAttr }}-sel-ro\">\n {{ selectValue === '' || !selectValue ? emptyValueTextOnReadOnly : selectValue }}\n </div>\n</ng-container>\n\n<ng-container *ngIf=\"isCheckbox && !isReadOnly\">\n <input\n #formControlRef\n id=\"{{ generatedId }}\"\n type=\"checkbox\"\n class=\"ux-input__checkbox {{ styleClass }}\"\n [(ngModel)]=\"inputValue\"\n (click)=\"onChange($event)\"\n (blur)=\"onTouched($event)\"\n (focus)=\"onFocus($event)\"\n [disabled]=\"isDisabled\"\n [tabindex]=\"tabindex\"\n [attr.aria-invalid]=\"ariaInvalid\"\n [attr.aria-required]=\"isRequired\"\n attr.data-e2e=\"{{ e2eAttr }}-cb-rw\" />\n <label for=\"{{ generatedId }}\" *ngIf=\"checkboxLabel\">{{ checkboxLabel }}</label>\n <label for=\"{{ generatedId }}\" role=\"presentation\" *ngIf=\"!checkboxLabel\">&nbsp;</label>\n</ng-container>\n\n<ng-container *ngIf=\"isCheckbox && isReadOnly\">\n <input\n #formControlRef\n id=\"{{ generatedId }}\"\n class=\"ux-input__checkbox {{ styleClass }}\"\n type=\"checkbox\"\n [checked]=\"inputValue\"\n onclick=\"return false;\"\n [tabindex]=\"tabindex\"\n readonly=\"readonly\"\n aria-readonly=\"true\"\n attr.data-e2e=\"{{ e2eAttr }}-cb-ro\" />\n <label for=\"{{ generatedId }}\" *ngIf=\"checkboxLabel\">{{ checkboxLabel }}</label>\n <label for=\"{{ generatedId }}\" role=\"presentation\" *ngIf=\"!checkboxLabel\">&nbsp;</label>\n</ng-container>\n\n<ng-container *ngIf=\"isRadio && !isReadOnly\">\n <input\n #radioElement\n #formControlRef\n id=\"{{ generatedId }}\"\n class=\"ux-input__radio {{ styleClass }}\"\n type=\"radio\"\n [checked]=\"checked\"\n [name]=\"formControlName + groupId\"\n [value]=\"formControlValue\"\n (click)=\"onChange($event)\"\n (blur)=\"onTouched($event)\"\n (focus)=\"onFocus($event)\"\n [disabled]=\"isDisabled\"\n [tabindex]=\"tabindex\"\n [attr.aria-invalid]=\"ariaInvalid\"\n [attr.aria-required]=\"isRequired\"\n attr.data-e2e=\"{{ e2eAttr }}-ra-rw\" />\n <label for=\"{{ generatedId }}\" class=\"radio-label\">{{ radioLabel || '&nbsp;' }}</label>\n</ng-container>\n\n<ng-container *ngIf=\"isRadio && isReadOnly && isRadioOptionChecked\">\n <div\n *ngIf=\"radioLabel\"\n id=\"{{ generatedId }}\"\n class=\"ux-form-group--read-only {{ inputStyleClass }}\"\n [tabindex]=\"tabindex\"\n attr.data-e2e=\"{{ e2eAttr }}-ro\">\n {{ radioLabel }}\n </div>\n <div\n *ngIf=\"!radioLabel\"\n id=\"{{ generatedId }}\"\n class=\"ux-form-group--read-only {{ inputStyleClass }}\"\n [tabindex]=\"tabindex\"\n attr.data-e2e=\"{{ e2eAttr }}-ro\">\n {{ inputValue }}\n </div>\n</ng-container>\n\n<ng-container *ngIf=\"isReadOnly && !isCheckbox && !isNumber && !isSelect && !isRadio && !isTextarea\">\n <div\n id=\"{{ generatedId }}\"\n class=\"ux-form-group--read-only {{ inputStyleClass }}\"\n [tabindex]=\"tabindex\"\n attr.data-e2e=\"{{ e2eAttr }}-ro\">\n {{ inputValue === '' || !inputValue ? emptyValueTextOnReadOnly : inputValue }}\n </div>\n</ng-container>\n\n<ng-container *ngIf=\"isNumber\">\n <div\n *ngIf=\"isReadOnly\"\n id=\"{{ generatedId }}\"\n class=\"ux-form-group--read-only {{ inputStyleClass }}\"\n [tabindex]=\"tabindex\"\n attr.data-e2e=\"{{ e2eAttr }}-sel-ro\">\n {{ inputRef.value === '' || !inputRef.value ? emptyValueTextOnReadOnly : inputRef.value }}\n </div>\n <span [hidden]=\"isReadOnly\" attr.data-e2e=\"{{ e2eAttr }}-num-rw\">\n <input\n #inputRef\n #formControlRef\n id=\"{{ generatedId }}\"\n type=\"text\"\n [uxCleave]=\"cleaveOptions\"\n [readOnly]=\"isReadOnly\"\n [(ngModel)]=\"inputValue\"\n [isModelNumber]=\"true\"\n class=\"ux-form-control {{ inputStyleClass }}\"\n (change)=\"onChange($event)\"\n (keyup)=\"onChange($event)\"\n (blur)=\"onTouched($event)\"\n (focus)=\"onFocus($event)\"\n placeholder=\"{{ placeholderLabel }}\"\n [disabled]=\"isDisabled\"\n [uxMaxlength]=\"maxlength\"\n (validityChange)=\"OnMaxLengthValidityChange($event)\"\n [isShowMaxlengthCounter]=\"isShowMaxlengthCounter\"\n [tabindex]=\"tabindex\"\n [attr.aria-invalid]=\"ariaInvalid\"\n [attr.aria-required]=\"isRequired\" />\n </span>\n</ng-container>\n\n<ng-container *ngIf=\"isTextarea && isReadOnly\">\n <div\n id=\"{{ generatedId }}\"\n class=\"ux-form-group--read-only {{ inputStyleClass }}\"\n [tabindex]=\"tabindex\"\n attr.data-e2e=\"{{ e2eAttr }}-ro\">\n <pre>{{ inputValue === '' || !inputValue ? emptyValueTextOnReadOnly : inputValue }}</pre>\n </div>\n</ng-container>\n\n<ng-container *ngIf=\"!isFieldValid && !hasFormGroupParent\">\n <ux-control-feedback\n *ngIf=\"validationErrorMessage\"\n typeClass=\"{{ validationErrorType ? validationErrorType : 'danger' }}\"\n attr.data-e2e=\"{{ e2eAttr }}\">\n {{\n validationErrorMessage && $any(validationErrorMessage).id\n ? ($any(validationErrorMessage).id | translate : $any(validationErrorMessage).params)\n : validationErrorMessage\n }}\n </ux-control-feedback>\n</ng-container>\n\n<ng-container *ngIf=\"!isMaxLengthValid\">\n <ux-control-feedback *ngIf=\"maxLengthValidationErrorMessage\" typeClass=\"danger\" attr.data-e2e=\"{{ e2eAttr }}\">\n {{ maxLengthValidationErrorMessage }}\n </ux-control-feedback>\n</ng-container>\n", styles: ["input.ux-form-control,select.ux-form-control,textarea.ux-form-control{border:1px solid var(--eui-base-color-grey-20);border-radius:var(--eui-base-border-radius);color:var(--eui-base-color-grey-100);font-size:var(--eui-base-font-size);font-style:normal;font-weight:400;height:calc(var(--eui-base-spacing-2xl) + 2px);padding:var(--eui-base-spacing-xs) var(--eui-base-spacing-s);transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out}input.ux-form-control:active,input.ux-form-control:focus,select.ux-form-control:active,select.ux-form-control:focus,textarea.ux-form-control:active,textarea.ux-form-control:focus{outline:2px solid var(--eui-base-color-accessible-focus);outline-offset:-2px;-moz-outline-radius:var(--eui-base-border-radius);transition:outline .15s ease-in-out,border .15s ease-in-out}input::-ms-clear{display:none}.ux-clearable-input-wrapper{align-items:center;background-color:var(--eui-base-color-white);color:var(--eui-base-color-grey-35);cursor:pointer;display:flex;font-size:var(--eui-base-font-size-m);-webkit-user-select:none;user-select:none}.ux-clearable-input-wrapper:before{position:absolute;right:var(--eui-base-spacing-s)}.ux-clearable-input-wrapper:hover{color:var(--eui-base-color-grey-100)}@keyframes borderscale{50%{box-shadow:0 0 0 2px var(--eui-base-color-primary-110)}}select.ux-form-control:not([readonly]){-webkit-appearance:none;appearance:none;background-color:var(--eui-base-color-white);background-image:url('data:image/svg+xml;utf8,<svg viewBox=\"0 0 4 5\" fill=\"black\" xmlns=\"http://www.w3.org/2000/svg\" name=\"arrow-up-down\" aria-label=\"Close menu\" role=\"img\"><path d=\"M2 0L0 2h4zm0 5L0 3h4z\"/></svg>');background-position:calc(100% - var(--eui-base-spacing-s)) center;background-repeat:no-repeat;background-size:var(--eui-base-spacing-xs);padding-right:var(--eui-base-spacing-xl)}:host{width:100%}.ux-form-control{background-clip:padding-box;background-color:var(--eui-base-color-white);border-radius:var(--eui-border-radius-base);display:block;line-height:var(--eui-base-line-height);transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out;width:100%}.ux-form-control:disabled,.ux-form-control[readonly]{background-color:var(--eui-base-color-grey-5)!important;color:var(--eui-base-color-grey-80)!important}.ux-form-control.custom-select,.ux-form-control.ux-form-control__custom-select{padding-right:var(--eui-base-spacing-2xl);text-overflow:ellipsis}select.ux-form-control[multiple],select.ux-form-control[size]{height:calc(var(--eui-base-spacing-2xl) + var(--eui-base-spacing-m) + 2px)!important;padding-right:0}select.ux-form-control:not([size]),select.ux-form-control[size=\"1\"],select.ux-form-control:not([multiple]){height:calc(var(--eui-base-spacing-2xl) + 2px)}textarea.ux-form-control{height:auto}.ux-input__checkbox:not(.cdk-visually-hidden){-webkit-appearance:inherit;appearance:inherit;cursor:pointer;display:inline-flex;flex-shrink:0;height:calc(var(--eui-base-spacing-m) + var(--eui-base-spacing-2xs));margin-right:var(--eui-base-spacing-s);position:relative;transition:all .25s ease;vertical-align:top;width:calc(var(--eui-base-spacing-m) + var(--eui-base-spacing-2xs));accent-color:var(--eui-base-color-white);background:var(--eui-base-color-white);border:2px solid var(--eui-base-color-grey-20)}.ux-input__checkbox:not(.cdk-visually-hidden)+label{display:inline-flex;cursor:pointer;margin-right:var(--eui-base-spacing-m);white-space:inherit}.ux-input__checkbox:not(.cdk-visually-hidden):checked{background:var(--eui-base-color-primary-100);opacity:1}.ux-input__checkbox:not(.cdk-visually-hidden):checked:before{height:1rem;width:1rem;content:url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'%3E%3Ctitle%3ECheckmark%3C/title%3E%3Cpath fill='none' stroke='%23fff' stroke-linecap='round' stroke-linejoin='round' stroke-width='64' d='M416 128L192 384l-96-96'/%3E%3C/svg%3E\");height:calc(var(--eui-base-spacing-m) + var(--eui-base-spacing-2xs));width:calc(var(--eui-base-spacing-m) + var(--eui-base-spacing-2xs))}.ux-input__checkbox:not(.cdk-visually-hidden):disabled:not([readonly]){background:var(--eui-base-color-grey-15);opacity:.25;pointer-events:none;-webkit-user-select:none;user-select:none}.ux-input__checkbox:not(.cdk-visually-hidden):disabled:not([readonly]):checked:before{height:1rem;width:1rem;content:url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'%3E%3Ctitle%3ECheckmark%3C/title%3E%3Cpath fill='none' stroke='%23004494' stroke-linecap='round' stroke-linejoin='round' stroke-width='64' d='M416 128L192 384l-96-96'/%3E%3C/svg%3E\")}.ux-input__checkbox:not(.cdk-visually-hidden):disabled:not([readonly])+label{pointer-events:none}.ux-input__checkbox:not(.cdk-visually-hidden)[readonly]{background:var(--eui-base-color-grey-35);opacity:.5;pointer-events:none;-webkit-user-select:none;user-select:none}.ux-input__checkbox:not(.cdk-visually-hidden)[readonly]:checked:before{height:1rem;width:1rem;content:url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'%3E%3Ctitle%3ECheckmark%3C/title%3E%3Cpath fill='none' stroke='%23004494' stroke-linecap='round' stroke-linejoin='round' stroke-width='64' d='M416 128L192 384l-96-96'/%3E%3C/svg%3E\")}.ux-input__checkbox:not(.cdk-visually-hidden)[readonly]+label{pointer-events:none}.ux-input__checkbox:not(.cdk-visually-hidden):active,.ux-input__checkbox:not(.cdk-visually-hidden):focus{box-shadow:var(--eui-base-shadow-3);outline:2px solid var(--eui-base-color-accessible-focus);outline-offset:0;-moz-outline-radius:var(--eui-base-border-radius);transition:outline .15s ease-in-out,border .15s ease-in-out}.ux-input__radio:not(.cdk-visually-hidden){-webkit-appearance:inherit;appearance:inherit;align-items:center;border-radius:50%;cursor:pointer;display:inline-flex;flex-shrink:0;height:calc(var(--eui-base-spacing-m) + var(--eui-base-spacing-2xs));margin-right:var(--eui-base-spacing-s);position:relative;vertical-align:bottom;transition:all .25s ease;width:calc(var(--eui-base-spacing-m) + var(--eui-base-spacing-2xs));accent-color:var(--eui-base-color-white);background:var(--eui-base-color-white);border:2px solid var(--eui-base-color-grey-20)}.ux-input__radio:not(.cdk-visually-hidden)+label{display:inline-flex;cursor:pointer;margin-right:var(--eui-base-spacing-m);white-space:inherit}.ux-input__radio:not(.cdk-visually-hidden):checked{background:var(--eui-base-color-white)}.ux-input__radio:not(.cdk-visually-hidden):checked:before{height:1rem;width:1rem;content:url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'%3E%3Ctitle%3EEllipse%3C/title%3E%3Cpath fill='%23004494' stroke='%23004494' d='M256 464c-114.69 0-208-93.31-208-208S141.31 48 256 48s208 93.31 208 208-93.31 208-208 208z'/%3E%3C/svg%3E\")}.ux-input__radio:not(.cdk-visually-hidden):disabled:not([readonly]){background:var(--eui-base-color-grey-15);opacity:.25;pointer-events:none;-webkit-user-select:none;user-select:none}.ux-input__radio:not(.cdk-visually-hidden):disabled:not([readonly]):checked:before{height:1rem;width:1rem;content:url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'%3E%3Ctitle%3EEllipse%3C/title%3E%3Cpath fill='%23004494' stroke='%23004494' d='M256 464c-114.69 0-208-93.31-208-208S141.31 48 256 48s208 93.31 208 208-93.31 208-208 208z'/%3E%3C/svg%3E\")}.ux-input__radio:not(.cdk-visually-hidden):disabled:not([readonly])+label{pointer-events:none}.ux-input__radio:not(.cdk-visually-hidden)[readonly]{display:none;opacity:.5;pointer-events:none;-webkit-user-select:none;user-select:none}.ux-input__radio:not(.cdk-visually-hidden)[readonly]:checked{display:inline-flex}.ux-input__radio:not(.cdk-visually-hidden)[readonly]:checked:before{background:var(--eui-base-color-grey-25);border-radius:50%;height:1rem;width:1rem;content:url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'%3E%3Ctitle%3EEllipse%3C/title%3E%3Cpath fill='%23004494' stroke='%23004494' d='M256 464c-114.69 0-208-93.31-208-208S141.31 48 256 48s208 93.31 208 208-93.31 208-208 208z'/%3E%3C/svg%3E\")}.ux-input__radio:not(.cdk-visually-hidden).eui-input-radio--invalid:not(:disabled):not([readonly]),.ux-input__radio:not(.cdk-visually-hidden).eui-input-radio--danger:not(:disabled):not([readonly]){border:2px solid var(--eui-base-color-danger-100)}.ux-input__radio:not(.cdk-visually-hidden).eui-input-radio--invalid:not(:disabled):not([readonly]):checked:before,.ux-input__radio:not(.cdk-visually-hidden).eui-input-radio--danger:not(:disabled):not([readonly]):checked:before{height:1rem;width:1rem;content:url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'%3E%3Ctitle%3EEllipse%3C/title%3E%3Cpath fill='%23da2131' stroke='%23da2131' d='M256 464c-114.69 0-208-93.31-208-208S141.31 48 256 48s208 93.31 208 208-93.31 208-208 208z'/%3E%3C/svg%3E\")}.ux-input__radio:not(.cdk-visually-hidden):active,.ux-input__radio:not(.cdk-visually-hidden):focus{box-shadow:var(--eui-base-shadow-3);outline:2px solid var(--eui-base-color-accessible-focus);outline-offset:0;-moz-outline-radius:var(--eui-base-border-radius);transition:outline .15s ease-in-out,border .15s ease-in-out}\n"], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.UxControlFeedbackComponent, selector: "ux-control-feedback", inputs: ["styleClass", "typeClass", "e2eAttr"] }, { kind: "directive", type: i3.NgSelectOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i3.ɵNgSelectMultipleOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i3.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i3.CheckboxControlValueAccessor, selector: "input[type=checkbox][formControlName],input[type=checkbox][formControl],input[type=checkbox][ngModel]" }, { kind: "directive", type: i3.SelectControlValueAccessor, selector: "select:not([multiple])[formControlName],select:not([multiple])[formControl],select:not([multiple])[ngModel]", inputs: ["compareWith"] }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i4.UxMaxlengthDirective, selector: "input[type=\"text\"][uxMaxlength], input[type=\"password\"][uxMaxlength], textarea[uxMaxlength]", inputs: ["uxMaxlength", "isShowMaxlengthCounter"], outputs: ["validityChange"] }, { kind: "directive", type: i4.UxAutoResizeDirective, selector: "textarea[uxAutoResize]", inputs: ["uxAutoResize", "minRows"] }, { kind: "directive", type: i4.UxCleaveDirective, selector: "[uxCleave]", inputs: ["uxCleave", "readOnly", "isModelNumber"] }, { kind: "pipe", type: i5.TranslatePipe, name: "translate" }], encapsulation: i0.ViewEncapsulation.None });
515
515
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.2", ngImport: i0, type: UxFormControlComponent, decorators: [{
516
516
  type: Component,
517
517
  args: [{ selector: 'ux-form-control', providers: [
@@ -525,7 +525,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.2", ngImpor
525
525
  useExisting: forwardRef((() => UxFormControlComponent)),
526
526
  multi: true,
527
527
  },
528
- ], encapsulation: ViewEncapsulation.None, template: "<ng-container *ngIf=\"isInputText && !isReadOnly\">\n <span attr.data-e2e=\"{{ e2eAttr }}-tf-rw\">\n <input\n #inputRef\n #formControlRef\n id=\"{{ generatedId }}\"\n type=\"text\"\n [(ngModel)]=\"inputValue\"\n class=\"ux-form-control {{ inputStyleClass }}\"\n (change)=\"onChange($event)\"\n (keyup)=\"onChange($event)\"\n (blur)=\"onTouched($event)\"\n (focus)=\"onFocus($event)\"\n placeholder=\"{{ placeholderLabel }}\"\n [uxMaxlength]=\"maxlength\"\n (validityChange)=\"OnMaxLengthValidityChange($event)\"\n [isShowMaxlengthCounter]=\"isShowMaxlengthCounter\"\n [disabled]=\"isDisabled\"\n [tabindex]=\"tabindex\"\n [attr.aria-invalid]=\"ariaInvalid\"\n [attr.aria-required]=\"isRequired\" />\n </span>\n</ng-container>\n\n<ng-container *ngIf=\"isTextarea && !isReadOnly\">\n <span attr.data-e2e=\"{{ e2eAttr }}-ta-rw\">\n <textarea\n #formControlRef\n id=\"{{ generatedId }}\"\n class=\"ux-form-control {{ inputStyleClass }}\"\n [(ngModel)]=\"inputValue\"\n (change)=\"onChange($event)\"\n (keyup)=\"onChange($event)\"\n (blur)=\"onTouched($event)\"\n (focus)=\"onFocus($event)\"\n placeholder=\"{{ placeholderLabel }}\"\n [uxMaxlength]=\"maxlength\"\n (validityChange)=\"OnMaxLengthValidityChange($event)\"\n [isShowMaxlengthCounter]=\"isShowMaxlengthCounter\"\n [attr.rows]=\"rows\"\n [minRows]=\"minRows\"\n [disabled]=\"isDisabled\"\n [tabindex]=\"tabindex\"\n [attr.aria-invalid]=\"ariaInvalid\"\n [attr.aria-required]=\"isRequired\"\n [uxAutoResize]=\"isTextareaAutoresize\">\n </textarea>\n </span>\n</ng-container>\n\n<ng-container *ngIf=\"isSelect && !isReadOnly\">\n <select\n #formControlRef\n id=\"{{ generatedId }}\"\n class=\"ux-form-control ux-form-control__custom-select {{ inputStyleClass }}\"\n [(ngModel)]=\"inputValue\"\n (change)=\"onChange($event)\"\n (keyup)=\"onChange($event)\"\n (blur)=\"onTouched($event)\"\n (focus)=\"onFocus($event)\"\n [disabled]=\"isDisabled\"\n [tabindex]=\"tabindex\"\n [attr.aria-invalid]=\"ariaInvalid\"\n [attr.aria-required]=\"isRequired\"\n attr.data-e2e=\"{{ e2eAttr }}-sel-rw\">\n <ng-container *ngIf=\"selectOptions\">\n <option *ngIf=\"!selectNoBlankLine\" [value]=\"'' || null\" class=\"ux-u-color-grey\">{{ placeholderLabel }}</option>\n <ng-template [ngIf]=\"isSelectHasOptions\">\n <ng-template ngFor let-item [ngForOf]=\"selectOptions\">\n <optgroup *ngIf=\"item.options\" label=\"{{ item.value }}\" class=\"ux-u-font-regular\">\n <option\n *ngFor=\"let opt of item.options\"\n [value]=\"opt[selectKeyName]\"\n [selected]=\"inputValue === opt[selectKeyName]\">\n {{ opt[selectValueName] }}\n </option>\n </optgroup>\n <option *ngIf=\"!item.options\" [value]=\"item[selectKeyName]\" [selected]=\"inputValue === item[selectKeyName]\">\n {{ item[selectValueName] }}\n </option>\n </ng-template>\n </ng-template>\n\n <ng-template [ngIf]=\"!isSelectHasOptions\">\n <option *ngFor=\"let opt of selectOptions\" [value]=\"opt[selectKeyName]\" [selected]=\"inputValue === opt[selectKeyName]\">\n {{ opt[selectValueName] }}\n </option>\n </ng-template>\n </ng-container>\n <ng-content *ngIf=\"!selectOptions\"></ng-content>\n </select>\n</ng-container>\n\n<ng-container *ngIf=\"isReadOnly && isSelect\">\n <!-- <input type=\"text\" role=\"combobox\" [attr.aria-readonly]=\"true\" readonly=\"readonly\" id=\"{{generatedId}}\" class=\"ux-form-control__read-only {{inputStyleClass}}\" [value]=\"selectValue\" [tabindex]=\"tabindex\" /> -->\n <div\n id=\"{{ generatedId }}\"\n class=\"ux-form-group--read-only {{ inputStyleClass }}\"\n [tabindex]=\"tabindex\"\n attr.data-e2e=\"{{ e2eAttr }}-sel-ro\">\n {{ selectValue === '' || !selectValue ? emptyValueTextOnReadOnly : selectValue }}\n </div>\n</ng-container>\n\n<ng-container *ngIf=\"isCheckbox && !isReadOnly\">\n <input\n #formControlRef\n id=\"{{ generatedId }}\"\n type=\"checkbox\"\n class=\"ux-input__checkbox {{ styleClass }}\"\n [(ngModel)]=\"inputValue\"\n (click)=\"onChange($event)\"\n (blur)=\"onTouched($event)\"\n (focus)=\"onFocus($event)\"\n [disabled]=\"isDisabled\"\n [tabindex]=\"tabindex\"\n [attr.aria-invalid]=\"ariaInvalid\"\n [attr.aria-required]=\"isRequired\"\n attr.data-e2e=\"{{ e2eAttr }}-cb-rw\" />\n <label for=\"{{ generatedId }}\" *ngIf=\"checkboxLabel\">{{ checkboxLabel }}</label>\n <label for=\"{{ generatedId }}\" role=\"presentation\" *ngIf=\"!checkboxLabel\">&nbsp;</label>\n</ng-container>\n\n<ng-container *ngIf=\"isCheckbox && isReadOnly\">\n <input\n #formControlRef\n id=\"{{ generatedId }}\"\n class=\"ux-input__checkbox {{ styleClass }}\"\n type=\"checkbox\"\n [checked]=\"inputValue\"\n onclick=\"return false;\"\n [tabindex]=\"tabindex\"\n readonly=\"readonly\"\n aria-readonly=\"true\"\n attr.data-e2e=\"{{ e2eAttr }}-cb-ro\" />\n <label for=\"{{ generatedId }}\" *ngIf=\"checkboxLabel\">{{ checkboxLabel }}</label>\n <label for=\"{{ generatedId }}\" role=\"presentation\" *ngIf=\"!checkboxLabel\">&nbsp;</label>\n</ng-container>\n\n<ng-container *ngIf=\"isRadio && !isReadOnly\">\n <input\n #radioElement\n #formControlRef\n id=\"{{ generatedId }}\"\n class=\"ux-input__radio {{ styleClass }}\"\n type=\"radio\"\n [checked]=\"checked\"\n [name]=\"formControlName + groupId\"\n [value]=\"formControlValue\"\n (click)=\"onChange($event)\"\n (blur)=\"onTouched($event)\"\n (focus)=\"onFocus($event)\"\n [disabled]=\"isDisabled\"\n [tabindex]=\"tabindex\"\n [attr.aria-invalid]=\"ariaInvalid\"\n [attr.aria-required]=\"isRequired\"\n attr.data-e2e=\"{{ e2eAttr }}-ra-rw\" />\n <label for=\"{{ generatedId }}\" class=\"radio-label\">{{ radioLabel || '&nbsp;' }}</label>\n</ng-container>\n\n<ng-container *ngIf=\"isRadio && isReadOnly && isRadioOptionChecked\">\n <div\n *ngIf=\"radioLabel\"\n id=\"{{ generatedId }}\"\n class=\"ux-form-group--read-only {{ inputStyleClass }}\"\n [tabindex]=\"tabindex\"\n attr.data-e2e=\"{{ e2eAttr }}-ro\">\n {{ radioLabel }}\n </div>\n <div\n *ngIf=\"!radioLabel\"\n id=\"{{ generatedId }}\"\n class=\"ux-form-group--read-only {{ inputStyleClass }}\"\n [tabindex]=\"tabindex\"\n attr.data-e2e=\"{{ e2eAttr }}-ro\">\n {{ inputValue }}\n </div>\n</ng-container>\n\n<ng-container *ngIf=\"isReadOnly && !isCheckbox && !isNumber && !isSelect && !isRadio && !isTextarea\">\n <div\n id=\"{{ generatedId }}\"\n class=\"ux-form-group--read-only {{ inputStyleClass }}\"\n [tabindex]=\"tabindex\"\n attr.data-e2e=\"{{ e2eAttr }}-ro\">\n {{ inputValue === '' || !inputValue ? emptyValueTextOnReadOnly : inputValue }}\n </div>\n</ng-container>\n\n<ng-container *ngIf=\"isNumber\">\n <div\n *ngIf=\"isReadOnly\"\n id=\"{{ generatedId }}\"\n class=\"ux-form-group--read-only {{ inputStyleClass }}\"\n [tabindex]=\"tabindex\"\n attr.data-e2e=\"{{ e2eAttr }}-sel-ro\">\n {{ inputRef.value === '' || !inputRef.value ? emptyValueTextOnReadOnly : inputRef.value }}\n </div>\n <span [hidden]=\"isReadOnly\" attr.data-e2e=\"{{ e2eAttr }}-num-rw\">\n <input\n #inputRef\n #formControlRef\n id=\"{{ generatedId }}\"\n type=\"text\"\n [uxCleave]=\"cleaveOptions\"\n [readOnly]=\"isReadOnly\"\n [(ngModel)]=\"inputValue\"\n [isModelNumber]=\"true\"\n class=\"ux-form-control {{ inputStyleClass }}\"\n (change)=\"onChange($event)\"\n (keyup)=\"onChange($event)\"\n (blur)=\"onTouched($event)\"\n (focus)=\"onFocus($event)\"\n placeholder=\"{{ placeholderLabel }}\"\n [disabled]=\"isDisabled\"\n [uxMaxlength]=\"maxlength\"\n (validityChange)=\"OnMaxLengthValidityChange($event)\"\n [isShowMaxlengthCounter]=\"isShowMaxlengthCounter\"\n [tabindex]=\"tabindex\"\n [attr.aria-invalid]=\"ariaInvalid\"\n [attr.aria-required]=\"isRequired\" />\n </span>\n</ng-container>\n\n<ng-container *ngIf=\"isTextarea && isReadOnly\">\n <div\n id=\"{{ generatedId }}\"\n class=\"ux-form-group--read-only {{ inputStyleClass }}\"\n [tabindex]=\"tabindex\"\n attr.data-e2e=\"{{ e2eAttr }}-ro\">\n <pre>{{ inputValue === '' || !inputValue ? emptyValueTextOnReadOnly : inputValue }}</pre>\n </div>\n</ng-container>\n\n<ng-container *ngIf=\"!isFieldValid && !hasFormGroupParent\">\n <ux-control-feedback\n *ngIf=\"validationErrorMessage\"\n typeClass=\"{{ validationErrorType ? validationErrorType : 'danger' }}\"\n attr.data-e2e=\"{{ e2eAttr }}\">\n {{\n validationErrorMessage && $any(validationErrorMessage).id\n ? ($any(validationErrorMessage).id | translate : $any(validationErrorMessage).params)\n : validationErrorMessage\n }}\n </ux-control-feedback>\n</ng-container>\n\n<ng-container *ngIf=\"!isMaxLengthValid\">\n <ux-control-feedback *ngIf=\"maxLengthValidationErrorMessage\" typeClass=\"danger\" attr.data-e2e=\"{{ e2eAttr }}\">\n {{ maxLengthValidationErrorMessage }}\n </ux-control-feedback>\n</ng-container>\n", styles: ["input.ux-form-control,select.ux-form-control,textarea.ux-form-control{border:1px solid var(--eui-base-color-grey-20);border-radius:var(--eui-base-border-radius);color:var(--eui-base-color-grey-100);font-size:var(--eui-base-font-size);font-style:normal;font-weight:400;height:calc(var(--eui-base-spacing-2xl) + 2px);padding:var(--eui-base-spacing-xs) var(--eui-base-spacing-s);transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out}input.ux-form-control:focus,select.ux-form-control:focus,textarea.ux-form-control:focus{border:1px solid var(--eui-base-color-primary-75);box-shadow:var(--eui-base-shadow-1)}input::-ms-clear{display:none}.ux-clearable-input-wrapper{align-items:center;background-color:var(--eui-base-color-white);color:var(--eui-base-color-grey-35);cursor:pointer;display:flex;font-size:var(--eui-base-font-size-m);-webkit-user-select:none;user-select:none}.ux-clearable-input-wrapper:before{position:absolute;right:var(--eui-base-spacing-s)}.ux-clearable-input-wrapper:hover{color:var(--eui-base-color-grey-100)}@keyframes borderscale{50%{box-shadow:0 0 0 2px var(--eui-base-color-primary-110)}}select.ux-form-control:not([readonly]){-webkit-appearance:none;appearance:none;background-color:var(--eui-base-color-white);background-image:url('data:image/svg+xml;utf8,<svg viewBox=\"0 0 4 5\" fill=\"black\" xmlns=\"http://www.w3.org/2000/svg\" name=\"arrow-up-down\" aria-label=\"Close menu\" role=\"img\"><path d=\"M2 0L0 2h4zm0 5L0 3h4z\"/></svg>');background-position:calc(100% - var(--eui-base-spacing-s)) center;background-repeat:no-repeat;background-size:var(--eui-base-spacing-xs);padding-right:var(--eui-base-spacing-xl)}:host{width:100%}.ux-form-control{background-clip:padding-box;background-color:var(--eui-base-color-white);border-radius:var(--eui-border-radius-base);display:block;line-height:var(--eui-base-line-height);transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out;width:100%}.ux-form-control:disabled,.ux-form-control[readonly]{background-color:var(--eui-base-color-grey-5)!important;color:var(--eui-base-color-grey-80)!important}.ux-form-control.custom-select,.ux-form-control.ux-form-control__custom-select{padding-right:var(--eui-base-spacing-2xl);text-overflow:ellipsis}select.ux-form-control[multiple],select.ux-form-control[size]{height:calc(var(--eui-base-spacing-2xl) + var(--eui-base-spacing-m) + 2px)!important;padding-right:0}select.ux-form-control:not([size]),select.ux-form-control[size=\"1\"],select.ux-form-control:not([multiple]){height:calc(var(--eui-base-spacing-2xl) + 2px)}textarea.ux-form-control{height:auto}.ux-input__checkbox:not(.cdk-visually-hidden){-webkit-appearance:inherit;appearance:inherit;cursor:pointer;display:inline-flex;flex-shrink:0;height:calc(var(--eui-base-spacing-m) + var(--eui-base-spacing-2xs));margin-right:var(--eui-base-spacing-s);position:relative;transition:all .25s ease;vertical-align:top;width:calc(var(--eui-base-spacing-m) + var(--eui-base-spacing-2xs));accent-color:var(--eui-base-color-white);background:var(--eui-base-color-white);border:2px solid var(--eui-base-color-grey-20)}.ux-input__checkbox:not(.cdk-visually-hidden)+label{display:inline-flex;cursor:pointer;margin-right:var(--eui-base-spacing-m);white-space:inherit}.ux-input__checkbox:not(.cdk-visually-hidden):checked{background:var(--eui-base-color-primary-100);opacity:1}.ux-input__checkbox:not(.cdk-visually-hidden):checked:before{height:1rem;width:1rem;content:url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'%3E%3Ctitle%3ECheckmark%3C/title%3E%3Cpath fill='none' stroke='%23fff' stroke-linecap='round' stroke-linejoin='round' stroke-width='64' d='M416 128L192 384l-96-96'/%3E%3C/svg%3E\");height:calc(var(--eui-base-spacing-m) + var(--eui-base-spacing-2xs));width:calc(var(--eui-base-spacing-m) + var(--eui-base-spacing-2xs))}.ux-input__checkbox:not(.cdk-visually-hidden):disabled:not([readonly]){background:var(--eui-base-color-grey-15);opacity:.25;pointer-events:none;-webkit-user-select:none;user-select:none}.ux-input__checkbox:not(.cdk-visually-hidden):disabled:not([readonly]):checked:before{height:1rem;width:1rem;content:url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'%3E%3Ctitle%3ECheckmark%3C/title%3E%3Cpath fill='none' stroke='%23004494' stroke-linecap='round' stroke-linejoin='round' stroke-width='64' d='M416 128L192 384l-96-96'/%3E%3C/svg%3E\")}.ux-input__checkbox:not(.cdk-visually-hidden):disabled:not([readonly])+label{pointer-events:none}.ux-input__checkbox:not(.cdk-visually-hidden)[readonly]{background:var(--eui-base-color-grey-35);opacity:.5;pointer-events:none;-webkit-user-select:none;user-select:none}.ux-input__checkbox:not(.cdk-visually-hidden)[readonly]:checked:before{height:1rem;width:1rem;content:url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'%3E%3Ctitle%3ECheckmark%3C/title%3E%3Cpath fill='none' stroke='%23004494' stroke-linecap='round' stroke-linejoin='round' stroke-width='64' d='M416 128L192 384l-96-96'/%3E%3C/svg%3E\")}.ux-input__checkbox:not(.cdk-visually-hidden)[readonly]+label{pointer-events:none}.ux-input__checkbox:not(.cdk-visually-hidden):active,.ux-input__checkbox:not(.cdk-visually-hidden):focus{box-shadow:var(--eui-base-shadow-3);outline:2px solid var(--eui-base-color-accessible-focus);outline-offset:0;-moz-outline-radius:var(--eui-base-border-radius);transition:outline .15s ease-in-out,border .15s ease-in-out}.ux-input__radio:not(.cdk-visually-hidden){-webkit-appearance:inherit;appearance:inherit;align-items:center;border-radius:50%;cursor:pointer;display:inline-flex;flex-shrink:0;height:calc(var(--eui-base-spacing-m) + var(--eui-base-spacing-2xs));margin-right:var(--eui-base-spacing-s);position:relative;vertical-align:bottom;transition:all .25s ease;width:calc(var(--eui-base-spacing-m) + var(--eui-base-spacing-2xs));accent-color:var(--eui-base-color-white);background:var(--eui-base-color-white);border:2px solid var(--eui-base-color-grey-20)}.ux-input__radio:not(.cdk-visually-hidden)+label{display:inline-flex;cursor:pointer;margin-right:var(--eui-base-spacing-m);white-space:inherit}.ux-input__radio:not(.cdk-visually-hidden):checked{background:var(--eui-base-color-white)}.ux-input__radio:not(.cdk-visually-hidden):checked:before{height:1rem;width:1rem;content:url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'%3E%3Ctitle%3EEllipse%3C/title%3E%3Cpath fill='%23004494' stroke='%23004494' d='M256 464c-114.69 0-208-93.31-208-208S141.31 48 256 48s208 93.31 208 208-93.31 208-208 208z'/%3E%3C/svg%3E\")}.ux-input__radio:not(.cdk-visually-hidden):disabled:not([readonly]){background:var(--eui-base-color-grey-15);opacity:.25;pointer-events:none;-webkit-user-select:none;user-select:none}.ux-input__radio:not(.cdk-visually-hidden):disabled:not([readonly]):checked:before{height:1rem;width:1rem;content:url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'%3E%3Ctitle%3EEllipse%3C/title%3E%3Cpath fill='%23004494' stroke='%23004494' d='M256 464c-114.69 0-208-93.31-208-208S141.31 48 256 48s208 93.31 208 208-93.31 208-208 208z'/%3E%3C/svg%3E\")}.ux-input__radio:not(.cdk-visually-hidden):disabled:not([readonly])+label{pointer-events:none}.ux-input__radio:not(.cdk-visually-hidden)[readonly]{display:none;opacity:.5;pointer-events:none;-webkit-user-select:none;user-select:none}.ux-input__radio:not(.cdk-visually-hidden)[readonly]:checked{display:inline-flex}.ux-input__radio:not(.cdk-visually-hidden)[readonly]:checked:before{background:var(--eui-base-color-grey-25);border-radius:50%;height:1rem;width:1rem;content:url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'%3E%3Ctitle%3EEllipse%3C/title%3E%3Cpath fill='%23004494' stroke='%23004494' d='M256 464c-114.69 0-208-93.31-208-208S141.31 48 256 48s208 93.31 208 208-93.31 208-208 208z'/%3E%3C/svg%3E\")}.ux-input__radio:not(.cdk-visually-hidden).eui-input-radio--invalid:not(:disabled):not([readonly]),.ux-input__radio:not(.cdk-visually-hidden).eui-input-radio--danger:not(:disabled):not([readonly]){border:2px solid var(--eui-base-color-danger-100)}.ux-input__radio:not(.cdk-visually-hidden).eui-input-radio--invalid:not(:disabled):not([readonly]):checked:before,.ux-input__radio:not(.cdk-visually-hidden).eui-input-radio--danger:not(:disabled):not([readonly]):checked:before{height:1rem;width:1rem;content:url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'%3E%3Ctitle%3EEllipse%3C/title%3E%3Cpath fill='%23da2131' stroke='%23da2131' d='M256 464c-114.69 0-208-93.31-208-208S141.31 48 256 48s208 93.31 208 208-93.31 208-208 208z'/%3E%3C/svg%3E\")}.ux-input__radio:not(.cdk-visually-hidden):active,.ux-input__radio:not(.cdk-visually-hidden):focus{box-shadow:var(--eui-base-shadow-3);outline:2px solid var(--eui-base-color-accessible-focus);outline-offset:0;-moz-outline-radius:var(--eui-base-border-radius);transition:outline .15s ease-in-out,border .15s ease-in-out}\n"] }]
528
+ ], encapsulation: ViewEncapsulation.None, template: "<ng-container *ngIf=\"isInputText && !isReadOnly\">\n <span attr.data-e2e=\"{{ e2eAttr }}-tf-rw\">\n <input\n #inputRef\n #formControlRef\n id=\"{{ generatedId }}\"\n type=\"text\"\n [(ngModel)]=\"inputValue\"\n class=\"ux-form-control {{ inputStyleClass }}\"\n (change)=\"onChange($event)\"\n (keyup)=\"onChange($event)\"\n (blur)=\"onTouched($event)\"\n (focus)=\"onFocus($event)\"\n placeholder=\"{{ placeholderLabel }}\"\n [uxMaxlength]=\"maxlength\"\n (validityChange)=\"OnMaxLengthValidityChange($event)\"\n [isShowMaxlengthCounter]=\"isShowMaxlengthCounter\"\n [disabled]=\"isDisabled\"\n [tabindex]=\"tabindex\"\n [attr.aria-invalid]=\"ariaInvalid\"\n [attr.aria-required]=\"isRequired\" />\n </span>\n</ng-container>\n\n<ng-container *ngIf=\"isTextarea && !isReadOnly\">\n <span attr.data-e2e=\"{{ e2eAttr }}-ta-rw\">\n <textarea\n #formControlRef\n id=\"{{ generatedId }}\"\n class=\"ux-form-control {{ inputStyleClass }}\"\n [(ngModel)]=\"inputValue\"\n (change)=\"onChange($event)\"\n (keyup)=\"onChange($event)\"\n (blur)=\"onTouched($event)\"\n (focus)=\"onFocus($event)\"\n placeholder=\"{{ placeholderLabel }}\"\n [uxMaxlength]=\"maxlength\"\n (validityChange)=\"OnMaxLengthValidityChange($event)\"\n [isShowMaxlengthCounter]=\"isShowMaxlengthCounter\"\n [attr.rows]=\"rows\"\n [minRows]=\"minRows\"\n [disabled]=\"isDisabled\"\n [tabindex]=\"tabindex\"\n [attr.aria-invalid]=\"ariaInvalid\"\n [attr.aria-required]=\"isRequired\"\n [uxAutoResize]=\"isTextareaAutoresize\">\n </textarea>\n </span>\n</ng-container>\n\n<ng-container *ngIf=\"isSelect && !isReadOnly\">\n <select\n #formControlRef\n id=\"{{ generatedId }}\"\n class=\"ux-form-control ux-form-control__custom-select {{ inputStyleClass }}\"\n [(ngModel)]=\"inputValue\"\n (change)=\"onChange($event)\"\n (keyup)=\"onChange($event)\"\n (blur)=\"onTouched($event)\"\n (focus)=\"onFocus($event)\"\n [disabled]=\"isDisabled\"\n [tabindex]=\"tabindex\"\n [attr.aria-invalid]=\"ariaInvalid\"\n [attr.aria-required]=\"isRequired\"\n attr.data-e2e=\"{{ e2eAttr }}-sel-rw\">\n <ng-container *ngIf=\"selectOptions\">\n <option *ngIf=\"!selectNoBlankLine\" [value]=\"'' || null\" class=\"ux-u-color-grey\">{{ placeholderLabel }}</option>\n <ng-template [ngIf]=\"isSelectHasOptions\">\n <ng-template ngFor let-item [ngForOf]=\"selectOptions\">\n <optgroup *ngIf=\"item.options\" label=\"{{ item.value }}\" class=\"ux-u-font-regular\">\n <option\n *ngFor=\"let opt of item.options\"\n [value]=\"opt[selectKeyName]\"\n [selected]=\"inputValue === opt[selectKeyName]\">\n {{ opt[selectValueName] }}\n </option>\n </optgroup>\n <option *ngIf=\"!item.options\" [value]=\"item[selectKeyName]\" [selected]=\"inputValue === item[selectKeyName]\">\n {{ item[selectValueName] }}\n </option>\n </ng-template>\n </ng-template>\n\n <ng-template [ngIf]=\"!isSelectHasOptions\">\n <option *ngFor=\"let opt of selectOptions\" [value]=\"opt[selectKeyName]\" [selected]=\"inputValue === opt[selectKeyName]\">\n {{ opt[selectValueName] }}\n </option>\n </ng-template>\n </ng-container>\n <ng-content *ngIf=\"!selectOptions\"></ng-content>\n </select>\n</ng-container>\n\n<ng-container *ngIf=\"isReadOnly && isSelect\">\n <!-- <input type=\"text\" role=\"combobox\" [attr.aria-readonly]=\"true\" readonly=\"readonly\" id=\"{{generatedId}}\" class=\"ux-form-control__read-only {{inputStyleClass}}\" [value]=\"selectValue\" [tabindex]=\"tabindex\" /> -->\n <div\n id=\"{{ generatedId }}\"\n class=\"ux-form-group--read-only {{ inputStyleClass }}\"\n [tabindex]=\"tabindex\"\n attr.data-e2e=\"{{ e2eAttr }}-sel-ro\">\n {{ selectValue === '' || !selectValue ? emptyValueTextOnReadOnly : selectValue }}\n </div>\n</ng-container>\n\n<ng-container *ngIf=\"isCheckbox && !isReadOnly\">\n <input\n #formControlRef\n id=\"{{ generatedId }}\"\n type=\"checkbox\"\n class=\"ux-input__checkbox {{ styleClass }}\"\n [(ngModel)]=\"inputValue\"\n (click)=\"onChange($event)\"\n (blur)=\"onTouched($event)\"\n (focus)=\"onFocus($event)\"\n [disabled]=\"isDisabled\"\n [tabindex]=\"tabindex\"\n [attr.aria-invalid]=\"ariaInvalid\"\n [attr.aria-required]=\"isRequired\"\n attr.data-e2e=\"{{ e2eAttr }}-cb-rw\" />\n <label for=\"{{ generatedId }}\" *ngIf=\"checkboxLabel\">{{ checkboxLabel }}</label>\n <label for=\"{{ generatedId }}\" role=\"presentation\" *ngIf=\"!checkboxLabel\">&nbsp;</label>\n</ng-container>\n\n<ng-container *ngIf=\"isCheckbox && isReadOnly\">\n <input\n #formControlRef\n id=\"{{ generatedId }}\"\n class=\"ux-input__checkbox {{ styleClass }}\"\n type=\"checkbox\"\n [checked]=\"inputValue\"\n onclick=\"return false;\"\n [tabindex]=\"tabindex\"\n readonly=\"readonly\"\n aria-readonly=\"true\"\n attr.data-e2e=\"{{ e2eAttr }}-cb-ro\" />\n <label for=\"{{ generatedId }}\" *ngIf=\"checkboxLabel\">{{ checkboxLabel }}</label>\n <label for=\"{{ generatedId }}\" role=\"presentation\" *ngIf=\"!checkboxLabel\">&nbsp;</label>\n</ng-container>\n\n<ng-container *ngIf=\"isRadio && !isReadOnly\">\n <input\n #radioElement\n #formControlRef\n id=\"{{ generatedId }}\"\n class=\"ux-input__radio {{ styleClass }}\"\n type=\"radio\"\n [checked]=\"checked\"\n [name]=\"formControlName + groupId\"\n [value]=\"formControlValue\"\n (click)=\"onChange($event)\"\n (blur)=\"onTouched($event)\"\n (focus)=\"onFocus($event)\"\n [disabled]=\"isDisabled\"\n [tabindex]=\"tabindex\"\n [attr.aria-invalid]=\"ariaInvalid\"\n [attr.aria-required]=\"isRequired\"\n attr.data-e2e=\"{{ e2eAttr }}-ra-rw\" />\n <label for=\"{{ generatedId }}\" class=\"radio-label\">{{ radioLabel || '&nbsp;' }}</label>\n</ng-container>\n\n<ng-container *ngIf=\"isRadio && isReadOnly && isRadioOptionChecked\">\n <div\n *ngIf=\"radioLabel\"\n id=\"{{ generatedId }}\"\n class=\"ux-form-group--read-only {{ inputStyleClass }}\"\n [tabindex]=\"tabindex\"\n attr.data-e2e=\"{{ e2eAttr }}-ro\">\n {{ radioLabel }}\n </div>\n <div\n *ngIf=\"!radioLabel\"\n id=\"{{ generatedId }}\"\n class=\"ux-form-group--read-only {{ inputStyleClass }}\"\n [tabindex]=\"tabindex\"\n attr.data-e2e=\"{{ e2eAttr }}-ro\">\n {{ inputValue }}\n </div>\n</ng-container>\n\n<ng-container *ngIf=\"isReadOnly && !isCheckbox && !isNumber && !isSelect && !isRadio && !isTextarea\">\n <div\n id=\"{{ generatedId }}\"\n class=\"ux-form-group--read-only {{ inputStyleClass }}\"\n [tabindex]=\"tabindex\"\n attr.data-e2e=\"{{ e2eAttr }}-ro\">\n {{ inputValue === '' || !inputValue ? emptyValueTextOnReadOnly : inputValue }}\n </div>\n</ng-container>\n\n<ng-container *ngIf=\"isNumber\">\n <div\n *ngIf=\"isReadOnly\"\n id=\"{{ generatedId }}\"\n class=\"ux-form-group--read-only {{ inputStyleClass }}\"\n [tabindex]=\"tabindex\"\n attr.data-e2e=\"{{ e2eAttr }}-sel-ro\">\n {{ inputRef.value === '' || !inputRef.value ? emptyValueTextOnReadOnly : inputRef.value }}\n </div>\n <span [hidden]=\"isReadOnly\" attr.data-e2e=\"{{ e2eAttr }}-num-rw\">\n <input\n #inputRef\n #formControlRef\n id=\"{{ generatedId }}\"\n type=\"text\"\n [uxCleave]=\"cleaveOptions\"\n [readOnly]=\"isReadOnly\"\n [(ngModel)]=\"inputValue\"\n [isModelNumber]=\"true\"\n class=\"ux-form-control {{ inputStyleClass }}\"\n (change)=\"onChange($event)\"\n (keyup)=\"onChange($event)\"\n (blur)=\"onTouched($event)\"\n (focus)=\"onFocus($event)\"\n placeholder=\"{{ placeholderLabel }}\"\n [disabled]=\"isDisabled\"\n [uxMaxlength]=\"maxlength\"\n (validityChange)=\"OnMaxLengthValidityChange($event)\"\n [isShowMaxlengthCounter]=\"isShowMaxlengthCounter\"\n [tabindex]=\"tabindex\"\n [attr.aria-invalid]=\"ariaInvalid\"\n [attr.aria-required]=\"isRequired\" />\n </span>\n</ng-container>\n\n<ng-container *ngIf=\"isTextarea && isReadOnly\">\n <div\n id=\"{{ generatedId }}\"\n class=\"ux-form-group--read-only {{ inputStyleClass }}\"\n [tabindex]=\"tabindex\"\n attr.data-e2e=\"{{ e2eAttr }}-ro\">\n <pre>{{ inputValue === '' || !inputValue ? emptyValueTextOnReadOnly : inputValue }}</pre>\n </div>\n</ng-container>\n\n<ng-container *ngIf=\"!isFieldValid && !hasFormGroupParent\">\n <ux-control-feedback\n *ngIf=\"validationErrorMessage\"\n typeClass=\"{{ validationErrorType ? validationErrorType : 'danger' }}\"\n attr.data-e2e=\"{{ e2eAttr }}\">\n {{\n validationErrorMessage && $any(validationErrorMessage).id\n ? ($any(validationErrorMessage).id | translate : $any(validationErrorMessage).params)\n : validationErrorMessage\n }}\n </ux-control-feedback>\n</ng-container>\n\n<ng-container *ngIf=\"!isMaxLengthValid\">\n <ux-control-feedback *ngIf=\"maxLengthValidationErrorMessage\" typeClass=\"danger\" attr.data-e2e=\"{{ e2eAttr }}\">\n {{ maxLengthValidationErrorMessage }}\n </ux-control-feedback>\n</ng-container>\n", styles: ["input.ux-form-control,select.ux-form-control,textarea.ux-form-control{border:1px solid var(--eui-base-color-grey-20);border-radius:var(--eui-base-border-radius);color:var(--eui-base-color-grey-100);font-size:var(--eui-base-font-size);font-style:normal;font-weight:400;height:calc(var(--eui-base-spacing-2xl) + 2px);padding:var(--eui-base-spacing-xs) var(--eui-base-spacing-s);transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out}input.ux-form-control:active,input.ux-form-control:focus,select.ux-form-control:active,select.ux-form-control:focus,textarea.ux-form-control:active,textarea.ux-form-control:focus{outline:2px solid var(--eui-base-color-accessible-focus);outline-offset:-2px;-moz-outline-radius:var(--eui-base-border-radius);transition:outline .15s ease-in-out,border .15s ease-in-out}input::-ms-clear{display:none}.ux-clearable-input-wrapper{align-items:center;background-color:var(--eui-base-color-white);color:var(--eui-base-color-grey-35);cursor:pointer;display:flex;font-size:var(--eui-base-font-size-m);-webkit-user-select:none;user-select:none}.ux-clearable-input-wrapper:before{position:absolute;right:var(--eui-base-spacing-s)}.ux-clearable-input-wrapper:hover{color:var(--eui-base-color-grey-100)}@keyframes borderscale{50%{box-shadow:0 0 0 2px var(--eui-base-color-primary-110)}}select.ux-form-control:not([readonly]){-webkit-appearance:none;appearance:none;background-color:var(--eui-base-color-white);background-image:url('data:image/svg+xml;utf8,<svg viewBox=\"0 0 4 5\" fill=\"black\" xmlns=\"http://www.w3.org/2000/svg\" name=\"arrow-up-down\" aria-label=\"Close menu\" role=\"img\"><path d=\"M2 0L0 2h4zm0 5L0 3h4z\"/></svg>');background-position:calc(100% - var(--eui-base-spacing-s)) center;background-repeat:no-repeat;background-size:var(--eui-base-spacing-xs);padding-right:var(--eui-base-spacing-xl)}:host{width:100%}.ux-form-control{background-clip:padding-box;background-color:var(--eui-base-color-white);border-radius:var(--eui-border-radius-base);display:block;line-height:var(--eui-base-line-height);transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out;width:100%}.ux-form-control:disabled,.ux-form-control[readonly]{background-color:var(--eui-base-color-grey-5)!important;color:var(--eui-base-color-grey-80)!important}.ux-form-control.custom-select,.ux-form-control.ux-form-control__custom-select{padding-right:var(--eui-base-spacing-2xl);text-overflow:ellipsis}select.ux-form-control[multiple],select.ux-form-control[size]{height:calc(var(--eui-base-spacing-2xl) + var(--eui-base-spacing-m) + 2px)!important;padding-right:0}select.ux-form-control:not([size]),select.ux-form-control[size=\"1\"],select.ux-form-control:not([multiple]){height:calc(var(--eui-base-spacing-2xl) + 2px)}textarea.ux-form-control{height:auto}.ux-input__checkbox:not(.cdk-visually-hidden){-webkit-appearance:inherit;appearance:inherit;cursor:pointer;display:inline-flex;flex-shrink:0;height:calc(var(--eui-base-spacing-m) + var(--eui-base-spacing-2xs));margin-right:var(--eui-base-spacing-s);position:relative;transition:all .25s ease;vertical-align:top;width:calc(var(--eui-base-spacing-m) + var(--eui-base-spacing-2xs));accent-color:var(--eui-base-color-white);background:var(--eui-base-color-white);border:2px solid var(--eui-base-color-grey-20)}.ux-input__checkbox:not(.cdk-visually-hidden)+label{display:inline-flex;cursor:pointer;margin-right:var(--eui-base-spacing-m);white-space:inherit}.ux-input__checkbox:not(.cdk-visually-hidden):checked{background:var(--eui-base-color-primary-100);opacity:1}.ux-input__checkbox:not(.cdk-visually-hidden):checked:before{height:1rem;width:1rem;content:url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'%3E%3Ctitle%3ECheckmark%3C/title%3E%3Cpath fill='none' stroke='%23fff' stroke-linecap='round' stroke-linejoin='round' stroke-width='64' d='M416 128L192 384l-96-96'/%3E%3C/svg%3E\");height:calc(var(--eui-base-spacing-m) + var(--eui-base-spacing-2xs));width:calc(var(--eui-base-spacing-m) + var(--eui-base-spacing-2xs))}.ux-input__checkbox:not(.cdk-visually-hidden):disabled:not([readonly]){background:var(--eui-base-color-grey-15);opacity:.25;pointer-events:none;-webkit-user-select:none;user-select:none}.ux-input__checkbox:not(.cdk-visually-hidden):disabled:not([readonly]):checked:before{height:1rem;width:1rem;content:url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'%3E%3Ctitle%3ECheckmark%3C/title%3E%3Cpath fill='none' stroke='%23004494' stroke-linecap='round' stroke-linejoin='round' stroke-width='64' d='M416 128L192 384l-96-96'/%3E%3C/svg%3E\")}.ux-input__checkbox:not(.cdk-visually-hidden):disabled:not([readonly])+label{pointer-events:none}.ux-input__checkbox:not(.cdk-visually-hidden)[readonly]{background:var(--eui-base-color-grey-35);opacity:.5;pointer-events:none;-webkit-user-select:none;user-select:none}.ux-input__checkbox:not(.cdk-visually-hidden)[readonly]:checked:before{height:1rem;width:1rem;content:url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'%3E%3Ctitle%3ECheckmark%3C/title%3E%3Cpath fill='none' stroke='%23004494' stroke-linecap='round' stroke-linejoin='round' stroke-width='64' d='M416 128L192 384l-96-96'/%3E%3C/svg%3E\")}.ux-input__checkbox:not(.cdk-visually-hidden)[readonly]+label{pointer-events:none}.ux-input__checkbox:not(.cdk-visually-hidden):active,.ux-input__checkbox:not(.cdk-visually-hidden):focus{box-shadow:var(--eui-base-shadow-3);outline:2px solid var(--eui-base-color-accessible-focus);outline-offset:0;-moz-outline-radius:var(--eui-base-border-radius);transition:outline .15s ease-in-out,border .15s ease-in-out}.ux-input__radio:not(.cdk-visually-hidden){-webkit-appearance:inherit;appearance:inherit;align-items:center;border-radius:50%;cursor:pointer;display:inline-flex;flex-shrink:0;height:calc(var(--eui-base-spacing-m) + var(--eui-base-spacing-2xs));margin-right:var(--eui-base-spacing-s);position:relative;vertical-align:bottom;transition:all .25s ease;width:calc(var(--eui-base-spacing-m) + var(--eui-base-spacing-2xs));accent-color:var(--eui-base-color-white);background:var(--eui-base-color-white);border:2px solid var(--eui-base-color-grey-20)}.ux-input__radio:not(.cdk-visually-hidden)+label{display:inline-flex;cursor:pointer;margin-right:var(--eui-base-spacing-m);white-space:inherit}.ux-input__radio:not(.cdk-visually-hidden):checked{background:var(--eui-base-color-white)}.ux-input__radio:not(.cdk-visually-hidden):checked:before{height:1rem;width:1rem;content:url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'%3E%3Ctitle%3EEllipse%3C/title%3E%3Cpath fill='%23004494' stroke='%23004494' d='M256 464c-114.69 0-208-93.31-208-208S141.31 48 256 48s208 93.31 208 208-93.31 208-208 208z'/%3E%3C/svg%3E\")}.ux-input__radio:not(.cdk-visually-hidden):disabled:not([readonly]){background:var(--eui-base-color-grey-15);opacity:.25;pointer-events:none;-webkit-user-select:none;user-select:none}.ux-input__radio:not(.cdk-visually-hidden):disabled:not([readonly]):checked:before{height:1rem;width:1rem;content:url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'%3E%3Ctitle%3EEllipse%3C/title%3E%3Cpath fill='%23004494' stroke='%23004494' d='M256 464c-114.69 0-208-93.31-208-208S141.31 48 256 48s208 93.31 208 208-93.31 208-208 208z'/%3E%3C/svg%3E\")}.ux-input__radio:not(.cdk-visually-hidden):disabled:not([readonly])+label{pointer-events:none}.ux-input__radio:not(.cdk-visually-hidden)[readonly]{display:none;opacity:.5;pointer-events:none;-webkit-user-select:none;user-select:none}.ux-input__radio:not(.cdk-visually-hidden)[readonly]:checked{display:inline-flex}.ux-input__radio:not(.cdk-visually-hidden)[readonly]:checked:before{background:var(--eui-base-color-grey-25);border-radius:50%;height:1rem;width:1rem;content:url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'%3E%3Ctitle%3EEllipse%3C/title%3E%3Cpath fill='%23004494' stroke='%23004494' d='M256 464c-114.69 0-208-93.31-208-208S141.31 48 256 48s208 93.31 208 208-93.31 208-208 208z'/%3E%3C/svg%3E\")}.ux-input__radio:not(.cdk-visually-hidden).eui-input-radio--invalid:not(:disabled):not([readonly]),.ux-input__radio:not(.cdk-visually-hidden).eui-input-radio--danger:not(:disabled):not([readonly]){border:2px solid var(--eui-base-color-danger-100)}.ux-input__radio:not(.cdk-visually-hidden).eui-input-radio--invalid:not(:disabled):not([readonly]):checked:before,.ux-input__radio:not(.cdk-visually-hidden).eui-input-radio--danger:not(:disabled):not([readonly]):checked:before{height:1rem;width:1rem;content:url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'%3E%3Ctitle%3EEllipse%3C/title%3E%3Cpath fill='%23da2131' stroke='%23da2131' d='M256 464c-114.69 0-208-93.31-208-208S141.31 48 256 48s208 93.31 208 208-93.31 208-208 208z'/%3E%3C/svg%3E\")}.ux-input__radio:not(.cdk-visually-hidden):active,.ux-input__radio:not(.cdk-visually-hidden):focus{box-shadow:var(--eui-base-shadow-3);outline:2px solid var(--eui-base-color-accessible-focus);outline-offset:0;-moz-outline-radius:var(--eui-base-border-radius);transition:outline .15s ease-in-out,border .15s ease-in-out}\n"] }]
529
529
  }], ctorParameters: function () { return [{ type: i6.UxFormGroupComponent, decorators: [{
530
530
  type: Optional
531
531
  }, {
@@ -1 +1 @@
1
- {"version":3,"file":"eui-components-legacy-ux-form-control.mjs","sources":["../../legacy/ux-form-control/remove-id.directive.ts","../../legacy/ux-form-control/string-to-number.pipe.ts","../../legacy/ux-form-control/ux-form-control.component.ts","../../legacy/ux-form-control/ux-form-control.component.html","../../legacy/ux-form-control/eui-components-legacy-ux-form-control.ts"],"sourcesContent":["import { Directive, ElementRef } from '@angular/core';\n\n@Directive({\n // eslint-disable-next-line @angular-eslint/directive-selector\n selector: 'ux-form-control[id]',\n})\nexport class RemoveIdDirective {\n constructor(private el: ElementRef) {\n el.nativeElement.removeAttribute('id');\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { getLocaleNumberFormat, NumberFormatStyle } from '@angular/common';\n\n@Pipe({\n name: 'stringToNumber',\n pure: false,\n})\nexport class StringToNumberPipe implements PipeTransform {\n /**\n * This pipe transforms a given formatted number value of type String to number. The correct conversion is based on\n * current numbers format which is extracted from the given Locale.\n *\n * @param value - a formatted string value e.g. '100,000,999.101'\n * @param locale - the LOCALE_ID of the formatted number in value. e.g. 'en-US'\n */\n transform(value: string | number, locale: string): number {\n // check for undefined\n if (!value) {\n return 0;\n }\n // check if type is already number\n if (typeof value === 'number') {\n return value;\n }\n\n // retrieve separators\n const { thousand, decimal } = this.getSeparators(locale);\n // replace those separators and return typeof Number\n return Number(\n value\n .split(thousand)\n .join('')\n .replace(decimal, '.')\n .replace(/\\.(?=.*\\.)/g, '')\n );\n }\n\n public getSeparators(locale: string): { thousand: string; decimal: string } {\n // get formatNumber based on locale\n const numberFormat = getLocaleNumberFormat(locale, NumberFormatStyle.Decimal);\n // based on given format extract decimal and thousand separators\n // TODO: this could be easily done with Array Destructuring (ES6 feat) but it's disabled in current tsconfig :/\n const format: string = numberFormat.split('#').join('').split('0').join('');\n return { thousand: format[0], decimal: format[1] };\n }\n}\n","import {\n AfterContentInit,\n AfterViewInit,\n Component,\n ElementRef,\n EventEmitter,\n forwardRef,\n Host,\n Inject,\n Input,\n LOCALE_ID,\n NgModule,\n OnChanges,\n OnDestroy,\n Optional,\n Output,\n SimpleChanges,\n ViewChild,\n ViewEncapsulation,\n} from '@angular/core';\nimport { UxValidationErrorI18nMessage, UxFormValidationError } from '@eui/base';\nimport { CommonModule, DecimalPipe } from '@angular/common';\nimport { Clipboard } from '@angular/cdk/clipboard';\nimport { ControlValueAccessor, FormControl, FormsModule, NG_VALIDATORS, NG_VALUE_ACCESSOR, Validator } from '@angular/forms';\nimport { Subscription } from 'rxjs';\nimport { UxFormGroupComponent } from '@eui/components/legacy/ux-form-group';\nimport { UxControlFeedbackComponentModule } from '@eui/components/legacy/ux-control-feedback';\nimport { RemoveIdDirective } from './remove-id.directive';\nimport { StringToNumberPipe } from './string-to-number.pipe';\nimport { CleaveOptions } from 'cleave.js/options';\nimport { UxCleaveModule, UxMaxlengthModule, UxAutoResizeModule } from '@eui/components/legacy/common/ux-directives';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { coerceBooleanProperty, BooleanInput } from '@angular/cdk/coercion';\n\n@Component({\n selector: 'ux-form-control',\n templateUrl: './ux-form-control.component.html',\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => UxFormControlComponent),\n multi: true,\n },\n {\n provide: NG_VALIDATORS,\n useExisting: forwardRef(() => UxFormControlComponent),\n multi: true,\n },\n ],\n styleUrls: ['./styles/_index.scss'],\n encapsulation: ViewEncapsulation.None,\n})\nexport class UxFormControlComponent implements OnDestroy, ControlValueAccessor, Validator, AfterContentInit, OnChanges, AfterViewInit {\n @Input() id: string;\n @Input() feedbackTypeClass: string;\n @Input()\n get isReadOnly(): boolean {\n return this._isReadOnly;\n }\n set isReadOnly(value: BooleanInput) {\n this._isReadOnly = coerceBooleanProperty(value);\n }\n @Input()\n get isRequired(): boolean {\n return this._isRequired;\n }\n set isRequired(value: BooleanInput) {\n this._isRequired = coerceBooleanProperty(value);\n }\n @Input() styleClass: string;\n @Input() validationErrorMessage: string | UxValidationErrorI18nMessage;\n @Input() infoLabel: string;\n @Input() placeholderLabel: string;\n @Input()\n get autofocus(): boolean {\n return this._autofocus;\n }\n set autofocus(value: BooleanInput) {\n this._autofocus = coerceBooleanProperty(value);\n }\n @Input() formControlName: string;\n\n @Input()\n get isInputText(): boolean {\n return this._isInputText;\n }\n\n set isInputText(value: BooleanInput) {\n this._isInputText = coerceBooleanProperty(value);\n }\n @Input()\n get isTextarea(): boolean {\n return this._isTextarea;\n }\n\n set isTextarea(value: BooleanInput) {\n this._isTextarea = coerceBooleanProperty(value);\n }\n @Input() rows = 2;\n @Input() minRows: number;\n @Input()\n get isTextareaAutoresize(): boolean {\n return this._isTextareaAutoresize;\n }\n set isTextareaAutoresize(value: BooleanInput) {\n this._isTextareaAutoresize = coerceBooleanProperty(value);\n }\n // @Input() isDatepicker: boolean = false;\n\n // @Input() isDatetimepicker: boolean = false;\n // @Input() datepickerDateformat: string = 'dd/mm/yy';\n // @Input() datepickerYearRange: string = '1900:2050';\n // @Input() datepickerLocale;\n // @Input() dateOutputFormat;\n // @Input() minDateValue: Date = null;\n\n // @Input() maxDateValue: Date = null;\n @Input()\n get isSelect(): boolean {\n return this._isSelect;\n }\n\n set isSelect(value: BooleanInput) {\n this._isSelect = coerceBooleanProperty(value);\n }\n @Input() selectOptions: any[];\n @Input() selectKeyName = 'id';\n @Input() selectValueName = 'value';\n @Input()\n get isSelectStringValue(): boolean {\n return this._isSelectStringValue;\n }\n set isSelectStringValue(value: BooleanInput) {\n this._isSelectStringValue = coerceBooleanProperty(value);\n }\n @Input()\n get isCheckbox(): boolean {\n return this._isCheckbox;\n }\n\n set isCheckbox(value: BooleanInput) {\n this._isCheckbox = coerceBooleanProperty(value);\n }\n @Input() checkboxLabel: string;\n @Input()\n get isRadio(): boolean {\n return this._isRadio;\n }\n\n set isRadio(value: BooleanInput) {\n this._isRadio = coerceBooleanProperty(value);\n }\n @Input()\n get isRadioDeselect(): boolean {\n return this._isRadioDeselect;\n }\n set isRadioDeselect(value: BooleanInput) {\n this._isRadioDeselect = coerceBooleanProperty(value);\n }\n @Input() radioLabel: string;\n @Input() formControlValue: any;\n @Input()\n get isNumber(): boolean {\n return this._isNumber;\n }\n\n set isNumber(value: BooleanInput) {\n this._isNumber = coerceBooleanProperty(value);\n }\n /**\n * {minIntegerDigits}.{minFractionDigits}-{maxFractionDigits}.\n * minIntegerDigits: The minimum number of integer digits before the decimal point. Default is 1.\n * minFractionDigits: The minimum number of digits after the decimal point. Default is 0.\n * maxFractionDigits: The maximum number of digits after the decimal point. Default is 3.\n */\n @Input() digitsInfo = '1.0-3';\n @Input()\n get isNumberFormatPlaceholder(): boolean {\n return this._isNumberFormatPlaceholder;\n }\n set isNumberFormatPlaceholder(value: BooleanInput) {\n this._isNumberFormatPlaceholder = coerceBooleanProperty(value);\n }\n @Input() cleaveOptions: CleaveOptions = {\n numeral: true,\n delimiter: '',\n numeralDecimalMark: '',\n numeralDecimalScale: 0,\n };\n @Input() maxlength: number;\n\n @Input() maxLengthValidationErrorMessage: string;\n @Input()\n get isDisabled(): boolean {\n return this._isDisabled;\n }\n\n set isDisabled(value: BooleanInput) {\n this._isDisabled = coerceBooleanProperty(value);\n }\n @Input() inputStyleClass: string;\n\n @Input() tabindex = '0';\n @Input() groupId = '';\n\n @Output() modelChange = new EventEmitter<any>();\n\n @Output() touched = new EventEmitter<any>();\n @Output() focus = new EventEmitter<any>();\n @Input()\n get selectNoBlankLine(): boolean {\n return this._selectNoBlankLine;\n }\n\n set selectNoBlankLine(value: BooleanInput) {\n this._selectNoBlankLine = coerceBooleanProperty(value);\n }\n @Input()\n get isShowMaxlengthCounter(): boolean {\n return this._isShowMaxlengthCounter;\n }\n set isShowMaxlengthCounter(value: BooleanInput) {\n this._isShowMaxlengthCounter = coerceBooleanProperty(value);\n }\n @Input() e2eAttr = 'ux-form-control';\n\n @Input() emptyValueTextOnReadOnly;\n @ViewChild('radioElement') radioElement: ElementRef<HTMLInputElement>;\n\n @ViewChild('inputRef') inputRef: ElementRef<HTMLInputElement>;\n @ViewChild('formControlRef', { read: ElementRef }) formControlRef: ElementRef;\n inputValue: any;\n\n data: any;\n generatedId: string;\n checked: boolean;\n isMaxLengthValid = true;\n feedbackLabel: string;\n uxFormGroupComponent: UxFormGroupComponent;\n isSelectHasOptions = false;\n ariaInvalid = false;\n hasFormGroupParent = false;\n\n // Stores the isValid value for the parent form in case the user edits the field for the first time,\n\n // i.e.: not \"touched\" yet, but still invalid.\n // In such cases, the parent formGroup should become invalid when the user blurs the field.\n intendedFormGroupIsValid = true;\n validationErrorType: string;\n // Stores the last value for fields that are auto-corrected, i.e.: numeric fields or fields limited to a maximum length.\n\n // This is to fix a bug for when a user types an invalid value, and then switching off read-only mode.\n // In such cases, the last characters would remain in the (read-only) value.\n // To prevent this, we will force the value to the last known correct value.\n protected lastAutoCorrectedValue;\n private _formControl: FormControl;\n\n private languageChangeSubscription: Subscription;\n private _isReadOnly = false;\n private _isRequired = false;\n private _autofocus = false;\n private _isInputText = false;\n private _isTextarea = false;\n private _isTextareaAutoresize = false; // TODO : enable activation of uxAutoresize directive\n private _isSelect = false;\n private _isSelectStringValue = false;\n private _isCheckbox = false;\n private _isRadio = false;\n private _isRadioDeselect = false;\n private _isNumber = false;\n private _isNumberFormatPlaceholder = true;\n private _isDisabled = false;\n private _selectNoBlankLine = false;\n private _isShowMaxlengthCounter = true;\n\n constructor(\n @Optional() @Host() @Inject(forwardRef(() => UxFormGroupComponent)) uxFormGroupComponent: UxFormGroupComponent,\n @Inject(LOCALE_ID) public locale: string,\n protected elementRef: ElementRef\n ) {\n this.uxFormGroupComponent = uxFormGroupComponent;\n this.hasFormGroupParent = this.uxFormGroupComponent ? true : false;\n\n // this.languageChangeSubscription = translateService.onLangChange.subscribe((evt: LangChangeEvent) => {\n // if (this.calendarControl && !this.datepickerLocale) {\n // const locale = calendarLocales[evt.lang] || calendarLocales['en'];\n // this.calendarControl.locale = locale;\n // }\n // });\n }\n\n // @HostListener('document:keydown.escape', ['$event']) onKeydownHandler(event: KeyboardEvent) {\n // if (event.keyCode === 27 && this.isDatepicker) { // ESC\n // this.calendarControl.overlayVisible = false;\n // }\n // }\n\n ngAfterViewInit() {\n if (this.formControlRef && this.autofocus) {\n this.formControlRef.nativeElement.focus();\n }\n }\n\n ngAfterContentInit() {\n if (!this.id) {\n this.generatedId = 'ux-form-control-' + (Math.floor(Math.random() * 1000000) + 1).toString();\n } else {\n this.generatedId = this.id;\n }\n if (this.uxFormGroupComponent && !this.uxFormGroupComponent.id) {\n this.uxFormGroupComponent.id = this.generatedId;\n if (!this.uxFormGroupComponent.isRequired) {\n this.uxFormGroupComponent.isRequired = this.isRequired;\n } else if (!this.isRequired) {\n this.isRequired = true;\n }\n }\n if (!this.isInputText && !this.isTextarea && !this.isSelect && !this.isCheckbox && !this.isRadio && !this.isNumber) {\n this.isInputText = true;\n }\n\n if (this._formControl) {\n this._formControl.statusChanges.subscribe((v) => {\n if (this.uxFormGroupComponent) {\n this.intendedFormGroupIsValid = true;\n this.uxFormGroupComponent.isValid = v !== 'INVALID';\n if (!this._formControl.touched) {\n this.intendedFormGroupIsValid = this.uxFormGroupComponent.isValid;\n this.uxFormGroupComponent.isValid = true;\n }\n if (!this.uxFormGroupComponent.validationErrorMessage && this.validationErrorMessage) {\n this.uxFormGroupComponent.validationErrorMessage = this.validationErrorMessage;\n } else if (this._formControl.errors && this._formControl.errors.uxValidationError) {\n this.setUxValidationErrorsToParentFormGroup();\n }\n } else if (this._formControl.errors && this._formControl.errors.uxValidationError) {\n this.setUxValidationErrorsToFormControl();\n }\n });\n }\n\n this.lastAutoCorrectedValue = this.inputValue;\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n if (changes && changes['cleaveOptions'] && this.isNumber) {\n this.cleaveOptions = { ...changes['cleaveOptions'].currentValue, numeral: true };\n }\n\n // Bug fix for when a user types an invalid value, and then switching off read-only mode.\n // In such cases, the last characters would remain in the (read-only) value.\n // To prevent this, we will force the value to the last known correct value.\n if (changes && changes['isReadOnly'] && this.isNumber) {\n if (this.isReadOnly) {\n this.inputValue = this.lastAutoCorrectedValue;\n }\n }\n\n if (changes && changes['isReadOnly'] && this.isRadio) {\n if (!this.isReadOnly && this._formControl) {\n this.writeValue(this._formControl.value);\n }\n }\n\n if (changes && changes['isReadOnly'] && this.isSelect) {\n if (this.isReadOnly && this._formControl) {\n this.writeValue(this._formControl.value);\n }\n }\n\n this.updateSelectHasOptions();\n\n this.updateAriaInvalid();\n }\n\n ngOnDestroy() {\n if (this.languageChangeSubscription) {\n this.languageChangeSubscription.unsubscribe();\n }\n }\n\n setUxValidationErrorsToFormControl() {\n const errors = this._formControl.errors as UxFormValidationError;\n if (errors.uxValidationError.message) {\n this.validationErrorMessage = errors.uxValidationError.message;\n }\n if (errors.uxValidationError.type) {\n this.validationErrorType = errors.uxValidationError.type;\n }\n }\n\n setUxValidationErrorsToParentFormGroup() {\n const errors = this._formControl.errors as UxFormValidationError;\n if (errors.uxValidationError.message) {\n this.uxFormGroupComponent.validationErrorMessage = errors.uxValidationError.message;\n }\n if (errors.uxValidationError.type) {\n this.uxFormGroupComponent.validationErrorFeedbackClass = errors.uxValidationError.type;\n }\n }\n\n get isFieldValid(): boolean {\n if (this._formControl) {\n if (this._formControl.touched && this._formControl.invalid) {\n return false;\n }\n }\n return true;\n }\n\n get isRadioOptionChecked(): boolean {\n if (this._formControl && this.isRadio) {\n return this._formControl.value === this.formControlValue;\n }\n return null;\n }\n\n OnMaxLengthValidityChange(state: boolean) {\n this.isMaxLengthValid = state;\n }\n\n public writeValue(value: any) {\n if (this.isNumber) {\n this.inputValue = value;\n } else {\n if (this.isRadio) {\n if (this.isReadOnly) {\n this.inputValue = value;\n } else {\n this.checked = value === this.formControlValue;\n if (this.radioElement) {\n (<any>this.radioElement).nativeElement.checked = this.checked;\n }\n }\n } else {\n this.inputValue = value;\n }\n }\n\n // Save the last correct input value to show when a user switch off to read-only mode.\n if (this.inputValue) {\n this.lastAutoCorrectedValue = this.inputValue;\n }\n }\n\n public registerOnChange(fn: any) {\n this.propagateChange = fn;\n }\n\n public registerOnTouched(fn: any) {\n if (\n this._formControl &&\n !this._formControl.touched &&\n this.uxFormGroupComponent &&\n typeof this.intendedFormGroupIsValid !== 'undefined'\n ) {\n this.uxFormGroupComponent.isValid = this.intendedFormGroupIsValid;\n }\n\n this.propagateTouched = fn;\n }\n\n public validate(c: FormControl) {\n this._formControl = c;\n setTimeout(() => {\n this.updateAriaInvalid();\n }, 0);\n return c.invalid\n ? {\n fieldError: {\n errorMessage: this.validationErrorMessage || 'error',\n },\n }\n : null;\n }\n\n public onChange(event) {\n let newValue: any;\n\n if (event.target) {\n // Ignore, if TAB, Shift + Tab key combinations are used\n if (event.keyCode === 9 || event.keyCode === 16) {\n return;\n }\n\n newValue = event.target.value;\n\n if (this.isCheckbox) {\n newValue = event.target.checked;\n }\n\n if (this.isNumber) {\n newValue = this.inputValue;\n }\n if (this.isSelect) {\n if (event.target.value === 'null' || event.target.value === '') {\n newValue = null;\n } else {\n const value: string = event.target.value;\n if (isNaN(Number(value)) || this.isSelectStringValue) {\n newValue = value;\n } else {\n newValue = Number(value);\n }\n }\n }\n if (this.isRadio) {\n if (!this.isRadioDeselect) {\n newValue = this.formControlValue;\n } else {\n if (this.isRadioOptionChecked && event.target.value === this.formControlValue) {\n newValue = null;\n this._formControl.setValue(null, { emitEvent: true });\n } else {\n newValue = this.formControlValue;\n }\n }\n }\n\n if (this.isNumber || this.maxlength) {\n this.lastAutoCorrectedValue = newValue;\n }\n } else {\n newValue = event;\n }\n\n this.propagateChange(newValue);\n this.modelChange.emit(newValue);\n }\n\n public onTouched(event) {\n this.touched.emit(event);\n this.propagateTouched();\n this.updateFormGroupValidationStatus();\n }\n\n public onFocus(event) {\n this.focus.emit(event);\n }\n\n public get selectValue(): string {\n let valueItem = null;\n if (this.selectOptions) {\n valueItem = this.selectOptions.find((item) => item[this.selectKeyName] === this.inputValue);\n }\n if (valueItem) {\n return valueItem[this.selectValueName];\n } else {\n return null;\n }\n }\n\n protected updateAriaInvalid() {\n this.ariaInvalid = !this.isMaxLengthValid || (this._formControl && this._formControl.touched && this._formControl.invalid);\n }\n\n private updateFormGroupValidationStatus() {\n if (this._formControl && this.uxFormGroupComponent && this._formControl.dirty) {\n this.uxFormGroupComponent.isValid = !this._formControl.invalid;\n }\n }\n\n private updateSelectHasOptions() {\n if (this.isSelect && this.selectOptions) {\n this.selectOptions.forEach((item) => {\n if (item.options) {\n this.isSelectHasOptions = true;\n return;\n }\n });\n }\n }\n\n private propagateChange = (_: any) => {};\n\n private propagateTouched = () => {};\n}\n\n@NgModule({\n imports: [\n CommonModule,\n UxControlFeedbackComponentModule,\n FormsModule,\n UxMaxlengthModule,\n UxAutoResizeModule,\n UxCleaveModule,\n TranslateModule,\n ],\n providers: [DecimalPipe, Clipboard, StringToNumberPipe],\n exports: [UxFormControlComponent, RemoveIdDirective, StringToNumberPipe],\n declarations: [UxFormControlComponent, RemoveIdDirective, StringToNumberPipe],\n})\nexport class UxFormControlComponentModule {}\n","<ng-container *ngIf=\"isInputText && !isReadOnly\">\n <span attr.data-e2e=\"{{ e2eAttr }}-tf-rw\">\n <input\n #inputRef\n #formControlRef\n id=\"{{ generatedId }}\"\n type=\"text\"\n [(ngModel)]=\"inputValue\"\n class=\"ux-form-control {{ inputStyleClass }}\"\n (change)=\"onChange($event)\"\n (keyup)=\"onChange($event)\"\n (blur)=\"onTouched($event)\"\n (focus)=\"onFocus($event)\"\n placeholder=\"{{ placeholderLabel }}\"\n [uxMaxlength]=\"maxlength\"\n (validityChange)=\"OnMaxLengthValidityChange($event)\"\n [isShowMaxlengthCounter]=\"isShowMaxlengthCounter\"\n [disabled]=\"isDisabled\"\n [tabindex]=\"tabindex\"\n [attr.aria-invalid]=\"ariaInvalid\"\n [attr.aria-required]=\"isRequired\" />\n </span>\n</ng-container>\n\n<ng-container *ngIf=\"isTextarea && !isReadOnly\">\n <span attr.data-e2e=\"{{ e2eAttr }}-ta-rw\">\n <textarea\n #formControlRef\n id=\"{{ generatedId }}\"\n class=\"ux-form-control {{ inputStyleClass }}\"\n [(ngModel)]=\"inputValue\"\n (change)=\"onChange($event)\"\n (keyup)=\"onChange($event)\"\n (blur)=\"onTouched($event)\"\n (focus)=\"onFocus($event)\"\n placeholder=\"{{ placeholderLabel }}\"\n [uxMaxlength]=\"maxlength\"\n (validityChange)=\"OnMaxLengthValidityChange($event)\"\n [isShowMaxlengthCounter]=\"isShowMaxlengthCounter\"\n [attr.rows]=\"rows\"\n [minRows]=\"minRows\"\n [disabled]=\"isDisabled\"\n [tabindex]=\"tabindex\"\n [attr.aria-invalid]=\"ariaInvalid\"\n [attr.aria-required]=\"isRequired\"\n [uxAutoResize]=\"isTextareaAutoresize\">\n </textarea>\n </span>\n</ng-container>\n\n<ng-container *ngIf=\"isSelect && !isReadOnly\">\n <select\n #formControlRef\n id=\"{{ generatedId }}\"\n class=\"ux-form-control ux-form-control__custom-select {{ inputStyleClass }}\"\n [(ngModel)]=\"inputValue\"\n (change)=\"onChange($event)\"\n (keyup)=\"onChange($event)\"\n (blur)=\"onTouched($event)\"\n (focus)=\"onFocus($event)\"\n [disabled]=\"isDisabled\"\n [tabindex]=\"tabindex\"\n [attr.aria-invalid]=\"ariaInvalid\"\n [attr.aria-required]=\"isRequired\"\n attr.data-e2e=\"{{ e2eAttr }}-sel-rw\">\n <ng-container *ngIf=\"selectOptions\">\n <option *ngIf=\"!selectNoBlankLine\" [value]=\"'' || null\" class=\"ux-u-color-grey\">{{ placeholderLabel }}</option>\n <ng-template [ngIf]=\"isSelectHasOptions\">\n <ng-template ngFor let-item [ngForOf]=\"selectOptions\">\n <optgroup *ngIf=\"item.options\" label=\"{{ item.value }}\" class=\"ux-u-font-regular\">\n <option\n *ngFor=\"let opt of item.options\"\n [value]=\"opt[selectKeyName]\"\n [selected]=\"inputValue === opt[selectKeyName]\">\n {{ opt[selectValueName] }}\n </option>\n </optgroup>\n <option *ngIf=\"!item.options\" [value]=\"item[selectKeyName]\" [selected]=\"inputValue === item[selectKeyName]\">\n {{ item[selectValueName] }}\n </option>\n </ng-template>\n </ng-template>\n\n <ng-template [ngIf]=\"!isSelectHasOptions\">\n <option *ngFor=\"let opt of selectOptions\" [value]=\"opt[selectKeyName]\" [selected]=\"inputValue === opt[selectKeyName]\">\n {{ opt[selectValueName] }}\n </option>\n </ng-template>\n </ng-container>\n <ng-content *ngIf=\"!selectOptions\"></ng-content>\n </select>\n</ng-container>\n\n<ng-container *ngIf=\"isReadOnly && isSelect\">\n <!-- <input type=\"text\" role=\"combobox\" [attr.aria-readonly]=\"true\" readonly=\"readonly\" id=\"{{generatedId}}\" class=\"ux-form-control__read-only {{inputStyleClass}}\" [value]=\"selectValue\" [tabindex]=\"tabindex\" /> -->\n <div\n id=\"{{ generatedId }}\"\n class=\"ux-form-group--read-only {{ inputStyleClass }}\"\n [tabindex]=\"tabindex\"\n attr.data-e2e=\"{{ e2eAttr }}-sel-ro\">\n {{ selectValue === '' || !selectValue ? emptyValueTextOnReadOnly : selectValue }}\n </div>\n</ng-container>\n\n<ng-container *ngIf=\"isCheckbox && !isReadOnly\">\n <input\n #formControlRef\n id=\"{{ generatedId }}\"\n type=\"checkbox\"\n class=\"ux-input__checkbox {{ styleClass }}\"\n [(ngModel)]=\"inputValue\"\n (click)=\"onChange($event)\"\n (blur)=\"onTouched($event)\"\n (focus)=\"onFocus($event)\"\n [disabled]=\"isDisabled\"\n [tabindex]=\"tabindex\"\n [attr.aria-invalid]=\"ariaInvalid\"\n [attr.aria-required]=\"isRequired\"\n attr.data-e2e=\"{{ e2eAttr }}-cb-rw\" />\n <label for=\"{{ generatedId }}\" *ngIf=\"checkboxLabel\">{{ checkboxLabel }}</label>\n <label for=\"{{ generatedId }}\" role=\"presentation\" *ngIf=\"!checkboxLabel\">&nbsp;</label>\n</ng-container>\n\n<ng-container *ngIf=\"isCheckbox && isReadOnly\">\n <input\n #formControlRef\n id=\"{{ generatedId }}\"\n class=\"ux-input__checkbox {{ styleClass }}\"\n type=\"checkbox\"\n [checked]=\"inputValue\"\n onclick=\"return false;\"\n [tabindex]=\"tabindex\"\n readonly=\"readonly\"\n aria-readonly=\"true\"\n attr.data-e2e=\"{{ e2eAttr }}-cb-ro\" />\n <label for=\"{{ generatedId }}\" *ngIf=\"checkboxLabel\">{{ checkboxLabel }}</label>\n <label for=\"{{ generatedId }}\" role=\"presentation\" *ngIf=\"!checkboxLabel\">&nbsp;</label>\n</ng-container>\n\n<ng-container *ngIf=\"isRadio && !isReadOnly\">\n <input\n #radioElement\n #formControlRef\n id=\"{{ generatedId }}\"\n class=\"ux-input__radio {{ styleClass }}\"\n type=\"radio\"\n [checked]=\"checked\"\n [name]=\"formControlName + groupId\"\n [value]=\"formControlValue\"\n (click)=\"onChange($event)\"\n (blur)=\"onTouched($event)\"\n (focus)=\"onFocus($event)\"\n [disabled]=\"isDisabled\"\n [tabindex]=\"tabindex\"\n [attr.aria-invalid]=\"ariaInvalid\"\n [attr.aria-required]=\"isRequired\"\n attr.data-e2e=\"{{ e2eAttr }}-ra-rw\" />\n <label for=\"{{ generatedId }}\" class=\"radio-label\">{{ radioLabel || '&nbsp;' }}</label>\n</ng-container>\n\n<ng-container *ngIf=\"isRadio && isReadOnly && isRadioOptionChecked\">\n <div\n *ngIf=\"radioLabel\"\n id=\"{{ generatedId }}\"\n class=\"ux-form-group--read-only {{ inputStyleClass }}\"\n [tabindex]=\"tabindex\"\n attr.data-e2e=\"{{ e2eAttr }}-ro\">\n {{ radioLabel }}\n </div>\n <div\n *ngIf=\"!radioLabel\"\n id=\"{{ generatedId }}\"\n class=\"ux-form-group--read-only {{ inputStyleClass }}\"\n [tabindex]=\"tabindex\"\n attr.data-e2e=\"{{ e2eAttr }}-ro\">\n {{ inputValue }}\n </div>\n</ng-container>\n\n<ng-container *ngIf=\"isReadOnly && !isCheckbox && !isNumber && !isSelect && !isRadio && !isTextarea\">\n <div\n id=\"{{ generatedId }}\"\n class=\"ux-form-group--read-only {{ inputStyleClass }}\"\n [tabindex]=\"tabindex\"\n attr.data-e2e=\"{{ e2eAttr }}-ro\">\n {{ inputValue === '' || !inputValue ? emptyValueTextOnReadOnly : inputValue }}\n </div>\n</ng-container>\n\n<ng-container *ngIf=\"isNumber\">\n <div\n *ngIf=\"isReadOnly\"\n id=\"{{ generatedId }}\"\n class=\"ux-form-group--read-only {{ inputStyleClass }}\"\n [tabindex]=\"tabindex\"\n attr.data-e2e=\"{{ e2eAttr }}-sel-ro\">\n {{ inputRef.value === '' || !inputRef.value ? emptyValueTextOnReadOnly : inputRef.value }}\n </div>\n <span [hidden]=\"isReadOnly\" attr.data-e2e=\"{{ e2eAttr }}-num-rw\">\n <input\n #inputRef\n #formControlRef\n id=\"{{ generatedId }}\"\n type=\"text\"\n [uxCleave]=\"cleaveOptions\"\n [readOnly]=\"isReadOnly\"\n [(ngModel)]=\"inputValue\"\n [isModelNumber]=\"true\"\n class=\"ux-form-control {{ inputStyleClass }}\"\n (change)=\"onChange($event)\"\n (keyup)=\"onChange($event)\"\n (blur)=\"onTouched($event)\"\n (focus)=\"onFocus($event)\"\n placeholder=\"{{ placeholderLabel }}\"\n [disabled]=\"isDisabled\"\n [uxMaxlength]=\"maxlength\"\n (validityChange)=\"OnMaxLengthValidityChange($event)\"\n [isShowMaxlengthCounter]=\"isShowMaxlengthCounter\"\n [tabindex]=\"tabindex\"\n [attr.aria-invalid]=\"ariaInvalid\"\n [attr.aria-required]=\"isRequired\" />\n </span>\n</ng-container>\n\n<ng-container *ngIf=\"isTextarea && isReadOnly\">\n <div\n id=\"{{ generatedId }}\"\n class=\"ux-form-group--read-only {{ inputStyleClass }}\"\n [tabindex]=\"tabindex\"\n attr.data-e2e=\"{{ e2eAttr }}-ro\">\n <pre>{{ inputValue === '' || !inputValue ? emptyValueTextOnReadOnly : inputValue }}</pre>\n </div>\n</ng-container>\n\n<ng-container *ngIf=\"!isFieldValid && !hasFormGroupParent\">\n <ux-control-feedback\n *ngIf=\"validationErrorMessage\"\n typeClass=\"{{ validationErrorType ? validationErrorType : 'danger' }}\"\n attr.data-e2e=\"{{ e2eAttr }}\">\n {{\n validationErrorMessage && $any(validationErrorMessage).id\n ? ($any(validationErrorMessage).id | translate : $any(validationErrorMessage).params)\n : validationErrorMessage\n }}\n </ux-control-feedback>\n</ng-container>\n\n<ng-container *ngIf=\"!isMaxLengthValid\">\n <ux-control-feedback *ngIf=\"maxLengthValidationErrorMessage\" typeClass=\"danger\" attr.data-e2e=\"{{ e2eAttr }}\">\n {{ maxLengthValidationErrorMessage }}\n </ux-control-feedback>\n</ng-container>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"eui-components-legacy-ux-form-control.mjs","sources":["../../legacy/ux-form-control/remove-id.directive.ts","../../legacy/ux-form-control/string-to-number.pipe.ts","../../legacy/ux-form-control/ux-form-control.component.ts","../../legacy/ux-form-control/ux-form-control.component.html","../../legacy/ux-form-control/eui-components-legacy-ux-form-control.ts"],"sourcesContent":["import { Directive, ElementRef } from '@angular/core';\n\n@Directive({\n // eslint-disable-next-line @angular-eslint/directive-selector\n selector: 'ux-form-control[id]',\n})\nexport class RemoveIdDirective {\n constructor(private el: ElementRef) {\n el.nativeElement.removeAttribute('id');\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { getLocaleNumberFormat, NumberFormatStyle } from '@angular/common';\n\n@Pipe({\n name: 'stringToNumber',\n pure: false,\n})\nexport class StringToNumberPipe implements PipeTransform {\n /**\n * This pipe transforms a given formatted number value of type String to number. The correct conversion is based on\n * current numbers format which is extracted from the given Locale.\n *\n * @param value - a formatted string value e.g. '100,000,999.101'\n * @param locale - the LOCALE_ID of the formatted number in value. e.g. 'en-US'\n */\n transform(value: string | number, locale: string): number {\n // check for undefined\n if (!value) {\n return 0;\n }\n // check if type is already number\n if (typeof value === 'number') {\n return value;\n }\n\n // retrieve separators\n const { thousand, decimal } = this.getSeparators(locale);\n // replace those separators and return typeof Number\n return Number(\n value\n .split(thousand)\n .join('')\n .replace(decimal, '.')\n .replace(/\\.(?=.*\\.)/g, '')\n );\n }\n\n public getSeparators(locale: string): { thousand: string; decimal: string } {\n // get formatNumber based on locale\n const numberFormat = getLocaleNumberFormat(locale, NumberFormatStyle.Decimal);\n // based on given format extract decimal and thousand separators\n // TODO: this could be easily done with Array Destructuring (ES6 feat) but it's disabled in current tsconfig :/\n const format: string = numberFormat.split('#').join('').split('0').join('');\n return { thousand: format[0], decimal: format[1] };\n }\n}\n","import {\n AfterContentInit,\n AfterViewInit,\n Component,\n ElementRef,\n EventEmitter,\n forwardRef,\n Host,\n Inject,\n Input,\n LOCALE_ID,\n NgModule,\n OnChanges,\n OnDestroy,\n Optional,\n Output,\n SimpleChanges,\n ViewChild,\n ViewEncapsulation,\n} from '@angular/core';\nimport { UxValidationErrorI18nMessage, UxFormValidationError } from '@eui/base';\nimport { CommonModule, DecimalPipe } from '@angular/common';\nimport { Clipboard } from '@angular/cdk/clipboard';\nimport { ControlValueAccessor, FormControl, FormsModule, NG_VALIDATORS, NG_VALUE_ACCESSOR, Validator } from '@angular/forms';\nimport { Subscription } from 'rxjs';\nimport { UxFormGroupComponent } from '@eui/components/legacy/ux-form-group';\nimport { UxControlFeedbackComponentModule } from '@eui/components/legacy/ux-control-feedback';\nimport { RemoveIdDirective } from './remove-id.directive';\nimport { StringToNumberPipe } from './string-to-number.pipe';\nimport { CleaveOptions } from 'cleave.js/options';\nimport { UxCleaveModule, UxMaxlengthModule, UxAutoResizeModule } from '@eui/components/legacy/common/ux-directives';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { coerceBooleanProperty, BooleanInput } from '@angular/cdk/coercion';\n\n@Component({\n selector: 'ux-form-control',\n templateUrl: './ux-form-control.component.html',\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => UxFormControlComponent),\n multi: true,\n },\n {\n provide: NG_VALIDATORS,\n useExisting: forwardRef(() => UxFormControlComponent),\n multi: true,\n },\n ],\n styleUrls: ['./styles/_index.scss'],\n encapsulation: ViewEncapsulation.None,\n})\nexport class UxFormControlComponent implements OnDestroy, ControlValueAccessor, Validator, AfterContentInit, OnChanges, AfterViewInit {\n @Input() id: string;\n @Input() feedbackTypeClass: string;\n @Input()\n get isReadOnly(): boolean {\n return this._isReadOnly;\n }\n set isReadOnly(value: BooleanInput) {\n this._isReadOnly = coerceBooleanProperty(value);\n }\n @Input()\n get isRequired(): boolean {\n return this._isRequired;\n }\n set isRequired(value: BooleanInput) {\n this._isRequired = coerceBooleanProperty(value);\n }\n @Input() styleClass: string;\n @Input() validationErrorMessage: string | UxValidationErrorI18nMessage;\n @Input() infoLabel: string;\n @Input() placeholderLabel: string;\n @Input()\n get autofocus(): boolean {\n return this._autofocus;\n }\n set autofocus(value: BooleanInput) {\n this._autofocus = coerceBooleanProperty(value);\n }\n @Input() formControlName: string;\n\n @Input()\n get isInputText(): boolean {\n return this._isInputText;\n }\n\n set isInputText(value: BooleanInput) {\n this._isInputText = coerceBooleanProperty(value);\n }\n @Input()\n get isTextarea(): boolean {\n return this._isTextarea;\n }\n\n set isTextarea(value: BooleanInput) {\n this._isTextarea = coerceBooleanProperty(value);\n }\n @Input() rows = 2;\n @Input() minRows: number;\n @Input()\n get isTextareaAutoresize(): boolean {\n return this._isTextareaAutoresize;\n }\n set isTextareaAutoresize(value: BooleanInput) {\n this._isTextareaAutoresize = coerceBooleanProperty(value);\n }\n // @Input() isDatepicker: boolean = false;\n\n // @Input() isDatetimepicker: boolean = false;\n // @Input() datepickerDateformat: string = 'dd/mm/yy';\n // @Input() datepickerYearRange: string = '1900:2050';\n // @Input() datepickerLocale;\n // @Input() dateOutputFormat;\n // @Input() minDateValue: Date = null;\n\n // @Input() maxDateValue: Date = null;\n @Input()\n get isSelect(): boolean {\n return this._isSelect;\n }\n\n set isSelect(value: BooleanInput) {\n this._isSelect = coerceBooleanProperty(value);\n }\n @Input() selectOptions: any[];\n @Input() selectKeyName = 'id';\n @Input() selectValueName = 'value';\n @Input()\n get isSelectStringValue(): boolean {\n return this._isSelectStringValue;\n }\n set isSelectStringValue(value: BooleanInput) {\n this._isSelectStringValue = coerceBooleanProperty(value);\n }\n @Input()\n get isCheckbox(): boolean {\n return this._isCheckbox;\n }\n\n set isCheckbox(value: BooleanInput) {\n this._isCheckbox = coerceBooleanProperty(value);\n }\n @Input() checkboxLabel: string;\n @Input()\n get isRadio(): boolean {\n return this._isRadio;\n }\n\n set isRadio(value: BooleanInput) {\n this._isRadio = coerceBooleanProperty(value);\n }\n @Input()\n get isRadioDeselect(): boolean {\n return this._isRadioDeselect;\n }\n set isRadioDeselect(value: BooleanInput) {\n this._isRadioDeselect = coerceBooleanProperty(value);\n }\n @Input() radioLabel: string;\n @Input() formControlValue: any;\n @Input()\n get isNumber(): boolean {\n return this._isNumber;\n }\n\n set isNumber(value: BooleanInput) {\n this._isNumber = coerceBooleanProperty(value);\n }\n /**\n * {minIntegerDigits}.{minFractionDigits}-{maxFractionDigits}.\n * minIntegerDigits: The minimum number of integer digits before the decimal point. Default is 1.\n * minFractionDigits: The minimum number of digits after the decimal point. Default is 0.\n * maxFractionDigits: The maximum number of digits after the decimal point. Default is 3.\n */\n @Input() digitsInfo = '1.0-3';\n @Input()\n get isNumberFormatPlaceholder(): boolean {\n return this._isNumberFormatPlaceholder;\n }\n set isNumberFormatPlaceholder(value: BooleanInput) {\n this._isNumberFormatPlaceholder = coerceBooleanProperty(value);\n }\n @Input() cleaveOptions: CleaveOptions = {\n numeral: true,\n delimiter: '',\n numeralDecimalMark: '',\n numeralDecimalScale: 0,\n };\n @Input() maxlength: number;\n\n @Input() maxLengthValidationErrorMessage: string;\n @Input()\n get isDisabled(): boolean {\n return this._isDisabled;\n }\n\n set isDisabled(value: BooleanInput) {\n this._isDisabled = coerceBooleanProperty(value);\n }\n @Input() inputStyleClass: string;\n\n @Input() tabindex = '0';\n @Input() groupId = '';\n\n @Output() modelChange = new EventEmitter<any>();\n\n @Output() touched = new EventEmitter<any>();\n @Output() focus = new EventEmitter<any>();\n @Input()\n get selectNoBlankLine(): boolean {\n return this._selectNoBlankLine;\n }\n\n set selectNoBlankLine(value: BooleanInput) {\n this._selectNoBlankLine = coerceBooleanProperty(value);\n }\n @Input()\n get isShowMaxlengthCounter(): boolean {\n return this._isShowMaxlengthCounter;\n }\n set isShowMaxlengthCounter(value: BooleanInput) {\n this._isShowMaxlengthCounter = coerceBooleanProperty(value);\n }\n @Input() e2eAttr = 'ux-form-control';\n\n @Input() emptyValueTextOnReadOnly;\n @ViewChild('radioElement') radioElement: ElementRef<HTMLInputElement>;\n\n @ViewChild('inputRef') inputRef: ElementRef<HTMLInputElement>;\n @ViewChild('formControlRef', { read: ElementRef }) formControlRef: ElementRef;\n inputValue: any;\n\n data: any;\n generatedId: string;\n checked: boolean;\n isMaxLengthValid = true;\n feedbackLabel: string;\n uxFormGroupComponent: UxFormGroupComponent;\n isSelectHasOptions = false;\n ariaInvalid = false;\n hasFormGroupParent = false;\n\n // Stores the isValid value for the parent form in case the user edits the field for the first time,\n\n // i.e.: not \"touched\" yet, but still invalid.\n // In such cases, the parent formGroup should become invalid when the user blurs the field.\n intendedFormGroupIsValid = true;\n validationErrorType: string;\n // Stores the last value for fields that are auto-corrected, i.e.: numeric fields or fields limited to a maximum length.\n\n // This is to fix a bug for when a user types an invalid value, and then switching off read-only mode.\n // In such cases, the last characters would remain in the (read-only) value.\n // To prevent this, we will force the value to the last known correct value.\n protected lastAutoCorrectedValue;\n private _formControl: FormControl;\n\n private languageChangeSubscription: Subscription;\n private _isReadOnly = false;\n private _isRequired = false;\n private _autofocus = false;\n private _isInputText = false;\n private _isTextarea = false;\n private _isTextareaAutoresize = false; // TODO : enable activation of uxAutoresize directive\n private _isSelect = false;\n private _isSelectStringValue = false;\n private _isCheckbox = false;\n private _isRadio = false;\n private _isRadioDeselect = false;\n private _isNumber = false;\n private _isNumberFormatPlaceholder = true;\n private _isDisabled = false;\n private _selectNoBlankLine = false;\n private _isShowMaxlengthCounter = true;\n\n constructor(\n @Optional() @Host() @Inject(forwardRef(() => UxFormGroupComponent)) uxFormGroupComponent: UxFormGroupComponent,\n @Inject(LOCALE_ID) public locale: string,\n protected elementRef: ElementRef\n ) {\n this.uxFormGroupComponent = uxFormGroupComponent;\n this.hasFormGroupParent = this.uxFormGroupComponent ? true : false;\n\n // this.languageChangeSubscription = translateService.onLangChange.subscribe((evt: LangChangeEvent) => {\n // if (this.calendarControl && !this.datepickerLocale) {\n // const locale = calendarLocales[evt.lang] || calendarLocales['en'];\n // this.calendarControl.locale = locale;\n // }\n // });\n }\n\n // @HostListener('document:keydown.escape', ['$event']) onKeydownHandler(event: KeyboardEvent) {\n // if (event.keyCode === 27 && this.isDatepicker) { // ESC\n // this.calendarControl.overlayVisible = false;\n // }\n // }\n\n ngAfterViewInit() {\n if (this.formControlRef && this.autofocus) {\n this.formControlRef.nativeElement.focus();\n }\n }\n\n ngAfterContentInit() {\n if (!this.id) {\n this.generatedId = 'ux-form-control-' + (Math.floor(Math.random() * 1000000) + 1).toString();\n } else {\n this.generatedId = this.id;\n }\n if (this.uxFormGroupComponent && !this.uxFormGroupComponent.id) {\n this.uxFormGroupComponent.id = this.generatedId;\n if (!this.uxFormGroupComponent.isRequired) {\n this.uxFormGroupComponent.isRequired = this.isRequired;\n } else if (!this.isRequired) {\n this.isRequired = true;\n }\n }\n if (!this.isInputText && !this.isTextarea && !this.isSelect && !this.isCheckbox && !this.isRadio && !this.isNumber) {\n this.isInputText = true;\n }\n\n if (this._formControl) {\n this._formControl.statusChanges.subscribe((v) => {\n if (this.uxFormGroupComponent) {\n this.intendedFormGroupIsValid = true;\n this.uxFormGroupComponent.isValid = v !== 'INVALID';\n if (!this._formControl.touched) {\n this.intendedFormGroupIsValid = this.uxFormGroupComponent.isValid;\n this.uxFormGroupComponent.isValid = true;\n }\n if (!this.uxFormGroupComponent.validationErrorMessage && this.validationErrorMessage) {\n this.uxFormGroupComponent.validationErrorMessage = this.validationErrorMessage;\n } else if (this._formControl.errors && this._formControl.errors.uxValidationError) {\n this.setUxValidationErrorsToParentFormGroup();\n }\n } else if (this._formControl.errors && this._formControl.errors.uxValidationError) {\n this.setUxValidationErrorsToFormControl();\n }\n });\n }\n\n this.lastAutoCorrectedValue = this.inputValue;\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n if (changes && changes['cleaveOptions'] && this.isNumber) {\n this.cleaveOptions = { ...changes['cleaveOptions'].currentValue, numeral: true };\n }\n\n // Bug fix for when a user types an invalid value, and then switching off read-only mode.\n // In such cases, the last characters would remain in the (read-only) value.\n // To prevent this, we will force the value to the last known correct value.\n if (changes && changes['isReadOnly'] && this.isNumber) {\n if (this.isReadOnly) {\n this.inputValue = this.lastAutoCorrectedValue;\n }\n }\n\n if (changes && changes['isReadOnly'] && this.isRadio) {\n if (!this.isReadOnly && this._formControl) {\n this.writeValue(this._formControl.value);\n }\n }\n\n if (changes && changes['isReadOnly'] && this.isSelect) {\n if (this.isReadOnly && this._formControl) {\n this.writeValue(this._formControl.value);\n }\n }\n\n this.updateSelectHasOptions();\n\n this.updateAriaInvalid();\n }\n\n ngOnDestroy() {\n if (this.languageChangeSubscription) {\n this.languageChangeSubscription.unsubscribe();\n }\n }\n\n setUxValidationErrorsToFormControl() {\n const errors = this._formControl.errors as UxFormValidationError;\n if (errors.uxValidationError.message) {\n this.validationErrorMessage = errors.uxValidationError.message;\n }\n if (errors.uxValidationError.type) {\n this.validationErrorType = errors.uxValidationError.type;\n }\n }\n\n setUxValidationErrorsToParentFormGroup() {\n const errors = this._formControl.errors as UxFormValidationError;\n if (errors.uxValidationError.message) {\n this.uxFormGroupComponent.validationErrorMessage = errors.uxValidationError.message;\n }\n if (errors.uxValidationError.type) {\n this.uxFormGroupComponent.validationErrorFeedbackClass = errors.uxValidationError.type;\n }\n }\n\n get isFieldValid(): boolean {\n if (this._formControl) {\n if (this._formControl.touched && this._formControl.invalid) {\n return false;\n }\n }\n return true;\n }\n\n get isRadioOptionChecked(): boolean {\n if (this._formControl && this.isRadio) {\n return this._formControl.value === this.formControlValue;\n }\n return null;\n }\n\n OnMaxLengthValidityChange(state: boolean) {\n this.isMaxLengthValid = state;\n }\n\n public writeValue(value: any) {\n if (this.isNumber) {\n this.inputValue = value;\n } else {\n if (this.isRadio) {\n if (this.isReadOnly) {\n this.inputValue = value;\n } else {\n this.checked = value === this.formControlValue;\n if (this.radioElement) {\n (<any>this.radioElement).nativeElement.checked = this.checked;\n }\n }\n } else {\n this.inputValue = value;\n }\n }\n\n // Save the last correct input value to show when a user switch off to read-only mode.\n if (this.inputValue) {\n this.lastAutoCorrectedValue = this.inputValue;\n }\n }\n\n public registerOnChange(fn: any) {\n this.propagateChange = fn;\n }\n\n public registerOnTouched(fn: any) {\n if (\n this._formControl &&\n !this._formControl.touched &&\n this.uxFormGroupComponent &&\n typeof this.intendedFormGroupIsValid !== 'undefined'\n ) {\n this.uxFormGroupComponent.isValid = this.intendedFormGroupIsValid;\n }\n\n this.propagateTouched = fn;\n }\n\n public validate(c: FormControl) {\n this._formControl = c;\n setTimeout(() => {\n this.updateAriaInvalid();\n }, 0);\n return c.invalid\n ? {\n fieldError: {\n errorMessage: this.validationErrorMessage || 'error',\n },\n }\n : null;\n }\n\n public onChange(event) {\n let newValue: any;\n\n if (event.target) {\n // Ignore, if TAB, Shift + Tab key combinations are used\n if (event.keyCode === 9 || event.keyCode === 16) {\n return;\n }\n\n newValue = event.target.value;\n\n if (this.isCheckbox) {\n newValue = event.target.checked;\n }\n\n if (this.isNumber) {\n newValue = this.inputValue;\n }\n if (this.isSelect) {\n if (event.target.value === 'null' || event.target.value === '') {\n newValue = null;\n } else {\n const value: string = event.target.value;\n if (isNaN(Number(value)) || this.isSelectStringValue) {\n newValue = value;\n } else {\n newValue = Number(value);\n }\n }\n }\n if (this.isRadio) {\n if (!this.isRadioDeselect) {\n newValue = this.formControlValue;\n } else {\n if (this.isRadioOptionChecked && event.target.value === this.formControlValue) {\n newValue = null;\n this._formControl.setValue(null, { emitEvent: true });\n } else {\n newValue = this.formControlValue;\n }\n }\n }\n\n if (this.isNumber || this.maxlength) {\n this.lastAutoCorrectedValue = newValue;\n }\n } else {\n newValue = event;\n }\n\n this.propagateChange(newValue);\n this.modelChange.emit(newValue);\n }\n\n public onTouched(event) {\n this.touched.emit(event);\n this.propagateTouched();\n this.updateFormGroupValidationStatus();\n }\n\n public onFocus(event) {\n this.focus.emit(event);\n }\n\n public get selectValue(): string {\n let valueItem = null;\n if (this.selectOptions) {\n valueItem = this.selectOptions.find((item) => item[this.selectKeyName] === this.inputValue);\n }\n if (valueItem) {\n return valueItem[this.selectValueName];\n } else {\n return null;\n }\n }\n\n protected updateAriaInvalid() {\n this.ariaInvalid = !this.isMaxLengthValid || (this._formControl && this._formControl.touched && this._formControl.invalid);\n }\n\n private updateFormGroupValidationStatus() {\n if (this._formControl && this.uxFormGroupComponent && this._formControl.dirty) {\n this.uxFormGroupComponent.isValid = !this._formControl.invalid;\n }\n }\n\n private updateSelectHasOptions() {\n if (this.isSelect && this.selectOptions) {\n this.selectOptions.forEach((item) => {\n if (item.options) {\n this.isSelectHasOptions = true;\n return;\n }\n });\n }\n }\n\n private propagateChange = (_: any) => {};\n\n private propagateTouched = () => {};\n}\n\n@NgModule({\n imports: [\n CommonModule,\n UxControlFeedbackComponentModule,\n FormsModule,\n UxMaxlengthModule,\n UxAutoResizeModule,\n UxCleaveModule,\n TranslateModule,\n ],\n providers: [DecimalPipe, Clipboard, StringToNumberPipe],\n exports: [UxFormControlComponent, RemoveIdDirective, StringToNumberPipe],\n declarations: [UxFormControlComponent, RemoveIdDirective, StringToNumberPipe],\n})\nexport class UxFormControlComponentModule {}\n","<ng-container *ngIf=\"isInputText && !isReadOnly\">\n <span attr.data-e2e=\"{{ e2eAttr }}-tf-rw\">\n <input\n #inputRef\n #formControlRef\n id=\"{{ generatedId }}\"\n type=\"text\"\n [(ngModel)]=\"inputValue\"\n class=\"ux-form-control {{ inputStyleClass }}\"\n (change)=\"onChange($event)\"\n (keyup)=\"onChange($event)\"\n (blur)=\"onTouched($event)\"\n (focus)=\"onFocus($event)\"\n placeholder=\"{{ placeholderLabel }}\"\n [uxMaxlength]=\"maxlength\"\n (validityChange)=\"OnMaxLengthValidityChange($event)\"\n [isShowMaxlengthCounter]=\"isShowMaxlengthCounter\"\n [disabled]=\"isDisabled\"\n [tabindex]=\"tabindex\"\n [attr.aria-invalid]=\"ariaInvalid\"\n [attr.aria-required]=\"isRequired\" />\n </span>\n</ng-container>\n\n<ng-container *ngIf=\"isTextarea && !isReadOnly\">\n <span attr.data-e2e=\"{{ e2eAttr }}-ta-rw\">\n <textarea\n #formControlRef\n id=\"{{ generatedId }}\"\n class=\"ux-form-control {{ inputStyleClass }}\"\n [(ngModel)]=\"inputValue\"\n (change)=\"onChange($event)\"\n (keyup)=\"onChange($event)\"\n (blur)=\"onTouched($event)\"\n (focus)=\"onFocus($event)\"\n placeholder=\"{{ placeholderLabel }}\"\n [uxMaxlength]=\"maxlength\"\n (validityChange)=\"OnMaxLengthValidityChange($event)\"\n [isShowMaxlengthCounter]=\"isShowMaxlengthCounter\"\n [attr.rows]=\"rows\"\n [minRows]=\"minRows\"\n [disabled]=\"isDisabled\"\n [tabindex]=\"tabindex\"\n [attr.aria-invalid]=\"ariaInvalid\"\n [attr.aria-required]=\"isRequired\"\n [uxAutoResize]=\"isTextareaAutoresize\">\n </textarea>\n </span>\n</ng-container>\n\n<ng-container *ngIf=\"isSelect && !isReadOnly\">\n <select\n #formControlRef\n id=\"{{ generatedId }}\"\n class=\"ux-form-control ux-form-control__custom-select {{ inputStyleClass }}\"\n [(ngModel)]=\"inputValue\"\n (change)=\"onChange($event)\"\n (keyup)=\"onChange($event)\"\n (blur)=\"onTouched($event)\"\n (focus)=\"onFocus($event)\"\n [disabled]=\"isDisabled\"\n [tabindex]=\"tabindex\"\n [attr.aria-invalid]=\"ariaInvalid\"\n [attr.aria-required]=\"isRequired\"\n attr.data-e2e=\"{{ e2eAttr }}-sel-rw\">\n <ng-container *ngIf=\"selectOptions\">\n <option *ngIf=\"!selectNoBlankLine\" [value]=\"'' || null\" class=\"ux-u-color-grey\">{{ placeholderLabel }}</option>\n <ng-template [ngIf]=\"isSelectHasOptions\">\n <ng-template ngFor let-item [ngForOf]=\"selectOptions\">\n <optgroup *ngIf=\"item.options\" label=\"{{ item.value }}\" class=\"ux-u-font-regular\">\n <option\n *ngFor=\"let opt of item.options\"\n [value]=\"opt[selectKeyName]\"\n [selected]=\"inputValue === opt[selectKeyName]\">\n {{ opt[selectValueName] }}\n </option>\n </optgroup>\n <option *ngIf=\"!item.options\" [value]=\"item[selectKeyName]\" [selected]=\"inputValue === item[selectKeyName]\">\n {{ item[selectValueName] }}\n </option>\n </ng-template>\n </ng-template>\n\n <ng-template [ngIf]=\"!isSelectHasOptions\">\n <option *ngFor=\"let opt of selectOptions\" [value]=\"opt[selectKeyName]\" [selected]=\"inputValue === opt[selectKeyName]\">\n {{ opt[selectValueName] }}\n </option>\n </ng-template>\n </ng-container>\n <ng-content *ngIf=\"!selectOptions\"></ng-content>\n </select>\n</ng-container>\n\n<ng-container *ngIf=\"isReadOnly && isSelect\">\n <!-- <input type=\"text\" role=\"combobox\" [attr.aria-readonly]=\"true\" readonly=\"readonly\" id=\"{{generatedId}}\" class=\"ux-form-control__read-only {{inputStyleClass}}\" [value]=\"selectValue\" [tabindex]=\"tabindex\" /> -->\n <div\n id=\"{{ generatedId }}\"\n class=\"ux-form-group--read-only {{ inputStyleClass }}\"\n [tabindex]=\"tabindex\"\n attr.data-e2e=\"{{ e2eAttr }}-sel-ro\">\n {{ selectValue === '' || !selectValue ? emptyValueTextOnReadOnly : selectValue }}\n </div>\n</ng-container>\n\n<ng-container *ngIf=\"isCheckbox && !isReadOnly\">\n <input\n #formControlRef\n id=\"{{ generatedId }}\"\n type=\"checkbox\"\n class=\"ux-input__checkbox {{ styleClass }}\"\n [(ngModel)]=\"inputValue\"\n (click)=\"onChange($event)\"\n (blur)=\"onTouched($event)\"\n (focus)=\"onFocus($event)\"\n [disabled]=\"isDisabled\"\n [tabindex]=\"tabindex\"\n [attr.aria-invalid]=\"ariaInvalid\"\n [attr.aria-required]=\"isRequired\"\n attr.data-e2e=\"{{ e2eAttr }}-cb-rw\" />\n <label for=\"{{ generatedId }}\" *ngIf=\"checkboxLabel\">{{ checkboxLabel }}</label>\n <label for=\"{{ generatedId }}\" role=\"presentation\" *ngIf=\"!checkboxLabel\">&nbsp;</label>\n</ng-container>\n\n<ng-container *ngIf=\"isCheckbox && isReadOnly\">\n <input\n #formControlRef\n id=\"{{ generatedId }}\"\n class=\"ux-input__checkbox {{ styleClass }}\"\n type=\"checkbox\"\n [checked]=\"inputValue\"\n onclick=\"return false;\"\n [tabindex]=\"tabindex\"\n readonly=\"readonly\"\n aria-readonly=\"true\"\n attr.data-e2e=\"{{ e2eAttr }}-cb-ro\" />\n <label for=\"{{ generatedId }}\" *ngIf=\"checkboxLabel\">{{ checkboxLabel }}</label>\n <label for=\"{{ generatedId }}\" role=\"presentation\" *ngIf=\"!checkboxLabel\">&nbsp;</label>\n</ng-container>\n\n<ng-container *ngIf=\"isRadio && !isReadOnly\">\n <input\n #radioElement\n #formControlRef\n id=\"{{ generatedId }}\"\n class=\"ux-input__radio {{ styleClass }}\"\n type=\"radio\"\n [checked]=\"checked\"\n [name]=\"formControlName + groupId\"\n [value]=\"formControlValue\"\n (click)=\"onChange($event)\"\n (blur)=\"onTouched($event)\"\n (focus)=\"onFocus($event)\"\n [disabled]=\"isDisabled\"\n [tabindex]=\"tabindex\"\n [attr.aria-invalid]=\"ariaInvalid\"\n [attr.aria-required]=\"isRequired\"\n attr.data-e2e=\"{{ e2eAttr }}-ra-rw\" />\n <label for=\"{{ generatedId }}\" class=\"radio-label\">{{ radioLabel || '&nbsp;' }}</label>\n</ng-container>\n\n<ng-container *ngIf=\"isRadio && isReadOnly && isRadioOptionChecked\">\n <div\n *ngIf=\"radioLabel\"\n id=\"{{ generatedId }}\"\n class=\"ux-form-group--read-only {{ inputStyleClass }}\"\n [tabindex]=\"tabindex\"\n attr.data-e2e=\"{{ e2eAttr }}-ro\">\n {{ radioLabel }}\n </div>\n <div\n *ngIf=\"!radioLabel\"\n id=\"{{ generatedId }}\"\n class=\"ux-form-group--read-only {{ inputStyleClass }}\"\n [tabindex]=\"tabindex\"\n attr.data-e2e=\"{{ e2eAttr }}-ro\">\n {{ inputValue }}\n </div>\n</ng-container>\n\n<ng-container *ngIf=\"isReadOnly && !isCheckbox && !isNumber && !isSelect && !isRadio && !isTextarea\">\n <div\n id=\"{{ generatedId }}\"\n class=\"ux-form-group--read-only {{ inputStyleClass }}\"\n [tabindex]=\"tabindex\"\n attr.data-e2e=\"{{ e2eAttr }}-ro\">\n {{ inputValue === '' || !inputValue ? emptyValueTextOnReadOnly : inputValue }}\n </div>\n</ng-container>\n\n<ng-container *ngIf=\"isNumber\">\n <div\n *ngIf=\"isReadOnly\"\n id=\"{{ generatedId }}\"\n class=\"ux-form-group--read-only {{ inputStyleClass }}\"\n [tabindex]=\"tabindex\"\n attr.data-e2e=\"{{ e2eAttr }}-sel-ro\">\n {{ inputRef.value === '' || !inputRef.value ? emptyValueTextOnReadOnly : inputRef.value }}\n </div>\n <span [hidden]=\"isReadOnly\" attr.data-e2e=\"{{ e2eAttr }}-num-rw\">\n <input\n #inputRef\n #formControlRef\n id=\"{{ generatedId }}\"\n type=\"text\"\n [uxCleave]=\"cleaveOptions\"\n [readOnly]=\"isReadOnly\"\n [(ngModel)]=\"inputValue\"\n [isModelNumber]=\"true\"\n class=\"ux-form-control {{ inputStyleClass }}\"\n (change)=\"onChange($event)\"\n (keyup)=\"onChange($event)\"\n (blur)=\"onTouched($event)\"\n (focus)=\"onFocus($event)\"\n placeholder=\"{{ placeholderLabel }}\"\n [disabled]=\"isDisabled\"\n [uxMaxlength]=\"maxlength\"\n (validityChange)=\"OnMaxLengthValidityChange($event)\"\n [isShowMaxlengthCounter]=\"isShowMaxlengthCounter\"\n [tabindex]=\"tabindex\"\n [attr.aria-invalid]=\"ariaInvalid\"\n [attr.aria-required]=\"isRequired\" />\n </span>\n</ng-container>\n\n<ng-container *ngIf=\"isTextarea && isReadOnly\">\n <div\n id=\"{{ generatedId }}\"\n class=\"ux-form-group--read-only {{ inputStyleClass }}\"\n [tabindex]=\"tabindex\"\n attr.data-e2e=\"{{ e2eAttr }}-ro\">\n <pre>{{ inputValue === '' || !inputValue ? emptyValueTextOnReadOnly : inputValue }}</pre>\n </div>\n</ng-container>\n\n<ng-container *ngIf=\"!isFieldValid && !hasFormGroupParent\">\n <ux-control-feedback\n *ngIf=\"validationErrorMessage\"\n typeClass=\"{{ validationErrorType ? validationErrorType : 'danger' }}\"\n attr.data-e2e=\"{{ e2eAttr }}\">\n {{\n validationErrorMessage && $any(validationErrorMessage).id\n ? ($any(validationErrorMessage).id | translate : $any(validationErrorMessage).params)\n : validationErrorMessage\n }}\n </ux-control-feedback>\n</ng-container>\n\n<ng-container *ngIf=\"!isMaxLengthValid\">\n <ux-control-feedback *ngIf=\"maxLengthValidationErrorMessage\" typeClass=\"danger\" attr.data-e2e=\"{{ e2eAttr }}\">\n {{ maxLengthValidationErrorMessage }}\n </ux-control-feedback>\n</ng-container>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@eui/components",
3
- "version": "15.2.2-snapshot-1677676754363",
4
- "tag": "snapshot",
3
+ "version": "15.2.2",
4
+ "tag": "latest",
5
5
  "description": "eUI components package - next components prior to version 9",
6
6
  "homepage": "https://eui.ecdevops.eu",
7
7
  "author": "ec.europa.eui@gmail.com",