@wavemaker/app-ng-runtime 11.15.0-1.246 → 11.15.0-2.247

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.
@@ -970,6 +970,10 @@
970
970
  super.onPropertyChange(key, nv, ov);
971
971
  }
972
972
  }
973
+ get computedClasses() {
974
+ return { 'with-leading-icon': this.leadingiconclass, 'with-trailing-icon': this.trailingiconclass,
975
+ ...(typeof this.conditionalclass === 'string' ? { [this.conditionalclass]: true } : this.conditionalclass || {}) };
976
+ }
973
977
  get mask() {
974
978
  if (this.displayformat && (!this.placeholder || (this.placeholder && this.isFocused))) {
975
979
  return {
@@ -1039,7 +1043,7 @@
1039
1043
  base.provideAs(InputTextComponent, i2.NG_VALUE_ACCESSOR, true),
1040
1044
  base.provideAs(InputTextComponent, i2.NG_VALIDATORS, true),
1041
1045
  base.provideAsWidgetRef(InputTextComponent)
1042
- ], viewQueries: [{ propertyName: "inputEl", first: true, predicate: ["input"], descendants: true, static: true }, { propertyName: "ngModel", first: true, predicate: i2.NgModel, descendants: true }, { propertyName: "imask", first: true, predicate: ["input"], descendants: true, read: i3.IMaskDirective }], usesInheritance: true, ngImport: i0__namespace, template: "<button class=\"btn-leading-icon\" type=\"button\" name=\"leadingIcon\" *ngIf=\"leadingiconclass\" (click)=\"iconClickEvent($event, 'leadingiconclick')\">\n <i aria-hidden=\"true\" [ngClass]=\"leadingiconclass\"></i>\n</button>\n<input class=\"form-control app-textbox\"\n focus-target\n [type]=\"type\"\n [attr.name]=\"name\"\n [attr.aria-label]=\"arialabel\"\n [(ngModel)]=\"datavalue\"\n [imask]=\"mask\"\n [unmask]=\"true\"\n [ngModelOptions]=\"ngModelOptions\"\n [readonly]=\"readonly\"\n [required]=\"required\"\n [disabled]=\"disabled\"\n [maxlength]=\"maxchars\"\n [pattern]=\"regexp\"\n [attr.tabindex]=\"tabindex\"\n [attr.placeholder]=\"placeholder\"\n [attr.accesskey]=\"shortcutkey\"\n [autofocus]=\"autofocus\"\n [ngClass]=\"[leadingiconclass ? 'with-leading-icon' : '', trailingiconclass ? 'with-trailing-icon' : '', conditionalclass || '']\"\n [ngStyle]=\"conditionalstyle\"\n (ngModelChange)=\"handleChange($event)\"\n (blur)=\"handleBlur($event); checkForDisplayFormat($event)\"\n (focus)=\"checkForDisplayFormat($event)\"\n [autocomplete]=\"autocomplete ? 'on' : 'off'\"\n (keyup.enter)=\"flushViewChanges(input.value)\"\n #input>\n<button class=\"btn-trailing-icon\" type=\"button\" name=\"trailingIcon\" *ngIf=\"trailingiconclass\" (click)=\"iconClickEvent($event, 'trailingiconclick')\">\n <i aria-hidden=\"true\" [ngClass]=\"trailingiconclass\"></i>\n</button>\n<p class=\"app-label help-block supporting-text\" *ngIf=\"supportingtext\" name=\"supportingText\">{{supportingtext}}</p>\n\n", dependencies: [{ kind: "ngmodule", type: i1.CommonModule }, { kind: "directive", type: i1__namespace.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1__namespace.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1__namespace.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "ngmodule", type: i2.FormsModule }, { kind: "directive", type: i2__namespace.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: i2__namespace.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2__namespace.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i2__namespace.MaxLengthValidator, selector: "[maxlength][formControlName],[maxlength][formControl],[maxlength][ngModel]", inputs: ["maxlength"] }, { kind: "directive", type: i2__namespace.PatternValidator, selector: "[pattern][formControlName],[pattern][formControl],[pattern][ngModel]", inputs: ["pattern"] }, { kind: "directive", type: i2__namespace.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: i3.IMaskModule }, { kind: "directive", type: i3__namespace.IMaskDirective, selector: "[imask]", inputs: ["imask", "unmask", "imaskElement"], outputs: ["accept", "complete"], exportAs: ["imask"] }] }); }
1046
+ ], viewQueries: [{ propertyName: "inputEl", first: true, predicate: ["input"], descendants: true, static: true }, { propertyName: "ngModel", first: true, predicate: i2.NgModel, descendants: true }, { propertyName: "imask", first: true, predicate: ["input"], descendants: true, read: i3.IMaskDirective }], usesInheritance: true, ngImport: i0__namespace, template: "<button class=\"btn-leading-icon\" type=\"button\" name=\"leadingIcon\" *ngIf=\"leadingiconclass\" (click)=\"iconClickEvent($event, 'leadingiconclick')\">\n <i aria-hidden=\"true\" [ngClass]=\"leadingiconclass\"></i>\n</button>\n<input class=\"form-control app-textbox\"\n focus-target\n [type]=\"type\"\n [attr.name]=\"name\"\n [attr.aria-label]=\"arialabel\"\n [(ngModel)]=\"datavalue\"\n [imask]=\"mask\"\n [unmask]=\"true\"\n [ngModelOptions]=\"ngModelOptions\"\n [readonly]=\"readonly\"\n [required]=\"required\"\n [disabled]=\"disabled\"\n [maxlength]=\"maxchars\"\n [pattern]=\"regexp\"\n [attr.tabindex]=\"tabindex\"\n [attr.placeholder]=\"placeholder\"\n [attr.accesskey]=\"shortcutkey\"\n [autofocus]=\"autofocus\"\n [ngClass]=\"computedClasses\"\n [ngStyle]=\"conditionalstyle\"\n (ngModelChange)=\"handleChange($event)\"\n (blur)=\"handleBlur($event); checkForDisplayFormat($event)\"\n (focus)=\"checkForDisplayFormat($event)\"\n [autocomplete]=\"autocomplete ? 'on' : 'off'\"\n (keyup.enter)=\"flushViewChanges(input.value)\"\n #input>\n<button class=\"btn-trailing-icon\" type=\"button\" name=\"trailingIcon\" *ngIf=\"trailingiconclass\" (click)=\"iconClickEvent($event, 'trailingiconclick')\">\n <i aria-hidden=\"true\" [ngClass]=\"trailingiconclass\"></i>\n</button>\n<p class=\"app-label help-block supporting-text\" *ngIf=\"supportingtext\" name=\"supportingText\">{{supportingtext}}</p>\n\n", dependencies: [{ kind: "ngmodule", type: i1.CommonModule }, { kind: "directive", type: i1__namespace.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1__namespace.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1__namespace.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "ngmodule", type: i2.FormsModule }, { kind: "directive", type: i2__namespace.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: i2__namespace.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2__namespace.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i2__namespace.MaxLengthValidator, selector: "[maxlength][formControlName],[maxlength][formControl],[maxlength][ngModel]", inputs: ["maxlength"] }, { kind: "directive", type: i2__namespace.PatternValidator, selector: "[pattern][formControlName],[pattern][formControl],[pattern][ngModel]", inputs: ["pattern"] }, { kind: "directive", type: i2__namespace.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: i3.IMaskModule }, { kind: "directive", type: i3__namespace.IMaskDirective, selector: "[imask]", inputs: ["imask", "unmask", "imaskElement"], outputs: ["accept", "complete"], exportAs: ["imask"] }] }); }
1043
1047
  }
1044
1048
  i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0__namespace, type: InputTextComponent, decorators: [{
1045
1049
  type: i0.Component,
@@ -1047,7 +1051,7 @@
1047
1051
  base.provideAs(InputTextComponent, i2.NG_VALUE_ACCESSOR, true),
1048
1052
  base.provideAs(InputTextComponent, i2.NG_VALIDATORS, true),
1049
1053
  base.provideAsWidgetRef(InputTextComponent)
1050
- ], template: "<button class=\"btn-leading-icon\" type=\"button\" name=\"leadingIcon\" *ngIf=\"leadingiconclass\" (click)=\"iconClickEvent($event, 'leadingiconclick')\">\n <i aria-hidden=\"true\" [ngClass]=\"leadingiconclass\"></i>\n</button>\n<input class=\"form-control app-textbox\"\n focus-target\n [type]=\"type\"\n [attr.name]=\"name\"\n [attr.aria-label]=\"arialabel\"\n [(ngModel)]=\"datavalue\"\n [imask]=\"mask\"\n [unmask]=\"true\"\n [ngModelOptions]=\"ngModelOptions\"\n [readonly]=\"readonly\"\n [required]=\"required\"\n [disabled]=\"disabled\"\n [maxlength]=\"maxchars\"\n [pattern]=\"regexp\"\n [attr.tabindex]=\"tabindex\"\n [attr.placeholder]=\"placeholder\"\n [attr.accesskey]=\"shortcutkey\"\n [autofocus]=\"autofocus\"\n [ngClass]=\"[leadingiconclass ? 'with-leading-icon' : '', trailingiconclass ? 'with-trailing-icon' : '', conditionalclass || '']\"\n [ngStyle]=\"conditionalstyle\"\n (ngModelChange)=\"handleChange($event)\"\n (blur)=\"handleBlur($event); checkForDisplayFormat($event)\"\n (focus)=\"checkForDisplayFormat($event)\"\n [autocomplete]=\"autocomplete ? 'on' : 'off'\"\n (keyup.enter)=\"flushViewChanges(input.value)\"\n #input>\n<button class=\"btn-trailing-icon\" type=\"button\" name=\"trailingIcon\" *ngIf=\"trailingiconclass\" (click)=\"iconClickEvent($event, 'trailingiconclick')\">\n <i aria-hidden=\"true\" [ngClass]=\"trailingiconclass\"></i>\n</button>\n<p class=\"app-label help-block supporting-text\" *ngIf=\"supportingtext\" name=\"supportingText\">{{supportingtext}}</p>\n\n" }]
1054
+ ], template: "<button class=\"btn-leading-icon\" type=\"button\" name=\"leadingIcon\" *ngIf=\"leadingiconclass\" (click)=\"iconClickEvent($event, 'leadingiconclick')\">\n <i aria-hidden=\"true\" [ngClass]=\"leadingiconclass\"></i>\n</button>\n<input class=\"form-control app-textbox\"\n focus-target\n [type]=\"type\"\n [attr.name]=\"name\"\n [attr.aria-label]=\"arialabel\"\n [(ngModel)]=\"datavalue\"\n [imask]=\"mask\"\n [unmask]=\"true\"\n [ngModelOptions]=\"ngModelOptions\"\n [readonly]=\"readonly\"\n [required]=\"required\"\n [disabled]=\"disabled\"\n [maxlength]=\"maxchars\"\n [pattern]=\"regexp\"\n [attr.tabindex]=\"tabindex\"\n [attr.placeholder]=\"placeholder\"\n [attr.accesskey]=\"shortcutkey\"\n [autofocus]=\"autofocus\"\n [ngClass]=\"computedClasses\"\n [ngStyle]=\"conditionalstyle\"\n (ngModelChange)=\"handleChange($event)\"\n (blur)=\"handleBlur($event); checkForDisplayFormat($event)\"\n (focus)=\"checkForDisplayFormat($event)\"\n [autocomplete]=\"autocomplete ? 'on' : 'off'\"\n (keyup.enter)=\"flushViewChanges(input.value)\"\n #input>\n<button class=\"btn-trailing-icon\" type=\"button\" name=\"trailingIcon\" *ngIf=\"trailingiconclass\" (click)=\"iconClickEvent($event, 'trailingiconclick')\">\n <i aria-hidden=\"true\" [ngClass]=\"trailingiconclass\"></i>\n</button>\n<p class=\"app-label help-block supporting-text\" *ngIf=\"supportingtext\" name=\"supportingText\">{{supportingtext}}</p>\n\n" }]
1051
1055
  }], ctorParameters: () => [{ type: i0__namespace.Injector }, { type: undefined, decorators: [{
1052
1056
  type: i0.Inject,
1053
1057
  args: ['EXPLICIT_CONTEXT']
@@ -36,6 +36,10 @@ export class InputTextComponent extends BaseInput {
36
36
  super.onPropertyChange(key, nv, ov);
37
37
  }
38
38
  }
39
+ get computedClasses() {
40
+ return { 'with-leading-icon': this.leadingiconclass, 'with-trailing-icon': this.trailingiconclass,
41
+ ...(typeof this.conditionalclass === 'string' ? { [this.conditionalclass]: true } : this.conditionalclass || {}) };
42
+ }
39
43
  get mask() {
40
44
  if (this.displayformat && (!this.placeholder || (this.placeholder && this.isFocused))) {
41
45
  return {
@@ -105,7 +109,7 @@ export class InputTextComponent extends BaseInput {
105
109
  provideAs(InputTextComponent, NG_VALUE_ACCESSOR, true),
106
110
  provideAs(InputTextComponent, NG_VALIDATORS, true),
107
111
  provideAsWidgetRef(InputTextComponent)
108
- ], viewQueries: [{ propertyName: "inputEl", first: true, predicate: ["input"], descendants: true, static: true }, { propertyName: "ngModel", first: true, predicate: NgModel, descendants: true }, { propertyName: "imask", first: true, predicate: ["input"], descendants: true, read: IMaskDirective }], usesInheritance: true, ngImport: i0, template: "<button class=\"btn-leading-icon\" type=\"button\" name=\"leadingIcon\" *ngIf=\"leadingiconclass\" (click)=\"iconClickEvent($event, 'leadingiconclick')\">\n <i aria-hidden=\"true\" [ngClass]=\"leadingiconclass\"></i>\n</button>\n<input class=\"form-control app-textbox\"\n focus-target\n [type]=\"type\"\n [attr.name]=\"name\"\n [attr.aria-label]=\"arialabel\"\n [(ngModel)]=\"datavalue\"\n [imask]=\"mask\"\n [unmask]=\"true\"\n [ngModelOptions]=\"ngModelOptions\"\n [readonly]=\"readonly\"\n [required]=\"required\"\n [disabled]=\"disabled\"\n [maxlength]=\"maxchars\"\n [pattern]=\"regexp\"\n [attr.tabindex]=\"tabindex\"\n [attr.placeholder]=\"placeholder\"\n [attr.accesskey]=\"shortcutkey\"\n [autofocus]=\"autofocus\"\n [ngClass]=\"[leadingiconclass ? 'with-leading-icon' : '', trailingiconclass ? 'with-trailing-icon' : '', conditionalclass || '']\"\n [ngStyle]=\"conditionalstyle\"\n (ngModelChange)=\"handleChange($event)\"\n (blur)=\"handleBlur($event); checkForDisplayFormat($event)\"\n (focus)=\"checkForDisplayFormat($event)\"\n [autocomplete]=\"autocomplete ? 'on' : 'off'\"\n (keyup.enter)=\"flushViewChanges(input.value)\"\n #input>\n<button class=\"btn-trailing-icon\" type=\"button\" name=\"trailingIcon\" *ngIf=\"trailingiconclass\" (click)=\"iconClickEvent($event, 'trailingiconclick')\">\n <i aria-hidden=\"true\" [ngClass]=\"trailingiconclass\"></i>\n</button>\n<p class=\"app-label help-block supporting-text\" *ngIf=\"supportingtext\" name=\"supportingText\">{{supportingtext}}</p>\n\n", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i2.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: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i2.MaxLengthValidator, selector: "[maxlength][formControlName],[maxlength][formControl],[maxlength][ngModel]", inputs: ["maxlength"] }, { kind: "directive", type: i2.PatternValidator, selector: "[pattern][formControlName],[pattern][formControl],[pattern][ngModel]", inputs: ["pattern"] }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: IMaskModule }, { kind: "directive", type: i3.IMaskDirective, selector: "[imask]", inputs: ["imask", "unmask", "imaskElement"], outputs: ["accept", "complete"], exportAs: ["imask"] }] }); }
112
+ ], viewQueries: [{ propertyName: "inputEl", first: true, predicate: ["input"], descendants: true, static: true }, { propertyName: "ngModel", first: true, predicate: NgModel, descendants: true }, { propertyName: "imask", first: true, predicate: ["input"], descendants: true, read: IMaskDirective }], usesInheritance: true, ngImport: i0, template: "<button class=\"btn-leading-icon\" type=\"button\" name=\"leadingIcon\" *ngIf=\"leadingiconclass\" (click)=\"iconClickEvent($event, 'leadingiconclick')\">\n <i aria-hidden=\"true\" [ngClass]=\"leadingiconclass\"></i>\n</button>\n<input class=\"form-control app-textbox\"\n focus-target\n [type]=\"type\"\n [attr.name]=\"name\"\n [attr.aria-label]=\"arialabel\"\n [(ngModel)]=\"datavalue\"\n [imask]=\"mask\"\n [unmask]=\"true\"\n [ngModelOptions]=\"ngModelOptions\"\n [readonly]=\"readonly\"\n [required]=\"required\"\n [disabled]=\"disabled\"\n [maxlength]=\"maxchars\"\n [pattern]=\"regexp\"\n [attr.tabindex]=\"tabindex\"\n [attr.placeholder]=\"placeholder\"\n [attr.accesskey]=\"shortcutkey\"\n [autofocus]=\"autofocus\"\n [ngClass]=\"computedClasses\"\n [ngStyle]=\"conditionalstyle\"\n (ngModelChange)=\"handleChange($event)\"\n (blur)=\"handleBlur($event); checkForDisplayFormat($event)\"\n (focus)=\"checkForDisplayFormat($event)\"\n [autocomplete]=\"autocomplete ? 'on' : 'off'\"\n (keyup.enter)=\"flushViewChanges(input.value)\"\n #input>\n<button class=\"btn-trailing-icon\" type=\"button\" name=\"trailingIcon\" *ngIf=\"trailingiconclass\" (click)=\"iconClickEvent($event, 'trailingiconclick')\">\n <i aria-hidden=\"true\" [ngClass]=\"trailingiconclass\"></i>\n</button>\n<p class=\"app-label help-block supporting-text\" *ngIf=\"supportingtext\" name=\"supportingText\">{{supportingtext}}</p>\n\n", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i2.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: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i2.MaxLengthValidator, selector: "[maxlength][formControlName],[maxlength][formControl],[maxlength][ngModel]", inputs: ["maxlength"] }, { kind: "directive", type: i2.PatternValidator, selector: "[pattern][formControlName],[pattern][formControl],[pattern][ngModel]", inputs: ["pattern"] }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: IMaskModule }, { kind: "directive", type: i3.IMaskDirective, selector: "[imask]", inputs: ["imask", "unmask", "imaskElement"], outputs: ["accept", "complete"], exportAs: ["imask"] }] }); }
109
113
  }
110
114
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: InputTextComponent, decorators: [{
111
115
  type: Component,
@@ -113,7 +117,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
113
117
  provideAs(InputTextComponent, NG_VALUE_ACCESSOR, true),
114
118
  provideAs(InputTextComponent, NG_VALIDATORS, true),
115
119
  provideAsWidgetRef(InputTextComponent)
116
- ], template: "<button class=\"btn-leading-icon\" type=\"button\" name=\"leadingIcon\" *ngIf=\"leadingiconclass\" (click)=\"iconClickEvent($event, 'leadingiconclick')\">\n <i aria-hidden=\"true\" [ngClass]=\"leadingiconclass\"></i>\n</button>\n<input class=\"form-control app-textbox\"\n focus-target\n [type]=\"type\"\n [attr.name]=\"name\"\n [attr.aria-label]=\"arialabel\"\n [(ngModel)]=\"datavalue\"\n [imask]=\"mask\"\n [unmask]=\"true\"\n [ngModelOptions]=\"ngModelOptions\"\n [readonly]=\"readonly\"\n [required]=\"required\"\n [disabled]=\"disabled\"\n [maxlength]=\"maxchars\"\n [pattern]=\"regexp\"\n [attr.tabindex]=\"tabindex\"\n [attr.placeholder]=\"placeholder\"\n [attr.accesskey]=\"shortcutkey\"\n [autofocus]=\"autofocus\"\n [ngClass]=\"[leadingiconclass ? 'with-leading-icon' : '', trailingiconclass ? 'with-trailing-icon' : '', conditionalclass || '']\"\n [ngStyle]=\"conditionalstyle\"\n (ngModelChange)=\"handleChange($event)\"\n (blur)=\"handleBlur($event); checkForDisplayFormat($event)\"\n (focus)=\"checkForDisplayFormat($event)\"\n [autocomplete]=\"autocomplete ? 'on' : 'off'\"\n (keyup.enter)=\"flushViewChanges(input.value)\"\n #input>\n<button class=\"btn-trailing-icon\" type=\"button\" name=\"trailingIcon\" *ngIf=\"trailingiconclass\" (click)=\"iconClickEvent($event, 'trailingiconclick')\">\n <i aria-hidden=\"true\" [ngClass]=\"trailingiconclass\"></i>\n</button>\n<p class=\"app-label help-block supporting-text\" *ngIf=\"supportingtext\" name=\"supportingText\">{{supportingtext}}</p>\n\n" }]
120
+ ], template: "<button class=\"btn-leading-icon\" type=\"button\" name=\"leadingIcon\" *ngIf=\"leadingiconclass\" (click)=\"iconClickEvent($event, 'leadingiconclick')\">\n <i aria-hidden=\"true\" [ngClass]=\"leadingiconclass\"></i>\n</button>\n<input class=\"form-control app-textbox\"\n focus-target\n [type]=\"type\"\n [attr.name]=\"name\"\n [attr.aria-label]=\"arialabel\"\n [(ngModel)]=\"datavalue\"\n [imask]=\"mask\"\n [unmask]=\"true\"\n [ngModelOptions]=\"ngModelOptions\"\n [readonly]=\"readonly\"\n [required]=\"required\"\n [disabled]=\"disabled\"\n [maxlength]=\"maxchars\"\n [pattern]=\"regexp\"\n [attr.tabindex]=\"tabindex\"\n [attr.placeholder]=\"placeholder\"\n [attr.accesskey]=\"shortcutkey\"\n [autofocus]=\"autofocus\"\n [ngClass]=\"computedClasses\"\n [ngStyle]=\"conditionalstyle\"\n (ngModelChange)=\"handleChange($event)\"\n (blur)=\"handleBlur($event); checkForDisplayFormat($event)\"\n (focus)=\"checkForDisplayFormat($event)\"\n [autocomplete]=\"autocomplete ? 'on' : 'off'\"\n (keyup.enter)=\"flushViewChanges(input.value)\"\n #input>\n<button class=\"btn-trailing-icon\" type=\"button\" name=\"trailingIcon\" *ngIf=\"trailingiconclass\" (click)=\"iconClickEvent($event, 'trailingiconclick')\">\n <i aria-hidden=\"true\" [ngClass]=\"trailingiconclass\"></i>\n</button>\n<p class=\"app-label help-block supporting-text\" *ngIf=\"supportingtext\" name=\"supportingText\">{{supportingtext}}</p>\n\n" }]
117
121
  }], ctorParameters: () => [{ type: i0.Injector }, { type: undefined, decorators: [{
118
122
  type: Inject,
119
123
  args: ['EXPLICIT_CONTEXT']
@@ -129,4 +133,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
129
133
  type: ViewChild,
130
134
  args: ['input', { read: IMaskDirective }]
131
135
  }] } });
132
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQtdGV4dC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb21wb25lbnRzL3dpZGdldHMvaW5wdXQvdGV4dC9zcmMvaW5wdXQtdGV4dC9pbnB1dC10ZXh0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvbXBvbmVudHMvd2lkZ2V0cy9pbnB1dC90ZXh0L3NyYy9pbnB1dC10ZXh0L2lucHV0LXRleHQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM3QyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzVDLE9BQU8sRUFBQyxTQUFTLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxRQUFRLEVBQXFCLFFBQVEsRUFBRSxTQUFTLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDOUcsT0FBTyxFQUFDLGFBQWEsRUFBRSxpQkFBaUIsRUFBRSxPQUFPLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUV6RSxPQUFPLEVBQWdCLFNBQVMsRUFBRSxrQkFBa0IsRUFBQyxNQUFNLHFCQUFxQixDQUFDO0FBQ2pGLE9BQU8sRUFBQyxhQUFhLEVBQUMsTUFBTSxvQkFBb0IsQ0FBQztBQUNqRCxPQUFPLEVBQUMsU0FBUyxFQUFDLE1BQU0sMEJBQTBCLENBQUM7QUFDbkQsT0FBTyxFQUFDLGNBQWMsRUFBQyxNQUFNLGVBQWUsQ0FBQzs7Ozs7QUFFN0MsTUFBTSxhQUFhLEdBQWtCO0lBQ2pDLFVBQVUsRUFBRSxlQUFlO0lBQzNCLFNBQVMsRUFBRSxtQkFBbUI7Q0FDakMsQ0FBQztBQWFGLE1BQU0sT0FBTyxrQkFBbUIsU0FBUSxTQUFTO2FBQ3RDLG9CQUFlLEdBQUcsYUFBYSxFQUFF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QixJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQztRQUNwQixJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQztRQUVsQixvR0FBb0c7UUFDcEcsS0FBSyxDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQ3hCLENBQUM7K0dBcEhRLGtCQUFrQiwwQ0ErQlEsa0JBQWtCO21HQS9CNUMsa0JBQWtCLG9NQU5oQjtZQUNQLFNBQVMsQ0FBQyxrQkFBa0IsRUFBRSxpQkFBaUIsRUFBRSxJQUFJLENBQUM7WUFDdEQsU0FBUyxDQUFDLGtCQUFrQixFQUFFLGFBQWEsRUFBRSxJQUFJLENBQUM7WUFDbEQsa0JBQWtCLENBQUMsa0JBQWtCLENBQUM7U0FDekMsb0tBOEJVLE9BQU8sNEdBQ1MsY0FBYyxvREN4RDdDLDBvREFrQ0EsMkNEaEJZLFlBQVkscVRBQUUsV0FBVyx1b0NBQUUsV0FBVzs7NEZBU3JDLGtCQUFrQjtrQkFYOUIsU0FBUztpQ0FDSSxJQUFJLFdBQ1AsQ0FBQyxZQUFZLEVBQUUsV0FBVyxFQUFFLFdBQVcsQ0FBQyxZQUNyQyw2SUFBNkksYUFFNUk7d0JBQ1AsU0FBUyxxQkFBcUIsaUJBQWlCLEVBQUUsSUFBSSxDQUFDO3dCQUN0RCxTQUFTLHFCQUFxQixhQUFhLEVBQUUsSUFBSSxDQUFDO3dCQUNsRCxrQkFBa0Isb0JBQW9CO3FCQUN6Qzs7MEJBaUMyQixNQUFNOzJCQUFDLGtCQUFrQjs7MEJBQUcsUUFBUTt5Q0FKNUIsT0FBTztzQkFBMUMsU0FBUzt1QkFBQyxPQUFPLEVBQUUsRUFBQyxNQUFNLEVBQUUsSUFBSSxFQUFDO2dCQUNkLE9BQU87c0JBQTFCLFNBQVM7dUJBQUMsT0FBTztnQkFDMEIsS0FBSztzQkFBaEQsU0FBUzt1QkFBQyxPQUFPLEVBQUUsRUFBQyxJQUFJLEVBQUUsY0FBYyxFQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IEZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgSU1hc2tNb2R1bGUgfSBmcm9tICdhbmd1bGFyLWltYXNrJztcbmltcG9ydCB7Q29tcG9uZW50LCBFbGVtZW50UmVmLCBJbmplY3QsIEluamVjdG9yLCBPbkRlc3Ryb3ksIE9uSW5pdCwgT3B0aW9uYWwsIFZpZXdDaGlsZH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge05HX1ZBTElEQVRPUlMsIE5HX1ZBTFVFX0FDQ0VTU09SLCBOZ01vZGVsfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5cbmltcG9ydCB7SVdpZGdldENvbmZpZywgcHJvdmlkZUFzLCBwcm92aWRlQXNXaWRnZXRSZWZ9IGZyb20gJ0B3bS9jb21wb25lbnRzL2Jhc2UnO1xuaW1wb3J0IHtyZWdpc3RlclByb3BzfSBmcm9tICcuL2lucHV0LXRleHQucHJvcHMnO1xuaW1wb3J0IHtCYXNlSW5wdXR9IGZyb20gJy4uL2Jhc2UtaW5wdXQvYmFzZS1pbnB1dCc7XG5pbXBvcnQge0lNYXNrRGlyZWN0aXZlfSBmcm9tICdhbmd1bGFyLWltYXNrJztcblxuY29uc3QgV0lER0VUX0NPTkZJRzogSVdpZGdldENvbmZpZyA9IHtcbiAgICB3aWRnZXRUeXBlOiAnd20taW5wdXQtdGV4dCcsXG4gICAgaG9zdENsYXNzOiAnYXBwLWlucHV0LXdyYXBwZXInXG59O1xuXG5AQ29tcG9uZW50KHtcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgRm9ybXNNb2R1bGUsIElNYXNrTW9kdWxlXSxcbiAgICBzZWxlY3RvcjogJ3dtLWlucHV0W3R5cGU9XCJ0ZXh0XCJdLCB3bS1pbnB1dDpub3QoW3R5cGVdKSwgd20taW5wdXRbdHlwZT1cInBhc3N3b3JkXCJdLCB3bS1pbnB1dFt0eXBlPVwic2VhcmNoXCJdLCB3bS1pbnB1dFt0eXBlPVwidGVsXCJdLCB3bS1pbnB1dFt0eXBlPVwidXJsXCJdJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vaW5wdXQtdGV4dC5jb21wb25lbnQuaHRtbCcsXG4gICAgcHJvdmlkZXJzOiBbXG4gICAgICAgIHByb3ZpZGVBcyhJbnB1dFRleHRDb21wb25lbnQsIE5HX1ZBTFVFX0FDQ0VTU09SLCB0cnVlKSxcbiAgICAgICAgcHJvdmlkZUFzKElucHV0VGV4dENvbXBvbmVudCwgTkdfVkFMSURBVE9SUywgdHJ1ZSksXG4gICAgICAgIHByb3ZpZGVBc1dpZGdldFJlZihJbnB1dFRleHRDb21wb25lbnQpXG4gICAgXVxufSlcbmV4cG9ydCBjbGFzcyBJbnB1dFRleHRDb21wb25lbnQgZXh0ZW5kcyBCYXNlSW5wdXQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG4gICAgc3RhdGljIGluaXRpYWxpemVQcm9wcyA9IHJlZ2lzdGVyUHJvcHMoKTtcblxuICAgIHB1YmxpYyByZXF1aXJlZDogYm9vbGVhbjtcbiAgICBwdWJsaWMgbWF4Y2hhcnM6IG51bWJlcjtcbiAgICBwdWJsaWMgcmVnZXhwOiBzdHJpbmc7XG4gICAgcHVibGljIGRpc3BsYXlmb3JtYXQ6IHN0cmluZztcbiAgICBwdWJsaWMgZGlzYWJsZWQ6IGJvb2xlYW47XG4gICAgcHVibGljIHR5cGU6IGFueTtcbiAgICBwdWJsaWMgbmFtZTogc3RyaW5nO1xuICAgIHB1YmxpYyByZWFkb25seTogYm9vbGVhbjtcbiAgICBwdWJsaWMgY29uZGl0aW9uYWxjbGFzczogYW55O1xuICAgIHB1YmxpYyBjb25kaXRpb25hbHN0eWxlOiBhbnk7XG4gICAgcHVibGljIHRhYmluZGV4OiBhbnk7XG4gICAgcHVibGljIHBsYWNlaG9sZGVyOiBhbnk7XG4gICAgcHVibGljIHNob3J0Y3V0a2V5OiBzdHJpbmc7XG4gICAgcHVibGljIGF1dG9mb2N1czogYm9vbGVhbjtcbiAgICBwdWJsaWMgYXV0b2NvbXBsZXRlOiBhbnk7XG4gICAgcHVibGljIG1hc2tWYWw6IGFueTtcbiAgICBwdWJsaWMgaXNGb2N1c2VkOiBib29sZWFuO1xuICAgIHByaXZhdGUgbGF6eTogYm9vbGVhbiA9IGZhbHNlO1xuICAgIHB1YmxpYyBoaW50OiBzdHJpbmc7XG4gICAgcHVibGljIGFyaWFsYWJlbDogc3RyaW5nO1xuICAgIHB1YmxpYyB0cmFpbGluZ2ljb25jbGFzczogc3RyaW5nO1xuICAgIHB1YmxpYyBsZWFkaW5naWNvbmNsYXNzOiBzdHJpbmc7XG4gICAgcHVibGljIHN1cHBvcnRpbmd0ZXh0OiBzdHJpbmdcblxuICAgIEBWaWV3Q2hpbGQoJ2lucHV0Jywge3N0YXRpYzogdHJ1ZX0pIGlucHV0RWw6IEVsZW1lbnRSZWY7XG4gICAgQFZpZXdDaGlsZChOZ01vZGVsKSBuZ01vZGVsOiBOZ01vZGVsO1xuICAgIEBWaWV3Q2hpbGQoJ2lucHV0Jywge3JlYWQ6IElNYXNrRGlyZWN0aXZlfSkgaW1hc2s6IElNYXNrRGlyZWN0aXZlPGFueT47XG5cbiAgICBjb25zdHJ1Y3Rvcihpbmo6IEluamVjdG9yLCBASW5qZWN0KCdFWFBMSUNJVF9DT05URVhUJykgQE9wdGlvbmFsKCkgZXhwbGljaXRDb250ZXh0OiBhbnkpIHtcbiAgICAgICAgc3VwZXIoaW5qLCBXSURHRVRfQ09ORklHLCBleHBsaWNpdENvbnRleHQpO1xuICAgIH1cblxuICAgIC8qIERlZmluZSB0aGUgcHJvcGVydHkgY2hhbmdlIGhhbmRsZXIuIFRoaXMgZnVuY3Rpb24gd2lsbCBiZSB0cmlnZ2VyZWQgd2hlbiB0aGVyZSBpcyBhIGNoYW5nZSBpbiB0aGUgd2lkZ2V0IHByb3BlcnR5ICovXG4gICAgb25Qcm9wZXJ0eUNoYW5nZShrZXksIG52LCBvdikge1xuICAgICAgICAvKk1vbml0b3JpbmcgY2hhbmdlcyBmb3Igc3R5bGVzIG9yIHByb3BlcnRpZXMgYW5kIGFjY29yZGluZ2x5IGhhbmRsaW5nIHJlc3BlY3RpdmUgY2hhbmdlcy4qL1xuICAgICAgICBzd2l0Y2ggKGtleSkge1xuICAgICAgICAgICAgY2FzZSAnZGlzcGxheWZvcm1hdCc6XG4gICAgICAgICAgICAgICAgdGhpcy5tYXNrVmFsID0gdGhpcy5kaXNwbGF5Zm9ybWF0O1xuICAgICAgICAgICAgICAgIHRoaXMuY2hlY2tGb3JEaXNwbGF5Rm9ybWF0KCk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlICdzaG93ZGlzcGxheWZvcm1hdG9uJzpcbiAgICAgICAgICAgICAgICB0aGlzLmxhenkgPSBudiA9PT0gJ2tleXByZXNzJyA/IHRydWUgOiBmYWxzZTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgc3VwZXIub25Qcm9wZXJ0eUNoYW5nZShrZXksIG52LCBvdik7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBnZXQgbWFzaygpIHtcbiAgICAgICAgaWYgKHRoaXMuZGlzcGxheWZvcm1hdCAmJiAoIXRoaXMucGxhY2Vob2xkZXIgfHwgKHRoaXMucGxhY2Vob2xkZXIgJiYgdGhpcy5pc0ZvY3VzZWQpKSkge1xuICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICBtYXNrOiB0aGlzLm1hc2tWYWwsXG4gICAgICAgICAgICAgICAgbGF6eTogdGhpcy5sYXp5LFxuICAgICAgICAgICAgICAgIGRlZmluaXRpb25zOiB7XG4gICAgICAgICAgICAgICAgICAgICc5JzogL1xcZC8sXG4gICAgICAgICAgICAgICAgICAgICdBJzogL1thLXpBLVpdLyxcbiAgICAgICAgICAgICAgICAgICAgJ2EnOiAvW2Etel0vLFxuICAgICAgICAgICAgICAgICAgICAnKic6IC9cXHcvXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8vIHNob3cgZGlzcGxheSBmb3JtYXQgb24gZm9jdXMgb3Igd2hlbiBpdCBoYXMgYSBkYXRhIHZhbHVlIHByZXNlbnQuIEVsc2Ugc2hvdyB0aGUgcGxhY2Vob2xkZXJcbiAgICBwdWJsaWMgY2hlY2tGb3JEaXNwbGF5Rm9ybWF0KCRldmVudD8pIHtcbiAgICAgICAgaWYgKHRoaXMuZGlzcGxheWZvcm1hdCkge1xuICAgICAgICAgICAgdGhpcy5pc0ZvY3VzZWQgPSAoKCRldmVudCAmJiAkZXZlbnQudHlwZSA9PT0gJ2ZvY3VzJykgfHwgdGhpcy5kYXRhdmFsdWUpID8gdHJ1ZSA6IGZhbHNlO1xuICAgICAgICAgICAgLy8gRG8gbm90IHNob3cgZm9ybWF0IHBsYWNlaG9sZGVyIHdoZW4gbm8gdmFsdWUgaXMgcHJlc2VudCBvbiBibHVyXG4gICAgICAgICAgICBpZiAoIXRoaXMuaXNGb2N1c2VkICYmIHRoaXMuaW1hc2sgJiYgdGhpcy5pbWFzay5tYXNrUmVmKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5pbWFzay5tYXNrUmVmLnVwZGF0ZU9wdGlvbnMoeyBsYXp5OiB0cnVlIH0pO1xuICAgICAgICAgICAgICAgIC8vIG9uIGJsdXIsIHdoZW4gbm8gdmFsdWUgaXMgcHJlc2VudCBhc3NpZ24gbWFza3JlZiB0byBudWxsLCBhcyBpbiBzb21lIGNhc2VzICh3aGVyZSBmb3JtYXQgcGFsY2Vob2xkZXIgc3RhcnRzIHdpdGggcHJhbnRoZXNpcykgdGhlIGZvcm1hdCBwbGFjZWhvbGRlciBpcyBzdGlsbCBzaG93bi4gV01TLTIwMTI0XG4gICAgICAgICAgICAgICAgaWYgKCF0aGlzLmRhdGF2YWx1ZSAmJiB0aGlzLmltYXNrLm1hc2tSZWYudmFsdWUpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5pbWFzay5tYXNrUmVmLnZhbHVlID0gdGhpcy5kYXRhdmFsdWU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAvLyB3aGVuIGRpc3BsYXkgZm9ybWF0IGlzIGR5bmFtaWNhbGx5IHBvcHVsYXRlZCwgY3Vyc29yIHBvc2l0aW9uIGlzIGF0IHRoZSBlbmQgb2YgdGhlIGZvcm1hdCwgcmVhZGp1c3RpbmcgdGhlIGN1cnNvciBwb3NpdGlvbiBiYXNlZCBvbiBtYXNrZWQgaW5wdXQgdmFsdWVcbiAgICAgICAgICAgICAgICAvLyBBZGRpbmcgdGltZW91dCwgYXMgdGhlIGJlbG93IGNvZGUgc2hvdWxkIGJlIG9uIGhvbGQgdW50aWwgaW1hc2sgbW9kZWwgaXMgZ2VuZXJhdGVkXG4gICAgICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLmltYXNrICYmIHRoaXMuaW1hc2subWFza1JlZiAmJiB0aGlzLmltYXNrLm1hc2tSZWYudmFsdWUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IG1hc2tWYWxJbmRleCA9IHRoaXMuaW1hc2subWFza1JlZi52YWx1ZS5pbmRleE9mKCdfJyk7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBlbnRlcmVkTWFza1ZhbCA9IG1hc2tWYWxJbmRleCA+PSAwID8gdGhpcy5pbWFzay5tYXNrUmVmLnZhbHVlLnNsaWNlKDAsIG1hc2tWYWxJbmRleCkubGVuZ3RoIDogdGhpcy5pbWFzay5tYXNrUmVmLnZhbHVlLmxlbmd0aDtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChlbnRlcmVkTWFza1ZhbCAhPT0gdGhpcy5pbWFzay5tYXNrUmVmLmN1cnNvclBvcykge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuaW1hc2subWFza1JlZi51cGRhdGVDdXJzb3IoZW50ZXJlZE1hc2tWYWwpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSwgNTApO1xuICAgICAgICAgICAgfVxuICAgICAgICB9IGVsc2UgaWYgKHRoaXMuaW1hc2sgJiYgdGhpcy5pbWFzay5tYXNrUmVmKSB7IC8vIFdoZW4gZGlzcGxheSBmb3JtYXQgaXMgYm91bmQgdmlhIGNvbmRpdGlvbiwgcmVtb3ZlIHRoZSBwbGFjZWhvbGRlciB3aGVuIHRoZSBmb3JtYXQgaXMgbm90IGFwcGxpY2FibGVcbiAgICAgICAgICAgIHRoaXMuaW1hc2subWFza1JlZi51cGRhdGVPcHRpb25zKHsgbGF6eTogdHJ1ZSB9KTtcbiAgICAgICAgICAgIC8vIHdoZW4gZGlzcGxheSBmb3JtYXQgaXMgcmVtb3ZlZCBhc3NpZ24gaW5wdXQgdmFsdWUgdG8gdGhlIGRhdGF2YWx1ZSBhdHRyLiBXTVMtMjAxMjRcbiAgICAgICAgICAgIHRoaXMuaW5wdXRFbC5uYXRpdmVFbGVtZW50LnZhbHVlID0gdGhpcy5kYXRhdmFsdWU7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBuZ09uSW5pdCgpIHtcbiAgICAgICAgc3VwZXIubmdPbkluaXQoKTtcbiAgICAgICAgdGhpcy5pc0ZvY3VzZWQgPSAhIXRoaXMuZGF0YXZhbHVlO1xuICAgIH1cblxuICAgIGljb25DbGlja0V2ZW50KCRldmVudCwgdHlwZTogc3RyaW5nKXtcbiAgICAgICAgdGhpcy5pbnZva2VFdmVudENhbGxiYWNrKHR5cGUsIHsgJGV2ZW50IH0pXG4gICAgfVxuXG4gICAgbmdPbkRlc3Ryb3koKSB7XG4gICAgICAgIC8vIE1FTU9SWSBMRUFLIEZJWDogQ2xlYXIgYWxsIFZpZXdDaGlsZCByZWZlcmVuY2VzXG4gICAgICAgIHRoaXMuaW5wdXRFbCA9IG51bGw7XG4gICAgICAgIHRoaXMubmdNb2RlbCA9IG51bGw7XG4gICAgICAgIHRoaXMuaW1hc2sgPSBudWxsO1xuXG4gICAgICAgIC8vIENhbGwgcGFyZW50IG5nT25EZXN0cm95IChCYXNlSW5wdXQg4oaSIEJhc2VGb3JtQ3VzdG9tQ29tcG9uZW50IOKGkiBTdHlsYWJsZUNvbXBvbmVudCDihpIgQmFzZUNvbXBvbmVudClcbiAgICAgICAgc3VwZXIubmdPbkRlc3Ryb3koKTtcbiAgICB9XG59XG4iLCI8YnV0dG9uIGNsYXNzPVwiYnRuLWxlYWRpbmctaWNvblwiIHR5cGU9XCJidXR0b25cIiBuYW1lPVwibGVhZGluZ0ljb25cIiAqbmdJZj1cImxlYWRpbmdpY29uY2xhc3NcIiAoY2xpY2spPVwiaWNvbkNsaWNrRXZlbnQoJGV2ZW50LCAnbGVhZGluZ2ljb25jbGljaycpXCI+XG4gICAgICAgPGkgYXJpYS1oaWRkZW49XCJ0cnVlXCIgW25nQ2xhc3NdPVwibGVhZGluZ2ljb25jbGFzc1wiPjwvaT5cbjwvYnV0dG9uPlxuPGlucHV0IGNsYXNzPVwiZm9ybS1jb250cm9sIGFwcC10ZXh0Ym94XCJcbiAgICAgICBmb2N1cy10YXJnZXRcbiAgICAgICBbdHlwZV09XCJ0eXBlXCJcbiAgICAgICBbYXR0ci5uYW1lXT1cIm5hbWVcIlxuICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiYXJpYWxhYmVsXCJcbiAgICAgICBbKG5nTW9kZWwpXT1cImRhdGF2YWx1ZVwiXG4gICAgICAgW2ltYXNrXT1cIm1hc2tcIlxuICAgICAgIFt1bm1hc2tdPVwidHJ1ZVwiXG4gICAgICAgW25nTW9kZWxPcHRpb25zXT1cIm5nTW9kZWxPcHRpb25zXCJcbiAgICAgICBbcmVhZG9ubHldPVwicmVhZG9ubHlcIlxuICAgICAgIFtyZXF1aXJlZF09XCJyZXF1aXJlZFwiXG4gICAgICAgW2Rpc2FibGVkXT1cImRpc2FibGVkXCJcbiAgICAgICBbbWF4bGVuZ3RoXT1cIm1heGNoYXJzXCJcbiAgICAgICBbcGF0dGVybl09XCJyZWdleHBcIlxuICAgICAgIFthdHRyLnRhYmluZGV4XT1cInRhYmluZGV4XCJcbiAgICAgICBbYXR0ci5wbGFjZWhvbGRlcl09XCJwbGFjZWhvbGRlclwiXG4gICAgICAgW2F0dHIuYWNjZXNza2V5XT1cInNob3J0Y3V0a2V5XCJcbiAgICAgICBbYXV0b2ZvY3VzXT1cImF1dG9mb2N1c1wiXG4gICAgICAgW25nQ2xhc3NdPVwiW2xlYWRpbmdpY29uY2xhc3MgPyAnd2l0aC1sZWFkaW5nLWljb24nIDogJycsIHRyYWlsaW5naWNvbmNsYXNzID8gJ3dpdGgtdHJhaWxpbmctaWNvbicgOiAnJywgY29uZGl0aW9uYWxjbGFzcyB8fCAnJ11cIlxuICAgICAgIFtuZ1N0eWxlXT1cImNvbmRpdGlvbmFsc3R5bGVcIlxuICAgICAgIChuZ01vZGVsQ2hhbmdlKT1cImhhbmRsZUNoYW5nZSgkZXZlbnQpXCJcbiAgICAgICAoYmx1cik9XCJoYW5kbGVCbHVyKCRldmVudCk7IGNoZWNrRm9yRGlzcGxheUZvcm1hdCgkZXZlbnQpXCJcbiAgICAgICAoZm9jdXMpPVwiY2hlY2tGb3JEaXNwbGF5Rm9ybWF0KCRldmVudClcIlxuICAgICAgIFthdXRvY29tcGxldGVdPVwiYXV0b2NvbXBsZXRlID8gJ29uJyA6ICdvZmYnXCJcbiAgICAgICAoa2V5dXAuZW50ZXIpPVwiZmx1c2hWaWV3Q2hhbmdlcyhpbnB1dC52YWx1ZSlcIlxuICAgICAgICNpbnB1dD5cbjxidXR0b24gY2xhc3M9XCJidG4tdHJhaWxpbmctaWNvblwiIHR5cGU9XCJidXR0b25cIiBuYW1lPVwidHJhaWxpbmdJY29uXCIgKm5nSWY9XCJ0cmFpbGluZ2ljb25jbGFzc1wiIChjbGljayk9XCJpY29uQ2xpY2tFdmVudCgkZXZlbnQsICd0cmFpbGluZ2ljb25jbGljaycpXCI+XG4gICAgICAgPGkgYXJpYS1oaWRkZW49XCJ0cnVlXCIgW25nQ2xhc3NdPVwidHJhaWxpbmdpY29uY2xhc3NcIj48L2k+XG48L2J1dHRvbj5cbjxwIGNsYXNzPVwiYXBwLWxhYmVsIGhlbHAtYmxvY2sgc3VwcG9ydGluZy10ZXh0XCIgKm5nSWY9XCJzdXBwb3J0aW5ndGV4dFwiIG5hbWU9XCJzdXBwb3J0aW5nVGV4dFwiPnt7c3VwcG9ydGluZ3RleHR9fTwvcD5cblxuIl19
136
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQtdGV4dC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb21wb25lbnRzL3dpZGdldHMvaW5wdXQvdGV4dC9zcmMvaW5wdXQtdGV4dC9pbnB1dC10ZXh0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvbXBvbmVudHMvd2lkZ2V0cy9pbnB1dC90ZXh0L3NyYy9pbnB1dC10ZXh0L2lucHV0LXRleHQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM3QyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzVDLE9BQU8sRUFBQyxTQUFTLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxRQUFRLEVBQXFCLFFBQVEsRUFBRSxTQUFTLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDOUcsT0FBTyxFQUFDLGFBQWEsRUFBRSxpQkFBaUIsRUFBRSxPQUFPLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUV6RSxPQUFPLEVBQWdCLFNBQVMsRUFBRSxrQkFBa0IsRUFBQyxNQUFNLHFCQUFxQixDQUFDO0FBQ2pGLE9BQU8sRUFBQyxhQUFhLEVBQUMsTUFBTSxvQkFBb0IsQ0FBQztBQUNqRCxPQUFPLEVBQUMsU0FBUyxFQUFDLE1BQU0sMEJBQTBCLENBQUM7QUFDbkQsT0FBTyxFQUFDLGNBQWMsRUFBQyxNQUFNLGVBQWUsQ0FBQzs7Ozs7QUFFN0MsTUFBTSxhQUFhLEdBQWtCO0lBQ2pDLFVBQVUsRUFBRSxlQUFlO0lBQzNCLFNBQVMsRUFBRSxtQkFBbUI7Q0FDakMsQ0FBQztBQWFGLE1BQU0sT0FBTyxrQkFBbUIsU0FBUSxTQUFTO2FBQ3RDLG9CQUFlLEdBQUcsYUFBYSxFQUFF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LE9BQU87c0JBQTFDLFNBQVM7dUJBQUMsT0FBTyxFQUFFLEVBQUMsTUFBTSxFQUFFLElBQUksRUFBQztnQkFDZCxPQUFPO3NCQUExQixTQUFTO3VCQUFDLE9BQU87Z0JBQzBCLEtBQUs7c0JBQWhELFNBQVM7dUJBQUMsT0FBTyxFQUFFLEVBQUMsSUFBSSxFQUFFLGNBQWMsRUFBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IElNYXNrTW9kdWxlIH0gZnJvbSAnYW5ndWxhci1pbWFzayc7XG5pbXBvcnQge0NvbXBvbmVudCwgRWxlbWVudFJlZiwgSW5qZWN0LCBJbmplY3RvciwgT25EZXN0cm95LCBPbkluaXQsIE9wdGlvbmFsLCBWaWV3Q2hpbGR9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtOR19WQUxJREFUT1JTLCBOR19WQUxVRV9BQ0NFU1NPUiwgTmdNb2RlbH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuXG5pbXBvcnQge0lXaWRnZXRDb25maWcsIHByb3ZpZGVBcywgcHJvdmlkZUFzV2lkZ2V0UmVmfSBmcm9tICdAd20vY29tcG9uZW50cy9iYXNlJztcbmltcG9ydCB7cmVnaXN0ZXJQcm9wc30gZnJvbSAnLi9pbnB1dC10ZXh0LnByb3BzJztcbmltcG9ydCB7QmFzZUlucHV0fSBmcm9tICcuLi9iYXNlLWlucHV0L2Jhc2UtaW5wdXQnO1xuaW1wb3J0IHtJTWFza0RpcmVjdGl2ZX0gZnJvbSAnYW5ndWxhci1pbWFzayc7XG5cbmNvbnN0IFdJREdFVF9DT05GSUc6IElXaWRnZXRDb25maWcgPSB7XG4gICAgd2lkZ2V0VHlwZTogJ3dtLWlucHV0LXRleHQnLFxuICAgIGhvc3RDbGFzczogJ2FwcC1pbnB1dC13cmFwcGVyJ1xufTtcblxuQENvbXBvbmVudCh7XG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIEZvcm1zTW9kdWxlLCBJTWFza01vZHVsZV0sXG4gICAgc2VsZWN0b3I6ICd3bS1pbnB1dFt0eXBlPVwidGV4dFwiXSwgd20taW5wdXQ6bm90KFt0eXBlXSksIHdtLWlucHV0W3R5cGU9XCJwYXNzd29yZFwiXSwgd20taW5wdXRbdHlwZT1cInNlYXJjaFwiXSwgd20taW5wdXRbdHlwZT1cInRlbFwiXSwgd20taW5wdXRbdHlwZT1cInVybFwiXScsXG4gICAgdGVtcGxhdGVVcmw6ICcuL2lucHV0LXRleHQuY29tcG9uZW50Lmh0bWwnLFxuICAgIHByb3ZpZGVyczogW1xuICAgICAgICBwcm92aWRlQXMoSW5wdXRUZXh0Q29tcG9uZW50LCBOR19WQUxVRV9BQ0NFU1NPUiwgdHJ1ZSksXG4gICAgICAgIHByb3ZpZGVBcyhJbnB1dFRleHRDb21wb25lbnQsIE5HX1ZBTElEQVRPUlMsIHRydWUpLFxuICAgICAgICBwcm92aWRlQXNXaWRnZXRSZWYoSW5wdXRUZXh0Q29tcG9uZW50KVxuICAgIF1cbn0pXG5leHBvcnQgY2xhc3MgSW5wdXRUZXh0Q29tcG9uZW50IGV4dGVuZHMgQmFzZUlucHV0IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xuICAgIHN0YXRpYyBpbml0aWFsaXplUHJvcHMgPSByZWdpc3RlclByb3BzKCk7XG5cbiAgICBwdWJsaWMgcmVxdWlyZWQ6IGJvb2xlYW47XG4gICAgcHVibGljIG1heGNoYXJzOiBudW1iZXI7XG4gICAgcHVibGljIHJlZ2V4cDogc3RyaW5nO1xuICAgIHB1YmxpYyBkaXNwbGF5Zm9ybWF0OiBzdHJpbmc7XG4gICAgcHVibGljIGRpc2FibGVkOiBib29sZWFuO1xuICAgIHB1YmxpYyB0eXBlOiBhbnk7XG4gICAgcHVibGljIG5hbWU6IHN0cmluZztcbiAgICBwdWJsaWMgcmVhZG9ubHk6IGJvb2xlYW47XG4gICAgcHVibGljIGNvbmRpdGlvbmFsY2xhc3M6IGFueTtcbiAgICBwdWJsaWMgY29uZGl0aW9uYWxzdHlsZTogYW55O1xuICAgIHB1YmxpYyB0YWJpbmRleDogYW55O1xuICAgIHB1YmxpYyBwbGFjZWhvbGRlcjogYW55O1xuICAgIHB1YmxpYyBzaG9ydGN1dGtleTogc3RyaW5nO1xuICAgIHB1YmxpYyBhdXRvZm9jdXM6IGJvb2xlYW47XG4gICAgcHVibGljIGF1dG9jb21wbGV0ZTogYW55O1xuICAgIHB1YmxpYyBtYXNrVmFsOiBhbnk7XG4gICAgcHVibGljIGlzRm9jdXNlZDogYm9vbGVhbjtcbiAgICBwcml2YXRlIGxhenk6IGJvb2xlYW4gPSBmYWxzZTtcbiAgICBwdWJsaWMgaGludDogc3RyaW5nO1xuICAgIHB1YmxpYyBhcmlhbGFiZWw6IHN0cmluZztcbiAgICBwdWJsaWMgdHJhaWxpbmdpY29uY2xhc3M6IHN0cmluZztcbiAgICBwdWJsaWMgbGVhZGluZ2ljb25jbGFzczogc3RyaW5nO1xuICAgIHB1YmxpYyBzdXBwb3J0aW5ndGV4dDogc3RyaW5nXG5cbiAgICBAVmlld0NoaWxkKCdpbnB1dCcsIHtzdGF0aWM6IHRydWV9KSBpbnB1dEVsOiBFbGVtZW50UmVmO1xuICAgIEBWaWV3Q2hpbGQoTmdNb2RlbCkgbmdNb2RlbDogTmdNb2RlbDtcbiAgICBAVmlld0NoaWxkKCdpbnB1dCcsIHtyZWFkOiBJTWFza0RpcmVjdGl2ZX0pIGltYXNrOiBJTWFza0RpcmVjdGl2ZTxhbnk+O1xuXG4gICAgY29uc3RydWN0b3IoaW5qOiBJbmplY3RvciwgQEluamVjdCgnRVhQTElDSVRfQ09OVEVYVCcpIEBPcHRpb25hbCgpIGV4cGxpY2l0Q29udGV4dDogYW55KSB7XG4gICAgICAgIHN1cGVyKGluaiwgV0lER0VUX0NPTkZJRywgZXhwbGljaXRDb250ZXh0KTtcbiAgICB9XG5cbiAgICAvKiBEZWZpbmUgdGhlIHByb3BlcnR5IGNoYW5nZSBoYW5kbGVyLiBUaGlzIGZ1bmN0aW9uIHdpbGwgYmUgdHJpZ2dlcmVkIHdoZW4gdGhlcmUgaXMgYSBjaGFuZ2UgaW4gdGhlIHdpZGdldCBwcm9wZXJ0eSAqL1xuICAgIG9uUHJvcGVydHlDaGFuZ2Uoa2V5LCBudiwgb3YpIHtcbiAgICAgICAgLypNb25pdG9yaW5nIGNoYW5nZXMgZm9yIHN0eWxlcyBvciBwcm9wZXJ0aWVzIGFuZCBhY2NvcmRpbmdseSBoYW5kbGluZyByZXNwZWN0aXZlIGNoYW5nZXMuKi9cbiAgICAgICAgc3dpdGNoIChrZXkpIHtcbiAgICAgICAgICAgIGNhc2UgJ2Rpc3BsYXlmb3JtYXQnOlxuICAgICAgICAgICAgICAgIHRoaXMubWFza1ZhbCA9IHRoaXMuZGlzcGxheWZvcm1hdDtcbiAgICAgICAgICAgICAgICB0aGlzLmNoZWNrRm9yRGlzcGxheUZvcm1hdCgpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSAnc2hvd2Rpc3BsYXlmb3JtYXRvbic6XG4gICAgICAgICAgICAgICAgdGhpcy5sYXp5ID0gbnYgPT09ICdrZXlwcmVzcycgPyB0cnVlIDogZmFsc2U7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgIHN1cGVyLm9uUHJvcGVydHlDaGFuZ2Uoa2V5LCBudiwgb3YpO1xuICAgICAgICB9XG4gICAgfVxuICAgIGdldCBjb21wdXRlZENsYXNzZXMoKSB7XG4gICAgICAgIHJldHVybiB7J3dpdGgtbGVhZGluZy1pY29uJzogdGhpcy5sZWFkaW5naWNvbmNsYXNzLCAnd2l0aC10cmFpbGluZy1pY29uJzogdGhpcy50cmFpbGluZ2ljb25jbGFzcyxcbiAgICAgICAgICAgIC4uLih0eXBlb2YgdGhpcy5jb25kaXRpb25hbGNsYXNzID09PSAnc3RyaW5nJyA/IHsgW3RoaXMuY29uZGl0aW9uYWxjbGFzc106IHRydWUgfSA6IHRoaXMuY29uZGl0aW9uYWxjbGFzcyB8fCB7fSl9O1xuICAgIH1cblxuICAgIGdldCBtYXNrKCkge1xuICAgICAgICBpZiAodGhpcy5kaXNwbGF5Zm9ybWF0ICYmICghdGhpcy5wbGFjZWhvbGRlciB8fCAodGhpcy5wbGFjZWhvbGRlciAmJiB0aGlzLmlzRm9jdXNlZCkpKSB7XG4gICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgIG1hc2s6IHRoaXMubWFza1ZhbCxcbiAgICAgICAgICAgICAgICBsYXp5OiB0aGlzLmxhenksXG4gICAgICAgICAgICAgICAgZGVmaW5pdGlvbnM6IHtcbiAgICAgICAgICAgICAgICAgICAgJzknOiAvXFxkLyxcbiAgICAgICAgICAgICAgICAgICAgJ0EnOiAvW2EtekEtWl0vLFxuICAgICAgICAgICAgICAgICAgICAnYSc6IC9bYS16XS8sXG4gICAgICAgICAgICAgICAgICAgICcqJzogL1xcdy9cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9O1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLy8gc2hvdyBkaXNwbGF5IGZvcm1hdCBvbiBmb2N1cyBvciB3aGVuIGl0IGhhcyBhIGRhdGEgdmFsdWUgcHJlc2VudC4gRWxzZSBzaG93IHRoZSBwbGFjZWhvbGRlclxuICAgIHB1YmxpYyBjaGVja0ZvckRpc3BsYXlGb3JtYXQoJGV2ZW50Pykge1xuICAgICAgICBpZiAodGhpcy5kaXNwbGF5Zm9ybWF0KSB7XG4gICAgICAgICAgICB0aGlzLmlzRm9jdXNlZCA9ICgoJGV2ZW50ICYmICRldmVudC50eXBlID09PSAnZm9jdXMnKSB8fCB0aGlzLmRhdGF2YWx1ZSkgPyB0cnVlIDogZmFsc2U7XG4gICAgICAgICAgICAvLyBEbyBub3Qgc2hvdyBmb3JtYXQgcGxhY2Vob2xkZXIgd2hlbiBubyB2YWx1ZSBpcyBwcmVzZW50IG9uIGJsdXJcbiAgICAgICAgICAgIGlmICghdGhpcy5pc0ZvY3VzZWQgJiYgdGhpcy5pbWFzayAmJiB0aGlzLmltYXNrLm1hc2tSZWYpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmltYXNrLm1hc2tSZWYudXBkYXRlT3B0aW9ucyh7IGxhenk6IHRydWUgfSk7XG4gICAgICAgICAgICAgICAgLy8gb24gYmx1ciwgd2hlbiBubyB2YWx1ZSBpcyBwcmVzZW50IGFzc2lnbiBtYXNrcmVmIHRvIG51bGwsIGFzIGluIHNvbWUgY2FzZXMgKHdoZXJlIGZvcm1hdCBwYWxjZWhvbGRlciBzdGFydHMgd2l0aCBwcmFudGhlc2lzKSB0aGUgZm9ybWF0IHBsYWNlaG9sZGVyIGlzIHN0aWxsIHNob3duLiBXTVMtMjAxMjRcbiAgICAgICAgICAgICAgICBpZiAoIXRoaXMuZGF0YXZhbHVlICYmIHRoaXMuaW1hc2subWFza1JlZi52YWx1ZSkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmltYXNrLm1hc2tSZWYudmFsdWUgPSB0aGlzLmRhdGF2YWx1ZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIC8vIHdoZW4gZGlzcGxheSBmb3JtYXQgaXMgZHluYW1pY2FsbHkgcG9wdWxhdGVkLCBjdXJzb3IgcG9zaXRpb24gaXMgYXQgdGhlIGVuZCBvZiB0aGUgZm9ybWF0LCByZWFkanVzdGluZyB0aGUgY3Vyc29yIHBvc2l0aW9uIGJhc2VkIG9uIG1hc2tlZCBpbnB1dCB2YWx1ZVxuICAgICAgICAgICAgICAgIC8vIEFkZGluZyB0aW1lb3V0LCBhcyB0aGUgYmVsb3cgY29kZSBzaG91bGQgYmUgb24gaG9sZCB1bnRpbCBpbWFzayBtb2RlbCBpcyBnZW5lcmF0ZWRcbiAgICAgICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMuaW1hc2sgJiYgdGhpcy5pbWFzay5tYXNrUmVmICYmIHRoaXMuaW1hc2subWFza1JlZi52YWx1ZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgbWFza1ZhbEluZGV4ID0gdGhpcy5pbWFzay5tYXNrUmVmLnZhbHVlLmluZGV4T2YoJ18nKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGVudGVyZWRNYXNrVmFsID0gbWFza1ZhbEluZGV4ID49IDAgPyB0aGlzLmltYXNrLm1hc2tSZWYudmFsdWUuc2xpY2UoMCwgbWFza1ZhbEluZGV4KS5sZW5ndGggOiB0aGlzLmltYXNrLm1hc2tSZWYudmFsdWUubGVuZ3RoO1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGVudGVyZWRNYXNrVmFsICE9PSB0aGlzLmltYXNrLm1hc2tSZWYuY3Vyc29yUG9zKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5pbWFzay5tYXNrUmVmLnVwZGF0ZUN1cnNvcihlbnRlcmVkTWFza1ZhbCk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9LCA1MCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSBpZiAodGhpcy5pbWFzayAmJiB0aGlzLmltYXNrLm1hc2tSZWYpIHsgLy8gV2hlbiBkaXNwbGF5IGZvcm1hdCBpcyBib3VuZCB2aWEgY29uZGl0aW9uLCByZW1vdmUgdGhlIHBsYWNlaG9sZGVyIHdoZW4gdGhlIGZvcm1hdCBpcyBub3QgYXBwbGljYWJsZVxuICAgICAgICAgICAgdGhpcy5pbWFzay5tYXNrUmVmLnVwZGF0ZU9wdGlvbnMoeyBsYXp5OiB0cnVlIH0pO1xuICAgICAgICAgICAgLy8gd2hlbiBkaXNwbGF5IGZvcm1hdCBpcyByZW1vdmVkIGFzc2lnbiBpbnB1dCB2YWx1ZSB0byB0aGUgZGF0YXZhbHVlIGF0dHIuIFdNUy0yMDEyNFxuICAgICAgICAgICAgdGhpcy5pbnB1dEVsLm5hdGl2ZUVsZW1lbnQudmFsdWUgPSB0aGlzLmRhdGF2YWx1ZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG5nT25Jbml0KCkge1xuICAgICAgICBzdXBlci5uZ09uSW5pdCgpO1xuICAgICAgICB0aGlzLmlzRm9jdXNlZCA9ICEhdGhpcy5kYXRhdmFsdWU7XG4gICAgfVxuXG4gICAgaWNvbkNsaWNrRXZlbnQoJGV2ZW50LCB0eXBlOiBzdHJpbmcpe1xuICAgICAgICB0aGlzLmludm9rZUV2ZW50Q2FsbGJhY2sodHlwZSwgeyAkZXZlbnQgfSlcbiAgICB9XG5cbiAgICBuZ09uRGVzdHJveSgpIHtcbiAgICAgICAgLy8gTUVNT1JZIExFQUsgRklYOiBDbGVhciBhbGwgVmlld0NoaWxkIHJlZmVyZW5jZXNcbiAgICAgICAgdGhpcy5pbnB1dEVsID0gbnVsbDtcbiAgICAgICAgdGhpcy5uZ01vZGVsID0gbnVsbDtcbiAgICAgICAgdGhpcy5pbWFzayA9IG51bGw7XG5cbiAgICAgICAgLy8gQ2FsbCBwYXJlbnQgbmdPbkRlc3Ryb3kgKEJhc2VJbnB1dCDihpIgQmFzZUZvcm1DdXN0b21Db21wb25lbnQg4oaSIFN0eWxhYmxlQ29tcG9uZW50IOKGkiBCYXNlQ29tcG9uZW50KVxuICAgICAgICBzdXBlci5uZ09uRGVzdHJveSgpO1xuICAgIH1cbn1cbiIsIjxidXR0b24gY2xhc3M9XCJidG4tbGVhZGluZy1pY29uXCIgdHlwZT1cImJ1dHRvblwiIG5hbWU9XCJsZWFkaW5nSWNvblwiICpuZ0lmPVwibGVhZGluZ2ljb25jbGFzc1wiIChjbGljayk9XCJpY29uQ2xpY2tFdmVudCgkZXZlbnQsICdsZWFkaW5naWNvbmNsaWNrJylcIj5cbiAgICAgICA8aSBhcmlhLWhpZGRlbj1cInRydWVcIiBbbmdDbGFzc109XCJsZWFkaW5naWNvbmNsYXNzXCI+PC9pPlxuPC9idXR0b24+XG48aW5wdXQgY2xhc3M9XCJmb3JtLWNvbnRyb2wgYXBwLXRleHRib3hcIlxuICAgICAgIGZvY3VzLXRhcmdldFxuICAgICAgIFt0eXBlXT1cInR5cGVcIlxuICAgICAgIFthdHRyLm5hbWVdPVwibmFtZVwiXG4gICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJhcmlhbGFiZWxcIlxuICAgICAgIFsobmdNb2RlbCldPVwiZGF0YXZhbHVlXCJcbiAgICAgICBbaW1hc2tdPVwibWFza1wiXG4gICAgICAgW3VubWFza109XCJ0cnVlXCJcbiAgICAgICBbbmdNb2RlbE9wdGlvbnNdPVwibmdNb2RlbE9wdGlvbnNcIlxuICAgICAgIFtyZWFkb25seV09XCJyZWFkb25seVwiXG4gICAgICAgW3JlcXVpcmVkXT1cInJlcXVpcmVkXCJcbiAgICAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxuICAgICAgIFttYXhsZW5ndGhdPVwibWF4Y2hhcnNcIlxuICAgICAgIFtwYXR0ZXJuXT1cInJlZ2V4cFwiXG4gICAgICAgW2F0dHIudGFiaW5kZXhdPVwidGFiaW5kZXhcIlxuICAgICAgIFthdHRyLnBsYWNlaG9sZGVyXT1cInBsYWNlaG9sZGVyXCJcbiAgICAgICBbYXR0ci5hY2Nlc3NrZXldPVwic2hvcnRjdXRrZXlcIlxuICAgICAgIFthdXRvZm9jdXNdPVwiYXV0b2ZvY3VzXCJcbiAgICAgICBbbmdDbGFzc109XCJjb21wdXRlZENsYXNzZXNcIlxuICAgICAgIFtuZ1N0eWxlXT1cImNvbmRpdGlvbmFsc3R5bGVcIlxuICAgICAgIChuZ01vZGVsQ2hhbmdlKT1cImhhbmRsZUNoYW5nZSgkZXZlbnQpXCJcbiAgICAgICAoYmx1cik9XCJoYW5kbGVCbHVyKCRldmVudCk7IGNoZWNrRm9yRGlzcGxheUZvcm1hdCgkZXZlbnQpXCJcbiAgICAgICAoZm9jdXMpPVwiY2hlY2tGb3JEaXNwbGF5Rm9ybWF0KCRldmVudClcIlxuICAgICAgIFthdXRvY29tcGxldGVdPVwiYXV0b2NvbXBsZXRlID8gJ29uJyA6ICdvZmYnXCJcbiAgICAgICAoa2V5dXAuZW50ZXIpPVwiZmx1c2hWaWV3Q2hhbmdlcyhpbnB1dC52YWx1ZSlcIlxuICAgICAgICNpbnB1dD5cbjxidXR0b24gY2xhc3M9XCJidG4tdHJhaWxpbmctaWNvblwiIHR5cGU9XCJidXR0b25cIiBuYW1lPVwidHJhaWxpbmdJY29uXCIgKm5nSWY9XCJ0cmFpbGluZ2ljb25jbGFzc1wiIChjbGljayk9XCJpY29uQ2xpY2tFdmVudCgkZXZlbnQsICd0cmFpbGluZ2ljb25jbGljaycpXCI+XG4gICAgICAgPGkgYXJpYS1oaWRkZW49XCJ0cnVlXCIgW25nQ2xhc3NdPVwidHJhaWxpbmdpY29uY2xhc3NcIj48L2k+XG48L2J1dHRvbj5cbjxwIGNsYXNzPVwiYXBwLWxhYmVsIGhlbHAtYmxvY2sgc3VwcG9ydGluZy10ZXh0XCIgKm5nSWY9XCJzdXBwb3J0aW5ndGV4dFwiIG5hbWU9XCJzdXBwb3J0aW5nVGV4dFwiPnt7c3VwcG9ydGluZ3RleHR9fTwvcD5cblxuIl19
@@ -956,6 +956,10 @@ class InputTextComponent extends BaseInput {
956
956
  super.onPropertyChange(key, nv, ov);
957
957
  }
958
958
  }
959
+ get computedClasses() {
960
+ return { 'with-leading-icon': this.leadingiconclass, 'with-trailing-icon': this.trailingiconclass,
961
+ ...(typeof this.conditionalclass === 'string' ? { [this.conditionalclass]: true } : this.conditionalclass || {}) };
962
+ }
959
963
  get mask() {
960
964
  if (this.displayformat && (!this.placeholder || (this.placeholder && this.isFocused))) {
961
965
  return {
@@ -1025,7 +1029,7 @@ class InputTextComponent extends BaseInput {
1025
1029
  provideAs(InputTextComponent, NG_VALUE_ACCESSOR, true),
1026
1030
  provideAs(InputTextComponent, NG_VALIDATORS, true),
1027
1031
  provideAsWidgetRef(InputTextComponent)
1028
- ], viewQueries: [{ propertyName: "inputEl", first: true, predicate: ["input"], descendants: true, static: true }, { propertyName: "ngModel", first: true, predicate: NgModel, descendants: true }, { propertyName: "imask", first: true, predicate: ["input"], descendants: true, read: IMaskDirective }], usesInheritance: true, ngImport: i0, template: "<button class=\"btn-leading-icon\" type=\"button\" name=\"leadingIcon\" *ngIf=\"leadingiconclass\" (click)=\"iconClickEvent($event, 'leadingiconclick')\">\n <i aria-hidden=\"true\" [ngClass]=\"leadingiconclass\"></i>\n</button>\n<input class=\"form-control app-textbox\"\n focus-target\n [type]=\"type\"\n [attr.name]=\"name\"\n [attr.aria-label]=\"arialabel\"\n [(ngModel)]=\"datavalue\"\n [imask]=\"mask\"\n [unmask]=\"true\"\n [ngModelOptions]=\"ngModelOptions\"\n [readonly]=\"readonly\"\n [required]=\"required\"\n [disabled]=\"disabled\"\n [maxlength]=\"maxchars\"\n [pattern]=\"regexp\"\n [attr.tabindex]=\"tabindex\"\n [attr.placeholder]=\"placeholder\"\n [attr.accesskey]=\"shortcutkey\"\n [autofocus]=\"autofocus\"\n [ngClass]=\"[leadingiconclass ? 'with-leading-icon' : '', trailingiconclass ? 'with-trailing-icon' : '', conditionalclass || '']\"\n [ngStyle]=\"conditionalstyle\"\n (ngModelChange)=\"handleChange($event)\"\n (blur)=\"handleBlur($event); checkForDisplayFormat($event)\"\n (focus)=\"checkForDisplayFormat($event)\"\n [autocomplete]=\"autocomplete ? 'on' : 'off'\"\n (keyup.enter)=\"flushViewChanges(input.value)\"\n #input>\n<button class=\"btn-trailing-icon\" type=\"button\" name=\"trailingIcon\" *ngIf=\"trailingiconclass\" (click)=\"iconClickEvent($event, 'trailingiconclick')\">\n <i aria-hidden=\"true\" [ngClass]=\"trailingiconclass\"></i>\n</button>\n<p class=\"app-label help-block supporting-text\" *ngIf=\"supportingtext\" name=\"supportingText\">{{supportingtext}}</p>\n\n", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i2.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: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i2.MaxLengthValidator, selector: "[maxlength][formControlName],[maxlength][formControl],[maxlength][ngModel]", inputs: ["maxlength"] }, { kind: "directive", type: i2.PatternValidator, selector: "[pattern][formControlName],[pattern][formControl],[pattern][ngModel]", inputs: ["pattern"] }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: IMaskModule }, { kind: "directive", type: i3.IMaskDirective, selector: "[imask]", inputs: ["imask", "unmask", "imaskElement"], outputs: ["accept", "complete"], exportAs: ["imask"] }] }); }
1032
+ ], viewQueries: [{ propertyName: "inputEl", first: true, predicate: ["input"], descendants: true, static: true }, { propertyName: "ngModel", first: true, predicate: NgModel, descendants: true }, { propertyName: "imask", first: true, predicate: ["input"], descendants: true, read: IMaskDirective }], usesInheritance: true, ngImport: i0, template: "<button class=\"btn-leading-icon\" type=\"button\" name=\"leadingIcon\" *ngIf=\"leadingiconclass\" (click)=\"iconClickEvent($event, 'leadingiconclick')\">\n <i aria-hidden=\"true\" [ngClass]=\"leadingiconclass\"></i>\n</button>\n<input class=\"form-control app-textbox\"\n focus-target\n [type]=\"type\"\n [attr.name]=\"name\"\n [attr.aria-label]=\"arialabel\"\n [(ngModel)]=\"datavalue\"\n [imask]=\"mask\"\n [unmask]=\"true\"\n [ngModelOptions]=\"ngModelOptions\"\n [readonly]=\"readonly\"\n [required]=\"required\"\n [disabled]=\"disabled\"\n [maxlength]=\"maxchars\"\n [pattern]=\"regexp\"\n [attr.tabindex]=\"tabindex\"\n [attr.placeholder]=\"placeholder\"\n [attr.accesskey]=\"shortcutkey\"\n [autofocus]=\"autofocus\"\n [ngClass]=\"computedClasses\"\n [ngStyle]=\"conditionalstyle\"\n (ngModelChange)=\"handleChange($event)\"\n (blur)=\"handleBlur($event); checkForDisplayFormat($event)\"\n (focus)=\"checkForDisplayFormat($event)\"\n [autocomplete]=\"autocomplete ? 'on' : 'off'\"\n (keyup.enter)=\"flushViewChanges(input.value)\"\n #input>\n<button class=\"btn-trailing-icon\" type=\"button\" name=\"trailingIcon\" *ngIf=\"trailingiconclass\" (click)=\"iconClickEvent($event, 'trailingiconclick')\">\n <i aria-hidden=\"true\" [ngClass]=\"trailingiconclass\"></i>\n</button>\n<p class=\"app-label help-block supporting-text\" *ngIf=\"supportingtext\" name=\"supportingText\">{{supportingtext}}</p>\n\n", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i2.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: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i2.MaxLengthValidator, selector: "[maxlength][formControlName],[maxlength][formControl],[maxlength][ngModel]", inputs: ["maxlength"] }, { kind: "directive", type: i2.PatternValidator, selector: "[pattern][formControlName],[pattern][formControl],[pattern][ngModel]", inputs: ["pattern"] }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: IMaskModule }, { kind: "directive", type: i3.IMaskDirective, selector: "[imask]", inputs: ["imask", "unmask", "imaskElement"], outputs: ["accept", "complete"], exportAs: ["imask"] }] }); }
1029
1033
  }
1030
1034
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: InputTextComponent, decorators: [{
1031
1035
  type: Component,
@@ -1033,7 +1037,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
1033
1037
  provideAs(InputTextComponent, NG_VALUE_ACCESSOR, true),
1034
1038
  provideAs(InputTextComponent, NG_VALIDATORS, true),
1035
1039
  provideAsWidgetRef(InputTextComponent)
1036
- ], template: "<button class=\"btn-leading-icon\" type=\"button\" name=\"leadingIcon\" *ngIf=\"leadingiconclass\" (click)=\"iconClickEvent($event, 'leadingiconclick')\">\n <i aria-hidden=\"true\" [ngClass]=\"leadingiconclass\"></i>\n</button>\n<input class=\"form-control app-textbox\"\n focus-target\n [type]=\"type\"\n [attr.name]=\"name\"\n [attr.aria-label]=\"arialabel\"\n [(ngModel)]=\"datavalue\"\n [imask]=\"mask\"\n [unmask]=\"true\"\n [ngModelOptions]=\"ngModelOptions\"\n [readonly]=\"readonly\"\n [required]=\"required\"\n [disabled]=\"disabled\"\n [maxlength]=\"maxchars\"\n [pattern]=\"regexp\"\n [attr.tabindex]=\"tabindex\"\n [attr.placeholder]=\"placeholder\"\n [attr.accesskey]=\"shortcutkey\"\n [autofocus]=\"autofocus\"\n [ngClass]=\"[leadingiconclass ? 'with-leading-icon' : '', trailingiconclass ? 'with-trailing-icon' : '', conditionalclass || '']\"\n [ngStyle]=\"conditionalstyle\"\n (ngModelChange)=\"handleChange($event)\"\n (blur)=\"handleBlur($event); checkForDisplayFormat($event)\"\n (focus)=\"checkForDisplayFormat($event)\"\n [autocomplete]=\"autocomplete ? 'on' : 'off'\"\n (keyup.enter)=\"flushViewChanges(input.value)\"\n #input>\n<button class=\"btn-trailing-icon\" type=\"button\" name=\"trailingIcon\" *ngIf=\"trailingiconclass\" (click)=\"iconClickEvent($event, 'trailingiconclick')\">\n <i aria-hidden=\"true\" [ngClass]=\"trailingiconclass\"></i>\n</button>\n<p class=\"app-label help-block supporting-text\" *ngIf=\"supportingtext\" name=\"supportingText\">{{supportingtext}}</p>\n\n" }]
1040
+ ], template: "<button class=\"btn-leading-icon\" type=\"button\" name=\"leadingIcon\" *ngIf=\"leadingiconclass\" (click)=\"iconClickEvent($event, 'leadingiconclick')\">\n <i aria-hidden=\"true\" [ngClass]=\"leadingiconclass\"></i>\n</button>\n<input class=\"form-control app-textbox\"\n focus-target\n [type]=\"type\"\n [attr.name]=\"name\"\n [attr.aria-label]=\"arialabel\"\n [(ngModel)]=\"datavalue\"\n [imask]=\"mask\"\n [unmask]=\"true\"\n [ngModelOptions]=\"ngModelOptions\"\n [readonly]=\"readonly\"\n [required]=\"required\"\n [disabled]=\"disabled\"\n [maxlength]=\"maxchars\"\n [pattern]=\"regexp\"\n [attr.tabindex]=\"tabindex\"\n [attr.placeholder]=\"placeholder\"\n [attr.accesskey]=\"shortcutkey\"\n [autofocus]=\"autofocus\"\n [ngClass]=\"computedClasses\"\n [ngStyle]=\"conditionalstyle\"\n (ngModelChange)=\"handleChange($event)\"\n (blur)=\"handleBlur($event); checkForDisplayFormat($event)\"\n (focus)=\"checkForDisplayFormat($event)\"\n [autocomplete]=\"autocomplete ? 'on' : 'off'\"\n (keyup.enter)=\"flushViewChanges(input.value)\"\n #input>\n<button class=\"btn-trailing-icon\" type=\"button\" name=\"trailingIcon\" *ngIf=\"trailingiconclass\" (click)=\"iconClickEvent($event, 'trailingiconclick')\">\n <i aria-hidden=\"true\" [ngClass]=\"trailingiconclass\"></i>\n</button>\n<p class=\"app-label help-block supporting-text\" *ngIf=\"supportingtext\" name=\"supportingText\">{{supportingtext}}</p>\n\n" }]
1037
1041
  }], ctorParameters: () => [{ type: i0.Injector }, { type: undefined, decorators: [{
1038
1042
  type: Inject,
1039
1043
  args: ['EXPLICIT_CONTEXT']