@dereekb/date 9.17.2 → 9.18.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 +21 -0
- package/package.json +3 -3
- package/src/lib/date/date.block.d.ts +76 -13
- package/src/lib/date/date.block.js +126 -13
- package/src/lib/date/date.block.js.map +1 -1
- package/src/lib/date/date.calendar.js.map +1 -1
- package/src/lib/date/date.d.ts +22 -0
- package/src/lib/date/date.duration.d.ts +2 -1
- package/src/lib/date/date.duration.js.map +1 -1
- package/src/lib/date/date.format.d.ts +2 -0
- package/src/lib/date/date.format.js +9 -1
- package/src/lib/date/date.format.js.map +1 -1
- package/src/lib/date/date.js +9 -1
- package/src/lib/date/date.js.map +1 -1
- package/src/lib/date/date.range.d.ts +30 -8
- package/src/lib/date/date.range.js +56 -7
- package/src/lib/date/date.range.js.map +1 -1
- package/src/lib/date/date.schedule.d.ts +222 -0
- package/src/lib/date/date.schedule.js +333 -0
- package/src/lib/date/date.schedule.js.map +1 -0
- package/src/lib/date/date.time.minute.d.ts +37 -3
- package/src/lib/date/date.time.minute.js +46 -8
- package/src/lib/date/date.time.minute.js.map +1 -1
- package/src/lib/date/index.d.ts +1 -0
- package/src/lib/date/index.js +1 -0
- package/src/lib/date/index.js.map +1 -1
- package/src/lib/rrule/date.recurrence.d.ts +2 -1
- package/src/lib/rrule/date.recurrence.js.map +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"date.format.js","sourceRoot":"","sources":["../../../../../../packages/date/src/lib/date/date.format.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"date.format.js","sourceRoot":"","sources":["../../../../../../packages/date/src/lib/date/date.format.ts"],"names":[],"mappings":";;;AACA,uCAA+G;AAC/G,6CAAyE;AAEzE;;GAEG;AACH,SAAgB,uBAAuB,CAAC,KAAW,EAAE,GAAS;IAC5D,OAAO,GAAG,kBAAkB,CAAC,KAAK,CAAC,MAAM,kBAAkB,CAAC,GAAG,CAAC,EAAE,CAAC;AACrE,CAAC;AAFD,0DAEC;AAED,SAAgB,yBAAyB,CAAC,OAAa,IAAI,IAAI,EAAE;IAC/D,OAAO,IAAI,CAAC,WAAW,EAAE,CAAC;AAC5B,CAAC;AAFD,8DAEC;AAED,SAAgB,wBAAwB,CAAC,OAAa,IAAI,IAAI,EAAE;IAC9D,OAAO,IAAA,iBAAM,EAAC,IAAI,EAAE,YAAY,CAAC,CAAC;AACpC,CAAC;AAFD,4DAEC;AAED,SAAgB,uBAAuB,CAAC,OAAa,IAAI,IAAI,EAAE;IAC7D,OAAO,IAAA,iBAAM,EAAC,IAAI,EAAE,YAAY,CAAC,CAAC;AACpC,CAAC;AAFD,0DAEC;AAED,SAAgB,sBAAsB,CAAC,OAAa,IAAI,IAAI,EAAE;IAC5D,OAAO,IAAA,iBAAM,EAAC,IAAI,EAAE,OAAO,CAAC,CAAC;AAC/B,CAAC;AAFD,wDAEC;AAED,SAAgB,kBAAkB,CAAC,IAAU;IAC3C,OAAO,IAAA,iBAAM,EAAC,IAAI,EAAE,aAAa,CAAC,CAAC;AACrC,CAAC;AAFD,gDAEC;AAED,SAAgB,kBAAkB,CAAC,IAAU;IAC3C,OAAO,IAAA,iBAAM,EAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;AAChC,CAAC;AAFD,gDAEC;AAED,SAAgB,6BAA6B,CAAC,KAAW,EAAE,GAAS;IAClE,MAAM,OAAO,GAAG,IAAA,8BAAmB,EAAC,GAAG,EAAE,KAAK,CAAC,CAAC;IAChD,IAAI,QAAQ,CAAC;IAEb,IAAI,OAAO,GAAG,GAAG,EAAE;QACjB,QAAQ,GAAG,IAAI,IAAA,yBAAc,EAAC,GAAG,EAAE,KAAK,EAAE,EAAE,cAAc,EAAE,KAAK,EAAE,CAAC,GAAG,CAAC;KACzE;SAAM;QACL,QAAQ,GAAG,GAAG,OAAO,CAAC,CAAC,CAAC,IAAI,OAAO,WAAW,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;KACvD;IAED,OAAO,GAAG,kBAAkB,CAAC,KAAK,CAAC,IAAI,QAAQ,EAAE,CAAC;AACpD,CAAC;AAXD,sEAWC;AAED,SAAgB,gCAAgC,CAAC,EAAE,KAAK,EAAE,GAAG,EAAa;IACxE,MAAM,KAAK,GAAG,IAAA,2BAAc,EAAC,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,CAAC;IAC7C,IAAI,YAAY,CAAC;IAEjB,QAAQ,KAAK,EAAE;QACb,KAAK,2BAAc,CAAC,IAAI;YACtB,YAAY,GAAG,SAAS,IAAA,8BAAmB,EAAC,GAAG,EAAE;gBAC/C,SAAS,EAAE,IAAI;aAChB,CAAC,EAAE,CAAC;YACL,MAAM;QACR,KAAK,2BAAc,CAAC,OAAO;YACzB,YAAY,GAAG,WAAW,IAAA,8BAAmB,EAAC,KAAK,EAAE;gBACnD,SAAS,EAAE,IAAI;aAChB,CAAC,EAAE,CAAC;YACL,MAAM;QACR,KAAK,2BAAc,CAAC,MAAM;YACxB,YAAY,GAAG,YAAY,IAAA,8BAAmB,EAAC,KAAK,EAAE;gBACpD,SAAS,EAAE,IAAI;aAChB,CAAC,EAAE,CAAC;YACL,MAAM;KACT;IAED,OAAO,YAAY,CAAC;AACtB,CAAC;AAvBD,4EAuBC;AAED,SAAgB,2BAA2B,CAAC,UAA4B;IACtE,OAAO,IAAA,qBAAU,EAAC,IAAA,gBAAK,EAAC,UAAU,EAAE,YAAY,EAAE,IAAI,IAAI,EAAE,CAAC,CAAC,CAAC;AACjE,CAAC;AAFD,kEAEC;AAED,SAAgB,8BAA8B,CAAC,eAAiC;IAC9E,MAAM,CAAC,UAAU,EAAE,WAAW,EAAE,UAAU,CAAC,GAAG,eAAe,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IACzE,OAAO,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC,WAAW,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;AAC7F,CAAC;AAHD,wEAGC;AAED,eAAe;AACf;;GAEG;AACU,QAAA,gBAAgB,GAAG,2BAA2B,CAAC;AAE5D;;GAEG;AACU,QAAA,mBAAmB,GAAG,8BAA8B,CAAC"}
|
package/src/lib/date/date.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.nowISODateString = exports.removeSeconds = exports.removeMinutesAndSeconds = exports.findMaxDate = exports.findMinDate = exports.reduceDatesFunction = exports.roundDownToHour = exports.roundDownToMinute = exports.copyHoursAndMinutesToToday = exports.copyHoursAndMinutesToDate = exports.copyHoursAndMinutesFromDate = exports.copyHoursAndMinutesFromDateToToday = exports.takeNextUpcomingTime = exports.utcDayForDate = exports.isAfter = exports.latestDate = exports.toJsDate = exports.safeToJsDate = exports.guessCurrentTimezone = exports.toISODateString = exports.latestMinute = exports.isMaxFutureDate = exports.maxFutureDate = exports.daysToMinutes = exports.minutesToMs = exports.hoursToMs = exports.msToSeconds = exports.msToMinutes = exports.isDate = exports.MAX_FUTURE_DATE = void 0;
|
|
3
|
+
exports.nowISODateString = exports.removeSeconds = exports.removeMinutesAndSeconds = exports.findMaxDate = exports.findMinDate = exports.reduceDatesFunction = exports.roundDownToHour = exports.roundDownToMinute = exports.copyHoursAndMinutesToToday = exports.copyHoursAndMinutesToDate = exports.copyHoursAndMinutesFromDate = exports.copyHoursAndMinutesFromDateToToday = exports.takeNextUpcomingTime = exports.utcDayForDate = exports.isSameDateDay = exports.isSameDate = exports.isAfter = exports.latestDate = exports.toJsDate = exports.safeToJsDate = exports.guessCurrentTimezone = exports.toISODateString = exports.latestMinute = exports.isMaxFutureDate = exports.maxFutureDate = exports.daysToMinutes = exports.minutesToMs = exports.hoursToMs = exports.msToSeconds = exports.msToMinutes = exports.isDate = exports.MAX_FUTURE_DATE = void 0;
|
|
4
4
|
const date_fns_1 = require("date-fns");
|
|
5
5
|
const util_1 = require("@dereekb/util");
|
|
6
6
|
exports.MAX_FUTURE_DATE = new Date(Date.UTC(9999, 0));
|
|
@@ -82,6 +82,14 @@ function isAfter(a, b, defaultValue = undefined) {
|
|
|
82
82
|
return a && b ? (0, date_fns_1.isAfter)(a, b) : defaultValue;
|
|
83
83
|
}
|
|
84
84
|
exports.isAfter = isAfter;
|
|
85
|
+
function isSameDate(a, b, defaultValue = null) {
|
|
86
|
+
return a != null && b != null ? (0, date_fns_1.isEqual)(a, b) : defaultValue != null ? defaultValue : a == b;
|
|
87
|
+
}
|
|
88
|
+
exports.isSameDate = isSameDate;
|
|
89
|
+
function isSameDateDay(a, b, defaultValue = null) {
|
|
90
|
+
return a != null && b != null ? (0, date_fns_1.isSameDay)(a, b) : defaultValue != null ? defaultValue : a == b;
|
|
91
|
+
}
|
|
92
|
+
exports.isSameDateDay = isSameDateDay;
|
|
85
93
|
// MARK: Unix Date/Time
|
|
86
94
|
/**
|
|
87
95
|
* Converts the input date to represent the "day" represented in the time.
|
package/src/lib/date/date.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"date.js","sourceRoot":"","sources":["../../../../../../packages/date/src/lib/date/date.ts"],"names":[],"mappings":";;;AAAA,
|
|
1
|
+
{"version":3,"file":"date.js","sourceRoot":"","sources":["../../../../../../packages/date/src/lib/date/date.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,8 +1,29 @@
|
|
|
1
|
+
import { Maybe } from '@dereekb/util';
|
|
1
2
|
/**
|
|
2
|
-
* Represents a start
|
|
3
|
+
* Represents a start date.
|
|
3
4
|
*/
|
|
4
|
-
export interface
|
|
5
|
+
export interface DateRangeStart {
|
|
5
6
|
start: Date;
|
|
7
|
+
}
|
|
8
|
+
/**
|
|
9
|
+
* Returns true if the input is a DateRangeStart.
|
|
10
|
+
*
|
|
11
|
+
* @param value
|
|
12
|
+
* @returns
|
|
13
|
+
*/
|
|
14
|
+
export declare function isDateRangeStart(value: unknown): value is DateRangeStart;
|
|
15
|
+
/**
|
|
16
|
+
* Sorts the input DateRangeStart values in ascending order by start Date.
|
|
17
|
+
*
|
|
18
|
+
* @param a
|
|
19
|
+
* @param b
|
|
20
|
+
* @returns
|
|
21
|
+
*/
|
|
22
|
+
export declare function sortDateRangeStartAscendingCompareFunction<T extends DateRangeStart>(a: T, b: T): number;
|
|
23
|
+
/**
|
|
24
|
+
* Represents a start and end date.
|
|
25
|
+
*/
|
|
26
|
+
export interface DateRange extends DateRangeStart {
|
|
6
27
|
end: Date;
|
|
7
28
|
}
|
|
8
29
|
export declare class DateRange {
|
|
@@ -17,6 +38,7 @@ export declare class DateRange {
|
|
|
17
38
|
* @returns
|
|
18
39
|
*/
|
|
19
40
|
export declare function isDateRange(input: unknown): input is DateRange;
|
|
41
|
+
export declare function isSameDateRange(a: Maybe<DateRange>, b: Maybe<DateRange>): boolean;
|
|
20
42
|
export declare enum DateRangeType {
|
|
21
43
|
/**
|
|
22
44
|
* Includes only the target day.
|
|
@@ -121,21 +143,21 @@ export declare function dateRange({ type, date, distance, roundToMinute: inputRo
|
|
|
121
143
|
* @returns
|
|
122
144
|
*/
|
|
123
145
|
export declare function dateRangeState({ start, end }: DateRange): DateRangeState;
|
|
124
|
-
export declare type DateRangeFunctionDateRangeRef<T extends DateRange = DateRange> = {
|
|
125
|
-
_dateRange: T;
|
|
146
|
+
export declare type DateRangeFunctionDateRangeRef<T extends Partial<DateRange> = DateRange> = {
|
|
147
|
+
readonly _dateRange: T;
|
|
126
148
|
};
|
|
127
149
|
/**
|
|
128
|
-
* Returns true if the input date is contained within the configured DateRange.
|
|
150
|
+
* Returns true if the input date is contained within the configured DateRange or DateRangeStart.
|
|
129
151
|
*/
|
|
130
|
-
export declare type IsDateInDateRangeFunction<T extends DateRange = DateRange> = ((date: Date) => boolean) & DateRangeFunctionDateRangeRef<T>;
|
|
131
|
-
export declare function isDateInDateRange(date: Date, dateRange: DateRange): boolean;
|
|
152
|
+
export declare type IsDateInDateRangeFunction<T extends Partial<DateRange> = DateRange> = ((date: Date) => boolean) & DateRangeFunctionDateRangeRef<T>;
|
|
153
|
+
export declare function isDateInDateRange(date: Date, dateRange: Partial<DateRange>): boolean;
|
|
132
154
|
/**
|
|
133
155
|
* Creates an IsDateInDateRangeFunction
|
|
134
156
|
*
|
|
135
157
|
* @param dateRange
|
|
136
158
|
* @returns
|
|
137
159
|
*/
|
|
138
|
-
export declare function isDateInDateRangeFunction<T extends DateRange
|
|
160
|
+
export declare function isDateInDateRangeFunction<T extends Partial<DateRange>>(dateRange: T): IsDateInDateRangeFunction<T>;
|
|
139
161
|
/**
|
|
140
162
|
* Returns true if the input DateRange is contained within the configured DateRange.
|
|
141
163
|
*/
|
|
@@ -1,10 +1,32 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.dateRangeOverlapsDateRangeFunction = exports.dateRangeOverlapsDateRange = exports.isDateRangeInDateRangeFunction = exports.isDateRangeInDateRange = exports.isDateInDateRangeFunction = exports.isDateInDateRange = exports.dateRangeState = exports.dateRange = exports.DateRangeParams = exports.DateRangeState = exports.DateRangeType = exports.isDateRange = exports.DateRange = void 0;
|
|
3
|
+
exports.dateRangeOverlapsDateRangeFunction = exports.dateRangeOverlapsDateRange = exports.isDateRangeInDateRangeFunction = exports.isDateRangeInDateRange = exports.isDateInDateRangeFunction = exports.isDateInDateRange = exports.dateRangeState = exports.dateRange = exports.DateRangeParams = exports.DateRangeState = exports.DateRangeType = exports.isSameDateRange = exports.isDateRange = exports.DateRange = exports.sortDateRangeStartAscendingCompareFunction = exports.isDateRangeStart = void 0;
|
|
4
4
|
const tslib_1 = require("tslib");
|
|
5
5
|
const class_transformer_1 = require("class-transformer");
|
|
6
6
|
const class_validator_1 = require("class-validator");
|
|
7
7
|
const date_fns_1 = require("date-fns");
|
|
8
|
+
const date_1 = require("./date");
|
|
9
|
+
/**
|
|
10
|
+
* Returns true if the input is a DateRangeStart.
|
|
11
|
+
*
|
|
12
|
+
* @param value
|
|
13
|
+
* @returns
|
|
14
|
+
*/
|
|
15
|
+
function isDateRangeStart(value) {
|
|
16
|
+
return typeof value === 'object' && (0, date_fns_1.isDate)(value.start);
|
|
17
|
+
}
|
|
18
|
+
exports.isDateRangeStart = isDateRangeStart;
|
|
19
|
+
/**
|
|
20
|
+
* Sorts the input DateRangeStart values in ascending order by start Date.
|
|
21
|
+
*
|
|
22
|
+
* @param a
|
|
23
|
+
* @param b
|
|
24
|
+
* @returns
|
|
25
|
+
*/
|
|
26
|
+
function sortDateRangeStartAscendingCompareFunction(a, b) {
|
|
27
|
+
return a.start.getTime() - b.start.getTime();
|
|
28
|
+
}
|
|
29
|
+
exports.sortDateRangeStartAscendingCompareFunction = sortDateRangeStartAscendingCompareFunction;
|
|
8
30
|
class DateRange {
|
|
9
31
|
constructor(template) {
|
|
10
32
|
if (template) {
|
|
@@ -36,6 +58,10 @@ function isDateRange(input) {
|
|
|
36
58
|
return typeof input === 'object' && (0, date_fns_1.isDate)(input.start) && (0, date_fns_1.isDate)(input.end);
|
|
37
59
|
}
|
|
38
60
|
exports.isDateRange = isDateRange;
|
|
61
|
+
function isSameDateRange(a, b) {
|
|
62
|
+
return (0, date_1.isSameDate)(a === null || a === void 0 ? void 0 : a.start, b === null || b === void 0 ? void 0 : b.start) && (0, date_1.isSameDate)(a === null || a === void 0 ? void 0 : a.end, b === null || b === void 0 ? void 0 : b.end);
|
|
63
|
+
}
|
|
64
|
+
exports.isSameDateRange = isSameDateRange;
|
|
39
65
|
var DateRangeType;
|
|
40
66
|
(function (DateRangeType) {
|
|
41
67
|
/**
|
|
@@ -243,12 +269,35 @@ exports.isDateInDateRange = isDateInDateRange;
|
|
|
243
269
|
* @returns
|
|
244
270
|
*/
|
|
245
271
|
function isDateInDateRangeFunction(dateRange) {
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
const
|
|
250
|
-
|
|
251
|
-
|
|
272
|
+
let fn;
|
|
273
|
+
if (dateRange.start != null && dateRange.end != null) {
|
|
274
|
+
// Start And End
|
|
275
|
+
const startTime = dateRange.start.getTime();
|
|
276
|
+
const endTime = dateRange.end.getTime();
|
|
277
|
+
fn = ((input) => {
|
|
278
|
+
const time = input.getTime();
|
|
279
|
+
return time >= startTime && time <= endTime;
|
|
280
|
+
});
|
|
281
|
+
}
|
|
282
|
+
else if (dateRange.start != null) {
|
|
283
|
+
// Start Only
|
|
284
|
+
const startTime = dateRange.start.getTime();
|
|
285
|
+
fn = ((input) => {
|
|
286
|
+
const time = input.getTime();
|
|
287
|
+
return time >= startTime;
|
|
288
|
+
});
|
|
289
|
+
}
|
|
290
|
+
else if (dateRange.end != null) {
|
|
291
|
+
// End Only
|
|
292
|
+
const endTime = dateRange.end.getTime();
|
|
293
|
+
fn = ((input) => {
|
|
294
|
+
const time = input.getTime();
|
|
295
|
+
return time <= endTime;
|
|
296
|
+
});
|
|
297
|
+
}
|
|
298
|
+
else {
|
|
299
|
+
fn = ((input) => false);
|
|
300
|
+
}
|
|
252
301
|
fn._dateRange = dateRange;
|
|
253
302
|
return fn;
|
|
254
303
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"date.range.js","sourceRoot":"","sources":["../../../../../../packages/date/src/lib/date/date.range.ts"],"names":[],"mappings":";;;;
|
|
1
|
+
{"version":3,"file":"date.range.js","sourceRoot":"","sources":["../../../../../../packages/date/src/lib/date/date.range.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,222 @@
|
|
|
1
|
+
import { StringOrder, Maybe, DayOfWeek, DecisionFunction, IndexRange, EnabledDays } from '@dereekb/util';
|
|
2
|
+
import { DateBlock, DateBlockDurationSpan, DateBlockIndex, DateBlocksExpansionFactory, DateBlockTiming } from './date.block';
|
|
3
|
+
import { DateRange } from './date.range';
|
|
4
|
+
import { YearWeekCodeConfig } from './date.week';
|
|
5
|
+
export declare enum DateScheduleDayCode {
|
|
6
|
+
/**
|
|
7
|
+
* Special no-op/unused code
|
|
8
|
+
*/
|
|
9
|
+
NONE = 0,
|
|
10
|
+
SUNDAY = 1,
|
|
11
|
+
MONDAY = 2,
|
|
12
|
+
TUESDAY = 3,
|
|
13
|
+
WEDNESDAY = 4,
|
|
14
|
+
THURSDAY = 5,
|
|
15
|
+
FRIDAY = 6,
|
|
16
|
+
SATURDAY = 7,
|
|
17
|
+
/**
|
|
18
|
+
* All weekdays (Mon-Fri)
|
|
19
|
+
*/
|
|
20
|
+
WEEKDAY = 8,
|
|
21
|
+
/**
|
|
22
|
+
* All weekend days (Sat/Sun)
|
|
23
|
+
*/
|
|
24
|
+
WEEKEND = 9
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* Creates an EnabledDays from the input.
|
|
28
|
+
*
|
|
29
|
+
* @param input
|
|
30
|
+
* @returns
|
|
31
|
+
*/
|
|
32
|
+
export declare function enabledDaysFromDateScheduleDayCodes(input: Maybe<Iterable<DateScheduleDayCode>>): EnabledDays;
|
|
33
|
+
/**
|
|
34
|
+
* Creates an array of simplified DateScheduleDayCode[] values from the input.
|
|
35
|
+
*
|
|
36
|
+
* @param input
|
|
37
|
+
* @returns
|
|
38
|
+
*/
|
|
39
|
+
export declare function dateScheduleDayCodesFromEnabledDays(input: Maybe<EnabledDays>): DateScheduleDayCode[];
|
|
40
|
+
/**
|
|
41
|
+
* Encoded days of the week that the job block schedule should contain.
|
|
42
|
+
*/
|
|
43
|
+
export declare type DateScheduleEncodedWeek = '' | StringOrder<`${DateScheduleDayCode}`, ''>;
|
|
44
|
+
export declare const DATE_SCHEDULE_ENCODED_WEEK_REGEX: RegExp;
|
|
45
|
+
/**
|
|
46
|
+
* Returns true if the input is a DateScheduleEncodedWeek.
|
|
47
|
+
*
|
|
48
|
+
* @param input
|
|
49
|
+
* @returns
|
|
50
|
+
*/
|
|
51
|
+
export declare function isDateScheduleEncodedWeek(input: string): input is DateScheduleEncodedWeek;
|
|
52
|
+
/**
|
|
53
|
+
* Creates a DateScheduleEncodedWeek from an array of DateScheduleDayCode values.
|
|
54
|
+
*
|
|
55
|
+
* The returned encoded week is simplified.
|
|
56
|
+
*
|
|
57
|
+
* @param codes
|
|
58
|
+
*/
|
|
59
|
+
export declare function dateScheduleEncodedWeek(codes: Iterable<DateScheduleDayCode>): DateScheduleEncodedWeek;
|
|
60
|
+
/**
|
|
61
|
+
* Reduces/merges any day codes into more simplified day codes.
|
|
62
|
+
*
|
|
63
|
+
* For instance, if all days of the week are selected, they will be reduced to "8".
|
|
64
|
+
*
|
|
65
|
+
* @param codes
|
|
66
|
+
* @returns
|
|
67
|
+
*/
|
|
68
|
+
export declare function simplifyDateScheduleDayCodes(codes: Iterable<DateScheduleDayCode>): DateScheduleDayCode[];
|
|
69
|
+
/**
|
|
70
|
+
* Expands a DateScheduleEncodedWeek to an array of DateScheduleDayCode valeus.
|
|
71
|
+
*
|
|
72
|
+
* @param week
|
|
73
|
+
* @returns
|
|
74
|
+
*/
|
|
75
|
+
export declare function expandDateScheduleEncodedWeek(week: DateScheduleEncodedWeek): DateScheduleDayCode[];
|
|
76
|
+
export declare type DateScheduleDayCodesInput = DateScheduleEncodedWeek | DateScheduleDayCode[];
|
|
77
|
+
/**
|
|
78
|
+
* Converts the input DateScheduleDayCodesInput to an array of DateScheduleDayCode values.
|
|
79
|
+
*
|
|
80
|
+
* @param input
|
|
81
|
+
* @returns
|
|
82
|
+
*/
|
|
83
|
+
export declare function dateScheduleDayCodes(input: DateScheduleDayCodesInput): DateScheduleDayCode[];
|
|
84
|
+
/**
|
|
85
|
+
* Expands the input DateScheduleDayCodesInput to a Set of DayOfWeek values.
|
|
86
|
+
*
|
|
87
|
+
* @param input
|
|
88
|
+
* @returns
|
|
89
|
+
*/
|
|
90
|
+
export declare function expandDateScheduleDayCodesToDayOfWeekSet(input: DateScheduleDayCodesInput): Set<DayOfWeek>;
|
|
91
|
+
/**
|
|
92
|
+
* Used to convert the input dates into a DateScheduleDayCode.
|
|
93
|
+
*/
|
|
94
|
+
export declare type DateScheduleDayCodeFactory = (date: Date) => DateScheduleDayCode;
|
|
95
|
+
export declare type DateScheduleDayCodeConfig = Pick<YearWeekCodeConfig, 'timezone'>;
|
|
96
|
+
/**
|
|
97
|
+
* Creates a DateScheduleDayCodeFactory using the optional input config.
|
|
98
|
+
*
|
|
99
|
+
* @param config
|
|
100
|
+
* @returns
|
|
101
|
+
*/
|
|
102
|
+
export declare function dateScheduleDayCodeFactory(config?: DateScheduleDayCodeConfig): DateScheduleDayCodeFactory;
|
|
103
|
+
/**
|
|
104
|
+
* Scheduled used to filter to disable DateBlock values for a job.
|
|
105
|
+
*/
|
|
106
|
+
export interface DateSchedule {
|
|
107
|
+
/**
|
|
108
|
+
* Days of the week to include.
|
|
109
|
+
*/
|
|
110
|
+
w: DateScheduleEncodedWeek;
|
|
111
|
+
/**
|
|
112
|
+
* Specific DateBlockIndex values to include.
|
|
113
|
+
*/
|
|
114
|
+
d?: DateBlockIndex[];
|
|
115
|
+
/**
|
|
116
|
+
* Specific DateBlockIndex values to exclude.
|
|
117
|
+
*/
|
|
118
|
+
ex?: DateBlockIndex[];
|
|
119
|
+
}
|
|
120
|
+
export declare function isSameDateSchedule(a: Maybe<DateSchedule>, b: Maybe<DateSchedule>): boolean;
|
|
121
|
+
export declare class DateSchedule implements DateSchedule {
|
|
122
|
+
w: DateScheduleEncodedWeek;
|
|
123
|
+
d?: DateBlockIndex[];
|
|
124
|
+
ex?: DateBlockIndex[];
|
|
125
|
+
}
|
|
126
|
+
/**
|
|
127
|
+
* A schedule that occurs during a specific range.
|
|
128
|
+
*/
|
|
129
|
+
export interface DateScheduleRange extends DateSchedule, DateRange {
|
|
130
|
+
}
|
|
131
|
+
/**
|
|
132
|
+
* Returns true if both inputs have the same schedule and date range.
|
|
133
|
+
*
|
|
134
|
+
* @param a
|
|
135
|
+
* @param b
|
|
136
|
+
* @returns
|
|
137
|
+
*/
|
|
138
|
+
export declare function isSameDateScheduleRange(a: Maybe<DateScheduleRange>, b: Maybe<DateScheduleRange>): boolean;
|
|
139
|
+
/**
|
|
140
|
+
* DateScheduleDateFilter input.
|
|
141
|
+
*/
|
|
142
|
+
export declare type DateScheduleDateFilterInput = Date | DateBlockIndex;
|
|
143
|
+
/**
|
|
144
|
+
* Returns true if the date falls within the schedule.
|
|
145
|
+
*/
|
|
146
|
+
export declare type DateScheduleDateFilter = DecisionFunction<DateScheduleDateFilterInput>;
|
|
147
|
+
/**
|
|
148
|
+
* dateScheduleDateFilter() configuration.
|
|
149
|
+
*/
|
|
150
|
+
export interface DateScheduleDateFilterConfig extends DateSchedule, Partial<DateRange> {
|
|
151
|
+
}
|
|
152
|
+
/**
|
|
153
|
+
* Creates a DateScheduleDateFilter.
|
|
154
|
+
*
|
|
155
|
+
* @param config
|
|
156
|
+
* @returns
|
|
157
|
+
*/
|
|
158
|
+
export declare function dateScheduleDateFilter(config: DateScheduleDateFilterConfig): DateScheduleDateFilter;
|
|
159
|
+
export declare type DateScheduleDateBlockTimingFilter<B extends DateBlock = DateBlock> = DecisionFunction<B>;
|
|
160
|
+
/**
|
|
161
|
+
* Configuration for dateScheduleDateBlockTimingFilter()
|
|
162
|
+
*/
|
|
163
|
+
export interface DateScheduleDateBlockTimingFilterConfig {
|
|
164
|
+
/**
|
|
165
|
+
* Timing to filter with.
|
|
166
|
+
*/
|
|
167
|
+
timing: DateBlockTiming;
|
|
168
|
+
/**
|
|
169
|
+
* Schedule to filter with.
|
|
170
|
+
*/
|
|
171
|
+
schedule: DateSchedule;
|
|
172
|
+
/**
|
|
173
|
+
* Wether or not to expand on the inverse of the schedule, returning blocks that are not in the schedule.
|
|
174
|
+
*
|
|
175
|
+
* Other date filtering behaves the same (I.E. onlyBlocksNotYetStarted, etc.)
|
|
176
|
+
*/
|
|
177
|
+
invertSchedule?: boolean;
|
|
178
|
+
/**
|
|
179
|
+
* (Optional) date to use when filtering from now.
|
|
180
|
+
*/
|
|
181
|
+
now?: Date;
|
|
182
|
+
/**
|
|
183
|
+
* (Optional) filters in blocks that have not yet started.
|
|
184
|
+
*/
|
|
185
|
+
onlyBlocksNotYetStarted?: boolean;
|
|
186
|
+
/**
|
|
187
|
+
* (Optional) filters in blocks that have not yet ended.
|
|
188
|
+
*/
|
|
189
|
+
onlyBlocksNotYetEnded?: boolean;
|
|
190
|
+
/**
|
|
191
|
+
* (Optional) Maximum number of blocks to return.
|
|
192
|
+
*/
|
|
193
|
+
maxDateBlocksToReturn?: number;
|
|
194
|
+
}
|
|
195
|
+
/**
|
|
196
|
+
* Creates a DateScheduleDateBlockTimingFilter.
|
|
197
|
+
*
|
|
198
|
+
* @param param0
|
|
199
|
+
* @returns
|
|
200
|
+
*/
|
|
201
|
+
export declare function dateScheduleDateBlockTimingFilter<B extends DateBlock = DateBlock>({ timing, schedule }: DateScheduleDateBlockTimingFilterConfig): DateScheduleDateBlockTimingFilter<B>;
|
|
202
|
+
/**
|
|
203
|
+
* Creates a DateBlocksExpansionFactory using the input DateScheduleDateBlockTimingFilterConfig.
|
|
204
|
+
*
|
|
205
|
+
* @param config
|
|
206
|
+
* @returns
|
|
207
|
+
*/
|
|
208
|
+
export declare function expandDateScheduleFactory<B extends DateBlock = DateBlock>(config: DateScheduleDateBlockTimingFilterConfig): DateBlocksExpansionFactory<B>;
|
|
209
|
+
export interface ExpandDateScheduleInput extends DateScheduleDateBlockTimingFilterConfig {
|
|
210
|
+
inputRange?: IndexRange;
|
|
211
|
+
}
|
|
212
|
+
/**
|
|
213
|
+
* Expands the input DateBlockTiming and DateSchedule into an array of DateBlockDurationSpan value that correspond with blocks in the event.
|
|
214
|
+
*
|
|
215
|
+
* Can optionally provide an IndexRange to specify a specific range to filter on. The range will be capped to the range of the timing.
|
|
216
|
+
*
|
|
217
|
+
* @param timing
|
|
218
|
+
* @param schedule
|
|
219
|
+
* @param inputRange
|
|
220
|
+
* @returns
|
|
221
|
+
*/
|
|
222
|
+
export declare function expandDateSchedule(input: ExpandDateScheduleInput): DateBlockDurationSpan<DateBlock>[];
|