@abgov/react-components 6.10.0 → 6.11.0-dev.2
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/experimental/badge/badge.d.ts +33 -0
- package/experimental/button/button.d.ts +43 -0
- package/experimental/calendar/calendar.d.ts +30 -0
- package/experimental/callout/callout.d.ts +33 -0
- package/experimental/checkbox/checkbox.d.ts +52 -0
- package/experimental/date-picker/date-picker.d.ts +43 -0
- package/experimental/drawer/drawer.d.ts +31 -0
- package/experimental/dropdown/dropdown-item.d.ts +26 -0
- package/experimental/dropdown/dropdown.d.ts +62 -0
- package/experimental/file-upload-card/file-upload-card.d.ts +32 -0
- package/experimental/file-upload-input/file-upload-input.d.ts +27 -0
- package/experimental/filter-chip/filter-chip.d.ts +31 -0
- package/experimental/footer/footer.d.ts +24 -0
- package/experimental/footer-meta-section/footer-meta-section.d.ts +18 -0
- package/experimental/footer-nav-section/footer-nav-section.d.ts +22 -0
- package/experimental/form-item/form-item.d.ts +46 -0
- package/experimental/index.d.ts +30 -2
- package/experimental/input/input.d.ts +124 -0
- package/experimental/link/link.d.ts +32 -0
- package/experimental/modal/modal.d.ts +44 -0
- package/experimental/notification/notification.d.ts +31 -0
- package/experimental/pagination/pagination.d.ts +29 -0
- package/experimental/radio-group/radio-group.d.ts +40 -0
- package/experimental/radio-group/radio.d.ts +42 -0
- package/experimental/side-menu/side-menu.d.ts +19 -0
- package/experimental/side-menu-group/side-menu-group.d.ts +24 -0
- package/experimental/side-menu-heading/side-menu-heading.d.ts +23 -0
- package/experimental/table/table-sort-header.d.ts +20 -0
- package/experimental/table/table.d.ts +30 -0
- package/experimental/tabs/tabs.d.ts +27 -0
- package/experimental/textarea/textarea.d.ts +53 -0
- package/experimental/work-side-menu-group/work-side-menu-group.d.ts +22 -0
- package/experimental.js +1160 -64
- package/experimental.js.map +1 -1
- package/experimental.mjs +1163 -68
- package/experimental.mjs.map +1 -1
- package/index.d.ts +1 -0
- package/index.js +176 -1753
- package/index.js.map +1 -1
- package/index.mjs +105 -1683
- package/index.mjs.map +1 -1
- package/lib/badge/badge.d.ts +0 -16
- package/lib/button/button.d.ts +0 -22
- package/lib/calendar/calendar.d.ts +0 -16
- package/lib/callout/callout.d.ts +0 -16
- package/lib/checkbox/checkbox.d.ts +0 -25
- package/lib/date-picker/date-picker.d.ts +0 -21
- package/lib/drawer/drawer.d.ts +0 -15
- package/lib/dropdown/dropdown-item.d.ts +0 -15
- package/lib/dropdown/dropdown.d.ts +0 -29
- package/lib/file-upload-card/file-upload-card.d.ts +0 -17
- package/lib/file-upload-input/file-upload-input.d.ts +0 -15
- package/lib/filter-chip/filter-chip.d.ts +0 -15
- package/lib/footer/footer.d.ts +0 -12
- package/lib/footer-meta-section/footer-meta-section.d.ts +0 -10
- package/lib/footer-nav-section/footer-nav-section.d.ts +0 -12
- package/lib/form-item/form-item.d.ts +0 -19
- package/lib/input/input.d.ts +0 -38
- package/lib/link/link.d.ts +0 -15
- package/lib/modal/modal.d.ts +1 -23
- package/lib/notification/notification.d.ts +0 -14
- package/lib/pagination/pagination.d.ts +0 -15
- package/lib/push-drawer/push-drawer.d.ts +26 -0
- package/lib/radio-group/radio-group.d.ts +0 -19
- package/lib/radio-group/radio.d.ts +0 -20
- package/lib/side-menu/side-menu.d.ts +0 -10
- package/lib/side-menu-group/side-menu-group.d.ts +0 -12
- package/lib/side-menu-heading/side-menu-heading.d.ts +0 -11
- package/lib/tab/tab.d.ts +3 -1
- package/lib/table/table-sort-header.d.ts +0 -11
- package/lib/table/table.d.ts +0 -14
- package/lib/tabs/tabs.d.ts +0 -14
- package/lib/textarea/textarea.d.ts +0 -25
- package/package.json +1 -1
- package/parseISO-BHUUf1QW.mjs +1693 -0
- package/parseISO-BHUUf1QW.mjs.map +1 -0
- package/parseISO-Dj57mwuH.js +1692 -0
- package/parseISO-Dj57mwuH.js.map +1 -0
- package/experimental/form/form-summary.d.ts +0 -10
- package/experimental/form/form.d.ts +0 -23
- package/experimental/resizable-panel/ResizablePanel.d.ts +0 -7
- package/icon-B3p90m2x.js +0 -75
- package/icon-B3p90m2x.js.map +0 -1
- package/icon-CCNDGfBO.mjs +0 -76
- package/icon-CCNDGfBO.mjs.map +0 -1
- package/style.css +0 -49
package/index.mjs
CHANGED
|
@@ -10,8 +10,7 @@ var __privateMethod = (obj, member, method) => (__accessCheck(obj, member, "acce
|
|
|
10
10
|
var _PublicFormController_instances, updateObjectListState_fn, dispatchError_fn;
|
|
11
11
|
import { jsxs, jsx } from "react/jsx-runtime";
|
|
12
12
|
import { useRef, useEffect, useLayoutEffect, useState, useCallback } from "react";
|
|
13
|
-
import { t as transformProps, l as lowercase, k as kebab } from "./
|
|
14
|
-
import { G, a } from "./icon-CCNDGfBO.mjs";
|
|
13
|
+
import { t as transformProps, l as lowercase, k as kebab, f as format, p as parseISO, i as isValid } from "./parseISO-BHUUf1QW.mjs";
|
|
15
14
|
function GoabAccordion({
|
|
16
15
|
open,
|
|
17
16
|
onChange,
|
|
@@ -93,11 +92,7 @@ function getIconValue(icon, iconType) {
|
|
|
93
92
|
}
|
|
94
93
|
return iconType ? "true" : "false";
|
|
95
94
|
}
|
|
96
|
-
function GoabBadge({
|
|
97
|
-
icon,
|
|
98
|
-
iconType,
|
|
99
|
-
...rest
|
|
100
|
-
}) {
|
|
95
|
+
function GoabBadge({ icon, iconType, ...rest }) {
|
|
101
96
|
const _props = transformProps(rest, lowercase);
|
|
102
97
|
return /* @__PURE__ */ jsx(
|
|
103
98
|
"goa-badge",
|
|
@@ -452,7 +447,7 @@ const GoabChip = ({
|
|
|
452
447
|
};
|
|
453
448
|
const GoabCircularProgress = ({
|
|
454
449
|
visible,
|
|
455
|
-
message
|
|
450
|
+
message,
|
|
456
451
|
progress,
|
|
457
452
|
variant,
|
|
458
453
|
size,
|
|
@@ -462,7 +457,7 @@ const GoabCircularProgress = ({
|
|
|
462
457
|
"goa-circular-progress",
|
|
463
458
|
{
|
|
464
459
|
visible: visible ? "true" : void 0,
|
|
465
|
-
message
|
|
460
|
+
message,
|
|
466
461
|
progress,
|
|
467
462
|
variant,
|
|
468
463
|
size,
|
|
@@ -584,6 +579,45 @@ function GoabDivider(props) {
|
|
|
584
579
|
}
|
|
585
580
|
);
|
|
586
581
|
}
|
|
582
|
+
function GoabDrawer({
|
|
583
|
+
position,
|
|
584
|
+
open,
|
|
585
|
+
heading,
|
|
586
|
+
maxSize,
|
|
587
|
+
testId,
|
|
588
|
+
actions,
|
|
589
|
+
children,
|
|
590
|
+
onClose
|
|
591
|
+
}) {
|
|
592
|
+
const el = useRef(null);
|
|
593
|
+
useEffect(() => {
|
|
594
|
+
var _a;
|
|
595
|
+
if (!(el == null ? void 0 : el.current) || !onClose) {
|
|
596
|
+
return;
|
|
597
|
+
}
|
|
598
|
+
(_a = el.current) == null ? void 0 : _a.addEventListener("_close", onClose);
|
|
599
|
+
return () => {
|
|
600
|
+
var _a2;
|
|
601
|
+
(_a2 = el.current) == null ? void 0 : _a2.removeEventListener("_close", onClose);
|
|
602
|
+
};
|
|
603
|
+
}, [el, onClose]);
|
|
604
|
+
return /* @__PURE__ */ jsxs(
|
|
605
|
+
"goa-drawer",
|
|
606
|
+
{
|
|
607
|
+
ref: el,
|
|
608
|
+
position,
|
|
609
|
+
open: open ? true : void 0,
|
|
610
|
+
heading: typeof heading === "string" ? heading : void 0,
|
|
611
|
+
maxsize: maxSize,
|
|
612
|
+
testid: testId,
|
|
613
|
+
children: [
|
|
614
|
+
heading && typeof heading !== "string" && /* @__PURE__ */ jsx("div", { slot: "heading", children: heading }),
|
|
615
|
+
actions && /* @__PURE__ */ jsx("div", { slot: "actions", children: actions }),
|
|
616
|
+
children
|
|
617
|
+
]
|
|
618
|
+
}
|
|
619
|
+
);
|
|
620
|
+
}
|
|
587
621
|
function stringify(value) {
|
|
588
622
|
if (typeof value === "undefined") {
|
|
589
623
|
return "";
|
|
@@ -1067,1675 +1101,18 @@ function GoabIconButton({
|
|
|
1067
1101
|
}
|
|
1068
1102
|
);
|
|
1069
1103
|
}
|
|
1070
|
-
function
|
|
1071
|
-
|
|
1072
|
-
|
|
1073
|
-
|
|
1074
|
-
|
|
1075
|
-
|
|
1076
|
-
|
|
1077
|
-
|
|
1078
|
-
|
|
1079
|
-
|
|
1080
|
-
function constructFrom(date, value) {
|
|
1081
|
-
if (date instanceof Date) {
|
|
1082
|
-
return new date.constructor(value);
|
|
1083
|
-
} else {
|
|
1084
|
-
return new Date(value);
|
|
1085
|
-
}
|
|
1086
|
-
}
|
|
1087
|
-
const millisecondsInWeek = 6048e5;
|
|
1088
|
-
const millisecondsInDay = 864e5;
|
|
1089
|
-
const millisecondsInMinute = 6e4;
|
|
1090
|
-
const millisecondsInHour = 36e5;
|
|
1091
|
-
let defaultOptions = {};
|
|
1092
|
-
function getDefaultOptions() {
|
|
1093
|
-
return defaultOptions;
|
|
1094
|
-
}
|
|
1095
|
-
function startOfWeek(date, options) {
|
|
1096
|
-
var _a, _b, _c, _d;
|
|
1097
|
-
const defaultOptions2 = getDefaultOptions();
|
|
1098
|
-
const weekStartsOn = (options == null ? void 0 : options.weekStartsOn) ?? ((_b = (_a = options == null ? void 0 : options.locale) == null ? void 0 : _a.options) == null ? void 0 : _b.weekStartsOn) ?? defaultOptions2.weekStartsOn ?? ((_d = (_c = defaultOptions2.locale) == null ? void 0 : _c.options) == null ? void 0 : _d.weekStartsOn) ?? 0;
|
|
1099
|
-
const _date = toDate(date);
|
|
1100
|
-
const day = _date.getDay();
|
|
1101
|
-
const diff = (day < weekStartsOn ? 7 : 0) + day - weekStartsOn;
|
|
1102
|
-
_date.setDate(_date.getDate() - diff);
|
|
1103
|
-
_date.setHours(0, 0, 0, 0);
|
|
1104
|
-
return _date;
|
|
1105
|
-
}
|
|
1106
|
-
function startOfISOWeek(date) {
|
|
1107
|
-
return startOfWeek(date, { weekStartsOn: 1 });
|
|
1108
|
-
}
|
|
1109
|
-
function getISOWeekYear(date) {
|
|
1110
|
-
const _date = toDate(date);
|
|
1111
|
-
const year = _date.getFullYear();
|
|
1112
|
-
const fourthOfJanuaryOfNextYear = constructFrom(date, 0);
|
|
1113
|
-
fourthOfJanuaryOfNextYear.setFullYear(year + 1, 0, 4);
|
|
1114
|
-
fourthOfJanuaryOfNextYear.setHours(0, 0, 0, 0);
|
|
1115
|
-
const startOfNextYear = startOfISOWeek(fourthOfJanuaryOfNextYear);
|
|
1116
|
-
const fourthOfJanuaryOfThisYear = constructFrom(date, 0);
|
|
1117
|
-
fourthOfJanuaryOfThisYear.setFullYear(year, 0, 4);
|
|
1118
|
-
fourthOfJanuaryOfThisYear.setHours(0, 0, 0, 0);
|
|
1119
|
-
const startOfThisYear = startOfISOWeek(fourthOfJanuaryOfThisYear);
|
|
1120
|
-
if (_date.getTime() >= startOfNextYear.getTime()) {
|
|
1121
|
-
return year + 1;
|
|
1122
|
-
} else if (_date.getTime() >= startOfThisYear.getTime()) {
|
|
1123
|
-
return year;
|
|
1124
|
-
} else {
|
|
1125
|
-
return year - 1;
|
|
1126
|
-
}
|
|
1127
|
-
}
|
|
1128
|
-
function startOfDay(date) {
|
|
1129
|
-
const _date = toDate(date);
|
|
1130
|
-
_date.setHours(0, 0, 0, 0);
|
|
1131
|
-
return _date;
|
|
1132
|
-
}
|
|
1133
|
-
function getTimezoneOffsetInMilliseconds(date) {
|
|
1134
|
-
const _date = toDate(date);
|
|
1135
|
-
const utcDate = new Date(
|
|
1136
|
-
Date.UTC(
|
|
1137
|
-
_date.getFullYear(),
|
|
1138
|
-
_date.getMonth(),
|
|
1139
|
-
_date.getDate(),
|
|
1140
|
-
_date.getHours(),
|
|
1141
|
-
_date.getMinutes(),
|
|
1142
|
-
_date.getSeconds(),
|
|
1143
|
-
_date.getMilliseconds()
|
|
1144
|
-
)
|
|
1145
|
-
);
|
|
1146
|
-
utcDate.setUTCFullYear(_date.getFullYear());
|
|
1147
|
-
return +date - +utcDate;
|
|
1148
|
-
}
|
|
1149
|
-
function differenceInCalendarDays(dateLeft, dateRight) {
|
|
1150
|
-
const startOfDayLeft = startOfDay(dateLeft);
|
|
1151
|
-
const startOfDayRight = startOfDay(dateRight);
|
|
1152
|
-
const timestampLeft = +startOfDayLeft - getTimezoneOffsetInMilliseconds(startOfDayLeft);
|
|
1153
|
-
const timestampRight = +startOfDayRight - getTimezoneOffsetInMilliseconds(startOfDayRight);
|
|
1154
|
-
return Math.round((timestampLeft - timestampRight) / millisecondsInDay);
|
|
1155
|
-
}
|
|
1156
|
-
function startOfISOWeekYear(date) {
|
|
1157
|
-
const year = getISOWeekYear(date);
|
|
1158
|
-
const fourthOfJanuary = constructFrom(date, 0);
|
|
1159
|
-
fourthOfJanuary.setFullYear(year, 0, 4);
|
|
1160
|
-
fourthOfJanuary.setHours(0, 0, 0, 0);
|
|
1161
|
-
return startOfISOWeek(fourthOfJanuary);
|
|
1162
|
-
}
|
|
1163
|
-
function isDate(value) {
|
|
1164
|
-
return value instanceof Date || typeof value === "object" && Object.prototype.toString.call(value) === "[object Date]";
|
|
1165
|
-
}
|
|
1166
|
-
function isValid(date) {
|
|
1167
|
-
if (!isDate(date) && typeof date !== "number") {
|
|
1168
|
-
return false;
|
|
1169
|
-
}
|
|
1170
|
-
const _date = toDate(date);
|
|
1171
|
-
return !isNaN(Number(_date));
|
|
1172
|
-
}
|
|
1173
|
-
function startOfYear(date) {
|
|
1174
|
-
const cleanDate = toDate(date);
|
|
1175
|
-
const _date = constructFrom(date, 0);
|
|
1176
|
-
_date.setFullYear(cleanDate.getFullYear(), 0, 1);
|
|
1177
|
-
_date.setHours(0, 0, 0, 0);
|
|
1178
|
-
return _date;
|
|
1179
|
-
}
|
|
1180
|
-
const formatDistanceLocale = {
|
|
1181
|
-
lessThanXSeconds: {
|
|
1182
|
-
one: "less than a second",
|
|
1183
|
-
other: "less than {{count}} seconds"
|
|
1184
|
-
},
|
|
1185
|
-
xSeconds: {
|
|
1186
|
-
one: "1 second",
|
|
1187
|
-
other: "{{count}} seconds"
|
|
1188
|
-
},
|
|
1189
|
-
halfAMinute: "half a minute",
|
|
1190
|
-
lessThanXMinutes: {
|
|
1191
|
-
one: "less than a minute",
|
|
1192
|
-
other: "less than {{count}} minutes"
|
|
1193
|
-
},
|
|
1194
|
-
xMinutes: {
|
|
1195
|
-
one: "1 minute",
|
|
1196
|
-
other: "{{count}} minutes"
|
|
1197
|
-
},
|
|
1198
|
-
aboutXHours: {
|
|
1199
|
-
one: "about 1 hour",
|
|
1200
|
-
other: "about {{count}} hours"
|
|
1201
|
-
},
|
|
1202
|
-
xHours: {
|
|
1203
|
-
one: "1 hour",
|
|
1204
|
-
other: "{{count}} hours"
|
|
1205
|
-
},
|
|
1206
|
-
xDays: {
|
|
1207
|
-
one: "1 day",
|
|
1208
|
-
other: "{{count}} days"
|
|
1209
|
-
},
|
|
1210
|
-
aboutXWeeks: {
|
|
1211
|
-
one: "about 1 week",
|
|
1212
|
-
other: "about {{count}} weeks"
|
|
1213
|
-
},
|
|
1214
|
-
xWeeks: {
|
|
1215
|
-
one: "1 week",
|
|
1216
|
-
other: "{{count}} weeks"
|
|
1217
|
-
},
|
|
1218
|
-
aboutXMonths: {
|
|
1219
|
-
one: "about 1 month",
|
|
1220
|
-
other: "about {{count}} months"
|
|
1221
|
-
},
|
|
1222
|
-
xMonths: {
|
|
1223
|
-
one: "1 month",
|
|
1224
|
-
other: "{{count}} months"
|
|
1225
|
-
},
|
|
1226
|
-
aboutXYears: {
|
|
1227
|
-
one: "about 1 year",
|
|
1228
|
-
other: "about {{count}} years"
|
|
1229
|
-
},
|
|
1230
|
-
xYears: {
|
|
1231
|
-
one: "1 year",
|
|
1232
|
-
other: "{{count}} years"
|
|
1233
|
-
},
|
|
1234
|
-
overXYears: {
|
|
1235
|
-
one: "over 1 year",
|
|
1236
|
-
other: "over {{count}} years"
|
|
1237
|
-
},
|
|
1238
|
-
almostXYears: {
|
|
1239
|
-
one: "almost 1 year",
|
|
1240
|
-
other: "almost {{count}} years"
|
|
1241
|
-
}
|
|
1242
|
-
};
|
|
1243
|
-
const formatDistance = (token, count, options) => {
|
|
1244
|
-
let result;
|
|
1245
|
-
const tokenValue = formatDistanceLocale[token];
|
|
1246
|
-
if (typeof tokenValue === "string") {
|
|
1247
|
-
result = tokenValue;
|
|
1248
|
-
} else if (count === 1) {
|
|
1249
|
-
result = tokenValue.one;
|
|
1250
|
-
} else {
|
|
1251
|
-
result = tokenValue.other.replace("{{count}}", count.toString());
|
|
1252
|
-
}
|
|
1253
|
-
if (options == null ? void 0 : options.addSuffix) {
|
|
1254
|
-
if (options.comparison && options.comparison > 0) {
|
|
1255
|
-
return "in " + result;
|
|
1256
|
-
} else {
|
|
1257
|
-
return result + " ago";
|
|
1258
|
-
}
|
|
1259
|
-
}
|
|
1260
|
-
return result;
|
|
1261
|
-
};
|
|
1262
|
-
function buildFormatLongFn(args) {
|
|
1263
|
-
return (options = {}) => {
|
|
1264
|
-
const width = options.width ? String(options.width) : args.defaultWidth;
|
|
1265
|
-
const format2 = args.formats[width] || args.formats[args.defaultWidth];
|
|
1266
|
-
return format2;
|
|
1267
|
-
};
|
|
1268
|
-
}
|
|
1269
|
-
const dateFormats = {
|
|
1270
|
-
full: "EEEE, MMMM do, y",
|
|
1271
|
-
long: "MMMM do, y",
|
|
1272
|
-
medium: "MMM d, y",
|
|
1273
|
-
short: "MM/dd/yyyy"
|
|
1274
|
-
};
|
|
1275
|
-
const timeFormats = {
|
|
1276
|
-
full: "h:mm:ss a zzzz",
|
|
1277
|
-
long: "h:mm:ss a z",
|
|
1278
|
-
medium: "h:mm:ss a",
|
|
1279
|
-
short: "h:mm a"
|
|
1280
|
-
};
|
|
1281
|
-
const dateTimeFormats = {
|
|
1282
|
-
full: "{{date}} 'at' {{time}}",
|
|
1283
|
-
long: "{{date}} 'at' {{time}}",
|
|
1284
|
-
medium: "{{date}}, {{time}}",
|
|
1285
|
-
short: "{{date}}, {{time}}"
|
|
1286
|
-
};
|
|
1287
|
-
const formatLong = {
|
|
1288
|
-
date: buildFormatLongFn({
|
|
1289
|
-
formats: dateFormats,
|
|
1290
|
-
defaultWidth: "full"
|
|
1291
|
-
}),
|
|
1292
|
-
time: buildFormatLongFn({
|
|
1293
|
-
formats: timeFormats,
|
|
1294
|
-
defaultWidth: "full"
|
|
1295
|
-
}),
|
|
1296
|
-
dateTime: buildFormatLongFn({
|
|
1297
|
-
formats: dateTimeFormats,
|
|
1298
|
-
defaultWidth: "full"
|
|
1299
|
-
})
|
|
1300
|
-
};
|
|
1301
|
-
const formatRelativeLocale = {
|
|
1302
|
-
lastWeek: "'last' eeee 'at' p",
|
|
1303
|
-
yesterday: "'yesterday at' p",
|
|
1304
|
-
today: "'today at' p",
|
|
1305
|
-
tomorrow: "'tomorrow at' p",
|
|
1306
|
-
nextWeek: "eeee 'at' p",
|
|
1307
|
-
other: "P"
|
|
1308
|
-
};
|
|
1309
|
-
const formatRelative = (token, _date, _baseDate, _options) => formatRelativeLocale[token];
|
|
1310
|
-
function buildLocalizeFn(args) {
|
|
1311
|
-
return (value, options) => {
|
|
1312
|
-
const context = (options == null ? void 0 : options.context) ? String(options.context) : "standalone";
|
|
1313
|
-
let valuesArray;
|
|
1314
|
-
if (context === "formatting" && args.formattingValues) {
|
|
1315
|
-
const defaultWidth = args.defaultFormattingWidth || args.defaultWidth;
|
|
1316
|
-
const width = (options == null ? void 0 : options.width) ? String(options.width) : defaultWidth;
|
|
1317
|
-
valuesArray = args.formattingValues[width] || args.formattingValues[defaultWidth];
|
|
1318
|
-
} else {
|
|
1319
|
-
const defaultWidth = args.defaultWidth;
|
|
1320
|
-
const width = (options == null ? void 0 : options.width) ? String(options.width) : args.defaultWidth;
|
|
1321
|
-
valuesArray = args.values[width] || args.values[defaultWidth];
|
|
1322
|
-
}
|
|
1323
|
-
const index = args.argumentCallback ? args.argumentCallback(value) : value;
|
|
1324
|
-
return valuesArray[index];
|
|
1325
|
-
};
|
|
1326
|
-
}
|
|
1327
|
-
const eraValues = {
|
|
1328
|
-
narrow: ["B", "A"],
|
|
1329
|
-
abbreviated: ["BC", "AD"],
|
|
1330
|
-
wide: ["Before Christ", "Anno Domini"]
|
|
1331
|
-
};
|
|
1332
|
-
const quarterValues = {
|
|
1333
|
-
narrow: ["1", "2", "3", "4"],
|
|
1334
|
-
abbreviated: ["Q1", "Q2", "Q3", "Q4"],
|
|
1335
|
-
wide: ["1st quarter", "2nd quarter", "3rd quarter", "4th quarter"]
|
|
1336
|
-
};
|
|
1337
|
-
const monthValues = {
|
|
1338
|
-
narrow: ["J", "F", "M", "A", "M", "J", "J", "A", "S", "O", "N", "D"],
|
|
1339
|
-
abbreviated: [
|
|
1340
|
-
"Jan",
|
|
1341
|
-
"Feb",
|
|
1342
|
-
"Mar",
|
|
1343
|
-
"Apr",
|
|
1344
|
-
"May",
|
|
1345
|
-
"Jun",
|
|
1346
|
-
"Jul",
|
|
1347
|
-
"Aug",
|
|
1348
|
-
"Sep",
|
|
1349
|
-
"Oct",
|
|
1350
|
-
"Nov",
|
|
1351
|
-
"Dec"
|
|
1352
|
-
],
|
|
1353
|
-
wide: [
|
|
1354
|
-
"January",
|
|
1355
|
-
"February",
|
|
1356
|
-
"March",
|
|
1357
|
-
"April",
|
|
1358
|
-
"May",
|
|
1359
|
-
"June",
|
|
1360
|
-
"July",
|
|
1361
|
-
"August",
|
|
1362
|
-
"September",
|
|
1363
|
-
"October",
|
|
1364
|
-
"November",
|
|
1365
|
-
"December"
|
|
1366
|
-
]
|
|
1367
|
-
};
|
|
1368
|
-
const dayValues = {
|
|
1369
|
-
narrow: ["S", "M", "T", "W", "T", "F", "S"],
|
|
1370
|
-
short: ["Su", "Mo", "Tu", "We", "Th", "Fr", "Sa"],
|
|
1371
|
-
abbreviated: ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"],
|
|
1372
|
-
wide: [
|
|
1373
|
-
"Sunday",
|
|
1374
|
-
"Monday",
|
|
1375
|
-
"Tuesday",
|
|
1376
|
-
"Wednesday",
|
|
1377
|
-
"Thursday",
|
|
1378
|
-
"Friday",
|
|
1379
|
-
"Saturday"
|
|
1380
|
-
]
|
|
1381
|
-
};
|
|
1382
|
-
const dayPeriodValues = {
|
|
1383
|
-
narrow: {
|
|
1384
|
-
am: "a",
|
|
1385
|
-
pm: "p",
|
|
1386
|
-
midnight: "mi",
|
|
1387
|
-
noon: "n",
|
|
1388
|
-
morning: "morning",
|
|
1389
|
-
afternoon: "afternoon",
|
|
1390
|
-
evening: "evening",
|
|
1391
|
-
night: "night"
|
|
1392
|
-
},
|
|
1393
|
-
abbreviated: {
|
|
1394
|
-
am: "AM",
|
|
1395
|
-
pm: "PM",
|
|
1396
|
-
midnight: "midnight",
|
|
1397
|
-
noon: "noon",
|
|
1398
|
-
morning: "morning",
|
|
1399
|
-
afternoon: "afternoon",
|
|
1400
|
-
evening: "evening",
|
|
1401
|
-
night: "night"
|
|
1402
|
-
},
|
|
1403
|
-
wide: {
|
|
1404
|
-
am: "a.m.",
|
|
1405
|
-
pm: "p.m.",
|
|
1406
|
-
midnight: "midnight",
|
|
1407
|
-
noon: "noon",
|
|
1408
|
-
morning: "morning",
|
|
1409
|
-
afternoon: "afternoon",
|
|
1410
|
-
evening: "evening",
|
|
1411
|
-
night: "night"
|
|
1412
|
-
}
|
|
1413
|
-
};
|
|
1414
|
-
const formattingDayPeriodValues = {
|
|
1415
|
-
narrow: {
|
|
1416
|
-
am: "a",
|
|
1417
|
-
pm: "p",
|
|
1418
|
-
midnight: "mi",
|
|
1419
|
-
noon: "n",
|
|
1420
|
-
morning: "in the morning",
|
|
1421
|
-
afternoon: "in the afternoon",
|
|
1422
|
-
evening: "in the evening",
|
|
1423
|
-
night: "at night"
|
|
1424
|
-
},
|
|
1425
|
-
abbreviated: {
|
|
1426
|
-
am: "AM",
|
|
1427
|
-
pm: "PM",
|
|
1428
|
-
midnight: "midnight",
|
|
1429
|
-
noon: "noon",
|
|
1430
|
-
morning: "in the morning",
|
|
1431
|
-
afternoon: "in the afternoon",
|
|
1432
|
-
evening: "in the evening",
|
|
1433
|
-
night: "at night"
|
|
1434
|
-
},
|
|
1435
|
-
wide: {
|
|
1436
|
-
am: "a.m.",
|
|
1437
|
-
pm: "p.m.",
|
|
1438
|
-
midnight: "midnight",
|
|
1439
|
-
noon: "noon",
|
|
1440
|
-
morning: "in the morning",
|
|
1441
|
-
afternoon: "in the afternoon",
|
|
1442
|
-
evening: "in the evening",
|
|
1443
|
-
night: "at night"
|
|
1444
|
-
}
|
|
1445
|
-
};
|
|
1446
|
-
const ordinalNumber = (dirtyNumber, _options) => {
|
|
1447
|
-
const number = Number(dirtyNumber);
|
|
1448
|
-
const rem100 = number % 100;
|
|
1449
|
-
if (rem100 > 20 || rem100 < 10) {
|
|
1450
|
-
switch (rem100 % 10) {
|
|
1451
|
-
case 1:
|
|
1452
|
-
return number + "st";
|
|
1453
|
-
case 2:
|
|
1454
|
-
return number + "nd";
|
|
1455
|
-
case 3:
|
|
1456
|
-
return number + "rd";
|
|
1457
|
-
}
|
|
1458
|
-
}
|
|
1459
|
-
return number + "th";
|
|
1460
|
-
};
|
|
1461
|
-
const localize = {
|
|
1462
|
-
ordinalNumber,
|
|
1463
|
-
era: buildLocalizeFn({
|
|
1464
|
-
values: eraValues,
|
|
1465
|
-
defaultWidth: "wide"
|
|
1466
|
-
}),
|
|
1467
|
-
quarter: buildLocalizeFn({
|
|
1468
|
-
values: quarterValues,
|
|
1469
|
-
defaultWidth: "wide",
|
|
1470
|
-
argumentCallback: (quarter) => quarter - 1
|
|
1471
|
-
}),
|
|
1472
|
-
month: buildLocalizeFn({
|
|
1473
|
-
values: monthValues,
|
|
1474
|
-
defaultWidth: "wide"
|
|
1475
|
-
}),
|
|
1476
|
-
day: buildLocalizeFn({
|
|
1477
|
-
values: dayValues,
|
|
1478
|
-
defaultWidth: "wide"
|
|
1479
|
-
}),
|
|
1480
|
-
dayPeriod: buildLocalizeFn({
|
|
1481
|
-
values: dayPeriodValues,
|
|
1482
|
-
defaultWidth: "wide",
|
|
1483
|
-
formattingValues: formattingDayPeriodValues,
|
|
1484
|
-
defaultFormattingWidth: "wide"
|
|
1485
|
-
})
|
|
1486
|
-
};
|
|
1487
|
-
function buildMatchFn(args) {
|
|
1488
|
-
return (string, options = {}) => {
|
|
1489
|
-
const width = options.width;
|
|
1490
|
-
const matchPattern = width && args.matchPatterns[width] || args.matchPatterns[args.defaultMatchWidth];
|
|
1491
|
-
const matchResult = string.match(matchPattern);
|
|
1492
|
-
if (!matchResult) {
|
|
1493
|
-
return null;
|
|
1494
|
-
}
|
|
1495
|
-
const matchedString = matchResult[0];
|
|
1496
|
-
const parsePatterns = width && args.parsePatterns[width] || args.parsePatterns[args.defaultParseWidth];
|
|
1497
|
-
const key = Array.isArray(parsePatterns) ? findIndex(parsePatterns, (pattern) => pattern.test(matchedString)) : (
|
|
1498
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any -- I challange you to fix the type
|
|
1499
|
-
findKey(parsePatterns, (pattern) => pattern.test(matchedString))
|
|
1500
|
-
);
|
|
1501
|
-
let value;
|
|
1502
|
-
value = args.valueCallback ? args.valueCallback(key) : key;
|
|
1503
|
-
value = options.valueCallback ? (
|
|
1504
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any -- I challange you to fix the type
|
|
1505
|
-
options.valueCallback(value)
|
|
1506
|
-
) : value;
|
|
1507
|
-
const rest = string.slice(matchedString.length);
|
|
1508
|
-
return { value, rest };
|
|
1509
|
-
};
|
|
1510
|
-
}
|
|
1511
|
-
function findKey(object, predicate) {
|
|
1512
|
-
for (const key in object) {
|
|
1513
|
-
if (Object.prototype.hasOwnProperty.call(object, key) && predicate(object[key])) {
|
|
1514
|
-
return key;
|
|
1515
|
-
}
|
|
1516
|
-
}
|
|
1517
|
-
return void 0;
|
|
1518
|
-
}
|
|
1519
|
-
function findIndex(array, predicate) {
|
|
1520
|
-
for (let key = 0; key < array.length; key++) {
|
|
1521
|
-
if (predicate(array[key])) {
|
|
1522
|
-
return key;
|
|
1523
|
-
}
|
|
1524
|
-
}
|
|
1525
|
-
return void 0;
|
|
1526
|
-
}
|
|
1527
|
-
function buildMatchPatternFn(args) {
|
|
1528
|
-
return (string, options = {}) => {
|
|
1529
|
-
const matchResult = string.match(args.matchPattern);
|
|
1530
|
-
if (!matchResult) return null;
|
|
1531
|
-
const matchedString = matchResult[0];
|
|
1532
|
-
const parseResult = string.match(args.parsePattern);
|
|
1533
|
-
if (!parseResult) return null;
|
|
1534
|
-
let value = args.valueCallback ? args.valueCallback(parseResult[0]) : parseResult[0];
|
|
1535
|
-
value = options.valueCallback ? options.valueCallback(value) : value;
|
|
1536
|
-
const rest = string.slice(matchedString.length);
|
|
1537
|
-
return { value, rest };
|
|
1538
|
-
};
|
|
1539
|
-
}
|
|
1540
|
-
const matchOrdinalNumberPattern = /^(\d+)(th|st|nd|rd)?/i;
|
|
1541
|
-
const parseOrdinalNumberPattern = /\d+/i;
|
|
1542
|
-
const matchEraPatterns = {
|
|
1543
|
-
narrow: /^(b|a)/i,
|
|
1544
|
-
abbreviated: /^(b\.?\s?c\.?|b\.?\s?c\.?\s?e\.?|a\.?\s?d\.?|c\.?\s?e\.?)/i,
|
|
1545
|
-
wide: /^(before christ|before common era|anno domini|common era)/i
|
|
1546
|
-
};
|
|
1547
|
-
const parseEraPatterns = {
|
|
1548
|
-
any: [/^b/i, /^(a|c)/i]
|
|
1549
|
-
};
|
|
1550
|
-
const matchQuarterPatterns = {
|
|
1551
|
-
narrow: /^[1234]/i,
|
|
1552
|
-
abbreviated: /^q[1234]/i,
|
|
1553
|
-
wide: /^[1234](th|st|nd|rd)? quarter/i
|
|
1554
|
-
};
|
|
1555
|
-
const parseQuarterPatterns = {
|
|
1556
|
-
any: [/1/i, /2/i, /3/i, /4/i]
|
|
1557
|
-
};
|
|
1558
|
-
const matchMonthPatterns = {
|
|
1559
|
-
narrow: /^[jfmasond]/i,
|
|
1560
|
-
abbreviated: /^(jan|feb|mar|apr|may|jun|jul|aug|sep|oct|nov|dec)/i,
|
|
1561
|
-
wide: /^(january|february|march|april|may|june|july|august|september|october|november|december)/i
|
|
1562
|
-
};
|
|
1563
|
-
const parseMonthPatterns = {
|
|
1564
|
-
narrow: [
|
|
1565
|
-
/^j/i,
|
|
1566
|
-
/^f/i,
|
|
1567
|
-
/^m/i,
|
|
1568
|
-
/^a/i,
|
|
1569
|
-
/^m/i,
|
|
1570
|
-
/^j/i,
|
|
1571
|
-
/^j/i,
|
|
1572
|
-
/^a/i,
|
|
1573
|
-
/^s/i,
|
|
1574
|
-
/^o/i,
|
|
1575
|
-
/^n/i,
|
|
1576
|
-
/^d/i
|
|
1577
|
-
],
|
|
1578
|
-
any: [
|
|
1579
|
-
/^ja/i,
|
|
1580
|
-
/^f/i,
|
|
1581
|
-
/^mar/i,
|
|
1582
|
-
/^ap/i,
|
|
1583
|
-
/^may/i,
|
|
1584
|
-
/^jun/i,
|
|
1585
|
-
/^jul/i,
|
|
1586
|
-
/^au/i,
|
|
1587
|
-
/^s/i,
|
|
1588
|
-
/^o/i,
|
|
1589
|
-
/^n/i,
|
|
1590
|
-
/^d/i
|
|
1591
|
-
]
|
|
1592
|
-
};
|
|
1593
|
-
const matchDayPatterns = {
|
|
1594
|
-
narrow: /^[smtwf]/i,
|
|
1595
|
-
short: /^(su|mo|tu|we|th|fr|sa)/i,
|
|
1596
|
-
abbreviated: /^(sun|mon|tue|wed|thu|fri|sat)/i,
|
|
1597
|
-
wide: /^(sunday|monday|tuesday|wednesday|thursday|friday|saturday)/i
|
|
1598
|
-
};
|
|
1599
|
-
const parseDayPatterns = {
|
|
1600
|
-
narrow: [/^s/i, /^m/i, /^t/i, /^w/i, /^t/i, /^f/i, /^s/i],
|
|
1601
|
-
any: [/^su/i, /^m/i, /^tu/i, /^w/i, /^th/i, /^f/i, /^sa/i]
|
|
1602
|
-
};
|
|
1603
|
-
const matchDayPeriodPatterns = {
|
|
1604
|
-
narrow: /^(a|p|mi|n|(in the|at) (morning|afternoon|evening|night))/i,
|
|
1605
|
-
any: /^([ap]\.?\s?m\.?|midnight|noon|(in the|at) (morning|afternoon|evening|night))/i
|
|
1606
|
-
};
|
|
1607
|
-
const parseDayPeriodPatterns = {
|
|
1608
|
-
any: {
|
|
1609
|
-
am: /^a/i,
|
|
1610
|
-
pm: /^p/i,
|
|
1611
|
-
midnight: /^mi/i,
|
|
1612
|
-
noon: /^no/i,
|
|
1613
|
-
morning: /morning/i,
|
|
1614
|
-
afternoon: /afternoon/i,
|
|
1615
|
-
evening: /evening/i,
|
|
1616
|
-
night: /night/i
|
|
1617
|
-
}
|
|
1618
|
-
};
|
|
1619
|
-
const match = {
|
|
1620
|
-
ordinalNumber: buildMatchPatternFn({
|
|
1621
|
-
matchPattern: matchOrdinalNumberPattern,
|
|
1622
|
-
parsePattern: parseOrdinalNumberPattern,
|
|
1623
|
-
valueCallback: (value) => parseInt(value, 10)
|
|
1624
|
-
}),
|
|
1625
|
-
era: buildMatchFn({
|
|
1626
|
-
matchPatterns: matchEraPatterns,
|
|
1627
|
-
defaultMatchWidth: "wide",
|
|
1628
|
-
parsePatterns: parseEraPatterns,
|
|
1629
|
-
defaultParseWidth: "any"
|
|
1630
|
-
}),
|
|
1631
|
-
quarter: buildMatchFn({
|
|
1632
|
-
matchPatterns: matchQuarterPatterns,
|
|
1633
|
-
defaultMatchWidth: "wide",
|
|
1634
|
-
parsePatterns: parseQuarterPatterns,
|
|
1635
|
-
defaultParseWidth: "any",
|
|
1636
|
-
valueCallback: (index) => index + 1
|
|
1637
|
-
}),
|
|
1638
|
-
month: buildMatchFn({
|
|
1639
|
-
matchPatterns: matchMonthPatterns,
|
|
1640
|
-
defaultMatchWidth: "wide",
|
|
1641
|
-
parsePatterns: parseMonthPatterns,
|
|
1642
|
-
defaultParseWidth: "any"
|
|
1643
|
-
}),
|
|
1644
|
-
day: buildMatchFn({
|
|
1645
|
-
matchPatterns: matchDayPatterns,
|
|
1646
|
-
defaultMatchWidth: "wide",
|
|
1647
|
-
parsePatterns: parseDayPatterns,
|
|
1648
|
-
defaultParseWidth: "any"
|
|
1649
|
-
}),
|
|
1650
|
-
dayPeriod: buildMatchFn({
|
|
1651
|
-
matchPatterns: matchDayPeriodPatterns,
|
|
1652
|
-
defaultMatchWidth: "any",
|
|
1653
|
-
parsePatterns: parseDayPeriodPatterns,
|
|
1654
|
-
defaultParseWidth: "any"
|
|
1655
|
-
})
|
|
1656
|
-
};
|
|
1657
|
-
const enUS = {
|
|
1658
|
-
code: "en-US",
|
|
1659
|
-
formatDistance,
|
|
1660
|
-
formatLong,
|
|
1661
|
-
formatRelative,
|
|
1662
|
-
localize,
|
|
1663
|
-
match,
|
|
1664
|
-
options: {
|
|
1665
|
-
weekStartsOn: 0,
|
|
1666
|
-
firstWeekContainsDate: 1
|
|
1667
|
-
}
|
|
1668
|
-
};
|
|
1669
|
-
function getDayOfYear(date) {
|
|
1670
|
-
const _date = toDate(date);
|
|
1671
|
-
const diff = differenceInCalendarDays(_date, startOfYear(_date));
|
|
1672
|
-
const dayOfYear = diff + 1;
|
|
1673
|
-
return dayOfYear;
|
|
1674
|
-
}
|
|
1675
|
-
function getISOWeek(date) {
|
|
1676
|
-
const _date = toDate(date);
|
|
1677
|
-
const diff = +startOfISOWeek(_date) - +startOfISOWeekYear(_date);
|
|
1678
|
-
return Math.round(diff / millisecondsInWeek) + 1;
|
|
1679
|
-
}
|
|
1680
|
-
function getWeekYear(date, options) {
|
|
1681
|
-
var _a, _b, _c, _d;
|
|
1682
|
-
const _date = toDate(date);
|
|
1683
|
-
const year = _date.getFullYear();
|
|
1684
|
-
const defaultOptions2 = getDefaultOptions();
|
|
1685
|
-
const firstWeekContainsDate = (options == null ? void 0 : options.firstWeekContainsDate) ?? ((_b = (_a = options == null ? void 0 : options.locale) == null ? void 0 : _a.options) == null ? void 0 : _b.firstWeekContainsDate) ?? defaultOptions2.firstWeekContainsDate ?? ((_d = (_c = defaultOptions2.locale) == null ? void 0 : _c.options) == null ? void 0 : _d.firstWeekContainsDate) ?? 1;
|
|
1686
|
-
const firstWeekOfNextYear = constructFrom(date, 0);
|
|
1687
|
-
firstWeekOfNextYear.setFullYear(year + 1, 0, firstWeekContainsDate);
|
|
1688
|
-
firstWeekOfNextYear.setHours(0, 0, 0, 0);
|
|
1689
|
-
const startOfNextYear = startOfWeek(firstWeekOfNextYear, options);
|
|
1690
|
-
const firstWeekOfThisYear = constructFrom(date, 0);
|
|
1691
|
-
firstWeekOfThisYear.setFullYear(year, 0, firstWeekContainsDate);
|
|
1692
|
-
firstWeekOfThisYear.setHours(0, 0, 0, 0);
|
|
1693
|
-
const startOfThisYear = startOfWeek(firstWeekOfThisYear, options);
|
|
1694
|
-
if (_date.getTime() >= startOfNextYear.getTime()) {
|
|
1695
|
-
return year + 1;
|
|
1696
|
-
} else if (_date.getTime() >= startOfThisYear.getTime()) {
|
|
1697
|
-
return year;
|
|
1698
|
-
} else {
|
|
1699
|
-
return year - 1;
|
|
1700
|
-
}
|
|
1701
|
-
}
|
|
1702
|
-
function startOfWeekYear(date, options) {
|
|
1703
|
-
var _a, _b, _c, _d;
|
|
1704
|
-
const defaultOptions2 = getDefaultOptions();
|
|
1705
|
-
const firstWeekContainsDate = (options == null ? void 0 : options.firstWeekContainsDate) ?? ((_b = (_a = options == null ? void 0 : options.locale) == null ? void 0 : _a.options) == null ? void 0 : _b.firstWeekContainsDate) ?? defaultOptions2.firstWeekContainsDate ?? ((_d = (_c = defaultOptions2.locale) == null ? void 0 : _c.options) == null ? void 0 : _d.firstWeekContainsDate) ?? 1;
|
|
1706
|
-
const year = getWeekYear(date, options);
|
|
1707
|
-
const firstWeek = constructFrom(date, 0);
|
|
1708
|
-
firstWeek.setFullYear(year, 0, firstWeekContainsDate);
|
|
1709
|
-
firstWeek.setHours(0, 0, 0, 0);
|
|
1710
|
-
const _date = startOfWeek(firstWeek, options);
|
|
1711
|
-
return _date;
|
|
1712
|
-
}
|
|
1713
|
-
function getWeek(date, options) {
|
|
1714
|
-
const _date = toDate(date);
|
|
1715
|
-
const diff = +startOfWeek(_date, options) - +startOfWeekYear(_date, options);
|
|
1716
|
-
return Math.round(diff / millisecondsInWeek) + 1;
|
|
1717
|
-
}
|
|
1718
|
-
function addLeadingZeros(number, targetLength) {
|
|
1719
|
-
const sign = number < 0 ? "-" : "";
|
|
1720
|
-
const output = Math.abs(number).toString().padStart(targetLength, "0");
|
|
1721
|
-
return sign + output;
|
|
1722
|
-
}
|
|
1723
|
-
const lightFormatters = {
|
|
1724
|
-
// Year
|
|
1725
|
-
y(date, token) {
|
|
1726
|
-
const signedYear = date.getFullYear();
|
|
1727
|
-
const year = signedYear > 0 ? signedYear : 1 - signedYear;
|
|
1728
|
-
return addLeadingZeros(token === "yy" ? year % 100 : year, token.length);
|
|
1729
|
-
},
|
|
1730
|
-
// Month
|
|
1731
|
-
M(date, token) {
|
|
1732
|
-
const month = date.getMonth();
|
|
1733
|
-
return token === "M" ? String(month + 1) : addLeadingZeros(month + 1, 2);
|
|
1734
|
-
},
|
|
1735
|
-
// Day of the month
|
|
1736
|
-
d(date, token) {
|
|
1737
|
-
return addLeadingZeros(date.getDate(), token.length);
|
|
1738
|
-
},
|
|
1739
|
-
// AM or PM
|
|
1740
|
-
a(date, token) {
|
|
1741
|
-
const dayPeriodEnumValue = date.getHours() / 12 >= 1 ? "pm" : "am";
|
|
1742
|
-
switch (token) {
|
|
1743
|
-
case "a":
|
|
1744
|
-
case "aa":
|
|
1745
|
-
return dayPeriodEnumValue.toUpperCase();
|
|
1746
|
-
case "aaa":
|
|
1747
|
-
return dayPeriodEnumValue;
|
|
1748
|
-
case "aaaaa":
|
|
1749
|
-
return dayPeriodEnumValue[0];
|
|
1750
|
-
case "aaaa":
|
|
1751
|
-
default:
|
|
1752
|
-
return dayPeriodEnumValue === "am" ? "a.m." : "p.m.";
|
|
1753
|
-
}
|
|
1754
|
-
},
|
|
1755
|
-
// Hour [1-12]
|
|
1756
|
-
h(date, token) {
|
|
1757
|
-
return addLeadingZeros(date.getHours() % 12 || 12, token.length);
|
|
1758
|
-
},
|
|
1759
|
-
// Hour [0-23]
|
|
1760
|
-
H(date, token) {
|
|
1761
|
-
return addLeadingZeros(date.getHours(), token.length);
|
|
1762
|
-
},
|
|
1763
|
-
// Minute
|
|
1764
|
-
m(date, token) {
|
|
1765
|
-
return addLeadingZeros(date.getMinutes(), token.length);
|
|
1766
|
-
},
|
|
1767
|
-
// Second
|
|
1768
|
-
s(date, token) {
|
|
1769
|
-
return addLeadingZeros(date.getSeconds(), token.length);
|
|
1770
|
-
},
|
|
1771
|
-
// Fraction of second
|
|
1772
|
-
S(date, token) {
|
|
1773
|
-
const numberOfDigits = token.length;
|
|
1774
|
-
const milliseconds = date.getMilliseconds();
|
|
1775
|
-
const fractionalSeconds = Math.trunc(
|
|
1776
|
-
milliseconds * Math.pow(10, numberOfDigits - 3)
|
|
1777
|
-
);
|
|
1778
|
-
return addLeadingZeros(fractionalSeconds, token.length);
|
|
1779
|
-
}
|
|
1780
|
-
};
|
|
1781
|
-
const dayPeriodEnum = {
|
|
1782
|
-
midnight: "midnight",
|
|
1783
|
-
noon: "noon",
|
|
1784
|
-
morning: "morning",
|
|
1785
|
-
afternoon: "afternoon",
|
|
1786
|
-
evening: "evening",
|
|
1787
|
-
night: "night"
|
|
1788
|
-
};
|
|
1789
|
-
const formatters = {
|
|
1790
|
-
// Era
|
|
1791
|
-
G: function(date, token, localize2) {
|
|
1792
|
-
const era = date.getFullYear() > 0 ? 1 : 0;
|
|
1793
|
-
switch (token) {
|
|
1794
|
-
// AD, BC
|
|
1795
|
-
case "G":
|
|
1796
|
-
case "GG":
|
|
1797
|
-
case "GGG":
|
|
1798
|
-
return localize2.era(era, { width: "abbreviated" });
|
|
1799
|
-
// A, B
|
|
1800
|
-
case "GGGGG":
|
|
1801
|
-
return localize2.era(era, { width: "narrow" });
|
|
1802
|
-
// Anno Domini, Before Christ
|
|
1803
|
-
case "GGGG":
|
|
1804
|
-
default:
|
|
1805
|
-
return localize2.era(era, { width: "wide" });
|
|
1806
|
-
}
|
|
1807
|
-
},
|
|
1808
|
-
// Year
|
|
1809
|
-
y: function(date, token, localize2) {
|
|
1810
|
-
if (token === "yo") {
|
|
1811
|
-
const signedYear = date.getFullYear();
|
|
1812
|
-
const year = signedYear > 0 ? signedYear : 1 - signedYear;
|
|
1813
|
-
return localize2.ordinalNumber(year, { unit: "year" });
|
|
1814
|
-
}
|
|
1815
|
-
return lightFormatters.y(date, token);
|
|
1816
|
-
},
|
|
1817
|
-
// Local week-numbering year
|
|
1818
|
-
Y: function(date, token, localize2, options) {
|
|
1819
|
-
const signedWeekYear = getWeekYear(date, options);
|
|
1820
|
-
const weekYear = signedWeekYear > 0 ? signedWeekYear : 1 - signedWeekYear;
|
|
1821
|
-
if (token === "YY") {
|
|
1822
|
-
const twoDigitYear = weekYear % 100;
|
|
1823
|
-
return addLeadingZeros(twoDigitYear, 2);
|
|
1824
|
-
}
|
|
1825
|
-
if (token === "Yo") {
|
|
1826
|
-
return localize2.ordinalNumber(weekYear, { unit: "year" });
|
|
1827
|
-
}
|
|
1828
|
-
return addLeadingZeros(weekYear, token.length);
|
|
1829
|
-
},
|
|
1830
|
-
// ISO week-numbering year
|
|
1831
|
-
R: function(date, token) {
|
|
1832
|
-
const isoWeekYear = getISOWeekYear(date);
|
|
1833
|
-
return addLeadingZeros(isoWeekYear, token.length);
|
|
1834
|
-
},
|
|
1835
|
-
// Extended year. This is a single number designating the year of this calendar system.
|
|
1836
|
-
// The main difference between `y` and `u` localizers are B.C. years:
|
|
1837
|
-
// | Year | `y` | `u` |
|
|
1838
|
-
// |------|-----|-----|
|
|
1839
|
-
// | AC 1 | 1 | 1 |
|
|
1840
|
-
// | BC 1 | 1 | 0 |
|
|
1841
|
-
// | BC 2 | 2 | -1 |
|
|
1842
|
-
// Also `yy` always returns the last two digits of a year,
|
|
1843
|
-
// while `uu` pads single digit years to 2 characters and returns other years unchanged.
|
|
1844
|
-
u: function(date, token) {
|
|
1845
|
-
const year = date.getFullYear();
|
|
1846
|
-
return addLeadingZeros(year, token.length);
|
|
1847
|
-
},
|
|
1848
|
-
// Quarter
|
|
1849
|
-
Q: function(date, token, localize2) {
|
|
1850
|
-
const quarter = Math.ceil((date.getMonth() + 1) / 3);
|
|
1851
|
-
switch (token) {
|
|
1852
|
-
// 1, 2, 3, 4
|
|
1853
|
-
case "Q":
|
|
1854
|
-
return String(quarter);
|
|
1855
|
-
// 01, 02, 03, 04
|
|
1856
|
-
case "QQ":
|
|
1857
|
-
return addLeadingZeros(quarter, 2);
|
|
1858
|
-
// 1st, 2nd, 3rd, 4th
|
|
1859
|
-
case "Qo":
|
|
1860
|
-
return localize2.ordinalNumber(quarter, { unit: "quarter" });
|
|
1861
|
-
// Q1, Q2, Q3, Q4
|
|
1862
|
-
case "QQQ":
|
|
1863
|
-
return localize2.quarter(quarter, {
|
|
1864
|
-
width: "abbreviated",
|
|
1865
|
-
context: "formatting"
|
|
1866
|
-
});
|
|
1867
|
-
// 1, 2, 3, 4 (narrow quarter; could be not numerical)
|
|
1868
|
-
case "QQQQQ":
|
|
1869
|
-
return localize2.quarter(quarter, {
|
|
1870
|
-
width: "narrow",
|
|
1871
|
-
context: "formatting"
|
|
1872
|
-
});
|
|
1873
|
-
// 1st quarter, 2nd quarter, ...
|
|
1874
|
-
case "QQQQ":
|
|
1875
|
-
default:
|
|
1876
|
-
return localize2.quarter(quarter, {
|
|
1877
|
-
width: "wide",
|
|
1878
|
-
context: "formatting"
|
|
1879
|
-
});
|
|
1880
|
-
}
|
|
1881
|
-
},
|
|
1882
|
-
// Stand-alone quarter
|
|
1883
|
-
q: function(date, token, localize2) {
|
|
1884
|
-
const quarter = Math.ceil((date.getMonth() + 1) / 3);
|
|
1885
|
-
switch (token) {
|
|
1886
|
-
// 1, 2, 3, 4
|
|
1887
|
-
case "q":
|
|
1888
|
-
return String(quarter);
|
|
1889
|
-
// 01, 02, 03, 04
|
|
1890
|
-
case "qq":
|
|
1891
|
-
return addLeadingZeros(quarter, 2);
|
|
1892
|
-
// 1st, 2nd, 3rd, 4th
|
|
1893
|
-
case "qo":
|
|
1894
|
-
return localize2.ordinalNumber(quarter, { unit: "quarter" });
|
|
1895
|
-
// Q1, Q2, Q3, Q4
|
|
1896
|
-
case "qqq":
|
|
1897
|
-
return localize2.quarter(quarter, {
|
|
1898
|
-
width: "abbreviated",
|
|
1899
|
-
context: "standalone"
|
|
1900
|
-
});
|
|
1901
|
-
// 1, 2, 3, 4 (narrow quarter; could be not numerical)
|
|
1902
|
-
case "qqqqq":
|
|
1903
|
-
return localize2.quarter(quarter, {
|
|
1904
|
-
width: "narrow",
|
|
1905
|
-
context: "standalone"
|
|
1906
|
-
});
|
|
1907
|
-
// 1st quarter, 2nd quarter, ...
|
|
1908
|
-
case "qqqq":
|
|
1909
|
-
default:
|
|
1910
|
-
return localize2.quarter(quarter, {
|
|
1911
|
-
width: "wide",
|
|
1912
|
-
context: "standalone"
|
|
1913
|
-
});
|
|
1914
|
-
}
|
|
1915
|
-
},
|
|
1916
|
-
// Month
|
|
1917
|
-
M: function(date, token, localize2) {
|
|
1918
|
-
const month = date.getMonth();
|
|
1919
|
-
switch (token) {
|
|
1920
|
-
case "M":
|
|
1921
|
-
case "MM":
|
|
1922
|
-
return lightFormatters.M(date, token);
|
|
1923
|
-
// 1st, 2nd, ..., 12th
|
|
1924
|
-
case "Mo":
|
|
1925
|
-
return localize2.ordinalNumber(month + 1, { unit: "month" });
|
|
1926
|
-
// Jan, Feb, ..., Dec
|
|
1927
|
-
case "MMM":
|
|
1928
|
-
return localize2.month(month, {
|
|
1929
|
-
width: "abbreviated",
|
|
1930
|
-
context: "formatting"
|
|
1931
|
-
});
|
|
1932
|
-
// J, F, ..., D
|
|
1933
|
-
case "MMMMM":
|
|
1934
|
-
return localize2.month(month, {
|
|
1935
|
-
width: "narrow",
|
|
1936
|
-
context: "formatting"
|
|
1937
|
-
});
|
|
1938
|
-
// January, February, ..., December
|
|
1939
|
-
case "MMMM":
|
|
1940
|
-
default:
|
|
1941
|
-
return localize2.month(month, { width: "wide", context: "formatting" });
|
|
1942
|
-
}
|
|
1943
|
-
},
|
|
1944
|
-
// Stand-alone month
|
|
1945
|
-
L: function(date, token, localize2) {
|
|
1946
|
-
const month = date.getMonth();
|
|
1947
|
-
switch (token) {
|
|
1948
|
-
// 1, 2, ..., 12
|
|
1949
|
-
case "L":
|
|
1950
|
-
return String(month + 1);
|
|
1951
|
-
// 01, 02, ..., 12
|
|
1952
|
-
case "LL":
|
|
1953
|
-
return addLeadingZeros(month + 1, 2);
|
|
1954
|
-
// 1st, 2nd, ..., 12th
|
|
1955
|
-
case "Lo":
|
|
1956
|
-
return localize2.ordinalNumber(month + 1, { unit: "month" });
|
|
1957
|
-
// Jan, Feb, ..., Dec
|
|
1958
|
-
case "LLL":
|
|
1959
|
-
return localize2.month(month, {
|
|
1960
|
-
width: "abbreviated",
|
|
1961
|
-
context: "standalone"
|
|
1962
|
-
});
|
|
1963
|
-
// J, F, ..., D
|
|
1964
|
-
case "LLLLL":
|
|
1965
|
-
return localize2.month(month, {
|
|
1966
|
-
width: "narrow",
|
|
1967
|
-
context: "standalone"
|
|
1968
|
-
});
|
|
1969
|
-
// January, February, ..., December
|
|
1970
|
-
case "LLLL":
|
|
1971
|
-
default:
|
|
1972
|
-
return localize2.month(month, { width: "wide", context: "standalone" });
|
|
1973
|
-
}
|
|
1974
|
-
},
|
|
1975
|
-
// Local week of year
|
|
1976
|
-
w: function(date, token, localize2, options) {
|
|
1977
|
-
const week = getWeek(date, options);
|
|
1978
|
-
if (token === "wo") {
|
|
1979
|
-
return localize2.ordinalNumber(week, { unit: "week" });
|
|
1980
|
-
}
|
|
1981
|
-
return addLeadingZeros(week, token.length);
|
|
1982
|
-
},
|
|
1983
|
-
// ISO week of year
|
|
1984
|
-
I: function(date, token, localize2) {
|
|
1985
|
-
const isoWeek = getISOWeek(date);
|
|
1986
|
-
if (token === "Io") {
|
|
1987
|
-
return localize2.ordinalNumber(isoWeek, { unit: "week" });
|
|
1988
|
-
}
|
|
1989
|
-
return addLeadingZeros(isoWeek, token.length);
|
|
1990
|
-
},
|
|
1991
|
-
// Day of the month
|
|
1992
|
-
d: function(date, token, localize2) {
|
|
1993
|
-
if (token === "do") {
|
|
1994
|
-
return localize2.ordinalNumber(date.getDate(), { unit: "date" });
|
|
1995
|
-
}
|
|
1996
|
-
return lightFormatters.d(date, token);
|
|
1997
|
-
},
|
|
1998
|
-
// Day of year
|
|
1999
|
-
D: function(date, token, localize2) {
|
|
2000
|
-
const dayOfYear = getDayOfYear(date);
|
|
2001
|
-
if (token === "Do") {
|
|
2002
|
-
return localize2.ordinalNumber(dayOfYear, { unit: "dayOfYear" });
|
|
2003
|
-
}
|
|
2004
|
-
return addLeadingZeros(dayOfYear, token.length);
|
|
2005
|
-
},
|
|
2006
|
-
// Day of week
|
|
2007
|
-
E: function(date, token, localize2) {
|
|
2008
|
-
const dayOfWeek = date.getDay();
|
|
2009
|
-
switch (token) {
|
|
2010
|
-
// Tue
|
|
2011
|
-
case "E":
|
|
2012
|
-
case "EE":
|
|
2013
|
-
case "EEE":
|
|
2014
|
-
return localize2.day(dayOfWeek, {
|
|
2015
|
-
width: "abbreviated",
|
|
2016
|
-
context: "formatting"
|
|
2017
|
-
});
|
|
2018
|
-
// T
|
|
2019
|
-
case "EEEEE":
|
|
2020
|
-
return localize2.day(dayOfWeek, {
|
|
2021
|
-
width: "narrow",
|
|
2022
|
-
context: "formatting"
|
|
2023
|
-
});
|
|
2024
|
-
// Tu
|
|
2025
|
-
case "EEEEEE":
|
|
2026
|
-
return localize2.day(dayOfWeek, {
|
|
2027
|
-
width: "short",
|
|
2028
|
-
context: "formatting"
|
|
2029
|
-
});
|
|
2030
|
-
// Tuesday
|
|
2031
|
-
case "EEEE":
|
|
2032
|
-
default:
|
|
2033
|
-
return localize2.day(dayOfWeek, {
|
|
2034
|
-
width: "wide",
|
|
2035
|
-
context: "formatting"
|
|
2036
|
-
});
|
|
2037
|
-
}
|
|
2038
|
-
},
|
|
2039
|
-
// Local day of week
|
|
2040
|
-
e: function(date, token, localize2, options) {
|
|
2041
|
-
const dayOfWeek = date.getDay();
|
|
2042
|
-
const localDayOfWeek = (dayOfWeek - options.weekStartsOn + 8) % 7 || 7;
|
|
2043
|
-
switch (token) {
|
|
2044
|
-
// Numerical value (Nth day of week with current locale or weekStartsOn)
|
|
2045
|
-
case "e":
|
|
2046
|
-
return String(localDayOfWeek);
|
|
2047
|
-
// Padded numerical value
|
|
2048
|
-
case "ee":
|
|
2049
|
-
return addLeadingZeros(localDayOfWeek, 2);
|
|
2050
|
-
// 1st, 2nd, ..., 7th
|
|
2051
|
-
case "eo":
|
|
2052
|
-
return localize2.ordinalNumber(localDayOfWeek, { unit: "day" });
|
|
2053
|
-
case "eee":
|
|
2054
|
-
return localize2.day(dayOfWeek, {
|
|
2055
|
-
width: "abbreviated",
|
|
2056
|
-
context: "formatting"
|
|
2057
|
-
});
|
|
2058
|
-
// T
|
|
2059
|
-
case "eeeee":
|
|
2060
|
-
return localize2.day(dayOfWeek, {
|
|
2061
|
-
width: "narrow",
|
|
2062
|
-
context: "formatting"
|
|
2063
|
-
});
|
|
2064
|
-
// Tu
|
|
2065
|
-
case "eeeeee":
|
|
2066
|
-
return localize2.day(dayOfWeek, {
|
|
2067
|
-
width: "short",
|
|
2068
|
-
context: "formatting"
|
|
2069
|
-
});
|
|
2070
|
-
// Tuesday
|
|
2071
|
-
case "eeee":
|
|
2072
|
-
default:
|
|
2073
|
-
return localize2.day(dayOfWeek, {
|
|
2074
|
-
width: "wide",
|
|
2075
|
-
context: "formatting"
|
|
2076
|
-
});
|
|
2077
|
-
}
|
|
2078
|
-
},
|
|
2079
|
-
// Stand-alone local day of week
|
|
2080
|
-
c: function(date, token, localize2, options) {
|
|
2081
|
-
const dayOfWeek = date.getDay();
|
|
2082
|
-
const localDayOfWeek = (dayOfWeek - options.weekStartsOn + 8) % 7 || 7;
|
|
2083
|
-
switch (token) {
|
|
2084
|
-
// Numerical value (same as in `e`)
|
|
2085
|
-
case "c":
|
|
2086
|
-
return String(localDayOfWeek);
|
|
2087
|
-
// Padded numerical value
|
|
2088
|
-
case "cc":
|
|
2089
|
-
return addLeadingZeros(localDayOfWeek, token.length);
|
|
2090
|
-
// 1st, 2nd, ..., 7th
|
|
2091
|
-
case "co":
|
|
2092
|
-
return localize2.ordinalNumber(localDayOfWeek, { unit: "day" });
|
|
2093
|
-
case "ccc":
|
|
2094
|
-
return localize2.day(dayOfWeek, {
|
|
2095
|
-
width: "abbreviated",
|
|
2096
|
-
context: "standalone"
|
|
2097
|
-
});
|
|
2098
|
-
// T
|
|
2099
|
-
case "ccccc":
|
|
2100
|
-
return localize2.day(dayOfWeek, {
|
|
2101
|
-
width: "narrow",
|
|
2102
|
-
context: "standalone"
|
|
2103
|
-
});
|
|
2104
|
-
// Tu
|
|
2105
|
-
case "cccccc":
|
|
2106
|
-
return localize2.day(dayOfWeek, {
|
|
2107
|
-
width: "short",
|
|
2108
|
-
context: "standalone"
|
|
2109
|
-
});
|
|
2110
|
-
// Tuesday
|
|
2111
|
-
case "cccc":
|
|
2112
|
-
default:
|
|
2113
|
-
return localize2.day(dayOfWeek, {
|
|
2114
|
-
width: "wide",
|
|
2115
|
-
context: "standalone"
|
|
2116
|
-
});
|
|
2117
|
-
}
|
|
2118
|
-
},
|
|
2119
|
-
// ISO day of week
|
|
2120
|
-
i: function(date, token, localize2) {
|
|
2121
|
-
const dayOfWeek = date.getDay();
|
|
2122
|
-
const isoDayOfWeek = dayOfWeek === 0 ? 7 : dayOfWeek;
|
|
2123
|
-
switch (token) {
|
|
2124
|
-
// 2
|
|
2125
|
-
case "i":
|
|
2126
|
-
return String(isoDayOfWeek);
|
|
2127
|
-
// 02
|
|
2128
|
-
case "ii":
|
|
2129
|
-
return addLeadingZeros(isoDayOfWeek, token.length);
|
|
2130
|
-
// 2nd
|
|
2131
|
-
case "io":
|
|
2132
|
-
return localize2.ordinalNumber(isoDayOfWeek, { unit: "day" });
|
|
2133
|
-
// Tue
|
|
2134
|
-
case "iii":
|
|
2135
|
-
return localize2.day(dayOfWeek, {
|
|
2136
|
-
width: "abbreviated",
|
|
2137
|
-
context: "formatting"
|
|
2138
|
-
});
|
|
2139
|
-
// T
|
|
2140
|
-
case "iiiii":
|
|
2141
|
-
return localize2.day(dayOfWeek, {
|
|
2142
|
-
width: "narrow",
|
|
2143
|
-
context: "formatting"
|
|
2144
|
-
});
|
|
2145
|
-
// Tu
|
|
2146
|
-
case "iiiiii":
|
|
2147
|
-
return localize2.day(dayOfWeek, {
|
|
2148
|
-
width: "short",
|
|
2149
|
-
context: "formatting"
|
|
2150
|
-
});
|
|
2151
|
-
// Tuesday
|
|
2152
|
-
case "iiii":
|
|
2153
|
-
default:
|
|
2154
|
-
return localize2.day(dayOfWeek, {
|
|
2155
|
-
width: "wide",
|
|
2156
|
-
context: "formatting"
|
|
2157
|
-
});
|
|
2158
|
-
}
|
|
2159
|
-
},
|
|
2160
|
-
// AM or PM
|
|
2161
|
-
a: function(date, token, localize2) {
|
|
2162
|
-
const hours = date.getHours();
|
|
2163
|
-
const dayPeriodEnumValue = hours / 12 >= 1 ? "pm" : "am";
|
|
2164
|
-
switch (token) {
|
|
2165
|
-
case "a":
|
|
2166
|
-
case "aa":
|
|
2167
|
-
return localize2.dayPeriod(dayPeriodEnumValue, {
|
|
2168
|
-
width: "abbreviated",
|
|
2169
|
-
context: "formatting"
|
|
2170
|
-
});
|
|
2171
|
-
case "aaa":
|
|
2172
|
-
return localize2.dayPeriod(dayPeriodEnumValue, {
|
|
2173
|
-
width: "abbreviated",
|
|
2174
|
-
context: "formatting"
|
|
2175
|
-
}).toLowerCase();
|
|
2176
|
-
case "aaaaa":
|
|
2177
|
-
return localize2.dayPeriod(dayPeriodEnumValue, {
|
|
2178
|
-
width: "narrow",
|
|
2179
|
-
context: "formatting"
|
|
2180
|
-
});
|
|
2181
|
-
case "aaaa":
|
|
2182
|
-
default:
|
|
2183
|
-
return localize2.dayPeriod(dayPeriodEnumValue, {
|
|
2184
|
-
width: "wide",
|
|
2185
|
-
context: "formatting"
|
|
2186
|
-
});
|
|
2187
|
-
}
|
|
2188
|
-
},
|
|
2189
|
-
// AM, PM, midnight, noon
|
|
2190
|
-
b: function(date, token, localize2) {
|
|
2191
|
-
const hours = date.getHours();
|
|
2192
|
-
let dayPeriodEnumValue;
|
|
2193
|
-
if (hours === 12) {
|
|
2194
|
-
dayPeriodEnumValue = dayPeriodEnum.noon;
|
|
2195
|
-
} else if (hours === 0) {
|
|
2196
|
-
dayPeriodEnumValue = dayPeriodEnum.midnight;
|
|
2197
|
-
} else {
|
|
2198
|
-
dayPeriodEnumValue = hours / 12 >= 1 ? "pm" : "am";
|
|
2199
|
-
}
|
|
2200
|
-
switch (token) {
|
|
2201
|
-
case "b":
|
|
2202
|
-
case "bb":
|
|
2203
|
-
return localize2.dayPeriod(dayPeriodEnumValue, {
|
|
2204
|
-
width: "abbreviated",
|
|
2205
|
-
context: "formatting"
|
|
2206
|
-
});
|
|
2207
|
-
case "bbb":
|
|
2208
|
-
return localize2.dayPeriod(dayPeriodEnumValue, {
|
|
2209
|
-
width: "abbreviated",
|
|
2210
|
-
context: "formatting"
|
|
2211
|
-
}).toLowerCase();
|
|
2212
|
-
case "bbbbb":
|
|
2213
|
-
return localize2.dayPeriod(dayPeriodEnumValue, {
|
|
2214
|
-
width: "narrow",
|
|
2215
|
-
context: "formatting"
|
|
2216
|
-
});
|
|
2217
|
-
case "bbbb":
|
|
2218
|
-
default:
|
|
2219
|
-
return localize2.dayPeriod(dayPeriodEnumValue, {
|
|
2220
|
-
width: "wide",
|
|
2221
|
-
context: "formatting"
|
|
2222
|
-
});
|
|
2223
|
-
}
|
|
2224
|
-
},
|
|
2225
|
-
// in the morning, in the afternoon, in the evening, at night
|
|
2226
|
-
B: function(date, token, localize2) {
|
|
2227
|
-
const hours = date.getHours();
|
|
2228
|
-
let dayPeriodEnumValue;
|
|
2229
|
-
if (hours >= 17) {
|
|
2230
|
-
dayPeriodEnumValue = dayPeriodEnum.evening;
|
|
2231
|
-
} else if (hours >= 12) {
|
|
2232
|
-
dayPeriodEnumValue = dayPeriodEnum.afternoon;
|
|
2233
|
-
} else if (hours >= 4) {
|
|
2234
|
-
dayPeriodEnumValue = dayPeriodEnum.morning;
|
|
2235
|
-
} else {
|
|
2236
|
-
dayPeriodEnumValue = dayPeriodEnum.night;
|
|
2237
|
-
}
|
|
2238
|
-
switch (token) {
|
|
2239
|
-
case "B":
|
|
2240
|
-
case "BB":
|
|
2241
|
-
case "BBB":
|
|
2242
|
-
return localize2.dayPeriod(dayPeriodEnumValue, {
|
|
2243
|
-
width: "abbreviated",
|
|
2244
|
-
context: "formatting"
|
|
2245
|
-
});
|
|
2246
|
-
case "BBBBB":
|
|
2247
|
-
return localize2.dayPeriod(dayPeriodEnumValue, {
|
|
2248
|
-
width: "narrow",
|
|
2249
|
-
context: "formatting"
|
|
2250
|
-
});
|
|
2251
|
-
case "BBBB":
|
|
2252
|
-
default:
|
|
2253
|
-
return localize2.dayPeriod(dayPeriodEnumValue, {
|
|
2254
|
-
width: "wide",
|
|
2255
|
-
context: "formatting"
|
|
2256
|
-
});
|
|
2257
|
-
}
|
|
2258
|
-
},
|
|
2259
|
-
// Hour [1-12]
|
|
2260
|
-
h: function(date, token, localize2) {
|
|
2261
|
-
if (token === "ho") {
|
|
2262
|
-
let hours = date.getHours() % 12;
|
|
2263
|
-
if (hours === 0) hours = 12;
|
|
2264
|
-
return localize2.ordinalNumber(hours, { unit: "hour" });
|
|
2265
|
-
}
|
|
2266
|
-
return lightFormatters.h(date, token);
|
|
2267
|
-
},
|
|
2268
|
-
// Hour [0-23]
|
|
2269
|
-
H: function(date, token, localize2) {
|
|
2270
|
-
if (token === "Ho") {
|
|
2271
|
-
return localize2.ordinalNumber(date.getHours(), { unit: "hour" });
|
|
2272
|
-
}
|
|
2273
|
-
return lightFormatters.H(date, token);
|
|
2274
|
-
},
|
|
2275
|
-
// Hour [0-11]
|
|
2276
|
-
K: function(date, token, localize2) {
|
|
2277
|
-
const hours = date.getHours() % 12;
|
|
2278
|
-
if (token === "Ko") {
|
|
2279
|
-
return localize2.ordinalNumber(hours, { unit: "hour" });
|
|
2280
|
-
}
|
|
2281
|
-
return addLeadingZeros(hours, token.length);
|
|
2282
|
-
},
|
|
2283
|
-
// Hour [1-24]
|
|
2284
|
-
k: function(date, token, localize2) {
|
|
2285
|
-
let hours = date.getHours();
|
|
2286
|
-
if (hours === 0) hours = 24;
|
|
2287
|
-
if (token === "ko") {
|
|
2288
|
-
return localize2.ordinalNumber(hours, { unit: "hour" });
|
|
2289
|
-
}
|
|
2290
|
-
return addLeadingZeros(hours, token.length);
|
|
2291
|
-
},
|
|
2292
|
-
// Minute
|
|
2293
|
-
m: function(date, token, localize2) {
|
|
2294
|
-
if (token === "mo") {
|
|
2295
|
-
return localize2.ordinalNumber(date.getMinutes(), { unit: "minute" });
|
|
2296
|
-
}
|
|
2297
|
-
return lightFormatters.m(date, token);
|
|
2298
|
-
},
|
|
2299
|
-
// Second
|
|
2300
|
-
s: function(date, token, localize2) {
|
|
2301
|
-
if (token === "so") {
|
|
2302
|
-
return localize2.ordinalNumber(date.getSeconds(), { unit: "second" });
|
|
2303
|
-
}
|
|
2304
|
-
return lightFormatters.s(date, token);
|
|
2305
|
-
},
|
|
2306
|
-
// Fraction of second
|
|
2307
|
-
S: function(date, token) {
|
|
2308
|
-
return lightFormatters.S(date, token);
|
|
2309
|
-
},
|
|
2310
|
-
// Timezone (ISO-8601. If offset is 0, output is always `'Z'`)
|
|
2311
|
-
X: function(date, token, _localize) {
|
|
2312
|
-
const timezoneOffset = date.getTimezoneOffset();
|
|
2313
|
-
if (timezoneOffset === 0) {
|
|
2314
|
-
return "Z";
|
|
2315
|
-
}
|
|
2316
|
-
switch (token) {
|
|
2317
|
-
// Hours and optional minutes
|
|
2318
|
-
case "X":
|
|
2319
|
-
return formatTimezoneWithOptionalMinutes(timezoneOffset);
|
|
2320
|
-
// Hours, minutes and optional seconds without `:` delimiter
|
|
2321
|
-
// Note: neither ISO-8601 nor JavaScript supports seconds in timezone offsets
|
|
2322
|
-
// so this token always has the same output as `XX`
|
|
2323
|
-
case "XXXX":
|
|
2324
|
-
case "XX":
|
|
2325
|
-
return formatTimezone(timezoneOffset);
|
|
2326
|
-
// Hours, minutes and optional seconds with `:` delimiter
|
|
2327
|
-
// Note: neither ISO-8601 nor JavaScript supports seconds in timezone offsets
|
|
2328
|
-
// so this token always has the same output as `XXX`
|
|
2329
|
-
case "XXXXX":
|
|
2330
|
-
case "XXX":
|
|
2331
|
-
// Hours and minutes with `:` delimiter
|
|
2332
|
-
default:
|
|
2333
|
-
return formatTimezone(timezoneOffset, ":");
|
|
2334
|
-
}
|
|
2335
|
-
},
|
|
2336
|
-
// Timezone (ISO-8601. If offset is 0, output is `'+00:00'` or equivalent)
|
|
2337
|
-
x: function(date, token, _localize) {
|
|
2338
|
-
const timezoneOffset = date.getTimezoneOffset();
|
|
2339
|
-
switch (token) {
|
|
2340
|
-
// Hours and optional minutes
|
|
2341
|
-
case "x":
|
|
2342
|
-
return formatTimezoneWithOptionalMinutes(timezoneOffset);
|
|
2343
|
-
// Hours, minutes and optional seconds without `:` delimiter
|
|
2344
|
-
// Note: neither ISO-8601 nor JavaScript supports seconds in timezone offsets
|
|
2345
|
-
// so this token always has the same output as `xx`
|
|
2346
|
-
case "xxxx":
|
|
2347
|
-
case "xx":
|
|
2348
|
-
return formatTimezone(timezoneOffset);
|
|
2349
|
-
// Hours, minutes and optional seconds with `:` delimiter
|
|
2350
|
-
// Note: neither ISO-8601 nor JavaScript supports seconds in timezone offsets
|
|
2351
|
-
// so this token always has the same output as `xxx`
|
|
2352
|
-
case "xxxxx":
|
|
2353
|
-
case "xxx":
|
|
2354
|
-
// Hours and minutes with `:` delimiter
|
|
2355
|
-
default:
|
|
2356
|
-
return formatTimezone(timezoneOffset, ":");
|
|
2357
|
-
}
|
|
2358
|
-
},
|
|
2359
|
-
// Timezone (GMT)
|
|
2360
|
-
O: function(date, token, _localize) {
|
|
2361
|
-
const timezoneOffset = date.getTimezoneOffset();
|
|
2362
|
-
switch (token) {
|
|
2363
|
-
// Short
|
|
2364
|
-
case "O":
|
|
2365
|
-
case "OO":
|
|
2366
|
-
case "OOO":
|
|
2367
|
-
return "GMT" + formatTimezoneShort(timezoneOffset, ":");
|
|
2368
|
-
// Long
|
|
2369
|
-
case "OOOO":
|
|
2370
|
-
default:
|
|
2371
|
-
return "GMT" + formatTimezone(timezoneOffset, ":");
|
|
2372
|
-
}
|
|
2373
|
-
},
|
|
2374
|
-
// Timezone (specific non-location)
|
|
2375
|
-
z: function(date, token, _localize) {
|
|
2376
|
-
const timezoneOffset = date.getTimezoneOffset();
|
|
2377
|
-
switch (token) {
|
|
2378
|
-
// Short
|
|
2379
|
-
case "z":
|
|
2380
|
-
case "zz":
|
|
2381
|
-
case "zzz":
|
|
2382
|
-
return "GMT" + formatTimezoneShort(timezoneOffset, ":");
|
|
2383
|
-
// Long
|
|
2384
|
-
case "zzzz":
|
|
2385
|
-
default:
|
|
2386
|
-
return "GMT" + formatTimezone(timezoneOffset, ":");
|
|
2387
|
-
}
|
|
2388
|
-
},
|
|
2389
|
-
// Seconds timestamp
|
|
2390
|
-
t: function(date, token, _localize) {
|
|
2391
|
-
const timestamp = Math.trunc(date.getTime() / 1e3);
|
|
2392
|
-
return addLeadingZeros(timestamp, token.length);
|
|
2393
|
-
},
|
|
2394
|
-
// Milliseconds timestamp
|
|
2395
|
-
T: function(date, token, _localize) {
|
|
2396
|
-
const timestamp = date.getTime();
|
|
2397
|
-
return addLeadingZeros(timestamp, token.length);
|
|
2398
|
-
}
|
|
2399
|
-
};
|
|
2400
|
-
function formatTimezoneShort(offset, delimiter = "") {
|
|
2401
|
-
const sign = offset > 0 ? "-" : "+";
|
|
2402
|
-
const absOffset = Math.abs(offset);
|
|
2403
|
-
const hours = Math.trunc(absOffset / 60);
|
|
2404
|
-
const minutes = absOffset % 60;
|
|
2405
|
-
if (minutes === 0) {
|
|
2406
|
-
return sign + String(hours);
|
|
2407
|
-
}
|
|
2408
|
-
return sign + String(hours) + delimiter + addLeadingZeros(minutes, 2);
|
|
2409
|
-
}
|
|
2410
|
-
function formatTimezoneWithOptionalMinutes(offset, delimiter) {
|
|
2411
|
-
if (offset % 60 === 0) {
|
|
2412
|
-
const sign = offset > 0 ? "-" : "+";
|
|
2413
|
-
return sign + addLeadingZeros(Math.abs(offset) / 60, 2);
|
|
2414
|
-
}
|
|
2415
|
-
return formatTimezone(offset, delimiter);
|
|
2416
|
-
}
|
|
2417
|
-
function formatTimezone(offset, delimiter = "") {
|
|
2418
|
-
const sign = offset > 0 ? "-" : "+";
|
|
2419
|
-
const absOffset = Math.abs(offset);
|
|
2420
|
-
const hours = addLeadingZeros(Math.trunc(absOffset / 60), 2);
|
|
2421
|
-
const minutes = addLeadingZeros(absOffset % 60, 2);
|
|
2422
|
-
return sign + hours + delimiter + minutes;
|
|
2423
|
-
}
|
|
2424
|
-
const dateLongFormatter = (pattern, formatLong2) => {
|
|
2425
|
-
switch (pattern) {
|
|
2426
|
-
case "P":
|
|
2427
|
-
return formatLong2.date({ width: "short" });
|
|
2428
|
-
case "PP":
|
|
2429
|
-
return formatLong2.date({ width: "medium" });
|
|
2430
|
-
case "PPP":
|
|
2431
|
-
return formatLong2.date({ width: "long" });
|
|
2432
|
-
case "PPPP":
|
|
2433
|
-
default:
|
|
2434
|
-
return formatLong2.date({ width: "full" });
|
|
2435
|
-
}
|
|
2436
|
-
};
|
|
2437
|
-
const timeLongFormatter = (pattern, formatLong2) => {
|
|
2438
|
-
switch (pattern) {
|
|
2439
|
-
case "p":
|
|
2440
|
-
return formatLong2.time({ width: "short" });
|
|
2441
|
-
case "pp":
|
|
2442
|
-
return formatLong2.time({ width: "medium" });
|
|
2443
|
-
case "ppp":
|
|
2444
|
-
return formatLong2.time({ width: "long" });
|
|
2445
|
-
case "pppp":
|
|
2446
|
-
default:
|
|
2447
|
-
return formatLong2.time({ width: "full" });
|
|
2448
|
-
}
|
|
2449
|
-
};
|
|
2450
|
-
const dateTimeLongFormatter = (pattern, formatLong2) => {
|
|
2451
|
-
const matchResult = pattern.match(/(P+)(p+)?/) || [];
|
|
2452
|
-
const datePattern = matchResult[1];
|
|
2453
|
-
const timePattern = matchResult[2];
|
|
2454
|
-
if (!timePattern) {
|
|
2455
|
-
return dateLongFormatter(pattern, formatLong2);
|
|
2456
|
-
}
|
|
2457
|
-
let dateTimeFormat;
|
|
2458
|
-
switch (datePattern) {
|
|
2459
|
-
case "P":
|
|
2460
|
-
dateTimeFormat = formatLong2.dateTime({ width: "short" });
|
|
2461
|
-
break;
|
|
2462
|
-
case "PP":
|
|
2463
|
-
dateTimeFormat = formatLong2.dateTime({ width: "medium" });
|
|
2464
|
-
break;
|
|
2465
|
-
case "PPP":
|
|
2466
|
-
dateTimeFormat = formatLong2.dateTime({ width: "long" });
|
|
2467
|
-
break;
|
|
2468
|
-
case "PPPP":
|
|
2469
|
-
default:
|
|
2470
|
-
dateTimeFormat = formatLong2.dateTime({ width: "full" });
|
|
2471
|
-
break;
|
|
2472
|
-
}
|
|
2473
|
-
return dateTimeFormat.replace("{{date}}", dateLongFormatter(datePattern, formatLong2)).replace("{{time}}", timeLongFormatter(timePattern, formatLong2));
|
|
2474
|
-
};
|
|
2475
|
-
const longFormatters = {
|
|
2476
|
-
p: timeLongFormatter,
|
|
2477
|
-
P: dateTimeLongFormatter
|
|
2478
|
-
};
|
|
2479
|
-
const dayOfYearTokenRE = /^D+$/;
|
|
2480
|
-
const weekYearTokenRE = /^Y+$/;
|
|
2481
|
-
const throwTokens = ["D", "DD", "YY", "YYYY"];
|
|
2482
|
-
function isProtectedDayOfYearToken(token) {
|
|
2483
|
-
return dayOfYearTokenRE.test(token);
|
|
2484
|
-
}
|
|
2485
|
-
function isProtectedWeekYearToken(token) {
|
|
2486
|
-
return weekYearTokenRE.test(token);
|
|
2487
|
-
}
|
|
2488
|
-
function warnOrThrowProtectedError(token, format2, input) {
|
|
2489
|
-
const _message = message(token, format2, input);
|
|
2490
|
-
console.warn(_message);
|
|
2491
|
-
if (throwTokens.includes(token)) throw new RangeError(_message);
|
|
2492
|
-
}
|
|
2493
|
-
function message(token, format2, input) {
|
|
2494
|
-
const subject = token[0] === "Y" ? "years" : "days of the month";
|
|
2495
|
-
return `Use \`${token.toLowerCase()}\` instead of \`${token}\` (in \`${format2}\`) for formatting ${subject} to the input \`${input}\`; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md`;
|
|
2496
|
-
}
|
|
2497
|
-
const formattingTokensRegExp = /[yYQqMLwIdDecihHKkms]o|(\w)\1*|''|'(''|[^'])+('|$)|./g;
|
|
2498
|
-
const longFormattingTokensRegExp = /P+p+|P+|p+|''|'(''|[^'])+('|$)|./g;
|
|
2499
|
-
const escapedStringRegExp = /^'([^]*?)'?$/;
|
|
2500
|
-
const doubleQuoteRegExp = /''/g;
|
|
2501
|
-
const unescapedLatinCharacterRegExp = /[a-zA-Z]/;
|
|
2502
|
-
function format(date, formatStr, options) {
|
|
2503
|
-
var _a, _b, _c, _d;
|
|
2504
|
-
const defaultOptions2 = getDefaultOptions();
|
|
2505
|
-
const locale = defaultOptions2.locale ?? enUS;
|
|
2506
|
-
const firstWeekContainsDate = defaultOptions2.firstWeekContainsDate ?? ((_b = (_a = defaultOptions2.locale) == null ? void 0 : _a.options) == null ? void 0 : _b.firstWeekContainsDate) ?? 1;
|
|
2507
|
-
const weekStartsOn = defaultOptions2.weekStartsOn ?? ((_d = (_c = defaultOptions2.locale) == null ? void 0 : _c.options) == null ? void 0 : _d.weekStartsOn) ?? 0;
|
|
2508
|
-
const originalDate = toDate(date);
|
|
2509
|
-
if (!isValid(originalDate)) {
|
|
2510
|
-
throw new RangeError("Invalid time value");
|
|
2511
|
-
}
|
|
2512
|
-
let parts = formatStr.match(longFormattingTokensRegExp).map((substring) => {
|
|
2513
|
-
const firstCharacter = substring[0];
|
|
2514
|
-
if (firstCharacter === "p" || firstCharacter === "P") {
|
|
2515
|
-
const longFormatter = longFormatters[firstCharacter];
|
|
2516
|
-
return longFormatter(substring, locale.formatLong);
|
|
2517
|
-
}
|
|
2518
|
-
return substring;
|
|
2519
|
-
}).join("").match(formattingTokensRegExp).map((substring) => {
|
|
2520
|
-
if (substring === "''") {
|
|
2521
|
-
return { isToken: false, value: "'" };
|
|
2522
|
-
}
|
|
2523
|
-
const firstCharacter = substring[0];
|
|
2524
|
-
if (firstCharacter === "'") {
|
|
2525
|
-
return { isToken: false, value: cleanEscapedString(substring) };
|
|
2526
|
-
}
|
|
2527
|
-
if (formatters[firstCharacter]) {
|
|
2528
|
-
return { isToken: true, value: substring };
|
|
2529
|
-
}
|
|
2530
|
-
if (firstCharacter.match(unescapedLatinCharacterRegExp)) {
|
|
2531
|
-
throw new RangeError(
|
|
2532
|
-
"Format string contains an unescaped latin alphabet character `" + firstCharacter + "`"
|
|
2533
|
-
);
|
|
2534
|
-
}
|
|
2535
|
-
return { isToken: false, value: substring };
|
|
2536
|
-
});
|
|
2537
|
-
if (locale.localize.preprocessor) {
|
|
2538
|
-
parts = locale.localize.preprocessor(originalDate, parts);
|
|
2539
|
-
}
|
|
2540
|
-
const formatterOptions = {
|
|
2541
|
-
firstWeekContainsDate,
|
|
2542
|
-
weekStartsOn,
|
|
2543
|
-
locale
|
|
2544
|
-
};
|
|
2545
|
-
return parts.map((part) => {
|
|
2546
|
-
if (!part.isToken) return part.value;
|
|
2547
|
-
const token = part.value;
|
|
2548
|
-
if (isProtectedWeekYearToken(token) || isProtectedDayOfYearToken(token)) {
|
|
2549
|
-
warnOrThrowProtectedError(token, formatStr, String(date));
|
|
2550
|
-
}
|
|
2551
|
-
const formatter = formatters[token[0]];
|
|
2552
|
-
return formatter(originalDate, token, locale.localize, formatterOptions);
|
|
2553
|
-
}).join("");
|
|
2554
|
-
}
|
|
2555
|
-
function cleanEscapedString(input) {
|
|
2556
|
-
const matched = input.match(escapedStringRegExp);
|
|
2557
|
-
if (!matched) {
|
|
2558
|
-
return input;
|
|
2559
|
-
}
|
|
2560
|
-
return matched[1].replace(doubleQuoteRegExp, "'");
|
|
2561
|
-
}
|
|
2562
|
-
function parseISO(argument, options) {
|
|
2563
|
-
const additionalDigits = 2;
|
|
2564
|
-
const dateStrings = splitDateString(argument);
|
|
2565
|
-
let date;
|
|
2566
|
-
if (dateStrings.date) {
|
|
2567
|
-
const parseYearResult = parseYear(dateStrings.date, additionalDigits);
|
|
2568
|
-
date = parseDate(parseYearResult.restDateString, parseYearResult.year);
|
|
2569
|
-
}
|
|
2570
|
-
if (!date || isNaN(date.getTime())) {
|
|
2571
|
-
return /* @__PURE__ */ new Date(NaN);
|
|
2572
|
-
}
|
|
2573
|
-
const timestamp = date.getTime();
|
|
2574
|
-
let time = 0;
|
|
2575
|
-
let offset;
|
|
2576
|
-
if (dateStrings.time) {
|
|
2577
|
-
time = parseTime(dateStrings.time);
|
|
2578
|
-
if (isNaN(time)) {
|
|
2579
|
-
return /* @__PURE__ */ new Date(NaN);
|
|
2580
|
-
}
|
|
2581
|
-
}
|
|
2582
|
-
if (dateStrings.timezone) {
|
|
2583
|
-
offset = parseTimezone(dateStrings.timezone);
|
|
2584
|
-
if (isNaN(offset)) {
|
|
2585
|
-
return /* @__PURE__ */ new Date(NaN);
|
|
2586
|
-
}
|
|
2587
|
-
} else {
|
|
2588
|
-
const dirtyDate = new Date(timestamp + time);
|
|
2589
|
-
const result = /* @__PURE__ */ new Date(0);
|
|
2590
|
-
result.setFullYear(
|
|
2591
|
-
dirtyDate.getUTCFullYear(),
|
|
2592
|
-
dirtyDate.getUTCMonth(),
|
|
2593
|
-
dirtyDate.getUTCDate()
|
|
2594
|
-
);
|
|
2595
|
-
result.setHours(
|
|
2596
|
-
dirtyDate.getUTCHours(),
|
|
2597
|
-
dirtyDate.getUTCMinutes(),
|
|
2598
|
-
dirtyDate.getUTCSeconds(),
|
|
2599
|
-
dirtyDate.getUTCMilliseconds()
|
|
2600
|
-
);
|
|
2601
|
-
return result;
|
|
2602
|
-
}
|
|
2603
|
-
return new Date(timestamp + time + offset);
|
|
2604
|
-
}
|
|
2605
|
-
const patterns = {
|
|
2606
|
-
dateTimeDelimiter: /[T ]/,
|
|
2607
|
-
timeZoneDelimiter: /[Z ]/i,
|
|
2608
|
-
timezone: /([Z+-].*)$/
|
|
2609
|
-
};
|
|
2610
|
-
const dateRegex = /^-?(?:(\d{3})|(\d{2})(?:-?(\d{2}))?|W(\d{2})(?:-?(\d{1}))?|)$/;
|
|
2611
|
-
const timeRegex = /^(\d{2}(?:[.,]\d*)?)(?::?(\d{2}(?:[.,]\d*)?))?(?::?(\d{2}(?:[.,]\d*)?))?$/;
|
|
2612
|
-
const timezoneRegex = /^([+-])(\d{2})(?::?(\d{2}))?$/;
|
|
2613
|
-
function splitDateString(dateString) {
|
|
2614
|
-
const dateStrings = {};
|
|
2615
|
-
const array = dateString.split(patterns.dateTimeDelimiter);
|
|
2616
|
-
let timeString;
|
|
2617
|
-
if (array.length > 2) {
|
|
2618
|
-
return dateStrings;
|
|
2619
|
-
}
|
|
2620
|
-
if (/:/.test(array[0])) {
|
|
2621
|
-
timeString = array[0];
|
|
2622
|
-
} else {
|
|
2623
|
-
dateStrings.date = array[0];
|
|
2624
|
-
timeString = array[1];
|
|
2625
|
-
if (patterns.timeZoneDelimiter.test(dateStrings.date)) {
|
|
2626
|
-
dateStrings.date = dateString.split(patterns.timeZoneDelimiter)[0];
|
|
2627
|
-
timeString = dateString.substr(
|
|
2628
|
-
dateStrings.date.length,
|
|
2629
|
-
dateString.length
|
|
2630
|
-
);
|
|
2631
|
-
}
|
|
2632
|
-
}
|
|
2633
|
-
if (timeString) {
|
|
2634
|
-
const token = patterns.timezone.exec(timeString);
|
|
2635
|
-
if (token) {
|
|
2636
|
-
dateStrings.time = timeString.replace(token[1], "");
|
|
2637
|
-
dateStrings.timezone = token[1];
|
|
2638
|
-
} else {
|
|
2639
|
-
dateStrings.time = timeString;
|
|
1104
|
+
function GoabIcon({
|
|
1105
|
+
inverted,
|
|
1106
|
+
...rest
|
|
1107
|
+
}) {
|
|
1108
|
+
const _props = transformProps(rest, lowercase);
|
|
1109
|
+
return /* @__PURE__ */ jsx(
|
|
1110
|
+
"goa-icon",
|
|
1111
|
+
{
|
|
1112
|
+
inverted: typeof inverted === "boolean" ? inverted ? "true" : void 0 : inverted,
|
|
1113
|
+
..._props
|
|
2640
1114
|
}
|
|
2641
|
-
}
|
|
2642
|
-
return dateStrings;
|
|
2643
|
-
}
|
|
2644
|
-
function parseYear(dateString, additionalDigits) {
|
|
2645
|
-
const regex = new RegExp(
|
|
2646
|
-
"^(?:(\\d{4}|[+-]\\d{" + (4 + additionalDigits) + "})|(\\d{2}|[+-]\\d{" + (2 + additionalDigits) + "})$)"
|
|
2647
1115
|
);
|
|
2648
|
-
const captures = dateString.match(regex);
|
|
2649
|
-
if (!captures) return { year: NaN, restDateString: "" };
|
|
2650
|
-
const year = captures[1] ? parseInt(captures[1]) : null;
|
|
2651
|
-
const century = captures[2] ? parseInt(captures[2]) : null;
|
|
2652
|
-
return {
|
|
2653
|
-
year: century === null ? year : century * 100,
|
|
2654
|
-
restDateString: dateString.slice((captures[1] || captures[2]).length)
|
|
2655
|
-
};
|
|
2656
|
-
}
|
|
2657
|
-
function parseDate(dateString, year) {
|
|
2658
|
-
if (year === null) return /* @__PURE__ */ new Date(NaN);
|
|
2659
|
-
const captures = dateString.match(dateRegex);
|
|
2660
|
-
if (!captures) return /* @__PURE__ */ new Date(NaN);
|
|
2661
|
-
const isWeekDate = !!captures[4];
|
|
2662
|
-
const dayOfYear = parseDateUnit(captures[1]);
|
|
2663
|
-
const month = parseDateUnit(captures[2]) - 1;
|
|
2664
|
-
const day = parseDateUnit(captures[3]);
|
|
2665
|
-
const week = parseDateUnit(captures[4]);
|
|
2666
|
-
const dayOfWeek = parseDateUnit(captures[5]) - 1;
|
|
2667
|
-
if (isWeekDate) {
|
|
2668
|
-
if (!validateWeekDate(year, week, dayOfWeek)) {
|
|
2669
|
-
return /* @__PURE__ */ new Date(NaN);
|
|
2670
|
-
}
|
|
2671
|
-
return dayOfISOWeekYear(year, week, dayOfWeek);
|
|
2672
|
-
} else {
|
|
2673
|
-
const date = /* @__PURE__ */ new Date(0);
|
|
2674
|
-
if (!validateDate(year, month, day) || !validateDayOfYearDate(year, dayOfYear)) {
|
|
2675
|
-
return /* @__PURE__ */ new Date(NaN);
|
|
2676
|
-
}
|
|
2677
|
-
date.setUTCFullYear(year, month, Math.max(dayOfYear, day));
|
|
2678
|
-
return date;
|
|
2679
|
-
}
|
|
2680
|
-
}
|
|
2681
|
-
function parseDateUnit(value) {
|
|
2682
|
-
return value ? parseInt(value) : 1;
|
|
2683
|
-
}
|
|
2684
|
-
function parseTime(timeString) {
|
|
2685
|
-
const captures = timeString.match(timeRegex);
|
|
2686
|
-
if (!captures) return NaN;
|
|
2687
|
-
const hours = parseTimeUnit(captures[1]);
|
|
2688
|
-
const minutes = parseTimeUnit(captures[2]);
|
|
2689
|
-
const seconds = parseTimeUnit(captures[3]);
|
|
2690
|
-
if (!validateTime(hours, minutes, seconds)) {
|
|
2691
|
-
return NaN;
|
|
2692
|
-
}
|
|
2693
|
-
return hours * millisecondsInHour + minutes * millisecondsInMinute + seconds * 1e3;
|
|
2694
|
-
}
|
|
2695
|
-
function parseTimeUnit(value) {
|
|
2696
|
-
return value && parseFloat(value.replace(",", ".")) || 0;
|
|
2697
|
-
}
|
|
2698
|
-
function parseTimezone(timezoneString) {
|
|
2699
|
-
if (timezoneString === "Z") return 0;
|
|
2700
|
-
const captures = timezoneString.match(timezoneRegex);
|
|
2701
|
-
if (!captures) return 0;
|
|
2702
|
-
const sign = captures[1] === "+" ? -1 : 1;
|
|
2703
|
-
const hours = parseInt(captures[2]);
|
|
2704
|
-
const minutes = captures[3] && parseInt(captures[3]) || 0;
|
|
2705
|
-
if (!validateTimezone(hours, minutes)) {
|
|
2706
|
-
return NaN;
|
|
2707
|
-
}
|
|
2708
|
-
return sign * (hours * millisecondsInHour + minutes * millisecondsInMinute);
|
|
2709
|
-
}
|
|
2710
|
-
function dayOfISOWeekYear(isoWeekYear, week, day) {
|
|
2711
|
-
const date = /* @__PURE__ */ new Date(0);
|
|
2712
|
-
date.setUTCFullYear(isoWeekYear, 0, 4);
|
|
2713
|
-
const fourthOfJanuaryDay = date.getUTCDay() || 7;
|
|
2714
|
-
const diff = (week - 1) * 7 + day + 1 - fourthOfJanuaryDay;
|
|
2715
|
-
date.setUTCDate(date.getUTCDate() + diff);
|
|
2716
|
-
return date;
|
|
2717
|
-
}
|
|
2718
|
-
const daysInMonths = [31, null, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];
|
|
2719
|
-
function isLeapYearIndex(year) {
|
|
2720
|
-
return year % 400 === 0 || year % 4 === 0 && year % 100 !== 0;
|
|
2721
|
-
}
|
|
2722
|
-
function validateDate(year, month, date) {
|
|
2723
|
-
return month >= 0 && month <= 11 && date >= 1 && date <= (daysInMonths[month] || (isLeapYearIndex(year) ? 29 : 28));
|
|
2724
|
-
}
|
|
2725
|
-
function validateDayOfYearDate(year, dayOfYear) {
|
|
2726
|
-
return dayOfYear >= 1 && dayOfYear <= (isLeapYearIndex(year) ? 366 : 365);
|
|
2727
|
-
}
|
|
2728
|
-
function validateWeekDate(_year, week, day) {
|
|
2729
|
-
return week >= 1 && week <= 53 && day >= 0 && day <= 6;
|
|
2730
|
-
}
|
|
2731
|
-
function validateTime(hours, minutes, seconds) {
|
|
2732
|
-
if (hours === 24) {
|
|
2733
|
-
return minutes === 0 && seconds === 0;
|
|
2734
|
-
}
|
|
2735
|
-
return seconds >= 0 && seconds < 60 && minutes >= 0 && minutes < 60 && hours >= 0 && hours < 25;
|
|
2736
|
-
}
|
|
2737
|
-
function validateTimezone(_hours, minutes) {
|
|
2738
|
-
return minutes >= 0 && minutes <= 59;
|
|
2739
1116
|
}
|
|
2740
1117
|
function GoabInput({
|
|
2741
1118
|
variant = "goa",
|
|
@@ -3252,6 +1629,42 @@ function GoabPopover({
|
|
|
3252
1629
|
}
|
|
3253
1630
|
);
|
|
3254
1631
|
}
|
|
1632
|
+
function GoabPushDrawer({
|
|
1633
|
+
testid,
|
|
1634
|
+
open,
|
|
1635
|
+
heading,
|
|
1636
|
+
width,
|
|
1637
|
+
actions,
|
|
1638
|
+
children,
|
|
1639
|
+
onClose
|
|
1640
|
+
}) {
|
|
1641
|
+
const el = useRef(null);
|
|
1642
|
+
useEffect(() => {
|
|
1643
|
+
const elCurrent = el == null ? void 0 : el.current;
|
|
1644
|
+
if (!elCurrent || !onClose) {
|
|
1645
|
+
return;
|
|
1646
|
+
}
|
|
1647
|
+
elCurrent.addEventListener("_close", onClose);
|
|
1648
|
+
return () => {
|
|
1649
|
+
elCurrent.removeEventListener("_close", onClose);
|
|
1650
|
+
};
|
|
1651
|
+
}, [el, onClose]);
|
|
1652
|
+
return /* @__PURE__ */ jsxs(
|
|
1653
|
+
"goa-push-drawer",
|
|
1654
|
+
{
|
|
1655
|
+
ref: el,
|
|
1656
|
+
testid,
|
|
1657
|
+
open: open ?? false,
|
|
1658
|
+
heading: typeof heading === "string" ? heading : void 0,
|
|
1659
|
+
width,
|
|
1660
|
+
children: [
|
|
1661
|
+
heading && typeof heading !== "string" && /* @__PURE__ */ jsx("div", { slot: "heading", children: heading }),
|
|
1662
|
+
actions && /* @__PURE__ */ jsx("div", { slot: "actions", children: actions }),
|
|
1663
|
+
children
|
|
1664
|
+
]
|
|
1665
|
+
}
|
|
1666
|
+
);
|
|
1667
|
+
}
|
|
3255
1668
|
function GoabRadioItem({
|
|
3256
1669
|
name,
|
|
3257
1670
|
label,
|
|
@@ -3472,11 +1885,19 @@ function GoabTabs({
|
|
|
3472
1885
|
}, [onChange]);
|
|
3473
1886
|
return /* @__PURE__ */ jsx("goa-tabs", { ref, initialtab: initialTab, testid: testId, variant, children });
|
|
3474
1887
|
}
|
|
3475
|
-
function GoabTab({ heading, disabled, children }) {
|
|
3476
|
-
return /* @__PURE__ */ jsxs(
|
|
3477
|
-
|
|
3478
|
-
|
|
3479
|
-
|
|
1888
|
+
function GoabTab({ heading, disabled, slug, children }) {
|
|
1889
|
+
return /* @__PURE__ */ jsxs(
|
|
1890
|
+
"goa-tab",
|
|
1891
|
+
{
|
|
1892
|
+
slug,
|
|
1893
|
+
disabled: disabled ? "true" : void 0,
|
|
1894
|
+
heading: typeof heading === "string" ? heading : void 0,
|
|
1895
|
+
children: [
|
|
1896
|
+
typeof heading !== "string" && /* @__PURE__ */ jsx("span", { slot: "heading", children: heading }),
|
|
1897
|
+
children
|
|
1898
|
+
]
|
|
1899
|
+
}
|
|
1900
|
+
);
|
|
3480
1901
|
}
|
|
3481
1902
|
const GoabTemporaryNotificationCtrl = ({
|
|
3482
1903
|
verticalPosition = "bottom",
|
|
@@ -4072,7 +2493,7 @@ export {
|
|
|
4072
2493
|
GoabDatePicker,
|
|
4073
2494
|
GoabDetails,
|
|
4074
2495
|
GoabDivider,
|
|
4075
|
-
|
|
2496
|
+
GoabDrawer,
|
|
4076
2497
|
GoabDropdown,
|
|
4077
2498
|
GoabDropdownItem,
|
|
4078
2499
|
GoabDropdownOption,
|
|
@@ -4087,7 +2508,7 @@ export {
|
|
|
4087
2508
|
GoabGrid,
|
|
4088
2509
|
GoabHeroBanner,
|
|
4089
2510
|
GoabHeroBannerActions,
|
|
4090
|
-
|
|
2511
|
+
GoabIcon,
|
|
4091
2512
|
GoabIconButton,
|
|
4092
2513
|
GoabImportantBadge,
|
|
4093
2514
|
GoabInfoBadge,
|
|
@@ -4124,6 +2545,7 @@ export {
|
|
|
4124
2545
|
GoabPublicFormTaskList,
|
|
4125
2546
|
GoabPublicSubform,
|
|
4126
2547
|
GoabPublicSubformIndex,
|
|
2548
|
+
GoabPushDrawer,
|
|
4127
2549
|
GoabRadioGroup,
|
|
4128
2550
|
GoabRadioItem,
|
|
4129
2551
|
GoabSideMenu,
|