@fluentui/react-datepicker-compat 0.3.11 → 0.3.15
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.json +289 -1
- package/CHANGELOG.md +76 -2
- package/lib/components/Calendar/Calendar.js +2 -4
- package/lib/components/Calendar/Calendar.js.map +1 -1
- package/lib/components/CalendarDay/CalendarDay.js +1 -2
- package/lib/components/CalendarDay/CalendarDay.js.map +1 -1
- package/lib/components/CalendarDayGrid/CalendarDayGrid.js +3 -3
- package/lib/components/CalendarDayGrid/CalendarDayGrid.js.map +1 -1
- package/lib/components/CalendarDayGrid/CalendarGridDayCell.js +3 -6
- package/lib/components/CalendarDayGrid/CalendarGridDayCell.js.map +1 -1
- package/lib/components/CalendarDayGrid/useWeeks.js +3 -4
- package/lib/components/CalendarDayGrid/useWeeks.js.map +1 -1
- package/lib/components/CalendarMonth/CalendarMonth.js +3 -5
- package/lib/components/CalendarMonth/CalendarMonth.js.map +1 -1
- package/lib/components/CalendarYear/CalendarYear.js +13 -18
- package/lib/components/CalendarYear/CalendarYear.js.map +1 -1
- package/lib/components/DatePicker/useDatePicker.js +7 -12
- package/lib/components/DatePicker/useDatePicker.js.map +1 -1
- package/lib/utils/dateGrid/getDayGrid.js +1 -2
- package/lib/utils/dateGrid/getDayGrid.js.map +1 -1
- package/lib-commonjs/components/Calendar/Calendar.js +2 -4
- package/lib-commonjs/components/Calendar/Calendar.js.map +1 -1
- package/lib-commonjs/components/CalendarDay/CalendarDay.js +1 -2
- package/lib-commonjs/components/CalendarDay/CalendarDay.js.map +1 -1
- package/lib-commonjs/components/CalendarDayGrid/CalendarDayGrid.js +3 -3
- package/lib-commonjs/components/CalendarDayGrid/CalendarDayGrid.js.map +1 -1
- package/lib-commonjs/components/CalendarDayGrid/CalendarGridDayCell.js +3 -6
- package/lib-commonjs/components/CalendarDayGrid/CalendarGridDayCell.js.map +1 -1
- package/lib-commonjs/components/CalendarDayGrid/useWeeks.js +3 -4
- package/lib-commonjs/components/CalendarDayGrid/useWeeks.js.map +1 -1
- package/lib-commonjs/components/CalendarMonth/CalendarMonth.js +3 -4
- package/lib-commonjs/components/CalendarMonth/CalendarMonth.js.map +1 -1
- package/lib-commonjs/components/CalendarYear/CalendarYear.js +13 -18
- package/lib-commonjs/components/CalendarYear/CalendarYear.js.map +1 -1
- package/lib-commonjs/components/DatePicker/useDatePicker.js +7 -12
- package/lib-commonjs/components/DatePicker/useDatePicker.js.map +1 -1
- package/lib-commonjs/utils/dateGrid/getDayGrid.js +1 -2
- package/lib-commonjs/utils/dateGrid/getDayGrid.js.map +1 -1
- package/package.json +13 -13
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["CalendarYear.js"],"sourcesContent":["import * as React from 'react';\nimport { Enter, Space } from '@fluentui/keyboard-keys';\nimport { ArrowDownRegular, ArrowUpRegular } from '@fluentui/react-icons';\nimport { useFluent_unstable } from '@fluentui/react-shared-contexts';\nimport { useArrowNavigationGroup } from '@fluentui/react-tabster';\nimport { mergeClasses } from '@griffel/react';\nimport { useCalendarYearStyles_unstable } from './useCalendarYearStyles.styles';\nconst CELL_COUNT = 12;\nconst CELLS_PER_ROW = 4;\nconst DefaultCalendarYearStrings = {\n prevRangeAriaLabel: undefined,\n nextRangeAriaLabel: undefined\n};\nconst CalendarYearGridCell = (props)=>{\n var _onRenderYear;\n const { className, highlightCurrentYear, highlightSelectedYear, year, selected, disabled, componentRef, onSelectYear, onRenderYear } = props;\n const buttonRef = React.useRef(null);\n React.useImperativeHandle(componentRef, ()=>({\n focus () {\n var _buttonRef_current_focus, _buttonRef_current;\n (_buttonRef_current = buttonRef.current) === null || _buttonRef_current === void 0 ? void 0 : (_buttonRef_current_focus = _buttonRef_current.focus) === null || _buttonRef_current_focus === void 0 ? void 0 : _buttonRef_current_focus.call(_buttonRef_current);\n }\n }), []);\n const onClick = ()=>{\n var _onSelectYear;\n (_onSelectYear = onSelectYear) === null || _onSelectYear === void 0 ? void 0 : _onSelectYear(year);\n };\n const onKeyDown = (ev)=>{\n if (ev.key === Enter) {\n var _onSelectYear;\n (_onSelectYear = onSelectYear) === null || _onSelectYear === void 0 ? void 0 : _onSelectYear(year);\n }\n };\n const classNames = useCalendarYearStyles_unstable({\n className,\n highlightCurrent: highlightCurrentYear,\n highlightSelected: highlightSelectedYear\n });\n var _onRenderYear1;\n return /*#__PURE__*/ React.createElement(\"button\", {\n className: mergeClasses(classNames.itemButton, selected && classNames.selected, disabled && classNames.disabled),\n type: \"button\",\n role: \"gridcell\",\n onClick: !disabled ? onClick : undefined,\n onKeyDown: !disabled ? onKeyDown : undefined,\n disabled: disabled,\n \"aria-selected\": selected,\n ref: buttonRef\n }, (_onRenderYear1 = (_onRenderYear = onRenderYear) === null || _onRenderYear === void 0 ? void 0 : _onRenderYear(year)) !== null && _onRenderYear1 !== void 0 ? _onRenderYear1 : year);\n};\nCalendarYearGridCell.displayName = 'CalendarYearGridCell';\nconst CalendarYearGrid = (props)=>{\n const { className, fromYear, toYear, animationDirection, animateBackwards, minYear, maxYear, onSelectYear, selectedYear, componentRef } = props;\n const selectedCellRef = React.useRef(null);\n const currentCellRef = React.useRef(null);\n React.useImperativeHandle(componentRef, ()=>({\n focus () {\n var _focus, _this;\n (_this = selectedCellRef.current || currentCellRef.current) === null || _this === void 0 ? void 0 : (_focus = _this.focus) === null || _focus === void 0 ? void 0 : _focus.call(_this);\n }\n }), []);\n const renderCell = (yearToRender)=>{\n const selected = yearToRender === selectedYear;\n const disabled = minYear !== undefined && yearToRender < minYear || maxYear !== undefined && yearToRender > maxYear;\n const current = yearToRender === new Date().getFullYear();\n return /*#__PURE__*/ React.createElement(CalendarYearGridCell, {\n ...props,\n key: yearToRender,\n year: yearToRender,\n selected: selected,\n current: current,\n disabled: disabled,\n onSelectYear: onSelectYear,\n componentRef: selected ? selectedCellRef : current ? currentCellRef : undefined\n });\n };\n const classNames = useCalendarYearStyles_unstable({\n className,\n animateBackwards,\n animationDirection\n });\n const onRenderYear = (value)=>{\n var _props_onRenderYear, _props;\n var _props_onRenderYear1;\n return (_props_onRenderYear1 = (_props_onRenderYear = (_props = props).onRenderYear) === null || _props_onRenderYear === void 0 ? void 0 : _props_onRenderYear.call(_props, value)) !== null && _props_onRenderYear1 !== void 0 ? _props_onRenderYear1 : value;\n };\n const gridAriaLabel = `${onRenderYear(fromYear)} - ${onRenderYear(toYear)}`;\n let year = fromYear;\n const cells = [];\n for(let i = 0; i < (toYear - fromYear + 1) / CELLS_PER_ROW; i++){\n cells.push([]);\n for(let j = 0; j < CELLS_PER_ROW; j++){\n cells[i].push(renderCell(year));\n year++;\n }\n }\n const arrowNavigationAttributes = useArrowNavigationGroup({\n axis: 'both'\n });\n return /*#__PURE__*/ React.createElement(\"div\", arrowNavigationAttributes, /*#__PURE__*/ React.createElement(\"div\", {\n className: classNames.gridContainer,\n role: \"grid\",\n \"aria-label\": gridAriaLabel\n }, cells.map((cellRow, index)=>{\n return /*#__PURE__*/ React.createElement(\"div\", {\n key: 'yearPickerRow_' + index + '_' + fromYear,\n role: \"row\",\n className: classNames.buttonRow\n }, cellRow);\n })));\n};\nCalendarYearGrid.displayName = 'CalendarYearGrid';\nconst CalendarYearNavDirection = {\n Previous: 0,\n Next: 1\n};\nconst CalendarYearNavArrow = (props)=>{\n const { className, strings = DefaultCalendarYearStrings, direction, onSelectPrev, onSelectNext, fromYear, toYear, maxYear, minYear } = props;\n const classNames = useCalendarYearStyles_unstable({\n className\n });\n const ariaLabel = direction === CalendarYearNavDirection.Previous ? strings.prevRangeAriaLabel : strings.nextRangeAriaLabel;\n const newRangeOffset = direction === CalendarYearNavDirection.Previous ? -CELL_COUNT : CELL_COUNT;\n const newRange = {\n fromYear: fromYear + newRangeOffset,\n toYear: toYear + newRangeOffset\n };\n const ariaLabelString = ariaLabel ? typeof ariaLabel === 'string' ? ariaLabel : ariaLabel(newRange) : undefined;\n const disabled = direction === CalendarYearNavDirection.Previous ? minYear !== undefined && fromYear < minYear : maxYear !== undefined && props.fromYear + CELL_COUNT > maxYear;\n const onNavigate = ()=>{\n var _onSelectPrev, _onSelectNext;\n direction === CalendarYearNavDirection.Previous ? (_onSelectPrev = onSelectPrev) === null || _onSelectPrev === void 0 ? void 0 : _onSelectPrev() : (_onSelectNext = onSelectNext) === null || _onSelectNext === void 0 ? void 0 : _onSelectNext();\n };\n const onKeyDown = (ev)=>{\n if (ev.key === Enter) {\n onNavigate();\n }\n };\n const { dir } = useFluent_unstable();\n // can be condensed, but leaving verbose for clarity due to regressions\n const isLeftNavigation = dir === 'rtl' ? direction === CalendarYearNavDirection.Next : direction === CalendarYearNavDirection.Previous;\n return /*#__PURE__*/ React.createElement(\"button\", {\n className: mergeClasses(classNames.navigationButton, disabled && classNames.disabled),\n onClick: !disabled ? onNavigate : undefined,\n onKeyDown: !disabled ? onKeyDown : undefined,\n type: \"button\",\n title: ariaLabelString,\n disabled: disabled\n }, isLeftNavigation ? /*#__PURE__*/ React.createElement(ArrowUpRegular, null) : /*#__PURE__*/ React.createElement(ArrowDownRegular, null));\n};\nCalendarYearNavArrow.displayName = 'CalendarYearNavArrow';\nconst CalendarYearNav = (props)=>{\n const { className } = props;\n const classNames = useCalendarYearStyles_unstable({\n className\n });\n return /*#__PURE__*/ React.createElement(\"div\", {\n className: classNames.navigationButtonsContainer\n }, /*#__PURE__*/ React.createElement(CalendarYearNavArrow, {\n ...props,\n direction: CalendarYearNavDirection.Previous\n }), /*#__PURE__*/ React.createElement(CalendarYearNavArrow, {\n ...props,\n direction: CalendarYearNavDirection.Next\n }));\n};\nCalendarYearNav.displayName = 'CalendarYearNav';\nconst CalendarYearTitle = (props)=>{\n const { className, fromYear, toYear, strings = DefaultCalendarYearStrings, animateBackwards, animationDirection } = props;\n const onHeaderSelect = ()=>{\n var _props_onHeaderSelect, _props;\n (_props_onHeaderSelect = (_props = props).onHeaderSelect) === null || _props_onHeaderSelect === void 0 ? void 0 : _props_onHeaderSelect.call(_props, true);\n };\n const onHeaderKeyDown = (ev)=>{\n if (ev.key === Enter || ev.key === Space) {\n onHeaderSelect();\n }\n };\n const onRenderYear = (year)=>{\n var _props_onRenderYear, _props;\n var _props_onRenderYear1;\n return (_props_onRenderYear1 = (_props_onRenderYear = (_props = props).onRenderYear) === null || _props_onRenderYear === void 0 ? void 0 : _props_onRenderYear.call(_props, year)) !== null && _props_onRenderYear1 !== void 0 ? _props_onRenderYear1 : year;\n };\n const classNames = useCalendarYearStyles_unstable({\n className,\n hasHeaderClickCallback: !!props.onHeaderSelect,\n animateBackwards,\n animationDirection\n });\n if (props.onHeaderSelect) {\n const rangeAriaLabel = strings.rangeAriaLabel;\n const headerAriaLabelFormatString = strings.headerAriaLabelFormatString;\n const currentDateRange = rangeAriaLabel ? typeof rangeAriaLabel === 'string' ? rangeAriaLabel : rangeAriaLabel(props) : undefined;\n const ariaLabel = headerAriaLabelFormatString ? headerAriaLabelFormatString.replace('{0}', currentDateRange !== null && currentDateRange !== void 0 ? currentDateRange : '') : currentDateRange;\n return /*#__PURE__*/ React.createElement(\"button\", {\n className: classNames.currentItemButton,\n onClick: onHeaderSelect,\n onKeyDown: onHeaderKeyDown,\n \"aria-label\": ariaLabel,\n role: \"button\",\n type: \"button\"\n }, /*#__PURE__*/ React.createElement(\"span\", {\n \"aria-live\": \"assertive\",\n \"aria-atomic\": \"true\"\n }, onRenderYear(fromYear), \" - \", onRenderYear(toYear)));\n }\n return /*#__PURE__*/ React.createElement(\"div\", {\n className: classNames.current\n }, onRenderYear(fromYear), \" - \", onRenderYear(toYear));\n};\nCalendarYearTitle.displayName = 'CalendarYearTitle';\nconst CalendarYearHeader = (props)=>{\n var _onRenderTitle;\n const { className, animateBackwards, animationDirection, onRenderTitle } = props;\n const classNames = useCalendarYearStyles_unstable({\n className,\n hasHeaderClickCallback: !!props.onHeaderSelect,\n animateBackwards,\n animationDirection\n });\n var _onRenderTitle1;\n return /*#__PURE__*/ React.createElement(\"div\", {\n className: classNames.headerContainer\n }, (_onRenderTitle1 = (_onRenderTitle = onRenderTitle) === null || _onRenderTitle === void 0 ? void 0 : _onRenderTitle(props)) !== null && _onRenderTitle1 !== void 0 ? _onRenderTitle1 : /*#__PURE__*/ React.createElement(CalendarYearTitle, props), /*#__PURE__*/ React.createElement(CalendarYearNav, props));\n};\nCalendarYearHeader.displayName = 'CalendarYearHeader';\nfunction useAnimateBackwards({ selectedYear, navigatedYear }) {\n const rangeYear = selectedYear || navigatedYear || new Date().getFullYear();\n const fromYear = Math.floor(rangeYear / 10) * 10;\n const previousFromYearRef = React.useRef(fromYear);\n React.useRef(()=>{\n previousFromYearRef.current = fromYear;\n });\n const previousFromYear = previousFromYearRef.current;\n if (!previousFromYear || previousFromYear === fromYear) {\n return undefined;\n } else if (previousFromYear > fromYear) {\n return true;\n } else {\n return false;\n }\n}\nfunction useYearRangeState({ selectedYear, navigatedYear }) {\n const rangeYear = React.useMemo(()=>{\n return selectedYear || navigatedYear || Math.floor(new Date().getFullYear() / 10) * 10;\n }, [\n navigatedYear,\n selectedYear\n ]);\n const [fromYear, setFromYear] = React.useState(rangeYear);\n const onNavNext = ()=>{\n setFromYear((year)=>year + CELL_COUNT);\n };\n const onNavPrevious = ()=>{\n setFromYear((year)=>year - CELL_COUNT);\n };\n React.useEffect(()=>{\n setFromYear(rangeYear);\n }, [\n rangeYear\n ]);\n const toYear = fromYear + CELL_COUNT - 1;\n return [\n fromYear,\n toYear,\n onNavNext,\n onNavPrevious\n ];\n}\n/**\n * @internal\n */ export const CalendarYear = (props)=>{\n const animateBackwards = useAnimateBackwards(props);\n const [fromYear, toYear, onNavNext, onNavPrevious] = useYearRangeState(props);\n const gridRef = React.useRef(null);\n React.useImperativeHandle(props.componentRef, ()=>({\n focus () {\n var _gridRef_current_focus, _gridRef_current;\n (_gridRef_current = gridRef.current) === null || _gridRef_current === void 0 ? void 0 : (_gridRef_current_focus = _gridRef_current.focus) === null || _gridRef_current_focus === void 0 ? void 0 : _gridRef_current_focus.call(_gridRef_current);\n }\n }));\n const { className } = props;\n const classNames = useCalendarYearStyles_unstable({\n className\n });\n return /*#__PURE__*/ React.createElement(\"div\", {\n className: classNames.root\n }, /*#__PURE__*/ React.createElement(CalendarYearHeader, {\n ...props,\n fromYear: fromYear,\n toYear: toYear,\n onSelectPrev: onNavPrevious,\n onSelectNext: onNavNext,\n animateBackwards: animateBackwards\n }), /*#__PURE__*/ React.createElement(CalendarYearGrid, {\n ...props,\n fromYear: fromYear,\n toYear: toYear,\n animateBackwards: animateBackwards,\n componentRef: gridRef\n }));\n};\nCalendarYear.displayName = 'CalendarYear';\n"],"names":["CalendarYear","CELL_COUNT","CELLS_PER_ROW","DefaultCalendarYearStrings","prevRangeAriaLabel","undefined","nextRangeAriaLabel","CalendarYearGridCell","props","_onRenderYear","className","highlightCurrentYear","highlightSelectedYear","year","selected","disabled","componentRef","onSelectYear","onRenderYear","buttonRef","React","useRef","useImperativeHandle","focus","_buttonRef_current_focus","_buttonRef_current","current","call","onClick","_onSelectYear","onKeyDown","ev","key","Enter","classNames","useCalendarYearStyles_unstable","highlightCurrent","highlightSelected","_onRenderYear1","createElement","mergeClasses","itemButton","type","role","ref","displayName","CalendarYearGrid","fromYear","toYear","animationDirection","animateBackwards","minYear","maxYear","selectedYear","selectedCellRef","currentCellRef","_focus","_this","renderCell","yearToRender","Date","getFullYear","value","_props_onRenderYear","_props","_props_onRenderYear1","gridAriaLabel","cells","i","push","j","arrowNavigationAttributes","useArrowNavigationGroup","axis","gridContainer","map","cellRow","index","buttonRow","CalendarYearNavDirection","Previous","Next","CalendarYearNavArrow","strings","direction","onSelectPrev","onSelectNext","ariaLabel","newRangeOffset","newRange","ariaLabelString","onNavigate","_onSelectPrev","_onSelectNext","dir","useFluent_unstable","isLeftNavigation","navigationButton","title","ArrowUpRegular","ArrowDownRegular","CalendarYearNav","navigationButtonsContainer","CalendarYearTitle","onHeaderSelect","_props_onHeaderSelect","onHeaderKeyDown","Space","hasHeaderClickCallback","rangeAriaLabel","headerAriaLabelFormatString","currentDateRange","replace","currentItemButton","CalendarYearHeader","_onRenderTitle","onRenderTitle","_onRenderTitle1","headerContainer","useAnimateBackwards","navigatedYear","rangeYear","Math","floor","previousFromYearRef","previousFromYear","useYearRangeState","useMemo","setFromYear","useState","onNavNext","onNavPrevious","useEffect","gridRef","_gridRef_current_focus","_gridRef_current","root"],"mappings":"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"}
|
|
1
|
+
{"version":3,"sources":["CalendarYear.js"],"sourcesContent":["import * as React from 'react';\nimport { Enter, Space } from '@fluentui/keyboard-keys';\nimport { ArrowDownRegular, ArrowUpRegular } from '@fluentui/react-icons';\nimport { useFluent_unstable } from '@fluentui/react-shared-contexts';\nimport { useArrowNavigationGroup } from '@fluentui/react-tabster';\nimport { mergeClasses } from '@griffel/react';\nimport { useCalendarYearStyles_unstable } from './useCalendarYearStyles.styles';\nconst CELL_COUNT = 12;\nconst CELLS_PER_ROW = 4;\nconst DefaultCalendarYearStrings = {\n prevRangeAriaLabel: undefined,\n nextRangeAriaLabel: undefined\n};\nconst CalendarYearGridCell = (props)=>{\n const { className, highlightCurrentYear, highlightSelectedYear, year, selected, disabled, componentRef, onSelectYear, onRenderYear } = props;\n const buttonRef = React.useRef(null);\n React.useImperativeHandle(componentRef, ()=>({\n focus () {\n var _buttonRef_current_focus, _buttonRef_current;\n (_buttonRef_current = buttonRef.current) === null || _buttonRef_current === void 0 ? void 0 : (_buttonRef_current_focus = _buttonRef_current.focus) === null || _buttonRef_current_focus === void 0 ? void 0 : _buttonRef_current_focus.call(_buttonRef_current);\n }\n }), []);\n const onClick = ()=>{\n onSelectYear === null || onSelectYear === void 0 ? void 0 : onSelectYear(year);\n };\n const onKeyDown = (ev)=>{\n if (ev.key === Enter) {\n onSelectYear === null || onSelectYear === void 0 ? void 0 : onSelectYear(year);\n }\n };\n const classNames = useCalendarYearStyles_unstable({\n className,\n highlightCurrent: highlightCurrentYear,\n highlightSelected: highlightSelectedYear\n });\n var _onRenderYear;\n return /*#__PURE__*/ React.createElement(\"button\", {\n className: mergeClasses(classNames.itemButton, selected && classNames.selected, disabled && classNames.disabled),\n type: \"button\",\n role: \"gridcell\",\n onClick: !disabled ? onClick : undefined,\n onKeyDown: !disabled ? onKeyDown : undefined,\n disabled: disabled,\n \"aria-selected\": selected,\n ref: buttonRef\n }, (_onRenderYear = onRenderYear === null || onRenderYear === void 0 ? void 0 : onRenderYear(year)) !== null && _onRenderYear !== void 0 ? _onRenderYear : year);\n};\nCalendarYearGridCell.displayName = 'CalendarYearGridCell';\nconst CalendarYearGrid = (props)=>{\n const { className, fromYear, toYear, animationDirection, animateBackwards, minYear, maxYear, onSelectYear, selectedYear, componentRef } = props;\n const selectedCellRef = React.useRef(null);\n const currentCellRef = React.useRef(null);\n React.useImperativeHandle(componentRef, ()=>({\n focus () {\n var _focus, _this;\n (_this = selectedCellRef.current || currentCellRef.current) === null || _this === void 0 ? void 0 : (_focus = _this.focus) === null || _focus === void 0 ? void 0 : _focus.call(_this);\n }\n }), []);\n const renderCell = (yearToRender)=>{\n const selected = yearToRender === selectedYear;\n const disabled = minYear !== undefined && yearToRender < minYear || maxYear !== undefined && yearToRender > maxYear;\n const current = yearToRender === new Date().getFullYear();\n return /*#__PURE__*/ React.createElement(CalendarYearGridCell, {\n ...props,\n key: yearToRender,\n year: yearToRender,\n selected: selected,\n current: current,\n disabled: disabled,\n onSelectYear: onSelectYear,\n componentRef: selected ? selectedCellRef : current ? currentCellRef : undefined\n });\n };\n const classNames = useCalendarYearStyles_unstable({\n className,\n animateBackwards,\n animationDirection\n });\n const onRenderYear = (value)=>{\n var _props_onRenderYear;\n var _props_onRenderYear1;\n return (_props_onRenderYear1 = (_props_onRenderYear = props.onRenderYear) === null || _props_onRenderYear === void 0 ? void 0 : _props_onRenderYear.call(props, value)) !== null && _props_onRenderYear1 !== void 0 ? _props_onRenderYear1 : value;\n };\n const gridAriaLabel = `${onRenderYear(fromYear)} - ${onRenderYear(toYear)}`;\n let year = fromYear;\n const cells = [];\n for(let i = 0; i < (toYear - fromYear + 1) / CELLS_PER_ROW; i++){\n cells.push([]);\n for(let j = 0; j < CELLS_PER_ROW; j++){\n cells[i].push(renderCell(year));\n year++;\n }\n }\n const arrowNavigationAttributes = useArrowNavigationGroup({\n axis: 'both'\n });\n return /*#__PURE__*/ React.createElement(\"div\", arrowNavigationAttributes, /*#__PURE__*/ React.createElement(\"div\", {\n className: classNames.gridContainer,\n role: \"grid\",\n \"aria-label\": gridAriaLabel\n }, cells.map((cellRow, index)=>{\n return /*#__PURE__*/ React.createElement(\"div\", {\n key: 'yearPickerRow_' + index + '_' + fromYear,\n role: \"row\",\n className: classNames.buttonRow\n }, cellRow);\n })));\n};\nCalendarYearGrid.displayName = 'CalendarYearGrid';\nconst CalendarYearNavDirection = {\n Previous: 0,\n Next: 1\n};\nconst CalendarYearNavArrow = (props)=>{\n const { className, strings = DefaultCalendarYearStrings, direction, onSelectPrev, onSelectNext, fromYear, toYear, maxYear, minYear } = props;\n const classNames = useCalendarYearStyles_unstable({\n className\n });\n const ariaLabel = direction === CalendarYearNavDirection.Previous ? strings.prevRangeAriaLabel : strings.nextRangeAriaLabel;\n const newRangeOffset = direction === CalendarYearNavDirection.Previous ? -CELL_COUNT : CELL_COUNT;\n const newRange = {\n fromYear: fromYear + newRangeOffset,\n toYear: toYear + newRangeOffset\n };\n const ariaLabelString = ariaLabel ? typeof ariaLabel === 'string' ? ariaLabel : ariaLabel(newRange) : undefined;\n const disabled = direction === CalendarYearNavDirection.Previous ? minYear !== undefined && fromYear < minYear : maxYear !== undefined && props.fromYear + CELL_COUNT > maxYear;\n const onNavigate = ()=>{\n direction === CalendarYearNavDirection.Previous ? onSelectPrev === null || onSelectPrev === void 0 ? void 0 : onSelectPrev() : onSelectNext === null || onSelectNext === void 0 ? void 0 : onSelectNext();\n };\n const onKeyDown = (ev)=>{\n if (ev.key === Enter) {\n onNavigate();\n }\n };\n const { dir } = useFluent_unstable();\n // can be condensed, but leaving verbose for clarity due to regressions\n const isLeftNavigation = dir === 'rtl' ? direction === CalendarYearNavDirection.Next : direction === CalendarYearNavDirection.Previous;\n return /*#__PURE__*/ React.createElement(\"button\", {\n className: mergeClasses(classNames.navigationButton, disabled && classNames.disabled),\n onClick: !disabled ? onNavigate : undefined,\n onKeyDown: !disabled ? onKeyDown : undefined,\n type: \"button\",\n title: ariaLabelString,\n disabled: disabled\n }, isLeftNavigation ? /*#__PURE__*/ React.createElement(ArrowUpRegular, null) : /*#__PURE__*/ React.createElement(ArrowDownRegular, null));\n};\nCalendarYearNavArrow.displayName = 'CalendarYearNavArrow';\nconst CalendarYearNav = (props)=>{\n const { className } = props;\n const classNames = useCalendarYearStyles_unstable({\n className\n });\n return /*#__PURE__*/ React.createElement(\"div\", {\n className: classNames.navigationButtonsContainer\n }, /*#__PURE__*/ React.createElement(CalendarYearNavArrow, {\n ...props,\n direction: CalendarYearNavDirection.Previous\n }), /*#__PURE__*/ React.createElement(CalendarYearNavArrow, {\n ...props,\n direction: CalendarYearNavDirection.Next\n }));\n};\nCalendarYearNav.displayName = 'CalendarYearNav';\nconst CalendarYearTitle = (props)=>{\n const { className, fromYear, toYear, strings = DefaultCalendarYearStrings, animateBackwards, animationDirection } = props;\n const onHeaderSelect = ()=>{\n var _props_onHeaderSelect;\n (_props_onHeaderSelect = props.onHeaderSelect) === null || _props_onHeaderSelect === void 0 ? void 0 : _props_onHeaderSelect.call(props, true);\n };\n const onHeaderKeyDown = (ev)=>{\n if (ev.key === Enter || ev.key === Space) {\n onHeaderSelect();\n }\n };\n const onRenderYear = (year)=>{\n var _props_onRenderYear;\n var _props_onRenderYear1;\n return (_props_onRenderYear1 = (_props_onRenderYear = props.onRenderYear) === null || _props_onRenderYear === void 0 ? void 0 : _props_onRenderYear.call(props, year)) !== null && _props_onRenderYear1 !== void 0 ? _props_onRenderYear1 : year;\n };\n const classNames = useCalendarYearStyles_unstable({\n className,\n hasHeaderClickCallback: !!props.onHeaderSelect,\n animateBackwards,\n animationDirection\n });\n if (props.onHeaderSelect) {\n const rangeAriaLabel = strings.rangeAriaLabel;\n const headerAriaLabelFormatString = strings.headerAriaLabelFormatString;\n const currentDateRange = rangeAriaLabel ? typeof rangeAriaLabel === 'string' ? rangeAriaLabel : rangeAriaLabel(props) : undefined;\n const ariaLabel = headerAriaLabelFormatString ? headerAriaLabelFormatString.replace('{0}', currentDateRange !== null && currentDateRange !== void 0 ? currentDateRange : '') : currentDateRange;\n return /*#__PURE__*/ React.createElement(\"button\", {\n className: classNames.currentItemButton,\n onClick: onHeaderSelect,\n onKeyDown: onHeaderKeyDown,\n \"aria-label\": ariaLabel,\n role: \"button\",\n type: \"button\"\n }, /*#__PURE__*/ React.createElement(\"span\", {\n \"aria-live\": \"assertive\",\n \"aria-atomic\": \"true\"\n }, onRenderYear(fromYear), \" - \", onRenderYear(toYear)));\n }\n return /*#__PURE__*/ React.createElement(\"div\", {\n className: classNames.current\n }, onRenderYear(fromYear), \" - \", onRenderYear(toYear));\n};\nCalendarYearTitle.displayName = 'CalendarYearTitle';\nconst CalendarYearHeader = (props)=>{\n const { className, animateBackwards, animationDirection, onRenderTitle } = props;\n const classNames = useCalendarYearStyles_unstable({\n className,\n hasHeaderClickCallback: !!props.onHeaderSelect,\n animateBackwards,\n animationDirection\n });\n var _onRenderTitle;\n return /*#__PURE__*/ React.createElement(\"div\", {\n className: classNames.headerContainer\n }, (_onRenderTitle = onRenderTitle === null || onRenderTitle === void 0 ? void 0 : onRenderTitle(props)) !== null && _onRenderTitle !== void 0 ? _onRenderTitle : /*#__PURE__*/ React.createElement(CalendarYearTitle, props), /*#__PURE__*/ React.createElement(CalendarYearNav, props));\n};\nCalendarYearHeader.displayName = 'CalendarYearHeader';\nfunction useAnimateBackwards({ selectedYear, navigatedYear }) {\n const rangeYear = selectedYear || navigatedYear || new Date().getFullYear();\n const fromYear = Math.floor(rangeYear / 10) * 10;\n const previousFromYearRef = React.useRef(fromYear);\n React.useRef(()=>{\n previousFromYearRef.current = fromYear;\n });\n const previousFromYear = previousFromYearRef.current;\n if (!previousFromYear || previousFromYear === fromYear) {\n return undefined;\n } else if (previousFromYear > fromYear) {\n return true;\n } else {\n return false;\n }\n}\nfunction useYearRangeState({ selectedYear, navigatedYear }) {\n const rangeYear = React.useMemo(()=>{\n return selectedYear || navigatedYear || Math.floor(new Date().getFullYear() / 10) * 10;\n }, [\n navigatedYear,\n selectedYear\n ]);\n const [fromYear, setFromYear] = React.useState(rangeYear);\n const onNavNext = ()=>{\n setFromYear((year)=>year + CELL_COUNT);\n };\n const onNavPrevious = ()=>{\n setFromYear((year)=>year - CELL_COUNT);\n };\n React.useEffect(()=>{\n setFromYear(rangeYear);\n }, [\n rangeYear\n ]);\n const toYear = fromYear + CELL_COUNT - 1;\n return [\n fromYear,\n toYear,\n onNavNext,\n onNavPrevious\n ];\n}\n/**\n * @internal\n */ export const CalendarYear = (props)=>{\n const animateBackwards = useAnimateBackwards(props);\n const [fromYear, toYear, onNavNext, onNavPrevious] = useYearRangeState(props);\n const gridRef = React.useRef(null);\n React.useImperativeHandle(props.componentRef, ()=>({\n focus () {\n var _gridRef_current_focus, _gridRef_current;\n (_gridRef_current = gridRef.current) === null || _gridRef_current === void 0 ? void 0 : (_gridRef_current_focus = _gridRef_current.focus) === null || _gridRef_current_focus === void 0 ? void 0 : _gridRef_current_focus.call(_gridRef_current);\n }\n }));\n const { className } = props;\n const classNames = useCalendarYearStyles_unstable({\n className\n });\n return /*#__PURE__*/ React.createElement(\"div\", {\n className: classNames.root\n }, /*#__PURE__*/ React.createElement(CalendarYearHeader, {\n ...props,\n fromYear: fromYear,\n toYear: toYear,\n onSelectPrev: onNavPrevious,\n onSelectNext: onNavNext,\n animateBackwards: animateBackwards\n }), /*#__PURE__*/ React.createElement(CalendarYearGrid, {\n ...props,\n fromYear: fromYear,\n toYear: toYear,\n animateBackwards: animateBackwards,\n componentRef: gridRef\n }));\n};\nCalendarYear.displayName = 'CalendarYear';\n"],"names":["CalendarYear","CELL_COUNT","CELLS_PER_ROW","DefaultCalendarYearStrings","prevRangeAriaLabel","undefined","nextRangeAriaLabel","CalendarYearGridCell","props","className","highlightCurrentYear","highlightSelectedYear","year","selected","disabled","componentRef","onSelectYear","onRenderYear","buttonRef","React","useRef","useImperativeHandle","focus","_buttonRef_current_focus","_buttonRef_current","current","call","onClick","onKeyDown","ev","key","Enter","classNames","useCalendarYearStyles_unstable","highlightCurrent","highlightSelected","_onRenderYear","createElement","mergeClasses","itemButton","type","role","ref","displayName","CalendarYearGrid","fromYear","toYear","animationDirection","animateBackwards","minYear","maxYear","selectedYear","selectedCellRef","currentCellRef","_focus","_this","renderCell","yearToRender","Date","getFullYear","value","_props_onRenderYear","_props_onRenderYear1","gridAriaLabel","cells","i","push","j","arrowNavigationAttributes","useArrowNavigationGroup","axis","gridContainer","map","cellRow","index","buttonRow","CalendarYearNavDirection","Previous","Next","CalendarYearNavArrow","strings","direction","onSelectPrev","onSelectNext","ariaLabel","newRangeOffset","newRange","ariaLabelString","onNavigate","dir","useFluent_unstable","isLeftNavigation","navigationButton","title","ArrowUpRegular","ArrowDownRegular","CalendarYearNav","navigationButtonsContainer","CalendarYearTitle","onHeaderSelect","_props_onHeaderSelect","onHeaderKeyDown","Space","hasHeaderClickCallback","rangeAriaLabel","headerAriaLabelFormatString","currentDateRange","replace","currentItemButton","CalendarYearHeader","onRenderTitle","_onRenderTitle","headerContainer","useAnimateBackwards","navigatedYear","rangeYear","Math","floor","previousFromYearRef","previousFromYear","useYearRangeState","useMemo","setFromYear","useState","onNavNext","onNavPrevious","useEffect","gridRef","_gridRef_current_focus","_gridRef_current","root"],"mappings":"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"}
|
|
@@ -50,8 +50,8 @@ function usePopupVisibility(props) {
|
|
|
50
50
|
const isMounted = _react.useRef(false);
|
|
51
51
|
_react.useEffect(()=>{
|
|
52
52
|
if (isMounted.current && !open) {
|
|
53
|
-
var _props_onOpenChange
|
|
54
|
-
(_props_onOpenChange =
|
|
53
|
+
var _props_onOpenChange;
|
|
54
|
+
(_props_onOpenChange = props.onOpenChange) === null || _props_onOpenChange === void 0 ? void 0 : _props_onOpenChange.call(props, false);
|
|
55
55
|
}
|
|
56
56
|
isMounted.current = true;
|
|
57
57
|
}, // eslint-disable-next-line react-hooks/exhaustive-deps
|
|
@@ -71,8 +71,7 @@ function useSelectedDate({ formatDate, onSelectDate, value }) {
|
|
|
71
71
|
});
|
|
72
72
|
const [formattedDate, setFormattedDate] = _react.useState(()=>value && formatDate ? formatDate(value) : '');
|
|
73
73
|
const setSelectedDate = (newDate)=>{
|
|
74
|
-
|
|
75
|
-
(_onSelectDate = onSelectDate) === null || _onSelectDate === void 0 ? void 0 : _onSelectDate(newDate);
|
|
74
|
+
onSelectDate === null || onSelectDate === void 0 ? void 0 : onSelectDate(newDate);
|
|
76
75
|
setSelectedDateState(newDate);
|
|
77
76
|
setFormattedDate(newDate && formatDate ? formatDate(newDate) : '');
|
|
78
77
|
};
|
|
@@ -95,7 +94,6 @@ const defaultParseDateFromString = (dateStr)=>{
|
|
|
95
94
|
return date ? new Date(date) : null;
|
|
96
95
|
};
|
|
97
96
|
const useDatePicker_unstable = (props, ref)=>{
|
|
98
|
-
var _fieldContext;
|
|
99
97
|
const { allowTextInput = false, allFocusable = false, borderless = false, dateTimeFormatter, defaultOpen = false, disableAutoFocus = true, firstDayOfWeek = _utils.DayOfWeek.Sunday, firstWeekOfYear = _utils.FirstWeekOfYear.FirstDay, formatDate = defaultFormatDate, highlightCurrentMonth = false, highlightSelectedMonth = false, initialPickerDate = new Date(), inlinePopup = false, isMonthPickerVisible = true, maxDate, minDate, mountNode, onOpenChange, onSelectDate: onUserSelectDate, openOnClick = true, onValidationResult, parseDateFromString = defaultParseDateFromString, showCloseButton = false, showGoToToday = true, showMonthPickerAsOverlay = false, showWeekNumbers = false, strings = _defaults.defaultDatePickerStrings, today, underlined = false, value, ...restOfProps } = props;
|
|
100
98
|
const calendar = _react.useRef(null);
|
|
101
99
|
const [focus, rootRef, preventFocusOpeningPicker, preventNextFocusOpeningPicker] = useFocusLogic();
|
|
@@ -107,10 +105,9 @@ const useDatePicker_unstable = (props, ref)=>{
|
|
|
107
105
|
const [open, setOpenState] = usePopupVisibility(props);
|
|
108
106
|
const fieldContext = (0, _reactfield.useFieldContext_unstable)();
|
|
109
107
|
var _fieldContext_required;
|
|
110
|
-
const required = (_fieldContext_required =
|
|
108
|
+
const required = (_fieldContext_required = fieldContext === null || fieldContext === void 0 ? void 0 : fieldContext.required) !== null && _fieldContext_required !== void 0 ? _fieldContext_required : props.required;
|
|
111
109
|
const popupSurfaceId = (0, _reactutilities.useId)('datePicker-popupSurface');
|
|
112
110
|
const validateTextInput = _react.useCallback((date = null)=>{
|
|
113
|
-
var _onValidationResult;
|
|
114
111
|
let error;
|
|
115
112
|
if (allowTextInput) {
|
|
116
113
|
if (formattedDate || date) {
|
|
@@ -134,16 +131,15 @@ const useDatePicker_unstable = (props, ref)=>{
|
|
|
134
131
|
}
|
|
135
132
|
}
|
|
136
133
|
} else {
|
|
137
|
-
var _onUserSelectDate;
|
|
138
134
|
if (required) {
|
|
139
135
|
error = 'required-input';
|
|
140
136
|
}
|
|
141
|
-
|
|
137
|
+
onUserSelectDate === null || onUserSelectDate === void 0 ? void 0 : onUserSelectDate(date);
|
|
142
138
|
}
|
|
143
139
|
} else if (required && !formattedDate) {
|
|
144
140
|
error = 'required-input';
|
|
145
141
|
}
|
|
146
|
-
|
|
142
|
+
onValidationResult === null || onValidationResult === void 0 ? void 0 : onValidationResult({
|
|
147
143
|
error
|
|
148
144
|
});
|
|
149
145
|
}, [
|
|
@@ -160,8 +156,7 @@ const useDatePicker_unstable = (props, ref)=>{
|
|
|
160
156
|
setSelectedDate
|
|
161
157
|
]);
|
|
162
158
|
const setOpen = _react.useCallback((newState)=>{
|
|
163
|
-
|
|
164
|
-
(_onOpenChange = onOpenChange) === null || _onOpenChange === void 0 ? void 0 : _onOpenChange(newState);
|
|
159
|
+
onOpenChange === null || onOpenChange === void 0 ? void 0 : onOpenChange(newState);
|
|
165
160
|
setOpenState(newState);
|
|
166
161
|
if (!open && !props.disabled) {
|
|
167
162
|
focus();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["useDatePicker.js"],"sourcesContent":["import * as React from 'react';\nimport { ArrowDown, Enter, Escape } from '@fluentui/keyboard-keys';\nimport { Calendar } from '../Calendar/Calendar';\nimport { CalendarMonthRegular } from '@fluentui/react-icons';\nimport { compareDatePart, DayOfWeek, FirstWeekOfYear } from '../../utils';\nimport { defaultDatePickerStrings } from './defaults';\nimport { Input } from '@fluentui/react-input';\nimport { mergeCallbacks, useControllableState, useEventCallback, useId, useMergedRefs, useOnClickOutside, useOnScrollOutside, slot } from '@fluentui/react-utilities';\nimport { useFieldContext_unstable as useFieldContext } from '@fluentui/react-field';\nimport { useFluent_unstable as useFluent } from '@fluentui/react-shared-contexts';\nimport { useModalAttributes } from '@fluentui/react-tabster';\nimport { usePopupPositioning } from '../../utils/usePopupPositioning';\nfunction isDateOutOfBounds(date, minDate, maxDate) {\n return !!minDate && compareDatePart(minDate, date) > 0 || !!maxDate && compareDatePart(maxDate, date) < 0;\n}\nfunction useFocusLogic() {\n const inputRef = React.useRef(null);\n const preventFocusOpeningPicker = React.useRef(false);\n const focus = React.useCallback(()=>{\n var _inputRef_current_focus, _inputRef_current;\n (_inputRef_current = inputRef.current) === null || _inputRef_current === void 0 ? void 0 : (_inputRef_current_focus = _inputRef_current.focus) === null || _inputRef_current_focus === void 0 ? void 0 : _inputRef_current_focus.call(_inputRef_current);\n }, []);\n const preventNextFocusOpeningPicker = React.useCallback(()=>{\n preventFocusOpeningPicker.current = true;\n }, []);\n return [\n focus,\n inputRef,\n preventFocusOpeningPicker,\n preventNextFocusOpeningPicker\n ];\n}\nfunction usePopupVisibility(props) {\n const [open, setOpen] = useControllableState({\n initialState: false,\n defaultState: props.defaultOpen,\n state: props.open\n });\n const isMounted = React.useRef(false);\n React.useEffect(()=>{\n if (isMounted.current && !open) {\n var // If DatePicker's menu (Calendar) is closed, run onAfterMenuDismiss\n _props_onOpenChange, _props;\n (_props_onOpenChange = (_props = props).onOpenChange) === null || _props_onOpenChange === void 0 ? void 0 : _props_onOpenChange.call(_props, false);\n }\n isMounted.current = true;\n }, // Should only run on allowTextInput or open change\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [\n props.allowTextInput,\n open\n ]);\n return [\n open,\n setOpen\n ];\n}\nfunction useSelectedDate({ formatDate, onSelectDate, value }) {\n const [selectedDate, setSelectedDateState] = useControllableState({\n initialState: null,\n state: value\n });\n const [formattedDate, setFormattedDate] = React.useState(()=>value && formatDate ? formatDate(value) : '');\n const setSelectedDate = (newDate)=>{\n var _onSelectDate;\n (_onSelectDate = onSelectDate) === null || _onSelectDate === void 0 ? void 0 : _onSelectDate(newDate);\n setSelectedDateState(newDate);\n setFormattedDate(newDate && formatDate ? formatDate(newDate) : '');\n };\n React.useEffect(()=>{\n setFormattedDate(value && formatDate ? formatDate(value) : '');\n }, [\n formatDate,\n value\n ]);\n return [\n selectedDate,\n formattedDate,\n setSelectedDate,\n setFormattedDate\n ];\n}\nconst defaultFormatDate = (date)=>date ? date.toDateString() : '';\nconst defaultParseDateFromString = (dateStr)=>{\n const date = Date.parse(dateStr);\n return date ? new Date(date) : null;\n};\n/**\n * Create the state required to render DatePicker.\n *\n * The returned state can be modified with hooks such as useDatePickerStyles_unstable,\n * before being passed to renderDatePicker_unstable.\n *\n * @param props - props from this instance of DatePicker\n * @param ref - reference to root Input slot\n */ export const useDatePicker_unstable = (props, ref)=>{\n var _fieldContext;\n const { allowTextInput = false, allFocusable = false, borderless = false, dateTimeFormatter, defaultOpen = false, disableAutoFocus = true, firstDayOfWeek = DayOfWeek.Sunday, firstWeekOfYear = FirstWeekOfYear.FirstDay, formatDate = defaultFormatDate, highlightCurrentMonth = false, highlightSelectedMonth = false, initialPickerDate = new Date(), inlinePopup = false, isMonthPickerVisible = true, maxDate, minDate, mountNode, onOpenChange, onSelectDate: onUserSelectDate, openOnClick = true, onValidationResult, parseDateFromString = defaultParseDateFromString, showCloseButton = false, showGoToToday = true, showMonthPickerAsOverlay = false, showWeekNumbers = false, strings = defaultDatePickerStrings, today, underlined = false, value, ...restOfProps } = props;\n const calendar = React.useRef(null);\n const [focus, rootRef, preventFocusOpeningPicker, preventNextFocusOpeningPicker] = useFocusLogic();\n const [selectedDate, formattedDate, setSelectedDate, setFormattedDate] = useSelectedDate({\n formatDate,\n onSelectDate: onUserSelectDate,\n value\n });\n const [open, setOpenState] = usePopupVisibility(props);\n const fieldContext = useFieldContext();\n var _fieldContext_required;\n const required = (_fieldContext_required = (_fieldContext = fieldContext) === null || _fieldContext === void 0 ? void 0 : _fieldContext.required) !== null && _fieldContext_required !== void 0 ? _fieldContext_required : props.required;\n const popupSurfaceId = useId('datePicker-popupSurface');\n const validateTextInput = React.useCallback((date = null)=>{\n var _onValidationResult;\n let error;\n if (allowTextInput) {\n if (formattedDate || date) {\n // Don't parse if the selected date has the same formatted string as what we're about to parse.\n // The formatted string might be ambiguous (ex: \"1/2/3\" or \"New Year Eve\") and the parser might\n // not be able to come up with the exact same date.\n if (selectedDate && formatDate && formatDate(date !== null && date !== void 0 ? date : selectedDate) === formattedDate) {\n return;\n }\n date = date || parseDateFromString(formattedDate);\n // Check if date is null or date is an invalid date\n if (!date || isNaN(date.getTime())) {\n // Reset input if formatting is available\n setSelectedDate(selectedDate);\n error = 'invalid-input';\n } else {\n if (isDateOutOfBounds(date, minDate, maxDate)) {\n error = 'out-of-bounds';\n } else {\n setSelectedDate(date);\n }\n }\n } else {\n var _onUserSelectDate;\n if (required) {\n error = 'required-input';\n }\n (_onUserSelectDate = onUserSelectDate) === null || _onUserSelectDate === void 0 ? void 0 : _onUserSelectDate(date);\n }\n } else if (required && !formattedDate) {\n error = 'required-input';\n }\n (_onValidationResult = onValidationResult) === null || _onValidationResult === void 0 ? void 0 : _onValidationResult({\n error\n });\n }, [\n allowTextInput,\n formatDate,\n formattedDate,\n maxDate,\n minDate,\n onUserSelectDate,\n onValidationResult,\n parseDateFromString,\n required,\n selectedDate,\n setSelectedDate\n ]);\n const setOpen = React.useCallback((newState)=>{\n var _onOpenChange;\n (_onOpenChange = onOpenChange) === null || _onOpenChange === void 0 ? void 0 : _onOpenChange(newState);\n setOpenState(newState);\n if (!open && !props.disabled) {\n focus();\n }\n }, // eslint-disable-next-line react-hooks/exhaustive-deps\n [\n focus,\n onOpenChange,\n props.disabled,\n setOpenState\n ]);\n const dismissDatePickerPopup = React.useCallback((newlySelectedDate)=>{\n if (open) {\n setOpen(false);\n validateTextInput(newlySelectedDate);\n if (!allowTextInput && newlySelectedDate) {\n setSelectedDate(newlySelectedDate);\n }\n }\n }, [\n allowTextInput,\n open,\n setOpen,\n setSelectedDate,\n validateTextInput\n ]);\n const showDatePickerPopup = React.useCallback(()=>{\n if (!open) {\n preventNextFocusOpeningPicker();\n setOpen(true);\n }\n }, [\n open,\n preventNextFocusOpeningPicker,\n setOpen\n ]);\n /**\n * Callback for closing the calendar callout\n */ const calendarDismissed = React.useCallback((newlySelectedDate)=>{\n preventNextFocusOpeningPicker();\n dismissDatePickerPopup(newlySelectedDate);\n }, [\n dismissDatePickerPopup,\n preventNextFocusOpeningPicker\n ]);\n const onInputChange = React.useCallback((ev, data)=>{\n const { value: newValue } = data;\n if (allowTextInput) {\n if (open) {\n dismissDatePickerPopup();\n }\n setFormattedDate(newValue);\n }\n }, [\n allowTextInput,\n dismissDatePickerPopup,\n open,\n setFormattedDate\n ]);\n const onInputBlur = React.useCallback(()=>{\n validateTextInput();\n }, [\n validateTextInput\n ]);\n const onInputKeyDown = React.useCallback((ev)=>{\n switch(ev.key){\n case Enter:\n ev.preventDefault();\n ev.stopPropagation();\n if (!open) {\n validateTextInput();\n showDatePickerPopup();\n } else {\n // When DatePicker allows input date string directly,\n // it is expected to hit another enter to close the popup\n if (props.allowTextInput) {\n dismissDatePickerPopup();\n }\n }\n break;\n case Escape:\n ev.stopPropagation();\n ev.preventDefault();\n if (open) {\n calendarDismissed();\n }\n break;\n case ArrowDown:\n ev.preventDefault();\n if (ev.altKey && !open) {\n showDatePickerPopup();\n }\n break;\n default:\n break;\n }\n }, [\n calendarDismissed,\n dismissDatePickerPopup,\n open,\n props.allowTextInput,\n showDatePickerPopup,\n validateTextInput\n ]);\n const onInputFocus = React.useCallback(()=>{\n if (disableAutoFocus) {\n return;\n }\n if (!allowTextInput) {\n if (!preventFocusOpeningPicker.current) {\n showDatePickerPopup();\n }\n preventFocusOpeningPicker.current = false;\n }\n }, [\n allowTextInput,\n disableAutoFocus,\n preventFocusOpeningPicker,\n showDatePickerPopup\n ]);\n const onInputClick = React.useCallback(()=>{\n // default openOnClick to !props.disableAutoFocus for legacy support of disableAutoFocus behavior\n if ((props.openOnClick || !props.disableAutoFocus) && !open && !props.disabled) {\n showDatePickerPopup();\n return;\n }\n if (allowTextInput) {\n dismissDatePickerPopup();\n }\n }, [\n allowTextInput,\n dismissDatePickerPopup,\n open,\n props.disabled,\n props.disableAutoFocus,\n props.openOnClick,\n showDatePickerPopup\n ]);\n const onIconClick = (ev)=>{\n ev.stopPropagation();\n if (!open && !props.disabled) {\n showDatePickerPopup();\n } else if (props.allowTextInput) {\n dismissDatePickerPopup();\n }\n };\n const inputAppearance = underlined ? 'underline' : borderless ? 'filled-lighter' : 'outline';\n const [triggerWrapperRef, popupRef] = usePopupPositioning(props);\n const root = slot.always(restOfProps, {\n defaultProps: {\n appearance: inputAppearance,\n 'aria-controls': open ? popupSurfaceId : undefined,\n 'aria-expanded': open,\n 'aria-haspopup': 'dialog',\n contentAfter: /*#__PURE__*/ React.createElement(CalendarMonthRegular, {\n onClick: onIconClick\n }),\n readOnly: !allowTextInput,\n role: 'combobox'\n },\n elementType: Input\n });\n const inputRoot = slot.always(props.root, {\n defaultProps: {\n 'aria-owns': open ? popupSurfaceId : undefined,\n ref: triggerWrapperRef\n },\n elementType: 'span'\n });\n inputRoot.ref = useMergedRefs(inputRoot.ref, triggerWrapperRef);\n root.root = inputRoot;\n const inputShorthand = slot.always(props.input, {\n elementType: 'input'\n });\n inputShorthand.ref = useMergedRefs(inputShorthand.ref, ref, rootRef);\n root.input = inputShorthand;\n root.onChange = useEventCallback(mergeCallbacks(root.onChange, onInputChange));\n root.onBlur = useEventCallback(mergeCallbacks(root.onBlur, onInputBlur));\n root.onKeyDown = useEventCallback(mergeCallbacks(root.onKeyDown, onInputKeyDown));\n root.onFocus = useEventCallback(mergeCallbacks(root.onFocus, onInputFocus));\n root.onClick = useEventCallback(mergeCallbacks(root.onClick, onInputClick));\n const { modalAttributes } = useModalAttributes({\n trapFocus: true,\n alwaysFocusable: true,\n legacyTrapFocus: false\n });\n const popupSurface = open ? slot.optional(props.popupSurface, {\n renderByDefault: true,\n defaultProps: {\n 'aria-label': 'Calendar',\n 'aria-modal': true,\n id: popupSurfaceId,\n role: 'dialog',\n ref: popupRef,\n ...modalAttributes\n },\n elementType: 'div'\n }) : undefined;\n const { targetDocument } = useFluent();\n useOnClickOutside({\n element: targetDocument,\n callback: (ev)=>dismissDatePickerPopup(),\n refs: [\n triggerWrapperRef,\n popupRef\n ],\n disabled: !open\n });\n useOnScrollOutside({\n element: targetDocument,\n callback: (ev)=>dismissDatePickerPopup(),\n refs: [\n triggerWrapperRef,\n popupRef\n ],\n disabled: !open\n }); // When the popup is opened, focus should go to the calendar.\n // In v8 this was done by focusing after the callout was positioned, but in v9 this can be simulated by using a\n // useEffect hook.\n React.useEffect(()=>{\n if (open && !props.disabled && calendar.current) {\n calendar.current.focus();\n }\n }, [\n disableAutoFocus,\n open,\n props.disabled\n ]);\n const calendarShorthand = slot.always(props.calendar, {\n defaultProps: {\n allFocusable,\n componentRef: calendar,\n dateTimeFormatter,\n firstDayOfWeek,\n firstWeekOfYear,\n highlightCurrentMonth,\n highlightSelectedMonth,\n isMonthPickerVisible,\n maxDate,\n minDate,\n showCloseButton,\n showGoToToday,\n showMonthPickerAsOverlay,\n showWeekNumbers,\n strings,\n today,\n value: selectedDate || initialPickerDate\n },\n elementType: Calendar\n });\n calendarShorthand.onDismiss = useEventCallback(mergeCallbacks(calendarShorthand.onDismiss, calendarDismissed));\n calendarShorthand.onSelectDate = useEventCallback(mergeCallbacks(calendarShorthand.onSelectDate, calendarDismissed));\n const state = {\n disabled: !!props.disabled,\n inlinePopup,\n components: {\n root: Input,\n calendar: Calendar,\n popupSurface: 'div'\n },\n calendar: calendarShorthand,\n mountNode,\n root,\n popupSurface\n };\n state.root.value = formattedDate;\n return state;\n};\n"],"names":["useDatePicker_unstable","isDateOutOfBounds","date","minDate","maxDate","compareDatePart","useFocusLogic","inputRef","React","useRef","preventFocusOpeningPicker","focus","useCallback","_inputRef_current_focus","_inputRef_current","current","call","preventNextFocusOpeningPicker","usePopupVisibility","props","open","setOpen","useControllableState","initialState","defaultState","defaultOpen","state","isMounted","useEffect","_props_onOpenChange","_props","onOpenChange","allowTextInput","useSelectedDate","formatDate","onSelectDate","value","selectedDate","setSelectedDateState","formattedDate","setFormattedDate","useState","setSelectedDate","newDate","_onSelectDate","defaultFormatDate","toDateString","defaultParseDateFromString","dateStr","Date","parse","ref","_fieldContext","allFocusable","borderless","dateTimeFormatter","disableAutoFocus","firstDayOfWeek","DayOfWeek","Sunday","firstWeekOfYear","FirstWeekOfYear","FirstDay","highlightCurrentMonth","highlightSelectedMonth","initialPickerDate","inlinePopup","isMonthPickerVisible","mountNode","onUserSelectDate","openOnClick","onValidationResult","parseDateFromString","showCloseButton","showGoToToday","showMonthPickerAsOverlay","showWeekNumbers","strings","defaultDatePickerStrings","today","underlined","restOfProps","calendar","rootRef","setOpenState","fieldContext","useFieldContext","_fieldContext_required","required","popupSurfaceId","useId","validateTextInput","_onValidationResult","error","isNaN","getTime","_onUserSelectDate","newState","_onOpenChange","disabled","dismissDatePickerPopup","newlySelectedDate","showDatePickerPopup","calendarDismissed","onInputChange","ev","data","newValue","onInputBlur","onInputKeyDown","key","Enter","preventDefault","stopPropagation","Escape","ArrowDown","altKey","onInputFocus","onInputClick","onIconClick","inputAppearance","triggerWrapperRef","popupRef","usePopupPositioning","root","slot","always","defaultProps","appearance","undefined","contentAfter","createElement","CalendarMonthRegular","onClick","readOnly","role","elementType","Input","inputRoot","useMergedRefs","inputShorthand","input","onChange","useEventCallback","mergeCallbacks","onBlur","onKeyDown","onFocus","modalAttributes","useModalAttributes","trapFocus","alwaysFocusable","legacyTrapFocus","popupSurface","optional","renderByDefault","id","targetDocument","useFluent","useOnClickOutside","element","callback","refs","useOnScrollOutside","calendarShorthand","componentRef","Calendar","onDismiss","components"],"mappings":"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"}
|
|
1
|
+
{"version":3,"sources":["useDatePicker.js"],"sourcesContent":["import * as React from 'react';\nimport { ArrowDown, Enter, Escape } from '@fluentui/keyboard-keys';\nimport { Calendar } from '../Calendar/Calendar';\nimport { CalendarMonthRegular } from '@fluentui/react-icons';\nimport { compareDatePart, DayOfWeek, FirstWeekOfYear } from '../../utils';\nimport { defaultDatePickerStrings } from './defaults';\nimport { Input } from '@fluentui/react-input';\nimport { mergeCallbacks, useControllableState, useEventCallback, useId, useMergedRefs, useOnClickOutside, useOnScrollOutside, slot } from '@fluentui/react-utilities';\nimport { useFieldContext_unstable as useFieldContext } from '@fluentui/react-field';\nimport { useFluent_unstable as useFluent } from '@fluentui/react-shared-contexts';\nimport { useModalAttributes } from '@fluentui/react-tabster';\nimport { usePopupPositioning } from '../../utils/usePopupPositioning';\nfunction isDateOutOfBounds(date, minDate, maxDate) {\n return !!minDate && compareDatePart(minDate, date) > 0 || !!maxDate && compareDatePart(maxDate, date) < 0;\n}\nfunction useFocusLogic() {\n const inputRef = React.useRef(null);\n const preventFocusOpeningPicker = React.useRef(false);\n const focus = React.useCallback(()=>{\n var _inputRef_current_focus, _inputRef_current;\n (_inputRef_current = inputRef.current) === null || _inputRef_current === void 0 ? void 0 : (_inputRef_current_focus = _inputRef_current.focus) === null || _inputRef_current_focus === void 0 ? void 0 : _inputRef_current_focus.call(_inputRef_current);\n }, []);\n const preventNextFocusOpeningPicker = React.useCallback(()=>{\n preventFocusOpeningPicker.current = true;\n }, []);\n return [\n focus,\n inputRef,\n preventFocusOpeningPicker,\n preventNextFocusOpeningPicker\n ];\n}\nfunction usePopupVisibility(props) {\n const [open, setOpen] = useControllableState({\n initialState: false,\n defaultState: props.defaultOpen,\n state: props.open\n });\n const isMounted = React.useRef(false);\n React.useEffect(()=>{\n if (isMounted.current && !open) {\n var // If DatePicker's menu (Calendar) is closed, run onAfterMenuDismiss\n _props_onOpenChange;\n (_props_onOpenChange = props.onOpenChange) === null || _props_onOpenChange === void 0 ? void 0 : _props_onOpenChange.call(props, false);\n }\n isMounted.current = true;\n }, // Should only run on allowTextInput or open change\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [\n props.allowTextInput,\n open\n ]);\n return [\n open,\n setOpen\n ];\n}\nfunction useSelectedDate({ formatDate, onSelectDate, value }) {\n const [selectedDate, setSelectedDateState] = useControllableState({\n initialState: null,\n state: value\n });\n const [formattedDate, setFormattedDate] = React.useState(()=>value && formatDate ? formatDate(value) : '');\n const setSelectedDate = (newDate)=>{\n onSelectDate === null || onSelectDate === void 0 ? void 0 : onSelectDate(newDate);\n setSelectedDateState(newDate);\n setFormattedDate(newDate && formatDate ? formatDate(newDate) : '');\n };\n React.useEffect(()=>{\n setFormattedDate(value && formatDate ? formatDate(value) : '');\n }, [\n formatDate,\n value\n ]);\n return [\n selectedDate,\n formattedDate,\n setSelectedDate,\n setFormattedDate\n ];\n}\nconst defaultFormatDate = (date)=>date ? date.toDateString() : '';\nconst defaultParseDateFromString = (dateStr)=>{\n const date = Date.parse(dateStr);\n return date ? new Date(date) : null;\n};\n/**\n * Create the state required to render DatePicker.\n *\n * The returned state can be modified with hooks such as useDatePickerStyles_unstable,\n * before being passed to renderDatePicker_unstable.\n *\n * @param props - props from this instance of DatePicker\n * @param ref - reference to root Input slot\n */ export const useDatePicker_unstable = (props, ref)=>{\n const { allowTextInput = false, allFocusable = false, borderless = false, dateTimeFormatter, defaultOpen = false, disableAutoFocus = true, firstDayOfWeek = DayOfWeek.Sunday, firstWeekOfYear = FirstWeekOfYear.FirstDay, formatDate = defaultFormatDate, highlightCurrentMonth = false, highlightSelectedMonth = false, initialPickerDate = new Date(), inlinePopup = false, isMonthPickerVisible = true, maxDate, minDate, mountNode, onOpenChange, onSelectDate: onUserSelectDate, openOnClick = true, onValidationResult, parseDateFromString = defaultParseDateFromString, showCloseButton = false, showGoToToday = true, showMonthPickerAsOverlay = false, showWeekNumbers = false, strings = defaultDatePickerStrings, today, underlined = false, value, ...restOfProps } = props;\n const calendar = React.useRef(null);\n const [focus, rootRef, preventFocusOpeningPicker, preventNextFocusOpeningPicker] = useFocusLogic();\n const [selectedDate, formattedDate, setSelectedDate, setFormattedDate] = useSelectedDate({\n formatDate,\n onSelectDate: onUserSelectDate,\n value\n });\n const [open, setOpenState] = usePopupVisibility(props);\n const fieldContext = useFieldContext();\n var _fieldContext_required;\n const required = (_fieldContext_required = fieldContext === null || fieldContext === void 0 ? void 0 : fieldContext.required) !== null && _fieldContext_required !== void 0 ? _fieldContext_required : props.required;\n const popupSurfaceId = useId('datePicker-popupSurface');\n const validateTextInput = React.useCallback((date = null)=>{\n let error;\n if (allowTextInput) {\n if (formattedDate || date) {\n // Don't parse if the selected date has the same formatted string as what we're about to parse.\n // The formatted string might be ambiguous (ex: \"1/2/3\" or \"New Year Eve\") and the parser might\n // not be able to come up with the exact same date.\n if (selectedDate && formatDate && formatDate(date !== null && date !== void 0 ? date : selectedDate) === formattedDate) {\n return;\n }\n date = date || parseDateFromString(formattedDate);\n // Check if date is null or date is an invalid date\n if (!date || isNaN(date.getTime())) {\n // Reset input if formatting is available\n setSelectedDate(selectedDate);\n error = 'invalid-input';\n } else {\n if (isDateOutOfBounds(date, minDate, maxDate)) {\n error = 'out-of-bounds';\n } else {\n setSelectedDate(date);\n }\n }\n } else {\n if (required) {\n error = 'required-input';\n }\n onUserSelectDate === null || onUserSelectDate === void 0 ? void 0 : onUserSelectDate(date);\n }\n } else if (required && !formattedDate) {\n error = 'required-input';\n }\n onValidationResult === null || onValidationResult === void 0 ? void 0 : onValidationResult({\n error\n });\n }, [\n allowTextInput,\n formatDate,\n formattedDate,\n maxDate,\n minDate,\n onUserSelectDate,\n onValidationResult,\n parseDateFromString,\n required,\n selectedDate,\n setSelectedDate\n ]);\n const setOpen = React.useCallback((newState)=>{\n onOpenChange === null || onOpenChange === void 0 ? void 0 : onOpenChange(newState);\n setOpenState(newState);\n if (!open && !props.disabled) {\n focus();\n }\n }, // eslint-disable-next-line react-hooks/exhaustive-deps\n [\n focus,\n onOpenChange,\n props.disabled,\n setOpenState\n ]);\n const dismissDatePickerPopup = React.useCallback((newlySelectedDate)=>{\n if (open) {\n setOpen(false);\n validateTextInput(newlySelectedDate);\n if (!allowTextInput && newlySelectedDate) {\n setSelectedDate(newlySelectedDate);\n }\n }\n }, [\n allowTextInput,\n open,\n setOpen,\n setSelectedDate,\n validateTextInput\n ]);\n const showDatePickerPopup = React.useCallback(()=>{\n if (!open) {\n preventNextFocusOpeningPicker();\n setOpen(true);\n }\n }, [\n open,\n preventNextFocusOpeningPicker,\n setOpen\n ]);\n /**\n * Callback for closing the calendar callout\n */ const calendarDismissed = React.useCallback((newlySelectedDate)=>{\n preventNextFocusOpeningPicker();\n dismissDatePickerPopup(newlySelectedDate);\n }, [\n dismissDatePickerPopup,\n preventNextFocusOpeningPicker\n ]);\n const onInputChange = React.useCallback((ev, data)=>{\n const { value: newValue } = data;\n if (allowTextInput) {\n if (open) {\n dismissDatePickerPopup();\n }\n setFormattedDate(newValue);\n }\n }, [\n allowTextInput,\n dismissDatePickerPopup,\n open,\n setFormattedDate\n ]);\n const onInputBlur = React.useCallback(()=>{\n validateTextInput();\n }, [\n validateTextInput\n ]);\n const onInputKeyDown = React.useCallback((ev)=>{\n switch(ev.key){\n case Enter:\n ev.preventDefault();\n ev.stopPropagation();\n if (!open) {\n validateTextInput();\n showDatePickerPopup();\n } else {\n // When DatePicker allows input date string directly,\n // it is expected to hit another enter to close the popup\n if (props.allowTextInput) {\n dismissDatePickerPopup();\n }\n }\n break;\n case Escape:\n ev.stopPropagation();\n ev.preventDefault();\n if (open) {\n calendarDismissed();\n }\n break;\n case ArrowDown:\n ev.preventDefault();\n if (ev.altKey && !open) {\n showDatePickerPopup();\n }\n break;\n default:\n break;\n }\n }, [\n calendarDismissed,\n dismissDatePickerPopup,\n open,\n props.allowTextInput,\n showDatePickerPopup,\n validateTextInput\n ]);\n const onInputFocus = React.useCallback(()=>{\n if (disableAutoFocus) {\n return;\n }\n if (!allowTextInput) {\n if (!preventFocusOpeningPicker.current) {\n showDatePickerPopup();\n }\n preventFocusOpeningPicker.current = false;\n }\n }, [\n allowTextInput,\n disableAutoFocus,\n preventFocusOpeningPicker,\n showDatePickerPopup\n ]);\n const onInputClick = React.useCallback(()=>{\n // default openOnClick to !props.disableAutoFocus for legacy support of disableAutoFocus behavior\n if ((props.openOnClick || !props.disableAutoFocus) && !open && !props.disabled) {\n showDatePickerPopup();\n return;\n }\n if (allowTextInput) {\n dismissDatePickerPopup();\n }\n }, [\n allowTextInput,\n dismissDatePickerPopup,\n open,\n props.disabled,\n props.disableAutoFocus,\n props.openOnClick,\n showDatePickerPopup\n ]);\n const onIconClick = (ev)=>{\n ev.stopPropagation();\n if (!open && !props.disabled) {\n showDatePickerPopup();\n } else if (props.allowTextInput) {\n dismissDatePickerPopup();\n }\n };\n const inputAppearance = underlined ? 'underline' : borderless ? 'filled-lighter' : 'outline';\n const [triggerWrapperRef, popupRef] = usePopupPositioning(props);\n const root = slot.always(restOfProps, {\n defaultProps: {\n appearance: inputAppearance,\n 'aria-controls': open ? popupSurfaceId : undefined,\n 'aria-expanded': open,\n 'aria-haspopup': 'dialog',\n contentAfter: /*#__PURE__*/ React.createElement(CalendarMonthRegular, {\n onClick: onIconClick\n }),\n readOnly: !allowTextInput,\n role: 'combobox'\n },\n elementType: Input\n });\n const inputRoot = slot.always(props.root, {\n defaultProps: {\n 'aria-owns': open ? popupSurfaceId : undefined,\n ref: triggerWrapperRef\n },\n elementType: 'span'\n });\n inputRoot.ref = useMergedRefs(inputRoot.ref, triggerWrapperRef);\n root.root = inputRoot;\n const inputShorthand = slot.always(props.input, {\n elementType: 'input'\n });\n inputShorthand.ref = useMergedRefs(inputShorthand.ref, ref, rootRef);\n root.input = inputShorthand;\n root.onChange = useEventCallback(mergeCallbacks(root.onChange, onInputChange));\n root.onBlur = useEventCallback(mergeCallbacks(root.onBlur, onInputBlur));\n root.onKeyDown = useEventCallback(mergeCallbacks(root.onKeyDown, onInputKeyDown));\n root.onFocus = useEventCallback(mergeCallbacks(root.onFocus, onInputFocus));\n root.onClick = useEventCallback(mergeCallbacks(root.onClick, onInputClick));\n const { modalAttributes } = useModalAttributes({\n trapFocus: true,\n alwaysFocusable: true,\n legacyTrapFocus: false\n });\n const popupSurface = open ? slot.optional(props.popupSurface, {\n renderByDefault: true,\n defaultProps: {\n 'aria-label': 'Calendar',\n 'aria-modal': true,\n id: popupSurfaceId,\n role: 'dialog',\n ref: popupRef,\n ...modalAttributes\n },\n elementType: 'div'\n }) : undefined;\n const { targetDocument } = useFluent();\n useOnClickOutside({\n element: targetDocument,\n callback: (ev)=>dismissDatePickerPopup(),\n refs: [\n triggerWrapperRef,\n popupRef\n ],\n disabled: !open\n });\n useOnScrollOutside({\n element: targetDocument,\n callback: (ev)=>dismissDatePickerPopup(),\n refs: [\n triggerWrapperRef,\n popupRef\n ],\n disabled: !open\n }); // When the popup is opened, focus should go to the calendar.\n // In v8 this was done by focusing after the callout was positioned, but in v9 this can be simulated by using a\n // useEffect hook.\n React.useEffect(()=>{\n if (open && !props.disabled && calendar.current) {\n calendar.current.focus();\n }\n }, [\n disableAutoFocus,\n open,\n props.disabled\n ]);\n const calendarShorthand = slot.always(props.calendar, {\n defaultProps: {\n allFocusable,\n componentRef: calendar,\n dateTimeFormatter,\n firstDayOfWeek,\n firstWeekOfYear,\n highlightCurrentMonth,\n highlightSelectedMonth,\n isMonthPickerVisible,\n maxDate,\n minDate,\n showCloseButton,\n showGoToToday,\n showMonthPickerAsOverlay,\n showWeekNumbers,\n strings,\n today,\n value: selectedDate || initialPickerDate\n },\n elementType: Calendar\n });\n calendarShorthand.onDismiss = useEventCallback(mergeCallbacks(calendarShorthand.onDismiss, calendarDismissed));\n calendarShorthand.onSelectDate = useEventCallback(mergeCallbacks(calendarShorthand.onSelectDate, calendarDismissed));\n const state = {\n disabled: !!props.disabled,\n inlinePopup,\n components: {\n root: Input,\n calendar: Calendar,\n popupSurface: 'div'\n },\n calendar: calendarShorthand,\n mountNode,\n root,\n popupSurface\n };\n state.root.value = formattedDate;\n return state;\n};\n"],"names":["useDatePicker_unstable","isDateOutOfBounds","date","minDate","maxDate","compareDatePart","useFocusLogic","inputRef","React","useRef","preventFocusOpeningPicker","focus","useCallback","_inputRef_current_focus","_inputRef_current","current","call","preventNextFocusOpeningPicker","usePopupVisibility","props","open","setOpen","useControllableState","initialState","defaultState","defaultOpen","state","isMounted","useEffect","_props_onOpenChange","onOpenChange","allowTextInput","useSelectedDate","formatDate","onSelectDate","value","selectedDate","setSelectedDateState","formattedDate","setFormattedDate","useState","setSelectedDate","newDate","defaultFormatDate","toDateString","defaultParseDateFromString","dateStr","Date","parse","ref","allFocusable","borderless","dateTimeFormatter","disableAutoFocus","firstDayOfWeek","DayOfWeek","Sunday","firstWeekOfYear","FirstWeekOfYear","FirstDay","highlightCurrentMonth","highlightSelectedMonth","initialPickerDate","inlinePopup","isMonthPickerVisible","mountNode","onUserSelectDate","openOnClick","onValidationResult","parseDateFromString","showCloseButton","showGoToToday","showMonthPickerAsOverlay","showWeekNumbers","strings","defaultDatePickerStrings","today","underlined","restOfProps","calendar","rootRef","setOpenState","fieldContext","useFieldContext","_fieldContext_required","required","popupSurfaceId","useId","validateTextInput","error","isNaN","getTime","newState","disabled","dismissDatePickerPopup","newlySelectedDate","showDatePickerPopup","calendarDismissed","onInputChange","ev","data","newValue","onInputBlur","onInputKeyDown","key","Enter","preventDefault","stopPropagation","Escape","ArrowDown","altKey","onInputFocus","onInputClick","onIconClick","inputAppearance","triggerWrapperRef","popupRef","usePopupPositioning","root","slot","always","defaultProps","appearance","undefined","contentAfter","createElement","CalendarMonthRegular","onClick","readOnly","role","elementType","Input","inputRoot","useMergedRefs","inputShorthand","input","onChange","useEventCallback","mergeCallbacks","onBlur","onKeyDown","onFocus","modalAttributes","useModalAttributes","trapFocus","alwaysFocusable","legacyTrapFocus","popupSurface","optional","renderByDefault","id","targetDocument","useFluent","useOnClickOutside","element","callback","refs","useOnScrollOutside","calendarShorthand","componentRef","Calendar","onDismiss","components"],"mappings":"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"}
|
|
@@ -50,7 +50,6 @@ const getDayGrid = (options)=>{
|
|
|
50
50
|
const week = [];
|
|
51
51
|
isAllDaysOfWeekOutOfMonth = true;
|
|
52
52
|
for(let dayIndex = 0; dayIndex < _constants.DAYS_IN_WEEK; dayIndex++){
|
|
53
|
-
var _markedDays;
|
|
54
53
|
const originalDate = new Date(date.getTime());
|
|
55
54
|
const dayInfo = {
|
|
56
55
|
key: date.toString(),
|
|
@@ -60,7 +59,7 @@ const getDayGrid = (options)=>{
|
|
|
60
59
|
isToday: (0, _dateMath.compareDates)(todaysDate, date),
|
|
61
60
|
isSelected: (0, _dateMath.isInDateRangeArray)(date, selectedDates),
|
|
62
61
|
isInBounds: !(0, _isRestrictedDate.isRestrictedDate)(date, restrictedDateOptions),
|
|
63
|
-
isMarked: (
|
|
62
|
+
isMarked: (markedDays === null || markedDays === void 0 ? void 0 : markedDays.some((markedDay)=>(0, _dateMath.compareDates)(originalDate, markedDay))) || false
|
|
64
63
|
};
|
|
65
64
|
week.push(dayInfo);
|
|
66
65
|
if (dayInfo.isInMonth) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["getDayGrid.js"],"sourcesContent":["import { addDays, compareDates, getDateRangeArray, isInDateRangeArray } from '../dateMath/dateMath';\nimport { DAYS_IN_WEEK } from '../constants';\nimport { getDateRangeTypeToUse } from './getDateRangeTypeToUse';\nimport { getBoundedDateRange } from './getBoundedDateRange';\nimport { isRestrictedDate } from './isRestrictedDate';\n/**\n * Generates a grid of days, given the `options`.\n * Returns one additional week at the begining from the previous range\n * and one at the end from the future range\n * @param options - parameters to specify date related restrictions for the resulting grid\n */ export const getDayGrid = (options)=>{\n const { selectedDate, dateRangeType, firstDayOfWeek, today, minDate, maxDate, weeksToShow, workWeekDays, daysToSelectInDayView, restrictedDates, markedDays } = options;\n const restrictedDateOptions = {\n minDate,\n maxDate,\n restrictedDates\n };\n const todaysDate = today || new Date();\n const navigatedDate = options.navigatedDate ? options.navigatedDate : todaysDate;\n let date;\n if (weeksToShow && weeksToShow <= 4) {\n // if showing less than a full month, just use date == navigatedDate\n date = new Date(navigatedDate.getFullYear(), navigatedDate.getMonth(), navigatedDate.getDate());\n } else {\n date = new Date(navigatedDate.getFullYear(), navigatedDate.getMonth(), 1);\n }\n const weeks = [];\n // Cycle the date backwards to get to the first day of the week.\n while(date.getDay() !== firstDayOfWeek){\n date.setDate(date.getDate() - 1);\n }\n // add the transition week as last week of previous range\n date = addDays(date, -DAYS_IN_WEEK);\n // a flag to indicate whether all days of the week are outside the month\n let isAllDaysOfWeekOutOfMonth = false;\n // in work week view if the days aren't contiguous we use week view instead\n const selectedDateRangeType = getDateRangeTypeToUse(dateRangeType, workWeekDays, firstDayOfWeek);\n let selectedDates = [];\n if (selectedDate) {\n selectedDates = getDateRangeArray(selectedDate, selectedDateRangeType, firstDayOfWeek, workWeekDays, daysToSelectInDayView);\n selectedDates = getBoundedDateRange(selectedDates, minDate, maxDate);\n }\n let shouldGetWeeks = true;\n for(let weekIndex = 0; shouldGetWeeks; weekIndex++){\n const week = [];\n isAllDaysOfWeekOutOfMonth = true;\n for(let dayIndex = 0; dayIndex < DAYS_IN_WEEK; dayIndex++){\n
|
|
1
|
+
{"version":3,"sources":["getDayGrid.js"],"sourcesContent":["import { addDays, compareDates, getDateRangeArray, isInDateRangeArray } from '../dateMath/dateMath';\nimport { DAYS_IN_WEEK } from '../constants';\nimport { getDateRangeTypeToUse } from './getDateRangeTypeToUse';\nimport { getBoundedDateRange } from './getBoundedDateRange';\nimport { isRestrictedDate } from './isRestrictedDate';\n/**\n * Generates a grid of days, given the `options`.\n * Returns one additional week at the begining from the previous range\n * and one at the end from the future range\n * @param options - parameters to specify date related restrictions for the resulting grid\n */ export const getDayGrid = (options)=>{\n const { selectedDate, dateRangeType, firstDayOfWeek, today, minDate, maxDate, weeksToShow, workWeekDays, daysToSelectInDayView, restrictedDates, markedDays } = options;\n const restrictedDateOptions = {\n minDate,\n maxDate,\n restrictedDates\n };\n const todaysDate = today || new Date();\n const navigatedDate = options.navigatedDate ? options.navigatedDate : todaysDate;\n let date;\n if (weeksToShow && weeksToShow <= 4) {\n // if showing less than a full month, just use date == navigatedDate\n date = new Date(navigatedDate.getFullYear(), navigatedDate.getMonth(), navigatedDate.getDate());\n } else {\n date = new Date(navigatedDate.getFullYear(), navigatedDate.getMonth(), 1);\n }\n const weeks = [];\n // Cycle the date backwards to get to the first day of the week.\n while(date.getDay() !== firstDayOfWeek){\n date.setDate(date.getDate() - 1);\n }\n // add the transition week as last week of previous range\n date = addDays(date, -DAYS_IN_WEEK);\n // a flag to indicate whether all days of the week are outside the month\n let isAllDaysOfWeekOutOfMonth = false;\n // in work week view if the days aren't contiguous we use week view instead\n const selectedDateRangeType = getDateRangeTypeToUse(dateRangeType, workWeekDays, firstDayOfWeek);\n let selectedDates = [];\n if (selectedDate) {\n selectedDates = getDateRangeArray(selectedDate, selectedDateRangeType, firstDayOfWeek, workWeekDays, daysToSelectInDayView);\n selectedDates = getBoundedDateRange(selectedDates, minDate, maxDate);\n }\n let shouldGetWeeks = true;\n for(let weekIndex = 0; shouldGetWeeks; weekIndex++){\n const week = [];\n isAllDaysOfWeekOutOfMonth = true;\n for(let dayIndex = 0; dayIndex < DAYS_IN_WEEK; dayIndex++){\n const originalDate = new Date(date.getTime());\n const dayInfo = {\n key: date.toString(),\n date: date.getDate().toString(),\n originalDate,\n isInMonth: date.getMonth() === navigatedDate.getMonth(),\n isToday: compareDates(todaysDate, date),\n isSelected: isInDateRangeArray(date, selectedDates),\n isInBounds: !isRestrictedDate(date, restrictedDateOptions),\n isMarked: (markedDays === null || markedDays === void 0 ? void 0 : markedDays.some((markedDay)=>compareDates(originalDate, markedDay))) || false\n };\n week.push(dayInfo);\n if (dayInfo.isInMonth) {\n isAllDaysOfWeekOutOfMonth = false;\n }\n date.setDate(date.getDate() + 1);\n }\n // We append the condition of the loop depending upon the showSixWeeksByDefault prop.\n shouldGetWeeks = weeksToShow ? weekIndex < weeksToShow + 1 : !isAllDaysOfWeekOutOfMonth || weekIndex === 0;\n // we don't check shouldGetWeeks before pushing because we want to add one extra week for transition state\n weeks.push(week);\n }\n return weeks;\n};\n"],"names":["getDayGrid","options","selectedDate","dateRangeType","firstDayOfWeek","today","minDate","maxDate","weeksToShow","workWeekDays","daysToSelectInDayView","restrictedDates","markedDays","restrictedDateOptions","todaysDate","Date","navigatedDate","date","getFullYear","getMonth","getDate","weeks","getDay","setDate","addDays","DAYS_IN_WEEK","isAllDaysOfWeekOutOfMonth","selectedDateRangeType","getDateRangeTypeToUse","selectedDates","getDateRangeArray","getBoundedDateRange","shouldGetWeeks","weekIndex","week","dayIndex","originalDate","getTime","dayInfo","key","toString","isInMonth","isToday","compareDates","isSelected","isInDateRangeArray","isInBounds","isRestrictedDate","isMarked","some","markedDay","push"],"mappings":";;;;+BAUiBA;;;eAAAA;;;0BAV4D;2BAChD;uCACS;qCACF;kCACH;AAMtB,MAAMA,aAAa,CAACC;IAC3B,MAAM,EAAEC,YAAY,EAAEC,aAAa,EAAEC,cAAc,EAAEC,KAAK,EAAEC,OAAO,EAAEC,OAAO,EAAEC,WAAW,EAAEC,YAAY,EAAEC,qBAAqB,EAAEC,eAAe,EAAEC,UAAU,EAAE,GAAGX;IAChK,MAAMY,wBAAwB;QAC1BP;QACAC;QACAI;IACJ;IACA,MAAMG,aAAaT,SAAS,IAAIU;IAChC,MAAMC,gBAAgBf,QAAQe,aAAa,GAAGf,QAAQe,aAAa,GAAGF;IACtE,IAAIG;IACJ,IAAIT,eAAeA,eAAe,GAAG;QACjC,oEAAoE;QACpES,OAAO,IAAIF,KAAKC,cAAcE,WAAW,IAAIF,cAAcG,QAAQ,IAAIH,cAAcI,OAAO;IAChG,OAAO;QACHH,OAAO,IAAIF,KAAKC,cAAcE,WAAW,IAAIF,cAAcG,QAAQ,IAAI;IAC3E;IACA,MAAME,QAAQ,EAAE;IAChB,gEAAgE;IAChE,MAAMJ,KAAKK,MAAM,OAAOlB,eAAe;QACnCa,KAAKM,OAAO,CAACN,KAAKG,OAAO,KAAK;IAClC;IACA,yDAAyD;IACzDH,OAAOO,IAAAA,iBAAO,EAACP,MAAM,CAACQ,uBAAY;IAClC,wEAAwE;IACxE,IAAIC,4BAA4B;IAChC,2EAA2E;IAC3E,MAAMC,wBAAwBC,IAAAA,4CAAqB,EAACzB,eAAeM,cAAcL;IACjF,IAAIyB,gBAAgB,EAAE;IACtB,IAAI3B,cAAc;QACd2B,gBAAgBC,IAAAA,2BAAiB,EAAC5B,cAAcyB,uBAAuBvB,gBAAgBK,cAAcC;QACrGmB,gBAAgBE,IAAAA,wCAAmB,EAACF,eAAevB,SAASC;IAChE;IACA,IAAIyB,iBAAiB;IACrB,IAAI,IAAIC,YAAY,GAAGD,gBAAgBC,YAAY;QAC/C,MAAMC,OAAO,EAAE;QACfR,4BAA4B;QAC5B,IAAI,IAAIS,WAAW,GAAGA,WAAWV,uBAAY,EAAEU,WAAW;YACtD,MAAMC,eAAe,IAAIrB,KAAKE,KAAKoB,OAAO;YAC1C,MAAMC,UAAU;gBACZC,KAAKtB,KAAKuB,QAAQ;gBAClBvB,MAAMA,KAAKG,OAAO,GAAGoB,QAAQ;gBAC7BJ;gBACAK,WAAWxB,KAAKE,QAAQ,OAAOH,cAAcG,QAAQ;gBACrDuB,SAASC,IAAAA,sBAAY,EAAC7B,YAAYG;gBAClC2B,YAAYC,IAAAA,4BAAkB,EAAC5B,MAAMY;gBACrCiB,YAAY,CAACC,IAAAA,kCAAgB,EAAC9B,MAAMJ;gBACpCmC,UAAU,AAACpC,CAAAA,eAAe,QAAQA,eAAe,KAAK,IAAI,KAAK,IAAIA,WAAWqC,IAAI,CAAC,CAACC,YAAYP,IAAAA,sBAAY,EAACP,cAAcc,WAAU,KAAM;YAC/I;YACAhB,KAAKiB,IAAI,CAACb;YACV,IAAIA,QAAQG,SAAS,EAAE;gBACnBf,4BAA4B;YAChC;YACAT,KAAKM,OAAO,CAACN,KAAKG,OAAO,KAAK;QAClC;QACA,qFAAqF;QACrFY,iBAAiBxB,cAAcyB,YAAYzB,cAAc,IAAI,CAACkB,6BAA6BO,cAAc;QACzG,0GAA0G;QAC1GZ,MAAM8B,IAAI,CAACjB;IACf;IACA,OAAOb;AACX"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@fluentui/react-datepicker-compat",
|
|
3
|
-
"version": "0.3.
|
|
3
|
+
"version": "0.3.15",
|
|
4
4
|
"description": "React components for building web experiences",
|
|
5
5
|
"main": "lib-commonjs/index.js",
|
|
6
6
|
"module": "lib/index.js",
|
|
@@ -35,18 +35,18 @@
|
|
|
35
35
|
"@fluentui/scripts-tasks": "*"
|
|
36
36
|
},
|
|
37
37
|
"dependencies": {
|
|
38
|
-
"@fluentui/keyboard-keys": "^9.0.
|
|
39
|
-
"@fluentui/react-field": "^9.1.
|
|
40
|
-
"@fluentui/react-icons": "^2.0.
|
|
41
|
-
"@fluentui/react-input": "^9.4.
|
|
42
|
-
"@fluentui/react-jsx-runtime": "^9.0.
|
|
43
|
-
"@fluentui/react-popover": "^9.8.
|
|
44
|
-
"@fluentui/react-portal": "^9.3.
|
|
45
|
-
"@fluentui/react-positioning": "^9.9.
|
|
46
|
-
"@fluentui/react-shared-contexts": "^9.
|
|
47
|
-
"@fluentui/react-tabster": "^9.
|
|
48
|
-
"@fluentui/react-theme": "^9.1.
|
|
49
|
-
"@fluentui/react-utilities": "^9.13.
|
|
38
|
+
"@fluentui/keyboard-keys": "^9.0.6",
|
|
39
|
+
"@fluentui/react-field": "^9.1.31",
|
|
40
|
+
"@fluentui/react-icons": "^2.0.217",
|
|
41
|
+
"@fluentui/react-input": "^9.4.41",
|
|
42
|
+
"@fluentui/react-jsx-runtime": "^9.0.12",
|
|
43
|
+
"@fluentui/react-popover": "^9.8.9",
|
|
44
|
+
"@fluentui/react-portal": "^9.3.18",
|
|
45
|
+
"@fluentui/react-positioning": "^9.9.15",
|
|
46
|
+
"@fluentui/react-shared-contexts": "^9.9.1",
|
|
47
|
+
"@fluentui/react-tabster": "^9.13.1",
|
|
48
|
+
"@fluentui/react-theme": "^9.1.14",
|
|
49
|
+
"@fluentui/react-utilities": "^9.13.5",
|
|
50
50
|
"@griffel/react": "^1.5.14",
|
|
51
51
|
"@swc/helpers": "^0.5.1"
|
|
52
52
|
},
|