zek 16.0.20 → 16.0.22
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/esm2022/lib/modules/validator/field-validator.mjs +3 -3
- package/esm2022/lib/modules/validators/directive.mjs +35 -2
- package/esm2022/lib/modules/validators/validator.mjs +59 -20
- package/esm2022/lib/utils/jwt-helper.mjs +2 -2
- package/fesm2022/zek.mjs +94 -23
- package/fesm2022/zek.mjs.map +1 -1
- package/lib/modules/validators/directive.d.ts +16 -0
- package/lib/modules/validators/validator.d.ts +41 -19
- package/lib/utils/jwt-helper.d.ts +1 -1
- package/package.json +1 -1
|
@@ -9,13 +9,13 @@ class ZekFieldValidator {
|
|
|
9
9
|
console.log(this.field.errors);
|
|
10
10
|
}
|
|
11
11
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.1", ngImport: i0, type: ZekFieldValidator, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
12
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.0.1", type: ZekFieldValidator, selector: "zek-field-validator, [zek-field-validator]", inputs: { field: "field" }, host: { properties: { "class": "\"invalid-tooltip\"" } }, ngImport: i0, template: "<ng-container *ngIf=\"field\">\r\n <ng-container *ngIf=\"field.invalid && (field.dirty || field.touched || field.formDirective?.submitted)\">\r\n <ng-container *ngIf=\"field.errors\">\r\n <ng-container *ngIf=\"field.errors.required\">{{ 'Validation.Required' | translate }}</ng-container>\r\n <ng-container *ngIf=\"field.errors.minlength\">{{ 'Validation.MinLengthFormat' | translate:{ value: field.errors.minlength.requiredLength } }}</ng-container>\r\n <ng-container *ngIf=\"field.errors.maxlength\">{{ 'Validation.MaxLengthFormat' | translate:{ value: field.errors.maxlength.requiredLength } }}</ng-container>\r\n <ng-container *ngIf=\"field.errors.email\">{{ 'Validation.Pattern' | translate }}</ng-container>\r\n <ng-container *ngIf=\"field.errors.pattern\">{{ 'Validation.Pattern' | translate }}</ng-container><!-- {{ field.errors.pattern.requiredPattern }} -->\r\n <ng-container *ngIf=\"field.errors.server\">{{field.errors.server}}</ng-container>\r\n </ng-container>\r\n </ng-container>\r\n</ng-container>", dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i2.TranslatePipe, name: "translate" }] }); }
|
|
12
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.0.1", type: ZekFieldValidator, selector: "zek-field-validator, [zek-field-validator]", inputs: { field: "field" }, host: { properties: { "class": "\"invalid-tooltip\"" } }, ngImport: i0, template: "<ng-container *ngIf=\"field\">\r\n <ng-container *ngIf=\"field.invalid && (field.dirty || field.touched || field.formDirective?.submitted)\">\r\n <ng-container *ngIf=\"field.errors\">\r\n <ng-container *ngIf=\"field.errors.required\">{{ 'Validation.Required' | translate }}</ng-container>\r\n <ng-container *ngIf=\"field.errors.minlength\">{{ 'Validation.MinLengthFormat' | translate:{ value: field.errors.minlength.requiredLength } }}</ng-container>\r\n <ng-container *ngIf=\"field.errors.maxlength\">{{ 'Validation.MaxLengthFormat' | translate:{ value: field.errors.maxlength.requiredLength } }}</ng-container>\r\n <ng-container *ngIf=\"field.errors.email\">{{ 'Validation.Pattern' | translate }}</ng-container>\r\n <ng-container *ngIf=\"field.errors.pattern\">{{ 'Validation.Pattern' | translate }}</ng-container><!-- {{ field.errors.pattern.requiredPattern }} -->\r\n <ng-container *ngIf=\"field.errors.mismatch\">{{ 'Validation.Mismatch' | translate }}</ng-container>\r\n <ng-container *ngIf=\"field.errors.server\">{{field.errors.server}}</ng-container>\r\n </ng-container>\r\n </ng-container>\r\n</ng-container>", dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i2.TranslatePipe, name: "translate" }] }); }
|
|
13
13
|
}
|
|
14
14
|
export { ZekFieldValidator };
|
|
15
15
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.1", ngImport: i0, type: ZekFieldValidator, decorators: [{
|
|
16
16
|
type: Component,
|
|
17
|
-
args: [{ selector: 'zek-field-validator, [zek-field-validator]', host: { '[class]': '"invalid-tooltip"' }, template: "<ng-container *ngIf=\"field\">\r\n <ng-container *ngIf=\"field.invalid && (field.dirty || field.touched || field.formDirective?.submitted)\">\r\n <ng-container *ngIf=\"field.errors\">\r\n <ng-container *ngIf=\"field.errors.required\">{{ 'Validation.Required' | translate }}</ng-container>\r\n <ng-container *ngIf=\"field.errors.minlength\">{{ 'Validation.MinLengthFormat' | translate:{ value: field.errors.minlength.requiredLength } }}</ng-container>\r\n <ng-container *ngIf=\"field.errors.maxlength\">{{ 'Validation.MaxLengthFormat' | translate:{ value: field.errors.maxlength.requiredLength } }}</ng-container>\r\n <ng-container *ngIf=\"field.errors.email\">{{ 'Validation.Pattern' | translate }}</ng-container>\r\n <ng-container *ngIf=\"field.errors.pattern\">{{ 'Validation.Pattern' | translate }}</ng-container><!-- {{ field.errors.pattern.requiredPattern }} -->\r\n <ng-container *ngIf=\"field.errors.server\">{{field.errors.server}}</ng-container>\r\n </ng-container>\r\n </ng-container>\r\n</ng-container>" }]
|
|
17
|
+
args: [{ selector: 'zek-field-validator, [zek-field-validator]', host: { '[class]': '"invalid-tooltip"' }, template: "<ng-container *ngIf=\"field\">\r\n <ng-container *ngIf=\"field.invalid && (field.dirty || field.touched || field.formDirective?.submitted)\">\r\n <ng-container *ngIf=\"field.errors\">\r\n <ng-container *ngIf=\"field.errors.required\">{{ 'Validation.Required' | translate }}</ng-container>\r\n <ng-container *ngIf=\"field.errors.minlength\">{{ 'Validation.MinLengthFormat' | translate:{ value: field.errors.minlength.requiredLength } }}</ng-container>\r\n <ng-container *ngIf=\"field.errors.maxlength\">{{ 'Validation.MaxLengthFormat' | translate:{ value: field.errors.maxlength.requiredLength } }}</ng-container>\r\n <ng-container *ngIf=\"field.errors.email\">{{ 'Validation.Pattern' | translate }}</ng-container>\r\n <ng-container *ngIf=\"field.errors.pattern\">{{ 'Validation.Pattern' | translate }}</ng-container><!-- {{ field.errors.pattern.requiredPattern }} -->\r\n <ng-container *ngIf=\"field.errors.mismatch\">{{ 'Validation.Mismatch' | translate }}</ng-container>\r\n <ng-container *ngIf=\"field.errors.server\">{{field.errors.server}}</ng-container>\r\n </ng-container>\r\n </ng-container>\r\n</ng-container>" }]
|
|
18
18
|
}], ctorParameters: function () { return []; }, propDecorators: { field: [{
|
|
19
19
|
type: Input
|
|
20
20
|
}] } });
|
|
21
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
21
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmllbGQtdmFsaWRhdG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvemVrL3NyYy9saWIvbW9kdWxlcy92YWxpZGF0b3IvZmllbGQtdmFsaWRhdG9yLnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvemVrL3NyYy9saWIvbW9kdWxlcy92YWxpZGF0b3IvZmllbGQtdmFsaWRhdG9yLmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7Ozs7QUFFakQsTUFLYSxpQkFBaUI7SUFFMUIsNEJBQTRCO0lBRTVCO1FBQ0ksSUFBSSxJQUFJLENBQUMsS0FBSztZQUNWLE9BQU8sQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUN2QyxDQUFDOzhHQVBRLGlCQUFpQjtrR0FBakIsaUJBQWlCLHdLQ1A5Qixpc0NBWWU7O1NETEYsaUJBQWlCOzJGQUFqQixpQkFBaUI7a0JBTDdCLFNBQVM7K0JBQ0ksNENBQTRDLFFBQ2hELEVBQUUsU0FBUyxFQUFFLG1CQUFtQixFQUFFOzBFQUkvQixLQUFLO3NCQUFiLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICAgIHNlbGVjdG9yOiAnemVrLWZpZWxkLXZhbGlkYXRvciwgW3play1maWVsZC12YWxpZGF0b3JdJyxcclxuICAgIGhvc3Q6IHsgJ1tjbGFzc10nOiAnXCJpbnZhbGlkLXRvb2x0aXBcIicgfSxcclxuICAgIHRlbXBsYXRlVXJsOiAnLi9maWVsZC12YWxpZGF0b3IuaHRtbCdcclxufSlcclxuZXhwb3J0IGNsYXNzIFpla0ZpZWxkVmFsaWRhdG9yIHtcclxuICAgIEBJbnB1dCgpIGZpZWxkOiBhbnk7XHJcbiAgICAvLyBASW5wdXQoKSBmaWVsZD86IE5nTW9kZWw7XHJcblxyXG4gICAgY29uc3RydWN0b3IoKSB7XHJcbiAgICAgICAgaWYgKHRoaXMuZmllbGQpXHJcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKHRoaXMuZmllbGQuZXJyb3JzKTtcclxuICAgIH1cclxufSIsIjxuZy1jb250YWluZXIgKm5nSWY9XCJmaWVsZFwiPlxyXG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImZpZWxkLmludmFsaWQgJiYgKGZpZWxkLmRpcnR5IHx8IGZpZWxkLnRvdWNoZWQgfHwgZmllbGQuZm9ybURpcmVjdGl2ZT8uc3VibWl0dGVkKVwiPlxyXG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJmaWVsZC5lcnJvcnNcIj5cclxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImZpZWxkLmVycm9ycy5yZXF1aXJlZFwiPnt7ICdWYWxpZGF0aW9uLlJlcXVpcmVkJyB8IHRyYW5zbGF0ZSB9fTwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiZmllbGQuZXJyb3JzLm1pbmxlbmd0aFwiPnt7ICdWYWxpZGF0aW9uLk1pbkxlbmd0aEZvcm1hdCcgfCB0cmFuc2xhdGU6eyB2YWx1ZTogZmllbGQuZXJyb3JzLm1pbmxlbmd0aC5yZXF1aXJlZExlbmd0aCB9IH19PC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJmaWVsZC5lcnJvcnMubWF4bGVuZ3RoXCI+e3sgJ1ZhbGlkYXRpb24uTWF4TGVuZ3RoRm9ybWF0JyB8IHRyYW5zbGF0ZTp7IHZhbHVlOiBmaWVsZC5lcnJvcnMubWF4bGVuZ3RoLnJlcXVpcmVkTGVuZ3RoIH0gfX08L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImZpZWxkLmVycm9ycy5lbWFpbFwiPnt7ICdWYWxpZGF0aW9uLlBhdHRlcm4nIHwgdHJhbnNsYXRlIH19PC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJmaWVsZC5lcnJvcnMucGF0dGVyblwiPnt7ICdWYWxpZGF0aW9uLlBhdHRlcm4nIHwgdHJhbnNsYXRlIH19PC9uZy1jb250YWluZXI+PCEtLSB7eyBmaWVsZC5lcnJvcnMucGF0dGVybi5yZXF1aXJlZFBhdHRlcm4gfX0gLS0+XHJcbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJmaWVsZC5lcnJvcnMubWlzbWF0Y2hcIj57eyAnVmFsaWRhdGlvbi5NaXNtYXRjaCcgfCB0cmFuc2xhdGUgfX08L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImZpZWxkLmVycm9ycy5zZXJ2ZXJcIj57e2ZpZWxkLmVycm9ycy5zZXJ2ZXJ9fTwvbmctY29udGFpbmVyPlxyXG4gICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgPC9uZy1jb250YWluZXI+XHJcbjwvbmctY29udGFpbmVyPiJdfQ==
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { Directive, forwardRef, Input } from "@angular/core";
|
|
2
2
|
import { NG_VALIDATORS } from "@angular/forms";
|
|
3
|
-
import { nullValidator, rangeValidator } from "./validator";
|
|
3
|
+
import { matchValidator, nullValidator, rangeValidator } from "./validator";
|
|
4
4
|
import * as i0 from "@angular/core";
|
|
5
5
|
const RANGE_VALIDATOR = {
|
|
6
6
|
provide: NG_VALIDATORS,
|
|
@@ -73,4 +73,37 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.1", ngImpor
|
|
|
73
73
|
}], propDecorators: { range: [{
|
|
74
74
|
type: Input
|
|
75
75
|
}] } });
|
|
76
|
-
|
|
76
|
+
/**
|
|
77
|
+
* @description
|
|
78
|
+
* Provider which adds `MatchValidator` to the `NG_VALIDATORS` multi-provider list.
|
|
79
|
+
*/
|
|
80
|
+
export const MATCH_VALIDATOR = {
|
|
81
|
+
provide: NG_VALIDATORS,
|
|
82
|
+
useExisting: forwardRef(() => matchValidator),
|
|
83
|
+
multi: true
|
|
84
|
+
};
|
|
85
|
+
class MatchValidator extends AbstractValidatorDirective {
|
|
86
|
+
constructor() {
|
|
87
|
+
super(...arguments);
|
|
88
|
+
/** @internal */
|
|
89
|
+
this.inputName = 'match';
|
|
90
|
+
/** @internal */
|
|
91
|
+
this.normalizeInput = (input) => input.trim();
|
|
92
|
+
/** @internal */
|
|
93
|
+
this.createValidator = (target) => matchValidator(target);
|
|
94
|
+
}
|
|
95
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.1", ngImport: i0, type: MatchValidator, deps: null, target: i0.ɵɵFactoryTarget.Directive }); }
|
|
96
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.0.1", type: MatchValidator, selector: "input[match][formControlName],input[match][formControl],input[match][ngModel]", inputs: { equals: "equals" }, host: { properties: { "attr.match": "_enabled ? match : null" } }, providers: [MATCH_VALIDATOR], usesInheritance: true, ngImport: i0 }); }
|
|
97
|
+
}
|
|
98
|
+
export { MatchValidator };
|
|
99
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.1", ngImport: i0, type: MatchValidator, decorators: [{
|
|
100
|
+
type: Directive,
|
|
101
|
+
args: [{
|
|
102
|
+
selector: 'input[match][formControlName],input[match][formControl],input[match][ngModel]',
|
|
103
|
+
providers: [MATCH_VALIDATOR],
|
|
104
|
+
host: { '[attr.match]': '_enabled ? match : null' }
|
|
105
|
+
}]
|
|
106
|
+
}], propDecorators: { equals: [{
|
|
107
|
+
type: Input
|
|
108
|
+
}] } });
|
|
109
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvemVrL3NyYy9saWIvbW9kdWxlcy92YWxpZGF0b3JzL2RpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFPQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxLQUFLLEVBQW9DLE1BQU0sZUFBZSxDQUFDO0FBQy9GLE9BQU8sRUFBbUIsYUFBYSxFQUE0QyxNQUFNLGdCQUFnQixDQUFDO0FBQzFHLE9BQU8sRUFBRSxjQUFjLEVBQUUsYUFBYSxFQUFFLGNBQWMsRUFBRSxNQUFNLGFBQWEsQ0FBQzs7QUFUNUUsTUFBTSxlQUFlLEdBQVE7SUFDekIsT0FBTyxFQUFFLGFBQWE7SUFDdEIsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxjQUFjLENBQUM7SUFDN0MsS0FBSyxFQUFFLElBQUk7Q0FDZCxDQUFDO0FBUUYsU0FBUyxPQUFPLENBQUMsS0FBc0I7SUFDbkMsT0FBTyxPQUFPLEtBQUssS0FBSyxRQUFRLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxDQUFDO0FBQ2pFLENBQUM7QUFHRCxNQUNlLDBCQUEwQjtJQUR6QztRQUVZLGVBQVUsR0FBZ0IsYUFBYSxDQUFDO0tBdUVuRDtJQWhDRyxhQUFhO0lBQ2IsV0FBVyxDQUFDLE9BQXNCO1FBQzlCLElBQUksSUFBSSxDQUFDLFNBQVMsSUFBSSxPQUFPLEVBQUU7WUFDM0IsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxDQUFDO1lBQ3hFLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUNwQyxJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLGFBQWEsQ0FBQztZQUM5RSxJQUFJLElBQUksQ0FBQyxTQUFTLEVBQUU7Z0JBQ2hCLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQzthQUNwQjtTQUNKO0lBQ0wsQ0FBQztJQUVELGFBQWE7SUFDYixRQUFRLENBQUMsT0FBd0I7UUFDN0IsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ3BDLENBQUM7SUFFRCxhQUFhO0lBQ2IseUJBQXlCLENBQUMsRUFBYztRQUNwQyxJQUFJLENBQUMsU0FBUyxHQUFHLEVBQUUsQ0FBQztJQUN4QixDQUFDO0lBRUQ7Ozs7OztPQU1HO0lBQ0gsT0FBTyxDQUFDLEtBQWM7UUFDbEIsT0FBTyxLQUFLLElBQUksSUFBSSxDQUFDLGlDQUFpQyxDQUFDO0lBQzNELENBQUM7OEdBdkVVLDBCQUEwQjtrR0FBMUIsMEJBQTBCOzsyRkFBMUIsMEJBQTBCO2tCQUR4QyxTQUFTOztBQTZFVixNQUthLGNBQWUsU0FBUSwwQkFBMEI7SUFMOUQ7O1FBUUksZ0JBQWdCO1FBQ1AsY0FBUyxHQUFHLE9BQU8sQ0FBQztRQUM3QixnQkFBZ0I7UUFDUCxtQkFBYyxHQUFHLENBQUMsS0FBc0IsRUFBVSxFQUFFLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzdFLGdCQUFnQjtRQUNQLG9CQUFlLEdBQUcsQ0FBQyxLQUFlLEVBQWUsRUFBRSxDQUFDLGNBQWMsQ0FBQyxLQUFLLENBQUMsQ0FBQztLQUN0Rjs4R0FUWSxjQUFjO2tHQUFkLGNBQWMsOE9BSFosQ0FBQyxlQUFlLENBQUM7O1NBR25CLGNBQWM7MkZBQWQsY0FBYztrQkFMMUIsU0FBUzttQkFBQztvQkFDUCxRQUFRLEVBQUUsc0hBQXNIO29CQUNoSSxTQUFTLEVBQUUsQ0FBQyxlQUFlLENBQUM7b0JBQzVCLElBQUksRUFBRSxFQUFFLGNBQWMsRUFBRSx5QkFBeUIsRUFBRTtpQkFDdEQ7OEJBRVksS0FBSztzQkFBYixLQUFLOztBQW1CVjs7O0dBR0c7QUFDSCxNQUFNLENBQUMsTUFBTSxlQUFlLEdBQVE7SUFDaEMsT0FBTyxFQUFFLGFBQWE7SUFDdEIsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxjQUFjLENBQUM7SUFDN0MsS0FBSyxFQUFFLElBQUk7Q0FDWixDQUFDO0FBRUosTUFLYSxjQUFlLFNBQVEsMEJBQTBCO0lBTDlEOztRQVFJLGdCQUFnQjtRQUNQLGNBQVMsR0FBRyxPQUFPLENBQUM7UUFDN0IsZ0JBQWdCO1FBQ1AsbUJBQWMsR0FBRyxDQUFDLEtBQWEsRUFBVSxFQUFFLENBQUMsS0FBSyxDQUFDLElBQUksRUFBRSxDQUFDO1FBQ2xFLGdCQUFnQjtRQUNQLG9CQUFlLEdBQUcsQ0FBQyxNQUFjLEVBQWUsRUFBRSxDQUFDLGNBQWMsQ0FBQyxNQUFNLENBQUMsQ0FBQztLQUN0Rjs4R0FUWSxjQUFjO2tHQUFkLGNBQWMseU1BSFosQ0FBQyxlQUFlLENBQUM7O1NBR25CLGNBQWM7MkZBQWQsY0FBYztrQkFMMUIsU0FBUzttQkFBQztvQkFDUCxRQUFRLEVBQUUsK0VBQStFO29CQUN6RixTQUFTLEVBQUUsQ0FBQyxlQUFlLENBQUM7b0JBQzVCLElBQUksRUFBRSxFQUFFLGNBQWMsRUFBRSx5QkFBeUIsRUFBRTtpQkFDdEQ7OEJBRVksTUFBTTtzQkFBZCxLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiY29uc3QgUkFOR0VfVkFMSURBVE9SOiBhbnkgPSB7XHJcbiAgICBwcm92aWRlOiBOR19WQUxJREFUT1JTLFxyXG4gICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gUmFuZ2VWYWxpZGF0b3IpLFxyXG4gICAgbXVsdGk6IHRydWVcclxufTtcclxuXHJcblxyXG5pbXBvcnQgeyBEaXJlY3RpdmUsIGZvcndhcmRSZWYsIElucHV0LCBPbkNoYW5nZXMsIE9uSW5pdCwgU2ltcGxlQ2hhbmdlcyB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbmltcG9ydCB7IEFic3RyYWN0Q29udHJvbCwgTkdfVkFMSURBVE9SUywgVmFsaWRhdGlvbkVycm9ycywgVmFsaWRhdG9yLCBWYWxpZGF0b3JGbiB9IGZyb20gXCJAYW5ndWxhci9mb3Jtc1wiO1xyXG5pbXBvcnQgeyBtYXRjaFZhbGlkYXRvciwgbnVsbFZhbGlkYXRvciwgcmFuZ2VWYWxpZGF0b3IgfSBmcm9tIFwiLi92YWxpZGF0b3JcIjtcclxuaW1wb3J0IHsgU3RyaW5nSGVscGVyIH0gZnJvbSBcIi4uLy4uL3V0aWxzXCI7XHJcblxyXG5mdW5jdGlvbiB0b0Zsb2F0KHZhbHVlOiBzdHJpbmcgfCBudW1iZXIpOiBudW1iZXIge1xyXG4gICAgcmV0dXJuIHR5cGVvZiB2YWx1ZSA9PT0gJ251bWJlcicgPyB2YWx1ZSA6IHBhcnNlRmxvYXQodmFsdWUpO1xyXG59XHJcblxyXG5cclxuQERpcmVjdGl2ZSgpXHJcbmFic3RyYWN0IGNsYXNzIEFic3RyYWN0VmFsaWRhdG9yRGlyZWN0aXZlIGltcGxlbWVudHMgVmFsaWRhdG9yLCBPbkNoYW5nZXMge1xyXG4gICAgcHJpdmF0ZSBfdmFsaWRhdG9yOiBWYWxpZGF0b3JGbiA9IG51bGxWYWxpZGF0b3I7XHJcbiAgICBwcml2YXRlIF9vbkNoYW5nZSE6ICgpID0+IHZvaWQ7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBBIGZsYWcgdGhhdCB0cmFja3Mgd2hldGhlciB0aGlzIHZhbGlkYXRvciBpcyBlbmFibGVkLlxyXG4gICAgICpcclxuICAgICAqIE1hcmtpbmcgaXQgYGludGVybmFsYCAodnMgYHByb3RlY3RlZGApLCBzbyB0aGF0IHRoaXMgZmxhZyBjYW4gYmUgdXNlZCBpbiBob3N0IGJpbmRpbmdzIG9mXHJcbiAgICAgKiBkaXJlY3RpdmUgY2xhc3NlcyB0aGF0IGV4dGVuZCB0aGlzIGJhc2UgY2xhc3MuXHJcbiAgICAgKiBAaW50ZXJuYWxcclxuICAgICAqL1xyXG4gICAgX2VuYWJsZWQ/OiBib29sZWFuO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogTmFtZSBvZiBhbiBpbnB1dCB0aGF0IG1hdGNoZXMgZGlyZWN0aXZlIHNlbGVjdG9yIGF0dHJpYnV0ZSAoZS5nLiBgbWlubGVuZ3RoYCBmb3JcclxuICAgICAqIGBNaW5MZW5ndGhEaXJlY3RpdmVgKS4gQW4gaW5wdXQgd2l0aCBhIGdpdmVuIG5hbWUgbWlnaHQgY29udGFpbiBjb25maWd1cmF0aW9uIGluZm9ybWF0aW9uIChsaWtlXHJcbiAgICAgKiBgbWlubGVuZ3RoPScxMCdgKSBvciBhIGZsYWcgdGhhdCBpbmRpY2F0ZXMgd2hldGhlciB2YWxpZGF0b3Igc2hvdWxkIGJlIGVuYWJsZWQgKGxpa2VcclxuICAgICAqIGBbcmVxdWlyZWRdPSdmYWxzZSdgKS5cclxuICAgICAqXHJcbiAgICAgKiBAaW50ZXJuYWxcclxuICAgICAqL1xyXG4gICAgYWJzdHJhY3QgaW5wdXROYW1lOiBzdHJpbmc7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBDcmVhdGVzIGFuIGluc3RhbmNlIG9mIGEgdmFsaWRhdG9yIChzcGVjaWZpYyB0byBhIGRpcmVjdGl2ZSB0aGF0IGV4dGVuZHMgdGhpcyBiYXNlIGNsYXNzKS5cclxuICAgICAqXHJcbiAgICAgKiBAaW50ZXJuYWxcclxuICAgICAqL1xyXG4gICAgYWJzdHJhY3QgY3JlYXRlVmFsaWRhdG9yKGlucHV0OiB1bmtub3duKTogVmFsaWRhdG9yRm47XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBQZXJmb3JtcyB0aGUgbmVjZXNzYXJ5IGlucHV0IG5vcm1hbGl6YXRpb24gYmFzZWQgb24gYSBzcGVjaWZpYyBsb2dpYyBvZiBhIERpcmVjdGl2ZS5cclxuICAgICAqIEZvciBleGFtcGxlLCB0aGUgZnVuY3Rpb24gbWlnaHQgYmUgdXNlZCB0byBjb252ZXJ0IHN0cmluZy1iYXNlZCByZXByZXNlbnRhdGlvbiBvZiB0aGVcclxuICAgICAqIGBtaW5sZW5ndGhgIGlucHV0IHRvIGFuIGludGVnZXIgdmFsdWUgdGhhdCBjYW4gbGF0ZXIgYmUgdXNlZCBpbiB0aGUgYFZhbGlkYXRvcnMubWluTGVuZ3RoYFxyXG4gICAgICogdmFsaWRhdG9yLlxyXG4gICAgICpcclxuICAgICAqIEBpbnRlcm5hbFxyXG4gICAgICovXHJcbiAgICBhYnN0cmFjdCBub3JtYWxpemVJbnB1dChpbnB1dDogdW5rbm93bik6IHVua25vd247XHJcblxyXG4gICAgLyoqIEBub2RvYyAqL1xyXG4gICAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xyXG4gICAgICAgIGlmICh0aGlzLmlucHV0TmFtZSBpbiBjaGFuZ2VzKSB7XHJcbiAgICAgICAgICAgIGNvbnN0IGlucHV0ID0gdGhpcy5ub3JtYWxpemVJbnB1dChjaGFuZ2VzW3RoaXMuaW5wdXROYW1lXS5jdXJyZW50VmFsdWUpO1xyXG4gICAgICAgICAgICB0aGlzLl9lbmFibGVkID0gdGhpcy5lbmFibGVkKGlucHV0KTtcclxuICAgICAgICAgICAgdGhpcy5fdmFsaWRhdG9yID0gdGhpcy5fZW5hYmxlZCA/IHRoaXMuY3JlYXRlVmFsaWRhdG9yKGlucHV0KSA6IG51bGxWYWxpZGF0b3I7XHJcbiAgICAgICAgICAgIGlmICh0aGlzLl9vbkNoYW5nZSkge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5fb25DaGFuZ2UoKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAvKiogQG5vZG9jICovXHJcbiAgICB2YWxpZGF0ZShjb250cm9sOiBBYnN0cmFjdENvbnRyb2wpOiBWYWxpZGF0aW9uRXJyb3JzIHwgbnVsbCB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX3ZhbGlkYXRvcihjb250cm9sKTtcclxuICAgIH1cclxuXHJcbiAgICAvKiogQG5vZG9jICovXHJcbiAgICByZWdpc3Rlck9uVmFsaWRhdG9yQ2hhbmdlKGZuOiAoKSA9PiB2b2lkKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5fb25DaGFuZ2UgPSBmbjtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIEBkZXNjcmlwdGlvblxyXG4gICAgICogRGV0ZXJtaW5lcyB3aGV0aGVyIHRoaXMgdmFsaWRhdG9yIHNob3VsZCBiZSBhY3RpdmUgb3Igbm90IGJhc2VkIG9uIGFuIGlucHV0LlxyXG4gICAgICogQmFzZSBjbGFzcyBpbXBsZW1lbnRhdGlvbiBjaGVja3Mgd2hldGhlciBhbiBpbnB1dCBpcyBkZWZpbmVkIChpZiB0aGUgdmFsdWUgaXMgZGlmZmVyZW50IGZyb21cclxuICAgICAqIGBudWxsYCBhbmQgYHVuZGVmaW5lZGApLiBWYWxpZGF0b3IgY2xhc3NlcyB0aGF0IGV4dGVuZCB0aGlzIGJhc2UgY2xhc3MgY2FuIG92ZXJyaWRlIHRoaXNcclxuICAgICAqIGZ1bmN0aW9uIHdpdGggdGhlIGxvZ2ljIHNwZWNpZmljIHRvIGEgcGFydGljdWxhciB2YWxpZGF0b3IgZGlyZWN0aXZlLlxyXG4gICAgICovXHJcbiAgICBlbmFibGVkKGlucHV0OiB1bmtub3duKTogYm9vbGVhbiB7XHJcbiAgICAgICAgcmV0dXJuIGlucHV0ICE9IG51bGwgLyogYm90aCBgbnVsbGAgYW5kIGB1bmRlZmluZWRgICovO1xyXG4gICAgfVxyXG59XHJcblxyXG5cclxuXHJcbkBEaXJlY3RpdmUoe1xyXG4gICAgc2VsZWN0b3I6ICdpbnB1dFt0eXBlPW51bWJlcl1bcmFuZ2VdW2Zvcm1Db250cm9sTmFtZV0saW5wdXRbdHlwZT1udW1iZXJdW3JhbmdlXVtmb3JtQ29udHJvbF0saW5wdXRbdHlwZT1udW1iZXJdW3JhbmdlXVtuZ01vZGVsXScsXHJcbiAgICBwcm92aWRlcnM6IFtSQU5HRV9WQUxJREFUT1JdLFxyXG4gICAgaG9zdDogeyAnW2F0dHIucmFuZ2VdJzogJ19lbmFibGVkID8gcmFuZ2UgOiBudWxsJyB9XHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBSYW5nZVZhbGlkYXRvciBleHRlbmRzIEFic3RyYWN0VmFsaWRhdG9yRGlyZWN0aXZlIHtcclxuICAgIEBJbnB1dCgpIHJhbmdlITogW251bWJlciwgbnVtYmVyXSB8IG51bGw7XHJcblxyXG4gICAgLyoqIEBpbnRlcm5hbCAqL1xyXG4gICAgb3ZlcnJpZGUgaW5wdXROYW1lID0gJ3JhbmdlJztcclxuICAgIC8qKiBAaW50ZXJuYWwgKi9cclxuICAgIG92ZXJyaWRlIG5vcm1hbGl6ZUlucHV0ID0gKGlucHV0OiBzdHJpbmcgfCBudW1iZXIpOiBudW1iZXIgPT4gdG9GbG9hdChpbnB1dCk7XHJcbiAgICAvKiogQGludGVybmFsICovXHJcbiAgICBvdmVycmlkZSBjcmVhdGVWYWxpZGF0b3IgPSAocmFuZ2U6IFtudW1iZXJdKTogVmFsaWRhdG9yRm4gPT4gcmFuZ2VWYWxpZGF0b3IocmFuZ2UpO1xyXG59XHJcblxyXG5cclxuXHJcblxyXG5cclxuXHJcblxyXG5cclxuXHJcblxyXG4vKipcclxuICogQGRlc2NyaXB0aW9uXHJcbiAqIFByb3ZpZGVyIHdoaWNoIGFkZHMgYE1hdGNoVmFsaWRhdG9yYCB0byB0aGUgYE5HX1ZBTElEQVRPUlNgIG11bHRpLXByb3ZpZGVyIGxpc3QuXHJcbiAqL1xyXG5leHBvcnQgY29uc3QgTUFUQ0hfVkFMSURBVE9SOiBhbnkgPSB7XHJcbiAgICBwcm92aWRlOiBOR19WQUxJREFUT1JTLFxyXG4gICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gbWF0Y2hWYWxpZGF0b3IpLFxyXG4gICAgbXVsdGk6IHRydWVcclxuICB9O1xyXG5cclxuQERpcmVjdGl2ZSh7XHJcbiAgICBzZWxlY3RvcjogJ2lucHV0W21hdGNoXVtmb3JtQ29udHJvbE5hbWVdLGlucHV0W21hdGNoXVtmb3JtQ29udHJvbF0saW5wdXRbbWF0Y2hdW25nTW9kZWxdJyxcclxuICAgIHByb3ZpZGVyczogW01BVENIX1ZBTElEQVRPUl0sXHJcbiAgICBob3N0OiB7ICdbYXR0ci5tYXRjaF0nOiAnX2VuYWJsZWQgPyBtYXRjaCA6IG51bGwnIH1cclxufSlcclxuZXhwb3J0IGNsYXNzIE1hdGNoVmFsaWRhdG9yIGV4dGVuZHMgQWJzdHJhY3RWYWxpZGF0b3JEaXJlY3RpdmUge1xyXG4gICAgQElucHV0KCkgZXF1YWxzPzogc3RyaW5nIHwgbnVsbDtcclxuXHJcbiAgICAvKiogQGludGVybmFsICovXHJcbiAgICBvdmVycmlkZSBpbnB1dE5hbWUgPSAnbWF0Y2gnO1xyXG4gICAgLyoqIEBpbnRlcm5hbCAqL1xyXG4gICAgb3ZlcnJpZGUgbm9ybWFsaXplSW5wdXQgPSAoaW5wdXQ6IHN0cmluZyk6IHN0cmluZyA9PiBpbnB1dC50cmltKCk7XHJcbiAgICAvKiogQGludGVybmFsICovXHJcbiAgICBvdmVycmlkZSBjcmVhdGVWYWxpZGF0b3IgPSAodGFyZ2V0OiBzdHJpbmcpOiBWYWxpZGF0b3JGbiA9PiBtYXRjaFZhbGlkYXRvcih0YXJnZXQpO1xyXG59Il19
|
|
@@ -28,28 +28,51 @@ export function nullValidator(control) {
|
|
|
28
28
|
}
|
|
29
29
|
export class Validators {
|
|
30
30
|
/**
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
31
|
+
* @description
|
|
32
|
+
* Validator that requires the control's value to be less than or equal to the provided number.
|
|
33
|
+
*
|
|
34
|
+
* @usageNotes
|
|
35
|
+
*
|
|
36
|
+
* ### Validate against a range 0 - 15
|
|
37
|
+
*
|
|
38
|
+
* ```typescript
|
|
39
|
+
* const control = new FormControl(16, Validators.max([0,15]));
|
|
40
|
+
*
|
|
41
|
+
* console.log(control.errors); // {range: {min: 0, max: 15, actual: 16}}
|
|
42
|
+
* ```
|
|
43
|
+
*
|
|
44
|
+
* @returns A validator function that returns an error map with the
|
|
45
|
+
* `range` property if the validation check fails, otherwise `null`.
|
|
46
|
+
*
|
|
47
|
+
* @see `updateValueAndValidity()`
|
|
48
|
+
*
|
|
49
|
+
*/
|
|
50
50
|
static range(min, max) {
|
|
51
51
|
return rangeValidator([min, max]);
|
|
52
52
|
}
|
|
53
|
+
/**
|
|
54
|
+
* @description
|
|
55
|
+
* Validator that requires the control's value to be less than or equal to the provided number.
|
|
56
|
+
*
|
|
57
|
+
* @usageNotes
|
|
58
|
+
*
|
|
59
|
+
* ### Validate against a range 0 - 15
|
|
60
|
+
*
|
|
61
|
+
* ```typescript
|
|
62
|
+
* const control = new FormControl(16, Validators.max([0,15]));
|
|
63
|
+
*
|
|
64
|
+
* console.log(control.errors); // {range: {min: 0, max: 15, actual: 16}}
|
|
65
|
+
* ```
|
|
66
|
+
*
|
|
67
|
+
* @returns A validator function that returns an error map with the
|
|
68
|
+
* `range` property if the validation check fails, otherwise `null`.
|
|
69
|
+
*
|
|
70
|
+
* @see `updateValueAndValidity()`
|
|
71
|
+
*
|
|
72
|
+
*/
|
|
73
|
+
static match(value) {
|
|
74
|
+
return matchValidator(value);
|
|
75
|
+
}
|
|
53
76
|
}
|
|
54
77
|
/**
|
|
55
78
|
* Validator that requires the control's value to be between provided numbers.
|
|
@@ -69,4 +92,20 @@ export function rangeValidator(range) {
|
|
|
69
92
|
return null;
|
|
70
93
|
};
|
|
71
94
|
}
|
|
72
|
-
|
|
95
|
+
export function matchValidator(target) {
|
|
96
|
+
return (control) => {
|
|
97
|
+
if (isEmptyInputValue(control.value)) {
|
|
98
|
+
return null; // don't validate empty values to allow optional controls
|
|
99
|
+
}
|
|
100
|
+
const targetCtrl = control.get(target);
|
|
101
|
+
if (!targetCtrl)
|
|
102
|
+
return null;
|
|
103
|
+
const value = control.value;
|
|
104
|
+
const targetValue = targetCtrl.value;
|
|
105
|
+
if (targetValue !== value) {
|
|
106
|
+
return { 'mismatch': { 'target': targetValue, 'actual': control.value } };
|
|
107
|
+
}
|
|
108
|
+
return null;
|
|
109
|
+
};
|
|
110
|
+
}
|
|
111
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFsaWRhdG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvemVrL3NyYy9saWIvbW9kdWxlcy92YWxpZGF0b3JzL3ZhbGlkYXRvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSw4RkFBOEY7QUFLOUYsd0VBQXdFO0FBQ3hFLDRFQUE0RTtBQUU1RSxtQ0FBbUM7QUFDbkMseURBQXlEO0FBRXpELDBDQUEwQztBQUMxQyxnSEFBZ0g7QUFDaEgsU0FBUztBQUNULEtBQUs7QUFDTCx3Q0FBd0M7QUFDeEMsMEVBQTBFO0FBQzFFLGtEQUFrRDtBQUNsRCxzREFBc0Q7QUFDdEQsSUFBSTtBQUdKLFNBQVMsaUJBQWlCLENBQUMsS0FBVTtJQUNqQzs7OztPQUlHO0lBQ0gsT0FBTyxPQUFPLEtBQUssS0FBSyxXQUFXLElBQUksS0FBSyxJQUFJLElBQUksSUFBSSxDQUFDLENBQUMsT0FBTyxLQUFLLEtBQUssUUFBUSxJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsSUFBSSxLQUFLLENBQUMsTUFBTSxLQUFLLENBQUMsQ0FBQyxDQUFDO0FBQ3hJLENBQUM7QUFFRDs7R0FFRztBQUNILE1BQU0sVUFBVSxhQUFhLENBQUMsT0FBd0I7SUFDbEQsT0FBTyxJQUFJLENBQUM7QUFDaEIsQ0FBQztBQUdELE1BQU0sT0FBTyxVQUFVO0lBRW5COzs7Ozs7Ozs7Ozs7Ozs7Ozs7O01BbUJFO0lBQ0YsTUFBTSxDQUFDLEtBQUssQ0FBQyxHQUFXLEVBQUUsR0FBVztRQUNqQyxPQUFPLGNBQWMsQ0FBQyxDQUFDLEdBQUcsRUFBRSxHQUFHLENBQUMsQ0FBQyxDQUFDO0lBQ3RDLENBQUM7SUFHRDs7Ozs7Ozs7Ozs7Ozs7Ozs7OztFQW1CRjtJQUNFLE1BQU0sQ0FBQyxLQUFLLENBQUMsS0FBYTtRQUN0QixPQUFPLGNBQWMsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNqQyxDQUFDO0NBQ0o7QUFHRDs7O0dBR0c7QUFDSCxNQUFNLFVBQVUsY0FBYyxDQUFDLEtBQW9CO0lBQy9DLE9BQU8sQ0FBQyxPQUF3QixFQUEyQixFQUFFO1FBQ3pELElBQUksaUJBQWlCLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxJQUFJLGlCQUFpQixDQUFDLEtBQUssQ0FBQyxJQUFJLEtBQUssQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFO1lBQ2xGLE9BQU8sSUFBSSxDQUFDLENBQUUseURBQXlEO1NBQzFFO1FBQ0QsTUFBTSxLQUFLLEdBQUcsVUFBVSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUN4QyxJQUFJLEdBQUcsR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDbkIsSUFBSSxHQUFHLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ25CLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxLQUFLLEdBQUcsR0FBRyxJQUFJLEtBQUssR0FBRyxHQUFHLENBQUMsRUFBRTtZQUMvQyxPQUFPLEVBQUUsT0FBTyxFQUFFLEVBQUUsS0FBSyxFQUFFLEdBQUcsRUFBRSxLQUFLLEVBQUUsR0FBRyxFQUFFLFFBQVEsRUFBRSxPQUFPLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQztTQUMzRTtRQUVELE9BQU8sSUFBSSxDQUFDO0lBQ2hCLENBQUMsQ0FBQztBQUNOLENBQUM7QUFHRCxNQUFNLFVBQVUsY0FBYyxDQUFDLE1BQWM7SUFDekMsT0FBTyxDQUFDLE9BQXdCLEVBQTJCLEVBQUU7UUFDekQsSUFBSSxpQkFBaUIsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLEVBQUU7WUFDbEMsT0FBTyxJQUFJLENBQUMsQ0FBRSx5REFBeUQ7U0FDMUU7UUFFRCxNQUFNLFVBQVUsR0FBRyxPQUFPLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ3ZDLElBQUksQ0FBQyxVQUFVO1lBQ1gsT0FBTyxJQUFJLENBQUM7UUFFaEIsTUFBTSxLQUFLLEdBQUcsT0FBTyxDQUFDLEtBQUssQ0FBQztRQUM1QixNQUFNLFdBQVcsR0FBRyxVQUFVLENBQUMsS0FBSyxDQUFDO1FBQ3JDLElBQUksV0FBVyxLQUFLLEtBQUssRUFBRTtZQUN2QixPQUFPLEVBQUUsVUFBVSxFQUFFLEVBQUUsUUFBUSxFQUFFLFdBQVcsRUFBRSxRQUFRLEVBQUUsT0FBTyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUM7U0FDN0U7UUFDRCxPQUFPLElBQUksQ0FBQztJQUNoQixDQUFDLENBQUM7QUFDTixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gaW1wb3J0IHsgQWJzdHJhY3RDb250cm9sLCBWYWxpZGF0b3JzLCBWYWxpZGF0b3JGbiwgVmFsaWRhdGlvbkVycm9ycyB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJ1xyXG5cclxuaW1wb3J0IHsgdHJhbnNpdGlvbiB9IGZyb20gXCJAYW5ndWxhci9hbmltYXRpb25zXCI7XHJcbmltcG9ydCB7IEFic3RyYWN0Q29udHJvbCwgVmFsaWRhdGlvbkVycm9ycywgVmFsaWRhdG9yRm4gfSBmcm9tIFwiQGFuZ3VsYXIvZm9ybXNcIjtcclxuXHJcbi8vIGV4cG9ydCBjb25zdCByYW5nZSA9IChyYW5nZT86IEFycmF5PG51bWJlcj4gfCBudWxsKTogVmFsaWRhdG9yRm4gPT4ge1xyXG4vLyAgICAgcmV0dXJuIChjb250cm9sOiBBYnN0cmFjdENvbnRyb2wpOiB7IFtrZXk6IHN0cmluZ106IGFueSB9IHwgbnVsbCA9PiB7XHJcblxyXG4vLyAgICAgICAgIGlmICghcmFuZ2UpIHJldHVybiBudWxsO1xyXG4vLyAgICAgICAgIGlmIChWYWxpZGF0b3JzLnJlcXVpcmVkKGNvbnRyb2wpKSByZXR1cm4gbnVsbDtcclxuXHJcbi8vICAgICAgICAgbGV0IHY6IG51bWJlciA9ICtjb250cm9sLnZhbHVlO1xyXG4vLyAgICAgICAgIHJldHVybiB2ID49IHJhbmdlWzBdICYmIHYgPD0gcmFuZ2VbMV0gPyBudWxsIDogeyBhY3R1YWxWYWx1ZTogdiwgcmVxdWlyZWRWYWx1ZTogcmFuZ2UsIHJhbmdlOiB0cnVlIH07XHJcbi8vICAgICB9O1xyXG4vLyB9O1xyXG4vLyBleHBvcnQgZnVuY3Rpb24gYmx1ZSgpOiBWYWxpZGF0b3JGbiB7XHJcbi8vICAgICByZXR1cm4gKGNvbnRyb2w6IEFic3RyYWN0Q29udHJvbCk6IHsgW2tleTogc3RyaW5nXTogYW55IH0gfCBudWxsID0+XHJcbi8vICAgICAgICAgY29udHJvbC52YWx1ZT8udG9Mb3dlckNhc2UoKSA9PT0gJ2JsdWUnXHJcbi8vICAgICAgICAgICAgID8gbnVsbCA6IHsgd3JvbmdDb2xvcjogY29udHJvbC52YWx1ZSB9O1xyXG4vLyB9XHJcblxyXG5cclxuZnVuY3Rpb24gaXNFbXB0eUlucHV0VmFsdWUodmFsdWU6IGFueSk6IGJvb2xlYW4ge1xyXG4gICAgLyoqXHJcbiAgICAgKiBDaGVjayBpZiB0aGUgb2JqZWN0IGlzIGEgc3RyaW5nIG9yIGFycmF5IGJlZm9yZSBldmFsdWF0aW5nIHRoZSBsZW5ndGggYXR0cmlidXRlLlxyXG4gICAgICogVGhpcyBhdm9pZHMgZmFsc2VseSByZWplY3Rpbmcgb2JqZWN0cyB0aGF0IGNvbnRhaW4gYSBjdXN0b20gbGVuZ3RoIGF0dHJpYnV0ZS5cclxuICAgICAqIEZvciBleGFtcGxlLCB0aGUgb2JqZWN0IHtpZDogMSwgbGVuZ3RoOiAwLCB3aWR0aDogMH0gc2hvdWxkIG5vdCBiZSByZXR1cm5lZCBhcyBlbXB0eS5cclxuICAgICAqL1xyXG4gICAgcmV0dXJuIHR5cGVvZiB2YWx1ZSA9PT0gJ3VuZGVmaW5lZCcgfHwgdmFsdWUgPT0gbnVsbCB8fCAoKHR5cGVvZiB2YWx1ZSA9PT0gJ3N0cmluZycgfHwgQXJyYXkuaXNBcnJheSh2YWx1ZSkpICYmIHZhbHVlLmxlbmd0aCA9PT0gMCk7XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBGdW5jdGlvbiB0aGF0IGhhcyBgVmFsaWRhdG9yRm5gIHNoYXBlLCBidXQgcGVyZm9ybXMgbm8gb3BlcmF0aW9uLlxyXG4gKi9cclxuZXhwb3J0IGZ1bmN0aW9uIG51bGxWYWxpZGF0b3IoY29udHJvbDogQWJzdHJhY3RDb250cm9sKTogVmFsaWRhdGlvbkVycm9ycyB8IG51bGwge1xyXG4gICAgcmV0dXJuIG51bGw7XHJcbn1cclxuXHJcblxyXG5leHBvcnQgY2xhc3MgVmFsaWRhdG9ycyB7XHJcblxyXG4gICAgLyoqXHJcbiAgICAqIEBkZXNjcmlwdGlvblxyXG4gICAgKiBWYWxpZGF0b3IgdGhhdCByZXF1aXJlcyB0aGUgY29udHJvbCdzIHZhbHVlIHRvIGJlIGxlc3MgdGhhbiBvciBlcXVhbCB0byB0aGUgcHJvdmlkZWQgbnVtYmVyLlxyXG4gICAgKlxyXG4gICAgKiBAdXNhZ2VOb3Rlc1xyXG4gICAgKlxyXG4gICAgKiAjIyMgVmFsaWRhdGUgYWdhaW5zdCBhIHJhbmdlIDAgLSAxNVxyXG4gICAgKlxyXG4gICAgKiBgYGB0eXBlc2NyaXB0XHJcbiAgICAqIGNvbnN0IGNvbnRyb2wgPSBuZXcgRm9ybUNvbnRyb2woMTYsIFZhbGlkYXRvcnMubWF4KFswLDE1XSkpO1xyXG4gICAgKlxyXG4gICAgKiBjb25zb2xlLmxvZyhjb250cm9sLmVycm9ycyk7IC8vIHtyYW5nZToge21pbjogMCwgbWF4OiAxNSwgYWN0dWFsOiAxNn19XHJcbiAgICAqIGBgYFxyXG4gICAgKlxyXG4gICAgKiBAcmV0dXJucyBBIHZhbGlkYXRvciBmdW5jdGlvbiB0aGF0IHJldHVybnMgYW4gZXJyb3IgbWFwIHdpdGggdGhlXHJcbiAgICAqIGByYW5nZWAgcHJvcGVydHkgaWYgdGhlIHZhbGlkYXRpb24gY2hlY2sgZmFpbHMsIG90aGVyd2lzZSBgbnVsbGAuXHJcbiAgICAqXHJcbiAgICAqIEBzZWUgYHVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoKWBcclxuICAgICpcclxuICAgICovXHJcbiAgICBzdGF0aWMgcmFuZ2UobWluOiBudW1iZXIsIG1heDogbnVtYmVyKTogVmFsaWRhdG9yRm4ge1xyXG4gICAgICAgIHJldHVybiByYW5nZVZhbGlkYXRvcihbbWluLCBtYXhdKTtcclxuICAgIH1cclxuXHJcblxyXG4gICAgLyoqXHJcbiogQGRlc2NyaXB0aW9uXHJcbiogVmFsaWRhdG9yIHRoYXQgcmVxdWlyZXMgdGhlIGNvbnRyb2wncyB2YWx1ZSB0byBiZSBsZXNzIHRoYW4gb3IgZXF1YWwgdG8gdGhlIHByb3ZpZGVkIG51bWJlci5cclxuKlxyXG4qIEB1c2FnZU5vdGVzXHJcbipcclxuKiAjIyMgVmFsaWRhdGUgYWdhaW5zdCBhIHJhbmdlIDAgLSAxNVxyXG4qXHJcbiogYGBgdHlwZXNjcmlwdFxyXG4qIGNvbnN0IGNvbnRyb2wgPSBuZXcgRm9ybUNvbnRyb2woMTYsIFZhbGlkYXRvcnMubWF4KFswLDE1XSkpO1xyXG4qXHJcbiogY29uc29sZS5sb2coY29udHJvbC5lcnJvcnMpOyAvLyB7cmFuZ2U6IHttaW46IDAsIG1heDogMTUsIGFjdHVhbDogMTZ9fVxyXG4qIGBgYFxyXG4qXHJcbiogQHJldHVybnMgQSB2YWxpZGF0b3IgZnVuY3Rpb24gdGhhdCByZXR1cm5zIGFuIGVycm9yIG1hcCB3aXRoIHRoZVxyXG4qIGByYW5nZWAgcHJvcGVydHkgaWYgdGhlIHZhbGlkYXRpb24gY2hlY2sgZmFpbHMsIG90aGVyd2lzZSBgbnVsbGAuXHJcbipcclxuKiBAc2VlIGB1cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KClgXHJcbipcclxuKi9cclxuICAgIHN0YXRpYyBtYXRjaCh2YWx1ZTogc3RyaW5nKTogVmFsaWRhdG9yRm4ge1xyXG4gICAgICAgIHJldHVybiBtYXRjaFZhbGlkYXRvcih2YWx1ZSk7XHJcbiAgICB9XHJcbn1cclxuXHJcblxyXG4vKipcclxuICogVmFsaWRhdG9yIHRoYXQgcmVxdWlyZXMgdGhlIGNvbnRyb2wncyB2YWx1ZSB0byBiZSBiZXR3ZWVuIHByb3ZpZGVkIG51bWJlcnMuXHJcbiAqIFNlZSBgVmFsaWRhdG9ycy5yYW5nZWAgZm9yIGFkZGl0aW9uYWwgaW5mb3JtYXRpb24uXHJcbiAqL1xyXG5leHBvcnQgZnVuY3Rpb24gcmFuZ2VWYWxpZGF0b3IocmFuZ2U6IEFycmF5PG51bWJlcj4pOiBWYWxpZGF0b3JGbiB7XHJcbiAgICByZXR1cm4gKGNvbnRyb2w6IEFic3RyYWN0Q29udHJvbCk6IFZhbGlkYXRpb25FcnJvcnMgfCBudWxsID0+IHtcclxuICAgICAgICBpZiAoaXNFbXB0eUlucHV0VmFsdWUoY29udHJvbC52YWx1ZSkgfHwgaXNFbXB0eUlucHV0VmFsdWUocmFuZ2UpIHx8IHJhbmdlLmxlbmd0aCA8IDIpIHtcclxuICAgICAgICAgICAgcmV0dXJuIG51bGw7ICAvLyBkb24ndCB2YWxpZGF0ZSBlbXB0eSB2YWx1ZXMgdG8gYWxsb3cgb3B0aW9uYWwgY29udHJvbHNcclxuICAgICAgICB9XHJcbiAgICAgICAgY29uc3QgdmFsdWUgPSBwYXJzZUZsb2F0KGNvbnRyb2wudmFsdWUpO1xyXG4gICAgICAgIGxldCBtYXggPSByYW5nZVswXTtcclxuICAgICAgICBsZXQgbWluID0gcmFuZ2VbMV07XHJcbiAgICAgICAgaWYgKCFpc05hTih2YWx1ZSkgJiYgKHZhbHVlIDwgbWluIHx8IHZhbHVlID4gbWF4KSkge1xyXG4gICAgICAgICAgICByZXR1cm4geyAncmFuZ2UnOiB7ICdtaW4nOiBtaW4sICdtYXgnOiBtYXgsICdhY3R1YWwnOiBjb250cm9sLnZhbHVlIH0gfTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHJldHVybiBudWxsO1xyXG4gICAgfTtcclxufVxyXG5cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBtYXRjaFZhbGlkYXRvcih0YXJnZXQ6IHN0cmluZyk6IFZhbGlkYXRvckZuIHtcclxuICAgIHJldHVybiAoY29udHJvbDogQWJzdHJhY3RDb250cm9sKTogVmFsaWRhdGlvbkVycm9ycyB8IG51bGwgPT4ge1xyXG4gICAgICAgIGlmIChpc0VtcHR5SW5wdXRWYWx1ZShjb250cm9sLnZhbHVlKSkge1xyXG4gICAgICAgICAgICByZXR1cm4gbnVsbDsgIC8vIGRvbid0IHZhbGlkYXRlIGVtcHR5IHZhbHVlcyB0byBhbGxvdyBvcHRpb25hbCBjb250cm9sc1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgY29uc3QgdGFyZ2V0Q3RybCA9IGNvbnRyb2wuZ2V0KHRhcmdldCk7XHJcbiAgICAgICAgaWYgKCF0YXJnZXRDdHJsKVxyXG4gICAgICAgICAgICByZXR1cm4gbnVsbDtcclxuXHJcbiAgICAgICAgY29uc3QgdmFsdWUgPSBjb250cm9sLnZhbHVlO1xyXG4gICAgICAgIGNvbnN0IHRhcmdldFZhbHVlID0gdGFyZ2V0Q3RybC52YWx1ZTtcclxuICAgICAgICBpZiAodGFyZ2V0VmFsdWUgIT09IHZhbHVlKSB7XHJcbiAgICAgICAgICAgIHJldHVybiB7ICdtaXNtYXRjaCc6IHsgJ3RhcmdldCc6IHRhcmdldFZhbHVlLCAnYWN0dWFsJzogY29udHJvbC52YWx1ZSB9IH07XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiBudWxsO1xyXG4gICAgfTtcclxufSJdfQ==
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
export class JwtHelper {
|
|
2
|
-
static
|
|
2
|
+
static decode(token) {
|
|
3
3
|
let base64Url = token.split('.')[1];
|
|
4
4
|
let base64 = base64Url.replace(/-/g, '+').replace(/_/g, '/');
|
|
5
5
|
let jsonPayload = decodeURIComponent(atob(base64).split('').map(function (c) {
|
|
@@ -8,4 +8,4 @@ export class JwtHelper {
|
|
|
8
8
|
return JSON.parse(jsonPayload);
|
|
9
9
|
}
|
|
10
10
|
}
|
|
11
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
11
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiand0LWhlbHBlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3play9zcmMvbGliL3V0aWxzL2p3dC1oZWxwZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxPQUFPLFNBQVM7SUFFbEIsTUFBTSxDQUFDLE1BQU0sQ0FBQyxLQUFVO1FBQ3BCLElBQUksU0FBUyxHQUFHLEtBQUssQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUE7UUFDbkMsSUFBSSxNQUFNLEdBQUcsU0FBUyxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsR0FBRyxDQUFDLENBQUMsT0FBTyxDQUFDLElBQUksRUFBRSxHQUFHLENBQUMsQ0FBQztRQUM3RCxJQUFJLFdBQVcsR0FBRyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUM7WUFDdkUsT0FBTyxHQUFHLEdBQUcsQ0FBQyxJQUFJLEdBQUcsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNqRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztRQUNiLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxXQUFXLENBQUMsQ0FBQTtJQUNsQyxDQUFDO0NBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgY2xhc3MgSnd0SGVscGVyIHtcclxuXHJcbiAgICBzdGF0aWMgZGVjb2RlKHRva2VuOiBhbnkpIHtcclxuICAgICAgICBsZXQgYmFzZTY0VXJsID0gdG9rZW4uc3BsaXQoJy4nKVsxXVxyXG4gICAgICAgIGxldCBiYXNlNjQgPSBiYXNlNjRVcmwucmVwbGFjZSgvLS9nLCAnKycpLnJlcGxhY2UoL18vZywgJy8nKTtcclxuICAgICAgICBsZXQganNvblBheWxvYWQgPSBkZWNvZGVVUklDb21wb25lbnQoYXRvYihiYXNlNjQpLnNwbGl0KCcnKS5tYXAoZnVuY3Rpb24gKGMpIHtcclxuICAgICAgICAgICAgcmV0dXJuICclJyArICgnMDAnICsgYy5jaGFyQ29kZUF0KDApLnRvU3RyaW5nKDE2KSkuc2xpY2UoLTIpO1xyXG4gICAgICAgIH0pLmpvaW4oJycpKTtcclxuICAgICAgICByZXR1cm4gSlNPTi5wYXJzZShqc29uUGF5bG9hZClcclxuICAgIH1cclxufSJdfQ==
|
package/fesm2022/zek.mjs
CHANGED
|
@@ -905,7 +905,7 @@ class HtmlHelper {
|
|
|
905
905
|
}
|
|
906
906
|
|
|
907
907
|
class JwtHelper {
|
|
908
|
-
static
|
|
908
|
+
static decode(token) {
|
|
909
909
|
let base64Url = token.split('.')[1];
|
|
910
910
|
let base64 = base64Url.replace(/-/g, '+').replace(/_/g, '/');
|
|
911
911
|
let jsonPayload = decodeURIComponent(atob(base64).split('').map(function (c) {
|
|
@@ -4906,11 +4906,11 @@ class ZekFieldValidator {
|
|
|
4906
4906
|
console.log(this.field.errors);
|
|
4907
4907
|
}
|
|
4908
4908
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.1", ngImport: i0, type: ZekFieldValidator, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
4909
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.0.1", type: ZekFieldValidator, selector: "zek-field-validator, [zek-field-validator]", inputs: { field: "field" }, host: { properties: { "class": "\"invalid-tooltip\"" } }, ngImport: i0, template: "<ng-container *ngIf=\"field\">\r\n <ng-container *ngIf=\"field.invalid && (field.dirty || field.touched || field.formDirective?.submitted)\">\r\n <ng-container *ngIf=\"field.errors\">\r\n <ng-container *ngIf=\"field.errors.required\">{{ 'Validation.Required' | translate }}</ng-container>\r\n <ng-container *ngIf=\"field.errors.minlength\">{{ 'Validation.MinLengthFormat' | translate:{ value: field.errors.minlength.requiredLength } }}</ng-container>\r\n <ng-container *ngIf=\"field.errors.maxlength\">{{ 'Validation.MaxLengthFormat' | translate:{ value: field.errors.maxlength.requiredLength } }}</ng-container>\r\n <ng-container *ngIf=\"field.errors.email\">{{ 'Validation.Pattern' | translate }}</ng-container>\r\n <ng-container *ngIf=\"field.errors.pattern\">{{ 'Validation.Pattern' | translate }}</ng-container><!-- {{ field.errors.pattern.requiredPattern }} -->\r\n <ng-container *ngIf=\"field.errors.server\">{{field.errors.server}}</ng-container>\r\n </ng-container>\r\n </ng-container>\r\n</ng-container>", dependencies: [{ kind: "directive", type: i1$3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i1$1.TranslatePipe, name: "translate" }] }); }
|
|
4909
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.0.1", type: ZekFieldValidator, selector: "zek-field-validator, [zek-field-validator]", inputs: { field: "field" }, host: { properties: { "class": "\"invalid-tooltip\"" } }, ngImport: i0, template: "<ng-container *ngIf=\"field\">\r\n <ng-container *ngIf=\"field.invalid && (field.dirty || field.touched || field.formDirective?.submitted)\">\r\n <ng-container *ngIf=\"field.errors\">\r\n <ng-container *ngIf=\"field.errors.required\">{{ 'Validation.Required' | translate }}</ng-container>\r\n <ng-container *ngIf=\"field.errors.minlength\">{{ 'Validation.MinLengthFormat' | translate:{ value: field.errors.minlength.requiredLength } }}</ng-container>\r\n <ng-container *ngIf=\"field.errors.maxlength\">{{ 'Validation.MaxLengthFormat' | translate:{ value: field.errors.maxlength.requiredLength } }}</ng-container>\r\n <ng-container *ngIf=\"field.errors.email\">{{ 'Validation.Pattern' | translate }}</ng-container>\r\n <ng-container *ngIf=\"field.errors.pattern\">{{ 'Validation.Pattern' | translate }}</ng-container><!-- {{ field.errors.pattern.requiredPattern }} -->\r\n <ng-container *ngIf=\"field.errors.mismatch\">{{ 'Validation.Mismatch' | translate }}</ng-container>\r\n <ng-container *ngIf=\"field.errors.server\">{{field.errors.server}}</ng-container>\r\n </ng-container>\r\n </ng-container>\r\n</ng-container>", dependencies: [{ kind: "directive", type: i1$3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i1$1.TranslatePipe, name: "translate" }] }); }
|
|
4910
4910
|
}
|
|
4911
4911
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.1", ngImport: i0, type: ZekFieldValidator, decorators: [{
|
|
4912
4912
|
type: Component,
|
|
4913
|
-
args: [{ selector: 'zek-field-validator, [zek-field-validator]', host: { '[class]': '"invalid-tooltip"' }, template: "<ng-container *ngIf=\"field\">\r\n <ng-container *ngIf=\"field.invalid && (field.dirty || field.touched || field.formDirective?.submitted)\">\r\n <ng-container *ngIf=\"field.errors\">\r\n <ng-container *ngIf=\"field.errors.required\">{{ 'Validation.Required' | translate }}</ng-container>\r\n <ng-container *ngIf=\"field.errors.minlength\">{{ 'Validation.MinLengthFormat' | translate:{ value: field.errors.minlength.requiredLength } }}</ng-container>\r\n <ng-container *ngIf=\"field.errors.maxlength\">{{ 'Validation.MaxLengthFormat' | translate:{ value: field.errors.maxlength.requiredLength } }}</ng-container>\r\n <ng-container *ngIf=\"field.errors.email\">{{ 'Validation.Pattern' | translate }}</ng-container>\r\n <ng-container *ngIf=\"field.errors.pattern\">{{ 'Validation.Pattern' | translate }}</ng-container><!-- {{ field.errors.pattern.requiredPattern }} -->\r\n <ng-container *ngIf=\"field.errors.server\">{{field.errors.server}}</ng-container>\r\n </ng-container>\r\n </ng-container>\r\n</ng-container>" }]
|
|
4913
|
+
args: [{ selector: 'zek-field-validator, [zek-field-validator]', host: { '[class]': '"invalid-tooltip"' }, template: "<ng-container *ngIf=\"field\">\r\n <ng-container *ngIf=\"field.invalid && (field.dirty || field.touched || field.formDirective?.submitted)\">\r\n <ng-container *ngIf=\"field.errors\">\r\n <ng-container *ngIf=\"field.errors.required\">{{ 'Validation.Required' | translate }}</ng-container>\r\n <ng-container *ngIf=\"field.errors.minlength\">{{ 'Validation.MinLengthFormat' | translate:{ value: field.errors.minlength.requiredLength } }}</ng-container>\r\n <ng-container *ngIf=\"field.errors.maxlength\">{{ 'Validation.MaxLengthFormat' | translate:{ value: field.errors.maxlength.requiredLength } }}</ng-container>\r\n <ng-container *ngIf=\"field.errors.email\">{{ 'Validation.Pattern' | translate }}</ng-container>\r\n <ng-container *ngIf=\"field.errors.pattern\">{{ 'Validation.Pattern' | translate }}</ng-container><!-- {{ field.errors.pattern.requiredPattern }} -->\r\n <ng-container *ngIf=\"field.errors.mismatch\">{{ 'Validation.Mismatch' | translate }}</ng-container>\r\n <ng-container *ngIf=\"field.errors.server\">{{field.errors.server}}</ng-container>\r\n </ng-container>\r\n </ng-container>\r\n</ng-container>" }]
|
|
4914
4914
|
}], ctorParameters: function () { return []; }, propDecorators: { field: [{
|
|
4915
4915
|
type: Input
|
|
4916
4916
|
}] } });
|
|
@@ -6400,28 +6400,51 @@ function nullValidator(control) {
|
|
|
6400
6400
|
}
|
|
6401
6401
|
class Validators {
|
|
6402
6402
|
/**
|
|
6403
|
-
|
|
6404
|
-
|
|
6405
|
-
|
|
6406
|
-
|
|
6407
|
-
|
|
6408
|
-
|
|
6409
|
-
|
|
6410
|
-
|
|
6411
|
-
|
|
6412
|
-
|
|
6413
|
-
|
|
6414
|
-
|
|
6415
|
-
|
|
6416
|
-
|
|
6417
|
-
|
|
6418
|
-
|
|
6419
|
-
|
|
6420
|
-
|
|
6421
|
-
|
|
6403
|
+
* @description
|
|
6404
|
+
* Validator that requires the control's value to be less than or equal to the provided number.
|
|
6405
|
+
*
|
|
6406
|
+
* @usageNotes
|
|
6407
|
+
*
|
|
6408
|
+
* ### Validate against a range 0 - 15
|
|
6409
|
+
*
|
|
6410
|
+
* ```typescript
|
|
6411
|
+
* const control = new FormControl(16, Validators.max([0,15]));
|
|
6412
|
+
*
|
|
6413
|
+
* console.log(control.errors); // {range: {min: 0, max: 15, actual: 16}}
|
|
6414
|
+
* ```
|
|
6415
|
+
*
|
|
6416
|
+
* @returns A validator function that returns an error map with the
|
|
6417
|
+
* `range` property if the validation check fails, otherwise `null`.
|
|
6418
|
+
*
|
|
6419
|
+
* @see `updateValueAndValidity()`
|
|
6420
|
+
*
|
|
6421
|
+
*/
|
|
6422
6422
|
static range(min, max) {
|
|
6423
6423
|
return rangeValidator([min, max]);
|
|
6424
6424
|
}
|
|
6425
|
+
/**
|
|
6426
|
+
* @description
|
|
6427
|
+
* Validator that requires the control's value to be less than or equal to the provided number.
|
|
6428
|
+
*
|
|
6429
|
+
* @usageNotes
|
|
6430
|
+
*
|
|
6431
|
+
* ### Validate against a range 0 - 15
|
|
6432
|
+
*
|
|
6433
|
+
* ```typescript
|
|
6434
|
+
* const control = new FormControl(16, Validators.max([0,15]));
|
|
6435
|
+
*
|
|
6436
|
+
* console.log(control.errors); // {range: {min: 0, max: 15, actual: 16}}
|
|
6437
|
+
* ```
|
|
6438
|
+
*
|
|
6439
|
+
* @returns A validator function that returns an error map with the
|
|
6440
|
+
* `range` property if the validation check fails, otherwise `null`.
|
|
6441
|
+
*
|
|
6442
|
+
* @see `updateValueAndValidity()`
|
|
6443
|
+
*
|
|
6444
|
+
*/
|
|
6445
|
+
static match(value) {
|
|
6446
|
+
return matchValidator(value);
|
|
6447
|
+
}
|
|
6425
6448
|
}
|
|
6426
6449
|
/**
|
|
6427
6450
|
* Validator that requires the control's value to be between provided numbers.
|
|
@@ -6441,6 +6464,22 @@ function rangeValidator(range) {
|
|
|
6441
6464
|
return null;
|
|
6442
6465
|
};
|
|
6443
6466
|
}
|
|
6467
|
+
function matchValidator(target) {
|
|
6468
|
+
return (control) => {
|
|
6469
|
+
if (isEmptyInputValue(control.value)) {
|
|
6470
|
+
return null; // don't validate empty values to allow optional controls
|
|
6471
|
+
}
|
|
6472
|
+
const targetCtrl = control.get(target);
|
|
6473
|
+
if (!targetCtrl)
|
|
6474
|
+
return null;
|
|
6475
|
+
const value = control.value;
|
|
6476
|
+
const targetValue = targetCtrl.value;
|
|
6477
|
+
if (targetValue !== value) {
|
|
6478
|
+
return { 'mismatch': { 'target': targetValue, 'actual': control.value } };
|
|
6479
|
+
}
|
|
6480
|
+
return null;
|
|
6481
|
+
};
|
|
6482
|
+
}
|
|
6444
6483
|
|
|
6445
6484
|
const RANGE_VALIDATOR = {
|
|
6446
6485
|
provide: NG_VALIDATORS,
|
|
@@ -6512,6 +6551,38 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.1", ngImpor
|
|
|
6512
6551
|
}], propDecorators: { range: [{
|
|
6513
6552
|
type: Input
|
|
6514
6553
|
}] } });
|
|
6554
|
+
/**
|
|
6555
|
+
* @description
|
|
6556
|
+
* Provider which adds `MatchValidator` to the `NG_VALIDATORS` multi-provider list.
|
|
6557
|
+
*/
|
|
6558
|
+
const MATCH_VALIDATOR = {
|
|
6559
|
+
provide: NG_VALIDATORS,
|
|
6560
|
+
useExisting: forwardRef(() => matchValidator),
|
|
6561
|
+
multi: true
|
|
6562
|
+
};
|
|
6563
|
+
class MatchValidator extends AbstractValidatorDirective {
|
|
6564
|
+
constructor() {
|
|
6565
|
+
super(...arguments);
|
|
6566
|
+
/** @internal */
|
|
6567
|
+
this.inputName = 'match';
|
|
6568
|
+
/** @internal */
|
|
6569
|
+
this.normalizeInput = (input) => input.trim();
|
|
6570
|
+
/** @internal */
|
|
6571
|
+
this.createValidator = (target) => matchValidator(target);
|
|
6572
|
+
}
|
|
6573
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.1", ngImport: i0, type: MatchValidator, deps: null, target: i0.ɵɵFactoryTarget.Directive }); }
|
|
6574
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.0.1", type: MatchValidator, selector: "input[match][formControlName],input[match][formControl],input[match][ngModel]", inputs: { equals: "equals" }, host: { properties: { "attr.match": "_enabled ? match : null" } }, providers: [MATCH_VALIDATOR], usesInheritance: true, ngImport: i0 }); }
|
|
6575
|
+
}
|
|
6576
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.1", ngImport: i0, type: MatchValidator, decorators: [{
|
|
6577
|
+
type: Directive,
|
|
6578
|
+
args: [{
|
|
6579
|
+
selector: 'input[match][formControlName],input[match][formControl],input[match][ngModel]',
|
|
6580
|
+
providers: [MATCH_VALIDATOR],
|
|
6581
|
+
host: { '[attr.match]': '_enabled ? match : null' }
|
|
6582
|
+
}]
|
|
6583
|
+
}], propDecorators: { equals: [{
|
|
6584
|
+
type: Input
|
|
6585
|
+
}] } });
|
|
6515
6586
|
|
|
6516
6587
|
class ValidatorsModule {
|
|
6517
6588
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.1", ngImport: i0, type: ValidatorsModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
@@ -6638,5 +6709,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.1", ngImpor
|
|
|
6638
6709
|
* Generated bundle index. Do not edit.
|
|
6639
6710
|
*/
|
|
6640
6711
|
|
|
6641
|
-
export { API_BASE_URL, AgeModule, AgePipe, Alert, AlertModule, AlertService, AppBaseModule, ArrayHelper, AuthGuardService, AuthService, AutoCompleteDirective, AutoCompleteModule, Base64Helper, BaseAlert, BaseComponent, BaseService, BitwiseHelper, BootstrapHelper, ButtonBrowseComponent, ButtonBrowseModalBaseComponent, ButtonBrowseModalToolbarComponent, ButtonBrowseModule, CallbackModule, CallbackPipe, CardComponent, CardModule, Color, ComponentType, Convert, CoreComponent, CoreUiComponent, CrudService, CssHelper, CustomHttpParamEncoder, DATE_FORMAT, DateAgoModule, DateAgoPipe, DateHelper, DateValueAccessor, DatepickerModule, EditBase, EditBaseComponent, EditComponent, EditFormComponent, EditToolbarComponent, EditToolbarModule, FileBase, FileBytes, FileHelper, FileModule, FileSizePipe, FileString, FileViewerModule, FilterBase, FilterHelper, Gender, GridToolbarBarComponent, GridToolbarComponent, GridToolbarModule, HtmlHelper, HttpErrorHandler, JwtHelper, KeyPair, KeyPairChecked, KeyPairEx, KeyPairRequired, LANGUAGE, ListBase, ListBaseComponent, ListToolbarComponent, ListToolbarModule, MathHelper, Month, ObjectHelper, OverlapHelper, PageTitleComponent, PageTitleModule, PagedList, PagedListBase, Pager, PagerBase, PagerHelper, PasswordModule, PeriodRelation, PrintType, ProgressModule, RECAPTCHA_SITE_KEY, RadioComponent, RadioModule, RandomHelper, RangeValidator, ReCaptchaService, ReadOnlyDirective, ReadOnlyModule, RecaptchaModule, Select2Component, Select2Module, StorageHelper, StringHelper, TimeHelper, TimeModule, TimePipe, TimerService, Toast, Tree, UrlHelper, ValidEventArgs, ValidationHelper, ValidatorModule, Validators, ValidatorsModule, WebApiClient, WebApiModule, WizardComponent, WizardComponent2, WizardModule, ZekAlert, ZekApproveModal, ZekDeleteModal, ZekDisapproveModal, ZekFieldValidator, ZekFileViewer, ZekFilterModal, ZekLoading, ZekLoadingModule, ZekModal, ZekModalModule, ZekPager, ZekPagerModule, ZekPassword, ZekProgress, ZekRestoreModal, ZekSafeModule, ZekSafePipe, ZekSelect2Multiple, ZekSelect2MultipleModule, ZekSelectModule, ZekSelectMultiple, ZekSort, ZekSortButtonGroup, ZekSortModule, ZekSubmitModal, ZekSumModal, ZekToast, ZekValidation, firstBy, handler, nullValidator, rangeValidator };
|
|
6712
|
+
export { API_BASE_URL, AgeModule, AgePipe, Alert, AlertModule, AlertService, AppBaseModule, ArrayHelper, AuthGuardService, AuthService, AutoCompleteDirective, AutoCompleteModule, Base64Helper, BaseAlert, BaseComponent, BaseService, BitwiseHelper, BootstrapHelper, ButtonBrowseComponent, ButtonBrowseModalBaseComponent, ButtonBrowseModalToolbarComponent, ButtonBrowseModule, CallbackModule, CallbackPipe, CardComponent, CardModule, Color, ComponentType, Convert, CoreComponent, CoreUiComponent, CrudService, CssHelper, CustomHttpParamEncoder, DATE_FORMAT, DateAgoModule, DateAgoPipe, DateHelper, DateValueAccessor, DatepickerModule, EditBase, EditBaseComponent, EditComponent, EditFormComponent, EditToolbarComponent, EditToolbarModule, FileBase, FileBytes, FileHelper, FileModule, FileSizePipe, FileString, FileViewerModule, FilterBase, FilterHelper, Gender, GridToolbarBarComponent, GridToolbarComponent, GridToolbarModule, HtmlHelper, HttpErrorHandler, JwtHelper, KeyPair, KeyPairChecked, KeyPairEx, KeyPairRequired, LANGUAGE, ListBase, ListBaseComponent, ListToolbarComponent, ListToolbarModule, MATCH_VALIDATOR, MatchValidator, MathHelper, Month, ObjectHelper, OverlapHelper, PageTitleComponent, PageTitleModule, PagedList, PagedListBase, Pager, PagerBase, PagerHelper, PasswordModule, PeriodRelation, PrintType, ProgressModule, RECAPTCHA_SITE_KEY, RadioComponent, RadioModule, RandomHelper, RangeValidator, ReCaptchaService, ReadOnlyDirective, ReadOnlyModule, RecaptchaModule, Select2Component, Select2Module, StorageHelper, StringHelper, TimeHelper, TimeModule, TimePipe, TimerService, Toast, Tree, UrlHelper, ValidEventArgs, ValidationHelper, ValidatorModule, Validators, ValidatorsModule, WebApiClient, WebApiModule, WizardComponent, WizardComponent2, WizardModule, ZekAlert, ZekApproveModal, ZekDeleteModal, ZekDisapproveModal, ZekFieldValidator, ZekFileViewer, ZekFilterModal, ZekLoading, ZekLoadingModule, ZekModal, ZekModalModule, ZekPager, ZekPagerModule, ZekPassword, ZekProgress, ZekRestoreModal, ZekSafeModule, ZekSafePipe, ZekSelect2Multiple, ZekSelect2MultipleModule, ZekSelectModule, ZekSelectMultiple, ZekSort, ZekSortButtonGroup, ZekSortModule, ZekSubmitModal, ZekSumModal, ZekToast, ZekValidation, firstBy, handler, matchValidator, nullValidator, rangeValidator };
|
|
6642
6713
|
//# sourceMappingURL=zek.mjs.map
|