@superdispatch/dates 0.45.0 → 0.47.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/dist-node/index.js +7 -284
- package/dist-node/index.js.map +1 -1
- package/dist-src/date-config/DateConfig.js +7 -6
- package/dist-src/index.js +0 -1
- package/dist-types/index.d.ts +3 -85
- package/dist-web/index.js +8 -275
- package/dist-web/index.js.map +1 -1
- package/package.json +3 -3
- package/dist-src/date-utils/DateUtils.js +0 -270
|
@@ -1,270 +0,0 @@
|
|
|
1
|
-
import { DateTime } from 'luxon';
|
|
2
|
-
import { useMemo } from 'react';
|
|
3
|
-
|
|
4
|
-
/** @deprecated */
|
|
5
|
-
|
|
6
|
-
/** @deprecated */
|
|
7
|
-
|
|
8
|
-
/** @deprecated */
|
|
9
|
-
|
|
10
|
-
/** @deprecated */
|
|
11
|
-
|
|
12
|
-
/** @deprecated */
|
|
13
|
-
|
|
14
|
-
/** @deprecated */
|
|
15
|
-
|
|
16
|
-
/** @deprecated */
|
|
17
|
-
|
|
18
|
-
/** @deprecated */
|
|
19
|
-
|
|
20
|
-
/** @deprecated */
|
|
21
|
-
|
|
22
|
-
/** @deprecated */
|
|
23
|
-
|
|
24
|
-
/** @deprecated */
|
|
25
|
-
function toDateTime(value) {
|
|
26
|
-
return typeof value === 'number' ? DateTime.fromMillis(value) : DateTime.fromJSDate(value);
|
|
27
|
-
}
|
|
28
|
-
|
|
29
|
-
/** @deprecated */
|
|
30
|
-
export function isDate(value) {
|
|
31
|
-
return value != null && value instanceof Date;
|
|
32
|
-
}
|
|
33
|
-
|
|
34
|
-
/** @deprecated */
|
|
35
|
-
export function isDateLike(value) {
|
|
36
|
-
return isDate(value) || typeof value === 'number' && Number.isInteger(value);
|
|
37
|
-
}
|
|
38
|
-
|
|
39
|
-
/** @deprecated */
|
|
40
|
-
export function isValidDate(value) {
|
|
41
|
-
return isDate(value) && Number.isFinite(value.getTime());
|
|
42
|
-
}
|
|
43
|
-
|
|
44
|
-
/** @deprecated */
|
|
45
|
-
function checkRange(range, validator) {
|
|
46
|
-
if (!Array.isArray(range) || range.length > 2) {
|
|
47
|
-
return false;
|
|
48
|
-
}
|
|
49
|
-
var [start, finish] = range;
|
|
50
|
-
return (start == null || validator(start)) && (finish == null || validator(finish));
|
|
51
|
-
}
|
|
52
|
-
|
|
53
|
-
/** @deprecated */
|
|
54
|
-
export function isDateRange(range) {
|
|
55
|
-
return checkRange(range, isDate);
|
|
56
|
-
}
|
|
57
|
-
|
|
58
|
-
/** @deprecated */
|
|
59
|
-
export function isDateRangeLike(range) {
|
|
60
|
-
return checkRange(range, isDateLike);
|
|
61
|
-
}
|
|
62
|
-
|
|
63
|
-
/** @deprecated */
|
|
64
|
-
export function isValidDateRange(range) {
|
|
65
|
-
return checkRange(range, isValidDate);
|
|
66
|
-
}
|
|
67
|
-
|
|
68
|
-
/** @deprecated */
|
|
69
|
-
export function toDate(value) {
|
|
70
|
-
return !isDateLike(value) ? new Date(NaN) : new Date(value);
|
|
71
|
-
}
|
|
72
|
-
|
|
73
|
-
/** @deprecated */
|
|
74
|
-
export function toDateRange(range) {
|
|
75
|
-
if (range == null || !isDateRangeLike(range)) {
|
|
76
|
-
return [];
|
|
77
|
-
}
|
|
78
|
-
return range.filter(x => x != null).map(x => x == null ? undefined : toDate(x)).sort((a, b) => !isValidDate(a) ? -1 : !isValidDate(b) ? 1 : a.valueOf() - b.valueOf());
|
|
79
|
-
}
|
|
80
|
-
|
|
81
|
-
/** @deprecated */
|
|
82
|
-
|
|
83
|
-
/** @deprecated */
|
|
84
|
-
|
|
85
|
-
/** @deprecated */
|
|
86
|
-
|
|
87
|
-
/** @deprecated */
|
|
88
|
-
|
|
89
|
-
/** @deprecated */
|
|
90
|
-
export class DateUtils {
|
|
91
|
-
/** @deprecated */
|
|
92
|
-
toObject(value) {
|
|
93
|
-
var {
|
|
94
|
-
year = NaN,
|
|
95
|
-
month = NaN,
|
|
96
|
-
day = NaN,
|
|
97
|
-
hour = NaN,
|
|
98
|
-
minute = NaN,
|
|
99
|
-
second = NaN,
|
|
100
|
-
millisecond = NaN
|
|
101
|
-
} = toDateTime(value).toObject({
|
|
102
|
-
includeConfig: false
|
|
103
|
-
});
|
|
104
|
-
return {
|
|
105
|
-
year,
|
|
106
|
-
month,
|
|
107
|
-
day,
|
|
108
|
-
hour,
|
|
109
|
-
minute,
|
|
110
|
-
second,
|
|
111
|
-
millisecond
|
|
112
|
-
};
|
|
113
|
-
}
|
|
114
|
-
|
|
115
|
-
/** @deprecated */
|
|
116
|
-
fromObject(_ref) {
|
|
117
|
-
var {
|
|
118
|
-
year = 0,
|
|
119
|
-
month = 1,
|
|
120
|
-
day = 1,
|
|
121
|
-
hour = 0,
|
|
122
|
-
minute = 0,
|
|
123
|
-
second = 0,
|
|
124
|
-
millisecond = 0
|
|
125
|
-
} = _ref;
|
|
126
|
-
if (Number.isNaN(year) || Number.isNaN(month) || Number.isNaN(day) || Number.isNaN(hour) || Number.isNaN(minute) || Number.isNaN(second) || Number.isNaN(millisecond)) {
|
|
127
|
-
return new Date(NaN);
|
|
128
|
-
}
|
|
129
|
-
return DateTime.fromObject({
|
|
130
|
-
year,
|
|
131
|
-
month,
|
|
132
|
-
day,
|
|
133
|
-
hour,
|
|
134
|
-
minute,
|
|
135
|
-
second,
|
|
136
|
-
millisecond
|
|
137
|
-
}).toJSDate();
|
|
138
|
-
}
|
|
139
|
-
|
|
140
|
-
/** @deprecated */
|
|
141
|
-
update(value, values) {
|
|
142
|
-
return toDateTime(value).set(values).toJSDate();
|
|
143
|
-
}
|
|
144
|
-
|
|
145
|
-
/** @deprecated */
|
|
146
|
-
mergeDateAndTime(date, time) {
|
|
147
|
-
var {
|
|
148
|
-
hour,
|
|
149
|
-
minute,
|
|
150
|
-
second,
|
|
151
|
-
millisecond
|
|
152
|
-
} = this.toObject(time);
|
|
153
|
-
if (Number.isNaN(hour) || Number.isNaN(minute) || Number.isNaN(second) || Number.isNaN(millisecond)) {
|
|
154
|
-
return new Date(NaN);
|
|
155
|
-
}
|
|
156
|
-
return this.update(date, {
|
|
157
|
-
hour,
|
|
158
|
-
minute,
|
|
159
|
-
second,
|
|
160
|
-
millisecond
|
|
161
|
-
});
|
|
162
|
-
}
|
|
163
|
-
|
|
164
|
-
/** @deprecated */
|
|
165
|
-
startOf(value, unit) {
|
|
166
|
-
return toDateTime(value).startOf(unit).toJSDate();
|
|
167
|
-
}
|
|
168
|
-
|
|
169
|
-
/** @deprecated */
|
|
170
|
-
endOf(value, unit) {
|
|
171
|
-
return toDateTime(value).endOf(unit).toJSDate();
|
|
172
|
-
}
|
|
173
|
-
|
|
174
|
-
/** @deprecated */
|
|
175
|
-
plus(value, values) {
|
|
176
|
-
return toDateTime(value).plus(values).toJSDate();
|
|
177
|
-
}
|
|
178
|
-
|
|
179
|
-
/** @deprecated */
|
|
180
|
-
minus(value, values) {
|
|
181
|
-
return toDateTime(value).minus(values).toJSDate();
|
|
182
|
-
}
|
|
183
|
-
|
|
184
|
-
/** @deprecated */
|
|
185
|
-
isSameDate(value, compare) {
|
|
186
|
-
var unit = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 'millisecond';
|
|
187
|
-
if (value == null && compare == null) {
|
|
188
|
-
return true;
|
|
189
|
-
}
|
|
190
|
-
if (value == null || compare == null) {
|
|
191
|
-
return false;
|
|
192
|
-
}
|
|
193
|
-
var dateTimeValue = toDateTime(value);
|
|
194
|
-
var dateTimeCompare = toDateTime(compare);
|
|
195
|
-
return dateTimeValue.isValid && dateTimeCompare.isValid && dateTimeValue.startOf(unit).equals(dateTimeCompare.startOf(unit));
|
|
196
|
-
}
|
|
197
|
-
|
|
198
|
-
/** @deprecated */
|
|
199
|
-
isSameDateRange(value, compare, unit) {
|
|
200
|
-
var range1 = toDateRange(value);
|
|
201
|
-
var range2 = toDateRange(compare);
|
|
202
|
-
return !range1.some((date, idx) => !this.isSameDate(date, range2[idx], unit));
|
|
203
|
-
}
|
|
204
|
-
|
|
205
|
-
/** @deprecated */
|
|
206
|
-
diff(value, compare, unit) {
|
|
207
|
-
var valueDateTime = toDateTime(value);
|
|
208
|
-
var compareDateTime = toDateTime(compare);
|
|
209
|
-
return valueDateTime.diff(compareDateTime, unit).as(unit);
|
|
210
|
-
}
|
|
211
|
-
|
|
212
|
-
/** @deprecated */
|
|
213
|
-
toLocaleString(value, options) {
|
|
214
|
-
return toDateTime(value).toLocaleString(options);
|
|
215
|
-
}
|
|
216
|
-
|
|
217
|
-
/** @deprecated */
|
|
218
|
-
format(value, variant) {
|
|
219
|
-
return this.toLocaleString(value, variant === 'date' ? {
|
|
220
|
-
day: '2-digit',
|
|
221
|
-
month: 'short',
|
|
222
|
-
year: 'numeric'
|
|
223
|
-
} : variant === 'shortDate' ? {
|
|
224
|
-
day: '2-digit',
|
|
225
|
-
month: 'short'
|
|
226
|
-
} : variant === 'time' ? {
|
|
227
|
-
hour: 'numeric',
|
|
228
|
-
minute: 'numeric'
|
|
229
|
-
} : {
|
|
230
|
-
day: '2-digit',
|
|
231
|
-
month: 'short',
|
|
232
|
-
year: 'numeric',
|
|
233
|
-
hour: 'numeric',
|
|
234
|
-
minute: 'numeric'
|
|
235
|
-
});
|
|
236
|
-
}
|
|
237
|
-
|
|
238
|
-
/** @deprecated */
|
|
239
|
-
formatRange(value) {
|
|
240
|
-
var emptyText = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';
|
|
241
|
-
var range = toDateRange(value);
|
|
242
|
-
if (!isValidDateRange(range)) {
|
|
243
|
-
return 'Invalid Date Range';
|
|
244
|
-
}
|
|
245
|
-
var [start, finish] = range;
|
|
246
|
-
if (!start) {
|
|
247
|
-
return emptyText;
|
|
248
|
-
}
|
|
249
|
-
var startText = this.format(start, !this.isSameDate(start, finish, 'year') ? 'date' : 'shortDate');
|
|
250
|
-
var finishText = !finish ? '…' : this.format(finish, 'date');
|
|
251
|
-
return "".concat(startText, " - ").concat(finishText);
|
|
252
|
-
}
|
|
253
|
-
|
|
254
|
-
/** @deprecated */
|
|
255
|
-
formatRelativeTime(value) {
|
|
256
|
-
var {
|
|
257
|
-
style = 'long',
|
|
258
|
-
compare = Date.now()
|
|
259
|
-
} = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
|
|
260
|
-
var valueDateTime = toDateTime(value);
|
|
261
|
-
var compareDateTime = toDateTime(compare);
|
|
262
|
-
return valueDateTime.toRelative({
|
|
263
|
-
style,
|
|
264
|
-
base: compareDateTime
|
|
265
|
-
});
|
|
266
|
-
}
|
|
267
|
-
}
|
|
268
|
-
export function useDateUtils() {
|
|
269
|
-
return useMemo(() => new DateUtils(), []);
|
|
270
|
-
}
|