@acorex/core 7.17.26 → 7.17.27

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 (111) hide show
  1. package/dateTime/index.d.ts +2 -0
  2. package/dateTime/lib/calendar.service.d.ts +6 -1
  3. package/dateTime/lib/datetime.class.d.ts +6 -5
  4. package/dateTime/lib/datetime.module.d.ts +0 -2
  5. package/dateTime/lib/datetime.pipe.d.ts +3 -0
  6. package/dateTime/lib/formatters/datetime-formatter.d.ts +19 -0
  7. package/dateTime/lib/formatters/timeleft-formatter.d.ts +16 -0
  8. package/esm2022/dateTime/index.mjs +3 -1
  9. package/esm2022/dateTime/lib/calendar.service.mjs +17 -9
  10. package/esm2022/dateTime/lib/dateTime.config.mjs +5 -28
  11. package/esm2022/dateTime/lib/datetime.class.mjs +66 -14
  12. package/esm2022/dateTime/lib/datetime.module.mjs +9 -11
  13. package/esm2022/dateTime/lib/datetime.pipe.mjs +5 -7
  14. package/esm2022/dateTime/lib/formatters/datetime-formatter.mjs +30 -0
  15. package/esm2022/dateTime/lib/formatters/timeleft-formatter.mjs +91 -0
  16. package/esm2022/file/lib/file-size-formatter.mjs +2 -2
  17. package/esm2022/file/lib/file.module.mjs +8 -10
  18. package/esm2022/format/index.mjs +3 -2
  19. package/esm2022/format/lib/format.config.mjs +3 -2
  20. package/esm2022/format/lib/format.module.mjs +22 -9
  21. package/esm2022/format/lib/format.pipe.mjs +5 -6
  22. package/esm2022/format/lib/format.service.mjs +57 -12
  23. package/esm2022/format/lib/format.types.mjs +2 -0
  24. package/esm2022/format/lib/formatters/number-formatter.mjs +75 -0
  25. package/esm2022/translation/index.mjs +7 -2
  26. package/esm2022/translation/lib/translation-scope.resolver.mjs +11 -0
  27. package/esm2022/translation/lib/translation.config.mjs +20 -0
  28. package/esm2022/translation/lib/translation.loader.mjs +14 -0
  29. package/esm2022/translation/lib/translation.module.mjs +29 -7
  30. package/esm2022/translation/lib/translation.service.mjs +105 -0
  31. package/esm2022/translation/lib/translation.types.mjs +2 -0
  32. package/esm2022/translation/lib/translator.directive.mjs +28 -0
  33. package/esm2022/translation/lib/translator.pipe.mjs +33 -7
  34. package/esm2022/validation/index.mjs +2 -2
  35. package/esm2022/validation/lib/rules/between-rule.mjs +8 -1
  36. package/esm2022/validation/lib/rules/callback-rule.mjs +8 -1
  37. package/esm2022/validation/lib/rules/equal-rule.mjs +8 -1
  38. package/esm2022/validation/lib/rules/greater-than.mjs +8 -1
  39. package/esm2022/validation/lib/rules/length-rule.mjs +9 -1
  40. package/esm2022/validation/lib/rules/less-than-rule.mjs +8 -1
  41. package/esm2022/validation/lib/rules/maxlength-rule.mjs +8 -1
  42. package/esm2022/validation/lib/rules/minlength-rule.mjs +8 -1
  43. package/esm2022/validation/lib/rules/regex-rule.mjs +13 -2
  44. package/esm2022/validation/lib/rules/required-rule.mjs +13 -3
  45. package/esm2022/validation/lib/validation.config.mjs +3 -4
  46. package/esm2022/validation/lib/validation.module.mjs +38 -12
  47. package/esm2022/validation/lib/validation.service.mjs +30 -16
  48. package/esm2022/validation/lib/validation.types.mjs +3 -0
  49. package/fesm2022/acorex-core-dateTime.mjs +110 -68
  50. package/fesm2022/acorex-core-dateTime.mjs.map +1 -1
  51. package/fesm2022/acorex-core-file.mjs +8 -9
  52. package/fesm2022/acorex-core-file.mjs.map +1 -1
  53. package/fesm2022/acorex-core-format.mjs +147 -55
  54. package/fesm2022/acorex-core-format.mjs.map +1 -1
  55. package/fesm2022/acorex-core-translation.mjs +212 -45
  56. package/fesm2022/acorex-core-translation.mjs.map +1 -1
  57. package/fesm2022/acorex-core-validation.mjs +131 -32
  58. package/fesm2022/acorex-core-validation.mjs.map +1 -1
  59. package/file/lib/file-size-formatter.d.ts +10 -2
  60. package/file/lib/file.module.d.ts +2 -3
  61. package/format/index.d.ts +2 -1
  62. package/format/lib/format.config.d.ts +4 -3
  63. package/format/lib/format.module.d.ts +9 -3
  64. package/format/lib/format.pipe.d.ts +2 -1
  65. package/format/lib/format.service.d.ts +26 -2
  66. package/format/lib/format.types.d.ts +4 -0
  67. package/format/lib/formatters/number-formatter.d.ts +23 -0
  68. package/package.json +1 -7
  69. package/translation/index.d.ts +6 -1
  70. package/translation/lib/translation-scope.resolver.d.ts +2 -0
  71. package/translation/lib/translation.config.d.ts +14 -0
  72. package/translation/lib/translation.loader.d.ts +14 -0
  73. package/translation/lib/translation.module.d.ts +2 -1
  74. package/translation/lib/translation.service.d.ts +26 -0
  75. package/translation/lib/translation.types.d.ts +10 -0
  76. package/translation/lib/translator.directive.d.ts +12 -0
  77. package/translation/lib/translator.pipe.d.ts +12 -4
  78. package/validation/index.d.ts +1 -1
  79. package/validation/lib/rules/between-rule.d.ts +5 -2
  80. package/validation/lib/rules/callback-rule.d.ts +5 -2
  81. package/validation/lib/rules/equal-rule.d.ts +5 -2
  82. package/validation/lib/rules/greater-than.d.ts +5 -2
  83. package/validation/lib/rules/length-rule.d.ts +5 -2
  84. package/validation/lib/rules/less-than-rule.d.ts +5 -2
  85. package/validation/lib/rules/maxlength-rule.d.ts +5 -2
  86. package/validation/lib/rules/minlength-rule.d.ts +5 -2
  87. package/validation/lib/rules/regex-rule.d.ts +6 -2
  88. package/validation/lib/rules/required-rule.d.ts +6 -2
  89. package/validation/lib/validation.config.d.ts +3 -3
  90. package/validation/lib/validation.module.d.ts +10 -4
  91. package/validation/lib/validation.service.d.ts +8 -3
  92. package/validation/lib/{validation.d.ts → validation.types.d.ts} +3 -3
  93. package/dateTime/lib/datetime-formatter.d.ts +0 -15
  94. package/esm2022/dateTime/lib/datetime-formatter.mjs +0 -109
  95. package/esm2022/format/lib/number-formatter.mjs +0 -16
  96. package/esm2022/format/lib/string-formatter.mjs +0 -26
  97. package/esm2022/intl/acorex-core-intl.mjs +0 -5
  98. package/esm2022/intl/index.mjs +0 -3
  99. package/esm2022/intl/lib/numbers/number-format-options.mjs +0 -10
  100. package/esm2022/intl/lib/numbers/numbers-utils.mjs +0 -39
  101. package/esm2022/translation/lib/translator.mjs +0 -42
  102. package/esm2022/validation/lib/validation.mjs +0 -2
  103. package/fesm2022/acorex-core-intl.mjs +0 -54
  104. package/fesm2022/acorex-core-intl.mjs.map +0 -1
  105. package/format/lib/number-formatter.d.ts +0 -5
  106. package/format/lib/string-formatter.d.ts +0 -5
  107. package/intl/README.md +0 -3
  108. package/intl/index.d.ts +0 -2
  109. package/intl/lib/numbers/number-format-options.d.ts +0 -7
  110. package/intl/lib/numbers/numbers-utils.d.ts +0 -3
  111. package/translation/lib/translator.d.ts +0 -11
@@ -1 +1 @@
1
- {"version":3,"file":"acorex-core-translation.mjs","sources":["../../../../libs/core/translation/src/lib/translator.ts","../../../../libs/core/translation/src/lib/translator.pipe.ts","../../../../libs/core/translation/src/lib/translation.module.ts","../../../../libs/core/translation/src/acorex-core-translation.ts"],"sourcesContent":["import { get, merge } from 'lodash-es';\nimport { Observable, Subject } from 'rxjs';\n\n// @dynamic\nexport class AXTranslator {\n private static lang = 'en';\n private static dataChangeSubject = new Subject<any>();\n private static _varsRegx = /((\\$\\{[a-zA-Z_0-9\\.]+\\})+)/gm;\n private static _varNameRegx = /[a-zA-Z_0-9\\.]+/gm;\n\n static get onChange(): Observable<any> {\n return AXTranslator.dataChangeSubject.asObservable();\n }\n\n public static load(lang: string, value: any) {\n if (typeof value === 'object') {\n if (!AXTranslator[`__data__${lang}`]) {\n AXTranslator[`__data__${lang}`] = {};\n }\n AXTranslator[`__data__${lang}`] = merge(AXTranslator[`__data__${lang}`], value);\n }\n }\n\n public static use(lang: string) {\n AXTranslator.lang = lang;\n }\n\n public static get(key: string, arg1?: object | string, arg2?: object): string {\n const lang = arg1 && typeof arg1 == 'string' ? arg1 : AXTranslator.lang;\n const params = arg1 && typeof arg1 == 'object' ? arg1 : arg2;\n let result = get(AXTranslator[`__data__${lang}`], key, key);\n const vars = typeof result == 'string' ? result?.match(this._varsRegx) : [];\n if (vars?.length) {\n vars.forEach((v: any) => {\n const varKey = v.match(this._varNameRegx)?.length ? v.match(this._varNameRegx)[0] : null;\n if (varKey) {\n const p = get(params, varKey) || this.get(varKey, lang);\n if (p) {\n result = result.replace(v, p);\n }\n }\n });\n }\n return typeof result == 'string' ? result : JSON.stringify(result);\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { AXTranslator } from './translator';\n\n@Pipe({ name: 'trans', pure: true })\nexport class AXTranslatorPipe implements PipeTransform {\n transform(value: string, arg1?: object | string, arg2?: object): string {\n return AXTranslator.get(value, arg1, arg2);\n }\n}\n","import { NgModule } from '@angular/core';\nimport { AXTranslatorPipe } from './translator.pipe';\n\n@NgModule({\n imports: [],\n exports: [AXTranslatorPipe],\n declarations: [AXTranslatorPipe],\n providers: [],\n})\nexport class AXTranslationModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"acorex-core-translation.mjs","sources":["../../../../libs/core/translation/src/lib/translation.config.ts","../../../../libs/core/translation/src/lib/translation.loader.ts","../../../../libs/core/translation/src/lib/translation.service.ts","../../../../libs/core/translation/src/lib/translator.pipe.ts","../../../../libs/core/translation/src/lib/translator.directive.ts","../../../../libs/core/translation/src/lib/translation.module.ts","../../../../libs/core/translation/src/lib/translation-scope.resolver.ts","../../../../libs/core/translation/src/acorex-core-translation.ts"],"sourcesContent":["import { InjectionToken } from \"@angular/core\";\nimport { AXTranslateLang, AXTranslateScope } from \"./translation.types\";\n\n\n\nexport interface AXTranslationConfig {\n defaultLang: AXTranslateLang,\n defaultScope: AXTranslateScope,\n preloadLangs?: AXTranslateLang[],\n preloadScopes?: AXTranslateLang[],\n availableLangs?: AXTranslateLang[],\n scopeResolverKey: string\n}\n\nexport const AX_TRANSLATION_CONFIG = new InjectionToken<AXTranslationConfig>('AX_TRANSLATION_CONFIG', {\n providedIn: 'root',\n factory: () => {\n return AXTranslationDefaultConfig;\n },\n});\n\nexport const AXTranslationDefaultConfig: AXTranslationConfig = {\n defaultLang: 'en',\n defaultScope: 'common',\n scopeResolverKey: 'scope',\n};\n\nexport type AXPartialTranslationConfig = Partial<AXTranslationConfig>;\n\nexport function translationConfig(config: AXPartialTranslationConfig = {}): AXTranslationConfig {\n const result = {\n ...AXTranslationDefaultConfig,\n ...config,\n };\n return result;\n}\n","import { InjectionToken } from \"@angular/core\";\nimport { AXTranslateLang, AXTranslateScope, AXTranslation } from \"./translation.types\";\nimport { Observable, of } from \"rxjs\";\n\nexport interface AXTranslationLoaderOptions {\n lang: AXTranslateLang,\n scope?: AXTranslateScope;\n}\n\n\nexport interface AXTranslationLoader {\n getTranslation(options: AXTranslationLoaderOptions): Observable<AXTranslation>;\n}\n\n\nexport class AXTranslationLoaderDefault implements AXTranslationLoader {\n getTranslation(options: AXTranslationLoaderOptions): Observable<AXTranslation> {\n return of({});\n }\n}\n\n\nexport const AX_TRANSLATION_LOADER = new InjectionToken<AXTranslationLoader>('AX_TRANSLATION_LOADER', {\n providedIn: 'root',\n factory: () => {\n return new AXTranslationLoaderDefault();\n },\n});","import { Injectable, inject } from '@angular/core';\nimport { BehaviorSubject, Observable, catchError, forkJoin, map, of, switchMap, tap } from 'rxjs';\nimport { AXTranslateHashMap, AXTranslateOptions, AXTranslateParams } from './translation.types';\nimport { AX_TRANSLATION_LOADER } from './translation.loader';\nimport { set as lodashSet, get as lodashGet } from 'lodash-es';\nimport { AX_TRANSLATION_CONFIG } from './translation.config';\n\nlet service: AXTranslationService;\n\n\nexport function translateSync(key: string, options?: AXTranslateOptions): string {\n return service.translateSync(key, options);\n}\n\n\n@Injectable({ providedIn: 'root' })\nexport class AXTranslationService {\n\n private loader = inject(AX_TRANSLATION_LOADER)\n private config = inject(AX_TRANSLATION_CONFIG)\n\n private translationCache: AXTranslateHashMap<AXTranslateHashMap<string>> = {};\n\n private activeLang: BehaviorSubject<string> = new BehaviorSubject<string>(this.getDefaultLang());\n langChanges$: Observable<string> = this.activeLang.asObservable();\n\n\n /**\n * @ignore\n */\n constructor() {\n service = this;\n }\n\n\n public loadLanguagesAndScopes(languages: string[], scopes: string[]): Observable<unknown> {\n const requests = languages.flatMap(lang =>\n scopes.map(scope => {\n if (this.translationCache[lang]?.[scope]) {\n return of(this.translationCache[lang][scope]);\n }\n return this.loader.getTranslation({ lang, scope }).pipe(\n tap(translations => this.cacheTranslations(lang, scope, translations)),\n catchError(error => {\n console.error(`Error loading translations for lang: ${lang}, scope: ${scope}`, error);\n return of(null); // You can return 'null' or any other fallback value\n })\n );\n })\n );\n\n return forkJoin(...requests);\n }\n\n private cacheTranslations(lang: string, scope: string, translations: AXTranslateHashMap<string>): void {\n lodashSet(this.translationCache, `${lang}.${scope}`, translations);\n }\n\n public getDefaultLang(): string {\n return this.config.defaultLang;\n }\n\n public getActiveLang(): string {\n return this.activeLang.getValue();\n }\n\n public setActiveLang(lang: string): void {\n this.activeLang.next(lang);\n }\n\n\n\n private load(key: string, options: AXTranslateOptions = {}): Observable<string> {\n const { lang = this.getActiveLang(), scope = this.config.defaultScope } = options;\n\n const fetchTranslation = (language: string): Observable<string> => {\n // Check if translations are available in the cache\n if (this.translationCache[language]?.[scope]) {\n return of(this.getTranslation(key, language, scope, options.params));\n }\n\n // Load translations for the language and scope\n return this.loadLanguagesAndScopes([language], [scope]).pipe(\n map(() => {\n const translation = this.translationCache[language]?.[scope]?.[key] || key;\n return this.getTranslation(translation, language, scope, options.params);\n }),\n switchMap(translatedText => {\n if (translatedText === key && language !== this.getDefaultLang()) {\n // If the translation is not found and the language is not default,\n // try fetching from the default language\n return fetchTranslation(this.getDefaultLang());\n }\n return of(translatedText);\n })\n );\n };\n\n // Return the translation or initiate fetching process\n return fetchTranslation(lang);\n }\n\n private getTranslation(key: string, lang: string, scope: string, params?: AXTranslateParams): string {\n let translation: string = (lodashGet(this.translationCache, `${lang}.${scope}.${key}`) || key) as string\n\n // Replace params like {{ name }}\n if (params) {\n Object.keys(params).forEach(paramKey => {\n const paramValue = params[paramKey] as string;\n translation = translation.replace(new RegExp(`{{\\\\s*${paramKey}\\\\s*}}`, 'g'), paramValue);\n });\n }\n\n // Replace translations like {{ t('key') }}\n const translationPattern = /{{\\s*t\\('([^']+)'\\)\\s*}}/g;\n translation = translation.replace(translationPattern, (match, innerKey) => {\n return this.getTranslation(innerKey, lang, scope, params);\n });\n\n return translation;\n }\n\n public translate(key: string, options?: AXTranslateOptions): Observable<string> {\n if (options?.lang) {\n return this.load(key, options)\n }\n return this.langChanges$.pipe(\n switchMap((lang) => {\n return this.load(key, { ...options, lang: lang })\n })\n );\n }\n\n public translateSync(key: string, options?: AXTranslateOptions): string {\n const { lang = this.getActiveLang(), scope = this.config.defaultScope } = options || {};\n return this.getTranslation(key, lang, scope, options?.params);\n }\n}\n","import { ChangeDetectorRef, OnDestroy, Pipe, PipeTransform, inject } from '@angular/core';\nimport { AXTranslationService } from './translation.service';\nimport { Subscription } from 'rxjs';\nimport { AXTranslateOptions } from './translation.types';\n\n\n\n@Pipe({ name: 'translate', pure: false })\nexport class AXTranslatorPipe implements PipeTransform, OnDestroy {\n\n private service = inject(AXTranslationService);\n private cdr = inject(ChangeDetectorRef);\n\n private value: string = '';\n private lastKey: string | null = null;\n private subscription: Subscription | null = null;\n\n transform(key: string, options?: AXTranslateOptions): string {\n if (!key || key === this.lastKey) {\n return this.value;\n }\n this.lastKey = key;\n this.value = key;\n this.dispose();\n this.subscription = this.service.translate(key, options).subscribe(translatedValue => {\n this.value = translatedValue;\n this.cdr.markForCheck();\n });\n return this.value;\n }\n\n ngOnDestroy() {\n this.dispose();\n }\n\n private dispose() {\n if (this.subscription) {\n this.subscription.unsubscribe();\n this.subscription = null;\n }\n }\n}\n","import { Directive, Input, OnChanges, OnDestroy, OnInit, SimpleChanges, TemplateRef, ViewContainerRef, inject } from \"@angular/core\";\nimport { AXTranslationService } from \"./translation.service\";\nimport { AXTranslateOptions } from \"./translation.types\";\n\n@Directive({\n selector: '[translate]',\n})\nexport class AXTranslatorDirective implements OnInit {\n\n constructor(\n private templateRef: TemplateRef<any>,\n private viewContainer: ViewContainerRef,\n private translationService: AXTranslationService\n ) { }\n\n ngOnInit() {\n this.viewContainer.clear();\n this.viewContainer.createEmbeddedView(this.templateRef, {\n $implicit: (key: string, options?: AXTranslateOptions) => {\n return this.translationService.translate(key, options)\n }\n });\n }\n}","import { APP_INITIALIZER, NgModule } from '@angular/core';\nimport { AXTranslatorPipe } from './translator.pipe';\nimport { AXTranslatorDirective } from './translator.directive';\nimport { AXTranslationService } from './translation.service';\nimport { Observable } from 'rxjs';\nimport { AXTranslationConfig, AX_TRANSLATION_CONFIG } from './translation.config';\n\n\nfunction initializeApp(translatorService: AXTranslationService, config: AXTranslationConfig) {\n return (): Observable<any> => {\n return translatorService.loadLanguagesAndScopes(\n config.preloadLangs ?? [config.defaultLang],\n config.preloadScopes ?? [config.defaultScope])\n };\n}\n\n@NgModule({\n imports: [],\n exports: [AXTranslatorPipe, AXTranslatorDirective],\n declarations: [AXTranslatorPipe, AXTranslatorDirective],\n providers: [\n {\n provide: APP_INITIALIZER,\n useFactory: initializeApp,\n deps: [AXTranslationService, AX_TRANSLATION_CONFIG],\n multi: true\n }\n ],\n})\nexport class AXTranslationModule { }\n","import { inject } from \"@angular/core\";\nimport { AXTranslationService } from \"./translation.service\";\nimport { ResolveFn } from \"@angular/router\";\nimport { AX_TRANSLATION_CONFIG } from \"./translation.config\";\n\nexport const loadTranslationScope: ResolveFn<unknown> = (route, state) => {\n const translatorService = inject(AXTranslationService);\n const config = inject(AX_TRANSLATION_CONFIG);\n const scopeValue = route.data[config.scopeResolverKey];\n const scopes = Array.isArray(scopeValue) ? scopeValue : [scopeValue];\n return translatorService.loadLanguagesAndScopes([translatorService.getActiveLang()], scopes);\n};","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["lodashSet","lodashGet","i1.AXTranslationService"],"mappings":"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"}
@@ -1,9 +1,16 @@
1
- import { isString, isEmpty, isNull, isUndefined, isNumber, isArray, find, isEqual } from 'lodash-es';
2
- import { AXTranslator } from '@acorex/core/translation';
1
+ import { isString, isEmpty, isNull, isUndefined, isNumber, isArray, find, isEqual, merge } from 'lodash-es';
3
2
  import * as i0 from '@angular/core';
4
- import { InjectionToken, inject, Injectable, APP_INITIALIZER, NgModule } from '@angular/core';
3
+ import { inject, Injectable, InjectionToken, Injector, APP_INITIALIZER, NgModule } from '@angular/core';
4
+ import * as i1 from '@acorex/core/translation';
5
+ import { AXTranslationService } from '@acorex/core/translation';
6
+
7
+ class AXValidationRule {
8
+ }
5
9
 
6
10
  class AXRegexValidationRule {
11
+ constructor() {
12
+ this.traslationService = inject(AXTranslationService);
13
+ }
7
14
  get name() {
8
15
  return 'regex';
9
16
  }
@@ -30,13 +37,21 @@ class AXRegexValidationRule {
30
37
  return {
31
38
  rule: this.name,
32
39
  result: isValid,
33
- message: isValid ? '' : options?.message ?? `The value does not match the pattern ${regexPattern}.`,
40
+ message: isValid ? '' : this.traslationService.translateSync(options?.message ?? `The value does not match the pattern ${regexPattern}.`, { params: { title: options?.['title'] } }),
34
41
  value: value
35
42
  };
36
43
  }
44
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.8", ngImport: i0, type: AXRegexValidationRule, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
45
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.0.8", ngImport: i0, type: AXRegexValidationRule }); }
37
46
  }
47
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.8", ngImport: i0, type: AXRegexValidationRule, decorators: [{
48
+ type: Injectable
49
+ }] });
38
50
 
39
51
  class AXRequiredValidationRule {
52
+ constructor() {
53
+ this.traslationService = inject(AXTranslationService);
54
+ }
40
55
  get name() {
41
56
  return 'required';
42
57
  }
@@ -49,7 +64,7 @@ class AXRequiredValidationRule {
49
64
  ];
50
65
  const failedRule = find(rules, rule => rule.test(value));
51
66
  const isValid = !failedRule;
52
- const message = failedRule ? options?.message ?? AXTranslator.get("validation.messages.required", { name: options?.['title'] ?? options?.['name'] }) : null;
67
+ const message = failedRule ? options?.message ?? this.traslationService.translateSync("validation.messages.required", { params: { title: options?.['title'] } }) : null;
53
68
  return {
54
69
  rule: this.name,
55
70
  result: isValid,
@@ -57,7 +72,12 @@ class AXRequiredValidationRule {
57
72
  value
58
73
  };
59
74
  }
75
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.8", ngImport: i0, type: AXRequiredValidationRule, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
76
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.0.8", ngImport: i0, type: AXRequiredValidationRule }); }
60
77
  }
78
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.8", ngImport: i0, type: AXRequiredValidationRule, decorators: [{
79
+ type: Injectable
80
+ }] });
61
81
 
62
82
  class AXCallbackValidationRule {
63
83
  get name() {
@@ -76,7 +96,12 @@ class AXCallbackValidationRule {
76
96
  }
77
97
  return createResult(validationResult);
78
98
  }
99
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.8", ngImport: i0, type: AXCallbackValidationRule, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
100
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.0.8", ngImport: i0, type: AXCallbackValidationRule }); }
79
101
  }
102
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.8", ngImport: i0, type: AXCallbackValidationRule, decorators: [{
103
+ type: Injectable
104
+ }] });
80
105
 
81
106
  class AXMinLengthValidationRule {
82
107
  get name() {
@@ -91,7 +116,12 @@ class AXMinLengthValidationRule {
91
116
  value: value
92
117
  };
93
118
  }
119
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.8", ngImport: i0, type: AXMinLengthValidationRule, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
120
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.0.8", ngImport: i0, type: AXMinLengthValidationRule }); }
94
121
  }
122
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.8", ngImport: i0, type: AXMinLengthValidationRule, decorators: [{
123
+ type: Injectable
124
+ }] });
95
125
 
96
126
  // ax-max-length-validation-rule.ts
97
127
  class AXMaxLengthValidationRule {
@@ -107,8 +137,14 @@ class AXMaxLengthValidationRule {
107
137
  value: value
108
138
  };
109
139
  }
140
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.8", ngImport: i0, type: AXMaxLengthValidationRule, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
141
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.0.8", ngImport: i0, type: AXMaxLengthValidationRule }); }
110
142
  }
143
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.8", ngImport: i0, type: AXMaxLengthValidationRule, decorators: [{
144
+ type: Injectable
145
+ }] });
111
146
 
147
+ // ax-max-length-validation-rule.ts
112
148
  class AXLengthValidationRule {
113
149
  get name() {
114
150
  return 'length';
@@ -122,7 +158,12 @@ class AXLengthValidationRule {
122
158
  value: value
123
159
  };
124
160
  }
161
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.8", ngImport: i0, type: AXLengthValidationRule, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
162
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.0.8", ngImport: i0, type: AXLengthValidationRule }); }
125
163
  }
164
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.8", ngImport: i0, type: AXLengthValidationRule, decorators: [{
165
+ type: Injectable
166
+ }] });
126
167
 
127
168
  // ax-equal-validation-rule.ts
128
169
  class AXEqualValidationRule {
@@ -140,7 +181,12 @@ class AXEqualValidationRule {
140
181
  value: value
141
182
  };
142
183
  }
184
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.8", ngImport: i0, type: AXEqualValidationRule, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
185
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.0.8", ngImport: i0, type: AXEqualValidationRule }); }
143
186
  }
187
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.8", ngImport: i0, type: AXEqualValidationRule, decorators: [{
188
+ type: Injectable
189
+ }] });
144
190
 
145
191
  // ax-less-than-validation-rule.ts
146
192
  class AXLessThanValidationRule {
@@ -157,7 +203,12 @@ class AXLessThanValidationRule {
157
203
  value: value
158
204
  };
159
205
  }
206
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.8", ngImport: i0, type: AXLessThanValidationRule, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
207
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.0.8", ngImport: i0, type: AXLessThanValidationRule }); }
160
208
  }
209
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.8", ngImport: i0, type: AXLessThanValidationRule, decorators: [{
210
+ type: Injectable
211
+ }] });
161
212
 
162
213
  // ax-greater-than-validation-rule.ts
163
214
  class AXGreaterThanValidationRule {
@@ -174,7 +225,12 @@ class AXGreaterThanValidationRule {
174
225
  value: value
175
226
  };
176
227
  }
228
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.8", ngImport: i0, type: AXGreaterThanValidationRule, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
229
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.0.8", ngImport: i0, type: AXGreaterThanValidationRule }); }
177
230
  }
231
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.8", ngImport: i0, type: AXGreaterThanValidationRule, decorators: [{
232
+ type: Injectable
233
+ }] });
178
234
 
179
235
  class AXBetweenValidationRule {
180
236
  get name() {
@@ -197,7 +253,12 @@ class AXBetweenValidationRule {
197
253
  value: value
198
254
  };
199
255
  }
256
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.8", ngImport: i0, type: AXBetweenValidationRule, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
257
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.0.8", ngImport: i0, type: AXBetweenValidationRule }); }
200
258
  }
259
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.8", ngImport: i0, type: AXBetweenValidationRule, decorators: [{
260
+ type: Injectable
261
+ }] });
201
262
 
202
263
  const AX_VALIDATION_CONFIG = new InjectionToken('AX_VALIDATION_CONFIG', {
203
264
  providedIn: 'root',
@@ -211,14 +272,14 @@ const AXValidationDefaultConfig = {
211
272
  rule: 'regex',
212
273
  options: {
213
274
  pattern: /^(([^<>()[\]\\.,;:\s@"]+(\.[^<>()[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/,
214
- message: AXTranslator.get('validation.messages.email'),
275
+ message: 'validation.messages.email',
215
276
  }
216
277
  },
217
278
  phone: {
218
279
  rule: 'regex',
219
280
  options: {
220
281
  pattern: /^[+]*[(]{0,1}[0-9]{1,4}[)]{0,1}[-\s\./0-9]*$/,
221
- message: AXTranslator.get('validation.messages.phone'),
282
+ message: 'validation.messages.phone',
222
283
  }
223
284
  },
224
285
  },
@@ -232,20 +293,27 @@ function validationConfig(config = {}) {
232
293
  }
233
294
 
234
295
  class AXValidationRegistryService {
235
- constructor() {
236
- this.plugins = [];
237
- this.configs = inject(AX_VALIDATION_CONFIG);
238
- }
239
296
  get customRules() {
240
297
  return this.configs.rules;
241
298
  }
242
- register(...plugin) {
243
- this.plugins.push(...plugin.filter(p => !this.plugins.some(c => c.name == p.name)));
299
+ constructor(injector) {
300
+ this.plugins = [];
301
+ this.configs = inject(AX_VALIDATION_CONFIG);
302
+ this.injector = injector;
303
+ }
304
+ register(...plugins) {
305
+ plugins.forEach(t => {
306
+ const childInjector = Injector.create({ providers: [{ provide: t, useClass: t, deps: [] }], parent: this.injector });
307
+ const v = childInjector.get(t);
308
+ if (v && !this.plugins.some(p => p.name == v.name)) {
309
+ this.plugins.push(v);
310
+ }
311
+ });
244
312
  }
245
313
  get(ruleName) {
246
314
  return this.plugins.find((c) => c.name == ruleName);
247
315
  }
248
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.8", ngImport: i0, type: AXValidationRegistryService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
316
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.8", ngImport: i0, type: AXValidationRegistryService, deps: [{ token: i0.Injector }], target: i0.ɵɵFactoryTarget.Injectable }); }
249
317
  static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.0.8", ngImport: i0, type: AXValidationRegistryService, providedIn: 'root' }); }
250
318
  }
251
319
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.8", ngImport: i0, type: AXValidationRegistryService, decorators: [{
@@ -253,10 +321,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.8", ngImpor
253
321
  args: [{
254
322
  providedIn: 'root'
255
323
  }]
256
- }] });
324
+ }], ctorParameters: () => [{ type: i0.Injector }] });
257
325
  class AXValidationService {
258
- constructor(pluginRegistry) {
326
+ constructor(pluginRegistry, translationService) {
259
327
  this.pluginRegistry = pluginRegistry;
328
+ this.translationService = translationService;
260
329
  }
261
330
  validate(ruleName, value, options) {
262
331
  const customRule = this.pluginRegistry.customRules[ruleName];
@@ -265,26 +334,30 @@ class AXValidationService {
265
334
  return {
266
335
  rule: ruleName,
267
336
  result: false,
268
- message: AXTranslator.get('validation.messages.invalid-rull-name', { name: ruleName }),
337
+ message: this.translationService.translateSync('validation.messages.invalid-rull-name', { params: { name: ruleName } }),
269
338
  value
270
339
  };
271
340
  }
341
+ if (options?.message) {
342
+ options.message = this.translationService.translateSync(options.message);
343
+ }
344
+ //
272
345
  if (validator)
273
346
  return validator.validate(value, options);
274
347
  else {
275
- return this.validate(customRule.rule, value, customRule.options);
348
+ return this.validate(customRule.rule, value, merge(options, customRule.options));
276
349
  }
277
350
  }
278
351
  ruleFor(value) {
279
352
  return new AXValidationRuleChain(this, value);
280
353
  }
281
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.8", ngImport: i0, type: AXValidationService, deps: [{ token: AXValidationRegistryService }], target: i0.ɵɵFactoryTarget.Injectable }); }
354
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.8", ngImport: i0, type: AXValidationService, deps: [{ token: AXValidationRegistryService }, { token: i1.AXTranslationService }], target: i0.ɵɵFactoryTarget.Injectable }); }
282
355
  static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.0.8", ngImport: i0, type: AXValidationService, providedIn: 'root' }); }
283
356
  }
284
357
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.8", ngImport: i0, type: AXValidationService, decorators: [{
285
358
  type: Injectable,
286
359
  args: [{ providedIn: 'root' }]
287
- }], ctorParameters: () => [{ type: AXValidationRegistryService }] });
360
+ }], ctorParameters: () => [{ type: AXValidationRegistryService }, { type: i1.AXTranslationService }] });
288
361
  class AXValidationRuleChain {
289
362
  constructor(validationService, initialValue) {
290
363
  this.validationService = validationService;
@@ -308,38 +381,64 @@ class AXValidationRuleChain {
308
381
  }
309
382
  }
310
383
 
384
+ const BUILT_IN_RULES = [
385
+ AXRequiredValidationRule,
386
+ AXRegexValidationRule,
387
+ AXRequiredValidationRule,
388
+ AXCallbackValidationRule,
389
+ //
390
+ AXMinLengthValidationRule,
391
+ AXMaxLengthValidationRule,
392
+ AXLengthValidationRule,
393
+ //
394
+ AXEqualValidationRule,
395
+ AXLessThanValidationRule,
396
+ AXGreaterThanValidationRule,
397
+ AXBetweenValidationRule
398
+ ];
311
399
  class AXValidationModule {
312
- static forRoot(config) {
400
+ static forRoot(configs) {
313
401
  return {
314
402
  ngModule: AXValidationModule,
315
403
  providers: [
404
+ ...(configs?.rules || []),
316
405
  {
317
406
  provide: APP_INITIALIZER,
318
- useFactory: (pluginRegistry) => () => {
319
- if (config?.validators?.length)
320
- pluginRegistry.register(...config.validators);
321
- },
407
+ useFactory: (pluginRegistry) => () => pluginRegistry.register(...[...BUILT_IN_RULES, ...(configs?.rules || [])]),
322
408
  deps: [AXValidationRegistryService],
323
409
  multi: true
324
410
  }
325
411
  ]
326
412
  };
327
413
  }
414
+ static forChild(configs) {
415
+ AXValidationModule.registry.register(...[...BUILT_IN_RULES, ...(configs?.rules || [])]);
416
+ return {
417
+ ngModule: AXValidationModule,
418
+ providers: [
419
+ ...(configs?.rules || [])
420
+ ]
421
+ };
422
+ }
423
+ /**
424
+ * @ignore
425
+ */
328
426
  constructor(pluginRegistry) {
329
- pluginRegistry.register(new AXRegexValidationRule(), new AXRequiredValidationRule(), new AXCallbackValidationRule(),
330
- //
331
- new AXMinLengthValidationRule(), new AXMaxLengthValidationRule(), new AXLengthValidationRule(),
332
- //
333
- new AXEqualValidationRule(), new AXLessThanValidationRule(), new AXGreaterThanValidationRule(), new AXBetweenValidationRule());
427
+ AXValidationModule.registry = pluginRegistry;
334
428
  }
335
429
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.8", ngImport: i0, type: AXValidationModule, deps: [{ token: AXValidationRegistryService }], target: i0.ɵɵFactoryTarget.NgModule }); }
336
430
  static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.0.8", ngImport: i0, type: AXValidationModule }); }
337
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.0.8", ngImport: i0, type: AXValidationModule }); }
431
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.0.8", ngImport: i0, type: AXValidationModule, providers: [
432
+ ...BUILT_IN_RULES
433
+ ] }); }
338
434
  }
339
435
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.8", ngImport: i0, type: AXValidationModule, decorators: [{
340
436
  type: NgModule,
341
437
  args: [{
342
438
  imports: [],
439
+ providers: [
440
+ ...BUILT_IN_RULES
441
+ ]
343
442
  }]
344
443
  }], ctorParameters: () => [{ type: AXValidationRegistryService }] });
345
444
 
@@ -347,5 +446,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.8", ngImpor
347
446
  * Generated bundle index. Do not edit.
348
447
  */
349
448
 
350
- export { AXBetweenValidationRule, AXCallbackValidationRule, AXEqualValidationRule, AXGreaterThanValidationRule, AXLengthValidationRule, AXLessThanValidationRule, AXMaxLengthValidationRule, AXMinLengthValidationRule, AXRegexValidationRule, AXRequiredValidationRule, AXValidationModule, AXValidationRegistryService, AXValidationService };
449
+ export { AXBetweenValidationRule, AXCallbackValidationRule, AXEqualValidationRule, AXGreaterThanValidationRule, AXLengthValidationRule, AXLessThanValidationRule, AXMaxLengthValidationRule, AXMinLengthValidationRule, AXRegexValidationRule, AXRequiredValidationRule, AXValidationModule, AXValidationRegistryService, AXValidationRule, AXValidationService };
351
450
  //# sourceMappingURL=acorex-core-validation.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"acorex-core-validation.mjs","sources":["../../../../libs/core/validation/src/lib/rules/regex-rule.ts","../../../../libs/core/validation/src/lib/rules/required-rule.ts","../../../../libs/core/validation/src/lib/rules/callback-rule.ts","../../../../libs/core/validation/src/lib/rules/minlength-rule.ts","../../../../libs/core/validation/src/lib/rules/maxlength-rule.ts","../../../../libs/core/validation/src/lib/rules/length-rule.ts","../../../../libs/core/validation/src/lib/rules/equal-rule.ts","../../../../libs/core/validation/src/lib/rules/less-than-rule.ts","../../../../libs/core/validation/src/lib/rules/greater-than.ts","../../../../libs/core/validation/src/lib/rules/between-rule.ts","../../../../libs/core/validation/src/lib/validation.config.ts","../../../../libs/core/validation/src/lib/validation.service.ts","../../../../libs/core/validation/src/lib/validation.module.ts","../../../../libs/core/validation/src/acorex-core-validation.ts"],"sourcesContent":["import { isEmpty, isString } from \"lodash-es\";\nimport { AXValidationRule, AXValidationRuleOptions, AXValidationRuleResult } from \"../validation\";\n\n\nexport interface AXRegexValidationRuleOptions extends AXValidationRuleOptions {\n pattern: string | RegExp;\n}\n\n// Augment the AXValidationRuleOptionsMap\ndeclare module '../validation' {\n interface AXValidationRuleOptionsMap {\n 'regex': AXRegexValidationRuleOptions;\n }\n}\n\nexport class AXRegexValidationRule implements AXValidationRule {\n\n get name(): string {\n return 'regex';\n }\n\n validate(value: string, options: AXRegexValidationRuleOptions): AXValidationRuleResult {\n // Convert string pattern to RegExp if necessary\n const regexPattern = typeof options.pattern === 'string' ? new RegExp(options.pattern) : options.pattern;\n\n if (!value || (isString(value) && isEmpty(value.trim()))) {\n return {\n rule: this.name,\n result: true,\n message: null,\n value: value\n };\n }\n else if (!isString(value)) {\n return {\n rule: this.name,\n result: false,\n message: `${value} is not string value.`,\n value: value\n };\n }\n\n const isValid = regexPattern.test(value);\n return {\n rule: this.name,\n result: isValid,\n message: isValid ? '' : options?.message ?? `The value does not match the pattern ${regexPattern}.`,\n value: value\n };\n }\n\n}","import { find, isArray, isEmpty, isNull, isNumber, isString, isUndefined } from \"lodash-es\";\nimport { AXValidationRule, AXValidationRuleOptions, AXValidationRuleResult } from \"../validation\";\nimport { AXTranslator } from \"@acorex/core/translation\";\n\n\nexport interface AXRequiredValidationRuleOptions extends AXValidationRuleOptions {\n}\n\n// Augment the AXValidationRuleOptionsMap\ndeclare module '../validation' {\n interface AXValidationRuleOptionsMap {\n 'required': AXRequiredValidationRuleOptions;\n }\n}\n\nexport class AXRequiredValidationRule implements AXValidationRule {\n\n get name(): string {\n return 'required';\n }\n\n validate(value?: unknown, options?: AXRequiredValidationRuleOptions): AXValidationRuleResult {\n const rules = [\n { test: val => isNull(val) || isUndefined(val) },\n { test: val => isString(val) && isEmpty(val.trim()) },\n { test: val => isNumber(val) && isNaN(val) },\n { test: val => isArray(val) && isEmpty(val) }\n ];\n\n const failedRule = find(rules, rule => rule.test(value));\n const isValid = !failedRule;\n const message = failedRule ? options?.message ?? AXTranslator.get(\"validation.messages.required\", { name: options?.['title'] ?? options?.['name'] }) : null;\n\n return {\n rule: this.name,\n result: isValid,\n message: message,\n value\n };\n }\n}","import { AXValidationRule, AXValidationRuleOptions, AXValidationRuleResult } from \"../validation\";\n\nexport type AXCallbackValidation<T> = (value: T, options?: AXCallbackValidationRuleOptions<T>) => Promise<{ result: boolean, message?: string }> | { result: boolean, message?: string };\n\nexport interface AXCallbackValidationRuleOptions<T> extends AXValidationRuleOptions {\n validate: AXCallbackValidation<T>\n}\n\n// Augment the AXValidationRuleOptionsMap\ndeclare module '../validation' {\n interface AXValidationRuleOptionsMap {\n 'callback': AXCallbackValidationRuleOptions<unknown>;\n }\n}\n\nexport class AXCallbackValidationRule<T> implements AXValidationRule {\n\n get name(): string {\n return 'callback';\n }\n\n validate(value: T, options: AXCallbackValidationRuleOptions<T>): AXValidationRuleResult | Promise<AXValidationRuleResult> {\n const validationResult = options?.validate(value, options) || { result: false, message: \"Invalid callback function\" };\n const createResult = (result: { result: boolean, message?: string }) => ({\n rule: this.name,\n result: result.result,\n message: result.message ?? options?.message ?? '',\n value: value\n });\n\n if (validationResult instanceof Promise) {\n return validationResult.then(createResult);\n }\n\n return createResult(validationResult);\n }\n}","import { isEmpty } from \"lodash-es\";\nimport { AXValidationRule, AXValidationRuleOptions, AXValidationRuleResult } from \"../validation\";\n\nexport interface AXMinLengthValidationRuleOptions extends AXValidationRuleOptions {\n value: number;\n}\n\ndeclare module '../validation' {\n interface AXValidationRuleOptionsMap {\n 'minLength': AXMinLengthValidationRuleOptions;\n }\n}\n\nexport class AXMinLengthValidationRule implements AXValidationRule {\n get name(): string {\n return 'minLength';\n }\n\n validate(value: string, options: AXMinLengthValidationRuleOptions): AXValidationRuleResult {\n const isValid = isEmpty(value) ? true : (value?.length >= options.value);\n return {\n rule: this.name,\n result: isValid,\n message: isValid ? '' : options?.message ?? `The value must be at least ${options.value} characters long.`,\n value: value\n };\n }\n}","// ax-max-length-validation-rule.ts\nimport { isEmpty } from \"lodash-es\";\nimport { AXValidationRule, AXValidationRuleOptions, AXValidationRuleResult } from \"../validation\";\n\nexport interface AXMaxLengthValidationRuleOptions extends AXValidationRuleOptions {\n value: number;\n}\n\ndeclare module '../validation' {\n interface AXValidationRuleOptionsMap {\n 'maxLength': AXMaxLengthValidationRuleOptions;\n }\n}\n\nexport class AXMaxLengthValidationRule implements AXValidationRule {\n get name(): string {\n return 'maxLength';\n }\n\n validate(value: string, options: AXMaxLengthValidationRuleOptions): AXValidationRuleResult {\n const isValid = isEmpty(value) ? true : (value?.length <= options.value);\n return {\n rule: this.name,\n result: isValid,\n message: isValid ? '' : options?.message ?? `The value must not exceed ${options.value} characters.`,\n value: value\n };\n }\n}\n","// ax-max-length-validation-rule.ts\nimport { AXValidationRule, AXValidationRuleOptions, AXValidationRuleResult } from \"../validation\";\n\nexport interface AXLengthValidationRuleOptions extends AXValidationRuleOptions {\n min: number;\n max: number;\n}\n\ndeclare module '../validation' {\n interface AXValidationRuleOptionsMap {\n 'length': AXLengthValidationRuleOptions;\n }\n}\n\nexport class AXLengthValidationRule implements AXValidationRule {\n get name(): string {\n return 'length';\n }\n\n validate(value: string, options: AXLengthValidationRuleOptions): AXValidationRuleResult {\n const isValid = value?.length >= options.min && value?.length <= options.max;\n return {\n rule: this.name,\n result: isValid,\n message: isValid ? null : options?.message ?? `The value must be between ${options.min} and ${options.max} chars`,\n value: value\n };\n }\n}\n","// ax-equal-validation-rule.ts\nimport { isEqual } from \"lodash-es\";\nimport { AXValidationRule, AXValidationRuleOptions, AXValidationRuleResult } from \"../validation\";\n\nexport interface AXEqualValidationRuleOptions extends AXValidationRuleOptions {\n value: any;\n not?: boolean; // Optional flag to invert the validation logic\n}\n\ndeclare module '../validation' {\n interface AXValidationRuleOptionsMap {\n 'equal': AXEqualValidationRuleOptions;\n }\n}\n\nexport class AXEqualValidationRule implements AXValidationRule {\n get name(): string {\n return 'equal';\n }\n\n validate(value: any, options: AXEqualValidationRuleOptions): AXValidationRuleResult {\n const isValueEqual = isEqual(value, options.value);\n const isValid = options.not ? !isValueEqual : isValueEqual;\n\n const defaultMessage = `The value must ${options.not ? 'not ' : ''}be equal to ${options.value}.`;\n return {\n rule: this.name,\n result: isValid,\n message: isValid ? '' : options?.message ?? defaultMessage,\n value: value\n };\n }\n}\n","// ax-less-than-validation-rule.ts\nimport { isNull, isUndefined } from \"lodash-es\";\nimport { AXValidationRule, AXValidationRuleOptions, AXValidationRuleResult } from \"../validation\";\n\nexport interface AXLessThanValidationRuleOptions extends AXValidationRuleOptions {\n value: number;\n inclusive?: boolean; // Optional flag for inclusiveness\n}\n\ndeclare module '../validation' {\n interface AXValidationRuleOptionsMap {\n 'lessThan': AXLessThanValidationRuleOptions;\n }\n}\n\nexport class AXLessThanValidationRule implements AXValidationRule {\n get name(): string {\n return 'lessThan';\n }\n\n validate(value: number, options: AXLessThanValidationRuleOptions): AXValidationRuleResult {\n const isValid = (isNull(value) || isUndefined(value)) ? true : (options.inclusive ? value <= options.value : value < options.value);\n const baseMessage = `The value must be ${options.inclusive ? 'less than or equal to' : 'less than'} ${options.value}.`;\n\n return {\n rule: this.name,\n result: isValid,\n message: isValid ? '' : options?.message ?? baseMessage,\n value: value\n };\n }\n}\n","// ax-greater-than-validation-rule.ts\nimport { isNull, isUndefined } from \"lodash-es\";\nimport { AXValidationRule, AXValidationRuleOptions, AXValidationRuleResult } from \"../validation\";\n\nexport interface AXGreaterThanValidationRuleOptions extends AXValidationRuleOptions {\n value: number;\n inclusive?: boolean; // Optional flag for inclusiveness\n}\n\ndeclare module '../validation' {\n interface AXValidationRuleOptionsMap {\n 'greaterThan': AXGreaterThanValidationRuleOptions;\n }\n}\n\nexport class AXGreaterThanValidationRule implements AXValidationRule {\n get name(): string {\n return 'greaterThan';\n }\n\n validate(value: number, options: AXGreaterThanValidationRuleOptions): AXValidationRuleResult {\n const isValid = (isNull(value) || isUndefined(value)) ? true : (options.inclusive ? value >= options.value : value > options.value);\n const baseMessage = `The value must be ${options.inclusive ? 'greater than or equal to' : 'greater than'} ${options.value}.`;\n\n return {\n rule: this.name,\n result: isValid,\n message: isValid ? '' : options?.message ?? baseMessage,\n value: value\n };\n }\n}\n","import { isEmpty } from \"lodash-es\";\nimport { AXValidationRule, AXValidationRuleOptions, AXValidationRuleResult } from \"../validation\";\n\nexport interface AXBetweenValidationRuleOptions<T = number | Date> extends AXValidationRuleOptions {\n lowerValue: T;\n upperValue: T;\n inclusive?: boolean; // Optional flag for inclusiveness\n}\n\ndeclare module '../validation' {\n interface AXValidationRuleOptionsMap {\n 'between': AXBetweenValidationRuleOptions;\n }\n}\n\nexport class AXBetweenValidationRule<T = number | Date> implements AXValidationRule {\n get name(): string {\n return 'between';\n }\n\n validate(value: T, options: AXBetweenValidationRuleOptions<T>): AXValidationRuleResult {\n let isValid;\n if (options.inclusive) {\n isValid = value >= options.lowerValue && value <= options.upperValue;\n } else {\n isValid = value > options.lowerValue && value < options.upperValue;\n }\n\n const rangeType = options.inclusive ? 'inclusive' : 'exclusive';\n const baseMessage = `The value must be within the ${rangeType} range of ${options.lowerValue} to ${options.upperValue}.`;\n\n return {\n rule: this.name,\n result: isValid || isEmpty(value),\n message: isValid ? '' : options?.message ?? baseMessage,\n value: value\n };\n }\n}","import { AXTranslator } from '@acorex/core/translation';\nimport { InjectionToken } from '@angular/core';\nimport { AXValidationRuleOptions, AXValidationRuleOptionsMap } from './validation';\n\nexport type AXValidationConfigRules = {\n [key: string]: {\n rule: keyof AXValidationRuleOptionsMap;\n options: AXValidationRuleOptions\n };\n}\n\nexport interface AXValidationConfig {\n rules: AXValidationConfigRules;\n}\n\nexport const AX_VALIDATION_CONFIG = new InjectionToken<AXValidationConfig>('AX_VALIDATION_CONFIG', {\n providedIn: 'root',\n factory: () => {\n return AXValidationDefaultConfig;\n },\n});\n\nexport const AXValidationDefaultConfig: AXValidationConfig = {\n rules: {\n email: {\n rule: 'regex',\n options: {\n pattern:\n /^(([^<>()[\\]\\\\.,;:\\s@\"]+(\\.[^<>()[\\]\\\\.,;:\\s@\"]+)*)|(\".+\"))@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\])|(([a-zA-Z\\-0-9]+\\.)+[a-zA-Z]{2,}))$/,\n message: AXTranslator.get('validation.messages.email'),\n }\n },\n phone: {\n rule: 'regex',\n options: {\n pattern: /^[+]*[(]{0,1}[0-9]{1,4}[)]{0,1}[-\\s\\./0-9]*$/,\n message: AXTranslator.get('validation.messages.phone'),\n }\n },\n },\n};\n\nexport type PartialFormConfig = Partial<AXValidationConfig>;\n\nexport function validationConfig(config: PartialFormConfig = {}): AXValidationConfig {\n const result = {\n ...AXValidationDefaultConfig,\n ...config,\n };\n return result;\n}\n","import { Injectable, inject } from \"@angular/core\";\nimport { AXValidationRule, AXValidationRuleOptions, AXValidationRuleOptionsMap, AXValidationRuleResult, AXValidationSummary } from \"./validation\";\nimport { AXTranslator } from \"@acorex/core/translation\";\nimport { AXValidationConfigRules, AX_VALIDATION_CONFIG } from \"./validation.config\";\n\n@Injectable({\n providedIn: 'root'\n})\nexport class AXValidationRegistryService {\n private plugins: AXValidationRule[] = [];\n\n private configs = inject(AX_VALIDATION_CONFIG);\n\n public get customRules(): AXValidationConfigRules {\n return this.configs.rules;\n }\n\n register(...plugin: AXValidationRule[]) {\n this.plugins.push(...plugin.filter(p => !this.plugins.some(c => c.name == p.name)));\n }\n\n get(ruleName: string): AXValidationRule | undefined {\n return this.plugins.find((c) => c.name == ruleName)\n }\n}\n\n@Injectable({ providedIn: 'root' })\nexport class AXValidationService {\n constructor(\n private pluginRegistry: AXValidationRegistryService,\n\n ) { }\n\n validate(ruleName: string, value: unknown, options?: AXValidationRuleOptions): AXValidationRuleResult | Promise<AXValidationRuleResult> {\n const customRule = this.pluginRegistry.customRules[ruleName];\n const validator = this.pluginRegistry.get(ruleName);\n if (!validator && !customRule) {\n return {\n rule: ruleName,\n result: false,\n message: AXTranslator.get('validation.messages.invalid-rull-name', { name: ruleName }),\n value\n };\n }\n if (validator)\n return validator.validate(value, options);\n else {\n\n return this.validate(customRule.rule, value, customRule.options);\n }\n\n }\n\n\n ruleFor(value: unknown): AXValidationRuleChain {\n return new AXValidationRuleChain(this, value);\n }\n}\n\nclass AXValidationRuleChain {\n private rules: { name: string, options?: AXValidationRuleOptions }[] = [];\n private validationSummary: AXValidationSummary = { result: true, rules: [] };\n\n constructor(private validationService: AXValidationService, private initialValue: unknown) { }\n\n addRule<K extends keyof AXValidationRuleOptionsMap>(name: K, options?: AXValidationRuleOptionsMap[K]): AXValidationRuleChain {\n this.rules.push({ name, options });\n return this;\n }\n\n async validate(): Promise<AXValidationSummary> {\n for (const rule of this.rules) {\n const result = await this.validationService.validate(rule.name, this.initialValue, rule.options);\n this.validationSummary.rules.push(result);\n if (!result.result) {\n this.validationSummary.result = false;\n }\n }\n return this.validationSummary;\n }\n}\n","import { APP_INITIALIZER, ModuleWithProviders, NgModule } from '@angular/core';\nimport { AXValidationRegistryService } from './validation.service';\nimport { AXValidationRule } from './validation';\nimport { AXRegexValidationRule } from './rules/regex-rule';\nimport { AXRequiredValidationRule } from './rules/required-rule';\nimport { AXCallbackValidationRule } from './rules/callback-rule';\nimport { AXMinLengthValidationRule } from './rules/minlength-rule';\nimport { AXMaxLengthValidationRule } from './rules/maxlength-rule';\nimport { AXLengthValidationRule } from './rules/length-rule';\nimport { AXEqualValidationRule } from './rules/equal-rule';\nimport { AXLessThanValidationRule } from './rules/less-than-rule';\nimport { AXGreaterThanValidationRule } from './rules/greater-than';\nimport { AXBetweenValidationRule } from './rules/between-rule';\n\n\n@NgModule({\n imports: [],\n})\nexport class AXValidationModule {\n\n static forRoot(config?: { validators?: AXValidationRule[] }): ModuleWithProviders<AXValidationModule> {\n return {\n ngModule: AXValidationModule,\n providers: [\n {\n provide: APP_INITIALIZER,\n useFactory: (pluginRegistry: AXValidationRegistryService) => () => {\n if (config?.validators?.length)\n pluginRegistry.register(...config.validators);\n },\n deps: [AXValidationRegistryService],\n multi: true\n }\n ]\n };\n }\n\n constructor(pluginRegistry: AXValidationRegistryService) {\n pluginRegistry.register(\n new AXRegexValidationRule(),\n new AXRequiredValidationRule(),\n new AXCallbackValidationRule(),\n //\n new AXMinLengthValidationRule(),\n new AXMaxLengthValidationRule(),\n new AXLengthValidationRule(),\n //\n new AXEqualValidationRule(),\n new AXLessThanValidationRule(),\n new AXGreaterThanValidationRule(),\n new AXBetweenValidationRule()\n )\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1.AXValidationRegistryService"],"mappings":"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"}
1
+ {"version":3,"file":"acorex-core-validation.mjs","sources":["../../../../libs/core/validation/src/lib/validation.types.ts","../../../../libs/core/validation/src/lib/rules/regex-rule.ts","../../../../libs/core/validation/src/lib/rules/required-rule.ts","../../../../libs/core/validation/src/lib/rules/callback-rule.ts","../../../../libs/core/validation/src/lib/rules/minlength-rule.ts","../../../../libs/core/validation/src/lib/rules/maxlength-rule.ts","../../../../libs/core/validation/src/lib/rules/length-rule.ts","../../../../libs/core/validation/src/lib/rules/equal-rule.ts","../../../../libs/core/validation/src/lib/rules/less-than-rule.ts","../../../../libs/core/validation/src/lib/rules/greater-than.ts","../../../../libs/core/validation/src/lib/rules/between-rule.ts","../../../../libs/core/validation/src/lib/validation.config.ts","../../../../libs/core/validation/src/lib/validation.service.ts","../../../../libs/core/validation/src/lib/validation.module.ts","../../../../libs/core/validation/src/acorex-core-validation.ts"],"sourcesContent":["export interface AXValidationRuleOptions {\n message?: string\n [key: string]: unknown\n}\n\n\nexport interface AXValidationRuleOptionsMap {\n // initially empty, but will be extended by other modules\n}\n\n\nexport abstract class AXValidationRule {\n abstract get name(): string;\n abstract validate(value: unknown, options?: AXValidationRuleOptions): AXValidationRuleResult | Promise<AXValidationRuleResult>;\n}\n\nexport interface AXValidationRuleResult {\n rule: string;\n value?: unknown;\n message?: string | null;\n result: boolean;\n [key: string]: unknown\n}\n\nexport interface AXValidationSummary {\n result: boolean;\n rules: AXValidationRuleResult[]\n}\n","import { isEmpty, isString } from \"lodash-es\";\nimport { AXValidationRule, AXValidationRuleOptions, AXValidationRuleResult } from \"../validation.types\";\nimport { Injectable, inject } from \"@angular/core\";\nimport { AXTranslationService } from \"@acorex/core/translation\";\n\n\nexport interface AXRegexValidationRuleOptions extends AXValidationRuleOptions {\n pattern: string | RegExp;\n}\n\n// Augment the AXValidationRuleOptionsMap\ndeclare module '../validation.types' {\n interface AXValidationRuleOptionsMap {\n 'regex': AXRegexValidationRuleOptions;\n }\n}\n\n@Injectable()\nexport class AXRegexValidationRule implements AXValidationRule {\n\n private traslationService = inject(AXTranslationService);\n\n get name(): string {\n return 'regex';\n }\n\n validate(value: string, options: AXRegexValidationRuleOptions): AXValidationRuleResult {\n // Convert string pattern to RegExp if necessary\n const regexPattern = typeof options.pattern === 'string' ? new RegExp(options.pattern) : options.pattern;\n\n if (!value || (isString(value) && isEmpty(value.trim()))) {\n return {\n rule: this.name,\n result: true,\n message: null,\n value: value\n };\n }\n else if (!isString(value)) {\n return {\n rule: this.name,\n result: false,\n message: `${value} is not string value.`,\n value: value\n };\n }\n\n const isValid = regexPattern.test(value);\n return {\n rule: this.name,\n result: isValid,\n message: isValid ? '' : this.traslationService.translateSync(options?.message ?? `The value does not match the pattern ${regexPattern}.`, { params: { title: options?.['title'] } }),\n value: value\n };\n }\n\n}","import { find, isArray, isEmpty, isNull, isNumber, isString, isUndefined } from \"lodash-es\";\nimport { AXValidationRule, AXValidationRuleOptions, AXValidationRuleResult } from \"../validation.types\";\nimport { Injectable, inject } from \"@angular/core\";\nimport { AXTranslationService } from \"@acorex/core/translation\";\n\n\nexport interface AXRequiredValidationRuleOptions extends AXValidationRuleOptions {\n}\n\n// Augment the AXValidationRuleOptionsMap\ndeclare module '../validation.types' {\n interface AXValidationRuleOptionsMap {\n 'required': AXRequiredValidationRuleOptions;\n }\n}\n\n@Injectable()\nexport class AXRequiredValidationRule implements AXValidationRule {\n\n private traslationService = inject(AXTranslationService);\n\n get name(): string {\n return 'required';\n }\n\n validate(value?: unknown, options?: AXRequiredValidationRuleOptions): AXValidationRuleResult {\n const rules = [\n { test: val => isNull(val) || isUndefined(val) },\n { test: val => isString(val) && isEmpty(val.trim()) },\n { test: val => isNumber(val) && isNaN(val) },\n { test: val => isArray(val) && isEmpty(val) }\n ];\n\n const failedRule = find(rules, rule => rule.test(value));\n const isValid = !failedRule;\n const message = failedRule ? options?.message ?? this.traslationService.translateSync(\"validation.messages.required\", { params: { title: options?.['title'] } }) : null;\n\n return {\n rule: this.name,\n result: isValid,\n message: message,\n value\n };\n }\n}","import { Injectable } from \"@angular/core\";\nimport { AXValidationRule, AXValidationRuleOptions, AXValidationRuleResult } from \"../validation.types\";\n\nexport type AXCallbackValidation<T> = (value: T, options?: AXCallbackValidationRuleOptions<T>) => Promise<{ result: boolean, message?: string }> | { result: boolean, message?: string };\n\nexport interface AXCallbackValidationRuleOptions<T> extends AXValidationRuleOptions {\n validate: AXCallbackValidation<T>\n}\n\n// Augment the AXValidationRuleOptionsMap\ndeclare module '../validation.types' {\n interface AXValidationRuleOptionsMap {\n 'callback': AXCallbackValidationRuleOptions<unknown>;\n }\n}\n\n@Injectable()\nexport class AXCallbackValidationRule<T> implements AXValidationRule {\n\n get name(): string {\n return 'callback';\n }\n\n validate(value: T, options: AXCallbackValidationRuleOptions<T>): AXValidationRuleResult | Promise<AXValidationRuleResult> {\n const validationResult = options?.validate(value, options) || { result: false, message: \"Invalid callback function\" };\n const createResult = (result: { result: boolean, message?: string }) => ({\n rule: this.name,\n result: result.result,\n message: result.message ?? options?.message ?? '',\n value: value\n });\n\n if (validationResult instanceof Promise) {\n return validationResult.then(createResult);\n }\n\n return createResult(validationResult);\n }\n}","import { isEmpty } from \"lodash-es\";\nimport { AXValidationRule, AXValidationRuleOptions, AXValidationRuleResult } from \"../validation.types\";\nimport { Injectable } from \"@angular/core\";\n\nexport interface AXMinLengthValidationRuleOptions extends AXValidationRuleOptions {\n value: number;\n}\n\ndeclare module '../validation.types' {\n interface AXValidationRuleOptionsMap {\n 'minLength': AXMinLengthValidationRuleOptions;\n }\n}\n\n\n@Injectable()\nexport class AXMinLengthValidationRule implements AXValidationRule {\n get name(): string {\n return 'minLength';\n }\n\n validate(value: string, options: AXMinLengthValidationRuleOptions): AXValidationRuleResult {\n const isValid = isEmpty(value) ? true : (value?.length >= options.value);\n return {\n rule: this.name,\n result: isValid,\n message: isValid ? '' : options?.message ?? `The value must be at least ${options.value} characters long.`,\n value: value\n };\n }\n}","// ax-max-length-validation-rule.ts\nimport { isEmpty } from \"lodash-es\";\nimport { AXValidationRule, AXValidationRuleOptions, AXValidationRuleResult } from \"../validation.types\";\nimport { Injectable } from \"@angular/core\";\n\nexport interface AXMaxLengthValidationRuleOptions extends AXValidationRuleOptions {\n value: number;\n}\n\ndeclare module '../validation.types' {\n interface AXValidationRuleOptionsMap {\n 'maxLength': AXMaxLengthValidationRuleOptions;\n }\n}\n\n\n@Injectable()\nexport class AXMaxLengthValidationRule implements AXValidationRule {\n get name(): string {\n return 'maxLength';\n }\n\n validate(value: string, options: AXMaxLengthValidationRuleOptions): AXValidationRuleResult {\n const isValid = isEmpty(value) ? true : (value?.length <= options.value);\n return {\n rule: this.name,\n result: isValid,\n message: isValid ? '' : options?.message ?? `The value must not exceed ${options.value} characters.`,\n value: value\n };\n }\n}\n","// ax-max-length-validation-rule.ts\nimport { Injectable } from \"@angular/core\";\nimport { AXValidationRule, AXValidationRuleOptions, AXValidationRuleResult } from \"../validation.types\";\n\nexport interface AXLengthValidationRuleOptions extends AXValidationRuleOptions {\n min: number;\n max: number;\n}\n\ndeclare module '../validation.types' {\n interface AXValidationRuleOptionsMap {\n 'length': AXLengthValidationRuleOptions;\n }\n}\n\n\n@Injectable()\nexport class AXLengthValidationRule implements AXValidationRule {\n get name(): string {\n return 'length';\n }\n\n validate(value: string, options: AXLengthValidationRuleOptions): AXValidationRuleResult {\n const isValid = value?.length >= options.min && value?.length <= options.max;\n return {\n rule: this.name,\n result: isValid,\n message: isValid ? null : options?.message ?? `The value must be between ${options.min} and ${options.max} chars`,\n value: value\n };\n }\n}\n","// ax-equal-validation-rule.ts\nimport { isEqual } from \"lodash-es\";\nimport { AXValidationRule, AXValidationRuleOptions, AXValidationRuleResult } from \"../validation.types\";\nimport { Injectable } from \"@angular/core\";\n\nexport interface AXEqualValidationRuleOptions extends AXValidationRuleOptions {\n value: any;\n not?: boolean; // Optional flag to invert the validation logic\n}\n\ndeclare module '../validation.types' {\n interface AXValidationRuleOptionsMap {\n 'equal': AXEqualValidationRuleOptions;\n }\n}\n@Injectable()\nexport class AXEqualValidationRule implements AXValidationRule {\n get name(): string {\n return 'equal';\n }\n\n validate(value: any, options: AXEqualValidationRuleOptions): AXValidationRuleResult {\n const isValueEqual = isEqual(value, options.value);\n const isValid = options.not ? !isValueEqual : isValueEqual;\n\n const defaultMessage = `The value must ${options.not ? 'not ' : ''}be equal to ${options.value}.`;\n return {\n rule: this.name,\n result: isValid,\n message: isValid ? '' : options?.message ?? defaultMessage,\n value: value\n };\n }\n}\n","// ax-less-than-validation-rule.ts\nimport { isNull, isUndefined } from \"lodash-es\";\nimport { AXValidationRule, AXValidationRuleOptions, AXValidationRuleResult } from \"../validation.types\";\nimport { Injectable } from \"@angular/core\";\n\nexport interface AXLessThanValidationRuleOptions extends AXValidationRuleOptions {\n value: number;\n inclusive?: boolean; // Optional flag for inclusiveness\n}\n\ndeclare module '../validation.types' {\n interface AXValidationRuleOptionsMap {\n 'lessThan': AXLessThanValidationRuleOptions;\n }\n}\n\n\n@Injectable()\nexport class AXLessThanValidationRule implements AXValidationRule {\n get name(): string {\n return 'lessThan';\n }\n\n validate(value: number, options: AXLessThanValidationRuleOptions): AXValidationRuleResult {\n const isValid = (isNull(value) || isUndefined(value)) ? true : (options.inclusive ? value <= options.value : value < options.value);\n const baseMessage = `The value must be ${options.inclusive ? 'less than or equal to' : 'less than'} ${options.value}.`;\n\n return {\n rule: this.name,\n result: isValid,\n message: isValid ? '' : options?.message ?? baseMessage,\n value: value\n };\n }\n}\n","// ax-greater-than-validation-rule.ts\nimport { isNull, isUndefined } from \"lodash-es\";\nimport { AXValidationRule, AXValidationRuleOptions, AXValidationRuleResult } from \"../validation.types\";\nimport { Injectable } from \"@angular/core\";\n\nexport interface AXGreaterThanValidationRuleOptions extends AXValidationRuleOptions {\n value: number;\n inclusive?: boolean; // Optional flag for inclusiveness\n}\n\ndeclare module '../validation.types' {\n interface AXValidationRuleOptionsMap {\n 'greaterThan': AXGreaterThanValidationRuleOptions;\n }\n}\n\n@Injectable()\nexport class AXGreaterThanValidationRule implements AXValidationRule {\n get name(): string {\n return 'greaterThan';\n }\n\n validate(value: number, options: AXGreaterThanValidationRuleOptions): AXValidationRuleResult {\n const isValid = (isNull(value) || isUndefined(value)) ? true : (options.inclusive ? value >= options.value : value > options.value);\n const baseMessage = `The value must be ${options.inclusive ? 'greater than or equal to' : 'greater than'} ${options.value}.`;\n\n return {\n rule: this.name,\n result: isValid,\n message: isValid ? '' : options?.message ?? baseMessage,\n value: value\n };\n }\n}\n","import { isEmpty } from \"lodash-es\";\nimport { AXValidationRule, AXValidationRuleOptions, AXValidationRuleResult } from \"../validation.types\";\nimport { Injectable } from \"@angular/core\";\n\nexport interface AXBetweenValidationRuleOptions<T = number | Date> extends AXValidationRuleOptions {\n lowerValue: T;\n upperValue: T;\n inclusive?: boolean; // Optional flag for inclusiveness\n}\n\ndeclare module '../validation.types' {\n interface AXValidationRuleOptionsMap {\n 'between': AXBetweenValidationRuleOptions;\n }\n}\n\n@Injectable()\nexport class AXBetweenValidationRule<T = number | Date> implements AXValidationRule {\n get name(): string {\n return 'between';\n }\n\n validate(value: T, options: AXBetweenValidationRuleOptions<T>): AXValidationRuleResult {\n let isValid;\n if (options.inclusive) {\n isValid = value >= options.lowerValue && value <= options.upperValue;\n } else {\n isValid = value > options.lowerValue && value < options.upperValue;\n }\n\n const rangeType = options.inclusive ? 'inclusive' : 'exclusive';\n const baseMessage = `The value must be within the ${rangeType} range of ${options.lowerValue} to ${options.upperValue}.`;\n\n return {\n rule: this.name,\n result: isValid || isEmpty(value),\n message: isValid ? '' : options?.message ?? baseMessage,\n value: value\n };\n }\n}","import { InjectionToken } from '@angular/core';\nimport { AXValidationRuleOptions, AXValidationRuleOptionsMap } from './validation.types';\n\nexport type AXValidationConfigRules = {\n [key: string]: {\n rule: keyof AXValidationRuleOptionsMap;\n options: AXValidationRuleOptions\n };\n}\n\nexport interface AXValidationConfig {\n rules: AXValidationConfigRules;\n}\n\nexport const AX_VALIDATION_CONFIG = new InjectionToken<AXValidationConfig>('AX_VALIDATION_CONFIG', {\n providedIn: 'root',\n factory: () => {\n return AXValidationDefaultConfig;\n },\n});\n\nexport const AXValidationDefaultConfig: AXValidationConfig = {\n rules: {\n email: {\n rule: 'regex',\n options: {\n pattern:\n /^(([^<>()[\\]\\\\.,;:\\s@\"]+(\\.[^<>()[\\]\\\\.,;:\\s@\"]+)*)|(\".+\"))@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\])|(([a-zA-Z\\-0-9]+\\.)+[a-zA-Z]{2,}))$/,\n message: 'validation.messages.email',\n }\n },\n phone: {\n rule: 'regex',\n options: {\n pattern: /^[+]*[(]{0,1}[0-9]{1,4}[)]{0,1}[-\\s\\./0-9]*$/,\n message: 'validation.messages.phone',\n }\n },\n },\n};\n\nexport type AXPartialValidationConfig = Partial<AXValidationConfig>;\n\nexport function validationConfig(config: AXPartialValidationConfig = {}): AXValidationConfig {\n const result = {\n ...AXValidationDefaultConfig,\n ...config,\n };\n return result;\n}\n","import { Injectable, Injector, inject } from \"@angular/core\";\nimport { AXValidationRule, AXValidationRuleOptions, AXValidationRuleOptionsMap, AXValidationRuleResult, AXValidationSummary } from \"./validation.types\";\nimport { AXValidationConfigRules, AX_VALIDATION_CONFIG } from \"./validation.config\";\nimport { AXTranslationService } from \"@acorex/core/translation\";\nimport { merge } from \"lodash-es\";\n\n@Injectable({\n providedIn: 'root'\n})\nexport class AXValidationRegistryService {\n private plugins: AXValidationRule[] = [];\n\n private configs = inject(AX_VALIDATION_CONFIG);\n\n public get customRules(): AXValidationConfigRules {\n return this.configs.rules;\n }\n\n private injector: Injector;\n\n constructor(injector: Injector) {\n this.injector = injector;\n }\n\n register(...plugins: (new () => AXValidationRule)[]) {\n plugins.forEach(t => {\n const childInjector = Injector.create({ providers: [{ provide: t, useClass: t, deps: [] }], parent: this.injector });\n const v = childInjector.get(t);\n\n if (v && !this.plugins.some(p => p.name == v.name)) {\n this.plugins.push(v);\n }\n })\n }\n\n get(ruleName: string): AXValidationRule | undefined {\n return this.plugins.find((c) => c.name == ruleName)\n }\n}\n\n@Injectable({ providedIn: 'root' })\nexport class AXValidationService {\n constructor(\n private pluginRegistry: AXValidationRegistryService,\n private translationService: AXTranslationService,\n\n ) { }\n\n validate(ruleName: string, value: unknown, options?: AXValidationRuleOptions): AXValidationRuleResult | Promise<AXValidationRuleResult> {\n const customRule = this.pluginRegistry.customRules[ruleName];\n const validator = this.pluginRegistry.get(ruleName);\n\n if (!validator && !customRule) {\n return {\n rule: ruleName,\n result: false,\n message: this.translationService.translateSync('validation.messages.invalid-rull-name', { params: { name: ruleName } }),\n value\n };\n }\n\n if (options?.message) {\n options.message = this.translationService.translateSync(options.message)\n }\n //\n if (validator)\n return validator.validate(value, options);\n else {\n\n return this.validate(customRule.rule, value, merge(options, customRule.options));\n }\n\n }\n\n\n ruleFor(value: unknown): AXValidationRuleChain {\n return new AXValidationRuleChain(this, value);\n }\n}\n\nclass AXValidationRuleChain {\n private rules: { name: string, options?: AXValidationRuleOptions }[] = [];\n private validationSummary: AXValidationSummary = { result: true, rules: [] };\n\n constructor(private validationService: AXValidationService, private initialValue: unknown) { }\n\n addRule<K extends keyof AXValidationRuleOptionsMap>(name: K, options?: AXValidationRuleOptionsMap[K]): AXValidationRuleChain {\n this.rules.push({ name, options });\n return this;\n }\n\n async validate(): Promise<AXValidationSummary> {\n for (const rule of this.rules) {\n const result = await this.validationService.validate(rule.name, this.initialValue, rule.options);\n this.validationSummary.rules.push(result);\n if (!result.result) {\n this.validationSummary.result = false;\n }\n }\n return this.validationSummary;\n }\n}\n","import { APP_INITIALIZER, Injector, ModuleWithProviders, NgModule } from '@angular/core';\nimport { AXValidationRegistryService } from './validation.service';\nimport { AXValidationRule } from './validation.types';\nimport { AXRegexValidationRule } from './rules/regex-rule';\nimport { AXRequiredValidationRule } from './rules/required-rule';\nimport { AXCallbackValidationRule } from './rules/callback-rule';\nimport { AXMinLengthValidationRule } from './rules/minlength-rule';\nimport { AXMaxLengthValidationRule } from './rules/maxlength-rule';\nimport { AXLengthValidationRule } from './rules/length-rule';\nimport { AXEqualValidationRule } from './rules/equal-rule';\nimport { AXLessThanValidationRule } from './rules/less-than-rule';\nimport { AXGreaterThanValidationRule } from './rules/greater-than';\nimport { AXBetweenValidationRule } from './rules/between-rule';\n\n\n\nconst BUILT_IN_RULES = [\n AXRequiredValidationRule,\n AXRegexValidationRule,\n AXRequiredValidationRule,\n AXCallbackValidationRule,\n //\n AXMinLengthValidationRule,\n AXMaxLengthValidationRule,\n AXLengthValidationRule,\n //\n AXEqualValidationRule,\n AXLessThanValidationRule,\n AXGreaterThanValidationRule,\n AXBetweenValidationRule\n]\n\n\nexport interface AXValidationModuleConfigs {\n rules: (new () => AXValidationRule)[]\n}\n\n@NgModule({\n imports: [],\n providers: [\n ...BUILT_IN_RULES\n ]\n})\nexport class AXValidationModule {\n\n private static registry: AXValidationRegistryService;\n\n static forRoot(configs?: AXValidationModuleConfigs): ModuleWithProviders<AXValidationModule> {\n return {\n ngModule: AXValidationModule,\n providers: [\n ...(configs?.rules || []),\n {\n provide: APP_INITIALIZER,\n useFactory: (pluginRegistry: AXValidationRegistryService) => () =>\n pluginRegistry.register(...[...BUILT_IN_RULES, ...(configs?.rules || [])]),\n deps: [AXValidationRegistryService],\n multi: true\n }\n ]\n };\n }\n\n static forChild(configs?: AXValidationModuleConfigs): ModuleWithProviders<AXValidationModule> {\n AXValidationModule.registry.register(...[...BUILT_IN_RULES, ...(configs?.rules || [])]);\n return {\n ngModule: AXValidationModule,\n providers: [\n ...(configs?.rules || [])\n ]\n };\n }\n\n /**\n * @ignore\n */\n constructor(pluginRegistry: AXValidationRegistryService) {\n AXValidationModule.registry = pluginRegistry;\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1.AXValidationRegistryService"],"mappings":";;;;;;MAWsB,gBAAgB,CAAA;AAGrC;;MCIY,qBAAqB,CAAA;AADlC,IAAA,WAAA,GAAA;AAGY,QAAA,IAAA,CAAA,iBAAiB,GAAG,MAAM,CAAC,oBAAoB,CAAC,CAAC;AAoC5D,KAAA;AAlCG,IAAA,IAAI,IAAI,GAAA;AACJ,QAAA,OAAO,OAAO,CAAC;KAClB;IAED,QAAQ,CAAC,KAAa,EAAE,OAAqC,EAAA;;QAEzD,MAAM,YAAY,GAAG,OAAO,OAAO,CAAC,OAAO,KAAK,QAAQ,GAAG,IAAI,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC;AAEzG,QAAA,IAAI,CAAC,KAAK,KAAK,QAAQ,CAAC,KAAK,CAAC,IAAI,OAAO,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,EAAE;YACtD,OAAO;gBACH,IAAI,EAAE,IAAI,CAAC,IAAI;AACf,gBAAA,MAAM,EAAE,IAAI;AACZ,gBAAA,OAAO,EAAE,IAAI;AACb,gBAAA,KAAK,EAAE,KAAK;aACf,CAAC;AACL,SAAA;AACI,aAAA,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE;YACvB,OAAO;gBACH,IAAI,EAAE,IAAI,CAAC,IAAI;AACf,gBAAA,MAAM,EAAE,KAAK;gBACb,OAAO,EAAE,CAAG,EAAA,KAAK,CAAuB,qBAAA,CAAA;AACxC,gBAAA,KAAK,EAAE,KAAK;aACf,CAAC;AACL,SAAA;QAED,MAAM,OAAO,GAAG,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACzC,OAAO;YACH,IAAI,EAAE,IAAI,CAAC,IAAI;AACf,YAAA,MAAM,EAAE,OAAO;AACf,YAAA,OAAO,EAAE,OAAO,GAAG,EAAE,GAAG,IAAI,CAAC,iBAAiB,CAAC,aAAa,CAAC,OAAO,EAAE,OAAO,IAAI,CAAA,qCAAA,EAAwC,YAAY,CAAG,CAAA,CAAA,EAAE,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,OAAO,GAAG,OAAO,CAAC,EAAE,EAAE,CAAC;AACpL,YAAA,KAAK,EAAE,KAAK;SACf,CAAC;KACL;8GApCQ,qBAAqB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA,EAAA;kHAArB,qBAAqB,EAAA,CAAA,CAAA,EAAA;;2FAArB,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBADjC,UAAU;;;MCAE,wBAAwB,CAAA;AADrC,IAAA,WAAA,GAAA;AAGY,QAAA,IAAA,CAAA,iBAAiB,GAAG,MAAM,CAAC,oBAAoB,CAAC,CAAC;AAyB5D,KAAA;AAvBG,IAAA,IAAI,IAAI,GAAA;AACJ,QAAA,OAAO,UAAU,CAAC;KACrB;IAED,QAAQ,CAAC,KAAe,EAAE,OAAyC,EAAA;AAC/D,QAAA,MAAM,KAAK,GAAG;AACV,YAAA,EAAE,IAAI,EAAE,GAAG,IAAI,MAAM,CAAC,GAAG,CAAC,IAAI,WAAW,CAAC,GAAG,CAAC,EAAE;AAChD,YAAA,EAAE,IAAI,EAAE,GAAG,IAAI,QAAQ,CAAC,GAAG,CAAC,IAAI,OAAO,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,EAAE;AACrD,YAAA,EAAE,IAAI,EAAE,GAAG,IAAI,QAAQ,CAAC,GAAG,CAAC,IAAI,KAAK,CAAC,GAAG,CAAC,EAAE;AAC5C,YAAA,EAAE,IAAI,EAAE,GAAG,IAAI,OAAO,CAAC,GAAG,CAAC,IAAI,OAAO,CAAC,GAAG,CAAC,EAAE;SAChD,CAAC;AAEF,QAAA,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,EAAE,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;AACzD,QAAA,MAAM,OAAO,GAAG,CAAC,UAAU,CAAC;AAC5B,QAAA,MAAM,OAAO,GAAG,UAAU,GAAG,OAAO,EAAE,OAAO,IAAI,IAAI,CAAC,iBAAiB,CAAC,aAAa,CAAC,8BAA8B,EAAE,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,OAAO,GAAG,OAAO,CAAC,EAAE,EAAE,CAAC,GAAG,IAAI,CAAC;QAExK,OAAO;YACH,IAAI,EAAE,IAAI,CAAC,IAAI;AACf,YAAA,MAAM,EAAE,OAAO;AACf,YAAA,OAAO,EAAE,OAAO;YAChB,KAAK;SACR,CAAC;KACL;8GA1BQ,wBAAwB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA,EAAA;kHAAxB,wBAAwB,EAAA,CAAA,CAAA,EAAA;;2FAAxB,wBAAwB,EAAA,UAAA,EAAA,CAAA;kBADpC,UAAU;;;MCCE,wBAAwB,CAAA;AAEjC,IAAA,IAAI,IAAI,GAAA;AACJ,QAAA,OAAO,UAAU,CAAC;KACrB;IAED,QAAQ,CAAC,KAAQ,EAAE,OAA2C,EAAA;QAC1D,MAAM,gBAAgB,GAAG,OAAO,EAAE,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,2BAA2B,EAAE,CAAC;AACtH,QAAA,MAAM,YAAY,GAAG,CAAC,MAA6C,MAAM;YACrE,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,MAAM,EAAE,MAAM,CAAC,MAAM;YACrB,OAAO,EAAE,MAAM,CAAC,OAAO,IAAI,OAAO,EAAE,OAAO,IAAI,EAAE;AACjD,YAAA,KAAK,EAAE,KAAK;AACf,SAAA,CAAC,CAAC;QAEH,IAAI,gBAAgB,YAAY,OAAO,EAAE;AACrC,YAAA,OAAO,gBAAgB,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;AAC9C,SAAA;AAED,QAAA,OAAO,YAAY,CAAC,gBAAgB,CAAC,CAAC;KACzC;8GApBQ,wBAAwB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA,EAAA;kHAAxB,wBAAwB,EAAA,CAAA,CAAA,EAAA;;2FAAxB,wBAAwB,EAAA,UAAA,EAAA,CAAA;kBADpC,UAAU;;;MCAE,yBAAyB,CAAA;AAClC,IAAA,IAAI,IAAI,GAAA;AACJ,QAAA,OAAO,WAAW,CAAC;KACtB;IAED,QAAQ,CAAC,KAAa,EAAE,OAAyC,EAAA;QAC7D,MAAM,OAAO,GAAG,OAAO,CAAC,KAAK,CAAC,GAAG,IAAI,IAAI,KAAK,EAAE,MAAM,IAAI,OAAO,CAAC,KAAK,CAAC,CAAC;QACzE,OAAO;YACH,IAAI,EAAE,IAAI,CAAC,IAAI;AACf,YAAA,MAAM,EAAE,OAAO;AACf,YAAA,OAAO,EAAE,OAAO,GAAG,EAAE,GAAG,OAAO,EAAE,OAAO,IAAI,8BAA8B,OAAO,CAAC,KAAK,CAAmB,iBAAA,CAAA;AAC1G,YAAA,KAAK,EAAE,KAAK;SACf,CAAC;KACL;8GAbQ,yBAAyB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA,EAAA;kHAAzB,yBAAyB,EAAA,CAAA,CAAA,EAAA;;2FAAzB,yBAAyB,EAAA,UAAA,EAAA,CAAA;kBADrC,UAAU;;;ACfX;MAiBa,yBAAyB,CAAA;AAClC,IAAA,IAAI,IAAI,GAAA;AACJ,QAAA,OAAO,WAAW,CAAC;KACtB;IAED,QAAQ,CAAC,KAAa,EAAE,OAAyC,EAAA;QAC7D,MAAM,OAAO,GAAG,OAAO,CAAC,KAAK,CAAC,GAAG,IAAI,IAAI,KAAK,EAAE,MAAM,IAAI,OAAO,CAAC,KAAK,CAAC,CAAC;QACzE,OAAO;YACH,IAAI,EAAE,IAAI,CAAC,IAAI;AACf,YAAA,MAAM,EAAE,OAAO;AACf,YAAA,OAAO,EAAE,OAAO,GAAG,EAAE,GAAG,OAAO,EAAE,OAAO,IAAI,6BAA6B,OAAO,CAAC,KAAK,CAAc,YAAA,CAAA;AACpG,YAAA,KAAK,EAAE,KAAK;SACf,CAAC;KACL;8GAbQ,yBAAyB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA,EAAA;kHAAzB,yBAAyB,EAAA,CAAA,CAAA,EAAA;;2FAAzB,yBAAyB,EAAA,UAAA,EAAA,CAAA;kBADrC,UAAU;;;AChBX;MAiBa,sBAAsB,CAAA;AAC/B,IAAA,IAAI,IAAI,GAAA;AACJ,QAAA,OAAO,QAAQ,CAAC;KACnB;IAED,QAAQ,CAAC,KAAa,EAAE,OAAsC,EAAA;AAC1D,QAAA,MAAM,OAAO,GAAG,KAAK,EAAE,MAAM,IAAI,OAAO,CAAC,GAAG,IAAI,KAAK,EAAE,MAAM,IAAI,OAAO,CAAC,GAAG,CAAC;QAC7E,OAAO;YACH,IAAI,EAAE,IAAI,CAAC,IAAI;AACf,YAAA,MAAM,EAAE,OAAO;YACf,OAAO,EAAE,OAAO,GAAG,IAAI,GAAG,OAAO,EAAE,OAAO,IAAI,6BAA6B,OAAO,CAAC,GAAG,CAAQ,KAAA,EAAA,OAAO,CAAC,GAAG,CAAQ,MAAA,CAAA;AACjH,YAAA,KAAK,EAAE,KAAK;SACf,CAAC;KACL;8GAbQ,sBAAsB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA,EAAA;kHAAtB,sBAAsB,EAAA,CAAA,CAAA,EAAA;;2FAAtB,sBAAsB,EAAA,UAAA,EAAA,CAAA;kBADlC,UAAU;;;AChBX;MAgBa,qBAAqB,CAAA;AAC9B,IAAA,IAAI,IAAI,GAAA;AACJ,QAAA,OAAO,OAAO,CAAC;KAClB;IAED,QAAQ,CAAC,KAAU,EAAE,OAAqC,EAAA;QACtD,MAAM,YAAY,GAAG,OAAO,CAAC,KAAK,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC;AACnD,QAAA,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,GAAG,CAAC,YAAY,GAAG,YAAY,CAAC;AAE3D,QAAA,MAAM,cAAc,GAAG,CAAA,eAAA,EAAkB,OAAO,CAAC,GAAG,GAAG,MAAM,GAAG,EAAE,CAAA,YAAA,EAAe,OAAO,CAAC,KAAK,GAAG,CAAC;QAClG,OAAO;YACH,IAAI,EAAE,IAAI,CAAC,IAAI;AACf,YAAA,MAAM,EAAE,OAAO;AACf,YAAA,OAAO,EAAE,OAAO,GAAG,EAAE,GAAG,OAAO,EAAE,OAAO,IAAI,cAAc;AAC1D,YAAA,KAAK,EAAE,KAAK;SACf,CAAC;KACL;8GAhBQ,qBAAqB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA,EAAA;kHAArB,qBAAqB,EAAA,CAAA,CAAA,EAAA;;2FAArB,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBADjC,UAAU;;;ACfX;MAkBa,wBAAwB,CAAA;AACjC,IAAA,IAAI,IAAI,GAAA;AACJ,QAAA,OAAO,UAAU,CAAC;KACrB;IAED,QAAQ,CAAC,KAAa,EAAE,OAAwC,EAAA;AAC5D,QAAA,MAAM,OAAO,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,WAAW,CAAC,KAAK,CAAC,IAAI,IAAI,IAAI,OAAO,CAAC,SAAS,GAAG,KAAK,IAAI,OAAO,CAAC,KAAK,GAAG,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC;AACpI,QAAA,MAAM,WAAW,GAAG,CAAA,kBAAA,EAAqB,OAAO,CAAC,SAAS,GAAG,uBAAuB,GAAG,WAAW,CAAA,CAAA,EAAI,OAAO,CAAC,KAAK,GAAG,CAAC;QAEvH,OAAO;YACH,IAAI,EAAE,IAAI,CAAC,IAAI;AACf,YAAA,MAAM,EAAE,OAAO;AACf,YAAA,OAAO,EAAE,OAAO,GAAG,EAAE,GAAG,OAAO,EAAE,OAAO,IAAI,WAAW;AACvD,YAAA,KAAK,EAAE,KAAK;SACf,CAAC;KACL;8GAfQ,wBAAwB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA,EAAA;kHAAxB,wBAAwB,EAAA,CAAA,CAAA,EAAA;;2FAAxB,wBAAwB,EAAA,UAAA,EAAA,CAAA;kBADpC,UAAU;;;ACjBX;MAiBa,2BAA2B,CAAA;AACpC,IAAA,IAAI,IAAI,GAAA;AACJ,QAAA,OAAO,aAAa,CAAC;KACxB;IAED,QAAQ,CAAC,KAAa,EAAE,OAA2C,EAAA;AAC/D,QAAA,MAAM,OAAO,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,WAAW,CAAC,KAAK,CAAC,IAAI,IAAI,IAAI,OAAO,CAAC,SAAS,GAAG,KAAK,IAAI,OAAO,CAAC,KAAK,GAAG,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC;AACpI,QAAA,MAAM,WAAW,GAAG,CAAA,kBAAA,EAAqB,OAAO,CAAC,SAAS,GAAG,0BAA0B,GAAG,cAAc,CAAA,CAAA,EAAI,OAAO,CAAC,KAAK,GAAG,CAAC;QAE7H,OAAO;YACH,IAAI,EAAE,IAAI,CAAC,IAAI;AACf,YAAA,MAAM,EAAE,OAAO;AACf,YAAA,OAAO,EAAE,OAAO,GAAG,EAAE,GAAG,OAAO,EAAE,OAAO,IAAI,WAAW;AACvD,YAAA,KAAK,EAAE,KAAK;SACf,CAAC;KACL;8GAfQ,2BAA2B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA,EAAA;kHAA3B,2BAA2B,EAAA,CAAA,CAAA,EAAA;;2FAA3B,2BAA2B,EAAA,UAAA,EAAA,CAAA;kBADvC,UAAU;;;MCCE,uBAAuB,CAAA;AAChC,IAAA,IAAI,IAAI,GAAA;AACJ,QAAA,OAAO,SAAS,CAAC;KACpB;IAED,QAAQ,CAAC,KAAQ,EAAE,OAA0C,EAAA;AACzD,QAAA,IAAI,OAAO,CAAC;QACZ,IAAI,OAAO,CAAC,SAAS,EAAE;AACnB,YAAA,OAAO,GAAG,KAAK,IAAI,OAAO,CAAC,UAAU,IAAI,KAAK,IAAI,OAAO,CAAC,UAAU,CAAC;AACxE,SAAA;AAAM,aAAA;AACH,YAAA,OAAO,GAAG,KAAK,GAAG,OAAO,CAAC,UAAU,IAAI,KAAK,GAAG,OAAO,CAAC,UAAU,CAAC;AACtE,SAAA;AAED,QAAA,MAAM,SAAS,GAAG,OAAO,CAAC,SAAS,GAAG,WAAW,GAAG,WAAW,CAAC;AAChE,QAAA,MAAM,WAAW,GAAG,CAAgC,6BAAA,EAAA,SAAS,CAAa,UAAA,EAAA,OAAO,CAAC,UAAU,CAAO,IAAA,EAAA,OAAO,CAAC,UAAU,GAAG,CAAC;QAEzH,OAAO;YACH,IAAI,EAAE,IAAI,CAAC,IAAI;AACf,YAAA,MAAM,EAAE,OAAO,IAAI,OAAO,CAAC,KAAK,CAAC;AACjC,YAAA,OAAO,EAAE,OAAO,GAAG,EAAE,GAAG,OAAO,EAAE,OAAO,IAAI,WAAW;AACvD,YAAA,KAAK,EAAE,KAAK;SACf,CAAC;KACL;8GAtBQ,uBAAuB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA,EAAA;kHAAvB,uBAAuB,EAAA,CAAA,CAAA,EAAA;;2FAAvB,uBAAuB,EAAA,UAAA,EAAA,CAAA;kBADnC,UAAU;;;ACFJ,MAAM,oBAAoB,GAAG,IAAI,cAAc,CAAqB,sBAAsB,EAAE;AACjG,IAAA,UAAU,EAAE,MAAM;IAClB,OAAO,EAAE,MAAK;AACZ,QAAA,OAAO,yBAAyB,CAAC;KAClC;AACF,CAAA,CAAC,CAAC;AAEI,MAAM,yBAAyB,GAAuB;AAC3D,IAAA,KAAK,EAAE;AACL,QAAA,KAAK,EAAE;AACL,YAAA,IAAI,EAAE,OAAO;AACb,YAAA,OAAO,EAAE;AACP,gBAAA,OAAO,EACL,uJAAuJ;AACzJ,gBAAA,OAAO,EAAE,2BAA2B;AACrC,aAAA;AACF,SAAA;AACD,QAAA,KAAK,EAAE;AACL,YAAA,IAAI,EAAE,OAAO;AACb,YAAA,OAAO,EAAE;AACP,gBAAA,OAAO,EAAE,8CAA8C;AACvD,gBAAA,OAAO,EAAE,2BAA2B;AACrC,aAAA;AACF,SAAA;AACF,KAAA;CACF,CAAC;AAIc,SAAA,gBAAgB,CAAC,MAAA,GAAoC,EAAE,EAAA;AACrE,IAAA,MAAM,MAAM,GAAG;AACb,QAAA,GAAG,yBAAyB;AAC5B,QAAA,GAAG,MAAM;KACV,CAAC;AACF,IAAA,OAAO,MAAM,CAAC;AAChB;;MCxCa,2BAA2B,CAAA;AAKpC,IAAA,IAAW,WAAW,GAAA;AAClB,QAAA,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC;KAC7B;AAID,IAAA,WAAA,CAAY,QAAkB,EAAA;QAVtB,IAAO,CAAA,OAAA,GAAuB,EAAE,CAAC;AAEjC,QAAA,IAAA,CAAA,OAAO,GAAG,MAAM,CAAC,oBAAoB,CAAC,CAAC;AAS3C,QAAA,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;KAC5B;IAED,QAAQ,CAAC,GAAG,OAAuC,EAAA;AAC/C,QAAA,OAAO,CAAC,OAAO,CAAC,CAAC,IAAG;AAChB,YAAA,MAAM,aAAa,GAAG,QAAQ,CAAC,MAAM,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;YACrH,MAAM,CAAC,GAAG,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;YAE/B,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,IAAI,CAAC,EAAE;AAChD,gBAAA,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AACxB,aAAA;AACL,SAAC,CAAC,CAAA;KACL;AAED,IAAA,GAAG,CAAC,QAAgB,EAAA;AAChB,QAAA,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,IAAI,QAAQ,CAAC,CAAA;KACtD;8GA5BQ,2BAA2B,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,QAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA,EAAA;AAA3B,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,2BAA2B,cAFxB,MAAM,EAAA,CAAA,CAAA,EAAA;;2FAET,2BAA2B,EAAA,UAAA,EAAA,CAAA;kBAHvC,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,UAAU,EAAE,MAAM;AACrB,iBAAA,CAAA;;MAiCY,mBAAmB,CAAA;IAC5B,WACY,CAAA,cAA2C,EAC3C,kBAAwC,EAAA;QADxC,IAAc,CAAA,cAAA,GAAd,cAAc,CAA6B;QAC3C,IAAkB,CAAA,kBAAA,GAAlB,kBAAkB,CAAsB;KAE/C;AAEL,IAAA,QAAQ,CAAC,QAAgB,EAAE,KAAc,EAAE,OAAiC,EAAA;QACxE,MAAM,UAAU,GAAG,IAAI,CAAC,cAAc,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;QAC7D,MAAM,SAAS,GAAG,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;AAEpD,QAAA,IAAI,CAAC,SAAS,IAAI,CAAC,UAAU,EAAE;YAC3B,OAAO;AACH,gBAAA,IAAI,EAAE,QAAQ;AACd,gBAAA,MAAM,EAAE,KAAK;AACb,gBAAA,OAAO,EAAE,IAAI,CAAC,kBAAkB,CAAC,aAAa,CAAC,uCAAuC,EAAE,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,CAAC;gBACvH,KAAK;aACR,CAAC;AACL,SAAA;QAED,IAAI,OAAO,EAAE,OAAO,EAAE;AAClB,YAAA,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC,kBAAkB,CAAC,aAAa,CAAC,OAAO,CAAC,OAAO,CAAC,CAAA;AAC3E,SAAA;;AAED,QAAA,IAAI,SAAS;YACT,OAAO,SAAS,CAAC,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;AACzC,aAAA;AAED,YAAA,OAAO,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,EAAE,KAAK,EAAE,KAAK,CAAC,OAAO,EAAE,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC;AACpF,SAAA;KAEJ;AAGD,IAAA,OAAO,CAAC,KAAc,EAAA;AAClB,QAAA,OAAO,IAAI,qBAAqB,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;KACjD;8GApCQ,mBAAmB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,2BAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,oBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA,EAAA;AAAnB,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,mBAAmB,cADN,MAAM,EAAA,CAAA,CAAA,EAAA;;2FACnB,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAD/B,UAAU;mBAAC,EAAE,UAAU,EAAE,MAAM,EAAE,CAAA;;AAwClC,MAAM,qBAAqB,CAAA;IAIvB,WAAoB,CAAA,iBAAsC,EAAU,YAAqB,EAAA;QAArE,IAAiB,CAAA,iBAAA,GAAjB,iBAAiB,CAAqB;QAAU,IAAY,CAAA,YAAA,GAAZ,YAAY,CAAS;QAHjF,IAAK,CAAA,KAAA,GAA0D,EAAE,CAAC;QAClE,IAAiB,CAAA,iBAAA,GAAwB,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC;KAEiB;IAE9F,OAAO,CAA6C,IAAO,EAAE,OAAuC,EAAA;QAChG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC;AACnC,QAAA,OAAO,IAAI,CAAC;KACf;AAED,IAAA,MAAM,QAAQ,GAAA;AACV,QAAA,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,KAAK,EAAE;YAC3B,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;YACjG,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;AAC1C,YAAA,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE;AAChB,gBAAA,IAAI,CAAC,iBAAiB,CAAC,MAAM,GAAG,KAAK,CAAC;AACzC,aAAA;AACJ,SAAA;QACD,OAAO,IAAI,CAAC,iBAAiB,CAAC;KACjC;AACJ;;ACrFD,MAAM,cAAc,GAAG;IACnB,wBAAwB;IACxB,qBAAqB;IACrB,wBAAwB;IACxB,wBAAwB;;IAExB,yBAAyB;IACzB,yBAAyB;IACzB,sBAAsB;;IAEtB,qBAAqB;IACrB,wBAAwB;IACxB,2BAA2B;IAC3B,uBAAuB;CAC1B,CAAA;MAaY,kBAAkB,CAAA;IAI3B,OAAO,OAAO,CAAC,OAAmC,EAAA;QAC9C,OAAO;AACH,YAAA,QAAQ,EAAE,kBAAkB;AAC5B,YAAA,SAAS,EAAE;AACP,gBAAA,IAAI,OAAO,EAAE,KAAK,IAAI,EAAE;AACxB,gBAAA;AACI,oBAAA,OAAO,EAAE,eAAe;oBACxB,UAAU,EAAE,CAAC,cAA2C,KAAK,MACzD,cAAc,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,cAAc,EAAE,IAAI,OAAO,EAAE,KAAK,IAAI,EAAE,EAAE,CAAC;oBAC9E,IAAI,EAAE,CAAC,2BAA2B,CAAC;AACnC,oBAAA,KAAK,EAAE,IAAI;AACd,iBAAA;AACJ,aAAA;SACJ,CAAC;KACL;IAED,OAAO,QAAQ,CAAC,OAAmC,EAAA;QAC/C,kBAAkB,CAAC,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,cAAc,EAAE,IAAI,OAAO,EAAE,KAAK,IAAI,EAAE,EAAE,CAAC,CAAC;QACxF,OAAO;AACH,YAAA,QAAQ,EAAE,kBAAkB;AAC5B,YAAA,SAAS,EAAE;AACP,gBAAA,IAAI,OAAO,EAAE,KAAK,IAAI,EAAE;AAC3B,aAAA;SACJ,CAAC;KACL;AAED;;AAEG;AACH,IAAA,WAAA,CAAY,cAA2C,EAAA;AACnD,QAAA,kBAAkB,CAAC,QAAQ,GAAG,cAAc,CAAC;KAChD;8GAnCQ,kBAAkB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAA,2BAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA,EAAA;+GAAlB,kBAAkB,EAAA,CAAA,CAAA,EAAA;AAAlB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,kBAAkB,EAJhB,SAAA,EAAA;AACP,YAAA,GAAG,cAAc;AACpB,SAAA,EAAA,CAAA,CAAA,EAAA;;2FAEQ,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBAN9B,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACN,oBAAA,OAAO,EAAE,EAAE;AACX,oBAAA,SAAS,EAAE;AACP,wBAAA,GAAG,cAAc;AACpB,qBAAA;AACJ,iBAAA,CAAA;;;AC1CD;;AAEG;;;;"}
@@ -1,8 +1,16 @@
1
- import { AXFormatter } from '@acorex/core/format';
1
+ import { AXFormatOptions, AXFormatter } from '@acorex/core/format';
2
2
  import * as i0 from "@angular/core";
3
+ export interface AXFileSizeFormatterOptions extends AXFormatOptions {
4
+ format: string;
5
+ }
6
+ declare module '@acorex/core/format' {
7
+ interface AXFormatOptionsMap {
8
+ 'filesize': AXFileSizeFormatterOptions;
9
+ }
10
+ }
3
11
  export declare class AXFileSizeFormatter implements AXFormatter {
4
12
  get name(): string;
5
- format(value: unknown, ...args: unknown[]): string;
13
+ format(value: number): string;
6
14
  static ɵfac: i0.ɵɵFactoryDeclaration<AXFileSizeFormatter, never>;
7
15
  static ɵprov: i0.ɵɵInjectableDeclaration<AXFileSizeFormatter>;
8
16
  }
@@ -1,8 +1,7 @@
1
- import { AXFormatterRegistryService } from '@acorex/core/format';
2
1
  import * as i0 from "@angular/core";
2
+ import * as i1 from "@acorex/core/format";
3
3
  export declare class AXFileModule {
4
- constructor(service: AXFormatterRegistryService);
5
4
  static ɵfac: i0.ɵɵFactoryDeclaration<AXFileModule, never>;
6
- static ɵmod: i0.ɵɵNgModuleDeclaration<AXFileModule, never, never, never>;
5
+ static ɵmod: i0.ɵɵNgModuleDeclaration<AXFileModule, never, [typeof i1.AXFormatModule], never>;
7
6
  static ɵinj: i0.ɵɵInjectorDeclaration<AXFileModule>;
8
7
  }
package/format/index.d.ts CHANGED
@@ -1,5 +1,6 @@
1
+ export * from './lib/format.types';
1
2
  export * from './lib/format.config';
2
3
  export * from './lib/format.module';
3
4
  export * from './lib/format.pipe';
4
5
  export * from './lib/format.service';
5
- export * from './lib/number-formatter';
6
+ export * from './lib/formatters/number-formatter';