@anglr/common 23.0.0 → 24.0.0-beta.20260126065643

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.
@@ -84,7 +84,7 @@ export class HasErrorDirective {
84
84
  * Called when view was initialized
85
85
  */
86
86
  ngAfterViewInit() {
87
- this.renderer = this.rendererFactory.create(this.control, this.containerView, this.injector, this.isSubmittedOrDirty);
87
+ this.renderer = this.rendererFactory.create(this.containerView, this.injector, this.isSubmittedOrDirty);
88
88
  this.updateStatus();
89
89
  }
90
90
  //######################### public methods - implementation of OnDestroy #########################
@@ -112,7 +112,7 @@ export class HasErrorDirective {
112
112
  opts.component = this.errorsComponent;
113
113
  }
114
114
  this.previousDirty = this.control.dirty;
115
- this.hasErrors = this.renderer.update(opts, this.errorMessages);
115
+ this.hasErrors = this.renderer.update(opts, this.control.errors, this.errorMessages);
116
116
  this.toggleGroupHasError();
117
117
  }
118
118
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"hasError.directive.js","sourceRoot":"","sources":["../../../../../forms/src/directives/hasError/hasError.directive.ts"],"names":[],"mappings":"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","sourcesContent":["import {Directive, Optional, SkipSelf, OnInit, OnDestroy, Inject, Input, Injector, ViewContainerRef, AfterViewInit, Type, TemplateRef} from '@angular/core';\nimport {FormControlDirective, FormControlName, FormControl, NgModel, PristineChangeEvent} from '@angular/forms';\nimport {StringLocalization, STRING_LOCALIZATION} from '@anglr/common';\nimport {generateId, BindThis, StringDictionary} from '@jscrpt/common';\nimport {Subscription, filter} from 'rxjs';\n\nimport {ValidationErrorRendererFactory} from '../../services/validationErrorRenderer/validationErrorRenderer.service';\nimport {ValidationErrorRenderer, ValidationErrorsComponent, ValidationErrorsRendererOptions, ValidationErrorsTemplateContext} from '../../services/validationErrorRenderer/validationErrorRenderer.interface';\nimport {SubmittedService} from '../../services/submitted/submitted.service';\nimport {GroupHasErrorDirective} from '../groupHasError/groupHasError.directive';\nimport {ValidationErrorsContainerView} from '../../misc/validationErrorsContainerView';\n\n//TODO: add support for setting renderer factory options using input\n\n/**\n * Directive that is attached to control element and handles css classes that are added to this element\n */\n@Directive(\n{\n selector: '[hasError][formControlName],[hasError][formControl],[hasError][ngModel]',\n})\nexport class HasErrorDirective implements OnInit, AfterViewInit, OnDestroy\n{\n //######################### protected fields #########################\n\n /**\n * Subscriptions that are destroyed with destruction of this directive\n */\n protected subscriptions: Subscription = new Subscription();\n\n /**\n * Unique generated id of control\n */\n protected id: string = generateId(10);\n\n /**\n * Last value of control pristine attribute\n */\n protected previousDirty: boolean = false;\n\n /**\n * Indication whether currently are any errors rendered\n */\n protected hasErrors: boolean = false;\n\n //######################### protected properties #########################\n\n /**\n * Gets control which was assigned to this element\n */\n protected get control(): FormControl\n {\n return this.formControl?.control || this.formControlName?.control || this.ngModel?.control;\n }\n\n //######################### public properties #########################\n\n /**\n * Instance of validation error renderer\n */\n public renderer: ValidationErrorRenderer;\n\n //######################### public propeties - inputs #########################\n\n /**\n * Customized error messages\n */\n @Input()\n public errorMessages: StringDictionary;\n\n /**\n * Custom component used for rendering validation errors\n */\n @Input()\n public errorsComponent?: Type<ValidationErrorsComponent>;\n\n /**\n * Custom template used for rendering validation errors\n */\n @Input()\n public errorsTemplate?: TemplateRef<ValidationErrorsTemplateContext>;\n\n //######################### constructor #########################\n constructor(protected rendererFactory: ValidationErrorRendererFactory,\n protected viewContainer: ViewContainerRef,\n @Optional() @SkipSelf() protected groupHasError: GroupHasErrorDirective,\n @Optional() protected formControl: FormControlDirective,\n @Optional() protected formControlName: FormControlName,\n @Optional() protected ngModel: NgModel,\n @Optional() protected submittedSvc: SubmittedService,\n @Optional() protected containerView: ValidationErrorsContainerView,\n @Inject(STRING_LOCALIZATION) protected stringLocalization: StringLocalization,\n protected injector: Injector,)\n {\n }\n\n //######################### public methods - implementation of OnInit #########################\n \n /**\n * Initialize component\n */\n public ngOnInit(): void\n {\n this.containerView ??= new ValidationErrorsContainerView();\n this.containerView.viewContainer ??= this.viewContainer;\n\n this.subscriptions.add(this.stringLocalization.textsChange.subscribe(() => this.updateStatus()));\n this.subscriptions.add(this.control.statusChanges.subscribe(() => this.updateStatus()));\n this.subscriptions.add(this.control\n .events\n .pipe(filter(itm => itm instanceof PristineChangeEvent))\n .subscribe(event =>\n {\n const pristineEvent = event as PristineChangeEvent;\n\n //only if dirty(pristine) is different\n if(pristineEvent.pristine == this.previousDirty)\n {\n this.updateStatus();\n }\n }));\n\n if(this.submittedSvc)\n {\n this.subscriptions.add(this.submittedSvc.submittedChange.subscribe(() => this.isSubmittedOrDirty(() => this.updateStatus())));\n }\n }\n\n //######################### public methods - implementation of AfterViewInit #########################\n \n /**\n * Called when view was initialized\n */\n public ngAfterViewInit(): void\n {\n this.renderer = this.rendererFactory.create(this.control,\n this.containerView,\n this.injector,\n this.isSubmittedOrDirty);\n\n this.updateStatus();\n }\n\n //######################### public methods - implementation of OnDestroy #########################\n \n /**\n * Called when component is destroyed\n */\n public ngOnDestroy(): void\n {\n this.subscriptions.unsubscribe();\n\n this.groupHasError?.unregisterControl(this.id);\n this.renderer?.destroy();\n }\n\n //######################### protected methods #########################\n\n /**\n * Updates status of control and css classes\n */\n protected updateStatus(): void\n {\n if(!this.renderer)\n {\n return;\n }\n\n const opts: ValidationErrorsRendererOptions = {};\n\n if(this.errorsTemplate)\n {\n opts.template = this.errorsTemplate;\n }\n else if(this.errorsComponent)\n {\n opts.component = this.errorsComponent;\n }\n\n this.previousDirty = this.control.dirty;\n this.hasErrors = this.renderer.update(opts, this.errorMessages);\n this.toggleGroupHasError();\n }\n\n /**\n * Toggles registration of control in parent group\n */\n protected toggleGroupHasError(): void\n {\n if(this.groupHasError)\n {\n this.isSubmittedOrDirty(() => this.groupHasError.registerControl(this.id),\n () => this.groupHasError.unregisterControl(this.id),\n this.hasErrors);\n }\n }\n\n /**\n * Calls action when form is submitted or control is dirty\n * @param action - Action to be called when form is submitted or control dirty\n * @param falseAction - Action to be called when form is not submitted and control is not dirty\n * @param additionalCondition - Additional condition to be evaluated\n */\n @BindThis\n protected isSubmittedOrDirty(action: () => void, falseAction: () => void = () => {}, additionalCondition: boolean = true): void\n {\n //submitted form or dirty control\n if((this.submittedSvc?.submitted ||\n this.control?.dirty) &&\n additionalCondition)\n {\n action();\n }\n else\n {\n falseAction();\n }\n }\n}"]}
1
+ {"version":3,"file":"hasError.directive.js","sourceRoot":"","sources":["../../../../../forms/src/directives/hasError/hasError.directive.ts"],"names":[],"mappings":"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","sourcesContent":["import {Directive, Optional, SkipSelf, OnInit, OnDestroy, Inject, Input, Injector, ViewContainerRef, AfterViewInit, Type, TemplateRef} from '@angular/core';\nimport {FormControlDirective, FormControlName, FormControl, NgModel, PristineChangeEvent} from '@angular/forms';\nimport {StringLocalization, STRING_LOCALIZATION} from '@anglr/common';\nimport {generateId, BindThis, StringDictionary} from '@jscrpt/common';\nimport {Subscription, filter} from 'rxjs';\n\nimport {ValidationErrorRendererFactory} from '../../services/validationErrorRenderer/validationErrorRenderer.service';\nimport {ValidationErrorRenderer, ValidationErrorsComponent, ValidationErrorsRendererOptions, ValidationErrorsTemplateContext} from '../../services/validationErrorRenderer/validationErrorRenderer.interface';\nimport {SubmittedService} from '../../services/submitted/submitted.service';\nimport {GroupHasErrorDirective} from '../groupHasError/groupHasError.directive';\nimport {ValidationErrorsContainerView} from '../../misc/validationErrorsContainerView';\n\n//TODO: add support for setting renderer factory options using input\n\n/**\n * Directive that is attached to control element and handles css classes that are added to this element\n */\n@Directive(\n{\n selector: '[hasError][formControlName],[hasError][formControl],[hasError][ngModel]',\n})\nexport class HasErrorDirective implements OnInit, AfterViewInit, OnDestroy\n{\n //######################### protected fields #########################\n\n /**\n * Subscriptions that are destroyed with destruction of this directive\n */\n protected subscriptions: Subscription = new Subscription();\n\n /**\n * Unique generated id of control\n */\n protected id: string = generateId(10);\n\n /**\n * Last value of control pristine attribute\n */\n protected previousDirty: boolean = false;\n\n /**\n * Indication whether currently are any errors rendered\n */\n protected hasErrors: boolean = false;\n\n //######################### protected properties #########################\n\n /**\n * Gets control which was assigned to this element\n */\n protected get control(): FormControl\n {\n return this.formControl?.control || this.formControlName?.control || this.ngModel?.control;\n }\n\n //######################### public properties #########################\n\n /**\n * Instance of validation error renderer\n */\n public renderer: ValidationErrorRenderer;\n\n //######################### public propeties - inputs #########################\n\n /**\n * Customized error messages\n */\n @Input()\n public errorMessages: StringDictionary;\n\n /**\n * Custom component used for rendering validation errors\n */\n @Input()\n public errorsComponent?: Type<ValidationErrorsComponent>;\n\n /**\n * Custom template used for rendering validation errors\n */\n @Input()\n public errorsTemplate?: TemplateRef<ValidationErrorsTemplateContext>;\n\n //######################### constructor #########################\n constructor(protected rendererFactory: ValidationErrorRendererFactory,\n protected viewContainer: ViewContainerRef,\n @Optional() @SkipSelf() protected groupHasError: GroupHasErrorDirective,\n @Optional() protected formControl: FormControlDirective,\n @Optional() protected formControlName: FormControlName,\n @Optional() protected ngModel: NgModel,\n @Optional() protected submittedSvc: SubmittedService,\n @Optional() protected containerView: ValidationErrorsContainerView,\n @Inject(STRING_LOCALIZATION) protected stringLocalization: StringLocalization,\n protected injector: Injector,)\n {\n }\n\n //######################### public methods - implementation of OnInit #########################\n\n /**\n * Initialize component\n */\n public ngOnInit(): void\n {\n this.containerView ??= new ValidationErrorsContainerView();\n this.containerView.viewContainer ??= this.viewContainer;\n\n this.subscriptions.add(this.stringLocalization.textsChange.subscribe(() => this.updateStatus()));\n this.subscriptions.add(this.control.statusChanges.subscribe(() => this.updateStatus()));\n this.subscriptions.add(this.control\n .events\n .pipe(filter(itm => itm instanceof PristineChangeEvent))\n .subscribe(event =>\n {\n const pristineEvent = event as PristineChangeEvent;\n\n //only if dirty(pristine) is different\n if(pristineEvent.pristine == this.previousDirty)\n {\n this.updateStatus();\n }\n }));\n\n if(this.submittedSvc)\n {\n this.subscriptions.add(this.submittedSvc.submittedChange.subscribe(() => this.isSubmittedOrDirty(() => this.updateStatus())));\n }\n }\n\n //######################### public methods - implementation of AfterViewInit #########################\n\n /**\n * Called when view was initialized\n */\n public ngAfterViewInit(): void\n {\n this.renderer = this.rendererFactory.create(this.containerView,\n this.injector,\n this.isSubmittedOrDirty);\n\n this.updateStatus();\n }\n\n //######################### public methods - implementation of OnDestroy #########################\n\n /**\n * Called when component is destroyed\n */\n public ngOnDestroy(): void\n {\n this.subscriptions.unsubscribe();\n\n this.groupHasError?.unregisterControl(this.id);\n this.renderer?.destroy();\n }\n\n //######################### protected methods #########################\n\n /**\n * Updates status of control and css classes\n */\n protected updateStatus(): void\n {\n if(!this.renderer)\n {\n return;\n }\n\n const opts: ValidationErrorsRendererOptions = {};\n\n if(this.errorsTemplate)\n {\n opts.template = this.errorsTemplate;\n }\n else if(this.errorsComponent)\n {\n opts.component = this.errorsComponent;\n }\n\n this.previousDirty = this.control.dirty;\n this.hasErrors = this.renderer.update(opts, this.control.errors, this.errorMessages);\n this.toggleGroupHasError();\n }\n\n /**\n * Toggles registration of control in parent group\n */\n protected toggleGroupHasError(): void\n {\n if(this.groupHasError)\n {\n this.isSubmittedOrDirty(() => this.groupHasError.registerControl(this.id),\n () => this.groupHasError.unregisterControl(this.id),\n this.hasErrors);\n }\n }\n\n /**\n * Calls action when form is submitted or control is dirty\n * @param action - Action to be called when form is submitted or control dirty\n * @param falseAction - Action to be called when form is not submitted and control is not dirty\n * @param additionalCondition - Additional condition to be evaluated\n */\n @BindThis\n protected isSubmittedOrDirty(action: () => void, falseAction: () => void = () => {}, additionalCondition: boolean = true): void\n {\n //submitted form or dirty control\n if((this.submittedSvc?.submitted ||\n this.control?.dirty) &&\n additionalCondition)\n {\n action();\n }\n else\n {\n falseAction();\n }\n }\n}"]}
@@ -14,7 +14,7 @@ const defaultErrorMessages = {
14
14
  minValue: 'Value is too small.',
15
15
  maxValue: 'Value is too big.',
16
16
  minlength: 'Value is short.',
17
- maxlength: 'Value is too long.'
17
+ maxlength: 'Value is too long.',
18
18
  };
19
19
  /**
20
20
  * Service used for extracting error messages from form control
@@ -29,24 +29,24 @@ export class ErrorMessagesExtractor {
29
29
  //######################### public methods #########################
30
30
  /**
31
31
  * Gets validation errors result for provided control, or null of no errors are present
32
- * @param control - Form control instance that should be inspected for errors
32
+ * @param errors - Dictionary containing validation errors
33
33
  * @param messages - Object containing error messages that should patch existing error messages
34
34
  */
35
- getErrors(control, messages) {
35
+ getErrors(errors, messages) {
36
36
  const errorMessages = extend(true, {}, this._errorMessages, messages);
37
37
  //no control or no errors
38
- if (!control || !control.errors) {
38
+ if (!errors) {
39
39
  return null;
40
40
  }
41
41
  const result = {
42
- errors: Object.keys(control.errors).filter(itm => this._ignoredValidationErrors.indexOf(itm) < 0),
42
+ errors: Object.keys(errors).filter(itm => this._ignoredValidationErrors.indexOf(itm) < 0),
43
43
  errorMessages: []
44
44
  };
45
45
  result.errors.forEach(error => {
46
- const errorData = control.errors[error];
46
+ const errorData = errors[error];
47
47
  //error message is present for error
48
48
  if (errorMessages[error]) {
49
- result.errorMessages.push(this._stringLocalization.get(errorMessages[error], control.errors));
49
+ result.errorMessages.push(this._stringLocalization.get(errorMessages[error], errors));
50
50
  }
51
51
  //display error data if it is string and there is missing translation
52
52
  else if (isString(errorData)) {
@@ -56,7 +56,7 @@ export class ErrorMessagesExtractor {
56
56
  else if (Array.isArray(errorData)) {
57
57
  errorData.forEach(errorItm => {
58
58
  if (isString(errorItm)) {
59
- result.errorMessages.push(this._stringLocalization.get(errorItm, control.errors));
59
+ result.errorMessages.push(this._stringLocalization.get(errorItm, errors));
60
60
  }
61
61
  });
62
62
  }
@@ -1 +1 @@
1
- {"version":3,"file":"errorMessagesExtractor.service.js","sourceRoot":"","sources":["../../../../../forms/src/services/errorMessagesExtractor/errorMessagesExtractor.service.ts"],"names":[],"mappings":"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","sourcesContent":["import {Injectable, Inject, Optional} from '@angular/core';\nimport {FormControl} from '@angular/forms';\nimport {StringLocalization, STRING_LOCALIZATION} from '@anglr/common';\nimport {StringDictionary, isString} from '@jscrpt/common';\nimport {extend} from '@jscrpt/common/extend';\n\nimport {IGNORED_VALIDATION_ERRORS, VALIDATION_ERROR_MESSAGES} from '../../misc/tokens';\nimport {ValidationErrorsResult} from './errorMessagesExtractor.interface';\n\n/**\n * Default error messages displayed\n */\nconst defaultErrorMessages: StringDictionary =\n{\n required: 'Field is required.',\n number: 'Value must be number.',\n pattern: 'Value is not valid.',\n minValue: 'Value is too small.',\n maxValue: 'Value is too big.',\n minlength: 'Value is short.',\n maxlength: 'Value is too long.'\n};\n\n/**\n * Service used for extracting error messages from form control\n */\n@Injectable({providedIn: 'root'})\nexport class ErrorMessagesExtractor\n{\n //######################### protected fields #########################\n\n /**\n * Dictionary with error names that have defined message\n */\n protected _errorMessages: StringDictionary;\n\n //######################### constructor #########################\n constructor(@Inject(STRING_LOCALIZATION) protected _stringLocalization: StringLocalization,\n @Inject(IGNORED_VALIDATION_ERRORS) protected _ignoredValidationErrors: string[],\n @Inject(VALIDATION_ERROR_MESSAGES) @Optional() globalErrorMessages?: StringDictionary)\n {\n this._errorMessages = extend(true, {}, defaultErrorMessages, globalErrorMessages);\n }\n\n //######################### public methods #########################\n\n /**\n * Gets validation errors result for provided control, or null of no errors are present\n * @param control - Form control instance that should be inspected for errors\n * @param messages - Object containing error messages that should patch existing error messages\n */\n public getErrors(control: FormControl, messages?: StringDictionary): ValidationErrorsResult\n {\n const errorMessages: StringDictionary = extend(true, {}, this._errorMessages, messages);\n\n //no control or no errors\n if(!control || !control.errors)\n {\n return null;\n }\n\n const result: ValidationErrorsResult =\n {\n errors: Object.keys(control.errors).filter(itm => this._ignoredValidationErrors.indexOf(itm) < 0),\n errorMessages: []\n };\n\n result.errors.forEach(error =>\n {\n const errorData = control.errors[error];\n \n //error message is present for error\n if(errorMessages[error])\n {\n result.errorMessages.push(this._stringLocalization.get(errorMessages[error], control.errors));\n }\n //display error data if it is string and there is missing translation\n else if(isString(errorData))\n {\n result.errorMessages.push(errorData);\n }\n //error data are array of strings, each string is considered error message\n else if(Array.isArray(errorData))\n {\n errorData.forEach(errorItm =>\n {\n if(isString(errorItm))\n {\n result.errorMessages.push(this._stringLocalization.get(errorItm, control.errors));\n }\n });\n }\n });\n\n return result;\n }\n}"]}
1
+ {"version":3,"file":"errorMessagesExtractor.service.js","sourceRoot":"","sources":["../../../../../forms/src/services/errorMessagesExtractor/errorMessagesExtractor.service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAC,MAAM,eAAe,CAAC;AAC3D,OAAO,EAAqB,mBAAmB,EAAC,MAAM,eAAe,CAAC;AACtE,OAAO,EAA+B,QAAQ,EAAC,MAAM,gBAAgB,CAAC;AACtE,OAAO,EAAC,MAAM,EAAC,MAAM,uBAAuB,CAAC;AAE7C,OAAO,EAAC,yBAAyB,EAAE,yBAAyB,EAAC,MAAM,mBAAmB,CAAC;;AAGvF;;GAEG;AACH,MAAM,oBAAoB,GAC1B;IACI,QAAQ,EAAE,oBAAoB;IAC9B,MAAM,EAAE,uBAAuB;IAC/B,OAAO,EAAE,qBAAqB;IAC9B,QAAQ,EAAE,qBAAqB;IAC/B,QAAQ,EAAE,mBAAmB;IAC7B,SAAS,EAAE,iBAAiB;IAC5B,SAAS,EAAE,oBAAoB;CAClC,CAAC;AAEF;;GAEG;AAEH,MAAM,OAAO,sBAAsB;IAS/B,iEAAiE;IACjE,YAAmD,mBAAuC,EACjC,wBAAkC,EAChC,mBAAsC;QAF9C,wBAAmB,GAAnB,mBAAmB,CAAoB;QACjC,6BAAwB,GAAxB,wBAAwB,CAAU;QAGvF,IAAI,CAAC,cAAc,GAAG,MAAM,CAAC,IAAI,EAAE,EAAE,EAAE,oBAAoB,EAAE,mBAAmB,CAAC,CAAC;IACtF,CAAC;IAED,oEAAoE;IAEpE;;;;OAIG;IACI,SAAS,CAAC,MAAkB,EAAE,QAA2B;QAE5D,MAAM,aAAa,GAAqB,MAAM,CAAC,IAAI,EAAE,EAAE,EAAE,IAAI,CAAC,cAAc,EAAE,QAAQ,CAAC,CAAC;QAExF,yBAAyB;QACzB,IAAG,CAAC,MAAM,EACV,CAAC;YACG,OAAO,IAAI,CAAC;QAChB,CAAC;QAED,MAAM,MAAM,GACZ;YACI,MAAM,EAAE,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,wBAAwB,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YACzF,aAAa,EAAE,EAAE;SACpB,CAAC;QAEF,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;YAE1B,MAAM,SAAS,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;YAEhC,oCAAoC;YACpC,IAAG,aAAa,CAAC,KAAK,CAAC,EACvB,CAAC;gBACG,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,aAAa,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC;YAC1F,CAAC;YACD,qEAAqE;iBAChE,IAAG,QAAQ,CAAC,SAAS,CAAC,EAC3B,CAAC;gBACG,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YACzC,CAAC;YACD,0EAA0E;iBACrE,IAAG,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,EAChC,CAAC;gBACG,SAAS,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE;oBAEzB,IAAG,QAAQ,CAAC,QAAQ,CAAC,EACrB,CAAC;wBACG,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC,CAAC;oBAC9E,CAAC;gBACL,CAAC,CAAC,CAAC;YACP,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,OAAO,MAAM,CAAC;IAClB,CAAC;8GApEQ,sBAAsB,kBAUX,mBAAmB,aACnB,yBAAyB,aACzB,yBAAyB;kHAZpC,sBAAsB,cADV,MAAM;;2FAClB,sBAAsB;kBADlC,UAAU;mBAAC,EAAC,UAAU,EAAE,MAAM,EAAC;;0BAWf,MAAM;2BAAC,mBAAmB;;0BAC1B,MAAM;2BAAC,yBAAyB;;0BAChC,MAAM;2BAAC,yBAAyB;;0BAAG,QAAQ","sourcesContent":["import {Injectable, Inject, Optional} from '@angular/core';\nimport {StringLocalization, STRING_LOCALIZATION} from '@anglr/common';\nimport {Dictionary, StringDictionary, isString} from '@jscrpt/common';\nimport {extend} from '@jscrpt/common/extend';\n\nimport {IGNORED_VALIDATION_ERRORS, VALIDATION_ERROR_MESSAGES} from '../../misc/tokens';\nimport {ValidationErrorsResult} from './errorMessagesExtractor.interface';\n\n/**\n * Default error messages displayed\n */\nconst defaultErrorMessages: StringDictionary =\n{\n required: 'Field is required.',\n number: 'Value must be number.',\n pattern: 'Value is not valid.',\n minValue: 'Value is too small.',\n maxValue: 'Value is too big.',\n minlength: 'Value is short.',\n maxlength: 'Value is too long.',\n};\n\n/**\n * Service used for extracting error messages from form control\n */\n@Injectable({providedIn: 'root'})\nexport class ErrorMessagesExtractor\n{\n //######################### protected fields #########################\n\n /**\n * Dictionary with error names that have defined message\n */\n protected _errorMessages: StringDictionary;\n\n //######################### constructor #########################\n constructor(@Inject(STRING_LOCALIZATION) protected _stringLocalization: StringLocalization,\n @Inject(IGNORED_VALIDATION_ERRORS) protected _ignoredValidationErrors: string[],\n @Inject(VALIDATION_ERROR_MESSAGES) @Optional() globalErrorMessages?: StringDictionary)\n {\n this._errorMessages = extend(true, {}, defaultErrorMessages, globalErrorMessages);\n }\n\n //######################### public methods #########################\n\n /**\n * Gets validation errors result for provided control, or null of no errors are present\n * @param errors - Dictionary containing validation errors\n * @param messages - Object containing error messages that should patch existing error messages\n */\n public getErrors(errors: Dictionary, messages?: StringDictionary): ValidationErrorsResult\n {\n const errorMessages: StringDictionary = extend(true, {}, this._errorMessages, messages);\n\n //no control or no errors\n if(!errors)\n {\n return null;\n }\n\n const result: ValidationErrorsResult =\n {\n errors: Object.keys(errors).filter(itm => this._ignoredValidationErrors.indexOf(itm) < 0),\n errorMessages: []\n };\n\n result.errors.forEach(error =>\n {\n const errorData = errors[error];\n\n //error message is present for error\n if(errorMessages[error])\n {\n result.errorMessages.push(this._stringLocalization.get(errorMessages[error], errors));\n }\n //display error data if it is string and there is missing translation\n else if(isString(errorData))\n {\n result.errorMessages.push(errorData);\n }\n //error data are array of strings, each string is considered error message\n else if(Array.isArray(errorData))\n {\n errorData.forEach(errorItm =>\n {\n if(isString(errorItm))\n {\n result.errorMessages.push(this._stringLocalization.get(errorItm, errors));\n }\n });\n }\n });\n\n return result;\n }\n}"]}
@@ -1 +1 @@
1
- {"version":3,"file":"validationErrorRenderer.interface.js","sourceRoot":"","sources":["../../../../../forms/src/services/validationErrorRenderer/validationErrorRenderer.interface.ts"],"names":[],"mappings":"","sourcesContent":["import {Type, TemplateRef, Injector} from '@angular/core';\nimport {FormControl} from '@angular/forms';\nimport {StringDictionary} from '@jscrpt/common';\n\nimport {ErrorMessagesExtractor} from '../errorMessagesExtractor/errorMessagesExtractor.service';\nimport {ValidationErrorsResult} from '../errorMessagesExtractor/errorMessagesExtractor.interface';\nimport {ValidationErrorsContainerView} from '../../misc/validationErrorsContainerView';\n\n/**\n * Describes function that is used for performing actions when form is submitted or dirty\n */\nexport interface IsSubmittedOrDirtyFunc\n{\n /**\n * Calls action when form is submitted or control is dirty\n * @param action - Action to be called when form is submitted or control dirty\n * @param falseAction - Action to be called when form is not submitted and control is not dirty\n * @param additionalCondition - Additional condition to be evaluated\n */\n (action: () => void, falseAction?: () => void, additionalCondition?: boolean): void;\n}\n\n/**\n * Component that is used for rendering validation errors\n */\nexport interface ValidationErrorsComponent\n{\n /**\n * Shows validation errors in component\n * @param errors - Errors to be shown\n * @param options - Options used for displaying validation errors\n */\n show(errors: ValidationErrorsResult, options: ValidationErrorsOptions): void;\n}\n\n/**\n * Context passed to template that is used for rendering validation errors\n */\nexport interface ValidationErrorsTemplateContext\n{\n /**\n * Errors to be shown\n */\n $implicit: ValidationErrorsResult;\n\n /**\n * Options used for displaying validation errors\n */\n options: ValidationErrorsOptions;\n}\n\n/**\n * Component that is used for rendering validation errors container\n */\nexport interface ValidationErrorsContainerComponent\n{\n /**\n * Shows validation errors\n * @param errors - Errors to be shown\n * @param options - Options used for displaying validation errors\n */\n show(errors: ValidationErrorsResult, options: ValidationErrorsContainerOptions): void;\n\n /**\n * Hides validation errors\n */\n hide(): void;\n}\n\n/**\n * Options for displayed validation errors\n */\nexport interface ValidationErrorsOptions\n{\n /**\n * Prefix of css classes applied to element\n */\n prefix?: string;\n\n /**\n * Suffix of css classes applied to element\n */\n suffix?: string;\n\n /**\n * Css class attached to wrapper div\n */\n wrapperDivClass?: string;\n}\n\n/**\n * Options for validation errors container\n */\nexport interface ValidationErrorsContainerOptions extends ValidationErrorsOptions\n{\n /**\n * Component used for rendering validation errors\n */\n component?: Type<ValidationErrorsComponent>;\n\n /**\n * Template used for rendering validation errors\n */\n template?: TemplateRef<ValidationErrorsTemplateContext>;\n}\n\n/**\n * Options for ValidationErrorRenderer\n */\nexport interface ValidationErrorsRendererOptions extends ValidationErrorsContainerOptions\n{\n /**\n * Component used for rendering validation errors container\n */\n container?: Type<ValidationErrorsContainerComponent>;\n}\n\n/**\n * Options for ValidationErrorRendererFactory\n */\nexport interface ValidationErrorRendererFactoryOptions extends ValidationErrorsRendererOptions\n{\n /**\n * Type of ValidationErrorRenderer implementation\n */\n rendererType?: ValidationErrorRendererCtor;\n}\n\n/**\n * Describes type that represents ValidationErrorRenderer\n */\nexport interface ValidationErrorRendererCtor\n{\n /**\n * Creates instance of ValidationErrorRenderer\n * @param errorMessagesExtractor - Instance of service used for extracting errors from control\n * @param control - Control that is being processed for errors\n * @param containerView - Class that stores view container for rendering errors\n * @param injector - Injector used for obtaining dependencies\n * @param isSubmittedOrDirty - Function used for testing if control is submitted or dirty\n * @param options - Options for validation errors renderer\n */\n new(errorMessagesExtractor: ErrorMessagesExtractor,\n control: FormControl,\n containerView: ValidationErrorsContainerView,\n injector: Injector,\n isSubmittedOrDirty: IsSubmittedOrDirtyFunc,\n options: ValidationErrorsRendererOptions): ValidationErrorRenderer;\n}\n\n/**\n * Describes service that is used for rendering validation errors\n */\nexport interface ValidationErrorRenderer\n{\n /**\n * Destroys renderer and everything that was rendered\n */\n destroy(): void;\n \n /**\n * Updates rendered errors for current state and returns true if errors were rendered, otherwise false\n * @param options - Options for validation errors renderer\n * @param errorMessages - Object storing error messages to be used as override\n */\n update(options: ValidationErrorsRendererOptions, errorMessages?: StringDictionary): boolean;\n}"]}
1
+ {"version":3,"file":"validationErrorRenderer.interface.js","sourceRoot":"","sources":["../../../../../forms/src/services/validationErrorRenderer/validationErrorRenderer.interface.ts"],"names":[],"mappings":"","sourcesContent":["import {Type, TemplateRef, Injector} from '@angular/core';\nimport {Dictionary, StringDictionary} from '@jscrpt/common';\n\nimport {ErrorMessagesExtractor} from '../errorMessagesExtractor/errorMessagesExtractor.service';\nimport {ValidationErrorsResult} from '../errorMessagesExtractor/errorMessagesExtractor.interface';\nimport {ValidationErrorsContainerView} from '../../misc/validationErrorsContainerView';\n\n/**\n * Describes function that is used for performing actions when form is submitted or dirty\n */\nexport interface IsSubmittedOrDirtyFunc\n{\n /**\n * Calls action when form is submitted or control is dirty\n * @param action - Action to be called when form is submitted or control dirty\n * @param falseAction - Action to be called when form is not submitted and control is not dirty\n * @param additionalCondition - Additional condition to be evaluated\n */\n (action: () => void, falseAction?: () => void, additionalCondition?: boolean): void;\n}\n\n/**\n * Component that is used for rendering validation errors\n */\nexport interface ValidationErrorsComponent\n{\n /**\n * Shows validation errors in component\n * @param errors - Errors to be shown\n * @param options - Options used for displaying validation errors\n */\n show(errors: ValidationErrorsResult, options: ValidationErrorsOptions): void;\n}\n\n/**\n * Context passed to template that is used for rendering validation errors\n */\nexport interface ValidationErrorsTemplateContext\n{\n /**\n * Errors to be shown\n */\n $implicit: ValidationErrorsResult;\n\n /**\n * Options used for displaying validation errors\n */\n options: ValidationErrorsOptions;\n}\n\n/**\n * Component that is used for rendering validation errors container\n */\nexport interface ValidationErrorsContainerComponent\n{\n /**\n * Shows validation errors\n * @param errors - Errors to be shown\n * @param options - Options used for displaying validation errors\n */\n show(errors: ValidationErrorsResult, options: ValidationErrorsContainerOptions): void;\n\n /**\n * Hides validation errors\n */\n hide(): void;\n}\n\n/**\n * Options for displayed validation errors\n */\nexport interface ValidationErrorsOptions\n{\n /**\n * Prefix of css classes applied to element\n */\n prefix?: string;\n\n /**\n * Suffix of css classes applied to element\n */\n suffix?: string;\n\n /**\n * Css class attached to wrapper div\n */\n wrapperDivClass?: string;\n}\n\n/**\n * Options for validation errors container\n */\nexport interface ValidationErrorsContainerOptions extends ValidationErrorsOptions\n{\n /**\n * Component used for rendering validation errors\n */\n component?: Type<ValidationErrorsComponent>;\n\n /**\n * Template used for rendering validation errors\n */\n template?: TemplateRef<ValidationErrorsTemplateContext>;\n}\n\n/**\n * Options for ValidationErrorRenderer\n */\nexport interface ValidationErrorsRendererOptions extends ValidationErrorsContainerOptions\n{\n /**\n * Component used for rendering validation errors container\n */\n container?: Type<ValidationErrorsContainerComponent>;\n}\n\n/**\n * Options for ValidationErrorRendererFactory\n */\nexport interface ValidationErrorRendererFactoryOptions extends ValidationErrorsRendererOptions\n{\n /**\n * Type of ValidationErrorRenderer implementation\n */\n rendererType?: ValidationErrorRendererCtor;\n}\n\n/**\n * Describes type that represents ValidationErrorRenderer\n */\nexport interface ValidationErrorRendererCtor\n{\n /**\n * Creates instance of ValidationErrorRenderer\n * @param errorMessagesExtractor - Instance of service used for extracting errors from control\n * @param containerView - Class that stores view container for rendering errors\n * @param injector - Injector used for obtaining dependencies\n * @param isSubmittedOrDirty - Function used for testing if control is submitted or dirty\n * @param options - Options for validation errors renderer\n */\n new(errorMessagesExtractor: ErrorMessagesExtractor,\n containerView: ValidationErrorsContainerView,\n injector: Injector,\n isSubmittedOrDirty: IsSubmittedOrDirtyFunc,\n options: ValidationErrorsRendererOptions): ValidationErrorRenderer;\n}\n\n/**\n * Describes service that is used for rendering validation errors\n */\nexport interface ValidationErrorRenderer\n{\n /**\n * Destroys renderer and everything that was rendered\n */\n destroy(): void;\n\n /**\n * Updates rendered errors for current state and returns true if errors were rendered, otherwise false\n * @param options - Options for validation errors renderer\n * @param errors - Dictionary containing validation errors\n * @param errorMessages - Object storing error messages to be used as override\n */\n update(options: ValidationErrorsRendererOptions, errors: Dictionary, errorMessages?: StringDictionary): boolean;\n}\n"]}
@@ -17,13 +17,12 @@ export class ValidationErrorRendererFactory {
17
17
  //######################### public methods #########################
18
18
  /**
19
19
  * Creates new instance of ValidationErrorRenderer
20
- * @param control - Control that is being processed for errors
21
20
  * @param containerView - Class that stores view container for rendering errors
22
21
  * @param injector - Injector for obtaining dependencies
23
22
  * @param isSubmittedOrDirty - Function used for testing if control is submitted or dirty
24
23
  */
25
- create(control, containerView, injector, isSubmittedOrDirty) {
26
- return new this._options.rendererType(this._errorMessagesExtractor, control, containerView, injector, isSubmittedOrDirty, this._options);
24
+ create(containerView, injector, isSubmittedOrDirty) {
25
+ return new this._options.rendererType(this._errorMessagesExtractor, containerView, injector, isSubmittedOrDirty, this._options);
27
26
  }
28
27
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.2", ngImport: i0, type: ValidationErrorRendererFactory, deps: [{ token: i1.ErrorMessagesExtractor }, { token: VALIDATION_ERROR_RENDERER_FACTORY_OPTIONS, optional: true }], target: i0.ɵɵFactoryTarget.Injectable }); }
29
28
  static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.2", ngImport: i0, type: ValidationErrorRendererFactory, providedIn: 'root' }); }
@@ -42,9 +41,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.2", ngImpor
42
41
  */
43
42
  export class DefaultValidationErrorRenderer {
44
43
  //######################### constructor #########################
45
- constructor(_errorMessagesExtractor, _control, _containerView, _injector, _isSubmittedOrDirty, _options) {
44
+ constructor(_errorMessagesExtractor, _containerView, _injector, _isSubmittedOrDirty, _options) {
46
45
  this._errorMessagesExtractor = _errorMessagesExtractor;
47
- this._control = _control;
48
46
  this._containerView = _containerView;
49
47
  this._injector = _injector;
50
48
  this._isSubmittedOrDirty = _isSubmittedOrDirty;
@@ -62,9 +60,9 @@ export class DefaultValidationErrorRenderer {
62
60
  /**
63
61
  * @inheritdoc
64
62
  */
65
- update(options, errorMessages) {
63
+ update(options, errors, errorMessages) {
66
64
  let result = false;
67
- this._lastErrors = this._errorMessagesExtractor.getErrors(this._control, errorMessages);
65
+ this._lastErrors = this._errorMessagesExtractor.getErrors(errors, errorMessages);
68
66
  //has errors
69
67
  if (this._lastErrors) {
70
68
  this._isSubmittedOrDirty(() => {
@@ -1 +1 @@
1
- {"version":3,"file":"validationErrorRenderer.service.js","sourceRoot":"","sources":["../../../../../forms/src/services/validationErrorRenderer/validationErrorRenderer.service.ts"],"names":[],"mappings":"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","sourcesContent":["import {Injectable, Inject, Optional, Injector, ComponentRef} from '@angular/core';\nimport {FormControl} from '@angular/forms';\nimport {StringDictionary} from '@jscrpt/common';\nimport {extend} from '@jscrpt/common/extend';\n\nimport {ErrorMessagesExtractor} from '../errorMessagesExtractor/errorMessagesExtractor.service';\nimport {ValidationErrorRenderer, IsSubmittedOrDirtyFunc, ValidationErrorsRendererOptions, ValidationErrorRendererFactoryOptions, ValidationErrorsContainerComponent} from './validationErrorRenderer.interface';\nimport {ValidationErrorsResult} from '../errorMessagesExtractor/errorMessagesExtractor.interface';\nimport {VALIDATION_ERROR_RENDERER_FACTORY_OPTIONS} from '../../misc/tokens';\nimport {ValidationErrorsContainerView} from '../../misc/validationErrorsContainerView';\nimport {DefaultValidationErrorsComponent, DefaultValidationErrorsContainerComponent} from '../../components';\n\n/**\n * Service used for creating validation errors renderer\n */\n@Injectable({providedIn: 'root'})\nexport class ValidationErrorRendererFactory\n{\n //######################### protected fields #########################\n\n /**\n * Options for validation error renderer factory\n */\n protected _options: ValidationErrorRendererFactoryOptions;\n\n //######################### constructor #########################\n constructor(protected _errorMessagesExtractor: ErrorMessagesExtractor,\n @Optional() @Inject(VALIDATION_ERROR_RENDERER_FACTORY_OPTIONS) options: ValidationErrorRendererFactoryOptions)\n {\n this._options = extend(true, {}, DEFAULT_OPTIONS, options);\n }\n\n //######################### public methods #########################\n\n /**\n * Creates new instance of ValidationErrorRenderer\n * @param control - Control that is being processed for errors\n * @param containerView - Class that stores view container for rendering errors\n * @param injector - Injector for obtaining dependencies\n * @param isSubmittedOrDirty - Function used for testing if control is submitted or dirty\n */\n public create(control: FormControl,\n containerView: ValidationErrorsContainerView,\n injector: Injector,\n isSubmittedOrDirty: IsSubmittedOrDirtyFunc): ValidationErrorRenderer\n {\n return new this._options.rendererType(this._errorMessagesExtractor,\n control,\n containerView,\n injector,\n isSubmittedOrDirty,\n this._options);\n }\n}\n\n/**\n * Default implementation of validation error renderer\n */\nexport class DefaultValidationErrorRenderer implements ValidationErrorRenderer\n{\n //######################### protected fields #########################\n\n /**\n * Object storing last obtained errors\n */\n protected _lastErrors: ValidationErrorsResult;\n\n /**\n * Component used as validation errors container\n */\n protected _container: ComponentRef<ValidationErrorsContainerComponent>;\n\n //######################### constructor #########################\n constructor(protected _errorMessagesExtractor: ErrorMessagesExtractor,\n protected _control: FormControl,\n protected _containerView: ValidationErrorsContainerView,\n protected _injector: Injector,\n protected _isSubmittedOrDirty: IsSubmittedOrDirtyFunc,\n protected _options: ValidationErrorsRendererOptions)\n {\n this._initialize();\n }\n\n //######################### public methods - implementation of ValiDationErrorRenderer #########################\n\n /**\n * @inheritdoc\n */\n public destroy(): void\n {\n this._containerView.viewContainer.clear();\n this._container = null;\n }\n\n /**\n * @inheritdoc\n */\n public update(options: ValidationErrorsRendererOptions, errorMessages?: StringDictionary): boolean\n {\n let result = false;\n this._lastErrors = this._errorMessagesExtractor.getErrors(this._control, errorMessages);\n\n //has errors\n if(this._lastErrors)\n {\n this._isSubmittedOrDirty(() =>\n {\n // const errorsClasses = this._lastErrors.errors.map(error => `${this._options.prefix}${error.toLowerCase()}${this._options.suffix}`);\n const opts = extend(true, {}, this._options, options);\n\n this._container.instance.show(this._lastErrors, opts);\n result = true;\n },\n () =>\n {\n this._container.instance.hide();\n result = false;\n });\n }\n else\n {\n this._container.instance.hide();\n result = false;\n }\n\n return result;\n }\n\n /**\n * Initialize renderer\n */\n protected _initialize(): void\n {\n this._container = this._containerView.viewContainer.createComponent(this._options.container, {injector: this._injector});\n this._container.instance.hide();\n }\n}\n\n/**\n * Default options for validation error renderer factory\n */\nconst DEFAULT_OPTIONS: ValidationErrorRendererFactoryOptions =\n{\n prefix: 'ng-',\n suffix: '-error',\n wrapperDivClass: 'validation-error-div',\n rendererType: DefaultValidationErrorRenderer,\n component: DefaultValidationErrorsComponent,\n container: DefaultValidationErrorsContainerComponent,\n};"]}
1
+ {"version":3,"file":"validationErrorRenderer.service.js","sourceRoot":"","sources":["../../../../../forms/src/services/validationErrorRenderer/validationErrorRenderer.service.ts"],"names":[],"mappings":"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","sourcesContent":["import {Injectable, Inject, Optional, Injector, ComponentRef} from '@angular/core';\nimport {Dictionary, StringDictionary} from '@jscrpt/common';\nimport {extend} from '@jscrpt/common/extend';\n\nimport {ErrorMessagesExtractor} from '../errorMessagesExtractor/errorMessagesExtractor.service';\nimport {ValidationErrorRenderer, IsSubmittedOrDirtyFunc, ValidationErrorsRendererOptions, ValidationErrorRendererFactoryOptions, ValidationErrorsContainerComponent} from './validationErrorRenderer.interface';\nimport {ValidationErrorsResult} from '../errorMessagesExtractor/errorMessagesExtractor.interface';\nimport {VALIDATION_ERROR_RENDERER_FACTORY_OPTIONS} from '../../misc/tokens';\nimport {ValidationErrorsContainerView} from '../../misc/validationErrorsContainerView';\nimport {DefaultValidationErrorsComponent, DefaultValidationErrorsContainerComponent} from '../../components';\n\n/**\n * Service used for creating validation errors renderer\n */\n@Injectable({providedIn: 'root'})\nexport class ValidationErrorRendererFactory\n{\n //######################### protected fields #########################\n\n /**\n * Options for validation error renderer factory\n */\n protected _options: ValidationErrorRendererFactoryOptions;\n\n //######################### constructor #########################\n constructor(protected _errorMessagesExtractor: ErrorMessagesExtractor,\n @Optional() @Inject(VALIDATION_ERROR_RENDERER_FACTORY_OPTIONS) options: ValidationErrorRendererFactoryOptions)\n {\n this._options = extend(true, {}, DEFAULT_OPTIONS, options);\n }\n\n //######################### public methods #########################\n\n /**\n * Creates new instance of ValidationErrorRenderer\n * @param containerView - Class that stores view container for rendering errors\n * @param injector - Injector for obtaining dependencies\n * @param isSubmittedOrDirty - Function used for testing if control is submitted or dirty\n */\n public create(containerView: ValidationErrorsContainerView,\n injector: Injector,\n isSubmittedOrDirty: IsSubmittedOrDirtyFunc): ValidationErrorRenderer\n {\n return new this._options.rendererType(this._errorMessagesExtractor,\n containerView,\n injector,\n isSubmittedOrDirty,\n this._options);\n }\n}\n\n/**\n * Default implementation of validation error renderer\n */\nexport class DefaultValidationErrorRenderer implements ValidationErrorRenderer\n{\n //######################### protected fields #########################\n\n /**\n * Object storing last obtained errors\n */\n protected _lastErrors: ValidationErrorsResult;\n\n /**\n * Component used as validation errors container\n */\n protected _container: ComponentRef<ValidationErrorsContainerComponent>;\n\n //######################### constructor #########################\n constructor(protected _errorMessagesExtractor: ErrorMessagesExtractor,\n protected _containerView: ValidationErrorsContainerView,\n protected _injector: Injector,\n protected _isSubmittedOrDirty: IsSubmittedOrDirtyFunc,\n protected _options: ValidationErrorsRendererOptions)\n {\n this._initialize();\n }\n\n //######################### public methods - implementation of ValiDationErrorRenderer #########################\n\n /**\n * @inheritdoc\n */\n public destroy(): void\n {\n this._containerView.viewContainer.clear();\n this._container = null;\n }\n\n /**\n * @inheritdoc\n */\n public update(options: ValidationErrorsRendererOptions, errors: Dictionary, errorMessages?: StringDictionary): boolean\n {\n let result = false;\n this._lastErrors = this._errorMessagesExtractor.getErrors(errors, errorMessages);\n\n //has errors\n if(this._lastErrors)\n {\n this._isSubmittedOrDirty(() =>\n {\n // const errorsClasses = this._lastErrors.errors.map(error => `${this._options.prefix}${error.toLowerCase()}${this._options.suffix}`);\n const opts = extend(true, {}, this._options, options);\n\n this._container.instance.show(this._lastErrors, opts);\n result = true;\n },\n () =>\n {\n this._container.instance.hide();\n result = false;\n });\n }\n else\n {\n this._container.instance.hide();\n result = false;\n }\n\n return result;\n }\n\n /**\n * Initialize renderer\n */\n protected _initialize(): void\n {\n this._container = this._containerView.viewContainer.createComponent(this._options.container, {injector: this._injector});\n this._container.instance.hide();\n }\n}\n\n/**\n * Default options for validation error renderer factory\n */\nconst DEFAULT_OPTIONS: ValidationErrorRendererFactoryOptions =\n{\n prefix: 'ng-',\n suffix: '-error',\n wrapperDivClass: 'validation-error-div',\n rendererType: DefaultValidationErrorRenderer,\n component: DefaultValidationErrorsComponent,\n container: DefaultValidationErrorsContainerComponent,\n};\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"hasError.directive.d.ts","sourceRoot":"","sources":["hasError.directive.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgC,MAAM,EAAE,SAAS,EAAiB,QAAQ,EAAE,gBAAgB,EAAE,aAAa,EAAE,IAAI,EAAE,WAAW,EAAC,MAAM,eAAe,CAAC;AAC5J,OAAO,EAAC,oBAAoB,EAAE,eAAe,EAAE,WAAW,EAAE,OAAO,EAAsB,MAAM,gBAAgB,CAAC;AAChH,OAAO,EAAC,kBAAkB,EAAsB,MAAM,eAAe,CAAC;AACtE,OAAO,EAAuB,gBAAgB,EAAC,MAAM,gBAAgB,CAAC;AACtE,OAAO,EAAC,YAAY,EAAS,MAAM,MAAM,CAAC;AAE1C,OAAO,EAAC,8BAA8B,EAAC,MAAM,wEAAwE,CAAC;AACtH,OAAO,EAAC,uBAAuB,EAAE,yBAAyB,EAAmC,+BAA+B,EAAC,MAAM,0EAA0E,CAAC;AAC9M,OAAO,EAAC,gBAAgB,EAAC,MAAM,4CAA4C,CAAC;AAC5E,OAAO,EAAC,sBAAsB,EAAC,MAAM,0CAA0C,CAAC;AAChF,OAAO,EAAC,6BAA6B,EAAC,MAAM,0CAA0C,CAAC;;AAIvF;;GAEG;AACH,qBAIa,iBAAkB,YAAW,MAAM,EAAE,aAAa,EAAE,SAAS;IA8D1D,SAAS,CAAC,eAAe,EAAE,8BAA8B;IACzD,SAAS,CAAC,aAAa,EAAE,gBAAgB;IACjB,SAAS,CAAC,aAAa,EAAE,sBAAsB;IAC3D,SAAS,CAAC,WAAW,EAAE,oBAAoB;IAC3C,SAAS,CAAC,eAAe,EAAE,eAAe;IAC1C,SAAS,CAAC,OAAO,EAAE,OAAO;IAC1B,SAAS,CAAC,YAAY,EAAE,gBAAgB;IACxC,SAAS,CAAC,aAAa,EAAE,6BAA6B;IACrC,SAAS,CAAC,kBAAkB,EAAE,kBAAkB;IAC7E,SAAS,CAAC,QAAQ,EAAE,QAAQ;IAnExC;;OAEG;IACH,SAAS,CAAC,aAAa,EAAE,YAAY,CAAsB;IAE3D;;OAEG;IACH,SAAS,CAAC,EAAE,EAAE,MAAM,CAAkB;IAEtC;;OAEG;IACH,SAAS,CAAC,aAAa,EAAE,OAAO,CAAS;IAEzC;;OAEG;IACH,SAAS,CAAC,SAAS,EAAE,OAAO,CAAS;IAIrC;;OAEG;IACH,SAAS,KAAK,OAAO,IAAI,WAAW,CAGnC;IAID;;OAEG;IACI,QAAQ,EAAE,uBAAuB,CAAC;IAIzC;;OAEG;IAEI,aAAa,EAAE,gBAAgB,CAAC;IAEvC;;OAEG;IAEI,eAAe,CAAC,EAAE,IAAI,CAAC,yBAAyB,CAAC,CAAC;IAEzD;;OAEG;IAEI,cAAc,CAAC,EAAE,WAAW,CAAC,+BAA+B,CAAC,CAAC;gBAG/C,eAAe,EAAE,8BAA8B,EAC/C,aAAa,EAAE,gBAAgB,EACP,aAAa,EAAE,sBAAsB,EACjD,WAAW,EAAE,oBAAoB,EACjC,eAAe,EAAE,eAAe,EAChC,OAAO,EAAE,OAAO,EAChB,YAAY,EAAE,gBAAgB,EAC9B,aAAa,EAAE,6BAA6B,EAC3B,kBAAkB,EAAE,kBAAkB,EACnE,QAAQ,EAAE,QAAQ;IAMxC;;OAEG;IACI,QAAQ,IAAI,IAAI;IA6BvB;;OAEG;IACI,eAAe,IAAI,IAAI;IAY9B;;OAEG;IACI,WAAW,IAAI,IAAI;IAU1B;;OAEG;IACH,SAAS,CAAC,YAAY,IAAI,IAAI;IAuB9B;;OAEG;IACH,SAAS,CAAC,mBAAmB,IAAI,IAAI;IAUrC;;;;;OAKG;IAEH,SAAS,CAAC,kBAAkB,CAAC,MAAM,EAAE,MAAM,IAAI,EAAE,WAAW,GAAE,MAAM,IAAe,EAAE,mBAAmB,GAAE,OAAc,GAAG,IAAI;yCAvLtH,iBAAiB;2CAAjB,iBAAiB;CAqM7B"}
1
+ {"version":3,"file":"hasError.directive.d.ts","sourceRoot":"","sources":["hasError.directive.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgC,MAAM,EAAE,SAAS,EAAiB,QAAQ,EAAE,gBAAgB,EAAE,aAAa,EAAE,IAAI,EAAE,WAAW,EAAC,MAAM,eAAe,CAAC;AAC5J,OAAO,EAAC,oBAAoB,EAAE,eAAe,EAAE,WAAW,EAAE,OAAO,EAAsB,MAAM,gBAAgB,CAAC;AAChH,OAAO,EAAC,kBAAkB,EAAsB,MAAM,eAAe,CAAC;AACtE,OAAO,EAAuB,gBAAgB,EAAC,MAAM,gBAAgB,CAAC;AACtE,OAAO,EAAC,YAAY,EAAS,MAAM,MAAM,CAAC;AAE1C,OAAO,EAAC,8BAA8B,EAAC,MAAM,wEAAwE,CAAC;AACtH,OAAO,EAAC,uBAAuB,EAAE,yBAAyB,EAAmC,+BAA+B,EAAC,MAAM,0EAA0E,CAAC;AAC9M,OAAO,EAAC,gBAAgB,EAAC,MAAM,4CAA4C,CAAC;AAC5E,OAAO,EAAC,sBAAsB,EAAC,MAAM,0CAA0C,CAAC;AAChF,OAAO,EAAC,6BAA6B,EAAC,MAAM,0CAA0C,CAAC;;AAIvF;;GAEG;AACH,qBAIa,iBAAkB,YAAW,MAAM,EAAE,aAAa,EAAE,SAAS;IA8D1D,SAAS,CAAC,eAAe,EAAE,8BAA8B;IACzD,SAAS,CAAC,aAAa,EAAE,gBAAgB;IACjB,SAAS,CAAC,aAAa,EAAE,sBAAsB;IAC3D,SAAS,CAAC,WAAW,EAAE,oBAAoB;IAC3C,SAAS,CAAC,eAAe,EAAE,eAAe;IAC1C,SAAS,CAAC,OAAO,EAAE,OAAO;IAC1B,SAAS,CAAC,YAAY,EAAE,gBAAgB;IACxC,SAAS,CAAC,aAAa,EAAE,6BAA6B;IACrC,SAAS,CAAC,kBAAkB,EAAE,kBAAkB;IAC7E,SAAS,CAAC,QAAQ,EAAE,QAAQ;IAnExC;;OAEG;IACH,SAAS,CAAC,aAAa,EAAE,YAAY,CAAsB;IAE3D;;OAEG;IACH,SAAS,CAAC,EAAE,EAAE,MAAM,CAAkB;IAEtC;;OAEG;IACH,SAAS,CAAC,aAAa,EAAE,OAAO,CAAS;IAEzC;;OAEG;IACH,SAAS,CAAC,SAAS,EAAE,OAAO,CAAS;IAIrC;;OAEG;IACH,SAAS,KAAK,OAAO,IAAI,WAAW,CAGnC;IAID;;OAEG;IACI,QAAQ,EAAE,uBAAuB,CAAC;IAIzC;;OAEG;IAEI,aAAa,EAAE,gBAAgB,CAAC;IAEvC;;OAEG;IAEI,eAAe,CAAC,EAAE,IAAI,CAAC,yBAAyB,CAAC,CAAC;IAEzD;;OAEG;IAEI,cAAc,CAAC,EAAE,WAAW,CAAC,+BAA+B,CAAC,CAAC;gBAG/C,eAAe,EAAE,8BAA8B,EAC/C,aAAa,EAAE,gBAAgB,EACP,aAAa,EAAE,sBAAsB,EACjD,WAAW,EAAE,oBAAoB,EACjC,eAAe,EAAE,eAAe,EAChC,OAAO,EAAE,OAAO,EAChB,YAAY,EAAE,gBAAgB,EAC9B,aAAa,EAAE,6BAA6B,EAC3B,kBAAkB,EAAE,kBAAkB,EACnE,QAAQ,EAAE,QAAQ;IAMxC;;OAEG;IACI,QAAQ,IAAI,IAAI;IA6BvB;;OAEG;IACI,eAAe,IAAI,IAAI;IAW9B;;OAEG;IACI,WAAW,IAAI,IAAI;IAU1B;;OAEG;IACH,SAAS,CAAC,YAAY,IAAI,IAAI;IAuB9B;;OAEG;IACH,SAAS,CAAC,mBAAmB,IAAI,IAAI;IAUrC;;;;;OAKG;IAEH,SAAS,CAAC,kBAAkB,CAAC,MAAM,EAAE,MAAM,IAAI,EAAE,WAAW,GAAE,MAAM,IAAe,EAAE,mBAAmB,GAAE,OAAc,GAAG,IAAI;yCAtLtH,iBAAiB;2CAAjB,iBAAiB;CAoM7B"}
@@ -1,6 +1,5 @@
1
- import { FormControl } from '@angular/forms';
2
1
  import { StringLocalization } from '@anglr/common';
3
- import { StringDictionary } from '@jscrpt/common';
2
+ import { Dictionary, StringDictionary } from '@jscrpt/common';
4
3
  import { ValidationErrorsResult } from './errorMessagesExtractor.interface';
5
4
  import * as i0 from "@angular/core";
6
5
  /**
@@ -16,10 +15,10 @@ export declare class ErrorMessagesExtractor {
16
15
  constructor(_stringLocalization: StringLocalization, _ignoredValidationErrors: string[], globalErrorMessages?: StringDictionary);
17
16
  /**
18
17
  * Gets validation errors result for provided control, or null of no errors are present
19
- * @param control - Form control instance that should be inspected for errors
18
+ * @param errors - Dictionary containing validation errors
20
19
  * @param messages - Object containing error messages that should patch existing error messages
21
20
  */
22
- getErrors(control: FormControl, messages?: StringDictionary): ValidationErrorsResult;
21
+ getErrors(errors: Dictionary, messages?: StringDictionary): ValidationErrorsResult;
23
22
  static ɵfac: i0.ɵɵFactoryDeclaration<ErrorMessagesExtractor, [null, null, { optional: true; }]>;
24
23
  static ɵprov: i0.ɵɵInjectableDeclaration<ErrorMessagesExtractor>;
25
24
  }
@@ -1 +1 @@
1
- {"version":3,"file":"errorMessagesExtractor.service.d.ts","sourceRoot":"","sources":["errorMessagesExtractor.service.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,WAAW,EAAC,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAC,kBAAkB,EAAsB,MAAM,eAAe,CAAC;AACtE,OAAO,EAAC,gBAAgB,EAAW,MAAM,gBAAgB,CAAC;AAI1D,OAAO,EAAC,sBAAsB,EAAC,MAAM,oCAAoC,CAAC;;AAgB1E;;GAEG;AACH,qBACa,sBAAsB;IAUU,SAAS,CAAC,mBAAmB,EAAE,kBAAkB;IAC3C,SAAS,CAAC,wBAAwB,EAAE,MAAM,EAAE;IAP3F;;OAEG;IACH,SAAS,CAAC,cAAc,EAAE,gBAAgB,CAAC;gBAGQ,mBAAmB,EAAE,kBAAkB,EACjC,wBAAwB,EAAE,MAAM,EAAE,EAChC,mBAAmB,CAAC,EAAE,gBAAgB;IAOjG;;;;OAIG;IACI,SAAS,CAAC,OAAO,EAAE,WAAW,EAAE,QAAQ,CAAC,EAAE,gBAAgB,GAAG,sBAAsB;yCAxBlF,sBAAsB;6CAAtB,sBAAsB;CAqElC"}
1
+ {"version":3,"file":"errorMessagesExtractor.service.d.ts","sourceRoot":"","sources":["errorMessagesExtractor.service.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,kBAAkB,EAAsB,MAAM,eAAe,CAAC;AACtE,OAAO,EAAC,UAAU,EAAE,gBAAgB,EAAW,MAAM,gBAAgB,CAAC;AAItE,OAAO,EAAC,sBAAsB,EAAC,MAAM,oCAAoC,CAAC;;AAgB1E;;GAEG;AACH,qBACa,sBAAsB;IAUU,SAAS,CAAC,mBAAmB,EAAE,kBAAkB;IAC3C,SAAS,CAAC,wBAAwB,EAAE,MAAM,EAAE;IAP3F;;OAEG;IACH,SAAS,CAAC,cAAc,EAAE,gBAAgB,CAAC;gBAGQ,mBAAmB,EAAE,kBAAkB,EACjC,wBAAwB,EAAE,MAAM,EAAE,EAChC,mBAAmB,CAAC,EAAE,gBAAgB;IAOjG;;;;OAIG;IACI,SAAS,CAAC,MAAM,EAAE,UAAU,EAAE,QAAQ,CAAC,EAAE,gBAAgB,GAAG,sBAAsB;yCAxBhF,sBAAsB;6CAAtB,sBAAsB;CAqElC"}
@@ -1,6 +1,5 @@
1
1
  import { Type, TemplateRef, Injector } from '@angular/core';
2
- import { FormControl } from '@angular/forms';
3
- import { StringDictionary } from '@jscrpt/common';
2
+ import { Dictionary, StringDictionary } from '@jscrpt/common';
4
3
  import { ErrorMessagesExtractor } from '../errorMessagesExtractor/errorMessagesExtractor.service';
5
4
  import { ValidationErrorsResult } from '../errorMessagesExtractor/errorMessagesExtractor.interface';
6
5
  import { ValidationErrorsContainerView } from '../../misc/validationErrorsContainerView';
@@ -110,13 +109,12 @@ export interface ValidationErrorRendererCtor {
110
109
  /**
111
110
  * Creates instance of ValidationErrorRenderer
112
111
  * @param errorMessagesExtractor - Instance of service used for extracting errors from control
113
- * @param control - Control that is being processed for errors
114
112
  * @param containerView - Class that stores view container for rendering errors
115
113
  * @param injector - Injector used for obtaining dependencies
116
114
  * @param isSubmittedOrDirty - Function used for testing if control is submitted or dirty
117
115
  * @param options - Options for validation errors renderer
118
116
  */
119
- new (errorMessagesExtractor: ErrorMessagesExtractor, control: FormControl, containerView: ValidationErrorsContainerView, injector: Injector, isSubmittedOrDirty: IsSubmittedOrDirtyFunc, options: ValidationErrorsRendererOptions): ValidationErrorRenderer;
117
+ new (errorMessagesExtractor: ErrorMessagesExtractor, containerView: ValidationErrorsContainerView, injector: Injector, isSubmittedOrDirty: IsSubmittedOrDirtyFunc, options: ValidationErrorsRendererOptions): ValidationErrorRenderer;
120
118
  }
121
119
  /**
122
120
  * Describes service that is used for rendering validation errors
@@ -129,8 +127,9 @@ export interface ValidationErrorRenderer {
129
127
  /**
130
128
  * Updates rendered errors for current state and returns true if errors were rendered, otherwise false
131
129
  * @param options - Options for validation errors renderer
130
+ * @param errors - Dictionary containing validation errors
132
131
  * @param errorMessages - Object storing error messages to be used as override
133
132
  */
134
- update(options: ValidationErrorsRendererOptions, errorMessages?: StringDictionary): boolean;
133
+ update(options: ValidationErrorsRendererOptions, errors: Dictionary, errorMessages?: StringDictionary): boolean;
135
134
  }
136
135
  //# sourceMappingURL=validationErrorRenderer.interface.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"validationErrorRenderer.interface.d.ts","sourceRoot":"","sources":["validationErrorRenderer.interface.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,IAAI,EAAE,WAAW,EAAE,QAAQ,EAAC,MAAM,eAAe,CAAC;AAC1D,OAAO,EAAC,WAAW,EAAC,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAC,gBAAgB,EAAC,MAAM,gBAAgB,CAAC;AAEhD,OAAO,EAAC,sBAAsB,EAAC,MAAM,0DAA0D,CAAC;AAChG,OAAO,EAAC,sBAAsB,EAAC,MAAM,4DAA4D,CAAC;AAClG,OAAO,EAAC,6BAA6B,EAAC,MAAM,0CAA0C,CAAC;AAEvF;;GAEG;AACH,MAAM,WAAW,sBAAsB;IAEnC;;;;;OAKG;IACH,CAAC,MAAM,EAAE,MAAM,IAAI,EAAE,WAAW,CAAC,EAAE,MAAM,IAAI,EAAE,mBAAmB,CAAC,EAAE,OAAO,GAAG,IAAI,CAAC;CACvF;AAED;;GAEG;AACH,MAAM,WAAW,yBAAyB;IAEtC;;;;OAIG;IACH,IAAI,CAAC,MAAM,EAAE,sBAAsB,EAAE,OAAO,EAAE,uBAAuB,GAAG,IAAI,CAAC;CAChF;AAED;;GAEG;AACH,MAAM,WAAW,+BAA+B;IAE5C;;OAEG;IACH,SAAS,EAAE,sBAAsB,CAAC;IAElC;;OAEG;IACH,OAAO,EAAE,uBAAuB,CAAC;CACpC;AAED;;GAEG;AACH,MAAM,WAAW,kCAAkC;IAE/C;;;;OAIG;IACH,IAAI,CAAC,MAAM,EAAE,sBAAsB,EAAE,OAAO,EAAE,gCAAgC,GAAG,IAAI,CAAC;IAEtF;;OAEG;IACH,IAAI,IAAI,IAAI,CAAC;CAChB;AAED;;GAEG;AACH,MAAM,WAAW,uBAAuB;IAEpC;;OAEG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB;;OAEG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB;;OAEG;IACH,eAAe,CAAC,EAAE,MAAM,CAAC;CAC5B;AAED;;GAEG;AACH,MAAM,WAAW,gCAAiC,SAAQ,uBAAuB;IAE7E;;OAEG;IACH,SAAS,CAAC,EAAE,IAAI,CAAC,yBAAyB,CAAC,CAAC;IAE5C;;OAEG;IACH,QAAQ,CAAC,EAAE,WAAW,CAAC,+BAA+B,CAAC,CAAC;CAC3D;AAED;;GAEG;AACH,MAAM,WAAW,+BAAgC,SAAQ,gCAAgC;IAErF;;OAEG;IACH,SAAS,CAAC,EAAE,IAAI,CAAC,kCAAkC,CAAC,CAAC;CACxD;AAED;;GAEG;AACH,MAAM,WAAW,qCAAsC,SAAQ,+BAA+B;IAE1F;;OAEG;IACH,YAAY,CAAC,EAAE,2BAA2B,CAAC;CAC9C;AAED;;GAEG;AACH,MAAM,WAAW,2BAA2B;IAExC;;;;;;;;OAQG;IACH,KAAI,sBAAsB,EAAE,sBAAsB,EAC9C,OAAO,EAAE,WAAW,EACpB,aAAa,EAAE,6BAA6B,EAC5C,QAAQ,EAAE,QAAQ,EAClB,kBAAkB,EAAE,sBAAsB,EAC1C,OAAO,EAAE,+BAA+B,GAAG,uBAAuB,CAAC;CAC1E;AAED;;GAEG;AACH,MAAM,WAAW,uBAAuB;IAEpC;;OAEG;IACH,OAAO,IAAI,IAAI,CAAC;IAEhB;;;;OAIG;IACH,MAAM,CAAC,OAAO,EAAE,+BAA+B,EAAE,aAAa,CAAC,EAAE,gBAAgB,GAAG,OAAO,CAAC;CAC/F"}
1
+ {"version":3,"file":"validationErrorRenderer.interface.d.ts","sourceRoot":"","sources":["validationErrorRenderer.interface.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,IAAI,EAAE,WAAW,EAAE,QAAQ,EAAC,MAAM,eAAe,CAAC;AAC1D,OAAO,EAAC,UAAU,EAAE,gBAAgB,EAAC,MAAM,gBAAgB,CAAC;AAE5D,OAAO,EAAC,sBAAsB,EAAC,MAAM,0DAA0D,CAAC;AAChG,OAAO,EAAC,sBAAsB,EAAC,MAAM,4DAA4D,CAAC;AAClG,OAAO,EAAC,6BAA6B,EAAC,MAAM,0CAA0C,CAAC;AAEvF;;GAEG;AACH,MAAM,WAAW,sBAAsB;IAEnC;;;;;OAKG;IACH,CAAC,MAAM,EAAE,MAAM,IAAI,EAAE,WAAW,CAAC,EAAE,MAAM,IAAI,EAAE,mBAAmB,CAAC,EAAE,OAAO,GAAG,IAAI,CAAC;CACvF;AAED;;GAEG;AACH,MAAM,WAAW,yBAAyB;IAEtC;;;;OAIG;IACH,IAAI,CAAC,MAAM,EAAE,sBAAsB,EAAE,OAAO,EAAE,uBAAuB,GAAG,IAAI,CAAC;CAChF;AAED;;GAEG;AACH,MAAM,WAAW,+BAA+B;IAE5C;;OAEG;IACH,SAAS,EAAE,sBAAsB,CAAC;IAElC;;OAEG;IACH,OAAO,EAAE,uBAAuB,CAAC;CACpC;AAED;;GAEG;AACH,MAAM,WAAW,kCAAkC;IAE/C;;;;OAIG;IACH,IAAI,CAAC,MAAM,EAAE,sBAAsB,EAAE,OAAO,EAAE,gCAAgC,GAAG,IAAI,CAAC;IAEtF;;OAEG;IACH,IAAI,IAAI,IAAI,CAAC;CAChB;AAED;;GAEG;AACH,MAAM,WAAW,uBAAuB;IAEpC;;OAEG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB;;OAEG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB;;OAEG;IACH,eAAe,CAAC,EAAE,MAAM,CAAC;CAC5B;AAED;;GAEG;AACH,MAAM,WAAW,gCAAiC,SAAQ,uBAAuB;IAE7E;;OAEG;IACH,SAAS,CAAC,EAAE,IAAI,CAAC,yBAAyB,CAAC,CAAC;IAE5C;;OAEG;IACH,QAAQ,CAAC,EAAE,WAAW,CAAC,+BAA+B,CAAC,CAAC;CAC3D;AAED;;GAEG;AACH,MAAM,WAAW,+BAAgC,SAAQ,gCAAgC;IAErF;;OAEG;IACH,SAAS,CAAC,EAAE,IAAI,CAAC,kCAAkC,CAAC,CAAC;CACxD;AAED;;GAEG;AACH,MAAM,WAAW,qCAAsC,SAAQ,+BAA+B;IAE1F;;OAEG;IACH,YAAY,CAAC,EAAE,2BAA2B,CAAC;CAC9C;AAED;;GAEG;AACH,MAAM,WAAW,2BAA2B;IAExC;;;;;;;OAOG;IACH,KAAI,sBAAsB,EAAE,sBAAsB,EAC9C,aAAa,EAAE,6BAA6B,EAC5C,QAAQ,EAAE,QAAQ,EAClB,kBAAkB,EAAE,sBAAsB,EAC1C,OAAO,EAAE,+BAA+B,GAAG,uBAAuB,CAAC;CAC1E;AAED;;GAEG;AACH,MAAM,WAAW,uBAAuB;IAEpC;;OAEG;IACH,OAAO,IAAI,IAAI,CAAC;IAEhB;;;;;OAKG;IACH,MAAM,CAAC,OAAO,EAAE,+BAA+B,EAAE,MAAM,EAAE,UAAU,EAAE,aAAa,CAAC,EAAE,gBAAgB,GAAG,OAAO,CAAC;CACnH"}
@@ -1,6 +1,5 @@
1
1
  import { Injector, ComponentRef } from '@angular/core';
2
- import { FormControl } from '@angular/forms';
3
- import { StringDictionary } from '@jscrpt/common';
2
+ import { Dictionary, StringDictionary } from '@jscrpt/common';
4
3
  import { ErrorMessagesExtractor } from '../errorMessagesExtractor/errorMessagesExtractor.service';
5
4
  import { ValidationErrorRenderer, IsSubmittedOrDirtyFunc, ValidationErrorsRendererOptions, ValidationErrorRendererFactoryOptions, ValidationErrorsContainerComponent } from './validationErrorRenderer.interface';
6
5
  import { ValidationErrorsResult } from '../errorMessagesExtractor/errorMessagesExtractor.interface';
@@ -18,12 +17,11 @@ export declare class ValidationErrorRendererFactory {
18
17
  constructor(_errorMessagesExtractor: ErrorMessagesExtractor, options: ValidationErrorRendererFactoryOptions);
19
18
  /**
20
19
  * Creates new instance of ValidationErrorRenderer
21
- * @param control - Control that is being processed for errors
22
20
  * @param containerView - Class that stores view container for rendering errors
23
21
  * @param injector - Injector for obtaining dependencies
24
22
  * @param isSubmittedOrDirty - Function used for testing if control is submitted or dirty
25
23
  */
26
- create(control: FormControl, containerView: ValidationErrorsContainerView, injector: Injector, isSubmittedOrDirty: IsSubmittedOrDirtyFunc): ValidationErrorRenderer;
24
+ create(containerView: ValidationErrorsContainerView, injector: Injector, isSubmittedOrDirty: IsSubmittedOrDirtyFunc): ValidationErrorRenderer;
27
25
  static ɵfac: i0.ɵɵFactoryDeclaration<ValidationErrorRendererFactory, [null, { optional: true; }]>;
28
26
  static ɵprov: i0.ɵɵInjectableDeclaration<ValidationErrorRendererFactory>;
29
27
  }
@@ -32,7 +30,6 @@ export declare class ValidationErrorRendererFactory {
32
30
  */
33
31
  export declare class DefaultValidationErrorRenderer implements ValidationErrorRenderer {
34
32
  protected _errorMessagesExtractor: ErrorMessagesExtractor;
35
- protected _control: FormControl;
36
33
  protected _containerView: ValidationErrorsContainerView;
37
34
  protected _injector: Injector;
38
35
  protected _isSubmittedOrDirty: IsSubmittedOrDirtyFunc;
@@ -45,7 +42,7 @@ export declare class DefaultValidationErrorRenderer implements ValidationErrorRe
45
42
  * Component used as validation errors container
46
43
  */
47
44
  protected _container: ComponentRef<ValidationErrorsContainerComponent>;
48
- constructor(_errorMessagesExtractor: ErrorMessagesExtractor, _control: FormControl, _containerView: ValidationErrorsContainerView, _injector: Injector, _isSubmittedOrDirty: IsSubmittedOrDirtyFunc, _options: ValidationErrorsRendererOptions);
45
+ constructor(_errorMessagesExtractor: ErrorMessagesExtractor, _containerView: ValidationErrorsContainerView, _injector: Injector, _isSubmittedOrDirty: IsSubmittedOrDirtyFunc, _options: ValidationErrorsRendererOptions);
49
46
  /**
50
47
  * @inheritdoc
51
48
  */
@@ -53,7 +50,7 @@ export declare class DefaultValidationErrorRenderer implements ValidationErrorRe
53
50
  /**
54
51
  * @inheritdoc
55
52
  */
56
- update(options: ValidationErrorsRendererOptions, errorMessages?: StringDictionary): boolean;
53
+ update(options: ValidationErrorsRendererOptions, errors: Dictionary, errorMessages?: StringDictionary): boolean;
57
54
  /**
58
55
  * Initialize renderer
59
56
  */
@@ -1 +1 @@
1
- {"version":3,"file":"validationErrorRenderer.service.d.ts","sourceRoot":"","sources":["validationErrorRenderer.service.ts"],"names":[],"mappings":"AAAA,OAAO,EAA+B,QAAQ,EAAE,YAAY,EAAC,MAAM,eAAe,CAAC;AACnF,OAAO,EAAC,WAAW,EAAC,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAC,gBAAgB,EAAC,MAAM,gBAAgB,CAAC;AAGhD,OAAO,EAAC,sBAAsB,EAAC,MAAM,0DAA0D,CAAC;AAChG,OAAO,EAAC,uBAAuB,EAAE,sBAAsB,EAAE,+BAA+B,EAAE,qCAAqC,EAAE,kCAAkC,EAAC,MAAM,qCAAqC,CAAC;AAChN,OAAO,EAAC,sBAAsB,EAAC,MAAM,4DAA4D,CAAC;AAElG,OAAO,EAAC,6BAA6B,EAAC,MAAM,0CAA0C,CAAC;;AAGvF;;GAEG;AACH,qBACa,8BAA8B;IAU3B,SAAS,CAAC,uBAAuB,EAAE,sBAAsB;IANrE;;OAEG;IACH,SAAS,CAAC,QAAQ,EAAE,qCAAqC,CAAC;gBAGpC,uBAAuB,EAAE,sBAAsB,EACM,OAAO,EAAE,qCAAqC;IAOzH;;;;;;OAMG;IACI,MAAM,CAAC,OAAO,EAAE,WAAW,EACpB,aAAa,EAAE,6BAA6B,EAC5C,QAAQ,EAAE,QAAQ,EAClB,kBAAkB,EAAE,sBAAsB,GAAG,uBAAuB;yCA5BzE,8BAA8B;6CAA9B,8BAA8B;CAqC1C;AAED;;GAEG;AACH,qBAAa,8BAA+B,YAAW,uBAAuB;IAe9D,SAAS,CAAC,uBAAuB,EAAE,sBAAsB;IACzD,SAAS,CAAC,QAAQ,EAAE,WAAW;IAC/B,SAAS,CAAC,cAAc,EAAE,6BAA6B;IACvD,SAAS,CAAC,SAAS,EAAE,QAAQ;IAC7B,SAAS,CAAC,mBAAmB,EAAE,sBAAsB;IACrD,SAAS,CAAC,QAAQ,EAAE,+BAA+B;IAhB/D;;OAEG;IACH,SAAS,CAAC,WAAW,EAAE,sBAAsB,CAAC;IAE9C;;OAEG;IACH,SAAS,CAAC,UAAU,EAAE,YAAY,CAAC,kCAAkC,CAAC,CAAC;gBAGjD,uBAAuB,EAAE,sBAAsB,EAC/C,QAAQ,EAAE,WAAW,EACrB,cAAc,EAAE,6BAA6B,EAC7C,SAAS,EAAE,QAAQ,EACnB,mBAAmB,EAAE,sBAAsB,EAC3C,QAAQ,EAAE,+BAA+B;IAO/D;;OAEG;IACI,OAAO,IAAI,IAAI;IAMtB;;OAEG;IACI,MAAM,CAAC,OAAO,EAAE,+BAA+B,EAAE,aAAa,CAAC,EAAE,gBAAgB,GAAG,OAAO;IA+BlG;;OAEG;IACH,SAAS,CAAC,WAAW,IAAI,IAAI;CAKhC"}
1
+ {"version":3,"file":"validationErrorRenderer.service.d.ts","sourceRoot":"","sources":["validationErrorRenderer.service.ts"],"names":[],"mappings":"AAAA,OAAO,EAA+B,QAAQ,EAAE,YAAY,EAAC,MAAM,eAAe,CAAC;AACnF,OAAO,EAAC,UAAU,EAAE,gBAAgB,EAAC,MAAM,gBAAgB,CAAC;AAG5D,OAAO,EAAC,sBAAsB,EAAC,MAAM,0DAA0D,CAAC;AAChG,OAAO,EAAC,uBAAuB,EAAE,sBAAsB,EAAE,+BAA+B,EAAE,qCAAqC,EAAE,kCAAkC,EAAC,MAAM,qCAAqC,CAAC;AAChN,OAAO,EAAC,sBAAsB,EAAC,MAAM,4DAA4D,CAAC;AAElG,OAAO,EAAC,6BAA6B,EAAC,MAAM,0CAA0C,CAAC;;AAGvF;;GAEG;AACH,qBACa,8BAA8B;IAU3B,SAAS,CAAC,uBAAuB,EAAE,sBAAsB;IANrE;;OAEG;IACH,SAAS,CAAC,QAAQ,EAAE,qCAAqC,CAAC;gBAGpC,uBAAuB,EAAE,sBAAsB,EACM,OAAO,EAAE,qCAAqC;IAOzH;;;;;OAKG;IACI,MAAM,CAAC,aAAa,EAAE,6BAA6B,EAC5C,QAAQ,EAAE,QAAQ,EAClB,kBAAkB,EAAE,sBAAsB,GAAG,uBAAuB;yCA1BzE,8BAA8B;6CAA9B,8BAA8B;CAkC1C;AAED;;GAEG;AACH,qBAAa,8BAA+B,YAAW,uBAAuB;IAe9D,SAAS,CAAC,uBAAuB,EAAE,sBAAsB;IACzD,SAAS,CAAC,cAAc,EAAE,6BAA6B;IACvD,SAAS,CAAC,SAAS,EAAE,QAAQ;IAC7B,SAAS,CAAC,mBAAmB,EAAE,sBAAsB;IACrD,SAAS,CAAC,QAAQ,EAAE,+BAA+B;IAf/D;;OAEG;IACH,SAAS,CAAC,WAAW,EAAE,sBAAsB,CAAC;IAE9C;;OAEG;IACH,SAAS,CAAC,UAAU,EAAE,YAAY,CAAC,kCAAkC,CAAC,CAAC;gBAGjD,uBAAuB,EAAE,sBAAsB,EAC/C,cAAc,EAAE,6BAA6B,EAC7C,SAAS,EAAE,QAAQ,EACnB,mBAAmB,EAAE,sBAAsB,EAC3C,QAAQ,EAAE,+BAA+B;IAO/D;;OAEG;IACI,OAAO,IAAI,IAAI;IAMtB;;OAEG;IACI,MAAM,CAAC,OAAO,EAAE,+BAA+B,EAAE,MAAM,EAAE,UAAU,EAAE,aAAa,CAAC,EAAE,gBAAgB,GAAG,OAAO;IA+BtH;;OAEG;IACH,SAAS,CAAC,WAAW,IAAI,IAAI;CAKhC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@anglr/common",
3
- "version": "23.0.0",
3
+ "version": "24.0.0-beta.20260126065643",
4
4
  "description": "Angular module for common angular stuff",
5
5
  "type": "module",
6
6
  "sideEffects": false,
package/version.bak CHANGED
@@ -1 +1 @@
1
- 23.0.0
1
+ 24.0.0-beta.20260126065643