@carefirst/library 3.1.5 → 3.2.1
Sign up to get free protection for your applications and to get access to all the features.
- package/esm2022/lib/components/button/button.component.mjs +2 -2
- package/esm2022/lib/components/form-input/form-input.component.mjs +6 -3
- package/esm2022/lib/components/form-input-select/form-input-select.component.mjs +6 -3
- package/esm2022/lib/components/form-input-text-area/form-input-text-area.component.mjs +6 -3
- package/esm2022/lib/components/form-validation/form-validation.component.mjs +7 -4
- package/esm2022/lib/components/icon/icon.component.mjs +3 -3
- package/esm2022/lib/interfaces/icon.interface.mjs +3 -1
- package/fesm2022/carefirst-library.mjs +27 -13
- package/fesm2022/carefirst-library.mjs.map +1 -1
- package/lib/components/form-input/form-input.component.d.ts +2 -1
- package/lib/components/form-input-select/form-input-select.component.d.ts +2 -1
- package/lib/components/form-input-text-area/form-input-text-area.component.d.ts +2 -1
- package/lib/components/form-validation/form-validation.component.d.ts +2 -1
- package/lib/interfaces/icon.interface.d.ts +1 -1
- package/package.json +1 -1
@@ -63,11 +63,11 @@ export class ButtonComponent {
|
|
63
63
|
return '';
|
64
64
|
}
|
65
65
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.8", ngImport: i0, type: ButtonComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
66
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.8", type: ButtonComponent, selector: "cf-btn", inputs: { type: "type", disabled: "disabled", alert: "alert", action: "action", white: "white", snug: "snug", accent: "accent", fontSize: "fontSize", iconStart: "iconStart", iconEnd: "iconEnd", loading: "loading", loadingText: "loadingText", customColor: "customColor" }, host: { properties: { "style.pointer-events": "this.parentEvents" } }, usesOnChanges: true, ngImport: i0, template: "<ion-button\n [style]=\"'--custom-color: ' + inputCustomColor\"\n [ngClass]=\"{\n 'cf-button-primary': inputType === 'primary',\n 'cf-button-secondary': inputType === 'secondary',\n 'cf-button-tertiary': inputType === 'tertiary',\n 'text-large': inputFontSize === 'large',\n 'text-small': inputFontSize === 'small',\n alert: inputAlert,\n action: inputAction,\n snug: inputSnug,\n accent: inputAccent,\n white: inputWhite\n }\"\n mode=\"md\"\n [disabled]=\"inputDisabled || inputLoading\">\n <cf-icon *ngIf=\"inputIconStart\" [icon]=\"inputIconStart\" style=\"--cf-svg-overwrite-stroke-color: var(--button-text-color)\"></cf-icon>\n <ng-container *ngIf=\"loadingText && inputLoading; else originalText\">\n <cf-spinner [icon]=\"inputIconStart\" [size]=\"inputFontSize === 'large' ? 16 : inputFontSize === 'small' ? 10 : 12\"></cf-spinner>\n <p>{{ loadingText }}</p>\n </ng-container>\n <ng-template #originalText>\n <p *cfButtonLoader=\"inputLoading\"><ng-content></ng-content></p>\n </ng-template>\n <cf-icon *ngIf=\"inputIconEnd\" [icon]=\"inputIconEnd\" style=\"--cf-svg-overwrite-stroke-color: var(--button-text-color)\"></cf-icon>\n</ion-button>\n", styles: ["ion-button[class^=cf-button-]{--custom-color: var(--cf-app-color-primary);--core: var(--custom-color, var(--cf-app-color-primary));width:100%;min-height:5.6rem;border-radius:1rem .4rem 1rem 1rem;text-transform:capitalize;overflow:hidden;margin:0;--padding-top: 1.6rem;--padding-bottom: 1.6rem;--padding-start: 2.4rem;--padding-end: 2.4rem;font-size:1.2rem}ion-button[class^=cf-button-]>p{width:fit-content;font-weight:500;font-style:normal;line-height:auto;color:var(--button-text-color)}ion-button[class^=cf-button-]>:not(:first-child){margin-left:2rem}ion-button[class^=cf-button-]::part(native){border-radius:1rem .4rem 1rem 1rem;box-shadow:none}ion-button[class^=cf-button-].action{border-radius:.6rem;min-height:3.6rem;--padding-top: .6rem;--padding-bottom: .6rem;--padding-start: 2rem;--padding-end: 2rem}ion-button[class^=cf-button-].action::part(native){border-radius:.6rem}ion-button[class^=cf-button-].snug{width:fit-content
|
66
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.8", type: ButtonComponent, selector: "cf-btn", inputs: { type: "type", disabled: "disabled", alert: "alert", action: "action", white: "white", snug: "snug", accent: "accent", fontSize: "fontSize", iconStart: "iconStart", iconEnd: "iconEnd", loading: "loading", loadingText: "loadingText", customColor: "customColor" }, host: { properties: { "style.pointer-events": "this.parentEvents" } }, usesOnChanges: true, ngImport: i0, template: "<ion-button\n [style]=\"'--custom-color: ' + inputCustomColor\"\n [ngClass]=\"{\n 'cf-button-primary': inputType === 'primary',\n 'cf-button-secondary': inputType === 'secondary',\n 'cf-button-tertiary': inputType === 'tertiary',\n 'text-large': inputFontSize === 'large',\n 'text-small': inputFontSize === 'small',\n alert: inputAlert,\n action: inputAction,\n snug: inputSnug,\n accent: inputAccent,\n white: inputWhite\n }\"\n mode=\"md\"\n [disabled]=\"inputDisabled || inputLoading\">\n <cf-icon *ngIf=\"inputIconStart\" [icon]=\"inputIconStart\" style=\"--cf-svg-overwrite-stroke-color: var(--button-text-color)\"></cf-icon>\n <ng-container *ngIf=\"loadingText && inputLoading; else originalText\">\n <cf-spinner [icon]=\"inputIconStart\" [size]=\"inputFontSize === 'large' ? 16 : inputFontSize === 'small' ? 10 : 12\"></cf-spinner>\n <p>{{ loadingText }}</p>\n </ng-container>\n <ng-template #originalText>\n <p *cfButtonLoader=\"inputLoading\"><ng-content></ng-content></p>\n </ng-template>\n <cf-icon *ngIf=\"inputIconEnd\" [icon]=\"inputIconEnd\" style=\"--cf-svg-overwrite-stroke-color: var(--button-text-color)\"></cf-icon>\n</ion-button>\n", styles: ["ion-button[class^=cf-button-]{--custom-color: var(--cf-app-color-primary);--core: var(--custom-color, var(--cf-app-color-primary));width:100%;min-height:5.6rem;border-radius:1rem .4rem 1rem 1rem;text-transform:capitalize;overflow:hidden;margin:0;--padding-top: 1.6rem;--padding-bottom: 1.6rem;--padding-start: 2.4rem;--padding-end: 2.4rem;font-size:1.2rem}ion-button[class^=cf-button-]>p{width:fit-content;font-weight:500;font-style:normal;line-height:auto;color:var(--button-text-color)}ion-button[class^=cf-button-]>:not(:first-child){margin-left:2rem}ion-button[class^=cf-button-]::part(native){border-radius:1rem .4rem 1rem 1rem;box-shadow:none}ion-button[class^=cf-button-].action{border-radius:.6rem;min-height:3.6rem;--padding-top: .6rem;--padding-bottom: .6rem;--padding-start: 2rem;--padding-end: 2rem}ion-button[class^=cf-button-].action::part(native){border-radius:.6rem}ion-button[class^=cf-button-].snug{width:fit-content}ion-button[class^=cf-button-].text-large{font-size:1.6rem}ion-button[class^=cf-button-].text-small{font-size:1rem}.cf-button-primary{--background: var(--core);--button-text-color: var(--cf-app-text-color-light)}.cf-button-primary[class*=disabled]{--background: var(--cf-app-system-color-disabled);--button-text-color: #9d9d9d}.cf-button-primary.accent:not([class*=disabled]){--background: var(--cf-app-color-accent)}.cf-button-primary.alert:not([class*=disabled]){--background: var(--cf-app-system-color-error)}.cf-button-primary.white:not([class*=disabled]){--background: var(--cf-app-background-light);--button-text-color: var(--cf-app-text-color-default)}.cf-button-secondary{--background: transparent;--button-text-color: var(--core)}.cf-button-secondary::part(native){border:.2rem solid var(--core)}.cf-button-secondary[class*=disabled]{--button-text-color: var(--cf-app-system-color-disabled)}.cf-button-secondary[class*=disabled]::part(native){border:.2rem solid var(--cf-app-system-color-disabled)}.cf-button-secondary.accent:not([class*=disabled]){--button-text-color: var(--cf-app-color-accent)}.cf-button-secondary.accent:not([class*=disabled])::part(native){border:.2rem solid var(--cf-app-color-accent)}.cf-button-secondary.alert:not([class*=disabled]){--button-text-color: var(--cf-app-system-color-error)}.cf-button-secondary.alert:not([class*=disabled])::part(native){border:.2rem solid var(--cf-app-system-color-error)}.cf-button-secondary.white:not([class*=disabled]){--background: var(--cf-app-color-primary);--button-text-color: var(--cf-app-text-color-light)}.cf-button-secondary.white:not([class*=disabled])::part(native){border:.2rem solid var(--cf-app-background-light)}.cf-button-tertiary{--background: transparent;--button-text-color: var(--core)}.cf-button-tertiary[class*=disabled]{--button-text-color: var(--cf-app-system-color-disabled)}.cf-button-tertiary.accent:not([class*=disabled]){--button-text-color: var(--cf-app-color-accent)}.cf-button-tertiary.alert:not([class*=disabled]){--button-text-color: var(--cf-app-system-color-error)}.cf-button-tertiary.white:not([class*=disabled]){--button-text-color: var(--cf-app-text-color-light)}\n"], dependencies: [{ kind: "component", type: i1.IonButton, selector: "ion-button", inputs: ["buttonType", "color", "disabled", "download", "expand", "fill", "form", "href", "mode", "rel", "routerAnimation", "routerDirection", "shape", "size", "strong", "target", "type"] }, { kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i3.IconComponent, selector: "cf-icon", inputs: ["icon", "height", "heightMobile", "heightDesktop", "iconColor"] }, { kind: "directive", type: i4.ButtonLoaderDirective, selector: "[cfButtonLoader]", inputs: ["cfButtonLoader"] }, { kind: "component", type: i5.SpinnerComponent, selector: "cf-spinner", inputs: ["size"] }] });
|
67
67
|
}
|
68
68
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.8", ngImport: i0, type: ButtonComponent, decorators: [{
|
69
69
|
type: Component,
|
70
|
-
args: [{ selector: 'cf-btn', template: "<ion-button\n [style]=\"'--custom-color: ' + inputCustomColor\"\n [ngClass]=\"{\n 'cf-button-primary': inputType === 'primary',\n 'cf-button-secondary': inputType === 'secondary',\n 'cf-button-tertiary': inputType === 'tertiary',\n 'text-large': inputFontSize === 'large',\n 'text-small': inputFontSize === 'small',\n alert: inputAlert,\n action: inputAction,\n snug: inputSnug,\n accent: inputAccent,\n white: inputWhite\n }\"\n mode=\"md\"\n [disabled]=\"inputDisabled || inputLoading\">\n <cf-icon *ngIf=\"inputIconStart\" [icon]=\"inputIconStart\" style=\"--cf-svg-overwrite-stroke-color: var(--button-text-color)\"></cf-icon>\n <ng-container *ngIf=\"loadingText && inputLoading; else originalText\">\n <cf-spinner [icon]=\"inputIconStart\" [size]=\"inputFontSize === 'large' ? 16 : inputFontSize === 'small' ? 10 : 12\"></cf-spinner>\n <p>{{ loadingText }}</p>\n </ng-container>\n <ng-template #originalText>\n <p *cfButtonLoader=\"inputLoading\"><ng-content></ng-content></p>\n </ng-template>\n <cf-icon *ngIf=\"inputIconEnd\" [icon]=\"inputIconEnd\" style=\"--cf-svg-overwrite-stroke-color: var(--button-text-color)\"></cf-icon>\n</ion-button>\n", styles: ["ion-button[class^=cf-button-]{--custom-color: var(--cf-app-color-primary);--core: var(--custom-color, var(--cf-app-color-primary));width:100%;min-height:5.6rem;border-radius:1rem .4rem 1rem 1rem;text-transform:capitalize;overflow:hidden;margin:0;--padding-top: 1.6rem;--padding-bottom: 1.6rem;--padding-start: 2.4rem;--padding-end: 2.4rem;font-size:1.2rem}ion-button[class^=cf-button-]>p{width:fit-content;font-weight:500;font-style:normal;line-height:auto;color:var(--button-text-color)}ion-button[class^=cf-button-]>:not(:first-child){margin-left:2rem}ion-button[class^=cf-button-]::part(native){border-radius:1rem .4rem 1rem 1rem;box-shadow:none}ion-button[class^=cf-button-].action{border-radius:.6rem;min-height:3.6rem;--padding-top: .6rem;--padding-bottom: .6rem;--padding-start: 2rem;--padding-end: 2rem}ion-button[class^=cf-button-].action::part(native){border-radius:.6rem}ion-button[class^=cf-button-].snug{width:fit-content
|
70
|
+
args: [{ selector: 'cf-btn', template: "<ion-button\n [style]=\"'--custom-color: ' + inputCustomColor\"\n [ngClass]=\"{\n 'cf-button-primary': inputType === 'primary',\n 'cf-button-secondary': inputType === 'secondary',\n 'cf-button-tertiary': inputType === 'tertiary',\n 'text-large': inputFontSize === 'large',\n 'text-small': inputFontSize === 'small',\n alert: inputAlert,\n action: inputAction,\n snug: inputSnug,\n accent: inputAccent,\n white: inputWhite\n }\"\n mode=\"md\"\n [disabled]=\"inputDisabled || inputLoading\">\n <cf-icon *ngIf=\"inputIconStart\" [icon]=\"inputIconStart\" style=\"--cf-svg-overwrite-stroke-color: var(--button-text-color)\"></cf-icon>\n <ng-container *ngIf=\"loadingText && inputLoading; else originalText\">\n <cf-spinner [icon]=\"inputIconStart\" [size]=\"inputFontSize === 'large' ? 16 : inputFontSize === 'small' ? 10 : 12\"></cf-spinner>\n <p>{{ loadingText }}</p>\n </ng-container>\n <ng-template #originalText>\n <p *cfButtonLoader=\"inputLoading\"><ng-content></ng-content></p>\n </ng-template>\n <cf-icon *ngIf=\"inputIconEnd\" [icon]=\"inputIconEnd\" style=\"--cf-svg-overwrite-stroke-color: var(--button-text-color)\"></cf-icon>\n</ion-button>\n", styles: ["ion-button[class^=cf-button-]{--custom-color: var(--cf-app-color-primary);--core: var(--custom-color, var(--cf-app-color-primary));width:100%;min-height:5.6rem;border-radius:1rem .4rem 1rem 1rem;text-transform:capitalize;overflow:hidden;margin:0;--padding-top: 1.6rem;--padding-bottom: 1.6rem;--padding-start: 2.4rem;--padding-end: 2.4rem;font-size:1.2rem}ion-button[class^=cf-button-]>p{width:fit-content;font-weight:500;font-style:normal;line-height:auto;color:var(--button-text-color)}ion-button[class^=cf-button-]>:not(:first-child){margin-left:2rem}ion-button[class^=cf-button-]::part(native){border-radius:1rem .4rem 1rem 1rem;box-shadow:none}ion-button[class^=cf-button-].action{border-radius:.6rem;min-height:3.6rem;--padding-top: .6rem;--padding-bottom: .6rem;--padding-start: 2rem;--padding-end: 2rem}ion-button[class^=cf-button-].action::part(native){border-radius:.6rem}ion-button[class^=cf-button-].snug{width:fit-content}ion-button[class^=cf-button-].text-large{font-size:1.6rem}ion-button[class^=cf-button-].text-small{font-size:1rem}.cf-button-primary{--background: var(--core);--button-text-color: var(--cf-app-text-color-light)}.cf-button-primary[class*=disabled]{--background: var(--cf-app-system-color-disabled);--button-text-color: #9d9d9d}.cf-button-primary.accent:not([class*=disabled]){--background: var(--cf-app-color-accent)}.cf-button-primary.alert:not([class*=disabled]){--background: var(--cf-app-system-color-error)}.cf-button-primary.white:not([class*=disabled]){--background: var(--cf-app-background-light);--button-text-color: var(--cf-app-text-color-default)}.cf-button-secondary{--background: transparent;--button-text-color: var(--core)}.cf-button-secondary::part(native){border:.2rem solid var(--core)}.cf-button-secondary[class*=disabled]{--button-text-color: var(--cf-app-system-color-disabled)}.cf-button-secondary[class*=disabled]::part(native){border:.2rem solid var(--cf-app-system-color-disabled)}.cf-button-secondary.accent:not([class*=disabled]){--button-text-color: var(--cf-app-color-accent)}.cf-button-secondary.accent:not([class*=disabled])::part(native){border:.2rem solid var(--cf-app-color-accent)}.cf-button-secondary.alert:not([class*=disabled]){--button-text-color: var(--cf-app-system-color-error)}.cf-button-secondary.alert:not([class*=disabled])::part(native){border:.2rem solid var(--cf-app-system-color-error)}.cf-button-secondary.white:not([class*=disabled]){--background: var(--cf-app-color-primary);--button-text-color: var(--cf-app-text-color-light)}.cf-button-secondary.white:not([class*=disabled])::part(native){border:.2rem solid var(--cf-app-background-light)}.cf-button-tertiary{--background: transparent;--button-text-color: var(--core)}.cf-button-tertiary[class*=disabled]{--button-text-color: var(--cf-app-system-color-disabled)}.cf-button-tertiary.accent:not([class*=disabled]){--button-text-color: var(--cf-app-color-accent)}.cf-button-tertiary.alert:not([class*=disabled]){--button-text-color: var(--cf-app-system-color-error)}.cf-button-tertiary.white:not([class*=disabled]){--button-text-color: var(--cf-app-text-color-light)}\n"] }]
|
71
71
|
}], propDecorators: { type: [{
|
72
72
|
type: Input
|
73
73
|
}], disabled: [{
|
@@ -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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1pbnB1dC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jYXJlZmlyc3QvbGlicmFyeS9zcmMvbGliL2NvbXBvbmVudHMvZm9ybS1pbnB1dC9mb3JtLWlucHV0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NhcmVmaXJzdC9saWJyYXJ5L3NyYy9saWIvY29tcG9uZW50cy9mb3JtLWlucHV0L2Zvcm0taW5wdXQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBeUJBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBc0MsWUFBWSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNHLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUU3QyxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUN0RixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQzs7Ozs7OztBQU14RSxNQUFNLE9BQU8sR0FBRztJQUNkLGNBQWMsRUFBRSxDQUFDLE9BQU8sRUFBRSxVQUFVLEVBQUUsU0FBUyxFQUFFLE9BQU8sRUFBRSxLQUFLLENBQUM7SUFDaEUsU0FBUyxFQUFFLENBQUMsTUFBTSxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsUUFBUSxDQUFDO0lBQzFFLGNBQWMsRUFBRSxDQUFDLEtBQUssRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFLFdBQVcsRUFBRSxPQUFPLEVBQUUsWUFBWSxDQUFDO0lBQ3pFLElBQUksRUFBRSxDQUFDLE1BQU0sRUFBRSxnQkFBZ0IsRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLFFBQVEsRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxNQUFNLENBQUM7Q0FDaEgsQ0FBQztBQU9YLE1BQU0sT0FBTyxrQkFBa0I7SUFDcEIsS0FBSyxDQUFVO0lBQ2YsR0FBRyxDQUE4QjtJQUNqQyxHQUFHLENBQThCO0lBQ2pDLGNBQWMsQ0FBMkM7SUFDekQsV0FBVyxDQUFzQjtJQUNqQyxTQUFTLENBQXNDO0lBQy9DLGNBQWMsQ0FBMkM7SUFDekQsSUFBSSxDQUFpQztJQUNyQyxhQUFhLENBQWdDO0lBQzdDLE9BQU8sQ0FBc0I7SUFDN0IsVUFBVSxDQUFnQztJQUMxQyxTQUFTLENBQW1CO0lBQzVCLGNBQWMsQ0FBZ0M7SUFDOUMsa0JBQWtCLEdBQWtCLElBQUksQ0FBQztJQUd6QyxLQUFLLENBQXFCO0lBQ3pCLFdBQVcsR0FBRyxJQUFJLFlBQVksRUFBcUIsQ0FBQztJQUc5RCxtQkFBbUIsQ0FBNkI7SUFDaEQsY0FBYyxDQUF3QjtJQUN0QyxVQUFVLEdBQUcsS0FBSyxDQUFDO0lBQ25CLGVBQWUsR0FBRyxLQUFLLENBQUM7SUFDeEIsU0FBUyxDQUFtQjtJQUM1QixtQkFBbUIsQ0FBNkI7SUFDaEQsbUJBQW1CLEdBQUcsS0FBSyxDQUFDO0lBQzVCLFlBQVksR0FBRyxLQUFLLENBQUM7SUFDckIsZ0JBQWdCLEdBQWtCLElBQUksQ0FBQztJQUN2QyxnQkFBZ0IsR0FBa0IsSUFBSSxDQUFDO0lBT3ZDLFdBQVcsQ0FBQyxPQUFzQjtRQUVoQyxJQUFJLENBQUMsbUJBQW1CO1lBQ3RCLG1CQUFtQixDQUNqQixPQUFPLEVBQ1AsZ0JBQWdCLEVBQ2hCLE9BQU8sQ0FBQyxjQUFjLENBQUMsS0FBSyxFQUFFLEVBQzlCLElBQUksQ0FBQyxtQkFBbUIsQ0FDekIsSUFBSSxVQUFVLENBQUM7UUFFbEIsSUFBSSxDQUFDLGNBQWM7WUFDakIsbUJBQW1CLENBQXFDLE9BQU8sRUFBRSxXQUFXLEVBQUUsT0FBTyxDQUFDLFNBQVMsQ0FBQyxLQUFLLEVBQUUsRUFBRSxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksTUFBTSxDQUFDO1FBRTFJLElBQUksQ0FBQyxVQUFVLEdBQUcsbUJBQW1CLENBQUMsT0FBTyxFQUFFLGVBQWUsRUFBRSxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7UUFFakYsSUFBSSxDQUFDLGVBQWUsR0FBRyxtQkFBbUIsQ0FBQyxPQUFPLEVBQUUsWUFBWSxFQUFFLElBQUksQ0FBQyxlQUFlLENBQUMsQ0FBQztRQUV4RixJQUFJLENBQUMsU0FBUyxHQUFHLG1CQUFtQixDQUFnQyxPQUFPLEVBQUUsTUFBTSxFQUFFLE9BQU8sQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLE1BQU0sQ0FBQztRQUVySSxJQUFJLENBQUMsbUJBQW1CO1lBQ3RCLG1CQUFtQixDQUNqQixPQUFPLEVBQ1AsZ0JBQWdCLEVBQ2hCLE9BQU8sQ0FBQyxjQUFjLENBQUMsS0FBSyxFQUFFLEVBQzlCLElBQUksQ0FBQyxtQkFBbUIsQ0FDekIsSUFBSSxNQUFNLENBQUM7UUFFZCxJQUFJLENBQUMsbUJBQW1CLEdBQUcsbUJBQW1CLENBQUMsT0FBTyxFQUFFLGdCQUFnQixFQUFFLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO1FBSXBHLElBQUksSUFBSSxDQUFDLFNBQVMsS0FBSyxNQUFNLEVBQUUsQ0FBQztZQUM5QixJQUFJLE9BQU8sQ0FBQyxLQUFLLENBQUMsRUFBRSxZQUFZLElBQUksT0FBTyxDQUFDLEtBQUssQ0FBQyxFQUFFLFlBQVksRUFBRSxDQUFDO2dCQUVqRSxJQUFJLENBQUMsZ0JBQWdCLEdBQUcsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUM7Z0JBQzdGLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQztnQkFFN0YsSUFBSSxDQUFDLE9BQU8sRUFBRSxhQUFhLENBQUMsaUJBQWlCLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsSUFBSSxJQUFJLEVBQUUsSUFBSSxDQUFDLGdCQUFnQixJQUFJLElBQUksQ0FBQyxDQUFDLENBQUM7WUFDM0gsQ0FBQztRQUNILENBQUM7SUFDSCxDQUFDO0lBT0Qsa0JBQWtCO1FBQ2hCLElBQUksQ0FBQyxZQUFZLEdBQUcsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDO1FBQ3ZDLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLFNBQVMsS0FBSyxVQUFVLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDO0lBQ3ZFLENBQUM7dUdBdkZVLGtCQUFrQjsyRkFBbEIsa0JBQWtCLCtlQy9DL0IsKzhEQXVEQTs7MkZEUmEsa0JBQWtCO2tCQUw5QixTQUFTOytCQUNFLGVBQWU7OEJBS2hCLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxHQUFHO3NCQUFYLEtBQUs7Z0JBQ0csR0FBRztzQkFBWCxLQUFLO2dCQUNHLGNBQWM7c0JBQXRCLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFDRyxTQUFTO3NCQUFqQixLQUFLO2dCQUNHLGNBQWM7c0JBQXRCLEtBQUs7Z0JBQ0csSUFBSTtzQkFBWixLQUFLO2dCQUNHLGFBQWE7c0JBQXJCLEtBQUs7Z0JBQ0csT0FBTztzQkFBZixLQUFLO2dCQUNHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSztnQkFDRyxjQUFjO3NCQUF0QixLQUFLO2dCQUNHLGtCQUFrQjtzQkFBMUIsS0FBSztnQkFHRyxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0ksV0FBVztzQkFBcEIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQ2FyZWZpcnN0IExpYnJhcnkgRm9ybSBJbnB1dFxuICpcbiAqIEBmaWxlICAgICAgICAgIGZvcm0taW5wdXQuY29tcG9uZW50XG4gKiBAZGVzY3JpcHRpb24gICBDb250YWlucyBhbGwgdGhlIGxvZ2ljIGZvciBnZW5lcmF0aW5nIGEgQ2FyZUZpcnN0IEZvcm0gSW5wdXQgRmllbGRcbiAqIEBhdXRob3IgICAgICAgIEFybm8gSmFuc2VuIHZhbiBWdXVyZW5cbiAqIEBzaW5jZSAgICAgICAgIDIwMjMgLSAxMiAtIDE0XG4gKiBAdXNhZ2UgICAgICAgICA8Y2YtZm9ybS1pbnB1dFxuICogICAgICAgICAgICAgICAgICBsYWJlbD1cIkxhYmVsIE5hbWVcIlxuICogICAgICAgICAgICAgICAgICAlbGFiZWxQbGFjZW1lbnQlXG4gKiAgICAgICAgICAgICAgICAgICVpbnB1dE1vZGUlXG4gKiAgICAgICAgICAgICAgICAgICVub0NsZWFyQnV0dG9uJVxuICogICAgICAgICAgICAgICAgICAldGV4dENlbnRlciVcbiAqICAgICAgICAgICAgICAgICAgJW1pbiVcbiAqICAgICAgICAgICAgICAgICAgJW1heCVcbiAqICAgICAgICAgICAgICAgICAgJWF1dG9DYXBpdGFsaXplJVxuICogICAgICAgICAgICAgICAgICAldHlwZSVcbiAqICAgICAgICAgICAgICAgICAgJVsodmFsdWUpXT1cInR3b1dheUNvbXNcIiVcbiAqICAgICAgICAgICAgICAgICAgJSh2YWx1ZUNoYW5nZSk9XCJjdXJyZW50VmFsdWVFdmVudFwiJVxuICogICAgICAgICAgICAgICAgICAlW2NvbnRyb2xdJT1cImZvcm1OYW1lLmNvbnRyb2xzLmNvbnRyb2xOYW1lXCJcbiAqICAgICAgICAgICAgICAgICAgJVtjdXN0b21FcnJvck1lc3NhZ2VdJT1cImVycm9yTWVzc2FnZVwiXG4gKiAgICAgICAgICAgICAgICA+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,
|
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,
|
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
|
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
|
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,
|
23
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS12YWxpZGF0aW9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NhcmVmaXJzdC9saWJyYXJ5L3NyYy9saWIvY29tcG9uZW50cy9mb3JtLXZhbGlkYXRpb24vZm9ybS12YWxpZGF0aW9uLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NhcmVmaXJzdC9saWJyYXJ5L3NyYy9saWIvY29tcG9uZW50cy9mb3JtLXZhbGlkYXRpb24vZm9ybS12YWxpZGF0aW9uLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQVVBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFzQyxNQUFNLGVBQWUsQ0FBQzs7O0FBU3JGLE1BQU0sT0FBTyx1QkFBdUI7SUFFekIsT0FBTyxHQUF1QixJQUFJLENBQUM7SUFDbkMsa0JBQWtCLEdBQWtCLElBQUksQ0FBQztJQU9sRCxXQUFXLENBQUMsT0FBc0I7UUFDaEMsSUFBSSxPQUFPLENBQUMsU0FBUyxDQUFDLElBQUksT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQUFDLFlBQVksRUFBRSxDQUFDO1lBQzFELElBQUksQ0FBQyxPQUFPLEdBQUcsT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQUFDLFlBQVksQ0FBQztRQUNqRCxDQUFDO0lBQ0gsQ0FBQzt1R0FkVSx1QkFBdUI7MkZBQXZCLHVCQUF1Qix5SkNuQnBDLGl6QkFhQTs7MkZETWEsdUJBQXVCO2tCQUxuQyxTQUFTOytCQUNFLG9CQUFvQjs4QkFNckIsT0FBTztzQkFBZixLQUFLO2dCQUNHLGtCQUFrQjtzQkFBMUIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQ2FyZUZpcnN0IExpYnJhcnkgRm9ybSBWYWxpZGF0aW9uIEZlZWRiYWNrXG4gKlxuICogQGZpbGUgICAgICAgICAgZm9ybS12YWxpZGF0aW9uLmNvbXBvbmVudFxuICogQGRlc2NyaXB0aW9uICAgQ29udGFpbnMgYWxsIHRoZSBsb2dpYyBmb3IgZ2VuZXJhdGluZyBDYXJlRmlyc3QgRm9ybSBWYWxpZGF0aW9uIEZlZWRiYWNrXG4gKiBAYXV0aG9yICAgICAgICBBcm5vIEphbnNlbiB2YW4gVnV1cmVuXG4gKiBAc2luY2UgICAgICAgICAyMDIzIC0gMTIgLSAwNVxuICogQHVzYWdlICAgICAgICAgPGNmLWZvcm0tdmFsaWRhdGlvbiBbY29udHJvbF09XCJmb3JtTmFtZS5nZXQoJ2NvbnRyb2xOYW1lJylcIiBbY3VzdG9tRXJyb3JNZXNzYWdlXT1cImVycm9yTWVzc2FnZVwiPjwvY2YtZm9ybS12YWxpZGF0aW9uPlxuICovXG5cbmltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIHR5cGUgT25DaGFuZ2VzLCB0eXBlIFNpbXBsZUNoYW5nZXMgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbi8vLS0tIEludGVyZmFjZXNcbmltcG9ydCB0eXBlIHsgRm9ybUNvbnRyb2wgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2NmLWZvcm0tdmFsaWRhdGlvbicsXG4gIHRlbXBsYXRlVXJsOiAnLi9mb3JtLXZhbGlkYXRpb24uY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybDogJy4vZm9ybS12YWxpZGF0aW9uLmNvbXBvbmVudC5zY3NzJyxcbn0pXG5leHBvcnQgY2xhc3MgRm9ybVZhbGlkYXRpb25Db21wb25lbnQgaW1wbGVtZW50cyBPbkNoYW5nZXMge1xuICAvLy0tLSBSZWNlaXZlIGZvcm0gY29udHJvbFxuICBASW5wdXQoKSBjb250cm9sOiBGb3JtQ29udHJvbCB8IG51bGwgPSBudWxsO1xuICBASW5wdXQoKSBjdXN0b21FcnJvck1lc3NhZ2U6IHN0cmluZyB8IG51bGwgPSBudWxsO1xuXG4gIC8qKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICogQG5hbWUgICAgICAgICAgbmdPbkNoYW5nZXNcbiAgICogQGRlc2NyaXB0aW9uICAgRGV0ZWN0IGNoYW5nZXMgdG8gaW5wdXQgdmFsdWVzXG4gICAqIEBwYXJhbSAgICAgICAgIHtTaW1wbGVDaGFuZ2VzfSBjaGFuZ2VzXG4gICAqL1xuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG4gICAgaWYgKGNoYW5nZXNbJ2NvbnRyb2wnXSAmJiBjaGFuZ2VzWydjb250cm9sJ10uY3VycmVudFZhbHVlKSB7XG4gICAgICB0aGlzLmNvbnRyb2wgPSBjaGFuZ2VzWydjb250cm9sJ10uY3VycmVudFZhbHVlO1xuICAgIH1cbiAgfVxufVxuIiwiPGRpdiAqbmdJZj1cImN1c3RvbUVycm9yTWVzc2FnZTsgZWxzZSB1c2VDb250cm9sXCIgY2xhc3M9XCJmb3JtLXZhbGlkLWZlZWRiYWNrXCI+XG4gIDxwIGNsYXNzPVwiYm9keS1tZWRpdW1cIj57eyBjdXN0b21FcnJvck1lc3NhZ2UgfX08L3A+XG48L2Rpdj5cbjxuZy10ZW1wbGF0ZSAjdXNlQ29udHJvbD5cbiAgPGRpdiAqbmdJZj1cImNvbnRyb2w/LmRpcnR5ICYmIGNvbnRyb2w/LmVycm9yc1wiIGNsYXNzPVwiZm9ybS12YWxpZC1mZWVkYmFja1wiPlxuICAgIDxkaXYgKm5nRm9yPVwibGV0IGVycm9yIG9mIHRoaXMuY29udHJvbD8uZXJyb3JzIHwga2V5dmFsdWVcIj5cbiAgICAgIDxwIGNsYXNzPVwiYm9keS1tZWRpdW1cIiAqbmdJZj1cImVycm9yLmtleSA9PT0gJ2VtYWlsJ1wiPipJbnZhbGlkIGVtYWlsIGZvcm1hdDwvcD5cbiAgICAgIDxwIGNsYXNzPVwiYm9keS1tZWRpdW1cIiAqbmdJZj1cImVycm9yLmtleSA9PT0gJ21pbmxlbmd0aCdcIj4qTGVuZ3RoIHJlcXVpcmVkOiB7eyBlcnJvci52YWx1ZS5yZXF1aXJlZExlbmd0aCAtIGVycm9yLnZhbHVlLmFjdHVhbExlbmd0aCB9fTwvcD5cbiAgICAgIDxwIGNsYXNzPVwiYm9keS1tZWRpdW1cIiAqbmdJZj1cImVycm9yLmtleSA9PT0gJ21heGxlbmd0aCdcIj4qTWF4IExlbmd0aDoge3sgZXJyb3IudmFsdWUucmVxdWlyZWRMZW5ndGggfX08L3A+XG4gICAgICA8cCBjbGFzcz1cImJvZHktbWVkaXVtXCIgKm5nSWY9XCJlcnJvci5rZXkgPT09ICdlcnJvck1lc3NhZ2UnXCI+Knt7IGVycm9yLnZhbHVlIH19PC9wPlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbjwvbmctdGVtcGxhdGU+XG4iXX0=
|