zek 16.0.21 → 16.0.23

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.
@@ -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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmllbGQtdmFsaWRhdG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvemVrL3NyYy9saWIvbW9kdWxlcy92YWxpZGF0b3IvZmllbGQtdmFsaWRhdG9yLnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvemVrL3NyYy9saWIvbW9kdWxlcy92YWxpZGF0b3IvZmllbGQtdmFsaWRhdG9yLmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7Ozs7QUFFakQsTUFLYSxpQkFBaUI7SUFFMUIsNEJBQTRCO0lBRTVCO1FBQ0ksSUFBSSxJQUFJLENBQUMsS0FBSztZQUNWLE9BQU8sQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUN2QyxDQUFDOzhHQVBRLGlCQUFpQjtrR0FBakIsaUJBQWlCLHdLQ1A5Qiw2a0NBV2U7O1NESkYsaUJBQWlCOzJGQUFqQixpQkFBaUI7a0JBTDdCLFNBQVM7K0JBQ0ksNENBQTRDLFFBQ2hELEVBQUUsU0FBUyxFQUFFLG1CQUFtQixFQUFFOzBFQUkvQixLQUFLO3NCQUFiLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICAgIHNlbGVjdG9yOiAnemVrLWZpZWxkLXZhbGlkYXRvciwgW3play1maWVsZC12YWxpZGF0b3JdJyxcclxuICAgIGhvc3Q6IHsgJ1tjbGFzc10nOiAnXCJpbnZhbGlkLXRvb2x0aXBcIicgfSxcclxuICAgIHRlbXBsYXRlVXJsOiAnLi9maWVsZC12YWxpZGF0b3IuaHRtbCdcclxufSlcclxuZXhwb3J0IGNsYXNzIFpla0ZpZWxkVmFsaWRhdG9yIHtcclxuICAgIEBJbnB1dCgpIGZpZWxkOiBhbnk7XHJcbiAgICAvLyBASW5wdXQoKSBmaWVsZD86IE5nTW9kZWw7XHJcblxyXG4gICAgY29uc3RydWN0b3IoKSB7XHJcbiAgICAgICAgaWYgKHRoaXMuZmllbGQpXHJcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKHRoaXMuZmllbGQuZXJyb3JzKTtcclxuICAgIH1cclxufSIsIjxuZy1jb250YWluZXIgKm5nSWY9XCJmaWVsZFwiPlxyXG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImZpZWxkLmludmFsaWQgJiYgKGZpZWxkLmRpcnR5IHx8IGZpZWxkLnRvdWNoZWQgfHwgZmllbGQuZm9ybURpcmVjdGl2ZT8uc3VibWl0dGVkKVwiPlxyXG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJmaWVsZC5lcnJvcnNcIj5cclxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImZpZWxkLmVycm9ycy5yZXF1aXJlZFwiPnt7ICdWYWxpZGF0aW9uLlJlcXVpcmVkJyB8IHRyYW5zbGF0ZSB9fTwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiZmllbGQuZXJyb3JzLm1pbmxlbmd0aFwiPnt7ICdWYWxpZGF0aW9uLk1pbkxlbmd0aEZvcm1hdCcgfCB0cmFuc2xhdGU6eyB2YWx1ZTogZmllbGQuZXJyb3JzLm1pbmxlbmd0aC5yZXF1aXJlZExlbmd0aCB9IH19PC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJmaWVsZC5lcnJvcnMubWF4bGVuZ3RoXCI+e3sgJ1ZhbGlkYXRpb24uTWF4TGVuZ3RoRm9ybWF0JyB8IHRyYW5zbGF0ZTp7IHZhbHVlOiBmaWVsZC5lcnJvcnMubWF4bGVuZ3RoLnJlcXVpcmVkTGVuZ3RoIH0gfX08L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImZpZWxkLmVycm9ycy5lbWFpbFwiPnt7ICdWYWxpZGF0aW9uLlBhdHRlcm4nIHwgdHJhbnNsYXRlIH19PC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJmaWVsZC5lcnJvcnMucGF0dGVyblwiPnt7ICdWYWxpZGF0aW9uLlBhdHRlcm4nIHwgdHJhbnNsYXRlIH19PC9uZy1jb250YWluZXI+PCEtLSB7eyBmaWVsZC5lcnJvcnMucGF0dGVybi5yZXF1aXJlZFBhdHRlcm4gfX0gLS0+XHJcbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJmaWVsZC5lcnJvcnMuc2VydmVyXCI+e3tmaWVsZC5lcnJvcnMuc2VydmVyfX08L25nLWNvbnRhaW5lcj5cclxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgIDwvbmctY29udGFpbmVyPlxyXG48L25nLWNvbnRhaW5lcj4iXX0=
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
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvemVrL3NyYy9saWIvbW9kdWxlcy92YWxpZGF0b3JzL2RpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFPQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxLQUFLLEVBQW9DLE1BQU0sZUFBZSxDQUFDO0FBQy9GLE9BQU8sRUFBbUIsYUFBYSxFQUE0QyxNQUFNLGdCQUFnQixDQUFDO0FBQzFHLE9BQU8sRUFBRSxhQUFhLEVBQUUsY0FBYyxFQUFFLE1BQU0sYUFBYSxDQUFDOztBQVQ1RCxNQUFNLGVBQWUsR0FBUTtJQUN6QixPQUFPLEVBQUUsYUFBYTtJQUN0QixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLGNBQWMsQ0FBQztJQUM3QyxLQUFLLEVBQUUsSUFBSTtDQUNkLENBQUM7QUFPRixTQUFTLE9BQU8sQ0FBQyxLQUFzQjtJQUNuQyxPQUFPLE9BQU8sS0FBSyxLQUFLLFFBQVEsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLENBQUM7QUFDakUsQ0FBQztBQUdELE1BQ2UsMEJBQTBCO0lBRHpDO1FBRVksZUFBVSxHQUFnQixhQUFhLENBQUM7S0F1RW5EO0lBaENHLGFBQWE7SUFDYixXQUFXLENBQUMsT0FBc0I7UUFDOUIsSUFBSSxJQUFJLENBQUMsU0FBUyxJQUFJLE9BQU8sRUFBRTtZQUMzQixNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsWUFBWSxDQUFDLENBQUM7WUFDeEUsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ3BDLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsYUFBYSxDQUFDO1lBQzlFLElBQUksSUFBSSxDQUFDLFNBQVMsRUFBRTtnQkFDaEIsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO2FBQ3BCO1NBQ0o7SUFDTCxDQUFDO0lBRUQsYUFBYTtJQUNiLFFBQVEsQ0FBQyxPQUF3QjtRQUM3QixPQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDcEMsQ0FBQztJQUVELGFBQWE7SUFDYix5QkFBeUIsQ0FBQyxFQUFjO1FBQ3BDLElBQUksQ0FBQyxTQUFTLEdBQUcsRUFBRSxDQUFDO0lBQ3hCLENBQUM7SUFFRDs7Ozs7O09BTUc7SUFDSCxPQUFPLENBQUMsS0FBYztRQUNsQixPQUFPLEtBQUssSUFBSSxJQUFJLENBQUMsaUNBQWlDLENBQUM7SUFDM0QsQ0FBQzs4R0F2RVUsMEJBQTBCO2tHQUExQiwwQkFBMEI7OzJGQUExQiwwQkFBMEI7a0JBRHhDLFNBQVM7O0FBNkVWLE1BS2EsY0FBZSxTQUFRLDBCQUEwQjtJQUw5RDs7UUFRSSxnQkFBZ0I7UUFDUCxjQUFTLEdBQUcsT0FBTyxDQUFDO1FBQzdCLGdCQUFnQjtRQUNQLG1CQUFjLEdBQUcsQ0FBQyxLQUFzQixFQUFVLEVBQUUsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDN0UsZ0JBQWdCO1FBQ1Asb0JBQWUsR0FBRyxDQUFDLEtBQWUsRUFBZSxFQUFFLENBQUMsY0FBYyxDQUFDLEtBQUssQ0FBQyxDQUFDO0tBQ3RGOzhHQVRZLGNBQWM7a0dBQWQsY0FBYyw4T0FIWixDQUFDLGVBQWUsQ0FBQzs7U0FHbkIsY0FBYzsyRkFBZCxjQUFjO2tCQUwxQixTQUFTO21CQUFDO29CQUNQLFFBQVEsRUFBRSxzSEFBc0g7b0JBQ2hJLFNBQVMsRUFBRSxDQUFDLGVBQWUsQ0FBQztvQkFDNUIsSUFBSSxFQUFFLEVBQUUsY0FBYyxFQUFFLHlCQUF5QixFQUFFO2lCQUN0RDs4QkFFWSxLQUFLO3NCQUFiLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJjb25zdCBSQU5HRV9WQUxJREFUT1I6IGFueSA9IHtcclxuICAgIHByb3ZpZGU6IE5HX1ZBTElEQVRPUlMsXHJcbiAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBSYW5nZVZhbGlkYXRvciksXHJcbiAgICBtdWx0aTogdHJ1ZVxyXG59O1xyXG5cclxuXHJcbmltcG9ydCB7IERpcmVjdGl2ZSwgZm9yd2FyZFJlZiwgSW5wdXQsIE9uQ2hhbmdlcywgT25Jbml0LCBTaW1wbGVDaGFuZ2VzIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHsgQWJzdHJhY3RDb250cm9sLCBOR19WQUxJREFUT1JTLCBWYWxpZGF0aW9uRXJyb3JzLCBWYWxpZGF0b3IsIFZhbGlkYXRvckZuIH0gZnJvbSBcIkBhbmd1bGFyL2Zvcm1zXCI7XHJcbmltcG9ydCB7IG51bGxWYWxpZGF0b3IsIHJhbmdlVmFsaWRhdG9yIH0gZnJvbSBcIi4vdmFsaWRhdG9yXCI7XHJcblxyXG5mdW5jdGlvbiB0b0Zsb2F0KHZhbHVlOiBzdHJpbmcgfCBudW1iZXIpOiBudW1iZXIge1xyXG4gICAgcmV0dXJuIHR5cGVvZiB2YWx1ZSA9PT0gJ251bWJlcicgPyB2YWx1ZSA6IHBhcnNlRmxvYXQodmFsdWUpO1xyXG59XHJcblxyXG5cclxuQERpcmVjdGl2ZSgpXHJcbmFic3RyYWN0IGNsYXNzIEFic3RyYWN0VmFsaWRhdG9yRGlyZWN0aXZlIGltcGxlbWVudHMgVmFsaWRhdG9yLCBPbkNoYW5nZXMge1xyXG4gICAgcHJpdmF0ZSBfdmFsaWRhdG9yOiBWYWxpZGF0b3JGbiA9IG51bGxWYWxpZGF0b3I7XHJcbiAgICBwcml2YXRlIF9vbkNoYW5nZSE6ICgpID0+IHZvaWQ7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBBIGZsYWcgdGhhdCB0cmFja3Mgd2hldGhlciB0aGlzIHZhbGlkYXRvciBpcyBlbmFibGVkLlxyXG4gICAgICpcclxuICAgICAqIE1hcmtpbmcgaXQgYGludGVybmFsYCAodnMgYHByb3RlY3RlZGApLCBzbyB0aGF0IHRoaXMgZmxhZyBjYW4gYmUgdXNlZCBpbiBob3N0IGJpbmRpbmdzIG9mXHJcbiAgICAgKiBkaXJlY3RpdmUgY2xhc3NlcyB0aGF0IGV4dGVuZCB0aGlzIGJhc2UgY2xhc3MuXHJcbiAgICAgKiBAaW50ZXJuYWxcclxuICAgICAqL1xyXG4gICAgX2VuYWJsZWQ/OiBib29sZWFuO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogTmFtZSBvZiBhbiBpbnB1dCB0aGF0IG1hdGNoZXMgZGlyZWN0aXZlIHNlbGVjdG9yIGF0dHJpYnV0ZSAoZS5nLiBgbWlubGVuZ3RoYCBmb3JcclxuICAgICAqIGBNaW5MZW5ndGhEaXJlY3RpdmVgKS4gQW4gaW5wdXQgd2l0aCBhIGdpdmVuIG5hbWUgbWlnaHQgY29udGFpbiBjb25maWd1cmF0aW9uIGluZm9ybWF0aW9uIChsaWtlXHJcbiAgICAgKiBgbWlubGVuZ3RoPScxMCdgKSBvciBhIGZsYWcgdGhhdCBpbmRpY2F0ZXMgd2hldGhlciB2YWxpZGF0b3Igc2hvdWxkIGJlIGVuYWJsZWQgKGxpa2VcclxuICAgICAqIGBbcmVxdWlyZWRdPSdmYWxzZSdgKS5cclxuICAgICAqXHJcbiAgICAgKiBAaW50ZXJuYWxcclxuICAgICAqL1xyXG4gICAgYWJzdHJhY3QgaW5wdXROYW1lOiBzdHJpbmc7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBDcmVhdGVzIGFuIGluc3RhbmNlIG9mIGEgdmFsaWRhdG9yIChzcGVjaWZpYyB0byBhIGRpcmVjdGl2ZSB0aGF0IGV4dGVuZHMgdGhpcyBiYXNlIGNsYXNzKS5cclxuICAgICAqXHJcbiAgICAgKiBAaW50ZXJuYWxcclxuICAgICAqL1xyXG4gICAgYWJzdHJhY3QgY3JlYXRlVmFsaWRhdG9yKGlucHV0OiB1bmtub3duKTogVmFsaWRhdG9yRm47XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBQZXJmb3JtcyB0aGUgbmVjZXNzYXJ5IGlucHV0IG5vcm1hbGl6YXRpb24gYmFzZWQgb24gYSBzcGVjaWZpYyBsb2dpYyBvZiBhIERpcmVjdGl2ZS5cclxuICAgICAqIEZvciBleGFtcGxlLCB0aGUgZnVuY3Rpb24gbWlnaHQgYmUgdXNlZCB0byBjb252ZXJ0IHN0cmluZy1iYXNlZCByZXByZXNlbnRhdGlvbiBvZiB0aGVcclxuICAgICAqIGBtaW5sZW5ndGhgIGlucHV0IHRvIGFuIGludGVnZXIgdmFsdWUgdGhhdCBjYW4gbGF0ZXIgYmUgdXNlZCBpbiB0aGUgYFZhbGlkYXRvcnMubWluTGVuZ3RoYFxyXG4gICAgICogdmFsaWRhdG9yLlxyXG4gICAgICpcclxuICAgICAqIEBpbnRlcm5hbFxyXG4gICAgICovXHJcbiAgICBhYnN0cmFjdCBub3JtYWxpemVJbnB1dChpbnB1dDogdW5rbm93bik6IHVua25vd247XHJcblxyXG4gICAgLyoqIEBub2RvYyAqL1xyXG4gICAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xyXG4gICAgICAgIGlmICh0aGlzLmlucHV0TmFtZSBpbiBjaGFuZ2VzKSB7XHJcbiAgICAgICAgICAgIGNvbnN0IGlucHV0ID0gdGhpcy5ub3JtYWxpemVJbnB1dChjaGFuZ2VzW3RoaXMuaW5wdXROYW1lXS5jdXJyZW50VmFsdWUpO1xyXG4gICAgICAgICAgICB0aGlzLl9lbmFibGVkID0gdGhpcy5lbmFibGVkKGlucHV0KTtcclxuICAgICAgICAgICAgdGhpcy5fdmFsaWRhdG9yID0gdGhpcy5fZW5hYmxlZCA/IHRoaXMuY3JlYXRlVmFsaWRhdG9yKGlucHV0KSA6IG51bGxWYWxpZGF0b3I7XHJcbiAgICAgICAgICAgIGlmICh0aGlzLl9vbkNoYW5nZSkge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5fb25DaGFuZ2UoKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAvKiogQG5vZG9jICovXHJcbiAgICB2YWxpZGF0ZShjb250cm9sOiBBYnN0cmFjdENvbnRyb2wpOiBWYWxpZGF0aW9uRXJyb3JzIHwgbnVsbCB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX3ZhbGlkYXRvcihjb250cm9sKTtcclxuICAgIH1cclxuXHJcbiAgICAvKiogQG5vZG9jICovXHJcbiAgICByZWdpc3Rlck9uVmFsaWRhdG9yQ2hhbmdlKGZuOiAoKSA9PiB2b2lkKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5fb25DaGFuZ2UgPSBmbjtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIEBkZXNjcmlwdGlvblxyXG4gICAgICogRGV0ZXJtaW5lcyB3aGV0aGVyIHRoaXMgdmFsaWRhdG9yIHNob3VsZCBiZSBhY3RpdmUgb3Igbm90IGJhc2VkIG9uIGFuIGlucHV0LlxyXG4gICAgICogQmFzZSBjbGFzcyBpbXBsZW1lbnRhdGlvbiBjaGVja3Mgd2hldGhlciBhbiBpbnB1dCBpcyBkZWZpbmVkIChpZiB0aGUgdmFsdWUgaXMgZGlmZmVyZW50IGZyb21cclxuICAgICAqIGBudWxsYCBhbmQgYHVuZGVmaW5lZGApLiBWYWxpZGF0b3IgY2xhc3NlcyB0aGF0IGV4dGVuZCB0aGlzIGJhc2UgY2xhc3MgY2FuIG92ZXJyaWRlIHRoaXNcclxuICAgICAqIGZ1bmN0aW9uIHdpdGggdGhlIGxvZ2ljIHNwZWNpZmljIHRvIGEgcGFydGljdWxhciB2YWxpZGF0b3IgZGlyZWN0aXZlLlxyXG4gICAgICovXHJcbiAgICBlbmFibGVkKGlucHV0OiB1bmtub3duKTogYm9vbGVhbiB7XHJcbiAgICAgICAgcmV0dXJuIGlucHV0ICE9IG51bGwgLyogYm90aCBgbnVsbGAgYW5kIGB1bmRlZmluZWRgICovO1xyXG4gICAgfVxyXG59XHJcblxyXG5cclxuXHJcbkBEaXJlY3RpdmUoe1xyXG4gICAgc2VsZWN0b3I6ICdpbnB1dFt0eXBlPW51bWJlcl1bcmFuZ2VdW2Zvcm1Db250cm9sTmFtZV0saW5wdXRbdHlwZT1udW1iZXJdW3JhbmdlXVtmb3JtQ29udHJvbF0saW5wdXRbdHlwZT1udW1iZXJdW3JhbmdlXVtuZ01vZGVsXScsXHJcbiAgICBwcm92aWRlcnM6IFtSQU5HRV9WQUxJREFUT1JdLFxyXG4gICAgaG9zdDogeyAnW2F0dHIucmFuZ2VdJzogJ19lbmFibGVkID8gcmFuZ2UgOiBudWxsJyB9XHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBSYW5nZVZhbGlkYXRvciBleHRlbmRzIEFic3RyYWN0VmFsaWRhdG9yRGlyZWN0aXZlIHtcclxuICAgIEBJbnB1dCgpIHJhbmdlITogW251bWJlciwgbnVtYmVyXSB8IG51bGw7XHJcblxyXG4gICAgLyoqIEBpbnRlcm5hbCAqL1xyXG4gICAgb3ZlcnJpZGUgaW5wdXROYW1lID0gJ3JhbmdlJztcclxuICAgIC8qKiBAaW50ZXJuYWwgKi9cclxuICAgIG92ZXJyaWRlIG5vcm1hbGl6ZUlucHV0ID0gKGlucHV0OiBzdHJpbmcgfCBudW1iZXIpOiBudW1iZXIgPT4gdG9GbG9hdChpbnB1dCk7XHJcbiAgICAvKiogQGludGVybmFsICovXHJcbiAgICBvdmVycmlkZSBjcmVhdGVWYWxpZGF0b3IgPSAocmFuZ2U6IFtudW1iZXJdKTogVmFsaWRhdG9yRm4gPT4gcmFuZ2VWYWxpZGF0b3IocmFuZ2UpO1xyXG59Il19
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
@@ -1,10 +1,11 @@
1
1
  import { NgModule } from '@angular/core';
2
2
  import { CommonModule } from '@angular/common';
3
- import { RangeValidator } from './directive';
3
+ import { MatchValidator, RangeValidator } from './directive';
4
4
  import * as i0 from "@angular/core";
5
5
  class ValidatorsModule {
6
6
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.1", ngImport: i0, type: ValidatorsModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
7
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.0.1", ngImport: i0, type: ValidatorsModule, declarations: [RangeValidator], imports: [CommonModule], exports: [RangeValidator] }); }
7
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.0.1", ngImport: i0, type: ValidatorsModule, declarations: [RangeValidator,
8
+ MatchValidator], imports: [CommonModule], exports: [RangeValidator] }); }
8
9
  static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.0.1", ngImport: i0, type: ValidatorsModule, imports: [CommonModule] }); }
9
10
  }
10
11
  export { ValidatorsModule };
@@ -16,8 +17,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.1", ngImpor
16
17
  ],
17
18
  declarations: [
18
19
  RangeValidator,
20
+ MatchValidator,
19
21
  ],
20
22
  exports: [RangeValidator]
21
23
  }]
22
24
  }] });
23
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvemVrL3NyYy9saWIvbW9kdWxlcy92YWxpZGF0b3JzL21vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sYUFBYSxDQUFDOztBQUU3QyxNQVNhLGdCQUFnQjs4R0FBaEIsZ0JBQWdCOytHQUFoQixnQkFBZ0IsaUJBSnJCLGNBQWMsYUFIZCxZQUFZLGFBS04sY0FBYzsrR0FFZixnQkFBZ0IsWUFQckIsWUFBWTs7U0FPUCxnQkFBZ0I7MkZBQWhCLGdCQUFnQjtrQkFUNUIsUUFBUTttQkFBQztvQkFDTixPQUFPLEVBQUU7d0JBQ0wsWUFBWTtxQkFDZjtvQkFDRCxZQUFZLEVBQUU7d0JBQ1YsY0FBYztxQkFDakI7b0JBQ0QsT0FBTyxFQUFFLENBQUMsY0FBYyxDQUFDO2lCQUM1QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7IFJhbmdlVmFsaWRhdG9yIH0gZnJvbSAnLi9kaXJlY3RpdmUnO1xyXG5cclxuQE5nTW9kdWxlKHtcclxuICAgIGltcG9ydHM6IFtcclxuICAgICAgICBDb21tb25Nb2R1bGVcclxuICAgIF0sXHJcbiAgICBkZWNsYXJhdGlvbnM6IFtcclxuICAgICAgICBSYW5nZVZhbGlkYXRvcixcclxuICAgIF0sXHJcbiAgICBleHBvcnRzOiBbUmFuZ2VWYWxpZGF0b3JdXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBWYWxpZGF0b3JzTW9kdWxlIHsgfSJdfQ==
25
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvemVrL3NyYy9saWIvbW9kdWxlcy92YWxpZGF0b3JzL21vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsY0FBYyxFQUFFLGNBQWMsRUFBRSxNQUFNLGFBQWEsQ0FBQzs7QUFFN0QsTUFVYSxnQkFBZ0I7OEdBQWhCLGdCQUFnQjsrR0FBaEIsZ0JBQWdCLGlCQUxyQixjQUFjO1lBQ2QsY0FBYyxhQUpkLFlBQVksYUFNTixjQUFjOytHQUVmLGdCQUFnQixZQVJyQixZQUFZOztTQVFQLGdCQUFnQjsyRkFBaEIsZ0JBQWdCO2tCQVY1QixRQUFRO21CQUFDO29CQUNOLE9BQU8sRUFBRTt3QkFDTCxZQUFZO3FCQUNmO29CQUNELFlBQVksRUFBRTt3QkFDVixjQUFjO3dCQUNkLGNBQWM7cUJBQ2pCO29CQUNELE9BQU8sRUFBRSxDQUFDLGNBQWMsQ0FBQztpQkFDNUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBNYXRjaFZhbGlkYXRvciwgUmFuZ2VWYWxpZGF0b3IgfSBmcm9tICcuL2RpcmVjdGl2ZSc7XHJcblxyXG5ATmdNb2R1bGUoe1xyXG4gICAgaW1wb3J0czogW1xyXG4gICAgICAgIENvbW1vbk1vZHVsZVxyXG4gICAgXSxcclxuICAgIGRlY2xhcmF0aW9uczogW1xyXG4gICAgICAgIFJhbmdlVmFsaWRhdG9yLFxyXG4gICAgICAgIE1hdGNoVmFsaWRhdG9yLFxyXG4gICAgXSxcclxuICAgIGV4cG9ydHM6IFtSYW5nZVZhbGlkYXRvcl1cclxufSlcclxuZXhwb3J0IGNsYXNzIFZhbGlkYXRvcnNNb2R1bGUgeyB9Il19
@@ -28,28 +28,51 @@ export function nullValidator(control) {
28
28
  }
29
29
  export class Validators {
30
30
  /**
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
- */
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
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFsaWRhdG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvemVrL3NyYy9saWIvbW9kdWxlcy92YWxpZGF0b3JzL3ZhbGlkYXRvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSw4RkFBOEY7QUFJOUYsd0VBQXdFO0FBQ3hFLDRFQUE0RTtBQUU1RSxtQ0FBbUM7QUFDbkMseURBQXlEO0FBRXpELDBDQUEwQztBQUMxQyxnSEFBZ0g7QUFDaEgsU0FBUztBQUNULEtBQUs7QUFDTCx3Q0FBd0M7QUFDeEMsMEVBQTBFO0FBQzFFLGtEQUFrRDtBQUNsRCxzREFBc0Q7QUFDdEQsSUFBSTtBQUdKLFNBQVMsaUJBQWlCLENBQUMsS0FBVTtJQUNqQzs7OztPQUlHO0lBQ0gsT0FBTyxPQUFPLEtBQUssS0FBSyxXQUFXLElBQUksS0FBSyxJQUFJLElBQUksSUFBSSxDQUFDLENBQUMsT0FBTyxLQUFLLEtBQUssUUFBUSxJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsSUFBSSxLQUFLLENBQUMsTUFBTSxLQUFLLENBQUMsQ0FBQyxDQUFDO0FBQ3hJLENBQUM7QUFFRDs7R0FFRztBQUNILE1BQU0sVUFBVSxhQUFhLENBQUMsT0FBd0I7SUFDbEQsT0FBTyxJQUFJLENBQUM7QUFDaEIsQ0FBQztBQUdELE1BQU0sT0FBTyxVQUFVO0lBRW5COzs7Ozs7Ozs7Ozs7Ozs7Ozs7O0tBbUJDO0lBQ0QsTUFBTSxDQUFDLEtBQUssQ0FBQyxHQUFXLEVBQUUsR0FBVztRQUNqQyxPQUFPLGNBQWMsQ0FBQyxDQUFDLEdBQUcsRUFBRSxHQUFHLENBQUMsQ0FBQyxDQUFDO0lBQ3RDLENBQUM7Q0FFSjtBQUdEOzs7R0FHRztBQUNILE1BQU0sVUFBVSxjQUFjLENBQUMsS0FBb0I7SUFDL0MsT0FBTyxDQUFDLE9BQXdCLEVBQTJCLEVBQUU7UUFDekQsSUFBSSxpQkFBaUIsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLElBQUksaUJBQWlCLENBQUMsS0FBSyxDQUFDLElBQUksS0FBSyxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUU7WUFDbEYsT0FBTyxJQUFJLENBQUMsQ0FBRSx5REFBeUQ7U0FDMUU7UUFDRCxNQUFNLEtBQUssR0FBRyxVQUFVLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3hDLElBQUksR0FBRyxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNuQixJQUFJLEdBQUcsR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDbkIsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEtBQUssR0FBRyxHQUFHLElBQUksS0FBSyxHQUFHLEdBQUcsQ0FBQyxFQUFFO1lBQy9DLE9BQU8sRUFBRSxPQUFPLEVBQUUsRUFBRSxLQUFLLEVBQUUsR0FBRyxFQUFFLEtBQUssRUFBRSxHQUFHLEVBQUUsUUFBUSxFQUFFLE9BQU8sQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDO1NBQzNFO1FBRUQsT0FBTyxJQUFJLENBQUM7SUFDaEIsQ0FBQyxDQUFDO0FBQ04sQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIGltcG9ydCB7IEFic3RyYWN0Q29udHJvbCwgVmFsaWRhdG9ycywgVmFsaWRhdG9yRm4sIFZhbGlkYXRpb25FcnJvcnMgfSBmcm9tICdAYW5ndWxhci9mb3JtcydcclxuXHJcbmltcG9ydCB7IEFic3RyYWN0Q29udHJvbCwgVmFsaWRhdGlvbkVycm9ycywgVmFsaWRhdG9yRm4gfSBmcm9tIFwiQGFuZ3VsYXIvZm9ybXNcIjtcclxuXHJcbi8vIGV4cG9ydCBjb25zdCByYW5nZSA9IChyYW5nZT86IEFycmF5PG51bWJlcj4gfCBudWxsKTogVmFsaWRhdG9yRm4gPT4ge1xyXG4vLyAgICAgcmV0dXJuIChjb250cm9sOiBBYnN0cmFjdENvbnRyb2wpOiB7IFtrZXk6IHN0cmluZ106IGFueSB9IHwgbnVsbCA9PiB7XHJcblxyXG4vLyAgICAgICAgIGlmICghcmFuZ2UpIHJldHVybiBudWxsO1xyXG4vLyAgICAgICAgIGlmIChWYWxpZGF0b3JzLnJlcXVpcmVkKGNvbnRyb2wpKSByZXR1cm4gbnVsbDtcclxuXHJcbi8vICAgICAgICAgbGV0IHY6IG51bWJlciA9ICtjb250cm9sLnZhbHVlO1xyXG4vLyAgICAgICAgIHJldHVybiB2ID49IHJhbmdlWzBdICYmIHYgPD0gcmFuZ2VbMV0gPyBudWxsIDogeyBhY3R1YWxWYWx1ZTogdiwgcmVxdWlyZWRWYWx1ZTogcmFuZ2UsIHJhbmdlOiB0cnVlIH07XHJcbi8vICAgICB9O1xyXG4vLyB9O1xyXG4vLyBleHBvcnQgZnVuY3Rpb24gYmx1ZSgpOiBWYWxpZGF0b3JGbiB7XHJcbi8vICAgICByZXR1cm4gKGNvbnRyb2w6IEFic3RyYWN0Q29udHJvbCk6IHsgW2tleTogc3RyaW5nXTogYW55IH0gfCBudWxsID0+XHJcbi8vICAgICAgICAgY29udHJvbC52YWx1ZT8udG9Mb3dlckNhc2UoKSA9PT0gJ2JsdWUnXHJcbi8vICAgICAgICAgICAgID8gbnVsbCA6IHsgd3JvbmdDb2xvcjogY29udHJvbC52YWx1ZSB9O1xyXG4vLyB9XHJcblxyXG5cclxuZnVuY3Rpb24gaXNFbXB0eUlucHV0VmFsdWUodmFsdWU6IGFueSk6IGJvb2xlYW4ge1xyXG4gICAgLyoqXHJcbiAgICAgKiBDaGVjayBpZiB0aGUgb2JqZWN0IGlzIGEgc3RyaW5nIG9yIGFycmF5IGJlZm9yZSBldmFsdWF0aW5nIHRoZSBsZW5ndGggYXR0cmlidXRlLlxyXG4gICAgICogVGhpcyBhdm9pZHMgZmFsc2VseSByZWplY3Rpbmcgb2JqZWN0cyB0aGF0IGNvbnRhaW4gYSBjdXN0b20gbGVuZ3RoIGF0dHJpYnV0ZS5cclxuICAgICAqIEZvciBleGFtcGxlLCB0aGUgb2JqZWN0IHtpZDogMSwgbGVuZ3RoOiAwLCB3aWR0aDogMH0gc2hvdWxkIG5vdCBiZSByZXR1cm5lZCBhcyBlbXB0eS5cclxuICAgICAqL1xyXG4gICAgcmV0dXJuIHR5cGVvZiB2YWx1ZSA9PT0gJ3VuZGVmaW5lZCcgfHwgdmFsdWUgPT0gbnVsbCB8fCAoKHR5cGVvZiB2YWx1ZSA9PT0gJ3N0cmluZycgfHwgQXJyYXkuaXNBcnJheSh2YWx1ZSkpICYmIHZhbHVlLmxlbmd0aCA9PT0gMCk7XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBGdW5jdGlvbiB0aGF0IGhhcyBgVmFsaWRhdG9yRm5gIHNoYXBlLCBidXQgcGVyZm9ybXMgbm8gb3BlcmF0aW9uLlxyXG4gKi9cclxuZXhwb3J0IGZ1bmN0aW9uIG51bGxWYWxpZGF0b3IoY29udHJvbDogQWJzdHJhY3RDb250cm9sKTogVmFsaWRhdGlvbkVycm9ycyB8IG51bGwge1xyXG4gICAgcmV0dXJuIG51bGw7XHJcbn1cclxuXHJcblxyXG5leHBvcnQgY2xhc3MgVmFsaWRhdG9ycyB7XHJcblxyXG4gICAgLyoqXHJcbiAgICogQGRlc2NyaXB0aW9uXHJcbiAgICogVmFsaWRhdG9yIHRoYXQgcmVxdWlyZXMgdGhlIGNvbnRyb2wncyB2YWx1ZSB0byBiZSBsZXNzIHRoYW4gb3IgZXF1YWwgdG8gdGhlIHByb3ZpZGVkIG51bWJlci5cclxuICAgKlxyXG4gICAqIEB1c2FnZU5vdGVzXHJcbiAgICpcclxuICAgKiAjIyMgVmFsaWRhdGUgYWdhaW5zdCBhIHJhbmdlIDAgLSAxNVxyXG4gICAqXHJcbiAgICogYGBgdHlwZXNjcmlwdFxyXG4gICAqIGNvbnN0IGNvbnRyb2wgPSBuZXcgRm9ybUNvbnRyb2woMTYsIFZhbGlkYXRvcnMubWF4KFswLDE1XSkpO1xyXG4gICAqXHJcbiAgICogY29uc29sZS5sb2coY29udHJvbC5lcnJvcnMpOyAvLyB7cmFuZ2U6IHttaW46IDAsIG1heDogMTUsIGFjdHVhbDogMTZ9fVxyXG4gICAqIGBgYFxyXG4gICAqXHJcbiAgICogQHJldHVybnMgQSB2YWxpZGF0b3IgZnVuY3Rpb24gdGhhdCByZXR1cm5zIGFuIGVycm9yIG1hcCB3aXRoIHRoZVxyXG4gICAqIGByYW5nZWAgcHJvcGVydHkgaWYgdGhlIHZhbGlkYXRpb24gY2hlY2sgZmFpbHMsIG90aGVyd2lzZSBgbnVsbGAuXHJcbiAgICpcclxuICAgKiBAc2VlIGB1cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KClgXHJcbiAgICpcclxuICAgKi9cclxuICAgIHN0YXRpYyByYW5nZShtaW46IG51bWJlciwgbWF4OiBudW1iZXIpOiBWYWxpZGF0b3JGbiB7XHJcbiAgICAgICAgcmV0dXJuIHJhbmdlVmFsaWRhdG9yKFttaW4sIG1heF0pO1xyXG4gICAgfVxyXG5cclxufVxyXG5cclxuXHJcbi8qKlxyXG4gKiBWYWxpZGF0b3IgdGhhdCByZXF1aXJlcyB0aGUgY29udHJvbCdzIHZhbHVlIHRvIGJlIGJldHdlZW4gcHJvdmlkZWQgbnVtYmVycy5cclxuICogU2VlIGBWYWxpZGF0b3JzLnJhbmdlYCBmb3IgYWRkaXRpb25hbCBpbmZvcm1hdGlvbi5cclxuICovXHJcbmV4cG9ydCBmdW5jdGlvbiByYW5nZVZhbGlkYXRvcihyYW5nZTogQXJyYXk8bnVtYmVyPik6IFZhbGlkYXRvckZuIHtcclxuICAgIHJldHVybiAoY29udHJvbDogQWJzdHJhY3RDb250cm9sKTogVmFsaWRhdGlvbkVycm9ycyB8IG51bGwgPT4ge1xyXG4gICAgICAgIGlmIChpc0VtcHR5SW5wdXRWYWx1ZShjb250cm9sLnZhbHVlKSB8fCBpc0VtcHR5SW5wdXRWYWx1ZShyYW5nZSkgfHwgcmFuZ2UubGVuZ3RoIDwgMikge1xyXG4gICAgICAgICAgICByZXR1cm4gbnVsbDsgIC8vIGRvbid0IHZhbGlkYXRlIGVtcHR5IHZhbHVlcyB0byBhbGxvdyBvcHRpb25hbCBjb250cm9sc1xyXG4gICAgICAgIH1cclxuICAgICAgICBjb25zdCB2YWx1ZSA9IHBhcnNlRmxvYXQoY29udHJvbC52YWx1ZSk7XHJcbiAgICAgICAgbGV0IG1heCA9IHJhbmdlWzBdO1xyXG4gICAgICAgIGxldCBtaW4gPSByYW5nZVsxXTtcclxuICAgICAgICBpZiAoIWlzTmFOKHZhbHVlKSAmJiAodmFsdWUgPCBtaW4gfHwgdmFsdWUgPiBtYXgpKSB7XHJcbiAgICAgICAgICAgIHJldHVybiB7ICdyYW5nZSc6IHsgJ21pbic6IG1pbiwgJ21heCc6IG1heCwgJ2FjdHVhbCc6IGNvbnRyb2wudmFsdWUgfSB9O1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICB9O1xyXG59XHJcbiJdfQ==
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==
package/fesm2022/zek.mjs CHANGED
@@ -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
- * @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
- */
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,10 +6551,43 @@ 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 }); }
6518
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.0.1", ngImport: i0, type: ValidatorsModule, declarations: [RangeValidator], imports: [CommonModule], exports: [RangeValidator] }); }
6589
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.0.1", ngImport: i0, type: ValidatorsModule, declarations: [RangeValidator,
6590
+ MatchValidator], imports: [CommonModule], exports: [RangeValidator] }); }
6519
6591
  static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.0.1", ngImport: i0, type: ValidatorsModule, imports: [CommonModule] }); }
6520
6592
  }
6521
6593
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.1", ngImport: i0, type: ValidatorsModule, decorators: [{
@@ -6526,6 +6598,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.1", ngImpor
6526
6598
  ],
6527
6599
  declarations: [
6528
6600
  RangeValidator,
6601
+ MatchValidator,
6529
6602
  ],
6530
6603
  exports: [RangeValidator]
6531
6604
  }]
@@ -6638,5 +6711,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.1", ngImpor
6638
6711
  * Generated bundle index. Do not edit.
6639
6712
  */
6640
6713
 
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 };
6714
+ 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
6715
  //# sourceMappingURL=zek.mjs.map