@fluentui/react-datepicker-compat 0.3.6 → 0.3.7
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 +88 -1
- package/CHANGELOG.md +23 -2
- package/lib/components/Calendar/Calendar.js +9 -7
- package/lib/components/Calendar/Calendar.js.map +1 -1
- package/lib/components/Calendar/useCalendarStyles.styles.js.map +1 -1
- package/lib/components/CalendarDay/CalendarDay.js +8 -11
- package/lib/components/CalendarDay/CalendarDay.js.map +1 -1
- package/lib/components/CalendarDay/useCalendarDayStyles.styles.js.map +1 -1
- package/lib/components/CalendarDayGrid/CalendarDayGrid.js +8 -10
- package/lib/components/CalendarDayGrid/CalendarDayGrid.js.map +1 -1
- package/lib/components/CalendarDayGrid/CalendarGridDayCell.js +8 -5
- package/lib/components/CalendarDayGrid/CalendarGridDayCell.js.map +1 -1
- package/lib/components/CalendarDayGrid/CalendarGridRow.js +1 -1
- package/lib/components/CalendarDayGrid/CalendarGridRow.js.map +1 -1
- package/lib/components/CalendarDayGrid/CalendarMonthHeaderRow.js +1 -1
- package/lib/components/CalendarDayGrid/CalendarMonthHeaderRow.js.map +1 -1
- package/lib/components/CalendarDayGrid/useCalendarDayGridStyles.styles.js.map +1 -1
- package/lib/components/CalendarDayGrid/useWeekCornerStyles.styles.js.map +1 -1
- package/lib/components/CalendarDayGrid/useWeeks.js +4 -3
- package/lib/components/CalendarDayGrid/useWeeks.js.map +1 -1
- package/lib/components/CalendarMonth/CalendarMonth.js +10 -8
- package/lib/components/CalendarMonth/CalendarMonth.js.map +1 -1
- package/lib/components/CalendarMonth/useCalendarMonthStyles.js.map +1 -1
- package/lib/components/CalendarPicker/useCalendarPickerStyles.styles.js.map +1 -1
- package/lib/components/CalendarYear/CalendarYear.js +38 -39
- package/lib/components/CalendarYear/CalendarYear.js.map +1 -1
- package/lib/components/DatePicker/DatePicker.js.map +1 -1
- package/lib/components/DatePicker/renderDatePicker.js +15 -6
- package/lib/components/DatePicker/renderDatePicker.js.map +1 -1
- package/lib/components/DatePicker/useDatePicker.js +18 -13
- package/lib/components/DatePicker/useDatePicker.js.map +1 -1
- package/lib/components/DatePicker/useDatePickerStyles.styles.js.map +1 -1
- package/lib/utils/dateGrid/findAvailableDate.js +1 -1
- package/lib/utils/dateGrid/findAvailableDate.js.map +1 -1
- package/lib/utils/dateGrid/getBoundedDateRange.js.map +1 -1
- package/lib/utils/dateGrid/getDateRangeTypeToUse.js.map +1 -1
- package/lib/utils/dateGrid/getDayGrid.js +3 -2
- package/lib/utils/dateGrid/getDayGrid.js.map +1 -1
- package/lib/utils/dateGrid/isAfterMaxDate.js +1 -1
- package/lib/utils/dateGrid/isAfterMaxDate.js.map +1 -1
- package/lib/utils/dateGrid/isBeforeMinDate.js +1 -1
- package/lib/utils/dateGrid/isBeforeMinDate.js.map +1 -1
- package/lib/utils/dateGrid/isContiguous.js.map +1 -1
- package/lib/utils/dateGrid/isRestrictedDate.js +1 -1
- package/lib/utils/dateGrid/isRestrictedDate.js.map +1 -1
- package/lib/utils/dateMath/dateMath.js.map +1 -1
- package/lib/utils/dom.js.map +1 -1
- package/lib/utils/focus.js.map +1 -1
- package/lib/utils/usePopupPositioning.js +2 -2
- package/lib/utils/usePopupPositioning.js.map +1 -1
- package/lib-commonjs/Calendar.js +2 -2
- package/lib-commonjs/Calendar.js.map +1 -1
- package/lib-commonjs/CalendarDay.js +2 -2
- package/lib-commonjs/CalendarDay.js.map +1 -1
- package/lib-commonjs/CalendarDayGrid.js +2 -2
- package/lib-commonjs/CalendarDayGrid.js.map +1 -1
- package/lib-commonjs/CalendarMonth.js +2 -2
- package/lib-commonjs/CalendarMonth.js.map +1 -1
- package/lib-commonjs/CalendarPicker.js +2 -2
- package/lib-commonjs/CalendarPicker.js.map +1 -1
- package/lib-commonjs/CalendarYear.js +2 -2
- package/lib-commonjs/CalendarYear.js.map +1 -1
- package/lib-commonjs/DatePicker.js +2 -2
- package/lib-commonjs/DatePicker.js.map +1 -1
- package/lib-commonjs/components/Calendar/Calendar.js +32 -28
- package/lib-commonjs/components/Calendar/Calendar.js.map +1 -1
- package/lib-commonjs/components/Calendar/Calendar.types.js +5 -3
- package/lib-commonjs/components/Calendar/Calendar.types.js.map +1 -1
- package/lib-commonjs/components/Calendar/defaults.js +3 -1
- package/lib-commonjs/components/Calendar/defaults.js.map +1 -1
- package/lib-commonjs/components/Calendar/index.js +7 -5
- package/lib-commonjs/components/Calendar/index.js.map +1 -1
- package/lib-commonjs/components/Calendar/useCalendarStyles.styles.js +12 -8
- package/lib-commonjs/components/Calendar/useCalendarStyles.styles.js.map +1 -1
- package/lib-commonjs/components/CalendarDay/CalendarDay.js +25 -26
- package/lib-commonjs/components/CalendarDay/CalendarDay.js.map +1 -1
- package/lib-commonjs/components/CalendarDay/CalendarDay.types.js +2 -2
- package/lib-commonjs/components/CalendarDay/CalendarDay.types.js.map +1 -1
- package/lib-commonjs/components/CalendarDay/index.js +4 -4
- package/lib-commonjs/components/CalendarDay/index.js.map +1 -1
- package/lib-commonjs/components/CalendarDay/useCalendarDayStyles.styles.js +13 -9
- package/lib-commonjs/components/CalendarDay/useCalendarDayStyles.styles.js.map +1 -1
- package/lib-commonjs/components/CalendarDayGrid/CalendarDayGrid.js +27 -27
- package/lib-commonjs/components/CalendarDayGrid/CalendarDayGrid.js.map +1 -1
- package/lib-commonjs/components/CalendarDayGrid/CalendarDayGrid.types.js +2 -2
- package/lib-commonjs/components/CalendarDayGrid/CalendarDayGrid.types.js.map +1 -1
- package/lib-commonjs/components/CalendarDayGrid/CalendarGridDayCell.js +29 -24
- package/lib-commonjs/components/CalendarDayGrid/CalendarGridDayCell.js.map +1 -1
- package/lib-commonjs/components/CalendarDayGrid/CalendarGridRow.js +8 -6
- package/lib-commonjs/components/CalendarDayGrid/CalendarGridRow.js.map +1 -1
- package/lib-commonjs/components/CalendarDayGrid/CalendarMonthHeaderRow.js +6 -4
- package/lib-commonjs/components/CalendarDayGrid/CalendarMonthHeaderRow.js.map +1 -1
- package/lib-commonjs/components/CalendarDayGrid/index.js +10 -6
- package/lib-commonjs/components/CalendarDayGrid/index.js.map +1 -1
- package/lib-commonjs/components/CalendarDayGrid/useCalendarDayGridStyles.styles.js +29 -23
- package/lib-commonjs/components/CalendarDayGrid/useCalendarDayGridStyles.styles.js.map +1 -1
- package/lib-commonjs/components/CalendarDayGrid/useWeekCornerStyles.styles.js +9 -5
- package/lib-commonjs/components/CalendarDayGrid/useWeekCornerStyles.styles.js.map +1 -1
- package/lib-commonjs/components/CalendarDayGrid/useWeeks.js +9 -6
- package/lib-commonjs/components/CalendarDayGrid/useWeeks.js.map +1 -1
- package/lib-commonjs/components/CalendarMonth/CalendarMonth.js +24 -21
- package/lib-commonjs/components/CalendarMonth/CalendarMonth.js.map +1 -1
- package/lib-commonjs/components/CalendarMonth/CalendarMonth.types.js +2 -2
- package/lib-commonjs/components/CalendarMonth/CalendarMonth.types.js.map +1 -1
- package/lib-commonjs/components/CalendarMonth/index.js +4 -4
- package/lib-commonjs/components/CalendarMonth/index.js.map +1 -1
- package/lib-commonjs/components/CalendarMonth/useCalendarMonthStyles.js +5 -3
- package/lib-commonjs/components/CalendarMonth/useCalendarMonthStyles.js.map +1 -1
- package/lib-commonjs/components/CalendarPicker/index.js +3 -3
- package/lib-commonjs/components/CalendarPicker/index.js.map +1 -1
- package/lib-commonjs/components/CalendarPicker/useCalendarPickerStyles.styles.js +20 -16
- package/lib-commonjs/components/CalendarPicker/useCalendarPickerStyles.styles.js.map +1 -1
- package/lib-commonjs/components/CalendarYear/CalendarYear.js +60 -59
- package/lib-commonjs/components/CalendarYear/CalendarYear.js.map +1 -1
- package/lib-commonjs/components/CalendarYear/CalendarYear.types.js +2 -2
- package/lib-commonjs/components/CalendarYear/CalendarYear.types.js.map +1 -1
- package/lib-commonjs/components/CalendarYear/index.js +4 -4
- package/lib-commonjs/components/CalendarYear/index.js.map +1 -1
- package/lib-commonjs/components/CalendarYear/useCalendarYearStyles.styles.js +5 -3
- package/lib-commonjs/components/CalendarYear/useCalendarYearStyles.styles.js.map +1 -1
- package/lib-commonjs/components/DatePicker/DatePicker.js +7 -5
- package/lib-commonjs/components/DatePicker/DatePicker.js.map +1 -1
- package/lib-commonjs/components/DatePicker/defaults.js +6 -2
- package/lib-commonjs/components/DatePicker/defaults.js.map +1 -1
- package/lib-commonjs/components/DatePicker/index.js +7 -7
- package/lib-commonjs/components/DatePicker/index.js.map +1 -1
- package/lib-commonjs/components/DatePicker/renderDatePicker.js +22 -12
- package/lib-commonjs/components/DatePicker/renderDatePicker.js.map +1 -1
- package/lib-commonjs/components/DatePicker/useDatePicker.js +59 -52
- package/lib-commonjs/components/DatePicker/useDatePicker.js.map +1 -1
- package/lib-commonjs/components/DatePicker/useDatePickerStyles.styles.js +9 -5
- package/lib-commonjs/components/DatePicker/useDatePickerStyles.styles.js.map +1 -1
- package/lib-commonjs/index.js +98 -34
- package/lib-commonjs/index.js.map +1 -1
- package/lib-commonjs/utils/animations.js +45 -15
- package/lib-commonjs/utils/animations.js.map +1 -1
- package/lib-commonjs/utils/constants.js +18 -6
- package/lib-commonjs/utils/constants.js.map +1 -1
- package/lib-commonjs/utils/dateFormatting/dateFormatting.defaults.js +24 -8
- package/lib-commonjs/utils/dateFormatting/dateFormatting.defaults.js.map +1 -1
- package/lib-commonjs/utils/dateFormatting/index.js +3 -3
- package/lib-commonjs/utils/dateFormatting/index.js.map +1 -1
- package/lib-commonjs/utils/dateGrid/findAvailableDate.js +4 -2
- package/lib-commonjs/utils/dateGrid/findAvailableDate.js.map +1 -1
- package/lib-commonjs/utils/dateGrid/getBoundedDateRange.js +3 -1
- package/lib-commonjs/utils/dateGrid/getBoundedDateRange.js.map +1 -1
- package/lib-commonjs/utils/dateGrid/getDateRangeTypeToUse.js +3 -1
- package/lib-commonjs/utils/dateGrid/getDateRangeTypeToUse.js.map +1 -1
- package/lib-commonjs/utils/dateGrid/getDayGrid.js +6 -3
- package/lib-commonjs/utils/dateGrid/getDayGrid.js.map +1 -1
- package/lib-commonjs/utils/dateGrid/index.js +6 -6
- package/lib-commonjs/utils/dateGrid/index.js.map +1 -1
- package/lib-commonjs/utils/dateGrid/isAfterMaxDate.js +4 -2
- package/lib-commonjs/utils/dateGrid/isAfterMaxDate.js.map +1 -1
- package/lib-commonjs/utils/dateGrid/isBeforeMinDate.js +4 -2
- package/lib-commonjs/utils/dateGrid/isBeforeMinDate.js.map +1 -1
- package/lib-commonjs/utils/dateGrid/isContiguous.js +3 -1
- package/lib-commonjs/utils/dateGrid/isContiguous.js.map +1 -1
- package/lib-commonjs/utils/dateGrid/isRestrictedDate.js +4 -2
- package/lib-commonjs/utils/dateGrid/isRestrictedDate.js.map +1 -1
- package/lib-commonjs/utils/dateMath/dateMath.js +54 -18
- package/lib-commonjs/utils/dateMath/dateMath.js.map +1 -1
- package/lib-commonjs/utils/dateMath/index.js +2 -2
- package/lib-commonjs/utils/dateMath/index.js.map +1 -1
- package/lib-commonjs/utils/dom.js +5 -3
- package/lib-commonjs/utils/dom.js.map +1 -1
- package/lib-commonjs/utils/focus.js +3 -1
- package/lib-commonjs/utils/focus.js.map +1 -1
- package/lib-commonjs/utils/index.js +8 -8
- package/lib-commonjs/utils/index.js.map +1 -1
- package/lib-commonjs/utils/usePopupPositioning.js +9 -7
- package/lib-commonjs/utils/usePopupPositioning.js.map +1 -1
- package/package.json +17 -17
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["CalendarMonth.tsx"],"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 {\n addYears,\n compareDatePart,\n getMonthEnd,\n getMonthStart,\n getYearEnd,\n getYearStart,\n setMonth,\n DEFAULT_DATE_FORMATTING,\n} from '../../utils';\nimport { CalendarYear } from '../CalendarYear/CalendarYear';\nimport { useCalendarMonthStyles_unstable } from './useCalendarMonthStyles';\nimport type { CalendarMonthProps } from './CalendarMonth.types';\nimport type { CalendarYearRange, ICalendarYear } from '../CalendarYear/CalendarYear.types';\n\nconst MONTHS_PER_ROW = 4;\n\nfunction useAnimateBackwards({ navigatedDate }: { navigatedDate: CalendarMonthProps['navigatedDate'] }) {\n const currentYear = navigatedDate.getFullYear();\n\n const previousYearRef = React.useRef<number | undefined>();\n React.useEffect(() => {\n previousYearRef.current = currentYear;\n });\n const previousYear = previousYearRef.current;\n\n if (previousYear === undefined || previousYear === currentYear) {\n return undefined;\n } else {\n return previousYear > currentYear;\n }\n}\n\nfunction useFocusLogic({ componentRef }: { componentRef: CalendarMonthProps['componentRef'] }) {\n const navigatedMonthRef = React.useRef<HTMLButtonElement>(null);\n const calendarYearRef = React.useRef<ICalendarYear>(null);\n const focusOnUpdate = React.useRef(false);\n\n const focus = React.useCallback(() => {\n if (calendarYearRef.current) {\n calendarYearRef.current.focus();\n } else if (navigatedMonthRef.current) {\n navigatedMonthRef.current.focus();\n }\n }, []);\n\n React.useImperativeHandle(componentRef, () => ({ focus }), [focus]);\n\n React.useEffect(() => {\n if (focusOnUpdate.current) {\n focus();\n focusOnUpdate.current = false;\n }\n });\n\n const focusOnNextUpdate = () => {\n focusOnUpdate.current = true;\n };\n\n return [navigatedMonthRef, calendarYearRef, focusOnNextUpdate] as const;\n}\n\n/**\n * @internal\n */\nexport const CalendarMonth: React.FunctionComponent<CalendarMonthProps> = props => {\n const {\n allFocusable,\n animationDirection,\n className,\n componentRef,\n dateTimeFormatter = DEFAULT_DATE_FORMATTING,\n highlightCurrentMonth,\n highlightSelectedMonth,\n maxDate,\n minDate,\n navigatedDate,\n onHeaderSelect: onUserHeaderSelect,\n onNavigateDate,\n selectedDate,\n strings,\n today = new Date(),\n yearPickerHidden = false,\n } = props;\n\n const [navigatedMonthRef, calendarYearRef, focusOnNextUpdate] = useFocusLogic({ componentRef });\n const [isYearPickerVisible, setIsYearPickerVisible] = React.useState(false);\n\n const animateBackwards = useAnimateBackwards({ navigatedDate });\n\n const selectMonthCallback = (newMonth: number): (() => void) => {\n return () => onSelectMonth(newMonth);\n };\n\n const onSelectNextYear = (): void => {\n onNavigateDate(addYears(navigatedDate, 1), false);\n };\n\n const onSelectPrevYear = (): void => {\n onNavigateDate(addYears(navigatedDate, -1), false);\n };\n\n const onSelectMonth = (newMonth: number): void => {\n // If header is clickable the calendars are overlayed, switch back to day picker when month is clicked\n onUserHeaderSelect?.();\n onNavigateDate(setMonth(navigatedDate, newMonth), true);\n };\n\n const onHeaderSelect = (): void => {\n if (!yearPickerHidden) {\n focusOnNextUpdate();\n setIsYearPickerVisible(true);\n } else {\n onUserHeaderSelect?.();\n }\n };\n\n const onSelectYear = (selectedYear: number) => {\n focusOnNextUpdate();\n const navYear = navigatedDate.getFullYear();\n if (navYear !== selectedYear) {\n let newNavigationDate = new Date(navigatedDate.getTime());\n newNavigationDate.setFullYear(selectedYear);\n // for min and max dates, adjust the new navigation date - perhaps this should be\n // checked on the master navigation date handler (i.e. in Calendar)\n if (maxDate && newNavigationDate > maxDate) {\n newNavigationDate = setMonth(newNavigationDate, maxDate.getMonth());\n } else if (minDate && newNavigationDate < minDate) {\n newNavigationDate = setMonth(newNavigationDate, minDate.getMonth());\n }\n onNavigateDate(newNavigationDate, true);\n }\n setIsYearPickerVisible(false);\n };\n\n const onYearPickerHeaderSelect = (focus: boolean): void => {\n focusOnNextUpdate();\n setIsYearPickerVisible(false);\n };\n\n const dateFormatter = dateTimeFormatter!;\n\n // determine if previous/next years are in bounds\n const isPrevYearInBounds = minDate ? compareDatePart(minDate, getYearStart(navigatedDate)) < 0 : true;\n const isNextYearInBounds = maxDate ? compareDatePart(getYearEnd(navigatedDate), maxDate) < 0 : true;\n\n const classNames = useCalendarMonthStyles_unstable({\n className,\n hasHeaderClickCallback: !!onUserHeaderSelect || !yearPickerHidden,\n highlightCurrent: highlightCurrentMonth,\n highlightSelected: highlightSelectedMonth,\n animateBackwards,\n animationDirection,\n });\n\n const { dir } = useFluent_unstable();\n const arrowNavigationAttributes = useArrowNavigationGroup({ axis: 'both' });\n\n if (isYearPickerVisible) {\n const [onRenderYear, yearStrings] = getYearStrings({ dateTimeFormatter, navigatedDate, strings });\n // use navigated date for the year picker\n return (\n <CalendarYear\n key={'calendarYear'}\n minYear={minDate ? minDate.getFullYear() : undefined}\n maxYear={maxDate ? maxDate.getFullYear() : undefined}\n // eslint-disable-next-line react/jsx-no-bind\n onSelectYear={onSelectYear}\n // eslint-disable-next-line react/jsx-no-bind\n onHeaderSelect={onYearPickerHeaderSelect}\n selectedYear={\n selectedDate ? selectedDate.getFullYear() : navigatedDate ? navigatedDate.getFullYear() : undefined\n }\n navigatedYear={navigatedDate.getFullYear()}\n onRenderYear={onRenderYear}\n strings={yearStrings}\n componentRef={calendarYearRef}\n highlightCurrentYear={highlightCurrentMonth}\n highlightSelectedYear={highlightSelectedMonth}\n animationDirection={animationDirection}\n />\n );\n }\n\n const rowIndexes = [];\n for (let i = 0; i < strings.shortMonths.length / MONTHS_PER_ROW; i++) {\n rowIndexes.push(i);\n }\n\n const yearString = dateFormatter.formatYear(navigatedDate);\n const headerAriaLabel = strings.monthPickerHeaderAriaLabel\n ? strings.monthPickerHeaderAriaLabel.replace('{0}', yearString)\n : yearString;\n\n return (\n <div className={classNames.root}>\n <div className={classNames.headerContainer}>\n <button\n className={classNames.currentItemButton}\n onClick={onHeaderSelect}\n onKeyDown={onButtonKeyDown(onHeaderSelect)}\n aria-label={headerAriaLabel}\n tabIndex={!!onUserHeaderSelect || !yearPickerHidden ? 0 : -1}\n type=\"button\"\n >\n <span aria-live=\"polite\" aria-atomic=\"true\">\n {yearString}\n </span>\n </button>\n <div className={classNames.navigationButtonsContainer}>\n <button\n className={mergeClasses(classNames.navigationButton, !isPrevYearInBounds && classNames.disabled)}\n aria-disabled={!isPrevYearInBounds}\n tabIndex={isPrevYearInBounds ? undefined : allFocusable ? 0 : -1}\n onClick={isPrevYearInBounds ? onSelectPrevYear : undefined}\n onKeyDown={isPrevYearInBounds ? onButtonKeyDown(onSelectPrevYear) : undefined}\n title={\n strings.prevYearAriaLabel\n ? strings.prevYearAriaLabel + ' ' + dateFormatter.formatYear(addYears(navigatedDate, -1))\n : undefined\n }\n type=\"button\"\n >\n {dir === 'ltr' ? <ArrowUpRegular /> : <ArrowDownRegular />}\n </button>\n <button\n className={mergeClasses(classNames.navigationButton, !isNextYearInBounds && classNames.disabled)}\n aria-disabled={!isNextYearInBounds}\n tabIndex={isNextYearInBounds ? undefined : allFocusable ? 0 : -1}\n onClick={isNextYearInBounds ? onSelectNextYear : undefined}\n onKeyDown={isNextYearInBounds ? onButtonKeyDown(onSelectNextYear) : undefined}\n title={\n strings.nextYearAriaLabel\n ? strings.nextYearAriaLabel + ' ' + dateFormatter.formatYear(addYears(navigatedDate, 1))\n : undefined\n }\n type=\"button\"\n >\n {dir === 'ltr' ? <ArrowDownRegular /> : <ArrowUpRegular />}\n </button>\n </div>\n </div>\n <div {...arrowNavigationAttributes} className={classNames.gridContainer} role=\"grid\" aria-label={yearString}>\n {rowIndexes.map((rowNum: number) => {\n const monthsForRow = strings!.shortMonths.slice(rowNum * MONTHS_PER_ROW, (rowNum + 1) * MONTHS_PER_ROW);\n return (\n <div key={'monthRow_' + rowNum + navigatedDate.getFullYear()} role=\"row\" className={classNames.buttonRow}>\n {monthsForRow.map((month: string, index: number) => {\n const monthIndex = rowNum * MONTHS_PER_ROW + index;\n const indexedMonth = setMonth(navigatedDate, monthIndex);\n const isNavigatedMonth = navigatedDate.getMonth() === monthIndex;\n const isSelectedMonth = selectedDate.getMonth() === monthIndex;\n const isSelectedYear = selectedDate.getFullYear() === navigatedDate.getFullYear();\n const isInBounds =\n (minDate ? compareDatePart(minDate, getMonthEnd(indexedMonth)) < 1 : true) &&\n (maxDate ? compareDatePart(getMonthStart(indexedMonth), maxDate) < 1 : true);\n\n return (\n <button\n ref={isNavigatedMonth ? navigatedMonthRef : undefined}\n role={'gridcell'}\n className={mergeClasses(\n classNames.itemButton,\n highlightCurrentMonth &&\n isCurrentMonth(monthIndex, navigatedDate.getFullYear(), today) &&\n classNames.current,\n highlightSelectedMonth && isSelectedMonth && isSelectedYear && classNames.selected,\n !isInBounds && classNames.disabled,\n )}\n disabled={!allFocusable && !isInBounds}\n key={monthIndex}\n onClick={isInBounds ? selectMonthCallback(monthIndex) : undefined}\n onKeyDown={isInBounds ? onButtonKeyDown(selectMonthCallback(monthIndex)) : undefined}\n aria-label={dateFormatter.formatMonth(indexedMonth, strings!)}\n aria-selected={isNavigatedMonth}\n tabIndex={isInBounds ? 0 : -1}\n type=\"button\"\n >\n {month}\n </button>\n );\n })}\n </div>\n );\n })}\n </div>\n </div>\n );\n};\nCalendarMonth.displayName = 'CalendarMonth';\n\nfunction getYearStrings({\n dateTimeFormatter,\n navigatedDate,\n strings,\n}: Pick<CalendarMonthProps, 'dateTimeFormatter' | 'navigatedDate' | 'strings'>) {\n const yearToString = (year: number) => {\n if (dateTimeFormatter) {\n // create a date based on the current nav date\n const yearFormattingDate = new Date(navigatedDate.getTime());\n yearFormattingDate.setFullYear(year);\n return dateTimeFormatter.formatYear(yearFormattingDate);\n }\n return String(year);\n };\n\n const yearRangeToString = (yearRange: CalendarYearRange) => {\n return `${yearToString(yearRange.fromYear)} - ${yearToString(yearRange.toYear)}`;\n };\n\n const yearRangeToNextDecadeLabel = (yearRange: CalendarYearRange) => {\n return strings.nextYearRangeAriaLabel ? `${strings.nextYearRangeAriaLabel} ${yearRangeToString(yearRange)}` : '';\n };\n\n const yearRangeToPrevDecadeLabel = (yearRange: CalendarYearRange) => {\n return strings.prevYearRangeAriaLabel ? `${strings.prevYearRangeAriaLabel} ${yearRangeToString(yearRange)}` : '';\n };\n\n return [\n yearToString,\n {\n rangeAriaLabel: yearRangeToString,\n prevRangeAriaLabel: yearRangeToPrevDecadeLabel,\n nextRangeAriaLabel: yearRangeToNextDecadeLabel,\n headerAriaLabelFormatString: strings.yearPickerHeaderAriaLabel,\n } as const,\n ] as const;\n}\n\nfunction isCurrentMonth(month: number, year: number, today: Date): boolean {\n return today.getFullYear() === year && today.getMonth() === month;\n}\n\nfunction onButtonKeyDown(callback: () => void): (ev: React.KeyboardEvent<HTMLButtonElement>) => void {\n return (ev: React.KeyboardEvent<HTMLButtonElement>) => {\n switch (ev.key) {\n case Enter:\n callback();\n break;\n }\n };\n}\n"],"names":["React","Enter","ArrowDownRegular","ArrowUpRegular","useFluent_unstable","useArrowNavigationGroup","mergeClasses","addYears","compareDatePart","getMonthEnd","getMonthStart","getYearEnd","getYearStart","setMonth","DEFAULT_DATE_FORMATTING","CalendarYear","useCalendarMonthStyles_unstable","MONTHS_PER_ROW","useAnimateBackwards","navigatedDate","currentYear","getFullYear","previousYearRef","useRef","useEffect","current","previousYear","undefined","useFocusLogic","componentRef","navigatedMonthRef","calendarYearRef","focusOnUpdate","focus","useCallback","useImperativeHandle","focusOnNextUpdate","CalendarMonth","props","allFocusable","animationDirection","className","dateTimeFormatter","highlightCurrentMonth","highlightSelectedMonth","maxDate","minDate","onHeaderSelect","onUserHeaderSelect","onNavigateDate","selectedDate","strings","today","Date","yearPickerHidden","isYearPickerVisible","setIsYearPickerVisible","useState","animateBackwards","selectMonthCallback","newMonth","onSelectMonth","onSelectNextYear","onSelectPrevYear","onSelectYear","selectedYear","navYear","newNavigationDate","getTime","setFullYear","getMonth","onYearPickerHeaderSelect","dateFormatter","isPrevYearInBounds","isNextYearInBounds","classNames","hasHeaderClickCallback","highlightCurrent","highlightSelected","dir","arrowNavigationAttributes","axis","onRenderYear","yearStrings","getYearStrings","key","minYear","maxYear","navigatedYear","highlightCurrentYear","highlightSelectedYear","rowIndexes","i","shortMonths","length","push","yearString","formatYear","headerAriaLabel","monthPickerHeaderAriaLabel","replace","div","root","headerContainer","button","currentItemButton","onClick","onKeyDown","onButtonKeyDown","aria-label","tabIndex","type","span","aria-live","aria-atomic","navigationButtonsContainer","navigationButton","disabled","aria-disabled","title","prevYearAriaLabel","nextYearAriaLabel","gridContainer","role","map","rowNum","monthsForRow","slice","buttonRow","month","index","monthIndex","indexedMonth","isNavigatedMonth","isSelectedMonth","isSelectedYear","isInBounds","ref","itemButton","isCurrentMonth","selected","formatMonth","aria-selected","displayName","yearToString","year","yearFormattingDate","String","yearRangeToString","yearRange","fromYear","toYear","yearRangeToNextDecadeLabel","nextYearRangeAriaLabel","yearRangeToPrevDecadeLabel","prevYearRangeAriaLabel","rangeAriaLabel","prevRangeAriaLabel","nextRangeAriaLabel","headerAriaLabelFormatString","yearPickerHeaderAriaLabel","callback","ev"],"mappings":"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"}
|
|
1
|
+
{"version":3,"sources":["CalendarMonth.tsx"],"sourcesContent":["import * as React from 'react';\nimport { Enter } from '@fluentui/keyboard-keys';\nimport { 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 {\n addYears,\n compareDatePart,\n getMonthEnd,\n getMonthStart,\n getYearEnd,\n getYearStart,\n setMonth,\n DEFAULT_DATE_FORMATTING,\n} from '../../utils';\nimport { CalendarYear } from '../CalendarYear/CalendarYear';\nimport { useCalendarMonthStyles_unstable } from './useCalendarMonthStyles';\nimport type { CalendarMonthProps } from './CalendarMonth.types';\nimport type { CalendarYearRange, ICalendarYear } from '../CalendarYear/CalendarYear.types';\n\nconst MONTHS_PER_ROW = 4;\n\nfunction useAnimateBackwards({ navigatedDate }: { navigatedDate: CalendarMonthProps['navigatedDate'] }) {\n const currentYear = navigatedDate.getFullYear();\n\n const previousYearRef = React.useRef<number | undefined>();\n React.useEffect(() => {\n previousYearRef.current = currentYear;\n });\n const previousYear = previousYearRef.current;\n\n if (previousYear === undefined || previousYear === currentYear) {\n return undefined;\n } else {\n return previousYear > currentYear;\n }\n}\n\nfunction useFocusLogic({ componentRef }: { componentRef: CalendarMonthProps['componentRef'] }) {\n const navigatedMonthRef = React.useRef<HTMLButtonElement>(null);\n const calendarYearRef = React.useRef<ICalendarYear>(null);\n const focusOnUpdate = React.useRef(false);\n\n const focus = React.useCallback(() => {\n if (calendarYearRef.current) {\n calendarYearRef.current.focus();\n } else if (navigatedMonthRef.current) {\n navigatedMonthRef.current.focus();\n }\n }, []);\n\n React.useImperativeHandle(componentRef, () => ({ focus }), [focus]);\n\n React.useEffect(() => {\n if (focusOnUpdate.current) {\n focus();\n focusOnUpdate.current = false;\n }\n });\n\n const focusOnNextUpdate = () => {\n focusOnUpdate.current = true;\n };\n\n return [navigatedMonthRef, calendarYearRef, focusOnNextUpdate] as const;\n}\n\n/**\n * @internal\n */\nexport const CalendarMonth: React.FunctionComponent<CalendarMonthProps> = props => {\n const {\n allFocusable,\n animationDirection,\n className,\n componentRef,\n dateTimeFormatter = DEFAULT_DATE_FORMATTING,\n highlightCurrentMonth,\n highlightSelectedMonth,\n maxDate,\n minDate,\n navigatedDate,\n onHeaderSelect: onUserHeaderSelect,\n onNavigateDate,\n selectedDate,\n strings,\n today = new Date(),\n yearPickerHidden = false,\n } = props;\n\n const [navigatedMonthRef, calendarYearRef, focusOnNextUpdate] = useFocusLogic({ componentRef });\n const [isYearPickerVisible, setIsYearPickerVisible] = React.useState(false);\n\n const animateBackwards = useAnimateBackwards({ navigatedDate });\n\n const selectMonthCallback = (newMonth: number): (() => void) => {\n return () => onSelectMonth(newMonth);\n };\n\n const onSelectNextYear = (): void => {\n onNavigateDate(addYears(navigatedDate, 1), false);\n };\n\n const onSelectPrevYear = (): void => {\n onNavigateDate(addYears(navigatedDate, -1), false);\n };\n\n const onSelectMonth = (newMonth: number): void => {\n // If header is clickable the calendars are overlayed, switch back to day picker when month is clicked\n onUserHeaderSelect?.();\n onNavigateDate(setMonth(navigatedDate, newMonth), true);\n };\n\n const onHeaderSelect = (): void => {\n if (!yearPickerHidden) {\n focusOnNextUpdate();\n setIsYearPickerVisible(true);\n } else {\n onUserHeaderSelect?.();\n }\n };\n\n const onSelectYear = (selectedYear: number) => {\n focusOnNextUpdate();\n const navYear = navigatedDate.getFullYear();\n if (navYear !== selectedYear) {\n let newNavigationDate = new Date(navigatedDate.getTime());\n newNavigationDate.setFullYear(selectedYear);\n // for min and max dates, adjust the new navigation date - perhaps this should be\n // checked on the master navigation date handler (i.e. in Calendar)\n if (maxDate && newNavigationDate > maxDate) {\n newNavigationDate = setMonth(newNavigationDate, maxDate.getMonth());\n } else if (minDate && newNavigationDate < minDate) {\n newNavigationDate = setMonth(newNavigationDate, minDate.getMonth());\n }\n onNavigateDate(newNavigationDate, true);\n }\n setIsYearPickerVisible(false);\n };\n\n const onYearPickerHeaderSelect = (focus: boolean): void => {\n focusOnNextUpdate();\n setIsYearPickerVisible(false);\n };\n\n const dateFormatter = dateTimeFormatter!;\n\n // determine if previous/next years are in bounds\n const isPrevYearInBounds = minDate ? compareDatePart(minDate, getYearStart(navigatedDate)) < 0 : true;\n const isNextYearInBounds = maxDate ? compareDatePart(getYearEnd(navigatedDate), maxDate) < 0 : true;\n\n const classNames = useCalendarMonthStyles_unstable({\n className,\n hasHeaderClickCallback: !!onUserHeaderSelect || !yearPickerHidden,\n highlightCurrent: highlightCurrentMonth,\n highlightSelected: highlightSelectedMonth,\n animateBackwards,\n animationDirection,\n });\n\n const { dir } = useFluent_unstable();\n const arrowNavigationAttributes = useArrowNavigationGroup({ axis: 'both' });\n\n if (isYearPickerVisible) {\n const [onRenderYear, yearStrings] = getYearStrings({ dateTimeFormatter, navigatedDate, strings });\n // use navigated date for the year picker\n return (\n <CalendarYear\n key={'calendarYear'}\n minYear={minDate ? minDate.getFullYear() : undefined}\n maxYear={maxDate ? maxDate.getFullYear() : undefined}\n // eslint-disable-next-line react/jsx-no-bind\n onSelectYear={onSelectYear}\n // eslint-disable-next-line react/jsx-no-bind\n onHeaderSelect={onYearPickerHeaderSelect}\n selectedYear={\n selectedDate ? selectedDate.getFullYear() : navigatedDate ? navigatedDate.getFullYear() : undefined\n }\n navigatedYear={navigatedDate.getFullYear()}\n onRenderYear={onRenderYear}\n strings={yearStrings}\n componentRef={calendarYearRef}\n highlightCurrentYear={highlightCurrentMonth}\n highlightSelectedYear={highlightSelectedMonth}\n animationDirection={animationDirection}\n />\n );\n }\n\n const rowIndexes = [];\n for (let i = 0; i < strings.shortMonths.length / MONTHS_PER_ROW; i++) {\n rowIndexes.push(i);\n }\n\n const yearString = dateFormatter.formatYear(navigatedDate);\n const headerAriaLabel = strings.monthPickerHeaderAriaLabel\n ? strings.monthPickerHeaderAriaLabel.replace('{0}', yearString)\n : yearString;\n\n return (\n <div className={classNames.root}>\n <div className={classNames.headerContainer}>\n <button\n className={classNames.currentItemButton}\n onClick={onHeaderSelect}\n onKeyDown={onButtonKeyDown(onHeaderSelect)}\n aria-label={headerAriaLabel}\n tabIndex={!!onUserHeaderSelect || !yearPickerHidden ? 0 : -1}\n type=\"button\"\n >\n <span aria-live=\"polite\" aria-atomic=\"true\">\n {yearString}\n </span>\n </button>\n <div className={classNames.navigationButtonsContainer}>\n <button\n className={mergeClasses(classNames.navigationButton, !isPrevYearInBounds && classNames.disabled)}\n aria-disabled={!isPrevYearInBounds}\n tabIndex={isPrevYearInBounds ? undefined : allFocusable ? 0 : -1}\n onClick={isPrevYearInBounds ? onSelectPrevYear : undefined}\n onKeyDown={isPrevYearInBounds ? onButtonKeyDown(onSelectPrevYear) : undefined}\n title={\n strings.prevYearAriaLabel\n ? strings.prevYearAriaLabel + ' ' + dateFormatter.formatYear(addYears(navigatedDate, -1))\n : undefined\n }\n type=\"button\"\n >\n {dir === 'ltr' ? <ArrowUpRegular /> : <ArrowDownRegular />}\n </button>\n <button\n className={mergeClasses(classNames.navigationButton, !isNextYearInBounds && classNames.disabled)}\n aria-disabled={!isNextYearInBounds}\n tabIndex={isNextYearInBounds ? undefined : allFocusable ? 0 : -1}\n onClick={isNextYearInBounds ? onSelectNextYear : undefined}\n onKeyDown={isNextYearInBounds ? onButtonKeyDown(onSelectNextYear) : undefined}\n title={\n strings.nextYearAriaLabel\n ? strings.nextYearAriaLabel + ' ' + dateFormatter.formatYear(addYears(navigatedDate, 1))\n : undefined\n }\n type=\"button\"\n >\n {dir === 'ltr' ? <ArrowDownRegular /> : <ArrowUpRegular />}\n </button>\n </div>\n </div>\n <div {...arrowNavigationAttributes} className={classNames.gridContainer} role=\"grid\" aria-label={yearString}>\n {rowIndexes.map((rowNum: number) => {\n const monthsForRow = strings!.shortMonths.slice(rowNum * MONTHS_PER_ROW, (rowNum + 1) * MONTHS_PER_ROW);\n return (\n <div key={'monthRow_' + rowNum + navigatedDate.getFullYear()} role=\"row\" className={classNames.buttonRow}>\n {monthsForRow.map((month: string, index: number) => {\n const monthIndex = rowNum * MONTHS_PER_ROW + index;\n const indexedMonth = setMonth(navigatedDate, monthIndex);\n const isNavigatedMonth = navigatedDate.getMonth() === monthIndex;\n const isSelectedMonth = selectedDate.getMonth() === monthIndex;\n const isSelectedYear = selectedDate.getFullYear() === navigatedDate.getFullYear();\n const isInBounds =\n (minDate ? compareDatePart(minDate, getMonthEnd(indexedMonth)) < 1 : true) &&\n (maxDate ? compareDatePart(getMonthStart(indexedMonth), maxDate) < 1 : true);\n\n return (\n <button\n ref={isNavigatedMonth ? navigatedMonthRef : undefined}\n role={'gridcell'}\n className={mergeClasses(\n classNames.itemButton,\n highlightCurrentMonth &&\n isCurrentMonth(monthIndex, navigatedDate.getFullYear(), today) &&\n classNames.current,\n highlightSelectedMonth && isSelectedMonth && isSelectedYear && classNames.selected,\n !isInBounds && classNames.disabled,\n )}\n disabled={!allFocusable && !isInBounds}\n key={monthIndex}\n onClick={isInBounds ? selectMonthCallback(monthIndex) : undefined}\n onKeyDown={isInBounds ? onButtonKeyDown(selectMonthCallback(monthIndex)) : undefined}\n aria-label={dateFormatter.formatMonth(indexedMonth, strings!)}\n aria-selected={isNavigatedMonth}\n tabIndex={isInBounds ? 0 : -1}\n type=\"button\"\n >\n {month}\n </button>\n );\n })}\n </div>\n );\n })}\n </div>\n </div>\n );\n};\nCalendarMonth.displayName = 'CalendarMonth';\n\nfunction getYearStrings({\n dateTimeFormatter,\n navigatedDate,\n strings,\n}: Pick<CalendarMonthProps, 'dateTimeFormatter' | 'navigatedDate' | 'strings'>) {\n const yearToString = (year: number) => {\n if (dateTimeFormatter) {\n // create a date based on the current nav date\n const yearFormattingDate = new Date(navigatedDate.getTime());\n yearFormattingDate.setFullYear(year);\n return dateTimeFormatter.formatYear(yearFormattingDate);\n }\n return String(year);\n };\n\n const yearRangeToString = (yearRange: CalendarYearRange) => {\n return `${yearToString(yearRange.fromYear)} - ${yearToString(yearRange.toYear)}`;\n };\n\n const yearRangeToNextDecadeLabel = (yearRange: CalendarYearRange) => {\n return strings.nextYearRangeAriaLabel ? `${strings.nextYearRangeAriaLabel} ${yearRangeToString(yearRange)}` : '';\n };\n\n const yearRangeToPrevDecadeLabel = (yearRange: CalendarYearRange) => {\n return strings.prevYearRangeAriaLabel ? `${strings.prevYearRangeAriaLabel} ${yearRangeToString(yearRange)}` : '';\n };\n\n return [\n yearToString,\n {\n rangeAriaLabel: yearRangeToString,\n prevRangeAriaLabel: yearRangeToPrevDecadeLabel,\n nextRangeAriaLabel: yearRangeToNextDecadeLabel,\n headerAriaLabelFormatString: strings.yearPickerHeaderAriaLabel,\n } as const,\n ] as const;\n}\n\nfunction isCurrentMonth(month: number, year: number, today: Date): boolean {\n return today.getFullYear() === year && today.getMonth() === month;\n}\n\nfunction onButtonKeyDown(callback: () => void): (ev: React.KeyboardEvent<HTMLButtonElement>) => void {\n return (ev: React.KeyboardEvent<HTMLButtonElement>) => {\n switch (ev.key) {\n case Enter:\n callback();\n break;\n }\n };\n}\n"],"names":["React","Enter","ArrowDownRegular","ArrowUpRegular","useFluent_unstable","useArrowNavigationGroup","mergeClasses","addYears","compareDatePart","getMonthEnd","getMonthStart","getYearEnd","getYearStart","setMonth","DEFAULT_DATE_FORMATTING","CalendarYear","useCalendarMonthStyles_unstable","MONTHS_PER_ROW","useAnimateBackwards","navigatedDate","currentYear","getFullYear","previousYearRef","useRef","useEffect","current","previousYear","undefined","useFocusLogic","componentRef","navigatedMonthRef","calendarYearRef","focusOnUpdate","focus","useCallback","useImperativeHandle","focusOnNextUpdate","CalendarMonth","props","allFocusable","animationDirection","className","dateTimeFormatter","highlightCurrentMonth","highlightSelectedMonth","maxDate","minDate","onHeaderSelect","onUserHeaderSelect","onNavigateDate","selectedDate","strings","today","Date","yearPickerHidden","isYearPickerVisible","setIsYearPickerVisible","useState","animateBackwards","selectMonthCallback","newMonth","onSelectMonth","onSelectNextYear","onSelectPrevYear","onSelectYear","selectedYear","navYear","newNavigationDate","getTime","setFullYear","getMonth","onYearPickerHeaderSelect","dateFormatter","isPrevYearInBounds","isNextYearInBounds","classNames","hasHeaderClickCallback","highlightCurrent","highlightSelected","dir","arrowNavigationAttributes","axis","onRenderYear","yearStrings","getYearStrings","key","minYear","maxYear","navigatedYear","highlightCurrentYear","highlightSelectedYear","rowIndexes","i","shortMonths","length","push","yearString","formatYear","headerAriaLabel","monthPickerHeaderAriaLabel","replace","div","root","headerContainer","button","currentItemButton","onClick","onKeyDown","onButtonKeyDown","aria-label","tabIndex","type","span","aria-live","aria-atomic","navigationButtonsContainer","navigationButton","disabled","aria-disabled","title","prevYearAriaLabel","nextYearAriaLabel","gridContainer","role","map","rowNum","monthsForRow","slice","buttonRow","month","index","monthIndex","indexedMonth","isNavigatedMonth","isSelectedMonth","isSelectedYear","isInBounds","ref","itemButton","isCurrentMonth","selected","formatMonth","aria-selected","displayName","yearToString","year","yearFormattingDate","String","yearRangeToString","yearRange","fromYear","toYear","yearRangeToNextDecadeLabel","nextYearRangeAriaLabel","yearRangeToPrevDecadeLabel","prevYearRangeAriaLabel","rangeAriaLabel","prevRangeAriaLabel","nextRangeAriaLabel","headerAriaLabelFormatString","yearPickerHeaderAriaLabel","callback","ev"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["useCalendarMonthStyles.ts"],"sourcesContent":["import { useCalendarPickerStyles_unstable } from '../CalendarPicker/useCalendarPickerStyles.styles';\nimport type { CalendarMonthStyleProps, CalendarMonthStyles } from './CalendarMonth.types';\n\n/**\n * @internal\n *\n * Apply styling to the CalendarMonth slots based on the state\n */\nexport const useCalendarMonthStyles_unstable = (props: CalendarMonthStyleProps): CalendarMonthStyles => {\n return useCalendarPickerStyles_unstable(props);\n};\n"],"names":["useCalendarPickerStyles_unstable","useCalendarMonthStyles_unstable","props"],"mappings":"AAAA,SAASA,gCAAgC,QAAQ,mDAAmD;AAGpG;;;;CAIC,GACD,OAAO,MAAMC,kCAAkC,CAACC
|
|
1
|
+
{"version":3,"sources":["useCalendarMonthStyles.ts"],"sourcesContent":["import { useCalendarPickerStyles_unstable } from '../CalendarPicker/useCalendarPickerStyles.styles';\nimport type { CalendarMonthStyleProps, CalendarMonthStyles } from './CalendarMonth.types';\n\n/**\n * @internal\n *\n * Apply styling to the CalendarMonth slots based on the state\n */\nexport const useCalendarMonthStyles_unstable = (props: CalendarMonthStyleProps): CalendarMonthStyles => {\n return useCalendarPickerStyles_unstable(props);\n};\n"],"names":["useCalendarPickerStyles_unstable","useCalendarMonthStyles_unstable","props"],"mappings":"AAAA,SAASA,gCAAgC,QAAQ,mDAAmD;AAGpG;;;;CAIC,GACD,OAAO,MAAMC,kCAAkC,CAACC;IAC9C,OAAOF,iCAAiCE;AAC1C,EAAE"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["tokens","__styles","mergeClasses","shorthands","DURATION_2","DURATION_3","EASING_FUNCTION_1","EASING_FUNCTION_2","FADE_IN","SLIDE_DOWN_IN20","SLIDE_LEFT_IN20","SLIDE_RIGHT_IN20","SLIDE_UP_IN20","AnimationDirection","calendarPickerClassNames","root","headerContainer","currentItemButton","navigationButtonsContainer","navigationButton","gridContainer","buttonRow","itemButton","current","selected","disabled","useRootStyles","base","B7ck84d","B68tc82","Bmxbyg5","z8tnut","z189sj","Byoj8tv","uwmqm3","a9b677","normalize","E5pizo","B6of3ja","t21cq0","jrapky","Frg6f3","d","useHeaderContainerStyles","mc9l5x","useCurrentItemButtonStyles","De3pzq","icvyot","vrafjx","oivjwe","wvpqe5","sj55zd","Bh6795r","Bahqtrf","Be2twd7","Bhrd7zp","fsow6f","animation","vin17d","Bf5fcs","Bv12yb3","Ezkn3b","hasHeaderClickCallback","Jwef8y","Bi91k9c","eoavqd","Dwtyhm","ukgb2i","pugfm4","iro3zm","B2d53fq","c3iz72","syojd9","Bx68yb","mghro0","k","h","useNavigationButtonsContainerStyles","Bt984gj","useNavigationButtonStyles","Bbmb7ep","Beyfa6y","B7oj6ja","Btl43ni","Bqenvij","Bg96gwp","sshi5w","Bf4jedk","qhf8xq","useGridContainerStyles","useButtonRowStyles","sw9gdo","horizontalBackward","horizontalForward","verticalBackward","verticalForward","useItemButtonStyles","Btgfwho","xrote9","Bja5ulm","Bqrx1nm","ze5xyy","iyr2r2","Bv57zgv","Bnosqey","Bx7pl5v","g2kj27","pc6evw","B76w7ga","m","useCurrentStyles","highlightCurrent","Bsw6fvg","Bbusuzp","ycbfsm","mk428o","B1lrsqs","z0vste","Bgjd7nk","kur00z","useSelectedStyles","highlightSelected","useDisabledStyles","Bg33ivm","t69wg0","useCalendarPickerStyles_unstable","props","rootStyles","headerContainerStyles","currentItemButtonStyles","navigationButtonsContainerStyles","navigationButtonStyles","gridContainerStyles","buttonRowStyles","itemButtonStyles","currentStyles","selectedStyles","disabledStyles","animateBackwards","animationDirection","className","undefined","Horizontal"],"sources":["useCalendarPickerStyles.styles.js"],"sourcesContent":["import { tokens } from '@fluentui/react-theme';\nimport { makeStyles, mergeClasses, shorthands } from '@griffel/react';\nimport { DURATION_2, DURATION_3, EASING_FUNCTION_1, EASING_FUNCTION_2, FADE_IN, SLIDE_DOWN_IN20, SLIDE_LEFT_IN20, SLIDE_RIGHT_IN20, SLIDE_UP_IN20 } from '../../utils/animations';\nimport { AnimationDirection } from '../Calendar/Calendar.types';\n/**\n * @internal\n */ export const calendarPickerClassNames = {\n root: 'fui-CalendarPicker',\n headerContainer: 'fui-CalendarPicker__headerContainer',\n currentItemButton: 'fui-CalendarPicker__currentItemButton',\n navigationButtonsContainer: 'fui-CalendarPicker__navigationButtonsContainer',\n navigationButton: 'fui-CalendarPicker__navigationButton',\n gridContainer: 'fui-CalendarPicker__gridContainer',\n buttonRow: 'fui-CalendarPicker__buttonRow',\n itemButton: 'fui-CalendarPicker__itemButton',\n current: 'fui-CalendarPicker__current',\n selected: 'fui-CalendarPicker__selected',\n disabled: 'fui-CalendarPicker__disabled'\n};\nconst useRootStyles = makeStyles({\n base: {\n boxSizing: 'content-box',\n ...shorthands.overflow('hidden'),\n ...shorthands.padding('12px'),\n width: '196px'\n },\n normalize: {\n boxShadow: 'none',\n boxSizing: 'border-box',\n ...shorthands.margin(0),\n ...shorthands.padding(0)\n }\n});\nconst useHeaderContainerStyles = makeStyles({\n base: {\n display: 'flex'\n }\n});\nconst useCurrentItemButtonStyles = makeStyles({\n base: {\n backgroundColor: tokens.colorTransparentBackground,\n ...shorthands.borderStyle('none'),\n color: 'inherit',\n flexGrow: 1,\n fontFamily: 'inherit',\n fontSize: tokens.fontSizeBase300,\n fontWeight: tokens.fontWeightSemibold,\n ...shorthands.overflow('visible'),\n ...shorthands.padding(0, '4px', 0, '10px'),\n textAlign: 'left'\n },\n animation: {\n animationDuration: DURATION_2,\n animationFillMode: 'both',\n animationName: FADE_IN,\n animationTimingFunction: EASING_FUNCTION_2\n },\n hasHeaderClickCallback: {\n '&:hover': {\n backgroundColor: tokens.colorBrandBackgroundInvertedHover,\n color: tokens.colorBrandForegroundOnLightHover,\n cursor: 'pointer',\n ...shorthands.outline('1px', 'solid', tokens.colorTransparentStroke)\n },\n '&:hover:active': {\n backgroundColor: tokens.colorBrandBackgroundInvertedPressed,\n color: tokens.colorBrandForegroundOnLightPressed,\n cursor: 'pointer',\n ...shorthands.outline('1px', 'solid', tokens.colorTransparentStroke)\n }\n }\n});\nconst useNavigationButtonsContainerStyles = makeStyles({\n base: {\n alignItems: 'center',\n display: 'flex'\n }\n});\nconst useNavigationButtonStyles = makeStyles({\n base: {\n backgroundColor: tokens.colorTransparentBackground,\n ...shorthands.borderStyle('none'),\n ...shorthands.borderRadius('2px'),\n color: tokens.colorNeutralForeground1,\n display: 'block',\n fontFamily: 'inherit',\n fontSize: tokens.fontSizeBase200,\n height: '28px',\n lineHeight: '28px',\n minHeight: '28px',\n minWidth: '28px',\n ...shorthands.overflow('visible'),\n ...shorthands.padding(0),\n position: 'relative',\n textAlign: 'center',\n width: '28px',\n '&:hover': {\n backgroundColor: tokens.colorBrandBackgroundInvertedHover,\n color: tokens.colorBrandForegroundOnLightHover,\n cursor: 'pointer',\n ...shorthands.outline('1px', 'solid', tokens.colorTransparentStroke)\n },\n '&:hover:active': {\n backgroundColor: tokens.colorBrandBackgroundInvertedPressed,\n color: tokens.colorBrandForegroundOnLightPressed\n }\n }\n});\nconst useGridContainerStyles = makeStyles({\n base: {\n marginTop: '4px'\n }\n});\nconst useButtonRowStyles = makeStyles({\n base: {\n marginBottom: '16px',\n '&:last-of-type': {\n marginBottom: 0\n }\n },\n animation: {\n animationDuration: DURATION_3,\n animationFillMode: 'both',\n animationTimingFunction: EASING_FUNCTION_1\n },\n horizontalBackward: {\n animationName: [\n FADE_IN,\n SLIDE_RIGHT_IN20\n ]\n },\n horizontalForward: {\n animationName: [\n FADE_IN,\n SLIDE_LEFT_IN20\n ]\n },\n verticalBackward: {\n animationName: [\n FADE_IN,\n SLIDE_DOWN_IN20\n ]\n },\n verticalForward: {\n animationName: [\n FADE_IN,\n SLIDE_UP_IN20\n ]\n }\n});\nconst useItemButtonStyles = makeStyles({\n base: {\n backgroundColor: tokens.colorTransparentBackground,\n ...shorthands.borderStyle('none'),\n ...shorthands.borderRadius('2px'),\n color: tokens.colorNeutralForeground3,\n fontFamily: 'inherit',\n fontSize: tokens.fontSizeBase200,\n height: '40px',\n lineHeight: '40px',\n minHeight: '40px',\n minWidth: '40px',\n ...shorthands.margin(0, '12px', 0, 0),\n ...shorthands.overflow('visible'),\n ...shorthands.padding(0),\n width: '40px',\n '&:nth-child(4n + 4)': {\n marginRight: 0\n },\n '&:nth-child(n + 9)': {\n marginBottom: 0\n },\n '& div': {\n fontWeight: tokens.fontWeightRegular\n },\n '&:hover': {\n backgroundColor: tokens.colorBrandBackgroundInvertedHover,\n color: tokens.colorNeutralForeground1Static,\n cursor: 'pointer',\n ...shorthands.outline('1px', 'solid', tokens.colorTransparentStroke),\n '@media (forced-colors: active)': {\n backgroundColor: 'Window',\n color: 'WindowText',\n forcedColorAdjust: 'none',\n ...shorthands.outline('1px', 'solid', 'Highlight')\n }\n },\n '&:hover:active': {\n backgroundColor: tokens.colorBrandBackgroundInvertedPressed,\n '@media (forced-colors: active)': {\n backgroundColor: 'Window',\n color: 'Highlight',\n forcedColorAdjust: 'none'\n }\n }\n }\n});\nconst useCurrentStyles = makeStyles({\n highlightCurrent: {\n backgroundColor: tokens.colorBrandBackground,\n color: tokens.colorNeutralForegroundOnBrand,\n fontWeight: tokens.fontWeightSemibold,\n '@media (forced-colors: active)': {\n backgroundColor: 'WindowText',\n color: 'Window',\n forcedColorAdjust: 'none'\n },\n '&:hover, &:hover:active': {\n backgroundColor: tokens.colorBrandBackground,\n color: tokens.colorNeutralForegroundOnBrand,\n '@media (forced-colors: active)': {\n backgroundColor: 'WindowText',\n color: 'Window',\n forcedColorAdjust: 'none'\n }\n }\n }\n});\nconst useSelectedStyles = makeStyles({\n highlightSelected: {\n backgroundColor: tokens.colorBrandBackgroundInvertedSelected,\n color: tokens.colorNeutralForeground1Static,\n fontWeight: tokens.fontWeightSemibold,\n '@media (forced-colors: active)': {\n backgroundColor: 'Highlight',\n color: 'Window',\n forcedColorAdjust: 'none'\n },\n '& div': {\n fontWeight: tokens.fontWeightSemibold\n },\n '&:hover': {\n backgroundColor: tokens.colorBrandBackgroundInvertedSelected,\n color: tokens.colorNeutralForeground1Static,\n '@media (forced-colors: active)': {\n backgroundColor: 'Highlight',\n color: 'Window',\n forcedColorAdjust: 'none'\n }\n },\n '&:hover:active': {\n backgroundColor: tokens.colorBrandBackgroundInvertedPressed\n }\n }\n});\nconst useDisabledStyles = makeStyles({\n base: {\n '&, &:disabled, & button': {\n color: tokens.colorNeutralForegroundDisabled,\n pointerEvents: 'none'\n },\n '@media (forced-colors: active)': {\n color: 'GrayText',\n forcedColorAdjust: 'none'\n }\n }\n});\n/**\n * @internal\n *\n * Apply styling to the CalendarPicker slots based on the state\n */ export const useCalendarPickerStyles_unstable = (props)=>{\n const rootStyles = useRootStyles();\n const headerContainerStyles = useHeaderContainerStyles();\n const currentItemButtonStyles = useCurrentItemButtonStyles();\n const navigationButtonsContainerStyles = useNavigationButtonsContainerStyles();\n const navigationButtonStyles = useNavigationButtonStyles();\n const gridContainerStyles = useGridContainerStyles();\n const buttonRowStyles = useButtonRowStyles();\n const itemButtonStyles = useItemButtonStyles();\n const currentStyles = useCurrentStyles();\n const selectedStyles = useSelectedStyles();\n const disabledStyles = useDisabledStyles();\n const { animateBackwards , animationDirection , className , hasHeaderClickCallback , highlightCurrent , highlightSelected } = props;\n return {\n root: mergeClasses(calendarPickerClassNames.root, rootStyles.normalize, rootStyles.base, className),\n headerContainer: mergeClasses(calendarPickerClassNames.headerContainer, headerContainerStyles.base),\n currentItemButton: mergeClasses(calendarPickerClassNames.currentItemButton, currentItemButtonStyles.base, animateBackwards !== undefined && currentItemButtonStyles.animation, hasHeaderClickCallback && currentItemButtonStyles.hasHeaderClickCallback),\n navigationButtonsContainer: mergeClasses(calendarPickerClassNames.navigationButtonsContainer, navigationButtonsContainerStyles.base),\n navigationButton: mergeClasses(calendarPickerClassNames.navigationButton, navigationButtonStyles.base),\n gridContainer: mergeClasses(calendarPickerClassNames.gridContainer, gridContainerStyles.base),\n buttonRow: mergeClasses(calendarPickerClassNames.buttonRow, buttonRowStyles.base, buttonRowStyles.animation, animateBackwards !== undefined && (animationDirection === AnimationDirection.Horizontal ? animateBackwards ? buttonRowStyles.horizontalBackward : buttonRowStyles.horizontalForward : animateBackwards ? buttonRowStyles.verticalBackward : buttonRowStyles.verticalForward)),\n itemButton: mergeClasses(calendarPickerClassNames.itemButton, itemButtonStyles.base),\n selected: mergeClasses(calendarPickerClassNames.selected, highlightSelected && selectedStyles.highlightSelected),\n current: mergeClasses(calendarPickerClassNames.current, highlightCurrent && currentStyles.highlightCurrent),\n disabled: mergeClasses(calendarPickerClassNames.disabled, disabledStyles.base)\n };\n};\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"names":["tokens","__styles","mergeClasses","shorthands","DURATION_2","DURATION_3","EASING_FUNCTION_1","EASING_FUNCTION_2","FADE_IN","SLIDE_DOWN_IN20","SLIDE_LEFT_IN20","SLIDE_RIGHT_IN20","SLIDE_UP_IN20","AnimationDirection","calendarPickerClassNames","root","headerContainer","currentItemButton","navigationButtonsContainer","navigationButton","gridContainer","buttonRow","itemButton","current","selected","disabled","useRootStyles","base","B7ck84d","B68tc82","Bmxbyg5","z8tnut","z189sj","Byoj8tv","uwmqm3","a9b677","normalize","E5pizo","B6of3ja","t21cq0","jrapky","Frg6f3","d","useHeaderContainerStyles","mc9l5x","useCurrentItemButtonStyles","De3pzq","icvyot","vrafjx","oivjwe","wvpqe5","sj55zd","Bh6795r","Bahqtrf","Be2twd7","Bhrd7zp","fsow6f","animation","vin17d","Bf5fcs","Bv12yb3","Ezkn3b","hasHeaderClickCallback","Jwef8y","Bi91k9c","eoavqd","Dwtyhm","ukgb2i","pugfm4","iro3zm","B2d53fq","c3iz72","syojd9","Bx68yb","mghro0","k","h","useNavigationButtonsContainerStyles","Bt984gj","useNavigationButtonStyles","Bbmb7ep","Beyfa6y","B7oj6ja","Btl43ni","Bqenvij","Bg96gwp","sshi5w","Bf4jedk","qhf8xq","useGridContainerStyles","useButtonRowStyles","sw9gdo","horizontalBackward","horizontalForward","verticalBackward","verticalForward","useItemButtonStyles","Btgfwho","xrote9","Bja5ulm","Bqrx1nm","ze5xyy","iyr2r2","Bv57zgv","Bnosqey","Bx7pl5v","g2kj27","pc6evw","B76w7ga","m","useCurrentStyles","highlightCurrent","Bsw6fvg","Bbusuzp","ycbfsm","mk428o","B1lrsqs","z0vste","Bgjd7nk","kur00z","useSelectedStyles","highlightSelected","useDisabledStyles","Bg33ivm","t69wg0","useCalendarPickerStyles_unstable","props","rootStyles","headerContainerStyles","currentItemButtonStyles","navigationButtonsContainerStyles","navigationButtonStyles","gridContainerStyles","buttonRowStyles","itemButtonStyles","currentStyles","selectedStyles","disabledStyles","animateBackwards","animationDirection","className","undefined","Horizontal"],"sources":["useCalendarPickerStyles.styles.js"],"sourcesContent":["import { tokens } from '@fluentui/react-theme';\nimport { makeStyles, mergeClasses, shorthands } from '@griffel/react';\nimport { DURATION_2, DURATION_3, EASING_FUNCTION_1, EASING_FUNCTION_2, FADE_IN, SLIDE_DOWN_IN20, SLIDE_LEFT_IN20, SLIDE_RIGHT_IN20, SLIDE_UP_IN20 } from '../../utils/animations';\nimport { AnimationDirection } from '../Calendar/Calendar.types';\n/**\n * @internal\n */ export const calendarPickerClassNames = {\n root: 'fui-CalendarPicker',\n headerContainer: 'fui-CalendarPicker__headerContainer',\n currentItemButton: 'fui-CalendarPicker__currentItemButton',\n navigationButtonsContainer: 'fui-CalendarPicker__navigationButtonsContainer',\n navigationButton: 'fui-CalendarPicker__navigationButton',\n gridContainer: 'fui-CalendarPicker__gridContainer',\n buttonRow: 'fui-CalendarPicker__buttonRow',\n itemButton: 'fui-CalendarPicker__itemButton',\n current: 'fui-CalendarPicker__current',\n selected: 'fui-CalendarPicker__selected',\n disabled: 'fui-CalendarPicker__disabled'\n};\nconst useRootStyles = makeStyles({\n base: {\n boxSizing: 'content-box',\n ...shorthands.overflow('hidden'),\n ...shorthands.padding('12px'),\n width: '196px'\n },\n normalize: {\n boxShadow: 'none',\n boxSizing: 'border-box',\n ...shorthands.margin(0),\n ...shorthands.padding(0)\n }\n});\nconst useHeaderContainerStyles = makeStyles({\n base: {\n display: 'flex'\n }\n});\nconst useCurrentItemButtonStyles = makeStyles({\n base: {\n backgroundColor: tokens.colorTransparentBackground,\n ...shorthands.borderStyle('none'),\n color: 'inherit',\n flexGrow: 1,\n fontFamily: 'inherit',\n fontSize: tokens.fontSizeBase300,\n fontWeight: tokens.fontWeightSemibold,\n ...shorthands.overflow('visible'),\n ...shorthands.padding(0, '4px', 0, '10px'),\n textAlign: 'left'\n },\n animation: {\n animationDuration: DURATION_2,\n animationFillMode: 'both',\n animationName: FADE_IN,\n animationTimingFunction: EASING_FUNCTION_2\n },\n hasHeaderClickCallback: {\n '&:hover': {\n backgroundColor: tokens.colorBrandBackgroundInvertedHover,\n color: tokens.colorBrandForegroundOnLightHover,\n cursor: 'pointer',\n ...shorthands.outline('1px', 'solid', tokens.colorTransparentStroke)\n },\n '&:hover:active': {\n backgroundColor: tokens.colorBrandBackgroundInvertedPressed,\n color: tokens.colorBrandForegroundOnLightPressed,\n cursor: 'pointer',\n ...shorthands.outline('1px', 'solid', tokens.colorTransparentStroke)\n }\n }\n});\nconst useNavigationButtonsContainerStyles = makeStyles({\n base: {\n alignItems: 'center',\n display: 'flex'\n }\n});\nconst useNavigationButtonStyles = makeStyles({\n base: {\n backgroundColor: tokens.colorTransparentBackground,\n ...shorthands.borderStyle('none'),\n ...shorthands.borderRadius('2px'),\n color: tokens.colorNeutralForeground1,\n display: 'block',\n fontFamily: 'inherit',\n fontSize: tokens.fontSizeBase200,\n height: '28px',\n lineHeight: '28px',\n minHeight: '28px',\n minWidth: '28px',\n ...shorthands.overflow('visible'),\n ...shorthands.padding(0),\n position: 'relative',\n textAlign: 'center',\n width: '28px',\n '&:hover': {\n backgroundColor: tokens.colorBrandBackgroundInvertedHover,\n color: tokens.colorBrandForegroundOnLightHover,\n cursor: 'pointer',\n ...shorthands.outline('1px', 'solid', tokens.colorTransparentStroke)\n },\n '&:hover:active': {\n backgroundColor: tokens.colorBrandBackgroundInvertedPressed,\n color: tokens.colorBrandForegroundOnLightPressed\n }\n }\n});\nconst useGridContainerStyles = makeStyles({\n base: {\n marginTop: '4px'\n }\n});\nconst useButtonRowStyles = makeStyles({\n base: {\n marginBottom: '16px',\n '&:last-of-type': {\n marginBottom: 0\n }\n },\n animation: {\n animationDuration: DURATION_3,\n animationFillMode: 'both',\n animationTimingFunction: EASING_FUNCTION_1\n },\n horizontalBackward: {\n animationName: [\n FADE_IN,\n SLIDE_RIGHT_IN20\n ]\n },\n horizontalForward: {\n animationName: [\n FADE_IN,\n SLIDE_LEFT_IN20\n ]\n },\n verticalBackward: {\n animationName: [\n FADE_IN,\n SLIDE_DOWN_IN20\n ]\n },\n verticalForward: {\n animationName: [\n FADE_IN,\n SLIDE_UP_IN20\n ]\n }\n});\nconst useItemButtonStyles = makeStyles({\n base: {\n backgroundColor: tokens.colorTransparentBackground,\n ...shorthands.borderStyle('none'),\n ...shorthands.borderRadius('2px'),\n color: tokens.colorNeutralForeground3,\n fontFamily: 'inherit',\n fontSize: tokens.fontSizeBase200,\n height: '40px',\n lineHeight: '40px',\n minHeight: '40px',\n minWidth: '40px',\n ...shorthands.margin(0, '12px', 0, 0),\n ...shorthands.overflow('visible'),\n ...shorthands.padding(0),\n width: '40px',\n '&:nth-child(4n + 4)': {\n marginRight: 0\n },\n '&:nth-child(n + 9)': {\n marginBottom: 0\n },\n '& div': {\n fontWeight: tokens.fontWeightRegular\n },\n '&:hover': {\n backgroundColor: tokens.colorBrandBackgroundInvertedHover,\n color: tokens.colorNeutralForeground1Static,\n cursor: 'pointer',\n ...shorthands.outline('1px', 'solid', tokens.colorTransparentStroke),\n '@media (forced-colors: active)': {\n backgroundColor: 'Window',\n color: 'WindowText',\n forcedColorAdjust: 'none',\n ...shorthands.outline('1px', 'solid', 'Highlight')\n }\n },\n '&:hover:active': {\n backgroundColor: tokens.colorBrandBackgroundInvertedPressed,\n '@media (forced-colors: active)': {\n backgroundColor: 'Window',\n color: 'Highlight',\n forcedColorAdjust: 'none'\n }\n }\n }\n});\nconst useCurrentStyles = makeStyles({\n highlightCurrent: {\n backgroundColor: tokens.colorBrandBackground,\n color: tokens.colorNeutralForegroundOnBrand,\n fontWeight: tokens.fontWeightSemibold,\n '@media (forced-colors: active)': {\n backgroundColor: 'WindowText',\n color: 'Window',\n forcedColorAdjust: 'none'\n },\n '&:hover, &:hover:active': {\n backgroundColor: tokens.colorBrandBackground,\n color: tokens.colorNeutralForegroundOnBrand,\n '@media (forced-colors: active)': {\n backgroundColor: 'WindowText',\n color: 'Window',\n forcedColorAdjust: 'none'\n }\n }\n }\n});\nconst useSelectedStyles = makeStyles({\n highlightSelected: {\n backgroundColor: tokens.colorBrandBackgroundInvertedSelected,\n color: tokens.colorNeutralForeground1Static,\n fontWeight: tokens.fontWeightSemibold,\n '@media (forced-colors: active)': {\n backgroundColor: 'Highlight',\n color: 'Window',\n forcedColorAdjust: 'none'\n },\n '& div': {\n fontWeight: tokens.fontWeightSemibold\n },\n '&:hover': {\n backgroundColor: tokens.colorBrandBackgroundInvertedSelected,\n color: tokens.colorNeutralForeground1Static,\n '@media (forced-colors: active)': {\n backgroundColor: 'Highlight',\n color: 'Window',\n forcedColorAdjust: 'none'\n }\n },\n '&:hover:active': {\n backgroundColor: tokens.colorBrandBackgroundInvertedPressed\n }\n }\n});\nconst useDisabledStyles = makeStyles({\n base: {\n '&, &:disabled, & button': {\n color: tokens.colorNeutralForegroundDisabled,\n pointerEvents: 'none'\n },\n '@media (forced-colors: active)': {\n color: 'GrayText',\n forcedColorAdjust: 'none'\n }\n }\n});\n/**\n * @internal\n *\n * Apply styling to the CalendarPicker slots based on the state\n */ export const useCalendarPickerStyles_unstable = (props)=>{\n const rootStyles = useRootStyles();\n const headerContainerStyles = useHeaderContainerStyles();\n const currentItemButtonStyles = useCurrentItemButtonStyles();\n const navigationButtonsContainerStyles = useNavigationButtonsContainerStyles();\n const navigationButtonStyles = useNavigationButtonStyles();\n const gridContainerStyles = useGridContainerStyles();\n const buttonRowStyles = useButtonRowStyles();\n const itemButtonStyles = useItemButtonStyles();\n const currentStyles = useCurrentStyles();\n const selectedStyles = useSelectedStyles();\n const disabledStyles = useDisabledStyles();\n const { animateBackwards, animationDirection, className, hasHeaderClickCallback, highlightCurrent, highlightSelected } = props;\n return {\n root: mergeClasses(calendarPickerClassNames.root, rootStyles.normalize, rootStyles.base, className),\n headerContainer: mergeClasses(calendarPickerClassNames.headerContainer, headerContainerStyles.base),\n currentItemButton: mergeClasses(calendarPickerClassNames.currentItemButton, currentItemButtonStyles.base, animateBackwards !== undefined && currentItemButtonStyles.animation, hasHeaderClickCallback && currentItemButtonStyles.hasHeaderClickCallback),\n navigationButtonsContainer: mergeClasses(calendarPickerClassNames.navigationButtonsContainer, navigationButtonsContainerStyles.base),\n navigationButton: mergeClasses(calendarPickerClassNames.navigationButton, navigationButtonStyles.base),\n gridContainer: mergeClasses(calendarPickerClassNames.gridContainer, gridContainerStyles.base),\n buttonRow: mergeClasses(calendarPickerClassNames.buttonRow, buttonRowStyles.base, buttonRowStyles.animation, animateBackwards !== undefined && (animationDirection === AnimationDirection.Horizontal ? animateBackwards ? buttonRowStyles.horizontalBackward : buttonRowStyles.horizontalForward : animateBackwards ? buttonRowStyles.verticalBackward : buttonRowStyles.verticalForward)),\n itemButton: mergeClasses(calendarPickerClassNames.itemButton, itemButtonStyles.base),\n selected: mergeClasses(calendarPickerClassNames.selected, highlightSelected && selectedStyles.highlightSelected),\n current: mergeClasses(calendarPickerClassNames.current, highlightCurrent && currentStyles.highlightCurrent),\n disabled: mergeClasses(calendarPickerClassNames.disabled, disabledStyles.base)\n };\n};\n"],"mappings":"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"}
|
|
@@ -12,22 +12,23 @@ const DefaultCalendarYearStrings = {
|
|
|
12
12
|
nextRangeAriaLabel: undefined
|
|
13
13
|
};
|
|
14
14
|
const CalendarYearGridCell = (props)=>{
|
|
15
|
-
|
|
15
|
+
var _onRenderYear;
|
|
16
|
+
const { className, highlightCurrentYear, highlightSelectedYear, year, selected, disabled, componentRef, onSelectYear, onRenderYear } = props;
|
|
16
17
|
const buttonRef = React.useRef(null);
|
|
17
|
-
React.useImperativeHandle(componentRef, ()=>{
|
|
18
|
-
return {
|
|
18
|
+
React.useImperativeHandle(componentRef, ()=>({
|
|
19
19
|
focus () {
|
|
20
|
-
var
|
|
20
|
+
var _buttonRef_current_focus, _buttonRef_current;
|
|
21
21
|
(_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);
|
|
22
22
|
}
|
|
23
|
-
};
|
|
24
|
-
}, []);
|
|
23
|
+
}), []);
|
|
25
24
|
const onClick = ()=>{
|
|
26
|
-
|
|
25
|
+
var _onSelectYear;
|
|
26
|
+
(_onSelectYear = onSelectYear) === null || _onSelectYear === void 0 ? void 0 : _onSelectYear(year);
|
|
27
27
|
};
|
|
28
28
|
const onKeyDown = (ev)=>{
|
|
29
29
|
if (ev.key === Enter) {
|
|
30
|
-
|
|
30
|
+
var _onSelectYear;
|
|
31
|
+
(_onSelectYear = onSelectYear) === null || _onSelectYear === void 0 ? void 0 : _onSelectYear(year);
|
|
31
32
|
}
|
|
32
33
|
};
|
|
33
34
|
const classNames = useCalendarYearStyles_unstable({
|
|
@@ -35,7 +36,7 @@ const CalendarYearGridCell = (props)=>{
|
|
|
35
36
|
highlightCurrent: highlightCurrentYear,
|
|
36
37
|
highlightSelected: highlightSelectedYear
|
|
37
38
|
});
|
|
38
|
-
var
|
|
39
|
+
var _onRenderYear1;
|
|
39
40
|
return /*#__PURE__*/ React.createElement("button", {
|
|
40
41
|
className: mergeClasses(classNames.itemButton, selected && classNames.selected, disabled && classNames.disabled),
|
|
41
42
|
type: "button",
|
|
@@ -45,21 +46,19 @@ const CalendarYearGridCell = (props)=>{
|
|
|
45
46
|
disabled: disabled,
|
|
46
47
|
"aria-selected": selected,
|
|
47
48
|
ref: buttonRef
|
|
48
|
-
}, (_onRenderYear = onRenderYear === null ||
|
|
49
|
+
}, (_onRenderYear1 = (_onRenderYear = onRenderYear) === null || _onRenderYear === void 0 ? void 0 : _onRenderYear(year)) !== null && _onRenderYear1 !== void 0 ? _onRenderYear1 : year);
|
|
49
50
|
};
|
|
50
51
|
CalendarYearGridCell.displayName = 'CalendarYearGridCell';
|
|
51
52
|
const CalendarYearGrid = (props)=>{
|
|
52
|
-
const { className
|
|
53
|
+
const { className, fromYear, toYear, animationDirection, animateBackwards, minYear, maxYear, onSelectYear, selectedYear, componentRef } = props;
|
|
53
54
|
const selectedCellRef = React.useRef(null);
|
|
54
55
|
const currentCellRef = React.useRef(null);
|
|
55
|
-
React.useImperativeHandle(componentRef, ()=>{
|
|
56
|
-
return {
|
|
56
|
+
React.useImperativeHandle(componentRef, ()=>({
|
|
57
57
|
focus () {
|
|
58
|
-
var
|
|
59
|
-
(
|
|
58
|
+
var _focus, _this;
|
|
59
|
+
(_this = selectedCellRef.current || currentCellRef.current) === null || _this === void 0 ? void 0 : (_focus = _this.focus) === null || _focus === void 0 ? void 0 : _focus.call(_this);
|
|
60
60
|
}
|
|
61
|
-
};
|
|
62
|
-
}, []);
|
|
61
|
+
}), []);
|
|
63
62
|
const renderCell = (yearToRender)=>{
|
|
64
63
|
const selected = yearToRender === selectedYear;
|
|
65
64
|
const disabled = minYear !== undefined && yearToRender < minYear || maxYear !== undefined && yearToRender > maxYear;
|
|
@@ -81,9 +80,9 @@ const CalendarYearGrid = (props)=>{
|
|
|
81
80
|
animationDirection
|
|
82
81
|
});
|
|
83
82
|
const onRenderYear = (value)=>{
|
|
84
|
-
var _props_onRenderYear;
|
|
83
|
+
var _props_onRenderYear, _props;
|
|
85
84
|
var _props_onRenderYear1;
|
|
86
|
-
return (_props_onRenderYear1 = (_props_onRenderYear = props.onRenderYear) === null || _props_onRenderYear === void 0 ? void 0 : _props_onRenderYear.call(
|
|
85
|
+
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;
|
|
87
86
|
};
|
|
88
87
|
const gridAriaLabel = `${onRenderYear(fromYear)} - ${onRenderYear(toYear)}`;
|
|
89
88
|
let year = fromYear;
|
|
@@ -116,7 +115,7 @@ const CalendarYearNavDirection = {
|
|
|
116
115
|
Next: 1
|
|
117
116
|
};
|
|
118
117
|
const CalendarYearNavArrow = (props)=>{
|
|
119
|
-
const { className
|
|
118
|
+
const { className, strings = DefaultCalendarYearStrings, direction, onSelectPrev, onSelectNext, fromYear, toYear, maxYear, minYear } = props;
|
|
120
119
|
const classNames = useCalendarYearStyles_unstable({
|
|
121
120
|
className
|
|
122
121
|
});
|
|
@@ -129,14 +128,15 @@ const CalendarYearNavArrow = (props)=>{
|
|
|
129
128
|
const ariaLabelString = ariaLabel ? typeof ariaLabel === 'string' ? ariaLabel : ariaLabel(newRange) : undefined;
|
|
130
129
|
const disabled = direction === CalendarYearNavDirection.Previous ? minYear !== undefined && fromYear < minYear : maxYear !== undefined && props.fromYear + CELL_COUNT > maxYear;
|
|
131
130
|
const onNavigate = ()=>{
|
|
132
|
-
|
|
131
|
+
var _onSelectPrev, _onSelectNext;
|
|
132
|
+
direction === CalendarYearNavDirection.Previous ? (_onSelectPrev = onSelectPrev) === null || _onSelectPrev === void 0 ? void 0 : _onSelectPrev() : (_onSelectNext = onSelectNext) === null || _onSelectNext === void 0 ? void 0 : _onSelectNext();
|
|
133
133
|
};
|
|
134
134
|
const onKeyDown = (ev)=>{
|
|
135
135
|
if (ev.key === Enter) {
|
|
136
136
|
onNavigate();
|
|
137
137
|
}
|
|
138
138
|
};
|
|
139
|
-
const { dir
|
|
139
|
+
const { dir } = useFluent_unstable();
|
|
140
140
|
// can be condensed, but leaving verbose for clarity due to regressions
|
|
141
141
|
const isLeftNavigation = dir === 'rtl' ? direction === CalendarYearNavDirection.Next : direction === CalendarYearNavDirection.Previous;
|
|
142
142
|
return /*#__PURE__*/ React.createElement("button", {
|
|
@@ -150,7 +150,7 @@ const CalendarYearNavArrow = (props)=>{
|
|
|
150
150
|
};
|
|
151
151
|
CalendarYearNavArrow.displayName = 'CalendarYearNavArrow';
|
|
152
152
|
const CalendarYearNav = (props)=>{
|
|
153
|
-
const { className
|
|
153
|
+
const { className } = props;
|
|
154
154
|
const classNames = useCalendarYearStyles_unstable({
|
|
155
155
|
className
|
|
156
156
|
});
|
|
@@ -166,10 +166,10 @@ const CalendarYearNav = (props)=>{
|
|
|
166
166
|
};
|
|
167
167
|
CalendarYearNav.displayName = 'CalendarYearNav';
|
|
168
168
|
const CalendarYearTitle = (props)=>{
|
|
169
|
-
const { className
|
|
169
|
+
const { className, fromYear, toYear, strings = DefaultCalendarYearStrings, animateBackwards, animationDirection } = props;
|
|
170
170
|
const onHeaderSelect = ()=>{
|
|
171
|
-
var _props_onHeaderSelect;
|
|
172
|
-
(_props_onHeaderSelect = props.onHeaderSelect) === null || _props_onHeaderSelect === void 0 ? void 0 : _props_onHeaderSelect.call(
|
|
171
|
+
var _props_onHeaderSelect, _props;
|
|
172
|
+
(_props_onHeaderSelect = (_props = props).onHeaderSelect) === null || _props_onHeaderSelect === void 0 ? void 0 : _props_onHeaderSelect.call(_props, true);
|
|
173
173
|
};
|
|
174
174
|
const onHeaderKeyDown = (ev)=>{
|
|
175
175
|
if (ev.key === Enter || ev.key === Space) {
|
|
@@ -177,9 +177,9 @@ const CalendarYearTitle = (props)=>{
|
|
|
177
177
|
}
|
|
178
178
|
};
|
|
179
179
|
const onRenderYear = (year)=>{
|
|
180
|
-
var _props_onRenderYear;
|
|
180
|
+
var _props_onRenderYear, _props;
|
|
181
181
|
var _props_onRenderYear1;
|
|
182
|
-
return (_props_onRenderYear1 = (_props_onRenderYear = props.onRenderYear) === null || _props_onRenderYear === void 0 ? void 0 : _props_onRenderYear.call(
|
|
182
|
+
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;
|
|
183
183
|
};
|
|
184
184
|
const classNames = useCalendarYearStyles_unstable({
|
|
185
185
|
className,
|
|
@@ -210,20 +210,21 @@ const CalendarYearTitle = (props)=>{
|
|
|
210
210
|
};
|
|
211
211
|
CalendarYearTitle.displayName = 'CalendarYearTitle';
|
|
212
212
|
const CalendarYearHeader = (props)=>{
|
|
213
|
-
|
|
213
|
+
var _onRenderTitle;
|
|
214
|
+
const { className, animateBackwards, animationDirection, onRenderTitle } = props;
|
|
214
215
|
const classNames = useCalendarYearStyles_unstable({
|
|
215
216
|
className,
|
|
216
217
|
hasHeaderClickCallback: !!props.onHeaderSelect,
|
|
217
218
|
animateBackwards,
|
|
218
219
|
animationDirection
|
|
219
220
|
});
|
|
220
|
-
var
|
|
221
|
+
var _onRenderTitle1;
|
|
221
222
|
return /*#__PURE__*/ React.createElement("div", {
|
|
222
223
|
className: classNames.headerContainer
|
|
223
|
-
}, (_onRenderTitle = onRenderTitle === null ||
|
|
224
|
+
}, (_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));
|
|
224
225
|
};
|
|
225
226
|
CalendarYearHeader.displayName = 'CalendarYearHeader';
|
|
226
|
-
function useAnimateBackwards({ selectedYear
|
|
227
|
+
function useAnimateBackwards({ selectedYear, navigatedYear }) {
|
|
227
228
|
const rangeYear = selectedYear || navigatedYear || new Date().getFullYear();
|
|
228
229
|
const fromYear = Math.floor(rangeYear / 10) * 10;
|
|
229
230
|
const previousFromYearRef = React.useRef(fromYear);
|
|
@@ -239,7 +240,7 @@ function useAnimateBackwards({ selectedYear , navigatedYear }) {
|
|
|
239
240
|
return false;
|
|
240
241
|
}
|
|
241
242
|
}
|
|
242
|
-
function useYearRangeState({ selectedYear
|
|
243
|
+
function useYearRangeState({ selectedYear, navigatedYear }) {
|
|
243
244
|
const rangeYear = React.useMemo(()=>{
|
|
244
245
|
return selectedYear || navigatedYear || Math.floor(new Date().getFullYear() / 10) * 10;
|
|
245
246
|
}, [
|
|
@@ -272,15 +273,13 @@ function useYearRangeState({ selectedYear , navigatedYear }) {
|
|
|
272
273
|
const animateBackwards = useAnimateBackwards(props);
|
|
273
274
|
const [fromYear, toYear, onNavNext, onNavPrevious] = useYearRangeState(props);
|
|
274
275
|
const gridRef = React.useRef(null);
|
|
275
|
-
React.useImperativeHandle(props.componentRef, ()=>{
|
|
276
|
-
return {
|
|
276
|
+
React.useImperativeHandle(props.componentRef, ()=>({
|
|
277
277
|
focus () {
|
|
278
|
-
var
|
|
278
|
+
var _gridRef_current_focus, _gridRef_current;
|
|
279
279
|
(_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);
|
|
280
280
|
}
|
|
281
|
-
};
|
|
282
|
-
}
|
|
283
|
-
const { className } = props;
|
|
281
|
+
}));
|
|
282
|
+
const { className } = props;
|
|
284
283
|
const classNames = useCalendarYearStyles_unstable({
|
|
285
284
|
className
|
|
286
285
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["CalendarYear.tsx"],"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';\nimport type {\n CalendarYearStrings,\n CalendarYearProps,\n CalendarYearRange,\n CalendarYearHeaderProps,\n} from './CalendarYear.types';\n\nconst CELL_COUNT = 12;\nconst CELLS_PER_ROW = 4;\n\nconst DefaultCalendarYearStrings: CalendarYearStrings = {\n prevRangeAriaLabel: undefined,\n nextRangeAriaLabel: undefined,\n};\ninterface CalendarYearGrid {\n focus(): void;\n}\n\ninterface CalendarYearGridCellProps extends CalendarYearProps {\n year: number;\n current?: boolean;\n selected?: boolean;\n disabled?: boolean;\n onSelectYear?: (year: number) => void;\n onRenderYear?: (year: number) => React.ReactNode;\n}\n\ninterface CalendarYearGridProps extends CalendarYearProps, CalendarYearRange {\n selectedYear?: number;\n animateBackwards?: boolean;\n componentRef?: React.RefObject<CalendarYearGridCell>;\n}\n\ninterface CalendarYearGridCell {\n focus(): void;\n}\n\nconst CalendarYearGridCell: React.FunctionComponent<CalendarYearGridCellProps> = props => {\n const {\n className,\n highlightCurrentYear,\n highlightSelectedYear,\n year,\n selected,\n disabled,\n componentRef,\n onSelectYear,\n onRenderYear,\n } = props;\n\n const buttonRef = React.useRef<HTMLButtonElement>(null);\n\n React.useImperativeHandle(\n componentRef,\n () => ({\n focus() {\n buttonRef.current?.focus?.();\n },\n }),\n [],\n );\n\n const onClick = () => {\n onSelectYear?.(year);\n };\n\n const onKeyDown = (ev: React.KeyboardEvent<HTMLElement>) => {\n if (ev.key === Enter) {\n onSelectYear?.(year);\n }\n };\n\n const classNames = useCalendarYearStyles_unstable({\n className,\n highlightCurrent: highlightCurrentYear,\n highlightSelected: highlightSelectedYear,\n });\n\n return (\n <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 >\n {onRenderYear?.(year) ?? year}\n </button>\n );\n};\nCalendarYearGridCell.displayName = 'CalendarYearGridCell';\n\nconst CalendarYearGrid: React.FunctionComponent<CalendarYearGridProps> = props => {\n const {\n className,\n fromYear,\n toYear,\n animationDirection,\n animateBackwards,\n minYear,\n maxYear,\n onSelectYear,\n selectedYear,\n componentRef,\n } = props;\n\n const selectedCellRef = React.useRef<CalendarYearGridCell>(null);\n const currentCellRef = React.useRef<CalendarYearGridCell>(null);\n\n React.useImperativeHandle(\n componentRef,\n () => ({\n focus() {\n (selectedCellRef.current || currentCellRef.current)?.focus?.();\n },\n }),\n [],\n );\n\n const renderCell = (yearToRender: number): React.ReactNode => {\n const selected = yearToRender === selectedYear;\n const disabled =\n (minYear !== undefined && yearToRender < minYear) || (maxYear !== undefined && yearToRender > maxYear);\n const current = yearToRender === new Date().getFullYear();\n\n return (\n <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 };\n\n const classNames = useCalendarYearStyles_unstable({\n className,\n animateBackwards,\n animationDirection,\n });\n\n const onRenderYear = (value: number) => {\n return props.onRenderYear?.(value) ?? value;\n };\n\n const gridAriaLabel = `${onRenderYear(fromYear)} - ${onRenderYear(toYear)}`;\n\n let year = fromYear;\n const cells: React.ReactNode[][] = [];\n\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\n const arrowNavigationAttributes = useArrowNavigationGroup({ axis: 'both' });\n\n return (\n <div {...arrowNavigationAttributes}>\n <div className={classNames.gridContainer} role=\"grid\" aria-label={gridAriaLabel}>\n {cells.map((cellRow: React.ReactNode[], index: number) => {\n return (\n <div key={'yearPickerRow_' + index + '_' + fromYear} role=\"row\" className={classNames.buttonRow}>\n {cellRow}\n </div>\n );\n })}\n </div>\n </div>\n );\n};\nCalendarYearGrid.displayName = 'CalendarYearGrid';\n\nconst CalendarYearNavDirection = {\n Previous: 0 as const,\n Next: 1 as const,\n};\n\ninterface CalendarYearNavArrowProps extends CalendarYearHeaderProps {\n direction: (typeof CalendarYearNavDirection)[keyof typeof CalendarYearNavDirection];\n}\n\nconst CalendarYearNavArrow: React.FunctionComponent<CalendarYearNavArrowProps> = props => {\n const {\n className,\n strings = DefaultCalendarYearStrings,\n direction,\n onSelectPrev,\n onSelectNext,\n fromYear,\n toYear,\n maxYear,\n minYear,\n } = props;\n\n const classNames = useCalendarYearStyles_unstable({\n className,\n });\n\n const ariaLabel =\n direction === CalendarYearNavDirection.Previous ? strings.prevRangeAriaLabel : strings.nextRangeAriaLabel;\n const newRangeOffset = direction === CalendarYearNavDirection.Previous ? -CELL_COUNT : CELL_COUNT;\n const newRange = { fromYear: fromYear + newRangeOffset, toYear: toYear + newRangeOffset };\n const ariaLabelString = ariaLabel ? (typeof ariaLabel === 'string' ? ariaLabel : ariaLabel(newRange)) : undefined;\n const disabled =\n direction === CalendarYearNavDirection.Previous\n ? minYear !== undefined && fromYear < minYear\n : maxYear !== undefined && props.fromYear + CELL_COUNT > maxYear;\n\n const onNavigate = () => {\n direction === CalendarYearNavDirection.Previous ? onSelectPrev?.() : onSelectNext?.();\n };\n\n const onKeyDown = (ev: React.KeyboardEvent<HTMLElement>) => {\n if (ev.key === Enter) {\n onNavigate();\n }\n };\n\n const { dir } = useFluent_unstable();\n\n // can be condensed, but leaving verbose for clarity due to regressions\n const isLeftNavigation =\n dir === 'rtl' ? direction === CalendarYearNavDirection.Next : direction === CalendarYearNavDirection.Previous;\n\n return (\n <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 >\n {isLeftNavigation ? <ArrowUpRegular /> : <ArrowDownRegular />}\n </button>\n );\n};\nCalendarYearNavArrow.displayName = 'CalendarYearNavArrow';\n\nconst CalendarYearNav: React.FunctionComponent<CalendarYearHeaderProps> = props => {\n const { className } = props;\n\n const classNames = useCalendarYearStyles_unstable({\n className,\n });\n\n return (\n <div className={classNames.navigationButtonsContainer}>\n <CalendarYearNavArrow {...props} direction={CalendarYearNavDirection.Previous} />\n <CalendarYearNavArrow {...props} direction={CalendarYearNavDirection.Next} />\n </div>\n );\n};\nCalendarYearNav.displayName = 'CalendarYearNav';\n\nconst CalendarYearTitle: React.FunctionComponent<CalendarYearHeaderProps> = props => {\n const {\n className,\n fromYear,\n toYear,\n strings = DefaultCalendarYearStrings,\n animateBackwards,\n animationDirection,\n } = props;\n\n const onHeaderSelect = () => {\n props.onHeaderSelect?.(true);\n };\n\n const onHeaderKeyDown = (ev: React.KeyboardEvent<HTMLElement>) => {\n if (ev.key === Enter || ev.key === Space) {\n onHeaderSelect();\n }\n };\n\n const onRenderYear = (year: number) => {\n return props.onRenderYear?.(year) ?? year;\n };\n\n const classNames = useCalendarYearStyles_unstable({\n className,\n hasHeaderClickCallback: !!props.onHeaderSelect,\n animateBackwards,\n animationDirection,\n });\n\n if (props.onHeaderSelect) {\n const rangeAriaLabel = strings.rangeAriaLabel;\n const headerAriaLabelFormatString = strings.headerAriaLabelFormatString;\n const currentDateRange = rangeAriaLabel\n ? typeof rangeAriaLabel === 'string'\n ? rangeAriaLabel\n : rangeAriaLabel(props)\n : undefined;\n\n const ariaLabel = headerAriaLabelFormatString\n ? headerAriaLabelFormatString.replace('{0}', currentDateRange ?? '')\n : currentDateRange;\n\n return (\n <button\n className={classNames.currentItemButton}\n onClick={onHeaderSelect}\n onKeyDown={onHeaderKeyDown}\n aria-label={ariaLabel}\n role=\"button\"\n type=\"button\"\n >\n <span aria-live=\"assertive\" aria-atomic=\"true\">\n {onRenderYear(fromYear)} - {onRenderYear(toYear)}\n </span>\n </button>\n );\n }\n\n return (\n <div className={classNames.current}>\n {onRenderYear(fromYear)} - {onRenderYear(toYear)}\n </div>\n );\n};\nCalendarYearTitle.displayName = 'CalendarYearTitle';\n\nconst CalendarYearHeader: React.FunctionComponent<CalendarYearHeaderProps> = props => {\n const { className, animateBackwards, animationDirection, onRenderTitle } = props;\n\n const classNames = useCalendarYearStyles_unstable({\n className,\n hasHeaderClickCallback: !!props.onHeaderSelect,\n animateBackwards,\n animationDirection,\n });\n\n return (\n <div className={classNames.headerContainer}>\n {onRenderTitle?.(props) ?? <CalendarYearTitle {...props} />}\n <CalendarYearNav {...props} />\n </div>\n );\n};\nCalendarYearHeader.displayName = 'CalendarYearHeader';\n\nfunction useAnimateBackwards({ selectedYear, navigatedYear }: CalendarYearProps) {\n const rangeYear = selectedYear || navigatedYear || new Date().getFullYear();\n const fromYear = Math.floor(rangeYear / 10) * 10;\n\n const previousFromYearRef = React.useRef<number | undefined>(fromYear);\n React.useRef(() => {\n previousFromYearRef.current = fromYear;\n });\n const previousFromYear = previousFromYearRef.current;\n\n if (!previousFromYear || previousFromYear === fromYear) {\n return undefined;\n } else if (previousFromYear > fromYear) {\n return true;\n } else {\n return false;\n }\n}\n\nfunction useYearRangeState({ selectedYear, navigatedYear }: CalendarYearProps) {\n const rangeYear = React.useMemo(() => {\n return selectedYear || navigatedYear || Math.floor(new Date().getFullYear() / 10) * 10;\n }, [navigatedYear, selectedYear]);\n\n const [fromYear, setFromYear] = React.useState<number>(rangeYear);\n\n const onNavNext = () => {\n setFromYear(year => year + CELL_COUNT);\n };\n\n const onNavPrevious = () => {\n setFromYear(year => year - CELL_COUNT);\n };\n\n React.useEffect(() => {\n setFromYear(rangeYear);\n }, [rangeYear]);\n\n const toYear = fromYear + CELL_COUNT - 1;\n\n return [fromYear, toYear, onNavNext, onNavPrevious] as const;\n}\n\n/**\n * @internal\n */\nexport const CalendarYear: React.FunctionComponent<CalendarYearProps> = props => {\n const animateBackwards = useAnimateBackwards(props);\n const [fromYear, toYear, onNavNext, onNavPrevious] = useYearRangeState(props);\n\n const gridRef = React.useRef<CalendarYearGrid>(null);\n\n React.useImperativeHandle(props.componentRef, () => ({\n focus() {\n gridRef.current?.focus?.();\n },\n }));\n\n const { className } = props;\n\n const classNames = useCalendarYearStyles_unstable({\n className,\n });\n\n return (\n <div className={classNames.root}>\n <CalendarYearHeader\n {...props}\n fromYear={fromYear}\n toYear={toYear}\n onSelectPrev={onNavPrevious}\n onSelectNext={onNavNext}\n animateBackwards={animateBackwards}\n />\n <CalendarYearGrid\n {...props}\n fromYear={fromYear}\n toYear={toYear}\n animateBackwards={animateBackwards}\n componentRef={gridRef}\n />\n </div>\n );\n};\nCalendarYear.displayName = 'CalendarYear';\n"],"names":["React","Enter","Space","ArrowDownRegular","ArrowUpRegular","useFluent_unstable","useArrowNavigationGroup","mergeClasses","useCalendarYearStyles_unstable","CELL_COUNT","CELLS_PER_ROW","DefaultCalendarYearStrings","prevRangeAriaLabel","undefined","nextRangeAriaLabel","CalendarYearGridCell","props","className","highlightCurrentYear","highlightSelectedYear","year","selected","disabled","componentRef","onSelectYear","onRenderYear","buttonRef","useRef","useImperativeHandle","focus","current","onClick","onKeyDown","ev","key","classNames","highlightCurrent","highlightSelected","button","itemButton","type","role","aria-selected","ref","displayName","CalendarYearGrid","fromYear","toYear","animationDirection","animateBackwards","minYear","maxYear","selectedYear","selectedCellRef","currentCellRef","renderCell","yearToRender","Date","getFullYear","value","gridAriaLabel","cells","i","push","j","arrowNavigationAttributes","axis","div","gridContainer","aria-label","map","cellRow","index","buttonRow","CalendarYearNavDirection","Previous","Next","CalendarYearNavArrow","strings","direction","onSelectPrev","onSelectNext","ariaLabel","newRangeOffset","newRange","ariaLabelString","onNavigate","dir","isLeftNavigation","navigationButton","title","CalendarYearNav","navigationButtonsContainer","CalendarYearTitle","onHeaderSelect","onHeaderKeyDown","hasHeaderClickCallback","rangeAriaLabel","headerAriaLabelFormatString","currentDateRange","replace","currentItemButton","span","aria-live","aria-atomic","CalendarYearHeader","onRenderTitle","headerContainer","useAnimateBackwards","navigatedYear","rangeYear","Math","floor","previousFromYearRef","previousFromYear","useYearRangeState","useMemo","setFromYear","useState","onNavNext","onNavPrevious","useEffect","CalendarYear","gridRef","root"],"mappings":"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"}
|
|
1
|
+
{"version":3,"sources":["CalendarYear.tsx"],"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';\nimport type {\n CalendarYearStrings,\n CalendarYearProps,\n CalendarYearRange,\n CalendarYearHeaderProps,\n} from './CalendarYear.types';\n\nconst CELL_COUNT = 12;\nconst CELLS_PER_ROW = 4;\n\nconst DefaultCalendarYearStrings: CalendarYearStrings = {\n prevRangeAriaLabel: undefined,\n nextRangeAriaLabel: undefined,\n};\ninterface CalendarYearGrid {\n focus(): void;\n}\n\ninterface CalendarYearGridCellProps extends CalendarYearProps {\n year: number;\n current?: boolean;\n selected?: boolean;\n disabled?: boolean;\n onSelectYear?: (year: number) => void;\n onRenderYear?: (year: number) => React.ReactNode;\n}\n\ninterface CalendarYearGridProps extends CalendarYearProps, CalendarYearRange {\n selectedYear?: number;\n animateBackwards?: boolean;\n componentRef?: React.RefObject<CalendarYearGridCell>;\n}\n\ninterface CalendarYearGridCell {\n focus(): void;\n}\n\nconst CalendarYearGridCell: React.FunctionComponent<CalendarYearGridCellProps> = props => {\n const {\n className,\n highlightCurrentYear,\n highlightSelectedYear,\n year,\n selected,\n disabled,\n componentRef,\n onSelectYear,\n onRenderYear,\n } = props;\n\n const buttonRef = React.useRef<HTMLButtonElement>(null);\n\n React.useImperativeHandle(\n componentRef,\n () => ({\n focus() {\n buttonRef.current?.focus?.();\n },\n }),\n [],\n );\n\n const onClick = () => {\n onSelectYear?.(year);\n };\n\n const onKeyDown = (ev: React.KeyboardEvent<HTMLElement>) => {\n if (ev.key === Enter) {\n onSelectYear?.(year);\n }\n };\n\n const classNames = useCalendarYearStyles_unstable({\n className,\n highlightCurrent: highlightCurrentYear,\n highlightSelected: highlightSelectedYear,\n });\n\n return (\n <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 >\n {onRenderYear?.(year) ?? year}\n </button>\n );\n};\nCalendarYearGridCell.displayName = 'CalendarYearGridCell';\n\nconst CalendarYearGrid: React.FunctionComponent<CalendarYearGridProps> = props => {\n const {\n className,\n fromYear,\n toYear,\n animationDirection,\n animateBackwards,\n minYear,\n maxYear,\n onSelectYear,\n selectedYear,\n componentRef,\n } = props;\n\n const selectedCellRef = React.useRef<CalendarYearGridCell>(null);\n const currentCellRef = React.useRef<CalendarYearGridCell>(null);\n\n React.useImperativeHandle(\n componentRef,\n () => ({\n focus() {\n (selectedCellRef.current || currentCellRef.current)?.focus?.();\n },\n }),\n [],\n );\n\n const renderCell = (yearToRender: number): React.ReactNode => {\n const selected = yearToRender === selectedYear;\n const disabled =\n (minYear !== undefined && yearToRender < minYear) || (maxYear !== undefined && yearToRender > maxYear);\n const current = yearToRender === new Date().getFullYear();\n\n return (\n <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 };\n\n const classNames = useCalendarYearStyles_unstable({\n className,\n animateBackwards,\n animationDirection,\n });\n\n const onRenderYear = (value: number) => {\n return props.onRenderYear?.(value) ?? value;\n };\n\n const gridAriaLabel = `${onRenderYear(fromYear)} - ${onRenderYear(toYear)}`;\n\n let year = fromYear;\n const cells: React.ReactNode[][] = [];\n\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\n const arrowNavigationAttributes = useArrowNavigationGroup({ axis: 'both' });\n\n return (\n <div {...arrowNavigationAttributes}>\n <div className={classNames.gridContainer} role=\"grid\" aria-label={gridAriaLabel}>\n {cells.map((cellRow: React.ReactNode[], index: number) => {\n return (\n <div key={'yearPickerRow_' + index + '_' + fromYear} role=\"row\" className={classNames.buttonRow}>\n {cellRow}\n </div>\n );\n })}\n </div>\n </div>\n );\n};\nCalendarYearGrid.displayName = 'CalendarYearGrid';\n\nconst CalendarYearNavDirection = {\n Previous: 0 as const,\n Next: 1 as const,\n};\n\ninterface CalendarYearNavArrowProps extends CalendarYearHeaderProps {\n direction: (typeof CalendarYearNavDirection)[keyof typeof CalendarYearNavDirection];\n}\n\nconst CalendarYearNavArrow: React.FunctionComponent<CalendarYearNavArrowProps> = props => {\n const {\n className,\n strings = DefaultCalendarYearStrings,\n direction,\n onSelectPrev,\n onSelectNext,\n fromYear,\n toYear,\n maxYear,\n minYear,\n } = props;\n\n const classNames = useCalendarYearStyles_unstable({\n className,\n });\n\n const ariaLabel =\n direction === CalendarYearNavDirection.Previous ? strings.prevRangeAriaLabel : strings.nextRangeAriaLabel;\n const newRangeOffset = direction === CalendarYearNavDirection.Previous ? -CELL_COUNT : CELL_COUNT;\n const newRange = { fromYear: fromYear + newRangeOffset, toYear: toYear + newRangeOffset };\n const ariaLabelString = ariaLabel ? (typeof ariaLabel === 'string' ? ariaLabel : ariaLabel(newRange)) : undefined;\n const disabled =\n direction === CalendarYearNavDirection.Previous\n ? minYear !== undefined && fromYear < minYear\n : maxYear !== undefined && props.fromYear + CELL_COUNT > maxYear;\n\n const onNavigate = () => {\n direction === CalendarYearNavDirection.Previous ? onSelectPrev?.() : onSelectNext?.();\n };\n\n const onKeyDown = (ev: React.KeyboardEvent<HTMLElement>) => {\n if (ev.key === Enter) {\n onNavigate();\n }\n };\n\n const { dir } = useFluent_unstable();\n\n // can be condensed, but leaving verbose for clarity due to regressions\n const isLeftNavigation =\n dir === 'rtl' ? direction === CalendarYearNavDirection.Next : direction === CalendarYearNavDirection.Previous;\n\n return (\n <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 >\n {isLeftNavigation ? <ArrowUpRegular /> : <ArrowDownRegular />}\n </button>\n );\n};\nCalendarYearNavArrow.displayName = 'CalendarYearNavArrow';\n\nconst CalendarYearNav: React.FunctionComponent<CalendarYearHeaderProps> = props => {\n const { className } = props;\n\n const classNames = useCalendarYearStyles_unstable({\n className,\n });\n\n return (\n <div className={classNames.navigationButtonsContainer}>\n <CalendarYearNavArrow {...props} direction={CalendarYearNavDirection.Previous} />\n <CalendarYearNavArrow {...props} direction={CalendarYearNavDirection.Next} />\n </div>\n );\n};\nCalendarYearNav.displayName = 'CalendarYearNav';\n\nconst CalendarYearTitle: React.FunctionComponent<CalendarYearHeaderProps> = props => {\n const {\n className,\n fromYear,\n toYear,\n strings = DefaultCalendarYearStrings,\n animateBackwards,\n animationDirection,\n } = props;\n\n const onHeaderSelect = () => {\n props.onHeaderSelect?.(true);\n };\n\n const onHeaderKeyDown = (ev: React.KeyboardEvent<HTMLElement>) => {\n if (ev.key === Enter || ev.key === Space) {\n onHeaderSelect();\n }\n };\n\n const onRenderYear = (year: number) => {\n return props.onRenderYear?.(year) ?? year;\n };\n\n const classNames = useCalendarYearStyles_unstable({\n className,\n hasHeaderClickCallback: !!props.onHeaderSelect,\n animateBackwards,\n animationDirection,\n });\n\n if (props.onHeaderSelect) {\n const rangeAriaLabel = strings.rangeAriaLabel;\n const headerAriaLabelFormatString = strings.headerAriaLabelFormatString;\n const currentDateRange = rangeAriaLabel\n ? typeof rangeAriaLabel === 'string'\n ? rangeAriaLabel\n : rangeAriaLabel(props)\n : undefined;\n\n const ariaLabel = headerAriaLabelFormatString\n ? headerAriaLabelFormatString.replace('{0}', currentDateRange ?? '')\n : currentDateRange;\n\n return (\n <button\n className={classNames.currentItemButton}\n onClick={onHeaderSelect}\n onKeyDown={onHeaderKeyDown}\n aria-label={ariaLabel}\n role=\"button\"\n type=\"button\"\n >\n <span aria-live=\"assertive\" aria-atomic=\"true\">\n {onRenderYear(fromYear)} - {onRenderYear(toYear)}\n </span>\n </button>\n );\n }\n\n return (\n <div className={classNames.current}>\n {onRenderYear(fromYear)} - {onRenderYear(toYear)}\n </div>\n );\n};\nCalendarYearTitle.displayName = 'CalendarYearTitle';\n\nconst CalendarYearHeader: React.FunctionComponent<CalendarYearHeaderProps> = props => {\n const { className, animateBackwards, animationDirection, onRenderTitle } = props;\n\n const classNames = useCalendarYearStyles_unstable({\n className,\n hasHeaderClickCallback: !!props.onHeaderSelect,\n animateBackwards,\n animationDirection,\n });\n\n return (\n <div className={classNames.headerContainer}>\n {onRenderTitle?.(props) ?? <CalendarYearTitle {...props} />}\n <CalendarYearNav {...props} />\n </div>\n );\n};\nCalendarYearHeader.displayName = 'CalendarYearHeader';\n\nfunction useAnimateBackwards({ selectedYear, navigatedYear }: CalendarYearProps) {\n const rangeYear = selectedYear || navigatedYear || new Date().getFullYear();\n const fromYear = Math.floor(rangeYear / 10) * 10;\n\n const previousFromYearRef = React.useRef<number | undefined>(fromYear);\n React.useRef(() => {\n previousFromYearRef.current = fromYear;\n });\n const previousFromYear = previousFromYearRef.current;\n\n if (!previousFromYear || previousFromYear === fromYear) {\n return undefined;\n } else if (previousFromYear > fromYear) {\n return true;\n } else {\n return false;\n }\n}\n\nfunction useYearRangeState({ selectedYear, navigatedYear }: CalendarYearProps) {\n const rangeYear = React.useMemo(() => {\n return selectedYear || navigatedYear || Math.floor(new Date().getFullYear() / 10) * 10;\n }, [navigatedYear, selectedYear]);\n\n const [fromYear, setFromYear] = React.useState<number>(rangeYear);\n\n const onNavNext = () => {\n setFromYear(year => year + CELL_COUNT);\n };\n\n const onNavPrevious = () => {\n setFromYear(year => year - CELL_COUNT);\n };\n\n React.useEffect(() => {\n setFromYear(rangeYear);\n }, [rangeYear]);\n\n const toYear = fromYear + CELL_COUNT - 1;\n\n return [fromYear, toYear, onNavNext, onNavPrevious] as const;\n}\n\n/**\n * @internal\n */\nexport const CalendarYear: React.FunctionComponent<CalendarYearProps> = props => {\n const animateBackwards = useAnimateBackwards(props);\n const [fromYear, toYear, onNavNext, onNavPrevious] = useYearRangeState(props);\n\n const gridRef = React.useRef<CalendarYearGrid>(null);\n\n React.useImperativeHandle(props.componentRef, () => ({\n focus() {\n gridRef.current?.focus?.();\n },\n }));\n\n const { className } = props;\n\n const classNames = useCalendarYearStyles_unstable({\n className,\n });\n\n return (\n <div className={classNames.root}>\n <CalendarYearHeader\n {...props}\n fromYear={fromYear}\n toYear={toYear}\n onSelectPrev={onNavPrevious}\n onSelectNext={onNavNext}\n animateBackwards={animateBackwards}\n />\n <CalendarYearGrid\n {...props}\n fromYear={fromYear}\n toYear={toYear}\n animateBackwards={animateBackwards}\n componentRef={gridRef}\n />\n </div>\n );\n};\nCalendarYear.displayName = 'CalendarYear';\n"],"names":["React","Enter","Space","ArrowDownRegular","ArrowUpRegular","useFluent_unstable","useArrowNavigationGroup","mergeClasses","useCalendarYearStyles_unstable","CELL_COUNT","CELLS_PER_ROW","DefaultCalendarYearStrings","prevRangeAriaLabel","undefined","nextRangeAriaLabel","CalendarYearGridCell","props","onRenderYear","className","highlightCurrentYear","highlightSelectedYear","year","selected","disabled","componentRef","onSelectYear","buttonRef","useRef","useImperativeHandle","focus","current","onClick","onKeyDown","ev","key","classNames","highlightCurrent","highlightSelected","button","itemButton","type","role","aria-selected","ref","displayName","CalendarYearGrid","fromYear","toYear","animationDirection","animateBackwards","minYear","maxYear","selectedYear","selectedCellRef","currentCellRef","renderCell","yearToRender","Date","getFullYear","value","gridAriaLabel","cells","i","push","j","arrowNavigationAttributes","axis","div","gridContainer","aria-label","map","cellRow","index","buttonRow","CalendarYearNavDirection","Previous","Next","CalendarYearNavArrow","strings","direction","onSelectPrev","onSelectNext","ariaLabel","newRangeOffset","newRange","ariaLabelString","onNavigate","dir","isLeftNavigation","navigationButton","title","CalendarYearNav","navigationButtonsContainer","CalendarYearTitle","onHeaderSelect","onHeaderKeyDown","hasHeaderClickCallback","rangeAriaLabel","headerAriaLabelFormatString","currentDateRange","replace","currentItemButton","span","aria-live","aria-atomic","CalendarYearHeader","onRenderTitle","headerContainer","useAnimateBackwards","navigatedYear","rangeYear","Math","floor","previousFromYearRef","previousFromYear","useYearRangeState","useMemo","setFromYear","useState","onNavNext","onNavPrevious","useEffect","CalendarYear","gridRef","root"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["DatePicker.tsx"],"sourcesContent":["import * as React from 'react';\nimport { renderDatePicker_unstable } from './renderDatePicker';\nimport { useDatePicker_unstable } from './useDatePicker';\nimport { useDatePickerStyles_unstable } from './useDatePickerStyles.styles';\nimport type { ForwardRefComponent } from '@fluentui/react-utilities';\nimport type { DatePickerProps } from './DatePicker.types';\n\nexport const DatePicker: ForwardRefComponent<DatePickerProps> = React.forwardRef((props, ref) => {\n const state = useDatePicker_unstable(props, ref);\n\n useDatePickerStyles_unstable(state);\n return renderDatePicker_unstable(state);\n}) as ForwardRefComponent<DatePickerProps>;\nDatePicker.displayName = 'DatePicker';\n"],"names":["React","renderDatePicker_unstable","useDatePicker_unstable","useDatePickerStyles_unstable","DatePicker","forwardRef","props","ref","state","displayName"],"mappings":"AAAA,YAAYA,WAAW,QAAQ;AAC/B,SAASC,yBAAyB,QAAQ,qBAAqB;AAC/D,SAASC,sBAAsB,QAAQ,kBAAkB;AACzD,SAASC,4BAA4B,QAAQ,+BAA+B;AAI5E,OAAO,MAAMC,2BAAmDJ,MAAMK,UAAU,CAAC,CAACC,OAAOC
|
|
1
|
+
{"version":3,"sources":["DatePicker.tsx"],"sourcesContent":["import * as React from 'react';\nimport { renderDatePicker_unstable } from './renderDatePicker';\nimport { useDatePicker_unstable } from './useDatePicker';\nimport { useDatePickerStyles_unstable } from './useDatePickerStyles.styles';\nimport type { ForwardRefComponent } from '@fluentui/react-utilities';\nimport type { DatePickerProps } from './DatePicker.types';\n\nexport const DatePicker: ForwardRefComponent<DatePickerProps> = React.forwardRef((props, ref) => {\n const state = useDatePicker_unstable(props, ref);\n\n useDatePickerStyles_unstable(state);\n return renderDatePicker_unstable(state);\n}) as ForwardRefComponent<DatePickerProps>;\nDatePicker.displayName = 'DatePicker';\n"],"names":["React","renderDatePicker_unstable","useDatePicker_unstable","useDatePickerStyles_unstable","DatePicker","forwardRef","props","ref","state","displayName"],"mappings":"AAAA,YAAYA,WAAW,QAAQ;AAC/B,SAASC,yBAAyB,QAAQ,qBAAqB;AAC/D,SAASC,sBAAsB,QAAQ,kBAAkB;AACzD,SAASC,4BAA4B,QAAQ,+BAA+B;AAI5E,OAAO,MAAMC,2BAAmDJ,MAAMK,UAAU,CAAC,CAACC,OAAOC;IACvF,MAAMC,QAAQN,uBAAuBI,OAAOC;IAE5CJ,6BAA6BK;IAC7B,OAAOP,0BAA0BO;AACnC,GAA2C;AAC3CJ,WAAWK,WAAW,GAAG"}
|
|
@@ -1,13 +1,22 @@
|
|
|
1
|
-
/** @jsxRuntime
|
|
2
|
-
import { createElement } from '@fluentui/react-jsx-runtime';
|
|
1
|
+
/** @jsxRuntime automatic */ /** @jsxImportSource @fluentui/react-jsx-runtime */ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "@fluentui/react-jsx-runtime/jsx-runtime";
|
|
3
2
|
import { Portal } from '@fluentui/react-portal';
|
|
4
3
|
import { assertSlots } from '@fluentui/react-utilities';
|
|
5
4
|
/**
|
|
6
5
|
* Render the final JSX of DatePicker
|
|
7
6
|
*/ export const renderDatePicker_unstable = (state)=>{
|
|
8
7
|
assertSlots(state);
|
|
9
|
-
const { inlinePopup
|
|
10
|
-
return /*#__PURE__*/
|
|
11
|
-
|
|
12
|
-
|
|
8
|
+
const { inlinePopup } = state;
|
|
9
|
+
return /*#__PURE__*/ _jsxs(_Fragment, {
|
|
10
|
+
children: [
|
|
11
|
+
/*#__PURE__*/ _jsx(state.root, {}),
|
|
12
|
+
state.popupSurface && (inlinePopup ? /*#__PURE__*/ _jsx(state.popupSurface, {
|
|
13
|
+
children: /*#__PURE__*/ _jsx(state.calendar, {})
|
|
14
|
+
}) : /*#__PURE__*/ _jsx(Portal, {
|
|
15
|
+
mountNode: state.mountNode,
|
|
16
|
+
children: /*#__PURE__*/ _jsx(state.popupSurface, {
|
|
17
|
+
children: /*#__PURE__*/ _jsx(state.calendar, {})
|
|
18
|
+
})
|
|
19
|
+
}))
|
|
20
|
+
]
|
|
21
|
+
});
|
|
13
22
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["renderDatePicker.tsx"],"sourcesContent":["/** @jsxRuntime
|
|
1
|
+
{"version":3,"sources":["renderDatePicker.tsx"],"sourcesContent":["/** @jsxRuntime automatic */\n/** @jsxImportSource @fluentui/react-jsx-runtime */\n\nimport { Portal } from '@fluentui/react-portal';\nimport { assertSlots } from '@fluentui/react-utilities';\nimport type { DatePickerSlots, DatePickerState } from './DatePicker.types';\n\n/**\n * Render the final JSX of DatePicker\n */\nexport const renderDatePicker_unstable = (state: DatePickerState) => {\n assertSlots<DatePickerSlots>(state);\n const { inlinePopup } = state;\n\n return (\n <>\n <state.root />\n {state.popupSurface &&\n (inlinePopup ? (\n <state.popupSurface>\n <state.calendar />\n </state.popupSurface>\n ) : (\n <Portal mountNode={state.mountNode}>\n <state.popupSurface>\n <state.calendar />\n </state.popupSurface>\n </Portal>\n ))}\n </>\n );\n};\n"],"names":["Portal","assertSlots","renderDatePicker_unstable","state","inlinePopup","root","popupSurface","calendar","mountNode"],"mappings":"AAAA,0BAA0B,GAC1B,iDAAiD;AAEjD,SAASA,MAAM,QAAQ,yBAAyB;AAChD,SAASC,WAAW,QAAQ,4BAA4B;AAGxD;;CAEC,GACD,OAAO,MAAMC,4BAA4B,CAACC;IACxCF,YAA6BE;IAC7B,MAAM,EAAEC,WAAW,EAAE,GAAGD;IAExB,qBACE;;0BACE,KAACA,MAAME,IAAI;YACVF,MAAMG,YAAY,IAChBF,CAAAA,4BACC,KAACD,MAAMG,YAAY;0BACjB,cAAA,KAACH,MAAMI,QAAQ;+BAGjB,KAACP;gBAAOQ,WAAWL,MAAMK,SAAS;0BAChC,cAAA,KAACL,MAAMG,YAAY;8BACjB,cAAA,KAACH,MAAMI,QAAQ;;cAGrB;;;AAGR,EAAE"}
|