@acorex/core 7.17.19 → 7.17.21
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 +6 -0
- package/esm2022/validation/lib/regex-validator.mjs +17 -0
- package/esm2022/validation/lib/required-validator.mjs +24 -0
- package/esm2022/validation/lib/validation.mjs +2 -0
- package/esm2022/validation/lib/validation.module.mjs +37 -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 +150 -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 +5 -0
- package/validation/lib/regex-validator.d.ts +8 -0
- package/validation/lib/required-validator.d.ts +7 -0
- package/validation/lib/validation.d.ts +18 -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,6 @@
|
|
1
|
+
export * from './lib/validation';
|
2
|
+
export * from './lib/regex-validator';
|
3
|
+
export * from './lib/required-validator';
|
4
|
+
export * from './lib/validation.service';
|
5
|
+
export * from './lib/validation.module';
|
6
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzL2NvcmUvdmFsaWRhdGlvbi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxrQkFBa0IsQ0FBQztBQUNqQyxjQUFjLHVCQUF1QixDQUFDO0FBQ3RDLGNBQWMsMEJBQTBCLENBQUM7QUFDekMsY0FBYywwQkFBMEIsQ0FBQztBQUN6QyxjQUFjLHlCQUF5QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9saWIvdmFsaWRhdGlvbic7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9yZWdleC12YWxpZGF0b3InO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvcmVxdWlyZWQtdmFsaWRhdG9yJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3ZhbGlkYXRpb24uc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi92YWxpZGF0aW9uLm1vZHVsZSc7Il19
|
@@ -0,0 +1,17 @@
|
|
1
|
+
export class AXRegexValidator {
|
2
|
+
get name() {
|
3
|
+
return 'regex';
|
4
|
+
}
|
5
|
+
validate(context) {
|
6
|
+
// Convert string pattern to RegExp if necessary
|
7
|
+
const regexPattern = typeof context.pattern === 'string' ? new RegExp(context.pattern) : context.pattern;
|
8
|
+
const isValid = regexPattern.test(context.value);
|
9
|
+
return {
|
10
|
+
name: this.name,
|
11
|
+
result: isValid,
|
12
|
+
message: isValid ? '' : `The value does not match the pattern ${regexPattern}.`,
|
13
|
+
value: context.value
|
14
|
+
};
|
15
|
+
}
|
16
|
+
}
|
17
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVnZXgtdmFsaWRhdG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb3JlL3ZhbGlkYXRpb24vc3JjL2xpYi9yZWdleC12YWxpZGF0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsTUFBTSxPQUFPLGdCQUFnQjtJQUV6QixJQUFJLElBQUk7UUFDSixPQUFPLE9BQU8sQ0FBQztJQUNuQixDQUFDO0lBRUQsUUFBUSxDQUFDLE9BQW9EO1FBQ3pELGdEQUFnRDtRQUNoRCxNQUFNLFlBQVksR0FBRyxPQUFPLE9BQU8sQ0FBQyxPQUFPLEtBQUssUUFBUSxDQUFDLENBQUMsQ0FBQyxJQUFJLE1BQU0sQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUM7UUFFekcsTUFBTSxPQUFPLEdBQUcsWUFBWSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDakQsT0FBTztZQUNILElBQUksRUFBRSxJQUFJLENBQUMsSUFBSTtZQUNmLE1BQU0sRUFBRSxPQUFPO1lBQ2YsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyx3Q0FBd0MsWUFBWSxHQUFHO1lBQy9FLEtBQUssRUFBRSxPQUFPLENBQUMsS0FBSztTQUN2QixDQUFDO0lBQ04sQ0FBQztDQUVKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQVhWYWxpZGF0aW9uUnVsZSwgQVhWYWxpZGF0aW9uUnVsZVJlc3VsdCB9IGZyb20gXCIuL3ZhbGlkYXRpb25cIjtcblxuZXhwb3J0IGNsYXNzIEFYUmVnZXhWYWxpZGF0b3IgaW1wbGVtZW50cyBBWFZhbGlkYXRpb25SdWxlIHtcblxuICAgIGdldCBuYW1lKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiAncmVnZXgnO1xuICAgIH1cblxuICAgIHZhbGlkYXRlKGNvbnRleHQ6IHsgdmFsdWU6IHN0cmluZywgcGF0dGVybjogc3RyaW5nIHwgUmVnRXhwIH0pOiBBWFZhbGlkYXRpb25SdWxlUmVzdWx0IHtcbiAgICAgICAgLy8gQ29udmVydCBzdHJpbmcgcGF0dGVybiB0byBSZWdFeHAgaWYgbmVjZXNzYXJ5XG4gICAgICAgIGNvbnN0IHJlZ2V4UGF0dGVybiA9IHR5cGVvZiBjb250ZXh0LnBhdHRlcm4gPT09ICdzdHJpbmcnID8gbmV3IFJlZ0V4cChjb250ZXh0LnBhdHRlcm4pIDogY29udGV4dC5wYXR0ZXJuO1xuXG4gICAgICAgIGNvbnN0IGlzVmFsaWQgPSByZWdleFBhdHRlcm4udGVzdChjb250ZXh0LnZhbHVlKTtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIG5hbWU6IHRoaXMubmFtZSxcbiAgICAgICAgICAgIHJlc3VsdDogaXNWYWxpZCxcbiAgICAgICAgICAgIG1lc3NhZ2U6IGlzVmFsaWQgPyAnJyA6IGBUaGUgdmFsdWUgZG9lcyBub3QgbWF0Y2ggdGhlIHBhdHRlcm4gJHtyZWdleFBhdHRlcm59LmAsXG4gICAgICAgICAgICB2YWx1ZTogY29udGV4dC52YWx1ZVxuICAgICAgICB9O1xuICAgIH1cblxufSJdfQ==
|
@@ -0,0 +1,24 @@
|
|
1
|
+
import { find, isArray, isEmpty, isNull, isNumber, isString, isUndefined } from "lodash-es";
|
2
|
+
export class AXRequiredValidator {
|
3
|
+
get name() {
|
4
|
+
return 'required';
|
5
|
+
}
|
6
|
+
validate(context) {
|
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(context.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: context.value
|
21
|
+
};
|
22
|
+
}
|
23
|
+
}
|
24
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVxdWlyZWQtdmFsaWRhdG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb3JlL3ZhbGlkYXRpb24vc3JjL2xpYi9yZXF1aXJlZC12YWxpZGF0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLElBQUksRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLFdBQVcsRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUc1RixNQUFNLE9BQU8sbUJBQW1CO0lBRTVCLElBQUksSUFBSTtRQUNKLE9BQU8sVUFBVSxDQUFDO0lBQ3RCLENBQUM7SUFFRCxRQUFRLENBQUMsT0FBNEI7UUFDakMsTUFBTSxLQUFLLEdBQUc7WUFDVixFQUFFLElBQUksRUFBRSxHQUFHLENBQUMsRUFBRSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsSUFBSSxXQUFXLENBQUMsR0FBRyxDQUFDLEVBQUU7WUFDaEQsRUFBRSxJQUFJLEVBQUUsR0FBRyxDQUFDLEVBQUUsQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLElBQUksT0FBTyxDQUFDLEdBQUcsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxFQUFFO1lBQ3JELEVBQUUsSUFBSSxFQUFFLEdBQUcsQ0FBQyxFQUFFLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxJQUFJLEtBQUssQ0FBQyxHQUFHLENBQUMsRUFBRTtZQUM1QyxFQUFFLElBQUksRUFBRSxHQUFHLENBQUMsRUFBRSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsSUFBSSxPQUFPLENBQUMsR0FBRyxDQUFDLEVBQUU7U0FDaEQsQ0FBQztRQUVGLE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO1FBQ2pFLE1BQU0sT0FBTyxHQUFHLENBQUMsVUFBVSxDQUFDO1FBQzVCLE1BQU0sT0FBTyxHQUFHLFVBQVUsQ0FBQyxDQUFDLENBQUMsd0JBQXdCLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztRQUU3RCxPQUFPO1lBQ0gsSUFBSSxFQUFFLElBQUksQ0FBQyxJQUFJO1lBQ2YsTUFBTSxFQUFFLE9BQU87WUFDZixPQUFPLEVBQUUsT0FBTztZQUNoQixLQUFLLEVBQUUsT0FBTyxDQUFDLEtBQUs7U0FDdkIsQ0FBQztJQUNOLENBQUM7Q0FDSiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGZpbmQsIGlzQXJyYXksIGlzRW1wdHksIGlzTnVsbCwgaXNOdW1iZXIsIGlzU3RyaW5nLCBpc1VuZGVmaW5lZCB9IGZyb20gXCJsb2Rhc2gtZXNcIjtcbmltcG9ydCB7IEFYVmFsaWRhdGlvblJ1bGUsIEFYVmFsaWRhdGlvblJ1bGVSZXN1bHQgfSBmcm9tIFwiLi92YWxpZGF0aW9uXCI7XG5cbmV4cG9ydCBjbGFzcyBBWFJlcXVpcmVkVmFsaWRhdG9yIGltcGxlbWVudHMgQVhWYWxpZGF0aW9uUnVsZSB7XG5cbiAgICBnZXQgbmFtZSgpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gJ3JlcXVpcmVkJztcbiAgICB9XG5cbiAgICB2YWxpZGF0ZShjb250ZXh0OiB7IHZhbHVlPzogdW5rbm93biB9KTogQVhWYWxpZGF0aW9uUnVsZVJlc3VsdCB7XG4gICAgICAgIGNvbnN0IHJ1bGVzID0gW1xuICAgICAgICAgICAgeyB0ZXN0OiB2YWwgPT4gaXNOdWxsKHZhbCkgfHwgaXNVbmRlZmluZWQodmFsKSB9LFxuICAgICAgICAgICAgeyB0ZXN0OiB2YWwgPT4gaXNTdHJpbmcodmFsKSAmJiBpc0VtcHR5KHZhbC50cmltKCkpIH0sXG4gICAgICAgICAgICB7IHRlc3Q6IHZhbCA9PiBpc051bWJlcih2YWwpICYmIGlzTmFOKHZhbCkgfSxcbiAgICAgICAgICAgIHsgdGVzdDogdmFsID0+IGlzQXJyYXkodmFsKSAmJiBpc0VtcHR5KHZhbCkgfVxuICAgICAgICBdO1xuXG4gICAgICAgIGNvbnN0IGZhaWxlZFJ1bGUgPSBmaW5kKHJ1bGVzLCBydWxlID0+IHJ1bGUudGVzdChjb250ZXh0LnZhbHVlKSk7XG4gICAgICAgIGNvbnN0IGlzVmFsaWQgPSAhZmFpbGVkUnVsZTtcbiAgICAgICAgY29uc3QgbWVzc2FnZSA9IGZhaWxlZFJ1bGUgPyBcIlRoaXMgZmlsZWQgaXMgcmVxdWlyZWRcIiA6IG51bGw7XG5cbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIG5hbWU6IHRoaXMubmFtZSxcbiAgICAgICAgICAgIHJlc3VsdDogaXNWYWxpZCxcbiAgICAgICAgICAgIG1lc3NhZ2U6IG1lc3NhZ2UsXG4gICAgICAgICAgICB2YWx1ZTogY29udGV4dC52YWx1ZVxuICAgICAgICB9O1xuICAgIH1cbn0iXX0=
|
@@ -0,0 +1,2 @@
|
|
1
|
+
export {};
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFsaWRhdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29yZS92YWxpZGF0aW9uL3NyYy9saWIvdmFsaWRhdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGludGVyZmFjZSBBWFZhbGlkYXRpb25Db250ZXh0IHtcbiAgICB2YWx1ZTogdW5rbm93bixcbiAgICBba2V5OiBzdHJpbmddOiB1bmtub3duXG5cbn1cblxuZXhwb3J0IGludGVyZmFjZSBBWFZhbGlkYXRpb25SdWxlIHtcbiAgICBnZXQgbmFtZSgpOiBzdHJpbmc7XG4gICAgdmFsaWRhdGUoY29udGV4dDogQVhWYWxpZGF0aW9uQ29udGV4dCk6IEFYVmFsaWRhdGlvblJ1bGVSZXN1bHQgfCBQcm9taXNlPEFYVmFsaWRhdGlvblJ1bGVSZXN1bHQ+O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEFYVmFsaWRhdGlvblJ1bGVSZXN1bHQge1xuICAgIG5hbWU6IHN0cmluZztcbiAgICB2YWx1ZT86IHVua25vd247XG4gICAgbWVzc2FnZT86IHN0cmluZztcbiAgICByZXN1bHQ6IGJvb2xlYW47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQVhWYWxpZGF0aW9uU3VtbWFyeSB7XG4gICAgcmVzdWx0OiBib29sZWFuO1xuICAgIHJ1bGVzOiBBWFZhbGlkYXRpb25SdWxlUmVzdWx0W11cbn1cbiJdfQ==
|
@@ -0,0 +1,37 @@
|
|
1
|
+
import { APP_INITIALIZER, NgModule } from '@angular/core';
|
2
|
+
import { AXValidationRegistryService } from './validation.service';
|
3
|
+
import { AXRegexValidator } from './regex-validator';
|
4
|
+
import { AXRequiredValidator } from './required-validator';
|
5
|
+
import * as i0 from "@angular/core";
|
6
|
+
import * as i1 from "./validation.service";
|
7
|
+
export class AXValidationModule {
|
8
|
+
static forRoot(config) {
|
9
|
+
return {
|
10
|
+
ngModule: AXValidationModule,
|
11
|
+
providers: [
|
12
|
+
{
|
13
|
+
provide: APP_INITIALIZER,
|
14
|
+
useFactory: (pluginRegistry) => () => {
|
15
|
+
if (config?.validators?.length)
|
16
|
+
pluginRegistry.register(...config.validators);
|
17
|
+
},
|
18
|
+
deps: [AXValidationRegistryService],
|
19
|
+
multi: true
|
20
|
+
}
|
21
|
+
]
|
22
|
+
};
|
23
|
+
}
|
24
|
+
constructor(pluginRegistry) {
|
25
|
+
pluginRegistry.register(new AXRegexValidator(), new AXRequiredValidator());
|
26
|
+
}
|
27
|
+
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 }); }
|
28
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.0.8", ngImport: i0, type: AXValidationModule }); }
|
29
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.0.8", ngImport: i0, type: AXValidationModule }); }
|
30
|
+
}
|
31
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.8", ngImport: i0, type: AXValidationModule, decorators: [{
|
32
|
+
type: NgModule,
|
33
|
+
args: [{
|
34
|
+
imports: [],
|
35
|
+
}]
|
36
|
+
}], ctorParameters: () => [{ type: i1.AXValidationRegistryService }] });
|
37
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFsaWRhdGlvbi5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvcmUvdmFsaWRhdGlvbi9zcmMvbGliL3ZhbGlkYXRpb24ubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxlQUFlLEVBQXVCLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMvRSxPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUVuRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNyRCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQzs7O0FBTTNELE1BQU0sT0FBTyxrQkFBa0I7SUFFM0IsTUFBTSxDQUFDLE9BQU8sQ0FBQyxNQUE0QztRQUN2RCxPQUFPO1lBQ0gsUUFBUSxFQUFFLGtCQUFrQjtZQUM1QixTQUFTLEVBQUU7Z0JBQ1A7b0JBQ0ksT0FBTyxFQUFFLGVBQWU7b0JBQ3hCLFVBQVUsRUFBRSxDQUFDLGNBQTJDLEVBQUUsRUFBRSxDQUFDLEdBQUcsRUFBRTt3QkFDOUQsSUFBSSxNQUFNLEVBQUUsVUFBVSxFQUFFLE1BQU07NEJBQzFCLGNBQWMsQ0FBQyxRQUFRLENBQUMsR0FBRyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUM7b0JBQ3RELENBQUM7b0JBQ0QsSUFBSSxFQUFFLENBQUMsMkJBQTJCLENBQUM7b0JBQ25DLEtBQUssRUFBRSxJQUFJO2lCQUNkO2FBQ0o7U0FDSixDQUFDO0lBQ04sQ0FBQztJQUVELFlBQVksY0FBMkM7UUFDbkQsY0FBYyxDQUFDLFFBQVEsQ0FBQyxJQUFJLGdCQUFnQixFQUFFLEVBQUUsSUFBSSxtQkFBbUIsRUFBRSxDQUFDLENBQUE7SUFDOUUsQ0FBQzs4R0FyQlEsa0JBQWtCOytHQUFsQixrQkFBa0I7K0dBQWxCLGtCQUFrQjs7MkZBQWxCLGtCQUFrQjtrQkFIOUIsUUFBUTttQkFBQztvQkFDTixPQUFPLEVBQUUsRUFBRTtpQkFDZCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFQUF9JTklUSUFMSVpFUiwgTW9kdWxlV2l0aFByb3ZpZGVycywgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFYVmFsaWRhdGlvblJlZ2lzdHJ5U2VydmljZSB9IGZyb20gJy4vdmFsaWRhdGlvbi5zZXJ2aWNlJztcbmltcG9ydCB7IEFYVmFsaWRhdGlvblJ1bGUgfSBmcm9tICcuL3ZhbGlkYXRpb24nO1xuaW1wb3J0IHsgQVhSZWdleFZhbGlkYXRvciB9IGZyb20gJy4vcmVnZXgtdmFsaWRhdG9yJztcbmltcG9ydCB7IEFYUmVxdWlyZWRWYWxpZGF0b3IgfSBmcm9tICcuL3JlcXVpcmVkLXZhbGlkYXRvcic7XG5cblxuQE5nTW9kdWxlKHtcbiAgICBpbXBvcnRzOiBbXSxcbn0pXG5leHBvcnQgY2xhc3MgQVhWYWxpZGF0aW9uTW9kdWxlIHtcblxuICAgIHN0YXRpYyBmb3JSb290KGNvbmZpZz86IHsgdmFsaWRhdG9ycz86IEFYVmFsaWRhdGlvblJ1bGVbXSB9KTogTW9kdWxlV2l0aFByb3ZpZGVyczxBWFZhbGlkYXRpb25Nb2R1bGU+IHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIG5nTW9kdWxlOiBBWFZhbGlkYXRpb25Nb2R1bGUsXG4gICAgICAgICAgICBwcm92aWRlcnM6IFtcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIHByb3ZpZGU6IEFQUF9JTklUSUFMSVpFUixcbiAgICAgICAgICAgICAgICAgICAgdXNlRmFjdG9yeTogKHBsdWdpblJlZ2lzdHJ5OiBBWFZhbGlkYXRpb25SZWdpc3RyeVNlcnZpY2UpID0+ICgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChjb25maWc/LnZhbGlkYXRvcnM/Lmxlbmd0aClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwbHVnaW5SZWdpc3RyeS5yZWdpc3RlciguLi5jb25maWcudmFsaWRhdG9ycyk7XG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIGRlcHM6IFtBWFZhbGlkYXRpb25SZWdpc3RyeVNlcnZpY2VdLFxuICAgICAgICAgICAgICAgICAgICBtdWx0aTogdHJ1ZVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIF1cbiAgICAgICAgfTtcbiAgICB9XG5cbiAgICBjb25zdHJ1Y3RvcihwbHVnaW5SZWdpc3RyeTogQVhWYWxpZGF0aW9uUmVnaXN0cnlTZXJ2aWNlKSB7XG4gICAgICAgIHBsdWdpblJlZ2lzdHJ5LnJlZ2lzdGVyKG5ldyBBWFJlZ2V4VmFsaWRhdG9yKCksIG5ldyBBWFJlcXVpcmVkVmFsaWRhdG9yKCkpXG4gICAgfVxufVxuIl19
|
@@ -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(name, context) {
|
28
|
+
const validator = this.pluginRegistry.validators.find((c) => c.name == name);
|
29
|
+
if (!validator) {
|
30
|
+
return {
|
31
|
+
name: name,
|
32
|
+
result: false,
|
33
|
+
message: AXTranslator.get('validation.messages.invalid-rull-name'),
|
34
|
+
value: context.value
|
35
|
+
};
|
36
|
+
}
|
37
|
+
return validator.validate(context);
|
38
|
+
}
|
39
|
+
chain(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, context) {
|
57
|
+
this.rules.push({ name, context: { ...context, value: this.initialValue } });
|
58
|
+
return this;
|
59
|
+
}
|
60
|
+
async execute() {
|
61
|
+
for (const rule of this.rules) {
|
62
|
+
const result = await this.validationService.validate(rule.name, rule.context);
|
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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFsaWRhdGlvbi5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb3JlL3ZhbGlkYXRpb24vc3JjL2xpYi92YWxpZGF0aW9uLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUUzQyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7O0FBS3hELE1BQU0sT0FBTywyQkFBMkI7SUFIeEM7UUFJWSxZQUFPLEdBQXVCLEVBQUUsQ0FBQztLQVM1QztJQVBHLFFBQVEsQ0FBQyxHQUFHLE1BQTBCO1FBQ2xDLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDeEYsQ0FBQztJQUVELElBQUksVUFBVTtRQUNWLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQztJQUN4QixDQUFDOzhHQVRRLDJCQUEyQjtrSEFBM0IsMkJBQTJCLGNBRnhCLE1BQU07OzJGQUVULDJCQUEyQjtrQkFIdkMsVUFBVTttQkFBQztvQkFDUixVQUFVLEVBQUUsTUFBTTtpQkFDckI7O0FBY0QsTUFBTSxPQUFPLG1CQUFtQjtJQUM1QixZQUNZLGNBQTJDO1FBQTNDLG1CQUFjLEdBQWQsY0FBYyxDQUE2QjtJQUNuRCxDQUFDO0lBRUwsUUFBUSxDQUFDLElBQVksRUFBRSxPQUE0QjtRQUMvQyxNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLElBQUksSUFBSSxDQUFDLENBQUM7UUFDN0UsSUFBSSxDQUFDLFNBQVMsRUFBRTtZQUNaLE9BQU87Z0JBQ0gsSUFBSSxFQUFFLElBQUk7Z0JBQ1YsTUFBTSxFQUFFLEtBQUs7Z0JBQ2IsT0FBTyxFQUFFLFlBQVksQ0FBQyxHQUFHLENBQUMsdUNBQXVDLENBQUM7Z0JBQ2xFLEtBQUssRUFBRSxPQUFPLENBQUMsS0FBSzthQUN2QixDQUFDO1NBQ0w7UUFDRCxPQUFPLFNBQVMsQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDdkMsQ0FBQztJQUdELEtBQUssQ0FBQyxLQUFjO1FBQ2hCLE9BQU8sSUFBSSxxQkFBcUIsQ0FBQyxJQUFJLEVBQUUsS0FBSyxDQUFDLENBQUM7SUFDbEQsQ0FBQzs4R0FyQlEsbUJBQW1CO2tIQUFuQixtQkFBbUIsY0FETixNQUFNOzsyRkFDbkIsbUJBQW1CO2tCQUQvQixVQUFVO21CQUFDLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRTs7QUF5QmxDLE1BQU0scUJBQXFCO0lBSXZCLFlBQW9CLGlCQUFzQyxFQUFVLFlBQXFCO1FBQXJFLHNCQUFpQixHQUFqQixpQkFBaUIsQ0FBcUI7UUFBVSxpQkFBWSxHQUFaLFlBQVksQ0FBUztRQUhqRixVQUFLLEdBQXFELEVBQUUsQ0FBQztRQUM3RCxzQkFBaUIsR0FBd0IsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxFQUFFLEVBQUUsQ0FBQztJQUVnQixDQUFDO0lBRTlGLE9BQU8sQ0FBQyxJQUFZLEVBQUUsT0FBNEM7UUFDOUQsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsRUFBRSxJQUFJLEVBQUUsT0FBTyxFQUFFLEVBQUUsR0FBRyxPQUFPLEVBQUUsS0FBSyxFQUFFLElBQUksQ0FBQyxZQUFZLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFDN0UsT0FBTyxJQUFJLENBQUM7SUFDaEIsQ0FBQztJQUVELEtBQUssQ0FBQyxPQUFPO1FBQ1QsS0FBSyxNQUFNLElBQUksSUFBSSxJQUFJLENBQUMsS0FBSyxFQUFFO1lBQzNCLE1BQU0sTUFBTSxHQUFHLE1BQU0sSUFBSSxDQUFDLGlCQUFpQixDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUM5RSxJQUFJLENBQUMsaUJBQWlCLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztZQUMxQyxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sRUFBRTtnQkFDaEIsSUFBSSxDQUFDLGlCQUFpQixDQUFDLE1BQU0sR0FBRyxLQUFLLENBQUM7YUFDekM7U0FDSjtRQUNELE9BQU8sSUFBSSxDQUFDLGlCQUFpQixDQUFDO0lBQ2xDLENBQUM7Q0FDSiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHsgQVhWYWxpZGF0aW9uUnVsZSwgQVhWYWxpZGF0aW9uQ29udGV4dCwgQVhWYWxpZGF0aW9uUnVsZVJlc3VsdCwgQVhWYWxpZGF0aW9uU3VtbWFyeSB9IGZyb20gXCIuL3ZhbGlkYXRpb25cIjtcbmltcG9ydCB7IEFYVHJhbnNsYXRvciB9IGZyb20gXCJAYWNvcmV4L2NvcmUvdHJhbnNsYXRpb25cIjtcblxuQEluamVjdGFibGUoe1xuICAgIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBBWFZhbGlkYXRpb25SZWdpc3RyeVNlcnZpY2Uge1xuICAgIHByaXZhdGUgcGx1Z2luczogQVhWYWxpZGF0aW9uUnVsZVtdID0gW107XG5cbiAgICByZWdpc3RlciguLi5wbHVnaW46IEFYVmFsaWRhdGlvblJ1bGVbXSkge1xuICAgICAgICB0aGlzLnBsdWdpbnMucHVzaCguLi5wbHVnaW4uZmlsdGVyKHAgPT4gIXRoaXMucGx1Z2lucy5zb21lKGMgPT4gYy5uYW1lID09IHAubmFtZSkpKTtcbiAgICB9XG5cbiAgICBnZXQgdmFsaWRhdG9ycygpOiBBWFZhbGlkYXRpb25SdWxlW10ge1xuICAgICAgICByZXR1cm4gdGhpcy5wbHVnaW5zO1xuICAgIH1cbn1cblxuQEluamVjdGFibGUoeyBwcm92aWRlZEluOiAncm9vdCcgfSlcbmV4cG9ydCBjbGFzcyBBWFZhbGlkYXRpb25TZXJ2aWNlIHtcbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHJpdmF0ZSBwbHVnaW5SZWdpc3RyeTogQVhWYWxpZGF0aW9uUmVnaXN0cnlTZXJ2aWNlXG4gICAgKSB7IH1cblxuICAgIHZhbGlkYXRlKG5hbWU6IHN0cmluZywgY29udGV4dDogQVhWYWxpZGF0aW9uQ29udGV4dCk6IEFYVmFsaWRhdGlvblJ1bGVSZXN1bHQgfCBQcm9taXNlPEFYVmFsaWRhdGlvblJ1bGVSZXN1bHQ+IHtcbiAgICAgICAgY29uc3QgdmFsaWRhdG9yID0gdGhpcy5wbHVnaW5SZWdpc3RyeS52YWxpZGF0b3JzLmZpbmQoKGMpID0+IGMubmFtZSA9PSBuYW1lKTtcbiAgICAgICAgaWYgKCF2YWxpZGF0b3IpIHtcbiAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgbmFtZTogbmFtZSxcbiAgICAgICAgICAgICAgICByZXN1bHQ6IGZhbHNlLFxuICAgICAgICAgICAgICAgIG1lc3NhZ2U6IEFYVHJhbnNsYXRvci5nZXQoJ3ZhbGlkYXRpb24ubWVzc2FnZXMuaW52YWxpZC1ydWxsLW5hbWUnKSxcbiAgICAgICAgICAgICAgICB2YWx1ZTogY29udGV4dC52YWx1ZVxuICAgICAgICAgICAgfTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdmFsaWRhdG9yLnZhbGlkYXRlKGNvbnRleHQpO1xuICAgIH1cblxuXG4gICAgY2hhaW4odmFsdWU6IHVua25vd24pIHtcbiAgICAgICAgcmV0dXJuIG5ldyBBWFZhbGlkYXRpb25SdWxlQ2hhaW4odGhpcywgdmFsdWUpO1xuICAgIH1cbn1cblxuY2xhc3MgQVhWYWxpZGF0aW9uUnVsZUNoYWluIHtcbiAgICBwcml2YXRlIHJ1bGVzOiB7IG5hbWU6IHN0cmluZywgY29udGV4dDogQVhWYWxpZGF0aW9uQ29udGV4dCB9W10gPSBbXTtcbiAgICBwcml2YXRlIHZhbGlkYXRpb25TdW1tYXJ5OiBBWFZhbGlkYXRpb25TdW1tYXJ5ID0geyByZXN1bHQ6IHRydWUsIHJ1bGVzOiBbXSB9O1xuXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSB2YWxpZGF0aW9uU2VydmljZTogQVhWYWxpZGF0aW9uU2VydmljZSwgcHJpdmF0ZSBpbml0aWFsVmFsdWU6IHVua25vd24pIHsgfVxuXG4gICAgYWRkUnVsZShuYW1lOiBzdHJpbmcsIGNvbnRleHQ/OiBPbWl0PEFYVmFsaWRhdGlvbkNvbnRleHQsICd2YWx1ZSc+KTogQVhWYWxpZGF0aW9uUnVsZUNoYWluIHtcbiAgICAgICAgdGhpcy5ydWxlcy5wdXNoKHsgbmFtZSwgY29udGV4dDogeyAuLi5jb250ZXh0LCB2YWx1ZTogdGhpcy5pbml0aWFsVmFsdWUgfSB9KTtcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuXG4gICAgYXN5bmMgZXhlY3V0ZSgpOiBQcm9taXNlPEFYVmFsaWRhdGlvblN1bW1hcnk+IHtcbiAgICAgICAgZm9yIChjb25zdCBydWxlIG9mIHRoaXMucnVsZXMpIHtcbiAgICAgICAgICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IHRoaXMudmFsaWRhdGlvblNlcnZpY2UudmFsaWRhdGUocnVsZS5uYW1lLCBydWxlLmNvbnRleHQpO1xuICAgICAgICAgICAgdGhpcy52YWxpZGF0aW9uU3VtbWFyeS5ydWxlcy5wdXNoKHJlc3VsdCk7XG4gICAgICAgICAgICBpZiAoIXJlc3VsdC5yZXN1bHQpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnZhbGlkYXRpb25TdW1tYXJ5LnJlc3VsdCA9IGZhbHNlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0aGlzLnZhbGlkYXRpb25TdW1tYXJ5O1xuICAgIH1cbn1cbiJdfQ==
|
@@ -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],
|