@acorex/core 16.0.2 → 17.0.1
Sign up to get free protection for your applications and to get access to all the features.
- package/common/README.md +3 -0
- package/common/countries/countries.data.d.ts +2 -0
- package/common/countries/country.d.ts +13 -0
- package/common/index.d.ts +2 -0
- package/config/README.md +3 -0
- package/config/index.d.ts +2 -0
- package/config/lib/configs.d.ts +6 -0
- package/config/lib/configs.service.d.ts +12 -0
- package/date-time/README.md +3 -0
- package/date-time/index.d.ts +10 -0
- package/date-time/lib/calendar.service.d.ts +27 -0
- package/date-time/lib/dateTime.config.d.ts +12 -0
- package/date-time/lib/datetime.class.d.ts +138 -0
- package/date-time/lib/datetime.module.d.ts +8 -0
- package/date-time/lib/datetime.pipe.d.ts +12 -0
- package/date-time/lib/formatters/datetime-formatter.d.ts +19 -0
- package/date-time/lib/formatters/timeleft-formatter.d.ts +16 -0
- package/date-time/lib/georgian.calendar.d.ts +21 -0
- package/date-time/lib/holidays.loader.d.ts +21 -0
- package/date-time/lib/jalali.calendar.d.ts +40 -0
- package/esm2022/common/acorex-core-common.mjs +5 -0
- package/esm2022/common/countries/countries.data.mjs +2625 -0
- package/esm2022/common/countries/country.mjs +2 -0
- package/esm2022/common/index.mjs +3 -0
- package/esm2022/config/acorex-core-config.mjs +5 -0
- package/esm2022/config/index.mjs +3 -0
- package/esm2022/config/lib/configs.mjs +7 -0
- package/esm2022/config/lib/configs.service.mjs +27 -0
- package/esm2022/date-time/acorex-core-date-time.mjs +5 -0
- package/esm2022/date-time/index.mjs +11 -0
- package/esm2022/date-time/lib/calendar.service.mjs +100 -0
- package/esm2022/date-time/lib/dateTime.config.mjs +50 -0
- package/esm2022/date-time/lib/datetime.class.mjs +337 -0
- package/esm2022/date-time/lib/datetime.module.mjs +27 -0
- package/esm2022/date-time/lib/datetime.pipe.mjs +29 -0
- package/esm2022/date-time/lib/formatters/datetime-formatter.mjs +32 -0
- package/esm2022/date-time/lib/formatters/timeleft-formatter.mjs +91 -0
- package/esm2022/date-time/lib/georgian.calendar.mjs +203 -0
- package/esm2022/date-time/lib/holidays.loader.mjs +13 -0
- package/esm2022/date-time/lib/jalali.calendar.mjs +440 -0
- package/esm2022/events/acorex-core-events.mjs +5 -0
- package/esm2022/events/index.mjs +3 -0
- package/esm2022/events/lib/event.service.mjs +43 -0
- package/esm2022/events/lib/event.type.mjs +6 -0
- package/esm2022/file/acorex-core-file.mjs +5 -0
- package/esm2022/file/index.mjs +7 -0
- package/esm2022/file/lib/file-download-ref.class.mjs +12 -0
- package/esm2022/file/lib/file-download-result.class.mjs +45 -0
- package/esm2022/file/lib/file-size-formatter.mjs +24 -0
- package/esm2022/file/lib/file-upload-ref.class.mjs +12 -0
- package/esm2022/file/lib/file.module.mjs +20 -0
- package/esm2022/file/lib/file.service.mjs +103 -0
- package/esm2022/format/acorex-core-format.mjs +5 -0
- package/esm2022/format/index.mjs +8 -0
- package/esm2022/format/lib/format.config.mjs +3 -0
- package/esm2022/format/lib/format.module.mjs +64 -0
- package/esm2022/format/lib/format.pipe.mjs +37 -0
- package/esm2022/format/lib/format.service.mjs +95 -0
- package/esm2022/format/lib/format.types.mjs +2 -0
- package/esm2022/format/lib/formatters/number-formatter.mjs +74 -0
- package/esm2022/format/lib/formatters/string-formatter.mjs +15 -0
- package/esm2022/image/acorex-core-image.mjs +5 -0
- package/esm2022/image/index.mjs +2 -0
- package/esm2022/image/lib/image.service.mjs +43 -0
- package/esm2022/index.mjs +2 -44
- package/esm2022/memorize/acorex-core-memorize.mjs +5 -0
- package/esm2022/memorize/index.mjs +2 -0
- package/esm2022/memorize/lib/memorize.decorator.mjs +19 -0
- package/esm2022/pipes/acorex-core-pipes.mjs +5 -0
- package/esm2022/pipes/index.mjs +2 -0
- package/esm2022/pipes/lib/safe/safe.pipe.mjs +38 -0
- package/esm2022/platform/acorex-core-platform.mjs +5 -0
- package/esm2022/platform/index.mjs +2 -0
- package/esm2022/platform/lib/platform.service.mjs +225 -0
- package/esm2022/storage/acorex-core-storage.mjs +5 -0
- package/esm2022/storage/cookie-storage.service.mjs +202 -0
- package/esm2022/storage/index.mjs +5 -0
- package/esm2022/storage/local-storage.service.mjs +58 -0
- package/esm2022/storage/session-storage.service.mjs +22 -0
- package/esm2022/storage/storage.interface.mjs +2 -0
- package/esm2022/translation/acorex-core-translation.mjs +5 -0
- package/esm2022/translation/index.mjs +9 -0
- package/esm2022/translation/lib/translation-scope.resolver.mjs +11 -0
- package/esm2022/translation/lib/translation.config.mjs +20 -0
- package/esm2022/translation/lib/translation.loader.mjs +14 -0
- package/esm2022/translation/lib/translation.module.mjs +40 -0
- package/esm2022/translation/lib/translation.service.mjs +173 -0
- package/esm2022/translation/lib/translation.types.mjs +2 -0
- package/esm2022/translation/lib/translator.directive.mjs +28 -0
- package/esm2022/translation/lib/translator.pipe.mjs +23 -0
- package/esm2022/types/acorex-core-types.mjs +5 -0
- package/esm2022/types/index.mjs +2 -0
- package/esm2022/utils/acorex-core-utils.mjs +5 -0
- package/esm2022/utils/index.mjs +6 -0
- package/esm2022/utils/lib/auto-unsubscribe.mjs +36 -0
- package/esm2022/utils/lib/color-util.mjs +111 -0
- package/esm2022/utils/lib/drawing-util.mjs +35 -0
- package/esm2022/utils/lib/html-util.mjs +39 -0
- package/esm2022/utils/lib/string-util.mjs +19 -0
- package/esm2022/validation/acorex-core-validation.mjs +5 -0
- package/esm2022/validation/index.mjs +18 -0
- package/esm2022/validation/lib/rules/between-rule.mjs +31 -0
- package/esm2022/validation/lib/rules/callback-rule.mjs +29 -0
- package/esm2022/validation/lib/rules/equal-rule.mjs +26 -0
- package/esm2022/validation/lib/rules/greater-than.mjs +29 -0
- package/esm2022/validation/lib/rules/length-rule.mjs +26 -0
- package/esm2022/validation/lib/rules/less-than-rule.mjs +29 -0
- package/esm2022/validation/lib/rules/maxlength-rule.mjs +27 -0
- package/esm2022/validation/lib/rules/minlength-rule.mjs +26 -0
- package/esm2022/validation/lib/rules/regex-rule.mjs +49 -0
- package/esm2022/validation/lib/rules/required-rule.mjs +36 -0
- package/esm2022/validation/lib/validation.config.mjs +33 -0
- package/esm2022/validation/lib/validation.module.mjs +84 -0
- package/esm2022/validation/lib/validation.service.mjs +98 -0
- package/esm2022/validation/lib/validation.types.mjs +3 -0
- package/events/README.md +3 -0
- package/events/index.d.ts +2 -0
- package/{lib/services → events/lib}/event.service.d.ts +8 -0
- package/events/lib/event.type.d.ts +5 -0
- package/fesm2022/acorex-core-common.mjs +2631 -0
- package/fesm2022/acorex-core-common.mjs.map +1 -0
- package/fesm2022/acorex-core-config.mjs +39 -0
- package/fesm2022/acorex-core-config.mjs.map +1 -0
- package/fesm2022/acorex-core-date-time.mjs +1305 -0
- package/fesm2022/acorex-core-date-time.mjs.map +1 -0
- package/fesm2022/acorex-core-events.mjs +56 -0
- package/fesm2022/acorex-core-events.mjs.map +1 -0
- package/fesm2022/acorex-core-file.mjs +214 -0
- package/fesm2022/acorex-core-file.mjs.map +1 -0
- package/fesm2022/acorex-core-format.mjs +282 -0
- package/fesm2022/acorex-core-format.mjs.map +1 -0
- package/fesm2022/acorex-core-image.mjs +50 -0
- package/fesm2022/acorex-core-image.mjs.map +1 -0
- package/fesm2022/acorex-core-memorize.mjs +26 -0
- package/fesm2022/acorex-core-memorize.mjs.map +1 -0
- package/fesm2022/acorex-core-pipes.mjs +44 -0
- package/fesm2022/acorex-core-pipes.mjs.map +1 -0
- package/fesm2022/acorex-core-platform.mjs +232 -0
- package/fesm2022/acorex-core-platform.mjs.map +1 -0
- package/fesm2022/acorex-core-storage.mjs +285 -0
- package/fesm2022/acorex-core-storage.mjs.map +1 -0
- package/fesm2022/acorex-core-translation.mjs +293 -0
- package/fesm2022/acorex-core-translation.mjs.map +1 -0
- package/fesm2022/acorex-core-types.mjs +6 -0
- package/fesm2022/acorex-core-types.mjs.map +1 -0
- package/fesm2022/acorex-core-utils.mjs +247 -0
- package/fesm2022/acorex-core-utils.mjs.map +1 -0
- package/fesm2022/acorex-core-validation.mjs +488 -0
- package/fesm2022/acorex-core-validation.mjs.map +1 -0
- package/fesm2022/acorex-core.mjs +2 -2309
- package/fesm2022/acorex-core.mjs.map +1 -1
- package/file/README.md +3 -0
- package/file/index.d.ts +6 -0
- package/file/lib/file-download-ref.class.d.ts +6 -0
- package/file/lib/file-download-result.class.d.ts +8 -0
- package/file/lib/file-size-formatter.d.ts +16 -0
- package/file/lib/file-upload-ref.class.d.ts +5 -0
- package/file/lib/file.module.d.ts +7 -0
- package/file/lib/file.service.d.ts +18 -0
- package/format/README.md +3 -0
- package/format/index.d.ts +7 -0
- package/format/lib/format.config.d.ts +5 -0
- package/format/lib/format.module.d.ts +18 -0
- package/format/lib/format.pipe.d.ts +12 -0
- package/format/lib/format.service.d.ts +43 -0
- package/format/lib/format.types.d.ts +4 -0
- package/format/lib/formatters/number-formatter.d.ts +23 -0
- package/format/lib/formatters/string-formatter.d.ts +14 -0
- package/image/README.md +3 -0
- package/image/index.d.ts +1 -0
- package/image/lib/image.service.d.ts +11 -0
- package/index.d.ts +1 -43
- package/memorize/README.md +3 -0
- package/memorize/index.d.ts +1 -0
- package/memorize/lib/memorize.decorator.d.ts +1 -0
- package/package.json +98 -5
- package/pipes/README.md +3 -0
- package/pipes/index.d.ts +1 -0
- package/pipes/lib/safe/safe.pipe.d.ts +10 -0
- package/platform/README.md +3 -0
- package/platform/index.d.ts +1 -0
- package/{lib/platform → platform/lib}/platform.service.d.ts +14 -6
- package/storage/README.md +3 -0
- package/storage/cookie-storage.service.d.ts +104 -0
- package/storage/index.d.ts +4 -0
- package/storage/local-storage.service.d.ts +16 -0
- package/storage/session-storage.service.d.ts +10 -0
- package/storage/storage.interface.d.ts +14 -0
- package/translation/README.md +3 -0
- package/translation/index.d.ts +8 -0
- package/translation/lib/translation-scope.resolver.d.ts +2 -0
- package/translation/lib/translation.config.d.ts +14 -0
- package/translation/lib/translation.loader.d.ts +14 -0
- package/translation/lib/translation.module.d.ts +8 -0
- package/translation/lib/translation.service.d.ts +31 -0
- package/translation/lib/translation.types.d.ts +10 -0
- package/translation/lib/translator.directive.d.ts +12 -0
- package/translation/lib/translator.pipe.d.ts +12 -0
- package/types/README.md +3 -0
- package/types/index.d.ts +2 -0
- package/utils/README.md +3 -0
- package/utils/index.d.ts +5 -0
- package/utils/lib/auto-unsubscribe.d.ts +12 -0
- package/utils/lib/color-util.d.ts +24 -0
- package/utils/lib/drawing-util.d.ts +18 -0
- package/utils/lib/html-util.d.ts +5 -0
- package/utils/lib/string-util.d.ts +6 -0
- package/validation/README.md +3 -0
- package/validation/index.d.ts +14 -0
- package/validation/lib/rules/between-rule.d.ts +18 -0
- package/validation/lib/rules/callback-rule.d.ts +23 -0
- package/validation/lib/rules/equal-rule.d.ts +17 -0
- package/validation/lib/rules/greater-than.d.ts +17 -0
- package/validation/lib/rules/length-rule.d.ts +17 -0
- package/validation/lib/rules/less-than-rule.d.ts +17 -0
- package/validation/lib/rules/maxlength-rule.d.ts +16 -0
- package/validation/lib/rules/minlength-rule.d.ts +16 -0
- package/validation/lib/rules/regex-rule.d.ts +17 -0
- package/validation/lib/rules/required-rule.d.ts +16 -0
- package/validation/lib/validation.config.d.ts +15 -0
- package/validation/lib/validation.module.d.ts +17 -0
- package/validation/lib/validation.service.d.ts +35 -0
- package/validation/lib/validation.types.d.ts +21 -0
- package/esm2022/lib/classes/base-page.class.mjs +0 -26
- package/esm2022/lib/classes/color.class.mjs +0 -49
- package/esm2022/lib/classes/datetime.class.mjs +0 -323
- package/esm2022/lib/classes/menu.class.mjs +0 -35
- package/esm2022/lib/classes/navigator.class.mjs +0 -2
- package/esm2022/lib/classes/popup.class.mjs +0 -2
- package/esm2022/lib/classes/promise.class.mjs +0 -21
- package/esm2022/lib/classes/sectionlist.class.mjs +0 -2
- package/esm2022/lib/classes/select.class.mjs +0 -8
- package/esm2022/lib/core.module.mjs +0 -27
- package/esm2022/lib/error/error.class.mjs +0 -2
- package/esm2022/lib/error/error.module.mjs +0 -19
- package/esm2022/lib/error/error.service.mjs +0 -22
- package/esm2022/lib/events/keyboard.mjs +0 -2
- package/esm2022/lib/http/http-error.class.mjs +0 -2
- package/esm2022/lib/http/http-events.interceptor.mjs +0 -3
- package/esm2022/lib/http/http-request.class.mjs +0 -2
- package/esm2022/lib/http/http-result.class.mjs +0 -25
- package/esm2022/lib/http/http.module.mjs +0 -35
- package/esm2022/lib/http/http.service.mjs +0 -148
- package/esm2022/lib/locale/en.json +0 -255
- package/esm2022/lib/locale/fa.json +0 -245
- package/esm2022/lib/pipe/datetime.pipe.mjs +0 -25
- package/esm2022/lib/pipe/htmlToText.pipe.mjs +0 -25
- package/esm2022/lib/platform/index.mjs +0 -2
- package/esm2022/lib/platform/platform.service.mjs +0 -152
- package/esm2022/lib/services/config.mjs +0 -29
- package/esm2022/lib/services/event.service.mjs +0 -34
- package/esm2022/lib/services/navigator.service.mjs +0 -10
- package/esm2022/lib/services/storage.service.mjs +0 -16
- package/esm2022/lib/translator/translator.mjs +0 -26
- package/esm2022/lib/translator/translator.module.mjs +0 -25
- package/esm2022/lib/translator/translator.pipe.mjs +0 -24
- package/esm2022/lib/translator/translator.service.mjs +0 -21
- package/esm2022/lib/utils/array/array-util.mjs +0 -133
- package/esm2022/lib/utils/html/html-util.mjs +0 -200
- package/esm2022/lib/utils/html/html.module.mjs +0 -19
- package/esm2022/lib/utils/math/math-util.mjs +0 -6
- package/esm2022/lib/utils/object/object-util.mjs +0 -83
- package/esm2022/lib/utils/render/on-demand-preload-strategy.service.mjs +0 -21
- package/esm2022/lib/utils/render/render.service.mjs +0 -109
- package/esm2022/lib/utils/render/rendering.module.mjs +0 -35
- package/esm2022/lib/utils/scroll/scroll.directive.mjs +0 -56
- package/esm2022/lib/utils/scroll/scroll.module.mjs +0 -19
- package/esm2022/lib/utils/separator/separator.module.mjs +0 -19
- package/esm2022/lib/utils/separator/separator.pipe.mjs +0 -33
- package/lib/classes/base-page.class.d.ts +0 -13
- package/lib/classes/color.class.d.ts +0 -17
- package/lib/classes/datetime.class.d.ts +0 -63
- package/lib/classes/menu.class.d.ts +0 -34
- package/lib/classes/navigator.class.d.ts +0 -5
- package/lib/classes/popup.class.d.ts +0 -12
- package/lib/classes/promise.class.d.ts +0 -7
- package/lib/classes/sectionlist.class.d.ts +0 -8
- package/lib/classes/select.class.d.ts +0 -7
- package/lib/core.module.d.ts +0 -9
- package/lib/error/error.class.d.ts +0 -4
- package/lib/error/error.module.d.ts +0 -7
- package/lib/error/error.service.d.ts +0 -13
- package/lib/events/keyboard.d.ts +0 -2
- package/lib/http/http-error.class.d.ts +0 -7
- package/lib/http/http-events.interceptor.d.ts +0 -10
- package/lib/http/http-request.class.d.ts +0 -14
- package/lib/http/http-result.class.d.ts +0 -11
- package/lib/http/http.module.d.ts +0 -10
- package/lib/http/http.service.d.ts +0 -23
- package/lib/pipe/datetime.pipe.d.ts +0 -8
- package/lib/pipe/htmlToText.pipe.d.ts +0 -7
- package/lib/platform/index.d.ts +0 -1
- package/lib/services/config.d.ts +0 -9
- package/lib/services/navigator.service.d.ts +0 -8
- package/lib/services/storage.service.d.ts +0 -7
- package/lib/translator/translator.d.ts +0 -9
- package/lib/translator/translator.module.d.ts +0 -8
- package/lib/translator/translator.pipe.d.ts +0 -8
- package/lib/translator/translator.service.d.ts +0 -8
- package/lib/utils/array/array-util.d.ts +0 -6
- package/lib/utils/html/html-util.d.ts +0 -62
- package/lib/utils/html/html.module.d.ts +0 -8
- package/lib/utils/math/math-util.d.ts +0 -3
- package/lib/utils/object/object-util.d.ts +0 -7
- package/lib/utils/render/on-demand-preload-strategy.service.d.ts +0 -10
- package/lib/utils/render/render.service.d.ts +0 -18
- package/lib/utils/render/rendering.module.d.ts +0 -8
- package/lib/utils/scroll/scroll.directive.d.ts +0 -18
- package/lib/utils/scroll/scroll.module.d.ts +0 -8
- package/lib/utils/separator/separator.module.d.ts +0 -8
- package/lib/utils/separator/separator.pipe.d.ts +0 -8
@@ -0,0 +1,203 @@
|
|
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 +
|
36
|
+
firstDay.date.getDay() +
|
37
|
+
1) /
|
38
|
+
7);
|
39
|
+
}
|
40
|
+
year(date) {
|
41
|
+
return date.getFullYear();
|
42
|
+
}
|
43
|
+
monthOfYear(date) {
|
44
|
+
return date.getMonth() + 1;
|
45
|
+
}
|
46
|
+
add(date, unit, amount) {
|
47
|
+
let value = date.valueOf();
|
48
|
+
switch (unit) {
|
49
|
+
case 'second':
|
50
|
+
value += 1000 * amount;
|
51
|
+
break;
|
52
|
+
case 'minute':
|
53
|
+
value += 60000 * amount;
|
54
|
+
break;
|
55
|
+
case 'hour':
|
56
|
+
value += 3600000 * amount;
|
57
|
+
break;
|
58
|
+
case 'month': {
|
59
|
+
const v = new Date(value);
|
60
|
+
// Calculate the new year and month considering the amount
|
61
|
+
let newYear = v.getFullYear();
|
62
|
+
let newMonth = v.getMonth() + amount;
|
63
|
+
// Adjust for year overflow or underflow
|
64
|
+
while (newMonth > 11) {
|
65
|
+
newMonth -= 12;
|
66
|
+
newYear++;
|
67
|
+
}
|
68
|
+
while (newMonth < 0) {
|
69
|
+
newMonth += 12;
|
70
|
+
newYear--;
|
71
|
+
}
|
72
|
+
// Set the date to the first of the month to prevent overflow
|
73
|
+
v.setDate(1);
|
74
|
+
v.setFullYear(newYear);
|
75
|
+
v.setMonth(newMonth);
|
76
|
+
// Get the last day of the new month
|
77
|
+
const lastDayOfMonth = new Date(newYear, newMonth + 1, 0).getDate();
|
78
|
+
// Set the date to either the original day or the last day of the new month, whichever is smaller
|
79
|
+
const originalDay = date.getDate();
|
80
|
+
v.setDate(Math.min(originalDay, lastDayOfMonth));
|
81
|
+
value = v.valueOf();
|
82
|
+
break;
|
83
|
+
}
|
84
|
+
case 'week':
|
85
|
+
value += 7 * 86400000 * amount;
|
86
|
+
break;
|
87
|
+
case 'year': {
|
88
|
+
const newDate = new Date(value);
|
89
|
+
newDate.setFullYear(newDate.getFullYear() + amount);
|
90
|
+
// Handling for leap years: if the original date is February 29th, and the new year is not a leap year,
|
91
|
+
// set the date to February 28th.
|
92
|
+
if (date.getMonth() === 1 &&
|
93
|
+
date.getDate() === 29 &&
|
94
|
+
newDate.getMonth() !== 1) {
|
95
|
+
newDate.setMonth(1);
|
96
|
+
newDate.setDate(28);
|
97
|
+
}
|
98
|
+
value = newDate.valueOf();
|
99
|
+
break;
|
100
|
+
}
|
101
|
+
case 'day':
|
102
|
+
default:
|
103
|
+
value += 86400000 * amount;
|
104
|
+
}
|
105
|
+
return new AXDateTime(new Date(value), this);
|
106
|
+
}
|
107
|
+
set(date, unit, value) {
|
108
|
+
const clone = new Date(date.valueOf());
|
109
|
+
switch (unit) {
|
110
|
+
case 'second':
|
111
|
+
clone.setHours(clone.getHours(), clone.getMinutes(), value, clone.getMilliseconds());
|
112
|
+
break;
|
113
|
+
case 'minute':
|
114
|
+
clone.setHours(clone.getHours(), value, clone.getSeconds(), clone.getMilliseconds());
|
115
|
+
break;
|
116
|
+
case 'hour':
|
117
|
+
clone.setHours(value, clone.getMinutes(), clone.getSeconds(), clone.getMilliseconds());
|
118
|
+
break;
|
119
|
+
default:
|
120
|
+
case 'day':
|
121
|
+
clone.setDate(value);
|
122
|
+
break;
|
123
|
+
case 'week':
|
124
|
+
break;
|
125
|
+
case 'month':
|
126
|
+
clone.setMonth(Math.max(0, value - 1));
|
127
|
+
break;
|
128
|
+
case 'year':
|
129
|
+
clone.setFullYear(value);
|
130
|
+
break;
|
131
|
+
}
|
132
|
+
return new AXDateTime(clone, this);
|
133
|
+
}
|
134
|
+
startOf(date, unit) {
|
135
|
+
const clone = new Date(date.valueOf());
|
136
|
+
switch (unit) {
|
137
|
+
case 'second':
|
138
|
+
clone.setHours(clone.getHours(), clone.getMinutes(), clone.getSeconds(), 0);
|
139
|
+
return new AXDateTime(clone, this);
|
140
|
+
case 'minute':
|
141
|
+
clone.setHours(clone.getHours(), clone.getMinutes(), 0, 0);
|
142
|
+
return new AXDateTime(clone, this);
|
143
|
+
case 'hour':
|
144
|
+
clone.setHours(clone.getHours(), 0, 0, 0);
|
145
|
+
return new AXDateTime(clone, this);
|
146
|
+
default:
|
147
|
+
case 'day':
|
148
|
+
clone.setHours(0, 0, 0, 0);
|
149
|
+
return new AXDateTime(clone, this);
|
150
|
+
case 'week': {
|
151
|
+
const start = 1; // Week starts on Monday
|
152
|
+
const day = clone.getDay();
|
153
|
+
const diff = clone.getDate() - day + (day == 0 ? -6 : start - day);
|
154
|
+
clone.setDate(diff);
|
155
|
+
clone.setHours(0, 0, 0, 0);
|
156
|
+
return new AXDateTime(clone, this);
|
157
|
+
}
|
158
|
+
case 'month':
|
159
|
+
clone.setDate(1);
|
160
|
+
return new AXDateTime(clone, this).startOf('day');
|
161
|
+
case 'year':
|
162
|
+
clone.setMonth(0);
|
163
|
+
clone.setDate(1);
|
164
|
+
return new AXDateTime(clone, this).startOf('day');
|
165
|
+
}
|
166
|
+
}
|
167
|
+
endOf(date, unit) {
|
168
|
+
const clone = new Date(date.valueOf());
|
169
|
+
switch (unit) {
|
170
|
+
case 'second':
|
171
|
+
clone.setHours(clone.getHours(), clone.getMinutes(), clone.getSeconds(), 999);
|
172
|
+
return new AXDateTime(clone, this);
|
173
|
+
case 'minute':
|
174
|
+
clone.setHours(clone.getHours(), clone.getMinutes(), 59, 999);
|
175
|
+
return new AXDateTime(clone, this);
|
176
|
+
case 'hour':
|
177
|
+
clone.setHours(clone.getHours(), 59, 59, 999);
|
178
|
+
return new AXDateTime(clone, this);
|
179
|
+
default:
|
180
|
+
case 'day':
|
181
|
+
clone.setHours(23, 59, 59, 999);
|
182
|
+
return new AXDateTime(clone, this);
|
183
|
+
case 'week':
|
184
|
+
return this.startOf(date, 'week').add('day', 6).endOf('day');
|
185
|
+
case 'month': {
|
186
|
+
const dateObj = new Date(date.getFullYear(), date.getMonth() + 1, 0);
|
187
|
+
dateObj.setHours(23, 59, 59, 999);
|
188
|
+
return new AXDateTime(dateObj, this);
|
189
|
+
}
|
190
|
+
case 'year':
|
191
|
+
clone.setMonth(11);
|
192
|
+
return new AXDateTime(clone, this).endOf('month');
|
193
|
+
}
|
194
|
+
}
|
195
|
+
isLeap(date) {
|
196
|
+
let leapYear = new Date(date.getFullYear(), 1, 29);
|
197
|
+
return leapYear.getDate() == 29;
|
198
|
+
}
|
199
|
+
parse(value) {
|
200
|
+
return new AXDateTime(new Date(value), this);
|
201
|
+
}
|
202
|
+
}
|
203
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2VvcmdpYW4uY2FsZW5kYXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvcmUvZGF0ZS10aW1lL3NyYy9saWIvZ2VvcmdpYW4uY2FsZW5kYXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFVBQVUsRUFFVixVQUFVLEdBR1gsTUFBTSxrQkFBa0IsQ0FBQztBQUUxQixNQUFNLE9BQU8sZ0JBQWlCLFNBQVEsVUFBVTtJQUM5Qzs7T0FFRztJQUNILFlBQVksTUFBd0I7UUFDbEMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ2hCLENBQUM7SUFFRCxNQUFNLENBQUMsS0FBa0I7UUFDdkIsT0FBTyxJQUFJLFVBQVUsQ0FDbkIsSUFBSSxJQUFJLENBQ04sS0FBSyxDQUFDLElBQUksRUFDVixLQUFLLENBQUMsS0FBSyxHQUFHLENBQUMsRUFDZixLQUFLLENBQUMsSUFBSSxFQUNWLEtBQUssQ0FBQyxLQUFLLElBQUksQ0FBQyxFQUNoQixLQUFLLENBQUMsT0FBTyxJQUFJLENBQUMsRUFDbEIsS0FBSyxDQUFDLE9BQU8sSUFBSSxDQUFDLEVBQ2xCLEtBQUssQ0FBQyxFQUFFLElBQUksQ0FBQyxDQUNkLEVBQ0QsSUFBSSxDQUNMLENBQUM7SUFDSixDQUFDO0lBRUQsSUFBSTtRQUNGLE9BQU8sVUFBVSxDQUFDO0lBQ3BCLENBQUM7SUFFRCxVQUFVLENBQUMsSUFBVTtRQUNuQixPQUFPLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztJQUN4QixDQUFDO0lBRUQsU0FBUyxDQUFDLElBQVU7UUFDbEIsSUFBSSxNQUFNLEdBQUcsQ0FBQyxDQUFDO1FBQ2YsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVB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QUNsQyxPQUFPLElBQUksVUFBVSxDQUFDLE9BQU8sRUFBRSxJQUFJLENBQUMsQ0FBQztZQUN2QyxDQUFDO1lBQ0QsS0FBSyxNQUFNO2dCQUNULEtBQUssQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDLENBQUM7Z0JBQ25CLE9BQU8sSUFBSSxVQUFVLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUN0RCxDQUFDO0lBQ0gsQ0FBQztJQUVELE1BQU0sQ0FBQyxJQUFVO1FBQ2YsSUFBSSxRQUFRLEdBQUcsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQztRQUNuRCxPQUFPLFFBQVEsQ0FBQyxPQUFPLEVBQUUsSUFBSSxFQUFFLENBQUM7SUFDbEMsQ0FBQztJQUVELEtBQUssQ0FBQyxLQUFhO1FBQ2pCLE9BQU8sSUFBSSxVQUFVLENBQUMsSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDL0MsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQVhDYWxlbmRhcixcbiAgQVhDYWxlbmRhckNvbmZpZyxcbiAgQVhEYXRlVGltZSxcbiAgQVhEYXRlVmFsdWUsXG4gIFRpbWVVbml0LFxufSBmcm9tICcuL2RhdGV0aW1lLmNsYXNzJztcblxuZXhwb3J0IGNsYXNzIEdlb3JnaWFuQ2FsZW5kYXIgZXh0ZW5kcyBBWENhbGVuZGFyIHtcbiAgLyoqXG4gICAqIEBpZ25vcmVcbiAgICovXG4gIGNvbnN0cnVjdG9yKGNvbmZpZzogQVhDYWxlbmRhckNvbmZpZykge1xuICAgIHN1cGVyKGNvbmZpZyk7XG4gIH1cblxuICBjcmVhdGUodmFsdWU6IEFYRGF0ZVZhbHVlKTogQVhEYXRlVGltZSB7XG4gICAgcmV0dXJuIG5ldyBBWERhdGVUaW1lKFxuICAgICAgbmV3IERhdGUoXG4gICAgICAgIHZhbHVlLnllYXIsXG4gICAgICAgIHZhbHVlLm1vbnRoIC0gMSxcbiAgICAgICAgdmFsdWUuZGF0ZSxcbiAgICAgICAgdmFsdWUuaG91cnMgfHwgMCxcbiAgICAgICAgdmFsdWUubWludXRlcyB8fCAwLFxuICAgICAgICB2YWx1ZS5zZWNvbmRzIHx8IDAsXG4gICAgICAgIHZhbHVlLm1zIHx8IDBcbiAgICAgICksXG4gICAgICB0aGlzXG4gICAgKTtcbiAgfVxuXG4gIG5hbWUoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gJ2dlb3JnaWFuJztcbiAgfVxuXG4gIGRheU9mTW9udGgoZGF0ZTogRGF0ZSk6IG51bWJlciB7XG4gICAgcmV0dXJuIGRhdGUuZ2V0RGF0ZSgpO1xuICB9XG5cbiAgZGF5T2ZZZWFyKGRhdGU6IERhdGUpOiBudW1iZXIge1xuICAgIGxldCByZXN1bHQgPSAwO1xuICAgIGxldCBtID0gWzMxLCAyOCwgMzEsIDMwLCAzMSwgMzAsIDMxLCAzMSwgMzAsIDMxLCAzMCwgMzFdO1xuICAgIGlmICh0aGlzLmlzTGVhcChkYXRlKSkge1xuICAgICAgbVsxXSA9IDI5O1xuICAgIH1cbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IGRhdGUuZ2V0TW9udGgoKTsgaSsrKSB7XG4gICAgICByZXN1bHQgPSByZXN1bHQgKyBtW2ldO1xuICAgIH1cbiAgICByZXN1bHQgKz0gZGF0ZS5nZXREYXRlKCk7XG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfVxuXG4gIGRheU9mV2VlayhkYXRlOiBEYXRlKTogbnVtYmVyIHtcbiAgICByZXR1cm4gZGF0ZS5nZXREYXkoKSArIDE7XG4gIH1cblxuICB3ZWVrT2ZZZWFyKGRhdGU6IERhdGUpOiBudW1iZXIge1xuICAgIGNvbnN0IGZpcnN0RGF5ID0gbmV3IEFYRGF0ZVRpbWUoZGF0ZSwgdGhpcykuc3RhcnRPZigneWVhcicpO1xuICAgIHJldHVybiBNYXRoLmNlaWwoXG4gICAgICAoKGRhdGUuZ2V0VGltZSgpIC0gZmlyc3REYXkuZGF0ZS5nZXRUaW1lKCkpIC8gODY0MDAwMDAgK1xuICAgICAgICBmaXJzdERheS5kYXRlLmdldERheSgpICtcbiAgICAgICAgMSkgL1xuICAgICAgICA3XG4gICAgKTtcbiAgfVxuXG4gIHllYXIoZGF0ZTogRGF0ZSk6IG51bWJlciB7XG4gICAgcmV0dXJuIGRhdGUuZ2V0RnVsbFllYXIoKTtcbiAgfVxuXG4gIG1vbnRoT2ZZZWFyKGRhdGU6IERhdGUpOiBudW1iZXIge1xuICAgIHJldHVybiBkYXRlLmdldE1vbnRoKCkgKyAxO1xuICB9XG5cbiAgYWRkKGRhdGU6IERhdGUsIHVuaXQ6IFRpbWVVbml0LCBhbW91bnQ6IG51bWJlcik6IEFYRGF0ZVRpbWUge1xuICAgIGxldCB2YWx1ZSA9IGRhdGUudmFsdWVPZigpO1xuICAgIHN3aXRjaCAodW5pdCkge1xuICAgICAgY2FzZSAnc2Vjb25kJzpcbiAgICAgICAgdmFsdWUgKz0gMTAwMCAqIGFtb3VudDtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdtaW51dGUnOlxuICAgICAgICB2YWx1ZSArPSA2MDAwMCAqIGFtb3VudDtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdob3VyJzpcbiAgICAgICAgdmFsdWUgKz0gMzYwMDAwMCAqIGFtb3VudDtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdtb250aCc6IHtcbiAgICAgICAgY29uc3QgdiA9IG5ldyBEYXRlKHZhbHVlKTtcblxuICAgICAgICAvLyBDYWxjdWxhdGUgdGhlIG5ldyB5ZWFyIGFuZCBtb250aCBjb25zaWRlcmluZyB0aGUgYW1vdW50XG4gICAgICAgIGxldCBuZXdZZWFyID0gdi5nZXRGdWxsWWVhcigpO1xuICAgICAgICBsZXQgbmV3TW9udGggPSB2LmdldE1vbnRoKCkgKyBhbW91bnQ7XG5cbiAgICAgICAgLy8gQWRqdXN0IGZvciB5ZWFyIG92ZXJmbG93IG9yIHVuZGVyZmxvd1xuICAgICAgICB3aGlsZSAobmV3TW9udGggPiAxMSkge1xuICAgICAgICAgIG5ld01vbnRoIC09IDEyO1xuICAgICAgICAgIG5ld1llYXIrKztcbiAgICAgICAgfVxuICAgICAgICB3aGlsZSAobmV3TW9udGggPCAwKSB7XG4gICAgICAgICAgbmV3TW9udGggKz0gMTI7XG4gICAgICAgICAgbmV3WWVhci0tO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gU2V0IHRoZSBkYXRlIHRvIHRoZSBmaXJzdCBvZiB0aGUgbW9udGggdG8gcHJldmVudCBvdmVyZmxvd1xuICAgICAgICB2LnNldERhdGUoMSk7XG4gICAgICAgIHYuc2V0RnVsbFllYXIobmV3WWVhcik7XG4gICAgICAgIHYuc2V0TW9udGgobmV3TW9udGgpO1xuXG4gICAgICAgIC8vIEdldCB0aGUgbGFzdCBkYXkgb2YgdGhlIG5ldyBtb250aFxuICAgICAgICBjb25zdCBsYXN0RGF5T2ZNb250aCA9IG5ldyBEYXRlKG5ld1llYXIsIG5ld01vbnRoICsgMSwgMCkuZ2V0RGF0ZSgpO1xuXG4gICAgICAgIC8vIFNldCB0aGUgZGF0ZSB0byBlaXRoZXIgdGhlIG9yaWdpbmFsIGRheSBvciB0aGUgbGFzdCBkYXkgb2YgdGhlIG5ldyBtb250aCwgd2hpY2hldmVyIGlzIHNtYWxsZXJcbiAgICAgICAgY29uc3Qgb3JpZ2luYWxEYXkgPSBkYXRlLmdldERhdGUoKTtcbiAgICAgICAgdi5zZXREYXRlKE1hdGgubWluKG9yaWdpbmFsRGF5LCBsYXN0RGF5T2ZNb250aCkpO1xuXG4gICAgICAgIHZhbHVlID0gdi52YWx1ZU9mKCk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgICAgY2FzZSAnd2Vlayc6XG4gICAgICAgIHZhbHVlICs9IDcgKiA4NjQwMDAwMCAqIGFtb3VudDtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICd5ZWFyJzoge1xuICAgICAgICBjb25zdCBuZXdEYXRlID0gbmV3IERhdGUodmFsdWUpO1xuICAgICAgICBuZXdEYXRlLnNldEZ1bGxZZWFyKG5ld0RhdGUuZ2V0RnVsbFllYXIoKSArIGFtb3VudCk7XG4gICAgICAgIC8vIEhhbmRsaW5nIGZvciBsZWFwIHllYXJzOiBpZiB0aGUgb3JpZ2luYWwgZGF0ZSBpcyBGZWJydWFyeSAyOXRoLCBhbmQgdGhlIG5ldyB5ZWFyIGlzIG5vdCBhIGxlYXAgeWVhcixcbiAgICAgICAgLy8gc2V0IHRoZSBkYXRlIHRvIEZlYnJ1YXJ5IDI4dGguXG4gICAgICAgIGlmIChcbiAgICAgICAgICBkYXRlLmdldE1vbnRoKCkgPT09IDEgJiZcbiAgICAgICAgICBkYXRlLmdldERhdGUoKSA9PT0gMjkgJiZcbiAgICAgICAgICBuZXdEYXRlLmdldE1vbnRoKCkgIT09IDFcbiAgICAgICAgKSB7XG4gICAgICAgICAgbmV3RGF0ZS5zZXRNb250aCgxKTtcbiAgICAgICAgICBuZXdEYXRlLnNldERhdGUoMjgpO1xuICAgICAgICB9XG4gICAgICAgIHZhbHVlID0gbmV3RGF0ZS52YWx1ZU9mKCk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgICAgY2FzZSAnZGF5JzpcbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIHZhbHVlICs9IDg2NDAwMDAwICogYW1vdW50O1xuICAgIH1cbiAgICByZXR1cm4gbmV3IEFYRGF0ZVRpbWUobmV3IERhdGUodmFsdWUpLCB0aGlzKTtcbiAgfVxuXG4gIHNldChkYXRlOiBEYXRlLCB1bml0OiBUaW1lVW5pdCwgdmFsdWU6IG51bWJlcik6IEFYRGF0ZVRpbWUge1xuICAgIGNvbnN0IGNsb25lID0gbmV3IERhdGUoZGF0ZS52YWx1ZU9mKCkpO1xuICAgIHN3aXRjaCAodW5pdCkge1xuICAgICAgY2FzZSAnc2Vjb25kJzpcbiAgICAgICAgY2xvbmUuc2V0SG91cnMoXG4gICAgICAgICAgY2xvbmUuZ2V0SG91cnMoKSxcbiAgICAgICAgICBjbG9uZS5nZXRNaW51dGVzKCksXG4gICAgICAgICAgdmFsdWUsXG4gICAgICAgICAgY2xvbmUuZ2V0TWlsbGlzZWNvbmRzKClcbiAgICAgICAgKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdtaW51dGUnOlxuICAgICAgICBjbG9uZS5zZXRIb3VycyhcbiAgICAgICAgICBjbG9uZS5nZXRIb3VycygpLFxuICAgICAgICAgIHZhbHVlLFxuICAgICAgICAgIGNsb25lLmdldFNlY29uZHMoKSxcbiAgICAgICAgICBjbG9uZS5nZXRNaWxsaXNlY29uZHMoKVxuICAgICAgICApO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ2hvdXInOlxuICAgICAgICBjbG9uZS5zZXRIb3VycyhcbiAgICAgICAgICB2YWx1ZSxcbiAgICAgICAgICBjbG9uZS5nZXRNaW51dGVzKCksXG4gICAgICAgICAgY2xvbmUuZ2V0U2Vjb25kcygpLFxuICAgICAgICAgIGNsb25lLmdldE1pbGxpc2Vjb25kcygpXG4gICAgICAgICk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgZGVmYXVsdDpcbiAgICAgIGNhc2UgJ2RheSc6XG4gICAgICAgIGNsb25lLnNldERhdGUodmFsdWUpO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ3dlZWsnOlxuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ21vbnRoJzpcbiAgICAgICAgY2xvbmUuc2V0TW9udGgoTWF0aC5tYXgoMCwgdmFsdWUgLSAxKSk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAneWVhcic6XG4gICAgICAgIGNsb25lLnNldEZ1bGxZZWFyKHZhbHVlKTtcbiAgICAgICAgYnJlYWs7XG4gICAgfVxuICAgIHJldHVybiBuZXcgQVhEYXRlVGltZShjbG9uZSwgdGhpcyk7XG4gIH1cblxuICBzdGFydE9mKGRhdGU6IERhdGUsIHVuaXQ6IFRpbWVVbml0KTogQVhEYXRlVGltZSB7XG4gICAgY29uc3QgY2xvbmUgPSBuZXcgRGF0ZShkYXRlLnZhbHVlT2YoKSk7XG4gICAgc3dpdGNoICh1bml0KSB7XG4gICAgICBjYXNlICdzZWNvbmQnOlxuICAgICAgICBjbG9uZS5zZXRIb3VycyhcbiAgICAgICAgICBjbG9uZS5nZXRIb3VycygpLFxuICAgICAgICAgIGNsb25lLmdldE1pbnV0ZXMoKSxcbiAgICAgICAgICBjbG9uZS5nZXRTZWNvbmRzKCksXG4gICAgICAgICAgMFxuICAgICAgICApO1xuICAgICAgICByZXR1cm4gbmV3IEFYRGF0ZVRpbWUoY2xvbmUsIHRoaXMpO1xuICAgICAgY2FzZSAnbWludXRlJzpcbiAgICAgICAgY2xvbmUuc2V0SG91cnMoY2xvbmUuZ2V0SG91cnMoKSwgY2xvbmUuZ2V0TWludXRlcygpLCAwLCAwKTtcbiAgICAgICAgcmV0dXJuIG5ldyBBWERhdGVUaW1lKGNsb25lLCB0aGlzKTtcbiAgICAgIGNhc2UgJ2hvdXInOlxuICAgICAgICBjbG9uZS5zZXRIb3VycyhjbG9uZS5nZXRIb3VycygpLCAwLCAwLCAwKTtcbiAgICAgICAgcmV0dXJuIG5ldyBBWERhdGVUaW1lKGNsb25lLCB0aGlzKTtcbiAgICAgIGRlZmF1bHQ6XG4gICAgICBjYXNlICdkYXknOlxuICAgICAgICBjbG9uZS5zZXRIb3VycygwLCAwLCAwLCAwKTtcbiAgICAgICAgcmV0dXJuIG5ldyBBWERhdGVUaW1lKGNsb25lLCB0aGlzKTtcbiAgICAgIGNhc2UgJ3dlZWsnOiB7XG4gICAgICAgIGNvbnN0IHN0YXJ0ID0gMTsgLy8gV2VlayBzdGFydHMgb24gTW9uZGF5XG4gICAgICAgIGNvbnN0IGRheSA9IGNsb25lLmdldERheSgpO1xuICAgICAgICBjb25zdCBkaWZmID0gY2xvbmUuZ2V0RGF0ZSgpIC0gZGF5ICsgKGRheSA9PSAwID8gLTYgOiBzdGFydCAtIGRheSk7XG4gICAgICAgIGNsb25lLnNldERhdGUoZGlmZik7XG4gICAgICAgIGNsb25lLnNldEhvdXJzKDAsIDAsIDAsIDApO1xuICAgICAgICByZXR1cm4gbmV3IEFYRGF0ZVRpbWUoY2xvbmUsIHRoaXMpO1xuICAgICAgfVxuICAgICAgY2FzZSAnbW9udGgnOlxuICAgICAgICBjbG9uZS5zZXREYXRlKDEpO1xuICAgICAgICByZXR1cm4gbmV3IEFYRGF0ZVRpbWUoY2xvbmUsIHRoaXMpLnN0YXJ0T2YoJ2RheScpO1xuICAgICAgY2FzZSAneWVhcic6XG4gICAgICAgIGNsb25lLnNldE1vbnRoKDApO1xuICAgICAgICBjbG9uZS5zZXREYXRlKDEpO1xuICAgICAgICByZXR1cm4gbmV3IEFYRGF0ZVRpbWUoY2xvbmUsIHRoaXMpLnN0YXJ0T2YoJ2RheScpO1xuICAgIH1cbiAgfVxuXG4gIGVuZE9mKGRhdGU6IERhdGUsIHVuaXQ6IFRpbWVVbml0KTogQVhEYXRlVGltZSB7XG4gICAgY29uc3QgY2xvbmUgPSBuZXcgRGF0ZShkYXRlLnZhbHVlT2YoKSk7XG4gICAgc3dpdGNoICh1bml0KSB7XG4gICAgICBjYXNlICdzZWNvbmQnOlxuICAgICAgICBjbG9uZS5zZXRIb3VycyhcbiAgICAgICAgICBjbG9uZS5nZXRIb3VycygpLFxuICAgICAgICAgIGNsb25lLmdldE1pbnV0ZXMoKSxcbiAgICAgICAgICBjbG9uZS5nZXRTZWNvbmRzKCksXG4gICAgICAgICAgOTk5XG4gICAgICAgICk7XG4gICAgICAgIHJldHVybiBuZXcgQVhEYXRlVGltZShjbG9uZSwgdGhpcyk7XG4gICAgICBjYXNlICdtaW51dGUnOlxuICAgICAgICBjbG9uZS5zZXRIb3VycyhjbG9uZS5nZXRIb3VycygpLCBjbG9uZS5nZXRNaW51dGVzKCksIDU5LCA5OTkpO1xuICAgICAgICByZXR1cm4gbmV3IEFYRGF0ZVRpbWUoY2xvbmUsIHRoaXMpO1xuICAgICAgY2FzZSAnaG91cic6XG4gICAgICAgIGNsb25lLnNldEhvdXJzKGNsb25lLmdldEhvdXJzKCksIDU5LCA1OSwgOTk5KTtcbiAgICAgICAgcmV0dXJuIG5ldyBBWERhdGVUaW1lKGNsb25lLCB0aGlzKTtcbiAgICAgIGRlZmF1bHQ6XG4gICAgICBjYXNlICdkYXknOlxuICAgICAgICBjbG9uZS5zZXRIb3VycygyMywgNTksIDU5LCA5OTkpO1xuICAgICAgICByZXR1cm4gbmV3IEFYRGF0ZVRpbWUoY2xvbmUsIHRoaXMpO1xuICAgICAgY2FzZSAnd2Vlayc6XG4gICAgICAgIHJldHVybiB0aGlzLnN0YXJ0T2YoZGF0ZSwgJ3dlZWsnKS5hZGQoJ2RheScsIDYpLmVuZE9mKCdkYXknKTtcbiAgICAgIGNhc2UgJ21vbnRoJzoge1xuICAgICAgICBjb25zdCBkYXRlT2JqID0gbmV3IERhdGUoZGF0ZS5nZXRGdWxsWWVhcigpLCBkYXRlLmdldE1vbnRoKCkgKyAxLCAwKTtcbiAgICAgICAgZGF0ZU9iai5zZXRIb3VycygyMywgNTksIDU5LCA5OTkpO1xuICAgICAgICByZXR1cm4gbmV3IEFYRGF0ZVRpbWUoZGF0ZU9iaiwgdGhpcyk7XG4gICAgICB9XG4gICAgICBjYXNlICd5ZWFyJzpcbiAgICAgICAgY2xvbmUuc2V0TW9udGgoMTEpO1xuICAgICAgICByZXR1cm4gbmV3IEFYRGF0ZVRpbWUoY2xvbmUsIHRoaXMpLmVuZE9mKCdtb250aCcpO1xuICAgIH1cbiAgfVxuXG4gIGlzTGVhcChkYXRlOiBEYXRlKSB7XG4gICAgbGV0IGxlYXBZZWFyID0gbmV3IERhdGUoZGF0ZS5nZXRGdWxsWWVhcigpLCAxLCAyOSk7XG4gICAgcmV0dXJuIGxlYXBZZWFyLmdldERhdGUoKSA9PSAyOTtcbiAgfVxuXG4gIHBhcnNlKHZhbHVlOiBzdHJpbmcpOiBBWERhdGVUaW1lIHtcbiAgICByZXR1cm4gbmV3IEFYRGF0ZVRpbWUobmV3IERhdGUodmFsdWUpLCB0aGlzKTtcbiAgfVxufVxuIl19
|
@@ -0,0 +1,13 @@
|
|
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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaG9saWRheXMubG9hZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb3JlL2RhdGUtdGltZS9zcmMvbGliL2hvbGlkYXlzLmxvYWRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBa0IvQyxNQUFNLE9BQU8sdUJBQXVCO0lBQ2xDLFdBQVcsQ0FDVCxPQUE2QztRQUU3QyxPQUFPLE9BQU8sQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDN0IsQ0FBQztDQUNGO0FBRUQsTUFBTSxDQUFDLE1BQU0sMkJBQTJCLEdBQUcsSUFBSSxjQUFjLENBQzNELDZCQUE2QixFQUM3QjtJQUNFLFVBQVUsRUFBRSxNQUFNO0lBQ2xCLE9BQU8sRUFBRSxHQUFHLEVBQUU7UUFDWixPQUFPLElBQUksdUJBQXVCLEVBQUUsQ0FBQztJQUN2QyxDQUFDO0NBQ0YsQ0FDRixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0aW9uVG9rZW4gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuZXhwb3J0IGludGVyZmFjZSBBWEhvbGlkYXlEYXRlIHtcbiAgZGF0ZTogRGF0ZTtcbiAgdGl0bGU6IHN0cmluZztcbiAgZGVzY3JpcHRpb24/OiBzdHJpbmc7XG4gIFtrZXk6IHN0cmluZ106IHVua25vd247XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQVhIb2xpZGF5c0xvYWRlck9wdGlvbnMge1xuICBjYWxlbmRhcj86IHN0cmluZztcbiAgcmFuZ2U/OiB7IHN0YXJ0OiBEYXRlOyBlbmQ6IERhdGUgfTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBBWEhvbGlkYXlzTG9hZGVyIHtcbiAgZ2V0SG9saWRheXMob3B0aW9ucz86IEFYSG9saWRheXNMb2FkZXJPcHRpb25zKTogUHJvbWlzZTxBWEhvbGlkYXlEYXRlW10+O1xufVxuXG5leHBvcnQgY2xhc3MgQVhIb2xpZGF5c0xvYWRlckRlZmF1bHQgaW1wbGVtZW50cyBBWEhvbGlkYXlzTG9hZGVyIHtcbiAgZ2V0SG9saWRheXMoXG4gICAgb3B0aW9ucz86IEFYSG9saWRheXNMb2FkZXJPcHRpb25zIHwgdW5kZWZpbmVkXG4gICk6IFByb21pc2U8QVhIb2xpZGF5RGF0ZVtdPiB7XG4gICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZShbXSk7XG4gIH1cbn1cblxuZXhwb3J0IGNvbnN0IEFYX0RBVEVUSU1FX0hPTElEQVlTX0xPQURFUiA9IG5ldyBJbmplY3Rpb25Ub2tlbjxBWEhvbGlkYXlzTG9hZGVyPihcbiAgJ0FYX0RBVEVUSU1FX0hPTElEQVlTX0xPQURFUicsXG4gIHtcbiAgICBwcm92aWRlZEluOiAncm9vdCcsXG4gICAgZmFjdG9yeTogKCkgPT4ge1xuICAgICAgcmV0dXJuIG5ldyBBWEhvbGlkYXlzTG9hZGVyRGVmYXVsdCgpO1xuICAgIH0sXG4gIH1cbik7XG4iXX0=
|