@react-aria/datepicker 3.0.0-nightly.1314 → 3.0.0-nightly.1322
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/main.js +25 -12
- package/dist/main.js.map +1 -1
- package/dist/module.js +24 -13
- package/dist/module.js.map +1 -1
- package/dist/types.d.ts +4 -1
- package/dist/types.d.ts.map +1 -1
- package/package.json +15 -15
- package/src/useDateField.ts +9 -3
- package/src/useDateSegment.ts +13 -7
package/dist/main.js
CHANGED
|
@@ -39,8 +39,10 @@ var {
|
|
|
39
39
|
mergeProps,
|
|
40
40
|
useDescription,
|
|
41
41
|
useId,
|
|
42
|
+
getScrollParent,
|
|
42
43
|
isIOS,
|
|
43
44
|
isMac,
|
|
45
|
+
scrollIntoView,
|
|
44
46
|
useEvent,
|
|
45
47
|
useLabels
|
|
46
48
|
} = require("@react-aria/utils");
|
|
@@ -325,7 +327,12 @@ function useDateField(props, state, ref) {
|
|
|
325
327
|
month: 'long'
|
|
326
328
|
}));
|
|
327
329
|
let descProps = useDescription(state.value ? formatter.format(state.dateValue) : null);
|
|
328
|
-
|
|
330
|
+
let segmentLabelledBy = fieldProps['aria-labelledby'] || fieldProps.id;
|
|
331
|
+
let describedBy = [descProps['aria-describedby'], fieldProps['aria-describedby']].filter(Boolean).join(' ') || undefined;
|
|
332
|
+
labelIds.set(state, {
|
|
333
|
+
ariaLabelledBy: segmentLabelledBy,
|
|
334
|
+
ariaDescribedBy: describedBy
|
|
335
|
+
});
|
|
329
336
|
return {
|
|
330
337
|
labelProps: _babelRuntimeHelpersExtends({}, labelProps, {
|
|
331
338
|
onClick: () => {
|
|
@@ -336,7 +343,7 @@ function useDateField(props, state, ref) {
|
|
|
336
343
|
fieldProps: mergeProps(fieldProps, descProps, groupProps, focusWithinProps, {
|
|
337
344
|
role: 'group',
|
|
338
345
|
'aria-disabled': props.isDisabled || undefined,
|
|
339
|
-
'aria-describedby':
|
|
346
|
+
'aria-describedby': describedBy
|
|
340
347
|
}),
|
|
341
348
|
descriptionProps,
|
|
342
349
|
errorMessageProps
|
|
@@ -450,7 +457,7 @@ function useDateSegment(props, segment, state, ref) {
|
|
|
450
457
|
|
|
451
458
|
if (segment.type === 'month') {
|
|
452
459
|
let monthTextValue = monthDateFormatter.format(state.dateValue);
|
|
453
|
-
textValue = monthTextValue !== textValue ? textValue + "
|
|
460
|
+
textValue = monthTextValue !== textValue ? textValue + " \u2013 " + monthTextValue : monthTextValue;
|
|
454
461
|
} else if (segment.type === 'hour' || segment.type === 'dayPeriod') {
|
|
455
462
|
textValue = hourDateFormatter.format(state.dateValue);
|
|
456
463
|
}
|
|
@@ -681,16 +688,10 @@ function useDateSegment(props, segment, state, ref) {
|
|
|
681
688
|
};
|
|
682
689
|
|
|
683
690
|
let onFocus = () => {
|
|
684
|
-
var _ref$current;
|
|
685
|
-
|
|
686
691
|
enteredKeys.current = '';
|
|
687
|
-
|
|
688
|
-
if ((_ref$current = ref.current) != null && _ref$current.scrollIntoView) {
|
|
689
|
-
ref.current.scrollIntoView();
|
|
690
|
-
} // Safari requires that a selection is set or it won't fire input events.
|
|
692
|
+
scrollIntoView(getScrollParent(ref.current), ref.current); // Safari requires that a selection is set or it won't fire input events.
|
|
691
693
|
// Since usePress disables text selection, this won't happen by default.
|
|
692
694
|
|
|
693
|
-
|
|
694
695
|
ref.current.style.webkitUserSelect = 'text';
|
|
695
696
|
let selection = window.getSelection();
|
|
696
697
|
selection.collapse(ref.current);
|
|
@@ -778,7 +779,18 @@ function useDateSegment(props, segment, state, ref) {
|
|
|
778
779
|
'aria-valuetext': null,
|
|
779
780
|
'aria-valuenow': null
|
|
780
781
|
} : {};
|
|
781
|
-
let
|
|
782
|
+
let {
|
|
783
|
+
ariaLabelledBy,
|
|
784
|
+
ariaDescribedBy
|
|
785
|
+
} = labelIds.get(state); // Only apply aria-describedby to the first segment, unless the field is invalid. This avoids it being
|
|
786
|
+
// read every time the user navigates to a new segment.
|
|
787
|
+
|
|
788
|
+
let firstSegment = useMemo(() => state.segments.find(s => s.isEditable), [state.segments]);
|
|
789
|
+
|
|
790
|
+
if (segment !== firstSegment && state.validationState !== 'invalid') {
|
|
791
|
+
ariaDescribedBy = undefined;
|
|
792
|
+
}
|
|
793
|
+
|
|
782
794
|
let id = useId(props.id);
|
|
783
795
|
let isEditable = !props.isDisabled && !props.isReadOnly && segment.isEditable;
|
|
784
796
|
return {
|
|
@@ -789,7 +801,8 @@ function useDateSegment(props, segment, state, ref) {
|
|
|
789
801
|
// 'aria-haspopup': props['aria-haspopup'], // deprecated in ARIA 1.2
|
|
790
802
|
'aria-invalid': state.validationState === 'invalid' ? 'true' : undefined,
|
|
791
803
|
'aria-label': segment.type !== 'literal' ? displayNames.of(segment.type) : undefined,
|
|
792
|
-
'aria-labelledby':
|
|
804
|
+
'aria-labelledby': ariaLabelledBy + " " + id,
|
|
805
|
+
'aria-describedby': ariaDescribedBy,
|
|
793
806
|
'aria-placeholder': segment.isPlaceholder ? segment.text : undefined,
|
|
794
807
|
'aria-readonly': props.isReadOnly || !segment.isEditable ? 'true' : undefined,
|
|
795
808
|
contentEditable: isEditable,
|
package/dist/main.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"mappings":"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","sources":["./node_modules/@parcel/scope-hoisting/lib/helpers.js","./packages/@react-aria/datepicker/intl/ar-AE.json","./packages/@react-aria/datepicker/intl/bg-BG.json","./packages/@react-aria/datepicker/intl/cs-CZ.json","./packages/@react-aria/datepicker/intl/da-DK.json","./packages/@react-aria/datepicker/intl/de-DE.json","./packages/@react-aria/datepicker/intl/el-GR.json","./packages/@react-aria/datepicker/intl/en-US.json","./packages/@react-aria/datepicker/intl/es-ES.json","./packages/@react-aria/datepicker/intl/et-EE.json","./packages/@react-aria/datepicker/intl/fi-FI.json","./packages/@react-aria/datepicker/intl/fr-FR.json","./packages/@react-aria/datepicker/intl/he-IL.json","./packages/@react-aria/datepicker/intl/hr-HR.json","./packages/@react-aria/datepicker/intl/hu-HU.json","./packages/@react-aria/datepicker/intl/it-IT.json","./packages/@react-aria/datepicker/intl/ja-JP.json","./packages/@react-aria/datepicker/intl/ko-KR.json","./packages/@react-aria/datepicker/intl/lt-LT.json","./packages/@react-aria/datepicker/intl/lv-LV.json","./packages/@react-aria/datepicker/intl/nb-NO.json","./packages/@react-aria/datepicker/intl/nl-NL.json","./packages/@react-aria/datepicker/intl/pl-PL.json","./packages/@react-aria/datepicker/intl/pt-BR.json","./packages/@react-aria/datepicker/intl/pt-PT.json","./packages/@react-aria/datepicker/intl/ro-RO.json","./packages/@react-aria/datepicker/intl/ru-RU.json","./packages/@react-aria/datepicker/intl/sk-SK.json","./packages/@react-aria/datepicker/intl/sl-SI.json","./packages/@react-aria/datepicker/intl/sr-SP.json","./packages/@react-aria/datepicker/intl/sv-SE.json","./packages/@react-aria/datepicker/intl/tr-TR.json","./packages/@react-aria/datepicker/intl/uk-UA.json","./packages/@react-aria/datepicker/intl/zh-CN.json","./packages/@react-aria/datepicker/intl/zh-TW.json","./packages/@react-aria/datepicker/src/useDatePickerGroup.ts","./packages/@react-aria/datepicker/src/useDatePicker.ts","./packages/@react-aria/datepicker/src/useDateField.ts","./packages/@react-aria/datepicker/src/useDisplayNames.ts","./packages/@react-aria/datepicker/src/useDateSegment.ts","./packages/@react-aria/datepicker/src/useDateRangePicker.ts"],"sourcesContent":["function $parcel$interopDefault(a) {\n return a && a.__esModule ? a.default : a;\n}\n\nfunction $parcel$defineInteropFlag(a) {\n Object.defineProperty(a, '__esModule', {value: true});\n}\n\nfunction $parcel$exportWildcard(dest, source) {\n Object.keys(source).forEach(function(key) {\n if (key === 'default' || key === '__esModule') {\n return;\n }\n\n Object.defineProperty(dest, key, {\n enumerable: true,\n get: function get() {\n return source[key];\n },\n });\n });\n\n return dest;\n}\n\nfunction $parcel$missingModule(name) {\n var err = new Error(\"Cannot find module '\" + name + \"'\");\n err.code = 'MODULE_NOT_FOUND';\n throw err;\n}\n\nvar $parcel$global =\n typeof globalThis !== 'undefined'\n ? globalThis\n : typeof self !== 'undefined'\n ? self\n : typeof window !== 'undefined'\n ? window\n : typeof global !== 'undefined'\n ? global\n : {};\n","{\n \"calendar\": \"التقويم\",\n \"currentDate\": \"{date, date, full}\",\n \"currentDateRange\": \"{start, date, long} إلى {end, date, long}\",\n \"date\": \"التاريخ\",\n \"dateRange\": \"نطاق التاريخ\",\n \"day\": \"يوم\",\n \"dayPeriod\": \"ص/م\",\n \"endDate\": \"تاريخ الانتهاء\",\n \"era\": \"العصر\",\n \"hour\": \"الساعات\",\n \"minute\": \"الدقائق\",\n \"month\": \"الشهر\",\n \"second\": \"الثواني\",\n \"startDate\": \"تاريخ البدء\",\n \"year\": \"السنة\",\n \"weekday\": \"اليوم\",\n \"timeZoneName\": \"التوقيت\"\n}\n","{\n \"calendar\": \"Календар\",\n \"currentDate\": \"{date, date, full}\",\n \"currentDateRange\": \"{start, date, long} до {end, date, long}\",\n \"date\": \"Дата\",\n \"dateRange\": \"Времеви интервал\",\n \"day\": \"ден\",\n \"dayPeriod\": \"пр.об./сл.об.\",\n \"endDate\": \"Крайна дата\",\n \"era\": \"ера\",\n \"hour\": \"час\",\n \"minute\": \"минута\",\n \"month\": \"месец\",\n \"second\": \"секунда\",\n \"startDate\": \"Начална дата\",\n \"year\": \"година\",\n \"weekday\": \"ден от седмицата\",\n \"timeZoneName\": \"часова зона\"\n}\n","{\n \"calendar\": \"Kalendář\",\n \"currentDate\": \"{date, date, full}\",\n \"currentDateRange\": \"{start, date, long} až {end, date, long}\",\n \"date\": \"Datum\",\n \"dateRange\": \"Rozsah dat\",\n \"day\": \"den\",\n \"dayPeriod\": \"část dne\",\n \"endDate\": \"Konečné datum\",\n \"era\": \"letopočet\",\n \"hour\": \"hodina\",\n \"minute\": \"minuta\",\n \"month\": \"měsíc\",\n \"second\": \"sekunda\",\n \"startDate\": \"Počáteční datum\",\n \"year\": \"rok\",\n \"weekday\": \"den v týdnu\",\n \"timeZoneName\": \"časové pásmo\"\n}\n","{\n \"calendar\": \"Kalender\",\n \"currentDate\": \"{date, date, full}\",\n \"currentDateRange\": \"{start, date, long} til {end, date, long}\",\n \"date\": \"Dato\",\n \"dateRange\": \"Datointerval\",\n \"day\": \"dag\",\n \"dayPeriod\": \"AM/PM\",\n \"endDate\": \"Slutdato\",\n \"era\": \"æra\",\n \"hour\": \"time\",\n \"minute\": \"minut\",\n \"month\": \"måned\",\n \"second\": \"sekund\",\n \"startDate\": \"Startdato\",\n \"year\": \"år\",\n \"weekday\": \"ugedag\",\n \"timeZoneName\": \"tidszone\"\n}\n","{\n \"calendar\": \"Kalender\",\n \"currentDate\": \"{date, date, full}\",\n \"currentDateRange\": \"{start, date, long} bis {end, date, long}\",\n \"date\": \"Datum\",\n \"dateRange\": \"Datumsbereich\",\n \"day\": \"Tag\",\n \"dayPeriod\": \"Tageshälfte\",\n \"endDate\": \"Enddatum\",\n \"era\": \"Epoche\",\n \"hour\": \"Stunde\",\n \"minute\": \"Minute\",\n \"month\": \"Monat\",\n \"second\": \"Sekunde\",\n \"startDate\": \"Anfangsdatum\",\n \"year\": \"Jahr\",\n \"weekday\": \"Wochentag\",\n \"timeZoneName\": \"Zeitzone\"\n}\n","{\n \"calendar\": \"Ημερολόγιο\",\n \"currentDate\": \"{date, date, full}\",\n \"currentDateRange\": \"{start, date, long} ως {end, date, long}\",\n \"date\": \"Ημερομηνία\",\n \"dateRange\": \"Εύρος ημερομηνιών\",\n \"day\": \"ημέρα\",\n \"dayPeriod\": \"π.μ./μ.μ.\",\n \"endDate\": \"Ημερομηνία λήξης\",\n \"era\": \"περίοδος\",\n \"hour\": \"ώρα\",\n \"minute\": \"λεπτό\",\n \"month\": \"μήνας\",\n \"second\": \"δευτερόλεπτο\",\n \"startDate\": \"Ημερομηνία έναρξης\",\n \"year\": \"έτος\",\n \"weekday\": \"καθημερινή\",\n \"timeZoneName\": \"ζώνη ώρας\"\n}\n","{\n \"era\": \"era\",\n \"year\": \"year\",\n \"month\": \"month\",\n \"day\": \"day\",\n \"hour\": \"hour\",\n \"minute\": \"minute\",\n \"second\": \"second\",\n \"dayPeriod\": \"AM/PM\",\n \"calendar\": \"Calendar\",\n \"date\": \"Date\",\n \"dateRange\": \"Date Range\",\n \"startDate\": \"Start Date\",\n \"endDate\": \"End Date\",\n \"currentDate\": \"{date, date, full}\",\n \"currentDateRange\": \"{start, date, long} to {end, date, long}\",\n \"weekday\": \"day of the week\",\n \"timeZoneName\": \"time zone\"\n}\n","{\n \"calendar\": \"Calendario\",\n \"currentDate\": \"{date, date, full}\",\n \"currentDateRange\": \"{start, date, long} a {end, date, long}\",\n \"date\": \"Fecha\",\n \"dateRange\": \"Intervalo de fecha\",\n \"day\": \"día\",\n \"dayPeriod\": \"a. m./p. m.\",\n \"endDate\": \"Fecha final\",\n \"era\": \"era\",\n \"hour\": \"hora\",\n \"minute\": \"minuto\",\n \"month\": \"mes\",\n \"second\": \"segundo\",\n \"startDate\": \"Fecha de inicio\",\n \"year\": \"año\",\n \"weekday\": \"día de la semana\",\n \"timeZoneName\": \"zona horaria\"\n}\n","{\n \"calendar\": \"Kalender\",\n \"currentDate\": \"{date, date, full}\",\n \"currentDateRange\": \"{start, date, long} kuni {end, date, long}\",\n \"date\": \"Kuupäev\",\n \"dateRange\": \"Kuupäevavahemik\",\n \"day\": \"päev\",\n \"dayPeriod\": \"enne/pärast lõunat\",\n \"endDate\": \"Lõppkuupäev\",\n \"era\": \"ajastu\",\n \"hour\": \"tund\",\n \"minute\": \"minut\",\n \"month\": \"kuu\",\n \"second\": \"sekund\",\n \"startDate\": \"Alguskuupäev\",\n \"year\": \"aasta\",\n \"weekday\": \"nädalapäev\",\n \"timeZoneName\": \"ajavöönd\"\n}\n","{\n \"calendar\": \"Kalenteri\",\n \"currentDate\": \"{date, date, full}\",\n \"currentDateRange\": \"{start, date, long}–{end, date, long}\",\n \"date\": \"Päivämäärä\",\n \"dateRange\": \"Päivämääräalue\",\n \"day\": \"päivä\",\n \"dayPeriod\": \"vuorokaudenaika\",\n \"endDate\": \"Päättymispäivä\",\n \"era\": \"aikakausi\",\n \"hour\": \"tunti\",\n \"minute\": \"minuutti\",\n \"month\": \"kuukausi\",\n \"second\": \"sekunti\",\n \"startDate\": \"Alkamispäivä\",\n \"year\": \"vuosi\",\n \"weekday\": \"viikonpäivä\",\n \"timeZoneName\": \"aikavyöhyke\"\n}\n","{\n \"calendar\": \"Calendrier\",\n \"currentDate\": \"{date, date, full}\",\n \"currentDateRange\": \"{start, date, long} au {end, date, long}\",\n \"date\": \"Date\",\n \"dateRange\": \"Plage de dates\",\n \"day\": \"jour\",\n \"dayPeriod\": \"cadran\",\n \"endDate\": \"Date de fin\",\n \"era\": \"ère\",\n \"hour\": \"heure\",\n \"minute\": \"minute\",\n \"month\": \"mois\",\n \"second\": \"seconde\",\n \"startDate\": \"Date de début\",\n \"year\": \"année\",\n \"weekday\": \"jour de la semaine\",\n \"timeZoneName\": \"fuseau horaire\"\n}\n","{\n \"calendar\": \"לוח שנה\",\n \"currentDate\": \"{date, date, full}\",\n \"currentDateRange\": \"מ-{start, date, long} ועד {end, date, long}\",\n \"date\": \"תאריך\",\n \"dateRange\": \"טווח תאריכים\",\n \"day\": \"יום\",\n \"dayPeriod\": \"לפנה״צ/אחה״צ\",\n \"endDate\": \"תאריך סיום\",\n \"era\": \"תקופה\",\n \"hour\": \"שעה\",\n \"minute\": \"דקה\",\n \"month\": \"חודש\",\n \"second\": \"שנייה\",\n \"startDate\": \"תאריך התחלה\",\n \"year\": \"שנה\",\n \"weekday\": \"יום בשבוע\",\n \"timeZoneName\": \"אזור זמן\"\n}\n","{\n \"calendar\": \"Kalendar\",\n \"currentDate\": \"{date, date, full}\",\n \"currentDateRange\": \"{start, date, long} do {end, date, long}\",\n \"date\": \"Datum\",\n \"dateRange\": \"Raspon datuma\",\n \"day\": \"dan\",\n \"dayPeriod\": \"AM/PM\",\n \"endDate\": \"Datum završetka\",\n \"era\": \"era\",\n \"hour\": \"sat\",\n \"minute\": \"minuta\",\n \"month\": \"mjesec\",\n \"second\": \"sekunda\",\n \"startDate\": \"Datum početka\",\n \"year\": \"godina\",\n \"weekday\": \"dan u tjednu\",\n \"timeZoneName\": \"vremenska zona\"\n}\n","{\n \"calendar\": \"Naptár\",\n \"currentDate\": \"{date, date, full}\",\n \"currentDateRange\": \"{start, date, long} – {end, date, long}\",\n \"date\": \"Dátum\",\n \"dateRange\": \"Dátumtartomány\",\n \"day\": \"nap\",\n \"dayPeriod\": \"napszak\",\n \"endDate\": \"Befejező dátum\",\n \"era\": \"éra\",\n \"hour\": \"óra\",\n \"minute\": \"perc\",\n \"month\": \"hónap\",\n \"second\": \"másodperc\",\n \"startDate\": \"Kezdő dátum\",\n \"year\": \"év\",\n \"weekday\": \"hét napja\",\n \"timeZoneName\": \"időzóna\"\n}\n","{\n \"calendar\": \"Calendario\",\n \"currentDate\": \"{date, date, full}\",\n \"currentDateRange\": \"Da {start, date, long} a {end, date, long}\",\n \"date\": \"Data\",\n \"dateRange\": \"Intervallo date\",\n \"day\": \"giorno\",\n \"dayPeriod\": \"AM/PM\",\n \"endDate\": \"Data finale\",\n \"era\": \"era\",\n \"hour\": \"ora\",\n \"minute\": \"minuto\",\n \"month\": \"mese\",\n \"second\": \"secondo\",\n \"startDate\": \"Data iniziale\",\n \"year\": \"anno\",\n \"weekday\": \"giorno della settimana\",\n \"timeZoneName\": \"fuso orario\"\n}\n","{\n \"calendar\": \"カレンダー\",\n \"currentDate\": \"{date, date, full}\",\n \"currentDateRange\": \"{start, date, long} ~ {end, date, long}\",\n \"date\": \"日付\",\n \"dateRange\": \"日付範囲\",\n \"day\": \"日\",\n \"dayPeriod\": \"午前/午後\",\n \"endDate\": \"終了日\",\n \"era\": \"時代\",\n \"hour\": \"時\",\n \"minute\": \"分\",\n \"month\": \"月\",\n \"second\": \"秒\",\n \"startDate\": \"開始日\",\n \"year\": \"年\",\n \"weekday\": \"曜日\",\n \"timeZoneName\": \"タイムゾーン\"\n}\n","{\n \"calendar\": \"달력\",\n \"currentDate\": \"{date, date, full}\",\n \"currentDateRange\": \"{start, date, long} ~ {end, date, long}\",\n \"date\": \"날짜\",\n \"dateRange\": \"날짜 범위\",\n \"day\": \"일\",\n \"dayPeriod\": \"오전/오후\",\n \"endDate\": \"종료 날짜\",\n \"era\": \"연호\",\n \"hour\": \"시\",\n \"minute\": \"분\",\n \"month\": \"월\",\n \"second\": \"초\",\n \"startDate\": \"시작 날짜\",\n \"year\": \"년\",\n \"weekday\": \"요일\",\n \"timeZoneName\": \"시간대\"\n}\n","{\n \"calendar\": \"Kalendorius\",\n \"currentDate\": \"{date, date, full}\",\n \"currentDateRange\": \"Nuo {start, date, long} iki {end, date, long}\",\n \"date\": \"Data\",\n \"dateRange\": \"Datų intervalas\",\n \"day\": \"diena\",\n \"dayPeriod\": \"iki pietų / po pietų\",\n \"endDate\": \"Pabaigos data\",\n \"era\": \"era\",\n \"hour\": \"valanda\",\n \"minute\": \"minutė\",\n \"month\": \"mėnuo\",\n \"second\": \"sekundė\",\n \"startDate\": \"Pradžios data\",\n \"year\": \"metai\",\n \"weekday\": \"savaitės diena\",\n \"timeZoneName\": \"laiko juosta\"\n}\n","{\n \"calendar\": \"Kalendārs\",\n \"currentDate\": \"{date, date, full}\",\n \"currentDateRange\": \"{start, date, long} līdz {end, date, long}\",\n \"date\": \"Datums\",\n \"dateRange\": \"Datumu diapazons\",\n \"day\": \"diena\",\n \"dayPeriod\": \"priekšpusdienā/pēcpusdienā\",\n \"endDate\": \"Beigu datums\",\n \"era\": \"ēra\",\n \"hour\": \"stundas\",\n \"minute\": \"minūtes\",\n \"month\": \"mēnesis\",\n \"second\": \"sekundes\",\n \"startDate\": \"Sākuma datums\",\n \"year\": \"gads\",\n \"weekday\": \"nedēļas diena\",\n \"timeZoneName\": \"laika josla\"\n}\n","{\n \"calendar\": \"Kalender\",\n \"currentDate\": \"{date, date, full}\",\n \"currentDateRange\": \"{start, date, long} til {end, date, long}\",\n \"date\": \"Dato\",\n \"dateRange\": \"Datoområde\",\n \"day\": \"dag\",\n \"dayPeriod\": \"a.m./p.m.\",\n \"endDate\": \"Sluttdato\",\n \"era\": \"tidsalder\",\n \"hour\": \"time\",\n \"minute\": \"minutt\",\n \"month\": \"måned\",\n \"second\": \"sekund\",\n \"startDate\": \"Startdato\",\n \"year\": \"år\",\n \"weekday\": \"ukedag\",\n \"timeZoneName\": \"tidssone\"\n}\n","{\n \"calendar\": \"Kalender\",\n \"currentDate\": \"{date, date, full}\",\n \"currentDateRange\": \"{start, date, long} t/m {end, date, long}\",\n \"date\": \"Datum\",\n \"dateRange\": \"Datumbereik\",\n \"day\": \"dag\",\n \"dayPeriod\": \"a.m./p.m.\",\n \"endDate\": \"Einddatum\",\n \"era\": \"tijdperk\",\n \"hour\": \"uur\",\n \"minute\": \"minuut\",\n \"month\": \"maand\",\n \"second\": \"seconde\",\n \"startDate\": \"Startdatum\",\n \"year\": \"jaar\",\n \"weekday\": \"dag van de week\",\n \"timeZoneName\": \"tijdzone\"\n}\n","{\n \"calendar\": \"Kalendarz\",\n \"currentDate\": \"{date, date, full}\",\n \"currentDateRange\": \"{start, date, long} do {end, date, long}\",\n \"date\": \"Data\",\n \"dateRange\": \"Zakres dat\",\n \"day\": \"dzień\",\n \"dayPeriod\": \"rano / po południu / wieczorem\",\n \"endDate\": \"Data końcowa\",\n \"era\": \"era\",\n \"hour\": \"godzina\",\n \"minute\": \"minuta\",\n \"month\": \"miesiąc\",\n \"second\": \"sekunda\",\n \"startDate\": \"Data początkowa\",\n \"year\": \"rok\",\n \"weekday\": \"dzień tygodnia\",\n \"timeZoneName\": \"strefa czasowa\"\n}\n","{\n \"calendar\": \"Calendário\",\n \"currentDate\": \"{date, date, full}\",\n \"currentDateRange\": \"{start, date, long} a {end, date, long}\",\n \"date\": \"Data\",\n \"dateRange\": \"Intervalo de datas\",\n \"day\": \"dia\",\n \"dayPeriod\": \"AM/PM\",\n \"endDate\": \"Data final\",\n \"era\": \"era\",\n \"hour\": \"hora\",\n \"minute\": \"minuto\",\n \"month\": \"mês\",\n \"second\": \"segundo\",\n \"startDate\": \"Data inicial\",\n \"year\": \"ano\",\n \"weekday\": \"dia da semana\",\n \"timeZoneName\": \"fuso horário\"\n}\n","{\n \"calendar\": \"Calendário\",\n \"currentDate\": \"{date, date, full}\",\n \"currentDateRange\": \"{start, date, long} a {end, date, long}\",\n \"date\": \"Data\",\n \"dateRange\": \"Intervalo de datas\",\n \"day\": \"dia\",\n \"dayPeriod\": \"am/pm\",\n \"endDate\": \"Data de Término\",\n \"era\": \"era\",\n \"hour\": \"hora\",\n \"minute\": \"minuto\",\n \"month\": \"mês\",\n \"second\": \"segundo\",\n \"startDate\": \"Data de Início\",\n \"year\": \"ano\",\n \"weekday\": \"dia da semana\",\n \"timeZoneName\": \"fuso horário\"\n}\n","{\n \"calendar\": \"Calendar\",\n \"currentDate\": \"{date, date, full}\",\n \"currentDateRange\": \"{start, date, long} - {end, date, long}\",\n \"date\": \"Dată\",\n \"dateRange\": \"Raza datei\",\n \"day\": \"zi\",\n \"dayPeriod\": \"a.m/p.m.\",\n \"endDate\": \"Dată final\",\n \"era\": \"eră\",\n \"hour\": \"oră\",\n \"minute\": \"minut\",\n \"month\": \"lună\",\n \"second\": \"secundă\",\n \"startDate\": \"Dată început\",\n \"year\": \"an\",\n \"weekday\": \"ziua din săptămână\",\n \"timeZoneName\": \"fus orar\"\n}\n","{\n \"calendar\": \"Календарь\",\n \"currentDate\": \"{date, date, full}\",\n \"currentDateRange\": \"{start, date, long} – {end, date, long}\",\n \"date\": \"Дата\",\n \"dateRange\": \"Диапазон дат\",\n \"day\": \"день\",\n \"dayPeriod\": \"AM/PM\",\n \"endDate\": \"Дата окончания\",\n \"era\": \"эра\",\n \"hour\": \"час\",\n \"minute\": \"минута\",\n \"month\": \"месяц\",\n \"second\": \"секунда\",\n \"startDate\": \"Дата начала\",\n \"year\": \"год\",\n \"weekday\": \"день недели\",\n \"timeZoneName\": \"часовой пояс\"\n}\n","{\n \"calendar\": \"Kalendár\",\n \"currentDate\": \"{date, date, full}\",\n \"currentDateRange\": \"{start, date, long} do {end, date, long}\",\n \"date\": \"Dátum\",\n \"dateRange\": \"Rozsah dátumov\",\n \"day\": \"deň\",\n \"dayPeriod\": \"AM/PM\",\n \"endDate\": \"Dátum ukončenia\",\n \"era\": \"letopočet\",\n \"hour\": \"hodina\",\n \"minute\": \"minúta\",\n \"month\": \"mesiac\",\n \"second\": \"sekunda\",\n \"startDate\": \"Dátum začatia\",\n \"year\": \"rok\",\n \"weekday\": \"deň týždňa\",\n \"timeZoneName\": \"časové pásmo\"\n}\n","{\n \"calendar\": \"Koledar\",\n \"currentDate\": \"{date, date, full}\",\n \"currentDateRange\": \"{start, date, long} do {end, date, long}\",\n \"date\": \"Datum\",\n \"dateRange\": \"Datumski obseg\",\n \"day\": \"dan\",\n \"dayPeriod\": \"dop/pop\",\n \"endDate\": \"Datum konca\",\n \"era\": \"doba\",\n \"hour\": \"ura\",\n \"minute\": \"minuta\",\n \"month\": \"mesec\",\n \"second\": \"sekunda\",\n \"startDate\": \"Datum začetka\",\n \"year\": \"leto\",\n \"weekday\": \"dan v tednu\",\n \"timeZoneName\": \"časovni pas\"\n}\n","{\n \"calendar\": \"Kalendar\",\n \"currentDate\": \"{date, date, full}\",\n \"currentDateRange\": \"{start, date, long} do {end, date, long}\",\n \"date\": \"Datum\",\n \"dateRange\": \"Opseg datuma\",\n \"day\": \"дан\",\n \"dayPeriod\": \"пре подне/по подне\",\n \"endDate\": \"Datum završetka\",\n \"era\": \"ера\",\n \"hour\": \"сат\",\n \"minute\": \"минут\",\n \"month\": \"месец\",\n \"second\": \"секунд\",\n \"startDate\": \"Datum početka\",\n \"year\": \"година\",\n \"weekday\": \"дан у недељи\",\n \"timeZoneName\": \"временска зона\"\n}\n","{\n \"calendar\": \"Kalender\",\n \"currentDate\": \"{date, date, full}\",\n \"currentDateRange\": \"{start, date, long} till {end, date, long}\",\n \"date\": \"Datum\",\n \"dateRange\": \"Datumintervall\",\n \"day\": \"dag\",\n \"dayPeriod\": \"fm/em\",\n \"endDate\": \"Slutdatum\",\n \"era\": \"era\",\n \"hour\": \"timme\",\n \"minute\": \"minut\",\n \"month\": \"månad\",\n \"second\": \"sekund\",\n \"startDate\": \"Startdatum\",\n \"year\": \"år\",\n \"weekday\": \"veckodag\",\n \"timeZoneName\": \"tidszon\"\n}\n","{\n \"calendar\": \"Takvim\",\n \"currentDate\": \"{date, date, full}\",\n \"currentDateRange\": \"{start, date, long} - {end, date, long}\",\n \"date\": \"Tarih\",\n \"dateRange\": \"Tarih Aralığı\",\n \"day\": \"gün\",\n \"dayPeriod\": \"ÖÖ/ÖS\",\n \"endDate\": \"Bitiş Tarihi\",\n \"era\": \"çağ\",\n \"hour\": \"saat\",\n \"minute\": \"dakika\",\n \"month\": \"ay\",\n \"second\": \"saniye\",\n \"startDate\": \"Başlangıç Tarihi\",\n \"year\": \"yıl\",\n \"weekday\": \"haftanın günü\",\n \"timeZoneName\": \"saat dilimi\"\n}\n","{\n \"calendar\": \"Календар\",\n \"currentDate\": \"{date, date, full}\",\n \"currentDateRange\": \"Від {start, date, long} до {end, date, long}\",\n \"date\": \"Дата\",\n \"dateRange\": \"Діапазон дат\",\n \"day\": \"день\",\n \"dayPeriod\": \"дп/пп\",\n \"endDate\": \"Дата завершення\",\n \"era\": \"ера\",\n \"hour\": \"година\",\n \"minute\": \"хвилина\",\n \"month\": \"місяць\",\n \"second\": \"секунда\",\n \"startDate\": \"Дата початку\",\n \"year\": \"рік\",\n \"weekday\": \"день тижня\",\n \"timeZoneName\": \"часовий пояс\"\n}\n","{\n \"calendar\": \"日历\",\n \"currentDate\": \"{date, date, full}\",\n \"currentDateRange\": \"{start, date, long} 至 {end, date, long}\",\n \"date\": \"日期\",\n \"dateRange\": \"日期范围\",\n \"day\": \"日\",\n \"dayPeriod\": \"上午/下午\",\n \"endDate\": \"结束日期\",\n \"era\": \"纪元\",\n \"hour\": \"小时\",\n \"minute\": \"分钟\",\n \"month\": \"月\",\n \"second\": \"秒\",\n \"startDate\": \"开始日期\",\n \"year\": \"年\",\n \"weekday\": \"工作日\",\n \"timeZoneName\": \"时区\"\n}\n","{\n \"calendar\": \"日曆\",\n \"currentDate\": \"{date, date, full}\",\n \"currentDateRange\": \"{start, date, long}至 {end, date, long}\",\n \"date\": \"日期\",\n \"dateRange\": \"日期範圍\",\n \"day\": \"日\",\n \"dayPeriod\": \"上午/下午\",\n \"endDate\": \"結束日期\",\n \"era\": \"纪元\",\n \"hour\": \"小时\",\n \"minute\": \"分钟\",\n \"month\": \"月\",\n \"second\": \"秒\",\n \"startDate\": \"開始日期\",\n \"year\": \"年\",\n \"weekday\": \"工作日\",\n \"timeZoneName\": \"时区\"\n}\n","import {DatePickerFieldState, DatePickerState, DateRangePickerState} from '@react-stately/datepicker';\nimport {KeyboardEvent} from '@react-types/shared';\nimport {mergeProps} from '@react-aria/utils';\nimport {RefObject} from 'react';\nimport {usePress} from '@react-aria/interactions';\n\nexport function useDatePickerGroup(state: DatePickerState | DateRangePickerState | DatePickerFieldState, ref: RefObject<HTMLElement>) {\n // Open the popover on alt + arrow down\n let onKeyDown = (e: KeyboardEvent) => {\n if (e.altKey && e.key === 'ArrowDown' && 'setOpen' in state) {\n e.preventDefault();\n e.stopPropagation();\n state.setOpen(true);\n }\n };\n\n // Focus the first placeholder segment from the end on mouse down/touch up in the field.\n let focusLast = () => {\n let elements = ref.current.querySelectorAll('[tabindex=\"0\"]');\n let index = elements.length - 1;\n while (index >= 0 && elements[index].getAttribute('aria-placeholder')) {\n index--;\n }\n index = Math.min(index + 1, elements.length - 1);\n let element = elements[index] as HTMLElement;\n if (element) {\n element.focus();\n }\n };\n\n let {pressProps} = usePress({\n onPressStart(e) {\n if (e.pointerType === 'mouse') {\n focusLast();\n }\n },\n onPress(e) {\n if (e.pointerType !== 'mouse') {\n focusLast();\n }\n }\n });\n\n return mergeProps(pressProps, {onKeyDown});\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {AriaButtonProps} from '@react-types/button';\nimport {AriaDatePickerProps, DateValue} from '@react-types/datepicker';\nimport {AriaDialogProps} from '@react-types/dialog';\nimport {createFocusManager} from '@react-aria/focus';\nimport {DatePickerState} from '@react-stately/datepicker';\nimport {HTMLAttributes, LabelHTMLAttributes, RefObject} from 'react';\n// @ts-ignore\nimport intlMessages from '../intl/*.json';\nimport {mergeProps, useDescription, useId} from '@react-aria/utils';\nimport {useDatePickerGroup} from './useDatePickerGroup';\nimport {useField} from '@react-aria/label';\nimport {useLocale, useMessageFormatter} from '@react-aria/i18n';\n\ninterface DatePickerAria<T extends DateValue> {\n groupProps: HTMLAttributes<HTMLElement>,\n labelProps: LabelHTMLAttributes<HTMLLabelElement>,\n fieldProps: AriaDatePickerProps<T>,\n /** Props for the description element, if any. */\n descriptionProps: HTMLAttributes<HTMLElement>,\n /** Props for the error message element, if any. */\n errorMessageProps: HTMLAttributes<HTMLElement>,\n buttonProps: AriaButtonProps,\n dialogProps: AriaDialogProps\n}\n\nexport function useDatePicker<T extends DateValue>(props: AriaDatePickerProps<T>, state: DatePickerState, ref: RefObject<HTMLElement>): DatePickerAria<T> {\n let buttonId = useId();\n let dialogId = useId();\n let formatMessage = useMessageFormatter(intlMessages);\n\n let {labelProps, fieldProps, descriptionProps, errorMessageProps} = useField({\n ...props,\n labelElementType: 'span'\n });\n\n let groupProps = useDatePickerGroup(state, ref);\n\n let labelledBy = fieldProps['aria-labelledby'] || fieldProps.id;\n\n let {locale} = useLocale();\n let descProps = useDescription(state.formatValue(locale, {month: 'long'}));\n let ariaDescribedBy = [descProps['aria-describedby'], fieldProps['aria-describedby']].filter(Boolean).join(' ') || undefined;\n\n return {\n groupProps: mergeProps(groupProps, descProps, {\n role: 'group',\n 'aria-disabled': props.isDisabled || null,\n 'aria-labelledby': labelledBy,\n 'aria-describedby': ariaDescribedBy\n }),\n labelProps: {\n ...labelProps,\n onClick: () => {\n let focusManager = createFocusManager(ref);\n focusManager.focusFirst();\n }\n },\n fieldProps,\n descriptionProps,\n errorMessageProps,\n buttonProps: {\n ...descProps,\n id: buttonId,\n excludeFromTabOrder: true,\n 'aria-haspopup': 'dialog',\n 'aria-label': formatMessage('calendar'),\n 'aria-labelledby': `${labelledBy} ${buttonId}`,\n 'aria-describedby': ariaDescribedBy\n },\n dialogProps: {\n id: dialogId,\n 'aria-labelledby': `${labelledBy} ${buttonId}`\n }\n };\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {AriaDatePickerProps, DateValue} from '@react-types/datepicker';\nimport {createFocusManager} from '@react-aria/focus';\nimport {DatePickerFieldState} from '@react-stately/datepicker';\nimport {HTMLAttributes, LabelHTMLAttributes, RefObject} from 'react';\nimport {mergeProps, useDescription} from '@react-aria/utils';\nimport {useDateFormatter} from '@react-aria/i18n';\nimport {useDatePickerGroup} from './useDatePickerGroup';\nimport {useField} from '@react-aria/label';\nimport {useFocusWithin} from '@react-aria/interactions';\n\n// Allows this hook to also be used with TimeField\ninterface DateFieldProps<T extends DateValue> extends Omit<AriaDatePickerProps<T>, 'value' | 'defaultValue' | 'onChange' | 'minValue' | 'maxValue' | 'placeholderValue'> {}\n\ninterface DateFieldAria {\n labelProps: LabelHTMLAttributes<HTMLLabelElement>,\n fieldProps: HTMLAttributes<HTMLElement>,\n /** Props for the description element, if any. */\n descriptionProps: HTMLAttributes<HTMLElement>,\n /** Props for the error message element, if any. */\n errorMessageProps: HTMLAttributes<HTMLElement>\n}\n\nexport const labelIds = new WeakMap<DatePickerFieldState, string>();\n\nexport function useDateField<T extends DateValue>(props: DateFieldProps<T>, state: DatePickerFieldState, ref: RefObject<HTMLElement>): DateFieldAria {\n let {labelProps, fieldProps, descriptionProps, errorMessageProps} = useField({\n ...props,\n labelElementType: 'span'\n });\n\n let groupProps = useDatePickerGroup(state, ref);\n\n let {focusWithinProps} = useFocusWithin({\n onBlurWithin() {\n state.confirmPlaceholder();\n }\n });\n\n let formatter = useDateFormatter(state.getFormatOptions({month: 'long'}));\n let descProps = useDescription(state.value ? formatter.format(state.dateValue) : null);\n\n labelIds.set(state, fieldProps['aria-labelledby'] || fieldProps.id);\n\n return {\n labelProps: {\n ...labelProps,\n onClick: () => {\n let focusManager = createFocusManager(ref);\n focusManager.focusFirst();\n }\n },\n fieldProps: mergeProps(fieldProps, descProps, groupProps, focusWithinProps, {\n role: 'group',\n 'aria-disabled': props.isDisabled || undefined,\n 'aria-describedby': [descProps['aria-describedby'], fieldProps['aria-describedby']].filter(Boolean).join(' ') || undefined\n }),\n descriptionProps,\n errorMessageProps\n };\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\n// @ts-ignore\nimport intlMessages from '../intl/*.json';\nimport {MessageDictionary} from '@internationalized/message';\nimport {useLocale} from '@react-aria/i18n';\nimport {useMemo} from 'react';\n\ntype Field = 'era' | 'year' | 'month' | 'day' | 'hour' | 'minute' | 'second' | 'dayPeriod' | 'timeZoneName' | 'weekday';\ninterface DisplayNames {\n of(field: Field): string\n}\n\nexport function useDisplayNames(): DisplayNames {\n let {locale} = useLocale();\n return useMemo(() => {\n // Try to use Intl.DisplayNames if possible. It may be supported in browsers, but not support the dateTimeField\n // type as that was only added in v2. https://github.com/tc39/intl-displaynames-v2\n try {\n // @ts-ignore\n return new Intl.DisplayNames(locale, {type: 'dateTimeField'});\n } catch (err) {\n return new DisplayNamesPolyfill(locale);\n }\n }, [locale]);\n}\n\nclass DisplayNamesPolyfill implements DisplayNames {\n private locale: string;\n private dictionary: MessageDictionary;\n\n constructor(locale: string) {\n this.locale = locale;\n this.dictionary = new MessageDictionary(intlMessages);\n }\n\n of(field: Field): string {\n return this.dictionary.getStringForLocale(field, this.locale);\n }\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {DatePickerFieldState, DateSegment} from '@react-stately/datepicker';\nimport {DatePickerProps, DateValue} from '@react-types/datepicker';\nimport {DOMProps} from '@react-types/shared';\nimport {isIOS, isMac, mergeProps, useEvent, useId} from '@react-aria/utils';\nimport {labelIds} from './useDateField';\nimport {NumberParser} from '@internationalized/number';\nimport React, {HTMLAttributes, RefObject, useMemo, useRef} from 'react';\nimport {useDateFormatter, useFilter, useLocale} from '@react-aria/i18n';\nimport {useDisplayNames} from './useDisplayNames';\nimport {useFocusManager} from '@react-aria/focus';\nimport {usePress} from '@react-aria/interactions';\nimport {useSpinButton} from '@react-aria/spinbutton';\n\ninterface DateSegmentAria {\n segmentProps: HTMLAttributes<HTMLDivElement>\n}\n\nexport function useDateSegment<T extends DateValue>(props: DatePickerProps<T> & DOMProps, segment: DateSegment, state: DatePickerFieldState, ref: RefObject<HTMLElement>): DateSegmentAria {\n let enteredKeys = useRef('');\n let {locale, direction} = useLocale();\n let displayNames = useDisplayNames();\n let focusManager = useFocusManager();\n\n let textValue = segment.text;\n let options = useMemo(() => state.dateFormatter.resolvedOptions(), [state.dateFormatter]);\n let monthDateFormatter = useDateFormatter({month: 'long', timeZone: options.timeZone});\n let hourDateFormatter = useDateFormatter({\n hour: 'numeric',\n hour12: options.hour12,\n timeZone: options.timeZone\n });\n\n if (segment.type === 'month') {\n let monthTextValue = monthDateFormatter.format(state.dateValue);\n textValue = monthTextValue !== textValue ? `${textValue} - ${monthTextValue}` : monthTextValue;\n } else if (segment.type === 'hour' || segment.type === 'dayPeriod') {\n textValue = hourDateFormatter.format(state.dateValue);\n }\n\n let {spinButtonProps} = useSpinButton({\n value: segment.value,\n textValue,\n minValue: segment.minValue,\n maxValue: segment.maxValue,\n isDisabled: props.isDisabled,\n isReadOnly: props.isReadOnly || !segment.isEditable,\n isRequired: props.isRequired,\n onIncrement: () => {\n enteredKeys.current = '';\n state.increment(segment.type);\n },\n onDecrement: () => {\n enteredKeys.current = '';\n state.decrement(segment.type);\n },\n onIncrementPage: () => {\n enteredKeys.current = '';\n state.incrementPage(segment.type);\n },\n onDecrementPage: () => {\n enteredKeys.current = '';\n state.decrementPage(segment.type);\n },\n onIncrementToMax: () => {\n enteredKeys.current = '';\n state.setSegment(segment.type, segment.maxValue);\n },\n onDecrementToMin: () => {\n enteredKeys.current = '';\n state.setSegment(segment.type, segment.minValue);\n }\n });\n\n let parser = useMemo(() => new NumberParser(locale, {maximumFractionDigits: 0}), [locale]);\n\n let backspace = () => {\n if (parser.isValidPartialNumber(segment.text) && !props.isReadOnly && !segment.isPlaceholder) {\n let newValue = segment.text.slice(0, -1);\n let parsed = parser.parse(newValue);\n if (newValue.length === 0 || parsed === 0) {\n state.clearSegment(segment.type);\n } else {\n state.setSegment(segment.type, parsed);\n }\n enteredKeys.current = newValue;\n } else if (segment.type === 'dayPeriod') {\n state.clearSegment(segment.type);\n }\n };\n\n let onKeyDown = (e) => {\n // Firefox does not fire selectstart for Ctrl/Cmd + A\n // https://bugzilla.mozilla.org/show_bug.cgi?id=1742153\n if (e.key === 'a' && (isMac() ? e.metaKey : e.ctrlKey)) {\n e.preventDefault();\n }\n\n if (e.ctrlKey || e.metaKey || e.shiftKey || e.altKey) {\n return;\n }\n\n switch (e.key) {\n case 'ArrowLeft':\n e.preventDefault();\n e.stopPropagation();\n if (direction === 'rtl') {\n focusManager.focusNext();\n } else {\n focusManager.focusPrevious();\n }\n break;\n case 'ArrowRight':\n e.preventDefault();\n e.stopPropagation();\n if (direction === 'rtl') {\n focusManager.focusPrevious();\n } else {\n focusManager.focusNext();\n }\n break;\n case 'Enter':\n e.preventDefault();\n e.stopPropagation();\n if (segment.isPlaceholder && !props.isReadOnly) {\n state.confirmPlaceholder(segment.type);\n }\n focusManager.focusNext();\n break;\n case 'Tab':\n break;\n case 'Backspace':\n case 'Delete': {\n // Safari on iOS does not fire beforeinput for the backspace key because the cursor is at the start.\n e.preventDefault();\n e.stopPropagation();\n backspace();\n break;\n }\n }\n };\n\n // Safari dayPeriod option doesn't work...\n let {startsWith} = useFilter({sensitivity: 'base'});\n let amPmFormatter = useDateFormatter({hour: 'numeric', hour12: true});\n let am = useMemo(() => {\n let date = new Date();\n date.setHours(0);\n return amPmFormatter.formatToParts(date).find(part => part.type === 'dayPeriod').value;\n }, [amPmFormatter]);\n\n let pm = useMemo(() => {\n let date = new Date();\n date.setHours(12);\n return amPmFormatter.formatToParts(date).find(part => part.type === 'dayPeriod').value;\n }, [amPmFormatter]);\n\n let onInput = (key: string) => {\n if (props.isDisabled || props.isReadOnly) {\n return;\n }\n\n let newValue = enteredKeys.current + key;\n\n switch (segment.type) {\n case 'dayPeriod':\n if (startsWith(am, key)) {\n state.setSegment('dayPeriod', 0);\n } else if (startsWith(pm, key)) {\n state.setSegment('dayPeriod', 12);\n } else {\n break;\n }\n focusManager.focusNext();\n break;\n case 'day':\n case 'hour':\n case 'minute':\n case 'second':\n case 'month':\n case 'year': {\n if (!parser.isValidPartialNumber(newValue)) {\n return;\n }\n\n let numberValue = parser.parse(newValue);\n let segmentValue = numberValue;\n let allowsZero = segment.minValue === 0;\n if (segment.type === 'hour' && state.dateFormatter.resolvedOptions().hour12) {\n switch (state.dateFormatter.resolvedOptions().hourCycle) {\n case 'h11':\n if (numberValue > 11) {\n segmentValue = parser.parse(key);\n }\n break;\n case 'h12':\n allowsZero = false;\n if (numberValue > 12) {\n segmentValue = parser.parse(key);\n }\n break;\n }\n\n if (segment.value >= 12 && numberValue > 1) {\n numberValue += 12;\n }\n } else if (numberValue > segment.maxValue) {\n segmentValue = parser.parse(key);\n }\n\n if (isNaN(numberValue)) {\n return;\n }\n\n let shouldSetValue = segmentValue !== 0 || allowsZero;\n if (shouldSetValue) {\n state.setSegment(segment.type, segmentValue);\n }\n\n if (Number(numberValue + '0') > segment.maxValue || newValue.length >= String(segment.maxValue).length) {\n enteredKeys.current = '';\n if (shouldSetValue) {\n focusManager.focusNext();\n }\n } else {\n enteredKeys.current = newValue;\n }\n break;\n }\n }\n };\n\n let onFocus = () => {\n enteredKeys.current = '';\n if (ref.current?.scrollIntoView) {\n ref.current.scrollIntoView();\n }\n\n // Safari requires that a selection is set or it won't fire input events.\n // Since usePress disables text selection, this won't happen by default.\n ref.current.style.webkitUserSelect = 'text';\n let selection = window.getSelection();\n selection.collapse(ref.current);\n ref.current.style.webkitUserSelect = '';\n };\n\n let compositionRef = useRef('');\n // @ts-ignore - TODO: possibly old TS version? doesn't fail in my editor...\n useEvent(ref, 'beforeinput', e => {\n e.preventDefault();\n\n switch (e.inputType) {\n case 'deleteContentBackward':\n case 'deleteContentForward':\n if (parser.isValidPartialNumber(segment.text) && !props.isReadOnly) {\n backspace();\n }\n break;\n case 'insertCompositionText':\n // insertCompositionText cannot be canceled.\n // Record the current state of the element so we can restore it in the `input` event below.\n compositionRef.current = ref.current.textContent;\n\n // Safari gets stuck in a composition state unless we also assign to the value here.\n // eslint-disable-next-line no-self-assign\n ref.current.textContent = ref.current.textContent;\n break;\n default:\n if (e.data != null) {\n onInput(e.data);\n }\n break;\n }\n });\n\n useEvent(ref, 'input', (e: InputEvent) => {\n let {inputType, data} = e;\n switch (inputType) {\n case 'insertCompositionText':\n // Reset the DOM to how it was in the beforeinput event.\n ref.current.textContent = compositionRef.current;\n\n // Android sometimes fires key presses of letters as composition events. Need to handle am/pm keys here too.\n // Can also happen e.g. with Pinyin keyboard on iOS.\n if (startsWith(am, data) || startsWith(pm, data)) {\n onInput(data);\n }\n break;\n }\n });\n\n // Focus on mouse down/touch up to match native textfield behavior.\n // usePress handles canceling text selection.\n let {pressProps} = usePress({\n preventFocusOnPress: true,\n onPressStart: (e) => {\n if (e.pointerType === 'mouse') {\n e.target.focus();\n }\n },\n onPress(e) {\n if (e.pointerType !== 'mouse') {\n e.target.focus();\n }\n }\n });\n\n // For Android: prevent selection on long press.\n useEvent(ref, 'selectstart', e => {\n e.preventDefault();\n });\n\n // spinbuttons cannot be focused with VoiceOver on iOS.\n let touchPropOverrides = isIOS() || segment.type === 'timeZoneName' ? {\n role: 'textbox',\n 'aria-valuemax': null,\n 'aria-valuemin': null,\n 'aria-valuetext': null,\n 'aria-valuenow': null\n } : {};\n\n let fieldLabelId = labelIds.get(state);\n\n let id = useId(props.id);\n let isEditable = !props.isDisabled && !props.isReadOnly && segment.isEditable;\n return {\n segmentProps: mergeProps(spinButtonProps, pressProps, {\n id,\n ...touchPropOverrides,\n 'aria-controls': props['aria-controls'],\n // 'aria-haspopup': props['aria-haspopup'], // deprecated in ARIA 1.2\n 'aria-invalid': state.validationState === 'invalid' ? 'true' : undefined,\n 'aria-label': segment.type !== 'literal' ? displayNames.of(segment.type) : undefined,\n 'aria-labelledby': `${fieldLabelId} ${id}`,\n 'aria-placeholder': segment.isPlaceholder ? segment.text : undefined,\n 'aria-readonly': props.isReadOnly || !segment.isEditable ? 'true' : undefined,\n contentEditable: isEditable,\n suppressContentEditableWarning: isEditable,\n spellCheck: isEditable ? 'false' : undefined,\n autoCapitalize: isEditable ? 'off' : undefined,\n autoCorrect: isEditable ? 'off' : undefined,\n // Capitalization was changed in React 17...\n [parseInt(React.version, 10) >= 17 ? 'enterKeyHint' : 'enterkeyhint']: isEditable ? 'next' : undefined,\n inputMode: props.isDisabled || segment.type === 'dayPeriod' || !isEditable ? undefined : 'numeric',\n tabIndex: props.isDisabled ? undefined : 0,\n onKeyDown,\n onFocus\n })\n };\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {AriaButtonProps} from '@react-types/button';\nimport {AriaDatePickerProps, AriaDateRangePickerProps, DateValue} from '@react-types/datepicker';\nimport {AriaDialogProps} from '@react-types/dialog';\nimport {createFocusManager} from '@react-aria/focus';\nimport {DateRangePickerState} from '@react-stately/datepicker';\nimport {HTMLAttributes, LabelHTMLAttributes, RefObject} from 'react';\n// @ts-ignore\nimport intlMessages from '../intl/*.json';\nimport {mergeProps, useDescription, useId, useLabels} from '@react-aria/utils';\nimport {useDatePickerGroup} from './useDatePickerGroup';\nimport {useField} from '@react-aria/label';\nimport {useFocusWithin} from '@react-aria/interactions';\nimport {useLocale, useMessageFormatter} from '@react-aria/i18n';\n\ninterface DateRangePickerAria<T extends DateValue> {\n labelProps: LabelHTMLAttributes<HTMLLabelElement>,\n groupProps: HTMLAttributes<HTMLElement>,\n startFieldProps: AriaDatePickerProps<T>,\n endFieldProps: AriaDatePickerProps<T>,\n /** Props for the description element, if any. */\n descriptionProps: HTMLAttributes<HTMLElement>,\n /** Props for the error message element, if any. */\n errorMessageProps: HTMLAttributes<HTMLElement>,\n buttonProps: AriaButtonProps,\n dialogProps: AriaDialogProps\n}\n\nexport function useDateRangePicker<T extends DateValue>(props: AriaDateRangePickerProps<T>, state: DateRangePickerState, ref: RefObject<HTMLElement>): DateRangePickerAria<T> {\n let formatMessage = useMessageFormatter(intlMessages);\n let {labelProps, fieldProps, descriptionProps, errorMessageProps} = useField({\n ...props,\n labelElementType: 'span'\n });\n\n let labelledBy = fieldProps['aria-labelledby'] || fieldProps.id;\n\n let {locale} = useLocale();\n let description = state.formatValue(locale, {month: 'long'});\n let descProps = useDescription(description);\n\n let startFieldProps = useLabels({\n 'aria-label': formatMessage('startDate'),\n 'aria-labelledby': labelledBy\n });\n\n let endFieldProps = useLabels({\n 'aria-label': formatMessage('endDate'),\n 'aria-labelledby': labelledBy\n });\n\n let buttonId = useId();\n let dialogId = useId();\n\n let groupProps = useDatePickerGroup(state, ref);\n let {focusWithinProps} = useFocusWithin({\n onBlurWithin() {\n state.confirmPlaceholder();\n }\n });\n\n let ariaDescribedBy = [descProps['aria-describedby'], fieldProps['aria-describedby']].filter(Boolean).join(' ') || undefined;\n\n return {\n groupProps: mergeProps(groupProps, fieldProps, descProps, focusWithinProps, {\n role: 'group',\n 'aria-disabled': props.isDisabled || null,\n 'aria-describedby': ariaDescribedBy\n }),\n labelProps: {\n ...labelProps,\n onClick: () => {\n let focusManager = createFocusManager(ref);\n focusManager.focusFirst();\n }\n },\n buttonProps: {\n ...descProps,\n id: buttonId,\n excludeFromTabOrder: true,\n 'aria-haspopup': 'dialog',\n 'aria-label': formatMessage('calendar'),\n 'aria-labelledby': `${labelledBy} ${buttonId}`,\n 'aria-describedby': ariaDescribedBy\n },\n dialogProps: {\n id: dialogId,\n 'aria-labelledby': `${labelledBy} ${buttonId}`\n },\n startFieldProps: {\n ...startFieldProps,\n 'aria-describedby': fieldProps['aria-describedby']\n },\n endFieldProps: {\n ...endFieldProps,\n 'aria-describedby': fieldProps['aria-describedby']\n },\n descriptionProps,\n errorMessageProps\n };\n}\n"],"names":["$parcel$interopDefault","a","__esModule","default","JSON","parse","useDatePickerGroup","state","ref","onKeyDown","e","altKey","key","preventDefault","stopPropagation","setOpen","focusLast","elements","current","querySelectorAll","index","length","getAttribute","Math","min","element","focus","pressProps","usePress","onPressStart","pointerType","onPress","mergeProps","useDatePicker","props","buttonId","useId","dialogId","formatMessage","useMessageFormatter","intlMessages","labelProps","fieldProps","descriptionProps","errorMessageProps","useField","labelElementType","groupProps","labelledBy","id","locale","useLocale","descProps","useDescription","formatValue","month","ariaDescribedBy","filter","Boolean","join","undefined","role","isDisabled","onClick","focusManager","createFocusManager","focusFirst","buttonProps","excludeFromTabOrder","dialogProps","labelIds","WeakMap","useDateField","focusWithinProps","useFocusWithin","onBlurWithin","confirmPlaceholder","formatter","useDateFormatter","getFormatOptions","value","format","dateValue","set","useDisplayNames","useMemo","Intl","DisplayNames","type","err","DisplayNamesPolyfill","constructor","dictionary","MessageDictionary","of","field","getStringForLocale","useDateSegment","segment","enteredKeys","useRef","direction","displayNames","useFocusManager","textValue","text","options","dateFormatter","resolvedOptions","monthDateFormatter","timeZone","hourDateFormatter","hour","hour12","monthTextValue","spinButtonProps","useSpinButton","minValue","maxValue","isReadOnly","isEditable","isRequired","onIncrement","increment","onDecrement","decrement","onIncrementPage","incrementPage","onDecrementPage","decrementPage","onIncrementToMax","setSegment","onDecrementToMin","parser","NumberParser","maximumFractionDigits","backspace","isValidPartialNumber","isPlaceholder","newValue","slice","parsed","clearSegment","isMac","metaKey","ctrlKey","shiftKey","focusNext","focusPrevious","startsWith","useFilter","sensitivity","amPmFormatter","am","date","Date","setHours","formatToParts","find","part","pm","onInput","numberValue","segmentValue","allowsZero","hourCycle","isNaN","shouldSetValue","Number","String","onFocus","scrollIntoView","style","webkitUserSelect","selection","window","getSelection","collapse","compositionRef","useEvent","inputType","textContent","data","preventFocusOnPress","target","touchPropOverrides","isIOS","fieldLabelId","get","segmentProps","validationState","contentEditable","suppressContentEditableWarning","spellCheck","autoCapitalize","autoCorrect","parseInt","React","version","inputMode","tabIndex","useDateRangePicker","description","startFieldProps","useLabels","endFieldProps"],"version":3,"file":"main.js.map"}
|
|
1
|
+
{"mappings":"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","sources":["./node_modules/@parcel/scope-hoisting/lib/helpers.js","./packages/@react-aria/datepicker/intl/ar-AE.json","./packages/@react-aria/datepicker/intl/bg-BG.json","./packages/@react-aria/datepicker/intl/cs-CZ.json","./packages/@react-aria/datepicker/intl/da-DK.json","./packages/@react-aria/datepicker/intl/de-DE.json","./packages/@react-aria/datepicker/intl/el-GR.json","./packages/@react-aria/datepicker/intl/en-US.json","./packages/@react-aria/datepicker/intl/es-ES.json","./packages/@react-aria/datepicker/intl/et-EE.json","./packages/@react-aria/datepicker/intl/fi-FI.json","./packages/@react-aria/datepicker/intl/fr-FR.json","./packages/@react-aria/datepicker/intl/he-IL.json","./packages/@react-aria/datepicker/intl/hr-HR.json","./packages/@react-aria/datepicker/intl/hu-HU.json","./packages/@react-aria/datepicker/intl/it-IT.json","./packages/@react-aria/datepicker/intl/ja-JP.json","./packages/@react-aria/datepicker/intl/ko-KR.json","./packages/@react-aria/datepicker/intl/lt-LT.json","./packages/@react-aria/datepicker/intl/lv-LV.json","./packages/@react-aria/datepicker/intl/nb-NO.json","./packages/@react-aria/datepicker/intl/nl-NL.json","./packages/@react-aria/datepicker/intl/pl-PL.json","./packages/@react-aria/datepicker/intl/pt-BR.json","./packages/@react-aria/datepicker/intl/pt-PT.json","./packages/@react-aria/datepicker/intl/ro-RO.json","./packages/@react-aria/datepicker/intl/ru-RU.json","./packages/@react-aria/datepicker/intl/sk-SK.json","./packages/@react-aria/datepicker/intl/sl-SI.json","./packages/@react-aria/datepicker/intl/sr-SP.json","./packages/@react-aria/datepicker/intl/sv-SE.json","./packages/@react-aria/datepicker/intl/tr-TR.json","./packages/@react-aria/datepicker/intl/uk-UA.json","./packages/@react-aria/datepicker/intl/zh-CN.json","./packages/@react-aria/datepicker/intl/zh-TW.json","./packages/@react-aria/datepicker/src/useDatePickerGroup.ts","./packages/@react-aria/datepicker/src/useDatePicker.ts","./packages/@react-aria/datepicker/src/useDateField.ts","./packages/@react-aria/datepicker/src/useDisplayNames.ts","./packages/@react-aria/datepicker/src/useDateSegment.ts","./packages/@react-aria/datepicker/src/useDateRangePicker.ts"],"sourcesContent":["function $parcel$interopDefault(a) {\n return a && a.__esModule ? a.default : a;\n}\n\nfunction $parcel$defineInteropFlag(a) {\n Object.defineProperty(a, '__esModule', {value: true});\n}\n\nfunction $parcel$exportWildcard(dest, source) {\n Object.keys(source).forEach(function(key) {\n if (key === 'default' || key === '__esModule') {\n return;\n }\n\n Object.defineProperty(dest, key, {\n enumerable: true,\n get: function get() {\n return source[key];\n },\n });\n });\n\n return dest;\n}\n\nfunction $parcel$missingModule(name) {\n var err = new Error(\"Cannot find module '\" + name + \"'\");\n err.code = 'MODULE_NOT_FOUND';\n throw err;\n}\n\nvar $parcel$global =\n typeof globalThis !== 'undefined'\n ? globalThis\n : typeof self !== 'undefined'\n ? self\n : typeof window !== 'undefined'\n ? window\n : typeof global !== 'undefined'\n ? global\n : {};\n","{\n \"calendar\": \"التقويم\",\n \"currentDate\": \"{date, date, full}\",\n \"currentDateRange\": \"{start, date, long} إلى {end, date, long}\",\n \"date\": \"التاريخ\",\n \"dateRange\": \"نطاق التاريخ\",\n \"day\": \"يوم\",\n \"dayPeriod\": \"ص/م\",\n \"endDate\": \"تاريخ الانتهاء\",\n \"era\": \"العصر\",\n \"hour\": \"الساعات\",\n \"minute\": \"الدقائق\",\n \"month\": \"الشهر\",\n \"second\": \"الثواني\",\n \"startDate\": \"تاريخ البدء\",\n \"year\": \"السنة\",\n \"weekday\": \"اليوم\",\n \"timeZoneName\": \"التوقيت\"\n}\n","{\n \"calendar\": \"Календар\",\n \"currentDate\": \"{date, date, full}\",\n \"currentDateRange\": \"{start, date, long} до {end, date, long}\",\n \"date\": \"Дата\",\n \"dateRange\": \"Времеви интервал\",\n \"day\": \"ден\",\n \"dayPeriod\": \"пр.об./сл.об.\",\n \"endDate\": \"Крайна дата\",\n \"era\": \"ера\",\n \"hour\": \"час\",\n \"minute\": \"минута\",\n \"month\": \"месец\",\n \"second\": \"секунда\",\n \"startDate\": \"Начална дата\",\n \"year\": \"година\",\n \"weekday\": \"ден от седмицата\",\n \"timeZoneName\": \"часова зона\"\n}\n","{\n \"calendar\": \"Kalendář\",\n \"currentDate\": \"{date, date, full}\",\n \"currentDateRange\": \"{start, date, long} až {end, date, long}\",\n \"date\": \"Datum\",\n \"dateRange\": \"Rozsah dat\",\n \"day\": \"den\",\n \"dayPeriod\": \"část dne\",\n \"endDate\": \"Konečné datum\",\n \"era\": \"letopočet\",\n \"hour\": \"hodina\",\n \"minute\": \"minuta\",\n \"month\": \"měsíc\",\n \"second\": \"sekunda\",\n \"startDate\": \"Počáteční datum\",\n \"year\": \"rok\",\n \"weekday\": \"den v týdnu\",\n \"timeZoneName\": \"časové pásmo\"\n}\n","{\n \"calendar\": \"Kalender\",\n \"currentDate\": \"{date, date, full}\",\n \"currentDateRange\": \"{start, date, long} til {end, date, long}\",\n \"date\": \"Dato\",\n \"dateRange\": \"Datointerval\",\n \"day\": \"dag\",\n \"dayPeriod\": \"AM/PM\",\n \"endDate\": \"Slutdato\",\n \"era\": \"æra\",\n \"hour\": \"time\",\n \"minute\": \"minut\",\n \"month\": \"måned\",\n \"second\": \"sekund\",\n \"startDate\": \"Startdato\",\n \"year\": \"år\",\n \"weekday\": \"ugedag\",\n \"timeZoneName\": \"tidszone\"\n}\n","{\n \"calendar\": \"Kalender\",\n \"currentDate\": \"{date, date, full}\",\n \"currentDateRange\": \"{start, date, long} bis {end, date, long}\",\n \"date\": \"Datum\",\n \"dateRange\": \"Datumsbereich\",\n \"day\": \"Tag\",\n \"dayPeriod\": \"Tageshälfte\",\n \"endDate\": \"Enddatum\",\n \"era\": \"Epoche\",\n \"hour\": \"Stunde\",\n \"minute\": \"Minute\",\n \"month\": \"Monat\",\n \"second\": \"Sekunde\",\n \"startDate\": \"Anfangsdatum\",\n \"year\": \"Jahr\",\n \"weekday\": \"Wochentag\",\n \"timeZoneName\": \"Zeitzone\"\n}\n","{\n \"calendar\": \"Ημερολόγιο\",\n \"currentDate\": \"{date, date, full}\",\n \"currentDateRange\": \"{start, date, long} ως {end, date, long}\",\n \"date\": \"Ημερομηνία\",\n \"dateRange\": \"Εύρος ημερομηνιών\",\n \"day\": \"ημέρα\",\n \"dayPeriod\": \"π.μ./μ.μ.\",\n \"endDate\": \"Ημερομηνία λήξης\",\n \"era\": \"περίοδος\",\n \"hour\": \"ώρα\",\n \"minute\": \"λεπτό\",\n \"month\": \"μήνας\",\n \"second\": \"δευτερόλεπτο\",\n \"startDate\": \"Ημερομηνία έναρξης\",\n \"year\": \"έτος\",\n \"weekday\": \"καθημερινή\",\n \"timeZoneName\": \"ζώνη ώρας\"\n}\n","{\n \"era\": \"era\",\n \"year\": \"year\",\n \"month\": \"month\",\n \"day\": \"day\",\n \"hour\": \"hour\",\n \"minute\": \"minute\",\n \"second\": \"second\",\n \"dayPeriod\": \"AM/PM\",\n \"calendar\": \"Calendar\",\n \"date\": \"Date\",\n \"dateRange\": \"Date Range\",\n \"startDate\": \"Start Date\",\n \"endDate\": \"End Date\",\n \"currentDate\": \"{date, date, full}\",\n \"currentDateRange\": \"{start, date, long} to {end, date, long}\",\n \"weekday\": \"day of the week\",\n \"timeZoneName\": \"time zone\"\n}\n","{\n \"calendar\": \"Calendario\",\n \"currentDate\": \"{date, date, full}\",\n \"currentDateRange\": \"{start, date, long} a {end, date, long}\",\n \"date\": \"Fecha\",\n \"dateRange\": \"Intervalo de fecha\",\n \"day\": \"día\",\n \"dayPeriod\": \"a. m./p. m.\",\n \"endDate\": \"Fecha final\",\n \"era\": \"era\",\n \"hour\": \"hora\",\n \"minute\": \"minuto\",\n \"month\": \"mes\",\n \"second\": \"segundo\",\n \"startDate\": \"Fecha de inicio\",\n \"year\": \"año\",\n \"weekday\": \"día de la semana\",\n \"timeZoneName\": \"zona horaria\"\n}\n","{\n \"calendar\": \"Kalender\",\n \"currentDate\": \"{date, date, full}\",\n \"currentDateRange\": \"{start, date, long} kuni {end, date, long}\",\n \"date\": \"Kuupäev\",\n \"dateRange\": \"Kuupäevavahemik\",\n \"day\": \"päev\",\n \"dayPeriod\": \"enne/pärast lõunat\",\n \"endDate\": \"Lõppkuupäev\",\n \"era\": \"ajastu\",\n \"hour\": \"tund\",\n \"minute\": \"minut\",\n \"month\": \"kuu\",\n \"second\": \"sekund\",\n \"startDate\": \"Alguskuupäev\",\n \"year\": \"aasta\",\n \"weekday\": \"nädalapäev\",\n \"timeZoneName\": \"ajavöönd\"\n}\n","{\n \"calendar\": \"Kalenteri\",\n \"currentDate\": \"{date, date, full}\",\n \"currentDateRange\": \"{start, date, long}–{end, date, long}\",\n \"date\": \"Päivämäärä\",\n \"dateRange\": \"Päivämääräalue\",\n \"day\": \"päivä\",\n \"dayPeriod\": \"vuorokaudenaika\",\n \"endDate\": \"Päättymispäivä\",\n \"era\": \"aikakausi\",\n \"hour\": \"tunti\",\n \"minute\": \"minuutti\",\n \"month\": \"kuukausi\",\n \"second\": \"sekunti\",\n \"startDate\": \"Alkamispäivä\",\n \"year\": \"vuosi\",\n \"weekday\": \"viikonpäivä\",\n \"timeZoneName\": \"aikavyöhyke\"\n}\n","{\n \"calendar\": \"Calendrier\",\n \"currentDate\": \"{date, date, full}\",\n \"currentDateRange\": \"{start, date, long} au {end, date, long}\",\n \"date\": \"Date\",\n \"dateRange\": \"Plage de dates\",\n \"day\": \"jour\",\n \"dayPeriod\": \"cadran\",\n \"endDate\": \"Date de fin\",\n \"era\": \"ère\",\n \"hour\": \"heure\",\n \"minute\": \"minute\",\n \"month\": \"mois\",\n \"second\": \"seconde\",\n \"startDate\": \"Date de début\",\n \"year\": \"année\",\n \"weekday\": \"jour de la semaine\",\n \"timeZoneName\": \"fuseau horaire\"\n}\n","{\n \"calendar\": \"לוח שנה\",\n \"currentDate\": \"{date, date, full}\",\n \"currentDateRange\": \"מ-{start, date, long} ועד {end, date, long}\",\n \"date\": \"תאריך\",\n \"dateRange\": \"טווח תאריכים\",\n \"day\": \"יום\",\n \"dayPeriod\": \"לפנה״צ/אחה״צ\",\n \"endDate\": \"תאריך סיום\",\n \"era\": \"תקופה\",\n \"hour\": \"שעה\",\n \"minute\": \"דקה\",\n \"month\": \"חודש\",\n \"second\": \"שנייה\",\n \"startDate\": \"תאריך התחלה\",\n \"year\": \"שנה\",\n \"weekday\": \"יום בשבוע\",\n \"timeZoneName\": \"אזור זמן\"\n}\n","{\n \"calendar\": \"Kalendar\",\n \"currentDate\": \"{date, date, full}\",\n \"currentDateRange\": \"{start, date, long} do {end, date, long}\",\n \"date\": \"Datum\",\n \"dateRange\": \"Raspon datuma\",\n \"day\": \"dan\",\n \"dayPeriod\": \"AM/PM\",\n \"endDate\": \"Datum završetka\",\n \"era\": \"era\",\n \"hour\": \"sat\",\n \"minute\": \"minuta\",\n \"month\": \"mjesec\",\n \"second\": \"sekunda\",\n \"startDate\": \"Datum početka\",\n \"year\": \"godina\",\n \"weekday\": \"dan u tjednu\",\n \"timeZoneName\": \"vremenska zona\"\n}\n","{\n \"calendar\": \"Naptár\",\n \"currentDate\": \"{date, date, full}\",\n \"currentDateRange\": \"{start, date, long} – {end, date, long}\",\n \"date\": \"Dátum\",\n \"dateRange\": \"Dátumtartomány\",\n \"day\": \"nap\",\n \"dayPeriod\": \"napszak\",\n \"endDate\": \"Befejező dátum\",\n \"era\": \"éra\",\n \"hour\": \"óra\",\n \"minute\": \"perc\",\n \"month\": \"hónap\",\n \"second\": \"másodperc\",\n \"startDate\": \"Kezdő dátum\",\n \"year\": \"év\",\n \"weekday\": \"hét napja\",\n \"timeZoneName\": \"időzóna\"\n}\n","{\n \"calendar\": \"Calendario\",\n \"currentDate\": \"{date, date, full}\",\n \"currentDateRange\": \"Da {start, date, long} a {end, date, long}\",\n \"date\": \"Data\",\n \"dateRange\": \"Intervallo date\",\n \"day\": \"giorno\",\n \"dayPeriod\": \"AM/PM\",\n \"endDate\": \"Data finale\",\n \"era\": \"era\",\n \"hour\": \"ora\",\n \"minute\": \"minuto\",\n \"month\": \"mese\",\n \"second\": \"secondo\",\n \"startDate\": \"Data iniziale\",\n \"year\": \"anno\",\n \"weekday\": \"giorno della settimana\",\n \"timeZoneName\": \"fuso orario\"\n}\n","{\n \"calendar\": \"カレンダー\",\n \"currentDate\": \"{date, date, full}\",\n \"currentDateRange\": \"{start, date, long} ~ {end, date, long}\",\n \"date\": \"日付\",\n \"dateRange\": \"日付範囲\",\n \"day\": \"日\",\n \"dayPeriod\": \"午前/午後\",\n \"endDate\": \"終了日\",\n \"era\": \"時代\",\n \"hour\": \"時\",\n \"minute\": \"分\",\n \"month\": \"月\",\n \"second\": \"秒\",\n \"startDate\": \"開始日\",\n \"year\": \"年\",\n \"weekday\": \"曜日\",\n \"timeZoneName\": \"タイムゾーン\"\n}\n","{\n \"calendar\": \"달력\",\n \"currentDate\": \"{date, date, full}\",\n \"currentDateRange\": \"{start, date, long} ~ {end, date, long}\",\n \"date\": \"날짜\",\n \"dateRange\": \"날짜 범위\",\n \"day\": \"일\",\n \"dayPeriod\": \"오전/오후\",\n \"endDate\": \"종료 날짜\",\n \"era\": \"연호\",\n \"hour\": \"시\",\n \"minute\": \"분\",\n \"month\": \"월\",\n \"second\": \"초\",\n \"startDate\": \"시작 날짜\",\n \"year\": \"년\",\n \"weekday\": \"요일\",\n \"timeZoneName\": \"시간대\"\n}\n","{\n \"calendar\": \"Kalendorius\",\n \"currentDate\": \"{date, date, full}\",\n \"currentDateRange\": \"Nuo {start, date, long} iki {end, date, long}\",\n \"date\": \"Data\",\n \"dateRange\": \"Datų intervalas\",\n \"day\": \"diena\",\n \"dayPeriod\": \"iki pietų / po pietų\",\n \"endDate\": \"Pabaigos data\",\n \"era\": \"era\",\n \"hour\": \"valanda\",\n \"minute\": \"minutė\",\n \"month\": \"mėnuo\",\n \"second\": \"sekundė\",\n \"startDate\": \"Pradžios data\",\n \"year\": \"metai\",\n \"weekday\": \"savaitės diena\",\n \"timeZoneName\": \"laiko juosta\"\n}\n","{\n \"calendar\": \"Kalendārs\",\n \"currentDate\": \"{date, date, full}\",\n \"currentDateRange\": \"{start, date, long} līdz {end, date, long}\",\n \"date\": \"Datums\",\n \"dateRange\": \"Datumu diapazons\",\n \"day\": \"diena\",\n \"dayPeriod\": \"priekšpusdienā/pēcpusdienā\",\n \"endDate\": \"Beigu datums\",\n \"era\": \"ēra\",\n \"hour\": \"stundas\",\n \"minute\": \"minūtes\",\n \"month\": \"mēnesis\",\n \"second\": \"sekundes\",\n \"startDate\": \"Sākuma datums\",\n \"year\": \"gads\",\n \"weekday\": \"nedēļas diena\",\n \"timeZoneName\": \"laika josla\"\n}\n","{\n \"calendar\": \"Kalender\",\n \"currentDate\": \"{date, date, full}\",\n \"currentDateRange\": \"{start, date, long} til {end, date, long}\",\n \"date\": \"Dato\",\n \"dateRange\": \"Datoområde\",\n \"day\": \"dag\",\n \"dayPeriod\": \"a.m./p.m.\",\n \"endDate\": \"Sluttdato\",\n \"era\": \"tidsalder\",\n \"hour\": \"time\",\n \"minute\": \"minutt\",\n \"month\": \"måned\",\n \"second\": \"sekund\",\n \"startDate\": \"Startdato\",\n \"year\": \"år\",\n \"weekday\": \"ukedag\",\n \"timeZoneName\": \"tidssone\"\n}\n","{\n \"calendar\": \"Kalender\",\n \"currentDate\": \"{date, date, full}\",\n \"currentDateRange\": \"{start, date, long} t/m {end, date, long}\",\n \"date\": \"Datum\",\n \"dateRange\": \"Datumbereik\",\n \"day\": \"dag\",\n \"dayPeriod\": \"a.m./p.m.\",\n \"endDate\": \"Einddatum\",\n \"era\": \"tijdperk\",\n \"hour\": \"uur\",\n \"minute\": \"minuut\",\n \"month\": \"maand\",\n \"second\": \"seconde\",\n \"startDate\": \"Startdatum\",\n \"year\": \"jaar\",\n \"weekday\": \"dag van de week\",\n \"timeZoneName\": \"tijdzone\"\n}\n","{\n \"calendar\": \"Kalendarz\",\n \"currentDate\": \"{date, date, full}\",\n \"currentDateRange\": \"{start, date, long} do {end, date, long}\",\n \"date\": \"Data\",\n \"dateRange\": \"Zakres dat\",\n \"day\": \"dzień\",\n \"dayPeriod\": \"rano / po południu / wieczorem\",\n \"endDate\": \"Data końcowa\",\n \"era\": \"era\",\n \"hour\": \"godzina\",\n \"minute\": \"minuta\",\n \"month\": \"miesiąc\",\n \"second\": \"sekunda\",\n \"startDate\": \"Data początkowa\",\n \"year\": \"rok\",\n \"weekday\": \"dzień tygodnia\",\n \"timeZoneName\": \"strefa czasowa\"\n}\n","{\n \"calendar\": \"Calendário\",\n \"currentDate\": \"{date, date, full}\",\n \"currentDateRange\": \"{start, date, long} a {end, date, long}\",\n \"date\": \"Data\",\n \"dateRange\": \"Intervalo de datas\",\n \"day\": \"dia\",\n \"dayPeriod\": \"AM/PM\",\n \"endDate\": \"Data final\",\n \"era\": \"era\",\n \"hour\": \"hora\",\n \"minute\": \"minuto\",\n \"month\": \"mês\",\n \"second\": \"segundo\",\n \"startDate\": \"Data inicial\",\n \"year\": \"ano\",\n \"weekday\": \"dia da semana\",\n \"timeZoneName\": \"fuso horário\"\n}\n","{\n \"calendar\": \"Calendário\",\n \"currentDate\": \"{date, date, full}\",\n \"currentDateRange\": \"{start, date, long} a {end, date, long}\",\n \"date\": \"Data\",\n \"dateRange\": \"Intervalo de datas\",\n \"day\": \"dia\",\n \"dayPeriod\": \"am/pm\",\n \"endDate\": \"Data de Término\",\n \"era\": \"era\",\n \"hour\": \"hora\",\n \"minute\": \"minuto\",\n \"month\": \"mês\",\n \"second\": \"segundo\",\n \"startDate\": \"Data de Início\",\n \"year\": \"ano\",\n \"weekday\": \"dia da semana\",\n \"timeZoneName\": \"fuso horário\"\n}\n","{\n \"calendar\": \"Calendar\",\n \"currentDate\": \"{date, date, full}\",\n \"currentDateRange\": \"{start, date, long} - {end, date, long}\",\n \"date\": \"Dată\",\n \"dateRange\": \"Raza datei\",\n \"day\": \"zi\",\n \"dayPeriod\": \"a.m/p.m.\",\n \"endDate\": \"Dată final\",\n \"era\": \"eră\",\n \"hour\": \"oră\",\n \"minute\": \"minut\",\n \"month\": \"lună\",\n \"second\": \"secundă\",\n \"startDate\": \"Dată început\",\n \"year\": \"an\",\n \"weekday\": \"ziua din săptămână\",\n \"timeZoneName\": \"fus orar\"\n}\n","{\n \"calendar\": \"Календарь\",\n \"currentDate\": \"{date, date, full}\",\n \"currentDateRange\": \"{start, date, long} – {end, date, long}\",\n \"date\": \"Дата\",\n \"dateRange\": \"Диапазон дат\",\n \"day\": \"день\",\n \"dayPeriod\": \"AM/PM\",\n \"endDate\": \"Дата окончания\",\n \"era\": \"эра\",\n \"hour\": \"час\",\n \"minute\": \"минута\",\n \"month\": \"месяц\",\n \"second\": \"секунда\",\n \"startDate\": \"Дата начала\",\n \"year\": \"год\",\n \"weekday\": \"день недели\",\n \"timeZoneName\": \"часовой пояс\"\n}\n","{\n \"calendar\": \"Kalendár\",\n \"currentDate\": \"{date, date, full}\",\n \"currentDateRange\": \"{start, date, long} do {end, date, long}\",\n \"date\": \"Dátum\",\n \"dateRange\": \"Rozsah dátumov\",\n \"day\": \"deň\",\n \"dayPeriod\": \"AM/PM\",\n \"endDate\": \"Dátum ukončenia\",\n \"era\": \"letopočet\",\n \"hour\": \"hodina\",\n \"minute\": \"minúta\",\n \"month\": \"mesiac\",\n \"second\": \"sekunda\",\n \"startDate\": \"Dátum začatia\",\n \"year\": \"rok\",\n \"weekday\": \"deň týždňa\",\n \"timeZoneName\": \"časové pásmo\"\n}\n","{\n \"calendar\": \"Koledar\",\n \"currentDate\": \"{date, date, full}\",\n \"currentDateRange\": \"{start, date, long} do {end, date, long}\",\n \"date\": \"Datum\",\n \"dateRange\": \"Datumski obseg\",\n \"day\": \"dan\",\n \"dayPeriod\": \"dop/pop\",\n \"endDate\": \"Datum konca\",\n \"era\": \"doba\",\n \"hour\": \"ura\",\n \"minute\": \"minuta\",\n \"month\": \"mesec\",\n \"second\": \"sekunda\",\n \"startDate\": \"Datum začetka\",\n \"year\": \"leto\",\n \"weekday\": \"dan v tednu\",\n \"timeZoneName\": \"časovni pas\"\n}\n","{\n \"calendar\": \"Kalendar\",\n \"currentDate\": \"{date, date, full}\",\n \"currentDateRange\": \"{start, date, long} do {end, date, long}\",\n \"date\": \"Datum\",\n \"dateRange\": \"Opseg datuma\",\n \"day\": \"дан\",\n \"dayPeriod\": \"пре подне/по подне\",\n \"endDate\": \"Datum završetka\",\n \"era\": \"ера\",\n \"hour\": \"сат\",\n \"minute\": \"минут\",\n \"month\": \"месец\",\n \"second\": \"секунд\",\n \"startDate\": \"Datum početka\",\n \"year\": \"година\",\n \"weekday\": \"дан у недељи\",\n \"timeZoneName\": \"временска зона\"\n}\n","{\n \"calendar\": \"Kalender\",\n \"currentDate\": \"{date, date, full}\",\n \"currentDateRange\": \"{start, date, long} till {end, date, long}\",\n \"date\": \"Datum\",\n \"dateRange\": \"Datumintervall\",\n \"day\": \"dag\",\n \"dayPeriod\": \"fm/em\",\n \"endDate\": \"Slutdatum\",\n \"era\": \"era\",\n \"hour\": \"timme\",\n \"minute\": \"minut\",\n \"month\": \"månad\",\n \"second\": \"sekund\",\n \"startDate\": \"Startdatum\",\n \"year\": \"år\",\n \"weekday\": \"veckodag\",\n \"timeZoneName\": \"tidszon\"\n}\n","{\n \"calendar\": \"Takvim\",\n \"currentDate\": \"{date, date, full}\",\n \"currentDateRange\": \"{start, date, long} - {end, date, long}\",\n \"date\": \"Tarih\",\n \"dateRange\": \"Tarih Aralığı\",\n \"day\": \"gün\",\n \"dayPeriod\": \"ÖÖ/ÖS\",\n \"endDate\": \"Bitiş Tarihi\",\n \"era\": \"çağ\",\n \"hour\": \"saat\",\n \"minute\": \"dakika\",\n \"month\": \"ay\",\n \"second\": \"saniye\",\n \"startDate\": \"Başlangıç Tarihi\",\n \"year\": \"yıl\",\n \"weekday\": \"haftanın günü\",\n \"timeZoneName\": \"saat dilimi\"\n}\n","{\n \"calendar\": \"Календар\",\n \"currentDate\": \"{date, date, full}\",\n \"currentDateRange\": \"Від {start, date, long} до {end, date, long}\",\n \"date\": \"Дата\",\n \"dateRange\": \"Діапазон дат\",\n \"day\": \"день\",\n \"dayPeriod\": \"дп/пп\",\n \"endDate\": \"Дата завершення\",\n \"era\": \"ера\",\n \"hour\": \"година\",\n \"minute\": \"хвилина\",\n \"month\": \"місяць\",\n \"second\": \"секунда\",\n \"startDate\": \"Дата початку\",\n \"year\": \"рік\",\n \"weekday\": \"день тижня\",\n \"timeZoneName\": \"часовий пояс\"\n}\n","{\n \"calendar\": \"日历\",\n \"currentDate\": \"{date, date, full}\",\n \"currentDateRange\": \"{start, date, long} 至 {end, date, long}\",\n \"date\": \"日期\",\n \"dateRange\": \"日期范围\",\n \"day\": \"日\",\n \"dayPeriod\": \"上午/下午\",\n \"endDate\": \"结束日期\",\n \"era\": \"纪元\",\n \"hour\": \"小时\",\n \"minute\": \"分钟\",\n \"month\": \"月\",\n \"second\": \"秒\",\n \"startDate\": \"开始日期\",\n \"year\": \"年\",\n \"weekday\": \"工作日\",\n \"timeZoneName\": \"时区\"\n}\n","{\n \"calendar\": \"日曆\",\n \"currentDate\": \"{date, date, full}\",\n \"currentDateRange\": \"{start, date, long}至 {end, date, long}\",\n \"date\": \"日期\",\n \"dateRange\": \"日期範圍\",\n \"day\": \"日\",\n \"dayPeriod\": \"上午/下午\",\n \"endDate\": \"結束日期\",\n \"era\": \"纪元\",\n \"hour\": \"小时\",\n \"minute\": \"分钟\",\n \"month\": \"月\",\n \"second\": \"秒\",\n \"startDate\": \"開始日期\",\n \"year\": \"年\",\n \"weekday\": \"工作日\",\n \"timeZoneName\": \"时区\"\n}\n","import {DatePickerFieldState, DatePickerState, DateRangePickerState} from '@react-stately/datepicker';\nimport {KeyboardEvent} from '@react-types/shared';\nimport {mergeProps} from '@react-aria/utils';\nimport {RefObject} from 'react';\nimport {usePress} from '@react-aria/interactions';\n\nexport function useDatePickerGroup(state: DatePickerState | DateRangePickerState | DatePickerFieldState, ref: RefObject<HTMLElement>) {\n // Open the popover on alt + arrow down\n let onKeyDown = (e: KeyboardEvent) => {\n if (e.altKey && e.key === 'ArrowDown' && 'setOpen' in state) {\n e.preventDefault();\n e.stopPropagation();\n state.setOpen(true);\n }\n };\n\n // Focus the first placeholder segment from the end on mouse down/touch up in the field.\n let focusLast = () => {\n let elements = ref.current.querySelectorAll('[tabindex=\"0\"]');\n let index = elements.length - 1;\n while (index >= 0 && elements[index].getAttribute('aria-placeholder')) {\n index--;\n }\n index = Math.min(index + 1, elements.length - 1);\n let element = elements[index] as HTMLElement;\n if (element) {\n element.focus();\n }\n };\n\n let {pressProps} = usePress({\n onPressStart(e) {\n if (e.pointerType === 'mouse') {\n focusLast();\n }\n },\n onPress(e) {\n if (e.pointerType !== 'mouse') {\n focusLast();\n }\n }\n });\n\n return mergeProps(pressProps, {onKeyDown});\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {AriaButtonProps} from '@react-types/button';\nimport {AriaDatePickerProps, DateValue} from '@react-types/datepicker';\nimport {AriaDialogProps} from '@react-types/dialog';\nimport {createFocusManager} from '@react-aria/focus';\nimport {DatePickerState} from '@react-stately/datepicker';\nimport {HTMLAttributes, LabelHTMLAttributes, RefObject} from 'react';\n// @ts-ignore\nimport intlMessages from '../intl/*.json';\nimport {mergeProps, useDescription, useId} from '@react-aria/utils';\nimport {useDatePickerGroup} from './useDatePickerGroup';\nimport {useField} from '@react-aria/label';\nimport {useLocale, useMessageFormatter} from '@react-aria/i18n';\n\ninterface DatePickerAria<T extends DateValue> {\n groupProps: HTMLAttributes<HTMLElement>,\n labelProps: LabelHTMLAttributes<HTMLLabelElement>,\n fieldProps: AriaDatePickerProps<T>,\n /** Props for the description element, if any. */\n descriptionProps: HTMLAttributes<HTMLElement>,\n /** Props for the error message element, if any. */\n errorMessageProps: HTMLAttributes<HTMLElement>,\n buttonProps: AriaButtonProps,\n dialogProps: AriaDialogProps\n}\n\nexport function useDatePicker<T extends DateValue>(props: AriaDatePickerProps<T>, state: DatePickerState, ref: RefObject<HTMLElement>): DatePickerAria<T> {\n let buttonId = useId();\n let dialogId = useId();\n let formatMessage = useMessageFormatter(intlMessages);\n\n let {labelProps, fieldProps, descriptionProps, errorMessageProps} = useField({\n ...props,\n labelElementType: 'span'\n });\n\n let groupProps = useDatePickerGroup(state, ref);\n\n let labelledBy = fieldProps['aria-labelledby'] || fieldProps.id;\n\n let {locale} = useLocale();\n let descProps = useDescription(state.formatValue(locale, {month: 'long'}));\n let ariaDescribedBy = [descProps['aria-describedby'], fieldProps['aria-describedby']].filter(Boolean).join(' ') || undefined;\n\n return {\n groupProps: mergeProps(groupProps, descProps, {\n role: 'group',\n 'aria-disabled': props.isDisabled || null,\n 'aria-labelledby': labelledBy,\n 'aria-describedby': ariaDescribedBy\n }),\n labelProps: {\n ...labelProps,\n onClick: () => {\n let focusManager = createFocusManager(ref);\n focusManager.focusFirst();\n }\n },\n fieldProps,\n descriptionProps,\n errorMessageProps,\n buttonProps: {\n ...descProps,\n id: buttonId,\n excludeFromTabOrder: true,\n 'aria-haspopup': 'dialog',\n 'aria-label': formatMessage('calendar'),\n 'aria-labelledby': `${labelledBy} ${buttonId}`,\n 'aria-describedby': ariaDescribedBy\n },\n dialogProps: {\n id: dialogId,\n 'aria-labelledby': `${labelledBy} ${buttonId}`\n }\n };\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {AriaDatePickerProps, DateValue} from '@react-types/datepicker';\nimport {createFocusManager} from '@react-aria/focus';\nimport {DatePickerFieldState} from '@react-stately/datepicker';\nimport {HTMLAttributes, LabelHTMLAttributes, RefObject} from 'react';\nimport {mergeProps, useDescription} from '@react-aria/utils';\nimport {useDateFormatter} from '@react-aria/i18n';\nimport {useDatePickerGroup} from './useDatePickerGroup';\nimport {useField} from '@react-aria/label';\nimport {useFocusWithin} from '@react-aria/interactions';\n\n// Allows this hook to also be used with TimeField\ninterface DateFieldProps<T extends DateValue> extends Omit<AriaDatePickerProps<T>, 'value' | 'defaultValue' | 'onChange' | 'minValue' | 'maxValue' | 'placeholderValue'> {}\n\ninterface DateFieldAria {\n labelProps: LabelHTMLAttributes<HTMLLabelElement>,\n fieldProps: HTMLAttributes<HTMLElement>,\n /** Props for the description element, if any. */\n descriptionProps: HTMLAttributes<HTMLElement>,\n /** Props for the error message element, if any. */\n errorMessageProps: HTMLAttributes<HTMLElement>\n}\n\nexport const labelIds = new WeakMap<DatePickerFieldState, {ariaLabelledBy: string, ariaDescribedBy: string}>();\n\nexport function useDateField<T extends DateValue>(props: DateFieldProps<T>, state: DatePickerFieldState, ref: RefObject<HTMLElement>): DateFieldAria {\n let {labelProps, fieldProps, descriptionProps, errorMessageProps} = useField({\n ...props,\n labelElementType: 'span'\n });\n\n let groupProps = useDatePickerGroup(state, ref);\n\n let {focusWithinProps} = useFocusWithin({\n onBlurWithin() {\n state.confirmPlaceholder();\n }\n });\n\n let formatter = useDateFormatter(state.getFormatOptions({month: 'long'}));\n let descProps = useDescription(state.value ? formatter.format(state.dateValue) : null);\n\n let segmentLabelledBy = fieldProps['aria-labelledby'] || fieldProps.id;\n let describedBy = [descProps['aria-describedby'], fieldProps['aria-describedby']].filter(Boolean).join(' ') || undefined;\n\n labelIds.set(state, {\n ariaLabelledBy: segmentLabelledBy,\n ariaDescribedBy: describedBy\n });\n\n return {\n labelProps: {\n ...labelProps,\n onClick: () => {\n let focusManager = createFocusManager(ref);\n focusManager.focusFirst();\n }\n },\n fieldProps: mergeProps(fieldProps, descProps, groupProps, focusWithinProps, {\n role: 'group',\n 'aria-disabled': props.isDisabled || undefined,\n 'aria-describedby': describedBy\n }),\n descriptionProps,\n errorMessageProps\n };\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\n// @ts-ignore\nimport intlMessages from '../intl/*.json';\nimport {MessageDictionary} from '@internationalized/message';\nimport {useLocale} from '@react-aria/i18n';\nimport {useMemo} from 'react';\n\ntype Field = 'era' | 'year' | 'month' | 'day' | 'hour' | 'minute' | 'second' | 'dayPeriod' | 'timeZoneName' | 'weekday';\ninterface DisplayNames {\n of(field: Field): string\n}\n\nexport function useDisplayNames(): DisplayNames {\n let {locale} = useLocale();\n return useMemo(() => {\n // Try to use Intl.DisplayNames if possible. It may be supported in browsers, but not support the dateTimeField\n // type as that was only added in v2. https://github.com/tc39/intl-displaynames-v2\n try {\n // @ts-ignore\n return new Intl.DisplayNames(locale, {type: 'dateTimeField'});\n } catch (err) {\n return new DisplayNamesPolyfill(locale);\n }\n }, [locale]);\n}\n\nclass DisplayNamesPolyfill implements DisplayNames {\n private locale: string;\n private dictionary: MessageDictionary;\n\n constructor(locale: string) {\n this.locale = locale;\n this.dictionary = new MessageDictionary(intlMessages);\n }\n\n of(field: Field): string {\n return this.dictionary.getStringForLocale(field, this.locale);\n }\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {DatePickerFieldState, DateSegment} from '@react-stately/datepicker';\nimport {DatePickerProps, DateValue} from '@react-types/datepicker';\nimport {DOMProps} from '@react-types/shared';\nimport {getScrollParent, isIOS, isMac, mergeProps, scrollIntoView, useEvent, useId} from '@react-aria/utils';\nimport {labelIds} from './useDateField';\nimport {NumberParser} from '@internationalized/number';\nimport React, {HTMLAttributes, RefObject, useMemo, useRef} from 'react';\nimport {useDateFormatter, useFilter, useLocale} from '@react-aria/i18n';\nimport {useDisplayNames} from './useDisplayNames';\nimport {useFocusManager} from '@react-aria/focus';\nimport {usePress} from '@react-aria/interactions';\nimport {useSpinButton} from '@react-aria/spinbutton';\n\ninterface DateSegmentAria {\n segmentProps: HTMLAttributes<HTMLDivElement>\n}\n\nexport function useDateSegment<T extends DateValue>(props: DatePickerProps<T> & DOMProps, segment: DateSegment, state: DatePickerFieldState, ref: RefObject<HTMLElement>): DateSegmentAria {\n let enteredKeys = useRef('');\n let {locale, direction} = useLocale();\n let displayNames = useDisplayNames();\n let focusManager = useFocusManager();\n\n let textValue = segment.text;\n let options = useMemo(() => state.dateFormatter.resolvedOptions(), [state.dateFormatter]);\n let monthDateFormatter = useDateFormatter({month: 'long', timeZone: options.timeZone});\n let hourDateFormatter = useDateFormatter({\n hour: 'numeric',\n hour12: options.hour12,\n timeZone: options.timeZone\n });\n\n if (segment.type === 'month') {\n let monthTextValue = monthDateFormatter.format(state.dateValue);\n textValue = monthTextValue !== textValue ? `${textValue} – ${monthTextValue}` : monthTextValue;\n } else if (segment.type === 'hour' || segment.type === 'dayPeriod') {\n textValue = hourDateFormatter.format(state.dateValue);\n }\n\n let {spinButtonProps} = useSpinButton({\n value: segment.value,\n textValue,\n minValue: segment.minValue,\n maxValue: segment.maxValue,\n isDisabled: props.isDisabled,\n isReadOnly: props.isReadOnly || !segment.isEditable,\n isRequired: props.isRequired,\n onIncrement: () => {\n enteredKeys.current = '';\n state.increment(segment.type);\n },\n onDecrement: () => {\n enteredKeys.current = '';\n state.decrement(segment.type);\n },\n onIncrementPage: () => {\n enteredKeys.current = '';\n state.incrementPage(segment.type);\n },\n onDecrementPage: () => {\n enteredKeys.current = '';\n state.decrementPage(segment.type);\n },\n onIncrementToMax: () => {\n enteredKeys.current = '';\n state.setSegment(segment.type, segment.maxValue);\n },\n onDecrementToMin: () => {\n enteredKeys.current = '';\n state.setSegment(segment.type, segment.minValue);\n }\n });\n\n let parser = useMemo(() => new NumberParser(locale, {maximumFractionDigits: 0}), [locale]);\n\n let backspace = () => {\n if (parser.isValidPartialNumber(segment.text) && !props.isReadOnly && !segment.isPlaceholder) {\n let newValue = segment.text.slice(0, -1);\n let parsed = parser.parse(newValue);\n if (newValue.length === 0 || parsed === 0) {\n state.clearSegment(segment.type);\n } else {\n state.setSegment(segment.type, parsed);\n }\n enteredKeys.current = newValue;\n } else if (segment.type === 'dayPeriod') {\n state.clearSegment(segment.type);\n }\n };\n\n let onKeyDown = (e) => {\n // Firefox does not fire selectstart for Ctrl/Cmd + A\n // https://bugzilla.mozilla.org/show_bug.cgi?id=1742153\n if (e.key === 'a' && (isMac() ? e.metaKey : e.ctrlKey)) {\n e.preventDefault();\n }\n\n if (e.ctrlKey || e.metaKey || e.shiftKey || e.altKey) {\n return;\n }\n\n switch (e.key) {\n case 'ArrowLeft':\n e.preventDefault();\n e.stopPropagation();\n if (direction === 'rtl') {\n focusManager.focusNext();\n } else {\n focusManager.focusPrevious();\n }\n break;\n case 'ArrowRight':\n e.preventDefault();\n e.stopPropagation();\n if (direction === 'rtl') {\n focusManager.focusPrevious();\n } else {\n focusManager.focusNext();\n }\n break;\n case 'Enter':\n e.preventDefault();\n e.stopPropagation();\n if (segment.isPlaceholder && !props.isReadOnly) {\n state.confirmPlaceholder(segment.type);\n }\n focusManager.focusNext();\n break;\n case 'Tab':\n break;\n case 'Backspace':\n case 'Delete': {\n // Safari on iOS does not fire beforeinput for the backspace key because the cursor is at the start.\n e.preventDefault();\n e.stopPropagation();\n backspace();\n break;\n }\n }\n };\n\n // Safari dayPeriod option doesn't work...\n let {startsWith} = useFilter({sensitivity: 'base'});\n let amPmFormatter = useDateFormatter({hour: 'numeric', hour12: true});\n let am = useMemo(() => {\n let date = new Date();\n date.setHours(0);\n return amPmFormatter.formatToParts(date).find(part => part.type === 'dayPeriod').value;\n }, [amPmFormatter]);\n\n let pm = useMemo(() => {\n let date = new Date();\n date.setHours(12);\n return amPmFormatter.formatToParts(date).find(part => part.type === 'dayPeriod').value;\n }, [amPmFormatter]);\n\n let onInput = (key: string) => {\n if (props.isDisabled || props.isReadOnly) {\n return;\n }\n\n let newValue = enteredKeys.current + key;\n\n switch (segment.type) {\n case 'dayPeriod':\n if (startsWith(am, key)) {\n state.setSegment('dayPeriod', 0);\n } else if (startsWith(pm, key)) {\n state.setSegment('dayPeriod', 12);\n } else {\n break;\n }\n focusManager.focusNext();\n break;\n case 'day':\n case 'hour':\n case 'minute':\n case 'second':\n case 'month':\n case 'year': {\n if (!parser.isValidPartialNumber(newValue)) {\n return;\n }\n\n let numberValue = parser.parse(newValue);\n let segmentValue = numberValue;\n let allowsZero = segment.minValue === 0;\n if (segment.type === 'hour' && state.dateFormatter.resolvedOptions().hour12) {\n switch (state.dateFormatter.resolvedOptions().hourCycle) {\n case 'h11':\n if (numberValue > 11) {\n segmentValue = parser.parse(key);\n }\n break;\n case 'h12':\n allowsZero = false;\n if (numberValue > 12) {\n segmentValue = parser.parse(key);\n }\n break;\n }\n\n if (segment.value >= 12 && numberValue > 1) {\n numberValue += 12;\n }\n } else if (numberValue > segment.maxValue) {\n segmentValue = parser.parse(key);\n }\n\n if (isNaN(numberValue)) {\n return;\n }\n\n let shouldSetValue = segmentValue !== 0 || allowsZero;\n if (shouldSetValue) {\n state.setSegment(segment.type, segmentValue);\n }\n\n if (Number(numberValue + '0') > segment.maxValue || newValue.length >= String(segment.maxValue).length) {\n enteredKeys.current = '';\n if (shouldSetValue) {\n focusManager.focusNext();\n }\n } else {\n enteredKeys.current = newValue;\n }\n break;\n }\n }\n };\n\n let onFocus = () => {\n enteredKeys.current = '';\n scrollIntoView(getScrollParent(ref.current) as HTMLElement, ref.current);\n\n // Safari requires that a selection is set or it won't fire input events.\n // Since usePress disables text selection, this won't happen by default.\n ref.current.style.webkitUserSelect = 'text';\n let selection = window.getSelection();\n selection.collapse(ref.current);\n ref.current.style.webkitUserSelect = '';\n };\n\n let compositionRef = useRef('');\n // @ts-ignore - TODO: possibly old TS version? doesn't fail in my editor...\n useEvent(ref, 'beforeinput', e => {\n e.preventDefault();\n\n switch (e.inputType) {\n case 'deleteContentBackward':\n case 'deleteContentForward':\n if (parser.isValidPartialNumber(segment.text) && !props.isReadOnly) {\n backspace();\n }\n break;\n case 'insertCompositionText':\n // insertCompositionText cannot be canceled.\n // Record the current state of the element so we can restore it in the `input` event below.\n compositionRef.current = ref.current.textContent;\n\n // Safari gets stuck in a composition state unless we also assign to the value here.\n // eslint-disable-next-line no-self-assign\n ref.current.textContent = ref.current.textContent;\n break;\n default:\n if (e.data != null) {\n onInput(e.data);\n }\n break;\n }\n });\n\n useEvent(ref, 'input', (e: InputEvent) => {\n let {inputType, data} = e;\n switch (inputType) {\n case 'insertCompositionText':\n // Reset the DOM to how it was in the beforeinput event.\n ref.current.textContent = compositionRef.current;\n\n // Android sometimes fires key presses of letters as composition events. Need to handle am/pm keys here too.\n // Can also happen e.g. with Pinyin keyboard on iOS.\n if (startsWith(am, data) || startsWith(pm, data)) {\n onInput(data);\n }\n break;\n }\n });\n\n // Focus on mouse down/touch up to match native textfield behavior.\n // usePress handles canceling text selection.\n let {pressProps} = usePress({\n preventFocusOnPress: true,\n onPressStart: (e) => {\n if (e.pointerType === 'mouse') {\n e.target.focus();\n }\n },\n onPress(e) {\n if (e.pointerType !== 'mouse') {\n e.target.focus();\n }\n }\n });\n\n // For Android: prevent selection on long press.\n useEvent(ref, 'selectstart', e => {\n e.preventDefault();\n });\n\n // spinbuttons cannot be focused with VoiceOver on iOS.\n let touchPropOverrides = isIOS() || segment.type === 'timeZoneName' ? {\n role: 'textbox',\n 'aria-valuemax': null,\n 'aria-valuemin': null,\n 'aria-valuetext': null,\n 'aria-valuenow': null\n } : {};\n\n let {ariaLabelledBy, ariaDescribedBy} = labelIds.get(state);\n\n // Only apply aria-describedby to the first segment, unless the field is invalid. This avoids it being\n // read every time the user navigates to a new segment.\n let firstSegment = useMemo(() => state.segments.find(s => s.isEditable), [state.segments]);\n if (segment !== firstSegment && state.validationState !== 'invalid') {\n ariaDescribedBy = undefined;\n }\n\n let id = useId(props.id);\n let isEditable = !props.isDisabled && !props.isReadOnly && segment.isEditable;\n return {\n segmentProps: mergeProps(spinButtonProps, pressProps, {\n id,\n ...touchPropOverrides,\n 'aria-controls': props['aria-controls'],\n // 'aria-haspopup': props['aria-haspopup'], // deprecated in ARIA 1.2\n 'aria-invalid': state.validationState === 'invalid' ? 'true' : undefined,\n 'aria-label': segment.type !== 'literal' ? displayNames.of(segment.type) : undefined,\n 'aria-labelledby': `${ariaLabelledBy} ${id}`,\n 'aria-describedby': ariaDescribedBy,\n 'aria-placeholder': segment.isPlaceholder ? segment.text : undefined,\n 'aria-readonly': props.isReadOnly || !segment.isEditable ? 'true' : undefined,\n contentEditable: isEditable,\n suppressContentEditableWarning: isEditable,\n spellCheck: isEditable ? 'false' : undefined,\n autoCapitalize: isEditable ? 'off' : undefined,\n autoCorrect: isEditable ? 'off' : undefined,\n // Capitalization was changed in React 17...\n [parseInt(React.version, 10) >= 17 ? 'enterKeyHint' : 'enterkeyhint']: isEditable ? 'next' : undefined,\n inputMode: props.isDisabled || segment.type === 'dayPeriod' || !isEditable ? undefined : 'numeric',\n tabIndex: props.isDisabled ? undefined : 0,\n onKeyDown,\n onFocus\n })\n };\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {AriaButtonProps} from '@react-types/button';\nimport {AriaDatePickerProps, AriaDateRangePickerProps, DateValue} from '@react-types/datepicker';\nimport {AriaDialogProps} from '@react-types/dialog';\nimport {createFocusManager} from '@react-aria/focus';\nimport {DateRangePickerState} from '@react-stately/datepicker';\nimport {HTMLAttributes, LabelHTMLAttributes, RefObject} from 'react';\n// @ts-ignore\nimport intlMessages from '../intl/*.json';\nimport {mergeProps, useDescription, useId, useLabels} from '@react-aria/utils';\nimport {useDatePickerGroup} from './useDatePickerGroup';\nimport {useField} from '@react-aria/label';\nimport {useFocusWithin} from '@react-aria/interactions';\nimport {useLocale, useMessageFormatter} from '@react-aria/i18n';\n\ninterface DateRangePickerAria<T extends DateValue> {\n labelProps: LabelHTMLAttributes<HTMLLabelElement>,\n groupProps: HTMLAttributes<HTMLElement>,\n startFieldProps: AriaDatePickerProps<T>,\n endFieldProps: AriaDatePickerProps<T>,\n /** Props for the description element, if any. */\n descriptionProps: HTMLAttributes<HTMLElement>,\n /** Props for the error message element, if any. */\n errorMessageProps: HTMLAttributes<HTMLElement>,\n buttonProps: AriaButtonProps,\n dialogProps: AriaDialogProps\n}\n\nexport function useDateRangePicker<T extends DateValue>(props: AriaDateRangePickerProps<T>, state: DateRangePickerState, ref: RefObject<HTMLElement>): DateRangePickerAria<T> {\n let formatMessage = useMessageFormatter(intlMessages);\n let {labelProps, fieldProps, descriptionProps, errorMessageProps} = useField({\n ...props,\n labelElementType: 'span'\n });\n\n let labelledBy = fieldProps['aria-labelledby'] || fieldProps.id;\n\n let {locale} = useLocale();\n let description = state.formatValue(locale, {month: 'long'});\n let descProps = useDescription(description);\n\n let startFieldProps = useLabels({\n 'aria-label': formatMessage('startDate'),\n 'aria-labelledby': labelledBy\n });\n\n let endFieldProps = useLabels({\n 'aria-label': formatMessage('endDate'),\n 'aria-labelledby': labelledBy\n });\n\n let buttonId = useId();\n let dialogId = useId();\n\n let groupProps = useDatePickerGroup(state, ref);\n let {focusWithinProps} = useFocusWithin({\n onBlurWithin() {\n state.confirmPlaceholder();\n }\n });\n\n let ariaDescribedBy = [descProps['aria-describedby'], fieldProps['aria-describedby']].filter(Boolean).join(' ') || undefined;\n\n return {\n groupProps: mergeProps(groupProps, fieldProps, descProps, focusWithinProps, {\n role: 'group',\n 'aria-disabled': props.isDisabled || null,\n 'aria-describedby': ariaDescribedBy\n }),\n labelProps: {\n ...labelProps,\n onClick: () => {\n let focusManager = createFocusManager(ref);\n focusManager.focusFirst();\n }\n },\n buttonProps: {\n ...descProps,\n id: buttonId,\n excludeFromTabOrder: true,\n 'aria-haspopup': 'dialog',\n 'aria-label': formatMessage('calendar'),\n 'aria-labelledby': `${labelledBy} ${buttonId}`,\n 'aria-describedby': ariaDescribedBy\n },\n dialogProps: {\n id: dialogId,\n 'aria-labelledby': `${labelledBy} ${buttonId}`\n },\n startFieldProps: {\n ...startFieldProps,\n 'aria-describedby': fieldProps['aria-describedby']\n },\n endFieldProps: {\n ...endFieldProps,\n 'aria-describedby': fieldProps['aria-describedby']\n },\n descriptionProps,\n errorMessageProps\n };\n}\n"],"names":["$parcel$interopDefault","a","__esModule","default","JSON","parse","useDatePickerGroup","state","ref","onKeyDown","e","altKey","key","preventDefault","stopPropagation","setOpen","focusLast","elements","current","querySelectorAll","index","length","getAttribute","Math","min","element","focus","pressProps","usePress","onPressStart","pointerType","onPress","mergeProps","useDatePicker","props","buttonId","useId","dialogId","formatMessage","useMessageFormatter","intlMessages","labelProps","fieldProps","descriptionProps","errorMessageProps","useField","labelElementType","groupProps","labelledBy","id","locale","useLocale","descProps","useDescription","formatValue","month","ariaDescribedBy","filter","Boolean","join","undefined","role","isDisabled","onClick","focusManager","createFocusManager","focusFirst","buttonProps","excludeFromTabOrder","dialogProps","labelIds","WeakMap","useDateField","focusWithinProps","useFocusWithin","onBlurWithin","confirmPlaceholder","formatter","useDateFormatter","getFormatOptions","value","format","dateValue","segmentLabelledBy","describedBy","set","ariaLabelledBy","useDisplayNames","useMemo","Intl","DisplayNames","type","err","DisplayNamesPolyfill","constructor","dictionary","MessageDictionary","of","field","getStringForLocale","useDateSegment","segment","enteredKeys","useRef","direction","displayNames","useFocusManager","textValue","text","options","dateFormatter","resolvedOptions","monthDateFormatter","timeZone","hourDateFormatter","hour","hour12","monthTextValue","spinButtonProps","useSpinButton","minValue","maxValue","isReadOnly","isEditable","isRequired","onIncrement","increment","onDecrement","decrement","onIncrementPage","incrementPage","onDecrementPage","decrementPage","onIncrementToMax","setSegment","onDecrementToMin","parser","NumberParser","maximumFractionDigits","backspace","isValidPartialNumber","isPlaceholder","newValue","slice","parsed","clearSegment","isMac","metaKey","ctrlKey","shiftKey","focusNext","focusPrevious","startsWith","useFilter","sensitivity","amPmFormatter","am","date","Date","setHours","formatToParts","find","part","pm","onInput","numberValue","segmentValue","allowsZero","hourCycle","isNaN","shouldSetValue","Number","String","onFocus","scrollIntoView","getScrollParent","style","webkitUserSelect","selection","window","getSelection","collapse","compositionRef","useEvent","inputType","textContent","data","preventFocusOnPress","target","touchPropOverrides","isIOS","get","firstSegment","segments","s","validationState","segmentProps","contentEditable","suppressContentEditableWarning","spellCheck","autoCapitalize","autoCorrect","parseInt","React","version","inputMode","tabIndex","useDateRangePicker","description","startFieldProps","useLabels","endFieldProps"],"version":3,"file":"main.js.map"}
|
package/dist/module.js
CHANGED
|
@@ -5,7 +5,7 @@ import { NumberParser } from "@internationalized/number";
|
|
|
5
5
|
import { useLocale, useMessageFormatter, useDateFormatter, useFilter } from "@react-aria/i18n";
|
|
6
6
|
import { useField } from "@react-aria/label";
|
|
7
7
|
import { usePress, useFocusWithin } from "@react-aria/interactions";
|
|
8
|
-
import { mergeProps, useDescription, useId, isIOS, isMac, useEvent, useLabels } from "@react-aria/utils";
|
|
8
|
+
import { mergeProps, useDescription, useId, getScrollParent, isIOS, isMac, scrollIntoView, useEvent, useLabels } from "@react-aria/utils";
|
|
9
9
|
import { createFocusManager, useFocusManager } from "@react-aria/focus";
|
|
10
10
|
import _babelRuntimeHelpersEsmInteropRequireDefault from "@babel/runtime/helpers/esm/interopRequireDefault";
|
|
11
11
|
import _babelRuntimeHelpersEsmExtends from "@babel/runtime/helpers/esm/extends";
|
|
@@ -271,7 +271,12 @@ export function useDateField(props, state, ref) {
|
|
|
271
271
|
month: 'long'
|
|
272
272
|
}));
|
|
273
273
|
let descProps = useDescription(state.value ? formatter.format(state.dateValue) : null);
|
|
274
|
-
|
|
274
|
+
let segmentLabelledBy = fieldProps['aria-labelledby'] || fieldProps.id;
|
|
275
|
+
let describedBy = [descProps['aria-describedby'], fieldProps['aria-describedby']].filter(Boolean).join(' ') || undefined;
|
|
276
|
+
labelIds.set(state, {
|
|
277
|
+
ariaLabelledBy: segmentLabelledBy,
|
|
278
|
+
ariaDescribedBy: describedBy
|
|
279
|
+
});
|
|
275
280
|
return {
|
|
276
281
|
labelProps: _babelRuntimeHelpersEsmExtends({}, labelProps, {
|
|
277
282
|
onClick: () => {
|
|
@@ -282,7 +287,7 @@ export function useDateField(props, state, ref) {
|
|
|
282
287
|
fieldProps: mergeProps(fieldProps, descProps, groupProps, focusWithinProps, {
|
|
283
288
|
role: 'group',
|
|
284
289
|
'aria-disabled': props.isDisabled || undefined,
|
|
285
|
-
'aria-describedby':
|
|
290
|
+
'aria-describedby': describedBy
|
|
286
291
|
}),
|
|
287
292
|
descriptionProps,
|
|
288
293
|
errorMessageProps
|
|
@@ -391,7 +396,7 @@ export function useDateSegment(props, segment, state, ref) {
|
|
|
391
396
|
|
|
392
397
|
if (segment.type === 'month') {
|
|
393
398
|
let monthTextValue = monthDateFormatter.format(state.dateValue);
|
|
394
|
-
textValue = monthTextValue !== textValue ? textValue + "
|
|
399
|
+
textValue = monthTextValue !== textValue ? textValue + " \u2013 " + monthTextValue : monthTextValue;
|
|
395
400
|
} else if (segment.type === 'hour' || segment.type === 'dayPeriod') {
|
|
396
401
|
textValue = hourDateFormatter.format(state.dateValue);
|
|
397
402
|
}
|
|
@@ -622,16 +627,10 @@ export function useDateSegment(props, segment, state, ref) {
|
|
|
622
627
|
};
|
|
623
628
|
|
|
624
629
|
let onFocus = () => {
|
|
625
|
-
var _ref$current;
|
|
626
|
-
|
|
627
630
|
enteredKeys.current = '';
|
|
628
|
-
|
|
629
|
-
if ((_ref$current = ref.current) != null && _ref$current.scrollIntoView) {
|
|
630
|
-
ref.current.scrollIntoView();
|
|
631
|
-
} // Safari requires that a selection is set or it won't fire input events.
|
|
631
|
+
scrollIntoView(getScrollParent(ref.current), ref.current); // Safari requires that a selection is set or it won't fire input events.
|
|
632
632
|
// Since usePress disables text selection, this won't happen by default.
|
|
633
633
|
|
|
634
|
-
|
|
635
634
|
ref.current.style.webkitUserSelect = 'text';
|
|
636
635
|
let selection = window.getSelection();
|
|
637
636
|
selection.collapse(ref.current);
|
|
@@ -719,7 +718,18 @@ export function useDateSegment(props, segment, state, ref) {
|
|
|
719
718
|
'aria-valuetext': null,
|
|
720
719
|
'aria-valuenow': null
|
|
721
720
|
} : {};
|
|
722
|
-
let
|
|
721
|
+
let {
|
|
722
|
+
ariaLabelledBy,
|
|
723
|
+
ariaDescribedBy
|
|
724
|
+
} = labelIds.get(state); // Only apply aria-describedby to the first segment, unless the field is invalid. This avoids it being
|
|
725
|
+
// read every time the user navigates to a new segment.
|
|
726
|
+
|
|
727
|
+
let firstSegment = useMemo(() => state.segments.find(s => s.isEditable), [state.segments]);
|
|
728
|
+
|
|
729
|
+
if (segment !== firstSegment && state.validationState !== 'invalid') {
|
|
730
|
+
ariaDescribedBy = undefined;
|
|
731
|
+
}
|
|
732
|
+
|
|
723
733
|
let id = useId(props.id);
|
|
724
734
|
let isEditable = !props.isDisabled && !props.isReadOnly && segment.isEditable;
|
|
725
735
|
return {
|
|
@@ -730,7 +740,8 @@ export function useDateSegment(props, segment, state, ref) {
|
|
|
730
740
|
// 'aria-haspopup': props['aria-haspopup'], // deprecated in ARIA 1.2
|
|
731
741
|
'aria-invalid': state.validationState === 'invalid' ? 'true' : undefined,
|
|
732
742
|
'aria-label': segment.type !== 'literal' ? displayNames.of(segment.type) : undefined,
|
|
733
|
-
'aria-labelledby':
|
|
743
|
+
'aria-labelledby': ariaLabelledBy + " " + id,
|
|
744
|
+
'aria-describedby': ariaDescribedBy,
|
|
734
745
|
'aria-placeholder': segment.isPlaceholder ? segment.text : undefined,
|
|
735
746
|
'aria-readonly': props.isReadOnly || !segment.isEditable ? 'true' : undefined,
|
|
736
747
|
contentEditable: isEditable,
|
package/dist/module.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"mappings":"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","sources":["./packages/@react-aria/datepicker/intl/ar-AE.json","./packages/@react-aria/datepicker/intl/bg-BG.json","./packages/@react-aria/datepicker/intl/cs-CZ.json","./packages/@react-aria/datepicker/intl/da-DK.json","./packages/@react-aria/datepicker/intl/de-DE.json","./packages/@react-aria/datepicker/intl/el-GR.json","./packages/@react-aria/datepicker/intl/en-US.json","./packages/@react-aria/datepicker/intl/es-ES.json","./packages/@react-aria/datepicker/intl/et-EE.json","./packages/@react-aria/datepicker/intl/fi-FI.json","./packages/@react-aria/datepicker/intl/fr-FR.json","./packages/@react-aria/datepicker/intl/he-IL.json","./packages/@react-aria/datepicker/intl/hr-HR.json","./packages/@react-aria/datepicker/intl/hu-HU.json","./packages/@react-aria/datepicker/intl/it-IT.json","./packages/@react-aria/datepicker/intl/ja-JP.json","./packages/@react-aria/datepicker/intl/ko-KR.json","./packages/@react-aria/datepicker/intl/lt-LT.json","./packages/@react-aria/datepicker/intl/lv-LV.json","./packages/@react-aria/datepicker/intl/nb-NO.json","./packages/@react-aria/datepicker/intl/nl-NL.json","./packages/@react-aria/datepicker/intl/pl-PL.json","./packages/@react-aria/datepicker/intl/pt-BR.json","./packages/@react-aria/datepicker/intl/pt-PT.json","./packages/@react-aria/datepicker/intl/ro-RO.json","./packages/@react-aria/datepicker/intl/ru-RU.json","./packages/@react-aria/datepicker/intl/sk-SK.json","./packages/@react-aria/datepicker/intl/sl-SI.json","./packages/@react-aria/datepicker/intl/sr-SP.json","./packages/@react-aria/datepicker/intl/sv-SE.json","./packages/@react-aria/datepicker/intl/tr-TR.json","./packages/@react-aria/datepicker/intl/uk-UA.json","./packages/@react-aria/datepicker/intl/zh-CN.json","./packages/@react-aria/datepicker/intl/zh-TW.json","./packages/@react-aria/datepicker/src/useDatePickerGroup.ts","./packages/@react-aria/datepicker/src/useDatePicker.ts","./packages/@react-aria/datepicker/src/useDateField.ts","./packages/@react-aria/datepicker/src/useDisplayNames.ts","./packages/@react-aria/datepicker/src/useDateSegment.ts","./packages/@react-aria/datepicker/src/useDateRangePicker.ts"],"sourcesContent":["{\n \"calendar\": \"التقويم\",\n \"currentDate\": \"{date, date, full}\",\n \"currentDateRange\": \"{start, date, long} إلى {end, date, long}\",\n \"date\": \"التاريخ\",\n \"dateRange\": \"نطاق التاريخ\",\n \"day\": \"يوم\",\n \"dayPeriod\": \"ص/م\",\n \"endDate\": \"تاريخ الانتهاء\",\n \"era\": \"العصر\",\n \"hour\": \"الساعات\",\n \"minute\": \"الدقائق\",\n \"month\": \"الشهر\",\n \"second\": \"الثواني\",\n \"startDate\": \"تاريخ البدء\",\n \"year\": \"السنة\",\n \"weekday\": \"اليوم\",\n \"timeZoneName\": \"التوقيت\"\n}\n","{\n \"calendar\": \"Календар\",\n \"currentDate\": \"{date, date, full}\",\n \"currentDateRange\": \"{start, date, long} до {end, date, long}\",\n \"date\": \"Дата\",\n \"dateRange\": \"Времеви интервал\",\n \"day\": \"ден\",\n \"dayPeriod\": \"пр.об./сл.об.\",\n \"endDate\": \"Крайна дата\",\n \"era\": \"ера\",\n \"hour\": \"час\",\n \"minute\": \"минута\",\n \"month\": \"месец\",\n \"second\": \"секунда\",\n \"startDate\": \"Начална дата\",\n \"year\": \"година\",\n \"weekday\": \"ден от седмицата\",\n \"timeZoneName\": \"часова зона\"\n}\n","{\n \"calendar\": \"Kalendář\",\n \"currentDate\": \"{date, date, full}\",\n \"currentDateRange\": \"{start, date, long} až {end, date, long}\",\n \"date\": \"Datum\",\n \"dateRange\": \"Rozsah dat\",\n \"day\": \"den\",\n \"dayPeriod\": \"část dne\",\n \"endDate\": \"Konečné datum\",\n \"era\": \"letopočet\",\n \"hour\": \"hodina\",\n \"minute\": \"minuta\",\n \"month\": \"měsíc\",\n \"second\": \"sekunda\",\n \"startDate\": \"Počáteční datum\",\n \"year\": \"rok\",\n \"weekday\": \"den v týdnu\",\n \"timeZoneName\": \"časové pásmo\"\n}\n","{\n \"calendar\": \"Kalender\",\n \"currentDate\": \"{date, date, full}\",\n \"currentDateRange\": \"{start, date, long} til {end, date, long}\",\n \"date\": \"Dato\",\n \"dateRange\": \"Datointerval\",\n \"day\": \"dag\",\n \"dayPeriod\": \"AM/PM\",\n \"endDate\": \"Slutdato\",\n \"era\": \"æra\",\n \"hour\": \"time\",\n \"minute\": \"minut\",\n \"month\": \"måned\",\n \"second\": \"sekund\",\n \"startDate\": \"Startdato\",\n \"year\": \"år\",\n \"weekday\": \"ugedag\",\n \"timeZoneName\": \"tidszone\"\n}\n","{\n \"calendar\": \"Kalender\",\n \"currentDate\": \"{date, date, full}\",\n \"currentDateRange\": \"{start, date, long} bis {end, date, long}\",\n \"date\": \"Datum\",\n \"dateRange\": \"Datumsbereich\",\n \"day\": \"Tag\",\n \"dayPeriod\": \"Tageshälfte\",\n \"endDate\": \"Enddatum\",\n \"era\": \"Epoche\",\n \"hour\": \"Stunde\",\n \"minute\": \"Minute\",\n \"month\": \"Monat\",\n \"second\": \"Sekunde\",\n \"startDate\": \"Anfangsdatum\",\n \"year\": \"Jahr\",\n \"weekday\": \"Wochentag\",\n \"timeZoneName\": \"Zeitzone\"\n}\n","{\n \"calendar\": \"Ημερολόγιο\",\n \"currentDate\": \"{date, date, full}\",\n \"currentDateRange\": \"{start, date, long} ως {end, date, long}\",\n \"date\": \"Ημερομηνία\",\n \"dateRange\": \"Εύρος ημερομηνιών\",\n \"day\": \"ημέρα\",\n \"dayPeriod\": \"π.μ./μ.μ.\",\n \"endDate\": \"Ημερομηνία λήξης\",\n \"era\": \"περίοδος\",\n \"hour\": \"ώρα\",\n \"minute\": \"λεπτό\",\n \"month\": \"μήνας\",\n \"second\": \"δευτερόλεπτο\",\n \"startDate\": \"Ημερομηνία έναρξης\",\n \"year\": \"έτος\",\n \"weekday\": \"καθημερινή\",\n \"timeZoneName\": \"ζώνη ώρας\"\n}\n","{\n \"era\": \"era\",\n \"year\": \"year\",\n \"month\": \"month\",\n \"day\": \"day\",\n \"hour\": \"hour\",\n \"minute\": \"minute\",\n \"second\": \"second\",\n \"dayPeriod\": \"AM/PM\",\n \"calendar\": \"Calendar\",\n \"date\": \"Date\",\n \"dateRange\": \"Date Range\",\n \"startDate\": \"Start Date\",\n \"endDate\": \"End Date\",\n \"currentDate\": \"{date, date, full}\",\n \"currentDateRange\": \"{start, date, long} to {end, date, long}\",\n \"weekday\": \"day of the week\",\n \"timeZoneName\": \"time zone\"\n}\n","{\n \"calendar\": \"Calendario\",\n \"currentDate\": \"{date, date, full}\",\n \"currentDateRange\": \"{start, date, long} a {end, date, long}\",\n \"date\": \"Fecha\",\n \"dateRange\": \"Intervalo de fecha\",\n \"day\": \"día\",\n \"dayPeriod\": \"a. m./p. m.\",\n \"endDate\": \"Fecha final\",\n \"era\": \"era\",\n \"hour\": \"hora\",\n \"minute\": \"minuto\",\n \"month\": \"mes\",\n \"second\": \"segundo\",\n \"startDate\": \"Fecha de inicio\",\n \"year\": \"año\",\n \"weekday\": \"día de la semana\",\n \"timeZoneName\": \"zona horaria\"\n}\n","{\n \"calendar\": \"Kalender\",\n \"currentDate\": \"{date, date, full}\",\n \"currentDateRange\": \"{start, date, long} kuni {end, date, long}\",\n \"date\": \"Kuupäev\",\n \"dateRange\": \"Kuupäevavahemik\",\n \"day\": \"päev\",\n \"dayPeriod\": \"enne/pärast lõunat\",\n \"endDate\": \"Lõppkuupäev\",\n \"era\": \"ajastu\",\n \"hour\": \"tund\",\n \"minute\": \"minut\",\n \"month\": \"kuu\",\n \"second\": \"sekund\",\n \"startDate\": \"Alguskuupäev\",\n \"year\": \"aasta\",\n \"weekday\": \"nädalapäev\",\n \"timeZoneName\": \"ajavöönd\"\n}\n","{\n \"calendar\": \"Kalenteri\",\n \"currentDate\": \"{date, date, full}\",\n \"currentDateRange\": \"{start, date, long}–{end, date, long}\",\n \"date\": \"Päivämäärä\",\n \"dateRange\": \"Päivämääräalue\",\n \"day\": \"päivä\",\n \"dayPeriod\": \"vuorokaudenaika\",\n \"endDate\": \"Päättymispäivä\",\n \"era\": \"aikakausi\",\n \"hour\": \"tunti\",\n \"minute\": \"minuutti\",\n \"month\": \"kuukausi\",\n \"second\": \"sekunti\",\n \"startDate\": \"Alkamispäivä\",\n \"year\": \"vuosi\",\n \"weekday\": \"viikonpäivä\",\n \"timeZoneName\": \"aikavyöhyke\"\n}\n","{\n \"calendar\": \"Calendrier\",\n \"currentDate\": \"{date, date, full}\",\n \"currentDateRange\": \"{start, date, long} au {end, date, long}\",\n \"date\": \"Date\",\n \"dateRange\": \"Plage de dates\",\n \"day\": \"jour\",\n \"dayPeriod\": \"cadran\",\n \"endDate\": \"Date de fin\",\n \"era\": \"ère\",\n \"hour\": \"heure\",\n \"minute\": \"minute\",\n \"month\": \"mois\",\n \"second\": \"seconde\",\n \"startDate\": \"Date de début\",\n \"year\": \"année\",\n \"weekday\": \"jour de la semaine\",\n \"timeZoneName\": \"fuseau horaire\"\n}\n","{\n \"calendar\": \"לוח שנה\",\n \"currentDate\": \"{date, date, full}\",\n \"currentDateRange\": \"מ-{start, date, long} ועד {end, date, long}\",\n \"date\": \"תאריך\",\n \"dateRange\": \"טווח תאריכים\",\n \"day\": \"יום\",\n \"dayPeriod\": \"לפנה״צ/אחה״צ\",\n \"endDate\": \"תאריך סיום\",\n \"era\": \"תקופה\",\n \"hour\": \"שעה\",\n \"minute\": \"דקה\",\n \"month\": \"חודש\",\n \"second\": \"שנייה\",\n \"startDate\": \"תאריך התחלה\",\n \"year\": \"שנה\",\n \"weekday\": \"יום בשבוע\",\n \"timeZoneName\": \"אזור זמן\"\n}\n","{\n \"calendar\": \"Kalendar\",\n \"currentDate\": \"{date, date, full}\",\n \"currentDateRange\": \"{start, date, long} do {end, date, long}\",\n \"date\": \"Datum\",\n \"dateRange\": \"Raspon datuma\",\n \"day\": \"dan\",\n \"dayPeriod\": \"AM/PM\",\n \"endDate\": \"Datum završetka\",\n \"era\": \"era\",\n \"hour\": \"sat\",\n \"minute\": \"minuta\",\n \"month\": \"mjesec\",\n \"second\": \"sekunda\",\n \"startDate\": \"Datum početka\",\n \"year\": \"godina\",\n \"weekday\": \"dan u tjednu\",\n \"timeZoneName\": \"vremenska zona\"\n}\n","{\n \"calendar\": \"Naptár\",\n \"currentDate\": \"{date, date, full}\",\n \"currentDateRange\": \"{start, date, long} – {end, date, long}\",\n \"date\": \"Dátum\",\n \"dateRange\": \"Dátumtartomány\",\n \"day\": \"nap\",\n \"dayPeriod\": \"napszak\",\n \"endDate\": \"Befejező dátum\",\n \"era\": \"éra\",\n \"hour\": \"óra\",\n \"minute\": \"perc\",\n \"month\": \"hónap\",\n \"second\": \"másodperc\",\n \"startDate\": \"Kezdő dátum\",\n \"year\": \"év\",\n \"weekday\": \"hét napja\",\n \"timeZoneName\": \"időzóna\"\n}\n","{\n \"calendar\": \"Calendario\",\n \"currentDate\": \"{date, date, full}\",\n \"currentDateRange\": \"Da {start, date, long} a {end, date, long}\",\n \"date\": \"Data\",\n \"dateRange\": \"Intervallo date\",\n \"day\": \"giorno\",\n \"dayPeriod\": \"AM/PM\",\n \"endDate\": \"Data finale\",\n \"era\": \"era\",\n \"hour\": \"ora\",\n \"minute\": \"minuto\",\n \"month\": \"mese\",\n \"second\": \"secondo\",\n \"startDate\": \"Data iniziale\",\n \"year\": \"anno\",\n \"weekday\": \"giorno della settimana\",\n \"timeZoneName\": \"fuso orario\"\n}\n","{\n \"calendar\": \"カレンダー\",\n \"currentDate\": \"{date, date, full}\",\n \"currentDateRange\": \"{start, date, long} ~ {end, date, long}\",\n \"date\": \"日付\",\n \"dateRange\": \"日付範囲\",\n \"day\": \"日\",\n \"dayPeriod\": \"午前/午後\",\n \"endDate\": \"終了日\",\n \"era\": \"時代\",\n \"hour\": \"時\",\n \"minute\": \"分\",\n \"month\": \"月\",\n \"second\": \"秒\",\n \"startDate\": \"開始日\",\n \"year\": \"年\",\n \"weekday\": \"曜日\",\n \"timeZoneName\": \"タイムゾーン\"\n}\n","{\n \"calendar\": \"달력\",\n \"currentDate\": \"{date, date, full}\",\n \"currentDateRange\": \"{start, date, long} ~ {end, date, long}\",\n \"date\": \"날짜\",\n \"dateRange\": \"날짜 범위\",\n \"day\": \"일\",\n \"dayPeriod\": \"오전/오후\",\n \"endDate\": \"종료 날짜\",\n \"era\": \"연호\",\n \"hour\": \"시\",\n \"minute\": \"분\",\n \"month\": \"월\",\n \"second\": \"초\",\n \"startDate\": \"시작 날짜\",\n \"year\": \"년\",\n \"weekday\": \"요일\",\n \"timeZoneName\": \"시간대\"\n}\n","{\n \"calendar\": \"Kalendorius\",\n \"currentDate\": \"{date, date, full}\",\n \"currentDateRange\": \"Nuo {start, date, long} iki {end, date, long}\",\n \"date\": \"Data\",\n \"dateRange\": \"Datų intervalas\",\n \"day\": \"diena\",\n \"dayPeriod\": \"iki pietų / po pietų\",\n \"endDate\": \"Pabaigos data\",\n \"era\": \"era\",\n \"hour\": \"valanda\",\n \"minute\": \"minutė\",\n \"month\": \"mėnuo\",\n \"second\": \"sekundė\",\n \"startDate\": \"Pradžios data\",\n \"year\": \"metai\",\n \"weekday\": \"savaitės diena\",\n \"timeZoneName\": \"laiko juosta\"\n}\n","{\n \"calendar\": \"Kalendārs\",\n \"currentDate\": \"{date, date, full}\",\n \"currentDateRange\": \"{start, date, long} līdz {end, date, long}\",\n \"date\": \"Datums\",\n \"dateRange\": \"Datumu diapazons\",\n \"day\": \"diena\",\n \"dayPeriod\": \"priekšpusdienā/pēcpusdienā\",\n \"endDate\": \"Beigu datums\",\n \"era\": \"ēra\",\n \"hour\": \"stundas\",\n \"minute\": \"minūtes\",\n \"month\": \"mēnesis\",\n \"second\": \"sekundes\",\n \"startDate\": \"Sākuma datums\",\n \"year\": \"gads\",\n \"weekday\": \"nedēļas diena\",\n \"timeZoneName\": \"laika josla\"\n}\n","{\n \"calendar\": \"Kalender\",\n \"currentDate\": \"{date, date, full}\",\n \"currentDateRange\": \"{start, date, long} til {end, date, long}\",\n \"date\": \"Dato\",\n \"dateRange\": \"Datoområde\",\n \"day\": \"dag\",\n \"dayPeriod\": \"a.m./p.m.\",\n \"endDate\": \"Sluttdato\",\n \"era\": \"tidsalder\",\n \"hour\": \"time\",\n \"minute\": \"minutt\",\n \"month\": \"måned\",\n \"second\": \"sekund\",\n \"startDate\": \"Startdato\",\n \"year\": \"år\",\n \"weekday\": \"ukedag\",\n \"timeZoneName\": \"tidssone\"\n}\n","{\n \"calendar\": \"Kalender\",\n \"currentDate\": \"{date, date, full}\",\n \"currentDateRange\": \"{start, date, long} t/m {end, date, long}\",\n \"date\": \"Datum\",\n \"dateRange\": \"Datumbereik\",\n \"day\": \"dag\",\n \"dayPeriod\": \"a.m./p.m.\",\n \"endDate\": \"Einddatum\",\n \"era\": \"tijdperk\",\n \"hour\": \"uur\",\n \"minute\": \"minuut\",\n \"month\": \"maand\",\n \"second\": \"seconde\",\n \"startDate\": \"Startdatum\",\n \"year\": \"jaar\",\n \"weekday\": \"dag van de week\",\n \"timeZoneName\": \"tijdzone\"\n}\n","{\n \"calendar\": \"Kalendarz\",\n \"currentDate\": \"{date, date, full}\",\n \"currentDateRange\": \"{start, date, long} do {end, date, long}\",\n \"date\": \"Data\",\n \"dateRange\": \"Zakres dat\",\n \"day\": \"dzień\",\n \"dayPeriod\": \"rano / po południu / wieczorem\",\n \"endDate\": \"Data końcowa\",\n \"era\": \"era\",\n \"hour\": \"godzina\",\n \"minute\": \"minuta\",\n \"month\": \"miesiąc\",\n \"second\": \"sekunda\",\n \"startDate\": \"Data początkowa\",\n \"year\": \"rok\",\n \"weekday\": \"dzień tygodnia\",\n \"timeZoneName\": \"strefa czasowa\"\n}\n","{\n \"calendar\": \"Calendário\",\n \"currentDate\": \"{date, date, full}\",\n \"currentDateRange\": \"{start, date, long} a {end, date, long}\",\n \"date\": \"Data\",\n \"dateRange\": \"Intervalo de datas\",\n \"day\": \"dia\",\n \"dayPeriod\": \"AM/PM\",\n \"endDate\": \"Data final\",\n \"era\": \"era\",\n \"hour\": \"hora\",\n \"minute\": \"minuto\",\n \"month\": \"mês\",\n \"second\": \"segundo\",\n \"startDate\": \"Data inicial\",\n \"year\": \"ano\",\n \"weekday\": \"dia da semana\",\n \"timeZoneName\": \"fuso horário\"\n}\n","{\n \"calendar\": \"Calendário\",\n \"currentDate\": \"{date, date, full}\",\n \"currentDateRange\": \"{start, date, long} a {end, date, long}\",\n \"date\": \"Data\",\n \"dateRange\": \"Intervalo de datas\",\n \"day\": \"dia\",\n \"dayPeriod\": \"am/pm\",\n \"endDate\": \"Data de Término\",\n \"era\": \"era\",\n \"hour\": \"hora\",\n \"minute\": \"minuto\",\n \"month\": \"mês\",\n \"second\": \"segundo\",\n \"startDate\": \"Data de Início\",\n \"year\": \"ano\",\n \"weekday\": \"dia da semana\",\n \"timeZoneName\": \"fuso horário\"\n}\n","{\n \"calendar\": \"Calendar\",\n \"currentDate\": \"{date, date, full}\",\n \"currentDateRange\": \"{start, date, long} - {end, date, long}\",\n \"date\": \"Dată\",\n \"dateRange\": \"Raza datei\",\n \"day\": \"zi\",\n \"dayPeriod\": \"a.m/p.m.\",\n \"endDate\": \"Dată final\",\n \"era\": \"eră\",\n \"hour\": \"oră\",\n \"minute\": \"minut\",\n \"month\": \"lună\",\n \"second\": \"secundă\",\n \"startDate\": \"Dată început\",\n \"year\": \"an\",\n \"weekday\": \"ziua din săptămână\",\n \"timeZoneName\": \"fus orar\"\n}\n","{\n \"calendar\": \"Календарь\",\n \"currentDate\": \"{date, date, full}\",\n \"currentDateRange\": \"{start, date, long} – {end, date, long}\",\n \"date\": \"Дата\",\n \"dateRange\": \"Диапазон дат\",\n \"day\": \"день\",\n \"dayPeriod\": \"AM/PM\",\n \"endDate\": \"Дата окончания\",\n \"era\": \"эра\",\n \"hour\": \"час\",\n \"minute\": \"минута\",\n \"month\": \"месяц\",\n \"second\": \"секунда\",\n \"startDate\": \"Дата начала\",\n \"year\": \"год\",\n \"weekday\": \"день недели\",\n \"timeZoneName\": \"часовой пояс\"\n}\n","{\n \"calendar\": \"Kalendár\",\n \"currentDate\": \"{date, date, full}\",\n \"currentDateRange\": \"{start, date, long} do {end, date, long}\",\n \"date\": \"Dátum\",\n \"dateRange\": \"Rozsah dátumov\",\n \"day\": \"deň\",\n \"dayPeriod\": \"AM/PM\",\n \"endDate\": \"Dátum ukončenia\",\n \"era\": \"letopočet\",\n \"hour\": \"hodina\",\n \"minute\": \"minúta\",\n \"month\": \"mesiac\",\n \"second\": \"sekunda\",\n \"startDate\": \"Dátum začatia\",\n \"year\": \"rok\",\n \"weekday\": \"deň týždňa\",\n \"timeZoneName\": \"časové pásmo\"\n}\n","{\n \"calendar\": \"Koledar\",\n \"currentDate\": \"{date, date, full}\",\n \"currentDateRange\": \"{start, date, long} do {end, date, long}\",\n \"date\": \"Datum\",\n \"dateRange\": \"Datumski obseg\",\n \"day\": \"dan\",\n \"dayPeriod\": \"dop/pop\",\n \"endDate\": \"Datum konca\",\n \"era\": \"doba\",\n \"hour\": \"ura\",\n \"minute\": \"minuta\",\n \"month\": \"mesec\",\n \"second\": \"sekunda\",\n \"startDate\": \"Datum začetka\",\n \"year\": \"leto\",\n \"weekday\": \"dan v tednu\",\n \"timeZoneName\": \"časovni pas\"\n}\n","{\n \"calendar\": \"Kalendar\",\n \"currentDate\": \"{date, date, full}\",\n \"currentDateRange\": \"{start, date, long} do {end, date, long}\",\n \"date\": \"Datum\",\n \"dateRange\": \"Opseg datuma\",\n \"day\": \"дан\",\n \"dayPeriod\": \"пре подне/по подне\",\n \"endDate\": \"Datum završetka\",\n \"era\": \"ера\",\n \"hour\": \"сат\",\n \"minute\": \"минут\",\n \"month\": \"месец\",\n \"second\": \"секунд\",\n \"startDate\": \"Datum početka\",\n \"year\": \"година\",\n \"weekday\": \"дан у недељи\",\n \"timeZoneName\": \"временска зона\"\n}\n","{\n \"calendar\": \"Kalender\",\n \"currentDate\": \"{date, date, full}\",\n \"currentDateRange\": \"{start, date, long} till {end, date, long}\",\n \"date\": \"Datum\",\n \"dateRange\": \"Datumintervall\",\n \"day\": \"dag\",\n \"dayPeriod\": \"fm/em\",\n \"endDate\": \"Slutdatum\",\n \"era\": \"era\",\n \"hour\": \"timme\",\n \"minute\": \"minut\",\n \"month\": \"månad\",\n \"second\": \"sekund\",\n \"startDate\": \"Startdatum\",\n \"year\": \"år\",\n \"weekday\": \"veckodag\",\n \"timeZoneName\": \"tidszon\"\n}\n","{\n \"calendar\": \"Takvim\",\n \"currentDate\": \"{date, date, full}\",\n \"currentDateRange\": \"{start, date, long} - {end, date, long}\",\n \"date\": \"Tarih\",\n \"dateRange\": \"Tarih Aralığı\",\n \"day\": \"gün\",\n \"dayPeriod\": \"ÖÖ/ÖS\",\n \"endDate\": \"Bitiş Tarihi\",\n \"era\": \"çağ\",\n \"hour\": \"saat\",\n \"minute\": \"dakika\",\n \"month\": \"ay\",\n \"second\": \"saniye\",\n \"startDate\": \"Başlangıç Tarihi\",\n \"year\": \"yıl\",\n \"weekday\": \"haftanın günü\",\n \"timeZoneName\": \"saat dilimi\"\n}\n","{\n \"calendar\": \"Календар\",\n \"currentDate\": \"{date, date, full}\",\n \"currentDateRange\": \"Від {start, date, long} до {end, date, long}\",\n \"date\": \"Дата\",\n \"dateRange\": \"Діапазон дат\",\n \"day\": \"день\",\n \"dayPeriod\": \"дп/пп\",\n \"endDate\": \"Дата завершення\",\n \"era\": \"ера\",\n \"hour\": \"година\",\n \"minute\": \"хвилина\",\n \"month\": \"місяць\",\n \"second\": \"секунда\",\n \"startDate\": \"Дата початку\",\n \"year\": \"рік\",\n \"weekday\": \"день тижня\",\n \"timeZoneName\": \"часовий пояс\"\n}\n","{\n \"calendar\": \"日历\",\n \"currentDate\": \"{date, date, full}\",\n \"currentDateRange\": \"{start, date, long} 至 {end, date, long}\",\n \"date\": \"日期\",\n \"dateRange\": \"日期范围\",\n \"day\": \"日\",\n \"dayPeriod\": \"上午/下午\",\n \"endDate\": \"结束日期\",\n \"era\": \"纪元\",\n \"hour\": \"小时\",\n \"minute\": \"分钟\",\n \"month\": \"月\",\n \"second\": \"秒\",\n \"startDate\": \"开始日期\",\n \"year\": \"年\",\n \"weekday\": \"工作日\",\n \"timeZoneName\": \"时区\"\n}\n","{\n \"calendar\": \"日曆\",\n \"currentDate\": \"{date, date, full}\",\n \"currentDateRange\": \"{start, date, long}至 {end, date, long}\",\n \"date\": \"日期\",\n \"dateRange\": \"日期範圍\",\n \"day\": \"日\",\n \"dayPeriod\": \"上午/下午\",\n \"endDate\": \"結束日期\",\n \"era\": \"纪元\",\n \"hour\": \"小时\",\n \"minute\": \"分钟\",\n \"month\": \"月\",\n \"second\": \"秒\",\n \"startDate\": \"開始日期\",\n \"year\": \"年\",\n \"weekday\": \"工作日\",\n \"timeZoneName\": \"时区\"\n}\n","import {DatePickerFieldState, DatePickerState, DateRangePickerState} from '@react-stately/datepicker';\nimport {KeyboardEvent} from '@react-types/shared';\nimport {mergeProps} from '@react-aria/utils';\nimport {RefObject} from 'react';\nimport {usePress} from '@react-aria/interactions';\n\nexport function useDatePickerGroup(state: DatePickerState | DateRangePickerState | DatePickerFieldState, ref: RefObject<HTMLElement>) {\n // Open the popover on alt + arrow down\n let onKeyDown = (e: KeyboardEvent) => {\n if (e.altKey && e.key === 'ArrowDown' && 'setOpen' in state) {\n e.preventDefault();\n e.stopPropagation();\n state.setOpen(true);\n }\n };\n\n // Focus the first placeholder segment from the end on mouse down/touch up in the field.\n let focusLast = () => {\n let elements = ref.current.querySelectorAll('[tabindex=\"0\"]');\n let index = elements.length - 1;\n while (index >= 0 && elements[index].getAttribute('aria-placeholder')) {\n index--;\n }\n index = Math.min(index + 1, elements.length - 1);\n let element = elements[index] as HTMLElement;\n if (element) {\n element.focus();\n }\n };\n\n let {pressProps} = usePress({\n onPressStart(e) {\n if (e.pointerType === 'mouse') {\n focusLast();\n }\n },\n onPress(e) {\n if (e.pointerType !== 'mouse') {\n focusLast();\n }\n }\n });\n\n return mergeProps(pressProps, {onKeyDown});\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {AriaButtonProps} from '@react-types/button';\nimport {AriaDatePickerProps, DateValue} from '@react-types/datepicker';\nimport {AriaDialogProps} from '@react-types/dialog';\nimport {createFocusManager} from '@react-aria/focus';\nimport {DatePickerState} from '@react-stately/datepicker';\nimport {HTMLAttributes, LabelHTMLAttributes, RefObject} from 'react';\n// @ts-ignore\nimport intlMessages from '../intl/*.json';\nimport {mergeProps, useDescription, useId} from '@react-aria/utils';\nimport {useDatePickerGroup} from './useDatePickerGroup';\nimport {useField} from '@react-aria/label';\nimport {useLocale, useMessageFormatter} from '@react-aria/i18n';\n\ninterface DatePickerAria<T extends DateValue> {\n groupProps: HTMLAttributes<HTMLElement>,\n labelProps: LabelHTMLAttributes<HTMLLabelElement>,\n fieldProps: AriaDatePickerProps<T>,\n /** Props for the description element, if any. */\n descriptionProps: HTMLAttributes<HTMLElement>,\n /** Props for the error message element, if any. */\n errorMessageProps: HTMLAttributes<HTMLElement>,\n buttonProps: AriaButtonProps,\n dialogProps: AriaDialogProps\n}\n\nexport function useDatePicker<T extends DateValue>(props: AriaDatePickerProps<T>, state: DatePickerState, ref: RefObject<HTMLElement>): DatePickerAria<T> {\n let buttonId = useId();\n let dialogId = useId();\n let formatMessage = useMessageFormatter(intlMessages);\n\n let {labelProps, fieldProps, descriptionProps, errorMessageProps} = useField({\n ...props,\n labelElementType: 'span'\n });\n\n let groupProps = useDatePickerGroup(state, ref);\n\n let labelledBy = fieldProps['aria-labelledby'] || fieldProps.id;\n\n let {locale} = useLocale();\n let descProps = useDescription(state.formatValue(locale, {month: 'long'}));\n let ariaDescribedBy = [descProps['aria-describedby'], fieldProps['aria-describedby']].filter(Boolean).join(' ') || undefined;\n\n return {\n groupProps: mergeProps(groupProps, descProps, {\n role: 'group',\n 'aria-disabled': props.isDisabled || null,\n 'aria-labelledby': labelledBy,\n 'aria-describedby': ariaDescribedBy\n }),\n labelProps: {\n ...labelProps,\n onClick: () => {\n let focusManager = createFocusManager(ref);\n focusManager.focusFirst();\n }\n },\n fieldProps,\n descriptionProps,\n errorMessageProps,\n buttonProps: {\n ...descProps,\n id: buttonId,\n excludeFromTabOrder: true,\n 'aria-haspopup': 'dialog',\n 'aria-label': formatMessage('calendar'),\n 'aria-labelledby': `${labelledBy} ${buttonId}`,\n 'aria-describedby': ariaDescribedBy\n },\n dialogProps: {\n id: dialogId,\n 'aria-labelledby': `${labelledBy} ${buttonId}`\n }\n };\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {AriaDatePickerProps, DateValue} from '@react-types/datepicker';\nimport {createFocusManager} from '@react-aria/focus';\nimport {DatePickerFieldState} from '@react-stately/datepicker';\nimport {HTMLAttributes, LabelHTMLAttributes, RefObject} from 'react';\nimport {mergeProps, useDescription} from '@react-aria/utils';\nimport {useDateFormatter} from '@react-aria/i18n';\nimport {useDatePickerGroup} from './useDatePickerGroup';\nimport {useField} from '@react-aria/label';\nimport {useFocusWithin} from '@react-aria/interactions';\n\n// Allows this hook to also be used with TimeField\ninterface DateFieldProps<T extends DateValue> extends Omit<AriaDatePickerProps<T>, 'value' | 'defaultValue' | 'onChange' | 'minValue' | 'maxValue' | 'placeholderValue'> {}\n\ninterface DateFieldAria {\n labelProps: LabelHTMLAttributes<HTMLLabelElement>,\n fieldProps: HTMLAttributes<HTMLElement>,\n /** Props for the description element, if any. */\n descriptionProps: HTMLAttributes<HTMLElement>,\n /** Props for the error message element, if any. */\n errorMessageProps: HTMLAttributes<HTMLElement>\n}\n\nexport const labelIds = new WeakMap<DatePickerFieldState, string>();\n\nexport function useDateField<T extends DateValue>(props: DateFieldProps<T>, state: DatePickerFieldState, ref: RefObject<HTMLElement>): DateFieldAria {\n let {labelProps, fieldProps, descriptionProps, errorMessageProps} = useField({\n ...props,\n labelElementType: 'span'\n });\n\n let groupProps = useDatePickerGroup(state, ref);\n\n let {focusWithinProps} = useFocusWithin({\n onBlurWithin() {\n state.confirmPlaceholder();\n }\n });\n\n let formatter = useDateFormatter(state.getFormatOptions({month: 'long'}));\n let descProps = useDescription(state.value ? formatter.format(state.dateValue) : null);\n\n labelIds.set(state, fieldProps['aria-labelledby'] || fieldProps.id);\n\n return {\n labelProps: {\n ...labelProps,\n onClick: () => {\n let focusManager = createFocusManager(ref);\n focusManager.focusFirst();\n }\n },\n fieldProps: mergeProps(fieldProps, descProps, groupProps, focusWithinProps, {\n role: 'group',\n 'aria-disabled': props.isDisabled || undefined,\n 'aria-describedby': [descProps['aria-describedby'], fieldProps['aria-describedby']].filter(Boolean).join(' ') || undefined\n }),\n descriptionProps,\n errorMessageProps\n };\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\n// @ts-ignore\nimport intlMessages from '../intl/*.json';\nimport {MessageDictionary} from '@internationalized/message';\nimport {useLocale} from '@react-aria/i18n';\nimport {useMemo} from 'react';\n\ntype Field = 'era' | 'year' | 'month' | 'day' | 'hour' | 'minute' | 'second' | 'dayPeriod' | 'timeZoneName' | 'weekday';\ninterface DisplayNames {\n of(field: Field): string\n}\n\nexport function useDisplayNames(): DisplayNames {\n let {locale} = useLocale();\n return useMemo(() => {\n // Try to use Intl.DisplayNames if possible. It may be supported in browsers, but not support the dateTimeField\n // type as that was only added in v2. https://github.com/tc39/intl-displaynames-v2\n try {\n // @ts-ignore\n return new Intl.DisplayNames(locale, {type: 'dateTimeField'});\n } catch (err) {\n return new DisplayNamesPolyfill(locale);\n }\n }, [locale]);\n}\n\nclass DisplayNamesPolyfill implements DisplayNames {\n private locale: string;\n private dictionary: MessageDictionary;\n\n constructor(locale: string) {\n this.locale = locale;\n this.dictionary = new MessageDictionary(intlMessages);\n }\n\n of(field: Field): string {\n return this.dictionary.getStringForLocale(field, this.locale);\n }\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {DatePickerFieldState, DateSegment} from '@react-stately/datepicker';\nimport {DatePickerProps, DateValue} from '@react-types/datepicker';\nimport {DOMProps} from '@react-types/shared';\nimport {isIOS, isMac, mergeProps, useEvent, useId} from '@react-aria/utils';\nimport {labelIds} from './useDateField';\nimport {NumberParser} from '@internationalized/number';\nimport React, {HTMLAttributes, RefObject, useMemo, useRef} from 'react';\nimport {useDateFormatter, useFilter, useLocale} from '@react-aria/i18n';\nimport {useDisplayNames} from './useDisplayNames';\nimport {useFocusManager} from '@react-aria/focus';\nimport {usePress} from '@react-aria/interactions';\nimport {useSpinButton} from '@react-aria/spinbutton';\n\ninterface DateSegmentAria {\n segmentProps: HTMLAttributes<HTMLDivElement>\n}\n\nexport function useDateSegment<T extends DateValue>(props: DatePickerProps<T> & DOMProps, segment: DateSegment, state: DatePickerFieldState, ref: RefObject<HTMLElement>): DateSegmentAria {\n let enteredKeys = useRef('');\n let {locale, direction} = useLocale();\n let displayNames = useDisplayNames();\n let focusManager = useFocusManager();\n\n let textValue = segment.text;\n let options = useMemo(() => state.dateFormatter.resolvedOptions(), [state.dateFormatter]);\n let monthDateFormatter = useDateFormatter({month: 'long', timeZone: options.timeZone});\n let hourDateFormatter = useDateFormatter({\n hour: 'numeric',\n hour12: options.hour12,\n timeZone: options.timeZone\n });\n\n if (segment.type === 'month') {\n let monthTextValue = monthDateFormatter.format(state.dateValue);\n textValue = monthTextValue !== textValue ? `${textValue} - ${monthTextValue}` : monthTextValue;\n } else if (segment.type === 'hour' || segment.type === 'dayPeriod') {\n textValue = hourDateFormatter.format(state.dateValue);\n }\n\n let {spinButtonProps} = useSpinButton({\n value: segment.value,\n textValue,\n minValue: segment.minValue,\n maxValue: segment.maxValue,\n isDisabled: props.isDisabled,\n isReadOnly: props.isReadOnly || !segment.isEditable,\n isRequired: props.isRequired,\n onIncrement: () => {\n enteredKeys.current = '';\n state.increment(segment.type);\n },\n onDecrement: () => {\n enteredKeys.current = '';\n state.decrement(segment.type);\n },\n onIncrementPage: () => {\n enteredKeys.current = '';\n state.incrementPage(segment.type);\n },\n onDecrementPage: () => {\n enteredKeys.current = '';\n state.decrementPage(segment.type);\n },\n onIncrementToMax: () => {\n enteredKeys.current = '';\n state.setSegment(segment.type, segment.maxValue);\n },\n onDecrementToMin: () => {\n enteredKeys.current = '';\n state.setSegment(segment.type, segment.minValue);\n }\n });\n\n let parser = useMemo(() => new NumberParser(locale, {maximumFractionDigits: 0}), [locale]);\n\n let backspace = () => {\n if (parser.isValidPartialNumber(segment.text) && !props.isReadOnly && !segment.isPlaceholder) {\n let newValue = segment.text.slice(0, -1);\n let parsed = parser.parse(newValue);\n if (newValue.length === 0 || parsed === 0) {\n state.clearSegment(segment.type);\n } else {\n state.setSegment(segment.type, parsed);\n }\n enteredKeys.current = newValue;\n } else if (segment.type === 'dayPeriod') {\n state.clearSegment(segment.type);\n }\n };\n\n let onKeyDown = (e) => {\n // Firefox does not fire selectstart for Ctrl/Cmd + A\n // https://bugzilla.mozilla.org/show_bug.cgi?id=1742153\n if (e.key === 'a' && (isMac() ? e.metaKey : e.ctrlKey)) {\n e.preventDefault();\n }\n\n if (e.ctrlKey || e.metaKey || e.shiftKey || e.altKey) {\n return;\n }\n\n switch (e.key) {\n case 'ArrowLeft':\n e.preventDefault();\n e.stopPropagation();\n if (direction === 'rtl') {\n focusManager.focusNext();\n } else {\n focusManager.focusPrevious();\n }\n break;\n case 'ArrowRight':\n e.preventDefault();\n e.stopPropagation();\n if (direction === 'rtl') {\n focusManager.focusPrevious();\n } else {\n focusManager.focusNext();\n }\n break;\n case 'Enter':\n e.preventDefault();\n e.stopPropagation();\n if (segment.isPlaceholder && !props.isReadOnly) {\n state.confirmPlaceholder(segment.type);\n }\n focusManager.focusNext();\n break;\n case 'Tab':\n break;\n case 'Backspace':\n case 'Delete': {\n // Safari on iOS does not fire beforeinput for the backspace key because the cursor is at the start.\n e.preventDefault();\n e.stopPropagation();\n backspace();\n break;\n }\n }\n };\n\n // Safari dayPeriod option doesn't work...\n let {startsWith} = useFilter({sensitivity: 'base'});\n let amPmFormatter = useDateFormatter({hour: 'numeric', hour12: true});\n let am = useMemo(() => {\n let date = new Date();\n date.setHours(0);\n return amPmFormatter.formatToParts(date).find(part => part.type === 'dayPeriod').value;\n }, [amPmFormatter]);\n\n let pm = useMemo(() => {\n let date = new Date();\n date.setHours(12);\n return amPmFormatter.formatToParts(date).find(part => part.type === 'dayPeriod').value;\n }, [amPmFormatter]);\n\n let onInput = (key: string) => {\n if (props.isDisabled || props.isReadOnly) {\n return;\n }\n\n let newValue = enteredKeys.current + key;\n\n switch (segment.type) {\n case 'dayPeriod':\n if (startsWith(am, key)) {\n state.setSegment('dayPeriod', 0);\n } else if (startsWith(pm, key)) {\n state.setSegment('dayPeriod', 12);\n } else {\n break;\n }\n focusManager.focusNext();\n break;\n case 'day':\n case 'hour':\n case 'minute':\n case 'second':\n case 'month':\n case 'year': {\n if (!parser.isValidPartialNumber(newValue)) {\n return;\n }\n\n let numberValue = parser.parse(newValue);\n let segmentValue = numberValue;\n let allowsZero = segment.minValue === 0;\n if (segment.type === 'hour' && state.dateFormatter.resolvedOptions().hour12) {\n switch (state.dateFormatter.resolvedOptions().hourCycle) {\n case 'h11':\n if (numberValue > 11) {\n segmentValue = parser.parse(key);\n }\n break;\n case 'h12':\n allowsZero = false;\n if (numberValue > 12) {\n segmentValue = parser.parse(key);\n }\n break;\n }\n\n if (segment.value >= 12 && numberValue > 1) {\n numberValue += 12;\n }\n } else if (numberValue > segment.maxValue) {\n segmentValue = parser.parse(key);\n }\n\n if (isNaN(numberValue)) {\n return;\n }\n\n let shouldSetValue = segmentValue !== 0 || allowsZero;\n if (shouldSetValue) {\n state.setSegment(segment.type, segmentValue);\n }\n\n if (Number(numberValue + '0') > segment.maxValue || newValue.length >= String(segment.maxValue).length) {\n enteredKeys.current = '';\n if (shouldSetValue) {\n focusManager.focusNext();\n }\n } else {\n enteredKeys.current = newValue;\n }\n break;\n }\n }\n };\n\n let onFocus = () => {\n enteredKeys.current = '';\n if (ref.current?.scrollIntoView) {\n ref.current.scrollIntoView();\n }\n\n // Safari requires that a selection is set or it won't fire input events.\n // Since usePress disables text selection, this won't happen by default.\n ref.current.style.webkitUserSelect = 'text';\n let selection = window.getSelection();\n selection.collapse(ref.current);\n ref.current.style.webkitUserSelect = '';\n };\n\n let compositionRef = useRef('');\n // @ts-ignore - TODO: possibly old TS version? doesn't fail in my editor...\n useEvent(ref, 'beforeinput', e => {\n e.preventDefault();\n\n switch (e.inputType) {\n case 'deleteContentBackward':\n case 'deleteContentForward':\n if (parser.isValidPartialNumber(segment.text) && !props.isReadOnly) {\n backspace();\n }\n break;\n case 'insertCompositionText':\n // insertCompositionText cannot be canceled.\n // Record the current state of the element so we can restore it in the `input` event below.\n compositionRef.current = ref.current.textContent;\n\n // Safari gets stuck in a composition state unless we also assign to the value here.\n // eslint-disable-next-line no-self-assign\n ref.current.textContent = ref.current.textContent;\n break;\n default:\n if (e.data != null) {\n onInput(e.data);\n }\n break;\n }\n });\n\n useEvent(ref, 'input', (e: InputEvent) => {\n let {inputType, data} = e;\n switch (inputType) {\n case 'insertCompositionText':\n // Reset the DOM to how it was in the beforeinput event.\n ref.current.textContent = compositionRef.current;\n\n // Android sometimes fires key presses of letters as composition events. Need to handle am/pm keys here too.\n // Can also happen e.g. with Pinyin keyboard on iOS.\n if (startsWith(am, data) || startsWith(pm, data)) {\n onInput(data);\n }\n break;\n }\n });\n\n // Focus on mouse down/touch up to match native textfield behavior.\n // usePress handles canceling text selection.\n let {pressProps} = usePress({\n preventFocusOnPress: true,\n onPressStart: (e) => {\n if (e.pointerType === 'mouse') {\n e.target.focus();\n }\n },\n onPress(e) {\n if (e.pointerType !== 'mouse') {\n e.target.focus();\n }\n }\n });\n\n // For Android: prevent selection on long press.\n useEvent(ref, 'selectstart', e => {\n e.preventDefault();\n });\n\n // spinbuttons cannot be focused with VoiceOver on iOS.\n let touchPropOverrides = isIOS() || segment.type === 'timeZoneName' ? {\n role: 'textbox',\n 'aria-valuemax': null,\n 'aria-valuemin': null,\n 'aria-valuetext': null,\n 'aria-valuenow': null\n } : {};\n\n let fieldLabelId = labelIds.get(state);\n\n let id = useId(props.id);\n let isEditable = !props.isDisabled && !props.isReadOnly && segment.isEditable;\n return {\n segmentProps: mergeProps(spinButtonProps, pressProps, {\n id,\n ...touchPropOverrides,\n 'aria-controls': props['aria-controls'],\n // 'aria-haspopup': props['aria-haspopup'], // deprecated in ARIA 1.2\n 'aria-invalid': state.validationState === 'invalid' ? 'true' : undefined,\n 'aria-label': segment.type !== 'literal' ? displayNames.of(segment.type) : undefined,\n 'aria-labelledby': `${fieldLabelId} ${id}`,\n 'aria-placeholder': segment.isPlaceholder ? segment.text : undefined,\n 'aria-readonly': props.isReadOnly || !segment.isEditable ? 'true' : undefined,\n contentEditable: isEditable,\n suppressContentEditableWarning: isEditable,\n spellCheck: isEditable ? 'false' : undefined,\n autoCapitalize: isEditable ? 'off' : undefined,\n autoCorrect: isEditable ? 'off' : undefined,\n // Capitalization was changed in React 17...\n [parseInt(React.version, 10) >= 17 ? 'enterKeyHint' : 'enterkeyhint']: isEditable ? 'next' : undefined,\n inputMode: props.isDisabled || segment.type === 'dayPeriod' || !isEditable ? undefined : 'numeric',\n tabIndex: props.isDisabled ? undefined : 0,\n onKeyDown,\n onFocus\n })\n };\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {AriaButtonProps} from '@react-types/button';\nimport {AriaDatePickerProps, AriaDateRangePickerProps, DateValue} from '@react-types/datepicker';\nimport {AriaDialogProps} from '@react-types/dialog';\nimport {createFocusManager} from '@react-aria/focus';\nimport {DateRangePickerState} from '@react-stately/datepicker';\nimport {HTMLAttributes, LabelHTMLAttributes, RefObject} from 'react';\n// @ts-ignore\nimport intlMessages from '../intl/*.json';\nimport {mergeProps, useDescription, useId, useLabels} from '@react-aria/utils';\nimport {useDatePickerGroup} from './useDatePickerGroup';\nimport {useField} from '@react-aria/label';\nimport {useFocusWithin} from '@react-aria/interactions';\nimport {useLocale, useMessageFormatter} from '@react-aria/i18n';\n\ninterface DateRangePickerAria<T extends DateValue> {\n labelProps: LabelHTMLAttributes<HTMLLabelElement>,\n groupProps: HTMLAttributes<HTMLElement>,\n startFieldProps: AriaDatePickerProps<T>,\n endFieldProps: AriaDatePickerProps<T>,\n /** Props for the description element, if any. */\n descriptionProps: HTMLAttributes<HTMLElement>,\n /** Props for the error message element, if any. */\n errorMessageProps: HTMLAttributes<HTMLElement>,\n buttonProps: AriaButtonProps,\n dialogProps: AriaDialogProps\n}\n\nexport function useDateRangePicker<T extends DateValue>(props: AriaDateRangePickerProps<T>, state: DateRangePickerState, ref: RefObject<HTMLElement>): DateRangePickerAria<T> {\n let formatMessage = useMessageFormatter(intlMessages);\n let {labelProps, fieldProps, descriptionProps, errorMessageProps} = useField({\n ...props,\n labelElementType: 'span'\n });\n\n let labelledBy = fieldProps['aria-labelledby'] || fieldProps.id;\n\n let {locale} = useLocale();\n let description = state.formatValue(locale, {month: 'long'});\n let descProps = useDescription(description);\n\n let startFieldProps = useLabels({\n 'aria-label': formatMessage('startDate'),\n 'aria-labelledby': labelledBy\n });\n\n let endFieldProps = useLabels({\n 'aria-label': formatMessage('endDate'),\n 'aria-labelledby': labelledBy\n });\n\n let buttonId = useId();\n let dialogId = useId();\n\n let groupProps = useDatePickerGroup(state, ref);\n let {focusWithinProps} = useFocusWithin({\n onBlurWithin() {\n state.confirmPlaceholder();\n }\n });\n\n let ariaDescribedBy = [descProps['aria-describedby'], fieldProps['aria-describedby']].filter(Boolean).join(' ') || undefined;\n\n return {\n groupProps: mergeProps(groupProps, fieldProps, descProps, focusWithinProps, {\n role: 'group',\n 'aria-disabled': props.isDisabled || null,\n 'aria-describedby': ariaDescribedBy\n }),\n labelProps: {\n ...labelProps,\n onClick: () => {\n let focusManager = createFocusManager(ref);\n focusManager.focusFirst();\n }\n },\n buttonProps: {\n ...descProps,\n id: buttonId,\n excludeFromTabOrder: true,\n 'aria-haspopup': 'dialog',\n 'aria-label': formatMessage('calendar'),\n 'aria-labelledby': `${labelledBy} ${buttonId}`,\n 'aria-describedby': ariaDescribedBy\n },\n dialogProps: {\n id: dialogId,\n 'aria-labelledby': `${labelledBy} ${buttonId}`\n },\n startFieldProps: {\n ...startFieldProps,\n 'aria-describedby': fieldProps['aria-describedby']\n },\n endFieldProps: {\n ...endFieldProps,\n 'aria-describedby': fieldProps['aria-describedby']\n },\n descriptionProps,\n errorMessageProps\n };\n}\n"],"names":["JSON","parse","useDatePickerGroup","state","ref","onKeyDown","e","altKey","key","preventDefault","stopPropagation","setOpen","focusLast","elements","current","querySelectorAll","index","length","getAttribute","Math","min","element","focus","pressProps","usePress","onPressStart","pointerType","onPress","mergeProps","useDatePicker","props","buttonId","useId","dialogId","formatMessage","useMessageFormatter","intlMessages","labelProps","fieldProps","descriptionProps","errorMessageProps","useField","labelElementType","groupProps","labelledBy","id","locale","useLocale","descProps","useDescription","formatValue","month","ariaDescribedBy","filter","Boolean","join","undefined","role","isDisabled","onClick","focusManager","createFocusManager","focusFirst","buttonProps","excludeFromTabOrder","dialogProps","labelIds","WeakMap","useDateField","focusWithinProps","useFocusWithin","onBlurWithin","confirmPlaceholder","formatter","useDateFormatter","getFormatOptions","value","format","dateValue","set","useDisplayNames","useMemo","Intl","DisplayNames","type","err","DisplayNamesPolyfill","constructor","dictionary","MessageDictionary","of","field","getStringForLocale","useDateSegment","segment","enteredKeys","useRef","direction","displayNames","useFocusManager","textValue","text","options","dateFormatter","resolvedOptions","monthDateFormatter","timeZone","hourDateFormatter","hour","hour12","monthTextValue","spinButtonProps","useSpinButton","minValue","maxValue","isReadOnly","isEditable","isRequired","onIncrement","increment","onDecrement","decrement","onIncrementPage","incrementPage","onDecrementPage","decrementPage","onIncrementToMax","setSegment","onDecrementToMin","parser","NumberParser","maximumFractionDigits","backspace","isValidPartialNumber","isPlaceholder","newValue","slice","parsed","clearSegment","isMac","metaKey","ctrlKey","shiftKey","focusNext","focusPrevious","startsWith","useFilter","sensitivity","amPmFormatter","am","date","Date","setHours","formatToParts","find","part","pm","onInput","numberValue","segmentValue","allowsZero","hourCycle","isNaN","shouldSetValue","Number","String","onFocus","scrollIntoView","style","webkitUserSelect","selection","window","getSelection","collapse","compositionRef","useEvent","inputType","textContent","data","preventFocusOnPress","target","touchPropOverrides","isIOS","fieldLabelId","get","segmentProps","validationState","contentEditable","suppressContentEditableWarning","spellCheck","autoCapitalize","autoCorrect","parseInt","React","version","inputMode","tabIndex","useDateRangePicker","description","startFieldProps","useLabels","endFieldProps"],"version":3,"file":"module.js.map"}
|
|
1
|
+
{"mappings":"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","sources":["./packages/@react-aria/datepicker/intl/ar-AE.json","./packages/@react-aria/datepicker/intl/bg-BG.json","./packages/@react-aria/datepicker/intl/cs-CZ.json","./packages/@react-aria/datepicker/intl/da-DK.json","./packages/@react-aria/datepicker/intl/de-DE.json","./packages/@react-aria/datepicker/intl/el-GR.json","./packages/@react-aria/datepicker/intl/en-US.json","./packages/@react-aria/datepicker/intl/es-ES.json","./packages/@react-aria/datepicker/intl/et-EE.json","./packages/@react-aria/datepicker/intl/fi-FI.json","./packages/@react-aria/datepicker/intl/fr-FR.json","./packages/@react-aria/datepicker/intl/he-IL.json","./packages/@react-aria/datepicker/intl/hr-HR.json","./packages/@react-aria/datepicker/intl/hu-HU.json","./packages/@react-aria/datepicker/intl/it-IT.json","./packages/@react-aria/datepicker/intl/ja-JP.json","./packages/@react-aria/datepicker/intl/ko-KR.json","./packages/@react-aria/datepicker/intl/lt-LT.json","./packages/@react-aria/datepicker/intl/lv-LV.json","./packages/@react-aria/datepicker/intl/nb-NO.json","./packages/@react-aria/datepicker/intl/nl-NL.json","./packages/@react-aria/datepicker/intl/pl-PL.json","./packages/@react-aria/datepicker/intl/pt-BR.json","./packages/@react-aria/datepicker/intl/pt-PT.json","./packages/@react-aria/datepicker/intl/ro-RO.json","./packages/@react-aria/datepicker/intl/ru-RU.json","./packages/@react-aria/datepicker/intl/sk-SK.json","./packages/@react-aria/datepicker/intl/sl-SI.json","./packages/@react-aria/datepicker/intl/sr-SP.json","./packages/@react-aria/datepicker/intl/sv-SE.json","./packages/@react-aria/datepicker/intl/tr-TR.json","./packages/@react-aria/datepicker/intl/uk-UA.json","./packages/@react-aria/datepicker/intl/zh-CN.json","./packages/@react-aria/datepicker/intl/zh-TW.json","./packages/@react-aria/datepicker/src/useDatePickerGroup.ts","./packages/@react-aria/datepicker/src/useDatePicker.ts","./packages/@react-aria/datepicker/src/useDateField.ts","./packages/@react-aria/datepicker/src/useDisplayNames.ts","./packages/@react-aria/datepicker/src/useDateSegment.ts","./packages/@react-aria/datepicker/src/useDateRangePicker.ts"],"sourcesContent":["{\n \"calendar\": \"التقويم\",\n \"currentDate\": \"{date, date, full}\",\n \"currentDateRange\": \"{start, date, long} إلى {end, date, long}\",\n \"date\": \"التاريخ\",\n \"dateRange\": \"نطاق التاريخ\",\n \"day\": \"يوم\",\n \"dayPeriod\": \"ص/م\",\n \"endDate\": \"تاريخ الانتهاء\",\n \"era\": \"العصر\",\n \"hour\": \"الساعات\",\n \"minute\": \"الدقائق\",\n \"month\": \"الشهر\",\n \"second\": \"الثواني\",\n \"startDate\": \"تاريخ البدء\",\n \"year\": \"السنة\",\n \"weekday\": \"اليوم\",\n \"timeZoneName\": \"التوقيت\"\n}\n","{\n \"calendar\": \"Календар\",\n \"currentDate\": \"{date, date, full}\",\n \"currentDateRange\": \"{start, date, long} до {end, date, long}\",\n \"date\": \"Дата\",\n \"dateRange\": \"Времеви интервал\",\n \"day\": \"ден\",\n \"dayPeriod\": \"пр.об./сл.об.\",\n \"endDate\": \"Крайна дата\",\n \"era\": \"ера\",\n \"hour\": \"час\",\n \"minute\": \"минута\",\n \"month\": \"месец\",\n \"second\": \"секунда\",\n \"startDate\": \"Начална дата\",\n \"year\": \"година\",\n \"weekday\": \"ден от седмицата\",\n \"timeZoneName\": \"часова зона\"\n}\n","{\n \"calendar\": \"Kalendář\",\n \"currentDate\": \"{date, date, full}\",\n \"currentDateRange\": \"{start, date, long} až {end, date, long}\",\n \"date\": \"Datum\",\n \"dateRange\": \"Rozsah dat\",\n \"day\": \"den\",\n \"dayPeriod\": \"část dne\",\n \"endDate\": \"Konečné datum\",\n \"era\": \"letopočet\",\n \"hour\": \"hodina\",\n \"minute\": \"minuta\",\n \"month\": \"měsíc\",\n \"second\": \"sekunda\",\n \"startDate\": \"Počáteční datum\",\n \"year\": \"rok\",\n \"weekday\": \"den v týdnu\",\n \"timeZoneName\": \"časové pásmo\"\n}\n","{\n \"calendar\": \"Kalender\",\n \"currentDate\": \"{date, date, full}\",\n \"currentDateRange\": \"{start, date, long} til {end, date, long}\",\n \"date\": \"Dato\",\n \"dateRange\": \"Datointerval\",\n \"day\": \"dag\",\n \"dayPeriod\": \"AM/PM\",\n \"endDate\": \"Slutdato\",\n \"era\": \"æra\",\n \"hour\": \"time\",\n \"minute\": \"minut\",\n \"month\": \"måned\",\n \"second\": \"sekund\",\n \"startDate\": \"Startdato\",\n \"year\": \"år\",\n \"weekday\": \"ugedag\",\n \"timeZoneName\": \"tidszone\"\n}\n","{\n \"calendar\": \"Kalender\",\n \"currentDate\": \"{date, date, full}\",\n \"currentDateRange\": \"{start, date, long} bis {end, date, long}\",\n \"date\": \"Datum\",\n \"dateRange\": \"Datumsbereich\",\n \"day\": \"Tag\",\n \"dayPeriod\": \"Tageshälfte\",\n \"endDate\": \"Enddatum\",\n \"era\": \"Epoche\",\n \"hour\": \"Stunde\",\n \"minute\": \"Minute\",\n \"month\": \"Monat\",\n \"second\": \"Sekunde\",\n \"startDate\": \"Anfangsdatum\",\n \"year\": \"Jahr\",\n \"weekday\": \"Wochentag\",\n \"timeZoneName\": \"Zeitzone\"\n}\n","{\n \"calendar\": \"Ημερολόγιο\",\n \"currentDate\": \"{date, date, full}\",\n \"currentDateRange\": \"{start, date, long} ως {end, date, long}\",\n \"date\": \"Ημερομηνία\",\n \"dateRange\": \"Εύρος ημερομηνιών\",\n \"day\": \"ημέρα\",\n \"dayPeriod\": \"π.μ./μ.μ.\",\n \"endDate\": \"Ημερομηνία λήξης\",\n \"era\": \"περίοδος\",\n \"hour\": \"ώρα\",\n \"minute\": \"λεπτό\",\n \"month\": \"μήνας\",\n \"second\": \"δευτερόλεπτο\",\n \"startDate\": \"Ημερομηνία έναρξης\",\n \"year\": \"έτος\",\n \"weekday\": \"καθημερινή\",\n \"timeZoneName\": \"ζώνη ώρας\"\n}\n","{\n \"era\": \"era\",\n \"year\": \"year\",\n \"month\": \"month\",\n \"day\": \"day\",\n \"hour\": \"hour\",\n \"minute\": \"minute\",\n \"second\": \"second\",\n \"dayPeriod\": \"AM/PM\",\n \"calendar\": \"Calendar\",\n \"date\": \"Date\",\n \"dateRange\": \"Date Range\",\n \"startDate\": \"Start Date\",\n \"endDate\": \"End Date\",\n \"currentDate\": \"{date, date, full}\",\n \"currentDateRange\": \"{start, date, long} to {end, date, long}\",\n \"weekday\": \"day of the week\",\n \"timeZoneName\": \"time zone\"\n}\n","{\n \"calendar\": \"Calendario\",\n \"currentDate\": \"{date, date, full}\",\n \"currentDateRange\": \"{start, date, long} a {end, date, long}\",\n \"date\": \"Fecha\",\n \"dateRange\": \"Intervalo de fecha\",\n \"day\": \"día\",\n \"dayPeriod\": \"a. m./p. m.\",\n \"endDate\": \"Fecha final\",\n \"era\": \"era\",\n \"hour\": \"hora\",\n \"minute\": \"minuto\",\n \"month\": \"mes\",\n \"second\": \"segundo\",\n \"startDate\": \"Fecha de inicio\",\n \"year\": \"año\",\n \"weekday\": \"día de la semana\",\n \"timeZoneName\": \"zona horaria\"\n}\n","{\n \"calendar\": \"Kalender\",\n \"currentDate\": \"{date, date, full}\",\n \"currentDateRange\": \"{start, date, long} kuni {end, date, long}\",\n \"date\": \"Kuupäev\",\n \"dateRange\": \"Kuupäevavahemik\",\n \"day\": \"päev\",\n \"dayPeriod\": \"enne/pärast lõunat\",\n \"endDate\": \"Lõppkuupäev\",\n \"era\": \"ajastu\",\n \"hour\": \"tund\",\n \"minute\": \"minut\",\n \"month\": \"kuu\",\n \"second\": \"sekund\",\n \"startDate\": \"Alguskuupäev\",\n \"year\": \"aasta\",\n \"weekday\": \"nädalapäev\",\n \"timeZoneName\": \"ajavöönd\"\n}\n","{\n \"calendar\": \"Kalenteri\",\n \"currentDate\": \"{date, date, full}\",\n \"currentDateRange\": \"{start, date, long}–{end, date, long}\",\n \"date\": \"Päivämäärä\",\n \"dateRange\": \"Päivämääräalue\",\n \"day\": \"päivä\",\n \"dayPeriod\": \"vuorokaudenaika\",\n \"endDate\": \"Päättymispäivä\",\n \"era\": \"aikakausi\",\n \"hour\": \"tunti\",\n \"minute\": \"minuutti\",\n \"month\": \"kuukausi\",\n \"second\": \"sekunti\",\n \"startDate\": \"Alkamispäivä\",\n \"year\": \"vuosi\",\n \"weekday\": \"viikonpäivä\",\n \"timeZoneName\": \"aikavyöhyke\"\n}\n","{\n \"calendar\": \"Calendrier\",\n \"currentDate\": \"{date, date, full}\",\n \"currentDateRange\": \"{start, date, long} au {end, date, long}\",\n \"date\": \"Date\",\n \"dateRange\": \"Plage de dates\",\n \"day\": \"jour\",\n \"dayPeriod\": \"cadran\",\n \"endDate\": \"Date de fin\",\n \"era\": \"ère\",\n \"hour\": \"heure\",\n \"minute\": \"minute\",\n \"month\": \"mois\",\n \"second\": \"seconde\",\n \"startDate\": \"Date de début\",\n \"year\": \"année\",\n \"weekday\": \"jour de la semaine\",\n \"timeZoneName\": \"fuseau horaire\"\n}\n","{\n \"calendar\": \"לוח שנה\",\n \"currentDate\": \"{date, date, full}\",\n \"currentDateRange\": \"מ-{start, date, long} ועד {end, date, long}\",\n \"date\": \"תאריך\",\n \"dateRange\": \"טווח תאריכים\",\n \"day\": \"יום\",\n \"dayPeriod\": \"לפנה״צ/אחה״צ\",\n \"endDate\": \"תאריך סיום\",\n \"era\": \"תקופה\",\n \"hour\": \"שעה\",\n \"minute\": \"דקה\",\n \"month\": \"חודש\",\n \"second\": \"שנייה\",\n \"startDate\": \"תאריך התחלה\",\n \"year\": \"שנה\",\n \"weekday\": \"יום בשבוע\",\n \"timeZoneName\": \"אזור זמן\"\n}\n","{\n \"calendar\": \"Kalendar\",\n \"currentDate\": \"{date, date, full}\",\n \"currentDateRange\": \"{start, date, long} do {end, date, long}\",\n \"date\": \"Datum\",\n \"dateRange\": \"Raspon datuma\",\n \"day\": \"dan\",\n \"dayPeriod\": \"AM/PM\",\n \"endDate\": \"Datum završetka\",\n \"era\": \"era\",\n \"hour\": \"sat\",\n \"minute\": \"minuta\",\n \"month\": \"mjesec\",\n \"second\": \"sekunda\",\n \"startDate\": \"Datum početka\",\n \"year\": \"godina\",\n \"weekday\": \"dan u tjednu\",\n \"timeZoneName\": \"vremenska zona\"\n}\n","{\n \"calendar\": \"Naptár\",\n \"currentDate\": \"{date, date, full}\",\n \"currentDateRange\": \"{start, date, long} – {end, date, long}\",\n \"date\": \"Dátum\",\n \"dateRange\": \"Dátumtartomány\",\n \"day\": \"nap\",\n \"dayPeriod\": \"napszak\",\n \"endDate\": \"Befejező dátum\",\n \"era\": \"éra\",\n \"hour\": \"óra\",\n \"minute\": \"perc\",\n \"month\": \"hónap\",\n \"second\": \"másodperc\",\n \"startDate\": \"Kezdő dátum\",\n \"year\": \"év\",\n \"weekday\": \"hét napja\",\n \"timeZoneName\": \"időzóna\"\n}\n","{\n \"calendar\": \"Calendario\",\n \"currentDate\": \"{date, date, full}\",\n \"currentDateRange\": \"Da {start, date, long} a {end, date, long}\",\n \"date\": \"Data\",\n \"dateRange\": \"Intervallo date\",\n \"day\": \"giorno\",\n \"dayPeriod\": \"AM/PM\",\n \"endDate\": \"Data finale\",\n \"era\": \"era\",\n \"hour\": \"ora\",\n \"minute\": \"minuto\",\n \"month\": \"mese\",\n \"second\": \"secondo\",\n \"startDate\": \"Data iniziale\",\n \"year\": \"anno\",\n \"weekday\": \"giorno della settimana\",\n \"timeZoneName\": \"fuso orario\"\n}\n","{\n \"calendar\": \"カレンダー\",\n \"currentDate\": \"{date, date, full}\",\n \"currentDateRange\": \"{start, date, long} ~ {end, date, long}\",\n \"date\": \"日付\",\n \"dateRange\": \"日付範囲\",\n \"day\": \"日\",\n \"dayPeriod\": \"午前/午後\",\n \"endDate\": \"終了日\",\n \"era\": \"時代\",\n \"hour\": \"時\",\n \"minute\": \"分\",\n \"month\": \"月\",\n \"second\": \"秒\",\n \"startDate\": \"開始日\",\n \"year\": \"年\",\n \"weekday\": \"曜日\",\n \"timeZoneName\": \"タイムゾーン\"\n}\n","{\n \"calendar\": \"달력\",\n \"currentDate\": \"{date, date, full}\",\n \"currentDateRange\": \"{start, date, long} ~ {end, date, long}\",\n \"date\": \"날짜\",\n \"dateRange\": \"날짜 범위\",\n \"day\": \"일\",\n \"dayPeriod\": \"오전/오후\",\n \"endDate\": \"종료 날짜\",\n \"era\": \"연호\",\n \"hour\": \"시\",\n \"minute\": \"분\",\n \"month\": \"월\",\n \"second\": \"초\",\n \"startDate\": \"시작 날짜\",\n \"year\": \"년\",\n \"weekday\": \"요일\",\n \"timeZoneName\": \"시간대\"\n}\n","{\n \"calendar\": \"Kalendorius\",\n \"currentDate\": \"{date, date, full}\",\n \"currentDateRange\": \"Nuo {start, date, long} iki {end, date, long}\",\n \"date\": \"Data\",\n \"dateRange\": \"Datų intervalas\",\n \"day\": \"diena\",\n \"dayPeriod\": \"iki pietų / po pietų\",\n \"endDate\": \"Pabaigos data\",\n \"era\": \"era\",\n \"hour\": \"valanda\",\n \"minute\": \"minutė\",\n \"month\": \"mėnuo\",\n \"second\": \"sekundė\",\n \"startDate\": \"Pradžios data\",\n \"year\": \"metai\",\n \"weekday\": \"savaitės diena\",\n \"timeZoneName\": \"laiko juosta\"\n}\n","{\n \"calendar\": \"Kalendārs\",\n \"currentDate\": \"{date, date, full}\",\n \"currentDateRange\": \"{start, date, long} līdz {end, date, long}\",\n \"date\": \"Datums\",\n \"dateRange\": \"Datumu diapazons\",\n \"day\": \"diena\",\n \"dayPeriod\": \"priekšpusdienā/pēcpusdienā\",\n \"endDate\": \"Beigu datums\",\n \"era\": \"ēra\",\n \"hour\": \"stundas\",\n \"minute\": \"minūtes\",\n \"month\": \"mēnesis\",\n \"second\": \"sekundes\",\n \"startDate\": \"Sākuma datums\",\n \"year\": \"gads\",\n \"weekday\": \"nedēļas diena\",\n \"timeZoneName\": \"laika josla\"\n}\n","{\n \"calendar\": \"Kalender\",\n \"currentDate\": \"{date, date, full}\",\n \"currentDateRange\": \"{start, date, long} til {end, date, long}\",\n \"date\": \"Dato\",\n \"dateRange\": \"Datoområde\",\n \"day\": \"dag\",\n \"dayPeriod\": \"a.m./p.m.\",\n \"endDate\": \"Sluttdato\",\n \"era\": \"tidsalder\",\n \"hour\": \"time\",\n \"minute\": \"minutt\",\n \"month\": \"måned\",\n \"second\": \"sekund\",\n \"startDate\": \"Startdato\",\n \"year\": \"år\",\n \"weekday\": \"ukedag\",\n \"timeZoneName\": \"tidssone\"\n}\n","{\n \"calendar\": \"Kalender\",\n \"currentDate\": \"{date, date, full}\",\n \"currentDateRange\": \"{start, date, long} t/m {end, date, long}\",\n \"date\": \"Datum\",\n \"dateRange\": \"Datumbereik\",\n \"day\": \"dag\",\n \"dayPeriod\": \"a.m./p.m.\",\n \"endDate\": \"Einddatum\",\n \"era\": \"tijdperk\",\n \"hour\": \"uur\",\n \"minute\": \"minuut\",\n \"month\": \"maand\",\n \"second\": \"seconde\",\n \"startDate\": \"Startdatum\",\n \"year\": \"jaar\",\n \"weekday\": \"dag van de week\",\n \"timeZoneName\": \"tijdzone\"\n}\n","{\n \"calendar\": \"Kalendarz\",\n \"currentDate\": \"{date, date, full}\",\n \"currentDateRange\": \"{start, date, long} do {end, date, long}\",\n \"date\": \"Data\",\n \"dateRange\": \"Zakres dat\",\n \"day\": \"dzień\",\n \"dayPeriod\": \"rano / po południu / wieczorem\",\n \"endDate\": \"Data końcowa\",\n \"era\": \"era\",\n \"hour\": \"godzina\",\n \"minute\": \"minuta\",\n \"month\": \"miesiąc\",\n \"second\": \"sekunda\",\n \"startDate\": \"Data początkowa\",\n \"year\": \"rok\",\n \"weekday\": \"dzień tygodnia\",\n \"timeZoneName\": \"strefa czasowa\"\n}\n","{\n \"calendar\": \"Calendário\",\n \"currentDate\": \"{date, date, full}\",\n \"currentDateRange\": \"{start, date, long} a {end, date, long}\",\n \"date\": \"Data\",\n \"dateRange\": \"Intervalo de datas\",\n \"day\": \"dia\",\n \"dayPeriod\": \"AM/PM\",\n \"endDate\": \"Data final\",\n \"era\": \"era\",\n \"hour\": \"hora\",\n \"minute\": \"minuto\",\n \"month\": \"mês\",\n \"second\": \"segundo\",\n \"startDate\": \"Data inicial\",\n \"year\": \"ano\",\n \"weekday\": \"dia da semana\",\n \"timeZoneName\": \"fuso horário\"\n}\n","{\n \"calendar\": \"Calendário\",\n \"currentDate\": \"{date, date, full}\",\n \"currentDateRange\": \"{start, date, long} a {end, date, long}\",\n \"date\": \"Data\",\n \"dateRange\": \"Intervalo de datas\",\n \"day\": \"dia\",\n \"dayPeriod\": \"am/pm\",\n \"endDate\": \"Data de Término\",\n \"era\": \"era\",\n \"hour\": \"hora\",\n \"minute\": \"minuto\",\n \"month\": \"mês\",\n \"second\": \"segundo\",\n \"startDate\": \"Data de Início\",\n \"year\": \"ano\",\n \"weekday\": \"dia da semana\",\n \"timeZoneName\": \"fuso horário\"\n}\n","{\n \"calendar\": \"Calendar\",\n \"currentDate\": \"{date, date, full}\",\n \"currentDateRange\": \"{start, date, long} - {end, date, long}\",\n \"date\": \"Dată\",\n \"dateRange\": \"Raza datei\",\n \"day\": \"zi\",\n \"dayPeriod\": \"a.m/p.m.\",\n \"endDate\": \"Dată final\",\n \"era\": \"eră\",\n \"hour\": \"oră\",\n \"minute\": \"minut\",\n \"month\": \"lună\",\n \"second\": \"secundă\",\n \"startDate\": \"Dată început\",\n \"year\": \"an\",\n \"weekday\": \"ziua din săptămână\",\n \"timeZoneName\": \"fus orar\"\n}\n","{\n \"calendar\": \"Календарь\",\n \"currentDate\": \"{date, date, full}\",\n \"currentDateRange\": \"{start, date, long} – {end, date, long}\",\n \"date\": \"Дата\",\n \"dateRange\": \"Диапазон дат\",\n \"day\": \"день\",\n \"dayPeriod\": \"AM/PM\",\n \"endDate\": \"Дата окончания\",\n \"era\": \"эра\",\n \"hour\": \"час\",\n \"minute\": \"минута\",\n \"month\": \"месяц\",\n \"second\": \"секунда\",\n \"startDate\": \"Дата начала\",\n \"year\": \"год\",\n \"weekday\": \"день недели\",\n \"timeZoneName\": \"часовой пояс\"\n}\n","{\n \"calendar\": \"Kalendár\",\n \"currentDate\": \"{date, date, full}\",\n \"currentDateRange\": \"{start, date, long} do {end, date, long}\",\n \"date\": \"Dátum\",\n \"dateRange\": \"Rozsah dátumov\",\n \"day\": \"deň\",\n \"dayPeriod\": \"AM/PM\",\n \"endDate\": \"Dátum ukončenia\",\n \"era\": \"letopočet\",\n \"hour\": \"hodina\",\n \"minute\": \"minúta\",\n \"month\": \"mesiac\",\n \"second\": \"sekunda\",\n \"startDate\": \"Dátum začatia\",\n \"year\": \"rok\",\n \"weekday\": \"deň týždňa\",\n \"timeZoneName\": \"časové pásmo\"\n}\n","{\n \"calendar\": \"Koledar\",\n \"currentDate\": \"{date, date, full}\",\n \"currentDateRange\": \"{start, date, long} do {end, date, long}\",\n \"date\": \"Datum\",\n \"dateRange\": \"Datumski obseg\",\n \"day\": \"dan\",\n \"dayPeriod\": \"dop/pop\",\n \"endDate\": \"Datum konca\",\n \"era\": \"doba\",\n \"hour\": \"ura\",\n \"minute\": \"minuta\",\n \"month\": \"mesec\",\n \"second\": \"sekunda\",\n \"startDate\": \"Datum začetka\",\n \"year\": \"leto\",\n \"weekday\": \"dan v tednu\",\n \"timeZoneName\": \"časovni pas\"\n}\n","{\n \"calendar\": \"Kalendar\",\n \"currentDate\": \"{date, date, full}\",\n \"currentDateRange\": \"{start, date, long} do {end, date, long}\",\n \"date\": \"Datum\",\n \"dateRange\": \"Opseg datuma\",\n \"day\": \"дан\",\n \"dayPeriod\": \"пре подне/по подне\",\n \"endDate\": \"Datum završetka\",\n \"era\": \"ера\",\n \"hour\": \"сат\",\n \"minute\": \"минут\",\n \"month\": \"месец\",\n \"second\": \"секунд\",\n \"startDate\": \"Datum početka\",\n \"year\": \"година\",\n \"weekday\": \"дан у недељи\",\n \"timeZoneName\": \"временска зона\"\n}\n","{\n \"calendar\": \"Kalender\",\n \"currentDate\": \"{date, date, full}\",\n \"currentDateRange\": \"{start, date, long} till {end, date, long}\",\n \"date\": \"Datum\",\n \"dateRange\": \"Datumintervall\",\n \"day\": \"dag\",\n \"dayPeriod\": \"fm/em\",\n \"endDate\": \"Slutdatum\",\n \"era\": \"era\",\n \"hour\": \"timme\",\n \"minute\": \"minut\",\n \"month\": \"månad\",\n \"second\": \"sekund\",\n \"startDate\": \"Startdatum\",\n \"year\": \"år\",\n \"weekday\": \"veckodag\",\n \"timeZoneName\": \"tidszon\"\n}\n","{\n \"calendar\": \"Takvim\",\n \"currentDate\": \"{date, date, full}\",\n \"currentDateRange\": \"{start, date, long} - {end, date, long}\",\n \"date\": \"Tarih\",\n \"dateRange\": \"Tarih Aralığı\",\n \"day\": \"gün\",\n \"dayPeriod\": \"ÖÖ/ÖS\",\n \"endDate\": \"Bitiş Tarihi\",\n \"era\": \"çağ\",\n \"hour\": \"saat\",\n \"minute\": \"dakika\",\n \"month\": \"ay\",\n \"second\": \"saniye\",\n \"startDate\": \"Başlangıç Tarihi\",\n \"year\": \"yıl\",\n \"weekday\": \"haftanın günü\",\n \"timeZoneName\": \"saat dilimi\"\n}\n","{\n \"calendar\": \"Календар\",\n \"currentDate\": \"{date, date, full}\",\n \"currentDateRange\": \"Від {start, date, long} до {end, date, long}\",\n \"date\": \"Дата\",\n \"dateRange\": \"Діапазон дат\",\n \"day\": \"день\",\n \"dayPeriod\": \"дп/пп\",\n \"endDate\": \"Дата завершення\",\n \"era\": \"ера\",\n \"hour\": \"година\",\n \"minute\": \"хвилина\",\n \"month\": \"місяць\",\n \"second\": \"секунда\",\n \"startDate\": \"Дата початку\",\n \"year\": \"рік\",\n \"weekday\": \"день тижня\",\n \"timeZoneName\": \"часовий пояс\"\n}\n","{\n \"calendar\": \"日历\",\n \"currentDate\": \"{date, date, full}\",\n \"currentDateRange\": \"{start, date, long} 至 {end, date, long}\",\n \"date\": \"日期\",\n \"dateRange\": \"日期范围\",\n \"day\": \"日\",\n \"dayPeriod\": \"上午/下午\",\n \"endDate\": \"结束日期\",\n \"era\": \"纪元\",\n \"hour\": \"小时\",\n \"minute\": \"分钟\",\n \"month\": \"月\",\n \"second\": \"秒\",\n \"startDate\": \"开始日期\",\n \"year\": \"年\",\n \"weekday\": \"工作日\",\n \"timeZoneName\": \"时区\"\n}\n","{\n \"calendar\": \"日曆\",\n \"currentDate\": \"{date, date, full}\",\n \"currentDateRange\": \"{start, date, long}至 {end, date, long}\",\n \"date\": \"日期\",\n \"dateRange\": \"日期範圍\",\n \"day\": \"日\",\n \"dayPeriod\": \"上午/下午\",\n \"endDate\": \"結束日期\",\n \"era\": \"纪元\",\n \"hour\": \"小时\",\n \"minute\": \"分钟\",\n \"month\": \"月\",\n \"second\": \"秒\",\n \"startDate\": \"開始日期\",\n \"year\": \"年\",\n \"weekday\": \"工作日\",\n \"timeZoneName\": \"时区\"\n}\n","import {DatePickerFieldState, DatePickerState, DateRangePickerState} from '@react-stately/datepicker';\nimport {KeyboardEvent} from '@react-types/shared';\nimport {mergeProps} from '@react-aria/utils';\nimport {RefObject} from 'react';\nimport {usePress} from '@react-aria/interactions';\n\nexport function useDatePickerGroup(state: DatePickerState | DateRangePickerState | DatePickerFieldState, ref: RefObject<HTMLElement>) {\n // Open the popover on alt + arrow down\n let onKeyDown = (e: KeyboardEvent) => {\n if (e.altKey && e.key === 'ArrowDown' && 'setOpen' in state) {\n e.preventDefault();\n e.stopPropagation();\n state.setOpen(true);\n }\n };\n\n // Focus the first placeholder segment from the end on mouse down/touch up in the field.\n let focusLast = () => {\n let elements = ref.current.querySelectorAll('[tabindex=\"0\"]');\n let index = elements.length - 1;\n while (index >= 0 && elements[index].getAttribute('aria-placeholder')) {\n index--;\n }\n index = Math.min(index + 1, elements.length - 1);\n let element = elements[index] as HTMLElement;\n if (element) {\n element.focus();\n }\n };\n\n let {pressProps} = usePress({\n onPressStart(e) {\n if (e.pointerType === 'mouse') {\n focusLast();\n }\n },\n onPress(e) {\n if (e.pointerType !== 'mouse') {\n focusLast();\n }\n }\n });\n\n return mergeProps(pressProps, {onKeyDown});\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {AriaButtonProps} from '@react-types/button';\nimport {AriaDatePickerProps, DateValue} from '@react-types/datepicker';\nimport {AriaDialogProps} from '@react-types/dialog';\nimport {createFocusManager} from '@react-aria/focus';\nimport {DatePickerState} from '@react-stately/datepicker';\nimport {HTMLAttributes, LabelHTMLAttributes, RefObject} from 'react';\n// @ts-ignore\nimport intlMessages from '../intl/*.json';\nimport {mergeProps, useDescription, useId} from '@react-aria/utils';\nimport {useDatePickerGroup} from './useDatePickerGroup';\nimport {useField} from '@react-aria/label';\nimport {useLocale, useMessageFormatter} from '@react-aria/i18n';\n\ninterface DatePickerAria<T extends DateValue> {\n groupProps: HTMLAttributes<HTMLElement>,\n labelProps: LabelHTMLAttributes<HTMLLabelElement>,\n fieldProps: AriaDatePickerProps<T>,\n /** Props for the description element, if any. */\n descriptionProps: HTMLAttributes<HTMLElement>,\n /** Props for the error message element, if any. */\n errorMessageProps: HTMLAttributes<HTMLElement>,\n buttonProps: AriaButtonProps,\n dialogProps: AriaDialogProps\n}\n\nexport function useDatePicker<T extends DateValue>(props: AriaDatePickerProps<T>, state: DatePickerState, ref: RefObject<HTMLElement>): DatePickerAria<T> {\n let buttonId = useId();\n let dialogId = useId();\n let formatMessage = useMessageFormatter(intlMessages);\n\n let {labelProps, fieldProps, descriptionProps, errorMessageProps} = useField({\n ...props,\n labelElementType: 'span'\n });\n\n let groupProps = useDatePickerGroup(state, ref);\n\n let labelledBy = fieldProps['aria-labelledby'] || fieldProps.id;\n\n let {locale} = useLocale();\n let descProps = useDescription(state.formatValue(locale, {month: 'long'}));\n let ariaDescribedBy = [descProps['aria-describedby'], fieldProps['aria-describedby']].filter(Boolean).join(' ') || undefined;\n\n return {\n groupProps: mergeProps(groupProps, descProps, {\n role: 'group',\n 'aria-disabled': props.isDisabled || null,\n 'aria-labelledby': labelledBy,\n 'aria-describedby': ariaDescribedBy\n }),\n labelProps: {\n ...labelProps,\n onClick: () => {\n let focusManager = createFocusManager(ref);\n focusManager.focusFirst();\n }\n },\n fieldProps,\n descriptionProps,\n errorMessageProps,\n buttonProps: {\n ...descProps,\n id: buttonId,\n excludeFromTabOrder: true,\n 'aria-haspopup': 'dialog',\n 'aria-label': formatMessage('calendar'),\n 'aria-labelledby': `${labelledBy} ${buttonId}`,\n 'aria-describedby': ariaDescribedBy\n },\n dialogProps: {\n id: dialogId,\n 'aria-labelledby': `${labelledBy} ${buttonId}`\n }\n };\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {AriaDatePickerProps, DateValue} from '@react-types/datepicker';\nimport {createFocusManager} from '@react-aria/focus';\nimport {DatePickerFieldState} from '@react-stately/datepicker';\nimport {HTMLAttributes, LabelHTMLAttributes, RefObject} from 'react';\nimport {mergeProps, useDescription} from '@react-aria/utils';\nimport {useDateFormatter} from '@react-aria/i18n';\nimport {useDatePickerGroup} from './useDatePickerGroup';\nimport {useField} from '@react-aria/label';\nimport {useFocusWithin} from '@react-aria/interactions';\n\n// Allows this hook to also be used with TimeField\ninterface DateFieldProps<T extends DateValue> extends Omit<AriaDatePickerProps<T>, 'value' | 'defaultValue' | 'onChange' | 'minValue' | 'maxValue' | 'placeholderValue'> {}\n\ninterface DateFieldAria {\n labelProps: LabelHTMLAttributes<HTMLLabelElement>,\n fieldProps: HTMLAttributes<HTMLElement>,\n /** Props for the description element, if any. */\n descriptionProps: HTMLAttributes<HTMLElement>,\n /** Props for the error message element, if any. */\n errorMessageProps: HTMLAttributes<HTMLElement>\n}\n\nexport const labelIds = new WeakMap<DatePickerFieldState, {ariaLabelledBy: string, ariaDescribedBy: string}>();\n\nexport function useDateField<T extends DateValue>(props: DateFieldProps<T>, state: DatePickerFieldState, ref: RefObject<HTMLElement>): DateFieldAria {\n let {labelProps, fieldProps, descriptionProps, errorMessageProps} = useField({\n ...props,\n labelElementType: 'span'\n });\n\n let groupProps = useDatePickerGroup(state, ref);\n\n let {focusWithinProps} = useFocusWithin({\n onBlurWithin() {\n state.confirmPlaceholder();\n }\n });\n\n let formatter = useDateFormatter(state.getFormatOptions({month: 'long'}));\n let descProps = useDescription(state.value ? formatter.format(state.dateValue) : null);\n\n let segmentLabelledBy = fieldProps['aria-labelledby'] || fieldProps.id;\n let describedBy = [descProps['aria-describedby'], fieldProps['aria-describedby']].filter(Boolean).join(' ') || undefined;\n\n labelIds.set(state, {\n ariaLabelledBy: segmentLabelledBy,\n ariaDescribedBy: describedBy\n });\n\n return {\n labelProps: {\n ...labelProps,\n onClick: () => {\n let focusManager = createFocusManager(ref);\n focusManager.focusFirst();\n }\n },\n fieldProps: mergeProps(fieldProps, descProps, groupProps, focusWithinProps, {\n role: 'group',\n 'aria-disabled': props.isDisabled || undefined,\n 'aria-describedby': describedBy\n }),\n descriptionProps,\n errorMessageProps\n };\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\n// @ts-ignore\nimport intlMessages from '../intl/*.json';\nimport {MessageDictionary} from '@internationalized/message';\nimport {useLocale} from '@react-aria/i18n';\nimport {useMemo} from 'react';\n\ntype Field = 'era' | 'year' | 'month' | 'day' | 'hour' | 'minute' | 'second' | 'dayPeriod' | 'timeZoneName' | 'weekday';\ninterface DisplayNames {\n of(field: Field): string\n}\n\nexport function useDisplayNames(): DisplayNames {\n let {locale} = useLocale();\n return useMemo(() => {\n // Try to use Intl.DisplayNames if possible. It may be supported in browsers, but not support the dateTimeField\n // type as that was only added in v2. https://github.com/tc39/intl-displaynames-v2\n try {\n // @ts-ignore\n return new Intl.DisplayNames(locale, {type: 'dateTimeField'});\n } catch (err) {\n return new DisplayNamesPolyfill(locale);\n }\n }, [locale]);\n}\n\nclass DisplayNamesPolyfill implements DisplayNames {\n private locale: string;\n private dictionary: MessageDictionary;\n\n constructor(locale: string) {\n this.locale = locale;\n this.dictionary = new MessageDictionary(intlMessages);\n }\n\n of(field: Field): string {\n return this.dictionary.getStringForLocale(field, this.locale);\n }\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {DatePickerFieldState, DateSegment} from '@react-stately/datepicker';\nimport {DatePickerProps, DateValue} from '@react-types/datepicker';\nimport {DOMProps} from '@react-types/shared';\nimport {getScrollParent, isIOS, isMac, mergeProps, scrollIntoView, useEvent, useId} from '@react-aria/utils';\nimport {labelIds} from './useDateField';\nimport {NumberParser} from '@internationalized/number';\nimport React, {HTMLAttributes, RefObject, useMemo, useRef} from 'react';\nimport {useDateFormatter, useFilter, useLocale} from '@react-aria/i18n';\nimport {useDisplayNames} from './useDisplayNames';\nimport {useFocusManager} from '@react-aria/focus';\nimport {usePress} from '@react-aria/interactions';\nimport {useSpinButton} from '@react-aria/spinbutton';\n\ninterface DateSegmentAria {\n segmentProps: HTMLAttributes<HTMLDivElement>\n}\n\nexport function useDateSegment<T extends DateValue>(props: DatePickerProps<T> & DOMProps, segment: DateSegment, state: DatePickerFieldState, ref: RefObject<HTMLElement>): DateSegmentAria {\n let enteredKeys = useRef('');\n let {locale, direction} = useLocale();\n let displayNames = useDisplayNames();\n let focusManager = useFocusManager();\n\n let textValue = segment.text;\n let options = useMemo(() => state.dateFormatter.resolvedOptions(), [state.dateFormatter]);\n let monthDateFormatter = useDateFormatter({month: 'long', timeZone: options.timeZone});\n let hourDateFormatter = useDateFormatter({\n hour: 'numeric',\n hour12: options.hour12,\n timeZone: options.timeZone\n });\n\n if (segment.type === 'month') {\n let monthTextValue = monthDateFormatter.format(state.dateValue);\n textValue = monthTextValue !== textValue ? `${textValue} – ${monthTextValue}` : monthTextValue;\n } else if (segment.type === 'hour' || segment.type === 'dayPeriod') {\n textValue = hourDateFormatter.format(state.dateValue);\n }\n\n let {spinButtonProps} = useSpinButton({\n value: segment.value,\n textValue,\n minValue: segment.minValue,\n maxValue: segment.maxValue,\n isDisabled: props.isDisabled,\n isReadOnly: props.isReadOnly || !segment.isEditable,\n isRequired: props.isRequired,\n onIncrement: () => {\n enteredKeys.current = '';\n state.increment(segment.type);\n },\n onDecrement: () => {\n enteredKeys.current = '';\n state.decrement(segment.type);\n },\n onIncrementPage: () => {\n enteredKeys.current = '';\n state.incrementPage(segment.type);\n },\n onDecrementPage: () => {\n enteredKeys.current = '';\n state.decrementPage(segment.type);\n },\n onIncrementToMax: () => {\n enteredKeys.current = '';\n state.setSegment(segment.type, segment.maxValue);\n },\n onDecrementToMin: () => {\n enteredKeys.current = '';\n state.setSegment(segment.type, segment.minValue);\n }\n });\n\n let parser = useMemo(() => new NumberParser(locale, {maximumFractionDigits: 0}), [locale]);\n\n let backspace = () => {\n if (parser.isValidPartialNumber(segment.text) && !props.isReadOnly && !segment.isPlaceholder) {\n let newValue = segment.text.slice(0, -1);\n let parsed = parser.parse(newValue);\n if (newValue.length === 0 || parsed === 0) {\n state.clearSegment(segment.type);\n } else {\n state.setSegment(segment.type, parsed);\n }\n enteredKeys.current = newValue;\n } else if (segment.type === 'dayPeriod') {\n state.clearSegment(segment.type);\n }\n };\n\n let onKeyDown = (e) => {\n // Firefox does not fire selectstart for Ctrl/Cmd + A\n // https://bugzilla.mozilla.org/show_bug.cgi?id=1742153\n if (e.key === 'a' && (isMac() ? e.metaKey : e.ctrlKey)) {\n e.preventDefault();\n }\n\n if (e.ctrlKey || e.metaKey || e.shiftKey || e.altKey) {\n return;\n }\n\n switch (e.key) {\n case 'ArrowLeft':\n e.preventDefault();\n e.stopPropagation();\n if (direction === 'rtl') {\n focusManager.focusNext();\n } else {\n focusManager.focusPrevious();\n }\n break;\n case 'ArrowRight':\n e.preventDefault();\n e.stopPropagation();\n if (direction === 'rtl') {\n focusManager.focusPrevious();\n } else {\n focusManager.focusNext();\n }\n break;\n case 'Enter':\n e.preventDefault();\n e.stopPropagation();\n if (segment.isPlaceholder && !props.isReadOnly) {\n state.confirmPlaceholder(segment.type);\n }\n focusManager.focusNext();\n break;\n case 'Tab':\n break;\n case 'Backspace':\n case 'Delete': {\n // Safari on iOS does not fire beforeinput for the backspace key because the cursor is at the start.\n e.preventDefault();\n e.stopPropagation();\n backspace();\n break;\n }\n }\n };\n\n // Safari dayPeriod option doesn't work...\n let {startsWith} = useFilter({sensitivity: 'base'});\n let amPmFormatter = useDateFormatter({hour: 'numeric', hour12: true});\n let am = useMemo(() => {\n let date = new Date();\n date.setHours(0);\n return amPmFormatter.formatToParts(date).find(part => part.type === 'dayPeriod').value;\n }, [amPmFormatter]);\n\n let pm = useMemo(() => {\n let date = new Date();\n date.setHours(12);\n return amPmFormatter.formatToParts(date).find(part => part.type === 'dayPeriod').value;\n }, [amPmFormatter]);\n\n let onInput = (key: string) => {\n if (props.isDisabled || props.isReadOnly) {\n return;\n }\n\n let newValue = enteredKeys.current + key;\n\n switch (segment.type) {\n case 'dayPeriod':\n if (startsWith(am, key)) {\n state.setSegment('dayPeriod', 0);\n } else if (startsWith(pm, key)) {\n state.setSegment('dayPeriod', 12);\n } else {\n break;\n }\n focusManager.focusNext();\n break;\n case 'day':\n case 'hour':\n case 'minute':\n case 'second':\n case 'month':\n case 'year': {\n if (!parser.isValidPartialNumber(newValue)) {\n return;\n }\n\n let numberValue = parser.parse(newValue);\n let segmentValue = numberValue;\n let allowsZero = segment.minValue === 0;\n if (segment.type === 'hour' && state.dateFormatter.resolvedOptions().hour12) {\n switch (state.dateFormatter.resolvedOptions().hourCycle) {\n case 'h11':\n if (numberValue > 11) {\n segmentValue = parser.parse(key);\n }\n break;\n case 'h12':\n allowsZero = false;\n if (numberValue > 12) {\n segmentValue = parser.parse(key);\n }\n break;\n }\n\n if (segment.value >= 12 && numberValue > 1) {\n numberValue += 12;\n }\n } else if (numberValue > segment.maxValue) {\n segmentValue = parser.parse(key);\n }\n\n if (isNaN(numberValue)) {\n return;\n }\n\n let shouldSetValue = segmentValue !== 0 || allowsZero;\n if (shouldSetValue) {\n state.setSegment(segment.type, segmentValue);\n }\n\n if (Number(numberValue + '0') > segment.maxValue || newValue.length >= String(segment.maxValue).length) {\n enteredKeys.current = '';\n if (shouldSetValue) {\n focusManager.focusNext();\n }\n } else {\n enteredKeys.current = newValue;\n }\n break;\n }\n }\n };\n\n let onFocus = () => {\n enteredKeys.current = '';\n scrollIntoView(getScrollParent(ref.current) as HTMLElement, ref.current);\n\n // Safari requires that a selection is set or it won't fire input events.\n // Since usePress disables text selection, this won't happen by default.\n ref.current.style.webkitUserSelect = 'text';\n let selection = window.getSelection();\n selection.collapse(ref.current);\n ref.current.style.webkitUserSelect = '';\n };\n\n let compositionRef = useRef('');\n // @ts-ignore - TODO: possibly old TS version? doesn't fail in my editor...\n useEvent(ref, 'beforeinput', e => {\n e.preventDefault();\n\n switch (e.inputType) {\n case 'deleteContentBackward':\n case 'deleteContentForward':\n if (parser.isValidPartialNumber(segment.text) && !props.isReadOnly) {\n backspace();\n }\n break;\n case 'insertCompositionText':\n // insertCompositionText cannot be canceled.\n // Record the current state of the element so we can restore it in the `input` event below.\n compositionRef.current = ref.current.textContent;\n\n // Safari gets stuck in a composition state unless we also assign to the value here.\n // eslint-disable-next-line no-self-assign\n ref.current.textContent = ref.current.textContent;\n break;\n default:\n if (e.data != null) {\n onInput(e.data);\n }\n break;\n }\n });\n\n useEvent(ref, 'input', (e: InputEvent) => {\n let {inputType, data} = e;\n switch (inputType) {\n case 'insertCompositionText':\n // Reset the DOM to how it was in the beforeinput event.\n ref.current.textContent = compositionRef.current;\n\n // Android sometimes fires key presses of letters as composition events. Need to handle am/pm keys here too.\n // Can also happen e.g. with Pinyin keyboard on iOS.\n if (startsWith(am, data) || startsWith(pm, data)) {\n onInput(data);\n }\n break;\n }\n });\n\n // Focus on mouse down/touch up to match native textfield behavior.\n // usePress handles canceling text selection.\n let {pressProps} = usePress({\n preventFocusOnPress: true,\n onPressStart: (e) => {\n if (e.pointerType === 'mouse') {\n e.target.focus();\n }\n },\n onPress(e) {\n if (e.pointerType !== 'mouse') {\n e.target.focus();\n }\n }\n });\n\n // For Android: prevent selection on long press.\n useEvent(ref, 'selectstart', e => {\n e.preventDefault();\n });\n\n // spinbuttons cannot be focused with VoiceOver on iOS.\n let touchPropOverrides = isIOS() || segment.type === 'timeZoneName' ? {\n role: 'textbox',\n 'aria-valuemax': null,\n 'aria-valuemin': null,\n 'aria-valuetext': null,\n 'aria-valuenow': null\n } : {};\n\n let {ariaLabelledBy, ariaDescribedBy} = labelIds.get(state);\n\n // Only apply aria-describedby to the first segment, unless the field is invalid. This avoids it being\n // read every time the user navigates to a new segment.\n let firstSegment = useMemo(() => state.segments.find(s => s.isEditable), [state.segments]);\n if (segment !== firstSegment && state.validationState !== 'invalid') {\n ariaDescribedBy = undefined;\n }\n\n let id = useId(props.id);\n let isEditable = !props.isDisabled && !props.isReadOnly && segment.isEditable;\n return {\n segmentProps: mergeProps(spinButtonProps, pressProps, {\n id,\n ...touchPropOverrides,\n 'aria-controls': props['aria-controls'],\n // 'aria-haspopup': props['aria-haspopup'], // deprecated in ARIA 1.2\n 'aria-invalid': state.validationState === 'invalid' ? 'true' : undefined,\n 'aria-label': segment.type !== 'literal' ? displayNames.of(segment.type) : undefined,\n 'aria-labelledby': `${ariaLabelledBy} ${id}`,\n 'aria-describedby': ariaDescribedBy,\n 'aria-placeholder': segment.isPlaceholder ? segment.text : undefined,\n 'aria-readonly': props.isReadOnly || !segment.isEditable ? 'true' : undefined,\n contentEditable: isEditable,\n suppressContentEditableWarning: isEditable,\n spellCheck: isEditable ? 'false' : undefined,\n autoCapitalize: isEditable ? 'off' : undefined,\n autoCorrect: isEditable ? 'off' : undefined,\n // Capitalization was changed in React 17...\n [parseInt(React.version, 10) >= 17 ? 'enterKeyHint' : 'enterkeyhint']: isEditable ? 'next' : undefined,\n inputMode: props.isDisabled || segment.type === 'dayPeriod' || !isEditable ? undefined : 'numeric',\n tabIndex: props.isDisabled ? undefined : 0,\n onKeyDown,\n onFocus\n })\n };\n}\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {AriaButtonProps} from '@react-types/button';\nimport {AriaDatePickerProps, AriaDateRangePickerProps, DateValue} from '@react-types/datepicker';\nimport {AriaDialogProps} from '@react-types/dialog';\nimport {createFocusManager} from '@react-aria/focus';\nimport {DateRangePickerState} from '@react-stately/datepicker';\nimport {HTMLAttributes, LabelHTMLAttributes, RefObject} from 'react';\n// @ts-ignore\nimport intlMessages from '../intl/*.json';\nimport {mergeProps, useDescription, useId, useLabels} from '@react-aria/utils';\nimport {useDatePickerGroup} from './useDatePickerGroup';\nimport {useField} from '@react-aria/label';\nimport {useFocusWithin} from '@react-aria/interactions';\nimport {useLocale, useMessageFormatter} from '@react-aria/i18n';\n\ninterface DateRangePickerAria<T extends DateValue> {\n labelProps: LabelHTMLAttributes<HTMLLabelElement>,\n groupProps: HTMLAttributes<HTMLElement>,\n startFieldProps: AriaDatePickerProps<T>,\n endFieldProps: AriaDatePickerProps<T>,\n /** Props for the description element, if any. */\n descriptionProps: HTMLAttributes<HTMLElement>,\n /** Props for the error message element, if any. */\n errorMessageProps: HTMLAttributes<HTMLElement>,\n buttonProps: AriaButtonProps,\n dialogProps: AriaDialogProps\n}\n\nexport function useDateRangePicker<T extends DateValue>(props: AriaDateRangePickerProps<T>, state: DateRangePickerState, ref: RefObject<HTMLElement>): DateRangePickerAria<T> {\n let formatMessage = useMessageFormatter(intlMessages);\n let {labelProps, fieldProps, descriptionProps, errorMessageProps} = useField({\n ...props,\n labelElementType: 'span'\n });\n\n let labelledBy = fieldProps['aria-labelledby'] || fieldProps.id;\n\n let {locale} = useLocale();\n let description = state.formatValue(locale, {month: 'long'});\n let descProps = useDescription(description);\n\n let startFieldProps = useLabels({\n 'aria-label': formatMessage('startDate'),\n 'aria-labelledby': labelledBy\n });\n\n let endFieldProps = useLabels({\n 'aria-label': formatMessage('endDate'),\n 'aria-labelledby': labelledBy\n });\n\n let buttonId = useId();\n let dialogId = useId();\n\n let groupProps = useDatePickerGroup(state, ref);\n let {focusWithinProps} = useFocusWithin({\n onBlurWithin() {\n state.confirmPlaceholder();\n }\n });\n\n let ariaDescribedBy = [descProps['aria-describedby'], fieldProps['aria-describedby']].filter(Boolean).join(' ') || undefined;\n\n return {\n groupProps: mergeProps(groupProps, fieldProps, descProps, focusWithinProps, {\n role: 'group',\n 'aria-disabled': props.isDisabled || null,\n 'aria-describedby': ariaDescribedBy\n }),\n labelProps: {\n ...labelProps,\n onClick: () => {\n let focusManager = createFocusManager(ref);\n focusManager.focusFirst();\n }\n },\n buttonProps: {\n ...descProps,\n id: buttonId,\n excludeFromTabOrder: true,\n 'aria-haspopup': 'dialog',\n 'aria-label': formatMessage('calendar'),\n 'aria-labelledby': `${labelledBy} ${buttonId}`,\n 'aria-describedby': ariaDescribedBy\n },\n dialogProps: {\n id: dialogId,\n 'aria-labelledby': `${labelledBy} ${buttonId}`\n },\n startFieldProps: {\n ...startFieldProps,\n 'aria-describedby': fieldProps['aria-describedby']\n },\n endFieldProps: {\n ...endFieldProps,\n 'aria-describedby': fieldProps['aria-describedby']\n },\n descriptionProps,\n errorMessageProps\n };\n}\n"],"names":["JSON","parse","useDatePickerGroup","state","ref","onKeyDown","e","altKey","key","preventDefault","stopPropagation","setOpen","focusLast","elements","current","querySelectorAll","index","length","getAttribute","Math","min","element","focus","pressProps","usePress","onPressStart","pointerType","onPress","mergeProps","useDatePicker","props","buttonId","useId","dialogId","formatMessage","useMessageFormatter","intlMessages","labelProps","fieldProps","descriptionProps","errorMessageProps","useField","labelElementType","groupProps","labelledBy","id","locale","useLocale","descProps","useDescription","formatValue","month","ariaDescribedBy","filter","Boolean","join","undefined","role","isDisabled","onClick","focusManager","createFocusManager","focusFirst","buttonProps","excludeFromTabOrder","dialogProps","labelIds","WeakMap","useDateField","focusWithinProps","useFocusWithin","onBlurWithin","confirmPlaceholder","formatter","useDateFormatter","getFormatOptions","value","format","dateValue","segmentLabelledBy","describedBy","set","ariaLabelledBy","useDisplayNames","useMemo","Intl","DisplayNames","type","err","DisplayNamesPolyfill","constructor","dictionary","MessageDictionary","of","field","getStringForLocale","useDateSegment","segment","enteredKeys","useRef","direction","displayNames","useFocusManager","textValue","text","options","dateFormatter","resolvedOptions","monthDateFormatter","timeZone","hourDateFormatter","hour","hour12","monthTextValue","spinButtonProps","useSpinButton","minValue","maxValue","isReadOnly","isEditable","isRequired","onIncrement","increment","onDecrement","decrement","onIncrementPage","incrementPage","onDecrementPage","decrementPage","onIncrementToMax","setSegment","onDecrementToMin","parser","NumberParser","maximumFractionDigits","backspace","isValidPartialNumber","isPlaceholder","newValue","slice","parsed","clearSegment","isMac","metaKey","ctrlKey","shiftKey","focusNext","focusPrevious","startsWith","useFilter","sensitivity","amPmFormatter","am","date","Date","setHours","formatToParts","find","part","pm","onInput","numberValue","segmentValue","allowsZero","hourCycle","isNaN","shouldSetValue","Number","String","onFocus","scrollIntoView","getScrollParent","style","webkitUserSelect","selection","window","getSelection","collapse","compositionRef","useEvent","inputType","textContent","data","preventFocusOnPress","target","touchPropOverrides","isIOS","get","firstSegment","segments","s","validationState","segmentProps","contentEditable","suppressContentEditableWarning","spellCheck","autoCapitalize","autoCorrect","parseInt","React","version","inputMode","tabIndex","useDateRangePicker","description","startFieldProps","useLabels","endFieldProps"],"version":3,"file":"module.js.map"}
|
package/dist/types.d.ts
CHANGED
|
@@ -26,7 +26,10 @@ interface DateFieldAria {
|
|
|
26
26
|
/** Props for the error message element, if any. */
|
|
27
27
|
errorMessageProps: HTMLAttributes<HTMLElement>;
|
|
28
28
|
}
|
|
29
|
-
export const labelIds: WeakMap<DatePickerFieldState,
|
|
29
|
+
export const labelIds: WeakMap<DatePickerFieldState, {
|
|
30
|
+
ariaLabelledBy: string;
|
|
31
|
+
ariaDescribedBy: string;
|
|
32
|
+
}>;
|
|
30
33
|
export function useDateField<T extends DateValue>(props: DateFieldProps<T>, state: DatePickerFieldState, ref: RefObject<HTMLElement>): DateFieldAria;
|
|
31
34
|
type Field = 'era' | 'year' | 'month' | 'day' | 'hour' | 'minute' | 'second' | 'dayPeriod' | 'timeZoneName' | 'weekday';
|
|
32
35
|
interface DisplayNames {
|
package/dist/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"mappings":"A;A;A;A;A;A;ACyBA,yBAAyB,CAAC,SAAS,SAAS;IAC1C,UAAU,EAAE,eAAe,WAAW,CAAC,CAAC;IACxC,UAAU,EAAE,oBAAoB,gBAAgB,CAAC,CAAC;IAClD,UAAU,EAAE,oBAAoB,CAAC,CAAC,CAAC;IACnC,iDAAiD;IACjD,gBAAgB,EAAE,eAAe,WAAW,CAAC,CAAC;IAC9C,mDAAmD;IACnD,iBAAiB,EAAE,eAAe,WAAW,CAAC,CAAC;IAC/C,WAAW,EAAE,eAAe,CAAC;IAC7B,WAAW,EAAE,eAAe,CAAA;CAC7B;AAED,8BAA8B,CAAC,SAAS,SAAS,EAAE,KAAK,EAAE,oBAAoB,CAAC,CAAC,EAAE,KAAK,EAAE,eAAe,EAAE,GAAG,EAAE,UAAU,WAAW,CAAC,GAAG,eAAe,CAAC,CAAC,CAiDxJ;AC/DD,yBAAyB,CAAC,SAAS,SAAS,CAAE,SAAQ,IAAI,CAAC,oBAAoB,CAAC,CAAC,EAAE,OAAO,GAAG,cAAc,GAAG,UAAU,GAAG,UAAU,GAAG,UAAU,GAAG,kBAAkB,CAAC;CAAG;AAE3K;IACE,UAAU,EAAE,oBAAoB,gBAAgB,CAAC,CAAC;IAClD,UAAU,EAAE,eAAe,WAAW,CAAC,CAAC;IACxC,iDAAiD;IACjD,gBAAgB,EAAE,eAAe,WAAW,CAAC,CAAC;IAC9C,mDAAmD;IACnD,iBAAiB,EAAE,eAAe,WAAW,CAAC,CAAA;CAC/C;AAED,OAAO,MAAM
|
|
1
|
+
{"mappings":"A;A;A;A;A;A;ACyBA,yBAAyB,CAAC,SAAS,SAAS;IAC1C,UAAU,EAAE,eAAe,WAAW,CAAC,CAAC;IACxC,UAAU,EAAE,oBAAoB,gBAAgB,CAAC,CAAC;IAClD,UAAU,EAAE,oBAAoB,CAAC,CAAC,CAAC;IACnC,iDAAiD;IACjD,gBAAgB,EAAE,eAAe,WAAW,CAAC,CAAC;IAC9C,mDAAmD;IACnD,iBAAiB,EAAE,eAAe,WAAW,CAAC,CAAC;IAC/C,WAAW,EAAE,eAAe,CAAC;IAC7B,WAAW,EAAE,eAAe,CAAA;CAC7B;AAED,8BAA8B,CAAC,SAAS,SAAS,EAAE,KAAK,EAAE,oBAAoB,CAAC,CAAC,EAAE,KAAK,EAAE,eAAe,EAAE,GAAG,EAAE,UAAU,WAAW,CAAC,GAAG,eAAe,CAAC,CAAC,CAiDxJ;AC/DD,yBAAyB,CAAC,SAAS,SAAS,CAAE,SAAQ,IAAI,CAAC,oBAAoB,CAAC,CAAC,EAAE,OAAO,GAAG,cAAc,GAAG,UAAU,GAAG,UAAU,GAAG,UAAU,GAAG,kBAAkB,CAAC;CAAG;AAE3K;IACE,UAAU,EAAE,oBAAoB,gBAAgB,CAAC,CAAC;IAClD,UAAU,EAAE,eAAe,WAAW,CAAC,CAAC;IACxC,iDAAiD;IACjD,gBAAgB,EAAE,eAAe,WAAW,CAAC,CAAC;IAC9C,mDAAmD;IACnD,iBAAiB,EAAE,eAAe,WAAW,CAAC,CAAA;CAC/C;AAED,OAAO,MAAM;A;A;EAAiG,CAAC;AAE/G,6BAA6B,CAAC,SAAS,SAAS,EAAE,KAAK,EAAE,eAAe,CAAC,CAAC,EAAE,KAAK,EAAE,oBAAoB,EAAE,GAAG,EAAE,UAAU,WAAW,CAAC,GAAG,aAAa,CAyCnJ;AC3DD,aAAa,KAAK,GAAG,MAAM,GAAG,OAAO,GAAG,KAAK,GAAG,MAAM,GAAG,QAAQ,GAAG,QAAQ,GAAG,WAAW,GAAG,cAAc,GAAG,SAAS,CAAC;AACxH;IACE,EAAE,CAAC,KAAK,EAAE,KAAK,GAAG,MAAM,CAAA;CACzB;AAED,mCAAmC,YAAY,CAY9C;ACVD;IACE,YAAY,EAAE,eAAe,cAAc,CAAC,CAAA;CAC7C;AAED,+BAA+B,CAAC,SAAS,SAAS,EAAE,KAAK,EAAE,gBAAgB,CAAC,CAAC,GAAG,QAAQ,EAAE,OAAO,EAAE,WAAW,EAAE,KAAK,EAAE,oBAAoB,EAAE,GAAG,EAAE,UAAU,WAAW,CAAC,GAAG,eAAe,CAiVzL;ACpVD,8BAA8B,CAAC,SAAS,SAAS;IAC/C,UAAU,EAAE,oBAAoB,gBAAgB,CAAC,CAAC;IAClD,UAAU,EAAE,eAAe,WAAW,CAAC,CAAC;IACxC,eAAe,EAAE,oBAAoB,CAAC,CAAC,CAAC;IACxC,aAAa,EAAE,oBAAoB,CAAC,CAAC,CAAC;IACtC,iDAAiD;IACjD,gBAAgB,EAAE,eAAe,WAAW,CAAC,CAAC;IAC9C,mDAAmD;IACnD,iBAAiB,EAAE,eAAe,WAAW,CAAC,CAAC;IAC/C,WAAW,EAAE,eAAe,CAAC;IAC7B,WAAW,EAAG,eAAe,CAAA;CAC9B;AAED,mCAAmC,CAAC,SAAS,SAAS,EAAE,KAAK,EAAE,yBAAyB,CAAC,CAAC,EAAE,KAAK,EAAE,oBAAoB,EAAE,GAAG,EAAE,UAAU,WAAW,CAAC,GAAG,oBAAoB,CAAC,CAAC,CAwE5K","sources":["./packages/@react-aria/datepicker/src/packages/@react-aria/datepicker/src/useDatePickerGroup.ts","./packages/@react-aria/datepicker/src/packages/@react-aria/datepicker/src/useDatePicker.ts","./packages/@react-aria/datepicker/src/packages/@react-aria/datepicker/src/useDateField.ts","./packages/@react-aria/datepicker/src/packages/@react-aria/datepicker/src/useDisplayNames.ts","./packages/@react-aria/datepicker/src/packages/@react-aria/datepicker/src/useDateSegment.ts","./packages/@react-aria/datepicker/src/packages/@react-aria/datepicker/src/useDateRangePicker.ts","./packages/@react-aria/datepicker/src/packages/@react-aria/datepicker/src/index.ts"],"sourcesContent":[null,null,null,null,null,null,null],"names":[],"version":3,"file":"types.d.ts.map"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@react-aria/datepicker",
|
|
3
|
-
"version": "3.0.0-nightly.
|
|
3
|
+
"version": "3.0.0-nightly.1322+84e08371d",
|
|
4
4
|
"description": "Spectrum UI components in React",
|
|
5
5
|
"license": "Apache-2.0",
|
|
6
6
|
"main": "dist/main.js",
|
|
@@ -18,19 +18,19 @@
|
|
|
18
18
|
},
|
|
19
19
|
"dependencies": {
|
|
20
20
|
"@babel/runtime": "^7.6.2",
|
|
21
|
-
"@internationalized/message": "3.0.3-nightly.
|
|
22
|
-
"@internationalized/number": "3.0.4-nightly.
|
|
23
|
-
"@react-aria/focus": "3.0.0-nightly.
|
|
24
|
-
"@react-aria/i18n": "3.0.0-nightly.
|
|
25
|
-
"@react-aria/interactions": "3.0.0-nightly.
|
|
26
|
-
"@react-aria/label": "3.0.0-nightly.
|
|
27
|
-
"@react-aria/spinbutton": "3.0.0-nightly.
|
|
28
|
-
"@react-aria/utils": "3.0.0-nightly.
|
|
29
|
-
"@react-stately/datepicker": "3.0.0-nightly.
|
|
30
|
-
"@react-types/button": "3.4.2-nightly.
|
|
31
|
-
"@react-types/datepicker": "3.0.0-nightly.
|
|
32
|
-
"@react-types/dialog": "3.3.2-nightly.
|
|
33
|
-
"@react-types/shared": "3.0.0-nightly.
|
|
21
|
+
"@internationalized/message": "3.0.3-nightly.3010+84e08371d",
|
|
22
|
+
"@internationalized/number": "3.0.4-nightly.3010+84e08371d",
|
|
23
|
+
"@react-aria/focus": "3.0.0-nightly.1322+84e08371d",
|
|
24
|
+
"@react-aria/i18n": "3.0.0-nightly.1322+84e08371d",
|
|
25
|
+
"@react-aria/interactions": "3.0.0-nightly.1322+84e08371d",
|
|
26
|
+
"@react-aria/label": "3.0.0-nightly.1322+84e08371d",
|
|
27
|
+
"@react-aria/spinbutton": "3.0.0-nightly.1322+84e08371d",
|
|
28
|
+
"@react-aria/utils": "3.0.0-nightly.1322+84e08371d",
|
|
29
|
+
"@react-stately/datepicker": "3.0.0-nightly.1322+84e08371d",
|
|
30
|
+
"@react-types/button": "3.4.2-nightly.3010+84e08371d",
|
|
31
|
+
"@react-types/datepicker": "3.0.0-nightly.1322+84e08371d",
|
|
32
|
+
"@react-types/dialog": "3.3.2-nightly.3010+84e08371d",
|
|
33
|
+
"@react-types/shared": "3.0.0-nightly.1322+84e08371d"
|
|
34
34
|
},
|
|
35
35
|
"peerDependencies": {
|
|
36
36
|
"react": "^16.8.0 || ^17.0.0-rc.1",
|
|
@@ -39,5 +39,5 @@
|
|
|
39
39
|
"publishConfig": {
|
|
40
40
|
"access": "public"
|
|
41
41
|
},
|
|
42
|
-
"gitHead": "
|
|
42
|
+
"gitHead": "84e08371d774172ae5aa7dedfb962a04efc7785b"
|
|
43
43
|
}
|
package/src/useDateField.ts
CHANGED
|
@@ -32,7 +32,7 @@ interface DateFieldAria {
|
|
|
32
32
|
errorMessageProps: HTMLAttributes<HTMLElement>
|
|
33
33
|
}
|
|
34
34
|
|
|
35
|
-
export const labelIds = new WeakMap<DatePickerFieldState, string>();
|
|
35
|
+
export const labelIds = new WeakMap<DatePickerFieldState, {ariaLabelledBy: string, ariaDescribedBy: string}>();
|
|
36
36
|
|
|
37
37
|
export function useDateField<T extends DateValue>(props: DateFieldProps<T>, state: DatePickerFieldState, ref: RefObject<HTMLElement>): DateFieldAria {
|
|
38
38
|
let {labelProps, fieldProps, descriptionProps, errorMessageProps} = useField({
|
|
@@ -51,7 +51,13 @@ export function useDateField<T extends DateValue>(props: DateFieldProps<T>, stat
|
|
|
51
51
|
let formatter = useDateFormatter(state.getFormatOptions({month: 'long'}));
|
|
52
52
|
let descProps = useDescription(state.value ? formatter.format(state.dateValue) : null);
|
|
53
53
|
|
|
54
|
-
|
|
54
|
+
let segmentLabelledBy = fieldProps['aria-labelledby'] || fieldProps.id;
|
|
55
|
+
let describedBy = [descProps['aria-describedby'], fieldProps['aria-describedby']].filter(Boolean).join(' ') || undefined;
|
|
56
|
+
|
|
57
|
+
labelIds.set(state, {
|
|
58
|
+
ariaLabelledBy: segmentLabelledBy,
|
|
59
|
+
ariaDescribedBy: describedBy
|
|
60
|
+
});
|
|
55
61
|
|
|
56
62
|
return {
|
|
57
63
|
labelProps: {
|
|
@@ -64,7 +70,7 @@ export function useDateField<T extends DateValue>(props: DateFieldProps<T>, stat
|
|
|
64
70
|
fieldProps: mergeProps(fieldProps, descProps, groupProps, focusWithinProps, {
|
|
65
71
|
role: 'group',
|
|
66
72
|
'aria-disabled': props.isDisabled || undefined,
|
|
67
|
-
'aria-describedby':
|
|
73
|
+
'aria-describedby': describedBy
|
|
68
74
|
}),
|
|
69
75
|
descriptionProps,
|
|
70
76
|
errorMessageProps
|
package/src/useDateSegment.ts
CHANGED
|
@@ -13,7 +13,7 @@
|
|
|
13
13
|
import {DatePickerFieldState, DateSegment} from '@react-stately/datepicker';
|
|
14
14
|
import {DatePickerProps, DateValue} from '@react-types/datepicker';
|
|
15
15
|
import {DOMProps} from '@react-types/shared';
|
|
16
|
-
import {isIOS, isMac, mergeProps, useEvent, useId} from '@react-aria/utils';
|
|
16
|
+
import {getScrollParent, isIOS, isMac, mergeProps, scrollIntoView, useEvent, useId} from '@react-aria/utils';
|
|
17
17
|
import {labelIds} from './useDateField';
|
|
18
18
|
import {NumberParser} from '@internationalized/number';
|
|
19
19
|
import React, {HTMLAttributes, RefObject, useMemo, useRef} from 'react';
|
|
@@ -44,7 +44,7 @@ export function useDateSegment<T extends DateValue>(props: DatePickerProps<T> &
|
|
|
44
44
|
|
|
45
45
|
if (segment.type === 'month') {
|
|
46
46
|
let monthTextValue = monthDateFormatter.format(state.dateValue);
|
|
47
|
-
textValue = monthTextValue !== textValue ? `${textValue}
|
|
47
|
+
textValue = monthTextValue !== textValue ? `${textValue} – ${monthTextValue}` : monthTextValue;
|
|
48
48
|
} else if (segment.type === 'hour' || segment.type === 'dayPeriod') {
|
|
49
49
|
textValue = hourDateFormatter.format(state.dateValue);
|
|
50
50
|
}
|
|
@@ -243,9 +243,7 @@ export function useDateSegment<T extends DateValue>(props: DatePickerProps<T> &
|
|
|
243
243
|
|
|
244
244
|
let onFocus = () => {
|
|
245
245
|
enteredKeys.current = '';
|
|
246
|
-
|
|
247
|
-
ref.current.scrollIntoView();
|
|
248
|
-
}
|
|
246
|
+
scrollIntoView(getScrollParent(ref.current) as HTMLElement, ref.current);
|
|
249
247
|
|
|
250
248
|
// Safari requires that a selection is set or it won't fire input events.
|
|
251
249
|
// Since usePress disables text selection, this won't happen by default.
|
|
@@ -330,7 +328,14 @@ export function useDateSegment<T extends DateValue>(props: DatePickerProps<T> &
|
|
|
330
328
|
'aria-valuenow': null
|
|
331
329
|
} : {};
|
|
332
330
|
|
|
333
|
-
let
|
|
331
|
+
let {ariaLabelledBy, ariaDescribedBy} = labelIds.get(state);
|
|
332
|
+
|
|
333
|
+
// Only apply aria-describedby to the first segment, unless the field is invalid. This avoids it being
|
|
334
|
+
// read every time the user navigates to a new segment.
|
|
335
|
+
let firstSegment = useMemo(() => state.segments.find(s => s.isEditable), [state.segments]);
|
|
336
|
+
if (segment !== firstSegment && state.validationState !== 'invalid') {
|
|
337
|
+
ariaDescribedBy = undefined;
|
|
338
|
+
}
|
|
334
339
|
|
|
335
340
|
let id = useId(props.id);
|
|
336
341
|
let isEditable = !props.isDisabled && !props.isReadOnly && segment.isEditable;
|
|
@@ -342,7 +347,8 @@ export function useDateSegment<T extends DateValue>(props: DatePickerProps<T> &
|
|
|
342
347
|
// 'aria-haspopup': props['aria-haspopup'], // deprecated in ARIA 1.2
|
|
343
348
|
'aria-invalid': state.validationState === 'invalid' ? 'true' : undefined,
|
|
344
349
|
'aria-label': segment.type !== 'literal' ? displayNames.of(segment.type) : undefined,
|
|
345
|
-
'aria-labelledby': `${
|
|
350
|
+
'aria-labelledby': `${ariaLabelledBy} ${id}`,
|
|
351
|
+
'aria-describedby': ariaDescribedBy,
|
|
346
352
|
'aria-placeholder': segment.isPlaceholder ? segment.text : undefined,
|
|
347
353
|
'aria-readonly': props.isReadOnly || !segment.isEditable ? 'true' : undefined,
|
|
348
354
|
contentEditable: isEditable,
|