@fluentui/react-calendar-compat 0.0.0-nightly-20250423-1342.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.
Files changed (227) hide show
  1. package/CHANGELOG.md +12 -12
  2. package/dist/index.d.ts +1422 -0
  3. package/lib/Calendar.js +1 -0
  4. package/lib/Calendar.js.map +1 -0
  5. package/lib/CalendarDay.js +1 -0
  6. package/lib/CalendarDay.js.map +1 -0
  7. package/lib/CalendarDayGrid.js +1 -0
  8. package/lib/CalendarDayGrid.js.map +1 -0
  9. package/lib/CalendarMonth.js +1 -0
  10. package/lib/CalendarMonth.js.map +1 -0
  11. package/lib/CalendarPicker.js +1 -0
  12. package/lib/CalendarPicker.js.map +1 -0
  13. package/lib/CalendarYear.js +1 -0
  14. package/lib/CalendarYear.js.map +1 -0
  15. package/lib/components/Calendar/Calendar.js +308 -0
  16. package/lib/components/Calendar/Calendar.js.map +1 -0
  17. package/lib/components/Calendar/Calendar.types.js +10 -0
  18. package/lib/components/Calendar/Calendar.types.js.map +1 -0
  19. package/lib/components/Calendar/calendarNavigationIcons.js +7 -0
  20. package/lib/components/Calendar/calendarNavigationIcons.js.map +1 -0
  21. package/lib/components/Calendar/defaults.js +2 -0
  22. package/lib/components/Calendar/defaults.js.map +1 -0
  23. package/lib/components/Calendar/index.js +4 -0
  24. package/lib/components/Calendar/index.js.map +1 -0
  25. package/lib/components/Calendar/useCalendarStyles.styles.js +204 -0
  26. package/lib/components/Calendar/useCalendarStyles.styles.js.map +1 -0
  27. package/lib/components/CalendarDay/CalendarDay.js +107 -0
  28. package/lib/components/CalendarDay/CalendarDay.js.map +1 -0
  29. package/lib/components/CalendarDay/CalendarDay.types.js +1 -0
  30. package/lib/components/CalendarDay/CalendarDay.types.js.map +1 -0
  31. package/lib/components/CalendarDay/index.js +2 -0
  32. package/lib/components/CalendarDay/index.js.map +1 -0
  33. package/lib/components/CalendarDay/useCalendarDayStyles.styles.js +227 -0
  34. package/lib/components/CalendarDay/useCalendarDayStyles.styles.js.map +1 -0
  35. package/lib/components/CalendarDayGrid/CalendarDayGrid.js +169 -0
  36. package/lib/components/CalendarDayGrid/CalendarDayGrid.js.map +1 -0
  37. package/lib/components/CalendarDayGrid/CalendarDayGrid.types.js +1 -0
  38. package/lib/components/CalendarDayGrid/CalendarDayGrid.types.js.map +1 -0
  39. package/lib/components/CalendarDayGrid/CalendarGridDayCell.js +163 -0
  40. package/lib/components/CalendarDayGrid/CalendarGridDayCell.js.map +1 -0
  41. package/lib/components/CalendarDayGrid/CalendarGridRow.js +27 -0
  42. package/lib/components/CalendarDayGrid/CalendarGridRow.js.map +1 -0
  43. package/lib/components/CalendarDayGrid/CalendarMonthHeaderRow.js +36 -0
  44. package/lib/components/CalendarDayGrid/CalendarMonthHeaderRow.js.map +1 -0
  45. package/lib/components/CalendarDayGrid/index.js +2 -0
  46. package/lib/components/CalendarDayGrid/index.js.map +1 -0
  47. package/lib/components/CalendarDayGrid/useCalendarDayGridStyles.styles.js +620 -0
  48. package/lib/components/CalendarDayGrid/useCalendarDayGridStyles.styles.js.map +1 -0
  49. package/lib/components/CalendarDayGrid/useWeekCornerStyles.styles.js +97 -0
  50. package/lib/components/CalendarDayGrid/useWeekCornerStyles.styles.js.map +1 -0
  51. package/lib/components/CalendarDayGrid/useWeeks.js +46 -0
  52. package/lib/components/CalendarDayGrid/useWeeks.js.map +1 -0
  53. package/lib/components/CalendarMonth/CalendarMonth.js +261 -0
  54. package/lib/components/CalendarMonth/CalendarMonth.js.map +1 -0
  55. package/lib/components/CalendarMonth/CalendarMonth.types.js +1 -0
  56. package/lib/components/CalendarMonth/CalendarMonth.types.js.map +1 -0
  57. package/lib/components/CalendarMonth/index.js +2 -0
  58. package/lib/components/CalendarMonth/index.js.map +1 -0
  59. package/lib/components/CalendarMonth/useCalendarMonthStyles.styles.js +11 -0
  60. package/lib/components/CalendarMonth/useCalendarMonthStyles.styles.js.map +1 -0
  61. package/lib/components/CalendarPicker/CalendarPicker.types.js +3 -0
  62. package/lib/components/CalendarPicker/CalendarPicker.types.js.map +1 -0
  63. package/lib/components/CalendarPicker/index.js +1 -0
  64. package/lib/components/CalendarPicker/index.js.map +1 -0
  65. package/lib/components/CalendarPicker/useCalendarPickerStyles.styles.js +462 -0
  66. package/lib/components/CalendarPicker/useCalendarPickerStyles.styles.js.map +1 -0
  67. package/lib/components/CalendarYear/CalendarYear.js +298 -0
  68. package/lib/components/CalendarYear/CalendarYear.js.map +1 -0
  69. package/lib/components/CalendarYear/CalendarYear.types.js +1 -0
  70. package/lib/components/CalendarYear/CalendarYear.types.js.map +1 -0
  71. package/lib/components/CalendarYear/index.js +2 -0
  72. package/lib/components/CalendarYear/index.js.map +1 -0
  73. package/lib/components/CalendarYear/useCalendarYearStyles.styles.js +11 -0
  74. package/lib/components/CalendarYear/useCalendarYearStyles.styles.js.map +1 -0
  75. package/lib/index.js +7 -0
  76. package/lib/index.js.map +1 -0
  77. package/lib/utils/animations.js +96 -0
  78. package/lib/utils/animations.js.map +1 -0
  79. package/lib/utils/constants.js +62 -0
  80. package/lib/utils/constants.js.map +1 -0
  81. package/lib/utils/dateFormatting/dateFormatting.defaults.js +95 -0
  82. package/lib/utils/dateFormatting/dateFormatting.defaults.js.map +1 -0
  83. package/lib/utils/dateFormatting/dateFormatting.types.js +1 -0
  84. package/lib/utils/dateFormatting/dateFormatting.types.js.map +1 -0
  85. package/lib/utils/dateFormatting/index.js +1 -0
  86. package/lib/utils/dateFormatting/index.js.map +1 -0
  87. package/lib/utils/dateGrid/dateGrid.types.js +1 -0
  88. package/lib/utils/dateGrid/dateGrid.types.js.map +1 -0
  89. package/lib/utils/dateGrid/findAvailableDate.js +22 -0
  90. package/lib/utils/dateGrid/findAvailableDate.js.map +1 -0
  91. package/lib/utils/dateGrid/getBoundedDateRange.js +18 -0
  92. package/lib/utils/dateGrid/getBoundedDateRange.js.map +1 -0
  93. package/lib/utils/dateGrid/getDateRangeTypeToUse.js +16 -0
  94. package/lib/utils/dateGrid/getDateRangeTypeToUse.js.map +1 -0
  95. package/lib/utils/dateGrid/getDayGrid.js +72 -0
  96. package/lib/utils/dateGrid/getDayGrid.js.map +1 -0
  97. package/lib/utils/dateGrid/index.js +4 -0
  98. package/lib/utils/dateGrid/index.js.map +1 -0
  99. package/lib/utils/dateGrid/isAfterMaxDate.js +9 -0
  100. package/lib/utils/dateGrid/isAfterMaxDate.js.map +1 -0
  101. package/lib/utils/dateGrid/isBeforeMinDate.js +9 -0
  102. package/lib/utils/dateGrid/isBeforeMinDate.js.map +1 -0
  103. package/lib/utils/dateGrid/isContiguous.js +18 -0
  104. package/lib/utils/dateGrid/isContiguous.js.map +1 -0
  105. package/lib/utils/dateGrid/isRestrictedDate.js +15 -0
  106. package/lib/utils/dateGrid/isRestrictedDate.js.map +1 -0
  107. package/lib/utils/dateMath/dateMath.js +339 -0
  108. package/lib/utils/dateMath/dateMath.js.map +1 -0
  109. package/lib/utils/dateMath/index.js +1 -0
  110. package/lib/utils/dateMath/index.js.map +1 -0
  111. package/lib/utils/focus.js +24 -0
  112. package/lib/utils/focus.js.map +1 -0
  113. package/lib/utils/index.js +6 -0
  114. package/lib/utils/index.js.map +1 -0
  115. package/lib-commonjs/Calendar.js +28 -0
  116. package/lib-commonjs/Calendar.js.map +1 -0
  117. package/lib-commonjs/CalendarDay.js +22 -0
  118. package/lib-commonjs/CalendarDay.js.map +1 -0
  119. package/lib-commonjs/CalendarDayGrid.js +25 -0
  120. package/lib-commonjs/CalendarDayGrid.js.map +1 -0
  121. package/lib-commonjs/CalendarMonth.js +19 -0
  122. package/lib-commonjs/CalendarMonth.js.map +1 -0
  123. package/lib-commonjs/CalendarPicker.js +19 -0
  124. package/lib-commonjs/CalendarPicker.js.map +1 -0
  125. package/lib-commonjs/CalendarYear.js +19 -0
  126. package/lib-commonjs/CalendarYear.js.map +1 -0
  127. package/lib-commonjs/components/Calendar/Calendar.js +317 -0
  128. package/lib-commonjs/components/Calendar/Calendar.js.map +1 -0
  129. package/lib-commonjs/components/Calendar/Calendar.types.js +21 -0
  130. package/lib-commonjs/components/Calendar/Calendar.types.js.map +1 -0
  131. package/lib-commonjs/components/Calendar/calendarNavigationIcons.js +18 -0
  132. package/lib-commonjs/components/Calendar/calendarNavigationIcons.js.map +1 -0
  133. package/lib-commonjs/components/Calendar/defaults.js +12 -0
  134. package/lib-commonjs/components/Calendar/defaults.js.map +1 -0
  135. package/lib-commonjs/components/Calendar/index.js +31 -0
  136. package/lib-commonjs/components/Calendar/index.js.map +1 -0
  137. package/lib-commonjs/components/Calendar/useCalendarStyles.styles.js +311 -0
  138. package/lib-commonjs/components/Calendar/useCalendarStyles.styles.js.map +1 -0
  139. package/lib-commonjs/components/CalendarDay/CalendarDay.js +116 -0
  140. package/lib-commonjs/components/CalendarDay/CalendarDay.js.map +1 -0
  141. package/lib-commonjs/components/CalendarDay/CalendarDay.types.js +6 -0
  142. package/lib-commonjs/components/CalendarDay/CalendarDay.types.js.map +1 -0
  143. package/lib-commonjs/components/CalendarDay/index.js +23 -0
  144. package/lib-commonjs/components/CalendarDay/index.js.map +1 -0
  145. package/lib-commonjs/components/CalendarDay/useCalendarDayStyles.styles.js +370 -0
  146. package/lib-commonjs/components/CalendarDay/useCalendarDayStyles.styles.js.map +1 -0
  147. package/lib-commonjs/components/CalendarDayGrid/CalendarDayGrid.js +180 -0
  148. package/lib-commonjs/components/CalendarDayGrid/CalendarDayGrid.js.map +1 -0
  149. package/lib-commonjs/components/CalendarDayGrid/CalendarDayGrid.types.js +6 -0
  150. package/lib-commonjs/components/CalendarDayGrid/CalendarDayGrid.types.js.map +1 -0
  151. package/lib-commonjs/components/CalendarDayGrid/CalendarGridDayCell.js +172 -0
  152. package/lib-commonjs/components/CalendarDayGrid/CalendarGridDayCell.js.map +1 -0
  153. package/lib-commonjs/components/CalendarDayGrid/CalendarGridRow.js +36 -0
  154. package/lib-commonjs/components/CalendarDayGrid/CalendarGridRow.js.map +1 -0
  155. package/lib-commonjs/components/CalendarDayGrid/CalendarMonthHeaderRow.js +45 -0
  156. package/lib-commonjs/components/CalendarDayGrid/CalendarMonthHeaderRow.js.map +1 -0
  157. package/lib-commonjs/components/CalendarDayGrid/index.js +26 -0
  158. package/lib-commonjs/components/CalendarDayGrid/index.js.map +1 -0
  159. package/lib-commonjs/components/CalendarDayGrid/useCalendarDayGridStyles.styles.js +1121 -0
  160. package/lib-commonjs/components/CalendarDayGrid/useCalendarDayGridStyles.styles.js.map +1 -0
  161. package/lib-commonjs/components/CalendarDayGrid/useWeekCornerStyles.styles.js +105 -0
  162. package/lib-commonjs/components/CalendarDayGrid/useWeekCornerStyles.styles.js.map +1 -0
  163. package/lib-commonjs/components/CalendarDayGrid/useWeeks.js +55 -0
  164. package/lib-commonjs/components/CalendarDayGrid/useWeeks.js.map +1 -0
  165. package/lib-commonjs/components/CalendarMonth/CalendarMonth.js +270 -0
  166. package/lib-commonjs/components/CalendarMonth/CalendarMonth.js.map +1 -0
  167. package/lib-commonjs/components/CalendarMonth/CalendarMonth.types.js +6 -0
  168. package/lib-commonjs/components/CalendarMonth/CalendarMonth.types.js.map +1 -0
  169. package/lib-commonjs/components/CalendarMonth/index.js +20 -0
  170. package/lib-commonjs/components/CalendarMonth/index.js.map +1 -0
  171. package/lib-commonjs/components/CalendarMonth/useCalendarMonthStyles.styles.js +15 -0
  172. package/lib-commonjs/components/CalendarMonth/useCalendarMonthStyles.styles.js.map +1 -0
  173. package/lib-commonjs/components/CalendarPicker/CalendarPicker.types.js +6 -0
  174. package/lib-commonjs/components/CalendarPicker/CalendarPicker.types.js.map +1 -0
  175. package/lib-commonjs/components/CalendarPicker/index.js +19 -0
  176. package/lib-commonjs/components/CalendarPicker/index.js.map +1 -0
  177. package/lib-commonjs/components/CalendarPicker/useCalendarPickerStyles.styles.js +773 -0
  178. package/lib-commonjs/components/CalendarPicker/useCalendarPickerStyles.styles.js.map +1 -0
  179. package/lib-commonjs/components/CalendarYear/CalendarYear.js +307 -0
  180. package/lib-commonjs/components/CalendarYear/CalendarYear.js.map +1 -0
  181. package/lib-commonjs/components/CalendarYear/CalendarYear.types.js +6 -0
  182. package/lib-commonjs/components/CalendarYear/CalendarYear.types.js.map +1 -0
  183. package/lib-commonjs/components/CalendarYear/index.js +20 -0
  184. package/lib-commonjs/components/CalendarYear/index.js.map +1 -0
  185. package/lib-commonjs/components/CalendarYear/useCalendarYearStyles.styles.js +15 -0
  186. package/lib-commonjs/components/CalendarYear/useCalendarYearStyles.styles.js.map +1 -0
  187. package/lib-commonjs/index.js +154 -0
  188. package/lib-commonjs/index.js.map +1 -0
  189. package/lib-commonjs/utils/animations.js +153 -0
  190. package/lib-commonjs/utils/animations.js.map +1 -0
  191. package/lib-commonjs/utils/constants.js +92 -0
  192. package/lib-commonjs/utils/constants.js.map +1 -0
  193. package/lib-commonjs/utils/dateFormatting/dateFormatting.defaults.js +116 -0
  194. package/lib-commonjs/utils/dateFormatting/dateFormatting.defaults.js.map +1 -0
  195. package/lib-commonjs/utils/dateFormatting/dateFormatting.types.js +4 -0
  196. package/lib-commonjs/utils/dateFormatting/dateFormatting.types.js.map +1 -0
  197. package/lib-commonjs/utils/dateFormatting/index.js +37 -0
  198. package/lib-commonjs/utils/dateFormatting/index.js.map +1 -0
  199. package/lib-commonjs/utils/dateGrid/dateGrid.types.js +4 -0
  200. package/lib-commonjs/utils/dateGrid/dateGrid.types.js.map +1 -0
  201. package/lib-commonjs/utils/dateGrid/findAvailableDate.js +29 -0
  202. package/lib-commonjs/utils/dateGrid/findAvailableDate.js.map +1 -0
  203. package/lib-commonjs/utils/dateGrid/getBoundedDateRange.js +23 -0
  204. package/lib-commonjs/utils/dateGrid/getBoundedDateRange.js.map +1 -0
  205. package/lib-commonjs/utils/dateGrid/getDateRangeTypeToUse.js +20 -0
  206. package/lib-commonjs/utils/dateGrid/getDateRangeTypeToUse.js.map +1 -0
  207. package/lib-commonjs/utils/dateGrid/getDayGrid.js +77 -0
  208. package/lib-commonjs/utils/dateGrid/getDayGrid.js.map +1 -0
  209. package/lib-commonjs/utils/dateGrid/index.js +28 -0
  210. package/lib-commonjs/utils/dateGrid/index.js.map +1 -0
  211. package/lib-commonjs/utils/dateGrid/isAfterMaxDate.js +15 -0
  212. package/lib-commonjs/utils/dateGrid/isAfterMaxDate.js.map +1 -0
  213. package/lib-commonjs/utils/dateGrid/isBeforeMinDate.js +15 -0
  214. package/lib-commonjs/utils/dateGrid/isBeforeMinDate.js.map +1 -0
  215. package/lib-commonjs/utils/dateGrid/isContiguous.js +28 -0
  216. package/lib-commonjs/utils/dateGrid/isContiguous.js.map +1 -0
  217. package/lib-commonjs/utils/dateGrid/isRestrictedDate.js +21 -0
  218. package/lib-commonjs/utils/dateGrid/isRestrictedDate.js.map +1 -0
  219. package/lib-commonjs/utils/dateMath/dateMath.js +308 -0
  220. package/lib-commonjs/utils/dateMath/dateMath.js.map +1 -0
  221. package/lib-commonjs/utils/dateMath/index.js +67 -0
  222. package/lib-commonjs/utils/dateMath/index.js.map +1 -0
  223. package/lib-commonjs/utils/focus.js +29 -0
  224. package/lib-commonjs/utils/focus.js.map +1 -0
  225. package/lib-commonjs/utils/index.js +174 -0
  226. package/lib-commonjs/utils/index.js.map +1 -0
  227. 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"}