@anglr/common 24.1.0 → 24.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/changelog.md CHANGED
@@ -1,5 +1,11 @@
1
1
  # Changelog
2
2
 
3
+ ## Version 24.1.1 (2026-02-10)
4
+
5
+ - updated `HasError` directive
6
+ - now correctly sends data to `ValidationErrorData.args` for each validaton error
7
+
8
+
3
9
  ## Version 24.1.0 (2026-02-10)
4
10
 
5
11
  - updated `StringLocalization` interface
@@ -85,8 +85,7 @@ export class HasError {
85
85
  return {
86
86
  message: (error.message ? error.message : this.messages[error.kind]) ?? `No Message for ${error.kind}`,
87
87
  type: error.kind,
88
- //TODO: remove this or find way how to provide it
89
- args: {},
88
+ args: error,
90
89
  };
91
90
  });
92
91
  }
@@ -1 +1 @@
1
- {"version":3,"file":"hasError.directive.js","sourceRoot":"","sources":["../../../../../../../forms/src/features/hasError/directives/hasError/hasError.directive.ts"],"names":[],"mappings":"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","sourcesContent":["import {computed, Directive, effect, ElementRef, Inject, inject, Injector, input, InputSignal, Optional, runInInjectionContext, Signal, TemplateRef, ViewContainerRef} from '@angular/core';\nimport {FormField} from '@angular/forms/signals';\nimport {deepCopyWithArrayOverride} from '@jscrpt/common/lodash';\nimport {generateId, RecursivePartial, StringDictionary} from '@jscrpt/common';\n\nimport {InlineValidationErrorsContainerRenderer, SubmittedService, ValidationErrorsViewContainerRegister} from '../../services';\nimport {HasErrorOptions, ValidationErrorData, ValidationErrorsContainerRenderer, ValidationErrorsContainerRendererOptions, ValidationErrorsTemplateContext} from '../../interfaces';\nimport {ValidationError, ValidationErrorsContainer} from '../../components';\nimport {HAS_ERROR_OPTIONS} from '../../misc/tokens';\nimport {GroupHasError} from '../groupHasError/groupHasError.directive';\nimport {VALIDATION_ERROR_MESSAGES} from '../../../../misc/tokens';\n\nconst defaultOptions: HasErrorOptions =\n{\n validationErrorsContainerRendererType: InlineValidationErrorsContainerRenderer,\n validationErrorsContainerRendererOptions:\n {\n validationErrorsContainerType: ValidationErrorsContainer,\n validationErrorsContainerOptions:\n {\n cssClass: null,\n validationErrorTemplate: null,\n validationErrorType: ValidationError,\n validationErrorAnimateEnter: 'slide-in-animation',\n validationErrorAnimateLeave: 'slide-out',\n },\n },\n};\n\n/**\n * Directive that is attached to form field element and handles rendering of validation errors\n */\n@Directive(\n{\n selector: '[hasError][formField]',\n})\nexport class HasError<T>\n{\n //######################### protected fields #########################\n\n /**\n * Unique id for form field\n */\n protected id: string = generateId(10);\n\n /**\n * Instance of form field which errors are bound to this directive\n */\n protected formField: FormField<T> = inject(FormField);\n\n /**\n * Service used for indication whether form was submitted\n */\n protected submittedSvc: SubmittedService|undefined|null = inject(SubmittedService, {optional: true});\n\n /**\n * Instance of register for external view container\n */\n protected register: ValidationErrorsViewContainerRegister|undefined|null = inject(ValidationErrorsViewContainerRegister, {optional: true});\n\n /**\n * Instance of view container ref for this form field\n */\n protected viewContainer: ViewContainerRef = inject(ViewContainerRef);\n\n /**\n * Injector used for obtaining dependencies\n */\n protected injector: Injector = inject(Injector);\n\n /**\n * Instance of renderer used for rendering errors\n */\n protected renderer: ValidationErrorsContainerRenderer|undefined|null;\n\n /**\n * Object storing validation error messages\n */\n protected messages: StringDictionary|undefined|null = inject(VALIDATION_ERROR_MESSAGES, {optional: true});\n\n /**\n * Instance of element for which is this directive defined for\n */\n protected element: ElementRef<HTMLElement> = inject(ElementRef);\n\n /**\n * Parent group has error\n */\n protected groupHasError: GroupHasError|undefined|null = inject(GroupHasError, {optional: true});\n\n //######################### public properties - inputs #########################\n\n /**\n * Custom template for validation error\n */\n public validatioErrorTemplate: InputSignal<TemplateRef<ValidationErrorsTemplateContext>|undefined|null> = input();\n\n /**\n * Options for has error directive\n */\n public options: InputSignal<HasErrorOptions|undefined|null> = input();\n\n //######################### constructor #########################\n constructor(@Optional() @Inject(HAS_ERROR_OPTIONS) options: RecursivePartial<HasErrorOptions>|null,)\n {\n options = deepCopyWithArrayOverride({}, defaultOptions, options);\n\n const computedOptions: Signal<HasErrorOptions> = computed(() => ({...deepCopyWithArrayOverride(options, this.options())}));\n const rendererOptions: Signal<ValidationErrorsContainerRendererOptions> = computed(() => computedOptions().validationErrorsContainerRendererOptions);\n const viewContainerComputed: Signal<ViewContainerRef> = computed(() => this.register?.viewContainer() ?? this.viewContainer);\n const errors: Signal<ValidationErrorData[]> = computed(() =>\n {\n const state = this.formField.state();\n\n if((this.submittedSvc?.submitted() || state.dirty()) &&\n state.invalid())\n {\n return state.errorSummary().map(error =>\n {\n return <ValidationErrorData>{\n message: (error.message ? error.message : this.messages[error.kind]) ?? `No Message for ${error.kind}`,\n type: error.kind,\n //TODO: remove this or find way how to provide it\n args: {},\n };\n });\n }\n\n return [];\n });\n\n effect(() => errors().length ? this.groupHasError?.registerFormField(this.id) : this.groupHasError?.unregisterFormField(this.id));\n\n effect(() =>\n {\n const options = computedOptions();\n\n if(!(this.renderer instanceof options.validationErrorsContainerRendererType))\n {\n this.renderer = null;\n\n setTimeout(() =>\n {\n this.renderer = runInInjectionContext(this.injector, () => new options.validationErrorsContainerRendererType(errors,\n viewContainerComputed,\n this.element,\n rendererOptions));\n });\n }\n });\n }\n}\n"]}
1
+ {"version":3,"file":"hasError.directive.js","sourceRoot":"","sources":["../../../../../../../forms/src/features/hasError/directives/hasError/hasError.directive.ts"],"names":[],"mappings":"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","sourcesContent":["import {computed, Directive, effect, ElementRef, Inject, inject, Injector, input, InputSignal, Optional, runInInjectionContext, Signal, TemplateRef, ViewContainerRef} from '@angular/core';\nimport {FormField} from '@angular/forms/signals';\nimport {deepCopyWithArrayOverride} from '@jscrpt/common/lodash';\nimport {generateId, RecursivePartial, StringDictionary} from '@jscrpt/common';\n\nimport {InlineValidationErrorsContainerRenderer, SubmittedService, ValidationErrorsViewContainerRegister} from '../../services';\nimport {HasErrorOptions, ValidationErrorData, ValidationErrorsContainerRenderer, ValidationErrorsContainerRendererOptions, ValidationErrorsTemplateContext} from '../../interfaces';\nimport {ValidationError, ValidationErrorsContainer} from '../../components';\nimport {HAS_ERROR_OPTIONS} from '../../misc/tokens';\nimport {GroupHasError} from '../groupHasError/groupHasError.directive';\nimport {VALIDATION_ERROR_MESSAGES} from '../../../../misc/tokens';\n\nconst defaultOptions: HasErrorOptions =\n{\n validationErrorsContainerRendererType: InlineValidationErrorsContainerRenderer,\n validationErrorsContainerRendererOptions:\n {\n validationErrorsContainerType: ValidationErrorsContainer,\n validationErrorsContainerOptions:\n {\n cssClass: null,\n validationErrorTemplate: null,\n validationErrorType: ValidationError,\n validationErrorAnimateEnter: 'slide-in-animation',\n validationErrorAnimateLeave: 'slide-out',\n },\n },\n};\n\n/**\n * Directive that is attached to form field element and handles rendering of validation errors\n */\n@Directive(\n{\n selector: '[hasError][formField]',\n})\nexport class HasError<T>\n{\n //######################### protected fields #########################\n\n /**\n * Unique id for form field\n */\n protected id: string = generateId(10);\n\n /**\n * Instance of form field which errors are bound to this directive\n */\n protected formField: FormField<T> = inject(FormField);\n\n /**\n * Service used for indication whether form was submitted\n */\n protected submittedSvc: SubmittedService|undefined|null = inject(SubmittedService, {optional: true});\n\n /**\n * Instance of register for external view container\n */\n protected register: ValidationErrorsViewContainerRegister|undefined|null = inject(ValidationErrorsViewContainerRegister, {optional: true});\n\n /**\n * Instance of view container ref for this form field\n */\n protected viewContainer: ViewContainerRef = inject(ViewContainerRef);\n\n /**\n * Injector used for obtaining dependencies\n */\n protected injector: Injector = inject(Injector);\n\n /**\n * Instance of renderer used for rendering errors\n */\n protected renderer: ValidationErrorsContainerRenderer|undefined|null;\n\n /**\n * Object storing validation error messages\n */\n protected messages: StringDictionary|undefined|null = inject(VALIDATION_ERROR_MESSAGES, {optional: true});\n\n /**\n * Instance of element for which is this directive defined for\n */\n protected element: ElementRef<HTMLElement> = inject(ElementRef);\n\n /**\n * Parent group has error\n */\n protected groupHasError: GroupHasError|undefined|null = inject(GroupHasError, {optional: true});\n\n //######################### public properties - inputs #########################\n\n /**\n * Custom template for validation error\n */\n public validatioErrorTemplate: InputSignal<TemplateRef<ValidationErrorsTemplateContext>|undefined|null> = input();\n\n /**\n * Options for has error directive\n */\n public options: InputSignal<HasErrorOptions|undefined|null> = input();\n\n //######################### constructor #########################\n constructor(@Optional() @Inject(HAS_ERROR_OPTIONS) options: RecursivePartial<HasErrorOptions>|null,)\n {\n options = deepCopyWithArrayOverride({}, defaultOptions, options);\n\n const computedOptions: Signal<HasErrorOptions> = computed(() => ({...deepCopyWithArrayOverride(options, this.options())}));\n const rendererOptions: Signal<ValidationErrorsContainerRendererOptions> = computed(() => computedOptions().validationErrorsContainerRendererOptions);\n const viewContainerComputed: Signal<ViewContainerRef> = computed(() => this.register?.viewContainer() ?? this.viewContainer);\n const errors: Signal<ValidationErrorData[]> = computed(() =>\n {\n const state = this.formField.state();\n\n if((this.submittedSvc?.submitted() || state.dirty()) &&\n state.invalid())\n {\n return state.errorSummary().map(error =>\n {\n return <ValidationErrorData>{\n message: (error.message ? error.message : this.messages[error.kind]) ?? `No Message for ${error.kind}`,\n type: error.kind,\n args: error,\n };\n });\n }\n\n return [];\n });\n\n effect(() => errors().length ? this.groupHasError?.registerFormField(this.id) : this.groupHasError?.unregisterFormField(this.id));\n\n effect(() =>\n {\n const options = computedOptions();\n\n if(!(this.renderer instanceof options.validationErrorsContainerRendererType))\n {\n this.renderer = null;\n\n setTimeout(() =>\n {\n this.renderer = runInInjectionContext(this.injector, () => new options.validationErrorsContainerRendererType(errors,\n viewContainerComputed,\n this.element,\n rendererOptions));\n });\n }\n });\n }\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"hasError.directive.d.ts","sourceRoot":"","sources":["hasError.directive.ts"],"names":[],"mappings":"AAAA,OAAO,EAA8B,UAAU,EAAkB,QAAQ,EAAS,WAAW,EAA2C,WAAW,EAAE,gBAAgB,EAAC,MAAM,eAAe,CAAC;AAC5L,OAAO,EAAC,SAAS,EAAC,MAAM,wBAAwB,CAAC;AAEjD,OAAO,EAAa,gBAAgB,EAAE,gBAAgB,EAAC,MAAM,gBAAgB,CAAC;AAE9E,OAAO,EAA0C,gBAAgB,EAAE,qCAAqC,EAAC,MAAM,gBAAgB,CAAC;AAChI,OAAO,EAAC,eAAe,EAAuB,iCAAiC,EAA4C,+BAA+B,EAAC,MAAM,kBAAkB,CAAC;AAGpL,OAAO,EAAC,aAAa,EAAC,MAAM,0CAA0C,CAAC;;AAoBvE;;GAEG;AACH,qBAIa,QAAQ,CAAC,CAAC;IAInB;;OAEG;IACH,SAAS,CAAC,EAAE,EAAE,MAAM,CAAkB;IAEtC;;OAEG;IACH,SAAS,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC,CAAqB;IAEtD;;OAEG;IACH,SAAS,CAAC,YAAY,EAAE,gBAAgB,GAAC,SAAS,GAAC,IAAI,CAA8C;IAErG;;OAEG;IACH,SAAS,CAAC,QAAQ,EAAE,qCAAqC,GAAC,SAAS,GAAC,IAAI,CAAmE;IAE3I;;OAEG;IACH,SAAS,CAAC,aAAa,EAAE,gBAAgB,CAA4B;IAErE;;OAEG;IACH,SAAS,CAAC,QAAQ,EAAE,QAAQ,CAAoB;IAEhD;;OAEG;IACH,SAAS,CAAC,QAAQ,EAAE,iCAAiC,GAAC,SAAS,GAAC,IAAI,CAAC;IAErE;;OAEG;IACH,SAAS,CAAC,QAAQ,EAAE,gBAAgB,GAAC,SAAS,GAAC,IAAI,CAAuD;IAE1G;;OAEG;IACH,SAAS,CAAC,OAAO,EAAE,UAAU,CAAC,WAAW,CAAC,CAAsB;IAEhE;;OAEG;IACH,SAAS,CAAC,aAAa,EAAE,aAAa,GAAC,SAAS,GAAC,IAAI,CAA2C;IAIhG;;OAEG;IACI,sBAAsB,EAAE,WAAW,CAAC,WAAW,CAAC,+BAA+B,CAAC,GAAC,SAAS,GAAC,IAAI,CAAC,CAAW;IAElH;;OAEG;IACI,OAAO,EAAE,WAAW,CAAC,eAAe,GAAC,SAAS,GAAC,IAAI,CAAC,CAAW;gBAGnB,OAAO,EAAE,gBAAgB,CAAC,eAAe,CAAC,GAAC,IAAI;yCAnEzF,QAAQ;2CAAR,QAAQ;CAmHpB"}
1
+ {"version":3,"file":"hasError.directive.d.ts","sourceRoot":"","sources":["hasError.directive.ts"],"names":[],"mappings":"AAAA,OAAO,EAA8B,UAAU,EAAkB,QAAQ,EAAS,WAAW,EAA2C,WAAW,EAAE,gBAAgB,EAAC,MAAM,eAAe,CAAC;AAC5L,OAAO,EAAC,SAAS,EAAC,MAAM,wBAAwB,CAAC;AAEjD,OAAO,EAAa,gBAAgB,EAAE,gBAAgB,EAAC,MAAM,gBAAgB,CAAC;AAE9E,OAAO,EAA0C,gBAAgB,EAAE,qCAAqC,EAAC,MAAM,gBAAgB,CAAC;AAChI,OAAO,EAAC,eAAe,EAAuB,iCAAiC,EAA4C,+BAA+B,EAAC,MAAM,kBAAkB,CAAC;AAGpL,OAAO,EAAC,aAAa,EAAC,MAAM,0CAA0C,CAAC;;AAoBvE;;GAEG;AACH,qBAIa,QAAQ,CAAC,CAAC;IAInB;;OAEG;IACH,SAAS,CAAC,EAAE,EAAE,MAAM,CAAkB;IAEtC;;OAEG;IACH,SAAS,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC,CAAqB;IAEtD;;OAEG;IACH,SAAS,CAAC,YAAY,EAAE,gBAAgB,GAAC,SAAS,GAAC,IAAI,CAA8C;IAErG;;OAEG;IACH,SAAS,CAAC,QAAQ,EAAE,qCAAqC,GAAC,SAAS,GAAC,IAAI,CAAmE;IAE3I;;OAEG;IACH,SAAS,CAAC,aAAa,EAAE,gBAAgB,CAA4B;IAErE;;OAEG;IACH,SAAS,CAAC,QAAQ,EAAE,QAAQ,CAAoB;IAEhD;;OAEG;IACH,SAAS,CAAC,QAAQ,EAAE,iCAAiC,GAAC,SAAS,GAAC,IAAI,CAAC;IAErE;;OAEG;IACH,SAAS,CAAC,QAAQ,EAAE,gBAAgB,GAAC,SAAS,GAAC,IAAI,CAAuD;IAE1G;;OAEG;IACH,SAAS,CAAC,OAAO,EAAE,UAAU,CAAC,WAAW,CAAC,CAAsB;IAEhE;;OAEG;IACH,SAAS,CAAC,aAAa,EAAE,aAAa,GAAC,SAAS,GAAC,IAAI,CAA2C;IAIhG;;OAEG;IACI,sBAAsB,EAAE,WAAW,CAAC,WAAW,CAAC,+BAA+B,CAAC,GAAC,SAAS,GAAC,IAAI,CAAC,CAAW;IAElH;;OAEG;IACI,OAAO,EAAE,WAAW,CAAC,eAAe,GAAC,SAAS,GAAC,IAAI,CAAC,CAAW;gBAGnB,OAAO,EAAE,gBAAgB,CAAC,eAAe,CAAC,GAAC,IAAI;yCAnEzF,QAAQ;2CAAR,QAAQ;CAkHpB"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@anglr/common",
3
- "version": "24.1.0",
3
+ "version": "24.1.1",
4
4
  "description": "Angular module for common angular stuff",
5
5
  "type": "module",
6
6
  "sideEffects": false,
package/version.bak CHANGED
@@ -1 +1 @@
1
- 24.1.0
1
+ 24.1.1