@acorex/core 18.16.0-next.8 → 19.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/fesm2022/acorex-core-config.mjs +3 -3
- package/fesm2022/acorex-core-date-time.mjs +23 -20
- package/fesm2022/acorex-core-date-time.mjs.map +1 -1
- package/fesm2022/acorex-core-events.mjs +3 -3
- package/fesm2022/acorex-core-file.mjs +10 -10
- package/fesm2022/acorex-core-format.mjs +17 -16
- package/fesm2022/acorex-core-format.mjs.map +1 -1
- package/fesm2022/acorex-core-image.mjs +3 -3
- package/fesm2022/acorex-core-network.mjs +3 -3
- package/fesm2022/acorex-core-pipes.mjs +3 -3
- package/fesm2022/acorex-core-platform.mjs +3 -3
- package/fesm2022/acorex-core-storage.mjs +9 -9
- package/fesm2022/acorex-core-translation.mjs +27 -27
- package/fesm2022/acorex-core-translation.mjs.map +1 -1
- package/fesm2022/acorex-core-utils.mjs +12 -11
- package/fesm2022/acorex-core-utils.mjs.map +1 -1
- package/fesm2022/acorex-core-validation.mjs +40 -40
- package/package.json +3 -37
- package/esm2022/acorex-core.mjs +0 -5
- package/esm2022/common/acorex-core-common.mjs +0 -5
- package/esm2022/common/countries/countries.data.mjs +0 -2640
- package/esm2022/common/countries/country.mjs +0 -2
- package/esm2022/common/index.mjs +0 -3
- package/esm2022/config/acorex-core-config.mjs +0 -5
- package/esm2022/config/index.mjs +0 -3
- package/esm2022/config/lib/configs.mjs +0 -7
- package/esm2022/config/lib/configs.service.mjs +0 -27
- package/esm2022/date-time/acorex-core-date-time.mjs +0 -5
- package/esm2022/date-time/index.mjs +0 -11
- package/esm2022/date-time/lib/calendar.service.mjs +0 -93
- package/esm2022/date-time/lib/dateTime.config.mjs +0 -50
- package/esm2022/date-time/lib/datetime.class.mjs +0 -337
- package/esm2022/date-time/lib/datetime.module.mjs +0 -28
- package/esm2022/date-time/lib/datetime.pipe.mjs +0 -29
- package/esm2022/date-time/lib/formatters/datetime-formatter.mjs +0 -38
- package/esm2022/date-time/lib/formatters/time-duration-formatter.mjs +0 -52
- package/esm2022/date-time/lib/formatters/timeleft-formatter.mjs +0 -90
- package/esm2022/date-time/lib/georgian.calendar.mjs +0 -198
- package/esm2022/date-time/lib/holidays.loader.mjs +0 -13
- package/esm2022/date-time/lib/jalali.calendar.mjs +0 -417
- package/esm2022/events/acorex-core-events.mjs +0 -5
- package/esm2022/events/index.mjs +0 -3
- package/esm2022/events/lib/event.service.mjs +0 -43
- package/esm2022/events/lib/event.type.mjs +0 -6
- package/esm2022/file/acorex-core-file.mjs +0 -5
- package/esm2022/file/index.mjs +0 -4
- package/esm2022/file/lib/file-size-formatter.mjs +0 -24
- package/esm2022/file/lib/file.module.mjs +0 -20
- package/esm2022/file/lib/file.service.mjs +0 -77
- package/esm2022/format/acorex-core-format.mjs +0 -5
- package/esm2022/format/index.mjs +0 -8
- package/esm2022/format/lib/format.config.mjs +0 -3
- package/esm2022/format/lib/format.module.mjs +0 -64
- package/esm2022/format/lib/format.pipe.mjs +0 -33
- package/esm2022/format/lib/format.service.mjs +0 -93
- package/esm2022/format/lib/format.types.mjs +0 -2
- package/esm2022/format/lib/formatters/number-formatter.mjs +0 -74
- package/esm2022/format/lib/formatters/string-formatter.mjs +0 -17
- package/esm2022/image/acorex-core-image.mjs +0 -5
- package/esm2022/image/index.mjs +0 -2
- package/esm2022/image/lib/image.service.mjs +0 -48
- package/esm2022/index.mjs +0 -2
- package/esm2022/memorize/acorex-core-memorize.mjs +0 -5
- package/esm2022/memorize/index.mjs +0 -2
- package/esm2022/memorize/lib/memorize.decorator.mjs +0 -19
- package/esm2022/network/acorex-core-network.mjs +0 -5
- package/esm2022/network/index.mjs +0 -5
- package/esm2022/network/lib/download-task.mjs +0 -47
- package/esm2022/network/lib/network.service.mjs +0 -85
- package/esm2022/network/lib/network.types.mjs +0 -16
- package/esm2022/network/lib/upload-task.mjs +0 -81
- package/esm2022/pipes/acorex-core-pipes.mjs +0 -5
- package/esm2022/pipes/index.mjs +0 -2
- package/esm2022/pipes/lib/safe/safe.pipe.mjs +0 -38
- package/esm2022/platform/acorex-core-platform.mjs +0 -5
- package/esm2022/platform/index.mjs +0 -2
- package/esm2022/platform/lib/platform.service.mjs +0 -293
- package/esm2022/storage/acorex-core-storage.mjs +0 -5
- package/esm2022/storage/cookie-storage.service.mjs +0 -196
- package/esm2022/storage/index.mjs +0 -5
- package/esm2022/storage/local-storage.service.mjs +0 -59
- package/esm2022/storage/session-storage.service.mjs +0 -35
- package/esm2022/storage/storage.interface.mjs +0 -2
- package/esm2022/translation/acorex-core-translation.mjs +0 -5
- package/esm2022/translation/index.mjs +0 -9
- package/esm2022/translation/lib/translation-scope.resolver.mjs +0 -11
- package/esm2022/translation/lib/translation.config.mjs +0 -20
- package/esm2022/translation/lib/translation.loader.mjs +0 -14
- package/esm2022/translation/lib/translation.module.mjs +0 -40
- package/esm2022/translation/lib/translation.service.mjs +0 -215
- package/esm2022/translation/lib/translation.types.mjs +0 -2
- package/esm2022/translation/lib/translator.directive.mjs +0 -28
- package/esm2022/translation/lib/translator.pipe.mjs +0 -23
- package/esm2022/types/acorex-core-types.mjs +0 -5
- package/esm2022/types/index.mjs +0 -2
- package/esm2022/utils/acorex-core-utils.mjs +0 -5
- package/esm2022/utils/index.mjs +0 -8
- package/esm2022/utils/lib/auto-unsubscribe.mjs +0 -36
- package/esm2022/utils/lib/color-util.mjs +0 -136
- package/esm2022/utils/lib/drawing-util.mjs +0 -32
- package/esm2022/utils/lib/html-util.mjs +0 -54
- package/esm2022/utils/lib/resize.directive.mjs +0 -124
- package/esm2022/utils/lib/string-util.mjs +0 -19
- package/esm2022/utils/lib/utils.module.mjs +0 -18
- package/esm2022/validation/acorex-core-validation.mjs +0 -5
- package/esm2022/validation/index.mjs +0 -18
- package/esm2022/validation/lib/rules/between-rule.mjs +0 -31
- package/esm2022/validation/lib/rules/callback-rule.mjs +0 -36
- package/esm2022/validation/lib/rules/equal-rule.mjs +0 -26
- package/esm2022/validation/lib/rules/greater-than.mjs +0 -25
- package/esm2022/validation/lib/rules/length-rule.mjs +0 -23
- package/esm2022/validation/lib/rules/less-than-rule.mjs +0 -25
- package/esm2022/validation/lib/rules/maxlength-rule.mjs +0 -24
- package/esm2022/validation/lib/rules/minlength-rule.mjs +0 -23
- package/esm2022/validation/lib/rules/regex-rule.mjs +0 -46
- package/esm2022/validation/lib/rules/required-rule.mjs +0 -39
- package/esm2022/validation/lib/validation.config.mjs +0 -33
- package/esm2022/validation/lib/validation.module.mjs +0 -84
- package/esm2022/validation/lib/validation.service.mjs +0 -98
- package/esm2022/validation/lib/validation.types.mjs +0 -3
@@ -1,90 +0,0 @@
|
|
1
|
-
import { Injectable } from '@angular/core';
|
2
|
-
import { isNil } from 'lodash-es';
|
3
|
-
import * as i0 from "@angular/core";
|
4
|
-
export class AXTimeLeftFormatter {
|
5
|
-
get name() {
|
6
|
-
return 'timeleft';
|
7
|
-
}
|
8
|
-
format(value, options) {
|
9
|
-
const valueNumber = Number(value);
|
10
|
-
const sign = valueNumber >= 0 ? 'left' : 'ago';
|
11
|
-
const milliseconds = Math.abs(valueNumber);
|
12
|
-
const durationInSeconds = Math.round(milliseconds / 1000);
|
13
|
-
let format = options?.format;
|
14
|
-
// Determine the best format if format is null
|
15
|
-
if (isNil(format)) {
|
16
|
-
if (durationInSeconds < 45)
|
17
|
-
format = 's';
|
18
|
-
else if (durationInSeconds < 60 * 45)
|
19
|
-
format = 'm';
|
20
|
-
else if (durationInSeconds < 60 * 60 * 22)
|
21
|
-
format = 'h';
|
22
|
-
else if (durationInSeconds < 60 * 60 * 24 * 26)
|
23
|
-
format = 'd';
|
24
|
-
else if (durationInSeconds < 60 * 60 * 24 * 320)
|
25
|
-
format = 'M';
|
26
|
-
else
|
27
|
-
format = 'y';
|
28
|
-
}
|
29
|
-
// Helper function for zero-padding
|
30
|
-
const pad = (num) => num.toString().padStart(2, '0');
|
31
|
-
switch (format) {
|
32
|
-
case 's':
|
33
|
-
return `${durationInSeconds} seconds ${sign}`;
|
34
|
-
case 'ss':
|
35
|
-
return `${pad(durationInSeconds)} seconds ${sign}`;
|
36
|
-
case 'm':
|
37
|
-
return `${Math.round(durationInSeconds / 60)} minute${durationInSeconds >= 120 ? 's' : ''} ${sign}`;
|
38
|
-
case 'mm':
|
39
|
-
return `${pad(Math.round(durationInSeconds / 60))} minutes ${sign}`;
|
40
|
-
case 'h':
|
41
|
-
case 'H':
|
42
|
-
if (durationInSeconds < 60 * 89)
|
43
|
-
return `an hour ${sign}`;
|
44
|
-
return `${Math.round(durationInSeconds / 3600)} hour${durationInSeconds >= 60 * 180 ? 's' : ''} ${sign}`;
|
45
|
-
case 'hh':
|
46
|
-
case 'HH':
|
47
|
-
if (durationInSeconds < 60 * 89)
|
48
|
-
return `01 hour ${sign}`;
|
49
|
-
return `${pad(Math.round(durationInSeconds / 3600))} hours ${sign}`;
|
50
|
-
case 'd':
|
51
|
-
case 'D':
|
52
|
-
if (durationInSeconds < 60 * 60 * 35)
|
53
|
-
return `a day ${sign}`;
|
54
|
-
return `${Math.round(durationInSeconds / (3600 * 24))} day${durationInSeconds >= 60 * 60 * 70 ? 's' : ''} ${sign}`;
|
55
|
-
case 'dd':
|
56
|
-
case 'DD':
|
57
|
-
if (durationInSeconds < 60 * 60 * 35)
|
58
|
-
return `01 day ${sign}`;
|
59
|
-
return `${pad(Math.round(durationInSeconds / (3600 * 24)))} days ${sign}`;
|
60
|
-
case 'M':
|
61
|
-
if (durationInSeconds < 60 * 60 * 24 * 45)
|
62
|
-
return `a month ${sign}`;
|
63
|
-
return `${Math.round(durationInSeconds / (3600 * 24 * 30))} month${durationInSeconds >= 60 * 60 * 24 * 90 ? 's' : ''} ${sign}`;
|
64
|
-
case 'MM':
|
65
|
-
if (durationInSeconds < 60 * 60 * 24 * 45)
|
66
|
-
return `01 month ${sign}`;
|
67
|
-
return `${pad(Math.round(durationInSeconds / (3600 * 24 * 30)))} months ${sign}`;
|
68
|
-
case 'y':
|
69
|
-
case 'Y':
|
70
|
-
if (durationInSeconds < 60 * 60 * 24 * 547)
|
71
|
-
return `a year ${sign}`;
|
72
|
-
return `${Math.round(durationInSeconds / (3600 * 24 * 365))} year${durationInSeconds >= 60 * 60 * 24 * 730 ? 's' : ''} ${sign}`;
|
73
|
-
case 'yy':
|
74
|
-
case 'YY':
|
75
|
-
case 'yyyy':
|
76
|
-
case 'YYYY':
|
77
|
-
if (durationInSeconds < 60 * 60 * 24 * 547)
|
78
|
-
return `01 year ${sign}`;
|
79
|
-
return `${pad(Math.round(durationInSeconds / (3600 * 24 * 365)))} years ${sign}`;
|
80
|
-
default:
|
81
|
-
return 'Invalid format';
|
82
|
-
}
|
83
|
-
}
|
84
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXTimeLeftFormatter, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
85
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXTimeLeftFormatter }); }
|
86
|
-
}
|
87
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXTimeLeftFormatter, decorators: [{
|
88
|
-
type: Injectable
|
89
|
-
}] });
|
90
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGltZWxlZnQtZm9ybWF0dGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb3JlL2RhdGUtdGltZS9zcmMvbGliL2Zvcm1hdHRlcnMvdGltZWxlZnQtZm9ybWF0dGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLFdBQVcsQ0FBQzs7QUFhbEMsTUFBTSxPQUFPLG1CQUFtQjtJQUM5QixJQUFJLElBQUk7UUFDTixPQUFPLFVBQVUsQ0FBQztJQUNwQixDQUFDO0lBRUQsTUFBTSxDQUFDLEtBQXNCLEVBQUUsT0FBb0M7UUFDakUsTUFBTSxXQUFXLEdBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ2xDLE1BQU0sSUFBSSxHQUFHLFdBQVcsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDO1FBQy9DLE1BQU0sWUFBWSxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDM0MsTUFBTSxpQkFBaUIsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUMsQ0FBQztRQUMxRCxJQUFJLE1BQU0sR0FBRyxPQUFPLEVBQUUsTUFBTSxDQUFDO1FBQzdCLDhDQUE4QztRQUM5QyxJQUFJLEtBQUssQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDO1lBQ2xCLElBQUksaUJBQWlCLEdBQUcsRUFBRTtnQkFBRSxNQUFNLEdBQUcsR0FBRyxDQUFDO2lCQUNwQyxJQUFJLGlCQUFpQixHQUFHLEVBQUUsR0FBRyxFQUFFO2dCQUFFLE1BQU0sR0FBRyxHQUFHLENBQUM7aUJBQzlDLElBQUksaUJBQWlCLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFO2dCQUFFLE1BQU0sR0FBRyxHQUFHLENB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QUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxHQUFHO29CQUFFLE9BQU8sV0FBVyxJQUFJLEVBQUUsQ0FBQztnQkFDckUsT0FBTyxHQUFHLEdBQUcsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLGlCQUFpQixHQUFHLENBQUMsSUFBSSxHQUFHLEVBQUUsR0FBRyxHQUFHLENBQUMsQ0FBQyxDQUFDLFVBQVUsSUFBSSxFQUFFLENBQUM7WUFDbkY7Z0JBQ0UsT0FBTyxnQkFBZ0IsQ0FBQztRQUM1QixDQUFDO0lBQ0gsQ0FBQzs4R0FwRVUsbUJBQW1CO2tIQUFuQixtQkFBbUI7OzJGQUFuQixtQkFBbUI7a0JBRC9CLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBWEZvcm1hdE9wdGlvbnMsIEFYRm9ybWF0dGVyIH0gZnJvbSAnQGFjb3JleC9jb3JlL2Zvcm1hdCc7XG5pbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBpc05pbCB9IGZyb20gJ2xvZGFzaC1lcyc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgQVhUaW1lTGVmdEZvcm1hdHRlck9wdGlvbnMgZXh0ZW5kcyBBWEZvcm1hdE9wdGlvbnMge1xuICBmb3JtYXQ6IHN0cmluZztcbn1cblxuZGVjbGFyZSBtb2R1bGUgJ0BhY29yZXgvY29yZS9mb3JtYXQnIHtcbiAgaW50ZXJmYWNlIEFYRm9ybWF0T3B0aW9uc01hcCB7XG4gICAgdGltZWxlZnQ6IEFYVGltZUxlZnRGb3JtYXR0ZXJPcHRpb25zO1xuICB9XG59XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBBWFRpbWVMZWZ0Rm9ybWF0dGVyIGltcGxlbWVudHMgQVhGb3JtYXR0ZXIge1xuICBnZXQgbmFtZSgpOiBzdHJpbmcge1xuICAgIHJldHVybiAndGltZWxlZnQnO1xuICB9XG5cbiAgZm9ybWF0KHZhbHVlOiBudW1iZXIgfCBzdHJpbmcsIG9wdGlvbnM/OiBBWFRpbWVMZWZ0Rm9ybWF0dGVyT3B0aW9ucyk6IHN0cmluZyB7XG4gICAgY29uc3QgdmFsdWVOdW1iZXIgPSBOdW1iZXIodmFsdWUpO1xuICAgIGNvbnN0IHNpZ24gPSB2YWx1ZU51bWJlciA+PSAwID8gJ2xlZnQnIDogJ2Fnbyc7XG4gICAgY29uc3QgbWlsbGlzZWNvbmRzID0gTWF0aC5hYnModmFsdWVOdW1iZXIpO1xuICAgIGNvbnN0IGR1cmF0aW9uSW5TZWNvbmRzID0gTWF0aC5yb3VuZChtaWxsaXNlY29uZHMgLyAxMDAwKTtcbiAgICBsZXQgZm9ybWF0ID0gb3B0aW9ucz8uZm9ybWF0O1xuICAgIC8vIERldGVybWluZSB0aGUgYmVzdCBmb3JtYXQgaWYgZm9ybWF0IGlzIG51bGxcbiAgICBpZiAoaXNOaWwoZm9ybWF0KSkge1xuICAgICAgaWYgKGR1cmF0aW9uSW5TZWNvbmRzIDwgNDUpIGZvcm1hdCA9ICdzJztcbiAgICAgIGVsc2UgaWYgKGR1cmF0aW9uSW5TZWNvbmRzIDwgNjAgKiA0NSkgZm9ybWF0ID0gJ20nO1xuICAgICAgZWxzZSBpZiAoZHVyYXRpb25JblNlY29uZHMgPCA2MCAqIDYwICogMjIpIGZvcm1hdCA9ICdoJztcbiAgICAgIGVsc2UgaWYgKGR1cmF0aW9uSW5TZWNvbmRzIDwgNjAgKiA2MCAqIDI0ICogMjYpIGZvcm1hdCA9ICdkJztcbiAgICAgIGVsc2UgaWYgKGR1cmF0aW9uSW5TZWNvbmRzIDwgNjAgKiA2MCAqIDI0ICogMzIwKSBmb3JtYXQgPSAnTSc7XG4gICAgICBlbHNlIGZvcm1hdCA9ICd5JztcbiAgICB9XG5cbiAgICAvLyBIZWxwZXIgZnVuY3Rpb24gZm9yIHplcm8tcGFkZGluZ1xuICAgIGNvbnN0IHBhZCA9IChudW06IG51bWJlcikgPT4gbnVtLnRvU3RyaW5nKCkucGFkU3RhcnQoMiwgJzAnKTtcblxuICAgIHN3aXRjaCAoZm9ybWF0KSB7XG4gICAgICBjYXNlICdzJzpcbiAgICAgICAgcmV0dXJuIGAke2R1cmF0aW9uSW5TZWNvbmRzfSBzZWNvbmRzICR7c2lnbn1gO1xuICAgICAgY2FzZSAnc3MnOlxuICAgICAgICByZXR1cm4gYCR7cGFkKGR1cmF0aW9uSW5TZWNvbmRzKX0gc2Vjb25kcyAke3NpZ259YDtcbiAgICAgIGNhc2UgJ20nOlxuICAgICAgICByZXR1cm4gYCR7TWF0aC5yb3VuZChkdXJhdGlvbkluU2Vjb25kcyAvIDYwKX0gbWludXRlJHtkdXJhdGlvbkluU2Vjb25kcyA+PSAxMjAgPyAncycgOiAnJ30gJHtzaWdufWA7XG4gICAgICBjYXNlICdtbSc6XG4gICAgICAgIHJldHVybiBgJHtwYWQoTWF0aC5yb3VuZChkdXJhdGlvbkluU2Vjb25kcyAvIDYwKSl9IG1pbnV0ZXMgJHtzaWdufWA7XG4gICAgICBjYXNlICdoJzpcbiAgICAgIGNhc2UgJ0gnOlxuICAgICAgICBpZiAoZHVyYXRpb25JblNlY29uZHMgPCA2MCAqIDg5KSByZXR1cm4gYGFuIGhvdXIgJHtzaWdufWA7XG4gICAgICAgIHJldHVybiBgJHtNYXRoLnJvdW5kKGR1cmF0aW9uSW5TZWNvbmRzIC8gMzYwMCl9IGhvdXIke2R1cmF0aW9uSW5TZWNvbmRzID49IDYwICogMTgwID8gJ3MnIDogJyd9ICR7c2lnbn1gO1xuICAgICAgY2FzZSAnaGgnOlxuICAgICAgY2FzZSAnSEgnOlxuICAgICAgICBpZiAoZHVyYXRpb25JblNlY29uZHMgPCA2MCAqIDg5KSByZXR1cm4gYDAxIGhvdXIgJHtzaWdufWA7XG4gICAgICAgIHJldHVybiBgJHtwYWQoTWF0aC5yb3VuZChkdXJhdGlvbkluU2Vjb25kcyAvIDM2MDApKX0gaG91cnMgJHtzaWdufWA7XG4gICAgICBjYXNlICdkJzpcbiAgICAgIGNhc2UgJ0QnOlxuICAgICAgICBpZiAoZHVyYXRpb25JblNlY29uZHMgPCA2MCAqIDYwICogMzUpIHJldHVybiBgYSBkYXkgJHtzaWdufWA7XG4gICAgICAgIHJldHVybiBgJHtNYXRoLnJvdW5kKGR1cmF0aW9uSW5TZWNvbmRzIC8gKDM2MDAgKiAyNCkpfSBkYXkke2R1cmF0aW9uSW5TZWNvbmRzID49IDYwICogNjAgKiA3MCA/ICdzJyA6ICcnfSAke3NpZ259YDtcbiAgICAgIGNhc2UgJ2RkJzpcbiAgICAgIGNhc2UgJ0REJzpcbiAgICAgICAgaWYgKGR1cmF0aW9uSW5TZWNvbmRzIDwgNjAgKiA2MCAqIDM1KSByZXR1cm4gYDAxIGRheSAke3NpZ259YDtcbiAgICAgICAgcmV0dXJuIGAke3BhZChNYXRoLnJvdW5kKGR1cmF0aW9uSW5TZWNvbmRzIC8gKDM2MDAgKiAyNCkpKX0gZGF5cyAke3NpZ259YDtcbiAgICAgIGNhc2UgJ00nOlxuICAgICAgICBpZiAoZHVyYXRpb25JblNlY29uZHMgPCA2MCAqIDYwICogMjQgKiA0NSkgcmV0dXJuIGBhIG1vbnRoICR7c2lnbn1gO1xuICAgICAgICByZXR1cm4gYCR7TWF0aC5yb3VuZChkdXJhdGlvbkluU2Vjb25kcyAvICgzNjAwICogMjQgKiAzMCkpfSBtb250aCR7ZHVyYXRpb25JblNlY29uZHMgPj0gNjAgKiA2MCAqIDI0ICogOTAgPyAncycgOiAnJ30gJHtzaWdufWA7XG4gICAgICBjYXNlICdNTSc6XG4gICAgICAgIGlmIChkdXJhdGlvbkluU2Vjb25kcyA8IDYwICogNjAgKiAyNCAqIDQ1KSByZXR1cm4gYDAxIG1vbnRoICR7c2lnbn1gO1xuICAgICAgICByZXR1cm4gYCR7cGFkKE1hdGgucm91bmQoZHVyYXRpb25JblNlY29uZHMgLyAoMzYwMCAqIDI0ICogMzApKSl9IG1vbnRocyAke3NpZ259YDtcbiAgICAgIGNhc2UgJ3knOlxuICAgICAgY2FzZSAnWSc6XG4gICAgICAgIGlmIChkdXJhdGlvbkluU2Vjb25kcyA8IDYwICogNjAgKiAyNCAqIDU0NykgcmV0dXJuIGBhIHllYXIgJHtzaWdufWA7XG4gICAgICAgIHJldHVybiBgJHtNYXRoLnJvdW5kKGR1cmF0aW9uSW5TZWNvbmRzIC8gKDM2MDAgKiAyNCAqIDM2NSkpfSB5ZWFyJHtkdXJhdGlvbkluU2Vjb25kcyA+PSA2MCAqIDYwICogMjQgKiA3MzAgPyAncycgOiAnJ30gJHtzaWdufWA7XG4gICAgICBjYXNlICd5eSc6XG4gICAgICBjYXNlICdZWSc6XG4gICAgICBjYXNlICd5eXl5JzpcbiAgICAgIGNhc2UgJ1lZWVknOlxuICAgICAgICBpZiAoZHVyYXRpb25JblNlY29uZHMgPCA2MCAqIDYwICogMjQgKiA1NDcpIHJldHVybiBgMDEgeWVhciAke3NpZ259YDtcbiAgICAgICAgcmV0dXJuIGAke3BhZChNYXRoLnJvdW5kKGR1cmF0aW9uSW5TZWNvbmRzIC8gKDM2MDAgKiAyNCAqIDM2NSkpKX0geWVhcnMgJHtzaWdufWA7XG4gICAgICBkZWZhdWx0OlxuICAgICAgICByZXR1cm4gJ0ludmFsaWQgZm9ybWF0JztcbiAgICB9XG4gIH1cbn1cbiJdfQ==
|
@@ -1,198 +0,0 @@
|
|
1
|
-
import { AXCalendar, AXDateTime } from './datetime.class';
|
2
|
-
export class GeorgianCalendar extends AXCalendar {
|
3
|
-
/**
|
4
|
-
* @ignore
|
5
|
-
*/
|
6
|
-
constructor(config) {
|
7
|
-
super(config);
|
8
|
-
}
|
9
|
-
create(value) {
|
10
|
-
return new AXDateTime(new Date(value.year, value.month - 1, value.date, value.hours || 0, value.minutes || 0, value.seconds || 0, value.ms || 0), this);
|
11
|
-
}
|
12
|
-
name() {
|
13
|
-
return 'georgian';
|
14
|
-
}
|
15
|
-
dayOfMonth(date) {
|
16
|
-
return date.getDate();
|
17
|
-
}
|
18
|
-
dayOfYear(date) {
|
19
|
-
let result = 0;
|
20
|
-
let m = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];
|
21
|
-
if (this.isLeap(date)) {
|
22
|
-
m[1] = 29;
|
23
|
-
}
|
24
|
-
for (let i = 0; i < date.getMonth(); i++) {
|
25
|
-
result = result + m[i];
|
26
|
-
}
|
27
|
-
result += date.getDate();
|
28
|
-
return result;
|
29
|
-
}
|
30
|
-
dayOfWeek(date) {
|
31
|
-
return date.getDay() + 1;
|
32
|
-
}
|
33
|
-
weekOfYear(date) {
|
34
|
-
const firstDay = new AXDateTime(date, this).startOf('year');
|
35
|
-
return Math.ceil(((date.getTime() - firstDay.date.getTime()) / 86400000 + firstDay.date.getDay() + 1) / 7);
|
36
|
-
}
|
37
|
-
year(date) {
|
38
|
-
return date.getFullYear();
|
39
|
-
}
|
40
|
-
monthOfYear(date) {
|
41
|
-
return date.getMonth() + 1;
|
42
|
-
}
|
43
|
-
add(date, unit, amount) {
|
44
|
-
let value = date.valueOf();
|
45
|
-
switch (unit) {
|
46
|
-
case 'second':
|
47
|
-
value += 1000 * amount;
|
48
|
-
break;
|
49
|
-
case 'minute':
|
50
|
-
value += 60000 * amount;
|
51
|
-
break;
|
52
|
-
case 'hour':
|
53
|
-
value += 3600000 * amount;
|
54
|
-
break;
|
55
|
-
case 'month': {
|
56
|
-
const v = new Date(value);
|
57
|
-
// Calculate the new year and month considering the amount
|
58
|
-
let newYear = v.getFullYear();
|
59
|
-
let newMonth = v.getMonth() + amount;
|
60
|
-
// Adjust for year overflow or underflow
|
61
|
-
while (newMonth > 11) {
|
62
|
-
newMonth -= 12;
|
63
|
-
newYear++;
|
64
|
-
}
|
65
|
-
while (newMonth < 0) {
|
66
|
-
newMonth += 12;
|
67
|
-
newYear--;
|
68
|
-
}
|
69
|
-
// Set the date to the first of the month to prevent overflow
|
70
|
-
v.setDate(1);
|
71
|
-
v.setFullYear(newYear);
|
72
|
-
v.setMonth(newMonth);
|
73
|
-
// Get the last day of the new month
|
74
|
-
const lastDayOfMonth = new Date(newYear, newMonth + 1, 0).getDate();
|
75
|
-
// Set the date to either the original day or the last day of the new month, whichever is smaller
|
76
|
-
const originalDay = date.getDate();
|
77
|
-
v.setDate(Math.min(originalDay, lastDayOfMonth));
|
78
|
-
value = v.valueOf();
|
79
|
-
break;
|
80
|
-
}
|
81
|
-
case 'week':
|
82
|
-
value += 7 * 86400000 * amount;
|
83
|
-
break;
|
84
|
-
case 'year': {
|
85
|
-
const newDate = new Date(value);
|
86
|
-
newDate.setFullYear(newDate.getFullYear() + amount);
|
87
|
-
// Handling for leap years: if the original date is February 29th, and the new year is not a leap year,
|
88
|
-
// set the date to February 28th.
|
89
|
-
if (date.getMonth() === 1 && date.getDate() === 29 && newDate.getMonth() !== 1) {
|
90
|
-
newDate.setMonth(1);
|
91
|
-
newDate.setDate(28);
|
92
|
-
}
|
93
|
-
value = newDate.valueOf();
|
94
|
-
break;
|
95
|
-
}
|
96
|
-
case 'day':
|
97
|
-
default:
|
98
|
-
value += 86400000 * amount;
|
99
|
-
}
|
100
|
-
return new AXDateTime(new Date(value), this);
|
101
|
-
}
|
102
|
-
set(date, unit, value) {
|
103
|
-
const clone = new Date(date.valueOf());
|
104
|
-
switch (unit) {
|
105
|
-
case 'second':
|
106
|
-
clone.setHours(clone.getHours(), clone.getMinutes(), value, clone.getMilliseconds());
|
107
|
-
break;
|
108
|
-
case 'minute':
|
109
|
-
clone.setHours(clone.getHours(), value, clone.getSeconds(), clone.getMilliseconds());
|
110
|
-
break;
|
111
|
-
case 'hour':
|
112
|
-
clone.setHours(value, clone.getMinutes(), clone.getSeconds(), clone.getMilliseconds());
|
113
|
-
break;
|
114
|
-
default:
|
115
|
-
case 'day':
|
116
|
-
clone.setDate(value);
|
117
|
-
break;
|
118
|
-
case 'week':
|
119
|
-
break;
|
120
|
-
case 'month':
|
121
|
-
clone.setMonth(Math.max(0, value - 1));
|
122
|
-
break;
|
123
|
-
case 'year':
|
124
|
-
clone.setFullYear(value);
|
125
|
-
break;
|
126
|
-
}
|
127
|
-
return new AXDateTime(clone, this);
|
128
|
-
}
|
129
|
-
startOf(date, unit) {
|
130
|
-
const clone = new Date(date.valueOf());
|
131
|
-
switch (unit) {
|
132
|
-
case 'second':
|
133
|
-
clone.setHours(clone.getHours(), clone.getMinutes(), clone.getSeconds(), 0);
|
134
|
-
return new AXDateTime(clone, this);
|
135
|
-
case 'minute':
|
136
|
-
clone.setHours(clone.getHours(), clone.getMinutes(), 0, 0);
|
137
|
-
return new AXDateTime(clone, this);
|
138
|
-
case 'hour':
|
139
|
-
clone.setHours(clone.getHours(), 0, 0, 0);
|
140
|
-
return new AXDateTime(clone, this);
|
141
|
-
default:
|
142
|
-
case 'day':
|
143
|
-
clone.setHours(0, 0, 0, 0);
|
144
|
-
return new AXDateTime(clone, this);
|
145
|
-
case 'week': {
|
146
|
-
const start = 1; // Week starts on Monday
|
147
|
-
const day = clone.getDay();
|
148
|
-
const diff = clone.getDate() - day + (day == 0 ? -6 : start - day);
|
149
|
-
clone.setDate(diff);
|
150
|
-
clone.setHours(0, 0, 0, 0);
|
151
|
-
return new AXDateTime(clone, this);
|
152
|
-
}
|
153
|
-
case 'month':
|
154
|
-
clone.setDate(1);
|
155
|
-
return new AXDateTime(clone, this).startOf('day');
|
156
|
-
case 'year':
|
157
|
-
clone.setMonth(0);
|
158
|
-
clone.setDate(1);
|
159
|
-
return new AXDateTime(clone, this).startOf('day');
|
160
|
-
}
|
161
|
-
}
|
162
|
-
endOf(date, unit) {
|
163
|
-
const clone = new Date(date.valueOf());
|
164
|
-
switch (unit) {
|
165
|
-
case 'second':
|
166
|
-
clone.setHours(clone.getHours(), clone.getMinutes(), clone.getSeconds(), 999);
|
167
|
-
return new AXDateTime(clone, this);
|
168
|
-
case 'minute':
|
169
|
-
clone.setHours(clone.getHours(), clone.getMinutes(), 59, 999);
|
170
|
-
return new AXDateTime(clone, this);
|
171
|
-
case 'hour':
|
172
|
-
clone.setHours(clone.getHours(), 59, 59, 999);
|
173
|
-
return new AXDateTime(clone, this);
|
174
|
-
default:
|
175
|
-
case 'day':
|
176
|
-
clone.setHours(23, 59, 59, 999);
|
177
|
-
return new AXDateTime(clone, this);
|
178
|
-
case 'week':
|
179
|
-
return this.startOf(date, 'week').add('day', 6).endOf('day');
|
180
|
-
case 'month': {
|
181
|
-
const dateObj = new Date(date.getFullYear(), date.getMonth() + 1, 0);
|
182
|
-
dateObj.setHours(23, 59, 59, 999);
|
183
|
-
return new AXDateTime(dateObj, this);
|
184
|
-
}
|
185
|
-
case 'year':
|
186
|
-
clone.setMonth(11);
|
187
|
-
return new AXDateTime(clone, this).endOf('month');
|
188
|
-
}
|
189
|
-
}
|
190
|
-
isLeap(date) {
|
191
|
-
let leapYear = new Date(date.getFullYear(), 1, 29);
|
192
|
-
return leapYear.getDate() == 29;
|
193
|
-
}
|
194
|
-
parse(value) {
|
195
|
-
return new AXDateTime(new Date(value), this);
|
196
|
-
}
|
197
|
-
}
|
198
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2VvcmdpYW4uY2FsZW5kYXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvcmUvZGF0ZS10aW1lL3NyYy9saWIvZ2VvcmdpYW4uY2FsZW5kYXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBb0IsVUFBVSxFQUF5QixNQUFNLGtCQUFrQixDQUFDO0FBRW5HLE1BQU0sT0FBTyxnQkFBaUIsU0FBUSxVQUFVO0lBQzlDOztPQUVHO0lBQ0gsWUFBWSxNQUF3QjtRQUNsQyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDaEIsQ0FBQztJQUVELE1BQU0sQ0FBQyxLQUFrQjtRQUN2QixPQUFPLElBQUksVUFBVSxDQUNuQixJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxFQUFFLEtBQUssQ0FBQyxLQUFLLEdBQUcsQ0FBQyxFQUFFLEtBQUssQ0FBQyxJQUFJLEVBQUUsS0FBSyxDQUFDLEtBQUssSUFBSSxDQUFDLEVBQUUsS0FBSyxDQUFDLE9BQU8sSUFBSSxDQUFDLEVBQUUsS0FBSyxDQUFDLE9BQU8sSUFBSSxDQUFDLEVBQUUsS0FBSyxDQUFDLEVBQUUsSUFBSSxDQUFDLENBQUMsRUFDMUgsSUFBSSxDQUNMLENBQUM7SUFDSixDQUFDO0lBRUQsSUFBSTtRQUNGLE9BQU8sVUFBVSxDQUFDO0lBQ3BCLENBQUM7SUFFRCxVQUFVLENBQUMsSUFBVTtRQUNuQixPQUFPLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztJQUN4QixDQUFDO0lBRUQsU0FBUyxDQUFDLElBQVU7UUFDbEIsSUFBSSxNQUFNLEdBQUcsQ0FBQyxDQUFDO1FBQ2YsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVB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VUFBVSxDQUFDLE9BQU8sRUFBRSxJQUFJLENBQUMsQ0FBQztZQUN2QyxDQUFDO1lBQ0QsS0FBSyxNQUFNO2dCQUNULEtBQUssQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDLENBQUM7Z0JBQ25CLE9BQU8sSUFBSSxVQUFVLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUN0RCxDQUFDO0lBQ0gsQ0FBQztJQUVELE1BQU0sQ0FBQyxJQUFVO1FBQ2YsSUFBSSxRQUFRLEdBQUcsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQztRQUNuRCxPQUFPLFFBQVEsQ0FBQyxPQUFPLEVBQUUsSUFBSSxFQUFFLENBQUM7SUFDbEMsQ0FBQztJQUVELEtBQUssQ0FBQyxLQUFhO1FBQ2pCLE9BQU8sSUFBSSxVQUFVLENBQUMsSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDL0MsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQVhDYWxlbmRhciwgQVhDYWxlbmRhckNvbmZpZywgQVhEYXRlVGltZSwgQVhEYXRlVmFsdWUsIFRpbWVVbml0IH0gZnJvbSAnLi9kYXRldGltZS5jbGFzcyc7XG5cbmV4cG9ydCBjbGFzcyBHZW9yZ2lhbkNhbGVuZGFyIGV4dGVuZHMgQVhDYWxlbmRhciB7XG4gIC8qKlxuICAgKiBAaWdub3JlXG4gICAqL1xuICBjb25zdHJ1Y3Rvcihjb25maWc6IEFYQ2FsZW5kYXJDb25maWcpIHtcbiAgICBzdXBlcihjb25maWcpO1xuICB9XG5cbiAgY3JlYXRlKHZhbHVlOiBBWERhdGVWYWx1ZSk6IEFYRGF0ZVRpbWUge1xuICAgIHJldHVybiBuZXcgQVhEYXRlVGltZShcbiAgICAgIG5ldyBEYXRlKHZhbHVlLnllYXIsIHZhbHVlLm1vbnRoIC0gMSwgdmFsdWUuZGF0ZSwgdmFsdWUuaG91cnMgfHwgMCwgdmFsdWUubWludXRlcyB8fCAwLCB2YWx1ZS5zZWNvbmRzIHx8IDAsIHZhbHVlLm1zIHx8IDApLFxuICAgICAgdGhpcyxcbiAgICApO1xuICB9XG5cbiAgbmFtZSgpOiBzdHJpbmcge1xuICAgIHJldHVybiAnZ2VvcmdpYW4nO1xuICB9XG5cbiAgZGF5T2ZNb250aChkYXRlOiBEYXRlKTogbnVtYmVyIHtcbiAgICByZXR1cm4gZGF0ZS5nZXREYXRlKCk7XG4gIH1cblxuICBkYXlPZlllYXIoZGF0ZTogRGF0ZSk6IG51bWJlciB7XG4gICAgbGV0IHJlc3VsdCA9IDA7XG4gICAgbGV0IG0gPSBbMzEsIDI4LCAzMSwgMzAsIDMxLCAzMCwgMzEsIDMxLCAzMCwgMzEsIDMwLCAzMV07XG4gICAgaWYgKHRoaXMuaXNMZWFwKGRhdGUpKSB7XG4gICAgICBtWzFdID0gMjk7XG4gICAgfVxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgZGF0ZS5nZXRNb250aCgpOyBpKyspIHtcbiAgICAgIHJlc3VsdCA9IHJlc3VsdCArIG1baV07XG4gICAgfVxuICAgIHJlc3VsdCArPSBkYXRlLmdldERhdGUoKTtcbiAgICByZXR1cm4gcmVzdWx0O1xuICB9XG5cbiAgZGF5T2ZXZWVrKGRhdGU6IERhdGUpOiBudW1iZXIge1xuICAgIHJldHVybiBkYXRlLmdldERheSgpICsgMTtcbiAgfVxuXG4gIHdlZWtPZlllYXIoZGF0ZTogRGF0ZSk6IG51bWJlciB7XG4gICAgY29uc3QgZmlyc3REYXkgPSBuZXcgQVhEYXRlVGltZShkYXRlLCB0aGlzKS5zdGFydE9mKCd5ZWFyJyk7XG4gICAgcmV0dXJuIE1hdGguY2VpbCgoKGRhdGUuZ2V0VGltZSgpIC0gZmlyc3REYXkuZGF0ZS5nZXRUaW1lKCkpIC8gODY0MDAwMDAgKyBmaXJzdERheS5kYXRlLmdldERheSgpICsgMSkgLyA3KTtcbiAgfVxuXG4gIHllYXIoZGF0ZTogRGF0ZSk6IG51bWJlciB7XG4gICAgcmV0dXJuIGRhdGUuZ2V0RnVsbFllYXIoKTtcbiAgfVxuXG4gIG1vbnRoT2ZZZWFyKGRhdGU6IERhdGUpOiBudW1iZXIge1xuICAgIHJldHVybiBkYXRlLmdldE1vbnRoKCkgKyAxO1xuICB9XG5cbiAgYWRkKGRhdGU6IERhdGUsIHVuaXQ6IFRpbWVVbml0LCBhbW91bnQ6IG51bWJlcik6IEFYRGF0ZVRpbWUge1xuICAgIGxldCB2YWx1ZSA9IGRhdGUudmFsdWVPZigpO1xuICAgIHN3aXRjaCAodW5pdCkge1xuICAgICAgY2FzZSAnc2Vjb25kJzpcbiAgICAgICAgdmFsdWUgKz0gMTAwMCAqIGFtb3VudDtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdtaW51dGUnOlxuICAgICAgICB2YWx1ZSArPSA2MDAwMCAqIGFtb3VudDtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdob3VyJzpcbiAgICAgICAgdmFsdWUgKz0gMzYwMDAwMCAqIGFtb3VudDtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdtb250aCc6IHtcbiAgICAgICAgY29uc3QgdiA9IG5ldyBEYXRlKHZhbHVlKTtcblxuICAgICAgICAvLyBDYWxjdWxhdGUgdGhlIG5ldyB5ZWFyIGFuZCBtb250aCBjb25zaWRlcmluZyB0aGUgYW1vdW50XG4gICAgICAgIGxldCBuZXdZZWFyID0gdi5nZXRGdWxsWWVhcigpO1xuICAgICAgICBsZXQgbmV3TW9udGggPSB2LmdldE1vbnRoKCkgKyBhbW91bnQ7XG5cbiAgICAgICAgLy8gQWRqdXN0IGZvciB5ZWFyIG92ZXJmbG93IG9yIHVuZGVyZmxvd1xuICAgICAgICB3aGlsZSAobmV3TW9udGggPiAxMSkge1xuICAgICAgICAgIG5ld01vbnRoIC09IDEyO1xuICAgICAgICAgIG5ld1llYXIrKztcbiAgICAgICAgfVxuICAgICAgICB3aGlsZSAobmV3TW9udGggPCAwKSB7XG4gICAgICAgICAgbmV3TW9udGggKz0gMTI7XG4gICAgICAgICAgbmV3WWVhci0tO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gU2V0IHRoZSBkYXRlIHRvIHRoZSBmaXJzdCBvZiB0aGUgbW9udGggdG8gcHJldmVudCBvdmVyZmxvd1xuICAgICAgICB2LnNldERhdGUoMSk7XG4gICAgICAgIHYuc2V0RnVsbFllYXIobmV3WWVhcik7XG4gICAgICAgIHYuc2V0TW9udGgobmV3TW9udGgpO1xuXG4gICAgICAgIC8vIEdldCB0aGUgbGFzdCBkYXkgb2YgdGhlIG5ldyBtb250aFxuICAgICAgICBjb25zdCBsYXN0RGF5T2ZNb250aCA9IG5ldyBEYXRlKG5ld1llYXIsIG5ld01vbnRoICsgMSwgMCkuZ2V0RGF0ZSgpO1xuXG4gICAgICAgIC8vIFNldCB0aGUgZGF0ZSB0byBlaXRoZXIgdGhlIG9yaWdpbmFsIGRheSBvciB0aGUgbGFzdCBkYXkgb2YgdGhlIG5ldyBtb250aCwgd2hpY2hldmVyIGlzIHNtYWxsZXJcbiAgICAgICAgY29uc3Qgb3JpZ2luYWxEYXkgPSBkYXRlLmdldERhdGUoKTtcbiAgICAgICAgdi5zZXREYXRlKE1hdGgubWluKG9yaWdpbmFsRGF5LCBsYXN0RGF5T2ZNb250aCkpO1xuXG4gICAgICAgIHZhbHVlID0gdi52YWx1ZU9mKCk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgICAgY2FzZSAnd2Vlayc6XG4gICAgICAgIHZhbHVlICs9IDcgKiA4NjQwMDAwMCAqIGFtb3VudDtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICd5ZWFyJzoge1xuICAgICAgICBjb25zdCBuZXdEYXRlID0gbmV3IERhdGUodmFsdWUpO1xuICAgICAgICBuZXdEYXRlLnNldEZ1bGxZZWFyKG5ld0RhdGUuZ2V0RnVsbFllYXIoKSArIGFtb3VudCk7XG4gICAgICAgIC8vIEhhbmRsaW5nIGZvciBsZWFwIHllYXJzOiBpZiB0aGUgb3JpZ2luYWwgZGF0ZSBpcyBGZWJydWFyeSAyOXRoLCBhbmQgdGhlIG5ldyB5ZWFyIGlzIG5vdCBhIGxlYXAgeWVhcixcbiAgICAgICAgLy8gc2V0IHRoZSBkYXRlIHRvIEZlYnJ1YXJ5IDI4dGguXG4gICAgICAgIGlmIChkYXRlLmdldE1vbnRoKCkgPT09IDEgJiYgZGF0ZS5nZXREYXRlKCkgPT09IDI5ICYmIG5ld0RhdGUuZ2V0TW9udGgoKSAhPT0gMSkge1xuICAgICAgICAgIG5ld0RhdGUuc2V0TW9udGgoMSk7XG4gICAgICAgICAgbmV3RGF0ZS5zZXREYXRlKDI4KTtcbiAgICAgICAgfVxuICAgICAgICB2YWx1ZSA9IG5ld0RhdGUudmFsdWVPZigpO1xuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICAgIGNhc2UgJ2RheSc6XG4gICAgICBkZWZhdWx0OlxuICAgICAgICB2YWx1ZSArPSA4NjQwMDAwMCAqIGFtb3VudDtcbiAgICB9XG4gICAgcmV0dXJuIG5ldyBBWERhdGVUaW1lKG5ldyBEYXRlKHZhbHVlKSwgdGhpcyk7XG4gIH1cblxuICBzZXQoZGF0ZTogRGF0ZSwgdW5pdDogVGltZVVuaXQsIHZhbHVlOiBudW1iZXIpOiBBWERhdGVUaW1lIHtcbiAgICBjb25zdCBjbG9uZSA9IG5ldyBEYXRlKGRhdGUudmFsdWVPZigpKTtcbiAgICBzd2l0Y2ggKHVuaXQpIHtcbiAgICAgIGNhc2UgJ3NlY29uZCc6XG4gICAgICAgIGNsb25lLnNldEhvdXJzKGNsb25lLmdldEhvdXJzKCksIGNsb25lLmdldE1pbnV0ZXMoKSwgdmFsdWUsIGNsb25lLmdldE1pbGxpc2Vjb25kcygpKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdtaW51dGUnOlxuICAgICAgICBjbG9uZS5zZXRIb3VycyhjbG9uZS5nZXRIb3VycygpLCB2YWx1ZSwgY2xvbmUuZ2V0U2Vjb25kcygpLCBjbG9uZS5nZXRNaWxsaXNlY29uZHMoKSk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnaG91cic6XG4gICAgICAgIGNsb25lLnNldEhvdXJzKHZhbHVlLCBjbG9uZS5nZXRNaW51dGVzKCksIGNsb25lLmdldFNlY29uZHMoKSwgY2xvbmUuZ2V0TWlsbGlzZWNvbmRzKCkpO1xuICAgICAgICBicmVhaztcbiAgICAgIGRlZmF1bHQ6XG4gICAgICBjYXNlICdkYXknOlxuICAgICAgICBjbG9uZS5zZXREYXRlKHZhbHVlKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICd3ZWVrJzpcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdtb250aCc6XG4gICAgICAgIGNsb25lLnNldE1vbnRoKE1hdGgubWF4KDAsIHZhbHVlIC0gMSkpO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ3llYXInOlxuICAgICAgICBjbG9uZS5zZXRGdWxsWWVhcih2YWx1ZSk7XG4gICAgICAgIGJyZWFrO1xuICAgIH1cbiAgICByZXR1cm4gbmV3IEFYRGF0ZVRpbWUoY2xvbmUsIHRoaXMpO1xuICB9XG5cbiAgc3RhcnRPZihkYXRlOiBEYXRlLCB1bml0OiBUaW1lVW5pdCk6IEFYRGF0ZVRpbWUge1xuICAgIGNvbnN0IGNsb25lID0gbmV3IERhdGUoZGF0ZS52YWx1ZU9mKCkpO1xuICAgIHN3aXRjaCAodW5pdCkge1xuICAgICAgY2FzZSAnc2Vjb25kJzpcbiAgICAgICAgY2xvbmUuc2V0SG91cnMoY2xvbmUuZ2V0SG91cnMoKSwgY2xvbmUuZ2V0TWludXRlcygpLCBjbG9uZS5nZXRTZWNvbmRzKCksIDApO1xuICAgICAgICByZXR1cm4gbmV3IEFYRGF0ZVRpbWUoY2xvbmUsIHRoaXMpO1xuICAgICAgY2FzZSAnbWludXRlJzpcbiAgICAgICAgY2xvbmUuc2V0SG91cnMoY2xvbmUuZ2V0SG91cnMoKSwgY2xvbmUuZ2V0TWludXRlcygpLCAwLCAwKTtcbiAgICAgICAgcmV0dXJuIG5ldyBBWERhdGVUaW1lKGNsb25lLCB0aGlzKTtcbiAgICAgIGNhc2UgJ2hvdXInOlxuICAgICAgICBjbG9uZS5zZXRIb3VycyhjbG9uZS5nZXRIb3VycygpLCAwLCAwLCAwKTtcbiAgICAgICAgcmV0dXJuIG5ldyBBWERhdGVUaW1lKGNsb25lLCB0aGlzKTtcbiAgICAgIGRlZmF1bHQ6XG4gICAgICBjYXNlICdkYXknOlxuICAgICAgICBjbG9uZS5zZXRIb3VycygwLCAwLCAwLCAwKTtcbiAgICAgICAgcmV0dXJuIG5ldyBBWERhdGVUaW1lKGNsb25lLCB0aGlzKTtcbiAgICAgIGNhc2UgJ3dlZWsnOiB7XG4gICAgICAgIGNvbnN0IHN0YXJ0ID0gMTsgLy8gV2VlayBzdGFydHMgb24gTW9uZGF5XG4gICAgICAgIGNvbnN0IGRheSA9IGNsb25lLmdldERheSgpO1xuICAgICAgICBjb25zdCBkaWZmID0gY2xvbmUuZ2V0RGF0ZSgpIC0gZGF5ICsgKGRheSA9PSAwID8gLTYgOiBzdGFydCAtIGRheSk7XG4gICAgICAgIGNsb25lLnNldERhdGUoZGlmZik7XG4gICAgICAgIGNsb25lLnNldEhvdXJzKDAsIDAsIDAsIDApO1xuICAgICAgICByZXR1cm4gbmV3IEFYRGF0ZVRpbWUoY2xvbmUsIHRoaXMpO1xuICAgICAgfVxuICAgICAgY2FzZSAnbW9udGgnOlxuICAgICAgICBjbG9uZS5zZXREYXRlKDEpO1xuICAgICAgICByZXR1cm4gbmV3IEFYRGF0ZVRpbWUoY2xvbmUsIHRoaXMpLnN0YXJ0T2YoJ2RheScpO1xuICAgICAgY2FzZSAneWVhcic6XG4gICAgICAgIGNsb25lLnNldE1vbnRoKDApO1xuICAgICAgICBjbG9uZS5zZXREYXRlKDEpO1xuICAgICAgICByZXR1cm4gbmV3IEFYRGF0ZVRpbWUoY2xvbmUsIHRoaXMpLnN0YXJ0T2YoJ2RheScpO1xuICAgIH1cbiAgfVxuXG4gIGVuZE9mKGRhdGU6IERhdGUsIHVuaXQ6IFRpbWVVbml0KTogQVhEYXRlVGltZSB7XG4gICAgY29uc3QgY2xvbmUgPSBuZXcgRGF0ZShkYXRlLnZhbHVlT2YoKSk7XG4gICAgc3dpdGNoICh1bml0KSB7XG4gICAgICBjYXNlICdzZWNvbmQnOlxuICAgICAgICBjbG9uZS5zZXRIb3VycyhjbG9uZS5nZXRIb3VycygpLCBjbG9uZS5nZXRNaW51dGVzKCksIGNsb25lLmdldFNlY29uZHMoKSwgOTk5KTtcbiAgICAgICAgcmV0dXJuIG5ldyBBWERhdGVUaW1lKGNsb25lLCB0aGlzKTtcbiAgICAgIGNhc2UgJ21pbnV0ZSc6XG4gICAgICAgIGNsb25lLnNldEhvdXJzKGNsb25lLmdldEhvdXJzKCksIGNsb25lLmdldE1pbnV0ZXMoKSwgNTksIDk5OSk7XG4gICAgICAgIHJldHVybiBuZXcgQVhEYXRlVGltZShjbG9uZSwgdGhpcyk7XG4gICAgICBjYXNlICdob3VyJzpcbiAgICAgICAgY2xvbmUuc2V0SG91cnMoY2xvbmUuZ2V0SG91cnMoKSwgNTksIDU5LCA5OTkpO1xuICAgICAgICByZXR1cm4gbmV3IEFYRGF0ZVRpbWUoY2xvbmUsIHRoaXMpO1xuICAgICAgZGVmYXVsdDpcbiAgICAgIGNhc2UgJ2RheSc6XG4gICAgICAgIGNsb25lLnNldEhvdXJzKDIzLCA1OSwgNTksIDk5OSk7XG4gICAgICAgIHJldHVybiBuZXcgQVhEYXRlVGltZShjbG9uZSwgdGhpcyk7XG4gICAgICBjYXNlICd3ZWVrJzpcbiAgICAgICAgcmV0dXJuIHRoaXMuc3RhcnRPZihkYXRlLCAnd2VlaycpLmFkZCgnZGF5JywgNikuZW5kT2YoJ2RheScpO1xuICAgICAgY2FzZSAnbW9udGgnOiB7XG4gICAgICAgIGNvbnN0IGRhdGVPYmogPSBuZXcgRGF0ZShkYXRlLmdldEZ1bGxZZWFyKCksIGRhdGUuZ2V0TW9udGgoKSArIDEsIDApO1xuICAgICAgICBkYXRlT2JqLnNldEhvdXJzKDIzLCA1OSwgNTksIDk5OSk7XG4gICAgICAgIHJldHVybiBuZXcgQVhEYXRlVGltZShkYXRlT2JqLCB0aGlzKTtcbiAgICAgIH1cbiAgICAgIGNhc2UgJ3llYXInOlxuICAgICAgICBjbG9uZS5zZXRNb250aCgxMSk7XG4gICAgICAgIHJldHVybiBuZXcgQVhEYXRlVGltZShjbG9uZSwgdGhpcykuZW5kT2YoJ21vbnRoJyk7XG4gICAgfVxuICB9XG5cbiAgaXNMZWFwKGRhdGU6IERhdGUpIHtcbiAgICBsZXQgbGVhcFllYXIgPSBuZXcgRGF0ZShkYXRlLmdldEZ1bGxZZWFyKCksIDEsIDI5KTtcbiAgICByZXR1cm4gbGVhcFllYXIuZ2V0RGF0ZSgpID09IDI5O1xuICB9XG5cbiAgcGFyc2UodmFsdWU6IHN0cmluZyk6IEFYRGF0ZVRpbWUge1xuICAgIHJldHVybiBuZXcgQVhEYXRlVGltZShuZXcgRGF0ZSh2YWx1ZSksIHRoaXMpO1xuICB9XG59XG4iXX0=
|
@@ -1,13 +0,0 @@
|
|
1
|
-
import { InjectionToken } from '@angular/core';
|
2
|
-
export class AXHolidaysLoaderDefault {
|
3
|
-
getHolidays(options) {
|
4
|
-
return Promise.resolve([]);
|
5
|
-
}
|
6
|
-
}
|
7
|
-
export const AX_DATETIME_HOLIDAYS_LOADER = new InjectionToken('AX_DATETIME_HOLIDAYS_LOADER', {
|
8
|
-
providedIn: 'root',
|
9
|
-
factory: () => {
|
10
|
-
return new AXHolidaysLoaderDefault();
|
11
|
-
},
|
12
|
-
});
|
13
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaG9saWRheXMubG9hZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb3JlL2RhdGUtdGltZS9zcmMvbGliL2hvbGlkYXlzLmxvYWRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBa0IvQyxNQUFNLE9BQU8sdUJBQXVCO0lBQ2xDLFdBQVcsQ0FBQyxPQUE2QztRQUN2RCxPQUFPLE9BQU8sQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDN0IsQ0FBQztDQUNGO0FBRUQsTUFBTSxDQUFDLE1BQU0sMkJBQTJCLEdBQUcsSUFBSSxjQUFjLENBQW1CLDZCQUE2QixFQUFFO0lBQzdHLFVBQVUsRUFBRSxNQUFNO0lBQ2xCLE9BQU8sRUFBRSxHQUFHLEVBQUU7UUFDWixPQUFPLElBQUksdUJBQXVCLEVBQUUsQ0FBQztJQUN2QyxDQUFDO0NBQ0YsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0aW9uVG9rZW4gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuZXhwb3J0IGludGVyZmFjZSBBWEhvbGlkYXlEYXRlIHtcbiAgZGF0ZTogRGF0ZTtcbiAgdGl0bGU6IHN0cmluZztcbiAgZGVzY3JpcHRpb24/OiBzdHJpbmc7XG4gIFtrZXk6IHN0cmluZ106IHVua25vd247XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQVhIb2xpZGF5c0xvYWRlck9wdGlvbnMge1xuICBjYWxlbmRhcj86IHN0cmluZztcbiAgcmFuZ2U/OiB7IHN0YXJ0OiBEYXRlOyBlbmQ6IERhdGUgfTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBBWEhvbGlkYXlzTG9hZGVyIHtcbiAgZ2V0SG9saWRheXMob3B0aW9ucz86IEFYSG9saWRheXNMb2FkZXJPcHRpb25zKTogUHJvbWlzZTxBWEhvbGlkYXlEYXRlW10+O1xufVxuXG5leHBvcnQgY2xhc3MgQVhIb2xpZGF5c0xvYWRlckRlZmF1bHQgaW1wbGVtZW50cyBBWEhvbGlkYXlzTG9hZGVyIHtcbiAgZ2V0SG9saWRheXMob3B0aW9ucz86IEFYSG9saWRheXNMb2FkZXJPcHRpb25zIHwgdW5kZWZpbmVkKTogUHJvbWlzZTxBWEhvbGlkYXlEYXRlW10+IHtcbiAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKFtdKTtcbiAgfVxufVxuXG5leHBvcnQgY29uc3QgQVhfREFURVRJTUVfSE9MSURBWVNfTE9BREVSID0gbmV3IEluamVjdGlvblRva2VuPEFYSG9saWRheXNMb2FkZXI+KCdBWF9EQVRFVElNRV9IT0xJREFZU19MT0FERVInLCB7XG4gIHByb3ZpZGVkSW46ICdyb290JyxcbiAgZmFjdG9yeTogKCkgPT4ge1xuICAgIHJldHVybiBuZXcgQVhIb2xpZGF5c0xvYWRlckRlZmF1bHQoKTtcbiAgfSxcbn0pO1xuIl19
|