@fluentui/react-calendar-compat 0.0.0-nightly-20231023-0416.1 → 0.0.2
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 +9 -51
- package/CHANGELOG.md +7 -14
- package/dist/index.d.ts +1376 -0
- package/lib/Calendar.js +1 -0
- package/lib/Calendar.js.map +1 -0
- package/lib/CalendarDay.js +1 -0
- package/lib/CalendarDay.js.map +1 -0
- package/lib/CalendarDayGrid.js +1 -0
- package/lib/CalendarDayGrid.js.map +1 -0
- package/lib/CalendarMonth.js +1 -0
- package/lib/CalendarMonth.js.map +1 -0
- package/lib/CalendarPicker.js +1 -0
- package/lib/CalendarPicker.js.map +1 -0
- package/lib/CalendarYear.js +1 -0
- package/lib/CalendarYear.js.map +1 -0
- package/lib/components/Calendar/Calendar.js +302 -0
- package/lib/components/Calendar/Calendar.js.map +1 -0
- package/lib/components/Calendar/Calendar.types.js +10 -0
- package/lib/components/Calendar/Calendar.types.js.map +1 -0
- package/lib/components/Calendar/defaults.js +2 -0
- package/lib/components/Calendar/defaults.js.map +1 -0
- package/lib/components/Calendar/index.js +4 -0
- package/lib/components/Calendar/index.js.map +1 -0
- package/lib/components/Calendar/useCalendarStyles.styles.js +167 -0
- package/lib/components/Calendar/useCalendarStyles.styles.js.map +1 -0
- package/lib/components/CalendarDay/CalendarDay.js +111 -0
- package/lib/components/CalendarDay/CalendarDay.js.map +1 -0
- package/lib/components/CalendarDay/CalendarDay.types.js +1 -0
- package/lib/components/CalendarDay/CalendarDay.types.js.map +1 -0
- package/lib/components/CalendarDay/index.js +3 -0
- package/lib/components/CalendarDay/index.js.map +1 -0
- package/lib/components/CalendarDay/useCalendarDayStyles.styles.js +180 -0
- package/lib/components/CalendarDay/useCalendarDayStyles.styles.js.map +1 -0
- package/lib/components/CalendarDayGrid/CalendarDayGrid.js +168 -0
- package/lib/components/CalendarDayGrid/CalendarDayGrid.js.map +1 -0
- package/lib/components/CalendarDayGrid/CalendarDayGrid.types.js +1 -0
- package/lib/components/CalendarDayGrid/CalendarDayGrid.types.js.map +1 -0
- package/lib/components/CalendarDayGrid/CalendarGridDayCell.js +164 -0
- package/lib/components/CalendarDayGrid/CalendarGridDayCell.js.map +1 -0
- package/lib/components/CalendarDayGrid/CalendarGridRow.js +26 -0
- package/lib/components/CalendarDayGrid/CalendarGridRow.js.map +1 -0
- package/lib/components/CalendarDayGrid/CalendarMonthHeaderRow.js +36 -0
- package/lib/components/CalendarDayGrid/CalendarMonthHeaderRow.js.map +1 -0
- package/lib/components/CalendarDayGrid/index.js +4 -0
- package/lib/components/CalendarDayGrid/index.js.map +1 -0
- package/lib/components/CalendarDayGrid/useCalendarDayGridStyles.styles.js +437 -0
- package/lib/components/CalendarDayGrid/useCalendarDayGridStyles.styles.js.map +1 -0
- package/lib/components/CalendarDayGrid/useWeekCornerStyles.styles.js +98 -0
- package/lib/components/CalendarDayGrid/useWeekCornerStyles.styles.js.map +1 -0
- package/lib/components/CalendarDayGrid/useWeeks.js +45 -0
- package/lib/components/CalendarDayGrid/useWeeks.js.map +1 -0
- package/lib/components/CalendarMonth/CalendarMonth.js +263 -0
- package/lib/components/CalendarMonth/CalendarMonth.js.map +1 -0
- package/lib/components/CalendarMonth/CalendarMonth.types.js +1 -0
- package/lib/components/CalendarMonth/CalendarMonth.types.js.map +1 -0
- package/lib/components/CalendarMonth/index.js +3 -0
- package/lib/components/CalendarMonth/index.js.map +1 -0
- package/lib/components/CalendarMonth/useCalendarMonthStyles.js +8 -0
- package/lib/components/CalendarMonth/useCalendarMonthStyles.js.map +1 -0
- package/lib/components/CalendarPicker/CalendarPicker.types.js +1 -0
- package/lib/components/CalendarPicker/CalendarPicker.types.js.map +1 -0
- package/lib/components/CalendarPicker/index.js +2 -0
- package/lib/components/CalendarPicker/index.js.map +1 -0
- package/lib/components/CalendarPicker/useCalendarPickerStyles.styles.js +371 -0
- package/lib/components/CalendarPicker/useCalendarPickerStyles.styles.js.map +1 -0
- package/lib/components/CalendarYear/CalendarYear.js +298 -0
- package/lib/components/CalendarYear/CalendarYear.js.map +1 -0
- package/lib/components/CalendarYear/CalendarYear.types.js +1 -0
- package/lib/components/CalendarYear/CalendarYear.types.js.map +1 -0
- package/lib/components/CalendarYear/index.js +3 -0
- package/lib/components/CalendarYear/index.js.map +1 -0
- package/lib/components/CalendarYear/useCalendarYearStyles.styles.js +10 -0
- package/lib/components/CalendarYear/useCalendarYearStyles.styles.js.map +1 -0
- package/lib/index.js +7 -0
- package/lib/index.js.map +1 -0
- package/lib/utils/animations.js +97 -0
- package/lib/utils/animations.js.map +1 -0
- package/lib/utils/constants.js +62 -0
- package/lib/utils/constants.js.map +1 -0
- package/lib/utils/dateFormatting/dateFormatting.defaults.js +95 -0
- package/lib/utils/dateFormatting/dateFormatting.defaults.js.map +1 -0
- package/lib/utils/dateFormatting/dateFormatting.types.js +1 -0
- package/lib/utils/dateFormatting/dateFormatting.types.js.map +1 -0
- package/lib/utils/dateFormatting/index.js +2 -0
- package/lib/utils/dateFormatting/index.js.map +1 -0
- package/lib/utils/dateGrid/dateGrid.types.js +1 -0
- package/lib/utils/dateGrid/dateGrid.types.js.map +1 -0
- package/lib/utils/dateGrid/findAvailableDate.js +22 -0
- package/lib/utils/dateGrid/findAvailableDate.js.map +1 -0
- package/lib/utils/dateGrid/getBoundedDateRange.js +18 -0
- package/lib/utils/dateGrid/getBoundedDateRange.js.map +1 -0
- package/lib/utils/dateGrid/getDateRangeTypeToUse.js +16 -0
- package/lib/utils/dateGrid/getDateRangeTypeToUse.js.map +1 -0
- package/lib/utils/dateGrid/getDayGrid.js +71 -0
- package/lib/utils/dateGrid/getDayGrid.js.map +1 -0
- package/lib/utils/dateGrid/index.js +5 -0
- package/lib/utils/dateGrid/index.js.map +1 -0
- package/lib/utils/dateGrid/isAfterMaxDate.js +9 -0
- package/lib/utils/dateGrid/isAfterMaxDate.js.map +1 -0
- package/lib/utils/dateGrid/isBeforeMinDate.js +9 -0
- package/lib/utils/dateGrid/isBeforeMinDate.js.map +1 -0
- package/lib/utils/dateGrid/isContiguous.js +18 -0
- package/lib/utils/dateGrid/isContiguous.js.map +1 -0
- package/lib/utils/dateGrid/isRestrictedDate.js +15 -0
- package/lib/utils/dateGrid/isRestrictedDate.js.map +1 -0
- package/lib/utils/dateMath/dateMath.js +339 -0
- package/lib/utils/dateMath/dateMath.js.map +1 -0
- package/lib/utils/dateMath/index.js +1 -0
- package/lib/utils/dateMath/index.js.map +1 -0
- package/lib/utils/dom.js +8 -0
- package/lib/utils/dom.js.map +1 -0
- package/lib/utils/focus.js +26 -0
- package/lib/utils/focus.js.map +1 -0
- package/lib/utils/index.js +7 -0
- package/lib/utils/index.js.map +1 -0
- package/lib-commonjs/Calendar.js +6 -0
- package/lib-commonjs/Calendar.js.map +1 -0
- package/lib-commonjs/CalendarDay.js +6 -0
- package/lib-commonjs/CalendarDay.js.map +1 -0
- package/lib-commonjs/CalendarDayGrid.js +6 -0
- package/lib-commonjs/CalendarDayGrid.js.map +1 -0
- package/lib-commonjs/CalendarMonth.js +6 -0
- package/lib-commonjs/CalendarMonth.js.map +1 -0
- package/lib-commonjs/CalendarPicker.js +6 -0
- package/lib-commonjs/CalendarPicker.js.map +1 -0
- package/lib-commonjs/CalendarYear.js +6 -0
- package/lib-commonjs/CalendarYear.js.map +1 -0
- package/lib-commonjs/components/Calendar/Calendar.js +311 -0
- package/lib-commonjs/components/Calendar/Calendar.js.map +1 -0
- package/lib-commonjs/components/Calendar/Calendar.types.js +21 -0
- package/lib-commonjs/components/Calendar/Calendar.types.js.map +1 -0
- package/lib-commonjs/components/Calendar/defaults.js +12 -0
- package/lib-commonjs/components/Calendar/defaults.js.map +1 -0
- package/lib-commonjs/components/Calendar/index.js +15 -0
- package/lib-commonjs/components/Calendar/index.js.map +1 -0
- package/lib-commonjs/components/Calendar/useCalendarStyles.styles.js +339 -0
- package/lib-commonjs/components/Calendar/useCalendarStyles.styles.js.map +1 -0
- package/lib-commonjs/components/CalendarDay/CalendarDay.js +120 -0
- package/lib-commonjs/components/CalendarDay/CalendarDay.js.map +1 -0
- package/lib-commonjs/components/CalendarDay/CalendarDay.types.js +6 -0
- package/lib-commonjs/components/CalendarDay/CalendarDay.types.js.map +1 -0
- package/lib-commonjs/components/CalendarDay/index.js +8 -0
- package/lib-commonjs/components/CalendarDay/index.js.map +1 -0
- package/lib-commonjs/components/CalendarDay/useCalendarDayStyles.styles.js +357 -0
- package/lib-commonjs/components/CalendarDay/useCalendarDayStyles.styles.js.map +1 -0
- package/lib-commonjs/components/CalendarDayGrid/CalendarDayGrid.js +179 -0
- package/lib-commonjs/components/CalendarDayGrid/CalendarDayGrid.js.map +1 -0
- package/lib-commonjs/components/CalendarDayGrid/CalendarDayGrid.types.js +6 -0
- package/lib-commonjs/components/CalendarDayGrid/CalendarDayGrid.types.js.map +1 -0
- package/lib-commonjs/components/CalendarDayGrid/CalendarGridDayCell.js +173 -0
- package/lib-commonjs/components/CalendarDayGrid/CalendarGridDayCell.js.map +1 -0
- package/lib-commonjs/components/CalendarDayGrid/CalendarGridRow.js +35 -0
- package/lib-commonjs/components/CalendarDayGrid/CalendarGridRow.js.map +1 -0
- package/lib-commonjs/components/CalendarDayGrid/CalendarMonthHeaderRow.js +45 -0
- package/lib-commonjs/components/CalendarDayGrid/CalendarMonthHeaderRow.js.map +1 -0
- package/lib-commonjs/components/CalendarDayGrid/index.js +22 -0
- package/lib-commonjs/components/CalendarDayGrid/index.js.map +1 -0
- package/lib-commonjs/components/CalendarDayGrid/useCalendarDayGridStyles.styles.js +890 -0
- package/lib-commonjs/components/CalendarDayGrid/useCalendarDayGridStyles.styles.js.map +1 -0
- package/lib-commonjs/components/CalendarDayGrid/useWeekCornerStyles.styles.js +105 -0
- package/lib-commonjs/components/CalendarDayGrid/useWeekCornerStyles.styles.js.map +1 -0
- package/lib-commonjs/components/CalendarDayGrid/useWeeks.js +54 -0
- package/lib-commonjs/components/CalendarDayGrid/useWeeks.js.map +1 -0
- package/lib-commonjs/components/CalendarMonth/CalendarMonth.js +272 -0
- package/lib-commonjs/components/CalendarMonth/CalendarMonth.js.map +1 -0
- package/lib-commonjs/components/CalendarMonth/CalendarMonth.types.js +6 -0
- package/lib-commonjs/components/CalendarMonth/CalendarMonth.types.js.map +1 -0
- package/lib-commonjs/components/CalendarMonth/index.js +8 -0
- package/lib-commonjs/components/CalendarMonth/index.js.map +1 -0
- package/lib-commonjs/components/CalendarMonth/useCalendarMonthStyles.js +14 -0
- package/lib-commonjs/components/CalendarMonth/useCalendarMonthStyles.js.map +1 -0
- package/lib-commonjs/components/CalendarPicker/CalendarPicker.types.js +4 -0
- package/lib-commonjs/components/CalendarPicker/CalendarPicker.types.js.map +1 -0
- package/lib-commonjs/components/CalendarPicker/index.js +7 -0
- package/lib-commonjs/components/CalendarPicker/index.js.map +1 -0
- package/lib-commonjs/components/CalendarPicker/useCalendarPickerStyles.styles.js +742 -0
- package/lib-commonjs/components/CalendarPicker/useCalendarPickerStyles.styles.js.map +1 -0
- package/lib-commonjs/components/CalendarYear/CalendarYear.js +307 -0
- package/lib-commonjs/components/CalendarYear/CalendarYear.js.map +1 -0
- package/lib-commonjs/components/CalendarYear/CalendarYear.types.js +6 -0
- package/lib-commonjs/components/CalendarYear/CalendarYear.types.js.map +1 -0
- package/lib-commonjs/components/CalendarYear/index.js +8 -0
- package/lib-commonjs/components/CalendarYear/index.js.map +1 -0
- package/lib-commonjs/components/CalendarYear/useCalendarYearStyles.styles.js +14 -0
- package/lib-commonjs/components/CalendarYear/useCalendarYearStyles.styles.js.map +1 -0
- package/lib-commonjs/index.js +154 -0
- package/lib-commonjs/index.js.map +1 -0
- package/lib-commonjs/utils/animations.js +154 -0
- package/lib-commonjs/utils/animations.js.map +1 -0
- package/lib-commonjs/utils/constants.js +92 -0
- package/lib-commonjs/utils/constants.js.map +1 -0
- package/lib-commonjs/utils/dateFormatting/dateFormatting.defaults.js +116 -0
- package/lib-commonjs/utils/dateFormatting/dateFormatting.defaults.js.map +1 -0
- package/lib-commonjs/utils/dateFormatting/dateFormatting.types.js +4 -0
- package/lib-commonjs/utils/dateFormatting/dateFormatting.types.js.map +1 -0
- package/lib-commonjs/utils/dateFormatting/index.js +7 -0
- package/lib-commonjs/utils/dateFormatting/index.js.map +1 -0
- package/lib-commonjs/utils/dateGrid/dateGrid.types.js +4 -0
- package/lib-commonjs/utils/dateGrid/dateGrid.types.js.map +1 -0
- package/lib-commonjs/utils/dateGrid/findAvailableDate.js +29 -0
- package/lib-commonjs/utils/dateGrid/findAvailableDate.js.map +1 -0
- package/lib-commonjs/utils/dateGrid/getBoundedDateRange.js +23 -0
- package/lib-commonjs/utils/dateGrid/getBoundedDateRange.js.map +1 -0
- package/lib-commonjs/utils/dateGrid/getDateRangeTypeToUse.js +20 -0
- package/lib-commonjs/utils/dateGrid/getDateRangeTypeToUse.js.map +1 -0
- package/lib-commonjs/utils/dateGrid/getDayGrid.js +76 -0
- package/lib-commonjs/utils/dateGrid/getDayGrid.js.map +1 -0
- package/lib-commonjs/utils/dateGrid/index.js +10 -0
- package/lib-commonjs/utils/dateGrid/index.js.map +1 -0
- package/lib-commonjs/utils/dateGrid/isAfterMaxDate.js +15 -0
- package/lib-commonjs/utils/dateGrid/isAfterMaxDate.js.map +1 -0
- package/lib-commonjs/utils/dateGrid/isBeforeMinDate.js +15 -0
- package/lib-commonjs/utils/dateGrid/isBeforeMinDate.js.map +1 -0
- package/lib-commonjs/utils/dateGrid/isContiguous.js +28 -0
- package/lib-commonjs/utils/dateGrid/isContiguous.js.map +1 -0
- package/lib-commonjs/utils/dateGrid/isRestrictedDate.js +21 -0
- package/lib-commonjs/utils/dateGrid/isRestrictedDate.js.map +1 -0
- package/lib-commonjs/utils/dateMath/dateMath.js +308 -0
- package/lib-commonjs/utils/dateMath/dateMath.js.map +1 -0
- package/lib-commonjs/utils/dateMath/index.js +6 -0
- package/lib-commonjs/utils/dateMath/index.js.map +1 -0
- package/lib-commonjs/utils/dom.js +18 -0
- package/lib-commonjs/utils/dom.js.map +1 -0
- package/lib-commonjs/utils/focus.js +31 -0
- package/lib-commonjs/utils/focus.js.map +1 -0
- package/lib-commonjs/utils/index.js +12 -0
- package/lib-commonjs/utils/index.js.map +1 -0
- package/package.json +15 -10
package/lib/Calendar.js
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
export * from './components/Calendar/index';
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"sources":["Calendar.ts"],"sourcesContent":["export * from './components/Calendar/index';\n"],"names":[],"mappings":"AAAA,cAAc,8BAA8B"}
|
@@ -0,0 +1 @@
|
|
1
|
+
export * from './components/CalendarDay/index';
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"sources":["CalendarDay.ts"],"sourcesContent":["export * from './components/CalendarDay/index';\n"],"names":[],"mappings":"AAAA,cAAc,iCAAiC"}
|
@@ -0,0 +1 @@
|
|
1
|
+
export * from './components/CalendarDayGrid/index';
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"sources":["CalendarDayGrid.ts"],"sourcesContent":["export * from './components/CalendarDayGrid/index';\n"],"names":[],"mappings":"AAAA,cAAc,qCAAqC"}
|
@@ -0,0 +1 @@
|
|
1
|
+
export * from './components/CalendarMonth/index';
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"sources":["CalendarMonth.ts"],"sourcesContent":["export * from './components/CalendarMonth/index';\n"],"names":[],"mappings":"AAAA,cAAc,mCAAmC"}
|
@@ -0,0 +1 @@
|
|
1
|
+
export * from './components/CalendarPicker/index';
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"sources":["CalendarPicker.ts"],"sourcesContent":["export * from './components/CalendarPicker/index';\n"],"names":[],"mappings":"AAAA,cAAc,oCAAoC"}
|
@@ -0,0 +1 @@
|
|
1
|
+
export * from './components/CalendarYear/index';
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"sources":["CalendarYear.ts"],"sourcesContent":["export * from './components/CalendarYear/index';\n"],"names":[],"mappings":"AAAA,cAAc,kCAAkC"}
|
@@ -0,0 +1,302 @@
|
|
1
|
+
import * as React from 'react';
|
2
|
+
import { Backspace, Enter, Escape, PageDown, PageUp, Space } from '@fluentui/keyboard-keys';
|
3
|
+
import { useControllableState } from '@fluentui/react-utilities';
|
4
|
+
import { addMonths, addYears, DateRangeType, DayOfWeek, DEFAULT_CALENDAR_STRINGS, DEFAULT_DATE_FORMATTING, FirstWeekOfYear, focusAsync, getWindow } from '../../utils';
|
5
|
+
import { CalendarDay } from '../CalendarDay/CalendarDay';
|
6
|
+
import { CalendarMonth } from '../CalendarMonth/CalendarMonth';
|
7
|
+
import { useCalendarStyles_unstable } from './useCalendarStyles.styles';
|
8
|
+
const MIN_SIZE_FORCE_OVERLAY = 440;
|
9
|
+
const defaultWorkWeekDays = [
|
10
|
+
DayOfWeek.Monday,
|
11
|
+
DayOfWeek.Tuesday,
|
12
|
+
DayOfWeek.Wednesday,
|
13
|
+
DayOfWeek.Thursday,
|
14
|
+
DayOfWeek.Friday
|
15
|
+
];
|
16
|
+
function useDateState({ value, today = new Date(), onSelectDate }) {
|
17
|
+
/** The currently selected date in the calendar */ const [selectedDate, setSelectedDate] = useControllableState({
|
18
|
+
defaultState: today,
|
19
|
+
initialState: today,
|
20
|
+
state: value
|
21
|
+
});
|
22
|
+
/** The currently focused date in the day picker, but not necessarily selected */ const [navigatedDay = today, setNavigatedDay] = React.useState(value);
|
23
|
+
/** The currently focused date in the month picker, but not necessarily selected */ const [navigatedMonth = today, setNavigatedMonth] = React.useState(value);
|
24
|
+
/** If using a controlled value, when that value changes, navigate to that date */ const [lastSelectedDate = today, setLastSelectedDate] = React.useState(value);
|
25
|
+
if (value && lastSelectedDate.valueOf() !== value.valueOf()) {
|
26
|
+
setNavigatedDay(value);
|
27
|
+
setNavigatedMonth(value);
|
28
|
+
setLastSelectedDate(value);
|
29
|
+
}
|
30
|
+
const navigateMonth = (date)=>{
|
31
|
+
setNavigatedMonth(date);
|
32
|
+
};
|
33
|
+
const navigateDay = (date)=>{
|
34
|
+
setNavigatedMonth(date);
|
35
|
+
setNavigatedDay(date);
|
36
|
+
};
|
37
|
+
const onDateSelected = (date, selectedDateRangeArray)=>{
|
38
|
+
setNavigatedMonth(date);
|
39
|
+
setNavigatedDay(date);
|
40
|
+
setSelectedDate(date);
|
41
|
+
onSelectDate === null || onSelectDate === void 0 ? void 0 : onSelectDate(date, selectedDateRangeArray);
|
42
|
+
};
|
43
|
+
return [
|
44
|
+
selectedDate,
|
45
|
+
navigatedDay,
|
46
|
+
navigatedMonth,
|
47
|
+
onDateSelected,
|
48
|
+
navigateDay,
|
49
|
+
navigateMonth
|
50
|
+
];
|
51
|
+
}
|
52
|
+
function useVisibilityState({ isDayPickerVisible: isDayPickerVisibleProp, isMonthPickerVisible: isMonthPickerVisibleProp, showMonthPickerAsOverlay }) {
|
53
|
+
/** State used to show/hide month picker */ const [isMonthPickerVisible, setIsMonthPickerVisible] = useControllableState({
|
54
|
+
defaultState: false,
|
55
|
+
initialState: true,
|
56
|
+
state: getShowMonthPickerAsOverlay({
|
57
|
+
isDayPickerVisible: isDayPickerVisibleProp,
|
58
|
+
showMonthPickerAsOverlay
|
59
|
+
}) ? undefined : isMonthPickerVisibleProp
|
60
|
+
});
|
61
|
+
/** State used to show/hide day picker */ const [isDayPickerVisible, setIsDayPickerVisible] = useControllableState({
|
62
|
+
defaultState: true,
|
63
|
+
initialState: true,
|
64
|
+
state: getShowMonthPickerAsOverlay({
|
65
|
+
isDayPickerVisible: isDayPickerVisibleProp,
|
66
|
+
showMonthPickerAsOverlay
|
67
|
+
}) ? undefined : isDayPickerVisibleProp
|
68
|
+
});
|
69
|
+
const toggleDayMonthPickerVisibility = ()=>{
|
70
|
+
setIsMonthPickerVisible(!isMonthPickerVisible);
|
71
|
+
setIsDayPickerVisible(!isDayPickerVisible);
|
72
|
+
};
|
73
|
+
return [
|
74
|
+
isMonthPickerVisible,
|
75
|
+
isDayPickerVisible,
|
76
|
+
toggleDayMonthPickerVisibility
|
77
|
+
];
|
78
|
+
}
|
79
|
+
function useFocusLogic({ componentRef }, isDayPickerVisible, isMonthPickerVisible) {
|
80
|
+
const dayPicker = React.useRef(null);
|
81
|
+
const monthPicker = React.useRef(null);
|
82
|
+
const focusOnUpdate = React.useRef(false);
|
83
|
+
const focus = React.useCallback(()=>{
|
84
|
+
if (isDayPickerVisible && dayPicker.current) {
|
85
|
+
focusAsync(dayPicker.current);
|
86
|
+
} else if (isMonthPickerVisible && monthPicker.current) {
|
87
|
+
focusAsync(monthPicker.current);
|
88
|
+
}
|
89
|
+
}, [
|
90
|
+
isDayPickerVisible,
|
91
|
+
isMonthPickerVisible
|
92
|
+
]);
|
93
|
+
React.useImperativeHandle(componentRef, ()=>({
|
94
|
+
focus
|
95
|
+
}), [
|
96
|
+
focus
|
97
|
+
]);
|
98
|
+
React.useEffect(()=>{
|
99
|
+
if (focusOnUpdate.current) {
|
100
|
+
focus();
|
101
|
+
focusOnUpdate.current = false;
|
102
|
+
}
|
103
|
+
});
|
104
|
+
const focusOnNextUpdate = ()=>{
|
105
|
+
focusOnUpdate.current = true;
|
106
|
+
};
|
107
|
+
return [
|
108
|
+
dayPicker,
|
109
|
+
monthPicker,
|
110
|
+
focusOnNextUpdate
|
111
|
+
];
|
112
|
+
}
|
113
|
+
/**
|
114
|
+
* @internal
|
115
|
+
*/ export const Calendar = /*#__PURE__*/ React.forwardRef((props, forwardedRef)=>{
|
116
|
+
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;
|
117
|
+
const [selectedDate, navigatedDay, navigatedMonth, onDateSelected, navigateDay, navigateMonth] = useDateState({
|
118
|
+
onSelectDate,
|
119
|
+
value,
|
120
|
+
today
|
121
|
+
});
|
122
|
+
const [isMonthPickerVisible, isDayPickerVisible, toggleDayMonthPickerVisibility] = useVisibilityState({
|
123
|
+
isDayPickerVisible: isDayPickerVisibleProp,
|
124
|
+
isMonthPickerVisible: isMonthPickerVisibleProp,
|
125
|
+
showMonthPickerAsOverlay: showMonthPickerAsOverlayProp
|
126
|
+
});
|
127
|
+
const [dayPicker, monthPicker, focusOnNextUpdate] = useFocusLogic({
|
128
|
+
componentRef
|
129
|
+
}, isDayPickerVisible, isMonthPickerVisible);
|
130
|
+
const renderGoToTodayButton = ()=>{
|
131
|
+
let goTodayEnabled = showGoToToday;
|
132
|
+
if (goTodayEnabled && today) {
|
133
|
+
goTodayEnabled = navigatedDay.getFullYear() !== today.getFullYear() || navigatedDay.getMonth() !== today.getMonth() || navigatedMonth.getFullYear() !== today.getFullYear() || navigatedMonth.getMonth() !== today.getMonth();
|
134
|
+
}
|
135
|
+
return showGoToToday && /*#__PURE__*/ React.createElement("button", {
|
136
|
+
className: classes.goTodayButton,
|
137
|
+
onClick: onGotoToday,
|
138
|
+
onKeyDown: onButtonKeyDown(onGotoToday),
|
139
|
+
type: "button",
|
140
|
+
disabled: !goTodayEnabled
|
141
|
+
}, strings.goToToday);
|
142
|
+
};
|
143
|
+
const onNavigateDayDate = (date, focusOnNavigatedDay)=>{
|
144
|
+
navigateDay(date);
|
145
|
+
if (focusOnNavigatedDay) {
|
146
|
+
focusOnNextUpdate();
|
147
|
+
}
|
148
|
+
};
|
149
|
+
const onNavigateMonthDate = (date, focusOnNavigatedDay)=>{
|
150
|
+
if (focusOnNavigatedDay) {
|
151
|
+
focusOnNextUpdate();
|
152
|
+
}
|
153
|
+
if (!focusOnNavigatedDay) {
|
154
|
+
navigateMonth(date);
|
155
|
+
return;
|
156
|
+
}
|
157
|
+
if (monthPickerOnly) {
|
158
|
+
onDateSelected(date);
|
159
|
+
}
|
160
|
+
navigateDay(date);
|
161
|
+
};
|
162
|
+
const onHeaderSelect = getShowMonthPickerAsOverlay({
|
163
|
+
isDayPickerVisible: isDayPickerVisibleProp,
|
164
|
+
showMonthPickerAsOverlay: showMonthPickerAsOverlayProp
|
165
|
+
}) ? ()=>{
|
166
|
+
toggleDayMonthPickerVisibility();
|
167
|
+
focusOnNextUpdate();
|
168
|
+
} : undefined;
|
169
|
+
const onGotoToday = ()=>{
|
170
|
+
navigateDay(today);
|
171
|
+
focusOnNextUpdate();
|
172
|
+
};
|
173
|
+
const onButtonKeyDown = (callback)=>{
|
174
|
+
return (ev)=>{
|
175
|
+
switch(ev.key){
|
176
|
+
case Enter:
|
177
|
+
case Space:
|
178
|
+
callback();
|
179
|
+
break;
|
180
|
+
}
|
181
|
+
};
|
182
|
+
};
|
183
|
+
const onDatePickerPopupKeyDown = (ev)=>{
|
184
|
+
switch(ev.key){
|
185
|
+
case Enter:
|
186
|
+
ev.preventDefault();
|
187
|
+
break;
|
188
|
+
case Backspace:
|
189
|
+
ev.preventDefault();
|
190
|
+
break;
|
191
|
+
case Escape:
|
192
|
+
ev.stopPropagation();
|
193
|
+
onDismiss === null || onDismiss === void 0 ? void 0 : onDismiss();
|
194
|
+
break;
|
195
|
+
case PageUp:
|
196
|
+
if (ev.ctrlKey) {
|
197
|
+
// go to next year
|
198
|
+
navigateDay(addYears(navigatedDay, 1));
|
199
|
+
} else {
|
200
|
+
// go to next month
|
201
|
+
navigateDay(addMonths(navigatedDay, 1));
|
202
|
+
}
|
203
|
+
ev.preventDefault();
|
204
|
+
break;
|
205
|
+
case PageDown:
|
206
|
+
if (ev.ctrlKey) {
|
207
|
+
// go to previous year
|
208
|
+
navigateDay(addYears(navigatedDay, -1));
|
209
|
+
} else {
|
210
|
+
// go to previous month
|
211
|
+
navigateDay(addMonths(navigatedDay, -1));
|
212
|
+
}
|
213
|
+
ev.preventDefault();
|
214
|
+
break;
|
215
|
+
default:
|
216
|
+
break;
|
217
|
+
}
|
218
|
+
};
|
219
|
+
const showMonthPickerAsOverlay = getShowMonthPickerAsOverlay({
|
220
|
+
isDayPickerVisible: isDayPickerVisibleProp,
|
221
|
+
showMonthPickerAsOverlay: showMonthPickerAsOverlayProp
|
222
|
+
});
|
223
|
+
const monthPickerOnly = !showMonthPickerAsOverlay && !isDayPickerVisible;
|
224
|
+
const classes = useCalendarStyles_unstable({
|
225
|
+
className,
|
226
|
+
isDayPickerVisible,
|
227
|
+
isMonthPickerVisible,
|
228
|
+
showWeekNumbers
|
229
|
+
});
|
230
|
+
let todayDateString = '';
|
231
|
+
let selectedDateString = '';
|
232
|
+
if (dateTimeFormatter && strings.todayDateFormatString) {
|
233
|
+
todayDateString = strings.todayDateFormatString.replace('{0}', dateTimeFormatter.formatMonthDayYear(today, strings));
|
234
|
+
}
|
235
|
+
if (dateTimeFormatter && strings.selectedDateFormatString) {
|
236
|
+
const dateStringFormatter = monthPickerOnly ? dateTimeFormatter.formatMonthYear : dateTimeFormatter.formatMonthDayYear;
|
237
|
+
selectedDateString = strings.selectedDateFormatString.replace('{0}', dateStringFormatter(selectedDate, strings));
|
238
|
+
}
|
239
|
+
const selectionAndTodayString = selectedDateString + ', ' + todayDateString;
|
240
|
+
return /*#__PURE__*/ React.createElement("div", {
|
241
|
+
id: id,
|
242
|
+
ref: forwardedRef,
|
243
|
+
role: "group",
|
244
|
+
"aria-label": selectionAndTodayString,
|
245
|
+
className: classes.root,
|
246
|
+
onKeyDown: onDatePickerPopupKeyDown
|
247
|
+
}, /*#__PURE__*/ React.createElement("div", {
|
248
|
+
className: classes.liveRegion,
|
249
|
+
"aria-live": "polite",
|
250
|
+
"aria-atomic": "true"
|
251
|
+
}, /*#__PURE__*/ React.createElement("span", null, selectedDateString)), isDayPickerVisible && /*#__PURE__*/ React.createElement(CalendarDay, {
|
252
|
+
selectedDate: selectedDate,
|
253
|
+
navigatedDate: navigatedDay,
|
254
|
+
today: today,
|
255
|
+
onSelectDate: onDateSelected,
|
256
|
+
// eslint-disable-next-line react/jsx-no-bind
|
257
|
+
onNavigateDate: onNavigateDayDate,
|
258
|
+
onDismiss: onDismiss,
|
259
|
+
firstDayOfWeek: firstDayOfWeek,
|
260
|
+
dateRangeType: dateRangeType,
|
261
|
+
strings: strings,
|
262
|
+
// eslint-disable-next-line react/jsx-no-bind
|
263
|
+
onHeaderSelect: onHeaderSelect,
|
264
|
+
showWeekNumbers: showWeekNumbers,
|
265
|
+
firstWeekOfYear: firstWeekOfYear,
|
266
|
+
dateTimeFormatter: dateTimeFormatter,
|
267
|
+
showSixWeeksByDefault: showSixWeeksByDefault,
|
268
|
+
minDate: minDate,
|
269
|
+
maxDate: maxDate,
|
270
|
+
restrictedDates: restrictedDates,
|
271
|
+
workWeekDays: workWeekDays,
|
272
|
+
componentRef: dayPicker,
|
273
|
+
showCloseButton: showCloseButton,
|
274
|
+
allFocusable: allFocusable,
|
275
|
+
...calendarDayProps
|
276
|
+
}), isDayPickerVisible && isMonthPickerVisible && /*#__PURE__*/ React.createElement("div", {
|
277
|
+
className: classes.divider
|
278
|
+
}), isMonthPickerVisible ? /*#__PURE__*/ React.createElement("div", {
|
279
|
+
className: classes.monthPickerWrapper
|
280
|
+
}, /*#__PURE__*/ React.createElement(CalendarMonth, {
|
281
|
+
navigatedDate: navigatedMonth,
|
282
|
+
selectedDate: navigatedDay,
|
283
|
+
strings: strings,
|
284
|
+
// eslint-disable-next-line react/jsx-no-bind
|
285
|
+
onNavigateDate: onNavigateMonthDate,
|
286
|
+
today: today,
|
287
|
+
highlightCurrentMonth: highlightCurrentMonth,
|
288
|
+
highlightSelectedMonth: highlightSelectedMonth,
|
289
|
+
// eslint-disable-next-line react/jsx-no-bind
|
290
|
+
onHeaderSelect: onHeaderSelect,
|
291
|
+
dateTimeFormatter: dateTimeFormatter,
|
292
|
+
minDate: minDate,
|
293
|
+
maxDate: maxDate,
|
294
|
+
componentRef: monthPicker,
|
295
|
+
...calendarMonthProps
|
296
|
+
}), renderGoToTodayButton()) : renderGoToTodayButton());
|
297
|
+
});
|
298
|
+
Calendar.displayName = 'Calendar';
|
299
|
+
function getShowMonthPickerAsOverlay({ isDayPickerVisible, showMonthPickerAsOverlay }) {
|
300
|
+
const win = getWindow();
|
301
|
+
return showMonthPickerAsOverlay || isDayPickerVisible && win && win.innerWidth <= MIN_SIZE_FORCE_OVERLAY;
|
302
|
+
}
|
@@ -0,0 +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({\n isDayPickerVisible: isDayPickerVisibleProp,\n showMonthPickerAsOverlay: showMonthPickerAsOverlayProp,\n });\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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"}
|
@@ -0,0 +1,10 @@
|
|
1
|
+
import * as React from 'react';
|
2
|
+
export var AnimationDirection;
|
3
|
+
(function(AnimationDirection) {
|
4
|
+
AnimationDirection[AnimationDirection[/**
|
5
|
+
* Grid will transition out and in horizontally
|
6
|
+
*/ "Horizontal"] = 0] = "Horizontal";
|
7
|
+
AnimationDirection[AnimationDirection[/**
|
8
|
+
* Grid will transition out and in vertically
|
9
|
+
*/ "Vertical"] = 1] = "Vertical";
|
10
|
+
})(AnimationDirection || (AnimationDirection = {}));
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"sources":["Calendar.types.ts"],"sourcesContent":["import * as React from 'react';\nimport type { CalendarStrings, DateFormatting, DateRangeType, DayOfWeek, FirstWeekOfYear } from '../../utils';\nimport type { CalendarDayProps } from '../CalendarDay/CalendarDay.types';\nimport type { CalendarMonthProps } from '../CalendarMonth/CalendarMonth.types';\n\n// eslint-disable-next-line @typescript-eslint/naming-convention\nexport interface ICalendar {\n /** Sets focus to the selected date. */\n focus: () => void;\n}\n\nexport interface CalendarProps extends React.RefAttributes<HTMLDivElement> {\n /**\n * Optional callback to access the ICalendar interface. Use this instead of ref for accessing\n * the public methods and properties of the component.\n */\n componentRef?: React.RefObject<ICalendar>;\n\n /**\n * Customized props for the calendar day\n */\n calendarDayProps?: Partial<CalendarDayProps>;\n\n /**\n * Customized props for the calendar month\n */\n calendarMonthProps?: Partial<CalendarMonthProps>;\n\n /**\n * Optional class name to add to the root element.\n */\n className?: string;\n\n /**\n * Callback for when a date is selected\n * @param date - The date the user selected\n * @param selectedDateRangeArray - The resultant list of dates that are selected based on the date range type set\n * for the component.\n */\n onSelectDate?: (date: Date, selectedDateRangeArray?: Date[]) => void;\n\n /**\n * Callback for when calendar is closed\n */\n onDismiss?: () => void;\n\n /**\n * ID for the calendar\n */\n id?: string;\n\n /**\n * Default value of the Calendar, if any\n */\n value?: Date;\n\n /**\n * Value of today. If unspecified, current time in client machine will be used.\n */\n today?: Date;\n\n /**\n * The date range type indicating how many days should be selected as the user\n * selects days\n * @default DateRangeType.Day\n */\n dateRangeType?: DateRangeType;\n\n /**\n * The first day of the week for your locale.\n * @default DayOfWeek.Sunday\n */\n firstDayOfWeek?: DayOfWeek;\n\n /**\n * Defines when the first week of the year should start.\n * @default FirstWeekOfYear.FirstDay\n */\n firstWeekOfYear?: FirstWeekOfYear;\n\n /**\n * Whether the month picker is shown beside the day picker or hidden.\n * @default true\n */\n isMonthPickerVisible?: boolean;\n\n /**\n * Whether the day picker is shown beside the month picker or hidden.\n * @default true\n */\n isDayPickerVisible?: boolean;\n\n /**\n * Show month picker on top of date picker when visible.\n * @default false\n */\n showMonthPickerAsOverlay?: boolean;\n\n /**\n * Whether the \"Go to today\" link should be shown or not\n */\n showGoToToday?: boolean;\n\n /**\n * Whether the calendar should show the week number (weeks 1 to 53) before each week row\n * @default false\n */\n showWeekNumbers?: boolean;\n\n /**\n * Localized strings to use in the Calendar\n */\n strings?: CalendarStrings;\n\n /**\n * Apply additional formatting to dates, for example localized date formatting.\n */\n dateTimeFormatter?: DateFormatting;\n\n /**\n * If set the Calendar will not allow navigation to or selection of a date earlier than this value.\n */\n minDate?: Date;\n\n /**\n * If set the Calendar will not allow navigation to or selection of a date later than this value.\n */\n maxDate?: Date;\n\n /**\n * If set the Calendar will not allow selection of dates in this array.\n */\n restrictedDates?: Date[];\n\n /**\n * Whether the calendar should show 6 weeks by default.\n * @default false\n */\n showSixWeeksByDefault?: boolean;\n\n /**\n * The days that are selectable when `dateRangeType` is `WorkWeek`.\n * If `dateRangeType` is not `WorkWeek` this property does nothing.\n * @default [Monday,Tuesday,Wednesday,Thursday,Friday]\n */\n workWeekDays?: DayOfWeek[];\n\n /**\n * Whether the month picker should highlight the current month\n * @default false\n */\n highlightCurrentMonth?: boolean;\n\n /**\n * Whether the month picker should highlight the selected month\n * @default false\n */\n highlightSelectedMonth?: boolean;\n\n /**\n * Whether the close button should be shown or not\n * @default false\n */\n showCloseButton?: boolean;\n\n /**\n * Allows all dates and buttons to be focused, including disabled ones\n * @default false\n */\n allFocusable?: boolean;\n}\n\n/**\n * @internal\n */\nexport interface CalendarStyleProps {\n /**\n * Custom CSS class for the calendar.\n */\n className?: string;\n\n /**\n * Whether the month picker is visible\n */\n isMonthPickerVisible?: boolean;\n\n /**\n * Whether the day picker is visible\n */\n isDayPickerVisible?: boolean;\n\n /**\n * Whether only month picker is shown\n */\n monthPickerOnly?: boolean;\n\n /**\n * Whether the month picker is overlaid on the day picker\n */\n showMonthPickerAsOverlay?: boolean;\n\n /**\n * @deprecated Use `overlaidWithButton`\n */\n overlayedWithButton?: boolean;\n\n /**\n * Whether the month and day picker are overlaid and the 'go to today' button is shown\n */\n overlaidWithButton?: boolean;\n\n /**\n * Whether the go to today button is shown\n */\n showGoToToday?: boolean;\n\n /**\n * Whether the week numbers are shown\n */\n showWeekNumbers?: boolean;\n}\n\n/**\n * @internal\n */\nexport interface CalendarStyles {\n /**\n * Style for the root element.\n */\n root: string;\n\n divider: string;\n\n goTodayButton: string;\n\n monthPickerWrapper: string;\n\n liveRegion: string;\n}\n\nexport enum AnimationDirection {\n /**\n * Grid will transition out and in horizontally\n */\n Horizontal,\n\n /**\n * Grid will transition out and in vertically\n */\n Vertical,\n}\n"],"names":["React","AnimationDirection","Horizontal","Vertical"],"mappings":"AAAA,YAAYA,WAAW,QAAQ;WAgPxB;UAAKC,kBAAkB;IAAlBA,mBAAAA,mBACV;;GAEC,GACDC,gBAAAA,KAAAA;IAJUD,mBAAAA,mBAMV;;GAEC,GACDE,cAAAA,KAAAA;GATUF,uBAAAA"}
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"sources":["defaults.ts"],"sourcesContent":["import { DEFAULT_CALENDAR_STRINGS } from '../../utils';\nimport type { CalendarStrings } from '../../utils';\n\nexport const defaultCalendarStrings: CalendarStrings = DEFAULT_CALENDAR_STRINGS;\n"],"names":["DEFAULT_CALENDAR_STRINGS","defaultCalendarStrings"],"mappings":"AAAA,SAASA,wBAAwB,QAAQ,cAAc;AAGvD,OAAO,MAAMC,yBAA0CD,yBAAyB"}
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"sources":["index.ts"],"sourcesContent":["export * from './Calendar';\nexport * from './Calendar.types';\nexport * from './useCalendarStyles.styles';\nexport { defaultCalendarStrings } from './defaults';\n"],"names":["defaultCalendarStrings"],"mappings":"AAAA,cAAc,aAAa;AAC3B,cAAc,mBAAmB;AACjC,cAAc,6BAA6B;AAC3C,SAASA,sBAAsB,QAAQ,aAAa"}
|
@@ -0,0 +1,167 @@
|
|
1
|
+
import { tokens } from '@fluentui/react-theme';
|
2
|
+
import { __styles, mergeClasses, shorthands } from '@griffel/react';
|
3
|
+
/**
|
4
|
+
* @internal
|
5
|
+
*/
|
6
|
+
export const calendarClassNames = {
|
7
|
+
root: 'fui-Calendar',
|
8
|
+
divider: 'fui-Calendar__divider',
|
9
|
+
goTodayButton: 'fui-Calendar__goTodayButton',
|
10
|
+
monthPickerWrapper: 'fui-Calendar__monthPickerWrapper',
|
11
|
+
liveRegion: 'fui-Calendar__liveRegion'
|
12
|
+
};
|
13
|
+
const useRootStyles = /*#__PURE__*/__styles({
|
14
|
+
base: {
|
15
|
+
mc9l5x: "f22iagw",
|
16
|
+
a9b677: "f13dwy2t"
|
17
|
+
},
|
18
|
+
normalize: {
|
19
|
+
E5pizo: "f1couhl3",
|
20
|
+
B7ck84d: "f1ewtqcl",
|
21
|
+
B6of3ja: "f1hu3pq6",
|
22
|
+
t21cq0: ["f11qmguv", "f1tyq0we"],
|
23
|
+
jrapky: "f19f4twv",
|
24
|
+
Frg6f3: ["f1tyq0we", "f11qmguv"],
|
25
|
+
z8tnut: "f1g0x7ka",
|
26
|
+
z189sj: ["fhxju0i", "f1cnd47f"],
|
27
|
+
Byoj8tv: "f1qch9an",
|
28
|
+
uwmqm3: ["f1cnd47f", "fhxju0i"]
|
29
|
+
},
|
30
|
+
monthPickerNotVisible: {
|
31
|
+
Beiy3e4: "f1vx9l62"
|
32
|
+
},
|
33
|
+
dayAndMonthPickersVisible: {
|
34
|
+
a9b677: "fcy5b15"
|
35
|
+
},
|
36
|
+
dayPickerVisibleAndWeekNumbersShown: {
|
37
|
+
a9b677: "fhsg0in"
|
38
|
+
},
|
39
|
+
dayAndMonthPickersVisibleAndWeekNumbersShown: {
|
40
|
+
a9b677: "fcarq7f"
|
41
|
+
}
|
42
|
+
}, {
|
43
|
+
d: [".f22iagw{display:flex;}", ".f13dwy2t{width:220px;}", ".f1couhl3{box-shadow:none;}", ".f1ewtqcl{box-sizing:border-box;}", ".f1hu3pq6{margin-top:0;}", ".f11qmguv{margin-right:0;}", ".f1tyq0we{margin-left:0;}", ".f19f4twv{margin-bottom:0;}", ".f1g0x7ka{padding-top:0;}", ".fhxju0i{padding-right:0;}", ".f1cnd47f{padding-left:0;}", ".f1qch9an{padding-bottom:0;}", ".f1vx9l62{flex-direction:column;}", ".fcy5b15{width:440px;}", ".fhsg0in{width:250px;}", ".fcarq7f{width:470px;}"]
|
44
|
+
});
|
45
|
+
const useDividerStyles = /*#__PURE__*/__styles({
|
46
|
+
base: {
|
47
|
+
g2u3we: "f68mrw8",
|
48
|
+
h3c5rm: ["f7pw515", "fw35ms5"],
|
49
|
+
B9xav0g: "frpde29",
|
50
|
+
zhjwy3: ["fw35ms5", "f7pw515"],
|
51
|
+
Bekrc4i: ["f1hqa2wf", "finvdd3"],
|
52
|
+
vrafjx: ["fcdblym", "fjik90z"],
|
53
|
+
Bhzewxz: "f15twtuk"
|
54
|
+
}
|
55
|
+
}, {
|
56
|
+
d: [".f68mrw8{border-top-color:var(--colorNeutralStroke2);}", ".f7pw515{border-right-color:var(--colorNeutralStroke2);}", ".fw35ms5{border-left-color:var(--colorNeutralStroke2);}", ".frpde29{border-bottom-color:var(--colorNeutralStroke2);}", ".f1hqa2wf{border-right-width:1px;}", ".finvdd3{border-left-width:1px;}", ".fcdblym{border-right-style:solid;}", ".fjik90z{border-left-style:solid;}", ".f15twtuk{top:0;}"]
|
57
|
+
});
|
58
|
+
const useMonthPickerWrapperStyles = /*#__PURE__*/__styles({
|
59
|
+
base: {
|
60
|
+
mc9l5x: "f22iagw",
|
61
|
+
Beiy3e4: "f1vx9l62"
|
62
|
+
}
|
63
|
+
}, {
|
64
|
+
d: [".f22iagw{display:flex;}", ".f1vx9l62{flex-direction:column;}"]
|
65
|
+
});
|
66
|
+
const useGoTodayButtonStyles = /*#__PURE__*/__styles({
|
67
|
+
base: {
|
68
|
+
qb2dma: "fpydfdc",
|
69
|
+
De3pzq: "f1c21dwh",
|
70
|
+
icvyot: "f1ern45e",
|
71
|
+
vrafjx: ["f1n71otn", "f1deefiw"],
|
72
|
+
oivjwe: "f1h8hb77",
|
73
|
+
wvpqe5: ["f1deefiw", "f1n71otn"],
|
74
|
+
B5kzvoi: "f1yab3r1",
|
75
|
+
B7ck84d: "f1e4lqlz",
|
76
|
+
sj55zd: "f19n0e5",
|
77
|
+
Bahqtrf: "f1mo0ibp",
|
78
|
+
Be2twd7: "fy9rknc",
|
79
|
+
Bqenvij: "f1tvdnth",
|
80
|
+
Bg96gwp: "fpfng1i",
|
81
|
+
t21cq0: ["f17vyym1", "fb5scp"],
|
82
|
+
B6of3ja: "f4gg0ds",
|
83
|
+
B68tc82: "f1mtd64y",
|
84
|
+
Bmxbyg5: "f1y7q3j9",
|
85
|
+
z8tnut: "f1g0x7ka",
|
86
|
+
z189sj: ["f8wuabp", "fycuoez"],
|
87
|
+
Byoj8tv: "f1qch9an",
|
88
|
+
uwmqm3: ["fycuoez", "f8wuabp"],
|
89
|
+
seuwu7: "fvy6vk6",
|
90
|
+
Jwef8y: "f9ql6rf",
|
91
|
+
Bi91k9c: "f1f1pb61",
|
92
|
+
eoavqd: "f8491dx",
|
93
|
+
Bv57zgv: "fq3vqfz",
|
94
|
+
Bnosqey: "f7lk14",
|
95
|
+
Bx7pl5v: "f1awoz4y",
|
96
|
+
B23s7e0: ["f1q1rlij", "f1txf70x"],
|
97
|
+
knvgbf: ["f1txf70x", "f1q1rlij"],
|
98
|
+
B3ons6i: ["fduk3fc", "fw6hbk1"],
|
99
|
+
Be8uuq8: ["fw6hbk1", "fduk3fc"],
|
100
|
+
B2d53fq: "fc9d3oc",
|
101
|
+
Dyrjrp: "f1cqwcg4",
|
102
|
+
Be90el1: "fmjaa5u"
|
103
|
+
}
|
104
|
+
}, {
|
105
|
+
d: [".fpydfdc{align-self:flex-end;}", ".f1c21dwh{background-color:var(--colorTransparentBackground);}", ".f1ern45e{border-top-style:none;}", ".f1n71otn{border-right-style:none;}", ".f1deefiw{border-left-style:none;}", ".f1h8hb77{border-bottom-style:none;}", ".f1yab3r1{bottom:0;}", ".f1e4lqlz{box-sizing:content-box;}", ".f19n0e5{color:var(--colorNeutralForeground1);}", ".f1mo0ibp{font-family:inherit;}", ".fy9rknc{font-size:var(--fontSizeBase200);}", ".f1tvdnth{height:30px;}", ".fpfng1i{line-height:30px;}", ".f17vyym1{margin-right:16px;}", ".fb5scp{margin-left:16px;}", ".f4gg0ds{margin-top:3px;}", ".f1mtd64y{overflow-x:visible;}", ".f1y7q3j9{overflow-y:visible;}", ".f1g0x7ka{padding-top:0;}", ".f8wuabp{padding-right:4px;}", ".fycuoez{padding-left:4px;}", ".f1qch9an{padding-bottom:0;}", ".fvy6vk6 div{font-size:var(--fontSizeBase200);}", ".f1cqwcg4:disabled{color:var(--colorNeutralForegroundDisabled);}", ".fmjaa5u:disabled{pointer-events:none;}"],
|
106
|
+
h: [".f9ql6rf:hover{background-color:var(--colorTransparentBackground);}", ".f1f1pb61:hover{color:var(--colorBrandForeground1);}", ".f8491dx:hover{cursor:pointer;}", ".fc9d3oc:hover:active{color:var(--colorBrandForeground2);}"],
|
107
|
+
m: [["@media (forced-colors: active){.fq3vqfz:hover{outline-width:var(--strokeWidthThin);}}", {
|
108
|
+
m: "(forced-colors: active)"
|
109
|
+
}], ["@media (forced-colors: active){.f7lk14:hover{outline-style:solid;}}", {
|
110
|
+
m: "(forced-colors: active)"
|
111
|
+
}], ["@media (forced-colors: active){.f1awoz4y:hover{outline-color:ButtonText;}}", {
|
112
|
+
m: "(forced-colors: active)"
|
113
|
+
}], ["@media (forced-colors: active){.f1q1rlij:hover{border-bottom-right-radius:var(--borderRadiusSmall);}.f1txf70x:hover{border-bottom-left-radius:var(--borderRadiusSmall);}}", {
|
114
|
+
m: "(forced-colors: active)"
|
115
|
+
}], ["@media (forced-colors: active){.fduk3fc:hover{border-top-right-radius:var(--borderRadiusSmall);}.fw6hbk1:hover{border-top-left-radius:var(--borderRadiusSmall);}}", {
|
116
|
+
m: "(forced-colors: active)"
|
117
|
+
}]]
|
118
|
+
});
|
119
|
+
const useLiveRegionStyles = /*#__PURE__*/__styles({
|
120
|
+
base: {
|
121
|
+
B4j52fo: "fre7gi1",
|
122
|
+
Bekrc4i: ["f1358rze", "f1rvrf73"],
|
123
|
+
Bn0qgzm: "fqdk4by",
|
124
|
+
ibv6hh: ["f1rvrf73", "f1358rze"],
|
125
|
+
Bqenvij: "f1mpe4l3",
|
126
|
+
B6of3ja: "fkrn0sh",
|
127
|
+
t21cq0: ["f179hvsh", "f1538868"],
|
128
|
+
jrapky: "fmxx68s",
|
129
|
+
Frg6f3: ["f1538868", "f179hvsh"],
|
130
|
+
B68tc82: "f1p9o1ba",
|
131
|
+
Bmxbyg5: "f1sil6mw",
|
132
|
+
z8tnut: "f1g0x7ka",
|
133
|
+
z189sj: ["fhxju0i", "f1cnd47f"],
|
134
|
+
Byoj8tv: "f1qch9an",
|
135
|
+
uwmqm3: ["f1cnd47f", "fhxju0i"],
|
136
|
+
qhf8xq: "f1euv43f",
|
137
|
+
a9b677: "frkrog8"
|
138
|
+
}
|
139
|
+
}, {
|
140
|
+
d: [".fre7gi1{border-top-width:0;}", ".f1358rze{border-right-width:0;}", ".f1rvrf73{border-left-width:0;}", ".fqdk4by{border-bottom-width:0;}", ".f1mpe4l3{height:1px;}", ".fkrn0sh{margin-top:-1px;}", ".f179hvsh{margin-right:-1px;}", ".f1538868{margin-left:-1px;}", ".fmxx68s{margin-bottom:-1px;}", ".f1p9o1ba{overflow-x:hidden;}", ".f1sil6mw{overflow-y:hidden;}", ".f1g0x7ka{padding-top:0;}", ".fhxju0i{padding-right:0;}", ".f1cnd47f{padding-left:0;}", ".f1qch9an{padding-bottom:0;}", ".f1euv43f{position:absolute;}", ".frkrog8{width:1px;}"]
|
141
|
+
});
|
142
|
+
/**
|
143
|
+
* @internal
|
144
|
+
*
|
145
|
+
* Apply styling to the Calendar slots based on the state
|
146
|
+
*/
|
147
|
+
export const useCalendarStyles_unstable = props => {
|
148
|
+
const rootStyles = useRootStyles();
|
149
|
+
const dividerStyles = useDividerStyles();
|
150
|
+
const monthPickerWrapperStyles = useMonthPickerWrapperStyles();
|
151
|
+
const goTodayButtonStyles = useGoTodayButtonStyles();
|
152
|
+
const liveRegionStyles = useLiveRegionStyles();
|
153
|
+
const {
|
154
|
+
className,
|
155
|
+
isDayPickerVisible,
|
156
|
+
isMonthPickerVisible,
|
157
|
+
showWeekNumbers
|
158
|
+
} = props;
|
159
|
+
return {
|
160
|
+
root: mergeClasses(calendarClassNames.root, rootStyles.base, rootStyles.normalize, !isMonthPickerVisible && rootStyles.monthPickerNotVisible, isDayPickerVisible && isMonthPickerVisible && !showWeekNumbers && rootStyles.dayAndMonthPickersVisible, isDayPickerVisible && !isMonthPickerVisible && showWeekNumbers && rootStyles.dayPickerVisibleAndWeekNumbersShown, isDayPickerVisible && isMonthPickerVisible && showWeekNumbers && rootStyles.dayAndMonthPickersVisibleAndWeekNumbersShown, className),
|
161
|
+
divider: mergeClasses(calendarClassNames.divider, dividerStyles.base),
|
162
|
+
monthPickerWrapper: mergeClasses(calendarClassNames.monthPickerWrapper, monthPickerWrapperStyles.base),
|
163
|
+
goTodayButton: mergeClasses(calendarClassNames.goTodayButton, goTodayButtonStyles.base),
|
164
|
+
liveRegion: mergeClasses(calendarClassNames.liveRegion, liveRegionStyles.base)
|
165
|
+
};
|
166
|
+
};
|
167
|
+
//# sourceMappingURL=useCalendarStyles.styles.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"names":["tokens","__styles","mergeClasses","shorthands","calendarClassNames","root","divider","goTodayButton","monthPickerWrapper","liveRegion","useRootStyles","base","mc9l5x","a9b677","normalize","E5pizo","B7ck84d","B6of3ja","t21cq0","jrapky","Frg6f3","z8tnut","z189sj","Byoj8tv","uwmqm3","monthPickerNotVisible","Beiy3e4","dayAndMonthPickersVisible","dayPickerVisibleAndWeekNumbersShown","dayAndMonthPickersVisibleAndWeekNumbersShown","d","useDividerStyles","g2u3we","h3c5rm","B9xav0g","zhjwy3","Bekrc4i","vrafjx","Bhzewxz","useMonthPickerWrapperStyles","useGoTodayButtonStyles","qb2dma","De3pzq","icvyot","oivjwe","wvpqe5","B5kzvoi","sj55zd","Bahqtrf","Be2twd7","Bqenvij","Bg96gwp","B68tc82","Bmxbyg5","seuwu7","Jwef8y","Bi91k9c","eoavqd","Bv57zgv","Bnosqey","Bx7pl5v","B23s7e0","knvgbf","B3ons6i","Be8uuq8","B2d53fq","Dyrjrp","Be90el1","h","m","useLiveRegionStyles","B4j52fo","Bn0qgzm","ibv6hh","qhf8xq","useCalendarStyles_unstable","props","rootStyles","dividerStyles","monthPickerWrapperStyles","goTodayButtonStyles","liveRegionStyles","className","isDayPickerVisible","isMonthPickerVisible","showWeekNumbers"],"sources":["useCalendarStyles.styles.js"],"sourcesContent":["import { tokens } from '@fluentui/react-theme';\nimport { makeStyles, mergeClasses, shorthands } from '@griffel/react';\n/**\n * @internal\n */ export const calendarClassNames = {\n root: 'fui-Calendar',\n divider: 'fui-Calendar__divider',\n goTodayButton: 'fui-Calendar__goTodayButton',\n monthPickerWrapper: 'fui-Calendar__monthPickerWrapper',\n liveRegion: 'fui-Calendar__liveRegion'\n};\nconst useRootStyles = makeStyles({\n base: {\n display: 'flex',\n width: '220px'\n },\n normalize: {\n boxShadow: 'none',\n boxSizing: 'border-box',\n ...shorthands.margin(0),\n ...shorthands.padding(0)\n },\n monthPickerNotVisible: {\n flexDirection: 'column'\n },\n dayAndMonthPickersVisible: {\n width: '440px'\n },\n dayPickerVisibleAndWeekNumbersShown: {\n width: '250px'\n },\n dayAndMonthPickersVisibleAndWeekNumbersShown: {\n width: '470px'\n }\n});\nconst useDividerStyles = makeStyles({\n base: {\n ...shorthands.borderColor(tokens.colorNeutralStroke2),\n ...shorthands.borderRight('1px', 'solid'),\n top: 0\n }\n});\nconst useMonthPickerWrapperStyles = makeStyles({\n base: {\n display: 'flex',\n flexDirection: 'column'\n }\n});\nconst useGoTodayButtonStyles = makeStyles({\n base: {\n alignSelf: 'flex-end',\n backgroundColor: tokens.colorTransparentBackground,\n ...shorthands.borderStyle('none'),\n bottom: 0,\n boxSizing: 'content-box',\n color: tokens.colorNeutralForeground1,\n fontFamily: 'inherit',\n fontSize: tokens.fontSizeBase200,\n height: '30px',\n lineHeight: '30px',\n marginRight: '16px',\n marginTop: '3px',\n ...shorthands.overflow('visible'),\n ...shorthands.padding(0, '4px'),\n '& div': {\n fontSize: tokens.fontSizeBase200\n },\n '&:hover': {\n backgroundColor: tokens.colorTransparentBackground,\n color: tokens.colorBrandForeground1,\n cursor: 'pointer',\n '@media (forced-colors: active)': {\n ...shorthands.outline(tokens.strokeWidthThin, 'solid', 'ButtonText'),\n ...shorthands.borderRadius(tokens.borderRadiusSmall)\n }\n },\n '&:hover:active': {\n color: tokens.colorBrandForeground2\n },\n '&:disabled': {\n color: tokens.colorNeutralForegroundDisabled,\n pointerEvents: 'none'\n }\n }\n});\nconst useLiveRegionStyles = makeStyles({\n base: {\n ...shorthands.border(0),\n height: '1px',\n ...shorthands.margin('-1px'),\n ...shorthands.overflow('hidden'),\n ...shorthands.padding(0),\n position: 'absolute',\n width: '1px'\n }\n});\n/**\n * @internal\n *\n * Apply styling to the Calendar slots based on the state\n */ export const useCalendarStyles_unstable = (props)=>{\n const rootStyles = useRootStyles();\n const dividerStyles = useDividerStyles();\n const monthPickerWrapperStyles = useMonthPickerWrapperStyles();\n const goTodayButtonStyles = useGoTodayButtonStyles();\n const liveRegionStyles = useLiveRegionStyles();\n const { className, isDayPickerVisible, isMonthPickerVisible, showWeekNumbers } = props;\n return {\n root: mergeClasses(calendarClassNames.root, rootStyles.base, rootStyles.normalize, !isMonthPickerVisible && rootStyles.monthPickerNotVisible, isDayPickerVisible && isMonthPickerVisible && !showWeekNumbers && rootStyles.dayAndMonthPickersVisible, isDayPickerVisible && !isMonthPickerVisible && showWeekNumbers && rootStyles.dayPickerVisibleAndWeekNumbersShown, isDayPickerVisible && isMonthPickerVisible && showWeekNumbers && rootStyles.dayAndMonthPickersVisibleAndWeekNumbersShown, className),\n divider: mergeClasses(calendarClassNames.divider, dividerStyles.base),\n monthPickerWrapper: mergeClasses(calendarClassNames.monthPickerWrapper, monthPickerWrapperStyles.base),\n goTodayButton: mergeClasses(calendarClassNames.goTodayButton, goTodayButtonStyles.base),\n liveRegion: mergeClasses(calendarClassNames.liveRegion, liveRegionStyles.base)\n };\n};\n"],"mappings":"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"}
|