@fluentui/react-datepicker-compat 0.1.7 → 0.1.9
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 +107 -9
- package/CHANGELOG.md +38 -10
- package/lib/components/Calendar/Calendar.js +2 -1
- package/lib/components/Calendar/Calendar.js.map +1 -1
- package/lib-commonjs/components/Calendar/Calendar.js +2 -1
- package/lib-commonjs/components/Calendar/Calendar.js.map +1 -1
- package/package.json +9 -9
package/CHANGELOG.json
CHANGED
|
@@ -2,7 +2,105 @@
|
|
|
2
2
|
"name": "@fluentui/react-datepicker-compat",
|
|
3
3
|
"entries": [
|
|
4
4
|
{
|
|
5
|
-
"date": "
|
|
5
|
+
"date": "Wed, 28 Jun 2023 11:08:27 GMT",
|
|
6
|
+
"tag": "@fluentui/react-datepicker-compat_v0.1.9",
|
|
7
|
+
"version": "0.1.9",
|
|
8
|
+
"comments": {
|
|
9
|
+
"none": [
|
|
10
|
+
{
|
|
11
|
+
"author": "martinhochel@microsoft.com",
|
|
12
|
+
"package": "@fluentui/react-datepicker-compat",
|
|
13
|
+
"commit": "fbe878e9c9785588197481f172c42c2c0a230292",
|
|
14
|
+
"comment": "fix: update .npmignore to unify v8 packages and exclude project.json"
|
|
15
|
+
}
|
|
16
|
+
],
|
|
17
|
+
"patch": [
|
|
18
|
+
{
|
|
19
|
+
"author": "beachball",
|
|
20
|
+
"package": "@fluentui/react-datepicker-compat",
|
|
21
|
+
"comment": "Bump @fluentui/react-field to v9.1.9",
|
|
22
|
+
"commit": "08de131d5f3346e001dcd8d2f0f3809c698f16d7"
|
|
23
|
+
},
|
|
24
|
+
{
|
|
25
|
+
"author": "beachball",
|
|
26
|
+
"package": "@fluentui/react-datepicker-compat",
|
|
27
|
+
"comment": "Bump @fluentui/react-input to v9.4.19",
|
|
28
|
+
"commit": "08de131d5f3346e001dcd8d2f0f3809c698f16d7"
|
|
29
|
+
},
|
|
30
|
+
{
|
|
31
|
+
"author": "beachball",
|
|
32
|
+
"package": "@fluentui/react-datepicker-compat",
|
|
33
|
+
"comment": "Bump @fluentui/react-jsx-runtime to v9.0.0-alpha.9",
|
|
34
|
+
"commit": "08de131d5f3346e001dcd8d2f0f3809c698f16d7"
|
|
35
|
+
},
|
|
36
|
+
{
|
|
37
|
+
"author": "beachball",
|
|
38
|
+
"package": "@fluentui/react-datepicker-compat",
|
|
39
|
+
"comment": "Bump @fluentui/react-popover to v9.7.3",
|
|
40
|
+
"commit": "08de131d5f3346e001dcd8d2f0f3809c698f16d7"
|
|
41
|
+
},
|
|
42
|
+
{
|
|
43
|
+
"author": "beachball",
|
|
44
|
+
"package": "@fluentui/react-datepicker-compat",
|
|
45
|
+
"comment": "Bump @fluentui/react-portal to v9.2.16",
|
|
46
|
+
"commit": "08de131d5f3346e001dcd8d2f0f3809c698f16d7"
|
|
47
|
+
},
|
|
48
|
+
{
|
|
49
|
+
"author": "beachball",
|
|
50
|
+
"package": "@fluentui/react-datepicker-compat",
|
|
51
|
+
"comment": "Bump @fluentui/react-positioning to v9.7.2",
|
|
52
|
+
"commit": "08de131d5f3346e001dcd8d2f0f3809c698f16d7"
|
|
53
|
+
},
|
|
54
|
+
{
|
|
55
|
+
"author": "beachball",
|
|
56
|
+
"package": "@fluentui/react-datepicker-compat",
|
|
57
|
+
"comment": "Bump @fluentui/react-tabster to v9.9.1",
|
|
58
|
+
"commit": "08de131d5f3346e001dcd8d2f0f3809c698f16d7"
|
|
59
|
+
},
|
|
60
|
+
{
|
|
61
|
+
"author": "beachball",
|
|
62
|
+
"package": "@fluentui/react-datepicker-compat",
|
|
63
|
+
"comment": "Bump @fluentui/react-utilities to v9.10.0",
|
|
64
|
+
"commit": "08de131d5f3346e001dcd8d2f0f3809c698f16d7"
|
|
65
|
+
}
|
|
66
|
+
]
|
|
67
|
+
}
|
|
68
|
+
},
|
|
69
|
+
{
|
|
70
|
+
"date": "Tue, 27 Jun 2023 11:21:22 GMT",
|
|
71
|
+
"tag": "@fluentui/react-datepicker-compat_v0.1.8",
|
|
72
|
+
"version": "0.1.8",
|
|
73
|
+
"comments": {
|
|
74
|
+
"patch": [
|
|
75
|
+
{
|
|
76
|
+
"author": "sarah.higley@microsoft.com",
|
|
77
|
+
"package": "@fluentui/react-datepicker-compat",
|
|
78
|
+
"commit": "60c84a848b060241768ad62097443755c4c2bee5",
|
|
79
|
+
"comment": "fix: Calendar uses month-only selection string when only month picker is used"
|
|
80
|
+
},
|
|
81
|
+
{
|
|
82
|
+
"author": "beachball",
|
|
83
|
+
"package": "@fluentui/react-datepicker-compat",
|
|
84
|
+
"comment": "Bump @fluentui/react-popover to v9.7.2",
|
|
85
|
+
"commit": "1c7e6451a11fb9c59e344df616394a320e8031c4"
|
|
86
|
+
},
|
|
87
|
+
{
|
|
88
|
+
"author": "beachball",
|
|
89
|
+
"package": "@fluentui/react-datepicker-compat",
|
|
90
|
+
"comment": "Bump @fluentui/react-portal to v9.2.15",
|
|
91
|
+
"commit": "1c7e6451a11fb9c59e344df616394a320e8031c4"
|
|
92
|
+
},
|
|
93
|
+
{
|
|
94
|
+
"author": "beachball",
|
|
95
|
+
"package": "@fluentui/react-datepicker-compat",
|
|
96
|
+
"comment": "Bump @fluentui/react-tabster to v9.9.0",
|
|
97
|
+
"commit": "1c7e6451a11fb9c59e344df616394a320e8031c4"
|
|
98
|
+
}
|
|
99
|
+
]
|
|
100
|
+
}
|
|
101
|
+
},
|
|
102
|
+
{
|
|
103
|
+
"date": "Mon, 26 Jun 2023 09:53:55 GMT",
|
|
6
104
|
"tag": "@fluentui/react-datepicker-compat_v0.1.7",
|
|
7
105
|
"version": "0.1.7",
|
|
8
106
|
"comments": {
|
|
@@ -11,49 +109,49 @@
|
|
|
11
109
|
"author": "beachball",
|
|
12
110
|
"package": "@fluentui/react-datepicker-compat",
|
|
13
111
|
"comment": "Bump @fluentui/react-field to v9.1.8",
|
|
14
|
-
"commit": "
|
|
112
|
+
"commit": "3e47257676ace0598b9ed336a54befd4d063c332"
|
|
15
113
|
},
|
|
16
114
|
{
|
|
17
115
|
"author": "beachball",
|
|
18
116
|
"package": "@fluentui/react-datepicker-compat",
|
|
19
117
|
"comment": "Bump @fluentui/react-input to v9.4.18",
|
|
20
|
-
"commit": "
|
|
118
|
+
"commit": "3e47257676ace0598b9ed336a54befd4d063c332"
|
|
21
119
|
},
|
|
22
120
|
{
|
|
23
121
|
"author": "beachball",
|
|
24
122
|
"package": "@fluentui/react-datepicker-compat",
|
|
25
123
|
"comment": "Bump @fluentui/react-jsx-runtime to v9.0.0-alpha.8",
|
|
26
|
-
"commit": "
|
|
124
|
+
"commit": "3e47257676ace0598b9ed336a54befd4d063c332"
|
|
27
125
|
},
|
|
28
126
|
{
|
|
29
127
|
"author": "beachball",
|
|
30
128
|
"package": "@fluentui/react-datepicker-compat",
|
|
31
129
|
"comment": "Bump @fluentui/react-popover to v9.7.1",
|
|
32
|
-
"commit": "
|
|
130
|
+
"commit": "3e47257676ace0598b9ed336a54befd4d063c332"
|
|
33
131
|
},
|
|
34
132
|
{
|
|
35
133
|
"author": "beachball",
|
|
36
134
|
"package": "@fluentui/react-datepicker-compat",
|
|
37
135
|
"comment": "Bump @fluentui/react-portal to v9.2.14",
|
|
38
|
-
"commit": "
|
|
136
|
+
"commit": "3e47257676ace0598b9ed336a54befd4d063c332"
|
|
39
137
|
},
|
|
40
138
|
{
|
|
41
139
|
"author": "beachball",
|
|
42
140
|
"package": "@fluentui/react-datepicker-compat",
|
|
43
141
|
"comment": "Bump @fluentui/react-positioning to v9.7.1",
|
|
44
|
-
"commit": "
|
|
142
|
+
"commit": "3e47257676ace0598b9ed336a54befd4d063c332"
|
|
45
143
|
},
|
|
46
144
|
{
|
|
47
145
|
"author": "beachball",
|
|
48
146
|
"package": "@fluentui/react-datepicker-compat",
|
|
49
147
|
"comment": "Bump @fluentui/react-tabster to v9.8.1",
|
|
50
|
-
"commit": "
|
|
148
|
+
"commit": "3e47257676ace0598b9ed336a54befd4d063c332"
|
|
51
149
|
},
|
|
52
150
|
{
|
|
53
151
|
"author": "beachball",
|
|
54
152
|
"package": "@fluentui/react-datepicker-compat",
|
|
55
153
|
"comment": "Bump @fluentui/react-utilities to v9.9.4",
|
|
56
|
-
"commit": "
|
|
154
|
+
"commit": "3e47257676ace0598b9ed336a54befd4d063c332"
|
|
57
155
|
}
|
|
58
156
|
]
|
|
59
157
|
}
|
package/CHANGELOG.md
CHANGED
|
@@ -1,24 +1,52 @@
|
|
|
1
1
|
# Change Log - @fluentui/react-datepicker-compat
|
|
2
2
|
|
|
3
|
-
This log was last generated on
|
|
3
|
+
This log was last generated on Wed, 28 Jun 2023 11:08:27 GMT and should not be manually modified.
|
|
4
4
|
|
|
5
5
|
<!-- Start content -->
|
|
6
6
|
|
|
7
|
+
## [0.1.9](https://github.com/microsoft/fluentui/tree/@fluentui/react-datepicker-compat_v0.1.9)
|
|
8
|
+
|
|
9
|
+
Wed, 28 Jun 2023 11:08:27 GMT
|
|
10
|
+
[Compare changes](https://github.com/microsoft/fluentui/compare/@fluentui/react-datepicker-compat_v0.1.8..@fluentui/react-datepicker-compat_v0.1.9)
|
|
11
|
+
|
|
12
|
+
### Patches
|
|
13
|
+
|
|
14
|
+
- Bump @fluentui/react-field to v9.1.9 ([PR #28320](https://github.com/microsoft/fluentui/pull/28320) by beachball)
|
|
15
|
+
- Bump @fluentui/react-input to v9.4.19 ([PR #28320](https://github.com/microsoft/fluentui/pull/28320) by beachball)
|
|
16
|
+
- Bump @fluentui/react-jsx-runtime to v9.0.0-alpha.9 ([PR #28320](https://github.com/microsoft/fluentui/pull/28320) by beachball)
|
|
17
|
+
- Bump @fluentui/react-popover to v9.7.3 ([PR #28320](https://github.com/microsoft/fluentui/pull/28320) by beachball)
|
|
18
|
+
- Bump @fluentui/react-portal to v9.2.16 ([PR #28320](https://github.com/microsoft/fluentui/pull/28320) by beachball)
|
|
19
|
+
- Bump @fluentui/react-positioning to v9.7.2 ([PR #28320](https://github.com/microsoft/fluentui/pull/28320) by beachball)
|
|
20
|
+
- Bump @fluentui/react-tabster to v9.9.1 ([PR #28320](https://github.com/microsoft/fluentui/pull/28320) by beachball)
|
|
21
|
+
- Bump @fluentui/react-utilities to v9.10.0 ([PR #28320](https://github.com/microsoft/fluentui/pull/28320) by beachball)
|
|
22
|
+
|
|
23
|
+
## [0.1.8](https://github.com/microsoft/fluentui/tree/@fluentui/react-datepicker-compat_v0.1.8)
|
|
24
|
+
|
|
25
|
+
Tue, 27 Jun 2023 11:21:22 GMT
|
|
26
|
+
[Compare changes](https://github.com/microsoft/fluentui/compare/@fluentui/react-datepicker-compat_v0.1.7..@fluentui/react-datepicker-compat_v0.1.8)
|
|
27
|
+
|
|
28
|
+
### Patches
|
|
29
|
+
|
|
30
|
+
- fix: Calendar uses month-only selection string when only month picker is used ([PR #28301](https://github.com/microsoft/fluentui/pull/28301) by sarah.higley@microsoft.com)
|
|
31
|
+
- Bump @fluentui/react-popover to v9.7.2 ([PR #28291](https://github.com/microsoft/fluentui/pull/28291) by beachball)
|
|
32
|
+
- Bump @fluentui/react-portal to v9.2.15 ([PR #28291](https://github.com/microsoft/fluentui/pull/28291) by beachball)
|
|
33
|
+
- Bump @fluentui/react-tabster to v9.9.0 ([PR #28291](https://github.com/microsoft/fluentui/pull/28291) by beachball)
|
|
34
|
+
|
|
7
35
|
## [0.1.7](https://github.com/microsoft/fluentui/tree/@fluentui/react-datepicker-compat_v0.1.7)
|
|
8
36
|
|
|
9
|
-
Mon, 26 Jun 2023 09:
|
|
37
|
+
Mon, 26 Jun 2023 09:53:55 GMT
|
|
10
38
|
[Compare changes](https://github.com/microsoft/fluentui/compare/@fluentui/react-datepicker-compat_v0.1.6..@fluentui/react-datepicker-compat_v0.1.7)
|
|
11
39
|
|
|
12
40
|
### Patches
|
|
13
41
|
|
|
14
|
-
- Bump @fluentui/react-field to v9.1.8 ([PR #
|
|
15
|
-
- Bump @fluentui/react-input to v9.4.18 ([PR #
|
|
16
|
-
- Bump @fluentui/react-jsx-runtime to v9.0.0-alpha.8 ([PR #
|
|
17
|
-
- Bump @fluentui/react-popover to v9.7.1 ([PR #
|
|
18
|
-
- Bump @fluentui/react-portal to v9.2.14 ([PR #
|
|
19
|
-
- Bump @fluentui/react-positioning to v9.7.1 ([PR #
|
|
20
|
-
- Bump @fluentui/react-tabster to v9.8.1 ([PR #
|
|
21
|
-
- Bump @fluentui/react-utilities to v9.9.4 ([PR #
|
|
42
|
+
- Bump @fluentui/react-field to v9.1.8 ([PR #28296](https://github.com/microsoft/fluentui/pull/28296) by beachball)
|
|
43
|
+
- Bump @fluentui/react-input to v9.4.18 ([PR #28296](https://github.com/microsoft/fluentui/pull/28296) by beachball)
|
|
44
|
+
- Bump @fluentui/react-jsx-runtime to v9.0.0-alpha.8 ([PR #28296](https://github.com/microsoft/fluentui/pull/28296) by beachball)
|
|
45
|
+
- Bump @fluentui/react-popover to v9.7.1 ([PR #28296](https://github.com/microsoft/fluentui/pull/28296) by beachball)
|
|
46
|
+
- Bump @fluentui/react-portal to v9.2.14 ([PR #28296](https://github.com/microsoft/fluentui/pull/28296) by beachball)
|
|
47
|
+
- Bump @fluentui/react-positioning to v9.7.1 ([PR #28296](https://github.com/microsoft/fluentui/pull/28296) by beachball)
|
|
48
|
+
- Bump @fluentui/react-tabster to v9.8.1 ([PR #28296](https://github.com/microsoft/fluentui/pull/28296) by beachball)
|
|
49
|
+
- Bump @fluentui/react-utilities to v9.9.4 ([PR #28296](https://github.com/microsoft/fluentui/pull/28296) by beachball)
|
|
22
50
|
|
|
23
51
|
## [0.1.6](https://github.com/microsoft/fluentui/tree/@fluentui/react-datepicker-compat_v0.1.6)
|
|
24
52
|
|
|
@@ -230,7 +230,8 @@ function useFocusLogic({ componentRef }, isDayPickerVisible, isMonthPickerVisib
|
|
|
230
230
|
todayDateString = strings.todayDateFormatString.replace('{0}', dateTimeFormatter.formatMonthDayYear(today, strings));
|
|
231
231
|
}
|
|
232
232
|
if (dateTimeFormatter && strings.selectedDateFormatString) {
|
|
233
|
-
|
|
233
|
+
const dateStringFormatter = monthPickerOnly ? dateTimeFormatter.formatMonthYear : dateTimeFormatter.formatMonthDayYear;
|
|
234
|
+
selectedDateString = strings.selectedDateFormatString.replace('{0}', dateStringFormatter(selectedDate, strings));
|
|
234
235
|
}
|
|
235
236
|
const selectionAndTodayString = selectedDateString + ', ' + todayDateString;
|
|
236
237
|
return /*#__PURE__*/ React.createElement("div", {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["Calendar.tsx"],"sourcesContent":["import * as React from 'react';\nimport { Backspace, Enter, Escape, PageDown, PageUp, Space } from '@fluentui/keyboard-keys';\nimport { useControllableState } from '@fluentui/react-utilities';\nimport {\n addMonths,\n addYears,\n DateRangeType,\n DayOfWeek,\n DEFAULT_CALENDAR_STRINGS,\n DEFAULT_DATE_FORMATTING,\n FirstWeekOfYear,\n focusAsync,\n getWindow,\n} from '../../utils';\nimport { CalendarDay } from '../CalendarDay/CalendarDay';\nimport { CalendarMonth } from '../CalendarMonth/CalendarMonth';\nimport { useCalendarStyles_unstable } from './useCalendarStyles.styles';\nimport type { ICalendarDay } from '../CalendarDay/CalendarDay.types';\nimport type { ICalendarMonth } from '../CalendarMonth/CalendarMonth.types';\nimport type { CalendarProps } from './Calendar.types';\n\nconst MIN_SIZE_FORCE_OVERLAY = 440;\n\nconst defaultWorkWeekDays: DayOfWeek[] = [\n DayOfWeek.Monday,\n DayOfWeek.Tuesday,\n DayOfWeek.Wednesday,\n DayOfWeek.Thursday,\n DayOfWeek.Friday,\n];\n\nfunction useDateState({ value, today = new Date(), onSelectDate }: CalendarProps) {\n /** The currently selected date in the calendar */\n const [selectedDate, setSelectedDate] = useControllableState({\n defaultState: today,\n initialState: today,\n state: value,\n });\n\n /** The currently focused date in the day picker, but not necessarily selected */\n const [navigatedDay = today, setNavigatedDay] = React.useState(value);\n\n /** The currently focused date in the month picker, but not necessarily selected */\n const [navigatedMonth = today, setNavigatedMonth] = React.useState(value);\n\n /** If using a controlled value, when that value changes, navigate to that date */\n const [lastSelectedDate = today, setLastSelectedDate] = React.useState(value);\n if (value && lastSelectedDate.valueOf() !== value.valueOf()) {\n setNavigatedDay(value);\n setNavigatedMonth(value);\n setLastSelectedDate(value);\n }\n\n const navigateMonth = (date: Date) => {\n setNavigatedMonth(date);\n };\n\n const navigateDay = (date: Date) => {\n setNavigatedMonth(date);\n setNavigatedDay(date);\n };\n\n const onDateSelected = (date: Date, selectedDateRangeArray?: Date[]) => {\n setNavigatedMonth(date);\n setNavigatedDay(date);\n setSelectedDate(date);\n onSelectDate?.(date, selectedDateRangeArray);\n };\n\n return [selectedDate, navigatedDay, navigatedMonth, onDateSelected, navigateDay, navigateMonth] as const;\n}\n\nfunction useVisibilityState({\n isDayPickerVisible: isDayPickerVisibleProp,\n isMonthPickerVisible: isMonthPickerVisibleProp,\n showMonthPickerAsOverlay,\n}: CalendarProps) {\n /** State used to show/hide month picker */\n const [isMonthPickerVisible, setIsMonthPickerVisible] = useControllableState({\n defaultState: false,\n initialState: true,\n state: getShowMonthPickerAsOverlay({ isDayPickerVisible: isDayPickerVisibleProp, showMonthPickerAsOverlay })\n ? undefined\n : isMonthPickerVisibleProp,\n });\n /** State used to show/hide day picker */\n const [isDayPickerVisible, setIsDayPickerVisible] = useControllableState({\n defaultState: true,\n initialState: true,\n state: getShowMonthPickerAsOverlay({ isDayPickerVisible: isDayPickerVisibleProp, showMonthPickerAsOverlay })\n ? undefined\n : isDayPickerVisibleProp,\n });\n\n const toggleDayMonthPickerVisibility = () => {\n setIsMonthPickerVisible(!isMonthPickerVisible);\n setIsDayPickerVisible(!isDayPickerVisible);\n };\n\n return [isMonthPickerVisible, isDayPickerVisible, toggleDayMonthPickerVisibility] as const;\n}\n\nfunction useFocusLogic({ componentRef }: CalendarProps, isDayPickerVisible: boolean, isMonthPickerVisible: boolean) {\n const dayPicker = React.useRef<ICalendarDay>(null);\n const monthPicker = React.useRef<ICalendarMonth>(null);\n const focusOnUpdate = React.useRef(false);\n\n const focus = React.useCallback(() => {\n if (isDayPickerVisible && dayPicker.current) {\n focusAsync(dayPicker.current);\n } else if (isMonthPickerVisible && monthPicker.current) {\n focusAsync(monthPicker.current);\n }\n }, [isDayPickerVisible, isMonthPickerVisible]);\n\n React.useImperativeHandle(componentRef, () => ({ focus }), [focus]);\n\n React.useEffect(() => {\n if (focusOnUpdate.current) {\n focus();\n focusOnUpdate.current = false;\n }\n });\n\n const focusOnNextUpdate = () => {\n focusOnUpdate.current = true;\n };\n\n return [dayPicker, monthPicker, focusOnNextUpdate] as const;\n}\n\n/**\n * @internal\n */\nexport const Calendar: React.FunctionComponent<CalendarProps> = React.forwardRef<HTMLDivElement, CalendarProps>(\n (props, forwardedRef) => {\n const {\n allFocusable = false,\n calendarDayProps,\n calendarMonthProps,\n className,\n componentRef,\n dateRangeType = DateRangeType.Day,\n dateTimeFormatter = DEFAULT_DATE_FORMATTING,\n firstDayOfWeek = DayOfWeek.Sunday,\n firstWeekOfYear = FirstWeekOfYear.FirstDay,\n highlightCurrentMonth = false,\n highlightSelectedMonth = false,\n id,\n isDayPickerVisible: isDayPickerVisibleProp = true,\n isMonthPickerVisible: isMonthPickerVisibleProp = true,\n maxDate,\n minDate,\n onDismiss,\n onSelectDate,\n restrictedDates,\n showCloseButton = false,\n showGoToToday = true,\n showMonthPickerAsOverlay: showMonthPickerAsOverlayProp = false,\n showSixWeeksByDefault = false,\n showWeekNumbers = false,\n strings = DEFAULT_CALENDAR_STRINGS,\n today = new Date(),\n value,\n workWeekDays = defaultWorkWeekDays,\n } = props;\n\n const [selectedDate, navigatedDay, navigatedMonth, onDateSelected, navigateDay, navigateMonth] = useDateState({\n onSelectDate,\n value,\n today,\n });\n const [isMonthPickerVisible, isDayPickerVisible, toggleDayMonthPickerVisibility] = useVisibilityState({\n isDayPickerVisible: isDayPickerVisibleProp,\n isMonthPickerVisible: isMonthPickerVisibleProp,\n showMonthPickerAsOverlay: showMonthPickerAsOverlayProp,\n });\n const [dayPicker, monthPicker, focusOnNextUpdate] = useFocusLogic(\n { componentRef },\n isDayPickerVisible,\n isMonthPickerVisible,\n );\n\n const renderGoToTodayButton = () => {\n let goTodayEnabled = showGoToToday;\n\n if (goTodayEnabled && today) {\n goTodayEnabled =\n navigatedDay.getFullYear() !== today.getFullYear() ||\n navigatedDay.getMonth() !== today.getMonth() ||\n navigatedMonth.getFullYear() !== today.getFullYear() ||\n navigatedMonth.getMonth() !== today.getMonth();\n }\n\n return (\n showGoToToday && (\n <button\n className={classes.goTodayButton}\n onClick={onGotoToday}\n onKeyDown={onButtonKeyDown(onGotoToday)}\n type=\"button\"\n disabled={!goTodayEnabled}\n >\n {strings!.goToToday}\n </button>\n )\n );\n };\n\n const onNavigateDayDate = (date: Date, focusOnNavigatedDay: boolean): void => {\n navigateDay(date);\n if (focusOnNavigatedDay) {\n focusOnNextUpdate();\n }\n };\n\n const onNavigateMonthDate = (date: Date, focusOnNavigatedDay: boolean): void => {\n if (focusOnNavigatedDay) {\n focusOnNextUpdate();\n }\n\n if (!focusOnNavigatedDay) {\n navigateMonth(date);\n return;\n }\n\n if (monthPickerOnly) {\n onDateSelected(date);\n }\n\n navigateDay(date);\n };\n\n const onHeaderSelect = getShowMonthPickerAsOverlay({\n isDayPickerVisible: isDayPickerVisibleProp,\n showMonthPickerAsOverlay: showMonthPickerAsOverlayProp,\n })\n ? (): void => {\n toggleDayMonthPickerVisibility();\n\n focusOnNextUpdate();\n }\n : undefined;\n\n const onGotoToday = (): void => {\n navigateDay(today!);\n focusOnNextUpdate();\n };\n\n const onButtonKeyDown = (callback: () => void): ((ev: React.KeyboardEvent<HTMLButtonElement>) => void) => {\n return (ev: React.KeyboardEvent<HTMLButtonElement>) => {\n switch (ev.key) {\n case Enter:\n case Space:\n callback();\n break;\n }\n };\n };\n\n const onDatePickerPopupKeyDown = (ev: React.KeyboardEvent<HTMLElement>): void => {\n switch (ev.key) {\n case Enter:\n ev.preventDefault();\n break;\n\n case Backspace:\n ev.preventDefault();\n break;\n\n case Escape:\n ev.stopPropagation();\n onDismiss?.();\n break;\n\n case PageUp:\n if (ev.ctrlKey) {\n // go to next year\n navigateDay(addYears(navigatedDay, 1));\n } else {\n // go to next month\n navigateDay(addMonths(navigatedDay, 1));\n }\n ev.preventDefault();\n break;\n case PageDown:\n if (ev.ctrlKey) {\n // go to previous year\n navigateDay(addYears(navigatedDay, -1));\n } else {\n // go to previous month\n navigateDay(addMonths(navigatedDay, -1));\n }\n ev.preventDefault();\n break;\n default:\n break;\n }\n };\n const showMonthPickerAsOverlay = getShowMonthPickerAsOverlay(props);\n\n const monthPickerOnly = !showMonthPickerAsOverlay && !isDayPickerVisible;\n\n const classes = useCalendarStyles_unstable({\n className,\n isDayPickerVisible,\n isMonthPickerVisible,\n showWeekNumbers,\n });\n\n let todayDateString: string = '';\n let selectedDateString: string = '';\n if (dateTimeFormatter && strings!.todayDateFormatString) {\n todayDateString = strings!.todayDateFormatString.replace(\n '{0}',\n dateTimeFormatter.formatMonthDayYear(today, strings!),\n );\n }\n if (dateTimeFormatter && strings!.selectedDateFormatString) {\n selectedDateString = strings!.selectedDateFormatString.replace(\n '{0}',\n dateTimeFormatter.formatMonthDayYear(selectedDate, strings!),\n );\n }\n const selectionAndTodayString = selectedDateString + ', ' + todayDateString;\n\n return (\n <div\n id={id}\n ref={forwardedRef}\n role=\"group\"\n aria-label={selectionAndTodayString}\n className={classes.root}\n onKeyDown={onDatePickerPopupKeyDown}\n >\n <div className={classes.liveRegion} aria-live=\"polite\" aria-atomic=\"true\">\n <span>{selectedDateString}</span>\n </div>\n {isDayPickerVisible && (\n <CalendarDay\n selectedDate={selectedDate!}\n navigatedDate={navigatedDay!}\n today={today}\n onSelectDate={onDateSelected}\n // eslint-disable-next-line react/jsx-no-bind\n onNavigateDate={onNavigateDayDate}\n onDismiss={onDismiss}\n firstDayOfWeek={firstDayOfWeek!}\n dateRangeType={dateRangeType!}\n strings={strings!}\n // eslint-disable-next-line react/jsx-no-bind\n onHeaderSelect={onHeaderSelect}\n showWeekNumbers={showWeekNumbers}\n firstWeekOfYear={firstWeekOfYear!}\n dateTimeFormatter={dateTimeFormatter!}\n showSixWeeksByDefault={showSixWeeksByDefault}\n minDate={minDate}\n maxDate={maxDate}\n restrictedDates={restrictedDates}\n workWeekDays={workWeekDays}\n componentRef={dayPicker}\n showCloseButton={showCloseButton}\n allFocusable={allFocusable}\n {...calendarDayProps} // at end of list so consumer's custom functions take precedence\n />\n )}\n {isDayPickerVisible && isMonthPickerVisible && <div className={classes.divider} />}\n {isMonthPickerVisible ? (\n <div className={classes.monthPickerWrapper}>\n <CalendarMonth\n navigatedDate={navigatedMonth}\n selectedDate={navigatedDay}\n strings={strings!}\n // eslint-disable-next-line react/jsx-no-bind\n onNavigateDate={onNavigateMonthDate}\n today={today}\n highlightCurrentMonth={highlightCurrentMonth!}\n highlightSelectedMonth={highlightSelectedMonth!}\n // eslint-disable-next-line react/jsx-no-bind\n onHeaderSelect={onHeaderSelect}\n dateTimeFormatter={dateTimeFormatter!}\n minDate={minDate}\n maxDate={maxDate}\n componentRef={monthPicker}\n {...calendarMonthProps} // at end of list so consumer's custom functions take precedence\n />\n {renderGoToTodayButton()}\n </div>\n ) : (\n renderGoToTodayButton()\n )}\n </div>\n );\n },\n);\nCalendar.displayName = 'Calendar';\n\nfunction getShowMonthPickerAsOverlay({ isDayPickerVisible, showMonthPickerAsOverlay }: CalendarProps) {\n const win = getWindow();\n return showMonthPickerAsOverlay || (isDayPickerVisible && win && win.innerWidth <= MIN_SIZE_FORCE_OVERLAY);\n}\n"],"names":["React","Backspace","Enter","Escape","PageDown","PageUp","Space","useControllableState","addMonths","addYears","DateRangeType","DayOfWeek","DEFAULT_CALENDAR_STRINGS","DEFAULT_DATE_FORMATTING","FirstWeekOfYear","focusAsync","getWindow","CalendarDay","CalendarMonth","useCalendarStyles_unstable","MIN_SIZE_FORCE_OVERLAY","defaultWorkWeekDays","Monday","Tuesday","Wednesday","Thursday","Friday","useDateState","value","today","Date","onSelectDate","selectedDate","setSelectedDate","defaultState","initialState","state","navigatedDay","setNavigatedDay","useState","navigatedMonth","setNavigatedMonth","lastSelectedDate","setLastSelectedDate","valueOf","navigateMonth","date","navigateDay","onDateSelected","selectedDateRangeArray","useVisibilityState","isDayPickerVisible","isDayPickerVisibleProp","isMonthPickerVisible","isMonthPickerVisibleProp","showMonthPickerAsOverlay","setIsMonthPickerVisible","getShowMonthPickerAsOverlay","undefined","setIsDayPickerVisible","toggleDayMonthPickerVisibility","useFocusLogic","componentRef","dayPicker","useRef","monthPicker","focusOnUpdate","focus","useCallback","current","useImperativeHandle","useEffect","focusOnNextUpdate","Calendar","forwardRef","props","forwardedRef","allFocusable","calendarDayProps","calendarMonthProps","className","dateRangeType","Day","dateTimeFormatter","firstDayOfWeek","Sunday","firstWeekOfYear","FirstDay","highlightCurrentMonth","highlightSelectedMonth","id","maxDate","minDate","onDismiss","restrictedDates","showCloseButton","showGoToToday","showMonthPickerAsOverlayProp","showSixWeeksByDefault","showWeekNumbers","strings","workWeekDays","renderGoToTodayButton","goTodayEnabled","getFullYear","getMonth","button","classes","goTodayButton","onClick","onGotoToday","onKeyDown","onButtonKeyDown","type","disabled","goToToday","onNavigateDayDate","focusOnNavigatedDay","onNavigateMonthDate","monthPickerOnly","onHeaderSelect","callback","ev","key","onDatePickerPopupKeyDown","preventDefault","stopPropagation","ctrlKey","todayDateString","selectedDateString","todayDateFormatString","replace","formatMonthDayYear","selectedDateFormatString","selectionAndTodayString","div","ref","role","aria-label","root","liveRegion","aria-live","aria-atomic","span","navigatedDate","onNavigateDate","divider","monthPickerWrapper","displayName","win","innerWidth"],"mappings":"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"}
|
|
1
|
+
{"version":3,"sources":["Calendar.tsx"],"sourcesContent":["import * as React from 'react';\nimport { Backspace, Enter, Escape, PageDown, PageUp, Space } from '@fluentui/keyboard-keys';\nimport { useControllableState } from '@fluentui/react-utilities';\nimport {\n addMonths,\n addYears,\n DateRangeType,\n DayOfWeek,\n DEFAULT_CALENDAR_STRINGS,\n DEFAULT_DATE_FORMATTING,\n FirstWeekOfYear,\n focusAsync,\n getWindow,\n} from '../../utils';\nimport { CalendarDay } from '../CalendarDay/CalendarDay';\nimport { CalendarMonth } from '../CalendarMonth/CalendarMonth';\nimport { useCalendarStyles_unstable } from './useCalendarStyles.styles';\nimport type { ICalendarDay } from '../CalendarDay/CalendarDay.types';\nimport type { ICalendarMonth } from '../CalendarMonth/CalendarMonth.types';\nimport type { CalendarProps } from './Calendar.types';\n\nconst MIN_SIZE_FORCE_OVERLAY = 440;\n\nconst defaultWorkWeekDays: DayOfWeek[] = [\n DayOfWeek.Monday,\n DayOfWeek.Tuesday,\n DayOfWeek.Wednesday,\n DayOfWeek.Thursday,\n DayOfWeek.Friday,\n];\n\nfunction useDateState({ value, today = new Date(), onSelectDate }: CalendarProps) {\n /** The currently selected date in the calendar */\n const [selectedDate, setSelectedDate] = useControllableState({\n defaultState: today,\n initialState: today,\n state: value,\n });\n\n /** The currently focused date in the day picker, but not necessarily selected */\n const [navigatedDay = today, setNavigatedDay] = React.useState(value);\n\n /** The currently focused date in the month picker, but not necessarily selected */\n const [navigatedMonth = today, setNavigatedMonth] = React.useState(value);\n\n /** If using a controlled value, when that value changes, navigate to that date */\n const [lastSelectedDate = today, setLastSelectedDate] = React.useState(value);\n if (value && lastSelectedDate.valueOf() !== value.valueOf()) {\n setNavigatedDay(value);\n setNavigatedMonth(value);\n setLastSelectedDate(value);\n }\n\n const navigateMonth = (date: Date) => {\n setNavigatedMonth(date);\n };\n\n const navigateDay = (date: Date) => {\n setNavigatedMonth(date);\n setNavigatedDay(date);\n };\n\n const onDateSelected = (date: Date, selectedDateRangeArray?: Date[]) => {\n setNavigatedMonth(date);\n setNavigatedDay(date);\n setSelectedDate(date);\n onSelectDate?.(date, selectedDateRangeArray);\n };\n\n return [selectedDate, navigatedDay, navigatedMonth, onDateSelected, navigateDay, navigateMonth] as const;\n}\n\nfunction useVisibilityState({\n isDayPickerVisible: isDayPickerVisibleProp,\n isMonthPickerVisible: isMonthPickerVisibleProp,\n showMonthPickerAsOverlay,\n}: CalendarProps) {\n /** State used to show/hide month picker */\n const [isMonthPickerVisible, setIsMonthPickerVisible] = useControllableState({\n defaultState: false,\n initialState: true,\n state: getShowMonthPickerAsOverlay({ isDayPickerVisible: isDayPickerVisibleProp, showMonthPickerAsOverlay })\n ? undefined\n : isMonthPickerVisibleProp,\n });\n /** State used to show/hide day picker */\n const [isDayPickerVisible, setIsDayPickerVisible] = useControllableState({\n defaultState: true,\n initialState: true,\n state: getShowMonthPickerAsOverlay({ isDayPickerVisible: isDayPickerVisibleProp, showMonthPickerAsOverlay })\n ? undefined\n : isDayPickerVisibleProp,\n });\n\n const toggleDayMonthPickerVisibility = () => {\n setIsMonthPickerVisible(!isMonthPickerVisible);\n setIsDayPickerVisible(!isDayPickerVisible);\n };\n\n return [isMonthPickerVisible, isDayPickerVisible, toggleDayMonthPickerVisibility] as const;\n}\n\nfunction useFocusLogic({ componentRef }: CalendarProps, isDayPickerVisible: boolean, isMonthPickerVisible: boolean) {\n const dayPicker = React.useRef<ICalendarDay>(null);\n const monthPicker = React.useRef<ICalendarMonth>(null);\n const focusOnUpdate = React.useRef(false);\n\n const focus = React.useCallback(() => {\n if (isDayPickerVisible && dayPicker.current) {\n focusAsync(dayPicker.current);\n } else if (isMonthPickerVisible && monthPicker.current) {\n focusAsync(monthPicker.current);\n }\n }, [isDayPickerVisible, isMonthPickerVisible]);\n\n React.useImperativeHandle(componentRef, () => ({ focus }), [focus]);\n\n React.useEffect(() => {\n if (focusOnUpdate.current) {\n focus();\n focusOnUpdate.current = false;\n }\n });\n\n const focusOnNextUpdate = () => {\n focusOnUpdate.current = true;\n };\n\n return [dayPicker, monthPicker, focusOnNextUpdate] as const;\n}\n\n/**\n * @internal\n */\nexport const Calendar: React.FunctionComponent<CalendarProps> = React.forwardRef<HTMLDivElement, CalendarProps>(\n (props, forwardedRef) => {\n const {\n allFocusable = false,\n calendarDayProps,\n calendarMonthProps,\n className,\n componentRef,\n dateRangeType = DateRangeType.Day,\n dateTimeFormatter = DEFAULT_DATE_FORMATTING,\n firstDayOfWeek = DayOfWeek.Sunday,\n firstWeekOfYear = FirstWeekOfYear.FirstDay,\n highlightCurrentMonth = false,\n highlightSelectedMonth = false,\n id,\n isDayPickerVisible: isDayPickerVisibleProp = true,\n isMonthPickerVisible: isMonthPickerVisibleProp = true,\n maxDate,\n minDate,\n onDismiss,\n onSelectDate,\n restrictedDates,\n showCloseButton = false,\n showGoToToday = true,\n showMonthPickerAsOverlay: showMonthPickerAsOverlayProp = false,\n showSixWeeksByDefault = false,\n showWeekNumbers = false,\n strings = DEFAULT_CALENDAR_STRINGS,\n today = new Date(),\n value,\n workWeekDays = defaultWorkWeekDays,\n } = props;\n\n const [selectedDate, navigatedDay, navigatedMonth, onDateSelected, navigateDay, navigateMonth] = useDateState({\n onSelectDate,\n value,\n today,\n });\n const [isMonthPickerVisible, isDayPickerVisible, toggleDayMonthPickerVisibility] = useVisibilityState({\n isDayPickerVisible: isDayPickerVisibleProp,\n isMonthPickerVisible: isMonthPickerVisibleProp,\n showMonthPickerAsOverlay: showMonthPickerAsOverlayProp,\n });\n const [dayPicker, monthPicker, focusOnNextUpdate] = useFocusLogic(\n { componentRef },\n isDayPickerVisible,\n isMonthPickerVisible,\n );\n\n const renderGoToTodayButton = () => {\n let goTodayEnabled = showGoToToday;\n\n if (goTodayEnabled && today) {\n goTodayEnabled =\n navigatedDay.getFullYear() !== today.getFullYear() ||\n navigatedDay.getMonth() !== today.getMonth() ||\n navigatedMonth.getFullYear() !== today.getFullYear() ||\n navigatedMonth.getMonth() !== today.getMonth();\n }\n\n return (\n showGoToToday && (\n <button\n className={classes.goTodayButton}\n onClick={onGotoToday}\n onKeyDown={onButtonKeyDown(onGotoToday)}\n type=\"button\"\n disabled={!goTodayEnabled}\n >\n {strings!.goToToday}\n </button>\n )\n );\n };\n\n const onNavigateDayDate = (date: Date, focusOnNavigatedDay: boolean): void => {\n navigateDay(date);\n if (focusOnNavigatedDay) {\n focusOnNextUpdate();\n }\n };\n\n const onNavigateMonthDate = (date: Date, focusOnNavigatedDay: boolean): void => {\n if (focusOnNavigatedDay) {\n focusOnNextUpdate();\n }\n\n if (!focusOnNavigatedDay) {\n navigateMonth(date);\n return;\n }\n\n if (monthPickerOnly) {\n onDateSelected(date);\n }\n\n navigateDay(date);\n };\n\n const onHeaderSelect = getShowMonthPickerAsOverlay({\n isDayPickerVisible: isDayPickerVisibleProp,\n showMonthPickerAsOverlay: showMonthPickerAsOverlayProp,\n })\n ? (): void => {\n toggleDayMonthPickerVisibility();\n\n focusOnNextUpdate();\n }\n : undefined;\n\n const onGotoToday = (): void => {\n navigateDay(today!);\n focusOnNextUpdate();\n };\n\n const onButtonKeyDown = (callback: () => void): ((ev: React.KeyboardEvent<HTMLButtonElement>) => void) => {\n return (ev: React.KeyboardEvent<HTMLButtonElement>) => {\n switch (ev.key) {\n case Enter:\n case Space:\n callback();\n break;\n }\n };\n };\n\n const onDatePickerPopupKeyDown = (ev: React.KeyboardEvent<HTMLElement>): void => {\n switch (ev.key) {\n case Enter:\n ev.preventDefault();\n break;\n\n case Backspace:\n ev.preventDefault();\n break;\n\n case Escape:\n ev.stopPropagation();\n onDismiss?.();\n break;\n\n case PageUp:\n if (ev.ctrlKey) {\n // go to next year\n navigateDay(addYears(navigatedDay, 1));\n } else {\n // go to next month\n navigateDay(addMonths(navigatedDay, 1));\n }\n ev.preventDefault();\n break;\n case PageDown:\n if (ev.ctrlKey) {\n // go to previous year\n navigateDay(addYears(navigatedDay, -1));\n } else {\n // go to previous month\n navigateDay(addMonths(navigatedDay, -1));\n }\n ev.preventDefault();\n break;\n default:\n break;\n }\n };\n const showMonthPickerAsOverlay = getShowMonthPickerAsOverlay(props);\n\n const monthPickerOnly = !showMonthPickerAsOverlay && !isDayPickerVisible;\n\n const classes = useCalendarStyles_unstable({\n className,\n isDayPickerVisible,\n isMonthPickerVisible,\n showWeekNumbers,\n });\n\n let todayDateString: string = '';\n let selectedDateString: string = '';\n if (dateTimeFormatter && strings!.todayDateFormatString) {\n todayDateString = strings!.todayDateFormatString.replace(\n '{0}',\n dateTimeFormatter.formatMonthDayYear(today, strings!),\n );\n }\n if (dateTimeFormatter && strings!.selectedDateFormatString) {\n const dateStringFormatter = monthPickerOnly\n ? dateTimeFormatter.formatMonthYear\n : dateTimeFormatter.formatMonthDayYear;\n selectedDateString = strings!.selectedDateFormatString.replace(\n '{0}',\n dateStringFormatter(selectedDate, strings!),\n );\n }\n const selectionAndTodayString = selectedDateString + ', ' + todayDateString;\n\n return (\n <div\n id={id}\n ref={forwardedRef}\n role=\"group\"\n aria-label={selectionAndTodayString}\n className={classes.root}\n onKeyDown={onDatePickerPopupKeyDown}\n >\n <div className={classes.liveRegion} aria-live=\"polite\" aria-atomic=\"true\">\n <span>{selectedDateString}</span>\n </div>\n {isDayPickerVisible && (\n <CalendarDay\n selectedDate={selectedDate!}\n navigatedDate={navigatedDay!}\n today={today}\n onSelectDate={onDateSelected}\n // eslint-disable-next-line react/jsx-no-bind\n onNavigateDate={onNavigateDayDate}\n onDismiss={onDismiss}\n firstDayOfWeek={firstDayOfWeek!}\n dateRangeType={dateRangeType!}\n strings={strings!}\n // eslint-disable-next-line react/jsx-no-bind\n onHeaderSelect={onHeaderSelect}\n showWeekNumbers={showWeekNumbers}\n firstWeekOfYear={firstWeekOfYear!}\n dateTimeFormatter={dateTimeFormatter!}\n showSixWeeksByDefault={showSixWeeksByDefault}\n minDate={minDate}\n maxDate={maxDate}\n restrictedDates={restrictedDates}\n workWeekDays={workWeekDays}\n componentRef={dayPicker}\n showCloseButton={showCloseButton}\n allFocusable={allFocusable}\n {...calendarDayProps} // at end of list so consumer's custom functions take precedence\n />\n )}\n {isDayPickerVisible && isMonthPickerVisible && <div className={classes.divider} />}\n {isMonthPickerVisible ? (\n <div className={classes.monthPickerWrapper}>\n <CalendarMonth\n navigatedDate={navigatedMonth}\n selectedDate={navigatedDay}\n strings={strings!}\n // eslint-disable-next-line react/jsx-no-bind\n onNavigateDate={onNavigateMonthDate}\n today={today}\n highlightCurrentMonth={highlightCurrentMonth!}\n highlightSelectedMonth={highlightSelectedMonth!}\n // eslint-disable-next-line react/jsx-no-bind\n onHeaderSelect={onHeaderSelect}\n dateTimeFormatter={dateTimeFormatter!}\n minDate={minDate}\n maxDate={maxDate}\n componentRef={monthPicker}\n {...calendarMonthProps} // at end of list so consumer's custom functions take precedence\n />\n {renderGoToTodayButton()}\n </div>\n ) : (\n renderGoToTodayButton()\n )}\n </div>\n );\n },\n);\nCalendar.displayName = 'Calendar';\n\nfunction getShowMonthPickerAsOverlay({ isDayPickerVisible, showMonthPickerAsOverlay }: CalendarProps) {\n const win = getWindow();\n return showMonthPickerAsOverlay || (isDayPickerVisible && win && win.innerWidth <= MIN_SIZE_FORCE_OVERLAY);\n}\n"],"names":["React","Backspace","Enter","Escape","PageDown","PageUp","Space","useControllableState","addMonths","addYears","DateRangeType","DayOfWeek","DEFAULT_CALENDAR_STRINGS","DEFAULT_DATE_FORMATTING","FirstWeekOfYear","focusAsync","getWindow","CalendarDay","CalendarMonth","useCalendarStyles_unstable","MIN_SIZE_FORCE_OVERLAY","defaultWorkWeekDays","Monday","Tuesday","Wednesday","Thursday","Friday","useDateState","value","today","Date","onSelectDate","selectedDate","setSelectedDate","defaultState","initialState","state","navigatedDay","setNavigatedDay","useState","navigatedMonth","setNavigatedMonth","lastSelectedDate","setLastSelectedDate","valueOf","navigateMonth","date","navigateDay","onDateSelected","selectedDateRangeArray","useVisibilityState","isDayPickerVisible","isDayPickerVisibleProp","isMonthPickerVisible","isMonthPickerVisibleProp","showMonthPickerAsOverlay","setIsMonthPickerVisible","getShowMonthPickerAsOverlay","undefined","setIsDayPickerVisible","toggleDayMonthPickerVisibility","useFocusLogic","componentRef","dayPicker","useRef","monthPicker","focusOnUpdate","focus","useCallback","current","useImperativeHandle","useEffect","focusOnNextUpdate","Calendar","forwardRef","props","forwardedRef","allFocusable","calendarDayProps","calendarMonthProps","className","dateRangeType","Day","dateTimeFormatter","firstDayOfWeek","Sunday","firstWeekOfYear","FirstDay","highlightCurrentMonth","highlightSelectedMonth","id","maxDate","minDate","onDismiss","restrictedDates","showCloseButton","showGoToToday","showMonthPickerAsOverlayProp","showSixWeeksByDefault","showWeekNumbers","strings","workWeekDays","renderGoToTodayButton","goTodayEnabled","getFullYear","getMonth","button","classes","goTodayButton","onClick","onGotoToday","onKeyDown","onButtonKeyDown","type","disabled","goToToday","onNavigateDayDate","focusOnNavigatedDay","onNavigateMonthDate","monthPickerOnly","onHeaderSelect","callback","ev","key","onDatePickerPopupKeyDown","preventDefault","stopPropagation","ctrlKey","todayDateString","selectedDateString","todayDateFormatString","replace","formatMonthDayYear","selectedDateFormatString","dateStringFormatter","formatMonthYear","selectionAndTodayString","div","ref","role","aria-label","root","liveRegion","aria-live","aria-atomic","span","navigatedDate","onNavigateDate","divider","monthPickerWrapper","displayName","win","innerWidth"],"mappings":"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"}
|
|
@@ -237,7 +237,8 @@ const Calendar = /*#__PURE__*/ _react.forwardRef((props, forwardedRef)=>{
|
|
|
237
237
|
todayDateString = strings.todayDateFormatString.replace('{0}', dateTimeFormatter.formatMonthDayYear(today, strings));
|
|
238
238
|
}
|
|
239
239
|
if (dateTimeFormatter && strings.selectedDateFormatString) {
|
|
240
|
-
|
|
240
|
+
const dateStringFormatter = monthPickerOnly ? dateTimeFormatter.formatMonthYear : dateTimeFormatter.formatMonthDayYear;
|
|
241
|
+
selectedDateString = strings.selectedDateFormatString.replace('{0}', dateStringFormatter(selectedDate, strings));
|
|
241
242
|
}
|
|
242
243
|
const selectionAndTodayString = selectedDateString + ', ' + todayDateString;
|
|
243
244
|
return /*#__PURE__*/ _react.createElement("div", {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["Calendar.js"],"sourcesContent":["import * as React from 'react';\nimport { Backspace, Enter, Escape, PageDown, PageUp, Space } from '@fluentui/keyboard-keys';\nimport { useControllableState } from '@fluentui/react-utilities';\nimport { addMonths, addYears, DateRangeType, DayOfWeek, DEFAULT_CALENDAR_STRINGS, DEFAULT_DATE_FORMATTING, FirstWeekOfYear, focusAsync, getWindow } from '../../utils';\nimport { CalendarDay } from '../CalendarDay/CalendarDay';\nimport { CalendarMonth } from '../CalendarMonth/CalendarMonth';\nimport { useCalendarStyles_unstable } from './useCalendarStyles.styles';\nconst MIN_SIZE_FORCE_OVERLAY = 440;\nconst defaultWorkWeekDays = [\n DayOfWeek.Monday,\n DayOfWeek.Tuesday,\n DayOfWeek.Wednesday,\n DayOfWeek.Thursday,\n DayOfWeek.Friday\n];\nfunction useDateState({ value , today =new Date() , onSelectDate }) {\n /** The currently selected date in the calendar */ const [selectedDate, setSelectedDate] = useControllableState({\n defaultState: today,\n initialState: today,\n state: value\n });\n /** The currently focused date in the day picker, but not necessarily selected */ const [navigatedDay = today, setNavigatedDay] = React.useState(value);\n /** The currently focused date in the month picker, but not necessarily selected */ const [navigatedMonth = today, setNavigatedMonth] = React.useState(value);\n /** If using a controlled value, when that value changes, navigate to that date */ const [lastSelectedDate = today, setLastSelectedDate] = React.useState(value);\n if (value && lastSelectedDate.valueOf() !== value.valueOf()) {\n setNavigatedDay(value);\n setNavigatedMonth(value);\n setLastSelectedDate(value);\n }\n const navigateMonth = (date)=>{\n setNavigatedMonth(date);\n };\n const navigateDay = (date)=>{\n setNavigatedMonth(date);\n setNavigatedDay(date);\n };\n const onDateSelected = (date, selectedDateRangeArray)=>{\n setNavigatedMonth(date);\n setNavigatedDay(date);\n setSelectedDate(date);\n onSelectDate === null || onSelectDate === void 0 ? void 0 : onSelectDate(date, selectedDateRangeArray);\n };\n return [\n selectedDate,\n navigatedDay,\n navigatedMonth,\n onDateSelected,\n navigateDay,\n navigateMonth\n ];\n}\nfunction useVisibilityState({ isDayPickerVisible: isDayPickerVisibleProp , isMonthPickerVisible: isMonthPickerVisibleProp , showMonthPickerAsOverlay }) {\n /** State used to show/hide month picker */ const [isMonthPickerVisible, setIsMonthPickerVisible] = useControllableState({\n defaultState: false,\n initialState: true,\n state: getShowMonthPickerAsOverlay({\n isDayPickerVisible: isDayPickerVisibleProp,\n showMonthPickerAsOverlay\n }) ? undefined : isMonthPickerVisibleProp\n });\n /** State used to show/hide day picker */ const [isDayPickerVisible, setIsDayPickerVisible] = useControllableState({\n defaultState: true,\n initialState: true,\n state: getShowMonthPickerAsOverlay({\n isDayPickerVisible: isDayPickerVisibleProp,\n showMonthPickerAsOverlay\n }) ? undefined : isDayPickerVisibleProp\n });\n const toggleDayMonthPickerVisibility = ()=>{\n setIsMonthPickerVisible(!isMonthPickerVisible);\n setIsDayPickerVisible(!isDayPickerVisible);\n };\n return [\n isMonthPickerVisible,\n isDayPickerVisible,\n toggleDayMonthPickerVisibility\n ];\n}\nfunction useFocusLogic({ componentRef }, isDayPickerVisible, isMonthPickerVisible) {\n const dayPicker = React.useRef(null);\n const monthPicker = React.useRef(null);\n const focusOnUpdate = React.useRef(false);\n const focus = React.useCallback(()=>{\n if (isDayPickerVisible && dayPicker.current) {\n focusAsync(dayPicker.current);\n } else if (isMonthPickerVisible && monthPicker.current) {\n focusAsync(monthPicker.current);\n }\n }, [\n isDayPickerVisible,\n isMonthPickerVisible\n ]);\n React.useImperativeHandle(componentRef, ()=>({\n focus\n }), [\n focus\n ]);\n React.useEffect(()=>{\n if (focusOnUpdate.current) {\n focus();\n focusOnUpdate.current = false;\n }\n });\n const focusOnNextUpdate = ()=>{\n focusOnUpdate.current = true;\n };\n return [\n dayPicker,\n monthPicker,\n focusOnNextUpdate\n ];\n}\n/**\n * @internal\n */ export const Calendar = /*#__PURE__*/ React.forwardRef((props, forwardedRef)=>{\n const { allFocusable =false , calendarDayProps , calendarMonthProps , className , componentRef , dateRangeType =DateRangeType.Day , dateTimeFormatter =DEFAULT_DATE_FORMATTING , firstDayOfWeek =DayOfWeek.Sunday , firstWeekOfYear =FirstWeekOfYear.FirstDay , highlightCurrentMonth =false , highlightSelectedMonth =false , id , isDayPickerVisible: isDayPickerVisibleProp = true , isMonthPickerVisible: isMonthPickerVisibleProp = true , maxDate , minDate , onDismiss , onSelectDate , restrictedDates , showCloseButton =false , showGoToToday =true , showMonthPickerAsOverlay: showMonthPickerAsOverlayProp = false , showSixWeeksByDefault =false , showWeekNumbers =false , strings =DEFAULT_CALENDAR_STRINGS , today =new Date() , value , workWeekDays =defaultWorkWeekDays } = props;\n const [selectedDate, navigatedDay, navigatedMonth, onDateSelected, navigateDay, navigateMonth] = useDateState({\n onSelectDate,\n value,\n today\n });\n const [isMonthPickerVisible, isDayPickerVisible, toggleDayMonthPickerVisibility] = useVisibilityState({\n isDayPickerVisible: isDayPickerVisibleProp,\n isMonthPickerVisible: isMonthPickerVisibleProp,\n showMonthPickerAsOverlay: showMonthPickerAsOverlayProp\n });\n const [dayPicker, monthPicker, focusOnNextUpdate] = useFocusLogic({\n componentRef\n }, isDayPickerVisible, isMonthPickerVisible);\n const renderGoToTodayButton = ()=>{\n let goTodayEnabled = showGoToToday;\n if (goTodayEnabled && today) {\n goTodayEnabled = navigatedDay.getFullYear() !== today.getFullYear() || navigatedDay.getMonth() !== today.getMonth() || navigatedMonth.getFullYear() !== today.getFullYear() || navigatedMonth.getMonth() !== today.getMonth();\n }\n return showGoToToday && /*#__PURE__*/ React.createElement(\"button\", {\n className: classes.goTodayButton,\n onClick: onGotoToday,\n onKeyDown: onButtonKeyDown(onGotoToday),\n type: \"button\",\n disabled: !goTodayEnabled\n }, strings.goToToday);\n };\n const onNavigateDayDate = (date, focusOnNavigatedDay)=>{\n navigateDay(date);\n if (focusOnNavigatedDay) {\n focusOnNextUpdate();\n }\n };\n const onNavigateMonthDate = (date, focusOnNavigatedDay)=>{\n if (focusOnNavigatedDay) {\n focusOnNextUpdate();\n }\n if (!focusOnNavigatedDay) {\n navigateMonth(date);\n return;\n }\n if (monthPickerOnly) {\n onDateSelected(date);\n }\n navigateDay(date);\n };\n const onHeaderSelect = getShowMonthPickerAsOverlay({\n isDayPickerVisible: isDayPickerVisibleProp,\n showMonthPickerAsOverlay: showMonthPickerAsOverlayProp\n }) ? ()=>{\n toggleDayMonthPickerVisibility();\n focusOnNextUpdate();\n } : undefined;\n const onGotoToday = ()=>{\n navigateDay(today);\n focusOnNextUpdate();\n };\n const onButtonKeyDown = (callback)=>{\n return (ev)=>{\n switch(ev.key){\n case Enter:\n case Space:\n callback();\n break;\n }\n };\n };\n const onDatePickerPopupKeyDown = (ev)=>{\n switch(ev.key){\n case Enter:\n ev.preventDefault();\n break;\n case Backspace:\n ev.preventDefault();\n break;\n case Escape:\n ev.stopPropagation();\n onDismiss === null || onDismiss === void 0 ? void 0 : onDismiss();\n break;\n case PageUp:\n if (ev.ctrlKey) {\n // go to next year\n navigateDay(addYears(navigatedDay, 1));\n } else {\n // go to next month\n navigateDay(addMonths(navigatedDay, 1));\n }\n ev.preventDefault();\n break;\n case PageDown:\n if (ev.ctrlKey) {\n // go to previous year\n navigateDay(addYears(navigatedDay, -1));\n } else {\n // go to previous month\n navigateDay(addMonths(navigatedDay, -1));\n }\n ev.preventDefault();\n break;\n default:\n break;\n }\n };\n const showMonthPickerAsOverlay = getShowMonthPickerAsOverlay(props);\n const monthPickerOnly = !showMonthPickerAsOverlay && !isDayPickerVisible;\n const classes = useCalendarStyles_unstable({\n className,\n isDayPickerVisible,\n isMonthPickerVisible,\n showWeekNumbers\n });\n let todayDateString = '';\n let selectedDateString = '';\n if (dateTimeFormatter && strings.todayDateFormatString) {\n todayDateString = strings.todayDateFormatString.replace('{0}', dateTimeFormatter.formatMonthDayYear(today, strings));\n }\n if (dateTimeFormatter && strings.selectedDateFormatString) {\n selectedDateString = strings.selectedDateFormatString.replace('{0}', dateTimeFormatter.formatMonthDayYear(selectedDate, strings));\n }\n const selectionAndTodayString = selectedDateString + ', ' + todayDateString;\n return /*#__PURE__*/ React.createElement(\"div\", {\n id: id,\n ref: forwardedRef,\n role: \"group\",\n \"aria-label\": selectionAndTodayString,\n className: classes.root,\n onKeyDown: onDatePickerPopupKeyDown\n }, /*#__PURE__*/ React.createElement(\"div\", {\n className: classes.liveRegion,\n \"aria-live\": \"polite\",\n \"aria-atomic\": \"true\"\n }, /*#__PURE__*/ React.createElement(\"span\", null, selectedDateString)), isDayPickerVisible && /*#__PURE__*/ React.createElement(CalendarDay, {\n selectedDate: selectedDate,\n navigatedDate: navigatedDay,\n today: today,\n onSelectDate: onDateSelected,\n // eslint-disable-next-line react/jsx-no-bind\n onNavigateDate: onNavigateDayDate,\n onDismiss: onDismiss,\n firstDayOfWeek: firstDayOfWeek,\n dateRangeType: dateRangeType,\n strings: strings,\n // eslint-disable-next-line react/jsx-no-bind\n onHeaderSelect: onHeaderSelect,\n showWeekNumbers: showWeekNumbers,\n firstWeekOfYear: firstWeekOfYear,\n dateTimeFormatter: dateTimeFormatter,\n showSixWeeksByDefault: showSixWeeksByDefault,\n minDate: minDate,\n maxDate: maxDate,\n restrictedDates: restrictedDates,\n workWeekDays: workWeekDays,\n componentRef: dayPicker,\n showCloseButton: showCloseButton,\n allFocusable: allFocusable,\n ...calendarDayProps\n }), isDayPickerVisible && isMonthPickerVisible && /*#__PURE__*/ React.createElement(\"div\", {\n className: classes.divider\n }), isMonthPickerVisible ? /*#__PURE__*/ React.createElement(\"div\", {\n className: classes.monthPickerWrapper\n }, /*#__PURE__*/ React.createElement(CalendarMonth, {\n navigatedDate: navigatedMonth,\n selectedDate: navigatedDay,\n strings: strings,\n // eslint-disable-next-line react/jsx-no-bind\n onNavigateDate: onNavigateMonthDate,\n today: today,\n highlightCurrentMonth: highlightCurrentMonth,\n highlightSelectedMonth: highlightSelectedMonth,\n // eslint-disable-next-line react/jsx-no-bind\n onHeaderSelect: onHeaderSelect,\n dateTimeFormatter: dateTimeFormatter,\n minDate: minDate,\n maxDate: maxDate,\n componentRef: monthPicker,\n ...calendarMonthProps\n }), renderGoToTodayButton()) : renderGoToTodayButton());\n});\nCalendar.displayName = 'Calendar';\nfunction getShowMonthPickerAsOverlay({ isDayPickerVisible , showMonthPickerAsOverlay }) {\n const win = getWindow();\n return showMonthPickerAsOverlay || isDayPickerVisible && win && win.innerWidth <= MIN_SIZE_FORCE_OVERLAY;\n}\n"],"names":["Calendar","MIN_SIZE_FORCE_OVERLAY","defaultWorkWeekDays","DayOfWeek","Monday","Tuesday","Wednesday","Thursday","Friday","useDateState","value","today","Date","onSelectDate","selectedDate","setSelectedDate","useControllableState","defaultState","initialState","state","navigatedDay","setNavigatedDay","React","useState","navigatedMonth","setNavigatedMonth","lastSelectedDate","setLastSelectedDate","valueOf","navigateMonth","date","navigateDay","onDateSelected","selectedDateRangeArray","useVisibilityState","isDayPickerVisible","isDayPickerVisibleProp","isMonthPickerVisible","isMonthPickerVisibleProp","showMonthPickerAsOverlay","setIsMonthPickerVisible","getShowMonthPickerAsOverlay","undefined","setIsDayPickerVisible","toggleDayMonthPickerVisibility","useFocusLogic","componentRef","dayPicker","useRef","monthPicker","focusOnUpdate","focus","useCallback","current","focusAsync","useImperativeHandle","useEffect","focusOnNextUpdate","forwardRef","props","forwardedRef","allFocusable","calendarDayProps","calendarMonthProps","className","dateRangeType","DateRangeType","Day","dateTimeFormatter","DEFAULT_DATE_FORMATTING","firstDayOfWeek","Sunday","firstWeekOfYear","FirstWeekOfYear","FirstDay","highlightCurrentMonth","highlightSelectedMonth","id","maxDate","minDate","onDismiss","restrictedDates","showCloseButton","showGoToToday","showMonthPickerAsOverlayProp","showSixWeeksByDefault","showWeekNumbers","strings","DEFAULT_CALENDAR_STRINGS","workWeekDays","renderGoToTodayButton","goTodayEnabled","getFullYear","getMonth","createElement","classes","goTodayButton","onClick","onGotoToday","onKeyDown","onButtonKeyDown","type","disabled","goToToday","onNavigateDayDate","focusOnNavigatedDay","onNavigateMonthDate","monthPickerOnly","onHeaderSelect","callback","ev","key","Enter","Space","onDatePickerPopupKeyDown","preventDefault","Backspace","Escape","stopPropagation","PageUp","ctrlKey","addYears","addMonths","PageDown","useCalendarStyles_unstable","todayDateString","selectedDateString","todayDateFormatString","replace","formatMonthDayYear","selectedDateFormatString","selectionAndTodayString","ref","role","root","liveRegion","CalendarDay","navigatedDate","onNavigateDate","divider","monthPickerWrapper","CalendarMonth","displayName","win","getWindow","innerWidth"],"mappings":";;;;+BAkHiBA;;aAAAA;;;6DAlHM;8BAC2C;gCAC7B;uBACoH;6BAC7H;+BACE;yCACa;AAC3C,MAAMC,yBAAyB;AAC/B,MAAMC,sBAAsB;IACxBC,gBAAS,CAACC,MAAM;IAChBD,gBAAS,CAACE,OAAO;IACjBF,gBAAS,CAACG,SAAS;IACnBH,gBAAS,CAACI,QAAQ;IAClBJ,gBAAS,CAACK,MAAM;CACnB;AACD,SAASC,aAAa,EAAEC,MAAK,EAAGC,OAAO,IAAIC,OAAM,EAAGC,aAAY,EAAG,EAAE;IACjE,gDAAgD,GAAG,MAAM,CAACC,cAAcC,gBAAgB,GAAGC,IAAAA,oCAAoB,EAAC;QAC5GC,cAAcN;QACdO,cAAcP;QACdQ,OAAOT;IACX;IACA,+EAA+E,GAAG,MAAM,CAACU,eAAeT,KAAK,EAAEU,gBAAgB,GAAGC,OAAMC,QAAQ,CAACb;IACjJ,iFAAiF,GAAG,MAAM,CAACc,iBAAiBb,KAAK,EAAEc,kBAAkB,GAAGH,OAAMC,QAAQ,CAACb;IACvJ,gFAAgF,GAAG,MAAM,CAACgB,mBAAmBf,KAAK,EAAEgB,oBAAoB,GAAGL,OAAMC,QAAQ,CAACb;IAC1J,IAAIA,SAASgB,iBAAiBE,OAAO,OAAOlB,MAAMkB,OAAO,IAAI;QACzDP,gBAAgBX;QAChBe,kBAAkBf;QAClBiB,oBAAoBjB;IACxB,CAAC;IACD,MAAMmB,gBAAgB,CAACC,OAAO;QAC1BL,kBAAkBK;IACtB;IACA,MAAMC,cAAc,CAACD,OAAO;QACxBL,kBAAkBK;QAClBT,gBAAgBS;IACpB;IACA,MAAME,iBAAiB,CAACF,MAAMG,yBAAyB;QACnDR,kBAAkBK;QAClBT,gBAAgBS;QAChBf,gBAAgBe;QAChBjB,iBAAiB,IAAI,IAAIA,iBAAiB,KAAK,IAAI,KAAK,IAAIA,aAAaiB,MAAMG,uBAAuB;IAC1G;IACA,OAAO;QACHnB;QACAM;QACAI;QACAQ;QACAD;QACAF;KACH;AACL;AACA,SAASK,mBAAmB,EAAEC,oBAAoBC,uBAAsB,EAAGC,sBAAsBC,yBAAwB,EAAGC,yBAAwB,EAAG,EAAE;IACrJ,yCAAyC,GAAG,MAAM,CAACF,sBAAsBG,wBAAwB,GAAGxB,IAAAA,oCAAoB,EAAC;QACrHC,cAAc,KAAK;QACnBC,cAAc,IAAI;QAClBC,OAAOsB,4BAA4B;YAC/BN,oBAAoBC;YACpBG;QACJ,KAAKG,YAAYJ,wBAAwB;IAC7C;IACA,uCAAuC,GAAG,MAAM,CAACH,oBAAoBQ,sBAAsB,GAAG3B,IAAAA,oCAAoB,EAAC;QAC/GC,cAAc,IAAI;QAClBC,cAAc,IAAI;QAClBC,OAAOsB,4BAA4B;YAC/BN,oBAAoBC;YACpBG;QACJ,KAAKG,YAAYN,sBAAsB;IAC3C;IACA,MAAMQ,iCAAiC,IAAI;QACvCJ,wBAAwB,CAACH;QACzBM,sBAAsB,CAACR;IAC3B;IACA,OAAO;QACHE;QACAF;QACAS;KACH;AACL;AACA,SAASC,cAAc,EAAEC,aAAY,EAAG,EAAEX,kBAAkB,EAAEE,oBAAoB,EAAE;IAChF,MAAMU,YAAYzB,OAAM0B,MAAM,CAAC,IAAI;IACnC,MAAMC,cAAc3B,OAAM0B,MAAM,CAAC,IAAI;IACrC,MAAME,gBAAgB5B,OAAM0B,MAAM,CAAC,KAAK;IACxC,MAAMG,QAAQ7B,OAAM8B,WAAW,CAAC,IAAI;QAChC,IAAIjB,sBAAsBY,UAAUM,OAAO,EAAE;YACzCC,IAAAA,iBAAU,EAACP,UAAUM,OAAO;QAChC,OAAO,IAAIhB,wBAAwBY,YAAYI,OAAO,EAAE;YACpDC,IAAAA,iBAAU,EAACL,YAAYI,OAAO;QAClC,CAAC;IACL,GAAG;QACClB;QACAE;KACH;IACDf,OAAMiC,mBAAmB,CAACT,cAAc,IAAK,CAAA;YACrCK;QACJ,CAAA,GAAI;QACJA;KACH;IACD7B,OAAMkC,SAAS,CAAC,IAAI;QAChB,IAAIN,cAAcG,OAAO,EAAE;YACvBF;YACAD,cAAcG,OAAO,GAAG,KAAK;QACjC,CAAC;IACL;IACA,MAAMI,oBAAoB,IAAI;QAC1BP,cAAcG,OAAO,GAAG,IAAI;IAChC;IACA,OAAO;QACHN;QACAE;QACAQ;KACH;AACL;AAGW,MAAMzD,WAAW,WAAW,GAAGsB,OAAMoC,UAAU,CAAC,CAACC,OAAOC,eAAe;IAC9E,MAAM,EAAEC,cAAc,KAAK,CAAA,EAAGC,iBAAgB,EAAGC,mBAAkB,EAAGC,UAAS,EAAGlB,aAAY,EAAGmB,eAAeC,oBAAa,CAACC,GAAG,CAAA,EAAGC,mBAAmBC,8BAAuB,CAAA,EAAGC,gBAAgBnE,gBAAS,CAACoE,MAAM,CAAA,EAAGC,iBAAiBC,sBAAe,CAACC,QAAQ,CAAA,EAAGC,uBAAuB,KAAK,CAAA,EAAGC,wBAAwB,KAAK,CAAA,EAAGC,GAAE,EAAG1C,oBAAoBC,yBAAyB,IAAI,CAAA,EAAGC,sBAAsBC,2BAA2B,IAAI,CAAA,EAAGwC,QAAO,EAAGC,QAAO,EAAGC,UAAS,EAAGnE,aAAY,EAAGoE,gBAAe,EAAGC,iBAAiB,KAAK,CAAA,EAAGC,eAAe,IAAI,CAAA,EAAG5C,0BAA0B6C,+BAA+B,KAAK,CAAA,EAAGC,uBAAuB,KAAK,CAAA,EAAGC,iBAAiB,KAAK,CAAA,EAAGC,SAASC,+BAAwB,CAAA,EAAG7E,OAAO,IAAIC,OAAM,EAAGF,MAAK,EAAG+E,cAAcvF,oBAAmB,EAAG,GAAGyD;IAChwB,MAAM,CAAC7C,cAAcM,cAAcI,gBAAgBQ,gBAAgBD,aAAaF,cAAc,GAAGpB,aAAa;QAC1GI;QACAH;QACAC;IACJ;IACA,MAAM,CAAC0B,sBAAsBF,oBAAoBS,+BAA+B,GAAGV,mBAAmB;QAClGC,oBAAoBC;QACpBC,sBAAsBC;QACtBC,0BAA0B6C;IAC9B;IACA,MAAM,CAACrC,WAAWE,aAAaQ,kBAAkB,GAAGZ,cAAc;QAC9DC;IACJ,GAAGX,oBAAoBE;IACvB,MAAMqD,wBAAwB,IAAI;QAC9B,IAAIC,iBAAiBR;QACrB,IAAIQ,kBAAkBhF,OAAO;YACzBgF,iBAAiBvE,aAAawE,WAAW,OAAOjF,MAAMiF,WAAW,MAAMxE,aAAayE,QAAQ,OAAOlF,MAAMkF,QAAQ,MAAMrE,eAAeoE,WAAW,OAAOjF,MAAMiF,WAAW,MAAMpE,eAAeqE,QAAQ,OAAOlF,MAAMkF,QAAQ;QAC/N,CAAC;QACD,OAAOV,iBAAiB,WAAW,GAAG7D,OAAMwE,aAAa,CAAC,UAAU;YAChE9B,WAAW+B,QAAQC,aAAa;YAChCC,SAASC;YACTC,WAAWC,gBAAgBF;YAC3BG,MAAM;YACNC,UAAU,CAACX;QACf,GAAGJ,QAAQgB,SAAS;IACxB;IACA,MAAMC,oBAAoB,CAAC1E,MAAM2E,sBAAsB;QACnD1E,YAAYD;QACZ,IAAI2E,qBAAqB;YACrBhD;QACJ,CAAC;IACL;IACA,MAAMiD,sBAAsB,CAAC5E,MAAM2E,sBAAsB;QACrD,IAAIA,qBAAqB;YACrBhD;QACJ,CAAC;QACD,IAAI,CAACgD,qBAAqB;YACtB5E,cAAcC;YACd;QACJ,CAAC;QACD,IAAI6E,iBAAiB;YACjB3E,eAAeF;QACnB,CAAC;QACDC,YAAYD;IAChB;IACA,MAAM8E,iBAAiBnE,4BAA4B;QAC/CN,oBAAoBC;QACpBG,0BAA0B6C;IAC9B,KAAK,IAAI;QACLxC;QACAa;IACJ,IAAIf,SAAS;IACb,MAAMwD,cAAc,IAAI;QACpBnE,YAAYpB;QACZ8C;IACJ;IACA,MAAM2C,kBAAkB,CAACS,WAAW;QAChC,OAAO,CAACC,KAAK;YACT,OAAOA,GAAGC,GAAG;gBACT,KAAKC,mBAAK;gBACV,KAAKC,mBAAK;oBACNJ;oBACA,KAAM;YACd;QACJ;IACJ;IACA,MAAMK,2BAA2B,CAACJ,KAAK;QACnC,OAAOA,GAAGC,GAAG;YACT,KAAKC,mBAAK;gBACNF,GAAGK,cAAc;gBACjB,KAAM;YACV,KAAKC,uBAAS;gBACVN,GAAGK,cAAc;gBACjB,KAAM;YACV,KAAKE,oBAAM;gBACPP,GAAGQ,eAAe;gBAClBtC,cAAc,IAAI,IAAIA,cAAc,KAAK,IAAI,KAAK,IAAIA,WAAW;gBACjE,KAAM;YACV,KAAKuC,oBAAM;gBACP,IAAIT,GAAGU,OAAO,EAAE;oBACZ,kBAAkB;oBAClBzF,YAAY0F,IAAAA,eAAQ,EAACrG,cAAc;gBACvC,OAAO;oBACH,mBAAmB;oBACnBW,YAAY2F,IAAAA,gBAAS,EAACtG,cAAc;gBACxC,CAAC;gBACD0F,GAAGK,cAAc;gBACjB,KAAM;YACV,KAAKQ,sBAAQ;gBACT,IAAIb,GAAGU,OAAO,EAAE;oBACZ,sBAAsB;oBACtBzF,YAAY0F,IAAAA,eAAQ,EAACrG,cAAc,CAAC;gBACxC,OAAO;oBACH,uBAAuB;oBACvBW,YAAY2F,IAAAA,gBAAS,EAACtG,cAAc,CAAC;gBACzC,CAAC;gBACD0F,GAAGK,cAAc;gBACjB,KAAM;YACV;gBACI,KAAM;QACd;IACJ;IACA,MAAM5E,2BAA2BE,4BAA4BkB;IAC7D,MAAMgD,kBAAkB,CAACpE,4BAA4B,CAACJ;IACtD,MAAM4D,UAAU6B,IAAAA,mDAA0B,EAAC;QACvC5D;QACA7B;QACAE;QACAiD;IACJ;IACA,IAAIuC,kBAAkB;IACtB,IAAIC,qBAAqB;IACzB,IAAI1D,qBAAqBmB,QAAQwC,qBAAqB,EAAE;QACpDF,kBAAkBtC,QAAQwC,qBAAqB,CAACC,OAAO,CAAC,OAAO5D,kBAAkB6D,kBAAkB,CAACtH,OAAO4E;IAC/G,CAAC;IACD,IAAInB,qBAAqBmB,QAAQ2C,wBAAwB,EAAE;QACvDJ,qBAAqBvC,QAAQ2C,wBAAwB,CAACF,OAAO,CAAC,OAAO5D,kBAAkB6D,kBAAkB,CAACnH,cAAcyE;IAC5H,CAAC;IACD,MAAM4C,0BAA0BL,qBAAqB,OAAOD;IAC5D,OAAO,WAAW,GAAGvG,OAAMwE,aAAa,CAAC,OAAO;QAC5CjB,IAAIA;QACJuD,KAAKxE;QACLyE,MAAM;QACN,cAAcF;QACdnE,WAAW+B,QAAQuC,IAAI;QACvBnC,WAAWe;IACf,GAAG,WAAW,GAAG5F,OAAMwE,aAAa,CAAC,OAAO;QACxC9B,WAAW+B,QAAQwC,UAAU;QAC7B,aAAa;QACb,eAAe;IACnB,GAAG,WAAW,GAAGjH,OAAMwE,aAAa,CAAC,QAAQ,IAAI,EAAEgC,sBAAsB3F,sBAAsB,WAAW,GAAGb,OAAMwE,aAAa,CAAC0C,wBAAW,EAAE;QAC1I1H,cAAcA;QACd2H,eAAerH;QACfT,OAAOA;QACPE,cAAcmB;QACd,6CAA6C;QAC7C0G,gBAAgBlC;QAChBxB,WAAWA;QACXV,gBAAgBA;QAChBL,eAAeA;QACfsB,SAASA;QACT,6CAA6C;QAC7CqB,gBAAgBA;QAChBtB,iBAAiBA;QACjBd,iBAAiBA;QACjBJ,mBAAmBA;QACnBiB,uBAAuBA;QACvBN,SAASA;QACTD,SAASA;QACTG,iBAAiBA;QACjBQ,cAAcA;QACd3C,cAAcC;QACdmC,iBAAiBA;QACjBrB,cAAcA;QACd,GAAGC,gBAAgB;IACvB,IAAI3B,sBAAsBE,wBAAwB,WAAW,GAAGf,OAAMwE,aAAa,CAAC,OAAO;QACvF9B,WAAW+B,QAAQ4C,OAAO;IAC9B,IAAItG,uBAAuB,WAAW,GAAGf,OAAMwE,aAAa,CAAC,OAAO;QAChE9B,WAAW+B,QAAQ6C,kBAAkB;IACzC,GAAG,WAAW,GAAGtH,OAAMwE,aAAa,CAAC+C,4BAAa,EAAE;QAChDJ,eAAejH;QACfV,cAAcM;QACdmE,SAASA;QACT,6CAA6C;QAC7CmD,gBAAgBhC;QAChB/F,OAAOA;QACPgE,uBAAuBA;QACvBC,wBAAwBA;QACxB,6CAA6C;QAC7CgC,gBAAgBA;QAChBxC,mBAAmBA;QACnBW,SAASA;QACTD,SAASA;QACThC,cAAcG;QACd,GAAGc,kBAAkB;IACzB,IAAI2B,2BAA2BA,uBAAuB;AAC1D;AACA1F,SAAS8I,WAAW,GAAG;AACvB,SAASrG,4BAA4B,EAAEN,mBAAkB,EAAGI,yBAAwB,EAAG,EAAE;IACrF,MAAMwG,MAAMC,IAAAA,gBAAS;IACrB,OAAOzG,4BAA4BJ,sBAAsB4G,OAAOA,IAAIE,UAAU,IAAIhJ;AACtF"}
|
|
1
|
+
{"version":3,"sources":["Calendar.js"],"sourcesContent":["import * as React from 'react';\nimport { Backspace, Enter, Escape, PageDown, PageUp, Space } from '@fluentui/keyboard-keys';\nimport { useControllableState } from '@fluentui/react-utilities';\nimport { addMonths, addYears, DateRangeType, DayOfWeek, DEFAULT_CALENDAR_STRINGS, DEFAULT_DATE_FORMATTING, FirstWeekOfYear, focusAsync, getWindow } from '../../utils';\nimport { CalendarDay } from '../CalendarDay/CalendarDay';\nimport { CalendarMonth } from '../CalendarMonth/CalendarMonth';\nimport { useCalendarStyles_unstable } from './useCalendarStyles.styles';\nconst MIN_SIZE_FORCE_OVERLAY = 440;\nconst defaultWorkWeekDays = [\n DayOfWeek.Monday,\n DayOfWeek.Tuesday,\n DayOfWeek.Wednesday,\n DayOfWeek.Thursday,\n DayOfWeek.Friday\n];\nfunction useDateState({ value , today =new Date() , onSelectDate }) {\n /** The currently selected date in the calendar */ const [selectedDate, setSelectedDate] = useControllableState({\n defaultState: today,\n initialState: today,\n state: value\n });\n /** The currently focused date in the day picker, but not necessarily selected */ const [navigatedDay = today, setNavigatedDay] = React.useState(value);\n /** The currently focused date in the month picker, but not necessarily selected */ const [navigatedMonth = today, setNavigatedMonth] = React.useState(value);\n /** If using a controlled value, when that value changes, navigate to that date */ const [lastSelectedDate = today, setLastSelectedDate] = React.useState(value);\n if (value && lastSelectedDate.valueOf() !== value.valueOf()) {\n setNavigatedDay(value);\n setNavigatedMonth(value);\n setLastSelectedDate(value);\n }\n const navigateMonth = (date)=>{\n setNavigatedMonth(date);\n };\n const navigateDay = (date)=>{\n setNavigatedMonth(date);\n setNavigatedDay(date);\n };\n const onDateSelected = (date, selectedDateRangeArray)=>{\n setNavigatedMonth(date);\n setNavigatedDay(date);\n setSelectedDate(date);\n onSelectDate === null || onSelectDate === void 0 ? void 0 : onSelectDate(date, selectedDateRangeArray);\n };\n return [\n selectedDate,\n navigatedDay,\n navigatedMonth,\n onDateSelected,\n navigateDay,\n navigateMonth\n ];\n}\nfunction useVisibilityState({ isDayPickerVisible: isDayPickerVisibleProp , isMonthPickerVisible: isMonthPickerVisibleProp , showMonthPickerAsOverlay }) {\n /** State used to show/hide month picker */ const [isMonthPickerVisible, setIsMonthPickerVisible] = useControllableState({\n defaultState: false,\n initialState: true,\n state: getShowMonthPickerAsOverlay({\n isDayPickerVisible: isDayPickerVisibleProp,\n showMonthPickerAsOverlay\n }) ? undefined : isMonthPickerVisibleProp\n });\n /** State used to show/hide day picker */ const [isDayPickerVisible, setIsDayPickerVisible] = useControllableState({\n defaultState: true,\n initialState: true,\n state: getShowMonthPickerAsOverlay({\n isDayPickerVisible: isDayPickerVisibleProp,\n showMonthPickerAsOverlay\n }) ? undefined : isDayPickerVisibleProp\n });\n const toggleDayMonthPickerVisibility = ()=>{\n setIsMonthPickerVisible(!isMonthPickerVisible);\n setIsDayPickerVisible(!isDayPickerVisible);\n };\n return [\n isMonthPickerVisible,\n isDayPickerVisible,\n toggleDayMonthPickerVisibility\n ];\n}\nfunction useFocusLogic({ componentRef }, isDayPickerVisible, isMonthPickerVisible) {\n const dayPicker = React.useRef(null);\n const monthPicker = React.useRef(null);\n const focusOnUpdate = React.useRef(false);\n const focus = React.useCallback(()=>{\n if (isDayPickerVisible && dayPicker.current) {\n focusAsync(dayPicker.current);\n } else if (isMonthPickerVisible && monthPicker.current) {\n focusAsync(monthPicker.current);\n }\n }, [\n isDayPickerVisible,\n isMonthPickerVisible\n ]);\n React.useImperativeHandle(componentRef, ()=>({\n focus\n }), [\n focus\n ]);\n React.useEffect(()=>{\n if (focusOnUpdate.current) {\n focus();\n focusOnUpdate.current = false;\n }\n });\n const focusOnNextUpdate = ()=>{\n focusOnUpdate.current = true;\n };\n return [\n dayPicker,\n monthPicker,\n focusOnNextUpdate\n ];\n}\n/**\n * @internal\n */ export const Calendar = /*#__PURE__*/ React.forwardRef((props, forwardedRef)=>{\n const { allFocusable =false , calendarDayProps , calendarMonthProps , className , componentRef , dateRangeType =DateRangeType.Day , dateTimeFormatter =DEFAULT_DATE_FORMATTING , firstDayOfWeek =DayOfWeek.Sunday , firstWeekOfYear =FirstWeekOfYear.FirstDay , highlightCurrentMonth =false , highlightSelectedMonth =false , id , isDayPickerVisible: isDayPickerVisibleProp = true , isMonthPickerVisible: isMonthPickerVisibleProp = true , maxDate , minDate , onDismiss , onSelectDate , restrictedDates , showCloseButton =false , showGoToToday =true , showMonthPickerAsOverlay: showMonthPickerAsOverlayProp = false , showSixWeeksByDefault =false , showWeekNumbers =false , strings =DEFAULT_CALENDAR_STRINGS , today =new Date() , value , workWeekDays =defaultWorkWeekDays } = props;\n const [selectedDate, navigatedDay, navigatedMonth, onDateSelected, navigateDay, navigateMonth] = useDateState({\n onSelectDate,\n value,\n today\n });\n const [isMonthPickerVisible, isDayPickerVisible, toggleDayMonthPickerVisibility] = useVisibilityState({\n isDayPickerVisible: isDayPickerVisibleProp,\n isMonthPickerVisible: isMonthPickerVisibleProp,\n showMonthPickerAsOverlay: showMonthPickerAsOverlayProp\n });\n const [dayPicker, monthPicker, focusOnNextUpdate] = useFocusLogic({\n componentRef\n }, isDayPickerVisible, isMonthPickerVisible);\n const renderGoToTodayButton = ()=>{\n let goTodayEnabled = showGoToToday;\n if (goTodayEnabled && today) {\n goTodayEnabled = navigatedDay.getFullYear() !== today.getFullYear() || navigatedDay.getMonth() !== today.getMonth() || navigatedMonth.getFullYear() !== today.getFullYear() || navigatedMonth.getMonth() !== today.getMonth();\n }\n return showGoToToday && /*#__PURE__*/ React.createElement(\"button\", {\n className: classes.goTodayButton,\n onClick: onGotoToday,\n onKeyDown: onButtonKeyDown(onGotoToday),\n type: \"button\",\n disabled: !goTodayEnabled\n }, strings.goToToday);\n };\n const onNavigateDayDate = (date, focusOnNavigatedDay)=>{\n navigateDay(date);\n if (focusOnNavigatedDay) {\n focusOnNextUpdate();\n }\n };\n const onNavigateMonthDate = (date, focusOnNavigatedDay)=>{\n if (focusOnNavigatedDay) {\n focusOnNextUpdate();\n }\n if (!focusOnNavigatedDay) {\n navigateMonth(date);\n return;\n }\n if (monthPickerOnly) {\n onDateSelected(date);\n }\n navigateDay(date);\n };\n const onHeaderSelect = getShowMonthPickerAsOverlay({\n isDayPickerVisible: isDayPickerVisibleProp,\n showMonthPickerAsOverlay: showMonthPickerAsOverlayProp\n }) ? ()=>{\n toggleDayMonthPickerVisibility();\n focusOnNextUpdate();\n } : undefined;\n const onGotoToday = ()=>{\n navigateDay(today);\n focusOnNextUpdate();\n };\n const onButtonKeyDown = (callback)=>{\n return (ev)=>{\n switch(ev.key){\n case Enter:\n case Space:\n callback();\n break;\n }\n };\n };\n const onDatePickerPopupKeyDown = (ev)=>{\n switch(ev.key){\n case Enter:\n ev.preventDefault();\n break;\n case Backspace:\n ev.preventDefault();\n break;\n case Escape:\n ev.stopPropagation();\n onDismiss === null || onDismiss === void 0 ? void 0 : onDismiss();\n break;\n case PageUp:\n if (ev.ctrlKey) {\n // go to next year\n navigateDay(addYears(navigatedDay, 1));\n } else {\n // go to next month\n navigateDay(addMonths(navigatedDay, 1));\n }\n ev.preventDefault();\n break;\n case PageDown:\n if (ev.ctrlKey) {\n // go to previous year\n navigateDay(addYears(navigatedDay, -1));\n } else {\n // go to previous month\n navigateDay(addMonths(navigatedDay, -1));\n }\n ev.preventDefault();\n break;\n default:\n break;\n }\n };\n const showMonthPickerAsOverlay = getShowMonthPickerAsOverlay(props);\n const monthPickerOnly = !showMonthPickerAsOverlay && !isDayPickerVisible;\n const classes = useCalendarStyles_unstable({\n className,\n isDayPickerVisible,\n isMonthPickerVisible,\n showWeekNumbers\n });\n let todayDateString = '';\n let selectedDateString = '';\n if (dateTimeFormatter && strings.todayDateFormatString) {\n todayDateString = strings.todayDateFormatString.replace('{0}', dateTimeFormatter.formatMonthDayYear(today, strings));\n }\n if (dateTimeFormatter && strings.selectedDateFormatString) {\n const dateStringFormatter = monthPickerOnly ? dateTimeFormatter.formatMonthYear : dateTimeFormatter.formatMonthDayYear;\n selectedDateString = strings.selectedDateFormatString.replace('{0}', dateStringFormatter(selectedDate, strings));\n }\n const selectionAndTodayString = selectedDateString + ', ' + todayDateString;\n return /*#__PURE__*/ React.createElement(\"div\", {\n id: id,\n ref: forwardedRef,\n role: \"group\",\n \"aria-label\": selectionAndTodayString,\n className: classes.root,\n onKeyDown: onDatePickerPopupKeyDown\n }, /*#__PURE__*/ React.createElement(\"div\", {\n className: classes.liveRegion,\n \"aria-live\": \"polite\",\n \"aria-atomic\": \"true\"\n }, /*#__PURE__*/ React.createElement(\"span\", null, selectedDateString)), isDayPickerVisible && /*#__PURE__*/ React.createElement(CalendarDay, {\n selectedDate: selectedDate,\n navigatedDate: navigatedDay,\n today: today,\n onSelectDate: onDateSelected,\n // eslint-disable-next-line react/jsx-no-bind\n onNavigateDate: onNavigateDayDate,\n onDismiss: onDismiss,\n firstDayOfWeek: firstDayOfWeek,\n dateRangeType: dateRangeType,\n strings: strings,\n // eslint-disable-next-line react/jsx-no-bind\n onHeaderSelect: onHeaderSelect,\n showWeekNumbers: showWeekNumbers,\n firstWeekOfYear: firstWeekOfYear,\n dateTimeFormatter: dateTimeFormatter,\n showSixWeeksByDefault: showSixWeeksByDefault,\n minDate: minDate,\n maxDate: maxDate,\n restrictedDates: restrictedDates,\n workWeekDays: workWeekDays,\n componentRef: dayPicker,\n showCloseButton: showCloseButton,\n allFocusable: allFocusable,\n ...calendarDayProps\n }), isDayPickerVisible && isMonthPickerVisible && /*#__PURE__*/ React.createElement(\"div\", {\n className: classes.divider\n }), isMonthPickerVisible ? /*#__PURE__*/ React.createElement(\"div\", {\n className: classes.monthPickerWrapper\n }, /*#__PURE__*/ React.createElement(CalendarMonth, {\n navigatedDate: navigatedMonth,\n selectedDate: navigatedDay,\n strings: strings,\n // eslint-disable-next-line react/jsx-no-bind\n onNavigateDate: onNavigateMonthDate,\n today: today,\n highlightCurrentMonth: highlightCurrentMonth,\n highlightSelectedMonth: highlightSelectedMonth,\n // eslint-disable-next-line react/jsx-no-bind\n onHeaderSelect: onHeaderSelect,\n dateTimeFormatter: dateTimeFormatter,\n minDate: minDate,\n maxDate: maxDate,\n componentRef: monthPicker,\n ...calendarMonthProps\n }), renderGoToTodayButton()) : renderGoToTodayButton());\n});\nCalendar.displayName = 'Calendar';\nfunction getShowMonthPickerAsOverlay({ isDayPickerVisible , showMonthPickerAsOverlay }) {\n const win = getWindow();\n return showMonthPickerAsOverlay || isDayPickerVisible && win && win.innerWidth <= MIN_SIZE_FORCE_OVERLAY;\n}\n"],"names":["Calendar","MIN_SIZE_FORCE_OVERLAY","defaultWorkWeekDays","DayOfWeek","Monday","Tuesday","Wednesday","Thursday","Friday","useDateState","value","today","Date","onSelectDate","selectedDate","setSelectedDate","useControllableState","defaultState","initialState","state","navigatedDay","setNavigatedDay","React","useState","navigatedMonth","setNavigatedMonth","lastSelectedDate","setLastSelectedDate","valueOf","navigateMonth","date","navigateDay","onDateSelected","selectedDateRangeArray","useVisibilityState","isDayPickerVisible","isDayPickerVisibleProp","isMonthPickerVisible","isMonthPickerVisibleProp","showMonthPickerAsOverlay","setIsMonthPickerVisible","getShowMonthPickerAsOverlay","undefined","setIsDayPickerVisible","toggleDayMonthPickerVisibility","useFocusLogic","componentRef","dayPicker","useRef","monthPicker","focusOnUpdate","focus","useCallback","current","focusAsync","useImperativeHandle","useEffect","focusOnNextUpdate","forwardRef","props","forwardedRef","allFocusable","calendarDayProps","calendarMonthProps","className","dateRangeType","DateRangeType","Day","dateTimeFormatter","DEFAULT_DATE_FORMATTING","firstDayOfWeek","Sunday","firstWeekOfYear","FirstWeekOfYear","FirstDay","highlightCurrentMonth","highlightSelectedMonth","id","maxDate","minDate","onDismiss","restrictedDates","showCloseButton","showGoToToday","showMonthPickerAsOverlayProp","showSixWeeksByDefault","showWeekNumbers","strings","DEFAULT_CALENDAR_STRINGS","workWeekDays","renderGoToTodayButton","goTodayEnabled","getFullYear","getMonth","createElement","classes","goTodayButton","onClick","onGotoToday","onKeyDown","onButtonKeyDown","type","disabled","goToToday","onNavigateDayDate","focusOnNavigatedDay","onNavigateMonthDate","monthPickerOnly","onHeaderSelect","callback","ev","key","Enter","Space","onDatePickerPopupKeyDown","preventDefault","Backspace","Escape","stopPropagation","PageUp","ctrlKey","addYears","addMonths","PageDown","useCalendarStyles_unstable","todayDateString","selectedDateString","todayDateFormatString","replace","formatMonthDayYear","selectedDateFormatString","dateStringFormatter","formatMonthYear","selectionAndTodayString","ref","role","root","liveRegion","CalendarDay","navigatedDate","onNavigateDate","divider","monthPickerWrapper","CalendarMonth","displayName","win","getWindow","innerWidth"],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@fluentui/react-datepicker-compat",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.9",
|
|
4
4
|
"description": "React components for building web experiences",
|
|
5
5
|
"main": "lib-commonjs/index.js",
|
|
6
6
|
"module": "lib/index.js",
|
|
@@ -36,17 +36,17 @@
|
|
|
36
36
|
},
|
|
37
37
|
"dependencies": {
|
|
38
38
|
"@fluentui/keyboard-keys": "^9.0.3",
|
|
39
|
-
"@fluentui/react-field": "^9.1.
|
|
39
|
+
"@fluentui/react-field": "^9.1.9",
|
|
40
40
|
"@fluentui/react-icons": "^2.0.203",
|
|
41
|
-
"@fluentui/react-input": "^9.4.
|
|
42
|
-
"@fluentui/react-jsx-runtime": "9.0.0-alpha.
|
|
43
|
-
"@fluentui/react-popover": "^9.7.
|
|
44
|
-
"@fluentui/react-portal": "^9.2.
|
|
45
|
-
"@fluentui/react-positioning": "^9.7.
|
|
41
|
+
"@fluentui/react-input": "^9.4.19",
|
|
42
|
+
"@fluentui/react-jsx-runtime": "9.0.0-alpha.9",
|
|
43
|
+
"@fluentui/react-popover": "^9.7.3",
|
|
44
|
+
"@fluentui/react-portal": "^9.2.16",
|
|
45
|
+
"@fluentui/react-positioning": "^9.7.2",
|
|
46
46
|
"@fluentui/react-shared-contexts": "^9.5.1",
|
|
47
|
-
"@fluentui/react-tabster": "^9.
|
|
47
|
+
"@fluentui/react-tabster": "^9.9.1",
|
|
48
48
|
"@fluentui/react-theme": "^9.1.9",
|
|
49
|
-
"@fluentui/react-utilities": "^9.
|
|
49
|
+
"@fluentui/react-utilities": "^9.10.0",
|
|
50
50
|
"@griffel/react": "^1.5.7",
|
|
51
51
|
"@swc/helpers": "^0.4.14"
|
|
52
52
|
},
|