@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 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
- labelIds.set(state, fieldProps['aria-labelledby'] || fieldProps.id);
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': [descProps['aria-describedby'], fieldProps['aria-describedby']].filter(Boolean).join(' ') || undefined
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 + " - " + monthTextValue : monthTextValue;
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 fieldLabelId = labelIds.get(state);
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': fieldLabelId + " " + id,
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
- labelIds.set(state, fieldProps['aria-labelledby'] || fieldProps.id);
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': [descProps['aria-describedby'], fieldProps['aria-describedby']].filter(Boolean).join(' ') || undefined
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 + " - " + monthTextValue : monthTextValue;
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 fieldLabelId = labelIds.get(state);
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': fieldLabelId + " " + id,
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,
@@ -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":";;;;;;;;;;;;;AAAA,4CAAiBA,IAAI,CAACC,KAAL,CAAW,4cAAX,CAAjB;;;ACAA,2CAAiBD,IAAI,CAACC,KAAL,CAAW,8dAAX,CAAjB;;;ACAA,4CAAiBD,IAAI,CAACC,KAAL,CAAW,2dAAX,CAAjB;;;ACAA,4CAAiBD,IAAI,CAACC,KAAL,CAAW,2bAAX,CAAjB;;;ACAA,4CAAiBD,IAAI,CAACC,KAAL,CAAW,kdAAX,CAAjB;;;ACAA,uCAAiBD,IAAI,CAACC,KAAL,CAAW,+eAAX,CAAjB;;;ACAA,yCAAiBD,IAAI,CAACC,KAAL,CAAW,scAAX,CAAjB;;;ACAA,0CAAiBD,IAAI,CAACC,KAAL,CAAW,geAAX,CAAjB;;;ACAA,2CAAiBD,IAAI,CAACC,KAAL,CAAW,8dAAX,CAAjB;;;ACAA,qCAAiBD,IAAI,CAACC,KAAL,CAAW,8eAAX,CAAjB;;;ACAA,2CAAiBD,IAAI,CAACC,KAAL,CAAW,8dAAX,CAAjB;;;ACAA,0CAAiBD,IAAI,CAACC,KAAL,CAAW,ycAAX,CAAjB;;;ACAA,0CAAiBD,IAAI,CAACC,KAAL,CAAW,ydAAX,CAAjB;;;ACAA,2CAAiBD,IAAI,CAACC,KAAL,CAAW,ucAAX,CAAjB;;;ACAA,2CAAiBD,IAAI,CAACC,KAAL,CAAW,geAAX,CAAjB;;;ACAA,2CAAiBD,IAAI,CAACC,KAAL,CAAW,uYAAX,CAAjB;;;ACAA,wCAAiBD,IAAI,CAACC,KAAL,CAAW,sYAAX,CAAjB;;;ACAA,uCAAiBD,IAAI,CAACC,KAAL,CAAW,mfAAX,CAAjB;;;ACAA,2CAAiBD,IAAI,CAACC,KAAL,CAAW,ufAAX,CAAjB;;;ACAA,4CAAiBD,IAAI,CAACC,KAAL,CAAW,qcAAX,CAAjB;;;ACAA,wCAAiBD,IAAI,CAACC,KAAL,CAAW,kdAAX,CAAjB;;;ACAA,4CAAiBD,IAAI,CAACC,KAAL,CAAW,ofAAX,CAAjB;;;ACAA,yCAAiBD,IAAI,CAACC,KAAL,CAAW,kdAAX,CAAjB;;;ACAA,2CAAiBD,IAAI,CAACC,KAAL,CAAW,ydAAX,CAAjB;;;ACAA,yCAAiBD,IAAI,CAACC,KAAL,CAAW,ycAAX,CAAjB;;;ACAA,uCAAiBD,IAAI,CAACC,KAAL,CAAW,8cAAX,CAAjB;;;ACAA,4CAAiBD,IAAI,CAACC,KAAL,CAAW,4dAAX,CAAjB;;;ACAA,2CAAiBD,IAAI,CAACC,KAAL,CAAW,idAAX,CAAjB;;;ACAA,2CAAiBD,IAAI,CAACC,KAAL,CAAW,keAAX,CAAjB;;;ACAA,2CAAiBD,IAAI,CAACC,KAAL,CAAW,mcAAX,CAAjB;;;ACAA,yCAAiBD,IAAI,CAACC,KAAL,CAAW,6cAAX,CAAjB;;;ACAA,4CAAiBD,IAAI,CAACC,KAAL,CAAW,wdAAX,CAAjB;;;ACAA,2CAAiBD,IAAI,CAACC,KAAL,CAAW,qYAAX,CAAjB;;;ACAA,2CAAiBD,IAAI,CAACC,KAAL,CAAW,oYAAX,CAAjB;;ACMO,SAASC,2DAAT,CAA4BC,KAA5B,EAAkGC,GAAlG,EAA+H;AACpI;AACA,MAAIC,SAAS,GAAIC,CAAD,IAAsB;AACpC,QAAIA,CAAC,CAACC,MAAF,IAAYD,CAAC,CAACE,GAAF,KAAU,WAAtB,IAAqC,aAAaL,KAAtD,EAA6D;AAC3DG,MAAAA,CAAC,CAACG,cAAF;AACAH,MAAAA,CAAC,CAACI,eAAF;AACAP,MAAAA,KAAK,CAACQ,OAAN,CAAc,IAAd;AACD;AACF,GAND,CAFoI,CAUpI;;;AACA,MAAIC,SAAS,GAAG,MAAM;AACpB,QAAIC,QAAQ,GAAGT,GAAG,CAACU,OAAJ,CAAYC,gBAAZ,CAA6B,gBAA7B,CAAf;AACA,QAAIC,KAAK,GAAGH,QAAQ,CAACI,MAAT,GAAkB,CAA9B;;AACA,WAAOD,KAAK,IAAI,CAAT,IAAcH,QAAQ,CAACG,KAAD,CAAR,CAAgBE,YAAhB,CAA6B,kBAA7B,CAArB,EAAuE;AACrEF,MAAAA,KAAK;AACN;;AACDA,IAAAA,KAAK,GAAGG,IAAI,CAACC,GAAL,CAASJ,KAAK,GAAG,CAAjB,EAAoBH,QAAQ,CAACI,MAAT,GAAkB,CAAtC,CAAR;AACA,QAAII,OAAO,GAAGR,QAAQ,CAACG,KAAD,CAAtB;;AACA,QAAIK,OAAJ,EAAa;AACXA,MAAAA,OAAO,CAACC,KAAR;AACD;AACF,GAXD;;AAaA,MAAI;AAACC,IAAAA;AAAD,MAAeC,QAAQ,CAAC;AAC1BC,IAAAA,YAAY,CAACnB,CAAD,EAAI;AACd,UAAIA,CAAC,CAACoB,WAAF,KAAkB,OAAtB,EAA+B;AAC7Bd,QAAAA,SAAS;AACV;AACF,KALyB;;AAM1Be,IAAAA,OAAO,CAACrB,CAAD,EAAI;AACT,UAAIA,CAAC,CAACoB,WAAF,KAAkB,OAAtB,EAA+B;AAC7Bd,QAAAA,SAAS;AACV;AACF;;AAVyB,GAAD,CAA3B;AAaA,SAAOgB,UAAU,CAACL,UAAD,EAAa;AAAClB,IAAAA;AAAD,GAAb,CAAjB;AACD;;AC1BD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAmBO,SAASwB,aAAT,CAA4CC,KAA5C,EAA2E3B,KAA3E,EAAmGC,GAAnG,EAAmJ;AACxJ,MAAI2B,QAAQ,GAAGC,KAAK,EAApB;AACA,MAAIC,QAAQ,GAAGD,KAAK,EAApB;AACA,MAAIE,aAAa,GAAGC,mBAAmB,CAACC,kDAAD,CAAvC;AAEA,MAAI;AAACC,IAAAA,UAAD;AAAaC,IAAAA,UAAb;AAAyBC,IAAAA,gBAAzB;AAA2CC,IAAAA;AAA3C,MAAgEC,QAAQ,oCACvEX,KADuE;AAE1EY,IAAAA,gBAAgB,EAAE;AAFwD,KAA5E;AAKA,MAAIC,UAAU,GAAG,4DAAmBxC,KAAnB,EAA0BC,GAA1B,CAAjB;AAEA,MAAIwC,UAAU,GAAGN,UAAU,CAAC,iBAAD,CAAV,IAAiCA,UAAU,CAACO,EAA7D;AAEA,MAAI;AAACC,IAAAA;AAAD,MAAWC,SAAS,EAAxB;AACA,MAAIC,SAAS,GAAGC,cAAc,CAAC9C,KAAK,CAAC+C,WAAN,CAAkBJ,MAAlB,EAA0B;AAACK,IAAAA,KAAK,EAAE;AAAR,GAA1B,CAAD,CAA9B;AACA,MAAIC,eAAe,GAAG,CAACJ,SAAS,CAAC,kBAAD,CAAV,EAAgCV,UAAU,CAAC,kBAAD,CAA1C,EAAgEe,MAAhE,CAAuEC,OAAvE,EAAgFC,IAAhF,CAAqF,GAArF,KAA6FC,SAAnH;AAEA,SAAO;AACLb,IAAAA,UAAU,EAAEf,UAAU,CAACe,UAAD,EAAaK,SAAb,EAAwB;AAC5CS,MAAAA,IAAI,EAAE,OADsC;AAE5C,uBAAiB3B,KAAK,CAAC4B,UAAN,IAAoB,IAFO;AAG5C,yBAAmBd,UAHyB;AAI5C,0BAAoBQ;AAJwB,KAAxB,CADjB;AAOLf,IAAAA,UAAU,qCACLA,UADK;AAERsB,MAAAA,OAAO,EAAE,MAAM;AACb,YAAIC,YAAY,GAAGC,kBAAkB,CAACzD,GAAD,CAArC;AACAwD,QAAAA,YAAY,CAACE,UAAb;AACD;AALO,MAPL;AAcLxB,IAAAA,UAdK;AAeLC,IAAAA,gBAfK;AAgBLC,IAAAA,iBAhBK;AAiBLuB,IAAAA,WAAW,qCACNf,SADM;AAETH,MAAAA,EAAE,EAAEd,QAFK;AAGTiC,MAAAA,mBAAmB,EAAE,IAHZ;AAIT,uBAAiB,QAJR;AAKT,oBAAc9B,aAAa,CAAC,UAAD,CALlB;AAMT,yBAAsBU,UAAtB,SAAoCb,QAN3B;AAOT,0BAAoBqB;AAPX,MAjBN;AA0BLa,IAAAA,WAAW,EAAE;AACXpB,MAAAA,EAAE,EAAEZ,QADO;AAEX,yBAAsBW,UAAtB,SAAoCb;AAFzB;AA1BR,GAAP;AA+BD;OCpDM,MAAMmC,QAAQ,GAAG,IAAIC,OAAJ,EAAjB;OAEA,SAASC,YAAT,CAA2CtC,KAA3C,EAAqE3B,KAArE,EAAkGC,GAAlG,EAA8I;AACnJ,MAAI;AAACiC,IAAAA,UAAD;AAAaC,IAAAA,UAAb;AAAyBC,IAAAA,gBAAzB;AAA2CC,IAAAA;AAA3C,MAAgEC,QAAQ,oCACvEX,KADuE;AAE1EY,IAAAA,gBAAgB,EAAE;AAFwD,KAA5E;AAKA,MAAIC,UAAU,GAAG,4DAAmBxC,KAAnB,EAA0BC,GAA1B,CAAjB;AAEA,MAAI;AAACiE,IAAAA;AAAD,MAAqBC,cAAc,CAAC;AACtCC,IAAAA,YAAY,GAAG;AACbpE,MAAAA,KAAK,CAACqE,kBAAN;AACD;;AAHqC,GAAD,CAAvC;AAMA,MAAIC,SAAS,GAAGC,gBAAgB,CAACvE,KAAK,CAACwE,gBAAN,CAAuB;AAACxB,IAAAA,KAAK,EAAE;AAAR,GAAvB,CAAD,CAAhC;AACA,MAAIH,SAAS,GAAGC,cAAc,CAAC9C,KAAK,CAACyE,KAAN,GAAcH,SAAS,CAACI,MAAV,CAAiB1E,KAAK,CAAC2E,SAAvB,CAAd,GAAkD,IAAnD,CAA9B;AAEA,MAAIC,iBAAiB,GAAGzC,UAAU,CAAC,iBAAD,CAAV,IAAiCA,UAAU,CAACO,EAApE;AACA,MAAImC,WAAW,GAAG,CAAChC,SAAS,CAAC,kBAAD,CAAV,EAAgCV,UAAU,CAAC,kBAAD,CAA1C,EAAgEe,MAAhE,CAAuEC,OAAvE,EAAgFC,IAAhF,CAAqF,GAArF,KAA6FC,SAA/G;AAEAU,EAAAA,QAAQ,CAACe,GAAT,CAAa9E,KAAb,EAAoB;AAClB+E,IAAAA,cAAc,EAAEH,iBADE;AAElB3B,IAAAA,eAAe,EAAE4B;AAFC,GAApB;AAKA,SAAO;AACL3C,IAAAA,UAAU,qCACLA,UADK;AAERsB,MAAAA,OAAO,EAAE,MAAM;AACb,YAAIC,YAAY,GAAGC,kBAAkB,CAACzD,GAAD,CAArC;AACAwD,QAAAA,YAAY,CAACE,UAAb;AACD;AALO,MADL;AAQLxB,IAAAA,UAAU,EAAEV,UAAU,CAACU,UAAD,EAAaU,SAAb,EAAwBL,UAAxB,EAAoC0B,gBAApC,EAAsD;AAC1EZ,MAAAA,IAAI,EAAE,OADoE;AAE1E,uBAAiB3B,KAAK,CAAC4B,UAAN,IAAoBF,SAFqC;AAG1E,0BAAoBwB;AAHsD,KAAtD,CARjB;AAaLzC,IAAAA,gBAbK;AAcLC,IAAAA;AAdK,GAAP;AAgBD;;AC7ED;;;;;;;;;;;AAYA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAWO,SAAS2C,eAAT,GAAyC;AAC9C,MAAI;AAACrC,IAAAA;AAAD,MAAWC,SAAS,EAAxB;AACA,SAAOqC,OAAO,CAAC,MAAM;AACnB;AACA;AACA,QAAI;AACF;AACA,aAAO,IAAIC,IAAI,CAACC,YAAT,CAAsBxC,MAAtB,EAA8B;AAACyC,QAAAA,IAAI,EAAE;AAAP,OAA9B,CAAP;AACD,KAHD,CAGE,OAAOC,GAAP,EAAY;AACZ,aAAO,IAAIC,0DAAJ,CAAyB3C,MAAzB,CAAP;AACD;AACF,GATa,EASX,CAACA,MAAD,CATW,CAAd;AAUD;;AAED,MAAM2C,0DAAN,CAAmD;AAIjDC,EAAAA,WAAW,CAAC5C,MAAD,EAAiB;AAAA,SAHpBA,MAGoB;AAAA,SAFpB6C,UAEoB;AAC1B,SAAK7C,MAAL,GAAcA,MAAd;AACA,SAAK6C,UAAL,GAAkB,IAAIC,iBAAJ,CAAsBxD,kDAAtB,CAAlB;AACD;;AAEDyD,EAAAA,EAAE,CAACC,KAAD,EAAuB;AACvB,WAAO,KAAKH,UAAL,CAAgBI,kBAAhB,CAAmCD,KAAnC,EAA0C,KAAKhD,MAA/C,CAAP;AACD;;AAXgD;;OCR5C,SAASkD,cAAT,CAA6ClE,KAA7C,EAAmFmE,OAAnF,EAAyG9F,KAAzG,EAAsIC,GAAtI,EAAoL;AACzL,MAAI8F,WAAW,GAAGC,MAAM,CAAC,EAAD,CAAxB;AACA,MAAI;AAACrD,IAAAA,MAAD;AAASsD,IAAAA;AAAT,MAAsBrD,SAAS,EAAnC;AACA,MAAIsD,YAAY,GAAG,iBAAnB;AACA,MAAIzC,YAAY,GAAG0C,eAAe,EAAlC;AAEA,MAAIC,SAAS,GAAGN,OAAO,CAACO,IAAxB;AACA,MAAIC,OAAO,GAAGrB,OAAO,CAAC,MAAMjF,KAAK,CAACuG,aAAN,CAAoBC,eAApB,EAAP,EAA8C,CAACxG,KAAK,CAACuG,aAAP,CAA9C,CAArB;AACA,MAAIE,kBAAkB,GAAGlC,gBAAgB,CAAC;AAACvB,IAAAA,KAAK,EAAE,MAAR;AAAgB0D,IAAAA,QAAQ,EAAEJ,OAAO,CAACI;AAAlC,GAAD,CAAzC;AACA,MAAIC,iBAAiB,GAAGpC,gBAAgB,CAAC;AACvCqC,IAAAA,IAAI,EAAE,SADiC;AAEvCC,IAAAA,MAAM,EAAEP,OAAO,CAACO,MAFuB;AAGvCH,IAAAA,QAAQ,EAAEJ,OAAO,CAACI;AAHqB,GAAD,CAAxC;;AAMA,MAAIZ,OAAO,CAACV,IAAR,KAAiB,OAArB,EAA8B;AAC5B,QAAI0B,cAAc,GAAGL,kBAAkB,CAAC/B,MAAnB,CAA0B1E,KAAK,CAAC2E,SAAhC,CAArB;AACAyB,IAAAA,SAAS,GAAGU,cAAc,KAAKV,SAAnB,GAAkCA,SAAlC,gBAAiDU,cAAjD,GAAoEA,cAAhF;AACD,GAHD,MAGO,IAAIhB,OAAO,CAACV,IAAR,KAAiB,MAAjB,IAA2BU,OAAO,CAACV,IAAR,KAAiB,WAAhD,EAA6D;AAClEgB,IAAAA,SAAS,GAAGO,iBAAiB,CAACjC,MAAlB,CAAyB1E,KAAK,CAAC2E,SAA/B,CAAZ;AACD;;AAED,MAAI;AAACoC,IAAAA;AAAD,MAAoBC,aAAa,CAAC;AACpCvC,IAAAA,KAAK,EAAEqB,OAAO,CAACrB,KADqB;AAEpC2B,IAAAA,SAFoC;AAGpCa,IAAAA,QAAQ,EAAEnB,OAAO,CAACmB,QAHkB;AAIpCC,IAAAA,QAAQ,EAAEpB,OAAO,CAACoB,QAJkB;AAKpC3D,IAAAA,UAAU,EAAE5B,KAAK,CAAC4B,UALkB;AAMpC4D,IAAAA,UAAU,EAAExF,KAAK,CAACwF,UAAN,IAAoB,CAACrB,OAAO,CAACsB,UANL;AAOpCC,IAAAA,UAAU,EAAE1F,KAAK,CAAC0F,UAPkB;AAQpCC,IAAAA,WAAW,EAAE,MAAM;AACjBvB,MAAAA,WAAW,CAACpF,OAAZ,GAAsB,EAAtB;AACAX,MAAAA,KAAK,CAACuH,SAAN,CAAgBzB,OAAO,CAACV,IAAxB;AACD,KAXmC;AAYpCoC,IAAAA,WAAW,EAAE,MAAM;AACjBzB,MAAAA,WAAW,CAACpF,OAAZ,GAAsB,EAAtB;AACAX,MAAAA,KAAK,CAACyH,SAAN,CAAgB3B,OAAO,CAACV,IAAxB;AACD,KAfmC;AAgBpCsC,IAAAA,eAAe,EAAE,MAAM;AACrB3B,MAAAA,WAAW,CAACpF,OAAZ,GAAsB,EAAtB;AACAX,MAAAA,KAAK,CAAC2H,aAAN,CAAoB7B,OAAO,CAACV,IAA5B;AACD,KAnBmC;AAoBpCwC,IAAAA,eAAe,EAAE,MAAM;AACrB7B,MAAAA,WAAW,CAACpF,OAAZ,GAAsB,EAAtB;AACAX,MAAAA,KAAK,CAAC6H,aAAN,CAAoB/B,OAAO,CAACV,IAA5B;AACD,KAvBmC;AAwBpC0C,IAAAA,gBAAgB,EAAE,MAAM;AACtB/B,MAAAA,WAAW,CAACpF,OAAZ,GAAsB,EAAtB;AACAX,MAAAA,KAAK,CAAC+H,UAAN,CAAiBjC,OAAO,CAACV,IAAzB,EAA+BU,OAAO,CAACoB,QAAvC;AACD,KA3BmC;AA4BpCc,IAAAA,gBAAgB,EAAE,MAAM;AACtBjC,MAAAA,WAAW,CAACpF,OAAZ,GAAsB,EAAtB;AACAX,MAAAA,KAAK,CAAC+H,UAAN,CAAiBjC,OAAO,CAACV,IAAzB,EAA+BU,OAAO,CAACmB,QAAvC;AACD;AA/BmC,GAAD,CAArC;AAkCA,MAAIgB,MAAM,GAAGhD,OAAO,CAAC,MAAM,IAAIiD,YAAJ,CAAiBvF,MAAjB,EAAyB;AAACwF,IAAAA,qBAAqB,EAAE;AAAxB,GAAzB,CAAP,EAA6D,CAACxF,MAAD,CAA7D,CAApB;;AAEA,MAAIyF,SAAS,GAAG,MAAM;AACpB,QAAIH,MAAM,CAACI,oBAAP,CAA4BvC,OAAO,CAACO,IAApC,KAA6C,CAAC1E,KAAK,CAACwF,UAApD,IAAkE,CAACrB,OAAO,CAACwC,aAA/E,EAA8F;AAC5F,UAAIC,QAAQ,GAAGzC,OAAO,CAACO,IAAR,CAAamC,KAAb,CAAmB,CAAnB,EAAsB,CAAC,CAAvB,CAAf;AACA,UAAIC,MAAM,GAAGR,MAAM,CAACnI,KAAP,CAAayI,QAAb,CAAb;;AACA,UAAIA,QAAQ,CAACzH,MAAT,KAAoB,CAApB,IAAyB2H,MAAM,KAAK,CAAxC,EAA2C;AACzCzI,QAAAA,KAAK,CAAC0I,YAAN,CAAmB5C,OAAO,CAACV,IAA3B;AACD,OAFD,MAEO;AACLpF,QAAAA,KAAK,CAAC+H,UAAN,CAAiBjC,OAAO,CAACV,IAAzB,EAA+BqD,MAA/B;AACD;;AACD1C,MAAAA,WAAW,CAACpF,OAAZ,GAAsB4H,QAAtB;AACD,KATD,MASO,IAAIzC,OAAO,CAACV,IAAR,KAAiB,WAArB,EAAkC;AACvCpF,MAAAA,KAAK,CAAC0I,YAAN,CAAmB5C,OAAO,CAACV,IAA3B;AACD;AACF,GAbD;;AAeA,MAAIlF,SAAS,GAAIC,CAAD,IAAO;AACrB;AACA;AACA,QAAIA,CAAC,CAACE,GAAF,KAAU,GAAV,KAAkBsI,KAAK,KAAKxI,CAAC,CAACyI,OAAP,GAAiBzI,CAAC,CAAC0I,OAA1C,CAAJ,EAAwD;AACtD1I,MAAAA,CAAC,CAACG,cAAF;AACD;;AAED,QAAIH,CAAC,CAAC0I,OAAF,IAAa1I,CAAC,CAACyI,OAAf,IAA0BzI,CAAC,CAAC2I,QAA5B,IAAwC3I,CAAC,CAACC,MAA9C,EAAsD;AACpD;AACD;;AAED,YAAQD,CAAC,CAACE,GAAV;AACE,WAAK,WAAL;AACEF,QAAAA,CAAC,CAACG,cAAF;AACAH,QAAAA,CAAC,CAACI,eAAF;;AACA,YAAI0F,SAAS,KAAK,KAAlB,EAAyB;AACvBxC,UAAAA,YAAY,CAACsF,SAAb;AACD,SAFD,MAEO;AACLtF,UAAAA,YAAY,CAACuF,aAAb;AACD;;AACD;;AACF,WAAK,YAAL;AACE7I,QAAAA,CAAC,CAACG,cAAF;AACAH,QAAAA,CAAC,CAACI,eAAF;;AACA,YAAI0F,SAAS,KAAK,KAAlB,EAAyB;AACvBxC,UAAAA,YAAY,CAACuF,aAAb;AACD,SAFD,MAEO;AACLvF,UAAAA,YAAY,CAACsF,SAAb;AACD;;AACD;;AACF,WAAK,OAAL;AACE5I,QAAAA,CAAC,CAACG,cAAF;AACAH,QAAAA,CAAC,CAACI,eAAF;;AACA,YAAIuF,OAAO,CAACwC,aAAR,IAAyB,CAAC3G,KAAK,CAACwF,UAApC,EAAgD;AAC9CnH,UAAAA,KAAK,CAACqE,kBAAN,CAAyByB,OAAO,CAACV,IAAjC;AACD;;AACD3B,QAAAA,YAAY,CAACsF,SAAb;AACA;;AACF,WAAK,KAAL;AACE;;AACF,WAAK,WAAL;AACA,WAAK,QAAL;AAAe;AACb;AACA5I,UAAAA,CAAC,CAACG,cAAF;AACAH,UAAAA,CAAC,CAACI,eAAF;AACA6H,UAAAA,SAAS;AACT;AACD;AApCH;AAsCD,GAjDD,CAzEyL,CA4HzL;;;AACA,MAAI;AAACa,IAAAA;AAAD,MAAeC,SAAS,CAAC;AAACC,IAAAA,WAAW,EAAE;AAAd,GAAD,CAA5B;AACA,MAAIC,aAAa,GAAG7E,gBAAgB,CAAC;AAACqC,IAAAA,IAAI,EAAE,SAAP;AAAkBC,IAAAA,MAAM,EAAE;AAA1B,GAAD,CAApC;AACA,MAAIwC,EAAE,GAAGpE,OAAO,CAAC,MAAM;AACrB,QAAIqE,IAAI,GAAG,IAAIC,IAAJ,EAAX;AACAD,IAAAA,IAAI,CAACE,QAAL,CAAc,CAAd;AACA,WAAOJ,aAAa,CAACK,aAAd,CAA4BH,IAA5B,EAAkCI,IAAlC,CAAuCC,IAAI,IAAIA,IAAI,CAACvE,IAAL,KAAc,WAA7D,EAA0EX,KAAjF;AACD,GAJe,EAIb,CAAC2E,aAAD,CAJa,CAAhB;AAMA,MAAIQ,EAAE,GAAG3E,OAAO,CAAC,MAAM;AACrB,QAAIqE,IAAI,GAAG,IAAIC,IAAJ,EAAX;AACAD,IAAAA,IAAI,CAACE,QAAL,CAAc,EAAd;AACA,WAAOJ,aAAa,CAACK,aAAd,CAA4BH,IAA5B,EAAkCI,IAAlC,CAAuCC,IAAI,IAAIA,IAAI,CAACvE,IAAL,KAAc,WAA7D,EAA0EX,KAAjF;AACD,GAJe,EAIb,CAAC2E,aAAD,CAJa,CAAhB;;AAMA,MAAIS,OAAO,GAAIxJ,GAAD,IAAiB;AAC7B,QAAIsB,KAAK,CAAC4B,UAAN,IAAoB5B,KAAK,CAACwF,UAA9B,EAA0C;AACxC;AACD;;AAED,QAAIoB,QAAQ,GAAGxC,WAAW,CAACpF,OAAZ,GAAsBN,GAArC;;AAEA,YAAQyF,OAAO,CAACV,IAAhB;AACE,WAAK,WAAL;AACE,YAAI6D,UAAU,CAACI,EAAD,EAAKhJ,GAAL,CAAd,EAAyB;AACvBL,UAAAA,KAAK,CAAC+H,UAAN,CAAiB,WAAjB,EAA8B,CAA9B;AACD,SAFD,MAEO,IAAIkB,UAAU,CAACW,EAAD,EAAKvJ,GAAL,CAAd,EAAyB;AAC9BL,UAAAA,KAAK,CAAC+H,UAAN,CAAiB,WAAjB,EAA8B,EAA9B;AACD,SAFM,MAEA;AACL;AACD;;AACDtE,QAAAA,YAAY,CAACsF,SAAb;AACA;;AACF,WAAK,KAAL;AACA,WAAK,MAAL;AACA,WAAK,QAAL;AACA,WAAK,QAAL;AACA,WAAK,OAAL;AACA,WAAK,MAAL;AAAa;AACX,cAAI,CAACd,MAAM,CAACI,oBAAP,CAA4BE,QAA5B,CAAL,EAA4C;AAC1C;AACD;;AAED,cAAIuB,WAAW,GAAG7B,MAAM,CAACnI,KAAP,CAAayI,QAAb,CAAlB;AACA,cAAIwB,YAAY,GAAGD,WAAnB;AACA,cAAIE,UAAU,GAAGlE,OAAO,CAACmB,QAAR,KAAqB,CAAtC;;AACA,cAAInB,OAAO,CAACV,IAAR,KAAiB,MAAjB,IAA2BpF,KAAK,CAACuG,aAAN,CAAoBC,eAApB,GAAsCK,MAArE,EAA6E;AAC3E,oBAAQ7G,KAAK,CAACuG,aAAN,CAAoBC,eAApB,GAAsCyD,SAA9C;AACE,mBAAK,KAAL;AACE,oBAAIH,WAAW,GAAG,EAAlB,EAAsB;AACpBC,kBAAAA,YAAY,GAAG9B,MAAM,CAACnI,KAAP,CAAaO,GAAb,CAAf;AACD;;AACD;;AACF,mBAAK,KAAL;AACE2J,gBAAAA,UAAU,GAAG,KAAb;;AACA,oBAAIF,WAAW,GAAG,EAAlB,EAAsB;AACpBC,kBAAAA,YAAY,GAAG9B,MAAM,CAACnI,KAAP,CAAaO,GAAb,CAAf;AACD;;AACD;AAXJ;;AAcA,gBAAIyF,OAAO,CAACrB,KAAR,IAAiB,EAAjB,IAAuBqF,WAAW,GAAG,CAAzC,EAA4C;AAC1CA,cAAAA,WAAW,IAAI,EAAf;AACD;AACF,WAlBD,MAkBO,IAAIA,WAAW,GAAGhE,OAAO,CAACoB,QAA1B,EAAoC;AACzC6C,YAAAA,YAAY,GAAG9B,MAAM,CAACnI,KAAP,CAAaO,GAAb,CAAf;AACD;;AAED,cAAI6J,KAAK,CAACJ,WAAD,CAAT,EAAwB;AACtB;AACD;;AAED,cAAIK,cAAc,GAAGJ,YAAY,KAAK,CAAjB,IAAsBC,UAA3C;;AACA,cAAIG,cAAJ,EAAoB;AAClBnK,YAAAA,KAAK,CAAC+H,UAAN,CAAiBjC,OAAO,CAACV,IAAzB,EAA+B2E,YAA/B;AACD;;AAED,cAAIK,MAAM,CAACN,WAAW,GAAG,GAAf,CAAN,GAA4BhE,OAAO,CAACoB,QAApC,IAAgDqB,QAAQ,CAACzH,MAAT,IAAmBuJ,MAAM,CAACvE,OAAO,CAACoB,QAAT,CAAN,CAAyBpG,MAAhG,EAAwG;AACtGiF,YAAAA,WAAW,CAACpF,OAAZ,GAAsB,EAAtB;;AACA,gBAAIwJ,cAAJ,EAAoB;AAClB1G,cAAAA,YAAY,CAACsF,SAAb;AACD;AACF,WALD,MAKO;AACLhD,YAAAA,WAAW,CAACpF,OAAZ,GAAsB4H,QAAtB;AACD;;AACD;AACD;AAhEH;AAkED,GAzED;;AA2EA,MAAI+B,OAAO,GAAG,MAAM;AAClBvE,IAAAA,WAAW,CAACpF,OAAZ,GAAsB,EAAtB;AACA4J,IAAAA,cAAc,CAACC,eAAe,CAACvK,GAAG,CAACU,OAAL,CAAhB,EAA8CV,GAAG,CAACU,OAAlD,CAAd,CAFkB,CAIlB;AACA;;AACAV,IAAAA,GAAG,CAACU,OAAJ,CAAY8J,KAAZ,CAAkBC,gBAAlB,GAAqC,MAArC;AACA,QAAIC,SAAS,GAAGC,MAAM,CAACC,YAAP,EAAhB;AACAF,IAAAA,SAAS,CAACG,QAAV,CAAmB7K,GAAG,CAACU,OAAvB;AACAV,IAAAA,GAAG,CAACU,OAAJ,CAAY8J,KAAZ,CAAkBC,gBAAlB,GAAqC,EAArC;AACD,GAVD;;AAYA,MAAIK,cAAc,GAAG/E,MAAM,CAAC,EAAD,CAA3B,CAlOyL,CAmOzL;;AACAgF,EAAAA,QAAQ,CAAC/K,GAAD,EAAM,aAAN,EAAqBE,CAAC,IAAI;AAChCA,IAAAA,CAAC,CAACG,cAAF;;AAEA,YAAQH,CAAC,CAAC8K,SAAV;AACE,WAAK,uBAAL;AACA,WAAK,sBAAL;AACE,YAAIhD,MAAM,CAACI,oBAAP,CAA4BvC,OAAO,CAACO,IAApC,KAA6C,CAAC1E,KAAK,CAACwF,UAAxD,EAAoE;AAClEiB,UAAAA,SAAS;AACV;;AACD;;AACF,WAAK,uBAAL;AACE;AACA;AACA2C,QAAAA,cAAc,CAACpK,OAAf,GAAyBV,GAAG,CAACU,OAAJ,CAAYuK,WAArC,CAHF,CAKE;AACA;;AACAjL,QAAAA,GAAG,CAACU,OAAJ,CAAYuK,WAAZ,GAA0BjL,GAAG,CAACU,OAAJ,CAAYuK,WAAtC;AACA;;AACF;AACE,YAAI/K,CAAC,CAACgL,IAAF,IAAU,IAAd,EAAoB;AAClBtB,UAAAA,OAAO,CAAC1J,CAAC,CAACgL,IAAH,CAAP;AACD;;AACD;AApBJ;AAsBD,GAzBO,CAAR;AA2BAH,EAAAA,QAAQ,CAAC/K,GAAD,EAAM,OAAN,EAAgBE,CAAD,IAAmB;AACxC,QAAI;AAAC8K,MAAAA,SAAD;AAAYE,MAAAA;AAAZ,QAAoBhL,CAAxB;;AACA,YAAQ8K,SAAR;AACE,WAAK,uBAAL;AACE;AACAhL,QAAAA,GAAG,CAACU,OAAJ,CAAYuK,WAAZ,GAA0BH,cAAc,CAACpK,OAAzC,CAFF,CAIE;AACA;;AACA,YAAIsI,UAAU,CAACI,EAAD,EAAK8B,IAAL,CAAV,IAAwBlC,UAAU,CAACW,EAAD,EAAKuB,IAAL,CAAtC,EAAkD;AAChDtB,UAAAA,OAAO,CAACsB,IAAD,CAAP;AACD;;AACD;AAVJ;AAYD,GAdO,CAAR,CA/PyL,CA+QzL;AACA;;AACA,MAAI;AAAC/J,IAAAA;AAAD,MAAeC,QAAQ,CAAC;AAC1B+J,IAAAA,mBAAmB,EAAE,IADK;AAE1B9J,IAAAA,YAAY,EAAGnB,CAAD,IAAO;AACnB,UAAIA,CAAC,CAACoB,WAAF,KAAkB,OAAtB,EAA+B;AAC7BpB,QAAAA,CAAC,CAACkL,MAAF,CAASlK,KAAT;AACD;AACF,KANyB;;AAO1BK,IAAAA,OAAO,CAACrB,CAAD,EAAI;AACT,UAAIA,CAAC,CAACoB,WAAF,KAAkB,OAAtB,EAA+B;AAC7BpB,QAAAA,CAAC,CAACkL,MAAF,CAASlK,KAAT;AACD;AACF;;AAXyB,GAAD,CAA3B,CAjRyL,CA+RzL;;AACA6J,EAAAA,QAAQ,CAAC/K,GAAD,EAAM,aAAN,EAAqBE,CAAC,IAAI;AAChCA,IAAAA,CAAC,CAACG,cAAF;AACD,GAFO,CAAR,CAhSyL,CAoSzL;;AACA,MAAIgL,kBAAkB,GAAGC,KAAK,MAAMzF,OAAO,CAACV,IAAR,KAAiB,cAA5B,GAA6C;AACpE9B,IAAAA,IAAI,EAAE,SAD8D;AAEpE,qBAAiB,IAFmD;AAGpE,qBAAiB,IAHmD;AAIpE,sBAAkB,IAJkD;AAKpE,qBAAiB;AALmD,GAA7C,GAMrB,EANJ;AAQA,MAAI;AAACyB,IAAAA,cAAD;AAAiB9B,IAAAA;AAAjB,MAAoC,SAASuI,GAAT,CAAaxL,KAAb,CAAxC,CA7SyL,CA+SzL;AACA;;AACA,MAAIyL,YAAY,GAAGxG,OAAO,CAAC,MAAMjF,KAAK,CAAC0L,QAAN,CAAehC,IAAf,CAAoBiC,CAAC,IAAIA,CAAC,CAACvE,UAA3B,CAAP,EAA+C,CAACpH,KAAK,CAAC0L,QAAP,CAA/C,CAA1B;;AACA,MAAI5F,OAAO,KAAK2F,YAAZ,IAA4BzL,KAAK,CAAC4L,eAAN,KAA0B,SAA1D,EAAqE;AACnE3I,IAAAA,eAAe,GAAGI,SAAlB;AACD;;AAED,MAAIX,EAAE,GAAGb,KAAK,CAACF,KAAK,CAACe,EAAP,CAAd;AACA,MAAI0E,UAAU,GAAG,CAACzF,KAAK,CAAC4B,UAAP,IAAqB,CAAC5B,KAAK,CAACwF,UAA5B,IAA0CrB,OAAO,CAACsB,UAAnE;AACA,SAAO;AACLyE,IAAAA,YAAY,EAAEpK,UAAU,CAACsF,eAAD,EAAkB3F,UAAlB;AACtBsB,MAAAA;AADsB,OAEnB4I,kBAFmB;AAGtB,uBAAiB3J,KAAK,CAAC,eAAD,CAHA;AAItB;AACA,sBAAgB3B,KAAK,CAAC4L,eAAN,KAA0B,SAA1B,GAAsC,MAAtC,GAA+CvI,SALzC;AAMtB,oBAAcyC,OAAO,CAACV,IAAR,KAAiB,SAAjB,GAA6Bc,YAAY,CAACR,EAAb,CAAgBI,OAAO,CAACV,IAAxB,CAA7B,GAA6D/B,SANrD;AAOtB,yBAAsB0B,cAAtB,SAAwCrC,EAPlB;AAQtB,0BAAoBO,eARE;AAStB,0BAAoB6C,OAAO,CAACwC,aAAR,GAAwBxC,OAAO,CAACO,IAAhC,GAAuChD,SATrC;AAUtB,uBAAiB1B,KAAK,CAACwF,UAAN,IAAoB,CAACrB,OAAO,CAACsB,UAA7B,GAA0C,MAA1C,GAAmD/D,SAV9C;AAWtByI,MAAAA,eAAe,EAAE1E,UAXK;AAYtB2E,MAAAA,8BAA8B,EAAE3E,UAZV;AAatB4E,MAAAA,UAAU,EAAE5E,UAAU,GAAG,OAAH,GAAa/D,SAbb;AActB4I,MAAAA,cAAc,EAAE7E,UAAU,GAAG,KAAH,GAAW/D,SAdf;AAetB6I,MAAAA,WAAW,EAAE9E,UAAU,GAAG,KAAH,GAAW/D,SAfZ;AAgBtB;AACA,OAAC8I,QAAQ,CAACC,MAAK,CAACC,OAAP,EAAgB,EAAhB,CAAR,IAA+B,EAA/B,GAAoC,cAApC,GAAqD,cAAtD,GAAuEjF,UAAU,GAAG,MAAH,GAAY/D,SAjBvE;AAkBtBiJ,MAAAA,SAAS,EAAE3K,KAAK,CAAC4B,UAAN,IAAoBuC,OAAO,CAACV,IAAR,KAAiB,WAArC,IAAoD,CAACgC,UAArD,GAAkE/D,SAAlE,GAA8E,SAlBnE;AAmBtBkJ,MAAAA,QAAQ,EAAE5K,KAAK,CAAC4B,UAAN,GAAmBF,SAAnB,GAA+B,CAnBnB;AAoBtBnD,MAAAA,SApBsB;AAqBtBoK,MAAAA;AArBsB;AADnB,GAAP;AAyBD;AC5VD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAqBO,SAASkC,kBAAT,CAAiD7K,KAAjD,EAAqF3B,KAArF,EAAkHC,GAAlH,EAAuK;AAC5K,MAAI8B,aAAa,GAAGC,mBAAmB,CAACC,iDAAD,CAAvC;AACA,MAAI;AAACC,IAAAA,UAAD;AAAaC,IAAAA,UAAb;AAAyBC,IAAAA,gBAAzB;AAA2CC,IAAAA;AAA3C,MAAgEC,QAAQ,oCACvEX,KADuE;AAE1EY,IAAAA,gBAAgB,EAAE;AAFwD,KAA5E;AAKA,MAAIE,UAAU,GAAGN,UAAU,CAAC,iBAAD,CAAV,IAAiCA,UAAU,CAACO,EAA7D;AAEA,MAAI;AAACC,IAAAA;AAAD,MAAWC,SAAS,EAAxB;AACA,MAAI6J,WAAW,GAAGzM,KAAK,CAAC+C,WAAN,CAAkBJ,MAAlB,EAA0B;AAACK,IAAAA,KAAK,EAAE;AAAR,GAA1B,CAAlB;AACA,MAAIH,SAAS,GAAGC,cAAc,CAAC2J,WAAD,CAA9B;AAEA,MAAIC,eAAe,GAAGC,SAAS,CAAC;AAC9B,kBAAc5K,aAAa,CAAC,WAAD,CADG;AAE9B,uBAAmBU;AAFW,GAAD,CAA/B;AAKA,MAAImK,aAAa,GAAGD,SAAS,CAAC;AAC5B,kBAAc5K,aAAa,CAAC,SAAD,CADC;AAE5B,uBAAmBU;AAFS,GAAD,CAA7B;AAKA,MAAIb,QAAQ,GAAGC,KAAK,EAApB;AACA,MAAIC,QAAQ,GAAGD,KAAK,EAApB;AAEA,MAAIW,UAAU,GAAG,4DAAmBxC,KAAnB,EAA0BC,GAA1B,CAAjB;AACA,MAAI;AAACiE,IAAAA;AAAD,MAAqBC,cAAc,CAAC;AACtCC,IAAAA,YAAY,GAAG;AACbpE,MAAAA,KAAK,CAACqE,kBAAN;AACD;;AAHqC,GAAD,CAAvC;AAMA,MAAIpB,eAAe,GAAG,CAACJ,SAAS,CAAC,kBAAD,CAAV,EAAgCV,UAAU,CAAC,kBAAD,CAA1C,EAAgEe,MAAhE,CAAuEC,OAAvE,EAAgFC,IAAhF,CAAqF,GAArF,KAA6FC,SAAnH;AAEA,SAAO;AACLb,IAAAA,UAAU,EAAEf,UAAU,CAACe,UAAD,EAAaL,UAAb,EAAyBU,SAAzB,EAAoCqB,gBAApC,EAAsD;AAC1EZ,MAAAA,IAAI,EAAE,OADoE;AAE1E,uBAAiB3B,KAAK,CAAC4B,UAAN,IAAoB,IAFqC;AAG1E,0BAAoBN;AAHsD,KAAtD,CADjB;AAMLf,IAAAA,UAAU,qCACLA,UADK;AAERsB,MAAAA,OAAO,EAAE,MAAM;AACb,YAAIC,YAAY,GAAGC,kBAAkB,CAACzD,GAAD,CAArC;AACAwD,QAAAA,YAAY,CAACE,UAAb;AACD;AALO,MANL;AAaLC,IAAAA,WAAW,qCACNf,SADM;AAETH,MAAAA,EAAE,EAAEd,QAFK;AAGTiC,MAAAA,mBAAmB,EAAE,IAHZ;AAIT,uBAAiB,QAJR;AAKT,oBAAc9B,aAAa,CAAC,UAAD,CALlB;AAMT,yBAAsBU,UAAtB,SAAoCb,QAN3B;AAOT,0BAAoBqB;AAPX,MAbN;AAsBLa,IAAAA,WAAW,EAAE;AACXpB,MAAAA,EAAE,EAAEZ,QADO;AAEX,yBAAsBW,UAAtB,SAAoCb;AAFzB,KAtBR;AA0BL8K,IAAAA,eAAe,qCACVA,eADU;AAEb,0BAAoBvK,UAAU,CAAC,kBAAD;AAFjB,MA1BV;AA8BLyK,IAAAA,aAAa,qCACRA,aADQ;AAEX,0BAAoBzK,UAAU,CAAC,kBAAD;AAFnB,MA9BR;AAkCLC,IAAAA,gBAlCK;AAmCLC,IAAAA;AAnCK,GAAP;AAqCD","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, string>;
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 {
@@ -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,+CAAsD,CAAC;AAEpE,6BAA6B,CAAC,SAAS,SAAS,EAAE,KAAK,EAAE,eAAe,CAAC,CAAC,EAAE,KAAK,EAAE,oBAAoB,EAAE,GAAG,EAAE,UAAU,WAAW,CAAC,GAAG,aAAa,CAmCnJ;ACrDD,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,CA2UzL;AC9UD,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"}
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.1314+0571f1cee",
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.3002+0571f1cee",
22
- "@internationalized/number": "3.0.4-nightly.3002+0571f1cee",
23
- "@react-aria/focus": "3.0.0-nightly.1314+0571f1cee",
24
- "@react-aria/i18n": "3.0.0-nightly.1314+0571f1cee",
25
- "@react-aria/interactions": "3.0.0-nightly.1314+0571f1cee",
26
- "@react-aria/label": "3.0.0-nightly.1314+0571f1cee",
27
- "@react-aria/spinbutton": "3.0.0-nightly.1314+0571f1cee",
28
- "@react-aria/utils": "3.0.0-nightly.1314+0571f1cee",
29
- "@react-stately/datepicker": "3.0.0-nightly.1314+0571f1cee",
30
- "@react-types/button": "3.4.2-nightly.3002+0571f1cee",
31
- "@react-types/datepicker": "3.0.0-nightly.1314+0571f1cee",
32
- "@react-types/dialog": "3.3.2-nightly.3002+0571f1cee",
33
- "@react-types/shared": "3.0.0-nightly.1314+0571f1cee"
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": "0571f1cee4565674086ea834327d0d59c093ea1f"
42
+ "gitHead": "84e08371d774172ae5aa7dedfb962a04efc7785b"
43
43
  }
@@ -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
- labelIds.set(state, fieldProps['aria-labelledby'] || fieldProps.id);
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': [descProps['aria-describedby'], fieldProps['aria-describedby']].filter(Boolean).join(' ') || undefined
73
+ 'aria-describedby': describedBy
68
74
  }),
69
75
  descriptionProps,
70
76
  errorMessageProps
@@ -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} - ${monthTextValue}` : monthTextValue;
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
- if (ref.current?.scrollIntoView) {
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 fieldLabelId = labelIds.get(state);
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': `${fieldLabelId} ${id}`,
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,