@fluentui/react-datepicker-compat 0.1.3 → 0.1.5

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 (256) hide show
  1. package/CHANGELOG.json +133 -1
  2. package/CHANGELOG.md +37 -2
  3. package/lib/Calendar.js +0 -1
  4. package/lib/Calendar.js.map +1 -1
  5. package/lib/CalendarDay.js +0 -1
  6. package/lib/CalendarDay.js.map +1 -1
  7. package/lib/CalendarDayGrid.js +0 -1
  8. package/lib/CalendarDayGrid.js.map +1 -1
  9. package/lib/CalendarMonth.js +0 -1
  10. package/lib/CalendarMonth.js.map +1 -1
  11. package/lib/CalendarPicker.js +0 -1
  12. package/lib/CalendarPicker.js.map +1 -1
  13. package/lib/CalendarYear.js +0 -1
  14. package/lib/CalendarYear.js.map +1 -1
  15. package/lib/DatePicker.js +0 -1
  16. package/lib/DatePicker.js.map +1 -1
  17. package/lib/components/Calendar/Calendar.js +278 -300
  18. package/lib/components/Calendar/Calendar.js.map +1 -1
  19. package/lib/components/Calendar/Calendar.types.js +7 -12
  20. package/lib/components/Calendar/Calendar.types.js.map +1 -1
  21. package/lib/components/Calendar/defaults.js +0 -1
  22. package/lib/components/Calendar/defaults.js.map +1 -1
  23. package/lib/components/Calendar/index.js +0 -1
  24. package/lib/components/Calendar/index.js.map +1 -1
  25. package/lib/components/Calendar/useCalendarStyles.styles.js.map +1 -1
  26. package/lib/components/CalendarDay/CalendarDay.js +100 -128
  27. package/lib/components/CalendarDay/CalendarDay.js.map +1 -1
  28. package/lib/components/CalendarDay/CalendarDay.types.js +0 -1
  29. package/lib/components/CalendarDay/CalendarDay.types.js.map +1 -1
  30. package/lib/components/CalendarDay/index.js +0 -1
  31. package/lib/components/CalendarDay/index.js.map +1 -1
  32. package/lib/components/CalendarDay/useCalendarDayStyles.styles.js.map +1 -1
  33. package/lib/components/CalendarDayGrid/CalendarDayGrid.js +146 -159
  34. package/lib/components/CalendarDayGrid/CalendarDayGrid.js.map +1 -1
  35. package/lib/components/CalendarDayGrid/CalendarDayGrid.types.js +0 -1
  36. package/lib/components/CalendarDayGrid/CalendarDayGrid.types.js.map +1 -1
  37. package/lib/components/CalendarDayGrid/CalendarGridDayCell.js +150 -179
  38. package/lib/components/CalendarDayGrid/CalendarGridDayCell.js.map +1 -1
  39. package/lib/components/CalendarDayGrid/CalendarGridRow.js +20 -34
  40. package/lib/components/CalendarDayGrid/CalendarGridRow.js.map +1 -1
  41. package/lib/components/CalendarDayGrid/CalendarMonthHeaderRow.js +29 -39
  42. package/lib/components/CalendarDayGrid/CalendarMonthHeaderRow.js.map +1 -1
  43. package/lib/components/CalendarDayGrid/index.js +0 -1
  44. package/lib/components/CalendarDayGrid/index.js.map +1 -1
  45. package/lib/components/CalendarDayGrid/useCalendarDayGridStyles.styles.js.map +1 -1
  46. package/lib/components/CalendarDayGrid/useWeekCornerStyles.styles.js.map +1 -1
  47. package/lib/components/CalendarDayGrid/useWeeks.js +34 -36
  48. package/lib/components/CalendarDayGrid/useWeeks.js.map +1 -1
  49. package/lib/components/CalendarMonth/CalendarMonth.js +238 -258
  50. package/lib/components/CalendarMonth/CalendarMonth.js.map +1 -1
  51. package/lib/components/CalendarMonth/CalendarMonth.types.js +0 -1
  52. package/lib/components/CalendarMonth/CalendarMonth.types.js.map +1 -1
  53. package/lib/components/CalendarMonth/index.js +0 -1
  54. package/lib/components/CalendarMonth/index.js.map +1 -1
  55. package/lib/components/CalendarMonth/useCalendarMonthStyles.js +2 -4
  56. package/lib/components/CalendarMonth/useCalendarMonthStyles.js.map +1 -1
  57. package/lib/components/CalendarPicker/CalendarPicker.types.js +1 -2
  58. package/lib/components/CalendarPicker/CalendarPicker.types.js.map +1 -1
  59. package/lib/components/CalendarPicker/index.js +0 -1
  60. package/lib/components/CalendarPicker/index.js.map +1 -1
  61. package/lib/components/CalendarPicker/useCalendarPickerStyles.styles.js.map +1 -1
  62. package/lib/components/CalendarYear/CalendarYear.js +260 -312
  63. package/lib/components/CalendarYear/CalendarYear.js.map +1 -1
  64. package/lib/components/CalendarYear/CalendarYear.types.js +0 -1
  65. package/lib/components/CalendarYear/CalendarYear.types.js.map +1 -1
  66. package/lib/components/CalendarYear/index.js +0 -1
  67. package/lib/components/CalendarYear/index.js.map +1 -1
  68. package/lib/components/CalendarYear/useCalendarYearStyles.styles.js.map +1 -1
  69. package/lib/components/DatePicker/DatePicker.js +4 -5
  70. package/lib/components/DatePicker/DatePicker.js.map +1 -1
  71. package/lib/components/DatePicker/DatePicker.types.js +0 -1
  72. package/lib/components/DatePicker/DatePicker.types.js.map +1 -1
  73. package/lib/components/DatePicker/defaults.js +9 -10
  74. package/lib/components/DatePicker/defaults.js.map +1 -1
  75. package/lib/components/DatePicker/index.js +0 -1
  76. package/lib/components/DatePicker/index.js.map +1 -1
  77. package/lib/components/DatePicker/renderDatePicker.js +5 -12
  78. package/lib/components/DatePicker/renderDatePicker.js.map +1 -1
  79. package/lib/components/DatePicker/useDatePicker.js +401 -353
  80. package/lib/components/DatePicker/useDatePicker.js.map +1 -1
  81. package/lib/components/DatePicker/useDatePickerStyles.styles.js.map +1 -1
  82. package/lib/index.js +0 -1
  83. package/lib/index.js.map +1 -1
  84. package/lib/utils/animations.js +72 -73
  85. package/lib/utils/animations.js.map +1 -1
  86. package/lib/utils/constants.js +50 -52
  87. package/lib/utils/constants.js.map +1 -1
  88. package/lib/utils/dateFormatting/dateFormatting.defaults.js +71 -34
  89. package/lib/utils/dateFormatting/dateFormatting.defaults.js.map +1 -1
  90. package/lib/utils/dateFormatting/dateFormatting.types.js +1 -2
  91. package/lib/utils/dateFormatting/dateFormatting.types.js.map +1 -1
  92. package/lib/utils/dateFormatting/index.js +0 -1
  93. package/lib/utils/dateFormatting/index.js.map +1 -1
  94. package/lib/utils/dateGrid/dateGrid.types.js +1 -2
  95. package/lib/utils/dateGrid/dateGrid.types.js.map +1 -1
  96. package/lib/utils/dateGrid/findAvailableDate.js +14 -21
  97. package/lib/utils/dateGrid/findAvailableDate.js.map +1 -1
  98. package/lib/utils/dateGrid/getBoundedDateRange.js +11 -11
  99. package/lib/utils/dateGrid/getBoundedDateRange.js.map +1 -1
  100. package/lib/utils/dateGrid/getDateRangeTypeToUse.js +6 -8
  101. package/lib/utils/dateGrid/getDateRangeTypeToUse.js.map +1 -1
  102. package/lib/utils/dateGrid/getDayGrid.js +59 -73
  103. package/lib/utils/dateGrid/getDayGrid.js.map +1 -1
  104. package/lib/utils/dateGrid/index.js +0 -1
  105. package/lib/utils/dateGrid/index.js.map +1 -1
  106. package/lib/utils/dateGrid/isAfterMaxDate.js +3 -7
  107. package/lib/utils/dateGrid/isAfterMaxDate.js.map +1 -1
  108. package/lib/utils/dateGrid/isBeforeMinDate.js +3 -7
  109. package/lib/utils/dateGrid/isBeforeMinDate.js.map +1 -1
  110. package/lib/utils/dateGrid/isContiguous.js +11 -12
  111. package/lib/utils/dateGrid/isContiguous.js.map +1 -1
  112. package/lib/utils/dateGrid/isRestrictedDate.js +7 -13
  113. package/lib/utils/dateGrid/isRestrictedDate.js.map +1 -1
  114. package/lib/utils/dateMath/dateMath.js +179 -198
  115. package/lib/utils/dateMath/dateMath.js.map +1 -1
  116. package/lib/utils/dateMath/index.js +0 -1
  117. package/lib/utils/dateMath/index.js.map +1 -1
  118. package/lib/utils/dom.js +5 -6
  119. package/lib/utils/dom.js.map +1 -1
  120. package/lib/utils/focus.js +17 -19
  121. package/lib/utils/focus.js.map +1 -1
  122. package/lib/utils/index.js +0 -1
  123. package/lib/utils/index.js.map +1 -1
  124. package/lib/utils/usePopupPositioning.js +12 -16
  125. package/lib/utils/usePopupPositioning.js.map +1 -1
  126. package/lib-commonjs/Calendar.js +0 -3
  127. package/lib-commonjs/Calendar.js.map +1 -1
  128. package/lib-commonjs/CalendarDay.js +0 -3
  129. package/lib-commonjs/CalendarDay.js.map +1 -1
  130. package/lib-commonjs/CalendarDayGrid.js +0 -3
  131. package/lib-commonjs/CalendarDayGrid.js.map +1 -1
  132. package/lib-commonjs/CalendarMonth.js +0 -3
  133. package/lib-commonjs/CalendarMonth.js.map +1 -1
  134. package/lib-commonjs/CalendarPicker.js +0 -3
  135. package/lib-commonjs/CalendarPicker.js.map +1 -1
  136. package/lib-commonjs/CalendarYear.js +0 -3
  137. package/lib-commonjs/CalendarYear.js.map +1 -1
  138. package/lib-commonjs/DatePicker.js +0 -3
  139. package/lib-commonjs/DatePicker.js.map +1 -1
  140. package/lib-commonjs/components/Calendar/Calendar.js +1 -3
  141. package/lib-commonjs/components/Calendar/Calendar.js.map +1 -1
  142. package/lib-commonjs/components/Calendar/Calendar.types.js +5 -7
  143. package/lib-commonjs/components/Calendar/Calendar.types.js.map +1 -1
  144. package/lib-commonjs/components/Calendar/defaults.js +1 -3
  145. package/lib-commonjs/components/Calendar/defaults.js.map +1 -1
  146. package/lib-commonjs/components/Calendar/index.js +0 -3
  147. package/lib-commonjs/components/Calendar/index.js.map +1 -1
  148. package/lib-commonjs/components/Calendar/useCalendarStyles.styles.js +0 -2
  149. package/lib-commonjs/components/Calendar/useCalendarStyles.styles.js.map +1 -1
  150. package/lib-commonjs/components/CalendarDay/CalendarDay.js +1 -3
  151. package/lib-commonjs/components/CalendarDay/CalendarDay.js.map +1 -1
  152. package/lib-commonjs/components/CalendarDay/CalendarDay.types.js +0 -3
  153. package/lib-commonjs/components/CalendarDay/CalendarDay.types.js.map +1 -1
  154. package/lib-commonjs/components/CalendarDay/index.js +0 -3
  155. package/lib-commonjs/components/CalendarDay/index.js.map +1 -1
  156. package/lib-commonjs/components/CalendarDay/useCalendarDayStyles.styles.js +0 -2
  157. package/lib-commonjs/components/CalendarDay/useCalendarDayStyles.styles.js.map +1 -1
  158. package/lib-commonjs/components/CalendarDayGrid/CalendarDayGrid.js +7 -9
  159. package/lib-commonjs/components/CalendarDayGrid/CalendarDayGrid.js.map +1 -1
  160. package/lib-commonjs/components/CalendarDayGrid/CalendarDayGrid.types.js +0 -3
  161. package/lib-commonjs/components/CalendarDayGrid/CalendarDayGrid.types.js.map +1 -1
  162. package/lib-commonjs/components/CalendarDayGrid/CalendarGridDayCell.js +1 -3
  163. package/lib-commonjs/components/CalendarDayGrid/CalendarGridDayCell.js.map +1 -1
  164. package/lib-commonjs/components/CalendarDayGrid/CalendarGridRow.js +1 -3
  165. package/lib-commonjs/components/CalendarDayGrid/CalendarGridRow.js.map +1 -1
  166. package/lib-commonjs/components/CalendarDayGrid/CalendarMonthHeaderRow.js +1 -3
  167. package/lib-commonjs/components/CalendarDayGrid/CalendarMonthHeaderRow.js.map +1 -1
  168. package/lib-commonjs/components/CalendarDayGrid/index.js +0 -3
  169. package/lib-commonjs/components/CalendarDayGrid/index.js.map +1 -1
  170. package/lib-commonjs/components/CalendarDayGrid/useCalendarDayGridStyles.styles.js +0 -2
  171. package/lib-commonjs/components/CalendarDayGrid/useCalendarDayGridStyles.styles.js.map +1 -1
  172. package/lib-commonjs/components/CalendarDayGrid/useWeekCornerStyles.styles.js +0 -2
  173. package/lib-commonjs/components/CalendarDayGrid/useWeekCornerStyles.styles.js.map +1 -1
  174. package/lib-commonjs/components/CalendarDayGrid/useWeeks.js +9 -11
  175. package/lib-commonjs/components/CalendarDayGrid/useWeeks.js.map +1 -1
  176. package/lib-commonjs/components/CalendarMonth/CalendarMonth.js +1 -3
  177. package/lib-commonjs/components/CalendarMonth/CalendarMonth.js.map +1 -1
  178. package/lib-commonjs/components/CalendarMonth/CalendarMonth.types.js +0 -3
  179. package/lib-commonjs/components/CalendarMonth/CalendarMonth.types.js.map +1 -1
  180. package/lib-commonjs/components/CalendarMonth/index.js +0 -3
  181. package/lib-commonjs/components/CalendarMonth/index.js.map +1 -1
  182. package/lib-commonjs/components/CalendarMonth/useCalendarMonthStyles.js +1 -3
  183. package/lib-commonjs/components/CalendarMonth/useCalendarMonthStyles.js.map +1 -1
  184. package/lib-commonjs/components/CalendarPicker/CalendarPicker.types.js +0 -3
  185. package/lib-commonjs/components/CalendarPicker/CalendarPicker.types.js.map +1 -1
  186. package/lib-commonjs/components/CalendarPicker/index.js +0 -3
  187. package/lib-commonjs/components/CalendarPicker/index.js.map +1 -1
  188. package/lib-commonjs/components/CalendarPicker/useCalendarPickerStyles.styles.js +0 -2
  189. package/lib-commonjs/components/CalendarPicker/useCalendarPickerStyles.styles.js.map +1 -1
  190. package/lib-commonjs/components/CalendarYear/CalendarYear.js +1 -3
  191. package/lib-commonjs/components/CalendarYear/CalendarYear.js.map +1 -1
  192. package/lib-commonjs/components/CalendarYear/CalendarYear.types.js +0 -3
  193. package/lib-commonjs/components/CalendarYear/CalendarYear.types.js.map +1 -1
  194. package/lib-commonjs/components/CalendarYear/index.js +0 -3
  195. package/lib-commonjs/components/CalendarYear/index.js.map +1 -1
  196. package/lib-commonjs/components/CalendarYear/useCalendarYearStyles.styles.js +0 -2
  197. package/lib-commonjs/components/CalendarYear/useCalendarYearStyles.styles.js.map +1 -1
  198. package/lib-commonjs/components/DatePicker/DatePicker.js +1 -3
  199. package/lib-commonjs/components/DatePicker/DatePicker.js.map +1 -1
  200. package/lib-commonjs/components/DatePicker/DatePicker.types.js +0 -3
  201. package/lib-commonjs/components/DatePicker/DatePicker.types.js.map +1 -1
  202. package/lib-commonjs/components/DatePicker/defaults.js +1 -3
  203. package/lib-commonjs/components/DatePicker/defaults.js.map +1 -1
  204. package/lib-commonjs/components/DatePicker/index.js +0 -3
  205. package/lib-commonjs/components/DatePicker/index.js.map +1 -1
  206. package/lib-commonjs/components/DatePicker/renderDatePicker.js +1 -3
  207. package/lib-commonjs/components/DatePicker/renderDatePicker.js.map +1 -1
  208. package/lib-commonjs/components/DatePicker/useDatePicker.js +8 -11
  209. package/lib-commonjs/components/DatePicker/useDatePicker.js.map +1 -1
  210. package/lib-commonjs/components/DatePicker/useDatePickerStyles.styles.js +0 -2
  211. package/lib-commonjs/components/DatePicker/useDatePickerStyles.styles.js.map +1 -1
  212. package/lib-commonjs/index.js +0 -3
  213. package/lib-commonjs/index.js.map +1 -1
  214. package/lib-commonjs/utils/animations.js +4 -6
  215. package/lib-commonjs/utils/animations.js.map +1 -1
  216. package/lib-commonjs/utils/constants.js +7 -9
  217. package/lib-commonjs/utils/constants.js.map +1 -1
  218. package/lib-commonjs/utils/dateFormatting/dateFormatting.defaults.js +1 -3
  219. package/lib-commonjs/utils/dateFormatting/dateFormatting.defaults.js.map +1 -1
  220. package/lib-commonjs/utils/dateFormatting/dateFormatting.types.js +0 -3
  221. package/lib-commonjs/utils/dateFormatting/dateFormatting.types.js.map +1 -1
  222. package/lib-commonjs/utils/dateFormatting/index.js +0 -3
  223. package/lib-commonjs/utils/dateFormatting/index.js.map +1 -1
  224. package/lib-commonjs/utils/dateGrid/dateGrid.types.js +0 -3
  225. package/lib-commonjs/utils/dateGrid/dateGrid.types.js.map +1 -1
  226. package/lib-commonjs/utils/dateGrid/findAvailableDate.js +1 -3
  227. package/lib-commonjs/utils/dateGrid/findAvailableDate.js.map +1 -1
  228. package/lib-commonjs/utils/dateGrid/getBoundedDateRange.js +1 -3
  229. package/lib-commonjs/utils/dateGrid/getBoundedDateRange.js.map +1 -1
  230. package/lib-commonjs/utils/dateGrid/getDateRangeTypeToUse.js +1 -3
  231. package/lib-commonjs/utils/dateGrid/getDateRangeTypeToUse.js.map +1 -1
  232. package/lib-commonjs/utils/dateGrid/getDayGrid.js +1 -3
  233. package/lib-commonjs/utils/dateGrid/getDayGrid.js.map +1 -1
  234. package/lib-commonjs/utils/dateGrid/index.js +0 -3
  235. package/lib-commonjs/utils/dateGrid/index.js.map +1 -1
  236. package/lib-commonjs/utils/dateGrid/isAfterMaxDate.js +1 -3
  237. package/lib-commonjs/utils/dateGrid/isAfterMaxDate.js.map +1 -1
  238. package/lib-commonjs/utils/dateGrid/isBeforeMinDate.js +1 -3
  239. package/lib-commonjs/utils/dateGrid/isBeforeMinDate.js.map +1 -1
  240. package/lib-commonjs/utils/dateGrid/isContiguous.js +1 -3
  241. package/lib-commonjs/utils/dateGrid/isContiguous.js.map +1 -1
  242. package/lib-commonjs/utils/dateGrid/isRestrictedDate.js +1 -3
  243. package/lib-commonjs/utils/dateGrid/isRestrictedDate.js.map +1 -1
  244. package/lib-commonjs/utils/dateMath/dateMath.js +1 -3
  245. package/lib-commonjs/utils/dateMath/dateMath.js.map +1 -1
  246. package/lib-commonjs/utils/dateMath/index.js +0 -3
  247. package/lib-commonjs/utils/dateMath/index.js.map +1 -1
  248. package/lib-commonjs/utils/dom.js +1 -3
  249. package/lib-commonjs/utils/dom.js.map +1 -1
  250. package/lib-commonjs/utils/focus.js +1 -3
  251. package/lib-commonjs/utils/focus.js.map +1 -1
  252. package/lib-commonjs/utils/index.js +0 -3
  253. package/lib-commonjs/utils/index.js.map +1 -1
  254. package/lib-commonjs/utils/usePopupPositioning.js +1 -3
  255. package/lib-commonjs/utils/usePopupPositioning.js.map +1 -1
  256. package/package.json +11 -11
@@ -6,315 +6,293 @@ import { CalendarDay } from '../CalendarDay/CalendarDay';
6
6
  import { CalendarMonth } from '../CalendarMonth/CalendarMonth';
7
7
  import { useCalendarStyles_unstable } from './useCalendarStyles.styles';
8
8
  const MIN_SIZE_FORCE_OVERLAY = 440;
9
- const defaultWorkWeekDays = [DayOfWeek.Monday, DayOfWeek.Tuesday, DayOfWeek.Wednesday, DayOfWeek.Thursday, DayOfWeek.Friday];
10
- function useDateState({
11
- value,
12
- today = new Date(),
13
- onSelectDate
14
- }) {
15
- /** The currently selected date in the calendar */const [selectedDate, setSelectedDate] = useControllableState({
16
- defaultState: today,
17
- initialState: today,
18
- state: value
19
- });
20
- /** The currently focused date in the day picker, but not necessarily selected */
21
- const [navigatedDay = today, setNavigatedDay] = React.useState(value);
22
- /** The currently focused date in the month picker, but not necessarily selected */
23
- const [navigatedMonth = today, setNavigatedMonth] = React.useState(value);
24
- /** If using a controlled value, when that value changes, navigate to that date */
25
- const [lastSelectedDate = today, setLastSelectedDate] = React.useState(value);
26
- if (value && lastSelectedDate.valueOf() !== value.valueOf()) {
27
- setNavigatedDay(value);
28
- setNavigatedMonth(value);
29
- setLastSelectedDate(value);
30
- }
31
- const navigateMonth = date => {
32
- setNavigatedMonth(date);
33
- };
34
- const navigateDay = date => {
35
- setNavigatedMonth(date);
36
- setNavigatedDay(date);
37
- };
38
- const onDateSelected = (date, selectedDateRangeArray) => {
39
- setNavigatedMonth(date);
40
- setNavigatedDay(date);
41
- setSelectedDate(date);
42
- onSelectDate === null || onSelectDate === void 0 ? void 0 : onSelectDate(date, selectedDateRangeArray);
43
- };
44
- return [selectedDate, navigatedDay, navigatedMonth, onDateSelected, navigateDay, navigateMonth];
9
+ const defaultWorkWeekDays = [
10
+ DayOfWeek.Monday,
11
+ DayOfWeek.Tuesday,
12
+ DayOfWeek.Wednesday,
13
+ DayOfWeek.Thursday,
14
+ DayOfWeek.Friday
15
+ ];
16
+ function useDateState({ value , today =new Date() , onSelectDate }) {
17
+ /** The currently selected date in the calendar */ const [selectedDate, setSelectedDate] = useControllableState({
18
+ defaultState: today,
19
+ initialState: today,
20
+ state: value
21
+ });
22
+ /** The currently focused date in the day picker, but not necessarily selected */ const [navigatedDay = today, setNavigatedDay] = React.useState(value);
23
+ /** The currently focused date in the month picker, but not necessarily selected */ const [navigatedMonth = today, setNavigatedMonth] = React.useState(value);
24
+ /** If using a controlled value, when that value changes, navigate to that date */ const [lastSelectedDate = today, setLastSelectedDate] = React.useState(value);
25
+ if (value && lastSelectedDate.valueOf() !== value.valueOf()) {
26
+ setNavigatedDay(value);
27
+ setNavigatedMonth(value);
28
+ setLastSelectedDate(value);
29
+ }
30
+ const navigateMonth = (date)=>{
31
+ setNavigatedMonth(date);
32
+ };
33
+ const navigateDay = (date)=>{
34
+ setNavigatedMonth(date);
35
+ setNavigatedDay(date);
36
+ };
37
+ const onDateSelected = (date, selectedDateRangeArray)=>{
38
+ setNavigatedMonth(date);
39
+ setNavigatedDay(date);
40
+ setSelectedDate(date);
41
+ onSelectDate === null || onSelectDate === void 0 ? void 0 : onSelectDate(date, selectedDateRangeArray);
42
+ };
43
+ return [
44
+ selectedDate,
45
+ navigatedDay,
46
+ navigatedMonth,
47
+ onDateSelected,
48
+ navigateDay,
49
+ navigateMonth
50
+ ];
45
51
  }
46
- function useVisibilityState({
47
- isDayPickerVisible: isDayPickerVisibleProp,
48
- isMonthPickerVisible: isMonthPickerVisibleProp,
49
- showMonthPickerAsOverlay
50
- }) {
51
- /** State used to show/hide month picker */const [isMonthPickerVisible, setIsMonthPickerVisible] = useControllableState({
52
- defaultState: false,
53
- initialState: true,
54
- state: getShowMonthPickerAsOverlay({
55
- isDayPickerVisible: isDayPickerVisibleProp,
56
- showMonthPickerAsOverlay
57
- }) ? undefined : isMonthPickerVisibleProp
58
- });
59
- /** State used to show/hide day picker */
60
- const [isDayPickerVisible, setIsDayPickerVisible] = useControllableState({
61
- defaultState: true,
62
- initialState: true,
63
- state: getShowMonthPickerAsOverlay({
64
- isDayPickerVisible: isDayPickerVisibleProp,
65
- showMonthPickerAsOverlay
66
- }) ? undefined : isDayPickerVisibleProp
67
- });
68
- const toggleDayMonthPickerVisibility = () => {
69
- setIsMonthPickerVisible(!isMonthPickerVisible);
70
- setIsDayPickerVisible(!isDayPickerVisible);
71
- };
72
- return [isMonthPickerVisible, isDayPickerVisible, toggleDayMonthPickerVisibility];
52
+ function useVisibilityState({ isDayPickerVisible: isDayPickerVisibleProp , isMonthPickerVisible: isMonthPickerVisibleProp , showMonthPickerAsOverlay }) {
53
+ /** State used to show/hide month picker */ const [isMonthPickerVisible, setIsMonthPickerVisible] = useControllableState({
54
+ defaultState: false,
55
+ initialState: true,
56
+ state: getShowMonthPickerAsOverlay({
57
+ isDayPickerVisible: isDayPickerVisibleProp,
58
+ showMonthPickerAsOverlay
59
+ }) ? undefined : isMonthPickerVisibleProp
60
+ });
61
+ /** State used to show/hide day picker */ const [isDayPickerVisible, setIsDayPickerVisible] = useControllableState({
62
+ defaultState: true,
63
+ initialState: true,
64
+ state: getShowMonthPickerAsOverlay({
65
+ isDayPickerVisible: isDayPickerVisibleProp,
66
+ showMonthPickerAsOverlay
67
+ }) ? undefined : isDayPickerVisibleProp
68
+ });
69
+ const toggleDayMonthPickerVisibility = ()=>{
70
+ setIsMonthPickerVisible(!isMonthPickerVisible);
71
+ setIsDayPickerVisible(!isDayPickerVisible);
72
+ };
73
+ return [
74
+ isMonthPickerVisible,
75
+ isDayPickerVisible,
76
+ toggleDayMonthPickerVisibility
77
+ ];
73
78
  }
74
- function useFocusLogic({
75
- componentRef
76
- }, isDayPickerVisible, isMonthPickerVisible) {
77
- const dayPicker = React.useRef(null);
78
- const monthPicker = React.useRef(null);
79
- const focusOnUpdate = React.useRef(false);
80
- const focus = React.useCallback(() => {
81
- if (isDayPickerVisible && dayPicker.current) {
82
- focusAsync(dayPicker.current);
83
- } else if (isMonthPickerVisible && monthPicker.current) {
84
- focusAsync(monthPicker.current);
85
- }
86
- }, [isDayPickerVisible, isMonthPickerVisible]);
87
- React.useImperativeHandle(componentRef, () => ({
88
- focus
89
- }), [focus]);
90
- React.useEffect(() => {
91
- if (focusOnUpdate.current) {
92
- focus();
93
- focusOnUpdate.current = false;
94
- }
95
- });
96
- const focusOnNextUpdate = () => {
97
- focusOnUpdate.current = true;
98
- };
99
- return [dayPicker, monthPicker, focusOnNextUpdate];
79
+ function useFocusLogic({ componentRef }, isDayPickerVisible, isMonthPickerVisible) {
80
+ const dayPicker = React.useRef(null);
81
+ const monthPicker = React.useRef(null);
82
+ const focusOnUpdate = React.useRef(false);
83
+ const focus = React.useCallback(()=>{
84
+ if (isDayPickerVisible && dayPicker.current) {
85
+ focusAsync(dayPicker.current);
86
+ } else if (isMonthPickerVisible && monthPicker.current) {
87
+ focusAsync(monthPicker.current);
88
+ }
89
+ }, [
90
+ isDayPickerVisible,
91
+ isMonthPickerVisible
92
+ ]);
93
+ React.useImperativeHandle(componentRef, ()=>({
94
+ focus
95
+ }), [
96
+ focus
97
+ ]);
98
+ React.useEffect(()=>{
99
+ if (focusOnUpdate.current) {
100
+ focus();
101
+ focusOnUpdate.current = false;
102
+ }
103
+ });
104
+ const focusOnNextUpdate = ()=>{
105
+ focusOnUpdate.current = true;
106
+ };
107
+ return [
108
+ dayPicker,
109
+ monthPicker,
110
+ focusOnNextUpdate
111
+ ];
100
112
  }
101
113
  /**
102
114
  * @internal
103
- */
104
- export const Calendar = /*#__PURE__*/React.forwardRef((props, forwardedRef) => {
105
- const {
106
- allFocusable = false,
107
- calendarDayProps,
108
- calendarMonthProps,
109
- className,
110
- componentRef,
111
- dateRangeType = DateRangeType.Day,
112
- dateTimeFormatter = DEFAULT_DATE_FORMATTING,
113
- firstDayOfWeek = DayOfWeek.Sunday,
114
- firstWeekOfYear = FirstWeekOfYear.FirstDay,
115
- highlightCurrentMonth = false,
116
- highlightSelectedMonth = false,
117
- id,
118
- isDayPickerVisible: isDayPickerVisibleProp = true,
119
- isMonthPickerVisible: isMonthPickerVisibleProp = true,
120
- maxDate,
121
- minDate,
122
- onDismiss,
123
- onSelectDate,
124
- restrictedDates,
125
- showCloseButton = false,
126
- showGoToToday = true,
127
- showMonthPickerAsOverlay: showMonthPickerAsOverlayProp = false,
128
- showSixWeeksByDefault = false,
129
- showWeekNumbers = false,
130
- strings = DEFAULT_CALENDAR_STRINGS,
131
- today = new Date(),
132
- value,
133
- workWeekDays = defaultWorkWeekDays
134
- } = props;
135
- const [selectedDate, navigatedDay, navigatedMonth, onDateSelected, navigateDay, navigateMonth] = useDateState({
136
- onSelectDate,
137
- value,
138
- today
139
- });
140
- const [isMonthPickerVisible, isDayPickerVisible, toggleDayMonthPickerVisibility] = useVisibilityState({
141
- isDayPickerVisible: isDayPickerVisibleProp,
142
- isMonthPickerVisible: isMonthPickerVisibleProp,
143
- showMonthPickerAsOverlay: showMonthPickerAsOverlayProp
144
- });
145
- const [dayPicker, monthPicker, focusOnNextUpdate] = useFocusLogic({
146
- componentRef
147
- }, isDayPickerVisible, isMonthPickerVisible);
148
- const renderGoToTodayButton = () => {
149
- let goTodayEnabled = showGoToToday;
150
- if (goTodayEnabled && today) {
151
- goTodayEnabled = navigatedDay.getFullYear() !== today.getFullYear() || navigatedDay.getMonth() !== today.getMonth() || navigatedMonth.getFullYear() !== today.getFullYear() || navigatedMonth.getMonth() !== today.getMonth();
152
- }
153
- return showGoToToday && /*#__PURE__*/React.createElement("button", {
154
- className: classes.goTodayButton,
155
- onClick: onGotoToday,
156
- onKeyDown: onButtonKeyDown(onGotoToday),
157
- type: "button",
158
- disabled: !goTodayEnabled
159
- }, strings.goToToday);
160
- };
161
- const onNavigateDayDate = (date, focusOnNavigatedDay) => {
162
- navigateDay(date);
163
- if (focusOnNavigatedDay) {
164
- focusOnNextUpdate();
165
- }
166
- };
167
- const onNavigateMonthDate = (date, focusOnNavigatedDay) => {
168
- if (focusOnNavigatedDay) {
169
- focusOnNextUpdate();
170
- }
171
- if (!focusOnNavigatedDay) {
172
- navigateMonth(date);
173
- return;
174
- }
175
- if (monthPickerOnly) {
176
- onDateSelected(date);
177
- }
178
- navigateDay(date);
179
- };
180
- const onHeaderSelect = getShowMonthPickerAsOverlay({
181
- isDayPickerVisible: isDayPickerVisibleProp,
182
- showMonthPickerAsOverlay: showMonthPickerAsOverlayProp
183
- }) ? () => {
184
- toggleDayMonthPickerVisibility();
185
- focusOnNextUpdate();
186
- } : undefined;
187
- const onGotoToday = () => {
188
- navigateDay(today);
189
- focusOnNextUpdate();
190
- };
191
- const onButtonKeyDown = callback => {
192
- return ev => {
193
- switch (ev.key) {
194
- case Enter:
195
- case Space:
196
- callback();
197
- break;
198
- }
115
+ */ export const Calendar = /*#__PURE__*/ React.forwardRef((props, forwardedRef)=>{
116
+ const { allFocusable =false , calendarDayProps , calendarMonthProps , className , componentRef , dateRangeType =DateRangeType.Day , dateTimeFormatter =DEFAULT_DATE_FORMATTING , firstDayOfWeek =DayOfWeek.Sunday , firstWeekOfYear =FirstWeekOfYear.FirstDay , highlightCurrentMonth =false , highlightSelectedMonth =false , id , isDayPickerVisible: isDayPickerVisibleProp = true , isMonthPickerVisible: isMonthPickerVisibleProp = true , maxDate , minDate , onDismiss , onSelectDate , restrictedDates , showCloseButton =false , showGoToToday =true , showMonthPickerAsOverlay: showMonthPickerAsOverlayProp = false , showSixWeeksByDefault =false , showWeekNumbers =false , strings =DEFAULT_CALENDAR_STRINGS , today =new Date() , value , workWeekDays =defaultWorkWeekDays } = props;
117
+ const [selectedDate, navigatedDay, navigatedMonth, onDateSelected, navigateDay, navigateMonth] = useDateState({
118
+ onSelectDate,
119
+ value,
120
+ today
121
+ });
122
+ const [isMonthPickerVisible, isDayPickerVisible, toggleDayMonthPickerVisibility] = useVisibilityState({
123
+ isDayPickerVisible: isDayPickerVisibleProp,
124
+ isMonthPickerVisible: isMonthPickerVisibleProp,
125
+ showMonthPickerAsOverlay: showMonthPickerAsOverlayProp
126
+ });
127
+ const [dayPicker, monthPicker, focusOnNextUpdate] = useFocusLogic({
128
+ componentRef
129
+ }, isDayPickerVisible, isMonthPickerVisible);
130
+ const renderGoToTodayButton = ()=>{
131
+ let goTodayEnabled = showGoToToday;
132
+ if (goTodayEnabled && today) {
133
+ goTodayEnabled = navigatedDay.getFullYear() !== today.getFullYear() || navigatedDay.getMonth() !== today.getMonth() || navigatedMonth.getFullYear() !== today.getFullYear() || navigatedMonth.getMonth() !== today.getMonth();
134
+ }
135
+ return showGoToToday && /*#__PURE__*/ React.createElement("button", {
136
+ className: classes.goTodayButton,
137
+ onClick: onGotoToday,
138
+ onKeyDown: onButtonKeyDown(onGotoToday),
139
+ type: "button",
140
+ disabled: !goTodayEnabled
141
+ }, strings.goToToday);
199
142
  };
200
- };
201
- const onDatePickerPopupKeyDown = ev => {
202
- switch (ev.key) {
203
- case Enter:
204
- ev.preventDefault();
205
- break;
206
- case Backspace:
207
- ev.preventDefault();
208
- break;
209
- case Escape:
210
- ev.stopPropagation();
211
- onDismiss === null || onDismiss === void 0 ? void 0 : onDismiss();
212
- break;
213
- case PageUp:
214
- if (ev.ctrlKey) {
215
- // go to next year
216
- navigateDay(addYears(navigatedDay, 1));
217
- } else {
218
- // go to next month
219
- navigateDay(addMonths(navigatedDay, 1));
143
+ const onNavigateDayDate = (date, focusOnNavigatedDay)=>{
144
+ navigateDay(date);
145
+ if (focusOnNavigatedDay) {
146
+ focusOnNextUpdate();
147
+ }
148
+ };
149
+ const onNavigateMonthDate = (date, focusOnNavigatedDay)=>{
150
+ if (focusOnNavigatedDay) {
151
+ focusOnNextUpdate();
152
+ }
153
+ if (!focusOnNavigatedDay) {
154
+ navigateMonth(date);
155
+ return;
220
156
  }
221
- ev.preventDefault();
222
- break;
223
- case PageDown:
224
- if (ev.ctrlKey) {
225
- // go to previous year
226
- navigateDay(addYears(navigatedDay, -1));
227
- } else {
228
- // go to previous month
229
- navigateDay(addMonths(navigatedDay, -1));
157
+ if (monthPickerOnly) {
158
+ onDateSelected(date);
230
159
  }
231
- ev.preventDefault();
232
- break;
233
- default:
234
- break;
160
+ navigateDay(date);
161
+ };
162
+ const onHeaderSelect = getShowMonthPickerAsOverlay({
163
+ isDayPickerVisible: isDayPickerVisibleProp,
164
+ showMonthPickerAsOverlay: showMonthPickerAsOverlayProp
165
+ }) ? ()=>{
166
+ toggleDayMonthPickerVisibility();
167
+ focusOnNextUpdate();
168
+ } : undefined;
169
+ const onGotoToday = ()=>{
170
+ navigateDay(today);
171
+ focusOnNextUpdate();
172
+ };
173
+ const onButtonKeyDown = (callback)=>{
174
+ return (ev)=>{
175
+ switch(ev.key){
176
+ case Enter:
177
+ case Space:
178
+ callback();
179
+ break;
180
+ }
181
+ };
182
+ };
183
+ const onDatePickerPopupKeyDown = (ev)=>{
184
+ switch(ev.key){
185
+ case Enter:
186
+ ev.preventDefault();
187
+ break;
188
+ case Backspace:
189
+ ev.preventDefault();
190
+ break;
191
+ case Escape:
192
+ ev.stopPropagation();
193
+ onDismiss === null || onDismiss === void 0 ? void 0 : onDismiss();
194
+ break;
195
+ case PageUp:
196
+ if (ev.ctrlKey) {
197
+ // go to next year
198
+ navigateDay(addYears(navigatedDay, 1));
199
+ } else {
200
+ // go to next month
201
+ navigateDay(addMonths(navigatedDay, 1));
202
+ }
203
+ ev.preventDefault();
204
+ break;
205
+ case PageDown:
206
+ if (ev.ctrlKey) {
207
+ // go to previous year
208
+ navigateDay(addYears(navigatedDay, -1));
209
+ } else {
210
+ // go to previous month
211
+ navigateDay(addMonths(navigatedDay, -1));
212
+ }
213
+ ev.preventDefault();
214
+ break;
215
+ default:
216
+ break;
217
+ }
218
+ };
219
+ const showMonthPickerAsOverlay = getShowMonthPickerAsOverlay(props);
220
+ const monthPickerOnly = !showMonthPickerAsOverlay && !isDayPickerVisible;
221
+ const classes = useCalendarStyles_unstable({
222
+ className,
223
+ isDayPickerVisible,
224
+ isMonthPickerVisible,
225
+ showWeekNumbers
226
+ });
227
+ let todayDateString = '';
228
+ let selectedDateString = '';
229
+ if (dateTimeFormatter && strings.todayDateFormatString) {
230
+ todayDateString = strings.todayDateFormatString.replace('{0}', dateTimeFormatter.formatMonthDayYear(today, strings));
231
+ }
232
+ if (dateTimeFormatter && strings.selectedDateFormatString) {
233
+ selectedDateString = strings.selectedDateFormatString.replace('{0}', dateTimeFormatter.formatMonthDayYear(selectedDate, strings));
235
234
  }
236
- };
237
- const showMonthPickerAsOverlay = getShowMonthPickerAsOverlay(props);
238
- const monthPickerOnly = !showMonthPickerAsOverlay && !isDayPickerVisible;
239
- const classes = useCalendarStyles_unstable({
240
- className,
241
- isDayPickerVisible,
242
- isMonthPickerVisible,
243
- showWeekNumbers
244
- });
245
- let todayDateString = '';
246
- let selectedDateString = '';
247
- if (dateTimeFormatter && strings.todayDateFormatString) {
248
- todayDateString = strings.todayDateFormatString.replace('{0}', dateTimeFormatter.formatMonthDayYear(today, strings));
249
- }
250
- if (dateTimeFormatter && strings.selectedDateFormatString) {
251
- selectedDateString = strings.selectedDateFormatString.replace('{0}', dateTimeFormatter.formatMonthDayYear(selectedDate, strings));
252
- }
253
- const selectionAndTodayString = selectedDateString + ', ' + todayDateString;
254
- return /*#__PURE__*/React.createElement("div", {
255
- id: id,
256
- ref: forwardedRef,
257
- role: "group",
258
- "aria-label": selectionAndTodayString,
259
- className: classes.root,
260
- onKeyDown: onDatePickerPopupKeyDown
261
- }, /*#__PURE__*/React.createElement("div", {
262
- className: classes.liveRegion,
263
- "aria-live": "polite",
264
- "aria-atomic": "true"
265
- }, /*#__PURE__*/React.createElement("span", null, selectedDateString)), isDayPickerVisible && /*#__PURE__*/React.createElement(CalendarDay, {
266
- selectedDate: selectedDate,
267
- navigatedDate: navigatedDay,
268
- today: today,
269
- onSelectDate: onDateSelected,
270
- // eslint-disable-next-line react/jsx-no-bind
271
- onNavigateDate: onNavigateDayDate,
272
- onDismiss: onDismiss,
273
- firstDayOfWeek: firstDayOfWeek,
274
- dateRangeType: dateRangeType,
275
- strings: strings,
276
- // eslint-disable-next-line react/jsx-no-bind
277
- onHeaderSelect: onHeaderSelect,
278
- showWeekNumbers: showWeekNumbers,
279
- firstWeekOfYear: firstWeekOfYear,
280
- dateTimeFormatter: dateTimeFormatter,
281
- showSixWeeksByDefault: showSixWeeksByDefault,
282
- minDate: minDate,
283
- maxDate: maxDate,
284
- restrictedDates: restrictedDates,
285
- workWeekDays: workWeekDays,
286
- componentRef: dayPicker,
287
- showCloseButton: showCloseButton,
288
- allFocusable: allFocusable,
289
- ...calendarDayProps
290
- }), isDayPickerVisible && isMonthPickerVisible && /*#__PURE__*/React.createElement("div", {
291
- className: classes.divider
292
- }), isMonthPickerVisible ? /*#__PURE__*/React.createElement("div", {
293
- className: classes.monthPickerWrapper
294
- }, /*#__PURE__*/React.createElement(CalendarMonth, {
295
- navigatedDate: navigatedMonth,
296
- selectedDate: navigatedDay,
297
- strings: strings,
298
- // eslint-disable-next-line react/jsx-no-bind
299
- onNavigateDate: onNavigateMonthDate,
300
- today: today,
301
- highlightCurrentMonth: highlightCurrentMonth,
302
- highlightSelectedMonth: highlightSelectedMonth,
303
- // eslint-disable-next-line react/jsx-no-bind
304
- onHeaderSelect: onHeaderSelect,
305
- dateTimeFormatter: dateTimeFormatter,
306
- minDate: minDate,
307
- maxDate: maxDate,
308
- componentRef: monthPicker,
309
- ...calendarMonthProps
310
- }), renderGoToTodayButton()) : renderGoToTodayButton());
235
+ const selectionAndTodayString = selectedDateString + ', ' + todayDateString;
236
+ return /*#__PURE__*/ React.createElement("div", {
237
+ id: id,
238
+ ref: forwardedRef,
239
+ role: "group",
240
+ "aria-label": selectionAndTodayString,
241
+ className: classes.root,
242
+ onKeyDown: onDatePickerPopupKeyDown
243
+ }, /*#__PURE__*/ React.createElement("div", {
244
+ className: classes.liveRegion,
245
+ "aria-live": "polite",
246
+ "aria-atomic": "true"
247
+ }, /*#__PURE__*/ React.createElement("span", null, selectedDateString)), isDayPickerVisible && /*#__PURE__*/ React.createElement(CalendarDay, {
248
+ selectedDate: selectedDate,
249
+ navigatedDate: navigatedDay,
250
+ today: today,
251
+ onSelectDate: onDateSelected,
252
+ // eslint-disable-next-line react/jsx-no-bind
253
+ onNavigateDate: onNavigateDayDate,
254
+ onDismiss: onDismiss,
255
+ firstDayOfWeek: firstDayOfWeek,
256
+ dateRangeType: dateRangeType,
257
+ strings: strings,
258
+ // eslint-disable-next-line react/jsx-no-bind
259
+ onHeaderSelect: onHeaderSelect,
260
+ showWeekNumbers: showWeekNumbers,
261
+ firstWeekOfYear: firstWeekOfYear,
262
+ dateTimeFormatter: dateTimeFormatter,
263
+ showSixWeeksByDefault: showSixWeeksByDefault,
264
+ minDate: minDate,
265
+ maxDate: maxDate,
266
+ restrictedDates: restrictedDates,
267
+ workWeekDays: workWeekDays,
268
+ componentRef: dayPicker,
269
+ showCloseButton: showCloseButton,
270
+ allFocusable: allFocusable,
271
+ ...calendarDayProps
272
+ }), isDayPickerVisible && isMonthPickerVisible && /*#__PURE__*/ React.createElement("div", {
273
+ className: classes.divider
274
+ }), isMonthPickerVisible ? /*#__PURE__*/ React.createElement("div", {
275
+ className: classes.monthPickerWrapper
276
+ }, /*#__PURE__*/ React.createElement(CalendarMonth, {
277
+ navigatedDate: navigatedMonth,
278
+ selectedDate: navigatedDay,
279
+ strings: strings,
280
+ // eslint-disable-next-line react/jsx-no-bind
281
+ onNavigateDate: onNavigateMonthDate,
282
+ today: today,
283
+ highlightCurrentMonth: highlightCurrentMonth,
284
+ highlightSelectedMonth: highlightSelectedMonth,
285
+ // eslint-disable-next-line react/jsx-no-bind
286
+ onHeaderSelect: onHeaderSelect,
287
+ dateTimeFormatter: dateTimeFormatter,
288
+ minDate: minDate,
289
+ maxDate: maxDate,
290
+ componentRef: monthPicker,
291
+ ...calendarMonthProps
292
+ }), renderGoToTodayButton()) : renderGoToTodayButton());
311
293
  });
312
294
  Calendar.displayName = 'Calendar';
313
- function getShowMonthPickerAsOverlay({
314
- isDayPickerVisible,
315
- showMonthPickerAsOverlay
316
- }) {
317
- const win = getWindow();
318
- return showMonthPickerAsOverlay || isDayPickerVisible && win && win.innerWidth <= MIN_SIZE_FORCE_OVERLAY;
295
+ function getShowMonthPickerAsOverlay({ isDayPickerVisible , showMonthPickerAsOverlay }) {
296
+ const win = getWindow();
297
+ return showMonthPickerAsOverlay || isDayPickerVisible && win && win.innerWidth <= MIN_SIZE_FORCE_OVERLAY;
319
298
  }
320
- //# sourceMappingURL=Calendar.js.map