@zag-js/date-utils 0.1.2 → 0.1.4
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-KBGJA6NB.mjs +55 -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-U3OBXRHI.mjs +42 -0
- package/dist/format-date.d.ts +9 -0
- package/dist/format-date.js +79 -0
- package/dist/format-date.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 +10 -8
- package/dist/index.js +223 -307
- package/dist/index.mjs +40 -41
- package/dist/parse-date.d.ts +5 -0
- package/dist/parse-date.js +66 -0
- package/dist/parse-date.mjs +6 -0
- 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/get-week-dates.js
DELETED
|
@@ -1,60 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __defProp = Object.defineProperty;
|
|
3
|
-
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
-
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
-
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
-
var __export = (target, all) => {
|
|
7
|
-
for (var name in all)
|
|
8
|
-
__defProp(target, name, { get: all[name], enumerable: true });
|
|
9
|
-
};
|
|
10
|
-
var __copyProps = (to, from, except, desc) => {
|
|
11
|
-
if (from && typeof from === "object" || typeof from === "function") {
|
|
12
|
-
for (let key of __getOwnPropNames(from))
|
|
13
|
-
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
14
|
-
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
15
|
-
}
|
|
16
|
-
return to;
|
|
17
|
-
};
|
|
18
|
-
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
|
-
|
|
20
|
-
// src/get-week-dates.ts
|
|
21
|
-
var get_week_dates_exports = {};
|
|
22
|
-
__export(get_week_dates_exports, {
|
|
23
|
-
getDatesInWeek: () => getDatesInWeek,
|
|
24
|
-
getWeekDates: () => getWeekDates
|
|
25
|
-
});
|
|
26
|
-
module.exports = __toCommonJS(get_week_dates_exports);
|
|
27
|
-
var import_date = require("@internationalized/date");
|
|
28
|
-
function getDatesInWeek(weekIndex, fromDate, locale) {
|
|
29
|
-
let date = fromDate.add({ weeks: weekIndex });
|
|
30
|
-
let dates = [];
|
|
31
|
-
date = (0, import_date.startOfWeek)(date, locale);
|
|
32
|
-
let dayOfWeek = (0, import_date.getDayOfWeek)(date, locale);
|
|
33
|
-
for (let i = 0; i < dayOfWeek; i++) {
|
|
34
|
-
dates.push(null);
|
|
35
|
-
}
|
|
36
|
-
while (dates.length < 7) {
|
|
37
|
-
dates.push(date);
|
|
38
|
-
let nextDate = date.add({ days: 1 });
|
|
39
|
-
if ((0, import_date.isSameDay)(date, nextDate)) {
|
|
40
|
-
break;
|
|
41
|
-
}
|
|
42
|
-
date = nextDate;
|
|
43
|
-
}
|
|
44
|
-
while (dates.length < 7) {
|
|
45
|
-
dates.push(null);
|
|
46
|
-
}
|
|
47
|
-
return dates;
|
|
48
|
-
}
|
|
49
|
-
function getWeekDates(fromDate, timeZone, locale) {
|
|
50
|
-
let weekStart = (0, import_date.startOfWeek)(fromDate, locale);
|
|
51
|
-
let weekArr = [...new Array(7).keys()];
|
|
52
|
-
return weekArr.map((index) => {
|
|
53
|
-
return weekStart.add({ days: index }).toDate(timeZone);
|
|
54
|
-
});
|
|
55
|
-
}
|
|
56
|
-
// Annotate the CommonJS export names for ESM import in node:
|
|
57
|
-
0 && (module.exports = {
|
|
58
|
-
getDatesInWeek,
|
|
59
|
-
getWeekDates
|
|
60
|
-
});
|
package/dist/get-week-dates.mjs
DELETED
package/dist/placeholder.d.ts
DELETED
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
import * as _internationalized_date from '@internationalized/date';
|
|
2
|
-
import { DateGranularity } from './types.js';
|
|
3
|
-
|
|
4
|
-
declare function getTodayPlaceholderDate(timeZone: string): _internationalized_date.ZonedDateTime;
|
|
5
|
-
declare function createPlaceholderDate(granularity: DateGranularity, timeZone: string): _internationalized_date.CalendarDate | _internationalized_date.ZonedDateTime;
|
|
6
|
-
|
|
7
|
-
export { createPlaceholderDate, getTodayPlaceholderDate };
|
package/dist/placeholder.mjs
DELETED
|
@@ -1,27 +0,0 @@
|
|
|
1
|
-
import { DateSegmentPart } from './types.js';
|
|
2
|
-
import '@internationalized/date';
|
|
3
|
-
|
|
4
|
-
declare const EDITABLE_SEGMENTS: {
|
|
5
|
-
year: boolean;
|
|
6
|
-
month: boolean;
|
|
7
|
-
day: boolean;
|
|
8
|
-
hour: boolean;
|
|
9
|
-
minute: boolean;
|
|
10
|
-
second: boolean;
|
|
11
|
-
dayPeriod: boolean;
|
|
12
|
-
era: boolean;
|
|
13
|
-
};
|
|
14
|
-
type DateSegments = Partial<typeof EDITABLE_SEGMENTS>;
|
|
15
|
-
type DateSegment = keyof DateSegments;
|
|
16
|
-
declare const SEGMENT_PAGE_STEP: {
|
|
17
|
-
year: number;
|
|
18
|
-
month: number;
|
|
19
|
-
day: number;
|
|
20
|
-
hour: number;
|
|
21
|
-
minute: number;
|
|
22
|
-
second: number;
|
|
23
|
-
};
|
|
24
|
-
declare function isSegmentEditable(segment: DateSegmentPart): any;
|
|
25
|
-
declare function getSegmentPageStep(segment: DateSegmentPart): any;
|
|
26
|
-
|
|
27
|
-
export { DateSegment, DateSegments, SEGMENT_PAGE_STEP, getSegmentPageStep, isSegmentEditable };
|
package/dist/segment-limit.d.ts
DELETED
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
import { DateValue } from '@internationalized/date';
|
|
2
|
-
import { DateSegmentPart, DateFormatOptions } from './types.js';
|
|
3
|
-
|
|
4
|
-
declare function getSegmentLimits(date: DateValue, type: DateSegmentPart, options?: Pick<DateFormatOptions, "hour12">): {
|
|
5
|
-
value: number;
|
|
6
|
-
min: number;
|
|
7
|
-
max: number;
|
|
8
|
-
};
|
|
9
|
-
|
|
10
|
-
export { getSegmentLimits };
|
package/dist/segment-limit.js
DELETED
|
@@ -1,101 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __defProp = Object.defineProperty;
|
|
3
|
-
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
-
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
-
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
-
var __export = (target, all) => {
|
|
7
|
-
for (var name in all)
|
|
8
|
-
__defProp(target, name, { get: all[name], enumerable: true });
|
|
9
|
-
};
|
|
10
|
-
var __copyProps = (to, from, except, desc) => {
|
|
11
|
-
if (from && typeof from === "object" || typeof from === "function") {
|
|
12
|
-
for (let key of __getOwnPropNames(from))
|
|
13
|
-
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
14
|
-
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
15
|
-
}
|
|
16
|
-
return to;
|
|
17
|
-
};
|
|
18
|
-
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
|
-
|
|
20
|
-
// src/segment-limit.ts
|
|
21
|
-
var segment_limit_exports = {};
|
|
22
|
-
__export(segment_limit_exports, {
|
|
23
|
-
getSegmentLimits: () => getSegmentLimits
|
|
24
|
-
});
|
|
25
|
-
module.exports = __toCommonJS(segment_limit_exports);
|
|
26
|
-
var import_date = require("@internationalized/date");
|
|
27
|
-
function getSegmentLimits(date, type, options) {
|
|
28
|
-
switch (type) {
|
|
29
|
-
case "era": {
|
|
30
|
-
let eras = date.calendar.getEras();
|
|
31
|
-
return {
|
|
32
|
-
value: eras.indexOf(date.era),
|
|
33
|
-
min: 0,
|
|
34
|
-
max: eras.length - 1
|
|
35
|
-
};
|
|
36
|
-
}
|
|
37
|
-
case "year":
|
|
38
|
-
return {
|
|
39
|
-
value: date.year,
|
|
40
|
-
min: 1,
|
|
41
|
-
max: date.calendar.getYearsInEra(date)
|
|
42
|
-
};
|
|
43
|
-
case "month":
|
|
44
|
-
return {
|
|
45
|
-
value: date.month,
|
|
46
|
-
min: (0, import_date.getMinimumMonthInYear)(date),
|
|
47
|
-
max: date.calendar.getMonthsInYear(date)
|
|
48
|
-
};
|
|
49
|
-
case "day":
|
|
50
|
-
return {
|
|
51
|
-
value: date.day,
|
|
52
|
-
min: (0, import_date.getMinimumDayInMonth)(date),
|
|
53
|
-
max: date.calendar.getDaysInMonth(date)
|
|
54
|
-
};
|
|
55
|
-
}
|
|
56
|
-
if ("hour" in date) {
|
|
57
|
-
switch (type) {
|
|
58
|
-
case "dayPeriod":
|
|
59
|
-
return {
|
|
60
|
-
value: date.hour >= 12 ? 12 : 0,
|
|
61
|
-
min: 0,
|
|
62
|
-
max: 12
|
|
63
|
-
};
|
|
64
|
-
case "hour":
|
|
65
|
-
if (options?.hour12) {
|
|
66
|
-
let isPM = date.hour >= 12;
|
|
67
|
-
return {
|
|
68
|
-
value: date.hour,
|
|
69
|
-
min: isPM ? 12 : 0,
|
|
70
|
-
max: isPM ? 23 : 11
|
|
71
|
-
};
|
|
72
|
-
}
|
|
73
|
-
return {
|
|
74
|
-
value: date.hour,
|
|
75
|
-
min: 0,
|
|
76
|
-
max: 23
|
|
77
|
-
};
|
|
78
|
-
case "minute":
|
|
79
|
-
return {
|
|
80
|
-
value: date.minute,
|
|
81
|
-
min: 0,
|
|
82
|
-
max: 59
|
|
83
|
-
};
|
|
84
|
-
case "second":
|
|
85
|
-
return {
|
|
86
|
-
value: date.second,
|
|
87
|
-
min: 0,
|
|
88
|
-
max: 59
|
|
89
|
-
};
|
|
90
|
-
}
|
|
91
|
-
}
|
|
92
|
-
return {
|
|
93
|
-
value: -1,
|
|
94
|
-
min: -1,
|
|
95
|
-
max: -1
|
|
96
|
-
};
|
|
97
|
-
}
|
|
98
|
-
// Annotate the CommonJS export names for ESM import in node:
|
|
99
|
-
0 && (module.exports = {
|
|
100
|
-
getSegmentLimits
|
|
101
|
-
});
|
package/dist/segment-limit.mjs
DELETED
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
import { DateValue } from '@internationalized/date';
|
|
2
|
-
import { DateSegmentPart, DateFormatOptions } from './types.js';
|
|
3
|
-
|
|
4
|
-
declare function addSegment(date: DateValue, part: DateSegmentPart, amount: number, options?: Pick<DateFormatOptions, "hour12">): DateValue;
|
|
5
|
-
declare function setSegment(date: DateValue, part: DateSegmentPart, value: number, options?: Pick<DateFormatOptions, "hour12">): DateValue;
|
|
6
|
-
|
|
7
|
-
export { addSegment, setSegment };
|
package/dist/segment-mutation.js
DELETED
|
@@ -1,91 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __defProp = Object.defineProperty;
|
|
3
|
-
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
-
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
-
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
-
var __export = (target, all) => {
|
|
7
|
-
for (var name in all)
|
|
8
|
-
__defProp(target, name, { get: all[name], enumerable: true });
|
|
9
|
-
};
|
|
10
|
-
var __copyProps = (to, from, except, desc) => {
|
|
11
|
-
if (from && typeof from === "object" || typeof from === "function") {
|
|
12
|
-
for (let key of __getOwnPropNames(from))
|
|
13
|
-
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
14
|
-
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
15
|
-
}
|
|
16
|
-
return to;
|
|
17
|
-
};
|
|
18
|
-
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
|
-
|
|
20
|
-
// src/segment-mutation.ts
|
|
21
|
-
var segment_mutation_exports = {};
|
|
22
|
-
__export(segment_mutation_exports, {
|
|
23
|
-
addSegment: () => addSegment,
|
|
24
|
-
setSegment: () => setSegment
|
|
25
|
-
});
|
|
26
|
-
module.exports = __toCommonJS(segment_mutation_exports);
|
|
27
|
-
function addSegment(date, part, amount, options) {
|
|
28
|
-
switch (part) {
|
|
29
|
-
case "era":
|
|
30
|
-
case "year":
|
|
31
|
-
case "month":
|
|
32
|
-
case "day":
|
|
33
|
-
return date.cycle(part, amount, { round: part === "year" });
|
|
34
|
-
}
|
|
35
|
-
if ("hour" in date) {
|
|
36
|
-
switch (part) {
|
|
37
|
-
case "dayPeriod": {
|
|
38
|
-
let hours = date.hour;
|
|
39
|
-
let isPM = hours >= 12;
|
|
40
|
-
return date.set({ hour: isPM ? hours - 12 : hours + 12 });
|
|
41
|
-
}
|
|
42
|
-
case "hour":
|
|
43
|
-
case "minute":
|
|
44
|
-
case "second":
|
|
45
|
-
return date.cycle(part, amount, {
|
|
46
|
-
round: part !== "hour",
|
|
47
|
-
hourCycle: options?.hour12 ? 12 : 24
|
|
48
|
-
});
|
|
49
|
-
}
|
|
50
|
-
}
|
|
51
|
-
return date;
|
|
52
|
-
}
|
|
53
|
-
function setSegment(date, part, value, options) {
|
|
54
|
-
switch (part) {
|
|
55
|
-
case "day":
|
|
56
|
-
case "month":
|
|
57
|
-
case "year":
|
|
58
|
-
case "era":
|
|
59
|
-
return date.set({ [part]: value });
|
|
60
|
-
}
|
|
61
|
-
if ("hour" in date) {
|
|
62
|
-
switch (part) {
|
|
63
|
-
case "dayPeriod": {
|
|
64
|
-
let hours = date.hour;
|
|
65
|
-
let wasPM = hours >= 12;
|
|
66
|
-
let isPM = value >= 12;
|
|
67
|
-
return isPM === wasPM ? date : date.set({ hour: wasPM ? hours - 12 : hours + 12 });
|
|
68
|
-
}
|
|
69
|
-
case "hour":
|
|
70
|
-
if (options?.hour12) {
|
|
71
|
-
let hours = date.hour;
|
|
72
|
-
let wasPM = hours >= 12;
|
|
73
|
-
if (!wasPM && value === 12) {
|
|
74
|
-
value = 0;
|
|
75
|
-
}
|
|
76
|
-
if (wasPM && value < 12) {
|
|
77
|
-
value += 12;
|
|
78
|
-
}
|
|
79
|
-
}
|
|
80
|
-
case "minute":
|
|
81
|
-
case "second":
|
|
82
|
-
return date.set({ [part]: value });
|
|
83
|
-
}
|
|
84
|
-
}
|
|
85
|
-
return date;
|
|
86
|
-
}
|
|
87
|
-
// Annotate the CommonJS export names for ESM import in node:
|
|
88
|
-
0 && (module.exports = {
|
|
89
|
-
addSegment,
|
|
90
|
-
setSegment
|
|
91
|
-
});
|
package/dist/segment-parts.d.ts
DELETED
|
@@ -1,27 +0,0 @@
|
|
|
1
|
-
import { DateValue, DateFormatter } from '@internationalized/date';
|
|
2
|
-
import { DateSegments } from './segment-constants.js';
|
|
3
|
-
import './types.js';
|
|
4
|
-
|
|
5
|
-
declare function getAllSegments(segments: Intl.DateTimeFormatPart[]): {};
|
|
6
|
-
declare function getSegments(date: DateValue | undefined, validSegments: DateSegments, formatter: DateFormatter, timeZone: string): {
|
|
7
|
-
isPlaceholder: boolean;
|
|
8
|
-
placeholder: any;
|
|
9
|
-
isEditable: boolean;
|
|
10
|
-
value: number;
|
|
11
|
-
min: number;
|
|
12
|
-
max: number;
|
|
13
|
-
type: keyof Intl.DateTimeFormatPartTypesRegistry;
|
|
14
|
-
text: any;
|
|
15
|
-
}[];
|
|
16
|
-
type DateSegmentDetails = {
|
|
17
|
-
type: keyof Intl.DateTimeFormatPartTypesRegistry;
|
|
18
|
-
text: string;
|
|
19
|
-
value?: number;
|
|
20
|
-
min?: number;
|
|
21
|
-
max?: number;
|
|
22
|
-
isPlaceholder: boolean;
|
|
23
|
-
placeholder: string;
|
|
24
|
-
isEditable: boolean;
|
|
25
|
-
};
|
|
26
|
-
|
|
27
|
-
export { DateSegmentDetails, getAllSegments, getSegments };
|
package/dist/segment-parts.js
DELETED
|
@@ -1,159 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __defProp = Object.defineProperty;
|
|
3
|
-
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
-
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
-
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
-
var __export = (target, all) => {
|
|
7
|
-
for (var name in all)
|
|
8
|
-
__defProp(target, name, { get: all[name], enumerable: true });
|
|
9
|
-
};
|
|
10
|
-
var __copyProps = (to, from, except, desc) => {
|
|
11
|
-
if (from && typeof from === "object" || typeof from === "function") {
|
|
12
|
-
for (let key of __getOwnPropNames(from))
|
|
13
|
-
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
14
|
-
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
15
|
-
}
|
|
16
|
-
return to;
|
|
17
|
-
};
|
|
18
|
-
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
|
-
|
|
20
|
-
// src/segment-parts.ts
|
|
21
|
-
var segment_parts_exports = {};
|
|
22
|
-
__export(segment_parts_exports, {
|
|
23
|
-
getAllSegments: () => getAllSegments,
|
|
24
|
-
getSegments: () => getSegments
|
|
25
|
-
});
|
|
26
|
-
module.exports = __toCommonJS(segment_parts_exports);
|
|
27
|
-
|
|
28
|
-
// src/placeholder.ts
|
|
29
|
-
var import_date = require("@internationalized/date");
|
|
30
|
-
function getTodayPlaceholderDate(timeZone) {
|
|
31
|
-
return (0, import_date.now)(timeZone).set({
|
|
32
|
-
hour: 0,
|
|
33
|
-
minute: 0,
|
|
34
|
-
second: 0,
|
|
35
|
-
millisecond: 0
|
|
36
|
-
});
|
|
37
|
-
}
|
|
38
|
-
|
|
39
|
-
// src/segment-constants.ts
|
|
40
|
-
var EDITABLE_SEGMENTS = {
|
|
41
|
-
year: true,
|
|
42
|
-
month: true,
|
|
43
|
-
day: true,
|
|
44
|
-
hour: true,
|
|
45
|
-
minute: true,
|
|
46
|
-
second: true,
|
|
47
|
-
dayPeriod: true,
|
|
48
|
-
era: true
|
|
49
|
-
};
|
|
50
|
-
function isSegmentEditable(segment) {
|
|
51
|
-
return EDITABLE_SEGMENTS[segment];
|
|
52
|
-
}
|
|
53
|
-
|
|
54
|
-
// src/segment-limit.ts
|
|
55
|
-
var import_date2 = require("@internationalized/date");
|
|
56
|
-
function getSegmentLimits(date, type, options) {
|
|
57
|
-
switch (type) {
|
|
58
|
-
case "era": {
|
|
59
|
-
let eras = date.calendar.getEras();
|
|
60
|
-
return {
|
|
61
|
-
value: eras.indexOf(date.era),
|
|
62
|
-
min: 0,
|
|
63
|
-
max: eras.length - 1
|
|
64
|
-
};
|
|
65
|
-
}
|
|
66
|
-
case "year":
|
|
67
|
-
return {
|
|
68
|
-
value: date.year,
|
|
69
|
-
min: 1,
|
|
70
|
-
max: date.calendar.getYearsInEra(date)
|
|
71
|
-
};
|
|
72
|
-
case "month":
|
|
73
|
-
return {
|
|
74
|
-
value: date.month,
|
|
75
|
-
min: (0, import_date2.getMinimumMonthInYear)(date),
|
|
76
|
-
max: date.calendar.getMonthsInYear(date)
|
|
77
|
-
};
|
|
78
|
-
case "day":
|
|
79
|
-
return {
|
|
80
|
-
value: date.day,
|
|
81
|
-
min: (0, import_date2.getMinimumDayInMonth)(date),
|
|
82
|
-
max: date.calendar.getDaysInMonth(date)
|
|
83
|
-
};
|
|
84
|
-
}
|
|
85
|
-
if ("hour" in date) {
|
|
86
|
-
switch (type) {
|
|
87
|
-
case "dayPeriod":
|
|
88
|
-
return {
|
|
89
|
-
value: date.hour >= 12 ? 12 : 0,
|
|
90
|
-
min: 0,
|
|
91
|
-
max: 12
|
|
92
|
-
};
|
|
93
|
-
case "hour":
|
|
94
|
-
if (options?.hour12) {
|
|
95
|
-
let isPM = date.hour >= 12;
|
|
96
|
-
return {
|
|
97
|
-
value: date.hour,
|
|
98
|
-
min: isPM ? 12 : 0,
|
|
99
|
-
max: isPM ? 23 : 11
|
|
100
|
-
};
|
|
101
|
-
}
|
|
102
|
-
return {
|
|
103
|
-
value: date.hour,
|
|
104
|
-
min: 0,
|
|
105
|
-
max: 23
|
|
106
|
-
};
|
|
107
|
-
case "minute":
|
|
108
|
-
return {
|
|
109
|
-
value: date.minute,
|
|
110
|
-
min: 0,
|
|
111
|
-
max: 59
|
|
112
|
-
};
|
|
113
|
-
case "second":
|
|
114
|
-
return {
|
|
115
|
-
value: date.second,
|
|
116
|
-
min: 0,
|
|
117
|
-
max: 59
|
|
118
|
-
};
|
|
119
|
-
}
|
|
120
|
-
}
|
|
121
|
-
return {
|
|
122
|
-
value: -1,
|
|
123
|
-
min: -1,
|
|
124
|
-
max: -1
|
|
125
|
-
};
|
|
126
|
-
}
|
|
127
|
-
|
|
128
|
-
// src/segment-parts.ts
|
|
129
|
-
function getAllSegments(segments) {
|
|
130
|
-
return segments.filter((segment) => isSegmentEditable(segment.type)).reduce((acc, segment) => (acc[segment.type] = true, acc), {});
|
|
131
|
-
}
|
|
132
|
-
function getPlaceholder(options) {
|
|
133
|
-
const placeholder = { day: "dd", month: "mm", year: "yyyy" };
|
|
134
|
-
return placeholder[options.field];
|
|
135
|
-
}
|
|
136
|
-
function getSegments(date, validSegments, formatter, timeZone) {
|
|
137
|
-
const dateValue = date || getTodayPlaceholderDate(timeZone);
|
|
138
|
-
const segments = formatter.formatToParts(dateValue.toDate(timeZone));
|
|
139
|
-
return segments.map((segment) => {
|
|
140
|
-
let isEditable = isSegmentEditable(segment.type);
|
|
141
|
-
if (segment.type === "era")
|
|
142
|
-
isEditable = false;
|
|
143
|
-
let isPlaceholder = isSegmentEditable(segment.type) && !validSegments[segment.type];
|
|
144
|
-
let placeholder = isSegmentEditable(segment.type) ? getPlaceholder({ field: segment.type }) : null;
|
|
145
|
-
return {
|
|
146
|
-
type: segment.type,
|
|
147
|
-
text: isPlaceholder ? placeholder : segment.value,
|
|
148
|
-
...getSegmentLimits(dateValue, segment.type, formatter.resolvedOptions()),
|
|
149
|
-
isPlaceholder: !!isPlaceholder,
|
|
150
|
-
placeholder,
|
|
151
|
-
isEditable: !!isEditable
|
|
152
|
-
};
|
|
153
|
-
});
|
|
154
|
-
}
|
|
155
|
-
// Annotate the CommonJS export names for ESM import in node:
|
|
156
|
-
0 && (module.exports = {
|
|
157
|
-
getAllSegments,
|
|
158
|
-
getSegments
|
|
159
|
-
});
|
package/dist/segment-parts.mjs
DELETED