@fluentui/react-datepicker-compat 0.1.4 → 0.1.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.json +76 -1
- package/CHANGELOG.md +21 -2
- package/lib/Calendar.js +0 -1
- package/lib/Calendar.js.map +1 -1
- package/lib/CalendarDay.js +0 -1
- package/lib/CalendarDay.js.map +1 -1
- package/lib/CalendarDayGrid.js +0 -1
- package/lib/CalendarDayGrid.js.map +1 -1
- package/lib/CalendarMonth.js +0 -1
- package/lib/CalendarMonth.js.map +1 -1
- package/lib/CalendarPicker.js +0 -1
- package/lib/CalendarPicker.js.map +1 -1
- package/lib/CalendarYear.js +0 -1
- package/lib/CalendarYear.js.map +1 -1
- package/lib/DatePicker.js +0 -1
- package/lib/DatePicker.js.map +1 -1
- package/lib/components/Calendar/Calendar.js +278 -300
- package/lib/components/Calendar/Calendar.js.map +1 -1
- package/lib/components/Calendar/Calendar.types.js +7 -12
- package/lib/components/Calendar/Calendar.types.js.map +1 -1
- package/lib/components/Calendar/defaults.js +0 -1
- package/lib/components/Calendar/defaults.js.map +1 -1
- package/lib/components/Calendar/index.js +0 -1
- package/lib/components/Calendar/index.js.map +1 -1
- package/lib/components/Calendar/useCalendarStyles.styles.js.map +1 -1
- package/lib/components/CalendarDay/CalendarDay.js +100 -128
- package/lib/components/CalendarDay/CalendarDay.js.map +1 -1
- package/lib/components/CalendarDay/CalendarDay.types.js +0 -1
- package/lib/components/CalendarDay/CalendarDay.types.js.map +1 -1
- package/lib/components/CalendarDay/index.js +0 -1
- package/lib/components/CalendarDay/index.js.map +1 -1
- package/lib/components/CalendarDay/useCalendarDayStyles.styles.js.map +1 -1
- package/lib/components/CalendarDayGrid/CalendarDayGrid.js +146 -159
- package/lib/components/CalendarDayGrid/CalendarDayGrid.js.map +1 -1
- package/lib/components/CalendarDayGrid/CalendarDayGrid.types.js +0 -1
- package/lib/components/CalendarDayGrid/CalendarDayGrid.types.js.map +1 -1
- package/lib/components/CalendarDayGrid/CalendarGridDayCell.js +150 -179
- package/lib/components/CalendarDayGrid/CalendarGridDayCell.js.map +1 -1
- package/lib/components/CalendarDayGrid/CalendarGridRow.js +20 -34
- package/lib/components/CalendarDayGrid/CalendarGridRow.js.map +1 -1
- package/lib/components/CalendarDayGrid/CalendarMonthHeaderRow.js +29 -39
- package/lib/components/CalendarDayGrid/CalendarMonthHeaderRow.js.map +1 -1
- package/lib/components/CalendarDayGrid/index.js +0 -1
- package/lib/components/CalendarDayGrid/index.js.map +1 -1
- package/lib/components/CalendarDayGrid/useCalendarDayGridStyles.styles.js.map +1 -1
- package/lib/components/CalendarDayGrid/useWeekCornerStyles.styles.js.map +1 -1
- package/lib/components/CalendarDayGrid/useWeeks.js +34 -36
- package/lib/components/CalendarDayGrid/useWeeks.js.map +1 -1
- package/lib/components/CalendarMonth/CalendarMonth.js +238 -258
- package/lib/components/CalendarMonth/CalendarMonth.js.map +1 -1
- package/lib/components/CalendarMonth/CalendarMonth.types.js +0 -1
- package/lib/components/CalendarMonth/CalendarMonth.types.js.map +1 -1
- package/lib/components/CalendarMonth/index.js +0 -1
- package/lib/components/CalendarMonth/index.js.map +1 -1
- package/lib/components/CalendarMonth/useCalendarMonthStyles.js +2 -4
- package/lib/components/CalendarMonth/useCalendarMonthStyles.js.map +1 -1
- package/lib/components/CalendarPicker/CalendarPicker.types.js +1 -2
- package/lib/components/CalendarPicker/CalendarPicker.types.js.map +1 -1
- package/lib/components/CalendarPicker/index.js +0 -1
- package/lib/components/CalendarPicker/index.js.map +1 -1
- package/lib/components/CalendarPicker/useCalendarPickerStyles.styles.js.map +1 -1
- package/lib/components/CalendarYear/CalendarYear.js +260 -312
- package/lib/components/CalendarYear/CalendarYear.js.map +1 -1
- package/lib/components/CalendarYear/CalendarYear.types.js +0 -1
- package/lib/components/CalendarYear/CalendarYear.types.js.map +1 -1
- package/lib/components/CalendarYear/index.js +0 -1
- package/lib/components/CalendarYear/index.js.map +1 -1
- package/lib/components/CalendarYear/useCalendarYearStyles.styles.js.map +1 -1
- package/lib/components/DatePicker/DatePicker.js +4 -5
- package/lib/components/DatePicker/DatePicker.js.map +1 -1
- package/lib/components/DatePicker/DatePicker.types.js +0 -1
- package/lib/components/DatePicker/DatePicker.types.js.map +1 -1
- package/lib/components/DatePicker/defaults.js +9 -10
- package/lib/components/DatePicker/defaults.js.map +1 -1
- package/lib/components/DatePicker/index.js +0 -1
- package/lib/components/DatePicker/index.js.map +1 -1
- package/lib/components/DatePicker/renderDatePicker.js +5 -12
- package/lib/components/DatePicker/renderDatePicker.js.map +1 -1
- package/lib/components/DatePicker/useDatePicker.js +401 -353
- package/lib/components/DatePicker/useDatePicker.js.map +1 -1
- package/lib/components/DatePicker/useDatePickerStyles.styles.js.map +1 -1
- package/lib/index.js +0 -1
- package/lib/index.js.map +1 -1
- package/lib/utils/animations.js +72 -73
- package/lib/utils/animations.js.map +1 -1
- package/lib/utils/constants.js +50 -52
- package/lib/utils/constants.js.map +1 -1
- package/lib/utils/dateFormatting/dateFormatting.defaults.js +71 -34
- package/lib/utils/dateFormatting/dateFormatting.defaults.js.map +1 -1
- package/lib/utils/dateFormatting/dateFormatting.types.js +1 -2
- package/lib/utils/dateFormatting/dateFormatting.types.js.map +1 -1
- package/lib/utils/dateFormatting/index.js +0 -1
- package/lib/utils/dateFormatting/index.js.map +1 -1
- package/lib/utils/dateGrid/dateGrid.types.js +1 -2
- package/lib/utils/dateGrid/dateGrid.types.js.map +1 -1
- package/lib/utils/dateGrid/findAvailableDate.js +14 -21
- package/lib/utils/dateGrid/findAvailableDate.js.map +1 -1
- package/lib/utils/dateGrid/getBoundedDateRange.js +11 -11
- package/lib/utils/dateGrid/getBoundedDateRange.js.map +1 -1
- package/lib/utils/dateGrid/getDateRangeTypeToUse.js +6 -8
- package/lib/utils/dateGrid/getDateRangeTypeToUse.js.map +1 -1
- package/lib/utils/dateGrid/getDayGrid.js +59 -73
- package/lib/utils/dateGrid/getDayGrid.js.map +1 -1
- package/lib/utils/dateGrid/index.js +0 -1
- package/lib/utils/dateGrid/index.js.map +1 -1
- package/lib/utils/dateGrid/isAfterMaxDate.js +3 -7
- package/lib/utils/dateGrid/isAfterMaxDate.js.map +1 -1
- package/lib/utils/dateGrid/isBeforeMinDate.js +3 -7
- package/lib/utils/dateGrid/isBeforeMinDate.js.map +1 -1
- package/lib/utils/dateGrid/isContiguous.js +11 -12
- package/lib/utils/dateGrid/isContiguous.js.map +1 -1
- package/lib/utils/dateGrid/isRestrictedDate.js +7 -13
- package/lib/utils/dateGrid/isRestrictedDate.js.map +1 -1
- package/lib/utils/dateMath/dateMath.js +179 -198
- package/lib/utils/dateMath/dateMath.js.map +1 -1
- package/lib/utils/dateMath/index.js +0 -1
- package/lib/utils/dateMath/index.js.map +1 -1
- package/lib/utils/dom.js +5 -6
- package/lib/utils/dom.js.map +1 -1
- package/lib/utils/focus.js +17 -19
- package/lib/utils/focus.js.map +1 -1
- package/lib/utils/index.js +0 -1
- package/lib/utils/index.js.map +1 -1
- package/lib/utils/usePopupPositioning.js +12 -16
- package/lib/utils/usePopupPositioning.js.map +1 -1
- package/lib-commonjs/Calendar.js +0 -3
- package/lib-commonjs/Calendar.js.map +1 -1
- package/lib-commonjs/CalendarDay.js +0 -3
- package/lib-commonjs/CalendarDay.js.map +1 -1
- package/lib-commonjs/CalendarDayGrid.js +0 -3
- package/lib-commonjs/CalendarDayGrid.js.map +1 -1
- package/lib-commonjs/CalendarMonth.js +0 -3
- package/lib-commonjs/CalendarMonth.js.map +1 -1
- package/lib-commonjs/CalendarPicker.js +0 -3
- package/lib-commonjs/CalendarPicker.js.map +1 -1
- package/lib-commonjs/CalendarYear.js +0 -3
- package/lib-commonjs/CalendarYear.js.map +1 -1
- package/lib-commonjs/DatePicker.js +0 -3
- package/lib-commonjs/DatePicker.js.map +1 -1
- package/lib-commonjs/components/Calendar/Calendar.js +1 -3
- package/lib-commonjs/components/Calendar/Calendar.js.map +1 -1
- package/lib-commonjs/components/Calendar/Calendar.types.js +5 -7
- package/lib-commonjs/components/Calendar/Calendar.types.js.map +1 -1
- package/lib-commonjs/components/Calendar/defaults.js +1 -3
- package/lib-commonjs/components/Calendar/defaults.js.map +1 -1
- package/lib-commonjs/components/Calendar/index.js +0 -3
- package/lib-commonjs/components/Calendar/index.js.map +1 -1
- package/lib-commonjs/components/Calendar/useCalendarStyles.styles.js +0 -2
- package/lib-commonjs/components/Calendar/useCalendarStyles.styles.js.map +1 -1
- package/lib-commonjs/components/CalendarDay/CalendarDay.js +1 -3
- package/lib-commonjs/components/CalendarDay/CalendarDay.js.map +1 -1
- package/lib-commonjs/components/CalendarDay/CalendarDay.types.js +0 -3
- package/lib-commonjs/components/CalendarDay/CalendarDay.types.js.map +1 -1
- package/lib-commonjs/components/CalendarDay/index.js +0 -3
- package/lib-commonjs/components/CalendarDay/index.js.map +1 -1
- package/lib-commonjs/components/CalendarDay/useCalendarDayStyles.styles.js +0 -2
- package/lib-commonjs/components/CalendarDay/useCalendarDayStyles.styles.js.map +1 -1
- package/lib-commonjs/components/CalendarDayGrid/CalendarDayGrid.js +7 -9
- package/lib-commonjs/components/CalendarDayGrid/CalendarDayGrid.js.map +1 -1
- package/lib-commonjs/components/CalendarDayGrid/CalendarDayGrid.types.js +0 -3
- package/lib-commonjs/components/CalendarDayGrid/CalendarDayGrid.types.js.map +1 -1
- package/lib-commonjs/components/CalendarDayGrid/CalendarGridDayCell.js +1 -3
- package/lib-commonjs/components/CalendarDayGrid/CalendarGridDayCell.js.map +1 -1
- package/lib-commonjs/components/CalendarDayGrid/CalendarGridRow.js +1 -3
- package/lib-commonjs/components/CalendarDayGrid/CalendarGridRow.js.map +1 -1
- package/lib-commonjs/components/CalendarDayGrid/CalendarMonthHeaderRow.js +1 -3
- package/lib-commonjs/components/CalendarDayGrid/CalendarMonthHeaderRow.js.map +1 -1
- package/lib-commonjs/components/CalendarDayGrid/index.js +0 -3
- package/lib-commonjs/components/CalendarDayGrid/index.js.map +1 -1
- package/lib-commonjs/components/CalendarDayGrid/useCalendarDayGridStyles.styles.js +0 -2
- package/lib-commonjs/components/CalendarDayGrid/useCalendarDayGridStyles.styles.js.map +1 -1
- package/lib-commonjs/components/CalendarDayGrid/useWeekCornerStyles.styles.js +0 -2
- package/lib-commonjs/components/CalendarDayGrid/useWeekCornerStyles.styles.js.map +1 -1
- package/lib-commonjs/components/CalendarDayGrid/useWeeks.js +9 -11
- package/lib-commonjs/components/CalendarDayGrid/useWeeks.js.map +1 -1
- package/lib-commonjs/components/CalendarMonth/CalendarMonth.js +1 -3
- package/lib-commonjs/components/CalendarMonth/CalendarMonth.js.map +1 -1
- package/lib-commonjs/components/CalendarMonth/CalendarMonth.types.js +0 -3
- package/lib-commonjs/components/CalendarMonth/CalendarMonth.types.js.map +1 -1
- package/lib-commonjs/components/CalendarMonth/index.js +0 -3
- package/lib-commonjs/components/CalendarMonth/index.js.map +1 -1
- package/lib-commonjs/components/CalendarMonth/useCalendarMonthStyles.js +1 -3
- package/lib-commonjs/components/CalendarMonth/useCalendarMonthStyles.js.map +1 -1
- package/lib-commonjs/components/CalendarPicker/CalendarPicker.types.js +0 -3
- package/lib-commonjs/components/CalendarPicker/CalendarPicker.types.js.map +1 -1
- package/lib-commonjs/components/CalendarPicker/index.js +0 -3
- package/lib-commonjs/components/CalendarPicker/index.js.map +1 -1
- package/lib-commonjs/components/CalendarPicker/useCalendarPickerStyles.styles.js +0 -2
- package/lib-commonjs/components/CalendarPicker/useCalendarPickerStyles.styles.js.map +1 -1
- package/lib-commonjs/components/CalendarYear/CalendarYear.js +1 -3
- package/lib-commonjs/components/CalendarYear/CalendarYear.js.map +1 -1
- package/lib-commonjs/components/CalendarYear/CalendarYear.types.js +0 -3
- package/lib-commonjs/components/CalendarYear/CalendarYear.types.js.map +1 -1
- package/lib-commonjs/components/CalendarYear/index.js +0 -3
- package/lib-commonjs/components/CalendarYear/index.js.map +1 -1
- package/lib-commonjs/components/CalendarYear/useCalendarYearStyles.styles.js +0 -2
- package/lib-commonjs/components/CalendarYear/useCalendarYearStyles.styles.js.map +1 -1
- package/lib-commonjs/components/DatePicker/DatePicker.js +1 -3
- package/lib-commonjs/components/DatePicker/DatePicker.js.map +1 -1
- package/lib-commonjs/components/DatePicker/DatePicker.types.js +0 -3
- package/lib-commonjs/components/DatePicker/DatePicker.types.js.map +1 -1
- package/lib-commonjs/components/DatePicker/defaults.js +1 -3
- package/lib-commonjs/components/DatePicker/defaults.js.map +1 -1
- package/lib-commonjs/components/DatePicker/index.js +0 -3
- package/lib-commonjs/components/DatePicker/index.js.map +1 -1
- package/lib-commonjs/components/DatePicker/renderDatePicker.js +1 -3
- package/lib-commonjs/components/DatePicker/renderDatePicker.js.map +1 -1
- package/lib-commonjs/components/DatePicker/useDatePicker.js +8 -11
- package/lib-commonjs/components/DatePicker/useDatePicker.js.map +1 -1
- package/lib-commonjs/components/DatePicker/useDatePickerStyles.styles.js +0 -2
- package/lib-commonjs/components/DatePicker/useDatePickerStyles.styles.js.map +1 -1
- package/lib-commonjs/index.js +0 -3
- package/lib-commonjs/index.js.map +1 -1
- package/lib-commonjs/utils/animations.js +4 -6
- package/lib-commonjs/utils/animations.js.map +1 -1
- package/lib-commonjs/utils/constants.js +7 -9
- package/lib-commonjs/utils/constants.js.map +1 -1
- package/lib-commonjs/utils/dateFormatting/dateFormatting.defaults.js +1 -3
- package/lib-commonjs/utils/dateFormatting/dateFormatting.defaults.js.map +1 -1
- package/lib-commonjs/utils/dateFormatting/dateFormatting.types.js +0 -3
- package/lib-commonjs/utils/dateFormatting/dateFormatting.types.js.map +1 -1
- package/lib-commonjs/utils/dateFormatting/index.js +0 -3
- package/lib-commonjs/utils/dateFormatting/index.js.map +1 -1
- package/lib-commonjs/utils/dateGrid/dateGrid.types.js +0 -3
- package/lib-commonjs/utils/dateGrid/dateGrid.types.js.map +1 -1
- package/lib-commonjs/utils/dateGrid/findAvailableDate.js +1 -3
- package/lib-commonjs/utils/dateGrid/findAvailableDate.js.map +1 -1
- package/lib-commonjs/utils/dateGrid/getBoundedDateRange.js +1 -3
- package/lib-commonjs/utils/dateGrid/getBoundedDateRange.js.map +1 -1
- package/lib-commonjs/utils/dateGrid/getDateRangeTypeToUse.js +1 -3
- package/lib-commonjs/utils/dateGrid/getDateRangeTypeToUse.js.map +1 -1
- package/lib-commonjs/utils/dateGrid/getDayGrid.js +1 -3
- package/lib-commonjs/utils/dateGrid/getDayGrid.js.map +1 -1
- package/lib-commonjs/utils/dateGrid/index.js +0 -3
- package/lib-commonjs/utils/dateGrid/index.js.map +1 -1
- package/lib-commonjs/utils/dateGrid/isAfterMaxDate.js +1 -3
- package/lib-commonjs/utils/dateGrid/isAfterMaxDate.js.map +1 -1
- package/lib-commonjs/utils/dateGrid/isBeforeMinDate.js +1 -3
- package/lib-commonjs/utils/dateGrid/isBeforeMinDate.js.map +1 -1
- package/lib-commonjs/utils/dateGrid/isContiguous.js +1 -3
- package/lib-commonjs/utils/dateGrid/isContiguous.js.map +1 -1
- package/lib-commonjs/utils/dateGrid/isRestrictedDate.js +1 -3
- package/lib-commonjs/utils/dateGrid/isRestrictedDate.js.map +1 -1
- package/lib-commonjs/utils/dateMath/dateMath.js +1 -3
- package/lib-commonjs/utils/dateMath/dateMath.js.map +1 -1
- package/lib-commonjs/utils/dateMath/index.js +0 -3
- package/lib-commonjs/utils/dateMath/index.js.map +1 -1
- package/lib-commonjs/utils/dom.js +1 -3
- package/lib-commonjs/utils/dom.js.map +1 -1
- package/lib-commonjs/utils/focus.js +1 -3
- package/lib-commonjs/utils/focus.js.map +1 -1
- package/lib-commonjs/utils/index.js +0 -3
- package/lib-commonjs/utils/index.js.map +1 -1
- package/lib-commonjs/utils/usePopupPositioning.js +1 -3
- package/lib-commonjs/utils/usePopupPositioning.js.map +1 -1
- package/package.json +11 -11
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","Backspace","Enter","Escape","PageDown","PageUp","Space","useControllableState","addMonths","addYears","DateRangeType","DayOfWeek","DEFAULT_CALENDAR_STRINGS","DEFAULT_DATE_FORMATTING","FirstWeekOfYear","focusAsync","getWindow","CalendarDay","CalendarMonth","useCalendarStyles_unstable","MIN_SIZE_FORCE_OVERLAY","defaultWorkWeekDays","Monday","Tuesday","Wednesday","Thursday","Friday","useDateState","value","today","Date","onSelectDate","selectedDate","setSelectedDate","defaultState","initialState","state","navigatedDay","setNavigatedDay","useState","navigatedMonth","setNavigatedMonth","lastSelectedDate","setLastSelectedDate","valueOf","navigateMonth","date","navigateDay","onDateSelected","selectedDateRangeArray","useVisibilityState","isDayPickerVisible","isDayPickerVisibleProp","isMonthPickerVisible","isMonthPickerVisibleProp","showMonthPickerAsOverlay","setIsMonthPickerVisible","getShowMonthPickerAsOverlay","undefined","setIsDayPickerVisible","toggleDayMonthPickerVisibility","useFocusLogic","componentRef","dayPicker","useRef","monthPicker","focusOnUpdate","focus","useCallback","current","useImperativeHandle","useEffect","focusOnNextUpdate","Calendar","forwardRef","props","forwardedRef","allFocusable","calendarDayProps","calendarMonthProps","className","dateRangeType","Day","dateTimeFormatter","firstDayOfWeek","Sunday","firstWeekOfYear","FirstDay","highlightCurrentMonth","highlightSelectedMonth","id","maxDate","minDate","onDismiss","restrictedDates","showCloseButton","showGoToToday","showMonthPickerAsOverlayProp","showSixWeeksByDefault","showWeekNumbers","strings","workWeekDays","renderGoToTodayButton","goTodayEnabled","getFullYear","getMonth","createElement","classes","goTodayButton","onClick","onGotoToday","onKeyDown","onButtonKeyDown","type","disabled","goToToday","onNavigateDayDate","focusOnNavigatedDay","onNavigateMonthDate","monthPickerOnly","onHeaderSelect","callback","ev","key","onDatePickerPopupKeyDown","preventDefault","stopPropagation","ctrlKey","todayDateString","selectedDateString","todayDateFormatString","replace","formatMonthDayYear","selectedDateFormatString","selectionAndTodayString","ref","role","root","liveRegion","navigatedDate","onNavigateDate","divider","monthPickerWrapper","displayName","win","innerWidth"],"sources":["../../../src/components/Calendar/Calendar.tsx"],"sourcesContent":["import * as React from 'react';\nimport { Backspace, Enter, Escape, PageDown, PageUp, Space } from '@fluentui/keyboard-keys';\nimport { useControllableState } from '@fluentui/react-utilities';\nimport {\n addMonths,\n addYears,\n DateRangeType,\n DayOfWeek,\n DEFAULT_CALENDAR_STRINGS,\n DEFAULT_DATE_FORMATTING,\n FirstWeekOfYear,\n focusAsync,\n getWindow,\n} from '../../utils';\nimport { CalendarDay } from '../CalendarDay/CalendarDay';\nimport { CalendarMonth } from '../CalendarMonth/CalendarMonth';\nimport { useCalendarStyles_unstable } from './useCalendarStyles.styles';\nimport type { ICalendarDay } from '../CalendarDay/CalendarDay.types';\nimport type { ICalendarMonth } from '../CalendarMonth/CalendarMonth.types';\nimport type { CalendarProps } from './Calendar.types';\n\nconst MIN_SIZE_FORCE_OVERLAY = 440;\n\nconst defaultWorkWeekDays: DayOfWeek[] = [\n DayOfWeek.Monday,\n DayOfWeek.Tuesday,\n DayOfWeek.Wednesday,\n DayOfWeek.Thursday,\n DayOfWeek.Friday,\n];\n\nfunction useDateState({ value, today = new Date(), onSelectDate }: CalendarProps) {\n /** The currently selected date in the calendar */\n const [selectedDate, setSelectedDate] = useControllableState({\n defaultState: today,\n initialState: today,\n state: value,\n });\n\n /** The currently focused date in the day picker, but not necessarily selected */\n const [navigatedDay = today, setNavigatedDay] = React.useState(value);\n\n /** The currently focused date in the month picker, but not necessarily selected */\n const [navigatedMonth = today, setNavigatedMonth] = React.useState(value);\n\n /** If using a controlled value, when that value changes, navigate to that date */\n const [lastSelectedDate = today, setLastSelectedDate] = React.useState(value);\n if (value && lastSelectedDate.valueOf() !== value.valueOf()) {\n setNavigatedDay(value);\n setNavigatedMonth(value);\n setLastSelectedDate(value);\n }\n\n const navigateMonth = (date: Date) => {\n setNavigatedMonth(date);\n };\n\n const navigateDay = (date: Date) => {\n setNavigatedMonth(date);\n setNavigatedDay(date);\n };\n\n const onDateSelected = (date: Date, selectedDateRangeArray?: Date[]) => {\n setNavigatedMonth(date);\n setNavigatedDay(date);\n setSelectedDate(date);\n onSelectDate?.(date, selectedDateRangeArray);\n };\n\n return [selectedDate, navigatedDay, navigatedMonth, onDateSelected, navigateDay, navigateMonth] as const;\n}\n\nfunction useVisibilityState({\n isDayPickerVisible: isDayPickerVisibleProp,\n isMonthPickerVisible: isMonthPickerVisibleProp,\n showMonthPickerAsOverlay,\n}: CalendarProps) {\n /** State used to show/hide month picker */\n const [isMonthPickerVisible, setIsMonthPickerVisible] = useControllableState({\n defaultState: false,\n initialState: true,\n state: getShowMonthPickerAsOverlay({ isDayPickerVisible: isDayPickerVisibleProp, showMonthPickerAsOverlay })\n ? undefined\n : isMonthPickerVisibleProp,\n });\n /** State used to show/hide day picker */\n const [isDayPickerVisible, setIsDayPickerVisible] = useControllableState({\n defaultState: true,\n initialState: true,\n state: getShowMonthPickerAsOverlay({ isDayPickerVisible: isDayPickerVisibleProp, showMonthPickerAsOverlay })\n ? undefined\n : isDayPickerVisibleProp,\n });\n\n const toggleDayMonthPickerVisibility = () => {\n setIsMonthPickerVisible(!isMonthPickerVisible);\n setIsDayPickerVisible(!isDayPickerVisible);\n };\n\n return [isMonthPickerVisible, isDayPickerVisible, toggleDayMonthPickerVisibility] as const;\n}\n\nfunction useFocusLogic({ componentRef }: CalendarProps, isDayPickerVisible: boolean, isMonthPickerVisible: boolean) {\n const dayPicker = React.useRef<ICalendarDay>(null);\n const monthPicker = React.useRef<ICalendarMonth>(null);\n const focusOnUpdate = React.useRef(false);\n\n const focus = React.useCallback(() => {\n if (isDayPickerVisible && dayPicker.current) {\n focusAsync(dayPicker.current);\n } else if (isMonthPickerVisible && monthPicker.current) {\n focusAsync(monthPicker.current);\n }\n }, [isDayPickerVisible, isMonthPickerVisible]);\n\n React.useImperativeHandle(componentRef, () => ({ focus }), [focus]);\n\n React.useEffect(() => {\n if (focusOnUpdate.current) {\n focus();\n focusOnUpdate.current = false;\n }\n });\n\n const focusOnNextUpdate = () => {\n focusOnUpdate.current = true;\n };\n\n return [dayPicker, monthPicker, focusOnNextUpdate] as const;\n}\n\n/**\n * @internal\n */\nexport const Calendar: React.FunctionComponent<CalendarProps> = React.forwardRef<HTMLDivElement, CalendarProps>(\n (props, forwardedRef) => {\n const {\n allFocusable = false,\n calendarDayProps,\n calendarMonthProps,\n className,\n componentRef,\n dateRangeType = DateRangeType.Day,\n dateTimeFormatter = DEFAULT_DATE_FORMATTING,\n firstDayOfWeek = DayOfWeek.Sunday,\n firstWeekOfYear = FirstWeekOfYear.FirstDay,\n highlightCurrentMonth = false,\n highlightSelectedMonth = false,\n id,\n isDayPickerVisible: isDayPickerVisibleProp = true,\n isMonthPickerVisible: isMonthPickerVisibleProp = true,\n maxDate,\n minDate,\n onDismiss,\n onSelectDate,\n restrictedDates,\n showCloseButton = false,\n showGoToToday = true,\n showMonthPickerAsOverlay: showMonthPickerAsOverlayProp = false,\n showSixWeeksByDefault = false,\n showWeekNumbers = false,\n strings = DEFAULT_CALENDAR_STRINGS,\n today = new Date(),\n value,\n workWeekDays = defaultWorkWeekDays,\n } = props;\n\n const [selectedDate, navigatedDay, navigatedMonth, onDateSelected, navigateDay, navigateMonth] = useDateState({\n onSelectDate,\n value,\n today,\n });\n const [isMonthPickerVisible, isDayPickerVisible, toggleDayMonthPickerVisibility] = useVisibilityState({\n isDayPickerVisible: isDayPickerVisibleProp,\n isMonthPickerVisible: isMonthPickerVisibleProp,\n showMonthPickerAsOverlay: showMonthPickerAsOverlayProp,\n });\n const [dayPicker, monthPicker, focusOnNextUpdate] = useFocusLogic(\n { componentRef },\n isDayPickerVisible,\n isMonthPickerVisible,\n );\n\n const renderGoToTodayButton = () => {\n let goTodayEnabled = showGoToToday;\n\n if (goTodayEnabled && today) {\n goTodayEnabled =\n navigatedDay.getFullYear() !== today.getFullYear() ||\n navigatedDay.getMonth() !== today.getMonth() ||\n navigatedMonth.getFullYear() !== today.getFullYear() ||\n navigatedMonth.getMonth() !== today.getMonth();\n }\n\n return (\n showGoToToday && (\n <button\n className={classes.goTodayButton}\n onClick={onGotoToday}\n onKeyDown={onButtonKeyDown(onGotoToday)}\n type=\"button\"\n disabled={!goTodayEnabled}\n >\n {strings!.goToToday}\n </button>\n )\n );\n };\n\n const onNavigateDayDate = (date: Date, focusOnNavigatedDay: boolean): void => {\n navigateDay(date);\n if (focusOnNavigatedDay) {\n focusOnNextUpdate();\n }\n };\n\n const onNavigateMonthDate = (date: Date, focusOnNavigatedDay: boolean): void => {\n if (focusOnNavigatedDay) {\n focusOnNextUpdate();\n }\n\n if (!focusOnNavigatedDay) {\n navigateMonth(date);\n return;\n }\n\n if (monthPickerOnly) {\n onDateSelected(date);\n }\n\n navigateDay(date);\n };\n\n const onHeaderSelect = getShowMonthPickerAsOverlay({\n isDayPickerVisible: isDayPickerVisibleProp,\n showMonthPickerAsOverlay: showMonthPickerAsOverlayProp,\n })\n ? (): void => {\n toggleDayMonthPickerVisibility();\n\n focusOnNextUpdate();\n }\n : undefined;\n\n const onGotoToday = (): void => {\n navigateDay(today!);\n focusOnNextUpdate();\n };\n\n const onButtonKeyDown = (callback: () => void): ((ev: React.KeyboardEvent<HTMLButtonElement>) => void) => {\n return (ev: React.KeyboardEvent<HTMLButtonElement>) => {\n switch (ev.key) {\n case Enter:\n case Space:\n callback();\n break;\n }\n };\n };\n\n const onDatePickerPopupKeyDown = (ev: React.KeyboardEvent<HTMLElement>): void => {\n switch (ev.key) {\n case Enter:\n ev.preventDefault();\n break;\n\n case Backspace:\n ev.preventDefault();\n break;\n\n case Escape:\n ev.stopPropagation();\n onDismiss?.();\n break;\n\n case PageUp:\n if (ev.ctrlKey) {\n // go to next year\n navigateDay(addYears(navigatedDay, 1));\n } else {\n // go to next month\n navigateDay(addMonths(navigatedDay, 1));\n }\n ev.preventDefault();\n break;\n case PageDown:\n if (ev.ctrlKey) {\n // go to previous year\n navigateDay(addYears(navigatedDay, -1));\n } else {\n // go to previous month\n navigateDay(addMonths(navigatedDay, -1));\n }\n ev.preventDefault();\n break;\n default:\n break;\n }\n };\n const showMonthPickerAsOverlay = getShowMonthPickerAsOverlay(props);\n\n const monthPickerOnly = !showMonthPickerAsOverlay && !isDayPickerVisible;\n\n const classes = useCalendarStyles_unstable({\n className,\n isDayPickerVisible,\n isMonthPickerVisible,\n showWeekNumbers,\n });\n\n let todayDateString: string = '';\n let selectedDateString: string = '';\n if (dateTimeFormatter && strings!.todayDateFormatString) {\n todayDateString = strings!.todayDateFormatString.replace(\n '{0}',\n dateTimeFormatter.formatMonthDayYear(today, strings!),\n );\n }\n if (dateTimeFormatter && strings!.selectedDateFormatString) {\n selectedDateString = strings!.selectedDateFormatString.replace(\n '{0}',\n dateTimeFormatter.formatMonthDayYear(selectedDate, strings!),\n );\n }\n const selectionAndTodayString = selectedDateString + ', ' + todayDateString;\n\n return (\n <div\n id={id}\n ref={forwardedRef}\n role=\"group\"\n aria-label={selectionAndTodayString}\n className={classes.root}\n onKeyDown={onDatePickerPopupKeyDown}\n >\n <div className={classes.liveRegion} aria-live=\"polite\" aria-atomic=\"true\">\n <span>{selectedDateString}</span>\n </div>\n {isDayPickerVisible && (\n <CalendarDay\n selectedDate={selectedDate!}\n navigatedDate={navigatedDay!}\n today={today}\n onSelectDate={onDateSelected}\n // eslint-disable-next-line react/jsx-no-bind\n onNavigateDate={onNavigateDayDate}\n onDismiss={onDismiss}\n firstDayOfWeek={firstDayOfWeek!}\n dateRangeType={dateRangeType!}\n strings={strings!}\n // eslint-disable-next-line react/jsx-no-bind\n onHeaderSelect={onHeaderSelect}\n showWeekNumbers={showWeekNumbers}\n firstWeekOfYear={firstWeekOfYear!}\n dateTimeFormatter={dateTimeFormatter!}\n showSixWeeksByDefault={showSixWeeksByDefault}\n minDate={minDate}\n maxDate={maxDate}\n restrictedDates={restrictedDates}\n workWeekDays={workWeekDays}\n componentRef={dayPicker}\n showCloseButton={showCloseButton}\n allFocusable={allFocusable}\n {...calendarDayProps} // at end of list so consumer's custom functions take precedence\n />\n )}\n {isDayPickerVisible && isMonthPickerVisible && <div className={classes.divider} />}\n {isMonthPickerVisible ? (\n <div className={classes.monthPickerWrapper}>\n <CalendarMonth\n navigatedDate={navigatedMonth}\n selectedDate={navigatedDay}\n strings={strings!}\n // eslint-disable-next-line react/jsx-no-bind\n onNavigateDate={onNavigateMonthDate}\n today={today}\n highlightCurrentMonth={highlightCurrentMonth!}\n highlightSelectedMonth={highlightSelectedMonth!}\n // eslint-disable-next-line react/jsx-no-bind\n onHeaderSelect={onHeaderSelect}\n dateTimeFormatter={dateTimeFormatter!}\n minDate={minDate}\n maxDate={maxDate}\n componentRef={monthPicker}\n {...calendarMonthProps} // at end of list so consumer's custom functions take precedence\n />\n {renderGoToTodayButton()}\n </div>\n ) : (\n renderGoToTodayButton()\n )}\n </div>\n );\n },\n);\nCalendar.displayName = 'Calendar';\n\nfunction getShowMonthPickerAsOverlay({ isDayPickerVisible, showMonthPickerAsOverlay }: CalendarProps) {\n const win = getWindow();\n return showMonthPickerAsOverlay || (isDayPickerVisible && win && win.innerWidth <= MIN_SIZE_FORCE_OVERLAY);\n}\n"],"mappings":"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"}
|
|
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 {\n addMonths,\n addYears,\n DateRangeType,\n DayOfWeek,\n DEFAULT_CALENDAR_STRINGS,\n DEFAULT_DATE_FORMATTING,\n FirstWeekOfYear,\n focusAsync,\n getWindow,\n} from '../../utils';\nimport { CalendarDay } from '../CalendarDay/CalendarDay';\nimport { CalendarMonth } from '../CalendarMonth/CalendarMonth';\nimport { useCalendarStyles_unstable } from './useCalendarStyles.styles';\nimport type { ICalendarDay } from '../CalendarDay/CalendarDay.types';\nimport type { ICalendarMonth } from '../CalendarMonth/CalendarMonth.types';\nimport type { CalendarProps } from './Calendar.types';\n\nconst MIN_SIZE_FORCE_OVERLAY = 440;\n\nconst defaultWorkWeekDays: DayOfWeek[] = [\n DayOfWeek.Monday,\n DayOfWeek.Tuesday,\n DayOfWeek.Wednesday,\n DayOfWeek.Thursday,\n DayOfWeek.Friday,\n];\n\nfunction useDateState({ value, today = new Date(), onSelectDate }: CalendarProps) {\n /** The currently selected date in the calendar */\n const [selectedDate, setSelectedDate] = useControllableState({\n defaultState: today,\n initialState: today,\n state: value,\n });\n\n /** The currently focused date in the day picker, but not necessarily selected */\n const [navigatedDay = today, setNavigatedDay] = React.useState(value);\n\n /** The currently focused date in the month picker, but not necessarily selected */\n const [navigatedMonth = today, setNavigatedMonth] = React.useState(value);\n\n /** If using a controlled value, when that value changes, navigate to that date */\n const [lastSelectedDate = today, setLastSelectedDate] = React.useState(value);\n if (value && lastSelectedDate.valueOf() !== value.valueOf()) {\n setNavigatedDay(value);\n setNavigatedMonth(value);\n setLastSelectedDate(value);\n }\n\n const navigateMonth = (date: Date) => {\n setNavigatedMonth(date);\n };\n\n const navigateDay = (date: Date) => {\n setNavigatedMonth(date);\n setNavigatedDay(date);\n };\n\n const onDateSelected = (date: Date, selectedDateRangeArray?: Date[]) => {\n setNavigatedMonth(date);\n setNavigatedDay(date);\n setSelectedDate(date);\n onSelectDate?.(date, selectedDateRangeArray);\n };\n\n return [selectedDate, navigatedDay, navigatedMonth, onDateSelected, navigateDay, navigateMonth] as const;\n}\n\nfunction useVisibilityState({\n isDayPickerVisible: isDayPickerVisibleProp,\n isMonthPickerVisible: isMonthPickerVisibleProp,\n showMonthPickerAsOverlay,\n}: CalendarProps) {\n /** State used to show/hide month picker */\n const [isMonthPickerVisible, setIsMonthPickerVisible] = useControllableState({\n defaultState: false,\n initialState: true,\n state: getShowMonthPickerAsOverlay({ isDayPickerVisible: isDayPickerVisibleProp, showMonthPickerAsOverlay })\n ? undefined\n : isMonthPickerVisibleProp,\n });\n /** State used to show/hide day picker */\n const [isDayPickerVisible, setIsDayPickerVisible] = useControllableState({\n defaultState: true,\n initialState: true,\n state: getShowMonthPickerAsOverlay({ isDayPickerVisible: isDayPickerVisibleProp, showMonthPickerAsOverlay })\n ? undefined\n : isDayPickerVisibleProp,\n });\n\n const toggleDayMonthPickerVisibility = () => {\n setIsMonthPickerVisible(!isMonthPickerVisible);\n setIsDayPickerVisible(!isDayPickerVisible);\n };\n\n return [isMonthPickerVisible, isDayPickerVisible, toggleDayMonthPickerVisibility] as const;\n}\n\nfunction useFocusLogic({ componentRef }: CalendarProps, isDayPickerVisible: boolean, isMonthPickerVisible: boolean) {\n const dayPicker = React.useRef<ICalendarDay>(null);\n const monthPicker = React.useRef<ICalendarMonth>(null);\n const focusOnUpdate = React.useRef(false);\n\n const focus = React.useCallback(() => {\n if (isDayPickerVisible && dayPicker.current) {\n focusAsync(dayPicker.current);\n } else if (isMonthPickerVisible && monthPicker.current) {\n focusAsync(monthPicker.current);\n }\n }, [isDayPickerVisible, isMonthPickerVisible]);\n\n React.useImperativeHandle(componentRef, () => ({ focus }), [focus]);\n\n React.useEffect(() => {\n if (focusOnUpdate.current) {\n focus();\n focusOnUpdate.current = false;\n }\n });\n\n const focusOnNextUpdate = () => {\n focusOnUpdate.current = true;\n };\n\n return [dayPicker, monthPicker, focusOnNextUpdate] as const;\n}\n\n/**\n * @internal\n */\nexport const Calendar: React.FunctionComponent<CalendarProps> = React.forwardRef<HTMLDivElement, CalendarProps>(\n (props, forwardedRef) => {\n const {\n allFocusable = false,\n calendarDayProps,\n calendarMonthProps,\n className,\n componentRef,\n dateRangeType = DateRangeType.Day,\n dateTimeFormatter = DEFAULT_DATE_FORMATTING,\n firstDayOfWeek = DayOfWeek.Sunday,\n firstWeekOfYear = FirstWeekOfYear.FirstDay,\n highlightCurrentMonth = false,\n highlightSelectedMonth = false,\n id,\n isDayPickerVisible: isDayPickerVisibleProp = true,\n isMonthPickerVisible: isMonthPickerVisibleProp = true,\n maxDate,\n minDate,\n onDismiss,\n onSelectDate,\n restrictedDates,\n showCloseButton = false,\n showGoToToday = true,\n showMonthPickerAsOverlay: showMonthPickerAsOverlayProp = false,\n showSixWeeksByDefault = false,\n showWeekNumbers = false,\n strings = DEFAULT_CALENDAR_STRINGS,\n today = new Date(),\n value,\n workWeekDays = defaultWorkWeekDays,\n } = props;\n\n const [selectedDate, navigatedDay, navigatedMonth, onDateSelected, navigateDay, navigateMonth] = useDateState({\n onSelectDate,\n value,\n today,\n });\n const [isMonthPickerVisible, isDayPickerVisible, toggleDayMonthPickerVisibility] = useVisibilityState({\n isDayPickerVisible: isDayPickerVisibleProp,\n isMonthPickerVisible: isMonthPickerVisibleProp,\n showMonthPickerAsOverlay: showMonthPickerAsOverlayProp,\n });\n const [dayPicker, monthPicker, focusOnNextUpdate] = useFocusLogic(\n { componentRef },\n isDayPickerVisible,\n isMonthPickerVisible,\n );\n\n const renderGoToTodayButton = () => {\n let goTodayEnabled = showGoToToday;\n\n if (goTodayEnabled && today) {\n goTodayEnabled =\n navigatedDay.getFullYear() !== today.getFullYear() ||\n navigatedDay.getMonth() !== today.getMonth() ||\n navigatedMonth.getFullYear() !== today.getFullYear() ||\n navigatedMonth.getMonth() !== today.getMonth();\n }\n\n return (\n showGoToToday && (\n <button\n className={classes.goTodayButton}\n onClick={onGotoToday}\n onKeyDown={onButtonKeyDown(onGotoToday)}\n type=\"button\"\n disabled={!goTodayEnabled}\n >\n {strings!.goToToday}\n </button>\n )\n );\n };\n\n const onNavigateDayDate = (date: Date, focusOnNavigatedDay: boolean): void => {\n navigateDay(date);\n if (focusOnNavigatedDay) {\n focusOnNextUpdate();\n }\n };\n\n const onNavigateMonthDate = (date: Date, focusOnNavigatedDay: boolean): void => {\n if (focusOnNavigatedDay) {\n focusOnNextUpdate();\n }\n\n if (!focusOnNavigatedDay) {\n navigateMonth(date);\n return;\n }\n\n if (monthPickerOnly) {\n onDateSelected(date);\n }\n\n navigateDay(date);\n };\n\n const onHeaderSelect = getShowMonthPickerAsOverlay({\n isDayPickerVisible: isDayPickerVisibleProp,\n showMonthPickerAsOverlay: showMonthPickerAsOverlayProp,\n })\n ? (): void => {\n toggleDayMonthPickerVisibility();\n\n focusOnNextUpdate();\n }\n : undefined;\n\n const onGotoToday = (): void => {\n navigateDay(today!);\n focusOnNextUpdate();\n };\n\n const onButtonKeyDown = (callback: () => void): ((ev: React.KeyboardEvent<HTMLButtonElement>) => void) => {\n return (ev: React.KeyboardEvent<HTMLButtonElement>) => {\n switch (ev.key) {\n case Enter:\n case Space:\n callback();\n break;\n }\n };\n };\n\n const onDatePickerPopupKeyDown = (ev: React.KeyboardEvent<HTMLElement>): void => {\n switch (ev.key) {\n case Enter:\n ev.preventDefault();\n break;\n\n case Backspace:\n ev.preventDefault();\n break;\n\n case Escape:\n ev.stopPropagation();\n onDismiss?.();\n break;\n\n case PageUp:\n if (ev.ctrlKey) {\n // go to next year\n navigateDay(addYears(navigatedDay, 1));\n } else {\n // go to next month\n navigateDay(addMonths(navigatedDay, 1));\n }\n ev.preventDefault();\n break;\n case PageDown:\n if (ev.ctrlKey) {\n // go to previous year\n navigateDay(addYears(navigatedDay, -1));\n } else {\n // go to previous month\n navigateDay(addMonths(navigatedDay, -1));\n }\n ev.preventDefault();\n break;\n default:\n break;\n }\n };\n const showMonthPickerAsOverlay = getShowMonthPickerAsOverlay(props);\n\n const monthPickerOnly = !showMonthPickerAsOverlay && !isDayPickerVisible;\n\n const classes = useCalendarStyles_unstable({\n className,\n isDayPickerVisible,\n isMonthPickerVisible,\n showWeekNumbers,\n });\n\n let todayDateString: string = '';\n let selectedDateString: string = '';\n if (dateTimeFormatter && strings!.todayDateFormatString) {\n todayDateString = strings!.todayDateFormatString.replace(\n '{0}',\n dateTimeFormatter.formatMonthDayYear(today, strings!),\n );\n }\n if (dateTimeFormatter && strings!.selectedDateFormatString) {\n selectedDateString = strings!.selectedDateFormatString.replace(\n '{0}',\n dateTimeFormatter.formatMonthDayYear(selectedDate, strings!),\n );\n }\n const selectionAndTodayString = selectedDateString + ', ' + todayDateString;\n\n return (\n <div\n id={id}\n ref={forwardedRef}\n role=\"group\"\n aria-label={selectionAndTodayString}\n className={classes.root}\n onKeyDown={onDatePickerPopupKeyDown}\n >\n <div className={classes.liveRegion} aria-live=\"polite\" aria-atomic=\"true\">\n <span>{selectedDateString}</span>\n </div>\n {isDayPickerVisible && (\n <CalendarDay\n selectedDate={selectedDate!}\n navigatedDate={navigatedDay!}\n today={today}\n onSelectDate={onDateSelected}\n // eslint-disable-next-line react/jsx-no-bind\n onNavigateDate={onNavigateDayDate}\n onDismiss={onDismiss}\n firstDayOfWeek={firstDayOfWeek!}\n dateRangeType={dateRangeType!}\n strings={strings!}\n // eslint-disable-next-line react/jsx-no-bind\n onHeaderSelect={onHeaderSelect}\n showWeekNumbers={showWeekNumbers}\n firstWeekOfYear={firstWeekOfYear!}\n dateTimeFormatter={dateTimeFormatter!}\n showSixWeeksByDefault={showSixWeeksByDefault}\n minDate={minDate}\n maxDate={maxDate}\n restrictedDates={restrictedDates}\n workWeekDays={workWeekDays}\n componentRef={dayPicker}\n showCloseButton={showCloseButton}\n allFocusable={allFocusable}\n {...calendarDayProps} // at end of list so consumer's custom functions take precedence\n />\n )}\n {isDayPickerVisible && isMonthPickerVisible && <div className={classes.divider} />}\n {isMonthPickerVisible ? (\n <div className={classes.monthPickerWrapper}>\n <CalendarMonth\n navigatedDate={navigatedMonth}\n selectedDate={navigatedDay}\n strings={strings!}\n // eslint-disable-next-line react/jsx-no-bind\n onNavigateDate={onNavigateMonthDate}\n today={today}\n highlightCurrentMonth={highlightCurrentMonth!}\n highlightSelectedMonth={highlightSelectedMonth!}\n // eslint-disable-next-line react/jsx-no-bind\n onHeaderSelect={onHeaderSelect}\n dateTimeFormatter={dateTimeFormatter!}\n minDate={minDate}\n maxDate={maxDate}\n componentRef={monthPicker}\n {...calendarMonthProps} // at end of list so consumer's custom functions take precedence\n />\n {renderGoToTodayButton()}\n </div>\n ) : (\n renderGoToTodayButton()\n )}\n </div>\n );\n },\n);\nCalendar.displayName = 'Calendar';\n\nfunction getShowMonthPickerAsOverlay({ isDayPickerVisible, showMonthPickerAsOverlay }: CalendarProps) {\n const win = getWindow();\n return showMonthPickerAsOverlay || (isDayPickerVisible && win && win.innerWidth <= MIN_SIZE_FORCE_OVERLAY);\n}\n"],"names":["React","Backspace","Enter","Escape","PageDown","PageUp","Space","useControllableState","addMonths","addYears","DateRangeType","DayOfWeek","DEFAULT_CALENDAR_STRINGS","DEFAULT_DATE_FORMATTING","FirstWeekOfYear","focusAsync","getWindow","CalendarDay","CalendarMonth","useCalendarStyles_unstable","MIN_SIZE_FORCE_OVERLAY","defaultWorkWeekDays","Monday","Tuesday","Wednesday","Thursday","Friday","useDateState","value","today","Date","onSelectDate","selectedDate","setSelectedDate","defaultState","initialState","state","navigatedDay","setNavigatedDay","useState","navigatedMonth","setNavigatedMonth","lastSelectedDate","setLastSelectedDate","valueOf","navigateMonth","date","navigateDay","onDateSelected","selectedDateRangeArray","useVisibilityState","isDayPickerVisible","isDayPickerVisibleProp","isMonthPickerVisible","isMonthPickerVisibleProp","showMonthPickerAsOverlay","setIsMonthPickerVisible","getShowMonthPickerAsOverlay","undefined","setIsDayPickerVisible","toggleDayMonthPickerVisibility","useFocusLogic","componentRef","dayPicker","useRef","monthPicker","focusOnUpdate","focus","useCallback","current","useImperativeHandle","useEffect","focusOnNextUpdate","Calendar","forwardRef","props","forwardedRef","allFocusable","calendarDayProps","calendarMonthProps","className","dateRangeType","Day","dateTimeFormatter","firstDayOfWeek","Sunday","firstWeekOfYear","FirstDay","highlightCurrentMonth","highlightSelectedMonth","id","maxDate","minDate","onDismiss","restrictedDates","showCloseButton","showGoToToday","showMonthPickerAsOverlayProp","showSixWeeksByDefault","showWeekNumbers","strings","workWeekDays","renderGoToTodayButton","goTodayEnabled","getFullYear","getMonth","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","selectionAndTodayString","div","ref","role","aria-label","root","liveRegion","aria-live","aria-atomic","span","navigatedDate","onNavigateDate","divider","monthPickerWrapper","displayName","win","innerWidth"],"mappings":"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"}
|
|
@@ -1,15 +1,10 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
2
|
export var AnimationDirection;
|
|
3
|
-
(function
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
/**
|
|
11
|
-
* Grid will transition out and in vertically
|
|
12
|
-
*/
|
|
13
|
-
"Vertical"] = 1] = "Vertical";
|
|
3
|
+
(function(AnimationDirection) {
|
|
4
|
+
AnimationDirection[AnimationDirection[/**
|
|
5
|
+
* Grid will transition out and in horizontally
|
|
6
|
+
*/ "Horizontal"] = 0] = "Horizontal";
|
|
7
|
+
AnimationDirection[AnimationDirection[/**
|
|
8
|
+
* Grid will transition out and in vertically
|
|
9
|
+
*/ "Vertical"] = 1] = "Vertical";
|
|
14
10
|
})(AnimationDirection || (AnimationDirection = {}));
|
|
15
|
-
//# sourceMappingURL=Calendar.types.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"sources":["Calendar.types.ts"],"sourcesContent":["import * as React from 'react';\nimport type { CalendarStrings, DateFormatting, DateRangeType, DayOfWeek, FirstWeekOfYear } from '../../utils';\nimport type { CalendarDayProps } from '../CalendarDay/CalendarDay.types';\nimport type { CalendarMonthProps } from '../CalendarMonth/CalendarMonth.types';\n\n// eslint-disable-next-line @typescript-eslint/naming-convention\nexport interface ICalendar {\n /** Sets focus to the selected date. */\n focus: () => void;\n}\n\nexport interface CalendarProps extends React.RefAttributes<HTMLDivElement> {\n /**\n * Optional callback to access the ICalendar interface. Use this instead of ref for accessing\n * the public methods and properties of the component.\n */\n componentRef?: React.RefObject<ICalendar>;\n\n /**\n * Customized props for the calendar day\n */\n calendarDayProps?: Partial<CalendarDayProps>;\n\n /**\n * Customized props for the calendar month\n */\n calendarMonthProps?: Partial<CalendarMonthProps>;\n\n /**\n * Optional class name to add to the root element.\n */\n className?: string;\n\n /**\n * Callback for when a date is selected\n * @param date - The date the user selected\n * @param selectedDateRangeArray - The resultant list of dates that are selected based on the date range type set\n * for the component.\n */\n onSelectDate?: (date: Date, selectedDateRangeArray?: Date[]) => void;\n\n /**\n * Callback for when calendar is closed\n */\n onDismiss?: () => void;\n\n /**\n * ID for the calendar\n */\n id?: string;\n\n /**\n * Default value of the Calendar, if any\n */\n value?: Date;\n\n /**\n * Value of today. If unspecified, current time in client machine will be used.\n */\n today?: Date;\n\n /**\n * The date range type indicating how many days should be selected as the user\n * selects days\n * @default DateRangeType.Day\n */\n dateRangeType?: DateRangeType;\n\n /**\n * The first day of the week for your locale.\n * @default DayOfWeek.Sunday\n */\n firstDayOfWeek?: DayOfWeek;\n\n /**\n * Defines when the first week of the year should start.\n * @default FirstWeekOfYear.FirstDay\n */\n firstWeekOfYear?: FirstWeekOfYear;\n\n /**\n * Whether the month picker is shown beside the day picker or hidden.\n * @default true\n */\n isMonthPickerVisible?: boolean;\n\n /**\n * Whether the day picker is shown beside the month picker or hidden.\n * @default true\n */\n isDayPickerVisible?: boolean;\n\n /**\n * Show month picker on top of date picker when visible.\n * @default false\n */\n showMonthPickerAsOverlay?: boolean;\n\n /**\n * Whether the \"Go to today\" link should be shown or not\n */\n showGoToToday?: boolean;\n\n /**\n * Whether the calendar should show the week number (weeks 1 to 53) before each week row\n * @default false\n */\n showWeekNumbers?: boolean;\n\n /**\n * Localized strings to use in the Calendar\n */\n strings?: CalendarStrings;\n\n /**\n * Apply additional formatting to dates, for example localized date formatting.\n */\n dateTimeFormatter?: DateFormatting;\n\n /**\n * If set the Calendar will not allow navigation to or selection of a date earlier than this value.\n */\n minDate?: Date;\n\n /**\n * If set the Calendar will not allow navigation to or selection of a date later than this value.\n */\n maxDate?: Date;\n\n /**\n * If set the Calendar will not allow selection of dates in this array.\n */\n restrictedDates?: Date[];\n\n /**\n * Whether the calendar should show 6 weeks by default.\n * @default false\n */\n showSixWeeksByDefault?: boolean;\n\n /**\n * The days that are selectable when `dateRangeType` is `WorkWeek`.\n * If `dateRangeType` is not `WorkWeek` this property does nothing.\n * @default [Monday,Tuesday,Wednesday,Thursday,Friday]\n */\n workWeekDays?: DayOfWeek[];\n\n /**\n * Whether the month picker should highlight the current month\n * @default false\n */\n highlightCurrentMonth?: boolean;\n\n /**\n * Whether the month picker should highlight the selected month\n * @default false\n */\n highlightSelectedMonth?: boolean;\n\n /**\n * Whether the close button should be shown or not\n * @default false\n */\n showCloseButton?: boolean;\n\n /**\n * Allows all dates and buttons to be focused, including disabled ones\n * @default false\n */\n allFocusable?: boolean;\n}\n\n/**\n * @internal\n */\nexport interface CalendarStyleProps {\n /**\n * Custom CSS class for the calendar.\n */\n className?: string;\n\n /**\n * Whether the month picker is visible\n */\n isMonthPickerVisible?: boolean;\n\n /**\n * Whether the day picker is visible\n */\n isDayPickerVisible?: boolean;\n\n /**\n * Whether only month picker is shown\n */\n monthPickerOnly?: boolean;\n\n /**\n * Whether the month picker is overlaid on the day picker\n */\n showMonthPickerAsOverlay?: boolean;\n\n /**\n * @deprecated Use `overlaidWithButton`\n */\n overlayedWithButton?: boolean;\n\n /**\n * Whether the month and day picker are overlaid and the 'go to today' button is shown\n */\n overlaidWithButton?: boolean;\n\n /**\n * Whether the go to today button is shown\n */\n showGoToToday?: boolean;\n\n /**\n * Whether the week numbers are shown\n */\n showWeekNumbers?: boolean;\n}\n\n/**\n * @internal\n */\nexport interface CalendarStyles {\n /**\n * Style for the root element.\n */\n root: string;\n\n divider: string;\n\n goTodayButton: string;\n\n monthPickerWrapper: string;\n\n liveRegion: string;\n}\n\nexport enum AnimationDirection {\n /**\n * Grid will transition out and in horizontally\n */\n Horizontal,\n\n /**\n * Grid will transition out and in vertically\n */\n Vertical,\n}\n"],"names":["React","AnimationDirection","Horizontal","Vertical"],"mappings":"AAAA,YAAYA,WAAW,QAAQ;WAgPxB;UAAKC,kBAAkB;IAAlBA,mBAAAA,mBACV;;GAEC,GACDC,gBAAAA,KAAAA;IAJUD,mBAAAA,mBAMV;;GAEC,GACDE,cAAAA,KAAAA;GATUF,uBAAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"sources":["defaults.ts"],"sourcesContent":["import { DEFAULT_CALENDAR_STRINGS } from '../../utils';\nimport type { CalendarStrings } from '../../utils';\n\nexport const defaultCalendarStrings: CalendarStrings = DEFAULT_CALENDAR_STRINGS;\n"],"names":["DEFAULT_CALENDAR_STRINGS","defaultCalendarStrings"],"mappings":"AAAA,SAASA,wBAAwB,QAAQ,cAAc;AAGvD,OAAO,MAAMC,yBAA0CD,yBAAyB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"sources":["index.ts"],"sourcesContent":["export * from './Calendar';\nexport * from './Calendar.types';\nexport * from './useCalendarStyles.styles';\nexport { defaultCalendarStrings } from './defaults';\n"],"names":["defaultCalendarStrings"],"mappings":"AAAA,cAAc,aAAa;AAC3B,cAAc,mBAAmB;AACjC,cAAc,6BAA6B;AAC3C,SAASA,sBAAsB,QAAQ,aAAa"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["tokens","__styles","mergeClasses","shorthands","calendarClassNames","root","divider","goTodayButton","monthPickerWrapper","liveRegion","useRootStyles","base","mc9l5x","a9b677","normalize","E5pizo","B7ck84d","B6of3ja","t21cq0","jrapky","Frg6f3","z8tnut","z189sj","Byoj8tv","uwmqm3","monthPickerNotVisible","Beiy3e4","dayAndMonthPickersVisible","dayPickerVisibleAndWeekNumbersShown","dayAndMonthPickersVisibleAndWeekNumbersShown","d","useDividerStyles","g2u3we","h3c5rm","B9xav0g","zhjwy3","Bekrc4i","vrafjx","Bhzewxz","useMonthPickerWrapperStyles","useGoTodayButtonStyles","qb2dma","De3pzq","icvyot","oivjwe","wvpqe5","B5kzvoi","sj55zd","Bahqtrf","Be2twd7","Bqenvij","Bg96gwp","B68tc82","Bmxbyg5","seuwu7","Jwef8y","Bi91k9c","eoavqd","B2d53fq","Dyrjrp","Be90el1","h","useLiveRegionStyles","B4j52fo","Bn0qgzm","ibv6hh","qhf8xq","useCalendarStyles_unstable","props","rootStyles","dividerStyles","monthPickerWrapperStyles","goTodayButtonStyles","liveRegionStyles","className","isDayPickerVisible","isMonthPickerVisible","showWeekNumbers"],"sources":["
|
|
1
|
+
{"version":3,"names":["tokens","__styles","mergeClasses","shorthands","calendarClassNames","root","divider","goTodayButton","monthPickerWrapper","liveRegion","useRootStyles","base","mc9l5x","a9b677","normalize","E5pizo","B7ck84d","B6of3ja","t21cq0","jrapky","Frg6f3","z8tnut","z189sj","Byoj8tv","uwmqm3","monthPickerNotVisible","Beiy3e4","dayAndMonthPickersVisible","dayPickerVisibleAndWeekNumbersShown","dayAndMonthPickersVisibleAndWeekNumbersShown","d","useDividerStyles","g2u3we","h3c5rm","B9xav0g","zhjwy3","Bekrc4i","vrafjx","Bhzewxz","useMonthPickerWrapperStyles","useGoTodayButtonStyles","qb2dma","De3pzq","icvyot","oivjwe","wvpqe5","B5kzvoi","sj55zd","Bahqtrf","Be2twd7","Bqenvij","Bg96gwp","B68tc82","Bmxbyg5","seuwu7","Jwef8y","Bi91k9c","eoavqd","B2d53fq","Dyrjrp","Be90el1","h","useLiveRegionStyles","B4j52fo","Bn0qgzm","ibv6hh","qhf8xq","useCalendarStyles_unstable","props","rootStyles","dividerStyles","monthPickerWrapperStyles","goTodayButtonStyles","liveRegionStyles","className","isDayPickerVisible","isMonthPickerVisible","showWeekNumbers"],"sources":["useCalendarStyles.styles.js"],"sourcesContent":["import { tokens } from '@fluentui/react-theme';\nimport { makeStyles, mergeClasses, shorthands } from '@griffel/react';\n/**\n * @internal\n */ export const calendarClassNames = {\n root: 'fui-Calendar',\n divider: 'fui-Calendar__divider',\n goTodayButton: 'fui-Calendar__goTodayButton',\n monthPickerWrapper: 'fui-Calendar__monthPickerWrapper',\n liveRegion: 'fui-Calendar__liveRegion'\n};\nconst useRootStyles = makeStyles({\n base: {\n display: 'flex',\n width: '220px'\n },\n normalize: {\n boxShadow: 'none',\n boxSizing: 'border-box',\n ...shorthands.margin(0),\n ...shorthands.padding(0)\n },\n monthPickerNotVisible: {\n flexDirection: 'column'\n },\n dayAndMonthPickersVisible: {\n width: '440px'\n },\n dayPickerVisibleAndWeekNumbersShown: {\n width: '250px'\n },\n dayAndMonthPickersVisibleAndWeekNumbersShown: {\n width: '470px'\n }\n});\nconst useDividerStyles = makeStyles({\n base: {\n ...shorthands.borderColor(tokens.colorNeutralStroke2),\n ...shorthands.borderRight('1px', 'solid'),\n top: 0\n }\n});\nconst useMonthPickerWrapperStyles = makeStyles({\n base: {\n display: 'flex',\n flexDirection: 'column'\n }\n});\nconst useGoTodayButtonStyles = makeStyles({\n base: {\n alignSelf: 'flex-end',\n backgroundColor: tokens.colorTransparentBackground,\n ...shorthands.borderStyle('none'),\n bottom: 0,\n boxSizing: 'content-box',\n color: tokens.colorNeutralForeground1,\n fontFamily: 'inherit',\n fontSize: tokens.fontSizeBase200,\n height: '30px',\n lineHeight: '30px',\n marginRight: '16px',\n marginTop: '3px',\n ...shorthands.overflow('visible'),\n ...shorthands.padding(0, '4px'),\n '& div': {\n fontSize: tokens.fontSizeBase200\n },\n '&:hover': {\n backgroundColor: tokens.colorTransparentBackground,\n color: tokens.colorBrandForeground1,\n cursor: 'pointer'\n },\n '&:hover:active': {\n color: tokens.colorBrandForeground2\n },\n '&:disabled': {\n color: tokens.colorNeutralForegroundDisabled,\n pointerEvents: 'none'\n }\n }\n});\nconst useLiveRegionStyles = makeStyles({\n base: {\n ...shorthands.border(0),\n height: '1px',\n ...shorthands.margin('-1px'),\n ...shorthands.overflow('hidden'),\n ...shorthands.padding(0),\n position: 'absolute',\n width: '1px'\n }\n});\n/**\n * @internal\n *\n * Apply styling to the Calendar slots based on the state\n */ export const useCalendarStyles_unstable = (props)=>{\n const rootStyles = useRootStyles();\n const dividerStyles = useDividerStyles();\n const monthPickerWrapperStyles = useMonthPickerWrapperStyles();\n const goTodayButtonStyles = useGoTodayButtonStyles();\n const liveRegionStyles = useLiveRegionStyles();\n const { className , isDayPickerVisible , isMonthPickerVisible , showWeekNumbers } = props;\n return {\n root: mergeClasses(calendarClassNames.root, rootStyles.base, rootStyles.normalize, !isMonthPickerVisible && rootStyles.monthPickerNotVisible, isDayPickerVisible && isMonthPickerVisible && !showWeekNumbers && rootStyles.dayAndMonthPickersVisible, isDayPickerVisible && !isMonthPickerVisible && showWeekNumbers && rootStyles.dayPickerVisibleAndWeekNumbersShown, isDayPickerVisible && isMonthPickerVisible && showWeekNumbers && rootStyles.dayAndMonthPickersVisibleAndWeekNumbersShown, className),\n divider: mergeClasses(calendarClassNames.divider, dividerStyles.base),\n monthPickerWrapper: mergeClasses(calendarClassNames.monthPickerWrapper, monthPickerWrapperStyles.base),\n goTodayButton: mergeClasses(calendarClassNames.goTodayButton, goTodayButtonStyles.base),\n liveRegion: mergeClasses(calendarClassNames.liveRegion, liveRegionStyles.base)\n };\n};\n"],"mappings":"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"}
|
|
@@ -8,136 +8,108 @@ import { CalendarDayGrid } from '../CalendarDayGrid/CalendarDayGrid';
|
|
|
8
8
|
import { useCalendarDayStyles_unstable } from './useCalendarDayStyles.styles';
|
|
9
9
|
/**
|
|
10
10
|
* @internal
|
|
11
|
-
*/
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
};
|
|
21
|
-
}
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
}, monthAndYear)), /*#__PURE__*/React.createElement(CalendarDayNavigationButtons, {
|
|
66
|
-
...props,
|
|
67
|
-
classNames: classNames
|
|
68
|
-
})), /*#__PURE__*/React.createElement(CalendarDayGrid, {
|
|
69
|
-
...propsWithoutStyles,
|
|
70
|
-
componentRef: dayGrid,
|
|
71
|
-
strings: strings,
|
|
72
|
-
navigatedDate: navigatedDate,
|
|
73
|
-
weeksToShow: showSixWeeksByDefault ? 6 : undefined,
|
|
74
|
-
dateTimeFormatter: dateTimeFormatter,
|
|
75
|
-
minDate: minDate,
|
|
76
|
-
maxDate: maxDate,
|
|
77
|
-
restrictedDates: restrictedDates,
|
|
78
|
-
onNavigateDate: onNavigateDate,
|
|
79
|
-
labelledBy: monthAndYearId,
|
|
80
|
-
dateRangeType: dateRangeType
|
|
81
|
-
}));
|
|
11
|
+
*/ export const CalendarDay = (props)=>{
|
|
12
|
+
const dayGrid = React.useRef(null);
|
|
13
|
+
React.useImperativeHandle(props.componentRef, ()=>{
|
|
14
|
+
return {
|
|
15
|
+
focus () {
|
|
16
|
+
var _dayGrid_current, _dayGrid_current_focus;
|
|
17
|
+
(_dayGrid_current = dayGrid.current) === null || _dayGrid_current === void 0 ? void 0 : (_dayGrid_current_focus = _dayGrid_current.focus) === null || _dayGrid_current_focus === void 0 ? void 0 : _dayGrid_current_focus.call(_dayGrid_current);
|
|
18
|
+
}
|
|
19
|
+
};
|
|
20
|
+
}, []);
|
|
21
|
+
const { strings , navigatedDate , dateTimeFormatter , className , onHeaderSelect , showSixWeeksByDefault , minDate , maxDate , restrictedDates , onNavigateDate , showWeekNumbers , dateRangeType , animationDirection } = props;
|
|
22
|
+
const monthAndYearId = useId();
|
|
23
|
+
const classNames = useCalendarDayStyles_unstable({
|
|
24
|
+
className,
|
|
25
|
+
headerIsClickable: !!onHeaderSelect,
|
|
26
|
+
showWeekNumbers,
|
|
27
|
+
animationDirection
|
|
28
|
+
});
|
|
29
|
+
const monthAndYear = dateTimeFormatter.formatMonthYear(navigatedDate, strings);
|
|
30
|
+
const HeaderButtonComponentType = onHeaderSelect ? 'button' : 'div';
|
|
31
|
+
const headerAriaLabel = strings.yearPickerHeaderAriaLabel ? strings.yearPickerHeaderAriaLabel.replace('{0}', monthAndYear) : monthAndYear;
|
|
32
|
+
const { ...propsWithoutStyles } = props;
|
|
33
|
+
return /*#__PURE__*/ React.createElement("div", {
|
|
34
|
+
className: classNames.root
|
|
35
|
+
}, /*#__PURE__*/ React.createElement("div", {
|
|
36
|
+
className: classNames.header
|
|
37
|
+
}, /*#__PURE__*/ React.createElement(HeaderButtonComponentType, {
|
|
38
|
+
"aria-label": onHeaderSelect ? headerAriaLabel : undefined,
|
|
39
|
+
className: classNames.monthAndYear,
|
|
40
|
+
onClick: onHeaderSelect,
|
|
41
|
+
tabIndex: onHeaderSelect ? 0 : -1,
|
|
42
|
+
onKeyDown: onButtonKeyDown(onHeaderSelect),
|
|
43
|
+
type: "button"
|
|
44
|
+
}, /*#__PURE__*/ React.createElement("span", {
|
|
45
|
+
id: monthAndYearId,
|
|
46
|
+
"aria-live": "polite",
|
|
47
|
+
"aria-atomic": "true"
|
|
48
|
+
}, monthAndYear)), /*#__PURE__*/ React.createElement(CalendarDayNavigationButtons, {
|
|
49
|
+
...props,
|
|
50
|
+
classNames: classNames
|
|
51
|
+
})), /*#__PURE__*/ React.createElement(CalendarDayGrid, {
|
|
52
|
+
...propsWithoutStyles,
|
|
53
|
+
componentRef: dayGrid,
|
|
54
|
+
strings: strings,
|
|
55
|
+
navigatedDate: navigatedDate,
|
|
56
|
+
weeksToShow: showSixWeeksByDefault ? 6 : undefined,
|
|
57
|
+
dateTimeFormatter: dateTimeFormatter,
|
|
58
|
+
minDate: minDate,
|
|
59
|
+
maxDate: maxDate,
|
|
60
|
+
restrictedDates: restrictedDates,
|
|
61
|
+
onNavigateDate: onNavigateDate,
|
|
62
|
+
labelledBy: monthAndYearId,
|
|
63
|
+
dateRangeType: dateRangeType
|
|
64
|
+
}));
|
|
82
65
|
};
|
|
83
66
|
CalendarDay.displayName = 'CalendarDay';
|
|
84
|
-
const CalendarDayNavigationButtons = props
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
onKeyDown: nextMonthInBounds ? onButtonKeyDown(onSelectNextMonth) : undefined,
|
|
123
|
-
title: strings.nextMonthAriaLabel ? strings.nextMonthAriaLabel + ' ' + strings.months[addMonths(navigatedDate, 1).getMonth()] : undefined,
|
|
124
|
-
type: "button"
|
|
125
|
-
}, /*#__PURE__*/React.createElement(ArrowDownRegular, null)), showCloseButton && /*#__PURE__*/React.createElement("button", {
|
|
126
|
-
className: classNames.headerIconButton,
|
|
127
|
-
onClick: onDismiss,
|
|
128
|
-
onKeyDown: onButtonKeyDown(onDismiss),
|
|
129
|
-
title: strings.closeButtonAriaLabel,
|
|
130
|
-
type: "button"
|
|
131
|
-
}, /*#__PURE__*/React.createElement(DismissRegular, null)));
|
|
67
|
+
const CalendarDayNavigationButtons = (props)=>{
|
|
68
|
+
const { minDate , maxDate , navigatedDate , allFocusable , strings , showCloseButton , classNames , onNavigateDate , onDismiss } = props;
|
|
69
|
+
const onSelectNextMonth = ()=>{
|
|
70
|
+
onNavigateDate(addMonths(navigatedDate, 1), false);
|
|
71
|
+
};
|
|
72
|
+
const onSelectPrevMonth = ()=>{
|
|
73
|
+
onNavigateDate(addMonths(navigatedDate, -1), false);
|
|
74
|
+
};
|
|
75
|
+
// determine if previous/next months are in bounds
|
|
76
|
+
const prevMonthInBounds = minDate ? compareDatePart(minDate, getMonthStart(navigatedDate)) < 0 : true;
|
|
77
|
+
const nextMonthInBounds = maxDate ? compareDatePart(getMonthEnd(navigatedDate), maxDate) < 0 : true;
|
|
78
|
+
// use aria-disabled instead of disabled so focus is not lost
|
|
79
|
+
// when a prev/next button becomes disabled after being clicked
|
|
80
|
+
return /*#__PURE__*/ React.createElement("div", {
|
|
81
|
+
className: classNames.monthComponents
|
|
82
|
+
}, /*#__PURE__*/ React.createElement("button", {
|
|
83
|
+
className: mergeClasses(classNames.headerIconButton, !prevMonthInBounds && classNames.disabledStyle),
|
|
84
|
+
tabIndex: prevMonthInBounds ? undefined : allFocusable ? 0 : -1,
|
|
85
|
+
"aria-disabled": !prevMonthInBounds,
|
|
86
|
+
onClick: prevMonthInBounds ? onSelectPrevMonth : undefined,
|
|
87
|
+
onKeyDown: prevMonthInBounds ? onButtonKeyDown(onSelectPrevMonth) : undefined,
|
|
88
|
+
title: strings.prevMonthAriaLabel ? strings.prevMonthAriaLabel + ' ' + strings.months[addMonths(navigatedDate, -1).getMonth()] : undefined,
|
|
89
|
+
type: "button"
|
|
90
|
+
}, /*#__PURE__*/ React.createElement(ArrowUpRegular, null)), /*#__PURE__*/ React.createElement("button", {
|
|
91
|
+
className: mergeClasses(classNames.headerIconButton, !nextMonthInBounds && classNames.disabledStyle),
|
|
92
|
+
tabIndex: nextMonthInBounds ? undefined : allFocusable ? 0 : -1,
|
|
93
|
+
"aria-disabled": !nextMonthInBounds,
|
|
94
|
+
onClick: nextMonthInBounds ? onSelectNextMonth : undefined,
|
|
95
|
+
onKeyDown: nextMonthInBounds ? onButtonKeyDown(onSelectNextMonth) : undefined,
|
|
96
|
+
title: strings.nextMonthAriaLabel ? strings.nextMonthAriaLabel + ' ' + strings.months[addMonths(navigatedDate, 1).getMonth()] : undefined,
|
|
97
|
+
type: "button"
|
|
98
|
+
}, /*#__PURE__*/ React.createElement(ArrowDownRegular, null)), showCloseButton && /*#__PURE__*/ React.createElement("button", {
|
|
99
|
+
className: classNames.headerIconButton,
|
|
100
|
+
onClick: onDismiss,
|
|
101
|
+
onKeyDown: onButtonKeyDown(onDismiss),
|
|
102
|
+
title: strings.closeButtonAriaLabel,
|
|
103
|
+
type: "button"
|
|
104
|
+
}, /*#__PURE__*/ React.createElement(DismissRegular, null)));
|
|
132
105
|
};
|
|
133
106
|
CalendarDayNavigationButtons.displayName = 'CalendarDayNavigationButtons';
|
|
134
|
-
const onButtonKeyDown = callback
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
107
|
+
const onButtonKeyDown = (callback)=>{
|
|
108
|
+
return (ev)=>{
|
|
109
|
+
switch(ev.key){
|
|
110
|
+
case Enter:
|
|
111
|
+
callback === null || callback === void 0 ? void 0 : callback();
|
|
112
|
+
break;
|
|
113
|
+
}
|
|
114
|
+
};
|
|
142
115
|
};
|
|
143
|
-
//# sourceMappingURL=CalendarDay.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","Enter","ArrowDownRegular","ArrowUpRegular","DismissRegular","useId","mergeClasses","addMonths","compareDatePart","getMonthEnd","getMonthStart","CalendarDayGrid","useCalendarDayStyles_unstable","CalendarDay","props","dayGrid","useRef","useImperativeHandle","componentRef","focus","_dayGrid_current","_dayGrid_current_focus","current","call","strings","navigatedDate","dateTimeFormatter","className","onHeaderSelect","showSixWeeksByDefault","minDate","maxDate","restrictedDates","onNavigateDate","showWeekNumbers","dateRangeType","animationDirection","monthAndYearId","classNames","headerIsClickable","monthAndYear","formatMonthYear","HeaderButtonComponentType","headerAriaLabel","yearPickerHeaderAriaLabel","replace","propsWithoutStyles","createElement","root","header","undefined","onClick","tabIndex","onKeyDown","onButtonKeyDown","type","id","CalendarDayNavigationButtons","weeksToShow","labelledBy","displayName","allFocusable","showCloseButton","onDismiss","onSelectNextMonth","onSelectPrevMonth","prevMonthInBounds","nextMonthInBounds","monthComponents","headerIconButton","disabledStyle","title","prevMonthAriaLabel","months","getMonth","nextMonthAriaLabel","closeButtonAriaLabel","callback","ev","key"],"sources":["../../../src/components/CalendarDay/CalendarDay.tsx"],"sourcesContent":["import * as React from 'react';\nimport { Enter } from '@fluentui/keyboard-keys';\nimport { ArrowDownRegular, ArrowUpRegular, DismissRegular } from '@fluentui/react-icons';\nimport { useId } from '@fluentui/react-utilities';\nimport { mergeClasses } from '@griffel/react';\nimport { addMonths, compareDatePart, getMonthEnd, getMonthStart } from '../../utils';\nimport { CalendarDayGrid } from '../CalendarDayGrid/CalendarDayGrid';\nimport { useCalendarDayStyles_unstable } from './useCalendarDayStyles.styles';\nimport type { ICalendarDayGrid } from '../CalendarDayGrid/CalendarDayGrid.types';\nimport type { CalendarDayProps, CalendarDayStyles } from './CalendarDay.types';\n\n/**\n * @internal\n */\nexport const CalendarDay: React.FunctionComponent<CalendarDayProps> = props => {\n const dayGrid = React.useRef<ICalendarDayGrid>(null);\n\n React.useImperativeHandle(\n props.componentRef,\n () => ({\n focus() {\n dayGrid.current?.focus?.();\n },\n }),\n [],\n );\n\n const {\n strings,\n navigatedDate,\n dateTimeFormatter,\n className,\n onHeaderSelect,\n showSixWeeksByDefault,\n minDate,\n maxDate,\n restrictedDates,\n onNavigateDate,\n showWeekNumbers,\n dateRangeType,\n animationDirection,\n } = props;\n const monthAndYearId = useId();\n\n const classNames = useCalendarDayStyles_unstable({\n className,\n headerIsClickable: !!onHeaderSelect,\n showWeekNumbers,\n animationDirection,\n });\n\n const monthAndYear = dateTimeFormatter.formatMonthYear(navigatedDate, strings);\n const HeaderButtonComponentType = onHeaderSelect ? 'button' : 'div';\n const headerAriaLabel = strings.yearPickerHeaderAriaLabel\n ? strings.yearPickerHeaderAriaLabel.replace('{0}', monthAndYear)\n : monthAndYear;\n\n const { ...propsWithoutStyles } = props;\n\n return (\n <div className={classNames.root}>\n <div className={classNames.header}>\n <HeaderButtonComponentType\n aria-label={onHeaderSelect ? headerAriaLabel : undefined}\n className={classNames.monthAndYear}\n onClick={onHeaderSelect}\n tabIndex={onHeaderSelect ? 0 : -1} // prevent focus if there's no action for the button\n onKeyDown={onButtonKeyDown(onHeaderSelect)}\n type=\"button\"\n >\n <span id={monthAndYearId} aria-live=\"polite\" aria-atomic=\"true\">\n {monthAndYear}\n </span>\n </HeaderButtonComponentType>\n <CalendarDayNavigationButtons {...props} classNames={classNames} />\n </div>\n <CalendarDayGrid\n {...propsWithoutStyles}\n componentRef={dayGrid}\n strings={strings}\n navigatedDate={navigatedDate!}\n weeksToShow={showSixWeeksByDefault ? 6 : undefined}\n dateTimeFormatter={dateTimeFormatter!}\n minDate={minDate}\n maxDate={maxDate}\n restrictedDates={restrictedDates}\n onNavigateDate={onNavigateDate}\n labelledBy={monthAndYearId}\n dateRangeType={dateRangeType}\n />\n </div>\n );\n};\nCalendarDay.displayName = 'CalendarDay';\n\ninterface CalendarDayNavigationButtonsProps extends CalendarDayProps {\n classNames: Record<keyof CalendarDayStyles, string>;\n}\n\nconst CalendarDayNavigationButtons = (props: CalendarDayNavigationButtonsProps): JSX.Element => {\n const {\n minDate,\n maxDate,\n navigatedDate,\n allFocusable,\n strings,\n showCloseButton,\n classNames,\n onNavigateDate,\n onDismiss,\n } = props;\n\n const onSelectNextMonth = (): void => {\n onNavigateDate(addMonths(navigatedDate, 1), false);\n };\n\n const onSelectPrevMonth = (): void => {\n onNavigateDate(addMonths(navigatedDate, -1), false);\n };\n\n // determine if previous/next months are in bounds\n const prevMonthInBounds = minDate ? compareDatePart(minDate, getMonthStart(navigatedDate)) < 0 : true;\n const nextMonthInBounds = maxDate ? compareDatePart(getMonthEnd(navigatedDate), maxDate) < 0 : true;\n\n // use aria-disabled instead of disabled so focus is not lost\n // when a prev/next button becomes disabled after being clicked\n return (\n <div className={classNames.monthComponents}>\n <button\n className={mergeClasses(classNames.headerIconButton, !prevMonthInBounds && classNames.disabledStyle)}\n tabIndex={prevMonthInBounds ? undefined : allFocusable ? 0 : -1}\n aria-disabled={!prevMonthInBounds}\n onClick={prevMonthInBounds ? onSelectPrevMonth : undefined}\n onKeyDown={prevMonthInBounds ? onButtonKeyDown(onSelectPrevMonth) : undefined}\n title={\n strings.prevMonthAriaLabel\n ? strings.prevMonthAriaLabel + ' ' + strings.months[addMonths(navigatedDate, -1).getMonth()]\n : undefined\n }\n type=\"button\"\n >\n <ArrowUpRegular />\n </button>\n <button\n className={mergeClasses(classNames.headerIconButton, !nextMonthInBounds && classNames.disabledStyle)}\n tabIndex={nextMonthInBounds ? undefined : allFocusable ? 0 : -1}\n aria-disabled={!nextMonthInBounds}\n onClick={nextMonthInBounds ? onSelectNextMonth : undefined}\n onKeyDown={nextMonthInBounds ? onButtonKeyDown(onSelectNextMonth) : undefined}\n title={\n strings.nextMonthAriaLabel\n ? strings.nextMonthAriaLabel + ' ' + strings.months[addMonths(navigatedDate, 1).getMonth()]\n : undefined\n }\n type=\"button\"\n >\n <ArrowDownRegular />\n </button>\n {showCloseButton && (\n <button\n className={classNames.headerIconButton}\n onClick={onDismiss}\n onKeyDown={onButtonKeyDown(onDismiss)}\n title={strings.closeButtonAriaLabel}\n type=\"button\"\n >\n <DismissRegular />\n </button>\n )}\n </div>\n );\n};\nCalendarDayNavigationButtons.displayName = 'CalendarDayNavigationButtons';\n\nconst onButtonKeyDown =\n (callback?: () => void): ((ev: React.KeyboardEvent<HTMLButtonElement | HTMLDivElement>) => void) =>\n (ev: React.KeyboardEvent<HTMLButtonElement | HTMLDivElement>) => {\n switch (ev.key) {\n case Enter:\n callback?.();\n break;\n }\n };\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"sources":["CalendarDay.tsx"],"sourcesContent":["import * as React from 'react';\nimport { Enter } from '@fluentui/keyboard-keys';\nimport { ArrowDownRegular, ArrowUpRegular, DismissRegular } from '@fluentui/react-icons';\nimport { useId } from '@fluentui/react-utilities';\nimport { mergeClasses } from '@griffel/react';\nimport { addMonths, compareDatePart, getMonthEnd, getMonthStart } from '../../utils';\nimport { CalendarDayGrid } from '../CalendarDayGrid/CalendarDayGrid';\nimport { useCalendarDayStyles_unstable } from './useCalendarDayStyles.styles';\nimport type { ICalendarDayGrid } from '../CalendarDayGrid/CalendarDayGrid.types';\nimport type { CalendarDayProps, CalendarDayStyles } from './CalendarDay.types';\n\n/**\n * @internal\n */\nexport const CalendarDay: React.FunctionComponent<CalendarDayProps> = props => {\n const dayGrid = React.useRef<ICalendarDayGrid>(null);\n\n React.useImperativeHandle(\n props.componentRef,\n () => ({\n focus() {\n dayGrid.current?.focus?.();\n },\n }),\n [],\n );\n\n const {\n strings,\n navigatedDate,\n dateTimeFormatter,\n className,\n onHeaderSelect,\n showSixWeeksByDefault,\n minDate,\n maxDate,\n restrictedDates,\n onNavigateDate,\n showWeekNumbers,\n dateRangeType,\n animationDirection,\n } = props;\n const monthAndYearId = useId();\n\n const classNames = useCalendarDayStyles_unstable({\n className,\n headerIsClickable: !!onHeaderSelect,\n showWeekNumbers,\n animationDirection,\n });\n\n const monthAndYear = dateTimeFormatter.formatMonthYear(navigatedDate, strings);\n const HeaderButtonComponentType = onHeaderSelect ? 'button' : 'div';\n const headerAriaLabel = strings.yearPickerHeaderAriaLabel\n ? strings.yearPickerHeaderAriaLabel.replace('{0}', monthAndYear)\n : monthAndYear;\n\n const { ...propsWithoutStyles } = props;\n\n return (\n <div className={classNames.root}>\n <div className={classNames.header}>\n <HeaderButtonComponentType\n aria-label={onHeaderSelect ? headerAriaLabel : undefined}\n className={classNames.monthAndYear}\n onClick={onHeaderSelect}\n tabIndex={onHeaderSelect ? 0 : -1} // prevent focus if there's no action for the button\n onKeyDown={onButtonKeyDown(onHeaderSelect)}\n type=\"button\"\n >\n <span id={monthAndYearId} aria-live=\"polite\" aria-atomic=\"true\">\n {monthAndYear}\n </span>\n </HeaderButtonComponentType>\n <CalendarDayNavigationButtons {...props} classNames={classNames} />\n </div>\n <CalendarDayGrid\n {...propsWithoutStyles}\n componentRef={dayGrid}\n strings={strings}\n navigatedDate={navigatedDate!}\n weeksToShow={showSixWeeksByDefault ? 6 : undefined}\n dateTimeFormatter={dateTimeFormatter!}\n minDate={minDate}\n maxDate={maxDate}\n restrictedDates={restrictedDates}\n onNavigateDate={onNavigateDate}\n labelledBy={monthAndYearId}\n dateRangeType={dateRangeType}\n />\n </div>\n );\n};\nCalendarDay.displayName = 'CalendarDay';\n\ninterface CalendarDayNavigationButtonsProps extends CalendarDayProps {\n classNames: Record<keyof CalendarDayStyles, string>;\n}\n\nconst CalendarDayNavigationButtons = (props: CalendarDayNavigationButtonsProps): JSX.Element => {\n const {\n minDate,\n maxDate,\n navigatedDate,\n allFocusable,\n strings,\n showCloseButton,\n classNames,\n onNavigateDate,\n onDismiss,\n } = props;\n\n const onSelectNextMonth = (): void => {\n onNavigateDate(addMonths(navigatedDate, 1), false);\n };\n\n const onSelectPrevMonth = (): void => {\n onNavigateDate(addMonths(navigatedDate, -1), false);\n };\n\n // determine if previous/next months are in bounds\n const prevMonthInBounds = minDate ? compareDatePart(minDate, getMonthStart(navigatedDate)) < 0 : true;\n const nextMonthInBounds = maxDate ? compareDatePart(getMonthEnd(navigatedDate), maxDate) < 0 : true;\n\n // use aria-disabled instead of disabled so focus is not lost\n // when a prev/next button becomes disabled after being clicked\n return (\n <div className={classNames.monthComponents}>\n <button\n className={mergeClasses(classNames.headerIconButton, !prevMonthInBounds && classNames.disabledStyle)}\n tabIndex={prevMonthInBounds ? undefined : allFocusable ? 0 : -1}\n aria-disabled={!prevMonthInBounds}\n onClick={prevMonthInBounds ? onSelectPrevMonth : undefined}\n onKeyDown={prevMonthInBounds ? onButtonKeyDown(onSelectPrevMonth) : undefined}\n title={\n strings.prevMonthAriaLabel\n ? strings.prevMonthAriaLabel + ' ' + strings.months[addMonths(navigatedDate, -1).getMonth()]\n : undefined\n }\n type=\"button\"\n >\n <ArrowUpRegular />\n </button>\n <button\n className={mergeClasses(classNames.headerIconButton, !nextMonthInBounds && classNames.disabledStyle)}\n tabIndex={nextMonthInBounds ? undefined : allFocusable ? 0 : -1}\n aria-disabled={!nextMonthInBounds}\n onClick={nextMonthInBounds ? onSelectNextMonth : undefined}\n onKeyDown={nextMonthInBounds ? onButtonKeyDown(onSelectNextMonth) : undefined}\n title={\n strings.nextMonthAriaLabel\n ? strings.nextMonthAriaLabel + ' ' + strings.months[addMonths(navigatedDate, 1).getMonth()]\n : undefined\n }\n type=\"button\"\n >\n <ArrowDownRegular />\n </button>\n {showCloseButton && (\n <button\n className={classNames.headerIconButton}\n onClick={onDismiss}\n onKeyDown={onButtonKeyDown(onDismiss)}\n title={strings.closeButtonAriaLabel}\n type=\"button\"\n >\n <DismissRegular />\n </button>\n )}\n </div>\n );\n};\nCalendarDayNavigationButtons.displayName = 'CalendarDayNavigationButtons';\n\nconst onButtonKeyDown =\n (callback?: () => void): ((ev: React.KeyboardEvent<HTMLButtonElement | HTMLDivElement>) => void) =>\n (ev: React.KeyboardEvent<HTMLButtonElement | HTMLDivElement>) => {\n switch (ev.key) {\n case Enter:\n callback?.();\n break;\n }\n };\n"],"names":["React","Enter","ArrowDownRegular","ArrowUpRegular","DismissRegular","useId","mergeClasses","addMonths","compareDatePart","getMonthEnd","getMonthStart","CalendarDayGrid","useCalendarDayStyles_unstable","CalendarDay","props","dayGrid","useRef","useImperativeHandle","componentRef","focus","current","strings","navigatedDate","dateTimeFormatter","className","onHeaderSelect","showSixWeeksByDefault","minDate","maxDate","restrictedDates","onNavigateDate","showWeekNumbers","dateRangeType","animationDirection","monthAndYearId","classNames","headerIsClickable","monthAndYear","formatMonthYear","HeaderButtonComponentType","headerAriaLabel","yearPickerHeaderAriaLabel","replace","propsWithoutStyles","div","root","header","aria-label","undefined","onClick","tabIndex","onKeyDown","onButtonKeyDown","type","span","id","aria-live","aria-atomic","CalendarDayNavigationButtons","weeksToShow","labelledBy","displayName","allFocusable","showCloseButton","onDismiss","onSelectNextMonth","onSelectPrevMonth","prevMonthInBounds","nextMonthInBounds","monthComponents","button","headerIconButton","disabledStyle","aria-disabled","title","prevMonthAriaLabel","months","getMonth","nextMonthAriaLabel","closeButtonAriaLabel","callback","ev","key"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"sources":["CalendarDay.types.ts"],"sourcesContent":["import * as React from 'react';\nimport type { CalendarStrings, DateFormatting } from '../../utils';\nimport type { CalendarDayGridProps, CalendarDayGridStyleProps } from '../CalendarDayGrid/CalendarDayGrid.types';\n\n// eslint-disable-next-line @typescript-eslint/naming-convention\nexport interface ICalendarDay {\n focus(): void;\n}\n\nexport interface CalendarDayProps extends CalendarDayGridProps {\n /**\n * Optional callback to access the ICalendarDay interface. Use this instead of ref for accessing\n * the public methods and properties of the component.\n */\n componentRef?: React.RefObject<ICalendarDay>;\n\n /**\n * Additional CSS class(es) to apply to the CalendarDay.\n */\n className?: string;\n\n /**\n * Localized strings to use in the Calendar\n */\n strings: CalendarStrings;\n\n /**\n * The currently navigated date\n */\n navigatedDate: Date;\n\n /**\n * Callback issued when a date in the calendar is navigated\n * @param date - The date that is navigated to\n * @param focusOnNavigatedDay - Whether to set the focus to the navigated date.\n */\n onNavigateDate: (date: Date, focusOnNavigatedDay: boolean) => void;\n\n /**\n * Callback issued when calendar day is closed\n */\n onDismiss?: () => void;\n\n /**\n * Callback function when the header is selected\n */\n onHeaderSelect?: () => void;\n\n /**\n * Whether the calendar should show the week number (weeks 1 to 53) before each week row\n * @default false\n */\n showWeekNumbers?: boolean;\n\n /**\n * Apply additional formatting to dates, for example localized date formatting.\n */\n dateTimeFormatter: DateFormatting;\n\n /**\n * Whether the calendar should show 6 weeks by default.\n * @default false\n */\n showSixWeeksByDefault?: boolean;\n\n /**\n * If set the Calendar will not allow navigation to or selection of a date earlier than this value.\n */\n minDate?: Date;\n\n /**\n * If set the Calendar will not allow navigation to or selection of a date later than this value.\n */\n maxDate?: Date;\n\n /**\n * If set the Calendar will not allow selection of dates in this array.\n */\n restrictedDates?: Date[];\n\n /**\n * Whether the close button should be shown or not\n * @default false\n */\n showCloseButton?: boolean;\n\n /**\n * Allows all dates and buttons to be focused, including disabled ones\n * @default false\n */\n allFocusable?: boolean;\n}\n\n/**\n * @internal\n */\nexport interface CalendarDayStyleProps extends CalendarDayGridStyleProps {\n /**\n * Accept custom classNames\n */\n className?: string;\n\n /**\n * Whether the header is clickable\n */\n headerIsClickable?: boolean;\n\n /**\n * Whether week numbers are being shown\n */\n showWeekNumbers?: boolean;\n}\n\n/**\n * @internal\n */\nexport interface CalendarDayStyles {\n /**\n * Style for the root element.\n */\n root: string;\n\n /**\n * The style for the header button and forward/back navigation button container\n */\n header: string;\n\n /**\n * The style for the title text inside the header\n */\n monthAndYear: string;\n\n /**\n * The style for the wrapper around forward/back/close buttons\n */\n monthComponents: string;\n\n /**\n * The style for the forward/back/close buttons\n */\n headerIconButton: string;\n\n /**\n * The style to apply for disabled elements\n */\n disabledStyle: string;\n}\n"],"names":["React"],"mappings":"AAAA,YAAYA,WAAW,QAAQ"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"sources":["index.ts"],"sourcesContent":["export * from './CalendarDay';\nexport * from './CalendarDay.types';\nexport * from './useCalendarDayStyles.styles';\n"],"names":[],"mappings":"AAAA,cAAc,gBAAgB;AAC9B,cAAc,sBAAsB;AACpC,cAAc,gCAAgC"}
|