@acorex/core 7.17.20 → 7.17.22
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/config/lib/configs.service.mjs +3 -3
- package/esm2022/dateTime/lib/calendar.service.mjs +3 -3
- package/esm2022/dateTime/lib/datetime-formatter.mjs +6 -6
- package/esm2022/dateTime/lib/datetime.class.mjs +6 -2
- package/esm2022/dateTime/lib/datetime.module.mjs +4 -4
- package/esm2022/dateTime/lib/datetime.pipe.mjs +3 -3
- package/esm2022/events/lib/event.service.mjs +3 -3
- package/esm2022/file/lib/file-size-formatter.mjs +3 -3
- package/esm2022/file/lib/file.module.mjs +4 -4
- package/esm2022/file/lib/file.service.mjs +3 -3
- package/esm2022/format/lib/format.module.mjs +4 -4
- package/esm2022/format/lib/format.pipe.mjs +3 -3
- package/esm2022/format/lib/format.service.mjs +6 -6
- package/esm2022/image/lib/image.service.mjs +3 -3
- package/esm2022/pipes/lib/safe/safe.pipe.mjs +3 -3
- package/esm2022/platform/lib/platform.service.mjs +3 -3
- package/esm2022/storage/cookie-storage.service.mjs +3 -3
- package/esm2022/storage/local-storage.service.mjs +3 -3
- package/esm2022/storage/session-storage.service.mjs +3 -3
- package/esm2022/translation/lib/translation.module.mjs +4 -4
- package/esm2022/translation/lib/translator.pipe.mjs +3 -3
- package/esm2022/utils/lib/auto-unsubscribe.mjs +3 -3
- package/esm2022/validation/acorex-core-validation.mjs +5 -0
- package/esm2022/validation/index.mjs +12 -0
- package/esm2022/validation/lib/rules/callback-rule.mjs +19 -0
- package/esm2022/validation/lib/rules/length-rule.mjs +15 -0
- package/esm2022/validation/lib/rules/maxlength-rule.mjs +15 -0
- package/esm2022/validation/lib/rules/minlength-rule.mjs +15 -0
- package/esm2022/validation/lib/rules/regex-rule.mjs +17 -0
- package/esm2022/validation/lib/rules/required-rule.mjs +24 -0
- package/esm2022/validation/lib/validation.mjs +2 -0
- package/esm2022/validation/lib/validation.module.mjs +41 -0
- package/esm2022/validation/lib/validation.service.mjs +71 -0
- package/fesm2022/acorex-core-config.mjs +3 -3
- package/fesm2022/acorex-core-dateTime.mjs +21 -17
- package/fesm2022/acorex-core-dateTime.mjs.map +1 -1
- package/fesm2022/acorex-core-events.mjs +3 -3
- package/fesm2022/acorex-core-file.mjs +10 -10
- package/fesm2022/acorex-core-format.mjs +13 -13
- package/fesm2022/acorex-core-image.mjs +3 -3
- package/fesm2022/acorex-core-pipes.mjs +3 -3
- package/fesm2022/acorex-core-platform.mjs +3 -3
- package/fesm2022/acorex-core-storage.mjs +9 -9
- package/fesm2022/acorex-core-translation.mjs +7 -7
- package/fesm2022/acorex-core-utils.mjs +3 -3
- package/fesm2022/acorex-core-validation.mjs +214 -0
- package/fesm2022/acorex-core-validation.mjs.map +1 -0
- package/package.json +7 -1
- package/validation/README.md +3 -0
- package/validation/index.d.ts +9 -0
- package/validation/lib/rules/callback-rule.d.ts +20 -0
- package/validation/lib/rules/length-rule.d.ts +14 -0
- package/validation/lib/rules/maxlength-rule.d.ts +13 -0
- package/validation/lib/rules/minlength-rule.d.ts +13 -0
- package/validation/lib/rules/regex-rule.d.ts +13 -0
- package/validation/lib/rules/required-rule.d.ts +12 -0
- package/validation/lib/validation.d.ts +19 -0
- package/validation/lib/validation.module.d.ts +13 -0
- package/validation/lib/validation.service.d.ts +27 -0
@@ -0,0 +1,5 @@
|
|
1
|
+
/**
|
2
|
+
* Generated bundle index. Do not edit.
|
3
|
+
*/
|
4
|
+
export * from './index';
|
5
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWNvcmV4LWNvcmUtdmFsaWRhdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYnMvY29yZS92YWxpZGF0aW9uL3NyYy9hY29yZXgtY29yZS12YWxpZGF0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsY0FBYyxTQUFTLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEdlbmVyYXRlZCBidW5kbGUgaW5kZXguIERvIG5vdCBlZGl0LlxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vaW5kZXgnO1xuIl19
|
@@ -0,0 +1,12 @@
|
|
1
|
+
export * from './lib/validation';
|
2
|
+
//
|
3
|
+
export * from './lib/rules/regex-rule';
|
4
|
+
export * from './lib/rules/required-rule';
|
5
|
+
export * from './lib/rules/callback-rule';
|
6
|
+
export * from './lib/rules/minlength-rule';
|
7
|
+
export * from './lib/rules/maxlength-rule';
|
8
|
+
export * from './lib/rules/length-rule';
|
9
|
+
//
|
10
|
+
export * from './lib/validation.service';
|
11
|
+
export * from './lib/validation.module';
|
12
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzL2NvcmUvdmFsaWRhdGlvbi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxrQkFBa0IsQ0FBQztBQUNqQyxFQUFFO0FBQ0YsY0FBYyx3QkFBd0IsQ0FBQztBQUN2QyxjQUFjLDJCQUEyQixDQUFDO0FBQzFDLGNBQWMsMkJBQTJCLENBQUM7QUFDMUMsY0FBYyw0QkFBNEIsQ0FBQztBQUMzQyxjQUFjLDRCQUE0QixDQUFDO0FBQzNDLGNBQWMseUJBQXlCLENBQUM7QUFDeEMsRUFBRTtBQUNGLGNBQWMsMEJBQTBCLENBQUM7QUFDekMsY0FBYyx5QkFBeUIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vbGliL3ZhbGlkYXRpb24nO1xuLy9cbmV4cG9ydCAqIGZyb20gJy4vbGliL3J1bGVzL3JlZ2V4LXJ1bGUnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvcnVsZXMvcmVxdWlyZWQtcnVsZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9ydWxlcy9jYWxsYmFjay1ydWxlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3J1bGVzL21pbmxlbmd0aC1ydWxlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3J1bGVzL21heGxlbmd0aC1ydWxlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3J1bGVzL2xlbmd0aC1ydWxlJztcbi8vXG5leHBvcnQgKiBmcm9tICcuL2xpYi92YWxpZGF0aW9uLnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvdmFsaWRhdGlvbi5tb2R1bGUnOyJdfQ==
|
@@ -0,0 +1,19 @@
|
|
1
|
+
export class AXCallbackValidationRule {
|
2
|
+
get name() {
|
3
|
+
return 'callback';
|
4
|
+
}
|
5
|
+
validate(value, options) {
|
6
|
+
const validationResult = options?.validate(value) || { result: false, message: "Invalid callback function" };
|
7
|
+
const createResult = (result) => ({
|
8
|
+
name: this.name,
|
9
|
+
result: result.result,
|
10
|
+
message: result.message || '',
|
11
|
+
value: value
|
12
|
+
});
|
13
|
+
if (validationResult instanceof Promise) {
|
14
|
+
return validationResult.then(createResult);
|
15
|
+
}
|
16
|
+
return createResult(validationResult);
|
17
|
+
}
|
18
|
+
}
|
19
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FsbGJhY2stcnVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29yZS92YWxpZGF0aW9uL3NyYy9saWIvcnVsZXMvY2FsbGJhY2stcnVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFlQSxNQUFNLE9BQU8sd0JBQXdCO0lBRWpDLElBQUksSUFBSTtRQUNKLE9BQU8sVUFBVSxDQUFDO0lBQ3RCLENBQUM7SUFFRCxRQUFRLENBQUMsS0FBUSxFQUFFLE9BQTJDO1FBQzFELE1BQU0sZ0JBQWdCLEdBQUcsT0FBTyxFQUFFLFFBQVEsQ0FBQyxLQUFLLENBQUMsSUFBSSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFFLDJCQUEyQixFQUFFLENBQUM7UUFDN0csTUFBTSxZQUFZLEdBQUcsQ0FBQyxNQUE2QyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1lBQ3JFLElBQUksRUFBRSxJQUFJLENBQUMsSUFBSTtZQUNmLE1BQU0sRUFBRSxNQUFNLENBQUMsTUFBTTtZQUNyQixPQUFPLEVBQUUsTUFBTSxDQUFDLE9BQU8sSUFBSSxFQUFFO1lBQzdCLEtBQUssRUFBRSxLQUFLO1NBQ2YsQ0FBQyxDQUFDO1FBRUgsSUFBSSxnQkFBZ0IsWUFBWSxPQUFPLEVBQUU7WUFDckMsT0FBTyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUM7U0FDOUM7UUFFRCxPQUFPLFlBQVksQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO0lBQzFDLENBQUM7Q0FDSiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFYVmFsaWRhdGlvblJ1bGUsIEFYVmFsaWRhdGlvblJ1bGVPcHRpb25zLCBBWFZhbGlkYXRpb25SdWxlUmVzdWx0IH0gZnJvbSBcIi4uL3ZhbGlkYXRpb25cIjtcblxuZXhwb3J0IHR5cGUgQVhDYWxsYmFja1ZhbGlkYXRpb248VD4gPSAodmFsdWU6IFQpID0+IFByb21pc2U8eyByZXN1bHQ6IGJvb2xlYW4sIG1lc3NhZ2U/OiBzdHJpbmcgfT4gfCB7IHJlc3VsdDogYm9vbGVhbiwgbWVzc2FnZT86IHN0cmluZyB9O1xuXG5leHBvcnQgaW50ZXJmYWNlIEFYQ2FsbGJhY2tWYWxpZGF0aW9uUnVsZU9wdGlvbnM8VD4gZXh0ZW5kcyBBWFZhbGlkYXRpb25SdWxlT3B0aW9ucyB7XG4gICAgdmFsaWRhdGU6IEFYQ2FsbGJhY2tWYWxpZGF0aW9uPFQ+XG59XG5cbi8vIEF1Z21lbnQgdGhlIEFYVmFsaWRhdGlvblJ1bGVPcHRpb25zTWFwXG5kZWNsYXJlIG1vZHVsZSAnLi4vdmFsaWRhdGlvbicge1xuICAgIGludGVyZmFjZSBBWFZhbGlkYXRpb25SdWxlT3B0aW9uc01hcCB7XG4gICAgICAgICdjYWxsYmFjayc6IEFYQ2FsbGJhY2tWYWxpZGF0aW9uUnVsZU9wdGlvbnM8dW5rbm93bj47XG4gICAgfVxufVxuXG5leHBvcnQgY2xhc3MgQVhDYWxsYmFja1ZhbGlkYXRpb25SdWxlPFQ+IGltcGxlbWVudHMgQVhWYWxpZGF0aW9uUnVsZSB7XG5cbiAgICBnZXQgbmFtZSgpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gJ2NhbGxiYWNrJztcbiAgICB9XG5cbiAgICB2YWxpZGF0ZSh2YWx1ZTogVCwgb3B0aW9uczogQVhDYWxsYmFja1ZhbGlkYXRpb25SdWxlT3B0aW9uczxUPik6IEFYVmFsaWRhdGlvblJ1bGVSZXN1bHQgfCBQcm9taXNlPEFYVmFsaWRhdGlvblJ1bGVSZXN1bHQ+IHtcbiAgICAgICAgY29uc3QgdmFsaWRhdGlvblJlc3VsdCA9IG9wdGlvbnM/LnZhbGlkYXRlKHZhbHVlKSB8fCB7IHJlc3VsdDogZmFsc2UsIG1lc3NhZ2U6IFwiSW52YWxpZCBjYWxsYmFjayBmdW5jdGlvblwiIH07XG4gICAgICAgIGNvbnN0IGNyZWF0ZVJlc3VsdCA9IChyZXN1bHQ6IHsgcmVzdWx0OiBib29sZWFuLCBtZXNzYWdlPzogc3RyaW5nIH0pID0+ICh7XG4gICAgICAgICAgICBuYW1lOiB0aGlzLm5hbWUsXG4gICAgICAgICAgICByZXN1bHQ6IHJlc3VsdC5yZXN1bHQsXG4gICAgICAgICAgICBtZXNzYWdlOiByZXN1bHQubWVzc2FnZSB8fCAnJyxcbiAgICAgICAgICAgIHZhbHVlOiB2YWx1ZVxuICAgICAgICB9KTtcblxuICAgICAgICBpZiAodmFsaWRhdGlvblJlc3VsdCBpbnN0YW5jZW9mIFByb21pc2UpIHtcbiAgICAgICAgICAgIHJldHVybiB2YWxpZGF0aW9uUmVzdWx0LnRoZW4oY3JlYXRlUmVzdWx0KTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBjcmVhdGVSZXN1bHQodmFsaWRhdGlvblJlc3VsdCk7XG4gICAgfVxufSJdfQ==
|
@@ -0,0 +1,15 @@
|
|
1
|
+
export class AXLengthValidationRule {
|
2
|
+
get name() {
|
3
|
+
return 'length';
|
4
|
+
}
|
5
|
+
validate(value, options) {
|
6
|
+
const isValid = value?.length >= options.min && value?.length <= options.max;
|
7
|
+
return {
|
8
|
+
name: this.name,
|
9
|
+
result: isValid,
|
10
|
+
message: isValid ? null : `The value must be between ${options.min} and ${options.max} chars`,
|
11
|
+
value: value
|
12
|
+
};
|
13
|
+
}
|
14
|
+
}
|
15
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGVuZ3RoLXJ1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvcmUvdmFsaWRhdGlvbi9zcmMvbGliL3J1bGVzL2xlbmd0aC1ydWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQWNBLE1BQU0sT0FBTyxzQkFBc0I7SUFDL0IsSUFBSSxJQUFJO1FBQ0osT0FBTyxRQUFRLENBQUM7SUFDcEIsQ0FBQztJQUVELFFBQVEsQ0FBQyxLQUFhLEVBQUUsT0FBc0M7UUFDMUQsTUFBTSxPQUFPLEdBQUcsS0FBSyxFQUFFLE1BQU0sSUFBSSxPQUFPLENBQUMsR0FBRyxJQUFJLEtBQUssRUFBRSxNQUFNLElBQUksT0FBTyxDQUFDLEdBQUcsQ0FBQztRQUM3RSxPQUFPO1lBQ0gsSUFBSSxFQUFFLElBQUksQ0FBQyxJQUFJO1lBQ2YsTUFBTSxFQUFFLE9BQU87WUFDZixPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLDZCQUE2QixPQUFPLENBQUMsR0FBRyxRQUFRLE9BQU8sQ0FBQyxHQUFHLFFBQVE7WUFDN0YsS0FBSyxFQUFFLEtBQUs7U0FDZixDQUFDO0lBQ04sQ0FBQztDQUNKIiwic291cmNlc0NvbnRlbnQiOlsiLy8gYXgtbWF4LWxlbmd0aC12YWxpZGF0aW9uLXJ1bGUudHNcbmltcG9ydCB7IEFYVmFsaWRhdGlvblJ1bGUsIEFYVmFsaWRhdGlvblJ1bGVPcHRpb25zLCBBWFZhbGlkYXRpb25SdWxlUmVzdWx0IH0gZnJvbSBcIi4uL3ZhbGlkYXRpb25cIjtcblxuZXhwb3J0IGludGVyZmFjZSBBWExlbmd0aFZhbGlkYXRpb25SdWxlT3B0aW9ucyBleHRlbmRzIEFYVmFsaWRhdGlvblJ1bGVPcHRpb25zIHtcbiAgICBtaW46IG51bWJlcjtcbiAgICBtYXg6IG51bWJlcjtcbn1cblxuZGVjbGFyZSBtb2R1bGUgJy4uL3ZhbGlkYXRpb24nIHtcbiAgICBpbnRlcmZhY2UgQVhWYWxpZGF0aW9uUnVsZU9wdGlvbnNNYXAge1xuICAgICAgICAnbGVuZ3RoJzogQVhMZW5ndGhWYWxpZGF0aW9uUnVsZU9wdGlvbnM7XG4gICAgfVxufVxuXG5leHBvcnQgY2xhc3MgQVhMZW5ndGhWYWxpZGF0aW9uUnVsZSBpbXBsZW1lbnRzIEFYVmFsaWRhdGlvblJ1bGUge1xuICAgIGdldCBuYW1lKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiAnbGVuZ3RoJztcbiAgICB9XG5cbiAgICB2YWxpZGF0ZSh2YWx1ZTogc3RyaW5nLCBvcHRpb25zOiBBWExlbmd0aFZhbGlkYXRpb25SdWxlT3B0aW9ucyk6IEFYVmFsaWRhdGlvblJ1bGVSZXN1bHQge1xuICAgICAgICBjb25zdCBpc1ZhbGlkID0gdmFsdWU/Lmxlbmd0aCA+PSBvcHRpb25zLm1pbiAmJiB2YWx1ZT8ubGVuZ3RoIDw9IG9wdGlvbnMubWF4O1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgbmFtZTogdGhpcy5uYW1lLFxuICAgICAgICAgICAgcmVzdWx0OiBpc1ZhbGlkLFxuICAgICAgICAgICAgbWVzc2FnZTogaXNWYWxpZCA/IG51bGwgOiBgVGhlIHZhbHVlIG11c3QgYmUgYmV0d2VlbiAke29wdGlvbnMubWlufSBhbmQgJHtvcHRpb25zLm1heH0gY2hhcnNgLFxuICAgICAgICAgICAgdmFsdWU6IHZhbHVlXG4gICAgICAgIH07XG4gICAgfVxufVxuIl19
|
@@ -0,0 +1,15 @@
|
|
1
|
+
export class AXMaxLengthValidationRule {
|
2
|
+
get name() {
|
3
|
+
return 'maxLength';
|
4
|
+
}
|
5
|
+
validate(value, options) {
|
6
|
+
const isValid = value?.length <= options.value;
|
7
|
+
return {
|
8
|
+
name: this.name,
|
9
|
+
result: isValid,
|
10
|
+
message: isValid ? '' : `The value must not exceed ${options.value} characters.`,
|
11
|
+
value: value
|
12
|
+
};
|
13
|
+
}
|
14
|
+
}
|
15
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWF4bGVuZ3RoLXJ1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvcmUvdmFsaWRhdGlvbi9zcmMvbGliL3J1bGVzL21heGxlbmd0aC1ydWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQWFBLE1BQU0sT0FBTyx5QkFBeUI7SUFDbEMsSUFBSSxJQUFJO1FBQ0osT0FBTyxXQUFXLENBQUM7SUFDdkIsQ0FBQztJQUVELFFBQVEsQ0FBQyxLQUFhLEVBQUUsT0FBeUM7UUFDN0QsTUFBTSxPQUFPLEdBQUcsS0FBSyxFQUFFLE1BQU0sSUFBSSxPQUFPLENBQUMsS0FBSyxDQUFDO1FBQy9DLE9BQU87WUFDSCxJQUFJLEVBQUUsSUFBSSxDQUFDLElBQUk7WUFDZixNQUFNLEVBQUUsT0FBTztZQUNmLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsNkJBQTZCLE9BQU8sQ0FBQyxLQUFLLGNBQWM7WUFDaEYsS0FBSyxFQUFFLEtBQUs7U0FDZixDQUFDO0lBQ04sQ0FBQztDQUNKIiwic291cmNlc0NvbnRlbnQiOlsiLy8gYXgtbWF4LWxlbmd0aC12YWxpZGF0aW9uLXJ1bGUudHNcbmltcG9ydCB7IEFYVmFsaWRhdGlvblJ1bGUsIEFYVmFsaWRhdGlvblJ1bGVPcHRpb25zLCBBWFZhbGlkYXRpb25SdWxlUmVzdWx0IH0gZnJvbSBcIi4uL3ZhbGlkYXRpb25cIjtcblxuZXhwb3J0IGludGVyZmFjZSBBWE1heExlbmd0aFZhbGlkYXRpb25SdWxlT3B0aW9ucyBleHRlbmRzIEFYVmFsaWRhdGlvblJ1bGVPcHRpb25zIHtcbiAgICB2YWx1ZTogbnVtYmVyO1xufVxuXG5kZWNsYXJlIG1vZHVsZSAnLi4vdmFsaWRhdGlvbicge1xuICAgIGludGVyZmFjZSBBWFZhbGlkYXRpb25SdWxlT3B0aW9uc01hcCB7XG4gICAgICAgICdtYXhMZW5ndGgnOiBBWE1heExlbmd0aFZhbGlkYXRpb25SdWxlT3B0aW9ucztcbiAgICB9XG59XG5cbmV4cG9ydCBjbGFzcyBBWE1heExlbmd0aFZhbGlkYXRpb25SdWxlIGltcGxlbWVudHMgQVhWYWxpZGF0aW9uUnVsZSB7XG4gICAgZ2V0IG5hbWUoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuICdtYXhMZW5ndGgnO1xuICAgIH1cblxuICAgIHZhbGlkYXRlKHZhbHVlOiBzdHJpbmcsIG9wdGlvbnM6IEFYTWF4TGVuZ3RoVmFsaWRhdGlvblJ1bGVPcHRpb25zKTogQVhWYWxpZGF0aW9uUnVsZVJlc3VsdCB7XG4gICAgICAgIGNvbnN0IGlzVmFsaWQgPSB2YWx1ZT8ubGVuZ3RoIDw9IG9wdGlvbnMudmFsdWU7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBuYW1lOiB0aGlzLm5hbWUsXG4gICAgICAgICAgICByZXN1bHQ6IGlzVmFsaWQsXG4gICAgICAgICAgICBtZXNzYWdlOiBpc1ZhbGlkID8gJycgOiBgVGhlIHZhbHVlIG11c3Qgbm90IGV4Y2VlZCAke29wdGlvbnMudmFsdWV9IGNoYXJhY3RlcnMuYCxcbiAgICAgICAgICAgIHZhbHVlOiB2YWx1ZVxuICAgICAgICB9O1xuICAgIH1cbn1cbiJdfQ==
|
@@ -0,0 +1,15 @@
|
|
1
|
+
export class AXMinLengthValidationRule {
|
2
|
+
get name() {
|
3
|
+
return 'minLength';
|
4
|
+
}
|
5
|
+
validate(value, options) {
|
6
|
+
const isValid = value?.length >= options.value;
|
7
|
+
return {
|
8
|
+
name: this.name,
|
9
|
+
result: isValid,
|
10
|
+
message: isValid ? '' : `The value must be at least ${options.value} characters long.`,
|
11
|
+
value: value
|
12
|
+
};
|
13
|
+
}
|
14
|
+
}
|
15
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWlubGVuZ3RoLXJ1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvcmUvdmFsaWRhdGlvbi9zcmMvbGliL3J1bGVzL21pbmxlbmd0aC1ydWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQVlBLE1BQU0sT0FBTyx5QkFBeUI7SUFDbEMsSUFBSSxJQUFJO1FBQ0osT0FBTyxXQUFXLENBQUM7SUFDdkIsQ0FBQztJQUVELFFBQVEsQ0FBQyxLQUFhLEVBQUUsT0FBeUM7UUFDN0QsTUFBTSxPQUFPLEdBQUcsS0FBSyxFQUFFLE1BQU0sSUFBSSxPQUFPLENBQUMsS0FBSyxDQUFDO1FBQy9DLE9BQU87WUFDSCxJQUFJLEVBQUUsSUFBSSxDQUFDLElBQUk7WUFDZixNQUFNLEVBQUUsT0FBTztZQUNmLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsOEJBQThCLE9BQU8sQ0FBQyxLQUFLLG1CQUFtQjtZQUN0RixLQUFLLEVBQUUsS0FBSztTQUNmLENBQUM7SUFDTixDQUFDO0NBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBWFZhbGlkYXRpb25SdWxlLCBBWFZhbGlkYXRpb25SdWxlT3B0aW9ucywgQVhWYWxpZGF0aW9uUnVsZVJlc3VsdCB9IGZyb20gXCIuLi92YWxpZGF0aW9uXCI7XG5cbmV4cG9ydCBpbnRlcmZhY2UgQVhNaW5MZW5ndGhWYWxpZGF0aW9uUnVsZU9wdGlvbnMgZXh0ZW5kcyBBWFZhbGlkYXRpb25SdWxlT3B0aW9ucyB7XG4gICAgdmFsdWU6IG51bWJlcjtcbn1cblxuZGVjbGFyZSBtb2R1bGUgJy4uL3ZhbGlkYXRpb24nIHtcbiAgICBpbnRlcmZhY2UgQVhWYWxpZGF0aW9uUnVsZU9wdGlvbnNNYXAge1xuICAgICAgICAnbWluTGVuZ3RoJzogQVhNaW5MZW5ndGhWYWxpZGF0aW9uUnVsZU9wdGlvbnM7XG4gICAgfVxufVxuXG5leHBvcnQgY2xhc3MgQVhNaW5MZW5ndGhWYWxpZGF0aW9uUnVsZSBpbXBsZW1lbnRzIEFYVmFsaWRhdGlvblJ1bGUge1xuICAgIGdldCBuYW1lKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiAnbWluTGVuZ3RoJztcbiAgICB9XG5cbiAgICB2YWxpZGF0ZSh2YWx1ZTogc3RyaW5nLCBvcHRpb25zOiBBWE1pbkxlbmd0aFZhbGlkYXRpb25SdWxlT3B0aW9ucyk6IEFYVmFsaWRhdGlvblJ1bGVSZXN1bHQge1xuICAgICAgICBjb25zdCBpc1ZhbGlkID0gdmFsdWU/Lmxlbmd0aCA+PSBvcHRpb25zLnZhbHVlO1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgbmFtZTogdGhpcy5uYW1lLFxuICAgICAgICAgICAgcmVzdWx0OiBpc1ZhbGlkLFxuICAgICAgICAgICAgbWVzc2FnZTogaXNWYWxpZCA/ICcnIDogYFRoZSB2YWx1ZSBtdXN0IGJlIGF0IGxlYXN0ICR7b3B0aW9ucy52YWx1ZX0gY2hhcmFjdGVycyBsb25nLmAsXG4gICAgICAgICAgICB2YWx1ZTogdmFsdWVcbiAgICAgICAgfTtcbiAgICB9XG59Il19
|
@@ -0,0 +1,17 @@
|
|
1
|
+
export class AXRegexValidationRule {
|
2
|
+
get name() {
|
3
|
+
return 'regex';
|
4
|
+
}
|
5
|
+
validate(value, options) {
|
6
|
+
// Convert string pattern to RegExp if necessary
|
7
|
+
const regexPattern = typeof options.pattern === 'string' ? new RegExp(options.pattern) : options.pattern;
|
8
|
+
const isValid = regexPattern.test(value);
|
9
|
+
return {
|
10
|
+
name: this.name,
|
11
|
+
result: isValid,
|
12
|
+
message: isValid ? '' : `The value does not match the pattern ${regexPattern}.`,
|
13
|
+
value: value
|
14
|
+
};
|
15
|
+
}
|
16
|
+
}
|
17
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVnZXgtcnVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29yZS92YWxpZGF0aW9uL3NyYy9saWIvcnVsZXMvcmVnZXgtcnVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFjQSxNQUFNLE9BQU8scUJBQXFCO0lBRTlCLElBQUksSUFBSTtRQUNKLE9BQU8sT0FBTyxDQUFDO0lBQ25CLENBQUM7SUFFRCxRQUFRLENBQUMsS0FBYSxFQUFFLE9BQXFDO1FBQ3pELGdEQUFnRDtRQUNoRCxNQUFNLFlBQVksR0FBRyxPQUFPLE9BQU8sQ0FBQyxPQUFPLEtBQUssUUFBUSxDQUFDLENBQUMsQ0FBQyxJQUFJLE1BQU0sQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUM7UUFFekcsTUFBTSxPQUFPLEdBQUcsWUFBWSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUN6QyxPQUFPO1lBQ0gsSUFBSSxFQUFFLElBQUksQ0FBQyxJQUFJO1lBQ2YsTUFBTSxFQUFFLE9BQU87WUFDZixPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLHdDQUF3QyxZQUFZLEdBQUc7WUFDL0UsS0FBSyxFQUFFLEtBQUs7U0FDZixDQUFDO0lBQ04sQ0FBQztDQUVKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQVhWYWxpZGF0aW9uUnVsZSwgQVhWYWxpZGF0aW9uUnVsZU9wdGlvbnMsIEFYVmFsaWRhdGlvblJ1bGVSZXN1bHQgfSBmcm9tIFwiLi4vdmFsaWRhdGlvblwiO1xuXG5cbmV4cG9ydCBpbnRlcmZhY2UgQVhSZWdleFZhbGlkYXRpb25SdWxlT3B0aW9ucyBleHRlbmRzIEFYVmFsaWRhdGlvblJ1bGVPcHRpb25zIHtcbiAgICBwYXR0ZXJuOiBzdHJpbmcgfCBSZWdFeHA7XG59XG5cbi8vIEF1Z21lbnQgdGhlIEFYVmFsaWRhdGlvblJ1bGVPcHRpb25zTWFwXG5kZWNsYXJlIG1vZHVsZSAnLi4vdmFsaWRhdGlvbicge1xuICAgIGludGVyZmFjZSBBWFZhbGlkYXRpb25SdWxlT3B0aW9uc01hcCB7XG4gICAgICAgICdyZWdleCc6IEFYUmVnZXhWYWxpZGF0aW9uUnVsZU9wdGlvbnM7XG4gICAgfVxufVxuXG5leHBvcnQgY2xhc3MgQVhSZWdleFZhbGlkYXRpb25SdWxlIGltcGxlbWVudHMgQVhWYWxpZGF0aW9uUnVsZSB7XG5cbiAgICBnZXQgbmFtZSgpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gJ3JlZ2V4JztcbiAgICB9XG5cbiAgICB2YWxpZGF0ZSh2YWx1ZTogc3RyaW5nLCBvcHRpb25zOiBBWFJlZ2V4VmFsaWRhdGlvblJ1bGVPcHRpb25zKTogQVhWYWxpZGF0aW9uUnVsZVJlc3VsdCB7XG4gICAgICAgIC8vIENvbnZlcnQgc3RyaW5nIHBhdHRlcm4gdG8gUmVnRXhwIGlmIG5lY2Vzc2FyeVxuICAgICAgICBjb25zdCByZWdleFBhdHRlcm4gPSB0eXBlb2Ygb3B0aW9ucy5wYXR0ZXJuID09PSAnc3RyaW5nJyA/IG5ldyBSZWdFeHAob3B0aW9ucy5wYXR0ZXJuKSA6IG9wdGlvbnMucGF0dGVybjtcblxuICAgICAgICBjb25zdCBpc1ZhbGlkID0gcmVnZXhQYXR0ZXJuLnRlc3QodmFsdWUpO1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgbmFtZTogdGhpcy5uYW1lLFxuICAgICAgICAgICAgcmVzdWx0OiBpc1ZhbGlkLFxuICAgICAgICAgICAgbWVzc2FnZTogaXNWYWxpZCA/ICcnIDogYFRoZSB2YWx1ZSBkb2VzIG5vdCBtYXRjaCB0aGUgcGF0dGVybiAke3JlZ2V4UGF0dGVybn0uYCxcbiAgICAgICAgICAgIHZhbHVlOiB2YWx1ZVxuICAgICAgICB9O1xuICAgIH1cblxufSJdfQ==
|
@@ -0,0 +1,24 @@
|
|
1
|
+
import { find, isArray, isEmpty, isNull, isNumber, isString, isUndefined } from "lodash-es";
|
2
|
+
export class AXRequiredValidationRule {
|
3
|
+
get name() {
|
4
|
+
return 'required';
|
5
|
+
}
|
6
|
+
validate(value) {
|
7
|
+
const rules = [
|
8
|
+
{ test: val => isNull(val) || isUndefined(val) },
|
9
|
+
{ test: val => isString(val) && isEmpty(val.trim()) },
|
10
|
+
{ test: val => isNumber(val) && isNaN(val) },
|
11
|
+
{ test: val => isArray(val) && isEmpty(val) }
|
12
|
+
];
|
13
|
+
const failedRule = find(rules, rule => rule.test(value));
|
14
|
+
const isValid = !failedRule;
|
15
|
+
const message = failedRule ? "This filed is required" : null;
|
16
|
+
return {
|
17
|
+
name: this.name,
|
18
|
+
result: isValid,
|
19
|
+
message: message,
|
20
|
+
value
|
21
|
+
};
|
22
|
+
}
|
23
|
+
}
|
24
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVxdWlyZWQtcnVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29yZS92YWxpZGF0aW9uL3NyYy9saWIvcnVsZXMvcmVxdWlyZWQtcnVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUUsV0FBVyxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBYzVGLE1BQU0sT0FBTyx3QkFBd0I7SUFFakMsSUFBSSxJQUFJO1FBQ0osT0FBTyxVQUFVLENBQUM7SUFDdEIsQ0FBQztJQUVELFFBQVEsQ0FBQyxLQUFlO1FBQ3BCLE1BQU0sS0FBSyxHQUFHO1lBQ1YsRUFBRSxJQUFJLEVBQUUsR0FBRyxDQUFDLEVBQUUsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLElBQUksV0FBVyxDQUFDLEdBQUcsQ0FBQyxFQUFFO1lBQ2hELEVBQUUsSUFBSSxFQUFFLEdBQUcsQ0FBQyxFQUFFLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxJQUFJLE9BQU8sQ0FBQyxHQUFHLENBQUMsSUFBSSxFQUFFLENBQUMsRUFBRTtZQUNyRCxFQUFFLElBQUksRUFBRSxHQUFHLENBQUMsRUFBRSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsSUFBSSxLQUFLLENBQUMsR0FBRyxDQUFDLEVBQUU7WUFDNUMsRUFBRSxJQUFJLEVBQUUsR0FBRyxDQUFDLEVBQUUsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLElBQUksT0FBTyxDQUFDLEdBQUcsQ0FBQyxFQUFFO1NBQ2hELENBQUM7UUFFRixNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO1FBQ3pELE1BQU0sT0FBTyxHQUFHLENBQUMsVUFBVSxDQUFDO1FBQzVCLE1BQU0sT0FBTyxHQUFHLFVBQVUsQ0FBQyxDQUFDLENBQUMsd0JBQXdCLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztRQUU3RCxPQUFPO1lBQ0gsSUFBSSxFQUFFLElBQUksQ0FBQyxJQUFJO1lBQ2YsTUFBTSxFQUFFLE9BQU87WUFDZixPQUFPLEVBQUUsT0FBTztZQUNoQixLQUFLO1NBQ1IsQ0FBQztJQUNOLENBQUM7Q0FDSiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGZpbmQsIGlzQXJyYXksIGlzRW1wdHksIGlzTnVsbCwgaXNOdW1iZXIsIGlzU3RyaW5nLCBpc1VuZGVmaW5lZCB9IGZyb20gXCJsb2Rhc2gtZXNcIjtcbmltcG9ydCB7IEFYVmFsaWRhdGlvblJ1bGUsIEFYVmFsaWRhdGlvblJ1bGVPcHRpb25zLCBBWFZhbGlkYXRpb25SdWxlUmVzdWx0IH0gZnJvbSBcIi4uL3ZhbGlkYXRpb25cIjtcblxuXG5leHBvcnQgaW50ZXJmYWNlIEFYUmVxdWlyZWRWYWxpZGF0aW9uUnVsZU9wdGlvbnMgZXh0ZW5kcyBBWFZhbGlkYXRpb25SdWxlT3B0aW9ucyB7XG59XG5cbi8vIEF1Z21lbnQgdGhlIEFYVmFsaWRhdGlvblJ1bGVPcHRpb25zTWFwXG5kZWNsYXJlIG1vZHVsZSAnLi4vdmFsaWRhdGlvbicge1xuICAgIGludGVyZmFjZSBBWFZhbGlkYXRpb25SdWxlT3B0aW9uc01hcCB7XG4gICAgICAgICdyZXF1aXJlZCc6IEFYUmVxdWlyZWRWYWxpZGF0aW9uUnVsZU9wdGlvbnM7XG4gICAgfVxufVxuXG5leHBvcnQgY2xhc3MgQVhSZXF1aXJlZFZhbGlkYXRpb25SdWxlIGltcGxlbWVudHMgQVhWYWxpZGF0aW9uUnVsZSB7XG5cbiAgICBnZXQgbmFtZSgpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gJ3JlcXVpcmVkJztcbiAgICB9XG5cbiAgICB2YWxpZGF0ZSh2YWx1ZT86IHVua25vd24pOiBBWFZhbGlkYXRpb25SdWxlUmVzdWx0IHtcbiAgICAgICAgY29uc3QgcnVsZXMgPSBbXG4gICAgICAgICAgICB7IHRlc3Q6IHZhbCA9PiBpc051bGwodmFsKSB8fCBpc1VuZGVmaW5lZCh2YWwpIH0sXG4gICAgICAgICAgICB7IHRlc3Q6IHZhbCA9PiBpc1N0cmluZyh2YWwpICYmIGlzRW1wdHkodmFsLnRyaW0oKSkgfSxcbiAgICAgICAgICAgIHsgdGVzdDogdmFsID0+IGlzTnVtYmVyKHZhbCkgJiYgaXNOYU4odmFsKSB9LFxuICAgICAgICAgICAgeyB0ZXN0OiB2YWwgPT4gaXNBcnJheSh2YWwpICYmIGlzRW1wdHkodmFsKSB9XG4gICAgICAgIF07XG5cbiAgICAgICAgY29uc3QgZmFpbGVkUnVsZSA9IGZpbmQocnVsZXMsIHJ1bGUgPT4gcnVsZS50ZXN0KHZhbHVlKSk7XG4gICAgICAgIGNvbnN0IGlzVmFsaWQgPSAhZmFpbGVkUnVsZTtcbiAgICAgICAgY29uc3QgbWVzc2FnZSA9IGZhaWxlZFJ1bGUgPyBcIlRoaXMgZmlsZWQgaXMgcmVxdWlyZWRcIiA6IG51bGw7XG5cbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIG5hbWU6IHRoaXMubmFtZSxcbiAgICAgICAgICAgIHJlc3VsdDogaXNWYWxpZCxcbiAgICAgICAgICAgIG1lc3NhZ2U6IG1lc3NhZ2UsXG4gICAgICAgICAgICB2YWx1ZVxuICAgICAgICB9O1xuICAgIH1cbn0iXX0=
|
@@ -0,0 +1,2 @@
|
|
1
|
+
export {};
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFsaWRhdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29yZS92YWxpZGF0aW9uL3NyYy9saWIvdmFsaWRhdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGludGVyZmFjZSBBWFZhbGlkYXRpb25SdWxlT3B0aW9ucyB7XG4gICAgW2tleTogc3RyaW5nXTogdW5rbm93blxufVxuXG5cbmV4cG9ydCBpbnRlcmZhY2UgQVhWYWxpZGF0aW9uUnVsZU9wdGlvbnNNYXAge1xuICAgIC8vIGluaXRpYWxseSBlbXB0eSwgYnV0IHdpbGwgYmUgZXh0ZW5kZWQgYnkgb3RoZXIgbW9kdWxlc1xufVxuXG5cbmV4cG9ydCBpbnRlcmZhY2UgQVhWYWxpZGF0aW9uUnVsZSB7XG4gICAgZ2V0IG5hbWUoKTogc3RyaW5nO1xuICAgIHZhbGlkYXRlKHZhbHVlOiB1bmtub3duLCBvcHRpb25zPzogQVhWYWxpZGF0aW9uUnVsZU9wdGlvbnMpOiBBWFZhbGlkYXRpb25SdWxlUmVzdWx0IHwgUHJvbWlzZTxBWFZhbGlkYXRpb25SdWxlUmVzdWx0Pjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBBWFZhbGlkYXRpb25SdWxlUmVzdWx0IHtcbiAgICBuYW1lOiBzdHJpbmc7XG4gICAgdmFsdWU/OiB1bmtub3duO1xuICAgIG1lc3NhZ2U/OiBzdHJpbmcgfCBudWxsO1xuICAgIHJlc3VsdDogYm9vbGVhbjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBBWFZhbGlkYXRpb25TdW1tYXJ5IHtcbiAgICByZXN1bHQ6IGJvb2xlYW47XG4gICAgcnVsZXM6IEFYVmFsaWRhdGlvblJ1bGVSZXN1bHRbXVxufVxuIl19
|
@@ -0,0 +1,41 @@
|
|
1
|
+
import { APP_INITIALIZER, NgModule } from '@angular/core';
|
2
|
+
import { AXValidationRegistryService } from './validation.service';
|
3
|
+
import { AXRegexValidationRule } from './rules/regex-rule';
|
4
|
+
import { AXRequiredValidationRule } from './rules/required-rule';
|
5
|
+
import { AXCallbackValidationRule } from './rules/callback-rule';
|
6
|
+
import { AXMinLengthValidationRule } from './rules/minlength-rule';
|
7
|
+
import { AXMaxLengthValidationRule } from './rules/maxlength-rule';
|
8
|
+
import { AXLengthValidationRule } from './rules/length-rule';
|
9
|
+
import * as i0 from "@angular/core";
|
10
|
+
import * as i1 from "./validation.service";
|
11
|
+
export class AXValidationModule {
|
12
|
+
static forRoot(config) {
|
13
|
+
return {
|
14
|
+
ngModule: AXValidationModule,
|
15
|
+
providers: [
|
16
|
+
{
|
17
|
+
provide: APP_INITIALIZER,
|
18
|
+
useFactory: (pluginRegistry) => () => {
|
19
|
+
if (config?.validators?.length)
|
20
|
+
pluginRegistry.register(...config.validators);
|
21
|
+
},
|
22
|
+
deps: [AXValidationRegistryService],
|
23
|
+
multi: true
|
24
|
+
}
|
25
|
+
]
|
26
|
+
};
|
27
|
+
}
|
28
|
+
constructor(pluginRegistry) {
|
29
|
+
pluginRegistry.register(new AXRegexValidationRule(), new AXRequiredValidationRule(), new AXCallbackValidationRule(), new AXMinLengthValidationRule(), new AXMaxLengthValidationRule(), new AXLengthValidationRule());
|
30
|
+
}
|
31
|
+
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 }); }
|
32
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.0.8", ngImport: i0, type: AXValidationModule }); }
|
33
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.0.8", ngImport: i0, type: AXValidationModule }); }
|
34
|
+
}
|
35
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.8", ngImport: i0, type: AXValidationModule, decorators: [{
|
36
|
+
type: NgModule,
|
37
|
+
args: [{
|
38
|
+
imports: [],
|
39
|
+
}]
|
40
|
+
}], ctorParameters: () => [{ type: i1.AXValidationRegistryService }] });
|
41
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFsaWRhdGlvbi5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvcmUvdmFsaWRhdGlvbi9zcmMvbGliL3ZhbGlkYXRpb24ubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxlQUFlLEVBQXVCLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMvRSxPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUVuRSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUMzRCxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUNqRSxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUNqRSxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUNuRSxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUNuRSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQzs7O0FBTTdELE1BQU0sT0FBTyxrQkFBa0I7SUFFM0IsTUFBTSxDQUFDLE9BQU8sQ0FBQyxNQUE0QztRQUN2RCxPQUFPO1lBQ0gsUUFBUSxFQUFFLGtCQUFrQjtZQUM1QixTQUFTLEVBQUU7Z0JBQ1A7b0JBQ0ksT0FBTyxFQUFFLGVBQWU7b0JBQ3hCLFVBQVUsRUFBRSxDQUFDLGNBQTJDLEVBQUUsRUFBRSxDQUFDLEdBQUcsRUFBRTt3QkFDOUQsSUFBSSxNQUFNLEVBQUUsVUFBVSxFQUFFLE1BQU07NEJBQzFCLGNBQWMsQ0FBQyxRQUFRLENBQUMsR0FBRyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUM7b0JBQ3RELENBQUM7b0JBQ0QsSUFBSSxFQUFFLENBQUMsMkJBQTJCLENBQUM7b0JBQ25DLEtBQUssRUFBRSxJQUFJO2lCQUNkO2FBQ0o7U0FDSixDQUFDO0lBQ04sQ0FBQztJQUVELFlBQVksY0FBMkM7UUFDbkQsY0FBYyxDQUFDLFFBQVEsQ0FDbkIsSUFBSSxxQkFBcUIsRUFBRSxFQUMzQixJQUFJLHdCQUF3QixFQUFFLEVBQzlCLElBQUksd0JBQXdCLEVBQUUsRUFDOUIsSUFBSSx5QkFBeUIsRUFBRSxFQUMvQixJQUFJLHlCQUF5QixFQUFFLEVBQy9CLElBQUksc0JBQXNCLEVBQUUsQ0FDL0IsQ0FBQTtJQUNMLENBQUM7OEdBNUJRLGtCQUFrQjsrR0FBbEIsa0JBQWtCOytHQUFsQixrQkFBa0I7OzJGQUFsQixrQkFBa0I7a0JBSDlCLFFBQVE7bUJBQUM7b0JBQ04sT0FBTyxFQUFFLEVBQUU7aUJBQ2QiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBUFBfSU5JVElBTElaRVIsIE1vZHVsZVdpdGhQcm92aWRlcnMsIE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBWFZhbGlkYXRpb25SZWdpc3RyeVNlcnZpY2UgfSBmcm9tICcuL3ZhbGlkYXRpb24uc2VydmljZSc7XG5pbXBvcnQgeyBBWFZhbGlkYXRpb25SdWxlIH0gZnJvbSAnLi92YWxpZGF0aW9uJztcbmltcG9ydCB7IEFYUmVnZXhWYWxpZGF0aW9uUnVsZSB9IGZyb20gJy4vcnVsZXMvcmVnZXgtcnVsZSc7XG5pbXBvcnQgeyBBWFJlcXVpcmVkVmFsaWRhdGlvblJ1bGUgfSBmcm9tICcuL3J1bGVzL3JlcXVpcmVkLXJ1bGUnO1xuaW1wb3J0IHsgQVhDYWxsYmFja1ZhbGlkYXRpb25SdWxlIH0gZnJvbSAnLi9ydWxlcy9jYWxsYmFjay1ydWxlJztcbmltcG9ydCB7IEFYTWluTGVuZ3RoVmFsaWRhdGlvblJ1bGUgfSBmcm9tICcuL3J1bGVzL21pbmxlbmd0aC1ydWxlJztcbmltcG9ydCB7IEFYTWF4TGVuZ3RoVmFsaWRhdGlvblJ1bGUgfSBmcm9tICcuL3J1bGVzL21heGxlbmd0aC1ydWxlJztcbmltcG9ydCB7IEFYTGVuZ3RoVmFsaWRhdGlvblJ1bGUgfSBmcm9tICcuL3J1bGVzL2xlbmd0aC1ydWxlJztcblxuXG5ATmdNb2R1bGUoe1xuICAgIGltcG9ydHM6IFtdLFxufSlcbmV4cG9ydCBjbGFzcyBBWFZhbGlkYXRpb25Nb2R1bGUge1xuXG4gICAgc3RhdGljIGZvclJvb3QoY29uZmlnPzogeyB2YWxpZGF0b3JzPzogQVhWYWxpZGF0aW9uUnVsZVtdIH0pOiBNb2R1bGVXaXRoUHJvdmlkZXJzPEFYVmFsaWRhdGlvbk1vZHVsZT4ge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgbmdNb2R1bGU6IEFYVmFsaWRhdGlvbk1vZHVsZSxcbiAgICAgICAgICAgIHByb3ZpZGVyczogW1xuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgcHJvdmlkZTogQVBQX0lOSVRJQUxJWkVSLFxuICAgICAgICAgICAgICAgICAgICB1c2VGYWN0b3J5OiAocGx1Z2luUmVnaXN0cnk6IEFYVmFsaWRhdGlvblJlZ2lzdHJ5U2VydmljZSkgPT4gKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGNvbmZpZz8udmFsaWRhdG9ycz8ubGVuZ3RoKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBsdWdpblJlZ2lzdHJ5LnJlZ2lzdGVyKC4uLmNvbmZpZy52YWxpZGF0b3JzKTtcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgZGVwczogW0FYVmFsaWRhdGlvblJlZ2lzdHJ5U2VydmljZV0sXG4gICAgICAgICAgICAgICAgICAgIG11bHRpOiB0cnVlXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgXVxuICAgICAgICB9O1xuICAgIH1cblxuICAgIGNvbnN0cnVjdG9yKHBsdWdpblJlZ2lzdHJ5OiBBWFZhbGlkYXRpb25SZWdpc3RyeVNlcnZpY2UpIHtcbiAgICAgICAgcGx1Z2luUmVnaXN0cnkucmVnaXN0ZXIoXG4gICAgICAgICAgICBuZXcgQVhSZWdleFZhbGlkYXRpb25SdWxlKCksXG4gICAgICAgICAgICBuZXcgQVhSZXF1aXJlZFZhbGlkYXRpb25SdWxlKCksXG4gICAgICAgICAgICBuZXcgQVhDYWxsYmFja1ZhbGlkYXRpb25SdWxlKCksXG4gICAgICAgICAgICBuZXcgQVhNaW5MZW5ndGhWYWxpZGF0aW9uUnVsZSgpLFxuICAgICAgICAgICAgbmV3IEFYTWF4TGVuZ3RoVmFsaWRhdGlvblJ1bGUoKSxcbiAgICAgICAgICAgIG5ldyBBWExlbmd0aFZhbGlkYXRpb25SdWxlKCksXG4gICAgICAgIClcbiAgICB9XG59XG4iXX0=
|
@@ -0,0 +1,71 @@
|
|
1
|
+
import { Injectable } from "@angular/core";
|
2
|
+
import { AXTranslator } from "@acorex/core/translation";
|
3
|
+
import * as i0 from "@angular/core";
|
4
|
+
export class AXValidationRegistryService {
|
5
|
+
constructor() {
|
6
|
+
this.plugins = [];
|
7
|
+
}
|
8
|
+
register(...plugin) {
|
9
|
+
this.plugins.push(...plugin.filter(p => !this.plugins.some(c => c.name == p.name)));
|
10
|
+
}
|
11
|
+
get validators() {
|
12
|
+
return this.plugins;
|
13
|
+
}
|
14
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.8", ngImport: i0, type: AXValidationRegistryService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
15
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.0.8", ngImport: i0, type: AXValidationRegistryService, providedIn: 'root' }); }
|
16
|
+
}
|
17
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.8", ngImport: i0, type: AXValidationRegistryService, decorators: [{
|
18
|
+
type: Injectable,
|
19
|
+
args: [{
|
20
|
+
providedIn: 'root'
|
21
|
+
}]
|
22
|
+
}] });
|
23
|
+
export class AXValidationService {
|
24
|
+
constructor(pluginRegistry) {
|
25
|
+
this.pluginRegistry = pluginRegistry;
|
26
|
+
}
|
27
|
+
validate(ruleName, value, options) {
|
28
|
+
const validator = this.pluginRegistry.validators.find((c) => c.name == ruleName);
|
29
|
+
if (!validator) {
|
30
|
+
return {
|
31
|
+
name: ruleName,
|
32
|
+
result: false,
|
33
|
+
message: AXTranslator.get('validation.messages.invalid-rull-name', { name: ruleName }),
|
34
|
+
value
|
35
|
+
};
|
36
|
+
}
|
37
|
+
return validator.validate(value, options);
|
38
|
+
}
|
39
|
+
ruleFor(value) {
|
40
|
+
return new AXValidationRuleChain(this, value);
|
41
|
+
}
|
42
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.8", ngImport: i0, type: AXValidationService, deps: [{ token: AXValidationRegistryService }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
43
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.0.8", ngImport: i0, type: AXValidationService, providedIn: 'root' }); }
|
44
|
+
}
|
45
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.8", ngImport: i0, type: AXValidationService, decorators: [{
|
46
|
+
type: Injectable,
|
47
|
+
args: [{ providedIn: 'root' }]
|
48
|
+
}], ctorParameters: () => [{ type: AXValidationRegistryService }] });
|
49
|
+
class AXValidationRuleChain {
|
50
|
+
constructor(validationService, initialValue) {
|
51
|
+
this.validationService = validationService;
|
52
|
+
this.initialValue = initialValue;
|
53
|
+
this.rules = [];
|
54
|
+
this.validationSummary = { result: true, rules: [] };
|
55
|
+
}
|
56
|
+
addRule(name, options) {
|
57
|
+
this.rules.push({ name, options });
|
58
|
+
return this;
|
59
|
+
}
|
60
|
+
async validate() {
|
61
|
+
for (const rule of this.rules) {
|
62
|
+
const result = await this.validationService.validate(rule.name, this.initialValue, rule.options);
|
63
|
+
this.validationSummary.rules.push(result);
|
64
|
+
if (!result.result) {
|
65
|
+
this.validationSummary.result = false;
|
66
|
+
}
|
67
|
+
}
|
68
|
+
return this.validationSummary;
|
69
|
+
}
|
70
|
+
}
|
71
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFsaWRhdGlvbi5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb3JlL3ZhbGlkYXRpb24vc3JjL2xpYi92YWxpZGF0aW9uLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUUzQyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7O0FBS3hELE1BQU0sT0FBTywyQkFBMkI7SUFIeEM7UUFJWSxZQUFPLEdBQXVCLEVBQUUsQ0FBQztLQVM1QztJQVBHLFFBQVEsQ0FBQyxHQUFHLE1BQTBCO1FBQ2xDLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDeEYsQ0FBQztJQUVELElBQUksVUFBVTtRQUNWLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQztJQUN4QixDQUFDOzhHQVRRLDJCQUEyQjtrSEFBM0IsMkJBQTJCLGNBRnhCLE1BQU07OzJGQUVULDJCQUEyQjtrQkFIdkMsVUFBVTttQkFBQztvQkFDUixVQUFVLEVBQUUsTUFBTTtpQkFDckI7O0FBY0QsTUFBTSxPQUFPLG1CQUFtQjtJQUM1QixZQUNZLGNBQTJDO1FBQTNDLG1CQUFjLEdBQWQsY0FBYyxDQUE2QjtJQUNuRCxDQUFDO0lBRUwsUUFBUSxDQUFDLFFBQWdCLEVBQUUsS0FBYyxFQUFFLE9BQWlDO1FBQ3hFLE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksSUFBSSxRQUFRLENBQUMsQ0FBQztRQUNqRixJQUFJLENBQUMsU0FBUyxFQUFFO1lBQ1osT0FBTztnQkFDSCxJQUFJLEVBQUUsUUFBUTtnQkFDZCxNQUFNLEVBQUUsS0FBSztnQkFDYixPQUFPLEVBQUUsWUFBWSxDQUFDLEdBQUcsQ0FBQyx1Q0FBdUMsRUFBRSxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUUsQ0FBQztnQkFDdEYsS0FBSzthQUNSLENBQUM7U0FDTDtRQUNELE9BQU8sU0FBUyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFDOUMsQ0FBQztJQUdELE9BQU8sQ0FBQyxLQUFjO1FBQ2xCLE9BQU8sSUFBSSxxQkFBcUIsQ0FBQyxJQUFJLEVBQUUsS0FBSyxDQUFDLENBQUM7SUFDbEQsQ0FBQzs4R0FyQlEsbUJBQW1CO2tIQUFuQixtQkFBbUIsY0FETixNQUFNOzsyRkFDbkIsbUJBQW1CO2tCQUQvQixVQUFVO21CQUFDLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRTs7QUF5QmxDLE1BQU0scUJBQXFCO0lBSXZCLFlBQW9CLGlCQUFzQyxFQUFVLFlBQXFCO1FBQXJFLHNCQUFpQixHQUFqQixpQkFBaUIsQ0FBcUI7UUFBVSxpQkFBWSxHQUFaLFlBQVksQ0FBUztRQUhqRixVQUFLLEdBQTBELEVBQUUsQ0FBQztRQUNsRSxzQkFBaUIsR0FBd0IsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxFQUFFLEVBQUUsQ0FBQztJQUVnQixDQUFDO0lBRTlGLE9BQU8sQ0FBNkMsSUFBTyxFQUFFLE9BQXVDO1FBQ2hHLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBRSxDQUFDLENBQUM7UUFDbkMsT0FBTyxJQUFJLENBQUM7SUFDaEIsQ0FBQztJQUVELEtBQUssQ0FBQyxRQUFRO1FBQ1YsS0FBSyxNQUFNLElBQUksSUFBSSxJQUFJLENBQUMsS0FBSyxFQUFFO1lBQzNCLE1BQU0sTUFBTSxHQUFHLE1BQU0sSUFBSSxDQUFDLGlCQUFpQixDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxZQUFZLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBQ2pHLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1lBQzFDLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxFQUFFO2dCQUNoQixJQUFJLENBQUMsaUJBQWlCLENBQUMsTUFBTSxHQUFHLEtBQUssQ0FBQzthQUN6QztTQUNKO1FBQ0QsT0FBTyxJQUFJLENBQUMsaUJBQWlCLENBQUM7SUFDbEMsQ0FBQztDQUNKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQgeyBBWFZhbGlkYXRpb25SdWxlLCBBWFZhbGlkYXRpb25SdWxlT3B0aW9ucywgQVhWYWxpZGF0aW9uUnVsZU9wdGlvbnNNYXAsIEFYVmFsaWRhdGlvblJ1bGVSZXN1bHQsIEFYVmFsaWRhdGlvblN1bW1hcnkgfSBmcm9tIFwiLi92YWxpZGF0aW9uXCI7XG5pbXBvcnQgeyBBWFRyYW5zbGF0b3IgfSBmcm9tIFwiQGFjb3JleC9jb3JlL3RyYW5zbGF0aW9uXCI7XG5cbkBJbmplY3RhYmxlKHtcbiAgICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgQVhWYWxpZGF0aW9uUmVnaXN0cnlTZXJ2aWNlIHtcbiAgICBwcml2YXRlIHBsdWdpbnM6IEFYVmFsaWRhdGlvblJ1bGVbXSA9IFtdO1xuXG4gICAgcmVnaXN0ZXIoLi4ucGx1Z2luOiBBWFZhbGlkYXRpb25SdWxlW10pIHtcbiAgICAgICAgdGhpcy5wbHVnaW5zLnB1c2goLi4ucGx1Z2luLmZpbHRlcihwID0+ICF0aGlzLnBsdWdpbnMuc29tZShjID0+IGMubmFtZSA9PSBwLm5hbWUpKSk7XG4gICAgfVxuXG4gICAgZ2V0IHZhbGlkYXRvcnMoKTogQVhWYWxpZGF0aW9uUnVsZVtdIHtcbiAgICAgICAgcmV0dXJuIHRoaXMucGx1Z2lucztcbiAgICB9XG59XG5cbkBJbmplY3RhYmxlKHsgcHJvdmlkZWRJbjogJ3Jvb3QnIH0pXG5leHBvcnQgY2xhc3MgQVhWYWxpZGF0aW9uU2VydmljZSB7XG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHByaXZhdGUgcGx1Z2luUmVnaXN0cnk6IEFYVmFsaWRhdGlvblJlZ2lzdHJ5U2VydmljZVxuICAgICkgeyB9XG5cbiAgICB2YWxpZGF0ZShydWxlTmFtZTogc3RyaW5nLCB2YWx1ZTogdW5rbm93biwgb3B0aW9ucz86IEFYVmFsaWRhdGlvblJ1bGVPcHRpb25zKTogQVhWYWxpZGF0aW9uUnVsZVJlc3VsdCB8IFByb21pc2U8QVhWYWxpZGF0aW9uUnVsZVJlc3VsdD4ge1xuICAgICAgICBjb25zdCB2YWxpZGF0b3IgPSB0aGlzLnBsdWdpblJlZ2lzdHJ5LnZhbGlkYXRvcnMuZmluZCgoYykgPT4gYy5uYW1lID09IHJ1bGVOYW1lKTtcbiAgICAgICAgaWYgKCF2YWxpZGF0b3IpIHtcbiAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgbmFtZTogcnVsZU5hbWUsXG4gICAgICAgICAgICAgICAgcmVzdWx0OiBmYWxzZSxcbiAgICAgICAgICAgICAgICBtZXNzYWdlOiBBWFRyYW5zbGF0b3IuZ2V0KCd2YWxpZGF0aW9uLm1lc3NhZ2VzLmludmFsaWQtcnVsbC1uYW1lJywgeyBuYW1lOiBydWxlTmFtZSB9KSxcbiAgICAgICAgICAgICAgICB2YWx1ZVxuICAgICAgICAgICAgfTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdmFsaWRhdG9yLnZhbGlkYXRlKHZhbHVlLCBvcHRpb25zKTtcbiAgICB9XG5cblxuICAgIHJ1bGVGb3IodmFsdWU6IHVua25vd24pOiBBWFZhbGlkYXRpb25SdWxlQ2hhaW4ge1xuICAgICAgICByZXR1cm4gbmV3IEFYVmFsaWRhdGlvblJ1bGVDaGFpbih0aGlzLCB2YWx1ZSk7XG4gICAgfVxufVxuXG5jbGFzcyBBWFZhbGlkYXRpb25SdWxlQ2hhaW4ge1xuICAgIHByaXZhdGUgcnVsZXM6IHsgbmFtZTogc3RyaW5nLCBvcHRpb25zPzogQVhWYWxpZGF0aW9uUnVsZU9wdGlvbnMgfVtdID0gW107XG4gICAgcHJpdmF0ZSB2YWxpZGF0aW9uU3VtbWFyeTogQVhWYWxpZGF0aW9uU3VtbWFyeSA9IHsgcmVzdWx0OiB0cnVlLCBydWxlczogW10gfTtcblxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgdmFsaWRhdGlvblNlcnZpY2U6IEFYVmFsaWRhdGlvblNlcnZpY2UsIHByaXZhdGUgaW5pdGlhbFZhbHVlOiB1bmtub3duKSB7IH1cblxuICAgIGFkZFJ1bGU8SyBleHRlbmRzIGtleW9mIEFYVmFsaWRhdGlvblJ1bGVPcHRpb25zTWFwPihuYW1lOiBLLCBvcHRpb25zPzogQVhWYWxpZGF0aW9uUnVsZU9wdGlvbnNNYXBbS10pOiBBWFZhbGlkYXRpb25SdWxlQ2hhaW4ge1xuICAgICAgICB0aGlzLnJ1bGVzLnB1c2goeyBuYW1lLCBvcHRpb25zIH0pO1xuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG5cbiAgICBhc3luYyB2YWxpZGF0ZSgpOiBQcm9taXNlPEFYVmFsaWRhdGlvblN1bW1hcnk+IHtcbiAgICAgICAgZm9yIChjb25zdCBydWxlIG9mIHRoaXMucnVsZXMpIHtcbiAgICAgICAgICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IHRoaXMudmFsaWRhdGlvblNlcnZpY2UudmFsaWRhdGUocnVsZS5uYW1lLCB0aGlzLmluaXRpYWxWYWx1ZSwgcnVsZS5vcHRpb25zKTtcbiAgICAgICAgICAgIHRoaXMudmFsaWRhdGlvblN1bW1hcnkucnVsZXMucHVzaChyZXN1bHQpO1xuICAgICAgICAgICAgaWYgKCFyZXN1bHQucmVzdWx0KSB7XG4gICAgICAgICAgICAgICAgdGhpcy52YWxpZGF0aW9uU3VtbWFyeS5yZXN1bHQgPSBmYWxzZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdGhpcy52YWxpZGF0aW9uU3VtbWFyeTtcbiAgICB9XG59XG4iXX0=
|
@@ -23,10 +23,10 @@ class AXConfigService {
|
|
23
23
|
const v2 = this.injector.get(providerToken);
|
24
24
|
return get(v2, parts[parts.length - 1], defaultValue);
|
25
25
|
}
|
26
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.
|
27
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.0.
|
26
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.8", ngImport: i0, type: AXConfigService, deps: [{ token: i0.Injector }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
27
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.0.8", ngImport: i0, type: AXConfigService, providedIn: 'root' }); }
|
28
28
|
}
|
29
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.
|
29
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.8", ngImport: i0, type: AXConfigService, decorators: [{
|
30
30
|
type: Injectable,
|
31
31
|
args: [{ providedIn: 'root' }]
|
32
32
|
}], ctorParameters: () => [{ type: i0.Injector }] });
|
@@ -39,6 +39,7 @@ class AXDateTime {
|
|
39
39
|
s: () => this.date.getSeconds().toString(),
|
40
40
|
//
|
41
41
|
dd: () => this.pad(this.calendar.dayOfMonth(this.date), 2),
|
42
|
+
DD: () => this.pad(this.calendar.dayOfMonth(this.date), 2),
|
42
43
|
d: () => this.calendar.dayOfMonth(this.date).toString(),
|
43
44
|
//
|
44
45
|
mm: () => this.pad(this.date.getMinutes(), 2),
|
@@ -65,6 +66,7 @@ class AXDateTime {
|
|
65
66
|
//
|
66
67
|
A: () => (this.date.getHours() < 12 ? 'am' : 'pm'),
|
67
68
|
a: () => (this.date.getHours() < 12 ? 'am' : 'pm'),
|
69
|
+
//"date": () => this.format(this.getFormatPattern('fa-IR', 'date')),
|
68
70
|
};
|
69
71
|
this._calendar = calendar;
|
70
72
|
this._date = value;
|
@@ -123,7 +125,9 @@ class AXDateTime {
|
|
123
125
|
format(format = this.calendar.formats.dateTimeDisplay) {
|
124
126
|
const re = new RegExp(orderBy(Object.keys(this._formatKeys), (c) => c.length, ['desc']).join('|'), 'gi');
|
125
127
|
return format.replace(re, (matched) => {
|
126
|
-
|
128
|
+
const f = this._formatKeys[matched];
|
129
|
+
const r = f();
|
130
|
+
return r;
|
127
131
|
});
|
128
132
|
}
|
129
133
|
pad(n, width, z = '0') {
|
@@ -1003,10 +1007,10 @@ class AXCalendarService {
|
|
1003
1007
|
const date = value instanceof AXDateTime ? value.date : value;
|
1004
1008
|
return new AXDateTime(date, calendar);
|
1005
1009
|
}
|
1006
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.
|
1007
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.0.
|
1010
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.8", ngImport: i0, type: AXCalendarService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
1011
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.0.8", ngImport: i0, type: AXCalendarService, providedIn: 'root' }); }
|
1008
1012
|
}
|
1009
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.
|
1013
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.8", ngImport: i0, type: AXCalendarService, decorators: [{
|
1010
1014
|
type: Injectable,
|
1011
1015
|
args: [{ providedIn: 'root' }]
|
1012
1016
|
}], ctorParameters: () => [] });
|
@@ -1022,10 +1026,10 @@ class AXDateTimeFormatter {
|
|
1022
1026
|
const formatStr = (args.length ? args[0] : null);
|
1023
1027
|
return this.calendarService.create(value).format(formatStr);
|
1024
1028
|
}
|
1025
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.
|
1026
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.0.
|
1029
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.8", ngImport: i0, type: AXDateTimeFormatter, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
1030
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.0.8", ngImport: i0, type: AXDateTimeFormatter }); }
|
1027
1031
|
}
|
1028
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.
|
1032
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.8", ngImport: i0, type: AXDateTimeFormatter, decorators: [{
|
1029
1033
|
type: Injectable
|
1030
1034
|
}] });
|
1031
1035
|
class AXTimeLeftFormatter {
|
@@ -1109,10 +1113,10 @@ class AXTimeLeftFormatter {
|
|
1109
1113
|
return 'Invalid format';
|
1110
1114
|
}
|
1111
1115
|
}
|
1112
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.
|
1113
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.0.
|
1116
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.8", ngImport: i0, type: AXTimeLeftFormatter, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
1117
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.0.8", ngImport: i0, type: AXTimeLeftFormatter }); }
|
1114
1118
|
}
|
1115
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.
|
1119
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.8", ngImport: i0, type: AXTimeLeftFormatter, decorators: [{
|
1116
1120
|
type: Injectable
|
1117
1121
|
}] });
|
1118
1122
|
|
@@ -1136,10 +1140,10 @@ class AXDateTimePipe {
|
|
1136
1140
|
return val.format(format);
|
1137
1141
|
}
|
1138
1142
|
}
|
1139
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.
|
1140
|
-
static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "17.0.
|
1143
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.8", ngImport: i0, type: AXDateTimePipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
|
1144
|
+
static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "17.0.8", ngImport: i0, type: AXDateTimePipe, name: "axDate" }); }
|
1141
1145
|
}
|
1142
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.
|
1146
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.8", ngImport: i0, type: AXDateTimePipe, decorators: [{
|
1143
1147
|
type: Pipe,
|
1144
1148
|
args: [{ name: 'axDate' }]
|
1145
1149
|
}] });
|
@@ -1148,11 +1152,11 @@ class AXDateTimeModule {
|
|
1148
1152
|
constructor(service) {
|
1149
1153
|
service.register(new AXDateTimeFormatter(), new AXTimeLeftFormatter());
|
1150
1154
|
}
|
1151
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.
|
1152
|
-
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.0.
|
1153
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.0.
|
1155
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.8", ngImport: i0, type: AXDateTimeModule, deps: [{ token: i1.AXFormatterRegistryService }], target: i0.ɵɵFactoryTarget.NgModule }); }
|
1156
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.0.8", ngImport: i0, type: AXDateTimeModule, declarations: [AXDateTimePipe], imports: [AXFormatModule], exports: [AXDateTimePipe] }); }
|
1157
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.0.8", ngImport: i0, type: AXDateTimeModule, imports: [AXFormatModule] }); }
|
1154
1158
|
}
|
1155
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.
|
1159
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.8", ngImport: i0, type: AXDateTimeModule, decorators: [{
|
1156
1160
|
type: NgModule,
|
1157
1161
|
args: [{
|
1158
1162
|
imports: [AXFormatModule],
|