@carefirst/library 2.0.30 → 2.1.0
Sign up to get free protection for your applications and to get access to all the features.
- package/esm2022/lib/components/alert/alert.component.mjs +3 -3
- package/esm2022/lib/components/badge/badge.component.mjs +3 -3
- package/esm2022/lib/components/button/button.component.mjs +3 -3
- package/esm2022/lib/components/calendar/calendar.component.mjs +3 -3
- package/esm2022/lib/components/chat-bubble/chat-bubble.component.mjs +7 -5
- package/esm2022/lib/components/form-input/form-input.component.mjs +3 -3
- package/esm2022/lib/components/form-input-select/form-input-select.component.mjs +3 -3
- package/esm2022/lib/components/form-input-text-area/form-input-text-area.component.mjs +3 -3
- package/esm2022/lib/components/form-validation/form-validation.component.mjs +3 -3
- package/esm2022/lib/components/icon/icon.component.mjs +3 -3
- package/esm2022/lib/components/logo/logo.component.mjs +3 -3
- package/esm2022/lib/components/mix-p/mix-p.component.mjs +3 -3
- package/esm2022/lib/components/notification/notification.component.mjs +3 -3
- package/esm2022/lib/components/page/page.component.mjs +3 -3
- package/esm2022/lib/components/spacer/spacer.component.mjs +3 -3
- package/esm2022/lib/components/spinner/spinner.component.mjs +3 -3
- package/esm2022/lib/components/verification-code/verification-code.component.mjs +3 -3
- package/esm2022/lib/directives/button-loader.directive.mjs +6 -6
- package/esm2022/lib/library.module.mjs +4 -4
- package/esm2022/lib/utils/form-validators-utility.mjs +22 -1
- package/fesm2022/carefirst-library.mjs +84 -62
- package/fesm2022/carefirst-library.mjs.map +1 -1
- package/lib/utils/form-validators-utility.d.ts +1 -0
- package/package.json +1 -1
@@ -42,10 +42,10 @@ export class AlertComponent {
|
|
42
42
|
});
|
43
43
|
alert.present();
|
44
44
|
}
|
45
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.
|
46
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.
|
45
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.7", ngImport: i0, type: AlertComponent, deps: [{ token: i1.AlertController }], target: i0.ɵɵFactoryTarget.Component });
|
46
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.7", type: AlertComponent, selector: "cf-alert", inputs: { data: "data" }, outputs: { alertEvent: "alertEvent" }, usesOnChanges: true, ngImport: i0, template: "", styles: ["::ng-deep .care-first-alert .alert-wrapper{padding:1.6rem;border-radius:1.6rem;background-color:var(--cf-app-background-light)}::ng-deep .care-first-alert .alert-wrapper>*{text-align:center;padding:0}::ng-deep .care-first-alert .alert-wrapper .alert-title{font-weight:900;font-size:1.8rem;color:var(--cf-app-text-color-default)}::ng-deep .care-first-alert .alert-wrapper .alert-message{font-size:1.4rem;margin-top:1.2rem;color:var(--cf-app-text-color-default)}@media (min-width: 768px){::ng-deep .care-first-alert .alert-wrapper .alert-title{font-size:2.8rem}::ng-deep .care-first-alert .alert-wrapper .alert-message{font-size:1.8rem}}::ng-deep .care-first-alert .alert-wrapper .alert-button-group{margin-top:1.6rem;display:flex;justify-content:center;gap:4rem}@media (min-width: 768px){::ng-deep .care-first-alert .alert-wrapper .alert-button-group{gap:2rem}}::ng-deep .care-first-alert .alert-wrapper button.alert-button{font-size:1.6rem;padding:.6rem 2rem;margin:0}::ng-deep .care-first-alert .alert-wrapper button.alert-button.alert-button-cancel{color:var(--cf-app-system-color-error)}::ng-deep .care-first-alert .alert-wrapper button.alert-button.alert-button-confirm{border-radius:.6rem;background-color:var(--cf-app-color-primary);color:var(--cf-app-text-color-light)}\n"] });
|
47
47
|
}
|
48
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.
|
48
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.7", ngImport: i0, type: AlertComponent, decorators: [{
|
49
49
|
type: Component,
|
50
50
|
args: [{ selector: 'cf-alert', template: "", styles: ["::ng-deep .care-first-alert .alert-wrapper{padding:1.6rem;border-radius:1.6rem;background-color:var(--cf-app-background-light)}::ng-deep .care-first-alert .alert-wrapper>*{text-align:center;padding:0}::ng-deep .care-first-alert .alert-wrapper .alert-title{font-weight:900;font-size:1.8rem;color:var(--cf-app-text-color-default)}::ng-deep .care-first-alert .alert-wrapper .alert-message{font-size:1.4rem;margin-top:1.2rem;color:var(--cf-app-text-color-default)}@media (min-width: 768px){::ng-deep .care-first-alert .alert-wrapper .alert-title{font-size:2.8rem}::ng-deep .care-first-alert .alert-wrapper .alert-message{font-size:1.8rem}}::ng-deep .care-first-alert .alert-wrapper .alert-button-group{margin-top:1.6rem;display:flex;justify-content:center;gap:4rem}@media (min-width: 768px){::ng-deep .care-first-alert .alert-wrapper .alert-button-group{gap:2rem}}::ng-deep .care-first-alert .alert-wrapper button.alert-button{font-size:1.6rem;padding:.6rem 2rem;margin:0}::ng-deep .care-first-alert .alert-wrapper button.alert-button.alert-button-cancel{color:var(--cf-app-system-color-error)}::ng-deep .care-first-alert .alert-wrapper button.alert-button.alert-button-confirm{border-radius:.6rem;background-color:var(--cf-app-color-primary);color:var(--cf-app-text-color-light)}\n"] }]
|
51
51
|
}], ctorParameters: () => [{ type: i1.AlertController }], propDecorators: { data: [{
|
@@ -38,10 +38,10 @@ export class BadgeComponent {
|
|
38
38
|
if (this.inputLarge)
|
39
39
|
this.fontsize = 16;
|
40
40
|
}
|
41
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.
|
42
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.
|
41
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.7", ngImport: i0, type: BadgeComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
42
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.7", type: BadgeComponent, selector: "cf-badge", inputs: { type: "type", icon: "icon", small: "small", large: "large" }, usesOnChanges: true, ngImport: i0, template: "<div [className]=\"'cf-badge-' + inputType\" [ngClass]=\"{ small: inputSmall, large: inputLarge }\">\n <cf-icon *ngIf=\"inputIcon && inputType !== 'feedback-busy'\" [icon]=\"inputIcon\" [height]=\"fontsize\"></cf-icon>\n <ion-spinner *ngIf=\"inputType === 'feedback-busy'\"></ion-spinner>\n <p><ng-content></ng-content></p>\n</div>\n", styles: ["div[class^=cf-badge-]{--cf-badge-background: var(--cf-app-color-primary);--cf-badge-text-color: var(--cf-app-text-color-light);--cf-badge-border-color: var(--cf-badge-background);--cf-svg-overwrite-stroke-color: var(--cf-badge-text-color);display:flex;flex-direction:row;gap:8px;justify-content:center;align-items:center;padding:0 16px;border-radius:6px;width:fit-content;background:var(--cf-badge-background);border:.2rem solid var(--cf-badge-border-color);height:3.4rem}div[class^=cf-badge-]>p{width:fit-content;font-size:1.2rem;font-weight:500;font-style:normal;line-height:auto;color:var(--cf-badge-text-color)}div[class^=cf-badge-].small{height:2.8rem}div[class^=cf-badge-].small>p{font-size:1rem}div[class^=cf-badge-].large{height:4rem}div[class^=cf-badge-].large>p{font-size:1.6rem}div.cf-badge-feedback-primary{--cf-badge-background: var(--cf-app-color-primary);--cf-badge-text-color: var(--cf-app-text-color-light);--cf-badge-border-color: var(--cf-badge-background)}div.cf-badge-white{--cf-badge-background: #fff;--cf-badge-text-color: var(--cf-app-text-color-default);--cf-badge-border-color: #fff}div.cf-badge-success{--cf-badge-background: var(--cf-app-system-color-success);--cf-badge-text-color: var(--cf-app-text-color-light);--cf-badge-border-color: var(--cf-app-system-color-success)}div.cf-badge-alert{--cf-badge-background: var(--cf-app-system-color-error);--cf-badge-text-color: var(--cf-app-text-color-light);--cf-badge-border-color: var(--cf-app-system-color-error)}div.cf-badge-accent{--cf-badge-background: var(--cf-app-color-accent);--cf-badge-text-color: var(--cf-app-text-color-light);--cf-badge-border-color: var(--cf-app-color-accent)}div.cf-badge-warning{--cf-badge-background: var(--cf-app-system-color-warning);--cf-badge-text-color: var(--cf-app-text-color-default);--cf-badge-border-color: var(--cf-app-system-color-warning)}div.cf-badge-disabled{--cf-badge-background: var(--cf-app-system-color-disabled);--cf-badge-text-color: var(--cf-app-text-color-grey);--cf-badge-border-color: var(--cf-app-system-color-disabled)}div.cf-badge-feedback-success{--cf-badge-background: var(--cf-app-system-color-light-success);--cf-badge-text-color: var(--cf-app-system-color-success);--cf-badge-border-color: var(--cf-app-system-color-success)}div.cf-badge-feedback-error{--cf-badge-background: var(--cf-app-system-color-light-error);--cf-badge-text-color: var(--cf-app-system-color-error);--cf-badge-border-color: var(--cf-app-system-color-error)}div.cf-badge-feedback-warning,div.cf-badge-feedback-busy{--cf-badge-background: var(--cf-app-system-color-light-warning);--cf-badge-text-color: var(--cf-app-system-color-warning);--cf-badge-border-color: var(--cf-app-system-color-warning)}div.cf-badge-feedback-busy ion-spinner{color:var(--cf-app-system-color-warning);height:1.2rem;width:1.2rem}\n"], dependencies: [{ kind: "component", type: i1.IonSpinner, selector: "ion-spinner", inputs: ["color", "duration", "name", "paused"] }, { 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"] }] });
|
43
43
|
}
|
44
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.
|
44
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.7", ngImport: i0, type: BadgeComponent, decorators: [{
|
45
45
|
type: Component,
|
46
46
|
args: [{ selector: 'cf-badge', template: "<div [className]=\"'cf-badge-' + inputType\" [ngClass]=\"{ small: inputSmall, large: inputLarge }\">\n <cf-icon *ngIf=\"inputIcon && inputType !== 'feedback-busy'\" [icon]=\"inputIcon\" [height]=\"fontsize\"></cf-icon>\n <ion-spinner *ngIf=\"inputType === 'feedback-busy'\"></ion-spinner>\n <p><ng-content></ng-content></p>\n</div>\n", styles: ["div[class^=cf-badge-]{--cf-badge-background: var(--cf-app-color-primary);--cf-badge-text-color: var(--cf-app-text-color-light);--cf-badge-border-color: var(--cf-badge-background);--cf-svg-overwrite-stroke-color: var(--cf-badge-text-color);display:flex;flex-direction:row;gap:8px;justify-content:center;align-items:center;padding:0 16px;border-radius:6px;width:fit-content;background:var(--cf-badge-background);border:.2rem solid var(--cf-badge-border-color);height:3.4rem}div[class^=cf-badge-]>p{width:fit-content;font-size:1.2rem;font-weight:500;font-style:normal;line-height:auto;color:var(--cf-badge-text-color)}div[class^=cf-badge-].small{height:2.8rem}div[class^=cf-badge-].small>p{font-size:1rem}div[class^=cf-badge-].large{height:4rem}div[class^=cf-badge-].large>p{font-size:1.6rem}div.cf-badge-feedback-primary{--cf-badge-background: var(--cf-app-color-primary);--cf-badge-text-color: var(--cf-app-text-color-light);--cf-badge-border-color: var(--cf-badge-background)}div.cf-badge-white{--cf-badge-background: #fff;--cf-badge-text-color: var(--cf-app-text-color-default);--cf-badge-border-color: #fff}div.cf-badge-success{--cf-badge-background: var(--cf-app-system-color-success);--cf-badge-text-color: var(--cf-app-text-color-light);--cf-badge-border-color: var(--cf-app-system-color-success)}div.cf-badge-alert{--cf-badge-background: var(--cf-app-system-color-error);--cf-badge-text-color: var(--cf-app-text-color-light);--cf-badge-border-color: var(--cf-app-system-color-error)}div.cf-badge-accent{--cf-badge-background: var(--cf-app-color-accent);--cf-badge-text-color: var(--cf-app-text-color-light);--cf-badge-border-color: var(--cf-app-color-accent)}div.cf-badge-warning{--cf-badge-background: var(--cf-app-system-color-warning);--cf-badge-text-color: var(--cf-app-text-color-default);--cf-badge-border-color: var(--cf-app-system-color-warning)}div.cf-badge-disabled{--cf-badge-background: var(--cf-app-system-color-disabled);--cf-badge-text-color: var(--cf-app-text-color-grey);--cf-badge-border-color: var(--cf-app-system-color-disabled)}div.cf-badge-feedback-success{--cf-badge-background: var(--cf-app-system-color-light-success);--cf-badge-text-color: var(--cf-app-system-color-success);--cf-badge-border-color: var(--cf-app-system-color-success)}div.cf-badge-feedback-error{--cf-badge-background: var(--cf-app-system-color-light-error);--cf-badge-text-color: var(--cf-app-system-color-error);--cf-badge-border-color: var(--cf-app-system-color-error)}div.cf-badge-feedback-warning,div.cf-badge-feedback-busy{--cf-badge-background: var(--cf-app-system-color-light-warning);--cf-badge-text-color: var(--cf-app-system-color-warning);--cf-badge-border-color: var(--cf-app-system-color-warning)}div.cf-badge-feedback-busy ion-spinner{color:var(--cf-app-system-color-warning);height:1.2rem;width:1.2rem}\n"] }]
|
47
47
|
}], propDecorators: { type: [{
|
@@ -57,10 +57,10 @@ export class ButtonComponent {
|
|
57
57
|
return color;
|
58
58
|
return '';
|
59
59
|
}
|
60
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.
|
61
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.
|
60
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.7", ngImport: i0, type: ButtonComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
61
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.7", type: ButtonComponent, selector: "cf-btn", inputs: { type: "type", disabled: "disabled", alert: "alert", action: "action", snug: "snug", accent: "accent", fontSize: "fontSize", iconStart: "iconStart", iconEnd: "iconEnd", loading: "loading", 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 }\"\n mode=\"md\"\n [disabled]=\"inputDisabled\">\n <cf-icon *ngIf=\"inputIconStart\" [icon]=\"inputIconStart\" style=\"--cf-svg-overwrite-stroke-color: var(--button-text-color)\"></cf-icon>\n <p *cfButtonLoader=\"inputLoading\">\n <ng-content></ng-content>\n </p>\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;min-height: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-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-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)}\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"] }] });
|
62
62
|
}
|
63
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.
|
63
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.7", ngImport: i0, type: ButtonComponent, decorators: [{
|
64
64
|
type: Component,
|
65
65
|
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 }\"\n mode=\"md\"\n [disabled]=\"inputDisabled\">\n <cf-icon *ngIf=\"inputIconStart\" [icon]=\"inputIconStart\" style=\"--cf-svg-overwrite-stroke-color: var(--button-text-color)\"></cf-icon>\n <p *cfButtonLoader=\"inputLoading\">\n <ng-content></ng-content>\n </p>\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;min-height: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-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-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)}\n"] }]
|
66
66
|
}], propDecorators: { type: [{
|
@@ -19,10 +19,10 @@ export class CalendarComponent {
|
|
19
19
|
if (typeof value === 'string')
|
20
20
|
this.value.emit(dayjs(value).format('YYYY-MM-DD' + (this.inputTime ? ' HH:mm' : '')));
|
21
21
|
}
|
22
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.
|
23
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.
|
22
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.7", ngImport: i0, type: CalendarComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
23
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.7", type: CalendarComponent, selector: "cf-calendar", inputs: { displayTime: "displayTime", color: "color", min: "min", max: "max" }, outputs: { value: "value" }, usesOnChanges: true, ngImport: i0, template: "<ion-datetime\n [class]=\"inputColor\"\n mode=\"ios\"\n firstDayOfWeek=\"1\"\n [min]=\"min\"\n [max]=\"max\"\n [presentation]=\"inputTime ? 'date-time' : 'date'\"\n (ionChange)=\"setValue($event.detail.value)\">\n</ion-datetime>\n", styles: ["ion-datetime{--background: var(--cf-app-background-light);color:var(--cf-app-text-color-default)}ion-datetime::part(calendar-day){font-size:1.6rem}ion-datetime::part(month-year-button){font-size:1.8rem;font-weight:900;color:var(--cf-app-text-color-default)}ion-datetime.accent::part(today){border:1px solid var(--cf-app-color-accent);color:var(--cf-app-color-accent)}ion-datetime.accent::part(active){background-color:var(--cf-app-color-accent);color:var(--cf-app-text-color-light)}ion-datetime.success::part(today){border:1px solid var(--cf-app-color-primary);color:var(--cf-app-text-color-default)}ion-datetime.success::part(active){background-color:var(--cf-app-system-color-success);color:var(--cf-app-text-color-light)}\n"], dependencies: [{ kind: "component", type: i1.IonDatetime, selector: "ion-datetime", inputs: ["cancelText", "clearText", "color", "dayValues", "disabled", "doneText", "firstDayOfWeek", "formatOptions", "highlightedDates", "hourCycle", "hourValues", "isDateEnabled", "locale", "max", "min", "minuteValues", "mode", "monthValues", "multiple", "name", "preferWheel", "presentation", "readonly", "showClearButton", "showDefaultButtons", "showDefaultTimeLabel", "showDefaultTitle", "size", "titleSelectedDatesFormatter", "value", "yearValues"] }, { kind: "directive", type: i1.SelectValueAccessor, selector: "ion-select, ion-radio-group, ion-segment, ion-datetime" }] });
|
24
24
|
}
|
25
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.
|
25
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.7", ngImport: i0, type: CalendarComponent, decorators: [{
|
26
26
|
type: Component,
|
27
27
|
args: [{ selector: 'cf-calendar', template: "<ion-datetime\n [class]=\"inputColor\"\n mode=\"ios\"\n firstDayOfWeek=\"1\"\n [min]=\"min\"\n [max]=\"max\"\n [presentation]=\"inputTime ? 'date-time' : 'date'\"\n (ionChange)=\"setValue($event.detail.value)\">\n</ion-datetime>\n", styles: ["ion-datetime{--background: var(--cf-app-background-light);color:var(--cf-app-text-color-default)}ion-datetime::part(calendar-day){font-size:1.6rem}ion-datetime::part(month-year-button){font-size:1.8rem;font-weight:900;color:var(--cf-app-text-color-default)}ion-datetime.accent::part(today){border:1px solid var(--cf-app-color-accent);color:var(--cf-app-color-accent)}ion-datetime.accent::part(active){background-color:var(--cf-app-color-accent);color:var(--cf-app-text-color-light)}ion-datetime.success::part(today){border:1px solid var(--cf-app-color-primary);color:var(--cf-app-text-color-default)}ion-datetime.success::part(active){background-color:var(--cf-app-system-color-success);color:var(--cf-app-text-color-light)}\n"] }]
|
28
28
|
}], propDecorators: { displayTime: [{
|
@@ -1,5 +1,6 @@
|
|
1
1
|
import { Component, Input } from '@angular/core';
|
2
2
|
import { checkTruthAttribute, validateStringValue } from '../../utils/attribute.util';
|
3
|
+
import dayjs from 'dayjs';
|
3
4
|
import * as i0 from "@angular/core";
|
4
5
|
import * as i1 from "@angular/common";
|
5
6
|
import * as i2 from "../spacer/spacer.component";
|
@@ -14,14 +15,15 @@ export class ChatBubbleComponent {
|
|
14
15
|
inputDarkMode = false;
|
15
16
|
ngOnChanges(changes) {
|
16
17
|
this.inputType = validateStringValue(changes, 'type', ['incoming', 'outgoing'], this.inputType) || 'outgoing';
|
17
|
-
|
18
|
+
const date = changes['date']?.currentValue ? dayjs(changes['date'].currentValue) : null;
|
19
|
+
this.inputDate = date && date.isValid() ? date.format('HH:mm') : changes['date']?.currentValue || '';
|
18
20
|
this.inputMessage = changes['message']?.currentValue || '';
|
19
21
|
this.inputDarkMode = checkTruthAttribute(changes, 'darkMode', this.inputDarkMode);
|
20
22
|
}
|
21
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.
|
22
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.
|
23
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.7", ngImport: i0, type: ChatBubbleComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
24
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.7", type: ChatBubbleComponent, selector: "cf-chat-bubble", inputs: { type: "type", date: "date", message: "message", darkMode: "darkMode" }, usesOnChanges: true, ngImport: i0, template: "<div id=\"container\" [ngClass]=\"inputType\">\n <div id=\"message\">\n <p class=\"body-extra-small\" [ngClass]=\"{ light: inputDarkMode }\">{{ inputDate }}</p>\n <cf-spacer default=\"4\"></cf-spacer>\n <div id=\"bubble\">\n <p class=\"body-extra-small\">{{ inputMessage }}</p>\n </div>\n </div>\n</div>\n", styles: ["#container{display:flex}#container #message p{color:var(--cf-app-text-color-default)}#container #message p.light{color:var(--cf-app-text-color-light)}#container #message #bubble{background:var(--message-background-color);border-radius:var(--border-radius);padding:12px 16px}#container #message #bubble p{color:var(--cf-app-text-color-light)}#container.outgoing{justify-content:end;text-align:end;--border-radius: 16px 4px 16px 16px;--message-background-color: var(--cf-app-color-primary)}#container.incoming{justify-content:start;text-align:start;--border-radius: 4px 16px 16px 16px;--message-background-color: var(--cf-app-color-secondary)}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: i2.SpacerComponent, selector: "cf-spacer", inputs: ["default", "mobile", "desktop"] }] });
|
23
25
|
}
|
24
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.
|
26
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.7", ngImport: i0, type: ChatBubbleComponent, decorators: [{
|
25
27
|
type: Component,
|
26
28
|
args: [{ selector: 'cf-chat-bubble', template: "<div id=\"container\" [ngClass]=\"inputType\">\n <div id=\"message\">\n <p class=\"body-extra-small\" [ngClass]=\"{ light: inputDarkMode }\">{{ inputDate }}</p>\n <cf-spacer default=\"4\"></cf-spacer>\n <div id=\"bubble\">\n <p class=\"body-extra-small\">{{ inputMessage }}</p>\n </div>\n </div>\n</div>\n", styles: ["#container{display:flex}#container #message p{color:var(--cf-app-text-color-default)}#container #message p.light{color:var(--cf-app-text-color-light)}#container #message #bubble{background:var(--message-background-color);border-radius:var(--border-radius);padding:12px 16px}#container #message #bubble p{color:var(--cf-app-text-color-light)}#container.outgoing{justify-content:end;text-align:end;--border-radius: 16px 4px 16px 16px;--message-background-color: var(--cf-app-color-primary)}#container.incoming{justify-content:start;text-align:start;--border-radius: 4px 16px 16px 16px;--message-background-color: var(--cf-app-color-secondary)}\n"] }]
|
27
29
|
}], propDecorators: { type: [{
|
@@ -33,4 +35,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.3", ngImpor
|
|
33
35
|
}], darkMode: [{
|
34
36
|
type: Input
|
35
37
|
}] } });
|
36
|
-
//# sourceMappingURL=data:application/json;base64,
|
38
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hhdC1idWJibGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2FyZWZpcnN0L2xpYnJhcnkvc3JjL2xpYi9jb21wb25lbnRzL2NoYXQtYnViYmxlL2NoYXQtYnViYmxlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NhcmVmaXJzdC9saWJyYXJ5L3NyYy9saWIvY29tcG9uZW50cy9jaGF0LWJ1YmJsZS9jaGF0LWJ1YmJsZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFVQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBc0MsTUFBTSxlQUFlLENBQUM7QUFFckYsT0FBTyxFQUFFLG1CQUFtQixFQUFFLG1CQUFtQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDdEYsT0FBTyxLQUFLLE1BQU0sT0FBTyxDQUFDOzs7O0FBTzFCLE1BQU0sT0FBTyxtQkFBbUI7SUFDckIsSUFBSSxHQUE0QixVQUFVLENBQUM7SUFDM0MsSUFBSSxHQUFXLEVBQUUsQ0FBQztJQUNsQixPQUFPLEdBQVcsRUFBRSxDQUFDO0lBQ3JCLFFBQVEsQ0FBZ0M7SUFHakQsU0FBUyxHQUFxQixVQUFVLENBQUM7SUFDekMsU0FBUyxHQUFxQixFQUFFLENBQUM7SUFDakMsWUFBWSxHQUF3QixFQUFFLENBQUM7SUFDdkMsYUFBYSxHQUFHLEtBQUssQ0FBQztJQU90QixXQUFXLENBQUMsT0FBc0I7UUFFaEMsSUFBSSxDQUFDLFNBQVMsR0FBRyxtQkFBbUIsQ0FBbUIsT0FBTyxFQUFFLE1BQU0sRUFBRSxDQUFDLFVBQVUsRUFBRSxVQUFVLENBQUMsRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksVUFBVSxDQUFDO1FBRWhJLE1BQU0sSUFBSSxHQUFHLE9BQU8sQ0FBQyxNQUFNLENBQUMsRUFBRSxZQUFZLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztRQUN4RixJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksSUFBSSxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsRUFBRSxZQUFZLElBQUksRUFBRSxDQUFDO1FBRXJHLElBQUksQ0FBQyxZQUFZLEdBQUcsT0FBTyxDQUFDLFNBQVMsQ0FBQyxFQUFFLFlBQVksSUFBSSxFQUFFLENBQUM7UUFFM0QsSUFBSSxDQUFDLGFBQWEsR0FBRyxtQkFBbUIsQ0FBQyxPQUFPLEVBQUUsVUFBVSxFQUFFLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQztJQUNwRixDQUFDO3VHQTNCVSxtQkFBbUI7MkZBQW5CLG1CQUFtQiw2SkNwQmhDLHNVQVNBOzsyRkRXYSxtQkFBbUI7a0JBTC9CLFNBQVM7K0JBQ0UsZ0JBQWdCOzhCQUtqQixJQUFJO3NCQUFaLEtBQUs7Z0JBQ0csSUFBSTtzQkFBWixLQUFLO2dCQUNHLE9BQU87c0JBQWYsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBDYXJlRmlyc3QgQ2hhdCBCdWJibGVcbiAqXG4gKiBAZmlsZSAgICAgICAgICBjaGF0LWJ1YmJsZS5jb21wb25lbnRcbiAqIEBkZXNjcmlwdGlvbiAgIENvbnRhaW5zIGFsbCB0aGUgbG9naWMgZm9yIGdlbmVyYXRpbmcgYSBDYXJlRmlyc3QgQ2hhdCBCdWJibGVcbiAqIEBhdXRob3IgICAgICAgIEphY3F1ZXMgQ29ldHplZVxuICogQHNpbmNlICAgICAgICAgMjAyNCAtIDAyIC0gMjJcbiAqIEB1c2FnZSAgICAgICAgIDxjZi1jaGF0LWJ1YmJsZSB0eXBlPVwib3V0Z29pbmcgfCBpbmNvbWluZ1wiIGRhdGU9XCJzdHJpbmdcIiBtZXNzYWdlPVwic3RyaW5nXCIgJWRhcmtNb2RlJT48L2NmLWNoYXQtYnViYmxlPlxuICovXG5cbmltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIHR5cGUgT25DaGFuZ2VzLCB0eXBlIFNpbXBsZUNoYW5nZXMgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbi8vLS0tIFV0aWxzXG5pbXBvcnQgeyBjaGVja1RydXRoQXR0cmlidXRlLCB2YWxpZGF0ZVN0cmluZ1ZhbHVlIH0gZnJvbSAnLi4vLi4vdXRpbHMvYXR0cmlidXRlLnV0aWwnO1xuaW1wb3J0IGRheWpzIGZyb20gJ2RheWpzJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnY2YtY2hhdC1idWJibGUnLFxuICB0ZW1wbGF0ZVVybDogJy4vY2hhdC1idWJibGUuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybDogJy4vY2hhdC1idWJibGUuY29tcG9uZW50LnNjc3MnLFxufSlcbmV4cG9ydCBjbGFzcyBDaGF0QnViYmxlQ29tcG9uZW50IGltcGxlbWVudHMgT25DaGFuZ2VzIHtcbiAgQElucHV0KCkgdHlwZTogJ291dGdvaW5nJyB8ICdpbmNvbWluZycgPSAnb3V0Z29pbmcnO1xuICBASW5wdXQoKSBkYXRlOiBzdHJpbmcgPSAnJztcbiAgQElucHV0KCkgbWVzc2FnZTogc3RyaW5nID0gJyc7XG4gIEBJbnB1dCgpIGRhcmtNb2RlPzogc3RyaW5nIHwgYm9vbGVhbiB8IHVuZGVmaW5lZDtcblxuICAvLy0tLSBMb2NhbCB2YXJpYWJsZXNcbiAgaW5wdXRUeXBlOiB0eXBlb2YgdGhpcy50eXBlID0gJ2luY29taW5nJztcbiAgaW5wdXREYXRlOiB0eXBlb2YgdGhpcy5kYXRlID0gJyc7XG4gIGlucHV0TWVzc2FnZTogdHlwZW9mIHRoaXMubWVzc2FnZSA9ICcnO1xuICBpbnB1dERhcmtNb2RlID0gZmFsc2U7XG5cbiAgLyoqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgKiBAbmFtZSAgICAgICAgICBuZ09uQ2hhbmdlc1xuICAgKiBAZGVzY3JpcHRpb24gICBVcGRhdGUgdmFyaW91cyB2YWx1ZXMgb24gaW5wdXQgY2hhbmdlc1xuICAgKiBAcmV0dXJucyAgICAgICB7dm9pZH1cbiAgICovXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICAvLy0tLSBUeXBlXG4gICAgdGhpcy5pbnB1dFR5cGUgPSB2YWxpZGF0ZVN0cmluZ1ZhbHVlPHR5cGVvZiB0aGlzLnR5cGU+KGNoYW5nZXMsICd0eXBlJywgWydpbmNvbWluZycsICdvdXRnb2luZyddLCB0aGlzLmlucHV0VHlwZSkgfHwgJ291dGdvaW5nJztcbiAgICAvLy0tLSBEYXRlXG4gICAgY29uc3QgZGF0ZSA9IGNoYW5nZXNbJ2RhdGUnXT8uY3VycmVudFZhbHVlID8gZGF5anMoY2hhbmdlc1snZGF0ZSddLmN1cnJlbnRWYWx1ZSkgOiBudWxsO1xuICAgIHRoaXMuaW5wdXREYXRlID0gZGF0ZSAmJiBkYXRlLmlzVmFsaWQoKSA/IGRhdGUuZm9ybWF0KCdISDptbScpIDogY2hhbmdlc1snZGF0ZSddPy5jdXJyZW50VmFsdWUgfHwgJyc7XG4gICAgLy8tLS0gTWVzc2FnZVxuICAgIHRoaXMuaW5wdXRNZXNzYWdlID0gY2hhbmdlc1snbWVzc2FnZSddPy5jdXJyZW50VmFsdWUgfHwgJyc7XG4gICAgLy8tLS0gRGFyayBNb2RlXG4gICAgdGhpcy5pbnB1dERhcmtNb2RlID0gY2hlY2tUcnV0aEF0dHJpYnV0ZShjaGFuZ2VzLCAnZGFya01vZGUnLCB0aGlzLmlucHV0RGFya01vZGUpO1xuICB9XG59XG4iLCI8ZGl2IGlkPVwiY29udGFpbmVyXCIgW25nQ2xhc3NdPVwiaW5wdXRUeXBlXCI+XG4gIDxkaXYgaWQ9XCJtZXNzYWdlXCI+XG4gICAgPHAgY2xhc3M9XCJib2R5LWV4dHJhLXNtYWxsXCIgW25nQ2xhc3NdPVwieyBsaWdodDogaW5wdXREYXJrTW9kZSB9XCI+e3sgaW5wdXREYXRlIH19PC9wPlxuICAgIDxjZi1zcGFjZXIgZGVmYXVsdD1cIjRcIj48L2NmLXNwYWNlcj5cbiAgICA8ZGl2IGlkPVwiYnViYmxlXCI+XG4gICAgICA8cCBjbGFzcz1cImJvZHktZXh0cmEtc21hbGxcIj57eyBpbnB1dE1lc3NhZ2UgfX08L3A+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuPC9kaXY+XG4iXX0=
|
@@ -63,10 +63,10 @@ export class FormInputComponent {
|
|
63
63
|
this.showPassword = !this.showPassword;
|
64
64
|
this.inputType = this.inputType === 'password' ? 'text' : 'password';
|
65
65
|
}
|
66
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.
|
67
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.
|
66
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.7", ngImport: i0, type: FormInputComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
67
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.7", 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: ["accept", "autocapitalize", "autocomplete", "autocorrect", "autofocus", "clearInput", "clearOnEdit", "color", "counter", "counterFormatter", "debounce", "disabled", "enterkeyhint", "errorText", "fill", "helperText", "inputmode", "label", "labelPlacement", "legacy", "max", "maxlength", "min", "minlength", "mode", "multiple", "name", "pattern", "placeholder", "readonly", "required", "shape", "size", "spellcheck", "step", "type", "value"] }, { kind: "directive", type: i1.TextValueAccessor, selector: "ion-input:not([type=number]),ion-textarea,ion-searchbar,ion-range" }, { 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
68
|
}
|
69
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.
|
69
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.7", ngImport: i0, type: FormInputComponent, decorators: [{
|
70
70
|
type: Component,
|
71
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
72
|
}], propDecorators: { label: [{
|
@@ -22,10 +22,10 @@ export class FormInputSelectComponent {
|
|
22
22
|
this.inputLabelPlacement =
|
23
23
|
validateStringValue(changes, 'labelPlacement', inputSelectC.labelPlacement.slice(), this.inputLabelPlacement) || 'floating';
|
24
24
|
}
|
25
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.
|
26
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.
|
25
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.7", ngImport: i0, type: FormInputSelectComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
26
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.7", 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", "legacy", "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
27
|
}
|
28
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.
|
28
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.7", ngImport: i0, type: FormInputSelectComponent, decorators: [{
|
29
29
|
type: Component,
|
30
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
31
|
}], propDecorators: { label: [{
|
@@ -31,10 +31,10 @@ export class FormInputTextAreaComponent {
|
|
31
31
|
this.inputAutoCapitalize =
|
32
32
|
validateStringValue(changes, 'autoCapitalize', inputTextAreaC.autoCapitalize.slice(), this.inputAutoCapitalize) || 'none';
|
33
33
|
}
|
34
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.
|
35
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.
|
34
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.7", ngImport: i0, type: FormInputTextAreaComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
35
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.7", 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", "legacy", "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,ion-range" }, { 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
36
|
}
|
37
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.
|
37
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.7", ngImport: i0, type: FormInputTextAreaComponent, decorators: [{
|
38
38
|
type: Component,
|
39
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
40
|
}], propDecorators: { label: [{
|
@@ -8,10 +8,10 @@ export class FormValidationComponent {
|
|
8
8
|
this.control = changes['control'].currentValue;
|
9
9
|
}
|
10
10
|
}
|
11
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.
|
12
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.
|
11
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.7", ngImport: i0, type: FormValidationComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
12
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.7", type: FormValidationComponent, selector: "cf-form-validation", inputs: { control: "control" }, usesOnChanges: true, ngImport: i0, template: "<div *ngIf=\"control?.dirty && control?.errors\" class=\"form-valid-feedback\">\n <div *ngFor=\"let error of this.control?.errors | keyvalue\">\n <p class=\"body-medium\" *ngIf=\"error.key === 'email'\">*Invalid email format</p>\n <p class=\"body-medium\" *ngIf=\"error.key === 'minlength'\">*Length required: {{ error.value.requiredLength - error.value.actualLength }}</p>\n <p class=\"body-medium\" *ngIf=\"error.key === 'maxlength'\">*Max Length: {{ error.value.requiredLength }}</p>\n <p class=\"body-medium\" *ngIf=\"error.key === 'errorMessage'\">*{{ error.value }}</p>\n </div>\n</div>\n", styles: [".form-valid-feedback{padding:4px 0 0 10px}.form-valid-feedback p{font-size:1.2rem;text-align:left;color:var(--cf-app-system-color-error)}\n"], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i1.KeyValuePipe, name: "keyvalue" }] });
|
13
13
|
}
|
14
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.
|
14
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.7", ngImport: i0, type: FormValidationComponent, decorators: [{
|
15
15
|
type: Component,
|
16
16
|
args: [{ selector: 'cf-form-validation', template: "<div *ngIf=\"control?.dirty && control?.errors\" class=\"form-valid-feedback\">\n <div *ngFor=\"let error of this.control?.errors | keyvalue\">\n <p class=\"body-medium\" *ngIf=\"error.key === 'email'\">*Invalid email format</p>\n <p class=\"body-medium\" *ngIf=\"error.key === 'minlength'\">*Length required: {{ error.value.requiredLength - error.value.actualLength }}</p>\n <p class=\"body-medium\" *ngIf=\"error.key === 'maxlength'\">*Max Length: {{ error.value.requiredLength }}</p>\n <p class=\"body-medium\" *ngIf=\"error.key === 'errorMessage'\">*{{ error.value }}</p>\n </div>\n</div>\n", styles: [".form-valid-feedback{padding:4px 0 0 10px}.form-valid-feedback p{font-size:1.2rem;text-align:left;color:var(--cf-app-system-color-error)}\n"] }]
|
17
17
|
}], propDecorators: { control: [{
|