@fluentui/react-datepicker-compat 0.3.11 → 0.3.15

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.
Files changed (39) hide show
  1. package/CHANGELOG.json +289 -1
  2. package/CHANGELOG.md +76 -2
  3. package/lib/components/Calendar/Calendar.js +2 -4
  4. package/lib/components/Calendar/Calendar.js.map +1 -1
  5. package/lib/components/CalendarDay/CalendarDay.js +1 -2
  6. package/lib/components/CalendarDay/CalendarDay.js.map +1 -1
  7. package/lib/components/CalendarDayGrid/CalendarDayGrid.js +3 -3
  8. package/lib/components/CalendarDayGrid/CalendarDayGrid.js.map +1 -1
  9. package/lib/components/CalendarDayGrid/CalendarGridDayCell.js +3 -6
  10. package/lib/components/CalendarDayGrid/CalendarGridDayCell.js.map +1 -1
  11. package/lib/components/CalendarDayGrid/useWeeks.js +3 -4
  12. package/lib/components/CalendarDayGrid/useWeeks.js.map +1 -1
  13. package/lib/components/CalendarMonth/CalendarMonth.js +3 -5
  14. package/lib/components/CalendarMonth/CalendarMonth.js.map +1 -1
  15. package/lib/components/CalendarYear/CalendarYear.js +13 -18
  16. package/lib/components/CalendarYear/CalendarYear.js.map +1 -1
  17. package/lib/components/DatePicker/useDatePicker.js +7 -12
  18. package/lib/components/DatePicker/useDatePicker.js.map +1 -1
  19. package/lib/utils/dateGrid/getDayGrid.js +1 -2
  20. package/lib/utils/dateGrid/getDayGrid.js.map +1 -1
  21. package/lib-commonjs/components/Calendar/Calendar.js +2 -4
  22. package/lib-commonjs/components/Calendar/Calendar.js.map +1 -1
  23. package/lib-commonjs/components/CalendarDay/CalendarDay.js +1 -2
  24. package/lib-commonjs/components/CalendarDay/CalendarDay.js.map +1 -1
  25. package/lib-commonjs/components/CalendarDayGrid/CalendarDayGrid.js +3 -3
  26. package/lib-commonjs/components/CalendarDayGrid/CalendarDayGrid.js.map +1 -1
  27. package/lib-commonjs/components/CalendarDayGrid/CalendarGridDayCell.js +3 -6
  28. package/lib-commonjs/components/CalendarDayGrid/CalendarGridDayCell.js.map +1 -1
  29. package/lib-commonjs/components/CalendarDayGrid/useWeeks.js +3 -4
  30. package/lib-commonjs/components/CalendarDayGrid/useWeeks.js.map +1 -1
  31. package/lib-commonjs/components/CalendarMonth/CalendarMonth.js +3 -4
  32. package/lib-commonjs/components/CalendarMonth/CalendarMonth.js.map +1 -1
  33. package/lib-commonjs/components/CalendarYear/CalendarYear.js +13 -18
  34. package/lib-commonjs/components/CalendarYear/CalendarYear.js.map +1 -1
  35. package/lib-commonjs/components/DatePicker/useDatePicker.js +7 -12
  36. package/lib-commonjs/components/DatePicker/useDatePicker.js.map +1 -1
  37. package/lib-commonjs/utils/dateGrid/getDayGrid.js +1 -2
  38. package/lib-commonjs/utils/dateGrid/getDayGrid.js.map +1 -1
  39. package/package.json +13 -13
@@ -51,7 +51,7 @@ const CalendarDayGrid = (props)=>{
51
51
  const navigatedDayRef = _react.useRef(null);
52
52
  const activeDescendantId = (0, _reactutilities.useId)();
53
53
  const onSelectDate = (selectedDate)=>{
54
- var _props_onSelectDate, _props, _props_onNavigateDate, _props1;
54
+ var _props_onSelectDate, _props_onNavigateDate;
55
55
  const { firstDayOfWeek, minDate, maxDate, workWeekDays, daysToSelectInDayView, restrictedDates } = props;
56
56
  const restrictedDatesOptions = {
57
57
  minDate,
@@ -63,8 +63,8 @@ const CalendarDayGrid = (props)=>{
63
63
  dateRange = dateRange.filter((d)=>{
64
64
  return !(0, _utils.isRestrictedDate)(d, restrictedDatesOptions);
65
65
  });
66
- (_props_onSelectDate = (_props = props).onSelectDate) === null || _props_onSelectDate === void 0 ? void 0 : _props_onSelectDate.call(_props, selectedDate, dateRange);
67
- (_props_onNavigateDate = (_props1 = props).onNavigateDate) === null || _props_onNavigateDate === void 0 ? void 0 : _props_onNavigateDate.call(_props1, selectedDate, true);
66
+ (_props_onSelectDate = props.onSelectDate) === null || _props_onSelectDate === void 0 ? void 0 : _props_onSelectDate.call(props, selectedDate, dateRange);
67
+ (_props_onNavigateDate = props.onNavigateDate) === null || _props_onNavigateDate === void 0 ? void 0 : _props_onNavigateDate.call(props, selectedDate, true);
68
68
  };
69
69
  const [daysRef, getSetRefCallback] = useDayRefs();
70
70
  const weeks = (0, _useWeeks.useWeeks)(props, onSelectDate, getSetRefCallback);
@@ -1 +1 @@
1
- {"version":3,"sources":["CalendarDayGrid.js"],"sourcesContent":["import * as React from 'react';\nimport { useArrowNavigationGroup } from '@fluentui/react-tabster';\nimport { useId } from '@fluentui/react-utilities';\nimport { getBoundedDateRange, getDateRangeArray, isRestrictedDate, DateRangeType } from '../../utils';\nimport { useCalendarDayGridStyles_unstable } from './useCalendarDayGridStyles.styles';\nimport { CalendarMonthHeaderRow } from './CalendarMonthHeaderRow';\nimport { CalendarGridRow } from './CalendarGridRow';\nimport { useWeeks } from './useWeeks';\nimport { useWeekCornerStyles } from './useWeekCornerStyles.styles';\nimport { mergeClasses } from '@griffel/react';\nfunction useDayRefs() {\n const daysRef = React.useRef({});\n const getSetRefCallback = (dayKey)=>(element)=>{\n if (element === null) {\n delete daysRef.current[dayKey];\n } else {\n daysRef.current[dayKey] = element;\n }\n };\n return [\n daysRef,\n getSetRefCallback\n ];\n}\nfunction useAnimateBackwards(weeks) {\n const previousNavigatedDateRef = React.useRef();\n React.useEffect(()=>{\n previousNavigatedDateRef.current = weeks[0][0].originalDate;\n });\n const previousNavigatedDate = previousNavigatedDateRef.current;\n if (!previousNavigatedDate || previousNavigatedDate.getTime() === weeks[0][0].originalDate.getTime()) {\n return undefined;\n } else if (previousNavigatedDate <= weeks[0][0].originalDate) {\n return false;\n } else {\n return true;\n }\n}\nexport const CalendarDayGrid = (props)=>{\n const navigatedDayRef = React.useRef(null);\n const activeDescendantId = useId();\n const onSelectDate = (selectedDate)=>{\n var _props_onSelectDate, _props, _props_onNavigateDate, _props1;\n const { firstDayOfWeek, minDate, maxDate, workWeekDays, daysToSelectInDayView, restrictedDates } = props;\n const restrictedDatesOptions = {\n minDate,\n maxDate,\n restrictedDates\n };\n let dateRange = getDateRangeArray(selectedDate, dateRangeType, firstDayOfWeek, workWeekDays, daysToSelectInDayView);\n dateRange = getBoundedDateRange(dateRange, minDate, maxDate);\n dateRange = dateRange.filter((d)=>{\n return !isRestrictedDate(d, restrictedDatesOptions);\n });\n (_props_onSelectDate = (_props = props).onSelectDate) === null || _props_onSelectDate === void 0 ? void 0 : _props_onSelectDate.call(_props, selectedDate, dateRange);\n (_props_onNavigateDate = (_props1 = props).onNavigateDate) === null || _props_onNavigateDate === void 0 ? void 0 : _props_onNavigateDate.call(_props1, selectedDate, true);\n };\n const [daysRef, getSetRefCallback] = useDayRefs();\n const weeks = useWeeks(props, onSelectDate, getSetRefCallback);\n const animateBackwards = useAnimateBackwards(weeks);\n const [getWeekCornerStyles, calculateRoundedStyles] = useWeekCornerStyles(props);\n React.useImperativeHandle(props.componentRef, ()=>({\n focus () {\n var _navigatedDayRef_current_focus, _navigatedDayRef_current;\n (_navigatedDayRef_current = navigatedDayRef.current) === null || _navigatedDayRef_current === void 0 ? void 0 : (_navigatedDayRef_current_focus = _navigatedDayRef_current.focus) === null || _navigatedDayRef_current_focus === void 0 ? void 0 : _navigatedDayRef_current_focus.call(_navigatedDayRef_current);\n }\n }), []);\n /**\n *\n * Section for setting hover/pressed styles. Because we want arbitrary blobs of days to be selectable, to support\n * highlighting every day in the month for month view, css :hover style isn't enough, so we need mouse callbacks\n * to set classnames on all relevant child refs to apply the styling\n *\n */ const getDayInfosInRangeOfDay = (dayToCompare)=>{\n // The hover state looks weird with non-contiguous days in work week view. In work week, show week hover state\n const dateRangeHoverType = getDateRangeTypeToUse(props.dateRangeType, props.workWeekDays);\n // gets all the dates for the given date range type that are in the same date range as the given day\n const dateRange = getDateRangeArray(dayToCompare.originalDate, dateRangeHoverType, props.firstDayOfWeek, props.workWeekDays, props.daysToSelectInDayView).map((date)=>date.getTime());\n // gets all the day refs for the given dates\n const dayInfosInRange = weeks.reduce((accumulatedValue, currentWeek)=>{\n return accumulatedValue.concat(currentWeek.filter((weekDay)=>dateRange.indexOf(weekDay.originalDate.getTime()) !== -1));\n }, []);\n return dayInfosInRange;\n };\n const getRefsFromDayInfos = (dayInfosInRange)=>{\n let dayRefs = [];\n dayRefs = dayInfosInRange.map((dayInfo)=>daysRef.current[dayInfo.key]);\n return dayRefs;\n };\n const { dateRangeType, showWeekNumbers, labelledBy, lightenDaysOutsideNavigatedMonth, animationDirection } = props;\n const classNames = useCalendarDayGridStyles_unstable({\n animateBackwards,\n animationDirection,\n dateRangeType,\n lightenDaysOutsideNavigatedMonth: lightenDaysOutsideNavigatedMonth === undefined ? true : lightenDaysOutsideNavigatedMonth,\n showWeekNumbers\n });\n // When the month is highlighted get the corner dates so that styles can be added to them\n const weekCorners = getWeekCornerStyles(weeks);\n const partialWeekProps = {\n weeks,\n navigatedDayRef,\n calculateRoundedStyles,\n activeDescendantId,\n classNames,\n weekCorners,\n getDayInfosInRangeOfDay,\n getRefsFromDayInfos\n };\n const arrowNavigationAttributes = useArrowNavigationGroup({\n axis: 'grid'\n });\n return /*#__PURE__*/ React.createElement(\"table\", {\n className: mergeClasses(classNames.table, props.className),\n \"aria-multiselectable\": \"false\",\n \"aria-labelledby\": labelledBy,\n \"aria-activedescendant\": activeDescendantId,\n role: \"grid\",\n ...arrowNavigationAttributes\n }, /*#__PURE__*/ React.createElement(\"tbody\", null, /*#__PURE__*/ React.createElement(CalendarMonthHeaderRow, {\n ...props,\n classNames: classNames,\n weeks: weeks\n }), /*#__PURE__*/ React.createElement(CalendarGridRow, {\n ...props,\n ...partialWeekProps,\n week: weeks[0],\n weekIndex: -1,\n rowClassName: classNames.firstTransitionWeek,\n \"aria-role\": \"presentation\",\n ariaHidden: true\n }), weeks.slice(1, weeks.length - 1).map((week, weekIndex)=>/*#__PURE__*/ React.createElement(CalendarGridRow, {\n ...props,\n ...partialWeekProps,\n key: weekIndex,\n week: week,\n weekIndex: weekIndex,\n rowClassName: classNames.weekRow\n })), /*#__PURE__*/ React.createElement(CalendarGridRow, {\n ...props,\n ...partialWeekProps,\n week: weeks[weeks.length - 1],\n weekIndex: -2,\n rowClassName: classNames.lastTransitionWeek,\n \"aria-role\": \"presentation\",\n ariaHidden: true\n })));\n};\nCalendarDayGrid.displayName = 'CalendarDayGrid';\n/**\n * When given work week, if the days are non-contiguous, the hover states look really weird. So for non-contiguous\n * work weeks, we'll just show week view instead.\n */ function getDateRangeTypeToUse(dateRangeType, workWeekDays) {\n if (workWeekDays && dateRangeType === DateRangeType.WorkWeek) {\n const sortedWWDays = workWeekDays.slice().sort();\n let isContiguous = true;\n for(let i = 1; i < sortedWWDays.length; i++){\n if (sortedWWDays[i] !== sortedWWDays[i - 1] + 1) {\n isContiguous = false;\n break;\n }\n }\n if (!isContiguous || workWeekDays.length === 0) {\n return DateRangeType.Week;\n }\n }\n return dateRangeType;\n}\n"],"names":["CalendarDayGrid","useDayRefs","daysRef","React","useRef","getSetRefCallback","dayKey","element","current","useAnimateBackwards","weeks","previousNavigatedDateRef","useEffect","originalDate","previousNavigatedDate","getTime","undefined","props","navigatedDayRef","activeDescendantId","useId","onSelectDate","selectedDate","_props_onSelectDate","_props","_props_onNavigateDate","_props1","firstDayOfWeek","minDate","maxDate","workWeekDays","daysToSelectInDayView","restrictedDates","restrictedDatesOptions","dateRange","getDateRangeArray","dateRangeType","getBoundedDateRange","filter","d","isRestrictedDate","call","onNavigateDate","useWeeks","animateBackwards","getWeekCornerStyles","calculateRoundedStyles","useWeekCornerStyles","useImperativeHandle","componentRef","focus","_navigatedDayRef_current_focus","_navigatedDayRef_current","getDayInfosInRangeOfDay","dayToCompare","dateRangeHoverType","getDateRangeTypeToUse","map","date","dayInfosInRange","reduce","accumulatedValue","currentWeek","concat","weekDay","indexOf","getRefsFromDayInfos","dayRefs","dayInfo","key","showWeekNumbers","labelledBy","lightenDaysOutsideNavigatedMonth","animationDirection","classNames","useCalendarDayGridStyles_unstable","weekCorners","partialWeekProps","arrowNavigationAttributes","useArrowNavigationGroup","axis","createElement","className","mergeClasses","table","role","CalendarMonthHeaderRow","CalendarGridRow","week","weekIndex","rowClassName","firstTransitionWeek","ariaHidden","slice","length","weekRow","lastTransitionWeek","displayName","DateRangeType","WorkWeek","sortedWWDays","sort","isContiguous","i","Week"],"mappings":"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"}
1
+ {"version":3,"sources":["CalendarDayGrid.js"],"sourcesContent":["import * as React from 'react';\nimport { useArrowNavigationGroup } from '@fluentui/react-tabster';\nimport { useId } from '@fluentui/react-utilities';\nimport { getBoundedDateRange, getDateRangeArray, isRestrictedDate, DateRangeType } from '../../utils';\nimport { useCalendarDayGridStyles_unstable } from './useCalendarDayGridStyles.styles';\nimport { CalendarMonthHeaderRow } from './CalendarMonthHeaderRow';\nimport { CalendarGridRow } from './CalendarGridRow';\nimport { useWeeks } from './useWeeks';\nimport { useWeekCornerStyles } from './useWeekCornerStyles.styles';\nimport { mergeClasses } from '@griffel/react';\nfunction useDayRefs() {\n const daysRef = React.useRef({});\n const getSetRefCallback = (dayKey)=>(element)=>{\n if (element === null) {\n delete daysRef.current[dayKey];\n } else {\n daysRef.current[dayKey] = element;\n }\n };\n return [\n daysRef,\n getSetRefCallback\n ];\n}\nfunction useAnimateBackwards(weeks) {\n const previousNavigatedDateRef = React.useRef();\n React.useEffect(()=>{\n previousNavigatedDateRef.current = weeks[0][0].originalDate;\n });\n const previousNavigatedDate = previousNavigatedDateRef.current;\n if (!previousNavigatedDate || previousNavigatedDate.getTime() === weeks[0][0].originalDate.getTime()) {\n return undefined;\n } else if (previousNavigatedDate <= weeks[0][0].originalDate) {\n return false;\n } else {\n return true;\n }\n}\nexport const CalendarDayGrid = (props)=>{\n const navigatedDayRef = React.useRef(null);\n const activeDescendantId = useId();\n const onSelectDate = (selectedDate)=>{\n var _props_onSelectDate, _props_onNavigateDate;\n const { firstDayOfWeek, minDate, maxDate, workWeekDays, daysToSelectInDayView, restrictedDates } = props;\n const restrictedDatesOptions = {\n minDate,\n maxDate,\n restrictedDates\n };\n let dateRange = getDateRangeArray(selectedDate, dateRangeType, firstDayOfWeek, workWeekDays, daysToSelectInDayView);\n dateRange = getBoundedDateRange(dateRange, minDate, maxDate);\n dateRange = dateRange.filter((d)=>{\n return !isRestrictedDate(d, restrictedDatesOptions);\n });\n (_props_onSelectDate = props.onSelectDate) === null || _props_onSelectDate === void 0 ? void 0 : _props_onSelectDate.call(props, selectedDate, dateRange);\n (_props_onNavigateDate = props.onNavigateDate) === null || _props_onNavigateDate === void 0 ? void 0 : _props_onNavigateDate.call(props, selectedDate, true);\n };\n const [daysRef, getSetRefCallback] = useDayRefs();\n const weeks = useWeeks(props, onSelectDate, getSetRefCallback);\n const animateBackwards = useAnimateBackwards(weeks);\n const [getWeekCornerStyles, calculateRoundedStyles] = useWeekCornerStyles(props);\n React.useImperativeHandle(props.componentRef, ()=>({\n focus () {\n var _navigatedDayRef_current_focus, _navigatedDayRef_current;\n (_navigatedDayRef_current = navigatedDayRef.current) === null || _navigatedDayRef_current === void 0 ? void 0 : (_navigatedDayRef_current_focus = _navigatedDayRef_current.focus) === null || _navigatedDayRef_current_focus === void 0 ? void 0 : _navigatedDayRef_current_focus.call(_navigatedDayRef_current);\n }\n }), []);\n /**\n *\n * Section for setting hover/pressed styles. Because we want arbitrary blobs of days to be selectable, to support\n * highlighting every day in the month for month view, css :hover style isn't enough, so we need mouse callbacks\n * to set classnames on all relevant child refs to apply the styling\n *\n */ const getDayInfosInRangeOfDay = (dayToCompare)=>{\n // The hover state looks weird with non-contiguous days in work week view. In work week, show week hover state\n const dateRangeHoverType = getDateRangeTypeToUse(props.dateRangeType, props.workWeekDays);\n // gets all the dates for the given date range type that are in the same date range as the given day\n const dateRange = getDateRangeArray(dayToCompare.originalDate, dateRangeHoverType, props.firstDayOfWeek, props.workWeekDays, props.daysToSelectInDayView).map((date)=>date.getTime());\n // gets all the day refs for the given dates\n const dayInfosInRange = weeks.reduce((accumulatedValue, currentWeek)=>{\n return accumulatedValue.concat(currentWeek.filter((weekDay)=>dateRange.indexOf(weekDay.originalDate.getTime()) !== -1));\n }, []);\n return dayInfosInRange;\n };\n const getRefsFromDayInfos = (dayInfosInRange)=>{\n let dayRefs = [];\n dayRefs = dayInfosInRange.map((dayInfo)=>daysRef.current[dayInfo.key]);\n return dayRefs;\n };\n const { dateRangeType, showWeekNumbers, labelledBy, lightenDaysOutsideNavigatedMonth, animationDirection } = props;\n const classNames = useCalendarDayGridStyles_unstable({\n animateBackwards,\n animationDirection,\n dateRangeType,\n lightenDaysOutsideNavigatedMonth: lightenDaysOutsideNavigatedMonth === undefined ? true : lightenDaysOutsideNavigatedMonth,\n showWeekNumbers\n });\n // When the month is highlighted get the corner dates so that styles can be added to them\n const weekCorners = getWeekCornerStyles(weeks);\n const partialWeekProps = {\n weeks,\n navigatedDayRef,\n calculateRoundedStyles,\n activeDescendantId,\n classNames,\n weekCorners,\n getDayInfosInRangeOfDay,\n getRefsFromDayInfos\n };\n const arrowNavigationAttributes = useArrowNavigationGroup({\n axis: 'grid'\n });\n return /*#__PURE__*/ React.createElement(\"table\", {\n className: mergeClasses(classNames.table, props.className),\n \"aria-multiselectable\": \"false\",\n \"aria-labelledby\": labelledBy,\n \"aria-activedescendant\": activeDescendantId,\n role: \"grid\",\n ...arrowNavigationAttributes\n }, /*#__PURE__*/ React.createElement(\"tbody\", null, /*#__PURE__*/ React.createElement(CalendarMonthHeaderRow, {\n ...props,\n classNames: classNames,\n weeks: weeks\n }), /*#__PURE__*/ React.createElement(CalendarGridRow, {\n ...props,\n ...partialWeekProps,\n week: weeks[0],\n weekIndex: -1,\n rowClassName: classNames.firstTransitionWeek,\n \"aria-role\": \"presentation\",\n ariaHidden: true\n }), weeks.slice(1, weeks.length - 1).map((week, weekIndex)=>/*#__PURE__*/ React.createElement(CalendarGridRow, {\n ...props,\n ...partialWeekProps,\n key: weekIndex,\n week: week,\n weekIndex: weekIndex,\n rowClassName: classNames.weekRow\n })), /*#__PURE__*/ React.createElement(CalendarGridRow, {\n ...props,\n ...partialWeekProps,\n week: weeks[weeks.length - 1],\n weekIndex: -2,\n rowClassName: classNames.lastTransitionWeek,\n \"aria-role\": \"presentation\",\n ariaHidden: true\n })));\n};\nCalendarDayGrid.displayName = 'CalendarDayGrid';\n/**\n * When given work week, if the days are non-contiguous, the hover states look really weird. So for non-contiguous\n * work weeks, we'll just show week view instead.\n */ function getDateRangeTypeToUse(dateRangeType, workWeekDays) {\n if (workWeekDays && dateRangeType === DateRangeType.WorkWeek) {\n const sortedWWDays = workWeekDays.slice().sort();\n let isContiguous = true;\n for(let i = 1; i < sortedWWDays.length; i++){\n if (sortedWWDays[i] !== sortedWWDays[i - 1] + 1) {\n isContiguous = false;\n break;\n }\n }\n if (!isContiguous || workWeekDays.length === 0) {\n return DateRangeType.Week;\n }\n }\n return dateRangeType;\n}\n"],"names":["CalendarDayGrid","useDayRefs","daysRef","React","useRef","getSetRefCallback","dayKey","element","current","useAnimateBackwards","weeks","previousNavigatedDateRef","useEffect","originalDate","previousNavigatedDate","getTime","undefined","props","navigatedDayRef","activeDescendantId","useId","onSelectDate","selectedDate","_props_onSelectDate","_props_onNavigateDate","firstDayOfWeek","minDate","maxDate","workWeekDays","daysToSelectInDayView","restrictedDates","restrictedDatesOptions","dateRange","getDateRangeArray","dateRangeType","getBoundedDateRange","filter","d","isRestrictedDate","call","onNavigateDate","useWeeks","animateBackwards","getWeekCornerStyles","calculateRoundedStyles","useWeekCornerStyles","useImperativeHandle","componentRef","focus","_navigatedDayRef_current_focus","_navigatedDayRef_current","getDayInfosInRangeOfDay","dayToCompare","dateRangeHoverType","getDateRangeTypeToUse","map","date","dayInfosInRange","reduce","accumulatedValue","currentWeek","concat","weekDay","indexOf","getRefsFromDayInfos","dayRefs","dayInfo","key","showWeekNumbers","labelledBy","lightenDaysOutsideNavigatedMonth","animationDirection","classNames","useCalendarDayGridStyles_unstable","weekCorners","partialWeekProps","arrowNavigationAttributes","useArrowNavigationGroup","axis","createElement","className","mergeClasses","table","role","CalendarMonthHeaderRow","CalendarGridRow","week","weekIndex","rowClassName","firstTransitionWeek","ariaHidden","slice","length","weekRow","lastTransitionWeek","displayName","DateRangeType","WorkWeek","sortedWWDays","sort","isContiguous","i","Week"],"mappings":"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"}
@@ -18,10 +18,9 @@ const _utils = require("../../utils");
18
18
  const _useWeekCornerStylesstyles = require("./useWeekCornerStyles.styles");
19
19
  const _useCalendarDayGridStylesstyles = require("./useCalendarDayGridStyles.styles");
20
20
  const CalendarGridDayCell = (props)=>{
21
- var _weekCorners;
22
21
  const { navigatedDate, dateTimeFormatter, allFocusable, strings, activeDescendantId, navigatedDayRef, calculateRoundedStyles, weeks, classNames, day, dayIndex, weekIndex, weekCorners, ariaHidden, customDayCellRef, dateRangeType, daysToSelectInDayView, onSelectDate, restrictedDates, minDate, maxDate, onNavigateDate, getDayInfosInRangeOfDay, getRefsFromDayInfos } = props;
23
22
  var _weekCorners_;
24
- const cornerStyle = (_weekCorners_ = (_weekCorners = weekCorners) === null || _weekCorners === void 0 ? void 0 : _weekCorners[weekIndex + '_' + dayIndex]) !== null && _weekCorners_ !== void 0 ? _weekCorners_ : '';
23
+ const cornerStyle = (_weekCorners_ = weekCorners === null || weekCorners === void 0 ? void 0 : weekCorners[weekIndex + '_' + dayIndex]) !== null && _weekCorners_ !== void 0 ? _weekCorners_ : '';
25
24
  const isNavigatedDate = (0, _utils.compareDates)(navigatedDate, day.originalDate);
26
25
  const { dir } = (0, _reactsharedcontexts.useFluent_unstable)();
27
26
  const navigateMonthEdge = (ev, date)=>{
@@ -127,8 +126,7 @@ const CalendarGridDayCell = (props)=>{
127
126
  };
128
127
  const onDayKeyDown = (ev)=>{
129
128
  if (ev.key === _keyboardkeys.Enter) {
130
- var _onSelectDate;
131
- (_onSelectDate = onSelectDate) === null || _onSelectDate === void 0 ? void 0 : _onSelectDate(day.originalDate);
129
+ onSelectDate === null || onSelectDate === void 0 ? void 0 : onSelectDate(day.originalDate);
132
130
  } else {
133
131
  navigateMonthEdge(ev, day.originalDate);
134
132
  }
@@ -141,8 +139,7 @@ const CalendarGridDayCell = (props)=>{
141
139
  return /*#__PURE__*/ _react.createElement("td", {
142
140
  className: (0, _react1.mergeClasses)(classNames.dayCell, weekCorners && cornerStyle, day.isSelected && classNames.daySelected, !day.isInBounds && classNames.dayOutsideBounds, !day.isInMonth && classNames.dayOutsideNavigatedMonth),
143
141
  ref: (element)=>{
144
- var _customDayCellRef;
145
- (_customDayCellRef = customDayCellRef) === null || _customDayCellRef === void 0 ? void 0 : _customDayCellRef(element, day.originalDate, classNames);
142
+ customDayCellRef === null || customDayCellRef === void 0 ? void 0 : customDayCellRef(element, day.originalDate, classNames);
146
143
  day.setRef(element);
147
144
  isNavigatedDate && (navigatedDayRef.current = element);
148
145
  },
@@ -1 +1 @@
1
- {"version":3,"sources":["CalendarGridDayCell.js"],"sourcesContent":["import * as React from 'react';\nimport { ArrowDown, ArrowLeft, ArrowRight, ArrowUp, Enter } from '@fluentui/keyboard-keys';\nimport { getRTLSafeKey } from '@fluentui/react-utilities';\nimport { useFluent_unstable } from '@fluentui/react-shared-contexts';\nimport { mergeClasses } from '@griffel/react';\nimport { addDays, addWeeks, compareDates, findAvailableDate, DateRangeType } from '../../utils';\nimport { weekCornersClassNames } from './useWeekCornerStyles.styles';\nimport { extraCalendarDayGridClassNames } from './useCalendarDayGridStyles.styles';\n/**\n * @internal\n */ export const CalendarGridDayCell = (props)=>{\n var _weekCorners;\n const { navigatedDate, dateTimeFormatter, allFocusable, strings, activeDescendantId, navigatedDayRef, calculateRoundedStyles, weeks, classNames, day, dayIndex, weekIndex, weekCorners, ariaHidden, customDayCellRef, dateRangeType, daysToSelectInDayView, onSelectDate, restrictedDates, minDate, maxDate, onNavigateDate, getDayInfosInRangeOfDay, getRefsFromDayInfos } = props;\n var _weekCorners_;\n const cornerStyle = (_weekCorners_ = (_weekCorners = weekCorners) === null || _weekCorners === void 0 ? void 0 : _weekCorners[weekIndex + '_' + dayIndex]) !== null && _weekCorners_ !== void 0 ? _weekCorners_ : '';\n const isNavigatedDate = compareDates(navigatedDate, day.originalDate);\n const { dir } = useFluent_unstable();\n const navigateMonthEdge = (ev, date)=>{\n let targetDate = undefined;\n let direction = 1; // by default search forward\n if (ev.key === ArrowUp) {\n targetDate = addWeeks(date, -1);\n direction = -1;\n } else if (ev.key === ArrowDown) {\n targetDate = addWeeks(date, 1);\n } else if (ev.key === getRTLSafeKey(ArrowLeft, dir)) {\n targetDate = addDays(date, -1);\n direction = -1;\n } else if (ev.key === getRTLSafeKey(ArrowRight, dir)) {\n targetDate = addDays(date, 1);\n }\n if (!targetDate) {\n // if we couldn't find a target date at all, do nothing\n return;\n }\n const findAvailableDateOptions = {\n initialDate: date,\n targetDate,\n direction,\n restrictedDates,\n minDate,\n maxDate\n };\n // target date is restricted, search in whatever direction until finding the next possible date,\n // stopping at boundaries\n let nextDate = findAvailableDate(findAvailableDateOptions);\n if (!nextDate) {\n // if no dates available in initial direction, try going backwards\n findAvailableDateOptions.direction = -direction;\n nextDate = findAvailableDate(findAvailableDateOptions);\n }\n // if the nextDate is still inside the same focusZone area, let the focusZone handle setting the focus so we\n // don't jump the view unnecessarily\n const isInCurrentView = weeks && nextDate && weeks.slice(1, weeks.length - 1).some((week)=>{\n return week.some((dayToCompare)=>{\n return compareDates(dayToCompare.originalDate, nextDate);\n });\n });\n if (isInCurrentView) {\n return;\n }\n // else, fire navigation on the date to change the view to show it\n if (nextDate) {\n onNavigateDate(nextDate, true);\n ev.preventDefault();\n }\n };\n const onMouseOverDay = (ev)=>{\n const dayInfos = getDayInfosInRangeOfDay(day);\n const dayRefs = getRefsFromDayInfos(dayInfos);\n dayRefs.forEach((dayRef, index)=>{\n if (dayRef) {\n dayRef.classList.add(extraCalendarDayGridClassNames.hoverStyle);\n if (!dayInfos[index].isSelected && dateRangeType === DateRangeType.Day && daysToSelectInDayView && daysToSelectInDayView > 1) {\n // remove the static classes first to overwrite them\n dayRef.classList.remove(weekCornersClassNames.bottomLeftCornerDate, weekCornersClassNames.bottomRightCornerDate, weekCornersClassNames.topLeftCornerDate, weekCornersClassNames.topRightCornerDate);\n const classNamesToAdd = calculateRoundedStyles(false, false, index > 0, index < dayRefs.length - 1).trim();\n if (classNamesToAdd) {\n dayRef.classList.add(...classNamesToAdd);\n }\n }\n }\n });\n };\n const onMouseDownDay = (ev)=>{\n const dayInfos = getDayInfosInRangeOfDay(day);\n const dayRefs = getRefsFromDayInfos(dayInfos);\n dayRefs.forEach((dayRef)=>{\n if (dayRef) {\n dayRef.classList.add(extraCalendarDayGridClassNames.pressedStyle);\n }\n });\n };\n const onMouseUpDay = (ev)=>{\n const dayInfos = getDayInfosInRangeOfDay(day);\n const dayRefs = getRefsFromDayInfos(dayInfos);\n dayRefs.forEach((dayRef)=>{\n if (dayRef) {\n dayRef.classList.remove(extraCalendarDayGridClassNames.pressedStyle);\n }\n });\n };\n const onMouseOutDay = (ev)=>{\n const dayInfos = getDayInfosInRangeOfDay(day);\n const dayRefs = getRefsFromDayInfos(dayInfos);\n dayRefs.forEach((dayRef, index)=>{\n if (dayRef) {\n dayRef.classList.remove(extraCalendarDayGridClassNames.hoverStyle);\n dayRef.classList.remove(extraCalendarDayGridClassNames.pressedStyle);\n if (!dayInfos[index].isSelected && dateRangeType === DateRangeType.Day && daysToSelectInDayView && daysToSelectInDayView > 1) {\n const classNamesToAdd = calculateRoundedStyles(false, false, index > 0, index < dayRefs.length - 1).trim();\n if (classNamesToAdd) {\n dayRef.classList.remove(...classNamesToAdd);\n }\n }\n }\n });\n };\n const onDayKeyDown = (ev)=>{\n if (ev.key === Enter) {\n var _onSelectDate;\n (_onSelectDate = onSelectDate) === null || _onSelectDate === void 0 ? void 0 : _onSelectDate(day.originalDate);\n } else {\n navigateMonthEdge(ev, day.originalDate);\n }\n };\n let ariaLabel = day.originalDate.getDate() + ', ' + strings.months[day.originalDate.getMonth()] + ', ' + day.originalDate.getFullYear();\n if (day.isMarked) {\n ariaLabel = ariaLabel + ', ' + strings.dayMarkedAriaLabel;\n }\n const isFocusable = !ariaHidden && (allFocusable || (day.isInBounds ? true : undefined));\n return /*#__PURE__*/ React.createElement(\"td\", {\n className: mergeClasses(classNames.dayCell, weekCorners && cornerStyle, day.isSelected && classNames.daySelected, !day.isInBounds && classNames.dayOutsideBounds, !day.isInMonth && classNames.dayOutsideNavigatedMonth),\n ref: (element)=>{\n var _customDayCellRef;\n (_customDayCellRef = customDayCellRef) === null || _customDayCellRef === void 0 ? void 0 : _customDayCellRef(element, day.originalDate, classNames);\n day.setRef(element);\n isNavigatedDate && (navigatedDayRef.current = element);\n },\n \"aria-hidden\": ariaHidden,\n \"aria-disabled\": !ariaHidden && !day.isInBounds,\n onClick: day.isInBounds && !ariaHidden ? day.onSelected : undefined,\n onMouseOver: !ariaHidden ? onMouseOverDay : undefined,\n onMouseDown: !ariaHidden ? onMouseDownDay : undefined,\n onMouseUp: !ariaHidden ? onMouseUpDay : undefined,\n onMouseOut: !ariaHidden ? onMouseOutDay : undefined,\n onKeyDown: !ariaHidden ? onDayKeyDown : undefined,\n role: \"gridcell\",\n tabIndex: isNavigatedDate || isFocusable ? 0 : undefined,\n \"aria-current\": day.isToday ? 'date' : undefined,\n \"aria-selected\": day.isInBounds ? day.isSelected : undefined\n }, /*#__PURE__*/ React.createElement(\"button\", {\n key: day.key + 'button',\n \"aria-hidden\": ariaHidden,\n className: mergeClasses(classNames.dayButton, day.isToday && classNames.dayIsToday),\n \"aria-label\": ariaLabel,\n id: isNavigatedDate ? activeDescendantId : undefined,\n disabled: !ariaHidden && !day.isInBounds,\n type: \"button\",\n tabIndex: -1\n }, /*#__PURE__*/ React.createElement(\"span\", {\n \"aria-hidden\": \"true\"\n }, dateTimeFormatter.formatDay(day.originalDate)), day.isMarked && /*#__PURE__*/ React.createElement(\"div\", {\n \"aria-hidden\": \"true\",\n className: classNames.dayMarker\n })));\n};\n"],"names":["CalendarGridDayCell","props","_weekCorners","navigatedDate","dateTimeFormatter","allFocusable","strings","activeDescendantId","navigatedDayRef","calculateRoundedStyles","weeks","classNames","day","dayIndex","weekIndex","weekCorners","ariaHidden","customDayCellRef","dateRangeType","daysToSelectInDayView","onSelectDate","restrictedDates","minDate","maxDate","onNavigateDate","getDayInfosInRangeOfDay","getRefsFromDayInfos","_weekCorners_","cornerStyle","isNavigatedDate","compareDates","originalDate","dir","useFluent_unstable","navigateMonthEdge","ev","date","targetDate","undefined","direction","key","ArrowUp","addWeeks","ArrowDown","getRTLSafeKey","ArrowLeft","addDays","ArrowRight","findAvailableDateOptions","initialDate","nextDate","findAvailableDate","isInCurrentView","slice","length","some","week","dayToCompare","preventDefault","onMouseOverDay","dayInfos","dayRefs","forEach","dayRef","index","classList","add","extraCalendarDayGridClassNames","hoverStyle","isSelected","DateRangeType","Day","remove","weekCornersClassNames","bottomLeftCornerDate","bottomRightCornerDate","topLeftCornerDate","topRightCornerDate","classNamesToAdd","trim","onMouseDownDay","pressedStyle","onMouseUpDay","onMouseOutDay","onDayKeyDown","Enter","_onSelectDate","ariaLabel","getDate","months","getMonth","getFullYear","isMarked","dayMarkedAriaLabel","isFocusable","isInBounds","React","createElement","className","mergeClasses","dayCell","daySelected","dayOutsideBounds","isInMonth","dayOutsideNavigatedMonth","ref","element","_customDayCellRef","setRef","current","onClick","onSelected","onMouseOver","onMouseDown","onMouseUp","onMouseOut","onKeyDown","role","tabIndex","isToday","dayButton","dayIsToday","id","disabled","type","formatDay","dayMarker"],"mappings":"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"}
1
+ {"version":3,"sources":["CalendarGridDayCell.js"],"sourcesContent":["import * as React from 'react';\nimport { ArrowDown, ArrowLeft, ArrowRight, ArrowUp, Enter } from '@fluentui/keyboard-keys';\nimport { getRTLSafeKey } from '@fluentui/react-utilities';\nimport { useFluent_unstable } from '@fluentui/react-shared-contexts';\nimport { mergeClasses } from '@griffel/react';\nimport { addDays, addWeeks, compareDates, findAvailableDate, DateRangeType } from '../../utils';\nimport { weekCornersClassNames } from './useWeekCornerStyles.styles';\nimport { extraCalendarDayGridClassNames } from './useCalendarDayGridStyles.styles';\n/**\n * @internal\n */ export const CalendarGridDayCell = (props)=>{\n const { navigatedDate, dateTimeFormatter, allFocusable, strings, activeDescendantId, navigatedDayRef, calculateRoundedStyles, weeks, classNames, day, dayIndex, weekIndex, weekCorners, ariaHidden, customDayCellRef, dateRangeType, daysToSelectInDayView, onSelectDate, restrictedDates, minDate, maxDate, onNavigateDate, getDayInfosInRangeOfDay, getRefsFromDayInfos } = props;\n var _weekCorners_;\n const cornerStyle = (_weekCorners_ = weekCorners === null || weekCorners === void 0 ? void 0 : weekCorners[weekIndex + '_' + dayIndex]) !== null && _weekCorners_ !== void 0 ? _weekCorners_ : '';\n const isNavigatedDate = compareDates(navigatedDate, day.originalDate);\n const { dir } = useFluent_unstable();\n const navigateMonthEdge = (ev, date)=>{\n let targetDate = undefined;\n let direction = 1; // by default search forward\n if (ev.key === ArrowUp) {\n targetDate = addWeeks(date, -1);\n direction = -1;\n } else if (ev.key === ArrowDown) {\n targetDate = addWeeks(date, 1);\n } else if (ev.key === getRTLSafeKey(ArrowLeft, dir)) {\n targetDate = addDays(date, -1);\n direction = -1;\n } else if (ev.key === getRTLSafeKey(ArrowRight, dir)) {\n targetDate = addDays(date, 1);\n }\n if (!targetDate) {\n // if we couldn't find a target date at all, do nothing\n return;\n }\n const findAvailableDateOptions = {\n initialDate: date,\n targetDate,\n direction,\n restrictedDates,\n minDate,\n maxDate\n };\n // target date is restricted, search in whatever direction until finding the next possible date,\n // stopping at boundaries\n let nextDate = findAvailableDate(findAvailableDateOptions);\n if (!nextDate) {\n // if no dates available in initial direction, try going backwards\n findAvailableDateOptions.direction = -direction;\n nextDate = findAvailableDate(findAvailableDateOptions);\n }\n // if the nextDate is still inside the same focusZone area, let the focusZone handle setting the focus so we\n // don't jump the view unnecessarily\n const isInCurrentView = weeks && nextDate && weeks.slice(1, weeks.length - 1).some((week)=>{\n return week.some((dayToCompare)=>{\n return compareDates(dayToCompare.originalDate, nextDate);\n });\n });\n if (isInCurrentView) {\n return;\n }\n // else, fire navigation on the date to change the view to show it\n if (nextDate) {\n onNavigateDate(nextDate, true);\n ev.preventDefault();\n }\n };\n const onMouseOverDay = (ev)=>{\n const dayInfos = getDayInfosInRangeOfDay(day);\n const dayRefs = getRefsFromDayInfos(dayInfos);\n dayRefs.forEach((dayRef, index)=>{\n if (dayRef) {\n dayRef.classList.add(extraCalendarDayGridClassNames.hoverStyle);\n if (!dayInfos[index].isSelected && dateRangeType === DateRangeType.Day && daysToSelectInDayView && daysToSelectInDayView > 1) {\n // remove the static classes first to overwrite them\n dayRef.classList.remove(weekCornersClassNames.bottomLeftCornerDate, weekCornersClassNames.bottomRightCornerDate, weekCornersClassNames.topLeftCornerDate, weekCornersClassNames.topRightCornerDate);\n const classNamesToAdd = calculateRoundedStyles(false, false, index > 0, index < dayRefs.length - 1).trim();\n if (classNamesToAdd) {\n dayRef.classList.add(...classNamesToAdd);\n }\n }\n }\n });\n };\n const onMouseDownDay = (ev)=>{\n const dayInfos = getDayInfosInRangeOfDay(day);\n const dayRefs = getRefsFromDayInfos(dayInfos);\n dayRefs.forEach((dayRef)=>{\n if (dayRef) {\n dayRef.classList.add(extraCalendarDayGridClassNames.pressedStyle);\n }\n });\n };\n const onMouseUpDay = (ev)=>{\n const dayInfos = getDayInfosInRangeOfDay(day);\n const dayRefs = getRefsFromDayInfos(dayInfos);\n dayRefs.forEach((dayRef)=>{\n if (dayRef) {\n dayRef.classList.remove(extraCalendarDayGridClassNames.pressedStyle);\n }\n });\n };\n const onMouseOutDay = (ev)=>{\n const dayInfos = getDayInfosInRangeOfDay(day);\n const dayRefs = getRefsFromDayInfos(dayInfos);\n dayRefs.forEach((dayRef, index)=>{\n if (dayRef) {\n dayRef.classList.remove(extraCalendarDayGridClassNames.hoverStyle);\n dayRef.classList.remove(extraCalendarDayGridClassNames.pressedStyle);\n if (!dayInfos[index].isSelected && dateRangeType === DateRangeType.Day && daysToSelectInDayView && daysToSelectInDayView > 1) {\n const classNamesToAdd = calculateRoundedStyles(false, false, index > 0, index < dayRefs.length - 1).trim();\n if (classNamesToAdd) {\n dayRef.classList.remove(...classNamesToAdd);\n }\n }\n }\n });\n };\n const onDayKeyDown = (ev)=>{\n if (ev.key === Enter) {\n onSelectDate === null || onSelectDate === void 0 ? void 0 : onSelectDate(day.originalDate);\n } else {\n navigateMonthEdge(ev, day.originalDate);\n }\n };\n let ariaLabel = day.originalDate.getDate() + ', ' + strings.months[day.originalDate.getMonth()] + ', ' + day.originalDate.getFullYear();\n if (day.isMarked) {\n ariaLabel = ariaLabel + ', ' + strings.dayMarkedAriaLabel;\n }\n const isFocusable = !ariaHidden && (allFocusable || (day.isInBounds ? true : undefined));\n return /*#__PURE__*/ React.createElement(\"td\", {\n className: mergeClasses(classNames.dayCell, weekCorners && cornerStyle, day.isSelected && classNames.daySelected, !day.isInBounds && classNames.dayOutsideBounds, !day.isInMonth && classNames.dayOutsideNavigatedMonth),\n ref: (element)=>{\n customDayCellRef === null || customDayCellRef === void 0 ? void 0 : customDayCellRef(element, day.originalDate, classNames);\n day.setRef(element);\n isNavigatedDate && (navigatedDayRef.current = element);\n },\n \"aria-hidden\": ariaHidden,\n \"aria-disabled\": !ariaHidden && !day.isInBounds,\n onClick: day.isInBounds && !ariaHidden ? day.onSelected : undefined,\n onMouseOver: !ariaHidden ? onMouseOverDay : undefined,\n onMouseDown: !ariaHidden ? onMouseDownDay : undefined,\n onMouseUp: !ariaHidden ? onMouseUpDay : undefined,\n onMouseOut: !ariaHidden ? onMouseOutDay : undefined,\n onKeyDown: !ariaHidden ? onDayKeyDown : undefined,\n role: \"gridcell\",\n tabIndex: isNavigatedDate || isFocusable ? 0 : undefined,\n \"aria-current\": day.isToday ? 'date' : undefined,\n \"aria-selected\": day.isInBounds ? day.isSelected : undefined\n }, /*#__PURE__*/ React.createElement(\"button\", {\n key: day.key + 'button',\n \"aria-hidden\": ariaHidden,\n className: mergeClasses(classNames.dayButton, day.isToday && classNames.dayIsToday),\n \"aria-label\": ariaLabel,\n id: isNavigatedDate ? activeDescendantId : undefined,\n disabled: !ariaHidden && !day.isInBounds,\n type: \"button\",\n tabIndex: -1\n }, /*#__PURE__*/ React.createElement(\"span\", {\n \"aria-hidden\": \"true\"\n }, dateTimeFormatter.formatDay(day.originalDate)), day.isMarked && /*#__PURE__*/ React.createElement(\"div\", {\n \"aria-hidden\": \"true\",\n className: classNames.dayMarker\n })));\n};\n"],"names":["CalendarGridDayCell","props","navigatedDate","dateTimeFormatter","allFocusable","strings","activeDescendantId","navigatedDayRef","calculateRoundedStyles","weeks","classNames","day","dayIndex","weekIndex","weekCorners","ariaHidden","customDayCellRef","dateRangeType","daysToSelectInDayView","onSelectDate","restrictedDates","minDate","maxDate","onNavigateDate","getDayInfosInRangeOfDay","getRefsFromDayInfos","_weekCorners_","cornerStyle","isNavigatedDate","compareDates","originalDate","dir","useFluent_unstable","navigateMonthEdge","ev","date","targetDate","undefined","direction","key","ArrowUp","addWeeks","ArrowDown","getRTLSafeKey","ArrowLeft","addDays","ArrowRight","findAvailableDateOptions","initialDate","nextDate","findAvailableDate","isInCurrentView","slice","length","some","week","dayToCompare","preventDefault","onMouseOverDay","dayInfos","dayRefs","forEach","dayRef","index","classList","add","extraCalendarDayGridClassNames","hoverStyle","isSelected","DateRangeType","Day","remove","weekCornersClassNames","bottomLeftCornerDate","bottomRightCornerDate","topLeftCornerDate","topRightCornerDate","classNamesToAdd","trim","onMouseDownDay","pressedStyle","onMouseUpDay","onMouseOutDay","onDayKeyDown","Enter","ariaLabel","getDate","months","getMonth","getFullYear","isMarked","dayMarkedAriaLabel","isFocusable","isInBounds","React","createElement","className","mergeClasses","dayCell","daySelected","dayOutsideBounds","isInMonth","dayOutsideNavigatedMonth","ref","element","setRef","current","onClick","onSelected","onMouseOver","onMouseDown","onMouseUp","onMouseOut","onKeyDown","role","tabIndex","isToday","dayButton","dayIsToday","id","disabled","type","formatDay","dayMarker"],"mappings":"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"}
@@ -16,11 +16,11 @@ function useWeeks(props, onSelectDate, getSetRefCallback) {
16
16
  * Initial parsing of the given props to generate IDayInfo two dimensional array, which contains a representation
17
17
  * of every day in the grid. Convenient for helping with conversions between day refs and Date objects in callbacks.
18
18
  */ const weeks = _react.useMemo(()=>{
19
- var _props_getMarkedDays, _props;
19
+ var _props_getMarkedDays;
20
20
  const weeksGrid = (0, _index.getDayGrid)(props);
21
21
  const firstVisibleDay = weeksGrid[1][0].originalDate;
22
22
  const lastVisibleDay = weeksGrid[weeksGrid.length - 1][6].originalDate;
23
- const markedDays = ((_props_getMarkedDays = (_props = props).getMarkedDays) === null || _props_getMarkedDays === void 0 ? void 0 : _props_getMarkedDays.call(_props, firstVisibleDay, lastVisibleDay)) || [];
23
+ const markedDays = ((_props_getMarkedDays = props.getMarkedDays) === null || _props_getMarkedDays === void 0 ? void 0 : _props_getMarkedDays.call(props, firstVisibleDay, lastVisibleDay)) || [];
24
24
  /**
25
25
  * Weeks is a 2D array. Weeks[0] contains the last week of the prior range,
26
26
  * Weeks[weeks.length - 1] contains first week of next range. These are for transition states.
@@ -30,13 +30,12 @@ function useWeeks(props, onSelectDate, getSetRefCallback) {
30
30
  for(let weekIndex = 0; weekIndex < weeksGrid.length; weekIndex++){
31
31
  const week = [];
32
32
  for(let dayIndex = 0; dayIndex < _index.DAYS_IN_WEEK; dayIndex++){
33
- var _markedDays;
34
33
  const day = weeksGrid[weekIndex][dayIndex];
35
34
  const dayInfo = {
36
35
  onSelected: ()=>onSelectDate(day.originalDate),
37
36
  setRef: getSetRefCallback(day.key),
38
37
  ...day,
39
- isMarked: day.isMarked || ((_markedDays = markedDays) === null || _markedDays === void 0 ? void 0 : _markedDays.some((markedDay)=>(0, _index.compareDates)(day.originalDate, markedDay)))
38
+ isMarked: day.isMarked || (markedDays === null || markedDays === void 0 ? void 0 : markedDays.some((markedDay)=>(0, _index.compareDates)(day.originalDate, markedDay)))
40
39
  };
41
40
  week.push(dayInfo);
42
41
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["useWeeks.js"],"sourcesContent":["import * as React from 'react';\nimport { compareDates, DAYS_IN_WEEK, getDayGrid } from '../../utils/index';\n/**\n * @internal\n */ export function useWeeks(props, onSelectDate, getSetRefCallback) {\n /**\n * Initial parsing of the given props to generate IDayInfo two dimensional array, which contains a representation\n * of every day in the grid. Convenient for helping with conversions between day refs and Date objects in callbacks.\n */ const weeks = React.useMemo(()=>{\n var _props_getMarkedDays, _props;\n const weeksGrid = getDayGrid(props);\n const firstVisibleDay = weeksGrid[1][0].originalDate;\n const lastVisibleDay = weeksGrid[weeksGrid.length - 1][6].originalDate;\n const markedDays = ((_props_getMarkedDays = (_props = props).getMarkedDays) === null || _props_getMarkedDays === void 0 ? void 0 : _props_getMarkedDays.call(_props, firstVisibleDay, lastVisibleDay)) || [];\n /**\n * Weeks is a 2D array. Weeks[0] contains the last week of the prior range,\n * Weeks[weeks.length - 1] contains first week of next range. These are for transition states.\n *\n * Weeks[1... weeks.length - 2] contains the actual visible data\n */ const returnValue = [];\n for(let weekIndex = 0; weekIndex < weeksGrid.length; weekIndex++){\n const week = [];\n for(let dayIndex = 0; dayIndex < DAYS_IN_WEEK; dayIndex++){\n var _markedDays;\n const day = weeksGrid[weekIndex][dayIndex];\n const dayInfo = {\n onSelected: ()=>onSelectDate(day.originalDate),\n setRef: getSetRefCallback(day.key),\n ...day,\n isMarked: day.isMarked || ((_markedDays = markedDays) === null || _markedDays === void 0 ? void 0 : _markedDays.some((markedDay)=>compareDates(day.originalDate, markedDay)))\n };\n week.push(dayInfo);\n }\n returnValue.push(week);\n }\n return returnValue;\n // TODO: this is missing deps on getSetRefCallback and onSelectDate (and depending on the entire\n // props object may not be a good idea due to likely frequent mutation). It would be easy to\n // fix getSetRefCallback to not mutate every render, but onSelectDate is passed down from\n // Calendar and trying to fix it requires a huge cascade of changes.\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [\n props\n ]);\n return weeks;\n}\n"],"names":["useWeeks","props","onSelectDate","getSetRefCallback","weeks","React","useMemo","_props_getMarkedDays","_props","weeksGrid","getDayGrid","firstVisibleDay","originalDate","lastVisibleDay","length","markedDays","getMarkedDays","call","returnValue","weekIndex","week","dayIndex","DAYS_IN_WEEK","_markedDays","day","dayInfo","onSelected","setRef","key","isMarked","some","markedDay","compareDates","push"],"mappings":";;;;+BAIoBA;;;eAAAA;;;;iEAJG;uBACgC;AAG5C,SAASA,SAASC,KAAK,EAAEC,YAAY,EAAEC,iBAAiB;IAC/D;;;GAGD,GAAG,MAAMC,QAAQC,OAAMC,OAAO,CAAC;QAC1B,IAAIC,sBAAsBC;QAC1B,MAAMC,YAAYC,IAAAA,iBAAU,EAACT;QAC7B,MAAMU,kBAAkBF,SAAS,CAAC,EAAE,CAAC,EAAE,CAACG,YAAY;QACpD,MAAMC,iBAAiBJ,SAAS,CAACA,UAAUK,MAAM,GAAG,EAAE,CAAC,EAAE,CAACF,YAAY;QACtE,MAAMG,aAAa,AAAC,CAAA,AAACR,CAAAA,uBAAuB,AAACC,CAAAA,SAASP,KAAI,EAAGe,aAAa,AAAD,MAAO,QAAQT,yBAAyB,KAAK,IAAI,KAAK,IAAIA,qBAAqBU,IAAI,CAACT,QAAQG,iBAAiBE,eAAc,KAAM,EAAE;QAC5M;;;;;KAKH,GAAG,MAAMK,cAAc,EAAE;QACtB,IAAI,IAAIC,YAAY,GAAGA,YAAYV,UAAUK,MAAM,EAAEK,YAAY;YAC7D,MAAMC,OAAO,EAAE;YACf,IAAI,IAAIC,WAAW,GAAGA,WAAWC,mBAAY,EAAED,WAAW;gBACtD,IAAIE;gBACJ,MAAMC,MAAMf,SAAS,CAACU,UAAU,CAACE,SAAS;gBAC1C,MAAMI,UAAU;oBACZC,YAAY,IAAIxB,aAAasB,IAAIZ,YAAY;oBAC7Ce,QAAQxB,kBAAkBqB,IAAII,GAAG;oBACjC,GAAGJ,GAAG;oBACNK,UAAUL,IAAIK,QAAQ,IAAK,CAAA,AAACN,CAAAA,cAAcR,UAAS,MAAO,QAAQQ,gBAAgB,KAAK,IAAI,KAAK,IAAIA,YAAYO,IAAI,CAAC,CAACC,YAAYC,IAAAA,mBAAY,EAACR,IAAIZ,YAAY,EAAEmB,WAAU;gBAC/K;gBACAX,KAAKa,IAAI,CAACR;YACd;YACAP,YAAYe,IAAI,CAACb;QACrB;QACA,OAAOF;IACX,gGAAgG;IAChG,4FAA4F;IAC5F,yFAAyF;IACzF,oEAAoE;IACpE,uDAAuD;IACvD,GAAG;QACCjB;KACH;IACD,OAAOG;AACX"}
1
+ {"version":3,"sources":["useWeeks.js"],"sourcesContent":["import * as React from 'react';\nimport { compareDates, DAYS_IN_WEEK, getDayGrid } from '../../utils/index';\n/**\n * @internal\n */ export function useWeeks(props, onSelectDate, getSetRefCallback) {\n /**\n * Initial parsing of the given props to generate IDayInfo two dimensional array, which contains a representation\n * of every day in the grid. Convenient for helping with conversions between day refs and Date objects in callbacks.\n */ const weeks = React.useMemo(()=>{\n var _props_getMarkedDays;\n const weeksGrid = getDayGrid(props);\n const firstVisibleDay = weeksGrid[1][0].originalDate;\n const lastVisibleDay = weeksGrid[weeksGrid.length - 1][6].originalDate;\n const markedDays = ((_props_getMarkedDays = props.getMarkedDays) === null || _props_getMarkedDays === void 0 ? void 0 : _props_getMarkedDays.call(props, firstVisibleDay, lastVisibleDay)) || [];\n /**\n * Weeks is a 2D array. Weeks[0] contains the last week of the prior range,\n * Weeks[weeks.length - 1] contains first week of next range. These are for transition states.\n *\n * Weeks[1... weeks.length - 2] contains the actual visible data\n */ const returnValue = [];\n for(let weekIndex = 0; weekIndex < weeksGrid.length; weekIndex++){\n const week = [];\n for(let dayIndex = 0; dayIndex < DAYS_IN_WEEK; dayIndex++){\n const day = weeksGrid[weekIndex][dayIndex];\n const dayInfo = {\n onSelected: ()=>onSelectDate(day.originalDate),\n setRef: getSetRefCallback(day.key),\n ...day,\n isMarked: day.isMarked || (markedDays === null || markedDays === void 0 ? void 0 : markedDays.some((markedDay)=>compareDates(day.originalDate, markedDay)))\n };\n week.push(dayInfo);\n }\n returnValue.push(week);\n }\n return returnValue;\n // TODO: this is missing deps on getSetRefCallback and onSelectDate (and depending on the entire\n // props object may not be a good idea due to likely frequent mutation). It would be easy to\n // fix getSetRefCallback to not mutate every render, but onSelectDate is passed down from\n // Calendar and trying to fix it requires a huge cascade of changes.\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [\n props\n ]);\n return weeks;\n}\n"],"names":["useWeeks","props","onSelectDate","getSetRefCallback","weeks","React","useMemo","_props_getMarkedDays","weeksGrid","getDayGrid","firstVisibleDay","originalDate","lastVisibleDay","length","markedDays","getMarkedDays","call","returnValue","weekIndex","week","dayIndex","DAYS_IN_WEEK","day","dayInfo","onSelected","setRef","key","isMarked","some","markedDay","compareDates","push"],"mappings":";;;;+BAIoBA;;;eAAAA;;;;iEAJG;uBACgC;AAG5C,SAASA,SAASC,KAAK,EAAEC,YAAY,EAAEC,iBAAiB;IAC/D;;;GAGD,GAAG,MAAMC,QAAQC,OAAMC,OAAO,CAAC;QAC1B,IAAIC;QACJ,MAAMC,YAAYC,IAAAA,iBAAU,EAACR;QAC7B,MAAMS,kBAAkBF,SAAS,CAAC,EAAE,CAAC,EAAE,CAACG,YAAY;QACpD,MAAMC,iBAAiBJ,SAAS,CAACA,UAAUK,MAAM,GAAG,EAAE,CAAC,EAAE,CAACF,YAAY;QACtE,MAAMG,aAAa,AAAC,CAAA,AAACP,CAAAA,uBAAuBN,MAAMc,aAAa,AAAD,MAAO,QAAQR,yBAAyB,KAAK,IAAI,KAAK,IAAIA,qBAAqBS,IAAI,CAACf,OAAOS,iBAAiBE,eAAc,KAAM,EAAE;QAChM;;;;;KAKH,GAAG,MAAMK,cAAc,EAAE;QACtB,IAAI,IAAIC,YAAY,GAAGA,YAAYV,UAAUK,MAAM,EAAEK,YAAY;YAC7D,MAAMC,OAAO,EAAE;YACf,IAAI,IAAIC,WAAW,GAAGA,WAAWC,mBAAY,EAAED,WAAW;gBACtD,MAAME,MAAMd,SAAS,CAACU,UAAU,CAACE,SAAS;gBAC1C,MAAMG,UAAU;oBACZC,YAAY,IAAItB,aAAaoB,IAAIX,YAAY;oBAC7Cc,QAAQtB,kBAAkBmB,IAAII,GAAG;oBACjC,GAAGJ,GAAG;oBACNK,UAAUL,IAAIK,QAAQ,IAAKb,CAAAA,eAAe,QAAQA,eAAe,KAAK,IAAI,KAAK,IAAIA,WAAWc,IAAI,CAAC,CAACC,YAAYC,IAAAA,mBAAY,EAACR,IAAIX,YAAY,EAAEkB,WAAU;gBAC7J;gBACAV,KAAKY,IAAI,CAACR;YACd;YACAN,YAAYc,IAAI,CAACZ;QACrB;QACA,OAAOF;IACX,gGAAgG;IAChG,4FAA4F;IAC5F,yFAAyF;IACzF,oEAAoE;IACpE,uDAAuD;IACvD,GAAG;QACChB;KACH;IACD,OAAOG;AACX"}
@@ -82,8 +82,8 @@ const CalendarMonth = (props)=>{
82
82
  onNavigateDate((0, _utils.addYears)(navigatedDate, -1), false);
83
83
  };
84
84
  const onSelectMonth = (newMonth)=>{
85
- var _onUserHeaderSelect;
86
- (_onUserHeaderSelect = onUserHeaderSelect) === null || _onUserHeaderSelect === void 0 ? void 0 : _onUserHeaderSelect();
85
+ // If header is clickable the calendars are overlayed, switch back to day picker when month is clicked
86
+ onUserHeaderSelect === null || onUserHeaderSelect === void 0 ? void 0 : onUserHeaderSelect();
87
87
  onNavigateDate((0, _utils.setMonth)(navigatedDate, newMonth), true);
88
88
  };
89
89
  const onHeaderSelect = ()=>{
@@ -91,8 +91,7 @@ const CalendarMonth = (props)=>{
91
91
  focusOnNextUpdate();
92
92
  setIsYearPickerVisible(true);
93
93
  } else {
94
- var _onUserHeaderSelect;
95
- (_onUserHeaderSelect = onUserHeaderSelect) === null || _onUserHeaderSelect === void 0 ? void 0 : _onUserHeaderSelect();
94
+ onUserHeaderSelect === null || onUserHeaderSelect === void 0 ? void 0 : onUserHeaderSelect();
96
95
  }
97
96
  };
98
97
  const onSelectYear = (selectedYear)=>{
@@ -1 +1 @@
1
- {"version":3,"sources":["CalendarMonth.js"],"sourcesContent":["import * as React from 'react';\nimport { Enter } from '@fluentui/keyboard-keys';\nimport { ArrowDownRegular, ArrowUpRegular } from '@fluentui/react-icons';\nimport { useFluent_unstable } from '@fluentui/react-shared-contexts';\nimport { useArrowNavigationGroup } from '@fluentui/react-tabster';\nimport { mergeClasses } from '@griffel/react';\nimport { addYears, compareDatePart, getMonthEnd, getMonthStart, getYearEnd, getYearStart, setMonth, DEFAULT_DATE_FORMATTING } from '../../utils';\nimport { CalendarYear } from '../CalendarYear/CalendarYear';\nimport { useCalendarMonthStyles_unstable } from './useCalendarMonthStyles';\nconst MONTHS_PER_ROW = 4;\nfunction useAnimateBackwards({ navigatedDate }) {\n const currentYear = navigatedDate.getFullYear();\n const previousYearRef = React.useRef();\n React.useEffect(()=>{\n previousYearRef.current = currentYear;\n });\n const previousYear = previousYearRef.current;\n if (previousYear === undefined || previousYear === currentYear) {\n return undefined;\n } else {\n return previousYear > currentYear;\n }\n}\nfunction useFocusLogic({ componentRef }) {\n const navigatedMonthRef = React.useRef(null);\n const calendarYearRef = React.useRef(null);\n const focusOnUpdate = React.useRef(false);\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 React.useImperativeHandle(componentRef, ()=>({\n focus\n }), [\n focus\n ]);\n React.useEffect(()=>{\n if (focusOnUpdate.current) {\n focus();\n focusOnUpdate.current = false;\n }\n });\n const focusOnNextUpdate = ()=>{\n focusOnUpdate.current = true;\n };\n return [\n navigatedMonthRef,\n calendarYearRef,\n focusOnNextUpdate\n ];\n}\n/**\n * @internal\n */ export const CalendarMonth = (props)=>{\n const { allFocusable, animationDirection, className, componentRef, dateTimeFormatter = DEFAULT_DATE_FORMATTING, highlightCurrentMonth, highlightSelectedMonth, maxDate, minDate, navigatedDate, onHeaderSelect: onUserHeaderSelect, onNavigateDate, selectedDate, strings, today = new Date(), yearPickerHidden = false } = props;\n const [navigatedMonthRef, calendarYearRef, focusOnNextUpdate] = useFocusLogic({\n componentRef\n });\n const [isYearPickerVisible, setIsYearPickerVisible] = React.useState(false);\n const animateBackwards = useAnimateBackwards({\n navigatedDate\n });\n const selectMonthCallback = (newMonth)=>{\n return ()=>onSelectMonth(newMonth);\n };\n const onSelectNextYear = ()=>{\n onNavigateDate(addYears(navigatedDate, 1), false);\n };\n const onSelectPrevYear = ()=>{\n onNavigateDate(addYears(navigatedDate, -1), false);\n };\n const onSelectMonth = (newMonth)=>{\n var // If header is clickable the calendars are overlayed, switch back to day picker when month is clicked\n _onUserHeaderSelect;\n (_onUserHeaderSelect = onUserHeaderSelect) === null || _onUserHeaderSelect === void 0 ? void 0 : _onUserHeaderSelect();\n onNavigateDate(setMonth(navigatedDate, newMonth), true);\n };\n const onHeaderSelect = ()=>{\n if (!yearPickerHidden) {\n focusOnNextUpdate();\n setIsYearPickerVisible(true);\n } else {\n var _onUserHeaderSelect;\n (_onUserHeaderSelect = onUserHeaderSelect) === null || _onUserHeaderSelect === void 0 ? void 0 : _onUserHeaderSelect();\n }\n };\n const onSelectYear = (selectedYear)=>{\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 const onYearPickerHeaderSelect = (focus)=>{\n focusOnNextUpdate();\n setIsYearPickerVisible(false);\n };\n const dateFormatter = dateTimeFormatter;\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 const classNames = useCalendarMonthStyles_unstable({\n className,\n hasHeaderClickCallback: !!onUserHeaderSelect || !yearPickerHidden,\n highlightCurrent: highlightCurrentMonth,\n highlightSelected: highlightSelectedMonth,\n animateBackwards,\n animationDirection\n });\n const { dir } = useFluent_unstable();\n const arrowNavigationAttributes = useArrowNavigationGroup({\n axis: 'both'\n });\n if (isYearPickerVisible) {\n const [onRenderYear, yearStrings] = getYearStrings({\n dateTimeFormatter,\n navigatedDate,\n strings\n });\n // use navigated date for the year picker\n return /*#__PURE__*/ React.createElement(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: selectedDate ? selectedDate.getFullYear() : navigatedDate ? navigatedDate.getFullYear() : undefined,\n navigatedYear: navigatedDate.getFullYear(),\n onRenderYear: onRenderYear,\n strings: yearStrings,\n componentRef: calendarYearRef,\n highlightCurrentYear: highlightCurrentMonth,\n highlightSelectedYear: highlightSelectedMonth,\n animationDirection: animationDirection\n });\n }\n const rowIndexes = [];\n for(let i = 0; i < strings.shortMonths.length / MONTHS_PER_ROW; i++){\n rowIndexes.push(i);\n }\n const yearString = dateFormatter.formatYear(navigatedDate);\n const headerAriaLabel = strings.monthPickerHeaderAriaLabel ? strings.monthPickerHeaderAriaLabel.replace('{0}', yearString) : yearString;\n return /*#__PURE__*/ React.createElement(\"div\", {\n className: classNames.root\n }, /*#__PURE__*/ React.createElement(\"div\", {\n className: classNames.headerContainer\n }, /*#__PURE__*/ React.createElement(\"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 }, /*#__PURE__*/ React.createElement(\"span\", {\n \"aria-live\": \"polite\",\n \"aria-atomic\": \"true\"\n }, yearString)), /*#__PURE__*/ React.createElement(\"div\", {\n className: classNames.navigationButtonsContainer\n }, /*#__PURE__*/ React.createElement(\"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: strings.prevYearAriaLabel ? strings.prevYearAriaLabel + ' ' + dateFormatter.formatYear(addYears(navigatedDate, -1)) : undefined,\n type: \"button\"\n }, dir === 'ltr' ? /*#__PURE__*/ React.createElement(ArrowUpRegular, null) : /*#__PURE__*/ React.createElement(ArrowDownRegular, null)), /*#__PURE__*/ React.createElement(\"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: strings.nextYearAriaLabel ? strings.nextYearAriaLabel + ' ' + dateFormatter.formatYear(addYears(navigatedDate, 1)) : undefined,\n type: \"button\"\n }, dir === 'ltr' ? /*#__PURE__*/ React.createElement(ArrowDownRegular, null) : /*#__PURE__*/ React.createElement(ArrowUpRegular, null)))), /*#__PURE__*/ React.createElement(\"div\", {\n ...arrowNavigationAttributes,\n className: classNames.gridContainer,\n role: \"grid\",\n \"aria-label\": yearString\n }, rowIndexes.map((rowNum)=>{\n const monthsForRow = strings.shortMonths.slice(rowNum * MONTHS_PER_ROW, (rowNum + 1) * MONTHS_PER_ROW);\n return /*#__PURE__*/ React.createElement(\"div\", {\n key: 'monthRow_' + rowNum + navigatedDate.getFullYear(),\n role: \"row\",\n className: classNames.buttonRow\n }, monthsForRow.map((month, index)=>{\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 = (minDate ? compareDatePart(minDate, getMonthEnd(indexedMonth)) < 1 : true) && (maxDate ? compareDatePart(getMonthStart(indexedMonth), maxDate) < 1 : true);\n return /*#__PURE__*/ React.createElement(\"button\", {\n ref: isNavigatedMonth ? navigatedMonthRef : undefined,\n role: 'gridcell',\n className: mergeClasses(classNames.itemButton, highlightCurrentMonth && isCurrentMonth(monthIndex, navigatedDate.getFullYear(), today) && classNames.current, highlightSelectedMonth && isSelectedMonth && isSelectedYear && classNames.selected, !isInBounds && classNames.disabled),\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 }, month);\n }));\n })));\n};\nCalendarMonth.displayName = 'CalendarMonth';\nfunction getYearStrings({ dateTimeFormatter, navigatedDate, strings }) {\n const yearToString = (year)=>{\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 const yearRangeToString = (yearRange)=>{\n return `${yearToString(yearRange.fromYear)} - ${yearToString(yearRange.toYear)}`;\n };\n const yearRangeToNextDecadeLabel = (yearRange)=>{\n return strings.nextYearRangeAriaLabel ? `${strings.nextYearRangeAriaLabel} ${yearRangeToString(yearRange)}` : '';\n };\n const yearRangeToPrevDecadeLabel = (yearRange)=>{\n return strings.prevYearRangeAriaLabel ? `${strings.prevYearRangeAriaLabel} ${yearRangeToString(yearRange)}` : '';\n };\n return [\n yearToString,\n {\n rangeAriaLabel: yearRangeToString,\n prevRangeAriaLabel: yearRangeToPrevDecadeLabel,\n nextRangeAriaLabel: yearRangeToNextDecadeLabel,\n headerAriaLabelFormatString: strings.yearPickerHeaderAriaLabel\n }\n ];\n}\nfunction isCurrentMonth(month, year, today) {\n return today.getFullYear() === year && today.getMonth() === month;\n}\nfunction onButtonKeyDown(callback) {\n return (ev)=>{\n switch(ev.key){\n case Enter:\n callback();\n break;\n }\n };\n}\n"],"names":["CalendarMonth","MONTHS_PER_ROW","useAnimateBackwards","navigatedDate","currentYear","getFullYear","previousYearRef","React","useRef","useEffect","current","previousYear","undefined","useFocusLogic","componentRef","navigatedMonthRef","calendarYearRef","focusOnUpdate","focus","useCallback","useImperativeHandle","focusOnNextUpdate","props","allFocusable","animationDirection","className","dateTimeFormatter","DEFAULT_DATE_FORMATTING","highlightCurrentMonth","highlightSelectedMonth","maxDate","minDate","onHeaderSelect","onUserHeaderSelect","onNavigateDate","selectedDate","strings","today","Date","yearPickerHidden","isYearPickerVisible","setIsYearPickerVisible","useState","animateBackwards","selectMonthCallback","newMonth","onSelectMonth","onSelectNextYear","addYears","onSelectPrevYear","_onUserHeaderSelect","setMonth","onSelectYear","selectedYear","navYear","newNavigationDate","getTime","setFullYear","getMonth","onYearPickerHeaderSelect","dateFormatter","isPrevYearInBounds","compareDatePart","getYearStart","isNextYearInBounds","getYearEnd","classNames","useCalendarMonthStyles_unstable","hasHeaderClickCallback","highlightCurrent","highlightSelected","dir","useFluent_unstable","arrowNavigationAttributes","useArrowNavigationGroup","axis","onRenderYear","yearStrings","getYearStrings","createElement","CalendarYear","key","minYear","maxYear","navigatedYear","highlightCurrentYear","highlightSelectedYear","rowIndexes","i","shortMonths","length","push","yearString","formatYear","headerAriaLabel","monthPickerHeaderAriaLabel","replace","root","headerContainer","currentItemButton","onClick","onKeyDown","onButtonKeyDown","tabIndex","type","navigationButtonsContainer","mergeClasses","navigationButton","disabled","title","prevYearAriaLabel","ArrowUpRegular","ArrowDownRegular","nextYearAriaLabel","gridContainer","role","map","rowNum","monthsForRow","slice","buttonRow","month","index","monthIndex","indexedMonth","isNavigatedMonth","isSelectedMonth","isSelectedYear","isInBounds","getMonthEnd","getMonthStart","ref","itemButton","isCurrentMonth","selected","formatMonth","displayName","yearToString","year","yearFormattingDate","String","yearRangeToString","yearRange","fromYear","toYear","yearRangeToNextDecadeLabel","nextYearRangeAriaLabel","yearRangeToPrevDecadeLabel","prevYearRangeAriaLabel","rangeAriaLabel","prevRangeAriaLabel","nextRangeAriaLabel","headerAriaLabelFormatString","yearPickerHeaderAriaLabel","callback","ev","Enter"],"mappings":"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"}
1
+ {"version":3,"sources":["CalendarMonth.js"],"sourcesContent":["import * as React from 'react';\nimport { Enter } from '@fluentui/keyboard-keys';\nimport { ArrowDownRegular, ArrowUpRegular } from '@fluentui/react-icons';\nimport { useFluent_unstable } from '@fluentui/react-shared-contexts';\nimport { useArrowNavigationGroup } from '@fluentui/react-tabster';\nimport { mergeClasses } from '@griffel/react';\nimport { addYears, compareDatePart, getMonthEnd, getMonthStart, getYearEnd, getYearStart, setMonth, DEFAULT_DATE_FORMATTING } from '../../utils';\nimport { CalendarYear } from '../CalendarYear/CalendarYear';\nimport { useCalendarMonthStyles_unstable } from './useCalendarMonthStyles';\nconst MONTHS_PER_ROW = 4;\nfunction useAnimateBackwards({ navigatedDate }) {\n const currentYear = navigatedDate.getFullYear();\n const previousYearRef = React.useRef();\n React.useEffect(()=>{\n previousYearRef.current = currentYear;\n });\n const previousYear = previousYearRef.current;\n if (previousYear === undefined || previousYear === currentYear) {\n return undefined;\n } else {\n return previousYear > currentYear;\n }\n}\nfunction useFocusLogic({ componentRef }) {\n const navigatedMonthRef = React.useRef(null);\n const calendarYearRef = React.useRef(null);\n const focusOnUpdate = React.useRef(false);\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 React.useImperativeHandle(componentRef, ()=>({\n focus\n }), [\n focus\n ]);\n React.useEffect(()=>{\n if (focusOnUpdate.current) {\n focus();\n focusOnUpdate.current = false;\n }\n });\n const focusOnNextUpdate = ()=>{\n focusOnUpdate.current = true;\n };\n return [\n navigatedMonthRef,\n calendarYearRef,\n focusOnNextUpdate\n ];\n}\n/**\n * @internal\n */ export const CalendarMonth = (props)=>{\n const { allFocusable, animationDirection, className, componentRef, dateTimeFormatter = DEFAULT_DATE_FORMATTING, highlightCurrentMonth, highlightSelectedMonth, maxDate, minDate, navigatedDate, onHeaderSelect: onUserHeaderSelect, onNavigateDate, selectedDate, strings, today = new Date(), yearPickerHidden = false } = props;\n const [navigatedMonthRef, calendarYearRef, focusOnNextUpdate] = useFocusLogic({\n componentRef\n });\n const [isYearPickerVisible, setIsYearPickerVisible] = React.useState(false);\n const animateBackwards = useAnimateBackwards({\n navigatedDate\n });\n const selectMonthCallback = (newMonth)=>{\n return ()=>onSelectMonth(newMonth);\n };\n const onSelectNextYear = ()=>{\n onNavigateDate(addYears(navigatedDate, 1), false);\n };\n const onSelectPrevYear = ()=>{\n onNavigateDate(addYears(navigatedDate, -1), false);\n };\n const onSelectMonth = (newMonth)=>{\n // If header is clickable the calendars are overlayed, switch back to day picker when month is clicked\n onUserHeaderSelect === null || onUserHeaderSelect === void 0 ? void 0 : onUserHeaderSelect();\n onNavigateDate(setMonth(navigatedDate, newMonth), true);\n };\n const onHeaderSelect = ()=>{\n if (!yearPickerHidden) {\n focusOnNextUpdate();\n setIsYearPickerVisible(true);\n } else {\n onUserHeaderSelect === null || onUserHeaderSelect === void 0 ? void 0 : onUserHeaderSelect();\n }\n };\n const onSelectYear = (selectedYear)=>{\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 const onYearPickerHeaderSelect = (focus)=>{\n focusOnNextUpdate();\n setIsYearPickerVisible(false);\n };\n const dateFormatter = dateTimeFormatter;\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 const classNames = useCalendarMonthStyles_unstable({\n className,\n hasHeaderClickCallback: !!onUserHeaderSelect || !yearPickerHidden,\n highlightCurrent: highlightCurrentMonth,\n highlightSelected: highlightSelectedMonth,\n animateBackwards,\n animationDirection\n });\n const { dir } = useFluent_unstable();\n const arrowNavigationAttributes = useArrowNavigationGroup({\n axis: 'both'\n });\n if (isYearPickerVisible) {\n const [onRenderYear, yearStrings] = getYearStrings({\n dateTimeFormatter,\n navigatedDate,\n strings\n });\n // use navigated date for the year picker\n return /*#__PURE__*/ React.createElement(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: selectedDate ? selectedDate.getFullYear() : navigatedDate ? navigatedDate.getFullYear() : undefined,\n navigatedYear: navigatedDate.getFullYear(),\n onRenderYear: onRenderYear,\n strings: yearStrings,\n componentRef: calendarYearRef,\n highlightCurrentYear: highlightCurrentMonth,\n highlightSelectedYear: highlightSelectedMonth,\n animationDirection: animationDirection\n });\n }\n const rowIndexes = [];\n for(let i = 0; i < strings.shortMonths.length / MONTHS_PER_ROW; i++){\n rowIndexes.push(i);\n }\n const yearString = dateFormatter.formatYear(navigatedDate);\n const headerAriaLabel = strings.monthPickerHeaderAriaLabel ? strings.monthPickerHeaderAriaLabel.replace('{0}', yearString) : yearString;\n return /*#__PURE__*/ React.createElement(\"div\", {\n className: classNames.root\n }, /*#__PURE__*/ React.createElement(\"div\", {\n className: classNames.headerContainer\n }, /*#__PURE__*/ React.createElement(\"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 }, /*#__PURE__*/ React.createElement(\"span\", {\n \"aria-live\": \"polite\",\n \"aria-atomic\": \"true\"\n }, yearString)), /*#__PURE__*/ React.createElement(\"div\", {\n className: classNames.navigationButtonsContainer\n }, /*#__PURE__*/ React.createElement(\"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: strings.prevYearAriaLabel ? strings.prevYearAriaLabel + ' ' + dateFormatter.formatYear(addYears(navigatedDate, -1)) : undefined,\n type: \"button\"\n }, dir === 'ltr' ? /*#__PURE__*/ React.createElement(ArrowUpRegular, null) : /*#__PURE__*/ React.createElement(ArrowDownRegular, null)), /*#__PURE__*/ React.createElement(\"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: strings.nextYearAriaLabel ? strings.nextYearAriaLabel + ' ' + dateFormatter.formatYear(addYears(navigatedDate, 1)) : undefined,\n type: \"button\"\n }, dir === 'ltr' ? /*#__PURE__*/ React.createElement(ArrowDownRegular, null) : /*#__PURE__*/ React.createElement(ArrowUpRegular, null)))), /*#__PURE__*/ React.createElement(\"div\", {\n ...arrowNavigationAttributes,\n className: classNames.gridContainer,\n role: \"grid\",\n \"aria-label\": yearString\n }, rowIndexes.map((rowNum)=>{\n const monthsForRow = strings.shortMonths.slice(rowNum * MONTHS_PER_ROW, (rowNum + 1) * MONTHS_PER_ROW);\n return /*#__PURE__*/ React.createElement(\"div\", {\n key: 'monthRow_' + rowNum + navigatedDate.getFullYear(),\n role: \"row\",\n className: classNames.buttonRow\n }, monthsForRow.map((month, index)=>{\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 = (minDate ? compareDatePart(minDate, getMonthEnd(indexedMonth)) < 1 : true) && (maxDate ? compareDatePart(getMonthStart(indexedMonth), maxDate) < 1 : true);\n return /*#__PURE__*/ React.createElement(\"button\", {\n ref: isNavigatedMonth ? navigatedMonthRef : undefined,\n role: 'gridcell',\n className: mergeClasses(classNames.itemButton, highlightCurrentMonth && isCurrentMonth(monthIndex, navigatedDate.getFullYear(), today) && classNames.current, highlightSelectedMonth && isSelectedMonth && isSelectedYear && classNames.selected, !isInBounds && classNames.disabled),\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 }, month);\n }));\n })));\n};\nCalendarMonth.displayName = 'CalendarMonth';\nfunction getYearStrings({ dateTimeFormatter, navigatedDate, strings }) {\n const yearToString = (year)=>{\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 const yearRangeToString = (yearRange)=>{\n return `${yearToString(yearRange.fromYear)} - ${yearToString(yearRange.toYear)}`;\n };\n const yearRangeToNextDecadeLabel = (yearRange)=>{\n return strings.nextYearRangeAriaLabel ? `${strings.nextYearRangeAriaLabel} ${yearRangeToString(yearRange)}` : '';\n };\n const yearRangeToPrevDecadeLabel = (yearRange)=>{\n return strings.prevYearRangeAriaLabel ? `${strings.prevYearRangeAriaLabel} ${yearRangeToString(yearRange)}` : '';\n };\n return [\n yearToString,\n {\n rangeAriaLabel: yearRangeToString,\n prevRangeAriaLabel: yearRangeToPrevDecadeLabel,\n nextRangeAriaLabel: yearRangeToNextDecadeLabel,\n headerAriaLabelFormatString: strings.yearPickerHeaderAriaLabel\n }\n ];\n}\nfunction isCurrentMonth(month, year, today) {\n return today.getFullYear() === year && today.getMonth() === month;\n}\nfunction onButtonKeyDown(callback) {\n return (ev)=>{\n switch(ev.key){\n case Enter:\n callback();\n break;\n }\n };\n}\n"],"names":["CalendarMonth","MONTHS_PER_ROW","useAnimateBackwards","navigatedDate","currentYear","getFullYear","previousYearRef","React","useRef","useEffect","current","previousYear","undefined","useFocusLogic","componentRef","navigatedMonthRef","calendarYearRef","focusOnUpdate","focus","useCallback","useImperativeHandle","focusOnNextUpdate","props","allFocusable","animationDirection","className","dateTimeFormatter","DEFAULT_DATE_FORMATTING","highlightCurrentMonth","highlightSelectedMonth","maxDate","minDate","onHeaderSelect","onUserHeaderSelect","onNavigateDate","selectedDate","strings","today","Date","yearPickerHidden","isYearPickerVisible","setIsYearPickerVisible","useState","animateBackwards","selectMonthCallback","newMonth","onSelectMonth","onSelectNextYear","addYears","onSelectPrevYear","setMonth","onSelectYear","selectedYear","navYear","newNavigationDate","getTime","setFullYear","getMonth","onYearPickerHeaderSelect","dateFormatter","isPrevYearInBounds","compareDatePart","getYearStart","isNextYearInBounds","getYearEnd","classNames","useCalendarMonthStyles_unstable","hasHeaderClickCallback","highlightCurrent","highlightSelected","dir","useFluent_unstable","arrowNavigationAttributes","useArrowNavigationGroup","axis","onRenderYear","yearStrings","getYearStrings","createElement","CalendarYear","key","minYear","maxYear","navigatedYear","highlightCurrentYear","highlightSelectedYear","rowIndexes","i","shortMonths","length","push","yearString","formatYear","headerAriaLabel","monthPickerHeaderAriaLabel","replace","root","headerContainer","currentItemButton","onClick","onKeyDown","onButtonKeyDown","tabIndex","type","navigationButtonsContainer","mergeClasses","navigationButton","disabled","title","prevYearAriaLabel","ArrowUpRegular","ArrowDownRegular","nextYearAriaLabel","gridContainer","role","map","rowNum","monthsForRow","slice","buttonRow","month","index","monthIndex","indexedMonth","isNavigatedMonth","isSelectedMonth","isSelectedYear","isInBounds","getMonthEnd","getMonthStart","ref","itemButton","isCurrentMonth","selected","formatMonth","displayName","yearToString","year","yearFormattingDate","String","yearRangeToString","yearRange","fromYear","toYear","yearRangeToNextDecadeLabel","nextYearRangeAriaLabel","yearRangeToPrevDecadeLabel","prevYearRangeAriaLabel","rangeAriaLabel","prevRangeAriaLabel","nextRangeAriaLabel","headerAriaLabelFormatString","yearPickerHeaderAriaLabel","callback","ev","Enter"],"mappings":"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"}
@@ -23,7 +23,6 @@ const DefaultCalendarYearStrings = {
23
23
  nextRangeAriaLabel: undefined
24
24
  };
25
25
  const CalendarYearGridCell = (props)=>{
26
- var _onRenderYear;
27
26
  const { className, highlightCurrentYear, highlightSelectedYear, year, selected, disabled, componentRef, onSelectYear, onRenderYear } = props;
28
27
  const buttonRef = _react.useRef(null);
29
28
  _react.useImperativeHandle(componentRef, ()=>({
@@ -33,13 +32,11 @@ const CalendarYearGridCell = (props)=>{
33
32
  }
34
33
  }), []);
35
34
  const onClick = ()=>{
36
- var _onSelectYear;
37
- (_onSelectYear = onSelectYear) === null || _onSelectYear === void 0 ? void 0 : _onSelectYear(year);
35
+ onSelectYear === null || onSelectYear === void 0 ? void 0 : onSelectYear(year);
38
36
  };
39
37
  const onKeyDown = (ev)=>{
40
38
  if (ev.key === _keyboardkeys.Enter) {
41
- var _onSelectYear;
42
- (_onSelectYear = onSelectYear) === null || _onSelectYear === void 0 ? void 0 : _onSelectYear(year);
39
+ onSelectYear === null || onSelectYear === void 0 ? void 0 : onSelectYear(year);
43
40
  }
44
41
  };
45
42
  const classNames = (0, _useCalendarYearStylesstyles.useCalendarYearStyles_unstable)({
@@ -47,7 +44,7 @@ const CalendarYearGridCell = (props)=>{
47
44
  highlightCurrent: highlightCurrentYear,
48
45
  highlightSelected: highlightSelectedYear
49
46
  });
50
- var _onRenderYear1;
47
+ var _onRenderYear;
51
48
  return /*#__PURE__*/ _react.createElement("button", {
52
49
  className: (0, _react1.mergeClasses)(classNames.itemButton, selected && classNames.selected, disabled && classNames.disabled),
53
50
  type: "button",
@@ -57,7 +54,7 @@ const CalendarYearGridCell = (props)=>{
57
54
  disabled: disabled,
58
55
  "aria-selected": selected,
59
56
  ref: buttonRef
60
- }, (_onRenderYear1 = (_onRenderYear = onRenderYear) === null || _onRenderYear === void 0 ? void 0 : _onRenderYear(year)) !== null && _onRenderYear1 !== void 0 ? _onRenderYear1 : year);
57
+ }, (_onRenderYear = onRenderYear === null || onRenderYear === void 0 ? void 0 : onRenderYear(year)) !== null && _onRenderYear !== void 0 ? _onRenderYear : year);
61
58
  };
62
59
  CalendarYearGridCell.displayName = 'CalendarYearGridCell';
63
60
  const CalendarYearGrid = (props)=>{
@@ -91,9 +88,9 @@ const CalendarYearGrid = (props)=>{
91
88
  animationDirection
92
89
  });
93
90
  const onRenderYear = (value)=>{
94
- var _props_onRenderYear, _props;
91
+ var _props_onRenderYear;
95
92
  var _props_onRenderYear1;
96
- return (_props_onRenderYear1 = (_props_onRenderYear = (_props = props).onRenderYear) === null || _props_onRenderYear === void 0 ? void 0 : _props_onRenderYear.call(_props, value)) !== null && _props_onRenderYear1 !== void 0 ? _props_onRenderYear1 : value;
93
+ return (_props_onRenderYear1 = (_props_onRenderYear = props.onRenderYear) === null || _props_onRenderYear === void 0 ? void 0 : _props_onRenderYear.call(props, value)) !== null && _props_onRenderYear1 !== void 0 ? _props_onRenderYear1 : value;
97
94
  };
98
95
  const gridAriaLabel = `${onRenderYear(fromYear)} - ${onRenderYear(toYear)}`;
99
96
  let year = fromYear;
@@ -139,8 +136,7 @@ const CalendarYearNavArrow = (props)=>{
139
136
  const ariaLabelString = ariaLabel ? typeof ariaLabel === 'string' ? ariaLabel : ariaLabel(newRange) : undefined;
140
137
  const disabled = direction === CalendarYearNavDirection.Previous ? minYear !== undefined && fromYear < minYear : maxYear !== undefined && props.fromYear + CELL_COUNT > maxYear;
141
138
  const onNavigate = ()=>{
142
- var _onSelectPrev, _onSelectNext;
143
- direction === CalendarYearNavDirection.Previous ? (_onSelectPrev = onSelectPrev) === null || _onSelectPrev === void 0 ? void 0 : _onSelectPrev() : (_onSelectNext = onSelectNext) === null || _onSelectNext === void 0 ? void 0 : _onSelectNext();
139
+ direction === CalendarYearNavDirection.Previous ? onSelectPrev === null || onSelectPrev === void 0 ? void 0 : onSelectPrev() : onSelectNext === null || onSelectNext === void 0 ? void 0 : onSelectNext();
144
140
  };
145
141
  const onKeyDown = (ev)=>{
146
142
  if (ev.key === _keyboardkeys.Enter) {
@@ -179,8 +175,8 @@ CalendarYearNav.displayName = 'CalendarYearNav';
179
175
  const CalendarYearTitle = (props)=>{
180
176
  const { className, fromYear, toYear, strings = DefaultCalendarYearStrings, animateBackwards, animationDirection } = props;
181
177
  const onHeaderSelect = ()=>{
182
- var _props_onHeaderSelect, _props;
183
- (_props_onHeaderSelect = (_props = props).onHeaderSelect) === null || _props_onHeaderSelect === void 0 ? void 0 : _props_onHeaderSelect.call(_props, true);
178
+ var _props_onHeaderSelect;
179
+ (_props_onHeaderSelect = props.onHeaderSelect) === null || _props_onHeaderSelect === void 0 ? void 0 : _props_onHeaderSelect.call(props, true);
184
180
  };
185
181
  const onHeaderKeyDown = (ev)=>{
186
182
  if (ev.key === _keyboardkeys.Enter || ev.key === _keyboardkeys.Space) {
@@ -188,9 +184,9 @@ const CalendarYearTitle = (props)=>{
188
184
  }
189
185
  };
190
186
  const onRenderYear = (year)=>{
191
- var _props_onRenderYear, _props;
187
+ var _props_onRenderYear;
192
188
  var _props_onRenderYear1;
193
- return (_props_onRenderYear1 = (_props_onRenderYear = (_props = props).onRenderYear) === null || _props_onRenderYear === void 0 ? void 0 : _props_onRenderYear.call(_props, year)) !== null && _props_onRenderYear1 !== void 0 ? _props_onRenderYear1 : year;
189
+ return (_props_onRenderYear1 = (_props_onRenderYear = props.onRenderYear) === null || _props_onRenderYear === void 0 ? void 0 : _props_onRenderYear.call(props, year)) !== null && _props_onRenderYear1 !== void 0 ? _props_onRenderYear1 : year;
194
190
  };
195
191
  const classNames = (0, _useCalendarYearStylesstyles.useCalendarYearStyles_unstable)({
196
192
  className,
@@ -221,7 +217,6 @@ const CalendarYearTitle = (props)=>{
221
217
  };
222
218
  CalendarYearTitle.displayName = 'CalendarYearTitle';
223
219
  const CalendarYearHeader = (props)=>{
224
- var _onRenderTitle;
225
220
  const { className, animateBackwards, animationDirection, onRenderTitle } = props;
226
221
  const classNames = (0, _useCalendarYearStylesstyles.useCalendarYearStyles_unstable)({
227
222
  className,
@@ -229,10 +224,10 @@ const CalendarYearHeader = (props)=>{
229
224
  animateBackwards,
230
225
  animationDirection
231
226
  });
232
- var _onRenderTitle1;
227
+ var _onRenderTitle;
233
228
  return /*#__PURE__*/ _react.createElement("div", {
234
229
  className: classNames.headerContainer
235
- }, (_onRenderTitle1 = (_onRenderTitle = onRenderTitle) === null || _onRenderTitle === void 0 ? void 0 : _onRenderTitle(props)) !== null && _onRenderTitle1 !== void 0 ? _onRenderTitle1 : /*#__PURE__*/ _react.createElement(CalendarYearTitle, props), /*#__PURE__*/ _react.createElement(CalendarYearNav, props));
230
+ }, (_onRenderTitle = onRenderTitle === null || onRenderTitle === void 0 ? void 0 : onRenderTitle(props)) !== null && _onRenderTitle !== void 0 ? _onRenderTitle : /*#__PURE__*/ _react.createElement(CalendarYearTitle, props), /*#__PURE__*/ _react.createElement(CalendarYearNav, props));
236
231
  };
237
232
  CalendarYearHeader.displayName = 'CalendarYearHeader';
238
233
  function useAnimateBackwards({ selectedYear, navigatedYear }) {