chrv-components 0.0.1

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.
Files changed (39) hide show
  1. package/README.md +25 -0
  2. package/chrv-components-0.0.1.tgz +0 -0
  3. package/esm2020/chrv-components.mjs +5 -0
  4. package/esm2020/lib/chr-breadcrumb/breadcrumb.component.mjs +22 -0
  5. package/esm2020/lib/chr-button/chr-button.component.mjs +46 -0
  6. package/esm2020/lib/chr-checkbox/chr-checkbox.component.mjs +37 -0
  7. package/esm2020/lib/chr-components.module.mjs +117 -0
  8. package/esm2020/lib/chr-delete-modal/chr-delete-modal.component.mjs +22 -0
  9. package/esm2020/lib/chr-form/chr-form.component.mjs +132 -0
  10. package/esm2020/lib/chr-form/chr-validators/decimal-validator.mjs +58 -0
  11. package/esm2020/lib/chr-form/chr-validators/max-date-validator.mjs +54 -0
  12. package/esm2020/lib/chr-form/chr-validators/type-validator.mjs +52 -0
  13. package/esm2020/lib/chr-search-select/chr-search-select.component.mjs +136 -0
  14. package/esm2020/lib/chr-searchbar/chr-searchbar.component.mjs +29 -0
  15. package/esm2020/lib/chr-separator/chr-separator.component.mjs +11 -0
  16. package/esm2020/lib/chr-table/chr-table.component.mjs +58 -0
  17. package/esm2020/lib/chr-table-header-cell/chr-table-header-cell.component.mjs +49 -0
  18. package/esm2020/public-api.mjs +18 -0
  19. package/fesm2015/chrv-components.mjs +774 -0
  20. package/fesm2015/chrv-components.mjs.map +1 -0
  21. package/fesm2020/chrv-components.mjs +768 -0
  22. package/fesm2020/chrv-components.mjs.map +1 -0
  23. package/index.d.ts +5 -0
  24. package/lib/chr-breadcrumb/breadcrumb.component.d.ts +15 -0
  25. package/lib/chr-button/chr-button.component.d.ts +17 -0
  26. package/lib/chr-checkbox/chr-checkbox.component.d.ts +13 -0
  27. package/lib/chr-components.module.d.ts +28 -0
  28. package/lib/chr-delete-modal/chr-delete-modal.component.d.ts +11 -0
  29. package/lib/chr-form/chr-form.component.d.ts +57 -0
  30. package/lib/chr-form/chr-validators/decimal-validator.d.ts +10 -0
  31. package/lib/chr-form/chr-validators/max-date-validator.d.ts +10 -0
  32. package/lib/chr-form/chr-validators/type-validator.d.ts +10 -0
  33. package/lib/chr-search-select/chr-search-select.component.d.ts +44 -0
  34. package/lib/chr-searchbar/chr-searchbar.component.d.ts +14 -0
  35. package/lib/chr-separator/chr-separator.component.d.ts +5 -0
  36. package/lib/chr-table/chr-table.component.d.ts +38 -0
  37. package/lib/chr-table-header-cell/chr-table-header-cell.component.d.ts +16 -0
  38. package/package.json +31 -0
  39. package/public-api.d.ts +14 -0
@@ -0,0 +1,58 @@
1
+ import { Directive, Input, Injectable } from '@angular/core';
2
+ import { NG_VALIDATORS, } from '@angular/forms';
3
+ import * as i0 from "@angular/core";
4
+ export class DecimalValidatorDirective {
5
+ validate(control) {
6
+ return this.amount ? decimal(this.amount)(control) : null;
7
+ }
8
+ }
9
+ DecimalValidatorDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: DecimalValidatorDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
10
+ DecimalValidatorDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.10", type: DecimalValidatorDirective, selector: "[app-decimal]", inputs: { amount: "amount" }, providers: [
11
+ {
12
+ provide: NG_VALIDATORS,
13
+ useExisting: DecimalValidatorDirective,
14
+ multi: true,
15
+ },
16
+ ], ngImport: i0 });
17
+ DecimalValidatorDirective.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: DecimalValidatorDirective, providedIn: 'root' });
18
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: DecimalValidatorDirective, decorators: [{
19
+ type: Injectable,
20
+ args: [{ providedIn: 'root' }]
21
+ }, {
22
+ type: Directive,
23
+ args: [{
24
+ selector: '[app-decimal]',
25
+ providers: [
26
+ {
27
+ provide: NG_VALIDATORS,
28
+ useExisting: DecimalValidatorDirective,
29
+ multi: true,
30
+ },
31
+ ],
32
+ }]
33
+ }], propDecorators: { amount: [{
34
+ type: Input
35
+ }] } });
36
+ export function decimal(amount) {
37
+ return (control) => {
38
+ const value = control.value;
39
+ if (!value) {
40
+ return null;
41
+ }
42
+ let isTooLong = false;
43
+ const str = `${value}`;
44
+ isTooLong =
45
+ str.indexOf(',') != -1
46
+ ? (str.split(',')[1] ? str.split(',')[1].length : 0) > amount
47
+ : str.indexOf('.') != -1
48
+ ? (str.split('.')[1] ? str.split('.')[1].length : 0) > amount
49
+ : false;
50
+ return isTooLong
51
+ ? {
52
+ decimal: true,
53
+ max: amount,
54
+ }
55
+ : null;
56
+ };
57
+ }
58
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVjaW1hbC12YWxpZGF0b3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jaHJ2LWNvbXBvbmVudHMvc3JjL2xpYi9jaHItZm9ybS9jaHItdmFsaWRhdG9ycy9kZWNpbWFsLXZhbGlkYXRvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFjLEtBQUssRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekUsT0FBTyxFQUVMLGFBQWEsR0FJZCxNQUFNLGdCQUFnQixDQUFDOztBQWF4QixNQUFNLE9BQU8seUJBQXlCO0lBR3BDLFFBQVEsQ0FBQyxPQUF3QjtRQUMvQixPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztJQUM1RCxDQUFDOzt1SEFMVSx5QkFBeUI7MkdBQXpCLHlCQUF5QixzRUFSekI7UUFDVDtZQUNFLE9BQU8sRUFBRSxhQUFhO1lBQ3RCLFdBQVcsRUFBRSx5QkFBeUI7WUFDdEMsS0FBSyxFQUFFLElBQUk7U0FDWjtLQUNGOzJIQUVVLHlCQUF5QixjQVhaLE1BQU07NEZBV25CLHlCQUF5QjtrQkFYckMsVUFBVTttQkFBQyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUU7O2tCQUNqQyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxlQUFlO29CQUN6QixTQUFTLEVBQUU7d0JBQ1Q7NEJBQ0UsT0FBTyxFQUFFLGFBQWE7NEJBQ3RCLFdBQVcsMkJBQTJCOzRCQUN0QyxLQUFLLEVBQUUsSUFBSTt5QkFDWjtxQkFDRjtpQkFDRjs4QkFFVSxNQUFNO3NCQUFkLEtBQUs7O0FBT1IsTUFBTSxVQUFVLE9BQU8sQ0FBQyxNQUFjO0lBQ3BDLE9BQU8sQ0FBQyxPQUF3QixFQUEyQixFQUFFO1FBQzNELE1BQU0sS0FBSyxHQUFHLE9BQU8sQ0FBQyxLQUFLLENBQUM7UUFFNUIsSUFBSSxDQUFDLEtBQUssRUFBRTtZQUNWLE9BQU8sSUFBSSxDQUFDO1NBQ2I7UUFFRCxJQUFJLFNBQVMsR0FBRyxLQUFLLENBQUM7UUFFdEIsTUFBTSxHQUFHLEdBQUcsR0FBRyxLQUFLLEVBQUUsQ0FBQztRQUN2QixTQUFTO1lBQ1AsR0FBRyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUM7Z0JBQ3BCLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxNQUFNO2dCQUM3RCxDQUFDLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUM7b0JBQ3hCLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxNQUFNO29CQUM3RCxDQUFDLENBQUMsS0FBSyxDQUFDO1FBRVosT0FBTyxTQUFTO1lBQ2QsQ0FBQyxDQUFFO2dCQUNDLE9BQU8sRUFBRSxJQUFJO2dCQUNiLEdBQUcsRUFBRSxNQUFNO2FBQ1M7WUFDeEIsQ0FBQyxDQUFDLElBQUksQ0FBQztJQUNYLENBQUMsQ0FBQztBQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUsIGZvcndhcmRSZWYsIElucHV0LCBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7XHJcbiAgQWJzdHJhY3RDb250cm9sLFxyXG4gIE5HX1ZBTElEQVRPUlMsXHJcbiAgVmFsaWRhdGlvbkVycm9ycyxcclxuICBWYWxpZGF0b3IsXHJcbiAgVmFsaWRhdG9yRm4sXHJcbn0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5cclxuQEluamVjdGFibGUoeyBwcm92aWRlZEluOiAncm9vdCcgfSlcclxuQERpcmVjdGl2ZSh7XHJcbiAgc2VsZWN0b3I6ICdbYXBwLWRlY2ltYWxdJyxcclxuICBwcm92aWRlcnM6IFtcclxuICAgIHtcclxuICAgICAgcHJvdmlkZTogTkdfVkFMSURBVE9SUyxcclxuICAgICAgdXNlRXhpc3Rpbmc6IERlY2ltYWxWYWxpZGF0b3JEaXJlY3RpdmUsXHJcbiAgICAgIG11bHRpOiB0cnVlLFxyXG4gICAgfSxcclxuICBdLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgRGVjaW1hbFZhbGlkYXRvckRpcmVjdGl2ZSBpbXBsZW1lbnRzIFZhbGlkYXRvciB7XHJcbiAgQElucHV0KCkgYW1vdW50OiBudW1iZXI7XHJcblxyXG4gIHZhbGlkYXRlKGNvbnRyb2w6IEFic3RyYWN0Q29udHJvbCk6IFZhbGlkYXRpb25FcnJvcnMgfCBudWxsIHtcclxuICAgIHJldHVybiB0aGlzLmFtb3VudCA/IGRlY2ltYWwodGhpcy5hbW91bnQpKGNvbnRyb2wpIDogbnVsbDtcclxuICB9XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBkZWNpbWFsKGFtb3VudDogbnVtYmVyKTogVmFsaWRhdG9yRm4ge1xyXG4gIHJldHVybiAoY29udHJvbDogQWJzdHJhY3RDb250cm9sKTogVmFsaWRhdGlvbkVycm9ycyB8IG51bGwgPT4ge1xyXG4gICAgY29uc3QgdmFsdWUgPSBjb250cm9sLnZhbHVlO1xyXG5cclxuICAgIGlmICghdmFsdWUpIHtcclxuICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICB9XHJcblxyXG4gICAgbGV0IGlzVG9vTG9uZyA9IGZhbHNlO1xyXG5cclxuICAgIGNvbnN0IHN0ciA9IGAke3ZhbHVlfWA7XHJcbiAgICBpc1Rvb0xvbmcgPVxyXG4gICAgICBzdHIuaW5kZXhPZignLCcpICE9IC0xXHJcbiAgICAgICAgPyAoc3RyLnNwbGl0KCcsJylbMV0gPyBzdHIuc3BsaXQoJywnKVsxXS5sZW5ndGggOiAwKSA+IGFtb3VudFxyXG4gICAgICAgIDogc3RyLmluZGV4T2YoJy4nKSAhPSAtMVxyXG4gICAgICAgID8gKHN0ci5zcGxpdCgnLicpWzFdID8gc3RyLnNwbGl0KCcuJylbMV0ubGVuZ3RoIDogMCkgPiBhbW91bnRcclxuICAgICAgICA6IGZhbHNlO1xyXG5cclxuICAgIHJldHVybiBpc1Rvb0xvbmdcclxuICAgICAgPyAoe1xyXG4gICAgICAgICAgZGVjaW1hbDogdHJ1ZSxcclxuICAgICAgICAgIG1heDogYW1vdW50LFxyXG4gICAgICAgIH0gYXMgVmFsaWRhdGlvbkVycm9ycylcclxuICAgICAgOiBudWxsO1xyXG4gIH07XHJcbn1cclxuIl19
@@ -0,0 +1,54 @@
1
+ import { Directive, Input, Injectable } from '@angular/core';
2
+ import { NG_VALIDATORS, } from '@angular/forms';
3
+ import * as moment from 'moment';
4
+ import * as i0 from "@angular/core";
5
+ export class MaxDateValidatorDirective {
6
+ validate(control) {
7
+ return this.date ? maxDate(this.date)(control) : null;
8
+ }
9
+ }
10
+ MaxDateValidatorDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: MaxDateValidatorDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
11
+ MaxDateValidatorDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.10", type: MaxDateValidatorDirective, selector: "[app-max-date]", inputs: { date: "date" }, providers: [
12
+ {
13
+ provide: NG_VALIDATORS,
14
+ useExisting: MaxDateValidatorDirective,
15
+ multi: true,
16
+ },
17
+ ], ngImport: i0 });
18
+ MaxDateValidatorDirective.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: MaxDateValidatorDirective, providedIn: 'root' });
19
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: MaxDateValidatorDirective, decorators: [{
20
+ type: Injectable,
21
+ args: [{ providedIn: 'root' }]
22
+ }, {
23
+ type: Directive,
24
+ args: [{
25
+ selector: '[app-max-date]',
26
+ providers: [
27
+ {
28
+ provide: NG_VALIDATORS,
29
+ useExisting: MaxDateValidatorDirective,
30
+ multi: true,
31
+ },
32
+ ],
33
+ }]
34
+ }], propDecorators: { date: [{
35
+ type: Input
36
+ }] } });
37
+ export function maxDate(date) {
38
+ return (control) => {
39
+ const value = control.value;
40
+ if (!value) {
41
+ return null;
42
+ }
43
+ const maxDate = moment(date);
44
+ const inputDate = moment(value);
45
+ return !(inputDate.isValid() && inputDate.isBefore(maxDate))
46
+ ? {
47
+ maxdate: true,
48
+ max: maxDate.toDate(),
49
+ actual: value,
50
+ }
51
+ : null;
52
+ };
53
+ }
54
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWF4LWRhdGUtdmFsaWRhdG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2hydi1jb21wb25lbnRzL3NyYy9saWIvY2hyLWZvcm0vY2hyLXZhbGlkYXRvcnMvbWF4LWRhdGUtdmFsaWRhdG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQWMsS0FBSyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6RSxPQUFPLEVBRUwsYUFBYSxHQUlkLE1BQU0sZ0JBQWdCLENBQUM7QUFDeEIsT0FBTyxLQUFLLE1BQU0sTUFBTSxRQUFRLENBQUM7O0FBYWpDLE1BQU0sT0FBTyx5QkFBeUI7SUFHcEMsUUFBUSxDQUFDLE9BQXdCO1FBQy9CLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO0lBQ3hELENBQUM7O3VIQUxVLHlCQUF5QjsyR0FBekIseUJBQXlCLG1FQVJ6QjtRQUNUO1lBQ0UsT0FBTyxFQUFFLGFBQWE7WUFDdEIsV0FBVyxFQUFFLHlCQUF5QjtZQUN0QyxLQUFLLEVBQUUsSUFBSTtTQUNaO0tBQ0Y7MkhBRVUseUJBQXlCLGNBWFosTUFBTTs0RkFXbkIseUJBQXlCO2tCQVhyQyxVQUFVO21CQUFDLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRTs7a0JBQ2pDLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLGdCQUFnQjtvQkFDMUIsU0FBUyxFQUFFO3dCQUNUOzRCQUNFLE9BQU8sRUFBRSxhQUFhOzRCQUN0QixXQUFXLDJCQUEyQjs0QkFDdEMsS0FBSyxFQUFFLElBQUk7eUJBQ1o7cUJBQ0Y7aUJBQ0Y7OEJBRVUsSUFBSTtzQkFBWixLQUFLOztBQU9SLE1BQU0sVUFBVSxPQUFPLENBQUMsSUFBVTtJQUNoQyxPQUFPLENBQUMsT0FBd0IsRUFBMkIsRUFBRTtRQUMzRCxNQUFNLEtBQUssR0FBRyxPQUFPLENBQUMsS0FBSyxDQUFDO1FBQzVCLElBQUksQ0FBQyxLQUFLLEVBQUU7WUFDVixPQUFPLElBQUksQ0FBQztTQUNiO1FBRUQsTUFBTSxPQUFPLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQzdCLE1BQU0sU0FBUyxHQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUVoQyxPQUFPLENBQUMsQ0FBQyxTQUFTLENBQUMsT0FBTyxFQUFFLElBQUksU0FBUyxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUMxRCxDQUFDLENBQUU7Z0JBQ0MsT0FBTyxFQUFFLElBQUk7Z0JBQ2IsR0FBRyxFQUFFLE9BQU8sQ0FBQyxNQUFNLEVBQUU7Z0JBQ3JCLE1BQU0sRUFBRSxLQUFLO2FBQ087WUFDeEIsQ0FBQyxDQUFDLElBQUksQ0FBQztJQUNYLENBQUMsQ0FBQztBQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUsIGZvcndhcmRSZWYsIElucHV0LCBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7XHJcbiAgQWJzdHJhY3RDb250cm9sLFxyXG4gIE5HX1ZBTElEQVRPUlMsXHJcbiAgVmFsaWRhdGlvbkVycm9ycyxcclxuICBWYWxpZGF0b3IsXHJcbiAgVmFsaWRhdG9yRm4sXHJcbn0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgKiBhcyBtb21lbnQgZnJvbSAnbW9tZW50JztcclxuXHJcbkBJbmplY3RhYmxlKHsgcHJvdmlkZWRJbjogJ3Jvb3QnIH0pXHJcbkBEaXJlY3RpdmUoe1xyXG4gIHNlbGVjdG9yOiAnW2FwcC1tYXgtZGF0ZV0nLFxyXG4gIHByb3ZpZGVyczogW1xyXG4gICAge1xyXG4gICAgICBwcm92aWRlOiBOR19WQUxJREFUT1JTLFxyXG4gICAgICB1c2VFeGlzdGluZzogTWF4RGF0ZVZhbGlkYXRvckRpcmVjdGl2ZSxcclxuICAgICAgbXVsdGk6IHRydWUsXHJcbiAgICB9LFxyXG4gIF0sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBNYXhEYXRlVmFsaWRhdG9yRGlyZWN0aXZlIGltcGxlbWVudHMgVmFsaWRhdG9yIHtcclxuICBASW5wdXQoKSBkYXRlOiBEYXRlO1xyXG5cclxuICB2YWxpZGF0ZShjb250cm9sOiBBYnN0cmFjdENvbnRyb2wpOiBWYWxpZGF0aW9uRXJyb3JzIHwgbnVsbCB7XHJcbiAgICByZXR1cm4gdGhpcy5kYXRlID8gbWF4RGF0ZSh0aGlzLmRhdGUpKGNvbnRyb2wpIDogbnVsbDtcclxuICB9XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBtYXhEYXRlKGRhdGU6IERhdGUpOiBWYWxpZGF0b3JGbiB7XHJcbiAgcmV0dXJuIChjb250cm9sOiBBYnN0cmFjdENvbnRyb2wpOiBWYWxpZGF0aW9uRXJyb3JzIHwgbnVsbCA9PiB7XHJcbiAgICBjb25zdCB2YWx1ZSA9IGNvbnRyb2wudmFsdWU7XHJcbiAgICBpZiAoIXZhbHVlKSB7XHJcbiAgICAgIHJldHVybiBudWxsO1xyXG4gICAgfVxyXG5cclxuICAgIGNvbnN0IG1heERhdGUgPSBtb21lbnQoZGF0ZSk7XHJcbiAgICBjb25zdCBpbnB1dERhdGUgPSBtb21lbnQodmFsdWUpO1xyXG5cclxuICAgIHJldHVybiAhKGlucHV0RGF0ZS5pc1ZhbGlkKCkgJiYgaW5wdXREYXRlLmlzQmVmb3JlKG1heERhdGUpKVxyXG4gICAgICA/ICh7XHJcbiAgICAgICAgICBtYXhkYXRlOiB0cnVlLFxyXG4gICAgICAgICAgbWF4OiBtYXhEYXRlLnRvRGF0ZSgpLFxyXG4gICAgICAgICAgYWN0dWFsOiB2YWx1ZSxcclxuICAgICAgICB9IGFzIFZhbGlkYXRpb25FcnJvcnMpXHJcbiAgICAgIDogbnVsbDtcclxuICB9O1xyXG59XHJcbiJdfQ==
@@ -0,0 +1,52 @@
1
+ import { Directive, Input, Injectable } from '@angular/core';
2
+ import { NG_VALIDATORS, } from '@angular/forms';
3
+ import * as i0 from "@angular/core";
4
+ export class TypeValidatorDirective {
5
+ validate(control) {
6
+ return this.type ? type(this.type)(control) : null;
7
+ }
8
+ }
9
+ TypeValidatorDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: TypeValidatorDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
10
+ TypeValidatorDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.10", type: TypeValidatorDirective, selector: "[app-type]", inputs: { type: "type" }, providers: [
11
+ {
12
+ provide: NG_VALIDATORS,
13
+ useExisting: TypeValidatorDirective,
14
+ multi: true,
15
+ },
16
+ ], ngImport: i0 });
17
+ TypeValidatorDirective.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: TypeValidatorDirective, providedIn: 'root' });
18
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: TypeValidatorDirective, decorators: [{
19
+ type: Injectable,
20
+ args: [{ providedIn: 'root' }]
21
+ }, {
22
+ type: Directive,
23
+ args: [{
24
+ selector: '[app-type]',
25
+ providers: [
26
+ {
27
+ provide: NG_VALIDATORS,
28
+ useExisting: TypeValidatorDirective,
29
+ multi: true,
30
+ },
31
+ ],
32
+ }]
33
+ }], propDecorators: { type: [{
34
+ type: Input
35
+ }] } });
36
+ export function type(type) {
37
+ return (control) => {
38
+ const value = control.value;
39
+ if (!value) {
40
+ return null;
41
+ }
42
+ const isType = typeof value == type;
43
+ return !isType
44
+ ? {
45
+ type: true,
46
+ requiredType: type,
47
+ actualType: typeof value,
48
+ }
49
+ : null;
50
+ };
51
+ }
52
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZS12YWxpZGF0b3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jaHJ2LWNvbXBvbmVudHMvc3JjL2xpYi9jaHItZm9ybS9jaHItdmFsaWRhdG9ycy90eXBlLXZhbGlkYXRvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFjLEtBQUssRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekUsT0FBTyxFQUVMLGFBQWEsR0FJZCxNQUFNLGdCQUFnQixDQUFDOztBQWF4QixNQUFNLE9BQU8sc0JBQXNCO0lBR2pDLFFBQVEsQ0FBQyxPQUF3QjtRQUMvQixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztJQUNyRCxDQUFDOztvSEFMVSxzQkFBc0I7d0dBQXRCLHNCQUFzQiwrREFSdEI7UUFDVDtZQUNFLE9BQU8sRUFBRSxhQUFhO1lBQ3RCLFdBQVcsRUFBRSxzQkFBc0I7WUFDbkMsS0FBSyxFQUFFLElBQUk7U0FDWjtLQUNGO3dIQUVVLHNCQUFzQixjQVhULE1BQU07NEZBV25CLHNCQUFzQjtrQkFYbEMsVUFBVTttQkFBQyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUU7O2tCQUNqQyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxZQUFZO29CQUN0QixTQUFTLEVBQUU7d0JBQ1Q7NEJBQ0UsT0FBTyxFQUFFLGFBQWE7NEJBQ3RCLFdBQVcsd0JBQXdCOzRCQUNuQyxLQUFLLEVBQUUsSUFBSTt5QkFDWjtxQkFDRjtpQkFDRjs4QkFFVSxJQUFJO3NCQUFaLEtBQUs7O0FBT1IsTUFBTSxVQUFVLElBQUksQ0FBQyxJQUFZO0lBQy9CLE9BQU8sQ0FBQyxPQUF3QixFQUEyQixFQUFFO1FBQzNELE1BQU0sS0FBSyxHQUFHLE9BQU8sQ0FBQyxLQUFLLENBQUM7UUFFNUIsSUFBSSxDQUFDLEtBQUssRUFBRTtZQUNWLE9BQU8sSUFBSSxDQUFDO1NBQ2I7UUFFRCxNQUFNLE1BQU0sR0FBRyxPQUFPLEtBQUssSUFBSSxJQUFJLENBQUM7UUFFcEMsT0FBTyxDQUFDLE1BQU07WUFDWixDQUFDLENBQUU7Z0JBQ0MsSUFBSSxFQUFFLElBQUk7Z0JBQ1YsWUFBWSxFQUFFLElBQUk7Z0JBQ2xCLFVBQVUsRUFBRSxPQUFPLEtBQUs7YUFDSjtZQUN4QixDQUFDLENBQUMsSUFBSSxDQUFDO0lBQ1gsQ0FBQyxDQUFDO0FBQ0osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGl2ZSwgZm9yd2FyZFJlZiwgSW5wdXQsIEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHtcclxuICBBYnN0cmFjdENvbnRyb2wsXHJcbiAgTkdfVkFMSURBVE9SUyxcclxuICBWYWxpZGF0aW9uRXJyb3JzLFxyXG4gIFZhbGlkYXRvcixcclxuICBWYWxpZGF0b3JGbixcclxufSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcblxyXG5ASW5qZWN0YWJsZSh7IHByb3ZpZGVkSW46ICdyb290JyB9KVxyXG5ARGlyZWN0aXZlKHtcclxuICBzZWxlY3RvcjogJ1thcHAtdHlwZV0nLFxyXG4gIHByb3ZpZGVyczogW1xyXG4gICAge1xyXG4gICAgICBwcm92aWRlOiBOR19WQUxJREFUT1JTLFxyXG4gICAgICB1c2VFeGlzdGluZzogVHlwZVZhbGlkYXRvckRpcmVjdGl2ZSxcclxuICAgICAgbXVsdGk6IHRydWUsXHJcbiAgICB9LFxyXG4gIF0sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBUeXBlVmFsaWRhdG9yRGlyZWN0aXZlIGltcGxlbWVudHMgVmFsaWRhdG9yIHtcclxuICBASW5wdXQoKSB0eXBlOiBzdHJpbmc7XHJcblxyXG4gIHZhbGlkYXRlKGNvbnRyb2w6IEFic3RyYWN0Q29udHJvbCk6IFZhbGlkYXRpb25FcnJvcnMgfCBudWxsIHtcclxuICAgIHJldHVybiB0aGlzLnR5cGUgPyB0eXBlKHRoaXMudHlwZSkoY29udHJvbCkgOiBudWxsO1xyXG4gIH1cclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIHR5cGUodHlwZTogc3RyaW5nKTogVmFsaWRhdG9yRm4ge1xyXG4gIHJldHVybiAoY29udHJvbDogQWJzdHJhY3RDb250cm9sKTogVmFsaWRhdGlvbkVycm9ycyB8IG51bGwgPT4ge1xyXG4gICAgY29uc3QgdmFsdWUgPSBjb250cm9sLnZhbHVlO1xyXG5cclxuICAgIGlmICghdmFsdWUpIHtcclxuICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICB9XHJcblxyXG4gICAgY29uc3QgaXNUeXBlID0gdHlwZW9mIHZhbHVlID09IHR5cGU7XHJcblxyXG4gICAgcmV0dXJuICFpc1R5cGVcclxuICAgICAgPyAoe1xyXG4gICAgICAgICAgdHlwZTogdHJ1ZSxcclxuICAgICAgICAgIHJlcXVpcmVkVHlwZTogdHlwZSxcclxuICAgICAgICAgIGFjdHVhbFR5cGU6IHR5cGVvZiB2YWx1ZSxcclxuICAgICAgICB9IGFzIFZhbGlkYXRpb25FcnJvcnMpXHJcbiAgICAgIDogbnVsbDtcclxuICB9O1xyXG59XHJcbiJdfQ==