@acorex/core 7.22.0 → 7.23.1
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/{dateTime → date-time}/README.md +2 -2
- package/{dateTime → date-time}/lib/datetime.class.d.ts +1 -0
- package/{dateTime → date-time}/lib/formatters/datetime-formatter.d.ts +1 -1
- package/{dateTime → date-time}/lib/formatters/timeleft-formatter.d.ts +1 -1
- package/esm2022/acorex-core.mjs +1 -1
- package/esm2022/config/lib/configs.mjs +1 -1
- package/esm2022/config/lib/configs.service.mjs +3 -3
- 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/lib/event.service.mjs +4 -4
- package/esm2022/events/lib/event.type.mjs +1 -1
- package/esm2022/file/lib/file-download-ref.class.mjs +1 -1
- package/esm2022/file/lib/file-size-formatter.mjs +4 -4
- package/esm2022/file/lib/file-upload-ref.class.mjs +1 -1
- package/esm2022/file/lib/file.module.mjs +6 -6
- package/esm2022/file/lib/file.service.mjs +5 -5
- package/esm2022/format/lib/format.config.mjs +1 -1
- package/esm2022/format/lib/format.module.mjs +13 -16
- package/esm2022/format/lib/format.pipe.mjs +10 -6
- package/esm2022/format/lib/format.service.mjs +19 -16
- package/esm2022/format/lib/format.types.mjs +1 -1
- package/esm2022/format/lib/formatters/number-formatter.mjs +6 -7
- package/esm2022/format/lib/formatters/string-formatter.mjs +1 -1
- package/esm2022/image/lib/image.service.mjs +4 -4
- package/esm2022/index.mjs +2 -2
- package/esm2022/memorize/lib/memorize.decorator.mjs +1 -1
- package/esm2022/pipes/lib/safe/safe.pipe.mjs +4 -4
- package/esm2022/platform/lib/platform.service.mjs +47 -42
- package/esm2022/storage/cookie-storage.service.mjs +15 -8
- package/esm2022/storage/local-storage.service.mjs +46 -10
- package/esm2022/storage/session-storage.service.mjs +3 -3
- package/esm2022/translation/lib/translation-scope.resolver.mjs +4 -4
- package/esm2022/translation/lib/translation.config.mjs +2 -2
- package/esm2022/translation/lib/translation.loader.mjs +3 -3
- package/esm2022/translation/lib/translation.module.mjs +10 -10
- package/esm2022/translation/lib/translation.service.mjs +19 -11
- package/esm2022/translation/lib/translation.types.mjs +1 -1
- package/esm2022/translation/lib/translator.directive.mjs +5 -5
- package/esm2022/translation/lib/translator.pipe.mjs +4 -4
- package/esm2022/utils/lib/auto-unsubscribe.mjs +4 -4
- package/esm2022/utils/lib/color-util.mjs +4 -2
- package/esm2022/utils/lib/drawing-util.mjs +6 -3
- package/esm2022/utils/lib/html-util.mjs +17 -3
- package/esm2022/utils/lib/string-util.mjs +1 -1
- package/esm2022/validation/lib/rules/between-rule.mjs +7 -7
- package/esm2022/validation/lib/rules/callback-rule.mjs +10 -7
- package/esm2022/validation/lib/rules/equal-rule.mjs +7 -7
- package/esm2022/validation/lib/rules/greater-than.mjs +12 -8
- package/esm2022/validation/lib/rules/length-rule.mjs +10 -7
- package/esm2022/validation/lib/rules/less-than-rule.mjs +12 -8
- package/esm2022/validation/lib/rules/maxlength-rule.mjs +12 -9
- package/esm2022/validation/lib/rules/minlength-rule.mjs +12 -9
- package/esm2022/validation/lib/rules/regex-rule.mjs +15 -12
- package/esm2022/validation/lib/rules/required-rule.mjs +14 -14
- package/esm2022/validation/lib/validation.config.mjs +3 -3
- package/esm2022/validation/lib/validation.module.mjs +15 -19
- package/esm2022/validation/lib/validation.service.mjs +19 -16
- package/esm2022/validation/lib/validation.types.mjs +1 -1
- package/fesm2022/acorex-core-config.mjs +3 -3
- package/fesm2022/acorex-core-config.mjs.map +1 -1
- package/fesm2022/{acorex-core-dateTime.mjs → acorex-core-date-time.mjs} +96 -45
- package/fesm2022/acorex-core-date-time.mjs.map +1 -0
- package/fesm2022/acorex-core-events.mjs +3 -3
- package/fesm2022/acorex-core-events.mjs.map +1 -1
- package/fesm2022/acorex-core-file.mjs +12 -12
- package/fesm2022/acorex-core-file.mjs.map +1 -1
- package/fesm2022/acorex-core-format.mjs +43 -40
- package/fesm2022/acorex-core-format.mjs.map +1 -1
- package/fesm2022/acorex-core-image.mjs +3 -3
- package/fesm2022/acorex-core-image.mjs.map +1 -1
- package/fesm2022/acorex-core-memorize.mjs.map +1 -1
- package/fesm2022/acorex-core-pipes.mjs +3 -3
- package/fesm2022/acorex-core-pipes.mjs.map +1 -1
- package/fesm2022/acorex-core-platform.mjs +46 -41
- package/fesm2022/acorex-core-platform.mjs.map +1 -1
- package/fesm2022/acorex-core-storage.mjs +63 -20
- package/fesm2022/acorex-core-storage.mjs.map +1 -1
- package/fesm2022/acorex-core-translation.mjs +31 -23
- package/fesm2022/acorex-core-translation.mjs.map +1 -1
- package/fesm2022/acorex-core-utils.mjs +27 -8
- package/fesm2022/acorex-core-utils.mjs.map +1 -1
- package/fesm2022/acorex-core-validation.mjs +110 -88
- package/fesm2022/acorex-core-validation.mjs.map +1 -1
- package/fesm2022/acorex-core.mjs +3 -1
- package/fesm2022/acorex-core.mjs.map +1 -1
- package/file/lib/file-size-formatter.d.ts +1 -1
- package/format/lib/format.config.d.ts +1 -1
- package/format/lib/format.service.d.ts +5 -5
- package/format/lib/formatters/number-formatter.d.ts +1 -1
- package/format/lib/formatters/string-formatter.d.ts +1 -1
- package/index.d.ts +1 -2
- package/package.json +16 -15
- package/storage/local-storage.service.d.ts +6 -0
- package/translation/lib/translation-scope.resolver.d.ts +1 -1
- package/translation/lib/translation.config.d.ts +2 -2
- package/translation/lib/translation.loader.d.ts +3 -3
- package/validation/lib/rules/between-rule.d.ts +2 -2
- package/validation/lib/rules/callback-rule.d.ts +2 -2
- package/validation/lib/rules/equal-rule.d.ts +2 -2
- package/validation/lib/rules/greater-than.d.ts +2 -2
- package/validation/lib/rules/length-rule.d.ts +2 -2
- package/validation/lib/rules/less-than-rule.d.ts +2 -2
- package/validation/lib/rules/maxlength-rule.d.ts +2 -2
- package/validation/lib/rules/minlength-rule.d.ts +2 -2
- package/validation/lib/rules/regex-rule.d.ts +2 -2
- package/validation/lib/rules/required-rule.d.ts +2 -2
- package/validation/lib/validation.service.d.ts +4 -4
- package/esm2022/dateTime/acorex-core-dateTime.mjs +0 -5
- package/esm2022/dateTime/index.mjs +0 -11
- package/esm2022/dateTime/lib/calendar.service.mjs +0 -91
- package/esm2022/dateTime/lib/dateTime.config.mjs +0 -50
- package/esm2022/dateTime/lib/datetime.class.mjs +0 -325
- package/esm2022/dateTime/lib/datetime.module.mjs +0 -21
- package/esm2022/dateTime/lib/datetime.pipe.mjs +0 -29
- package/esm2022/dateTime/lib/formatters/datetime-formatter.mjs +0 -30
- package/esm2022/dateTime/lib/formatters/timeleft-formatter.mjs +0 -91
- package/esm2022/dateTime/lib/georgian.calendar.mjs +0 -198
- package/esm2022/dateTime/lib/holidays.loader.mjs +0 -13
- package/esm2022/dateTime/lib/jalali.calendar.mjs +0 -423
- package/fesm2022/acorex-core-dateTime.mjs.map +0 -1
- /package/{dateTime → date-time}/index.d.ts +0 -0
- /package/{dateTime → date-time}/lib/calendar.service.d.ts +0 -0
- /package/{dateTime → date-time}/lib/dateTime.config.d.ts +0 -0
- /package/{dateTime → date-time}/lib/datetime.module.d.ts +0 -0
- /package/{dateTime → date-time}/lib/datetime.pipe.d.ts +0 -0
- /package/{dateTime → date-time}/lib/georgian.calendar.d.ts +0 -0
- /package/{dateTime → date-time}/lib/holidays.loader.d.ts +0 -0
- /package/{dateTime → date-time}/lib/jalali.calendar.d.ts +0 -0
@@ -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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2VvcmdpYW4uY2FsZW5kYXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvcmUvZGF0ZVRpbWUvc3JjL2xpYi9nZW9yZ2lhbi5jYWxlbmRhci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFvQixVQUFVLEVBQXlCLE1BQU0sa0JBQWtCLENBQUM7QUFFbkcsTUFBTSxPQUFPLGdCQUFpQixTQUFRLFVBQVU7SUFDOUM7O09BRUc7SUFDSCxZQUFZLE1BQXdCO1FBQ2xDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUNoQixDQUFDO0lBRUQsTUFBTSxDQUFDLEtBQWtCO1FBQ3ZCLE9BQU8sSUFBSSxVQUFVLENBQ25CLElBQUksSUFBSSxDQUNOLEtBQUssQ0FBQyxJQUFJLEVBQ1YsS0FBSyxDQUFDLEtBQUssR0FBRyxDQUFDLEVBQ2YsS0FBSyxDQUFDLElBQUksRUFDVixLQUFLLENBQUMsS0FBSyxJQUFJLENBQUMsRUFDaEIsS0FBSyxDQUFDLE9BQU8sSUFBSSxDQUFDLEVBQ2xCLEtBQUssQ0FBQyxPQUFPLElBQUksQ0FBQyxFQUNsQixLQUFLLENBQUMsRUFBRSxJQUFJLENBQUMsQ0FDZCxFQUNELElBQUksQ0FDTCxDQUFDO0lBQ0osQ0FBQztJQUVELElBQUk7UUFDRixPQUFPLFVBQVUsQ0FBQztJQUNwQixDQUFDO0lBRUQsVUFBVSxDQUFDLElBQVU7UUFDbkIsT0FBTyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7SUFDeEIsQ0FBQztJQUVELFNBQVMsQ0FBQyxJQUFVO1FBQ2xCLElBQUksTUFBTSxHQUFHLENBQUMsQ0FBQztRQUNmLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxF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Q0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1NBQ3JEO0lBQ0gsQ0FBQztJQUVELE1BQU0sQ0FBQyxJQUFVO1FBQ2YsSUFBSSxRQUFRLEdBQUcsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQztRQUNuRCxPQUFPLFFBQVEsQ0FBQyxPQUFPLEVBQUUsSUFBSSxFQUFFLENBQUM7SUFDbEMsQ0FBQztJQUVELEtBQUssQ0FBQyxLQUFhO1FBQ2pCLE9BQU8sSUFBSSxVQUFVLENBQUMsSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDL0MsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQVhDYWxlbmRhciwgQVhDYWxlbmRhckNvbmZpZywgQVhEYXRlVGltZSwgQVhEYXRlVmFsdWUsIFRpbWVVbml0IH0gZnJvbSAnLi9kYXRldGltZS5jbGFzcyc7XG5cbmV4cG9ydCBjbGFzcyBHZW9yZ2lhbkNhbGVuZGFyIGV4dGVuZHMgQVhDYWxlbmRhciB7XG4gIC8qKlxuICAgKiBAaWdub3JlXG4gICAqL1xuICBjb25zdHJ1Y3Rvcihjb25maWc6IEFYQ2FsZW5kYXJDb25maWcpIHtcbiAgICBzdXBlcihjb25maWcpO1xuICB9XG5cbiAgY3JlYXRlKHZhbHVlOiBBWERhdGVWYWx1ZSk6IEFYRGF0ZVRpbWUge1xuICAgIHJldHVybiBuZXcgQVhEYXRlVGltZShcbiAgICAgIG5ldyBEYXRlKFxuICAgICAgICB2YWx1ZS55ZWFyLFxuICAgICAgICB2YWx1ZS5tb250aCAtIDEsXG4gICAgICAgIHZhbHVlLmRhdGUsXG4gICAgICAgIHZhbHVlLmhvdXJzIHx8IDAsXG4gICAgICAgIHZhbHVlLm1pbnV0ZXMgfHwgMCxcbiAgICAgICAgdmFsdWUuc2Vjb25kcyB8fCAwLFxuICAgICAgICB2YWx1ZS5tcyB8fCAwLFxuICAgICAgKSxcbiAgICAgIHRoaXMsXG4gICAgKTtcbiAgfVxuXG4gIG5hbWUoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gJ2dlb3JnaWFuJztcbiAgfVxuXG4gIGRheU9mTW9udGgoZGF0ZTogRGF0ZSk6IG51bWJlciB7XG4gICAgcmV0dXJuIGRhdGUuZ2V0RGF0ZSgpO1xuICB9XG5cbiAgZGF5T2ZZZWFyKGRhdGU6IERhdGUpOiBudW1iZXIge1xuICAgIGxldCByZXN1bHQgPSAwO1xuICAgIGxldCBtID0gWzMxLCAyOCwgMzEsIDMwLCAzMSwgMzAsIDMxLCAzMSwgMzAsIDMxLCAzMCwgMzFdO1xuICAgIGlmICh0aGlzLmlzTGVhcChkYXRlKSkge1xuICAgICAgbVsxXSA9IDI5O1xuICAgIH1cbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IGRhdGUuZ2V0TW9udGgoKTsgaSsrKSB7XG4gICAgICByZXN1bHQgPSByZXN1bHQgKyBtW2ldO1xuICAgIH1cbiAgICByZXN1bHQgKz0gZGF0ZS5nZXREYXRlKCk7XG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfVxuXG4gIGRheU9mV2VlayhkYXRlOiBEYXRlKTogbnVtYmVyIHtcbiAgICByZXR1cm4gZGF0ZS5nZXREYXkoKSArIDE7XG4gIH1cblxuICB3ZWVrT2ZZZWFyKGRhdGU6IERhdGUpOiBudW1iZXIge1xuICAgIGNvbnN0IGZpcnN0RGF5ID0gbmV3IEFYRGF0ZVRpbWUoZGF0ZSwgdGhpcykuc3RhcnRPZigneWVhcicpO1xuICAgIHJldHVybiBNYXRoLmNlaWwoXG4gICAgICAoKGRhdGUuZ2V0VGltZSgpIC0gZmlyc3REYXkuZGF0ZS5nZXRUaW1lKCkpIC8gODY0MDAwMDAgKyBmaXJzdERheS5kYXRlLmdldERheSgpICsgMSkgLyA3LFxuICAgICk7XG4gIH1cblxuICB5ZWFyKGRhdGU6IERhdGUpOiBudW1iZXIge1xuICAgIHJldHVybiBkYXRlLmdldEZ1bGxZZWFyKCk7XG4gIH1cblxuICBtb250aE9mWWVhcihkYXRlOiBEYXRlKTogbnVtYmVyIHtcbiAgICByZXR1cm4gZGF0ZS5nZXRNb250aCgpICsgMTtcbiAgfVxuXG4gIGFkZChkYXRlOiBEYXRlLCB1bml0OiBUaW1lVW5pdCwgYW1vdW50OiBudW1iZXIpOiBBWERhdGVUaW1lIHtcbiAgICBsZXQgdmFsdWUgPSBkYXRlLnZhbHVlT2YoKTtcbiAgICBzd2l0Y2ggKHVuaXQpIHtcbiAgICAgIGNhc2UgJ3NlY29uZCc6XG4gICAgICAgIHZhbHVlICs9IDEwMDAgKiBhbW91bnQ7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnbWludXRlJzpcbiAgICAgICAgdmFsdWUgKz0gNjAwMDAgKiBhbW91bnQ7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnaG91cic6XG4gICAgICAgIHZhbHVlICs9IDM2MDAwMDAgKiBhbW91bnQ7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnbW9udGgnOiB7XG4gICAgICAgIGNvbnN0IHYgPSBuZXcgRGF0ZSh2YWx1ZSk7XG5cbiAgICAgICAgLy8gQ2FsY3VsYXRlIHRoZSBuZXcgeWVhciBhbmQgbW9udGggY29uc2lkZXJpbmcgdGhlIGFtb3VudFxuICAgICAgICBsZXQgbmV3WWVhciA9IHYuZ2V0RnVsbFllYXIoKTtcbiAgICAgICAgbGV0IG5ld01vbnRoID0gdi5nZXRNb250aCgpICsgYW1vdW50O1xuXG4gICAgICAgIC8vIEFkanVzdCBmb3IgeWVhciBvdmVyZmxvdyBvciB1bmRlcmZsb3dcbiAgICAgICAgd2hpbGUgKG5ld01vbnRoID4gMTEpIHtcbiAgICAgICAgICBuZXdNb250aCAtPSAxMjtcbiAgICAgICAgICBuZXdZZWFyKys7XG4gICAgICAgIH1cbiAgICAgICAgd2hpbGUgKG5ld01vbnRoIDwgMCkge1xuICAgICAgICAgIG5ld01vbnRoICs9IDEyO1xuICAgICAgICAgIG5ld1llYXItLTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIFNldCB0aGUgZGF0ZSB0byB0aGUgZmlyc3Qgb2YgdGhlIG1vbnRoIHRvIHByZXZlbnQgb3ZlcmZsb3dcbiAgICAgICAgdi5zZXREYXRlKDEpO1xuICAgICAgICB2LnNldEZ1bGxZZWFyKG5ld1llYXIpO1xuICAgICAgICB2LnNldE1vbnRoKG5ld01vbnRoKTtcblxuICAgICAgICAvLyBHZXQgdGhlIGxhc3QgZGF5IG9mIHRoZSBuZXcgbW9udGhcbiAgICAgICAgY29uc3QgbGFzdERheU9mTW9udGggPSBuZXcgRGF0ZShuZXdZZWFyLCBuZXdNb250aCArIDEsIDApLmdldERhdGUoKTtcblxuICAgICAgICAvLyBTZXQgdGhlIGRhdGUgdG8gZWl0aGVyIHRoZSBvcmlnaW5hbCBkYXkgb3IgdGhlIGxhc3QgZGF5IG9mIHRoZSBuZXcgbW9udGgsIHdoaWNoZXZlciBpcyBzbWFsbGVyXG4gICAgICAgIGNvbnN0IG9yaWdpbmFsRGF5ID0gZGF0ZS5nZXREYXRlKCk7XG4gICAgICAgIHYuc2V0RGF0ZShNYXRoLm1pbihvcmlnaW5hbERheSwgbGFzdERheU9mTW9udGgpKTtcblxuICAgICAgICB2YWx1ZSA9IHYudmFsdWVPZigpO1xuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICAgIGNhc2UgJ3dlZWsnOlxuICAgICAgICB2YWx1ZSArPSA3ICogODY0MDAwMDAgKiBhbW91bnQ7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAneWVhcic6IHtcbiAgICAgICAgY29uc3QgbmV3RGF0ZSA9IG5ldyBEYXRlKHZhbHVlKTtcbiAgICAgICAgbmV3RGF0ZS5zZXRGdWxsWWVhcihuZXdEYXRlLmdldEZ1bGxZZWFyKCkgKyBhbW91bnQpO1xuICAgICAgICAvLyBIYW5kbGluZyBmb3IgbGVhcCB5ZWFyczogaWYgdGhlIG9yaWdpbmFsIGRhdGUgaXMgRmVicnVhcnkgMjl0aCwgYW5kIHRoZSBuZXcgeWVhciBpcyBub3QgYSBsZWFwIHllYXIsXG4gICAgICAgIC8vIHNldCB0aGUgZGF0ZSB0byBGZWJydWFyeSAyOHRoLlxuICAgICAgICBpZiAoZGF0ZS5nZXRNb250aCgpID09PSAxICYmIGRhdGUuZ2V0RGF0ZSgpID09PSAyOSAmJiBuZXdEYXRlLmdldE1vbnRoKCkgIT09IDEpIHtcbiAgICAgICAgICBuZXdEYXRlLnNldE1vbnRoKDEpO1xuICAgICAgICAgIG5ld0RhdGUuc2V0RGF0ZSgyOCk7XG4gICAgICAgIH1cbiAgICAgICAgdmFsdWUgPSBuZXdEYXRlLnZhbHVlT2YoKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgICBjYXNlICdkYXknOlxuICAgICAgZGVmYXVsdDpcbiAgICAgICAgdmFsdWUgKz0gODY0MDAwMDAgKiBhbW91bnQ7XG4gICAgfVxuICAgIHJldHVybiBuZXcgQVhEYXRlVGltZShuZXcgRGF0ZSh2YWx1ZSksIHRoaXMpO1xuICB9XG5cbiAgc2V0KGRhdGU6IERhdGUsIHVuaXQ6IFRpbWVVbml0LCB2YWx1ZTogbnVtYmVyKTogQVhEYXRlVGltZSB7XG4gICAgY29uc3QgY2xvbmUgPSBuZXcgRGF0ZShkYXRlLnZhbHVlT2YoKSk7XG4gICAgc3dpdGNoICh1bml0KSB7XG4gICAgICBjYXNlICdzZWNvbmQnOlxuICAgICAgICBjbG9uZS5zZXRIb3VycyhjbG9uZS5nZXRIb3VycygpLCBjbG9uZS5nZXRNaW51dGVzKCksIHZhbHVlLCBjbG9uZS5nZXRNaWxsaXNlY29uZHMoKSk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnbWludXRlJzpcbiAgICAgICAgY2xvbmUuc2V0SG91cnMoY2xvbmUuZ2V0SG91cnMoKSwgdmFsdWUsIGNsb25lLmdldFNlY29uZHMoKSwgY2xvbmUuZ2V0TWlsbGlzZWNvbmRzKCkpO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ2hvdXInOlxuICAgICAgICBjbG9uZS5zZXRIb3Vycyh2YWx1ZSwgY2xvbmUuZ2V0TWludXRlcygpLCBjbG9uZS5nZXRTZWNvbmRzKCksIGNsb25lLmdldE1pbGxpc2Vjb25kcygpKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBkZWZhdWx0OlxuICAgICAgY2FzZSAnZGF5JzpcbiAgICAgICAgY2xvbmUuc2V0RGF0ZSh2YWx1ZSk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnd2Vlayc6XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnbW9udGgnOlxuICAgICAgICBjbG9uZS5zZXRNb250aChNYXRoLm1heCgwLCB2YWx1ZSAtIDEpKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICd5ZWFyJzpcbiAgICAgICAgY2xvbmUuc2V0RnVsbFllYXIodmFsdWUpO1xuICAgICAgICBicmVhaztcbiAgICB9XG4gICAgcmV0dXJuIG5ldyBBWERhdGVUaW1lKGNsb25lLCB0aGlzKTtcbiAgfVxuXG4gIHN0YXJ0T2YoZGF0ZTogRGF0ZSwgdW5pdDogVGltZVVuaXQpOiBBWERhdGVUaW1lIHtcbiAgICBjb25zdCBjbG9uZSA9IG5ldyBEYXRlKGRhdGUudmFsdWVPZigpKTtcbiAgICBzd2l0Y2ggKHVuaXQpIHtcbiAgICAgIGNhc2UgJ3NlY29uZCc6XG4gICAgICAgIGNsb25lLnNldEhvdXJzKGNsb25lLmdldEhvdXJzKCksIGNsb25lLmdldE1pbnV0ZXMoKSwgY2xvbmUuZ2V0U2Vjb25kcygpLCAwKTtcbiAgICAgICAgcmV0dXJuIG5ldyBBWERhdGVUaW1lKGNsb25lLCB0aGlzKTtcbiAgICAgIGNhc2UgJ21pbnV0ZSc6XG4gICAgICAgIGNsb25lLnNldEhvdXJzKGNsb25lLmdldEhvdXJzKCksIGNsb25lLmdldE1pbnV0ZXMoKSwgMCwgMCk7XG4gICAgICAgIHJldHVybiBuZXcgQVhEYXRlVGltZShjbG9uZSwgdGhpcyk7XG4gICAgICBjYXNlICdob3VyJzpcbiAgICAgICAgY2xvbmUuc2V0SG91cnMoY2xvbmUuZ2V0SG91cnMoKSwgMCwgMCwgMCk7XG4gICAgICAgIHJldHVybiBuZXcgQVhEYXRlVGltZShjbG9uZSwgdGhpcyk7XG4gICAgICBkZWZhdWx0OlxuICAgICAgY2FzZSAnZGF5JzpcbiAgICAgICAgY2xvbmUuc2V0SG91cnMoMCwgMCwgMCwgMCk7XG4gICAgICAgIHJldHVybiBuZXcgQVhEYXRlVGltZShjbG9uZSwgdGhpcyk7XG4gICAgICBjYXNlICd3ZWVrJzoge1xuICAgICAgICBjb25zdCBzdGFydCA9IDE7IC8vIFdlZWsgc3RhcnRzIG9uIE1vbmRheVxuICAgICAgICBjb25zdCBkYXkgPSBjbG9uZS5nZXREYXkoKTtcbiAgICAgICAgY29uc3QgZGlmZiA9IGNsb25lLmdldERhdGUoKSAtIGRheSArIChkYXkgPT0gMCA/IC02IDogc3RhcnQgLSBkYXkpO1xuICAgICAgICBjbG9uZS5zZXREYXRlKGRpZmYpO1xuICAgICAgICBjbG9uZS5zZXRIb3VycygwLCAwLCAwLCAwKTtcbiAgICAgICAgcmV0dXJuIG5ldyBBWERhdGVUaW1lKGNsb25lLCB0aGlzKTtcbiAgICAgIH1cbiAgICAgIGNhc2UgJ21vbnRoJzpcbiAgICAgICAgY2xvbmUuc2V0RGF0ZSgxKTtcbiAgICAgICAgcmV0dXJuIG5ldyBBWERhdGVUaW1lKGNsb25lLCB0aGlzKS5zdGFydE9mKCdkYXknKTtcbiAgICAgIGNhc2UgJ3llYXInOlxuICAgICAgICBjbG9uZS5zZXRNb250aCgwKTtcbiAgICAgICAgY2xvbmUuc2V0RGF0ZSgxKTtcbiAgICAgICAgcmV0dXJuIG5ldyBBWERhdGVUaW1lKGNsb25lLCB0aGlzKS5zdGFydE9mKCdkYXknKTtcbiAgICB9XG4gIH1cblxuICBlbmRPZihkYXRlOiBEYXRlLCB1bml0OiBUaW1lVW5pdCk6IEFYRGF0ZVRpbWUge1xuICAgIGNvbnN0IGNsb25lID0gbmV3IERhdGUoZGF0ZS52YWx1ZU9mKCkpO1xuICAgIHN3aXRjaCAodW5pdCkge1xuICAgICAgY2FzZSAnc2Vjb25kJzpcbiAgICAgICAgY2xvbmUuc2V0SG91cnMoY2xvbmUuZ2V0SG91cnMoKSwgY2xvbmUuZ2V0TWludXRlcygpLCBjbG9uZS5nZXRTZWNvbmRzKCksIDk5OSk7XG4gICAgICAgIHJldHVybiBuZXcgQVhEYXRlVGltZShjbG9uZSwgdGhpcyk7XG4gICAgICBjYXNlICdtaW51dGUnOlxuICAgICAgICBjbG9uZS5zZXRIb3VycyhjbG9uZS5nZXRIb3VycygpLCBjbG9uZS5nZXRNaW51dGVzKCksIDU5LCA5OTkpO1xuICAgICAgICByZXR1cm4gbmV3IEFYRGF0ZVRpbWUoY2xvbmUsIHRoaXMpO1xuICAgICAgY2FzZSAnaG91cic6XG4gICAgICAgIGNsb25lLnNldEhvdXJzKGNsb25lLmdldEhvdXJzKCksIDU5LCA1OSwgOTk5KTtcbiAgICAgICAgcmV0dXJuIG5ldyBBWERhdGVUaW1lKGNsb25lLCB0aGlzKTtcbiAgICAgIGRlZmF1bHQ6XG4gICAgICBjYXNlICdkYXknOlxuICAgICAgICBjbG9uZS5zZXRIb3VycygyMywgNTksIDU5LCA5OTkpO1xuICAgICAgICByZXR1cm4gbmV3IEFYRGF0ZVRpbWUoY2xvbmUsIHRoaXMpO1xuICAgICAgY2FzZSAnd2Vlayc6XG4gICAgICAgIHJldHVybiB0aGlzLnN0YXJ0T2YoZGF0ZSwgJ3dlZWsnKS5hZGQoJ2RheScsIDYpLmVuZE9mKCdkYXknKTtcbiAgICAgIGNhc2UgJ21vbnRoJzoge1xuICAgICAgICBjb25zdCBkYXRlT2JqID0gbmV3IERhdGUoZGF0ZS5nZXRGdWxsWWVhcigpLCBkYXRlLmdldE1vbnRoKCkgKyAxLCAwKTtcbiAgICAgICAgZGF0ZU9iai5zZXRIb3VycygyMywgNTksIDU5LCA5OTkpO1xuICAgICAgICByZXR1cm4gbmV3IEFYRGF0ZVRpbWUoZGF0ZU9iaiwgdGhpcyk7XG4gICAgICB9XG4gICAgICBjYXNlICd5ZWFyJzpcbiAgICAgICAgY2xvbmUuc2V0TW9udGgoMTEpO1xuICAgICAgICByZXR1cm4gbmV3IEFYRGF0ZVRpbWUoY2xvbmUsIHRoaXMpLmVuZE9mKCdtb250aCcpO1xuICAgIH1cbiAgfVxuXG4gIGlzTGVhcChkYXRlOiBEYXRlKSB7XG4gICAgbGV0IGxlYXBZZWFyID0gbmV3IERhdGUoZGF0ZS5nZXRGdWxsWWVhcigpLCAxLCAyOSk7XG4gICAgcmV0dXJuIGxlYXBZZWFyLmdldERhdGUoKSA9PSAyOTtcbiAgfVxuXG4gIHBhcnNlKHZhbHVlOiBzdHJpbmcpOiBBWERhdGVUaW1lIHtcbiAgICByZXR1cm4gbmV3IEFYRGF0ZVRpbWUobmV3IERhdGUodmFsdWUpLCB0aGlzKTtcbiAgfVxufVxuIl19
|
@@ -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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaG9saWRheXMubG9hZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb3JlL2RhdGVUaW1lL3NyYy9saWIvaG9saWRheXMubG9hZGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFrQi9DLE1BQU0sT0FBTyx1QkFBdUI7SUFDbEMsV0FBVyxDQUFDLE9BQTZDO1FBQ3ZELE9BQU8sT0FBTyxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUM3QixDQUFDO0NBQ0Y7QUFFRCxNQUFNLENBQUMsTUFBTSwyQkFBMkIsR0FBRyxJQUFJLGNBQWMsQ0FDM0QsNkJBQTZCLEVBQzdCO0lBQ0UsVUFBVSxFQUFFLE1BQU07SUFDbEIsT0FBTyxFQUFFLEdBQUcsRUFBRTtRQUNaLE9BQU8sSUFBSSx1QkFBdUIsRUFBRSxDQUFDO0lBQ3ZDLENBQUM7Q0FDRixDQUNGLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3Rpb25Ub2tlbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5leHBvcnQgaW50ZXJmYWNlIEFYSG9saWRheURhdGUge1xuICBkYXRlOiBEYXRlO1xuICB0aXRsZTogc3RyaW5nO1xuICBkZXNjcmlwdGlvbj86IHN0cmluZztcbiAgW2tleTogc3RyaW5nXTogdW5rbm93bjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBBWEhvbGlkYXlzTG9hZGVyT3B0aW9ucyB7XG4gIGNhbGVuZGFyPzogc3RyaW5nO1xuICByYW5nZT86IHsgc3RhcnQ6IERhdGU7IGVuZDogRGF0ZSB9O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEFYSG9saWRheXNMb2FkZXIge1xuICBnZXRIb2xpZGF5cyhvcHRpb25zPzogQVhIb2xpZGF5c0xvYWRlck9wdGlvbnMpOiBQcm9taXNlPEFYSG9saWRheURhdGVbXT47XG59XG5cbmV4cG9ydCBjbGFzcyBBWEhvbGlkYXlzTG9hZGVyRGVmYXVsdCBpbXBsZW1lbnRzIEFYSG9saWRheXNMb2FkZXIge1xuICBnZXRIb2xpZGF5cyhvcHRpb25zPzogQVhIb2xpZGF5c0xvYWRlck9wdGlvbnMgfCB1bmRlZmluZWQpOiBQcm9taXNlPEFYSG9saWRheURhdGVbXT4ge1xuICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUoW10pO1xuICB9XG59XG5cbmV4cG9ydCBjb25zdCBBWF9EQVRFVElNRV9IT0xJREFZU19MT0FERVIgPSBuZXcgSW5qZWN0aW9uVG9rZW48QVhIb2xpZGF5c0xvYWRlcj4oXG4gICdBWF9EQVRFVElNRV9IT0xJREFZU19MT0FERVInLFxuICB7XG4gICAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxuICAgIGZhY3Rvcnk6ICgpID0+IHtcbiAgICAgIHJldHVybiBuZXcgQVhIb2xpZGF5c0xvYWRlckRlZmF1bHQoKTtcbiAgICB9LFxuICB9LFxuKTtcbiJdfQ==
|