@carefirst/library 1.3.10 → 1.3.11

Sign up to get free protection for your applications and to get access to all the features.
Files changed (130) hide show
  1. package/esm2022/carefirst-library.mjs +2 -0
  2. package/esm2022/lib/components/alert/alert.component.mjs +56 -0
  3. package/esm2022/lib/components/badge/badge.component.mjs +39 -0
  4. package/esm2022/lib/components/button/button.component.mjs +87 -0
  5. package/esm2022/lib/components/calendar/calendar.component.mjs +39 -0
  6. package/esm2022/lib/components/chat-bubble/chat-bubble.component.mjs +31 -0
  7. package/esm2022/lib/components/form-input/form-input.component.mjs +87 -0
  8. package/esm2022/lib/components/form-input-select/form-input-select.component.mjs +46 -0
  9. package/esm2022/lib/components/form-input-text-area/form-input-text-area.component.mjs +61 -0
  10. package/esm2022/lib/components/form-validation/form-validation.component.mjs +20 -0
  11. package/esm2022/lib/components/icon/icon.component.mjs +29 -0
  12. package/esm2022/lib/components/logo/logo.component.mjs +18 -0
  13. package/esm2022/lib/components/notification/notification.component.mjs +22 -0
  14. package/esm2022/lib/components/page/page.component.mjs +31 -0
  15. package/esm2022/lib/components/spacer/spacer.component.mjs +30 -0
  16. package/esm2022/lib/components/spinner/spinner.component.mjs +19 -0
  17. package/esm2022/lib/directives/button-loader.directive.mjs +41 -0
  18. package/esm2022/lib/interfaces/alert.interface.mjs +2 -0
  19. package/esm2022/lib/interfaces/icon.interface.mjs +52 -0
  20. package/esm2022/lib/interfaces/input.interface.mjs +2 -0
  21. package/esm2022/lib/interfaces/notification.interface.mjs +2 -0
  22. package/esm2022/lib/interfaces/spacer.interface.mjs +2 -0
  23. package/esm2022/lib/library.module.mjs +100 -0
  24. package/esm2022/lib/utils/attribute.util.mjs +34 -0
  25. package/esm2022/lib/utils/form-validators-utility.mjs +113 -0
  26. package/esm2022/public-api.mjs +24 -0
  27. package/fesm2022/carefirst-library.mjs +885 -0
  28. package/fesm2022/carefirst-library.mjs.map +1 -0
  29. package/index.d.ts +2 -0
  30. package/lib/components/alert/alert.component.d.ts +14 -0
  31. package/lib/components/badge/badge.component.d.ts +15 -0
  32. package/lib/components/button/button.component.d.ts +30 -0
  33. package/lib/components/calendar/calendar.component.d.ts +15 -0
  34. package/lib/components/chat-bubble/chat-bubble.component.d.ts +13 -0
  35. package/lib/components/form-input/form-input.component.d.ts +37 -0
  36. package/lib/components/form-input-select/form-input-select.component.d.ts +21 -0
  37. package/lib/components/form-input-text-area/form-input-text-area.component.d.ts +27 -0
  38. package/lib/components/form-validation/form-validation.component.d.ts +9 -0
  39. package/lib/components/icon/icon.component.d.ts +13 -0
  40. package/lib/components/logo/logo.component.d.ts +7 -0
  41. package/lib/components/notification/notification.component.d.ts +9 -0
  42. package/lib/components/page/page.component.d.ts +13 -0
  43. package/lib/components/spacer/spacer.component.d.ts +14 -0
  44. package/lib/components/spinner/spinner.component.d.ts +9 -0
  45. package/lib/directives/button-loader.directive.d.ts +12 -0
  46. package/lib/interfaces/alert.interface.d.ts +11 -0
  47. package/lib/interfaces/icon.interface.d.ts +4 -0
  48. package/lib/interfaces/input.interface.d.ts +4 -0
  49. package/lib/interfaces/notification.interface.d.ts +11 -0
  50. package/lib/interfaces/spacer.interface.d.ts +3 -0
  51. package/lib/library.module.d.ts +25 -0
  52. package/lib/utils/attribute.util.d.ts +4 -0
  53. package/lib/utils/form-validators-utility.d.ts +8 -0
  54. package/package.json +14 -11
  55. package/{src/public-api.ts → public-api.d.ts} +0 -18
  56. package/.eslintrc.json +0 -31
  57. package/ng-package.json +0 -8
  58. package/src/lib/components/alert/alert.component.html +0 -0
  59. package/src/lib/components/alert/alert.component.scss +0 -63
  60. package/src/lib/components/alert/alert.component.spec.ts +0 -23
  61. package/src/lib/components/alert/alert.component.ts +0 -73
  62. package/src/lib/components/badge/badge.component.html +0 -5
  63. package/src/lib/components/badge/badge.component.scss +0 -96
  64. package/src/lib/components/badge/badge.component.spec.ts +0 -23
  65. package/src/lib/components/badge/badge.component.ts +0 -61
  66. package/src/lib/components/button/button.component.html +0 -20
  67. package/src/lib/components/button/button.component.scss +0 -153
  68. package/src/lib/components/button/button.component.spec.ts +0 -21
  69. package/src/lib/components/button/button.component.ts +0 -94
  70. package/src/lib/components/calendar/calendar.component.html +0 -9
  71. package/src/lib/components/calendar/calendar.component.scss +0 -34
  72. package/src/lib/components/calendar/calendar.component.spec.ts +0 -23
  73. package/src/lib/components/calendar/calendar.component.ts +0 -53
  74. package/src/lib/components/chat-bubble/chat-bubble.component.html +0 -9
  75. package/src/lib/components/chat-bubble/chat-bubble.component.scss +0 -31
  76. package/src/lib/components/chat-bubble/chat-bubble.component.spec.ts +0 -23
  77. package/src/lib/components/chat-bubble/chat-bubble.component.ts +0 -43
  78. package/src/lib/components/form-input/form-input.component.html +0 -37
  79. package/src/lib/components/form-input/form-input.component.scss +0 -23
  80. package/src/lib/components/form-input/form-input.component.spec.ts +0 -23
  81. package/src/lib/components/form-input/form-input.component.ts +0 -95
  82. package/src/lib/components/form-input-select/form-input-select.component.html +0 -27
  83. package/src/lib/components/form-input-select/form-input-select.component.scss +0 -40
  84. package/src/lib/components/form-input-select/form-input-select.component.spec.ts +0 -23
  85. package/src/lib/components/form-input-select/form-input-select.component.ts +0 -61
  86. package/src/lib/components/form-input-text-area/form-input-text-area.component.html +0 -29
  87. package/src/lib/components/form-input-text-area/form-input-text-area.component.scss +0 -19
  88. package/src/lib/components/form-input-text-area/form-input-text-area.component.spec.ts +0 -23
  89. package/src/lib/components/form-input-text-area/form-input-text-area.component.ts +0 -76
  90. package/src/lib/components/form-validation/form-validation.component.html +0 -8
  91. package/src/lib/components/form-validation/form-validation.component.scss +0 -8
  92. package/src/lib/components/form-validation/form-validation.component.spec.ts +0 -23
  93. package/src/lib/components/form-validation/form-validation.component.ts +0 -34
  94. package/src/lib/components/icon/icon.component.html +0 -529
  95. package/src/lib/components/icon/icon.component.scss +0 -61
  96. package/src/lib/components/icon/icon.component.spec.ts +0 -21
  97. package/src/lib/components/icon/icon.component.ts +0 -40
  98. package/src/lib/components/logo/logo.component.html +0 -10
  99. package/src/lib/components/logo/logo.component.scss +0 -5
  100. package/src/lib/components/logo/logo.component.spec.ts +0 -23
  101. package/src/lib/components/logo/logo.component.ts +0 -21
  102. package/src/lib/components/notification/notification.component.html +0 -39
  103. package/src/lib/components/notification/notification.component.scss +0 -20
  104. package/src/lib/components/notification/notification.component.spec.ts +0 -21
  105. package/src/lib/components/notification/notification.component.ts +0 -23
  106. package/src/lib/components/page/page.component.html +0 -5
  107. package/src/lib/components/page/page.component.scss +0 -35
  108. package/src/lib/components/page/page.component.spec.ts +0 -21
  109. package/src/lib/components/page/page.component.ts +0 -42
  110. package/src/lib/components/spacer/spacer.component.html +0 -4
  111. package/src/lib/components/spacer/spacer.component.scss +0 -27
  112. package/src/lib/components/spacer/spacer.component.spec.ts +0 -21
  113. package/src/lib/components/spacer/spacer.component.ts +0 -43
  114. package/src/lib/components/spinner/spinner.component.html +0 -1
  115. package/src/lib/components/spinner/spinner.component.scss +0 -14
  116. package/src/lib/components/spinner/spinner.component.spec.ts +0 -23
  117. package/src/lib/components/spinner/spinner.component.ts +0 -33
  118. package/src/lib/directives/button-loader.directive.spec.ts +0 -8
  119. package/src/lib/directives/button-loader.directive.ts +0 -77
  120. package/src/lib/interfaces/alert.interface.ts +0 -20
  121. package/src/lib/interfaces/icon.interface.ts +0 -62
  122. package/src/lib/interfaces/input.interface.ts +0 -8
  123. package/src/lib/interfaces/notification.interface.ts +0 -15
  124. package/src/lib/interfaces/spacer.interface.ts +0 -6
  125. package/src/lib/library.module.ts +0 -66
  126. package/src/lib/utils/attribute.util.ts +0 -66
  127. package/src/lib/utils/form-validators-utility.ts +0 -186
  128. package/tsconfig.lib.json +0 -12
  129. package/tsconfig.lib.prod.json +0 -10
  130. package/tsconfig.spec.json +0 -14
@@ -0,0 +1,61 @@
1
+ import { Component, EventEmitter, Input, Output } from '@angular/core';
2
+ import { validateStringValue, checkTruthAttribute } from '../../utils/attribute.util';
3
+ import * as i0 from "@angular/core";
4
+ import * as i1 from "@ionic/angular";
5
+ import * as i2 from "@angular/common";
6
+ import * as i3 from "@angular/forms";
7
+ import * as i4 from "../form-validation/form-validation.component";
8
+ const inputTextAreaC = {
9
+ labelPlacement: ['fixed', 'floating', 'stacked', 'start', 'end'],
10
+ autoCapitalize: ['off', 'none', 'on', 'sentences', 'words', 'characters'],
11
+ };
12
+ export class FormInputTextAreaComponent {
13
+ label;
14
+ labelPlacement;
15
+ placeholder;
16
+ autoCapitalize;
17
+ control;
18
+ textCenter;
19
+ minHeight = 'none';
20
+ maxHeight = 'none';
21
+ value;
22
+ valueChange = new EventEmitter();
23
+ inputLabelPlacement;
24
+ inputClear = true;
25
+ inputTextCenter = false;
26
+ inputAutoCapitalize;
27
+ ngOnChanges(changes) {
28
+ this.inputLabelPlacement =
29
+ validateStringValue(changes, 'labelPlacement', inputTextAreaC.labelPlacement.slice(), this.inputLabelPlacement) || 'floating';
30
+ this.inputTextCenter = checkTruthAttribute(changes, 'textCenter', this.inputTextCenter);
31
+ this.inputAutoCapitalize =
32
+ validateStringValue(changes, 'autoCapitalize', inputTextAreaC.autoCapitalize.slice(), this.inputAutoCapitalize) || 'none';
33
+ }
34
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.9", ngImport: i0, type: FormInputTextAreaComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
35
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.9", 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
+ }
37
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.9", ngImport: i0, type: FormInputTextAreaComponent, decorators: [{
38
+ 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
+ }], propDecorators: { label: [{
41
+ type: Input
42
+ }], labelPlacement: [{
43
+ type: Input
44
+ }], placeholder: [{
45
+ type: Input
46
+ }], autoCapitalize: [{
47
+ type: Input
48
+ }], control: [{
49
+ type: Input
50
+ }], textCenter: [{
51
+ type: Input
52
+ }], minHeight: [{
53
+ type: Input
54
+ }], maxHeight: [{
55
+ type: Input
56
+ }], value: [{
57
+ type: Input
58
+ }], valueChange: [{
59
+ type: Output
60
+ }] } });
61
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1pbnB1dC10ZXh0LWFyZWEuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2FyZWZpcnN0L2xpYnJhcnkvc3JjL2xpYi9jb21wb25lbnRzL2Zvcm0taW5wdXQtdGV4dC1hcmVhL2Zvcm0taW5wdXQtdGV4dC1hcmVhLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NhcmVmaXJzdC9saWJyYXJ5L3NyYy9saWIvY29tcG9uZW50cy9mb3JtLWlucHV0LXRleHQtYXJlYS9mb3JtLWlucHV0LXRleHQtYXJlYS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFXQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFzQyxNQUFNLGVBQWUsQ0FBQztBQUczRyxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQzs7Ozs7O0FBTXRGLE1BQU0sY0FBYyxHQUFHO0lBQ3JCLGNBQWMsRUFBRSxDQUFDLE9BQU8sRUFBRSxVQUFVLEVBQUUsU0FBUyxFQUFFLE9BQU8sRUFBRSxLQUFLLENBQUM7SUFDaEUsY0FBYyxFQUFFLENBQUMsS0FBSyxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUsV0FBVyxFQUFFLE9BQU8sRUFBRSxZQUFZLENBQUM7Q0FDakUsQ0FBQztBQU9YLE1BQU0sT0FBTywwQkFBMEI7SUFDNUIsS0FBSyxDQUFVO0lBQ2YsY0FBYyxDQUFrRDtJQUNoRSxXQUFXLENBQXNCO0lBQ2pDLGNBQWMsQ0FBa0Q7SUFDaEUsT0FBTyxDQUFzQjtJQUM3QixVQUFVLENBQWdDO0lBQzFDLFNBQVMsR0FBcUIsTUFBTSxDQUFDO0lBQ3JDLFNBQVMsR0FBcUIsTUFBTSxDQUFDO0lBR3JDLEtBQUssQ0FBcUI7SUFDekIsV0FBVyxHQUFHLElBQUksWUFBWSxFQUFxQixDQUFDO0lBRzlELG1CQUFtQixDQUE2QjtJQUNoRCxVQUFVLEdBQUcsSUFBSSxDQUFDO0lBQ2xCLGVBQWUsR0FBRyxLQUFLLENBQUM7SUFDeEIsbUJBQW1CLENBQTZCO0lBT2hELFdBQVcsQ0FBQyxPQUFzQjtRQUVoQyxJQUFJLENBQUMsbUJBQW1CO1lBQ3RCLG1CQUFtQixDQUNqQixPQUFPLEVBQ1AsZ0JBQWdCLEVBQ2hCLGNBQWMsQ0FBQyxjQUFjLENBQUMsS0FBSyxFQUFFLEVBQ3JDLElBQUksQ0FBQyxtQkFBbUIsQ0FDekIsSUFBSSxVQUFVLENBQUM7UUFFbEIsSUFBSSxDQUFDLGVBQWUsR0FBRyxtQkFBbUIsQ0FBQyxPQUFPLEVBQUUsWUFBWSxFQUFFLElBQUksQ0FBQyxlQUFlLENBQUMsQ0FBQztRQUV4RixJQUFJLENBQUMsbUJBQW1CO1lBQ3RCLG1CQUFtQixDQUNqQixPQUFPLEVBQ1AsZ0JBQWdCLEVBQ2hCLGNBQWMsQ0FBQyxjQUFjLENBQUMsS0FBSyxFQUFFLEVBQ3JDLElBQUksQ0FBQyxtQkFBbUIsQ0FDekIsSUFBSSxNQUFNLENBQUM7SUFDaEIsQ0FBQzt1R0E1Q1UsMEJBQTBCOzJGQUExQiwwQkFBMEIsdVdDOUJ2QyxtaUNBNkJBOzsyRkRDYSwwQkFBMEI7a0JBTHRDLFNBQVM7K0JBQ0UseUJBQXlCOzhCQUsxQixLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csY0FBYztzQkFBdEIsS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLO2dCQUNHLGNBQWM7c0JBQXRCLEtBQUs7Z0JBQ0csT0FBTztzQkFBZixLQUFLO2dCQUNHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSztnQkFDRyxTQUFTO3NCQUFqQixLQUFLO2dCQUdHLEtBQUs7c0JBQWIsS0FBSztnQkFDSSxXQUFXO3NCQUFwQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBDYXJlZmlyc3QgTGlicmFyeSBGb3JtIElucHV0IFRleHQgQXJlYVxuICpcbiAqIEBmaWxlICAgICAgICAgIGZvcm0taW5wdXQtdGV4dC1hcmVhLmNvbXBvbmVudFxuICogQGRlc2NyaXB0aW9uICAgQ29udGFpbnMgYWxsIHRoZSBsb2dpYyBmb3IgZ2VuZXJhdGluZyBhIENhcmVGaXJzdCBGb3JtIElucHV0IFRleHQgQXJlYVxuICogQGF1dGhvciAgICAgICAgQXJubyBKYW5zZW4gdmFuIFZ1dXJlblxuICogQHNpbmNlICAgICAgICAgMjAyMyAtIDEyIC0gMThcbiAqIEB1c2FnZSAgICAgICAgIDxjZi1mb3JtLWlucHV0LXRleHQtYXJlYSBsYWJlbD1cIkxhYmVsIE5hbWVcIiAlbGFiZWxQbGFjZW1lbnQlICV0ZXh0Q2VudGVyJSAlYXV0b0NhcGl0YWxpemUlICUodmFsdWVDaGFuZ2UpPVwiY3VycmVudFZhbHVlXCIlICVbKHZhbHVlKV09XCJ0d29XYXlDb21zXCIlICVbY29udHJvbF0lPVwiZm9ybU5hbWUuY29udHJvbHMuY29udHJvbE5hbWVcIj48L2NmLWZvcm0taW5wdXQtdGV4dC1hcmVhPlxuICogICAgICAgICAgICAgICAgZGlzYWJsZSBpbnB1dCBieSBkaXNhYmxpbmcgdGhlIGZvcm0gY29udHJvbFxuICovXG5cbmltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT3V0cHV0LCB0eXBlIE9uQ2hhbmdlcywgdHlwZSBTaW1wbGVDaGFuZ2VzIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgdHlwZSB7IEZvcm1Db250cm9sIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuLy8tLS0gVXRpbHNcbmltcG9ydCB7IHZhbGlkYXRlU3RyaW5nVmFsdWUsIGNoZWNrVHJ1dGhBdHRyaWJ1dGUgfSBmcm9tICcuLi8uLi91dGlscy9hdHRyaWJ1dGUudXRpbCc7XG5cbi8qKj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAqIEBpbnRlcmZhY2UgICAgIGlucHV0VGV4dEFyZWFDXG4gKiBAZGVzY3JpcHRpb24gICBEZWZpbmUgYXZhaWxhYmxlIGlucHV0IHZhbHVlc1xuICovXG5jb25zdCBpbnB1dFRleHRBcmVhQyA9IHtcbiAgbGFiZWxQbGFjZW1lbnQ6IFsnZml4ZWQnLCAnZmxvYXRpbmcnLCAnc3RhY2tlZCcsICdzdGFydCcsICdlbmQnXSxcbiAgYXV0b0NhcGl0YWxpemU6IFsnb2ZmJywgJ25vbmUnLCAnb24nLCAnc2VudGVuY2VzJywgJ3dvcmRzJywgJ2NoYXJhY3RlcnMnXSxcbn0gYXMgY29uc3Q7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2NmLWZvcm0taW5wdXQtdGV4dC1hcmVhJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2Zvcm0taW5wdXQtdGV4dC1hcmVhLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmw6ICcuL2Zvcm0taW5wdXQtdGV4dC1hcmVhLmNvbXBvbmVudC5zY3NzJyxcbn0pXG5leHBvcnQgY2xhc3MgRm9ybUlucHV0VGV4dEFyZWFDb21wb25lbnQgaW1wbGVtZW50cyBPbkNoYW5nZXMge1xuICBASW5wdXQoKSBsYWJlbCE6IHN0cmluZztcbiAgQElucHV0KCkgbGFiZWxQbGFjZW1lbnQ/OiAodHlwZW9mIGlucHV0VGV4dEFyZWFDLmxhYmVsUGxhY2VtZW50KVtudW1iZXJdO1xuICBASW5wdXQoKSBwbGFjZWhvbGRlcj86IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgQElucHV0KCkgYXV0b0NhcGl0YWxpemU/OiAodHlwZW9mIGlucHV0VGV4dEFyZWFDLmF1dG9DYXBpdGFsaXplKVtudW1iZXJdO1xuICBASW5wdXQoKSBjb250cm9sPzogRm9ybUNvbnRyb2wgfCBudWxsO1xuICBASW5wdXQoKSB0ZXh0Q2VudGVyPzogYm9vbGVhbiB8IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgQElucHV0KCkgbWluSGVpZ2h0Pzogc3RyaW5nIHwgJ25vbmUnID0gJ25vbmUnO1xuICBASW5wdXQoKSBtYXhIZWlnaHQ/OiBzdHJpbmcgfCAnbm9uZScgPSAnbm9uZSc7XG5cbiAgLy8tLS0gbmdNb2RlbFxuICBASW5wdXQoKSB2YWx1ZTogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICBAT3V0cHV0KCkgdmFsdWVDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPHR5cGVvZiB0aGlzLnZhbHVlPigpO1xuXG4gIC8vLS0tIExvY2FsIHZhcmlhYmxlc1xuICBpbnB1dExhYmVsUGxhY2VtZW50OiB0eXBlb2YgdGhpcy5sYWJlbFBsYWNlbWVudDtcbiAgaW5wdXRDbGVhciA9IHRydWU7XG4gIGlucHV0VGV4dENlbnRlciA9IGZhbHNlO1xuICBpbnB1dEF1dG9DYXBpdGFsaXplOiB0eXBlb2YgdGhpcy5hdXRvQ2FwaXRhbGl6ZTtcblxuICAvKiotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAqIEBuYW1lICAgICAgICAgIG5nT25DaGFuZ2VzXG4gICAqIEBkZXNjcmlwdGlvbiAgIERldGVjdCBjaGFuZ2VzIHRvIGlucHV0IHZhbHVlc1xuICAgKiBAcGFyYW0gICAgICAgICB7U2ltcGxlQ2hhbmdlc30gY2hhbmdlc1xuICAgKi9cbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuICAgIC8vLS0tIExhYmVsIFBsYWNlbWVudFxuICAgIHRoaXMuaW5wdXRMYWJlbFBsYWNlbWVudCA9XG4gICAgICB2YWxpZGF0ZVN0cmluZ1ZhbHVlPCh0eXBlb2YgaW5wdXRUZXh0QXJlYUMubGFiZWxQbGFjZW1lbnQpW251bWJlcl0+KFxuICAgICAgICBjaGFuZ2VzLFxuICAgICAgICAnbGFiZWxQbGFjZW1lbnQnLFxuICAgICAgICBpbnB1dFRleHRBcmVhQy5sYWJlbFBsYWNlbWVudC5zbGljZSgpLFxuICAgICAgICB0aGlzLmlucHV0TGFiZWxQbGFjZW1lbnRcbiAgICAgICkgfHwgJ2Zsb2F0aW5nJztcbiAgICAvLy0tLSBUZXh0IENlbnRlclxuICAgIHRoaXMuaW5wdXRUZXh0Q2VudGVyID0gY2hlY2tUcnV0aEF0dHJpYnV0ZShjaGFuZ2VzLCAndGV4dENlbnRlcicsIHRoaXMuaW5wdXRUZXh0Q2VudGVyKTtcbiAgICAvLy0tLSBBdXRvIENhcGl0YWxpemVcbiAgICB0aGlzLmlucHV0QXV0b0NhcGl0YWxpemUgPVxuICAgICAgdmFsaWRhdGVTdHJpbmdWYWx1ZTwodHlwZW9mIGlucHV0VGV4dEFyZWFDLmF1dG9DYXBpdGFsaXplKVtudW1iZXJdPihcbiAgICAgICAgY2hhbmdlcyxcbiAgICAgICAgJ2F1dG9DYXBpdGFsaXplJyxcbiAgICAgICAgaW5wdXRUZXh0QXJlYUMuYXV0b0NhcGl0YWxpemUuc2xpY2UoKSxcbiAgICAgICAgdGhpcy5pbnB1dEF1dG9DYXBpdGFsaXplXG4gICAgICApIHx8ICdub25lJztcbiAgfVxufVxuIiwiPCEtLSBuZ01vZGVsIC0tPlxuPGlvbi10ZXh0YXJlYVxuICBbc3R5bGVdPVwiJ21pbi1oZWlnaHQ6ICcgKyBtaW5IZWlnaHQgKyAnOyBtYXgtaGVpZ2h0OiAnICsgbWF4SGVpZ2h0XCJcbiAgKm5nSWY9XCIhY29udHJvbFwiXG4gIFtwbGFjZWhvbGRlcl09XCJwbGFjZWhvbGRlclwiXG4gIFtuZ0NsYXNzXT1cInsgJ3RleHQtY2VudGVyJzogaW5wdXRUZXh0Q2VudGVyIH1cIlxuICBbbGFiZWxdPVwibGFiZWxcIlxuICBbbGFiZWxQbGFjZW1lbnRdPVwiaW5wdXRMYWJlbFBsYWNlbWVudFwiXG4gIGZpbGw9XCJvdXRsaW5lXCJcbiAgW2F1dG9jYXBpdGFsaXplXT1cImF1dG9DYXBpdGFsaXplXCJcbiAgW2F1dG9Hcm93XT1cInRydWVcIlxuICBtb2RlPVwibWRcIlxuICAoaW9uSW5wdXQpPVwidmFsdWVDaGFuZ2UuZW1pdCgkZXZlbnQuZGV0YWlsLnZhbHVlID8/IHVuZGVmaW5lZClcIlxuICBbdmFsdWVdPVwidmFsdWVcIj48L2lvbi10ZXh0YXJlYT5cbjwhLS0gRm9ybSBDb250cm9sIC0tPlxuPGlvbi10ZXh0YXJlYVxuICBbc3R5bGVdPVwiJ21pbi1oZWlnaHQ6ICcgKyBtaW5IZWlnaHQgKyAnOyBtYXgtaGVpZ2h0OiAnICsgbWF4SGVpZ2h0XCJcbiAgKm5nSWY9XCJjb250cm9sXCJcbiAgW3BsYWNlaG9sZGVyXT1cInBsYWNlaG9sZGVyXCJcbiAgW25nQ2xhc3NdPVwieyAndGV4dC1jZW50ZXInOiBpbnB1dFRleHRDZW50ZXIgfVwiXG4gIFtsYWJlbF09XCJsYWJlbFwiXG4gIFtsYWJlbFBsYWNlbWVudF09XCJpbnB1dExhYmVsUGxhY2VtZW50XCJcbiAgZmlsbD1cIm91dGxpbmVcIlxuICBbYXV0b2NhcGl0YWxpemVdPVwiYXV0b0NhcGl0YWxpemVcIlxuICBbYXV0b0dyb3ddPVwidHJ1ZVwiXG4gIG1vZGU9XCJtZFwiXG4gIFtmb3JtQ29udHJvbF09XCJjb250cm9sXCJcbiAgKGlvbklucHV0KT1cInZhbHVlQ2hhbmdlLmVtaXQoJGV2ZW50LmRldGFpbC52YWx1ZSA/PyB1bmRlZmluZWQpXCI+PC9pb24tdGV4dGFyZWE+XG48Y2YtZm9ybS12YWxpZGF0aW9uICpuZ0lmPVwiY29udHJvbFwiIFtjb250cm9sXT1cImNvbnRyb2xcIj48L2NmLWZvcm0tdmFsaWRhdGlvbj5cbiJdfQ==
@@ -0,0 +1,20 @@
1
+ import { Component, Input } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ import * as i1 from "@angular/common";
4
+ export class FormValidationComponent {
5
+ control;
6
+ ngOnChanges(changes) {
7
+ if (changes['control'] && changes['control'].currentValue) {
8
+ this.control = changes['control'].currentValue;
9
+ }
10
+ }
11
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.9", ngImport: i0, type: FormValidationComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
12
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.9", 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
+ }
14
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.9", ngImport: i0, type: FormValidationComponent, decorators: [{
15
+ type: Component,
16
+ args: [{ selector: 'cf-form-validation', template: "<div *ngIf=\"control?.dirty && control?.errors\" class=\"form-valid-feedback\">\n <div *ngFor=\"let error of this.control?.errors | keyvalue\">\n <p class=\"body-medium\" *ngIf=\"error.key === 'email'\">*Invalid email format</p>\n <p class=\"body-medium\" *ngIf=\"error.key === 'minlength'\">*Length required: {{ error.value.requiredLength - error.value.actualLength }}</p>\n <p class=\"body-medium\" *ngIf=\"error.key === 'maxlength'\">*Max Length: {{ error.value.requiredLength }}</p>\n <p class=\"body-medium\" *ngIf=\"error.key === 'errorMessage'\">*{{ error.value }}</p>\n </div>\n</div>\n", styles: [".form-valid-feedback{padding:4px 0 0 10px}.form-valid-feedback p{font-size:1.2rem;text-align:left;color:var(--cf-app-system-color-error)}\n"] }]
17
+ }], propDecorators: { control: [{
18
+ type: Input
19
+ }] } });
20
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS12YWxpZGF0aW9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NhcmVmaXJzdC9saWJyYXJ5L3NyYy9saWIvY29tcG9uZW50cy9mb3JtLXZhbGlkYXRpb24vZm9ybS12YWxpZGF0aW9uLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NhcmVmaXJzdC9saWJyYXJ5L3NyYy9saWIvY29tcG9uZW50cy9mb3JtLXZhbGlkYXRpb24vZm9ybS12YWxpZGF0aW9uLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQVVBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFzQyxNQUFNLGVBQWUsQ0FBQzs7O0FBU3JGLE1BQU0sT0FBTyx1QkFBdUI7SUFFekIsT0FBTyxDQUFzQjtJQU90QyxXQUFXLENBQUMsT0FBc0I7UUFDaEMsSUFBSSxPQUFPLENBQUMsU0FBUyxDQUFDLElBQUksT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQUFDLFlBQVksRUFBRTtZQUN6RCxJQUFJLENBQUMsT0FBTyxHQUFHLE9BQU8sQ0FBQyxTQUFTLENBQUMsQ0FBQyxZQUFZLENBQUM7U0FDaEQ7SUFDSCxDQUFDO3VHQWJVLHVCQUF1QjsyRkFBdkIsdUJBQXVCLCtHQ25CcEMsa21CQVFBOzsyRkRXYSx1QkFBdUI7a0JBTG5DLFNBQVM7K0JBQ0Usb0JBQW9COzhCQU1yQixPQUFPO3NCQUFmLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIENhcmVGaXJzdCBMaWJyYXJ5IEZvcm0gVmFsaWRhdGlvbiBGZWVkYmFja1xuICpcbiAqIEBmaWxlICAgICAgICAgIGZvcm0tdmFsaWRhdGlvbi5jb21wb25lbnRcbiAqIEBkZXNjcmlwdGlvbiAgIENvbnRhaW5zIGFsbCB0aGUgbG9naWMgZm9yIGdlbmVyYXRpbmcgQ2FyZUZpcnN0IEZvcm0gVmFsaWRhdGlvbiBGZWVkYmFja1xuICogQGF1dGhvciAgICAgICAgQXJubyBKYW5zZW4gdmFuIFZ1dXJlblxuICogQHNpbmNlICAgICAgICAgMjAyMyAtIDEyIC0gMDVcbiAqIEB1c2FnZSAgICAgICAgIDxjZi1mb3JtLXZhbGlkYXRpb24gW2NvbnRyb2xdPVwiZm9ybU5hbWUuZ2V0KCdjb250cm9sTmFtZScpXCI+PC9jZi1mb3JtLXZhbGlkYXRpb24+XG4gKi9cblxuaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCwgdHlwZSBPbkNoYW5nZXMsIHR5cGUgU2ltcGxlQ2hhbmdlcyB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuLy8tLS0gSW50ZXJmYWNlc1xuaW1wb3J0IHR5cGUgeyBGb3JtQ29udHJvbCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnY2YtZm9ybS12YWxpZGF0aW9uJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2Zvcm0tdmFsaWRhdGlvbi5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsOiAnLi9mb3JtLXZhbGlkYXRpb24uY29tcG9uZW50LnNjc3MnLFxufSlcbmV4cG9ydCBjbGFzcyBGb3JtVmFsaWRhdGlvbkNvbXBvbmVudCBpbXBsZW1lbnRzIE9uQ2hhbmdlcyB7XG4gIC8vLS0tIFJlY2VpdmUgZm9ybSBjb250cm9sXG4gIEBJbnB1dCgpIGNvbnRyb2whOiBGb3JtQ29udHJvbCB8IG51bGw7XG5cbiAgLyoqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgKiBAbmFtZSAgICAgICAgICBuZ09uQ2hhbmdlc1xuICAgKiBAZGVzY3JpcHRpb24gICBEZXRlY3QgY2hhbmdlcyB0byBpbnB1dCB2YWx1ZXNcbiAgICogQHBhcmFtICAgICAgICAge1NpbXBsZUNoYW5nZXN9IGNoYW5nZXNcbiAgICovXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICBpZiAoY2hhbmdlc1snY29udHJvbCddICYmIGNoYW5nZXNbJ2NvbnRyb2wnXS5jdXJyZW50VmFsdWUpIHtcbiAgICAgIHRoaXMuY29udHJvbCA9IGNoYW5nZXNbJ2NvbnRyb2wnXS5jdXJyZW50VmFsdWU7XG4gICAgfVxuICB9XG59XG4iLCI8ZGl2ICpuZ0lmPVwiY29udHJvbD8uZGlydHkgJiYgY29udHJvbD8uZXJyb3JzXCIgY2xhc3M9XCJmb3JtLXZhbGlkLWZlZWRiYWNrXCI+XG4gIDxkaXYgKm5nRm9yPVwibGV0IGVycm9yIG9mIHRoaXMuY29udHJvbD8uZXJyb3JzIHwga2V5dmFsdWVcIj5cbiAgICA8cCBjbGFzcz1cImJvZHktbWVkaXVtXCIgKm5nSWY9XCJlcnJvci5rZXkgPT09ICdlbWFpbCdcIj4qSW52YWxpZCBlbWFpbCBmb3JtYXQ8L3A+XG4gICAgPHAgY2xhc3M9XCJib2R5LW1lZGl1bVwiICpuZ0lmPVwiZXJyb3Iua2V5ID09PSAnbWlubGVuZ3RoJ1wiPipMZW5ndGggcmVxdWlyZWQ6IHt7IGVycm9yLnZhbHVlLnJlcXVpcmVkTGVuZ3RoIC0gZXJyb3IudmFsdWUuYWN0dWFsTGVuZ3RoIH19PC9wPlxuICAgIDxwIGNsYXNzPVwiYm9keS1tZWRpdW1cIiAqbmdJZj1cImVycm9yLmtleSA9PT0gJ21heGxlbmd0aCdcIj4qTWF4IExlbmd0aDoge3sgZXJyb3IudmFsdWUucmVxdWlyZWRMZW5ndGggfX08L3A+XG4gICAgPHAgY2xhc3M9XCJib2R5LW1lZGl1bVwiICpuZ0lmPVwiZXJyb3Iua2V5ID09PSAnZXJyb3JNZXNzYWdlJ1wiPip7eyBlcnJvci52YWx1ZSB9fTwvcD5cbiAgPC9kaXY+XG48L2Rpdj5cbiJdfQ==