@aroobajaved/shared-ui 1.0.14 → 1.0.16

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.
@@ -1,5 +1,5 @@
1
1
  import * as i0 from '@angular/core';
2
- import { Directive, numberAttribute, HostListener, Input, forwardRef, Component } from '@angular/core';
2
+ import { Directive, forwardRef, numberAttribute, Input, HostListener, Component } from '@angular/core';
3
3
  import { NG_VALIDATORS } from '@angular/forms';
4
4
  import * as i1 from '@angular/common';
5
5
  import { CommonModule } from '@angular/common';
@@ -43,22 +43,19 @@ class AlphaOnly {
43
43
  pattern = /^[A-Za-z]+$/;
44
44
  validate(control) {
45
45
  const value = control.value;
46
- if (value === null || value === undefined) {
46
+ if (value === null || value === undefined || value === '') {
47
47
  return null;
48
48
  }
49
49
  if (typeof value !== 'string') {
50
50
  return null;
51
51
  }
52
- if (!this.pattern.test(value)) {
53
- return { alphaOnly: true };
54
- }
55
- return null;
52
+ return this.pattern.test(value) ? null : { alphaOnly: true };
56
53
  }
57
54
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: AlphaOnly, deps: [], target: i0.ɵɵFactoryTarget.Directive });
58
55
  static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.0.6", type: AlphaOnly, isStandalone: true, selector: "[alphaOnly]", providers: [
59
56
  {
60
57
  provide: NG_VALIDATORS,
61
- useExisting: AlphaOnly,
58
+ useExisting: forwardRef(() => AlphaOnly),
62
59
  multi: true,
63
60
  },
64
61
  ], ngImport: i0 });
@@ -71,7 +68,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.6", ngImpor
71
68
  providers: [
72
69
  {
73
70
  provide: NG_VALIDATORS,
74
- useExisting: AlphaOnly,
71
+ useExisting: forwardRef(() => AlphaOnly),
75
72
  multi: true,
76
73
  },
77
74
  ],
@@ -82,22 +79,19 @@ class AlphaNumeric {
82
79
  pattern = /^[A-Za-z0-9]+$/;
83
80
  validate(control) {
84
81
  const value = control.value;
85
- if (value === null || value === undefined) {
82
+ if (value === null || value === undefined || value === '') {
86
83
  return null;
87
84
  }
88
85
  if (typeof value !== 'string') {
89
86
  return null;
90
87
  }
91
- if (!this.pattern.test(value)) {
92
- return { alphaNumeric: true };
93
- }
94
- return null;
88
+ return this.pattern.test(value) ? null : { alphaNumeric: true };
95
89
  }
96
90
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: AlphaNumeric, deps: [], target: i0.ɵɵFactoryTarget.Directive });
97
91
  static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.0.6", type: AlphaNumeric, isStandalone: true, selector: "[alphaNumeric]", providers: [
98
92
  {
99
93
  provide: NG_VALIDATORS,
100
- useExisting: AlphaNumeric,
94
+ useExisting: forwardRef(() => AlphaNumeric),
101
95
  multi: true,
102
96
  },
103
97
  ], ngImport: i0 });
@@ -110,7 +104,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.6", ngImpor
110
104
  providers: [
111
105
  {
112
106
  provide: NG_VALIDATORS,
113
- useExisting: AlphaNumeric,
107
+ useExisting: forwardRef(() => AlphaNumeric),
114
108
  multi: true,
115
109
  },
116
110
  ],
@@ -118,41 +112,19 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.6", ngImpor
118
112
  }] });
119
113
 
120
114
  class MaxDigits {
121
- el;
122
115
  maxDigits = 0;
123
- constructor(el) {
124
- this.el = el;
125
- }
126
- onInput() {
127
- let value = this.el.nativeElement.value;
128
- value = value.replace(/[^0-9]/g, '');
129
- const limit = Number(this.maxDigits);
130
- if (limit > 0 && value.length > limit) {
131
- value = value.slice(0, limit);
132
- }
133
- this.el.nativeElement.value = value;
134
- }
135
116
  validate(control) {
136
- const value = String(control.value ?? '');
137
- const limit = Number(this.maxDigits);
138
- if (!value || limit <= 0)
117
+ const value = control.value;
118
+ if (!value || this.maxDigits <= 0)
139
119
  return null;
140
- const digitCount = value.replace(/\D/g, '').length;
141
- if (digitCount > limit) {
142
- return {
143
- maxDigits: {
144
- required: limit,
145
- actual: digitCount,
146
- },
147
- };
148
- }
149
- return null;
120
+ const digitCount = String(value).replace(/\D/g, '').length;
121
+ return digitCount > this.maxDigits ? { maxDigits: true } : null;
150
122
  }
151
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: MaxDigits, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive });
152
- 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: [
123
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: MaxDigits, deps: [], target: i0.ɵɵFactoryTarget.Directive });
124
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "16.1.0", version: "21.0.6", type: MaxDigits, isStandalone: true, selector: "[maxDigits]", inputs: { maxDigits: ["maxDigits", "maxDigits", numberAttribute] }, providers: [
153
125
  {
154
126
  provide: NG_VALIDATORS,
155
- useExisting: MaxDigits,
127
+ useExisting: forwardRef(() => MaxDigits),
156
128
  multi: true,
157
129
  },
158
130
  ], ngImport: i0 });
@@ -165,62 +137,33 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.6", ngImpor
165
137
  providers: [
166
138
  {
167
139
  provide: NG_VALIDATORS,
168
- useExisting: MaxDigits,
140
+ useExisting: forwardRef(() => MaxDigits),
169
141
  multi: true,
170
142
  },
171
143
  ],
172
144
  }]
173
- }], ctorParameters: () => [{ type: i0.ElementRef }], propDecorators: { maxDigits: [{
145
+ }], propDecorators: { maxDigits: [{
174
146
  type: Input,
175
147
  args: [{ transform: numberAttribute }]
176
- }], onInput: [{
177
- type: HostListener,
178
- args: ['input']
179
148
  }] } });
180
149
 
181
150
  class DecimalLimit {
182
- el;
183
151
  decimalDigits = 0;
184
- constructor(el) {
185
- this.el = el;
186
- }
187
- onInput() {
188
- let value = this.el.nativeElement.value;
189
- value = value.replace(/[^0-9.]/g, '');
190
- const parts = value.split('.');
191
- if (parts.length > 2) {
192
- value = parts[0] + '.' + parts.slice(1).join('');
193
- }
194
- const limit = Number(this.decimalDigits);
195
- if (limit > 0 && value.includes('.')) {
196
- const [int, dec] = value.split('.');
197
- value = int + '.' + dec.slice(0, limit);
198
- }
199
- this.el.nativeElement.value = value;
200
- }
201
152
  validate(control) {
202
- const value = String(control.value ?? '');
203
- const limit = Number(this.decimalDigits);
204
- if (!value || limit <= 0)
205
- return null;
206
- if (!value.includes('.'))
153
+ const value = control.value;
154
+ if (!value || this.decimalDigits <= 0)
207
155
  return null;
208
- const decimalPart = value.split('.')[1] ?? '';
209
- if (decimalPart.length > limit) {
210
- return {
211
- decimalDigits: {
212
- required: limit,
213
- actual: decimalPart.length,
214
- },
215
- };
156
+ const [, decimal] = String(value).split('.');
157
+ if (decimal && decimal.length > this.decimalDigits) {
158
+ return { decimalDigits: true };
216
159
  }
217
160
  return null;
218
161
  }
219
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: DecimalLimit, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive });
220
- 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: [
162
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: DecimalLimit, deps: [], target: i0.ɵɵFactoryTarget.Directive });
163
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "16.1.0", version: "21.0.6", type: DecimalLimit, isStandalone: true, selector: "[decimalDigits]", inputs: { decimalDigits: ["decimalDigits", "decimalDigits", numberAttribute] }, providers: [
221
164
  {
222
165
  provide: NG_VALIDATORS,
223
- useExisting: DecimalLimit,
166
+ useExisting: forwardRef(() => DecimalLimit),
224
167
  multi: true,
225
168
  },
226
169
  ], ngImport: i0 });
@@ -233,17 +176,14 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.6", ngImpor
233
176
  providers: [
234
177
  {
235
178
  provide: NG_VALIDATORS,
236
- useExisting: DecimalLimit,
179
+ useExisting: forwardRef(() => DecimalLimit),
237
180
  multi: true,
238
181
  },
239
182
  ],
240
183
  }]
241
- }], ctorParameters: () => [{ type: i0.ElementRef }], propDecorators: { decimalDigits: [{
184
+ }], propDecorators: { decimalDigits: [{
242
185
  type: Input,
243
186
  args: [{ transform: numberAttribute }]
244
- }], onInput: [{
245
- type: HostListener,
246
- args: ['input']
247
187
  }] } });
248
188
 
249
189
  class EmailCheck {
@@ -375,22 +315,19 @@ class ContainsUppercase {
375
315
  pattern = /[A-Z]/;
376
316
  validate(control) {
377
317
  const value = control.value;
378
- if (value === null || value === undefined) {
318
+ if (value === null || value === undefined || value === '') {
379
319
  return null;
380
320
  }
381
321
  if (typeof value !== 'string') {
382
322
  return null;
383
323
  }
384
- if (!this.pattern.test(value)) {
385
- return { containsUppercase: true };
386
- }
387
- return null;
324
+ return this.pattern.test(value) ? null : { containsUppercase: true };
388
325
  }
389
326
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: ContainsUppercase, deps: [], target: i0.ɵɵFactoryTarget.Directive });
390
327
  static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.0.6", type: ContainsUppercase, isStandalone: true, selector: "[containsUppercase]", providers: [
391
328
  {
392
329
  provide: NG_VALIDATORS,
393
- useExisting: ContainsUppercase,
330
+ useExisting: forwardRef(() => ContainsUppercase),
394
331
  multi: true,
395
332
  },
396
333
  ], ngImport: i0 });
@@ -403,7 +340,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.6", ngImpor
403
340
  providers: [
404
341
  {
405
342
  provide: NG_VALIDATORS,
406
- useExisting: ContainsUppercase,
343
+ useExisting: forwardRef(() => ContainsUppercase),
407
344
  multi: true,
408
345
  },
409
346
  ],
@@ -414,22 +351,19 @@ class ContainsLowercase {
414
351
  pattern = /[a-z]/;
415
352
  validate(control) {
416
353
  const value = control.value;
417
- if (value === null || value === undefined) {
354
+ if (value === null || value === undefined || value === '') {
418
355
  return null;
419
356
  }
420
357
  if (typeof value !== 'string') {
421
358
  return null;
422
359
  }
423
- if (!this.pattern.test(value)) {
424
- return { containsLowercase: true };
425
- }
426
- return null;
360
+ return this.pattern.test(value) ? null : { containsLowercase: true };
427
361
  }
428
362
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: ContainsLowercase, deps: [], target: i0.ɵɵFactoryTarget.Directive });
429
363
  static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.0.6", type: ContainsLowercase, isStandalone: true, selector: "[containsLowercase]", providers: [
430
364
  {
431
365
  provide: NG_VALIDATORS,
432
- useExisting: ContainsLowercase,
366
+ useExisting: forwardRef(() => ContainsLowercase),
433
367
  multi: true,
434
368
  },
435
369
  ], ngImport: i0 });
@@ -442,7 +376,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.6", ngImpor
442
376
  providers: [
443
377
  {
444
378
  provide: NG_VALIDATORS,
445
- useExisting: ContainsLowercase,
379
+ useExisting: forwardRef(() => ContainsLowercase),
446
380
  multi: true,
447
381
  },
448
382
  ],
@@ -492,29 +426,28 @@ class DateRange {
492
426
  startControlName;
493
427
  endControlName;
494
428
  validate(control) {
495
- if (!control || !control.get)
429
+ if (!control || typeof control.get !== 'function') {
496
430
  return null;
431
+ }
497
432
  const start = control.get(this.startControlName)?.value;
498
433
  const end = control.get(this.endControlName)?.value;
499
- if (!start || !end)
434
+ if (!start || !end) {
500
435
  return null;
436
+ }
501
437
  const startDate = new Date(start);
502
438
  const endDate = new Date(end);
503
439
  if (isNaN(startDate.getTime()) || isNaN(endDate.getTime())) {
504
440
  return null;
505
441
  }
506
- if (endDate < startDate) {
507
- return { dateRange: true };
508
- }
509
- return null;
442
+ return endDate < startDate ? { dateRange: true } : null;
510
443
  }
511
444
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: DateRange, deps: [], target: i0.ɵɵFactoryTarget.Directive });
512
445
  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: [
513
446
  {
514
447
  provide: NG_VALIDATORS,
515
- useExisting: DateRange,
516
- multi: true
517
- }
448
+ useExisting: forwardRef(() => DateRange),
449
+ multi: true,
450
+ },
518
451
  ], ngImport: i0 });
519
452
  }
520
453
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: DateRange, decorators: [{
@@ -525,10 +458,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.6", ngImpor
525
458
  providers: [
526
459
  {
527
460
  provide: NG_VALIDATORS,
528
- useExisting: DateRange,
529
- multi: true
530
- }
531
- ]
461
+ useExisting: forwardRef(() => DateRange),
462
+ multi: true,
463
+ },
464
+ ],
532
465
  }]
533
466
  }], propDecorators: { startControlName: [{
534
467
  type: Input,
@@ -540,24 +473,36 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.6", ngImpor
540
473
 
541
474
  class CommaFormat {
542
475
  el;
543
- allowDecimal = false;
476
+ MAX_DIGITS = 10;
477
+ DECIMAL_DIGITS = 2;
544
478
  constructor(el) {
545
479
  this.el = el;
546
480
  }
547
481
  onInput() {
548
- let value = this.el.nativeElement.value;
482
+ const input = this.el.nativeElement;
483
+ let value = input.value;
549
484
  value = value.replace(/,/g, '');
550
- const regex = this.allowDecimal ? /[^0-9.]/g : /[^0-9]/g;
551
- value = value.replace(regex, '');
485
+ value = value.replace(/[^0-9.]/g, '');
552
486
  const parts = value.split('.');
553
487
  let integerPart = parts[0];
554
- const decimalPart = parts[1];
555
- integerPart = integerPart.replace(/\B(?=(\d{3})+(?!\d))/g, ',');
556
- this.el.nativeElement.value =
557
- decimalPart !== undefined ? `${integerPart}.${decimalPart}` : integerPart;
488
+ let decimalPart = parts[1] ?? '';
489
+ decimalPart = decimalPart.slice(0, this.DECIMAL_DIGITS);
490
+ const totalDigits = (integerPart + decimalPart).length;
491
+ if (totalDigits > this.MAX_DIGITS) {
492
+ const allowed = this.MAX_DIGITS - decimalPart.length;
493
+ integerPart = integerPart.slice(0, allowed);
494
+ }
495
+ const formattedInteger = integerPart.replace(/\B(?=(\d{3})+(?!\d))/g, ',');
496
+ const formattedValue = decimalPart.length > 0
497
+ ? `${formattedInteger}.${decimalPart}`
498
+ : formattedInteger;
499
+ if (input.value !== formattedValue) {
500
+ input.value = formattedValue;
501
+ input.dispatchEvent(new Event('input', { bubbles: true }));
502
+ }
558
503
  }
559
504
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: CommaFormat, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive });
560
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.0.6", type: CommaFormat, isStandalone: true, selector: "[CommaFormat]", inputs: { allowDecimal: "allowDecimal" }, host: { listeners: { "input": "onInput()" } }, ngImport: i0 });
505
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.0.6", type: CommaFormat, isStandalone: true, selector: "[CommaFormat]", host: { listeners: { "input": "onInput()" } }, ngImport: i0 });
561
506
  }
562
507
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: CommaFormat, decorators: [{
563
508
  type: Directive,
@@ -565,9 +510,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.6", ngImpor
565
510
  selector: '[CommaFormat]',
566
511
  standalone: true,
567
512
  }]
568
- }], ctorParameters: () => [{ type: i0.ElementRef }], propDecorators: { allowDecimal: [{
569
- type: Input
570
- }], onInput: [{
513
+ }], ctorParameters: () => [{ type: i0.ElementRef }], propDecorators: { onInput: [{
571
514
  type: HostListener,
572
515
  args: ['input']
573
516
  }] } });
@@ -1 +1 @@
1
- {"version":3,"file":"aroobajaved-shared-ui.mjs","sources":["../../../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/date-range/date-range.ts","../../../projects/shared-ui/src/lib/validations/comma-format/comma-format.ts","../../../projects/shared-ui/src/lib/shared-ui.ts","../../../projects/shared-ui/src/lib/core/error-message/error-message.ts","../../../projects/shared-ui/src/lib/core/form-error/form-error.ts","../../../projects/shared-ui/src/lib/core/form-error/form-error.html","../../../projects/shared-ui/src/public-api.ts","../../../projects/shared-ui/src/aroobajaved-shared-ui.ts"],"sourcesContent":["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, forwardRef } 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: forwardRef(() => 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 validate(control: AbstractControl): ValidationErrors | null {\r\n const value = control.value;\r\n\r\n if (value === null || value === undefined || value === '') {\r\n return null;\r\n }\r\n\r\n if (typeof value !== 'string') {\r\n return { emailCheck: true };\r\n }\r\n\r\n return this.emailRegex.test(value) ? null : { emailCheck: true };\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, forwardRef } from '@angular/core';\r\nimport { AbstractControl, NG_VALIDATORS, ValidationErrors, Validator } from '@angular/forms';\r\n\r\n@Directive({\r\n selector: '[passwordCheck]',\r\n standalone: true,\r\n providers: [\r\n {\r\n provide: NG_VALIDATORS,\r\n useExisting: forwardRef(() => PasswordCheck),\r\n multi: true,\r\n },\r\n ],\r\n})\r\nexport class PasswordCheck implements Validator {\r\n private readonly passwordRegex = /^(?=.*[A-Za-z])(?=.*\\d).{8,}$/;\r\n validate(control: AbstractControl): ValidationErrors | null {\r\n const value = control.value;\r\n\r\n if (value === null || value === undefined || value === '') {\r\n return null;\r\n }\r\n\r\n if (typeof value !== 'string') {\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 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: '[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","import { Directive, ElementRef, HostListener, Input } from '@angular/core';\r\n\r\n@Directive({\r\n selector: '[CommaFormat]',\r\n standalone: true,\r\n})\r\nexport class CommaFormat {\r\n @Input() allowDecimal = false;\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\r\n value = value.replace(/,/g, '');\r\n\r\n const regex = this.allowDecimal ? /[^0-9.]/g : /[^0-9]/g;\r\n value = value.replace(regex, '');\r\n\r\n const parts = value.split('.');\r\n let integerPart = parts[0];\r\n const decimalPart = parts[1];\r\n\r\n integerPart = integerPart.replace(/\\B(?=(\\d{3})+(?!\\d))/g, ',');\r\n this.el.nativeElement.value =\r\n decimalPart !== undefined ? `${integerPart}.${decimalPart}` : integerPart;\r\n }\r\n}\r\n","import { Component } from '@angular/core';\r\nimport { RequiredTrimmed } from './validations/required-trimmed/required-trimmed';\r\nimport { AlphaOnly } from './validations/alpha-only/alpha-only';\r\nimport { AlphaNumeric } from './validations/alpha-numeric/alpha-numeric';\r\nimport { MaxDigits } from './validations/max-digits/max-digits';\r\nimport { DecimalLimit } from './validations/decimal-limit/decimal-limit';\r\nimport { EmailCheck } from './validations/email-check/email-check';\r\nimport { PhoneNumber } from './validations/phone-number/phone-number';\r\nimport { PasswordCheck } from './validations/password-check/password-check';\r\nimport { ContainsUppercase } from './validations/contains-uppercase/contains-uppercase';\r\nimport { ContainsLowercase } from './validations/contains-lowercase/contains-lowercase';\r\nimport { ContainsSpecialCharacter } from './validations/contains-special-character/contains-special-character';\r\nimport { DateRange } from './validations/date-range/date-range';\r\nimport { FormError } from './core/form-error/form-error';\r\nimport { CommaFormat } from './validations/comma-format/comma-format';\r\n\r\n\r\n\r\n\r\nexport const SharedUiValidators = [\r\n RequiredTrimmed,\r\n AlphaOnly,\r\n AlphaNumeric,\r\n MaxDigits,\r\n DecimalLimit,\r\n EmailCheck,\r\n PhoneNumber,\r\n PasswordCheck,\r\n ContainsUppercase,\r\n ContainsLowercase,\r\n ContainsSpecialCharacter,\r\n DateRange,\r\n CommaFormat\r\n\r\n] as const; \r\n\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\n\r\n\r\n\r\nexport class SharedUi {\r\n\r\n}\r\n","\r\nexport const ERROR_MESSAGES: Record<string, (e?: any) => string> = {\r\n required: () => 'This field is required',\r\n requiredTrimmed: () => 'This field cannot be empty',\r\n email: () => 'Invalid email address',\r\n phoneNumber: () => 'Invalid phone number',\r\n\r\n alphaOnly: () => 'Only alphabetic characters are allowed',\r\n alphaNumeric: () => 'Only alphanumeric characters are allowed',\r\n\r\n maxDigits: e => `Maximum ${e.required} digits allowed`,\r\n decimalLimit: e => `Maximum ${e.limit} decimal places allowed`,\r\n\r\n containsLowercase: () => 'At least one lowercase letter is required',\r\n containsUppercase: () => 'At least one uppercase letter is required',\r\n containsSpecialChar: () => 'At least one special character is required',\r\n\r\n passwordCheck: () => 'Password does not meet strength requirements',\r\n passwordMismatch: () => 'Passwords do not match',\r\n dateRange: () => 'End date must be after start date'\r\n};","import { Component, Input } from '@angular/core';\r\nimport { AbstractControl, ValidationErrors } from '@angular/forms';\r\nimport { ERROR_MESSAGES } from '../error-message/error-message';\r\nimport { CommonModule } from '@angular/common';\r\n\r\n@Component({\r\n selector: 'lib-form-error',\r\n standalone: true,\r\n imports: [CommonModule],\r\n templateUrl: './form-error.html',\r\n styleUrls: ['./form-error.css'],\r\n})\r\nexport class FormError {\r\n\r\n @Input() control!: AbstractControl | null;\r\n\r\n get errorMessage(): string | null {\r\n if (!this.control || !this.control.touched || !this.control.errors) {\r\n return null;\r\n }\r\n\r\n return this.resolveError(this.control.errors);\r\n }\r\n\r\n private resolveError(errors: ValidationErrors): string {\r\n const key = Object.keys(errors)[0];\r\n const resolver = ERROR_MESSAGES[key];\r\n\r\n return resolver ? resolver(errors[key]) : 'Invalid value';\r\n }\r\n}\r\n","<span class=\"lib-error\" *ngIf=\"errorMessage\">\r\n {{ errorMessage }}\r\n</span>\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/date-range/date-range';\r\nexport * from './lib/core/error-message/error-message';\r\nexport * from './lib/core/form-error/form-error'\r\nexport * from './lib/validations/comma-format/comma-format';\r\n\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"aroobajaved-shared-ui.mjs","sources":["../../../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/date-range/date-range.ts","../../../projects/shared-ui/src/lib/validations/comma-format/comma-format.ts","../../../projects/shared-ui/src/lib/shared-ui.ts","../../../projects/shared-ui/src/lib/core/error-message/error-message.ts","../../../projects/shared-ui/src/lib/core/form-error/form-error.ts","../../../projects/shared-ui/src/lib/core/form-error/form-error.html","../../../projects/shared-ui/src/public-api.ts","../../../projects/shared-ui/src/aroobajaved-shared-ui.ts"],"sourcesContent":["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, forwardRef } 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: '[alphaOnly]',\r\n standalone: true,\r\n providers: [\r\n {\r\n provide: NG_VALIDATORS,\r\n useExisting: forwardRef(() => 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 || value === '') {\r\n return null;\r\n }\r\n\r\n if (typeof value !== 'string') {\r\n return null;\r\n }\r\n\r\n return this.pattern.test(value) ? null : { alphaOnly: true };\r\n }\r\n}\r\n","import { Directive, forwardRef } 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: '[alphaNumeric]',\r\n standalone: true,\r\n providers: [\r\n {\r\n provide: NG_VALIDATORS,\r\n useExisting: forwardRef(() => 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 || value === '') {\r\n return null;\r\n }\r\n\r\n if (typeof value !== 'string') {\r\n return null;\r\n }\r\n\r\n return this.pattern.test(value) ? null : { alphaNumeric: true };\r\n }\r\n}\r\n","import { Directive, Input, forwardRef, numberAttribute } 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: '[maxDigits]',\r\n standalone: true,\r\n providers: [\r\n {\r\n provide: NG_VALIDATORS,\r\n useExisting: forwardRef(() => 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 = 0;\r\n\r\n validate(control: AbstractControl): ValidationErrors | null {\r\n const value = control.value;\r\n\r\n if (!value || this.maxDigits <= 0) return null;\r\n\r\n const digitCount = String(value).replace(/\\D/g, '').length;\r\n\r\n return digitCount > this.maxDigits ? { maxDigits: true } : null;\r\n }\r\n}\r\n","import { Directive, Input, forwardRef, numberAttribute } 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: '[decimalDigits]',\r\n standalone: true,\r\n providers: [\r\n {\r\n provide: NG_VALIDATORS,\r\n useExisting: forwardRef(() => 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 = 0;\r\n\r\n validate(control: AbstractControl): ValidationErrors | null {\r\n const value = control.value;\r\n\r\n if (!value || this.decimalDigits <= 0) return null;\r\n\r\n const [, decimal] = String(value).split('.');\r\n\r\n if (decimal && decimal.length > this.decimalDigits) {\r\n return { decimalDigits: true };\r\n }\r\n\r\n return null;\r\n }\r\n}\r\n","import { Directive, forwardRef } 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: forwardRef(() => 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 validate(control: AbstractControl): ValidationErrors | null {\r\n const value = control.value;\r\n\r\n if (value === null || value === undefined || value === '') {\r\n return null;\r\n }\r\n\r\n if (typeof value !== 'string') {\r\n return { emailCheck: true };\r\n }\r\n\r\n return this.emailRegex.test(value) ? null : { emailCheck: true };\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, forwardRef } from '@angular/core';\r\nimport { AbstractControl, NG_VALIDATORS, ValidationErrors, Validator } from '@angular/forms';\r\n\r\n@Directive({\r\n selector: '[passwordCheck]',\r\n standalone: true,\r\n providers: [\r\n {\r\n provide: NG_VALIDATORS,\r\n useExisting: forwardRef(() => PasswordCheck),\r\n multi: true,\r\n },\r\n ],\r\n})\r\nexport class PasswordCheck implements Validator {\r\n private readonly passwordRegex = /^(?=.*[A-Za-z])(?=.*\\d).{8,}$/;\r\n validate(control: AbstractControl): ValidationErrors | null {\r\n const value = control.value;\r\n\r\n if (value === null || value === undefined || value === '') {\r\n return null;\r\n }\r\n\r\n if (typeof value !== 'string') {\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 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, forwardRef } 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: '[containsUppercase]',\r\n standalone: true,\r\n providers: [\r\n {\r\n provide: NG_VALIDATORS,\r\n useExisting: forwardRef(() => 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 || value === '') {\r\n return null;\r\n }\r\n\r\n if (typeof value !== 'string') {\r\n return null;\r\n }\r\n\r\n return this.pattern.test(value) ? null : { containsUppercase: true };\r\n }\r\n}\r\n","import { Directive, forwardRef } 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: '[containsLowercase]',\r\n standalone: true,\r\n providers: [\r\n {\r\n provide: NG_VALIDATORS,\r\n useExisting: forwardRef(() => 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 || value === '') {\r\n return null;\r\n }\r\n\r\n if (typeof value !== 'string') {\r\n return null;\r\n }\r\n\r\n return this.pattern.test(value) ? null : { containsLowercase: true };\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, forwardRef } 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: forwardRef(() => DateRange),\r\n multi: true,\r\n },\r\n ],\r\n})\r\nexport class DateRange implements Validator {\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 || typeof (control as any).get !== 'function') {\r\n return null;\r\n }\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) {\r\n return null;\r\n }\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 return endDate < startDate ? { dateRange: true } : null;\r\n }\r\n}\r\n","import { Directive, ElementRef, HostListener } from '@angular/core';\r\n\r\n@Directive({\r\n selector: '[CommaFormat]',\r\n standalone: true,\r\n})\r\nexport class CommaFormat {\r\n private readonly MAX_DIGITS = 10;\r\n private readonly DECIMAL_DIGITS = 2;\r\n\r\n constructor(private el: ElementRef<HTMLInputElement>) {}\r\n\r\n @HostListener('input')\r\n onInput(): void {\r\n const input = this.el.nativeElement;\r\n let value = input.value;\r\n\r\n value = value.replace(/,/g, '');\r\n value = value.replace(/[^0-9.]/g, '');\r\n\r\n const parts = value.split('.');\r\n let integerPart = parts[0];\r\n let decimalPart = parts[1] ?? '';\r\n\r\n decimalPart = decimalPart.slice(0, this.DECIMAL_DIGITS);\r\n\r\n const totalDigits = (integerPart + decimalPart).length;\r\n if (totalDigits > this.MAX_DIGITS) {\r\n const allowed = this.MAX_DIGITS - decimalPart.length;\r\n integerPart = integerPart.slice(0, allowed);\r\n }\r\n\r\n const formattedInteger =\r\n integerPart.replace(/\\B(?=(\\d{3})+(?!\\d))/g, ',');\r\n\r\n const formattedValue =\r\n decimalPart.length > 0\r\n ? `${formattedInteger}.${decimalPart}`\r\n : formattedInteger;\r\n\r\n if (input.value !== formattedValue) {\r\n input.value = formattedValue;\r\n input.dispatchEvent(new Event('input', { bubbles: true }));\r\n }\r\n }\r\n}\r\n","import { Component } from '@angular/core';\r\nimport { RequiredTrimmed } from './validations/required-trimmed/required-trimmed';\r\nimport { AlphaOnly } from './validations/alpha-only/alpha-only';\r\nimport { AlphaNumeric } from './validations/alpha-numeric/alpha-numeric';\r\nimport { MaxDigits } from './validations/max-digits/max-digits';\r\nimport { DecimalLimit } from './validations/decimal-limit/decimal-limit';\r\nimport { EmailCheck } from './validations/email-check/email-check';\r\nimport { PhoneNumber } from './validations/phone-number/phone-number';\r\nimport { PasswordCheck } from './validations/password-check/password-check';\r\nimport { ContainsUppercase } from './validations/contains-uppercase/contains-uppercase';\r\nimport { ContainsLowercase } from './validations/contains-lowercase/contains-lowercase';\r\nimport { ContainsSpecialCharacter } from './validations/contains-special-character/contains-special-character';\r\nimport { DateRange } from './validations/date-range/date-range';\r\nimport { FormError } from './core/form-error/form-error';\r\nimport { CommaFormat } from './validations/comma-format/comma-format';\r\n\r\n\r\n\r\n\r\nexport const SharedUiValidators = [\r\n RequiredTrimmed,\r\n AlphaOnly,\r\n AlphaNumeric,\r\n MaxDigits,\r\n DecimalLimit,\r\n EmailCheck,\r\n PhoneNumber,\r\n PasswordCheck,\r\n ContainsUppercase,\r\n ContainsLowercase,\r\n ContainsSpecialCharacter,\r\n DateRange,\r\n CommaFormat\r\n\r\n] as const; \r\n\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\n\r\n\r\n\r\nexport class SharedUi {\r\n\r\n}\r\n","\r\nexport const ERROR_MESSAGES: Record<string, (e?: any) => string> = {\r\n required: () => 'This field is required',\r\n requiredTrimmed: () => 'This field cannot be empty',\r\n email: () => 'Invalid email address',\r\n phoneNumber: () => 'Invalid phone number',\r\n\r\n alphaOnly: () => 'Only alphabetic characters are allowed',\r\n alphaNumeric: () => 'Only alphanumeric characters are allowed',\r\n\r\n maxDigits: e => `Maximum ${e.required} digits allowed`,\r\n decimalLimit: e => `Maximum ${e.limit} decimal places allowed`,\r\n\r\n containsLowercase: () => 'At least one lowercase letter is required',\r\n containsUppercase: () => 'At least one uppercase letter is required',\r\n containsSpecialChar: () => 'At least one special character is required',\r\n\r\n passwordCheck: () => 'Password does not meet strength requirements',\r\n passwordMismatch: () => 'Passwords do not match',\r\n dateRange: () => 'End date must be after start date'\r\n};","import { Component, Input } from '@angular/core';\r\nimport { AbstractControl, ValidationErrors } from '@angular/forms';\r\nimport { ERROR_MESSAGES } from '../error-message/error-message';\r\nimport { CommonModule } from '@angular/common';\r\n\r\n@Component({\r\n selector: 'lib-form-error',\r\n standalone: true,\r\n imports: [CommonModule],\r\n templateUrl: './form-error.html',\r\n styleUrls: ['./form-error.css'],\r\n})\r\nexport class FormError {\r\n\r\n @Input() control!: AbstractControl | null;\r\n\r\n get errorMessage(): string | null {\r\n if (!this.control || !this.control.touched || !this.control.errors) {\r\n return null;\r\n }\r\n\r\n return this.resolveError(this.control.errors);\r\n }\r\n\r\n private resolveError(errors: ValidationErrors): string {\r\n const key = Object.keys(errors)[0];\r\n const resolver = ERROR_MESSAGES[key];\r\n\r\n return resolver ? resolver(errors[key]) : 'Invalid value';\r\n }\r\n}\r\n","<span class=\"lib-error\" *ngIf=\"errorMessage\">\r\n {{ errorMessage }}\r\n</span>\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/date-range/date-range';\r\nexport * from './lib/core/error-message/error-message';\r\nexport * from './lib/core/form-error/form-error'\r\nexport * from './lib/validations/comma-format/comma-format';\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 CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@aroobajaved/shared-ui",
3
- "version": "1.0.14",
3
+ "version": "1.0.16",
4
4
  "description": "Reusable Angular input validation library",
5
5
  "author": "Arooba Javed",
6
6
  "license": "MIT",
@@ -23,10 +23,7 @@ declare class AlphaNumeric implements Validator {
23
23
  }
24
24
 
25
25
  declare class MaxDigits implements Validator {
26
- private el;
27
- maxDigits: string | number;
28
- constructor(el: ElementRef<HTMLInputElement>);
29
- onInput(): void;
26
+ maxDigits: number;
30
27
  validate(control: AbstractControl): ValidationErrors | null;
31
28
  static ɵfac: i0.ɵɵFactoryDeclaration<MaxDigits, never>;
32
29
  static ɵdir: i0.ɵɵDirectiveDeclaration<MaxDigits, "[maxDigits]", never, { "maxDigits": { "alias": "maxDigits"; "required": false; }; }, {}, never, never, true, never>;
@@ -34,10 +31,7 @@ declare class MaxDigits implements Validator {
34
31
  }
35
32
 
36
33
  declare class DecimalLimit implements Validator {
37
- private el;
38
- decimalDigits: string | number;
39
- constructor(el: ElementRef<HTMLInputElement>);
40
- onInput(): void;
34
+ decimalDigits: number;
41
35
  validate(control: AbstractControl): ValidationErrors | null;
42
36
  static ɵfac: i0.ɵɵFactoryDeclaration<DecimalLimit, never>;
43
37
  static ɵdir: i0.ɵɵDirectiveDeclaration<DecimalLimit, "[decimalDigits]", never, { "decimalDigits": { "alias": "decimalDigits"; "required": false; }; }, {}, never, never, true, never>;
@@ -96,11 +90,12 @@ declare class DateRange implements Validator {
96
90
 
97
91
  declare class CommaFormat {
98
92
  private el;
99
- allowDecimal: boolean;
93
+ private readonly MAX_DIGITS;
94
+ private readonly DECIMAL_DIGITS;
100
95
  constructor(el: ElementRef<HTMLInputElement>);
101
96
  onInput(): void;
102
97
  static ɵfac: i0.ɵɵFactoryDeclaration<CommaFormat, never>;
103
- static ɵdir: i0.ɵɵDirectiveDeclaration<CommaFormat, "[CommaFormat]", never, { "allowDecimal": { "alias": "allowDecimal"; "required": false; }; }, {}, never, never, true, never>;
98
+ static ɵdir: i0.ɵɵDirectiveDeclaration<CommaFormat, "[CommaFormat]", never, {}, {}, never, never, true, never>;
104
99
  }
105
100
 
106
101
  declare const SharedUiValidators: readonly [typeof RequiredTrimmed, typeof AlphaOnly, typeof AlphaNumeric, typeof MaxDigits, typeof DecimalLimit, typeof EmailCheck, typeof PhoneNumber, typeof PasswordCheck, typeof ContainsUppercase, typeof ContainsLowercase, typeof ContainsSpecialCharacter, typeof DateRange, typeof CommaFormat];