@carefirst/library 1.3.10 → 1.3.12

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 +92 -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 +890 -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 +32 -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
@@ -1,186 +0,0 @@
1
- /**
2
- * Form validators
3
- *
4
- * @file form-validators
5
- * @description Various form validators
6
- * @author Jacques Coetzee
7
- * @since 2022 - 01 - 20
8
- * @usage Display "errorMessage" key value as validator response message
9
- */
10
-
11
- import { AbstractControl } from '@angular/forms';
12
- import passwordValidator from 'password-validator';
13
- import dayjs from 'dayjs';
14
- import customParseFormat from 'dayjs/plugin/customParseFormat';
15
- dayjs.extend(customParseFormat);
16
- //--- Interfaces
17
- import type { ValidationErrors, ValidatorFn } from '@angular/forms';
18
-
19
- export class CFPFormValidators {
20
- /**----------------------------------------------------------------
21
- * @name checkPSWRetype
22
- * @description Check if passwords match
23
- * @param {string} controlNameToCheckAgainst
24
- * @returns {ValidatorFn}
25
- * @usage FormValidators.compareTo('password')
26
- */
27
- static compareTo(controlNameToCheckAgainst: string): ValidatorFn {
28
- return (control: AbstractControl): ValidationErrors | null => {
29
- //--- Compare controls
30
- const controlToCheckTo: AbstractControl | null = control?.parent?.get(controlNameToCheckAgainst) || null;
31
-
32
- //--- Check primary control value
33
- if (!controlToCheckTo?.value) return { errorMessage: `Password Required` };
34
- //--- Check secondary control value
35
- else if (!control.value) return { errorMessage: `Password confirmation required` };
36
- //--- Compare controls
37
- else if (control.value && control?.value !== controlToCheckTo?.value) return { errorMessage: `Passwords do not match` };
38
-
39
- return null;
40
- };
41
- }
42
-
43
- /**----------------------------------------------------------------
44
- * @name asPassword
45
- * @description Validate control as password
46
- * @returns {ValidatorFn}
47
- * @usage FormValidators.asPassword()
48
- */
49
- static asPassword(): ValidatorFn {
50
- return (control: AbstractControl): ValidationErrors | null => {
51
- const schema = new passwordValidator();
52
-
53
- //--- Setup password requirements
54
- schema
55
- //--- Minimum length 8
56
- .is()
57
- .min(8, 'Minimum of 8 characters')
58
- //--- Maximum length 50
59
- .is()
60
- .max(30, 'Maximum of 30 characters')
61
- //--- Must have uppercase letters
62
- .has()
63
- .uppercase(undefined, 'At least one UPPERCASE character')
64
- //--- Must have lowercase letters
65
- .has()
66
- .lowercase(undefined, 'At least one lowercase character')
67
- //--- Must have at least 1 digits
68
- .has()
69
- .digits(undefined, 'At least one digit')
70
- //--- Special characters
71
- .has()
72
- .symbols(undefined, 'At least one special character');
73
-
74
- //--- Validate string
75
- const inValid = schema.validate(control.value, { details: true }) as {
76
- validation: string;
77
- message: string;
78
- arguments?: number;
79
- }[];
80
-
81
- const returnResponse: { [key: string]: unknown } = {};
82
- inValid.forEach((error) => {
83
- returnResponse['password-' + error.validation] = error.message;
84
- });
85
- return inValid.length ? returnResponse : null;
86
- };
87
- }
88
-
89
- /**----------------------------------------------------------------
90
- * @name asEmail
91
- * @description Validate control as email
92
- * @param {true} canBeEmpty
93
- * @returns {ValidatorFn}
94
- * @usage FormValidators.asEmail(true?)
95
- */
96
- static asEmail(canBeEmpty?: true): ValidatorFn {
97
- return (control: AbstractControl): ValidationErrors | null => {
98
- let setErrors = null;
99
- const emailRegEx = new RegExp('^[\\w-.]+@[\\w]+\\.[\\w]+');
100
-
101
- //--- Check if email can be empty
102
- if (canBeEmpty && (control.value === null || control.value === '')) {
103
- return null;
104
- }
105
-
106
- //--- Test RegExp
107
- if (!(control.value && emailRegEx.test(control.value))) {
108
- setErrors = { errorMessage: `Not a valid email address` };
109
- }
110
-
111
- return setErrors;
112
- };
113
- }
114
-
115
- /**----------------------------------------------------------------
116
- * @name isIn
117
- * @description Validate control value is part of a given list
118
- * @param {string | number[]} list
119
- * @returns {ValidatorFn}
120
- * @usage FormValidators.isIn()
121
- */
122
- static isIn(list: (string | number)[]): ValidatorFn {
123
- return (control: AbstractControl): ValidationErrors | null => {
124
- if (!list.includes(control.value)) return { errorMessage: 'Control value not part of eligible values' };
125
- return null;
126
- };
127
- }
128
-
129
- /**----------------------------------------------------------------
130
- * @name isSAIDNumber
131
- * @description Validate control value is a valid RSA ID Number
132
- * @param {true} canBeEmpty
133
- * @returns {ValidatorFn}
134
- * @usage FormValidators.isSAIDNumber(true?)
135
- */
136
- static isSAIDNumber(canBeEmpty?: true): ValidatorFn {
137
- return (control: AbstractControl): ValidationErrors | null => {
138
- const validateDate = (): boolean => {
139
- if (typeof control.value !== 'string' || control.value.length < 6) return false;
140
- const month = control.value.slice(2, 4);
141
- const day = control.value.slice(4, 6);
142
- if (+month < 0 && +month > 13) return false;
143
- if (+day < 0 && +day > 31) return false;
144
- if (!dayjs(control.value.slice(0, 6), 'YYMMDD', true).isValid()) return false;
145
- return true;
146
- };
147
-
148
- const checksum = (): boolean => {
149
- if (typeof control.value !== 'string' || control.value.length !== 13) return false;
150
- let nSum = 0; //--- Total sum of all the values
151
- let isSecond = false; //--- To double every other value
152
- //--- Start from the end
153
- for (let i = control.value.length - 1; i >= 0; i--) {
154
- const val: string | undefined = control.value[i];
155
- if (!val) return false;
156
- //--- Get numerical value from ascii string
157
- let d: number = val.charCodeAt(0) - '0'.charCodeAt(0);
158
- //--- Double every other value
159
- if (isSecond == true) d = d * 2;
160
- //--- Sum the total of the doubled values if available
161
- nSum += Math.floor(d / 10);
162
- nSum += d % 10;
163
- //--- Inverse second to determine every other index value
164
- isSecond = !isSecond;
165
- }
166
- //--- Return the modulus 10 of the summation
167
- return nSum % 10 == 0;
168
- };
169
-
170
- let error: string | null = null;
171
- if (canBeEmpty && (!control.value || control.value?.length === 0)) return null;
172
- //--- string
173
- else if (typeof control.value !== 'string') error = 'Invalid RSA ID Number';
174
- //--- Length = 13
175
- else if (control.value.length !== 13) error = `Length required: ${13 - control.value.length}`;
176
- //--- Validate date
177
- else if (!validateDate()) error = `Invalid date of birth`;
178
- //--- Citizenship
179
- else if (!['0', '1'].includes(control.value.slice(10, 11))) error = `Invalid citizenship value`;
180
- //--- Checksum
181
- else if (!checksum()) error = `Invalid RSA ID number checksum`;
182
-
183
- return error ? { errorMessage: error } : null;
184
- };
185
- }
186
- }
package/tsconfig.lib.json DELETED
@@ -1,12 +0,0 @@
1
- /* To learn more about this file see: https://angular.io/config/tsconfig. */
2
- {
3
- "extends": "../../../tsconfig.json",
4
- "compilerOptions": {
5
- "outDir": "../../../out-tsc/lib",
6
- "declaration": true,
7
- "declarationMap": true,
8
- "inlineSources": true,
9
- "types": []
10
- },
11
- "exclude": ["**/*.spec.ts"]
12
- }
@@ -1,10 +0,0 @@
1
- /* To learn more about this file see: https://angular.io/config/tsconfig. */
2
- {
3
- "extends": "./tsconfig.lib.json",
4
- "compilerOptions": {
5
- "declarationMap": false
6
- },
7
- "angularCompilerOptions": {
8
- "compilationMode": "partial"
9
- }
10
- }
@@ -1,14 +0,0 @@
1
- /* To learn more about this file see: https://angular.io/config/tsconfig. */
2
- {
3
- "extends": "../../../tsconfig.json",
4
- "compilerOptions": {
5
- "outDir": "../../../out-tsc/spec",
6
- "types": [
7
- "jasmine"
8
- ]
9
- },
10
- "include": [
11
- "**/*.spec.ts",
12
- "**/*.d.ts"
13
- ]
14
- }