@carefirst/library 3.1.4 → 3.2.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -28,6 +28,7 @@ export class FormInputComponent {
28
28
  textCenter;
29
29
  maxLength;
30
30
  greyBackground;
31
+ customErrorMessage = null;
31
32
  value;
32
33
  valueChange = new EventEmitter();
33
34
  inputLabelPlacement;
@@ -64,11 +65,11 @@ export class FormInputComponent {
64
65
  this.inputType = this.inputType === 'password' ? 'text' : 'password';
65
66
  }
66
67
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.8", ngImport: i0, type: FormInputComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
67
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.8", type: FormInputComponent, selector: "cf-form-input", inputs: { label: "label", min: "min", max: "max", labelPlacement: "labelPlacement", placeholder: "placeholder", inputmode: "inputmode", autoCapitalize: "autoCapitalize", type: "type", noClearButton: "noClearButton", control: "control", textCenter: "textCenter", maxLength: "maxLength", greyBackground: "greyBackground", value: "value" }, outputs: { valueChange: "valueChange" }, usesOnChanges: true, ngImport: i0, template: "<!-- ngModel -->\n<ion-input\n #normalInput\n *ngIf=\"!control\"\n [ngClass]=\"{ 'text-center': inputTextCenter, 'grey-background': inputGreyBackground }\"\n [label]=\"label\"\n [labelPlacement]=\"inputLabelPlacement\"\n [placeholder]=\"placeholder\"\n fill=\"outline\"\n [clearInput]=\"type === 'password' ? false : !inputClear\"\n [autocapitalize]=\"autoCapitalize\"\n mode=\"md\"\n [inputmode]=\"localInputMode\"\n [min]=\"min\"\n [max]=\"max\"\n [maxlength]=\"maxLength || null\"\n [type]=\"inputType\"\n (ionInput)=\"valueChange.emit($event.detail.value ?? undefined)\"\n [value]=\"value\">\n <cf-icon\n slot=\"end\"\n style=\"cursor: pointer\"\n *ngIf=\"normalInput.value && type === 'password'\"\n [icon]=\"showPassword ? 'hide-password' : 'show-password'\"\n [height]=\"24\"\n (click)=\"togglePasswordShow()\"></cf-icon\n></ion-input>\n<!-- Form Control -->\n<ion-input\n #formControlInput\n *ngIf=\"control\"\n [ngClass]=\"{ 'text-center': inputTextCenter, 'grey-background': inputGreyBackground }\"\n [label]=\"label\"\n [labelPlacement]=\"inputLabelPlacement\"\n [placeholder]=\"placeholder\"\n fill=\"outline\"\n [clearInput]=\"type === 'password' ? false : !inputClear\"\n [autocapitalize]=\"autoCapitalize\"\n mode=\"md\"\n [inputmode]=\"localInputMode\"\n [formControl]=\"control\"\n [min]=\"min\"\n [max]=\"max\"\n [maxlength]=\"maxLength || null\"\n [type]=\"inputType\"\n (ionInput)=\"valueChange.emit($event.detail.value ?? undefined)\">\n <cf-icon\n slot=\"end\"\n style=\"cursor: pointer\"\n *ngIf=\"formControlInput.value && type === 'password'\"\n [icon]=\"showPassword ? 'hide-password' : 'show-password'\"\n [height]=\"24\"\n (click)=\"togglePasswordShow()\"></cf-icon>\n</ion-input>\n<cf-form-validation *ngIf=\"control\" [control]=\"control\"></cf-form-validation>\n", styles: ["ion-input{font-family:Roboto,sans-serif;font-weight:400;font-style:normal;font-size:1.6rem;color:var(--cf-app-text-color-default);text-align:start;--border-radius: 8px !important;--highlight-color-focused: var(--cf-app-color-primary);--highlight-color-invalid: var(--cf-app-system-color-error);--highlight-color-valid: var(--cf-app-color-primary)}ion-input.text-center{text-align:center}ion-input.grey-background{--background: var(--cf-app-system-color-outline)}\n"], dependencies: [{ kind: "component", type: i1.IonInput, selector: "ion-input", inputs: ["autocapitalize", "autocomplete", "autocorrect", "autofocus", "clearInput", "clearInputIcon", "clearOnEdit", "color", "counter", "counterFormatter", "debounce", "disabled", "enterkeyhint", "errorText", "fill", "helperText", "inputmode", "label", "labelPlacement", "max", "maxlength", "min", "minlength", "mode", "multiple", "name", "pattern", "placeholder", "readonly", "required", "shape", "spellcheck", "step", "type", "value"] }, { kind: "directive", type: i1.TextValueAccessor, selector: "ion-input:not([type=number]),ion-textarea,ion-searchbar" }, { kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.MaxLengthValidator, selector: "[maxlength][formControlName],[maxlength][formControl],[maxlength][ngModel]", inputs: ["maxlength"] }, { kind: "directive", type: i3.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "component", type: i4.IconComponent, selector: "cf-icon", inputs: ["icon", "height", "heightMobile", "heightDesktop", "iconColor"] }, { kind: "component", type: i5.FormValidationComponent, selector: "cf-form-validation", inputs: ["control"] }] });
68
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.8", type: FormInputComponent, selector: "cf-form-input", inputs: { label: "label", min: "min", max: "max", labelPlacement: "labelPlacement", placeholder: "placeholder", inputmode: "inputmode", autoCapitalize: "autoCapitalize", type: "type", noClearButton: "noClearButton", control: "control", textCenter: "textCenter", maxLength: "maxLength", greyBackground: "greyBackground", customErrorMessage: "customErrorMessage", value: "value" }, outputs: { valueChange: "valueChange" }, usesOnChanges: true, ngImport: i0, template: "<!-- ngModel -->\n<ion-input\n #normalInput\n *ngIf=\"!control\"\n [ngClass]=\"{ 'text-center': inputTextCenter, 'grey-background': inputGreyBackground, error: !!customErrorMessage }\"\n [label]=\"label\"\n [labelPlacement]=\"inputLabelPlacement\"\n [placeholder]=\"placeholder\"\n fill=\"outline\"\n [clearInput]=\"type === 'password' ? false : !inputClear\"\n [autocapitalize]=\"autoCapitalize\"\n mode=\"md\"\n [inputmode]=\"localInputMode\"\n [min]=\"min\"\n [max]=\"max\"\n [maxlength]=\"maxLength || null\"\n [type]=\"inputType\"\n (ionInput)=\"valueChange.emit($event.detail.value ?? undefined)\"\n [value]=\"value\">\n <cf-icon\n slot=\"end\"\n style=\"cursor: pointer\"\n *ngIf=\"normalInput.value && type === 'password'\"\n [icon]=\"showPassword ? 'hide-password' : 'show-password'\"\n [height]=\"24\"\n (click)=\"togglePasswordShow()\"></cf-icon\n></ion-input>\n<!-- Form Control -->\n<ion-input\n #formControlInput\n *ngIf=\"control\"\n [ngClass]=\"{ 'text-center': inputTextCenter, 'grey-background': inputGreyBackground, error: !!customErrorMessage }\"\n [label]=\"label\"\n [labelPlacement]=\"inputLabelPlacement\"\n [placeholder]=\"placeholder\"\n fill=\"outline\"\n [clearInput]=\"type === 'password' ? false : !inputClear\"\n [autocapitalize]=\"autoCapitalize\"\n mode=\"md\"\n [inputmode]=\"localInputMode\"\n [formControl]=\"control\"\n [min]=\"min\"\n [max]=\"max\"\n [maxlength]=\"maxLength || null\"\n [type]=\"inputType\"\n (ionInput)=\"valueChange.emit($event.detail.value ?? undefined)\">\n <cf-icon\n slot=\"end\"\n style=\"cursor: pointer\"\n *ngIf=\"formControlInput.value && type === 'password'\"\n [icon]=\"showPassword ? 'hide-password' : 'show-password'\"\n [height]=\"24\"\n (click)=\"togglePasswordShow()\"></cf-icon>\n</ion-input>\n<cf-form-validation *ngIf=\"control || customErrorMessage\" [customErrorMessage]=\"customErrorMessage\" [control]=\"control || null\"></cf-form-validation>\n", styles: ["::ng-deep ion-input.error .label-text{color:var(--cf-app-system-color-error)}ion-input{font-family:Roboto,sans-serif;font-weight:400;font-style:normal;font-size:1.6rem;color:var(--cf-app-text-color-default);text-align:start;--border-radius: 8px !important;--highlight-color-focused: var(--cf-app-color-primary);--highlight-color-invalid: var(--cf-app-system-color-error);--highlight-color-valid: var(--cf-app-color-primary)}ion-input.text-center{text-align:center}ion-input.grey-background{--background: var(--cf-app-system-color-outline)}ion-input.error{--border-color: var(--cf-app-system-color-error);--highlight-color-focused: var(--cf-app-system-color-error);--highlight-color-valid: var(--cf-app-system-color-error)}\n"], dependencies: [{ kind: "component", type: i1.IonInput, selector: "ion-input", inputs: ["autocapitalize", "autocomplete", "autocorrect", "autofocus", "clearInput", "clearInputIcon", "clearOnEdit", "color", "counter", "counterFormatter", "debounce", "disabled", "enterkeyhint", "errorText", "fill", "helperText", "inputmode", "label", "labelPlacement", "max", "maxlength", "min", "minlength", "mode", "multiple", "name", "pattern", "placeholder", "readonly", "required", "shape", "spellcheck", "step", "type", "value"] }, { kind: "directive", type: i1.TextValueAccessor, selector: "ion-input:not([type=number]),ion-textarea,ion-searchbar" }, { kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.MaxLengthValidator, selector: "[maxlength][formControlName],[maxlength][formControl],[maxlength][ngModel]", inputs: ["maxlength"] }, { kind: "directive", type: i3.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "component", type: i4.IconComponent, selector: "cf-icon", inputs: ["icon", "height", "heightMobile", "heightDesktop", "iconColor"] }, { kind: "component", type: i5.FormValidationComponent, selector: "cf-form-validation", inputs: ["control", "customErrorMessage"] }] });
68
69
  }
69
70
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.8", ngImport: i0, type: FormInputComponent, decorators: [{
70
71
  type: Component,
71
- args: [{ selector: 'cf-form-input', template: "<!-- ngModel -->\n<ion-input\n #normalInput\n *ngIf=\"!control\"\n [ngClass]=\"{ 'text-center': inputTextCenter, 'grey-background': inputGreyBackground }\"\n [label]=\"label\"\n [labelPlacement]=\"inputLabelPlacement\"\n [placeholder]=\"placeholder\"\n fill=\"outline\"\n [clearInput]=\"type === 'password' ? false : !inputClear\"\n [autocapitalize]=\"autoCapitalize\"\n mode=\"md\"\n [inputmode]=\"localInputMode\"\n [min]=\"min\"\n [max]=\"max\"\n [maxlength]=\"maxLength || null\"\n [type]=\"inputType\"\n (ionInput)=\"valueChange.emit($event.detail.value ?? undefined)\"\n [value]=\"value\">\n <cf-icon\n slot=\"end\"\n style=\"cursor: pointer\"\n *ngIf=\"normalInput.value && type === 'password'\"\n [icon]=\"showPassword ? 'hide-password' : 'show-password'\"\n [height]=\"24\"\n (click)=\"togglePasswordShow()\"></cf-icon\n></ion-input>\n<!-- Form Control -->\n<ion-input\n #formControlInput\n *ngIf=\"control\"\n [ngClass]=\"{ 'text-center': inputTextCenter, 'grey-background': inputGreyBackground }\"\n [label]=\"label\"\n [labelPlacement]=\"inputLabelPlacement\"\n [placeholder]=\"placeholder\"\n fill=\"outline\"\n [clearInput]=\"type === 'password' ? false : !inputClear\"\n [autocapitalize]=\"autoCapitalize\"\n mode=\"md\"\n [inputmode]=\"localInputMode\"\n [formControl]=\"control\"\n [min]=\"min\"\n [max]=\"max\"\n [maxlength]=\"maxLength || null\"\n [type]=\"inputType\"\n (ionInput)=\"valueChange.emit($event.detail.value ?? undefined)\">\n <cf-icon\n slot=\"end\"\n style=\"cursor: pointer\"\n *ngIf=\"formControlInput.value && type === 'password'\"\n [icon]=\"showPassword ? 'hide-password' : 'show-password'\"\n [height]=\"24\"\n (click)=\"togglePasswordShow()\"></cf-icon>\n</ion-input>\n<cf-form-validation *ngIf=\"control\" [control]=\"control\"></cf-form-validation>\n", styles: ["ion-input{font-family:Roboto,sans-serif;font-weight:400;font-style:normal;font-size:1.6rem;color:var(--cf-app-text-color-default);text-align:start;--border-radius: 8px !important;--highlight-color-focused: var(--cf-app-color-primary);--highlight-color-invalid: var(--cf-app-system-color-error);--highlight-color-valid: var(--cf-app-color-primary)}ion-input.text-center{text-align:center}ion-input.grey-background{--background: var(--cf-app-system-color-outline)}\n"] }]
72
+ args: [{ selector: 'cf-form-input', template: "<!-- ngModel -->\n<ion-input\n #normalInput\n *ngIf=\"!control\"\n [ngClass]=\"{ 'text-center': inputTextCenter, 'grey-background': inputGreyBackground, error: !!customErrorMessage }\"\n [label]=\"label\"\n [labelPlacement]=\"inputLabelPlacement\"\n [placeholder]=\"placeholder\"\n fill=\"outline\"\n [clearInput]=\"type === 'password' ? false : !inputClear\"\n [autocapitalize]=\"autoCapitalize\"\n mode=\"md\"\n [inputmode]=\"localInputMode\"\n [min]=\"min\"\n [max]=\"max\"\n [maxlength]=\"maxLength || null\"\n [type]=\"inputType\"\n (ionInput)=\"valueChange.emit($event.detail.value ?? undefined)\"\n [value]=\"value\">\n <cf-icon\n slot=\"end\"\n style=\"cursor: pointer\"\n *ngIf=\"normalInput.value && type === 'password'\"\n [icon]=\"showPassword ? 'hide-password' : 'show-password'\"\n [height]=\"24\"\n (click)=\"togglePasswordShow()\"></cf-icon\n></ion-input>\n<!-- Form Control -->\n<ion-input\n #formControlInput\n *ngIf=\"control\"\n [ngClass]=\"{ 'text-center': inputTextCenter, 'grey-background': inputGreyBackground, error: !!customErrorMessage }\"\n [label]=\"label\"\n [labelPlacement]=\"inputLabelPlacement\"\n [placeholder]=\"placeholder\"\n fill=\"outline\"\n [clearInput]=\"type === 'password' ? false : !inputClear\"\n [autocapitalize]=\"autoCapitalize\"\n mode=\"md\"\n [inputmode]=\"localInputMode\"\n [formControl]=\"control\"\n [min]=\"min\"\n [max]=\"max\"\n [maxlength]=\"maxLength || null\"\n [type]=\"inputType\"\n (ionInput)=\"valueChange.emit($event.detail.value ?? undefined)\">\n <cf-icon\n slot=\"end\"\n style=\"cursor: pointer\"\n *ngIf=\"formControlInput.value && type === 'password'\"\n [icon]=\"showPassword ? 'hide-password' : 'show-password'\"\n [height]=\"24\"\n (click)=\"togglePasswordShow()\"></cf-icon>\n</ion-input>\n<cf-form-validation *ngIf=\"control || customErrorMessage\" [customErrorMessage]=\"customErrorMessage\" [control]=\"control || null\"></cf-form-validation>\n", styles: ["::ng-deep ion-input.error .label-text{color:var(--cf-app-system-color-error)}ion-input{font-family:Roboto,sans-serif;font-weight:400;font-style:normal;font-size:1.6rem;color:var(--cf-app-text-color-default);text-align:start;--border-radius: 8px !important;--highlight-color-focused: var(--cf-app-color-primary);--highlight-color-invalid: var(--cf-app-system-color-error);--highlight-color-valid: var(--cf-app-color-primary)}ion-input.text-center{text-align:center}ion-input.grey-background{--background: var(--cf-app-system-color-outline)}ion-input.error{--border-color: var(--cf-app-system-color-error);--highlight-color-focused: var(--cf-app-system-color-error);--highlight-color-valid: var(--cf-app-system-color-error)}\n"] }]
72
73
  }], propDecorators: { label: [{
73
74
  type: Input
74
75
  }], min: [{
@@ -95,9 +96,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.8", ngImpor
95
96
  type: Input
96
97
  }], greyBackground: [{
97
98
  type: Input
99
+ }], customErrorMessage: [{
100
+ type: Input
98
101
  }], value: [{
99
102
  type: Input
100
103
  }], valueChange: [{
101
104
  type: Output
102
105
  }] } });
103
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1pbnB1dC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jYXJlZmlyc3QvbGlicmFyeS9zcmMvbGliL2NvbXBvbmVudHMvZm9ybS1pbnB1dC9mb3JtLWlucHV0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NhcmVmaXJzdC9saWJyYXJ5L3NyYy9saWIvY29tcG9uZW50cy9mb3JtLWlucHV0L2Zvcm0taW5wdXQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBd0JBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBc0MsWUFBWSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNHLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUU3QyxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUN0RixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQzs7Ozs7OztBQU14RSxNQUFNLE9BQU8sR0FBRztJQUNkLGNBQWMsRUFBRSxDQUFDLE9BQU8sRUFBRSxVQUFVLEVBQUUsU0FBUyxFQUFFLE9BQU8sRUFBRSxLQUFLLENBQUM7SUFDaEUsU0FBUyxFQUFFLENBQUMsTUFBTSxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsUUFBUSxDQUFDO0lBQzFFLGNBQWMsRUFBRSxDQUFDLEtBQUssRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFLFdBQVcsRUFBRSxPQUFPLEVBQUUsWUFBWSxDQUFDO0lBQ3pFLElBQUksRUFBRSxDQUFDLE1BQU0sRUFBRSxnQkFBZ0IsRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLFFBQVEsRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRSxNQUFN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QyxPQUFPLEVBQUUsYUFBYSxDQUFDLGlCQUFpQixDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLElBQUksSUFBSSxFQUFFLElBQUksQ0FBQyxnQkFBZ0IsSUFBSSxJQUFJLENBQUMsQ0FBQyxDQUFDO1lBQzNILENBQUM7UUFDSCxDQUFDO0lBQ0gsQ0FBQztJQU9ELGtCQUFrQjtRQUNoQixJQUFJLENBQUMsWUFBWSxHQUFHLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQztRQUN2QyxJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxTQUFTLEtBQUssVUFBVSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQztJQUN2RSxDQUFDO3VHQXRGVSxrQkFBa0I7MkZBQWxCLGtCQUFrQixxY0M5Qy9CLDIwREF1REE7OzJGRFRhLGtCQUFrQjtrQkFMOUIsU0FBUzsrQkFDRSxlQUFlOzhCQUtoQixLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csR0FBRztzQkFBWCxLQUFLO2dCQUNHLEdBQUc7c0JBQVgsS0FBSztnQkFDRyxjQUFjO3NCQUF0QixLQUFLO2dCQUNHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSztnQkFDRyxjQUFjO3NCQUF0QixLQUFLO2dCQUNHLElBQUk7c0JBQVosS0FBSztnQkFDRyxhQUFhO3NCQUFyQixLQUFLO2dCQUNHLE9BQU87c0JBQWYsS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLO2dCQUNHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ0csY0FBYztzQkFBdEIsS0FBSztnQkFHRyxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0ksV0FBVztzQkFBcEIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQ2FyZWZpcnN0IExpYnJhcnkgRm9ybSBJbnB1dFxuICpcbiAqIEBmaWxlICAgICAgICAgIGZvcm0taW5wdXQuY29tcG9uZW50XG4gKiBAZGVzY3JpcHRpb24gICBDb250YWlucyBhbGwgdGhlIGxvZ2ljIGZvciBnZW5lcmF0aW5nIGEgQ2FyZUZpcnN0IEZvcm0gSW5wdXQgRmllbGRcbiAqIEBhdXRob3IgICAgICAgIEFybm8gSmFuc2VuIHZhbiBWdXVyZW5cbiAqIEBzaW5jZSAgICAgICAgIDIwMjMgLSAxMiAtIDE0XG4gKiBAdXNhZ2UgICAgICAgICA8Y2YtZm9ybS1pbnB1dFxuICogICAgICAgICAgICAgICAgICBsYWJlbD1cIkxhYmVsIE5hbWVcIlxuICogICAgICAgICAgICAgICAgICAlbGFiZWxQbGFjZW1lbnQlXG4gKiAgICAgICAgICAgICAgICAgICVpbnB1dE1vZGUlXG4gKiAgICAgICAgICAgICAgICAgICVub0NsZWFyQnV0dG9uJVxuICogICAgICAgICAgICAgICAgICAldGV4dENlbnRlciVcbiAqICAgICAgICAgICAgICAgICAgJW1pbiVcbiAqICAgICAgICAgICAgICAgICAgJW1heCVcbiAqICAgICAgICAgICAgICAgICAgJWF1dG9DYXBpdGFsaXplJVxuICogICAgICAgICAgICAgICAgICAldHlwZSVcbiAqICAgICAgICAgICAgICAgICAgJVsodmFsdWUpXT1cInR3b1dheUNvbXNcIiVcbiAqICAgICAgICAgICAgICAgICAgJSh2YWx1ZUNoYW5nZSk9XCJjdXJyZW50VmFsdWVFdmVudFwiJVxuICogICAgICAgICAgICAgICAgICAlW2NvbnRyb2xdJT1cImZvcm1OYW1lLmNvbnRyb2xzLmNvbnRyb2xOYW1lXCJcbiAqICAgICAgICAgICAgICAgID48L2NmLWZvcm0taW5wdXQ+XG4gKiAgICAgICAgICAgICAgICBkaXNhYmxlIGlucHV0IGJ5IGRpc2FibGluZyB0aGUgZm9ybSBjb250cm9sXG4gKi9cblxuaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCwgT3V0cHV0LCB0eXBlIE9uQ2hhbmdlcywgdHlwZSBTaW1wbGVDaGFuZ2VzLCBFdmVudEVtaXR0ZXIgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZvcm1Db250cm9sIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuLy8tLS0gVXRpbHNcbmltcG9ydCB7IGNoZWNrVHJ1dGhBdHRyaWJ1dGUsIHZhbGlkYXRlU3RyaW5nVmFsdWUgfSBmcm9tICcuLi8uLi91dGlscy9hdHRyaWJ1dGUudXRpbCc7XG5pbXBvcnQgeyBDRlBGb3JtVmFsaWRhdG9ycyB9IGZyb20gJy4uLy4uL3V0aWxzL2Zvcm0tdmFsaWRhdG9ycy11dGlsaXR5JztcblxuLyoqPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICogQGludGVyZmFjZSAgICAgaW5wdXRzQ1xuICogQGRlc2NyaXB0aW9uICAgRGVmaW5lIGF2YWlsYWJsZSBpbnB1dCB2YWx1ZXNcbiAqL1xuY29uc3QgaW5wdXRzQyA9IHtcbiAgbGFiZWxQbGFjZW1lbnQ6IFsnZml4ZWQnLCAnZmxvYXRpbmcnLCAnc3RhY2tlZCcsICdzdGFydCcsICdlbmQnXSxcbiAgaW5wdXRNb2RlOiBbJ3RleHQnLCAnZW1haWwnLCAnbnVtZXJpYycsICd0ZWwnLCAnZGVjaW1hbCcsICd1cmwnLCAnc2VhcmNoJ10sXG4gIGF1dG9DYXBpdGFsaXplOiBbJ29mZicsICdub25lJywgJ29uJywgJ3NlbnRlbmNlcycsICd3b3JkcycsICdjaGFyYWN0ZXJzJ10sXG4gIHR5cGU6IFsnZGF0ZScsICdkYXRldGltZS1sb2NhbCcsICdlbWFpbCcsICdtb250aCcsICdudW1iZXInLCAncGFzc3dvcmQnLCAnc2VhcmNoJywgJ3RlbCcsICd0ZXh0JywgJ3RpbWUnLCAndXJsJywgJ3dlZWsnXSxcbn0gYXMgY29uc3Q7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2NmLWZvcm0taW5wdXQnLFxuICB0ZW1wbGF0ZVVybDogJy4vZm9ybS1pbnB1dC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsOiAnLi9mb3JtLWlucHV0LmNvbXBvbmVudC5zY3NzJyxcbn0pXG5leHBvcnQgY2xhc3MgRm9ybUlucHV0Q29tcG9uZW50IGltcGxlbWVudHMgT25DaGFuZ2VzIHtcbiAgQElucHV0KCkgbGFiZWwhOiBzdHJpbmc7XG4gIEBJbnB1dCgpIG1pbjogc3RyaW5nIHwgbnVtYmVyIHwgdW5kZWZpbmVkO1xuICBASW5wdXQoKSBtYXg6IHN0cmluZyB8IG51bWJlciB8IHVuZGVmaW5lZDtcbiAgQElucHV0KCkgbGFiZWxQbGFjZW1lbnQ/OiAodHlwZW9mIGlucHV0c0MubGFiZWxQbGFjZW1lbnQpW251bWJlcl07XG4gIEBJbnB1dCgpIHBsYWNlaG9sZGVyPzogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICBASW5wdXQoKSBpbnB1dG1vZGU/OiAodHlwZW9mIGlucHV0c0MuaW5wdXRNb2RlKVtudW1iZXJdO1xuICBASW5wdXQoKSBhdXRvQ2FwaXRhbGl6ZT86ICh0eXBlb2YgaW5wdXRzQy5hdXRvQ2FwaXRhbGl6ZSlbbnVtYmVyXTtcbiAgQElucHV0KCkgdHlwZT86ICh0eXBlb2YgaW5wdXRzQy50eXBlKVtudW1iZXJdO1xuICBASW5wdXQoKSBub0NsZWFyQnV0dG9uPzogYm9vbGVhbiB8IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgQElucHV0KCkgY29udHJvbD86IEZvcm1Db250cm9sIHwgbnVsbDtcbiAgQElucHV0KCkgdGV4dENlbnRlcj86IGJvb2xlYW4gfCBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gIEBJbnB1dCgpIG1heExlbmd0aD86IG51bWJlciB8IHN0cmluZztcbiAgQElucHV0KCkgZ3JleUJhY2tncm91bmQ/OiBib29sZWFuIHwgc3RyaW5nIHwgdW5kZWZpbmVkO1xuXG4gIC8vLS0tIG5nTW9kZWxcbiAgQElucHV0KCkgdmFsdWU6IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgQE91dHB1dCgpIHZhbHVlQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjx0eXBlb2YgdGhpcy52YWx1ZT4oKTtcblxuICAvLy0tLSBMb2NhbCB2YXJpYWJsZXNcbiAgaW5wdXRMYWJlbFBsYWNlbWVudDogdHlwZW9mIHRoaXMubGFiZWxQbGFjZW1lbnQ7XG4gIGxvY2FsSW5wdXRNb2RlOiB0eXBlb2YgdGhpcy5pbnB1dG1vZGU7XG4gIGlucHV0Q2xlYXIgPSBmYWxzZTtcbiAgaW5wdXRUZXh0Q2VudGVyID0gZmFsc2U7XG4gIGlucHV0VHlwZTogdHlwZW9mIHRoaXMudHlwZTtcbiAgaW5wdXRBdXRvQ2FwaXRhbGl6ZTogdHlwZW9mIHRoaXMuYXV0b0NhcGl0YWxpemU7XG4gIGlucHV0R3JleUJhY2tncm91bmQgPSBmYWxzZTtcbiAgc2hvd1Bhc3N3b3JkID0gZmFsc2U7XG4gIGRhdGVWYWxpZGF0b3JNaW46IHN0cmluZyB8IG51bGwgPSBudWxsO1xuICBkYXRlVmFsaWRhdG9yTWF4OiBzdHJpbmcgfCBudWxsID0gbnVsbDtcblxuICAvKiotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAqIEBuYW1lICAgICAgICAgIG5nT25DaGFuZ2VzXG4gICAqIEBkZXNjcmlwdGlvbiAgIERldGVjdCBjaGFuZ2VzIHRvIGlucHV0IHZhbHVlc1xuICAgKiBAcGFyYW0gICAgICAgICB7U2ltcGxlQ2hhbmdlc30gY2hhbmdlc1xuICAgKi9cbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuICAgIC8vLS0tIExhYmVsIFBsYWNlbWVudFxuICAgIHRoaXMuaW5wdXRMYWJlbFBsYWNlbWVudCA9XG4gICAgICB2YWxpZGF0ZVN0cmluZ1ZhbHVlPCh0eXBlb2YgaW5wdXRzQy5sYWJlbFBsYWNlbWVudClbbnVtYmVyXT4oXG4gICAgICAgIGNoYW5nZXMsXG4gICAgICAgICdsYWJlbFBsYWNlbWVudCcsXG4gICAgICAgIGlucHV0c0MubGFiZWxQbGFjZW1lbnQuc2xpY2UoKSxcbiAgICAgICAgdGhpcy5pbnB1dExhYmVsUGxhY2VtZW50XG4gICAgICApIHx8ICdmbG9hdGluZyc7XG4gICAgLy8tLS0gSW5wdXQgVHlwZSAoa2V5Ym9hcmQpXG4gICAgdGhpcy5sb2NhbElucHV0TW9kZSA9XG4gICAgICB2YWxpZGF0ZVN0cmluZ1ZhbHVlPCh0eXBlb2YgaW5wdXRzQy5pbnB1dE1vZGUpW251bWJlcl0+KGNoYW5nZXMsICdpbnB1dG1vZGUnLCBpbnB1dHNDLmlucHV0TW9kZS5zbGljZSgpLCB0aGlzLmxvY2FsSW5wdXRNb2RlKSB8fCAndGV4dCc7XG4gICAgLy8tLS0gQ2xlYXIgQnV0dG9uXG4gICAgdGhpcy5pbnB1dENsZWFyID0gY2hlY2tUcnV0aEF0dHJpYnV0ZShjaGFuZ2VzLCAnbm9DbGVhckJ1dHRvbicsIHRoaXMuaW5wdXRDbGVhcik7XG4gICAgLy8tLS0gVGV4dCBDZW50ZXJcbiAgICB0aGlzLmlucHV0VGV4dENlbnRlciA9IGNoZWNrVHJ1dGhBdHRyaWJ1dGUoY2hhbmdlcywgJ3RleHRDZW50ZXInLCB0aGlzLmlucHV0VGV4dENlbnRlcik7XG4gICAgLy8tLS0gVHlwZVxuICAgIHRoaXMuaW5wdXRUeXBlID0gdmFsaWRhdGVTdHJpbmdWYWx1ZTwodHlwZW9mIGlucHV0c0MudHlwZSlbbnVtYmVyXT4oY2hhbmdlcywgJ3R5cGUnLCBpbnB1dHNDLnR5cGUuc2xpY2UoKSwgdGhpcy5pbnB1dFR5cGUpIHx8ICd0ZXh0JztcbiAgICAvLy0tLSBBdXRvIENhcGl0YWxpemVcbiAgICB0aGlzLmlucHV0QXV0b0NhcGl0YWxpemUgPVxuICAgICAgdmFsaWRhdGVTdHJpbmdWYWx1ZTwodHlwZW9mIGlucHV0c0MuYXV0b0NhcGl0YWxpemUpW251bWJlcl0+KFxuICAgICAgICBjaGFuZ2VzLFxuICAgICAgICAnYXV0b0NhcGl0YWxpemUnLFxuICAgICAgICBpbnB1dHNDLmF1dG9DYXBpdGFsaXplLnNsaWNlKCksXG4gICAgICAgIHRoaXMuaW5wdXRBdXRvQ2FwaXRhbGl6ZVxuICAgICAgKSB8fCAnbm9uZSc7XG4gICAgLy8tLS0gR3JleSBCYWNrZ3JvdW5kXG4gICAgdGhpcy5pbnB1dEdyZXlCYWNrZ3JvdW5kID0gY2hlY2tUcnV0aEF0dHJpYnV0ZShjaGFuZ2VzLCAnZ3JleUJhY2tncm91bmQnLCB0aGlzLmlucHV0R3JleUJhY2tncm91bmQpO1xuXG4gICAgLy8tLS08PiBhZGRpbmcgbXVsdGlwbGUgdmFsaWRhdG9yc1xuICAgIC8vLS0tIEF1dG9tYXRpY2FsbHkgYWRkIGlzVmFsaWREYXRlIHZhbGlkYXRvciB3aGVuIGlucHV0IGlzIGEgZGF0ZSB0eXBlIGFuZCBoYXMgZWl0aGVyIGEgbWluIG9yIGEgbWF4IHZhbHVlXG4gICAgaWYgKHRoaXMuaW5wdXRUeXBlID09PSAnZGF0ZScpIHtcbiAgICAgIGlmIChjaGFuZ2VzWydtaW4nXT8uY3VycmVudFZhbHVlIHx8IGNoYW5nZXNbJ21heCddPy5jdXJyZW50VmFsdWUpIHtcbiAgICAgICAgLy8tLS0gVXBkYXRlIG1pbiBtYXggaW5wdXRcbiAgICAgICAgdGhpcy5kYXRlVmFsaWRhdG9yTWluID0gY2hhbmdlc1snbWluJ10gPyBjaGFuZ2VzWydtaW4nXS5jdXJyZW50VmFsdWUgOiB0aGlzLmRhdGVWYWxpZGF0b3JNaW47XG4gICAgICAgIHRoaXMuZGF0ZVZhbGlkYXRvck1heCA9IGNoYW5nZXNbJ21heCddID8gY2hhbmdlc1snbWF4J10uY3VycmVudFZhbHVlIDogdGhpcy5kYXRlVmFsaWRhdG9yTWF4O1xuICAgICAgICAvLy0tLSBBZGQgbmV3IHZhbGlkYXRvclxuICAgICAgICB0aGlzLmNvbnRyb2w/LmFkZFZhbGlkYXRvcnMoQ0ZQRm9ybVZhbGlkYXRvcnMuaXNWYWxpZERhdGUodGhpcy5kYXRlVmFsaWRhdG9yTWluIHx8IG51bGwsIHRoaXMuZGF0ZVZhbGlkYXRvck1heCB8fCBudWxsKSk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLyoqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgKiBAbmFtZSAgICAgICAgICB0b2dnbGVQYXNzd29yZFNob3dcbiAgICogQGRlc2NyaXB0aW9uICAgVG9nZ2xlIGlmIHBhc3N3b3JkIGlzIHNob3dpbmcgb3IgaGlkZGVuXG4gICAqIEByZXR1cm5zICAgICAgIHt2b2lkfVxuICAgKi9cbiAgdG9nZ2xlUGFzc3dvcmRTaG93KCk6IHZvaWQge1xuICAgIHRoaXMuc2hvd1Bhc3N3b3JkID0gIXRoaXMuc2hvd1Bhc3N3b3JkO1xuICAgIHRoaXMuaW5wdXRUeXBlID0gdGhpcy5pbnB1dFR5cGUgPT09ICdwYXNzd29yZCcgPyAndGV4dCcgOiAncGFzc3dvcmQnO1xuICB9XG59XG4iLCI8IS0tIG5nTW9kZWwgLS0+XG48aW9uLWlucHV0XG4gICNub3JtYWxJbnB1dFxuICAqbmdJZj1cIiFjb250cm9sXCJcbiAgW25nQ2xhc3NdPVwieyAndGV4dC1jZW50ZXInOiBpbnB1dFRleHRDZW50ZXIsICdncmV5LWJhY2tncm91bmQnOiBpbnB1dEdyZXlCYWNrZ3JvdW5kIH1cIlxuICBbbGFiZWxdPVwibGFiZWxcIlxuICBbbGFiZWxQbGFjZW1lbnRdPVwiaW5wdXRMYWJlbFBsYWNlbWVudFwiXG4gIFtwbGFjZWhvbGRlcl09XCJwbGFjZWhvbGRlclwiXG4gIGZpbGw9XCJvdXRsaW5lXCJcbiAgW2NsZWFySW5wdXRdPVwidHlwZSA9PT0gJ3Bhc3N3b3JkJyA/IGZhbHNlIDogIWlucHV0Q2xlYXJcIlxuICBbYXV0b2NhcGl0YWxpemVdPVwiYXV0b0NhcGl0YWxpemVcIlxuICBtb2RlPVwibWRcIlxuICBbaW5wdXRtb2RlXT1cImxvY2FsSW5wdXRNb2RlXCJcbiAgW21pbl09XCJtaW5cIlxuICBbbWF4XT1cIm1heFwiXG4gIFttYXhsZW5ndGhdPVwibWF4TGVuZ3RoIHx8IG51bGxcIlxuICBbdHlwZV09XCJpbnB1dFR5cGVcIlxuICAoaW9uSW5wdXQpPVwidmFsdWVDaGFuZ2UuZW1pdCgkZXZlbnQuZGV0YWlsLnZhbHVlID8/IHVuZGVmaW5lZClcIlxuICBbdmFsdWVdPVwidmFsdWVcIj5cbiAgPGNmLWljb25cbiAgICBzbG90PVwiZW5kXCJcbiAgICBzdHlsZT1cImN1cnNvcjogcG9pbnRlclwiXG4gICAgKm5nSWY9XCJub3JtYWxJbnB1dC52YWx1ZSAmJiB0eXBlID09PSAncGFzc3dvcmQnXCJcbiAgICBbaWNvbl09XCJzaG93UGFzc3dvcmQgPyAnaGlkZS1wYXNzd29yZCcgOiAnc2hvdy1wYXNzd29yZCdcIlxuICAgIFtoZWlnaHRdPVwiMjRcIlxuICAgIChjbGljayk9XCJ0b2dnbGVQYXNzd29yZFNob3coKVwiPjwvY2YtaWNvblxuPjwvaW9uLWlucHV0PlxuPCEtLSBGb3JtIENvbnRyb2wgLS0+XG48aW9uLWlucHV0XG4gICNmb3JtQ29udHJvbElucHV0XG4gICpuZ0lmPVwiY29udHJvbFwiXG4gIFtuZ0NsYXNzXT1cInsgJ3RleHQtY2VudGVyJzogaW5wdXRUZXh0Q2VudGVyLCAnZ3JleS1iYWNrZ3JvdW5kJzogaW5wdXRHcmV5QmFja2dyb3VuZCB9XCJcbiAgW2xhYmVsXT1cImxhYmVsXCJcbiAgW2xhYmVsUGxhY2VtZW50XT1cImlucHV0TGFiZWxQbGFjZW1lbnRcIlxuICBbcGxhY2Vob2xkZXJdPVwicGxhY2Vob2xkZXJcIlxuICBmaWxsPVwib3V0bGluZVwiXG4gIFtjbGVhcklucHV0XT1cInR5cGUgPT09ICdwYXNzd29yZCcgPyBmYWxzZSA6ICFpbnB1dENsZWFyXCJcbiAgW2F1dG9jYXBpdGFsaXplXT1cImF1dG9DYXBpdGFsaXplXCJcbiAgbW9kZT1cIm1kXCJcbiAgW2lucHV0bW9kZV09XCJsb2NhbElucHV0TW9kZVwiXG4gIFtmb3JtQ29udHJvbF09XCJjb250cm9sXCJcbiAgW21pbl09XCJtaW5cIlxuICBbbWF4XT1cIm1heFwiXG4gIFttYXhsZW5ndGhdPVwibWF4TGVuZ3RoIHx8IG51bGxcIlxuICBbdHlwZV09XCJpbnB1dFR5cGVcIlxuICAoaW9uSW5wdXQpPVwidmFsdWVDaGFuZ2UuZW1pdCgkZXZlbnQuZGV0YWlsLnZhbHVlID8/IHVuZGVmaW5lZClcIj5cbiAgPGNmLWljb25cbiAgICBzbG90PVwiZW5kXCJcbiAgICBzdHlsZT1cImN1cnNvcjogcG9pbnRlclwiXG4gICAgKm5nSWY9XCJmb3JtQ29udHJvbElucHV0LnZhbHVlICYmIHR5cGUgPT09ICdwYXNzd29yZCdcIlxuICAgIFtpY29uXT1cInNob3dQYXNzd29yZCA/ICdoaWRlLXBhc3N3b3JkJyA6ICdzaG93LXBhc3N3b3JkJ1wiXG4gICAgW2hlaWdodF09XCIyNFwiXG4gICAgKGNsaWNrKT1cInRvZ2dsZVBhc3N3b3JkU2hvdygpXCI+PC9jZi1pY29uPlxuPC9pb24taW5wdXQ+XG48Y2YtZm9ybS12YWxpZGF0aW9uICpuZ0lmPVwiY29udHJvbFwiIFtjb250cm9sXT1cImNvbnRyb2xcIj48L2NmLWZvcm0tdmFsaWRhdGlvbj5cbiJdfQ==
106
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1pbnB1dC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jYXJlZmlyc3QvbGlicmFyeS9zcmMvbGliL2NvbXBvbmVudHMvZm9ybS1pbnB1dC9mb3JtLWlucHV0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NhcmVmaXJzdC9saWJyYXJ5L3NyYy9saWIvY29tcG9uZW50cy9mb3JtLWlucHV0L2Zvcm0taW5wdXQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBeUJBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBc0MsWUFBWSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNHLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUU3QyxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUN0RixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQzs7Ozs7OztBQU14RSxNQUFNLE9BQU8sR0FBRztJQUNkLGNBQWMsRUFBRSxDQUFDLE9BQU8sRUFBRSxVQUFVLEVBQUUsU0FBUyxFQUFFLE9BQU8sRUFBRSxLQUFLLENBQUM7SUFDaEUsU0FBUyxFQUFFLENBQUMsTUFBTSxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsUUFBUSxDQUFDO0lBQzFFLGNBQWMsRUFBRSxDQUFDLEtBQUssRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFLFdBQVcsRUFBRSxPQUFPLEVBQUUsWUFBWSxDQUFDO0lBQ3pFLElBQUksRUFBRSxDQUFDLE1BQU0sRUFBRSxnQkFBZ0IsRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLFFBQVEsRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRSxNQUFN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QyxnQkFBZ0IsQ0FBQztnQkFFN0YsSUFBSSxDQUFDLE9BQU8sRUFBRSxhQUFhLENBQUMsaUJBQWlCLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsSUFBSSxJQUFJLEVBQUUsSUFBSSxDQUFDLGdCQUFnQixJQUFJLElBQUksQ0FBQyxDQUFDLENBQUM7WUFDM0gsQ0FBQztRQUNILENBQUM7SUFDSCxDQUFDO0lBT0Qsa0JBQWtCO1FBQ2hCLElBQUksQ0FBQyxZQUFZLEdBQUcsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDO1FBQ3ZDLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLFNBQVMsS0FBSyxVQUFVLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDO0lBQ3ZFLENBQUM7dUdBdkZVLGtCQUFrQjsyRkFBbEIsa0JBQWtCLCtlQy9DL0IsKzhEQXVEQTs7MkZEUmEsa0JBQWtCO2tCQUw5QixTQUFTOytCQUNFLGVBQWU7OEJBS2hCLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxHQUFHO3NCQUFYLEtBQUs7Z0JBQ0csR0FBRztzQkFBWCxLQUFLO2dCQUNHLGNBQWM7c0JBQXRCLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFDRyxTQUFTO3NCQUFqQixLQUFLO2dCQUNHLGNBQWM7c0JBQXRCLEtBQUs7Z0JBQ0csSUFBSTtzQkFBWixLQUFLO2dCQUNHLGFBQWE7c0JBQXJCLEtBQUs7Z0JBQ0csT0FBTztzQkFBZixLQUFLO2dCQUNHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSztnQkFDRyxjQUFjO3NCQUF0QixLQUFLO2dCQUNHLGtCQUFrQjtzQkFBMUIsS0FBSztnQkFHRyxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0ksV0FBVztzQkFBcEIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQ2FyZWZpcnN0IExpYnJhcnkgRm9ybSBJbnB1dFxuICpcbiAqIEBmaWxlICAgICAgICAgIGZvcm0taW5wdXQuY29tcG9uZW50XG4gKiBAZGVzY3JpcHRpb24gICBDb250YWlucyBhbGwgdGhlIGxvZ2ljIGZvciBnZW5lcmF0aW5nIGEgQ2FyZUZpcnN0IEZvcm0gSW5wdXQgRmllbGRcbiAqIEBhdXRob3IgICAgICAgIEFybm8gSmFuc2VuIHZhbiBWdXVyZW5cbiAqIEBzaW5jZSAgICAgICAgIDIwMjMgLSAxMiAtIDE0XG4gKiBAdXNhZ2UgICAgICAgICA8Y2YtZm9ybS1pbnB1dFxuICogICAgICAgICAgICAgICAgICBsYWJlbD1cIkxhYmVsIE5hbWVcIlxuICogICAgICAgICAgICAgICAgICAlbGFiZWxQbGFjZW1lbnQlXG4gKiAgICAgICAgICAgICAgICAgICVpbnB1dE1vZGUlXG4gKiAgICAgICAgICAgICAgICAgICVub0NsZWFyQnV0dG9uJVxuICogICAgICAgICAgICAgICAgICAldGV4dENlbnRlciVcbiAqICAgICAgICAgICAgICAgICAgJW1pbiVcbiAqICAgICAgICAgICAgICAgICAgJW1heCVcbiAqICAgICAgICAgICAgICAgICAgJWF1dG9DYXBpdGFsaXplJVxuICogICAgICAgICAgICAgICAgICAldHlwZSVcbiAqICAgICAgICAgICAgICAgICAgJVsodmFsdWUpXT1cInR3b1dheUNvbXNcIiVcbiAqICAgICAgICAgICAgICAgICAgJSh2YWx1ZUNoYW5nZSk9XCJjdXJyZW50VmFsdWVFdmVudFwiJVxuICogICAgICAgICAgICAgICAgICAlW2NvbnRyb2xdJT1cImZvcm1OYW1lLmNvbnRyb2xzLmNvbnRyb2xOYW1lXCJcbiAqICAgICAgICAgICAgICAgICAgJVtjdXN0b21FcnJvck1lc3NhZ2VdJT1cImVycm9yTWVzc2FnZVwiXG4gKiAgICAgICAgICAgICAgICA+PC9jZi1mb3JtLWlucHV0PlxuICogICAgICAgICAgICAgICAgZGlzYWJsZSBpbnB1dCBieSBkaXNhYmxpbmcgdGhlIGZvcm0gY29udHJvbFxuICovXG5cbmltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIE91dHB1dCwgdHlwZSBPbkNoYW5nZXMsIHR5cGUgU2ltcGxlQ2hhbmdlcywgRXZlbnRFbWl0dGVyIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3JtQ29udHJvbCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbi8vLS0tIFV0aWxzXG5pbXBvcnQgeyBjaGVja1RydXRoQXR0cmlidXRlLCB2YWxpZGF0ZVN0cmluZ1ZhbHVlIH0gZnJvbSAnLi4vLi4vdXRpbHMvYXR0cmlidXRlLnV0aWwnO1xuaW1wb3J0IHsgQ0ZQRm9ybVZhbGlkYXRvcnMgfSBmcm9tICcuLi8uLi91dGlscy9mb3JtLXZhbGlkYXRvcnMtdXRpbGl0eSc7XG5cbi8qKj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAqIEBpbnRlcmZhY2UgICAgIGlucHV0c0NcbiAqIEBkZXNjcmlwdGlvbiAgIERlZmluZSBhdmFpbGFibGUgaW5wdXQgdmFsdWVzXG4gKi9cbmNvbnN0IGlucHV0c0MgPSB7XG4gIGxhYmVsUGxhY2VtZW50OiBbJ2ZpeGVkJywgJ2Zsb2F0aW5nJywgJ3N0YWNrZWQnLCAnc3RhcnQnLCAnZW5kJ10sXG4gIGlucHV0TW9kZTogWyd0ZXh0JywgJ2VtYWlsJywgJ251bWVyaWMnLCAndGVsJywgJ2RlY2ltYWwnLCAndXJsJywgJ3NlYXJjaCddLFxuICBhdXRvQ2FwaXRhbGl6ZTogWydvZmYnLCAnbm9uZScsICdvbicsICdzZW50ZW5jZXMnLCAnd29yZHMnLCAnY2hhcmFjdGVycyddLFxuICB0eXBlOiBbJ2RhdGUnLCAnZGF0ZXRpbWUtbG9jYWwnLCAnZW1haWwnLCAnbW9udGgnLCAnbnVtYmVyJywgJ3Bhc3N3b3JkJywgJ3NlYXJjaCcsICd0ZWwnLCAndGV4dCcsICd0aW1lJywgJ3VybCcsICd3ZWVrJ10sXG59IGFzIGNvbnN0O1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdjZi1mb3JtLWlucHV0JyxcbiAgdGVtcGxhdGVVcmw6ICcuL2Zvcm0taW5wdXQuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybDogJy4vZm9ybS1pbnB1dC5jb21wb25lbnQuc2NzcycsXG59KVxuZXhwb3J0IGNsYXNzIEZvcm1JbnB1dENvbXBvbmVudCBpbXBsZW1lbnRzIE9uQ2hhbmdlcyB7XG4gIEBJbnB1dCgpIGxhYmVsITogc3RyaW5nO1xuICBASW5wdXQoKSBtaW46IHN0cmluZyB8IG51bWJlciB8IHVuZGVmaW5lZDtcbiAgQElucHV0KCkgbWF4OiBzdHJpbmcgfCBudW1iZXIgfCB1bmRlZmluZWQ7XG4gIEBJbnB1dCgpIGxhYmVsUGxhY2VtZW50PzogKHR5cGVvZiBpbnB1dHNDLmxhYmVsUGxhY2VtZW50KVtudW1iZXJdO1xuICBASW5wdXQoKSBwbGFjZWhvbGRlcj86IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgQElucHV0KCkgaW5wdXRtb2RlPzogKHR5cGVvZiBpbnB1dHNDLmlucHV0TW9kZSlbbnVtYmVyXTtcbiAgQElucHV0KCkgYXV0b0NhcGl0YWxpemU/OiAodHlwZW9mIGlucHV0c0MuYXV0b0NhcGl0YWxpemUpW251bWJlcl07XG4gIEBJbnB1dCgpIHR5cGU/OiAodHlwZW9mIGlucHV0c0MudHlwZSlbbnVtYmVyXTtcbiAgQElucHV0KCkgbm9DbGVhckJ1dHRvbj86IGJvb2xlYW4gfCBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gIEBJbnB1dCgpIGNvbnRyb2w/OiBGb3JtQ29udHJvbCB8IG51bGw7XG4gIEBJbnB1dCgpIHRleHRDZW50ZXI/OiBib29sZWFuIHwgc3RyaW5nIHwgdW5kZWZpbmVkO1xuICBASW5wdXQoKSBtYXhMZW5ndGg/OiBudW1iZXIgfCBzdHJpbmc7XG4gIEBJbnB1dCgpIGdyZXlCYWNrZ3JvdW5kPzogYm9vbGVhbiB8IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgQElucHV0KCkgY3VzdG9tRXJyb3JNZXNzYWdlOiBzdHJpbmcgfCBudWxsID0gbnVsbDtcblxuICAvLy0tLSBuZ01vZGVsXG4gIEBJbnB1dCgpIHZhbHVlOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gIEBPdXRwdXQoKSB2YWx1ZUNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8dHlwZW9mIHRoaXMudmFsdWU+KCk7XG5cbiAgLy8tLS0gTG9jYWwgdmFyaWFibGVzXG4gIGlucHV0TGFiZWxQbGFjZW1lbnQ6IHR5cGVvZiB0aGlzLmxhYmVsUGxhY2VtZW50O1xuICBsb2NhbElucHV0TW9kZTogdHlwZW9mIHRoaXMuaW5wdXRtb2RlO1xuICBpbnB1dENsZWFyID0gZmFsc2U7XG4gIGlucHV0VGV4dENlbnRlciA9IGZhbHNlO1xuICBpbnB1dFR5cGU6IHR5cGVvZiB0aGlzLnR5cGU7XG4gIGlucHV0QXV0b0NhcGl0YWxpemU6IHR5cGVvZiB0aGlzLmF1dG9DYXBpdGFsaXplO1xuICBpbnB1dEdyZXlCYWNrZ3JvdW5kID0gZmFsc2U7XG4gIHNob3dQYXNzd29yZCA9IGZhbHNlO1xuICBkYXRlVmFsaWRhdG9yTWluOiBzdHJpbmcgfCBudWxsID0gbnVsbDtcbiAgZGF0ZVZhbGlkYXRvck1heDogc3RyaW5nIHwgbnVsbCA9IG51bGw7XG5cbiAgLyoqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgKiBAbmFtZSAgICAgICAgICBuZ09uQ2hhbmdlc1xuICAgKiBAZGVzY3JpcHRpb24gICBEZXRlY3QgY2hhbmdlcyB0byBpbnB1dCB2YWx1ZXNcbiAgICogQHBhcmFtICAgICAgICAge1NpbXBsZUNoYW5nZXN9IGNoYW5nZXNcbiAgICovXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICAvLy0tLSBMYWJlbCBQbGFjZW1lbnRcbiAgICB0aGlzLmlucHV0TGFiZWxQbGFjZW1lbnQgPVxuICAgICAgdmFsaWRhdGVTdHJpbmdWYWx1ZTwodHlwZW9mIGlucHV0c0MubGFiZWxQbGFjZW1lbnQpW251bWJlcl0+KFxuICAgICAgICBjaGFuZ2VzLFxuICAgICAgICAnbGFiZWxQbGFjZW1lbnQnLFxuICAgICAgICBpbnB1dHNDLmxhYmVsUGxhY2VtZW50LnNsaWNlKCksXG4gICAgICAgIHRoaXMuaW5wdXRMYWJlbFBsYWNlbWVudFxuICAgICAgKSB8fCAnZmxvYXRpbmcnO1xuICAgIC8vLS0tIElucHV0IFR5cGUgKGtleWJvYXJkKVxuICAgIHRoaXMubG9jYWxJbnB1dE1vZGUgPVxuICAgICAgdmFsaWRhdGVTdHJpbmdWYWx1ZTwodHlwZW9mIGlucHV0c0MuaW5wdXRNb2RlKVtudW1iZXJdPihjaGFuZ2VzLCAnaW5wdXRtb2RlJywgaW5wdXRzQy5pbnB1dE1vZGUuc2xpY2UoKSwgdGhpcy5sb2NhbElucHV0TW9kZSkgfHwgJ3RleHQnO1xuICAgIC8vLS0tIENsZWFyIEJ1dHRvblxuICAgIHRoaXMuaW5wdXRDbGVhciA9IGNoZWNrVHJ1dGhBdHRyaWJ1dGUoY2hhbmdlcywgJ25vQ2xlYXJCdXR0b24nLCB0aGlzLmlucHV0Q2xlYXIpO1xuICAgIC8vLS0tIFRleHQgQ2VudGVyXG4gICAgdGhpcy5pbnB1dFRleHRDZW50ZXIgPSBjaGVja1RydXRoQXR0cmlidXRlKGNoYW5nZXMsICd0ZXh0Q2VudGVyJywgdGhpcy5pbnB1dFRleHRDZW50ZXIpO1xuICAgIC8vLS0tIFR5cGVcbiAgICB0aGlzLmlucHV0VHlwZSA9IHZhbGlkYXRlU3RyaW5nVmFsdWU8KHR5cGVvZiBpbnB1dHNDLnR5cGUpW251bWJlcl0+KGNoYW5nZXMsICd0eXBlJywgaW5wdXRzQy50eXBlLnNsaWNlKCksIHRoaXMuaW5wdXRUeXBlKSB8fCAndGV4dCc7XG4gICAgLy8tLS0gQXV0byBDYXBpdGFsaXplXG4gICAgdGhpcy5pbnB1dEF1dG9DYXBpdGFsaXplID1cbiAgICAgIHZhbGlkYXRlU3RyaW5nVmFsdWU8KHR5cGVvZiBpbnB1dHNDLmF1dG9DYXBpdGFsaXplKVtudW1iZXJdPihcbiAgICAgICAgY2hhbmdlcyxcbiAgICAgICAgJ2F1dG9DYXBpdGFsaXplJyxcbiAgICAgICAgaW5wdXRzQy5hdXRvQ2FwaXRhbGl6ZS5zbGljZSgpLFxuICAgICAgICB0aGlzLmlucHV0QXV0b0NhcGl0YWxpemVcbiAgICAgICkgfHwgJ25vbmUnO1xuICAgIC8vLS0tIEdyZXkgQmFja2dyb3VuZFxuICAgIHRoaXMuaW5wdXRHcmV5QmFja2dyb3VuZCA9IGNoZWNrVHJ1dGhBdHRyaWJ1dGUoY2hhbmdlcywgJ2dyZXlCYWNrZ3JvdW5kJywgdGhpcy5pbnB1dEdyZXlCYWNrZ3JvdW5kKTtcblxuICAgIC8vLS0tPD4gYWRkaW5nIG11bHRpcGxlIHZhbGlkYXRvcnNcbiAgICAvLy0tLSBBdXRvbWF0aWNhbGx5IGFkZCBpc1ZhbGlkRGF0ZSB2YWxpZGF0b3Igd2hlbiBpbnB1dCBpcyBhIGRhdGUgdHlwZSBhbmQgaGFzIGVpdGhlciBhIG1pbiBvciBhIG1heCB2YWx1ZVxuICAgIGlmICh0aGlzLmlucHV0VHlwZSA9PT0gJ2RhdGUnKSB7XG4gICAgICBpZiAoY2hhbmdlc1snbWluJ10/LmN1cnJlbnRWYWx1ZSB8fCBjaGFuZ2VzWydtYXgnXT8uY3VycmVudFZhbHVlKSB7XG4gICAgICAgIC8vLS0tIFVwZGF0ZSBtaW4gbWF4IGlucHV0XG4gICAgICAgIHRoaXMuZGF0ZVZhbGlkYXRvck1pbiA9IGNoYW5nZXNbJ21pbiddID8gY2hhbmdlc1snbWluJ10uY3VycmVudFZhbHVlIDogdGhpcy5kYXRlVmFsaWRhdG9yTWluO1xuICAgICAgICB0aGlzLmRhdGVWYWxpZGF0b3JNYXggPSBjaGFuZ2VzWydtYXgnXSA/IGNoYW5nZXNbJ21heCddLmN1cnJlbnRWYWx1ZSA6IHRoaXMuZGF0ZVZhbGlkYXRvck1heDtcbiAgICAgICAgLy8tLS0gQWRkIG5ldyB2YWxpZGF0b3JcbiAgICAgICAgdGhpcy5jb250cm9sPy5hZGRWYWxpZGF0b3JzKENGUEZvcm1WYWxpZGF0b3JzLmlzVmFsaWREYXRlKHRoaXMuZGF0ZVZhbGlkYXRvck1pbiB8fCBudWxsLCB0aGlzLmRhdGVWYWxpZGF0b3JNYXggfHwgbnVsbCkpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8qKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICogQG5hbWUgICAgICAgICAgdG9nZ2xlUGFzc3dvcmRTaG93XG4gICAqIEBkZXNjcmlwdGlvbiAgIFRvZ2dsZSBpZiBwYXNzd29yZCBpcyBzaG93aW5nIG9yIGhpZGRlblxuICAgKiBAcmV0dXJucyAgICAgICB7dm9pZH1cbiAgICovXG4gIHRvZ2dsZVBhc3N3b3JkU2hvdygpOiB2b2lkIHtcbiAgICB0aGlzLnNob3dQYXNzd29yZCA9ICF0aGlzLnNob3dQYXNzd29yZDtcbiAgICB0aGlzLmlucHV0VHlwZSA9IHRoaXMuaW5wdXRUeXBlID09PSAncGFzc3dvcmQnID8gJ3RleHQnIDogJ3Bhc3N3b3JkJztcbiAgfVxufVxuIiwiPCEtLSBuZ01vZGVsIC0tPlxuPGlvbi1pbnB1dFxuICAjbm9ybWFsSW5wdXRcbiAgKm5nSWY9XCIhY29udHJvbFwiXG4gIFtuZ0NsYXNzXT1cInsgJ3RleHQtY2VudGVyJzogaW5wdXRUZXh0Q2VudGVyLCAnZ3JleS1iYWNrZ3JvdW5kJzogaW5wdXRHcmV5QmFja2dyb3VuZCwgZXJyb3I6ICEhY3VzdG9tRXJyb3JNZXNzYWdlIH1cIlxuICBbbGFiZWxdPVwibGFiZWxcIlxuICBbbGFiZWxQbGFjZW1lbnRdPVwiaW5wdXRMYWJlbFBsYWNlbWVudFwiXG4gIFtwbGFjZWhvbGRlcl09XCJwbGFjZWhvbGRlclwiXG4gIGZpbGw9XCJvdXRsaW5lXCJcbiAgW2NsZWFySW5wdXRdPVwidHlwZSA9PT0gJ3Bhc3N3b3JkJyA/IGZhbHNlIDogIWlucHV0Q2xlYXJcIlxuICBbYXV0b2NhcGl0YWxpemVdPVwiYXV0b0NhcGl0YWxpemVcIlxuICBtb2RlPVwibWRcIlxuICBbaW5wdXRtb2RlXT1cImxvY2FsSW5wdXRNb2RlXCJcbiAgW21pbl09XCJtaW5cIlxuICBbbWF4XT1cIm1heFwiXG4gIFttYXhsZW5ndGhdPVwibWF4TGVuZ3RoIHx8IG51bGxcIlxuICBbdHlwZV09XCJpbnB1dFR5cGVcIlxuICAoaW9uSW5wdXQpPVwidmFsdWVDaGFuZ2UuZW1pdCgkZXZlbnQuZGV0YWlsLnZhbHVlID8/IHVuZGVmaW5lZClcIlxuICBbdmFsdWVdPVwidmFsdWVcIj5cbiAgPGNmLWljb25cbiAgICBzbG90PVwiZW5kXCJcbiAgICBzdHlsZT1cImN1cnNvcjogcG9pbnRlclwiXG4gICAgKm5nSWY9XCJub3JtYWxJbnB1dC52YWx1ZSAmJiB0eXBlID09PSAncGFzc3dvcmQnXCJcbiAgICBbaWNvbl09XCJzaG93UGFzc3dvcmQgPyAnaGlkZS1wYXNzd29yZCcgOiAnc2hvdy1wYXNzd29yZCdcIlxuICAgIFtoZWlnaHRdPVwiMjRcIlxuICAgIChjbGljayk9XCJ0b2dnbGVQYXNzd29yZFNob3coKVwiPjwvY2YtaWNvblxuPjwvaW9uLWlucHV0PlxuPCEtLSBGb3JtIENvbnRyb2wgLS0+XG48aW9uLWlucHV0XG4gICNmb3JtQ29udHJvbElucHV0XG4gICpuZ0lmPVwiY29udHJvbFwiXG4gIFtuZ0NsYXNzXT1cInsgJ3RleHQtY2VudGVyJzogaW5wdXRUZXh0Q2VudGVyLCAnZ3JleS1iYWNrZ3JvdW5kJzogaW5wdXRHcmV5QmFja2dyb3VuZCwgZXJyb3I6ICEhY3VzdG9tRXJyb3JNZXNzYWdlIH1cIlxuICBbbGFiZWxdPVwibGFiZWxcIlxuICBbbGFiZWxQbGFjZW1lbnRdPVwiaW5wdXRMYWJlbFBsYWNlbWVudFwiXG4gIFtwbGFjZWhvbGRlcl09XCJwbGFjZWhvbGRlclwiXG4gIGZpbGw9XCJvdXRsaW5lXCJcbiAgW2NsZWFySW5wdXRdPVwidHlwZSA9PT0gJ3Bhc3N3b3JkJyA/IGZhbHNlIDogIWlucHV0Q2xlYXJcIlxuICBbYXV0b2NhcGl0YWxpemVdPVwiYXV0b0NhcGl0YWxpemVcIlxuICBtb2RlPVwibWRcIlxuICBbaW5wdXRtb2RlXT1cImxvY2FsSW5wdXRNb2RlXCJcbiAgW2Zvcm1Db250cm9sXT1cImNvbnRyb2xcIlxuICBbbWluXT1cIm1pblwiXG4gIFttYXhdPVwibWF4XCJcbiAgW21heGxlbmd0aF09XCJtYXhMZW5ndGggfHwgbnVsbFwiXG4gIFt0eXBlXT1cImlucHV0VHlwZVwiXG4gIChpb25JbnB1dCk9XCJ2YWx1ZUNoYW5nZS5lbWl0KCRldmVudC5kZXRhaWwudmFsdWUgPz8gdW5kZWZpbmVkKVwiPlxuICA8Y2YtaWNvblxuICAgIHNsb3Q9XCJlbmRcIlxuICAgIHN0eWxlPVwiY3Vyc29yOiBwb2ludGVyXCJcbiAgICAqbmdJZj1cImZvcm1Db250cm9sSW5wdXQudmFsdWUgJiYgdHlwZSA9PT0gJ3Bhc3N3b3JkJ1wiXG4gICAgW2ljb25dPVwic2hvd1Bhc3N3b3JkID8gJ2hpZGUtcGFzc3dvcmQnIDogJ3Nob3ctcGFzc3dvcmQnXCJcbiAgICBbaGVpZ2h0XT1cIjI0XCJcbiAgICAoY2xpY2spPVwidG9nZ2xlUGFzc3dvcmRTaG93KClcIj48L2NmLWljb24+XG48L2lvbi1pbnB1dD5cbjxjZi1mb3JtLXZhbGlkYXRpb24gKm5nSWY9XCJjb250cm9sIHx8IGN1c3RvbUVycm9yTWVzc2FnZVwiIFtjdXN0b21FcnJvck1lc3NhZ2VdPVwiY3VzdG9tRXJyb3JNZXNzYWdlXCIgW2NvbnRyb2xdPVwiY29udHJvbCB8fCBudWxsXCI+PC9jZi1mb3JtLXZhbGlkYXRpb24+XG4iXX0=
@@ -15,6 +15,7 @@ export class FormInputSelectComponent {
15
15
  labelPlacement;
16
16
  placeholder;
17
17
  control;
18
+ customErrorMessage = null;
18
19
  value;
19
20
  valueChange = new EventEmitter();
20
21
  inputLabelPlacement;
@@ -23,11 +24,11 @@ export class FormInputSelectComponent {
23
24
  validateStringValue(changes, 'labelPlacement', inputSelectC.labelPlacement.slice(), this.inputLabelPlacement) || 'floating';
24
25
  }
25
26
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.8", ngImport: i0, type: FormInputSelectComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
26
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.8", type: FormInputSelectComponent, selector: "cf-form-input-select", inputs: { label: "label", options: "options", labelPlacement: "labelPlacement", placeholder: "placeholder", control: "control", value: "value" }, outputs: { valueChange: "valueChange" }, usesOnChanges: true, ngImport: i0, template: "<!-- ngModel -->\n<ion-select\n *ngIf=\"!control\"\n [label]=\"label\"\n [labelPlacement]=\"inputLabelPlacement\"\n [placeholder]=\"placeholder\"\n fill=\"outline\"\n mode=\"md\"\n interface=\"popover\"\n (ionChange)=\"valueChange.emit($event.detail.value ?? undefined)\"\n [value]=\"value\">\n <ion-select-option *ngFor=\"let option of options\" [value]=\"option.value\">{{ option.displayName }}</ion-select-option>\n</ion-select>\n<!-- Form Control -->\n<ion-select\n *ngIf=\"control\"\n [label]=\"label\"\n [labelPlacement]=\"inputLabelPlacement\"\n [placeholder]=\"placeholder\"\n fill=\"outline\"\n mode=\"md\"\n interface=\"popover\"\n [formControl]=\"control\"\n (ionChange)=\"valueChange.emit($event.detail.value ?? undefined)\">\n <ion-select-option *ngFor=\"let option of options\" [value]=\"option.value\">{{ option.displayName }}</ion-select-option>\n</ion-select>\n<cf-form-validation *ngIf=\"control\" [control]=\"control\"></cf-form-validation>\n", styles: ["ion-select{font-family:Roboto,sans-serif;font-weight:400;font-style:normal;font-size:1.6rem;color:var(--cf-app-text-color-default);text-align:start;--border-radius: 8px !important;--highlight-color-focused: var(--cf-app-color-primary);--highlight-color-invalid: var(--cf-app-system-color-error);--highlight-color-valid: var(--cf-app-color-primary)}::ng-deep ion-select-popover ion-list[class*=popover]{background:var(--cf-app-background-light)}::ng-deep ion-select-popover ion-list[class*=popover] ion-item[class*=popover]{--background: transparent;--border-radius: 8px;--background-focused: var(--cf-app-color-accent);--background-focused-opacity: .5;--background-hover: var(--cf-app-color-primary);--background-hover-opacity: .1;padding:4px}::ng-deep ion-select-popover ion-list[class*=popover] ion-item[class*=popover] ion-radio{font-family:Roboto,sans-serif;font-weight:400;font-style:normal;font-size:1.6rem;color:var(--cf-app-text-color-default);text-align:start}\n"], dependencies: [{ kind: "component", type: i1.IonSelect, selector: "ion-select", inputs: ["cancelText", "color", "compareWith", "disabled", "expandedIcon", "fill", "interface", "interfaceOptions", "justify", "label", "labelPlacement", "mode", "multiple", "name", "okText", "placeholder", "selectedText", "shape", "toggleIcon", "value"] }, { kind: "component", type: i1.IonSelectOption, selector: "ion-select-option", inputs: ["disabled", "value"] }, { kind: "directive", type: i1.SelectValueAccessor, selector: "ion-select, ion-radio-group, ion-segment, ion-datetime" }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "component", type: i4.FormValidationComponent, selector: "cf-form-validation", inputs: ["control"] }] });
27
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.8", type: FormInputSelectComponent, selector: "cf-form-input-select", inputs: { label: "label", options: "options", labelPlacement: "labelPlacement", placeholder: "placeholder", control: "control", customErrorMessage: "customErrorMessage", value: "value" }, outputs: { valueChange: "valueChange" }, usesOnChanges: true, ngImport: i0, template: "<!-- ngModel -->\n<ion-select\n *ngIf=\"!control\"\n [ngClass]=\"{ error: !!customErrorMessage }\"\n [label]=\"label\"\n [labelPlacement]=\"inputLabelPlacement\"\n [placeholder]=\"placeholder\"\n fill=\"outline\"\n mode=\"md\"\n interface=\"popover\"\n (ionChange)=\"valueChange.emit($event.detail.value ?? undefined)\"\n [value]=\"value\">\n <ion-select-option *ngFor=\"let option of options\" [value]=\"option.value\">{{ option.displayName }}</ion-select-option>\n</ion-select>\n<!-- Form Control -->\n<ion-select\n *ngIf=\"control\"\n [ngClass]=\"{ error: !!customErrorMessage }\"\n [label]=\"label\"\n [labelPlacement]=\"inputLabelPlacement\"\n [placeholder]=\"placeholder\"\n fill=\"outline\"\n mode=\"md\"\n interface=\"popover\"\n [formControl]=\"control\"\n (ionChange)=\"valueChange.emit($event.detail.value ?? undefined)\">\n <ion-select-option *ngFor=\"let option of options\" [value]=\"option.value\">{{ option.displayName }}</ion-select-option>\n</ion-select>\n<cf-form-validation *ngIf=\"control || customErrorMessage\" [customErrorMessage]=\"customErrorMessage\" [control]=\"control || null\"></cf-form-validation>\n", styles: ["ion-select{font-family:Roboto,sans-serif;font-weight:400;font-style:normal;font-size:1.6rem;color:var(--cf-app-text-color-default);text-align:start;--border-radius: 8px !important;--highlight-color-focused: var(--cf-app-color-primary);--highlight-color-invalid: var(--cf-app-system-color-error);--highlight-color-valid: var(--cf-app-color-primary)}::ng-deep ion-select-popover ion-list[class*=popover]{background:var(--cf-app-background-light)}::ng-deep ion-select-popover ion-list[class*=popover] ion-item[class*=popover]{--background: transparent;--border-radius: 8px;--background-focused: var(--cf-app-color-accent);--background-focused-opacity: .5;--background-hover: var(--cf-app-color-primary);--background-hover-opacity: .1;padding:4px}::ng-deep ion-select-popover ion-list[class*=popover] ion-item[class*=popover] ion-radio{font-family:Roboto,sans-serif;font-weight:400;font-style:normal;font-size:1.6rem;color:var(--cf-app-text-color-default);text-align:start}ion-select.error{--border-color: var(--cf-app-system-color-error);--highlight-color-focused: var(--cf-app-system-color-error);--highlight-color-valid: var(--cf-app-system-color-error)}ion-select.error::part(label){color:var(--cf-app-system-color-error)}\n"], dependencies: [{ kind: "component", type: i1.IonSelect, selector: "ion-select", inputs: ["cancelText", "color", "compareWith", "disabled", "expandedIcon", "fill", "interface", "interfaceOptions", "justify", "label", "labelPlacement", "mode", "multiple", "name", "okText", "placeholder", "selectedText", "shape", "toggleIcon", "value"] }, { kind: "component", type: i1.IonSelectOption, selector: "ion-select-option", inputs: ["disabled", "value"] }, { kind: "directive", type: i1.SelectValueAccessor, selector: "ion-select, ion-radio-group, ion-segment, ion-datetime" }, { kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "component", type: i4.FormValidationComponent, selector: "cf-form-validation", inputs: ["control", "customErrorMessage"] }] });
27
28
  }
28
29
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.8", ngImport: i0, type: FormInputSelectComponent, decorators: [{
29
30
  type: Component,
30
- args: [{ selector: 'cf-form-input-select', template: "<!-- ngModel -->\n<ion-select\n *ngIf=\"!control\"\n [label]=\"label\"\n [labelPlacement]=\"inputLabelPlacement\"\n [placeholder]=\"placeholder\"\n fill=\"outline\"\n mode=\"md\"\n interface=\"popover\"\n (ionChange)=\"valueChange.emit($event.detail.value ?? undefined)\"\n [value]=\"value\">\n <ion-select-option *ngFor=\"let option of options\" [value]=\"option.value\">{{ option.displayName }}</ion-select-option>\n</ion-select>\n<!-- Form Control -->\n<ion-select\n *ngIf=\"control\"\n [label]=\"label\"\n [labelPlacement]=\"inputLabelPlacement\"\n [placeholder]=\"placeholder\"\n fill=\"outline\"\n mode=\"md\"\n interface=\"popover\"\n [formControl]=\"control\"\n (ionChange)=\"valueChange.emit($event.detail.value ?? undefined)\">\n <ion-select-option *ngFor=\"let option of options\" [value]=\"option.value\">{{ option.displayName }}</ion-select-option>\n</ion-select>\n<cf-form-validation *ngIf=\"control\" [control]=\"control\"></cf-form-validation>\n", styles: ["ion-select{font-family:Roboto,sans-serif;font-weight:400;font-style:normal;font-size:1.6rem;color:var(--cf-app-text-color-default);text-align:start;--border-radius: 8px !important;--highlight-color-focused: var(--cf-app-color-primary);--highlight-color-invalid: var(--cf-app-system-color-error);--highlight-color-valid: var(--cf-app-color-primary)}::ng-deep ion-select-popover ion-list[class*=popover]{background:var(--cf-app-background-light)}::ng-deep ion-select-popover ion-list[class*=popover] ion-item[class*=popover]{--background: transparent;--border-radius: 8px;--background-focused: var(--cf-app-color-accent);--background-focused-opacity: .5;--background-hover: var(--cf-app-color-primary);--background-hover-opacity: .1;padding:4px}::ng-deep ion-select-popover ion-list[class*=popover] ion-item[class*=popover] ion-radio{font-family:Roboto,sans-serif;font-weight:400;font-style:normal;font-size:1.6rem;color:var(--cf-app-text-color-default);text-align:start}\n"] }]
31
+ args: [{ selector: 'cf-form-input-select', template: "<!-- ngModel -->\n<ion-select\n *ngIf=\"!control\"\n [ngClass]=\"{ error: !!customErrorMessage }\"\n [label]=\"label\"\n [labelPlacement]=\"inputLabelPlacement\"\n [placeholder]=\"placeholder\"\n fill=\"outline\"\n mode=\"md\"\n interface=\"popover\"\n (ionChange)=\"valueChange.emit($event.detail.value ?? undefined)\"\n [value]=\"value\">\n <ion-select-option *ngFor=\"let option of options\" [value]=\"option.value\">{{ option.displayName }}</ion-select-option>\n</ion-select>\n<!-- Form Control -->\n<ion-select\n *ngIf=\"control\"\n [ngClass]=\"{ error: !!customErrorMessage }\"\n [label]=\"label\"\n [labelPlacement]=\"inputLabelPlacement\"\n [placeholder]=\"placeholder\"\n fill=\"outline\"\n mode=\"md\"\n interface=\"popover\"\n [formControl]=\"control\"\n (ionChange)=\"valueChange.emit($event.detail.value ?? undefined)\">\n <ion-select-option *ngFor=\"let option of options\" [value]=\"option.value\">{{ option.displayName }}</ion-select-option>\n</ion-select>\n<cf-form-validation *ngIf=\"control || customErrorMessage\" [customErrorMessage]=\"customErrorMessage\" [control]=\"control || null\"></cf-form-validation>\n", styles: ["ion-select{font-family:Roboto,sans-serif;font-weight:400;font-style:normal;font-size:1.6rem;color:var(--cf-app-text-color-default);text-align:start;--border-radius: 8px !important;--highlight-color-focused: var(--cf-app-color-primary);--highlight-color-invalid: var(--cf-app-system-color-error);--highlight-color-valid: var(--cf-app-color-primary)}::ng-deep ion-select-popover ion-list[class*=popover]{background:var(--cf-app-background-light)}::ng-deep ion-select-popover ion-list[class*=popover] ion-item[class*=popover]{--background: transparent;--border-radius: 8px;--background-focused: var(--cf-app-color-accent);--background-focused-opacity: .5;--background-hover: var(--cf-app-color-primary);--background-hover-opacity: .1;padding:4px}::ng-deep ion-select-popover ion-list[class*=popover] ion-item[class*=popover] ion-radio{font-family:Roboto,sans-serif;font-weight:400;font-style:normal;font-size:1.6rem;color:var(--cf-app-text-color-default);text-align:start}ion-select.error{--border-color: var(--cf-app-system-color-error);--highlight-color-focused: var(--cf-app-system-color-error);--highlight-color-valid: var(--cf-app-system-color-error)}ion-select.error::part(label){color:var(--cf-app-system-color-error)}\n"] }]
31
32
  }], propDecorators: { label: [{
32
33
  type: Input
33
34
  }], options: [{
@@ -38,9 +39,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.8", ngImpor
38
39
  type: Input
39
40
  }], control: [{
40
41
  type: Input
42
+ }], customErrorMessage: [{
43
+ type: Input
41
44
  }], value: [{
42
45
  type: Input
43
46
  }], valueChange: [{
44
47
  type: Output
45
48
  }] } });
46
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1pbnB1dC1zZWxlY3QuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2FyZWZpcnN0L2xpYnJhcnkvc3JjL2xpYi9jb21wb25lbnRzL2Zvcm0taW5wdXQtc2VsZWN0L2Zvcm0taW5wdXQtc2VsZWN0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NhcmVmaXJzdC9saWJyYXJ5L3NyYy9saWIvY29tcG9uZW50cy9mb3JtLWlucHV0LXNlbGVjdC9mb3JtLWlucHV0LXNlbGVjdC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFrQkEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBc0MsTUFBTSxlQUFlLENBQUM7QUFDM0csT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRTdDLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLDRCQUE0QixDQUFDOzs7Ozs7QUFRakUsTUFBTSxZQUFZLEdBQUc7SUFDbkIsY0FBYyxFQUFFLENBQUMsT0FBTyxFQUFFLFVBQVUsRUFBRSxTQUFTLEVBQUUsT0FBTyxFQUFFLEtBQUssQ0FBQztDQUN4RCxDQUFDO0FBT1gsTUFBTSxPQUFPLHdCQUF3QjtJQUMxQixLQUFLLENBQVU7SUFDZixPQUFPLENBQWdDO0lBQ3ZDLGNBQWMsQ0FBZ0Q7SUFDOUQsV0FBVyxDQUFzQjtJQUNqQyxPQUFPLENBQXNCO0lBRzdCLEtBQUssQ0FBa0Q7SUFDdEQsV0FBVyxHQUFHLElBQUksWUFBWSxFQUFxQixDQUFDO0lBRzlELG1CQUFtQixDQUE2QjtJQU9oRCxXQUFXLENBQUMsT0FBc0I7UUFFaEMsSUFBSSxDQUFDLG1CQUFtQjtZQUN0QixtQkFBbUIsQ0FDakIsT0FBTyxFQUNQLGdCQUFnQixFQUNoQixZQUFZLENBQUMsY0FBYyxDQUFDLEtBQUssRUFBRSxFQUNuQyxJQUFJLENBQUMsbUJBQW1CLENBQ3pCLElBQUksVUFBVSxDQUFDO0lBQ3BCLENBQUM7dUdBNUJVLHdCQUF3QjsyRkFBeEIsd0JBQXdCLDRRQ3RDckMsdTlCQTJCQTs7MkZEV2Esd0JBQXdCO2tCQUxwQyxTQUFTOytCQUNFLHNCQUFzQjs4QkFLdkIsS0FBSztzQkFBYixLQUFLO2dCQUNHLE9BQU87c0JBQWYsS0FBSztnQkFDRyxjQUFjO3NCQUF0QixLQUFLO2dCQUNHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBQ0csT0FBTztzQkFBZixLQUFLO2dCQUdHLEtBQUs7c0JBQWIsS0FBSztnQkFDSSxXQUFXO3NCQUFwQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBDYXJlZmlyc3QgTGlicmFyeSBGb3JtIElucHV0IFNlbGVjdFxuICpcbiAqIEBmaWxlICAgICAgICAgIGZvcm0taW5wdXQtc2VsZWN0LmNvbXBvbmVudFxuICogQGRlc2NyaXB0aW9uICAgQ29udGFpbnMgYWxsIHRoZSBsb2dpYyBmb3IgZ2VuZXJhdGluZyBhIENhcmVGaXJzdCBTZWxlY3RcbiAqIEBhdXRob3IgICAgICAgIEFybm8gSmFuc2VuIHZhbiBWdXVyZW5cbiAqIEBzaW5jZSAgICAgICAgIDIwMjMgLSAxMiAtIDE0XG4gKiBAdXNhZ2UgICAgICAgICA8Y2YtZm9ybS1pbnB1dC1zZWxlY3RcbiAqICAgICAgICAgICAgICAgICAgbGFiZWw9XCJMYWJlbCBOYW1lXCJcbiAqICAgICAgICAgICAgICAgICAgW29wdGlvbnNdPVwiW3sgZGlzcGxheU5hbWU6IHN0cmluZzsgdmFsdWU6IHN0cmluZyB8IG51bWJlciB8IGJvb2xlYW4gfCBudWxsIHwgdW5kZWZpbmVkIH1dXCJcbiAqICAgICAgICAgICAgICAgICAgJWxhYmVsUGxhY2VtZW50JVxuICogICAgICAgICAgICAgICAgICAlKHZhbHVlQ2hhbmdlKT1cImN1cnJlbnRWYWx1ZVwiJVxuICogICAgICAgICAgICAgICAgICAlWyh2YWx1ZSldPVwidHdvV2F5Q29tc1wiJVxuICogICAgICAgICAgICAgICAgICAlW2NvbnRyb2xdJT1cImZvcm1OYW1lLmNvbnRyb2xzLmNvbnRyb2xOYW1lXCJcbiAqICAgICAgICAgICAgICAgID48L2NmLWZvcm0taW5wdXQtc2VsZWN0PlxuICogICAgICAgICAgICAgICAgZGlzYWJsZSBpbnB1dCBieSBkaXNhYmxpbmcgdGhlIGZvcm0gY29udHJvbFxuICovXG5cbmltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT3V0cHV0LCB0eXBlIE9uQ2hhbmdlcywgdHlwZSBTaW1wbGVDaGFuZ2VzIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3JtQ29udHJvbCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbi8vLS0tIFV0aWxzXG5pbXBvcnQgeyB2YWxpZGF0ZVN0cmluZ1ZhbHVlIH0gZnJvbSAnLi4vLi4vdXRpbHMvYXR0cmlidXRlLnV0aWwnO1xuLy8tLS0gSW50ZXJmYWNlc1xuaW1wb3J0IHR5cGUgeyBGb3JtSW5wdXRTZWxlY3RPcHRpb25zSSB9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMvaW5wdXQuaW50ZXJmYWNlJztcblxuLyoqPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICogQGludGVyZmFjZSAgICAgaW5wdXRTZWxlY3RDXG4gKiBAZGVzY3JpcHRpb24gICBEZWZpbmUgYXZhaWxhYmxlIGlucHV0IHNlbGVjdCB2YWx1ZXNcbiAqL1xuY29uc3QgaW5wdXRTZWxlY3RDID0ge1xuICBsYWJlbFBsYWNlbWVudDogWydmaXhlZCcsICdmbG9hdGluZycsICdzdGFja2VkJywgJ3N0YXJ0JywgJ2VuZCddLFxufSBhcyBjb25zdDtcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnY2YtZm9ybS1pbnB1dC1zZWxlY3QnLFxuICB0ZW1wbGF0ZVVybDogJy4vZm9ybS1pbnB1dC1zZWxlY3QuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybDogJy4vZm9ybS1pbnB1dC1zZWxlY3QuY29tcG9uZW50LnNjc3MnLFxufSlcbmV4cG9ydCBjbGFzcyBGb3JtSW5wdXRTZWxlY3RDb21wb25lbnQ8VD4gaW1wbGVtZW50cyBPbkNoYW5nZXMge1xuICBASW5wdXQoKSBsYWJlbCE6IHN0cmluZztcbiAgQElucHV0KCkgb3B0aW9ucyE6IEZvcm1JbnB1dFNlbGVjdE9wdGlvbnNJPFQ+W107XG4gIEBJbnB1dCgpIGxhYmVsUGxhY2VtZW50PzogKHR5cGVvZiBpbnB1dFNlbGVjdEMubGFiZWxQbGFjZW1lbnQpW251bWJlcl07XG4gIEBJbnB1dCgpIHBsYWNlaG9sZGVyPzogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICBASW5wdXQoKSBjb250cm9sPzogRm9ybUNvbnRyb2wgfCBudWxsO1xuXG4gIC8vLS0tIG5nTW9kZWxcbiAgQElucHV0KCkgdmFsdWU6IEZvcm1JbnB1dFNlbGVjdE9wdGlvbnNJPFQ+Wyd2YWx1ZSddIHwgdW5kZWZpbmVkO1xuICBAT3V0cHV0KCkgdmFsdWVDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPHR5cGVvZiB0aGlzLnZhbHVlPigpO1xuXG4gIC8vLS0tIExvY2FsIHZhcmlhYmxlc1xuICBpbnB1dExhYmVsUGxhY2VtZW50OiB0eXBlb2YgdGhpcy5sYWJlbFBsYWNlbWVudDtcblxuICAvKiotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAqIEBuYW1lICAgICAgICAgIG5nT25DaGFuZ2VzXG4gICAqIEBkZXNjcmlwdGlvbiAgIERldGVjdCBjaGFuZ2VzIHRvIGlucHV0IHZhbHVlc1xuICAgKiBAcGFyYW0gICAgICAgICB7U2ltcGxlQ2hhbmdlc30gY2hhbmdlc1xuICAgKi9cbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuICAgIC8vLS0tIExhYmVsIFBsYWNlbWVudFxuICAgIHRoaXMuaW5wdXRMYWJlbFBsYWNlbWVudCA9XG4gICAgICB2YWxpZGF0ZVN0cmluZ1ZhbHVlPCh0eXBlb2YgaW5wdXRTZWxlY3RDLmxhYmVsUGxhY2VtZW50KVtudW1iZXJdPihcbiAgICAgICAgY2hhbmdlcyxcbiAgICAgICAgJ2xhYmVsUGxhY2VtZW50JyxcbiAgICAgICAgaW5wdXRTZWxlY3RDLmxhYmVsUGxhY2VtZW50LnNsaWNlKCksXG4gICAgICAgIHRoaXMuaW5wdXRMYWJlbFBsYWNlbWVudFxuICAgICAgKSB8fCAnZmxvYXRpbmcnO1xuICB9XG59XG4iLCI8IS0tIG5nTW9kZWwgLS0+XG48aW9uLXNlbGVjdFxuICAqbmdJZj1cIiFjb250cm9sXCJcbiAgW2xhYmVsXT1cImxhYmVsXCJcbiAgW2xhYmVsUGxhY2VtZW50XT1cImlucHV0TGFiZWxQbGFjZW1lbnRcIlxuICBbcGxhY2Vob2xkZXJdPVwicGxhY2Vob2xkZXJcIlxuICBmaWxsPVwib3V0bGluZVwiXG4gIG1vZGU9XCJtZFwiXG4gIGludGVyZmFjZT1cInBvcG92ZXJcIlxuICAoaW9uQ2hhbmdlKT1cInZhbHVlQ2hhbmdlLmVtaXQoJGV2ZW50LmRldGFpbC52YWx1ZSA/PyB1bmRlZmluZWQpXCJcbiAgW3ZhbHVlXT1cInZhbHVlXCI+XG4gIDxpb24tc2VsZWN0LW9wdGlvbiAqbmdGb3I9XCJsZXQgb3B0aW9uIG9mIG9wdGlvbnNcIiBbdmFsdWVdPVwib3B0aW9uLnZhbHVlXCI+e3sgb3B0aW9uLmRpc3BsYXlOYW1lIH19PC9pb24tc2VsZWN0LW9wdGlvbj5cbjwvaW9uLXNlbGVjdD5cbjwhLS0gRm9ybSBDb250cm9sIC0tPlxuPGlvbi1zZWxlY3RcbiAgKm5nSWY9XCJjb250cm9sXCJcbiAgW2xhYmVsXT1cImxhYmVsXCJcbiAgW2xhYmVsUGxhY2VtZW50XT1cImlucHV0TGFiZWxQbGFjZW1lbnRcIlxuICBbcGxhY2Vob2xkZXJdPVwicGxhY2Vob2xkZXJcIlxuICBmaWxsPVwib3V0bGluZVwiXG4gIG1vZGU9XCJtZFwiXG4gIGludGVyZmFjZT1cInBvcG92ZXJcIlxuICBbZm9ybUNvbnRyb2xdPVwiY29udHJvbFwiXG4gIChpb25DaGFuZ2UpPVwidmFsdWVDaGFuZ2UuZW1pdCgkZXZlbnQuZGV0YWlsLnZhbHVlID8/IHVuZGVmaW5lZClcIj5cbiAgPGlvbi1zZWxlY3Qtb3B0aW9uICpuZ0Zvcj1cImxldCBvcHRpb24gb2Ygb3B0aW9uc1wiIFt2YWx1ZV09XCJvcHRpb24udmFsdWVcIj57eyBvcHRpb24uZGlzcGxheU5hbWUgfX08L2lvbi1zZWxlY3Qtb3B0aW9uPlxuPC9pb24tc2VsZWN0PlxuPGNmLWZvcm0tdmFsaWRhdGlvbiAqbmdJZj1cImNvbnRyb2xcIiBbY29udHJvbF09XCJjb250cm9sXCI+PC9jZi1mb3JtLXZhbGlkYXRpb24+XG4iXX0=
49
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1pbnB1dC1zZWxlY3QuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2FyZWZpcnN0L2xpYnJhcnkvc3JjL2xpYi9jb21wb25lbnRzL2Zvcm0taW5wdXQtc2VsZWN0L2Zvcm0taW5wdXQtc2VsZWN0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NhcmVmaXJzdC9saWJyYXJ5L3NyYy9saWIvY29tcG9uZW50cy9mb3JtLWlucHV0LXNlbGVjdC9mb3JtLWlucHV0LXNlbGVjdC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFtQkEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBc0MsTUFBTSxlQUFlLENBQUM7QUFDM0csT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRTdDLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLDRCQUE0QixDQUFDOzs7Ozs7QUFRakUsTUFBTSxZQUFZLEdBQUc7SUFDbkIsY0FBYyxFQUFFLENBQUMsT0FBTyxFQUFFLFVBQVUsRUFBRSxTQUFTLEVBQUUsT0FBTyxFQUFFLEtBQUssQ0FBQztDQUN4RCxDQUFDO0FBT1gsTUFBTSxPQUFPLHdCQUF3QjtJQUMxQixLQUFLLENBQVU7SUFDZixPQUFPLENBQWdDO0lBQ3ZDLGNBQWMsQ0FBZ0Q7SUFDOUQsV0FBVyxDQUFzQjtJQUNqQyxPQUFPLENBQXNCO0lBQzdCLGtCQUFrQixHQUFrQixJQUFJLENBQUM7SUFHekMsS0FBSyxDQUFrRDtJQUN0RCxXQUFXLEdBQUcsSUFBSSxZQUFZLEVBQXFCLENBQUM7SUFHOUQsbUJBQW1CLENBQTZCO0lBT2hELFdBQVcsQ0FBQyxPQUFzQjtRQUVoQyxJQUFJLENBQUMsbUJBQW1CO1lBQ3RCLG1CQUFtQixDQUNqQixPQUFPLEVBQ1AsZ0JBQWdCLEVBQ2hCLFlBQVksQ0FBQyxjQUFjLENBQUMsS0FBSyxFQUFFLEVBQ25DLElBQUksQ0FBQyxtQkFBbUIsQ0FDekIsSUFBSSxVQUFVLENBQUM7SUFDcEIsQ0FBQzt1R0E3QlUsd0JBQXdCOzJGQUF4Qix3QkFBd0Isc1RDdkNyQyxtb0NBNkJBOzsyRkRVYSx3QkFBd0I7a0JBTHBDLFNBQVM7K0JBQ0Usc0JBQXNCOzhCQUt2QixLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csT0FBTztzQkFBZixLQUFLO2dCQUNHLGNBQWM7c0JBQXRCLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFDRyxPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csa0JBQWtCO3NCQUExQixLQUFLO2dCQUdHLEtBQUs7c0JBQWIsS0FBSztnQkFDSSxXQUFXO3NCQUFwQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBDYXJlZmlyc3QgTGlicmFyeSBGb3JtIElucHV0IFNlbGVjdFxuICpcbiAqIEBmaWxlICAgICAgICAgIGZvcm0taW5wdXQtc2VsZWN0LmNvbXBvbmVudFxuICogQGRlc2NyaXB0aW9uICAgQ29udGFpbnMgYWxsIHRoZSBsb2dpYyBmb3IgZ2VuZXJhdGluZyBhIENhcmVGaXJzdCBTZWxlY3RcbiAqIEBhdXRob3IgICAgICAgIEFybm8gSmFuc2VuIHZhbiBWdXVyZW5cbiAqIEBzaW5jZSAgICAgICAgIDIwMjMgLSAxMiAtIDE0XG4gKiBAdXNhZ2UgICAgICAgICA8Y2YtZm9ybS1pbnB1dC1zZWxlY3RcbiAqICAgICAgICAgICAgICAgICAgbGFiZWw9XCJMYWJlbCBOYW1lXCJcbiAqICAgICAgICAgICAgICAgICAgW29wdGlvbnNdPVwiW3sgZGlzcGxheU5hbWU6IHN0cmluZzsgdmFsdWU6IHN0cmluZyB8IG51bWJlciB8IGJvb2xlYW4gfCBudWxsIHwgdW5kZWZpbmVkIH1dXCJcbiAqICAgICAgICAgICAgICAgICAgJWxhYmVsUGxhY2VtZW50JVxuICogICAgICAgICAgICAgICAgICAlKHZhbHVlQ2hhbmdlKT1cImN1cnJlbnRWYWx1ZVwiJVxuICogICAgICAgICAgICAgICAgICAlWyh2YWx1ZSldPVwidHdvV2F5Q29tc1wiJVxuICogICAgICAgICAgICAgICAgICAlW2NvbnRyb2xdJT1cImZvcm1OYW1lLmNvbnRyb2xzLmNvbnRyb2xOYW1lXCJcbiAqICAgICAgICAgICAgICAgICAgJVtjdXN0b21FcnJvck1lc3NhZ2VdJT1cImVycm9yTWVzc2FnZVwiXG4gKiAgICAgICAgICAgICAgICA+PC9jZi1mb3JtLWlucHV0LXNlbGVjdD5cbiAqICAgICAgICAgICAgICAgIGRpc2FibGUgaW5wdXQgYnkgZGlzYWJsaW5nIHRoZSBmb3JtIGNvbnRyb2xcbiAqL1xuXG5pbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE91dHB1dCwgdHlwZSBPbkNoYW5nZXMsIHR5cGUgU2ltcGxlQ2hhbmdlcyB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9ybUNvbnRyb2wgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG4vLy0tLSBVdGlsc1xuaW1wb3J0IHsgdmFsaWRhdGVTdHJpbmdWYWx1ZSB9IGZyb20gJy4uLy4uL3V0aWxzL2F0dHJpYnV0ZS51dGlsJztcbi8vLS0tIEludGVyZmFjZXNcbmltcG9ydCB0eXBlIHsgRm9ybUlucHV0U2VsZWN0T3B0aW9uc0kgfSBmcm9tICcuLi8uLi9pbnRlcmZhY2VzL2lucHV0LmludGVyZmFjZSc7XG5cbi8qKj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAqIEBpbnRlcmZhY2UgICAgIGlucHV0U2VsZWN0Q1xuICogQGRlc2NyaXB0aW9uICAgRGVmaW5lIGF2YWlsYWJsZSBpbnB1dCBzZWxlY3QgdmFsdWVzXG4gKi9cbmNvbnN0IGlucHV0U2VsZWN0QyA9IHtcbiAgbGFiZWxQbGFjZW1lbnQ6IFsnZml4ZWQnLCAnZmxvYXRpbmcnLCAnc3RhY2tlZCcsICdzdGFydCcsICdlbmQnXSxcbn0gYXMgY29uc3Q7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2NmLWZvcm0taW5wdXQtc2VsZWN0JyxcbiAgdGVtcGxhdGVVcmw6ICcuL2Zvcm0taW5wdXQtc2VsZWN0LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmw6ICcuL2Zvcm0taW5wdXQtc2VsZWN0LmNvbXBvbmVudC5zY3NzJyxcbn0pXG5leHBvcnQgY2xhc3MgRm9ybUlucHV0U2VsZWN0Q29tcG9uZW50PFQ+IGltcGxlbWVudHMgT25DaGFuZ2VzIHtcbiAgQElucHV0KCkgbGFiZWwhOiBzdHJpbmc7XG4gIEBJbnB1dCgpIG9wdGlvbnMhOiBGb3JtSW5wdXRTZWxlY3RPcHRpb25zSTxUPltdO1xuICBASW5wdXQoKSBsYWJlbFBsYWNlbWVudD86ICh0eXBlb2YgaW5wdXRTZWxlY3RDLmxhYmVsUGxhY2VtZW50KVtudW1iZXJdO1xuICBASW5wdXQoKSBwbGFjZWhvbGRlcj86IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgQElucHV0KCkgY29udHJvbD86IEZvcm1Db250cm9sIHwgbnVsbDtcbiAgQElucHV0KCkgY3VzdG9tRXJyb3JNZXNzYWdlOiBzdHJpbmcgfCBudWxsID0gbnVsbDtcblxuICAvLy0tLSBuZ01vZGVsXG4gIEBJbnB1dCgpIHZhbHVlOiBGb3JtSW5wdXRTZWxlY3RPcHRpb25zSTxUPlsndmFsdWUnXSB8IHVuZGVmaW5lZDtcbiAgQE91dHB1dCgpIHZhbHVlQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjx0eXBlb2YgdGhpcy52YWx1ZT4oKTtcblxuICAvLy0tLSBMb2NhbCB2YXJpYWJsZXNcbiAgaW5wdXRMYWJlbFBsYWNlbWVudDogdHlwZW9mIHRoaXMubGFiZWxQbGFjZW1lbnQ7XG5cbiAgLyoqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgKiBAbmFtZSAgICAgICAgICBuZ09uQ2hhbmdlc1xuICAgKiBAZGVzY3JpcHRpb24gICBEZXRlY3QgY2hhbmdlcyB0byBpbnB1dCB2YWx1ZXNcbiAgICogQHBhcmFtICAgICAgICAge1NpbXBsZUNoYW5nZXN9IGNoYW5nZXNcbiAgICovXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICAvLy0tLSBMYWJlbCBQbGFjZW1lbnRcbiAgICB0aGlzLmlucHV0TGFiZWxQbGFjZW1lbnQgPVxuICAgICAgdmFsaWRhdGVTdHJpbmdWYWx1ZTwodHlwZW9mIGlucHV0U2VsZWN0Qy5sYWJlbFBsYWNlbWVudClbbnVtYmVyXT4oXG4gICAgICAgIGNoYW5nZXMsXG4gICAgICAgICdsYWJlbFBsYWNlbWVudCcsXG4gICAgICAgIGlucHV0U2VsZWN0Qy5sYWJlbFBsYWNlbWVudC5zbGljZSgpLFxuICAgICAgICB0aGlzLmlucHV0TGFiZWxQbGFjZW1lbnRcbiAgICAgICkgfHwgJ2Zsb2F0aW5nJztcbiAgfVxufVxuIiwiPCEtLSBuZ01vZGVsIC0tPlxuPGlvbi1zZWxlY3RcbiAgKm5nSWY9XCIhY29udHJvbFwiXG4gIFtuZ0NsYXNzXT1cInsgZXJyb3I6ICEhY3VzdG9tRXJyb3JNZXNzYWdlIH1cIlxuICBbbGFiZWxdPVwibGFiZWxcIlxuICBbbGFiZWxQbGFjZW1lbnRdPVwiaW5wdXRMYWJlbFBsYWNlbWVudFwiXG4gIFtwbGFjZWhvbGRlcl09XCJwbGFjZWhvbGRlclwiXG4gIGZpbGw9XCJvdXRsaW5lXCJcbiAgbW9kZT1cIm1kXCJcbiAgaW50ZXJmYWNlPVwicG9wb3ZlclwiXG4gIChpb25DaGFuZ2UpPVwidmFsdWVDaGFuZ2UuZW1pdCgkZXZlbnQuZGV0YWlsLnZhbHVlID8/IHVuZGVmaW5lZClcIlxuICBbdmFsdWVdPVwidmFsdWVcIj5cbiAgPGlvbi1zZWxlY3Qtb3B0aW9uICpuZ0Zvcj1cImxldCBvcHRpb24gb2Ygb3B0aW9uc1wiIFt2YWx1ZV09XCJvcHRpb24udmFsdWVcIj57eyBvcHRpb24uZGlzcGxheU5hbWUgfX08L2lvbi1zZWxlY3Qtb3B0aW9uPlxuPC9pb24tc2VsZWN0PlxuPCEtLSBGb3JtIENvbnRyb2wgLS0+XG48aW9uLXNlbGVjdFxuICAqbmdJZj1cImNvbnRyb2xcIlxuICBbbmdDbGFzc109XCJ7IGVycm9yOiAhIWN1c3RvbUVycm9yTWVzc2FnZSB9XCJcbiAgW2xhYmVsXT1cImxhYmVsXCJcbiAgW2xhYmVsUGxhY2VtZW50XT1cImlucHV0TGFiZWxQbGFjZW1lbnRcIlxuICBbcGxhY2Vob2xkZXJdPVwicGxhY2Vob2xkZXJcIlxuICBmaWxsPVwib3V0bGluZVwiXG4gIG1vZGU9XCJtZFwiXG4gIGludGVyZmFjZT1cInBvcG92ZXJcIlxuICBbZm9ybUNvbnRyb2xdPVwiY29udHJvbFwiXG4gIChpb25DaGFuZ2UpPVwidmFsdWVDaGFuZ2UuZW1pdCgkZXZlbnQuZGV0YWlsLnZhbHVlID8/IHVuZGVmaW5lZClcIj5cbiAgPGlvbi1zZWxlY3Qtb3B0aW9uICpuZ0Zvcj1cImxldCBvcHRpb24gb2Ygb3B0aW9uc1wiIFt2YWx1ZV09XCJvcHRpb24udmFsdWVcIj57eyBvcHRpb24uZGlzcGxheU5hbWUgfX08L2lvbi1zZWxlY3Qtb3B0aW9uPlxuPC9pb24tc2VsZWN0PlxuPGNmLWZvcm0tdmFsaWRhdGlvbiAqbmdJZj1cImNvbnRyb2wgfHwgY3VzdG9tRXJyb3JNZXNzYWdlXCIgW2N1c3RvbUVycm9yTWVzc2FnZV09XCJjdXN0b21FcnJvck1lc3NhZ2VcIiBbY29udHJvbF09XCJjb250cm9sIHx8IG51bGxcIj48L2NmLWZvcm0tdmFsaWRhdGlvbj5cbiJdfQ==
@@ -18,6 +18,7 @@ export class FormInputTextAreaComponent {
18
18
  textCenter;
19
19
  minHeight = 'none';
20
20
  maxHeight = 'none';
21
+ customErrorMessage = null;
21
22
  value;
22
23
  valueChange = new EventEmitter();
23
24
  inputLabelPlacement;
@@ -32,11 +33,11 @@ export class FormInputTextAreaComponent {
32
33
  validateStringValue(changes, 'autoCapitalize', inputTextAreaC.autoCapitalize.slice(), this.inputAutoCapitalize) || 'none';
33
34
  }
34
35
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.8", ngImport: i0, type: FormInputTextAreaComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
35
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.8", type: FormInputTextAreaComponent, selector: "cf-form-input-text-area", inputs: { label: "label", labelPlacement: "labelPlacement", placeholder: "placeholder", autoCapitalize: "autoCapitalize", control: "control", textCenter: "textCenter", minHeight: "minHeight", maxHeight: "maxHeight", value: "value" }, outputs: { valueChange: "valueChange" }, usesOnChanges: true, ngImport: i0, template: "<!-- ngModel -->\n<ion-textarea\n [style]=\"'min-height: ' + minHeight + '; max-height: ' + maxHeight\"\n *ngIf=\"!control\"\n [placeholder]=\"placeholder\"\n [ngClass]=\"{ 'text-center': inputTextCenter }\"\n [label]=\"label\"\n [labelPlacement]=\"inputLabelPlacement\"\n fill=\"outline\"\n [autocapitalize]=\"autoCapitalize\"\n [autoGrow]=\"true\"\n mode=\"md\"\n (ionInput)=\"valueChange.emit($event.detail.value ?? undefined)\"\n [value]=\"value\"></ion-textarea>\n<!-- Form Control -->\n<ion-textarea\n [style]=\"'min-height: ' + minHeight + '; max-height: ' + maxHeight\"\n *ngIf=\"control\"\n [placeholder]=\"placeholder\"\n [ngClass]=\"{ 'text-center': inputTextCenter }\"\n [label]=\"label\"\n [labelPlacement]=\"inputLabelPlacement\"\n fill=\"outline\"\n [autocapitalize]=\"autoCapitalize\"\n [autoGrow]=\"true\"\n mode=\"md\"\n [formControl]=\"control\"\n (ionInput)=\"valueChange.emit($event.detail.value ?? undefined)\"></ion-textarea>\n<cf-form-validation *ngIf=\"control\" [control]=\"control\"></cf-form-validation>\n", styles: ["ion-textarea{font-family:Roboto,sans-serif;font-weight:400;font-style:normal;font-size:1.6rem;color:var(--cf-app-text-color-default);text-align:start;--border-radius: 8px !important;--highlight-color-focused: var(--cf-app-color-primary);--highlight-color-invalid: var(--cf-app-system-color-error);--highlight-color-valid: var(--cf-app-color-primary)}ion-textarea.text-center{text-align:center}\n"], dependencies: [{ kind: "component", type: i1.IonTextarea, selector: "ion-textarea", inputs: ["autoGrow", "autocapitalize", "autofocus", "clearOnEdit", "color", "cols", "counter", "counterFormatter", "debounce", "disabled", "enterkeyhint", "errorText", "fill", "helperText", "inputmode", "label", "labelPlacement", "maxlength", "minlength", "mode", "name", "placeholder", "readonly", "required", "rows", "shape", "spellcheck", "value", "wrap"] }, { kind: "directive", type: i1.TextValueAccessor, selector: "ion-input:not([type=number]),ion-textarea,ion-searchbar" }, { kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "component", type: i4.FormValidationComponent, selector: "cf-form-validation", inputs: ["control"] }] });
36
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.8", type: FormInputTextAreaComponent, selector: "cf-form-input-text-area", inputs: { label: "label", labelPlacement: "labelPlacement", placeholder: "placeholder", autoCapitalize: "autoCapitalize", control: "control", textCenter: "textCenter", minHeight: "minHeight", maxHeight: "maxHeight", customErrorMessage: "customErrorMessage", value: "value" }, outputs: { valueChange: "valueChange" }, usesOnChanges: true, ngImport: i0, template: "<!-- ngModel -->\n<ion-textarea\n [style]=\"'min-height: ' + minHeight + '; max-height: ' + maxHeight\"\n *ngIf=\"!control\"\n [placeholder]=\"placeholder\"\n [ngClass]=\"{ 'text-center': inputTextCenter, error: !!customErrorMessage }\"\n [label]=\"label\"\n [labelPlacement]=\"inputLabelPlacement\"\n fill=\"outline\"\n [autocapitalize]=\"autoCapitalize\"\n [autoGrow]=\"true\"\n mode=\"md\"\n (ionInput)=\"valueChange.emit($event.detail.value ?? undefined)\"\n [value]=\"value\"></ion-textarea>\n<!-- Form Control -->\n<ion-textarea\n [style]=\"'min-height: ' + minHeight + '; max-height: ' + maxHeight\"\n *ngIf=\"control\"\n [placeholder]=\"placeholder\"\n [ngClass]=\"{ 'text-center': inputTextCenter, error: !!customErrorMessage }\"\n [label]=\"label\"\n [labelPlacement]=\"inputLabelPlacement\"\n fill=\"outline\"\n [autocapitalize]=\"autoCapitalize\"\n [autoGrow]=\"true\"\n mode=\"md\"\n [formControl]=\"control\"\n (ionInput)=\"valueChange.emit($event.detail.value ?? undefined)\"></ion-textarea>\n<cf-form-validation *ngIf=\"control || customErrorMessage\" [customErrorMessage]=\"customErrorMessage\" [control]=\"control || null\"></cf-form-validation>\n", styles: ["::ng-deep ion-textarea.error .label-text{color:var(--cf-app-system-color-error)}ion-textarea{font-family:Roboto,sans-serif;font-weight:400;font-style:normal;font-size:1.6rem;color:var(--cf-app-text-color-default);text-align:start;--border-radius: 8px !important;--highlight-color-focused: var(--cf-app-color-primary);--highlight-color-invalid: var(--cf-app-system-color-error);--highlight-color-valid: var(--cf-app-color-primary)}ion-textarea.text-center{text-align:center}ion-textarea.error{--border-color: var(--cf-app-system-color-error);--highlight-color-focused: var(--cf-app-system-color-error);--highlight-color-valid: var(--cf-app-system-color-error)}\n"], dependencies: [{ kind: "component", type: i1.IonTextarea, selector: "ion-textarea", inputs: ["autoGrow", "autocapitalize", "autofocus", "clearOnEdit", "color", "cols", "counter", "counterFormatter", "debounce", "disabled", "enterkeyhint", "errorText", "fill", "helperText", "inputmode", "label", "labelPlacement", "maxlength", "minlength", "mode", "name", "placeholder", "readonly", "required", "rows", "shape", "spellcheck", "value", "wrap"] }, { kind: "directive", type: i1.TextValueAccessor, selector: "ion-input:not([type=number]),ion-textarea,ion-searchbar" }, { kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "component", type: i4.FormValidationComponent, selector: "cf-form-validation", inputs: ["control", "customErrorMessage"] }] });
36
37
  }
37
38
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.8", ngImport: i0, type: FormInputTextAreaComponent, decorators: [{
38
39
  type: Component,
39
- args: [{ selector: 'cf-form-input-text-area', template: "<!-- ngModel -->\n<ion-textarea\n [style]=\"'min-height: ' + minHeight + '; max-height: ' + maxHeight\"\n *ngIf=\"!control\"\n [placeholder]=\"placeholder\"\n [ngClass]=\"{ 'text-center': inputTextCenter }\"\n [label]=\"label\"\n [labelPlacement]=\"inputLabelPlacement\"\n fill=\"outline\"\n [autocapitalize]=\"autoCapitalize\"\n [autoGrow]=\"true\"\n mode=\"md\"\n (ionInput)=\"valueChange.emit($event.detail.value ?? undefined)\"\n [value]=\"value\"></ion-textarea>\n<!-- Form Control -->\n<ion-textarea\n [style]=\"'min-height: ' + minHeight + '; max-height: ' + maxHeight\"\n *ngIf=\"control\"\n [placeholder]=\"placeholder\"\n [ngClass]=\"{ 'text-center': inputTextCenter }\"\n [label]=\"label\"\n [labelPlacement]=\"inputLabelPlacement\"\n fill=\"outline\"\n [autocapitalize]=\"autoCapitalize\"\n [autoGrow]=\"true\"\n mode=\"md\"\n [formControl]=\"control\"\n (ionInput)=\"valueChange.emit($event.detail.value ?? undefined)\"></ion-textarea>\n<cf-form-validation *ngIf=\"control\" [control]=\"control\"></cf-form-validation>\n", styles: ["ion-textarea{font-family:Roboto,sans-serif;font-weight:400;font-style:normal;font-size:1.6rem;color:var(--cf-app-text-color-default);text-align:start;--border-radius: 8px !important;--highlight-color-focused: var(--cf-app-color-primary);--highlight-color-invalid: var(--cf-app-system-color-error);--highlight-color-valid: var(--cf-app-color-primary)}ion-textarea.text-center{text-align:center}\n"] }]
40
+ args: [{ selector: 'cf-form-input-text-area', template: "<!-- ngModel -->\n<ion-textarea\n [style]=\"'min-height: ' + minHeight + '; max-height: ' + maxHeight\"\n *ngIf=\"!control\"\n [placeholder]=\"placeholder\"\n [ngClass]=\"{ 'text-center': inputTextCenter, error: !!customErrorMessage }\"\n [label]=\"label\"\n [labelPlacement]=\"inputLabelPlacement\"\n fill=\"outline\"\n [autocapitalize]=\"autoCapitalize\"\n [autoGrow]=\"true\"\n mode=\"md\"\n (ionInput)=\"valueChange.emit($event.detail.value ?? undefined)\"\n [value]=\"value\"></ion-textarea>\n<!-- Form Control -->\n<ion-textarea\n [style]=\"'min-height: ' + minHeight + '; max-height: ' + maxHeight\"\n *ngIf=\"control\"\n [placeholder]=\"placeholder\"\n [ngClass]=\"{ 'text-center': inputTextCenter, error: !!customErrorMessage }\"\n [label]=\"label\"\n [labelPlacement]=\"inputLabelPlacement\"\n fill=\"outline\"\n [autocapitalize]=\"autoCapitalize\"\n [autoGrow]=\"true\"\n mode=\"md\"\n [formControl]=\"control\"\n (ionInput)=\"valueChange.emit($event.detail.value ?? undefined)\"></ion-textarea>\n<cf-form-validation *ngIf=\"control || customErrorMessage\" [customErrorMessage]=\"customErrorMessage\" [control]=\"control || null\"></cf-form-validation>\n", styles: ["::ng-deep ion-textarea.error .label-text{color:var(--cf-app-system-color-error)}ion-textarea{font-family:Roboto,sans-serif;font-weight:400;font-style:normal;font-size:1.6rem;color:var(--cf-app-text-color-default);text-align:start;--border-radius: 8px !important;--highlight-color-focused: var(--cf-app-color-primary);--highlight-color-invalid: var(--cf-app-system-color-error);--highlight-color-valid: var(--cf-app-color-primary)}ion-textarea.text-center{text-align:center}ion-textarea.error{--border-color: var(--cf-app-system-color-error);--highlight-color-focused: var(--cf-app-system-color-error);--highlight-color-valid: var(--cf-app-system-color-error)}\n"] }]
40
41
  }], propDecorators: { label: [{
41
42
  type: Input
42
43
  }], labelPlacement: [{
@@ -53,9 +54,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.8", ngImpor
53
54
  type: Input
54
55
  }], maxHeight: [{
55
56
  type: Input
57
+ }], customErrorMessage: [{
58
+ type: Input
56
59
  }], value: [{
57
60
  type: Input
58
61
  }], valueChange: [{
59
62
  type: Output
60
63
  }] } });
61
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1pbnB1dC10ZXh0LWFyZWEuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2FyZWZpcnN0L2xpYnJhcnkvc3JjL2xpYi9jb21wb25lbnRzL2Zvcm0taW5wdXQtdGV4dC1hcmVhL2Zvcm0taW5wdXQtdGV4dC1hcmVhLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NhcmVmaXJzdC9saWJyYXJ5L3NyYy9saWIvY29tcG9uZW50cy9mb3JtLWlucHV0LXRleHQtYXJlYS9mb3JtLWlucHV0LXRleHQtYXJlYS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFtQkEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBc0MsTUFBTSxlQUFlLENBQUM7QUFHM0csT0FBTyxFQUFFLG1CQUFtQixFQUFFLG1CQUFtQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7Ozs7OztBQU10RixNQUFNLGNBQWMsR0FBRztJQUNyQixjQUFjLEVBQUUsQ0FBQyxPQUFPLEVBQUUsVUFBVSxFQUFFLFNBQVMsRUFBRSxPQUFPLEVBQUUsS0FBSyxDQUFDO0lBQ2hFLGNBQWMsRUFBRSxDQUFDLEtBQUssRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFLFdBQVcsRUFBRSxPQUFPLEVBQUUsWUFBWSxDQUFDO0NBQ2pFLENBQUM7QUFPWCxNQUFNLE9BQU8sMEJBQTBCO0lBQzVCLEtBQUssQ0FBVTtJQUNmLGNBQWMsQ0FBa0Q7SUFDaEUsV0FBVyxDQUFzQjtJQUNqQyxjQUFjLENBQWtEO0lBQ2hFLE9BQU8sQ0FBc0I7SUFDN0IsVUFBVSxDQUFnQztJQUMxQyxTQUFTLEdBQXFCLE1BQU0sQ0FBQztJQUNyQyxTQUFTLEdBQXFCLE1BQU0sQ0FBQztJQUdyQyxLQUFLLENBQXFCO0lBQ3pCLFdBQVcsR0FBRyxJQUFJLFlBQVksRUFBcUIsQ0FBQztJQUc5RCxtQkFBbUIsQ0FBNkI7SUFDaEQsVUFBVSxHQUFHLElBQUksQ0FBQztJQUNsQixlQUFlLEdBQUcsS0FBSyxDQUFDO0lBQ3hCLG1CQUFtQixDQUE2QjtJQU9oRCxXQUFXLENBQUMsT0FBc0I7UUFFaEMsSUFBSSxDQUFDLG1CQUFtQjtZQUN0QixtQkFBbUIsQ0FDakIsT0FBTyxFQUNQLGdCQUFnQixFQUNoQixjQUFjLENBQUMsY0FBYyxDQUFDLEtBQUssRUFBRSxFQUNyQyxJQUFJLENBQUMsbUJBQW1CLENBQ3pCLElBQUksVUFBVSxDQUFDO1FBRWxCLElBQUksQ0FBQyxlQUFlLEdBQUcsbUJBQW1CLENBQUMsT0FBTyxFQUFFLFlBQVksRUFBRSxJQUFJLENBQUMsZUFBZSxDQUFDLENBQUM7UUFFeEYsSUFBSSxDQUFDLG1CQUFtQjtZQUN0QixtQkFBbUIsQ0FDakIsT0FBTyxFQUNQLGdCQUFnQixFQUNoQixjQUFjLENBQUMsY0FBYyxDQUFDLEtBQUssRUFBRSxFQUNyQyxJQUFJLENBQUMsbUJBQW1CLENBQ3pCLElBQUksTUFBTSxDQUFDO0lBQ2hCLENBQUM7dUdBNUNVLDBCQUEwQjsyRkFBMUIsMEJBQTBCLHVXQ3RDdkMsbWlDQTZCQTs7MkZEU2EsMEJBQTBCO2tCQUx0QyxTQUFTOytCQUNFLHlCQUF5Qjs4QkFLMUIsS0FBSztzQkFBYixLQUFLO2dCQUNHLGNBQWM7c0JBQXRCLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFDRyxjQUFjO3NCQUF0QixLQUFLO2dCQUNHLE9BQU87c0JBQWYsS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLO2dCQUNHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSztnQkFHRyxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0ksV0FBVztzQkFBcEIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQ2FyZWZpcnN0IExpYnJhcnkgRm9ybSBJbnB1dCBUZXh0IEFyZWFcbiAqXG4gKiBAZmlsZSAgICAgICAgICBmb3JtLWlucHV0LXRleHQtYXJlYS5jb21wb25lbnRcbiAqIEBkZXNjcmlwdGlvbiAgIENvbnRhaW5zIGFsbCB0aGUgbG9naWMgZm9yIGdlbmVyYXRpbmcgYSBDYXJlRmlyc3QgRm9ybSBJbnB1dCBUZXh0IEFyZWFcbiAqIEBhdXRob3IgICAgICAgIEFybm8gSmFuc2VuIHZhbiBWdXVyZW5cbiAqIEBzaW5jZSAgICAgICAgIDIwMjMgLSAxMiAtIDE4XG4gKiBAdXNhZ2UgICAgICAgICA8Y2YtZm9ybS1pbnB1dC10ZXh0LWFyZWFcbiAqICAgICAgICAgICAgICAgICAgbGFiZWw9XCJMYWJlbCBOYW1lXCJcbiAqICAgICAgICAgICAgICAgICAgJWxhYmVsUGxhY2VtZW50JVxuICogICAgICAgICAgICAgICAgICAldGV4dENlbnRlciVcbiAqICAgICAgICAgICAgICAgICAgJWF1dG9DYXBpdGFsaXplJVxuICogICAgICAgICAgICAgICAgICAlKHZhbHVlQ2hhbmdlKT1cImN1cnJlbnRWYWx1ZVwiJVxuICogICAgICAgICAgICAgICAgICAlWyh2YWx1ZSldPVwidHdvV2F5Q29tc1wiJVxuICogICAgICAgICAgICAgICAgICAlW2NvbnRyb2xdJT1cImZvcm1OYW1lLmNvbnRyb2xzLmNvbnRyb2xOYW1lXCJcbiAqICAgICAgICAgICAgICAgID48L2NmLWZvcm0taW5wdXQtdGV4dC1hcmVhPlxuICogICAgICAgICAgICAgICAgZGlzYWJsZSBpbnB1dCBieSBkaXNhYmxpbmcgdGhlIGZvcm0gY29udHJvbFxuICovXG5cbmltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT3V0cHV0LCB0eXBlIE9uQ2hhbmdlcywgdHlwZSBTaW1wbGVDaGFuZ2VzIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgdHlwZSB7IEZvcm1Db250cm9sIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuLy8tLS0gVXRpbHNcbmltcG9ydCB7IHZhbGlkYXRlU3RyaW5nVmFsdWUsIGNoZWNrVHJ1dGhBdHRyaWJ1dGUgfSBmcm9tICcuLi8uLi91dGlscy9hdHRyaWJ1dGUudXRpbCc7XG5cbi8qKj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAqIEBpbnRlcmZhY2UgICAgIGlucHV0VGV4dEFyZWFDXG4gKiBAZGVzY3JpcHRpb24gICBEZWZpbmUgYXZhaWxhYmxlIGlucHV0IHZhbHVlc1xuICovXG5jb25zdCBpbnB1dFRleHRBcmVhQyA9IHtcbiAgbGFiZWxQbGFjZW1lbnQ6IFsnZml4ZWQnLCAnZmxvYXRpbmcnLCAnc3RhY2tlZCcsICdzdGFydCcsICdlbmQnXSxcbiAgYXV0b0NhcGl0YWxpemU6IFsnb2ZmJywgJ25vbmUnLCAnb24nLCAnc2VudGVuY2VzJywgJ3dvcmRzJywgJ2NoYXJhY3RlcnMnXSxcbn0gYXMgY29uc3Q7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2NmLWZvcm0taW5wdXQtdGV4dC1hcmVhJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2Zvcm0taW5wdXQtdGV4dC1hcmVhLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmw6ICcuL2Zvcm0taW5wdXQtdGV4dC1hcmVhLmNvbXBvbmVudC5zY3NzJyxcbn0pXG5leHBvcnQgY2xhc3MgRm9ybUlucHV0VGV4dEFyZWFDb21wb25lbnQgaW1wbGVtZW50cyBPbkNoYW5nZXMge1xuICBASW5wdXQoKSBsYWJlbCE6IHN0cmluZztcbiAgQElucHV0KCkgbGFiZWxQbGFjZW1lbnQ/OiAodHlwZW9mIGlucHV0VGV4dEFyZWFDLmxhYmVsUGxhY2VtZW50KVtudW1iZXJdO1xuICBASW5wdXQoKSBwbGFjZWhvbGRlcj86IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgQElucHV0KCkgYXV0b0NhcGl0YWxpemU/OiAodHlwZW9mIGlucHV0VGV4dEFyZWFDLmF1dG9DYXBpdGFsaXplKVtudW1iZXJdO1xuICBASW5wdXQoKSBjb250cm9sPzogRm9ybUNvbnRyb2wgfCBudWxsO1xuICBASW5wdXQoKSB0ZXh0Q2VudGVyPzogYm9vbGVhbiB8IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgQElucHV0KCkgbWluSGVpZ2h0Pzogc3RyaW5nIHwgJ25vbmUnID0gJ25vbmUnO1xuICBASW5wdXQoKSBtYXhIZWlnaHQ/OiBzdHJpbmcgfCAnbm9uZScgPSAnbm9uZSc7XG5cbiAgLy8tLS0gbmdNb2RlbFxuICBASW5wdXQoKSB2YWx1ZTogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICBAT3V0cHV0KCkgdmFsdWVDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPHR5cGVvZiB0aGlzLnZhbHVlPigpO1xuXG4gIC8vLS0tIExvY2FsIHZhcmlhYmxlc1xuICBpbnB1dExhYmVsUGxhY2VtZW50OiB0eXBlb2YgdGhpcy5sYWJlbFBsYWNlbWVudDtcbiAgaW5wdXRDbGVhciA9IHRydWU7XG4gIGlucHV0VGV4dENlbnRlciA9IGZhbHNlO1xuICBpbnB1dEF1dG9DYXBpdGFsaXplOiB0eXBlb2YgdGhpcy5hdXRvQ2FwaXRhbGl6ZTtcblxuICAvKiotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAqIEBuYW1lICAgICAgICAgIG5nT25DaGFuZ2VzXG4gICAqIEBkZXNjcmlwdGlvbiAgIERldGVjdCBjaGFuZ2VzIHRvIGlucHV0IHZhbHVlc1xuICAgKiBAcGFyYW0gICAgICAgICB7U2ltcGxlQ2hhbmdlc30gY2hhbmdlc1xuICAgKi9cbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuICAgIC8vLS0tIExhYmVsIFBsYWNlbWVudFxuICAgIHRoaXMuaW5wdXRMYWJlbFBsYWNlbWVudCA9XG4gICAgICB2YWxpZGF0ZVN0cmluZ1ZhbHVlPCh0eXBlb2YgaW5wdXRUZXh0QXJlYUMubGFiZWxQbGFjZW1lbnQpW251bWJlcl0+KFxuICAgICAgICBjaGFuZ2VzLFxuICAgICAgICAnbGFiZWxQbGFjZW1lbnQnLFxuICAgICAgICBpbnB1dFRleHRBcmVhQy5sYWJlbFBsYWNlbWVudC5zbGljZSgpLFxuICAgICAgICB0aGlzLmlucHV0TGFiZWxQbGFjZW1lbnRcbiAgICAgICkgfHwgJ2Zsb2F0aW5nJztcbiAgICAvLy0tLSBUZXh0IENlbnRlclxuICAgIHRoaXMuaW5wdXRUZXh0Q2VudGVyID0gY2hlY2tUcnV0aEF0dHJpYnV0ZShjaGFuZ2VzLCAndGV4dENlbnRlcicsIHRoaXMuaW5wdXRUZXh0Q2VudGVyKTtcbiAgICAvLy0tLSBBdXRvIENhcGl0YWxpemVcbiAgICB0aGlzLmlucHV0QXV0b0NhcGl0YWxpemUgPVxuICAgICAgdmFsaWRhdGVTdHJpbmdWYWx1ZTwodHlwZW9mIGlucHV0VGV4dEFyZWFDLmF1dG9DYXBpdGFsaXplKVtudW1iZXJdPihcbiAgICAgICAgY2hhbmdlcyxcbiAgICAgICAgJ2F1dG9DYXBpdGFsaXplJyxcbiAgICAgICAgaW5wdXRUZXh0QXJlYUMuYXV0b0NhcGl0YWxpemUuc2xpY2UoKSxcbiAgICAgICAgdGhpcy5pbnB1dEF1dG9DYXBpdGFsaXplXG4gICAgICApIHx8ICdub25lJztcbiAgfVxufVxuIiwiPCEtLSBuZ01vZGVsIC0tPlxuPGlvbi10ZXh0YXJlYVxuICBbc3R5bGVdPVwiJ21pbi1oZWlnaHQ6ICcgKyBtaW5IZWlnaHQgKyAnOyBtYXgtaGVpZ2h0OiAnICsgbWF4SGVpZ2h0XCJcbiAgKm5nSWY9XCIhY29udHJvbFwiXG4gIFtwbGFjZWhvbGRlcl09XCJwbGFjZWhvbGRlclwiXG4gIFtuZ0NsYXNzXT1cInsgJ3RleHQtY2VudGVyJzogaW5wdXRUZXh0Q2VudGVyIH1cIlxuICBbbGFiZWxdPVwibGFiZWxcIlxuICBbbGFiZWxQbGFjZW1lbnRdPVwiaW5wdXRMYWJlbFBsYWNlbWVudFwiXG4gIGZpbGw9XCJvdXRsaW5lXCJcbiAgW2F1dG9jYXBpdGFsaXplXT1cImF1dG9DYXBpdGFsaXplXCJcbiAgW2F1dG9Hcm93XT1cInRydWVcIlxuICBtb2RlPVwibWRcIlxuICAoaW9uSW5wdXQpPVwidmFsdWVDaGFuZ2UuZW1pdCgkZXZlbnQuZGV0YWlsLnZhbHVlID8/IHVuZGVmaW5lZClcIlxuICBbdmFsdWVdPVwidmFsdWVcIj48L2lvbi10ZXh0YXJlYT5cbjwhLS0gRm9ybSBDb250cm9sIC0tPlxuPGlvbi10ZXh0YXJlYVxuICBbc3R5bGVdPVwiJ21pbi1oZWlnaHQ6ICcgKyBtaW5IZWlnaHQgKyAnOyBtYXgtaGVpZ2h0OiAnICsgbWF4SGVpZ2h0XCJcbiAgKm5nSWY9XCJjb250cm9sXCJcbiAgW3BsYWNlaG9sZGVyXT1cInBsYWNlaG9sZGVyXCJcbiAgW25nQ2xhc3NdPVwieyAndGV4dC1jZW50ZXInOiBpbnB1dFRleHRDZW50ZXIgfVwiXG4gIFtsYWJlbF09XCJsYWJlbFwiXG4gIFtsYWJlbFBsYWNlbWVudF09XCJpbnB1dExhYmVsUGxhY2VtZW50XCJcbiAgZmlsbD1cIm91dGxpbmVcIlxuICBbYXV0b2NhcGl0YWxpemVdPVwiYXV0b0NhcGl0YWxpemVcIlxuICBbYXV0b0dyb3ddPVwidHJ1ZVwiXG4gIG1vZGU9XCJtZFwiXG4gIFtmb3JtQ29udHJvbF09XCJjb250cm9sXCJcbiAgKGlvbklucHV0KT1cInZhbHVlQ2hhbmdlLmVtaXQoJGV2ZW50LmRldGFpbC52YWx1ZSA/PyB1bmRlZmluZWQpXCI+PC9pb24tdGV4dGFyZWE+XG48Y2YtZm9ybS12YWxpZGF0aW9uICpuZ0lmPVwiY29udHJvbFwiIFtjb250cm9sXT1cImNvbnRyb2xcIj48L2NmLWZvcm0tdmFsaWRhdGlvbj5cbiJdfQ==
64
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1pbnB1dC10ZXh0LWFyZWEuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2FyZWZpcnN0L2xpYnJhcnkvc3JjL2xpYi9jb21wb25lbnRzL2Zvcm0taW5wdXQtdGV4dC1hcmVhL2Zvcm0taW5wdXQtdGV4dC1hcmVhLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NhcmVmaXJzdC9saWJyYXJ5L3NyYy9saWIvY29tcG9uZW50cy9mb3JtLWlucHV0LXRleHQtYXJlYS9mb3JtLWlucHV0LXRleHQtYXJlYS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFvQkEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBc0MsTUFBTSxlQUFlLENBQUM7QUFHM0csT0FBTyxFQUFFLG1CQUFtQixFQUFFLG1CQUFtQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7Ozs7OztBQU10RixNQUFNLGNBQWMsR0FBRztJQUNyQixjQUFjLEVBQUUsQ0FBQyxPQUFPLEVBQUUsVUFBVSxFQUFFLFNBQVMsRUFBRSxPQUFPLEVBQUUsS0FBSyxDQUFDO0lBQ2hFLGNBQWMsRUFBRSxDQUFDLEtBQUssRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFLFdBQVcsRUFBRSxPQUFPLEVBQUUsWUFBWSxDQUFDO0NBQ2pFLENBQUM7QUFPWCxNQUFNLE9BQU8sMEJBQTBCO0lBQzVCLEtBQUssQ0FBVTtJQUNmLGNBQWMsQ0FBa0Q7SUFDaEUsV0FBVyxDQUFzQjtJQUNqQyxjQUFjLENBQWtEO0lBQ2hFLE9BQU8sQ0FBc0I7SUFDN0IsVUFBVSxDQUFnQztJQUMxQyxTQUFTLEdBQXFCLE1BQU0sQ0FBQztJQUNyQyxTQUFTLEdBQXFCLE1BQU0sQ0FBQztJQUNyQyxrQkFBa0IsR0FBa0IsSUFBSSxDQUFDO0lBR3pDLEtBQUssQ0FBcUI7SUFDekIsV0FBVyxHQUFHLElBQUksWUFBWSxFQUFxQixDQUFDO0lBRzlELG1CQUFtQixDQUE2QjtJQUNoRCxVQUFVLEdBQUcsSUFBSSxDQUFDO0lBQ2xCLGVBQWUsR0FBRyxLQUFLLENBQUM7SUFDeEIsbUJBQW1CLENBQTZCO0lBT2hELFdBQVcsQ0FBQyxPQUFzQjtRQUVoQyxJQUFJLENBQUMsbUJBQW1CO1lBQ3RCLG1CQUFtQixDQUNqQixPQUFPLEVBQ1AsZ0JBQWdCLEVBQ2hCLGNBQWMsQ0FBQyxjQUFjLENBQUMsS0FBSyxFQUFFLEVBQ3JDLElBQUksQ0FBQyxtQkFBbUIsQ0FDekIsSUFBSSxVQUFVLENBQUM7UUFFbEIsSUFBSSxDQUFDLGVBQWUsR0FBRyxtQkFBbUIsQ0FBQyxPQUFPLEVBQUUsWUFBWSxFQUFFLElBQUksQ0FBQyxlQUFlLENBQUMsQ0FBQztRQUV4RixJQUFJLENBQUMsbUJBQW1CO1lBQ3RCLG1CQUFtQixDQUNqQixPQUFPLEVBQ1AsZ0JBQWdCLEVBQ2hCLGNBQWMsQ0FBQyxjQUFjLENBQUMsS0FBSyxFQUFFLEVBQ3JDLElBQUksQ0FBQyxtQkFBbUIsQ0FDekIsSUFBSSxNQUFNLENBQUM7SUFDaEIsQ0FBQzt1R0E3Q1UsMEJBQTBCOzJGQUExQiwwQkFBMEIsaVpDdkN2Qyx1cUNBNkJBOzsyRkRVYSwwQkFBMEI7a0JBTHRDLFNBQVM7K0JBQ0UseUJBQXlCOzhCQUsxQixLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csY0FBYztzQkFBdEIsS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLO2dCQUNHLGNBQWM7c0JBQXRCLEtBQUs7Z0JBQ0csT0FBTztzQkFBZixLQUFLO2dCQUNHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSztnQkFDRyxTQUFTO3NCQUFqQixLQUFLO2dCQUNHLGtCQUFrQjtzQkFBMUIsS0FBSztnQkFHRyxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0ksV0FBVztzQkFBcEIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQ2FyZWZpcnN0IExpYnJhcnkgRm9ybSBJbnB1dCBUZXh0IEFyZWFcbiAqXG4gKiBAZmlsZSAgICAgICAgICBmb3JtLWlucHV0LXRleHQtYXJlYS5jb21wb25lbnRcbiAqIEBkZXNjcmlwdGlvbiAgIENvbnRhaW5zIGFsbCB0aGUgbG9naWMgZm9yIGdlbmVyYXRpbmcgYSBDYXJlRmlyc3QgRm9ybSBJbnB1dCBUZXh0IEFyZWFcbiAqIEBhdXRob3IgICAgICAgIEFybm8gSmFuc2VuIHZhbiBWdXVyZW5cbiAqIEBzaW5jZSAgICAgICAgIDIwMjMgLSAxMiAtIDE4XG4gKiBAdXNhZ2UgICAgICAgICA8Y2YtZm9ybS1pbnB1dC10ZXh0LWFyZWFcbiAqICAgICAgICAgICAgICAgICAgbGFiZWw9XCJMYWJlbCBOYW1lXCJcbiAqICAgICAgICAgICAgICAgICAgJWxhYmVsUGxhY2VtZW50JVxuICogICAgICAgICAgICAgICAgICAldGV4dENlbnRlciVcbiAqICAgICAgICAgICAgICAgICAgJWF1dG9DYXBpdGFsaXplJVxuICogICAgICAgICAgICAgICAgICAlKHZhbHVlQ2hhbmdlKT1cImN1cnJlbnRWYWx1ZVwiJVxuICogICAgICAgICAgICAgICAgICAlWyh2YWx1ZSldPVwidHdvV2F5Q29tc1wiJVxuICogICAgICAgICAgICAgICAgICAlW2NvbnRyb2xdJT1cImZvcm1OYW1lLmNvbnRyb2xzLmNvbnRyb2xOYW1lXCJcbiAqICAgICAgICAgICAgICAgICAgJVtjdXN0b21FcnJvck1lc3NhZ2VdJT1cImVycm9yTWVzc2FnZVwiXG4gKiAgICAgICAgICAgICAgICA+PC9jZi1mb3JtLWlucHV0LXRleHQtYXJlYT5cbiAqICAgICAgICAgICAgICAgIGRpc2FibGUgaW5wdXQgYnkgZGlzYWJsaW5nIHRoZSBmb3JtIGNvbnRyb2xcbiAqL1xuXG5pbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE91dHB1dCwgdHlwZSBPbkNoYW5nZXMsIHR5cGUgU2ltcGxlQ2hhbmdlcyB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHR5cGUgeyBGb3JtQ29udHJvbCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbi8vLS0tIFV0aWxzXG5pbXBvcnQgeyB2YWxpZGF0ZVN0cmluZ1ZhbHVlLCBjaGVja1RydXRoQXR0cmlidXRlIH0gZnJvbSAnLi4vLi4vdXRpbHMvYXR0cmlidXRlLnV0aWwnO1xuXG4vKio9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gKiBAaW50ZXJmYWNlICAgICBpbnB1dFRleHRBcmVhQ1xuICogQGRlc2NyaXB0aW9uICAgRGVmaW5lIGF2YWlsYWJsZSBpbnB1dCB2YWx1ZXNcbiAqL1xuY29uc3QgaW5wdXRUZXh0QXJlYUMgPSB7XG4gIGxhYmVsUGxhY2VtZW50OiBbJ2ZpeGVkJywgJ2Zsb2F0aW5nJywgJ3N0YWNrZWQnLCAnc3RhcnQnLCAnZW5kJ10sXG4gIGF1dG9DYXBpdGFsaXplOiBbJ29mZicsICdub25lJywgJ29uJywgJ3NlbnRlbmNlcycsICd3b3JkcycsICdjaGFyYWN0ZXJzJ10sXG59IGFzIGNvbnN0O1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdjZi1mb3JtLWlucHV0LXRleHQtYXJlYScsXG4gIHRlbXBsYXRlVXJsOiAnLi9mb3JtLWlucHV0LXRleHQtYXJlYS5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsOiAnLi9mb3JtLWlucHV0LXRleHQtYXJlYS5jb21wb25lbnQuc2NzcycsXG59KVxuZXhwb3J0IGNsYXNzIEZvcm1JbnB1dFRleHRBcmVhQ29tcG9uZW50IGltcGxlbWVudHMgT25DaGFuZ2VzIHtcbiAgQElucHV0KCkgbGFiZWwhOiBzdHJpbmc7XG4gIEBJbnB1dCgpIGxhYmVsUGxhY2VtZW50PzogKHR5cGVvZiBpbnB1dFRleHRBcmVhQy5sYWJlbFBsYWNlbWVudClbbnVtYmVyXTtcbiAgQElucHV0KCkgcGxhY2Vob2xkZXI/OiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gIEBJbnB1dCgpIGF1dG9DYXBpdGFsaXplPzogKHR5cGVvZiBpbnB1dFRleHRBcmVhQy5hdXRvQ2FwaXRhbGl6ZSlbbnVtYmVyXTtcbiAgQElucHV0KCkgY29udHJvbD86IEZvcm1Db250cm9sIHwgbnVsbDtcbiAgQElucHV0KCkgdGV4dENlbnRlcj86IGJvb2xlYW4gfCBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gIEBJbnB1dCgpIG1pbkhlaWdodD86IHN0cmluZyB8ICdub25lJyA9ICdub25lJztcbiAgQElucHV0KCkgbWF4SGVpZ2h0Pzogc3RyaW5nIHwgJ25vbmUnID0gJ25vbmUnO1xuICBASW5wdXQoKSBjdXN0b21FcnJvck1lc3NhZ2U6IHN0cmluZyB8IG51bGwgPSBudWxsO1xuXG4gIC8vLS0tIG5nTW9kZWxcbiAgQElucHV0KCkgdmFsdWU6IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgQE91dHB1dCgpIHZhbHVlQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjx0eXBlb2YgdGhpcy52YWx1ZT4oKTtcblxuICAvLy0tLSBMb2NhbCB2YXJpYWJsZXNcbiAgaW5wdXRMYWJlbFBsYWNlbWVudDogdHlwZW9mIHRoaXMubGFiZWxQbGFjZW1lbnQ7XG4gIGlucHV0Q2xlYXIgPSB0cnVlO1xuICBpbnB1dFRleHRDZW50ZXIgPSBmYWxzZTtcbiAgaW5wdXRBdXRvQ2FwaXRhbGl6ZTogdHlwZW9mIHRoaXMuYXV0b0NhcGl0YWxpemU7XG5cbiAgLyoqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgKiBAbmFtZSAgICAgICAgICBuZ09uQ2hhbmdlc1xuICAgKiBAZGVzY3JpcHRpb24gICBEZXRlY3QgY2hhbmdlcyB0byBpbnB1dCB2YWx1ZXNcbiAgICogQHBhcmFtICAgICAgICAge1NpbXBsZUNoYW5nZXN9IGNoYW5nZXNcbiAgICovXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICAvLy0tLSBMYWJlbCBQbGFjZW1lbnRcbiAgICB0aGlzLmlucHV0TGFiZWxQbGFjZW1lbnQgPVxuICAgICAgdmFsaWRhdGVTdHJpbmdWYWx1ZTwodHlwZW9mIGlucHV0VGV4dEFyZWFDLmxhYmVsUGxhY2VtZW50KVtudW1iZXJdPihcbiAgICAgICAgY2hhbmdlcyxcbiAgICAgICAgJ2xhYmVsUGxhY2VtZW50JyxcbiAgICAgICAgaW5wdXRUZXh0QXJlYUMubGFiZWxQbGFjZW1lbnQuc2xpY2UoKSxcbiAgICAgICAgdGhpcy5pbnB1dExhYmVsUGxhY2VtZW50XG4gICAgICApIHx8ICdmbG9hdGluZyc7XG4gICAgLy8tLS0gVGV4dCBDZW50ZXJcbiAgICB0aGlzLmlucHV0VGV4dENlbnRlciA9IGNoZWNrVHJ1dGhBdHRyaWJ1dGUoY2hhbmdlcywgJ3RleHRDZW50ZXInLCB0aGlzLmlucHV0VGV4dENlbnRlcik7XG4gICAgLy8tLS0gQXV0byBDYXBpdGFsaXplXG4gICAgdGhpcy5pbnB1dEF1dG9DYXBpdGFsaXplID1cbiAgICAgIHZhbGlkYXRlU3RyaW5nVmFsdWU8KHR5cGVvZiBpbnB1dFRleHRBcmVhQy5hdXRvQ2FwaXRhbGl6ZSlbbnVtYmVyXT4oXG4gICAgICAgIGNoYW5nZXMsXG4gICAgICAgICdhdXRvQ2FwaXRhbGl6ZScsXG4gICAgICAgIGlucHV0VGV4dEFyZWFDLmF1dG9DYXBpdGFsaXplLnNsaWNlKCksXG4gICAgICAgIHRoaXMuaW5wdXRBdXRvQ2FwaXRhbGl6ZVxuICAgICAgKSB8fCAnbm9uZSc7XG4gIH1cbn1cbiIsIjwhLS0gbmdNb2RlbCAtLT5cbjxpb24tdGV4dGFyZWFcbiAgW3N0eWxlXT1cIidtaW4taGVpZ2h0OiAnICsgbWluSGVpZ2h0ICsgJzsgbWF4LWhlaWdodDogJyArIG1heEhlaWdodFwiXG4gICpuZ0lmPVwiIWNvbnRyb2xcIlxuICBbcGxhY2Vob2xkZXJdPVwicGxhY2Vob2xkZXJcIlxuICBbbmdDbGFzc109XCJ7ICd0ZXh0LWNlbnRlcic6IGlucHV0VGV4dENlbnRlciwgZXJyb3I6ICEhY3VzdG9tRXJyb3JNZXNzYWdlIH1cIlxuICBbbGFiZWxdPVwibGFiZWxcIlxuICBbbGFiZWxQbGFjZW1lbnRdPVwiaW5wdXRMYWJlbFBsYWNlbWVudFwiXG4gIGZpbGw9XCJvdXRsaW5lXCJcbiAgW2F1dG9jYXBpdGFsaXplXT1cImF1dG9DYXBpdGFsaXplXCJcbiAgW2F1dG9Hcm93XT1cInRydWVcIlxuICBtb2RlPVwibWRcIlxuICAoaW9uSW5wdXQpPVwidmFsdWVDaGFuZ2UuZW1pdCgkZXZlbnQuZGV0YWlsLnZhbHVlID8/IHVuZGVmaW5lZClcIlxuICBbdmFsdWVdPVwidmFsdWVcIj48L2lvbi10ZXh0YXJlYT5cbjwhLS0gRm9ybSBDb250cm9sIC0tPlxuPGlvbi10ZXh0YXJlYVxuICBbc3R5bGVdPVwiJ21pbi1oZWlnaHQ6ICcgKyBtaW5IZWlnaHQgKyAnOyBtYXgtaGVpZ2h0OiAnICsgbWF4SGVpZ2h0XCJcbiAgKm5nSWY9XCJjb250cm9sXCJcbiAgW3BsYWNlaG9sZGVyXT1cInBsYWNlaG9sZGVyXCJcbiAgW25nQ2xhc3NdPVwieyAndGV4dC1jZW50ZXInOiBpbnB1dFRleHRDZW50ZXIsIGVycm9yOiAhIWN1c3RvbUVycm9yTWVzc2FnZSB9XCJcbiAgW2xhYmVsXT1cImxhYmVsXCJcbiAgW2xhYmVsUGxhY2VtZW50XT1cImlucHV0TGFiZWxQbGFjZW1lbnRcIlxuICBmaWxsPVwib3V0bGluZVwiXG4gIFthdXRvY2FwaXRhbGl6ZV09XCJhdXRvQ2FwaXRhbGl6ZVwiXG4gIFthdXRvR3Jvd109XCJ0cnVlXCJcbiAgbW9kZT1cIm1kXCJcbiAgW2Zvcm1Db250cm9sXT1cImNvbnRyb2xcIlxuICAoaW9uSW5wdXQpPVwidmFsdWVDaGFuZ2UuZW1pdCgkZXZlbnQuZGV0YWlsLnZhbHVlID8/IHVuZGVmaW5lZClcIj48L2lvbi10ZXh0YXJlYT5cbjxjZi1mb3JtLXZhbGlkYXRpb24gKm5nSWY9XCJjb250cm9sIHx8IGN1c3RvbUVycm9yTWVzc2FnZVwiIFtjdXN0b21FcnJvck1lc3NhZ2VdPVwiY3VzdG9tRXJyb3JNZXNzYWdlXCIgW2NvbnRyb2xdPVwiY29udHJvbCB8fCBudWxsXCI+PC9jZi1mb3JtLXZhbGlkYXRpb24+XG4iXX0=
@@ -2,19 +2,22 @@ import { Component, Input } from '@angular/core';
2
2
  import * as i0 from "@angular/core";
3
3
  import * as i1 from "@angular/common";
4
4
  export class FormValidationComponent {
5
- control;
5
+ control = null;
6
+ customErrorMessage = null;
6
7
  ngOnChanges(changes) {
7
8
  if (changes['control'] && changes['control'].currentValue) {
8
9
  this.control = changes['control'].currentValue;
9
10
  }
10
11
  }
11
12
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.8", ngImport: i0, type: FormValidationComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
12
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.8", type: FormValidationComponent, selector: "cf-form-validation", inputs: { control: "control" }, usesOnChanges: true, ngImport: i0, template: "<div *ngIf=\"control?.dirty && control?.errors\" class=\"form-valid-feedback\">\n <div *ngFor=\"let error of this.control?.errors | keyvalue\">\n <p class=\"body-medium\" *ngIf=\"error.key === 'email'\">*Invalid email format</p>\n <p class=\"body-medium\" *ngIf=\"error.key === 'minlength'\">*Length required: {{ error.value.requiredLength - error.value.actualLength }}</p>\n <p class=\"body-medium\" *ngIf=\"error.key === 'maxlength'\">*Max Length: {{ error.value.requiredLength }}</p>\n <p class=\"body-medium\" *ngIf=\"error.key === 'errorMessage'\">*{{ error.value }}</p>\n </div>\n</div>\n", styles: [".form-valid-feedback{padding:4px 0 0 10px}.form-valid-feedback p{font-size:1.2rem;text-align:left;color:var(--cf-app-system-color-error)}\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: "pipe", type: i1.KeyValuePipe, name: "keyvalue" }] });
13
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.8", type: FormValidationComponent, selector: "cf-form-validation", inputs: { control: "control", customErrorMessage: "customErrorMessage" }, usesOnChanges: true, ngImport: i0, template: "<div *ngIf=\"customErrorMessage; else useControl\" class=\"form-valid-feedback\">\n <p class=\"body-medium\">{{ customErrorMessage }}</p>\n</div>\n<ng-template #useControl>\n <div *ngIf=\"control?.dirty && control?.errors\" class=\"form-valid-feedback\">\n <div *ngFor=\"let error of this.control?.errors | keyvalue\">\n <p class=\"body-medium\" *ngIf=\"error.key === 'email'\">*Invalid email format</p>\n <p class=\"body-medium\" *ngIf=\"error.key === 'minlength'\">*Length required: {{ error.value.requiredLength - error.value.actualLength }}</p>\n <p class=\"body-medium\" *ngIf=\"error.key === 'maxlength'\">*Max Length: {{ error.value.requiredLength }}</p>\n <p class=\"body-medium\" *ngIf=\"error.key === 'errorMessage'\">*{{ error.value }}</p>\n </div>\n </div>\n</ng-template>\n", styles: [".form-valid-feedback{padding:4px 0 0 10px}.form-valid-feedback p{font-size:1.2rem;text-align:left;color:var(--cf-app-system-color-error)}\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: "pipe", type: i1.KeyValuePipe, name: "keyvalue" }] });
13
14
  }
14
15
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.8", ngImport: i0, type: FormValidationComponent, decorators: [{
15
16
  type: Component,
16
- args: [{ selector: 'cf-form-validation', template: "<div *ngIf=\"control?.dirty && control?.errors\" class=\"form-valid-feedback\">\n <div *ngFor=\"let error of this.control?.errors | keyvalue\">\n <p class=\"body-medium\" *ngIf=\"error.key === 'email'\">*Invalid email format</p>\n <p class=\"body-medium\" *ngIf=\"error.key === 'minlength'\">*Length required: {{ error.value.requiredLength - error.value.actualLength }}</p>\n <p class=\"body-medium\" *ngIf=\"error.key === 'maxlength'\">*Max Length: {{ error.value.requiredLength }}</p>\n <p class=\"body-medium\" *ngIf=\"error.key === 'errorMessage'\">*{{ error.value }}</p>\n </div>\n</div>\n", styles: [".form-valid-feedback{padding:4px 0 0 10px}.form-valid-feedback p{font-size:1.2rem;text-align:left;color:var(--cf-app-system-color-error)}\n"] }]
17
+ args: [{ selector: 'cf-form-validation', template: "<div *ngIf=\"customErrorMessage; else useControl\" class=\"form-valid-feedback\">\n <p class=\"body-medium\">{{ customErrorMessage }}</p>\n</div>\n<ng-template #useControl>\n <div *ngIf=\"control?.dirty && control?.errors\" class=\"form-valid-feedback\">\n <div *ngFor=\"let error of this.control?.errors | keyvalue\">\n <p class=\"body-medium\" *ngIf=\"error.key === 'email'\">*Invalid email format</p>\n <p class=\"body-medium\" *ngIf=\"error.key === 'minlength'\">*Length required: {{ error.value.requiredLength - error.value.actualLength }}</p>\n <p class=\"body-medium\" *ngIf=\"error.key === 'maxlength'\">*Max Length: {{ error.value.requiredLength }}</p>\n <p class=\"body-medium\" *ngIf=\"error.key === 'errorMessage'\">*{{ error.value }}</p>\n </div>\n </div>\n</ng-template>\n", styles: [".form-valid-feedback{padding:4px 0 0 10px}.form-valid-feedback p{font-size:1.2rem;text-align:left;color:var(--cf-app-system-color-error)}\n"] }]
17
18
  }], propDecorators: { control: [{
18
19
  type: Input
20
+ }], customErrorMessage: [{
21
+ type: Input
19
22
  }] } });
20
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS12YWxpZGF0aW9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NhcmVmaXJzdC9saWJyYXJ5L3NyYy9saWIvY29tcG9uZW50cy9mb3JtLXZhbGlkYXRpb24vZm9ybS12YWxpZGF0aW9uLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NhcmVmaXJzdC9saWJyYXJ5L3NyYy9saWIvY29tcG9uZW50cy9mb3JtLXZhbGlkYXRpb24vZm9ybS12YWxpZGF0aW9uLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQVVBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFzQyxNQUFNLGVBQWUsQ0FBQzs7O0FBU3JGLE1BQU0sT0FBTyx1QkFBdUI7SUFFekIsT0FBTyxDQUFzQjtJQU90QyxXQUFXLENBQUMsT0FBc0I7UUFDaEMsSUFBSSxPQUFPLENBQUMsU0FBUyxDQUFDLElBQUksT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQUFDLFlBQVksRUFBRSxDQUFDO1lBQzFELElBQUksQ0FBQyxPQUFPLEdBQUcsT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQUFDLFlBQVksQ0FBQztRQUNqRCxDQUFDO0lBQ0gsQ0FBQzt1R0FiVSx1QkFBdUI7MkZBQXZCLHVCQUF1QiwrR0NuQnBDLGttQkFRQTs7MkZEV2EsdUJBQXVCO2tCQUxuQyxTQUFTOytCQUNFLG9CQUFvQjs4QkFNckIsT0FBTztzQkFBZixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBDYXJlRmlyc3QgTGlicmFyeSBGb3JtIFZhbGlkYXRpb24gRmVlZGJhY2tcbiAqXG4gKiBAZmlsZSAgICAgICAgICBmb3JtLXZhbGlkYXRpb24uY29tcG9uZW50XG4gKiBAZGVzY3JpcHRpb24gICBDb250YWlucyBhbGwgdGhlIGxvZ2ljIGZvciBnZW5lcmF0aW5nIENhcmVGaXJzdCBGb3JtIFZhbGlkYXRpb24gRmVlZGJhY2tcbiAqIEBhdXRob3IgICAgICAgIEFybm8gSmFuc2VuIHZhbiBWdXVyZW5cbiAqIEBzaW5jZSAgICAgICAgIDIwMjMgLSAxMiAtIDA1XG4gKiBAdXNhZ2UgICAgICAgICA8Y2YtZm9ybS12YWxpZGF0aW9uIFtjb250cm9sXT1cImZvcm1OYW1lLmdldCgnY29udHJvbE5hbWUnKVwiPjwvY2YtZm9ybS12YWxpZGF0aW9uPlxuICovXG5cbmltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIHR5cGUgT25DaGFuZ2VzLCB0eXBlIFNpbXBsZUNoYW5nZXMgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbi8vLS0tIEludGVyZmFjZXNcbmltcG9ydCB0eXBlIHsgRm9ybUNvbnRyb2wgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2NmLWZvcm0tdmFsaWRhdGlvbicsXG4gIHRlbXBsYXRlVXJsOiAnLi9mb3JtLXZhbGlkYXRpb24uY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybDogJy4vZm9ybS12YWxpZGF0aW9uLmNvbXBvbmVudC5zY3NzJyxcbn0pXG5leHBvcnQgY2xhc3MgRm9ybVZhbGlkYXRpb25Db21wb25lbnQgaW1wbGVtZW50cyBPbkNoYW5nZXMge1xuICAvLy0tLSBSZWNlaXZlIGZvcm0gY29udHJvbFxuICBASW5wdXQoKSBjb250cm9sITogRm9ybUNvbnRyb2wgfCBudWxsO1xuXG4gIC8qKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICogQG5hbWUgICAgICAgICAgbmdPbkNoYW5nZXNcbiAgICogQGRlc2NyaXB0aW9uICAgRGV0ZWN0IGNoYW5nZXMgdG8gaW5wdXQgdmFsdWVzXG4gICAqIEBwYXJhbSAgICAgICAgIHtTaW1wbGVDaGFuZ2VzfSBjaGFuZ2VzXG4gICAqL1xuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG4gICAgaWYgKGNoYW5nZXNbJ2NvbnRyb2wnXSAmJiBjaGFuZ2VzWydjb250cm9sJ10uY3VycmVudFZhbHVlKSB7XG4gICAgICB0aGlzLmNvbnRyb2wgPSBjaGFuZ2VzWydjb250cm9sJ10uY3VycmVudFZhbHVlO1xuICAgIH1cbiAgfVxufVxuIiwiPGRpdiAqbmdJZj1cImNvbnRyb2w/LmRpcnR5ICYmIGNvbnRyb2w/LmVycm9yc1wiIGNsYXNzPVwiZm9ybS12YWxpZC1mZWVkYmFja1wiPlxuICA8ZGl2ICpuZ0Zvcj1cImxldCBlcnJvciBvZiB0aGlzLmNvbnRyb2w/LmVycm9ycyB8IGtleXZhbHVlXCI+XG4gICAgPHAgY2xhc3M9XCJib2R5LW1lZGl1bVwiICpuZ0lmPVwiZXJyb3Iua2V5ID09PSAnZW1haWwnXCI+KkludmFsaWQgZW1haWwgZm9ybWF0PC9wPlxuICAgIDxwIGNsYXNzPVwiYm9keS1tZWRpdW1cIiAqbmdJZj1cImVycm9yLmtleSA9PT0gJ21pbmxlbmd0aCdcIj4qTGVuZ3RoIHJlcXVpcmVkOiB7eyBlcnJvci52YWx1ZS5yZXF1aXJlZExlbmd0aCAtIGVycm9yLnZhbHVlLmFjdHVhbExlbmd0aCB9fTwvcD5cbiAgICA8cCBjbGFzcz1cImJvZHktbWVkaXVtXCIgKm5nSWY9XCJlcnJvci5rZXkgPT09ICdtYXhsZW5ndGgnXCI+Kk1heCBMZW5ndGg6IHt7IGVycm9yLnZhbHVlLnJlcXVpcmVkTGVuZ3RoIH19PC9wPlxuICAgIDxwIGNsYXNzPVwiYm9keS1tZWRpdW1cIiAqbmdJZj1cImVycm9yLmtleSA9PT0gJ2Vycm9yTWVzc2FnZSdcIj4qe3sgZXJyb3IudmFsdWUgfX08L3A+XG4gIDwvZGl2PlxuPC9kaXY+XG4iXX0=
23
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS12YWxpZGF0aW9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NhcmVmaXJzdC9saWJyYXJ5L3NyYy9saWIvY29tcG9uZW50cy9mb3JtLXZhbGlkYXRpb24vZm9ybS12YWxpZGF0aW9uLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NhcmVmaXJzdC9saWJyYXJ5L3NyYy9saWIvY29tcG9uZW50cy9mb3JtLXZhbGlkYXRpb24vZm9ybS12YWxpZGF0aW9uLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQVVBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFzQyxNQUFNLGVBQWUsQ0FBQzs7O0FBU3JGLE1BQU0sT0FBTyx1QkFBdUI7SUFFekIsT0FBTyxHQUF1QixJQUFJLENBQUM7SUFDbkMsa0JBQWtCLEdBQWtCLElBQUksQ0FBQztJQU9sRCxXQUFXLENBQUMsT0FBc0I7UUFDaEMsSUFBSSxPQUFPLENBQUMsU0FBUyxDQUFDLElBQUksT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQUFDLFlBQVksRUFBRSxDQUFDO1lBQzFELElBQUksQ0FBQyxPQUFPLEdBQUcsT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQUFDLFlBQVksQ0FBQztRQUNqRCxDQUFDO0lBQ0gsQ0FBQzt1R0FkVSx1QkFBdUI7MkZBQXZCLHVCQUF1Qix5SkNuQnBDLGl6QkFhQTs7MkZETWEsdUJBQXVCO2tCQUxuQyxTQUFTOytCQUNFLG9CQUFvQjs4QkFNckIsT0FBTztzQkFBZixLQUFLO2dCQUNHLGtCQUFrQjtzQkFBMUIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQ2FyZUZpcnN0IExpYnJhcnkgRm9ybSBWYWxpZGF0aW9uIEZlZWRiYWNrXG4gKlxuICogQGZpbGUgICAgICAgICAgZm9ybS12YWxpZGF0aW9uLmNvbXBvbmVudFxuICogQGRlc2NyaXB0aW9uICAgQ29udGFpbnMgYWxsIHRoZSBsb2dpYyBmb3IgZ2VuZXJhdGluZyBDYXJlRmlyc3QgRm9ybSBWYWxpZGF0aW9uIEZlZWRiYWNrXG4gKiBAYXV0aG9yICAgICAgICBBcm5vIEphbnNlbiB2YW4gVnV1cmVuXG4gKiBAc2luY2UgICAgICAgICAyMDIzIC0gMTIgLSAwNVxuICogQHVzYWdlICAgICAgICAgPGNmLWZvcm0tdmFsaWRhdGlvbiBbY29udHJvbF09XCJmb3JtTmFtZS5nZXQoJ2NvbnRyb2xOYW1lJylcIiBbY3VzdG9tRXJyb3JNZXNzYWdlXT1cImVycm9yTWVzc2FnZVwiPjwvY2YtZm9ybS12YWxpZGF0aW9uPlxuICovXG5cbmltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIHR5cGUgT25DaGFuZ2VzLCB0eXBlIFNpbXBsZUNoYW5nZXMgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbi8vLS0tIEludGVyZmFjZXNcbmltcG9ydCB0eXBlIHsgRm9ybUNvbnRyb2wgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2NmLWZvcm0tdmFsaWRhdGlvbicsXG4gIHRlbXBsYXRlVXJsOiAnLi9mb3JtLXZhbGlkYXRpb24uY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybDogJy4vZm9ybS12YWxpZGF0aW9uLmNvbXBvbmVudC5zY3NzJyxcbn0pXG5leHBvcnQgY2xhc3MgRm9ybVZhbGlkYXRpb25Db21wb25lbnQgaW1wbGVtZW50cyBPbkNoYW5nZXMge1xuICAvLy0tLSBSZWNlaXZlIGZvcm0gY29udHJvbFxuICBASW5wdXQoKSBjb250cm9sOiBGb3JtQ29udHJvbCB8IG51bGwgPSBudWxsO1xuICBASW5wdXQoKSBjdXN0b21FcnJvck1lc3NhZ2U6IHN0cmluZyB8IG51bGwgPSBudWxsO1xuXG4gIC8qKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICogQG5hbWUgICAgICAgICAgbmdPbkNoYW5nZXNcbiAgICogQGRlc2NyaXB0aW9uICAgRGV0ZWN0IGNoYW5nZXMgdG8gaW5wdXQgdmFsdWVzXG4gICAqIEBwYXJhbSAgICAgICAgIHtTaW1wbGVDaGFuZ2VzfSBjaGFuZ2VzXG4gICAqL1xuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG4gICAgaWYgKGNoYW5nZXNbJ2NvbnRyb2wnXSAmJiBjaGFuZ2VzWydjb250cm9sJ10uY3VycmVudFZhbHVlKSB7XG4gICAgICB0aGlzLmNvbnRyb2wgPSBjaGFuZ2VzWydjb250cm9sJ10uY3VycmVudFZhbHVlO1xuICAgIH1cbiAgfVxufVxuIiwiPGRpdiAqbmdJZj1cImN1c3RvbUVycm9yTWVzc2FnZTsgZWxzZSB1c2VDb250cm9sXCIgY2xhc3M9XCJmb3JtLXZhbGlkLWZlZWRiYWNrXCI+XG4gIDxwIGNsYXNzPVwiYm9keS1tZWRpdW1cIj57eyBjdXN0b21FcnJvck1lc3NhZ2UgfX08L3A+XG48L2Rpdj5cbjxuZy10ZW1wbGF0ZSAjdXNlQ29udHJvbD5cbiAgPGRpdiAqbmdJZj1cImNvbnRyb2w/LmRpcnR5ICYmIGNvbnRyb2w/LmVycm9yc1wiIGNsYXNzPVwiZm9ybS12YWxpZC1mZWVkYmFja1wiPlxuICAgIDxkaXYgKm5nRm9yPVwibGV0IGVycm9yIG9mIHRoaXMuY29udHJvbD8uZXJyb3JzIHwga2V5dmFsdWVcIj5cbiAgICAgIDxwIGNsYXNzPVwiYm9keS1tZWRpdW1cIiAqbmdJZj1cImVycm9yLmtleSA9PT0gJ2VtYWlsJ1wiPipJbnZhbGlkIGVtYWlsIGZvcm1hdDwvcD5cbiAgICAgIDxwIGNsYXNzPVwiYm9keS1tZWRpdW1cIiAqbmdJZj1cImVycm9yLmtleSA9PT0gJ21pbmxlbmd0aCdcIj4qTGVuZ3RoIHJlcXVpcmVkOiB7eyBlcnJvci52YWx1ZS5yZXF1aXJlZExlbmd0aCAtIGVycm9yLnZhbHVlLmFjdHVhbExlbmd0aCB9fTwvcD5cbiAgICAgIDxwIGNsYXNzPVwiYm9keS1tZWRpdW1cIiAqbmdJZj1cImVycm9yLmtleSA9PT0gJ21heGxlbmd0aCdcIj4qTWF4IExlbmd0aDoge3sgZXJyb3IudmFsdWUucmVxdWlyZWRMZW5ndGggfX08L3A+XG4gICAgICA8cCBjbGFzcz1cImJvZHktbWVkaXVtXCIgKm5nSWY9XCJlcnJvci5rZXkgPT09ICdlcnJvck1lc3NhZ2UnXCI+Knt7IGVycm9yLnZhbHVlIH19PC9wPlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbjwvbmctdGVtcGxhdGU+XG4iXX0=