@acorex/core 7.17.29 → 7.18.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2022/format/index.mjs +2 -1
- package/esm2022/format/lib/format.module.mjs +26 -12
- package/esm2022/format/lib/formatters/string-formatter.mjs +16 -0
- package/esm2022/translation/lib/translation.service.mjs +23 -5
- package/esm2022/translation/lib/translator.directive.mjs +1 -1
- package/esm2022/validation/lib/rules/between-rule.mjs +2 -2
- package/esm2022/validation/lib/rules/callback-rule.mjs +2 -2
- package/esm2022/validation/lib/rules/equal-rule.mjs +2 -2
- package/esm2022/validation/lib/rules/greater-than.mjs +2 -2
- package/esm2022/validation/lib/rules/length-rule.mjs +2 -2
- package/esm2022/validation/lib/rules/less-than-rule.mjs +2 -2
- package/esm2022/validation/lib/rules/maxlength-rule.mjs +2 -2
- package/esm2022/validation/lib/rules/minlength-rule.mjs +2 -2
- package/esm2022/validation/lib/rules/regex-rule.mjs +4 -3
- package/esm2022/validation/lib/rules/required-rule.mjs +4 -3
- package/esm2022/validation/lib/validation.module.mjs +24 -11
- package/esm2022/validation/lib/validation.service.mjs +4 -4
- package/esm2022/validation/lib/validation.types.mjs +1 -1
- package/fesm2022/acorex-core-format.mjs +41 -11
- package/fesm2022/acorex-core-format.mjs.map +1 -1
- package/fesm2022/acorex-core-translation.mjs +22 -4
- package/fesm2022/acorex-core-translation.mjs.map +1 -1
- package/fesm2022/acorex-core-validation.mjs +40 -24
- package/fesm2022/acorex-core-validation.mjs.map +1 -1
- package/format/index.d.ts +1 -0
- package/format/lib/format.module.d.ts +1 -3
- package/format/lib/formatters/string-formatter.d.ts +14 -0
- package/package.json +1 -1
- package/translation/lib/translation.service.d.ts +1 -0
- package/validation/lib/rules/between-rule.d.ts +1 -1
- package/validation/lib/rules/callback-rule.d.ts +1 -1
- package/validation/lib/rules/equal-rule.d.ts +1 -1
- package/validation/lib/rules/greater-than.d.ts +1 -1
- package/validation/lib/rules/length-rule.d.ts +1 -1
- package/validation/lib/rules/less-than-rule.d.ts +1 -1
- package/validation/lib/rules/maxlength-rule.d.ts +1 -1
- package/validation/lib/rules/minlength-rule.d.ts +1 -1
- package/validation/lib/rules/regex-rule.d.ts +1 -1
- package/validation/lib/rules/required-rule.d.ts +1 -1
- package/validation/lib/validation.module.d.ts +1 -3
- package/validation/lib/validation.service.d.ts +1 -1
- package/validation/lib/validation.types.d.ts +1 -1
@@ -1,6 +1,6 @@
|
|
1
1
|
import { isString, isEmpty, isNull, isUndefined, isNumber, isArray, find, isEqual, merge } from 'lodash-es';
|
2
2
|
import * as i0 from '@angular/core';
|
3
|
-
import { inject, Injectable, InjectionToken, Injector,
|
3
|
+
import { inject, Injectable, InjectionToken, Injector, NgModule, Inject } from '@angular/core';
|
4
4
|
import * as i1 from '@acorex/core/translation';
|
5
5
|
import { AXTranslationService } from '@acorex/core/translation';
|
6
6
|
|
@@ -14,7 +14,7 @@ class AXRegexValidationRule {
|
|
14
14
|
get name() {
|
15
15
|
return 'regex';
|
16
16
|
}
|
17
|
-
validate(value, options) {
|
17
|
+
async validate(value, options) {
|
18
18
|
// Convert string pattern to RegExp if necessary
|
19
19
|
const regexPattern = typeof options.pattern === 'string' ? new RegExp(options.pattern) : options.pattern;
|
20
20
|
if (!value || (isString(value) && isEmpty(value.trim()))) {
|
@@ -34,10 +34,11 @@ class AXRegexValidationRule {
|
|
34
34
|
};
|
35
35
|
}
|
36
36
|
const isValid = regexPattern.test(value);
|
37
|
+
const translatedMessage = await this.traslationService.translateAsync(options?.message ?? `The value does not match the pattern ${regexPattern}.`, { params: { title: options?.['title'] } });
|
37
38
|
return {
|
38
39
|
rule: this.name,
|
39
40
|
result: isValid,
|
40
|
-
message: isValid ?
|
41
|
+
message: isValid ? null : translatedMessage,
|
41
42
|
value: value
|
42
43
|
};
|
43
44
|
}
|
@@ -55,7 +56,7 @@ class AXRequiredValidationRule {
|
|
55
56
|
get name() {
|
56
57
|
return 'required';
|
57
58
|
}
|
58
|
-
validate(value, options) {
|
59
|
+
async validate(value, options) {
|
59
60
|
const rules = [
|
60
61
|
{ test: val => isNull(val) || isUndefined(val) },
|
61
62
|
{ test: val => isString(val) && isEmpty(val.trim()) },
|
@@ -64,7 +65,8 @@ class AXRequiredValidationRule {
|
|
64
65
|
];
|
65
66
|
const failedRule = find(rules, rule => rule.test(value));
|
66
67
|
const isValid = !failedRule;
|
67
|
-
const
|
68
|
+
const translatedMessage = await this.traslationService.translateAsync("validation.messages.required", { params: { title: options?.['title'] } });
|
69
|
+
const message = failedRule ? options?.message ?? translatedMessage : null;
|
68
70
|
return {
|
69
71
|
rule: this.name,
|
70
72
|
result: isValid,
|
@@ -83,7 +85,7 @@ class AXCallbackValidationRule {
|
|
83
85
|
get name() {
|
84
86
|
return 'callback';
|
85
87
|
}
|
86
|
-
validate(value, options) {
|
88
|
+
async validate(value, options) {
|
87
89
|
const validationResult = options?.validate(value, options) || { result: false, message: "Invalid callback function" };
|
88
90
|
const createResult = (result) => ({
|
89
91
|
rule: this.name,
|
@@ -107,7 +109,7 @@ class AXMinLengthValidationRule {
|
|
107
109
|
get name() {
|
108
110
|
return 'minLength';
|
109
111
|
}
|
110
|
-
validate(value, options) {
|
112
|
+
async validate(value, options) {
|
111
113
|
const isValid = isEmpty(value) ? true : (value?.length >= options.value);
|
112
114
|
return {
|
113
115
|
rule: this.name,
|
@@ -128,7 +130,7 @@ class AXMaxLengthValidationRule {
|
|
128
130
|
get name() {
|
129
131
|
return 'maxLength';
|
130
132
|
}
|
131
|
-
validate(value, options) {
|
133
|
+
async validate(value, options) {
|
132
134
|
const isValid = isEmpty(value) ? true : (value?.length <= options.value);
|
133
135
|
return {
|
134
136
|
rule: this.name,
|
@@ -149,7 +151,7 @@ class AXLengthValidationRule {
|
|
149
151
|
get name() {
|
150
152
|
return 'length';
|
151
153
|
}
|
152
|
-
validate(value, options) {
|
154
|
+
async validate(value, options) {
|
153
155
|
const isValid = value?.length >= options.min && value?.length <= options.max;
|
154
156
|
return {
|
155
157
|
rule: this.name,
|
@@ -170,7 +172,7 @@ class AXEqualValidationRule {
|
|
170
172
|
get name() {
|
171
173
|
return 'equal';
|
172
174
|
}
|
173
|
-
validate(value, options) {
|
175
|
+
async validate(value, options) {
|
174
176
|
const isValueEqual = isEqual(value, options.value);
|
175
177
|
const isValid = options.not ? !isValueEqual : isValueEqual;
|
176
178
|
const defaultMessage = `The value must ${options.not ? 'not ' : ''}be equal to ${options.value}.`;
|
@@ -193,7 +195,7 @@ class AXLessThanValidationRule {
|
|
193
195
|
get name() {
|
194
196
|
return 'lessThan';
|
195
197
|
}
|
196
|
-
validate(value, options) {
|
198
|
+
async validate(value, options) {
|
197
199
|
const isValid = (isNull(value) || isUndefined(value)) ? true : (options.inclusive ? value <= options.value : value < options.value);
|
198
200
|
const baseMessage = `The value must be ${options.inclusive ? 'less than or equal to' : 'less than'} ${options.value}.`;
|
199
201
|
return {
|
@@ -215,7 +217,7 @@ class AXGreaterThanValidationRule {
|
|
215
217
|
get name() {
|
216
218
|
return 'greaterThan';
|
217
219
|
}
|
218
|
-
validate(value, options) {
|
220
|
+
async validate(value, options) {
|
219
221
|
const isValid = (isNull(value) || isUndefined(value)) ? true : (options.inclusive ? value >= options.value : value > options.value);
|
220
222
|
const baseMessage = `The value must be ${options.inclusive ? 'greater than or equal to' : 'greater than'} ${options.value}.`;
|
221
223
|
return {
|
@@ -236,7 +238,7 @@ class AXBetweenValidationRule {
|
|
236
238
|
get name() {
|
237
239
|
return 'between';
|
238
240
|
}
|
239
|
-
validate(value, options) {
|
241
|
+
async validate(value, options) {
|
240
242
|
let isValid;
|
241
243
|
if (options.inclusive) {
|
242
244
|
isValid = value >= options.lowerValue && value <= options.upperValue;
|
@@ -327,19 +329,19 @@ class AXValidationService {
|
|
327
329
|
this.pluginRegistry = pluginRegistry;
|
328
330
|
this.translationService = translationService;
|
329
331
|
}
|
330
|
-
validate(ruleName, value, options) {
|
332
|
+
async validate(ruleName, value, options) {
|
331
333
|
const customRule = this.pluginRegistry.customRules[ruleName];
|
332
334
|
const validator = this.pluginRegistry.get(ruleName);
|
333
335
|
if (!validator && !customRule) {
|
334
336
|
return {
|
335
337
|
rule: ruleName,
|
336
338
|
result: false,
|
337
|
-
message: this.translationService.
|
339
|
+
message: await this.translationService.translateAsync('validation.messages.invalid-rull-name', { params: { name: ruleName } }),
|
338
340
|
value
|
339
341
|
};
|
340
342
|
}
|
341
343
|
if (options?.message) {
|
342
|
-
options.message = this.translationService.
|
344
|
+
options.message = await this.translationService.translateAsync(options.message);
|
343
345
|
}
|
344
346
|
//
|
345
347
|
if (validator)
|
@@ -403,8 +405,10 @@ class AXValidationModule {
|
|
403
405
|
providers: [
|
404
406
|
...(configs?.rules || []),
|
405
407
|
{
|
406
|
-
provide:
|
407
|
-
useFactory: (pluginRegistry) => () =>
|
408
|
+
provide: 'AXValidationModuleFactory',
|
409
|
+
useFactory: (pluginRegistry) => () => {
|
410
|
+
pluginRegistry.register(...[...BUILT_IN_RULES, ...(configs?.rules || [])]);
|
411
|
+
},
|
408
412
|
deps: [AXValidationRegistryService],
|
409
413
|
multi: true
|
410
414
|
}
|
@@ -412,21 +416,30 @@ class AXValidationModule {
|
|
412
416
|
};
|
413
417
|
}
|
414
418
|
static forChild(configs) {
|
415
|
-
AXValidationModule.registry.register(...[...BUILT_IN_RULES, ...(configs?.rules || [])]);
|
416
419
|
return {
|
417
420
|
ngModule: AXValidationModule,
|
418
421
|
providers: [
|
419
|
-
...(configs?.rules || [])
|
422
|
+
...(configs?.rules || []),
|
423
|
+
{
|
424
|
+
provide: 'AXValidationModuleFactory',
|
425
|
+
useFactory: (pluginRegistry) => () => {
|
426
|
+
pluginRegistry.register(...[...BUILT_IN_RULES, ...(configs?.rules || [])]);
|
427
|
+
},
|
428
|
+
deps: [AXValidationRegistryService],
|
429
|
+
multi: true
|
430
|
+
}
|
420
431
|
]
|
421
432
|
};
|
422
433
|
}
|
423
434
|
/**
|
424
435
|
* @ignore
|
425
436
|
*/
|
426
|
-
constructor(
|
427
|
-
|
437
|
+
constructor(instances) {
|
438
|
+
instances.forEach(f => {
|
439
|
+
f();
|
440
|
+
});
|
428
441
|
}
|
429
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.8", ngImport: i0, type: AXValidationModule, deps: [{ token:
|
442
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.8", ngImport: i0, type: AXValidationModule, deps: [{ token: 'AXValidationModuleFactory' }], target: i0.ɵɵFactoryTarget.NgModule }); }
|
430
443
|
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.0.8", ngImport: i0, type: AXValidationModule }); }
|
431
444
|
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.0.8", ngImport: i0, type: AXValidationModule, providers: [
|
432
445
|
...BUILT_IN_RULES
|
@@ -440,7 +453,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.8", ngImpor
|
|
440
453
|
...BUILT_IN_RULES
|
441
454
|
]
|
442
455
|
}]
|
443
|
-
}], ctorParameters: () => [{ type:
|
456
|
+
}], ctorParameters: () => [{ type: undefined, decorators: [{
|
457
|
+
type: Inject,
|
458
|
+
args: ['AXValidationModuleFactory']
|
459
|
+
}] }] });
|
444
460
|
|
445
461
|
/**
|
446
462
|
* Generated bundle index. Do not edit.
|
@@ -1 +1 @@
|
|
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":"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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): 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 async validate(value: string, options: AXRegexValidationRuleOptions): Promise<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 const translatedMessage = await this.traslationService.translateAsync(\n options?.message ?? `The value does not match the pattern ${regexPattern}.`, { params: { title: options?.['title'] } });\n return {\n rule: this.name,\n result: isValid,\n message: isValid ? null : translatedMessage,\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\";\nimport { firstValueFrom, lastValueFrom } from \"rxjs\";\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 async validate(value?: unknown, options?: AXRequiredValidationRuleOptions): Promise<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 translatedMessage = await this.traslationService.translateAsync(\"validation.messages.required\", { params: { title: options?.['title'] } });\n const message = failedRule ? options?.message ?? translatedMessage : 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 async validate(value: T, options: AXCallbackValidationRuleOptions<T>): 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 async validate(value: string, options: AXMinLengthValidationRuleOptions): Promise<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 async validate(value: string, options: AXMaxLengthValidationRuleOptions): Promise<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 async validate(value: string, options: AXLengthValidationRuleOptions): Promise<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 async validate(value: any, options: AXEqualValidationRuleOptions): Promise<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 async validate(value: number, options: AXLessThanValidationRuleOptions): Promise<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 async validate(value: number, options: AXGreaterThanValidationRuleOptions): Promise<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 async validate(value: T, options: AXBetweenValidationRuleOptions<T>): Promise<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 async validate(ruleName: string, value: unknown, options?: AXValidationRuleOptions): 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: await this.translationService.translateAsync('validation.messages.invalid-rull-name', { params: { name: ruleName } }),\n value\n };\n }\n\n if (options?.message) {\n options.message = await this.translationService.translateAsync(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 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, Inject, 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 static forRoot(configs?: AXValidationModuleConfigs): ModuleWithProviders<AXValidationModule> {\n return {\n ngModule: AXValidationModule,\n providers: [\n ...(configs?.rules || []),\n {\n provide: 'AXValidationModuleFactory',\n useFactory: (pluginRegistry: AXValidationRegistryService) => () => {\n pluginRegistry.register(...[...BUILT_IN_RULES, ...(configs?.rules || [])]);\n },\n deps: [AXValidationRegistryService],\n multi: true\n }\n ]\n };\n }\n\n static forChild(configs?: AXValidationModuleConfigs): ModuleWithProviders<AXValidationModule> {\n return {\n ngModule: AXValidationModule,\n providers: [\n ...(configs?.rules || []),\n {\n provide: 'AXValidationModuleFactory',\n useFactory: (pluginRegistry: AXValidationRegistryService) => () => {\n pluginRegistry.register(...[...BUILT_IN_RULES, ...(configs?.rules || [])]);\n },\n deps: [AXValidationRegistryService],\n multi: true\n }\n\n ]\n };\n }\n\n /**\n * @ignore\n */\n constructor(@Inject('AXValidationModuleFactory') instances: any[]) {\n instances.forEach(f => {\n f();\n });\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
package/format/index.d.ts
CHANGED
@@ -1,5 +1,4 @@
|
|
1
1
|
import { ModuleWithProviders } from '@angular/core';
|
2
|
-
import { AXFormatterRegistryService } from './format.service';
|
3
2
|
import { AXFormatter } from './format.config';
|
4
3
|
import * as i0 from "@angular/core";
|
5
4
|
import * as i1 from "./format.pipe";
|
@@ -7,13 +6,12 @@ export interface AXFormatModuleConfigs {
|
|
7
6
|
formatters: (new () => AXFormatter)[];
|
8
7
|
}
|
9
8
|
export declare class AXFormatModule {
|
10
|
-
private static registry;
|
11
9
|
static forRoot(configs?: AXFormatModuleConfigs): ModuleWithProviders<AXFormatModule>;
|
12
10
|
static forChild(configs?: AXFormatModuleConfigs): ModuleWithProviders<AXFormatModule>;
|
13
11
|
/**
|
14
12
|
* @ignore
|
15
13
|
*/
|
16
|
-
constructor(
|
14
|
+
constructor(instances: any[]);
|
17
15
|
static ɵfac: i0.ɵɵFactoryDeclaration<AXFormatModule, never>;
|
18
16
|
static ɵmod: i0.ɵɵNgModuleDeclaration<AXFormatModule, [typeof i1.AXFormatPipe], never, [typeof i1.AXFormatPipe]>;
|
19
17
|
static ɵinj: i0.ɵɵInjectorDeclaration<AXFormatModule>;
|
@@ -0,0 +1,14 @@
|
|
1
|
+
import { AXFormatter } from '../format.config';
|
2
|
+
import { AXFormatOptions } from '../format.types';
|
3
|
+
export interface AXStringFormatterOptions extends AXFormatOptions {
|
4
|
+
[key: string]: any;
|
5
|
+
}
|
6
|
+
declare module '../format.types' {
|
7
|
+
interface AXFormatOptionsMap {
|
8
|
+
'string': AXStringFormatterOptions;
|
9
|
+
}
|
10
|
+
}
|
11
|
+
export declare class AXStringFormatter implements AXFormatter {
|
12
|
+
get name(): string;
|
13
|
+
format(value: unknown, options: AXStringFormatterOptions): string;
|
14
|
+
}
|
package/package.json
CHANGED
@@ -24,6 +24,7 @@ export declare class AXTranslationService {
|
|
24
24
|
private load;
|
25
25
|
private getTranslation;
|
26
26
|
translate(key: string, options?: AXTranslateOptions): Observable<string>;
|
27
|
+
translateAsync(key: string, options?: AXTranslateOptions): Promise<string>;
|
27
28
|
translateSync(key: string, options?: AXTranslateOptions): string;
|
28
29
|
static ɵfac: i0.ɵɵFactoryDeclaration<AXTranslationService, never>;
|
29
30
|
static ɵprov: i0.ɵɵInjectableDeclaration<AXTranslationService>;
|
@@ -12,7 +12,7 @@ declare module '../validation.types' {
|
|
12
12
|
}
|
13
13
|
export declare class AXBetweenValidationRule<T = number | Date> implements AXValidationRule {
|
14
14
|
get name(): string;
|
15
|
-
validate(value: T, options: AXBetweenValidationRuleOptions<T>): AXValidationRuleResult
|
15
|
+
validate(value: T, options: AXBetweenValidationRuleOptions<T>): Promise<AXValidationRuleResult>;
|
16
16
|
static ɵfac: i0.ɵɵFactoryDeclaration<AXBetweenValidationRule<any>, never>;
|
17
17
|
static ɵprov: i0.ɵɵInjectableDeclaration<AXBetweenValidationRule<any>>;
|
18
18
|
}
|
@@ -17,7 +17,7 @@ declare module '../validation.types' {
|
|
17
17
|
}
|
18
18
|
export declare class AXCallbackValidationRule<T> implements AXValidationRule {
|
19
19
|
get name(): string;
|
20
|
-
validate(value: T, options: AXCallbackValidationRuleOptions<T>):
|
20
|
+
validate(value: T, options: AXCallbackValidationRuleOptions<T>): Promise<AXValidationRuleResult>;
|
21
21
|
static ɵfac: i0.ɵɵFactoryDeclaration<AXCallbackValidationRule<any>, never>;
|
22
22
|
static ɵprov: i0.ɵɵInjectableDeclaration<AXCallbackValidationRule<any>>;
|
23
23
|
}
|
@@ -11,7 +11,7 @@ declare module '../validation.types' {
|
|
11
11
|
}
|
12
12
|
export declare class AXEqualValidationRule implements AXValidationRule {
|
13
13
|
get name(): string;
|
14
|
-
validate(value: any, options: AXEqualValidationRuleOptions): AXValidationRuleResult
|
14
|
+
validate(value: any, options: AXEqualValidationRuleOptions): Promise<AXValidationRuleResult>;
|
15
15
|
static ɵfac: i0.ɵɵFactoryDeclaration<AXEqualValidationRule, never>;
|
16
16
|
static ɵprov: i0.ɵɵInjectableDeclaration<AXEqualValidationRule>;
|
17
17
|
}
|
@@ -11,7 +11,7 @@ declare module '../validation.types' {
|
|
11
11
|
}
|
12
12
|
export declare class AXGreaterThanValidationRule implements AXValidationRule {
|
13
13
|
get name(): string;
|
14
|
-
validate(value: number, options: AXGreaterThanValidationRuleOptions): AXValidationRuleResult
|
14
|
+
validate(value: number, options: AXGreaterThanValidationRuleOptions): Promise<AXValidationRuleResult>;
|
15
15
|
static ɵfac: i0.ɵɵFactoryDeclaration<AXGreaterThanValidationRule, never>;
|
16
16
|
static ɵprov: i0.ɵɵInjectableDeclaration<AXGreaterThanValidationRule>;
|
17
17
|
}
|
@@ -11,7 +11,7 @@ declare module '../validation.types' {
|
|
11
11
|
}
|
12
12
|
export declare class AXLengthValidationRule implements AXValidationRule {
|
13
13
|
get name(): string;
|
14
|
-
validate(value: string, options: AXLengthValidationRuleOptions): AXValidationRuleResult
|
14
|
+
validate(value: string, options: AXLengthValidationRuleOptions): Promise<AXValidationRuleResult>;
|
15
15
|
static ɵfac: i0.ɵɵFactoryDeclaration<AXLengthValidationRule, never>;
|
16
16
|
static ɵprov: i0.ɵɵInjectableDeclaration<AXLengthValidationRule>;
|
17
17
|
}
|
@@ -11,7 +11,7 @@ declare module '../validation.types' {
|
|
11
11
|
}
|
12
12
|
export declare class AXLessThanValidationRule implements AXValidationRule {
|
13
13
|
get name(): string;
|
14
|
-
validate(value: number, options: AXLessThanValidationRuleOptions): AXValidationRuleResult
|
14
|
+
validate(value: number, options: AXLessThanValidationRuleOptions): Promise<AXValidationRuleResult>;
|
15
15
|
static ɵfac: i0.ɵɵFactoryDeclaration<AXLessThanValidationRule, never>;
|
16
16
|
static ɵprov: i0.ɵɵInjectableDeclaration<AXLessThanValidationRule>;
|
17
17
|
}
|
@@ -10,7 +10,7 @@ declare module '../validation.types' {
|
|
10
10
|
}
|
11
11
|
export declare class AXMaxLengthValidationRule implements AXValidationRule {
|
12
12
|
get name(): string;
|
13
|
-
validate(value: string, options: AXMaxLengthValidationRuleOptions): AXValidationRuleResult
|
13
|
+
validate(value: string, options: AXMaxLengthValidationRuleOptions): Promise<AXValidationRuleResult>;
|
14
14
|
static ɵfac: i0.ɵɵFactoryDeclaration<AXMaxLengthValidationRule, never>;
|
15
15
|
static ɵprov: i0.ɵɵInjectableDeclaration<AXMaxLengthValidationRule>;
|
16
16
|
}
|
@@ -10,7 +10,7 @@ declare module '../validation.types' {
|
|
10
10
|
}
|
11
11
|
export declare class AXMinLengthValidationRule implements AXValidationRule {
|
12
12
|
get name(): string;
|
13
|
-
validate(value: string, options: AXMinLengthValidationRuleOptions): AXValidationRuleResult
|
13
|
+
validate(value: string, options: AXMinLengthValidationRuleOptions): Promise<AXValidationRuleResult>;
|
14
14
|
static ɵfac: i0.ɵɵFactoryDeclaration<AXMinLengthValidationRule, never>;
|
15
15
|
static ɵprov: i0.ɵɵInjectableDeclaration<AXMinLengthValidationRule>;
|
16
16
|
}
|
@@ -11,7 +11,7 @@ declare module '../validation.types' {
|
|
11
11
|
export declare class AXRegexValidationRule implements AXValidationRule {
|
12
12
|
private traslationService;
|
13
13
|
get name(): string;
|
14
|
-
validate(value: string, options: AXRegexValidationRuleOptions): AXValidationRuleResult
|
14
|
+
validate(value: string, options: AXRegexValidationRuleOptions): Promise<AXValidationRuleResult>;
|
15
15
|
static ɵfac: i0.ɵɵFactoryDeclaration<AXRegexValidationRule, never>;
|
16
16
|
static ɵprov: i0.ɵɵInjectableDeclaration<AXRegexValidationRule>;
|
17
17
|
}
|
@@ -10,7 +10,7 @@ declare module '../validation.types' {
|
|
10
10
|
export declare class AXRequiredValidationRule implements AXValidationRule {
|
11
11
|
private traslationService;
|
12
12
|
get name(): string;
|
13
|
-
validate(value?: unknown, options?: AXRequiredValidationRuleOptions): AXValidationRuleResult
|
13
|
+
validate(value?: unknown, options?: AXRequiredValidationRuleOptions): Promise<AXValidationRuleResult>;
|
14
14
|
static ɵfac: i0.ɵɵFactoryDeclaration<AXRequiredValidationRule, never>;
|
15
15
|
static ɵprov: i0.ɵɵInjectableDeclaration<AXRequiredValidationRule>;
|
16
16
|
}
|
@@ -1,18 +1,16 @@
|
|
1
1
|
import { ModuleWithProviders } from '@angular/core';
|
2
|
-
import { AXValidationRegistryService } from './validation.service';
|
3
2
|
import { AXValidationRule } from './validation.types';
|
4
3
|
import * as i0 from "@angular/core";
|
5
4
|
export interface AXValidationModuleConfigs {
|
6
5
|
rules: (new () => AXValidationRule)[];
|
7
6
|
}
|
8
7
|
export declare class AXValidationModule {
|
9
|
-
private static registry;
|
10
8
|
static forRoot(configs?: AXValidationModuleConfigs): ModuleWithProviders<AXValidationModule>;
|
11
9
|
static forChild(configs?: AXValidationModuleConfigs): ModuleWithProviders<AXValidationModule>;
|
12
10
|
/**
|
13
11
|
* @ignore
|
14
12
|
*/
|
15
|
-
constructor(
|
13
|
+
constructor(instances: any[]);
|
16
14
|
static ɵfac: i0.ɵɵFactoryDeclaration<AXValidationModule, never>;
|
17
15
|
static ɵmod: i0.ɵɵNgModuleDeclaration<AXValidationModule, never, never, never>;
|
18
16
|
static ɵinj: i0.ɵɵInjectorDeclaration<AXValidationModule>;
|
@@ -18,7 +18,7 @@ export declare class AXValidationService {
|
|
18
18
|
private pluginRegistry;
|
19
19
|
private translationService;
|
20
20
|
constructor(pluginRegistry: AXValidationRegistryService, translationService: AXTranslationService);
|
21
|
-
validate(ruleName: string, value: unknown, options?: AXValidationRuleOptions):
|
21
|
+
validate(ruleName: string, value: unknown, options?: AXValidationRuleOptions): Promise<AXValidationRuleResult>;
|
22
22
|
ruleFor(value: unknown): AXValidationRuleChain;
|
23
23
|
static ɵfac: i0.ɵɵFactoryDeclaration<AXValidationService, never>;
|
24
24
|
static ɵprov: i0.ɵɵInjectableDeclaration<AXValidationService>;
|
@@ -6,7 +6,7 @@ export interface AXValidationRuleOptionsMap {
|
|
6
6
|
}
|
7
7
|
export declare abstract class AXValidationRule {
|
8
8
|
abstract get name(): string;
|
9
|
-
abstract validate(value: unknown, options?: AXValidationRuleOptions):
|
9
|
+
abstract validate(value: unknown, options?: AXValidationRuleOptions): Promise<AXValidationRuleResult>;
|
10
10
|
}
|
11
11
|
export interface AXValidationRuleResult {
|
12
12
|
rule: string;
|