@aroobajaved/shared-ui 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md
ADDED
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
# SharedUi
|
|
2
|
+
|
|
3
|
+
This project was generated using [Angular CLI](https://github.com/angular/angular-cli) version 21.0.0.
|
|
4
|
+
|
|
5
|
+
## Code scaffolding
|
|
6
|
+
|
|
7
|
+
Angular CLI includes powerful code scaffolding tools. To generate a new component, run:
|
|
8
|
+
|
|
9
|
+
```bash
|
|
10
|
+
ng generate component component-name
|
|
11
|
+
```
|
|
12
|
+
|
|
13
|
+
For a complete list of available schematics (such as `components`, `directives`, or `pipes`), run:
|
|
14
|
+
|
|
15
|
+
```bash
|
|
16
|
+
ng generate --help
|
|
17
|
+
```
|
|
18
|
+
|
|
19
|
+
## Building
|
|
20
|
+
|
|
21
|
+
To build the library, run:
|
|
22
|
+
|
|
23
|
+
```bash
|
|
24
|
+
ng build shared-ui
|
|
25
|
+
```
|
|
26
|
+
|
|
27
|
+
This command will compile your project, and the build artifacts will be placed in the `dist/` directory.
|
|
28
|
+
|
|
29
|
+
### Publishing the Library
|
|
30
|
+
|
|
31
|
+
Once the project is built, you can publish your library by following these steps:
|
|
32
|
+
|
|
33
|
+
1. Navigate to the `dist` directory:
|
|
34
|
+
```bash
|
|
35
|
+
cd dist/shared-ui
|
|
36
|
+
```
|
|
37
|
+
|
|
38
|
+
2. Run the `npm publish` command to publish your library to the npm registry:
|
|
39
|
+
```bash
|
|
40
|
+
npm publish
|
|
41
|
+
```
|
|
42
|
+
|
|
43
|
+
## Running unit tests
|
|
44
|
+
|
|
45
|
+
To execute unit tests with the [Karma](https://karma-runner.github.io) test runner, use the following command:
|
|
46
|
+
|
|
47
|
+
```bash
|
|
48
|
+
ng test
|
|
49
|
+
```
|
|
50
|
+
|
|
51
|
+
## Running end-to-end tests
|
|
52
|
+
|
|
53
|
+
For end-to-end (e2e) testing, run:
|
|
54
|
+
|
|
55
|
+
```bash
|
|
56
|
+
ng e2e
|
|
57
|
+
```
|
|
58
|
+
|
|
59
|
+
Angular CLI does not come with an end-to-end testing framework by default. You can choose one that suits your needs.
|
|
60
|
+
|
|
61
|
+
## Additional Resources
|
|
62
|
+
|
|
63
|
+
For more information on using the Angular CLI, including detailed command references, visit the [Angular CLI Overview and Command Reference](https://angular.dev/tools/cli) page.
|
|
@@ -0,0 +1,615 @@
|
|
|
1
|
+
import * as i0 from '@angular/core';
|
|
2
|
+
import { Component, Directive, numberAttribute, HostListener, Input } from '@angular/core';
|
|
3
|
+
import { NG_VALIDATORS } from '@angular/forms';
|
|
4
|
+
|
|
5
|
+
class SharedUi {
|
|
6
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: SharedUi, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
7
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.0.6", type: SharedUi, isStandalone: true, selector: "lib-shared-ui", ngImport: i0, template: `
|
|
8
|
+
<p>
|
|
9
|
+
shared-ui works!
|
|
10
|
+
</p>
|
|
11
|
+
`, isInline: true, styles: [""] });
|
|
12
|
+
}
|
|
13
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: SharedUi, decorators: [{
|
|
14
|
+
type: Component,
|
|
15
|
+
args: [{ selector: 'lib-shared-ui', imports: [], template: `
|
|
16
|
+
<p>
|
|
17
|
+
shared-ui works!
|
|
18
|
+
</p>
|
|
19
|
+
` }]
|
|
20
|
+
}] });
|
|
21
|
+
|
|
22
|
+
class RequiredTrimmed {
|
|
23
|
+
validate(control) {
|
|
24
|
+
const value = control.value;
|
|
25
|
+
if (value === null || value === undefined) {
|
|
26
|
+
return { requiredTrimmed: true };
|
|
27
|
+
}
|
|
28
|
+
if (typeof value === 'string' && value.trim().length === 0) {
|
|
29
|
+
return { requiredTrimmed: true };
|
|
30
|
+
}
|
|
31
|
+
return null;
|
|
32
|
+
}
|
|
33
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: RequiredTrimmed, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
34
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.0.6", type: RequiredTrimmed, isStandalone: true, selector: "[requiredTrimmed]", providers: [
|
|
35
|
+
{
|
|
36
|
+
provide: NG_VALIDATORS,
|
|
37
|
+
useExisting: RequiredTrimmed,
|
|
38
|
+
multi: true,
|
|
39
|
+
},
|
|
40
|
+
], ngImport: i0 });
|
|
41
|
+
}
|
|
42
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: RequiredTrimmed, decorators: [{
|
|
43
|
+
type: Directive,
|
|
44
|
+
args: [{
|
|
45
|
+
selector: '[requiredTrimmed]',
|
|
46
|
+
standalone: true,
|
|
47
|
+
providers: [
|
|
48
|
+
{
|
|
49
|
+
provide: NG_VALIDATORS,
|
|
50
|
+
useExisting: RequiredTrimmed,
|
|
51
|
+
multi: true,
|
|
52
|
+
},
|
|
53
|
+
],
|
|
54
|
+
}]
|
|
55
|
+
}] });
|
|
56
|
+
|
|
57
|
+
class AlphaOnly {
|
|
58
|
+
pattern = /^[A-Za-z]+$/;
|
|
59
|
+
validate(control) {
|
|
60
|
+
const value = control.value;
|
|
61
|
+
if (value === null || value === undefined) {
|
|
62
|
+
return null;
|
|
63
|
+
}
|
|
64
|
+
if (typeof value !== 'string') {
|
|
65
|
+
return null;
|
|
66
|
+
}
|
|
67
|
+
if (!this.pattern.test(value)) {
|
|
68
|
+
return { alphaOnly: true };
|
|
69
|
+
}
|
|
70
|
+
return null;
|
|
71
|
+
}
|
|
72
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: AlphaOnly, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
73
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.0.6", type: AlphaOnly, isStandalone: true, selector: "[alphaOnly]", providers: [
|
|
74
|
+
{
|
|
75
|
+
provide: NG_VALIDATORS,
|
|
76
|
+
useExisting: AlphaOnly,
|
|
77
|
+
multi: true,
|
|
78
|
+
},
|
|
79
|
+
], ngImport: i0 });
|
|
80
|
+
}
|
|
81
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: AlphaOnly, decorators: [{
|
|
82
|
+
type: Directive,
|
|
83
|
+
args: [{
|
|
84
|
+
selector: '[alphaOnly]',
|
|
85
|
+
standalone: true,
|
|
86
|
+
providers: [
|
|
87
|
+
{
|
|
88
|
+
provide: NG_VALIDATORS,
|
|
89
|
+
useExisting: AlphaOnly,
|
|
90
|
+
multi: true,
|
|
91
|
+
},
|
|
92
|
+
],
|
|
93
|
+
}]
|
|
94
|
+
}] });
|
|
95
|
+
|
|
96
|
+
class AlphaNumeric {
|
|
97
|
+
pattern = /^[A-Za-z0-9]+$/;
|
|
98
|
+
validate(control) {
|
|
99
|
+
const value = control.value;
|
|
100
|
+
if (value === null || value === undefined) {
|
|
101
|
+
return null;
|
|
102
|
+
}
|
|
103
|
+
if (typeof value !== 'string') {
|
|
104
|
+
return null;
|
|
105
|
+
}
|
|
106
|
+
if (!this.pattern.test(value)) {
|
|
107
|
+
return { alphaNumeric: true };
|
|
108
|
+
}
|
|
109
|
+
return null;
|
|
110
|
+
}
|
|
111
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: AlphaNumeric, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
112
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.0.6", type: AlphaNumeric, isStandalone: true, selector: "[alphaNumeric]", providers: [
|
|
113
|
+
{
|
|
114
|
+
provide: NG_VALIDATORS,
|
|
115
|
+
useExisting: AlphaNumeric,
|
|
116
|
+
multi: true,
|
|
117
|
+
},
|
|
118
|
+
], ngImport: i0 });
|
|
119
|
+
}
|
|
120
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: AlphaNumeric, decorators: [{
|
|
121
|
+
type: Directive,
|
|
122
|
+
args: [{
|
|
123
|
+
selector: '[alphaNumeric]',
|
|
124
|
+
standalone: true,
|
|
125
|
+
providers: [
|
|
126
|
+
{
|
|
127
|
+
provide: NG_VALIDATORS,
|
|
128
|
+
useExisting: AlphaNumeric,
|
|
129
|
+
multi: true,
|
|
130
|
+
},
|
|
131
|
+
],
|
|
132
|
+
}]
|
|
133
|
+
}] });
|
|
134
|
+
|
|
135
|
+
class MaxDigits {
|
|
136
|
+
el;
|
|
137
|
+
maxDigits = 0;
|
|
138
|
+
constructor(el) {
|
|
139
|
+
this.el = el;
|
|
140
|
+
}
|
|
141
|
+
onInput() {
|
|
142
|
+
let value = this.el.nativeElement.value;
|
|
143
|
+
value = value.replace(/[^0-9]/g, '');
|
|
144
|
+
const limit = Number(this.maxDigits);
|
|
145
|
+
if (limit > 0 && value.length > limit) {
|
|
146
|
+
value = value.slice(0, limit);
|
|
147
|
+
}
|
|
148
|
+
this.el.nativeElement.value = value;
|
|
149
|
+
}
|
|
150
|
+
validate(control) {
|
|
151
|
+
const value = String(control.value ?? '');
|
|
152
|
+
const limit = Number(this.maxDigits);
|
|
153
|
+
if (!value || limit <= 0)
|
|
154
|
+
return null;
|
|
155
|
+
const digitCount = value.replace(/\D/g, '').length;
|
|
156
|
+
if (digitCount > limit) {
|
|
157
|
+
return {
|
|
158
|
+
maxDigits: {
|
|
159
|
+
required: limit,
|
|
160
|
+
actual: digitCount,
|
|
161
|
+
},
|
|
162
|
+
};
|
|
163
|
+
}
|
|
164
|
+
return null;
|
|
165
|
+
}
|
|
166
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: MaxDigits, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive });
|
|
167
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "16.1.0", version: "21.0.6", type: MaxDigits, isStandalone: true, selector: "[maxDigits]", inputs: { maxDigits: ["maxDigits", "maxDigits", numberAttribute] }, host: { listeners: { "input": "onInput()" } }, providers: [
|
|
168
|
+
{
|
|
169
|
+
provide: NG_VALIDATORS,
|
|
170
|
+
useExisting: MaxDigits,
|
|
171
|
+
multi: true,
|
|
172
|
+
},
|
|
173
|
+
], ngImport: i0 });
|
|
174
|
+
}
|
|
175
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: MaxDigits, decorators: [{
|
|
176
|
+
type: Directive,
|
|
177
|
+
args: [{
|
|
178
|
+
selector: '[maxDigits]',
|
|
179
|
+
standalone: true,
|
|
180
|
+
providers: [
|
|
181
|
+
{
|
|
182
|
+
provide: NG_VALIDATORS,
|
|
183
|
+
useExisting: MaxDigits,
|
|
184
|
+
multi: true,
|
|
185
|
+
},
|
|
186
|
+
],
|
|
187
|
+
}]
|
|
188
|
+
}], ctorParameters: () => [{ type: i0.ElementRef }], propDecorators: { maxDigits: [{
|
|
189
|
+
type: Input,
|
|
190
|
+
args: [{ transform: numberAttribute }]
|
|
191
|
+
}], onInput: [{
|
|
192
|
+
type: HostListener,
|
|
193
|
+
args: ['input']
|
|
194
|
+
}] } });
|
|
195
|
+
|
|
196
|
+
class DecimalLimit {
|
|
197
|
+
el;
|
|
198
|
+
decimalDigits = 0;
|
|
199
|
+
constructor(el) {
|
|
200
|
+
this.el = el;
|
|
201
|
+
}
|
|
202
|
+
onInput() {
|
|
203
|
+
let value = this.el.nativeElement.value;
|
|
204
|
+
value = value.replace(/[^0-9.]/g, '');
|
|
205
|
+
const parts = value.split('.');
|
|
206
|
+
if (parts.length > 2) {
|
|
207
|
+
value = parts[0] + '.' + parts.slice(1).join('');
|
|
208
|
+
}
|
|
209
|
+
const limit = Number(this.decimalDigits);
|
|
210
|
+
if (limit > 0 && value.includes('.')) {
|
|
211
|
+
const [int, dec] = value.split('.');
|
|
212
|
+
value = int + '.' + dec.slice(0, limit);
|
|
213
|
+
}
|
|
214
|
+
this.el.nativeElement.value = value;
|
|
215
|
+
}
|
|
216
|
+
validate(control) {
|
|
217
|
+
const value = String(control.value ?? '');
|
|
218
|
+
const limit = Number(this.decimalDigits);
|
|
219
|
+
if (!value || limit <= 0)
|
|
220
|
+
return null;
|
|
221
|
+
if (!value.includes('.'))
|
|
222
|
+
return null;
|
|
223
|
+
const decimalPart = value.split('.')[1] ?? '';
|
|
224
|
+
if (decimalPart.length > limit) {
|
|
225
|
+
return {
|
|
226
|
+
decimalDigits: {
|
|
227
|
+
required: limit,
|
|
228
|
+
actual: decimalPart.length,
|
|
229
|
+
},
|
|
230
|
+
};
|
|
231
|
+
}
|
|
232
|
+
return null;
|
|
233
|
+
}
|
|
234
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: DecimalLimit, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive });
|
|
235
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "16.1.0", version: "21.0.6", type: DecimalLimit, isStandalone: true, selector: "[decimalDigits]", inputs: { decimalDigits: ["decimalDigits", "decimalDigits", numberAttribute] }, host: { listeners: { "input": "onInput()" } }, providers: [
|
|
236
|
+
{
|
|
237
|
+
provide: NG_VALIDATORS,
|
|
238
|
+
useExisting: DecimalLimit,
|
|
239
|
+
multi: true,
|
|
240
|
+
},
|
|
241
|
+
], ngImport: i0 });
|
|
242
|
+
}
|
|
243
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: DecimalLimit, decorators: [{
|
|
244
|
+
type: Directive,
|
|
245
|
+
args: [{
|
|
246
|
+
selector: '[decimalDigits]',
|
|
247
|
+
standalone: true,
|
|
248
|
+
providers: [
|
|
249
|
+
{
|
|
250
|
+
provide: NG_VALIDATORS,
|
|
251
|
+
useExisting: DecimalLimit,
|
|
252
|
+
multi: true,
|
|
253
|
+
},
|
|
254
|
+
],
|
|
255
|
+
}]
|
|
256
|
+
}], ctorParameters: () => [{ type: i0.ElementRef }], propDecorators: { decimalDigits: [{
|
|
257
|
+
type: Input,
|
|
258
|
+
args: [{ transform: numberAttribute }]
|
|
259
|
+
}], onInput: [{
|
|
260
|
+
type: HostListener,
|
|
261
|
+
args: ['input']
|
|
262
|
+
}] } });
|
|
263
|
+
|
|
264
|
+
class EmailCheck {
|
|
265
|
+
el;
|
|
266
|
+
emailRegex = /^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$/;
|
|
267
|
+
constructor(el) {
|
|
268
|
+
this.el = el;
|
|
269
|
+
}
|
|
270
|
+
onBlur() {
|
|
271
|
+
const value = this.el.nativeElement.value;
|
|
272
|
+
if (!value) {
|
|
273
|
+
this.el.nativeElement.setCustomValidity('');
|
|
274
|
+
return;
|
|
275
|
+
}
|
|
276
|
+
if (!this.emailRegex.test(value)) {
|
|
277
|
+
this.el.nativeElement.setCustomValidity('Invalid email address');
|
|
278
|
+
}
|
|
279
|
+
else {
|
|
280
|
+
this.el.nativeElement.setCustomValidity('');
|
|
281
|
+
}
|
|
282
|
+
this.el.nativeElement.reportValidity();
|
|
283
|
+
}
|
|
284
|
+
validate(control) {
|
|
285
|
+
const value = control.value;
|
|
286
|
+
if (!value)
|
|
287
|
+
return null;
|
|
288
|
+
if (!this.emailRegex.test(value)) {
|
|
289
|
+
return { emailCheck: true };
|
|
290
|
+
}
|
|
291
|
+
return null;
|
|
292
|
+
}
|
|
293
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: EmailCheck, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive });
|
|
294
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.0.6", type: EmailCheck, isStandalone: true, selector: "[emailCheck]", host: { listeners: { "blur": "onBlur()" } }, providers: [
|
|
295
|
+
{
|
|
296
|
+
provide: NG_VALIDATORS,
|
|
297
|
+
useExisting: EmailCheck,
|
|
298
|
+
multi: true,
|
|
299
|
+
},
|
|
300
|
+
], ngImport: i0 });
|
|
301
|
+
}
|
|
302
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: EmailCheck, decorators: [{
|
|
303
|
+
type: Directive,
|
|
304
|
+
args: [{
|
|
305
|
+
selector: '[emailCheck]',
|
|
306
|
+
standalone: true,
|
|
307
|
+
providers: [
|
|
308
|
+
{
|
|
309
|
+
provide: NG_VALIDATORS,
|
|
310
|
+
useExisting: EmailCheck,
|
|
311
|
+
multi: true,
|
|
312
|
+
},
|
|
313
|
+
],
|
|
314
|
+
}]
|
|
315
|
+
}], ctorParameters: () => [{ type: i0.ElementRef }], propDecorators: { onBlur: [{
|
|
316
|
+
type: HostListener,
|
|
317
|
+
args: ['blur']
|
|
318
|
+
}] } });
|
|
319
|
+
|
|
320
|
+
class PhoneNumber {
|
|
321
|
+
pattern = /^\+?[0-9]{7,15}$/;
|
|
322
|
+
validate(control) {
|
|
323
|
+
const value = control.value;
|
|
324
|
+
if (!value)
|
|
325
|
+
return null;
|
|
326
|
+
if (typeof value !== 'string') {
|
|
327
|
+
return { phoneNumber: true };
|
|
328
|
+
}
|
|
329
|
+
if (!this.pattern.test(value)) {
|
|
330
|
+
return { phoneNumber: true };
|
|
331
|
+
}
|
|
332
|
+
return null;
|
|
333
|
+
}
|
|
334
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: PhoneNumber, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
335
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.0.6", type: PhoneNumber, isStandalone: true, selector: "[phoneNumber]", providers: [
|
|
336
|
+
{
|
|
337
|
+
provide: NG_VALIDATORS,
|
|
338
|
+
useExisting: PhoneNumber,
|
|
339
|
+
multi: true
|
|
340
|
+
}
|
|
341
|
+
], ngImport: i0 });
|
|
342
|
+
}
|
|
343
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: PhoneNumber, decorators: [{
|
|
344
|
+
type: Directive,
|
|
345
|
+
args: [{
|
|
346
|
+
selector: '[phoneNumber]',
|
|
347
|
+
standalone: true,
|
|
348
|
+
providers: [
|
|
349
|
+
{
|
|
350
|
+
provide: NG_VALIDATORS,
|
|
351
|
+
useExisting: PhoneNumber,
|
|
352
|
+
multi: true
|
|
353
|
+
}
|
|
354
|
+
]
|
|
355
|
+
}]
|
|
356
|
+
}] });
|
|
357
|
+
|
|
358
|
+
class PasswordCheck {
|
|
359
|
+
passwordRegex = /^(?=.*[A-Za-z])(?=.*\d).{8,}$/;
|
|
360
|
+
validate(control) {
|
|
361
|
+
const value = control.value;
|
|
362
|
+
if (!value)
|
|
363
|
+
return null;
|
|
364
|
+
if (!this.passwordRegex.test(value)) {
|
|
365
|
+
return {
|
|
366
|
+
passwordCheck: {
|
|
367
|
+
minLength: 8,
|
|
368
|
+
requiresLetter: true,
|
|
369
|
+
requiresNumber: true,
|
|
370
|
+
},
|
|
371
|
+
};
|
|
372
|
+
}
|
|
373
|
+
return null;
|
|
374
|
+
}
|
|
375
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: PasswordCheck, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
376
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.0.6", type: PasswordCheck, isStandalone: true, selector: "[passwordCheck]", providers: [
|
|
377
|
+
{
|
|
378
|
+
provide: NG_VALIDATORS,
|
|
379
|
+
useExisting: PasswordCheck,
|
|
380
|
+
multi: true,
|
|
381
|
+
},
|
|
382
|
+
], ngImport: i0 });
|
|
383
|
+
}
|
|
384
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: PasswordCheck, decorators: [{
|
|
385
|
+
type: Directive,
|
|
386
|
+
args: [{
|
|
387
|
+
selector: '[passwordCheck]',
|
|
388
|
+
standalone: true,
|
|
389
|
+
providers: [
|
|
390
|
+
{
|
|
391
|
+
provide: NG_VALIDATORS,
|
|
392
|
+
useExisting: PasswordCheck,
|
|
393
|
+
multi: true,
|
|
394
|
+
},
|
|
395
|
+
],
|
|
396
|
+
}]
|
|
397
|
+
}] });
|
|
398
|
+
|
|
399
|
+
class ContainsUppercase {
|
|
400
|
+
pattern = /[A-Z]/;
|
|
401
|
+
validate(control) {
|
|
402
|
+
const value = control.value;
|
|
403
|
+
if (value === null || value === undefined) {
|
|
404
|
+
return null;
|
|
405
|
+
}
|
|
406
|
+
if (typeof value !== 'string') {
|
|
407
|
+
return null;
|
|
408
|
+
}
|
|
409
|
+
if (!this.pattern.test(value)) {
|
|
410
|
+
return { containsUppercase: true };
|
|
411
|
+
}
|
|
412
|
+
return null;
|
|
413
|
+
}
|
|
414
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: ContainsUppercase, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
415
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.0.6", type: ContainsUppercase, isStandalone: true, selector: "[containsUppercase]", providers: [
|
|
416
|
+
{
|
|
417
|
+
provide: NG_VALIDATORS,
|
|
418
|
+
useExisting: ContainsUppercase,
|
|
419
|
+
multi: true,
|
|
420
|
+
},
|
|
421
|
+
], ngImport: i0 });
|
|
422
|
+
}
|
|
423
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: ContainsUppercase, decorators: [{
|
|
424
|
+
type: Directive,
|
|
425
|
+
args: [{
|
|
426
|
+
selector: '[containsUppercase]',
|
|
427
|
+
standalone: true,
|
|
428
|
+
providers: [
|
|
429
|
+
{
|
|
430
|
+
provide: NG_VALIDATORS,
|
|
431
|
+
useExisting: ContainsUppercase,
|
|
432
|
+
multi: true,
|
|
433
|
+
},
|
|
434
|
+
],
|
|
435
|
+
}]
|
|
436
|
+
}] });
|
|
437
|
+
|
|
438
|
+
class ContainsLowercase {
|
|
439
|
+
pattern = /[a-z]/;
|
|
440
|
+
validate(control) {
|
|
441
|
+
const value = control.value;
|
|
442
|
+
if (value === null || value === undefined) {
|
|
443
|
+
return null;
|
|
444
|
+
}
|
|
445
|
+
if (typeof value !== 'string') {
|
|
446
|
+
return null;
|
|
447
|
+
}
|
|
448
|
+
if (!this.pattern.test(value)) {
|
|
449
|
+
return { containsLowercase: true };
|
|
450
|
+
}
|
|
451
|
+
return null;
|
|
452
|
+
}
|
|
453
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: ContainsLowercase, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
454
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.0.6", type: ContainsLowercase, isStandalone: true, selector: "[containsLowercase]", providers: [
|
|
455
|
+
{
|
|
456
|
+
provide: NG_VALIDATORS,
|
|
457
|
+
useExisting: ContainsLowercase,
|
|
458
|
+
multi: true,
|
|
459
|
+
},
|
|
460
|
+
], ngImport: i0 });
|
|
461
|
+
}
|
|
462
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: ContainsLowercase, decorators: [{
|
|
463
|
+
type: Directive,
|
|
464
|
+
args: [{
|
|
465
|
+
selector: '[containsLowercase]',
|
|
466
|
+
standalone: true,
|
|
467
|
+
providers: [
|
|
468
|
+
{
|
|
469
|
+
provide: NG_VALIDATORS,
|
|
470
|
+
useExisting: ContainsLowercase,
|
|
471
|
+
multi: true,
|
|
472
|
+
},
|
|
473
|
+
],
|
|
474
|
+
}]
|
|
475
|
+
}] });
|
|
476
|
+
|
|
477
|
+
class ContainsSpecialCharacter {
|
|
478
|
+
pattern = /[^A-Za-z0-9]/;
|
|
479
|
+
validate(control) {
|
|
480
|
+
const value = control.value;
|
|
481
|
+
if (value === null || value === undefined) {
|
|
482
|
+
return null;
|
|
483
|
+
}
|
|
484
|
+
if (typeof value !== 'string') {
|
|
485
|
+
return null;
|
|
486
|
+
}
|
|
487
|
+
if (!this.pattern.test(value)) {
|
|
488
|
+
return { containsSpecialCharacter: true };
|
|
489
|
+
}
|
|
490
|
+
return null;
|
|
491
|
+
}
|
|
492
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: ContainsSpecialCharacter, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
493
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.0.6", type: ContainsSpecialCharacter, isStandalone: true, selector: "[containsSpecialCharacter]", providers: [
|
|
494
|
+
{
|
|
495
|
+
provide: NG_VALIDATORS,
|
|
496
|
+
useExisting: ContainsSpecialCharacter,
|
|
497
|
+
multi: true,
|
|
498
|
+
},
|
|
499
|
+
], ngImport: i0 });
|
|
500
|
+
}
|
|
501
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: ContainsSpecialCharacter, decorators: [{
|
|
502
|
+
type: Directive,
|
|
503
|
+
args: [{
|
|
504
|
+
selector: '[containsSpecialCharacter]',
|
|
505
|
+
standalone: true,
|
|
506
|
+
providers: [
|
|
507
|
+
{
|
|
508
|
+
provide: NG_VALIDATORS,
|
|
509
|
+
useExisting: ContainsSpecialCharacter,
|
|
510
|
+
multi: true,
|
|
511
|
+
},
|
|
512
|
+
],
|
|
513
|
+
}]
|
|
514
|
+
}] });
|
|
515
|
+
|
|
516
|
+
class ConfirmPassword {
|
|
517
|
+
passwordControlName;
|
|
518
|
+
validate(control) {
|
|
519
|
+
if (!control.parent || !this.passwordControlName) {
|
|
520
|
+
return null;
|
|
521
|
+
}
|
|
522
|
+
const password = control.parent.get(this.passwordControlName)?.value;
|
|
523
|
+
const confirm = control.value;
|
|
524
|
+
if (password !== confirm) {
|
|
525
|
+
return { confirmPassword: true };
|
|
526
|
+
}
|
|
527
|
+
return null;
|
|
528
|
+
}
|
|
529
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: ConfirmPassword, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
530
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.0.6", type: ConfirmPassword, isStandalone: true, selector: "[confirmPassword]", inputs: { passwordControlName: ["confirmPassword", "passwordControlName"] }, providers: [
|
|
531
|
+
{
|
|
532
|
+
provide: NG_VALIDATORS,
|
|
533
|
+
useExisting: ConfirmPassword,
|
|
534
|
+
multi: true
|
|
535
|
+
}
|
|
536
|
+
], ngImport: i0 });
|
|
537
|
+
}
|
|
538
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: ConfirmPassword, decorators: [{
|
|
539
|
+
type: Directive,
|
|
540
|
+
args: [{
|
|
541
|
+
selector: '[confirmPassword]',
|
|
542
|
+
standalone: true,
|
|
543
|
+
providers: [
|
|
544
|
+
{
|
|
545
|
+
provide: NG_VALIDATORS,
|
|
546
|
+
useExisting: ConfirmPassword,
|
|
547
|
+
multi: true
|
|
548
|
+
}
|
|
549
|
+
]
|
|
550
|
+
}]
|
|
551
|
+
}], propDecorators: { passwordControlName: [{
|
|
552
|
+
type: Input,
|
|
553
|
+
args: ['confirmPassword']
|
|
554
|
+
}] } });
|
|
555
|
+
|
|
556
|
+
class DateRange {
|
|
557
|
+
startControlName;
|
|
558
|
+
endControlName;
|
|
559
|
+
validate(control) {
|
|
560
|
+
if (!control || !control.get)
|
|
561
|
+
return null;
|
|
562
|
+
const start = control.get(this.startControlName)?.value;
|
|
563
|
+
const end = control.get(this.endControlName)?.value;
|
|
564
|
+
if (!start || !end)
|
|
565
|
+
return null;
|
|
566
|
+
const startDate = new Date(start);
|
|
567
|
+
const endDate = new Date(end);
|
|
568
|
+
if (isNaN(startDate.getTime()) || isNaN(endDate.getTime())) {
|
|
569
|
+
return null;
|
|
570
|
+
}
|
|
571
|
+
if (endDate < startDate) {
|
|
572
|
+
return { dateRange: true };
|
|
573
|
+
}
|
|
574
|
+
return null;
|
|
575
|
+
}
|
|
576
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: DateRange, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
577
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.0.6", type: DateRange, isStandalone: true, selector: "[dateRange]", inputs: { startControlName: ["dateRangeStart", "startControlName"], endControlName: ["dateRangeEnd", "endControlName"] }, providers: [
|
|
578
|
+
{
|
|
579
|
+
provide: NG_VALIDATORS,
|
|
580
|
+
useExisting: DateRange,
|
|
581
|
+
multi: true
|
|
582
|
+
}
|
|
583
|
+
], ngImport: i0 });
|
|
584
|
+
}
|
|
585
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: DateRange, decorators: [{
|
|
586
|
+
type: Directive,
|
|
587
|
+
args: [{
|
|
588
|
+
selector: '[dateRange]',
|
|
589
|
+
standalone: true,
|
|
590
|
+
providers: [
|
|
591
|
+
{
|
|
592
|
+
provide: NG_VALIDATORS,
|
|
593
|
+
useExisting: DateRange,
|
|
594
|
+
multi: true
|
|
595
|
+
}
|
|
596
|
+
]
|
|
597
|
+
}]
|
|
598
|
+
}], propDecorators: { startControlName: [{
|
|
599
|
+
type: Input,
|
|
600
|
+
args: ['dateRangeStart']
|
|
601
|
+
}], endControlName: [{
|
|
602
|
+
type: Input,
|
|
603
|
+
args: ['dateRangeEnd']
|
|
604
|
+
}] } });
|
|
605
|
+
|
|
606
|
+
/*
|
|
607
|
+
* Public API Surface of shared-ui
|
|
608
|
+
*/
|
|
609
|
+
|
|
610
|
+
/**
|
|
611
|
+
* Generated bundle index. Do not edit.
|
|
612
|
+
*/
|
|
613
|
+
|
|
614
|
+
export { AlphaNumeric, AlphaOnly, ConfirmPassword, ContainsLowercase, ContainsSpecialCharacter, ContainsUppercase, DateRange, DecimalLimit, EmailCheck, MaxDigits, PasswordCheck, PhoneNumber, RequiredTrimmed, SharedUi };
|
|
615
|
+
//# sourceMappingURL=aroobajaved-shared-ui.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"aroobajaved-shared-ui.mjs","sources":["../../../projects/shared-ui/src/lib/shared-ui.ts","../../../projects/shared-ui/src/lib/validations/required-trimmed/required-trimmed.ts","../../../projects/shared-ui/src/lib/validations/alpha-only/alpha-only.ts","../../../projects/shared-ui/src/lib/validations/alpha-numeric/alpha-numeric.ts","../../../projects/shared-ui/src/lib/validations/max-digits/max-digits.ts","../../../projects/shared-ui/src/lib/validations/decimal-limit/decimal-limit.ts","../../../projects/shared-ui/src/lib/validations/email-check/email-check.ts","../../../projects/shared-ui/src/lib/validations/phone-number/phone-number.ts","../../../projects/shared-ui/src/lib/validations/password-check/password-check.ts","../../../projects/shared-ui/src/lib/validations/contains-uppercase/contains-uppercase.ts","../../../projects/shared-ui/src/lib/validations/contains-lowercase/contains-lowercase.ts","../../../projects/shared-ui/src/lib/validations/contains-special-character/contains-special-character.ts","../../../projects/shared-ui/src/lib/validations/confirm-password/confirm-password.ts","../../../projects/shared-ui/src/lib/validations/date-range/date-range.ts","../../../projects/shared-ui/src/public-api.ts","../../../projects/shared-ui/src/aroobajaved-shared-ui.ts"],"sourcesContent":["import { Component } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'lib-shared-ui',\r\n imports: [],\r\n template: `\r\n <p>\r\n shared-ui works!\r\n </p>\r\n `,\r\n styles: ``,\r\n})\r\nexport class SharedUi {\r\n\r\n}\r\n","import { Directive } from '@angular/core';\r\nimport { AbstractControl, NG_VALIDATORS, ValidationErrors, Validator } from '@angular/forms';\r\n\r\n@Directive({\r\n selector: '[requiredTrimmed]',\r\n standalone: true,\r\n providers: [\r\n {\r\n provide: NG_VALIDATORS,\r\n useExisting: RequiredTrimmed,\r\n multi: true,\r\n },\r\n ],\r\n})\r\nexport class RequiredTrimmed implements Validator {\r\n validate(control: AbstractControl): ValidationErrors | null {\r\n const value = control.value;\r\n\r\n if (value === null || value === undefined) {\r\n return { requiredTrimmed: true };\r\n }\r\n\r\n if (typeof value === 'string' && value.trim().length === 0) {\r\n return { requiredTrimmed: true };\r\n }\r\n\r\n return null;\r\n }\r\n}\r\n","import { Directive } from '@angular/core';\r\nimport { AbstractControl, NG_VALIDATORS, ValidationErrors, Validator } from '@angular/forms';\r\n\r\n@Directive({\r\n selector: '[alphaOnly]',\r\n standalone: true,\r\n providers: [\r\n {\r\n provide: NG_VALIDATORS,\r\n useExisting: AlphaOnly,\r\n multi: true,\r\n },\r\n ],\r\n})\r\nexport class AlphaOnly implements Validator {\r\n private readonly pattern = /^[A-Za-z]+$/;\r\n\r\n validate(control: AbstractControl): ValidationErrors | null {\r\n const value = control.value;\r\n\r\n if (value === null || value === undefined) {\r\n return null;\r\n }\r\n\r\n if (typeof value !== 'string') {\r\n return null;\r\n }\r\n\r\n if (!this.pattern.test(value)) {\r\n return { alphaOnly: true };\r\n }\r\n\r\n return null;\r\n }\r\n}\r\n","import { Directive } from '@angular/core';\r\nimport { AbstractControl, NG_VALIDATORS, ValidationErrors, Validator } from '@angular/forms';\r\n\r\n@Directive({\r\n selector: '[alphaNumeric]',\r\n standalone: true,\r\n providers: [\r\n {\r\n provide: NG_VALIDATORS,\r\n useExisting: AlphaNumeric,\r\n multi: true,\r\n },\r\n ],\r\n})\r\nexport class AlphaNumeric implements Validator {\r\n private readonly pattern = /^[A-Za-z0-9]+$/;\r\n\r\n validate(control: AbstractControl): ValidationErrors | null {\r\n const value = control.value;\r\n\r\n if (value === null || value === undefined) {\r\n return null;\r\n }\r\n\r\n if (typeof value !== 'string') {\r\n return null;\r\n }\r\n\r\n if (!this.pattern.test(value)) {\r\n return { alphaNumeric: true };\r\n }\r\n\r\n return null;\r\n }\r\n}\r\n","import { Directive, ElementRef, HostListener, Input, numberAttribute } from '@angular/core';\r\nimport { AbstractControl, NG_VALIDATORS, ValidationErrors, Validator } from '@angular/forms';\r\n\r\n@Directive({\r\n selector: '[maxDigits]',\r\n standalone: true,\r\n providers: [\r\n {\r\n provide: NG_VALIDATORS,\r\n useExisting: MaxDigits,\r\n multi: true,\r\n },\r\n ],\r\n})\r\nexport class MaxDigits implements Validator {\r\n @Input({ transform: numberAttribute })\r\n maxDigits: string | number = 0;\r\n\r\n constructor(private el: ElementRef<HTMLInputElement>) {}\r\n\r\n\r\n @HostListener('input')\r\n onInput(): void {\r\n let value = this.el.nativeElement.value;\r\n\r\n value = value.replace(/[^0-9]/g, '');\r\n\r\n const limit = Number(this.maxDigits);\r\n\r\n if (limit > 0 && value.length > limit) {\r\n value = value.slice(0, limit);\r\n }\r\n\r\n this.el.nativeElement.value = value;\r\n }\r\n\r\n\r\n validate(control: AbstractControl): ValidationErrors | null {\r\n const value = String(control.value ?? '');\r\n const limit = Number(this.maxDigits);\r\n\r\n if (!value || limit <= 0) return null;\r\n\r\n const digitCount = value.replace(/\\D/g, '').length;\r\n\r\n if (digitCount > limit) {\r\n return {\r\n maxDigits: {\r\n required: limit,\r\n actual: digitCount,\r\n },\r\n };\r\n }\r\n\r\n return null;\r\n }\r\n}\r\n","import { Directive, ElementRef, HostListener, Input, numberAttribute } from '@angular/core';\r\nimport { AbstractControl, NG_VALIDATORS, ValidationErrors, Validator } from '@angular/forms';\r\n\r\n@Directive({\r\n selector: '[decimalDigits]',\r\n standalone: true,\r\n providers: [\r\n {\r\n provide: NG_VALIDATORS,\r\n useExisting: DecimalLimit,\r\n multi: true,\r\n },\r\n ],\r\n})\r\nexport class DecimalLimit implements Validator {\r\n @Input({ transform: numberAttribute })\r\n decimalDigits: string | number = 0;\r\n\r\n constructor(private el: ElementRef<HTMLInputElement>) {}\r\n\r\n @HostListener('input')\r\n onInput(): void {\r\n let value = this.el.nativeElement.value;\r\n value = value.replace(/[^0-9.]/g, '');\r\n const parts = value.split('.');\r\n if (parts.length > 2) {\r\n value = parts[0] + '.' + parts.slice(1).join('');\r\n }\r\n\r\n const limit = Number(this.decimalDigits);\r\n\r\n if (limit > 0 && value.includes('.')) {\r\n const [int, dec] = value.split('.');\r\n value = int + '.' + dec.slice(0, limit);\r\n }\r\n\r\n this.el.nativeElement.value = value;\r\n }\r\n\r\n validate(control: AbstractControl): ValidationErrors | null {\r\n const value = String(control.value ?? '');\r\n const limit = Number(this.decimalDigits);\r\n\r\n if (!value || limit <= 0) return null;\r\n\r\n if (!value.includes('.')) return null;\r\n\r\n const decimalPart = value.split('.')[1] ?? '';\r\n\r\n if (decimalPart.length > limit) {\r\n return {\r\n decimalDigits: {\r\n required: limit,\r\n actual: decimalPart.length,\r\n },\r\n };\r\n }\r\n\r\n return null;\r\n }\r\n}\r\n","import { Directive, ElementRef, HostListener } from '@angular/core';\r\nimport { AbstractControl, NG_VALIDATORS, ValidationErrors, Validator } from '@angular/forms';\r\n\r\n@Directive({\r\n selector: '[emailCheck]',\r\n standalone: true,\r\n providers: [\r\n {\r\n provide: NG_VALIDATORS,\r\n useExisting: EmailCheck,\r\n multi: true,\r\n },\r\n ],\r\n})\r\nexport class EmailCheck implements Validator {\r\n private readonly emailRegex = /^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\\.[a-zA-Z]{2,}$/;\r\n\r\n constructor(private el: ElementRef<HTMLInputElement>) {}\r\n\r\n @HostListener('blur')\r\n onBlur(): void {\r\n const value = this.el.nativeElement.value;\r\n\r\n if (!value) {\r\n this.el.nativeElement.setCustomValidity('');\r\n return;\r\n }\r\n\r\n if (!this.emailRegex.test(value)) {\r\n this.el.nativeElement.setCustomValidity('Invalid email address');\r\n } else {\r\n this.el.nativeElement.setCustomValidity('');\r\n }\r\n\r\n this.el.nativeElement.reportValidity();\r\n }\r\n\r\n validate(control: AbstractControl): ValidationErrors | null {\r\n const value = control.value;\r\n\r\n if (!value) return null;\r\n\r\n if (!this.emailRegex.test(value)) {\r\n return { emailCheck: true };\r\n }\r\n\r\n return null;\r\n }\r\n}\r\n","import { Directive } from '@angular/core';\r\nimport {\r\n AbstractControl,\r\n NG_VALIDATORS,\r\n ValidationErrors,\r\n Validator\r\n} from '@angular/forms';\r\n\r\n@Directive({\r\n selector: '[phoneNumber]',\r\n standalone: true,\r\n providers: [\r\n {\r\n provide: NG_VALIDATORS,\r\n useExisting: PhoneNumber,\r\n multi: true\r\n }\r\n ]\r\n})\r\nexport class PhoneNumber implements Validator {\r\n\r\n private readonly pattern = /^\\+?[0-9]{7,15}$/;\r\n\r\n validate(control: AbstractControl): ValidationErrors | null {\r\n const value = control.value;\r\n\r\n if (!value) return null;\r\n\r\n if (typeof value !== 'string') {\r\n return { phoneNumber: true };\r\n }\r\n\r\n if (!this.pattern.test(value)) {\r\n return { phoneNumber: true };\r\n }\r\n\r\n return null;\r\n }\r\n}\r\n","import { Directive, ElementRef, HostListener } from '@angular/core';\r\nimport { AbstractControl, NG_VALIDATORS, ValidationErrors, Validator } from '@angular/forms';\r\n@Directive({\r\n selector: '[passwordCheck]',\r\n standalone: true,\r\n providers: [\r\n {\r\n provide: NG_VALIDATORS,\r\n useExisting: PasswordCheck,\r\n multi: true,\r\n },\r\n ],\r\n})\r\nexport class PasswordCheck implements Validator {\r\n\r\n private readonly passwordRegex = /^(?=.*[A-Za-z])(?=.*\\d).{8,}$/;\r\n\r\n validate(control: AbstractControl): ValidationErrors | null {\r\n const value = control.value;\r\n\r\n if (!value) return null;\r\n\r\n if (!this.passwordRegex.test(value)) {\r\n return {\r\n passwordCheck: {\r\n minLength: 8,\r\n requiresLetter: true,\r\n requiresNumber: true,\r\n },\r\n };\r\n }\r\n\r\n return null;\r\n }\r\n}\r\n","import { Directive } from '@angular/core';\r\nimport { AbstractControl, NG_VALIDATORS, ValidationErrors, Validator } from '@angular/forms';\r\n\r\n@Directive({\r\n selector: '[containsUppercase]',\r\n standalone: true,\r\n providers: [\r\n {\r\n provide: NG_VALIDATORS,\r\n useExisting: ContainsUppercase,\r\n multi: true,\r\n },\r\n ],\r\n})\r\nexport class ContainsUppercase implements Validator {\r\n private readonly pattern = /[A-Z]/;\r\n\r\n validate(control: AbstractControl): ValidationErrors | null {\r\n const value = control.value;\r\n\r\n if (value === null || value === undefined) {\r\n return null;\r\n }\r\n\r\n if (typeof value !== 'string') {\r\n return null;\r\n }\r\n\r\n if (!this.pattern.test(value)) {\r\n return { containsUppercase: true };\r\n }\r\n\r\n return null;\r\n }\r\n}\r\n","import { Directive } from '@angular/core';\r\nimport { AbstractControl, NG_VALIDATORS, ValidationErrors, Validator } from '@angular/forms';\r\n\r\n@Directive({\r\n selector: '[containsLowercase]',\r\n standalone: true,\r\n providers: [\r\n {\r\n provide: NG_VALIDATORS,\r\n useExisting: ContainsLowercase,\r\n multi: true,\r\n },\r\n ],\r\n})\r\nexport class ContainsLowercase implements Validator {\r\n private readonly pattern = /[a-z]/;\r\n\r\n validate(control: AbstractControl): ValidationErrors | null {\r\n const value = control.value;\r\n\r\n if (value === null || value === undefined) {\r\n return null;\r\n }\r\n\r\n if (typeof value !== 'string') {\r\n return null;\r\n }\r\n\r\n if (!this.pattern.test(value)) {\r\n return { containsLowercase: true };\r\n }\r\n\r\n return null;\r\n }\r\n}\r\n","import { Directive } from '@angular/core';\r\nimport { AbstractControl, NG_VALIDATORS, ValidationErrors, Validator } from '@angular/forms';\r\n\r\n@Directive({\r\n selector: '[containsSpecialCharacter]',\r\n standalone: true,\r\n providers: [\r\n {\r\n provide: NG_VALIDATORS,\r\n useExisting: ContainsSpecialCharacter,\r\n multi: true,\r\n },\r\n ],\r\n})\r\nexport class ContainsSpecialCharacter implements Validator {\r\n\r\n private readonly pattern = /[^A-Za-z0-9]/;\r\n\r\n validate(control: AbstractControl): ValidationErrors | null {\r\n const value = control.value;\r\n\r\n if (value === null || value === undefined) {\r\n return null;\r\n }\r\n\r\n if (typeof value !== 'string') {\r\n return null;\r\n }\r\n\r\n if (!this.pattern.test(value)) {\r\n return { containsSpecialCharacter: true };\r\n }\r\n\r\n return null;\r\n }\r\n}\r\n","import { Directive, Input } from '@angular/core';\r\nimport {\r\n AbstractControl,\r\n NG_VALIDATORS,\r\n ValidationErrors,\r\n Validator\r\n} from '@angular/forms';\r\n\r\n@Directive({\r\n selector: '[confirmPassword]',\r\n standalone: true,\r\n providers: [\r\n {\r\n provide: NG_VALIDATORS,\r\n useExisting: ConfirmPassword,\r\n multi: true\r\n }\r\n ]\r\n})\r\nexport class ConfirmPassword implements Validator {\r\n\r\n @Input('confirmPassword') passwordControlName!: string;\r\n\r\n validate(control: AbstractControl): ValidationErrors | null {\r\n if (!control.parent || !this.passwordControlName) {\r\n return null;\r\n }\r\n\r\n const password = control.parent.get(this.passwordControlName)?.value;\r\n const confirm = control.value;\r\n\r\n if (password !== confirm) {\r\n return { confirmPassword: true };\r\n }\r\n\r\n return null;\r\n }\r\n}\r\n","import { Directive, Input } from '@angular/core';\r\nimport {\r\n AbstractControl,\r\n NG_VALIDATORS,\r\n ValidationErrors,\r\n Validator\r\n} from '@angular/forms';\r\n\r\n@Directive({\r\n selector: '[dateRange]',\r\n standalone: true,\r\n providers: [\r\n {\r\n provide: NG_VALIDATORS,\r\n useExisting: DateRange,\r\n multi: true\r\n }\r\n ]\r\n})\r\nexport class DateRange implements Validator {\r\n\r\n @Input('dateRangeStart') startControlName!: string;\r\n @Input('dateRangeEnd') endControlName!: string;\r\n\r\n validate(control: AbstractControl): ValidationErrors | null {\r\n if (!control || !control.get) return null;\r\n\r\n const start = control.get(this.startControlName)?.value;\r\n const end = control.get(this.endControlName)?.value;\r\n\r\n if (!start || !end) return null;\r\n\r\n const startDate = new Date(start);\r\n const endDate = new Date(end);\r\n\r\n if (isNaN(startDate.getTime()) || isNaN(endDate.getTime())) {\r\n return null;\r\n }\r\n\r\n if (endDate < startDate) {\r\n return { dateRange: true };\r\n }\r\n\r\n return null;\r\n }\r\n}\r\n","/*\r\n * Public API Surface of shared-ui\r\n */\r\n\r\nexport * from './lib/shared-ui';\r\nexport * from './lib/validations/required-trimmed/required-trimmed';\r\nexport * from './lib/validations/alpha-only/alpha-only';\r\nexport * from './lib/validations/alpha-numeric/alpha-numeric';\r\nexport * from './lib/validations/max-digits/max-digits';\r\nexport * from './lib/validations/decimal-limit/decimal-limit';\r\nexport * from './lib/validations/email-check/email-check';\r\nexport * from './lib/validations/phone-number/phone-number';\r\nexport * from './lib/validations/password-check/password-check';\r\nexport * from './lib/validations/contains-uppercase/contains-uppercase';\r\nexport * from './lib/validations/contains-lowercase/contains-lowercase';\r\nexport * from './lib/validations/contains-special-character/contains-special-character';\r\nexport * from './lib/validations/confirm-password/confirm-password';\r\nexport * from './lib/validations/date-range/date-range';\r\n\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
|
package/package.json
ADDED
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@aroobajaved/shared-ui",
|
|
3
|
+
"version": "1.0.0",
|
|
4
|
+
"description": "Reusable Angular input validation library",
|
|
5
|
+
"author": "Arooba Javed",
|
|
6
|
+
"license": "MIT",
|
|
7
|
+
"repository": {
|
|
8
|
+
"type": "git",
|
|
9
|
+
"url": "git+https://github.com/Arooba129/angular-lib-workspace.git"
|
|
10
|
+
},
|
|
11
|
+
"keywords": [
|
|
12
|
+
"angular",
|
|
13
|
+
"angular-library",
|
|
14
|
+
"validators",
|
|
15
|
+
"forms",
|
|
16
|
+
"input-validation"
|
|
17
|
+
],
|
|
18
|
+
"peerDependencies": {
|
|
19
|
+
"@angular/core": "^15.0.0",
|
|
20
|
+
"@angular/forms": "^15.0.0"
|
|
21
|
+
},
|
|
22
|
+
"module": "fesm2022/aroobajaved-shared-ui.mjs",
|
|
23
|
+
"typings": "types/aroobajaved-shared-ui.d.ts",
|
|
24
|
+
"exports": {
|
|
25
|
+
"./package.json": {
|
|
26
|
+
"default": "./package.json"
|
|
27
|
+
},
|
|
28
|
+
".": {
|
|
29
|
+
"types": "./types/aroobajaved-shared-ui.d.ts",
|
|
30
|
+
"default": "./fesm2022/aroobajaved-shared-ui.mjs"
|
|
31
|
+
}
|
|
32
|
+
},
|
|
33
|
+
"sideEffects": false,
|
|
34
|
+
"dependencies": {
|
|
35
|
+
"tslib": "^2.3.0"
|
|
36
|
+
}
|
|
37
|
+
}
|
|
@@ -0,0 +1,112 @@
|
|
|
1
|
+
import * as i0 from '@angular/core';
|
|
2
|
+
import { ElementRef } from '@angular/core';
|
|
3
|
+
import { Validator, AbstractControl, ValidationErrors } from '@angular/forms';
|
|
4
|
+
|
|
5
|
+
declare class SharedUi {
|
|
6
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<SharedUi, never>;
|
|
7
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<SharedUi, "lib-shared-ui", never, {}, {}, never, never, true, never>;
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
declare class RequiredTrimmed implements Validator {
|
|
11
|
+
validate(control: AbstractControl): ValidationErrors | null;
|
|
12
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<RequiredTrimmed, never>;
|
|
13
|
+
static ɵdir: i0.ɵɵDirectiveDeclaration<RequiredTrimmed, "[requiredTrimmed]", never, {}, {}, never, never, true, never>;
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
declare class AlphaOnly implements Validator {
|
|
17
|
+
private readonly pattern;
|
|
18
|
+
validate(control: AbstractControl): ValidationErrors | null;
|
|
19
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<AlphaOnly, never>;
|
|
20
|
+
static ɵdir: i0.ɵɵDirectiveDeclaration<AlphaOnly, "[alphaOnly]", never, {}, {}, never, never, true, never>;
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
declare class AlphaNumeric implements Validator {
|
|
24
|
+
private readonly pattern;
|
|
25
|
+
validate(control: AbstractControl): ValidationErrors | null;
|
|
26
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<AlphaNumeric, never>;
|
|
27
|
+
static ɵdir: i0.ɵɵDirectiveDeclaration<AlphaNumeric, "[alphaNumeric]", never, {}, {}, never, never, true, never>;
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
declare class MaxDigits implements Validator {
|
|
31
|
+
private el;
|
|
32
|
+
maxDigits: string | number;
|
|
33
|
+
constructor(el: ElementRef<HTMLInputElement>);
|
|
34
|
+
onInput(): void;
|
|
35
|
+
validate(control: AbstractControl): ValidationErrors | null;
|
|
36
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<MaxDigits, never>;
|
|
37
|
+
static ɵdir: i0.ɵɵDirectiveDeclaration<MaxDigits, "[maxDigits]", never, { "maxDigits": { "alias": "maxDigits"; "required": false; }; }, {}, never, never, true, never>;
|
|
38
|
+
static ngAcceptInputType_maxDigits: unknown;
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
declare class DecimalLimit implements Validator {
|
|
42
|
+
private el;
|
|
43
|
+
decimalDigits: string | number;
|
|
44
|
+
constructor(el: ElementRef<HTMLInputElement>);
|
|
45
|
+
onInput(): void;
|
|
46
|
+
validate(control: AbstractControl): ValidationErrors | null;
|
|
47
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<DecimalLimit, never>;
|
|
48
|
+
static ɵdir: i0.ɵɵDirectiveDeclaration<DecimalLimit, "[decimalDigits]", never, { "decimalDigits": { "alias": "decimalDigits"; "required": false; }; }, {}, never, never, true, never>;
|
|
49
|
+
static ngAcceptInputType_decimalDigits: unknown;
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
declare class EmailCheck implements Validator {
|
|
53
|
+
private el;
|
|
54
|
+
private readonly emailRegex;
|
|
55
|
+
constructor(el: ElementRef<HTMLInputElement>);
|
|
56
|
+
onBlur(): void;
|
|
57
|
+
validate(control: AbstractControl): ValidationErrors | null;
|
|
58
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<EmailCheck, never>;
|
|
59
|
+
static ɵdir: i0.ɵɵDirectiveDeclaration<EmailCheck, "[emailCheck]", never, {}, {}, never, never, true, never>;
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
declare class PhoneNumber implements Validator {
|
|
63
|
+
private readonly pattern;
|
|
64
|
+
validate(control: AbstractControl): ValidationErrors | null;
|
|
65
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<PhoneNumber, never>;
|
|
66
|
+
static ɵdir: i0.ɵɵDirectiveDeclaration<PhoneNumber, "[phoneNumber]", never, {}, {}, never, never, true, never>;
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
declare class PasswordCheck implements Validator {
|
|
70
|
+
private readonly passwordRegex;
|
|
71
|
+
validate(control: AbstractControl): ValidationErrors | null;
|
|
72
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<PasswordCheck, never>;
|
|
73
|
+
static ɵdir: i0.ɵɵDirectiveDeclaration<PasswordCheck, "[passwordCheck]", never, {}, {}, never, never, true, never>;
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
declare class ContainsUppercase implements Validator {
|
|
77
|
+
private readonly pattern;
|
|
78
|
+
validate(control: AbstractControl): ValidationErrors | null;
|
|
79
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<ContainsUppercase, never>;
|
|
80
|
+
static ɵdir: i0.ɵɵDirectiveDeclaration<ContainsUppercase, "[containsUppercase]", never, {}, {}, never, never, true, never>;
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
declare class ContainsLowercase implements Validator {
|
|
84
|
+
private readonly pattern;
|
|
85
|
+
validate(control: AbstractControl): ValidationErrors | null;
|
|
86
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<ContainsLowercase, never>;
|
|
87
|
+
static ɵdir: i0.ɵɵDirectiveDeclaration<ContainsLowercase, "[containsLowercase]", never, {}, {}, never, never, true, never>;
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
declare class ContainsSpecialCharacter implements Validator {
|
|
91
|
+
private readonly pattern;
|
|
92
|
+
validate(control: AbstractControl): ValidationErrors | null;
|
|
93
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<ContainsSpecialCharacter, never>;
|
|
94
|
+
static ɵdir: i0.ɵɵDirectiveDeclaration<ContainsSpecialCharacter, "[containsSpecialCharacter]", never, {}, {}, never, never, true, never>;
|
|
95
|
+
}
|
|
96
|
+
|
|
97
|
+
declare class ConfirmPassword implements Validator {
|
|
98
|
+
passwordControlName: string;
|
|
99
|
+
validate(control: AbstractControl): ValidationErrors | null;
|
|
100
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<ConfirmPassword, never>;
|
|
101
|
+
static ɵdir: i0.ɵɵDirectiveDeclaration<ConfirmPassword, "[confirmPassword]", never, { "passwordControlName": { "alias": "confirmPassword"; "required": false; }; }, {}, never, never, true, never>;
|
|
102
|
+
}
|
|
103
|
+
|
|
104
|
+
declare class DateRange implements Validator {
|
|
105
|
+
startControlName: string;
|
|
106
|
+
endControlName: string;
|
|
107
|
+
validate(control: AbstractControl): ValidationErrors | null;
|
|
108
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<DateRange, never>;
|
|
109
|
+
static ɵdir: i0.ɵɵDirectiveDeclaration<DateRange, "[dateRange]", never, { "startControlName": { "alias": "dateRangeStart"; "required": false; }; "endControlName": { "alias": "dateRangeEnd"; "required": false; }; }, {}, never, never, true, never>;
|
|
110
|
+
}
|
|
111
|
+
|
|
112
|
+
export { AlphaNumeric, AlphaOnly, ConfirmPassword, ContainsLowercase, ContainsSpecialCharacter, ContainsUppercase, DateRange, DecimalLimit, EmailCheck, MaxDigits, PasswordCheck, PhoneNumber, RequiredTrimmed, SharedUi };
|