@fluentui/react-calendar-compat 0.0.19 → 0.0.21
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.md +27 -5
- package/lib/components/Calendar/Calendar.js +6 -1
- package/lib/components/Calendar/Calendar.js.map +1 -1
- package/lib/components/CalendarDayGrid/useCalendarDayGridStyles.styles.js +48 -3
- package/lib/components/CalendarDayGrid/useCalendarDayGridStyles.styles.js.map +1 -1
- package/lib/components/CalendarMonth/CalendarMonth.js +1 -1
- package/lib/components/CalendarMonth/CalendarMonth.js.map +1 -1
- package/lib/components/CalendarYear/CalendarYear.js +4 -3
- package/lib/components/CalendarYear/CalendarYear.js.map +1 -1
- package/lib-commonjs/components/Calendar/Calendar.js +6 -1
- package/lib-commonjs/components/Calendar/Calendar.js.map +1 -1
- package/lib-commonjs/components/CalendarDayGrid/useCalendarDayGridStyles.styles.js +138 -2
- package/lib-commonjs/components/CalendarDayGrid/useCalendarDayGridStyles.styles.js.map +1 -1
- package/lib-commonjs/components/CalendarMonth/CalendarMonth.js +1 -1
- package/lib-commonjs/components/CalendarMonth/CalendarMonth.js.map +1 -1
- package/lib-commonjs/components/CalendarYear/CalendarYear.js +4 -3
- package/lib-commonjs/components/CalendarYear/CalendarYear.js.map +1 -1
- package/package.json +4 -4
package/CHANGELOG.md
CHANGED
@@ -1,19 +1,41 @@
|
|
1
1
|
# Change Log - @fluentui/react-calendar-compat
|
2
2
|
|
3
|
-
This log was last generated on Tue,
|
3
|
+
This log was last generated on Tue, 20 Feb 2024 14:15:21 GMT and should not be manually modified.
|
4
4
|
|
5
5
|
<!-- Start content -->
|
6
6
|
|
7
|
+
## [0.0.21](https://github.com/microsoft/fluentui/tree/@fluentui/react-calendar-compat_v0.0.21)
|
8
|
+
|
9
|
+
Tue, 20 Feb 2024 14:15:21 GMT
|
10
|
+
[Compare changes](https://github.com/microsoft/fluentui/compare/@fluentui/react-calendar-compat_v0.0.20..@fluentui/react-calendar-compat_v0.0.21)
|
11
|
+
|
12
|
+
### Patches
|
13
|
+
|
14
|
+
- fix: remove new Date() from prop destructuring ([PR #30519](https://github.com/microsoft/fluentui/pull/30519) by seanmonahan@microsoft.com)
|
15
|
+
- Bump @fluentui/react-jsx-runtime to v9.0.30 ([PR #30543](https://github.com/microsoft/fluentui/pull/30543) by beachball)
|
16
|
+
- Bump @fluentui/react-tabster to v9.19.1 ([PR #30543](https://github.com/microsoft/fluentui/pull/30543) by beachball)
|
17
|
+
- Bump @fluentui/react-utilities to v9.18.1 ([PR #30543](https://github.com/microsoft/fluentui/pull/30543) by beachball)
|
18
|
+
|
19
|
+
## [0.0.20](https://github.com/microsoft/fluentui/tree/@fluentui/react-calendar-compat_v0.0.20)
|
20
|
+
|
21
|
+
Tue, 06 Feb 2024 17:55:18 GMT
|
22
|
+
[Compare changes](https://github.com/microsoft/fluentui/compare/@fluentui/react-calendar-compat_v0.0.19..@fluentui/react-calendar-compat_v0.0.20)
|
23
|
+
|
24
|
+
### Patches
|
25
|
+
|
26
|
+
- fix: Update year and month pickers to use the correct keyboard navigation type and apply requested focus indicator width from design for day picker. ([PR #30435](https://github.com/microsoft/fluentui/pull/30435) by estebanmu@microsoft.com)
|
27
|
+
- Bump @fluentui/react-tabster to v9.19.0 ([PR #30392](https://github.com/microsoft/fluentui/pull/30392) by beachball)
|
28
|
+
|
7
29
|
## [0.0.19](https://github.com/microsoft/fluentui/tree/@fluentui/react-calendar-compat_v0.0.19)
|
8
30
|
|
9
|
-
Tue, 30 Jan 2024 23:
|
31
|
+
Tue, 30 Jan 2024 23:16:54 GMT
|
10
32
|
[Compare changes](https://github.com/microsoft/fluentui/compare/@fluentui/react-calendar-compat_v0.0.18..@fluentui/react-calendar-compat_v0.0.19)
|
11
33
|
|
12
34
|
### Patches
|
13
35
|
|
14
|
-
- Bump @fluentui/react-jsx-runtime to v9.0.29 ([PR #
|
15
|
-
- Bump @fluentui/react-tabster to v9.18.0 ([PR #
|
16
|
-
- Bump @fluentui/react-utilities to v9.18.0 ([PR #
|
36
|
+
- Bump @fluentui/react-jsx-runtime to v9.0.29 ([PR #29983](https://github.com/microsoft/fluentui/pull/29983) by beachball)
|
37
|
+
- Bump @fluentui/react-tabster to v9.18.0 ([PR #29983](https://github.com/microsoft/fluentui/pull/29983) by beachball)
|
38
|
+
- Bump @fluentui/react-utilities to v9.18.0 ([PR #29983](https://github.com/microsoft/fluentui/pull/29983) by beachball)
|
17
39
|
|
18
40
|
## [0.0.18](https://github.com/microsoft/fluentui/tree/@fluentui/react-calendar-compat_v0.0.18)
|
19
41
|
|
@@ -125,7 +125,12 @@ function useFocusLogic({ componentRef }, isDayPickerVisible, isMonthPickerVisibl
|
|
125
125
|
/**
|
126
126
|
* @internal
|
127
127
|
*/ export const Calendar = /*#__PURE__*/ React.forwardRef((props, forwardedRef)=>{
|
128
|
-
const { allFocusable = false, calendarDayProps, calendarMonthProps, className, componentRef, dateRangeType = DateRangeType.Day, dateTimeFormatter = DEFAULT_DATE_FORMATTING, firstDayOfWeek = DayOfWeek.Sunday, firstWeekOfYear = FirstWeekOfYear.FirstDay, highlightCurrentMonth = false, highlightSelectedMonth = false, id, isDayPickerVisible: isDayPickerVisibleProp = true, isMonthPickerVisible: isMonthPickerVisibleProp = true, maxDate, minDate, onDismiss, onSelectDate, restrictedDates, showCloseButton = false, showGoToToday = true, showMonthPickerAsOverlay: showMonthPickerAsOverlayProp = false, showSixWeeksByDefault = false, showWeekNumbers = false, strings = DEFAULT_CALENDAR_STRINGS, today
|
128
|
+
const { allFocusable = false, calendarDayProps, calendarMonthProps, className, componentRef, dateRangeType = DateRangeType.Day, dateTimeFormatter = DEFAULT_DATE_FORMATTING, firstDayOfWeek = DayOfWeek.Sunday, firstWeekOfYear = FirstWeekOfYear.FirstDay, highlightCurrentMonth = false, highlightSelectedMonth = false, id, isDayPickerVisible: isDayPickerVisibleProp = true, isMonthPickerVisible: isMonthPickerVisibleProp = true, maxDate, minDate, onDismiss, onSelectDate, restrictedDates, showCloseButton = false, showGoToToday = true, showMonthPickerAsOverlay: showMonthPickerAsOverlayProp = false, showSixWeeksByDefault = false, showWeekNumbers = false, strings = DEFAULT_CALENDAR_STRINGS, today: todayProp, value, workWeekDays = defaultWorkWeekDays } = props;
|
129
|
+
const today = React.useMemo(()=>{
|
130
|
+
return todayProp !== null && todayProp !== void 0 ? todayProp : new Date();
|
131
|
+
}, [
|
132
|
+
todayProp
|
133
|
+
]);
|
129
134
|
const [selectedDate, navigatedDay, navigatedMonth, onDateSelected, navigateDay, navigateMonth] = useDateState({
|
130
135
|
onSelectDate,
|
131
136
|
value,
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"sources":["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 { useFluent_unstable as useFluent } from '@fluentui/react-shared-contexts';\nimport {\n addMonths,\n addYears,\n DateRangeType,\n DayOfWeek,\n DEFAULT_CALENDAR_STRINGS,\n DEFAULT_DATE_FORMATTING,\n FirstWeekOfYear,\n focusAsync,\n} from '../../utils';\nimport { CalendarDay } from '../CalendarDay/CalendarDay';\nimport { CalendarMonth } from '../CalendarMonth/CalendarMonth';\nimport { defaultNavigationIcons } from './calendarNavigationIcons';\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(props: CalendarProps) {\n const { value, today: todayProp, onSelectDate } = props;\n\n const today = React.useMemo(() => {\n if (todayProp === undefined) {\n return new Date();\n }\n return todayProp;\n }, [todayProp]);\n\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 showMonthPickerAsOverlayState = useShowMonthPickerAsOverlay({\n isDayPickerVisible: isDayPickerVisibleProp,\n showMonthPickerAsOverlay,\n });\n\n const [isMonthPickerVisible, setIsMonthPickerVisible] = useControllableState({\n defaultState: false,\n initialState: true,\n state: showMonthPickerAsOverlayState ? undefined : isMonthPickerVisibleProp,\n });\n /** State used to show/hide day picker */\n const [isDayPickerVisible, setIsDayPickerVisible] = useControllableState({\n defaultState: true,\n initialState: true,\n state: showMonthPickerAsOverlayState ? undefined : 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 const { targetDocument } = useFluent();\n const win = targetDocument?.defaultView;\n\n const focus = React.useCallback(() => {\n if (isDayPickerVisible && dayPicker.current) {\n focusAsync(dayPicker.current, win);\n } else if (isMonthPickerVisible && monthPicker.current) {\n focusAsync(monthPicker.current, win);\n }\n }, [isDayPickerVisible, isMonthPickerVisible, win]);\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 showMonthPickerAsOverlay = useShowMonthPickerAsOverlay({\n isDayPickerVisible: isDayPickerVisibleProp,\n showMonthPickerAsOverlay: showMonthPickerAsOverlayProp,\n });\n\n const onHeaderSelect = showMonthPickerAsOverlay\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\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 const dateStringFormatter = monthPickerOnly\n ? dateTimeFormatter.formatMonthYear\n : dateTimeFormatter.formatMonthDayYear;\n selectedDateString = strings!.selectedDateFormatString.replace(\n '{0}',\n dateStringFormatter(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 navigationIcons={defaultNavigationIcons}\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 navigationIcons={defaultNavigationIcons}\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\nconst useShowMonthPickerAsOverlay = ({ isDayPickerVisible, showMonthPickerAsOverlay }: CalendarProps) => {\n const { targetDocument } = useFluent();\n const win = targetDocument?.defaultView;\n return showMonthPickerAsOverlay || (isDayPickerVisible && win && win.innerWidth <= MIN_SIZE_FORCE_OVERLAY);\n};\n"],"names":["React","Backspace","Enter","Escape","PageDown","PageUp","Space","useControllableState","useFluent_unstable","useFluent","addMonths","addYears","DateRangeType","DayOfWeek","DEFAULT_CALENDAR_STRINGS","DEFAULT_DATE_FORMATTING","FirstWeekOfYear","focusAsync","CalendarDay","CalendarMonth","defaultNavigationIcons","useCalendarStyles_unstable","MIN_SIZE_FORCE_OVERLAY","defaultWorkWeekDays","Monday","Tuesday","Wednesday","Thursday","Friday","useDateState","props","value","today","todayProp","onSelectDate","useMemo","undefined","Date","selectedDate","setSelectedDate","defaultState","initialState","state","navigatedDay","setNavigatedDay","useState","navigatedMonth","setNavigatedMonth","lastSelectedDate","setLastSelectedDate","valueOf","navigateMonth","date","navigateDay","onDateSelected","selectedDateRangeArray","useVisibilityState","isDayPickerVisible","isDayPickerVisibleProp","isMonthPickerVisible","isMonthPickerVisibleProp","showMonthPickerAsOverlay","showMonthPickerAsOverlayState","useShowMonthPickerAsOverlay","setIsMonthPickerVisible","setIsDayPickerVisible","toggleDayMonthPickerVisibility","useFocusLogic","componentRef","dayPicker","useRef","monthPicker","focusOnUpdate","targetDocument","win","defaultView","focus","useCallback","current","useImperativeHandle","useEffect","focusOnNextUpdate","Calendar","forwardRef","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","button","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","dateStringFormatter","formatMonthYear","selectionAndTodayString","div","ref","role","aria-label","root","liveRegion","aria-live","aria-atomic","span","navigatedDate","onNavigateDate","navigationIcons","divider","monthPickerWrapper","displayName","innerWidth"],"mappings":"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"}
|
1
|
+
{"version":3,"sources":["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 { useFluent_unstable as useFluent } from '@fluentui/react-shared-contexts';\nimport {\n addMonths,\n addYears,\n DateRangeType,\n DayOfWeek,\n DEFAULT_CALENDAR_STRINGS,\n DEFAULT_DATE_FORMATTING,\n FirstWeekOfYear,\n focusAsync,\n} from '../../utils';\nimport { CalendarDay } from '../CalendarDay/CalendarDay';\nimport { CalendarMonth } from '../CalendarMonth/CalendarMonth';\nimport { defaultNavigationIcons } from './calendarNavigationIcons';\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(props: CalendarProps) {\n const { value, today: todayProp, onSelectDate } = props;\n\n const today = React.useMemo(() => {\n if (todayProp === undefined) {\n return new Date();\n }\n return todayProp;\n }, [todayProp]);\n\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 showMonthPickerAsOverlayState = useShowMonthPickerAsOverlay({\n isDayPickerVisible: isDayPickerVisibleProp,\n showMonthPickerAsOverlay,\n });\n\n const [isMonthPickerVisible, setIsMonthPickerVisible] = useControllableState({\n defaultState: false,\n initialState: true,\n state: showMonthPickerAsOverlayState ? undefined : isMonthPickerVisibleProp,\n });\n /** State used to show/hide day picker */\n const [isDayPickerVisible, setIsDayPickerVisible] = useControllableState({\n defaultState: true,\n initialState: true,\n state: showMonthPickerAsOverlayState ? undefined : 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 const { targetDocument } = useFluent();\n const win = targetDocument?.defaultView;\n\n const focus = React.useCallback(() => {\n if (isDayPickerVisible && dayPicker.current) {\n focusAsync(dayPicker.current, win);\n } else if (isMonthPickerVisible && monthPicker.current) {\n focusAsync(monthPicker.current, win);\n }\n }, [isDayPickerVisible, isMonthPickerVisible, win]);\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: todayProp,\n value,\n workWeekDays = defaultWorkWeekDays,\n } = props;\n\n const today = React.useMemo(() => {\n return todayProp ?? new Date();\n }, [todayProp]);\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 showMonthPickerAsOverlay = useShowMonthPickerAsOverlay({\n isDayPickerVisible: isDayPickerVisibleProp,\n showMonthPickerAsOverlay: showMonthPickerAsOverlayProp,\n });\n\n const onHeaderSelect = showMonthPickerAsOverlay\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\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 const dateStringFormatter = monthPickerOnly\n ? dateTimeFormatter.formatMonthYear\n : dateTimeFormatter.formatMonthDayYear;\n selectedDateString = strings!.selectedDateFormatString.replace(\n '{0}',\n dateStringFormatter(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 navigationIcons={defaultNavigationIcons}\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 navigationIcons={defaultNavigationIcons}\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\nconst useShowMonthPickerAsOverlay = ({ isDayPickerVisible, showMonthPickerAsOverlay }: CalendarProps) => {\n const { targetDocument } = useFluent();\n const win = targetDocument?.defaultView;\n return showMonthPickerAsOverlay || (isDayPickerVisible && win && win.innerWidth <= MIN_SIZE_FORCE_OVERLAY);\n};\n"],"names":["React","Backspace","Enter","Escape","PageDown","PageUp","Space","useControllableState","useFluent_unstable","useFluent","addMonths","addYears","DateRangeType","DayOfWeek","DEFAULT_CALENDAR_STRINGS","DEFAULT_DATE_FORMATTING","FirstWeekOfYear","focusAsync","CalendarDay","CalendarMonth","defaultNavigationIcons","useCalendarStyles_unstable","MIN_SIZE_FORCE_OVERLAY","defaultWorkWeekDays","Monday","Tuesday","Wednesday","Thursday","Friday","useDateState","props","value","today","todayProp","onSelectDate","useMemo","undefined","Date","selectedDate","setSelectedDate","defaultState","initialState","state","navigatedDay","setNavigatedDay","useState","navigatedMonth","setNavigatedMonth","lastSelectedDate","setLastSelectedDate","valueOf","navigateMonth","date","navigateDay","onDateSelected","selectedDateRangeArray","useVisibilityState","isDayPickerVisible","isDayPickerVisibleProp","isMonthPickerVisible","isMonthPickerVisibleProp","showMonthPickerAsOverlay","showMonthPickerAsOverlayState","useShowMonthPickerAsOverlay","setIsMonthPickerVisible","setIsDayPickerVisible","toggleDayMonthPickerVisibility","useFocusLogic","componentRef","dayPicker","useRef","monthPicker","focusOnUpdate","targetDocument","win","defaultView","focus","useCallback","current","useImperativeHandle","useEffect","focusOnNextUpdate","Calendar","forwardRef","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","button","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","dateStringFormatter","formatMonthYear","selectionAndTodayString","div","ref","role","aria-label","root","liveRegion","aria-live","aria-atomic","span","navigatedDate","onNavigateDate","navigationIcons","divider","monthPickerWrapper","displayName","innerWidth"],"mappings":"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"}
|
@@ -3,6 +3,7 @@ import { __styles, mergeClasses, shorthands } from '@griffel/react';
|
|
3
3
|
import { DURATION_2, DURATION_3, EASING_FUNCTION_1, EASING_FUNCTION_2, FADE_IN, FADE_OUT, SLIDE_DOWN_IN20, SLIDE_DOWN_OUT20, SLIDE_LEFT_IN20, SLIDE_RIGHT_IN20, SLIDE_UP_IN20, SLIDE_UP_OUT20, TRANSITION_ROW_DISAPPEARANCE } from '../../utils';
|
4
4
|
import { AnimationDirection } from '../Calendar/Calendar.types';
|
5
5
|
import { weekCornersClassNames } from './useWeekCornerStyles.styles';
|
6
|
+
import { createFocusOutlineStyle } from '@fluentui/react-tabster';
|
6
7
|
/**
|
7
8
|
* @internal
|
8
9
|
*/
|
@@ -90,9 +91,45 @@ const useDayCellStyles = /*#__PURE__*/__styles({
|
|
90
91
|
Bq9yiu4: "ftezgwa",
|
91
92
|
cpbo2x: ["f1llk4aj", "f1d258es"],
|
92
93
|
Bq268z6: "f1iohfpm"
|
94
|
+
},
|
95
|
+
focusIndicator: {
|
96
|
+
Brovlpu: "ftqa4ok",
|
97
|
+
B486eqv: "f2hkw1w",
|
98
|
+
B8q5s1w: "f8hki3x",
|
99
|
+
Bci5o5g: ["f1d2448m", "ffh67wi"],
|
100
|
+
n8qw10: "f1bjia2o",
|
101
|
+
Bdrgwmp: ["ffh67wi", "f1d2448m"],
|
102
|
+
Bb7d1vk: "f226i61",
|
103
|
+
zhwhgb: ["f13kzufm", "fsx75g8"],
|
104
|
+
dhy2o1: "flujwa2",
|
105
|
+
Gfyso: ["fsx75g8", "f13kzufm"],
|
106
|
+
Bm4h7ae: "f15bsgw9",
|
107
|
+
B7ys5i9: "f14e48fq",
|
108
|
+
Busjfv9: "f18yb2kv",
|
109
|
+
Bhk32uz: "fd6o370",
|
110
|
+
Bf4ptjt: "fh1cnn4",
|
111
|
+
kclons: ["fy7oxxb", "f184ne2d"],
|
112
|
+
Bhdgwq3: "fpukqih",
|
113
|
+
Blkhhs4: ["f184ne2d", "fy7oxxb"],
|
114
|
+
Bqtpl0w: "f1umxd9d",
|
115
|
+
clg4pj: ["fp9lxrq", "f4twznv"],
|
116
|
+
hgwjuy: "f1eh9j8j",
|
117
|
+
Bonggc9: ["f4twznv", "fp9lxrq"],
|
118
|
+
B1tsrr9: ["f1jqcqds", "ftffrms"],
|
119
|
+
Dah5zi: ["ftffrms", "f1jqcqds"],
|
120
|
+
Bkh64rk: ["f2e7qr6", "fsr1zz6"],
|
121
|
+
qqdqy8: ["fsr1zz6", "f2e7qr6"],
|
122
|
+
B6dhp37: "f1dvezut",
|
123
|
+
i03rao: ["fd0oaoj", "f1cwg4i8"],
|
124
|
+
Boxcth7: "fjvm52t",
|
125
|
+
Bsom6fd: ["f1cwg4i8", "fd0oaoj"],
|
126
|
+
J0r882: "fehyjer",
|
127
|
+
Bule8hv: ["f1e5jfm0", "f1e134r0"],
|
128
|
+
Bjwuhne: "f1ykb25c",
|
129
|
+
Ghsupd: ["f1e134r0", "f1e5jfm0"]
|
93
130
|
}
|
94
131
|
}, {
|
95
|
-
d: [".f19n0e5{color:var(--colorNeutralForeground1);}", ".f1k6fduh{cursor:pointer;}", ".fy9rknc{font-size:var(--fontSizeBase200);}", ".figsok6{font-weight:var(--fontWeightRegular);}", ".fxldao9{height:28px;}", ".f336tjw{line-height:28px;}", ".f1hu3pq6{margin-top:0;}", ".f11qmguv{margin-right:0;}", ".f1tyq0we{margin-left:0;}", ".f19f4twv{margin-bottom:0;}", ".f1g0x7ka{padding-top:0;}", ".fhxju0i{padding-right:0;}", ".f1cnd47f{padding-left:0;}", ".f1qch9an{padding-bottom:0;}", ".f10pi13n{position:relative;}", ".f1w9dchk{width:28px;}", ".fp6dsbd.fui-CalendarDayGrid__hoverStyle{color:var(--colorNeutralForeground1Static);}", ".f4xgodq.fui-CalendarDayGrid__hoverStyle{background-color:var(--colorBrandBackgroundInvertedHover);}", ".f1lhgsq9.fui-CalendarDayGrid__pressedStyle{color:var(--colorNeutralForeground1Static);}", ".fdbuq6n.fui-CalendarDayGrid__pressedStyle{background-color:var(--colorBrandBackgroundInvertedPressed);}"],
|
132
|
+
d: [".f19n0e5{color:var(--colorNeutralForeground1);}", ".f1k6fduh{cursor:pointer;}", ".fy9rknc{font-size:var(--fontSizeBase200);}", ".figsok6{font-weight:var(--fontWeightRegular);}", ".fxldao9{height:28px;}", ".f336tjw{line-height:28px;}", ".f1hu3pq6{margin-top:0;}", ".f11qmguv{margin-right:0;}", ".f1tyq0we{margin-left:0;}", ".f19f4twv{margin-bottom:0;}", ".f1g0x7ka{padding-top:0;}", ".fhxju0i{padding-right:0;}", ".f1cnd47f{padding-left:0;}", ".f1qch9an{padding-bottom:0;}", ".f10pi13n{position:relative;}", ".f1w9dchk{width:28px;}", ".fp6dsbd.fui-CalendarDayGrid__hoverStyle{color:var(--colorNeutralForeground1Static);}", ".f4xgodq.fui-CalendarDayGrid__hoverStyle{background-color:var(--colorBrandBackgroundInvertedHover);}", ".f1lhgsq9.fui-CalendarDayGrid__pressedStyle{color:var(--colorNeutralForeground1Static);}", ".fdbuq6n.fui-CalendarDayGrid__pressedStyle{background-color:var(--colorBrandBackgroundInvertedPressed);}", ".f8hki3x[data-fui-focus-visible]{border-top-color:transparent;}", ".f1d2448m[data-fui-focus-visible]{border-right-color:transparent;}", ".ffh67wi[data-fui-focus-visible]{border-left-color:transparent;}", ".f1bjia2o[data-fui-focus-visible]{border-bottom-color:transparent;}", ".f15bsgw9[data-fui-focus-visible]::after{content:\"\";}", ".f14e48fq[data-fui-focus-visible]::after{position:absolute;}", ".f18yb2kv[data-fui-focus-visible]::after{pointer-events:none;}", ".fd6o370[data-fui-focus-visible]::after{z-index:1;}", ".fh1cnn4[data-fui-focus-visible]::after{border-top-style:solid;}", ".fy7oxxb[data-fui-focus-visible]::after{border-right-style:solid;}", ".f184ne2d[data-fui-focus-visible]::after{border-left-style:solid;}", ".fpukqih[data-fui-focus-visible]::after{border-bottom-style:solid;}", ".f1umxd9d[data-fui-focus-visible]::after{border-top-width:var(--strokeWidthThin);}", ".fp9lxrq[data-fui-focus-visible]::after{border-right-width:var(--strokeWidthThin);}", ".f4twznv[data-fui-focus-visible]::after{border-left-width:var(--strokeWidthThin);}", ".f1eh9j8j[data-fui-focus-visible]::after{border-bottom-width:var(--strokeWidthThin);}", ".f1jqcqds[data-fui-focus-visible]::after{border-bottom-right-radius:var(--borderRadiusMedium);}", ".ftffrms[data-fui-focus-visible]::after{border-bottom-left-radius:var(--borderRadiusMedium);}", ".f2e7qr6[data-fui-focus-visible]::after{border-top-right-radius:var(--borderRadiusMedium);}", ".fsr1zz6[data-fui-focus-visible]::after{border-top-left-radius:var(--borderRadiusMedium);}", ".f1dvezut[data-fui-focus-visible]::after{border-top-color:var(--colorStrokeFocus2);}", ".fd0oaoj[data-fui-focus-visible]::after{border-right-color:var(--colorStrokeFocus2);}", ".f1cwg4i8[data-fui-focus-visible]::after{border-left-color:var(--colorStrokeFocus2);}", ".fjvm52t[data-fui-focus-visible]::after{border-bottom-color:var(--colorStrokeFocus2);}", ".fehyjer[data-fui-focus-visible]::after{top:calc(var(--strokeWidthThin) * -1);}", ".f1e5jfm0[data-fui-focus-visible]::after{right:calc(var(--strokeWidthThin) * -1);}", ".f1e134r0[data-fui-focus-visible]::after{left:calc(var(--strokeWidthThin) * -1);}", ".f1ykb25c[data-fui-focus-visible]::after{bottom:calc(var(--strokeWidthThin) * -1);}"],
|
96
133
|
m: [["@media (forced-colors: active){.f8pusc0{background-color:Window;}}", {
|
97
134
|
m: "(forced-colors: active)"
|
98
135
|
}], ["@media (forced-colors: active){.fqgauei{color:WindowText;}}", {
|
@@ -119,7 +156,15 @@ const useDayCellStyles = /*#__PURE__*/__styles({
|
|
119
156
|
m: "(forced-colors: active)"
|
120
157
|
}], ["@media (forced-colors: active){.f1iohfpm.fui-CalendarDayGrid__pressedStyle{color:Highlight;}}", {
|
121
158
|
m: "(forced-colors: active)"
|
122
|
-
}]]
|
159
|
+
}], ["@media (forced-colors: active){.f226i61[data-fui-focus-visible]::after{border-top-color:Highlight;}}", {
|
160
|
+
m: "(forced-colors: active)"
|
161
|
+
}], ["@media (forced-colors: active){.f13kzufm[data-fui-focus-visible]::after{border-right-color:Highlight;}.fsx75g8[data-fui-focus-visible]::after{border-left-color:Highlight;}}", {
|
162
|
+
m: "(forced-colors: active)"
|
163
|
+
}], ["@media (forced-colors: active){.flujwa2[data-fui-focus-visible]::after{border-bottom-color:Highlight;}}", {
|
164
|
+
m: "(forced-colors: active)"
|
165
|
+
}]],
|
166
|
+
f: [".ftqa4ok:focus{outline-style:none;}"],
|
167
|
+
i: [".f2hkw1w:focus-visible{outline-style:none;}"]
|
123
168
|
});
|
124
169
|
const useDaySelectedStyles = /*#__PURE__*/__styles({
|
125
170
|
base: {
|
@@ -421,7 +466,7 @@ export const useCalendarDayGridStyles_unstable = props => {
|
|
421
466
|
return {
|
422
467
|
wrapper: mergeClasses(calendarDayGridClassNames.wrapper, wrapperStyles.base),
|
423
468
|
table: mergeClasses(calendarDayGridClassNames.table, tableStyles.base, showWeekNumbers && tableStyles.showWeekNumbers),
|
424
|
-
dayCell: mergeClasses(calendarDayGridClassNames.dayCell, dayCellStyles.base, cornerBorderAndRadiusStyles.corners),
|
469
|
+
dayCell: mergeClasses(calendarDayGridClassNames.dayCell, dayCellStyles.base, dayCellStyles.focusIndicator, cornerBorderAndRadiusStyles.corners),
|
425
470
|
daySelected: mergeClasses(calendarDayGridClassNames.daySelected, daySelectedStyles.base),
|
426
471
|
weekRow: mergeClasses(calendarDayGridClassNames.weekRow, animateBackwards !== undefined && weekRowStyles.base, animateBackwards !== undefined && (animationDirection === AnimationDirection.Horizontal ? animateBackwards ? weekRowStyles.horizontalBackward : weekRowStyles.horizontalForward : animateBackwards ? weekRowStyles.verticalBackward : weekRowStyles.verticalForward)),
|
427
472
|
weekDayLabelCell: mergeClasses(calendarDayGridClassNames.weekDayLabelCell, weekDayLabelCellStyles.base),
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"names":["tokens","__styles","mergeClasses","shorthands","DURATION_2","DURATION_3","EASING_FUNCTION_1","EASING_FUNCTION_2","FADE_IN","FADE_OUT","SLIDE_DOWN_IN20","SLIDE_DOWN_OUT20","SLIDE_LEFT_IN20","SLIDE_RIGHT_IN20","SLIDE_UP_IN20","SLIDE_UP_OUT20","TRANSITION_ROW_DISAPPEARANCE","AnimationDirection","weekCornersClassNames","calendarDayGridClassNames","wrapper","table","dayCell","daySelected","weekRow","weekDayLabelCell","weekNumberCell","dayOutsideBounds","dayOutsideNavigatedMonth","dayButton","dayIsToday","firstTransitionWeek","lastTransitionWeek","dayMarker","extraCalendarDayGridClassNames","hoverStyle","pressedStyle","useWrapperStyles","base","Byoj8tv","d","useTableStyles","po53p8","Bxjg3zr","Be2twd7","B6of3ja","qhf8xq","B73mfa3","fsow6f","a9b677","showWeekNumbers","useDayCellStyles","sj55zd","Bceei9c","Bhrd7zp","Bqenvij","Bg96gwp","t21cq0","jrapky","Frg6f3","z8tnut","z189sj","uwmqm3","Bsw6fvg","Bbusuzp","cvlxnx","Bweudez","hzfqlu","Bb91d7d","dua3dm","z1p9vi","Bsnevi5","xnb59o","Bj67fi1","B2gfgcj","B6cqqer","fpurfy","Fioj4w","Bq9yiu4","cpbo2x","Bq268z6","m","useDaySelectedStyles","De3pzq","Bjwas2f","Bn1d65q","Bxeuatn","n51gp8","ycbfsm","a3nq4f","Bnf3alp","H2c3sd","qu8ld","Bg4iunc","h","useWeekRowStyles","vin17d","Bf5fcs","Ezkn3b","horizontalBackward","Bv12yb3","horizontalForward","verticalBackward","verticalForward","k","useWeekDayLabelCellStyles","famaaq","useWeekNumberCellStyles","g2u3we","h3c5rm","B9xav0g","zhjwy3","Bekrc4i","vrafjx","B7ck84d","useDayOutsideBoundsStyles","x734em","B0ssf13","B8h8h5z","useDayOutsideNavigatedMonthStyles","lightenDaysOutsideNavigatedMonth","useDayButtonStyles","Bbmb7ep","Beyfa6y","B7oj6ja","Btl43ni","icvyot","oivjwe","wvpqe5","B68tc82","Bmxbyg5","Bx0yju7","l98f4w","useDayIsTodayStyles","jxbfoe","useFirstTransitionWeekStyles","abs64n","useLastTransitionWeekStyles","useDayMarkerStyles","B5kzvoi","oyh7mz","j35jbq","useCornerBorderAndRadiusStyles","corners","Cy64m2","Bnn43bw","feanbc","B4268ip","useCalendarDayGridStyles_unstable","props","wrapperStyles","tableStyles","dayCellStyles","daySelectedStyles","weekRowStyles","weekDayLabelCellStyles","weekNumberCellStyles","dayOutsideBoundsStyles","dayOutsideNavigatedMonthStyles","dayButtonStyles","dayIsTodayStyles","firstTransitionWeekStyles","lastTransitionWeekStyles","dayMarkerStyles","cornerBorderAndRadiusStyles","animateBackwards","animationDirection","undefined","Horizontal"],"sources":["useCalendarDayGridStyles.styles.js"],"sourcesContent":["import { tokens } from '@fluentui/react-theme';\nimport { makeStyles, mergeClasses, shorthands } from '@griffel/react';\nimport { DURATION_2, DURATION_3, EASING_FUNCTION_1, EASING_FUNCTION_2, FADE_IN, FADE_OUT, SLIDE_DOWN_IN20, SLIDE_DOWN_OUT20, SLIDE_LEFT_IN20, SLIDE_RIGHT_IN20, SLIDE_UP_IN20, SLIDE_UP_OUT20, TRANSITION_ROW_DISAPPEARANCE } from '../../utils';\nimport { AnimationDirection } from '../Calendar/Calendar.types';\nimport { weekCornersClassNames } from './useWeekCornerStyles.styles';\n/**\n * @internal\n */ export const calendarDayGridClassNames = {\n wrapper: 'fui-CalendarDayGrid__wrapper',\n table: 'fui-CalendarDayGrid__table',\n dayCell: 'fui-CalendarDayGrid__dayCell',\n daySelected: 'fui-CalendarDayGrid__daySelected',\n weekRow: 'fui-CalendarDayGrid__weekRow',\n weekDayLabelCell: 'fui-CalendarDayGrid__weekDayLabelCell',\n weekNumberCell: 'fui-CalendarDayGrid__weekNumberCell',\n dayOutsideBounds: 'fui-CalendarDayGrid__dayOutsideBounds',\n dayOutsideNavigatedMonth: 'fui-CalendarDayGrid__dayOutsideNavigatedMonth',\n dayButton: 'fui-CalendarDayGrid__dayButton',\n dayIsToday: 'fui-CalendarDayGrid__dayIsToday',\n firstTransitionWeek: 'fui-CalendarDayGrid__firstTransitionWeek',\n lastTransitionWeek: 'fui-CalendarDayGrid__lastTransitionWeek',\n dayMarker: 'fui-CalendarDayGrid__dayMarker'\n};\n/**\n * @internal\n */ export const extraCalendarDayGridClassNames = {\n hoverStyle: 'fui-CalendarDayGrid__hoverStyle',\n pressedStyle: 'fui-CalendarDayGrid__pressedStyle'\n};\nconst useWrapperStyles = makeStyles({\n base: {\n paddingBottom: '10px'\n }\n});\nconst useTableStyles = makeStyles({\n base: {\n borderCollapse: 'collapse',\n borderSpacing: 0,\n fontSize: 'inherit',\n marginTop: '4px',\n paddingBottom: '10px',\n position: 'relative',\n tableLayout: 'fixed',\n textAlign: 'center',\n width: '196px'\n },\n showWeekNumbers: {\n width: '226px'\n }\n});\nconst useDayCellStyles = makeStyles({\n base: {\n color: tokens.colorNeutralForeground1,\n cursor: 'pointer',\n fontSize: tokens.fontSizeBase200,\n fontWeight: tokens.fontWeightRegular,\n height: '28px',\n lineHeight: '28px',\n ...shorthands.margin(0),\n ...shorthands.padding(0),\n position: 'relative',\n width: '28px',\n '@media (forced-colors: active)': {\n backgroundColor: 'Window',\n color: 'WindowText'\n },\n [`&.${extraCalendarDayGridClassNames.hoverStyle}`]: {\n color: tokens.colorNeutralForeground1Static,\n backgroundColor: tokens.colorBrandBackgroundInvertedHover,\n '@media (forced-colors: active)': {\n backgroundColor: 'Window',\n color: 'WindowText',\n ...shorthands.outline('1px', 'solid', 'Highlight'),\n zIndex: 3\n }\n },\n [`&.${extraCalendarDayGridClassNames.pressedStyle}`]: {\n color: tokens.colorNeutralForeground1Static,\n backgroundColor: tokens.colorBrandBackgroundInvertedPressed,\n '@media (forced-colors: active)': {\n backgroundColor: 'Window',\n ...shorthands.borderColor('Highlight'),\n color: 'Highlight'\n }\n }\n }\n});\nconst useDaySelectedStyles = makeStyles({\n base: {\n backgroundColor: tokens.colorBrandBackgroundInvertedSelected,\n color: tokens.colorNeutralForeground1Static,\n '@media (forced-colors: active)': {\n backgroundColor: 'Highlight',\n ...shorthands.borderColor('Highlight'),\n color: 'HighlightText',\n forcedColorAdjust: 'none'\n },\n [`&:hover, &.${extraCalendarDayGridClassNames.hoverStyle}, &.${extraCalendarDayGridClassNames.pressedStyle}`]: {\n color: tokens.colorNeutralForeground1Static,\n backgroundColor: tokens.colorBrandBackgroundInvertedSelected,\n '@media (forced-colors: active)': {\n backgroundColor: 'Highlight',\n color: 'HighlightText'\n }\n },\n [`& > .${calendarDayGridClassNames.dayMarker}`]: {\n '@media (forced-colors: active)': {\n backgroundColor: 'Window'\n }\n }\n }\n});\nconst useWeekRowStyles = makeStyles({\n base: {\n animationDuration: DURATION_3,\n animationFillMode: 'both',\n animationTimingFunction: EASING_FUNCTION_1\n },\n horizontalBackward: {\n animationName: [\n FADE_IN,\n SLIDE_RIGHT_IN20\n ]\n },\n horizontalForward: {\n animationName: [\n FADE_IN,\n SLIDE_LEFT_IN20\n ]\n },\n verticalBackward: {\n animationName: [\n FADE_IN,\n SLIDE_DOWN_IN20\n ]\n },\n verticalForward: {\n animationName: [\n FADE_IN,\n SLIDE_UP_IN20\n ]\n }\n});\nconst useWeekDayLabelCellStyles = makeStyles({\n base: {\n userSelect: 'none',\n animationDuration: DURATION_2,\n animationFillMode: 'both',\n animationName: FADE_IN,\n animationTimingFunction: EASING_FUNCTION_2\n }\n});\nconst useWeekNumberCellStyles = makeStyles({\n base: {\n backgroundColor: tokens.colorTransparentBackground,\n ...shorthands.borderColor(tokens.colorNeutralStroke2),\n ...shorthands.borderRight('1px', 'solid'),\n boxSizing: 'border-box',\n color: tokens.colorNeutralForeground4,\n fontSize: tokens.fontSizeBase200,\n fontWeight: tokens.fontWeightRegular,\n height: '28px',\n ...shorthands.margin(0),\n ...shorthands.padding(0),\n width: '28px'\n }\n});\nconst useDayOutsideBoundsStyles = makeStyles({\n base: {\n [`&, &:disabled, & button, &.${extraCalendarDayGridClassNames.hoverStyle}` + `, &.${extraCalendarDayGridClassNames.pressedStyle}`]: {\n backgroundColor: tokens.colorTransparentBackground,\n color: tokens.colorNeutralForegroundDisabled,\n pointerEvents: 'none'\n },\n '@media (forced-colors: active)': {\n color: 'GrayText'\n }\n }\n});\nconst useDayOutsideNavigatedMonthStyles = makeStyles({\n lightenDaysOutsideNavigatedMonth: {\n color: tokens.colorNeutralForeground4,\n fontWeight: tokens.fontWeightRegular,\n '@media (forced-colors: active)': {\n color: 'GrayText'\n }\n }\n});\nconst useDayButtonStyles = makeStyles({\n base: {\n backgroundColor: tokens.colorTransparentBackground,\n ...shorthands.borderRadius('2px'),\n ...shorthands.borderStyle('none'),\n color: 'inherit',\n cursor: 'pointer',\n fontSize: tokens.fontSizeBase200,\n fontWeight: 'inherit',\n height: '24px',\n lineHeight: '24px',\n ...shorthands.overflow('visible'),\n ...shorthands.padding(0),\n width: '24px',\n '&span': {\n height: 'inherit',\n lineHeight: 'inherit'\n }\n }\n});\nconst useDayIsTodayStyles = makeStyles({\n base: {\n backgroundColor: tokens.colorBrandBackground,\n ...shorthands.borderRadius('100%'),\n color: tokens.colorNeutralForegroundOnBrand,\n fontWeight: tokens.fontWeightSemibold,\n '@media (forced-colors: active)': {\n backgroundColor: 'WindowText',\n ...shorthands.borderColor('WindowText'),\n color: 'Window',\n forcedColorAdjust: 'none'\n },\n [`& > .${calendarDayGridClassNames.dayMarker}`]: {\n backgroundColor: tokens.colorNeutralForegroundOnBrand,\n '@media (forced-colors: active)': {\n backgroundColor: 'Window'\n }\n }\n }\n});\nconst useFirstTransitionWeekStyles = makeStyles({\n base: {\n height: 0,\n opacity: 0,\n ...shorthands.overflow('hidden'),\n position: 'absolute',\n width: 0\n },\n verticalForward: {\n animationDuration: DURATION_3,\n animationFillMode: 'both',\n animationName: [\n FADE_OUT,\n SLIDE_UP_OUT20,\n TRANSITION_ROW_DISAPPEARANCE\n ],\n animationTimingFunction: EASING_FUNCTION_1\n }\n});\nconst useLastTransitionWeekStyles = makeStyles({\n base: {\n height: 0,\n marginTop: '-28px',\n opacity: 0,\n ...shorthands.overflow('hidden'),\n position: 'absolute',\n width: 0\n },\n verticalBackward: {\n animationDuration: DURATION_3,\n animationFillMode: 'both',\n animationName: [\n FADE_OUT,\n SLIDE_DOWN_OUT20,\n TRANSITION_ROW_DISAPPEARANCE\n ],\n animationTimingFunction: EASING_FUNCTION_1\n }\n});\nconst useDayMarkerStyles = makeStyles({\n base: {\n backgroundColor: tokens.colorBrandForeground2,\n ...shorthands.borderRadius('100%'),\n bottom: '1px',\n height: '4px',\n left: 0,\n ...shorthands.margin('auto'),\n position: 'absolute',\n right: 0,\n width: '4px',\n '@media (forced-colors: active)': {\n backgroundColor: 'WindowText',\n forcedColorAdjust: 'none'\n }\n }\n});\nconst useCornerBorderAndRadiusStyles = makeStyles({\n corners: {\n [`&.${weekCornersClassNames.topRightCornerDate}`]: {\n borderTopRightRadius: '2px'\n },\n [`&.${weekCornersClassNames.topLeftCornerDate}`]: {\n borderTopLeftRadius: '2px'\n },\n [`&.${weekCornersClassNames.bottomRightCornerDate}`]: {\n borderBottomRightRadius: '2px'\n },\n [`&.${weekCornersClassNames.bottomLeftCornerDate}`]: {\n borderBottomLeftRadius: '2px'\n }\n }\n});\n/**\n * @internal\n *\n * Apply styling to the CalendarDayGrid slots based on the state\n */ export const useCalendarDayGridStyles_unstable = (props)=>{\n const wrapperStyles = useWrapperStyles();\n const tableStyles = useTableStyles();\n const dayCellStyles = useDayCellStyles();\n const daySelectedStyles = useDaySelectedStyles();\n const weekRowStyles = useWeekRowStyles();\n const weekDayLabelCellStyles = useWeekDayLabelCellStyles();\n const weekNumberCellStyles = useWeekNumberCellStyles();\n const dayOutsideBoundsStyles = useDayOutsideBoundsStyles();\n const dayOutsideNavigatedMonthStyles = useDayOutsideNavigatedMonthStyles();\n const dayButtonStyles = useDayButtonStyles();\n const dayIsTodayStyles = useDayIsTodayStyles();\n const firstTransitionWeekStyles = useFirstTransitionWeekStyles();\n const lastTransitionWeekStyles = useLastTransitionWeekStyles();\n const dayMarkerStyles = useDayMarkerStyles();\n const cornerBorderAndRadiusStyles = useCornerBorderAndRadiusStyles();\n const { animateBackwards, animationDirection, lightenDaysOutsideNavigatedMonth, showWeekNumbers } = props;\n return {\n wrapper: mergeClasses(calendarDayGridClassNames.wrapper, wrapperStyles.base),\n table: mergeClasses(calendarDayGridClassNames.table, tableStyles.base, showWeekNumbers && tableStyles.showWeekNumbers),\n dayCell: mergeClasses(calendarDayGridClassNames.dayCell, dayCellStyles.base, cornerBorderAndRadiusStyles.corners),\n daySelected: mergeClasses(calendarDayGridClassNames.daySelected, daySelectedStyles.base),\n weekRow: mergeClasses(calendarDayGridClassNames.weekRow, animateBackwards !== undefined && weekRowStyles.base, animateBackwards !== undefined && (animationDirection === AnimationDirection.Horizontal ? animateBackwards ? weekRowStyles.horizontalBackward : weekRowStyles.horizontalForward : animateBackwards ? weekRowStyles.verticalBackward : weekRowStyles.verticalForward)),\n weekDayLabelCell: mergeClasses(calendarDayGridClassNames.weekDayLabelCell, weekDayLabelCellStyles.base),\n weekNumberCell: mergeClasses(calendarDayGridClassNames.weekNumberCell, weekNumberCellStyles.base),\n dayOutsideBounds: mergeClasses(calendarDayGridClassNames.dayOutsideBounds, dayOutsideBoundsStyles.base),\n dayOutsideNavigatedMonth: mergeClasses(calendarDayGridClassNames.dayOutsideNavigatedMonth, lightenDaysOutsideNavigatedMonth && dayOutsideNavigatedMonthStyles.lightenDaysOutsideNavigatedMonth),\n dayButton: mergeClasses(calendarDayGridClassNames.dayButton, dayButtonStyles.base),\n dayIsToday: mergeClasses(calendarDayGridClassNames.dayIsToday, dayIsTodayStyles.base),\n firstTransitionWeek: mergeClasses(calendarDayGridClassNames.firstTransitionWeek, firstTransitionWeekStyles.base, animateBackwards !== undefined && animationDirection !== AnimationDirection.Horizontal && !animateBackwards && firstTransitionWeekStyles.verticalForward),\n lastTransitionWeek: mergeClasses(calendarDayGridClassNames.lastTransitionWeek, lastTransitionWeekStyles.base, animateBackwards !== undefined && animationDirection !== AnimationDirection.Horizontal && animateBackwards && lastTransitionWeekStyles.verticalBackward),\n dayMarker: mergeClasses(calendarDayGridClassNames.dayMarker, dayMarkerStyles.base)\n };\n};\n"],"mappings":"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"}
|
1
|
+
{"version":3,"names":["tokens","__styles","mergeClasses","shorthands","DURATION_2","DURATION_3","EASING_FUNCTION_1","EASING_FUNCTION_2","FADE_IN","FADE_OUT","SLIDE_DOWN_IN20","SLIDE_DOWN_OUT20","SLIDE_LEFT_IN20","SLIDE_RIGHT_IN20","SLIDE_UP_IN20","SLIDE_UP_OUT20","TRANSITION_ROW_DISAPPEARANCE","AnimationDirection","weekCornersClassNames","createFocusOutlineStyle","calendarDayGridClassNames","wrapper","table","dayCell","daySelected","weekRow","weekDayLabelCell","weekNumberCell","dayOutsideBounds","dayOutsideNavigatedMonth","dayButton","dayIsToday","firstTransitionWeek","lastTransitionWeek","dayMarker","extraCalendarDayGridClassNames","hoverStyle","pressedStyle","useWrapperStyles","base","Byoj8tv","d","useTableStyles","po53p8","Bxjg3zr","Be2twd7","B6of3ja","qhf8xq","B73mfa3","fsow6f","a9b677","showWeekNumbers","useDayCellStyles","sj55zd","Bceei9c","Bhrd7zp","Bqenvij","Bg96gwp","t21cq0","jrapky","Frg6f3","z8tnut","z189sj","uwmqm3","Bsw6fvg","Bbusuzp","cvlxnx","Bweudez","hzfqlu","Bb91d7d","dua3dm","z1p9vi","Bsnevi5","xnb59o","Bj67fi1","B2gfgcj","B6cqqer","fpurfy","Fioj4w","Bq9yiu4","cpbo2x","Bq268z6","focusIndicator","Brovlpu","B486eqv","B8q5s1w","Bci5o5g","n8qw10","Bdrgwmp","Bb7d1vk","zhwhgb","dhy2o1","Gfyso","Bm4h7ae","B7ys5i9","Busjfv9","Bhk32uz","Bf4ptjt","kclons","Bhdgwq3","Blkhhs4","Bqtpl0w","clg4pj","hgwjuy","Bonggc9","B1tsrr9","Dah5zi","Bkh64rk","qqdqy8","B6dhp37","i03rao","Boxcth7","Bsom6fd","J0r882","Bule8hv","Bjwuhne","Ghsupd","m","f","i","useDaySelectedStyles","De3pzq","Bjwas2f","Bn1d65q","Bxeuatn","n51gp8","ycbfsm","a3nq4f","Bnf3alp","H2c3sd","qu8ld","Bg4iunc","h","useWeekRowStyles","vin17d","Bf5fcs","Ezkn3b","horizontalBackward","Bv12yb3","horizontalForward","verticalBackward","verticalForward","k","useWeekDayLabelCellStyles","famaaq","useWeekNumberCellStyles","g2u3we","h3c5rm","B9xav0g","zhjwy3","Bekrc4i","vrafjx","B7ck84d","useDayOutsideBoundsStyles","x734em","B0ssf13","B8h8h5z","useDayOutsideNavigatedMonthStyles","lightenDaysOutsideNavigatedMonth","useDayButtonStyles","Bbmb7ep","Beyfa6y","B7oj6ja","Btl43ni","icvyot","oivjwe","wvpqe5","B68tc82","Bmxbyg5","Bx0yju7","l98f4w","useDayIsTodayStyles","jxbfoe","useFirstTransitionWeekStyles","abs64n","useLastTransitionWeekStyles","useDayMarkerStyles","B5kzvoi","oyh7mz","j35jbq","useCornerBorderAndRadiusStyles","corners","Cy64m2","Bnn43bw","feanbc","B4268ip","useCalendarDayGridStyles_unstable","props","wrapperStyles","tableStyles","dayCellStyles","daySelectedStyles","weekRowStyles","weekDayLabelCellStyles","weekNumberCellStyles","dayOutsideBoundsStyles","dayOutsideNavigatedMonthStyles","dayButtonStyles","dayIsTodayStyles","firstTransitionWeekStyles","lastTransitionWeekStyles","dayMarkerStyles","cornerBorderAndRadiusStyles","animateBackwards","animationDirection","undefined","Horizontal"],"sources":["useCalendarDayGridStyles.styles.js"],"sourcesContent":["import { tokens } from '@fluentui/react-theme';\nimport { makeStyles, mergeClasses, shorthands } from '@griffel/react';\nimport { DURATION_2, DURATION_3, EASING_FUNCTION_1, EASING_FUNCTION_2, FADE_IN, FADE_OUT, SLIDE_DOWN_IN20, SLIDE_DOWN_OUT20, SLIDE_LEFT_IN20, SLIDE_RIGHT_IN20, SLIDE_UP_IN20, SLIDE_UP_OUT20, TRANSITION_ROW_DISAPPEARANCE } from '../../utils';\nimport { AnimationDirection } from '../Calendar/Calendar.types';\nimport { weekCornersClassNames } from './useWeekCornerStyles.styles';\nimport { createFocusOutlineStyle } from '@fluentui/react-tabster';\n/**\n * @internal\n */ export const calendarDayGridClassNames = {\n wrapper: 'fui-CalendarDayGrid__wrapper',\n table: 'fui-CalendarDayGrid__table',\n dayCell: 'fui-CalendarDayGrid__dayCell',\n daySelected: 'fui-CalendarDayGrid__daySelected',\n weekRow: 'fui-CalendarDayGrid__weekRow',\n weekDayLabelCell: 'fui-CalendarDayGrid__weekDayLabelCell',\n weekNumberCell: 'fui-CalendarDayGrid__weekNumberCell',\n dayOutsideBounds: 'fui-CalendarDayGrid__dayOutsideBounds',\n dayOutsideNavigatedMonth: 'fui-CalendarDayGrid__dayOutsideNavigatedMonth',\n dayButton: 'fui-CalendarDayGrid__dayButton',\n dayIsToday: 'fui-CalendarDayGrid__dayIsToday',\n firstTransitionWeek: 'fui-CalendarDayGrid__firstTransitionWeek',\n lastTransitionWeek: 'fui-CalendarDayGrid__lastTransitionWeek',\n dayMarker: 'fui-CalendarDayGrid__dayMarker'\n};\n/**\n * @internal\n */ export const extraCalendarDayGridClassNames = {\n hoverStyle: 'fui-CalendarDayGrid__hoverStyle',\n pressedStyle: 'fui-CalendarDayGrid__pressedStyle'\n};\nconst useWrapperStyles = makeStyles({\n base: {\n paddingBottom: '10px'\n }\n});\nconst useTableStyles = makeStyles({\n base: {\n borderCollapse: 'collapse',\n borderSpacing: 0,\n fontSize: 'inherit',\n marginTop: '4px',\n paddingBottom: '10px',\n position: 'relative',\n tableLayout: 'fixed',\n textAlign: 'center',\n width: '196px'\n },\n showWeekNumbers: {\n width: '226px'\n }\n});\nconst useDayCellStyles = makeStyles({\n base: {\n color: tokens.colorNeutralForeground1,\n cursor: 'pointer',\n fontSize: tokens.fontSizeBase200,\n fontWeight: tokens.fontWeightRegular,\n height: '28px',\n lineHeight: '28px',\n ...shorthands.margin(0),\n ...shorthands.padding(0),\n position: 'relative',\n width: '28px',\n '@media (forced-colors: active)': {\n backgroundColor: 'Window',\n color: 'WindowText'\n },\n [`&.${extraCalendarDayGridClassNames.hoverStyle}`]: {\n color: tokens.colorNeutralForeground1Static,\n backgroundColor: tokens.colorBrandBackgroundInvertedHover,\n '@media (forced-colors: active)': {\n backgroundColor: 'Window',\n color: 'WindowText',\n ...shorthands.outline('1px', 'solid', 'Highlight'),\n zIndex: 3\n }\n },\n [`&.${extraCalendarDayGridClassNames.pressedStyle}`]: {\n color: tokens.colorNeutralForeground1Static,\n backgroundColor: tokens.colorBrandBackgroundInvertedPressed,\n '@media (forced-colors: active)': {\n backgroundColor: 'Window',\n ...shorthands.borderColor('Highlight'),\n color: 'Highlight'\n }\n }\n },\n focusIndicator: createFocusOutlineStyle({\n style: {\n outlineWidth: tokens.strokeWidthThin,\n ...shorthands.borderWidth(tokens.strokeWidthThin)\n }\n })\n});\nconst useDaySelectedStyles = makeStyles({\n base: {\n backgroundColor: tokens.colorBrandBackgroundInvertedSelected,\n color: tokens.colorNeutralForeground1Static,\n '@media (forced-colors: active)': {\n backgroundColor: 'Highlight',\n ...shorthands.borderColor('Highlight'),\n color: 'HighlightText',\n forcedColorAdjust: 'none'\n },\n [`&:hover, &.${extraCalendarDayGridClassNames.hoverStyle}, &.${extraCalendarDayGridClassNames.pressedStyle}`]: {\n color: tokens.colorNeutralForeground1Static,\n backgroundColor: tokens.colorBrandBackgroundInvertedSelected,\n '@media (forced-colors: active)': {\n backgroundColor: 'Highlight',\n color: 'HighlightText'\n }\n },\n [`& > .${calendarDayGridClassNames.dayMarker}`]: {\n '@media (forced-colors: active)': {\n backgroundColor: 'Window'\n }\n }\n }\n});\nconst useWeekRowStyles = makeStyles({\n base: {\n animationDuration: DURATION_3,\n animationFillMode: 'both',\n animationTimingFunction: EASING_FUNCTION_1\n },\n horizontalBackward: {\n animationName: [\n FADE_IN,\n SLIDE_RIGHT_IN20\n ]\n },\n horizontalForward: {\n animationName: [\n FADE_IN,\n SLIDE_LEFT_IN20\n ]\n },\n verticalBackward: {\n animationName: [\n FADE_IN,\n SLIDE_DOWN_IN20\n ]\n },\n verticalForward: {\n animationName: [\n FADE_IN,\n SLIDE_UP_IN20\n ]\n }\n});\nconst useWeekDayLabelCellStyles = makeStyles({\n base: {\n userSelect: 'none',\n animationDuration: DURATION_2,\n animationFillMode: 'both',\n animationName: FADE_IN,\n animationTimingFunction: EASING_FUNCTION_2\n }\n});\nconst useWeekNumberCellStyles = makeStyles({\n base: {\n backgroundColor: tokens.colorTransparentBackground,\n ...shorthands.borderColor(tokens.colorNeutralStroke2),\n ...shorthands.borderRight('1px', 'solid'),\n boxSizing: 'border-box',\n color: tokens.colorNeutralForeground4,\n fontSize: tokens.fontSizeBase200,\n fontWeight: tokens.fontWeightRegular,\n height: '28px',\n ...shorthands.margin(0),\n ...shorthands.padding(0),\n width: '28px'\n }\n});\nconst useDayOutsideBoundsStyles = makeStyles({\n base: {\n [`&, &:disabled, & button, &.${extraCalendarDayGridClassNames.hoverStyle}` + `, &.${extraCalendarDayGridClassNames.pressedStyle}`]: {\n backgroundColor: tokens.colorTransparentBackground,\n color: tokens.colorNeutralForegroundDisabled,\n pointerEvents: 'none'\n },\n '@media (forced-colors: active)': {\n color: 'GrayText'\n }\n }\n});\nconst useDayOutsideNavigatedMonthStyles = makeStyles({\n lightenDaysOutsideNavigatedMonth: {\n color: tokens.colorNeutralForeground4,\n fontWeight: tokens.fontWeightRegular,\n '@media (forced-colors: active)': {\n color: 'GrayText'\n }\n }\n});\nconst useDayButtonStyles = makeStyles({\n base: {\n backgroundColor: tokens.colorTransparentBackground,\n ...shorthands.borderRadius('2px'),\n ...shorthands.borderStyle('none'),\n color: 'inherit',\n cursor: 'pointer',\n fontSize: tokens.fontSizeBase200,\n fontWeight: 'inherit',\n height: '24px',\n lineHeight: '24px',\n ...shorthands.overflow('visible'),\n ...shorthands.padding(0),\n width: '24px',\n '&span': {\n height: 'inherit',\n lineHeight: 'inherit'\n }\n }\n});\nconst useDayIsTodayStyles = makeStyles({\n base: {\n backgroundColor: tokens.colorBrandBackground,\n ...shorthands.borderRadius('100%'),\n color: tokens.colorNeutralForegroundOnBrand,\n fontWeight: tokens.fontWeightSemibold,\n '@media (forced-colors: active)': {\n backgroundColor: 'WindowText',\n ...shorthands.borderColor('WindowText'),\n color: 'Window',\n forcedColorAdjust: 'none'\n },\n [`& > .${calendarDayGridClassNames.dayMarker}`]: {\n backgroundColor: tokens.colorNeutralForegroundOnBrand,\n '@media (forced-colors: active)': {\n backgroundColor: 'Window'\n }\n }\n }\n});\nconst useFirstTransitionWeekStyles = makeStyles({\n base: {\n height: 0,\n opacity: 0,\n ...shorthands.overflow('hidden'),\n position: 'absolute',\n width: 0\n },\n verticalForward: {\n animationDuration: DURATION_3,\n animationFillMode: 'both',\n animationName: [\n FADE_OUT,\n SLIDE_UP_OUT20,\n TRANSITION_ROW_DISAPPEARANCE\n ],\n animationTimingFunction: EASING_FUNCTION_1\n }\n});\nconst useLastTransitionWeekStyles = makeStyles({\n base: {\n height: 0,\n marginTop: '-28px',\n opacity: 0,\n ...shorthands.overflow('hidden'),\n position: 'absolute',\n width: 0\n },\n verticalBackward: {\n animationDuration: DURATION_3,\n animationFillMode: 'both',\n animationName: [\n FADE_OUT,\n SLIDE_DOWN_OUT20,\n TRANSITION_ROW_DISAPPEARANCE\n ],\n animationTimingFunction: EASING_FUNCTION_1\n }\n});\nconst useDayMarkerStyles = makeStyles({\n base: {\n backgroundColor: tokens.colorBrandForeground2,\n ...shorthands.borderRadius('100%'),\n bottom: '1px',\n height: '4px',\n left: 0,\n ...shorthands.margin('auto'),\n position: 'absolute',\n right: 0,\n width: '4px',\n '@media (forced-colors: active)': {\n backgroundColor: 'WindowText',\n forcedColorAdjust: 'none'\n }\n }\n});\nconst useCornerBorderAndRadiusStyles = makeStyles({\n corners: {\n [`&.${weekCornersClassNames.topRightCornerDate}`]: {\n borderTopRightRadius: '2px'\n },\n [`&.${weekCornersClassNames.topLeftCornerDate}`]: {\n borderTopLeftRadius: '2px'\n },\n [`&.${weekCornersClassNames.bottomRightCornerDate}`]: {\n borderBottomRightRadius: '2px'\n },\n [`&.${weekCornersClassNames.bottomLeftCornerDate}`]: {\n borderBottomLeftRadius: '2px'\n }\n }\n});\n/**\n * @internal\n *\n * Apply styling to the CalendarDayGrid slots based on the state\n */ export const useCalendarDayGridStyles_unstable = (props)=>{\n const wrapperStyles = useWrapperStyles();\n const tableStyles = useTableStyles();\n const dayCellStyles = useDayCellStyles();\n const daySelectedStyles = useDaySelectedStyles();\n const weekRowStyles = useWeekRowStyles();\n const weekDayLabelCellStyles = useWeekDayLabelCellStyles();\n const weekNumberCellStyles = useWeekNumberCellStyles();\n const dayOutsideBoundsStyles = useDayOutsideBoundsStyles();\n const dayOutsideNavigatedMonthStyles = useDayOutsideNavigatedMonthStyles();\n const dayButtonStyles = useDayButtonStyles();\n const dayIsTodayStyles = useDayIsTodayStyles();\n const firstTransitionWeekStyles = useFirstTransitionWeekStyles();\n const lastTransitionWeekStyles = useLastTransitionWeekStyles();\n const dayMarkerStyles = useDayMarkerStyles();\n const cornerBorderAndRadiusStyles = useCornerBorderAndRadiusStyles();\n const { animateBackwards, animationDirection, lightenDaysOutsideNavigatedMonth, showWeekNumbers } = props;\n return {\n wrapper: mergeClasses(calendarDayGridClassNames.wrapper, wrapperStyles.base),\n table: mergeClasses(calendarDayGridClassNames.table, tableStyles.base, showWeekNumbers && tableStyles.showWeekNumbers),\n dayCell: mergeClasses(calendarDayGridClassNames.dayCell, dayCellStyles.base, dayCellStyles.focusIndicator, cornerBorderAndRadiusStyles.corners),\n daySelected: mergeClasses(calendarDayGridClassNames.daySelected, daySelectedStyles.base),\n weekRow: mergeClasses(calendarDayGridClassNames.weekRow, animateBackwards !== undefined && weekRowStyles.base, animateBackwards !== undefined && (animationDirection === AnimationDirection.Horizontal ? animateBackwards ? weekRowStyles.horizontalBackward : weekRowStyles.horizontalForward : animateBackwards ? weekRowStyles.verticalBackward : weekRowStyles.verticalForward)),\n weekDayLabelCell: mergeClasses(calendarDayGridClassNames.weekDayLabelCell, weekDayLabelCellStyles.base),\n weekNumberCell: mergeClasses(calendarDayGridClassNames.weekNumberCell, weekNumberCellStyles.base),\n dayOutsideBounds: mergeClasses(calendarDayGridClassNames.dayOutsideBounds, dayOutsideBoundsStyles.base),\n dayOutsideNavigatedMonth: mergeClasses(calendarDayGridClassNames.dayOutsideNavigatedMonth, lightenDaysOutsideNavigatedMonth && dayOutsideNavigatedMonthStyles.lightenDaysOutsideNavigatedMonth),\n dayButton: mergeClasses(calendarDayGridClassNames.dayButton, dayButtonStyles.base),\n dayIsToday: mergeClasses(calendarDayGridClassNames.dayIsToday, dayIsTodayStyles.base),\n firstTransitionWeek: mergeClasses(calendarDayGridClassNames.firstTransitionWeek, firstTransitionWeekStyles.base, animateBackwards !== undefined && animationDirection !== AnimationDirection.Horizontal && !animateBackwards && firstTransitionWeekStyles.verticalForward),\n lastTransitionWeek: mergeClasses(calendarDayGridClassNames.lastTransitionWeek, lastTransitionWeekStyles.base, animateBackwards !== undefined && animationDirection !== AnimationDirection.Horizontal && animateBackwards && lastTransitionWeekStyles.verticalBackward),\n dayMarker: mergeClasses(calendarDayGridClassNames.dayMarker, dayMarkerStyles.base)\n };\n};\n"],"mappings":"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"}
|
@@ -117,7 +117,7 @@ function useFocusLogic({ componentRef }) {
|
|
117
117
|
animationDirection
|
118
118
|
});
|
119
119
|
const arrowNavigationAttributes = useArrowNavigationGroup({
|
120
|
-
axis: '
|
120
|
+
axis: 'grid'
|
121
121
|
});
|
122
122
|
if (isYearPickerVisible) {
|
123
123
|
const [onRenderYear, yearStrings] = getYearStrings({
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"sources":["CalendarMonth.tsx"],"sourcesContent":["import * as React from 'react';\nimport { Enter } from '@fluentui/keyboard-keys';\nimport { useArrowNavigationGroup } from '@fluentui/react-tabster';\nimport { mergeClasses } from '@griffel/react';\nimport {\n addYears,\n compareDatePart,\n getMonthEnd,\n getMonthStart,\n getYearEnd,\n getYearStart,\n setMonth,\n DEFAULT_DATE_FORMATTING,\n} from '../../utils';\nimport { CalendarYear } from '../CalendarYear/CalendarYear';\nimport { useCalendarMonthStyles_unstable } from './useCalendarMonthStyles';\nimport type { CalendarMonthProps } from './CalendarMonth.types';\nimport type { CalendarYearRange, ICalendarYear } from '../CalendarYear/CalendarYear.types';\n\nconst MONTHS_PER_ROW = 4;\n\nfunction useAnimateBackwards({ navigatedDate }: { navigatedDate: CalendarMonthProps['navigatedDate'] }) {\n const currentYear = navigatedDate.getFullYear();\n\n const previousYearRef = React.useRef<number | undefined>();\n React.useEffect(() => {\n previousYearRef.current = currentYear;\n });\n const previousYear = previousYearRef.current;\n\n if (previousYear === undefined || previousYear === currentYear) {\n return undefined;\n } else {\n return previousYear > currentYear;\n }\n}\n\nfunction useFocusLogic({ componentRef }: { componentRef: CalendarMonthProps['componentRef'] }) {\n const navigatedMonthRef = React.useRef<HTMLButtonElement>(null);\n const calendarYearRef = React.useRef<ICalendarYear>(null);\n const focusOnUpdate = React.useRef(false);\n\n const focus = React.useCallback(() => {\n if (calendarYearRef.current) {\n calendarYearRef.current.focus();\n } else if (navigatedMonthRef.current) {\n navigatedMonthRef.current.focus();\n }\n }, []);\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 [navigatedMonthRef, calendarYearRef, focusOnNextUpdate] as const;\n}\n\n/**\n * @internal\n */\nexport const CalendarMonth: React.FunctionComponent<CalendarMonthProps> = props => {\n const {\n allFocusable,\n animationDirection,\n className,\n componentRef,\n dateTimeFormatter = DEFAULT_DATE_FORMATTING,\n highlightCurrentMonth,\n highlightSelectedMonth,\n maxDate,\n minDate,\n navigatedDate,\n navigationIcons,\n onHeaderSelect: onUserHeaderSelect,\n onNavigateDate,\n selectedDate,\n strings,\n today = new Date(),\n yearPickerHidden = false,\n } = props;\n\n const [navigatedMonthRef, calendarYearRef, focusOnNextUpdate] = useFocusLogic({ componentRef });\n const [isYearPickerVisible, setIsYearPickerVisible] = React.useState(false);\n\n const animateBackwards = useAnimateBackwards({ navigatedDate });\n\n const selectMonthCallback = (newMonth: number): (() => void) => {\n return () => onSelectMonth(newMonth);\n };\n\n const onSelectNextYear = (): void => {\n onNavigateDate(addYears(navigatedDate, 1), false);\n };\n\n const onSelectPrevYear = (): void => {\n onNavigateDate(addYears(navigatedDate, -1), false);\n };\n\n const onSelectMonth = (newMonth: number): void => {\n // If header is clickable the calendars are overlayed, switch back to day picker when month is clicked\n onUserHeaderSelect?.();\n onNavigateDate(setMonth(navigatedDate, newMonth), true);\n };\n\n const onHeaderSelect = (): void => {\n if (!yearPickerHidden) {\n focusOnNextUpdate();\n setIsYearPickerVisible(true);\n } else {\n onUserHeaderSelect?.();\n }\n };\n\n const onSelectYear = (selectedYear: number) => {\n focusOnNextUpdate();\n const navYear = navigatedDate.getFullYear();\n if (navYear !== selectedYear) {\n let newNavigationDate = new Date(navigatedDate.getTime());\n newNavigationDate.setFullYear(selectedYear);\n // for min and max dates, adjust the new navigation date - perhaps this should be\n // checked on the master navigation date handler (i.e. in Calendar)\n if (maxDate && newNavigationDate > maxDate) {\n newNavigationDate = setMonth(newNavigationDate, maxDate.getMonth());\n } else if (minDate && newNavigationDate < minDate) {\n newNavigationDate = setMonth(newNavigationDate, minDate.getMonth());\n }\n onNavigateDate(newNavigationDate, true);\n }\n setIsYearPickerVisible(false);\n };\n\n const onYearPickerHeaderSelect = (focus: boolean): void => {\n focusOnNextUpdate();\n setIsYearPickerVisible(false);\n };\n\n const dateFormatter = dateTimeFormatter!;\n\n // determine if previous/next years are in bounds\n const isPrevYearInBounds = minDate ? compareDatePart(minDate, getYearStart(navigatedDate)) < 0 : true;\n const isNextYearInBounds = maxDate ? compareDatePart(getYearEnd(navigatedDate), maxDate) < 0 : true;\n\n const classNames = useCalendarMonthStyles_unstable({\n className,\n hasHeaderClickCallback: !!onUserHeaderSelect || !yearPickerHidden,\n highlightCurrent: highlightCurrentMonth,\n highlightSelected: highlightSelectedMonth,\n animateBackwards,\n animationDirection,\n });\n\n const arrowNavigationAttributes = useArrowNavigationGroup({ axis: 'both' });\n\n if (isYearPickerVisible) {\n const [onRenderYear, yearStrings] = getYearStrings({ dateTimeFormatter, navigatedDate, strings });\n // use navigated date for the year picker\n return (\n <CalendarYear\n key={'calendarYear'}\n minYear={minDate ? minDate.getFullYear() : undefined}\n maxYear={maxDate ? maxDate.getFullYear() : undefined}\n // eslint-disable-next-line react/jsx-no-bind\n onSelectYear={onSelectYear}\n // eslint-disable-next-line react/jsx-no-bind\n onHeaderSelect={onYearPickerHeaderSelect}\n selectedYear={\n selectedDate ? selectedDate.getFullYear() : navigatedDate ? navigatedDate.getFullYear() : undefined\n }\n navigatedYear={navigatedDate.getFullYear()}\n navigationIcons={navigationIcons}\n onRenderYear={onRenderYear}\n strings={yearStrings}\n componentRef={calendarYearRef}\n highlightCurrentYear={highlightCurrentMonth}\n highlightSelectedYear={highlightSelectedMonth}\n animationDirection={animationDirection}\n />\n );\n }\n\n const rowIndexes = [];\n for (let i = 0; i < strings.shortMonths.length / MONTHS_PER_ROW; i++) {\n rowIndexes.push(i);\n }\n\n const yearString = dateFormatter.formatYear(navigatedDate);\n const headerAriaLabel = strings.monthPickerHeaderAriaLabel\n ? strings.monthPickerHeaderAriaLabel.replace('{0}', yearString)\n : yearString;\n\n return (\n <div className={classNames.root}>\n <div className={classNames.headerContainer}>\n <button\n className={classNames.currentItemButton}\n onClick={onHeaderSelect}\n onKeyDown={onButtonKeyDown(onHeaderSelect)}\n aria-label={headerAriaLabel}\n tabIndex={!!onUserHeaderSelect || !yearPickerHidden ? 0 : -1}\n type=\"button\"\n >\n <span aria-live=\"polite\" aria-atomic=\"true\">\n {yearString}\n </span>\n </button>\n <div className={classNames.navigationButtonsContainer}>\n <button\n className={mergeClasses(classNames.navigationButton, !isPrevYearInBounds && classNames.disabled)}\n aria-disabled={!isPrevYearInBounds}\n tabIndex={isPrevYearInBounds ? undefined : allFocusable ? 0 : -1}\n onClick={isPrevYearInBounds ? onSelectPrevYear : undefined}\n onKeyDown={isPrevYearInBounds ? onButtonKeyDown(onSelectPrevYear) : undefined}\n title={\n strings.prevYearAriaLabel\n ? strings.prevYearAriaLabel + ' ' + dateFormatter.formatYear(addYears(navigatedDate, -1))\n : undefined\n }\n type=\"button\"\n >\n {navigationIcons.upNavigation}\n </button>\n <button\n className={mergeClasses(classNames.navigationButton, !isNextYearInBounds && classNames.disabled)}\n aria-disabled={!isNextYearInBounds}\n tabIndex={isNextYearInBounds ? undefined : allFocusable ? 0 : -1}\n onClick={isNextYearInBounds ? onSelectNextYear : undefined}\n onKeyDown={isNextYearInBounds ? onButtonKeyDown(onSelectNextYear) : undefined}\n title={\n strings.nextYearAriaLabel\n ? strings.nextYearAriaLabel + ' ' + dateFormatter.formatYear(addYears(navigatedDate, 1))\n : undefined\n }\n type=\"button\"\n >\n {navigationIcons.downNavigation}\n </button>\n </div>\n </div>\n <div {...arrowNavigationAttributes} className={classNames.gridContainer} role=\"grid\" aria-label={yearString}>\n {rowIndexes.map((rowNum: number) => {\n const monthsForRow = strings!.shortMonths.slice(rowNum * MONTHS_PER_ROW, (rowNum + 1) * MONTHS_PER_ROW);\n return (\n <div key={'monthRow_' + rowNum + navigatedDate.getFullYear()} role=\"row\" className={classNames.buttonRow}>\n {monthsForRow.map((month: string, index: number) => {\n const monthIndex = rowNum * MONTHS_PER_ROW + index;\n const indexedMonth = setMonth(navigatedDate, monthIndex);\n const isNavigatedMonth = navigatedDate.getMonth() === monthIndex;\n const isSelectedMonth = selectedDate.getMonth() === monthIndex;\n const isSelectedYear = selectedDate.getFullYear() === navigatedDate.getFullYear();\n const isInBounds =\n (minDate ? compareDatePart(minDate, getMonthEnd(indexedMonth)) < 1 : true) &&\n (maxDate ? compareDatePart(getMonthStart(indexedMonth), maxDate) < 1 : true);\n\n return (\n <button\n ref={isNavigatedMonth ? navigatedMonthRef : undefined}\n role={'gridcell'}\n className={mergeClasses(\n classNames.itemButton,\n highlightCurrentMonth &&\n isCurrentMonth(monthIndex, navigatedDate.getFullYear(), today) &&\n classNames.current,\n highlightSelectedMonth && isSelectedMonth && isSelectedYear && classNames.selected,\n !isInBounds && classNames.disabled,\n )}\n disabled={!allFocusable && !isInBounds}\n key={monthIndex}\n onClick={isInBounds ? selectMonthCallback(monthIndex) : undefined}\n onKeyDown={isInBounds ? onButtonKeyDown(selectMonthCallback(monthIndex)) : undefined}\n aria-label={dateFormatter.formatMonth(indexedMonth, strings!)}\n aria-selected={isNavigatedMonth}\n tabIndex={isInBounds ? 0 : -1}\n type=\"button\"\n >\n {month}\n </button>\n );\n })}\n </div>\n );\n })}\n </div>\n </div>\n );\n};\nCalendarMonth.displayName = 'CalendarMonth';\n\nfunction getYearStrings({\n dateTimeFormatter,\n navigatedDate,\n strings,\n}: Pick<CalendarMonthProps, 'dateTimeFormatter' | 'navigatedDate' | 'strings'>) {\n const yearToString = (year: number) => {\n if (dateTimeFormatter) {\n // create a date based on the current nav date\n const yearFormattingDate = new Date(navigatedDate.getTime());\n yearFormattingDate.setFullYear(year);\n return dateTimeFormatter.formatYear(yearFormattingDate);\n }\n return String(year);\n };\n\n const yearRangeToString = (yearRange: CalendarYearRange) => {\n return `${yearToString(yearRange.fromYear)} - ${yearToString(yearRange.toYear)}`;\n };\n\n const yearRangeToNextDecadeLabel = (yearRange: CalendarYearRange) => {\n return strings.nextYearRangeAriaLabel ? `${strings.nextYearRangeAriaLabel} ${yearRangeToString(yearRange)}` : '';\n };\n\n const yearRangeToPrevDecadeLabel = (yearRange: CalendarYearRange) => {\n return strings.prevYearRangeAriaLabel ? `${strings.prevYearRangeAriaLabel} ${yearRangeToString(yearRange)}` : '';\n };\n\n return [\n yearToString,\n {\n rangeAriaLabel: yearRangeToString,\n prevRangeAriaLabel: yearRangeToPrevDecadeLabel,\n nextRangeAriaLabel: yearRangeToNextDecadeLabel,\n headerAriaLabelFormatString: strings.yearPickerHeaderAriaLabel,\n } as const,\n ] as const;\n}\n\nfunction isCurrentMonth(month: number, year: number, today: Date): boolean {\n return today.getFullYear() === year && today.getMonth() === month;\n}\n\nfunction onButtonKeyDown(callback: () => void): (ev: React.KeyboardEvent<HTMLButtonElement>) => void {\n return (ev: React.KeyboardEvent<HTMLButtonElement>) => {\n switch (ev.key) {\n case Enter:\n callback();\n break;\n }\n };\n}\n"],"names":["React","Enter","useArrowNavigationGroup","mergeClasses","addYears","compareDatePart","getMonthEnd","getMonthStart","getYearEnd","getYearStart","setMonth","DEFAULT_DATE_FORMATTING","CalendarYear","useCalendarMonthStyles_unstable","MONTHS_PER_ROW","useAnimateBackwards","navigatedDate","currentYear","getFullYear","previousYearRef","useRef","useEffect","current","previousYear","undefined","useFocusLogic","componentRef","navigatedMonthRef","calendarYearRef","focusOnUpdate","focus","useCallback","useImperativeHandle","focusOnNextUpdate","CalendarMonth","props","allFocusable","animationDirection","className","dateTimeFormatter","highlightCurrentMonth","highlightSelectedMonth","maxDate","minDate","navigationIcons","onHeaderSelect","onUserHeaderSelect","onNavigateDate","selectedDate","strings","today","Date","yearPickerHidden","isYearPickerVisible","setIsYearPickerVisible","useState","animateBackwards","selectMonthCallback","newMonth","onSelectMonth","onSelectNextYear","onSelectPrevYear","onSelectYear","selectedYear","navYear","newNavigationDate","getTime","setFullYear","getMonth","onYearPickerHeaderSelect","dateFormatter","isPrevYearInBounds","isNextYearInBounds","classNames","hasHeaderClickCallback","highlightCurrent","highlightSelected","arrowNavigationAttributes","axis","onRenderYear","yearStrings","getYearStrings","key","minYear","maxYear","navigatedYear","highlightCurrentYear","highlightSelectedYear","rowIndexes","i","shortMonths","length","push","yearString","formatYear","headerAriaLabel","monthPickerHeaderAriaLabel","replace","div","root","headerContainer","button","currentItemButton","onClick","onKeyDown","onButtonKeyDown","aria-label","tabIndex","type","span","aria-live","aria-atomic","navigationButtonsContainer","navigationButton","disabled","aria-disabled","title","prevYearAriaLabel","upNavigation","nextYearAriaLabel","downNavigation","gridContainer","role","map","rowNum","monthsForRow","slice","buttonRow","month","index","monthIndex","indexedMonth","isNavigatedMonth","isSelectedMonth","isSelectedYear","isInBounds","ref","itemButton","isCurrentMonth","selected","formatMonth","aria-selected","displayName","yearToString","year","yearFormattingDate","String","yearRangeToString","yearRange","fromYear","toYear","yearRangeToNextDecadeLabel","nextYearRangeAriaLabel","yearRangeToPrevDecadeLabel","prevYearRangeAriaLabel","rangeAriaLabel","prevRangeAriaLabel","nextRangeAriaLabel","headerAriaLabelFormatString","yearPickerHeaderAriaLabel","callback","ev"],"mappings":"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"}
|
1
|
+
{"version":3,"sources":["CalendarMonth.tsx"],"sourcesContent":["import * as React from 'react';\nimport { Enter } from '@fluentui/keyboard-keys';\nimport { useArrowNavigationGroup } from '@fluentui/react-tabster';\nimport { mergeClasses } from '@griffel/react';\nimport {\n addYears,\n compareDatePart,\n getMonthEnd,\n getMonthStart,\n getYearEnd,\n getYearStart,\n setMonth,\n DEFAULT_DATE_FORMATTING,\n} from '../../utils';\nimport { CalendarYear } from '../CalendarYear/CalendarYear';\nimport { useCalendarMonthStyles_unstable } from './useCalendarMonthStyles';\nimport type { CalendarMonthProps } from './CalendarMonth.types';\nimport type { CalendarYearRange, ICalendarYear } from '../CalendarYear/CalendarYear.types';\n\nconst MONTHS_PER_ROW = 4;\n\nfunction useAnimateBackwards({ navigatedDate }: { navigatedDate: CalendarMonthProps['navigatedDate'] }) {\n const currentYear = navigatedDate.getFullYear();\n\n const previousYearRef = React.useRef<number | undefined>();\n React.useEffect(() => {\n previousYearRef.current = currentYear;\n });\n const previousYear = previousYearRef.current;\n\n if (previousYear === undefined || previousYear === currentYear) {\n return undefined;\n } else {\n return previousYear > currentYear;\n }\n}\n\nfunction useFocusLogic({ componentRef }: { componentRef: CalendarMonthProps['componentRef'] }) {\n const navigatedMonthRef = React.useRef<HTMLButtonElement>(null);\n const calendarYearRef = React.useRef<ICalendarYear>(null);\n const focusOnUpdate = React.useRef(false);\n\n const focus = React.useCallback(() => {\n if (calendarYearRef.current) {\n calendarYearRef.current.focus();\n } else if (navigatedMonthRef.current) {\n navigatedMonthRef.current.focus();\n }\n }, []);\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 [navigatedMonthRef, calendarYearRef, focusOnNextUpdate] as const;\n}\n\n/**\n * @internal\n */\nexport const CalendarMonth: React.FunctionComponent<CalendarMonthProps> = props => {\n const {\n allFocusable,\n animationDirection,\n className,\n componentRef,\n dateTimeFormatter = DEFAULT_DATE_FORMATTING,\n highlightCurrentMonth,\n highlightSelectedMonth,\n maxDate,\n minDate,\n navigatedDate,\n navigationIcons,\n onHeaderSelect: onUserHeaderSelect,\n onNavigateDate,\n selectedDate,\n strings,\n today = new Date(),\n yearPickerHidden = false,\n } = props;\n\n const [navigatedMonthRef, calendarYearRef, focusOnNextUpdate] = useFocusLogic({ componentRef });\n const [isYearPickerVisible, setIsYearPickerVisible] = React.useState(false);\n\n const animateBackwards = useAnimateBackwards({ navigatedDate });\n\n const selectMonthCallback = (newMonth: number): (() => void) => {\n return () => onSelectMonth(newMonth);\n };\n\n const onSelectNextYear = (): void => {\n onNavigateDate(addYears(navigatedDate, 1), false);\n };\n\n const onSelectPrevYear = (): void => {\n onNavigateDate(addYears(navigatedDate, -1), false);\n };\n\n const onSelectMonth = (newMonth: number): void => {\n // If header is clickable the calendars are overlayed, switch back to day picker when month is clicked\n onUserHeaderSelect?.();\n onNavigateDate(setMonth(navigatedDate, newMonth), true);\n };\n\n const onHeaderSelect = (): void => {\n if (!yearPickerHidden) {\n focusOnNextUpdate();\n setIsYearPickerVisible(true);\n } else {\n onUserHeaderSelect?.();\n }\n };\n\n const onSelectYear = (selectedYear: number) => {\n focusOnNextUpdate();\n const navYear = navigatedDate.getFullYear();\n if (navYear !== selectedYear) {\n let newNavigationDate = new Date(navigatedDate.getTime());\n newNavigationDate.setFullYear(selectedYear);\n // for min and max dates, adjust the new navigation date - perhaps this should be\n // checked on the master navigation date handler (i.e. in Calendar)\n if (maxDate && newNavigationDate > maxDate) {\n newNavigationDate = setMonth(newNavigationDate, maxDate.getMonth());\n } else if (minDate && newNavigationDate < minDate) {\n newNavigationDate = setMonth(newNavigationDate, minDate.getMonth());\n }\n onNavigateDate(newNavigationDate, true);\n }\n setIsYearPickerVisible(false);\n };\n\n const onYearPickerHeaderSelect = (focus: boolean): void => {\n focusOnNextUpdate();\n setIsYearPickerVisible(false);\n };\n\n const dateFormatter = dateTimeFormatter!;\n\n // determine if previous/next years are in bounds\n const isPrevYearInBounds = minDate ? compareDatePart(minDate, getYearStart(navigatedDate)) < 0 : true;\n const isNextYearInBounds = maxDate ? compareDatePart(getYearEnd(navigatedDate), maxDate) < 0 : true;\n\n const classNames = useCalendarMonthStyles_unstable({\n className,\n hasHeaderClickCallback: !!onUserHeaderSelect || !yearPickerHidden,\n highlightCurrent: highlightCurrentMonth,\n highlightSelected: highlightSelectedMonth,\n animateBackwards,\n animationDirection,\n });\n\n const arrowNavigationAttributes = useArrowNavigationGroup({ axis: 'grid' });\n\n if (isYearPickerVisible) {\n const [onRenderYear, yearStrings] = getYearStrings({ dateTimeFormatter, navigatedDate, strings });\n // use navigated date for the year picker\n return (\n <CalendarYear\n key={'calendarYear'}\n minYear={minDate ? minDate.getFullYear() : undefined}\n maxYear={maxDate ? maxDate.getFullYear() : undefined}\n // eslint-disable-next-line react/jsx-no-bind\n onSelectYear={onSelectYear}\n // eslint-disable-next-line react/jsx-no-bind\n onHeaderSelect={onYearPickerHeaderSelect}\n selectedYear={\n selectedDate ? selectedDate.getFullYear() : navigatedDate ? navigatedDate.getFullYear() : undefined\n }\n navigatedYear={navigatedDate.getFullYear()}\n navigationIcons={navigationIcons}\n onRenderYear={onRenderYear}\n strings={yearStrings}\n componentRef={calendarYearRef}\n highlightCurrentYear={highlightCurrentMonth}\n highlightSelectedYear={highlightSelectedMonth}\n animationDirection={animationDirection}\n />\n );\n }\n\n const rowIndexes = [];\n for (let i = 0; i < strings.shortMonths.length / MONTHS_PER_ROW; i++) {\n rowIndexes.push(i);\n }\n\n const yearString = dateFormatter.formatYear(navigatedDate);\n const headerAriaLabel = strings.monthPickerHeaderAriaLabel\n ? strings.monthPickerHeaderAriaLabel.replace('{0}', yearString)\n : yearString;\n\n return (\n <div className={classNames.root}>\n <div className={classNames.headerContainer}>\n <button\n className={classNames.currentItemButton}\n onClick={onHeaderSelect}\n onKeyDown={onButtonKeyDown(onHeaderSelect)}\n aria-label={headerAriaLabel}\n tabIndex={!!onUserHeaderSelect || !yearPickerHidden ? 0 : -1}\n type=\"button\"\n >\n <span aria-live=\"polite\" aria-atomic=\"true\">\n {yearString}\n </span>\n </button>\n <div className={classNames.navigationButtonsContainer}>\n <button\n className={mergeClasses(classNames.navigationButton, !isPrevYearInBounds && classNames.disabled)}\n aria-disabled={!isPrevYearInBounds}\n tabIndex={isPrevYearInBounds ? undefined : allFocusable ? 0 : -1}\n onClick={isPrevYearInBounds ? onSelectPrevYear : undefined}\n onKeyDown={isPrevYearInBounds ? onButtonKeyDown(onSelectPrevYear) : undefined}\n title={\n strings.prevYearAriaLabel\n ? strings.prevYearAriaLabel + ' ' + dateFormatter.formatYear(addYears(navigatedDate, -1))\n : undefined\n }\n type=\"button\"\n >\n {navigationIcons.upNavigation}\n </button>\n <button\n className={mergeClasses(classNames.navigationButton, !isNextYearInBounds && classNames.disabled)}\n aria-disabled={!isNextYearInBounds}\n tabIndex={isNextYearInBounds ? undefined : allFocusable ? 0 : -1}\n onClick={isNextYearInBounds ? onSelectNextYear : undefined}\n onKeyDown={isNextYearInBounds ? onButtonKeyDown(onSelectNextYear) : undefined}\n title={\n strings.nextYearAriaLabel\n ? strings.nextYearAriaLabel + ' ' + dateFormatter.formatYear(addYears(navigatedDate, 1))\n : undefined\n }\n type=\"button\"\n >\n {navigationIcons.downNavigation}\n </button>\n </div>\n </div>\n <div {...arrowNavigationAttributes} className={classNames.gridContainer} role=\"grid\" aria-label={yearString}>\n {rowIndexes.map((rowNum: number) => {\n const monthsForRow = strings!.shortMonths.slice(rowNum * MONTHS_PER_ROW, (rowNum + 1) * MONTHS_PER_ROW);\n return (\n <div key={'monthRow_' + rowNum + navigatedDate.getFullYear()} role=\"row\" className={classNames.buttonRow}>\n {monthsForRow.map((month: string, index: number) => {\n const monthIndex = rowNum * MONTHS_PER_ROW + index;\n const indexedMonth = setMonth(navigatedDate, monthIndex);\n const isNavigatedMonth = navigatedDate.getMonth() === monthIndex;\n const isSelectedMonth = selectedDate.getMonth() === monthIndex;\n const isSelectedYear = selectedDate.getFullYear() === navigatedDate.getFullYear();\n const isInBounds =\n (minDate ? compareDatePart(minDate, getMonthEnd(indexedMonth)) < 1 : true) &&\n (maxDate ? compareDatePart(getMonthStart(indexedMonth), maxDate) < 1 : true);\n\n return (\n <button\n ref={isNavigatedMonth ? navigatedMonthRef : undefined}\n role={'gridcell'}\n className={mergeClasses(\n classNames.itemButton,\n highlightCurrentMonth &&\n isCurrentMonth(monthIndex, navigatedDate.getFullYear(), today) &&\n classNames.current,\n highlightSelectedMonth && isSelectedMonth && isSelectedYear && classNames.selected,\n !isInBounds && classNames.disabled,\n )}\n disabled={!allFocusable && !isInBounds}\n key={monthIndex}\n onClick={isInBounds ? selectMonthCallback(monthIndex) : undefined}\n onKeyDown={isInBounds ? onButtonKeyDown(selectMonthCallback(monthIndex)) : undefined}\n aria-label={dateFormatter.formatMonth(indexedMonth, strings!)}\n aria-selected={isNavigatedMonth}\n tabIndex={isInBounds ? 0 : -1}\n type=\"button\"\n >\n {month}\n </button>\n );\n })}\n </div>\n );\n })}\n </div>\n </div>\n );\n};\nCalendarMonth.displayName = 'CalendarMonth';\n\nfunction getYearStrings({\n dateTimeFormatter,\n navigatedDate,\n strings,\n}: Pick<CalendarMonthProps, 'dateTimeFormatter' | 'navigatedDate' | 'strings'>) {\n const yearToString = (year: number) => {\n if (dateTimeFormatter) {\n // create a date based on the current nav date\n const yearFormattingDate = new Date(navigatedDate.getTime());\n yearFormattingDate.setFullYear(year);\n return dateTimeFormatter.formatYear(yearFormattingDate);\n }\n return String(year);\n };\n\n const yearRangeToString = (yearRange: CalendarYearRange) => {\n return `${yearToString(yearRange.fromYear)} - ${yearToString(yearRange.toYear)}`;\n };\n\n const yearRangeToNextDecadeLabel = (yearRange: CalendarYearRange) => {\n return strings.nextYearRangeAriaLabel ? `${strings.nextYearRangeAriaLabel} ${yearRangeToString(yearRange)}` : '';\n };\n\n const yearRangeToPrevDecadeLabel = (yearRange: CalendarYearRange) => {\n return strings.prevYearRangeAriaLabel ? `${strings.prevYearRangeAriaLabel} ${yearRangeToString(yearRange)}` : '';\n };\n\n return [\n yearToString,\n {\n rangeAriaLabel: yearRangeToString,\n prevRangeAriaLabel: yearRangeToPrevDecadeLabel,\n nextRangeAriaLabel: yearRangeToNextDecadeLabel,\n headerAriaLabelFormatString: strings.yearPickerHeaderAriaLabel,\n } as const,\n ] as const;\n}\n\nfunction isCurrentMonth(month: number, year: number, today: Date): boolean {\n return today.getFullYear() === year && today.getMonth() === month;\n}\n\nfunction onButtonKeyDown(callback: () => void): (ev: React.KeyboardEvent<HTMLButtonElement>) => void {\n return (ev: React.KeyboardEvent<HTMLButtonElement>) => {\n switch (ev.key) {\n case Enter:\n callback();\n break;\n }\n };\n}\n"],"names":["React","Enter","useArrowNavigationGroup","mergeClasses","addYears","compareDatePart","getMonthEnd","getMonthStart","getYearEnd","getYearStart","setMonth","DEFAULT_DATE_FORMATTING","CalendarYear","useCalendarMonthStyles_unstable","MONTHS_PER_ROW","useAnimateBackwards","navigatedDate","currentYear","getFullYear","previousYearRef","useRef","useEffect","current","previousYear","undefined","useFocusLogic","componentRef","navigatedMonthRef","calendarYearRef","focusOnUpdate","focus","useCallback","useImperativeHandle","focusOnNextUpdate","CalendarMonth","props","allFocusable","animationDirection","className","dateTimeFormatter","highlightCurrentMonth","highlightSelectedMonth","maxDate","minDate","navigationIcons","onHeaderSelect","onUserHeaderSelect","onNavigateDate","selectedDate","strings","today","Date","yearPickerHidden","isYearPickerVisible","setIsYearPickerVisible","useState","animateBackwards","selectMonthCallback","newMonth","onSelectMonth","onSelectNextYear","onSelectPrevYear","onSelectYear","selectedYear","navYear","newNavigationDate","getTime","setFullYear","getMonth","onYearPickerHeaderSelect","dateFormatter","isPrevYearInBounds","isNextYearInBounds","classNames","hasHeaderClickCallback","highlightCurrent","highlightSelected","arrowNavigationAttributes","axis","onRenderYear","yearStrings","getYearStrings","key","minYear","maxYear","navigatedYear","highlightCurrentYear","highlightSelectedYear","rowIndexes","i","shortMonths","length","push","yearString","formatYear","headerAriaLabel","monthPickerHeaderAriaLabel","replace","div","root","headerContainer","button","currentItemButton","onClick","onKeyDown","onButtonKeyDown","aria-label","tabIndex","type","span","aria-live","aria-atomic","navigationButtonsContainer","navigationButton","disabled","aria-disabled","title","prevYearAriaLabel","upNavigation","nextYearAriaLabel","downNavigation","gridContainer","role","map","rowNum","monthsForRow","slice","buttonRow","month","index","monthIndex","indexedMonth","isNavigatedMonth","isSelectedMonth","isSelectedYear","isInBounds","ref","itemButton","isCurrentMonth","selected","formatMonth","aria-selected","displayName","yearToString","year","yearFormattingDate","String","yearRangeToString","yearRange","fromYear","toYear","yearRangeToNextDecadeLabel","nextYearRangeAriaLabel","yearRangeToPrevDecadeLabel","prevYearRangeAriaLabel","rangeAriaLabel","prevRangeAriaLabel","nextRangeAriaLabel","headerAriaLabelFormatString","yearPickerHeaderAriaLabel","callback","ev"],"mappings":"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"}
|
@@ -90,9 +90,10 @@ const CalendarYearGrid = (props)=>{
|
|
90
90
|
}
|
91
91
|
}
|
92
92
|
const arrowNavigationAttributes = useArrowNavigationGroup({
|
93
|
-
axis: '
|
93
|
+
axis: 'grid'
|
94
94
|
});
|
95
|
-
return /*#__PURE__*/ React.createElement("div",
|
95
|
+
return /*#__PURE__*/ React.createElement("div", {
|
96
|
+
...arrowNavigationAttributes,
|
96
97
|
className: classNames.gridContainer,
|
97
98
|
role: "grid",
|
98
99
|
"aria-label": gridAriaLabel
|
@@ -102,7 +103,7 @@ const CalendarYearGrid = (props)=>{
|
|
102
103
|
role: "row",
|
103
104
|
className: classNames.buttonRow
|
104
105
|
}, cellRow);
|
105
|
-
}))
|
106
|
+
}));
|
106
107
|
};
|
107
108
|
CalendarYearGrid.displayName = 'CalendarYearGrid';
|
108
109
|
const CalendarYearNavDirection = {
|