@fluentui/react-datepicker-compat 0.1.2 → 0.1.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.json +72 -1
- package/CHANGELOG.md +19 -2
- package/lib/components/Calendar/Calendar.js +1 -0
- package/lib/components/Calendar/Calendar.js.map +1 -1
- package/lib/components/DatePicker/useDatePicker.js +20 -25
- package/lib/components/DatePicker/useDatePicker.js.map +1 -1
- package/lib-commonjs/components/Calendar/Calendar.js +1 -0
- package/lib-commonjs/components/Calendar/Calendar.js.map +1 -1
- package/lib-commonjs/components/DatePicker/useDatePicker.js +24 -24
- package/lib-commonjs/components/DatePicker/useDatePicker.js.map +1 -1
- package/package.json +9 -9
package/CHANGELOG.json
CHANGED
|
@@ -2,7 +2,78 @@
|
|
|
2
2
|
"name": "@fluentui/react-datepicker-compat",
|
|
3
3
|
"entries": [
|
|
4
4
|
{
|
|
5
|
-
"date": "
|
|
5
|
+
"date": "Wed, 24 May 2023 20:42:37 GMT",
|
|
6
|
+
"tag": "@fluentui/react-datepicker-compat_v0.1.3",
|
|
7
|
+
"version": "0.1.3",
|
|
8
|
+
"comments": {
|
|
9
|
+
"none": [
|
|
10
|
+
{
|
|
11
|
+
"author": "olfedias@microsoft.com",
|
|
12
|
+
"package": "@fluentui/react-datepicker-compat",
|
|
13
|
+
"commit": "69e0617a93cb44ef42f3bd19284b7dc5fe27fed3",
|
|
14
|
+
"comment": "chore: update test-ssr script"
|
|
15
|
+
}
|
|
16
|
+
],
|
|
17
|
+
"patch": [
|
|
18
|
+
{
|
|
19
|
+
"author": "esteban.230@hotmail.com",
|
|
20
|
+
"package": "@fluentui/react-datepicker-compat",
|
|
21
|
+
"commit": "3f088b7b09988e7c05af1c953021acc94c273026",
|
|
22
|
+
"comment": "fix: Only apply aria-owns when popup is open."
|
|
23
|
+
},
|
|
24
|
+
{
|
|
25
|
+
"author": "esteban.230@hotmail.com",
|
|
26
|
+
"package": "@fluentui/react-datepicker-compat",
|
|
27
|
+
"commit": "cf06ea0a7e401c18e5a7f829b95dc2405ce0c867",
|
|
28
|
+
"comment": "fix: DatePicker now focuses on today's date and works inside dialogs as expected."
|
|
29
|
+
},
|
|
30
|
+
{
|
|
31
|
+
"author": "beachball",
|
|
32
|
+
"package": "@fluentui/react-datepicker-compat",
|
|
33
|
+
"comment": "Bump @fluentui/react-field to v9.1.4",
|
|
34
|
+
"commit": "3f088b7b09988e7c05af1c953021acc94c273026"
|
|
35
|
+
},
|
|
36
|
+
{
|
|
37
|
+
"author": "beachball",
|
|
38
|
+
"package": "@fluentui/react-datepicker-compat",
|
|
39
|
+
"comment": "Bump @fluentui/react-input to v9.4.14",
|
|
40
|
+
"commit": "3f088b7b09988e7c05af1c953021acc94c273026"
|
|
41
|
+
},
|
|
42
|
+
{
|
|
43
|
+
"author": "beachball",
|
|
44
|
+
"package": "@fluentui/react-datepicker-compat",
|
|
45
|
+
"comment": "Bump @fluentui/react-popover to v9.5.14",
|
|
46
|
+
"commit": "3f088b7b09988e7c05af1c953021acc94c273026"
|
|
47
|
+
},
|
|
48
|
+
{
|
|
49
|
+
"author": "beachball",
|
|
50
|
+
"package": "@fluentui/react-datepicker-compat",
|
|
51
|
+
"comment": "Bump @fluentui/react-portal to v9.2.10",
|
|
52
|
+
"commit": "3f088b7b09988e7c05af1c953021acc94c273026"
|
|
53
|
+
},
|
|
54
|
+
{
|
|
55
|
+
"author": "beachball",
|
|
56
|
+
"package": "@fluentui/react-datepicker-compat",
|
|
57
|
+
"comment": "Bump @fluentui/react-positioning to v9.5.13",
|
|
58
|
+
"commit": "3f088b7b09988e7c05af1c953021acc94c273026"
|
|
59
|
+
},
|
|
60
|
+
{
|
|
61
|
+
"author": "beachball",
|
|
62
|
+
"package": "@fluentui/react-datepicker-compat",
|
|
63
|
+
"comment": "Bump @fluentui/react-shared-contexts to v9.5.0",
|
|
64
|
+
"commit": "3f088b7b09988e7c05af1c953021acc94c273026"
|
|
65
|
+
},
|
|
66
|
+
{
|
|
67
|
+
"author": "beachball",
|
|
68
|
+
"package": "@fluentui/react-datepicker-compat",
|
|
69
|
+
"comment": "Bump @fluentui/react-tabster to v9.7.3",
|
|
70
|
+
"commit": "3f088b7b09988e7c05af1c953021acc94c273026"
|
|
71
|
+
}
|
|
72
|
+
]
|
|
73
|
+
}
|
|
74
|
+
},
|
|
75
|
+
{
|
|
76
|
+
"date": "Thu, 18 May 2023 13:11:08 GMT",
|
|
6
77
|
"tag": "@fluentui/react-datepicker-compat_v0.1.2",
|
|
7
78
|
"version": "0.1.2",
|
|
8
79
|
"comments": {
|
package/CHANGELOG.md
CHANGED
|
@@ -1,12 +1,29 @@
|
|
|
1
1
|
# Change Log - @fluentui/react-datepicker-compat
|
|
2
2
|
|
|
3
|
-
This log was last generated on
|
|
3
|
+
This log was last generated on Wed, 24 May 2023 20:42:37 GMT and should not be manually modified.
|
|
4
4
|
|
|
5
5
|
<!-- Start content -->
|
|
6
6
|
|
|
7
|
+
## [0.1.3](https://github.com/microsoft/fluentui/tree/@fluentui/react-datepicker-compat_v0.1.3)
|
|
8
|
+
|
|
9
|
+
Wed, 24 May 2023 20:42:37 GMT
|
|
10
|
+
[Compare changes](https://github.com/microsoft/fluentui/compare/@fluentui/react-datepicker-compat_v0.1.2..@fluentui/react-datepicker-compat_v0.1.3)
|
|
11
|
+
|
|
12
|
+
### Patches
|
|
13
|
+
|
|
14
|
+
- fix: Only apply aria-owns when popup is open. ([PR #27989](https://github.com/microsoft/fluentui/pull/27989) by esteban.230@hotmail.com)
|
|
15
|
+
- fix: DatePicker now focuses on today's date and works inside dialogs as expected. ([PR #27731](https://github.com/microsoft/fluentui/pull/27731) by esteban.230@hotmail.com)
|
|
16
|
+
- Bump @fluentui/react-field to v9.1.4 ([PR #27989](https://github.com/microsoft/fluentui/pull/27989) by beachball)
|
|
17
|
+
- Bump @fluentui/react-input to v9.4.14 ([PR #27989](https://github.com/microsoft/fluentui/pull/27989) by beachball)
|
|
18
|
+
- Bump @fluentui/react-popover to v9.5.14 ([PR #27989](https://github.com/microsoft/fluentui/pull/27989) by beachball)
|
|
19
|
+
- Bump @fluentui/react-portal to v9.2.10 ([PR #27989](https://github.com/microsoft/fluentui/pull/27989) by beachball)
|
|
20
|
+
- Bump @fluentui/react-positioning to v9.5.13 ([PR #27989](https://github.com/microsoft/fluentui/pull/27989) by beachball)
|
|
21
|
+
- Bump @fluentui/react-shared-contexts to v9.5.0 ([PR #27989](https://github.com/microsoft/fluentui/pull/27989) by beachball)
|
|
22
|
+
- Bump @fluentui/react-tabster to v9.7.3 ([PR #27989](https://github.com/microsoft/fluentui/pull/27989) by beachball)
|
|
23
|
+
|
|
7
24
|
## [0.1.2](https://github.com/microsoft/fluentui/tree/@fluentui/react-datepicker-compat_v0.1.2)
|
|
8
25
|
|
|
9
|
-
Thu, 18 May 2023 13:08
|
|
26
|
+
Thu, 18 May 2023 13:11:08 GMT
|
|
10
27
|
[Compare changes](https://github.com/microsoft/fluentui/compare/@fluentui/react-datepicker-compat_v0.1.1..@fluentui/react-datepicker-compat_v0.1.2)
|
|
11
28
|
|
|
12
29
|
### Patches
|
|
@@ -207,6 +207,7 @@ export const Calendar = /*#__PURE__*/React.forwardRef((props, forwardedRef) => {
|
|
|
207
207
|
ev.preventDefault();
|
|
208
208
|
break;
|
|
209
209
|
case Escape:
|
|
210
|
+
ev.stopPropagation();
|
|
210
211
|
onDismiss === null || onDismiss === void 0 ? void 0 : onDismiss();
|
|
211
212
|
break;
|
|
212
213
|
case PageUp:
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","Backspace","Enter","Escape","PageDown","PageUp","Space","useControllableState","addMonths","addYears","DateRangeType","DayOfWeek","DEFAULT_CALENDAR_STRINGS","DEFAULT_DATE_FORMATTING","FirstWeekOfYear","focusAsync","getWindow","CalendarDay","CalendarMonth","useCalendarStyles_unstable","MIN_SIZE_FORCE_OVERLAY","defaultWorkWeekDays","Monday","Tuesday","Wednesday","Thursday","Friday","useDateState","value","today","Date","onSelectDate","selectedDate","setSelectedDate","defaultState","initialState","state","navigatedDay","setNavigatedDay","useState","navigatedMonth","setNavigatedMonth","lastSelectedDate","setLastSelectedDate","valueOf","navigateMonth","date","navigateDay","onDateSelected","selectedDateRangeArray","useVisibilityState","isDayPickerVisible","isDayPickerVisibleProp","isMonthPickerVisible","isMonthPickerVisibleProp","showMonthPickerAsOverlay","setIsMonthPickerVisible","getShowMonthPickerAsOverlay","undefined","setIsDayPickerVisible","toggleDayMonthPickerVisibility","useFocusLogic","componentRef","dayPicker","useRef","monthPicker","focusOnUpdate","focus","useCallback","current","useImperativeHandle","useEffect","focusOnNextUpdate","Calendar","forwardRef","props","forwardedRef","allFocusable","calendarDayProps","calendarMonthProps","className","dateRangeType","Day","dateTimeFormatter","firstDayOfWeek","Sunday","firstWeekOfYear","FirstDay","highlightCurrentMonth","highlightSelectedMonth","id","maxDate","minDate","onDismiss","restrictedDates","showCloseButton","showGoToToday","showMonthPickerAsOverlayProp","showSixWeeksByDefault","showWeekNumbers","strings","workWeekDays","renderGoToTodayButton","goTodayEnabled","getFullYear","getMonth","createElement","classes","goTodayButton","onClick","onGotoToday","onKeyDown","onButtonKeyDown","type","disabled","goToToday","onNavigateDayDate","focusOnNavigatedDay","onNavigateMonthDate","monthPickerOnly","onHeaderSelect","callback","ev","key","onDatePickerPopupKeyDown","preventDefault","ctrlKey","todayDateString","selectedDateString","todayDateFormatString","replace","formatMonthDayYear","selectedDateFormatString","selectionAndTodayString","ref","role","root","liveRegion","navigatedDate","onNavigateDate","divider","monthPickerWrapper","displayName","win","innerWidth"],"sources":["../../../src/components/Calendar/Calendar.tsx"],"sourcesContent":["import * as React from 'react';\nimport { Backspace, Enter, Escape, PageDown, PageUp, Space } from '@fluentui/keyboard-keys';\nimport { useControllableState } from '@fluentui/react-utilities';\nimport {\n addMonths,\n addYears,\n DateRangeType,\n DayOfWeek,\n DEFAULT_CALENDAR_STRINGS,\n DEFAULT_DATE_FORMATTING,\n FirstWeekOfYear,\n focusAsync,\n getWindow,\n} from '../../utils';\nimport { CalendarDay } from '../CalendarDay/CalendarDay';\nimport { CalendarMonth } from '../CalendarMonth/CalendarMonth';\nimport { useCalendarStyles_unstable } from './useCalendarStyles.styles';\nimport type { ICalendarDay } from '../CalendarDay/CalendarDay.types';\nimport type { ICalendarMonth } from '../CalendarMonth/CalendarMonth.types';\nimport type { CalendarProps } from './Calendar.types';\n\nconst MIN_SIZE_FORCE_OVERLAY = 440;\n\nconst defaultWorkWeekDays: DayOfWeek[] = [\n DayOfWeek.Monday,\n DayOfWeek.Tuesday,\n DayOfWeek.Wednesday,\n DayOfWeek.Thursday,\n DayOfWeek.Friday,\n];\n\nfunction useDateState({ value, today = new Date(), onSelectDate }: CalendarProps) {\n /** The currently selected date in the calendar */\n const [selectedDate, setSelectedDate] = useControllableState({\n defaultState: today,\n initialState: today,\n state: value,\n });\n\n /** The currently focused date in the day picker, but not necessarily selected */\n const [navigatedDay = today, setNavigatedDay] = React.useState(value);\n\n /** The currently focused date in the month picker, but not necessarily selected */\n const [navigatedMonth = today, setNavigatedMonth] = React.useState(value);\n\n /** If using a controlled value, when that value changes, navigate to that date */\n const [lastSelectedDate = today, setLastSelectedDate] = React.useState(value);\n if (value && lastSelectedDate.valueOf() !== value.valueOf()) {\n setNavigatedDay(value);\n setNavigatedMonth(value);\n setLastSelectedDate(value);\n }\n\n const navigateMonth = (date: Date) => {\n setNavigatedMonth(date);\n };\n\n const navigateDay = (date: Date) => {\n setNavigatedMonth(date);\n setNavigatedDay(date);\n };\n\n const onDateSelected = (date: Date, selectedDateRangeArray?: Date[]) => {\n setNavigatedMonth(date);\n setNavigatedDay(date);\n setSelectedDate(date);\n onSelectDate?.(date, selectedDateRangeArray);\n };\n\n return [selectedDate, navigatedDay, navigatedMonth, onDateSelected, navigateDay, navigateMonth] as const;\n}\n\nfunction useVisibilityState({\n isDayPickerVisible: isDayPickerVisibleProp,\n isMonthPickerVisible: isMonthPickerVisibleProp,\n showMonthPickerAsOverlay,\n}: CalendarProps) {\n /** State used to show/hide month picker */\n const [isMonthPickerVisible, setIsMonthPickerVisible] = useControllableState({\n defaultState: false,\n initialState: true,\n state: getShowMonthPickerAsOverlay({ isDayPickerVisible: isDayPickerVisibleProp, showMonthPickerAsOverlay })\n ? undefined\n : isMonthPickerVisibleProp,\n });\n /** State used to show/hide day picker */\n const [isDayPickerVisible, setIsDayPickerVisible] = useControllableState({\n defaultState: true,\n initialState: true,\n state: getShowMonthPickerAsOverlay({ isDayPickerVisible: isDayPickerVisibleProp, showMonthPickerAsOverlay })\n ? undefined\n : isDayPickerVisibleProp,\n });\n\n const toggleDayMonthPickerVisibility = () => {\n setIsMonthPickerVisible(!isMonthPickerVisible);\n setIsDayPickerVisible(!isDayPickerVisible);\n };\n\n return [isMonthPickerVisible, isDayPickerVisible, toggleDayMonthPickerVisibility] as const;\n}\n\nfunction useFocusLogic({ componentRef }: CalendarProps, isDayPickerVisible: boolean, isMonthPickerVisible: boolean) {\n const dayPicker = React.useRef<ICalendarDay>(null);\n const monthPicker = React.useRef<ICalendarMonth>(null);\n const focusOnUpdate = React.useRef(false);\n\n const focus = React.useCallback(() => {\n if (isDayPickerVisible && dayPicker.current) {\n focusAsync(dayPicker.current);\n } else if (isMonthPickerVisible && monthPicker.current) {\n focusAsync(monthPicker.current);\n }\n }, [isDayPickerVisible, isMonthPickerVisible]);\n\n React.useImperativeHandle(componentRef, () => ({ focus }), [focus]);\n\n React.useEffect(() => {\n if (focusOnUpdate.current) {\n focus();\n focusOnUpdate.current = false;\n }\n });\n\n const focusOnNextUpdate = () => {\n focusOnUpdate.current = true;\n };\n\n return [dayPicker, monthPicker, focusOnNextUpdate] as const;\n}\n\n/**\n * @internal\n */\nexport const Calendar: React.FunctionComponent<CalendarProps> = React.forwardRef<HTMLDivElement, CalendarProps>(\n (props, forwardedRef) => {\n const {\n allFocusable = false,\n calendarDayProps,\n calendarMonthProps,\n className,\n componentRef,\n dateRangeType = DateRangeType.Day,\n dateTimeFormatter = DEFAULT_DATE_FORMATTING,\n firstDayOfWeek = DayOfWeek.Sunday,\n firstWeekOfYear = FirstWeekOfYear.FirstDay,\n highlightCurrentMonth = false,\n highlightSelectedMonth = false,\n id,\n isDayPickerVisible: isDayPickerVisibleProp = true,\n isMonthPickerVisible: isMonthPickerVisibleProp = true,\n maxDate,\n minDate,\n onDismiss,\n onSelectDate,\n restrictedDates,\n showCloseButton = false,\n showGoToToday = true,\n showMonthPickerAsOverlay: showMonthPickerAsOverlayProp = false,\n showSixWeeksByDefault = false,\n showWeekNumbers = false,\n strings = DEFAULT_CALENDAR_STRINGS,\n today = new Date(),\n value,\n workWeekDays = defaultWorkWeekDays,\n } = props;\n\n const [selectedDate, navigatedDay, navigatedMonth, onDateSelected, navigateDay, navigateMonth] = useDateState({\n onSelectDate,\n value,\n today,\n });\n const [isMonthPickerVisible, isDayPickerVisible, toggleDayMonthPickerVisibility] = useVisibilityState({\n isDayPickerVisible: isDayPickerVisibleProp,\n isMonthPickerVisible: isMonthPickerVisibleProp,\n showMonthPickerAsOverlay: showMonthPickerAsOverlayProp,\n });\n const [dayPicker, monthPicker, focusOnNextUpdate] = useFocusLogic(\n { componentRef },\n isDayPickerVisible,\n isMonthPickerVisible,\n );\n\n const renderGoToTodayButton = () => {\n let goTodayEnabled = showGoToToday;\n\n if (goTodayEnabled && today) {\n goTodayEnabled =\n navigatedDay.getFullYear() !== today.getFullYear() ||\n navigatedDay.getMonth() !== today.getMonth() ||\n navigatedMonth.getFullYear() !== today.getFullYear() ||\n navigatedMonth.getMonth() !== today.getMonth();\n }\n\n return (\n showGoToToday && (\n <button\n className={classes.goTodayButton}\n onClick={onGotoToday}\n onKeyDown={onButtonKeyDown(onGotoToday)}\n type=\"button\"\n disabled={!goTodayEnabled}\n >\n {strings!.goToToday}\n </button>\n )\n );\n };\n\n const onNavigateDayDate = (date: Date, focusOnNavigatedDay: boolean): void => {\n navigateDay(date);\n if (focusOnNavigatedDay) {\n focusOnNextUpdate();\n }\n };\n\n const onNavigateMonthDate = (date: Date, focusOnNavigatedDay: boolean): void => {\n if (focusOnNavigatedDay) {\n focusOnNextUpdate();\n }\n\n if (!focusOnNavigatedDay) {\n navigateMonth(date);\n return;\n }\n\n if (monthPickerOnly) {\n onDateSelected(date);\n }\n\n navigateDay(date);\n };\n\n const onHeaderSelect = getShowMonthPickerAsOverlay({\n isDayPickerVisible: isDayPickerVisibleProp,\n showMonthPickerAsOverlay: showMonthPickerAsOverlayProp,\n })\n ? (): void => {\n toggleDayMonthPickerVisibility();\n\n focusOnNextUpdate();\n }\n : undefined;\n\n const onGotoToday = (): void => {\n navigateDay(today!);\n focusOnNextUpdate();\n };\n\n const onButtonKeyDown = (callback: () => void): ((ev: React.KeyboardEvent<HTMLButtonElement>) => void) => {\n return (ev: React.KeyboardEvent<HTMLButtonElement>) => {\n switch (ev.key) {\n case Enter:\n case Space:\n callback();\n break;\n }\n };\n };\n\n const onDatePickerPopupKeyDown = (ev: React.KeyboardEvent<HTMLElement>): void => {\n switch (ev.key) {\n case Enter:\n ev.preventDefault();\n break;\n\n case Backspace:\n ev.preventDefault();\n break;\n\n case Escape:\n onDismiss?.();\n break;\n\n case PageUp:\n if (ev.ctrlKey) {\n // go to next year\n navigateDay(addYears(navigatedDay, 1));\n } else {\n // go to next month\n navigateDay(addMonths(navigatedDay, 1));\n }\n ev.preventDefault();\n break;\n case PageDown:\n if (ev.ctrlKey) {\n // go to previous year\n navigateDay(addYears(navigatedDay, -1));\n } else {\n // go to previous month\n navigateDay(addMonths(navigatedDay, -1));\n }\n ev.preventDefault();\n break;\n default:\n break;\n }\n };\n const showMonthPickerAsOverlay = getShowMonthPickerAsOverlay(props);\n\n const monthPickerOnly = !showMonthPickerAsOverlay && !isDayPickerVisible;\n\n const classes = useCalendarStyles_unstable({\n className,\n isDayPickerVisible,\n isMonthPickerVisible,\n showWeekNumbers,\n });\n\n let todayDateString: string = '';\n let selectedDateString: string = '';\n if (dateTimeFormatter && strings!.todayDateFormatString) {\n todayDateString = strings!.todayDateFormatString.replace(\n '{0}',\n dateTimeFormatter.formatMonthDayYear(today, strings!),\n );\n }\n if (dateTimeFormatter && strings!.selectedDateFormatString) {\n selectedDateString = strings!.selectedDateFormatString.replace(\n '{0}',\n dateTimeFormatter.formatMonthDayYear(selectedDate, strings!),\n );\n }\n const selectionAndTodayString = selectedDateString + ', ' + todayDateString;\n\n return (\n <div\n id={id}\n ref={forwardedRef}\n role=\"group\"\n aria-label={selectionAndTodayString}\n className={classes.root}\n onKeyDown={onDatePickerPopupKeyDown}\n >\n <div className={classes.liveRegion} aria-live=\"polite\" aria-atomic=\"true\">\n <span>{selectedDateString}</span>\n </div>\n {isDayPickerVisible && (\n <CalendarDay\n selectedDate={selectedDate!}\n navigatedDate={navigatedDay!}\n today={today}\n onSelectDate={onDateSelected}\n // eslint-disable-next-line react/jsx-no-bind\n onNavigateDate={onNavigateDayDate}\n onDismiss={onDismiss}\n firstDayOfWeek={firstDayOfWeek!}\n dateRangeType={dateRangeType!}\n strings={strings!}\n // eslint-disable-next-line react/jsx-no-bind\n onHeaderSelect={onHeaderSelect}\n showWeekNumbers={showWeekNumbers}\n firstWeekOfYear={firstWeekOfYear!}\n dateTimeFormatter={dateTimeFormatter!}\n showSixWeeksByDefault={showSixWeeksByDefault}\n minDate={minDate}\n maxDate={maxDate}\n restrictedDates={restrictedDates}\n workWeekDays={workWeekDays}\n componentRef={dayPicker}\n showCloseButton={showCloseButton}\n allFocusable={allFocusable}\n {...calendarDayProps} // at end of list so consumer's custom functions take precedence\n />\n )}\n {isDayPickerVisible && isMonthPickerVisible && <div className={classes.divider} />}\n {isMonthPickerVisible ? (\n <div className={classes.monthPickerWrapper}>\n <CalendarMonth\n navigatedDate={navigatedMonth}\n selectedDate={navigatedDay}\n strings={strings!}\n // eslint-disable-next-line react/jsx-no-bind\n onNavigateDate={onNavigateMonthDate}\n today={today}\n highlightCurrentMonth={highlightCurrentMonth!}\n highlightSelectedMonth={highlightSelectedMonth!}\n // eslint-disable-next-line react/jsx-no-bind\n onHeaderSelect={onHeaderSelect}\n dateTimeFormatter={dateTimeFormatter!}\n minDate={minDate}\n maxDate={maxDate}\n componentRef={monthPicker}\n {...calendarMonthProps} // at end of list so consumer's custom functions take precedence\n />\n {renderGoToTodayButton()}\n </div>\n ) : (\n renderGoToTodayButton()\n )}\n </div>\n );\n },\n);\nCalendar.displayName = 'Calendar';\n\nfunction getShowMonthPickerAsOverlay({ isDayPickerVisible, showMonthPickerAsOverlay }: CalendarProps) {\n const win = getWindow();\n return showMonthPickerAsOverlay || (isDayPickerVisible && win && win.innerWidth <= MIN_SIZE_FORCE_OVERLAY);\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"names":["React","Backspace","Enter","Escape","PageDown","PageUp","Space","useControllableState","addMonths","addYears","DateRangeType","DayOfWeek","DEFAULT_CALENDAR_STRINGS","DEFAULT_DATE_FORMATTING","FirstWeekOfYear","focusAsync","getWindow","CalendarDay","CalendarMonth","useCalendarStyles_unstable","MIN_SIZE_FORCE_OVERLAY","defaultWorkWeekDays","Monday","Tuesday","Wednesday","Thursday","Friday","useDateState","value","today","Date","onSelectDate","selectedDate","setSelectedDate","defaultState","initialState","state","navigatedDay","setNavigatedDay","useState","navigatedMonth","setNavigatedMonth","lastSelectedDate","setLastSelectedDate","valueOf","navigateMonth","date","navigateDay","onDateSelected","selectedDateRangeArray","useVisibilityState","isDayPickerVisible","isDayPickerVisibleProp","isMonthPickerVisible","isMonthPickerVisibleProp","showMonthPickerAsOverlay","setIsMonthPickerVisible","getShowMonthPickerAsOverlay","undefined","setIsDayPickerVisible","toggleDayMonthPickerVisibility","useFocusLogic","componentRef","dayPicker","useRef","monthPicker","focusOnUpdate","focus","useCallback","current","useImperativeHandle","useEffect","focusOnNextUpdate","Calendar","forwardRef","props","forwardedRef","allFocusable","calendarDayProps","calendarMonthProps","className","dateRangeType","Day","dateTimeFormatter","firstDayOfWeek","Sunday","firstWeekOfYear","FirstDay","highlightCurrentMonth","highlightSelectedMonth","id","maxDate","minDate","onDismiss","restrictedDates","showCloseButton","showGoToToday","showMonthPickerAsOverlayProp","showSixWeeksByDefault","showWeekNumbers","strings","workWeekDays","renderGoToTodayButton","goTodayEnabled","getFullYear","getMonth","createElement","classes","goTodayButton","onClick","onGotoToday","onKeyDown","onButtonKeyDown","type","disabled","goToToday","onNavigateDayDate","focusOnNavigatedDay","onNavigateMonthDate","monthPickerOnly","onHeaderSelect","callback","ev","key","onDatePickerPopupKeyDown","preventDefault","stopPropagation","ctrlKey","todayDateString","selectedDateString","todayDateFormatString","replace","formatMonthDayYear","selectedDateFormatString","selectionAndTodayString","ref","role","root","liveRegion","navigatedDate","onNavigateDate","divider","monthPickerWrapper","displayName","win","innerWidth"],"sources":["../../../src/components/Calendar/Calendar.tsx"],"sourcesContent":["import * as React from 'react';\nimport { Backspace, Enter, Escape, PageDown, PageUp, Space } from '@fluentui/keyboard-keys';\nimport { useControllableState } from '@fluentui/react-utilities';\nimport {\n addMonths,\n addYears,\n DateRangeType,\n DayOfWeek,\n DEFAULT_CALENDAR_STRINGS,\n DEFAULT_DATE_FORMATTING,\n FirstWeekOfYear,\n focusAsync,\n getWindow,\n} from '../../utils';\nimport { CalendarDay } from '../CalendarDay/CalendarDay';\nimport { CalendarMonth } from '../CalendarMonth/CalendarMonth';\nimport { useCalendarStyles_unstable } from './useCalendarStyles.styles';\nimport type { ICalendarDay } from '../CalendarDay/CalendarDay.types';\nimport type { ICalendarMonth } from '../CalendarMonth/CalendarMonth.types';\nimport type { CalendarProps } from './Calendar.types';\n\nconst MIN_SIZE_FORCE_OVERLAY = 440;\n\nconst defaultWorkWeekDays: DayOfWeek[] = [\n DayOfWeek.Monday,\n DayOfWeek.Tuesday,\n DayOfWeek.Wednesday,\n DayOfWeek.Thursday,\n DayOfWeek.Friday,\n];\n\nfunction useDateState({ value, today = new Date(), onSelectDate }: CalendarProps) {\n /** The currently selected date in the calendar */\n const [selectedDate, setSelectedDate] = useControllableState({\n defaultState: today,\n initialState: today,\n state: value,\n });\n\n /** The currently focused date in the day picker, but not necessarily selected */\n const [navigatedDay = today, setNavigatedDay] = React.useState(value);\n\n /** The currently focused date in the month picker, but not necessarily selected */\n const [navigatedMonth = today, setNavigatedMonth] = React.useState(value);\n\n /** If using a controlled value, when that value changes, navigate to that date */\n const [lastSelectedDate = today, setLastSelectedDate] = React.useState(value);\n if (value && lastSelectedDate.valueOf() !== value.valueOf()) {\n setNavigatedDay(value);\n setNavigatedMonth(value);\n setLastSelectedDate(value);\n }\n\n const navigateMonth = (date: Date) => {\n setNavigatedMonth(date);\n };\n\n const navigateDay = (date: Date) => {\n setNavigatedMonth(date);\n setNavigatedDay(date);\n };\n\n const onDateSelected = (date: Date, selectedDateRangeArray?: Date[]) => {\n setNavigatedMonth(date);\n setNavigatedDay(date);\n setSelectedDate(date);\n onSelectDate?.(date, selectedDateRangeArray);\n };\n\n return [selectedDate, navigatedDay, navigatedMonth, onDateSelected, navigateDay, navigateMonth] as const;\n}\n\nfunction useVisibilityState({\n isDayPickerVisible: isDayPickerVisibleProp,\n isMonthPickerVisible: isMonthPickerVisibleProp,\n showMonthPickerAsOverlay,\n}: CalendarProps) {\n /** State used to show/hide month picker */\n const [isMonthPickerVisible, setIsMonthPickerVisible] = useControllableState({\n defaultState: false,\n initialState: true,\n state: getShowMonthPickerAsOverlay({ isDayPickerVisible: isDayPickerVisibleProp, showMonthPickerAsOverlay })\n ? undefined\n : isMonthPickerVisibleProp,\n });\n /** State used to show/hide day picker */\n const [isDayPickerVisible, setIsDayPickerVisible] = useControllableState({\n defaultState: true,\n initialState: true,\n state: getShowMonthPickerAsOverlay({ isDayPickerVisible: isDayPickerVisibleProp, showMonthPickerAsOverlay })\n ? undefined\n : isDayPickerVisibleProp,\n });\n\n const toggleDayMonthPickerVisibility = () => {\n setIsMonthPickerVisible(!isMonthPickerVisible);\n setIsDayPickerVisible(!isDayPickerVisible);\n };\n\n return [isMonthPickerVisible, isDayPickerVisible, toggleDayMonthPickerVisibility] as const;\n}\n\nfunction useFocusLogic({ componentRef }: CalendarProps, isDayPickerVisible: boolean, isMonthPickerVisible: boolean) {\n const dayPicker = React.useRef<ICalendarDay>(null);\n const monthPicker = React.useRef<ICalendarMonth>(null);\n const focusOnUpdate = React.useRef(false);\n\n const focus = React.useCallback(() => {\n if (isDayPickerVisible && dayPicker.current) {\n focusAsync(dayPicker.current);\n } else if (isMonthPickerVisible && monthPicker.current) {\n focusAsync(monthPicker.current);\n }\n }, [isDayPickerVisible, isMonthPickerVisible]);\n\n React.useImperativeHandle(componentRef, () => ({ focus }), [focus]);\n\n React.useEffect(() => {\n if (focusOnUpdate.current) {\n focus();\n focusOnUpdate.current = false;\n }\n });\n\n const focusOnNextUpdate = () => {\n focusOnUpdate.current = true;\n };\n\n return [dayPicker, monthPicker, focusOnNextUpdate] as const;\n}\n\n/**\n * @internal\n */\nexport const Calendar: React.FunctionComponent<CalendarProps> = React.forwardRef<HTMLDivElement, CalendarProps>(\n (props, forwardedRef) => {\n const {\n allFocusable = false,\n calendarDayProps,\n calendarMonthProps,\n className,\n componentRef,\n dateRangeType = DateRangeType.Day,\n dateTimeFormatter = DEFAULT_DATE_FORMATTING,\n firstDayOfWeek = DayOfWeek.Sunday,\n firstWeekOfYear = FirstWeekOfYear.FirstDay,\n highlightCurrentMonth = false,\n highlightSelectedMonth = false,\n id,\n isDayPickerVisible: isDayPickerVisibleProp = true,\n isMonthPickerVisible: isMonthPickerVisibleProp = true,\n maxDate,\n minDate,\n onDismiss,\n onSelectDate,\n restrictedDates,\n showCloseButton = false,\n showGoToToday = true,\n showMonthPickerAsOverlay: showMonthPickerAsOverlayProp = false,\n showSixWeeksByDefault = false,\n showWeekNumbers = false,\n strings = DEFAULT_CALENDAR_STRINGS,\n today = new Date(),\n value,\n workWeekDays = defaultWorkWeekDays,\n } = props;\n\n const [selectedDate, navigatedDay, navigatedMonth, onDateSelected, navigateDay, navigateMonth] = useDateState({\n onSelectDate,\n value,\n today,\n });\n const [isMonthPickerVisible, isDayPickerVisible, toggleDayMonthPickerVisibility] = useVisibilityState({\n isDayPickerVisible: isDayPickerVisibleProp,\n isMonthPickerVisible: isMonthPickerVisibleProp,\n showMonthPickerAsOverlay: showMonthPickerAsOverlayProp,\n });\n const [dayPicker, monthPicker, focusOnNextUpdate] = useFocusLogic(\n { componentRef },\n isDayPickerVisible,\n isMonthPickerVisible,\n );\n\n const renderGoToTodayButton = () => {\n let goTodayEnabled = showGoToToday;\n\n if (goTodayEnabled && today) {\n goTodayEnabled =\n navigatedDay.getFullYear() !== today.getFullYear() ||\n navigatedDay.getMonth() !== today.getMonth() ||\n navigatedMonth.getFullYear() !== today.getFullYear() ||\n navigatedMonth.getMonth() !== today.getMonth();\n }\n\n return (\n showGoToToday && (\n <button\n className={classes.goTodayButton}\n onClick={onGotoToday}\n onKeyDown={onButtonKeyDown(onGotoToday)}\n type=\"button\"\n disabled={!goTodayEnabled}\n >\n {strings!.goToToday}\n </button>\n )\n );\n };\n\n const onNavigateDayDate = (date: Date, focusOnNavigatedDay: boolean): void => {\n navigateDay(date);\n if (focusOnNavigatedDay) {\n focusOnNextUpdate();\n }\n };\n\n const onNavigateMonthDate = (date: Date, focusOnNavigatedDay: boolean): void => {\n if (focusOnNavigatedDay) {\n focusOnNextUpdate();\n }\n\n if (!focusOnNavigatedDay) {\n navigateMonth(date);\n return;\n }\n\n if (monthPickerOnly) {\n onDateSelected(date);\n }\n\n navigateDay(date);\n };\n\n const onHeaderSelect = getShowMonthPickerAsOverlay({\n isDayPickerVisible: isDayPickerVisibleProp,\n showMonthPickerAsOverlay: showMonthPickerAsOverlayProp,\n })\n ? (): void => {\n toggleDayMonthPickerVisibility();\n\n focusOnNextUpdate();\n }\n : undefined;\n\n const onGotoToday = (): void => {\n navigateDay(today!);\n focusOnNextUpdate();\n };\n\n const onButtonKeyDown = (callback: () => void): ((ev: React.KeyboardEvent<HTMLButtonElement>) => void) => {\n return (ev: React.KeyboardEvent<HTMLButtonElement>) => {\n switch (ev.key) {\n case Enter:\n case Space:\n callback();\n break;\n }\n };\n };\n\n const onDatePickerPopupKeyDown = (ev: React.KeyboardEvent<HTMLElement>): void => {\n switch (ev.key) {\n case Enter:\n ev.preventDefault();\n break;\n\n case Backspace:\n ev.preventDefault();\n break;\n\n case Escape:\n ev.stopPropagation();\n onDismiss?.();\n break;\n\n case PageUp:\n if (ev.ctrlKey) {\n // go to next year\n navigateDay(addYears(navigatedDay, 1));\n } else {\n // go to next month\n navigateDay(addMonths(navigatedDay, 1));\n }\n ev.preventDefault();\n break;\n case PageDown:\n if (ev.ctrlKey) {\n // go to previous year\n navigateDay(addYears(navigatedDay, -1));\n } else {\n // go to previous month\n navigateDay(addMonths(navigatedDay, -1));\n }\n ev.preventDefault();\n break;\n default:\n break;\n }\n };\n const showMonthPickerAsOverlay = getShowMonthPickerAsOverlay(props);\n\n const monthPickerOnly = !showMonthPickerAsOverlay && !isDayPickerVisible;\n\n const classes = useCalendarStyles_unstable({\n className,\n isDayPickerVisible,\n isMonthPickerVisible,\n showWeekNumbers,\n });\n\n let todayDateString: string = '';\n let selectedDateString: string = '';\n if (dateTimeFormatter && strings!.todayDateFormatString) {\n todayDateString = strings!.todayDateFormatString.replace(\n '{0}',\n dateTimeFormatter.formatMonthDayYear(today, strings!),\n );\n }\n if (dateTimeFormatter && strings!.selectedDateFormatString) {\n selectedDateString = strings!.selectedDateFormatString.replace(\n '{0}',\n dateTimeFormatter.formatMonthDayYear(selectedDate, strings!),\n );\n }\n const selectionAndTodayString = selectedDateString + ', ' + todayDateString;\n\n return (\n <div\n id={id}\n ref={forwardedRef}\n role=\"group\"\n aria-label={selectionAndTodayString}\n className={classes.root}\n onKeyDown={onDatePickerPopupKeyDown}\n >\n <div className={classes.liveRegion} aria-live=\"polite\" aria-atomic=\"true\">\n <span>{selectedDateString}</span>\n </div>\n {isDayPickerVisible && (\n <CalendarDay\n selectedDate={selectedDate!}\n navigatedDate={navigatedDay!}\n today={today}\n onSelectDate={onDateSelected}\n // eslint-disable-next-line react/jsx-no-bind\n onNavigateDate={onNavigateDayDate}\n onDismiss={onDismiss}\n firstDayOfWeek={firstDayOfWeek!}\n dateRangeType={dateRangeType!}\n strings={strings!}\n // eslint-disable-next-line react/jsx-no-bind\n onHeaderSelect={onHeaderSelect}\n showWeekNumbers={showWeekNumbers}\n firstWeekOfYear={firstWeekOfYear!}\n dateTimeFormatter={dateTimeFormatter!}\n showSixWeeksByDefault={showSixWeeksByDefault}\n minDate={minDate}\n maxDate={maxDate}\n restrictedDates={restrictedDates}\n workWeekDays={workWeekDays}\n componentRef={dayPicker}\n showCloseButton={showCloseButton}\n allFocusable={allFocusable}\n {...calendarDayProps} // at end of list so consumer's custom functions take precedence\n />\n )}\n {isDayPickerVisible && isMonthPickerVisible && <div className={classes.divider} />}\n {isMonthPickerVisible ? (\n <div className={classes.monthPickerWrapper}>\n <CalendarMonth\n navigatedDate={navigatedMonth}\n selectedDate={navigatedDay}\n strings={strings!}\n // eslint-disable-next-line react/jsx-no-bind\n onNavigateDate={onNavigateMonthDate}\n today={today}\n highlightCurrentMonth={highlightCurrentMonth!}\n highlightSelectedMonth={highlightSelectedMonth!}\n // eslint-disable-next-line react/jsx-no-bind\n onHeaderSelect={onHeaderSelect}\n dateTimeFormatter={dateTimeFormatter!}\n minDate={minDate}\n maxDate={maxDate}\n componentRef={monthPicker}\n {...calendarMonthProps} // at end of list so consumer's custom functions take precedence\n />\n {renderGoToTodayButton()}\n </div>\n ) : (\n renderGoToTodayButton()\n )}\n </div>\n );\n },\n);\nCalendar.displayName = 'Calendar';\n\nfunction getShowMonthPickerAsOverlay({ isDayPickerVisible, showMonthPickerAsOverlay }: CalendarProps) {\n const win = getWindow();\n return showMonthPickerAsOverlay || (isDayPickerVisible && win && win.innerWidth <= MIN_SIZE_FORCE_OVERLAY);\n}\n"],"mappings":"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"}
|
|
@@ -5,10 +5,10 @@ import { CalendarMonthRegular } from '@fluentui/react-icons';
|
|
|
5
5
|
import { compareDatePart, DayOfWeek, FirstWeekOfYear } from '../../utils';
|
|
6
6
|
import { defaultDatePickerStrings } from './defaults';
|
|
7
7
|
import { Input } from '@fluentui/react-input';
|
|
8
|
-
import { mergeCallbacks, resolveShorthand, useControllableState,
|
|
8
|
+
import { mergeCallbacks, resolveShorthand, useControllableState, useId, useMergedRefs, useOnClickOutside, useOnScrollOutside } from '@fluentui/react-utilities';
|
|
9
9
|
import { useFieldContext_unstable as useFieldContext } from '@fluentui/react-field';
|
|
10
10
|
import { useFluent_unstable as useFluent } from '@fluentui/react-shared-contexts';
|
|
11
|
-
import {
|
|
11
|
+
import { useModalAttributes } from '@fluentui/react-tabster';
|
|
12
12
|
import { usePopupPositioning } from '../../utils/usePopupPositioning';
|
|
13
13
|
function isDateOutOfBounds(date, minDate, maxDate) {
|
|
14
14
|
return !!minDate && compareDatePart(minDate, date) > 0 || !!maxDate && compareDatePart(maxDate, date) < 0;
|
|
@@ -126,7 +126,7 @@ export const useDatePicker_unstable = (props, ref) => {
|
|
|
126
126
|
const fieldContext = useFieldContext();
|
|
127
127
|
var _fieldContext_required;
|
|
128
128
|
const required = (_fieldContext_required = fieldContext === null || fieldContext === void 0 ? void 0 : fieldContext.required) !== null && _fieldContext_required !== void 0 ? _fieldContext_required : props.required;
|
|
129
|
-
const popupSurfaceId = useId('datePicker-
|
|
129
|
+
const popupSurfaceId = useId('datePicker-popupSurface');
|
|
130
130
|
const validateTextInput = React.useCallback((date = null) => {
|
|
131
131
|
let error;
|
|
132
132
|
if (allowTextInput) {
|
|
@@ -249,14 +249,14 @@ export const useDatePicker_unstable = (props, ref) => {
|
|
|
249
249
|
}, [allowTextInput, disableAutoFocus, preventFocusOpeningPicker, showDatePickerPopup]);
|
|
250
250
|
const onInputClick = React.useCallback(() => {
|
|
251
251
|
// default openOnClick to !props.disableAutoFocus for legacy support of disableAutoFocus behavior
|
|
252
|
-
if ((openOnClick || !disableAutoFocus) && !open && !props.disabled) {
|
|
252
|
+
if ((props.openOnClick || !props.disableAutoFocus) && !open && !props.disabled) {
|
|
253
253
|
showDatePickerPopup();
|
|
254
254
|
return;
|
|
255
255
|
}
|
|
256
256
|
if (allowTextInput) {
|
|
257
257
|
dismissDatePickerPopup();
|
|
258
258
|
}
|
|
259
|
-
}, [allowTextInput,
|
|
259
|
+
}, [allowTextInput, dismissDatePickerPopup, open, props.disabled, props.disableAutoFocus, props.openOnClick, showDatePickerPopup]);
|
|
260
260
|
const onIconClick = ev => {
|
|
261
261
|
ev.stopPropagation();
|
|
262
262
|
if (!open && !props.disabled) {
|
|
@@ -280,8 +280,8 @@ export const useDatePicker_unstable = (props, ref) => {
|
|
|
280
280
|
readOnly: !allowTextInput,
|
|
281
281
|
role: 'combobox',
|
|
282
282
|
root: {
|
|
283
|
-
|
|
284
|
-
|
|
283
|
+
'aria-owns': open ? popupSurfaceId : undefined,
|
|
284
|
+
ref: useMergedRefs(triggerWrapperRef, ref)
|
|
285
285
|
},
|
|
286
286
|
input: {
|
|
287
287
|
ref: rootRef
|
|
@@ -326,25 +326,20 @@ export const useDatePicker_unstable = (props, ref) => {
|
|
|
326
326
|
refs: [triggerWrapperRef, popupRef],
|
|
327
327
|
disabled: !open
|
|
328
328
|
});
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
|
|
329
|
+
// When the popup is opened, focus should go to the calendar.
|
|
330
|
+
// In v8 this was done by focusing after the callout was positioned, but in v9 this can be simulated by using a
|
|
331
|
+
// useEffect hook.
|
|
332
332
|
React.useEffect(() => {
|
|
333
|
-
if (
|
|
334
|
-
|
|
333
|
+
if (open && !props.disabled && calendar.current) {
|
|
334
|
+
calendar.current.focus();
|
|
335
335
|
}
|
|
336
|
-
|
|
337
|
-
|
|
338
|
-
|
|
336
|
+
}, [disableAutoFocus, open, props.disabled]);
|
|
337
|
+
// When the popup is closed, focus should go back to the input.
|
|
338
|
+
React.useEffect(() => {
|
|
339
|
+
if (!open && !props.disabled) {
|
|
340
|
+
focus();
|
|
339
341
|
}
|
|
340
|
-
}, [
|
|
341
|
-
const popupOnClick = useEventCallback(mergeCallbacks(ev => {
|
|
342
|
-
var _rootRef_current;
|
|
343
|
-
(_rootRef_current = rootRef.current) === null || _rootRef_current === void 0 ? void 0 : _rootRef_current.focus();
|
|
344
|
-
}, popupSurfaceShorthand === null || popupSurfaceShorthand === void 0 ? void 0 : popupSurfaceShorthand.onClick));
|
|
345
|
-
if (popupSurfaceShorthand) {
|
|
346
|
-
popupSurfaceShorthand.onClick = popupOnClick;
|
|
347
|
-
}
|
|
342
|
+
}, [open, props.disabled, focus]);
|
|
348
343
|
const calendarShorthand = resolveShorthand(props.calendar, {
|
|
349
344
|
required: true,
|
|
350
345
|
defaultProps: {
|
|
@@ -358,7 +353,6 @@ export const useDatePicker_unstable = (props, ref) => {
|
|
|
358
353
|
isMonthPickerVisible,
|
|
359
354
|
maxDate,
|
|
360
355
|
minDate,
|
|
361
|
-
onDismiss: calendarDismissed,
|
|
362
356
|
showCloseButton,
|
|
363
357
|
showGoToToday,
|
|
364
358
|
showMonthPickerAsOverlay,
|
|
@@ -368,6 +362,8 @@ export const useDatePicker_unstable = (props, ref) => {
|
|
|
368
362
|
value: selectedDate || initialPickerDate
|
|
369
363
|
}
|
|
370
364
|
});
|
|
365
|
+
calendarShorthand.onDismiss = mergeCallbacks(calendarShorthand.onDismiss, calendarDismissed);
|
|
366
|
+
calendarShorthand.onSelectDate = mergeCallbacks(calendarShorthand.onSelectDate, calendarDismissed);
|
|
371
367
|
React.useImperativeHandle(props.componentRef, () => ({
|
|
372
368
|
focus,
|
|
373
369
|
reset() {
|
|
@@ -389,7 +385,6 @@ export const useDatePicker_unstable = (props, ref) => {
|
|
|
389
385
|
popupSurface: popupSurfaceShorthand
|
|
390
386
|
};
|
|
391
387
|
state.root.value = formattedDate;
|
|
392
|
-
state.calendar.onSelectDate = mergeCallbacks(state.calendar.onSelectDate, calendarDismissed);
|
|
393
388
|
return state;
|
|
394
389
|
};
|
|
395
390
|
//# sourceMappingURL=useDatePicker.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","ArrowDown","Enter","Escape","Calendar","CalendarMonthRegular","compareDatePart","DayOfWeek","FirstWeekOfYear","defaultDatePickerStrings","Input","mergeCallbacks","resolveShorthand","useControllableState","useEventCallback","useId","useMergedRefs","useOnClickOutside","useOnScrollOutside","useFieldContext_unstable","useFieldContext","useFluent_unstable","useFluent","useFocusFinders","useModalAttributes","usePopupPositioning","isDateOutOfBounds","date","minDate","maxDate","useFocusLogic","inputRef","useRef","preventFocusOpeningPicker","focus","_inputRef_current","_inputRef_current_focus","current","call","preventNextFocusOpeningPicker","usePopupVisibility","props","open","setOpen","initialState","defaultState","defaultOpen","state","isMounted","useEffect","_props_onOpenChange","onOpenChange","allowTextInput","useSelectedDate","formatDate","onSelectDate","value","selectedDate","setSelectedDateState","undefined","formattedDate","setFormattedDate","useState","setSelectedDate","newDate","defaultFormatDate","toDateString","defaultParseDateFromString","dateStr","Date","parse","useDatePicker_unstable","ref","allFocusable","borderless","dateTimeFormatter","disableAutoFocus","firstDayOfWeek","Sunday","firstWeekOfYear","FirstDay","highlightCurrentMonth","highlightSelectedMonth","initialPickerDate","inlinePopup","isMonthPickerVisible","onUserSelectDate","openOnClick","onValidationResult","parseDateFromString","showCloseButton","showGoToToday","showMonthPickerAsOverlay","showWeekNumbers","strings","today","underlined","restOfProps","calendar","rootRef","setOpenState","fieldContext","_fieldContext_required","required","popupSurfaceId","validateTextInput","useCallback","error","isNaN","getTime","newState","dismissDatePickerPopup","newlySelectedDate","showDatePickerPopup","calendarDismissed","onInputChange","ev","data","newValue","onInputBlur","onInputKeyDown","key","preventDefault","stopPropagation","altKey","onInputFocus","onInputClick","disabled","onIconClick","inputAppearance","triggerWrapperRef","popupRef","rootShorthand","defaultProps","appearance","contentAfter","createElement","onClick","readOnly","role","root","input","onChange","onBlur","onKeyDown","onFocus","modalAttributes","trapFocus","alwaysFocusable","legacyTrapFocus","popupSurfaceShorthand","popupSurface","id","targetDocument","element","callback","refs","findFirstFocusable","firstFocusable","popupOnClick","_rootRef_current","calendarShorthand","componentRef","onDismiss","useImperativeHandle","reset","components"],"sources":["../../../src/components/DatePicker/useDatePicker.tsx"],"sourcesContent":["import * as React from 'react';\nimport { ArrowDown, Enter, Escape } from '@fluentui/keyboard-keys';\nimport { Calendar } from '../Calendar/Calendar';\nimport { CalendarMonthRegular } from '@fluentui/react-icons';\nimport { compareDatePart, DayOfWeek, FirstWeekOfYear } from '../../utils';\nimport { defaultDatePickerStrings } from './defaults';\nimport { Input } from '@fluentui/react-input';\nimport {\n mergeCallbacks,\n resolveShorthand,\n useControllableState,\n useEventCallback,\n useId,\n useMergedRefs,\n useOnClickOutside,\n useOnScrollOutside,\n} from '@fluentui/react-utilities';\nimport { useFieldContext_unstable as useFieldContext } from '@fluentui/react-field';\nimport { useFluent_unstable as useFluent } from '@fluentui/react-shared-contexts';\nimport { useFocusFinders, useModalAttributes } from '@fluentui/react-tabster';\nimport { usePopupPositioning } from '../../utils/usePopupPositioning';\nimport type { CalendarProps, ICalendar } from '../Calendar/Calendar.types';\nimport type { DatePickerProps, DatePickerState, DatePickerValidationResultData } from './DatePicker.types';\nimport type { InputProps, InputOnChangeData } from '@fluentui/react-input';\n\nfunction isDateOutOfBounds(date: Date, minDate?: Date, maxDate?: Date): boolean {\n return (!!minDate && compareDatePart(minDate!, date) > 0) || (!!maxDate && compareDatePart(maxDate!, date) < 0);\n}\n\nfunction useFocusLogic() {\n const inputRef = React.useRef<HTMLInputElement>(null);\n const preventFocusOpeningPicker = React.useRef(false);\n\n const focus = () => {\n inputRef.current?.focus?.();\n };\n\n const preventNextFocusOpeningPicker = () => {\n preventFocusOpeningPicker.current = true;\n };\n\n return [focus, inputRef, preventFocusOpeningPicker, preventNextFocusOpeningPicker] as const;\n}\n\nfunction usePopupVisibility(props: DatePickerProps) {\n const [open, setOpen] = useControllableState({\n initialState: false,\n defaultState: props.defaultOpen,\n state: props.open,\n });\n const isMounted = React.useRef(false);\n\n React.useEffect(\n () => {\n if (isMounted.current && !open) {\n // If DatePicker's menu (Calendar) is closed, run onAfterMenuDismiss\n props.onOpenChange?.(false);\n }\n isMounted.current = true;\n },\n // Should only run on allowTextInput or open change\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [props.allowTextInput, open],\n );\n\n return [open, setOpen] as const;\n}\n\nfunction useSelectedDate({ formatDate, onSelectDate, value }: DatePickerProps) {\n const [selectedDate, setSelectedDateState] = useControllableState({\n initialState: undefined,\n state: value,\n });\n const [formattedDate, setFormattedDate] = React.useState(() => (value && formatDate ? formatDate(value) : ''));\n\n const setSelectedDate = (newDate: Date | undefined) => {\n if (\n (selectedDate === undefined && newDate !== undefined) ||\n (selectedDate !== undefined && newDate === undefined) ||\n (newDate && selectedDate && (newDate > selectedDate || newDate < selectedDate))\n ) {\n onSelectDate?.(newDate);\n }\n\n setSelectedDateState(newDate);\n setFormattedDate(newDate && formatDate ? formatDate(newDate) : '');\n };\n\n React.useEffect(() => {\n setFormattedDate(value && formatDate ? formatDate(value) : '');\n }, [formatDate, value]);\n\n return [selectedDate, formattedDate, setSelectedDate, setFormattedDate] as const;\n}\n\nconst defaultFormatDate = (date?: Date) => (date ? date.toDateString() : '');\nconst defaultParseDateFromString = (dateStr: string) => {\n const date = Date.parse(dateStr);\n return date ? new Date(date) : null;\n};\n\n/**\n * Create the state required to render DatePicker.\n *\n * The returned state can be modified with hooks such as useDatePickerStyles_unstable,\n * before being passed to renderDatePicker_unstable.\n *\n * @param props - props from this instance of DatePicker\n * @param ref - reference to root Input slot\n */\nexport const useDatePicker_unstable = (props: DatePickerProps, ref: React.Ref<HTMLElement>): DatePickerState => {\n const {\n allowTextInput = false,\n allFocusable = false,\n borderless = false,\n dateTimeFormatter,\n defaultOpen = false,\n disableAutoFocus = true,\n firstDayOfWeek = DayOfWeek.Sunday,\n firstWeekOfYear = FirstWeekOfYear.FirstDay,\n formatDate = defaultFormatDate,\n highlightCurrentMonth = false,\n highlightSelectedMonth = false,\n initialPickerDate = new Date(),\n inlinePopup = false,\n isMonthPickerVisible = true,\n maxDate,\n minDate,\n onOpenChange,\n onSelectDate: onUserSelectDate,\n openOnClick = true,\n onValidationResult,\n parseDateFromString = defaultParseDateFromString,\n showCloseButton = false,\n showGoToToday = true,\n showMonthPickerAsOverlay = false,\n showWeekNumbers = false,\n strings = defaultDatePickerStrings,\n today,\n underlined = false,\n value,\n ...restOfProps\n } = props;\n const calendar = React.useRef<ICalendar>(null);\n const [focus, rootRef, preventFocusOpeningPicker, preventNextFocusOpeningPicker] = useFocusLogic();\n const [selectedDate, formattedDate, setSelectedDate, setFormattedDate] = useSelectedDate({\n formatDate,\n onSelectDate: onUserSelectDate,\n value,\n });\n const [open, setOpenState] = usePopupVisibility(props);\n const fieldContext = useFieldContext();\n const required = fieldContext?.required ?? props.required;\n const popupSurfaceId = useId('datePicker-popoverSurface');\n\n const validateTextInput = React.useCallback(\n (date: Date | null = null): void => {\n let error: DatePickerValidationResultData['error'] | undefined;\n\n if (allowTextInput) {\n if (formattedDate || date) {\n // Don't parse if the selected date has the same formatted string as what we're about to parse.\n // The formatted string might be ambiguous (ex: \"1/2/3\" or \"New Year Eve\") and the parser might\n // not be able to come up with the exact same date.\n if (selectedDate && formatDate && formatDate(date ?? selectedDate) === formattedDate) {\n return;\n }\n date = date || parseDateFromString!(formattedDate);\n\n // Check if date is null or date is an invalid date\n if (!date || isNaN(date.getTime())) {\n // Reset input if formatting is available\n setSelectedDate(selectedDate);\n error = 'invalid-input';\n } else {\n if (isDateOutOfBounds(date, minDate, maxDate)) {\n error = 'out-of-bounds';\n } else {\n setSelectedDate(date);\n }\n }\n } else {\n if (required) {\n error = 'required-input';\n }\n\n onUserSelectDate?.(date);\n }\n } else if (required && !formattedDate) {\n error = 'required-input';\n }\n\n onValidationResult?.({ error });\n },\n [\n allowTextInput,\n formatDate,\n formattedDate,\n maxDate,\n minDate,\n onUserSelectDate,\n onValidationResult,\n parseDateFromString,\n required,\n selectedDate,\n setSelectedDate,\n ],\n );\n\n const setOpen = React.useCallback(\n (newState: boolean) => {\n onOpenChange?.(newState);\n setOpenState(newState);\n },\n [onOpenChange, setOpenState],\n );\n\n const dismissDatePickerPopup = React.useCallback(\n (newlySelectedDate?: Date): void => {\n if (open) {\n setOpen(false);\n\n validateTextInput(newlySelectedDate);\n if (!allowTextInput && newlySelectedDate) {\n setSelectedDate(newlySelectedDate);\n }\n }\n },\n [allowTextInput, open, setOpen, setSelectedDate, validateTextInput],\n );\n\n const showDatePickerPopup = React.useCallback((): void => {\n if (!open) {\n preventNextFocusOpeningPicker();\n setOpen(true);\n }\n }, [open, preventNextFocusOpeningPicker, setOpen]);\n\n /**\n * Callback for closing the calendar callout\n */\n const calendarDismissed = React.useCallback(\n (newlySelectedDate?: Date): void => {\n preventNextFocusOpeningPicker();\n dismissDatePickerPopup(newlySelectedDate);\n },\n [dismissDatePickerPopup, preventNextFocusOpeningPicker],\n );\n\n const onInputChange = React.useCallback(\n (ev: React.ChangeEvent<HTMLInputElement>, data: InputOnChangeData) => {\n const { value: newValue } = data;\n\n if (allowTextInput) {\n if (open) {\n dismissDatePickerPopup();\n }\n\n setFormattedDate(newValue);\n }\n },\n [allowTextInput, dismissDatePickerPopup, open, setFormattedDate],\n );\n\n const onInputBlur: React.FocusEventHandler<HTMLInputElement> = React.useCallback((): void => {\n validateTextInput();\n }, [validateTextInput]);\n\n const onInputKeyDown = React.useCallback(\n (ev: React.KeyboardEvent<HTMLElement>): void => {\n switch (ev.key) {\n case Enter:\n ev.preventDefault();\n ev.stopPropagation();\n if (!open) {\n validateTextInput();\n showDatePickerPopup();\n } else {\n // When DatePicker allows input date string directly,\n // it is expected to hit another enter to close the popup\n if (props.allowTextInput) {\n dismissDatePickerPopup();\n }\n }\n break;\n\n case Escape:\n ev.stopPropagation();\n ev.preventDefault();\n if (open) {\n calendarDismissed();\n }\n break;\n\n case ArrowDown:\n ev.preventDefault();\n if (ev.altKey && !open) {\n showDatePickerPopup();\n }\n break;\n\n default:\n break;\n }\n },\n [calendarDismissed, dismissDatePickerPopup, open, props.allowTextInput, showDatePickerPopup, validateTextInput],\n );\n\n const onInputFocus: React.FocusEventHandler<HTMLInputElement> = React.useCallback((): void => {\n if (disableAutoFocus) {\n return;\n }\n\n if (!allowTextInput) {\n if (!preventFocusOpeningPicker.current) {\n showDatePickerPopup();\n }\n preventFocusOpeningPicker.current = false;\n }\n }, [allowTextInput, disableAutoFocus, preventFocusOpeningPicker, showDatePickerPopup]);\n\n const onInputClick: React.MouseEventHandler<HTMLInputElement> = React.useCallback((): void => {\n // default openOnClick to !props.disableAutoFocus for legacy support of disableAutoFocus behavior\n if ((openOnClick || !disableAutoFocus) && !open && !props.disabled) {\n showDatePickerPopup();\n return;\n }\n\n if (allowTextInput) {\n dismissDatePickerPopup();\n }\n }, [\n allowTextInput,\n disableAutoFocus,\n dismissDatePickerPopup,\n openOnClick,\n open,\n props.disabled,\n showDatePickerPopup,\n ]);\n\n const onIconClick = (ev: React.MouseEvent<HTMLElement>): void => {\n ev.stopPropagation();\n if (!open && !props.disabled) {\n showDatePickerPopup();\n } else if (props.allowTextInput) {\n dismissDatePickerPopup();\n }\n };\n\n const inputAppearance: InputProps['appearance'] = underlined\n ? 'underline'\n : borderless\n ? 'filled-lighter'\n : 'outline';\n\n const [triggerWrapperRef, popupRef] = usePopupPositioning(props);\n const rootShorthand = resolveShorthand(restOfProps, {\n required: true,\n defaultProps: {\n appearance: inputAppearance,\n 'aria-controls': open ? popupSurfaceId : undefined,\n 'aria-expanded': open,\n 'aria-haspopup': 'dialog',\n contentAfter: <CalendarMonthRegular onClick={onIconClick as unknown as React.MouseEventHandler<SVGElement>} />,\n readOnly: !allowTextInput,\n role: 'combobox',\n root: {\n ref: useMergedRefs(triggerWrapperRef, ref),\n 'aria-owns': popupSurfaceId,\n },\n input: {\n ref: rootRef,\n },\n },\n });\n rootShorthand.onChange = mergeCallbacks(rootShorthand.onChange, onInputChange);\n rootShorthand.onBlur = mergeCallbacks(rootShorthand.onBlur, onInputBlur);\n rootShorthand.onKeyDown = mergeCallbacks(rootShorthand.onKeyDown, onInputKeyDown);\n rootShorthand.onFocus = mergeCallbacks(rootShorthand.onFocus, onInputFocus);\n rootShorthand.onClick = mergeCallbacks(rootShorthand.onClick, onInputClick);\n\n const { modalAttributes } = useModalAttributes({ trapFocus: true, alwaysFocusable: true, legacyTrapFocus: false });\n const popupSurfaceShorthand = open\n ? resolveShorthand(props.popupSurface, {\n required: true,\n defaultProps: {\n 'aria-label': 'Calendar',\n 'aria-modal': true,\n id: popupSurfaceId,\n role: 'dialog',\n ref: popupRef,\n ...modalAttributes,\n },\n })\n : undefined;\n\n const { targetDocument } = useFluent();\n useOnClickOutside({\n element: targetDocument,\n callback: ev => dismissDatePickerPopup(),\n refs: [triggerWrapperRef, popupRef],\n disabled: !open,\n });\n\n useOnScrollOutside({\n element: targetDocument,\n callback: ev => dismissDatePickerPopup(),\n refs: [triggerWrapperRef, popupRef],\n disabled: !open,\n });\n\n const { findFirstFocusable } = useFocusFinders();\n React.useEffect(() => {\n if (disableAutoFocus) {\n return;\n }\n\n if (open && popupRef.current) {\n const firstFocusable = findFirstFocusable(popupRef.current);\n firstFocusable?.focus();\n }\n }, [disableAutoFocus, findFirstFocusable, open, popupRef]);\n\n const popupOnClick = useEventCallback(\n mergeCallbacks((ev: React.MouseEvent<HTMLDivElement>) => {\n rootRef.current?.focus();\n }, popupSurfaceShorthand?.onClick),\n );\n\n if (popupSurfaceShorthand) {\n popupSurfaceShorthand.onClick = popupOnClick;\n }\n\n const calendarShorthand = resolveShorthand(props.calendar, {\n required: true,\n defaultProps: {\n allFocusable,\n componentRef: calendar,\n dateTimeFormatter,\n firstDayOfWeek,\n firstWeekOfYear,\n highlightCurrentMonth,\n highlightSelectedMonth,\n isMonthPickerVisible,\n maxDate,\n minDate,\n onDismiss: calendarDismissed,\n showCloseButton,\n showGoToToday,\n showMonthPickerAsOverlay,\n showWeekNumbers,\n strings,\n today,\n value: selectedDate || initialPickerDate,\n },\n });\n\n React.useImperativeHandle(\n props.componentRef,\n () => ({\n focus,\n reset() {\n setOpen(false);\n setSelectedDate(undefined);\n },\n showDatePickerPopup,\n }),\n [focus, setOpen, setSelectedDate, showDatePickerPopup],\n );\n\n const state: DatePickerState = {\n disabled: !!props.disabled,\n inlinePopup,\n\n components: {\n root: Input,\n calendar: Calendar as React.FC<Partial<CalendarProps>>,\n popupSurface: 'div',\n },\n\n calendar: calendarShorthand,\n root: rootShorthand,\n popupSurface: popupSurfaceShorthand,\n };\n\n state.root.value = formattedDate;\n state.calendar.onSelectDate = mergeCallbacks(state.calendar.onSelectDate, calendarDismissed);\n\n return state;\n};\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"names":["React","ArrowDown","Enter","Escape","Calendar","CalendarMonthRegular","compareDatePart","DayOfWeek","FirstWeekOfYear","defaultDatePickerStrings","Input","mergeCallbacks","resolveShorthand","useControllableState","useId","useMergedRefs","useOnClickOutside","useOnScrollOutside","useFieldContext_unstable","useFieldContext","useFluent_unstable","useFluent","useModalAttributes","usePopupPositioning","isDateOutOfBounds","date","minDate","maxDate","useFocusLogic","inputRef","useRef","preventFocusOpeningPicker","focus","_inputRef_current","_inputRef_current_focus","current","call","preventNextFocusOpeningPicker","usePopupVisibility","props","open","setOpen","initialState","defaultState","defaultOpen","state","isMounted","useEffect","_props_onOpenChange","onOpenChange","allowTextInput","useSelectedDate","formatDate","onSelectDate","value","selectedDate","setSelectedDateState","undefined","formattedDate","setFormattedDate","useState","setSelectedDate","newDate","defaultFormatDate","toDateString","defaultParseDateFromString","dateStr","Date","parse","useDatePicker_unstable","ref","allFocusable","borderless","dateTimeFormatter","disableAutoFocus","firstDayOfWeek","Sunday","firstWeekOfYear","FirstDay","highlightCurrentMonth","highlightSelectedMonth","initialPickerDate","inlinePopup","isMonthPickerVisible","onUserSelectDate","openOnClick","onValidationResult","parseDateFromString","showCloseButton","showGoToToday","showMonthPickerAsOverlay","showWeekNumbers","strings","today","underlined","restOfProps","calendar","rootRef","setOpenState","fieldContext","_fieldContext_required","required","popupSurfaceId","validateTextInput","useCallback","error","isNaN","getTime","newState","dismissDatePickerPopup","newlySelectedDate","showDatePickerPopup","calendarDismissed","onInputChange","ev","data","newValue","onInputBlur","onInputKeyDown","key","preventDefault","stopPropagation","altKey","onInputFocus","onInputClick","disabled","onIconClick","inputAppearance","triggerWrapperRef","popupRef","rootShorthand","defaultProps","appearance","contentAfter","createElement","onClick","readOnly","role","root","input","onChange","onBlur","onKeyDown","onFocus","modalAttributes","trapFocus","alwaysFocusable","legacyTrapFocus","popupSurfaceShorthand","popupSurface","id","targetDocument","element","callback","refs","calendarShorthand","componentRef","onDismiss","useImperativeHandle","reset","components"],"sources":["../../../src/components/DatePicker/useDatePicker.tsx"],"sourcesContent":["import * as React from 'react';\nimport { ArrowDown, Enter, Escape } from '@fluentui/keyboard-keys';\nimport { Calendar } from '../Calendar/Calendar';\nimport { CalendarMonthRegular } from '@fluentui/react-icons';\nimport { compareDatePart, DayOfWeek, FirstWeekOfYear } from '../../utils';\nimport { defaultDatePickerStrings } from './defaults';\nimport { Input } from '@fluentui/react-input';\nimport {\n mergeCallbacks,\n resolveShorthand,\n useControllableState,\n useId,\n useMergedRefs,\n useOnClickOutside,\n useOnScrollOutside,\n} from '@fluentui/react-utilities';\nimport { useFieldContext_unstable as useFieldContext } from '@fluentui/react-field';\nimport { useFluent_unstable as useFluent } from '@fluentui/react-shared-contexts';\nimport { useModalAttributes } from '@fluentui/react-tabster';\nimport { usePopupPositioning } from '../../utils/usePopupPositioning';\nimport type { CalendarProps, ICalendar } from '../Calendar/Calendar.types';\nimport type { DatePickerProps, DatePickerState, DatePickerValidationResultData } from './DatePicker.types';\nimport type { InputProps, InputOnChangeData } from '@fluentui/react-input';\n\nfunction isDateOutOfBounds(date: Date, minDate?: Date, maxDate?: Date): boolean {\n return (!!minDate && compareDatePart(minDate!, date) > 0) || (!!maxDate && compareDatePart(maxDate!, date) < 0);\n}\n\nfunction useFocusLogic() {\n const inputRef = React.useRef<HTMLInputElement>(null);\n const preventFocusOpeningPicker = React.useRef(false);\n\n const focus = () => {\n inputRef.current?.focus?.();\n };\n\n const preventNextFocusOpeningPicker = () => {\n preventFocusOpeningPicker.current = true;\n };\n\n return [focus, inputRef, preventFocusOpeningPicker, preventNextFocusOpeningPicker] as const;\n}\n\nfunction usePopupVisibility(props: DatePickerProps) {\n const [open, setOpen] = useControllableState({\n initialState: false,\n defaultState: props.defaultOpen,\n state: props.open,\n });\n const isMounted = React.useRef(false);\n\n React.useEffect(\n () => {\n if (isMounted.current && !open) {\n // If DatePicker's menu (Calendar) is closed, run onAfterMenuDismiss\n props.onOpenChange?.(false);\n }\n isMounted.current = true;\n },\n // Should only run on allowTextInput or open change\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [props.allowTextInput, open],\n );\n\n return [open, setOpen] as const;\n}\n\nfunction useSelectedDate({ formatDate, onSelectDate, value }: DatePickerProps) {\n const [selectedDate, setSelectedDateState] = useControllableState({\n initialState: undefined,\n state: value,\n });\n const [formattedDate, setFormattedDate] = React.useState(() => (value && formatDate ? formatDate(value) : ''));\n\n const setSelectedDate = (newDate: Date | undefined) => {\n if (\n (selectedDate === undefined && newDate !== undefined) ||\n (selectedDate !== undefined && newDate === undefined) ||\n (newDate && selectedDate && (newDate > selectedDate || newDate < selectedDate))\n ) {\n onSelectDate?.(newDate);\n }\n\n setSelectedDateState(newDate);\n setFormattedDate(newDate && formatDate ? formatDate(newDate) : '');\n };\n\n React.useEffect(() => {\n setFormattedDate(value && formatDate ? formatDate(value) : '');\n }, [formatDate, value]);\n\n return [selectedDate, formattedDate, setSelectedDate, setFormattedDate] as const;\n}\n\nconst defaultFormatDate = (date?: Date) => (date ? date.toDateString() : '');\nconst defaultParseDateFromString = (dateStr: string) => {\n const date = Date.parse(dateStr);\n return date ? new Date(date) : null;\n};\n\n/**\n * Create the state required to render DatePicker.\n *\n * The returned state can be modified with hooks such as useDatePickerStyles_unstable,\n * before being passed to renderDatePicker_unstable.\n *\n * @param props - props from this instance of DatePicker\n * @param ref - reference to root Input slot\n */\nexport const useDatePicker_unstable = (props: DatePickerProps, ref: React.Ref<HTMLElement>): DatePickerState => {\n const {\n allowTextInput = false,\n allFocusable = false,\n borderless = false,\n dateTimeFormatter,\n defaultOpen = false,\n disableAutoFocus = true,\n firstDayOfWeek = DayOfWeek.Sunday,\n firstWeekOfYear = FirstWeekOfYear.FirstDay,\n formatDate = defaultFormatDate,\n highlightCurrentMonth = false,\n highlightSelectedMonth = false,\n initialPickerDate = new Date(),\n inlinePopup = false,\n isMonthPickerVisible = true,\n maxDate,\n minDate,\n onOpenChange,\n onSelectDate: onUserSelectDate,\n openOnClick = true,\n onValidationResult,\n parseDateFromString = defaultParseDateFromString,\n showCloseButton = false,\n showGoToToday = true,\n showMonthPickerAsOverlay = false,\n showWeekNumbers = false,\n strings = defaultDatePickerStrings,\n today,\n underlined = false,\n value,\n ...restOfProps\n } = props;\n const calendar = React.useRef<ICalendar>(null);\n const [focus, rootRef, preventFocusOpeningPicker, preventNextFocusOpeningPicker] = useFocusLogic();\n const [selectedDate, formattedDate, setSelectedDate, setFormattedDate] = useSelectedDate({\n formatDate,\n onSelectDate: onUserSelectDate,\n value,\n });\n const [open, setOpenState] = usePopupVisibility(props);\n const fieldContext = useFieldContext();\n const required = fieldContext?.required ?? props.required;\n const popupSurfaceId = useId('datePicker-popupSurface');\n\n const validateTextInput = React.useCallback(\n (date: Date | null = null): void => {\n let error: DatePickerValidationResultData['error'];\n\n if (allowTextInput) {\n if (formattedDate || date) {\n // Don't parse if the selected date has the same formatted string as what we're about to parse.\n // The formatted string might be ambiguous (ex: \"1/2/3\" or \"New Year Eve\") and the parser might\n // not be able to come up with the exact same date.\n if (selectedDate && formatDate && formatDate(date ?? selectedDate) === formattedDate) {\n return;\n }\n date = date || parseDateFromString!(formattedDate);\n\n // Check if date is null or date is an invalid date\n if (!date || isNaN(date.getTime())) {\n // Reset input if formatting is available\n setSelectedDate(selectedDate);\n error = 'invalid-input';\n } else {\n if (isDateOutOfBounds(date, minDate, maxDate)) {\n error = 'out-of-bounds';\n } else {\n setSelectedDate(date);\n }\n }\n } else {\n if (required) {\n error = 'required-input';\n }\n\n onUserSelectDate?.(date);\n }\n } else if (required && !formattedDate) {\n error = 'required-input';\n }\n\n onValidationResult?.({ error });\n },\n [\n allowTextInput,\n formatDate,\n formattedDate,\n maxDate,\n minDate,\n onUserSelectDate,\n onValidationResult,\n parseDateFromString,\n required,\n selectedDate,\n setSelectedDate,\n ],\n );\n\n const setOpen = React.useCallback(\n (newState: boolean) => {\n onOpenChange?.(newState);\n setOpenState(newState);\n },\n [onOpenChange, setOpenState],\n );\n\n const dismissDatePickerPopup = React.useCallback(\n (newlySelectedDate?: Date): void => {\n if (open) {\n setOpen(false);\n\n validateTextInput(newlySelectedDate);\n if (!allowTextInput && newlySelectedDate) {\n setSelectedDate(newlySelectedDate);\n }\n }\n },\n [allowTextInput, open, setOpen, setSelectedDate, validateTextInput],\n );\n\n const showDatePickerPopup = React.useCallback((): void => {\n if (!open) {\n preventNextFocusOpeningPicker();\n setOpen(true);\n }\n }, [open, preventNextFocusOpeningPicker, setOpen]);\n\n /**\n * Callback for closing the calendar callout\n */\n const calendarDismissed = React.useCallback(\n (newlySelectedDate?: Date): void => {\n preventNextFocusOpeningPicker();\n dismissDatePickerPopup(newlySelectedDate);\n },\n [dismissDatePickerPopup, preventNextFocusOpeningPicker],\n );\n\n const onInputChange = React.useCallback(\n (ev: React.ChangeEvent<HTMLInputElement>, data: InputOnChangeData) => {\n const { value: newValue } = data;\n\n if (allowTextInput) {\n if (open) {\n dismissDatePickerPopup();\n }\n\n setFormattedDate(newValue);\n }\n },\n [allowTextInput, dismissDatePickerPopup, open, setFormattedDate],\n );\n\n const onInputBlur: React.FocusEventHandler<HTMLInputElement> = React.useCallback((): void => {\n validateTextInput();\n }, [validateTextInput]);\n\n const onInputKeyDown = React.useCallback(\n (ev: React.KeyboardEvent<HTMLElement>): void => {\n switch (ev.key) {\n case Enter:\n ev.preventDefault();\n ev.stopPropagation();\n if (!open) {\n validateTextInput();\n showDatePickerPopup();\n } else {\n // When DatePicker allows input date string directly,\n // it is expected to hit another enter to close the popup\n if (props.allowTextInput) {\n dismissDatePickerPopup();\n }\n }\n break;\n\n case Escape:\n ev.stopPropagation();\n ev.preventDefault();\n if (open) {\n calendarDismissed();\n }\n break;\n\n case ArrowDown:\n ev.preventDefault();\n if (ev.altKey && !open) {\n showDatePickerPopup();\n }\n break;\n\n default:\n break;\n }\n },\n [calendarDismissed, dismissDatePickerPopup, open, props.allowTextInput, showDatePickerPopup, validateTextInput],\n );\n\n const onInputFocus: React.FocusEventHandler<HTMLInputElement> = React.useCallback((): void => {\n if (disableAutoFocus) {\n return;\n }\n\n if (!allowTextInput) {\n if (!preventFocusOpeningPicker.current) {\n showDatePickerPopup();\n }\n preventFocusOpeningPicker.current = false;\n }\n }, [allowTextInput, disableAutoFocus, preventFocusOpeningPicker, showDatePickerPopup]);\n\n const onInputClick: React.MouseEventHandler<HTMLInputElement> = React.useCallback((): void => {\n // default openOnClick to !props.disableAutoFocus for legacy support of disableAutoFocus behavior\n if ((props.openOnClick || !props.disableAutoFocus) && !open && !props.disabled) {\n showDatePickerPopup();\n return;\n }\n\n if (allowTextInput) {\n dismissDatePickerPopup();\n }\n }, [\n allowTextInput,\n dismissDatePickerPopup,\n open,\n props.disabled,\n props.disableAutoFocus,\n props.openOnClick,\n showDatePickerPopup,\n ]);\n\n const onIconClick = (ev: React.MouseEvent<HTMLElement>): void => {\n ev.stopPropagation();\n if (!open && !props.disabled) {\n showDatePickerPopup();\n } else if (props.allowTextInput) {\n dismissDatePickerPopup();\n }\n };\n\n const inputAppearance: InputProps['appearance'] = underlined\n ? 'underline'\n : borderless\n ? 'filled-lighter'\n : 'outline';\n\n const [triggerWrapperRef, popupRef] = usePopupPositioning(props);\n const rootShorthand = resolveShorthand(restOfProps, {\n required: true,\n defaultProps: {\n appearance: inputAppearance,\n 'aria-controls': open ? popupSurfaceId : undefined,\n 'aria-expanded': open,\n 'aria-haspopup': 'dialog',\n contentAfter: <CalendarMonthRegular onClick={onIconClick as unknown as React.MouseEventHandler<SVGElement>} />,\n readOnly: !allowTextInput,\n role: 'combobox',\n root: {\n 'aria-owns': open ? popupSurfaceId : undefined,\n ref: useMergedRefs(triggerWrapperRef, ref),\n },\n input: {\n ref: rootRef,\n },\n },\n });\n\n rootShorthand.onChange = mergeCallbacks(rootShorthand.onChange, onInputChange);\n rootShorthand.onBlur = mergeCallbacks(rootShorthand.onBlur, onInputBlur);\n rootShorthand.onKeyDown = mergeCallbacks(rootShorthand.onKeyDown, onInputKeyDown);\n rootShorthand.onFocus = mergeCallbacks(rootShorthand.onFocus, onInputFocus);\n rootShorthand.onClick = mergeCallbacks(rootShorthand.onClick, onInputClick);\n\n const { modalAttributes } = useModalAttributes({ trapFocus: true, alwaysFocusable: true, legacyTrapFocus: false });\n const popupSurfaceShorthand = open\n ? resolveShorthand(props.popupSurface, {\n required: true,\n defaultProps: {\n 'aria-label': 'Calendar',\n 'aria-modal': true,\n id: popupSurfaceId,\n role: 'dialog',\n ref: popupRef,\n ...modalAttributes,\n },\n })\n : undefined;\n\n const { targetDocument } = useFluent();\n useOnClickOutside({\n element: targetDocument,\n callback: ev => dismissDatePickerPopup(),\n refs: [triggerWrapperRef, popupRef],\n disabled: !open,\n });\n\n useOnScrollOutside({\n element: targetDocument,\n callback: ev => dismissDatePickerPopup(),\n refs: [triggerWrapperRef, popupRef],\n disabled: !open,\n });\n\n // When the popup is opened, focus should go to the calendar.\n // In v8 this was done by focusing after the callout was positioned, but in v9 this can be simulated by using a\n // useEffect hook.\n React.useEffect(() => {\n if (open && !props.disabled && calendar.current) {\n calendar.current.focus();\n }\n }, [disableAutoFocus, open, props.disabled]);\n\n // When the popup is closed, focus should go back to the input.\n React.useEffect(() => {\n if (!open && !props.disabled) {\n focus();\n }\n }, [open, props.disabled, focus]);\n\n const calendarShorthand = resolveShorthand(props.calendar, {\n required: true,\n defaultProps: {\n allFocusable,\n componentRef: calendar,\n dateTimeFormatter,\n firstDayOfWeek,\n firstWeekOfYear,\n highlightCurrentMonth,\n highlightSelectedMonth,\n isMonthPickerVisible,\n maxDate,\n minDate,\n showCloseButton,\n showGoToToday,\n showMonthPickerAsOverlay,\n showWeekNumbers,\n strings,\n today,\n value: selectedDate || initialPickerDate,\n },\n });\n\n calendarShorthand.onDismiss = mergeCallbacks(calendarShorthand.onDismiss, calendarDismissed);\n calendarShorthand.onSelectDate = mergeCallbacks(calendarShorthand.onSelectDate, calendarDismissed);\n\n React.useImperativeHandle(\n props.componentRef,\n () => ({\n focus,\n reset() {\n setOpen(false);\n setSelectedDate(undefined);\n },\n showDatePickerPopup,\n }),\n [focus, setOpen, setSelectedDate, showDatePickerPopup],\n );\n\n const state: DatePickerState = {\n disabled: !!props.disabled,\n inlinePopup,\n\n components: {\n root: Input,\n calendar: Calendar as React.FC<Partial<CalendarProps>>,\n popupSurface: 'div',\n },\n\n calendar: calendarShorthand,\n root: rootShorthand,\n popupSurface: popupSurfaceShorthand,\n };\n\n state.root.value = formattedDate;\n\n return state;\n};\n"],"mappings":"AAAA,YAAYA,KAAA,MAAW;AACvB,SAASC,SAAS,EAAEC,KAAK,EAAEC,MAAM,QAAQ;AACzC,SAASC,QAAQ,QAAQ;AACzB,SAASC,oBAAoB,QAAQ;AACrC,SAASC,eAAe,EAAEC,SAAS,EAAEC,eAAe,QAAQ;AAC5D,SAASC,wBAAwB,QAAQ;AACzC,SAASC,KAAK,QAAQ;AACtB,SACEC,cAAc,EACdC,gBAAgB,EAChBC,oBAAoB,EACpBC,KAAK,EACLC,aAAa,EACbC,iBAAiB,EACjBC,kBAAkB,QACb;AACP,SAASC,wBAAA,IAA4BC,eAAe,QAAQ;AAC5D,SAASC,kBAAA,IAAsBC,SAAS,QAAQ;AAChD,SAASC,kBAAkB,QAAQ;AACnC,SAASC,mBAAmB,QAAQ;AAKpC,SAASC,kBAAkBC,IAAU,EAAEC,OAAc,EAAEC,OAAc,EAAW;EAC9E,OAAO,CAAE,CAACD,OAAA,IAAWpB,eAAA,CAAgBoB,OAAA,EAAUD,IAAA,IAAQ,KAAO,CAAC,CAACE,OAAA,IAAWrB,eAAA,CAAgBqB,OAAA,EAAUF,IAAA,IAAQ;AAC/G;AAEA,SAASG,cAAA,EAAgB;EACvB,MAAMC,QAAA,GAAW7B,KAAA,CAAM8B,MAAM,CAAmB,IAAI;EACpD,MAAMC,yBAAA,GAA4B/B,KAAA,CAAM8B,MAAM,CAAC,KAAK;EAEpD,MAAME,KAAA,GAAQA,CAAA,KAAM;QAClBC,iBAAA,EAAAC,uBAAA;IAAA,CAAAD,iBAAA,GAAAJ,QAAA,CAASM,OAAO,cAAhBF,iBAAA,wBAAAC,uBAAA,GAAAD,iBAAA,CAAkBD,KAAA,cAAAE,uBAAA,cAAlB,SAAAA,uBAAA,CAAAE,IAAA,CAAAH,iBAAA;EACF;EAEA,MAAMI,6BAAA,GAAgCA,CAAA,KAAM;IAC1CN,yBAAA,CAA0BI,OAAO,GAAG,IAAI;EAC1C;EAEA,OAAO,CAACH,KAAA,EAAOH,QAAA,EAAUE,yBAAA,EAA2BM,6BAAA,CAA8B;AACpF;AAEA,SAASC,mBAAmBC,KAAsB,EAAE;EAClD,MAAM,CAACC,IAAA,EAAMC,OAAA,CAAQ,GAAG5B,oBAAA,CAAqB;IAC3C6B,YAAA,EAAc,KAAK;IACnBC,YAAA,EAAcJ,KAAA,CAAMK,WAAW;IAC/BC,KAAA,EAAON,KAAA,CAAMC;EACf;EACA,MAAMM,SAAA,GAAY9C,KAAA,CAAM8B,MAAM,CAAC,KAAK;EAEpC9B,KAAA,CAAM+C,SAAS,CACb,MAAM;IACJ,IAAID,SAAA,CAAUX,OAAO,IAAI,CAACK,IAAA,EAAM;;MAC9B;MACAQ,mBAAA;MAAA,CAAAA,mBAAA,GAAAT,KAAA,CAAMU,YAAY,cAAlBD,mBAAA,uBAAAA,mBAAA,CAAAZ,IAAA,CAAAG,KAAA,EAAqB,KAAK;IAC5B;IACAO,SAAA,CAAUX,OAAO,GAAG,IAAI;EAC1B;EACA;EACA;EACA,CAACI,KAAA,CAAMW,cAAc,EAAEV,IAAA,CAAK;EAG9B,OAAO,CAACA,IAAA,EAAMC,OAAA,CAAQ;AACxB;AAEA,SAASU,gBAAgB;EAAEC,UAAA;EAAYC,YAAA;EAAcC;AAAK,CAAmB,EAAE;EAC7E,MAAM,CAACC,YAAA,EAAcC,oBAAA,CAAqB,GAAG3C,oBAAA,CAAqB;IAChE6B,YAAA,EAAce,SAAA;IACdZ,KAAA,EAAOS;EACT;EACA,MAAM,CAACI,aAAA,EAAeC,gBAAA,CAAiB,GAAG3D,KAAA,CAAM4D,QAAQ,CAAC,MAAON,KAAA,IAASF,UAAA,GAAaA,UAAA,CAAWE,KAAA,IAAS,EAAE;EAE5G,MAAMO,eAAA,GAAmBC,OAAA,IAA8B;IACrD,IACEP,YAAC,KAAiBE,SAAA,IAAaK,OAAA,KAAYL,SAAA,IAC1CF,YAAA,KAAiBE,SAAA,IAAaK,OAAA,KAAYL,SAAA,IAC1CK,OAAA,IAAWP,YAAA,KAAiBO,OAAA,GAAUP,YAAA,IAAgBO,OAAA,GAAUP,YAAW,GAC5E;MACAF,YAAA,aAAAA,YAAA,uBAAAA,YAAA,CAAeS,OAAA;IACjB;IAEAN,oBAAA,CAAqBM,OAAA;IACrBH,gBAAA,CAAiBG,OAAA,IAAWV,UAAA,GAAaA,UAAA,CAAWU,OAAA,IAAW,EAAE;EACnE;EAEA9D,KAAA,CAAM+C,SAAS,CAAC,MAAM;IACpBY,gBAAA,CAAiBL,KAAA,IAASF,UAAA,GAAaA,UAAA,CAAWE,KAAA,IAAS,EAAE;EAC/D,GAAG,CAACF,UAAA,EAAYE,KAAA,CAAM;EAEtB,OAAO,CAACC,YAAA,EAAcG,aAAA,EAAeG,eAAA,EAAiBF,gBAAA,CAAiB;AACzE;AAEA,MAAMI,iBAAA,GAAqBtC,IAAA,IAAiBA,IAAA,GAAOA,IAAA,CAAKuC,YAAY,KAAK,EAAE;AAC3E,MAAMC,0BAAA,GAA8BC,OAAA,IAAoB;EACtD,MAAMzC,IAAA,GAAO0C,IAAA,CAAKC,KAAK,CAACF,OAAA;EACxB,OAAOzC,IAAA,GAAO,IAAI0C,IAAA,CAAK1C,IAAA,IAAQ,IAAI;AACrC;AAEA;;;;;;;;;AASA,OAAO,MAAM4C,sBAAA,GAAyBA,CAAC9B,KAAA,EAAwB+B,GAAA,KAAiD;EAC9G,MAAM;IACJpB,cAAA,GAAiB,KAAK;IACtBqB,YAAA,GAAe,KAAK;IACpBC,UAAA,GAAa,KAAK;IAClBC,iBAAA;IACA7B,WAAA,GAAc,KAAK;IACnB8B,gBAAA,GAAmB,IAAI;IACvBC,cAAA,GAAiBpE,SAAA,CAAUqE,MAAM;IACjCC,eAAA,GAAkBrE,eAAA,CAAgBsE,QAAQ;IAC1C1B,UAAA,GAAaW,iBAAA;IACbgB,qBAAA,GAAwB,KAAK;IAC7BC,sBAAA,GAAyB,KAAK;IAC9BC,iBAAA,GAAoB,IAAId,IAAA;IACxBe,WAAA,GAAc,KAAK;IACnBC,oBAAA,GAAuB,IAAI;IAC3BxD,OAAA;IACAD,OAAA;IACAuB,YAAA;IACAI,YAAA,EAAc+B,gBAAA;IACdC,WAAA,GAAc,IAAI;IAClBC,kBAAA;IACAC,mBAAA,GAAsBtB,0BAAA;IACtBuB,eAAA,GAAkB,KAAK;IACvBC,aAAA,GAAgB,IAAI;IACpBC,wBAAA,GAA2B,KAAK;IAChCC,eAAA,GAAkB,KAAK;IACvBC,OAAA,GAAUnF,wBAAA;IACVoF,KAAA;IACAC,UAAA,GAAa,KAAK;IAClBxC,KAAA;IACA,GAAGyC;EAAA,CACJ,GAAGxD,KAAA;EACJ,MAAMyD,QAAA,GAAWhG,KAAA,CAAM8B,MAAM,CAAY,IAAI;EAC7C,MAAM,CAACE,KAAA,EAAOiE,OAAA,EAASlE,yBAAA,EAA2BM,6BAAA,CAA8B,GAAGT,aAAA;EACnF,MAAM,CAAC2B,YAAA,EAAcG,aAAA,EAAeG,eAAA,EAAiBF,gBAAA,CAAiB,GAAGR,eAAA,CAAgB;IACvFC,UAAA;IACAC,YAAA,EAAc+B,gBAAA;IACd9B;EACF;EACA,MAAM,CAACd,IAAA,EAAM0D,YAAA,CAAa,GAAG5D,kBAAA,CAAmBC,KAAA;EAChD,MAAM4D,YAAA,GAAehF,eAAA;MACJiF,sBAAA;EAAjB,MAAMC,QAAA,GAAW,CAAAD,sBAAA,GAAAD,YAAA,aAAAA,YAAA,uBAAAA,YAAA,CAAcE,QAAQ,cAAtBD,sBAAA,cAAAA,sBAAA,GAA0B7D,KAAA,CAAM8D,QAAQ;EACzD,MAAMC,cAAA,GAAiBxF,KAAA,CAAM;EAE7B,MAAMyF,iBAAA,GAAoBvG,KAAA,CAAMwG,WAAW,CACzC,CAAC/E,IAAA,GAAoB,IAAI,KAAW;IAClC,IAAIgF,KAAA;IAEJ,IAAIvD,cAAA,EAAgB;MAClB,IAAIQ,aAAA,IAAiBjC,IAAA,EAAM;QACzB;QACA;QACA;QACA,IAAI8B,YAAA,IAAgBH,UAAA,IAAcA,UAAA,CAAW3B,IAAA,aAAAA,IAAA,cAAAA,IAAA,GAAQ8B,YAAY,MAAMG,aAAA,EAAe;UACpF;QACF;QACAjC,IAAA,GAAOA,IAAA,IAAQ8D,mBAAA,CAAqB7B,aAAA;QAEpC;QACA,IAAI,CAACjC,IAAA,IAAQiF,KAAA,CAAMjF,IAAA,CAAKkF,OAAO,KAAK;UAClC;UACA9C,eAAA,CAAgBN,YAAA;UAChBkD,KAAA,GAAQ;QACV,OAAO;UACL,IAAIjF,iBAAA,CAAkBC,IAAA,EAAMC,OAAA,EAASC,OAAA,GAAU;YAC7C8E,KAAA,GAAQ;UACV,OAAO;YACL5C,eAAA,CAAgBpC,IAAA;UAClB;QACF;MACF,OAAO;QACL,IAAI4E,QAAA,EAAU;UACZI,KAAA,GAAQ;QACV;QAEArB,gBAAA,aAAAA,gBAAA,uBAAAA,gBAAA,CAAmB3D,IAAA;MACrB;IACF,OAAO,IAAI4E,QAAA,IAAY,CAAC3C,aAAA,EAAe;MACrC+C,KAAA,GAAQ;IACV;IAEAnB,kBAAA,aAAAA,kBAAA,uBAAAA,kBAAA,CAAqB;MAAEmB;IAAM;EAC/B,GACA,CACEvD,cAAA,EACAE,UAAA,EACAM,aAAA,EACA/B,OAAA,EACAD,OAAA,EACA0D,gBAAA,EACAE,kBAAA,EACAC,mBAAA,EACAc,QAAA,EACA9C,YAAA,EACAM,eAAA,CACD;EAGH,MAAMpB,OAAA,GAAUzC,KAAA,CAAMwG,WAAW,CAC9BI,QAAA,IAAsB;IACrB3D,YAAA,aAAAA,YAAA,uBAAAA,YAAA,CAAe2D,QAAA;IACfV,YAAA,CAAaU,QAAA;EACf,GACA,CAAC3D,YAAA,EAAciD,YAAA,CAAa;EAG9B,MAAMW,sBAAA,GAAyB7G,KAAA,CAAMwG,WAAW,CAC7CM,iBAAA,IAAmC;IAClC,IAAItE,IAAA,EAAM;MACRC,OAAA,CAAQ,KAAK;MAEb8D,iBAAA,CAAkBO,iBAAA;MAClB,IAAI,CAAC5D,cAAA,IAAkB4D,iBAAA,EAAmB;QACxCjD,eAAA,CAAgBiD,iBAAA;MAClB;IACF;EACF,GACA,CAAC5D,cAAA,EAAgBV,IAAA,EAAMC,OAAA,EAASoB,eAAA,EAAiB0C,iBAAA,CAAkB;EAGrE,MAAMQ,mBAAA,GAAsB/G,KAAA,CAAMwG,WAAW,CAAC,MAAY;IACxD,IAAI,CAAChE,IAAA,EAAM;MACTH,6BAAA;MACAI,OAAA,CAAQ,IAAI;IACd;EACF,GAAG,CAACD,IAAA,EAAMH,6BAAA,EAA+BI,OAAA,CAAQ;EAEjD;;;EAGA,MAAMuE,iBAAA,GAAoBhH,KAAA,CAAMwG,WAAW,CACxCM,iBAAA,IAAmC;IAClCzE,6BAAA;IACAwE,sBAAA,CAAuBC,iBAAA;EACzB,GACA,CAACD,sBAAA,EAAwBxE,6BAAA,CAA8B;EAGzD,MAAM4E,aAAA,GAAgBjH,KAAA,CAAMwG,WAAW,CACrC,CAACU,EAAA,EAAyCC,IAAA,KAA4B;IACpE,MAAM;MAAE7D,KAAA,EAAO8D;IAAQ,CAAE,GAAGD,IAAA;IAE5B,IAAIjE,cAAA,EAAgB;MAClB,IAAIV,IAAA,EAAM;QACRqE,sBAAA;MACF;MAEAlD,gBAAA,CAAiByD,QAAA;IACnB;EACF,GACA,CAAClE,cAAA,EAAgB2D,sBAAA,EAAwBrE,IAAA,EAAMmB,gBAAA,CAAiB;EAGlE,MAAM0D,WAAA,GAAyDrH,KAAA,CAAMwG,WAAW,CAAC,MAAY;IAC3FD,iBAAA;EACF,GAAG,CAACA,iBAAA,CAAkB;EAEtB,MAAMe,cAAA,GAAiBtH,KAAA,CAAMwG,WAAW,CACrCU,EAAA,IAA+C;IAC9C,QAAQA,EAAA,CAAGK,GAAG;MACZ,KAAKrH,KAAA;QACHgH,EAAA,CAAGM,cAAc;QACjBN,EAAA,CAAGO,eAAe;QAClB,IAAI,CAACjF,IAAA,EAAM;UACT+D,iBAAA;UACAQ,mBAAA;QACF,OAAO;UACL;UACA;UACA,IAAIxE,KAAA,CAAMW,cAAc,EAAE;YACxB2D,sBAAA;UACF;QACF;QACA;MAEF,KAAK1G,MAAA;QACH+G,EAAA,CAAGO,eAAe;QAClBP,EAAA,CAAGM,cAAc;QACjB,IAAIhF,IAAA,EAAM;UACRwE,iBAAA;QACF;QACA;MAEF,KAAK/G,SAAA;QACHiH,EAAA,CAAGM,cAAc;QACjB,IAAIN,EAAA,CAAGQ,MAAM,IAAI,CAAClF,IAAA,EAAM;UACtBuE,mBAAA;QACF;QACA;MAEF;QACE;IAAM;EAEZ,GACA,CAACC,iBAAA,EAAmBH,sBAAA,EAAwBrE,IAAA,EAAMD,KAAA,CAAMW,cAAc,EAAE6D,mBAAA,EAAqBR,iBAAA,CAAkB;EAGjH,MAAMoB,YAAA,GAA0D3H,KAAA,CAAMwG,WAAW,CAAC,MAAY;IAC5F,IAAI9B,gBAAA,EAAkB;MACpB;IACF;IAEA,IAAI,CAACxB,cAAA,EAAgB;MACnB,IAAI,CAACnB,yBAAA,CAA0BI,OAAO,EAAE;QACtC4E,mBAAA;MACF;MACAhF,yBAAA,CAA0BI,OAAO,GAAG,KAAK;IAC3C;EACF,GAAG,CAACe,cAAA,EAAgBwB,gBAAA,EAAkB3C,yBAAA,EAA2BgF,mBAAA,CAAoB;EAErF,MAAMa,YAAA,GAA0D5H,KAAA,CAAMwG,WAAW,CAAC,MAAY;IAC5F;IACA,IAAI,CAACjE,KAAA,CAAM8C,WAAW,IAAI,CAAC9C,KAAA,CAAMmC,gBAAgB,KAAK,CAAClC,IAAA,IAAQ,CAACD,KAAA,CAAMsF,QAAQ,EAAE;MAC9Ed,mBAAA;MACA;IACF;IAEA,IAAI7D,cAAA,EAAgB;MAClB2D,sBAAA;IACF;EACF,GAAG,CACD3D,cAAA,EACA2D,sBAAA,EACArE,IAAA,EACAD,KAAA,CAAMsF,QAAQ,EACdtF,KAAA,CAAMmC,gBAAgB,EACtBnC,KAAA,CAAM8C,WAAW,EACjB0B,mBAAA,CACD;EAED,MAAMe,WAAA,GAAeZ,EAAA,IAA4C;IAC/DA,EAAA,CAAGO,eAAe;IAClB,IAAI,CAACjF,IAAA,IAAQ,CAACD,KAAA,CAAMsF,QAAQ,EAAE;MAC5Bd,mBAAA;IACF,OAAO,IAAIxE,KAAA,CAAMW,cAAc,EAAE;MAC/B2D,sBAAA;IACF;EACF;EAEA,MAAMkB,eAAA,GAA4CjC,UAAA,GAC9C,cACAtB,UAAA,GACA,mBACA,SAAS;EAEb,MAAM,CAACwD,iBAAA,EAAmBC,QAAA,CAAS,GAAG1G,mBAAA,CAAoBgB,KAAA;EAC1D,MAAM2F,aAAA,GAAgBtH,gBAAA,CAAiBmF,WAAA,EAAa;IAClDM,QAAA,EAAU,IAAI;IACd8B,YAAA,EAAc;MACZC,UAAA,EAAYL,eAAA;MACZ,iBAAiBvF,IAAA,GAAO8D,cAAA,GAAiB7C,SAAS;MAClD,iBAAiBjB,IAAA;MACjB,iBAAiB;MACjB6F,YAAA,eAAcrI,KAAA,CAAAsI,aAAA,CAACjI,oBAAA;QAAqBkI,OAAA,EAAST;;MAC7CU,QAAA,EAAU,CAACtF,cAAA;MACXuF,IAAA,EAAM;MACNC,IAAA,EAAM;QACJ,aAAalG,IAAA,GAAO8D,cAAA,GAAiB7C,SAAS;QAC9Ca,GAAA,EAAKvD,aAAA,CAAciH,iBAAA,EAAmB1D,GAAA;MACxC;MACAqE,KAAA,EAAO;QACLrE,GAAA,EAAK2B;MACP;IACF;EACF;EAEAiC,aAAA,CAAcU,QAAQ,GAAGjI,cAAA,CAAeuH,aAAA,CAAcU,QAAQ,EAAE3B,aAAA;EAChEiB,aAAA,CAAcW,MAAM,GAAGlI,cAAA,CAAeuH,aAAA,CAAcW,MAAM,EAAExB,WAAA;EAC5Da,aAAA,CAAcY,SAAS,GAAGnI,cAAA,CAAeuH,aAAA,CAAcY,SAAS,EAAExB,cAAA;EAClEY,aAAA,CAAca,OAAO,GAAGpI,cAAA,CAAeuH,aAAA,CAAca,OAAO,EAAEpB,YAAA;EAC9DO,aAAA,CAAcK,OAAO,GAAG5H,cAAA,CAAeuH,aAAA,CAAcK,OAAO,EAAEX,YAAA;EAE9D,MAAM;IAAEoB;EAAe,CAAE,GAAG1H,kBAAA,CAAmB;IAAE2H,SAAA,EAAW,IAAI;IAAEC,eAAA,EAAiB,IAAI;IAAEC,eAAA,EAAiB;EAAM;EAChH,MAAMC,qBAAA,GAAwB5G,IAAA,GAC1B5B,gBAAA,CAAiB2B,KAAA,CAAM8G,YAAY,EAAE;IACnChD,QAAA,EAAU,IAAI;IACd8B,YAAA,EAAc;MACZ,cAAc;MACd,cAAc,IAAI;MAClBmB,EAAA,EAAIhD,cAAA;MACJmC,IAAA,EAAM;MACNnE,GAAA,EAAK2D,QAAA;MACL,GAAGe;IACL;EACF,KACAvF,SAAS;EAEb,MAAM;IAAE8F;EAAc,CAAE,GAAGlI,SAAA;EAC3BL,iBAAA,CAAkB;IAChBwI,OAAA,EAASD,cAAA;IACTE,QAAA,EAAUvC,EAAA,IAAML,sBAAA;IAChB6C,IAAA,EAAM,CAAC1B,iBAAA,EAAmBC,QAAA,CAAS;IACnCJ,QAAA,EAAU,CAACrF;EACb;EAEAvB,kBAAA,CAAmB;IACjBuI,OAAA,EAASD,cAAA;IACTE,QAAA,EAAUvC,EAAA,IAAML,sBAAA;IAChB6C,IAAA,EAAM,CAAC1B,iBAAA,EAAmBC,QAAA,CAAS;IACnCJ,QAAA,EAAU,CAACrF;EACb;EAEA;EACA;EACA;EACAxC,KAAA,CAAM+C,SAAS,CAAC,MAAM;IACpB,IAAIP,IAAA,IAAQ,CAACD,KAAA,CAAMsF,QAAQ,IAAI7B,QAAA,CAAS7D,OAAO,EAAE;MAC/C6D,QAAA,CAAS7D,OAAO,CAACH,KAAK;IACxB;EACF,GAAG,CAAC0C,gBAAA,EAAkBlC,IAAA,EAAMD,KAAA,CAAMsF,QAAQ,CAAC;EAE3C;EACA7H,KAAA,CAAM+C,SAAS,CAAC,MAAM;IACpB,IAAI,CAACP,IAAA,IAAQ,CAACD,KAAA,CAAMsF,QAAQ,EAAE;MAC5B7F,KAAA;IACF;EACF,GAAG,CAACQ,IAAA,EAAMD,KAAA,CAAMsF,QAAQ,EAAE7F,KAAA,CAAM;EAEhC,MAAM2H,iBAAA,GAAoB/I,gBAAA,CAAiB2B,KAAA,CAAMyD,QAAQ,EAAE;IACzDK,QAAA,EAAU,IAAI;IACd8B,YAAA,EAAc;MACZ5D,YAAA;MACAqF,YAAA,EAAc5D,QAAA;MACdvB,iBAAA;MACAE,cAAA;MACAE,eAAA;MACAE,qBAAA;MACAC,sBAAA;MACAG,oBAAA;MACAxD,OAAA;MACAD,OAAA;MACA8D,eAAA;MACAC,aAAA;MACAC,wBAAA;MACAC,eAAA;MACAC,OAAA;MACAC,KAAA;MACAvC,KAAA,EAAOC,YAAA,IAAgB0B;IACzB;EACF;EAEA0E,iBAAA,CAAkBE,SAAS,GAAGlJ,cAAA,CAAegJ,iBAAA,CAAkBE,SAAS,EAAE7C,iBAAA;EAC1E2C,iBAAA,CAAkBtG,YAAY,GAAG1C,cAAA,CAAegJ,iBAAA,CAAkBtG,YAAY,EAAE2D,iBAAA;EAEhFhH,KAAA,CAAM8J,mBAAmB,CACvBvH,KAAA,CAAMqH,YAAY,EAClB,OAAO;IACL5H,KAAA;IACA+H,MAAA,EAAQ;MACNtH,OAAA,CAAQ,KAAK;MACboB,eAAA,CAAgBJ,SAAA;IAClB;IACAsD;EACF,IACA,CAAC/E,KAAA,EAAOS,OAAA,EAASoB,eAAA,EAAiBkD,mBAAA,CAAoB;EAGxD,MAAMlE,KAAA,GAAyB;IAC7BgF,QAAA,EAAU,CAAC,CAACtF,KAAA,CAAMsF,QAAQ;IAC1B3C,WAAA;IAEA8E,UAAA,EAAY;MACVtB,IAAA,EAAMhI,KAAA;MACNsF,QAAA,EAAU5F,QAAA;MACViJ,YAAA,EAAc;IAChB;IAEArD,QAAA,EAAU2D,iBAAA;IACVjB,IAAA,EAAMR,aAAA;IACNmB,YAAA,EAAcD;EAChB;EAEAvG,KAAA,CAAM6F,IAAI,CAACpF,KAAK,GAAGI,aAAA;EAEnB,OAAOb,KAAA;AACT"}
|
|
@@ -196,6 +196,7 @@ const Calendar = /*#__PURE__*/ _react.forwardRef((props, forwardedRef)=>{
|
|
|
196
196
|
ev.preventDefault();
|
|
197
197
|
break;
|
|
198
198
|
case _keyboardKeys.Escape:
|
|
199
|
+
ev.stopPropagation();
|
|
199
200
|
onDismiss === null || onDismiss === void 0 ? void 0 : onDismiss();
|
|
200
201
|
break;
|
|
201
202
|
case _keyboardKeys.PageUp:
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../lib/components/Calendar/Calendar.js"],"sourcesContent":["import * as React from 'react';\nimport { Backspace, Enter, Escape, PageDown, PageUp, Space } from '@fluentui/keyboard-keys';\nimport { useControllableState } from '@fluentui/react-utilities';\nimport { addMonths, addYears, DateRangeType, DayOfWeek, DEFAULT_CALENDAR_STRINGS, DEFAULT_DATE_FORMATTING, FirstWeekOfYear, focusAsync, getWindow } from '../../utils';\nimport { CalendarDay } from '../CalendarDay/CalendarDay';\nimport { CalendarMonth } from '../CalendarMonth/CalendarMonth';\nimport { useCalendarStyles_unstable } from './useCalendarStyles.styles';\nconst MIN_SIZE_FORCE_OVERLAY = 440;\nconst defaultWorkWeekDays = [DayOfWeek.Monday, DayOfWeek.Tuesday, DayOfWeek.Wednesday, DayOfWeek.Thursday, DayOfWeek.Friday];\nfunction useDateState({\n value,\n today = new Date(),\n onSelectDate\n}) {\n /** The currently selected date in the calendar */const [selectedDate, setSelectedDate] = useControllableState({\n defaultState: today,\n initialState: today,\n state: value\n });\n /** The currently focused date in the day picker, but not necessarily selected */\n const [navigatedDay = today, setNavigatedDay] = React.useState(value);\n /** The currently focused date in the month picker, but not necessarily selected */\n const [navigatedMonth = today, setNavigatedMonth] = React.useState(value);\n /** If using a controlled value, when that value changes, navigate to that date */\n const [lastSelectedDate = today, setLastSelectedDate] = React.useState(value);\n if (value && lastSelectedDate.valueOf() !== value.valueOf()) {\n setNavigatedDay(value);\n setNavigatedMonth(value);\n setLastSelectedDate(value);\n }\n const navigateMonth = date => {\n setNavigatedMonth(date);\n };\n const navigateDay = date => {\n setNavigatedMonth(date);\n setNavigatedDay(date);\n };\n const onDateSelected = (date, selectedDateRangeArray) => {\n setNavigatedMonth(date);\n setNavigatedDay(date);\n setSelectedDate(date);\n onSelectDate === null || onSelectDate === void 0 ? void 0 : onSelectDate(date, selectedDateRangeArray);\n };\n return [selectedDate, navigatedDay, navigatedMonth, onDateSelected, navigateDay, navigateMonth];\n}\nfunction useVisibilityState({\n isDayPickerVisible: isDayPickerVisibleProp,\n isMonthPickerVisible: isMonthPickerVisibleProp,\n showMonthPickerAsOverlay\n}) {\n /** State used to show/hide month picker */const [isMonthPickerVisible, setIsMonthPickerVisible] = useControllableState({\n defaultState: false,\n initialState: true,\n state: getShowMonthPickerAsOverlay({\n isDayPickerVisible: isDayPickerVisibleProp,\n showMonthPickerAsOverlay\n }) ? undefined : isMonthPickerVisibleProp\n });\n /** State used to show/hide day picker */\n const [isDayPickerVisible, setIsDayPickerVisible] = useControllableState({\n defaultState: true,\n initialState: true,\n state: getShowMonthPickerAsOverlay({\n isDayPickerVisible: isDayPickerVisibleProp,\n showMonthPickerAsOverlay\n }) ? undefined : isDayPickerVisibleProp\n });\n const toggleDayMonthPickerVisibility = () => {\n setIsMonthPickerVisible(!isMonthPickerVisible);\n setIsDayPickerVisible(!isDayPickerVisible);\n };\n return [isMonthPickerVisible, isDayPickerVisible, toggleDayMonthPickerVisibility];\n}\nfunction useFocusLogic({\n componentRef\n}, isDayPickerVisible, isMonthPickerVisible) {\n const dayPicker = React.useRef(null);\n const monthPicker = React.useRef(null);\n const focusOnUpdate = React.useRef(false);\n const focus = React.useCallback(() => {\n if (isDayPickerVisible && dayPicker.current) {\n focusAsync(dayPicker.current);\n } else if (isMonthPickerVisible && monthPicker.current) {\n focusAsync(monthPicker.current);\n }\n }, [isDayPickerVisible, isMonthPickerVisible]);\n React.useImperativeHandle(componentRef, () => ({\n focus\n }), [focus]);\n React.useEffect(() => {\n if (focusOnUpdate.current) {\n focus();\n focusOnUpdate.current = false;\n }\n });\n const focusOnNextUpdate = () => {\n focusOnUpdate.current = true;\n };\n return [dayPicker, monthPicker, focusOnNextUpdate];\n}\n/**\n * @internal\n */\nexport const Calendar = /*#__PURE__*/React.forwardRef((props, forwardedRef) => {\n const {\n allFocusable = false,\n calendarDayProps,\n calendarMonthProps,\n className,\n componentRef,\n dateRangeType = DateRangeType.Day,\n dateTimeFormatter = DEFAULT_DATE_FORMATTING,\n firstDayOfWeek = DayOfWeek.Sunday,\n firstWeekOfYear = FirstWeekOfYear.FirstDay,\n highlightCurrentMonth = false,\n highlightSelectedMonth = false,\n id,\n isDayPickerVisible: isDayPickerVisibleProp = true,\n isMonthPickerVisible: isMonthPickerVisibleProp = true,\n maxDate,\n minDate,\n onDismiss,\n onSelectDate,\n restrictedDates,\n showCloseButton = false,\n showGoToToday = true,\n showMonthPickerAsOverlay: showMonthPickerAsOverlayProp = false,\n showSixWeeksByDefault = false,\n showWeekNumbers = false,\n strings = DEFAULT_CALENDAR_STRINGS,\n today = new Date(),\n value,\n workWeekDays = defaultWorkWeekDays\n } = props;\n const [selectedDate, navigatedDay, navigatedMonth, onDateSelected, navigateDay, navigateMonth] = useDateState({\n onSelectDate,\n value,\n today\n });\n const [isMonthPickerVisible, isDayPickerVisible, toggleDayMonthPickerVisibility] = useVisibilityState({\n isDayPickerVisible: isDayPickerVisibleProp,\n isMonthPickerVisible: isMonthPickerVisibleProp,\n showMonthPickerAsOverlay: showMonthPickerAsOverlayProp\n });\n const [dayPicker, monthPicker, focusOnNextUpdate] = useFocusLogic({\n componentRef\n }, isDayPickerVisible, isMonthPickerVisible);\n const renderGoToTodayButton = () => {\n let goTodayEnabled = showGoToToday;\n if (goTodayEnabled && today) {\n goTodayEnabled = navigatedDay.getFullYear() !== today.getFullYear() || navigatedDay.getMonth() !== today.getMonth() || navigatedMonth.getFullYear() !== today.getFullYear() || navigatedMonth.getMonth() !== today.getMonth();\n }\n return showGoToToday && /*#__PURE__*/React.createElement(\"button\", {\n className: classes.goTodayButton,\n onClick: onGotoToday,\n onKeyDown: onButtonKeyDown(onGotoToday),\n type: \"button\",\n disabled: !goTodayEnabled\n }, strings.goToToday);\n };\n const onNavigateDayDate = (date, focusOnNavigatedDay) => {\n navigateDay(date);\n if (focusOnNavigatedDay) {\n focusOnNextUpdate();\n }\n };\n const onNavigateMonthDate = (date, focusOnNavigatedDay) => {\n if (focusOnNavigatedDay) {\n focusOnNextUpdate();\n }\n if (!focusOnNavigatedDay) {\n navigateMonth(date);\n return;\n }\n if (monthPickerOnly) {\n onDateSelected(date);\n }\n navigateDay(date);\n };\n const onHeaderSelect = getShowMonthPickerAsOverlay({\n isDayPickerVisible: isDayPickerVisibleProp,\n showMonthPickerAsOverlay: showMonthPickerAsOverlayProp\n }) ? () => {\n toggleDayMonthPickerVisibility();\n focusOnNextUpdate();\n } : undefined;\n const onGotoToday = () => {\n navigateDay(today);\n focusOnNextUpdate();\n };\n const onButtonKeyDown = callback => {\n return ev => {\n switch (ev.key) {\n case Enter:\n case Space:\n callback();\n break;\n }\n };\n };\n const onDatePickerPopupKeyDown = ev => {\n switch (ev.key) {\n case Enter:\n ev.preventDefault();\n break;\n case Backspace:\n ev.preventDefault();\n break;\n case Escape:\n onDismiss === null || onDismiss === void 0 ? void 0 : onDismiss();\n break;\n case PageUp:\n if (ev.ctrlKey) {\n // go to next year\n navigateDay(addYears(navigatedDay, 1));\n } else {\n // go to next month\n navigateDay(addMonths(navigatedDay, 1));\n }\n ev.preventDefault();\n break;\n case PageDown:\n if (ev.ctrlKey) {\n // go to previous year\n navigateDay(addYears(navigatedDay, -1));\n } else {\n // go to previous month\n navigateDay(addMonths(navigatedDay, -1));\n }\n ev.preventDefault();\n break;\n default:\n break;\n }\n };\n const showMonthPickerAsOverlay = getShowMonthPickerAsOverlay(props);\n const monthPickerOnly = !showMonthPickerAsOverlay && !isDayPickerVisible;\n const classes = useCalendarStyles_unstable({\n className,\n isDayPickerVisible,\n isMonthPickerVisible,\n showWeekNumbers\n });\n let todayDateString = '';\n let selectedDateString = '';\n if (dateTimeFormatter && strings.todayDateFormatString) {\n todayDateString = strings.todayDateFormatString.replace('{0}', dateTimeFormatter.formatMonthDayYear(today, strings));\n }\n if (dateTimeFormatter && strings.selectedDateFormatString) {\n selectedDateString = strings.selectedDateFormatString.replace('{0}', dateTimeFormatter.formatMonthDayYear(selectedDate, strings));\n }\n const selectionAndTodayString = selectedDateString + ', ' + todayDateString;\n return /*#__PURE__*/React.createElement(\"div\", {\n id: id,\n ref: forwardedRef,\n role: \"group\",\n \"aria-label\": selectionAndTodayString,\n className: classes.root,\n onKeyDown: onDatePickerPopupKeyDown\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: classes.liveRegion,\n \"aria-live\": \"polite\",\n \"aria-atomic\": \"true\"\n }, /*#__PURE__*/React.createElement(\"span\", null, selectedDateString)), isDayPickerVisible && /*#__PURE__*/React.createElement(CalendarDay, {\n selectedDate: selectedDate,\n navigatedDate: navigatedDay,\n today: today,\n onSelectDate: onDateSelected,\n // eslint-disable-next-line react/jsx-no-bind\n onNavigateDate: onNavigateDayDate,\n onDismiss: onDismiss,\n firstDayOfWeek: firstDayOfWeek,\n dateRangeType: dateRangeType,\n strings: strings,\n // eslint-disable-next-line react/jsx-no-bind\n onHeaderSelect: onHeaderSelect,\n showWeekNumbers: showWeekNumbers,\n firstWeekOfYear: firstWeekOfYear,\n dateTimeFormatter: dateTimeFormatter,\n showSixWeeksByDefault: showSixWeeksByDefault,\n minDate: minDate,\n maxDate: maxDate,\n restrictedDates: restrictedDates,\n workWeekDays: workWeekDays,\n componentRef: dayPicker,\n showCloseButton: showCloseButton,\n allFocusable: allFocusable,\n ...calendarDayProps\n }), isDayPickerVisible && isMonthPickerVisible && /*#__PURE__*/React.createElement(\"div\", {\n className: classes.divider\n }), isMonthPickerVisible ? /*#__PURE__*/React.createElement(\"div\", {\n className: classes.monthPickerWrapper\n }, /*#__PURE__*/React.createElement(CalendarMonth, {\n navigatedDate: navigatedMonth,\n selectedDate: navigatedDay,\n strings: strings,\n // eslint-disable-next-line react/jsx-no-bind\n onNavigateDate: onNavigateMonthDate,\n today: today,\n highlightCurrentMonth: highlightCurrentMonth,\n highlightSelectedMonth: highlightSelectedMonth,\n // eslint-disable-next-line react/jsx-no-bind\n onHeaderSelect: onHeaderSelect,\n dateTimeFormatter: dateTimeFormatter,\n minDate: minDate,\n maxDate: maxDate,\n componentRef: monthPicker,\n ...calendarMonthProps\n }), renderGoToTodayButton()) : renderGoToTodayButton());\n});\nCalendar.displayName = 'Calendar';\nfunction getShowMonthPickerAsOverlay({\n isDayPickerVisible,\n showMonthPickerAsOverlay\n}) {\n const win = getWindow();\n return showMonthPickerAsOverlay || isDayPickerVisible && win && win.innerWidth <= MIN_SIZE_FORCE_OVERLAY;\n}\n//# sourceMappingURL=Calendar.js.map"],"names":["Calendar","MIN_SIZE_FORCE_OVERLAY","defaultWorkWeekDays","DayOfWeek","Monday","Tuesday","Wednesday","Thursday","Friday","useDateState","value","today","Date","onSelectDate","selectedDate","setSelectedDate","useControllableState","defaultState","initialState","state","navigatedDay","setNavigatedDay","React","useState","navigatedMonth","setNavigatedMonth","lastSelectedDate","setLastSelectedDate","valueOf","navigateMonth","date","navigateDay","onDateSelected","selectedDateRangeArray","useVisibilityState","isDayPickerVisible","isDayPickerVisibleProp","isMonthPickerVisible","isMonthPickerVisibleProp","showMonthPickerAsOverlay","setIsMonthPickerVisible","getShowMonthPickerAsOverlay","undefined","setIsDayPickerVisible","toggleDayMonthPickerVisibility","useFocusLogic","componentRef","dayPicker","useRef","monthPicker","focusOnUpdate","focus","useCallback","current","focusAsync","useImperativeHandle","useEffect","focusOnNextUpdate","forwardRef","props","forwardedRef","allFocusable","calendarDayProps","calendarMonthProps","className","dateRangeType","DateRangeType","Day","dateTimeFormatter","DEFAULT_DATE_FORMATTING","firstDayOfWeek","Sunday","firstWeekOfYear","FirstWeekOfYear","FirstDay","highlightCurrentMonth","highlightSelectedMonth","id","maxDate","minDate","onDismiss","restrictedDates","showCloseButton","showGoToToday","showMonthPickerAsOverlayProp","showSixWeeksByDefault","showWeekNumbers","strings","DEFAULT_CALENDAR_STRINGS","workWeekDays","renderGoToTodayButton","goTodayEnabled","getFullYear","getMonth","createElement","classes","goTodayButton","onClick","onGotoToday","onKeyDown","onButtonKeyDown","type","disabled","goToToday","onNavigateDayDate","focusOnNavigatedDay","onNavigateMonthDate","monthPickerOnly","onHeaderSelect","callback","ev","key","Enter","Space","onDatePickerPopupKeyDown","preventDefault","Backspace","Escape","PageUp","ctrlKey","addYears","addMonths","PageDown","useCalendarStyles_unstable","todayDateString","selectedDateString","todayDateFormatString","replace","formatMonthDayYear","selectedDateFormatString","selectionAndTodayString","ref","role","root","liveRegion","CalendarDay","navigatedDate","onNavigateDate","divider","monthPickerWrapper","CalendarMonth","displayName","win","getWindow","innerWidth"],"mappings":"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"}
|
|
1
|
+
{"version":3,"sources":["../../../lib/components/Calendar/Calendar.js"],"sourcesContent":["import * as React from 'react';\nimport { Backspace, Enter, Escape, PageDown, PageUp, Space } from '@fluentui/keyboard-keys';\nimport { useControllableState } from '@fluentui/react-utilities';\nimport { addMonths, addYears, DateRangeType, DayOfWeek, DEFAULT_CALENDAR_STRINGS, DEFAULT_DATE_FORMATTING, FirstWeekOfYear, focusAsync, getWindow } from '../../utils';\nimport { CalendarDay } from '../CalendarDay/CalendarDay';\nimport { CalendarMonth } from '../CalendarMonth/CalendarMonth';\nimport { useCalendarStyles_unstable } from './useCalendarStyles.styles';\nconst MIN_SIZE_FORCE_OVERLAY = 440;\nconst defaultWorkWeekDays = [DayOfWeek.Monday, DayOfWeek.Tuesday, DayOfWeek.Wednesday, DayOfWeek.Thursday, DayOfWeek.Friday];\nfunction useDateState({\n value,\n today = new Date(),\n onSelectDate\n}) {\n /** The currently selected date in the calendar */const [selectedDate, setSelectedDate] = useControllableState({\n defaultState: today,\n initialState: today,\n state: value\n });\n /** The currently focused date in the day picker, but not necessarily selected */\n const [navigatedDay = today, setNavigatedDay] = React.useState(value);\n /** The currently focused date in the month picker, but not necessarily selected */\n const [navigatedMonth = today, setNavigatedMonth] = React.useState(value);\n /** If using a controlled value, when that value changes, navigate to that date */\n const [lastSelectedDate = today, setLastSelectedDate] = React.useState(value);\n if (value && lastSelectedDate.valueOf() !== value.valueOf()) {\n setNavigatedDay(value);\n setNavigatedMonth(value);\n setLastSelectedDate(value);\n }\n const navigateMonth = date => {\n setNavigatedMonth(date);\n };\n const navigateDay = date => {\n setNavigatedMonth(date);\n setNavigatedDay(date);\n };\n const onDateSelected = (date, selectedDateRangeArray) => {\n setNavigatedMonth(date);\n setNavigatedDay(date);\n setSelectedDate(date);\n onSelectDate === null || onSelectDate === void 0 ? void 0 : onSelectDate(date, selectedDateRangeArray);\n };\n return [selectedDate, navigatedDay, navigatedMonth, onDateSelected, navigateDay, navigateMonth];\n}\nfunction useVisibilityState({\n isDayPickerVisible: isDayPickerVisibleProp,\n isMonthPickerVisible: isMonthPickerVisibleProp,\n showMonthPickerAsOverlay\n}) {\n /** State used to show/hide month picker */const [isMonthPickerVisible, setIsMonthPickerVisible] = useControllableState({\n defaultState: false,\n initialState: true,\n state: getShowMonthPickerAsOverlay({\n isDayPickerVisible: isDayPickerVisibleProp,\n showMonthPickerAsOverlay\n }) ? undefined : isMonthPickerVisibleProp\n });\n /** State used to show/hide day picker */\n const [isDayPickerVisible, setIsDayPickerVisible] = useControllableState({\n defaultState: true,\n initialState: true,\n state: getShowMonthPickerAsOverlay({\n isDayPickerVisible: isDayPickerVisibleProp,\n showMonthPickerAsOverlay\n }) ? undefined : isDayPickerVisibleProp\n });\n const toggleDayMonthPickerVisibility = () => {\n setIsMonthPickerVisible(!isMonthPickerVisible);\n setIsDayPickerVisible(!isDayPickerVisible);\n };\n return [isMonthPickerVisible, isDayPickerVisible, toggleDayMonthPickerVisibility];\n}\nfunction useFocusLogic({\n componentRef\n}, isDayPickerVisible, isMonthPickerVisible) {\n const dayPicker = React.useRef(null);\n const monthPicker = React.useRef(null);\n const focusOnUpdate = React.useRef(false);\n const focus = React.useCallback(() => {\n if (isDayPickerVisible && dayPicker.current) {\n focusAsync(dayPicker.current);\n } else if (isMonthPickerVisible && monthPicker.current) {\n focusAsync(monthPicker.current);\n }\n }, [isDayPickerVisible, isMonthPickerVisible]);\n React.useImperativeHandle(componentRef, () => ({\n focus\n }), [focus]);\n React.useEffect(() => {\n if (focusOnUpdate.current) {\n focus();\n focusOnUpdate.current = false;\n }\n });\n const focusOnNextUpdate = () => {\n focusOnUpdate.current = true;\n };\n return [dayPicker, monthPicker, focusOnNextUpdate];\n}\n/**\n * @internal\n */\nexport const Calendar = /*#__PURE__*/React.forwardRef((props, forwardedRef) => {\n const {\n allFocusable = false,\n calendarDayProps,\n calendarMonthProps,\n className,\n componentRef,\n dateRangeType = DateRangeType.Day,\n dateTimeFormatter = DEFAULT_DATE_FORMATTING,\n firstDayOfWeek = DayOfWeek.Sunday,\n firstWeekOfYear = FirstWeekOfYear.FirstDay,\n highlightCurrentMonth = false,\n highlightSelectedMonth = false,\n id,\n isDayPickerVisible: isDayPickerVisibleProp = true,\n isMonthPickerVisible: isMonthPickerVisibleProp = true,\n maxDate,\n minDate,\n onDismiss,\n onSelectDate,\n restrictedDates,\n showCloseButton = false,\n showGoToToday = true,\n showMonthPickerAsOverlay: showMonthPickerAsOverlayProp = false,\n showSixWeeksByDefault = false,\n showWeekNumbers = false,\n strings = DEFAULT_CALENDAR_STRINGS,\n today = new Date(),\n value,\n workWeekDays = defaultWorkWeekDays\n } = props;\n const [selectedDate, navigatedDay, navigatedMonth, onDateSelected, navigateDay, navigateMonth] = useDateState({\n onSelectDate,\n value,\n today\n });\n const [isMonthPickerVisible, isDayPickerVisible, toggleDayMonthPickerVisibility] = useVisibilityState({\n isDayPickerVisible: isDayPickerVisibleProp,\n isMonthPickerVisible: isMonthPickerVisibleProp,\n showMonthPickerAsOverlay: showMonthPickerAsOverlayProp\n });\n const [dayPicker, monthPicker, focusOnNextUpdate] = useFocusLogic({\n componentRef\n }, isDayPickerVisible, isMonthPickerVisible);\n const renderGoToTodayButton = () => {\n let goTodayEnabled = showGoToToday;\n if (goTodayEnabled && today) {\n goTodayEnabled = navigatedDay.getFullYear() !== today.getFullYear() || navigatedDay.getMonth() !== today.getMonth() || navigatedMonth.getFullYear() !== today.getFullYear() || navigatedMonth.getMonth() !== today.getMonth();\n }\n return showGoToToday && /*#__PURE__*/React.createElement(\"button\", {\n className: classes.goTodayButton,\n onClick: onGotoToday,\n onKeyDown: onButtonKeyDown(onGotoToday),\n type: \"button\",\n disabled: !goTodayEnabled\n }, strings.goToToday);\n };\n const onNavigateDayDate = (date, focusOnNavigatedDay) => {\n navigateDay(date);\n if (focusOnNavigatedDay) {\n focusOnNextUpdate();\n }\n };\n const onNavigateMonthDate = (date, focusOnNavigatedDay) => {\n if (focusOnNavigatedDay) {\n focusOnNextUpdate();\n }\n if (!focusOnNavigatedDay) {\n navigateMonth(date);\n return;\n }\n if (monthPickerOnly) {\n onDateSelected(date);\n }\n navigateDay(date);\n };\n const onHeaderSelect = getShowMonthPickerAsOverlay({\n isDayPickerVisible: isDayPickerVisibleProp,\n showMonthPickerAsOverlay: showMonthPickerAsOverlayProp\n }) ? () => {\n toggleDayMonthPickerVisibility();\n focusOnNextUpdate();\n } : undefined;\n const onGotoToday = () => {\n navigateDay(today);\n focusOnNextUpdate();\n };\n const onButtonKeyDown = callback => {\n return ev => {\n switch (ev.key) {\n case Enter:\n case Space:\n callback();\n break;\n }\n };\n };\n const onDatePickerPopupKeyDown = ev => {\n switch (ev.key) {\n case Enter:\n ev.preventDefault();\n break;\n case Backspace:\n ev.preventDefault();\n break;\n case Escape:\n ev.stopPropagation();\n onDismiss === null || onDismiss === void 0 ? void 0 : onDismiss();\n break;\n case PageUp:\n if (ev.ctrlKey) {\n // go to next year\n navigateDay(addYears(navigatedDay, 1));\n } else {\n // go to next month\n navigateDay(addMonths(navigatedDay, 1));\n }\n ev.preventDefault();\n break;\n case PageDown:\n if (ev.ctrlKey) {\n // go to previous year\n navigateDay(addYears(navigatedDay, -1));\n } else {\n // go to previous month\n navigateDay(addMonths(navigatedDay, -1));\n }\n ev.preventDefault();\n break;\n default:\n break;\n }\n };\n const showMonthPickerAsOverlay = getShowMonthPickerAsOverlay(props);\n const monthPickerOnly = !showMonthPickerAsOverlay && !isDayPickerVisible;\n const classes = useCalendarStyles_unstable({\n className,\n isDayPickerVisible,\n isMonthPickerVisible,\n showWeekNumbers\n });\n let todayDateString = '';\n let selectedDateString = '';\n if (dateTimeFormatter && strings.todayDateFormatString) {\n todayDateString = strings.todayDateFormatString.replace('{0}', dateTimeFormatter.formatMonthDayYear(today, strings));\n }\n if (dateTimeFormatter && strings.selectedDateFormatString) {\n selectedDateString = strings.selectedDateFormatString.replace('{0}', dateTimeFormatter.formatMonthDayYear(selectedDate, strings));\n }\n const selectionAndTodayString = selectedDateString + ', ' + todayDateString;\n return /*#__PURE__*/React.createElement(\"div\", {\n id: id,\n ref: forwardedRef,\n role: \"group\",\n \"aria-label\": selectionAndTodayString,\n className: classes.root,\n onKeyDown: onDatePickerPopupKeyDown\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: classes.liveRegion,\n \"aria-live\": \"polite\",\n \"aria-atomic\": \"true\"\n }, /*#__PURE__*/React.createElement(\"span\", null, selectedDateString)), isDayPickerVisible && /*#__PURE__*/React.createElement(CalendarDay, {\n selectedDate: selectedDate,\n navigatedDate: navigatedDay,\n today: today,\n onSelectDate: onDateSelected,\n // eslint-disable-next-line react/jsx-no-bind\n onNavigateDate: onNavigateDayDate,\n onDismiss: onDismiss,\n firstDayOfWeek: firstDayOfWeek,\n dateRangeType: dateRangeType,\n strings: strings,\n // eslint-disable-next-line react/jsx-no-bind\n onHeaderSelect: onHeaderSelect,\n showWeekNumbers: showWeekNumbers,\n firstWeekOfYear: firstWeekOfYear,\n dateTimeFormatter: dateTimeFormatter,\n showSixWeeksByDefault: showSixWeeksByDefault,\n minDate: minDate,\n maxDate: maxDate,\n restrictedDates: restrictedDates,\n workWeekDays: workWeekDays,\n componentRef: dayPicker,\n showCloseButton: showCloseButton,\n allFocusable: allFocusable,\n ...calendarDayProps\n }), isDayPickerVisible && isMonthPickerVisible && /*#__PURE__*/React.createElement(\"div\", {\n className: classes.divider\n }), isMonthPickerVisible ? /*#__PURE__*/React.createElement(\"div\", {\n className: classes.monthPickerWrapper\n }, /*#__PURE__*/React.createElement(CalendarMonth, {\n navigatedDate: navigatedMonth,\n selectedDate: navigatedDay,\n strings: strings,\n // eslint-disable-next-line react/jsx-no-bind\n onNavigateDate: onNavigateMonthDate,\n today: today,\n highlightCurrentMonth: highlightCurrentMonth,\n highlightSelectedMonth: highlightSelectedMonth,\n // eslint-disable-next-line react/jsx-no-bind\n onHeaderSelect: onHeaderSelect,\n dateTimeFormatter: dateTimeFormatter,\n minDate: minDate,\n maxDate: maxDate,\n componentRef: monthPicker,\n ...calendarMonthProps\n }), renderGoToTodayButton()) : renderGoToTodayButton());\n});\nCalendar.displayName = 'Calendar';\nfunction getShowMonthPickerAsOverlay({\n isDayPickerVisible,\n showMonthPickerAsOverlay\n}) {\n const win = getWindow();\n return showMonthPickerAsOverlay || isDayPickerVisible && win && win.innerWidth <= MIN_SIZE_FORCE_OVERLAY;\n}\n//# sourceMappingURL=Calendar.js.map"],"names":["Calendar","MIN_SIZE_FORCE_OVERLAY","defaultWorkWeekDays","DayOfWeek","Monday","Tuesday","Wednesday","Thursday","Friday","useDateState","value","today","Date","onSelectDate","selectedDate","setSelectedDate","useControllableState","defaultState","initialState","state","navigatedDay","setNavigatedDay","React","useState","navigatedMonth","setNavigatedMonth","lastSelectedDate","setLastSelectedDate","valueOf","navigateMonth","date","navigateDay","onDateSelected","selectedDateRangeArray","useVisibilityState","isDayPickerVisible","isDayPickerVisibleProp","isMonthPickerVisible","isMonthPickerVisibleProp","showMonthPickerAsOverlay","setIsMonthPickerVisible","getShowMonthPickerAsOverlay","undefined","setIsDayPickerVisible","toggleDayMonthPickerVisibility","useFocusLogic","componentRef","dayPicker","useRef","monthPicker","focusOnUpdate","focus","useCallback","current","focusAsync","useImperativeHandle","useEffect","focusOnNextUpdate","forwardRef","props","forwardedRef","allFocusable","calendarDayProps","calendarMonthProps","className","dateRangeType","DateRangeType","Day","dateTimeFormatter","DEFAULT_DATE_FORMATTING","firstDayOfWeek","Sunday","firstWeekOfYear","FirstWeekOfYear","FirstDay","highlightCurrentMonth","highlightSelectedMonth","id","maxDate","minDate","onDismiss","restrictedDates","showCloseButton","showGoToToday","showMonthPickerAsOverlayProp","showSixWeeksByDefault","showWeekNumbers","strings","DEFAULT_CALENDAR_STRINGS","workWeekDays","renderGoToTodayButton","goTodayEnabled","getFullYear","getMonth","createElement","classes","goTodayButton","onClick","onGotoToday","onKeyDown","onButtonKeyDown","type","disabled","goToToday","onNavigateDayDate","focusOnNavigatedDay","onNavigateMonthDate","monthPickerOnly","onHeaderSelect","callback","ev","key","Enter","Space","onDatePickerPopupKeyDown","preventDefault","Backspace","Escape","stopPropagation","PageUp","ctrlKey","addYears","addMonths","PageDown","useCalendarStyles_unstable","todayDateString","selectedDateString","todayDateFormatString","replace","formatMonthDayYear","selectedDateFormatString","selectionAndTodayString","ref","role","root","liveRegion","CalendarDay","navigatedDate","onNavigateDate","divider","monthPickerWrapper","CalendarMonth","displayName","win","getWindow","innerWidth"],"mappings":"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"}
|
|
@@ -108,7 +108,7 @@ const useDatePicker_unstable = (props, ref)=>{
|
|
|
108
108
|
const fieldContext = (0, _reactField.useFieldContext_unstable)();
|
|
109
109
|
var _fieldContext_required;
|
|
110
110
|
const required = (_fieldContext_required = fieldContext === null || fieldContext === void 0 ? void 0 : fieldContext.required) !== null && _fieldContext_required !== void 0 ? _fieldContext_required : props.required;
|
|
111
|
-
const popupSurfaceId = (0, _reactUtilities.useId)('datePicker-
|
|
111
|
+
const popupSurfaceId = (0, _reactUtilities.useId)('datePicker-popupSurface');
|
|
112
112
|
const validateTextInput = _react.useCallback((date = null)=>{
|
|
113
113
|
let error;
|
|
114
114
|
if (allowTextInput) {
|
|
@@ -275,7 +275,7 @@ const useDatePicker_unstable = (props, ref)=>{
|
|
|
275
275
|
]);
|
|
276
276
|
const onInputClick = _react.useCallback(()=>{
|
|
277
277
|
// default openOnClick to !props.disableAutoFocus for legacy support of disableAutoFocus behavior
|
|
278
|
-
if ((openOnClick || !disableAutoFocus) && !open && !props.disabled) {
|
|
278
|
+
if ((props.openOnClick || !props.disableAutoFocus) && !open && !props.disabled) {
|
|
279
279
|
showDatePickerPopup();
|
|
280
280
|
return;
|
|
281
281
|
}
|
|
@@ -284,11 +284,11 @@ const useDatePicker_unstable = (props, ref)=>{
|
|
|
284
284
|
}
|
|
285
285
|
}, [
|
|
286
286
|
allowTextInput,
|
|
287
|
-
disableAutoFocus,
|
|
288
287
|
dismissDatePickerPopup,
|
|
289
|
-
openOnClick,
|
|
290
288
|
open,
|
|
291
289
|
props.disabled,
|
|
290
|
+
props.disableAutoFocus,
|
|
291
|
+
props.openOnClick,
|
|
292
292
|
showDatePickerPopup
|
|
293
293
|
]);
|
|
294
294
|
const onIconClick = (ev)=>{
|
|
@@ -314,8 +314,8 @@ const useDatePicker_unstable = (props, ref)=>{
|
|
|
314
314
|
readOnly: !allowTextInput,
|
|
315
315
|
role: 'combobox',
|
|
316
316
|
root: {
|
|
317
|
-
|
|
318
|
-
|
|
317
|
+
'aria-owns': open ? popupSurfaceId : undefined,
|
|
318
|
+
ref: (0, _reactUtilities.useMergedRefs)(triggerWrapperRef, ref)
|
|
319
319
|
},
|
|
320
320
|
input: {
|
|
321
321
|
ref: rootRef
|
|
@@ -362,28 +362,28 @@ const useDatePicker_unstable = (props, ref)=>{
|
|
|
362
362
|
],
|
|
363
363
|
disabled: !open
|
|
364
364
|
});
|
|
365
|
-
|
|
365
|
+
// When the popup is opened, focus should go to the calendar.
|
|
366
|
+
// In v8 this was done by focusing after the callout was positioned, but in v9 this can be simulated by using a
|
|
367
|
+
// useEffect hook.
|
|
366
368
|
_react.useEffect(()=>{
|
|
367
|
-
if (
|
|
368
|
-
|
|
369
|
-
}
|
|
370
|
-
if (open && popupRef.current) {
|
|
371
|
-
const firstFocusable = findFirstFocusable(popupRef.current);
|
|
372
|
-
firstFocusable === null || firstFocusable === void 0 ? void 0 : firstFocusable.focus();
|
|
369
|
+
if (open && !props.disabled && calendar.current) {
|
|
370
|
+
calendar.current.focus();
|
|
373
371
|
}
|
|
374
372
|
}, [
|
|
375
373
|
disableAutoFocus,
|
|
376
|
-
findFirstFocusable,
|
|
377
374
|
open,
|
|
378
|
-
|
|
375
|
+
props.disabled
|
|
376
|
+
]);
|
|
377
|
+
// When the popup is closed, focus should go back to the input.
|
|
378
|
+
_react.useEffect(()=>{
|
|
379
|
+
if (!open && !props.disabled) {
|
|
380
|
+
focus();
|
|
381
|
+
}
|
|
382
|
+
}, [
|
|
383
|
+
open,
|
|
384
|
+
props.disabled,
|
|
385
|
+
focus
|
|
379
386
|
]);
|
|
380
|
-
const popupOnClick = (0, _reactUtilities.useEventCallback)((0, _reactUtilities.mergeCallbacks)((ev)=>{
|
|
381
|
-
var _rootRef_current;
|
|
382
|
-
(_rootRef_current = rootRef.current) === null || _rootRef_current === void 0 ? void 0 : _rootRef_current.focus();
|
|
383
|
-
}, popupSurfaceShorthand === null || popupSurfaceShorthand === void 0 ? void 0 : popupSurfaceShorthand.onClick));
|
|
384
|
-
if (popupSurfaceShorthand) {
|
|
385
|
-
popupSurfaceShorthand.onClick = popupOnClick;
|
|
386
|
-
}
|
|
387
387
|
const calendarShorthand = (0, _reactUtilities.resolveShorthand)(props.calendar, {
|
|
388
388
|
required: true,
|
|
389
389
|
defaultProps: {
|
|
@@ -397,7 +397,6 @@ const useDatePicker_unstable = (props, ref)=>{
|
|
|
397
397
|
isMonthPickerVisible,
|
|
398
398
|
maxDate,
|
|
399
399
|
minDate,
|
|
400
|
-
onDismiss: calendarDismissed,
|
|
401
400
|
showCloseButton,
|
|
402
401
|
showGoToToday,
|
|
403
402
|
showMonthPickerAsOverlay,
|
|
@@ -407,6 +406,8 @@ const useDatePicker_unstable = (props, ref)=>{
|
|
|
407
406
|
value: selectedDate || initialPickerDate
|
|
408
407
|
}
|
|
409
408
|
});
|
|
409
|
+
calendarShorthand.onDismiss = (0, _reactUtilities.mergeCallbacks)(calendarShorthand.onDismiss, calendarDismissed);
|
|
410
|
+
calendarShorthand.onSelectDate = (0, _reactUtilities.mergeCallbacks)(calendarShorthand.onSelectDate, calendarDismissed);
|
|
410
411
|
_react.useImperativeHandle(props.componentRef, ()=>({
|
|
411
412
|
focus,
|
|
412
413
|
reset () {
|
|
@@ -433,7 +434,6 @@ const useDatePicker_unstable = (props, ref)=>{
|
|
|
433
434
|
popupSurface: popupSurfaceShorthand
|
|
434
435
|
};
|
|
435
436
|
state.root.value = formattedDate;
|
|
436
|
-
state.calendar.onSelectDate = (0, _reactUtilities.mergeCallbacks)(state.calendar.onSelectDate, calendarDismissed);
|
|
437
437
|
return state;
|
|
438
438
|
}; //# sourceMappingURL=useDatePicker.js.map
|
|
439
439
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../lib/components/DatePicker/useDatePicker.js"],"sourcesContent":["import * as React from 'react';\nimport { ArrowDown, Enter, Escape } from '@fluentui/keyboard-keys';\nimport { Calendar } from '../Calendar/Calendar';\nimport { CalendarMonthRegular } from '@fluentui/react-icons';\nimport { compareDatePart, DayOfWeek, FirstWeekOfYear } from '../../utils';\nimport { defaultDatePickerStrings } from './defaults';\nimport { Input } from '@fluentui/react-input';\nimport { mergeCallbacks, resolveShorthand, useControllableState, useEventCallback, useId, useMergedRefs, useOnClickOutside, useOnScrollOutside } from '@fluentui/react-utilities';\nimport { useFieldContext_unstable as useFieldContext } from '@fluentui/react-field';\nimport { useFluent_unstable as useFluent } from '@fluentui/react-shared-contexts';\nimport { useFocusFinders, useModalAttributes } from '@fluentui/react-tabster';\nimport { usePopupPositioning } from '../../utils/usePopupPositioning';\nfunction isDateOutOfBounds(date, minDate, maxDate) {\n return !!minDate && compareDatePart(minDate, date) > 0 || !!maxDate && compareDatePart(maxDate, date) < 0;\n}\nfunction useFocusLogic() {\n const inputRef = React.useRef(null);\n const preventFocusOpeningPicker = React.useRef(false);\n const focus = () => {\n var _inputRef_current, _inputRef_current_focus;\n (_inputRef_current = inputRef.current) === null || _inputRef_current === void 0 ? void 0 : (_inputRef_current_focus = _inputRef_current.focus) === null || _inputRef_current_focus === void 0 ? void 0 : _inputRef_current_focus.call(_inputRef_current);\n };\n const preventNextFocusOpeningPicker = () => {\n preventFocusOpeningPicker.current = true;\n };\n return [focus, inputRef, preventFocusOpeningPicker, preventNextFocusOpeningPicker];\n}\nfunction usePopupVisibility(props) {\n const [open, setOpen] = useControllableState({\n initialState: false,\n defaultState: props.defaultOpen,\n state: props.open\n });\n const isMounted = React.useRef(false);\n React.useEffect(() => {\n if (isMounted.current && !open) {\n var\n // If DatePicker's menu (Calendar) is closed, run onAfterMenuDismiss\n _props_onOpenChange;\n (_props_onOpenChange = props.onOpenChange) === null || _props_onOpenChange === void 0 ? void 0 : _props_onOpenChange.call(props, false);\n }\n isMounted.current = true;\n },\n // Should only run on allowTextInput or open change\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [props.allowTextInput, open]);\n return [open, setOpen];\n}\nfunction useSelectedDate({\n formatDate,\n onSelectDate,\n value\n}) {\n const [selectedDate, setSelectedDateState] = useControllableState({\n initialState: undefined,\n state: value\n });\n const [formattedDate, setFormattedDate] = React.useState(() => value && formatDate ? formatDate(value) : '');\n const setSelectedDate = newDate => {\n if (selectedDate === undefined && newDate !== undefined || selectedDate !== undefined && newDate === undefined || newDate && selectedDate && (newDate > selectedDate || newDate < selectedDate)) {\n onSelectDate === null || onSelectDate === void 0 ? void 0 : onSelectDate(newDate);\n }\n setSelectedDateState(newDate);\n setFormattedDate(newDate && formatDate ? formatDate(newDate) : '');\n };\n React.useEffect(() => {\n setFormattedDate(value && formatDate ? formatDate(value) : '');\n }, [formatDate, value]);\n return [selectedDate, formattedDate, setSelectedDate, setFormattedDate];\n}\nconst defaultFormatDate = date => date ? date.toDateString() : '';\nconst defaultParseDateFromString = dateStr => {\n const date = Date.parse(dateStr);\n return date ? new Date(date) : null;\n};\n/**\n * Create the state required to render DatePicker.\n *\n * The returned state can be modified with hooks such as useDatePickerStyles_unstable,\n * before being passed to renderDatePicker_unstable.\n *\n * @param props - props from this instance of DatePicker\n * @param ref - reference to root Input slot\n */\nexport const useDatePicker_unstable = (props, ref) => {\n const {\n allowTextInput = false,\n allFocusable = false,\n borderless = false,\n dateTimeFormatter,\n defaultOpen = false,\n disableAutoFocus = true,\n firstDayOfWeek = DayOfWeek.Sunday,\n firstWeekOfYear = FirstWeekOfYear.FirstDay,\n formatDate = defaultFormatDate,\n highlightCurrentMonth = false,\n highlightSelectedMonth = false,\n initialPickerDate = new Date(),\n inlinePopup = false,\n isMonthPickerVisible = true,\n maxDate,\n minDate,\n onOpenChange,\n onSelectDate: onUserSelectDate,\n openOnClick = true,\n onValidationResult,\n parseDateFromString = defaultParseDateFromString,\n showCloseButton = false,\n showGoToToday = true,\n showMonthPickerAsOverlay = false,\n showWeekNumbers = false,\n strings = defaultDatePickerStrings,\n today,\n underlined = false,\n value,\n ...restOfProps\n } = props;\n const calendar = React.useRef(null);\n const [focus, rootRef, preventFocusOpeningPicker, preventNextFocusOpeningPicker] = useFocusLogic();\n const [selectedDate, formattedDate, setSelectedDate, setFormattedDate] = useSelectedDate({\n formatDate,\n onSelectDate: onUserSelectDate,\n value\n });\n const [open, setOpenState] = usePopupVisibility(props);\n const fieldContext = useFieldContext();\n var _fieldContext_required;\n const required = (_fieldContext_required = fieldContext === null || fieldContext === void 0 ? void 0 : fieldContext.required) !== null && _fieldContext_required !== void 0 ? _fieldContext_required : props.required;\n const popupSurfaceId = useId('datePicker-popoverSurface');\n const validateTextInput = React.useCallback((date = null) => {\n let error;\n if (allowTextInput) {\n if (formattedDate || date) {\n // Don't parse if the selected date has the same formatted string as what we're about to parse.\n // The formatted string might be ambiguous (ex: \"1/2/3\" or \"New Year Eve\") and the parser might\n // not be able to come up with the exact same date.\n if (selectedDate && formatDate && formatDate(date !== null && date !== void 0 ? date : selectedDate) === formattedDate) {\n return;\n }\n date = date || parseDateFromString(formattedDate);\n // Check if date is null or date is an invalid date\n if (!date || isNaN(date.getTime())) {\n // Reset input if formatting is available\n setSelectedDate(selectedDate);\n error = 'invalid-input';\n } else {\n if (isDateOutOfBounds(date, minDate, maxDate)) {\n error = 'out-of-bounds';\n } else {\n setSelectedDate(date);\n }\n }\n } else {\n if (required) {\n error = 'required-input';\n }\n onUserSelectDate === null || onUserSelectDate === void 0 ? void 0 : onUserSelectDate(date);\n }\n } else if (required && !formattedDate) {\n error = 'required-input';\n }\n onValidationResult === null || onValidationResult === void 0 ? void 0 : onValidationResult({\n error\n });\n }, [allowTextInput, formatDate, formattedDate, maxDate, minDate, onUserSelectDate, onValidationResult, parseDateFromString, required, selectedDate, setSelectedDate]);\n const setOpen = React.useCallback(newState => {\n onOpenChange === null || onOpenChange === void 0 ? void 0 : onOpenChange(newState);\n setOpenState(newState);\n }, [onOpenChange, setOpenState]);\n const dismissDatePickerPopup = React.useCallback(newlySelectedDate => {\n if (open) {\n setOpen(false);\n validateTextInput(newlySelectedDate);\n if (!allowTextInput && newlySelectedDate) {\n setSelectedDate(newlySelectedDate);\n }\n }\n }, [allowTextInput, open, setOpen, setSelectedDate, validateTextInput]);\n const showDatePickerPopup = React.useCallback(() => {\n if (!open) {\n preventNextFocusOpeningPicker();\n setOpen(true);\n }\n }, [open, preventNextFocusOpeningPicker, setOpen]);\n /**\n * Callback for closing the calendar callout\n */\n const calendarDismissed = React.useCallback(newlySelectedDate => {\n preventNextFocusOpeningPicker();\n dismissDatePickerPopup(newlySelectedDate);\n }, [dismissDatePickerPopup, preventNextFocusOpeningPicker]);\n const onInputChange = React.useCallback((ev, data) => {\n const {\n value: newValue\n } = data;\n if (allowTextInput) {\n if (open) {\n dismissDatePickerPopup();\n }\n setFormattedDate(newValue);\n }\n }, [allowTextInput, dismissDatePickerPopup, open, setFormattedDate]);\n const onInputBlur = React.useCallback(() => {\n validateTextInput();\n }, [validateTextInput]);\n const onInputKeyDown = React.useCallback(ev => {\n switch (ev.key) {\n case Enter:\n ev.preventDefault();\n ev.stopPropagation();\n if (!open) {\n validateTextInput();\n showDatePickerPopup();\n } else {\n // When DatePicker allows input date string directly,\n // it is expected to hit another enter to close the popup\n if (props.allowTextInput) {\n dismissDatePickerPopup();\n }\n }\n break;\n case Escape:\n ev.stopPropagation();\n ev.preventDefault();\n if (open) {\n calendarDismissed();\n }\n break;\n case ArrowDown:\n ev.preventDefault();\n if (ev.altKey && !open) {\n showDatePickerPopup();\n }\n break;\n default:\n break;\n }\n }, [calendarDismissed, dismissDatePickerPopup, open, props.allowTextInput, showDatePickerPopup, validateTextInput]);\n const onInputFocus = React.useCallback(() => {\n if (disableAutoFocus) {\n return;\n }\n if (!allowTextInput) {\n if (!preventFocusOpeningPicker.current) {\n showDatePickerPopup();\n }\n preventFocusOpeningPicker.current = false;\n }\n }, [allowTextInput, disableAutoFocus, preventFocusOpeningPicker, showDatePickerPopup]);\n const onInputClick = React.useCallback(() => {\n // default openOnClick to !props.disableAutoFocus for legacy support of disableAutoFocus behavior\n if ((openOnClick || !disableAutoFocus) && !open && !props.disabled) {\n showDatePickerPopup();\n return;\n }\n if (allowTextInput) {\n dismissDatePickerPopup();\n }\n }, [allowTextInput, disableAutoFocus, dismissDatePickerPopup, openOnClick, open, props.disabled, showDatePickerPopup]);\n const onIconClick = ev => {\n ev.stopPropagation();\n if (!open && !props.disabled) {\n showDatePickerPopup();\n } else if (props.allowTextInput) {\n dismissDatePickerPopup();\n }\n };\n const inputAppearance = underlined ? 'underline' : borderless ? 'filled-lighter' : 'outline';\n const [triggerWrapperRef, popupRef] = usePopupPositioning(props);\n const rootShorthand = resolveShorthand(restOfProps, {\n required: true,\n defaultProps: {\n appearance: inputAppearance,\n 'aria-controls': open ? popupSurfaceId : undefined,\n 'aria-expanded': open,\n 'aria-haspopup': 'dialog',\n contentAfter: /*#__PURE__*/React.createElement(CalendarMonthRegular, {\n onClick: onIconClick\n }),\n readOnly: !allowTextInput,\n role: 'combobox',\n root: {\n ref: useMergedRefs(triggerWrapperRef, ref),\n 'aria-owns': popupSurfaceId\n },\n input: {\n ref: rootRef\n }\n }\n });\n rootShorthand.onChange = mergeCallbacks(rootShorthand.onChange, onInputChange);\n rootShorthand.onBlur = mergeCallbacks(rootShorthand.onBlur, onInputBlur);\n rootShorthand.onKeyDown = mergeCallbacks(rootShorthand.onKeyDown, onInputKeyDown);\n rootShorthand.onFocus = mergeCallbacks(rootShorthand.onFocus, onInputFocus);\n rootShorthand.onClick = mergeCallbacks(rootShorthand.onClick, onInputClick);\n const {\n modalAttributes\n } = useModalAttributes({\n trapFocus: true,\n alwaysFocusable: true,\n legacyTrapFocus: false\n });\n const popupSurfaceShorthand = open ? resolveShorthand(props.popupSurface, {\n required: true,\n defaultProps: {\n 'aria-label': 'Calendar',\n 'aria-modal': true,\n id: popupSurfaceId,\n role: 'dialog',\n ref: popupRef,\n ...modalAttributes\n }\n }) : undefined;\n const {\n targetDocument\n } = useFluent();\n useOnClickOutside({\n element: targetDocument,\n callback: ev => dismissDatePickerPopup(),\n refs: [triggerWrapperRef, popupRef],\n disabled: !open\n });\n useOnScrollOutside({\n element: targetDocument,\n callback: ev => dismissDatePickerPopup(),\n refs: [triggerWrapperRef, popupRef],\n disabled: !open\n });\n const {\n findFirstFocusable\n } = useFocusFinders();\n React.useEffect(() => {\n if (disableAutoFocus) {\n return;\n }\n if (open && popupRef.current) {\n const firstFocusable = findFirstFocusable(popupRef.current);\n firstFocusable === null || firstFocusable === void 0 ? void 0 : firstFocusable.focus();\n }\n }, [disableAutoFocus, findFirstFocusable, open, popupRef]);\n const popupOnClick = useEventCallback(mergeCallbacks(ev => {\n var _rootRef_current;\n (_rootRef_current = rootRef.current) === null || _rootRef_current === void 0 ? void 0 : _rootRef_current.focus();\n }, popupSurfaceShorthand === null || popupSurfaceShorthand === void 0 ? void 0 : popupSurfaceShorthand.onClick));\n if (popupSurfaceShorthand) {\n popupSurfaceShorthand.onClick = popupOnClick;\n }\n const calendarShorthand = resolveShorthand(props.calendar, {\n required: true,\n defaultProps: {\n allFocusable,\n componentRef: calendar,\n dateTimeFormatter,\n firstDayOfWeek,\n firstWeekOfYear,\n highlightCurrentMonth,\n highlightSelectedMonth,\n isMonthPickerVisible,\n maxDate,\n minDate,\n onDismiss: calendarDismissed,\n showCloseButton,\n showGoToToday,\n showMonthPickerAsOverlay,\n showWeekNumbers,\n strings,\n today,\n value: selectedDate || initialPickerDate\n }\n });\n React.useImperativeHandle(props.componentRef, () => ({\n focus,\n reset() {\n setOpen(false);\n setSelectedDate(undefined);\n },\n showDatePickerPopup\n }), [focus, setOpen, setSelectedDate, showDatePickerPopup]);\n const state = {\n disabled: !!props.disabled,\n inlinePopup,\n components: {\n root: Input,\n calendar: Calendar,\n popupSurface: 'div'\n },\n calendar: calendarShorthand,\n root: rootShorthand,\n popupSurface: popupSurfaceShorthand\n };\n state.root.value = formattedDate;\n state.calendar.onSelectDate = mergeCallbacks(state.calendar.onSelectDate, calendarDismissed);\n return state;\n};\n//# sourceMappingURL=useDatePicker.js.map"],"names":["useDatePicker_unstable","isDateOutOfBounds","date","minDate","maxDate","compareDatePart","useFocusLogic","inputRef","React","useRef","preventFocusOpeningPicker","focus","_inputRef_current","_inputRef_current_focus","current","call","preventNextFocusOpeningPicker","usePopupVisibility","props","open","setOpen","useControllableState","initialState","defaultState","defaultOpen","state","isMounted","useEffect","_props_onOpenChange","onOpenChange","allowTextInput","useSelectedDate","formatDate","onSelectDate","value","selectedDate","setSelectedDateState","undefined","formattedDate","setFormattedDate","useState","setSelectedDate","newDate","defaultFormatDate","toDateString","defaultParseDateFromString","dateStr","Date","parse","ref","allFocusable","borderless","dateTimeFormatter","disableAutoFocus","firstDayOfWeek","DayOfWeek","Sunday","firstWeekOfYear","FirstWeekOfYear","FirstDay","highlightCurrentMonth","highlightSelectedMonth","initialPickerDate","inlinePopup","isMonthPickerVisible","onUserSelectDate","openOnClick","onValidationResult","parseDateFromString","showCloseButton","showGoToToday","showMonthPickerAsOverlay","showWeekNumbers","strings","defaultDatePickerStrings","today","underlined","restOfProps","calendar","rootRef","setOpenState","fieldContext","useFieldContext","_fieldContext_required","required","popupSurfaceId","useId","validateTextInput","useCallback","error","isNaN","getTime","newState","dismissDatePickerPopup","newlySelectedDate","showDatePickerPopup","calendarDismissed","onInputChange","ev","data","newValue","onInputBlur","onInputKeyDown","key","Enter","preventDefault","stopPropagation","Escape","ArrowDown","altKey","onInputFocus","onInputClick","disabled","onIconClick","inputAppearance","triggerWrapperRef","popupRef","usePopupPositioning","rootShorthand","resolveShorthand","defaultProps","appearance","contentAfter","createElement","CalendarMonthRegular","onClick","readOnly","role","root","useMergedRefs","input","onChange","mergeCallbacks","onBlur","onKeyDown","onFocus","modalAttributes","useModalAttributes","trapFocus","alwaysFocusable","legacyTrapFocus","popupSurfaceShorthand","popupSurface","id","targetDocument","useFluent","useOnClickOutside","element","callback","refs","useOnScrollOutside","findFirstFocusable","useFocusFinders","firstFocusable","popupOnClick","useEventCallback","_rootRef_current","calendarShorthand","componentRef","onDismiss","useImperativeHandle","reset","components","Input","Calendar"],"mappings":"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"}
|
|
1
|
+
{"version":3,"sources":["../../../lib/components/DatePicker/useDatePicker.js"],"sourcesContent":["import * as React from 'react';\nimport { ArrowDown, Enter, Escape } from '@fluentui/keyboard-keys';\nimport { Calendar } from '../Calendar/Calendar';\nimport { CalendarMonthRegular } from '@fluentui/react-icons';\nimport { compareDatePart, DayOfWeek, FirstWeekOfYear } from '../../utils';\nimport { defaultDatePickerStrings } from './defaults';\nimport { Input } from '@fluentui/react-input';\nimport { mergeCallbacks, resolveShorthand, useControllableState, useId, useMergedRefs, useOnClickOutside, useOnScrollOutside } from '@fluentui/react-utilities';\nimport { useFieldContext_unstable as useFieldContext } from '@fluentui/react-field';\nimport { useFluent_unstable as useFluent } from '@fluentui/react-shared-contexts';\nimport { useModalAttributes } from '@fluentui/react-tabster';\nimport { usePopupPositioning } from '../../utils/usePopupPositioning';\nfunction isDateOutOfBounds(date, minDate, maxDate) {\n return !!minDate && compareDatePart(minDate, date) > 0 || !!maxDate && compareDatePart(maxDate, date) < 0;\n}\nfunction useFocusLogic() {\n const inputRef = React.useRef(null);\n const preventFocusOpeningPicker = React.useRef(false);\n const focus = () => {\n var _inputRef_current, _inputRef_current_focus;\n (_inputRef_current = inputRef.current) === null || _inputRef_current === void 0 ? void 0 : (_inputRef_current_focus = _inputRef_current.focus) === null || _inputRef_current_focus === void 0 ? void 0 : _inputRef_current_focus.call(_inputRef_current);\n };\n const preventNextFocusOpeningPicker = () => {\n preventFocusOpeningPicker.current = true;\n };\n return [focus, inputRef, preventFocusOpeningPicker, preventNextFocusOpeningPicker];\n}\nfunction usePopupVisibility(props) {\n const [open, setOpen] = useControllableState({\n initialState: false,\n defaultState: props.defaultOpen,\n state: props.open\n });\n const isMounted = React.useRef(false);\n React.useEffect(() => {\n if (isMounted.current && !open) {\n var\n // If DatePicker's menu (Calendar) is closed, run onAfterMenuDismiss\n _props_onOpenChange;\n (_props_onOpenChange = props.onOpenChange) === null || _props_onOpenChange === void 0 ? void 0 : _props_onOpenChange.call(props, false);\n }\n isMounted.current = true;\n },\n // Should only run on allowTextInput or open change\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [props.allowTextInput, open]);\n return [open, setOpen];\n}\nfunction useSelectedDate({\n formatDate,\n onSelectDate,\n value\n}) {\n const [selectedDate, setSelectedDateState] = useControllableState({\n initialState: undefined,\n state: value\n });\n const [formattedDate, setFormattedDate] = React.useState(() => value && formatDate ? formatDate(value) : '');\n const setSelectedDate = newDate => {\n if (selectedDate === undefined && newDate !== undefined || selectedDate !== undefined && newDate === undefined || newDate && selectedDate && (newDate > selectedDate || newDate < selectedDate)) {\n onSelectDate === null || onSelectDate === void 0 ? void 0 : onSelectDate(newDate);\n }\n setSelectedDateState(newDate);\n setFormattedDate(newDate && formatDate ? formatDate(newDate) : '');\n };\n React.useEffect(() => {\n setFormattedDate(value && formatDate ? formatDate(value) : '');\n }, [formatDate, value]);\n return [selectedDate, formattedDate, setSelectedDate, setFormattedDate];\n}\nconst defaultFormatDate = date => date ? date.toDateString() : '';\nconst defaultParseDateFromString = dateStr => {\n const date = Date.parse(dateStr);\n return date ? new Date(date) : null;\n};\n/**\n * Create the state required to render DatePicker.\n *\n * The returned state can be modified with hooks such as useDatePickerStyles_unstable,\n * before being passed to renderDatePicker_unstable.\n *\n * @param props - props from this instance of DatePicker\n * @param ref - reference to root Input slot\n */\nexport const useDatePicker_unstable = (props, ref) => {\n const {\n allowTextInput = false,\n allFocusable = false,\n borderless = false,\n dateTimeFormatter,\n defaultOpen = false,\n disableAutoFocus = true,\n firstDayOfWeek = DayOfWeek.Sunday,\n firstWeekOfYear = FirstWeekOfYear.FirstDay,\n formatDate = defaultFormatDate,\n highlightCurrentMonth = false,\n highlightSelectedMonth = false,\n initialPickerDate = new Date(),\n inlinePopup = false,\n isMonthPickerVisible = true,\n maxDate,\n minDate,\n onOpenChange,\n onSelectDate: onUserSelectDate,\n openOnClick = true,\n onValidationResult,\n parseDateFromString = defaultParseDateFromString,\n showCloseButton = false,\n showGoToToday = true,\n showMonthPickerAsOverlay = false,\n showWeekNumbers = false,\n strings = defaultDatePickerStrings,\n today,\n underlined = false,\n value,\n ...restOfProps\n } = props;\n const calendar = React.useRef(null);\n const [focus, rootRef, preventFocusOpeningPicker, preventNextFocusOpeningPicker] = useFocusLogic();\n const [selectedDate, formattedDate, setSelectedDate, setFormattedDate] = useSelectedDate({\n formatDate,\n onSelectDate: onUserSelectDate,\n value\n });\n const [open, setOpenState] = usePopupVisibility(props);\n const fieldContext = useFieldContext();\n var _fieldContext_required;\n const required = (_fieldContext_required = fieldContext === null || fieldContext === void 0 ? void 0 : fieldContext.required) !== null && _fieldContext_required !== void 0 ? _fieldContext_required : props.required;\n const popupSurfaceId = useId('datePicker-popupSurface');\n const validateTextInput = React.useCallback((date = null) => {\n let error;\n if (allowTextInput) {\n if (formattedDate || date) {\n // Don't parse if the selected date has the same formatted string as what we're about to parse.\n // The formatted string might be ambiguous (ex: \"1/2/3\" or \"New Year Eve\") and the parser might\n // not be able to come up with the exact same date.\n if (selectedDate && formatDate && formatDate(date !== null && date !== void 0 ? date : selectedDate) === formattedDate) {\n return;\n }\n date = date || parseDateFromString(formattedDate);\n // Check if date is null or date is an invalid date\n if (!date || isNaN(date.getTime())) {\n // Reset input if formatting is available\n setSelectedDate(selectedDate);\n error = 'invalid-input';\n } else {\n if (isDateOutOfBounds(date, minDate, maxDate)) {\n error = 'out-of-bounds';\n } else {\n setSelectedDate(date);\n }\n }\n } else {\n if (required) {\n error = 'required-input';\n }\n onUserSelectDate === null || onUserSelectDate === void 0 ? void 0 : onUserSelectDate(date);\n }\n } else if (required && !formattedDate) {\n error = 'required-input';\n }\n onValidationResult === null || onValidationResult === void 0 ? void 0 : onValidationResult({\n error\n });\n }, [allowTextInput, formatDate, formattedDate, maxDate, minDate, onUserSelectDate, onValidationResult, parseDateFromString, required, selectedDate, setSelectedDate]);\n const setOpen = React.useCallback(newState => {\n onOpenChange === null || onOpenChange === void 0 ? void 0 : onOpenChange(newState);\n setOpenState(newState);\n }, [onOpenChange, setOpenState]);\n const dismissDatePickerPopup = React.useCallback(newlySelectedDate => {\n if (open) {\n setOpen(false);\n validateTextInput(newlySelectedDate);\n if (!allowTextInput && newlySelectedDate) {\n setSelectedDate(newlySelectedDate);\n }\n }\n }, [allowTextInput, open, setOpen, setSelectedDate, validateTextInput]);\n const showDatePickerPopup = React.useCallback(() => {\n if (!open) {\n preventNextFocusOpeningPicker();\n setOpen(true);\n }\n }, [open, preventNextFocusOpeningPicker, setOpen]);\n /**\n * Callback for closing the calendar callout\n */\n const calendarDismissed = React.useCallback(newlySelectedDate => {\n preventNextFocusOpeningPicker();\n dismissDatePickerPopup(newlySelectedDate);\n }, [dismissDatePickerPopup, preventNextFocusOpeningPicker]);\n const onInputChange = React.useCallback((ev, data) => {\n const {\n value: newValue\n } = data;\n if (allowTextInput) {\n if (open) {\n dismissDatePickerPopup();\n }\n setFormattedDate(newValue);\n }\n }, [allowTextInput, dismissDatePickerPopup, open, setFormattedDate]);\n const onInputBlur = React.useCallback(() => {\n validateTextInput();\n }, [validateTextInput]);\n const onInputKeyDown = React.useCallback(ev => {\n switch (ev.key) {\n case Enter:\n ev.preventDefault();\n ev.stopPropagation();\n if (!open) {\n validateTextInput();\n showDatePickerPopup();\n } else {\n // When DatePicker allows input date string directly,\n // it is expected to hit another enter to close the popup\n if (props.allowTextInput) {\n dismissDatePickerPopup();\n }\n }\n break;\n case Escape:\n ev.stopPropagation();\n ev.preventDefault();\n if (open) {\n calendarDismissed();\n }\n break;\n case ArrowDown:\n ev.preventDefault();\n if (ev.altKey && !open) {\n showDatePickerPopup();\n }\n break;\n default:\n break;\n }\n }, [calendarDismissed, dismissDatePickerPopup, open, props.allowTextInput, showDatePickerPopup, validateTextInput]);\n const onInputFocus = React.useCallback(() => {\n if (disableAutoFocus) {\n return;\n }\n if (!allowTextInput) {\n if (!preventFocusOpeningPicker.current) {\n showDatePickerPopup();\n }\n preventFocusOpeningPicker.current = false;\n }\n }, [allowTextInput, disableAutoFocus, preventFocusOpeningPicker, showDatePickerPopup]);\n const onInputClick = React.useCallback(() => {\n // default openOnClick to !props.disableAutoFocus for legacy support of disableAutoFocus behavior\n if ((props.openOnClick || !props.disableAutoFocus) && !open && !props.disabled) {\n showDatePickerPopup();\n return;\n }\n if (allowTextInput) {\n dismissDatePickerPopup();\n }\n }, [allowTextInput, dismissDatePickerPopup, open, props.disabled, props.disableAutoFocus, props.openOnClick, showDatePickerPopup]);\n const onIconClick = ev => {\n ev.stopPropagation();\n if (!open && !props.disabled) {\n showDatePickerPopup();\n } else if (props.allowTextInput) {\n dismissDatePickerPopup();\n }\n };\n const inputAppearance = underlined ? 'underline' : borderless ? 'filled-lighter' : 'outline';\n const [triggerWrapperRef, popupRef] = usePopupPositioning(props);\n const rootShorthand = resolveShorthand(restOfProps, {\n required: true,\n defaultProps: {\n appearance: inputAppearance,\n 'aria-controls': open ? popupSurfaceId : undefined,\n 'aria-expanded': open,\n 'aria-haspopup': 'dialog',\n contentAfter: /*#__PURE__*/React.createElement(CalendarMonthRegular, {\n onClick: onIconClick\n }),\n readOnly: !allowTextInput,\n role: 'combobox',\n root: {\n 'aria-owns': open ? popupSurfaceId : undefined,\n ref: useMergedRefs(triggerWrapperRef, ref)\n },\n input: {\n ref: rootRef\n }\n }\n });\n rootShorthand.onChange = mergeCallbacks(rootShorthand.onChange, onInputChange);\n rootShorthand.onBlur = mergeCallbacks(rootShorthand.onBlur, onInputBlur);\n rootShorthand.onKeyDown = mergeCallbacks(rootShorthand.onKeyDown, onInputKeyDown);\n rootShorthand.onFocus = mergeCallbacks(rootShorthand.onFocus, onInputFocus);\n rootShorthand.onClick = mergeCallbacks(rootShorthand.onClick, onInputClick);\n const {\n modalAttributes\n } = useModalAttributes({\n trapFocus: true,\n alwaysFocusable: true,\n legacyTrapFocus: false\n });\n const popupSurfaceShorthand = open ? resolveShorthand(props.popupSurface, {\n required: true,\n defaultProps: {\n 'aria-label': 'Calendar',\n 'aria-modal': true,\n id: popupSurfaceId,\n role: 'dialog',\n ref: popupRef,\n ...modalAttributes\n }\n }) : undefined;\n const {\n targetDocument\n } = useFluent();\n useOnClickOutside({\n element: targetDocument,\n callback: ev => dismissDatePickerPopup(),\n refs: [triggerWrapperRef, popupRef],\n disabled: !open\n });\n useOnScrollOutside({\n element: targetDocument,\n callback: ev => dismissDatePickerPopup(),\n refs: [triggerWrapperRef, popupRef],\n disabled: !open\n });\n // When the popup is opened, focus should go to the calendar.\n // In v8 this was done by focusing after the callout was positioned, but in v9 this can be simulated by using a\n // useEffect hook.\n React.useEffect(() => {\n if (open && !props.disabled && calendar.current) {\n calendar.current.focus();\n }\n }, [disableAutoFocus, open, props.disabled]);\n // When the popup is closed, focus should go back to the input.\n React.useEffect(() => {\n if (!open && !props.disabled) {\n focus();\n }\n }, [open, props.disabled, focus]);\n const calendarShorthand = resolveShorthand(props.calendar, {\n required: true,\n defaultProps: {\n allFocusable,\n componentRef: calendar,\n dateTimeFormatter,\n firstDayOfWeek,\n firstWeekOfYear,\n highlightCurrentMonth,\n highlightSelectedMonth,\n isMonthPickerVisible,\n maxDate,\n minDate,\n showCloseButton,\n showGoToToday,\n showMonthPickerAsOverlay,\n showWeekNumbers,\n strings,\n today,\n value: selectedDate || initialPickerDate\n }\n });\n calendarShorthand.onDismiss = mergeCallbacks(calendarShorthand.onDismiss, calendarDismissed);\n calendarShorthand.onSelectDate = mergeCallbacks(calendarShorthand.onSelectDate, calendarDismissed);\n React.useImperativeHandle(props.componentRef, () => ({\n focus,\n reset() {\n setOpen(false);\n setSelectedDate(undefined);\n },\n showDatePickerPopup\n }), [focus, setOpen, setSelectedDate, showDatePickerPopup]);\n const state = {\n disabled: !!props.disabled,\n inlinePopup,\n components: {\n root: Input,\n calendar: Calendar,\n popupSurface: 'div'\n },\n calendar: calendarShorthand,\n root: rootShorthand,\n popupSurface: popupSurfaceShorthand\n };\n state.root.value = formattedDate;\n return state;\n};\n//# sourceMappingURL=useDatePicker.js.map"],"names":["useDatePicker_unstable","isDateOutOfBounds","date","minDate","maxDate","compareDatePart","useFocusLogic","inputRef","React","useRef","preventFocusOpeningPicker","focus","_inputRef_current","_inputRef_current_focus","current","call","preventNextFocusOpeningPicker","usePopupVisibility","props","open","setOpen","useControllableState","initialState","defaultState","defaultOpen","state","isMounted","useEffect","_props_onOpenChange","onOpenChange","allowTextInput","useSelectedDate","formatDate","onSelectDate","value","selectedDate","setSelectedDateState","undefined","formattedDate","setFormattedDate","useState","setSelectedDate","newDate","defaultFormatDate","toDateString","defaultParseDateFromString","dateStr","Date","parse","ref","allFocusable","borderless","dateTimeFormatter","disableAutoFocus","firstDayOfWeek","DayOfWeek","Sunday","firstWeekOfYear","FirstWeekOfYear","FirstDay","highlightCurrentMonth","highlightSelectedMonth","initialPickerDate","inlinePopup","isMonthPickerVisible","onUserSelectDate","openOnClick","onValidationResult","parseDateFromString","showCloseButton","showGoToToday","showMonthPickerAsOverlay","showWeekNumbers","strings","defaultDatePickerStrings","today","underlined","restOfProps","calendar","rootRef","setOpenState","fieldContext","useFieldContext","_fieldContext_required","required","popupSurfaceId","useId","validateTextInput","useCallback","error","isNaN","getTime","newState","dismissDatePickerPopup","newlySelectedDate","showDatePickerPopup","calendarDismissed","onInputChange","ev","data","newValue","onInputBlur","onInputKeyDown","key","Enter","preventDefault","stopPropagation","Escape","ArrowDown","altKey","onInputFocus","onInputClick","disabled","onIconClick","inputAppearance","triggerWrapperRef","popupRef","usePopupPositioning","rootShorthand","resolveShorthand","defaultProps","appearance","contentAfter","createElement","CalendarMonthRegular","onClick","readOnly","role","root","useMergedRefs","input","onChange","mergeCallbacks","onBlur","onKeyDown","onFocus","modalAttributes","useModalAttributes","trapFocus","alwaysFocusable","legacyTrapFocus","popupSurfaceShorthand","popupSurface","id","targetDocument","useFluent","useOnClickOutside","element","callback","refs","useOnScrollOutside","calendarShorthand","componentRef","onDismiss","useImperativeHandle","reset","components","Input","Calendar"],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@fluentui/react-datepicker-compat",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.3",
|
|
4
4
|
"description": "React components for building web experiences",
|
|
5
5
|
"main": "lib-commonjs/index.js",
|
|
6
6
|
"module": "lib/index.js",
|
|
@@ -25,7 +25,7 @@
|
|
|
25
25
|
"generate-api": "just-scripts generate-api",
|
|
26
26
|
"storybook": "start-storybook",
|
|
27
27
|
"start": "yarn storybook",
|
|
28
|
-
"test-ssr": "test-ssr ./stories/**/*.stories.tsx"
|
|
28
|
+
"test-ssr": "test-ssr \"./stories/**/*.stories.tsx\""
|
|
29
29
|
},
|
|
30
30
|
"devDependencies": {
|
|
31
31
|
"@fluentui/eslint-plugin": "*",
|
|
@@ -36,15 +36,15 @@
|
|
|
36
36
|
},
|
|
37
37
|
"dependencies": {
|
|
38
38
|
"@fluentui/keyboard-keys": "^9.0.3",
|
|
39
|
-
"@fluentui/react-field": "^9.1.
|
|
39
|
+
"@fluentui/react-field": "^9.1.4",
|
|
40
40
|
"@fluentui/react-icons": "^2.0.196",
|
|
41
|
-
"@fluentui/react-input": "^9.4.
|
|
41
|
+
"@fluentui/react-input": "^9.4.14",
|
|
42
42
|
"@fluentui/react-jsx-runtime": "9.0.0-alpha.4",
|
|
43
|
-
"@fluentui/react-popover": "^9.5.
|
|
44
|
-
"@fluentui/react-portal": "^9.2.
|
|
45
|
-
"@fluentui/react-positioning": "^9.5.
|
|
46
|
-
"@fluentui/react-shared-contexts": "^9.
|
|
47
|
-
"@fluentui/react-tabster": "^9.7.
|
|
43
|
+
"@fluentui/react-popover": "^9.5.14",
|
|
44
|
+
"@fluentui/react-portal": "^9.2.10",
|
|
45
|
+
"@fluentui/react-positioning": "^9.5.13",
|
|
46
|
+
"@fluentui/react-shared-contexts": "^9.5.0",
|
|
47
|
+
"@fluentui/react-tabster": "^9.7.3",
|
|
48
48
|
"@fluentui/react-theme": "^9.1.8",
|
|
49
49
|
"@fluentui/react-utilities": "^9.9.0",
|
|
50
50
|
"@griffel/react": "^1.5.2",
|