@dereekb/date 9.25.15 → 10.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/CHANGELOG.md +12 -0
- package/package.json +9 -17
- package/src/lib/date/date.calendar.d.ts +1 -1
- package/src/lib/date/date.calendar.js +2 -2
- package/src/lib/date/date.calendar.js.map +1 -1
- package/src/lib/date/date.cell.d.ts +16 -32
- package/src/lib/date/date.cell.factory.d.ts +15 -15
- package/src/lib/date/date.cell.factory.js +1 -1
- package/src/lib/date/date.cell.factory.js.map +1 -1
- package/src/lib/date/date.cell.filter.d.ts +2 -2
- package/src/lib/date/date.cell.filter.js.map +1 -1
- package/src/lib/date/date.cell.index.d.ts +12 -12
- package/src/lib/date/date.cell.index.js +2 -2
- package/src/lib/date/date.cell.index.js.map +1 -1
- package/src/lib/date/date.cell.js +4 -21
- package/src/lib/date/date.cell.js.map +1 -1
- package/src/lib/date/date.cell.schedule.d.ts +12 -12
- package/src/lib/date/date.cell.schedule.js +4 -4
- package/src/lib/date/date.cell.schedule.js.map +1 -1
- package/src/lib/date/date.cell.week.d.ts +3 -3
- package/src/lib/date/date.d.ts +3 -15
- package/src/lib/date/date.day.d.ts +9 -9
- package/src/lib/date/date.duration.d.ts +1 -5
- package/src/lib/date/date.duration.js +2 -7
- package/src/lib/date/date.duration.js.map +1 -1
- package/src/lib/date/date.format.d.ts +10 -13
- package/src/lib/date/date.format.js +3 -12
- package/src/lib/date/date.format.js.map +1 -1
- package/src/lib/date/date.js +1 -17
- package/src/lib/date/date.js.map +1 -1
- package/src/lib/date/date.logical.d.ts +6 -6
- package/src/lib/date/date.range.d.ts +14 -35
- package/src/lib/date/date.range.js +4 -27
- package/src/lib/date/date.range.js.map +1 -1
- package/src/lib/date/date.range.timezone.d.ts +1 -8
- package/src/lib/date/date.range.timezone.js +7 -6
- package/src/lib/date/date.range.timezone.js.map +1 -1
- package/src/lib/date/date.sort.d.ts +2 -2
- package/src/lib/date/date.time.js.map +1 -1
- package/src/lib/date/date.time.limit.d.ts +0 -8
- package/src/lib/date/date.time.limit.js +0 -10
- package/src/lib/date/date.time.limit.js.map +1 -1
- package/src/lib/date/date.time.minute.d.ts +2 -9
- package/src/lib/date/date.time.minute.js +2 -11
- package/src/lib/date/date.time.minute.js.map +1 -1
- package/src/lib/date/date.timezone.d.ts +13 -17
- package/src/lib/date/date.timezone.js +13 -18
- package/src/lib/date/date.timezone.js.map +1 -1
- package/src/lib/date/date.week.d.ts +13 -17
- package/src/lib/date/date.week.js +1 -6
- package/src/lib/date/date.week.js.map +1 -1
- package/src/lib/date/index.d.ts +0 -5
- package/src/lib/date/index.js +0 -5
- package/src/lib/date/index.js.map +1 -1
- package/src/lib/query/query.builder.d.ts +4 -4
- package/src/lib/query/query.builder.mongo.d.ts +1 -1
- package/src/lib/rrule/date.recurrence.d.ts +1 -1
- package/src/lib/rrule/date.recurrence.js +2 -3
- package/src/lib/rrule/date.recurrence.js.map +1 -1
- package/src/lib/rrule/date.rrule.d.ts +1 -1
- package/src/lib/rrule/date.rrule.js +14 -14
- package/src/lib/rrule/date.rrule.js.map +1 -1
- package/src/lib/rrule/date.rrule.parse.d.ts +10 -10
- package/src/lib/date/date.block.d.ts +0 -1388
- package/src/lib/date/date.block.day.d.ts +0 -10
- package/src/lib/date/date.block.day.js +0 -16
- package/src/lib/date/date.block.day.js.map +0 -1
- package/src/lib/date/date.block.js +0 -1849
- package/src/lib/date/date.block.js.map +0 -1
- package/src/lib/date/date.block.validator.d.ts +0 -20
- package/src/lib/date/date.block.validator.js +0 -72
- package/src/lib/date/date.block.validator.js.map +0 -1
- package/src/lib/date/date.block.week.d.ts +0 -44
- package/src/lib/date/date.block.week.js +0 -46
- package/src/lib/date/date.block.week.js.map +0 -1
- package/src/lib/date/date.filter.d.ts +0 -7
- package/src/lib/date/date.filter.js +0 -28
- package/src/lib/date/date.filter.js.map +0 -1
- package/src/lib/date/date.schedule.d.ts +0 -431
- package/src/lib/date/date.schedule.js +0 -553
- package/src/lib/date/date.schedule.js.map +0 -1
|
@@ -1,553 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.expandDateScheduleEncodedWeek = exports.dateScheduleDayCodes = exports.expandDateScheduleRangeToDateBlockRanges = exports.expandDateScheduleRange = exports.dateBlockTimingForExpandDateScheduleRangeInput = exports.expandDateSchedule = exports.expandDateScheduleFactory = exports.dateScheduleDateBlockTimingFilter = exports.dateScheduleDateFilter = exports.copyDateScheduleDateFilterConfig = exports.dateBlockTimingForDateScheduleRange = exports.isSameDateScheduleRange = exports.DateSchedule = exports.isSameDateSchedule = exports.dateScheduleDayCodesAreSetsEquivalent = exports.dateScheduleDayCodeFactory = exports.rawDateScheduleDayCodes = exports.expandDateScheduleDayCodesToDayCodesSet = exports.expandDateScheduleDayCodes = exports.dateScheduleDayCodesSetFromDaysOfWeek = exports.expandDateScheduleDayCodesToDayOfWeekSet = exports.simplifyDateScheduleDayCodes = exports.dateScheduleEncodedWeek = exports.isEmptyDateScheduleEncodedWeek = exports.isDateScheduleEncodedWeek = exports.DATE_SCHEDULE_ENCODED_WEEK_REGEX = exports.dateScheduleDayCodesFromEnabledDays = exports.enabledDaysFromDateScheduleDayCodes = exports.weekendDateScheduleDayCodes = exports.weekdayDateScheduleDayCodes = exports.fullWeekDayScheduleDayCodes = exports.DateScheduleDayCode = void 0;
|
|
4
|
-
const tslib_1 = require("tslib");
|
|
5
|
-
const util_1 = require("@dereekb/util");
|
|
6
|
-
const class_transformer_1 = require("class-transformer");
|
|
7
|
-
const class_validator_1 = require("class-validator");
|
|
8
|
-
const date_fns_1 = require("date-fns");
|
|
9
|
-
const date_block_1 = require("./date.block");
|
|
10
|
-
const date_filter_1 = require("./date.filter");
|
|
11
|
-
const date_range_1 = require("./date.range");
|
|
12
|
-
const date_week_1 = require("./date.week");
|
|
13
|
-
/**
|
|
14
|
-
* @deprecated use DateCellScheduleDayCode instead
|
|
15
|
-
*/
|
|
16
|
-
var DateScheduleDayCode;
|
|
17
|
-
(function (DateScheduleDayCode) {
|
|
18
|
-
/**
|
|
19
|
-
* Special no-op/unused code
|
|
20
|
-
*/
|
|
21
|
-
DateScheduleDayCode[DateScheduleDayCode["NONE"] = 0] = "NONE";
|
|
22
|
-
DateScheduleDayCode[DateScheduleDayCode["SUNDAY"] = 1] = "SUNDAY";
|
|
23
|
-
DateScheduleDayCode[DateScheduleDayCode["MONDAY"] = 2] = "MONDAY";
|
|
24
|
-
DateScheduleDayCode[DateScheduleDayCode["TUESDAY"] = 3] = "TUESDAY";
|
|
25
|
-
DateScheduleDayCode[DateScheduleDayCode["WEDNESDAY"] = 4] = "WEDNESDAY";
|
|
26
|
-
DateScheduleDayCode[DateScheduleDayCode["THURSDAY"] = 5] = "THURSDAY";
|
|
27
|
-
DateScheduleDayCode[DateScheduleDayCode["FRIDAY"] = 6] = "FRIDAY";
|
|
28
|
-
DateScheduleDayCode[DateScheduleDayCode["SATURDAY"] = 7] = "SATURDAY";
|
|
29
|
-
/**
|
|
30
|
-
* All weekdays (Mon-Fri)
|
|
31
|
-
*/
|
|
32
|
-
DateScheduleDayCode[DateScheduleDayCode["WEEKDAY"] = 8] = "WEEKDAY";
|
|
33
|
-
/**
|
|
34
|
-
* All weekend days (Sat/Sun)
|
|
35
|
-
*/
|
|
36
|
-
DateScheduleDayCode[DateScheduleDayCode["WEEKEND"] = 9] = "WEEKEND";
|
|
37
|
-
})(DateScheduleDayCode = exports.DateScheduleDayCode || (exports.DateScheduleDayCode = {}));
|
|
38
|
-
/**
|
|
39
|
-
* @deprecated use DateCell implementation instead.
|
|
40
|
-
*/
|
|
41
|
-
function fullWeekDayScheduleDayCodes() {
|
|
42
|
-
return [DateScheduleDayCode.WEEKDAY, DateScheduleDayCode.WEEKEND];
|
|
43
|
-
}
|
|
44
|
-
exports.fullWeekDayScheduleDayCodes = fullWeekDayScheduleDayCodes;
|
|
45
|
-
/**
|
|
46
|
-
* @deprecated use DateCell implementation instead.
|
|
47
|
-
*/
|
|
48
|
-
function weekdayDateScheduleDayCodes() {
|
|
49
|
-
return [DateScheduleDayCode.MONDAY, DateScheduleDayCode.TUESDAY, DateScheduleDayCode.WEDNESDAY, DateScheduleDayCode.THURSDAY, DateScheduleDayCode.FRIDAY];
|
|
50
|
-
}
|
|
51
|
-
exports.weekdayDateScheduleDayCodes = weekdayDateScheduleDayCodes;
|
|
52
|
-
/**
|
|
53
|
-
* @deprecated use DateCell implementation instead.
|
|
54
|
-
*/
|
|
55
|
-
function weekendDateScheduleDayCodes() {
|
|
56
|
-
return [DateScheduleDayCode.SATURDAY, DateScheduleDayCode.SUNDAY];
|
|
57
|
-
}
|
|
58
|
-
exports.weekendDateScheduleDayCodes = weekendDateScheduleDayCodes;
|
|
59
|
-
/**
|
|
60
|
-
* Creates an EnabledDays from the input.
|
|
61
|
-
*
|
|
62
|
-
* @deprecated use DateCell implementation instead.
|
|
63
|
-
* @param input
|
|
64
|
-
* @returns
|
|
65
|
-
*/
|
|
66
|
-
function enabledDaysFromDateScheduleDayCodes(input) {
|
|
67
|
-
const days = expandDateScheduleDayCodesToDayOfWeekSet(Array.from(new Set(input)));
|
|
68
|
-
return (0, util_1.enabledDaysFromDaysOfWeek)(days);
|
|
69
|
-
}
|
|
70
|
-
exports.enabledDaysFromDateScheduleDayCodes = enabledDaysFromDateScheduleDayCodes;
|
|
71
|
-
/**
|
|
72
|
-
* Creates an array of simplified DateScheduleDayCode[] values from the input.
|
|
73
|
-
*
|
|
74
|
-
* @deprecated use DateCell implementation instead.
|
|
75
|
-
* @param input
|
|
76
|
-
* @returns
|
|
77
|
-
*/
|
|
78
|
-
function dateScheduleDayCodesFromEnabledDays(input) {
|
|
79
|
-
const days = (0, util_1.daysOfWeekFromEnabledDays)(input);
|
|
80
|
-
const scheduleDayCodes = days.map((x) => x + 1);
|
|
81
|
-
return simplifyDateScheduleDayCodes(scheduleDayCodes);
|
|
82
|
-
}
|
|
83
|
-
exports.dateScheduleDayCodesFromEnabledDays = dateScheduleDayCodesFromEnabledDays;
|
|
84
|
-
/**
|
|
85
|
-
* @deprecated use DateCell implementation instead.
|
|
86
|
-
*/
|
|
87
|
-
exports.DATE_SCHEDULE_ENCODED_WEEK_REGEX = /^[0-9]{0,9}$/;
|
|
88
|
-
/**
|
|
89
|
-
* Returns true if the input is a DateScheduleEncodedWeek.
|
|
90
|
-
*
|
|
91
|
-
* @deprecated use DateCell implementation instead.
|
|
92
|
-
* @param input
|
|
93
|
-
* @returns
|
|
94
|
-
*/
|
|
95
|
-
function isDateScheduleEncodedWeek(input) {
|
|
96
|
-
return exports.DATE_SCHEDULE_ENCODED_WEEK_REGEX.test(input);
|
|
97
|
-
}
|
|
98
|
-
exports.isDateScheduleEncodedWeek = isDateScheduleEncodedWeek;
|
|
99
|
-
/**
|
|
100
|
-
* Returns true if the input string represents an empty DateScheduleEncodedWeek.
|
|
101
|
-
*
|
|
102
|
-
* @deprecated use DateCell implementation instead.
|
|
103
|
-
* @param input
|
|
104
|
-
* @returns
|
|
105
|
-
*/
|
|
106
|
-
function isEmptyDateScheduleEncodedWeek(input) {
|
|
107
|
-
return input === '' || input === '0';
|
|
108
|
-
}
|
|
109
|
-
exports.isEmptyDateScheduleEncodedWeek = isEmptyDateScheduleEncodedWeek;
|
|
110
|
-
/**
|
|
111
|
-
* Creates a DateScheduleEncodedWeek from an array of DateScheduleDayCode values.
|
|
112
|
-
*
|
|
113
|
-
* The returned encoded week is simplified.
|
|
114
|
-
*
|
|
115
|
-
* @deprecated use DateCell implementation instead.
|
|
116
|
-
* @param codes
|
|
117
|
-
*/
|
|
118
|
-
function dateScheduleEncodedWeek(codes) {
|
|
119
|
-
const result = simplifyDateScheduleDayCodes(codes);
|
|
120
|
-
return result.join('');
|
|
121
|
-
}
|
|
122
|
-
exports.dateScheduleEncodedWeek = dateScheduleEncodedWeek;
|
|
123
|
-
/**
|
|
124
|
-
* Reduces/merges any day codes into more simplified day codes.
|
|
125
|
-
*
|
|
126
|
-
* For instance, if all days of the week are selected, they will be reduced to "8".
|
|
127
|
-
*
|
|
128
|
-
* @deprecated use DateCell implementation instead.
|
|
129
|
-
* @param codes
|
|
130
|
-
* @returns
|
|
131
|
-
*/
|
|
132
|
-
function simplifyDateScheduleDayCodes(codes) {
|
|
133
|
-
const codesSet = new Set(codes);
|
|
134
|
-
const result = [];
|
|
135
|
-
if (codesSet.size >= 2) {
|
|
136
|
-
let weekDays;
|
|
137
|
-
let hasAllWeekDays = codesSet.has(DateScheduleDayCode.WEEKDAY);
|
|
138
|
-
if (!hasAllWeekDays) {
|
|
139
|
-
weekDays = (0, util_1.range)(DateScheduleDayCode.MONDAY, DateScheduleDayCode.SATURDAY).filter((code) => codesSet.has(code));
|
|
140
|
-
hasAllWeekDays = weekDays.length === 5;
|
|
141
|
-
}
|
|
142
|
-
const hasSaturday = codesSet.has(DateScheduleDayCode.SATURDAY);
|
|
143
|
-
const hasSunday = codesSet.has(DateScheduleDayCode.SUNDAY);
|
|
144
|
-
const hasAllWeekendDays = codesSet.has(DateScheduleDayCode.WEEKEND) || (hasSaturday && hasSunday);
|
|
145
|
-
if (!hasAllWeekendDays && hasSunday) {
|
|
146
|
-
result.push(DateScheduleDayCode.SUNDAY);
|
|
147
|
-
}
|
|
148
|
-
if (!hasAllWeekDays) {
|
|
149
|
-
(0, util_1.mergeArrayIntoArray)(result, weekDays);
|
|
150
|
-
}
|
|
151
|
-
if (!hasAllWeekendDays && hasSaturday) {
|
|
152
|
-
result.push(DateScheduleDayCode.SATURDAY);
|
|
153
|
-
}
|
|
154
|
-
if (hasAllWeekDays) {
|
|
155
|
-
result.push(DateScheduleDayCode.WEEKDAY);
|
|
156
|
-
}
|
|
157
|
-
if (hasAllWeekendDays) {
|
|
158
|
-
result.push(DateScheduleDayCode.WEEKEND);
|
|
159
|
-
}
|
|
160
|
-
}
|
|
161
|
-
else {
|
|
162
|
-
const only = (0, util_1.firstValueFromIterable)(codesSet);
|
|
163
|
-
if (only) {
|
|
164
|
-
result.push(only);
|
|
165
|
-
}
|
|
166
|
-
}
|
|
167
|
-
return result;
|
|
168
|
-
}
|
|
169
|
-
exports.simplifyDateScheduleDayCodes = simplifyDateScheduleDayCodes;
|
|
170
|
-
/**
|
|
171
|
-
* Expands the input DateScheduleDayCodesInput to a Set of DayOfWeek values.
|
|
172
|
-
*
|
|
173
|
-
* @deprecated use DateCell implementation instead.
|
|
174
|
-
* @param input
|
|
175
|
-
* @returns
|
|
176
|
-
*/
|
|
177
|
-
function expandDateScheduleDayCodesToDayOfWeekSet(input) {
|
|
178
|
-
const days = new Set();
|
|
179
|
-
const dayCodesSet = expandDateScheduleDayCodesToDayCodesSet(input);
|
|
180
|
-
(0, util_1.forEachInIterable)(dayCodesSet, (code) => {
|
|
181
|
-
days.add((code - 1));
|
|
182
|
-
});
|
|
183
|
-
return days;
|
|
184
|
-
}
|
|
185
|
-
exports.expandDateScheduleDayCodesToDayOfWeekSet = expandDateScheduleDayCodesToDayOfWeekSet;
|
|
186
|
-
/**
|
|
187
|
-
*
|
|
188
|
-
* @deprecated use DateCell implementation instead.
|
|
189
|
-
* @param input
|
|
190
|
-
* @returns
|
|
191
|
-
*/
|
|
192
|
-
function dateScheduleDayCodesSetFromDaysOfWeek(input) {
|
|
193
|
-
const codes = new Set();
|
|
194
|
-
(0, util_1.forEachInIterable)(input, (code) => {
|
|
195
|
-
codes.add((code + 1));
|
|
196
|
-
});
|
|
197
|
-
return codes;
|
|
198
|
-
}
|
|
199
|
-
exports.dateScheduleDayCodesSetFromDaysOfWeek = dateScheduleDayCodesSetFromDaysOfWeek;
|
|
200
|
-
/**
|
|
201
|
-
* Expands the input into an array of DateScheduleDayCode values.
|
|
202
|
-
*
|
|
203
|
-
* @deprecated use DateCell implementation instead.
|
|
204
|
-
* @param input
|
|
205
|
-
* @returns
|
|
206
|
-
*/
|
|
207
|
-
function expandDateScheduleDayCodes(input) {
|
|
208
|
-
return Array.from(expandDateScheduleDayCodesToDayCodesSet(input));
|
|
209
|
-
}
|
|
210
|
-
exports.expandDateScheduleDayCodes = expandDateScheduleDayCodes;
|
|
211
|
-
/**
|
|
212
|
-
* Expands the input DateScheduleDayCodesInput to a Set of DayOfWeek values.
|
|
213
|
-
*
|
|
214
|
-
* @deprecated use DateCell implementation instead.
|
|
215
|
-
* @param input
|
|
216
|
-
* @returns
|
|
217
|
-
*/
|
|
218
|
-
function expandDateScheduleDayCodesToDayCodesSet(input) {
|
|
219
|
-
const codes = rawDateScheduleDayCodes(input);
|
|
220
|
-
const days = new Set();
|
|
221
|
-
codes.forEach((code) => {
|
|
222
|
-
switch (code) {
|
|
223
|
-
case 0:
|
|
224
|
-
// do nothing
|
|
225
|
-
break;
|
|
226
|
-
case 8:
|
|
227
|
-
(0, util_1.addToSet)(days, weekdayDateScheduleDayCodes()); // monday-friday
|
|
228
|
-
break;
|
|
229
|
-
case 9:
|
|
230
|
-
(0, util_1.addToSet)(days, weekendDateScheduleDayCodes());
|
|
231
|
-
break;
|
|
232
|
-
default: // remove offset
|
|
233
|
-
days.add(code);
|
|
234
|
-
break;
|
|
235
|
-
}
|
|
236
|
-
});
|
|
237
|
-
return days;
|
|
238
|
-
}
|
|
239
|
-
exports.expandDateScheduleDayCodesToDayCodesSet = expandDateScheduleDayCodesToDayCodesSet;
|
|
240
|
-
/**
|
|
241
|
-
* Converts the input DateScheduleDayCodesInput to an array of DateScheduleDayCode values, but does not expand
|
|
242
|
-
*
|
|
243
|
-
* @deprecated use DateCell implementation instead.
|
|
244
|
-
* @param input
|
|
245
|
-
* @returns
|
|
246
|
-
*/
|
|
247
|
-
function rawDateScheduleDayCodes(input) {
|
|
248
|
-
let dayCodes;
|
|
249
|
-
switch (typeof input) {
|
|
250
|
-
case 'string':
|
|
251
|
-
dayCodes = Array.from(new Set(input)).map((x) => Number(x));
|
|
252
|
-
break;
|
|
253
|
-
case 'number':
|
|
254
|
-
dayCodes = [input];
|
|
255
|
-
break;
|
|
256
|
-
default:
|
|
257
|
-
dayCodes = Array.from(input);
|
|
258
|
-
break;
|
|
259
|
-
}
|
|
260
|
-
return dayCodes.filter((x) => Boolean(x)); // filter out "none" code
|
|
261
|
-
}
|
|
262
|
-
exports.rawDateScheduleDayCodes = rawDateScheduleDayCodes;
|
|
263
|
-
/**
|
|
264
|
-
* Creates a DateScheduleDayCodeFactory using the optional input config.
|
|
265
|
-
*
|
|
266
|
-
* @deprecated use DateCell implementation instead.
|
|
267
|
-
* @param config
|
|
268
|
-
* @returns
|
|
269
|
-
*/
|
|
270
|
-
function dateScheduleDayCodeFactory(config) {
|
|
271
|
-
const normal = (0, date_week_1.yearWeekCodeDateTimezoneInstance)(config === null || config === void 0 ? void 0 : config.timezone);
|
|
272
|
-
return (date) => {
|
|
273
|
-
const target = normal.systemDateToTargetDate(date);
|
|
274
|
-
const day = (0, date_fns_1.getDay)(target);
|
|
275
|
-
return day + 1;
|
|
276
|
-
};
|
|
277
|
-
}
|
|
278
|
-
exports.dateScheduleDayCodeFactory = dateScheduleDayCodeFactory;
|
|
279
|
-
/**
|
|
280
|
-
* Returns true if the input codes, when expanded, are equivalent.
|
|
281
|
-
*
|
|
282
|
-
* @deprecated use DateCell implementation instead.
|
|
283
|
-
* @param a
|
|
284
|
-
* @param b
|
|
285
|
-
* @returns
|
|
286
|
-
*/
|
|
287
|
-
function dateScheduleDayCodesAreSetsEquivalent(a, b) {
|
|
288
|
-
const ae = expandDateScheduleDayCodes(a);
|
|
289
|
-
const be = expandDateScheduleDayCodes(b);
|
|
290
|
-
return (0, util_1.iterablesAreSetEquivalent)(ae, be);
|
|
291
|
-
}
|
|
292
|
-
exports.dateScheduleDayCodesAreSetsEquivalent = dateScheduleDayCodesAreSetsEquivalent;
|
|
293
|
-
/**
|
|
294
|
-
*
|
|
295
|
-
* @deprecated use DateCell implementation instead.
|
|
296
|
-
* @param a
|
|
297
|
-
* @param b
|
|
298
|
-
* @returns
|
|
299
|
-
*/
|
|
300
|
-
function isSameDateSchedule(a, b) {
|
|
301
|
-
if (a && b) {
|
|
302
|
-
return a.w === b.w && (0, util_1.iterablesAreSetEquivalent)(a.ex, b.ex) && (0, util_1.iterablesAreSetEquivalent)(a.d, b.d);
|
|
303
|
-
}
|
|
304
|
-
else {
|
|
305
|
-
return a == b;
|
|
306
|
-
}
|
|
307
|
-
}
|
|
308
|
-
exports.isSameDateSchedule = isSameDateSchedule;
|
|
309
|
-
/**
|
|
310
|
-
*
|
|
311
|
-
* @deprecated use DateCell implementation instead.
|
|
312
|
-
*/
|
|
313
|
-
class DateSchedule {
|
|
314
|
-
constructor(template) {
|
|
315
|
-
if (template) {
|
|
316
|
-
this.w = template.w;
|
|
317
|
-
this.d = template.d;
|
|
318
|
-
this.ex = template.ex;
|
|
319
|
-
}
|
|
320
|
-
}
|
|
321
|
-
}
|
|
322
|
-
tslib_1.__decorate([
|
|
323
|
-
(0, class_transformer_1.Expose)(),
|
|
324
|
-
(0, class_validator_1.IsString)(),
|
|
325
|
-
(0, class_validator_1.Matches)(exports.DATE_SCHEDULE_ENCODED_WEEK_REGEX),
|
|
326
|
-
tslib_1.__metadata("design:type", String)
|
|
327
|
-
], DateSchedule.prototype, "w", void 0);
|
|
328
|
-
tslib_1.__decorate([
|
|
329
|
-
(0, class_transformer_1.Expose)(),
|
|
330
|
-
(0, class_validator_1.IsOptional)(),
|
|
331
|
-
(0, class_validator_1.Min)(0, { each: true }),
|
|
332
|
-
(0, class_validator_1.IsArray)(),
|
|
333
|
-
tslib_1.__metadata("design:type", Array)
|
|
334
|
-
], DateSchedule.prototype, "d", void 0);
|
|
335
|
-
tslib_1.__decorate([
|
|
336
|
-
(0, class_transformer_1.Expose)(),
|
|
337
|
-
(0, class_validator_1.IsOptional)(),
|
|
338
|
-
(0, class_validator_1.Min)(0, { each: true }),
|
|
339
|
-
(0, class_validator_1.IsArray)(),
|
|
340
|
-
tslib_1.__metadata("design:type", Array)
|
|
341
|
-
], DateSchedule.prototype, "ex", void 0);
|
|
342
|
-
exports.DateSchedule = DateSchedule;
|
|
343
|
-
/**
|
|
344
|
-
* Returns true if both inputs have the same schedule and date range.
|
|
345
|
-
*
|
|
346
|
-
* @deprecated use DateCell implementation instead.
|
|
347
|
-
* @param a
|
|
348
|
-
* @param b
|
|
349
|
-
* @returns
|
|
350
|
-
*/
|
|
351
|
-
function isSameDateScheduleRange(a, b) {
|
|
352
|
-
if (a && b) {
|
|
353
|
-
return (0, date_range_1.isSameDateRange)(a, b) && isSameDateSchedule(a, b);
|
|
354
|
-
}
|
|
355
|
-
else {
|
|
356
|
-
return a == b;
|
|
357
|
-
}
|
|
358
|
-
}
|
|
359
|
-
exports.isSameDateScheduleRange = isSameDateScheduleRange;
|
|
360
|
-
function dateBlockTimingForDateScheduleRange(dateScheduleRange, duration, startsAtTime, timezone) {
|
|
361
|
-
const { start } = dateScheduleRange;
|
|
362
|
-
const timing = (0, date_block_1.safeDateBlockTimingFromDateRangeAndEvent)(dateScheduleRange, { startsAt: startsAtTime !== null && startsAtTime !== void 0 ? startsAtTime : start, duration }, timezone);
|
|
363
|
-
return timing;
|
|
364
|
-
}
|
|
365
|
-
exports.dateBlockTimingForDateScheduleRange = dateBlockTimingForDateScheduleRange;
|
|
366
|
-
/**
|
|
367
|
-
*
|
|
368
|
-
* @deprecated use DateCell implementation instead.
|
|
369
|
-
* @param inputFilter
|
|
370
|
-
* @returns
|
|
371
|
-
*/
|
|
372
|
-
function copyDateScheduleDateFilterConfig(inputFilter) {
|
|
373
|
-
return {
|
|
374
|
-
start: inputFilter.start,
|
|
375
|
-
end: inputFilter.end,
|
|
376
|
-
w: inputFilter.w,
|
|
377
|
-
d: inputFilter.d,
|
|
378
|
-
ex: inputFilter.ex
|
|
379
|
-
};
|
|
380
|
-
}
|
|
381
|
-
exports.copyDateScheduleDateFilterConfig = copyDateScheduleDateFilterConfig;
|
|
382
|
-
/**
|
|
383
|
-
* Creates a DateScheduleDateFilter.
|
|
384
|
-
*
|
|
385
|
-
* @deprecated use DateCell implementation instead.
|
|
386
|
-
* @param config
|
|
387
|
-
* @returns
|
|
388
|
-
*/
|
|
389
|
-
function dateScheduleDateFilter(config) {
|
|
390
|
-
const { w, start: inputStart, setStartAsMinDate = true, end, minMaxDateRange } = config;
|
|
391
|
-
const timingStart = inputStart != null ? (0, date_block_1.changeTimingToSystemTimezone)({ start: inputStart }) : (0, date_block_1.dateBlockTimingStartForNowInSystemTimezone)();
|
|
392
|
-
const { start: firstDate } = timingStart;
|
|
393
|
-
const allowedDays = expandDateScheduleDayCodesToDayOfWeekSet(w);
|
|
394
|
-
// Start date is either now or the filter's start date. It is never the minMax's start date, since that is irrelevant to the filter's range.
|
|
395
|
-
const firstDateDay = (0, date_fns_1.getDay)(firstDate);
|
|
396
|
-
const dayForIndex = (0, date_block_1.dateBlockDayOfWeekFactory)(firstDateDay);
|
|
397
|
-
const dateIndexForDate = (0, date_block_1.dateBlockTimingRelativeIndexFactory)(timingStart);
|
|
398
|
-
const indexFloor = setStartAsMinDate ? 0 : Number.MIN_SAFE_INTEGER;
|
|
399
|
-
const minAllowedIndex = (minMaxDateRange === null || minMaxDateRange === void 0 ? void 0 : minMaxDateRange.start) != null ? Math.max(indexFloor, dateIndexForDate(minMaxDateRange.start)) : indexFloor; // start date should be the min inde
|
|
400
|
-
const maxAllowedIndex = end != null ? dateIndexForDate(end) : (minMaxDateRange === null || minMaxDateRange === void 0 ? void 0 : minMaxDateRange.end) != null ? dateIndexForDate(minMaxDateRange.end) : Number.MAX_SAFE_INTEGER; // max "to" value
|
|
401
|
-
const includedIndexes = new Set(config.d);
|
|
402
|
-
const excludedIndexes = new Set(config.ex);
|
|
403
|
-
return (input) => {
|
|
404
|
-
let i;
|
|
405
|
-
let day;
|
|
406
|
-
if (typeof input === 'number') {
|
|
407
|
-
i = input;
|
|
408
|
-
}
|
|
409
|
-
else {
|
|
410
|
-
i = dateIndexForDate(input);
|
|
411
|
-
}
|
|
412
|
-
day = dayForIndex(i);
|
|
413
|
-
const result = (i >= minAllowedIndex && i <= maxAllowedIndex && allowedDays.has(day) && !excludedIndexes.has(i)) || includedIndexes.has(i);
|
|
414
|
-
return result;
|
|
415
|
-
};
|
|
416
|
-
}
|
|
417
|
-
exports.dateScheduleDateFilter = dateScheduleDateFilter;
|
|
418
|
-
/**
|
|
419
|
-
* Creates a DateScheduleDateBlockTimingFilter.
|
|
420
|
-
*
|
|
421
|
-
* @deprecated use DateCell implementation instead.
|
|
422
|
-
* @param param0
|
|
423
|
-
* @returns
|
|
424
|
-
*/
|
|
425
|
-
function dateScheduleDateBlockTimingFilter({ timing, schedule }) {
|
|
426
|
-
const isAllowed = dateScheduleDateFilter({
|
|
427
|
-
w: schedule.w,
|
|
428
|
-
d: schedule.d,
|
|
429
|
-
ex: schedule.ex,
|
|
430
|
-
start: (0, date_block_1.getCurrentDateBlockTimingStartDate)(timing) // start date in the current system timezone.
|
|
431
|
-
});
|
|
432
|
-
return (block) => {
|
|
433
|
-
const i = block.i;
|
|
434
|
-
return isAllowed(i);
|
|
435
|
-
};
|
|
436
|
-
}
|
|
437
|
-
exports.dateScheduleDateBlockTimingFilter = dateScheduleDateBlockTimingFilter;
|
|
438
|
-
/**
|
|
439
|
-
* Creates a DateBlocksExpansionFactory using the input DateScheduleDateBlockTimingFilterConfig.
|
|
440
|
-
*
|
|
441
|
-
* @deprecated use DateCell implementation instead.
|
|
442
|
-
* @param config
|
|
443
|
-
* @returns
|
|
444
|
-
*/
|
|
445
|
-
function expandDateScheduleFactory(config) {
|
|
446
|
-
const { invertSchedule = false, now, onlyBlocksThatHaveEnded, onlyBlocksThatHaveStarted, onlyBlocksNotYetEnded, onlyBlocksNotYetStarted, maxDateBlocksToReturn, durationSpanFilter: inputDurationSpanFilter } = config;
|
|
447
|
-
let durationSpanFilter;
|
|
448
|
-
let durationSpanFilters = [];
|
|
449
|
-
if (inputDurationSpanFilter) {
|
|
450
|
-
durationSpanFilters.push(inputDurationSpanFilter);
|
|
451
|
-
}
|
|
452
|
-
if (onlyBlocksNotYetStarted) {
|
|
453
|
-
durationSpanFilters.push((0, date_filter_1.dateBlockDurationSpanHasNotStartedFilterFunction)(now));
|
|
454
|
-
}
|
|
455
|
-
else if (onlyBlocksThatHaveEnded) {
|
|
456
|
-
durationSpanFilters.push((0, date_filter_1.dateBlockDurationSpanHasEndedFilterFunction)(now));
|
|
457
|
-
}
|
|
458
|
-
else {
|
|
459
|
-
if (onlyBlocksThatHaveStarted) {
|
|
460
|
-
durationSpanFilters.push((0, date_filter_1.dateBlockDurationSpanHasStartedFilterFunction)(now));
|
|
461
|
-
}
|
|
462
|
-
if (onlyBlocksNotYetEnded) {
|
|
463
|
-
durationSpanFilters.push((0, date_filter_1.dateBlockDurationSpanHasNotEndedFilterFunction)(now));
|
|
464
|
-
}
|
|
465
|
-
}
|
|
466
|
-
durationSpanFilter = (0, util_1.mergeFilterFunctions)(...durationSpanFilters);
|
|
467
|
-
const expansionFactory = (0, date_block_1.dateBlocksExpansionFactory)({
|
|
468
|
-
timing: config.timing,
|
|
469
|
-
filter: (0, util_1.invertFilter)(dateScheduleDateBlockTimingFilter(config), invertSchedule),
|
|
470
|
-
durationSpanFilter,
|
|
471
|
-
maxDateBlocksToReturn
|
|
472
|
-
});
|
|
473
|
-
return expansionFactory;
|
|
474
|
-
}
|
|
475
|
-
exports.expandDateScheduleFactory = expandDateScheduleFactory;
|
|
476
|
-
/**
|
|
477
|
-
* Expands the input DateBlockTiming and DateSchedule into an array of DateBlockDurationSpan value that correspond with blocks in the event.
|
|
478
|
-
*
|
|
479
|
-
* Can optionally provide an IndexRange to specify a specific range to filter on. The range will be capped to the range of the timing.
|
|
480
|
-
*
|
|
481
|
-
* @deprecated use DateCell implementation instead.
|
|
482
|
-
* @param timing
|
|
483
|
-
* @param schedule
|
|
484
|
-
* @param inputRange
|
|
485
|
-
* @returns
|
|
486
|
-
*/
|
|
487
|
-
function expandDateSchedule(input) {
|
|
488
|
-
const { timing, inputRange } = input;
|
|
489
|
-
const expansionFactory = expandDateScheduleFactory(input);
|
|
490
|
-
const completeRange = (0, date_block_1.dateBlockIndexRange)(timing);
|
|
491
|
-
const range = inputRange ? { minIndex: Math.max(inputRange.minIndex, completeRange.minIndex), maxIndex: Math.min(inputRange.maxIndex, completeRange.maxIndex) } : completeRange;
|
|
492
|
-
const dateBlockForRange = {
|
|
493
|
-
i: range.minIndex,
|
|
494
|
-
to: range.maxIndex
|
|
495
|
-
}; // Index is considered to be used as inclusive already, so no need to use dateBlockIndexRangeToDateBlockRange
|
|
496
|
-
return expansionFactory([dateBlockForRange]);
|
|
497
|
-
}
|
|
498
|
-
exports.expandDateSchedule = expandDateSchedule;
|
|
499
|
-
/**
|
|
500
|
-
* Creates a DateBlockTiming for the input ExpandDateScheduleRangeInput.
|
|
501
|
-
*
|
|
502
|
-
* @deprecated use DateCell implementation instead.
|
|
503
|
-
* @param input
|
|
504
|
-
* @returns
|
|
505
|
-
*/
|
|
506
|
-
function dateBlockTimingForExpandDateScheduleRangeInput(input) {
|
|
507
|
-
const { dateScheduleRange, duration, startsAtTime, timezone } = input;
|
|
508
|
-
return dateBlockTimingForDateScheduleRange(dateScheduleRange, duration, startsAtTime, timezone);
|
|
509
|
-
}
|
|
510
|
-
exports.dateBlockTimingForExpandDateScheduleRangeInput = dateBlockTimingForExpandDateScheduleRangeInput;
|
|
511
|
-
/**
|
|
512
|
-
*
|
|
513
|
-
* @deprecated use DateCell implementation instead.
|
|
514
|
-
* @param input
|
|
515
|
-
* @returns
|
|
516
|
-
*/
|
|
517
|
-
function expandDateScheduleRange(input) {
|
|
518
|
-
const { dateScheduleRange } = input;
|
|
519
|
-
const timing = dateBlockTimingForExpandDateScheduleRangeInput(input);
|
|
520
|
-
return expandDateSchedule(Object.assign(Object.assign({}, input), { schedule: dateScheduleRange, timing }));
|
|
521
|
-
}
|
|
522
|
-
exports.expandDateScheduleRange = expandDateScheduleRange;
|
|
523
|
-
/**
|
|
524
|
-
*
|
|
525
|
-
* @deprecated use DateCell implementation instead.
|
|
526
|
-
* @param input
|
|
527
|
-
* @returns
|
|
528
|
-
*/
|
|
529
|
-
function expandDateScheduleRangeToDateBlockRanges(input) {
|
|
530
|
-
const dateBlockDurationSpans = expandDateScheduleRange(input);
|
|
531
|
-
return (0, date_block_1.groupToDateBlockRanges)(dateBlockDurationSpans);
|
|
532
|
-
}
|
|
533
|
-
exports.expandDateScheduleRangeToDateBlockRanges = expandDateScheduleRangeToDateBlockRanges;
|
|
534
|
-
// MARK: Compat
|
|
535
|
-
/**
|
|
536
|
-
* Converts the input DateScheduleDayCodesInput to an array of DateScheduleDayCode values.
|
|
537
|
-
*
|
|
538
|
-
* @param input
|
|
539
|
-
* @returns
|
|
540
|
-
*
|
|
541
|
-
* @deprecated Use expandDateScheduleDayCodes or rawDateScheduleDayCodes depending on the need case.
|
|
542
|
-
*/
|
|
543
|
-
exports.dateScheduleDayCodes = expandDateScheduleDayCodes;
|
|
544
|
-
/**
|
|
545
|
-
* Expands a DateScheduleEncodedWeek to an array of DateScheduleDayCode valeus.
|
|
546
|
-
*
|
|
547
|
-
* @param week
|
|
548
|
-
* @returns
|
|
549
|
-
*
|
|
550
|
-
* @deprecated Use expandDateScheduleDayCodes instead.
|
|
551
|
-
*/
|
|
552
|
-
exports.expandDateScheduleEncodedWeek = expandDateScheduleDayCodes;
|
|
553
|
-
//# sourceMappingURL=date.schedule.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"date.schedule.js","sourceRoot":"","sources":["../../../../../../packages/date/src/lib/date/date.schedule.ts"],"names":[],"mappings":"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"}
|