@zag-js/date-utils 0.1.2 → 0.1.3
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/chunk-5HGHDJ3L.mjs +14 -0
- package/dist/chunk-AMZ7CJ5F.mjs +18 -0
- package/dist/chunk-CAYCTIEJ.mjs +29 -0
- package/dist/chunk-G4VVKINZ.mjs +14 -0
- package/dist/chunk-KFJ757ZA.mjs +32 -0
- package/dist/chunk-KLHRN7WS.mjs +20 -0
- package/dist/chunk-KN3YMOSL.mjs +8 -0
- package/dist/chunk-LGEGBP3O.mjs +20 -0
- package/dist/{chunk-NXMEZINO.mjs → chunk-LQAXQPWP.mjs} +4 -7
- package/dist/chunk-ODG5YF5H.mjs +21 -0
- package/dist/chunk-SI75FOJ2.mjs +11 -0
- package/dist/chunk-UHOBXAHP.mjs +17 -0
- package/dist/conversion.d.ts +5 -0
- package/dist/conversion.js +41 -0
- package/dist/conversion.mjs +6 -0
- package/dist/format-selected-date.d.ts +1 -2
- package/dist/format-selected-date.js +14 -14
- package/dist/format-selected-date.mjs +3 -2
- package/dist/format-visible-range.d.ts +1 -2
- package/dist/format-visible-range.js +29 -50
- package/dist/format-visible-range.mjs +4 -3
- package/dist/get-day-formatter.d.ts +5 -0
- package/dist/{placeholder.js → get-day-formatter.js} +22 -21
- package/dist/get-day-formatter.mjs +7 -0
- package/dist/get-decade-range.d.ts +3 -0
- package/dist/get-decade-range.js +38 -0
- package/dist/get-decade-range.mjs +6 -0
- package/dist/get-end-of-week.d.ts +5 -0
- package/dist/{segment-constants.js → get-end-of-week.js} +17 -32
- package/dist/get-end-of-week.mjs +11 -0
- package/dist/get-era-format.d.ts +5 -0
- package/dist/get-era-format.js +32 -0
- package/dist/get-era-format.mjs +6 -0
- package/dist/get-month-days.d.ts +6 -0
- package/dist/{get-month-dates.js → get-month-days.js} +26 -27
- package/dist/get-month-days.mjs +9 -0
- package/dist/get-month-formatter.d.ts +5 -0
- package/dist/{get-formatter.js → get-month-formatter.js} +14 -26
- package/dist/get-month-formatter.mjs +7 -0
- package/dist/get-month-names.d.ts +3 -0
- package/dist/get-month-names.js +38 -0
- package/dist/get-month-names.mjs +6 -0
- package/dist/get-start-of-week.d.ts +5 -0
- package/dist/get-start-of-week.js +35 -0
- package/dist/get-start-of-week.mjs +6 -0
- package/dist/get-week-days.d.ts +10 -0
- package/dist/get-week-days.js +62 -0
- package/dist/get-week-days.mjs +8 -0
- package/dist/get-weekday-formats.d.ts +10 -0
- package/dist/get-weekday-formats.js +44 -0
- package/dist/get-weekday-formats.mjs +6 -0
- package/dist/index.d.ts +9 -8
- package/dist/index.js +148 -311
- package/dist/index.mjs +36 -41
- package/dist/types.d.ts +1 -2
- package/package.json +2 -2
- package/dist/chunk-55BYHK5B.mjs +0 -31
- package/dist/chunk-DZM5JUL2.mjs +0 -22
- package/dist/chunk-ETRHBIGD.mjs +0 -66
- package/dist/chunk-GLQDJRSE.mjs +0 -31
- package/dist/chunk-JZVHAOWX.mjs +0 -35
- package/dist/chunk-MGRIF22W.mjs +0 -18
- package/dist/chunk-SQCHVCXH.mjs +0 -42
- package/dist/chunk-TSOWYV6W.mjs +0 -34
- package/dist/chunk-U6WRBS5P.mjs +0 -77
- package/dist/get-formatter.d.ts +0 -8
- package/dist/get-formatter.mjs +0 -8
- package/dist/get-month-dates.d.ts +0 -5
- package/dist/get-month-dates.mjs +0 -7
- package/dist/get-week-dates.d.ts +0 -7
- package/dist/get-week-dates.js +0 -60
- package/dist/get-week-dates.mjs +0 -8
- package/dist/placeholder.d.ts +0 -7
- package/dist/placeholder.mjs +0 -8
- package/dist/segment-constants.d.ts +0 -27
- package/dist/segment-constants.mjs +0 -10
- package/dist/segment-limit.d.ts +0 -10
- package/dist/segment-limit.js +0 -101
- package/dist/segment-limit.mjs +0 -6
- package/dist/segment-mutation.d.ts +0 -7
- package/dist/segment-mutation.js +0 -91
- package/dist/segment-mutation.mjs +0 -8
- package/dist/segment-parts.d.ts +0 -27
- package/dist/segment-parts.js +0 -159
- package/dist/segment-parts.mjs +0 -11
package/dist/index.js
CHANGED
|
@@ -20,8 +20,6 @@ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: tru
|
|
|
20
20
|
// src/index.ts
|
|
21
21
|
var src_exports = {};
|
|
22
22
|
__export(src_exports, {
|
|
23
|
-
SEGMENT_PAGE_STEP: () => SEGMENT_PAGE_STEP,
|
|
24
|
-
addSegment: () => addSegment,
|
|
25
23
|
alignCenter: () => alignCenter,
|
|
26
24
|
alignDate: () => alignDate,
|
|
27
25
|
alignEnd: () => alignEnd,
|
|
@@ -29,15 +27,17 @@ __export(src_exports, {
|
|
|
29
27
|
alignStartDate: () => alignStartDate,
|
|
30
28
|
constrainStart: () => constrainStart,
|
|
31
29
|
constrainValue: () => constrainValue,
|
|
32
|
-
createPlaceholderDate: () => createPlaceholderDate,
|
|
33
30
|
formatRange: () => formatRange,
|
|
34
31
|
formatSelectedDate: () => formatSelectedDate,
|
|
35
32
|
formatVisibleRange: () => formatVisibleRange,
|
|
36
33
|
getAdjustedDateFn: () => getAdjustedDateFn,
|
|
37
|
-
|
|
38
|
-
|
|
34
|
+
getDayFormatter: () => getDayFormatter,
|
|
35
|
+
getDaysInWeek: () => getDaysInWeek,
|
|
36
|
+
getDecadeRange: () => getDecadeRange,
|
|
39
37
|
getEndDate: () => getEndDate,
|
|
40
|
-
|
|
38
|
+
getMonthDays: () => getMonthDays,
|
|
39
|
+
getMonthFormatter: () => getMonthFormatter,
|
|
40
|
+
getMonthNames: () => getMonthNames,
|
|
41
41
|
getNextDay: () => getNextDay,
|
|
42
42
|
getNextPage: () => getNextPage,
|
|
43
43
|
getNextRow: () => getNextRow,
|
|
@@ -49,13 +49,10 @@ __export(src_exports, {
|
|
|
49
49
|
getPreviousSection: () => getPreviousSection,
|
|
50
50
|
getSectionEnd: () => getSectionEnd,
|
|
51
51
|
getSectionStart: () => getSectionStart,
|
|
52
|
-
getSegmentLimits: () => getSegmentLimits,
|
|
53
|
-
getSegmentPageStep: () => getSegmentPageStep,
|
|
54
|
-
getSegments: () => getSegments,
|
|
55
52
|
getTodayDate: () => getTodayDate,
|
|
56
|
-
getTodayPlaceholderDate: () => getTodayPlaceholderDate,
|
|
57
53
|
getUnitDuration: () => getUnitDuration,
|
|
58
|
-
|
|
54
|
+
getWeekDays: () => getWeekDays,
|
|
55
|
+
getWeekdayFormats: () => getWeekdayFormats,
|
|
59
56
|
getYearsRange: () => getYearsRange,
|
|
60
57
|
isDateDisabled: () => isDateDisabled,
|
|
61
58
|
isDateEqual: () => isDateEqual,
|
|
@@ -64,12 +61,11 @@ __export(src_exports, {
|
|
|
64
61
|
isDateUnavailable: () => isDateUnavailable,
|
|
65
62
|
isNextVisibleRangeInvalid: () => isNextVisibleRangeInvalid,
|
|
66
63
|
isPreviousVisibleRangeInvalid: () => isPreviousVisibleRangeInvalid,
|
|
67
|
-
isSegmentEditable: () => isSegmentEditable,
|
|
68
64
|
isTodayDate: () => isTodayDate,
|
|
65
|
+
parseDateString: () => parseDateString,
|
|
69
66
|
setCalendar: () => setCalendar,
|
|
70
67
|
setDate: () => setDate,
|
|
71
68
|
setMonth: () => setMonth,
|
|
72
|
-
setSegment: () => setSegment,
|
|
73
69
|
setYear: () => setYear
|
|
74
70
|
});
|
|
75
71
|
module.exports = __toCommonJS(src_exports);
|
|
@@ -188,6 +184,20 @@ function isNextVisibleRangeInvalid(endDate, minValue, maxValue) {
|
|
|
188
184
|
return (0, import_date2.isSameDay)(nextDate, endDate) || isDateInvalid(nextDate, minValue, maxValue);
|
|
189
185
|
}
|
|
190
186
|
|
|
187
|
+
// src/conversion.ts
|
|
188
|
+
var import_date3 = require("@internationalized/date");
|
|
189
|
+
function parseDateString(value) {
|
|
190
|
+
try {
|
|
191
|
+
const date = new Date(value);
|
|
192
|
+
date.setMinutes(1e3);
|
|
193
|
+
if (isNaN(date.getTime()))
|
|
194
|
+
return;
|
|
195
|
+
const [dateWithoutTime] = date.toISOString().split("T");
|
|
196
|
+
return (0, import_date3.parseDate)(dateWithoutTime);
|
|
197
|
+
} catch {
|
|
198
|
+
}
|
|
199
|
+
}
|
|
200
|
+
|
|
191
201
|
// src/duration.ts
|
|
192
202
|
function getUnitDuration(duration) {
|
|
193
203
|
let d = { ...duration };
|
|
@@ -231,114 +241,153 @@ function formatRange(startDate, endDate, formatter, toString, timeZone) {
|
|
|
231
241
|
}
|
|
232
242
|
|
|
233
243
|
// src/format-selected-date.ts
|
|
234
|
-
var
|
|
244
|
+
var import_date5 = require("@internationalized/date");
|
|
235
245
|
|
|
236
|
-
// src/get-formatter.ts
|
|
246
|
+
// src/get-day-formatter.ts
|
|
247
|
+
var import_date4 = require("@internationalized/date");
|
|
248
|
+
|
|
249
|
+
// src/get-era-format.ts
|
|
237
250
|
function getEraFormat(date) {
|
|
238
251
|
return date?.calendar.identifier === "gregory" && date.era === "BC" ? "short" : void 0;
|
|
239
252
|
}
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
return
|
|
253
|
+
|
|
254
|
+
// src/get-day-formatter.ts
|
|
255
|
+
function getDayFormatter(locale, timeZone) {
|
|
256
|
+
const date = (0, import_date4.toCalendarDate)((0, import_date4.today)(timeZone));
|
|
257
|
+
return new import_date4.DateFormatter(locale, {
|
|
245
258
|
weekday: "long",
|
|
246
259
|
month: "long",
|
|
247
260
|
year: "numeric",
|
|
248
261
|
day: "numeric",
|
|
249
|
-
era,
|
|
250
|
-
timeZone
|
|
251
|
-
});
|
|
252
|
-
}
|
|
253
|
-
function getMonthFormatter(startDate, endDate, getDateFormatter2, timeZone) {
|
|
254
|
-
let start = startDate;
|
|
255
|
-
let end = endDate ?? startDate;
|
|
256
|
-
let era = getEraFormat(start) || getEraFormat(end);
|
|
257
|
-
return getDateFormatter2({
|
|
258
|
-
month: "long",
|
|
259
|
-
year: "numeric",
|
|
260
|
-
era,
|
|
261
|
-
calendar: start?.calendar.identifier,
|
|
262
|
+
era: getEraFormat(date),
|
|
262
263
|
timeZone
|
|
263
264
|
});
|
|
264
265
|
}
|
|
265
266
|
|
|
266
267
|
// src/format-selected-date.ts
|
|
267
|
-
function formatSelectedDate(startDate, endDate,
|
|
268
|
+
function formatSelectedDate(startDate, endDate, locale, timeZone) {
|
|
268
269
|
let start = startDate;
|
|
269
270
|
let end = endDate ?? startDate;
|
|
270
|
-
let formatter =
|
|
271
|
-
if (
|
|
272
|
-
return "";
|
|
273
|
-
}
|
|
274
|
-
if ((0, import_date3.isSameDay)(start, end)) {
|
|
271
|
+
let formatter = getDayFormatter(locale, timeZone);
|
|
272
|
+
if ((0, import_date5.isSameDay)(start, end)) {
|
|
275
273
|
return formatter.format(start.toDate(timeZone));
|
|
276
274
|
}
|
|
277
275
|
return formatRange(start, end, formatter, (start2, end2) => `${start2} \u2013 ${end2}`, timeZone);
|
|
278
276
|
}
|
|
279
277
|
|
|
280
278
|
// src/format-visible-range.ts
|
|
281
|
-
var
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
279
|
+
var import_date7 = require("@internationalized/date");
|
|
280
|
+
|
|
281
|
+
// src/get-month-formatter.ts
|
|
282
|
+
var import_date6 = require("@internationalized/date");
|
|
283
|
+
function getMonthFormatter(locale, timeZone) {
|
|
284
|
+
const date = (0, import_date6.toCalendarDate)((0, import_date6.today)(timeZone));
|
|
285
|
+
return new import_date6.DateFormatter(locale, {
|
|
286
|
+
month: "long",
|
|
287
|
+
year: "numeric",
|
|
288
|
+
era: getEraFormat(date),
|
|
289
|
+
calendar: date?.calendar.identifier,
|
|
290
|
+
timeZone
|
|
291
|
+
});
|
|
292
|
+
}
|
|
293
|
+
|
|
294
|
+
// src/format-visible-range.ts
|
|
295
|
+
function formatVisibleRange(startDate, endDate, locale, timeZone) {
|
|
296
|
+
const start = startDate;
|
|
297
|
+
const end = endDate ?? startDate;
|
|
298
|
+
const dayFormatter = getDayFormatter(locale, timeZone);
|
|
299
|
+
if (!(0, import_date7.isSameDay)(start, (0, import_date7.startOfMonth)(start))) {
|
|
300
|
+
return dayFormatter.formatRange(start.toDate(timeZone), end.toDate(timeZone));
|
|
301
|
+
}
|
|
302
|
+
const monthFormatter = getMonthFormatter(locale, timeZone);
|
|
303
|
+
if ((0, import_date7.isSameDay)(end, (0, import_date7.endOfMonth)(start))) {
|
|
293
304
|
return monthFormatter.format(start.toDate(timeZone));
|
|
294
305
|
}
|
|
295
|
-
if ((0,
|
|
296
|
-
return
|
|
306
|
+
if ((0, import_date7.isSameDay)(end, (0, import_date7.endOfMonth)(end))) {
|
|
307
|
+
return monthFormatter.formatRange(start.toDate(timeZone), end.toDate(timeZone));
|
|
297
308
|
}
|
|
309
|
+
return "";
|
|
298
310
|
}
|
|
299
311
|
|
|
300
|
-
// src/get-
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
let dates = [];
|
|
308
|
-
date = (0, import_date5.startOfWeek)(date, locale);
|
|
309
|
-
let dayOfWeek = (0, import_date5.getDayOfWeek)(date, locale);
|
|
310
|
-
for (let i = 0; i < dayOfWeek; i++) {
|
|
311
|
-
dates.push(null);
|
|
312
|
+
// src/get-decade-range.ts
|
|
313
|
+
function getDecadeRange(year) {
|
|
314
|
+
const computedYear = year - year % 10 - 1;
|
|
315
|
+
const years = [];
|
|
316
|
+
for (let i = 0; i < 12; i += 1) {
|
|
317
|
+
const value = computedYear + i;
|
|
318
|
+
years.push(value);
|
|
312
319
|
}
|
|
320
|
+
return years;
|
|
321
|
+
}
|
|
322
|
+
|
|
323
|
+
// src/get-month-days.ts
|
|
324
|
+
var import_date9 = require("@internationalized/date");
|
|
325
|
+
|
|
326
|
+
// src/get-start-of-week.ts
|
|
327
|
+
var import_date8 = require("@internationalized/date");
|
|
328
|
+
function getStartOfWeek(date, locale, firstDayOfWeek = 0) {
|
|
329
|
+
const day = (0, import_date8.getDayOfWeek)(date, locale);
|
|
330
|
+
const diff = (day - firstDayOfWeek + 7) % 7;
|
|
331
|
+
return date.subtract({ days: diff });
|
|
332
|
+
}
|
|
333
|
+
|
|
334
|
+
// src/get-month-days.ts
|
|
335
|
+
function getDaysInWeek(weekIndex, from, locale, firstDayOfWeek) {
|
|
336
|
+
const weekDate = from.add({ weeks: weekIndex });
|
|
337
|
+
const dates = [];
|
|
338
|
+
let date = getStartOfWeek(weekDate, locale, firstDayOfWeek);
|
|
313
339
|
while (dates.length < 7) {
|
|
314
340
|
dates.push(date);
|
|
315
341
|
let nextDate = date.add({ days: 1 });
|
|
316
|
-
if ((0,
|
|
342
|
+
if ((0, import_date9.isSameDay)(date, nextDate)) {
|
|
317
343
|
break;
|
|
318
344
|
}
|
|
319
345
|
date = nextDate;
|
|
320
346
|
}
|
|
321
|
-
while (dates.length < 7) {
|
|
322
|
-
dates.push(null);
|
|
323
|
-
}
|
|
324
347
|
return dates;
|
|
325
348
|
}
|
|
326
|
-
function
|
|
327
|
-
|
|
328
|
-
|
|
329
|
-
return
|
|
330
|
-
return
|
|
349
|
+
function getMonthDays(from, locale, numOfWeeks, firstDayOfWeek) {
|
|
350
|
+
const monthWeeks = (0, import_date9.getWeeksInMonth)(from, locale);
|
|
351
|
+
const weeks = [...new Array(numOfWeeks ?? monthWeeks).keys()];
|
|
352
|
+
return weeks.map((week) => {
|
|
353
|
+
return getDaysInWeek(week, from, locale, firstDayOfWeek);
|
|
331
354
|
});
|
|
332
355
|
}
|
|
333
356
|
|
|
334
|
-
// src/get-month-
|
|
335
|
-
function
|
|
336
|
-
|
|
337
|
-
|
|
338
|
-
let
|
|
339
|
-
|
|
340
|
-
|
|
341
|
-
}
|
|
357
|
+
// src/get-month-names.ts
|
|
358
|
+
function getMonthNames(locale, format = "long") {
|
|
359
|
+
const date = new Date(2021, 0, 1);
|
|
360
|
+
const monthNames = [];
|
|
361
|
+
for (let i = 0; i < 12; i++) {
|
|
362
|
+
monthNames.push(date.toLocaleString(locale, { month: format }));
|
|
363
|
+
date.setMonth(date.getMonth() + 1);
|
|
364
|
+
}
|
|
365
|
+
return monthNames;
|
|
366
|
+
}
|
|
367
|
+
|
|
368
|
+
// src/get-weekday-formats.ts
|
|
369
|
+
var import_date10 = require("@internationalized/date");
|
|
370
|
+
function getWeekdayFormats(locale, timeZone) {
|
|
371
|
+
const longFormat = new import_date10.DateFormatter(locale, { weekday: "long", timeZone });
|
|
372
|
+
const shortFormat = new import_date10.DateFormatter(locale, { weekday: "short", timeZone });
|
|
373
|
+
const narrowFormat = new import_date10.DateFormatter(locale, { weekday: "narrow", timeZone });
|
|
374
|
+
return (value) => {
|
|
375
|
+
const date = value instanceof Date ? value : value.toDate(timeZone);
|
|
376
|
+
return {
|
|
377
|
+
value,
|
|
378
|
+
short: shortFormat.format(date),
|
|
379
|
+
long: longFormat.format(date),
|
|
380
|
+
narrow: narrowFormat.format(date)
|
|
381
|
+
};
|
|
382
|
+
};
|
|
383
|
+
}
|
|
384
|
+
|
|
385
|
+
// src/get-week-days.ts
|
|
386
|
+
function getWeekDays(date, startOfWeekProp, timeZone, locale) {
|
|
387
|
+
const firstDayOfWeek = getStartOfWeek(date, locale, startOfWeekProp);
|
|
388
|
+
const weeks = [...new Array(7).keys()];
|
|
389
|
+
const format = getWeekdayFormats(locale, timeZone);
|
|
390
|
+
return weeks.map((index) => format(firstDayOfWeek.add({ days: index })));
|
|
342
391
|
}
|
|
343
392
|
|
|
344
393
|
// src/get-year-range.ts
|
|
@@ -351,9 +400,9 @@ function getYearsRange(range) {
|
|
|
351
400
|
}
|
|
352
401
|
|
|
353
402
|
// src/mutation.ts
|
|
354
|
-
var
|
|
403
|
+
var import_date11 = require("@internationalized/date");
|
|
355
404
|
function getTodayDate(timezone) {
|
|
356
|
-
return (0,
|
|
405
|
+
return (0, import_date11.today)(timezone);
|
|
357
406
|
}
|
|
358
407
|
function getNextDay(date) {
|
|
359
408
|
return date.add({ days: 1 });
|
|
@@ -368,7 +417,7 @@ function setYear(date, year) {
|
|
|
368
417
|
return date.set({ year });
|
|
369
418
|
}
|
|
370
419
|
function setCalendar(date, calendar) {
|
|
371
|
-
return (0,
|
|
420
|
+
return (0, import_date11.toCalendar)((0, import_date11.toCalendarDate)(date), calendar);
|
|
372
421
|
}
|
|
373
422
|
function setDate(date, startDate, isDateUnavailable2, minValue, maxValue) {
|
|
374
423
|
let result;
|
|
@@ -389,7 +438,7 @@ function getPreviousAvailableDate(date, minValue, isDateUnavailable2) {
|
|
|
389
438
|
}
|
|
390
439
|
|
|
391
440
|
// src/pagination.ts
|
|
392
|
-
var
|
|
441
|
+
var import_date12 = require("@internationalized/date");
|
|
393
442
|
function getAdjustedDateFn(visibleDuration, locale, minValue, maxValue) {
|
|
394
443
|
return function getDate(options) {
|
|
395
444
|
const { startDate, focusedDate } = options;
|
|
@@ -480,13 +529,13 @@ function getSectionStart(focusedDate, startDate, visibleDuration, locale, minVal
|
|
|
480
529
|
}
|
|
481
530
|
if (visibleDuration.weeks) {
|
|
482
531
|
return adjust({
|
|
483
|
-
focusedDate: (0,
|
|
532
|
+
focusedDate: (0, import_date12.startOfWeek)(focusedDate, locale),
|
|
484
533
|
startDate
|
|
485
534
|
});
|
|
486
535
|
}
|
|
487
536
|
if (visibleDuration.months || visibleDuration.years) {
|
|
488
537
|
return adjust({
|
|
489
|
-
focusedDate: (0,
|
|
538
|
+
focusedDate: (0, import_date12.startOfMonth)(focusedDate),
|
|
490
539
|
startDate
|
|
491
540
|
});
|
|
492
541
|
}
|
|
@@ -502,13 +551,13 @@ function getSectionEnd(focusedDate, startDate, visibleDuration, locale, minValue
|
|
|
502
551
|
}
|
|
503
552
|
if (visibleDuration.weeks) {
|
|
504
553
|
return adjust({
|
|
505
|
-
focusedDate: (0,
|
|
554
|
+
focusedDate: (0, import_date12.endOfWeek)(focusedDate, locale),
|
|
506
555
|
startDate
|
|
507
556
|
});
|
|
508
557
|
}
|
|
509
558
|
if (visibleDuration.months || visibleDuration.years) {
|
|
510
559
|
return adjust({
|
|
511
|
-
focusedDate: (0,
|
|
560
|
+
focusedDate: (0, import_date12.endOfMonth)(focusedDate),
|
|
512
561
|
startDate
|
|
513
562
|
});
|
|
514
563
|
}
|
|
@@ -561,218 +610,8 @@ function getPreviousSection(focusedDate, startDate, larger, visibleDuration, loc
|
|
|
561
610
|
});
|
|
562
611
|
}
|
|
563
612
|
}
|
|
564
|
-
|
|
565
|
-
// src/placeholder.ts
|
|
566
|
-
var import_date9 = require("@internationalized/date");
|
|
567
|
-
function getTodayPlaceholderDate(timeZone) {
|
|
568
|
-
return (0, import_date9.now)(timeZone).set({
|
|
569
|
-
hour: 0,
|
|
570
|
-
minute: 0,
|
|
571
|
-
second: 0,
|
|
572
|
-
millisecond: 0
|
|
573
|
-
});
|
|
574
|
-
}
|
|
575
|
-
function createPlaceholderDate(granularity, timeZone) {
|
|
576
|
-
let date = getTodayPlaceholderDate(timeZone);
|
|
577
|
-
if (granularity === "year" || granularity === "month" || granularity === "day") {
|
|
578
|
-
return (0, import_date9.toCalendarDate)(date);
|
|
579
|
-
}
|
|
580
|
-
return date;
|
|
581
|
-
}
|
|
582
|
-
|
|
583
|
-
// src/segment-constants.ts
|
|
584
|
-
var EDITABLE_SEGMENTS = {
|
|
585
|
-
year: true,
|
|
586
|
-
month: true,
|
|
587
|
-
day: true,
|
|
588
|
-
hour: true,
|
|
589
|
-
minute: true,
|
|
590
|
-
second: true,
|
|
591
|
-
dayPeriod: true,
|
|
592
|
-
era: true
|
|
593
|
-
};
|
|
594
|
-
var SEGMENT_PAGE_STEP = {
|
|
595
|
-
year: 5,
|
|
596
|
-
month: 2,
|
|
597
|
-
day: 7,
|
|
598
|
-
hour: 2,
|
|
599
|
-
minute: 15,
|
|
600
|
-
second: 15
|
|
601
|
-
};
|
|
602
|
-
function isSegmentEditable(segment) {
|
|
603
|
-
return EDITABLE_SEGMENTS[segment];
|
|
604
|
-
}
|
|
605
|
-
function getSegmentPageStep(segment) {
|
|
606
|
-
return SEGMENT_PAGE_STEP[segment] ?? 1;
|
|
607
|
-
}
|
|
608
|
-
|
|
609
|
-
// src/segment-limit.ts
|
|
610
|
-
var import_date10 = require("@internationalized/date");
|
|
611
|
-
function getSegmentLimits(date, type, options) {
|
|
612
|
-
switch (type) {
|
|
613
|
-
case "era": {
|
|
614
|
-
let eras = date.calendar.getEras();
|
|
615
|
-
return {
|
|
616
|
-
value: eras.indexOf(date.era),
|
|
617
|
-
min: 0,
|
|
618
|
-
max: eras.length - 1
|
|
619
|
-
};
|
|
620
|
-
}
|
|
621
|
-
case "year":
|
|
622
|
-
return {
|
|
623
|
-
value: date.year,
|
|
624
|
-
min: 1,
|
|
625
|
-
max: date.calendar.getYearsInEra(date)
|
|
626
|
-
};
|
|
627
|
-
case "month":
|
|
628
|
-
return {
|
|
629
|
-
value: date.month,
|
|
630
|
-
min: (0, import_date10.getMinimumMonthInYear)(date),
|
|
631
|
-
max: date.calendar.getMonthsInYear(date)
|
|
632
|
-
};
|
|
633
|
-
case "day":
|
|
634
|
-
return {
|
|
635
|
-
value: date.day,
|
|
636
|
-
min: (0, import_date10.getMinimumDayInMonth)(date),
|
|
637
|
-
max: date.calendar.getDaysInMonth(date)
|
|
638
|
-
};
|
|
639
|
-
}
|
|
640
|
-
if ("hour" in date) {
|
|
641
|
-
switch (type) {
|
|
642
|
-
case "dayPeriod":
|
|
643
|
-
return {
|
|
644
|
-
value: date.hour >= 12 ? 12 : 0,
|
|
645
|
-
min: 0,
|
|
646
|
-
max: 12
|
|
647
|
-
};
|
|
648
|
-
case "hour":
|
|
649
|
-
if (options?.hour12) {
|
|
650
|
-
let isPM = date.hour >= 12;
|
|
651
|
-
return {
|
|
652
|
-
value: date.hour,
|
|
653
|
-
min: isPM ? 12 : 0,
|
|
654
|
-
max: isPM ? 23 : 11
|
|
655
|
-
};
|
|
656
|
-
}
|
|
657
|
-
return {
|
|
658
|
-
value: date.hour,
|
|
659
|
-
min: 0,
|
|
660
|
-
max: 23
|
|
661
|
-
};
|
|
662
|
-
case "minute":
|
|
663
|
-
return {
|
|
664
|
-
value: date.minute,
|
|
665
|
-
min: 0,
|
|
666
|
-
max: 59
|
|
667
|
-
};
|
|
668
|
-
case "second":
|
|
669
|
-
return {
|
|
670
|
-
value: date.second,
|
|
671
|
-
min: 0,
|
|
672
|
-
max: 59
|
|
673
|
-
};
|
|
674
|
-
}
|
|
675
|
-
}
|
|
676
|
-
return {
|
|
677
|
-
value: -1,
|
|
678
|
-
min: -1,
|
|
679
|
-
max: -1
|
|
680
|
-
};
|
|
681
|
-
}
|
|
682
|
-
|
|
683
|
-
// src/segment-mutation.ts
|
|
684
|
-
function addSegment(date, part, amount, options) {
|
|
685
|
-
switch (part) {
|
|
686
|
-
case "era":
|
|
687
|
-
case "year":
|
|
688
|
-
case "month":
|
|
689
|
-
case "day":
|
|
690
|
-
return date.cycle(part, amount, { round: part === "year" });
|
|
691
|
-
}
|
|
692
|
-
if ("hour" in date) {
|
|
693
|
-
switch (part) {
|
|
694
|
-
case "dayPeriod": {
|
|
695
|
-
let hours = date.hour;
|
|
696
|
-
let isPM = hours >= 12;
|
|
697
|
-
return date.set({ hour: isPM ? hours - 12 : hours + 12 });
|
|
698
|
-
}
|
|
699
|
-
case "hour":
|
|
700
|
-
case "minute":
|
|
701
|
-
case "second":
|
|
702
|
-
return date.cycle(part, amount, {
|
|
703
|
-
round: part !== "hour",
|
|
704
|
-
hourCycle: options?.hour12 ? 12 : 24
|
|
705
|
-
});
|
|
706
|
-
}
|
|
707
|
-
}
|
|
708
|
-
return date;
|
|
709
|
-
}
|
|
710
|
-
function setSegment(date, part, value, options) {
|
|
711
|
-
switch (part) {
|
|
712
|
-
case "day":
|
|
713
|
-
case "month":
|
|
714
|
-
case "year":
|
|
715
|
-
case "era":
|
|
716
|
-
return date.set({ [part]: value });
|
|
717
|
-
}
|
|
718
|
-
if ("hour" in date) {
|
|
719
|
-
switch (part) {
|
|
720
|
-
case "dayPeriod": {
|
|
721
|
-
let hours = date.hour;
|
|
722
|
-
let wasPM = hours >= 12;
|
|
723
|
-
let isPM = value >= 12;
|
|
724
|
-
return isPM === wasPM ? date : date.set({ hour: wasPM ? hours - 12 : hours + 12 });
|
|
725
|
-
}
|
|
726
|
-
case "hour":
|
|
727
|
-
if (options?.hour12) {
|
|
728
|
-
let hours = date.hour;
|
|
729
|
-
let wasPM = hours >= 12;
|
|
730
|
-
if (!wasPM && value === 12) {
|
|
731
|
-
value = 0;
|
|
732
|
-
}
|
|
733
|
-
if (wasPM && value < 12) {
|
|
734
|
-
value += 12;
|
|
735
|
-
}
|
|
736
|
-
}
|
|
737
|
-
case "minute":
|
|
738
|
-
case "second":
|
|
739
|
-
return date.set({ [part]: value });
|
|
740
|
-
}
|
|
741
|
-
}
|
|
742
|
-
return date;
|
|
743
|
-
}
|
|
744
|
-
|
|
745
|
-
// src/segment-parts.ts
|
|
746
|
-
function getAllSegments(segments) {
|
|
747
|
-
return segments.filter((segment) => isSegmentEditable(segment.type)).reduce((acc, segment) => (acc[segment.type] = true, acc), {});
|
|
748
|
-
}
|
|
749
|
-
function getPlaceholder(options) {
|
|
750
|
-
const placeholder = { day: "dd", month: "mm", year: "yyyy" };
|
|
751
|
-
return placeholder[options.field];
|
|
752
|
-
}
|
|
753
|
-
function getSegments(date, validSegments, formatter, timeZone) {
|
|
754
|
-
const dateValue = date || getTodayPlaceholderDate(timeZone);
|
|
755
|
-
const segments = formatter.formatToParts(dateValue.toDate(timeZone));
|
|
756
|
-
return segments.map((segment) => {
|
|
757
|
-
let isEditable = isSegmentEditable(segment.type);
|
|
758
|
-
if (segment.type === "era")
|
|
759
|
-
isEditable = false;
|
|
760
|
-
let isPlaceholder = isSegmentEditable(segment.type) && !validSegments[segment.type];
|
|
761
|
-
let placeholder = isSegmentEditable(segment.type) ? getPlaceholder({ field: segment.type }) : null;
|
|
762
|
-
return {
|
|
763
|
-
type: segment.type,
|
|
764
|
-
text: isPlaceholder ? placeholder : segment.value,
|
|
765
|
-
...getSegmentLimits(dateValue, segment.type, formatter.resolvedOptions()),
|
|
766
|
-
isPlaceholder: !!isPlaceholder,
|
|
767
|
-
placeholder,
|
|
768
|
-
isEditable: !!isEditable
|
|
769
|
-
};
|
|
770
|
-
});
|
|
771
|
-
}
|
|
772
613
|
// Annotate the CommonJS export names for ESM import in node:
|
|
773
614
|
0 && (module.exports = {
|
|
774
|
-
SEGMENT_PAGE_STEP,
|
|
775
|
-
addSegment,
|
|
776
615
|
alignCenter,
|
|
777
616
|
alignDate,
|
|
778
617
|
alignEnd,
|
|
@@ -780,15 +619,17 @@ function getSegments(date, validSegments, formatter, timeZone) {
|
|
|
780
619
|
alignStartDate,
|
|
781
620
|
constrainStart,
|
|
782
621
|
constrainValue,
|
|
783
|
-
createPlaceholderDate,
|
|
784
622
|
formatRange,
|
|
785
623
|
formatSelectedDate,
|
|
786
624
|
formatVisibleRange,
|
|
787
625
|
getAdjustedDateFn,
|
|
788
|
-
|
|
789
|
-
|
|
626
|
+
getDayFormatter,
|
|
627
|
+
getDaysInWeek,
|
|
628
|
+
getDecadeRange,
|
|
790
629
|
getEndDate,
|
|
791
|
-
|
|
630
|
+
getMonthDays,
|
|
631
|
+
getMonthFormatter,
|
|
632
|
+
getMonthNames,
|
|
792
633
|
getNextDay,
|
|
793
634
|
getNextPage,
|
|
794
635
|
getNextRow,
|
|
@@ -800,13 +641,10 @@ function getSegments(date, validSegments, formatter, timeZone) {
|
|
|
800
641
|
getPreviousSection,
|
|
801
642
|
getSectionEnd,
|
|
802
643
|
getSectionStart,
|
|
803
|
-
getSegmentLimits,
|
|
804
|
-
getSegmentPageStep,
|
|
805
|
-
getSegments,
|
|
806
644
|
getTodayDate,
|
|
807
|
-
getTodayPlaceholderDate,
|
|
808
645
|
getUnitDuration,
|
|
809
|
-
|
|
646
|
+
getWeekDays,
|
|
647
|
+
getWeekdayFormats,
|
|
810
648
|
getYearsRange,
|
|
811
649
|
isDateDisabled,
|
|
812
650
|
isDateEqual,
|
|
@@ -815,11 +653,10 @@ function getSegments(date, validSegments, formatter, timeZone) {
|
|
|
815
653
|
isDateUnavailable,
|
|
816
654
|
isNextVisibleRangeInvalid,
|
|
817
655
|
isPreviousVisibleRangeInvalid,
|
|
818
|
-
isSegmentEditable,
|
|
819
656
|
isTodayDate,
|
|
657
|
+
parseDateString,
|
|
820
658
|
setCalendar,
|
|
821
659
|
setDate,
|
|
822
660
|
setMonth,
|
|
823
|
-
setSegment,
|
|
824
661
|
setYear
|
|
825
662
|
});
|