@acorex/core 7.12.3 → 7.12.6
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/dateTime/lib/dateTime.config.mjs +2 -2
- package/esm2022/file/lib/file-download-result.class.mjs +1 -2
- package/esm2022/format/lib/string-format.plugin.mjs +2 -2
- package/fesm2022/acorex-core-dateTime.mjs +1 -1
- package/fesm2022/acorex-core-dateTime.mjs.map +1 -1
- package/fesm2022/acorex-core-file.mjs +0 -1
- package/fesm2022/acorex-core-file.mjs.map +1 -1
- package/fesm2022/acorex-core-format.mjs +1 -1
- package/fesm2022/acorex-core-format.mjs.map +1 -1
- package/package.json +1 -1
@@ -51,7 +51,7 @@ export const AXDateTimeDefaultConfig = {
|
|
51
51
|
dayNames: 'شنبه_یکشنبه_دوشنبه_سه شنبه_چهارشنبه_پنج شنبه_جمعه'
|
52
52
|
.split('_')
|
53
53
|
.map((d) => ({ long: d, short: d[0], letter: d[0] })),
|
54
|
-
weekend: [7
|
54
|
+
weekend: [7],
|
55
55
|
formats: {
|
56
56
|
dateInput: 'yyyy/MM/dd',
|
57
57
|
timeInput: 'HH:mm',
|
@@ -70,4 +70,4 @@ export function dateTimeConfig(config = {}) {
|
|
70
70
|
};
|
71
71
|
return result;
|
72
72
|
}
|
73
|
-
//# sourceMappingURL=data:application/json;base64,
|
73
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZVRpbWUuY29uZmlnLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb3JlL2RhdGVUaW1lL3NyYy9saWIvZGF0ZVRpbWUuY29uZmlnLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3ZELE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFFaEMsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBU25ELE1BQU0sQ0FBQyxNQUFNLGtCQUFrQixHQUFHLElBQUksY0FBYyxDQUFtQixvQkFBb0IsRUFBRTtJQUMzRixVQUFVLEVBQUUsTUFBTTtJQUNsQixPQUFPLEVBQUUsR0FBRyxFQUFFO1FBQ1osTUFBTSxNQUFNLEdBQUcsTUFBTSxDQUFDLGdCQUFnQixDQUFDLENBQUM7UUFDeEMsR0FBRyxDQUFDLE1BQU0sRUFBRSxVQUFVLEVBQUUsa0JBQWtCLENBQUMsQ0FBQztRQUM1QyxPQUFPLHVCQUF1QixDQUFDO0lBQ2pDLENBQUM7Q0FDRixDQUFDLENBQUM7QUFFSCxNQUFNLENBQUMsTUFBTSx1QkFBdUIsR0FBcUI7SUFDdkQsUUFBUSxFQUFFLFVBQVU7SUFDcEIsU0FBUyxFQUFFO1FBQ1QsUUFBUSxFQUFFLElBQUksZ0JBQWdCLENBQUM7WUFDN0IsUUFBUSxFQUFFLENBQUMsUUFBUSxFQUFFLFFBQVEsRUFBRSxTQUFTLEVBQUUsV0FBVyxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUsVUFBVSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDO2dCQUNuRyxJQUFJLEVBQUUsQ0FBQztnQkFDUCxLQUFLLEVBQUUsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDO2dCQUN4QixNQUFNLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQzthQUNiLENBQUMsQ0FBQztZQUNILFVBQVUsRUFBRTtnQkFDVixTQUFTO2dCQUNULFVBQVU7Z0JBQ1YsT0FBTztnQkFDUCxPQUFPO2dCQUNQLEtBQUs7Z0JBQ0wsTUFBTTtnQkFDTixNQUFNO2dCQUNOLFFBQVE7Z0JBQ1IsV0FBVztnQkFDWCxTQUFTO2dCQUNULFVBQVU7Z0JBQ1YsVUFBVTthQUNYLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsSUFBSSxFQUFFLENBQUMsRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsTUFBTSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUM7WUFDbkUsT0FBTyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQztZQUNmLE9BQU8sRUFBRTtnQkFDUCxTQUFTLEVBQUUsWUFBWTtnQkFDdkIsU0FBUyxFQUFFLE9BQU87Z0JBQ2xCLGFBQWEsRUFBRSxrQkFBa0I7Z0JBQ2pDLFdBQVcsRUFBRSxrQkFBa0I7Z0JBQy9CLFdBQVcsRUFBRSxPQUFPO2dCQUNwQixlQUFlLEVBQUUsd0JBQXdCO2FBQzFDO1NBQ0YsQ0FBQztRQUNGLE1BQU0sRUFBRSxJQUFJLGNBQWMsQ0FBQztZQUN6QixVQUFVLEVBQUUsb0VBQW9FO2lCQUM3RSxLQUFLLENBQUMsR0FBRyxDQUFDO2lCQUNWLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLElBQUksRUFBRSxDQUFDLEVBQUUsS0FBSyxFQUFFLENBQUMsRUFBRSxNQUFNLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQztZQUNwRCxRQUFRLEVBQUUsbURBQW1EO2lCQUMxRCxLQUFLLENBQUMsR0FBRyxDQUFDO2lCQUNWLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLElBQUksRUFBRSxDQUFDLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxNQUFNLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQztZQUN2RCxPQUFPLEVBQUUsQ0FBQyxDQUFDLENBQUM7WUFDWixPQUFPLEVBQUU7Z0JBQ1AsU0FBUyxFQUFFLFlBQVk7Z0JBQ3ZCLFNBQVMsRUFBRSxPQUFPO2dCQUNsQixhQUFhLEVBQUUsa0JBQWtCO2dCQUNqQyxXQUFXLEVBQUUsa0JBQWtCO2dCQUMvQixXQUFXLEVBQUUsT0FBTztnQkFDcEIsZUFBZSxFQUFFLHdCQUF3QjthQUMxQztTQUNGLENBQUM7S0FDSDtDQUNGLENBQUM7QUFJRixNQUFNLFVBQVUsY0FBYyxDQUFDLFNBQWdDLEVBQUU7SUFDL0QsTUFBTSxNQUFNLEdBQUc7UUFDYixHQUFHLHVCQUF1QjtRQUMxQixHQUFHLE1BQU07S0FDVixDQUFDO0lBQ0YsT0FBTyxNQUFNLENBQUM7QUFDaEIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFYX0dMT0JBTF9DT05GSUcgfSBmcm9tICdAYWNvcmV4L2NvcmUvY29uZmlnJztcbmltcG9ydCB7IEluamVjdGlvblRva2VuLCBpbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IHNldCB9IGZyb20gJ2xvZGFzaC1lcyc7XG5pbXBvcnQgeyBBWENhbGVuZGFyIH0gZnJvbSAnLi9kYXRldGltZS5jbGFzcyc7XG5pbXBvcnQgeyBHZW9yZ2lhbkNhbGVuZGFyIH0gZnJvbSAnLi9nZW9yZ2lhbi5jYWxlbmRhcic7XG5pbXBvcnQgeyBKYWxhbGlDYWxlbmRhciB9IGZyb20gJy4vamFsYWxpLmNhbGVuZGFyJztcblxuZXhwb3J0IGludGVyZmFjZSBBWERhdGVUaW1lQ29uZmlnIHtcbiAgY2FsZW5kYXI6IHN0cmluZztcbiAgY2FsZW5kYXJzOiB7XG4gICAgW2tleTogc3RyaW5nXTogQVhDYWxlbmRhcjtcbiAgfTtcbn1cblxuZXhwb3J0IGNvbnN0IEFYX0RBVEVUSU1FX0NPTkZJRyA9IG5ldyBJbmplY3Rpb25Ub2tlbjxBWERhdGVUaW1lQ29uZmlnPignQVhfREFURVRJTUVfQ09ORklHJywge1xuICBwcm92aWRlZEluOiAncm9vdCcsXG4gIGZhY3Rvcnk6ICgpID0+IHtcbiAgICBjb25zdCBnbG9iYWwgPSBpbmplY3QoQVhfR0xPQkFMX0NPTkZJRyk7XG4gICAgc2V0KGdsb2JhbCwgJ2RhdGVUaW1lJywgQVhfREFURVRJTUVfQ09ORklHKTtcbiAgICByZXR1cm4gQVhEYXRlVGltZURlZmF1bHRDb25maWc7XG4gIH0sXG59KTtcblxuZXhwb3J0IGNvbnN0IEFYRGF0ZVRpbWVEZWZhdWx0Q29uZmlnOiBBWERhdGVUaW1lQ29uZmlnID0ge1xuICBjYWxlbmRhcjogJ2dlb3JnaWFuJyxcbiAgY2FsZW5kYXJzOiB7XG4gICAgZ2VvcmdpYW46IG5ldyBHZW9yZ2lhbkNhbGVuZGFyKHtcbiAgICAgIGRheU5hbWVzOiBbJ1N1bmRheScsICdNb25kYXknLCAnVHVlc2RheScsICdXZWRuZXNkYXknLCAnVGh1cnNkYXknLCAnRnJpZGF5JywgJ1NhdHVyZGF5J10ubWFwKChkKSA9PiAoe1xuICAgICAgICBsb25nOiBkLFxuICAgICAgICBzaG9ydDogZC5zdWJzdHJpbmcoMCwgMyksXG4gICAgICAgIGxldHRlcjogZFswXSxcbiAgICAgIH0pKSxcbiAgICAgIG1vbnRoTmFtZXM6IFtcbiAgICAgICAgJ0phbnVhcnknLFxuICAgICAgICAnRmVicnVhcnknLFxuICAgICAgICAnTWFyY2gnLFxuICAgICAgICAnQXByaWwnLFxuICAgICAgICAnTWF5JyxcbiAgICAgICAgJ0p1bmUnLFxuICAgICAgICAnSnVseScsXG4gICAgICAgICdBdWd1c3QnLFxuICAgICAgICAnU2VwdGVtYmVyJyxcbiAgICAgICAgJ09jdG9iZXInLFxuICAgICAgICAnTm92ZW1iZXInLFxuICAgICAgICAnRGVjZW1iZXInLFxuICAgICAgXS5tYXAoKGQpID0+ICh7IGxvbmc6IGQsIHNob3J0OiBkLnN1YnN0cmluZygwLCAzKSwgbGV0dGVyOiBkWzBdIH0pKSxcbiAgICAgIHdlZWtlbmQ6IFs2LCA3XSxcbiAgICAgIGZvcm1hdHM6IHtcbiAgICAgICAgZGF0ZUlucHV0OiAneXl5eS9NTS9kZCcsXG4gICAgICAgIHRpbWVJbnB1dDogJ0hIOm1tJyxcbiAgICAgICAgZGF0ZVRpbWVJbnB1dDogJ3l5eXkvTU0vZGQgSEg6bW0nLFxuICAgICAgICBkYXRlRGlzcGxheTogJ0REREQsIGQgTU1NIHl5eXknLFxuICAgICAgICB0aW1lRGlzcGxheTogJ0hIOm1tJyxcbiAgICAgICAgZGF0ZVRpbWVEaXNwbGF5OiAnRERERCwgZCBNTU0geXl5eSBISDptbScsXG4gICAgICB9LFxuICAgIH0pLFxuICAgIGphbGFsaTogbmV3IEphbGFsaUNhbGVuZGFyKHtcbiAgICAgIG1vbnRoTmFtZXM6ICfZgdix2YjYsdiv24zZhl/Yp9ix2K/bjNio2YfYtNiqX9iu2LHYr9in2K9f2KrbjNixX9mF2LHYr9in2K9f2LTZh9ix24zZiNixX9mF2YfYsV/Yotio2KfZhl/Yotiw2LFf2K/bjF/YqNmH2YXZhl/Yp9iz2YHZhtivJ1xuICAgICAgICAuc3BsaXQoJ18nKVxuICAgICAgICAubWFwKChkKSA9PiAoeyBsb25nOiBkLCBzaG9ydDogZCwgbGV0dGVyOiBkWzBdIH0pKSxcbiAgICAgIGRheU5hbWVzOiAn2LTZhtio2Ydf24zaqdi02YbYqNmHX9iv2YjYtNmG2KjZh1/Ys9mHINi02YbYqNmHX9qG2YfYp9ix2LTZhtio2Ydf2b7ZhtisINi02YbYqNmHX9is2YXYudmHJ1xuICAgICAgICAuc3BsaXQoJ18nKVxuICAgICAgICAubWFwKChkKSA9PiAoeyBsb25nOiBkLCBzaG9ydDogZFswXSwgbGV0dGVyOiBkWzBdIH0pKSxcbiAgICAgIHdlZWtlbmQ6IFs3XSxcbiAgICAgIGZvcm1hdHM6IHtcbiAgICAgICAgZGF0ZUlucHV0OiAneXl5eS9NTS9kZCcsXG4gICAgICAgIHRpbWVJbnB1dDogJ0hIOm1tJyxcbiAgICAgICAgZGF0ZVRpbWVJbnB1dDogJ3l5eXkvTU0vZGQgSEg6bW0nLFxuICAgICAgICBkYXRlRGlzcGxheTogJ0REREQsIGQgTU1NIHl5eXknLFxuICAgICAgICB0aW1lRGlzcGxheTogJ0hIOm1tJyxcbiAgICAgICAgZGF0ZVRpbWVEaXNwbGF5OiAnRERERCwgZCBNTU0geXl5eSBISDptbScsXG4gICAgICB9LFxuICAgIH0pLFxuICB9LFxufTtcblxuZXhwb3J0IHR5cGUgUGFydGlhbERhdGVUaW1lQ29uZmlnID0gUGFydGlhbDxBWERhdGVUaW1lQ29uZmlnPjtcblxuZXhwb3J0IGZ1bmN0aW9uIGRhdGVUaW1lQ29uZmlnKGNvbmZpZzogUGFydGlhbERhdGVUaW1lQ29uZmlnID0ge30pOiBBWERhdGVUaW1lQ29uZmlnIHtcbiAgY29uc3QgcmVzdWx0ID0ge1xuICAgIC4uLkFYRGF0ZVRpbWVEZWZhdWx0Q29uZmlnLFxuICAgIC4uLmNvbmZpZyxcbiAgfTtcbiAgcmV0dXJuIHJlc3VsdDtcbn1cbiJdfQ==
|
@@ -18,7 +18,6 @@ export class AXFileDownloadResult {
|
|
18
18
|
// }],
|
19
19
|
// };
|
20
20
|
// const result = await window['showSaveFilePicker'](opts);
|
21
|
-
// console.log(result);
|
22
21
|
// resolve();
|
23
22
|
// });
|
24
23
|
// button.click();
|
@@ -43,4 +42,4 @@ export class AXFileDownloadResult {
|
|
43
42
|
link.click();
|
44
43
|
}
|
45
44
|
}
|
46
|
-
//# sourceMappingURL=data:application/json;base64,
|
45
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS1kb3dubG9hZC1yZXN1bHQuY2xhc3MuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvcmUvZmlsZS9zcmMvbGliL2ZpbGUtZG93bmxvYWQtcmVzdWx0LmNsYXNzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sT0FBTyxvQkFBb0I7SUFHL0IsWUFBWSxRQUFjO1FBQ3hCLElBQUksQ0FBQyxTQUFTLEdBQUcsUUFBUSxDQUFDO0lBQzVCLENBQUM7SUFFRCxJQUFJLENBQUMsUUFBaUI7UUFDcEIsSUFBSSxDQUFDLHVCQUF1QixDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ3ZDLE9BQU8sT0FBTyxDQUFDLE9BQU8sRUFBRSxDQUFDO1FBQ3pCLFNBQVM7UUFDVCw0Q0FBNEM7UUFDNUMsdURBQXVEO1FBQ3ZELHFEQUFxRDtRQUNyRCwyQkFBMkI7UUFDM0IseUJBQXlCO1FBQ3pCLHdCQUF3QjtRQUN4Qiw0Q0FBNEM7UUFDNUMsMENBQTBDO1FBQzFDLHlEQUF5RDtRQUN6RCxrQkFBa0I7UUFDbEIsYUFBYTtRQUNiLG1FQUFtRTtRQUVuRSxxQkFBcUI7UUFDckIsVUFBVTtRQUNWLHNCQUFzQjtRQUN0QixNQUFNO1FBRU4sSUFBSTtJQUNOLENBQUM7SUFFRCxJQUFJO1FBQ0YsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDO0lBQ3hCLENBQUM7SUFFRCxNQUFNO1FBQ0osT0FBTyxJQUFJLE9BQU8sQ0FBQyxDQUFDLE9BQU8sRUFBRSxNQUFNLEVBQUUsRUFBRTtZQUNyQyxNQUFNLE1BQU0sR0FBRyxJQUFJLE1BQU0sQ0FBQyxVQUFVLEVBQUUsQ0FBQztZQUN2QyxNQUFNLENBQUMsU0FBUyxHQUFHLEdBQUcsRUFBRSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsTUFBZ0IsQ0FBQyxDQUFDO1lBQzFELE1BQU0sQ0FBQyxPQUFPLEdBQUcsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUNsQyxNQUFNLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUN2QyxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFTyx1QkFBdUIsQ0FBQyxRQUFRLEdBQUcsVUFBVTtRQUNuRCxNQUFNLElBQUksR0FBRyxRQUFRLENBQUMsYUFBYSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ3pDLElBQUksQ0FBQyxJQUFJLEdBQUcsR0FBRyxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDaEQsSUFBSSxDQUFDLFFBQVEsR0FBRyxRQUFRLENBQUM7UUFDekIsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO0lBQ2YsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNsYXNzIEFYRmlsZURvd25sb2FkUmVzdWx0IHtcbiAgX3Jlc3BvbnNlOiBCbG9iO1xuXG4gIGNvbnN0cnVjdG9yKHJlc3BvbnNlOiBCbG9iKSB7XG4gICAgdGhpcy5fcmVzcG9uc2UgPSByZXNwb25zZTtcbiAgfVxuXG4gIHNhdmUoZmlsZW5hbWU/OiBzdHJpbmcpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICB0aGlzLl9kZWZhdWx0QnJvd3NlckRvd25sb2FkKGZpbGVuYW1lKTtcbiAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKCk7XG4gICAgLy8gZWxzZSB7XG4gICAgLy8gcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICAvLyAgICAgY29uc3QgYnV0dG9uID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudChcImJ1dHRvblwiKTtcbiAgICAvLyAgICAgYnV0dG9uLmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgYXN5bmMgKCkgPT4ge1xuICAgIC8vICAgICAgICAgYnV0dG9uLnJlbW92ZSgpO1xuICAgIC8vICAgICAgICAgY29uc3Qgb3B0cyA9IHtcbiAgICAvLyAgICAgICAgICAgICB0eXBlczogW3tcbiAgICAvLyAgICAgICAgICAgICAgICAgZGVzY3JpcHRpb246ICdTYXZlIEZpbGUnLFxuICAgIC8vICAgICAgICAgICAgICAgICBzdWdnZXN0ZWROYW1lOiBmaWxlbmFtZVxuICAgIC8vICAgICAgICAgICAgICAgICAvLyAgIGFjY2VwdDogeyd0ZXh0L3BsYWluJzogWycudHh0J119LFxuICAgIC8vICAgICAgICAgICAgIH1dLFxuICAgIC8vICAgICAgICAgfTtcbiAgICAvLyAgICAgICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IHdpbmRvd1snc2hvd1NhdmVGaWxlUGlja2VyJ10ob3B0cyk7XG5cbiAgICAvLyAgICAgICAgIHJlc29sdmUoKTtcbiAgICAvLyAgICAgfSk7XG4gICAgLy8gICAgIGJ1dHRvbi5jbGljaygpO1xuICAgIC8vIH0pO1xuXG4gICAgLy8gfVxuICB9XG5cbiAgYmxvYigpIHtcbiAgICByZXR1cm4gdGhpcy5fcmVzcG9uc2U7XG4gIH1cblxuICBiYXNlNjQoKTogUHJvbWlzZTxzdHJpbmc+IHtcbiAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgICAgY29uc3QgcmVhZGVyID0gbmV3IHdpbmRvdy5GaWxlUmVhZGVyKCk7XG4gICAgICByZWFkZXIub25sb2FkZW5kID0gKCkgPT4gcmVzb2x2ZShyZWFkZXIucmVzdWx0IGFzIHN0cmluZyk7XG4gICAgICByZWFkZXIub25lcnJvciA9IChlKSA9PiByZWplY3QoZSk7XG4gICAgICByZWFkZXIucmVhZEFzRGF0YVVSTCh0aGlzLl9yZXNwb25zZSk7XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIF9kZWZhdWx0QnJvd3NlckRvd25sb2FkKGZpbGVuYW1lID0gJ2Rvd25sb2FkJykge1xuICAgIGNvbnN0IGxpbmsgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdhJyk7XG4gICAgbGluay5ocmVmID0gVVJMLmNyZWF0ZU9iamVjdFVSTCh0aGlzLl9yZXNwb25zZSk7XG4gICAgbGluay5kb3dubG9hZCA9IGZpbGVuYW1lO1xuICAgIGxpbmsuY2xpY2soKTtcbiAgfVxufVxuIl19
|
@@ -8,7 +8,7 @@ export class AXStringFormatPlugin {
|
|
8
8
|
const data = (args.length ? args[0] : null);
|
9
9
|
const result = value.replace(/{{\s*([^}]+)\s*}}/g, (match, variable) => {
|
10
10
|
// if (variable?.match(/^\w+:\w+:\w+$/g)) {
|
11
|
-
//
|
11
|
+
//
|
12
12
|
// const formatData = data[variable[0]];
|
13
13
|
// const formatType = data[variable[1]];
|
14
14
|
// const formatArg = data[variable[2]];
|
@@ -23,4 +23,4 @@ export class AXStringFormatPlugin {
|
|
23
23
|
return result;
|
24
24
|
}
|
25
25
|
}
|
26
|
-
//# sourceMappingURL=data:application/json;base64,
|
26
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RyaW5nLWZvcm1hdC5wbHVnaW4uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvcmUvZm9ybWF0L3NyYy9saWIvc3RyaW5nLWZvcm1hdC5wbHVnaW4udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsTUFBTSxPQUFPLG9CQUFvQjtJQUMvQixJQUFJLElBQUk7UUFDTixPQUFPLFFBQVEsQ0FBQztJQUNsQixDQUFDO0lBRUQsTUFBTSxDQUFDLEtBQWMsRUFBRSxHQUFHLElBQWU7UUFDdkMsSUFBSSxPQUFPLEtBQUssSUFBSSxRQUFRO1lBQUUsT0FBTyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDbkQsTUFBTSxJQUFJLEdBQVcsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBVyxDQUFDO1FBQzlELE1BQU0sTUFBTSxHQUFHLEtBQUssQ0FBQyxPQUFPLENBQUMsb0JBQW9CLEVBQUUsQ0FBQyxLQUFLLEVBQUUsUUFBUSxFQUFFLEVBQUU7WUFDckUsMkNBQTJDO1lBQzNDLEVBQUU7WUFDRiw0Q0FBNEM7WUFDNUMsNENBQTRDO1lBQzVDLDJDQUEyQztZQUMzQyxrRkFBa0Y7WUFDbEYsNkJBQTZCO1lBQzdCLElBQUk7WUFDSixTQUFTO1lBQ1QsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBVyxDQUFDO1lBQ3ZDLE9BQU8sS0FBSyxJQUFJLEtBQUssQ0FBQztZQUN0QixJQUFJO1FBQ04sQ0FBQyxDQUFDLENBQUM7UUFDSCxPQUFPLE1BQU0sQ0FBQztJQUNoQixDQUFDO0NBUUYiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBWEZvcm1hdFBsdWdpbiB9IGZyb20gJy4vZm9ybWF0LmNvbmZpZyc7XG5cbmV4cG9ydCBjbGFzcyBBWFN0cmluZ0Zvcm1hdFBsdWdpbiBpbXBsZW1lbnRzIEFYRm9ybWF0UGx1Z2luIHtcbiAgZ2V0IG5hbWUoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gJ3N0cmluZyc7XG4gIH1cblxuICBmb3JtYXQodmFsdWU6IHVua25vd24sIC4uLmFyZ3M6IHVua25vd25bXSk6IHN0cmluZyB7XG4gICAgaWYgKHR5cGVvZiB2YWx1ZSAhPSAnc3RyaW5nJykgcmV0dXJuIFN0cmluZyh2YWx1ZSk7XG4gICAgY29uc3QgZGF0YTogc3RyaW5nID0gKGFyZ3MubGVuZ3RoID8gYXJnc1swXSA6IG51bGwpIGFzIHN0cmluZztcbiAgICBjb25zdCByZXN1bHQgPSB2YWx1ZS5yZXBsYWNlKC97e1xccyooW159XSspXFxzKn19L2csIChtYXRjaCwgdmFyaWFibGUpID0+IHtcbiAgICAgIC8vIGlmICh2YXJpYWJsZT8ubWF0Y2goL15cXHcrOlxcdys6XFx3KyQvZykpIHtcbiAgICAgIC8vXG4gICAgICAvLyAgICAgY29uc3QgZm9ybWF0RGF0YSA9IGRhdGFbdmFyaWFibGVbMF1dO1xuICAgICAgLy8gICAgIGNvbnN0IGZvcm1hdFR5cGUgPSBkYXRhW3ZhcmlhYmxlWzFdXTtcbiAgICAgIC8vICAgICBjb25zdCBmb3JtYXRBcmcgPSBkYXRhW3ZhcmlhYmxlWzJdXTtcbiAgICAgIC8vICAgICBjb25zdCB2YWx1ZSA9IHRoaXMuZm9ybWF0U2VydmljZS5mb3JtYXQoZm9ybWF0RGF0YSwgZm9ybWF0VHlwZSwgZm9ybWF0QXJnKTtcbiAgICAgIC8vICAgICByZXR1cm4gdmFsdWUgPz8gbWF0Y2g7XG4gICAgICAvLyB9XG4gICAgICAvLyBlbHNlIHtcbiAgICAgIGNvbnN0IHZhbHVlID0gZGF0YVt2YXJpYWJsZV0gYXMgc3RyaW5nO1xuICAgICAgcmV0dXJuIHZhbHVlID8/IG1hdGNoO1xuICAgICAgLy8gfVxuICAgIH0pO1xuICAgIHJldHVybiByZXN1bHQ7XG4gIH1cblxuICAvLyBwcml2YXRlIGZvcm1hdChpbnB1dFN0cmluZzogc3RyaW5nLCBkYXRhOiB7IFtrZXk6IHN0cmluZ106IHN0cmluZyB9KTogc3RyaW5nIHtcbiAgLy8gICAgIHJldHVybiBpbnB1dFN0cmluZy5yZXBsYWNlKC97e1xccyooW159XSspXFxzKn19L2csIChtYXRjaCwgdmFyaWFibGUpID0+IHtcbiAgLy8gICAgICAgY29uc3QgdmFsdWUgPSBkYXRhW3ZhcmlhYmxlXTtcbiAgLy8gICAgICAgcmV0dXJuIHZhbHVlICE9PSB1bmRlZmluZWQgPyB2YWx1ZSA6IG1hdGNoO1xuICAvLyAgICAgfSk7XG4gIC8vICAgfVxufVxuIl19
|
@@ -906,7 +906,7 @@ const AXDateTimeDefaultConfig = {
|
|
906
906
|
dayNames: 'شنبه_یکشنبه_دوشنبه_سه شنبه_چهارشنبه_پنج شنبه_جمعه'
|
907
907
|
.split('_')
|
908
908
|
.map((d) => ({ long: d, short: d[0], letter: d[0] })),
|
909
|
-
weekend: [7
|
909
|
+
weekend: [7],
|
910
910
|
formats: {
|
911
911
|
dateInput: 'yyyy/MM/dd',
|
912
912
|
timeInput: 'HH:mm',
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"acorex-core-dateTime.mjs","sources":["../../../../libs/core/dateTime/src/lib/datetime.class.ts","../../../../libs/core/dateTime/src/lib/georgian.calendar.ts","../../../../libs/core/dateTime/src/lib/jalali.calendar.ts","../../../../libs/core/dateTime/src/lib/dateTime.config.ts","../../../../libs/core/dateTime/src/lib/holidays.loader.ts","../../../../libs/core/dateTime/src/lib/calendar.service.ts","../../../../libs/core/dateTime/src/lib/datetime-format.plugin.ts","../../../../libs/core/dateTime/src/lib/datetime.pipe.ts","../../../../libs/core/dateTime/src/lib/datetime.module.ts","../../../../libs/core/dateTime/src/acorex-core-dateTime.ts"],"sourcesContent":["import { orderBy } from 'lodash-es';\n\nexport type TimeUnit = 'ms' | 'second' | 'minute' | 'hour' | 'day' | 'month' | 'year' | 'week';\n\nexport interface AXDateValue {\n year: number;\n month: number;\n date: number;\n hours?: number;\n minutes?: number;\n seconds?: number;\n ms?: number;\n}\n\nexport interface AXDateTimeDisplayFormats {\n dateInput: string;\n timeInput: string;\n dateTimeInput: string;\n dateDisplay: string;\n timeDisplay: string;\n dateTimeDisplay: string;\n}\n\nexport type AXDateTimeUnitNames = { long: string; short: string; letter: string }[];\n\nexport type AXDateTimePart = {\n key: string;\n placeholder: string;\n placeholders: string[];\n typedValue?: string | null;\n default: number;\n enabled: boolean;\n realValue: () => string;\n};\n\nexport type AXDateTimeParts = {\n year: AXDateTimePart;\n month: AXDateTimePart;\n day: AXDateTimePart;\n hour: AXDateTimePart;\n minute: AXDateTimePart;\n second: AXDateTimePart;\n};\n\nexport interface AXCalendarConfig {\n weekend: number[];\n formats: AXDateTimeDisplayFormats;\n dayNames: AXDateTimeUnitNames;\n monthNames: AXDateTimeUnitNames;\n}\n\nexport abstract class AXCalendar {\n private _config: AXCalendarConfig;\n\n /**\n * @ignore\n */\n constructor(config: AXCalendarConfig) {\n this._config = config;\n }\n\n public get weekend(): number[] {\n return this._config.weekend;\n }\n\n public get formats(): AXDateTimeDisplayFormats {\n return this._config.formats;\n }\n\n public get dayNames(): AXDateTimeUnitNames {\n return this._config.dayNames;\n }\n\n public get monthNames(): AXDateTimeUnitNames {\n return this._config.monthNames;\n }\n\n abstract name(): string;\n\n abstract dayOfMonth(date: Date): number;\n\n abstract dayOfYear(date: Date): number;\n\n abstract dayOfWeek(date: Date): number;\n\n abstract monthOfYear(date: Date): number;\n\n abstract weekOfYear(date: Date): number;\n\n abstract year(date: Date): number;\n\n abstract add(date: Date, unit: TimeUnit, amount: number): AXDateTime;\n\n abstract set(date: Date, unit: TimeUnit, value: number): AXDateTime;\n\n abstract startOf(date: Date, unit: TimeUnit): AXDateTime;\n\n abstract endOf(date: Date, unit: TimeUnit): AXDateTime;\n\n abstract create(value: AXDateValue): AXDateTime;\n\n abstract parse(value: string): AXDateTime;\n}\n\nexport class AXDateTime {\n private _date: Date;\n\n get date(): Date {\n return this._date;\n }\n\n private _calendar: AXCalendar;\n get calendar(): AXCalendar {\n return this._calendar;\n }\n\n constructor(value: Date, calendar: AXCalendar) {\n this._calendar = calendar;\n this._date = value;\n }\n\n clone(): AXDateTime {\n return new AXDateTime(this.date, this.calendar);\n }\n\n get dayOfMonth(): number {\n return this._calendar.dayOfMonth(this.date);\n }\n\n get dayOfYear(): number {\n return this._calendar.dayOfYear(this.date);\n }\n\n get dayOfWeek(): number {\n return this._calendar.dayOfWeek(this.date);\n }\n\n get hour(): number {\n return this._date.getHours();\n }\n\n get minute(): number {\n return this._date.getMinutes();\n }\n\n get second(): number {\n return this._date.getSeconds();\n }\n\n get year(): number {\n return this._calendar.year(this.date);\n }\n\n get monthOfYear(): number {\n return this._calendar.monthOfYear(this.date);\n }\n\n get weekOfYear(): number {\n return this._calendar.weekOfYear(this.date);\n }\n\n get month(): AXCalendarMonth {\n return new AXCalendarMonth(this);\n }\n\n add(unit: TimeUnit, amount: number): AXDateTime {\n return this._calendar.add(this.date, unit, amount);\n }\n\n set(unit: TimeUnit = 'day', value: number): AXDateTime {\n return this._calendar.set(this.date, unit, value);\n }\n\n duration(end: Date | AXDateTime): AXTimeSpan {\n const date = end instanceof AXDateTime ? end.date : (end as Date);\n const val = new AXDateTime(date, this.calendar);\n const range = new AXDateTimeRange(this, val);\n return range.duration();\n }\n\n startOf(unit: TimeUnit = 'day'): AXDateTime {\n return this._calendar.startOf(this.date, unit);\n }\n\n endOf(unit: TimeUnit = 'day'): AXDateTime {\n return this._calendar.endOf(this.date, unit);\n }\n\n private _formatKeys = {\n ss: () => this.pad(this.date.getSeconds(), 2),\n s: () => this.date.getSeconds().toString(),\n //\n dd: () => this.pad(this.calendar.dayOfMonth(this.date), 2),\n d: () => this.calendar.dayOfMonth(this.date).toString(),\n //\n mm: () => this.pad(this.date.getMinutes(), 2),\n m: () => this.date.getMinutes().toString(),\n //\n MMMM: () => this.calendar.monthNames[this.calendar.monthOfYear(this.date) - 1].long,\n MMM: () => this.calendar.monthNames[this.calendar.monthOfYear(this.date) - 1].short,\n MM: () => this.pad(this.calendar.monthOfYear(this.date), 2),\n M: () => this.calendar.monthOfYear(this.date),\n //\n DDDD: () => this.calendar.dayNames[this.calendar.dayOfWeek(this.date) - 1].long,\n DDD: () => this.calendar.dayNames[this.calendar.dayOfWeek(this.date) - 1].short,\n //\n yyyy: () => this.pad(this.calendar.year(this.date), 4),\n YYYY: () => this.pad(this.calendar.year(this.date), 4),\n yy: () => this.pad(this.calendar.year(this.date), 4).substring(2),\n YY: () => this.pad(this.calendar.year(this.date), 4).substring(2),\n //\n HH: () => this.pad(this.date.getHours(), 2),\n H: () => this.date.getHours().toString(),\n //\n hh: () => this.pad(this.date.getHours() % 12 || 12, 2),\n h: () => (this.date.getHours() % 12 || 12).toString(),\n //\n A: () => (this.date.getHours() < 12 ? 'am' : 'pm'),\n a: () => (this.date.getHours() < 12 ? 'am' : 'pm'),\n };\n\n format(format: string = this.calendar.formats.dateTimeDisplay): string {\n const re = new RegExp(orderBy(Object.keys(this._formatKeys), (c) => c.length, ['desc']).join('|'), 'gi');\n return format.replace(re, (matched) => {\n return this._formatKeys[matched]();\n });\n }\n\n private pad(n, width, z = '0') {\n n = n + '';\n return n.length >= width ? n : new Array(width - n.length + 1).join(z) + n;\n }\n\n equal(value: Date | AXDateTime, unit: TimeUnit = 'day') {\n return this.compare(value, unit) == 0;\n }\n\n compare(value: Date | AXDateTime, unit: TimeUnit = 'day') {\n const date = value instanceof AXDateTime ? value.date : (value as Date);\n const val = new AXDateTime(date, this.calendar);\n const func = (v1: number, v2: number) => {\n if (v1 == v2) {\n return 0;\n } else if (v1 > v2) {\n return 1;\n } else {\n return -1;\n }\n };\n let p = 0;\n switch (unit) {\n case 'year':\n return func(this.year, val.year);\n case 'week':\n p = this.compare(val, 'year');\n return p == 0 ? func(this.weekOfYear, val.weekOfYear) : p;\n case 'month':\n p = this.compare(val, 'year');\n return p == 0 ? func(this.monthOfYear, val.monthOfYear) : p;\n case 'day':\n p = this.compare(val, 'year');\n return p == 0 ? func(this.dayOfYear, val.dayOfYear) : p;\n case 'hour':\n p = this.compare(val, 'day');\n return p == 0 ? func(this.hour, val.hour) : p;\n case 'minute':\n p = this.compare(val, 'hour');\n return p == 0 ? func(this.minute, val.minute) : p;\n case 'second':\n p = this.compare(val, 'minute');\n return p == 0 ? func(this.second, val.second) : p;\n default:\n return func(this.date.getTime(), val.date.getTime());\n }\n }\n}\n\nexport class AXCalendarMonth {\n private _range: AXDateTimeRange;\n public get range(): AXDateTimeRange {\n return this._range;\n }\n public set range(v: AXDateTimeRange) {\n this._range = v;\n }\n\n public get totalDays(): number {\n return this.range.endTime.dayOfMonth;\n }\n\n constructor(date: AXDateTime) {\n this.index = date.date.getMonth();\n this.name = date.format('MMMM');\n this.range = new AXDateTimeRange(\n new AXDateTime(date.startOf('month').date, date.calendar),\n new AXDateTime(date.endOf('month').date, date.calendar),\n );\n }\n\n private readonly index: number;\n private readonly name: string;\n}\n\nexport interface AXTimeSpanTotal {\n miliseconds: number;\n seconds: number;\n minutes: number;\n hours: number;\n days: number;\n weeks: number;\n months: number;\n years: number;\n}\n\nexport interface AXTimeSpan {\n miliseconds: number;\n seconds: number;\n minutes: number;\n hours: number;\n days: number;\n months: number;\n years: number;\n total: AXTimeSpanTotal;\n}\n\nexport class AXDateTimeRange {\n private _startTime: AXDateTime;\n private _endTime: AXDateTime;\n\n public get startTime(): AXDateTime {\n return this._startTime;\n }\n\n public get endTime(): AXDateTime {\n return this._endTime;\n }\n\n constructor(startTime: AXDateTime, endTime: AXDateTime) {\n this._startTime = startTime;\n this._endTime = endTime;\n }\n\n duration(): AXTimeSpan {\n const result: AXTimeSpan = {\n miliseconds: 0,\n seconds: 0,\n minutes: 0,\n hours: 0,\n days: 0,\n months: 0,\n years: 0,\n total: {\n miliseconds: 0,\n seconds: 0,\n minutes: 0,\n hours: 0,\n days: 0,\n weeks: 0,\n months: 0,\n years: 0,\n },\n };\n\n const one_second = 1000;\n const one_min = one_second * 60;\n const one_hour = one_min * 60;\n const one_day = one_hour * 24;\n const one_week = one_day * 7;\n const one_year = 365.25 * one_day;\n const one_month = one_year / 12;\n const startTime = this._startTime.date.getTime();\n const endTime = this._endTime.date.getTime();\n const diff = Math.abs(endTime - startTime);\n //\n result.total.miliseconds = diff;\n result.total.seconds = Number((diff / one_second).toFixed(2));\n result.total.minutes = Number((diff / one_min).toFixed(2));\n result.total.hours = Number((diff / one_hour).toFixed(2));\n result.total.days = Number((diff / one_day).toFixed(2));\n result.total.weeks = Number((diff / one_week).toFixed(2));\n //\n // let months = (this.endTime.year - this.startTime.year) * 12;\n // months += this.endTime.monthOfYear - this.startTime.monthOfYear + 1;\n // if (this.endTime.dayOfYear < this.startTime.dayOfYear) {\n // months--;\n // }\n // result.total.months = Math.abs(months);\n // TODO: review\n result.total.months = Number((diff / one_month).toFixed(2));\n result.total.years = Number((diff / one_year).toFixed(2));\n //\n result.miliseconds = result.total.miliseconds % 1000;\n result.seconds = Number((result.total.seconds % 60).toFixed(0));\n result.minutes = Number((result.total.minutes % 60).toFixed(0));\n result.hours = Number((result.total.hours % 24).toFixed(0));\n // TODO: review\n result.days = Number((result.total.days % 30.4).toFixed(0));\n result.months = Number((result.total.months % 12).toFixed(0));\n result.years = Number(result.total.years.toFixed(0));\n return result;\n }\n\n enumurate(unit: TimeUnit = 'day', amount = 1): AXDateTime[] {\n const result: AXDateTime[] = [];\n let item = this._startTime.clone();\n while (item.compare(this._endTime, unit) < 1) {\n if (!result.some((c) => c.equal(item, unit))) {\n result.push(item);\n }\n item = item.add(unit, amount);\n }\n return result;\n }\n\n // includes(value: AXDateTime, unit: TimeUnit = 'day'): boolean {\n // // TODO: ??\n // return true;\n // }\n\n // getViewCompaire(view) {\n // switch (view) {\n // case 'day':\n // return 'YMD';\n // case 'month':\n // return 'YM';\n // case 'year':\n // return 'Y';\n // }\n // }\n}\n","import { AXCalendar, AXCalendarConfig, AXDateTime, AXDateValue, TimeUnit } from './datetime.class';\n\nexport class GeorgianCalendar extends AXCalendar {\n /**\n * @ignore\n */\n constructor(config: AXCalendarConfig) {\n super(config);\n }\n\n create(value: AXDateValue): AXDateTime {\n return new AXDateTime(\n new Date(\n value.year,\n value.month - 1,\n value.date,\n value.hours || 0,\n value.minutes || 0,\n value.seconds || 0,\n value.ms || 0,\n ),\n this,\n );\n }\n\n name(): string {\n return 'georgian';\n }\n\n dayOfMonth(date: Date): number {\n return date.getDate();\n }\n\n dayOfYear(date: Date): number {\n let result = 0;\n let m = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];\n if (this.isLeap(date)) {\n m[1] = 29;\n }\n for (let i = 0; i < date.getMonth(); i++) {\n result = result + m[i];\n }\n result += date.getDate();\n return result;\n }\n\n dayOfWeek(date: Date): number {\n return date.getDay() + 1;\n }\n\n weekOfYear(date: Date): number {\n const firstDay = new AXDateTime(date, this).startOf('year');\n return Math.ceil(\n ((date.getTime() - firstDay.date.getTime()) / 86400000 + firstDay.date.getDay() + 1) / 7,\n );\n }\n\n year(date: Date): number {\n return date.getFullYear();\n }\n\n monthOfYear(date: Date): number {\n return date.getMonth() + 1;\n }\n\n add(date: Date, unit: TimeUnit, amount: number): AXDateTime {\n let value = date.valueOf();\n switch (unit) {\n case 'second':\n value += 1000 * amount;\n break;\n case 'minute':\n value += 60000 * amount;\n break;\n case 'hour':\n value += 3600000 * amount;\n break;\n case 'month': {\n const v = new Date(value);\n let mo = date.getMonth();\n let yr = date.getFullYear();\n mo = (mo + amount) % 12;\n if (0 > mo) {\n yr += (date.getMonth() + amount - mo - 12) / 12;\n mo += 12;\n } else yr += (date.getMonth() + amount - mo) / 12;\n v.setMonth(mo);\n v.setFullYear(yr);\n value = v.valueOf();\n break;\n }\n case 'week':\n value += 7 * 86400000 * amount;\n break;\n case 'year': {\n const yv = new Date(value);\n yv.setFullYear(yv.getFullYear() + amount);\n value = yv.valueOf();\n break;\n }\n case 'day':\n default:\n value += 86400000 * amount;\n }\n return new AXDateTime(new Date(value), this);\n }\n\n set(date: Date, unit: TimeUnit, value: number): AXDateTime {\n const clone = new Date(date.valueOf());\n switch (unit) {\n case 'second':\n clone.setHours(clone.getHours(), clone.getMinutes(), value, clone.getMilliseconds());\n break;\n case 'minute':\n clone.setHours(clone.getHours(), value, clone.getSeconds(), clone.getMilliseconds());\n break;\n case 'hour':\n clone.setHours(value, clone.getMinutes(), clone.getSeconds(), clone.getMilliseconds());\n break;\n default:\n case 'day':\n clone.setDate(value);\n break;\n case 'week':\n break;\n case 'month':\n clone.setMonth(Math.max(0, value - 1));\n break;\n case 'year':\n clone.setFullYear(value);\n break;\n }\n return new AXDateTime(clone, this);\n }\n\n startOf(date: Date, unit: TimeUnit): AXDateTime {\n const clone = new Date(date.valueOf());\n switch (unit) {\n case 'second':\n clone.setHours(clone.getHours(), clone.getMinutes(), clone.getSeconds(), 0);\n return new AXDateTime(clone, this);\n case 'minute':\n clone.setHours(clone.getHours(), clone.getMinutes(), 0, 0);\n return new AXDateTime(clone, this);\n case 'hour':\n clone.setHours(clone.getHours(), 0, 0, 0);\n return new AXDateTime(clone, this);\n default:\n case 'day':\n clone.setHours(0, 0, 0, 0);\n return new AXDateTime(clone, this);\n case 'week': {\n const index = 0;\n const start = index >= 0 ? index : 0;\n const day = clone.getDay();\n const diff = clone.getDate() - day + (start > day ? start - 7 : start);\n clone.setDate(diff);\n return new AXDateTime(clone, this).startOf('day');\n }\n case 'month':\n clone.setDate(1);\n return new AXDateTime(clone, this).startOf('day');\n case 'year':\n clone.setMonth(0);\n clone.setDate(1);\n return new AXDateTime(clone, this).startOf('day');\n }\n }\n\n endOf(date: Date, unit: TimeUnit): AXDateTime {\n const clone = new Date(date.valueOf());\n switch (unit) {\n case 'second':\n clone.setHours(clone.getHours(), clone.getMinutes(), clone.getSeconds(), 999);\n return new AXDateTime(clone, this);\n case 'minute':\n clone.setHours(clone.getHours(), clone.getMinutes(), 59, 999);\n return new AXDateTime(clone, this);\n case 'hour':\n clone.setHours(clone.getHours(), 59, 59, 999);\n return new AXDateTime(clone, this);\n default:\n case 'day':\n clone.setHours(23, 59, 59, 999);\n return new AXDateTime(clone, this);\n case 'week':\n return this.startOf(date, 'week').add('day', 6).endOf('day');\n case 'month': {\n const dateObj = new Date();\n dateObj.setFullYear(date.getFullYear());\n dateObj.setMonth(date.getMonth() + 1);\n dateObj.setDate(0);\n return new AXDateTime(dateObj, this).endOf('day');\n //return new AXDateTime(new Date(date.getFullYear(), date.getMonth() + 1, 0), this).endOf('day');\n }\n case 'year':\n clone.setMonth(11);\n return new AXDateTime(clone, this).endOf('month');\n }\n }\n\n isLeap(date: Date) {\n let leapYear = new Date(date.getFullYear(), 1, 29);\n return leapYear.getDate() == 29;\n }\n\n parse(value: string): AXDateTime {\n return new AXDateTime(new Date(value), this);\n }\n}\n","import { AXCalendar, AXCalendarConfig, AXDateTime, AXDateValue, TimeUnit } from './datetime.class';\n\nexport class JalaliCalendar extends AXCalendar {\n /**\n * @ignore\n */\n constructor(config: AXCalendarConfig) {\n super(config);\n }\n\n /*\n Jalaali years starting the 33-year rule.\n*/\n private breaks = [\n -61, 9, 38, 199, 426, 686, 756, 818, 1111, 1181, 1210, 1635, 2060, 2097, 2192, 2262, 2324, 2394, 2456,\n 3178,\n ];\n\n create(value: AXDateValue): AXDateTime {\n const a = this.toGregorian(value.year, value.month, value.date);\n return new AXDateTime(\n new Date(\n a.getFullYear(),\n a.getMonth(),\n a.getDate(),\n value.hours || 0,\n value.minutes || 0,\n value.seconds || 0,\n value.ms || 0,\n ),\n this,\n );\n }\n\n name(): string {\n return 'jalali';\n }\n\n dayOfMonth(date: Date): number {\n return this.toJalaali(date).day;\n }\n\n dayOfYear(date: Date): number {\n const j = this.toJalaali(date);\n return (j.month <= 6 ? (j.month - 1) * 31 : 6 * 31 + (j.month - 7) * 30) + j.day;\n }\n\n dayOfWeek(date: Date): number {\n return date.getDay() == 6 ? 1 : date.getDay() + 2;\n }\n\n weekOfYear(date: Date): number {\n //TODO : apply jalali\n const firstDay = new AXDateTime(date, this).startOf('year');\n return Math.ceil(\n ((date.getTime() - firstDay.date.getTime()) / 86400000 + firstDay.date.getDay() + 1) / 7,\n );\n }\n\n year(date: Date): number {\n return this.toJalaali(date).year;\n }\n\n monthOfYear(date: Date): number {\n return this.toJalaali(date).month;\n }\n\n add(date: Date, unit: TimeUnit, amount: number): AXDateTime {\n let value = date.valueOf();\n switch (unit) {\n case 'second':\n value += 1000 * amount;\n break;\n case 'minute':\n value += 60000 * amount;\n break;\n case 'hour':\n value += 3600000 * amount;\n break;\n case 'month': {\n const v = new Date(value);\n let jd = this.dayOfMonth(date);\n let jm = this.monthOfYear(date);\n let jy = this.year(date);\n const nm = jm + amount;\n const ny = nm % 12 ? Math.floor(nm / 12) : 0;\n jy += ny;\n jm = nm - ny * 12;\n const vv = this.toGregorian(jy, jm, jd);\n v.setFullYear(vv.getFullYear());\n v.setMonth(vv.getMonth());\n v.setDate(vv.getDate());\n value = v.valueOf();\n break;\n }\n case 'week':\n value += 7 * 86400000 * amount;\n break;\n case 'year': {\n // const v = new Date(value);\n // v.setFullYear(v.getFullYear() + amount);\n // value = v.valueOf();\n // break\n const v = new Date(value);\n let jd = this.dayOfMonth(date);\n let jm = this.monthOfYear(date);\n let jy = this.year(date);\n const vv = this.toGregorian(jy + amount, jm, jd);\n v.setFullYear(vv.getFullYear());\n v.setMonth(vv.getMonth());\n v.setDate(vv.getDate());\n value = v.valueOf();\n break;\n }\n case 'day':\n default:\n value += 86400000 * amount;\n }\n return new AXDateTime(new Date(value), this);\n }\n\n set(date: Date, unit: TimeUnit, value: number): AXDateTime {\n const clone = new Date(date.valueOf());\n const jDate = this.toJalaali(clone);\n switch (unit) {\n case 'second':\n clone.setHours(clone.getHours(), clone.getMinutes(), value, clone.getMilliseconds());\n break;\n case 'minute':\n clone.setHours(clone.getHours(), value, clone.getSeconds(), clone.getMilliseconds());\n break;\n case 'hour':\n clone.setHours(value, clone.getMinutes(), clone.getSeconds(), clone.getMilliseconds());\n break;\n default:\n case 'day': {\n const gDate = this.toGregorian(jDate.year, jDate.month, value);\n clone.setDate(gDate.getDate());\n break;\n }\n case 'week':\n break;\n case 'month': {\n const gDate2 = this.toGregorian(jDate.year, value, jDate.day);\n clone.setMonth(gDate2.getMonth());\n break;\n }\n case 'year': {\n const gDate3 = this.toGregorian(value, jDate.month, jDate.day);\n clone.setFullYear(gDate3.getFullYear());\n break;\n }\n }\n return new AXDateTime(clone, this);\n }\n\n startOf(date: Date, unit: TimeUnit): AXDateTime {\n const clone = new Date(date.valueOf());\n switch (unit) {\n case 'second':\n clone.setHours(clone.getHours(), clone.getMinutes(), clone.getSeconds(), 0);\n return new AXDateTime(clone, this);\n case 'minute':\n clone.setHours(clone.getHours(), clone.getMinutes(), 0, 0);\n return new AXDateTime(clone, this);\n case 'hour':\n clone.setHours(clone.getHours(), 0, 0, 0);\n return new AXDateTime(clone, this);\n default:\n case 'day':\n clone.setHours(0, 0, 0, 0);\n return new AXDateTime(clone, this);\n case 'week':\n return new AXDateTime(clone, this).add('day', -this.dayOfWeek(clone) + 1).startOf('day');\n case 'month': {\n const jy = this.year(date);\n const jm = this.monthOfYear(date);\n const gDate = this.toGregorian(jy, jm, 1);\n return new AXDateTime(gDate, this).startOf('day');\n }\n case 'year': {\n const jy = this.year(date);\n const gDate = this.toGregorian(jy, 1, 1);\n return new AXDateTime(gDate, this).startOf('day');\n }\n }\n }\n\n endOf(date: Date, unit: TimeUnit): AXDateTime {\n const clone = new Date(date.valueOf());\n switch (unit) {\n case 'second':\n clone.setHours(clone.getHours(), clone.getMinutes(), clone.getSeconds(), 999);\n return new AXDateTime(clone, this);\n case 'minute':\n clone.setHours(clone.getHours(), clone.getMinutes(), 59, 999);\n return new AXDateTime(clone, this);\n case 'hour':\n clone.setHours(clone.getHours(), 59, 59, 999);\n return new AXDateTime(clone, this);\n default:\n case 'day':\n clone.setHours(23, 59, 59, 999);\n return new AXDateTime(clone, this);\n case 'week': {\n return this.startOf(date, 'week').add('day', 6).endOf('day');\n }\n case 'month': {\n const jy = this.year(date);\n const jm = this.monthOfYear(date);\n const jd = this.jalaaliMonthLength(jy, jm);\n const gDate = this.toGregorian(jy, jm, jd);\n return new AXDateTime(gDate, this).endOf('day');\n }\n case 'year': {\n const jy = this.year(date);\n const gDate = this.toGregorian(jy, 12, this.jalaaliMonthLength(jy, 12));\n return new AXDateTime(gDate, this).endOf('day');\n }\n }\n }\n\n parse(value: string): AXDateTime {\n const [y, M, d, h, m, s, ms] = value.split(/[^a-zA-Z0-9]+/gi);\n const date = this.toGregorian(Number(y) ?? 0, Number(M) ?? 1, Number(d) ?? 1);\n if (h != null) date.setHours(Number(h));\n if (m != null) date.setMinutes(Number(m));\n if (s != null) date.setSeconds(Number(s));\n if (ms != null) date.setMilliseconds(Number(d));\n return new AXDateTime(date, this);\n }\n\n /*\n Converts a Gregorian date to Jalaali.\n*/\n toJalaali(date: Date): { year: number; month: number; day: number } {\n const gd = date.getDate();\n const gm = date.getMonth() + 1;\n const gy = date.getFullYear();\n const r = this.d2j(this.g2d(gy, gm, gd));\n return {\n year: r.jy,\n month: r.jm,\n day: r.jd,\n };\n }\n\n /*\n Converts a Jalaali date to Gregorian.\n */\n toGregorian(jy, jm, jd): Date {\n const g = this.d2g(this.j2d(jy, jm, jd));\n return new Date(g.gy, g.gm - 1, g.gd);\n }\n\n /*\n Checks whether a Jalaali date is valid or not.\n */\n isValidJalaaliDate(jy, jm, jd) {\n return jy >= -61 && jy <= 3177 && jm >= 1 && jm <= 12 && jd >= 1 && jd <= this.jalaaliMonthLength(jy, jm);\n }\n\n /*\n Is this a leap year or not?\n */\n isLeapJalaaliYear(jy) {\n return this.jalCalLeap(jy) === 0;\n }\n\n /*\n Number of days in a given month in a Jalaali year.\n */\n jalaaliMonthLength(jy, jm) {\n if (jm <= 6) return 31;\n if (jm <= 11) return 30;\n if (this.isLeapJalaaliYear(jy)) return 30;\n return 29;\n }\n\n /*\n This determines if the Jalaali (Persian) year is\n leap (366-day long) or is the common year (365 days)\n \n @param jy Jalaali calendar year (-61 to 3177)\n @returns number of years since the last leap year (0 to 4)\n */\n private jalCalLeap(jy: number) {\n let bl = this.breaks.length,\n jp = this.breaks[0],\n jm,\n jump,\n leap,\n n,\n i;\n\n if (jy < jp || jy >= this.breaks[bl - 1]) throw new Error('Invalid Jalaali year ' + jy);\n\n for (i = 1; i < bl; i += 1) {\n jm = this.breaks[i];\n jump = jm - jp;\n if (jy < jm) break;\n jp = jm;\n }\n n = jy - jp;\n\n if (jump - n < 6) n = n - jump + this.div(jump + 4, 33) * 33;\n leap = this.mod(this.mod(n + 1, 33) - 1, 4);\n if (leap === -1) {\n leap = 4;\n }\n\n return leap;\n }\n\n private jalCal(jy: number, withoutLeap: boolean) {\n let bl = this.breaks.length,\n gy = jy + 621,\n leapJ = -14,\n jp = this.breaks[0],\n jm,\n jump,\n leap,\n leapG,\n march,\n n,\n i;\n\n if (jy < jp || jy >= this.breaks[bl - 1]) throw new Error('Invalid Jalaali year ' + jy);\n\n // Find the limiting years for the Jalaali year jy.\n for (i = 1; i < bl; i += 1) {\n jm = this.breaks[i];\n jump = jm - jp;\n if (jy < jm) break;\n leapJ = leapJ + this.div(jump, 33) * 8 + this.div(this.mod(jump, 33), 4);\n jp = jm;\n }\n n = jy - jp;\n\n // Find the number of leap years from AD 621 to the beginning\n // of the current Jalaali year in the Persian calendar.\n leapJ = leapJ + this.div(n, 33) * 8 + this.div(this.mod(n, 33) + 3, 4);\n if (this.mod(jump, 33) === 4 && jump - n === 4) leapJ += 1;\n\n // And the same in the Gregorian calendar (until the year gy).\n leapG = this.div(gy, 4) - this.div((this.div(gy, 100) + 1) * 3, 4) - 150;\n\n // Determine the Gregorian date of Farvardin the 1st.\n march = 20 + leapJ - leapG;\n\n // return with gy and march when we don't need leap\n if (withoutLeap) return { gy: gy, march: march };\n\n // Find how many years have passed since the last leap year.\n if (jump - n < 6) n = n - jump + this.div(jump + 4, 33) * 33;\n leap = this.mod(this.mod(n + 1, 33) - 1, 4);\n if (leap === -1) {\n leap = 4;\n }\n\n return {\n leap: leap,\n gy: gy,\n march: march,\n };\n }\n\n private j2d(jy, jm, jd): number {\n let r = this.jalCal(jy, true);\n return this.g2d(r.gy, 3, r.march) + (jm - 1) * 31 - this.div(jm, 7) * (jm - 7) + jd - 1;\n }\n\n private d2j(jdn: number) {\n let gy = this.d2g(jdn).gy, // Calculate Gregorian year (gy).\n jy = gy - 621,\n r = this.jalCal(jy, false),\n jdn1f = this.g2d(gy, 3, r.march),\n jd,\n jm,\n k;\n\n // Find number of days that passed since 1 Farvardin.\n k = jdn - jdn1f;\n if (k >= 0) {\n if (k <= 185) {\n // The first 6 months.\n jm = 1 + this.div(k, 31);\n jd = this.mod(k, 31) + 1;\n return {\n jy: jy,\n jm: jm,\n jd: jd,\n };\n } else {\n // The remaining months.\n k -= 186;\n }\n } else {\n // Previous Jalaali year.\n jy -= 1;\n k += 179;\n if (r.leap === 1) k += 1;\n }\n jm = 7 + this.div(k, 30);\n jd = this.mod(k, 30) + 1;\n return {\n jy: jy,\n jm: jm,\n jd: jd,\n };\n }\n\n private g2d(gy: number, gm: number, gd: number): number {\n let d =\n this.div((gy + this.div(gm - 8, 6) + 100100) * 1461, 4) +\n this.div(153 * this.mod(gm + 9, 12) + 2, 5) +\n gd -\n 34840408;\n d = d - this.div(this.div(gy + 100100 + this.div(gm - 8, 6), 100) * 3, 4) + 752;\n return d;\n }\n\n private d2g(jdn: number) {\n let j, i, gd, gm, gy;\n j = 4 * jdn + 139361631;\n j = j + this.div(this.div(4 * jdn + 183187720, 146097) * 3, 4) * 4 - 3908;\n i = this.div(this.mod(j, 1461), 4) * 5 + 308;\n gd = this.div(this.mod(i, 153), 5) + 1;\n gm = this.mod(this.div(i, 153), 12) + 1;\n gy = this.div(j, 1461) - 100100 + this.div(8 - gm, 6);\n return {\n gy: gy,\n gm: gm,\n gd: gd,\n };\n }\n\n private jalaaliWeek(jy: number, jm: number, jd: number): { saturday: any; friday: any } {\n let dayOfWeek = this.jalaaliToDateObject(jy, jm, jd, 0, 0, 0, 0).getDay();\n\n let startDayDifference = dayOfWeek == 6 ? 0 : -(dayOfWeek + 1);\n let endDayDifference = 6 + startDayDifference;\n\n return {\n saturday: this.d2j(this.j2d(jy, jm, jd + startDayDifference)),\n friday: this.d2j(this.j2d(jy, jm, jd + endDayDifference)),\n };\n }\n\n private jalaaliToDateObject(\n jy: number,\n jm: number,\n jd: number,\n h: number = 0,\n m: number = 0,\n s: number = 0,\n ms: number = 0,\n ) {\n let gregorianCalenderDate = this.toGregorian(jy, jm, jd);\n\n return new Date(\n gregorianCalenderDate.getFullYear(),\n gregorianCalenderDate.getMonth() - 1,\n gregorianCalenderDate.getDate(),\n h || 0,\n m || 0,\n s || 0,\n ms || 0,\n );\n }\n\n /*\n Utility helper functions.\n */\n\n private div(a: number, b: number) {\n return ~~(a / b);\n }\n\n private mod(a: number, b: number) {\n return a - ~~(a / b) * b;\n }\n}\n","import { AX_GLOBAL_CONFIG } from '@acorex/core/config';\nimport { InjectionToken, inject } from '@angular/core';\nimport { set } from 'lodash-es';\nimport { AXCalendar } from './datetime.class';\nimport { GeorgianCalendar } from './georgian.calendar';\nimport { JalaliCalendar } from './jalali.calendar';\n\nexport interface AXDateTimeConfig {\n calendar: string;\n calendars: {\n [key: string]: AXCalendar;\n };\n}\n\nexport const AX_DATETIME_CONFIG = new InjectionToken<AXDateTimeConfig>('AX_DATETIME_CONFIG', {\n providedIn: 'root',\n factory: () => {\n const global = inject(AX_GLOBAL_CONFIG);\n set(global, 'dateTime', AX_DATETIME_CONFIG);\n return AXDateTimeDefaultConfig;\n },\n});\n\nexport const AXDateTimeDefaultConfig: AXDateTimeConfig = {\n calendar: 'georgian',\n calendars: {\n georgian: new GeorgianCalendar({\n dayNames: ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'].map((d) => ({\n long: d,\n short: d.substring(0, 3),\n letter: d[0],\n })),\n monthNames: [\n 'January',\n 'February',\n 'March',\n 'April',\n 'May',\n 'June',\n 'July',\n 'August',\n 'September',\n 'October',\n 'November',\n 'December',\n ].map((d) => ({ long: d, short: d.substring(0, 3), letter: d[0] })),\n weekend: [6, 7],\n formats: {\n dateInput: 'yyyy/MM/dd',\n timeInput: 'HH:mm',\n dateTimeInput: 'yyyy/MM/dd HH:mm',\n dateDisplay: 'DDDD, d MMM yyyy',\n timeDisplay: 'HH:mm',\n dateTimeDisplay: 'DDDD, d MMM yyyy HH:mm',\n },\n }),\n jalali: new JalaliCalendar({\n monthNames: 'فروردین_اردیبهشت_خرداد_تیر_مرداد_شهریور_مهر_آبان_آذر_دی_بهمن_اسفند'\n .split('_')\n .map((d) => ({ long: d, short: d, letter: d[0] })),\n dayNames: 'شنبه_یکشنبه_دوشنبه_سه شنبه_چهارشنبه_پنج شنبه_جمعه'\n .split('_')\n .map((d) => ({ long: d, short: d[0], letter: d[0] })),\n weekend: [7, 1],\n formats: {\n dateInput: 'yyyy/MM/dd',\n timeInput: 'HH:mm',\n dateTimeInput: 'yyyy/MM/dd HH:mm',\n dateDisplay: 'DDDD, d MMM yyyy',\n timeDisplay: 'HH:mm',\n dateTimeDisplay: 'DDDD, d MMM yyyy HH:mm',\n },\n }),\n },\n};\n\nexport type PartialDateTimeConfig = Partial<AXDateTimeConfig>;\n\nexport function dateTimeConfig(config: PartialDateTimeConfig = {}): AXDateTimeConfig {\n const result = {\n ...AXDateTimeDefaultConfig,\n ...config,\n };\n return result;\n}\n","import { InjectionToken } from '@angular/core';\n\nexport interface AXHolidayDate {\n date: Date;\n title: string;\n description?: string;\n [key: string]: unknown;\n}\n\nexport interface AXHolidaysLoaderOptions {\n calendar?: string;\n range?: { start: Date; end: Date };\n}\n\nexport interface AXHolidaysLoader {\n getHolidays(options?: AXHolidaysLoaderOptions): Promise<AXHolidayDate[]>;\n}\n\nexport class AXHolidaysLoaderDefault implements AXHolidaysLoader {\n getHolidays(options?: AXHolidaysLoaderOptions | undefined): Promise<AXHolidayDate[]> {\n return Promise.resolve([]);\n }\n}\n\nexport const AX_DATETIME_HOLIDAYS_LOADER = new InjectionToken<AXHolidaysLoader>(\n 'AX_DATETIME_HOLIDAYS_LOADER',\n {\n providedIn: 'root',\n factory: () => {\n return new AXHolidaysLoaderDefault();\n },\n },\n);\n","import { Injectable, inject } from '@angular/core';\nimport { Subject } from 'rxjs';\nimport { AXDateTimeConfig, AX_DATETIME_CONFIG } from './dateTime.config';\nimport { AXCalendar, AXDateTime, AXDateValue } from './datetime.class';\nimport { AXHolidayDate, AXHolidaysLoaderOptions, AX_DATETIME_HOLIDAYS_LOADER } from './holidays.loader';\n\n@Injectable({ providedIn: 'root' })\nexport class AXCalendarService {\n private _config: AXDateTimeConfig = inject(AX_DATETIME_CONFIG);\n private _holidaysLoader = inject(AX_DATETIME_HOLIDAYS_LOADER);\n\n public get calendar(): AXCalendar {\n return this._config.calendars[this._config.calendar];\n }\n\n public onHolidaysChanged: Subject<AXHolidayDate[]> = new Subject<AXHolidayDate[]>();\n private _holidays: AXHolidayDate[] = [];\n public get holidays(): AXHolidayDate[] {\n return this._holidays;\n }\n\n constructor() {\n this.loadHolidays();\n }\n\n public loadHolidays(options?: AXHolidaysLoaderOptions) {\n return this._holidaysLoader.getHolidays(options).then((value) => {\n this._holidays = value;\n this.onHolidaysChanged.next(this._holidays);\n });\n }\n\n public create(value: AXDateValue, calendarName?: string): AXDateTime;\n public create(value: Date, calendarName?: string): AXDateTime;\n public create(value: AXDateValue | Date, calendarName?: string): AXDateTime {\n const calendar = calendarName ? this.resolveCalendar(calendarName) : this.calendar;\n if (value instanceof Date) {\n return new AXDateTime(value, calendar);\n } else if (value?.year && value?.month) {\n return calendar.create(value as AXDateValue);\n }\n return this.now();\n }\n\n public now(calendarName?: string): AXDateTime {\n const calendar = calendarName ? this.resolveCalendar(calendarName) : this.calendar;\n return new AXDateTime(new Date(), calendar);\n }\n\n public resolveCalendar(name: string): AXCalendar {\n const c = this._config.calendars[name];\n if (!c) {\n console.error(`\"${name}\" is not a valid calendar name!`);\n return this.calendar;\n }\n return c;\n }\n\n public convert(value: Date | AXDateTime | string, calendarName?: string): AXDateTime {\n // const isISOString = val => {\n // const d = new Date(val);\n // return !Number.isNaN(d.valueOf()) && d.toISOString() === val;\n // };\n\n const isISOString = (str) => {\n if (!/\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}(.\\d{3}Z)?/.test(str)) return false;\n const d = new Date(str);\n return d instanceof Date && !isNaN(d.getTime()); // valid date\n };\n //\n const calendar = calendarName ? this.resolveCalendar(calendarName) : this.calendar;\n if (typeof value === 'string') {\n if (isISOString(value)) return new AXDateTime(new Date(value), calendar);\n else return calendar.parse(value);\n }\n const date = value instanceof AXDateTime ? value.date : (value as Date);\n return new AXDateTime(date, calendar);\n }\n}\n","import { AXFormatPlugin } from '@acorex/core/format';\nimport { Injectable, inject } from '@angular/core';\nimport { AXCalendarService } from './calendar.service';\n\n@Injectable()\nexport class AXDateTimeFormatPlugin implements AXFormatPlugin {\n private calendarService = inject(AXCalendarService);\n\n get name(): string {\n return 'datetime';\n }\n\n format(value: unknown, ...args: unknown[]): string {\n const formatStr: string = (args.length ? args[0] : null) as string;\n return this.calendarService.create(value as Date).format(formatStr);\n }\n}\n","import { Pipe, PipeTransform, inject } from '@angular/core';\nimport { AXCalendarService } from './calendar.service';\nimport { AXDateTime } from './datetime.class';\n\n@Pipe({ name: 'axDate' })\nexport class AXDateTimePipe implements PipeTransform {\n private _calendarService: AXCalendarService = inject(AXCalendarService);\n\n transform(value: Date | AXDateTime | string, format?: string, calendarName?: string): string {\n if (value == null) {\n return '';\n }\n let calendar = this._calendarService.calendar;\n if (calendarName) {\n calendar = this._calendarService.resolveCalendar(calendarName);\n }\n const val: AXDateTime = this._calendarService.convert(value, calendar.name());\n if (!format) {\n return val.format(calendar.formats.dateDisplay);\n } else {\n return val.format(format);\n }\n }\n}\n","import { AX_FORMAT_PLUGING } from '@acorex/core/format';\nimport { NgModule } from '@angular/core';\nimport { AXCalendarService } from './calendar.service';\nimport { AXDateTimeFormatPlugin } from './datetime-format.plugin';\nimport { AXDateTimePipe } from './datetime.pipe';\n\n@NgModule({\n imports: [],\n exports: [AXDateTimePipe],\n declarations: [AXDateTimePipe],\n providers: [\n AXCalendarService,\n AXDateTimeFormatPlugin,\n {\n provide: AX_FORMAT_PLUGING,\n multi: true,\n useClass: AXDateTimeFormatPlugin,\n },\n ],\n})\nexport class AXDateTimeModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;;MAmDsB,UAAU,CAAA;AAG9B;;AAEG;AACH,IAAA,WAAA,CAAY,MAAwB,EAAA;AAClC,QAAA,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC;KACvB;AAED,IAAA,IAAW,OAAO,GAAA;AAChB,QAAA,OAAO,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC;KAC7B;AAED,IAAA,IAAW,OAAO,GAAA;AAChB,QAAA,OAAO,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC;KAC7B;AAED,IAAA,IAAW,QAAQ,GAAA;AACjB,QAAA,OAAO,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC;KAC9B;AAED,IAAA,IAAW,UAAU,GAAA;AACnB,QAAA,OAAO,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC;KAChC;AA2BF,CAAA;MAEY,UAAU,CAAA;AAGrB,IAAA,IAAI,IAAI,GAAA;QACN,OAAO,IAAI,CAAC,KAAK,CAAC;KACnB;AAGD,IAAA,IAAI,QAAQ,GAAA;QACV,OAAO,IAAI,CAAC,SAAS,CAAC;KACvB;IAED,WAAY,CAAA,KAAW,EAAE,QAAoB,EAAA;AAwErC,QAAA,IAAA,CAAA,WAAW,GAAG;AACpB,YAAA,EAAE,EAAE,MAAM,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;AAC7C,YAAA,CAAC,EAAE,MAAM,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC,QAAQ,EAAE;;YAE1C,EAAE,EAAE,MAAM,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AAC1D,YAAA,CAAC,EAAE,MAAM,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE;;AAEvD,YAAA,EAAE,EAAE,MAAM,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;AAC7C,YAAA,CAAC,EAAE,MAAM,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC,QAAQ,EAAE;;YAE1C,IAAI,EAAE,MAAM,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI;YACnF,GAAG,EAAE,MAAM,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK;YACnF,EAAE,EAAE,MAAM,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AAC3D,YAAA,CAAC,EAAE,MAAM,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC;;YAE7C,IAAI,EAAE,MAAM,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI;YAC/E,GAAG,EAAE,MAAM,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK;;YAE/E,IAAI,EAAE,MAAM,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACtD,IAAI,EAAE,MAAM,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACtD,EAAE,EAAE,MAAM,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC;YACjE,EAAE,EAAE,MAAM,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC;;AAEjE,YAAA,EAAE,EAAE,MAAM,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;AAC3C,YAAA,CAAC,EAAE,MAAM,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;;YAExC,EAAE,EAAE,MAAM,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC;AACtD,YAAA,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE,QAAQ,EAAE;;YAErD,CAAC,EAAE,OAAO,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,GAAG,EAAE,GAAG,IAAI,GAAG,IAAI,CAAC;YAClD,CAAC,EAAE,OAAO,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,GAAG,EAAE,GAAG,IAAI,GAAG,IAAI,CAAC;SACnD,CAAC;AAtGA,QAAA,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC;AAC1B,QAAA,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;KACpB;IAED,KAAK,GAAA;QACH,OAAO,IAAI,UAAU,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;KACjD;AAED,IAAA,IAAI,UAAU,GAAA;QACZ,OAAO,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;KAC7C;AAED,IAAA,IAAI,SAAS,GAAA;QACX,OAAO,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;KAC5C;AAED,IAAA,IAAI,SAAS,GAAA;QACX,OAAO,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;KAC5C;AAED,IAAA,IAAI,IAAI,GAAA;AACN,QAAA,OAAO,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC;KAC9B;AAED,IAAA,IAAI,MAAM,GAAA;AACR,QAAA,OAAO,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE,CAAC;KAChC;AAED,IAAA,IAAI,MAAM,GAAA;AACR,QAAA,OAAO,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE,CAAC;KAChC;AAED,IAAA,IAAI,IAAI,GAAA;QACN,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;KACvC;AAED,IAAA,IAAI,WAAW,GAAA;QACb,OAAO,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;KAC9C;AAED,IAAA,IAAI,UAAU,GAAA;QACZ,OAAO,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;KAC7C;AAED,IAAA,IAAI,KAAK,GAAA;AACP,QAAA,OAAO,IAAI,eAAe,CAAC,IAAI,CAAC,CAAC;KAClC;IAED,GAAG,CAAC,IAAc,EAAE,MAAc,EAAA;AAChC,QAAA,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;KACpD;AAED,IAAA,GAAG,CAAC,IAAA,GAAiB,KAAK,EAAE,KAAa,EAAA;AACvC,QAAA,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;KACnD;AAED,IAAA,QAAQ,CAAC,GAAsB,EAAA;AAC7B,QAAA,MAAM,IAAI,GAAG,GAAG,YAAY,UAAU,GAAG,GAAG,CAAC,IAAI,GAAI,GAAY,CAAC;QAClE,MAAM,GAAG,GAAG,IAAI,UAAU,CAAC,IAAI,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;QAChD,MAAM,KAAK,GAAG,IAAI,eAAe,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;AAC7C,QAAA,OAAO,KAAK,CAAC,QAAQ,EAAE,CAAC;KACzB;IAED,OAAO,CAAC,OAAiB,KAAK,EAAA;AAC5B,QAAA,OAAO,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;KAChD;IAED,KAAK,CAAC,OAAiB,KAAK,EAAA;AAC1B,QAAA,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;KAC9C;IAmCD,MAAM,CAAC,SAAiB,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,eAAe,EAAA;AAC3D,QAAA,MAAM,EAAE,GAAG,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,MAAM,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC,CAAC;QACzG,OAAO,MAAM,CAAC,OAAO,CAAC,EAAE,EAAE,CAAC,OAAO,KAAI;AACpC,YAAA,OAAO,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,EAAE,CAAC;AACrC,SAAC,CAAC,CAAC;KACJ;AAEO,IAAA,GAAG,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,GAAG,GAAG,EAAA;AAC3B,QAAA,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC;AACX,QAAA,OAAO,CAAC,CAAC,MAAM,IAAI,KAAK,GAAG,CAAC,GAAG,IAAI,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;KAC5E;AAED,IAAA,KAAK,CAAC,KAAwB,EAAE,IAAA,GAAiB,KAAK,EAAA;QACpD,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;KACvC;AAED,IAAA,OAAO,CAAC,KAAwB,EAAE,IAAA,GAAiB,KAAK,EAAA;AACtD,QAAA,MAAM,IAAI,GAAG,KAAK,YAAY,UAAU,GAAG,KAAK,CAAC,IAAI,GAAI,KAAc,CAAC;QACxE,MAAM,GAAG,GAAG,IAAI,UAAU,CAAC,IAAI,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;AAChD,QAAA,MAAM,IAAI,GAAG,CAAC,EAAU,EAAE,EAAU,KAAI;YACtC,IAAI,EAAE,IAAI,EAAE,EAAE;AACZ,gBAAA,OAAO,CAAC,CAAC;AACV,aAAA;iBAAM,IAAI,EAAE,GAAG,EAAE,EAAE;AAClB,gBAAA,OAAO,CAAC,CAAC;AACV,aAAA;AAAM,iBAAA;gBACL,OAAO,CAAC,CAAC,CAAC;AACX,aAAA;AACH,SAAC,CAAC;QACF,IAAI,CAAC,GAAG,CAAC,CAAC;AACV,QAAA,QAAQ,IAAI;AACV,YAAA,KAAK,MAAM;gBACT,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;AACnC,YAAA,KAAK,MAAM;gBACT,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;gBAC9B,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;AAC5D,YAAA,KAAK,OAAO;gBACV,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;gBAC9B,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,GAAG,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;AAC9D,YAAA,KAAK,KAAK;gBACR,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;gBAC9B,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;AAC1D,YAAA,KAAK,MAAM;gBACT,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;gBAC7B,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAChD,YAAA,KAAK,QAAQ;gBACX,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;gBAC9B,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;AACpD,YAAA,KAAK,QAAQ;gBACX,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;gBAChC,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;AACpD,YAAA;AACE,gBAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,GAAG,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;AACxD,SAAA;KACF;AACF,CAAA;MAEY,eAAe,CAAA;AAE1B,IAAA,IAAW,KAAK,GAAA;QACd,OAAO,IAAI,CAAC,MAAM,CAAC;KACpB;IACD,IAAW,KAAK,CAAC,CAAkB,EAAA;AACjC,QAAA,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;KACjB;AAED,IAAA,IAAW,SAAS,GAAA;AAClB,QAAA,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC;KACtC;AAED,IAAA,WAAA,CAAY,IAAgB,EAAA;QAC1B,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;QAClC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;AAChC,QAAA,IAAI,CAAC,KAAK,GAAG,IAAI,eAAe,CAC9B,IAAI,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,QAAQ,CAAC,EACzD,IAAI,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,QAAQ,CAAC,CACxD,CAAC;KACH;AAIF,CAAA;MAwBY,eAAe,CAAA;AAI1B,IAAA,IAAW,SAAS,GAAA;QAClB,OAAO,IAAI,CAAC,UAAU,CAAC;KACxB;AAED,IAAA,IAAW,OAAO,GAAA;QAChB,OAAO,IAAI,CAAC,QAAQ,CAAC;KACtB;IAED,WAAY,CAAA,SAAqB,EAAE,OAAmB,EAAA;AACpD,QAAA,IAAI,CAAC,UAAU,GAAG,SAAS,CAAC;AAC5B,QAAA,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC;KACzB;IAED,QAAQ,GAAA;AACN,QAAA,MAAM,MAAM,GAAe;AACzB,YAAA,WAAW,EAAE,CAAC;AACd,YAAA,OAAO,EAAE,CAAC;AACV,YAAA,OAAO,EAAE,CAAC;AACV,YAAA,KAAK,EAAE,CAAC;AACR,YAAA,IAAI,EAAE,CAAC;AACP,YAAA,MAAM,EAAE,CAAC;AACT,YAAA,KAAK,EAAE,CAAC;AACR,YAAA,KAAK,EAAE;AACL,gBAAA,WAAW,EAAE,CAAC;AACd,gBAAA,OAAO,EAAE,CAAC;AACV,gBAAA,OAAO,EAAE,CAAC;AACV,gBAAA,KAAK,EAAE,CAAC;AACR,gBAAA,IAAI,EAAE,CAAC;AACP,gBAAA,KAAK,EAAE,CAAC;AACR,gBAAA,MAAM,EAAE,CAAC;AACT,gBAAA,KAAK,EAAE,CAAC;AACT,aAAA;SACF,CAAC;QAEF,MAAM,UAAU,GAAG,IAAI,CAAC;AACxB,QAAA,MAAM,OAAO,GAAG,UAAU,GAAG,EAAE,CAAC;AAChC,QAAA,MAAM,QAAQ,GAAG,OAAO,GAAG,EAAE,CAAC;AAC9B,QAAA,MAAM,OAAO,GAAG,QAAQ,GAAG,EAAE,CAAC;AAC9B,QAAA,MAAM,QAAQ,GAAG,OAAO,GAAG,CAAC,CAAC;AAC7B,QAAA,MAAM,QAAQ,GAAG,MAAM,GAAG,OAAO,CAAC;AAClC,QAAA,MAAM,SAAS,GAAG,QAAQ,GAAG,EAAE,CAAC;QAChC,MAAM,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;QACjD,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;QAC7C,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,GAAG,SAAS,CAAC,CAAC;;AAE3C,QAAA,MAAM,CAAC,KAAK,CAAC,WAAW,GAAG,IAAI,CAAC;AAChC,QAAA,MAAM,CAAC,KAAK,CAAC,OAAO,GAAG,MAAM,CAAC,CAAC,IAAI,GAAG,UAAU,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;AAC9D,QAAA,MAAM,CAAC,KAAK,CAAC,OAAO,GAAG,MAAM,CAAC,CAAC,IAAI,GAAG,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;AAC3D,QAAA,MAAM,CAAC,KAAK,CAAC,KAAK,GAAG,MAAM,CAAC,CAAC,IAAI,GAAG,QAAQ,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;AAC1D,QAAA,MAAM,CAAC,KAAK,CAAC,IAAI,GAAG,MAAM,CAAC,CAAC,IAAI,GAAG,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;AACxD,QAAA,MAAM,CAAC,KAAK,CAAC,KAAK,GAAG,MAAM,CAAC,CAAC,IAAI,GAAG,QAAQ,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;;;;;;;;;AAS1D,QAAA,MAAM,CAAC,KAAK,CAAC,MAAM,GAAG,MAAM,CAAC,CAAC,IAAI,GAAG,SAAS,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;AAC5D,QAAA,MAAM,CAAC,KAAK,CAAC,KAAK,GAAG,MAAM,CAAC,CAAC,IAAI,GAAG,QAAQ,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;;QAE1D,MAAM,CAAC,WAAW,GAAG,MAAM,CAAC,KAAK,CAAC,WAAW,GAAG,IAAI,CAAC;QACrD,MAAM,CAAC,OAAO,GAAG,MAAM,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,GAAG,EAAE,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;QAChE,MAAM,CAAC,OAAO,GAAG,MAAM,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,GAAG,EAAE,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;QAChE,MAAM,CAAC,KAAK,GAAG,MAAM,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,GAAG,EAAE,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;;QAE5D,MAAM,CAAC,IAAI,GAAG,MAAM,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,GAAG,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;QAC5D,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,GAAG,EAAE,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;AAC9D,QAAA,MAAM,CAAC,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;AACrD,QAAA,OAAO,MAAM,CAAC;KACf;AAED,IAAA,SAAS,CAAC,IAAiB,GAAA,KAAK,EAAE,MAAM,GAAG,CAAC,EAAA;QAC1C,MAAM,MAAM,GAAiB,EAAE,CAAC;QAChC,IAAI,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC;AACnC,QAAA,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,GAAG,CAAC,EAAE;AAC5C,YAAA,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,EAAE;AAC5C,gBAAA,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACnB,aAAA;YACD,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;AAC/B,SAAA;AACD,QAAA,OAAO,MAAM,CAAC;KACf;AAiBF;;AC3aK,MAAO,gBAAiB,SAAQ,UAAU,CAAA;AAC9C;;AAEG;AACH,IAAA,WAAA,CAAY,MAAwB,EAAA;QAClC,KAAK,CAAC,MAAM,CAAC,CAAC;KACf;AAED,IAAA,MAAM,CAAC,KAAkB,EAAA;QACvB,OAAO,IAAI,UAAU,CACnB,IAAI,IAAI,CACN,KAAK,CAAC,IAAI,EACV,KAAK,CAAC,KAAK,GAAG,CAAC,EACf,KAAK,CAAC,IAAI,EACV,KAAK,CAAC,KAAK,IAAI,CAAC,EAChB,KAAK,CAAC,OAAO,IAAI,CAAC,EAClB,KAAK,CAAC,OAAO,IAAI,CAAC,EAClB,KAAK,CAAC,EAAE,IAAI,CAAC,CACd,EACD,IAAI,CACL,CAAC;KACH;IAED,IAAI,GAAA;AACF,QAAA,OAAO,UAAU,CAAC;KACnB;AAED,IAAA,UAAU,CAAC,IAAU,EAAA;AACnB,QAAA,OAAO,IAAI,CAAC,OAAO,EAAE,CAAC;KACvB;AAED,IAAA,SAAS,CAAC,IAAU,EAAA;QAClB,IAAI,MAAM,GAAG,CAAC,CAAC;QACf,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;AACzD,QAAA,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE;AACrB,YAAA,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC;AACX,SAAA;AACD,QAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,QAAQ,EAAE,EAAE,CAAC,EAAE,EAAE;AACxC,YAAA,MAAM,GAAG,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;AACxB,SAAA;AACD,QAAA,MAAM,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;AACzB,QAAA,OAAO,MAAM,CAAC;KACf;AAED,IAAA,SAAS,CAAC,IAAU,EAAA;AAClB,QAAA,OAAO,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;KAC1B;AAED,IAAA,UAAU,CAAC,IAAU,EAAA;AACnB,QAAA,MAAM,QAAQ,GAAG,IAAI,UAAU,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;AAC5D,QAAA,OAAO,IAAI,CAAC,IAAI,CACd,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,QAAQ,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,QAAQ,GAAG,QAAQ,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,IAAI,CAAC,CACzF,CAAC;KACH;AAED,IAAA,IAAI,CAAC,IAAU,EAAA;AACb,QAAA,OAAO,IAAI,CAAC,WAAW,EAAE,CAAC;KAC3B;AAED,IAAA,WAAW,CAAC,IAAU,EAAA;AACpB,QAAA,OAAO,IAAI,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;KAC5B;AAED,IAAA,GAAG,CAAC,IAAU,EAAE,IAAc,EAAE,MAAc,EAAA;AAC5C,QAAA,IAAI,KAAK,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC;AAC3B,QAAA,QAAQ,IAAI;AACV,YAAA,KAAK,QAAQ;AACX,gBAAA,KAAK,IAAI,IAAI,GAAG,MAAM,CAAC;gBACvB,MAAM;AACR,YAAA,KAAK,QAAQ;AACX,gBAAA,KAAK,IAAI,KAAK,GAAG,MAAM,CAAC;gBACxB,MAAM;AACR,YAAA,KAAK,MAAM;AACT,gBAAA,KAAK,IAAI,OAAO,GAAG,MAAM,CAAC;gBAC1B,MAAM;YACR,KAAK,OAAO,EAAE;AACZ,gBAAA,MAAM,CAAC,GAAG,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC;AAC1B,gBAAA,IAAI,EAAE,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC;AACzB,gBAAA,IAAI,EAAE,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;gBAC5B,EAAE,GAAG,CAAC,EAAE,GAAG,MAAM,IAAI,EAAE,CAAC;gBACxB,IAAI,CAAC,GAAG,EAAE,EAAE;AACV,oBAAA,EAAE,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,GAAG,MAAM,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC;oBAChD,EAAE,IAAI,EAAE,CAAC;AACV,iBAAA;;AAAM,oBAAA,EAAE,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,GAAG,MAAM,GAAG,EAAE,IAAI,EAAE,CAAC;AAClD,gBAAA,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;AACf,gBAAA,CAAC,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;AAClB,gBAAA,KAAK,GAAG,CAAC,CAAC,OAAO,EAAE,CAAC;gBACpB,MAAM;AACP,aAAA;AACD,YAAA,KAAK,MAAM;AACT,gBAAA,KAAK,IAAI,CAAC,GAAG,QAAQ,GAAG,MAAM,CAAC;gBAC/B,MAAM;YACR,KAAK,MAAM,EAAE;AACX,gBAAA,MAAM,EAAE,GAAG,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC;gBAC3B,EAAE,CAAC,WAAW,CAAC,EAAE,CAAC,WAAW,EAAE,GAAG,MAAM,CAAC,CAAC;AAC1C,gBAAA,KAAK,GAAG,EAAE,CAAC,OAAO,EAAE,CAAC;gBACrB,MAAM;AACP,aAAA;AACD,YAAA,KAAK,KAAK,CAAC;AACX,YAAA;AACE,gBAAA,KAAK,IAAI,QAAQ,GAAG,MAAM,CAAC;AAC9B,SAAA;QACD,OAAO,IAAI,UAAU,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,EAAE,IAAI,CAAC,CAAC;KAC9C;AAED,IAAA,GAAG,CAAC,IAAU,EAAE,IAAc,EAAE,KAAa,EAAA;QAC3C,MAAM,KAAK,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;AACvC,QAAA,QAAQ,IAAI;AACV,YAAA,KAAK,QAAQ;gBACX,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,QAAQ,EAAE,EAAE,KAAK,CAAC,UAAU,EAAE,EAAE,KAAK,EAAE,KAAK,CAAC,eAAe,EAAE,CAAC,CAAC;gBACrF,MAAM;AACR,YAAA,KAAK,QAAQ;gBACX,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,QAAQ,EAAE,EAAE,KAAK,EAAE,KAAK,CAAC,UAAU,EAAE,EAAE,KAAK,CAAC,eAAe,EAAE,CAAC,CAAC;gBACrF,MAAM;AACR,YAAA,KAAK,MAAM;gBACT,KAAK,CAAC,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC,UAAU,EAAE,EAAE,KAAK,CAAC,UAAU,EAAE,EAAE,KAAK,CAAC,eAAe,EAAE,CAAC,CAAC;gBACvF,MAAM;YACR,QAAQ;AACR,YAAA,KAAK,KAAK;AACR,gBAAA,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;gBACrB,MAAM;AACR,YAAA,KAAK,MAAM;gBACT,MAAM;AACR,YAAA,KAAK,OAAO;AACV,gBAAA,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC;gBACvC,MAAM;AACR,YAAA,KAAK,MAAM;AACT,gBAAA,KAAK,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;gBACzB,MAAM;AACT,SAAA;AACD,QAAA,OAAO,IAAI,UAAU,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;KACpC;IAED,OAAO,CAAC,IAAU,EAAE,IAAc,EAAA;QAChC,MAAM,KAAK,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;AACvC,QAAA,QAAQ,IAAI;AACV,YAAA,KAAK,QAAQ;gBACX,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,QAAQ,EAAE,EAAE,KAAK,CAAC,UAAU,EAAE,EAAE,KAAK,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC,CAAC;AAC5E,gBAAA,OAAO,IAAI,UAAU,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;AACrC,YAAA,KAAK,QAAQ;AACX,gBAAA,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,QAAQ,EAAE,EAAE,KAAK,CAAC,UAAU,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;AAC3D,gBAAA,OAAO,IAAI,UAAU,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;AACrC,YAAA,KAAK,MAAM;AACT,gBAAA,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,QAAQ,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;AAC1C,gBAAA,OAAO,IAAI,UAAU,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;YACrC,QAAQ;AACR,YAAA,KAAK,KAAK;gBACR,KAAK,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;AAC3B,gBAAA,OAAO,IAAI,UAAU,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;YACrC,KAAK,MAAM,EAAE;gBACX,MAAM,KAAK,GAAG,CAAC,CAAC;AAChB,gBAAA,MAAM,KAAK,GAAG,KAAK,IAAI,CAAC,GAAG,KAAK,GAAG,CAAC,CAAC;AACrC,gBAAA,MAAM,GAAG,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC;gBAC3B,MAAM,IAAI,GAAG,KAAK,CAAC,OAAO,EAAE,GAAG,GAAG,IAAI,KAAK,GAAG,GAAG,GAAG,KAAK,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC;AACvE,gBAAA,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;AACpB,gBAAA,OAAO,IAAI,UAAU,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;AACnD,aAAA;AACD,YAAA,KAAK,OAAO;AACV,gBAAA,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;AACjB,gBAAA,OAAO,IAAI,UAAU,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;AACpD,YAAA,KAAK,MAAM;AACT,gBAAA,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;AAClB,gBAAA,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;AACjB,gBAAA,OAAO,IAAI,UAAU,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;AACrD,SAAA;KACF;IAED,KAAK,CAAC,IAAU,EAAE,IAAc,EAAA;QAC9B,MAAM,KAAK,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;AACvC,QAAA,QAAQ,IAAI;AACV,YAAA,KAAK,QAAQ;gBACX,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,QAAQ,EAAE,EAAE,KAAK,CAAC,UAAU,EAAE,EAAE,KAAK,CAAC,UAAU,EAAE,EAAE,GAAG,CAAC,CAAC;AAC9E,gBAAA,OAAO,IAAI,UAAU,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;AACrC,YAAA,KAAK,QAAQ;AACX,gBAAA,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,QAAQ,EAAE,EAAE,KAAK,CAAC,UAAU,EAAE,EAAE,EAAE,EAAE,GAAG,CAAC,CAAC;AAC9D,gBAAA,OAAO,IAAI,UAAU,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;AACrC,YAAA,KAAK,MAAM;AACT,gBAAA,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,QAAQ,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,CAAC,CAAC;AAC9C,gBAAA,OAAO,IAAI,UAAU,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;YACrC,QAAQ;AACR,YAAA,KAAK,KAAK;gBACR,KAAK,CAAC,QAAQ,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,CAAC,CAAC;AAChC,gBAAA,OAAO,IAAI,UAAU,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;AACrC,YAAA,KAAK,MAAM;gBACT,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;YAC/D,KAAK,OAAO,EAAE;AACZ,gBAAA,MAAM,OAAO,GAAG,IAAI,IAAI,EAAE,CAAC;gBAC3B,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC;gBACxC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,CAAC;AACtC,gBAAA,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;AACnB,gBAAA,OAAO,IAAI,UAAU,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;;AAEnD,aAAA;AACD,YAAA,KAAK,MAAM;AACT,gBAAA,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;AACnB,gBAAA,OAAO,IAAI,UAAU,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;AACrD,SAAA;KACF;AAED,IAAA,MAAM,CAAC,IAAU,EAAA;AACf,QAAA,IAAI,QAAQ,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;AACnD,QAAA,OAAO,QAAQ,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC;KACjC;AAED,IAAA,KAAK,CAAC,KAAa,EAAA;QACjB,OAAO,IAAI,UAAU,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,EAAE,IAAI,CAAC,CAAC;KAC9C;AACF;;AC/MK,MAAO,cAAe,SAAQ,UAAU,CAAA;AAC5C;;AAEG;AACH,IAAA,WAAA,CAAY,MAAwB,EAAA;QAClC,KAAK,CAAC,MAAM,CAAC,CAAC;AAGhB;;AAEA;AACQ,QAAA,IAAA,CAAA,MAAM,GAAG;AACf,YAAA,CAAC,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;YACrG,IAAI;SACL,CAAC;KARD;AAUD,IAAA,MAAM,CAAC,KAAkB,EAAA;AACvB,QAAA,MAAM,CAAC,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;QAChE,OAAO,IAAI,UAAU,CACnB,IAAI,IAAI,CACN,CAAC,CAAC,WAAW,EAAE,EACf,CAAC,CAAC,QAAQ,EAAE,EACZ,CAAC,CAAC,OAAO,EAAE,EACX,KAAK,CAAC,KAAK,IAAI,CAAC,EAChB,KAAK,CAAC,OAAO,IAAI,CAAC,EAClB,KAAK,CAAC,OAAO,IAAI,CAAC,EAClB,KAAK,CAAC,EAAE,IAAI,CAAC,CACd,EACD,IAAI,CACL,CAAC;KACH;IAED,IAAI,GAAA;AACF,QAAA,OAAO,QAAQ,CAAC;KACjB;AAED,IAAA,UAAU,CAAC,IAAU,EAAA;QACnB,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC;KACjC;AAED,IAAA,SAAS,CAAC,IAAU,EAAA;QAClB,MAAM,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;AAC/B,QAAA,OAAO,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,GAAG,CAAC;KAClF;AAED,IAAA,SAAS,CAAC,IAAU,EAAA;AAClB,QAAA,OAAO,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;KACnD;AAED,IAAA,UAAU,CAAC,IAAU,EAAA;;AAEnB,QAAA,MAAM,QAAQ,GAAG,IAAI,UAAU,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;AAC5D,QAAA,OAAO,IAAI,CAAC,IAAI,CACd,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,QAAQ,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,QAAQ,GAAG,QAAQ,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,IAAI,CAAC,CACzF,CAAC;KACH;AAED,IAAA,IAAI,CAAC,IAAU,EAAA;QACb,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC;KAClC;AAED,IAAA,WAAW,CAAC,IAAU,EAAA;QACpB,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC;KACnC;AAED,IAAA,GAAG,CAAC,IAAU,EAAE,IAAc,EAAE,MAAc,EAAA;AAC5C,QAAA,IAAI,KAAK,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC;AAC3B,QAAA,QAAQ,IAAI;AACV,YAAA,KAAK,QAAQ;AACX,gBAAA,KAAK,IAAI,IAAI,GAAG,MAAM,CAAC;gBACvB,MAAM;AACR,YAAA,KAAK,QAAQ;AACX,gBAAA,KAAK,IAAI,KAAK,GAAG,MAAM,CAAC;gBACxB,MAAM;AACR,YAAA,KAAK,MAAM;AACT,gBAAA,KAAK,IAAI,OAAO,GAAG,MAAM,CAAC;gBAC1B,MAAM;YACR,KAAK,OAAO,EAAE;AACZ,gBAAA,MAAM,CAAC,GAAG,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC;gBAC1B,IAAI,EAAE,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;gBAC/B,IAAI,EAAE,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;gBAChC,IAAI,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACzB,gBAAA,MAAM,EAAE,GAAG,EAAE,GAAG,MAAM,CAAC;gBACvB,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC;gBAC7C,EAAE,IAAI,EAAE,CAAC;AACT,gBAAA,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC;AAClB,gBAAA,MAAM,EAAE,GAAG,IAAI,CAAC,WAAW,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;gBACxC,CAAC,CAAC,WAAW,CAAC,EAAE,CAAC,WAAW,EAAE,CAAC,CAAC;gBAChC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,QAAQ,EAAE,CAAC,CAAC;gBAC1B,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,CAAC;AACxB,gBAAA,KAAK,GAAG,CAAC,CAAC,OAAO,EAAE,CAAC;gBACpB,MAAM;AACP,aAAA;AACD,YAAA,KAAK,MAAM;AACT,gBAAA,KAAK,IAAI,CAAC,GAAG,QAAQ,GAAG,MAAM,CAAC;gBAC/B,MAAM;YACR,KAAK,MAAM,EAAE;;;;;AAKX,gBAAA,MAAM,CAAC,GAAG,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC;gBAC1B,IAAI,EAAE,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;gBAC/B,IAAI,EAAE,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;gBAChC,IAAI,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACzB,gBAAA,MAAM,EAAE,GAAG,IAAI,CAAC,WAAW,CAAC,EAAE,GAAG,MAAM,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;gBACjD,CAAC,CAAC,WAAW,CAAC,EAAE,CAAC,WAAW,EAAE,CAAC,CAAC;gBAChC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,QAAQ,EAAE,CAAC,CAAC;gBAC1B,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,CAAC;AACxB,gBAAA,KAAK,GAAG,CAAC,CAAC,OAAO,EAAE,CAAC;gBACpB,MAAM;AACP,aAAA;AACD,YAAA,KAAK,KAAK,CAAC;AACX,YAAA;AACE,gBAAA,KAAK,IAAI,QAAQ,GAAG,MAAM,CAAC;AAC9B,SAAA;QACD,OAAO,IAAI,UAAU,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,EAAE,IAAI,CAAC,CAAC;KAC9C;AAED,IAAA,GAAG,CAAC,IAAU,EAAE,IAAc,EAAE,KAAa,EAAA;QAC3C,MAAM,KAAK,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;QACvC,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;AACpC,QAAA,QAAQ,IAAI;AACV,YAAA,KAAK,QAAQ;gBACX,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,QAAQ,EAAE,EAAE,KAAK,CAAC,UAAU,EAAE,EAAE,KAAK,EAAE,KAAK,CAAC,eAAe,EAAE,CAAC,CAAC;gBACrF,MAAM;AACR,YAAA,KAAK,QAAQ;gBACX,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,QAAQ,EAAE,EAAE,KAAK,EAAE,KAAK,CAAC,UAAU,EAAE,EAAE,KAAK,CAAC,eAAe,EAAE,CAAC,CAAC;gBACrF,MAAM;AACR,YAAA,KAAK,MAAM;gBACT,KAAK,CAAC,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC,UAAU,EAAE,EAAE,KAAK,CAAC,UAAU,EAAE,EAAE,KAAK,CAAC,eAAe,EAAE,CAAC,CAAC;gBACvF,MAAM;YACR,QAAQ;YACR,KAAK,KAAK,EAAE;AACV,gBAAA,MAAM,KAAK,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;gBAC/D,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;gBAC/B,MAAM;AACP,aAAA;AACD,YAAA,KAAK,MAAM;gBACT,MAAM;YACR,KAAK,OAAO,EAAE;AACZ,gBAAA,MAAM,MAAM,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC;gBAC9D,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC;gBAClC,MAAM;AACP,aAAA;YACD,KAAK,MAAM,EAAE;AACX,gBAAA,MAAM,MAAM,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC;gBAC/D,KAAK,CAAC,WAAW,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC,CAAC;gBACxC,MAAM;AACP,aAAA;AACF,SAAA;AACD,QAAA,OAAO,IAAI,UAAU,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;KACpC;IAED,OAAO,CAAC,IAAU,EAAE,IAAc,EAAA;QAChC,MAAM,KAAK,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;AACvC,QAAA,QAAQ,IAAI;AACV,YAAA,KAAK,QAAQ;gBACX,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,QAAQ,EAAE,EAAE,KAAK,CAAC,UAAU,EAAE,EAAE,KAAK,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC,CAAC;AAC5E,gBAAA,OAAO,IAAI,UAAU,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;AACrC,YAAA,KAAK,QAAQ;AACX,gBAAA,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,QAAQ,EAAE,EAAE,KAAK,CAAC,UAAU,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;AAC3D,gBAAA,OAAO,IAAI,UAAU,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;AACrC,YAAA,KAAK,MAAM;AACT,gBAAA,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,QAAQ,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;AAC1C,gBAAA,OAAO,IAAI,UAAU,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;YACrC,QAAQ;AACR,YAAA,KAAK,KAAK;gBACR,KAAK,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;AAC3B,gBAAA,OAAO,IAAI,UAAU,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;AACrC,YAAA,KAAK,MAAM;gBACT,OAAO,IAAI,UAAU,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;YAC3F,KAAK,OAAO,EAAE;gBACZ,MAAM,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBAC3B,MAAM,EAAE,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;AAClC,gBAAA,MAAM,KAAK,GAAG,IAAI,CAAC,WAAW,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC;AAC1C,gBAAA,OAAO,IAAI,UAAU,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;AACnD,aAAA;YACD,KAAK,MAAM,EAAE;gBACX,MAAM,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC3B,gBAAA,MAAM,KAAK,GAAG,IAAI,CAAC,WAAW,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;AACzC,gBAAA,OAAO,IAAI,UAAU,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;AACnD,aAAA;AACF,SAAA;KACF;IAED,KAAK,CAAC,IAAU,EAAE,IAAc,EAAA;QAC9B,MAAM,KAAK,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;AACvC,QAAA,QAAQ,IAAI;AACV,YAAA,KAAK,QAAQ;gBACX,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,QAAQ,EAAE,EAAE,KAAK,CAAC,UAAU,EAAE,EAAE,KAAK,CAAC,UAAU,EAAE,EAAE,GAAG,CAAC,CAAC;AAC9E,gBAAA,OAAO,IAAI,UAAU,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;AACrC,YAAA,KAAK,QAAQ;AACX,gBAAA,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,QAAQ,EAAE,EAAE,KAAK,CAAC,UAAU,EAAE,EAAE,EAAE,EAAE,GAAG,CAAC,CAAC;AAC9D,gBAAA,OAAO,IAAI,UAAU,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;AACrC,YAAA,KAAK,MAAM;AACT,gBAAA,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,QAAQ,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,CAAC,CAAC;AAC9C,gBAAA,OAAO,IAAI,UAAU,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;YACrC,QAAQ;AACR,YAAA,KAAK,KAAK;gBACR,KAAK,CAAC,QAAQ,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,CAAC,CAAC;AAChC,gBAAA,OAAO,IAAI,UAAU,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;YACrC,KAAK,MAAM,EAAE;gBACX,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;AAC9D,aAAA;YACD,KAAK,OAAO,EAAE;gBACZ,MAAM,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBAC3B,MAAM,EAAE,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;gBAClC,MAAM,EAAE,GAAG,IAAI,CAAC,kBAAkB,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;AAC3C,gBAAA,MAAM,KAAK,GAAG,IAAI,CAAC,WAAW,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;AAC3C,gBAAA,OAAO,IAAI,UAAU,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;AACjD,aAAA;YACD,KAAK,MAAM,EAAE;gBACX,MAAM,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC3B,gBAAA,MAAM,KAAK,GAAG,IAAI,CAAC,WAAW,CAAC,EAAE,EAAE,EAAE,EAAE,IAAI,CAAC,kBAAkB,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC;AACxE,gBAAA,OAAO,IAAI,UAAU,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;AACjD,aAAA;AACF,SAAA;KACF;AAED,IAAA,KAAK,CAAC,KAAa,EAAA;QACjB,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC;QAC9D,MAAM,IAAI,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;QAC9E,IAAI,CAAC,IAAI,IAAI;YAAE,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;QACxC,IAAI,CAAC,IAAI,IAAI;YAAE,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;QAC1C,IAAI,CAAC,IAAI,IAAI;YAAE,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;QAC1C,IAAI,EAAE,IAAI,IAAI;YAAE,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;AAChD,QAAA,OAAO,IAAI,UAAU,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;KACnC;AAED;;AAEA;AACA,IAAA,SAAS,CAAC,IAAU,EAAA;AAClB,QAAA,MAAM,EAAE,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC;QAC1B,MAAM,EAAE,GAAG,IAAI,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;AAC/B,QAAA,MAAM,EAAE,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;AAC9B,QAAA,MAAM,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC;QACzC,OAAO;YACL,IAAI,EAAE,CAAC,CAAC,EAAE;YACV,KAAK,EAAE,CAAC,CAAC,EAAE;YACX,GAAG,EAAE,CAAC,CAAC,EAAE;SACV,CAAC;KACH;AAED;;AAEE;AACF,IAAA,WAAW,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAA;AACpB,QAAA,MAAM,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC;AACzC,QAAA,OAAO,IAAI,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;KACvC;AAED;;AAEE;AACF,IAAA,kBAAkB,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAA;AAC3B,QAAA,OAAO,EAAE,IAAI,CAAC,EAAE,IAAI,EAAE,IAAI,IAAI,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,IAAI,CAAC,kBAAkB,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;KAC3G;AAED;;AAEE;AACF,IAAA,iBAAiB,CAAC,EAAE,EAAA;QAClB,OAAO,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC;KAClC;AAED;;AAEE;IACF,kBAAkB,CAAC,EAAE,EAAE,EAAE,EAAA;QACvB,IAAI,EAAE,IAAI,CAAC;AAAE,YAAA,OAAO,EAAE,CAAC;QACvB,IAAI,EAAE,IAAI,EAAE;AAAE,YAAA,OAAO,EAAE,CAAC;AACxB,QAAA,IAAI,IAAI,CAAC,iBAAiB,CAAC,EAAE,CAAC;AAAE,YAAA,OAAO,EAAE,CAAC;AAC1C,QAAA,OAAO,EAAE,CAAC;KACX;AAED;;;;;;AAMG;AACK,IAAA,UAAU,CAAC,EAAU,EAAA;QAC3B,IAAI,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,EACzB,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EACnB,EAAE,EACF,IAAI,EACJ,IAAI,EACJ,CAAC,EACD,CAAC,CAAC;AAEJ,QAAA,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,IAAI,CAAC,MAAM,CAAC,EAAE,GAAG,CAAC,CAAC;AAAE,YAAA,MAAM,IAAI,KAAK,CAAC,uBAAuB,GAAG,EAAE,CAAC,CAAC;QAExF,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,IAAI,CAAC,EAAE;AAC1B,YAAA,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;AACpB,YAAA,IAAI,GAAG,EAAE,GAAG,EAAE,CAAC;YACf,IAAI,EAAE,GAAG,EAAE;gBAAE,MAAM;YACnB,EAAE,GAAG,EAAE,CAAC;AACT,SAAA;AACD,QAAA,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC;AAEZ,QAAA,IAAI,IAAI,GAAG,CAAC,GAAG,CAAC;AAAE,YAAA,CAAC,GAAG,CAAC,GAAG,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,EAAE,CAAC;QAC7D,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;AAC5C,QAAA,IAAI,IAAI,KAAK,CAAC,CAAC,EAAE;YACf,IAAI,GAAG,CAAC,CAAC;AACV,SAAA;AAED,QAAA,OAAO,IAAI,CAAC;KACb;IAEO,MAAM,CAAC,EAAU,EAAE,WAAoB,EAAA;AAC7C,QAAA,IAAI,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,EACzB,EAAE,GAAG,EAAE,GAAG,GAAG,EACb,KAAK,GAAG,CAAC,EAAE,EACX,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EACnB,EAAE,EACF,IAAI,EACJ,IAAI,EACJ,KAAK,EACL,KAAK,EACL,CAAC,EACD,CAAC,CAAC;AAEJ,QAAA,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,IAAI,CAAC,MAAM,CAAC,EAAE,GAAG,CAAC,CAAC;AAAE,YAAA,MAAM,IAAI,KAAK,CAAC,uBAAuB,GAAG,EAAE,CAAC,CAAC;;QAGxF,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,IAAI,CAAC,EAAE;AAC1B,YAAA,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;AACpB,YAAA,IAAI,GAAG,EAAE,GAAG,EAAE,CAAC;YACf,IAAI,EAAE,GAAG,EAAE;gBAAE,MAAM;AACnB,YAAA,KAAK,GAAG,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;YACzE,EAAE,GAAG,EAAE,CAAC;AACT,SAAA;AACD,QAAA,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC;;;AAIZ,QAAA,KAAK,GAAG,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;AACvE,QAAA,IAAI,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,IAAI,GAAG,CAAC,KAAK,CAAC;YAAE,KAAK,IAAI,CAAC,CAAC;;AAG3D,QAAA,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,GAAG,GAAG,CAAC;;AAGzE,QAAA,KAAK,GAAG,EAAE,GAAG,KAAK,GAAG,KAAK,CAAC;;AAG3B,QAAA,IAAI,WAAW;YAAE,OAAO,EAAE,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC;;AAGjD,QAAA,IAAI,IAAI,GAAG,CAAC,GAAG,CAAC;AAAE,YAAA,CAAC,GAAG,CAAC,GAAG,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,EAAE,CAAC;QAC7D,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;AAC5C,QAAA,IAAI,IAAI,KAAK,CAAC,CAAC,EAAE;YACf,IAAI,GAAG,CAAC,CAAC;AACV,SAAA;QAED,OAAO;AACL,YAAA,IAAI,EAAE,IAAI;AACV,YAAA,EAAE,EAAE,EAAE;AACN,YAAA,KAAK,EAAE,KAAK;SACb,CAAC;KACH;AAEO,IAAA,GAAG,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAA;QACpB,IAAI,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;AAC9B,QAAA,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,GAAG,CAAC,IAAI,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;KACzF;AAEO,IAAA,GAAG,CAAC,GAAW,EAAA;QACrB,IAAI,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE;AACvB,QAAA,EAAE,GAAG,EAAE,GAAG,GAAG,EACb,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,KAAK,CAAC,EAC1B,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,EAChC,EAAE,EACF,EAAE,EACF,CAAC,CAAC;;AAGJ,QAAA,CAAC,GAAG,GAAG,GAAG,KAAK,CAAC;QAChB,IAAI,CAAC,IAAI,CAAC,EAAE;YACV,IAAI,CAAC,IAAI,GAAG,EAAE;;gBAEZ,EAAE,GAAG,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;gBACzB,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC;gBACzB,OAAO;AACL,oBAAA,EAAE,EAAE,EAAE;AACN,oBAAA,EAAE,EAAE,EAAE;AACN,oBAAA,EAAE,EAAE,EAAE;iBACP,CAAC;AACH,aAAA;AAAM,iBAAA;;gBAEL,CAAC,IAAI,GAAG,CAAC;AACV,aAAA;AACF,SAAA;AAAM,aAAA;;YAEL,EAAE,IAAI,CAAC,CAAC;YACR,CAAC,IAAI,GAAG,CAAC;AACT,YAAA,IAAI,CAAC,CAAC,IAAI,KAAK,CAAC;gBAAE,CAAC,IAAI,CAAC,CAAC;AAC1B,SAAA;QACD,EAAE,GAAG,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QACzB,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC;QACzB,OAAO;AACL,YAAA,EAAE,EAAE,EAAE;AACN,YAAA,EAAE,EAAE,EAAE;AACN,YAAA,EAAE,EAAE,EAAE;SACP,CAAC;KACH;AAEO,IAAA,GAAG,CAAC,EAAU,EAAE,EAAU,EAAE,EAAU,EAAA;QAC5C,IAAI,CAAC,GACH,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,MAAM,IAAI,IAAI,EAAE,CAAC,CAAC;AACvD,YAAA,IAAI,CAAC,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YAC3C,EAAE;AACF,YAAA,QAAQ,CAAC;AACX,QAAA,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,GAAG,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC,EAAE,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,GAAG,CAAC;AAChF,QAAA,OAAO,CAAC,CAAC;KACV;AAEO,IAAA,GAAG,CAAC,GAAW,EAAA;QACrB,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;AACrB,QAAA,CAAC,GAAG,CAAC,GAAG,GAAG,GAAG,SAAS,CAAC;AACxB,QAAA,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,GAAG,GAAG,SAAS,EAAE,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC;QAC1E,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC;AAC7C,QAAA,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC;AACvC,QAAA,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC;QACxC,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,CAAC;QACtD,OAAO;AACL,YAAA,EAAE,EAAE,EAAE;AACN,YAAA,EAAE,EAAE,EAAE;AACN,YAAA,EAAE,EAAE,EAAE;SACP,CAAC;KACH;AAEO,IAAA,WAAW,CAAC,EAAU,EAAE,EAAU,EAAE,EAAU,EAAA;QACpD,IAAI,SAAS,GAAG,IAAI,CAAC,mBAAmB,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;AAE1E,QAAA,IAAI,kBAAkB,GAAG,SAAS,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,SAAS,GAAG,CAAC,CAAC,CAAC;AAC/D,QAAA,IAAI,gBAAgB,GAAG,CAAC,GAAG,kBAAkB,CAAC;QAE9C,OAAO;AACL,YAAA,QAAQ,EAAE,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,kBAAkB,CAAC,CAAC;AAC7D,YAAA,MAAM,EAAE,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,gBAAgB,CAAC,CAAC;SAC1D,CAAC;KACH;AAEO,IAAA,mBAAmB,CACzB,EAAU,EACV,EAAU,EACV,EAAU,EACV,CAAA,GAAY,CAAC,EACb,IAAY,CAAC,EACb,IAAY,CAAC,EACb,KAAa,CAAC,EAAA;AAEd,QAAA,IAAI,qBAAqB,GAAG,IAAI,CAAC,WAAW,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;AAEzD,QAAA,OAAO,IAAI,IAAI,CACb,qBAAqB,CAAC,WAAW,EAAE,EACnC,qBAAqB,CAAC,QAAQ,EAAE,GAAG,CAAC,EACpC,qBAAqB,CAAC,OAAO,EAAE,EAC/B,CAAC,IAAI,CAAC,EACN,CAAC,IAAI,CAAC,EACN,CAAC,IAAI,CAAC,EACN,EAAE,IAAI,CAAC,CACR,CAAC;KACH;AAED;;AAEE;IAEM,GAAG,CAAC,CAAS,EAAE,CAAS,EAAA;AAC9B,QAAA,OAAO,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;KAClB;IAEO,GAAG,CAAC,CAAS,EAAE,CAAS,EAAA;QAC9B,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;KAC1B;AACF;;MCpdY,kBAAkB,GAAG,IAAI,cAAc,CAAmB,oBAAoB,EAAE;AAC3F,IAAA,UAAU,EAAE,MAAM;IAClB,OAAO,EAAE,MAAK;AACZ,QAAA,MAAM,MAAM,GAAG,MAAM,CAAC,gBAAgB,CAAC,CAAC;AACxC,QAAA,GAAG,CAAC,MAAM,EAAE,UAAU,EAAE,kBAAkB,CAAC,CAAC;AAC5C,QAAA,OAAO,uBAAuB,CAAC;KAChC;AACF,CAAA,EAAE;AAEU,MAAA,uBAAuB,GAAqB;AACvD,IAAA,QAAQ,EAAE,UAAU;AACpB,IAAA,SAAS,EAAE;QACT,QAAQ,EAAE,IAAI,gBAAgB,CAAC;YAC7B,QAAQ,EAAE,CAAC,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAE,WAAW,EAAE,UAAU,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM;AACnG,gBAAA,IAAI,EAAE,CAAC;gBACP,KAAK,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC;AACxB,gBAAA,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC;AACb,aAAA,CAAC,CAAC;AACH,YAAA,UAAU,EAAE;gBACV,SAAS;gBACT,UAAU;gBACV,OAAO;gBACP,OAAO;gBACP,KAAK;gBACL,MAAM;gBACN,MAAM;gBACN,QAAQ;gBACR,WAAW;gBACX,SAAS;gBACT,UAAU;gBACV,UAAU;AACX,aAAA,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;AACnE,YAAA,OAAO,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;AACf,YAAA,OAAO,EAAE;AACP,gBAAA,SAAS,EAAE,YAAY;AACvB,gBAAA,SAAS,EAAE,OAAO;AAClB,gBAAA,aAAa,EAAE,kBAAkB;AACjC,gBAAA,WAAW,EAAE,kBAAkB;AAC/B,gBAAA,WAAW,EAAE,OAAO;AACpB,gBAAA,eAAe,EAAE,wBAAwB;AAC1C,aAAA;SACF,CAAC;QACF,MAAM,EAAE,IAAI,cAAc,CAAC;AACzB,YAAA,UAAU,EAAE,oEAAoE;iBAC7E,KAAK,CAAC,GAAG,CAAC;iBACV,GAAG,CAAC,CAAC,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;AACpD,YAAA,QAAQ,EAAE,mDAAmD;iBAC1D,KAAK,CAAC,GAAG,CAAC;iBACV,GAAG,CAAC,CAAC,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;AACvD,YAAA,OAAO,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;AACf,YAAA,OAAO,EAAE;AACP,gBAAA,SAAS,EAAE,YAAY;AACvB,gBAAA,SAAS,EAAE,OAAO;AAClB,gBAAA,aAAa,EAAE,kBAAkB;AACjC,gBAAA,WAAW,EAAE,kBAAkB;AAC/B,gBAAA,WAAW,EAAE,OAAO;AACpB,gBAAA,eAAe,EAAE,wBAAwB;AAC1C,aAAA;SACF,CAAC;AACH,KAAA;EACD;AAIc,SAAA,cAAc,CAAC,MAAA,GAAgC,EAAE,EAAA;AAC/D,IAAA,MAAM,MAAM,GAAG;AACb,QAAA,GAAG,uBAAuB;AAC1B,QAAA,GAAG,MAAM;KACV,CAAC;AACF,IAAA,OAAO,MAAM,CAAC;AAChB;;MClEa,uBAAuB,CAAA;AAClC,IAAA,WAAW,CAAC,OAA6C,EAAA;AACvD,QAAA,OAAO,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;KAC5B;AACF,CAAA;MAEY,2BAA2B,GAAG,IAAI,cAAc,CAC3D,6BAA6B,EAC7B;AACE,IAAA,UAAU,EAAE,MAAM;IAClB,OAAO,EAAE,MAAK;QACZ,OAAO,IAAI,uBAAuB,EAAE,CAAC;KACtC;AACF,CAAA;;MCxBU,iBAAiB,CAAA;AAI5B,IAAA,IAAW,QAAQ,GAAA;AACjB,QAAA,OAAO,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;KACtD;AAID,IAAA,IAAW,QAAQ,GAAA;QACjB,OAAO,IAAI,CAAC,SAAS,CAAC;KACvB;AAED,IAAA,WAAA,GAAA;AAbQ,QAAA,IAAA,CAAA,OAAO,GAAqB,MAAM,CAAC,kBAAkB,CAAC,CAAC;AACvD,QAAA,IAAA,CAAA,eAAe,GAAG,MAAM,CAAC,2BAA2B,CAAC,CAAC;AAMvD,QAAA,IAAA,CAAA,iBAAiB,GAA6B,IAAI,OAAO,EAAmB,CAAC;QAC5E,IAAS,CAAA,SAAA,GAAoB,EAAE,CAAC;QAMtC,IAAI,CAAC,YAAY,EAAE,CAAC;KACrB;AAEM,IAAA,YAAY,CAAC,OAAiC,EAAA;AACnD,QAAA,OAAO,IAAI,CAAC,eAAe,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,KAAI;AAC9D,YAAA,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;YACvB,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;AAC9C,SAAC,CAAC,CAAC;KACJ;IAIM,MAAM,CAAC,KAAyB,EAAE,YAAqB,EAAA;AAC5D,QAAA,MAAM,QAAQ,GAAG,YAAY,GAAG,IAAI,CAAC,eAAe,CAAC,YAAY,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC;QACnF,IAAI,KAAK,YAAY,IAAI,EAAE;AACzB,YAAA,OAAO,IAAI,UAAU,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;AACxC,SAAA;AAAM,aAAA,IAAI,KAAK,EAAE,IAAI,IAAI,KAAK,EAAE,KAAK,EAAE;AACtC,YAAA,OAAO,QAAQ,CAAC,MAAM,CAAC,KAAoB,CAAC,CAAC;AAC9C,SAAA;AACD,QAAA,OAAO,IAAI,CAAC,GAAG,EAAE,CAAC;KACnB;AAEM,IAAA,GAAG,CAAC,YAAqB,EAAA;AAC9B,QAAA,MAAM,QAAQ,GAAG,YAAY,GAAG,IAAI,CAAC,eAAe,CAAC,YAAY,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC;QACnF,OAAO,IAAI,UAAU,CAAC,IAAI,IAAI,EAAE,EAAE,QAAQ,CAAC,CAAC;KAC7C;AAEM,IAAA,eAAe,CAAC,IAAY,EAAA;QACjC,MAAM,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;QACvC,IAAI,CAAC,CAAC,EAAE;AACN,YAAA,OAAO,CAAC,KAAK,CAAC,IAAI,IAAI,CAAA,+BAAA,CAAiC,CAAC,CAAC;YACzD,OAAO,IAAI,CAAC,QAAQ,CAAC;AACtB,SAAA;AACD,QAAA,OAAO,CAAC,CAAC;KACV;IAEM,OAAO,CAAC,KAAiC,EAAE,YAAqB,EAAA;;;;;AAMrE,QAAA,MAAM,WAAW,GAAG,CAAC,GAAG,KAAI;AAC1B,YAAA,IAAI,CAAC,+CAA+C,CAAC,IAAI,CAAC,GAAG,CAAC;AAAE,gBAAA,OAAO,KAAK,CAAC;AAC7E,YAAA,MAAM,CAAC,GAAG,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC;AACxB,YAAA,OAAO,CAAC,YAAY,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC;AAClD,SAAC,CAAC;;AAEF,QAAA,MAAM,QAAQ,GAAG,YAAY,GAAG,IAAI,CAAC,eAAe,CAAC,YAAY,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC;AACnF,QAAA,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;YAC7B,IAAI,WAAW,CAAC,KAAK,CAAC;gBAAE,OAAO,IAAI,UAAU,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,EAAE,QAAQ,CAAC,CAAC;;AACpE,gBAAA,OAAO,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;AACnC,SAAA;AACD,QAAA,MAAM,IAAI,GAAG,KAAK,YAAY,UAAU,GAAG,KAAK,CAAC,IAAI,GAAI,KAAc,CAAC;AACxE,QAAA,OAAO,IAAI,UAAU,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;KACvC;8GAtEU,iBAAiB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA,EAAA;AAAjB,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,iBAAiB,cADJ,MAAM,EAAA,CAAA,CAAA,EAAA;;2FACnB,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAD7B,UAAU;mBAAC,EAAE,UAAU,EAAE,MAAM,EAAE,CAAA;;;MCDrB,sBAAsB,CAAA;AADnC,IAAA,WAAA,GAAA;AAEU,QAAA,IAAA,CAAA,eAAe,GAAG,MAAM,CAAC,iBAAiB,CAAC,CAAC;AAUrD,KAAA;AARC,IAAA,IAAI,IAAI,GAAA;AACN,QAAA,OAAO,UAAU,CAAC;KACnB;AAED,IAAA,MAAM,CAAC,KAAc,EAAE,GAAG,IAAe,EAAA;AACvC,QAAA,MAAM,SAAS,IAAY,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,CAAW,CAAC;AACnE,QAAA,OAAO,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,KAAa,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;KACrE;8GAVU,sBAAsB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA,EAAA;kHAAtB,sBAAsB,EAAA,CAAA,CAAA,EAAA;;2FAAtB,sBAAsB,EAAA,UAAA,EAAA,CAAA;kBADlC,UAAU;;;MCCE,cAAc,CAAA;AAD3B,IAAA,WAAA,GAAA;AAEU,QAAA,IAAA,CAAA,gBAAgB,GAAsB,MAAM,CAAC,iBAAiB,CAAC,CAAC;AAiBzE,KAAA;AAfC,IAAA,SAAS,CAAC,KAAiC,EAAE,MAAe,EAAE,YAAqB,EAAA;QACjF,IAAI,KAAK,IAAI,IAAI,EAAE;AACjB,YAAA,OAAO,EAAE,CAAC;AACX,SAAA;AACD,QAAA,IAAI,QAAQ,GAAG,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC;AAC9C,QAAA,IAAI,YAAY,EAAE;YAChB,QAAQ,GAAG,IAAI,CAAC,gBAAgB,CAAC,eAAe,CAAC,YAAY,CAAC,CAAC;AAChE,SAAA;AACD,QAAA,MAAM,GAAG,GAAe,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,KAAK,EAAE,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC;QAC9E,IAAI,CAAC,MAAM,EAAE;YACX,OAAO,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;AACjD,SAAA;AAAM,aAAA;AACL,YAAA,OAAO,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;AAC3B,SAAA;KACF;8GAjBU,cAAc,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,IAAA,EAAA,CAAA,CAAA,EAAA;4GAAd,cAAc,EAAA,IAAA,EAAA,QAAA,EAAA,CAAA,CAAA,EAAA;;2FAAd,cAAc,EAAA,UAAA,EAAA,CAAA;kBAD1B,IAAI;mBAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAA;;;MCgBX,gBAAgB,CAAA;8GAAhB,gBAAgB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA,EAAA;+GAAhB,gBAAgB,EAAA,YAAA,EAAA,CAXZ,cAAc,CAAA,EAAA,OAAA,EAAA,CADnB,cAAc,CAAA,EAAA,CAAA,CAAA,EAAA;AAYb,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,gBAAgB,EAVhB,SAAA,EAAA;YACT,iBAAiB;YACjB,sBAAsB;AACtB,YAAA;AACE,gBAAA,OAAO,EAAE,iBAAiB;AAC1B,gBAAA,KAAK,EAAE,IAAI;AACX,gBAAA,QAAQ,EAAE,sBAAsB;AACjC,aAAA;AACF,SAAA,EAAA,CAAA,CAAA,EAAA;;2FAEU,gBAAgB,EAAA,UAAA,EAAA,CAAA;kBAd5B,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,OAAO,EAAE,EAAE;oBACX,OAAO,EAAE,CAAC,cAAc,CAAC;oBACzB,YAAY,EAAE,CAAC,cAAc,CAAC;AAC9B,oBAAA,SAAS,EAAE;wBACT,iBAAiB;wBACjB,sBAAsB;AACtB,wBAAA;AACE,4BAAA,OAAO,EAAE,iBAAiB;AAC1B,4BAAA,KAAK,EAAE,IAAI;AACX,4BAAA,QAAQ,EAAE,sBAAsB;AACjC,yBAAA;AACF,qBAAA;AACF,iBAAA,CAAA;;;ACnBD;;AAEG;;;;"}
|
1
|
+
{"version":3,"file":"acorex-core-dateTime.mjs","sources":["../../../../libs/core/dateTime/src/lib/datetime.class.ts","../../../../libs/core/dateTime/src/lib/georgian.calendar.ts","../../../../libs/core/dateTime/src/lib/jalali.calendar.ts","../../../../libs/core/dateTime/src/lib/dateTime.config.ts","../../../../libs/core/dateTime/src/lib/holidays.loader.ts","../../../../libs/core/dateTime/src/lib/calendar.service.ts","../../../../libs/core/dateTime/src/lib/datetime-format.plugin.ts","../../../../libs/core/dateTime/src/lib/datetime.pipe.ts","../../../../libs/core/dateTime/src/lib/datetime.module.ts","../../../../libs/core/dateTime/src/acorex-core-dateTime.ts"],"sourcesContent":["import { orderBy } from 'lodash-es';\n\nexport type TimeUnit = 'ms' | 'second' | 'minute' | 'hour' | 'day' | 'month' | 'year' | 'week';\n\nexport interface AXDateValue {\n year: number;\n month: number;\n date: number;\n hours?: number;\n minutes?: number;\n seconds?: number;\n ms?: number;\n}\n\nexport interface AXDateTimeDisplayFormats {\n dateInput: string;\n timeInput: string;\n dateTimeInput: string;\n dateDisplay: string;\n timeDisplay: string;\n dateTimeDisplay: string;\n}\n\nexport type AXDateTimeUnitNames = { long: string; short: string; letter: string }[];\n\nexport type AXDateTimePart = {\n key: string;\n placeholder: string;\n placeholders: string[];\n typedValue?: string | null;\n default: number;\n enabled: boolean;\n realValue: () => string;\n};\n\nexport type AXDateTimeParts = {\n year: AXDateTimePart;\n month: AXDateTimePart;\n day: AXDateTimePart;\n hour: AXDateTimePart;\n minute: AXDateTimePart;\n second: AXDateTimePart;\n};\n\nexport interface AXCalendarConfig {\n weekend: number[];\n formats: AXDateTimeDisplayFormats;\n dayNames: AXDateTimeUnitNames;\n monthNames: AXDateTimeUnitNames;\n}\n\nexport abstract class AXCalendar {\n private _config: AXCalendarConfig;\n\n /**\n * @ignore\n */\n constructor(config: AXCalendarConfig) {\n this._config = config;\n }\n\n public get weekend(): number[] {\n return this._config.weekend;\n }\n\n public get formats(): AXDateTimeDisplayFormats {\n return this._config.formats;\n }\n\n public get dayNames(): AXDateTimeUnitNames {\n return this._config.dayNames;\n }\n\n public get monthNames(): AXDateTimeUnitNames {\n return this._config.monthNames;\n }\n\n abstract name(): string;\n\n abstract dayOfMonth(date: Date): number;\n\n abstract dayOfYear(date: Date): number;\n\n abstract dayOfWeek(date: Date): number;\n\n abstract monthOfYear(date: Date): number;\n\n abstract weekOfYear(date: Date): number;\n\n abstract year(date: Date): number;\n\n abstract add(date: Date, unit: TimeUnit, amount: number): AXDateTime;\n\n abstract set(date: Date, unit: TimeUnit, value: number): AXDateTime;\n\n abstract startOf(date: Date, unit: TimeUnit): AXDateTime;\n\n abstract endOf(date: Date, unit: TimeUnit): AXDateTime;\n\n abstract create(value: AXDateValue): AXDateTime;\n\n abstract parse(value: string): AXDateTime;\n}\n\nexport class AXDateTime {\n private _date: Date;\n\n get date(): Date {\n return this._date;\n }\n\n private _calendar: AXCalendar;\n get calendar(): AXCalendar {\n return this._calendar;\n }\n\n constructor(value: Date, calendar: AXCalendar) {\n this._calendar = calendar;\n this._date = value;\n }\n\n clone(): AXDateTime {\n return new AXDateTime(this.date, this.calendar);\n }\n\n get dayOfMonth(): number {\n return this._calendar.dayOfMonth(this.date);\n }\n\n get dayOfYear(): number {\n return this._calendar.dayOfYear(this.date);\n }\n\n get dayOfWeek(): number {\n return this._calendar.dayOfWeek(this.date);\n }\n\n get hour(): number {\n return this._date.getHours();\n }\n\n get minute(): number {\n return this._date.getMinutes();\n }\n\n get second(): number {\n return this._date.getSeconds();\n }\n\n get year(): number {\n return this._calendar.year(this.date);\n }\n\n get monthOfYear(): number {\n return this._calendar.monthOfYear(this.date);\n }\n\n get weekOfYear(): number {\n return this._calendar.weekOfYear(this.date);\n }\n\n get month(): AXCalendarMonth {\n return new AXCalendarMonth(this);\n }\n\n add(unit: TimeUnit, amount: number): AXDateTime {\n return this._calendar.add(this.date, unit, amount);\n }\n\n set(unit: TimeUnit = 'day', value: number): AXDateTime {\n return this._calendar.set(this.date, unit, value);\n }\n\n duration(end: Date | AXDateTime): AXTimeSpan {\n const date = end instanceof AXDateTime ? end.date : (end as Date);\n const val = new AXDateTime(date, this.calendar);\n const range = new AXDateTimeRange(this, val);\n return range.duration();\n }\n\n startOf(unit: TimeUnit = 'day'): AXDateTime {\n return this._calendar.startOf(this.date, unit);\n }\n\n endOf(unit: TimeUnit = 'day'): AXDateTime {\n return this._calendar.endOf(this.date, unit);\n }\n\n private _formatKeys = {\n ss: () => this.pad(this.date.getSeconds(), 2),\n s: () => this.date.getSeconds().toString(),\n //\n dd: () => this.pad(this.calendar.dayOfMonth(this.date), 2),\n d: () => this.calendar.dayOfMonth(this.date).toString(),\n //\n mm: () => this.pad(this.date.getMinutes(), 2),\n m: () => this.date.getMinutes().toString(),\n //\n MMMM: () => this.calendar.monthNames[this.calendar.monthOfYear(this.date) - 1].long,\n MMM: () => this.calendar.monthNames[this.calendar.monthOfYear(this.date) - 1].short,\n MM: () => this.pad(this.calendar.monthOfYear(this.date), 2),\n M: () => this.calendar.monthOfYear(this.date),\n //\n DDDD: () => this.calendar.dayNames[this.calendar.dayOfWeek(this.date) - 1].long,\n DDD: () => this.calendar.dayNames[this.calendar.dayOfWeek(this.date) - 1].short,\n //\n yyyy: () => this.pad(this.calendar.year(this.date), 4),\n YYYY: () => this.pad(this.calendar.year(this.date), 4),\n yy: () => this.pad(this.calendar.year(this.date), 4).substring(2),\n YY: () => this.pad(this.calendar.year(this.date), 4).substring(2),\n //\n HH: () => this.pad(this.date.getHours(), 2),\n H: () => this.date.getHours().toString(),\n //\n hh: () => this.pad(this.date.getHours() % 12 || 12, 2),\n h: () => (this.date.getHours() % 12 || 12).toString(),\n //\n A: () => (this.date.getHours() < 12 ? 'am' : 'pm'),\n a: () => (this.date.getHours() < 12 ? 'am' : 'pm'),\n };\n\n format(format: string = this.calendar.formats.dateTimeDisplay): string {\n const re = new RegExp(orderBy(Object.keys(this._formatKeys), (c) => c.length, ['desc']).join('|'), 'gi');\n return format.replace(re, (matched) => {\n return this._formatKeys[matched]();\n });\n }\n\n private pad(n, width, z = '0') {\n n = n + '';\n return n.length >= width ? n : new Array(width - n.length + 1).join(z) + n;\n }\n\n equal(value: Date | AXDateTime, unit: TimeUnit = 'day') {\n return this.compare(value, unit) == 0;\n }\n\n compare(value: Date | AXDateTime, unit: TimeUnit = 'day') {\n const date = value instanceof AXDateTime ? value.date : (value as Date);\n const val = new AXDateTime(date, this.calendar);\n const func = (v1: number, v2: number) => {\n if (v1 == v2) {\n return 0;\n } else if (v1 > v2) {\n return 1;\n } else {\n return -1;\n }\n };\n let p = 0;\n switch (unit) {\n case 'year':\n return func(this.year, val.year);\n case 'week':\n p = this.compare(val, 'year');\n return p == 0 ? func(this.weekOfYear, val.weekOfYear) : p;\n case 'month':\n p = this.compare(val, 'year');\n return p == 0 ? func(this.monthOfYear, val.monthOfYear) : p;\n case 'day':\n p = this.compare(val, 'year');\n return p == 0 ? func(this.dayOfYear, val.dayOfYear) : p;\n case 'hour':\n p = this.compare(val, 'day');\n return p == 0 ? func(this.hour, val.hour) : p;\n case 'minute':\n p = this.compare(val, 'hour');\n return p == 0 ? func(this.minute, val.minute) : p;\n case 'second':\n p = this.compare(val, 'minute');\n return p == 0 ? func(this.second, val.second) : p;\n default:\n return func(this.date.getTime(), val.date.getTime());\n }\n }\n}\n\nexport class AXCalendarMonth {\n private _range: AXDateTimeRange;\n public get range(): AXDateTimeRange {\n return this._range;\n }\n public set range(v: AXDateTimeRange) {\n this._range = v;\n }\n\n public get totalDays(): number {\n return this.range.endTime.dayOfMonth;\n }\n\n constructor(date: AXDateTime) {\n this.index = date.date.getMonth();\n this.name = date.format('MMMM');\n this.range = new AXDateTimeRange(\n new AXDateTime(date.startOf('month').date, date.calendar),\n new AXDateTime(date.endOf('month').date, date.calendar),\n );\n }\n\n private readonly index: number;\n private readonly name: string;\n}\n\nexport interface AXTimeSpanTotal {\n miliseconds: number;\n seconds: number;\n minutes: number;\n hours: number;\n days: number;\n weeks: number;\n months: number;\n years: number;\n}\n\nexport interface AXTimeSpan {\n miliseconds: number;\n seconds: number;\n minutes: number;\n hours: number;\n days: number;\n months: number;\n years: number;\n total: AXTimeSpanTotal;\n}\n\nexport class AXDateTimeRange {\n private _startTime: AXDateTime;\n private _endTime: AXDateTime;\n\n public get startTime(): AXDateTime {\n return this._startTime;\n }\n\n public get endTime(): AXDateTime {\n return this._endTime;\n }\n\n constructor(startTime: AXDateTime, endTime: AXDateTime) {\n this._startTime = startTime;\n this._endTime = endTime;\n }\n\n duration(): AXTimeSpan {\n const result: AXTimeSpan = {\n miliseconds: 0,\n seconds: 0,\n minutes: 0,\n hours: 0,\n days: 0,\n months: 0,\n years: 0,\n total: {\n miliseconds: 0,\n seconds: 0,\n minutes: 0,\n hours: 0,\n days: 0,\n weeks: 0,\n months: 0,\n years: 0,\n },\n };\n\n const one_second = 1000;\n const one_min = one_second * 60;\n const one_hour = one_min * 60;\n const one_day = one_hour * 24;\n const one_week = one_day * 7;\n const one_year = 365.25 * one_day;\n const one_month = one_year / 12;\n const startTime = this._startTime.date.getTime();\n const endTime = this._endTime.date.getTime();\n const diff = Math.abs(endTime - startTime);\n //\n result.total.miliseconds = diff;\n result.total.seconds = Number((diff / one_second).toFixed(2));\n result.total.minutes = Number((diff / one_min).toFixed(2));\n result.total.hours = Number((diff / one_hour).toFixed(2));\n result.total.days = Number((diff / one_day).toFixed(2));\n result.total.weeks = Number((diff / one_week).toFixed(2));\n //\n // let months = (this.endTime.year - this.startTime.year) * 12;\n // months += this.endTime.monthOfYear - this.startTime.monthOfYear + 1;\n // if (this.endTime.dayOfYear < this.startTime.dayOfYear) {\n // months--;\n // }\n // result.total.months = Math.abs(months);\n // TODO: review\n result.total.months = Number((diff / one_month).toFixed(2));\n result.total.years = Number((diff / one_year).toFixed(2));\n //\n result.miliseconds = result.total.miliseconds % 1000;\n result.seconds = Number((result.total.seconds % 60).toFixed(0));\n result.minutes = Number((result.total.minutes % 60).toFixed(0));\n result.hours = Number((result.total.hours % 24).toFixed(0));\n // TODO: review\n result.days = Number((result.total.days % 30.4).toFixed(0));\n result.months = Number((result.total.months % 12).toFixed(0));\n result.years = Number(result.total.years.toFixed(0));\n return result;\n }\n\n enumurate(unit: TimeUnit = 'day', amount = 1): AXDateTime[] {\n const result: AXDateTime[] = [];\n let item = this._startTime.clone();\n while (item.compare(this._endTime, unit) < 1) {\n if (!result.some((c) => c.equal(item, unit))) {\n result.push(item);\n }\n item = item.add(unit, amount);\n }\n return result;\n }\n\n // includes(value: AXDateTime, unit: TimeUnit = 'day'): boolean {\n // // TODO: ??\n // return true;\n // }\n\n // getViewCompaire(view) {\n // switch (view) {\n // case 'day':\n // return 'YMD';\n // case 'month':\n // return 'YM';\n // case 'year':\n // return 'Y';\n // }\n // }\n}\n","import { AXCalendar, AXCalendarConfig, AXDateTime, AXDateValue, TimeUnit } from './datetime.class';\n\nexport class GeorgianCalendar extends AXCalendar {\n /**\n * @ignore\n */\n constructor(config: AXCalendarConfig) {\n super(config);\n }\n\n create(value: AXDateValue): AXDateTime {\n return new AXDateTime(\n new Date(\n value.year,\n value.month - 1,\n value.date,\n value.hours || 0,\n value.minutes || 0,\n value.seconds || 0,\n value.ms || 0,\n ),\n this,\n );\n }\n\n name(): string {\n return 'georgian';\n }\n\n dayOfMonth(date: Date): number {\n return date.getDate();\n }\n\n dayOfYear(date: Date): number {\n let result = 0;\n let m = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];\n if (this.isLeap(date)) {\n m[1] = 29;\n }\n for (let i = 0; i < date.getMonth(); i++) {\n result = result + m[i];\n }\n result += date.getDate();\n return result;\n }\n\n dayOfWeek(date: Date): number {\n return date.getDay() + 1;\n }\n\n weekOfYear(date: Date): number {\n const firstDay = new AXDateTime(date, this).startOf('year');\n return Math.ceil(\n ((date.getTime() - firstDay.date.getTime()) / 86400000 + firstDay.date.getDay() + 1) / 7,\n );\n }\n\n year(date: Date): number {\n return date.getFullYear();\n }\n\n monthOfYear(date: Date): number {\n return date.getMonth() + 1;\n }\n\n add(date: Date, unit: TimeUnit, amount: number): AXDateTime {\n let value = date.valueOf();\n switch (unit) {\n case 'second':\n value += 1000 * amount;\n break;\n case 'minute':\n value += 60000 * amount;\n break;\n case 'hour':\n value += 3600000 * amount;\n break;\n case 'month': {\n const v = new Date(value);\n let mo = date.getMonth();\n let yr = date.getFullYear();\n mo = (mo + amount) % 12;\n if (0 > mo) {\n yr += (date.getMonth() + amount - mo - 12) / 12;\n mo += 12;\n } else yr += (date.getMonth() + amount - mo) / 12;\n v.setMonth(mo);\n v.setFullYear(yr);\n value = v.valueOf();\n break;\n }\n case 'week':\n value += 7 * 86400000 * amount;\n break;\n case 'year': {\n const yv = new Date(value);\n yv.setFullYear(yv.getFullYear() + amount);\n value = yv.valueOf();\n break;\n }\n case 'day':\n default:\n value += 86400000 * amount;\n }\n return new AXDateTime(new Date(value), this);\n }\n\n set(date: Date, unit: TimeUnit, value: number): AXDateTime {\n const clone = new Date(date.valueOf());\n switch (unit) {\n case 'second':\n clone.setHours(clone.getHours(), clone.getMinutes(), value, clone.getMilliseconds());\n break;\n case 'minute':\n clone.setHours(clone.getHours(), value, clone.getSeconds(), clone.getMilliseconds());\n break;\n case 'hour':\n clone.setHours(value, clone.getMinutes(), clone.getSeconds(), clone.getMilliseconds());\n break;\n default:\n case 'day':\n clone.setDate(value);\n break;\n case 'week':\n break;\n case 'month':\n clone.setMonth(Math.max(0, value - 1));\n break;\n case 'year':\n clone.setFullYear(value);\n break;\n }\n return new AXDateTime(clone, this);\n }\n\n startOf(date: Date, unit: TimeUnit): AXDateTime {\n const clone = new Date(date.valueOf());\n switch (unit) {\n case 'second':\n clone.setHours(clone.getHours(), clone.getMinutes(), clone.getSeconds(), 0);\n return new AXDateTime(clone, this);\n case 'minute':\n clone.setHours(clone.getHours(), clone.getMinutes(), 0, 0);\n return new AXDateTime(clone, this);\n case 'hour':\n clone.setHours(clone.getHours(), 0, 0, 0);\n return new AXDateTime(clone, this);\n default:\n case 'day':\n clone.setHours(0, 0, 0, 0);\n return new AXDateTime(clone, this);\n case 'week': {\n const index = 0;\n const start = index >= 0 ? index : 0;\n const day = clone.getDay();\n const diff = clone.getDate() - day + (start > day ? start - 7 : start);\n clone.setDate(diff);\n return new AXDateTime(clone, this).startOf('day');\n }\n case 'month':\n clone.setDate(1);\n return new AXDateTime(clone, this).startOf('day');\n case 'year':\n clone.setMonth(0);\n clone.setDate(1);\n return new AXDateTime(clone, this).startOf('day');\n }\n }\n\n endOf(date: Date, unit: TimeUnit): AXDateTime {\n const clone = new Date(date.valueOf());\n switch (unit) {\n case 'second':\n clone.setHours(clone.getHours(), clone.getMinutes(), clone.getSeconds(), 999);\n return new AXDateTime(clone, this);\n case 'minute':\n clone.setHours(clone.getHours(), clone.getMinutes(), 59, 999);\n return new AXDateTime(clone, this);\n case 'hour':\n clone.setHours(clone.getHours(), 59, 59, 999);\n return new AXDateTime(clone, this);\n default:\n case 'day':\n clone.setHours(23, 59, 59, 999);\n return new AXDateTime(clone, this);\n case 'week':\n return this.startOf(date, 'week').add('day', 6).endOf('day');\n case 'month': {\n const dateObj = new Date();\n dateObj.setFullYear(date.getFullYear());\n dateObj.setMonth(date.getMonth() + 1);\n dateObj.setDate(0);\n return new AXDateTime(dateObj, this).endOf('day');\n //return new AXDateTime(new Date(date.getFullYear(), date.getMonth() + 1, 0), this).endOf('day');\n }\n case 'year':\n clone.setMonth(11);\n return new AXDateTime(clone, this).endOf('month');\n }\n }\n\n isLeap(date: Date) {\n let leapYear = new Date(date.getFullYear(), 1, 29);\n return leapYear.getDate() == 29;\n }\n\n parse(value: string): AXDateTime {\n return new AXDateTime(new Date(value), this);\n }\n}\n","import { AXCalendar, AXCalendarConfig, AXDateTime, AXDateValue, TimeUnit } from './datetime.class';\n\nexport class JalaliCalendar extends AXCalendar {\n /**\n * @ignore\n */\n constructor(config: AXCalendarConfig) {\n super(config);\n }\n\n /*\n Jalaali years starting the 33-year rule.\n*/\n private breaks = [\n -61, 9, 38, 199, 426, 686, 756, 818, 1111, 1181, 1210, 1635, 2060, 2097, 2192, 2262, 2324, 2394, 2456,\n 3178,\n ];\n\n create(value: AXDateValue): AXDateTime {\n const a = this.toGregorian(value.year, value.month, value.date);\n return new AXDateTime(\n new Date(\n a.getFullYear(),\n a.getMonth(),\n a.getDate(),\n value.hours || 0,\n value.minutes || 0,\n value.seconds || 0,\n value.ms || 0,\n ),\n this,\n );\n }\n\n name(): string {\n return 'jalali';\n }\n\n dayOfMonth(date: Date): number {\n return this.toJalaali(date).day;\n }\n\n dayOfYear(date: Date): number {\n const j = this.toJalaali(date);\n return (j.month <= 6 ? (j.month - 1) * 31 : 6 * 31 + (j.month - 7) * 30) + j.day;\n }\n\n dayOfWeek(date: Date): number {\n return date.getDay() == 6 ? 1 : date.getDay() + 2;\n }\n\n weekOfYear(date: Date): number {\n //TODO : apply jalali\n const firstDay = new AXDateTime(date, this).startOf('year');\n return Math.ceil(\n ((date.getTime() - firstDay.date.getTime()) / 86400000 + firstDay.date.getDay() + 1) / 7,\n );\n }\n\n year(date: Date): number {\n return this.toJalaali(date).year;\n }\n\n monthOfYear(date: Date): number {\n return this.toJalaali(date).month;\n }\n\n add(date: Date, unit: TimeUnit, amount: number): AXDateTime {\n let value = date.valueOf();\n switch (unit) {\n case 'second':\n value += 1000 * amount;\n break;\n case 'minute':\n value += 60000 * amount;\n break;\n case 'hour':\n value += 3600000 * amount;\n break;\n case 'month': {\n const v = new Date(value);\n let jd = this.dayOfMonth(date);\n let jm = this.monthOfYear(date);\n let jy = this.year(date);\n const nm = jm + amount;\n const ny = nm % 12 ? Math.floor(nm / 12) : 0;\n jy += ny;\n jm = nm - ny * 12;\n const vv = this.toGregorian(jy, jm, jd);\n v.setFullYear(vv.getFullYear());\n v.setMonth(vv.getMonth());\n v.setDate(vv.getDate());\n value = v.valueOf();\n break;\n }\n case 'week':\n value += 7 * 86400000 * amount;\n break;\n case 'year': {\n // const v = new Date(value);\n // v.setFullYear(v.getFullYear() + amount);\n // value = v.valueOf();\n // break\n const v = new Date(value);\n let jd = this.dayOfMonth(date);\n let jm = this.monthOfYear(date);\n let jy = this.year(date);\n const vv = this.toGregorian(jy + amount, jm, jd);\n v.setFullYear(vv.getFullYear());\n v.setMonth(vv.getMonth());\n v.setDate(vv.getDate());\n value = v.valueOf();\n break;\n }\n case 'day':\n default:\n value += 86400000 * amount;\n }\n return new AXDateTime(new Date(value), this);\n }\n\n set(date: Date, unit: TimeUnit, value: number): AXDateTime {\n const clone = new Date(date.valueOf());\n const jDate = this.toJalaali(clone);\n switch (unit) {\n case 'second':\n clone.setHours(clone.getHours(), clone.getMinutes(), value, clone.getMilliseconds());\n break;\n case 'minute':\n clone.setHours(clone.getHours(), value, clone.getSeconds(), clone.getMilliseconds());\n break;\n case 'hour':\n clone.setHours(value, clone.getMinutes(), clone.getSeconds(), clone.getMilliseconds());\n break;\n default:\n case 'day': {\n const gDate = this.toGregorian(jDate.year, jDate.month, value);\n clone.setDate(gDate.getDate());\n break;\n }\n case 'week':\n break;\n case 'month': {\n const gDate2 = this.toGregorian(jDate.year, value, jDate.day);\n clone.setMonth(gDate2.getMonth());\n break;\n }\n case 'year': {\n const gDate3 = this.toGregorian(value, jDate.month, jDate.day);\n clone.setFullYear(gDate3.getFullYear());\n break;\n }\n }\n return new AXDateTime(clone, this);\n }\n\n startOf(date: Date, unit: TimeUnit): AXDateTime {\n const clone = new Date(date.valueOf());\n switch (unit) {\n case 'second':\n clone.setHours(clone.getHours(), clone.getMinutes(), clone.getSeconds(), 0);\n return new AXDateTime(clone, this);\n case 'minute':\n clone.setHours(clone.getHours(), clone.getMinutes(), 0, 0);\n return new AXDateTime(clone, this);\n case 'hour':\n clone.setHours(clone.getHours(), 0, 0, 0);\n return new AXDateTime(clone, this);\n default:\n case 'day':\n clone.setHours(0, 0, 0, 0);\n return new AXDateTime(clone, this);\n case 'week':\n return new AXDateTime(clone, this).add('day', -this.dayOfWeek(clone) + 1).startOf('day');\n case 'month': {\n const jy = this.year(date);\n const jm = this.monthOfYear(date);\n const gDate = this.toGregorian(jy, jm, 1);\n return new AXDateTime(gDate, this).startOf('day');\n }\n case 'year': {\n const jy = this.year(date);\n const gDate = this.toGregorian(jy, 1, 1);\n return new AXDateTime(gDate, this).startOf('day');\n }\n }\n }\n\n endOf(date: Date, unit: TimeUnit): AXDateTime {\n const clone = new Date(date.valueOf());\n switch (unit) {\n case 'second':\n clone.setHours(clone.getHours(), clone.getMinutes(), clone.getSeconds(), 999);\n return new AXDateTime(clone, this);\n case 'minute':\n clone.setHours(clone.getHours(), clone.getMinutes(), 59, 999);\n return new AXDateTime(clone, this);\n case 'hour':\n clone.setHours(clone.getHours(), 59, 59, 999);\n return new AXDateTime(clone, this);\n default:\n case 'day':\n clone.setHours(23, 59, 59, 999);\n return new AXDateTime(clone, this);\n case 'week': {\n return this.startOf(date, 'week').add('day', 6).endOf('day');\n }\n case 'month': {\n const jy = this.year(date);\n const jm = this.monthOfYear(date);\n const jd = this.jalaaliMonthLength(jy, jm);\n const gDate = this.toGregorian(jy, jm, jd);\n return new AXDateTime(gDate, this).endOf('day');\n }\n case 'year': {\n const jy = this.year(date);\n const gDate = this.toGregorian(jy, 12, this.jalaaliMonthLength(jy, 12));\n return new AXDateTime(gDate, this).endOf('day');\n }\n }\n }\n\n parse(value: string): AXDateTime {\n const [y, M, d, h, m, s, ms] = value.split(/[^a-zA-Z0-9]+/gi);\n const date = this.toGregorian(Number(y) ?? 0, Number(M) ?? 1, Number(d) ?? 1);\n if (h != null) date.setHours(Number(h));\n if (m != null) date.setMinutes(Number(m));\n if (s != null) date.setSeconds(Number(s));\n if (ms != null) date.setMilliseconds(Number(d));\n return new AXDateTime(date, this);\n }\n\n /*\n Converts a Gregorian date to Jalaali.\n*/\n toJalaali(date: Date): { year: number; month: number; day: number } {\n const gd = date.getDate();\n const gm = date.getMonth() + 1;\n const gy = date.getFullYear();\n const r = this.d2j(this.g2d(gy, gm, gd));\n return {\n year: r.jy,\n month: r.jm,\n day: r.jd,\n };\n }\n\n /*\n Converts a Jalaali date to Gregorian.\n */\n toGregorian(jy, jm, jd): Date {\n const g = this.d2g(this.j2d(jy, jm, jd));\n return new Date(g.gy, g.gm - 1, g.gd);\n }\n\n /*\n Checks whether a Jalaali date is valid or not.\n */\n isValidJalaaliDate(jy, jm, jd) {\n return jy >= -61 && jy <= 3177 && jm >= 1 && jm <= 12 && jd >= 1 && jd <= this.jalaaliMonthLength(jy, jm);\n }\n\n /*\n Is this a leap year or not?\n */\n isLeapJalaaliYear(jy) {\n return this.jalCalLeap(jy) === 0;\n }\n\n /*\n Number of days in a given month in a Jalaali year.\n */\n jalaaliMonthLength(jy, jm) {\n if (jm <= 6) return 31;\n if (jm <= 11) return 30;\n if (this.isLeapJalaaliYear(jy)) return 30;\n return 29;\n }\n\n /*\n This determines if the Jalaali (Persian) year is\n leap (366-day long) or is the common year (365 days)\n \n @param jy Jalaali calendar year (-61 to 3177)\n @returns number of years since the last leap year (0 to 4)\n */\n private jalCalLeap(jy: number) {\n let bl = this.breaks.length,\n jp = this.breaks[0],\n jm,\n jump,\n leap,\n n,\n i;\n\n if (jy < jp || jy >= this.breaks[bl - 1]) throw new Error('Invalid Jalaali year ' + jy);\n\n for (i = 1; i < bl; i += 1) {\n jm = this.breaks[i];\n jump = jm - jp;\n if (jy < jm) break;\n jp = jm;\n }\n n = jy - jp;\n\n if (jump - n < 6) n = n - jump + this.div(jump + 4, 33) * 33;\n leap = this.mod(this.mod(n + 1, 33) - 1, 4);\n if (leap === -1) {\n leap = 4;\n }\n\n return leap;\n }\n\n private jalCal(jy: number, withoutLeap: boolean) {\n let bl = this.breaks.length,\n gy = jy + 621,\n leapJ = -14,\n jp = this.breaks[0],\n jm,\n jump,\n leap,\n leapG,\n march,\n n,\n i;\n\n if (jy < jp || jy >= this.breaks[bl - 1]) throw new Error('Invalid Jalaali year ' + jy);\n\n // Find the limiting years for the Jalaali year jy.\n for (i = 1; i < bl; i += 1) {\n jm = this.breaks[i];\n jump = jm - jp;\n if (jy < jm) break;\n leapJ = leapJ + this.div(jump, 33) * 8 + this.div(this.mod(jump, 33), 4);\n jp = jm;\n }\n n = jy - jp;\n\n // Find the number of leap years from AD 621 to the beginning\n // of the current Jalaali year in the Persian calendar.\n leapJ = leapJ + this.div(n, 33) * 8 + this.div(this.mod(n, 33) + 3, 4);\n if (this.mod(jump, 33) === 4 && jump - n === 4) leapJ += 1;\n\n // And the same in the Gregorian calendar (until the year gy).\n leapG = this.div(gy, 4) - this.div((this.div(gy, 100) + 1) * 3, 4) - 150;\n\n // Determine the Gregorian date of Farvardin the 1st.\n march = 20 + leapJ - leapG;\n\n // return with gy and march when we don't need leap\n if (withoutLeap) return { gy: gy, march: march };\n\n // Find how many years have passed since the last leap year.\n if (jump - n < 6) n = n - jump + this.div(jump + 4, 33) * 33;\n leap = this.mod(this.mod(n + 1, 33) - 1, 4);\n if (leap === -1) {\n leap = 4;\n }\n\n return {\n leap: leap,\n gy: gy,\n march: march,\n };\n }\n\n private j2d(jy, jm, jd): number {\n let r = this.jalCal(jy, true);\n return this.g2d(r.gy, 3, r.march) + (jm - 1) * 31 - this.div(jm, 7) * (jm - 7) + jd - 1;\n }\n\n private d2j(jdn: number) {\n let gy = this.d2g(jdn).gy, // Calculate Gregorian year (gy).\n jy = gy - 621,\n r = this.jalCal(jy, false),\n jdn1f = this.g2d(gy, 3, r.march),\n jd,\n jm,\n k;\n\n // Find number of days that passed since 1 Farvardin.\n k = jdn - jdn1f;\n if (k >= 0) {\n if (k <= 185) {\n // The first 6 months.\n jm = 1 + this.div(k, 31);\n jd = this.mod(k, 31) + 1;\n return {\n jy: jy,\n jm: jm,\n jd: jd,\n };\n } else {\n // The remaining months.\n k -= 186;\n }\n } else {\n // Previous Jalaali year.\n jy -= 1;\n k += 179;\n if (r.leap === 1) k += 1;\n }\n jm = 7 + this.div(k, 30);\n jd = this.mod(k, 30) + 1;\n return {\n jy: jy,\n jm: jm,\n jd: jd,\n };\n }\n\n private g2d(gy: number, gm: number, gd: number): number {\n let d =\n this.div((gy + this.div(gm - 8, 6) + 100100) * 1461, 4) +\n this.div(153 * this.mod(gm + 9, 12) + 2, 5) +\n gd -\n 34840408;\n d = d - this.div(this.div(gy + 100100 + this.div(gm - 8, 6), 100) * 3, 4) + 752;\n return d;\n }\n\n private d2g(jdn: number) {\n let j, i, gd, gm, gy;\n j = 4 * jdn + 139361631;\n j = j + this.div(this.div(4 * jdn + 183187720, 146097) * 3, 4) * 4 - 3908;\n i = this.div(this.mod(j, 1461), 4) * 5 + 308;\n gd = this.div(this.mod(i, 153), 5) + 1;\n gm = this.mod(this.div(i, 153), 12) + 1;\n gy = this.div(j, 1461) - 100100 + this.div(8 - gm, 6);\n return {\n gy: gy,\n gm: gm,\n gd: gd,\n };\n }\n\n private jalaaliWeek(jy: number, jm: number, jd: number): { saturday: any; friday: any } {\n let dayOfWeek = this.jalaaliToDateObject(jy, jm, jd, 0, 0, 0, 0).getDay();\n\n let startDayDifference = dayOfWeek == 6 ? 0 : -(dayOfWeek + 1);\n let endDayDifference = 6 + startDayDifference;\n\n return {\n saturday: this.d2j(this.j2d(jy, jm, jd + startDayDifference)),\n friday: this.d2j(this.j2d(jy, jm, jd + endDayDifference)),\n };\n }\n\n private jalaaliToDateObject(\n jy: number,\n jm: number,\n jd: number,\n h: number = 0,\n m: number = 0,\n s: number = 0,\n ms: number = 0,\n ) {\n let gregorianCalenderDate = this.toGregorian(jy, jm, jd);\n\n return new Date(\n gregorianCalenderDate.getFullYear(),\n gregorianCalenderDate.getMonth() - 1,\n gregorianCalenderDate.getDate(),\n h || 0,\n m || 0,\n s || 0,\n ms || 0,\n );\n }\n\n /*\n Utility helper functions.\n */\n\n private div(a: number, b: number) {\n return ~~(a / b);\n }\n\n private mod(a: number, b: number) {\n return a - ~~(a / b) * b;\n }\n}\n","import { AX_GLOBAL_CONFIG } from '@acorex/core/config';\nimport { InjectionToken, inject } from '@angular/core';\nimport { set } from 'lodash-es';\nimport { AXCalendar } from './datetime.class';\nimport { GeorgianCalendar } from './georgian.calendar';\nimport { JalaliCalendar } from './jalali.calendar';\n\nexport interface AXDateTimeConfig {\n calendar: string;\n calendars: {\n [key: string]: AXCalendar;\n };\n}\n\nexport const AX_DATETIME_CONFIG = new InjectionToken<AXDateTimeConfig>('AX_DATETIME_CONFIG', {\n providedIn: 'root',\n factory: () => {\n const global = inject(AX_GLOBAL_CONFIG);\n set(global, 'dateTime', AX_DATETIME_CONFIG);\n return AXDateTimeDefaultConfig;\n },\n});\n\nexport const AXDateTimeDefaultConfig: AXDateTimeConfig = {\n calendar: 'georgian',\n calendars: {\n georgian: new GeorgianCalendar({\n dayNames: ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'].map((d) => ({\n long: d,\n short: d.substring(0, 3),\n letter: d[0],\n })),\n monthNames: [\n 'January',\n 'February',\n 'March',\n 'April',\n 'May',\n 'June',\n 'July',\n 'August',\n 'September',\n 'October',\n 'November',\n 'December',\n ].map((d) => ({ long: d, short: d.substring(0, 3), letter: d[0] })),\n weekend: [6, 7],\n formats: {\n dateInput: 'yyyy/MM/dd',\n timeInput: 'HH:mm',\n dateTimeInput: 'yyyy/MM/dd HH:mm',\n dateDisplay: 'DDDD, d MMM yyyy',\n timeDisplay: 'HH:mm',\n dateTimeDisplay: 'DDDD, d MMM yyyy HH:mm',\n },\n }),\n jalali: new JalaliCalendar({\n monthNames: 'فروردین_اردیبهشت_خرداد_تیر_مرداد_شهریور_مهر_آبان_آذر_دی_بهمن_اسفند'\n .split('_')\n .map((d) => ({ long: d, short: d, letter: d[0] })),\n dayNames: 'شنبه_یکشنبه_دوشنبه_سه شنبه_چهارشنبه_پنج شنبه_جمعه'\n .split('_')\n .map((d) => ({ long: d, short: d[0], letter: d[0] })),\n weekend: [7],\n formats: {\n dateInput: 'yyyy/MM/dd',\n timeInput: 'HH:mm',\n dateTimeInput: 'yyyy/MM/dd HH:mm',\n dateDisplay: 'DDDD, d MMM yyyy',\n timeDisplay: 'HH:mm',\n dateTimeDisplay: 'DDDD, d MMM yyyy HH:mm',\n },\n }),\n },\n};\n\nexport type PartialDateTimeConfig = Partial<AXDateTimeConfig>;\n\nexport function dateTimeConfig(config: PartialDateTimeConfig = {}): AXDateTimeConfig {\n const result = {\n ...AXDateTimeDefaultConfig,\n ...config,\n };\n return result;\n}\n","import { InjectionToken } from '@angular/core';\n\nexport interface AXHolidayDate {\n date: Date;\n title: string;\n description?: string;\n [key: string]: unknown;\n}\n\nexport interface AXHolidaysLoaderOptions {\n calendar?: string;\n range?: { start: Date; end: Date };\n}\n\nexport interface AXHolidaysLoader {\n getHolidays(options?: AXHolidaysLoaderOptions): Promise<AXHolidayDate[]>;\n}\n\nexport class AXHolidaysLoaderDefault implements AXHolidaysLoader {\n getHolidays(options?: AXHolidaysLoaderOptions | undefined): Promise<AXHolidayDate[]> {\n return Promise.resolve([]);\n }\n}\n\nexport const AX_DATETIME_HOLIDAYS_LOADER = new InjectionToken<AXHolidaysLoader>(\n 'AX_DATETIME_HOLIDAYS_LOADER',\n {\n providedIn: 'root',\n factory: () => {\n return new AXHolidaysLoaderDefault();\n },\n },\n);\n","import { Injectable, inject } from '@angular/core';\nimport { Subject } from 'rxjs';\nimport { AXDateTimeConfig, AX_DATETIME_CONFIG } from './dateTime.config';\nimport { AXCalendar, AXDateTime, AXDateValue } from './datetime.class';\nimport { AXHolidayDate, AXHolidaysLoaderOptions, AX_DATETIME_HOLIDAYS_LOADER } from './holidays.loader';\n\n@Injectable({ providedIn: 'root' })\nexport class AXCalendarService {\n private _config: AXDateTimeConfig = inject(AX_DATETIME_CONFIG);\n private _holidaysLoader = inject(AX_DATETIME_HOLIDAYS_LOADER);\n\n public get calendar(): AXCalendar {\n return this._config.calendars[this._config.calendar];\n }\n\n public onHolidaysChanged: Subject<AXHolidayDate[]> = new Subject<AXHolidayDate[]>();\n private _holidays: AXHolidayDate[] = [];\n public get holidays(): AXHolidayDate[] {\n return this._holidays;\n }\n\n constructor() {\n this.loadHolidays();\n }\n\n public loadHolidays(options?: AXHolidaysLoaderOptions) {\n return this._holidaysLoader.getHolidays(options).then((value) => {\n this._holidays = value;\n this.onHolidaysChanged.next(this._holidays);\n });\n }\n\n public create(value: AXDateValue, calendarName?: string): AXDateTime;\n public create(value: Date, calendarName?: string): AXDateTime;\n public create(value: AXDateValue | Date, calendarName?: string): AXDateTime {\n const calendar = calendarName ? this.resolveCalendar(calendarName) : this.calendar;\n if (value instanceof Date) {\n return new AXDateTime(value, calendar);\n } else if (value?.year && value?.month) {\n return calendar.create(value as AXDateValue);\n }\n return this.now();\n }\n\n public now(calendarName?: string): AXDateTime {\n const calendar = calendarName ? this.resolveCalendar(calendarName) : this.calendar;\n return new AXDateTime(new Date(), calendar);\n }\n\n public resolveCalendar(name: string): AXCalendar {\n const c = this._config.calendars[name];\n if (!c) {\n console.error(`\"${name}\" is not a valid calendar name!`);\n return this.calendar;\n }\n return c;\n }\n\n public convert(value: Date | AXDateTime | string, calendarName?: string): AXDateTime {\n // const isISOString = val => {\n // const d = new Date(val);\n // return !Number.isNaN(d.valueOf()) && d.toISOString() === val;\n // };\n\n const isISOString = (str) => {\n if (!/\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}(.\\d{3}Z)?/.test(str)) return false;\n const d = new Date(str);\n return d instanceof Date && !isNaN(d.getTime()); // valid date\n };\n //\n const calendar = calendarName ? this.resolveCalendar(calendarName) : this.calendar;\n if (typeof value === 'string') {\n if (isISOString(value)) return new AXDateTime(new Date(value), calendar);\n else return calendar.parse(value);\n }\n const date = value instanceof AXDateTime ? value.date : (value as Date);\n return new AXDateTime(date, calendar);\n }\n}\n","import { AXFormatPlugin } from '@acorex/core/format';\nimport { Injectable, inject } from '@angular/core';\nimport { AXCalendarService } from './calendar.service';\n\n@Injectable()\nexport class AXDateTimeFormatPlugin implements AXFormatPlugin {\n private calendarService = inject(AXCalendarService);\n\n get name(): string {\n return 'datetime';\n }\n\n format(value: unknown, ...args: unknown[]): string {\n const formatStr: string = (args.length ? args[0] : null) as string;\n return this.calendarService.create(value as Date).format(formatStr);\n }\n}\n","import { Pipe, PipeTransform, inject } from '@angular/core';\nimport { AXCalendarService } from './calendar.service';\nimport { AXDateTime } from './datetime.class';\n\n@Pipe({ name: 'axDate' })\nexport class AXDateTimePipe implements PipeTransform {\n private _calendarService: AXCalendarService = inject(AXCalendarService);\n\n transform(value: Date | AXDateTime | string, format?: string, calendarName?: string): string {\n if (value == null) {\n return '';\n }\n let calendar = this._calendarService.calendar;\n if (calendarName) {\n calendar = this._calendarService.resolveCalendar(calendarName);\n }\n const val: AXDateTime = this._calendarService.convert(value, calendar.name());\n if (!format) {\n return val.format(calendar.formats.dateDisplay);\n } else {\n return val.format(format);\n }\n }\n}\n","import { AX_FORMAT_PLUGING } from '@acorex/core/format';\nimport { NgModule } from '@angular/core';\nimport { AXCalendarService } from './calendar.service';\nimport { AXDateTimeFormatPlugin } from './datetime-format.plugin';\nimport { AXDateTimePipe } from './datetime.pipe';\n\n@NgModule({\n imports: [],\n exports: [AXDateTimePipe],\n declarations: [AXDateTimePipe],\n providers: [\n AXCalendarService,\n AXDateTimeFormatPlugin,\n {\n provide: AX_FORMAT_PLUGING,\n multi: true,\n useClass: AXDateTimeFormatPlugin,\n },\n ],\n})\nexport class AXDateTimeModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"acorex-core-file.mjs","sources":["../../../../libs/core/file/src/lib/file-download-ref.class.ts","../../../../libs/core/file/src/lib/file-download-result.class.ts","../../../../libs/core/file/src/lib/file-upload-ref.class.ts","../../../../libs/core/file/src/lib/file.service.ts","../../../../libs/core/file/src/acorex-core-file.ts"],"sourcesContent":["import { AXFileDownloadResult } from './file-download-result.class';\n\nexport class AXFileDownloadRef extends Promise<AXFileDownloadResult> {\n public abortMethod: () => void;\n constructor(\n executor: (\n resolve: (value?: PromiseLike<AXFileDownloadResult>) => void,\n reject: (reason?: any) => void,\n ) => void,\n ) {\n super(executor as any);\n }\n //abort the operation\n public abort() {\n if (this.abortMethod) {\n this.abortMethod();\n }\n }\n}\n","export class AXFileDownloadResult {\n _response: Blob;\n\n constructor(response: Blob) {\n this._response = response;\n }\n\n save(filename?: string): Promise<void> {\n this._defaultBrowserDownload(filename);\n return Promise.resolve();\n // else {\n // return new Promise((resolve, reject) => {\n // const button = document.createElement(\"button\");\n // button.addEventListener('click', async () => {\n // button.remove();\n // const opts = {\n // types: [{\n // description: 'Save File',\n // suggestedName: filename\n // // accept: {'text/plain': ['.txt']},\n // }],\n // };\n // const result = await window['showSaveFilePicker'](opts);\n // console.log(result);\n\n // resolve();\n // });\n // button.click();\n // });\n\n // }\n }\n\n blob() {\n return this._response;\n }\n\n base64(): Promise<string> {\n return new Promise((resolve, reject) => {\n const reader = new window.FileReader();\n reader.onloadend = () => resolve(reader.result as string);\n reader.onerror = (e) => reject(e);\n reader.readAsDataURL(this._response);\n });\n }\n\n private _defaultBrowserDownload(filename = 'download') {\n const link = document.createElement('a');\n link.href = URL.createObjectURL(this._response);\n link.download = filename;\n link.click();\n }\n}\n","export class AXFileUploadRef<T = any> extends Promise<T> {\n public abortMethod: () => void;\n constructor(executor: (resolve: (value?: PromiseLike<T>) => void, reject: (reason?: any) => void) => void) {\n super(executor as any);\n }\n //abort the operation\n public abort() {\n if (this.abortMethod) {\n this.abortMethod();\n }\n }\n}\n","import { HttpClient } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { Observable, Subscription, isObservable } from 'rxjs';\nimport { AXFileDownloadRef } from './file-download-ref.class';\nimport { AXFileDownloadResult } from './file-download-result.class';\nimport { AXFileUploadRef } from './file-upload-ref.class';\n\n@Injectable()\nexport class AXFileService {\n constructor(private _httpClient: HttpClient) {}\n\n public download(request: string | Observable<Blob>): AXFileDownloadRef {\n let s: Subscription;\n const promiseFunc = (resolve, reject) => {\n //TODO: add custome http request\n //const headers = new HttpHeaders().set('authorization','Bearer '+token);\n let b!: Observable<Blob>;\n if (typeof request === 'string') {\n b = this._httpClient.get(request, { responseType: 'blob' });\n } else if (isObservable(b)) {\n b = request;\n }\n s = b?.subscribe({\n next: (v) => resolve(new AXFileDownloadResult(v)),\n error: (e) => reject(e),\n });\n };\n\n const a = new AXFileDownloadRef(promiseFunc);\n a.abort = () => {\n s?.unsubscribe();\n };\n\n return a;\n }\n\n public upload<T = any>(url: string, files: File[]): AXFileUploadRef<T> {\n let s: Subscription;\n const formData = new FormData();\n files.forEach((f) => {\n formData.append('files', f);\n });\n const promiseFunc = (resolve, reject) => {\n const b: Observable<T> = this._httpClient.post<T>(url, formData);\n s = b?.subscribe({\n next: (v) => resolve(v),\n error: (e) => reject(e),\n });\n };\n\n const a = new AXFileUploadRef(promiseFunc);\n a.abort = () => {\n s?.unsubscribe();\n };\n return a;\n }\n\n public choose(options?: { accept?: string; multiple?: boolean }): Promise<File[]> {\n return new Promise<File[]>((resolve, reject) => {\n options = Object.assign({ multiple: false }, options);\n const input: HTMLInputElement = document.createElement('input');\n input.style.display = 'none';\n document.body.appendChild(input);\n input.type = 'file';\n input.accept = options.accept || '';\n input.multiple = options.multiple || false;\n //\n const onError = (e) => {\n reject(e);\n document.body.removeChild(input);\n input.remove();\n input.removeEventListener('change', onChange);\n input.removeEventListener('error', onError);\n };\n //\n const onChange = () => {\n resolve(Array.from(input.files || []));\n document.body.removeChild(input);\n input.remove();\n input.removeEventListener('change', onChange);\n input.removeEventListener('error', onError);\n };\n //\n input.addEventListener('change', onChange);\n input.addEventListener('error', onError);\n input.click();\n });\n }\n\n blobToBase64 = (blob: Blob) =>\n new Promise<string>((resolve, reject) => {\n const reader = new FileReader();\n reader.onerror = reject;\n reader.onload = () => {\n resolve(reader.result as string);\n };\n reader.readAsDataURL(blob);\n });\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
1
|
+
{"version":3,"file":"acorex-core-file.mjs","sources":["../../../../libs/core/file/src/lib/file-download-ref.class.ts","../../../../libs/core/file/src/lib/file-download-result.class.ts","../../../../libs/core/file/src/lib/file-upload-ref.class.ts","../../../../libs/core/file/src/lib/file.service.ts","../../../../libs/core/file/src/acorex-core-file.ts"],"sourcesContent":["import { AXFileDownloadResult } from './file-download-result.class';\n\nexport class AXFileDownloadRef extends Promise<AXFileDownloadResult> {\n public abortMethod: () => void;\n constructor(\n executor: (\n resolve: (value?: PromiseLike<AXFileDownloadResult>) => void,\n reject: (reason?: any) => void,\n ) => void,\n ) {\n super(executor as any);\n }\n //abort the operation\n public abort() {\n if (this.abortMethod) {\n this.abortMethod();\n }\n }\n}\n","export class AXFileDownloadResult {\n _response: Blob;\n\n constructor(response: Blob) {\n this._response = response;\n }\n\n save(filename?: string): Promise<void> {\n this._defaultBrowserDownload(filename);\n return Promise.resolve();\n // else {\n // return new Promise((resolve, reject) => {\n // const button = document.createElement(\"button\");\n // button.addEventListener('click', async () => {\n // button.remove();\n // const opts = {\n // types: [{\n // description: 'Save File',\n // suggestedName: filename\n // // accept: {'text/plain': ['.txt']},\n // }],\n // };\n // const result = await window['showSaveFilePicker'](opts);\n\n // resolve();\n // });\n // button.click();\n // });\n\n // }\n }\n\n blob() {\n return this._response;\n }\n\n base64(): Promise<string> {\n return new Promise((resolve, reject) => {\n const reader = new window.FileReader();\n reader.onloadend = () => resolve(reader.result as string);\n reader.onerror = (e) => reject(e);\n reader.readAsDataURL(this._response);\n });\n }\n\n private _defaultBrowserDownload(filename = 'download') {\n const link = document.createElement('a');\n link.href = URL.createObjectURL(this._response);\n link.download = filename;\n link.click();\n }\n}\n","export class AXFileUploadRef<T = any> extends Promise<T> {\n public abortMethod: () => void;\n constructor(executor: (resolve: (value?: PromiseLike<T>) => void, reject: (reason?: any) => void) => void) {\n super(executor as any);\n }\n //abort the operation\n public abort() {\n if (this.abortMethod) {\n this.abortMethod();\n }\n }\n}\n","import { HttpClient } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { Observable, Subscription, isObservable } from 'rxjs';\nimport { AXFileDownloadRef } from './file-download-ref.class';\nimport { AXFileDownloadResult } from './file-download-result.class';\nimport { AXFileUploadRef } from './file-upload-ref.class';\n\n@Injectable()\nexport class AXFileService {\n constructor(private _httpClient: HttpClient) {}\n\n public download(request: string | Observable<Blob>): AXFileDownloadRef {\n let s: Subscription;\n const promiseFunc = (resolve, reject) => {\n //TODO: add custome http request\n //const headers = new HttpHeaders().set('authorization','Bearer '+token);\n let b!: Observable<Blob>;\n if (typeof request === 'string') {\n b = this._httpClient.get(request, { responseType: 'blob' });\n } else if (isObservable(b)) {\n b = request;\n }\n s = b?.subscribe({\n next: (v) => resolve(new AXFileDownloadResult(v)),\n error: (e) => reject(e),\n });\n };\n\n const a = new AXFileDownloadRef(promiseFunc);\n a.abort = () => {\n s?.unsubscribe();\n };\n\n return a;\n }\n\n public upload<T = any>(url: string, files: File[]): AXFileUploadRef<T> {\n let s: Subscription;\n const formData = new FormData();\n files.forEach((f) => {\n formData.append('files', f);\n });\n const promiseFunc = (resolve, reject) => {\n const b: Observable<T> = this._httpClient.post<T>(url, formData);\n s = b?.subscribe({\n next: (v) => resolve(v),\n error: (e) => reject(e),\n });\n };\n\n const a = new AXFileUploadRef(promiseFunc);\n a.abort = () => {\n s?.unsubscribe();\n };\n return a;\n }\n\n public choose(options?: { accept?: string; multiple?: boolean }): Promise<File[]> {\n return new Promise<File[]>((resolve, reject) => {\n options = Object.assign({ multiple: false }, options);\n const input: HTMLInputElement = document.createElement('input');\n input.style.display = 'none';\n document.body.appendChild(input);\n input.type = 'file';\n input.accept = options.accept || '';\n input.multiple = options.multiple || false;\n //\n const onError = (e) => {\n reject(e);\n document.body.removeChild(input);\n input.remove();\n input.removeEventListener('change', onChange);\n input.removeEventListener('error', onError);\n };\n //\n const onChange = () => {\n resolve(Array.from(input.files || []));\n document.body.removeChild(input);\n input.remove();\n input.removeEventListener('change', onChange);\n input.removeEventListener('error', onError);\n };\n //\n input.addEventListener('change', onChange);\n input.addEventListener('error', onError);\n input.click();\n });\n }\n\n blobToBase64 = (blob: Blob) =>\n new Promise<string>((resolve, reject) => {\n const reader = new FileReader();\n reader.onerror = reject;\n reader.onload = () => {\n resolve(reader.result as string);\n };\n reader.readAsDataURL(blob);\n });\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
@@ -69,7 +69,7 @@ class AXStringFormatPlugin {
|
|
69
69
|
const data = (args.length ? args[0] : null);
|
70
70
|
const result = value.replace(/{{\s*([^}]+)\s*}}/g, (match, variable) => {
|
71
71
|
// if (variable?.match(/^\w+:\w+:\w+$/g)) {
|
72
|
-
//
|
72
|
+
//
|
73
73
|
// const formatData = data[variable[0]];
|
74
74
|
// const formatType = data[variable[1]];
|
75
75
|
// const formatArg = data[variable[2]];
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"acorex-core-format.mjs","sources":["../../../../libs/core/format/src/lib/format.config.ts","../../../../libs/core/format/src/lib/format.service.ts","../../../../libs/core/format/src/lib/format.pipe.ts","../../../../libs/core/format/src/lib/number-format.plugin.ts","../../../../libs/core/format/src/lib/string-format.plugin.ts","../../../../libs/core/format/src/lib/format.module.ts","../../../../libs/core/format/src/acorex-core-format.ts"],"sourcesContent":["import { InjectionToken } from '@angular/core';\n\nexport interface AXFormatPlugin {\n get name(): string;\n format(value: unknown, ...args: unknown[]): string;\n}\n\nexport const AX_FORMAT_PLUGING = new InjectionToken<AXFormatPlugin>('format.plugin');\n","import { Inject, Injectable } from '@angular/core';\nimport { AXFormatPlugin, AX_FORMAT_PLUGING } from './format.config';\n\n@Injectable({ providedIn: 'root' })\nexport class AXFormatService {\n constructor(\n @Inject(AX_FORMAT_PLUGING)\n private plugins: AXFormatPlugin[],\n ) {}\n\n format(value: unknown, name: string, ...args: unknown[]): string {\n const format = this.plugins.find((c) => c.name == name);\n if (!name || !format) return String(value);\n return format.format(value, ...args);\n }\n}\n","import { Pipe, PipeTransform, inject } from '@angular/core';\nimport { AXFormatService } from './format.service';\n\n@Pipe({\n name: 'format',\n pure: true,\n})\nexport class AXFormatPipe implements PipeTransform {\n private formatService = inject(AXFormatService);\n\n transform(value: unknown, ...args: unknown[]): string {\n const name = args[0] as string;\n return this.formatService.format(value, name, ...args.slice(1));\n }\n}\n","import { AXFormatPlugin } from './format.config';\n\nexport class AXNumberFormatPlugin implements AXFormatPlugin {\n get name(): string {\n return 'number';\n }\n\n format(value: unknown, ...args: unknown[]): string {\n const formatStr: string = (args.length ? args[0] : null) as string;\n if (formatStr?.match(/^.{2}-.{2}$/)) {\n return Number(value).toLocaleString(formatStr);\n }\n if (formatStr?.match(/^D\\d+$/)) {\n return String(value).padStart(Number(formatStr.slice(1)), '0');\n }\n return String(value);\n }\n}\n","import {
|
1
|
+
{"version":3,"file":"acorex-core-format.mjs","sources":["../../../../libs/core/format/src/lib/format.config.ts","../../../../libs/core/format/src/lib/format.service.ts","../../../../libs/core/format/src/lib/format.pipe.ts","../../../../libs/core/format/src/lib/number-format.plugin.ts","../../../../libs/core/format/src/lib/string-format.plugin.ts","../../../../libs/core/format/src/lib/format.module.ts","../../../../libs/core/format/src/acorex-core-format.ts"],"sourcesContent":["import { InjectionToken } from '@angular/core';\n\nexport interface AXFormatPlugin {\n get name(): string;\n format(value: unknown, ...args: unknown[]): string;\n}\n\nexport const AX_FORMAT_PLUGING = new InjectionToken<AXFormatPlugin>('format.plugin');\n","import { Inject, Injectable } from '@angular/core';\nimport { AXFormatPlugin, AX_FORMAT_PLUGING } from './format.config';\n\n@Injectable({ providedIn: 'root' })\nexport class AXFormatService {\n constructor(\n @Inject(AX_FORMAT_PLUGING)\n private plugins: AXFormatPlugin[],\n ) {}\n\n format(value: unknown, name: string, ...args: unknown[]): string {\n const format = this.plugins.find((c) => c.name == name);\n if (!name || !format) return String(value);\n return format.format(value, ...args);\n }\n}\n","import { Pipe, PipeTransform, inject } from '@angular/core';\nimport { AXFormatService } from './format.service';\n\n@Pipe({\n name: 'format',\n pure: true,\n})\nexport class AXFormatPipe implements PipeTransform {\n private formatService = inject(AXFormatService);\n\n transform(value: unknown, ...args: unknown[]): string {\n const name = args[0] as string;\n return this.formatService.format(value, name, ...args.slice(1));\n }\n}\n","import { AXFormatPlugin } from './format.config';\n\nexport class AXNumberFormatPlugin implements AXFormatPlugin {\n get name(): string {\n return 'number';\n }\n\n format(value: unknown, ...args: unknown[]): string {\n const formatStr: string = (args.length ? args[0] : null) as string;\n if (formatStr?.match(/^.{2}-.{2}$/)) {\n return Number(value).toLocaleString(formatStr);\n }\n if (formatStr?.match(/^D\\d+$/)) {\n return String(value).padStart(Number(formatStr.slice(1)), '0');\n }\n return String(value);\n }\n}\n","import { AXFormatPlugin } from './format.config';\n\nexport class AXStringFormatPlugin implements AXFormatPlugin {\n get name(): string {\n return 'string';\n }\n\n format(value: unknown, ...args: unknown[]): string {\n if (typeof value != 'string') return String(value);\n const data: string = (args.length ? args[0] : null) as string;\n const result = value.replace(/{{\\s*([^}]+)\\s*}}/g, (match, variable) => {\n // if (variable?.match(/^\\w+:\\w+:\\w+$/g)) {\n //\n // const formatData = data[variable[0]];\n // const formatType = data[variable[1]];\n // const formatArg = data[variable[2]];\n // const value = this.formatService.format(formatData, formatType, formatArg);\n // return value ?? match;\n // }\n // else {\n const value = data[variable] as string;\n return value ?? match;\n // }\n });\n return result;\n }\n\n // private format(inputString: string, data: { [key: string]: string }): string {\n // return inputString.replace(/{{\\s*([^}]+)\\s*}}/g, (match, variable) => {\n // const value = data[variable];\n // return value !== undefined ? value : match;\n // });\n // }\n}\n","import { NgModule } from '@angular/core';\nimport { AX_FORMAT_PLUGING } from './format.config';\nimport { AXFormatPipe } from './format.pipe';\nimport { AXNumberFormatPlugin } from './number-format.plugin';\nimport { AXStringFormatPlugin } from './string-format.plugin';\n\n@NgModule({\n imports: [],\n exports: [AXFormatPipe],\n declarations: [AXFormatPipe],\n providers: [\n {\n provide: AX_FORMAT_PLUGING,\n multi: true,\n useClass: AXNumberFormatPlugin,\n },\n {\n provide: AX_FORMAT_PLUGING,\n multi: true,\n useClass: AXStringFormatPlugin,\n },\n ],\n})\nexport class AXFormatModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|