@lagoshny/ngx-validation-messages 1.1.0 → 1.1.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (25) hide show
  1. package/README.md +417 -363
  2. package/bundles/lagoshny-ngx-validation-messages.umd.js +543 -546
  3. package/bundles/lagoshny-ngx-validation-messages.umd.js.map +1 -1
  4. package/bundles/lagoshny-ngx-validation-messages.umd.min.js +1 -1
  5. package/bundles/lagoshny-ngx-validation-messages.umd.min.js.map +1 -1
  6. package/esm2015/lagoshny-ngx-validation-messages.js +5 -5
  7. package/esm2015/lib/components/ngx-custom-message/ngx-custom-message.component.js +23 -23
  8. package/esm2015/lib/components/ngx-validation-messages/ngx-validation-messages.component.js +92 -92
  9. package/esm2015/lib/directivies/ngx-validator-name.directive.js +29 -29
  10. package/esm2015/lib/interface/ngx-validation-messages.config.js +3 -3
  11. package/esm2015/lib/ngx-validation-messages.module.js +45 -48
  12. package/esm2015/lib/service/ngx-validation-messages.service.js +69 -69
  13. package/esm2015/public-api.js +5 -5
  14. package/fesm2015/lagoshny-ngx-validation-messages.js +231 -234
  15. package/fesm2015/lagoshny-ngx-validation-messages.js.map +1 -1
  16. package/lagoshny-ngx-validation-messages.d.ts +5 -5
  17. package/lagoshny-ngx-validation-messages.metadata.json +1 -1
  18. package/lib/components/ngx-custom-message/ngx-custom-message.component.d.ts +17 -17
  19. package/lib/components/ngx-validation-messages/ngx-validation-messages.component.d.ts +37 -39
  20. package/lib/directivies/ngx-validator-name.directive.d.ts +22 -22
  21. package/lib/interface/ngx-validation-messages.config.d.ts +17 -17
  22. package/lib/ngx-validation-messages.module.d.ts +9 -9
  23. package/lib/service/ngx-validation-messages.service.d.ts +34 -34
  24. package/package.json +6 -6
  25. package/public-api.d.ts +1 -1
@@ -1,92 +1,92 @@
1
- import { Component, ContentChildren, ElementRef, Inject, Input, QueryList } from '@angular/core';
2
- import { NgxValidatorNameDirective } from '../../directivies/ngx-validator-name.directive';
3
- import { NGX_VALIDATION_MESSAGES_CONFIG } from '../../interface/ngx-validation-messages.config';
4
- import { NgxValidationMessagesService } from '../../service/ngx-validation-messages.service';
5
- import { NgxCustomMessageComponent } from '../ngx-custom-message/ngx-custom-message.component';
6
- /**
7
- * Component for displaying validation messages, supports child components of type {@link NgxCustomMessageComponent}
8
- * and html elements with directive {@link NgxValidatorNameDirective} to override validation messages.
9
- */
10
- export class NgxValidationMessagesComponent {
11
- constructor(ngxValidationConfig, ngxValidationMessagesService, directiveElementRef) {
12
- this.ngxValidationConfig = ngxValidationConfig;
13
- this.ngxValidationMessagesService = ngxValidationMessagesService;
14
- this.directiveElementRef = directiveElementRef;
15
- this.isMaterialError = false;
16
- /**
17
- * Key to get default validation message.
18
- */
19
- this.defaultError = 'error';
20
- this.materialErrorElement = 'MAT-ERROR';
21
- }
22
- ngAfterViewInit() {
23
- if (this.directiveElementRef && this.directiveElementRef.nativeElement
24
- && this.directiveElementRef.nativeElement.nodeName) {
25
- this.isMaterialError = this.materialErrorElement.toLocaleUpperCase()
26
- === this.directiveElementRef.nativeElement.nodeName.toLocaleUpperCase();
27
- }
28
- }
29
- /**
30
- * Get all validation messages for specified form control.
31
- */
32
- get errorMessages() {
33
- const result = [];
34
- if (!this.formControl || !this.formControl.errors) {
35
- return result;
36
- }
37
- if (this.customMsgComponent && this.customMsgComponent.length > 0) {
38
- this.processingCustomMessages(this.customMsgComponent);
39
- }
40
- if (this.customMsgDirective && this.customMsgDirective.length > 0) {
41
- this.processingCustomMessages(this.customMsgDirective);
42
- }
43
- for (const property in this.formControl.errors) {
44
- if (this.formControl.errors.hasOwnProperty(property)
45
- && (this.formControl.touched || this.formControl.dirty)) {
46
- if (this.formControl.errors[property].customMessages instanceof Array) {
47
- result.push(...this.formControl.errors[property].customMessages);
48
- continue;
49
- }
50
- if (this.formControl.errors[property].customMessage) {
51
- result.push(this.formControl.errors[property].customMessage);
52
- continue;
53
- }
54
- const validationMessage = this.ngxValidationMessagesService.getValidatorErrorMessages(property, this.formControl.errors[property]);
55
- result.push(validationMessage || this.formControl.errors[property].message
56
- || this.ngxValidationMessagesService.getValidatorErrorMessages(this.defaultError));
57
- }
58
- }
59
- return result;
60
- }
61
- processingCustomMessages(customMessage) {
62
- customMessage.forEach((msg) => {
63
- if (!this.formControl.errors[msg.validatorName]) {
64
- return;
65
- }
66
- let message = (msg instanceof NgxCustomMessageComponent)
67
- ? msg.message.nativeElement.innerText : msg.message;
68
- message = this.ngxValidationMessagesService.expandParameterizedTemplateMessage(message, this.formControl.errors[msg.validatorName]);
69
- typeof this.formControl.errors[msg.validatorName] === 'object'
70
- ? this.formControl.errors[msg.validatorName].customMessage = message
71
- : this.formControl.errors[msg.validatorName] = { customMessage: message };
72
- });
73
- }
74
- }
75
- NgxValidationMessagesComponent.decorators = [
76
- { type: Component, args: [{
77
- selector: 'ngx-validation-messages, [ngxValidationMessages]',
78
- template: "<!--To show error messages standalone without component-->\n<div *ngIf=\"!formControl && customMsgComponent.length == 0 && customMsgDirective.length == 0\"\n [ngClass]=\"ngxValidationConfig?.validationMessagesStyle?.blockClassNames || 'ngx_vm__def_error_block'\">\n <span [ngClass]=\"ngxValidationConfig?.validationMessagesStyle?.textClassNames || 'ngx_vm__def_error_text'\">\n <ng-content></ng-content>\n </span>\n</div>\n\n<ng-container *ngIf=\"errorMessages.length > 0\">\n\n <!--To show error messages in material ui style-->\n <ng-container *ngIf=\"isMaterialError; else withoutMaterial\">\n <ng-container *ngFor=\"let message of errorMessages\">\n <mat-error>{{ message }}</mat-error>\n </ng-container>\n </ng-container>\n\n <!--To show error messages in user style-->\n <ng-template #withoutMaterial>\n <div [ngClass]=\"ngxValidationConfig?.validationMessagesStyle?.blockClassNames || 'ngx_vm__def_error_block'\">\n <div *ngFor=\"let message of errorMessages\">\n <span [ngClass]=\"ngxValidationConfig?.validationMessagesStyle?.textClassNames || 'ngx_vm__def_error_text'\">\n {{ message }}\n </span>\n </div>\n </div>\n </ng-template>\n\n</ng-container>\n",
79
- styles: [".ngx_vm__def_error_block{background:#c51244;border-radius:0;box-shadow:1px 1px 1px #aaa;display:inline-block;margin-bottom:10px;margin-top:2px;opacity:.8;padding:8px;position:relative;width:100%}.ngx_vm__def_error_text{color:#fff}"]
80
- },] }
81
- ];
82
- NgxValidationMessagesComponent.ctorParameters = () => [
83
- { type: undefined, decorators: [{ type: Inject, args: [NGX_VALIDATION_MESSAGES_CONFIG,] }] },
84
- { type: NgxValidationMessagesService },
85
- { type: ElementRef }
86
- ];
87
- NgxValidationMessagesComponent.propDecorators = {
88
- formControl: [{ type: Input, args: ['for',] }],
89
- customMsgComponent: [{ type: ContentChildren, args: [NgxCustomMessageComponent,] }],
90
- customMsgDirective: [{ type: ContentChildren, args: [NgxValidatorNameDirective,] }]
91
- };
92
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmd4LXZhbGlkYXRpb24tbWVzc2FnZXMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXZhbGlkYXRpb24tbWVzc2FnZXMvc3JjL2xpYi9jb21wb25lbnRzL25neC12YWxpZGF0aW9uLW1lc3NhZ2VzL25neC12YWxpZGF0aW9uLW1lc3NhZ2VzLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWlCLFNBQVMsRUFBRSxlQUFlLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2hILE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLGdEQUFnRCxDQUFDO0FBQzNGLE9BQU8sRUFBRSw4QkFBOEIsRUFBK0IsTUFBTSxnREFBZ0QsQ0FBQztBQUM3SCxPQUFPLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSwrQ0FBK0MsQ0FBQztBQUM3RixPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSxvREFBb0QsQ0FBQztBQUUvRjs7O0dBR0c7QUFNSCxNQUFNLE9BQU8sOEJBQThCO0lBNkJ6QyxZQUEyRCxtQkFBZ0QsRUFDdkYsNEJBQTBELEVBQzFELG1CQUErQjtRQUZRLHdCQUFtQixHQUFuQixtQkFBbUIsQ0FBNkI7UUFDdkYsaUNBQTRCLEdBQTVCLDRCQUE0QixDQUE4QjtRQUMxRCx3QkFBbUIsR0FBbkIsbUJBQW1CLENBQVk7UUFYNUMsb0JBQWUsR0FBRyxLQUFLLENBQUM7UUFFL0I7O1dBRUc7UUFDSyxpQkFBWSxHQUFHLE9BQU8sQ0FBQztRQUV2Qix5QkFBb0IsR0FBRyxXQUFXLENBQUM7SUFLM0MsQ0FBQztJQUVNLGVBQWU7UUFDcEIsSUFBSSxJQUFJLENBQUMsbUJBQW1CLElBQUksSUFBSSxDQUFDLG1CQUFtQixDQUFDLGFBQWE7ZUFDakUsSUFBSSxDQUFDLG1CQUFtQixDQUFDLGFBQWEsQ0FB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LElBQUksQ0FBQyxXQUFXLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDO1lBRXBJLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLGFBQWEsQ0FBQyxLQUFLLFFBQVE7Z0JBQzVELENBQUMsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsYUFBYSxDQUFDLENBQUMsYUFBYSxHQUFHLE9BQU87Z0JBQ3BFLENBQUMsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsYUFBYSxDQUFDLEdBQUcsRUFBQyxhQUFhLEVBQUUsT0FBTyxFQUFDLENBQUM7UUFDNUUsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDOzs7WUFoR0YsU0FBUyxTQUFDO2dCQUNULFFBQVEsRUFBRSxrREFBa0Q7Z0JBQzVELG90Q0FBdUQ7O2FBRXhEOzs7NENBOEJjLE1BQU0sU0FBQyw4QkFBOEI7WUF6QzNDLDRCQUE0QjtZQUhlLFVBQVU7OzswQkFvQjNELEtBQUssU0FBQyxLQUFLO2lDQU1YLGVBQWUsU0FBQyx5QkFBeUI7aUNBTXpDLGVBQWUsU0FBQyx5QkFBeUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBZnRlclZpZXdJbml0LCBDb21wb25lbnQsIENvbnRlbnRDaGlsZHJlbiwgRWxlbWVudFJlZiwgSW5qZWN0LCBJbnB1dCwgUXVlcnlMaXN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBOZ3hWYWxpZGF0b3JOYW1lRGlyZWN0aXZlIH0gZnJvbSAnLi4vLi4vZGlyZWN0aXZpZXMvbmd4LXZhbGlkYXRvci1uYW1lLmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBOR1hfVkFMSURBVElPTl9NRVNTQUdFU19DT05GSUcsIE5neFZhbGlkYXRpb25NZXNzYWdlc0NvbmZpZyB9IGZyb20gJy4uLy4uL2ludGVyZmFjZS9uZ3gtdmFsaWRhdGlvbi1tZXNzYWdlcy5jb25maWcnO1xuaW1wb3J0IHsgTmd4VmFsaWRhdGlvbk1lc3NhZ2VzU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2Uvbmd4LXZhbGlkYXRpb24tbWVzc2FnZXMuc2VydmljZSc7XG5pbXBvcnQgeyBOZ3hDdXN0b21NZXNzYWdlQ29tcG9uZW50IH0gZnJvbSAnLi4vbmd4LWN1c3RvbS1tZXNzYWdlL25neC1jdXN0b20tbWVzc2FnZS5jb21wb25lbnQnO1xuXG4vKipcbiAqIENvbXBvbmVudCBmb3IgZGlzcGxheWluZyB2YWxpZGF0aW9uIG1lc3NhZ2VzLCBzdXBwb3J0cyBjaGlsZCBjb21wb25lbnRzIG9mIHR5cGUge0BsaW5rIE5neEN1c3RvbU1lc3NhZ2VDb21wb25lbnR9XG4gKiBhbmQgaHRtbCBlbGVtZW50cyB3aXRoIGRpcmVjdGl2ZSB7QGxpbmsgTmd4VmFsaWRhdG9yTmFtZURpcmVjdGl2ZX0gdG8gb3ZlcnJpZGUgdmFsaWRhdGlvbiBtZXNzYWdlcy5cbiAqL1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbmd4LXZhbGlkYXRpb24tbWVzc2FnZXMsIFtuZ3hWYWxpZGF0aW9uTWVzc2FnZXNdJyxcbiAgdGVtcGxhdGVVcmw6ICcuL25neC12YWxpZGF0aW9uLW1lc3NhZ2VzLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vbmd4LXZhbGlkYXRpb24tbWVzc2FnZXMuY29tcG9uZW50LnNjc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBOZ3hWYWxpZGF0aW9uTWVzc2FnZXNDb21wb25lbnQgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0IHtcblxuICAvKipcbiAgICogRm9ybSBjb250cm9sIGZvciB3aGljaCBuZWVkIHRvIHNob3cgdmFsaWRhdGlvbiBtZXNzYWdlcy5cbiAgICovXG4gIEBJbnB1dCgnZm9yJylcbiAgcHVibGljIGZvcm1Db250cm9sOiBhbnk7XG5cbiAgLyoqXG4gICAqIENvbnRhaW5zIHtAbGluayBOZ3hDdXN0b21NZXNzYWdlQ29tcG9uZW50fSBpZiBwcmVzZW50LlxuICAgKi9cbiAgQENvbnRlbnRDaGlsZHJlbihOZ3hDdXN0b21NZXNzYWdlQ29tcG9uZW50KVxuICBwdWJsaWMgY3VzdG9tTXNnQ29tcG9uZW50OiBRdWVyeUxpc3Q8Tmd4Q3VzdG9tTWVzc2FnZUNvbXBvbmVudD47XG5cbiAgLyoqXG4gICAqIENvbnRhaW5zIHtAbGluayBOZ3hWYWxpZGF0b3JOYW1lRGlyZWN0aXZlfSBpZiBwcmVzZW50LlxuICAgKi9cbiAgQENvbnRlbnRDaGlsZHJlbihOZ3hWYWxpZGF0b3JOYW1lRGlyZWN0aXZlKVxuICBwdWJsaWMgY3VzdG9tTXNnRGlyZWN0aXZlOiBRdWVyeUxpc3Q8Tmd4VmFsaWRhdG9yTmFtZURpcmVjdGl2ZT47XG5cbiAgcHVibGljIGlzTWF0ZXJpYWxFcnJvciA9IGZhbHNlO1xuXG4gIC8qKlxuICAgKiBLZXkgdG8gZ2V0IGRlZmF1bHQgdmFsaWRhdGlvbiBtZXNzYWdlLlxuICAgKi9cbiAgcHJpdmF0ZSBkZWZhdWx0RXJyb3IgPSAnZXJyb3InO1xuXG4gIHByaXZhdGUgbWF0ZXJpYWxFcnJvckVsZW1lbnQgPSAnTUFULUVSUk9SJztcblxuICBjb25zdHJ1Y3RvcihASW5qZWN0KE5HWF9WQUxJREFUSU9OX01FU1NBR0VTX0NPTkZJRykgcHVibGljIG5neFZhbGlkYXRpb25Db25maWc6IE5neFZhbGlkYXRpb25NZXNzYWdlc0NvbmZpZyxcbiAgICAgICAgICAgICAgcHJpdmF0ZSBuZ3hWYWxpZGF0aW9uTWVzc2FnZXNTZXJ2aWNlOiBOZ3hWYWxpZGF0aW9uTWVzc2FnZXNTZXJ2aWNlLFxuICAgICAgICAgICAgICBwcml2YXRlIGRpcmVjdGl2ZUVsZW1lbnRSZWY6IEVsZW1lbnRSZWYpIHtcbiAgfVxuXG4gIHB1YmxpYyBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuZGlyZWN0aXZlRWxlbWVudFJlZiAmJiB0aGlzLmRpcmVjdGl2ZUVsZW1lbnRSZWYubmF0aXZlRWxlbWVudFxuICAgICAgJiYgdGhpcy5kaXJlY3RpdmVFbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQubm9kZU5hbWUpIHtcbiAgICAgIHRoaXMuaXNNYXRlcmlhbEVycm9yID0gdGhpcy5tYXRlcmlhbEVycm9yRWxlbWVudC50b0xvY2FsZVVwcGVyQ2FzZSgpXG4gICAgICAgID09PSB0aGlzLmRpcmVjdGl2ZUVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5ub2RlTmFtZS50b0xvY2FsZVVwcGVyQ2FzZSgpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgYWxsIHZhbGlkYXRpb24gbWVzc2FnZXMgZm9yIHNwZWNpZmllZCBmb3JtIGNvbnRyb2wuXG4gICAqL1xuICBwdWJsaWMgZ2V0IGVycm9yTWVzc2FnZXMoKTogQXJyYXk8c3RyaW5nPiB7XG4gICAgY29uc3QgcmVzdWx0OiBBcnJheTxzdHJpbmc+ID0gW107XG5cbiAgICBpZiAoIXRoaXMuZm9ybUNvbnRyb2wgfHwgIXRoaXMuZm9ybUNvbnRyb2wuZXJyb3JzKSB7XG4gICAgICByZXR1cm4gcmVzdWx0O1xuICAgIH1cbiAgICBpZiAodGhpcy5jdXN0b21Nc2dDb21wb25lbnQgJiYgdGhpcy5jdXN0b21Nc2dDb21wb25lbnQubGVuZ3RoID4gMCkge1xuICAgICAgdGhpcy5wcm9jZXNzaW5nQ3VzdG9tTWVzc2FnZXModGhpcy5jdXN0b21Nc2dDb21wb25lbnQpO1xuICAgIH1cbiAgICBpZiAodGhpcy5jdXN0b21Nc2dEaXJlY3RpdmUgJiYgdGhpcy5jdXN0b21Nc2dEaXJlY3RpdmUubGVuZ3RoID4gMCkge1xuICAgICAgdGhpcy5wcm9jZXNzaW5nQ3VzdG9tTWVzc2FnZXModGhpcy5jdXN0b21Nc2dEaXJlY3RpdmUpO1xuICAgIH1cblxuICAgIGZvciAoY29uc3QgcHJvcGVydHkgaW4gdGhpcy5mb3JtQ29udHJvbC5lcnJvcnMpIHtcbiAgICAgIGlmICh0aGlzLmZvcm1Db250cm9sLmVycm9ycy5oYXNPd25Qcm9wZXJ0eShwcm9wZXJ0eSlcbiAgICAgICAgJiYgKHRoaXMuZm9ybUNvbnRyb2wudG91Y2hlZCB8fCB0aGlzLmZvcm1Db250cm9sLmRpcnR5KSkge1xuICAgICAgICBpZiAodGhpcy5mb3JtQ29udHJvbC5lcnJvcnNbcHJvcGVydHldLmN1c3RvbU1lc3NhZ2VzIGluc3RhbmNlb2YgQXJyYXkpIHtcbiAgICAgICAgICByZXN1bHQucHVzaCguLi50aGlzLmZvcm1Db250cm9sLmVycm9yc1twcm9wZXJ0eV0uY3VzdG9tTWVzc2FnZXMpO1xuICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0aGlzLmZvcm1Db250cm9sLmVycm9yc1twcm9wZXJ0eV0uY3VzdG9tTWVzc2FnZSkge1xuICAgICAgICAgIHJlc3VsdC5wdXNoKHRoaXMuZm9ybUNvbnRyb2wuZXJyb3JzW3Byb3BlcnR5XS5jdXN0b21NZXNzYWdlKTtcbiAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCB2YWxpZGF0aW9uTWVzc2FnZTogc3RyaW5nID1cbiAgICAgICAgICB0aGlzLm5neFZhbGlkYXRpb25NZXNzYWdlc1NlcnZpY2UuZ2V0VmFsaWRhdG9yRXJyb3JNZXNzYWdlcyhwcm9wZXJ0eSwgdGhpcy5mb3JtQ29udHJvbC5lcnJvcnNbcHJvcGVydHldKTtcbiAgICAgICAgcmVzdWx0LnB1c2godmFsaWRhdGlvbk1lc3NhZ2UgfHwgdGhpcy5mb3JtQ29udHJvbC5lcnJvcnNbcHJvcGVydHldLm1lc3NhZ2VcbiAgICAgICAgICB8fCB0aGlzLm5neFZhbGlkYXRpb25NZXNzYWdlc1NlcnZpY2UuZ2V0VmFsaWRhdG9yRXJyb3JNZXNzYWdlcyh0aGlzLmRlZmF1bHRFcnJvcikpO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gcmVzdWx0O1xuICB9XG5cbiAgcHJpdmF0ZSBwcm9jZXNzaW5nQ3VzdG9tTWVzc2FnZXMoY3VzdG9tTWVzc2FnZTogUXVlcnlMaXN0PGFueT4pOiB2b2lkIHtcbiAgICBjdXN0b21NZXNzYWdlLmZvckVhY2goKG1zZzogYW55KSA9PiB7XG4gICAgICBpZiAoIXRoaXMuZm9ybUNvbnRyb2wuZXJyb3JzW21zZy52YWxpZGF0b3JOYW1lXSkge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgICBsZXQgbWVzc2FnZSA9IChtc2cgaW5zdGFuY2VvZiBOZ3hDdXN0b21NZXNzYWdlQ29tcG9uZW50KVxuICAgICAgICA/IG1zZy5tZXNzYWdlLm5hdGl2ZUVsZW1lbnQuaW5uZXJUZXh0IDogbXNnLm1lc3NhZ2U7XG4gICAgICBtZXNzYWdlID0gdGhpcy5uZ3hWYWxpZGF0aW9uTWVzc2FnZXNTZXJ2aWNlLmV4cGFuZFBhcmFtZXRlcml6ZWRUZW1wbGF0ZU1lc3NhZ2UobWVzc2FnZSwgdGhpcy5mb3JtQ29udHJvbC5lcnJvcnNbbXNnLnZhbGlkYXRvck5hbWVdKTtcblxuICAgICAgdHlwZW9mIHRoaXMuZm9ybUNvbnRyb2wuZXJyb3JzW21zZy52YWxpZGF0b3JOYW1lXSA9PT0gJ29iamVjdCdcbiAgICAgICAgPyB0aGlzLmZvcm1Db250cm9sLmVycm9yc1ttc2cudmFsaWRhdG9yTmFtZV0uY3VzdG9tTWVzc2FnZSA9IG1lc3NhZ2VcbiAgICAgICAgOiB0aGlzLmZvcm1Db250cm9sLmVycm9yc1ttc2cudmFsaWRhdG9yTmFtZV0gPSB7Y3VzdG9tTWVzc2FnZTogbWVzc2FnZX07XG4gICAgfSk7XG4gIH1cblxufVxuIl19
1
+ import { Component, ContentChildren, ElementRef, Inject, Input } from '@angular/core';
2
+ import { NgxValidatorNameDirective } from '../../directivies/ngx-validator-name.directive';
3
+ import { NGX_VALIDATION_MESSAGES_CONFIG } from '../../interface/ngx-validation-messages.config';
4
+ import { NgxValidationMessagesService } from '../../service/ngx-validation-messages.service';
5
+ import { NgxCustomMessageComponent } from '../ngx-custom-message/ngx-custom-message.component';
6
+ /**
7
+ * Component for displaying validation messages, supports child components of type {@link NgxCustomMessageComponent}
8
+ * and html elements with directive {@link NgxValidatorNameDirective} to override validation messages.
9
+ */
10
+ export class NgxValidationMessagesComponent {
11
+ constructor(ngxValidationConfig, ngxValidationMessagesService, directiveElementRef) {
12
+ this.ngxValidationConfig = ngxValidationConfig;
13
+ this.ngxValidationMessagesService = ngxValidationMessagesService;
14
+ this.directiveElementRef = directiveElementRef;
15
+ this.isMaterialError = false;
16
+ /**
17
+ * Key to get default validation message.
18
+ */
19
+ this.defaultError = 'error';
20
+ this.materialErrorElement = 'MAT-ERROR';
21
+ }
22
+ ngAfterViewInit() {
23
+ if (this.directiveElementRef && this.directiveElementRef.nativeElement
24
+ && this.directiveElementRef.nativeElement.nodeName) {
25
+ this.isMaterialError = this.materialErrorElement.toLocaleUpperCase()
26
+ === this.directiveElementRef.nativeElement.nodeName.toLocaleUpperCase();
27
+ }
28
+ }
29
+ /**
30
+ * Get all validation messages for specified form control.
31
+ */
32
+ get errorMessages() {
33
+ const result = [];
34
+ if (!this.formControl || !this.formControl.errors) {
35
+ return result;
36
+ }
37
+ if (this.customMsgComponent && this.customMsgComponent.length > 0) {
38
+ this.processingCustomMessages(this.customMsgComponent);
39
+ }
40
+ if (this.customMsgDirective && this.customMsgDirective.length > 0) {
41
+ this.processingCustomMessages(this.customMsgDirective);
42
+ }
43
+ for (const property in this.formControl.errors) {
44
+ if (this.formControl.errors.hasOwnProperty(property)
45
+ && (this.formControl.touched || this.formControl.dirty)) {
46
+ if (this.formControl.errors[property].customMessages instanceof Array) {
47
+ result.push(...this.formControl.errors[property].customMessages);
48
+ continue;
49
+ }
50
+ if (this.formControl.errors[property].customMessage) {
51
+ result.push(this.formControl.errors[property].customMessage);
52
+ continue;
53
+ }
54
+ const validationMessage = this.ngxValidationMessagesService.getValidatorErrorMessages(property, this.formControl.errors[property]);
55
+ result.push(validationMessage || this.formControl.errors[property].message
56
+ || this.ngxValidationMessagesService.getValidatorErrorMessages(this.defaultError));
57
+ }
58
+ }
59
+ return result;
60
+ }
61
+ processingCustomMessages(customMessage) {
62
+ customMessage.forEach((msg) => {
63
+ if (!this.formControl.errors[msg.validatorName]) {
64
+ return;
65
+ }
66
+ let message = (msg instanceof NgxCustomMessageComponent)
67
+ ? msg.message.nativeElement.innerText : msg.message;
68
+ message = this.ngxValidationMessagesService.expandParameterizedTemplateMessage(message, this.formControl.errors[msg.validatorName]);
69
+ typeof this.formControl.errors[msg.validatorName] === 'object'
70
+ ? this.formControl.errors[msg.validatorName].customMessage = message
71
+ : this.formControl.errors[msg.validatorName] = { customMessage: message };
72
+ });
73
+ }
74
+ }
75
+ NgxValidationMessagesComponent.decorators = [
76
+ { type: Component, args: [{
77
+ selector: 'ngx-validation-messages, [ngxValidationMessages]',
78
+ template: "<!--To show error messages standalone without component-->\r\n<div *ngIf=\"!formControl && customMsgComponent.length == 0 && customMsgDirective.length == 0\"\r\n [ngClass]=\"ngxValidationConfig?.validationMessagesStyle?.blockClassNames || 'ngx_vm__def_error_block'\">\r\n <span [ngClass]=\"ngxValidationConfig?.validationMessagesStyle?.textClassNames || 'ngx_vm__def_error_text'\">\r\n <ng-content></ng-content>\r\n </span>\r\n</div>\r\n\r\n<ng-container *ngIf=\"errorMessages.length > 0\">\r\n\r\n <!--To show error messages in material ui style-->\r\n <ng-container *ngIf=\"isMaterialError; else withoutMaterial\">\r\n <ng-container *ngFor=\"let message of errorMessages\">\r\n <mat-error>{{ message }}</mat-error>\r\n </ng-container>\r\n </ng-container>\r\n\r\n <!--To show error messages in user style-->\r\n <ng-template #withoutMaterial>\r\n <div [ngClass]=\"ngxValidationConfig?.validationMessagesStyle?.blockClassNames || 'ngx_vm__def_error_block'\">\r\n <div *ngFor=\"let message of errorMessages\">\r\n <span [ngClass]=\"ngxValidationConfig?.validationMessagesStyle?.textClassNames || 'ngx_vm__def_error_text'\">\r\n {{ message }}\r\n </span>\r\n </div>\r\n </div>\r\n </ng-template>\r\n\r\n</ng-container>\r\n",
79
+ styles: [".ngx_vm__def_error_block{background:#c51244;border-radius:0;box-shadow:1px 1px 1px #aaa;display:inline-block;margin-bottom:10px;margin-top:2px;opacity:.8;padding:8px;position:relative;width:100%}.ngx_vm__def_error_text{color:#fff}"]
80
+ },] }
81
+ ];
82
+ NgxValidationMessagesComponent.ctorParameters = () => [
83
+ { type: undefined, decorators: [{ type: Inject, args: [NGX_VALIDATION_MESSAGES_CONFIG,] }] },
84
+ { type: NgxValidationMessagesService },
85
+ { type: ElementRef }
86
+ ];
87
+ NgxValidationMessagesComponent.propDecorators = {
88
+ formControl: [{ type: Input, args: ['for',] }],
89
+ customMsgComponent: [{ type: ContentChildren, args: [NgxCustomMessageComponent,] }],
90
+ customMsgDirective: [{ type: ContentChildren, args: [NgxValidatorNameDirective,] }]
91
+ };
92
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmd4LXZhbGlkYXRpb24tbWVzc2FnZXMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXZhbGlkYXRpb24tbWVzc2FnZXMvc3JjL2xpYi9jb21wb25lbnRzL25neC12YWxpZGF0aW9uLW1lc3NhZ2VzL25neC12YWxpZGF0aW9uLW1lc3NhZ2VzLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWlCLFNBQVMsRUFBRSxlQUFlLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQWEsTUFBTSxlQUFlLENBQUM7QUFDaEgsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sZ0RBQWdELENBQUM7QUFDM0YsT0FBTyxFQUNMLDhCQUE4QixFQUUvQixNQUFNLGdEQUFnRCxDQUFDO0FBQ3hELE9BQU8sRUFBRSw0QkFBNEIsRUFBRSxNQUFNLCtDQUErQyxDQUFDO0FBQzdGLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLG9EQUFvRCxDQUFDO0FBRS9GOzs7R0FHRztBQU1ILE1BQU0sT0FBTyw4QkFBOEI7SUE2QnpDLFlBQTJELG1CQUFnRCxFQUN2Riw0QkFBMEQsRUFDMUQsbUJBQStCO1FBRlEsd0JBQW1CLEdBQW5CLG1CQUFtQixDQUE2QjtRQUN2RixpQ0FBNEIsR0FBNUIsNEJBQTRCLENBQThCO1FBQzFELHdCQUFtQixHQUFuQixtQkFBbUIsQ0FBWTtRQVg1QyxvQkFBZSxHQUFHLEtBQUssQ0FBQztRQUUvQjs7V0FFRztRQUNLLGlCQUFZLEdBQUcsT0FBTyxDQUFDO1FBRXZCLHlCQUFvQixHQUFHLFdBQVcsQ0FBQztJQUszQyxDQUFDO0lBRU0sZUFBZTtRQUNwQixJQUFJLElBQUksQ0FBQyxtQkFBbUIsSUFBSSxJQUFJLENBQUMsbUJBQW1CLENBQUMsYUFBYTtlQUNqRSxJQUFJLENBQUMsbUJBQW1CLENBQUMsYUFBYSxDQUFDLFFBQVEsRUFB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LFdBQVcsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUM7WUFFcEksT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsYUFBYSxDQUFDLEtBQUssUUFBUTtnQkFDNUQsQ0FBQyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxhQUFhLENBQUMsQ0FBQyxhQUFhLEdBQUcsT0FBTztnQkFDcEUsQ0FBQyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxhQUFhLENBQUMsR0FBRyxFQUFDLGFBQWEsRUFBRSxPQUFPLEVBQUMsQ0FBQztRQUM1RSxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7OztZQWhHRixTQUFTLFNBQUM7Z0JBQ1QsUUFBUSxFQUFFLGtEQUFrRDtnQkFDNUQsOHdDQUF1RDs7YUFFeEQ7Ozs0Q0E4QmMsTUFBTSxTQUFDLDhCQUE4QjtZQXpDM0MsNEJBQTRCO1lBTmUsVUFBVTs7OzBCQXVCM0QsS0FBSyxTQUFDLEtBQUs7aUNBTVgsZUFBZSxTQUFDLHlCQUF5QjtpQ0FNekMsZUFBZSxTQUFDLHlCQUF5QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFmdGVyVmlld0luaXQsIENvbXBvbmVudCwgQ29udGVudENoaWxkcmVuLCBFbGVtZW50UmVmLCBJbmplY3QsIElucHV0LCBRdWVyeUxpc3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgTmd4VmFsaWRhdG9yTmFtZURpcmVjdGl2ZSB9IGZyb20gJy4uLy4uL2RpcmVjdGl2aWVzL25neC12YWxpZGF0b3ItbmFtZS5kaXJlY3RpdmUnO1xyXG5pbXBvcnQge1xyXG4gIE5HWF9WQUxJREFUSU9OX01FU1NBR0VTX0NPTkZJRyxcclxuICBOZ3hWYWxpZGF0aW9uTWVzc2FnZXNDb25maWdcclxufSBmcm9tICcuLi8uLi9pbnRlcmZhY2Uvbmd4LXZhbGlkYXRpb24tbWVzc2FnZXMuY29uZmlnJztcclxuaW1wb3J0IHsgTmd4VmFsaWRhdGlvbk1lc3NhZ2VzU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2Uvbmd4LXZhbGlkYXRpb24tbWVzc2FnZXMuc2VydmljZSc7XHJcbmltcG9ydCB7IE5neEN1c3RvbU1lc3NhZ2VDb21wb25lbnQgfSBmcm9tICcuLi9uZ3gtY3VzdG9tLW1lc3NhZ2Uvbmd4LWN1c3RvbS1tZXNzYWdlLmNvbXBvbmVudCc7XHJcblxyXG4vKipcclxuICogQ29tcG9uZW50IGZvciBkaXNwbGF5aW5nIHZhbGlkYXRpb24gbWVzc2FnZXMsIHN1cHBvcnRzIGNoaWxkIGNvbXBvbmVudHMgb2YgdHlwZSB7QGxpbmsgTmd4Q3VzdG9tTWVzc2FnZUNvbXBvbmVudH1cclxuICogYW5kIGh0bWwgZWxlbWVudHMgd2l0aCBkaXJlY3RpdmUge0BsaW5rIE5neFZhbGlkYXRvck5hbWVEaXJlY3RpdmV9IHRvIG92ZXJyaWRlIHZhbGlkYXRpb24gbWVzc2FnZXMuXHJcbiAqL1xyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ25neC12YWxpZGF0aW9uLW1lc3NhZ2VzLCBbbmd4VmFsaWRhdGlvbk1lc3NhZ2VzXScsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL25neC12YWxpZGF0aW9uLW1lc3NhZ2VzLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9uZ3gtdmFsaWRhdGlvbi1tZXNzYWdlcy5jb21wb25lbnQuc2NzcyddXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBOZ3hWYWxpZGF0aW9uTWVzc2FnZXNDb21wb25lbnQgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0IHtcclxuXHJcbiAgLyoqXHJcbiAgICogRm9ybSBjb250cm9sIGZvciB3aGljaCBuZWVkIHRvIHNob3cgdmFsaWRhdGlvbiBtZXNzYWdlcy5cclxuICAgKi9cclxuICBASW5wdXQoJ2ZvcicpXHJcbiAgcHVibGljIGZvcm1Db250cm9sOiBhbnk7XHJcblxyXG4gIC8qKlxyXG4gICAqIENvbnRhaW5zIHtAbGluayBOZ3hDdXN0b21NZXNzYWdlQ29tcG9uZW50fSBpZiBwcmVzZW50LlxyXG4gICAqL1xyXG4gIEBDb250ZW50Q2hpbGRyZW4oTmd4Q3VzdG9tTWVzc2FnZUNvbXBvbmVudClcclxuICBwdWJsaWMgY3VzdG9tTXNnQ29tcG9uZW50O1xyXG5cclxuICAvKipcclxuICAgKiBDb250YWlucyB7QGxpbmsgTmd4VmFsaWRhdG9yTmFtZURpcmVjdGl2ZX0gaWYgcHJlc2VudC5cclxuICAgKi9cclxuICBAQ29udGVudENoaWxkcmVuKE5neFZhbGlkYXRvck5hbWVEaXJlY3RpdmUpXHJcbiAgcHVibGljIGN1c3RvbU1zZ0RpcmVjdGl2ZTtcclxuXHJcbiAgcHVibGljIGlzTWF0ZXJpYWxFcnJvciA9IGZhbHNlO1xyXG5cclxuICAvKipcclxuICAgKiBLZXkgdG8gZ2V0IGRlZmF1bHQgdmFsaWRhdGlvbiBtZXNzYWdlLlxyXG4gICAqL1xyXG4gIHByaXZhdGUgZGVmYXVsdEVycm9yID0gJ2Vycm9yJztcclxuXHJcbiAgcHJpdmF0ZSBtYXRlcmlhbEVycm9yRWxlbWVudCA9ICdNQVQtRVJST1InO1xyXG5cclxuICBjb25zdHJ1Y3RvcihASW5qZWN0KE5HWF9WQUxJREFUSU9OX01FU1NBR0VTX0NPTkZJRykgcHVibGljIG5neFZhbGlkYXRpb25Db25maWc6IE5neFZhbGlkYXRpb25NZXNzYWdlc0NvbmZpZyxcclxuICAgICAgICAgICAgICBwcml2YXRlIG5neFZhbGlkYXRpb25NZXNzYWdlc1NlcnZpY2U6IE5neFZhbGlkYXRpb25NZXNzYWdlc1NlcnZpY2UsXHJcbiAgICAgICAgICAgICAgcHJpdmF0ZSBkaXJlY3RpdmVFbGVtZW50UmVmOiBFbGVtZW50UmVmKSB7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMuZGlyZWN0aXZlRWxlbWVudFJlZiAmJiB0aGlzLmRpcmVjdGl2ZUVsZW1lbnRSZWYubmF0aXZlRWxlbWVudFxyXG4gICAgICAmJiB0aGlzLmRpcmVjdGl2ZUVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5ub2RlTmFtZSkge1xyXG4gICAgICB0aGlzLmlzTWF0ZXJpYWxFcnJvciA9IHRoaXMubWF0ZXJpYWxFcnJvckVsZW1lbnQudG9Mb2NhbGVVcHBlckNhc2UoKVxyXG4gICAgICAgID09PSB0aGlzLmRpcmVjdGl2ZUVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5ub2RlTmFtZS50b0xvY2FsZVVwcGVyQ2FzZSgpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogR2V0IGFsbCB2YWxpZGF0aW9uIG1lc3NhZ2VzIGZvciBzcGVjaWZpZWQgZm9ybSBjb250cm9sLlxyXG4gICAqL1xyXG4gIHB1YmxpYyBnZXQgZXJyb3JNZXNzYWdlcygpOiBBcnJheTxzdHJpbmc+IHtcclxuICAgIGNvbnN0IHJlc3VsdDogQXJyYXk8c3RyaW5nPiA9IFtdO1xyXG5cclxuICAgIGlmICghdGhpcy5mb3JtQ29udHJvbCB8fCAhdGhpcy5mb3JtQ29udHJvbC5lcnJvcnMpIHtcclxuICAgICAgcmV0dXJuIHJlc3VsdDtcclxuICAgIH1cclxuICAgIGlmICh0aGlzLmN1c3RvbU1zZ0NvbXBvbmVudCAmJiB0aGlzLmN1c3RvbU1zZ0NvbXBvbmVudC5sZW5ndGggPiAwKSB7XHJcbiAgICAgIHRoaXMucHJvY2Vzc2luZ0N1c3RvbU1lc3NhZ2VzKHRoaXMuY3VzdG9tTXNnQ29tcG9uZW50KTtcclxuICAgIH1cclxuICAgIGlmICh0aGlzLmN1c3RvbU1zZ0RpcmVjdGl2ZSAmJiB0aGlzLmN1c3RvbU1zZ0RpcmVjdGl2ZS5sZW5ndGggPiAwKSB7XHJcbiAgICAgIHRoaXMucHJvY2Vzc2luZ0N1c3RvbU1lc3NhZ2VzKHRoaXMuY3VzdG9tTXNnRGlyZWN0aXZlKTtcclxuICAgIH1cclxuXHJcbiAgICBmb3IgKGNvbnN0IHByb3BlcnR5IGluIHRoaXMuZm9ybUNvbnRyb2wuZXJyb3JzKSB7XHJcbiAgICAgIGlmICh0aGlzLmZvcm1Db250cm9sLmVycm9ycy5oYXNPd25Qcm9wZXJ0eShwcm9wZXJ0eSlcclxuICAgICAgICAmJiAodGhpcy5mb3JtQ29udHJvbC50b3VjaGVkIHx8IHRoaXMuZm9ybUNvbnRyb2wuZGlydHkpKSB7XHJcbiAgICAgICAgaWYgKHRoaXMuZm9ybUNvbnRyb2wuZXJyb3JzW3Byb3BlcnR5XS5jdXN0b21NZXNzYWdlcyBpbnN0YW5jZW9mIEFycmF5KSB7XHJcbiAgICAgICAgICByZXN1bHQucHVzaCguLi50aGlzLmZvcm1Db250cm9sLmVycm9yc1twcm9wZXJ0eV0uY3VzdG9tTWVzc2FnZXMpO1xyXG4gICAgICAgICAgY29udGludWU7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmICh0aGlzLmZvcm1Db250cm9sLmVycm9yc1twcm9wZXJ0eV0uY3VzdG9tTWVzc2FnZSkge1xyXG4gICAgICAgICAgcmVzdWx0LnB1c2godGhpcy5mb3JtQ29udHJvbC5lcnJvcnNbcHJvcGVydHldLmN1c3RvbU1lc3NhZ2UpO1xyXG4gICAgICAgICAgY29udGludWU7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGNvbnN0IHZhbGlkYXRpb25NZXNzYWdlOiBzdHJpbmcgPVxyXG4gICAgICAgICAgdGhpcy5uZ3hWYWxpZGF0aW9uTWVzc2FnZXNTZXJ2aWNlLmdldFZhbGlkYXRvckVycm9yTWVzc2FnZXMocHJvcGVydHksIHRoaXMuZm9ybUNvbnRyb2wuZXJyb3JzW3Byb3BlcnR5XSk7XHJcbiAgICAgICAgcmVzdWx0LnB1c2godmFsaWRhdGlvbk1lc3NhZ2UgfHwgdGhpcy5mb3JtQ29udHJvbC5lcnJvcnNbcHJvcGVydHldLm1lc3NhZ2VcclxuICAgICAgICAgIHx8IHRoaXMubmd4VmFsaWRhdGlvbk1lc3NhZ2VzU2VydmljZS5nZXRWYWxpZGF0b3JFcnJvck1lc3NhZ2VzKHRoaXMuZGVmYXVsdEVycm9yKSk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIHJldHVybiByZXN1bHQ7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHByb2Nlc3NpbmdDdXN0b21NZXNzYWdlcyhjdXN0b21NZXNzYWdlOiBRdWVyeUxpc3Q8YW55Pik6IHZvaWQge1xyXG4gICAgY3VzdG9tTWVzc2FnZS5mb3JFYWNoKChtc2c6IGFueSkgPT4ge1xyXG4gICAgICBpZiAoIXRoaXMuZm9ybUNvbnRyb2wuZXJyb3JzW21zZy52YWxpZGF0b3JOYW1lXSkge1xyXG4gICAgICAgIHJldHVybjtcclxuICAgICAgfVxyXG4gICAgICBsZXQgbWVzc2FnZSA9IChtc2cgaW5zdGFuY2VvZiBOZ3hDdXN0b21NZXNzYWdlQ29tcG9uZW50KVxyXG4gICAgICAgID8gbXNnLm1lc3NhZ2UubmF0aXZlRWxlbWVudC5pbm5lclRleHQgOiBtc2cubWVzc2FnZTtcclxuICAgICAgbWVzc2FnZSA9IHRoaXMubmd4VmFsaWRhdGlvbk1lc3NhZ2VzU2VydmljZS5leHBhbmRQYXJhbWV0ZXJpemVkVGVtcGxhdGVNZXNzYWdlKG1lc3NhZ2UsIHRoaXMuZm9ybUNvbnRyb2wuZXJyb3JzW21zZy52YWxpZGF0b3JOYW1lXSk7XHJcblxyXG4gICAgICB0eXBlb2YgdGhpcy5mb3JtQ29udHJvbC5lcnJvcnNbbXNnLnZhbGlkYXRvck5hbWVdID09PSAnb2JqZWN0J1xyXG4gICAgICAgID8gdGhpcy5mb3JtQ29udHJvbC5lcnJvcnNbbXNnLnZhbGlkYXRvck5hbWVdLmN1c3RvbU1lc3NhZ2UgPSBtZXNzYWdlXHJcbiAgICAgICAgOiB0aGlzLmZvcm1Db250cm9sLmVycm9yc1ttc2cudmFsaWRhdG9yTmFtZV0gPSB7Y3VzdG9tTWVzc2FnZTogbWVzc2FnZX07XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG59XHJcbiJdfQ==
@@ -1,29 +1,29 @@
1
- import { Directive, ElementRef, Input } from '@angular/core';
2
- /**
3
- * Allows to specify custom validator message to override default message.
4
- *
5
- * It's alternative for {@link NgxCustomMessageComponent}.
6
- * If you want to use standard html tags to define custom message, use this directive on html tag within
7
- * {@link NgxValidationMessagesComponent} specifying validator name as directive parameter,
8
- * otherwise use {@link NgxCustomMessageComponent}.
9
- */
10
- export class NgxValidatorNameDirective {
11
- constructor(elem) {
12
- this.elem = elem;
13
- }
14
- ngAfterViewInit() {
15
- this.message = this.elem.nativeElement.innerText;
16
- }
17
- }
18
- NgxValidatorNameDirective.decorators = [
19
- { type: Directive, args: [{
20
- selector: '[ngxValidatorName]'
21
- },] }
22
- ];
23
- NgxValidatorNameDirective.ctorParameters = () => [
24
- { type: ElementRef }
25
- ];
26
- NgxValidatorNameDirective.propDecorators = {
27
- validatorName: [{ type: Input }]
28
- };
29
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmd4LXZhbGlkYXRvci1uYW1lLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC12YWxpZGF0aW9uLW1lc3NhZ2VzL3NyYy9saWIvZGlyZWN0aXZpZXMvbmd4LXZhbGlkYXRvci1uYW1lLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWlCLFNBQVMsRUFBRSxVQUFVLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTVFOzs7Ozs7O0dBT0c7QUFJSCxNQUFNLE9BQU8seUJBQXlCO0lBYXBDLFlBQW9CLElBQWdCO1FBQWhCLFNBQUksR0FBSixJQUFJLENBQVk7SUFDcEMsQ0FBQztJQUVNLGVBQWU7UUFDcEIsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxTQUFTLENBQUM7SUFDbkQsQ0FBQzs7O1lBckJGLFNBQVMsU0FBQztnQkFDVCxRQUFRLEVBQUUsb0JBQW9CO2FBQy9COzs7WUFaa0MsVUFBVTs7OzRCQWtCMUMsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFmdGVyVmlld0luaXQsIERpcmVjdGl2ZSwgRWxlbWVudFJlZiwgSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuLyoqXG4gKiBBbGxvd3MgdG8gc3BlY2lmeSBjdXN0b20gdmFsaWRhdG9yIG1lc3NhZ2UgdG8gb3ZlcnJpZGUgZGVmYXVsdCBtZXNzYWdlLlxuICpcbiAqIEl0J3MgYWx0ZXJuYXRpdmUgZm9yIHtAbGluayBOZ3hDdXN0b21NZXNzYWdlQ29tcG9uZW50fS5cbiAqIElmIHlvdSB3YW50IHRvIHVzZSBzdGFuZGFyZCBodG1sIHRhZ3MgdG8gZGVmaW5lIGN1c3RvbSBtZXNzYWdlLCB1c2UgdGhpcyBkaXJlY3RpdmUgb24gaHRtbCB0YWcgd2l0aGluXG4gKiB7QGxpbmsgTmd4VmFsaWRhdGlvbk1lc3NhZ2VzQ29tcG9uZW50fSBzcGVjaWZ5aW5nIHZhbGlkYXRvciBuYW1lIGFzIGRpcmVjdGl2ZSBwYXJhbWV0ZXIsXG4gKiBvdGhlcndpc2UgdXNlIHtAbGluayBOZ3hDdXN0b21NZXNzYWdlQ29tcG9uZW50fS5cbiAqL1xuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiAnW25neFZhbGlkYXRvck5hbWVdJ1xufSlcbmV4cG9ydCBjbGFzcyBOZ3hWYWxpZGF0b3JOYW1lRGlyZWN0aXZlIGltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdCB7XG5cbiAgLyoqXG4gICAqIFRoZSBuYW1lIG9mIHRoZSB2YWxpZGF0b3IgZm9yIHdoaWNoIHlvdSB3YW50IHRvIG92ZXJyaWRlIHRoZSBtZXNzYWdlLlxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIHZhbGlkYXRvck5hbWU6IHN0cmluZztcblxuICAvKipcbiAgICogQ29udGFpbnMgb3ZlcnJpZGRlbiBtZXNzYWdlIGZvciB2YWxpZGF0b3IuXG4gICAqL1xuICBwdWJsaWMgbWVzc2FnZTogc3RyaW5nO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgZWxlbTogRWxlbWVudFJlZikge1xuICB9XG5cbiAgcHVibGljIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLm1lc3NhZ2UgPSB0aGlzLmVsZW0ubmF0aXZlRWxlbWVudC5pbm5lclRleHQ7XG4gIH1cblxufVxuIl19
1
+ import { Directive, ElementRef, Input } from '@angular/core';
2
+ /**
3
+ * Allows to specify custom validator message to override default message.
4
+ *
5
+ * It's alternative for {@link NgxCustomMessageComponent}.
6
+ * If you want to use standard html tags to define custom message, use this directive on html tag within
7
+ * {@link NgxValidationMessagesComponent} specifying validator name as directive parameter,
8
+ * otherwise use {@link NgxCustomMessageComponent}.
9
+ */
10
+ export class NgxValidatorNameDirective {
11
+ constructor(elem) {
12
+ this.elem = elem;
13
+ }
14
+ ngAfterViewInit() {
15
+ this.message = this.elem.nativeElement.innerText;
16
+ }
17
+ }
18
+ NgxValidatorNameDirective.decorators = [
19
+ { type: Directive, args: [{
20
+ selector: '[ngxValidatorName]'
21
+ },] }
22
+ ];
23
+ NgxValidatorNameDirective.ctorParameters = () => [
24
+ { type: ElementRef }
25
+ ];
26
+ NgxValidatorNameDirective.propDecorators = {
27
+ validatorName: [{ type: Input }]
28
+ };
29
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmd4LXZhbGlkYXRvci1uYW1lLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC12YWxpZGF0aW9uLW1lc3NhZ2VzL3NyYy9saWIvZGlyZWN0aXZpZXMvbmd4LXZhbGlkYXRvci1uYW1lLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWlCLFNBQVMsRUFBRSxVQUFVLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTVFOzs7Ozs7O0dBT0c7QUFJSCxNQUFNLE9BQU8seUJBQXlCO0lBYXBDLFlBQW9CLElBQWdCO1FBQWhCLFNBQUksR0FBSixJQUFJLENBQVk7SUFDcEMsQ0FBQztJQUVNLGVBQWU7UUFDcEIsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxTQUFTLENBQUM7SUFDbkQsQ0FBQzs7O1lBckJGLFNBQVMsU0FBQztnQkFDVCxRQUFRLEVBQUUsb0JBQW9CO2FBQy9COzs7WUFaa0MsVUFBVTs7OzRCQWtCMUMsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFmdGVyVmlld0luaXQsIERpcmVjdGl2ZSwgRWxlbWVudFJlZiwgSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuXHJcbi8qKlxyXG4gKiBBbGxvd3MgdG8gc3BlY2lmeSBjdXN0b20gdmFsaWRhdG9yIG1lc3NhZ2UgdG8gb3ZlcnJpZGUgZGVmYXVsdCBtZXNzYWdlLlxyXG4gKlxyXG4gKiBJdCdzIGFsdGVybmF0aXZlIGZvciB7QGxpbmsgTmd4Q3VzdG9tTWVzc2FnZUNvbXBvbmVudH0uXHJcbiAqIElmIHlvdSB3YW50IHRvIHVzZSBzdGFuZGFyZCBodG1sIHRhZ3MgdG8gZGVmaW5lIGN1c3RvbSBtZXNzYWdlLCB1c2UgdGhpcyBkaXJlY3RpdmUgb24gaHRtbCB0YWcgd2l0aGluXHJcbiAqIHtAbGluayBOZ3hWYWxpZGF0aW9uTWVzc2FnZXNDb21wb25lbnR9IHNwZWNpZnlpbmcgdmFsaWRhdG9yIG5hbWUgYXMgZGlyZWN0aXZlIHBhcmFtZXRlcixcclxuICogb3RoZXJ3aXNlIHVzZSB7QGxpbmsgTmd4Q3VzdG9tTWVzc2FnZUNvbXBvbmVudH0uXHJcbiAqL1xyXG5ARGlyZWN0aXZlKHtcclxuICBzZWxlY3RvcjogJ1tuZ3hWYWxpZGF0b3JOYW1lXSdcclxufSlcclxuZXhwb3J0IGNsYXNzIE5neFZhbGlkYXRvck5hbWVEaXJlY3RpdmUgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0IHtcclxuXHJcbiAgLyoqXHJcbiAgICogVGhlIG5hbWUgb2YgdGhlIHZhbGlkYXRvciBmb3Igd2hpY2ggeW91IHdhbnQgdG8gb3ZlcnJpZGUgdGhlIG1lc3NhZ2UuXHJcbiAgICovXHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgdmFsaWRhdG9yTmFtZTogc3RyaW5nO1xyXG5cclxuICAvKipcclxuICAgKiBDb250YWlucyBvdmVycmlkZGVuIG1lc3NhZ2UgZm9yIHZhbGlkYXRvci5cclxuICAgKi9cclxuICBwdWJsaWMgbWVzc2FnZTogc3RyaW5nO1xyXG5cclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGVsZW06IEVsZW1lbnRSZWYpIHtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLm1lc3NhZ2UgPSB0aGlzLmVsZW0ubmF0aXZlRWxlbWVudC5pbm5lclRleHQ7XHJcbiAgfVxyXG5cclxufVxyXG4iXX0=
@@ -1,3 +1,3 @@
1
- import { InjectionToken } from '@angular/core';
2
- export const NGX_VALIDATION_MESSAGES_CONFIG = new InjectionToken('NgxValidationMessagesConfig');
3
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmd4LXZhbGlkYXRpb24tbWVzc2FnZXMuY29uZmlnLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXZhbGlkYXRpb24tbWVzc2FnZXMvc3JjL2xpYi9pbnRlcmZhY2Uvbmd4LXZhbGlkYXRpb24tbWVzc2FnZXMuY29uZmlnLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFL0MsTUFBTSxDQUFDLE1BQU0sOEJBQThCLEdBQ3ZDLElBQUksY0FBYyxDQUE4Qiw2QkFBNkIsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0aW9uVG9rZW4gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuZXhwb3J0IGNvbnN0IE5HWF9WQUxJREFUSU9OX01FU1NBR0VTX0NPTkZJRzogSW5qZWN0aW9uVG9rZW48Tmd4VmFsaWRhdGlvbk1lc3NhZ2VzQ29uZmlnPlxuICA9IG5ldyBJbmplY3Rpb25Ub2tlbjxOZ3hWYWxpZGF0aW9uTWVzc2FnZXNDb25maWc+KCdOZ3hWYWxpZGF0aW9uTWVzc2FnZXNDb25maWcnKTtcblxuZXhwb3J0IGludGVyZmFjZSBOZ3hWYWxpZGF0aW9uTWVzc2FnZXNDb25maWcge1xuXG4gIC8qKlxuICAgKiBPYmplY3QgY29udGFpbnMgdmFsaWRhdGlvbiBtZXNzYWdlcyBpbiB2YWxpZGF0b3JOYW1lOiB2YWxpZGF0b3JNZXNzYWdlIGZvcm1hdC5cbiAgICovXG4gIG1lc3NhZ2VzOiB7XG4gICAgW3ZhbGlkYXRvck5hbWU6IHN0cmluZ106IHN0cmluZztcbiAgfTtcblxuICAvKipcbiAgICogRGVmaW5lIGN1c3RvbSBzdHlsZXMgdG8gZGlzcGxheSB2YWxpZGF0aW9uIG1lc3NhZ2VzLlxuICAgKi9cbiAgdmFsaWRhdGlvbk1lc3NhZ2VzU3R5bGU/OiB7XG4gICAgYmxvY2tDbGFzc05hbWVzPzogc3RyaW5nO1xuICAgIHRleHRDbGFzc05hbWVzPzogc3RyaW5nO1xuICB9O1xuXG59XG4iXX0=
1
+ import { InjectionToken } from '@angular/core';
2
+ export const NGX_VALIDATION_MESSAGES_CONFIG = new InjectionToken('NgxValidationMessagesConfig');
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmd4LXZhbGlkYXRpb24tbWVzc2FnZXMuY29uZmlnLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXZhbGlkYXRpb24tbWVzc2FnZXMvc3JjL2xpYi9pbnRlcmZhY2Uvbmd4LXZhbGlkYXRpb24tbWVzc2FnZXMuY29uZmlnLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFL0MsTUFBTSxDQUFDLE1BQU0sOEJBQThCLEdBQ3ZDLElBQUksY0FBYyxDQUE4Qiw2QkFBNkIsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0aW9uVG9rZW4gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuXHJcbmV4cG9ydCBjb25zdCBOR1hfVkFMSURBVElPTl9NRVNTQUdFU19DT05GSUc6IEluamVjdGlvblRva2VuPE5neFZhbGlkYXRpb25NZXNzYWdlc0NvbmZpZz5cclxuICA9IG5ldyBJbmplY3Rpb25Ub2tlbjxOZ3hWYWxpZGF0aW9uTWVzc2FnZXNDb25maWc+KCdOZ3hWYWxpZGF0aW9uTWVzc2FnZXNDb25maWcnKTtcclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgTmd4VmFsaWRhdGlvbk1lc3NhZ2VzQ29uZmlnIHtcclxuXHJcbiAgLyoqXHJcbiAgICogT2JqZWN0IGNvbnRhaW5zIHZhbGlkYXRpb24gbWVzc2FnZXMgaW4gdmFsaWRhdG9yTmFtZTogdmFsaWRhdG9yTWVzc2FnZSBmb3JtYXQuXHJcbiAgICovXHJcbiAgbWVzc2FnZXM6IHtcclxuICAgIFt2YWxpZGF0b3JOYW1lOiBzdHJpbmddOiBzdHJpbmc7XHJcbiAgfTtcclxuXHJcbiAgLyoqXHJcbiAgICogRGVmaW5lIGN1c3RvbSBzdHlsZXMgdG8gZGlzcGxheSB2YWxpZGF0aW9uIG1lc3NhZ2VzLlxyXG4gICAqL1xyXG4gIHZhbGlkYXRpb25NZXNzYWdlc1N0eWxlPzoge1xyXG4gICAgYmxvY2tDbGFzc05hbWVzPzogc3RyaW5nO1xyXG4gICAgdGV4dENsYXNzTmFtZXM/OiBzdHJpbmc7XHJcbiAgfTtcclxuXHJcbn1cclxuIl19
@@ -1,48 +1,45 @@
1
- import { CommonModule } from '@angular/common';
2
- import { NgModule } from '@angular/core';
3
- import { MatFormFieldModule } from '@angular/material/form-field';
4
- import { NgxCustomMessageComponent } from './components/ngx-custom-message/ngx-custom-message.component';
5
- import { NgxValidationMessagesComponent } from './components/ngx-validation-messages/ngx-validation-messages.component';
6
- import { NgxValidatorNameDirective } from './directivies/ngx-validator-name.directive';
7
- import { NGX_VALIDATION_MESSAGES_CONFIG } from './interface/ngx-validation-messages.config';
8
- import { NgxValidationMessagesService } from './service/ngx-validation-messages.service';
9
- export { NGX_VALIDATION_MESSAGES_CONFIG } from './interface/ngx-validation-messages.config';
10
- export { NgxCustomMessageComponent } from './components/ngx-custom-message/ngx-custom-message.component';
11
- export { NgxValidationMessagesComponent } from './components/ngx-validation-messages/ngx-validation-messages.component';
12
- export { NgxValidatorNameDirective } from './directivies/ngx-validator-name.directive';
13
- export class NgxValidationMessagesModule {
14
- static forRoot(config) {
15
- return {
16
- ngModule: NgxValidationMessagesModule,
17
- providers: [
18
- NgxValidationMessagesService,
19
- {
20
- provide: NGX_VALIDATION_MESSAGES_CONFIG,
21
- useValue: config
22
- }
23
- ]
24
- };
25
- }
26
- }
27
- NgxValidationMessagesModule.decorators = [
28
- { type: NgModule, args: [{
29
- imports: [
30
- CommonModule,
31
- MatFormFieldModule
32
- ],
33
- providers: [
34
- NgxValidationMessagesService
35
- ],
36
- declarations: [
37
- NgxValidationMessagesComponent,
38
- NgxCustomMessageComponent,
39
- NgxValidatorNameDirective
40
- ],
41
- exports: [
42
- NgxValidationMessagesComponent,
43
- NgxCustomMessageComponent,
44
- NgxValidatorNameDirective
45
- ]
46
- },] }
47
- ];
48
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmd4LXZhbGlkYXRpb24tbWVzc2FnZXMubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXZhbGlkYXRpb24tbWVzc2FnZXMvc3JjL2xpYi9uZ3gtdmFsaWRhdGlvbi1tZXNzYWdlcy5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBdUIsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzlELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ2xFLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLDhEQUE4RCxDQUFDO0FBQ3pHLE9BQU8sRUFBRSw4QkFBOEIsRUFBRSxNQUFNLHdFQUF3RSxDQUFDO0FBQ3hILE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLDRDQUE0QyxDQUFDO0FBQ3ZGLE9BQU8sRUFBRSw4QkFBOEIsRUFBK0IsTUFBTSw0Q0FBNEMsQ0FBQztBQUN6SCxPQUFPLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSwyQ0FBMkMsQ0FBQztBQUV6RixPQUFPLEVBQUUsOEJBQThCLEVBQStCLE1BQU0sNENBQTRDLENBQUM7QUFDekgsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sOERBQThELENBQUM7QUFDekcsT0FBTyxFQUFFLDhCQUE4QixFQUFFLE1BQU0sd0VBQXdFLENBQUM7QUFDeEgsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sNENBQTRDLENBQUM7QUFxQnZGLE1BQU0sT0FBTywyQkFBMkI7SUFDdEMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxNQUFtQztRQUNoRCxPQUFPO1lBQ0wsUUFBUSxFQUFFLDJCQUEyQjtZQUNyQyxTQUFTLEVBQUU7Z0JBQ1QsNEJBQTRCO2dCQUM1QjtvQkFDRSxPQUFPLEVBQUUsOEJBQThCO29CQUN2QyxRQUFRLEVBQUUsTUFBTTtpQkFDakI7YUFDRjtTQUNGLENBQUM7SUFDSixDQUFDOzs7WUEvQkYsUUFBUSxTQUFDO2dCQUNSLE9BQU8sRUFBRTtvQkFDUCxZQUFZO29CQUNaLGtCQUFrQjtpQkFDbkI7Z0JBQ0QsU0FBUyxFQUFFO29CQUNULDRCQUE0QjtpQkFDN0I7Z0JBQ0QsWUFBWSxFQUFFO29CQUNaLDhCQUE4QjtvQkFDOUIseUJBQXlCO29CQUN6Qix5QkFBeUI7aUJBQzFCO2dCQUNELE9BQU8sRUFBRTtvQkFDUCw4QkFBOEI7b0JBQzlCLHlCQUF5QjtvQkFDekIseUJBQXlCO2lCQUMxQjthQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IE1vZHVsZVdpdGhQcm92aWRlcnMsIE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBNYXRGb3JtRmllbGRNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9mb3JtLWZpZWxkJztcbmltcG9ydCB7IE5neEN1c3RvbU1lc3NhZ2VDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvbmd4LWN1c3RvbS1tZXNzYWdlL25neC1jdXN0b20tbWVzc2FnZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgTmd4VmFsaWRhdGlvbk1lc3NhZ2VzQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL25neC12YWxpZGF0aW9uLW1lc3NhZ2VzL25neC12YWxpZGF0aW9uLW1lc3NhZ2VzLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBOZ3hWYWxpZGF0b3JOYW1lRGlyZWN0aXZlIH0gZnJvbSAnLi9kaXJlY3Rpdmllcy9uZ3gtdmFsaWRhdG9yLW5hbWUuZGlyZWN0aXZlJztcbmltcG9ydCB7IE5HWF9WQUxJREFUSU9OX01FU1NBR0VTX0NPTkZJRywgTmd4VmFsaWRhdGlvbk1lc3NhZ2VzQ29uZmlnIH0gZnJvbSAnLi9pbnRlcmZhY2Uvbmd4LXZhbGlkYXRpb24tbWVzc2FnZXMuY29uZmlnJztcbmltcG9ydCB7IE5neFZhbGlkYXRpb25NZXNzYWdlc1NlcnZpY2UgfSBmcm9tICcuL3NlcnZpY2Uvbmd4LXZhbGlkYXRpb24tbWVzc2FnZXMuc2VydmljZSc7XG5cbmV4cG9ydCB7IE5HWF9WQUxJREFUSU9OX01FU1NBR0VTX0NPTkZJRywgTmd4VmFsaWRhdGlvbk1lc3NhZ2VzQ29uZmlnIH0gZnJvbSAnLi9pbnRlcmZhY2Uvbmd4LXZhbGlkYXRpb24tbWVzc2FnZXMuY29uZmlnJztcbmV4cG9ydCB7IE5neEN1c3RvbU1lc3NhZ2VDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvbmd4LWN1c3RvbS1tZXNzYWdlL25neC1jdXN0b20tbWVzc2FnZS5jb21wb25lbnQnO1xuZXhwb3J0IHsgTmd4VmFsaWRhdGlvbk1lc3NhZ2VzQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL25neC12YWxpZGF0aW9uLW1lc3NhZ2VzL25neC12YWxpZGF0aW9uLW1lc3NhZ2VzLmNvbXBvbmVudCc7XG5leHBvcnQgeyBOZ3hWYWxpZGF0b3JOYW1lRGlyZWN0aXZlIH0gZnJvbSAnLi9kaXJlY3Rpdmllcy9uZ3gtdmFsaWRhdG9yLW5hbWUuZGlyZWN0aXZlJztcblxuQE5nTW9kdWxlKHtcbiAgaW1wb3J0czogW1xuICAgIENvbW1vbk1vZHVsZSxcbiAgICBNYXRGb3JtRmllbGRNb2R1bGVcbiAgXSxcbiAgcHJvdmlkZXJzOiBbXG4gICAgTmd4VmFsaWRhdGlvbk1lc3NhZ2VzU2VydmljZVxuICBdLFxuICBkZWNsYXJhdGlvbnM6IFtcbiAgICBOZ3hWYWxpZGF0aW9uTWVzc2FnZXNDb21wb25lbnQsXG4gICAgTmd4Q3VzdG9tTWVzc2FnZUNvbXBvbmVudCxcbiAgICBOZ3hWYWxpZGF0b3JOYW1lRGlyZWN0aXZlXG4gIF0sXG4gIGV4cG9ydHM6IFtcbiAgICBOZ3hWYWxpZGF0aW9uTWVzc2FnZXNDb21wb25lbnQsXG4gICAgTmd4Q3VzdG9tTWVzc2FnZUNvbXBvbmVudCxcbiAgICBOZ3hWYWxpZGF0b3JOYW1lRGlyZWN0aXZlXG4gIF1cbn0pXG5leHBvcnQgY2xhc3MgTmd4VmFsaWRhdGlvbk1lc3NhZ2VzTW9kdWxlIHtcbiAgc3RhdGljIGZvclJvb3QoY29uZmlnOiBOZ3hWYWxpZGF0aW9uTWVzc2FnZXNDb25maWcpOiBNb2R1bGVXaXRoUHJvdmlkZXJzPE5neFZhbGlkYXRpb25NZXNzYWdlc01vZHVsZT4ge1xuICAgIHJldHVybiB7XG4gICAgICBuZ01vZHVsZTogTmd4VmFsaWRhdGlvbk1lc3NhZ2VzTW9kdWxlLFxuICAgICAgcHJvdmlkZXJzOiBbXG4gICAgICAgIE5neFZhbGlkYXRpb25NZXNzYWdlc1NlcnZpY2UsXG4gICAgICAgIHtcbiAgICAgICAgICBwcm92aWRlOiBOR1hfVkFMSURBVElPTl9NRVNTQUdFU19DT05GSUcsXG4gICAgICAgICAgdXNlVmFsdWU6IGNvbmZpZ1xuICAgICAgICB9XG4gICAgICBdXG4gICAgfTtcbiAgfVxufVxuIl19
1
+ import { CommonModule } from '@angular/common';
2
+ import { NgModule } from '@angular/core';
3
+ import { MatFormFieldModule } from '@angular/material/form-field';
4
+ import { NgxCustomMessageComponent } from './components/ngx-custom-message/ngx-custom-message.component';
5
+ import { NgxValidationMessagesComponent } from './components/ngx-validation-messages/ngx-validation-messages.component';
6
+ import { NgxValidatorNameDirective } from './directivies/ngx-validator-name.directive';
7
+ import { NGX_VALIDATION_MESSAGES_CONFIG } from './interface/ngx-validation-messages.config';
8
+ import { NgxValidationMessagesService } from './service/ngx-validation-messages.service';
9
+ export { NGX_VALIDATION_MESSAGES_CONFIG } from './interface/ngx-validation-messages.config';
10
+ export { NgxCustomMessageComponent } from './components/ngx-custom-message/ngx-custom-message.component';
11
+ export { NgxValidationMessagesComponent } from './components/ngx-validation-messages/ngx-validation-messages.component';
12
+ export { NgxValidatorNameDirective } from './directivies/ngx-validator-name.directive';
13
+ export class NgxValidationMessagesModule {
14
+ static forRoot(config) {
15
+ return {
16
+ ngModule: NgxValidationMessagesModule,
17
+ providers: [
18
+ NgxValidationMessagesService,
19
+ {
20
+ provide: NGX_VALIDATION_MESSAGES_CONFIG,
21
+ useValue: config
22
+ }
23
+ ]
24
+ };
25
+ }
26
+ }
27
+ NgxValidationMessagesModule.decorators = [
28
+ { type: NgModule, args: [{
29
+ imports: [
30
+ CommonModule,
31
+ MatFormFieldModule
32
+ ],
33
+ declarations: [
34
+ NgxValidationMessagesComponent,
35
+ NgxCustomMessageComponent,
36
+ NgxValidatorNameDirective
37
+ ],
38
+ exports: [
39
+ NgxValidationMessagesComponent,
40
+ NgxCustomMessageComponent,
41
+ NgxValidatorNameDirective
42
+ ]
43
+ },] }
44
+ ];
45
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmd4LXZhbGlkYXRpb24tbWVzc2FnZXMubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXZhbGlkYXRpb24tbWVzc2FnZXMvc3JjL2xpYi9uZ3gtdmFsaWRhdGlvbi1tZXNzYWdlcy5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBdUIsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzlELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ2xFLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLDhEQUE4RCxDQUFDO0FBQ3pHLE9BQU8sRUFBRSw4QkFBOEIsRUFBRSxNQUFNLHdFQUF3RSxDQUFDO0FBQ3hILE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLDRDQUE0QyxDQUFDO0FBQ3ZGLE9BQU8sRUFBRSw4QkFBOEIsRUFBK0IsTUFBTSw0Q0FBNEMsQ0FBQztBQUN6SCxPQUFPLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSwyQ0FBMkMsQ0FBQztBQUV6RixPQUFPLEVBQUUsOEJBQThCLEVBQStCLE1BQU0sNENBQTRDLENBQUM7QUFDekgsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sOERBQThELENBQUM7QUFDekcsT0FBTyxFQUFFLDhCQUE4QixFQUFFLE1BQU0sd0VBQXdFLENBQUM7QUFDeEgsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sNENBQTRDLENBQUM7QUFrQnZGLE1BQU0sT0FBTywyQkFBMkI7SUFDdEMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxNQUFtQztRQUNoRCxPQUFPO1lBQ0wsUUFBUSxFQUFFLDJCQUEyQjtZQUNyQyxTQUFTLEVBQUU7Z0JBQ1QsNEJBQTRCO2dCQUM1QjtvQkFDRSxPQUFPLEVBQUUsOEJBQThCO29CQUN2QyxRQUFRLEVBQUUsTUFBTTtpQkFDakI7YUFDRjtTQUNGLENBQUM7SUFDSixDQUFDOzs7WUE1QkYsUUFBUSxTQUFDO2dCQUNSLE9BQU8sRUFBRTtvQkFDUCxZQUFZO29CQUNaLGtCQUFrQjtpQkFDbkI7Z0JBQ0QsWUFBWSxFQUFFO29CQUNaLDhCQUE4QjtvQkFDOUIseUJBQXlCO29CQUN6Qix5QkFBeUI7aUJBQzFCO2dCQUNELE9BQU8sRUFBRTtvQkFDUCw4QkFBOEI7b0JBQzlCLHlCQUF5QjtvQkFDekIseUJBQXlCO2lCQUMxQjthQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHsgTW9kdWxlV2l0aFByb3ZpZGVycywgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgTWF0Rm9ybUZpZWxkTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZm9ybS1maWVsZCc7XHJcbmltcG9ydCB7IE5neEN1c3RvbU1lc3NhZ2VDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvbmd4LWN1c3RvbS1tZXNzYWdlL25neC1jdXN0b20tbWVzc2FnZS5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBOZ3hWYWxpZGF0aW9uTWVzc2FnZXNDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvbmd4LXZhbGlkYXRpb24tbWVzc2FnZXMvbmd4LXZhbGlkYXRpb24tbWVzc2FnZXMuY29tcG9uZW50JztcclxuaW1wb3J0IHsgTmd4VmFsaWRhdG9yTmFtZURpcmVjdGl2ZSB9IGZyb20gJy4vZGlyZWN0aXZpZXMvbmd4LXZhbGlkYXRvci1uYW1lLmRpcmVjdGl2ZSc7XHJcbmltcG9ydCB7IE5HWF9WQUxJREFUSU9OX01FU1NBR0VTX0NPTkZJRywgTmd4VmFsaWRhdGlvbk1lc3NhZ2VzQ29uZmlnIH0gZnJvbSAnLi9pbnRlcmZhY2Uvbmd4LXZhbGlkYXRpb24tbWVzc2FnZXMuY29uZmlnJztcclxuaW1wb3J0IHsgTmd4VmFsaWRhdGlvbk1lc3NhZ2VzU2VydmljZSB9IGZyb20gJy4vc2VydmljZS9uZ3gtdmFsaWRhdGlvbi1tZXNzYWdlcy5zZXJ2aWNlJztcclxuXHJcbmV4cG9ydCB7IE5HWF9WQUxJREFUSU9OX01FU1NBR0VTX0NPTkZJRywgTmd4VmFsaWRhdGlvbk1lc3NhZ2VzQ29uZmlnIH0gZnJvbSAnLi9pbnRlcmZhY2Uvbmd4LXZhbGlkYXRpb24tbWVzc2FnZXMuY29uZmlnJztcclxuZXhwb3J0IHsgTmd4Q3VzdG9tTWVzc2FnZUNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9uZ3gtY3VzdG9tLW1lc3NhZ2Uvbmd4LWN1c3RvbS1tZXNzYWdlLmNvbXBvbmVudCc7XHJcbmV4cG9ydCB7IE5neFZhbGlkYXRpb25NZXNzYWdlc0NvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9uZ3gtdmFsaWRhdGlvbi1tZXNzYWdlcy9uZ3gtdmFsaWRhdGlvbi1tZXNzYWdlcy5jb21wb25lbnQnO1xyXG5leHBvcnQgeyBOZ3hWYWxpZGF0b3JOYW1lRGlyZWN0aXZlIH0gZnJvbSAnLi9kaXJlY3Rpdmllcy9uZ3gtdmFsaWRhdG9yLW5hbWUuZGlyZWN0aXZlJztcclxuXHJcbkBOZ01vZHVsZSh7XHJcbiAgaW1wb3J0czogW1xyXG4gICAgQ29tbW9uTW9kdWxlLFxyXG4gICAgTWF0Rm9ybUZpZWxkTW9kdWxlXHJcbiAgXSxcclxuICBkZWNsYXJhdGlvbnM6IFtcclxuICAgIE5neFZhbGlkYXRpb25NZXNzYWdlc0NvbXBvbmVudCxcclxuICAgIE5neEN1c3RvbU1lc3NhZ2VDb21wb25lbnQsXHJcbiAgICBOZ3hWYWxpZGF0b3JOYW1lRGlyZWN0aXZlXHJcbiAgXSxcclxuICBleHBvcnRzOiBbXHJcbiAgICBOZ3hWYWxpZGF0aW9uTWVzc2FnZXNDb21wb25lbnQsXHJcbiAgICBOZ3hDdXN0b21NZXNzYWdlQ29tcG9uZW50LFxyXG4gICAgTmd4VmFsaWRhdG9yTmFtZURpcmVjdGl2ZVxyXG4gIF1cclxufSlcclxuZXhwb3J0IGNsYXNzIE5neFZhbGlkYXRpb25NZXNzYWdlc01vZHVsZSB7XHJcbiAgc3RhdGljIGZvclJvb3QoY29uZmlnOiBOZ3hWYWxpZGF0aW9uTWVzc2FnZXNDb25maWcpOiBNb2R1bGVXaXRoUHJvdmlkZXJzPE5neFZhbGlkYXRpb25NZXNzYWdlc01vZHVsZT4ge1xyXG4gICAgcmV0dXJuIHtcclxuICAgICAgbmdNb2R1bGU6IE5neFZhbGlkYXRpb25NZXNzYWdlc01vZHVsZSxcclxuICAgICAgcHJvdmlkZXJzOiBbXHJcbiAgICAgICAgTmd4VmFsaWRhdGlvbk1lc3NhZ2VzU2VydmljZSxcclxuICAgICAgICB7XHJcbiAgICAgICAgICBwcm92aWRlOiBOR1hfVkFMSURBVElPTl9NRVNTQUdFU19DT05GSUcsXHJcbiAgICAgICAgICB1c2VWYWx1ZTogY29uZmlnXHJcbiAgICAgICAgfVxyXG4gICAgICBdXHJcbiAgICB9O1xyXG4gIH1cclxufVxyXG4iXX0=
@@ -1,69 +1,69 @@
1
- import { Inject, Injectable } from '@angular/core';
2
- import { NGX_VALIDATION_MESSAGES_CONFIG } from '../interface/ngx-validation-messages.config';
3
- /**
4
- * Service allows getting validation messages from client's settings.
5
- * Injecting {@link NgxValidationMessagesConfig} to get client's configuration with validation messages.
6
- */
7
- export class NgxValidationMessagesService {
8
- constructor(messagesConfig) {
9
- this.messagesConfig = messagesConfig;
10
- /**
11
- * Regular expression to find params placeholder '#[paramName]'.
12
- */
13
- this.paramsRegExp = new RegExp(/#[[a-zA-Z_\\-]*]/);
14
- }
15
- /**
16
- * Get validation message for specified validator.
17
- *
18
- * @param validatorName for which to get message
19
- * @param params passed from validator for more detailed validation message
20
- *
21
- * @returns string validation message
22
- */
23
- getValidatorErrorMessages(validatorName, params) {
24
- const validationMessages = this.messagesConfig.messages;
25
- const validationMessage = validationMessages[validatorName];
26
- if (!validationMessage) {
27
- throw new Error('Validation message for validator: ' + validatorName
28
- + ' cannot be found, please check validation message key for validator it is case sensitive.');
29
- }
30
- if (params) {
31
- return this.expandParameterizedTemplateMessage(validationMessage, params);
32
- }
33
- return validationMessage;
34
- }
35
- expandParameterizedTemplateMessage(msg, params) {
36
- while (this.paramsRegExp.test(msg)) {
37
- const foundParams = this.paramsRegExp.exec(msg);
38
- foundParams.forEach(value => {
39
- const paramPlaceholder = value;
40
- value = value.replace('#[', '').replace(']', '');
41
- msg = msg.replace(paramPlaceholder, this.getParameter(params, value));
42
- });
43
- }
44
- return msg;
45
- }
46
- /**
47
- * A utilitarian method to get a property from an object.
48
- * if there is no property, an empty string is returned.
49
- *
50
- * @param obj from which the property must be obtained
51
- * @param prop property name
52
- *
53
- * @return property value or empty string
54
- */
55
- getParameter(obj, prop) {
56
- return prop.split('.')
57
- .reduce((m, i) => {
58
- return m && typeof m === 'object' ? m[i] : '';
59
- }, obj);
60
- }
61
- }
62
- NgxValidationMessagesService.SERVER_ERRORS = 'serverErrors';
63
- NgxValidationMessagesService.decorators = [
64
- { type: Injectable }
65
- ];
66
- NgxValidationMessagesService.ctorParameters = () => [
67
- { type: undefined, decorators: [{ type: Inject, args: [NGX_VALIDATION_MESSAGES_CONFIG,] }] }
68
- ];
69
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmd4LXZhbGlkYXRpb24tbWVzc2FnZXMuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC12YWxpZGF0aW9uLW1lc3NhZ2VzL3NyYy9saWIvc2VydmljZS9uZ3gtdmFsaWRhdGlvbi1tZXNzYWdlcy5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25ELE9BQU8sRUFBRSw4QkFBOEIsRUFBK0IsTUFBTSw2Q0FBNkMsQ0FBQztBQUUxSDs7O0dBR0c7QUFFSCxNQUFNLE9BQU8sNEJBQTRCO0lBU3ZDLFlBQTRELGNBQTJDO1FBQTNDLG1CQUFjLEdBQWQsY0FBYyxDQUE2QjtRQUx2Rzs7V0FFRztRQUNLLGlCQUFZLEdBQUcsSUFBSSxNQUFNLENBQUMsa0JBQWtCLENBQUMsQ0FBQztJQUd0RCxDQUFDO0lBRUQ7Ozs7Ozs7T0FPRztJQUNJLHlCQUF5QixDQUFDLGFBQXFCLEVBQUUsTUFBZTtRQUNyRSxNQUFNLGtCQUFrQixHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsUUFBUSxDQUFDO1FBQ3hELE1BQU0saUJBQWlCLEdBQVcsa0JBQWtCLENBQUMsYUFBYSxDQUFDLENBQUM7UUFFcEUsSUFBSSxDQUFDLGlCQUFpQixFQUFFO1lBQ3RCLE1BQU0sSUFBSSxLQUFLLENBQUMsb0NBQW9DLEdBQUcsYUFBYTtrQkFDaEUsMkZBQTJGLENBQUMsQ0FBQztTQUNsRztRQUVELElBQUksTUFBTSxFQUFFO1lBQ1YsT0FBTyxJQUFJLENBQUMsa0NBQWtDLENBQUMsaUJBQWlCLEVBQUUsTUFBTSxDQUFDLENBQUM7U0FDM0U7UUFFRCxPQUFPLGlCQUFpQixDQUFDO0lBQzNCLENBQUM7SUFFTSxrQ0FBa0MsQ0FBQyxHQUFXLEVBQUUsTUFBYztRQUNuRSxPQUFPLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFO1lBQ2xDLE1BQU0sV0FBVyxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQ2hELFdBQVcsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLEVBQUU7Z0JBQzFCLE1BQU0sZ0JBQWdCLEdBQUcsS0FBSyxDQUFDO2dCQUMvQixLQUFLLEdBQUcsS0FBSyxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLENBQUMsT0FBTyxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsQ0FBQztnQkFDakQsR0FBRyxHQUFHLEdBQUcsQ0FBQyxPQUFPLENBQUMsZ0JBQWdCLEVBQUUsSUFBSSxDQUFDLFlBQVksQ0FBQyxNQUFNLEVBQUUsS0FBSyxDQUFDLENBQUMsQ0FBQztZQUN4RSxDQUFDLENBQUMsQ0FBQztTQUNKO1FBRUQsT0FBTyxHQUFHLENBQUM7SUFDYixDQUFDO0lBRUQ7Ozs7Ozs7O09BUUc7SUFDSyxZQUFZLENBQUMsR0FBVyxFQUFFLElBQVk7UUFDNUMsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQzthQUNuQixNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUU7WUFDZixPQUFPLENBQUMsSUFBSSxPQUFPLENBQUMsS0FBSyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO1FBQ2hELENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQztJQUNaLENBQUM7O0FBN0RhLDBDQUFhLEdBQUcsY0FBYyxDQUFDOztZQUg5QyxVQUFVOzs7NENBVUksTUFBTSxTQUFDLDhCQUE4QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdCwgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTkdYX1ZBTElEQVRJT05fTUVTU0FHRVNfQ09ORklHLCBOZ3hWYWxpZGF0aW9uTWVzc2FnZXNDb25maWcgfSBmcm9tICcuLi9pbnRlcmZhY2Uvbmd4LXZhbGlkYXRpb24tbWVzc2FnZXMuY29uZmlnJztcblxuLyoqXG4gKiBTZXJ2aWNlIGFsbG93cyBnZXR0aW5nIHZhbGlkYXRpb24gbWVzc2FnZXMgZnJvbSBjbGllbnQncyBzZXR0aW5ncy5cbiAqIEluamVjdGluZyB7QGxpbmsgTmd4VmFsaWRhdGlvbk1lc3NhZ2VzQ29uZmlnfSB0byBnZXQgY2xpZW50J3MgY29uZmlndXJhdGlvbiB3aXRoIHZhbGlkYXRpb24gbWVzc2FnZXMuXG4gKi9cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBOZ3hWYWxpZGF0aW9uTWVzc2FnZXNTZXJ2aWNlIHtcblxuICBwdWJsaWMgc3RhdGljIFNFUlZFUl9FUlJPUlMgPSAnc2VydmVyRXJyb3JzJztcblxuICAvKipcbiAgICogUmVndWxhciBleHByZXNzaW9uIHRvIGZpbmQgcGFyYW1zIHBsYWNlaG9sZGVyICcjW3BhcmFtTmFtZV0nLlxuICAgKi9cbiAgcHJpdmF0ZSBwYXJhbXNSZWdFeHAgPSBuZXcgUmVnRXhwKC8jW1thLXpBLVpfXFxcXC1dKl0vKTtcblxuICBjb25zdHJ1Y3RvcihASW5qZWN0KE5HWF9WQUxJREFUSU9OX01FU1NBR0VTX0NPTkZJRykgcHJpdmF0ZSBtZXNzYWdlc0NvbmZpZzogTmd4VmFsaWRhdGlvbk1lc3NhZ2VzQ29uZmlnKSB7XG4gIH1cblxuICAvKipcbiAgICogR2V0IHZhbGlkYXRpb24gbWVzc2FnZSBmb3Igc3BlY2lmaWVkIHZhbGlkYXRvci5cbiAgICpcbiAgICogQHBhcmFtIHZhbGlkYXRvck5hbWUgZm9yIHdoaWNoIHRvIGdldCBtZXNzYWdlXG4gICAqIEBwYXJhbSBwYXJhbXMgcGFzc2VkIGZyb20gdmFsaWRhdG9yIGZvciBtb3JlIGRldGFpbGVkIHZhbGlkYXRpb24gbWVzc2FnZVxuICAgKlxuICAgKiBAcmV0dXJucyBzdHJpbmcgdmFsaWRhdGlvbiBtZXNzYWdlXG4gICAqL1xuICBwdWJsaWMgZ2V0VmFsaWRhdG9yRXJyb3JNZXNzYWdlcyh2YWxpZGF0b3JOYW1lOiBzdHJpbmcsIHBhcmFtcz86IG9iamVjdCk6IHN0cmluZyB7XG4gICAgY29uc3QgdmFsaWRhdGlvbk1lc3NhZ2VzID0gdGhpcy5tZXNzYWdlc0NvbmZpZy5tZXNzYWdlcztcbiAgICBjb25zdCB2YWxpZGF0aW9uTWVzc2FnZTogc3RyaW5nID0gdmFsaWRhdGlvbk1lc3NhZ2VzW3ZhbGlkYXRvck5hbWVdO1xuXG4gICAgaWYgKCF2YWxpZGF0aW9uTWVzc2FnZSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdWYWxpZGF0aW9uIG1lc3NhZ2UgZm9yIHZhbGlkYXRvcjogJyArIHZhbGlkYXRvck5hbWVcbiAgICAgICAgKyAnIGNhbm5vdCBiZSBmb3VuZCwgcGxlYXNlIGNoZWNrIHZhbGlkYXRpb24gbWVzc2FnZSBrZXkgZm9yIHZhbGlkYXRvciBpdCBpcyBjYXNlIHNlbnNpdGl2ZS4nKTtcbiAgICB9XG5cbiAgICBpZiAocGFyYW1zKSB7XG4gICAgICByZXR1cm4gdGhpcy5leHBhbmRQYXJhbWV0ZXJpemVkVGVtcGxhdGVNZXNzYWdlKHZhbGlkYXRpb25NZXNzYWdlLCBwYXJhbXMpO1xuICAgIH1cblxuICAgIHJldHVybiB2YWxpZGF0aW9uTWVzc2FnZTtcbiAgfVxuXG4gIHB1YmxpYyBleHBhbmRQYXJhbWV0ZXJpemVkVGVtcGxhdGVNZXNzYWdlKG1zZzogc3RyaW5nLCBwYXJhbXM6IG9iamVjdCk6IHN0cmluZyB7XG4gICAgd2hpbGUgKHRoaXMucGFyYW1zUmVnRXhwLnRlc3QobXNnKSkge1xuICAgICAgY29uc3QgZm91bmRQYXJhbXMgPSB0aGlzLnBhcmFtc1JlZ0V4cC5leGVjKG1zZyk7XG4gICAgICBmb3VuZFBhcmFtcy5mb3JFYWNoKHZhbHVlID0+IHtcbiAgICAgICAgY29uc3QgcGFyYW1QbGFjZWhvbGRlciA9IHZhbHVlO1xuICAgICAgICB2YWx1ZSA9IHZhbHVlLnJlcGxhY2UoJyNbJywgJycpLnJlcGxhY2UoJ10nLCAnJyk7XG4gICAgICAgIG1zZyA9IG1zZy5yZXBsYWNlKHBhcmFtUGxhY2Vob2xkZXIsIHRoaXMuZ2V0UGFyYW1ldGVyKHBhcmFtcywgdmFsdWUpKTtcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIHJldHVybiBtc2c7XG4gIH1cblxuICAvKipcbiAgICogQSB1dGlsaXRhcmlhbiBtZXRob2QgdG8gZ2V0IGEgcHJvcGVydHkgZnJvbSBhbiBvYmplY3QuXG4gICAqIGlmIHRoZXJlIGlzIG5vIHByb3BlcnR5LCBhbiBlbXB0eSBzdHJpbmcgaXMgcmV0dXJuZWQuXG4gICAqXG4gICAqIEBwYXJhbSBvYmogZnJvbSB3aGljaCB0aGUgcHJvcGVydHkgbXVzdCBiZSBvYnRhaW5lZFxuICAgKiBAcGFyYW0gcHJvcCBwcm9wZXJ0eSBuYW1lXG4gICAqXG4gICAqIEByZXR1cm4gcHJvcGVydHkgdmFsdWUgb3IgZW1wdHkgc3RyaW5nXG4gICAqL1xuICBwcml2YXRlIGdldFBhcmFtZXRlcihvYmo6IG9iamVjdCwgcHJvcDogc3RyaW5nKTogc3RyaW5nIHtcbiAgICByZXR1cm4gcHJvcC5zcGxpdCgnLicpXG4gICAgICAucmVkdWNlKChtLCBpKSA9PiB7XG4gICAgICAgIHJldHVybiBtICYmIHR5cGVvZiBtID09PSAnb2JqZWN0JyA/IG1baV0gOiAnJztcbiAgICAgIH0sIG9iaik7XG4gIH1cblxuICAvLyBwdWJsaWMgc3RhdGljIGFwcGx5U2VydmVyRXJyb3IoY29udHJvbDogQWJzdHJhY3RDb250cm9sIHwgbnVsbCwgc2VydmVyRXJyb3I6IFNlcnZlckVycm9yKTogdm9pZCB7XG4gIC8vICAgaWYgKCFjb250cm9sKSB7XG4gIC8vICAgICByZXR1cm47XG4gIC8vICAgfVxuICAvLyAgIGlmIChjb250cm9sLmdldEVycm9yKE5neFZhbGlkYXRpb25NZXNzYWdlc1NlcnZpY2UuU0VSVkVSX0VSUk9SUykpIHtcbiAgLy8gICAgIGNvbnN0IGV4aXN0aW5nRXJyb3JNZXNzYWdlcyA9IGNvbnRyb2wuZ2V0RXJyb3IoTmd4VmFsaWRhdGlvbk1lc3NhZ2VzU2VydmljZS5TRVJWRVJfRVJST1JTKTtcbiAgLy8gICAgIGlmIChfLmlzQXJyYXkoZXhpc3RpbmdFcnJvck1lc3NhZ2VzLmN1c3RvbU1lc3NhZ2VzKSAmJlxuICAvLyAgICAgICBleGlzdGluZ0Vycm9yTWVzc2FnZXMuY3VzdG9tTWVzc2FnZXMuaW5kZXhPZihzZXJ2ZXJFcnJvci5tZXNzYWdlKSA9PT0gLTEpIHtcbiAgLy8gICAgICAgZXhpc3RpbmdFcnJvck1lc3NhZ2VzLmN1c3RvbU1lc3NhZ2VzLnB1c2goc2VydmVyRXJyb3IubWVzc2FnZSk7XG4gIC8vICAgICB9XG4gIC8vICAgfSBlbHNlIHtcbiAgLy8gICAgIGNvbnRyb2wuc2V0RXJyb3JzKHtbTmd4VmFsaWRhdGlvbk1lc3NhZ2VzU2VydmljZS5TRVJWRVJfRVJST1JTXToge2N1c3RvbU1lc3NhZ2VzOiBbc2VydmVyRXJyb3IubWVzc2FnZV19fSk7XG4gIC8vICAgfVxuICAvLyAgIGNvbnRyb2wubWFya0FzVG91Y2hlZCgpO1xuICAvLyB9XG5cbn1cbiJdfQ==
1
+ import { Inject, Injectable } from '@angular/core';
2
+ import { NGX_VALIDATION_MESSAGES_CONFIG } from '../interface/ngx-validation-messages.config';
3
+ /**
4
+ * Service allows getting validation messages from client's settings.
5
+ * Injecting {@link NgxValidationMessagesConfig} to get client's configuration with validation messages.
6
+ */
7
+ export class NgxValidationMessagesService {
8
+ constructor(messagesConfig) {
9
+ this.messagesConfig = messagesConfig;
10
+ /**
11
+ * Regular expression to find params placeholder '#[paramName]'.
12
+ */
13
+ this.paramsRegExp = new RegExp(/#[[a-zA-Z_\\-]*]/);
14
+ }
15
+ /**
16
+ * Get validation message for specified validator.
17
+ *
18
+ * @param validatorName for which to get message
19
+ * @param params passed from validator for more detailed validation message
20
+ *
21
+ * @returns string validation message
22
+ */
23
+ getValidatorErrorMessages(validatorName, params) {
24
+ const validationMessages = this.messagesConfig.messages;
25
+ const validationMessage = validationMessages[validatorName];
26
+ if (!validationMessage) {
27
+ throw new Error('Validation message for validator: ' + validatorName
28
+ + ' cannot be found, please check validation message key for validator it is case sensitive.');
29
+ }
30
+ if (params) {
31
+ return this.expandParameterizedTemplateMessage(validationMessage, params);
32
+ }
33
+ return validationMessage;
34
+ }
35
+ expandParameterizedTemplateMessage(msg, params) {
36
+ while (this.paramsRegExp.test(msg)) {
37
+ const foundParams = this.paramsRegExp.exec(msg);
38
+ foundParams.forEach(value => {
39
+ const paramPlaceholder = value;
40
+ value = value.replace('#[', '').replace(']', '');
41
+ msg = msg.replace(paramPlaceholder, this.getParameter(params, value));
42
+ });
43
+ }
44
+ return msg;
45
+ }
46
+ /**
47
+ * A utilitarian method to get a property from an object.
48
+ * if there is no property, an empty string is returned.
49
+ *
50
+ * @param obj from which the property must be obtained
51
+ * @param prop property name
52
+ *
53
+ * @return property value or empty string
54
+ */
55
+ getParameter(obj, prop) {
56
+ return prop.split('.')
57
+ .reduce((m, i) => {
58
+ return m && typeof m === 'object' ? m[i] : '';
59
+ }, obj);
60
+ }
61
+ }
62
+ NgxValidationMessagesService.SERVER_ERRORS = 'serverErrors';
63
+ NgxValidationMessagesService.decorators = [
64
+ { type: Injectable }
65
+ ];
66
+ NgxValidationMessagesService.ctorParameters = () => [
67
+ { type: undefined, decorators: [{ type: Inject, args: [NGX_VALIDATION_MESSAGES_CONFIG,] }] }
68
+ ];
69
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmd4LXZhbGlkYXRpb24tbWVzc2FnZXMuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC12YWxpZGF0aW9uLW1lc3NhZ2VzL3NyYy9saWIvc2VydmljZS9uZ3gtdmFsaWRhdGlvbi1tZXNzYWdlcy5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25ELE9BQU8sRUFBRSw4QkFBOEIsRUFBK0IsTUFBTSw2Q0FBNkMsQ0FBQztBQUUxSDs7O0dBR0c7QUFFSCxNQUFNLE9BQU8sNEJBQTRCO0lBU3ZDLFlBQTRELGNBQTJDO1FBQTNDLG1CQUFjLEdBQWQsY0FBYyxDQUE2QjtRQUx2Rzs7V0FFRztRQUNLLGlCQUFZLEdBQUcsSUFBSSxNQUFNLENBQUMsa0JBQWtCLENBQUMsQ0FBQztJQUd0RCxDQUFDO0lBRUQ7Ozs7Ozs7T0FPRztJQUNJLHlCQUF5QixDQUFDLGFBQXFCLEVBQUUsTUFBZTtRQUNyRSxNQUFNLGtCQUFrQixHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsUUFBUSxDQUFDO1FBQ3hELE1BQU0saUJBQWlCLEdBQVcsa0JBQWtCLENBQUMsYUFBYSxDQUFDLENBQUM7UUFFcEUsSUFBSSxDQUFDLGlCQUFpQixFQUFFO1lBQ3RCLE1BQU0sSUFBSSxLQUFLLENBQUMsb0NBQW9DLEdBQUcsYUFBYTtrQkFDaEUsMkZBQTJGLENBQUMsQ0FBQztTQUNsRztRQUVELElBQUksTUFBTSxFQUFFO1lBQ1YsT0FBTyxJQUFJLENBQUMsa0NBQWtDLENBQUMsaUJBQWlCLEVBQUUsTUFBTSxDQUFDLENBQUM7U0FDM0U7UUFFRCxPQUFPLGlCQUFpQixDQUFDO0lBQzNCLENBQUM7SUFFTSxrQ0FBa0MsQ0FBQyxHQUFXLEVBQUUsTUFBYztRQUNuRSxPQUFPLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFO1lBQ2xDLE1BQU0sV0FBVyxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQ2hELFdBQVcsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLEVBQUU7Z0JBQzFCLE1BQU0sZ0JBQWdCLEdBQUcsS0FBSyxDQUFDO2dCQUMvQixLQUFLLEdBQUcsS0FBSyxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLENBQUMsT0FBTyxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsQ0FBQztnQkFDakQsR0FBRyxHQUFHLEdBQUcsQ0FBQyxPQUFPLENBQUMsZ0JBQWdCLEVBQUUsSUFBSSxDQUFDLFlBQVksQ0FBQyxNQUFNLEVBQUUsS0FBSyxDQUFDLENBQUMsQ0FBQztZQUN4RSxDQUFDLENBQUMsQ0FBQztTQUNKO1FBRUQsT0FBTyxHQUFHLENBQUM7SUFDYixDQUFDO0lBRUQ7Ozs7Ozs7O09BUUc7SUFDSyxZQUFZLENBQUMsR0FBVyxFQUFFLElBQVk7UUFDNUMsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQzthQUNuQixNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUU7WUFDZixPQUFPLENBQUMsSUFBSSxPQUFPLENBQUMsS0FBSyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO1FBQ2hELENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQztJQUNaLENBQUM7O0FBN0RhLDBDQUFhLEdBQUcsY0FBYyxDQUFDOztZQUg5QyxVQUFVOzs7NENBVUksTUFBTSxTQUFDLDhCQUE4QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdCwgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBOR1hfVkFMSURBVElPTl9NRVNTQUdFU19DT05GSUcsIE5neFZhbGlkYXRpb25NZXNzYWdlc0NvbmZpZyB9IGZyb20gJy4uL2ludGVyZmFjZS9uZ3gtdmFsaWRhdGlvbi1tZXNzYWdlcy5jb25maWcnO1xyXG5cclxuLyoqXHJcbiAqIFNlcnZpY2UgYWxsb3dzIGdldHRpbmcgdmFsaWRhdGlvbiBtZXNzYWdlcyBmcm9tIGNsaWVudCdzIHNldHRpbmdzLlxyXG4gKiBJbmplY3Rpbmcge0BsaW5rIE5neFZhbGlkYXRpb25NZXNzYWdlc0NvbmZpZ30gdG8gZ2V0IGNsaWVudCdzIGNvbmZpZ3VyYXRpb24gd2l0aCB2YWxpZGF0aW9uIG1lc3NhZ2VzLlxyXG4gKi9cclxuQEluamVjdGFibGUoKVxyXG5leHBvcnQgY2xhc3MgTmd4VmFsaWRhdGlvbk1lc3NhZ2VzU2VydmljZSB7XHJcblxyXG4gIHB1YmxpYyBzdGF0aWMgU0VSVkVSX0VSUk9SUyA9ICdzZXJ2ZXJFcnJvcnMnO1xyXG5cclxuICAvKipcclxuICAgKiBSZWd1bGFyIGV4cHJlc3Npb24gdG8gZmluZCBwYXJhbXMgcGxhY2Vob2xkZXIgJyNbcGFyYW1OYW1lXScuXHJcbiAgICovXHJcbiAgcHJpdmF0ZSBwYXJhbXNSZWdFeHAgPSBuZXcgUmVnRXhwKC8jW1thLXpBLVpfXFxcXC1dKl0vKTtcclxuXHJcbiAgY29uc3RydWN0b3IoQEluamVjdChOR1hfVkFMSURBVElPTl9NRVNTQUdFU19DT05GSUcpIHByaXZhdGUgbWVzc2FnZXNDb25maWc6IE5neFZhbGlkYXRpb25NZXNzYWdlc0NvbmZpZykge1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogR2V0IHZhbGlkYXRpb24gbWVzc2FnZSBmb3Igc3BlY2lmaWVkIHZhbGlkYXRvci5cclxuICAgKlxyXG4gICAqIEBwYXJhbSB2YWxpZGF0b3JOYW1lIGZvciB3aGljaCB0byBnZXQgbWVzc2FnZVxyXG4gICAqIEBwYXJhbSBwYXJhbXMgcGFzc2VkIGZyb20gdmFsaWRhdG9yIGZvciBtb3JlIGRldGFpbGVkIHZhbGlkYXRpb24gbWVzc2FnZVxyXG4gICAqXHJcbiAgICogQHJldHVybnMgc3RyaW5nIHZhbGlkYXRpb24gbWVzc2FnZVxyXG4gICAqL1xyXG4gIHB1YmxpYyBnZXRWYWxpZGF0b3JFcnJvck1lc3NhZ2VzKHZhbGlkYXRvck5hbWU6IHN0cmluZywgcGFyYW1zPzogb2JqZWN0KTogc3RyaW5nIHtcclxuICAgIGNvbnN0IHZhbGlkYXRpb25NZXNzYWdlcyA9IHRoaXMubWVzc2FnZXNDb25maWcubWVzc2FnZXM7XHJcbiAgICBjb25zdCB2YWxpZGF0aW9uTWVzc2FnZTogc3RyaW5nID0gdmFsaWRhdGlvbk1lc3NhZ2VzW3ZhbGlkYXRvck5hbWVdO1xyXG5cclxuICAgIGlmICghdmFsaWRhdGlvbk1lc3NhZ2UpIHtcclxuICAgICAgdGhyb3cgbmV3IEVycm9yKCdWYWxpZGF0aW9uIG1lc3NhZ2UgZm9yIHZhbGlkYXRvcjogJyArIHZhbGlkYXRvck5hbWVcclxuICAgICAgICArICcgY2Fubm90IGJlIGZvdW5kLCBwbGVhc2UgY2hlY2sgdmFsaWRhdGlvbiBtZXNzYWdlIGtleSBmb3IgdmFsaWRhdG9yIGl0IGlzIGNhc2Ugc2Vuc2l0aXZlLicpO1xyXG4gICAgfVxyXG5cclxuICAgIGlmIChwYXJhbXMpIHtcclxuICAgICAgcmV0dXJuIHRoaXMuZXhwYW5kUGFyYW1ldGVyaXplZFRlbXBsYXRlTWVzc2FnZSh2YWxpZGF0aW9uTWVzc2FnZSwgcGFyYW1zKTtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gdmFsaWRhdGlvbk1lc3NhZ2U7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZXhwYW5kUGFyYW1ldGVyaXplZFRlbXBsYXRlTWVzc2FnZShtc2c6IHN0cmluZywgcGFyYW1zOiBvYmplY3QpOiBzdHJpbmcge1xyXG4gICAgd2hpbGUgKHRoaXMucGFyYW1zUmVnRXhwLnRlc3QobXNnKSkge1xyXG4gICAgICBjb25zdCBmb3VuZFBhcmFtcyA9IHRoaXMucGFyYW1zUmVnRXhwLmV4ZWMobXNnKTtcclxuICAgICAgZm91bmRQYXJhbXMuZm9yRWFjaCh2YWx1ZSA9PiB7XHJcbiAgICAgICAgY29uc3QgcGFyYW1QbGFjZWhvbGRlciA9IHZhbHVlO1xyXG4gICAgICAgIHZhbHVlID0gdmFsdWUucmVwbGFjZSgnI1snLCAnJykucmVwbGFjZSgnXScsICcnKTtcclxuICAgICAgICBtc2cgPSBtc2cucmVwbGFjZShwYXJhbVBsYWNlaG9sZGVyLCB0aGlzLmdldFBhcmFtZXRlcihwYXJhbXMsIHZhbHVlKSk7XHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBtc2c7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBBIHV0aWxpdGFyaWFuIG1ldGhvZCB0byBnZXQgYSBwcm9wZXJ0eSBmcm9tIGFuIG9iamVjdC5cclxuICAgKiBpZiB0aGVyZSBpcyBubyBwcm9wZXJ0eSwgYW4gZW1wdHkgc3RyaW5nIGlzIHJldHVybmVkLlxyXG4gICAqXHJcbiAgICogQHBhcmFtIG9iaiBmcm9tIHdoaWNoIHRoZSBwcm9wZXJ0eSBtdXN0IGJlIG9idGFpbmVkXHJcbiAgICogQHBhcmFtIHByb3AgcHJvcGVydHkgbmFtZVxyXG4gICAqXHJcbiAgICogQHJldHVybiBwcm9wZXJ0eSB2YWx1ZSBvciBlbXB0eSBzdHJpbmdcclxuICAgKi9cclxuICBwcml2YXRlIGdldFBhcmFtZXRlcihvYmo6IG9iamVjdCwgcHJvcDogc3RyaW5nKTogc3RyaW5nIHtcclxuICAgIHJldHVybiBwcm9wLnNwbGl0KCcuJylcclxuICAgICAgLnJlZHVjZSgobSwgaSkgPT4ge1xyXG4gICAgICAgIHJldHVybiBtICYmIHR5cGVvZiBtID09PSAnb2JqZWN0JyA/IG1baV0gOiAnJztcclxuICAgICAgfSwgb2JqKTtcclxuICB9XHJcblxyXG4gIC8vIHB1YmxpYyBzdGF0aWMgYXBwbHlTZXJ2ZXJFcnJvcihjb250cm9sOiBBYnN0cmFjdENvbnRyb2wgfCBudWxsLCBzZXJ2ZXJFcnJvcjogU2VydmVyRXJyb3IpOiB2b2lkIHtcclxuICAvLyAgIGlmICghY29udHJvbCkge1xyXG4gIC8vICAgICByZXR1cm47XHJcbiAgLy8gICB9XHJcbiAgLy8gICBpZiAoY29udHJvbC5nZXRFcnJvcihOZ3hWYWxpZGF0aW9uTWVzc2FnZXNTZXJ2aWNlLlNFUlZFUl9FUlJPUlMpKSB7XHJcbiAgLy8gICAgIGNvbnN0IGV4aXN0aW5nRXJyb3JNZXNzYWdlcyA9IGNvbnRyb2wuZ2V0RXJyb3IoTmd4VmFsaWRhdGlvbk1lc3NhZ2VzU2VydmljZS5TRVJWRVJfRVJST1JTKTtcclxuICAvLyAgICAgaWYgKF8uaXNBcnJheShleGlzdGluZ0Vycm9yTWVzc2FnZXMuY3VzdG9tTWVzc2FnZXMpICYmXHJcbiAgLy8gICAgICAgZXhpc3RpbmdFcnJvck1lc3NhZ2VzLmN1c3RvbU1lc3NhZ2VzLmluZGV4T2Yoc2VydmVyRXJyb3IubWVzc2FnZSkgPT09IC0xKSB7XHJcbiAgLy8gICAgICAgZXhpc3RpbmdFcnJvck1lc3NhZ2VzLmN1c3RvbU1lc3NhZ2VzLnB1c2goc2VydmVyRXJyb3IubWVzc2FnZSk7XHJcbiAgLy8gICAgIH1cclxuICAvLyAgIH0gZWxzZSB7XHJcbiAgLy8gICAgIGNvbnRyb2wuc2V0RXJyb3JzKHtbTmd4VmFsaWRhdGlvbk1lc3NhZ2VzU2VydmljZS5TRVJWRVJfRVJST1JTXToge2N1c3RvbU1lc3NhZ2VzOiBbc2VydmVyRXJyb3IubWVzc2FnZV19fSk7XHJcbiAgLy8gICB9XHJcbiAgLy8gICBjb250cm9sLm1hcmtBc1RvdWNoZWQoKTtcclxuICAvLyB9XHJcblxyXG59XHJcbiJdfQ==
@@ -1,5 +1,5 @@
1
- /*
2
- * Public API Surface of ngx-validation-messages
3
- */
4
- export * from './lib/ngx-validation-messages.module';
5
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Byb2plY3RzL25neC12YWxpZGF0aW9uLW1lc3NhZ2VzL3NyYy9wdWJsaWMtYXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBQ0gsY0FBYyxzQ0FBc0MsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBQdWJsaWMgQVBJIFN1cmZhY2Ugb2Ygbmd4LXZhbGlkYXRpb24tbWVzc2FnZXNcbiAqL1xuZXhwb3J0ICogZnJvbSAnLi9saWIvbmd4LXZhbGlkYXRpb24tbWVzc2FnZXMubW9kdWxlJztcbiJdfQ==
1
+ /*
2
+ * Public API Surface of ngx-validation-messages
3
+ */
4
+ export * from './lib/ngx-validation-messages.module';
5
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Byb2plY3RzL25neC12YWxpZGF0aW9uLW1lc3NhZ2VzL3NyYy9wdWJsaWMtYXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBQ0gsY0FBYyxzQ0FBc0MsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qXHJcbiAqIFB1YmxpYyBBUEkgU3VyZmFjZSBvZiBuZ3gtdmFsaWRhdGlvbi1tZXNzYWdlc1xyXG4gKi9cclxuZXhwb3J0ICogZnJvbSAnLi9saWIvbmd4LXZhbGlkYXRpb24tbWVzc2FnZXMubW9kdWxlJztcclxuIl19