@fluentui/react-datepicker-compat 0.3.13 → 0.3.16
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 +220 -1
- package/CHANGELOG.md +58 -2
- package/lib/components/Calendar/Calendar.js +2 -4
- package/lib/components/Calendar/Calendar.js.map +1 -1
- package/lib/components/CalendarDay/CalendarDay.js +1 -2
- package/lib/components/CalendarDay/CalendarDay.js.map +1 -1
- package/lib/components/CalendarDayGrid/CalendarDayGrid.js +3 -3
- package/lib/components/CalendarDayGrid/CalendarDayGrid.js.map +1 -1
- package/lib/components/CalendarDayGrid/CalendarGridDayCell.js +3 -6
- package/lib/components/CalendarDayGrid/CalendarGridDayCell.js.map +1 -1
- package/lib/components/CalendarDayGrid/useWeeks.js +3 -4
- package/lib/components/CalendarDayGrid/useWeeks.js.map +1 -1
- package/lib/components/CalendarMonth/CalendarMonth.js +3 -5
- package/lib/components/CalendarMonth/CalendarMonth.js.map +1 -1
- package/lib/components/CalendarYear/CalendarYear.js +13 -18
- package/lib/components/CalendarYear/CalendarYear.js.map +1 -1
- package/lib/components/DatePicker/useDatePicker.js +7 -12
- package/lib/components/DatePicker/useDatePicker.js.map +1 -1
- package/lib/utils/dateGrid/getDayGrid.js +1 -2
- package/lib/utils/dateGrid/getDayGrid.js.map +1 -1
- package/lib-commonjs/components/Calendar/Calendar.js +2 -4
- package/lib-commonjs/components/Calendar/Calendar.js.map +1 -1
- package/lib-commonjs/components/CalendarDay/CalendarDay.js +1 -2
- package/lib-commonjs/components/CalendarDay/CalendarDay.js.map +1 -1
- package/lib-commonjs/components/CalendarDayGrid/CalendarDayGrid.js +3 -3
- package/lib-commonjs/components/CalendarDayGrid/CalendarDayGrid.js.map +1 -1
- package/lib-commonjs/components/CalendarDayGrid/CalendarGridDayCell.js +3 -6
- package/lib-commonjs/components/CalendarDayGrid/CalendarGridDayCell.js.map +1 -1
- package/lib-commonjs/components/CalendarDayGrid/useWeeks.js +3 -4
- package/lib-commonjs/components/CalendarDayGrid/useWeeks.js.map +1 -1
- package/lib-commonjs/components/CalendarMonth/CalendarMonth.js +3 -4
- package/lib-commonjs/components/CalendarMonth/CalendarMonth.js.map +1 -1
- package/lib-commonjs/components/CalendarYear/CalendarYear.js +13 -18
- package/lib-commonjs/components/CalendarYear/CalendarYear.js.map +1 -1
- package/lib-commonjs/components/DatePicker/useDatePicker.js +7 -12
- package/lib-commonjs/components/DatePicker/useDatePicker.js.map +1 -1
- package/lib-commonjs/utils/dateGrid/getDayGrid.js +1 -2
- package/lib-commonjs/utils/dateGrid/getDayGrid.js.map +1 -1
- package/package.json +13 -13
|
@@ -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":";;;;+BAUiBA;;;eAAAA;;;;iEAVM;8BAC0C;gCACnC;qCACK;wBACN;uBACqD;2CAC5C;gDACS;AAGpC,MAAMA,sBAAsB,CAACC;IACpC,MAAM,EAAEC,aAAa,EAAEC,iBAAiB,EAAEC,YAAY,EAAEC,OAAO,EAAEC,kBAAkB,EAAEC,eAAe,EAAEC,sBAAsB,EAAEC,KAAK,EAAEC,UAAU,EAAEC,GAAG,EAAEC,QAAQ,EAAEC,SAAS,EAAEC,WAAW,EAAEC,UAAU,EAAEC,gBAAgB,EAAEC,aAAa,EAAEC,qBAAqB,EAAEC,YAAY,EAAEC,eAAe,EAAEC,OAAO,EAAEC,OAAO,EAAEC,cAAc,EAAEC,uBAAuB,EAAEC,mBAAmB,EAAE,GAAGxB;IAC9W,IAAIyB;IACJ,MAAMC,cAAc,AAACD,CAAAA,gBAAgBZ,gBAAgB,QAAQA,gBAAgB,KAAK,IAAI,KAAK,IAAIA,WAAW,CAACD,YAAY,MAAMD,SAAS,AAAD,MAAO,QAAQc,kBAAkB,KAAK,IAAIA,gBAAgB;IAC/L,MAAME,kBAAkBC,IAAAA,mBAAY,EAAC3B,eAAeS,IAAImB,YAAY;IACpE,MAAM,EAAEC,GAAG,EAAE,GAAGC,IAAAA,uCAAkB;IAClC,MAAMC,oBAAoB,CAACC,IAAIC;QAC3B,IAAIC,aAAaC;QACjB,IAAIC,YAAY,GAAG,4BAA4B;QAC/C,IAAIJ,GAAGK,GAAG,KAAKC,qBAAO,EAAE;YACpBJ,aAAaK,IAAAA,eAAQ,EAACN,MAAM,CAAC;YAC7BG,YAAY,CAAC;QACjB,OAAO,IAAIJ,GAAGK,GAAG,KAAKG,uBAAS,EAAE;YAC7BN,aAAaK,IAAAA,eAAQ,EAACN,MAAM;QAChC,OAAO,IAAID,GAAGK,GAAG,KAAKI,IAAAA,6BAAa,EAACC,uBAAS,EAAEb,MAAM;YACjDK,aAAaS,IAAAA,cAAO,EAACV,MAAM,CAAC;YAC5BG,YAAY,CAAC;QACjB,OAAO,IAAIJ,GAAGK,GAAG,KAAKI,IAAAA,6BAAa,EAACG,wBAAU,EAAEf,MAAM;YAClDK,aAAaS,IAAAA,cAAO,EAACV,MAAM;QAC/B;QACA,IAAI,CAACC,YAAY;YACb,uDAAuD;YACvD;QACJ;QACA,MAAMW,2BAA2B;YAC7BC,aAAab;YACbC;YACAE;YACAlB;YACAC;YACAC;QACJ;QACA,gGAAgG;QAChG,yBAAyB;QACzB,IAAI2B,WAAWC,IAAAA,wBAAiB,EAACH;QACjC,IAAI,CAACE,UAAU;YACX,kEAAkE;YAClEF,yBAAyBT,SAAS,GAAG,CAACA;YACtCW,WAAWC,IAAAA,wBAAiB,EAACH;QACjC;QACA,4GAA4G;QAC5G,oCAAoC;QACpC,MAAMI,kBAAkB1C,SAASwC,YAAYxC,MAAM2C,KAAK,CAAC,GAAG3C,MAAM4C,MAAM,GAAG,GAAGC,IAAI,CAAC,CAACC;YAChF,OAAOA,KAAKD,IAAI,CAAC,CAACE;gBACd,OAAO3B,IAAAA,mBAAY,EAAC2B,aAAa1B,YAAY,EAAEmB;YACnD;QACJ;QACA,IAAIE,iBAAiB;YACjB;QACJ;QACA,kEAAkE;QAClE,IAAIF,UAAU;YACV1B,eAAe0B,UAAU;YACzBf,GAAGuB,cAAc;QACrB;IACJ;IACA,MAAMC,iBAAiB,CAACxB;QACpB,MAAMyB,WAAWnC,wBAAwBb;QACzC,MAAMiD,UAAUnC,oBAAoBkC;QACpCC,QAAQC,OAAO,CAAC,CAACC,QAAQC;YACrB,IAAID,QAAQ;gBACRA,OAAOE,SAAS,CAACC,GAAG,CAACC,8DAA8B,CAACC,UAAU;gBAC9D,IAAI,CAACR,QAAQ,CAACI,MAAM,CAACK,UAAU,IAAInD,kBAAkBoD,oBAAa,CAACC,GAAG,IAAIpD,yBAAyBA,wBAAwB,GAAG;oBAC1H,oDAAoD;oBACpD4C,OAAOE,SAAS,CAACO,MAAM,CAACC,gDAAqB,CAACC,oBAAoB,EAAED,gDAAqB,CAACE,qBAAqB,EAAEF,gDAAqB,CAACG,iBAAiB,EAAEH,gDAAqB,CAACI,kBAAkB;oBAClM,MAAMC,kBAAkBrE,uBAAuB,OAAO,OAAOuD,QAAQ,GAAGA,QAAQH,QAAQP,MAAM,GAAG,GAAGyB,IAAI;oBACxG,IAAID,iBAAiB;wBACjBf,OAAOE,SAAS,CAACC,GAAG,IAAIY;oBAC5B;gBACJ;YACJ;QACJ;IACJ;IACA,MAAME,iBAAiB,CAAC7C;QACpB,MAAMyB,WAAWnC,wBAAwBb;QACzC,MAAMiD,UAAUnC,oBAAoBkC;QACpCC,QAAQC,OAAO,CAAC,CAACC;YACb,IAAIA,QAAQ;gBACRA,OAAOE,SAAS,CAACC,GAAG,CAACC,8DAA8B,CAACc,YAAY;YACpE;QACJ;IACJ;IACA,MAAMC,eAAe,CAAC/C;QAClB,MAAMyB,WAAWnC,wBAAwBb;QACzC,MAAMiD,UAAUnC,oBAAoBkC;QACpCC,QAAQC,OAAO,CAAC,CAACC;YACb,IAAIA,QAAQ;gBACRA,OAAOE,SAAS,CAACO,MAAM,CAACL,8DAA8B,CAACc,YAAY;YACvE;QACJ;IACJ;IACA,MAAME,gBAAgB,CAAChD;QACnB,MAAMyB,WAAWnC,wBAAwBb;QACzC,MAAMiD,UAAUnC,oBAAoBkC;QACpCC,QAAQC,OAAO,CAAC,CAACC,QAAQC;YACrB,IAAID,QAAQ;gBACRA,OAAOE,SAAS,CAACO,MAAM,CAACL,8DAA8B,CAACC,UAAU;gBACjEL,OAAOE,SAAS,CAACO,MAAM,CAACL,8DAA8B,CAACc,YAAY;gBACnE,IAAI,CAACrB,QAAQ,CAACI,MAAM,CAACK,UAAU,IAAInD,kBAAkBoD,oBAAa,CAACC,GAAG,IAAIpD,yBAAyBA,wBAAwB,GAAG;oBAC1H,MAAM2D,kBAAkBrE,uBAAuB,OAAO,OAAOuD,QAAQ,GAAGA,QAAQH,QAAQP,MAAM,GAAG,GAAGyB,IAAI;oBACxG,IAAID,iBAAiB;wBACjBf,OAAOE,SAAS,CAACO,MAAM,IAAIM;oBAC/B;gBACJ;YACJ;QACJ;IACJ;IACA,MAAMM,eAAe,CAACjD;QAClB,IAAIA,GAAGK,GAAG,KAAK6C,mBAAK,EAAE;YAClBjE,iBAAiB,QAAQA,iBAAiB,KAAK,IAAI,KAAK,IAAIA,aAAaR,IAAImB,YAAY;QAC7F,OAAO;YACHG,kBAAkBC,IAAIvB,IAAImB,YAAY;QAC1C;IACJ;IACA,IAAIuD,YAAY1E,IAAImB,YAAY,CAACwD,OAAO,KAAK,OAAOjF,QAAQkF,MAAM,CAAC5E,IAAImB,YAAY,CAAC0D,QAAQ,GAAG,GAAG,OAAO7E,IAAImB,YAAY,CAAC2D,WAAW;IACrI,IAAI9E,IAAI+E,QAAQ,EAAE;QACdL,YAAYA,YAAY,OAAOhF,QAAQsF,kBAAkB;IAC7D;IACA,MAAMC,cAAc,CAAC7E,cAAeX,CAAAA,gBAAiBO,CAAAA,IAAIkF,UAAU,GAAG,OAAOxD,SAAQ,CAAC;IACtF,OAAO,WAAW,GAAGyD,OAAMC,aAAa,CAAC,MAAM;QAC3CC,WAAWC,IAAAA,oBAAY,EAACvF,WAAWwF,OAAO,EAAEpF,eAAea,aAAahB,IAAIyD,UAAU,IAAI1D,WAAWyF,WAAW,EAAE,CAACxF,IAAIkF,UAAU,IAAInF,WAAW0F,gBAAgB,EAAE,CAACzF,IAAI0F,SAAS,IAAI3F,WAAW4F,wBAAwB;QACvNC,KAAK,CAACC;YACFxF,qBAAqB,QAAQA,qBAAqB,KAAK,IAAI,KAAK,IAAIA,iBAAiBwF,SAAS7F,IAAImB,YAAY,EAAEpB;YAChHC,IAAI8F,MAAM,CAACD;YACX5E,mBAAoBrB,CAAAA,gBAAgBmG,OAAO,GAAGF,OAAM;QACxD;QACA,eAAezF;QACf,iBAAiB,CAACA,cAAc,CAACJ,IAAIkF,UAAU;QAC/Cc,SAAShG,IAAIkF,UAAU,IAAI,CAAC9E,aAAaJ,IAAIiG,UAAU,GAAGvE;QAC1DwE,aAAa,CAAC9F,aAAa2C,iBAAiBrB;QAC5CyE,aAAa,CAAC/F,aAAagE,iBAAiB1C;QAC5C0E,WAAW,CAAChG,aAAakE,eAAe5C;QACxC2E,YAAY,CAACjG,aAAamE,gBAAgB7C;QAC1C4E,WAAW,CAAClG,aAAaoE,eAAe9C;QACxC6E,MAAM;QACNC,UAAUvF,mBAAmBgE,cAAc,IAAIvD;QAC/C,gBAAgB1B,IAAIyG,OAAO,GAAG,SAAS/E;QACvC,iBAAiB1B,IAAIkF,UAAU,GAAGlF,IAAIyD,UAAU,GAAG/B;IACvD,GAAG,WAAW,GAAGyD,OAAMC,aAAa,CAAC,UAAU;QAC3CxD,KAAK5B,IAAI4B,GAAG,GAAG;QACf,eAAexB;QACfiF,WAAWC,IAAAA,oBAAY,EAACvF,WAAW2G,SAAS,EAAE1G,IAAIyG,OAAO,IAAI1G,WAAW4G,UAAU;QAClF,cAAcjC;QACdkC,IAAI3F,kBAAkBtB,qBAAqB+B;QAC3CmF,UAAU,CAACzG,cAAc,CAACJ,IAAIkF,UAAU;QACxC4B,MAAM;QACNN,UAAU,CAAC;IACf,GAAG,WAAW,GAAGrB,OAAMC,aAAa,CAAC,QAAQ;QACzC,eAAe;IACnB,GAAG5F,kBAAkBuH,SAAS,CAAC/G,IAAImB,YAAY,IAAInB,IAAI+E,QAAQ,IAAI,WAAW,GAAGI,OAAMC,aAAa,CAAC,OAAO;QACxG,eAAe;QACfC,WAAWtF,WAAWiH,SAAS;IACnC;AACJ"}
|
|
@@ -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
|
|
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 =
|
|
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 || (
|
|
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
|
|
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
|
-
|
|
86
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
|
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
|
-
}, (
|
|
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
|
|
91
|
+
var _props_onRenderYear;
|
|
95
92
|
var _props_onRenderYear1;
|
|
96
|
-
return (_props_onRenderYear1 = (_props_onRenderYear =
|
|
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
|
-
|
|
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
|
|
183
|
-
(_props_onHeaderSelect =
|
|
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
|
|
187
|
+
var _props_onRenderYear;
|
|
192
188
|
var _props_onRenderYear1;
|
|
193
|
-
return (_props_onRenderYear1 = (_props_onRenderYear =
|
|
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
|
|
227
|
+
var _onRenderTitle;
|
|
233
228
|
return /*#__PURE__*/ _react.createElement("div", {
|
|
234
229
|
className: classNames.headerContainer
|
|
235
|
-
}, (
|
|
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 }) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["CalendarYear.js"],"sourcesContent":["import * as React from 'react';\nimport { Enter, Space } 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 { useCalendarYearStyles_unstable } from './useCalendarYearStyles.styles';\nconst CELL_COUNT = 12;\nconst CELLS_PER_ROW = 4;\nconst DefaultCalendarYearStrings = {\n prevRangeAriaLabel: undefined,\n nextRangeAriaLabel: undefined\n};\nconst CalendarYearGridCell = (props)=>{\n var _onRenderYear;\n const { className, highlightCurrentYear, highlightSelectedYear, year, selected, disabled, componentRef, onSelectYear, onRenderYear } = props;\n const buttonRef = React.useRef(null);\n React.useImperativeHandle(componentRef, ()=>({\n focus () {\n var _buttonRef_current_focus, _buttonRef_current;\n (_buttonRef_current = buttonRef.current) === null || _buttonRef_current === void 0 ? void 0 : (_buttonRef_current_focus = _buttonRef_current.focus) === null || _buttonRef_current_focus === void 0 ? void 0 : _buttonRef_current_focus.call(_buttonRef_current);\n }\n }), []);\n const onClick = ()=>{\n var _onSelectYear;\n (_onSelectYear = onSelectYear) === null || _onSelectYear === void 0 ? void 0 : _onSelectYear(year);\n };\n const onKeyDown = (ev)=>{\n if (ev.key === Enter) {\n var _onSelectYear;\n (_onSelectYear = onSelectYear) === null || _onSelectYear === void 0 ? void 0 : _onSelectYear(year);\n }\n };\n const classNames = useCalendarYearStyles_unstable({\n className,\n highlightCurrent: highlightCurrentYear,\n highlightSelected: highlightSelectedYear\n });\n var _onRenderYear1;\n return /*#__PURE__*/ React.createElement(\"button\", {\n className: mergeClasses(classNames.itemButton, selected && classNames.selected, disabled && classNames.disabled),\n type: \"button\",\n role: \"gridcell\",\n onClick: !disabled ? onClick : undefined,\n onKeyDown: !disabled ? onKeyDown : undefined,\n disabled: disabled,\n \"aria-selected\": selected,\n ref: buttonRef\n }, (_onRenderYear1 = (_onRenderYear = onRenderYear) === null || _onRenderYear === void 0 ? void 0 : _onRenderYear(year)) !== null && _onRenderYear1 !== void 0 ? _onRenderYear1 : year);\n};\nCalendarYearGridCell.displayName = 'CalendarYearGridCell';\nconst CalendarYearGrid = (props)=>{\n const { className, fromYear, toYear, animationDirection, animateBackwards, minYear, maxYear, onSelectYear, selectedYear, componentRef } = props;\n const selectedCellRef = React.useRef(null);\n const currentCellRef = React.useRef(null);\n React.useImperativeHandle(componentRef, ()=>({\n focus () {\n var _focus, _this;\n (_this = selectedCellRef.current || currentCellRef.current) === null || _this === void 0 ? void 0 : (_focus = _this.focus) === null || _focus === void 0 ? void 0 : _focus.call(_this);\n }\n }), []);\n const renderCell = (yearToRender)=>{\n const selected = yearToRender === selectedYear;\n const disabled = minYear !== undefined && yearToRender < minYear || maxYear !== undefined && yearToRender > maxYear;\n const current = yearToRender === new Date().getFullYear();\n return /*#__PURE__*/ React.createElement(CalendarYearGridCell, {\n ...props,\n key: yearToRender,\n year: yearToRender,\n selected: selected,\n current: current,\n disabled: disabled,\n onSelectYear: onSelectYear,\n componentRef: selected ? selectedCellRef : current ? currentCellRef : undefined\n });\n };\n const classNames = useCalendarYearStyles_unstable({\n className,\n animateBackwards,\n animationDirection\n });\n const onRenderYear = (value)=>{\n var _props_onRenderYear, _props;\n var _props_onRenderYear1;\n 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;\n };\n const gridAriaLabel = `${onRenderYear(fromYear)} - ${onRenderYear(toYear)}`;\n let year = fromYear;\n const cells = [];\n for(let i = 0; i < (toYear - fromYear + 1) / CELLS_PER_ROW; i++){\n cells.push([]);\n for(let j = 0; j < CELLS_PER_ROW; j++){\n cells[i].push(renderCell(year));\n year++;\n }\n }\n const arrowNavigationAttributes = useArrowNavigationGroup({\n axis: 'both'\n });\n return /*#__PURE__*/ React.createElement(\"div\", arrowNavigationAttributes, /*#__PURE__*/ React.createElement(\"div\", {\n className: classNames.gridContainer,\n role: \"grid\",\n \"aria-label\": gridAriaLabel\n }, cells.map((cellRow, index)=>{\n return /*#__PURE__*/ React.createElement(\"div\", {\n key: 'yearPickerRow_' + index + '_' + fromYear,\n role: \"row\",\n className: classNames.buttonRow\n }, cellRow);\n })));\n};\nCalendarYearGrid.displayName = 'CalendarYearGrid';\nconst CalendarYearNavDirection = {\n Previous: 0,\n Next: 1\n};\nconst CalendarYearNavArrow = (props)=>{\n const { className, strings = DefaultCalendarYearStrings, direction, onSelectPrev, onSelectNext, fromYear, toYear, maxYear, minYear } = props;\n const classNames = useCalendarYearStyles_unstable({\n className\n });\n const ariaLabel = direction === CalendarYearNavDirection.Previous ? strings.prevRangeAriaLabel : strings.nextRangeAriaLabel;\n const newRangeOffset = direction === CalendarYearNavDirection.Previous ? -CELL_COUNT : CELL_COUNT;\n const newRange = {\n fromYear: fromYear + newRangeOffset,\n toYear: toYear + newRangeOffset\n };\n const ariaLabelString = ariaLabel ? typeof ariaLabel === 'string' ? ariaLabel : ariaLabel(newRange) : undefined;\n const disabled = direction === CalendarYearNavDirection.Previous ? minYear !== undefined && fromYear < minYear : maxYear !== undefined && props.fromYear + CELL_COUNT > maxYear;\n const onNavigate = ()=>{\n var _onSelectPrev, _onSelectNext;\n direction === CalendarYearNavDirection.Previous ? (_onSelectPrev = onSelectPrev) === null || _onSelectPrev === void 0 ? void 0 : _onSelectPrev() : (_onSelectNext = onSelectNext) === null || _onSelectNext === void 0 ? void 0 : _onSelectNext();\n };\n const onKeyDown = (ev)=>{\n if (ev.key === Enter) {\n onNavigate();\n }\n };\n const { dir } = useFluent_unstable();\n // can be condensed, but leaving verbose for clarity due to regressions\n const isLeftNavigation = dir === 'rtl' ? direction === CalendarYearNavDirection.Next : direction === CalendarYearNavDirection.Previous;\n return /*#__PURE__*/ React.createElement(\"button\", {\n className: mergeClasses(classNames.navigationButton, disabled && classNames.disabled),\n onClick: !disabled ? onNavigate : undefined,\n onKeyDown: !disabled ? onKeyDown : undefined,\n type: \"button\",\n title: ariaLabelString,\n disabled: disabled\n }, isLeftNavigation ? /*#__PURE__*/ React.createElement(ArrowUpRegular, null) : /*#__PURE__*/ React.createElement(ArrowDownRegular, null));\n};\nCalendarYearNavArrow.displayName = 'CalendarYearNavArrow';\nconst CalendarYearNav = (props)=>{\n const { className } = props;\n const classNames = useCalendarYearStyles_unstable({\n className\n });\n return /*#__PURE__*/ React.createElement(\"div\", {\n className: classNames.navigationButtonsContainer\n }, /*#__PURE__*/ React.createElement(CalendarYearNavArrow, {\n ...props,\n direction: CalendarYearNavDirection.Previous\n }), /*#__PURE__*/ React.createElement(CalendarYearNavArrow, {\n ...props,\n direction: CalendarYearNavDirection.Next\n }));\n};\nCalendarYearNav.displayName = 'CalendarYearNav';\nconst CalendarYearTitle = (props)=>{\n const { className, fromYear, toYear, strings = DefaultCalendarYearStrings, animateBackwards, animationDirection } = props;\n const onHeaderSelect = ()=>{\n var _props_onHeaderSelect, _props;\n (_props_onHeaderSelect = (_props = props).onHeaderSelect) === null || _props_onHeaderSelect === void 0 ? void 0 : _props_onHeaderSelect.call(_props, true);\n };\n const onHeaderKeyDown = (ev)=>{\n if (ev.key === Enter || ev.key === Space) {\n onHeaderSelect();\n }\n };\n const onRenderYear = (year)=>{\n var _props_onRenderYear, _props;\n var _props_onRenderYear1;\n 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;\n };\n const classNames = useCalendarYearStyles_unstable({\n className,\n hasHeaderClickCallback: !!props.onHeaderSelect,\n animateBackwards,\n animationDirection\n });\n if (props.onHeaderSelect) {\n const rangeAriaLabel = strings.rangeAriaLabel;\n const headerAriaLabelFormatString = strings.headerAriaLabelFormatString;\n const currentDateRange = rangeAriaLabel ? typeof rangeAriaLabel === 'string' ? rangeAriaLabel : rangeAriaLabel(props) : undefined;\n const ariaLabel = headerAriaLabelFormatString ? headerAriaLabelFormatString.replace('{0}', currentDateRange !== null && currentDateRange !== void 0 ? currentDateRange : '') : currentDateRange;\n return /*#__PURE__*/ React.createElement(\"button\", {\n className: classNames.currentItemButton,\n onClick: onHeaderSelect,\n onKeyDown: onHeaderKeyDown,\n \"aria-label\": ariaLabel,\n role: \"button\",\n type: \"button\"\n }, /*#__PURE__*/ React.createElement(\"span\", {\n \"aria-live\": \"assertive\",\n \"aria-atomic\": \"true\"\n }, onRenderYear(fromYear), \" - \", onRenderYear(toYear)));\n }\n return /*#__PURE__*/ React.createElement(\"div\", {\n className: classNames.current\n }, onRenderYear(fromYear), \" - \", onRenderYear(toYear));\n};\nCalendarYearTitle.displayName = 'CalendarYearTitle';\nconst CalendarYearHeader = (props)=>{\n var _onRenderTitle;\n const { className, animateBackwards, animationDirection, onRenderTitle } = props;\n const classNames = useCalendarYearStyles_unstable({\n className,\n hasHeaderClickCallback: !!props.onHeaderSelect,\n animateBackwards,\n animationDirection\n });\n var _onRenderTitle1;\n return /*#__PURE__*/ React.createElement(\"div\", {\n className: classNames.headerContainer\n }, (_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));\n};\nCalendarYearHeader.displayName = 'CalendarYearHeader';\nfunction useAnimateBackwards({ selectedYear, navigatedYear }) {\n const rangeYear = selectedYear || navigatedYear || new Date().getFullYear();\n const fromYear = Math.floor(rangeYear / 10) * 10;\n const previousFromYearRef = React.useRef(fromYear);\n React.useRef(()=>{\n previousFromYearRef.current = fromYear;\n });\n const previousFromYear = previousFromYearRef.current;\n if (!previousFromYear || previousFromYear === fromYear) {\n return undefined;\n } else if (previousFromYear > fromYear) {\n return true;\n } else {\n return false;\n }\n}\nfunction useYearRangeState({ selectedYear, navigatedYear }) {\n const rangeYear = React.useMemo(()=>{\n return selectedYear || navigatedYear || Math.floor(new Date().getFullYear() / 10) * 10;\n }, [\n navigatedYear,\n selectedYear\n ]);\n const [fromYear, setFromYear] = React.useState(rangeYear);\n const onNavNext = ()=>{\n setFromYear((year)=>year + CELL_COUNT);\n };\n const onNavPrevious = ()=>{\n setFromYear((year)=>year - CELL_COUNT);\n };\n React.useEffect(()=>{\n setFromYear(rangeYear);\n }, [\n rangeYear\n ]);\n const toYear = fromYear + CELL_COUNT - 1;\n return [\n fromYear,\n toYear,\n onNavNext,\n onNavPrevious\n ];\n}\n/**\n * @internal\n */ export const CalendarYear = (props)=>{\n const animateBackwards = useAnimateBackwards(props);\n const [fromYear, toYear, onNavNext, onNavPrevious] = useYearRangeState(props);\n const gridRef = React.useRef(null);\n React.useImperativeHandle(props.componentRef, ()=>({\n focus () {\n var _gridRef_current_focus, _gridRef_current;\n (_gridRef_current = gridRef.current) === null || _gridRef_current === void 0 ? void 0 : (_gridRef_current_focus = _gridRef_current.focus) === null || _gridRef_current_focus === void 0 ? void 0 : _gridRef_current_focus.call(_gridRef_current);\n }\n }));\n const { className } = props;\n const classNames = useCalendarYearStyles_unstable({\n className\n });\n return /*#__PURE__*/ React.createElement(\"div\", {\n className: classNames.root\n }, /*#__PURE__*/ React.createElement(CalendarYearHeader, {\n ...props,\n fromYear: fromYear,\n toYear: toYear,\n onSelectPrev: onNavPrevious,\n onSelectNext: onNavNext,\n animateBackwards: animateBackwards\n }), /*#__PURE__*/ React.createElement(CalendarYearGrid, {\n ...props,\n fromYear: fromYear,\n toYear: toYear,\n animateBackwards: animateBackwards,\n componentRef: gridRef\n }));\n};\nCalendarYear.displayName = 'CalendarYear';\n"],"names":["CalendarYear","CELL_COUNT","CELLS_PER_ROW","DefaultCalendarYearStrings","prevRangeAriaLabel","undefined","nextRangeAriaLabel","CalendarYearGridCell","props","_onRenderYear","className","highlightCurrentYear","highlightSelectedYear","year","selected","disabled","componentRef","onSelectYear","onRenderYear","buttonRef","React","useRef","useImperativeHandle","focus","_buttonRef_current_focus","_buttonRef_current","current","call","onClick","_onSelectYear","onKeyDown","ev","key","Enter","classNames","useCalendarYearStyles_unstable","highlightCurrent","highlightSelected","_onRenderYear1","createElement","mergeClasses","itemButton","type","role","ref","displayName","CalendarYearGrid","fromYear","toYear","animationDirection","animateBackwards","minYear","maxYear","selectedYear","selectedCellRef","currentCellRef","_focus","_this","renderCell","yearToRender","Date","getFullYear","value","_props_onRenderYear","_props","_props_onRenderYear1","gridAriaLabel","cells","i","push","j","arrowNavigationAttributes","useArrowNavigationGroup","axis","gridContainer","map","cellRow","index","buttonRow","CalendarYearNavDirection","Previous","Next","CalendarYearNavArrow","strings","direction","onSelectPrev","onSelectNext","ariaLabel","newRangeOffset","newRange","ariaLabelString","onNavigate","_onSelectPrev","_onSelectNext","dir","useFluent_unstable","isLeftNavigation","navigationButton","title","ArrowUpRegular","ArrowDownRegular","CalendarYearNav","navigationButtonsContainer","CalendarYearTitle","onHeaderSelect","_props_onHeaderSelect","onHeaderKeyDown","Space","hasHeaderClickCallback","rangeAriaLabel","headerAriaLabelFormatString","currentDateRange","replace","currentItemButton","CalendarYearHeader","_onRenderTitle","onRenderTitle","_onRenderTitle1","headerContainer","useAnimateBackwards","navigatedYear","rangeYear","Math","floor","previousFromYearRef","previousFromYear","useYearRangeState","useMemo","setFromYear","useState","onNavNext","onNavPrevious","useEffect","gridRef","_gridRef_current_focus","_gridRef_current","root"],"mappings":";;;;+BA+QiBA;;;eAAAA;;;;iEA/QM;8BACM;4BACoB;qCACd;8BACK;wBACX;6CACkB;AAC/C,MAAMC,aAAa;AACnB,MAAMC,gBAAgB;AACtB,MAAMC,6BAA6B;IAC/BC,oBAAoBC;IACpBC,oBAAoBD;AACxB;AACA,MAAME,uBAAuB,CAACC;IAC1B,IAAIC;IACJ,MAAM,EAAEC,SAAS,EAAEC,oBAAoB,EAAEC,qBAAqB,EAAEC,IAAI,EAAEC,QAAQ,EAAEC,QAAQ,EAAEC,YAAY,EAAEC,YAAY,EAAEC,YAAY,EAAE,GAAGV;IACvI,MAAMW,YAAYC,OAAMC,MAAM,CAAC;IAC/BD,OAAME,mBAAmB,CAACN,cAAc,IAAK,CAAA;YACrCO;gBACI,IAAIC,0BAA0BC;gBAC7BA,CAAAA,qBAAqBN,UAAUO,OAAO,AAAD,MAAO,QAAQD,uBAAuB,KAAK,IAAI,KAAK,IAAI,AAACD,CAAAA,2BAA2BC,mBAAmBF,KAAK,AAAD,MAAO,QAAQC,6BAA6B,KAAK,IAAI,KAAK,IAAIA,yBAAyBG,IAAI,CAACF;YACjP;QACJ,CAAA,GAAI,EAAE;IACV,MAAMG,UAAU;QACZ,IAAIC;QACHA,CAAAA,gBAAgBZ,YAAW,MAAO,QAAQY,kBAAkB,KAAK,IAAI,KAAK,IAAIA,cAAchB;IACjG;IACA,MAAMiB,YAAY,CAACC;QACf,IAAIA,GAAGC,GAAG,KAAKC,mBAAK,EAAE;YAClB,IAAIJ;YACHA,CAAAA,gBAAgBZ,YAAW,MAAO,QAAQY,kBAAkB,KAAK,IAAI,KAAK,IAAIA,cAAchB;QACjG;IACJ;IACA,MAAMqB,aAAaC,IAAAA,2DAA8B,EAAC;QAC9CzB;QACA0B,kBAAkBzB;QAClB0B,mBAAmBzB;IACvB;IACA,IAAI0B;IACJ,OAAO,WAAW,GAAGlB,OAAMmB,aAAa,CAAC,UAAU;QAC/C7B,WAAW8B,IAAAA,oBAAY,EAACN,WAAWO,UAAU,EAAE3B,YAAYoB,WAAWpB,QAAQ,EAAEC,YAAYmB,WAAWnB,QAAQ;QAC/G2B,MAAM;QACNC,MAAM;QACNf,SAAS,CAACb,WAAWa,UAAUvB;QAC/ByB,WAAW,CAACf,WAAWe,YAAYzB;QACnCU,UAAUA;QACV,iBAAiBD;QACjB8B,KAAKzB;IACT,GAAG,AAACmB,CAAAA,iBAAiB,AAAC7B,CAAAA,gBAAgBS,YAAW,MAAO,QAAQT,kBAAkB,KAAK,IAAI,KAAK,IAAIA,cAAcI,KAAI,MAAO,QAAQyB,mBAAmB,KAAK,IAAIA,iBAAiBzB;AACtL;AACAN,qBAAqBsC,WAAW,GAAG;AACnC,MAAMC,mBAAmB,CAACtC;IACtB,MAAM,EAAEE,SAAS,EAAEqC,QAAQ,EAAEC,MAAM,EAAEC,kBAAkB,EAAEC,gBAAgB,EAAEC,OAAO,EAAEC,OAAO,EAAEnC,YAAY,EAAEoC,YAAY,EAAErC,YAAY,EAAE,GAAGR;IAC1I,MAAM8C,kBAAkBlC,OAAMC,MAAM,CAAC;IACrC,MAAMkC,iBAAiBnC,OAAMC,MAAM,CAAC;IACpCD,OAAME,mBAAmB,CAACN,cAAc,IAAK,CAAA;YACrCO;gBACI,IAAIiC,QAAQC;gBACXA,CAAAA,QAAQH,gBAAgB5B,OAAO,IAAI6B,eAAe7B,OAAO,AAAD,MAAO,QAAQ+B,UAAU,KAAK,IAAI,KAAK,IAAI,AAACD,CAAAA,SAASC,MAAMlC,KAAK,AAAD,MAAO,QAAQiC,WAAW,KAAK,IAAI,KAAK,IAAIA,OAAO7B,IAAI,CAAC8B;YACpL;QACJ,CAAA,GAAI,EAAE;IACV,MAAMC,aAAa,CAACC;QAChB,MAAM7C,WAAW6C,iBAAiBN;QAClC,MAAMtC,WAAWoC,YAAY9C,aAAasD,eAAeR,WAAWC,YAAY/C,aAAasD,eAAeP;QAC5G,MAAM1B,UAAUiC,iBAAiB,IAAIC,OAAOC,WAAW;QACvD,OAAO,WAAW,GAAGzC,OAAMmB,aAAa,CAAChC,sBAAsB;YAC3D,GAAGC,KAAK;YACRwB,KAAK2B;YACL9C,MAAM8C;YACN7C,UAAUA;YACVY,SAASA;YACTX,UAAUA;YACVE,cAAcA;YACdD,cAAcF,WAAWwC,kBAAkB5B,UAAU6B,iBAAiBlD;QAC1E;IACJ;IACA,MAAM6B,aAAaC,IAAAA,2DAA8B,EAAC;QAC9CzB;QACAwC;QACAD;IACJ;IACA,MAAM/B,eAAe,CAAC4C;QAClB,IAAIC,qBAAqBC;QACzB,IAAIC;QACJ,OAAO,AAACA,CAAAA,uBAAuB,AAACF,CAAAA,sBAAsB,AAACC,CAAAA,SAASxD,KAAI,EAAGU,YAAY,AAAD,MAAO,QAAQ6C,wBAAwB,KAAK,IAAI,KAAK,IAAIA,oBAAoBpC,IAAI,CAACqC,QAAQF,MAAK,MAAO,QAAQG,yBAAyB,KAAK,IAAIA,uBAAuBH;IAC7P;IACA,MAAMI,gBAAgB,CAAC,EAAEhD,aAAa6B,UAAU,GAAG,EAAE7B,aAAa8B,QAAQ,CAAC;IAC3E,IAAInC,OAAOkC;IACX,MAAMoB,QAAQ,EAAE;IAChB,IAAI,IAAIC,IAAI,GAAGA,IAAI,AAACpB,CAAAA,SAASD,WAAW,CAAA,IAAK7C,eAAekE,IAAI;QAC5DD,MAAME,IAAI,CAAC,EAAE;QACb,IAAI,IAAIC,IAAI,GAAGA,IAAIpE,eAAeoE,IAAI;YAClCH,KAAK,CAACC,EAAE,CAACC,IAAI,CAACX,WAAW7C;YACzBA;QACJ;IACJ;IACA,MAAM0D,4BAA4BC,IAAAA,qCAAuB,EAAC;QACtDC,MAAM;IACV;IACA,OAAO,WAAW,GAAGrD,OAAMmB,aAAa,CAAC,OAAOgC,2BAA2B,WAAW,GAAGnD,OAAMmB,aAAa,CAAC,OAAO;QAChH7B,WAAWwB,WAAWwC,aAAa;QACnC/B,MAAM;QACN,cAAcuB;IAClB,GAAGC,MAAMQ,GAAG,CAAC,CAACC,SAASC;QACnB,OAAO,WAAW,GAAGzD,OAAMmB,aAAa,CAAC,OAAO;YAC5CP,KAAK,mBAAmB6C,QAAQ,MAAM9B;YACtCJ,MAAM;YACNjC,WAAWwB,WAAW4C,SAAS;QACnC,GAAGF;IACP;AACJ;AACA9B,iBAAiBD,WAAW,GAAG;AAC/B,MAAMkC,2BAA2B;IAC7BC,UAAU;IACVC,MAAM;AACV;AACA,MAAMC,uBAAuB,CAAC1E;IAC1B,MAAM,EAAEE,SAAS,EAAEyE,UAAUhF,0BAA0B,EAAEiF,SAAS,EAAEC,YAAY,EAAEC,YAAY,EAAEvC,QAAQ,EAAEC,MAAM,EAAEI,OAAO,EAAED,OAAO,EAAE,GAAG3C;IACvI,MAAM0B,aAAaC,IAAAA,2DAA8B,EAAC;QAC9CzB;IACJ;IACA,MAAM6E,YAAYH,cAAcL,yBAAyBC,QAAQ,GAAGG,QAAQ/E,kBAAkB,GAAG+E,QAAQ7E,kBAAkB;IAC3H,MAAMkF,iBAAiBJ,cAAcL,yBAAyBC,QAAQ,GAAG,CAAC/E,aAAaA;IACvF,MAAMwF,WAAW;QACb1C,UAAUA,WAAWyC;QACrBxC,QAAQA,SAASwC;IACrB;IACA,MAAME,kBAAkBH,YAAY,OAAOA,cAAc,WAAWA,YAAYA,UAAUE,YAAYpF;IACtG,MAAMU,WAAWqE,cAAcL,yBAAyBC,QAAQ,GAAG7B,YAAY9C,aAAa0C,WAAWI,UAAUC,YAAY/C,aAAaG,MAAMuC,QAAQ,GAAG9C,aAAamD;IACxK,MAAMuC,aAAa;QACf,IAAIC,eAAeC;QACnBT,cAAcL,yBAAyBC,QAAQ,GAAG,AAACY,CAAAA,gBAAgBP,YAAW,MAAO,QAAQO,kBAAkB,KAAK,IAAI,KAAK,IAAIA,kBAAkB,AAACC,CAAAA,gBAAgBP,YAAW,MAAO,QAAQO,kBAAkB,KAAK,IAAI,KAAK,IAAIA;IACtO;IACA,MAAM/D,YAAY,CAACC;QACf,IAAIA,GAAGC,GAAG,KAAKC,mBAAK,EAAE;YAClB0D;QACJ;IACJ;IACA,MAAM,EAAEG,GAAG,EAAE,GAAGC,IAAAA,uCAAkB;IAClC,uEAAuE;IACvE,MAAMC,mBAAmBF,QAAQ,QAAQV,cAAcL,yBAAyBE,IAAI,GAAGG,cAAcL,yBAAyBC,QAAQ;IACtI,OAAO,WAAW,GAAG5D,OAAMmB,aAAa,CAAC,UAAU;QAC/C7B,WAAW8B,IAAAA,oBAAY,EAACN,WAAW+D,gBAAgB,EAAElF,YAAYmB,WAAWnB,QAAQ;QACpFa,SAAS,CAACb,WAAW4E,aAAatF;QAClCyB,WAAW,CAACf,WAAWe,YAAYzB;QACnCqC,MAAM;QACNwD,OAAOR;QACP3E,UAAUA;IACd,GAAGiF,mBAAmB,WAAW,GAAG5E,OAAMmB,aAAa,CAAC4D,0BAAc,EAAE,QAAQ,WAAW,GAAG/E,OAAMmB,aAAa,CAAC6D,4BAAgB,EAAE;AACxI;AACAlB,qBAAqBrC,WAAW,GAAG;AACnC,MAAMwD,kBAAkB,CAAC7F;IACrB,MAAM,EAAEE,SAAS,EAAE,GAAGF;IACtB,MAAM0B,aAAaC,IAAAA,2DAA8B,EAAC;QAC9CzB;IACJ;IACA,OAAO,WAAW,GAAGU,OAAMmB,aAAa,CAAC,OAAO;QAC5C7B,WAAWwB,WAAWoE,0BAA0B;IACpD,GAAG,WAAW,GAAGlF,OAAMmB,aAAa,CAAC2C,sBAAsB;QACvD,GAAG1E,KAAK;QACR4E,WAAWL,yBAAyBC,QAAQ;IAChD,IAAI,WAAW,GAAG5D,OAAMmB,aAAa,CAAC2C,sBAAsB;QACxD,GAAG1E,KAAK;QACR4E,WAAWL,yBAAyBE,IAAI;IAC5C;AACJ;AACAoB,gBAAgBxD,WAAW,GAAG;AAC9B,MAAM0D,oBAAoB,CAAC/F;IACvB,MAAM,EAAEE,SAAS,EAAEqC,QAAQ,EAAEC,MAAM,EAAEmC,UAAUhF,0BAA0B,EAAE+C,gBAAgB,EAAED,kBAAkB,EAAE,GAAGzC;IACpH,MAAMgG,iBAAiB;QACnB,IAAIC,uBAAuBzC;QAC1ByC,CAAAA,wBAAwB,AAACzC,CAAAA,SAASxD,KAAI,EAAGgG,cAAc,AAAD,MAAO,QAAQC,0BAA0B,KAAK,IAAI,KAAK,IAAIA,sBAAsB9E,IAAI,CAACqC,QAAQ;IACzJ;IACA,MAAM0C,kBAAkB,CAAC3E;QACrB,IAAIA,GAAGC,GAAG,KAAKC,mBAAK,IAAIF,GAAGC,GAAG,KAAK2E,mBAAK,EAAE;YACtCH;QACJ;IACJ;IACA,MAAMtF,eAAe,CAACL;QAClB,IAAIkD,qBAAqBC;QACzB,IAAIC;QACJ,OAAO,AAACA,CAAAA,uBAAuB,AAACF,CAAAA,sBAAsB,AAACC,CAAAA,SAASxD,KAAI,EAAGU,YAAY,AAAD,MAAO,QAAQ6C,wBAAwB,KAAK,IAAI,KAAK,IAAIA,oBAAoBpC,IAAI,CAACqC,QAAQnD,KAAI,MAAO,QAAQoD,yBAAyB,KAAK,IAAIA,uBAAuBpD;IAC5P;IACA,MAAMqB,aAAaC,IAAAA,2DAA8B,EAAC;QAC9CzB;QACAkG,wBAAwB,CAAC,CAACpG,MAAMgG,cAAc;QAC9CtD;QACAD;IACJ;IACA,IAAIzC,MAAMgG,cAAc,EAAE;QACtB,MAAMK,iBAAiB1B,QAAQ0B,cAAc;QAC7C,MAAMC,8BAA8B3B,QAAQ2B,2BAA2B;QACvE,MAAMC,mBAAmBF,iBAAiB,OAAOA,mBAAmB,WAAWA,iBAAiBA,eAAerG,SAASH;QACxH,MAAMkF,YAAYuB,8BAA8BA,4BAA4BE,OAAO,CAAC,OAAOD,qBAAqB,QAAQA,qBAAqB,KAAK,IAAIA,mBAAmB,MAAMA;QAC/K,OAAO,WAAW,GAAG3F,OAAMmB,aAAa,CAAC,UAAU;YAC/C7B,WAAWwB,WAAW+E,iBAAiB;YACvCrF,SAAS4E;YACT1E,WAAW4E;YACX,cAAcnB;YACd5C,MAAM;YACND,MAAM;QACV,GAAG,WAAW,GAAGtB,OAAMmB,aAAa,CAAC,QAAQ;YACzC,aAAa;YACb,eAAe;QACnB,GAAGrB,aAAa6B,WAAW,OAAO7B,aAAa8B;IACnD;IACA,OAAO,WAAW,GAAG5B,OAAMmB,aAAa,CAAC,OAAO;QAC5C7B,WAAWwB,WAAWR,OAAO;IACjC,GAAGR,aAAa6B,WAAW,OAAO7B,aAAa8B;AACnD;AACAuD,kBAAkB1D,WAAW,GAAG;AAChC,MAAMqE,qBAAqB,CAAC1G;IACxB,IAAI2G;IACJ,MAAM,EAAEzG,SAAS,EAAEwC,gBAAgB,EAAED,kBAAkB,EAAEmE,aAAa,EAAE,GAAG5G;IAC3E,MAAM0B,aAAaC,IAAAA,2DAA8B,EAAC;QAC9CzB;QACAkG,wBAAwB,CAAC,CAACpG,MAAMgG,cAAc;QAC9CtD;QACAD;IACJ;IACA,IAAIoE;IACJ,OAAO,WAAW,GAAGjG,OAAMmB,aAAa,CAAC,OAAO;QAC5C7B,WAAWwB,WAAWoF,eAAe;IACzC,GAAG,AAACD,CAAAA,kBAAkB,AAACF,CAAAA,iBAAiBC,aAAY,MAAO,QAAQD,mBAAmB,KAAK,IAAI,KAAK,IAAIA,eAAe3G,MAAK,MAAO,QAAQ6G,oBAAoB,KAAK,IAAIA,kBAAkB,WAAW,GAAGjG,OAAMmB,aAAa,CAACgE,mBAAmB/F,QAAQ,WAAW,GAAGY,OAAMmB,aAAa,CAAC8D,iBAAiB7F;AAC9S;AACA0G,mBAAmBrE,WAAW,GAAG;AACjC,SAAS0E,oBAAoB,EAAElE,YAAY,EAAEmE,aAAa,EAAE;IACxD,MAAMC,YAAYpE,gBAAgBmE,iBAAiB,IAAI5D,OAAOC,WAAW;IACzE,MAAMd,WAAW2E,KAAKC,KAAK,CAACF,YAAY,MAAM;IAC9C,MAAMG,sBAAsBxG,OAAMC,MAAM,CAAC0B;IACzC3B,OAAMC,MAAM,CAAC;QACTuG,oBAAoBlG,OAAO,GAAGqB;IAClC;IACA,MAAM8E,mBAAmBD,oBAAoBlG,OAAO;IACpD,IAAI,CAACmG,oBAAoBA,qBAAqB9E,UAAU;QACpD,OAAO1C;IACX,OAAO,IAAIwH,mBAAmB9E,UAAU;QACpC,OAAO;IACX,OAAO;QACH,OAAO;IACX;AACJ;AACA,SAAS+E,kBAAkB,EAAEzE,YAAY,EAAEmE,aAAa,EAAE;IACtD,MAAMC,YAAYrG,OAAM2G,OAAO,CAAC;QAC5B,OAAO1E,gBAAgBmE,iBAAiBE,KAAKC,KAAK,CAAC,IAAI/D,OAAOC,WAAW,KAAK,MAAM;IACxF,GAAG;QACC2D;QACAnE;KACH;IACD,MAAM,CAACN,UAAUiF,YAAY,GAAG5G,OAAM6G,QAAQ,CAACR;IAC/C,MAAMS,YAAY;QACdF,YAAY,CAACnH,OAAOA,OAAOZ;IAC/B;IACA,MAAMkI,gBAAgB;QAClBH,YAAY,CAACnH,OAAOA,OAAOZ;IAC/B;IACAmB,OAAMgH,SAAS,CAAC;QACZJ,YAAYP;IAChB,GAAG;QACCA;KACH;IACD,MAAMzE,SAASD,WAAW9C,aAAa;IACvC,OAAO;QACH8C;QACAC;QACAkF;QACAC;KACH;AACL;AAGW,MAAMnI,eAAe,CAACQ;IAC7B,MAAM0C,mBAAmBqE,oBAAoB/G;IAC7C,MAAM,CAACuC,UAAUC,QAAQkF,WAAWC,cAAc,GAAGL,kBAAkBtH;IACvE,MAAM6H,UAAUjH,OAAMC,MAAM,CAAC;IAC7BD,OAAME,mBAAmB,CAACd,MAAMQ,YAAY,EAAE,IAAK,CAAA;YAC3CO;gBACI,IAAI+G,wBAAwBC;gBAC3BA,CAAAA,mBAAmBF,QAAQ3G,OAAO,AAAD,MAAO,QAAQ6G,qBAAqB,KAAK,IAAI,KAAK,IAAI,AAACD,CAAAA,yBAAyBC,iBAAiBhH,KAAK,AAAD,MAAO,QAAQ+G,2BAA2B,KAAK,IAAI,KAAK,IAAIA,uBAAuB3G,IAAI,CAAC4G;YACnO;QACJ,CAAA;IACJ,MAAM,EAAE7H,SAAS,EAAE,GAAGF;IACtB,MAAM0B,aAAaC,IAAAA,2DAA8B,EAAC;QAC9CzB;IACJ;IACA,OAAO,WAAW,GAAGU,OAAMmB,aAAa,CAAC,OAAO;QAC5C7B,WAAWwB,WAAWsG,IAAI;IAC9B,GAAG,WAAW,GAAGpH,OAAMmB,aAAa,CAAC2E,oBAAoB;QACrD,GAAG1G,KAAK;QACRuC,UAAUA;QACVC,QAAQA;QACRqC,cAAc8C;QACd7C,cAAc4C;QACdhF,kBAAkBA;IACtB,IAAI,WAAW,GAAG9B,OAAMmB,aAAa,CAACO,kBAAkB;QACpD,GAAGtC,KAAK;QACRuC,UAAUA;QACVC,QAAQA;QACRE,kBAAkBA;QAClBlC,cAAcqH;IAClB;AACJ;AACArI,aAAa6C,WAAW,GAAG"}
|
|
1
|
+
{"version":3,"sources":["CalendarYear.js"],"sourcesContent":["import * as React from 'react';\nimport { Enter, Space } 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 { useCalendarYearStyles_unstable } from './useCalendarYearStyles.styles';\nconst CELL_COUNT = 12;\nconst CELLS_PER_ROW = 4;\nconst DefaultCalendarYearStrings = {\n prevRangeAriaLabel: undefined,\n nextRangeAriaLabel: undefined\n};\nconst CalendarYearGridCell = (props)=>{\n const { className, highlightCurrentYear, highlightSelectedYear, year, selected, disabled, componentRef, onSelectYear, onRenderYear } = props;\n const buttonRef = React.useRef(null);\n React.useImperativeHandle(componentRef, ()=>({\n focus () {\n var _buttonRef_current_focus, _buttonRef_current;\n (_buttonRef_current = buttonRef.current) === null || _buttonRef_current === void 0 ? void 0 : (_buttonRef_current_focus = _buttonRef_current.focus) === null || _buttonRef_current_focus === void 0 ? void 0 : _buttonRef_current_focus.call(_buttonRef_current);\n }\n }), []);\n const onClick = ()=>{\n onSelectYear === null || onSelectYear === void 0 ? void 0 : onSelectYear(year);\n };\n const onKeyDown = (ev)=>{\n if (ev.key === Enter) {\n onSelectYear === null || onSelectYear === void 0 ? void 0 : onSelectYear(year);\n }\n };\n const classNames = useCalendarYearStyles_unstable({\n className,\n highlightCurrent: highlightCurrentYear,\n highlightSelected: highlightSelectedYear\n });\n var _onRenderYear;\n return /*#__PURE__*/ React.createElement(\"button\", {\n className: mergeClasses(classNames.itemButton, selected && classNames.selected, disabled && classNames.disabled),\n type: \"button\",\n role: \"gridcell\",\n onClick: !disabled ? onClick : undefined,\n onKeyDown: !disabled ? onKeyDown : undefined,\n disabled: disabled,\n \"aria-selected\": selected,\n ref: buttonRef\n }, (_onRenderYear = onRenderYear === null || onRenderYear === void 0 ? void 0 : onRenderYear(year)) !== null && _onRenderYear !== void 0 ? _onRenderYear : year);\n};\nCalendarYearGridCell.displayName = 'CalendarYearGridCell';\nconst CalendarYearGrid = (props)=>{\n const { className, fromYear, toYear, animationDirection, animateBackwards, minYear, maxYear, onSelectYear, selectedYear, componentRef } = props;\n const selectedCellRef = React.useRef(null);\n const currentCellRef = React.useRef(null);\n React.useImperativeHandle(componentRef, ()=>({\n focus () {\n var _focus, _this;\n (_this = selectedCellRef.current || currentCellRef.current) === null || _this === void 0 ? void 0 : (_focus = _this.focus) === null || _focus === void 0 ? void 0 : _focus.call(_this);\n }\n }), []);\n const renderCell = (yearToRender)=>{\n const selected = yearToRender === selectedYear;\n const disabled = minYear !== undefined && yearToRender < minYear || maxYear !== undefined && yearToRender > maxYear;\n const current = yearToRender === new Date().getFullYear();\n return /*#__PURE__*/ React.createElement(CalendarYearGridCell, {\n ...props,\n key: yearToRender,\n year: yearToRender,\n selected: selected,\n current: current,\n disabled: disabled,\n onSelectYear: onSelectYear,\n componentRef: selected ? selectedCellRef : current ? currentCellRef : undefined\n });\n };\n const classNames = useCalendarYearStyles_unstable({\n className,\n animateBackwards,\n animationDirection\n });\n const onRenderYear = (value)=>{\n var _props_onRenderYear;\n var _props_onRenderYear1;\n 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;\n };\n const gridAriaLabel = `${onRenderYear(fromYear)} - ${onRenderYear(toYear)}`;\n let year = fromYear;\n const cells = [];\n for(let i = 0; i < (toYear - fromYear + 1) / CELLS_PER_ROW; i++){\n cells.push([]);\n for(let j = 0; j < CELLS_PER_ROW; j++){\n cells[i].push(renderCell(year));\n year++;\n }\n }\n const arrowNavigationAttributes = useArrowNavigationGroup({\n axis: 'both'\n });\n return /*#__PURE__*/ React.createElement(\"div\", arrowNavigationAttributes, /*#__PURE__*/ React.createElement(\"div\", {\n className: classNames.gridContainer,\n role: \"grid\",\n \"aria-label\": gridAriaLabel\n }, cells.map((cellRow, index)=>{\n return /*#__PURE__*/ React.createElement(\"div\", {\n key: 'yearPickerRow_' + index + '_' + fromYear,\n role: \"row\",\n className: classNames.buttonRow\n }, cellRow);\n })));\n};\nCalendarYearGrid.displayName = 'CalendarYearGrid';\nconst CalendarYearNavDirection = {\n Previous: 0,\n Next: 1\n};\nconst CalendarYearNavArrow = (props)=>{\n const { className, strings = DefaultCalendarYearStrings, direction, onSelectPrev, onSelectNext, fromYear, toYear, maxYear, minYear } = props;\n const classNames = useCalendarYearStyles_unstable({\n className\n });\n const ariaLabel = direction === CalendarYearNavDirection.Previous ? strings.prevRangeAriaLabel : strings.nextRangeAriaLabel;\n const newRangeOffset = direction === CalendarYearNavDirection.Previous ? -CELL_COUNT : CELL_COUNT;\n const newRange = {\n fromYear: fromYear + newRangeOffset,\n toYear: toYear + newRangeOffset\n };\n const ariaLabelString = ariaLabel ? typeof ariaLabel === 'string' ? ariaLabel : ariaLabel(newRange) : undefined;\n const disabled = direction === CalendarYearNavDirection.Previous ? minYear !== undefined && fromYear < minYear : maxYear !== undefined && props.fromYear + CELL_COUNT > maxYear;\n const onNavigate = ()=>{\n direction === CalendarYearNavDirection.Previous ? onSelectPrev === null || onSelectPrev === void 0 ? void 0 : onSelectPrev() : onSelectNext === null || onSelectNext === void 0 ? void 0 : onSelectNext();\n };\n const onKeyDown = (ev)=>{\n if (ev.key === Enter) {\n onNavigate();\n }\n };\n const { dir } = useFluent_unstable();\n // can be condensed, but leaving verbose for clarity due to regressions\n const isLeftNavigation = dir === 'rtl' ? direction === CalendarYearNavDirection.Next : direction === CalendarYearNavDirection.Previous;\n return /*#__PURE__*/ React.createElement(\"button\", {\n className: mergeClasses(classNames.navigationButton, disabled && classNames.disabled),\n onClick: !disabled ? onNavigate : undefined,\n onKeyDown: !disabled ? onKeyDown : undefined,\n type: \"button\",\n title: ariaLabelString,\n disabled: disabled\n }, isLeftNavigation ? /*#__PURE__*/ React.createElement(ArrowUpRegular, null) : /*#__PURE__*/ React.createElement(ArrowDownRegular, null));\n};\nCalendarYearNavArrow.displayName = 'CalendarYearNavArrow';\nconst CalendarYearNav = (props)=>{\n const { className } = props;\n const classNames = useCalendarYearStyles_unstable({\n className\n });\n return /*#__PURE__*/ React.createElement(\"div\", {\n className: classNames.navigationButtonsContainer\n }, /*#__PURE__*/ React.createElement(CalendarYearNavArrow, {\n ...props,\n direction: CalendarYearNavDirection.Previous\n }), /*#__PURE__*/ React.createElement(CalendarYearNavArrow, {\n ...props,\n direction: CalendarYearNavDirection.Next\n }));\n};\nCalendarYearNav.displayName = 'CalendarYearNav';\nconst CalendarYearTitle = (props)=>{\n const { className, fromYear, toYear, strings = DefaultCalendarYearStrings, animateBackwards, animationDirection } = props;\n const onHeaderSelect = ()=>{\n var _props_onHeaderSelect;\n (_props_onHeaderSelect = props.onHeaderSelect) === null || _props_onHeaderSelect === void 0 ? void 0 : _props_onHeaderSelect.call(props, true);\n };\n const onHeaderKeyDown = (ev)=>{\n if (ev.key === Enter || ev.key === Space) {\n onHeaderSelect();\n }\n };\n const onRenderYear = (year)=>{\n var _props_onRenderYear;\n var _props_onRenderYear1;\n 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;\n };\n const classNames = useCalendarYearStyles_unstable({\n className,\n hasHeaderClickCallback: !!props.onHeaderSelect,\n animateBackwards,\n animationDirection\n });\n if (props.onHeaderSelect) {\n const rangeAriaLabel = strings.rangeAriaLabel;\n const headerAriaLabelFormatString = strings.headerAriaLabelFormatString;\n const currentDateRange = rangeAriaLabel ? typeof rangeAriaLabel === 'string' ? rangeAriaLabel : rangeAriaLabel(props) : undefined;\n const ariaLabel = headerAriaLabelFormatString ? headerAriaLabelFormatString.replace('{0}', currentDateRange !== null && currentDateRange !== void 0 ? currentDateRange : '') : currentDateRange;\n return /*#__PURE__*/ React.createElement(\"button\", {\n className: classNames.currentItemButton,\n onClick: onHeaderSelect,\n onKeyDown: onHeaderKeyDown,\n \"aria-label\": ariaLabel,\n role: \"button\",\n type: \"button\"\n }, /*#__PURE__*/ React.createElement(\"span\", {\n \"aria-live\": \"assertive\",\n \"aria-atomic\": \"true\"\n }, onRenderYear(fromYear), \" - \", onRenderYear(toYear)));\n }\n return /*#__PURE__*/ React.createElement(\"div\", {\n className: classNames.current\n }, onRenderYear(fromYear), \" - \", onRenderYear(toYear));\n};\nCalendarYearTitle.displayName = 'CalendarYearTitle';\nconst CalendarYearHeader = (props)=>{\n const { className, animateBackwards, animationDirection, onRenderTitle } = props;\n const classNames = useCalendarYearStyles_unstable({\n className,\n hasHeaderClickCallback: !!props.onHeaderSelect,\n animateBackwards,\n animationDirection\n });\n var _onRenderTitle;\n return /*#__PURE__*/ React.createElement(\"div\", {\n className: classNames.headerContainer\n }, (_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));\n};\nCalendarYearHeader.displayName = 'CalendarYearHeader';\nfunction useAnimateBackwards({ selectedYear, navigatedYear }) {\n const rangeYear = selectedYear || navigatedYear || new Date().getFullYear();\n const fromYear = Math.floor(rangeYear / 10) * 10;\n const previousFromYearRef = React.useRef(fromYear);\n React.useRef(()=>{\n previousFromYearRef.current = fromYear;\n });\n const previousFromYear = previousFromYearRef.current;\n if (!previousFromYear || previousFromYear === fromYear) {\n return undefined;\n } else if (previousFromYear > fromYear) {\n return true;\n } else {\n return false;\n }\n}\nfunction useYearRangeState({ selectedYear, navigatedYear }) {\n const rangeYear = React.useMemo(()=>{\n return selectedYear || navigatedYear || Math.floor(new Date().getFullYear() / 10) * 10;\n }, [\n navigatedYear,\n selectedYear\n ]);\n const [fromYear, setFromYear] = React.useState(rangeYear);\n const onNavNext = ()=>{\n setFromYear((year)=>year + CELL_COUNT);\n };\n const onNavPrevious = ()=>{\n setFromYear((year)=>year - CELL_COUNT);\n };\n React.useEffect(()=>{\n setFromYear(rangeYear);\n }, [\n rangeYear\n ]);\n const toYear = fromYear + CELL_COUNT - 1;\n return [\n fromYear,\n toYear,\n onNavNext,\n onNavPrevious\n ];\n}\n/**\n * @internal\n */ export const CalendarYear = (props)=>{\n const animateBackwards = useAnimateBackwards(props);\n const [fromYear, toYear, onNavNext, onNavPrevious] = useYearRangeState(props);\n const gridRef = React.useRef(null);\n React.useImperativeHandle(props.componentRef, ()=>({\n focus () {\n var _gridRef_current_focus, _gridRef_current;\n (_gridRef_current = gridRef.current) === null || _gridRef_current === void 0 ? void 0 : (_gridRef_current_focus = _gridRef_current.focus) === null || _gridRef_current_focus === void 0 ? void 0 : _gridRef_current_focus.call(_gridRef_current);\n }\n }));\n const { className } = props;\n const classNames = useCalendarYearStyles_unstable({\n className\n });\n return /*#__PURE__*/ React.createElement(\"div\", {\n className: classNames.root\n }, /*#__PURE__*/ React.createElement(CalendarYearHeader, {\n ...props,\n fromYear: fromYear,\n toYear: toYear,\n onSelectPrev: onNavPrevious,\n onSelectNext: onNavNext,\n animateBackwards: animateBackwards\n }), /*#__PURE__*/ React.createElement(CalendarYearGrid, {\n ...props,\n fromYear: fromYear,\n toYear: toYear,\n animateBackwards: animateBackwards,\n componentRef: gridRef\n }));\n};\nCalendarYear.displayName = 'CalendarYear';\n"],"names":["CalendarYear","CELL_COUNT","CELLS_PER_ROW","DefaultCalendarYearStrings","prevRangeAriaLabel","undefined","nextRangeAriaLabel","CalendarYearGridCell","props","className","highlightCurrentYear","highlightSelectedYear","year","selected","disabled","componentRef","onSelectYear","onRenderYear","buttonRef","React","useRef","useImperativeHandle","focus","_buttonRef_current_focus","_buttonRef_current","current","call","onClick","onKeyDown","ev","key","Enter","classNames","useCalendarYearStyles_unstable","highlightCurrent","highlightSelected","_onRenderYear","createElement","mergeClasses","itemButton","type","role","ref","displayName","CalendarYearGrid","fromYear","toYear","animationDirection","animateBackwards","minYear","maxYear","selectedYear","selectedCellRef","currentCellRef","_focus","_this","renderCell","yearToRender","Date","getFullYear","value","_props_onRenderYear","_props_onRenderYear1","gridAriaLabel","cells","i","push","j","arrowNavigationAttributes","useArrowNavigationGroup","axis","gridContainer","map","cellRow","index","buttonRow","CalendarYearNavDirection","Previous","Next","CalendarYearNavArrow","strings","direction","onSelectPrev","onSelectNext","ariaLabel","newRangeOffset","newRange","ariaLabelString","onNavigate","dir","useFluent_unstable","isLeftNavigation","navigationButton","title","ArrowUpRegular","ArrowDownRegular","CalendarYearNav","navigationButtonsContainer","CalendarYearTitle","onHeaderSelect","_props_onHeaderSelect","onHeaderKeyDown","Space","hasHeaderClickCallback","rangeAriaLabel","headerAriaLabelFormatString","currentDateRange","replace","currentItemButton","CalendarYearHeader","onRenderTitle","_onRenderTitle","headerContainer","useAnimateBackwards","navigatedYear","rangeYear","Math","floor","previousFromYearRef","previousFromYear","useYearRangeState","useMemo","setFromYear","useState","onNavNext","onNavPrevious","useEffect","gridRef","_gridRef_current_focus","_gridRef_current","root"],"mappings":"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"}
|
|
@@ -50,8 +50,8 @@ function usePopupVisibility(props) {
|
|
|
50
50
|
const isMounted = _react.useRef(false);
|
|
51
51
|
_react.useEffect(()=>{
|
|
52
52
|
if (isMounted.current && !open) {
|
|
53
|
-
var _props_onOpenChange
|
|
54
|
-
(_props_onOpenChange =
|
|
53
|
+
var _props_onOpenChange;
|
|
54
|
+
(_props_onOpenChange = props.onOpenChange) === null || _props_onOpenChange === void 0 ? void 0 : _props_onOpenChange.call(props, false);
|
|
55
55
|
}
|
|
56
56
|
isMounted.current = true;
|
|
57
57
|
}, // eslint-disable-next-line react-hooks/exhaustive-deps
|
|
@@ -71,8 +71,7 @@ function useSelectedDate({ formatDate, onSelectDate, value }) {
|
|
|
71
71
|
});
|
|
72
72
|
const [formattedDate, setFormattedDate] = _react.useState(()=>value && formatDate ? formatDate(value) : '');
|
|
73
73
|
const setSelectedDate = (newDate)=>{
|
|
74
|
-
|
|
75
|
-
(_onSelectDate = onSelectDate) === null || _onSelectDate === void 0 ? void 0 : _onSelectDate(newDate);
|
|
74
|
+
onSelectDate === null || onSelectDate === void 0 ? void 0 : onSelectDate(newDate);
|
|
76
75
|
setSelectedDateState(newDate);
|
|
77
76
|
setFormattedDate(newDate && formatDate ? formatDate(newDate) : '');
|
|
78
77
|
};
|
|
@@ -95,7 +94,6 @@ const defaultParseDateFromString = (dateStr)=>{
|
|
|
95
94
|
return date ? new Date(date) : null;
|
|
96
95
|
};
|
|
97
96
|
const useDatePicker_unstable = (props, ref)=>{
|
|
98
|
-
var _fieldContext;
|
|
99
97
|
const { allowTextInput = false, allFocusable = false, borderless = false, dateTimeFormatter, defaultOpen = false, disableAutoFocus = true, firstDayOfWeek = _utils.DayOfWeek.Sunday, firstWeekOfYear = _utils.FirstWeekOfYear.FirstDay, formatDate = defaultFormatDate, highlightCurrentMonth = false, highlightSelectedMonth = false, initialPickerDate = new Date(), inlinePopup = false, isMonthPickerVisible = true, maxDate, minDate, mountNode, onOpenChange, onSelectDate: onUserSelectDate, openOnClick = true, onValidationResult, parseDateFromString = defaultParseDateFromString, showCloseButton = false, showGoToToday = true, showMonthPickerAsOverlay = false, showWeekNumbers = false, strings = _defaults.defaultDatePickerStrings, today, underlined = false, value, ...restOfProps } = props;
|
|
100
98
|
const calendar = _react.useRef(null);
|
|
101
99
|
const [focus, rootRef, preventFocusOpeningPicker, preventNextFocusOpeningPicker] = useFocusLogic();
|
|
@@ -107,10 +105,9 @@ const useDatePicker_unstable = (props, ref)=>{
|
|
|
107
105
|
const [open, setOpenState] = usePopupVisibility(props);
|
|
108
106
|
const fieldContext = (0, _reactfield.useFieldContext_unstable)();
|
|
109
107
|
var _fieldContext_required;
|
|
110
|
-
const required = (_fieldContext_required =
|
|
108
|
+
const required = (_fieldContext_required = fieldContext === null || fieldContext === void 0 ? void 0 : fieldContext.required) !== null && _fieldContext_required !== void 0 ? _fieldContext_required : props.required;
|
|
111
109
|
const popupSurfaceId = (0, _reactutilities.useId)('datePicker-popupSurface');
|
|
112
110
|
const validateTextInput = _react.useCallback((date = null)=>{
|
|
113
|
-
var _onValidationResult;
|
|
114
111
|
let error;
|
|
115
112
|
if (allowTextInput) {
|
|
116
113
|
if (formattedDate || date) {
|
|
@@ -134,16 +131,15 @@ const useDatePicker_unstable = (props, ref)=>{
|
|
|
134
131
|
}
|
|
135
132
|
}
|
|
136
133
|
} else {
|
|
137
|
-
var _onUserSelectDate;
|
|
138
134
|
if (required) {
|
|
139
135
|
error = 'required-input';
|
|
140
136
|
}
|
|
141
|
-
|
|
137
|
+
onUserSelectDate === null || onUserSelectDate === void 0 ? void 0 : onUserSelectDate(date);
|
|
142
138
|
}
|
|
143
139
|
} else if (required && !formattedDate) {
|
|
144
140
|
error = 'required-input';
|
|
145
141
|
}
|
|
146
|
-
|
|
142
|
+
onValidationResult === null || onValidationResult === void 0 ? void 0 : onValidationResult({
|
|
147
143
|
error
|
|
148
144
|
});
|
|
149
145
|
}, [
|
|
@@ -160,8 +156,7 @@ const useDatePicker_unstable = (props, ref)=>{
|
|
|
160
156
|
setSelectedDate
|
|
161
157
|
]);
|
|
162
158
|
const setOpen = _react.useCallback((newState)=>{
|
|
163
|
-
|
|
164
|
-
(_onOpenChange = onOpenChange) === null || _onOpenChange === void 0 ? void 0 : _onOpenChange(newState);
|
|
159
|
+
onOpenChange === null || onOpenChange === void 0 ? void 0 : onOpenChange(newState);
|
|
165
160
|
setOpenState(newState);
|
|
166
161
|
if (!open && !props.disabled) {
|
|
167
162
|
focus();
|