@acorex/core 7.17.23 → 7.17.24
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/validation/index.mjs +2 -1
- package/esm2022/validation/lib/rules/callback-rule.mjs +2 -2
- package/esm2022/validation/lib/rules/equal-rule.mjs +1 -1
- package/esm2022/validation/lib/rules/greater-than.mjs +18 -0
- package/esm2022/validation/lib/rules/less-than-rule.mjs +5 -4
- package/esm2022/validation/lib/validation.module.mjs +4 -3
- package/fesm2022/acorex-core-validation.mjs +23 -6
- package/fesm2022/acorex-core-validation.mjs.map +1 -1
- package/package.json +1 -1
- package/validation/index.d.ts +1 -0
- package/validation/lib/rules/callback-rule.d.ts +1 -1
- package/validation/lib/rules/greater-than.d.ts +14 -0
- package/validation/lib/rules/less-than-rule.d.ts +1 -0
@@ -10,7 +10,8 @@ export * from './lib/rules/length-rule';
|
|
10
10
|
//
|
11
11
|
export * from './lib/rules/equal-rule';
|
12
12
|
export * from './lib/rules/less-than-rule';
|
13
|
+
export * from './lib/rules/greater-than';
|
13
14
|
//
|
14
15
|
export * from './lib/validation.service';
|
15
16
|
export * from './lib/validation.module';
|
16
|
-
//# sourceMappingURL=data:application/json;base64,
|
17
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzL2NvcmUvdmFsaWRhdGlvbi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxrQkFBa0IsQ0FBQztBQUNqQyxFQUFFO0FBQ0YsY0FBYyx3QkFBd0IsQ0FBQztBQUN2QyxjQUFjLDJCQUEyQixDQUFDO0FBQzFDLGNBQWMsMkJBQTJCLENBQUM7QUFDMUMsRUFBRTtBQUNGLGNBQWMsNEJBQTRCLENBQUM7QUFDM0MsY0FBYyw0QkFBNEIsQ0FBQztBQUMzQyxjQUFjLHlCQUF5QixDQUFDO0FBQ3hDLEVBQUU7QUFDRixjQUFjLHdCQUF3QixDQUFDO0FBQ3ZDLGNBQWMsNEJBQTRCLENBQUM7QUFDM0MsY0FBYywwQkFBMEIsQ0FBQztBQUN6QyxFQUFFO0FBQ0YsY0FBYywwQkFBMEIsQ0FBQztBQUN6QyxjQUFjLHlCQUF5QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9saWIvdmFsaWRhdGlvbic7XG4vL1xuZXhwb3J0ICogZnJvbSAnLi9saWIvcnVsZXMvcmVnZXgtcnVsZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9ydWxlcy9yZXF1aXJlZC1ydWxlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3J1bGVzL2NhbGxiYWNrLXJ1bGUnO1xuLy9cbmV4cG9ydCAqIGZyb20gJy4vbGliL3J1bGVzL21pbmxlbmd0aC1ydWxlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3J1bGVzL21heGxlbmd0aC1ydWxlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3J1bGVzL2xlbmd0aC1ydWxlJztcbi8vXG5leHBvcnQgKiBmcm9tICcuL2xpYi9ydWxlcy9lcXVhbC1ydWxlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3J1bGVzL2xlc3MtdGhhbi1ydWxlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3J1bGVzL2dyZWF0ZXItdGhhbic7XG4vL1xuZXhwb3J0ICogZnJvbSAnLi9saWIvdmFsaWRhdGlvbi5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3ZhbGlkYXRpb24ubW9kdWxlJzsiXX0=
|
@@ -3,7 +3,7 @@ export class AXCallbackValidationRule {
|
|
3
3
|
return 'callback';
|
4
4
|
}
|
5
5
|
validate(value, options) {
|
6
|
-
const validationResult = options?.validate(value) || { result: false, message: "Invalid callback function" };
|
6
|
+
const validationResult = options?.validate(value, options) || { result: false, message: "Invalid callback function" };
|
7
7
|
const createResult = (result) => ({
|
8
8
|
rule: this.name,
|
9
9
|
result: result.result,
|
@@ -16,4 +16,4 @@ export class AXCallbackValidationRule {
|
|
16
16
|
return createResult(validationResult);
|
17
17
|
}
|
18
18
|
}
|
19
|
-
//# sourceMappingURL=data:application/json;base64,
|
19
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FsbGJhY2stcnVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29yZS92YWxpZGF0aW9uL3NyYy9saWIvcnVsZXMvY2FsbGJhY2stcnVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFlQSxNQUFNLE9BQU8sd0JBQXdCO0lBRWpDLElBQUksSUFBSTtRQUNKLE9BQU8sVUFBVSxDQUFDO0lBQ3RCLENBQUM7SUFFRCxRQUFRLENBQUMsS0FBUSxFQUFFLE9BQTJDO1FBQzFELE1BQU0sZ0JBQWdCLEdBQUcsT0FBTyxFQUFFLFFBQVEsQ0FBQyxLQUFLLEVBQUUsT0FBTyxDQUFDLElBQUksRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxDQUFDO1FBQ3RILE1BQU0sWUFBWSxHQUFHLENBQUMsTUFBNkMsRUFBRSxFQUFFLENBQUMsQ0FBQztZQUNyRSxJQUFJLEVBQUUsSUFBSSxDQUFDLElBQUk7WUFDZixNQUFNLEVBQUUsTUFBTSxDQUFDLE1BQU07WUFDckIsT0FBTyxFQUFFLE1BQU0sQ0FBQyxPQUFPLElBQUksT0FBTyxFQUFFLE9BQU8sSUFBSSxFQUFFO1lBQ2pELEtBQUssRUFBRSxLQUFLO1NBQ2YsQ0FBQyxDQUFDO1FBRUgsSUFBSSxnQkFBZ0IsWUFBWSxPQUFPLEVBQUU7WUFDckMsT0FBTyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUM7U0FDOUM7UUFFRCxPQUFPLFlBQVksQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO0lBQzFDLENBQUM7Q0FDSiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFYVmFsaWRhdGlvblJ1bGUsIEFYVmFsaWRhdGlvblJ1bGVPcHRpb25zLCBBWFZhbGlkYXRpb25SdWxlUmVzdWx0IH0gZnJvbSBcIi4uL3ZhbGlkYXRpb25cIjtcblxuZXhwb3J0IHR5cGUgQVhDYWxsYmFja1ZhbGlkYXRpb248VD4gPSAodmFsdWU6IFQsIG9wdGlvbnM/OiBBWENhbGxiYWNrVmFsaWRhdGlvblJ1bGVPcHRpb25zPFQ+KSA9PiBQcm9taXNlPHsgcmVzdWx0OiBib29sZWFuLCBtZXNzYWdlPzogc3RyaW5nIH0+IHwgeyByZXN1bHQ6IGJvb2xlYW4sIG1lc3NhZ2U/OiBzdHJpbmcgfTtcblxuZXhwb3J0IGludGVyZmFjZSBBWENhbGxiYWNrVmFsaWRhdGlvblJ1bGVPcHRpb25zPFQ+IGV4dGVuZHMgQVhWYWxpZGF0aW9uUnVsZU9wdGlvbnMge1xuICAgIHZhbGlkYXRlOiBBWENhbGxiYWNrVmFsaWRhdGlvbjxUPlxufVxuXG4vLyBBdWdtZW50IHRoZSBBWFZhbGlkYXRpb25SdWxlT3B0aW9uc01hcFxuZGVjbGFyZSBtb2R1bGUgJy4uL3ZhbGlkYXRpb24nIHtcbiAgICBpbnRlcmZhY2UgQVhWYWxpZGF0aW9uUnVsZU9wdGlvbnNNYXAge1xuICAgICAgICAnY2FsbGJhY2snOiBBWENhbGxiYWNrVmFsaWRhdGlvblJ1bGVPcHRpb25zPHVua25vd24+O1xuICAgIH1cbn1cblxuZXhwb3J0IGNsYXNzIEFYQ2FsbGJhY2tWYWxpZGF0aW9uUnVsZTxUPiBpbXBsZW1lbnRzIEFYVmFsaWRhdGlvblJ1bGUge1xuXG4gICAgZ2V0IG5hbWUoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuICdjYWxsYmFjayc7XG4gICAgfVxuXG4gICAgdmFsaWRhdGUodmFsdWU6IFQsIG9wdGlvbnM6IEFYQ2FsbGJhY2tWYWxpZGF0aW9uUnVsZU9wdGlvbnM8VD4pOiBBWFZhbGlkYXRpb25SdWxlUmVzdWx0IHwgUHJvbWlzZTxBWFZhbGlkYXRpb25SdWxlUmVzdWx0PiB7XG4gICAgICAgIGNvbnN0IHZhbGlkYXRpb25SZXN1bHQgPSBvcHRpb25zPy52YWxpZGF0ZSh2YWx1ZSwgb3B0aW9ucykgfHwgeyByZXN1bHQ6IGZhbHNlLCBtZXNzYWdlOiBcIkludmFsaWQgY2FsbGJhY2sgZnVuY3Rpb25cIiB9O1xuICAgICAgICBjb25zdCBjcmVhdGVSZXN1bHQgPSAocmVzdWx0OiB7IHJlc3VsdDogYm9vbGVhbiwgbWVzc2FnZT86IHN0cmluZyB9KSA9PiAoe1xuICAgICAgICAgICAgcnVsZTogdGhpcy5uYW1lLFxuICAgICAgICAgICAgcmVzdWx0OiByZXN1bHQucmVzdWx0LFxuICAgICAgICAgICAgbWVzc2FnZTogcmVzdWx0Lm1lc3NhZ2UgPz8gb3B0aW9ucz8ubWVzc2FnZSA/PyAnJyxcbiAgICAgICAgICAgIHZhbHVlOiB2YWx1ZVxuICAgICAgICB9KTtcblxuICAgICAgICBpZiAodmFsaWRhdGlvblJlc3VsdCBpbnN0YW5jZW9mIFByb21pc2UpIHtcbiAgICAgICAgICAgIHJldHVybiB2YWxpZGF0aW9uUmVzdWx0LnRoZW4oY3JlYXRlUmVzdWx0KTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBjcmVhdGVSZXN1bHQodmFsaWRhdGlvblJlc3VsdCk7XG4gICAgfVxufSJdfQ==
|
@@ -16,4 +16,4 @@ export class AXEqualValidationRule {
|
|
16
16
|
};
|
17
17
|
}
|
18
18
|
}
|
19
|
-
//# sourceMappingURL=data:application/json;base64,
|
19
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXF1YWwtcnVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29yZS92YWxpZGF0aW9uL3NyYy9saWIvcnVsZXMvZXF1YWwtcnVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSw4QkFBOEI7QUFDOUIsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLFdBQVcsQ0FBQztBQWNwQyxNQUFNLE9BQU8scUJBQXFCO0lBQzlCLElBQUksSUFBSTtRQUNKLE9BQU8sT0FBTyxDQUFDO0lBQ25CLENBQUM7SUFFRCxRQUFRLENBQUMsS0FBVSxFQUFFLE9BQXFDO1FBQ3RELE1BQU0sWUFBWSxHQUFHLE9BQU8sQ0FBQyxLQUFLLEVBQUUsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ25ELE1BQU0sT0FBTyxHQUFHLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUM7UUFFM0QsTUFBTSxjQUFjLEdBQUcsa0JBQWtCLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxlQUFlLE9BQU8sQ0FBQyxLQUFLLEdBQUcsQ0FBQztRQUNsRyxPQUFPO1lBQ0gsSUFBSSxFQUFFLElBQUksQ0FBQyxJQUFJO1lBQ2YsTUFBTSxFQUFFLE9BQU87WUFDZixPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLE9BQU8sRUFBRSxPQUFPLElBQUksY0FBYztZQUMxRCxLQUFLLEVBQUUsS0FBSztTQUNmLENBQUM7SUFDTixDQUFDO0NBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBheC1lcXVhbC12YWxpZGF0aW9uLXJ1bGUudHNcbmltcG9ydCB7IGlzRXF1YWwgfSBmcm9tIFwibG9kYXNoLWVzXCI7XG5pbXBvcnQgeyBBWFZhbGlkYXRpb25SdWxlLCBBWFZhbGlkYXRpb25SdWxlT3B0aW9ucywgQVhWYWxpZGF0aW9uUnVsZVJlc3VsdCB9IGZyb20gXCIuLi92YWxpZGF0aW9uXCI7XG5cbmV4cG9ydCBpbnRlcmZhY2UgQVhFcXVhbFZhbGlkYXRpb25SdWxlT3B0aW9ucyBleHRlbmRzIEFYVmFsaWRhdGlvblJ1bGVPcHRpb25zIHtcbiAgICB2YWx1ZTogYW55O1xuICAgIG5vdD86IGJvb2xlYW47IC8vIE9wdGlvbmFsIGZsYWcgdG8gaW52ZXJ0IHRoZSB2YWxpZGF0aW9uIGxvZ2ljXG59XG5cbmRlY2xhcmUgbW9kdWxlICcuLi92YWxpZGF0aW9uJyB7XG4gICAgaW50ZXJmYWNlIEFYVmFsaWRhdGlvblJ1bGVPcHRpb25zTWFwIHtcbiAgICAgICAgJ2VxdWFsJzogQVhFcXVhbFZhbGlkYXRpb25SdWxlT3B0aW9ucztcbiAgICB9XG59XG5cbmV4cG9ydCBjbGFzcyBBWEVxdWFsVmFsaWRhdGlvblJ1bGUgaW1wbGVtZW50cyBBWFZhbGlkYXRpb25SdWxlIHtcbiAgICBnZXQgbmFtZSgpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gJ2VxdWFsJztcbiAgICB9XG5cbiAgICB2YWxpZGF0ZSh2YWx1ZTogYW55LCBvcHRpb25zOiBBWEVxdWFsVmFsaWRhdGlvblJ1bGVPcHRpb25zKTogQVhWYWxpZGF0aW9uUnVsZVJlc3VsdCB7XG4gICAgICAgIGNvbnN0IGlzVmFsdWVFcXVhbCA9IGlzRXF1YWwodmFsdWUsIG9wdGlvbnMudmFsdWUpO1xuICAgICAgICBjb25zdCBpc1ZhbGlkID0gb3B0aW9ucy5ub3QgPyAhaXNWYWx1ZUVxdWFsIDogaXNWYWx1ZUVxdWFsO1xuXG4gICAgICAgIGNvbnN0IGRlZmF1bHRNZXNzYWdlID0gYFRoZSB2YWx1ZSBtdXN0ICR7b3B0aW9ucy5ub3QgPyAnbm90ICcgOiAnJ31iZSBlcXVhbCB0byAke29wdGlvbnMudmFsdWV9LmA7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBydWxlOiB0aGlzLm5hbWUsXG4gICAgICAgICAgICByZXN1bHQ6IGlzVmFsaWQsXG4gICAgICAgICAgICBtZXNzYWdlOiBpc1ZhbGlkID8gJycgOiBvcHRpb25zPy5tZXNzYWdlID8/IGRlZmF1bHRNZXNzYWdlLFxuICAgICAgICAgICAgdmFsdWU6IHZhbHVlXG4gICAgICAgIH07XG4gICAgfVxufVxuIl19
|
@@ -0,0 +1,18 @@
|
|
1
|
+
// ax-greater-than-validation-rule.ts
|
2
|
+
import { isNull, isUndefined } from "lodash-es";
|
3
|
+
export class AXGreaterThanValidationRule {
|
4
|
+
get name() {
|
5
|
+
return 'greaterThan';
|
6
|
+
}
|
7
|
+
validate(value, options) {
|
8
|
+
const isValid = (isNull(value) || isUndefined(value)) ? true : (options.inclusive ? value >= options.value : value > options.value);
|
9
|
+
const baseMessage = `The value must be ${options.inclusive ? 'greater than or equal to' : 'greater than'} ${options.value}.`;
|
10
|
+
return {
|
11
|
+
rule: this.name,
|
12
|
+
result: isValid,
|
13
|
+
message: isValid ? '' : options?.message ?? baseMessage,
|
14
|
+
value: value
|
15
|
+
};
|
16
|
+
}
|
17
|
+
}
|
18
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JlYXRlci10aGFuLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb3JlL3ZhbGlkYXRpb24vc3JjL2xpYi9ydWxlcy9ncmVhdGVyLXRoYW4udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEscUNBQXFDO0FBQ3JDLE9BQU8sRUFBRSxNQUFNLEVBQUUsV0FBVyxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBY2hELE1BQU0sT0FBTywyQkFBMkI7SUFDcEMsSUFBSSxJQUFJO1FBQ0osT0FBTyxhQUFhLENBQUM7SUFDekIsQ0FBQztJQUVELFFBQVEsQ0FBQyxLQUFhLEVBQUUsT0FBMkM7UUFDL0QsTUFBTSxPQUFPLEdBQUcsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLElBQUksV0FBVyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxLQUFLLElBQUksT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsS0FBSyxHQUFHLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNwSSxNQUFNLFdBQVcsR0FBRyxxQkFBcUIsT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsMEJBQTBCLENBQUMsQ0FBQyxDQUFDLGNBQWMsSUFBSSxPQUFPLENBQUMsS0FBSyxHQUFHLENBQUM7UUFFN0gsT0FBTztZQUNILElBQUksRUFBRSxJQUFJLENBQUMsSUFBSTtZQUNmLE1BQU0sRUFBRSxPQUFPO1lBQ2YsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxPQUFPLEVBQUUsT0FBTyxJQUFJLFdBQVc7WUFDdkQsS0FBSyxFQUFFLEtBQUs7U0FDZixDQUFDO0lBQ04sQ0FBQztDQUNKIiwic291cmNlc0NvbnRlbnQiOlsiLy8gYXgtZ3JlYXRlci10aGFuLXZhbGlkYXRpb24tcnVsZS50c1xuaW1wb3J0IHsgaXNOdWxsLCBpc1VuZGVmaW5lZCB9IGZyb20gXCJsb2Rhc2gtZXNcIjtcbmltcG9ydCB7IEFYVmFsaWRhdGlvblJ1bGUsIEFYVmFsaWRhdGlvblJ1bGVPcHRpb25zLCBBWFZhbGlkYXRpb25SdWxlUmVzdWx0IH0gZnJvbSBcIi4uL3ZhbGlkYXRpb25cIjtcblxuZXhwb3J0IGludGVyZmFjZSBBWEdyZWF0ZXJUaGFuVmFsaWRhdGlvblJ1bGVPcHRpb25zIGV4dGVuZHMgQVhWYWxpZGF0aW9uUnVsZU9wdGlvbnMge1xuICAgIHZhbHVlOiBudW1iZXI7XG4gICAgaW5jbHVzaXZlPzogYm9vbGVhbjsgLy8gT3B0aW9uYWwgZmxhZyBmb3IgaW5jbHVzaXZlbmVzc1xufVxuXG5kZWNsYXJlIG1vZHVsZSAnLi4vdmFsaWRhdGlvbicge1xuICAgIGludGVyZmFjZSBBWFZhbGlkYXRpb25SdWxlT3B0aW9uc01hcCB7XG4gICAgICAgICdncmVhdGVyVGhhbic6IEFYR3JlYXRlclRoYW5WYWxpZGF0aW9uUnVsZU9wdGlvbnM7XG4gICAgfVxufVxuXG5leHBvcnQgY2xhc3MgQVhHcmVhdGVyVGhhblZhbGlkYXRpb25SdWxlIGltcGxlbWVudHMgQVhWYWxpZGF0aW9uUnVsZSB7XG4gICAgZ2V0IG5hbWUoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuICdncmVhdGVyVGhhbic7XG4gICAgfVxuXG4gICAgdmFsaWRhdGUodmFsdWU6IG51bWJlciwgb3B0aW9uczogQVhHcmVhdGVyVGhhblZhbGlkYXRpb25SdWxlT3B0aW9ucyk6IEFYVmFsaWRhdGlvblJ1bGVSZXN1bHQge1xuICAgICAgICBjb25zdCBpc1ZhbGlkID0gKGlzTnVsbCh2YWx1ZSkgfHwgaXNVbmRlZmluZWQodmFsdWUpKSA/IHRydWUgOiAob3B0aW9ucy5pbmNsdXNpdmUgPyB2YWx1ZSA+PSBvcHRpb25zLnZhbHVlIDogdmFsdWUgPiBvcHRpb25zLnZhbHVlKTtcbiAgICAgICAgY29uc3QgYmFzZU1lc3NhZ2UgPSBgVGhlIHZhbHVlIG11c3QgYmUgJHtvcHRpb25zLmluY2x1c2l2ZSA/ICdncmVhdGVyIHRoYW4gb3IgZXF1YWwgdG8nIDogJ2dyZWF0ZXIgdGhhbid9ICR7b3B0aW9ucy52YWx1ZX0uYDtcblxuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgcnVsZTogdGhpcy5uYW1lLFxuICAgICAgICAgICAgcmVzdWx0OiBpc1ZhbGlkLFxuICAgICAgICAgICAgbWVzc2FnZTogaXNWYWxpZCA/ICcnIDogb3B0aW9ucz8ubWVzc2FnZSA/PyBiYXNlTWVzc2FnZSxcbiAgICAgICAgICAgIHZhbHVlOiB2YWx1ZVxuICAgICAgICB9O1xuICAgIH1cbn1cbiJdfQ==
|
@@ -1,17 +1,18 @@
|
|
1
1
|
// ax-less-than-validation-rule.ts
|
2
|
-
import {
|
2
|
+
import { isNull, isUndefined } from "lodash-es";
|
3
3
|
export class AXLessThanValidationRule {
|
4
4
|
get name() {
|
5
5
|
return 'lessThan';
|
6
6
|
}
|
7
7
|
validate(value, options) {
|
8
|
-
const isValid =
|
8
|
+
const isValid = (isNull(value) || isUndefined(value)) ? true : (options.inclusive ? value <= options.value : value < options.value);
|
9
|
+
const baseMessage = `The value must be ${options.inclusive ? 'less than or equal to' : 'less than'} ${options.value}.`;
|
9
10
|
return {
|
10
11
|
rule: this.name,
|
11
12
|
result: isValid,
|
12
|
-
message: isValid ?
|
13
|
+
message: isValid ? '' : options?.message ?? baseMessage,
|
13
14
|
value: value
|
14
15
|
};
|
15
16
|
}
|
16
17
|
}
|
17
|
-
//# sourceMappingURL=data:application/json;base64,
|
18
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGVzcy10aGFuLXJ1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvcmUvdmFsaWRhdGlvbi9zcmMvbGliL3J1bGVzL2xlc3MtdGhhbi1ydWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGtDQUFrQztBQUNsQyxPQUFPLEVBQUUsTUFBTSxFQUFFLFdBQVcsRUFBRSxNQUFNLFdBQVcsQ0FBQztBQWNoRCxNQUFNLE9BQU8sd0JBQXdCO0lBQ2pDLElBQUksSUFBSTtRQUNKLE9BQU8sVUFBVSxDQUFDO0lBQ3RCLENBQUM7SUFFRCxRQUFRLENBQUMsS0FBYSxFQUFFLE9BQXdDO1FBQzVELE1BQU0sT0FBTyxHQUFHLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxJQUFJLFdBQVcsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsS0FBSyxJQUFJLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEtBQUssR0FBRyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDcEksTUFBTSxXQUFXLEdBQUcscUJBQXFCLE9BQU8sQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLHVCQUF1QixDQUFDLENBQUMsQ0FBQyxXQUFXLElBQUksT0FBTyxDQUFDLEtBQUssR0FBRyxDQUFDO1FBRXZILE9BQU87WUFDSCxJQUFJLEVBQUUsSUFBSSxDQUFDLElBQUk7WUFDZixNQUFNLEVBQUUsT0FBTztZQUNmLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsT0FBTyxFQUFFLE9BQU8sSUFBSSxXQUFXO1lBQ3ZELEtBQUssRUFBRSxLQUFLO1NBQ2YsQ0FBQztJQUNOLENBQUM7Q0FDSiIsInNvdXJjZXNDb250ZW50IjpbIi8vIGF4LWxlc3MtdGhhbi12YWxpZGF0aW9uLXJ1bGUudHNcbmltcG9ydCB7IGlzTnVsbCwgaXNVbmRlZmluZWQgfSBmcm9tIFwibG9kYXNoLWVzXCI7XG5pbXBvcnQgeyBBWFZhbGlkYXRpb25SdWxlLCBBWFZhbGlkYXRpb25SdWxlT3B0aW9ucywgQVhWYWxpZGF0aW9uUnVsZVJlc3VsdCB9IGZyb20gXCIuLi92YWxpZGF0aW9uXCI7XG5cbmV4cG9ydCBpbnRlcmZhY2UgQVhMZXNzVGhhblZhbGlkYXRpb25SdWxlT3B0aW9ucyBleHRlbmRzIEFYVmFsaWRhdGlvblJ1bGVPcHRpb25zIHtcbiAgICB2YWx1ZTogbnVtYmVyO1xuICAgIGluY2x1c2l2ZT86IGJvb2xlYW47IC8vIE9wdGlvbmFsIGZsYWcgZm9yIGluY2x1c2l2ZW5lc3Ncbn1cblxuZGVjbGFyZSBtb2R1bGUgJy4uL3ZhbGlkYXRpb24nIHtcbiAgICBpbnRlcmZhY2UgQVhWYWxpZGF0aW9uUnVsZU9wdGlvbnNNYXAge1xuICAgICAgICAnbGVzc1RoYW4nOiBBWExlc3NUaGFuVmFsaWRhdGlvblJ1bGVPcHRpb25zO1xuICAgIH1cbn1cblxuZXhwb3J0IGNsYXNzIEFYTGVzc1RoYW5WYWxpZGF0aW9uUnVsZSBpbXBsZW1lbnRzIEFYVmFsaWRhdGlvblJ1bGUge1xuICAgIGdldCBuYW1lKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiAnbGVzc1RoYW4nO1xuICAgIH1cblxuICAgIHZhbGlkYXRlKHZhbHVlOiBudW1iZXIsIG9wdGlvbnM6IEFYTGVzc1RoYW5WYWxpZGF0aW9uUnVsZU9wdGlvbnMpOiBBWFZhbGlkYXRpb25SdWxlUmVzdWx0IHtcbiAgICAgICAgY29uc3QgaXNWYWxpZCA9IChpc051bGwodmFsdWUpIHx8IGlzVW5kZWZpbmVkKHZhbHVlKSkgPyB0cnVlIDogKG9wdGlvbnMuaW5jbHVzaXZlID8gdmFsdWUgPD0gb3B0aW9ucy52YWx1ZSA6IHZhbHVlIDwgb3B0aW9ucy52YWx1ZSk7XG4gICAgICAgIGNvbnN0IGJhc2VNZXNzYWdlID0gYFRoZSB2YWx1ZSBtdXN0IGJlICR7b3B0aW9ucy5pbmNsdXNpdmUgPyAnbGVzcyB0aGFuIG9yIGVxdWFsIHRvJyA6ICdsZXNzIHRoYW4nfSAke29wdGlvbnMudmFsdWV9LmA7XG5cbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIHJ1bGU6IHRoaXMubmFtZSxcbiAgICAgICAgICAgIHJlc3VsdDogaXNWYWxpZCxcbiAgICAgICAgICAgIG1lc3NhZ2U6IGlzVmFsaWQgPyAnJyA6IG9wdGlvbnM/Lm1lc3NhZ2UgPz8gYmFzZU1lc3NhZ2UsXG4gICAgICAgICAgICB2YWx1ZTogdmFsdWVcbiAgICAgICAgfTtcbiAgICB9XG59XG4iXX0=
|
@@ -7,9 +7,10 @@ import { AXMinLengthValidationRule } from './rules/minlength-rule';
|
|
7
7
|
import { AXMaxLengthValidationRule } from './rules/maxlength-rule';
|
8
8
|
import { AXLengthValidationRule } from './rules/length-rule';
|
9
9
|
import { AXEqualValidationRule } from './rules/equal-rule';
|
10
|
+
import { AXLessThanValidationRule } from './rules/less-than-rule';
|
11
|
+
import { AXGreaterThanValidationRule } from './rules/greater-than';
|
10
12
|
import * as i0 from "@angular/core";
|
11
13
|
import * as i1 from "./validation.service";
|
12
|
-
// import { AXNotEqualValidationRule } from './rules/not-equal-rule';
|
13
14
|
export class AXValidationModule {
|
14
15
|
static forRoot(config) {
|
15
16
|
return {
|
@@ -32,7 +33,7 @@ export class AXValidationModule {
|
|
32
33
|
//
|
33
34
|
new AXMinLengthValidationRule(), new AXMaxLengthValidationRule(), new AXLengthValidationRule(),
|
34
35
|
//
|
35
|
-
new AXEqualValidationRule());
|
36
|
+
new AXEqualValidationRule(), new AXLessThanValidationRule(), new AXGreaterThanValidationRule());
|
36
37
|
}
|
37
38
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.8", ngImport: i0, type: AXValidationModule, deps: [{ token: i1.AXValidationRegistryService }], target: i0.ɵɵFactoryTarget.NgModule }); }
|
38
39
|
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.0.8", ngImport: i0, type: AXValidationModule }); }
|
@@ -44,4 +45,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.8", ngImpor
|
|
44
45
|
imports: [],
|
45
46
|
}]
|
46
47
|
}], ctorParameters: () => [{ type: i1.AXValidationRegistryService }] });
|
47
|
-
//# sourceMappingURL=data:application/json;base64,
|
48
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFsaWRhdGlvbi5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvcmUvdmFsaWRhdGlvbi9zcmMvbGliL3ZhbGlkYXRpb24ubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxlQUFlLEVBQXVCLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMvRSxPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUVuRSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUMzRCxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUNqRSxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUNqRSxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUNuRSxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUNuRSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUM3RCxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUMzRCxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUNsRSxPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQzs7O0FBTW5FLE1BQU0sT0FBTyxrQkFBa0I7SUFFM0IsTUFBTSxDQUFDLE9BQU8sQ0FBQyxNQUE0QztRQUN2RCxPQUFPO1lBQ0gsUUFBUSxFQUFFLGtCQUFrQjtZQUM1QixTQUFTLEVBQUU7Z0JBQ1A7b0JBQ0ksT0FBTyxFQUFFLGVBQWU7b0JBQ3hCLFVBQVUsRUFBRSxDQUFDLGNBQTJDLEVBQUUsRUFBRSxDQUFDLEdBQUcsRUFBRTt3QkFDOUQsSUFBSSxNQUFNLEVBQUUsVUFBVSxFQUFFLE1BQU07NEJBQzFCLGNBQWMsQ0FBQyxRQUFRLENBQUMsR0FBRyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUM7b0JBQ3RELENBQUM7b0JBQ0QsSUFBSSxFQUFFLENBQUMsMkJBQTJCLENBQUM7b0JBQ25DLEtBQUssRUFBRSxJQUFJO2lCQUNkO2FBQ0o7U0FDSixDQUFDO0lBQ04sQ0FBQztJQUVELFlBQVksY0FBMkM7UUFDbkQsY0FBYyxDQUFDLFFBQVEsQ0FDbkIsSUFBSSxxQkFBcUIsRUFBRSxFQUMzQixJQUFJLHdCQUF3QixFQUFFLEVBQzlCLElBQUksd0JBQXdCLEVBQUU7UUFDOUIsRUFBRTtRQUNGLElBQUkseUJBQXlCLEVBQUUsRUFDL0IsSUFBSSx5QkFBeUIsRUFBRSxFQUMvQixJQUFJLHNCQUFzQixFQUFFO1FBQzVCLEVBQUU7UUFDRixJQUFJLHFCQUFxQixFQUFFLEVBQzNCLElBQUksd0JBQXdCLEVBQUUsRUFDOUIsSUFBSSwyQkFBMkIsRUFBRSxDQUNwQyxDQUFBO0lBQ0wsQ0FBQzs4R0FqQ1Esa0JBQWtCOytHQUFsQixrQkFBa0I7K0dBQWxCLGtCQUFrQjs7MkZBQWxCLGtCQUFrQjtrQkFIOUIsUUFBUTttQkFBQztvQkFDTixPQUFPLEVBQUUsRUFBRTtpQkFDZCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFQUF9JTklUSUFMSVpFUiwgTW9kdWxlV2l0aFByb3ZpZGVycywgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFYVmFsaWRhdGlvblJlZ2lzdHJ5U2VydmljZSB9IGZyb20gJy4vdmFsaWRhdGlvbi5zZXJ2aWNlJztcbmltcG9ydCB7IEFYVmFsaWRhdGlvblJ1bGUgfSBmcm9tICcuL3ZhbGlkYXRpb24nO1xuaW1wb3J0IHsgQVhSZWdleFZhbGlkYXRpb25SdWxlIH0gZnJvbSAnLi9ydWxlcy9yZWdleC1ydWxlJztcbmltcG9ydCB7IEFYUmVxdWlyZWRWYWxpZGF0aW9uUnVsZSB9IGZyb20gJy4vcnVsZXMvcmVxdWlyZWQtcnVsZSc7XG5pbXBvcnQgeyBBWENhbGxiYWNrVmFsaWRhdGlvblJ1bGUgfSBmcm9tICcuL3J1bGVzL2NhbGxiYWNrLXJ1bGUnO1xuaW1wb3J0IHsgQVhNaW5MZW5ndGhWYWxpZGF0aW9uUnVsZSB9IGZyb20gJy4vcnVsZXMvbWlubGVuZ3RoLXJ1bGUnO1xuaW1wb3J0IHsgQVhNYXhMZW5ndGhWYWxpZGF0aW9uUnVsZSB9IGZyb20gJy4vcnVsZXMvbWF4bGVuZ3RoLXJ1bGUnO1xuaW1wb3J0IHsgQVhMZW5ndGhWYWxpZGF0aW9uUnVsZSB9IGZyb20gJy4vcnVsZXMvbGVuZ3RoLXJ1bGUnO1xuaW1wb3J0IHsgQVhFcXVhbFZhbGlkYXRpb25SdWxlIH0gZnJvbSAnLi9ydWxlcy9lcXVhbC1ydWxlJztcbmltcG9ydCB7IEFYTGVzc1RoYW5WYWxpZGF0aW9uUnVsZSB9IGZyb20gJy4vcnVsZXMvbGVzcy10aGFuLXJ1bGUnO1xuaW1wb3J0IHsgQVhHcmVhdGVyVGhhblZhbGlkYXRpb25SdWxlIH0gZnJvbSAnLi9ydWxlcy9ncmVhdGVyLXRoYW4nO1xuXG5cbkBOZ01vZHVsZSh7XG4gICAgaW1wb3J0czogW10sXG59KVxuZXhwb3J0IGNsYXNzIEFYVmFsaWRhdGlvbk1vZHVsZSB7XG5cbiAgICBzdGF0aWMgZm9yUm9vdChjb25maWc/OiB7IHZhbGlkYXRvcnM/OiBBWFZhbGlkYXRpb25SdWxlW10gfSk6IE1vZHVsZVdpdGhQcm92aWRlcnM8QVhWYWxpZGF0aW9uTW9kdWxlPiB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBuZ01vZHVsZTogQVhWYWxpZGF0aW9uTW9kdWxlLFxuICAgICAgICAgICAgcHJvdmlkZXJzOiBbXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICBwcm92aWRlOiBBUFBfSU5JVElBTElaRVIsXG4gICAgICAgICAgICAgICAgICAgIHVzZUZhY3Rvcnk6IChwbHVnaW5SZWdpc3RyeTogQVhWYWxpZGF0aW9uUmVnaXN0cnlTZXJ2aWNlKSA9PiAoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoY29uZmlnPy52YWxpZGF0b3JzPy5sZW5ndGgpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcGx1Z2luUmVnaXN0cnkucmVnaXN0ZXIoLi4uY29uZmlnLnZhbGlkYXRvcnMpO1xuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICBkZXBzOiBbQVhWYWxpZGF0aW9uUmVnaXN0cnlTZXJ2aWNlXSxcbiAgICAgICAgICAgICAgICAgICAgbXVsdGk6IHRydWVcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICBdXG4gICAgICAgIH07XG4gICAgfVxuXG4gICAgY29uc3RydWN0b3IocGx1Z2luUmVnaXN0cnk6IEFYVmFsaWRhdGlvblJlZ2lzdHJ5U2VydmljZSkge1xuICAgICAgICBwbHVnaW5SZWdpc3RyeS5yZWdpc3RlcihcbiAgICAgICAgICAgIG5ldyBBWFJlZ2V4VmFsaWRhdGlvblJ1bGUoKSxcbiAgICAgICAgICAgIG5ldyBBWFJlcXVpcmVkVmFsaWRhdGlvblJ1bGUoKSxcbiAgICAgICAgICAgIG5ldyBBWENhbGxiYWNrVmFsaWRhdGlvblJ1bGUoKSxcbiAgICAgICAgICAgIC8vXG4gICAgICAgICAgICBuZXcgQVhNaW5MZW5ndGhWYWxpZGF0aW9uUnVsZSgpLFxuICAgICAgICAgICAgbmV3IEFYTWF4TGVuZ3RoVmFsaWRhdGlvblJ1bGUoKSxcbiAgICAgICAgICAgIG5ldyBBWExlbmd0aFZhbGlkYXRpb25SdWxlKCksXG4gICAgICAgICAgICAvL1xuICAgICAgICAgICAgbmV3IEFYRXF1YWxWYWxpZGF0aW9uUnVsZSgpLFxuICAgICAgICAgICAgbmV3IEFYTGVzc1RoYW5WYWxpZGF0aW9uUnVsZSgpLFxuICAgICAgICAgICAgbmV3IEFYR3JlYXRlclRoYW5WYWxpZGF0aW9uUnVsZSgpXG4gICAgICAgIClcbiAgICB9XG59XG4iXX0=
|
@@ -64,7 +64,7 @@ class AXCallbackValidationRule {
|
|
64
64
|
return 'callback';
|
65
65
|
}
|
66
66
|
validate(value, options) {
|
67
|
-
const validationResult = options?.validate(value) || { result: false, message: "Invalid callback function" };
|
67
|
+
const validationResult = options?.validate(value, options) || { result: false, message: "Invalid callback function" };
|
68
68
|
const createResult = (result) => ({
|
69
69
|
rule: this.name,
|
70
70
|
result: result.result,
|
@@ -148,11 +148,29 @@ class AXLessThanValidationRule {
|
|
148
148
|
return 'lessThan';
|
149
149
|
}
|
150
150
|
validate(value, options) {
|
151
|
-
const isValid =
|
151
|
+
const isValid = (isNull(value) || isUndefined(value)) ? true : (options.inclusive ? value <= options.value : value < options.value);
|
152
|
+
const baseMessage = `The value must be ${options.inclusive ? 'less than or equal to' : 'less than'} ${options.value}.`;
|
152
153
|
return {
|
153
154
|
rule: this.name,
|
154
155
|
result: isValid,
|
155
|
-
message: isValid ?
|
156
|
+
message: isValid ? '' : options?.message ?? baseMessage,
|
157
|
+
value: value
|
158
|
+
};
|
159
|
+
}
|
160
|
+
}
|
161
|
+
|
162
|
+
// ax-greater-than-validation-rule.ts
|
163
|
+
class AXGreaterThanValidationRule {
|
164
|
+
get name() {
|
165
|
+
return 'greaterThan';
|
166
|
+
}
|
167
|
+
validate(value, options) {
|
168
|
+
const isValid = (isNull(value) || isUndefined(value)) ? true : (options.inclusive ? value >= options.value : value > options.value);
|
169
|
+
const baseMessage = `The value must be ${options.inclusive ? 'greater than or equal to' : 'greater than'} ${options.value}.`;
|
170
|
+
return {
|
171
|
+
rule: this.name,
|
172
|
+
result: isValid,
|
173
|
+
message: isValid ? '' : options?.message ?? baseMessage,
|
156
174
|
value: value
|
157
175
|
};
|
158
176
|
}
|
@@ -267,7 +285,6 @@ class AXValidationRuleChain {
|
|
267
285
|
}
|
268
286
|
}
|
269
287
|
|
270
|
-
// import { AXNotEqualValidationRule } from './rules/not-equal-rule';
|
271
288
|
class AXValidationModule {
|
272
289
|
static forRoot(config) {
|
273
290
|
return {
|
@@ -290,7 +307,7 @@ class AXValidationModule {
|
|
290
307
|
//
|
291
308
|
new AXMinLengthValidationRule(), new AXMaxLengthValidationRule(), new AXLengthValidationRule(),
|
292
309
|
//
|
293
|
-
new AXEqualValidationRule());
|
310
|
+
new AXEqualValidationRule(), new AXLessThanValidationRule(), new AXGreaterThanValidationRule());
|
294
311
|
}
|
295
312
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.8", ngImport: i0, type: AXValidationModule, deps: [{ token: AXValidationRegistryService }], target: i0.ɵɵFactoryTarget.NgModule }); }
|
296
313
|
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.0.8", ngImport: i0, type: AXValidationModule }); }
|
@@ -307,5 +324,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.8", ngImpor
|
|
307
324
|
* Generated bundle index. Do not edit.
|
308
325
|
*/
|
309
326
|
|
310
|
-
export { AXCallbackValidationRule, AXEqualValidationRule, AXLengthValidationRule, AXLessThanValidationRule, AXMaxLengthValidationRule, AXMinLengthValidationRule, AXRegexValidationRule, AXRequiredValidationRule, AXValidationModule, AXValidationRegistryService, AXValidationService };
|
327
|
+
export { AXCallbackValidationRule, AXEqualValidationRule, AXGreaterThanValidationRule, AXLengthValidationRule, AXLessThanValidationRule, AXMaxLengthValidationRule, AXMinLengthValidationRule, AXRegexValidationRule, AXRequiredValidationRule, AXValidationModule, AXValidationRegistryService, AXValidationService };
|
311
328
|
//# 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/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) => 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) || { 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, isEmpty } 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 { isEmpty } from \"lodash-es\";\nimport { AXValidationRule, AXValidationRuleOptions, AXValidationRuleResult } from \"../validation\";\n\nexport interface AXLessThanValidationRuleOptions extends AXValidationRuleOptions {\n value: number;\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 = isEmpty(value) ? false : value < options.value;\n return {\n rule: this.name,\n result: isValid,\n message: isValid ? null : options?.message ?? `The value must be less than ${options.value}.`,\n value: value\n };\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';\n// import { AXNotEqualValidationRule } from './rules/not-equal-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 )\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/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/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 { 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';\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 )\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1.AXValidationRegistryService"],"mappings":"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"}
|
package/package.json
CHANGED
package/validation/index.d.ts
CHANGED
@@ -7,5 +7,6 @@ export * from './lib/rules/maxlength-rule';
|
|
7
7
|
export * from './lib/rules/length-rule';
|
8
8
|
export * from './lib/rules/equal-rule';
|
9
9
|
export * from './lib/rules/less-than-rule';
|
10
|
+
export * from './lib/rules/greater-than';
|
10
11
|
export * from './lib/validation.service';
|
11
12
|
export * from './lib/validation.module';
|
@@ -1,5 +1,5 @@
|
|
1
1
|
import { AXValidationRule, AXValidationRuleOptions, AXValidationRuleResult } from "../validation";
|
2
|
-
export type AXCallbackValidation<T> = (value: T) => Promise<{
|
2
|
+
export type AXCallbackValidation<T> = (value: T, options?: AXCallbackValidationRuleOptions<T>) => Promise<{
|
3
3
|
result: boolean;
|
4
4
|
message?: string;
|
5
5
|
}> | {
|
@@ -0,0 +1,14 @@
|
|
1
|
+
import { AXValidationRule, AXValidationRuleOptions, AXValidationRuleResult } from "../validation";
|
2
|
+
export interface AXGreaterThanValidationRuleOptions extends AXValidationRuleOptions {
|
3
|
+
value: number;
|
4
|
+
inclusive?: boolean;
|
5
|
+
}
|
6
|
+
declare module '../validation' {
|
7
|
+
interface AXValidationRuleOptionsMap {
|
8
|
+
'greaterThan': AXGreaterThanValidationRuleOptions;
|
9
|
+
}
|
10
|
+
}
|
11
|
+
export declare class AXGreaterThanValidationRule implements AXValidationRule {
|
12
|
+
get name(): string;
|
13
|
+
validate(value: number, options: AXGreaterThanValidationRuleOptions): AXValidationRuleResult;
|
14
|
+
}
|
@@ -1,6 +1,7 @@
|
|
1
1
|
import { AXValidationRule, AXValidationRuleOptions, AXValidationRuleResult } from "../validation";
|
2
2
|
export interface AXLessThanValidationRuleOptions extends AXValidationRuleOptions {
|
3
3
|
value: number;
|
4
|
+
inclusive?: boolean;
|
4
5
|
}
|
5
6
|
declare module '../validation' {
|
6
7
|
interface AXValidationRuleOptionsMap {
|