@fluentui/react-calendar-compat 0.0.0-nightly-20250423-0405.1 → 0.0.0-nightly-20250423-1415.1
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.md +12 -12
- package/dist/index.d.ts +1422 -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 +308 -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/calendarNavigationIcons.js +7 -0
- package/lib/components/Calendar/calendarNavigationIcons.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 +204 -0
- package/lib/components/Calendar/useCalendarStyles.styles.js.map +1 -0
- package/lib/components/CalendarDay/CalendarDay.js +107 -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 +2 -0
- package/lib/components/CalendarDay/index.js.map +1 -0
- package/lib/components/CalendarDay/useCalendarDayStyles.styles.js +227 -0
- package/lib/components/CalendarDay/useCalendarDayStyles.styles.js.map +1 -0
- package/lib/components/CalendarDayGrid/CalendarDayGrid.js +169 -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 +163 -0
- package/lib/components/CalendarDayGrid/CalendarGridDayCell.js.map +1 -0
- package/lib/components/CalendarDayGrid/CalendarGridRow.js +27 -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 +2 -0
- package/lib/components/CalendarDayGrid/index.js.map +1 -0
- package/lib/components/CalendarDayGrid/useCalendarDayGridStyles.styles.js +620 -0
- package/lib/components/CalendarDayGrid/useCalendarDayGridStyles.styles.js.map +1 -0
- package/lib/components/CalendarDayGrid/useWeekCornerStyles.styles.js +97 -0
- package/lib/components/CalendarDayGrid/useWeekCornerStyles.styles.js.map +1 -0
- package/lib/components/CalendarDayGrid/useWeeks.js +46 -0
- package/lib/components/CalendarDayGrid/useWeeks.js.map +1 -0
- package/lib/components/CalendarMonth/CalendarMonth.js +261 -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 +2 -0
- package/lib/components/CalendarMonth/index.js.map +1 -0
- package/lib/components/CalendarMonth/useCalendarMonthStyles.styles.js +11 -0
- package/lib/components/CalendarMonth/useCalendarMonthStyles.styles.js.map +1 -0
- package/lib/components/CalendarPicker/CalendarPicker.types.js +3 -0
- package/lib/components/CalendarPicker/CalendarPicker.types.js.map +1 -0
- package/lib/components/CalendarPicker/index.js +1 -0
- package/lib/components/CalendarPicker/index.js.map +1 -0
- package/lib/components/CalendarPicker/useCalendarPickerStyles.styles.js +462 -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 +2 -0
- package/lib/components/CalendarYear/index.js.map +1 -0
- package/lib/components/CalendarYear/useCalendarYearStyles.styles.js +11 -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 +96 -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 +1 -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 +72 -0
- package/lib/utils/dateGrid/getDayGrid.js.map +1 -0
- package/lib/utils/dateGrid/index.js +4 -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/focus.js +24 -0
- package/lib/utils/focus.js.map +1 -0
- package/lib/utils/index.js +6 -0
- package/lib/utils/index.js.map +1 -0
- package/lib-commonjs/Calendar.js +28 -0
- package/lib-commonjs/Calendar.js.map +1 -0
- package/lib-commonjs/CalendarDay.js +22 -0
- package/lib-commonjs/CalendarDay.js.map +1 -0
- package/lib-commonjs/CalendarDayGrid.js +25 -0
- package/lib-commonjs/CalendarDayGrid.js.map +1 -0
- package/lib-commonjs/CalendarMonth.js +19 -0
- package/lib-commonjs/CalendarMonth.js.map +1 -0
- package/lib-commonjs/CalendarPicker.js +19 -0
- package/lib-commonjs/CalendarPicker.js.map +1 -0
- package/lib-commonjs/CalendarYear.js +19 -0
- package/lib-commonjs/CalendarYear.js.map +1 -0
- package/lib-commonjs/components/Calendar/Calendar.js +317 -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/calendarNavigationIcons.js +18 -0
- package/lib-commonjs/components/Calendar/calendarNavigationIcons.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 +31 -0
- package/lib-commonjs/components/Calendar/index.js.map +1 -0
- package/lib-commonjs/components/Calendar/useCalendarStyles.styles.js +311 -0
- package/lib-commonjs/components/Calendar/useCalendarStyles.styles.js.map +1 -0
- package/lib-commonjs/components/CalendarDay/CalendarDay.js +116 -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 +23 -0
- package/lib-commonjs/components/CalendarDay/index.js.map +1 -0
- package/lib-commonjs/components/CalendarDay/useCalendarDayStyles.styles.js +370 -0
- package/lib-commonjs/components/CalendarDay/useCalendarDayStyles.styles.js.map +1 -0
- package/lib-commonjs/components/CalendarDayGrid/CalendarDayGrid.js +180 -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 +172 -0
- package/lib-commonjs/components/CalendarDayGrid/CalendarGridDayCell.js.map +1 -0
- package/lib-commonjs/components/CalendarDayGrid/CalendarGridRow.js +36 -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 +26 -0
- package/lib-commonjs/components/CalendarDayGrid/index.js.map +1 -0
- package/lib-commonjs/components/CalendarDayGrid/useCalendarDayGridStyles.styles.js +1121 -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 +55 -0
- package/lib-commonjs/components/CalendarDayGrid/useWeeks.js.map +1 -0
- package/lib-commonjs/components/CalendarMonth/CalendarMonth.js +270 -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 +20 -0
- package/lib-commonjs/components/CalendarMonth/index.js.map +1 -0
- package/lib-commonjs/components/CalendarMonth/useCalendarMonthStyles.styles.js +15 -0
- package/lib-commonjs/components/CalendarMonth/useCalendarMonthStyles.styles.js.map +1 -0
- package/lib-commonjs/components/CalendarPicker/CalendarPicker.types.js +6 -0
- package/lib-commonjs/components/CalendarPicker/CalendarPicker.types.js.map +1 -0
- package/lib-commonjs/components/CalendarPicker/index.js +19 -0
- package/lib-commonjs/components/CalendarPicker/index.js.map +1 -0
- package/lib-commonjs/components/CalendarPicker/useCalendarPickerStyles.styles.js +773 -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 +20 -0
- package/lib-commonjs/components/CalendarYear/index.js.map +1 -0
- package/lib-commonjs/components/CalendarYear/useCalendarYearStyles.styles.js +15 -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 +153 -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 +37 -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 +77 -0
- package/lib-commonjs/utils/dateGrid/getDayGrid.js.map +1 -0
- package/lib-commonjs/utils/dateGrid/index.js +28 -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 +67 -0
- package/lib-commonjs/utils/dateMath/index.js.map +1 -0
- package/lib-commonjs/utils/focus.js +29 -0
- package/lib-commonjs/utils/focus.js.map +1 -0
- package/lib-commonjs/utils/index.js +174 -0
- package/lib-commonjs/utils/index.js.map +1 -0
- package/package.json +9 -9
@@ -0,0 +1,172 @@
|
|
1
|
+
"use strict";
|
2
|
+
Object.defineProperty(exports, "__esModule", {
|
3
|
+
value: true
|
4
|
+
});
|
5
|
+
Object.defineProperty(exports, "CalendarGridDayCell", {
|
6
|
+
enumerable: true,
|
7
|
+
get: function() {
|
8
|
+
return CalendarGridDayCell;
|
9
|
+
}
|
10
|
+
});
|
11
|
+
const _interop_require_wildcard = require("@swc/helpers/_/_interop_require_wildcard");
|
12
|
+
const _react = /*#__PURE__*/ _interop_require_wildcard._(require("react"));
|
13
|
+
const _keyboardkeys = require("@fluentui/keyboard-keys");
|
14
|
+
const _reactutilities = require("@fluentui/react-utilities");
|
15
|
+
const _reactsharedcontexts = require("@fluentui/react-shared-contexts");
|
16
|
+
const _react1 = require("@griffel/react");
|
17
|
+
const _utils = require("../../utils");
|
18
|
+
const _useWeekCornerStylesstyles = require("./useWeekCornerStyles.styles");
|
19
|
+
const _useCalendarDayGridStylesstyles = require("./useCalendarDayGridStyles.styles");
|
20
|
+
const CalendarGridDayCell = (props)=>{
|
21
|
+
'use no memo';
|
22
|
+
const { navigatedDate, dateTimeFormatter, allFocusable, strings, activeDescendantId, navigatedDayRef, calculateRoundedStyles, weeks, classNames, day, dayIndex, weekIndex, weekCorners, ariaHidden, customDayCellRef, dateRangeType, daysToSelectInDayView, onSelectDate, restrictedDates, minDate, maxDate, onNavigateDate, getDayInfosInRangeOfDay, getRefsFromDayInfos } = props;
|
23
|
+
var _weekCorners_;
|
24
|
+
const cornerStyle = (_weekCorners_ = weekCorners === null || weekCorners === void 0 ? void 0 : weekCorners[weekIndex + '_' + dayIndex]) !== null && _weekCorners_ !== void 0 ? _weekCorners_ : '';
|
25
|
+
const isNavigatedDate = (0, _utils.compareDates)(navigatedDate, day.originalDate);
|
26
|
+
const { dir } = (0, _reactsharedcontexts.useFluent_unstable)();
|
27
|
+
const navigateMonthEdge = (ev, date)=>{
|
28
|
+
let targetDate = undefined;
|
29
|
+
let direction = 1; // by default search forward
|
30
|
+
if (ev.key === _keyboardkeys.ArrowUp) {
|
31
|
+
targetDate = (0, _utils.addWeeks)(date, -1);
|
32
|
+
direction = -1;
|
33
|
+
} else if (ev.key === _keyboardkeys.ArrowDown) {
|
34
|
+
targetDate = (0, _utils.addWeeks)(date, 1);
|
35
|
+
} else if (ev.key === (0, _reactutilities.getRTLSafeKey)(_keyboardkeys.ArrowLeft, dir)) {
|
36
|
+
targetDate = (0, _utils.addDays)(date, -1);
|
37
|
+
direction = -1;
|
38
|
+
} else if (ev.key === (0, _reactutilities.getRTLSafeKey)(_keyboardkeys.ArrowRight, dir)) {
|
39
|
+
targetDate = (0, _utils.addDays)(date, 1);
|
40
|
+
}
|
41
|
+
if (!targetDate) {
|
42
|
+
// if we couldn't find a target date at all, do nothing
|
43
|
+
return;
|
44
|
+
}
|
45
|
+
const findAvailableDateOptions = {
|
46
|
+
initialDate: date,
|
47
|
+
targetDate,
|
48
|
+
direction,
|
49
|
+
restrictedDates,
|
50
|
+
minDate,
|
51
|
+
maxDate
|
52
|
+
};
|
53
|
+
// target date is restricted, search in whatever direction until finding the next possible date,
|
54
|
+
// stopping at boundaries
|
55
|
+
let nextDate = (0, _utils.findAvailableDate)(findAvailableDateOptions);
|
56
|
+
if (!nextDate) {
|
57
|
+
// if no dates available in initial direction, try going backwards
|
58
|
+
findAvailableDateOptions.direction = -direction;
|
59
|
+
nextDate = (0, _utils.findAvailableDate)(findAvailableDateOptions);
|
60
|
+
}
|
61
|
+
// if the nextDate is still inside the same focusZone area, let the focusZone handle setting the focus so we
|
62
|
+
// don't jump the view unnecessarily
|
63
|
+
const isInCurrentView = weeks && nextDate && weeks.slice(1, weeks.length - 1).some((week)=>{
|
64
|
+
return week.some((dayToCompare)=>{
|
65
|
+
return (0, _utils.compareDates)(dayToCompare.originalDate, nextDate);
|
66
|
+
});
|
67
|
+
});
|
68
|
+
if (isInCurrentView) {
|
69
|
+
return;
|
70
|
+
}
|
71
|
+
// else, fire navigation on the date to change the view to show it
|
72
|
+
if (nextDate) {
|
73
|
+
onNavigateDate(nextDate, true);
|
74
|
+
ev.preventDefault();
|
75
|
+
}
|
76
|
+
};
|
77
|
+
const onMouseOverDay = (ev)=>{
|
78
|
+
const dayInfos = getDayInfosInRangeOfDay(day);
|
79
|
+
const dayRefs = getRefsFromDayInfos(dayInfos);
|
80
|
+
dayRefs.forEach((dayRef, index)=>{
|
81
|
+
if (dayRef) {
|
82
|
+
dayRef.classList.add(_useCalendarDayGridStylesstyles.extraCalendarDayGridClassNames.hoverStyle);
|
83
|
+
if (!dayInfos[index].isSelected && dateRangeType === _utils.DateRangeType.Day && daysToSelectInDayView && daysToSelectInDayView > 1) {
|
84
|
+
// remove the static classes first to overwrite them
|
85
|
+
dayRef.classList.remove(_useWeekCornerStylesstyles.weekCornersClassNames.bottomLeftCornerDate, _useWeekCornerStylesstyles.weekCornersClassNames.bottomRightCornerDate, _useWeekCornerStylesstyles.weekCornersClassNames.topLeftCornerDate, _useWeekCornerStylesstyles.weekCornersClassNames.topRightCornerDate);
|
86
|
+
const classNamesToAdd = calculateRoundedStyles(false, false, index > 0, index < dayRefs.length - 1).trim();
|
87
|
+
if (classNamesToAdd) {
|
88
|
+
dayRef.classList.add(...classNamesToAdd.trim().split(' '));
|
89
|
+
}
|
90
|
+
}
|
91
|
+
}
|
92
|
+
});
|
93
|
+
};
|
94
|
+
const onMouseDownDay = (ev)=>{
|
95
|
+
const dayInfos = getDayInfosInRangeOfDay(day);
|
96
|
+
const dayRefs = getRefsFromDayInfos(dayInfos);
|
97
|
+
dayRefs.forEach((dayRef)=>{
|
98
|
+
if (dayRef) {
|
99
|
+
dayRef.classList.add(_useCalendarDayGridStylesstyles.extraCalendarDayGridClassNames.pressedStyle);
|
100
|
+
}
|
101
|
+
});
|
102
|
+
};
|
103
|
+
const onMouseUpDay = (ev)=>{
|
104
|
+
const dayInfos = getDayInfosInRangeOfDay(day);
|
105
|
+
const dayRefs = getRefsFromDayInfos(dayInfos);
|
106
|
+
dayRefs.forEach((dayRef)=>{
|
107
|
+
if (dayRef) {
|
108
|
+
dayRef.classList.remove(_useCalendarDayGridStylesstyles.extraCalendarDayGridClassNames.pressedStyle);
|
109
|
+
}
|
110
|
+
});
|
111
|
+
};
|
112
|
+
const onMouseOutDay = (ev)=>{
|
113
|
+
const dayInfos = getDayInfosInRangeOfDay(day);
|
114
|
+
const dayRefs = getRefsFromDayInfos(dayInfos);
|
115
|
+
dayRefs.forEach((dayRef, index)=>{
|
116
|
+
if (dayRef) {
|
117
|
+
dayRef.classList.remove(_useCalendarDayGridStylesstyles.extraCalendarDayGridClassNames.hoverStyle);
|
118
|
+
dayRef.classList.remove(_useCalendarDayGridStylesstyles.extraCalendarDayGridClassNames.pressedStyle);
|
119
|
+
if (!dayInfos[index].isSelected && dateRangeType === _utils.DateRangeType.Day && daysToSelectInDayView && daysToSelectInDayView > 1) {
|
120
|
+
const classNamesToAdd = calculateRoundedStyles(false, false, index > 0, index < dayRefs.length - 1).trim();
|
121
|
+
if (classNamesToAdd) {
|
122
|
+
dayRef.classList.remove(...classNamesToAdd.trim().split(' '));
|
123
|
+
}
|
124
|
+
}
|
125
|
+
}
|
126
|
+
});
|
127
|
+
};
|
128
|
+
const onDayKeyDown = (ev)=>{
|
129
|
+
if (ev.key === _keyboardkeys.Enter) {
|
130
|
+
onSelectDate === null || onSelectDate === void 0 ? void 0 : onSelectDate(day.originalDate);
|
131
|
+
} else {
|
132
|
+
navigateMonthEdge(ev, day.originalDate);
|
133
|
+
}
|
134
|
+
};
|
135
|
+
let ariaLabel = day.originalDate.getDate() + ', ' + strings.months[day.originalDate.getMonth()] + ', ' + day.originalDate.getFullYear();
|
136
|
+
if (day.isMarked) {
|
137
|
+
ariaLabel = ariaLabel + ', ' + strings.dayMarkedAriaLabel;
|
138
|
+
}
|
139
|
+
const isFocusable = !ariaHidden && (allFocusable || (day.isInBounds ? true : undefined));
|
140
|
+
return /*#__PURE__*/ _react.createElement("td", {
|
141
|
+
className: (0, _react1.mergeClasses)(classNames.dayCell, weekCorners && cornerStyle, day.isSelected && !day.isSingleSelected && classNames.daySelected, day.isSingleSelected && classNames.daySingleSelected, !day.isInBounds && classNames.dayOutsideBounds, !day.isInMonth && classNames.dayOutsideNavigatedMonth),
|
142
|
+
ref: (element)=>{
|
143
|
+
customDayCellRef === null || customDayCellRef === void 0 ? void 0 : customDayCellRef(element, day.originalDate, classNames);
|
144
|
+
day.setRef(element);
|
145
|
+
isNavigatedDate && (navigatedDayRef.current = element);
|
146
|
+
},
|
147
|
+
"aria-disabled": !ariaHidden && !day.isInBounds,
|
148
|
+
onClick: day.isInBounds && !ariaHidden ? day.onSelected : undefined,
|
149
|
+
onMouseOver: !ariaHidden ? onMouseOverDay : undefined,
|
150
|
+
onMouseDown: !ariaHidden ? onMouseDownDay : undefined,
|
151
|
+
onMouseUp: !ariaHidden ? onMouseUpDay : undefined,
|
152
|
+
onMouseOut: !ariaHidden ? onMouseOutDay : undefined,
|
153
|
+
onKeyDown: !ariaHidden ? onDayKeyDown : undefined,
|
154
|
+
role: "gridcell",
|
155
|
+
tabIndex: isNavigatedDate || isFocusable ? 0 : undefined,
|
156
|
+
"aria-current": day.isToday ? 'date' : undefined,
|
157
|
+
"aria-selected": day.isInBounds ? day.isSelected : undefined
|
158
|
+
}, /*#__PURE__*/ _react.createElement("button", {
|
159
|
+
key: day.key + 'button',
|
160
|
+
className: (0, _react1.mergeClasses)(classNames.dayButton, day.isToday && classNames.dayIsToday),
|
161
|
+
"aria-label": ariaLabel,
|
162
|
+
id: isNavigatedDate ? activeDescendantId : undefined,
|
163
|
+
disabled: !ariaHidden && !day.isInBounds,
|
164
|
+
type: "button",
|
165
|
+
tabIndex: -1
|
166
|
+
}, /*#__PURE__*/ _react.createElement("span", {
|
167
|
+
className: day.isToday ? (0, _react1.mergeClasses)(classNames.dayTodayMarker) : undefined
|
168
|
+
}, dateTimeFormatter.formatDay(day.originalDate)), day.isMarked && /*#__PURE__*/ _react.createElement("div", {
|
169
|
+
"aria-hidden": "true",
|
170
|
+
className: classNames.dayMarker
|
171
|
+
})));
|
172
|
+
};
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"sources":["../src/components/CalendarDayGrid/CalendarGridDayCell.tsx"],"sourcesContent":["import * as React from 'react';\nimport { ArrowDown, ArrowLeft, ArrowRight, ArrowUp, Enter } from '@fluentui/keyboard-keys';\nimport { getRTLSafeKey } from '@fluentui/react-utilities';\nimport { useFluent_unstable } from '@fluentui/react-shared-contexts';\nimport { mergeClasses } from '@griffel/react';\nimport { addDays, addWeeks, compareDates, findAvailableDate, DateRangeType } from '../../utils';\nimport { weekCornersClassNames } from './useWeekCornerStyles.styles';\nimport { extraCalendarDayGridClassNames } from './useCalendarDayGridStyles.styles';\nimport type { AvailableDateOptions } from '../../utils';\nimport type { DayInfo } from './CalendarDayGrid';\nimport type { CalendarGridRowProps } from './CalendarGridRow';\n\n/**\n * @internal\n */\nexport interface CalendarGridDayCellProps extends CalendarGridRowProps {\n day: DayInfo;\n dayIndex: number;\n}\n\n/**\n * @internal\n */\nexport const CalendarGridDayCell: React.FunctionComponent<CalendarGridDayCellProps> = props => {\n 'use no memo';\n\n const {\n navigatedDate,\n dateTimeFormatter,\n allFocusable,\n strings,\n activeDescendantId,\n navigatedDayRef,\n calculateRoundedStyles,\n weeks,\n classNames,\n day,\n dayIndex,\n weekIndex,\n weekCorners,\n ariaHidden,\n customDayCellRef,\n dateRangeType,\n daysToSelectInDayView,\n onSelectDate,\n restrictedDates,\n minDate,\n maxDate,\n onNavigateDate,\n getDayInfosInRangeOfDay,\n getRefsFromDayInfos,\n } = props;\n const cornerStyle = weekCorners?.[weekIndex + '_' + dayIndex] ?? '';\n const isNavigatedDate = compareDates(navigatedDate, day.originalDate);\n\n const { dir } = useFluent_unstable();\n\n const navigateMonthEdge = (ev: React.KeyboardEvent<HTMLElement>, date: Date): void => {\n let targetDate: Date | undefined = undefined;\n let direction = 1; // by default search forward\n\n if (ev.key === ArrowUp) {\n targetDate = addWeeks(date, -1);\n direction = -1;\n } else if (ev.key === ArrowDown) {\n targetDate = addWeeks(date, 1);\n } else if (ev.key === getRTLSafeKey(ArrowLeft, dir)) {\n targetDate = addDays(date, -1);\n direction = -1;\n } else if (ev.key === getRTLSafeKey(ArrowRight, dir)) {\n targetDate = addDays(date, 1);\n }\n\n if (!targetDate) {\n // if we couldn't find a target date at all, do nothing\n return;\n }\n\n const findAvailableDateOptions: AvailableDateOptions = {\n initialDate: date,\n targetDate,\n direction,\n restrictedDates,\n minDate,\n maxDate,\n };\n\n // target date is restricted, search in whatever direction until finding the next possible date,\n // stopping at boundaries\n let nextDate = findAvailableDate(findAvailableDateOptions);\n\n if (!nextDate) {\n // if no dates available in initial direction, try going backwards\n findAvailableDateOptions.direction = -direction;\n nextDate = findAvailableDate(findAvailableDateOptions);\n }\n\n // if the nextDate is still inside the same focusZone area, let the focusZone handle setting the focus so we\n // don't jump the view unnecessarily\n const isInCurrentView =\n weeks &&\n nextDate &&\n weeks.slice(1, weeks.length - 1).some((week: DayInfo[]) => {\n return week.some((dayToCompare: DayInfo) => {\n return compareDates(dayToCompare.originalDate, nextDate!);\n });\n });\n if (isInCurrentView) {\n return;\n }\n\n // else, fire navigation on the date to change the view to show it\n if (nextDate) {\n onNavigateDate(nextDate, true);\n ev.preventDefault();\n }\n };\n\n const onMouseOverDay = (ev: React.MouseEvent<HTMLElement>) => {\n const dayInfos = getDayInfosInRangeOfDay(day);\n const dayRefs = getRefsFromDayInfos(dayInfos);\n\n dayRefs.forEach((dayRef: HTMLElement | null, index: number) => {\n if (dayRef) {\n dayRef.classList.add(extraCalendarDayGridClassNames.hoverStyle);\n if (\n !dayInfos[index].isSelected &&\n dateRangeType === DateRangeType.Day &&\n daysToSelectInDayView &&\n daysToSelectInDayView > 1\n ) {\n // remove the static classes first to overwrite them\n dayRef.classList.remove(\n weekCornersClassNames.bottomLeftCornerDate!,\n weekCornersClassNames.bottomRightCornerDate!,\n weekCornersClassNames.topLeftCornerDate!,\n weekCornersClassNames.topRightCornerDate!,\n );\n\n const classNamesToAdd = calculateRoundedStyles(false, false, index > 0, index < dayRefs.length - 1).trim();\n if (classNamesToAdd) {\n dayRef.classList.add(...classNamesToAdd.trim().split(' '));\n }\n }\n }\n });\n };\n\n const onMouseDownDay = (ev: React.MouseEvent<HTMLElement>) => {\n const dayInfos = getDayInfosInRangeOfDay(day);\n const dayRefs = getRefsFromDayInfos(dayInfos);\n\n dayRefs.forEach((dayRef: HTMLElement | null) => {\n if (dayRef) {\n dayRef.classList.add(extraCalendarDayGridClassNames.pressedStyle);\n }\n });\n };\n\n const onMouseUpDay = (ev: React.MouseEvent<HTMLElement>) => {\n const dayInfos = getDayInfosInRangeOfDay(day);\n const dayRefs = getRefsFromDayInfos(dayInfos);\n\n dayRefs.forEach((dayRef: HTMLElement | null) => {\n if (dayRef) {\n dayRef.classList.remove(extraCalendarDayGridClassNames.pressedStyle);\n }\n });\n };\n\n const onMouseOutDay = (ev: React.MouseEvent<HTMLElement>) => {\n const dayInfos = getDayInfosInRangeOfDay(day);\n const dayRefs = getRefsFromDayInfos(dayInfos);\n\n dayRefs.forEach((dayRef: HTMLElement | null, index: number) => {\n if (dayRef) {\n dayRef.classList.remove(extraCalendarDayGridClassNames.hoverStyle);\n dayRef.classList.remove(extraCalendarDayGridClassNames.pressedStyle);\n if (\n !dayInfos[index].isSelected &&\n dateRangeType === DateRangeType.Day &&\n daysToSelectInDayView &&\n daysToSelectInDayView > 1\n ) {\n const classNamesToAdd = calculateRoundedStyles(false, false, index > 0, index < dayRefs.length - 1).trim();\n if (classNamesToAdd) {\n dayRef.classList.remove(...classNamesToAdd.trim().split(' '));\n }\n }\n }\n });\n };\n\n const onDayKeyDown = (ev: React.KeyboardEvent<HTMLElement>): void => {\n if (ev.key === Enter) {\n onSelectDate?.(day.originalDate);\n } else {\n navigateMonthEdge(ev, day.originalDate);\n }\n };\n\n let ariaLabel =\n day.originalDate.getDate() +\n ', ' +\n strings.months[day.originalDate.getMonth()] +\n ', ' +\n day.originalDate.getFullYear();\n\n if (day.isMarked) {\n ariaLabel = ariaLabel + ', ' + strings.dayMarkedAriaLabel;\n }\n\n const isFocusable = !ariaHidden && (allFocusable || (day.isInBounds ? true : undefined));\n\n return (\n <td\n className={mergeClasses(\n classNames.dayCell,\n weekCorners && cornerStyle,\n day.isSelected && !day.isSingleSelected && classNames.daySelected,\n day.isSingleSelected && classNames.daySingleSelected,\n !day.isInBounds && classNames.dayOutsideBounds,\n !day.isInMonth && classNames.dayOutsideNavigatedMonth,\n )}\n ref={(element: HTMLTableCellElement) => {\n customDayCellRef?.(element, day.originalDate, classNames);\n day.setRef(element);\n isNavigatedDate && (navigatedDayRef.current = element);\n }}\n aria-disabled={!ariaHidden && !day.isInBounds}\n onClick={day.isInBounds && !ariaHidden ? day.onSelected : undefined}\n onMouseOver={!ariaHidden ? onMouseOverDay : undefined}\n onMouseDown={!ariaHidden ? onMouseDownDay : undefined}\n onMouseUp={!ariaHidden ? onMouseUpDay : undefined}\n onMouseOut={!ariaHidden ? onMouseOutDay : undefined}\n onKeyDown={!ariaHidden ? onDayKeyDown : undefined}\n role=\"gridcell\"\n tabIndex={isNavigatedDate || isFocusable ? 0 : undefined}\n aria-current={day.isToday ? 'date' : undefined}\n aria-selected={day.isInBounds ? day.isSelected : undefined}\n >\n <button\n key={day.key + 'button'}\n className={mergeClasses(classNames.dayButton, day.isToday && classNames.dayIsToday)}\n aria-label={ariaLabel}\n id={isNavigatedDate ? activeDescendantId : undefined}\n disabled={!ariaHidden && !day.isInBounds}\n type=\"button\"\n tabIndex={-1}\n >\n <span className={day.isToday ? mergeClasses(classNames.dayTodayMarker) : undefined}>\n {dateTimeFormatter.formatDay(day.originalDate)}\n </span>\n {day.isMarked && <div aria-hidden=\"true\" className={classNames.dayMarker} />}\n </button>\n </td>\n );\n};\n"],"names":["CalendarGridDayCell","props","navigatedDate","dateTimeFormatter","allFocusable","strings","activeDescendantId","navigatedDayRef","calculateRoundedStyles","weeks","classNames","day","dayIndex","weekIndex","weekCorners","ariaHidden","customDayCellRef","dateRangeType","daysToSelectInDayView","onSelectDate","restrictedDates","minDate","maxDate","onNavigateDate","getDayInfosInRangeOfDay","getRefsFromDayInfos","cornerStyle","isNavigatedDate","compareDates","originalDate","dir","useFluent_unstable","navigateMonthEdge","ev","date","targetDate","undefined","direction","key","ArrowUp","addWeeks","ArrowDown","getRTLSafeKey","ArrowLeft","addDays","ArrowRight","findAvailableDateOptions","initialDate","nextDate","findAvailableDate","isInCurrentView","slice","length","some","week","dayToCompare","preventDefault","onMouseOverDay","dayInfos","dayRefs","forEach","dayRef","index","classList","add","extraCalendarDayGridClassNames","hoverStyle","isSelected","DateRangeType","Day","remove","weekCornersClassNames","bottomLeftCornerDate","bottomRightCornerDate","topLeftCornerDate","topRightCornerDate","classNamesToAdd","trim","split","onMouseDownDay","pressedStyle","onMouseUpDay","onMouseOutDay","onDayKeyDown","Enter","ariaLabel","getDate","months","getMonth","getFullYear","isMarked","dayMarkedAriaLabel","isFocusable","isInBounds","React","createElement","td","className","mergeClasses","dayCell","isSingleSelected","daySelected","daySingleSelected","dayOutsideBounds","isInMonth","dayOutsideNavigatedMonth","ref","element","setRef","current","aria-disabled","onClick","onSelected","onMouseOver","onMouseDown","onMouseUp","onMouseOut","onKeyDown","role","tabIndex","aria-current","isToday","aria-selected","button","dayButton","dayIsToday","aria-label","id","disabled","type","span","dayTodayMarker","formatDay","div","aria-hidden","dayMarker"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"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"}
|
@@ -0,0 +1,36 @@
|
|
1
|
+
"use strict";
|
2
|
+
Object.defineProperty(exports, "__esModule", {
|
3
|
+
value: true
|
4
|
+
});
|
5
|
+
Object.defineProperty(exports, "CalendarGridRow", {
|
6
|
+
enumerable: true,
|
7
|
+
get: function() {
|
8
|
+
return CalendarGridRow;
|
9
|
+
}
|
10
|
+
});
|
11
|
+
const _interop_require_wildcard = require("@swc/helpers/_/_interop_require_wildcard");
|
12
|
+
const _react = /*#__PURE__*/ _interop_require_wildcard._(require("react"));
|
13
|
+
const _utils = require("../../utils");
|
14
|
+
const _CalendarGridDayCell = require("./CalendarGridDayCell");
|
15
|
+
const CalendarGridRow = (props)=>{
|
16
|
+
const { ariaHidden, classNames, week, weeks, weekIndex, rowClassName, ariaRole, showWeekNumbers, firstDayOfWeek, firstWeekOfYear, navigatedDate, strings } = props;
|
17
|
+
const weekNumbers = showWeekNumbers ? (0, _utils.getWeekNumbersInMonth)(weeks.length, firstDayOfWeek, firstWeekOfYear, navigatedDate) : null;
|
18
|
+
const titleString = weekNumbers ? strings.weekNumberFormatString && strings.weekNumberFormatString.replace('{0}', `${weekNumbers[weekIndex]}`) : '';
|
19
|
+
return /*#__PURE__*/ _react.createElement("tr", {
|
20
|
+
role: ariaRole,
|
21
|
+
"aria-hidden": ariaHidden,
|
22
|
+
className: rowClassName,
|
23
|
+
key: weekIndex + '_' + week[0].key
|
24
|
+
}, showWeekNumbers && weekNumbers && /*#__PURE__*/ _react.createElement("th", {
|
25
|
+
className: classNames.weekNumberCell,
|
26
|
+
key: weekIndex,
|
27
|
+
title: titleString,
|
28
|
+
"aria-label": titleString,
|
29
|
+
scope: "row"
|
30
|
+
}, /*#__PURE__*/ _react.createElement("span", null, weekNumbers[weekIndex])), week.map((day, dayIndex)=>/*#__PURE__*/ _react.createElement(_CalendarGridDayCell.CalendarGridDayCell, {
|
31
|
+
...props,
|
32
|
+
key: day.key,
|
33
|
+
day: day,
|
34
|
+
dayIndex: dayIndex
|
35
|
+
})));
|
36
|
+
};
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"sources":["../src/components/CalendarDayGrid/CalendarGridRow.tsx"],"sourcesContent":["import * as React from 'react';\nimport { getWeekNumbersInMonth } from '../../utils';\nimport { CalendarGridDayCell } from './CalendarGridDayCell';\nimport type { CalendarDayGridProps, CalendarDayGridStyles } from './CalendarDayGrid.types';\nimport type { DayInfo } from './CalendarDayGrid';\nimport type { WeekCorners } from './useWeekCornerStyles.styles';\n\n/**\n * @internal\n */\nexport interface CalendarGridRowProps extends CalendarDayGridProps {\n classNames: CalendarDayGridStyles;\n weeks: DayInfo[][];\n week: DayInfo[];\n weekIndex: number;\n weekCorners?: WeekCorners;\n ariaHidden?: boolean;\n rowClassName?: string;\n ariaRole?: string;\n navigatedDayRef: React.MutableRefObject<HTMLTableCellElement>;\n activeDescendantId: string;\n calculateRoundedStyles(above: boolean, below: boolean, left: boolean, right: boolean): string;\n getDayInfosInRangeOfDay(dayToCompare: DayInfo): DayInfo[];\n getRefsFromDayInfos(dayInfosInRange: DayInfo[]): (HTMLElement | null)[];\n}\n\n/**\n * @internal\n */\nexport const CalendarGridRow: React.FunctionComponent<CalendarGridRowProps> = props => {\n const {\n ariaHidden,\n classNames,\n week,\n weeks,\n weekIndex,\n rowClassName,\n ariaRole,\n showWeekNumbers,\n firstDayOfWeek,\n firstWeekOfYear,\n navigatedDate,\n strings,\n } = props;\n const weekNumbers = showWeekNumbers\n ? getWeekNumbersInMonth(weeks!.length, firstDayOfWeek, firstWeekOfYear, navigatedDate)\n : null;\n\n const titleString = weekNumbers\n ? strings.weekNumberFormatString && strings.weekNumberFormatString.replace('{0}', `${weekNumbers[weekIndex]}`)\n : '';\n\n return (\n <tr role={ariaRole} aria-hidden={ariaHidden} className={rowClassName} key={weekIndex + '_' + week[0].key}>\n {showWeekNumbers && weekNumbers && (\n <th\n className={classNames.weekNumberCell}\n key={weekIndex}\n title={titleString}\n aria-label={titleString}\n scope=\"row\"\n >\n <span>{weekNumbers[weekIndex]}</span>\n </th>\n )}\n {week.map((day: DayInfo, dayIndex: number) => (\n <CalendarGridDayCell {...props} key={day.key} day={day} dayIndex={dayIndex} />\n ))}\n </tr>\n );\n};\n"],"names":["CalendarGridRow","props","ariaHidden","classNames","week","weeks","weekIndex","rowClassName","ariaRole","showWeekNumbers","firstDayOfWeek","firstWeekOfYear","navigatedDate","strings","weekNumbers","getWeekNumbersInMonth","length","titleString","weekNumberFormatString","replace","React","createElement","tr","role","aria-hidden","className","key","th","weekNumberCell","title","aria-label","scope","span","map","day","dayIndex","CalendarGridDayCell"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":";;;;+BA6BaA;;;eAAAA;;;;iEA7BU;uBACe;qCACF;AA2B7B,MAAMA,kBAAiEC,CAAAA;IAC5E,MAAM,EACJC,UAAU,EACVC,UAAU,EACVC,IAAI,EACJC,KAAK,EACLC,SAAS,EACTC,YAAY,EACZC,QAAQ,EACRC,eAAe,EACfC,cAAc,EACdC,eAAe,EACfC,aAAa,EACbC,OAAO,EACR,GAAGZ;IACJ,MAAMa,cAAcL,kBAChBM,IAAAA,4BAAAA,EAAsBV,MAAOW,MAAM,EAAEN,gBAAgBC,iBAAiBC,iBACtE;IAEJ,MAAMK,cAAcH,cAChBD,QAAQK,sBAAsB,IAAIL,QAAQK,sBAAsB,CAACC,OAAO,CAAC,OAAO,CAAC,EAAEL,WAAW,CAACR,UAAU,CAAC,CAAC,IAC3G;IAEJ,OAAA,WAAA,GACEc,OAAAC,aAAA,CAACC,MAAAA;QAAGC,MAAMf;QAAUgB,eAAatB;QAAYuB,WAAWlB;QAAcmB,KAAKpB,YAAY,MAAMF,IAAI,CAAC,EAAE,CAACsB,GAAG;OACrGjB,mBAAmBK,eAAAA,WAAAA,GAClBM,OAAAC,aAAA,CAACM,MAAAA;QACCF,WAAWtB,WAAWyB,cAAc;QACpCF,KAAKpB;QACLuB,OAAOZ;QACPa,cAAYb;QACZc,OAAM;qBAENX,OAAAC,aAAA,CAACW,QAAAA,MAAMlB,WAAW,CAACR,UAAU,IAGhCF,KAAK6B,GAAG,CAAC,CAACC,KAAcC,WAAAA,WAAAA,GACvBf,OAAAC,aAAA,CAACe,wCAAAA,EAAAA;YAAqB,GAAGnC,KAAK;YAAEyB,KAAKQ,IAAIR,GAAG;YAAEQ,KAAKA;YAAKC,UAAUA;;AAI1E"}
|
@@ -0,0 +1,45 @@
|
|
1
|
+
"use strict";
|
2
|
+
Object.defineProperty(exports, "__esModule", {
|
3
|
+
value: true
|
4
|
+
});
|
5
|
+
Object.defineProperty(exports, "CalendarMonthHeaderRow", {
|
6
|
+
enumerable: true,
|
7
|
+
get: function() {
|
8
|
+
return CalendarMonthHeaderRow;
|
9
|
+
}
|
10
|
+
});
|
11
|
+
const _interop_require_wildcard = require("@swc/helpers/_/_interop_require_wildcard");
|
12
|
+
const _react = /*#__PURE__*/ _interop_require_wildcard._(require("react"));
|
13
|
+
const _react1 = require("@griffel/react");
|
14
|
+
const _utils = require("../../utils");
|
15
|
+
const CalendarMonthHeaderRow = (props)=>{
|
16
|
+
const { showWeekNumbers, strings, firstDayOfWeek, allFocusable, weeksToShow, weeks, classNames } = props;
|
17
|
+
const dayLabels = strings.shortDays.slice();
|
18
|
+
let firstOfMonthIndex = -1;
|
19
|
+
const firstWeekOfMonth = weeks[1];
|
20
|
+
for(let i = 0; i < weeks[1].length; i++){
|
21
|
+
if (firstWeekOfMonth[i].originalDate.getDate() === 1) {
|
22
|
+
firstOfMonthIndex = i;
|
23
|
+
break;
|
24
|
+
}
|
25
|
+
}
|
26
|
+
if (weeksToShow === 1 && firstOfMonthIndex >= 0) {
|
27
|
+
// if we only show one week, replace the header with short month name
|
28
|
+
const firstOfMonthIndexOffset = (firstOfMonthIndex + firstDayOfWeek) % _utils.DAYS_IN_WEEK;
|
29
|
+
dayLabels[firstOfMonthIndexOffset] = strings.shortMonths[weeks[1][firstOfMonthIndex].originalDate.getMonth()];
|
30
|
+
}
|
31
|
+
return /*#__PURE__*/ _react.createElement("tr", null, showWeekNumbers && /*#__PURE__*/ _react.createElement("th", {
|
32
|
+
className: classNames.dayCell
|
33
|
+
}), dayLabels.map((val, index)=>{
|
34
|
+
const i = (index + firstDayOfWeek) % _utils.DAYS_IN_WEEK;
|
35
|
+
const label = strings.days[i];
|
36
|
+
return /*#__PURE__*/ _react.createElement("th", {
|
37
|
+
className: (0, _react1.mergeClasses)(classNames.dayCell, classNames.weekDayLabelCell),
|
38
|
+
scope: "col",
|
39
|
+
key: dayLabels[i] + ' ' + index,
|
40
|
+
title: label,
|
41
|
+
"aria-label": label,
|
42
|
+
tabIndex: allFocusable ? 0 : undefined
|
43
|
+
}, dayLabels[i]);
|
44
|
+
}));
|
45
|
+
};
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"sources":["../src/components/CalendarDayGrid/CalendarMonthHeaderRow.tsx"],"sourcesContent":["import * as React from 'react';\nimport { mergeClasses } from '@griffel/react';\nimport { DAYS_IN_WEEK } from '../../utils';\nimport type { CalendarDayGridProps, CalendarDayGridStyles } from './CalendarDayGrid.types';\nimport type { DayInfo } from './CalendarDayGrid';\n\n/**\n * @internal\n */\nexport interface CalendarDayMonthHeaderRowProps extends CalendarDayGridProps {\n weeks: DayInfo[][];\n classNames: CalendarDayGridStyles;\n}\n\n/**\n * @internal\n */\nexport const CalendarMonthHeaderRow: React.FunctionComponent<CalendarDayMonthHeaderRowProps> = props => {\n const { showWeekNumbers, strings, firstDayOfWeek, allFocusable, weeksToShow, weeks, classNames } = props;\n const dayLabels = strings.shortDays.slice();\n\n let firstOfMonthIndex = -1;\n const firstWeekOfMonth = weeks![1];\n for (let i = 0; i < weeks![1].length; i++) {\n if (firstWeekOfMonth[i].originalDate.getDate() === 1) {\n firstOfMonthIndex = i;\n break;\n }\n }\n\n if (weeksToShow === 1 && firstOfMonthIndex >= 0) {\n // if we only show one week, replace the header with short month name\n const firstOfMonthIndexOffset = (firstOfMonthIndex + firstDayOfWeek) % DAYS_IN_WEEK;\n dayLabels[firstOfMonthIndexOffset] = strings.shortMonths[weeks![1][firstOfMonthIndex].originalDate.getMonth()];\n }\n\n return (\n <tr>\n {showWeekNumbers && <th className={classNames.dayCell} />}\n {dayLabels.map((val: string, index: number) => {\n const i = (index + firstDayOfWeek) % DAYS_IN_WEEK;\n const label = strings.days[i];\n return (\n <th\n className={mergeClasses(classNames.dayCell, classNames.weekDayLabelCell)}\n scope=\"col\"\n key={dayLabels[i] + ' ' + index}\n title={label}\n aria-label={label}\n tabIndex={allFocusable ? 0 : undefined}\n >\n {dayLabels[i]}\n </th>\n );\n })}\n </tr>\n );\n};\n"],"names":["CalendarMonthHeaderRow","props","showWeekNumbers","strings","firstDayOfWeek","allFocusable","weeksToShow","weeks","classNames","dayLabels","shortDays","slice","firstOfMonthIndex","firstWeekOfMonth","i","length","originalDate","getDate","firstOfMonthIndexOffset","DAYS_IN_WEEK","shortMonths","getMonth","React","createElement","tr","th","className","dayCell","map","val","index","label","days","mergeClasses","weekDayLabelCell","scope","key","title","aria-label","tabIndex","undefined"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":";;;;+BAiBaA;;;eAAAA;;;;iEAjBU;wBACM;uBACA;AAetB,MAAMA,yBAAkFC,CAAAA;IAC7F,MAAM,EAAEC,eAAe,EAAEC,OAAO,EAAEC,cAAc,EAAEC,YAAY,EAAEC,WAAW,EAAEC,KAAK,EAAEC,UAAU,EAAE,GAAGP;IACnG,MAAMQ,YAAYN,QAAQO,SAAS,CAACC,KAAK;IAEzC,IAAIC,oBAAoB,CAAC;IACzB,MAAMC,mBAAmBN,KAAM,CAAC,EAAE;IAClC,IAAK,IAAIO,IAAI,GAAGA,IAAIP,KAAM,CAAC,EAAE,CAACQ,MAAM,EAAED,IAAK;QACzC,IAAID,gBAAgB,CAACC,EAAE,CAACE,YAAY,CAACC,OAAO,OAAO,GAAG;YACpDL,oBAAoBE;YACpB;QACF;IACF;IAEA,IAAIR,gBAAgB,KAAKM,qBAAqB,GAAG;QAC/C,qEAAqE;QACrE,MAAMM,0BAA0B,AAACN,CAAAA,oBAAoBR,cAAAA,IAAkBe,mBAAAA;QACvEV,SAAS,CAACS,wBAAwB,GAAGf,QAAQiB,WAAW,CAACb,KAAM,CAAC,EAAE,CAACK,kBAAkB,CAACI,YAAY,CAACK,QAAQ,GAAG;IAChH;IAEA,OAAA,WAAA,GACEC,OAAAC,aAAA,CAACC,MAAAA,MACEtB,mBAAAA,WAAAA,GAAmBoB,OAAAC,aAAA,CAACE,MAAAA;QAAGC,WAAWlB,WAAWmB,OAAO;QACpDlB,UAAUmB,GAAG,CAAC,CAACC,KAAaC;QAC3B,MAAMhB,IAAI,AAACgB,CAAAA,QAAQ1B,cAAAA,IAAkBe,mBAAAA;QACrC,MAAMY,QAAQ5B,QAAQ6B,IAAI,CAAClB,EAAE;QAC7B,OAAA,WAAA,GACEQ,OAAAC,aAAA,CAACE,MAAAA;YACCC,WAAWO,IAAAA,oBAAAA,EAAazB,WAAWmB,OAAO,EAAEnB,WAAW0B,gBAAgB;YACvEC,OAAM;YACNC,KAAK3B,SAAS,CAACK,EAAE,GAAG,MAAMgB;YAC1BO,OAAON;YACPO,cAAYP;YACZQ,UAAUlC,eAAe,IAAImC;WAE5B/B,SAAS,CAACK,EAAE;IAGnB;AAGN"}
|
@@ -0,0 +1,26 @@
|
|
1
|
+
"use strict";
|
2
|
+
Object.defineProperty(exports, "__esModule", {
|
3
|
+
value: true
|
4
|
+
});
|
5
|
+
function _export(target, all) {
|
6
|
+
for(var name in all)Object.defineProperty(target, name, {
|
7
|
+
enumerable: true,
|
8
|
+
get: all[name]
|
9
|
+
});
|
10
|
+
}
|
11
|
+
_export(exports, {
|
12
|
+
CalendarDayGrid: function() {
|
13
|
+
return _CalendarDayGrid.CalendarDayGrid;
|
14
|
+
},
|
15
|
+
calendarDayGridClassNames: function() {
|
16
|
+
return _useCalendarDayGridStylesstyles.calendarDayGridClassNames;
|
17
|
+
},
|
18
|
+
extraCalendarDayGridClassNames: function() {
|
19
|
+
return _useCalendarDayGridStylesstyles.extraCalendarDayGridClassNames;
|
20
|
+
},
|
21
|
+
useCalendarDayGridStyles_unstable: function() {
|
22
|
+
return _useCalendarDayGridStylesstyles.useCalendarDayGridStyles_unstable;
|
23
|
+
}
|
24
|
+
});
|
25
|
+
const _CalendarDayGrid = require("./CalendarDayGrid");
|
26
|
+
const _useCalendarDayGridStylesstyles = require("./useCalendarDayGridStyles.styles");
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"sources":["../src/components/CalendarDayGrid/index.ts"],"sourcesContent":["export type { DayInfo } from './CalendarDayGrid';\nexport { CalendarDayGrid } from './CalendarDayGrid';\nexport type {\n CalendarDayGridProps,\n CalendarDayGridStyleProps,\n CalendarDayGridStyles,\n ICalendarDayGrid,\n} from './CalendarDayGrid.types';\nexport {\n calendarDayGridClassNames,\n extraCalendarDayGridClassNames,\n useCalendarDayGridStyles_unstable,\n} from './useCalendarDayGridStyles.styles';\nexport type { WeekCorners } from './useWeekCornerStyles.styles';\n"],"names":["CalendarDayGrid","calendarDayGridClassNames","extraCalendarDayGridClassNames","useCalendarDayGridStyles_unstable"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;","mappings":";;;;;;;;;;;IACSA,eAAe;eAAfA,gCAAe;;IAQtBC,yBAAyB;eAAzBA,yDAAyB;;IACzBC,8BAA8B;eAA9BA,8DAA8B;;IAC9BC,iCAAiC;eAAjCA,iEAAiC;;;iCAVH;gDAWzB"}
|